From 44e0714e2973b2a6f6eccd0f3acfc9ef88a0caf3 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 22 Jun 2018 13:37:41 +0900 Subject: [PATCH 001/480] BIP66 Strict DER signatures --- index.js | 2 +- lib/TransactionBuilder.js | 9 +++-- package-lock.json | 16 ++++++++- package.json | 3 +- src/TransactionBuilder.js | 2 ++ test/TransactionBuilder.js | 36 ++++++++++++++++++-- test/fixtures/TransactionBuilder.json | 47 +++++++++++++++++++++++++++ 7 files changed, 107 insertions(+), 8 deletions(-) diff --git a/index.js b/index.js index 21bc82ed..b51313a6 100755 --- a/index.js +++ b/index.js @@ -25,7 +25,7 @@ let cmd = require('node-cmd'); // let ProgressBar = require('progress'); program - .version('1.1.0'); + .version('1.1.1'); program .command('new ') diff --git a/lib/TransactionBuilder.js b/lib/TransactionBuilder.js index 9d17b3d8..2765b5b8 100644 --- a/lib/TransactionBuilder.js +++ b/lib/TransactionBuilder.js @@ -18,10 +18,14 @@ var _coininfo = require('coininfo'); var _coininfo2 = _interopRequireDefault(_coininfo); -var _bip = require('bip68'); +var _bip = require('bip66'); var _bip2 = _interopRequireDefault(_bip); +var _bip3 = require('bip68'); + +var _bip4 = _interopRequireDefault(_bip3); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -50,7 +54,8 @@ var TransactionBuilder = function () { ADVANCED_TRANSACTION_MARKER: 0x00, ADVANCED_TRANSACTION_FLAG: 0x01 }; - this.bip68 = _bip2.default; + this.bip66 = _bip2.default; + this.bip68 = _bip4.default; } _createClass(TransactionBuilder, [{ diff --git a/package-lock.json b/package-lock.json index 3c284d2b..93773f7c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.1.0", + "version": "1.1.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -974,6 +974,13 @@ "typeforce": "^1.11.3", "varuint-bitcoin": "^1.0.4", "wif": "^2.0.1" + }, + "dependencies": { + "bitcoin-ops": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz", + "integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow==" + } } }, "bitcoinjs-message": { @@ -5854,6 +5861,13 @@ "integrity": "sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=", "requires": { "bitcoin-ops": "^1.3.0" + }, + "dependencies": { + "bitcoin-ops": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz", + "integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow==" + } } }, "qrcode": { diff --git a/package.json b/package.json index 3bb619dd..cdcd394c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.1.0", + "version": "1.1.1", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Bitcoin.com", "main": "index.js", @@ -30,6 +30,7 @@ "bip21": "Bitcoin-com/bip21", "bip38": "^2.0.2", "bip39": "^2.5.0", + "bip66": "^1.1.5", "bip68": "^1.0.4", "bitcoin-ops": "Bitcoin-com/bitcoincash-ops", "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib", diff --git a/src/TransactionBuilder.js b/src/TransactionBuilder.js index a3709f7b..529f5247 100644 --- a/src/TransactionBuilder.js +++ b/src/TransactionBuilder.js @@ -1,6 +1,7 @@ import Bitcoin from 'bitcoincashjs-lib'; import bchaddr from 'bchaddrjs'; import coininfo from'coininfo'; +import bip66 from 'bip66'; import bip68 from 'bip68'; class TransactionBuilder { @@ -23,6 +24,7 @@ class TransactionBuilder { ADVANCED_TRANSACTION_MARKER: 0x00, ADVANCED_TRANSACTION_FLAG: 0x01 }; + this.bip66 = bip66; this.bip68 = bip68; } diff --git a/test/TransactionBuilder.js b/test/TransactionBuilder.js index aee0d42e..7fdeb0a7 100644 --- a/test/TransactionBuilder.js +++ b/test/TransactionBuilder.js @@ -1194,9 +1194,39 @@ describe('#TransactionBuilder', () => { }); }); - describe('#bip168', () => { + describe('#bip66', () => { + fixtures.bip66.forEach((fixture) => { + it(`should bip66 encode as ${fixture.DER}`, () => { + let transactionBuilder = new BITBOX.TransactionBuilder(); + let r = Buffer.from(fixture.r, 'hex') + let s = Buffer.from(fixture.s, 'hex') + let DER = transactionBuilder.bip66.encode(r, s) + assert.equal(DER.toString('hex'), fixture.DER); + }); + }); + + fixtures.bip66.forEach((fixture) => { + it(`should bip66 decode ${fixture.DER}`, () => { + let transactionBuilder = new BITBOX.TransactionBuilder(); + let buffer = Buffer.from(fixture.DER, 'hex') + let signature = transactionBuilder.bip66.decode(buffer) + assert.equal(signature.r.toString('hex'), fixture.r); + assert.equal(signature.s.toString('hex'), fixture.s); + }); + }); + + fixtures.bip66.forEach((fixture) => { + it(`should bip66 check ${fixture.DER}`, () => { + let transactionBuilder = new BITBOX.TransactionBuilder(); + let buffer = Buffer.from(fixture.DER, 'hex') + assert.equal(transactionBuilder.bip66.check(buffer), true); + }); + }); + }); + + describe('#bip68', () => { fixtures.bip68.encode.forEach((fixture) => { - it(`should encode as ${fixture.result}`, () => { + it(`should bip68 encode as ${fixture.result}`, () => { let transactionBuilder = new BITBOX.TransactionBuilder(); let obj = {}; obj[fixture.type] = fixture.value; @@ -1206,7 +1236,7 @@ describe('#TransactionBuilder', () => { }); fixtures.bip68.decode.forEach((fixture) => { - it(`should decode ${fixture.result}`, () => { + it(`should bip68 decode ${fixture.result}`, () => { let transactionBuilder = new BITBOX.TransactionBuilder(); let obj = {}; let decode = transactionBuilder.bip68.decode(fixture.result); diff --git a/test/fixtures/TransactionBuilder.json b/test/fixtures/TransactionBuilder.json index bd71fdef..14ee8a4d 100644 --- a/test/fixtures/TransactionBuilder.json +++ b/test/fixtures/TransactionBuilder.json @@ -1428,6 +1428,53 @@ } ] }, + "bip66": [ + { + "DER": "3044022029db2d5f4e1dcc04e19266cce3cb135865784c62ab653b307f0e0bb744f5c2aa022000a97f5826912cac8b44d9f577a26f169a2f8db781f2ddb7de2bc886e93b6844", + "r": "29db2d5f4e1dcc04e19266cce3cb135865784c62ab653b307f0e0bb744f5c2aa", + "s": "00a97f5826912cac8b44d9f577a26f169a2f8db781f2ddb7de2bc886e93b6844" + }, + { + "DER": "304302201ea1fdff81b3a271659df4aad19bc4ef83def389131a36358fe64b245632e777021f29e164658be9ce810921bf81d6b86694785a79ea1e52dbfa5105148d1f0bc1", + "r": "1ea1fdff81b3a271659df4aad19bc4ef83def389131a36358fe64b245632e777", + "s": "29e164658be9ce810921bf81d6b86694785a79ea1e52dbfa5105148d1f0bc1" + }, + { + "DER": "304402201b19519b38ca1e6813cd25649ad36be8bc6a6f2ad9758089c429acd9ce0b572f02203bf32193c8a3a3de1f847cd6e6eebf43c96df1ffa4d7fe920f8f71708920c65f", + "r": "1b19519b38ca1e6813cd25649ad36be8bc6a6f2ad9758089c429acd9ce0b572f", + "s": "3bf32193c8a3a3de1f847cd6e6eebf43c96df1ffa4d7fe920f8f71708920c65f" + }, + { + "DER": "3044022000c8da1836747d05a6a3d2c395825edce827147d15909e66939a5037d5916e6f022017823c2da62f539d7f8e1e186eaea7a401ab3c077dcfc44aeaf3e13fac99bdbc", + "r": "00c8da1836747d05a6a3d2c395825edce827147d15909e66939a5037d5916e6f", + "s": "17823c2da62f539d7f8e1e186eaea7a401ab3c077dcfc44aeaf3e13fac99bdbc" + }, + { + "DER": "3042021e2ff2609c8dc0392d3731a2c6312841e09c76f10b83e2b52604dc84886dd502200090ac80e787c063618192bc04758e6666d0179c377fb2f3d6105d58000f33ac", + "r": "2ff2609c8dc0392d3731a2c6312841e09c76f10b83e2b52604dc84886dd5", + "s": "0090ac80e787c063618192bc04758e6666d0179c377fb2f3d6105d58000f33ac" + }, + { + "DER": "3041021d00feb1a12c27e5fe261acc64c0923add082573883e0800d8e4080fa9bb02202e7aeb97f4046ea3be60d2896a19c8dc269ab5eb2de968912cd52a076a0a42e9", + "r": "00feb1a12c27e5fe261acc64c0923add082573883e0800d8e4080fa9bb", + "s": "2e7aeb97f4046ea3be60d2896a19c8dc269ab5eb2de968912cd52a076a0a42e9" + }, + { + "DER": "3042021d00feb1a12c27e5fe261acc64c0923add082573883e0800d8e4080fa9bb0221008aeb97f4046ea3be60d2896a19c8dc269ab5eb2de968912cd52a076a0a42e925", + "r": "00feb1a12c27e5fe261acc64c0923add082573883e0800d8e4080fa9bb", + "s": "008aeb97f4046ea3be60d2896a19c8dc269ab5eb2de968912cd52a076a0a42e925" + }, + { + "DER": "303e021d00c1d545da2e4edfbc65e9267d3c0a6fdda41793d0fd945f15acbcf0dd021d009acffda3ca5e7c349c35ba606f0a8f1ec7815b653b51695ca9ee69a6", + "r": "00c1d545da2e4edfbc65e9267d3c0a6fdda41793d0fd945f15acbcf0dd", + "s": "009acffda3ca5e7c349c35ba606f0a8f1ec7815b653b51695ca9ee69a6" + }, + { + "DER": "3006020100020100", + "r": "00", + "s": "00" + } + ], "bip68": { "encode": [ { From fc6c22507eb668e08c4d090dc94e0518687ce9f1 Mon Sep 17 00:00:00 2001 From: Dylan Clendenin Date: Tue, 15 May 2018 19:19:06 -0700 Subject: [PATCH 002/480] append to .gitignore when using new w/ --scaffold --- index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/index.js b/index.js index b51313a6..618d633d 100755 --- a/index.js +++ b/index.js @@ -95,6 +95,7 @@ program if(res == "Error: 'git clone' failed with status 128") { console.log(chalk.red('Must create new app in to an empty directory')); } else { + fs.appendFileSync( `./${name}/.gitignore`, '.console_history'); console.log(chalk.green('All done.'), emoji.get(':white_check_mark:')); console.log(chalk.blue('Now `cd` in to your new project and run `npm install && npm start`'), emoji.get(':rocket:')); } From 2fa49598184f78e268e31f5ffa113398e787f302 Mon Sep 17 00:00:00 2001 From: Dylan Clendenin Date: Tue, 15 May 2018 19:24:18 -0700 Subject: [PATCH 003/480] new command would allow to create same project over + over --- index.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/index.js b/index.js index 618d633d..c3406a4e 100755 --- a/index.js +++ b/index.js @@ -34,6 +34,11 @@ program .option('-e, --environment ', 'environment of running BITBOX instance. Ex: production, staging. (Default: development)') .description(`create a new BITBOX application`) .action((name, options) => { + if(fs.existsSync(`./${name}`)) { + console.log(chalk.red(`Project ${name} already exists`)); + process.exit(1); + } + fs.readFile(os.homedir() + '/.bitboxrc', 'utf8', (err, contents) => { let config; if(contents) { From 8eb490fc62c1fed89733adde1cf098a6e0a50980 Mon Sep 17 00:00:00 2001 From: Dylan Clendenin Date: Tue, 15 May 2018 19:51:41 -0700 Subject: [PATCH 004/480] refactor repeated code into helper function --- index.js | 42 +++++++++++++++++------------------------- 1 file changed, 17 insertions(+), 25 deletions(-) diff --git a/index.js b/index.js index c3406a4e..c9e40fcf 100755 --- a/index.js +++ b/index.js @@ -45,21 +45,8 @@ program config = ini.parse(contents); } - let environment; - if(options && options.environment) { - environment = options.environment; - } else if(config && config.new && config.new.environment) { - environment = config.new.environment; - } else { - environment = 'development'; - } - - let restURL; - if(options && options.restURL) { - restURL = options.restURL; - } else { - restURL = 'https://rest.bitbox.earth/v1/'; - } + let environment = fetchOption('environment=development', config, options); + let restURL = fetchOption('restURL=https://rest.bitbox.earth/v1/', config, options); if(options && options.scaffold) { let scaffold = options.scaffold.toLowerCase(); @@ -151,19 +138,11 @@ program require('repl.history')(replServer, historyFile); fs.readFile(os.homedir() + '/.bitboxrc', 'utf8', (err, contents) => { - let conf; if(contents) { - conf = ini.parse(contents); + config = ini.parse(contents); } - let environment; - if(options && options.environment) { - environment = options.environment; - } else if(conf && conf.new && conf.new.environment) { - environment = conf.new.environment; - } else { - environment = 'development'; - } + let environment = fetchOption('environment=development', config, options); replServer.context.BITBOX = new BITBOXCli(config.networks[environment]); }); @@ -236,6 +215,19 @@ program } ); +function fetchOption(kv, config, options) { + let parts = kv.split('='); + let key = parts[0]; + let defaultVal = parts[1]; + if(options && options[key]) { + return options[key]; + } else if(config && config.new && config.new[key]) { + return config.new[key]; + } else { + return defaultVal; + } +} + program .parse(process.argv); From ffb1ad3db9591a625062310f64f9eebbe5eb11ce Mon Sep 17 00:00:00 2001 From: Dylan Clendenin Date: Fri, 22 Jun 2018 16:53:35 -0700 Subject: [PATCH 005/480] add .nvmrc file to help keeps devs on same version --- .nvmrc | 1 + 1 file changed, 1 insertion(+) create mode 100644 .nvmrc diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 00000000..7cc70f11 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v10.5.0 From e3ad4c6d39491a22775aeaf86060780b508c8dd8 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sat, 23 Jun 2018 11:17:17 +0900 Subject: [PATCH 006/480] Remove refs to .bitboxrc. Clean up new/scaffold flow. --- index.js | 21 ++++----------------- package-lock.json | 2 +- package.json | 2 +- 3 files changed, 6 insertions(+), 19 deletions(-) diff --git a/index.js b/index.js index c9e40fcf..cf69623c 100755 --- a/index.js +++ b/index.js @@ -25,7 +25,7 @@ let cmd = require('node-cmd'); // let ProgressBar = require('progress'); program - .version('1.1.1'); + .version('1.1.2'); program .command('new ') @@ -39,12 +39,7 @@ program process.exit(1); } - fs.readFile(os.homedir() + '/.bitboxrc', 'utf8', (err, contents) => { let config; - if(contents) { - config = ini.parse(contents); - } - let environment = fetchOption('environment=development', config, options); let restURL = fetchOption('restURL=https://rest.bitbox.earth/v1/', config, options); @@ -87,7 +82,6 @@ program if(res == "Error: 'git clone' failed with status 128") { console.log(chalk.red('Must create new app in to an empty directory')); } else { - fs.appendFileSync( `./${name}/.gitignore`, '.console_history'); console.log(chalk.green('All done.'), emoji.get(':white_check_mark:')); console.log(chalk.blue('Now `cd` in to your new project and run `npm install && npm start`'), emoji.get(':rocket:')); } @@ -114,10 +108,9 @@ program } }; `); - fs.appendFileSync( `./${name}/.gitignore`, '.console_history'); + fs.appendFileSync(`./${name}/.gitignore`, '.console_history'); console.log(chalk.blue('All done.'), emoji.get(':white_check_mark:')); console.log(chalk.blue('Go get em! Remember--with great power comes great responsibility.'), emoji.get(':rocket:')); - }); } ); @@ -137,15 +130,9 @@ program let historyFile = path.join(process.cwd(), '.console_history'); require('repl.history')(replServer, historyFile); - fs.readFile(os.homedir() + '/.bitboxrc', 'utf8', (err, contents) => { - if(contents) { - config = ini.parse(contents); - } - - let environment = fetchOption('environment=development', config, options); + let environment = fetchOption('environment=development', config, options); - replServer.context.BITBOX = new BITBOXCli(config.networks[environment]); - }); + replServer.context.BITBOX = new BITBOXCli(config.networks[environment]); } ); diff --git a/package-lock.json b/package-lock.json index 93773f7c..496034e7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.1.1", + "version": "1.1.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index cdcd394c..bc066cd5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.1.1", + "version": "1.1.2", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Bitcoin.com", "main": "index.js", From 744d0940f3fd76aa20f38b05ec9259cfe5264e95 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 27 Jun 2018 13:26:27 +0900 Subject: [PATCH 007/480] satsToBits and remove fromBits. --- index.js | 2 +- lib/BitcoinCash.js | 28 ++++++++++++++++++---- package.json | 4 ++-- src/BitcoinCash.js | 26 ++++++++++++++++---- test/BitcoinCash.js | 38 ++++++++++++++--------------- test/fixtures/BitcoinCash.json | 44 +++++++++++++++++----------------- 6 files changed, 89 insertions(+), 53 deletions(-) diff --git a/index.js b/index.js index cf69623c..6a5f5ae0 100755 --- a/index.js +++ b/index.js @@ -25,7 +25,7 @@ let cmd = require('node-cmd'); // let ProgressBar = require('progress'); program - .version('1.1.2'); + .version('1.2.0'); program .command('new ') diff --git a/lib/BitcoinCash.js b/lib/BitcoinCash.js index 3f93ee22..12160d33 100644 --- a/lib/BitcoinCash.js +++ b/lib/BitcoinCash.js @@ -74,17 +74,35 @@ var BitcoinCash = function () { }, { key: 'toBits', value: function toBits(satoshis) { - return parseFloat(satoshis) / 100000; + return parseFloat(satoshis) / 100; } - // Translate bits to satoshi denomination + // Translate satoshi to bits denomination + // TODO remove in 2.0 }, { - key: 'fromBits', - value: function fromBits(bits) { - return Math.ceil(bits * 100000); + key: 'satsToBits', + value: function satsToBits(satoshis) { + return parseFloat(satoshis) / 100; } + // Translate bits to satoshi denomination + // TODO remove in 2.0 + // fromBits(bits) { + // return this.toInteger(bits * 100); + // } + // + // // Translate bits to satoshi denomination + // satsFromBits(bits) { + // return this.toInteger(bits * 100); + // } + // + // toInteger(number){ + // return Math.round( // round to nearest integer + // Number(number) // type cast your input + // ); + // } + // sign message }, { diff --git a/package.json b/package.json index bc066cd5..f62c70e1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.1.2", + "version": "1.2.0", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Bitcoin.com", "main": "index.js", @@ -11,7 +11,7 @@ }, "license": "MIT", "engines": { - "node": ">=10.3.0" + "node": ">=10.5.0" }, "bin": { "bitbox": "./index.js" diff --git a/src/BitcoinCash.js b/src/BitcoinCash.js index 2d97f6e8..672c2128 100644 --- a/src/BitcoinCash.js +++ b/src/BitcoinCash.js @@ -23,14 +23,32 @@ class BitcoinCash { // Translate satoshi to bits denomination toBits(satoshis) { - return parseFloat(satoshis) / 100000; + return parseFloat(satoshis) / 100; } - // Translate bits to satoshi denomination - fromBits(bits) { - return Math.ceil(bits * 100000); + // Translate satoshi to bits denomination + // TODO remove in 2.0 + satsToBits(satoshis) { + return parseFloat(satoshis) / 100; } + // Translate bits to satoshi denomination + // TODO remove in 2.0 + // fromBits(bits) { + // return this.toInteger(bits * 100); + // } + // + // // Translate bits to satoshi denomination + // satsFromBits(bits) { + // return this.toInteger(bits * 100); + // } + // + // toInteger(number){ + // return Math.round( // round to nearest integer + // Number(number) // type cast your input + // ); + // } + // sign message signMessageWithPrivKey(privateKeyWIF, message) { let network = privateKeyWIF.charAt(0) === 'c' ? 'testnet' : 'bitcoincash'; diff --git a/test/BitcoinCash.js b/test/BitcoinCash.js index 6413f98a..dab5ae09 100644 --- a/test/BitcoinCash.js +++ b/test/BitcoinCash.js @@ -74,33 +74,33 @@ describe('#BitcoinCash', () => { }); }); - describe('#toBits', () => { - fixtures.conversion.toBits.bch.forEach((bch) => { + describe('#satsToBits', () => { + fixtures.conversion.satsToBits.bch.forEach((bch) => { it(`should convert ${bch[0]} BCH to ${bch[1]} bits`, () => { - assert.equal(BITBOX.BitcoinCash.toBits(BITBOX.BitcoinCash.toSatoshi(bch[0])), bch[1]); + assert.equal(BITBOX.BitcoinCash.satsToBits(BITBOX.BitcoinCash.toSatoshi(bch[0])), bch[1]); }); }); - fixtures.conversion.toBits.strings.forEach((bch) => { + fixtures.conversion.satsToBits.strings.forEach((bch) => { it(`should convert "${bch[0]}" BCH as a string to ${bch[1]} bits`, () => { - assert.equal(BITBOX.BitcoinCash.toBits(BITBOX.BitcoinCash.toSatoshi(bch[0])), bch[1]); - }); - }); - }); - - describe('#fromBits', () => { - fixtures.conversion.fromBits.bch.forEach((bch) => { - it(`should convert ${bch[1]} bits to ${bch[0]} BCH`, () => { - assert.equal(BITBOX.BitcoinCash.toBitcoinCash(BITBOX.BitcoinCash.fromBits(bch[1])), bch[0]); - }); - }); - - fixtures.conversion.fromBits.strings.forEach((bch) => { - it(`should convert "${bch[0]}" bits as a string to ${bch[1]} BCH`, () => { - assert.equal(BITBOX.BitcoinCash.toBitcoinCash(BITBOX.BitcoinCash.fromBits(bch[1])), bch[0]); + assert.equal(BITBOX.BitcoinCash.satsToBits(BITBOX.BitcoinCash.toSatoshi(bch[0])), bch[1]); }); }); }); + // + // describe('#satsFromBits', () => { + // fixtures.conversion.satsFromBits.bch.forEach((bch) => { + // it(`should convert ${bch[1]} bits to ${bch[0]} satoshis`, () => { + // assert.equal(BITBOX.BitcoinCash.satsFromBits(bch[1]), bch[0]); + // }); + // }); + // + // fixtures.conversion.satsFromBits.strings.forEach((bch) => { + // it(`should convert "${bch[1]}" bits as a string to ${bch[0]} satoshis`, () => { + // assert.equal(BITBOX.BitcoinCash.satsFromBits(bch[1]), bch[0]); + // }); + // }); + // }); }); describe('sign and verify messages', () => { diff --git a/test/fixtures/BitcoinCash.json b/test/fixtures/BitcoinCash.json index b9705c90..4162ff9f 100644 --- a/test/fixtures/BitcoinCash.json +++ b/test/fixtures/BitcoinCash.json @@ -60,36 +60,36 @@ [0.00065432, 65432] ] }, - "toBits": { + "satsToBits": { "bch": [ - [42.423234, 42423.2340], - [1, 1000.0000], - [3.14, 3140.0000], - [9876, 9876000.0000], - [0.000123, 0.1230] + [42.423234, 42423234], + [1, 1000000], + [3.14, 3140000], + [9876, 9876000000], + [0.000123, 123] ], "strings": [ - ["42.423234", "42423.2340"], - ["1", "1000.0000"], - ["3.14", "3140.0000"], - ["9876", "9876000.0000"], - ["0.000123", "0.1230"] + ["42.423234", "42423234"], + ["1", "1000000"], + ["3.14", "3140000"], + ["9876", "9876000000"], + ["0.000123", "123"] ] }, - "fromBits": { + "satsFromBits": { "bch": [ - [42.423234, 42423.2340], - [1, 1000.0000], - [3.14, 3140.0000], - [9876, 9876000.0000], - [0.000123, 0.1230] + [4242324, 42423.2340], + [100000, 1000.0000], + [314000, 3140.0000], + [987600000, 9876000.0000], + [12.3, 0.1230] ], "strings": [ - ["42.423234", "42423.2340"], - ["1", "1000.0000"], - ["3.14", "3140.0000"], - ["9876", "9876000.0000"], - ["0.000123", "0.1230"] + ["4242324", "42423.2340"], + ["100000", "1000.0000"], + ["314000", "3140.0000"], + ["987600000", "9876000.0000"], + ["12.3", "0.1230"] ] } }, From 8523089e75e4e71656599e222167d2efc164a1ea Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 29 Jun 2018 19:49:05 +0900 Subject: [PATCH 008/480] Font awesome. --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 033b4bc4..dfea7138 100644 --- a/README.md +++ b/README.md @@ -46,3 +46,7 @@ Open Source / Creative Commons Listings * [satoshi-bitcoin](https://www.npmjs.com/package/satoshi-bitcoin) - MIT * [sinon](https://www.npmjs.com/package/sinon) - BSD-3-Clause * [touch](https://www.npmjs.com/package/touch) - ISC + +## Font awesome + +[Cube icon](https://fontawesome.com/icons/cube?style=solid) available under [CC v4.0](https://creativecommons.org/licenses/by/4.0/) From afa2114e7f30adc7985b826e440dc9aaa9374aa4 Mon Sep 17 00:00:00 2001 From: amitrana007 <40827367+amitrana007@users.noreply.github.com> Date: Tue, 10 Jul 2018 19:51:11 +0530 Subject: [PATCH 009/480] committing Address.d.ts and bitbox-cli.d.ts files --- @types/Address.d.ts | 36 +++++++++++++++++++++++++++++++ @types/bitbox-cli.d.ts | 48 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 @types/Address.d.ts create mode 100644 @types/bitbox-cli.d.ts diff --git a/@types/Address.d.ts b/@types/Address.d.ts new file mode 100644 index 00000000..567b3cc3 --- /dev/null +++ b/@types/Address.d.ts @@ -0,0 +1,36 @@ +import axios from "axios"; +import bchaddr from 'bchaddrjs'; +import Bitcoin from 'bitcoincashjs-lib'; + +export default class Address { + + restURL: string; + + constructor(restURL: string); + // Translate address from any address format into a specific format. + toLegacyAddress(address: string): string; + toCashAddress(address: string, prefix : boolean): string; + // Test for address format. + isLegacyAddress(address:string):boolean; + isCashAddress(address:string):boolean; + // Test for address network. + isMainnetAddress(address:string):boolean; + isTestnetAddress(address:string):boolean; + // Test for address type. + isP2PKHAddress(address:string): boolean; + isP2SHAddress(address:string):boolean; + // Detect address format. + detectAddressFormat(address:string):string; + // Detect address network. + detectAddressNetwork(address:string):string; + // Detect address type. + detectAddressType(address:string):string; + fromXPub(xpub:string, path:string):string; + fromOutputScript(scriptPubKey:string):string; + + details(address:string):string; + utxo(address:string): string; + + unconfirmed(address:string):string; + +} \ No newline at end of file diff --git a/@types/bitbox-cli.d.ts b/@types/bitbox-cli.d.ts new file mode 100644 index 00000000..59bfa581 --- /dev/null +++ b/@types/bitbox-cli.d.ts @@ -0,0 +1,48 @@ +// 3rd party deps +import axios from 'axios'; +import Bitcoin from 'bitcoincashjs-lib'; + +// local deps +import BitcoinCash from './BitcoinCash'; +import Crypto from './Crypto'; +import Util from './Util'; +import Block from './Block'; +import Blockchain from './Blockchain'; +import Control from './Control'; +import Generating from './Generating'; +import Mining from './Mining'; +import Network from './Network'; +import RawTransactions from './RawTransactions'; +import Mnemonic from './Mnemonic'; +import Address from './Address'; +import HDNode from './HDNode'; +import Transaction from './Transaction'; +import TransactionBuilder from './TransactionBuilder'; +import ECPair from './ECPair'; +import Script from './Script'; + +export class BITBOXCli { + + restURL:string; + Address:string; + BitcoinCash:string; + Block:string; + Blockchain:string; + Control:string; + Generating:string; + Mining:string; + + Crypto:Crypto; + ECPair:ECPair; + HDNode:HDNode; + Mnemonic:Mnemonic; + Network: Network; + RawTransactions:RawTransactions; + Script:Script; + Transaction: Transaction; + TransactionBuilder:TransactionBuilder; + Util:Util; + + constructor(config:Object); + +} From bd57f276b1b80daabce3b0068bc956424bcc7e48 Mon Sep 17 00:00:00 2001 From: amitrana007 <40827367+amitrana007@users.noreply.github.com> Date: Wed, 11 Jul 2018 00:35:21 +0530 Subject: [PATCH 010/480] committing .d.ts files --- @types/BitcoinCash.d.ts | 65 +++++++++++++++++++++++++++++++++++++++++ @types/Block.d.ts | 8 +++++ @types/Blockchain.d.ts | 37 +++++++++++++++++++++++ @types/Control.d.ts | 10 +++++++ @types/Crypto.d.ts | 22 ++++++++++++++ @types/bitbox-cli.d.ts | 2 +- package-lock.json | 30 ++++++++++++++----- tsconfig.json | 35 ++++++++++++++++++++++ 8 files changed, 200 insertions(+), 9 deletions(-) create mode 100644 @types/BitcoinCash.d.ts create mode 100644 @types/Block.d.ts create mode 100644 @types/Blockchain.d.ts create mode 100644 @types/Control.d.ts create mode 100644 @types/Crypto.d.ts create mode 100644 tsconfig.json diff --git a/@types/BitcoinCash.d.ts b/@types/BitcoinCash.d.ts new file mode 100644 index 00000000..557612f2 --- /dev/null +++ b/@types/BitcoinCash.d.ts @@ -0,0 +1,65 @@ +import Bitcoin from 'bitcoincashjs-lib'; +import bchaddr from 'bchaddrjs'; +import sb from 'satoshi-bitcoin'; +import bitcoinMessage from 'bitcoinjs-message'; +import bs58 from 'bs58'; +import bip21 from 'bip21'; +import coininfo from'coininfo'; +import bip38 from 'bip38'; +import wif from 'wif'; + +//let Buffer = require('safe-buffer').Buffer; + +export default class BitcoinCash { + // Translate coins to satoshi value + toSatoshi(coins:number):number; + // Translate satoshi to coin value + toBitcoinCash(satoshis:number):number; + // Translate satoshi to bits denomination + toBits(satoshis:number):number; + + // Translate satoshi to bits denomination + // TODO remove in 2.0 + satsToBits(satoshis:number):number; + + // Translate bits to satoshi denomination + // TODO remove in 2.0 + // fromBits(bits) { + // return this.toInteger(bits * 100); + // } + // + // // Translate bits to satoshi denomination + // satsFromBits(bits) { + // return this.toInteger(bits * 100); + // } + // + // toInteger(number){ + // return Math.round( // round to nearest integer + // Number(number) // type cast your input + // ); + // } + + // sign message + signMessageWithPrivKey(privateKeyWIF:string, message:string):string; + + // verify message + verifyMessage(address : string, signature: string, message:string) :true; + + // encode base58Check + encodeBase58Check(hex:string):string; + + // decode base58Check + decodeBase58Check(address:string):string; + + // encode bip21 url + encodeBIP21(address:string, options:object):string; + + // decode bip21 url + decodeBIP21(url:string):string; + + getByteCount(inputs:string[], outputs:string[]):number; + encryptBIP38(privKeyWIF:string, passphrase:string):string; + + decryptBIP38(encryptedKey:string, passphrase:string, network:string):string; + +} diff --git a/@types/Block.d.ts b/@types/Block.d.ts new file mode 100644 index 00000000..5175ea53 --- /dev/null +++ b/@types/Block.d.ts @@ -0,0 +1,8 @@ +import axios from 'axios'; +export default class Block { + constructor(restURL:string); + + details(id:number):string; +} + + diff --git a/@types/Blockchain.d.ts b/@types/Blockchain.d.ts new file mode 100644 index 00000000..6815bf13 --- /dev/null +++ b/@types/Blockchain.d.ts @@ -0,0 +1,37 @@ +import axios from 'axios'; +export default class Blockchain { + constructor(restURL:string); + getBestBlockHash():any; + + getBlock(blockhash:string, verbose?:boolean):any; + + getBlockchainInfo():any; + + getBlockCount() :any; + + getBlockHash(height:number):any; + + getBlockHeader(hash:string, verbose?:boolean):any; + + getChainTips():any; + + getDifficulty():any; + + getMempoolAncestors(txid:string, verbose?:boolean):any; + + getMempoolDescendants(txid:string, verbose?:boolean):any; + + getMempoolEntry(txid:string):any; + + getMempoolInfo():any; + getRawMempool(verbose?:boolean):any; + getTxOut(txid:string, n:number, include_mempool?:boolean):any; + getTxOutProof(txids:string, blockhash:string):any; + preciousBlock(blockhash:string):any; + pruneBlockchain(height:number):any; + + verifyChain(checklevel?:number, nblocks?:number):any; + verifyTxOutProof(proof:string):any; +} + + diff --git a/@types/Control.d.ts b/@types/Control.d.ts new file mode 100644 index 00000000..adfc3529 --- /dev/null +++ b/@types/Control.d.ts @@ -0,0 +1,10 @@ +import axios from 'axios'; +export default class Control { + constructor(restURL:string); + getInfo():any; + + getMemoryInfo():any; + +} + + diff --git a/@types/Crypto.d.ts b/@types/Crypto.d.ts new file mode 100644 index 00000000..c42984b8 --- /dev/null +++ b/@types/Crypto.d.ts @@ -0,0 +1,22 @@ +import randomBytes from 'randombytes'; +import BitcoinCash from './BitcoinCash'; +import Bitcoin from 'bitcoincashjs-lib'; +//let bc = new BitcoinCash(); + +export default class Crypto { + // Utility class to wrap NodeJS's crypto module + // https://nodejs.org/api/crypto.html + static sha256(buffer:string):string; + + static ripemd160(buffer:string):string; + + static hash256(buffer:string):string; + + static hash160(buffer:string):string; + + static randomBytes(size:number): { + return randomBytes(size); + } +} + + diff --git a/@types/bitbox-cli.d.ts b/@types/bitbox-cli.d.ts index 59bfa581..0e42fc79 100644 --- a/@types/bitbox-cli.d.ts +++ b/@types/bitbox-cli.d.ts @@ -21,7 +21,7 @@ import TransactionBuilder from './TransactionBuilder'; import ECPair from './ECPair'; import Script from './Script'; -export class BITBOXCli { +export default class BITBOXCli { restURL:string; Address:string; diff --git a/package-lock.json b/package-lock.json index 496034e7..65076ad1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.1.2", + "version": "1.2.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1614,11 +1614,13 @@ }, "balanced-match": { "version": "1.0.0", - "bundled": true + "bundled": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1631,15 +1633,18 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "concat-map": { "version": "0.0.1", - "bundled": true + "bundled": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -1742,7 +1747,8 @@ }, "inherits": { "version": "2.0.3", - "bundled": true + "bundled": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -1752,6 +1758,7 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -1764,17 +1771,20 @@ "minimatch": { "version": "3.0.4", "bundled": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true + "bundled": true, + "optional": true }, "minipass": { "version": "2.2.4", "bundled": true, + "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -1791,6 +1801,7 @@ "mkdirp": { "version": "0.5.1", "bundled": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -1863,7 +1874,8 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "bundled": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -1873,6 +1885,7 @@ "once": { "version": "1.4.0", "bundled": true, + "optional": true, "requires": { "wrappy": "1" } @@ -1978,6 +1991,7 @@ "string-width": { "version": "1.0.2", "bundled": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..cc98e6d2 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,35 @@ +{ + "compileOnSave": true, + "compilerOptions": { + "outDir": "./built", + "allowJs": true, + "module": "commonjs", + "noImplicitAny": false, + "removeComments": true, + "preserveConstEnums": true, + "sourceMap": true, + "target": "es6", + "strictNullChecks": true + + }, + "include": [ + "src/**/*" + ], + "typeRoots": [ + "./node_modules" + ], + "types": [ + "axios", + "bchaddrjs", + "bitcoincashjs-lib", + "satoshi-bitcoin", + "bitcoinjs-message", + "bitcoin-ops", + "bs58", + "bip21", + "coininfo", + "bip38", + "wif" + + ] +} \ No newline at end of file From e59a61a928277975dd5b99aeaaf3b7692d95db03 Mon Sep 17 00:00:00 2001 From: amitrana007 <40827367+amitrana007@users.noreply.github.com> Date: Wed, 11 Jul 2018 17:27:27 +0530 Subject: [PATCH 011/480] uploading type definition files. --- @types/Crypto.d.ts | 8 +- @types/ECPair.d.ts | 20 +++ @types/Generating.d.ts | 6 + @types/HDNode.d.ts | 49 ++++++ @types/Mining.d.ts | 13 ++ @types/Mnemonic.d.ts | 286 +++++++++++++++++++++++++++++++++ @types/Network.d.ts | 66 ++++++++ @types/RawTransactions.d.ts | 14 ++ @types/Script.d.ts | 70 ++++++++ @types/Transaction.d.ts | 22 +++ @types/TransactionBuilder.d.ts | 55 +++++++ @types/Util.d.ts | 7 + 12 files changed, 610 insertions(+), 6 deletions(-) create mode 100644 @types/ECPair.d.ts create mode 100644 @types/Generating.d.ts create mode 100644 @types/HDNode.d.ts create mode 100644 @types/Mining.d.ts create mode 100644 @types/Mnemonic.d.ts create mode 100644 @types/Network.d.ts create mode 100644 @types/RawTransactions.d.ts create mode 100644 @types/Script.d.ts create mode 100644 @types/Transaction.d.ts create mode 100644 @types/TransactionBuilder.d.ts create mode 100644 @types/Util.d.ts diff --git a/@types/Crypto.d.ts b/@types/Crypto.d.ts index c42984b8..754a59de 100644 --- a/@types/Crypto.d.ts +++ b/@types/Crypto.d.ts @@ -14,9 +14,5 @@ export default class Crypto { static hash160(buffer:string):string; - static randomBytes(size:number): { - return randomBytes(size); - } -} - - + static randomBytes(size:number):string; +} \ No newline at end of file diff --git a/@types/ECPair.d.ts b/@types/ECPair.d.ts new file mode 100644 index 00000000..92810661 --- /dev/null +++ b/@types/ECPair.d.ts @@ -0,0 +1,20 @@ +import Bitcoin from 'bitcoincashjs-lib'; +import bchaddr from 'bchaddrjs'; +import coininfo from'coininfo'; + +export default class ECPair { + static fromWIF(privateKeyWIF:string): string; + static toWIF(ecpair:ECPair):string; + + static sign(ecpair:ECPair, buffer:string):string; + + static verify(ecpair:ECPair, buffer:string, signature:string):string; + + static fromPublicKey(pubkeyBuffer:string):string; + + static toPublicKey(ecpair:ECPair):string; + + static toLegacyAddress(ecpair:ECPair):string; + + static toCashAddress(ecpair:ECPair):string; +} \ No newline at end of file diff --git a/@types/Generating.d.ts b/@types/Generating.d.ts new file mode 100644 index 00000000..177ed9bf --- /dev/null +++ b/@types/Generating.d.ts @@ -0,0 +1,6 @@ +import axios from 'axios'; +export default class Generating { + constructor(restURL:string); + + generateToAddress(blocks:number, address:string, maxtries:number):string; +} \ No newline at end of file diff --git a/@types/HDNode.d.ts b/@types/HDNode.d.ts new file mode 100644 index 00000000..4cb352a6 --- /dev/null +++ b/@types/HDNode.d.ts @@ -0,0 +1,49 @@ +import Bitcoin from 'bitcoincashjs-lib'; +import bchaddr from 'bchaddrjs'; +import coininfo from'coininfo'; +// let bip32utils = require('bip32-utils') + +export default class HDNode { + fromSeed(rootSeedBuffer, network:string):Bitcoin.HDNode; + + toLegacyAddress(hdNode:Bitcoin.HDNode):string; + + toCashAddress(hdNode:Bitcoin.HDNode):string; + + toWIF(hdNode:Bitcoin.HDNode):string; + + toXPub(hdNode:Bitcoin.HDNode):string; + + toXPriv(hdNode:Bitcoin.HDNode): string; + + toKeyPair(hdNode:Bitcoin.HDNode): string; + + toPublicKey(hdNode:Bitcoin.HDNode): string; + + fromXPriv(xpriv:string):string; + + fromXPub(xpub:string):string; + + derivePath(hdnode:Bitcoin.HDNode, path:string):string; + + derive(hdnode:Bitcoin.HDNode, path:string):string; + + deriveHardened(hdnode:Bitcoin.HDNode, path):string; + + sign(hdnode:Bitcoin.HDNode, buffer:string):string; + + verify(hdnode:Bitcoin.HDNode, buffer:string, signature:string):boolean; + + isPublic(hdnode:Bitcoin.HDNode):boolean; + + isPrivate(hdnode:Bitcoin.HDNode):boolean; + + toIdentifier(hdnode:Bitcoin.HDNode):string; + + fromBase58(base58:string, network:string):string; + + // + // createChain(hdNode) { + // return new bip32utils.Chain(hdNode); + // } +} \ No newline at end of file diff --git a/@types/Mining.d.ts b/@types/Mining.d.ts new file mode 100644 index 00000000..74d519c9 --- /dev/null +++ b/@types/Mining.d.ts @@ -0,0 +1,13 @@ +import axios from 'axios'; +import { Interface } from 'mocha'; +export default class Mining { + constructor(restURL:string); + + getBlockTemplate(template_request:Interface):any; + + getMiningInfo():any; + + getNetworkHashps(nblocks:number, height:number):any; + + submitBlock(hex:string, parameters:string):any; +} \ No newline at end of file diff --git a/@types/Mnemonic.d.ts b/@types/Mnemonic.d.ts new file mode 100644 index 00000000..5863d2b4 --- /dev/null +++ b/@types/Mnemonic.d.ts @@ -0,0 +1,286 @@ +import Crypto from './Crypto'; + +import BIP39 from 'bip39'; +import randomBytes from 'randombytes'; +import Bitcoin from 'bitcoincashjs-lib'; +import bchaddr from 'bchaddrjs'; +//let Buffer = require('safe-buffer').Buffer + +export default class Mnemonic { + generate(bits = 128, wordlist) { + return BIP39.generateMnemonic(bits, randomBytes, wordlist); + } + + fromEntropy(bytes, wordlist) { + return BIP39.entropyToMnemonic(bytes, wordlist); + } + + toEntropy(mnemonic, wordlist) { + return Buffer.from(BIP39.mnemonicToEntropy(mnemonic, wordlist), 'hex'); + } + + validate(mnemonic, wordlist) { + // Preprocess the words + let words = mnemonic.split(' '); + // Detect blank phrase + if (words.length == 0) { + return "Blank mnemonic"; + } + // Check each word + for (let i = 0; i < words.length; i++) { + let word = words[i]; + if (wordlist.indexOf(word) == -1) { + // Finding closest match to word + let nearestWord = this.findNearestWord(word, wordlist); + return `${word} is not in wordlist, did you mean ${nearestWord}?`; + } + } + // Check the words are valid + let properPhrase = words.join(); + let isValid = BIP39.validateMnemonic(mnemonic, wordlist); + if (!isValid) { + return "Invalid mnemonic"; + } else { + return 'Valid mnemonic'; + } + } + + toSeed(mnemonic, password = '') { + return BIP39.mnemonicToSeed(mnemonic, password); + } + + wordLists() { + return BIP39.wordlists; + } + + toKeypairs(mnemonic, numberOfKeypairs = 1) { + let rootSeedBuffer = this.toSeed(mnemonic, ''); + let hdNode = Bitcoin.HDNode.fromSeedBuffer(rootSeedBuffer); + let HDPath = `44'/145'/0'/0/` + + let accounts = []; + + for (let i = 0; i < numberOfKeypairs; i++) { + let childHDNode = hdNode.derivePath(`${HDPath}${i}`); + accounts.push( + { + privateKeyWIF: childHDNode.keyPair.toWIF(), + address: bchaddr.toCashAddress(childHDNode.getAddress()) + } + ) + }; + return accounts; + } + + findNearestWord(word, wordlist) { + let minDistance = 99; + let closestWord = wordlist[0]; + for (let i = 0; i < wordlist.length; i++) { + let comparedTo = wordlist[i]; + if (comparedTo.indexOf(word) == 0) { + return comparedTo; + } + let distance = Levenshtein.get(word, comparedTo); + if (distance < minDistance) { + closestWord = comparedTo; + minDistance = distance; + } + } + return closestWord; + } +} + + + +// The following code is from: https://raw.githubusercontent.com/iancoleman/bip39/7ff86d4c983f1e8c80b87b31acfd69fcf98c1b82/src/js/levenshtein.js + +/** + * Extend an Object with another Object's properties. + * + * The source objects are specified as additional arguments. + * + * @param dst Object the object to extend. + * + * @return Object the final object. + */ + +var _extend = function(dst) { + var sources = Array.prototype.slice.call(arguments, 1); + for (var i=0; i tmp) { + nextCol = tmp; + } + // deletion + tmp = prevRow[j + 1] + 1; + if (nextCol > tmp) { + nextCol = tmp; + } + + // copy current col value into previous (in preparation for next iteration) + prevRow[j] = curCol; + } + + // copy last col value into previous (in preparation for next iteration) + prevRow[j] = nextCol; + } + + return nextCol; + }, + + /** + * Asynchronously calculate levenshtein distance of the two strings. + * + * @param str1 String the first string. + * @param str2 String the second string. + * @param cb Function callback function with signature: function(Error err, int distance) + * @param [options] Object additional options. + * @param [options.progress] Function progress callback with signature: function(percentComplete) + */ + getAsync: function(str1, str2, cb, options) { + options = _extend({}, { + progress: null + }, options); + + // base cases + if (str1 === str2) return cb(null, 0); + if (str1.length === 0) return cb(null, str2.length); + if (str2.length === 0) return cb(null, str1.length); + + // two rows + var prevRow = new Array(str2.length + 1), + curCol, nextCol, + i, j, tmp, + startTime, currentTime; + + // initialise previous row + for (i=0; i tmp) { + nextCol = tmp; + } + // deletion + tmp = prevRow[j + 1] + 1; + if (nextCol > tmp) { + nextCol = tmp; + } + + // copy current into previous (in preparation for next iteration) + prevRow[j] = curCol; + + // get current time + currentTime = new Date().valueOf(); + } + + // send a progress update? + if (null !== options.progress) { + try { + options.progress.call(null, (i * 100.0/ str1.length)); + } catch (err) { + return cb('Progress callback: ' + err.toString()); + } + } + + // next iteration + _defer(__calculate); + }; + + __calculate(); + } + + }; diff --git a/@types/Network.d.ts b/@types/Network.d.ts new file mode 100644 index 00000000..22fa090e --- /dev/null +++ b/@types/Network.d.ts @@ -0,0 +1,66 @@ +import axios from 'axios'; +export default class Network { + constructor(restURL:string); + + addNode(node:string, command:string):any; + + clearBanned():any; + + disconnectNode(configuration:object):any; + + getAddedNodeInfo(node?:string):any; + + getConnectionCount():any; + + getNetTotals():any; + + getNetworkInfo():any; + + getPeerInfo():any; + // + // listBanned() { + // // List all banned IPs/Subnets. + // return axios.get(`${this.restURL}network/listBanned`) + // .then((response) => { + // return response.data; + // }) + // .catch((error) => { + // return JSON.stringify(error.response.data.error.message); + // }); + // } + + ping():any; + // + // setBan(subnet, command, bantime, absolute) { + // // Attempts add or remove a IP/Subnet from the banned list. + // // + // // Arguments: + // // 1. "subnet" (string, required) The IP/Subnet (see getpeerinfo for nodes ip) with a optional netmask (default is /32 = single ip) + // // 2. "command" (string, required) 'add' to add a IP/Subnet to the list, 'remove' to remove a IP/Subnet from the list + // // 3. "bantime" (numeric, optional) time in seconds how long (or until when if [absolute] is set) the ip is banned (0 or empty means using the default time of 24h which can also be overwritten by the -bantime startup argument) + // // 4. "absolute" (boolean, optional) If set, the bantime must be a absolute timestamp in seconds since epoch (Jan 1 1970 GMT) + // + // return axios.post(`${this.baseurl}network/setban/${subnet}/${command}`) + // .then((response) => { + // return response.data; + // }) + // .catch((error) => { + // return JSON.stringify(error.response.data.error.message); + // }); + // } + // + // setNetworkActive(state) { + // // Disable/enable all p2p network activity. + // // + // // Arguments: + // // 1. "state" (boolean, required) true to enable networking, false to disable + // + // return axios.post(`${this.baseurl}network/setNetworkActive/${state}`) + // .then((response) => { + // return response.data; + // }) + // .catch((error) => { + // return JSON.stringify(error.response.data.error.message); + // }); + // } +} \ No newline at end of file diff --git a/@types/RawTransactions.d.ts b/@types/RawTransactions.d.ts new file mode 100644 index 00000000..392cb180 --- /dev/null +++ b/@types/RawTransactions.d.ts @@ -0,0 +1,14 @@ +import axios from 'axios'; +export default class RawTransactions { + constructor(restURL:string); + + decodeRawTransaction(hex:string):any; + + decodeScript(hex:string):any; + + getRawTransaction(txid:string, verbose?:boolean):any; + + sendRawTransaction(hex:string, allowhighfees?:boolean):any; +} + + diff --git a/@types/Script.d.ts b/@types/Script.d.ts new file mode 100644 index 00000000..37086f8a --- /dev/null +++ b/@types/Script.d.ts @@ -0,0 +1,70 @@ +import Bitcoin from 'bitcoincashjs-lib'; +import opcodes from 'bitcoin-ops'; + +export default class Script { + + opcodes: opcodes; + nullData: null; + + constructor() { + this.opcodes = opcodes; + this.nullData = Bitcoin.script.nullData; + this.multisig = { + input: { + encode: (signatures) => { + let sigs = []; + signatures.forEach((sig) => { + sigs.push(sig); + }) + return Bitcoin.script.multisig.input.encode(sigs) + }, + decode: Bitcoin.script.multisig.input.decode, + check: Bitcoin.script.multisig.input.check, + }, + output: { + encode: (m, pubKeys) => { + let pks = []; + pubKeys.forEach((pubKey) => { + pks.push(pubKey); + }) + return Bitcoin.script.multisig.output.encode(m, pks); + }, + decode: Bitcoin.script.multisig.output.decode, + check: Bitcoin.script.multisig.output.check, + } + }; + this.pubKey = Bitcoin.script.pubKey; + this.pubKeyHash = Bitcoin.script.pubKeyHash; + this.scriptHash = Bitcoin.script.scriptHash; + } + + classifyInput(script) { + return Bitcoin.script.classifyInput(script); + } + + classifyOutput(script) { + return Bitcoin.script.classifyOutput(script); + } + + decode(scriptBuffer) { + return Bitcoin.script.decompile(scriptBuffer); + } + + encode(scriptChunks) { + let arr = []; + scriptChunks.forEach((chunk) => { + arr.push(chunk); + }); + return Bitcoin.script.compile(arr); + } + + toASM(buffer) { + return Bitcoin.script.toASM(buffer); + } + + fromASM(asm) { + return Bitcoin.script.fromASM(asm); + } +} + + diff --git a/@types/Transaction.d.ts b/@types/Transaction.d.ts new file mode 100644 index 00000000..933e5538 --- /dev/null +++ b/@types/Transaction.d.ts @@ -0,0 +1,22 @@ +import Bitcoin from 'bitcoincashjs-lib'; +import axios from 'axios'; + +export default class Transaction { + constructor(restURL:string); + + transaction() { + return new Bitcoin.Transaction(); + } + + fromHex(hex:string):string; + + transactionBuilder(network:string) { + return new Bitcoin.TransactionBuilder(Bitcoin.networks[network]); + } + + fromTransaction(tx) { + return Bitcoin.TransactionBuilder.fromTransaction(tx); + } + + details(txid:string):any; +} \ No newline at end of file diff --git a/@types/TransactionBuilder.d.ts b/@types/TransactionBuilder.d.ts new file mode 100644 index 00000000..c0528837 --- /dev/null +++ b/@types/TransactionBuilder.d.ts @@ -0,0 +1,55 @@ +import Bitcoin from 'bitcoincashjs-lib'; +import bchaddr from 'bchaddrjs'; +import coininfo from'coininfo'; +import bip66 from 'bip66'; +import bip68 from 'bip68'; + +export default class TransactionBuilder { + + constructor(network:string); + { + let bitcoincash = coininfo.bitcoincash.main; + let bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); + this.transaction = new Bitcoin.TransactionBuilder(bitcoincashBitcoinJSLib); + this.DEFAULT_SEQUENCE = 0xffffffff; + this.hashTypes = { + SIGHASH_ALL: 0x01, + SIGHASH_NONE: 0x02, + SIGHASH_SINGLE: 0x03, + SIGHASH_ANYONECANPAY: 0x80, + SIGHASH_BITCOINCASH_BIP143: 0x40, + ADVANCED_TRANSACTION_MARKER: 0x00, + ADVANCED_TRANSACTION_FLAG: 0x01 + }; + this.bip66 = bip66; + this.bip68 = bip68; + } + + addInput(txHash, vout, sequence = this.DEFAULT_SEQUENCE, prevOutScript) { + this.transaction.addInput( + txHash, + vout, + sequence, + prevOutScript + ); + } + + addOutput(scriptPubKey, amount) { + try { + this.transaction.addOutput(bchaddr.toLegacyAddress(scriptPubKey), amount); + } + catch(error) { + this.transaction.addOutput(scriptPubKey, amount); + } + } + + sign(vin, keyPair, redeemScript, hashType = this.hashTypes.SIGHASH_ALL, value) { + let witnessScript; + + this.transaction.sign(vin, keyPair, redeemScript, hashType, value, witnessScript); + } + + build() { + return this.transaction.build(); + } +} \ No newline at end of file diff --git a/@types/Util.d.ts b/@types/Util.d.ts new file mode 100644 index 00000000..29e09adf --- /dev/null +++ b/@types/Util.d.ts @@ -0,0 +1,7 @@ +import axios from 'axios'; + +export default class Util { + + constructor(restURL:string); + validateAddress(address:string):any; +} \ No newline at end of file From 5043b947a7b4277a071228b93358c653c306e028 Mon Sep 17 00:00:00 2001 From: amitrana007 <40827367+amitrana007@users.noreply.github.com> Date: Thu, 12 Jul 2018 16:18:03 +0530 Subject: [PATCH 012/480] Committing .d.ts files --- @types/Address.d.ts | 1 + @types/Mnemonic.d.ts | 256 ++------------------------------- @types/Network.d.ts | 46 +----- @types/Script.d.ts | 64 ++------- @types/Transaction.d.ts | 13 +- @types/TransactionBuilder.d.ts | 29 ++-- 6 files changed, 38 insertions(+), 371 deletions(-) diff --git a/@types/Address.d.ts b/@types/Address.d.ts index 567b3cc3..db8d65ad 100644 --- a/@types/Address.d.ts +++ b/@types/Address.d.ts @@ -10,6 +10,7 @@ export default class Address { // Translate address from any address format into a specific format. toLegacyAddress(address: string): string; toCashAddress(address: string, prefix : boolean): string; + // Test for address format. isLegacyAddress(address:string):boolean; isCashAddress(address:string):boolean; diff --git a/@types/Mnemonic.d.ts b/@types/Mnemonic.d.ts index 5863d2b4..6c083ac0 100644 --- a/@types/Mnemonic.d.ts +++ b/@types/Mnemonic.d.ts @@ -7,87 +7,20 @@ import bchaddr from 'bchaddrjs'; //let Buffer = require('safe-buffer').Buffer export default class Mnemonic { - generate(bits = 128, wordlist) { - return BIP39.generateMnemonic(bits, randomBytes, wordlist); - } + generate(bits:number, wordlist:string[]):string; - fromEntropy(bytes, wordlist) { - return BIP39.entropyToMnemonic(bytes, wordlist); - } + fromEntropy(bytes:string, wordlist:string[]):string; - toEntropy(mnemonic, wordlist) { - return Buffer.from(BIP39.mnemonicToEntropy(mnemonic, wordlist), 'hex'); - } + toEntropy(mnemonic:string, wordlist:string[]):Buffer; - validate(mnemonic, wordlist) { - // Preprocess the words - let words = mnemonic.split(' '); - // Detect blank phrase - if (words.length == 0) { - return "Blank mnemonic"; - } - // Check each word - for (let i = 0; i < words.length; i++) { - let word = words[i]; - if (wordlist.indexOf(word) == -1) { - // Finding closest match to word - let nearestWord = this.findNearestWord(word, wordlist); - return `${word} is not in wordlist, did you mean ${nearestWord}?`; - } - } - // Check the words are valid - let properPhrase = words.join(); - let isValid = BIP39.validateMnemonic(mnemonic, wordlist); - if (!isValid) { - return "Invalid mnemonic"; - } else { - return 'Valid mnemonic'; - } - } + validate(mnemonic:string, wordlist:string[]):string; - toSeed(mnemonic, password = '') { - return BIP39.mnemonicToSeed(mnemonic, password); - } + toSeed(mnemonic:string, password:string):Buffer; - wordLists() { - return BIP39.wordlists; - } + wordLists():string[]; - toKeypairs(mnemonic, numberOfKeypairs = 1) { - let rootSeedBuffer = this.toSeed(mnemonic, ''); - let hdNode = Bitcoin.HDNode.fromSeedBuffer(rootSeedBuffer); - let HDPath = `44'/145'/0'/0/` - - let accounts = []; - - for (let i = 0; i < numberOfKeypairs; i++) { - let childHDNode = hdNode.derivePath(`${HDPath}${i}`); - accounts.push( - { - privateKeyWIF: childHDNode.keyPair.toWIF(), - address: bchaddr.toCashAddress(childHDNode.getAddress()) - } - ) - }; - return accounts; - } - - findNearestWord(word, wordlist) { - let minDistance = 99; - let closestWord = wordlist[0]; - for (let i = 0; i < wordlist.length; i++) { - let comparedTo = wordlist[i]; - if (comparedTo.indexOf(word) == 0) { - return comparedTo; - } - let distance = Levenshtein.get(word, comparedTo); - if (distance < minDistance) { - closestWord = comparedTo; - minDistance = distance; - } - } - return closestWord; - } + toKeypairs(mnemonic:string, numberOfKeypairs:number):any[]; + findNearestWord(word:string, wordlist:string[]):string; } @@ -104,183 +37,16 @@ export default class Mnemonic { * @return Object the final object. */ -var _extend = function(dst) { - var sources = Array.prototype.slice.call(arguments, 1); - for (var i=0; i tmp) { - nextCol = tmp; - } - // deletion - tmp = prevRow[j + 1] + 1; - if (nextCol > tmp) { - nextCol = tmp; - } - - // copy current col value into previous (in preparation for next iteration) - prevRow[j] = curCol; - } - - // copy last col value into previous (in preparation for next iteration) - prevRow[j] = nextCol; - } - - return nextCol; - }, - - /** - * Asynchronously calculate levenshtein distance of the two strings. - * - * @param str1 String the first string. - * @param str2 String the second string. - * @param cb Function callback function with signature: function(Error err, int distance) - * @param [options] Object additional options. - * @param [options.progress] Function progress callback with signature: function(percentComplete) - */ - getAsync: function(str1, str2, cb, options) { - options = _extend({}, { - progress: null - }, options); - - // base cases - if (str1 === str2) return cb(null, 0); - if (str1.length === 0) return cb(null, str2.length); - if (str2.length === 0) return cb(null, str1.length); - - // two rows - var prevRow = new Array(str2.length + 1), - curCol, nextCol, - i, j, tmp, - startTime, currentTime; - - // initialise previous row - for (i=0; i tmp) { - nextCol = tmp; - } - // deletion - tmp = prevRow[j + 1] + 1; - if (nextCol > tmp) { - nextCol = tmp; - } - - // copy current into previous (in preparation for next iteration) - prevRow[j] = curCol; - - // get current time - currentTime = new Date().valueOf(); - } - - // send a progress update? - if (null !== options.progress) { - try { - options.progress.call(null, (i * 100.0/ str1.length)); - } catch (err) { - return cb('Progress callback: ' + err.toString()); - } - } - - // next iteration - _defer(__calculate); - }; - - __calculate(); - } - }; + declare var Levenshtein: number; \ No newline at end of file diff --git a/@types/Network.d.ts b/@types/Network.d.ts index 22fa090e..11b03438 100644 --- a/@types/Network.d.ts +++ b/@types/Network.d.ts @@ -17,50 +17,8 @@ export default class Network { getNetworkInfo():any; getPeerInfo():any; - // - // listBanned() { - // // List all banned IPs/Subnets. - // return axios.get(`${this.restURL}network/listBanned`) - // .then((response) => { - // return response.data; - // }) - // .catch((error) => { - // return JSON.stringify(error.response.data.error.message); - // }); - // } + ping():any; - // - // setBan(subnet, command, bantime, absolute) { - // // Attempts add or remove a IP/Subnet from the banned list. - // // - // // Arguments: - // // 1. "subnet" (string, required) The IP/Subnet (see getpeerinfo for nodes ip) with a optional netmask (default is /32 = single ip) - // // 2. "command" (string, required) 'add' to add a IP/Subnet to the list, 'remove' to remove a IP/Subnet from the list - // // 3. "bantime" (numeric, optional) time in seconds how long (or until when if [absolute] is set) the ip is banned (0 or empty means using the default time of 24h which can also be overwritten by the -bantime startup argument) - // // 4. "absolute" (boolean, optional) If set, the bantime must be a absolute timestamp in seconds since epoch (Jan 1 1970 GMT) - // - // return axios.post(`${this.baseurl}network/setban/${subnet}/${command}`) - // .then((response) => { - // return response.data; - // }) - // .catch((error) => { - // return JSON.stringify(error.response.data.error.message); - // }); - // } - // - // setNetworkActive(state) { - // // Disable/enable all p2p network activity. - // // - // // Arguments: - // // 1. "state" (boolean, required) true to enable networking, false to disable - // - // return axios.post(`${this.baseurl}network/setNetworkActive/${state}`) - // .then((response) => { - // return response.data; - // }) - // .catch((error) => { - // return JSON.stringify(error.response.data.error.message); - // }); - // } + } \ No newline at end of file diff --git a/@types/Script.d.ts b/@types/Script.d.ts index 37086f8a..634db6e8 100644 --- a/@types/Script.d.ts +++ b/@types/Script.d.ts @@ -5,66 +5,24 @@ export default class Script { opcodes: opcodes; nullData: null; + multisig: string; + pubKey:string; + pubKeyHash:string; + scriptHash: string; - constructor() { - this.opcodes = opcodes; - this.nullData = Bitcoin.script.nullData; - this.multisig = { - input: { - encode: (signatures) => { - let sigs = []; - signatures.forEach((sig) => { - sigs.push(sig); - }) - return Bitcoin.script.multisig.input.encode(sigs) - }, - decode: Bitcoin.script.multisig.input.decode, - check: Bitcoin.script.multisig.input.check, - }, - output: { - encode: (m, pubKeys) => { - let pks = []; - pubKeys.forEach((pubKey) => { - pks.push(pubKey); - }) - return Bitcoin.script.multisig.output.encode(m, pks); - }, - decode: Bitcoin.script.multisig.output.decode, - check: Bitcoin.script.multisig.output.check, - } - }; - this.pubKey = Bitcoin.script.pubKey; - this.pubKeyHash = Bitcoin.script.pubKeyHash; - this.scriptHash = Bitcoin.script.scriptHash; - } + constructor(); - classifyInput(script) { - return Bitcoin.script.classifyInput(script); - } + classifyInput(script:any):any; - classifyOutput(script) { - return Bitcoin.script.classifyOutput(script); - } + classifyOutput(script:any):any; - decode(scriptBuffer) { - return Bitcoin.script.decompile(scriptBuffer); - } + decode(scriptBuffer:any):any; - encode(scriptChunks) { - let arr = []; - scriptChunks.forEach((chunk) => { - arr.push(chunk); - }); - return Bitcoin.script.compile(arr); - } + encode(scriptChunks:any):Buffer; - toASM(buffer) { - return Bitcoin.script.toASM(buffer); - } + toASM(buffer:any):any; - fromASM(asm) { - return Bitcoin.script.fromASM(asm); - } + fromASM(asm:any):Buffer; } diff --git a/@types/Transaction.d.ts b/@types/Transaction.d.ts index 933e5538..f43438cd 100644 --- a/@types/Transaction.d.ts +++ b/@types/Transaction.d.ts @@ -4,19 +4,12 @@ import axios from 'axios'; export default class Transaction { constructor(restURL:string); - transaction() { - return new Bitcoin.Transaction(); - } - + transaction():Bitcoin.Transaction; fromHex(hex:string):string; - transactionBuilder(network:string) { - return new Bitcoin.TransactionBuilder(Bitcoin.networks[network]); - } + transactionBuilder(network:string):Bitcoin.TransactionBuilder; - fromTransaction(tx) { - return Bitcoin.TransactionBuilder.fromTransaction(tx); - } + fromTransaction(tx:Bitcoin.Transaction):Bitcoin.TransactionBuilder; details(txid:string):any; } \ No newline at end of file diff --git a/@types/TransactionBuilder.d.ts b/@types/TransactionBuilder.d.ts index c0528837..71783f67 100644 --- a/@types/TransactionBuilder.d.ts +++ b/@types/TransactionBuilder.d.ts @@ -6,26 +6,17 @@ import bip68 from 'bip68'; export default class TransactionBuilder { - constructor(network:string); - { - let bitcoincash = coininfo.bitcoincash.main; - let bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); - this.transaction = new Bitcoin.TransactionBuilder(bitcoincashBitcoinJSLib); - this.DEFAULT_SEQUENCE = 0xffffffff; - this.hashTypes = { - SIGHASH_ALL: 0x01, - SIGHASH_NONE: 0x02, - SIGHASH_SINGLE: 0x03, - SIGHASH_ANYONECANPAY: 0x80, - SIGHASH_BITCOINCASH_BIP143: 0x40, - ADVANCED_TRANSACTION_MARKER: 0x00, - ADVANCED_TRANSACTION_FLAG: 0x01 - }; - this.bip66 = bip66; - this.bip68 = bip68; - } + bitcoincash: coininfo.bitcoincash.main; + bitcoincashBitcoinJSLib: bintcoincash.toBitcoinJS; + transaction: Bitcoin.Transaction; + DEFAULT_SEQUENCE = 0xfffffff; + hashTypes:Enumerator; + bip66 = new bip66(); + bip68 = new bip68(); - addInput(txHash, vout, sequence = this.DEFAULT_SEQUENCE, prevOutScript) { + constructor(network:string); + + addInput(txHash, vout, sequence=string, prevOutScript) { this.transaction.addInput( txHash, vout, From 4797128854063fd45155b89fa65d23e9610e17c4 Mon Sep 17 00:00:00 2001 From: amitrana007 <40827367+amitrana007@users.noreply.github.com> Date: Fri, 13 Jul 2018 00:11:34 +0530 Subject: [PATCH 013/480] uploading TransactionBuilder.d.ts --- @types/TransactionBuilder.d.ts | 38 ++++++++-------------------------- 1 file changed, 9 insertions(+), 29 deletions(-) diff --git a/@types/TransactionBuilder.d.ts b/@types/TransactionBuilder.d.ts index 71783f67..8e5b599a 100644 --- a/@types/TransactionBuilder.d.ts +++ b/@types/TransactionBuilder.d.ts @@ -1,46 +1,26 @@ import Bitcoin from 'bitcoincashjs-lib'; import bchaddr from 'bchaddrjs'; -import coininfo from'coininfo'; +import coininfo from 'coininfo'; import bip66 from 'bip66'; import bip68 from 'bip68'; export default class TransactionBuilder { bitcoincash: coininfo.bitcoincash.main; - bitcoincashBitcoinJSLib: bintcoincash.toBitcoinJS; + bitcoincashBitcoinJSLib: Bitcoin.toBitcoinJS; transaction: Bitcoin.Transaction; - DEFAULT_SEQUENCE = 0xfffffff; + DEFAULT_SEQUENCE:string; hashTypes:Enumerator; - bip66 = new bip66(); - bip68 = new bip68(); + bip66 : bip66; + bip68 : bip68; constructor(network:string); - addInput(txHash, vout, sequence=string, prevOutScript) { - this.transaction.addInput( - txHash, - vout, - sequence, - prevOutScript - ); - } + addInput(txHash:string, vout:string, sequence:string, prevOutScript:string):void; - addOutput(scriptPubKey, amount) { - try { - this.transaction.addOutput(bchaddr.toLegacyAddress(scriptPubKey), amount); - } - catch(error) { - this.transaction.addOutput(scriptPubKey, amount); - } - } + addOutput(scriptPubKey:string, amount:number):void; - sign(vin, keyPair, redeemScript, hashType = this.hashTypes.SIGHASH_ALL, value) { - let witnessScript; + sign(vin:string, keyPair:string, redeemScript:string, hashType:Enumerator, value:any):void; - this.transaction.sign(vin, keyPair, redeemScript, hashType, value, witnessScript); - } - - build() { - return this.transaction.build(); - } + build():Bitcoin.Transaction; } \ No newline at end of file From f78906586320008cc90c04752b8890f37cf1cd10 Mon Sep 17 00:00:00 2001 From: amitrana007 <40827367+amitrana007@users.noreply.github.com> Date: Fri, 13 Jul 2018 00:13:36 +0530 Subject: [PATCH 014/480] committing tsconfig.json --- tsconfig.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tsconfig.json b/tsconfig.json index cc98e6d2..bba788e1 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -12,11 +12,18 @@ "strictNullChecks": true }, + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "exclude": [ + "node_modlues" + ], "include": [ "src/**/*" ], "typeRoots": [ - "./node_modules" + "./@types" ], "types": [ "axios", From 6772b25559484257aa1015322bb7bc5034591e6a Mon Sep 17 00:00:00 2001 From: amitrana007 <40827367+amitrana007@users.noreply.github.com> Date: Fri, 13 Jul 2018 16:13:19 +0530 Subject: [PATCH 015/480] committing Script.d.ts --- @types/Script.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/@types/Script.d.ts b/@types/Script.d.ts index 634db6e8..b2bbb21d 100644 --- a/@types/Script.d.ts +++ b/@types/Script.d.ts @@ -18,11 +18,11 @@ export default class Script { decode(scriptBuffer:any):any; - encode(scriptChunks:any):Buffer; + encode(scriptChunks:any):Bitcoin.Buffer; toASM(buffer:any):any; - fromASM(asm:any):Buffer; + fromASM(asm:any):Bitcoin.Buffer; } From 4972fac62fc0111f8490662326fb2fd5df24ba8a Mon Sep 17 00:00:00 2001 From: James Cramer Date: Fri, 13 Jul 2018 15:59:59 -0400 Subject: [PATCH 016/480] not needed --- tsconfig.json | 42 ------------------------------------------ 1 file changed, 42 deletions(-) delete mode 100644 tsconfig.json diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index bba788e1..00000000 --- a/tsconfig.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "compileOnSave": true, - "compilerOptions": { - "outDir": "./built", - "allowJs": true, - "module": "commonjs", - "noImplicitAny": false, - "removeComments": true, - "preserveConstEnums": true, - "sourceMap": true, - "target": "es6", - "strictNullChecks": true - - }, - "noImplicitAny": true, - "noImplicitThis": true, - "strictNullChecks": true, - "strictFunctionTypes": true, - "exclude": [ - "node_modlues" - ], - "include": [ - "src/**/*" - ], - "typeRoots": [ - "./@types" - ], - "types": [ - "axios", - "bchaddrjs", - "bitcoincashjs-lib", - "satoshi-bitcoin", - "bitcoinjs-message", - "bitcoin-ops", - "bs58", - "bip21", - "coininfo", - "bip38", - "wif" - - ] -} \ No newline at end of file From be187a5551ec15dd814f88ab13f10685bb102cfc Mon Sep 17 00:00:00 2001 From: James Cramer Date: Fri, 13 Jul 2018 16:02:23 -0400 Subject: [PATCH 017/480] added post-build script & node typings --- package-lock.json | 2651 ++++++++++++++++++++++----------------------- package.json | 2 + 2 files changed, 1283 insertions(+), 1370 deletions(-) diff --git a/package-lock.json b/package-lock.json index 65076ad1..930b02cb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,12 @@ "samsam": "1.3.0" } }, + "@types/node": { + "version": "10.5.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.2.tgz", + "integrity": "sha512-m9zXmifkZsMHZBOyxZWilMwmTlpC8x5Ty360JKTiXvlXZfBWYpsg9ZZvP/Ye+iZUh+Q+MxDLjItVTWIsfwz+8Q==", + "dev": true + }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -23,8 +29,8 @@ "resolved": "https://registry.npmjs.org/ammo/-/ammo-1.0.1.tgz", "integrity": "sha1-j4rdFM1Jve3jurOj4OvK8h0D3os=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x" + "boom": "2.10.1", + "hoek": "2.16.3" } }, "ansi-regex": { @@ -43,8 +49,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "optional": true, "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" + "micromatch": "2.3.11", + "normalize-path": "2.1.1" } }, "arr-diff": { @@ -53,7 +59,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "optional": true, "requires": { - "arr-flatten": "^1.0.1" + "arr-flatten": "1.1.0" } }, "arr-flatten": { @@ -93,8 +99,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=", "requires": { - "follow-redirects": "^1.2.5", - "is-buffer": "^1.1.5" + "follow-redirects": "1.5.0", + "is-buffer": "1.1.6" } }, "babel-cli": { @@ -102,21 +108,21 @@ "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", "requires": { - "babel-core": "^6.26.0", - "babel-polyfill": "^6.26.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "chokidar": "^1.6.1", - "commander": "^2.11.0", - "convert-source-map": "^1.5.0", - "fs-readdir-recursive": "^1.0.0", - "glob": "^7.1.2", - "lodash": "^4.17.4", - "output-file-sync": "^1.1.2", - "path-is-absolute": "^1.0.1", - "slash": "^1.0.0", - "source-map": "^0.5.6", - "v8flags": "^2.1.1" + "babel-core": "6.26.3", + "babel-polyfill": "6.26.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "chokidar": "1.7.0", + "commander": "2.15.1", + "convert-source-map": "1.5.1", + "fs-readdir-recursive": "1.1.0", + "glob": "7.1.2", + "lodash": "4.17.10", + "output-file-sync": "1.1.2", + "path-is-absolute": "1.0.1", + "slash": "1.0.0", + "source-map": "0.5.7", + "v8flags": "2.1.1" } }, "babel-code-frame": { @@ -124,9 +130,9 @@ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" }, "dependencies": { "chalk": { @@ -134,11 +140,11 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { - "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" + "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" } } } @@ -148,25 +154,25 @@ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.1", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.5.1", + "debug": "2.6.9", + "json5": "0.5.1", + "lodash": "4.17.10", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "slash": "1.0.0", + "source-map": "0.5.7" }, "dependencies": { "debug": { @@ -184,14 +190,14 @@ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.10", + "source-map": "0.5.7", + "trim-right": "1.0.1" } }, "babel-helper-builder-binary-assignment-operator-visitor": { @@ -199,9 +205,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "requires": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-explode-assignable-expression": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-builder-react-jsx": { @@ -209,9 +215,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "esutils": "^2.0.2" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "esutils": "2.0.2" } }, "babel-helper-call-delegate": { @@ -219,10 +225,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-define-map": { @@ -230,10 +236,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.10" } }, "babel-helper-explode-assignable-expression": { @@ -241,9 +247,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-function-name": { @@ -251,11 +257,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "requires": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-get-function-arity": { @@ -263,8 +269,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-hoist-variables": { @@ -272,8 +278,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-optimise-call-expression": { @@ -281,8 +287,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-regex": { @@ -290,9 +296,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.10" } }, "babel-helper-remap-async-to-generator": { @@ -300,11 +306,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-replace-supers": { @@ -312,12 +318,12 @@ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "requires": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-optimise-call-expression": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helpers": { @@ -325,8 +331,8 @@ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-messages": { @@ -334,7 +340,7 @@ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-check-es2015-constants": { @@ -342,7 +348,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-syntax-async-functions": { @@ -375,9 +381,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-functions": "6.13.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-arrow-functions": { @@ -385,7 +391,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -393,7 +399,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -401,11 +407,11 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "requires": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.10" } }, "babel-plugin-transform-es2015-classes": { @@ -413,15 +419,15 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "requires": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-define-map": "6.26.0", + "babel-helper-function-name": "6.24.1", + "babel-helper-optimise-call-expression": "6.24.1", + "babel-helper-replace-supers": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-computed-properties": { @@ -429,8 +435,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-destructuring": { @@ -438,7 +444,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -446,8 +452,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-for-of": { @@ -455,7 +461,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -463,9 +469,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-literals": { @@ -473,7 +479,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -481,9 +487,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -491,10 +497,10 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-modules-systemjs": { @@ -502,9 +508,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-modules-umd": { @@ -512,9 +518,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "requires": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-object-super": { @@ -522,8 +528,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "requires": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" + "babel-helper-replace-supers": "6.24.1", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -531,12 +537,12 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "requires": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-call-delegate": "6.24.1", + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-shorthand-properties": { @@ -544,8 +550,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-spread": { @@ -553,7 +559,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -561,9 +567,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-template-literals": { @@ -571,7 +577,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -579,7 +585,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -587,9 +593,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "regexpu-core": "2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -597,9 +603,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", + "babel-plugin-syntax-exponentiation-operator": "6.13.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-flow-strip-types": { @@ -607,8 +613,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", "requires": { - "babel-plugin-syntax-flow": "^6.18.0", - "babel-runtime": "^6.22.0" + "babel-plugin-syntax-flow": "6.18.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-react-display-name": { @@ -616,7 +622,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-react-jsx": { @@ -624,9 +630,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", "requires": { - "babel-helper-builder-react-jsx": "^6.24.1", - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-builder-react-jsx": "6.26.0", + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-react-jsx-self": { @@ -634,8 +640,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", "requires": { - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-react-jsx-source": { @@ -643,8 +649,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", "requires": { - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-regenerator": { @@ -652,7 +658,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "requires": { - "regenerator-transform": "^0.10.0" + "regenerator-transform": "0.10.1" } }, "babel-plugin-transform-strict-mode": { @@ -660,8 +666,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-polyfill": { @@ -669,9 +675,9 @@ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "requires": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" + "babel-runtime": "6.26.0", + "core-js": "2.5.7", + "regenerator-runtime": "0.10.5" }, "dependencies": { "regenerator-runtime": { @@ -686,36 +692,36 @@ "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-to-generator": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.23.0", - "babel-plugin-transform-es2015-classes": "^6.23.0", - "babel-plugin-transform-es2015-computed-properties": "^6.22.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", - "babel-plugin-transform-es2015-for-of": "^6.23.0", - "babel-plugin-transform-es2015-function-name": "^6.22.0", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.22.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-umd": "^6.23.0", - "babel-plugin-transform-es2015-object-super": "^6.22.0", - "babel-plugin-transform-es2015-parameters": "^6.23.0", - "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", - "babel-plugin-transform-exponentiation-operator": "^6.22.0", - "babel-plugin-transform-regenerator": "^6.22.0", - "browserslist": "^3.2.6", - "invariant": "^2.2.2", - "semver": "^5.3.0" + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-async-to-generator": "6.24.1", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-exponentiation-operator": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0", + "browserslist": "3.2.8", + "invariant": "2.2.4", + "semver": "5.5.0" } }, "babel-preset-es2015": { @@ -723,30 +729,30 @@ "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.24.1", - "babel-plugin-transform-es2015-classes": "^6.24.1", - "babel-plugin-transform-es2015-computed-properties": "^6.24.1", - "babel-plugin-transform-es2015-destructuring": "^6.22.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", - "babel-plugin-transform-es2015-for-of": "^6.22.0", - "babel-plugin-transform-es2015-function-name": "^6.24.1", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-umd": "^6.24.1", - "babel-plugin-transform-es2015-object-super": "^6.24.1", - "babel-plugin-transform-es2015-parameters": "^6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", - "babel-plugin-transform-regenerator": "^6.24.1" + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0" } }, "babel-preset-flow": { @@ -754,7 +760,7 @@ "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", "requires": { - "babel-plugin-transform-flow-strip-types": "^6.22.0" + "babel-plugin-transform-flow-strip-types": "6.22.0" } }, "babel-preset-react": { @@ -762,12 +768,12 @@ "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", "requires": { - "babel-plugin-syntax-jsx": "^6.3.13", - "babel-plugin-transform-react-display-name": "^6.23.0", - "babel-plugin-transform-react-jsx": "^6.24.1", - "babel-plugin-transform-react-jsx-self": "^6.22.0", - "babel-plugin-transform-react-jsx-source": "^6.22.0", - "babel-preset-flow": "^6.23.0" + "babel-plugin-syntax-jsx": "6.18.0", + "babel-plugin-transform-react-display-name": "6.25.0", + "babel-plugin-transform-react-jsx": "6.24.1", + "babel-plugin-transform-react-jsx-self": "6.22.0", + "babel-plugin-transform-react-jsx-source": "6.22.0", + "babel-preset-flow": "6.23.0" } }, "babel-register": { @@ -775,13 +781,13 @@ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" + "babel-core": "6.26.3", + "babel-runtime": "6.26.0", + "core-js": "2.5.7", + "home-or-tmp": "2.0.0", + "lodash": "4.17.10", + "mkdirp": "0.5.1", + "source-map-support": "0.4.18" } }, "babel-runtime": { @@ -789,8 +795,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "babel-template": { @@ -798,11 +804,11 @@ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.10" } }, "babel-traverse": { @@ -810,15 +816,15 @@ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.4", + "lodash": "4.17.10" }, "dependencies": { "debug": { @@ -836,10 +842,10 @@ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.10", + "to-fast-properties": "1.0.3" } }, "babylon": { @@ -857,7 +863,7 @@ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.4.tgz", "integrity": "sha512-UYOadoSIkEI/VrRGSG6qp93rp2WdokiAiNYDfGW5qURAY8GiAQkvMbwNNSDYiVJopqv4gCna7xqf4rrNGp+5AA==", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "base64-js": { @@ -870,15 +876,10 @@ "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.1.tgz", "integrity": "sha512-esOfL+EnG+qPgqAPl4NxWngDIJIEs35dcV6wU0NP6bxBtc363fYm7xhNtC1BRVagDLSbMNwyI27rkWXwN5i6yg==", "requires": { - "bs58check": "^2.1.1", - "cashaddrjs": "^0.2.7" + "bs58check": "2.1.1", + "cashaddrjs": "0.2.8" } }, - "bech32": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.3.tgz", - "integrity": "sha512-yuVFUvrNcoJi0sv5phmqc6P+Fl1HjRDRNOOkHY2X/3LBy2bIGNSFx4fZ95HMaXHupuS7cZR15AsvtmCIF4UEyg==" - }, "big-integer": { "version": "1.6.31", "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.31.tgz", @@ -905,25 +906,18 @@ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz", "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==" }, - "bip21": { - "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "from": "github:Bitcoin-com/bip21", - "requires": { - "qs": "^6.3.0" - } - }, "bip38": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", "integrity": "sha512-22KDak0RDyghFbR0Si7wyq9IgY423YzGYzWLpGeofH3DaolOQqjD3mNN08eFoubKlbyclOQKFwtONMv2SD9V3A==", "requires": { - "bigi": "^1.2.0", - "browserify-aes": "^1.0.1", - "bs58check": "<3.0.0", - "buffer-xor": "^1.0.2", - "create-hash": "^1.1.1", - "ecurve": "^1.0.0", - "scryptsy": "^2.0.0" + "bigi": "1.4.2", + "browserify-aes": "1.2.0", + "bs58check": "2.1.1", + "buffer-xor": "1.0.3", + "create-hash": "1.2.0", + "ecurve": "1.0.6", + "scryptsy": "2.0.0" } }, "bip39": { @@ -931,11 +925,11 @@ "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", "requires": { - "create-hash": "^1.1.0", - "pbkdf2": "^3.0.9", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "unorm": "^1.3.3" + "create-hash": "1.2.0", + "pbkdf2": "3.0.16", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2", + "unorm": "1.4.1" } }, "bip66": { @@ -943,7 +937,7 @@ "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "bip68": { @@ -951,48 +945,16 @@ "resolved": "https://registry.npmjs.org/bip68/-/bip68-1.0.4.tgz", "integrity": "sha512-O1htyufFTYy3EO0JkHg2CLykdXEtV2ssqw47Gq9A0WByp662xpJnMEB9m43LZjsSDjIAOozWRExlFQk2hlV1XQ==" }, - "bitcoin-ops": { - "version": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", - "from": "github:Bitcoin-com/bitcoincash-ops" - }, - "bitcoincashjs-lib": { - "version": "github:Bitcoin-com/bitcoincashjs-lib#0a7fc7cf23551503f57689db4c930b8136db954c", - "from": "github:Bitcoin-com/bitcoincashjs-lib", - "requires": { - "bech32": "^1.1.2", - "bigi": "^1.4.0", - "bip66": "^1.1.0", - "bitcoin-ops": "^1.3.0", - "bs58check": "^2.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.3", - "ecurve": "^1.0.0", - "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "^1.0.1", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "typeforce": "^1.11.3", - "varuint-bitcoin": "^1.0.4", - "wif": "^2.0.1" - }, - "dependencies": { - "bitcoin-ops": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz", - "integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow==" - } - } - }, "bitcoinjs-message": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", "requires": { - "bs58check": "^2.0.2", - "buffer-equals": "^1.0.3", - "create-hash": "^1.1.2", - "secp256k1": "^3.0.1", - "varuint-bitcoin": "^1.0.1" + "bs58check": "2.1.1", + "buffer-equals": "1.0.4", + "create-hash": "1.2.0", + "secp256k1": "3.5.0", + "varuint-bitcoin": "1.1.0" } }, "bn.js": { @@ -1005,7 +967,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } }, "brace-expansion": { @@ -1013,7 +975,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -1023,9 +985,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "optional": true, "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" } }, "brorand": { @@ -1043,12 +1005,12 @@ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "buffer-xor": "1.0.3", + "cipher-base": "1.0.4", + "create-hash": "1.2.0", + "evp_bytestokey": "1.0.3", + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "browserslist": { @@ -1056,8 +1018,8 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "requires": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" + "caniuse-lite": "1.0.30000855", + "electron-to-chromium": "1.3.48" } }, "bs58": { @@ -1065,7 +1027,7 @@ "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", "requires": { - "base-x": "^3.0.2" + "base-x": "3.0.4" } }, "bs58check": { @@ -1073,8 +1035,8 @@ "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.1.tgz", "integrity": "sha512-okRQiWc5FJuA2VOwQ1hB7Sf0MyEFg/EwRN12h4b8HrJoGkZ3xq1CGjkaAfYloLcZyqixQnO5mhPpN6IcHSplVg==", "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0" + "bs58": "4.0.1", + "create-hash": "1.2.0" } }, "buffer": { @@ -1082,8 +1044,8 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.1.0.tgz", "integrity": "sha512-YkIRgwsZwJWTnyQrsBTWefizHh+8GYj3kbL1BTiAQ/9pwpino0G7B2gp5tx/FUBqUlvtxV85KNR3mwfAtv15Yw==", "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" + "base64-js": "1.3.0", + "ieee754": "1.1.12" } }, "buffer-equals": { @@ -1111,7 +1073,7 @@ "resolved": "https://registry.npmjs.org/can-promise/-/can-promise-0.0.1.tgz", "integrity": "sha512-gzVrHyyrvgt0YpDm7pn04MQt8gjh0ZAhN4ZDyCRtGl6YnuuK6b4aiUTD7G52r9l4YNmxfTtEscb92vxtAlL6XQ==", "requires": { - "window-or-global": "^1.0.1" + "window-or-global": "1.0.1" } }, "caniuse-lite": { @@ -1124,7 +1086,7 @@ "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.2.8.tgz", "integrity": "sha512-oezXpKZRjavdRB1QjBamfHFDzYescGFn9dWMbijP4fgXrqMdBygOqaPNW4phf7zpRD4+oW7aaFfFklF72/szaA==", "requires": { - "big-integer": "^1.6.26" + "big-integer": "1.6.31" } }, "chai": { @@ -1133,12 +1095,12 @@ "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", "dev": true, "requires": { - "assertion-error": "^1.0.1", - "check-error": "^1.0.1", - "deep-eql": "^3.0.0", - "get-func-name": "^2.0.0", - "pathval": "^1.0.0", - "type-detect": "^4.0.0" + "assertion-error": "1.1.0", + "check-error": "1.0.2", + "deep-eql": "3.0.1", + "get-func-name": "2.0.0", + "pathval": "1.1.0", + "type-detect": "4.0.8" } }, "chalk": { @@ -1146,9 +1108,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.4.0" }, "dependencies": { "ansi-styles": { @@ -1156,7 +1118,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "color-convert": "^1.9.0" + "color-convert": "1.9.2" } }, "supports-color": { @@ -1164,7 +1126,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -1181,15 +1143,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "optional": true, "requires": { - "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" + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.2.4", + "glob-parent": "2.0.0", + "inherits": "2.0.1", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" } }, "cipher-base": { @@ -1197,8 +1159,8 @@ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "clear": { @@ -1211,9 +1173,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" }, "dependencies": { "string-width": { @@ -1221,9 +1183,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -1233,13 +1195,6 @@ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, - "coininfo": { - "version": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", - "from": "github:Bitcoin-com/coininfo", - "requires": { - "safe-buffer": "^5.1.1" - } - }, "color-convert": { "version": "1.9.2", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", @@ -1283,15 +1238,15 @@ "resolved": "https://registry.npmjs.org/corsproxy/-/corsproxy-1.5.0.tgz", "integrity": "sha1-KUge0hXuWxvWkkx5Fc+I/LE8EGE=", "requires": { - "ejs": "^2.3.3", - "good": "^6.3.0", - "good-console": "^5.0.3", - "h2o2": "^4.0.1", - "hapi": "^9.0.2", - "hapi-cors-headers": "^1.0.0", - "http-proxy": "~1.11", - "inert": "^3.0.1", - "vision": "^3.0.0" + "ejs": "2.6.1", + "good": "6.6.3", + "good-console": "5.3.2", + "h2o2": "4.0.2", + "hapi": "9.5.1", + "hapi-cors-headers": "1.0.3", + "http-proxy": "1.11.3", + "inert": "3.2.1", + "vision": "3.0.0" } }, "cp-file": { @@ -1299,11 +1254,11 @@ "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-5.0.0.tgz", "integrity": "sha1-vHAP0wyjLSTUbH+wK5kuQ1/FqXg=", "requires": { - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "nested-error-stacks": "^2.0.0", - "pify": "^3.0.0", - "safe-buffer": "^5.0.1" + "graceful-fs": "4.1.11", + "make-dir": "1.3.0", + "nested-error-stacks": "2.0.1", + "pify": "3.0.0", + "safe-buffer": "5.1.2" } }, "create-hash": { @@ -1311,11 +1266,11 @@ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" + "cipher-base": "1.0.4", + "inherits": "2.0.1", + "md5.js": "1.3.4", + "ripemd160": "2.0.2", + "sha.js": "2.4.11" } }, "create-hmac": { @@ -1323,12 +1278,12 @@ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "cipher-base": "1.0.4", + "create-hash": "1.2.0", + "inherits": "2.0.1", + "ripemd160": "2.0.2", + "safe-buffer": "5.1.2", + "sha.js": "2.4.11" } }, "cross-spawn": { @@ -1336,9 +1291,9 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.1" }, "dependencies": { "lru-cache": { @@ -1346,8 +1301,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } } } @@ -1371,7 +1326,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "^4.0.0" + "type-detect": "4.0.8" } }, "detect-indent": { @@ -1379,7 +1334,7 @@ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "diff": { @@ -1397,9 +1352,9 @@ "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", "requires": { - "browserify-aes": "^1.0.6", - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4" + "browserify-aes": "1.2.0", + "create-hash": "1.2.0", + "create-hmac": "1.1.7" } }, "ecurve": { @@ -1407,8 +1362,8 @@ "resolved": "https://registry.npmjs.org/ecurve/-/ecurve-1.0.6.tgz", "integrity": "sha512-/BzEjNfiSuB7jIWKcS/z8FK9jNjmEWvUV2YZ4RLSmcDtP7Lq0m6FvDuSnJpBlDpGRpfRQeTLGLBI8H+kEv0r+w==", "requires": { - "bigi": "^1.1.0", - "safe-buffer": "^5.0.1" + "bigi": "1.4.2", + "safe-buffer": "5.1.2" } }, "ejs": { @@ -1426,13 +1381,13 @@ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" + "bn.js": "4.11.8", + "brorand": "1.1.0", + "hash.js": "1.1.4", + "hmac-drbg": "1.0.1", + "inherits": "2.0.1", + "minimalistic-assert": "1.0.1", + "minimalistic-crypto-utils": "1.0.1" } }, "error-ex": { @@ -1440,7 +1395,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" } }, "escape-string-regexp": { @@ -1463,8 +1418,8 @@ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "md5.js": "1.3.4", + "safe-buffer": "5.1.2" } }, "execa": { @@ -1472,13 +1427,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "requires": { - "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" + "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" } }, "expand-brackets": { @@ -1487,7 +1442,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "optional": true, "requires": { - "is-posix-bracket": "^0.1.0" + "is-posix-bracket": "0.1.1" } }, "expand-range": { @@ -1496,7 +1451,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "optional": true, "requires": { - "fill-range": "^2.1.0" + "fill-range": "2.2.4" } }, "extglob": { @@ -1505,7 +1460,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "optional": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "figlet": { @@ -1525,11 +1480,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "optional": true, "requires": { - "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": "2.1.0", + "isobject": "2.1.0", + "randomatic": "3.0.0", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" } }, "find-up": { @@ -1537,7 +1492,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "flow-bin": { @@ -1551,7 +1506,7 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.0.tgz", "integrity": "sha512-fdrt472/9qQ6Kgjvb935ig6vJCuofpBUD14f9Vb+SLlm7xIe4Qva5gey8EKtv8lp7ahE1wilg3xL1znpVGtZIA==", "requires": { - "debug": "^3.1.0" + "debug": "3.1.0" } }, "for-in": { @@ -1566,7 +1521,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "optional": true, "requires": { - "for-in": "^1.0.1" + "for-in": "1.0.2" } }, "fs-readdir-recursive": { @@ -1585,8 +1540,8 @@ "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", "optional": true, "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" + "nan": "2.10.0", + "node-pre-gyp": "0.10.0" }, "dependencies": { "abbrev": { @@ -1608,21 +1563,19 @@ "bundled": true, "optional": true, "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "delegates": "1.0.0", + "readable-stream": "2.3.6" } }, "balanced-match": { "version": "1.0.0", - "bundled": true, - "optional": true + "bundled": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, - "optional": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -1633,18 +1586,15 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true, - "optional": true + "bundled": true }, "concat-map": { "version": "0.0.1", - "bundled": true, - "optional": true + "bundled": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true, - "optional": true + "bundled": true }, "core-util-is": { "version": "1.0.2", @@ -1679,7 +1629,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.2.4" } }, "fs.realpath": { @@ -1692,14 +1642,14 @@ "bundled": true, "optional": true, "requires": { - "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" + "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" } }, "glob": { @@ -1707,12 +1657,12 @@ "bundled": true, "optional": true, "requires": { - "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" + "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" } }, "has-unicode": { @@ -1725,7 +1675,7 @@ "bundled": true, "optional": true, "requires": { - "safer-buffer": "^2.1.0" + "safer-buffer": "2.1.2" } }, "ignore-walk": { @@ -1733,7 +1683,7 @@ "bundled": true, "optional": true, "requires": { - "minimatch": "^3.0.4" + "minimatch": "3.0.4" } }, "inflight": { @@ -1741,14 +1691,13 @@ "bundled": true, "optional": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { "version": "2.0.3", - "bundled": true, - "optional": true + "bundled": true }, "ini": { "version": "1.3.5", @@ -1758,9 +1707,8 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, - "optional": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "isarray": { @@ -1771,23 +1719,20 @@ "minimatch": { "version": "3.0.4", "bundled": true, - "optional": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { "version": "0.0.8", - "bundled": true, - "optional": true + "bundled": true }, "minipass": { "version": "2.2.4", "bundled": true, - "optional": true, "requires": { - "safe-buffer": "^5.1.1", - "yallist": "^3.0.0" + "safe-buffer": "5.1.1", + "yallist": "3.0.2" } }, "minizlib": { @@ -1795,13 +1740,12 @@ "bundled": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.2.4" } }, "mkdirp": { "version": "0.5.1", "bundled": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -1816,9 +1760,9 @@ "bundled": true, "optional": true, "requires": { - "debug": "^2.1.2", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" + "debug": "2.6.9", + "iconv-lite": "0.4.21", + "sax": "1.2.4" } }, "node-pre-gyp": { @@ -1826,16 +1770,16 @@ "bundled": 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" + "detect-libc": "1.0.3", + "mkdirp": "0.5.1", + "needle": "2.2.0", + "nopt": "4.0.1", + "npm-packlist": "1.1.10", + "npmlog": "4.1.2", + "rc": "1.2.7", + "rimraf": "2.6.2", + "semver": "5.5.0", + "tar": "4.4.1" } }, "nopt": { @@ -1843,8 +1787,8 @@ "bundled": true, "optional": true, "requires": { - "abbrev": "1", - "osenv": "^0.1.4" + "abbrev": "1.1.1", + "osenv": "0.1.5" } }, "npm-bundled": { @@ -1857,8 +1801,8 @@ "bundled": true, "optional": true, "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" + "ignore-walk": "3.0.1", + "npm-bundled": "1.0.3" } }, "npmlog": { @@ -1866,16 +1810,15 @@ "bundled": 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" + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" } }, "number-is-nan": { "version": "1.0.1", - "bundled": true, - "optional": true + "bundled": true }, "object-assign": { "version": "4.1.1", @@ -1885,9 +1828,8 @@ "once": { "version": "1.4.0", "bundled": true, - "optional": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "os-homedir": { @@ -1905,8 +1847,8 @@ "bundled": true, "optional": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "path-is-absolute": { @@ -1924,10 +1866,10 @@ "bundled": true, "optional": true, "requires": { - "deep-extend": "^0.5.1", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" + "deep-extend": "0.5.1", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" }, "dependencies": { "minimist": { @@ -1942,13 +1884,13 @@ "bundled": true, "optional": true, "requires": { - "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" + "core-util-is": "1.0.2", + "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.2" } }, "rimraf": { @@ -1956,7 +1898,7 @@ "bundled": true, "optional": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "safe-buffer": { @@ -1991,11 +1933,10 @@ "string-width": { "version": "1.0.2", "bundled": true, - "optional": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "string_decoder": { @@ -2003,14 +1944,14 @@ "bundled": true, "optional": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.1" } }, "strip-ansi": { "version": "3.0.1", "bundled": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-json-comments": { @@ -2023,13 +1964,13 @@ "bundled": true, "optional": true, "requires": { - "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" + "chownr": "1.0.1", + "fs-minipass": "1.2.5", + "minipass": "2.2.4", + "minizlib": "1.1.0", + "mkdirp": "0.5.1", + "safe-buffer": "5.1.1", + "yallist": "3.0.2" } }, "util-deprecate": { @@ -2042,7 +1983,7 @@ "bundled": true, "optional": true, "requires": { - "string-width": "^1.0.2" + "string-width": "1.0.2" } }, "wrappy": { @@ -2081,12 +2022,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { - "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" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.1", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "glob-base": { @@ -2095,8 +2036,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "optional": true, "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" + "glob-parent": "2.0.0", + "is-glob": "2.0.1" } }, "glob-parent": { @@ -2104,7 +2045,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "requires": { - "is-glob": "^2.0.0" + "is-glob": "2.0.1" } }, "globals": { @@ -2117,11 +2058,11 @@ "resolved": "https://registry.npmjs.org/good/-/good-6.6.3.tgz", "integrity": "sha1-B9zIEfwSuDmKnDMezdM37OWogDU=", "requires": { - "hoek": "2.x.x", - "items": "1.x.x", - "joi": "6.x.x", + "hoek": "2.16.3", + "items": "1.1.1", + "joi": "6.10.1", "traverse": "0.6.6", - "wreck": "6.x.x" + "wreck": "6.3.0" } }, "good-console": { @@ -2129,11 +2070,11 @@ "resolved": "https://registry.npmjs.org/good-console/-/good-console-5.3.2.tgz", "integrity": "sha1-f8c9RDfiWsToODJB5GaWy6N0ia0=", "requires": { - "good-squeeze": "2.x.x", - "hoek": "2.x.x", - "json-stringify-safe": "5.0.x", - "moment": "2.11.x", - "through2": "0.6.x" + "good-squeeze": "2.1.0", + "hoek": "2.16.3", + "json-stringify-safe": "5.0.1", + "moment": "2.11.2", + "through2": "0.6.5" }, "dependencies": { "moment": { @@ -2148,8 +2089,8 @@ "resolved": "https://registry.npmjs.org/good-squeeze/-/good-squeeze-2.1.0.tgz", "integrity": "sha1-mc7pHSbVkWmKiZwo6TELzzxq4oo=", "requires": { - "hoek": "2.x.x", - "json-stringify-safe": "5.0.x" + "hoek": "2.16.3", + "json-stringify-safe": "5.0.1" } }, "graceful-fs": { @@ -2167,10 +2108,10 @@ "resolved": "https://registry.npmjs.org/h2o2/-/h2o2-4.0.2.tgz", "integrity": "sha1-h8uWDcD1tJWWT6koJT5s8TuiJIY=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x", - "joi": "6.x.x", - "wreck": "6.x.x" + "boom": "2.10.1", + "hoek": "2.16.3", + "joi": "6.10.1", + "wreck": "6.3.0" } }, "hapi": { @@ -2178,26 +2119,26 @@ "resolved": "https://registry.npmjs.org/hapi/-/hapi-9.5.1.tgz", "integrity": "sha1-jYyhPnwiCweEZemgp2QPJqWvuFU=", "requires": { - "accept": "1.x.x", - "ammo": "1.x.x", - "boom": "^2.5.x", - "call": "2.x.x", - "catbox": "6.x.x", - "catbox-memory": "1.x.x", - "cryptiles": "2.x.x", - "heavy": "3.x.x", - "hoek": "^2.14.x", - "iron": "2.x.x", - "items": "1.x.x", - "joi": "^6.8.1", - "kilt": "^1.1.x", - "mimos": "2.x.x", - "peekaboo": "1.x.x", - "qs": "4.x.x", - "shot": "^1.7.x", - "statehood": "2.x.x", - "subtext": "2.x.x", - "topo": "^1.1.x" + "accept": "1.1.0", + "ammo": "1.0.1", + "boom": "2.9.0", + "call": "2.0.2", + "catbox": "6.0.0", + "catbox-memory": "1.1.2", + "cryptiles": "2.0.5", + "heavy": "3.0.1", + "hoek": "2.16.3", + "iron": "2.1.3", + "items": "1.1.0", + "joi": "6.8.1", + "kilt": "1.1.1", + "mimos": "2.0.2", + "peekaboo": "1.0.0", + "qs": "4.0.0", + "shot": "1.7.0", + "statehood": "2.1.1", + "subtext": "2.0.0", + "topo": "1.1.0" }, "dependencies": { "accept": { @@ -2205,8 +2146,8 @@ "resolved": "https://registry.npmjs.org/accept/-/accept-1.1.0.tgz", "integrity": "sha1-x7VWfJmt5Kx8k38qm8HFZhYKMLU=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x" + "boom": "2.9.0", + "hoek": "2.16.3" } }, "ammo": { @@ -2214,8 +2155,8 @@ "resolved": "https://registry.npmjs.org/ammo/-/ammo-1.0.1.tgz", "integrity": "sha1-j4rdFM1Jve3jurOj4OvK8h0D3os=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x" + "boom": "2.9.0", + "hoek": "2.16.3" } }, "boom": { @@ -2223,7 +2164,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-2.9.0.tgz", "integrity": "sha1-pUt/0v7kd9NRv543FoDL6mfxJxU=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } }, "call": { @@ -2231,8 +2172,8 @@ "resolved": "https://registry.npmjs.org/call/-/call-2.0.2.tgz", "integrity": "sha1-nJgxq9B2lIb97oOkEUm4KbMtBsA=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x" + "boom": "2.9.0", + "hoek": "2.16.3" } }, "catbox": { @@ -2240,9 +2181,9 @@ "resolved": "https://registry.npmjs.org/catbox/-/catbox-6.0.0.tgz", "integrity": "sha1-6i8pT6Bemvx+IhDTI/XeU6OAQ+c=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x", - "joi": "6.x.x" + "boom": "2.9.0", + "hoek": "2.16.3", + "joi": "6.8.1" } }, "catbox-memory": { @@ -2250,7 +2191,7 @@ "resolved": "https://registry.npmjs.org/catbox-memory/-/catbox-memory-1.1.2.tgz", "integrity": "sha1-M8kYOjKzGUXuikhNDjw8u4Lq7Bo=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } }, "cryptiles": { @@ -2258,7 +2199,7 @@ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "requires": { - "boom": "2.x.x" + "boom": "2.9.0" } }, "heavy": { @@ -2266,9 +2207,9 @@ "resolved": "https://registry.npmjs.org/heavy/-/heavy-3.0.1.tgz", "integrity": "sha1-8oZ+bjUVv4OrGoux5z5dKOhas80=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x", - "joi": "6.x.x" + "boom": "2.9.0", + "hoek": "2.16.3", + "joi": "6.8.1" } }, "hoek": { @@ -2281,9 +2222,9 @@ "resolved": "https://registry.npmjs.org/iron/-/iron-2.1.3.tgz", "integrity": "sha1-cbjzV9gGquA6kKdFuaqv/sfi3eQ=", "requires": { - "boom": "2.x.x", - "cryptiles": "2.x.x", - "hoek": "2.x.x" + "boom": "2.9.0", + "cryptiles": "2.0.5", + "hoek": "2.16.3" } }, "items": { @@ -2296,10 +2237,10 @@ "resolved": "https://registry.npmjs.org/joi/-/joi-6.8.1.tgz", "integrity": "sha1-g94tYCj8DNXRYi8/V0fKCCtHjv8=", "requires": { - "hoek": "2.x.x", - "isemail": "1.x.x", - "moment": "2.x.x", - "topo": "1.x.x" + "hoek": "2.16.3", + "isemail": "1.2.0", + "moment": "2.10.6", + "topo": "1.1.0" }, "dependencies": { "isemail": { @@ -2319,7 +2260,7 @@ "resolved": "https://registry.npmjs.org/kilt/-/kilt-1.1.1.tgz", "integrity": "sha1-d7SmFjyn+lshN6iMFzNCFuwj1ds=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } }, "mimos": { @@ -2327,8 +2268,8 @@ "resolved": "https://registry.npmjs.org/mimos/-/mimos-2.0.2.tgz", "integrity": "sha1-wyQXF+dblZkr54esfdbbGptTmx4=", "requires": { - "hoek": "2.x.x", - "mime-db": "1.x.x" + "hoek": "2.16.3", + "mime-db": "1.19.0" }, "dependencies": { "mime-db": { @@ -2353,7 +2294,7 @@ "resolved": "https://registry.npmjs.org/shot/-/shot-1.7.0.tgz", "integrity": "sha1-8jKdfvM6/PA9RM5Bq66BSK4XBTI=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } }, "statehood": { @@ -2361,12 +2302,12 @@ "resolved": "https://registry.npmjs.org/statehood/-/statehood-2.1.1.tgz", "integrity": "sha1-AfFwtmxeklqvZ5qdMiulkYb8AAk=", "requires": { - "boom": "2.x.x", - "cryptiles": "2.x.x", - "hoek": "2.x.x", - "iron": "2.x.x", - "items": "1.x.x", - "joi": "6.x.x" + "boom": "2.9.0", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "iron": "2.1.3", + "items": "1.1.0", + "joi": "6.8.1" } }, "subtext": { @@ -2374,12 +2315,12 @@ "resolved": "https://registry.npmjs.org/subtext/-/subtext-2.0.0.tgz", "integrity": "sha1-I5lQ6SCBQ/FUirJeHJV5vbaNiU4=", "requires": { - "boom": "2.x.x", - "content": "1.x.x", - "hoek": "2.x.x", - "pez": "1.x.x", - "qs": "4.x.x", - "wreck": "6.x.x" + "boom": "2.9.0", + "content": "1.0.2", + "hoek": "2.16.3", + "pez": "1.0.0", + "qs": "4.0.0", + "wreck": "6.2.0" }, "dependencies": { "content": { @@ -2387,8 +2328,8 @@ "resolved": "https://registry.npmjs.org/content/-/content-1.0.2.tgz", "integrity": "sha1-y37fMq/vF8SKz9vSH/mMIzFa6CQ=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x" + "boom": "2.9.0", + "hoek": "2.16.3" } }, "pez": { @@ -2396,11 +2337,11 @@ "resolved": "https://registry.npmjs.org/pez/-/pez-1.0.0.tgz", "integrity": "sha1-hEMYpc5wku7d/6KV4YB5rHefoBg=", "requires": { - "b64": "2.x.x", - "boom": "2.x.x", - "content": "1.x.x", - "hoek": "2.x.x", - "nigel": "1.x.x" + "b64": "2.0.1", + "boom": "2.9.0", + "content": "1.0.2", + "hoek": "2.16.3", + "nigel": "1.0.1" }, "dependencies": { "b64": { @@ -2408,7 +2349,7 @@ "resolved": "https://registry.npmjs.org/b64/-/b64-2.0.1.tgz", "integrity": "sha1-0IwQcZcZ/x/htTKuSSaUCc4UnOk=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } }, "nigel": { @@ -2416,8 +2357,8 @@ "resolved": "https://registry.npmjs.org/nigel/-/nigel-1.0.1.tgz", "integrity": "sha1-RjmJr4gSePuqHTzJOCPb0XtDYKE=", "requires": { - "hoek": "2.x.x", - "vise": "1.x.x" + "hoek": "2.16.3", + "vise": "1.0.0" }, "dependencies": { "vise": { @@ -2425,7 +2366,7 @@ "resolved": "https://registry.npmjs.org/vise/-/vise-1.0.0.tgz", "integrity": "sha1-KDRb5N5aNB4V/SgW/Z6j5zA+jfM=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } } } @@ -2437,8 +2378,8 @@ "resolved": "https://registry.npmjs.org/wreck/-/wreck-6.2.0.tgz", "integrity": "sha1-8Jkx7UcbZL6Yjj57u4gjTa4i0iI=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x" + "boom": "2.9.0", + "hoek": "2.16.3" } } } @@ -2448,7 +2389,7 @@ "resolved": "https://registry.npmjs.org/topo/-/topo-1.1.0.tgz", "integrity": "sha1-6ddRYV0buH3IZdsYL6HKCl71NtU=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } } } @@ -2463,7 +2404,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "has-flag": { @@ -2476,8 +2417,8 @@ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "hash.js": { @@ -2485,8 +2426,8 @@ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.4.tgz", "integrity": "sha512-A6RlQvvZEtFS5fLU43IDu0QUmBy+fDO9VMdTXvufKwIkt/rFfvICAViCax5fbDO4zdNzaC3/27ZhKUok5bAJyw==", "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1" }, "dependencies": { "inherits": { @@ -2506,9 +2447,9 @@ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "hash.js": "1.1.4", + "minimalistic-assert": "1.0.1", + "minimalistic-crypto-utils": "1.0.1" } }, "hoek": { @@ -2521,8 +2462,8 @@ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "hosted-git-info": { @@ -2535,8 +2476,8 @@ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.11.3.tgz", "integrity": "sha1-GRXciIdR4qa/PCq/yxgI+obHI1M=", "requires": { - "eventemitter3": "1.x.x", - "requires-port": "0.x.x" + "eventemitter3": "1.2.0", + "requires-port": "0.0.1" } }, "ieee754": { @@ -2549,12 +2490,12 @@ "resolved": "https://registry.npmjs.org/inert/-/inert-3.2.1.tgz", "integrity": "sha1-xJZcXhh87z2yxChy5S51cAh2Qn0=", "requires": { - "ammo": "1.x.x", - "boom": "2.x.x", - "hoek": "2.x.x", - "items": "1.x.x", - "joi": "^6.7.x", - "lru-cache": "2.7.x" + "ammo": "1.0.1", + "boom": "2.10.1", + "hoek": "2.16.3", + "items": "1.1.1", + "joi": "6.10.1", + "lru-cache": "2.7.3" } }, "inflight": { @@ -2562,8 +2503,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -2581,7 +2522,7 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "loose-envify": "^1.0.0" + "loose-envify": "1.3.1" } }, "invert-kv": { @@ -2600,7 +2541,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "optional": true, "requires": { - "binary-extensions": "^1.0.0" + "binary-extensions": "1.11.0" } }, "is-buffer": { @@ -2613,7 +2554,7 @@ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-dotfile": { @@ -2628,7 +2569,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "optional": true, "requires": { - "is-primitive": "^2.0.0" + "is-primitive": "2.0.0" } }, "is-extendable": { @@ -2647,7 +2588,7 @@ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { @@ -2655,7 +2596,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.0" + "number-is-nan": "1.0.1" } }, "is-glob": { @@ -2663,7 +2604,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "is-number": { @@ -2672,7 +2613,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "optional": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-posix-bracket": { @@ -2726,10 +2667,10 @@ "resolved": "https://registry.npmjs.org/joi/-/joi-6.10.1.tgz", "integrity": "sha1-TVDDGAeRIgAP5fFq8f+OGRe3fgY=", "requires": { - "hoek": "2.x.x", - "isemail": "1.x.x", - "moment": "2.x.x", - "topo": "1.x.x" + "hoek": "2.16.3", + "isemail": "1.2.0", + "moment": "2.22.2", + "topo": "1.1.0" } }, "js-tokens": { @@ -2763,7 +2704,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "lcid": { @@ -2771,7 +2712,7 @@ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "load-json-file": { @@ -2779,10 +2720,10 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" }, "dependencies": { "pify": { @@ -2797,8 +2738,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "2.0.0", + "path-exists": "3.0.0" } }, "lodash": { @@ -2828,7 +2769,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "requires": { - "js-tokens": "^3.0.0" + "js-tokens": "3.0.2" } }, "lru-cache": { @@ -2841,7 +2782,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "math-random": { @@ -2855,8 +2796,8 @@ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "hash-base": "3.0.4", + "inherits": "2.0.1" } }, "mem": { @@ -2864,33 +2805,28 @@ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, - "merkle-lib": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/merkle-lib/-/merkle-lib-2.0.10.tgz", - "integrity": "sha1-grjbrnXieneFOItz+ddyXQ9vMyY=" - }, "micromatch": { "version": "2.3.11", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "optional": true, "requires": { - "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" + "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" } }, "mimic-fn": { @@ -2913,7 +2849,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -2952,7 +2888,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -2983,11 +2919,11 @@ "integrity": "sha512-9JX3YwoIt3kS237scmSSOpEv7vCukVzLfwK0I0XhocDSHUANid8ZHnLEULbbSkfeMn98B2y5kphIWzZUylESRQ==", "dev": true, "requires": { - "@sinonjs/formatio": "^2.0.0", - "just-extend": "^1.1.27", - "lolex": "^2.3.2", - "path-to-regexp": "^1.7.0", - "text-encoding": "^0.6.4" + "@sinonjs/formatio": "2.0.0", + "just-extend": "1.1.27", + "lolex": "2.7.0", + "path-to-regexp": "1.7.0", + "text-encoding": "0.6.4" } }, "node-cmd": { @@ -3000,7 +2936,7 @@ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", "requires": { - "lodash.toarray": "^4.4.0" + "lodash.toarray": "4.4.0" } }, "nopt": { @@ -3008,7 +2944,7 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "requires": { - "abbrev": "1" + "abbrev": "1.1.1" } }, "normalize-package-data": { @@ -3016,10 +2952,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.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.6.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" } }, "normalize-path": { @@ -3027,7 +2963,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { - "remove-trailing-separator": "^1.0.1" + "remove-trailing-separator": "1.1.0" } }, "npm-run-path": { @@ -3035,7 +2971,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { @@ -3049,33 +2985,33 @@ "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", "dev": true, "requires": { - "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^1.0.0", - "convert-source-map": "^1.5.1", - "debug-log": "^1.0.1", - "default-require-extensions": "^1.0.0", - "find-cache-dir": "^0.1.1", - "find-up": "^2.1.0", - "foreground-child": "^1.5.3", - "glob": "^7.0.6", - "istanbul-lib-coverage": "^1.1.2", - "istanbul-lib-hook": "^1.1.0", - "istanbul-lib-instrument": "^1.10.0", - "istanbul-lib-report": "^1.1.3", - "istanbul-lib-source-maps": "^1.2.3", - "istanbul-reports": "^1.4.0", - "md5-hex": "^1.2.0", - "merge-source-map": "^1.1.0", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.0", - "resolve-from": "^2.0.0", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.1", - "spawn-wrap": "^1.4.2", - "test-exclude": "^4.2.0", + "archy": "1.0.0", + "arrify": "1.0.1", + "caching-transform": "1.0.1", + "convert-source-map": "1.5.1", + "debug-log": "1.0.1", + "default-require-extensions": "1.0.0", + "find-cache-dir": "0.1.1", + "find-up": "2.1.0", + "foreground-child": "1.5.6", + "glob": "7.1.2", + "istanbul-lib-coverage": "1.2.0", + "istanbul-lib-hook": "1.1.0", + "istanbul-lib-instrument": "1.10.1", + "istanbul-lib-report": "1.1.3", + "istanbul-lib-source-maps": "1.2.3", + "istanbul-reports": "1.4.0", + "md5-hex": "1.3.0", + "merge-source-map": "1.1.0", + "micromatch": "3.1.10", + "mkdirp": "0.5.1", + "resolve-from": "2.0.0", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "spawn-wrap": "1.4.2", + "test-exclude": "4.2.1", "yargs": "11.1.0", - "yargs-parser": "^8.0.0" + "yargs-parser": "8.1.0" }, "dependencies": { "align-text": { @@ -3083,9 +3019,9 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" } }, "amdefine": { @@ -3108,7 +3044,7 @@ "bundled": true, "dev": true, "requires": { - "default-require-extensions": "^1.0.0" + "default-require-extensions": "1.0.0" } }, "archy": { @@ -3161,9 +3097,9 @@ "bundled": true, "dev": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" } }, "babel-generator": { @@ -3171,14 +3107,14 @@ "bundled": true, "dev": true, "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.10", + "source-map": "0.5.7", + "trim-right": "1.0.1" } }, "babel-messages": { @@ -3186,7 +3122,7 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-runtime": { @@ -3194,8 +3130,8 @@ "bundled": true, "dev": true, "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "core-js": "2.5.6", + "regenerator-runtime": "0.11.1" } }, "babel-template": { @@ -3203,11 +3139,11 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.10" } }, "babel-traverse": { @@ -3215,15 +3151,15 @@ "bundled": true, "dev": true, "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.4", + "lodash": "4.17.10" } }, "babel-types": { @@ -3231,10 +3167,10 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.10", + "to-fast-properties": "1.0.3" } }, "babylon": { @@ -3252,13 +3188,13 @@ "bundled": true, "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.2.0", - "pascalcase": "^0.1.1" + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" }, "dependencies": { "define-property": { @@ -3266,7 +3202,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -3274,7 +3210,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -3282,7 +3218,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -3290,9 +3226,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -3312,7 +3248,7 @@ "bundled": true, "dev": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -3321,16 +3257,16 @@ "bundled": true, "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -3338,7 +3274,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -3353,15 +3289,15 @@ "bundled": true, "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" }, "dependencies": { "isobject": { @@ -3376,9 +3312,9 @@ "bundled": true, "dev": true, "requires": { - "md5-hex": "^1.2.0", - "mkdirp": "^0.5.1", - "write-file-atomic": "^1.1.4" + "md5-hex": "1.3.0", + "mkdirp": "0.5.1", + "write-file-atomic": "1.3.4" } }, "camelcase": { @@ -3393,8 +3329,8 @@ "dev": true, "optional": true, "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" + "align-text": "0.1.4", + "lazy-cache": "1.0.4" } }, "chalk": { @@ -3402,11 +3338,11 @@ "bundled": true, "dev": true, "requires": { - "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" + "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" } }, "class-utils": { @@ -3414,10 +3350,10 @@ "bundled": true, "dev": true, "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" }, "dependencies": { "define-property": { @@ -3425,7 +3361,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "isobject": { @@ -3441,8 +3377,8 @@ "dev": true, "optional": true, "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", + "center-align": "0.1.3", + "right-align": "0.1.3", "wordwrap": "0.0.2" }, "dependencies": { @@ -3464,8 +3400,8 @@ "bundled": true, "dev": true, "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "map-visit": "1.0.0", + "object-visit": "1.0.1" } }, "commondir": { @@ -3503,8 +3439,8 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "which": "1.3.0" } }, "debug": { @@ -3535,7 +3471,7 @@ "bundled": true, "dev": true, "requires": { - "strip-bom": "^2.0.0" + "strip-bom": "2.0.0" } }, "define-property": { @@ -3543,8 +3479,8 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "is-descriptor": "1.0.2", + "isobject": "3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -3552,7 +3488,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -3560,7 +3496,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -3568,9 +3504,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -3590,7 +3526,7 @@ "bundled": true, "dev": true, "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "error-ex": { @@ -3598,7 +3534,7 @@ "bundled": true, "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "escape-string-regexp": { @@ -3616,13 +3552,13 @@ "bundled": true, "dev": true, "requires": { - "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" + "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" }, "dependencies": { "cross-spawn": { @@ -3630,9 +3566,9 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.0" } } } @@ -3642,13 +3578,13 @@ "bundled": true, "dev": true, "requires": { - "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" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -3656,7 +3592,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -3664,7 +3600,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -3674,8 +3610,8 @@ "bundled": true, "dev": true, "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -3683,7 +3619,7 @@ "bundled": true, "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -3693,14 +3629,14 @@ "bundled": true, "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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -3708,7 +3644,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -3716,7 +3652,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -3724,7 +3660,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -3732,7 +3668,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -3740,9 +3676,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "kind-of": { @@ -3757,10 +3693,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -3768,7 +3704,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -3778,9 +3714,9 @@ "bundled": true, "dev": true, "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" + "commondir": "1.0.1", + "mkdirp": "0.5.1", + "pkg-dir": "1.0.0" } }, "find-up": { @@ -3788,7 +3724,7 @@ "bundled": true, "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "for-in": { @@ -3801,8 +3737,8 @@ "bundled": true, "dev": true, "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" + "cross-spawn": "4.0.2", + "signal-exit": "3.0.2" } }, "fragment-cache": { @@ -3810,7 +3746,7 @@ "bundled": true, "dev": true, "requires": { - "map-cache": "^0.2.2" + "map-cache": "0.2.2" } }, "fs.realpath": { @@ -3838,12 +3774,12 @@ "bundled": true, "dev": true, "requires": { - "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" + "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" } }, "globals": { @@ -3861,10 +3797,10 @@ "bundled": true, "dev": true, "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" }, "dependencies": { "source-map": { @@ -3872,7 +3808,7 @@ "bundled": true, "dev": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } @@ -3882,7 +3818,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "has-flag": { @@ -3895,9 +3831,9 @@ "bundled": true, "dev": true, "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -3912,8 +3848,8 @@ "bundled": true, "dev": true, "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { "is-number": { @@ -3921,7 +3857,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -3929,7 +3865,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -3939,7 +3875,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -3959,8 +3895,8 @@ "bundled": true, "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -3973,7 +3909,7 @@ "bundled": true, "dev": true, "requires": { - "loose-envify": "^1.0.0" + "loose-envify": "1.3.1" } }, "invert-kv": { @@ -3986,7 +3922,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-arrayish": { @@ -4004,7 +3940,7 @@ "bundled": true, "dev": true, "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-data-descriptor": { @@ -4012,7 +3948,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-descriptor": { @@ -4020,9 +3956,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" }, "dependencies": { "kind-of": { @@ -4042,7 +3978,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { @@ -4055,7 +3991,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-odd": { @@ -4063,7 +3999,7 @@ "bundled": true, "dev": true, "requires": { - "is-number": "^4.0.0" + "is-number": "4.0.0" }, "dependencies": { "is-number": { @@ -4078,7 +4014,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -4128,7 +4064,7 @@ "bundled": true, "dev": true, "requires": { - "append-transform": "^0.4.0" + "append-transform": "0.4.0" } }, "istanbul-lib-instrument": { @@ -4136,13 +4072,13 @@ "bundled": true, "dev": true, "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.2.0", - "semver": "^5.3.0" + "babel-generator": "6.26.1", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "istanbul-lib-coverage": "1.2.0", + "semver": "5.5.0" } }, "istanbul-lib-report": { @@ -4150,10 +4086,10 @@ "bundled": true, "dev": true, "requires": { - "istanbul-lib-coverage": "^1.1.2", - "mkdirp": "^0.5.1", - "path-parse": "^1.0.5", - "supports-color": "^3.1.2" + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" }, "dependencies": { "supports-color": { @@ -4161,7 +4097,7 @@ "bundled": true, "dev": true, "requires": { - "has-flag": "^1.0.0" + "has-flag": "1.0.0" } } } @@ -4171,11 +4107,11 @@ "bundled": true, "dev": true, "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^1.1.2", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.1", - "source-map": "^0.5.3" + "debug": "3.1.0", + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" }, "dependencies": { "debug": { @@ -4193,7 +4129,7 @@ "bundled": true, "dev": true, "requires": { - "handlebars": "^4.0.3" + "handlebars": "4.0.11" } }, "js-tokens": { @@ -4211,7 +4147,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "lazy-cache": { @@ -4225,7 +4161,7 @@ "bundled": true, "dev": true, "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "load-json-file": { @@ -4233,11 +4169,11 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" } }, "locate-path": { @@ -4245,8 +4181,8 @@ "bundled": true, "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": { @@ -4271,7 +4207,7 @@ "bundled": true, "dev": true, "requires": { - "js-tokens": "^3.0.0" + "js-tokens": "3.0.2" } }, "lru-cache": { @@ -4279,8 +4215,8 @@ "bundled": true, "dev": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "map-cache": { @@ -4293,7 +4229,7 @@ "bundled": true, "dev": true, "requires": { - "object-visit": "^1.0.0" + "object-visit": "1.0.1" } }, "md5-hex": { @@ -4301,7 +4237,7 @@ "bundled": true, "dev": true, "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "md5-o-matic": { @@ -4314,7 +4250,7 @@ "bundled": true, "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "merge-source-map": { @@ -4322,7 +4258,7 @@ "bundled": true, "dev": true, "requires": { - "source-map": "^0.6.1" + "source-map": "0.6.1" }, "dependencies": { "source-map": { @@ -4337,19 +4273,19 @@ "bundled": true, "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "kind-of": { @@ -4369,7 +4305,7 @@ "bundled": true, "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -4382,8 +4318,8 @@ "bundled": true, "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": { @@ -4391,7 +4327,7 @@ "bundled": true, "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -4414,18 +4350,18 @@ "bundled": true, "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-odd": "^2.0.0", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-odd": "2.0.0", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "arr-diff": { @@ -4450,10 +4386,10 @@ "bundled": true, "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.6.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" } }, "npm-run-path": { @@ -4461,7 +4397,7 @@ "bundled": true, "dev": true, "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { @@ -4479,9 +4415,9 @@ "bundled": true, "dev": true, "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" }, "dependencies": { "define-property": { @@ -4489,7 +4425,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -4499,7 +4435,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "^3.0.0" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -4514,7 +4450,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -4529,7 +4465,7 @@ "bundled": true, "dev": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "optimist": { @@ -4537,8 +4473,8 @@ "bundled": true, "dev": true, "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" + "minimist": "0.0.8", + "wordwrap": "0.0.3" } }, "os-homedir": { @@ -4551,9 +4487,9 @@ "bundled": true, "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" } }, "p-finally": { @@ -4566,7 +4502,7 @@ "bundled": true, "dev": true, "requires": { - "p-try": "^1.0.0" + "p-try": "1.0.0" } }, "p-locate": { @@ -4574,7 +4510,7 @@ "bundled": true, "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.2.0" } }, "p-try": { @@ -4587,7 +4523,7 @@ "bundled": true, "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.1" } }, "pascalcase": { @@ -4600,7 +4536,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie-promise": "^2.0.0" + "pinkie-promise": "2.0.1" } }, "path-is-absolute": { @@ -4623,9 +4559,9 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "pify": { @@ -4643,7 +4579,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "pkg-dir": { @@ -4651,7 +4587,7 @@ "bundled": true, "dev": true, "requires": { - "find-up": "^1.0.0" + "find-up": "1.1.2" }, "dependencies": { "find-up": { @@ -4659,8 +4595,8 @@ "bundled": true, "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } @@ -4680,9 +4616,9 @@ "bundled": true, "dev": true, "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" } }, "read-pkg-up": { @@ -4690,8 +4626,8 @@ "bundled": true, "dev": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "find-up": "1.1.2", + "read-pkg": "1.1.0" }, "dependencies": { "find-up": { @@ -4699,8 +4635,8 @@ "bundled": true, "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } @@ -4715,8 +4651,8 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" } }, "repeat-element": { @@ -4734,7 +4670,7 @@ "bundled": true, "dev": true, "requires": { - "is-finite": "^1.0.0" + "is-finite": "1.0.2" } }, "require-directory": { @@ -4768,7 +4704,7 @@ "dev": true, "optional": true, "requires": { - "align-text": "^0.1.1" + "align-text": "0.1.4" } }, "rimraf": { @@ -4776,7 +4712,7 @@ "bundled": true, "dev": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "safe-regex": { @@ -4784,7 +4720,7 @@ "bundled": true, "dev": true, "requires": { - "ret": "~0.1.10" + "ret": "0.1.15" } }, "semver": { @@ -4802,10 +4738,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" }, "dependencies": { "extend-shallow": { @@ -4813,7 +4749,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -4823,7 +4759,7 @@ "bundled": true, "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -4846,14 +4782,14 @@ "bundled": true, "dev": true, "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "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": "3.1.0" }, "dependencies": { "define-property": { @@ -4861,7 +4797,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -4869,7 +4805,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -4879,9 +4815,9 @@ "bundled": true, "dev": true, "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" }, "dependencies": { "define-property": { @@ -4889,7 +4825,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -4897,7 +4833,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -4905,7 +4841,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -4913,9 +4849,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -4935,7 +4871,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.2.0" + "kind-of": "3.2.2" } }, "source-map": { @@ -4948,11 +4884,11 @@ "bundled": true, "dev": true, "requires": { - "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" + "atob": "2.1.1", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" } }, "source-map-url": { @@ -4965,12 +4901,12 @@ "bundled": true, "dev": true, "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" + "foreground-child": "1.5.6", + "mkdirp": "0.5.1", + "os-homedir": "1.0.2", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "which": "1.3.0" } }, "spdx-correct": { @@ -4978,8 +4914,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, "spdx-exceptions": { @@ -4992,8 +4928,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" } }, "spdx-license-ids": { @@ -5006,7 +4942,7 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^3.0.0" + "extend-shallow": "3.0.2" } }, "static-extend": { @@ -5014,8 +4950,8 @@ "bundled": true, "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": { @@ -5023,7 +4959,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -5033,8 +4969,8 @@ "bundled": true, "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" }, "dependencies": { "ansi-regex": { @@ -5047,7 +4983,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -5057,7 +4993,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-bom": { @@ -5065,7 +5001,7 @@ "bundled": true, "dev": true, "requires": { - "is-utf8": "^0.2.0" + "is-utf8": "0.2.1" } }, "strip-eof": { @@ -5083,11 +5019,11 @@ "bundled": true, "dev": true, "requires": { - "arrify": "^1.0.1", - "micromatch": "^3.1.8", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" + "arrify": "1.0.1", + "micromatch": "3.1.10", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" }, "dependencies": { "arr-diff": { @@ -5105,16 +5041,16 @@ "bundled": true, "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -5122,7 +5058,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -5132,13 +5068,13 @@ "bundled": true, "dev": true, "requires": { - "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" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -5146,7 +5082,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -5154,7 +5090,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -5162,7 +5098,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -5170,7 +5106,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -5180,7 +5116,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -5188,7 +5124,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -5198,9 +5134,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { @@ -5215,14 +5151,14 @@ "bundled": true, "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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -5230,7 +5166,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -5238,7 +5174,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -5248,10 +5184,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -5259,7 +5195,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -5269,7 +5205,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -5277,7 +5213,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -5285,9 +5221,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-number": { @@ -5295,7 +5231,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -5303,7 +5239,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -5323,19 +5259,19 @@ "bundled": true, "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } } } @@ -5350,7 +5286,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "to-regex": { @@ -5358,10 +5294,10 @@ "bundled": true, "dev": true, "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" } }, "to-regex-range": { @@ -5369,8 +5305,8 @@ "bundled": true, "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "3.0.0", + "repeat-string": "1.6.1" }, "dependencies": { "is-number": { @@ -5378,7 +5314,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } } } @@ -5394,9 +5330,9 @@ "dev": true, "optional": true, "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" }, "dependencies": { "yargs": { @@ -5405,9 +5341,9 @@ "dev": true, "optional": true, "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", "window-size": "0.1.0" } } @@ -5424,10 +5360,10 @@ "bundled": true, "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": { "extend-shallow": { @@ -5435,7 +5371,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "set-value": { @@ -5443,10 +5379,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" } } } @@ -5456,8 +5392,8 @@ "bundled": true, "dev": true, "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "has-value": "0.3.1", + "isobject": "3.0.1" }, "dependencies": { "has-value": { @@ -5465,9 +5401,9 @@ "bundled": true, "dev": true, "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" }, "dependencies": { "isobject": { @@ -5502,7 +5438,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.2" + "kind-of": "6.0.2" }, "dependencies": { "kind-of": { @@ -5517,8 +5453,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "which": { @@ -5526,7 +5462,7 @@ "bundled": true, "dev": true, "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -5550,8 +5486,8 @@ "bundled": true, "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -5559,7 +5495,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "string-width": { @@ -5567,9 +5503,9 @@ "bundled": true, "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -5584,9 +5520,9 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" } }, "y18n": { @@ -5604,18 +5540,18 @@ "bundled": true, "dev": true, "requires": { - "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": "^9.0.2" + "cliui": "4.1.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": "9.0.2" }, "dependencies": { "ansi-regex": { @@ -5633,9 +5569,9 @@ "bundled": true, "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" } }, "strip-ansi": { @@ -5643,7 +5579,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } }, "yargs-parser": { @@ -5651,7 +5587,7 @@ "bundled": true, "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" } } } @@ -5661,7 +5597,7 @@ "bundled": true, "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" }, "dependencies": { "camelcase": { @@ -5684,8 +5620,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "optional": true, "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" + "for-own": "0.1.5", + "is-extendable": "0.1.1" } }, "once": { @@ -5693,7 +5629,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "os-homedir": { @@ -5706,9 +5642,9 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "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" } }, "os-tmpdir": { @@ -5721,9 +5657,9 @@ "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", "requires": { - "graceful-fs": "^4.1.4", - "mkdirp": "^0.5.1", - "object-assign": "^4.1.0" + "graceful-fs": "4.1.11", + "mkdirp": "0.5.1", + "object-assign": "4.1.1" } }, "p-finally": { @@ -5736,7 +5672,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "requires": { - "p-try": "^1.0.0" + "p-try": "1.0.0" } }, "p-locate": { @@ -5744,7 +5680,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.3.0" } }, "p-try": { @@ -5758,10 +5694,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "optional": true, "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" } }, "parse-json": { @@ -5769,7 +5705,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.1" } }, "path-exists": { @@ -5809,7 +5745,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { - "pify": "^2.0.0" + "pify": "2.3.0" }, "dependencies": { "pify": { @@ -5830,11 +5766,11 @@ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ripemd160": "2.0.2", + "safe-buffer": "5.1.2", + "sha.js": "2.4.11" } }, "pify": { @@ -5869,31 +5805,16 @@ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, - "pushdata-bitcoin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", - "integrity": "sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=", - "requires": { - "bitcoin-ops": "^1.3.0" - }, - "dependencies": { - "bitcoin-ops": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz", - "integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow==" - } - } - }, "qrcode": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.2.0.tgz", "integrity": "sha512-wZK0Z0eYmOUDP2tOGzmLdeBn5Npa+4wms9GdvzH7HrywvGUq/Stz0BKUhW4DfmBf1PSrm9dNfdnVDq683Zxvag==", "requires": { - "can-promise": "^0.0.1", - "dijkstrajs": "^1.0.1", - "isarray": "^2.0.1", - "pngjs": "^3.3.0", - "yargs": "^8.0.2" + "can-promise": "0.0.1", + "dijkstrajs": "1.0.1", + "isarray": "2.0.4", + "pngjs": "3.3.3", + "yargs": "8.0.2" }, "dependencies": { "isarray": { @@ -5903,20 +5824,15 @@ } } }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - }, "randomatic": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz", "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", "optional": true, "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" + "is-number": "4.0.0", + "kind-of": "6.0.2", + "math-random": "1.0.1" }, "dependencies": { "is-number": { @@ -5938,7 +5854,7 @@ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "requires": { - "safe-buffer": "^5.1.0" + "safe-buffer": "5.1.2" } }, "read-pkg": { @@ -5946,9 +5862,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" } }, "read-pkg-up": { @@ -5956,8 +5872,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" + "find-up": "2.1.0", + "read-pkg": "2.0.0" } }, "readable-stream": { @@ -5966,13 +5882,13 @@ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "optional": true, "requires": { - "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" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.2", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" }, "dependencies": { "inherits": { @@ -5989,10 +5905,10 @@ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "optional": true, "requires": { - "graceful-fs": "^4.1.2", - "minimatch": "^3.0.2", - "readable-stream": "^2.0.2", - "set-immediate-shim": "^1.0.1" + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.6", + "set-immediate-shim": "1.0.1" } }, "regenerate": { @@ -6010,9 +5926,9 @@ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "requires": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "private": "0.1.8" } }, "regex-cache": { @@ -6021,7 +5937,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "optional": true, "requires": { - "is-equal-shallow": "^0.1.3" + "is-equal-shallow": "0.1.3" } }, "regexpu-core": { @@ -6029,9 +5945,9 @@ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" + "regenerate": "1.4.0", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" } }, "regjsgen": { @@ -6044,7 +5960,7 @@ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "requires": { - "jsesc": "~0.5.0" + "jsesc": "0.5.0" }, "dependencies": { "jsesc": { @@ -6075,7 +5991,7 @@ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "requires": { - "is-finite": "^1.0.0" + "is-finite": "1.0.2" } }, "repl.history": { @@ -6103,8 +6019,8 @@ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "hash-base": "3.0.4", + "inherits": "2.0.1" } }, "safe-buffer": { @@ -6123,7 +6039,7 @@ "resolved": "https://registry.npmjs.org/satoshi-bitcoin/-/satoshi-bitcoin-1.0.4.tgz", "integrity": "sha1-0AK2dwddXLvywhGo3zJUvN9QseQ=", "requires": { - "big.js": "^3.1.3" + "big.js": "3.2.0" } }, "scryptsy": { @@ -6136,14 +6052,14 @@ "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.5.0.tgz", "integrity": "sha512-e5QIJl8W7Y4tT6LHffVcZAxJjvpgE5Owawv6/XCYPQljE9aP2NFFddQ8OYMKhdLshNu88FfL3qCN3/xYkXGRsA==", "requires": { - "bindings": "^1.2.1", - "bip66": "^1.1.3", - "bn.js": "^4.11.3", - "create-hash": "^1.1.2", - "drbg.js": "^1.0.1", - "elliptic": "^6.2.3", - "nan": "^2.2.1", - "safe-buffer": "^5.1.0" + "bindings": "1.3.0", + "bip66": "1.1.5", + "bn.js": "4.11.8", + "create-hash": "1.2.0", + "drbg.js": "1.0.1", + "elliptic": "6.4.0", + "nan": "2.10.0", + "safe-buffer": "5.1.2" } }, "semver": { @@ -6167,8 +6083,8 @@ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "shebang-command": { @@ -6176,7 +6092,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -6195,13 +6111,13 @@ "integrity": "sha512-trdx+mB0VBBgoYucy6a9L7/jfQOmvGeaKZT4OOJ+lPAtI8623xyGr8wLiE4eojzBS8G9yXbhx42GHUOVLr4X2w==", "dev": true, "requires": { - "@sinonjs/formatio": "^2.0.0", - "diff": "^3.1.0", - "lodash.get": "^4.4.2", - "lolex": "^2.2.0", - "nise": "^1.2.0", - "supports-color": "^5.1.0", - "type-detect": "^4.0.5" + "@sinonjs/formatio": "2.0.0", + "diff": "3.5.0", + "lodash.get": "4.4.2", + "lolex": "2.7.0", + "nise": "1.4.1", + "supports-color": "5.4.0", + "type-detect": "4.0.8" }, "dependencies": { "supports-color": { @@ -6210,7 +6126,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -6230,7 +6146,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "requires": { - "source-map": "^0.5.6" + "source-map": "0.5.7" } }, "spdx-correct": { @@ -6238,8 +6154,8 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, "spdx-exceptions": { @@ -6252,8 +6168,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" } }, "spdx-license-ids": { @@ -6266,8 +6182,8 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "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" }, "dependencies": { "ansi-regex": { @@ -6285,7 +6201,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -6296,7 +6212,7 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "optional": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.2" } }, "strip-ansi": { @@ -6304,7 +6220,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-bom": { @@ -6333,8 +6249,8 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" + "readable-stream": "1.0.34", + "xtend": "4.0.1" }, "dependencies": { "isarray": { @@ -6347,10 +6263,10 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", + "core-util-is": "1.0.2", + "inherits": "2.0.1", "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "string_decoder": "0.10.31" } }, "string_decoder": { @@ -6370,7 +6286,7 @@ "resolved": "https://registry.npmjs.org/topo/-/topo-1.1.0.tgz", "integrity": "sha1-6ddRYV0buH3IZdsYL6HKCl71NtU=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } }, "touch": { @@ -6378,7 +6294,7 @@ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", "requires": { - "nopt": "~1.0.10" + "nopt": "1.0.10" } }, "traverse": { @@ -6397,11 +6313,6 @@ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, - "typeforce": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.12.0.tgz", - "integrity": "sha512-fvnkvueAOFLhtAqDgIA/wMP21SMwS/NQESFKZuwVrj5m/Ew6eK2S0z0iB++cwtROPWDOhaT6OUfla8UwMw4Adg==" - }, "unorm": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.4.1.tgz", @@ -6431,7 +6342,7 @@ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "requires": { - "user-home": "^1.1.1" + "user-home": "1.1.1" } }, "validate-npm-package-license": { @@ -6439,8 +6350,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "varuint-bitcoin": { @@ -6448,7 +6359,7 @@ "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz", "integrity": "sha512-jCEPG+COU/1Rp84neKTyDJQr478/hAfVp5xxYn09QEH0yBjbmPeMfuuQIrp+BUD83hybtYZKhr5elV3bvdV1bA==", "requires": { - "safe-buffer": "^5.1.1" + "safe-buffer": "5.1.2" } }, "vision": { @@ -6456,10 +6367,10 @@ "resolved": "https://registry.npmjs.org/vision/-/vision-3.0.0.tgz", "integrity": "sha1-GEWEb2wjpvJTXa8woeHnHQukjGI=", "requires": { - "boom": "2.x.x", - "hoek": "^2.9.x", - "items": "^1.1.x", - "joi": "6.x.x" + "boom": "2.10.1", + "hoek": "2.16.3", + "items": "1.1.1", + "joi": "6.10.1" } }, "which": { @@ -6467,7 +6378,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -6480,7 +6391,7 @@ "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", "requires": { - "bs58check": "<3.0.0" + "bs58check": "2.1.1" } }, "window-or-global": { @@ -6493,8 +6404,8 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "string-width": { @@ -6502,9 +6413,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -6519,8 +6430,8 @@ "resolved": "https://registry.npmjs.org/wreck/-/wreck-6.3.0.tgz", "integrity": "sha1-oTaXafB7u2LWo3gzanhx/Hc8dAs=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x" + "boom": "2.10.1", + "hoek": "2.16.3" } }, "xtend": { @@ -6543,19 +6454,19 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", "requires": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^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": "^7.0.0" + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.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": "7.0.0" } }, "yargs-parser": { @@ -6563,7 +6474,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" } } } diff --git a/package.json b/package.json index f62c70e1..a53b0113 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "scripts": { "test": "nyc mocha --timeout 15000 --require babel-core/register", "build": "babel src/ -d lib/", + "postbuild": "cp -R @types/* lib", "flow": "flow" }, "license": "MIT", @@ -60,6 +61,7 @@ "wif": "^2.0.6" }, "devDependencies": { + "@types/node": "^10.5.2", "chai": "^4.1.2", "flow-bin": "^0.64.0", "nyc": "^11.6.0", From 58f761daeddced99b9302630f8391c76b7ca7b1a Mon Sep 17 00:00:00 2001 From: James Cramer Date: Fri, 13 Jul 2018 16:03:06 -0400 Subject: [PATCH 018/480] type definition source files --- @types/Address.d.ts | 81 +++++++++----- @types/BitcoinCash.d.ts | 92 ++++++---------- @types/Block.d.ts | 28 ++++- @types/Blockchain.d.ts | 111 ++++++++++++++----- @types/Control.d.ts | 32 +++++- @types/Crypto.d.ts | 23 +--- @types/ECPair.d.ts | 31 +++--- @types/Generating.d.ts | 6 +- @types/HDNode.d.ts | 68 ++++-------- @types/Mining.d.ts | 16 +-- @types/Mnemonic.d.ts | 62 ++--------- @types/Network.d.ts | 32 ++---- @types/RawTransactions.d.ts | 19 +--- @types/Script.d.ts | 194 ++++++++++++++++++++++++++++++--- @types/Transaction.d.ts | 40 +++++-- @types/TransactionBuilder.d.ts | 45 ++++---- @types/Util.d.ts | 19 +++- @types/bitbox-cli.d.ts | 83 +++++++------- 18 files changed, 568 insertions(+), 414 deletions(-) diff --git a/@types/Address.d.ts b/@types/Address.d.ts index db8d65ad..622aa271 100644 --- a/@types/Address.d.ts +++ b/@types/Address.d.ts @@ -1,37 +1,58 @@ -import axios from "axios"; -import bchaddr from 'bchaddrjs'; -import Bitcoin from 'bitcoincashjs-lib'; - -export default class Address { - +export declare class Address { restURL: string; - constructor(restURL: string); - // Translate address from any address format into a specific format. toLegacyAddress(address: string): string; - toCashAddress(address: string, prefix : boolean): string; - - // Test for address format. - isLegacyAddress(address:string):boolean; - isCashAddress(address:string):boolean; - // Test for address network. - isMainnetAddress(address:string):boolean; - isTestnetAddress(address:string):boolean; - // Test for address type. - isP2PKHAddress(address:string): boolean; - isP2SHAddress(address:string):boolean; - // Detect address format. - detectAddressFormat(address:string):string; - // Detect address network. - detectAddressNetwork(address:string):string; - // Detect address type. - detectAddressType(address:string):string; - fromXPub(xpub:string, path:string):string; - fromOutputScript(scriptPubKey:string):string; + toCashAddress(address: string, prefix?: boolean): string; + isLegacyAddress(address: string): boolean; + isCashAddress(address: string): boolean; + isMainnetAddress(address: string): boolean; + isTestnetAddress(address: string): boolean; + isP2PKHAddress(address: string): boolean; + isP2SHAddress(address: string): boolean; + detectAddressFormat(address: string): string; + detectAddressNetwork(address: string): string; + detectAddressType(address: string): string; + fromXPub(xpub: string, path?: string): string; + fromOutputScript(scriptPubKey:string): string; + details(address: string): Promise; + utxo(address: string): Promise; + unconfirmed(address: string): Promise; +} - details(address:string):string; - utxo(address:string): string; +export declare class AddressDetailsResult { + addrStr: string; + balance: number; + balanceSat: number; + totalReceived: number; + totalReceivedSat: number; + totalSent: number; + totalSentSat: number; + unconfirmedBalance: number; + unconfirmedBalanceSat: number; + unconfirmedTxApperances: number; + txApperances: number; + transactions: string[]; +} - unconfirmed(address:string):string; +export declare class AddressUtxoResult { + address: string; + txid: string; + vout: number; + scriptPubKey: string; + amount: number; + satoshis: number; + height: number; + confirmations: number; +} +export declare class AddressUnconfirmedResult { + txid: string; + vout: number; + scriptPubKey: string; + amount: number; + satoshis: number; + confirmations: number; + ts: number; + legacyAddress: string; + cashAddress: string; } \ No newline at end of file diff --git a/@types/BitcoinCash.d.ts b/@types/BitcoinCash.d.ts index 557612f2..d45634c8 100644 --- a/@types/BitcoinCash.d.ts +++ b/@types/BitcoinCash.d.ts @@ -1,65 +1,35 @@ -import Bitcoin from 'bitcoincashjs-lib'; -import bchaddr from 'bchaddrjs'; -import sb from 'satoshi-bitcoin'; -import bitcoinMessage from 'bitcoinjs-message'; -import bs58 from 'bs58'; -import bip21 from 'bip21'; -import coininfo from'coininfo'; -import bip38 from 'bip38'; -import wif from 'wif'; - -//let Buffer = require('safe-buffer').Buffer; - -export default class BitcoinCash { - // Translate coins to satoshi value - toSatoshi(coins:number):number; - // Translate satoshi to coin value - toBitcoinCash(satoshis:number):number; - // Translate satoshi to bits denomination - toBits(satoshis:number):number; - - // Translate satoshi to bits denomination - // TODO remove in 2.0 - satsToBits(satoshis:number):number; - - // Translate bits to satoshi denomination - // TODO remove in 2.0 - // fromBits(bits) { - // return this.toInteger(bits * 100); - // } - // - // // Translate bits to satoshi denomination - // satsFromBits(bits) { - // return this.toInteger(bits * 100); - // } - // - // toInteger(number){ - // return Math.round( // round to nearest integer - // Number(number) // type cast your input - // ); - // } - - // sign message - signMessageWithPrivKey(privateKeyWIF:string, message:string):string; - - // verify message - verifyMessage(address : string, signature: string, message:string) :true; - - // encode base58Check - encodeBase58Check(hex:string):string; - - // decode base58Check - decodeBase58Check(address:string):string; - - // encode bip21 url - encodeBIP21(address:string, options:object):string; - - // decode bip21 url - decodeBIP21(url:string):string; +export declare class BitcoinCash { + toSatoshi(coins: number): number; + toBitcoinCash(satoshis: number): number; + toBits(satoshis: number): number; + satsToBits(satoshis: number): number; + signMessageWithPrivKey(privateKeyWIF: string, message: string): string; + verifyMessage(address : string, signature: string, message: string): Boolean; + encodeBase58Check(hex: string): string; + decodeBase58Check(address: string): string; + encodeBIP21(address: string, options: EncodeBIP21Options): string; + decodeBIP21(url: string): BIP21Object; + getByteCount(inputs: ByteCountInput|object, outputs: ByteCountOutput): number; + encryptBIP38(privKeyWIF: string, passphrase: string): string; + decryptBIP38(encryptedKey: string, passphrase: string, network?: string): string; +} - getByteCount(inputs:string[], outputs:string[]):number; - encryptBIP38(privKeyWIF:string, passphrase:string):string; +declare class EncodeBIP21Options { + amount?: number; + label?: string; + message?: string; +} - decryptBIP38(encryptedKey:string, passphrase:string, network:string):string; +declare class BIP21Object { + address: string; + options?: EncodeBIP21Options +} +declare class ByteCountInput { + P2PKH?: number; } + +declare class ByteCountOutput { + P2PKH?: number; + P2SH?: number; +} \ No newline at end of file diff --git a/@types/Block.d.ts b/@types/Block.d.ts index 5175ea53..0de85db4 100644 --- a/@types/Block.d.ts +++ b/@types/Block.d.ts @@ -1,8 +1,26 @@ -import axios from 'axios'; -export default class Block { - constructor(restURL:string); - - details(id:number):string; +export declare class Block { + constructor(restURL: string); + details(id: number): Promise; } +export declare class BlockDetails { + hash: string; + size: number; + height: number; + version: number; + merkleroot: string; + tx: string[]; + time: number; + mediantime?: number; + nonce: number; + bits: string; + difficulty: number; + chainwork: string; + confirmations: number; + previousblockhash: string; + nextblockhash: string; + reward: number; + isMainChain: boolean; + poolInfo: object; +} diff --git a/@types/Blockchain.d.ts b/@types/Blockchain.d.ts index 6815bf13..0966452e 100644 --- a/@types/Blockchain.d.ts +++ b/@types/Blockchain.d.ts @@ -1,37 +1,90 @@ -import axios from 'axios'; -export default class Blockchain { - constructor(restURL:string); - getBestBlockHash():any; - - getBlock(blockhash:string, verbose?:boolean):any; - - getBlockchainInfo():any; - - getBlockCount() :any; - - getBlockHash(height:number):any; - - getBlockHeader(hash:string, verbose?:boolean):any; - - getChainTips():any; +import { BlockDetails } from './Block'; - getDifficulty():any; - - getMempoolAncestors(txid:string, verbose?:boolean):any; +export declare class Blockchain { + constructor(restURL:string); + getBestBlockHash(): Promise; + getBlock(blockhash: string, verbose?: boolean):Promise; + getBlockchainInfo(): Promise; + getBlockCount(): Promise; + getBlockHash(height: number): Promise; + getBlockHeader(hash: string, verbose?: boolean): Promise; + getChainTips(): Promise; + getDifficulty(): Promise; + getMempoolAncestors(txid: string, verbose?: boolean): Promise; + getMempoolDescendants(txid: string, verbose?: boolean): Promise; + getMempoolEntry(txid:string): Promise; + getMempoolInfo(): Promise; + getRawMempool(verbose?:boolean): Promise; + getTxOut(txid:string, n:number, include_mempool?: boolean): Promise; + getTxOutProof(txids:string, blockhash:string): Promise; + preciousBlock(blockhash:string): Promise; + pruneBlockchain(height:number): Promise; + verifyChain(checklevel?:number, nblocks?:number): Promise; + verifyTxOutProof(proof:string): Promise; +} - getMempoolDescendants(txid:string, verbose?:boolean):any; +declare class MempoolInfo { + size: number; + bytes: number; + usage: number; + maxmempool: number; + mempoolminfee: number; +} - getMempoolEntry(txid:string):any; +declare class BlockchainInfo { + chain: string; + blocks: number; + headers: number; + bestblockhash: string; + difficulty: number; + mediantime: number; + verificationprogress: number; + chainwork: string; + pruned: boolean; + softforks: object[] + bip9_softforks: object; +} - getMempoolInfo():any; - getRawMempool(verbose?:boolean):any; - getTxOut(txid:string, n:number, include_mempool?:boolean):any; - getTxOutProof(txids:string, blockhash:string):any; - preciousBlock(blockhash:string):any; - pruneBlockchain(height:number):any; +declare class BlockHeader { + hash: string; + confirmations: number; + height: number; + version: number; + versionHex: string; + merkleroot: string; + time: number; + mediantime: number; + nonce: number; + bits: string; + difficulty: number; + chainwork: string; + previousblockhash: string; + nextblockhash: string; +} - verifyChain(checklevel?:number, nblocks?:number):any; - verifyTxOutProof(proof:string):any; +declare class ChainTip { + height:number; + hash: string; + branchlen: number; + status: string; } +declare class RawMempoolTxn { + // [ {'2ae541af20db6f2b50410f418af56e349d08877d685f6cf54df54658e892db7a': + // { size: 237, + // fee: 0.00000238, + // modifiedfee: 0.00000238, + // time: 1525732015, + // height: 529235, + // startingpriority: 0, + // currentpriority: 0, + // descendantcount: 10, + // descendantsize: 2376, + // descendantfees: 2380, + // ancestorcount: 3, + // ancestorsize: 712, + // ancestorfees: 714, + // depends: + // [ 'e25682caafc7000645d59f4c11d8d594b2943979b9d8fafb9f946e2b35c21b7e' ] },] +} \ No newline at end of file diff --git a/@types/Control.d.ts b/@types/Control.d.ts index adfc3529..f7f3f047 100644 --- a/@types/Control.d.ts +++ b/@types/Control.d.ts @@ -1,10 +1,30 @@ -import axios from 'axios'; -export default class Control { +export declare class Control { constructor(restURL:string); - getInfo():any; - - getMemoryInfo():any; - + getInfo(): Promise; + getMemoryInfo():Promise; } +declare class NodeInfo { + version: number; + protocolversion: number; + blocks: number; + timeoffset: number; + connections: number; + proxy: string; + difficulty: number; + testnet: boolean; + paytxfee: number; + relayfee: number; + errors: string; +} +declare class NodeMemoryInfo { + locked: { + used: number, + free: number, + total: number, + locked: number, + chunks_used: number, + chunks_free: number + } +} \ No newline at end of file diff --git a/@types/Crypto.d.ts b/@types/Crypto.d.ts index 754a59de..52a5f6bc 100644 --- a/@types/Crypto.d.ts +++ b/@types/Crypto.d.ts @@ -1,18 +1,7 @@ -import randomBytes from 'randombytes'; -import BitcoinCash from './BitcoinCash'; -import Bitcoin from 'bitcoincashjs-lib'; -//let bc = new BitcoinCash(); - -export default class Crypto { - // Utility class to wrap NodeJS's crypto module - // https://nodejs.org/api/crypto.html - static sha256(buffer:string):string; - - static ripemd160(buffer:string):string; - - static hash256(buffer:string):string; - - static hash160(buffer:string):string; - - static randomBytes(size:number):string; +export declare class Crypto { + sha256(buffer: Buffer): Buffer; + ripemd160(buffer: Buffer): Buffer; + hash256(buffer: Buffer): Buffer; + hash160(buffer: Buffer): Buffer; + randomBytes(size: number): Buffer; } \ No newline at end of file diff --git a/@types/ECPair.d.ts b/@types/ECPair.d.ts index 92810661..f20a0f7d 100644 --- a/@types/ECPair.d.ts +++ b/@types/ECPair.d.ts @@ -1,20 +1,15 @@ -import Bitcoin from 'bitcoincashjs-lib'; -import bchaddr from 'bchaddrjs'; -import coininfo from'coininfo'; -export default class ECPair { - static fromWIF(privateKeyWIF:string): string; - static toWIF(ecpair:ECPair):string; - - static sign(ecpair:ECPair, buffer:string):string; - - static verify(ecpair:ECPair, buffer:string, signature:string):string; - - static fromPublicKey(pubkeyBuffer:string):string; - - static toPublicKey(ecpair:ECPair):string; - - static toLegacyAddress(ecpair:ECPair):string; - - static toCashAddress(ecpair:ECPair):string; +declare type ECSignature = any; + +export declare class ECPair { + constructor(); + fromWIF(privateKeyWIF: string): ECPair; + toWIF(ecpair: ECPair): string; + sign(sigHash: number): ECSignature; + sign(ecpair: ECPair, buffer: Buffer): Boolean | ECSignature; + verify(ecpair: ECPair, buffer: Buffer, signature: ECSignature): boolean; + fromPublicKey(pubkeyBuffer: string): ECPair; + toPublicKey(ecpair: ECPair): Buffer; + toLegacyAddress(ecpair: ECPair): string; + toCashAddress(ecpair: ECPair): string; } \ No newline at end of file diff --git a/@types/Generating.d.ts b/@types/Generating.d.ts index 177ed9bf..cc8b097b 100644 --- a/@types/Generating.d.ts +++ b/@types/Generating.d.ts @@ -1,6 +1,4 @@ -import axios from 'axios'; -export default class Generating { +export declare class Generating { constructor(restURL:string); - - generateToAddress(blocks:number, address:string, maxtries:number):string; + generateToAddress(blocks:number, address:string, maxtries:number):Promise; } \ No newline at end of file diff --git a/@types/HDNode.d.ts b/@types/HDNode.d.ts index 4cb352a6..0759ecdf 100644 --- a/@types/HDNode.d.ts +++ b/@types/HDNode.d.ts @@ -1,49 +1,23 @@ -import Bitcoin from 'bitcoincashjs-lib'; -import bchaddr from 'bchaddrjs'; -import coininfo from'coininfo'; -// let bip32utils = require('bip32-utils') - -export default class HDNode { - fromSeed(rootSeedBuffer, network:string):Bitcoin.HDNode; - - toLegacyAddress(hdNode:Bitcoin.HDNode):string; - - toCashAddress(hdNode:Bitcoin.HDNode):string; - - toWIF(hdNode:Bitcoin.HDNode):string; - - toXPub(hdNode:Bitcoin.HDNode):string; - - toXPriv(hdNode:Bitcoin.HDNode): string; - - toKeyPair(hdNode:Bitcoin.HDNode): string; - - toPublicKey(hdNode:Bitcoin.HDNode): string; - - fromXPriv(xpriv:string):string; - - fromXPub(xpub:string):string; - - derivePath(hdnode:Bitcoin.HDNode, path:string):string; - - derive(hdnode:Bitcoin.HDNode, path:string):string; - - deriveHardened(hdnode:Bitcoin.HDNode, path):string; - - sign(hdnode:Bitcoin.HDNode, buffer:string):string; - - verify(hdnode:Bitcoin.HDNode, buffer:string, signature:string):boolean; - - isPublic(hdnode:Bitcoin.HDNode):boolean; - - isPrivate(hdnode:Bitcoin.HDNode):boolean; - - toIdentifier(hdnode:Bitcoin.HDNode):string; - +import { ECPair, ECSignature } from "./ECPair"; + +export declare class HDNode { + fromSeed(rootSeedBuffer: Buffer, network?: string): HDNode; + toLegacyAddress(hdNode:HDNode):string; + toCashAddress(hdNode:HDNode):string; + toWIF(hdNode:HDNode): string; + toXPub(hdNode:HDNode):string; + toXPriv(hdNode:HDNode): string; + toKeyPair(hdNode:HDNode): ECPair; + toPublicKey(hdNode:HDNode): Buffer; + fromXPriv(xpriv: string): HDNode; + fromXPub(xpub:string): HDNode; + derivePath(hdnode: HDNode, path:string):HDNode; + derive(hdnode: HDNode, num:number):HDNode; + deriveHardened(hdnode:HDNode, num: number):HDNode; + sign(hdnode:HDNode, buffer:Buffer):ECSignature; + verify(hdnode:HDNode, buffer:Buffer, signature:ECSignature):boolean; + isPublic(hdnode:HDNode):boolean; + isPrivate(hdnode:HDNode):boolean; + toIdentifier(hdnode:HDNode):string; fromBase58(base58:string, network:string):string; - - // - // createChain(hdNode) { - // return new bip32utils.Chain(hdNode); - // } } \ No newline at end of file diff --git a/@types/Mining.d.ts b/@types/Mining.d.ts index 74d519c9..a927888d 100644 --- a/@types/Mining.d.ts +++ b/@types/Mining.d.ts @@ -1,13 +1,7 @@ -import axios from 'axios'; -import { Interface } from 'mocha'; -export default class Mining { +export declare class Mining { constructor(restURL:string); - - getBlockTemplate(template_request:Interface):any; - - getMiningInfo():any; - - getNetworkHashps(nblocks:number, height:number):any; - - submitBlock(hex:string, parameters:string):any; + getBlockTemplate(template_request?:any):Promise; + getMiningInfo():Promise; + getNetworkHashps(nblocks?:number, height?:number):Promise; + submitBlock(hex:string, parameters?:string):Promise; } \ No newline at end of file diff --git a/@types/Mnemonic.d.ts b/@types/Mnemonic.d.ts index 6c083ac0..d20ea4fd 100644 --- a/@types/Mnemonic.d.ts +++ b/@types/Mnemonic.d.ts @@ -1,52 +1,10 @@ -import Crypto from './Crypto'; - -import BIP39 from 'bip39'; -import randomBytes from 'randombytes'; -import Bitcoin from 'bitcoincashjs-lib'; -import bchaddr from 'bchaddrjs'; -//let Buffer = require('safe-buffer').Buffer - -export default class Mnemonic { - generate(bits:number, wordlist:string[]):string; - - fromEntropy(bytes:string, wordlist:string[]):string; - - toEntropy(mnemonic:string, wordlist:string[]):Buffer; - - validate(mnemonic:string, wordlist:string[]):string; - - toSeed(mnemonic:string, password:string):Buffer; - - wordLists():string[]; - - toKeypairs(mnemonic:string, numberOfKeypairs:number):any[]; - findNearestWord(word:string, wordlist:string[]):string; -} - - - -// The following code is from: https://raw.githubusercontent.com/iancoleman/bip39/7ff86d4c983f1e8c80b87b31acfd69fcf98c1b82/src/js/levenshtein.js - -/** - * Extend an Object with another Object's properties. - * - * The source objects are specified as additional arguments. - * - * @param dst Object the object to extend. - * - * @return Object the final object. - */ - - - declare var _extend : object; - /** - * Defer execution of given function. - * @param {Function} func - */ - - declare var _defer : number; - /** - * Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance. - */ - - declare var Levenshtein: number; \ No newline at end of file +export declare class Mnemonic { + generate(bits: number, wordlist?: string[]): string; + fromEntropy(bytes: Buffer, wordlist?: string[]): string; + toEntropy(mnemonic: string, wordlist?: string[]): Buffer; + validate(mnemonic: string, wordlist?: string[]): boolean; + toSeed(mnemonic: string, passphrase?: string): Buffer; + wordLists(): object; + toKeypairs(mnemonic: string, numberOfKeypairs?: number): { privateKeyWIF: string, address: string}[]; + findNearestWord(word: string, wordlist: string[]): string; +} \ No newline at end of file diff --git a/@types/Network.d.ts b/@types/Network.d.ts index 11b03438..f3a9ccb2 100644 --- a/@types/Network.d.ts +++ b/@types/Network.d.ts @@ -1,24 +1,12 @@ -import axios from 'axios'; -export default class Network { +export declare class Network { constructor(restURL:string); - - addNode(node:string, command:string):any; - - clearBanned():any; - - disconnectNode(configuration:object):any; - - getAddedNodeInfo(node?:string):any; - - getConnectionCount():any; - - getNetTotals():any; - - getNetworkInfo():any; - - getPeerInfo():any; - - - ping():any; - + //addNode(node:string, command:string):any; + //clearBanned():any; + //disconnectNode(configuration:object):any; + //getAddedNodeInfo(node?:string):any; + getConnectionCount():Promise; + getNetTotals():Promise; + getNetworkInfo():Promise; + getPeerInfo():Promise; + ping():Promise; } \ No newline at end of file diff --git a/@types/RawTransactions.d.ts b/@types/RawTransactions.d.ts index 392cb180..6f335b5c 100644 --- a/@types/RawTransactions.d.ts +++ b/@types/RawTransactions.d.ts @@ -1,14 +1,7 @@ -import axios from 'axios'; -export default class RawTransactions { +export declare class RawTransactions { constructor(restURL:string); - - decodeRawTransaction(hex:string):any; - - decodeScript(hex:string):any; - - getRawTransaction(txid:string, verbose?:boolean):any; - - sendRawTransaction(hex:string, allowhighfees?:boolean):any; -} - - + decodeRawTransaction(hex:string):Promise; + decodeScript(hex: string):Promise; + getRawTransaction(txid: string, verbose?:boolean): Promise; + sendRawTransaction(hex: string, allowhighfees?:boolean): Promise; +} \ No newline at end of file diff --git a/@types/Script.d.ts b/@types/Script.d.ts index b2bbb21d..344ddd1c 100644 --- a/@types/Script.d.ts +++ b/@types/Script.d.ts @@ -1,28 +1,188 @@ -import Bitcoin from 'bitcoincashjs-lib'; -import opcodes from 'bitcoin-ops'; - -export default class Script { - +export declare class Script { opcodes: opcodes; - nullData: null; - multisig: string; - pubKey:string; - pubKeyHash:string; - scriptHash: string; + // nullData: null; + // multisig: string; + // pubKey: string; + // pubKeyHash: string; + scriptHash: any; constructor(); + classifyInput(script:Buffer):any; + classifyOutput(script:Buffer):any; + decode(scriptBuffer:Buffer):any[]; + encode(scriptChunks:any[]):Buffer; + toASM(buffer: Buffer): string; + fromASM(asm: string): Buffer; + encodeNullDataOutput(data: Buffer): Buffer; + decodeNullDataOutput(output: Buffer): Buffer; + checkNullDataOutput(ouput: Buffer): Boolean; + encodeP2PKInput(signature: Buffer): Buffer; + decodeP2PKInput(input: Buffer): Buffer; + checkP2PKInput(input: Buffer): Boolean; + encodeP2PKOutput(pubKey: Buffer): Buffer; + decodeP2PKOutput(pubKey: Buffer): Buffer; + checkP2PKOutput(ouput: Buffer): Boolean; + encodeP2PKHInput(signature: Buffer, pubKey: Buffer): Buffer; + decodeP2PKHInput(signature: Buffer): Buffer; + checkP2PKHInput(input: Buffer): Boolean; + encodeP2PKHOutput(signature: Buffer, pubKey: Buffer): Buffer; + decodeP2PKHOutput(output: Buffer): Buffer; + checkP2PKHOutput(output: Buffer): Boolean; + encodeP2MSInput(signatures: Buffer[]): Buffer; + decodeP2MSInput(input: Buffer): Buffer; + checkP2MSInput(input: Buffer): Boolean; + encodeP2MSOutput(m: number, pubKeys: Buffer[]): Buffer; + decodeP2MSOutput(output: Buffer): Buffer; + checkP2MSOutput(input: Buffer): Boolean; + encodeP2SHInput(redeemScriptSig: Buffer, redeemScript: Buffer): Buffer; + decodeP2SHInput(input: Buffer): Buffer; + checkP2SHInput(input: Buffer): boolean; + encodeP2SHOutput(scriptHash: Buffer): Buffer; + decodeP2SHOutput(output: Buffer): Buffer; + checkP2SHOutput(output: Buffer): Boolean; + classifyInput(input: Buffer): string; + classifyOutput(output: Buffer): string; +} - classifyInput(script:any):any; +declare interface opcodes { + "OP_FALSE": 0, + "OP_0": 0, + "OP_PUSHDATA1": 76, + "OP_PUSHDATA2": 77, + "OP_PUSHDATA4": 78, + "OP_1NEGATE": 79, + "OP_RESERVED": 80, + "OP_TRUE": 81, + "OP_1": 81, + "OP_2": 82, + "OP_3": 83, + "OP_4": 84, + "OP_5": 85, + "OP_6": 86, + "OP_7": 87, + "OP_8": 88, + "OP_9": 89, + "OP_10": 90, + "OP_11": 91, + "OP_12": 92, + "OP_13": 93, + "OP_14": 94, + "OP_15": 95, + "OP_16": 96, - classifyOutput(script:any):any; + "OP_NOP": 97, + "OP_VER": 98, + "OP_IF": 99, + "OP_NOTIF": 100, + "OP_VERIF": 101, + "OP_VERNOTIF": 102, + "OP_ELSE": 103, + "OP_ENDIF": 104, + "OP_VERIFY": 105, + "OP_RETURN": 106, - decode(scriptBuffer:any):any; + "OP_TOALTSTACK": 107, + "OP_FROMALTSTACK": 108, + "OP_2DROP": 109, + "OP_2DUP": 110, + "OP_3DUP": 111, + "OP_2OVER": 112, + "OP_2ROT": 113, + "OP_2SWAP": 114, + "OP_IFDUP": 115, + "OP_DEPTH": 116, + "OP_DROP": 117, + "OP_DUP": 118, + "OP_NIP": 119, + "OP_OVER": 120, + "OP_PICK": 121, + "OP_ROLL": 122, + "OP_ROT": 123, + "OP_SWAP": 124, + "OP_TUCK": 125, - encode(scriptChunks:any):Bitcoin.Buffer; + "OP_CAT": 126, + //"OP_SUBSTR": 127, -- replaced w/ OP_SPLIT see below + //"OP_LEFT": 128, -- replaced w/ OP_SPLIT see below + //"OP_RIGHT": 129, -- replaced w/ OP_SPLIT see below + "OP_SIZE": 130, - toASM(buffer:any):any; + "OP_INVERT": 131, + "OP_AND": 132, // May 2018 reenabled + "OP_OR": 133, // May 2018 reenabled + "OP_XOR": 134, // May 2018 reenabled + "OP_EQUAL": 135, + "OP_EQUALVERIFY": 136, + "OP_RESERVED1": 137, + "OP_RESERVED2": 138, - fromASM(asm:any):Bitcoin.Buffer; -} + "OP_1ADD": 139, + "OP_1SUB": 140, + "OP_2MUL": 141, + "OP_2DIV": 142, + "OP_NEGATE": 143, + "OP_ABS": 144, + "OP_NOT": 145, + "OP_0NOTEQUAL": 146, + "OP_ADD": 147, + "OP_SUB": 148, + "OP_MUL": 149, + "OP_DIV": 150, // May 2018 reenabled + "OP_MOD": 151, // May 2018 reenabled + "OP_LSHIFT": 152, + "OP_RSHIFT": 153, + + "OP_BOOLAND": 154, + "OP_BOOLOR": 155, + "OP_NUMEQUAL": 156, + "OP_NUMEQUALVERIFY": 157, + "OP_NUMNOTEQUAL": 158, + "OP_LESSTHAN": 159, + "OP_GREATERTHAN": 160, + "OP_LESSTHANOREQUAL": 161, + "OP_GREATERTHANOREQUAL": 162, + "OP_MIN": 163, + "OP_MAX": 164, + + "OP_WITHIN": 165, + + "OP_RIPEMD160": 166, + "OP_SHA1": 167, + "OP_SHA256": 168, + "OP_HASH160": 169, + "OP_HASH256": 170, + "OP_CODESEPARATOR": 171, + "OP_CHECKSIG": 172, + "OP_CHECKSIGVERIFY": 173, + "OP_CHECKMULTISIG": 174, + "OP_CHECKMULTISIGVERIFY": 175, + "OP_NOP1": 176, + + "OP_NOP2": 177, + "OP_CHECKLOCKTIMEVERIFY": 177, + + "OP_NOP3": 178, + "OP_CHECKSEQUENCEVERIFY": 178, + + "OP_NOP4": 179, + "OP_NOP5": 180, + "OP_NOP6": 181, + "OP_NOP7": 182, + "OP_NOP8": 183, + "OP_NOP9": 184, + "OP_NOP10": 185, + + "OP_PUBKEYHASH": 253, + "OP_PUBKEY": 254, + "OP_INVALIDOPCODE": 255 + + // May 2018 added opcodes + "OP_SPLIT": 127, + "OP_NUM2BIN": 128, + "OP_BIN2NUM": 129 + + // Nov 2018 enabled opcodes + // TBD +} diff --git a/@types/Transaction.d.ts b/@types/Transaction.d.ts index f43438cd..ace5961b 100644 --- a/@types/Transaction.d.ts +++ b/@types/Transaction.d.ts @@ -1,15 +1,31 @@ -import Bitcoin from 'bitcoincashjs-lib'; -import axios from 'axios'; +import { TransactionBuilder } from './TransactionBuilder'; +export declare class Transaction { + constructor(restURL: string); + transaction(): Transaction; + toHex(): string; + fromHex(hex: string): string; + transactionBuilder(network: string): TransactionBuilder; + fromTransaction(tx: Transaction): TransactionBuilder; + details(txid: string| string[]): Promise; -export default class Transaction { - constructor(restURL:string); + // lower level methods + buildIncomplete(): Transaction; + hashForWitnessV0(idx: number, script: Buffer, amount: number, hashType: number): number; + setInputScript(idx: number, scriptSig: Buffer): void; +} - transaction():Bitcoin.Transaction; - fromHex(hex:string):string; - - transactionBuilder(network:string):Bitcoin.TransactionBuilder; - - fromTransaction(tx:Bitcoin.Transaction):Bitcoin.TransactionBuilder; - - details(txid:string):any; +declare class TxnDetails{ + txid: string; + version: number; + locktime: number; + vin: object[]; + vout: object[]; + blockhash: string; + blockheight: number; + confirmations: number; + time: number; + blocktime: number; + isCoinBase: boolean; + valueOut: number; + size: number; } \ No newline at end of file diff --git a/@types/TransactionBuilder.d.ts b/@types/TransactionBuilder.d.ts index 8e5b599a..e715e245 100644 --- a/@types/TransactionBuilder.d.ts +++ b/@types/TransactionBuilder.d.ts @@ -1,26 +1,29 @@ -import Bitcoin from 'bitcoincashjs-lib'; -import bchaddr from 'bchaddrjs'; -import coininfo from 'coininfo'; -import bip66 from 'bip66'; -import bip68 from 'bip68'; +import { Transaction } from './Transaction'; +import { ECPair } from './ECPair'; -export default class TransactionBuilder { - - bitcoincash: coininfo.bitcoincash.main; - bitcoincashBitcoinJSLib: Bitcoin.toBitcoinJS; - transaction: Bitcoin.Transaction; - DEFAULT_SEQUENCE:string; - hashTypes:Enumerator; - bip66 : bip66; - bip68 : bip68; - - constructor(network:string); - - addInput(txHash:string, vout:string, sequence:string, prevOutScript:string):void; +declare type ECSignature = any; - addOutput(scriptPubKey:string, amount:number):void; +export declare class TransactionBuilder { + // bitcoincash: coininfo.bitcoincash.main; + // bitcoincashBitcoinJSLib: Bitcoin.toBitcoinJS; + transaction: Transaction; + DEFAULT_SEQUENCE: number; + hashTypes: HashTypes; + bip66 : any; + bip68 : any; - sign(vin:string, keyPair:string, redeemScript:string, hashType:Enumerator, value:any):void; + constructor(network: string); + + addInput(txHash: string|Buffer, vout: number, sequence?: number, prevOutScript?: string): void; + addOutput(scriptPubKey: string|Buffer, amount: number): void; + sign(vin: number, keyPair: ECPair, redeemScript: Buffer, hashType: number, value: number): ECSignature; + build(): Transaction; +} - build():Bitcoin.Transaction; +declare interface HashTypes { + SIGHASH_ALL: number; + SIGHASH_NONE: number; + SIGHASH_SINGLE: number; + SIGHASH_ANYONECANPAY: number; + SIGHASH_BITCOINCASH_BIP143: number; } \ No newline at end of file diff --git a/@types/Util.d.ts b/@types/Util.d.ts index 29e09adf..528bde99 100644 --- a/@types/Util.d.ts +++ b/@types/Util.d.ts @@ -1,7 +1,16 @@ -import axios from 'axios'; - -export default class Util { - +export declare class Util { constructor(restURL:string); - validateAddress(address:string):any; + validateAddress(address: string): Promise; +} + +declare class AddressDetails { + isvalid: boolean; + address: string; + scriptPubKey: string; + ismine: boolean; + iswatchonly: boolean; + isscript: boolean; + pubkey: string; + iscompressed: boolean; + account: string; } \ No newline at end of file diff --git a/@types/bitbox-cli.d.ts b/@types/bitbox-cli.d.ts index 0e42fc79..19ea3731 100644 --- a/@types/bitbox-cli.d.ts +++ b/@types/bitbox-cli.d.ts @@ -1,48 +1,43 @@ -// 3rd party deps -import axios from 'axios'; -import Bitcoin from 'bitcoincashjs-lib'; - // local deps -import BitcoinCash from './BitcoinCash'; -import Crypto from './Crypto'; -import Util from './Util'; -import Block from './Block'; -import Blockchain from './Blockchain'; -import Control from './Control'; -import Generating from './Generating'; -import Mining from './Mining'; -import Network from './Network'; -import RawTransactions from './RawTransactions'; -import Mnemonic from './Mnemonic'; -import Address from './Address'; -import HDNode from './HDNode'; -import Transaction from './Transaction'; -import TransactionBuilder from './TransactionBuilder'; -import ECPair from './ECPair'; -import Script from './Script'; +import { BitcoinCash } from './BitcoinCash'; +import { Crypto } from './Crypto'; +import { Util } from './Util'; +import { Block } from './Block'; +import { Blockchain } from './Blockchain'; +import { Control } from './Control'; +import { Generating } from './Generating'; +import { Mining } from './Mining'; +import { Network } from './Network'; +import { RawTransactions } from './RawTransactions'; +import { Mnemonic } from './Mnemonic'; +import { Address } from './Address'; +import { HDNode } from './HDNode'; +import { Transaction } from './Transaction'; +import { TransactionBuilder } from './TransactionBuilder'; +import { ECPair } from './ECPair'; +import { Script } from './Script'; + +//export declare type BITBOXCli + +export declare interface IBITBOXCli { -export default class BITBOXCli { - - restURL:string; - Address:string; - BitcoinCash:string; - Block:string; - Blockchain:string; - Control:string; - Generating:string; - Mining:string; + restURL: string; + Address: Address; + BitcoinCash: BitcoinCash; + Block: Block; + Blockchain: Blockchain; + Control: Control; + Generating: Generating; + Mining: Mining; + Crypto: Crypto; + ECPair: ECPair; + HDNode: HDNode; + Mnemonic: Mnemonic; + Network: Network; + RawTransactions: RawTransactions; + Script: Script; + Transaction: Transaction; + TransactionBuilder: TransactionBuilder; + Util: Util; - Crypto:Crypto; - ECPair:ECPair; - HDNode:HDNode; - Mnemonic:Mnemonic; - Network: Network; - RawTransactions:RawTransactions; - Script:Script; - Transaction: Transaction; - TransactionBuilder:TransactionBuilder; - Util:Util; - - constructor(config:Object); - } From 597e1bed3eb4dace0bd0e454ed7fa6e89841066b Mon Sep 17 00:00:00 2001 From: James Cramer Date: Fri, 13 Jul 2018 16:04:08 -0400 Subject: [PATCH 019/480] for distribution --- lib/Address.d.ts | 58 +++++++++++ lib/BitcoinCash.d.ts | 35 +++++++ lib/Block.d.ts | 26 +++++ lib/Blockchain.d.ts | 90 +++++++++++++++++ lib/Control.d.ts | 30 ++++++ lib/Crypto.d.ts | 7 ++ lib/ECPair.d.ts | 15 +++ lib/Generating.d.ts | 4 + lib/HDNode.d.ts | 23 +++++ lib/Mining.d.ts | 7 ++ lib/Mnemonic.d.ts | 10 ++ lib/Network.d.ts | 12 +++ lib/RawTransactions.d.ts | 7 ++ lib/Script.d.ts | 188 ++++++++++++++++++++++++++++++++++++ lib/Transaction.d.ts | 31 ++++++ lib/TransactionBuilder.d.ts | 29 ++++++ lib/Util.d.ts | 16 +++ lib/bitbox-cli.d.ts | 43 +++++++++ 18 files changed, 631 insertions(+) create mode 100644 lib/Address.d.ts create mode 100644 lib/BitcoinCash.d.ts create mode 100644 lib/Block.d.ts create mode 100644 lib/Blockchain.d.ts create mode 100644 lib/Control.d.ts create mode 100644 lib/Crypto.d.ts create mode 100644 lib/ECPair.d.ts create mode 100644 lib/Generating.d.ts create mode 100644 lib/HDNode.d.ts create mode 100644 lib/Mining.d.ts create mode 100644 lib/Mnemonic.d.ts create mode 100644 lib/Network.d.ts create mode 100644 lib/RawTransactions.d.ts create mode 100644 lib/Script.d.ts create mode 100644 lib/Transaction.d.ts create mode 100644 lib/TransactionBuilder.d.ts create mode 100644 lib/Util.d.ts create mode 100644 lib/bitbox-cli.d.ts diff --git a/lib/Address.d.ts b/lib/Address.d.ts new file mode 100644 index 00000000..622aa271 --- /dev/null +++ b/lib/Address.d.ts @@ -0,0 +1,58 @@ +export declare class Address { + restURL: string; + constructor(restURL: string); + toLegacyAddress(address: string): string; + toCashAddress(address: string, prefix?: boolean): string; + isLegacyAddress(address: string): boolean; + isCashAddress(address: string): boolean; + isMainnetAddress(address: string): boolean; + isTestnetAddress(address: string): boolean; + isP2PKHAddress(address: string): boolean; + isP2SHAddress(address: string): boolean; + detectAddressFormat(address: string): string; + detectAddressNetwork(address: string): string; + detectAddressType(address: string): string; + fromXPub(xpub: string, path?: string): string; + fromOutputScript(scriptPubKey:string): string; + details(address: string): Promise; + utxo(address: string): Promise; + unconfirmed(address: string): Promise; +} + +export declare class AddressDetailsResult { + addrStr: string; + balance: number; + balanceSat: number; + totalReceived: number; + totalReceivedSat: number; + totalSent: number; + totalSentSat: number; + unconfirmedBalance: number; + unconfirmedBalanceSat: number; + unconfirmedTxApperances: number; + txApperances: number; + transactions: string[]; +} + +export declare class AddressUtxoResult { + address: string; + txid: string; + vout: number; + scriptPubKey: string; + amount: number; + satoshis: number; + height: number; + confirmations: number; +} + +export declare class AddressUnconfirmedResult { + txid: string; + vout: number; + scriptPubKey: string; + amount: number; + satoshis: number; + confirmations: number; + ts: number; + legacyAddress: string; + cashAddress: string; +} \ No newline at end of file diff --git a/lib/BitcoinCash.d.ts b/lib/BitcoinCash.d.ts new file mode 100644 index 00000000..d45634c8 --- /dev/null +++ b/lib/BitcoinCash.d.ts @@ -0,0 +1,35 @@ +export declare class BitcoinCash { + toSatoshi(coins: number): number; + toBitcoinCash(satoshis: number): number; + toBits(satoshis: number): number; + satsToBits(satoshis: number): number; + signMessageWithPrivKey(privateKeyWIF: string, message: string): string; + verifyMessage(address : string, signature: string, message: string): Boolean; + encodeBase58Check(hex: string): string; + decodeBase58Check(address: string): string; + encodeBIP21(address: string, options: EncodeBIP21Options): string; + decodeBIP21(url: string): BIP21Object; + getByteCount(inputs: ByteCountInput|object, outputs: ByteCountOutput): number; + encryptBIP38(privKeyWIF: string, passphrase: string): string; + decryptBIP38(encryptedKey: string, passphrase: string, network?: string): string; +} + +declare class EncodeBIP21Options { + amount?: number; + label?: string; + message?: string; +} + +declare class BIP21Object { + address: string; + options?: EncodeBIP21Options +} + +declare class ByteCountInput { + P2PKH?: number; +} + +declare class ByteCountOutput { + P2PKH?: number; + P2SH?: number; +} \ No newline at end of file diff --git a/lib/Block.d.ts b/lib/Block.d.ts new file mode 100644 index 00000000..0de85db4 --- /dev/null +++ b/lib/Block.d.ts @@ -0,0 +1,26 @@ +export declare class Block { + constructor(restURL: string); + details(id: number): Promise; +} + +export declare class BlockDetails { + hash: string; + size: number; + height: number; + version: number; + merkleroot: string; + tx: string[]; + time: number; + mediantime?: number; + nonce: number; + bits: string; + difficulty: number; + chainwork: string; + confirmations: number; + previousblockhash: string; + nextblockhash: string; + reward: number; + isMainChain: boolean; + poolInfo: object; +} + diff --git a/lib/Blockchain.d.ts b/lib/Blockchain.d.ts new file mode 100644 index 00000000..0966452e --- /dev/null +++ b/lib/Blockchain.d.ts @@ -0,0 +1,90 @@ +import { BlockDetails } from './Block'; + +export declare class Blockchain { + constructor(restURL:string); + getBestBlockHash(): Promise; + getBlock(blockhash: string, verbose?: boolean):Promise; + getBlockchainInfo(): Promise; + getBlockCount(): Promise; + getBlockHash(height: number): Promise; + getBlockHeader(hash: string, verbose?: boolean): Promise; + getChainTips(): Promise; + getDifficulty(): Promise; + getMempoolAncestors(txid: string, verbose?: boolean): Promise; + getMempoolDescendants(txid: string, verbose?: boolean): Promise; + getMempoolEntry(txid:string): Promise; + getMempoolInfo(): Promise; + getRawMempool(verbose?:boolean): Promise; + getTxOut(txid:string, n:number, include_mempool?: boolean): Promise; + getTxOutProof(txids:string, blockhash:string): Promise; + preciousBlock(blockhash:string): Promise; + pruneBlockchain(height:number): Promise; + verifyChain(checklevel?:number, nblocks?:number): Promise; + verifyTxOutProof(proof:string): Promise; +} + +declare class MempoolInfo { + size: number; + bytes: number; + usage: number; + maxmempool: number; + mempoolminfee: number; +} + +declare class BlockchainInfo { + chain: string; + blocks: number; + headers: number; + bestblockhash: string; + difficulty: number; + mediantime: number; + verificationprogress: number; + chainwork: string; + pruned: boolean; + softforks: object[] + bip9_softforks: object; +} + +declare class BlockHeader { + hash: string; + confirmations: number; + height: number; + version: number; + versionHex: string; + merkleroot: string; + time: number; + mediantime: number; + nonce: number; + bits: string; + difficulty: number; + chainwork: string; + previousblockhash: string; + nextblockhash: string; +} + +declare class ChainTip { + height:number; + hash: string; + branchlen: number; + status: string; +} + +declare class RawMempoolTxn { + + // [ {'2ae541af20db6f2b50410f418af56e349d08877d685f6cf54df54658e892db7a': + // { size: 237, + // fee: 0.00000238, + // modifiedfee: 0.00000238, + // time: 1525732015, + // height: 529235, + // startingpriority: 0, + // currentpriority: 0, + // descendantcount: 10, + // descendantsize: 2376, + // descendantfees: 2380, + // ancestorcount: 3, + // ancestorsize: 712, + // ancestorfees: 714, + // depends: + // [ 'e25682caafc7000645d59f4c11d8d594b2943979b9d8fafb9f946e2b35c21b7e' ] },] +} \ No newline at end of file diff --git a/lib/Control.d.ts b/lib/Control.d.ts new file mode 100644 index 00000000..f7f3f047 --- /dev/null +++ b/lib/Control.d.ts @@ -0,0 +1,30 @@ +export declare class Control { + constructor(restURL:string); + getInfo(): Promise; + getMemoryInfo():Promise; +} + +declare class NodeInfo { + version: number; + protocolversion: number; + blocks: number; + timeoffset: number; + connections: number; + proxy: string; + difficulty: number; + testnet: boolean; + paytxfee: number; + relayfee: number; + errors: string; +} + +declare class NodeMemoryInfo { + locked: { + used: number, + free: number, + total: number, + locked: number, + chunks_used: number, + chunks_free: number + } +} \ No newline at end of file diff --git a/lib/Crypto.d.ts b/lib/Crypto.d.ts new file mode 100644 index 00000000..52a5f6bc --- /dev/null +++ b/lib/Crypto.d.ts @@ -0,0 +1,7 @@ +export declare class Crypto { + sha256(buffer: Buffer): Buffer; + ripemd160(buffer: Buffer): Buffer; + hash256(buffer: Buffer): Buffer; + hash160(buffer: Buffer): Buffer; + randomBytes(size: number): Buffer; +} \ No newline at end of file diff --git a/lib/ECPair.d.ts b/lib/ECPair.d.ts new file mode 100644 index 00000000..f20a0f7d --- /dev/null +++ b/lib/ECPair.d.ts @@ -0,0 +1,15 @@ + +declare type ECSignature = any; + +export declare class ECPair { + constructor(); + fromWIF(privateKeyWIF: string): ECPair; + toWIF(ecpair: ECPair): string; + sign(sigHash: number): ECSignature; + sign(ecpair: ECPair, buffer: Buffer): Boolean | ECSignature; + verify(ecpair: ECPair, buffer: Buffer, signature: ECSignature): boolean; + fromPublicKey(pubkeyBuffer: string): ECPair; + toPublicKey(ecpair: ECPair): Buffer; + toLegacyAddress(ecpair: ECPair): string; + toCashAddress(ecpair: ECPair): string; +} \ No newline at end of file diff --git a/lib/Generating.d.ts b/lib/Generating.d.ts new file mode 100644 index 00000000..cc8b097b --- /dev/null +++ b/lib/Generating.d.ts @@ -0,0 +1,4 @@ +export declare class Generating { + constructor(restURL:string); + generateToAddress(blocks:number, address:string, maxtries:number):Promise; +} \ No newline at end of file diff --git a/lib/HDNode.d.ts b/lib/HDNode.d.ts new file mode 100644 index 00000000..0759ecdf --- /dev/null +++ b/lib/HDNode.d.ts @@ -0,0 +1,23 @@ +import { ECPair, ECSignature } from "./ECPair"; + +export declare class HDNode { + fromSeed(rootSeedBuffer: Buffer, network?: string): HDNode; + toLegacyAddress(hdNode:HDNode):string; + toCashAddress(hdNode:HDNode):string; + toWIF(hdNode:HDNode): string; + toXPub(hdNode:HDNode):string; + toXPriv(hdNode:HDNode): string; + toKeyPair(hdNode:HDNode): ECPair; + toPublicKey(hdNode:HDNode): Buffer; + fromXPriv(xpriv: string): HDNode; + fromXPub(xpub:string): HDNode; + derivePath(hdnode: HDNode, path:string):HDNode; + derive(hdnode: HDNode, num:number):HDNode; + deriveHardened(hdnode:HDNode, num: number):HDNode; + sign(hdnode:HDNode, buffer:Buffer):ECSignature; + verify(hdnode:HDNode, buffer:Buffer, signature:ECSignature):boolean; + isPublic(hdnode:HDNode):boolean; + isPrivate(hdnode:HDNode):boolean; + toIdentifier(hdnode:HDNode):string; + fromBase58(base58:string, network:string):string; +} \ No newline at end of file diff --git a/lib/Mining.d.ts b/lib/Mining.d.ts new file mode 100644 index 00000000..a927888d --- /dev/null +++ b/lib/Mining.d.ts @@ -0,0 +1,7 @@ +export declare class Mining { + constructor(restURL:string); + getBlockTemplate(template_request?:any):Promise; + getMiningInfo():Promise; + getNetworkHashps(nblocks?:number, height?:number):Promise; + submitBlock(hex:string, parameters?:string):Promise; +} \ No newline at end of file diff --git a/lib/Mnemonic.d.ts b/lib/Mnemonic.d.ts new file mode 100644 index 00000000..d20ea4fd --- /dev/null +++ b/lib/Mnemonic.d.ts @@ -0,0 +1,10 @@ +export declare class Mnemonic { + generate(bits: number, wordlist?: string[]): string; + fromEntropy(bytes: Buffer, wordlist?: string[]): string; + toEntropy(mnemonic: string, wordlist?: string[]): Buffer; + validate(mnemonic: string, wordlist?: string[]): boolean; + toSeed(mnemonic: string, passphrase?: string): Buffer; + wordLists(): object; + toKeypairs(mnemonic: string, numberOfKeypairs?: number): { privateKeyWIF: string, address: string}[]; + findNearestWord(word: string, wordlist: string[]): string; +} \ No newline at end of file diff --git a/lib/Network.d.ts b/lib/Network.d.ts new file mode 100644 index 00000000..f3a9ccb2 --- /dev/null +++ b/lib/Network.d.ts @@ -0,0 +1,12 @@ +export declare class Network { + constructor(restURL:string); + //addNode(node:string, command:string):any; + //clearBanned():any; + //disconnectNode(configuration:object):any; + //getAddedNodeInfo(node?:string):any; + getConnectionCount():Promise; + getNetTotals():Promise; + getNetworkInfo():Promise; + getPeerInfo():Promise; + ping():Promise; +} \ No newline at end of file diff --git a/lib/RawTransactions.d.ts b/lib/RawTransactions.d.ts new file mode 100644 index 00000000..6f335b5c --- /dev/null +++ b/lib/RawTransactions.d.ts @@ -0,0 +1,7 @@ +export declare class RawTransactions { + constructor(restURL:string); + decodeRawTransaction(hex:string):Promise; + decodeScript(hex: string):Promise; + getRawTransaction(txid: string, verbose?:boolean): Promise; + sendRawTransaction(hex: string, allowhighfees?:boolean): Promise; +} \ No newline at end of file diff --git a/lib/Script.d.ts b/lib/Script.d.ts new file mode 100644 index 00000000..344ddd1c --- /dev/null +++ b/lib/Script.d.ts @@ -0,0 +1,188 @@ +export declare class Script { + opcodes: opcodes; + // nullData: null; + // multisig: string; + // pubKey: string; + // pubKeyHash: string; + scriptHash: any; + + constructor(); + classifyInput(script:Buffer):any; + classifyOutput(script:Buffer):any; + decode(scriptBuffer:Buffer):any[]; + encode(scriptChunks:any[]):Buffer; + toASM(buffer: Buffer): string; + fromASM(asm: string): Buffer; + encodeNullDataOutput(data: Buffer): Buffer; + decodeNullDataOutput(output: Buffer): Buffer; + checkNullDataOutput(ouput: Buffer): Boolean; + encodeP2PKInput(signature: Buffer): Buffer; + decodeP2PKInput(input: Buffer): Buffer; + checkP2PKInput(input: Buffer): Boolean; + encodeP2PKOutput(pubKey: Buffer): Buffer; + decodeP2PKOutput(pubKey: Buffer): Buffer; + checkP2PKOutput(ouput: Buffer): Boolean; + encodeP2PKHInput(signature: Buffer, pubKey: Buffer): Buffer; + decodeP2PKHInput(signature: Buffer): Buffer; + checkP2PKHInput(input: Buffer): Boolean; + encodeP2PKHOutput(signature: Buffer, pubKey: Buffer): Buffer; + decodeP2PKHOutput(output: Buffer): Buffer; + checkP2PKHOutput(output: Buffer): Boolean; + encodeP2MSInput(signatures: Buffer[]): Buffer; + decodeP2MSInput(input: Buffer): Buffer; + checkP2MSInput(input: Buffer): Boolean; + encodeP2MSOutput(m: number, pubKeys: Buffer[]): Buffer; + decodeP2MSOutput(output: Buffer): Buffer; + checkP2MSOutput(input: Buffer): Boolean; + encodeP2SHInput(redeemScriptSig: Buffer, redeemScript: Buffer): Buffer; + decodeP2SHInput(input: Buffer): Buffer; + checkP2SHInput(input: Buffer): boolean; + encodeP2SHOutput(scriptHash: Buffer): Buffer; + decodeP2SHOutput(output: Buffer): Buffer; + checkP2SHOutput(output: Buffer): Boolean; + classifyInput(input: Buffer): string; + classifyOutput(output: Buffer): string; +} + +declare interface opcodes { + "OP_FALSE": 0, + "OP_0": 0, + "OP_PUSHDATA1": 76, + "OP_PUSHDATA2": 77, + "OP_PUSHDATA4": 78, + "OP_1NEGATE": 79, + "OP_RESERVED": 80, + "OP_TRUE": 81, + "OP_1": 81, + "OP_2": 82, + "OP_3": 83, + "OP_4": 84, + "OP_5": 85, + "OP_6": 86, + "OP_7": 87, + "OP_8": 88, + "OP_9": 89, + "OP_10": 90, + "OP_11": 91, + "OP_12": 92, + "OP_13": 93, + "OP_14": 94, + "OP_15": 95, + "OP_16": 96, + + "OP_NOP": 97, + "OP_VER": 98, + "OP_IF": 99, + "OP_NOTIF": 100, + "OP_VERIF": 101, + "OP_VERNOTIF": 102, + "OP_ELSE": 103, + "OP_ENDIF": 104, + "OP_VERIFY": 105, + "OP_RETURN": 106, + + "OP_TOALTSTACK": 107, + "OP_FROMALTSTACK": 108, + "OP_2DROP": 109, + "OP_2DUP": 110, + "OP_3DUP": 111, + "OP_2OVER": 112, + "OP_2ROT": 113, + "OP_2SWAP": 114, + "OP_IFDUP": 115, + "OP_DEPTH": 116, + "OP_DROP": 117, + "OP_DUP": 118, + "OP_NIP": 119, + "OP_OVER": 120, + "OP_PICK": 121, + "OP_ROLL": 122, + "OP_ROT": 123, + "OP_SWAP": 124, + "OP_TUCK": 125, + + "OP_CAT": 126, + //"OP_SUBSTR": 127, -- replaced w/ OP_SPLIT see below + //"OP_LEFT": 128, -- replaced w/ OP_SPLIT see below + //"OP_RIGHT": 129, -- replaced w/ OP_SPLIT see below + "OP_SIZE": 130, + + "OP_INVERT": 131, + "OP_AND": 132, // May 2018 reenabled + "OP_OR": 133, // May 2018 reenabled + "OP_XOR": 134, // May 2018 reenabled + "OP_EQUAL": 135, + "OP_EQUALVERIFY": 136, + "OP_RESERVED1": 137, + "OP_RESERVED2": 138, + + "OP_1ADD": 139, + "OP_1SUB": 140, + "OP_2MUL": 141, + "OP_2DIV": 142, + "OP_NEGATE": 143, + "OP_ABS": 144, + "OP_NOT": 145, + "OP_0NOTEQUAL": 146, + "OP_ADD": 147, + "OP_SUB": 148, + "OP_MUL": 149, + "OP_DIV": 150, // May 2018 reenabled + "OP_MOD": 151, // May 2018 reenabled + "OP_LSHIFT": 152, + "OP_RSHIFT": 153, + + "OP_BOOLAND": 154, + "OP_BOOLOR": 155, + "OP_NUMEQUAL": 156, + "OP_NUMEQUALVERIFY": 157, + "OP_NUMNOTEQUAL": 158, + "OP_LESSTHAN": 159, + "OP_GREATERTHAN": 160, + "OP_LESSTHANOREQUAL": 161, + "OP_GREATERTHANOREQUAL": 162, + "OP_MIN": 163, + "OP_MAX": 164, + + "OP_WITHIN": 165, + + "OP_RIPEMD160": 166, + "OP_SHA1": 167, + "OP_SHA256": 168, + "OP_HASH160": 169, + "OP_HASH256": 170, + "OP_CODESEPARATOR": 171, + "OP_CHECKSIG": 172, + "OP_CHECKSIGVERIFY": 173, + "OP_CHECKMULTISIG": 174, + "OP_CHECKMULTISIGVERIFY": 175, + + "OP_NOP1": 176, + + "OP_NOP2": 177, + "OP_CHECKLOCKTIMEVERIFY": 177, + + "OP_NOP3": 178, + "OP_CHECKSEQUENCEVERIFY": 178, + + "OP_NOP4": 179, + "OP_NOP5": 180, + "OP_NOP6": 181, + "OP_NOP7": 182, + "OP_NOP8": 183, + "OP_NOP9": 184, + "OP_NOP10": 185, + + "OP_PUBKEYHASH": 253, + "OP_PUBKEY": 254, + "OP_INVALIDOPCODE": 255 + + // May 2018 added opcodes + "OP_SPLIT": 127, + "OP_NUM2BIN": 128, + "OP_BIN2NUM": 129 + + // Nov 2018 enabled opcodes + // TBD +} + diff --git a/lib/Transaction.d.ts b/lib/Transaction.d.ts new file mode 100644 index 00000000..ace5961b --- /dev/null +++ b/lib/Transaction.d.ts @@ -0,0 +1,31 @@ +import { TransactionBuilder } from './TransactionBuilder'; +export declare class Transaction { + constructor(restURL: string); + transaction(): Transaction; + toHex(): string; + fromHex(hex: string): string; + transactionBuilder(network: string): TransactionBuilder; + fromTransaction(tx: Transaction): TransactionBuilder; + details(txid: string| string[]): Promise; + + // lower level methods + buildIncomplete(): Transaction; + hashForWitnessV0(idx: number, script: Buffer, amount: number, hashType: number): number; + setInputScript(idx: number, scriptSig: Buffer): void; +} + +declare class TxnDetails{ + txid: string; + version: number; + locktime: number; + vin: object[]; + vout: object[]; + blockhash: string; + blockheight: number; + confirmations: number; + time: number; + blocktime: number; + isCoinBase: boolean; + valueOut: number; + size: number; +} \ No newline at end of file diff --git a/lib/TransactionBuilder.d.ts b/lib/TransactionBuilder.d.ts new file mode 100644 index 00000000..e715e245 --- /dev/null +++ b/lib/TransactionBuilder.d.ts @@ -0,0 +1,29 @@ +import { Transaction } from './Transaction'; +import { ECPair } from './ECPair'; + +declare type ECSignature = any; + +export declare class TransactionBuilder { + // bitcoincash: coininfo.bitcoincash.main; + // bitcoincashBitcoinJSLib: Bitcoin.toBitcoinJS; + transaction: Transaction; + DEFAULT_SEQUENCE: number; + hashTypes: HashTypes; + bip66 : any; + bip68 : any; + + constructor(network: string); + + addInput(txHash: string|Buffer, vout: number, sequence?: number, prevOutScript?: string): void; + addOutput(scriptPubKey: string|Buffer, amount: number): void; + sign(vin: number, keyPair: ECPair, redeemScript: Buffer, hashType: number, value: number): ECSignature; + build(): Transaction; +} + +declare interface HashTypes { + SIGHASH_ALL: number; + SIGHASH_NONE: number; + SIGHASH_SINGLE: number; + SIGHASH_ANYONECANPAY: number; + SIGHASH_BITCOINCASH_BIP143: number; +} \ No newline at end of file diff --git a/lib/Util.d.ts b/lib/Util.d.ts new file mode 100644 index 00000000..528bde99 --- /dev/null +++ b/lib/Util.d.ts @@ -0,0 +1,16 @@ +export declare class Util { + constructor(restURL:string); + validateAddress(address: string): Promise; +} + +declare class AddressDetails { + isvalid: boolean; + address: string; + scriptPubKey: string; + ismine: boolean; + iswatchonly: boolean; + isscript: boolean; + pubkey: string; + iscompressed: boolean; + account: string; +} \ No newline at end of file diff --git a/lib/bitbox-cli.d.ts b/lib/bitbox-cli.d.ts new file mode 100644 index 00000000..19ea3731 --- /dev/null +++ b/lib/bitbox-cli.d.ts @@ -0,0 +1,43 @@ +// local deps +import { BitcoinCash } from './BitcoinCash'; +import { Crypto } from './Crypto'; +import { Util } from './Util'; +import { Block } from './Block'; +import { Blockchain } from './Blockchain'; +import { Control } from './Control'; +import { Generating } from './Generating'; +import { Mining } from './Mining'; +import { Network } from './Network'; +import { RawTransactions } from './RawTransactions'; +import { Mnemonic } from './Mnemonic'; +import { Address } from './Address'; +import { HDNode } from './HDNode'; +import { Transaction } from './Transaction'; +import { TransactionBuilder } from './TransactionBuilder'; +import { ECPair } from './ECPair'; +import { Script } from './Script'; + +//export declare type BITBOXCli + +export declare interface IBITBOXCli { + + restURL: string; + Address: Address; + BitcoinCash: BitcoinCash; + Block: Block; + Blockchain: Blockchain; + Control: Control; + Generating: Generating; + Mining: Mining; + Crypto: Crypto; + ECPair: ECPair; + HDNode: HDNode; + Mnemonic: Mnemonic; + Network: Network; + RawTransactions: RawTransactions; + Script: Script; + Transaction: Transaction; + TransactionBuilder: TransactionBuilder; + Util: Util; + +} From 1da1f83db255f6a1345b6d65be9864983dcd0e10 Mon Sep 17 00:00:00 2001 From: James Cramer Date: Fri, 13 Jul 2018 23:12:28 -0400 Subject: [PATCH 020/480] added @types/node to master --- package-lock.json | 2621 +++++++++++++++++++++++---------------------- 1 file changed, 1351 insertions(+), 1270 deletions(-) diff --git a/package-lock.json b/package-lock.json index 930b02cb..9e0bb5d1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.2.0", + "version": "1.1.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -19,7 +19,7 @@ "integrity": "sha512-m9zXmifkZsMHZBOyxZWilMwmTlpC8x5Ty360JKTiXvlXZfBWYpsg9ZZvP/Ye+iZUh+Q+MxDLjItVTWIsfwz+8Q==", "dev": true }, - "abbrev": { + "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" @@ -29,8 +29,8 @@ "resolved": "https://registry.npmjs.org/ammo/-/ammo-1.0.1.tgz", "integrity": "sha1-j4rdFM1Jve3jurOj4OvK8h0D3os=", "requires": { - "boom": "2.10.1", - "hoek": "2.16.3" + "boom": "2.x.x", + "hoek": "2.x.x" } }, "ansi-regex": { @@ -49,8 +49,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "optional": true, "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" } }, "arr-diff": { @@ -59,7 +59,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "optional": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { @@ -99,8 +99,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=", "requires": { - "follow-redirects": "1.5.0", - "is-buffer": "1.1.6" + "follow-redirects": "^1.2.5", + "is-buffer": "^1.1.5" } }, "babel-cli": { @@ -108,21 +108,21 @@ "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", "requires": { - "babel-core": "6.26.3", - "babel-polyfill": "6.26.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "chokidar": "1.7.0", - "commander": "2.15.1", - "convert-source-map": "1.5.1", - "fs-readdir-recursive": "1.1.0", - "glob": "7.1.2", - "lodash": "4.17.10", - "output-file-sync": "1.1.2", - "path-is-absolute": "1.0.1", - "slash": "1.0.0", - "source-map": "0.5.7", - "v8flags": "2.1.1" + "babel-core": "^6.26.0", + "babel-polyfill": "^6.26.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "chokidar": "^1.6.1", + "commander": "^2.11.0", + "convert-source-map": "^1.5.0", + "fs-readdir-recursive": "^1.0.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "output-file-sync": "^1.1.2", + "path-is-absolute": "^1.0.1", + "slash": "^1.0.0", + "source-map": "^0.5.6", + "v8flags": "^2.1.1" } }, "babel-code-frame": { @@ -130,9 +130,9 @@ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" }, "dependencies": { "chalk": { @@ -140,11 +140,11 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "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" } } } @@ -154,25 +154,25 @@ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.1", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.5.1", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.10", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" }, "dependencies": { "debug": { @@ -190,14 +190,14 @@ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" } }, "babel-helper-builder-binary-assignment-operator-visitor": { @@ -205,9 +205,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "requires": { - "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-builder-react-jsx": { @@ -215,9 +215,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "esutils": "2.0.2" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "esutils": "^2.0.2" } }, "babel-helper-call-delegate": { @@ -225,10 +225,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-define-map": { @@ -236,10 +236,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.10" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-explode-assignable-expression": { @@ -247,9 +247,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-function-name": { @@ -257,11 +257,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-get-function-arity": { @@ -269,8 +269,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-hoist-variables": { @@ -278,8 +278,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-optimise-call-expression": { @@ -287,8 +287,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-regex": { @@ -296,9 +296,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.10" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-remap-async-to-generator": { @@ -306,11 +306,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-replace-supers": { @@ -318,12 +318,12 @@ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "requires": { - "babel-helper-optimise-call-expression": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helpers": { @@ -331,8 +331,8 @@ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-messages": { @@ -340,7 +340,7 @@ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-check-es2015-constants": { @@ -348,7 +348,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-syntax-async-functions": { @@ -381,9 +381,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-arrow-functions": { @@ -391,7 +391,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -399,7 +399,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -407,11 +407,11 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.10" + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-plugin-transform-es2015-classes": { @@ -419,15 +419,15 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "requires": { - "babel-helper-define-map": "6.26.0", - "babel-helper-function-name": "6.24.1", - "babel-helper-optimise-call-expression": "6.24.1", - "babel-helper-replace-supers": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-computed-properties": { @@ -435,8 +435,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-destructuring": { @@ -444,7 +444,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -452,8 +452,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-for-of": { @@ -461,7 +461,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -469,9 +469,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-literals": { @@ -479,7 +479,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -487,9 +487,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -497,10 +497,10 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" } }, "babel-plugin-transform-es2015-modules-systemjs": { @@ -508,9 +508,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-umd": { @@ -518,9 +518,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "requires": { - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-object-super": { @@ -528,8 +528,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "requires": { - "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.26.0" + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -537,12 +537,12 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-shorthand-properties": { @@ -550,8 +550,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-spread": { @@ -559,7 +559,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -567,9 +567,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-template-literals": { @@ -577,7 +577,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -585,7 +585,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -593,9 +593,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -603,9 +603,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", - "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-flow-strip-types": { @@ -613,8 +613,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", "requires": { - "babel-plugin-syntax-flow": "6.18.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-flow": "^6.18.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-display-name": { @@ -622,7 +622,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx": { @@ -630,9 +630,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", "requires": { - "babel-helper-builder-react-jsx": "6.26.0", - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-react-jsx": "^6.24.1", + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx-self": { @@ -640,8 +640,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx-source": { @@ -649,8 +649,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-regenerator": { @@ -658,7 +658,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "requires": { - "regenerator-transform": "0.10.1" + "regenerator-transform": "^0.10.0" } }, "babel-plugin-transform-strict-mode": { @@ -666,8 +666,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-polyfill": { @@ -675,9 +675,9 @@ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "requires": { - "babel-runtime": "6.26.0", - "core-js": "2.5.7", - "regenerator-runtime": "0.10.5" + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" }, "dependencies": { "regenerator-runtime": { @@ -692,36 +692,36 @@ "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0", - "browserslist": "3.2.8", - "invariant": "2.2.4", - "semver": "5.5.0" + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" } }, "babel-preset-es2015": { @@ -729,30 +729,30 @@ "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0" + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.24.1", + "babel-plugin-transform-es2015-classes": "^6.24.1", + "babel-plugin-transform-es2015-computed-properties": "^6.24.1", + "babel-plugin-transform-es2015-destructuring": "^6.22.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", + "babel-plugin-transform-es2015-for-of": "^6.22.0", + "babel-plugin-transform-es2015-function-name": "^6.24.1", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-umd": "^6.24.1", + "babel-plugin-transform-es2015-object-super": "^6.24.1", + "babel-plugin-transform-es2015-parameters": "^6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", + "babel-plugin-transform-regenerator": "^6.24.1" } }, "babel-preset-flow": { @@ -760,7 +760,7 @@ "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", "requires": { - "babel-plugin-transform-flow-strip-types": "6.22.0" + "babel-plugin-transform-flow-strip-types": "^6.22.0" } }, "babel-preset-react": { @@ -768,12 +768,12 @@ "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-plugin-transform-react-display-name": "6.25.0", - "babel-plugin-transform-react-jsx": "6.24.1", - "babel-plugin-transform-react-jsx-self": "6.22.0", - "babel-plugin-transform-react-jsx-source": "6.22.0", - "babel-preset-flow": "6.23.0" + "babel-plugin-syntax-jsx": "^6.3.13", + "babel-plugin-transform-react-display-name": "^6.23.0", + "babel-plugin-transform-react-jsx": "^6.24.1", + "babel-plugin-transform-react-jsx-self": "^6.22.0", + "babel-plugin-transform-react-jsx-source": "^6.22.0", + "babel-preset-flow": "^6.23.0" } }, "babel-register": { @@ -781,13 +781,13 @@ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "requires": { - "babel-core": "6.26.3", - "babel-runtime": "6.26.0", - "core-js": "2.5.7", - "home-or-tmp": "2.0.0", - "lodash": "4.17.10", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" } }, "babel-runtime": { @@ -795,8 +795,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "2.5.7", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -804,11 +804,11 @@ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.10" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { @@ -816,15 +816,15 @@ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.10" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" }, "dependencies": { "debug": { @@ -842,10 +842,10 @@ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -863,7 +863,7 @@ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.4.tgz", "integrity": "sha512-UYOadoSIkEI/VrRGSG6qp93rp2WdokiAiNYDfGW5qURAY8GiAQkvMbwNNSDYiVJopqv4gCna7xqf4rrNGp+5AA==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "base64-js": { @@ -876,10 +876,15 @@ "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.1.tgz", "integrity": "sha512-esOfL+EnG+qPgqAPl4NxWngDIJIEs35dcV6wU0NP6bxBtc363fYm7xhNtC1BRVagDLSbMNwyI27rkWXwN5i6yg==", "requires": { - "bs58check": "2.1.1", - "cashaddrjs": "0.2.8" + "bs58check": "^2.1.1", + "cashaddrjs": "^0.2.7" } }, + "bech32": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.3.tgz", + "integrity": "sha512-yuVFUvrNcoJi0sv5phmqc6P+Fl1HjRDRNOOkHY2X/3LBy2bIGNSFx4fZ95HMaXHupuS7cZR15AsvtmCIF4UEyg==" + }, "big-integer": { "version": "1.6.31", "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.31.tgz", @@ -906,18 +911,25 @@ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz", "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==" }, + "bip21": { + "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", + "from": "github:Bitcoin-com/bip21", + "requires": { + "qs": "^6.3.0" + } + }, "bip38": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", "integrity": "sha512-22KDak0RDyghFbR0Si7wyq9IgY423YzGYzWLpGeofH3DaolOQqjD3mNN08eFoubKlbyclOQKFwtONMv2SD9V3A==", "requires": { - "bigi": "1.4.2", - "browserify-aes": "1.2.0", - "bs58check": "2.1.1", - "buffer-xor": "1.0.3", - "create-hash": "1.2.0", - "ecurve": "1.0.6", - "scryptsy": "2.0.0" + "bigi": "^1.2.0", + "browserify-aes": "^1.0.1", + "bs58check": "<3.0.0", + "buffer-xor": "^1.0.2", + "create-hash": "^1.1.1", + "ecurve": "^1.0.0", + "scryptsy": "^2.0.0" } }, "bip39": { @@ -925,11 +937,11 @@ "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", "requires": { - "create-hash": "1.2.0", - "pbkdf2": "3.0.16", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "unorm": "1.4.1" + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "unorm": "^1.3.3" } }, "bip66": { @@ -937,7 +949,7 @@ "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "bip68": { @@ -945,16 +957,48 @@ "resolved": "https://registry.npmjs.org/bip68/-/bip68-1.0.4.tgz", "integrity": "sha512-O1htyufFTYy3EO0JkHg2CLykdXEtV2ssqw47Gq9A0WByp662xpJnMEB9m43LZjsSDjIAOozWRExlFQk2hlV1XQ==" }, + "bitcoin-ops": { + "version": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", + "from": "github:Bitcoin-com/bitcoincash-ops" + }, + "bitcoincashjs-lib": { + "version": "github:Bitcoin-com/bitcoincashjs-lib#0a7fc7cf23551503f57689db4c930b8136db954c", + "from": "github:Bitcoin-com/bitcoincashjs-lib", + "requires": { + "bech32": "^1.1.2", + "bigi": "^1.4.0", + "bip66": "^1.1.0", + "bitcoin-ops": "^1.3.0", + "bs58check": "^2.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.3", + "ecurve": "^1.0.0", + "merkle-lib": "^2.0.10", + "pushdata-bitcoin": "^1.0.1", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "typeforce": "^1.11.3", + "varuint-bitcoin": "^1.0.4", + "wif": "^2.0.1" + }, + "dependencies": { + "bitcoin-ops": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz", + "integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow==" + } + } + }, "bitcoinjs-message": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", "requires": { - "bs58check": "2.1.1", - "buffer-equals": "1.0.4", - "create-hash": "1.2.0", - "secp256k1": "3.5.0", - "varuint-bitcoin": "1.1.0" + "bs58check": "^2.0.2", + "buffer-equals": "^1.0.3", + "create-hash": "^1.1.2", + "secp256k1": "^3.0.1", + "varuint-bitcoin": "^1.0.1" } }, "bn.js": { @@ -967,7 +1011,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "brace-expansion": { @@ -975,7 +1019,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -985,9 +1029,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "optional": 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" } }, "brorand": { @@ -1005,12 +1049,12 @@ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "browserslist": { @@ -1018,8 +1062,8 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "requires": { - "caniuse-lite": "1.0.30000855", - "electron-to-chromium": "1.3.48" + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" } }, "bs58": { @@ -1027,7 +1071,7 @@ "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", "requires": { - "base-x": "3.0.4" + "base-x": "^3.0.2" } }, "bs58check": { @@ -1035,8 +1079,8 @@ "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.1.tgz", "integrity": "sha512-okRQiWc5FJuA2VOwQ1hB7Sf0MyEFg/EwRN12h4b8HrJoGkZ3xq1CGjkaAfYloLcZyqixQnO5mhPpN6IcHSplVg==", "requires": { - "bs58": "4.0.1", - "create-hash": "1.2.0" + "bs58": "^4.0.0", + "create-hash": "^1.1.0" } }, "buffer": { @@ -1044,8 +1088,8 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.1.0.tgz", "integrity": "sha512-YkIRgwsZwJWTnyQrsBTWefizHh+8GYj3kbL1BTiAQ/9pwpino0G7B2gp5tx/FUBqUlvtxV85KNR3mwfAtv15Yw==", "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.12" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" } }, "buffer-equals": { @@ -1073,7 +1117,7 @@ "resolved": "https://registry.npmjs.org/can-promise/-/can-promise-0.0.1.tgz", "integrity": "sha512-gzVrHyyrvgt0YpDm7pn04MQt8gjh0ZAhN4ZDyCRtGl6YnuuK6b4aiUTD7G52r9l4YNmxfTtEscb92vxtAlL6XQ==", "requires": { - "window-or-global": "1.0.1" + "window-or-global": "^1.0.1" } }, "caniuse-lite": { @@ -1086,7 +1130,7 @@ "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.2.8.tgz", "integrity": "sha512-oezXpKZRjavdRB1QjBamfHFDzYescGFn9dWMbijP4fgXrqMdBygOqaPNW4phf7zpRD4+oW7aaFfFklF72/szaA==", "requires": { - "big-integer": "1.6.31" + "big-integer": "^1.6.26" } }, "chai": { @@ -1095,12 +1139,12 @@ "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", "dev": true, "requires": { - "assertion-error": "1.1.0", - "check-error": "1.0.2", - "deep-eql": "3.0.1", - "get-func-name": "2.0.0", - "pathval": "1.1.0", - "type-detect": "4.0.8" + "assertion-error": "^1.0.1", + "check-error": "^1.0.1", + "deep-eql": "^3.0.0", + "get-func-name": "^2.0.0", + "pathval": "^1.0.0", + "type-detect": "^4.0.0" } }, "chalk": { @@ -1108,9 +1152,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "ansi-styles": { @@ -1118,7 +1162,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "color-convert": "1.9.2" + "color-convert": "^1.9.0" } }, "supports-color": { @@ -1126,7 +1170,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -1143,15 +1187,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "optional": true, "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.2.4", - "glob-parent": "2.0.0", - "inherits": "2.0.1", - "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" } }, "cipher-base": { @@ -1159,8 +1203,8 @@ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "clear": { @@ -1173,9 +1217,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "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" }, "dependencies": { "string-width": { @@ -1183,9 +1227,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" } } } @@ -1195,6 +1239,13 @@ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, + "coininfo": { + "version": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", + "from": "github:Bitcoin-com/coininfo", + "requires": { + "safe-buffer": "^5.1.1" + } + }, "color-convert": { "version": "1.9.2", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", @@ -1238,15 +1289,15 @@ "resolved": "https://registry.npmjs.org/corsproxy/-/corsproxy-1.5.0.tgz", "integrity": "sha1-KUge0hXuWxvWkkx5Fc+I/LE8EGE=", "requires": { - "ejs": "2.6.1", - "good": "6.6.3", - "good-console": "5.3.2", - "h2o2": "4.0.2", - "hapi": "9.5.1", - "hapi-cors-headers": "1.0.3", - "http-proxy": "1.11.3", - "inert": "3.2.1", - "vision": "3.0.0" + "ejs": "^2.3.3", + "good": "^6.3.0", + "good-console": "^5.0.3", + "h2o2": "^4.0.1", + "hapi": "^9.0.2", + "hapi-cors-headers": "^1.0.0", + "http-proxy": "~1.11", + "inert": "^3.0.1", + "vision": "^3.0.0" } }, "cp-file": { @@ -1254,11 +1305,11 @@ "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-5.0.0.tgz", "integrity": "sha1-vHAP0wyjLSTUbH+wK5kuQ1/FqXg=", "requires": { - "graceful-fs": "4.1.11", - "make-dir": "1.3.0", - "nested-error-stacks": "2.0.1", - "pify": "3.0.0", - "safe-buffer": "5.1.2" + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "nested-error-stacks": "^2.0.0", + "pify": "^3.0.0", + "safe-buffer": "^5.0.1" } }, "create-hash": { @@ -1266,11 +1317,11 @@ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.1", - "md5.js": "1.3.4", - "ripemd160": "2.0.2", - "sha.js": "2.4.11" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, "create-hmac": { @@ -1278,12 +1329,12 @@ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "inherits": "2.0.1", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "cross-spawn": { @@ -1291,9 +1342,9 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" }, "dependencies": { "lru-cache": { @@ -1301,8 +1352,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } } } @@ -1326,7 +1377,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "4.0.8" + "type-detect": "^4.0.0" } }, "detect-indent": { @@ -1334,7 +1385,7 @@ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "diff": { @@ -1352,9 +1403,9 @@ "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", "requires": { - "browserify-aes": "1.2.0", - "create-hash": "1.2.0", - "create-hmac": "1.1.7" + "browserify-aes": "^1.0.6", + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4" } }, "ecurve": { @@ -1362,8 +1413,8 @@ "resolved": "https://registry.npmjs.org/ecurve/-/ecurve-1.0.6.tgz", "integrity": "sha512-/BzEjNfiSuB7jIWKcS/z8FK9jNjmEWvUV2YZ4RLSmcDtP7Lq0m6FvDuSnJpBlDpGRpfRQeTLGLBI8H+kEv0r+w==", "requires": { - "bigi": "1.4.2", - "safe-buffer": "5.1.2" + "bigi": "^1.1.0", + "safe-buffer": "^5.0.1" } }, "ejs": { @@ -1381,13 +1432,13 @@ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.4", - "hmac-drbg": "1.0.1", - "inherits": "2.0.1", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" } }, "error-ex": { @@ -1395,7 +1446,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" } }, "escape-string-regexp": { @@ -1418,8 +1469,8 @@ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "requires": { - "md5.js": "1.3.4", - "safe-buffer": "5.1.2" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, "execa": { @@ -1427,13 +1478,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "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" } }, "expand-brackets": { @@ -1442,7 +1493,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "optional": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -1451,7 +1502,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "optional": true, "requires": { - "fill-range": "2.2.4" + "fill-range": "^2.1.0" } }, "extglob": { @@ -1460,7 +1511,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "optional": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "figlet": { @@ -1480,11 +1531,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "optional": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.0.0", - "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" } }, "find-up": { @@ -1492,7 +1543,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "flow-bin": { @@ -1506,7 +1557,7 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.0.tgz", "integrity": "sha512-fdrt472/9qQ6Kgjvb935ig6vJCuofpBUD14f9Vb+SLlm7xIe4Qva5gey8EKtv8lp7ahE1wilg3xL1znpVGtZIA==", "requires": { - "debug": "3.1.0" + "debug": "^3.1.0" } }, "for-in": { @@ -1521,7 +1572,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "optional": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "fs-readdir-recursive": { @@ -1540,8 +1591,8 @@ "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", "optional": true, "requires": { - "nan": "2.10.0", - "node-pre-gyp": "0.10.0" + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" }, "dependencies": { "abbrev": { @@ -1563,8 +1614,8 @@ "bundled": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "balanced-match": { @@ -1575,7 +1626,7 @@ "version": "1.1.11", "bundled": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -1629,7 +1680,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "fs.realpath": { @@ -1642,14 +1693,14 @@ "bundled": true, "optional": 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" } }, "glob": { @@ -1657,12 +1708,12 @@ "bundled": true, "optional": 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" } }, "has-unicode": { @@ -1675,7 +1726,7 @@ "bundled": true, "optional": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "^2.1.0" } }, "ignore-walk": { @@ -1683,7 +1734,7 @@ "bundled": true, "optional": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "inflight": { @@ -1691,8 +1742,8 @@ "bundled": true, "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -1708,7 +1759,7 @@ "version": "1.0.0", "bundled": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "isarray": { @@ -1720,7 +1771,7 @@ "version": "3.0.4", "bundled": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -1731,8 +1782,8 @@ "version": "2.2.4", "bundled": true, "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" } }, "minizlib": { @@ -1740,7 +1791,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "mkdirp": { @@ -1760,9 +1811,9 @@ "bundled": true, "optional": true, "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, "node-pre-gyp": { @@ -1770,16 +1821,16 @@ "bundled": true, "optional": true, "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.7", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" + "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": { @@ -1787,8 +1838,8 @@ "bundled": true, "optional": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npm-bundled": { @@ -1801,8 +1852,8 @@ "bundled": true, "optional": true, "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, "npmlog": { @@ -1810,10 +1861,10 @@ "bundled": 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" + "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": { @@ -1829,7 +1880,7 @@ "version": "1.4.0", "bundled": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -1847,8 +1898,8 @@ "bundled": 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": { @@ -1866,10 +1917,10 @@ "bundled": true, "optional": true, "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "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": { @@ -1884,13 +1935,13 @@ "bundled": true, "optional": true, "requires": { - "core-util-is": "1.0.2", - "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.2" + "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": { @@ -1898,7 +1949,7 @@ "bundled": true, "optional": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { @@ -1934,9 +1985,9 @@ "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": { @@ -1944,14 +1995,14 @@ "bundled": true, "optional": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { "version": "3.0.1", "bundled": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -1964,13 +2015,13 @@ "bundled": true, "optional": true, "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "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" } }, "util-deprecate": { @@ -1983,7 +2034,7 @@ "bundled": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { @@ -2022,12 +2073,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.1", - "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": { @@ -2036,8 +2087,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "optional": true, "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -2045,7 +2096,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "globals": { @@ -2058,11 +2109,11 @@ "resolved": "https://registry.npmjs.org/good/-/good-6.6.3.tgz", "integrity": "sha1-B9zIEfwSuDmKnDMezdM37OWogDU=", "requires": { - "hoek": "2.16.3", - "items": "1.1.1", - "joi": "6.10.1", + "hoek": "2.x.x", + "items": "1.x.x", + "joi": "6.x.x", "traverse": "0.6.6", - "wreck": "6.3.0" + "wreck": "6.x.x" } }, "good-console": { @@ -2070,11 +2121,11 @@ "resolved": "https://registry.npmjs.org/good-console/-/good-console-5.3.2.tgz", "integrity": "sha1-f8c9RDfiWsToODJB5GaWy6N0ia0=", "requires": { - "good-squeeze": "2.1.0", - "hoek": "2.16.3", - "json-stringify-safe": "5.0.1", - "moment": "2.11.2", - "through2": "0.6.5" + "good-squeeze": "2.x.x", + "hoek": "2.x.x", + "json-stringify-safe": "5.0.x", + "moment": "2.11.x", + "through2": "0.6.x" }, "dependencies": { "moment": { @@ -2089,8 +2140,8 @@ "resolved": "https://registry.npmjs.org/good-squeeze/-/good-squeeze-2.1.0.tgz", "integrity": "sha1-mc7pHSbVkWmKiZwo6TELzzxq4oo=", "requires": { - "hoek": "2.16.3", - "json-stringify-safe": "5.0.1" + "hoek": "2.x.x", + "json-stringify-safe": "5.0.x" } }, "graceful-fs": { @@ -2108,10 +2159,10 @@ "resolved": "https://registry.npmjs.org/h2o2/-/h2o2-4.0.2.tgz", "integrity": "sha1-h8uWDcD1tJWWT6koJT5s8TuiJIY=", "requires": { - "boom": "2.10.1", - "hoek": "2.16.3", - "joi": "6.10.1", - "wreck": "6.3.0" + "boom": "2.x.x", + "hoek": "2.x.x", + "joi": "6.x.x", + "wreck": "6.x.x" } }, "hapi": { @@ -2119,26 +2170,26 @@ "resolved": "https://registry.npmjs.org/hapi/-/hapi-9.5.1.tgz", "integrity": "sha1-jYyhPnwiCweEZemgp2QPJqWvuFU=", "requires": { - "accept": "1.1.0", - "ammo": "1.0.1", - "boom": "2.9.0", - "call": "2.0.2", - "catbox": "6.0.0", - "catbox-memory": "1.1.2", - "cryptiles": "2.0.5", - "heavy": "3.0.1", - "hoek": "2.16.3", - "iron": "2.1.3", - "items": "1.1.0", - "joi": "6.8.1", - "kilt": "1.1.1", - "mimos": "2.0.2", - "peekaboo": "1.0.0", - "qs": "4.0.0", - "shot": "1.7.0", - "statehood": "2.1.1", - "subtext": "2.0.0", - "topo": "1.1.0" + "accept": "1.x.x", + "ammo": "1.x.x", + "boom": "^2.5.x", + "call": "2.x.x", + "catbox": "6.x.x", + "catbox-memory": "1.x.x", + "cryptiles": "2.x.x", + "heavy": "3.x.x", + "hoek": "^2.14.x", + "iron": "2.x.x", + "items": "1.x.x", + "joi": "^6.8.1", + "kilt": "^1.1.x", + "mimos": "2.x.x", + "peekaboo": "1.x.x", + "qs": "4.x.x", + "shot": "^1.7.x", + "statehood": "2.x.x", + "subtext": "2.x.x", + "topo": "^1.1.x" }, "dependencies": { "accept": { @@ -2146,8 +2197,8 @@ "resolved": "https://registry.npmjs.org/accept/-/accept-1.1.0.tgz", "integrity": "sha1-x7VWfJmt5Kx8k38qm8HFZhYKMLU=", "requires": { - "boom": "2.9.0", - "hoek": "2.16.3" + "boom": "2.x.x", + "hoek": "2.x.x" } }, "ammo": { @@ -2155,8 +2206,8 @@ "resolved": "https://registry.npmjs.org/ammo/-/ammo-1.0.1.tgz", "integrity": "sha1-j4rdFM1Jve3jurOj4OvK8h0D3os=", "requires": { - "boom": "2.9.0", - "hoek": "2.16.3" + "boom": "2.x.x", + "hoek": "2.x.x" } }, "boom": { @@ -2164,7 +2215,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-2.9.0.tgz", "integrity": "sha1-pUt/0v7kd9NRv543FoDL6mfxJxU=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "call": { @@ -2172,8 +2223,8 @@ "resolved": "https://registry.npmjs.org/call/-/call-2.0.2.tgz", "integrity": "sha1-nJgxq9B2lIb97oOkEUm4KbMtBsA=", "requires": { - "boom": "2.9.0", - "hoek": "2.16.3" + "boom": "2.x.x", + "hoek": "2.x.x" } }, "catbox": { @@ -2181,9 +2232,9 @@ "resolved": "https://registry.npmjs.org/catbox/-/catbox-6.0.0.tgz", "integrity": "sha1-6i8pT6Bemvx+IhDTI/XeU6OAQ+c=", "requires": { - "boom": "2.9.0", - "hoek": "2.16.3", - "joi": "6.8.1" + "boom": "2.x.x", + "hoek": "2.x.x", + "joi": "6.x.x" } }, "catbox-memory": { @@ -2191,7 +2242,7 @@ "resolved": "https://registry.npmjs.org/catbox-memory/-/catbox-memory-1.1.2.tgz", "integrity": "sha1-M8kYOjKzGUXuikhNDjw8u4Lq7Bo=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "cryptiles": { @@ -2199,7 +2250,7 @@ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "requires": { - "boom": "2.9.0" + "boom": "2.x.x" } }, "heavy": { @@ -2207,9 +2258,9 @@ "resolved": "https://registry.npmjs.org/heavy/-/heavy-3.0.1.tgz", "integrity": "sha1-8oZ+bjUVv4OrGoux5z5dKOhas80=", "requires": { - "boom": "2.9.0", - "hoek": "2.16.3", - "joi": "6.8.1" + "boom": "2.x.x", + "hoek": "2.x.x", + "joi": "6.x.x" } }, "hoek": { @@ -2222,9 +2273,9 @@ "resolved": "https://registry.npmjs.org/iron/-/iron-2.1.3.tgz", "integrity": "sha1-cbjzV9gGquA6kKdFuaqv/sfi3eQ=", "requires": { - "boom": "2.9.0", - "cryptiles": "2.0.5", - "hoek": "2.16.3" + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x" } }, "items": { @@ -2237,10 +2288,10 @@ "resolved": "https://registry.npmjs.org/joi/-/joi-6.8.1.tgz", "integrity": "sha1-g94tYCj8DNXRYi8/V0fKCCtHjv8=", "requires": { - "hoek": "2.16.3", - "isemail": "1.2.0", - "moment": "2.10.6", - "topo": "1.1.0" + "hoek": "2.x.x", + "isemail": "1.x.x", + "moment": "2.x.x", + "topo": "1.x.x" }, "dependencies": { "isemail": { @@ -2260,7 +2311,7 @@ "resolved": "https://registry.npmjs.org/kilt/-/kilt-1.1.1.tgz", "integrity": "sha1-d7SmFjyn+lshN6iMFzNCFuwj1ds=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "mimos": { @@ -2268,8 +2319,8 @@ "resolved": "https://registry.npmjs.org/mimos/-/mimos-2.0.2.tgz", "integrity": "sha1-wyQXF+dblZkr54esfdbbGptTmx4=", "requires": { - "hoek": "2.16.3", - "mime-db": "1.19.0" + "hoek": "2.x.x", + "mime-db": "1.x.x" }, "dependencies": { "mime-db": { @@ -2294,7 +2345,7 @@ "resolved": "https://registry.npmjs.org/shot/-/shot-1.7.0.tgz", "integrity": "sha1-8jKdfvM6/PA9RM5Bq66BSK4XBTI=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "statehood": { @@ -2302,12 +2353,12 @@ "resolved": "https://registry.npmjs.org/statehood/-/statehood-2.1.1.tgz", "integrity": "sha1-AfFwtmxeklqvZ5qdMiulkYb8AAk=", "requires": { - "boom": "2.9.0", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "iron": "2.1.3", - "items": "1.1.0", - "joi": "6.8.1" + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "iron": "2.x.x", + "items": "1.x.x", + "joi": "6.x.x" } }, "subtext": { @@ -2315,12 +2366,12 @@ "resolved": "https://registry.npmjs.org/subtext/-/subtext-2.0.0.tgz", "integrity": "sha1-I5lQ6SCBQ/FUirJeHJV5vbaNiU4=", "requires": { - "boom": "2.9.0", - "content": "1.0.2", - "hoek": "2.16.3", - "pez": "1.0.0", - "qs": "4.0.0", - "wreck": "6.2.0" + "boom": "2.x.x", + "content": "1.x.x", + "hoek": "2.x.x", + "pez": "1.x.x", + "qs": "4.x.x", + "wreck": "6.x.x" }, "dependencies": { "content": { @@ -2328,8 +2379,8 @@ "resolved": "https://registry.npmjs.org/content/-/content-1.0.2.tgz", "integrity": "sha1-y37fMq/vF8SKz9vSH/mMIzFa6CQ=", "requires": { - "boom": "2.9.0", - "hoek": "2.16.3" + "boom": "2.x.x", + "hoek": "2.x.x" } }, "pez": { @@ -2337,11 +2388,11 @@ "resolved": "https://registry.npmjs.org/pez/-/pez-1.0.0.tgz", "integrity": "sha1-hEMYpc5wku7d/6KV4YB5rHefoBg=", "requires": { - "b64": "2.0.1", - "boom": "2.9.0", - "content": "1.0.2", - "hoek": "2.16.3", - "nigel": "1.0.1" + "b64": "2.x.x", + "boom": "2.x.x", + "content": "1.x.x", + "hoek": "2.x.x", + "nigel": "1.x.x" }, "dependencies": { "b64": { @@ -2349,7 +2400,7 @@ "resolved": "https://registry.npmjs.org/b64/-/b64-2.0.1.tgz", "integrity": "sha1-0IwQcZcZ/x/htTKuSSaUCc4UnOk=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "nigel": { @@ -2357,8 +2408,8 @@ "resolved": "https://registry.npmjs.org/nigel/-/nigel-1.0.1.tgz", "integrity": "sha1-RjmJr4gSePuqHTzJOCPb0XtDYKE=", "requires": { - "hoek": "2.16.3", - "vise": "1.0.0" + "hoek": "2.x.x", + "vise": "1.x.x" }, "dependencies": { "vise": { @@ -2366,7 +2417,7 @@ "resolved": "https://registry.npmjs.org/vise/-/vise-1.0.0.tgz", "integrity": "sha1-KDRb5N5aNB4V/SgW/Z6j5zA+jfM=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } } } @@ -2378,8 +2429,8 @@ "resolved": "https://registry.npmjs.org/wreck/-/wreck-6.2.0.tgz", "integrity": "sha1-8Jkx7UcbZL6Yjj57u4gjTa4i0iI=", "requires": { - "boom": "2.9.0", - "hoek": "2.16.3" + "boom": "2.x.x", + "hoek": "2.x.x" } } } @@ -2389,7 +2440,7 @@ "resolved": "https://registry.npmjs.org/topo/-/topo-1.1.0.tgz", "integrity": "sha1-6ddRYV0buH3IZdsYL6HKCl71NtU=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } } } @@ -2404,7 +2455,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { @@ -2417,8 +2468,8 @@ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "hash.js": { @@ -2426,8 +2477,8 @@ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.4.tgz", "integrity": "sha512-A6RlQvvZEtFS5fLU43IDu0QUmBy+fDO9VMdTXvufKwIkt/rFfvICAViCax5fbDO4zdNzaC3/27ZhKUok5bAJyw==", "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" }, "dependencies": { "inherits": { @@ -2447,9 +2498,9 @@ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { - "hash.js": "1.1.4", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, "hoek": { @@ -2462,8 +2513,8 @@ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" } }, "hosted-git-info": { @@ -2476,8 +2527,8 @@ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.11.3.tgz", "integrity": "sha1-GRXciIdR4qa/PCq/yxgI+obHI1M=", "requires": { - "eventemitter3": "1.2.0", - "requires-port": "0.0.1" + "eventemitter3": "1.x.x", + "requires-port": "0.x.x" } }, "ieee754": { @@ -2490,12 +2541,12 @@ "resolved": "https://registry.npmjs.org/inert/-/inert-3.2.1.tgz", "integrity": "sha1-xJZcXhh87z2yxChy5S51cAh2Qn0=", "requires": { - "ammo": "1.0.1", - "boom": "2.10.1", - "hoek": "2.16.3", - "items": "1.1.1", - "joi": "6.10.1", - "lru-cache": "2.7.3" + "ammo": "1.x.x", + "boom": "2.x.x", + "hoek": "2.x.x", + "items": "1.x.x", + "joi": "^6.7.x", + "lru-cache": "2.7.x" } }, "inflight": { @@ -2503,8 +2554,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -2522,7 +2573,7 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -2541,7 +2592,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "optional": true, "requires": { - "binary-extensions": "1.11.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -2554,7 +2605,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-dotfile": { @@ -2569,7 +2620,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "optional": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -2588,7 +2639,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-fullwidth-code-point": { @@ -2596,7 +2647,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-glob": { @@ -2604,7 +2655,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-number": { @@ -2613,7 +2664,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-posix-bracket": { @@ -2667,10 +2718,10 @@ "resolved": "https://registry.npmjs.org/joi/-/joi-6.10.1.tgz", "integrity": "sha1-TVDDGAeRIgAP5fFq8f+OGRe3fgY=", "requires": { - "hoek": "2.16.3", - "isemail": "1.2.0", - "moment": "2.22.2", - "topo": "1.1.0" + "hoek": "2.x.x", + "isemail": "1.x.x", + "moment": "2.x.x", + "topo": "1.x.x" } }, "js-tokens": { @@ -2704,7 +2755,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lcid": { @@ -2712,7 +2763,7 @@ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "load-json-file": { @@ -2720,10 +2771,10 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "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" }, "dependencies": { "pify": { @@ -2738,8 +2789,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "lodash": { @@ -2769,7 +2820,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "lru-cache": { @@ -2782,7 +2833,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "math-random": { @@ -2796,8 +2847,8 @@ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.1" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, "mem": { @@ -2805,28 +2856,33 @@ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, + "merkle-lib": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/merkle-lib/-/merkle-lib-2.0.10.tgz", + "integrity": "sha1-grjbrnXieneFOItz+ddyXQ9vMyY=" + }, "micromatch": { "version": "2.3.11", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "optional": 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" } }, "mimic-fn": { @@ -2849,7 +2905,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -2888,7 +2944,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -2919,11 +2975,11 @@ "integrity": "sha512-9JX3YwoIt3kS237scmSSOpEv7vCukVzLfwK0I0XhocDSHUANid8ZHnLEULbbSkfeMn98B2y5kphIWzZUylESRQ==", "dev": true, "requires": { - "@sinonjs/formatio": "2.0.0", - "just-extend": "1.1.27", - "lolex": "2.7.0", - "path-to-regexp": "1.7.0", - "text-encoding": "0.6.4" + "@sinonjs/formatio": "^2.0.0", + "just-extend": "^1.1.27", + "lolex": "^2.3.2", + "path-to-regexp": "^1.7.0", + "text-encoding": "^0.6.4" } }, "node-cmd": { @@ -2936,7 +2992,7 @@ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", "requires": { - "lodash.toarray": "4.4.0" + "lodash.toarray": "^4.4.0" } }, "nopt": { @@ -2944,7 +3000,7 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } }, "normalize-package-data": { @@ -2952,10 +3008,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.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "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": { @@ -2963,7 +3019,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "npm-run-path": { @@ -2971,7 +3027,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -2985,33 +3041,33 @@ "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", "dev": true, "requires": { - "archy": "1.0.0", - "arrify": "1.0.1", - "caching-transform": "1.0.1", - "convert-source-map": "1.5.1", - "debug-log": "1.0.1", - "default-require-extensions": "1.0.0", - "find-cache-dir": "0.1.1", - "find-up": "2.1.0", - "foreground-child": "1.5.6", - "glob": "7.1.2", - "istanbul-lib-coverage": "1.2.0", - "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "1.10.1", - "istanbul-lib-report": "1.1.3", - "istanbul-lib-source-maps": "1.2.3", - "istanbul-reports": "1.4.0", - "md5-hex": "1.3.0", - "merge-source-map": "1.1.0", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "resolve-from": "2.0.0", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "spawn-wrap": "1.4.2", - "test-exclude": "4.2.1", + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^1.0.0", + "convert-source-map": "^1.5.1", + "debug-log": "^1.0.1", + "default-require-extensions": "^1.0.0", + "find-cache-dir": "^0.1.1", + "find-up": "^2.1.0", + "foreground-child": "^1.5.3", + "glob": "^7.0.6", + "istanbul-lib-coverage": "^1.1.2", + "istanbul-lib-hook": "^1.1.0", + "istanbul-lib-instrument": "^1.10.0", + "istanbul-lib-report": "^1.1.3", + "istanbul-lib-source-maps": "^1.2.3", + "istanbul-reports": "^1.4.0", + "md5-hex": "^1.2.0", + "merge-source-map": "^1.1.0", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.0", + "resolve-from": "^2.0.0", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.1", + "spawn-wrap": "^1.4.2", + "test-exclude": "^4.2.0", "yargs": "11.1.0", - "yargs-parser": "8.1.0" + "yargs-parser": "^8.0.0" }, "dependencies": { "align-text": { @@ -3019,9 +3075,9 @@ "bundled": true, "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" } }, "amdefine": { @@ -3044,7 +3100,7 @@ "bundled": true, "dev": true, "requires": { - "default-require-extensions": "1.0.0" + "default-require-extensions": "^1.0.0" } }, "archy": { @@ -3097,9 +3153,9 @@ "bundled": true, "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" } }, "babel-generator": { @@ -3107,14 +3163,14 @@ "bundled": true, "dev": true, "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" } }, "babel-messages": { @@ -3122,7 +3178,7 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-runtime": { @@ -3130,8 +3186,8 @@ "bundled": true, "dev": true, "requires": { - "core-js": "2.5.6", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -3139,11 +3195,11 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.10" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { @@ -3151,15 +3207,15 @@ "bundled": true, "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.10" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" } }, "babel-types": { @@ -3167,10 +3223,10 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -3188,13 +3244,13 @@ "bundled": true, "dev": true, "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "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" }, "dependencies": { "define-property": { @@ -3202,7 +3258,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -3210,7 +3266,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -3218,7 +3274,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -3226,9 +3282,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -3248,7 +3304,7 @@ "bundled": true, "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -3257,16 +3313,16 @@ "bundled": true, "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -3274,7 +3330,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -3289,15 +3345,15 @@ "bundled": true, "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" }, "dependencies": { "isobject": { @@ -3312,9 +3368,9 @@ "bundled": true, "dev": true, "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" } }, "camelcase": { @@ -3329,8 +3385,8 @@ "dev": true, "optional": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chalk": { @@ -3338,11 +3394,11 @@ "bundled": true, "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" } }, "class-utils": { @@ -3350,10 +3406,10 @@ "bundled": true, "dev": true, "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -3361,7 +3417,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "isobject": { @@ -3377,8 +3433,8 @@ "dev": true, "optional": 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" }, "dependencies": { @@ -3400,8 +3456,8 @@ "bundled": true, "dev": true, "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "commondir": { @@ -3439,8 +3495,8 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "4.1.3", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } }, "debug": { @@ -3471,7 +3527,7 @@ "bundled": true, "dev": true, "requires": { - "strip-bom": "2.0.0" + "strip-bom": "^2.0.0" } }, "define-property": { @@ -3479,8 +3535,8 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -3488,7 +3544,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -3496,7 +3552,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -3504,9 +3560,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -3526,7 +3582,7 @@ "bundled": true, "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "error-ex": { @@ -3534,7 +3590,7 @@ "bundled": true, "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "escape-string-regexp": { @@ -3552,13 +3608,13 @@ "bundled": true, "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" }, "dependencies": { "cross-spawn": { @@ -3566,9 +3622,9 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } } } @@ -3578,13 +3634,13 @@ "bundled": true, "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -3592,7 +3648,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -3600,7 +3656,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -3610,8 +3666,8 @@ "bundled": true, "dev": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -3619,7 +3675,7 @@ "bundled": true, "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -3629,14 +3685,14 @@ "bundled": true, "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { @@ -3644,7 +3700,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -3652,7 +3708,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -3660,7 +3716,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -3668,7 +3724,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -3676,9 +3732,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { @@ -3693,10 +3749,10 @@ "bundled": true, "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" }, "dependencies": { "extend-shallow": { @@ -3704,7 +3760,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -3714,9 +3770,9 @@ "bundled": true, "dev": true, "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" } }, "find-up": { @@ -3724,7 +3780,7 @@ "bundled": true, "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "for-in": { @@ -3737,8 +3793,8 @@ "bundled": true, "dev": true, "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" + "cross-spawn": "^4", + "signal-exit": "^3.0.0" } }, "fragment-cache": { @@ -3746,7 +3802,7 @@ "bundled": true, "dev": true, "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fs.realpath": { @@ -3774,12 +3830,12 @@ "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" + "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" } }, "globals": { @@ -3797,10 +3853,10 @@ "bundled": true, "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": { "source-map": { @@ -3808,7 +3864,7 @@ "bundled": true, "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -3818,7 +3874,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { @@ -3831,9 +3887,9 @@ "bundled": true, "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" }, "dependencies": { "isobject": { @@ -3848,8 +3904,8 @@ "bundled": true, "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { @@ -3857,7 +3913,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -3865,7 +3921,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -3875,7 +3931,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -3895,8 +3951,8 @@ "bundled": true, "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -3909,7 +3965,7 @@ "bundled": true, "dev": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -3922,7 +3978,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-arrayish": { @@ -3940,7 +3996,7 @@ "bundled": true, "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-data-descriptor": { @@ -3948,7 +4004,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-descriptor": { @@ -3956,9 +4012,9 @@ "bundled": true, "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": { @@ -3978,7 +4034,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -3991,7 +4047,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-odd": { @@ -3999,7 +4055,7 @@ "bundled": true, "dev": true, "requires": { - "is-number": "4.0.0" + "is-number": "^4.0.0" }, "dependencies": { "is-number": { @@ -4014,7 +4070,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -4064,7 +4120,7 @@ "bundled": true, "dev": true, "requires": { - "append-transform": "0.4.0" + "append-transform": "^0.4.0" } }, "istanbul-lib-instrument": { @@ -4072,13 +4128,13 @@ "bundled": true, "dev": true, "requires": { - "babel-generator": "6.26.1", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.2.0", - "semver": "5.5.0" + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.0", + "semver": "^5.3.0" } }, "istanbul-lib-report": { @@ -4086,10 +4142,10 @@ "bundled": true, "dev": true, "requires": { - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" }, "dependencies": { "supports-color": { @@ -4097,7 +4153,7 @@ "bundled": true, "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -4107,11 +4163,11 @@ "bundled": true, "dev": true, "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" }, "dependencies": { "debug": { @@ -4129,7 +4185,7 @@ "bundled": true, "dev": true, "requires": { - "handlebars": "4.0.11" + "handlebars": "^4.0.3" } }, "js-tokens": { @@ -4147,7 +4203,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lazy-cache": { @@ -4161,7 +4217,7 @@ "bundled": true, "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "load-json-file": { @@ -4169,11 +4225,11 @@ "bundled": true, "dev": true, "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": { @@ -4181,8 +4237,8 @@ "bundled": true, "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": { @@ -4207,7 +4263,7 @@ "bundled": true, "dev": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "lru-cache": { @@ -4215,8 +4271,8 @@ "bundled": true, "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "map-cache": { @@ -4229,7 +4285,7 @@ "bundled": true, "dev": true, "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "md5-hex": { @@ -4237,7 +4293,7 @@ "bundled": true, "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { @@ -4250,7 +4306,7 @@ "bundled": true, "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "merge-source-map": { @@ -4258,7 +4314,7 @@ "bundled": true, "dev": true, "requires": { - "source-map": "0.6.1" + "source-map": "^0.6.1" }, "dependencies": { "source-map": { @@ -4273,19 +4329,19 @@ "bundled": true, "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "dependencies": { "kind-of": { @@ -4305,7 +4361,7 @@ "bundled": true, "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -4318,8 +4374,8 @@ "bundled": true, "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": { @@ -4327,7 +4383,7 @@ "bundled": true, "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -4350,18 +4406,18 @@ "bundled": true, "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-odd": "^2.0.0", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "arr-diff": { @@ -4386,10 +4442,10 @@ "bundled": true, "dev": true, "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "npm-run-path": { @@ -4397,7 +4453,7 @@ "bundled": true, "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -4415,9 +4471,9 @@ "bundled": true, "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": { @@ -4425,7 +4481,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -4435,7 +4491,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" }, "dependencies": { "isobject": { @@ -4450,7 +4506,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -4465,7 +4521,7 @@ "bundled": true, "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "optimist": { @@ -4473,8 +4529,8 @@ "bundled": true, "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "os-homedir": { @@ -4487,9 +4543,9 @@ "bundled": true, "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" } }, "p-finally": { @@ -4502,7 +4558,7 @@ "bundled": true, "dev": true, "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -4510,7 +4566,7 @@ "bundled": true, "dev": true, "requires": { - "p-limit": "1.2.0" + "p-limit": "^1.1.0" } }, "p-try": { @@ -4523,7 +4579,7 @@ "bundled": true, "dev": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "pascalcase": { @@ -4536,7 +4592,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { @@ -4559,9 +4615,9 @@ "bundled": true, "dev": true, "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" } }, "pify": { @@ -4579,7 +4635,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { @@ -4587,7 +4643,7 @@ "bundled": true, "dev": true, "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" }, "dependencies": { "find-up": { @@ -4595,8 +4651,8 @@ "bundled": true, "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } @@ -4616,9 +4672,9 @@ "bundled": true, "dev": true, "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": { @@ -4626,8 +4682,8 @@ "bundled": true, "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" }, "dependencies": { "find-up": { @@ -4635,8 +4691,8 @@ "bundled": true, "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } @@ -4651,8 +4707,8 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "repeat-element": { @@ -4670,7 +4726,7 @@ "bundled": true, "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "require-directory": { @@ -4704,7 +4760,7 @@ "dev": true, "optional": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { @@ -4712,7 +4768,7 @@ "bundled": true, "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-regex": { @@ -4720,7 +4776,7 @@ "bundled": true, "dev": true, "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "semver": { @@ -4738,10 +4794,10 @@ "bundled": true, "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" }, "dependencies": { "extend-shallow": { @@ -4749,7 +4805,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -4759,7 +4815,7 @@ "bundled": true, "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -4782,14 +4838,14 @@ "bundled": true, "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": "3.1.0" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "define-property": { @@ -4797,7 +4853,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -4805,7 +4861,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -4815,9 +4871,9 @@ "bundled": true, "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" }, "dependencies": { "define-property": { @@ -4825,7 +4881,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -4833,7 +4889,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -4841,7 +4897,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -4849,9 +4905,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -4871,7 +4927,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "source-map": { @@ -4884,11 +4940,11 @@ "bundled": true, "dev": true, "requires": { - "atob": "2.1.1", - "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": { @@ -4901,12 +4957,12 @@ "bundled": true, "dev": true, "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.0" + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" } }, "spdx-correct": { @@ -4914,8 +4970,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -4928,8 +4984,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -4942,7 +4998,7 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "static-extend": { @@ -4950,8 +5006,8 @@ "bundled": true, "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": { @@ -4959,7 +5015,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -4969,8 +5025,8 @@ "bundled": true, "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" }, "dependencies": { "ansi-regex": { @@ -4983,7 +5039,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -4993,7 +5049,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -5001,7 +5057,7 @@ "bundled": true, "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-eof": { @@ -5019,11 +5075,11 @@ "bundled": true, "dev": true, "requires": { - "arrify": "1.0.1", - "micromatch": "3.1.10", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" + "arrify": "^1.0.1", + "micromatch": "^3.1.8", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" }, "dependencies": { "arr-diff": { @@ -5041,16 +5097,16 @@ "bundled": true, "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -5058,7 +5114,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5068,13 +5124,13 @@ "bundled": true, "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -5082,7 +5138,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -5090,7 +5146,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -5098,7 +5154,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -5106,7 +5162,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5116,7 +5172,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -5124,7 +5180,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5134,9 +5190,9 @@ "bundled": true, "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": { @@ -5151,14 +5207,14 @@ "bundled": true, "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { @@ -5166,7 +5222,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -5174,7 +5230,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5184,10 +5240,10 @@ "bundled": true, "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" }, "dependencies": { "extend-shallow": { @@ -5195,7 +5251,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5205,7 +5261,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -5213,7 +5269,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -5221,9 +5277,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-number": { @@ -5231,7 +5287,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -5239,7 +5295,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5259,19 +5315,19 @@ "bundled": true, "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } @@ -5286,7 +5342,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { @@ -5294,10 +5350,10 @@ "bundled": true, "dev": true, "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { @@ -5305,8 +5361,8 @@ "bundled": true, "dev": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "dependencies": { "is-number": { @@ -5314,7 +5370,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } } } @@ -5330,9 +5386,9 @@ "dev": true, "optional": 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" }, "dependencies": { "yargs": { @@ -5341,9 +5397,9 @@ "dev": true, "optional": 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" } } @@ -5360,10 +5416,10 @@ "bundled": true, "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": { "extend-shallow": { @@ -5371,7 +5427,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { @@ -5379,10 +5435,10 @@ "bundled": true, "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" } } } @@ -5392,8 +5448,8 @@ "bundled": true, "dev": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -5401,9 +5457,9 @@ "bundled": true, "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": { @@ -5438,7 +5494,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.2" }, "dependencies": { "kind-of": { @@ -5453,8 +5509,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "which": { @@ -5462,7 +5518,7 @@ "bundled": true, "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -5486,8 +5542,8 @@ "bundled": true, "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -5495,7 +5551,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { @@ -5503,9 +5559,9 @@ "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" } } } @@ -5520,9 +5576,9 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } }, "y18n": { @@ -5540,18 +5596,18 @@ "bundled": true, "dev": true, "requires": { - "cliui": "4.1.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": "9.0.2" + "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": "^9.0.2" }, "dependencies": { "ansi-regex": { @@ -5569,9 +5625,9 @@ "bundled": true, "dev": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" } }, "strip-ansi": { @@ -5579,7 +5635,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "yargs-parser": { @@ -5587,7 +5643,7 @@ "bundled": true, "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } @@ -5597,7 +5653,7 @@ "bundled": true, "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { @@ -5620,8 +5676,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "optional": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "once": { @@ -5629,7 +5685,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -5642,9 +5698,9 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "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" } }, "os-tmpdir": { @@ -5657,9 +5713,9 @@ "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", "requires": { - "graceful-fs": "4.1.11", - "mkdirp": "0.5.1", - "object-assign": "4.1.1" + "graceful-fs": "^4.1.4", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.0" } }, "p-finally": { @@ -5672,7 +5728,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -5680,7 +5736,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { - "p-limit": "1.3.0" + "p-limit": "^1.1.0" } }, "p-try": { @@ -5694,10 +5750,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "optional": 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" } }, "parse-json": { @@ -5705,7 +5761,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" } }, "path-exists": { @@ -5745,7 +5801,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { - "pify": "2.3.0" + "pify": "^2.0.0" }, "dependencies": { "pify": { @@ -5766,11 +5822,11 @@ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", "requires": { - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "pify": { @@ -5805,16 +5861,31 @@ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, + "pushdata-bitcoin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", + "integrity": "sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=", + "requires": { + "bitcoin-ops": "^1.3.0" + }, + "dependencies": { + "bitcoin-ops": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz", + "integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow==" + } + } + }, "qrcode": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.2.0.tgz", "integrity": "sha512-wZK0Z0eYmOUDP2tOGzmLdeBn5Npa+4wms9GdvzH7HrywvGUq/Stz0BKUhW4DfmBf1PSrm9dNfdnVDq683Zxvag==", "requires": { - "can-promise": "0.0.1", - "dijkstrajs": "1.0.1", - "isarray": "2.0.4", - "pngjs": "3.3.3", - "yargs": "8.0.2" + "can-promise": "^0.0.1", + "dijkstrajs": "^1.0.1", + "isarray": "^2.0.1", + "pngjs": "^3.3.0", + "yargs": "^8.0.2" }, "dependencies": { "isarray": { @@ -5824,15 +5895,20 @@ } } }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, "randomatic": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz", "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", "optional": true, "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.1" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "dependencies": { "is-number": { @@ -5854,7 +5930,7 @@ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.0" } }, "read-pkg": { @@ -5862,9 +5938,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "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": { @@ -5872,8 +5948,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" } }, "readable-stream": { @@ -5882,13 +5958,13 @@ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "optional": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "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" }, "dependencies": { "inherits": { @@ -5905,10 +5981,10 @@ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "optional": true, "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.6", - "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" } }, "regenerate": { @@ -5926,9 +6002,9 @@ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.8" + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" } }, "regex-cache": { @@ -5937,7 +6013,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "optional": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "regexpu-core": { @@ -5945,9 +6021,9 @@ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "requires": { - "regenerate": "1.4.0", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "regjsgen": { @@ -5960,7 +6036,7 @@ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { @@ -5991,7 +6067,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" } }, "repl.history": { @@ -6019,8 +6095,8 @@ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.1" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, "safe-buffer": { @@ -6039,7 +6115,7 @@ "resolved": "https://registry.npmjs.org/satoshi-bitcoin/-/satoshi-bitcoin-1.0.4.tgz", "integrity": "sha1-0AK2dwddXLvywhGo3zJUvN9QseQ=", "requires": { - "big.js": "3.2.0" + "big.js": "^3.1.3" } }, "scryptsy": { @@ -6052,14 +6128,14 @@ "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.5.0.tgz", "integrity": "sha512-e5QIJl8W7Y4tT6LHffVcZAxJjvpgE5Owawv6/XCYPQljE9aP2NFFddQ8OYMKhdLshNu88FfL3qCN3/xYkXGRsA==", "requires": { - "bindings": "1.3.0", - "bip66": "1.1.5", - "bn.js": "4.11.8", - "create-hash": "1.2.0", - "drbg.js": "1.0.1", - "elliptic": "6.4.0", - "nan": "2.10.0", - "safe-buffer": "5.1.2" + "bindings": "^1.2.1", + "bip66": "^1.1.3", + "bn.js": "^4.11.3", + "create-hash": "^1.1.2", + "drbg.js": "^1.0.1", + "elliptic": "^6.2.3", + "nan": "^2.2.1", + "safe-buffer": "^5.1.0" } }, "semver": { @@ -6083,8 +6159,8 @@ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "shebang-command": { @@ -6092,7 +6168,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -6111,13 +6187,13 @@ "integrity": "sha512-trdx+mB0VBBgoYucy6a9L7/jfQOmvGeaKZT4OOJ+lPAtI8623xyGr8wLiE4eojzBS8G9yXbhx42GHUOVLr4X2w==", "dev": true, "requires": { - "@sinonjs/formatio": "2.0.0", - "diff": "3.5.0", - "lodash.get": "4.4.2", - "lolex": "2.7.0", - "nise": "1.4.1", - "supports-color": "5.4.0", - "type-detect": "4.0.8" + "@sinonjs/formatio": "^2.0.0", + "diff": "^3.1.0", + "lodash.get": "^4.4.2", + "lolex": "^2.2.0", + "nise": "^1.2.0", + "supports-color": "^5.1.0", + "type-detect": "^4.0.5" }, "dependencies": { "supports-color": { @@ -6126,7 +6202,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -6146,7 +6222,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } }, "spdx-correct": { @@ -6154,8 +6230,8 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -6168,8 +6244,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -6182,8 +6258,8 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "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" }, "dependencies": { "ansi-regex": { @@ -6201,7 +6277,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -6212,7 +6288,7 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "optional": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -6220,7 +6296,7 @@ "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": { @@ -6249,8 +6325,8 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", "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" }, "dependencies": { "isarray": { @@ -6263,10 +6339,10 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.1", + "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": { @@ -6286,7 +6362,7 @@ "resolved": "https://registry.npmjs.org/topo/-/topo-1.1.0.tgz", "integrity": "sha1-6ddRYV0buH3IZdsYL6HKCl71NtU=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "touch": { @@ -6294,7 +6370,7 @@ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", "requires": { - "nopt": "1.0.10" + "nopt": "~1.0.10" } }, "traverse": { @@ -6313,6 +6389,11 @@ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, + "typeforce": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.12.0.tgz", + "integrity": "sha512-fvnkvueAOFLhtAqDgIA/wMP21SMwS/NQESFKZuwVrj5m/Ew6eK2S0z0iB++cwtROPWDOhaT6OUfla8UwMw4Adg==" + }, "unorm": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.4.1.tgz", @@ -6342,7 +6423,7 @@ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "requires": { - "user-home": "1.1.1" + "user-home": "^1.1.1" } }, "validate-npm-package-license": { @@ -6350,8 +6431,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "varuint-bitcoin": { @@ -6359,7 +6440,7 @@ "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz", "integrity": "sha512-jCEPG+COU/1Rp84neKTyDJQr478/hAfVp5xxYn09QEH0yBjbmPeMfuuQIrp+BUD83hybtYZKhr5elV3bvdV1bA==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.1" } }, "vision": { @@ -6367,10 +6448,10 @@ "resolved": "https://registry.npmjs.org/vision/-/vision-3.0.0.tgz", "integrity": "sha1-GEWEb2wjpvJTXa8woeHnHQukjGI=", "requires": { - "boom": "2.10.1", - "hoek": "2.16.3", - "items": "1.1.1", - "joi": "6.10.1" + "boom": "2.x.x", + "hoek": "^2.9.x", + "items": "^1.1.x", + "joi": "6.x.x" } }, "which": { @@ -6378,7 +6459,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -6391,7 +6472,7 @@ "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", "requires": { - "bs58check": "2.1.1" + "bs58check": "<3.0.0" } }, "window-or-global": { @@ -6404,8 +6485,8 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "string-width": { @@ -6413,9 +6494,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" } } } @@ -6430,8 +6511,8 @@ "resolved": "https://registry.npmjs.org/wreck/-/wreck-6.3.0.tgz", "integrity": "sha1-oTaXafB7u2LWo3gzanhx/Hc8dAs=", "requires": { - "boom": "2.10.1", - "hoek": "2.16.3" + "boom": "2.x.x", + "hoek": "2.x.x" } }, "xtend": { @@ -6454,19 +6535,19 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.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": "7.0.0" + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^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": "^7.0.0" } }, "yargs-parser": { @@ -6474,7 +6555,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } From 69dc0485b0a20fde13b8dbc977748ff98d8863cd Mon Sep 17 00:00:00 2001 From: James Cramer Date: Fri, 13 Jul 2018 23:14:37 -0400 Subject: [PATCH 021/480] use interface vs class --- @types/Address.d.ts | 10 +++++----- @types/BitcoinCash.d.ts | 10 +++++----- @types/Block.d.ts | 6 +++--- @types/Blockchain.d.ts | 20 ++++++++++---------- @types/Control.d.ts | 8 ++++---- @types/Crypto.d.ts | 2 +- @types/ECPair.d.ts | 4 ++-- @types/Generating.d.ts | 4 ++-- @types/HDNode.d.ts | 2 +- @types/Mining.d.ts | 4 ++-- @types/Mnemonic.d.ts | 2 +- @types/Network.d.ts | 4 ++-- @types/RawTransactions.d.ts | 4 ++-- @types/Script.d.ts | 4 ++-- @types/Transaction.d.ts | 12 ++++++------ @types/TransactionBuilder.d.ts | 4 ++-- @types/Util.d.ts | 6 +++--- @types/bitbox-cli.d.ts | 5 ++--- lib/Address.d.ts | 10 +++++----- lib/BitcoinCash.d.ts | 10 +++++----- lib/Block.d.ts | 6 +++--- lib/Blockchain.d.ts | 20 ++++++++++---------- lib/Control.d.ts | 8 ++++---- lib/Crypto.d.ts | 2 +- lib/ECPair.d.ts | 4 ++-- lib/Generating.d.ts | 4 ++-- lib/HDNode.d.ts | 2 +- lib/Mining.d.ts | 4 ++-- lib/Mnemonic.d.ts | 2 +- lib/Network.d.ts | 4 ++-- lib/RawTransactions.d.ts | 4 ++-- lib/Script.d.ts | 4 ++-- lib/Transaction.d.ts | 12 ++++++------ lib/TransactionBuilder.d.ts | 4 ++-- lib/Util.d.ts | 6 +++--- lib/bitbox-cli.d.ts | 5 ++--- 36 files changed, 110 insertions(+), 112 deletions(-) diff --git a/@types/Address.d.ts b/@types/Address.d.ts index 622aa271..e57802ca 100644 --- a/@types/Address.d.ts +++ b/@types/Address.d.ts @@ -1,6 +1,6 @@ -export declare class Address { +export declare interface Address { restURL: string; - constructor(restURL: string); + //constructor(restURL: string); toLegacyAddress(address: string): string; toCashAddress(address: string, prefix?: boolean): string; isLegacyAddress(address: string): boolean; @@ -19,7 +19,7 @@ export declare class Address { unconfirmed(address: string): Promise; } -export declare class AddressDetailsResult { +export declare interface AddressDetailsResult { addrStr: string; balance: number; balanceSat: number; @@ -34,7 +34,7 @@ export declare class AddressDetailsResult { transactions: string[]; } -export declare class AddressUtxoResult { +export declare interface AddressUtxoResult { address: string; txid: string; vout: number; @@ -45,7 +45,7 @@ export declare class AddressUtxoResult { confirmations: number; } -export declare class AddressUnconfirmedResult { +export declare interface AddressUnconfirmedResult { txid: string; vout: number; scriptPubKey: string; diff --git a/@types/BitcoinCash.d.ts b/@types/BitcoinCash.d.ts index d45634c8..62b77572 100644 --- a/@types/BitcoinCash.d.ts +++ b/@types/BitcoinCash.d.ts @@ -1,4 +1,4 @@ -export declare class BitcoinCash { +export declare interface BitcoinCash { toSatoshi(coins: number): number; toBitcoinCash(satoshis: number): number; toBits(satoshis: number): number; @@ -14,22 +14,22 @@ export declare class BitcoinCash { decryptBIP38(encryptedKey: string, passphrase: string, network?: string): string; } -declare class EncodeBIP21Options { +declare interface EncodeBIP21Options { amount?: number; label?: string; message?: string; } -declare class BIP21Object { +declare interface BIP21Object { address: string; options?: EncodeBIP21Options } -declare class ByteCountInput { +declare interface ByteCountInput { P2PKH?: number; } -declare class ByteCountOutput { +declare interface ByteCountOutput { P2PKH?: number; P2SH?: number; } \ No newline at end of file diff --git a/@types/Block.d.ts b/@types/Block.d.ts index 0de85db4..a5e45062 100644 --- a/@types/Block.d.ts +++ b/@types/Block.d.ts @@ -1,9 +1,9 @@ -export declare class Block { - constructor(restURL: string); +export declare interface Block { + //constructor(restURL: string); details(id: number): Promise; } -export declare class BlockDetails { +export declare interface BlockDetails { hash: string; size: number; height: number; diff --git a/@types/Blockchain.d.ts b/@types/Blockchain.d.ts index 0966452e..f5b9a975 100644 --- a/@types/Blockchain.d.ts +++ b/@types/Blockchain.d.ts @@ -1,9 +1,9 @@ import { BlockDetails } from './Block'; -export declare class Blockchain { - constructor(restURL:string); +export declare interface Blockchain { + //constructor(restURL:string); getBestBlockHash(): Promise; - getBlock(blockhash: string, verbose?: boolean):Promise; + getBlock(blockhash: string, verbose?: boolean):Promise; getBlockchainInfo(): Promise; getBlockCount(): Promise; getBlockHash(height: number): Promise; @@ -23,7 +23,7 @@ export declare class Blockchain { verifyTxOutProof(proof:string): Promise; } -declare class MempoolInfo { +declare interface MempoolInfo { size: number; bytes: number; usage: number; @@ -31,11 +31,11 @@ declare class MempoolInfo { mempoolminfee: number; } -declare class BlockchainInfo { +declare interface BlockchainInfo { chain: string; blocks: number; headers: number; - bestblockhash: string; + bestblockhash: string; difficulty: number; mediantime: number; verificationprogress: number; @@ -45,7 +45,7 @@ declare class BlockchainInfo { bip9_softforks: object; } -declare class BlockHeader { +declare interface BlockHeader { hash: string; confirmations: number; height: number; @@ -62,14 +62,14 @@ declare class BlockHeader { nextblockhash: string; } -declare class ChainTip { +declare interface ChainTip { height:number; hash: string; branchlen: number; status: string; } -declare class RawMempoolTxn { +//declare interface RawMempoolTxn { // [ {'2ae541af20db6f2b50410f418af56e349d08877d685f6cf54df54658e892db7a': // { size: 237, @@ -87,4 +87,4 @@ declare class RawMempoolTxn { // ancestorfees: 714, // depends: // [ 'e25682caafc7000645d59f4c11d8d594b2943979b9d8fafb9f946e2b35c21b7e' ] },] -} \ No newline at end of file +//} \ No newline at end of file diff --git a/@types/Control.d.ts b/@types/Control.d.ts index f7f3f047..3aa39ff8 100644 --- a/@types/Control.d.ts +++ b/@types/Control.d.ts @@ -1,10 +1,10 @@ -export declare class Control { - constructor(restURL:string); +export declare interface Control { + //constructor(restURL:string); getInfo(): Promise; getMemoryInfo():Promise; } -declare class NodeInfo { +declare interface NodeInfo { version: number; protocolversion: number; blocks: number; @@ -18,7 +18,7 @@ declare class NodeInfo { errors: string; } -declare class NodeMemoryInfo { +declare interface NodeMemoryInfo { locked: { used: number, free: number, diff --git a/@types/Crypto.d.ts b/@types/Crypto.d.ts index 52a5f6bc..39faa4e3 100644 --- a/@types/Crypto.d.ts +++ b/@types/Crypto.d.ts @@ -1,4 +1,4 @@ -export declare class Crypto { +export declare interface Crypto { sha256(buffer: Buffer): Buffer; ripemd160(buffer: Buffer): Buffer; hash256(buffer: Buffer): Buffer; diff --git a/@types/ECPair.d.ts b/@types/ECPair.d.ts index f20a0f7d..42d4bd05 100644 --- a/@types/ECPair.d.ts +++ b/@types/ECPair.d.ts @@ -1,8 +1,8 @@ declare type ECSignature = any; -export declare class ECPair { - constructor(); +export declare interface ECPair { + //constructor(); fromWIF(privateKeyWIF: string): ECPair; toWIF(ecpair: ECPair): string; sign(sigHash: number): ECSignature; diff --git a/@types/Generating.d.ts b/@types/Generating.d.ts index cc8b097b..0153cffd 100644 --- a/@types/Generating.d.ts +++ b/@types/Generating.d.ts @@ -1,4 +1,4 @@ -export declare class Generating { - constructor(restURL:string); +export declare interface Generating { + //constructor(restURL:string); generateToAddress(blocks:number, address:string, maxtries:number):Promise; } \ No newline at end of file diff --git a/@types/HDNode.d.ts b/@types/HDNode.d.ts index 0759ecdf..a43410df 100644 --- a/@types/HDNode.d.ts +++ b/@types/HDNode.d.ts @@ -1,6 +1,6 @@ import { ECPair, ECSignature } from "./ECPair"; -export declare class HDNode { +export declare interface HDNode { fromSeed(rootSeedBuffer: Buffer, network?: string): HDNode; toLegacyAddress(hdNode:HDNode):string; toCashAddress(hdNode:HDNode):string; diff --git a/@types/Mining.d.ts b/@types/Mining.d.ts index a927888d..76333f77 100644 --- a/@types/Mining.d.ts +++ b/@types/Mining.d.ts @@ -1,5 +1,5 @@ -export declare class Mining { - constructor(restURL:string); +export declare interface Mining { + //constructor(restURL:string); getBlockTemplate(template_request?:any):Promise; getMiningInfo():Promise; getNetworkHashps(nblocks?:number, height?:number):Promise; diff --git a/@types/Mnemonic.d.ts b/@types/Mnemonic.d.ts index d20ea4fd..acd4fe1d 100644 --- a/@types/Mnemonic.d.ts +++ b/@types/Mnemonic.d.ts @@ -1,4 +1,4 @@ -export declare class Mnemonic { +export declare interface Mnemonic { generate(bits: number, wordlist?: string[]): string; fromEntropy(bytes: Buffer, wordlist?: string[]): string; toEntropy(mnemonic: string, wordlist?: string[]): Buffer; diff --git a/@types/Network.d.ts b/@types/Network.d.ts index f3a9ccb2..43e07f95 100644 --- a/@types/Network.d.ts +++ b/@types/Network.d.ts @@ -1,5 +1,5 @@ -export declare class Network { - constructor(restURL:string); +export declare interface Network { + //constructor(restURL:string); //addNode(node:string, command:string):any; //clearBanned():any; //disconnectNode(configuration:object):any; diff --git a/@types/RawTransactions.d.ts b/@types/RawTransactions.d.ts index 6f335b5c..8ded66c2 100644 --- a/@types/RawTransactions.d.ts +++ b/@types/RawTransactions.d.ts @@ -1,5 +1,5 @@ -export declare class RawTransactions { - constructor(restURL:string); +export declare interface RawTransactions { + //constructor(restURL:string); decodeRawTransaction(hex:string):Promise; decodeScript(hex: string):Promise; getRawTransaction(txid: string, verbose?:boolean): Promise; diff --git a/@types/Script.d.ts b/@types/Script.d.ts index 344ddd1c..64f91387 100644 --- a/@types/Script.d.ts +++ b/@types/Script.d.ts @@ -1,4 +1,4 @@ -export declare class Script { +export declare interface Script { opcodes: opcodes; // nullData: null; // multisig: string; @@ -6,7 +6,7 @@ export declare class Script { // pubKeyHash: string; scriptHash: any; - constructor(); + //constructor(); classifyInput(script:Buffer):any; classifyOutput(script:Buffer):any; decode(scriptBuffer:Buffer):any[]; diff --git a/@types/Transaction.d.ts b/@types/Transaction.d.ts index ace5961b..b35348be 100644 --- a/@types/Transaction.d.ts +++ b/@types/Transaction.d.ts @@ -1,11 +1,11 @@ -import { TransactionBuilder } from './TransactionBuilder'; -export declare class Transaction { - constructor(restURL: string); +import { ITransactionBuilder } from './TransactionBuilder'; +export declare interface Transaction { + //constructor(restURL: string); transaction(): Transaction; toHex(): string; fromHex(hex: string): string; - transactionBuilder(network: string): TransactionBuilder; - fromTransaction(tx: Transaction): TransactionBuilder; + transactionBuilder(network: string): ITransactionBuilder; + fromTransaction(tx: Transaction): ITransactionBuilder; details(txid: string| string[]): Promise; // lower level methods @@ -14,7 +14,7 @@ export declare class Transaction { setInputScript(idx: number, scriptSig: Buffer): void; } -declare class TxnDetails{ +declare interface TxnDetails{ txid: string; version: number; locktime: number; diff --git a/@types/TransactionBuilder.d.ts b/@types/TransactionBuilder.d.ts index e715e245..d7411dc1 100644 --- a/@types/TransactionBuilder.d.ts +++ b/@types/TransactionBuilder.d.ts @@ -3,7 +3,7 @@ import { ECPair } from './ECPair'; declare type ECSignature = any; -export declare class TransactionBuilder { +export declare interface ITransactionBuilder { // bitcoincash: coininfo.bitcoincash.main; // bitcoincashBitcoinJSLib: Bitcoin.toBitcoinJS; transaction: Transaction; @@ -12,7 +12,7 @@ export declare class TransactionBuilder { bip66 : any; bip68 : any; - constructor(network: string); + constructor(network?: string): ITransactionBuilder; addInput(txHash: string|Buffer, vout: number, sequence?: number, prevOutScript?: string): void; addOutput(scriptPubKey: string|Buffer, amount: number): void; diff --git a/@types/Util.d.ts b/@types/Util.d.ts index 528bde99..756985f5 100644 --- a/@types/Util.d.ts +++ b/@types/Util.d.ts @@ -1,9 +1,9 @@ -export declare class Util { - constructor(restURL:string); +export declare interface Util { + //constructor(restURL:string); validateAddress(address: string): Promise; } -declare class AddressDetails { +declare interface AddressDetails { isvalid: boolean; address: string; scriptPubKey: string; diff --git a/@types/bitbox-cli.d.ts b/@types/bitbox-cli.d.ts index 19ea3731..c6b1c7d9 100644 --- a/@types/bitbox-cli.d.ts +++ b/@types/bitbox-cli.d.ts @@ -13,11 +13,10 @@ import { Mnemonic } from './Mnemonic'; import { Address } from './Address'; import { HDNode } from './HDNode'; import { Transaction } from './Transaction'; -import { TransactionBuilder } from './TransactionBuilder'; +import { ITransactionBuilder } from './TransactionBuilder'; import { ECPair } from './ECPair'; import { Script } from './Script'; -//export declare type BITBOXCli export declare interface IBITBOXCli { @@ -37,7 +36,7 @@ export declare interface IBITBOXCli { RawTransactions: RawTransactions; Script: Script; Transaction: Transaction; - TransactionBuilder: TransactionBuilder; + //TransactionBuilder: ITransactionBuilder; Util: Util; } diff --git a/lib/Address.d.ts b/lib/Address.d.ts index 622aa271..e57802ca 100644 --- a/lib/Address.d.ts +++ b/lib/Address.d.ts @@ -1,6 +1,6 @@ -export declare class Address { +export declare interface Address { restURL: string; - constructor(restURL: string); + //constructor(restURL: string); toLegacyAddress(address: string): string; toCashAddress(address: string, prefix?: boolean): string; isLegacyAddress(address: string): boolean; @@ -19,7 +19,7 @@ export declare class Address { unconfirmed(address: string): Promise; } -export declare class AddressDetailsResult { +export declare interface AddressDetailsResult { addrStr: string; balance: number; balanceSat: number; @@ -34,7 +34,7 @@ export declare class AddressDetailsResult { transactions: string[]; } -export declare class AddressUtxoResult { +export declare interface AddressUtxoResult { address: string; txid: string; vout: number; @@ -45,7 +45,7 @@ export declare class AddressUtxoResult { confirmations: number; } -export declare class AddressUnconfirmedResult { +export declare interface AddressUnconfirmedResult { txid: string; vout: number; scriptPubKey: string; diff --git a/lib/BitcoinCash.d.ts b/lib/BitcoinCash.d.ts index d45634c8..62b77572 100644 --- a/lib/BitcoinCash.d.ts +++ b/lib/BitcoinCash.d.ts @@ -1,4 +1,4 @@ -export declare class BitcoinCash { +export declare interface BitcoinCash { toSatoshi(coins: number): number; toBitcoinCash(satoshis: number): number; toBits(satoshis: number): number; @@ -14,22 +14,22 @@ export declare class BitcoinCash { decryptBIP38(encryptedKey: string, passphrase: string, network?: string): string; } -declare class EncodeBIP21Options { +declare interface EncodeBIP21Options { amount?: number; label?: string; message?: string; } -declare class BIP21Object { +declare interface BIP21Object { address: string; options?: EncodeBIP21Options } -declare class ByteCountInput { +declare interface ByteCountInput { P2PKH?: number; } -declare class ByteCountOutput { +declare interface ByteCountOutput { P2PKH?: number; P2SH?: number; } \ No newline at end of file diff --git a/lib/Block.d.ts b/lib/Block.d.ts index 0de85db4..a5e45062 100644 --- a/lib/Block.d.ts +++ b/lib/Block.d.ts @@ -1,9 +1,9 @@ -export declare class Block { - constructor(restURL: string); +export declare interface Block { + //constructor(restURL: string); details(id: number): Promise; } -export declare class BlockDetails { +export declare interface BlockDetails { hash: string; size: number; height: number; diff --git a/lib/Blockchain.d.ts b/lib/Blockchain.d.ts index 0966452e..f5b9a975 100644 --- a/lib/Blockchain.d.ts +++ b/lib/Blockchain.d.ts @@ -1,9 +1,9 @@ import { BlockDetails } from './Block'; -export declare class Blockchain { - constructor(restURL:string); +export declare interface Blockchain { + //constructor(restURL:string); getBestBlockHash(): Promise; - getBlock(blockhash: string, verbose?: boolean):Promise; + getBlock(blockhash: string, verbose?: boolean):Promise; getBlockchainInfo(): Promise; getBlockCount(): Promise; getBlockHash(height: number): Promise; @@ -23,7 +23,7 @@ export declare class Blockchain { verifyTxOutProof(proof:string): Promise; } -declare class MempoolInfo { +declare interface MempoolInfo { size: number; bytes: number; usage: number; @@ -31,11 +31,11 @@ declare class MempoolInfo { mempoolminfee: number; } -declare class BlockchainInfo { +declare interface BlockchainInfo { chain: string; blocks: number; headers: number; - bestblockhash: string; + bestblockhash: string; difficulty: number; mediantime: number; verificationprogress: number; @@ -45,7 +45,7 @@ declare class BlockchainInfo { bip9_softforks: object; } -declare class BlockHeader { +declare interface BlockHeader { hash: string; confirmations: number; height: number; @@ -62,14 +62,14 @@ declare class BlockHeader { nextblockhash: string; } -declare class ChainTip { +declare interface ChainTip { height:number; hash: string; branchlen: number; status: string; } -declare class RawMempoolTxn { +//declare interface RawMempoolTxn { // [ {'2ae541af20db6f2b50410f418af56e349d08877d685f6cf54df54658e892db7a': // { size: 237, @@ -87,4 +87,4 @@ declare class RawMempoolTxn { // ancestorfees: 714, // depends: // [ 'e25682caafc7000645d59f4c11d8d594b2943979b9d8fafb9f946e2b35c21b7e' ] },] -} \ No newline at end of file +//} \ No newline at end of file diff --git a/lib/Control.d.ts b/lib/Control.d.ts index f7f3f047..3aa39ff8 100644 --- a/lib/Control.d.ts +++ b/lib/Control.d.ts @@ -1,10 +1,10 @@ -export declare class Control { - constructor(restURL:string); +export declare interface Control { + //constructor(restURL:string); getInfo(): Promise; getMemoryInfo():Promise; } -declare class NodeInfo { +declare interface NodeInfo { version: number; protocolversion: number; blocks: number; @@ -18,7 +18,7 @@ declare class NodeInfo { errors: string; } -declare class NodeMemoryInfo { +declare interface NodeMemoryInfo { locked: { used: number, free: number, diff --git a/lib/Crypto.d.ts b/lib/Crypto.d.ts index 52a5f6bc..39faa4e3 100644 --- a/lib/Crypto.d.ts +++ b/lib/Crypto.d.ts @@ -1,4 +1,4 @@ -export declare class Crypto { +export declare interface Crypto { sha256(buffer: Buffer): Buffer; ripemd160(buffer: Buffer): Buffer; hash256(buffer: Buffer): Buffer; diff --git a/lib/ECPair.d.ts b/lib/ECPair.d.ts index f20a0f7d..42d4bd05 100644 --- a/lib/ECPair.d.ts +++ b/lib/ECPair.d.ts @@ -1,8 +1,8 @@ declare type ECSignature = any; -export declare class ECPair { - constructor(); +export declare interface ECPair { + //constructor(); fromWIF(privateKeyWIF: string): ECPair; toWIF(ecpair: ECPair): string; sign(sigHash: number): ECSignature; diff --git a/lib/Generating.d.ts b/lib/Generating.d.ts index cc8b097b..0153cffd 100644 --- a/lib/Generating.d.ts +++ b/lib/Generating.d.ts @@ -1,4 +1,4 @@ -export declare class Generating { - constructor(restURL:string); +export declare interface Generating { + //constructor(restURL:string); generateToAddress(blocks:number, address:string, maxtries:number):Promise; } \ No newline at end of file diff --git a/lib/HDNode.d.ts b/lib/HDNode.d.ts index 0759ecdf..a43410df 100644 --- a/lib/HDNode.d.ts +++ b/lib/HDNode.d.ts @@ -1,6 +1,6 @@ import { ECPair, ECSignature } from "./ECPair"; -export declare class HDNode { +export declare interface HDNode { fromSeed(rootSeedBuffer: Buffer, network?: string): HDNode; toLegacyAddress(hdNode:HDNode):string; toCashAddress(hdNode:HDNode):string; diff --git a/lib/Mining.d.ts b/lib/Mining.d.ts index a927888d..76333f77 100644 --- a/lib/Mining.d.ts +++ b/lib/Mining.d.ts @@ -1,5 +1,5 @@ -export declare class Mining { - constructor(restURL:string); +export declare interface Mining { + //constructor(restURL:string); getBlockTemplate(template_request?:any):Promise; getMiningInfo():Promise; getNetworkHashps(nblocks?:number, height?:number):Promise; diff --git a/lib/Mnemonic.d.ts b/lib/Mnemonic.d.ts index d20ea4fd..acd4fe1d 100644 --- a/lib/Mnemonic.d.ts +++ b/lib/Mnemonic.d.ts @@ -1,4 +1,4 @@ -export declare class Mnemonic { +export declare interface Mnemonic { generate(bits: number, wordlist?: string[]): string; fromEntropy(bytes: Buffer, wordlist?: string[]): string; toEntropy(mnemonic: string, wordlist?: string[]): Buffer; diff --git a/lib/Network.d.ts b/lib/Network.d.ts index f3a9ccb2..43e07f95 100644 --- a/lib/Network.d.ts +++ b/lib/Network.d.ts @@ -1,5 +1,5 @@ -export declare class Network { - constructor(restURL:string); +export declare interface Network { + //constructor(restURL:string); //addNode(node:string, command:string):any; //clearBanned():any; //disconnectNode(configuration:object):any; diff --git a/lib/RawTransactions.d.ts b/lib/RawTransactions.d.ts index 6f335b5c..8ded66c2 100644 --- a/lib/RawTransactions.d.ts +++ b/lib/RawTransactions.d.ts @@ -1,5 +1,5 @@ -export declare class RawTransactions { - constructor(restURL:string); +export declare interface RawTransactions { + //constructor(restURL:string); decodeRawTransaction(hex:string):Promise; decodeScript(hex: string):Promise; getRawTransaction(txid: string, verbose?:boolean): Promise; diff --git a/lib/Script.d.ts b/lib/Script.d.ts index 344ddd1c..64f91387 100644 --- a/lib/Script.d.ts +++ b/lib/Script.d.ts @@ -1,4 +1,4 @@ -export declare class Script { +export declare interface Script { opcodes: opcodes; // nullData: null; // multisig: string; @@ -6,7 +6,7 @@ export declare class Script { // pubKeyHash: string; scriptHash: any; - constructor(); + //constructor(); classifyInput(script:Buffer):any; classifyOutput(script:Buffer):any; decode(scriptBuffer:Buffer):any[]; diff --git a/lib/Transaction.d.ts b/lib/Transaction.d.ts index ace5961b..b35348be 100644 --- a/lib/Transaction.d.ts +++ b/lib/Transaction.d.ts @@ -1,11 +1,11 @@ -import { TransactionBuilder } from './TransactionBuilder'; -export declare class Transaction { - constructor(restURL: string); +import { ITransactionBuilder } from './TransactionBuilder'; +export declare interface Transaction { + //constructor(restURL: string); transaction(): Transaction; toHex(): string; fromHex(hex: string): string; - transactionBuilder(network: string): TransactionBuilder; - fromTransaction(tx: Transaction): TransactionBuilder; + transactionBuilder(network: string): ITransactionBuilder; + fromTransaction(tx: Transaction): ITransactionBuilder; details(txid: string| string[]): Promise; // lower level methods @@ -14,7 +14,7 @@ export declare class Transaction { setInputScript(idx: number, scriptSig: Buffer): void; } -declare class TxnDetails{ +declare interface TxnDetails{ txid: string; version: number; locktime: number; diff --git a/lib/TransactionBuilder.d.ts b/lib/TransactionBuilder.d.ts index e715e245..d7411dc1 100644 --- a/lib/TransactionBuilder.d.ts +++ b/lib/TransactionBuilder.d.ts @@ -3,7 +3,7 @@ import { ECPair } from './ECPair'; declare type ECSignature = any; -export declare class TransactionBuilder { +export declare interface ITransactionBuilder { // bitcoincash: coininfo.bitcoincash.main; // bitcoincashBitcoinJSLib: Bitcoin.toBitcoinJS; transaction: Transaction; @@ -12,7 +12,7 @@ export declare class TransactionBuilder { bip66 : any; bip68 : any; - constructor(network: string); + constructor(network?: string): ITransactionBuilder; addInput(txHash: string|Buffer, vout: number, sequence?: number, prevOutScript?: string): void; addOutput(scriptPubKey: string|Buffer, amount: number): void; diff --git a/lib/Util.d.ts b/lib/Util.d.ts index 528bde99..756985f5 100644 --- a/lib/Util.d.ts +++ b/lib/Util.d.ts @@ -1,9 +1,9 @@ -export declare class Util { - constructor(restURL:string); +export declare interface Util { + //constructor(restURL:string); validateAddress(address: string): Promise; } -declare class AddressDetails { +declare interface AddressDetails { isvalid: boolean; address: string; scriptPubKey: string; diff --git a/lib/bitbox-cli.d.ts b/lib/bitbox-cli.d.ts index 19ea3731..c6b1c7d9 100644 --- a/lib/bitbox-cli.d.ts +++ b/lib/bitbox-cli.d.ts @@ -13,11 +13,10 @@ import { Mnemonic } from './Mnemonic'; import { Address } from './Address'; import { HDNode } from './HDNode'; import { Transaction } from './Transaction'; -import { TransactionBuilder } from './TransactionBuilder'; +import { ITransactionBuilder } from './TransactionBuilder'; import { ECPair } from './ECPair'; import { Script } from './Script'; -//export declare type BITBOXCli export declare interface IBITBOXCli { @@ -37,7 +36,7 @@ export declare interface IBITBOXCli { RawTransactions: RawTransactions; Script: Script; Transaction: Transaction; - TransactionBuilder: TransactionBuilder; + //TransactionBuilder: ITransactionBuilder; Util: Util; } From 39bc47614d339c6a5e4b009bd5ecf3fecf540168 Mon Sep 17 00:00:00 2001 From: James Cramer Date: Fri, 13 Jul 2018 23:17:29 -0400 Subject: [PATCH 022/480] rename @types to typings --- package.json | 2 +- {@types => typings}/Address.d.ts | 0 {@types => typings}/BitcoinCash.d.ts | 0 {@types => typings}/Block.d.ts | 0 {@types => typings}/Blockchain.d.ts | 0 {@types => typings}/Control.d.ts | 0 {@types => typings}/Crypto.d.ts | 0 {@types => typings}/ECPair.d.ts | 0 {@types => typings}/Generating.d.ts | 0 {@types => typings}/HDNode.d.ts | 0 {@types => typings}/Mining.d.ts | 0 {@types => typings}/Mnemonic.d.ts | 0 {@types => typings}/Network.d.ts | 0 {@types => typings}/RawTransactions.d.ts | 0 {@types => typings}/Script.d.ts | 0 {@types => typings}/Transaction.d.ts | 0 {@types => typings}/TransactionBuilder.d.ts | 0 {@types => typings}/Util.d.ts | 0 {@types => typings}/bitbox-cli.d.ts | 0 19 files changed, 1 insertion(+), 1 deletion(-) rename {@types => typings}/Address.d.ts (100%) rename {@types => typings}/BitcoinCash.d.ts (100%) rename {@types => typings}/Block.d.ts (100%) rename {@types => typings}/Blockchain.d.ts (100%) rename {@types => typings}/Control.d.ts (100%) rename {@types => typings}/Crypto.d.ts (100%) rename {@types => typings}/ECPair.d.ts (100%) rename {@types => typings}/Generating.d.ts (100%) rename {@types => typings}/HDNode.d.ts (100%) rename {@types => typings}/Mining.d.ts (100%) rename {@types => typings}/Mnemonic.d.ts (100%) rename {@types => typings}/Network.d.ts (100%) rename {@types => typings}/RawTransactions.d.ts (100%) rename {@types => typings}/Script.d.ts (100%) rename {@types => typings}/Transaction.d.ts (100%) rename {@types => typings}/TransactionBuilder.d.ts (100%) rename {@types => typings}/Util.d.ts (100%) rename {@types => typings}/bitbox-cli.d.ts (100%) diff --git a/package.json b/package.json index a53b0113..512c923e 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "scripts": { "test": "nyc mocha --timeout 15000 --require babel-core/register", "build": "babel src/ -d lib/", - "postbuild": "cp -R @types/* lib", + "postbuild": "cp -R typings/* lib", "flow": "flow" }, "license": "MIT", diff --git a/@types/Address.d.ts b/typings/Address.d.ts similarity index 100% rename from @types/Address.d.ts rename to typings/Address.d.ts diff --git a/@types/BitcoinCash.d.ts b/typings/BitcoinCash.d.ts similarity index 100% rename from @types/BitcoinCash.d.ts rename to typings/BitcoinCash.d.ts diff --git a/@types/Block.d.ts b/typings/Block.d.ts similarity index 100% rename from @types/Block.d.ts rename to typings/Block.d.ts diff --git a/@types/Blockchain.d.ts b/typings/Blockchain.d.ts similarity index 100% rename from @types/Blockchain.d.ts rename to typings/Blockchain.d.ts diff --git a/@types/Control.d.ts b/typings/Control.d.ts similarity index 100% rename from @types/Control.d.ts rename to typings/Control.d.ts diff --git a/@types/Crypto.d.ts b/typings/Crypto.d.ts similarity index 100% rename from @types/Crypto.d.ts rename to typings/Crypto.d.ts diff --git a/@types/ECPair.d.ts b/typings/ECPair.d.ts similarity index 100% rename from @types/ECPair.d.ts rename to typings/ECPair.d.ts diff --git a/@types/Generating.d.ts b/typings/Generating.d.ts similarity index 100% rename from @types/Generating.d.ts rename to typings/Generating.d.ts diff --git a/@types/HDNode.d.ts b/typings/HDNode.d.ts similarity index 100% rename from @types/HDNode.d.ts rename to typings/HDNode.d.ts diff --git a/@types/Mining.d.ts b/typings/Mining.d.ts similarity index 100% rename from @types/Mining.d.ts rename to typings/Mining.d.ts diff --git a/@types/Mnemonic.d.ts b/typings/Mnemonic.d.ts similarity index 100% rename from @types/Mnemonic.d.ts rename to typings/Mnemonic.d.ts diff --git a/@types/Network.d.ts b/typings/Network.d.ts similarity index 100% rename from @types/Network.d.ts rename to typings/Network.d.ts diff --git a/@types/RawTransactions.d.ts b/typings/RawTransactions.d.ts similarity index 100% rename from @types/RawTransactions.d.ts rename to typings/RawTransactions.d.ts diff --git a/@types/Script.d.ts b/typings/Script.d.ts similarity index 100% rename from @types/Script.d.ts rename to typings/Script.d.ts diff --git a/@types/Transaction.d.ts b/typings/Transaction.d.ts similarity index 100% rename from @types/Transaction.d.ts rename to typings/Transaction.d.ts diff --git a/@types/TransactionBuilder.d.ts b/typings/TransactionBuilder.d.ts similarity index 100% rename from @types/TransactionBuilder.d.ts rename to typings/TransactionBuilder.d.ts diff --git a/@types/Util.d.ts b/typings/Util.d.ts similarity index 100% rename from @types/Util.d.ts rename to typings/Util.d.ts diff --git a/@types/bitbox-cli.d.ts b/typings/bitbox-cli.d.ts similarity index 100% rename from @types/bitbox-cli.d.ts rename to typings/bitbox-cli.d.ts From e3c079f1cbfbf9f2739218503cf962ad66188122 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sun, 15 Jul 2018 12:17:35 +0900 Subject: [PATCH 023/480] Bump version for Typescript typings. --- index.js | 2 +- package.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 6a5f5ae0..3ff12f00 100755 --- a/index.js +++ b/index.js @@ -25,7 +25,7 @@ let cmd = require('node-cmd'); // let ProgressBar = require('progress'); program - .version('1.2.0'); + .version('1.3.0'); program .command('new ') diff --git a/package.json b/package.json index 512c923e..92d87273 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,8 @@ { "name": "bitbox-cli", - "version": "1.2.0", + "version": "1.3.0", "description": "BITBOX javascript sdk for Bitcoin Cash", - "author": "Bitcoin.com", + "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", "scripts": { "test": "nyc mocha --timeout 15000 --require babel-core/register", From 1c271eaff2995b4c2884060ef8fada6f36bf950e Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 18 Jul 2018 13:43:38 +0900 Subject: [PATCH 024/480] Price class w/ current method. --- index.js | 2 +- lib/Price.js | 42 +++++++++++++++++ lib/bitbox-cli.js | 5 +++ package-lock.json | 4 +- package.json | 2 +- src/Price.js | 18 ++++++++ src/bitbox-cli.js | 2 + test/Price.js | 112 ++++++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 183 insertions(+), 4 deletions(-) create mode 100644 lib/Price.js create mode 100644 src/Price.js create mode 100644 test/Price.js diff --git a/index.js b/index.js index 3ff12f00..b1fca4aa 100755 --- a/index.js +++ b/index.js @@ -25,7 +25,7 @@ let cmd = require('node-cmd'); // let ProgressBar = require('progress'); program - .version('1.3.0'); + .version('1.3.1'); program .command('new ') diff --git a/lib/Price.js b/lib/Price.js new file mode 100644 index 00000000..730098cb --- /dev/null +++ b/lib/Price.js @@ -0,0 +1,42 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _axios = require('axios'); + +var _axios2 = _interopRequireDefault(_axios); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var Price = function () { + function Price() { + _classCallCheck(this, Price); + } + + _createClass(Price, [{ + key: 'current', + value: function current() { + var currency = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'all'; + + return _axios2.default.get('https://www.blocktrail.com/BCC/json/blockchain/price').then(function (response) { + if (currency === 'all') { + return response.data; + } else { + return response.data[currency.toUpperCase()]; + } + }).catch(function (error) { + return JSON.stringify(error.response.data.error.message); + }); + } + }]); + + return Price; +}(); + +exports.default = Price; \ No newline at end of file diff --git a/lib/bitbox-cli.js b/lib/bitbox-cli.js index d89147f3..66ca45f7 100644 --- a/lib/bitbox-cli.js +++ b/lib/bitbox-cli.js @@ -80,6 +80,10 @@ var _Script = require('./Script'); var _Script2 = _interopRequireDefault(_Script); +var _Price = require('./Price'); + +var _Price2 = _interopRequireDefault(_Price); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } // 3rd party deps @@ -109,6 +113,7 @@ var BITBOXCli = function BITBOXCli(config) { this.Mining = new _Mining2.default(this.restURL); this.Mnemonic = new _Mnemonic2.default(); this.Network = new _Network2.default(this.restURL); + this.Price = new _Price2.default(); this.RawTransactions = new _RawTransactions2.default(this.restURL); this.Script = new _Script2.default(); this.Transaction = new _Transaction2.default(this.restURL); diff --git a/package-lock.json b/package-lock.json index 9e0bb5d1..08d86495 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.1.2", + "version": "1.3.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -19,7 +19,7 @@ "integrity": "sha512-m9zXmifkZsMHZBOyxZWilMwmTlpC8x5Ty360JKTiXvlXZfBWYpsg9ZZvP/Ye+iZUh+Q+MxDLjItVTWIsfwz+8Q==", "dev": true }, - "abbrev": { + "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" diff --git a/package.json b/package.json index 92d87273..c5788394 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.3.0", + "version": "1.3.1", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", diff --git a/src/Price.js b/src/Price.js new file mode 100644 index 00000000..9477de02 --- /dev/null +++ b/src/Price.js @@ -0,0 +1,18 @@ +import axios from 'axios'; +class Price { + current(currency = 'all') { + return axios.get(`https://www.blocktrail.com/BCC/json/blockchain/price`) + .then((response) => { + if(currency === 'all') { + return response.data; + } else { + return response.data[currency.toUpperCase()]; + } + }) + .catch((error) => { + return JSON.stringify(error.response.data.error.message); + }); + } +} + +export default Price; diff --git a/src/bitbox-cli.js b/src/bitbox-cli.js index 4448448b..7a5bceba 100644 --- a/src/bitbox-cli.js +++ b/src/bitbox-cli.js @@ -20,6 +20,7 @@ import Transaction from './Transaction'; import TransactionBuilder from './TransactionBuilder'; import ECPair from './ECPair'; import Script from './Script'; +import Price from './Price'; class BITBOXCli { constructor(config) { @@ -41,6 +42,7 @@ class BITBOXCli { this.Mining = new Mining(this.restURL); this.Mnemonic = new Mnemonic(); this.Network = new Network(this.restURL); + this.Price = new Price(); this.RawTransactions = new RawTransactions(this.restURL); this.Script = new Script(); this.Transaction = new Transaction(this.restURL); diff --git a/test/Price.js b/test/Price.js new file mode 100644 index 00000000..076478ab --- /dev/null +++ b/test/Price.js @@ -0,0 +1,112 @@ +let chai = require('chai'); +let assert = require('assert'); +let BITBOXCli = require('./../lib/bitbox-cli').default; +let BITBOX = new BITBOXCli(); +let axios = require('axios'); +let sinon = require('sinon'); + +describe('#Price', () => { + describe('#current', () => { + describe('#all currencies', () => { + let sandbox; + beforeEach(() => sandbox = sinon.sandbox.create()); + afterEach(() => sandbox.restore()); + + it('should get current price for all currencies', (done) => { + let data = { + USD: 872.31, + GBP: 665.3, + EUR: 748.34, + CNY: 5848.32, + PAB: 872.31, + ARS: 24005.97, + BOB: 6060.11, + CLP: 570141.82, + PEN: 2851.32, + PYG: 4986964.67, + UYU: 27300.76, + VEF: 69697569, + CRC: 494264.3, + MXN: 16476.28, + NGN: 314903.91, + INR: 59620.88, + RUB: 54650.83, + AUD: 1180.92, + BRL: 3347.57, + CAD: 1151.44, + ZAR: 11579.24, + GHS: 4177.25, + JPY: 98519.56, + ILS: 3165.36, + SAR: 3271.21, + KRW: 984345.13, + COP: 2521500.32, + PHP: 46612.32, + PLN: 3215.41 + }; + const resolved = new Promise((r) => r({ data: data })); + sandbox.stub(axios, 'get').returns(resolved); + + BITBOX.Price.current() + .then((result) => { + assert.deepEqual( + data, + result + ); + }) + .then(done, done); + }); + }); + + describe('#single currency', () => { + let sandbox; + beforeEach(() => sandbox = sinon.sandbox.create()); + afterEach(() => sandbox.restore()); + + it('should get current price for single currency', (done) => { + let data = { + USD: 872.31, + GBP: 665.3, + EUR: 748.34, + CNY: 5848.32, + PAB: 872.31, + ARS: 24005.97, + BOB: 6060.11, + CLP: 570141.82, + PEN: 2851.32, + PYG: 4986964.67, + UYU: 27300.76, + VEF: 69697569, + CRC: 494264.3, + MXN: 16476.28, + NGN: 314903.91, + INR: 59620.88, + RUB: 54650.83, + AUD: 1180.92, + BRL: 3347.57, + CAD: 1151.44, + ZAR: 11579.24, + GHS: 4177.25, + JPY: 98519.56, + ILS: 3165.36, + SAR: 3271.21, + KRW: 984345.13, + COP: 2521500.32, + PHP: 46612.32, + PLN: 3215.41 + }; + const resolved = new Promise((r) => r({ data: data })); + sandbox.stub(axios, 'get').returns(resolved); + + BITBOX.Price.current('usd') + .then((result) => { + assert.deepEqual( + data['USD'], + result + ); + }) + .then(done, done); + }); + }); + }); +}); From b68f0279fbf4645aca5f5e8e2b49a87454f6111d Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sat, 21 Jul 2018 11:02:59 +0900 Subject: [PATCH 025/480] Adding websockets --- lib/Socket.js | 70 ++++++++++++ lib/bitbox-cli.js | 5 + package-lock.json | 270 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 2 + src/Socket.js | 48 +++++++++ src/bitbox-cli.js | 2 + 6 files changed, 397 insertions(+) create mode 100644 lib/Socket.js create mode 100644 src/Socket.js diff --git a/lib/Socket.js b/lib/Socket.js new file mode 100644 index 00000000..7cb0843a --- /dev/null +++ b/lib/Socket.js @@ -0,0 +1,70 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _socket = require('socket.io-client'); + +var _socket2 = _interopRequireDefault(_socket); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +// import axios from 'axios'; + +var Socket = function () { + function Socket() { + _classCallCheck(this, Socket); + + this.socket = (0, _socket2.default)('http://localhost:3001'); + this.socket.on('connect', this.onConnect.bind(this)); + } + + _createClass(Socket, [{ + key: 'onConnect', + value: function onConnect() { + this.socket.emit('chat message', 'winning'); + + this.socket.on('chat message', function (msg) { + console.log('message ', msg); + }); + } + }, { + key: 'listen', + value: function listen(foo, address) { + return axios.get(this.restURL + 'address/foobar/' + address).then(function (response) { + return response.data; + }).catch(function (error) { + return JSON.stringify(error.response.data.error.message); + }); + + this.socket.emit(foo, address); + + this.socket.on(foo, function (msg) { + console.log(foo, msg); + }); + } + // current(currency = 'all') { + // return axios.get(`https://www.blocktrail.com/BCC/json/blockchain/Socket`) + // .then((response) => { + // if(currency === 'all') { + // return response.data; + // } else { + // return response.data[currency.toUpperCase()]; + // } + // }) + // .catch((error) => { + // return JSON.stringify(error.response.data.error.message); + // }); + // } + + }]); + + return Socket; +}(); + +exports.default = Socket; \ No newline at end of file diff --git a/lib/bitbox-cli.js b/lib/bitbox-cli.js index 66ca45f7..79133f45 100644 --- a/lib/bitbox-cli.js +++ b/lib/bitbox-cli.js @@ -84,6 +84,10 @@ var _Price = require('./Price'); var _Price2 = _interopRequireDefault(_Price); +var _Socket = require('./Socket'); + +var _Socket2 = _interopRequireDefault(_Socket); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } // 3rd party deps @@ -119,6 +123,7 @@ var BITBOXCli = function BITBOXCli(config) { this.Transaction = new _Transaction2.default(this.restURL); this.TransactionBuilder = _TransactionBuilder2.default; this.Util = new _Util2.default(this.restURL); + this.Socket = _Socket2.default; }; exports.default = BITBOXCli; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 08d86495..4b0e4746 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,6 +24,20 @@ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, + "accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "requires": { + "mime-types": "~2.1.18", + "negotiator": "0.6.1" + } + }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" + }, "ammo": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ammo/-/ammo-1.0.1.tgz", @@ -74,6 +88,11 @@ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", "optional": true }, + "arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" + }, "assert": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", @@ -94,6 +113,11 @@ "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", "optional": true }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" + }, "axios": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", @@ -853,6 +877,11 @@ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" + }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -866,11 +895,21 @@ "safe-buffer": "^5.0.1" } }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" + }, "base64-js": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" }, + "base64id": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=" + }, "bchaddrjs": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.1.tgz", @@ -885,6 +924,14 @@ "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.3.tgz", "integrity": "sha512-yuVFUvrNcoJi0sv5phmqc6P+Fl1HjRDRNOOkHY2X/3LBy2bIGNSFx4fZ95HMaXHupuS7cZR15AsvtmCIF4UEyg==" }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "requires": { + "callsite": "1.0.0" + } + }, "big-integer": { "version": "1.6.31", "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.31.tgz", @@ -1001,6 +1048,11 @@ "varuint-bitcoin": "^1.0.1" } }, + "blob": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", + "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=" + }, "bn.js": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", @@ -1107,6 +1159,11 @@ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" + }, "camelcase": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", @@ -1264,6 +1321,21 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1274,6 +1346,11 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=" }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + }, "core-js": { "version": "2.5.7", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", @@ -1441,6 +1518,49 @@ "minimalistic-crypto-utils": "^1.0.0" } }, + "engine.io": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.0.tgz", + "integrity": "sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==", + "requires": { + "accepts": "~1.3.4", + "base64id": "1.0.0", + "cookie": "0.3.1", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "ws": "~3.3.1" + } + }, + "engine.io-client": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", + "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "~3.3.1", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + } + }, + "engine.io-parser": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.2.tgz", + "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==", + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.4", + "has-binary2": "~1.0.2" + } + }, "error-ex": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", @@ -2458,6 +2578,26 @@ "ansi-regex": "^2.0.0" } }, + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "requires": { + "isarray": "2.0.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" + } + } + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -2536,6 +2676,11 @@ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==" }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + }, "inert": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/inert/-/inert-3.2.1.tgz", @@ -2885,6 +3030,19 @@ "regex-cache": "^0.4.2" } }, + "mime-db": { + "version": "1.35.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz", + "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==" + }, + "mime-types": { + "version": "2.1.19", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", + "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", + "requires": { + "mime-db": "~1.35.0" + } + }, "mimic-fn": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", @@ -2964,6 +3122,11 @@ "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==" }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" + }, "nested-error-stacks": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz", @@ -5670,6 +5833,11 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" + }, "object.omit": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", @@ -5764,6 +5932,22 @@ "error-ex": "^1.2.0" } }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "requires": { + "better-assert": "~1.0.0" + } + }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", @@ -6212,6 +6396,62 @@ "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" }, + "socket.io": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", + "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", + "requires": { + "debug": "~3.1.0", + "engine.io": "~3.2.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.1.1", + "socket.io-parser": "~3.2.0" + } + }, + "socket.io-adapter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz", + "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=" + }, + "socket.io-client": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz", + "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==", + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "engine.io-client": "~3.2.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.2.0", + "to-array": "0.1.4" + } + }, + "socket.io-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", + "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", + "requires": { + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" + } + } + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -6352,6 +6592,11 @@ } } }, + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" + }, "to-fast-properties": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", @@ -6394,6 +6639,11 @@ "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.12.0.tgz", "integrity": "sha512-fvnkvueAOFLhtAqDgIA/wMP21SMwS/NQESFKZuwVrj5m/Ew6eK2S0z0iB++cwtROPWDOhaT6OUfla8UwMw4Adg==" }, + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" + }, "unorm": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.4.1.tgz", @@ -6515,6 +6765,21 @@ "hoek": "2.x.x" } }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "requires": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + } + }, + "xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=" + }, "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", @@ -6557,6 +6822,11 @@ "requires": { "camelcase": "^4.1.0" } + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" } } } diff --git a/package.json b/package.json index c5788394..7b9c705c 100644 --- a/package.json +++ b/package.json @@ -57,6 +57,8 @@ "repl.history": "^0.1.4", "safe-buffer": "^5.1.2", "satoshi-bitcoin": "^1.0.4", + "socket.io": "^2.1.1", + "socket.io-client": "^2.1.1", "touch": "^3.1.0", "wif": "^2.0.6" }, diff --git a/src/Socket.js b/src/Socket.js new file mode 100644 index 00000000..f1879544 --- /dev/null +++ b/src/Socket.js @@ -0,0 +1,48 @@ +import io from 'socket.io-client'; +// import axios from 'axios'; + +class Socket { + constructor() { + this.socket = io('http://localhost:3001'); + this.socket.on('connect', this.onConnect.bind(this)); + } + + onConnect() { + this.socket.emit('chat message', 'winning'); + + this.socket.on('chat message', (msg) => { + console.log('message ', msg); + }); + } + + listen(foo, address) { + return axios.get(`${this.restURL}address/foobar/${address}`) + .then((response) => { + return response.data; + }) + .catch((error) => { + return JSON.stringify(error.response.data.error.message); + }); + + this.socket.emit(foo, address); + + this.socket.on(foo, (msg) => { + console.log(foo, msg); + }); + } + // current(currency = 'all') { + // return axios.get(`https://www.blocktrail.com/BCC/json/blockchain/Socket`) + // .then((response) => { + // if(currency === 'all') { + // return response.data; + // } else { + // return response.data[currency.toUpperCase()]; + // } + // }) + // .catch((error) => { + // return JSON.stringify(error.response.data.error.message); + // }); + // } +} + +export default Socket; diff --git a/src/bitbox-cli.js b/src/bitbox-cli.js index 7a5bceba..5b63440e 100644 --- a/src/bitbox-cli.js +++ b/src/bitbox-cli.js @@ -21,6 +21,7 @@ import TransactionBuilder from './TransactionBuilder'; import ECPair from './ECPair'; import Script from './Script'; import Price from './Price'; +import Socket from './Socket'; class BITBOXCli { constructor(config) { @@ -48,6 +49,7 @@ class BITBOXCli { this.Transaction = new Transaction(this.restURL); this.TransactionBuilder = TransactionBuilder; this.Util = new Util(this.restURL); + this.Socket = Socket; } } From f46ee160893325de7f62ceb5abde81c68e3345b7 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sat, 21 Jul 2018 12:09:20 +0900 Subject: [PATCH 026/480] Calling `block` endpoint --- lib/Socket.js | 24 +++++++++--------------- src/Socket.js | 26 +++++++++----------------- 2 files changed, 18 insertions(+), 32 deletions(-) diff --git a/lib/Socket.js b/lib/Socket.js index 7cb0843a..5fe5a220 100644 --- a/lib/Socket.js +++ b/lib/Socket.js @@ -27,25 +27,19 @@ var Socket = function () { _createClass(Socket, [{ key: 'onConnect', value: function onConnect() { - this.socket.emit('chat message', 'winning'); - - this.socket.on('chat message', function (msg) { - console.log('message ', msg); - }); + // this.socket.emit('chat message', 'winning'); + // + // this.socket.on('chat message', (msg) => { + // console.log('message ', msg); + // }); } }, { key: 'listen', - value: function listen(foo, address) { - return axios.get(this.restURL + 'address/foobar/' + address).then(function (response) { - return response.data; - }).catch(function (error) { - return JSON.stringify(error.response.data.error.message); - }); - - this.socket.emit(foo, address); + value: function listen(endpoint) { + this.socket.emit(endpoint); - this.socket.on(foo, function (msg) { - console.log(foo, msg); + this.socket.on('block', function (msg) { + console.log(msg); }); } // current(currency = 'all') { diff --git a/src/Socket.js b/src/Socket.js index f1879544..67231030 100644 --- a/src/Socket.js +++ b/src/Socket.js @@ -8,26 +8,18 @@ class Socket { } onConnect() { - this.socket.emit('chat message', 'winning'); - - this.socket.on('chat message', (msg) => { - console.log('message ', msg); - }); + // this.socket.emit('chat message', 'winning'); + // + // this.socket.on('chat message', (msg) => { + // console.log('message ', msg); + // }); } - listen(foo, address) { - return axios.get(`${this.restURL}address/foobar/${address}`) - .then((response) => { - return response.data; - }) - .catch((error) => { - return JSON.stringify(error.response.data.error.message); - }); - - this.socket.emit(foo, address); + listen(endpoint) { + this.socket.emit(endpoint); - this.socket.on(foo, (msg) => { - console.log(foo, msg); + this.socket.on('block', (msg) => { + console.log(msg); }); } // current(currency = 'all') { From 29ea9b6a307669bc699a2d72322d18723850e5f3 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sun, 22 Jul 2018 10:21:51 +0900 Subject: [PATCH 027/480] Return rawtx decoded from ws. --- index.js | 6 ------ lib/Socket.js | 32 +++++--------------------------- package-lock.json | 30 ++++++++++++++++++++++++++++++ package.json | 1 + src/Socket.js | 29 +++++------------------------ 5 files changed, 41 insertions(+), 57 deletions(-) diff --git a/index.js b/index.js index b1fca4aa..fd0eb695 100755 --- a/index.js +++ b/index.js @@ -18,12 +18,6 @@ let clone = require('git-clone'); let corsproxy = require('corsproxy'); let cmd = require('node-cmd'); -// let request = require('superagent'); -// let co = require('co'); -// let prompt = require('co-prompt'); -// let fs = require('fs'); -// let ProgressBar = require('progress'); - program .version('1.3.1'); diff --git a/lib/Socket.js b/lib/Socket.js index 5fe5a220..4561147e 100644 --- a/lib/Socket.js +++ b/lib/Socket.js @@ -14,48 +14,26 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -// import axios from 'axios'; - var Socket = function () { function Socket() { _classCallCheck(this, Socket); this.socket = (0, _socket2.default)('http://localhost:3001'); - this.socket.on('connect', this.onConnect.bind(this)); } _createClass(Socket, [{ - key: 'onConnect', - value: function onConnect() { - // this.socket.emit('chat message', 'winning'); - // - // this.socket.on('chat message', (msg) => { - // console.log('message ', msg); - // }); - } - }, { key: 'listen', value: function listen(endpoint) { this.socket.emit(endpoint); this.socket.on('block', function (msg) { - console.log(msg); + return msg; }); - } - // current(currency = 'all') { - // return axios.get(`https://www.blocktrail.com/BCC/json/blockchain/Socket`) - // .then((response) => { - // if(currency === 'all') { - // return response.data; - // } else { - // return response.data[currency.toUpperCase()]; - // } - // }) - // .catch((error) => { - // return JSON.stringify(error.response.data.error.message); - // }); - // } + this.socket.on('rawtx', function (msg) { + return msg; + }); + } }]); return Socket; diff --git a/package-lock.json b/package-lock.json index 4b0e4746..f43f45e8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1008,6 +1008,14 @@ "version": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", "from": "github:Bitcoin-com/bitcoincash-ops" }, + "bitcoin-txdecoder": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/bitcoin-txdecoder/-/bitcoin-txdecoder-0.0.3.tgz", + "integrity": "sha512-pH/eF5hQ65y54U23mzuF42wEj9YWj4WKHAIj2il6b1+oRoi/oyM4Ti3e8nMD8ajippICmyquqbyCZKGq3i4W+A==", + "requires": { + "bitcoinjs-lib": "3.3.*" + } + }, "bitcoincashjs-lib": { "version": "github:Bitcoin-com/bitcoincashjs-lib#0a7fc7cf23551503f57689db4c930b8136db954c", "from": "github:Bitcoin-com/bitcoincashjs-lib", @@ -1036,6 +1044,28 @@ } } }, + "bitcoinjs-lib": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-3.3.2.tgz", + "integrity": "sha512-l5qqvbaK8wwtANPf6oEffykycg4383XgEYdia1rI7/JpGf1jfRWlOUCvx5TiTZS7kyIvY4j/UhIQ2urLsvGkzw==", + "requires": { + "bech32": "^1.1.2", + "bigi": "^1.4.0", + "bip66": "^1.1.0", + "bitcoin-ops": "^1.3.0", + "bs58check": "^2.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.3", + "ecurve": "^1.0.0", + "merkle-lib": "^2.0.10", + "pushdata-bitcoin": "^1.0.1", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "typeforce": "^1.11.3", + "varuint-bitcoin": "^1.0.4", + "wif": "^2.0.1" + } + }, "bitcoinjs-message": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", diff --git a/package.json b/package.json index 7b9c705c..eda86595 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "bip66": "^1.1.5", "bip68": "^1.0.4", "bitcoin-ops": "Bitcoin-com/bitcoincash-ops", + "bitcoin-txdecoder": "0.0.3", "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib", "bitcoinjs-message": "^2.0.0", "bs58": "^4.0.1", diff --git a/src/Socket.js b/src/Socket.js index 67231030..7441417a 100644 --- a/src/Socket.js +++ b/src/Socket.js @@ -1,40 +1,21 @@ import io from 'socket.io-client'; -// import axios from 'axios'; class Socket { constructor() { this.socket = io('http://localhost:3001'); - this.socket.on('connect', this.onConnect.bind(this)); - } - - onConnect() { - // this.socket.emit('chat message', 'winning'); - // - // this.socket.on('chat message', (msg) => { - // console.log('message ', msg); - // }); } listen(endpoint) { this.socket.emit(endpoint); this.socket.on('block', (msg) => { - console.log(msg); + return msg; + }); + + this.socket.on('rawtx', (msg) => { + return msg; }); } - // current(currency = 'all') { - // return axios.get(`https://www.blocktrail.com/BCC/json/blockchain/Socket`) - // .then((response) => { - // if(currency === 'all') { - // return response.data; - // } else { - // return response.data[currency.toUpperCase()]; - // } - // }) - // .catch((error) => { - // return JSON.stringify(error.response.data.error.message); - // }); - // } } export default Socket; From a62608d6910373baec7bddee3225af5c49b25046 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sun, 22 Jul 2018 10:37:01 +0900 Subject: [PATCH 028/480] Pass callback. --- lib/Socket.js | 6 +++--- src/Socket.js | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/Socket.js b/lib/Socket.js index 4561147e..d7316daa 100644 --- a/lib/Socket.js +++ b/lib/Socket.js @@ -23,15 +23,15 @@ var Socket = function () { _createClass(Socket, [{ key: 'listen', - value: function listen(endpoint) { + value: function listen(endpoint, cb) { this.socket.emit(endpoint); this.socket.on('block', function (msg) { - return msg; + return cb(msg); }); this.socket.on('rawtx', function (msg) { - return msg; + return cb(msg); }); } }]); diff --git a/src/Socket.js b/src/Socket.js index 7441417a..0853c3da 100644 --- a/src/Socket.js +++ b/src/Socket.js @@ -5,15 +5,15 @@ class Socket { this.socket = io('http://localhost:3001'); } - listen(endpoint) { + listen(endpoint, cb) { this.socket.emit(endpoint); this.socket.on('block', (msg) => { - return msg; + return cb(msg); }); this.socket.on('rawtx', (msg) => { - return msg; + return cb(msg); }); } } From c2bfe293e88c22d79eab1a79948527dcc818bbae Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sun, 22 Jul 2018 11:06:42 +0900 Subject: [PATCH 029/480] Pass in websocket rest url and port. --- lib/Socket.js | 5 ++++- src/Socket.js | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/Socket.js b/lib/Socket.js index d7316daa..2afffd65 100644 --- a/lib/Socket.js +++ b/lib/Socket.js @@ -16,9 +16,12 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons var Socket = function () { function Socket() { + var restURL = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'https://rest.bitbox.earth'; + var port = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '3001'; + _classCallCheck(this, Socket); - this.socket = (0, _socket2.default)('http://localhost:3001'); + this.socket = (0, _socket2.default)(restURL + ':' + port); } _createClass(Socket, [{ diff --git a/src/Socket.js b/src/Socket.js index 0853c3da..042334d2 100644 --- a/src/Socket.js +++ b/src/Socket.js @@ -1,8 +1,8 @@ import io from 'socket.io-client'; class Socket { - constructor() { - this.socket = io('http://localhost:3001'); + constructor(restURL = 'https://rest.bitbox.earth', port = '3001') { + this.socket = io(`${restURL}:${port}`); } listen(endpoint, cb) { From 718c5351a1653c23b52383576810c0cc89088244 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sun, 22 Jul 2018 12:03:25 +0900 Subject: [PATCH 030/480] Use passed in rest url. --- lib/Socket.js | 3 +-- src/Socket.js | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/Socket.js b/lib/Socket.js index 2afffd65..e0baba40 100644 --- a/lib/Socket.js +++ b/lib/Socket.js @@ -17,11 +17,10 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons var Socket = function () { function Socket() { var restURL = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'https://rest.bitbox.earth'; - var port = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '3001'; _classCallCheck(this, Socket); - this.socket = (0, _socket2.default)(restURL + ':' + port); + this.socket = (0, _socket2.default)('' + restURL); } _createClass(Socket, [{ diff --git a/src/Socket.js b/src/Socket.js index 042334d2..6dad6cb5 100644 --- a/src/Socket.js +++ b/src/Socket.js @@ -1,8 +1,8 @@ import io from 'socket.io-client'; class Socket { - constructor(restURL = 'https://rest.bitbox.earth', port = '3001') { - this.socket = io(`${restURL}:${port}`); + constructor(restURL = 'https://rest.bitbox.earth') { + this.socket = io(`${restURL}`); } listen(endpoint, cb) { From 8dc25c8da966629748bb8eb838e24ed65d7234e0 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sun, 22 Jul 2018 12:38:03 +0900 Subject: [PATCH 031/480] Version. --- index.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index fd0eb695..fb8ed4a3 100755 --- a/index.js +++ b/index.js @@ -19,7 +19,7 @@ let corsproxy = require('corsproxy'); let cmd = require('node-cmd'); program - .version('1.3.1'); + .version('1.4.0'); program .command('new ') diff --git a/package.json b/package.json index eda86595..7c870551 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.3.1", + "version": "1.4.0", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", From f00db9d4c7af1b273ceace066e583be168689420 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sun, 22 Jul 2018 13:13:31 +0900 Subject: [PATCH 032/480] blocks and transactions websockets. --- lib/Socket.js | 4 ++-- src/Socket.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/Socket.js b/lib/Socket.js index e0baba40..e860c3f8 100644 --- a/lib/Socket.js +++ b/lib/Socket.js @@ -28,11 +28,11 @@ var Socket = function () { value: function listen(endpoint, cb) { this.socket.emit(endpoint); - this.socket.on('block', function (msg) { + this.socket.on('blocks', function (msg) { return cb(msg); }); - this.socket.on('rawtx', function (msg) { + this.socket.on('transactions', function (msg) { return cb(msg); }); } diff --git a/src/Socket.js b/src/Socket.js index 6dad6cb5..cb6fadc9 100644 --- a/src/Socket.js +++ b/src/Socket.js @@ -8,11 +8,11 @@ class Socket { listen(endpoint, cb) { this.socket.emit(endpoint); - this.socket.on('block', (msg) => { + this.socket.on('blocks', (msg) => { return cb(msg); }); - this.socket.on('rawtx', (msg) => { + this.socket.on('transactions', (msg) => { return cb(msg); }); } From 41d009153b9df8d14f590aa231e98ffa8b70103b Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Mon, 23 Jul 2018 16:44:52 +0900 Subject: [PATCH 033/480] Change node dep to LTS release. --- index.js | 2 +- package-lock.json | 2759 ++++++++++++++++++++++----------------------- package.json | 4 +- 3 files changed, 1376 insertions(+), 1389 deletions(-) diff --git a/index.js b/index.js index fb8ed4a3..a7753ad9 100755 --- a/index.js +++ b/index.js @@ -19,7 +19,7 @@ let corsproxy = require('corsproxy'); let cmd = require('node-cmd'); program - .version('1.4.0'); + .version('1.4.1'); program .command('new ') diff --git a/package-lock.json b/package-lock.json index f43f45e8..d6453f50 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.3.1", + "version": "1.4.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -29,7 +29,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "requires": { - "mime-types": "~2.1.18", + "mime-types": "2.1.19", "negotiator": "0.6.1" } }, @@ -43,8 +43,8 @@ "resolved": "https://registry.npmjs.org/ammo/-/ammo-1.0.1.tgz", "integrity": "sha1-j4rdFM1Jve3jurOj4OvK8h0D3os=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x" + "boom": "2.10.1", + "hoek": "2.16.3" } }, "ansi-regex": { @@ -63,8 +63,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "optional": true, "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" + "micromatch": "2.3.11", + "normalize-path": "2.1.1" } }, "arr-diff": { @@ -73,7 +73,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "optional": true, "requires": { - "arr-flatten": "^1.0.1" + "arr-flatten": "1.1.0" } }, "arr-flatten": { @@ -123,8 +123,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=", "requires": { - "follow-redirects": "^1.2.5", - "is-buffer": "^1.1.5" + "follow-redirects": "1.5.1", + "is-buffer": "1.1.6" } }, "babel-cli": { @@ -132,21 +132,21 @@ "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", "requires": { - "babel-core": "^6.26.0", - "babel-polyfill": "^6.26.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "chokidar": "^1.6.1", - "commander": "^2.11.0", - "convert-source-map": "^1.5.0", - "fs-readdir-recursive": "^1.0.0", - "glob": "^7.1.2", - "lodash": "^4.17.4", - "output-file-sync": "^1.1.2", - "path-is-absolute": "^1.0.1", - "slash": "^1.0.0", - "source-map": "^0.5.6", - "v8flags": "^2.1.1" + "babel-core": "6.26.3", + "babel-polyfill": "6.26.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "chokidar": "1.7.0", + "commander": "2.16.0", + "convert-source-map": "1.5.1", + "fs-readdir-recursive": "1.1.0", + "glob": "7.1.2", + "lodash": "4.17.10", + "output-file-sync": "1.1.2", + "path-is-absolute": "1.0.1", + "slash": "1.0.0", + "source-map": "0.5.7", + "v8flags": "2.1.1" } }, "babel-code-frame": { @@ -154,9 +154,9 @@ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" }, "dependencies": { "chalk": { @@ -164,11 +164,11 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { - "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" + "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" } } } @@ -178,25 +178,25 @@ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.1", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.5.1", + "debug": "2.6.9", + "json5": "0.5.1", + "lodash": "4.17.10", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "slash": "1.0.0", + "source-map": "0.5.7" }, "dependencies": { "debug": { @@ -214,14 +214,14 @@ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.10", + "source-map": "0.5.7", + "trim-right": "1.0.1" } }, "babel-helper-builder-binary-assignment-operator-visitor": { @@ -229,9 +229,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "requires": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-explode-assignable-expression": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-builder-react-jsx": { @@ -239,9 +239,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "esutils": "^2.0.2" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "esutils": "2.0.2" } }, "babel-helper-call-delegate": { @@ -249,10 +249,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-define-map": { @@ -260,10 +260,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.10" } }, "babel-helper-explode-assignable-expression": { @@ -271,9 +271,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-function-name": { @@ -281,11 +281,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "requires": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-get-function-arity": { @@ -293,8 +293,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-hoist-variables": { @@ -302,8 +302,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-optimise-call-expression": { @@ -311,8 +311,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-regex": { @@ -320,9 +320,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.10" } }, "babel-helper-remap-async-to-generator": { @@ -330,11 +330,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-replace-supers": { @@ -342,12 +342,12 @@ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "requires": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-optimise-call-expression": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helpers": { @@ -355,8 +355,8 @@ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-messages": { @@ -364,7 +364,7 @@ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-check-es2015-constants": { @@ -372,7 +372,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-syntax-async-functions": { @@ -405,9 +405,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-functions": "6.13.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-arrow-functions": { @@ -415,7 +415,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -423,7 +423,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -431,11 +431,11 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "requires": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.10" } }, "babel-plugin-transform-es2015-classes": { @@ -443,15 +443,15 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "requires": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-define-map": "6.26.0", + "babel-helper-function-name": "6.24.1", + "babel-helper-optimise-call-expression": "6.24.1", + "babel-helper-replace-supers": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-computed-properties": { @@ -459,8 +459,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-destructuring": { @@ -468,7 +468,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -476,8 +476,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-for-of": { @@ -485,7 +485,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -493,9 +493,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-literals": { @@ -503,7 +503,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -511,9 +511,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -521,10 +521,10 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-modules-systemjs": { @@ -532,9 +532,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-modules-umd": { @@ -542,9 +542,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "requires": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-object-super": { @@ -552,8 +552,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "requires": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" + "babel-helper-replace-supers": "6.24.1", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -561,12 +561,12 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "requires": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-call-delegate": "6.24.1", + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-shorthand-properties": { @@ -574,8 +574,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-spread": { @@ -583,7 +583,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -591,9 +591,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-template-literals": { @@ -601,7 +601,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -609,7 +609,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -617,9 +617,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "regexpu-core": "2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -627,9 +627,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", + "babel-plugin-syntax-exponentiation-operator": "6.13.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-flow-strip-types": { @@ -637,8 +637,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", "requires": { - "babel-plugin-syntax-flow": "^6.18.0", - "babel-runtime": "^6.22.0" + "babel-plugin-syntax-flow": "6.18.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-react-display-name": { @@ -646,7 +646,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-react-jsx": { @@ -654,9 +654,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", "requires": { - "babel-helper-builder-react-jsx": "^6.24.1", - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-builder-react-jsx": "6.26.0", + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-react-jsx-self": { @@ -664,8 +664,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", "requires": { - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-react-jsx-source": { @@ -673,8 +673,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", "requires": { - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-regenerator": { @@ -682,7 +682,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "requires": { - "regenerator-transform": "^0.10.0" + "regenerator-transform": "0.10.1" } }, "babel-plugin-transform-strict-mode": { @@ -690,8 +690,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-polyfill": { @@ -699,9 +699,9 @@ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "requires": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" + "babel-runtime": "6.26.0", + "core-js": "2.5.7", + "regenerator-runtime": "0.10.5" }, "dependencies": { "regenerator-runtime": { @@ -716,36 +716,36 @@ "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-to-generator": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.23.0", - "babel-plugin-transform-es2015-classes": "^6.23.0", - "babel-plugin-transform-es2015-computed-properties": "^6.22.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", - "babel-plugin-transform-es2015-for-of": "^6.23.0", - "babel-plugin-transform-es2015-function-name": "^6.22.0", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.22.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-umd": "^6.23.0", - "babel-plugin-transform-es2015-object-super": "^6.22.0", - "babel-plugin-transform-es2015-parameters": "^6.23.0", - "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", - "babel-plugin-transform-exponentiation-operator": "^6.22.0", - "babel-plugin-transform-regenerator": "^6.22.0", - "browserslist": "^3.2.6", - "invariant": "^2.2.2", - "semver": "^5.3.0" + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-async-to-generator": "6.24.1", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-exponentiation-operator": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0", + "browserslist": "3.2.8", + "invariant": "2.2.4", + "semver": "5.5.0" } }, "babel-preset-es2015": { @@ -753,30 +753,30 @@ "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.24.1", - "babel-plugin-transform-es2015-classes": "^6.24.1", - "babel-plugin-transform-es2015-computed-properties": "^6.24.1", - "babel-plugin-transform-es2015-destructuring": "^6.22.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", - "babel-plugin-transform-es2015-for-of": "^6.22.0", - "babel-plugin-transform-es2015-function-name": "^6.24.1", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-umd": "^6.24.1", - "babel-plugin-transform-es2015-object-super": "^6.24.1", - "babel-plugin-transform-es2015-parameters": "^6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", - "babel-plugin-transform-regenerator": "^6.24.1" + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0" } }, "babel-preset-flow": { @@ -784,7 +784,7 @@ "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", "requires": { - "babel-plugin-transform-flow-strip-types": "^6.22.0" + "babel-plugin-transform-flow-strip-types": "6.22.0" } }, "babel-preset-react": { @@ -792,12 +792,12 @@ "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", "requires": { - "babel-plugin-syntax-jsx": "^6.3.13", - "babel-plugin-transform-react-display-name": "^6.23.0", - "babel-plugin-transform-react-jsx": "^6.24.1", - "babel-plugin-transform-react-jsx-self": "^6.22.0", - "babel-plugin-transform-react-jsx-source": "^6.22.0", - "babel-preset-flow": "^6.23.0" + "babel-plugin-syntax-jsx": "6.18.0", + "babel-plugin-transform-react-display-name": "6.25.0", + "babel-plugin-transform-react-jsx": "6.24.1", + "babel-plugin-transform-react-jsx-self": "6.22.0", + "babel-plugin-transform-react-jsx-source": "6.22.0", + "babel-preset-flow": "6.23.0" } }, "babel-register": { @@ -805,13 +805,13 @@ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" + "babel-core": "6.26.3", + "babel-runtime": "6.26.0", + "core-js": "2.5.7", + "home-or-tmp": "2.0.0", + "lodash": "4.17.10", + "mkdirp": "0.5.1", + "source-map-support": "0.4.18" } }, "babel-runtime": { @@ -819,8 +819,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "babel-template": { @@ -828,11 +828,11 @@ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.10" } }, "babel-traverse": { @@ -840,15 +840,15 @@ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.4", + "lodash": "4.17.10" }, "dependencies": { "debug": { @@ -866,10 +866,10 @@ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.10", + "to-fast-properties": "1.0.3" } }, "babylon": { @@ -892,7 +892,7 @@ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.4.tgz", "integrity": "sha512-UYOadoSIkEI/VrRGSG6qp93rp2WdokiAiNYDfGW5qURAY8GiAQkvMbwNNSDYiVJopqv4gCna7xqf4rrNGp+5AA==", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "base64-arraybuffer": { @@ -915,8 +915,8 @@ "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.1.tgz", "integrity": "sha512-esOfL+EnG+qPgqAPl4NxWngDIJIEs35dcV6wU0NP6bxBtc363fYm7xhNtC1BRVagDLSbMNwyI27rkWXwN5i6yg==", "requires": { - "bs58check": "^2.1.1", - "cashaddrjs": "^0.2.7" + "bs58check": "2.1.1", + "cashaddrjs": "0.2.8" } }, "bech32": { @@ -933,9 +933,9 @@ } }, "big-integer": { - "version": "1.6.31", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.31.tgz", - "integrity": "sha512-lDbZNHHwxDKnjP7LWg2leO+tjs4SyVs2Z83dsR1Idbe2urRnxZAUdeQ8YBhHaGaWK/4WM3mz+RlbZsgqck17CA==" + "version": "1.6.32", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.32.tgz", + "integrity": "sha512-ljKJdR3wk9thHfLj4DtrNiOSTxvGFaMjWrG4pW75juXC4j7+XuKJVFdg4kgFMYp85PVkO05dFMj2dk2xVsH4xw==" }, "big.js": { "version": "3.2.0", @@ -960,9 +960,8 @@ }, "bip21": { "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "from": "github:Bitcoin-com/bip21", "requires": { - "qs": "^6.3.0" + "qs": "6.5.2" } }, "bip38": { @@ -970,13 +969,13 @@ "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", "integrity": "sha512-22KDak0RDyghFbR0Si7wyq9IgY423YzGYzWLpGeofH3DaolOQqjD3mNN08eFoubKlbyclOQKFwtONMv2SD9V3A==", "requires": { - "bigi": "^1.2.0", - "browserify-aes": "^1.0.1", - "bs58check": "<3.0.0", - "buffer-xor": "^1.0.2", - "create-hash": "^1.1.1", - "ecurve": "^1.0.0", - "scryptsy": "^2.0.0" + "bigi": "1.4.2", + "browserify-aes": "1.2.0", + "bs58check": "2.1.1", + "buffer-xor": "1.0.3", + "create-hash": "1.2.0", + "ecurve": "1.0.6", + "scryptsy": "2.0.0" } }, "bip39": { @@ -984,11 +983,11 @@ "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", "requires": { - "create-hash": "^1.1.0", - "pbkdf2": "^3.0.9", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "unorm": "^1.3.3" + "create-hash": "1.2.0", + "pbkdf2": "3.0.16", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2", + "unorm": "1.4.1" } }, "bip66": { @@ -996,7 +995,7 @@ "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "bip68": { @@ -1005,43 +1004,34 @@ "integrity": "sha512-O1htyufFTYy3EO0JkHg2CLykdXEtV2ssqw47Gq9A0WByp662xpJnMEB9m43LZjsSDjIAOozWRExlFQk2hlV1XQ==" }, "bitcoin-ops": { - "version": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", - "from": "github:Bitcoin-com/bitcoincash-ops" + "version": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" }, "bitcoin-txdecoder": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/bitcoin-txdecoder/-/bitcoin-txdecoder-0.0.3.tgz", "integrity": "sha512-pH/eF5hQ65y54U23mzuF42wEj9YWj4WKHAIj2il6b1+oRoi/oyM4Ti3e8nMD8ajippICmyquqbyCZKGq3i4W+A==", "requires": { - "bitcoinjs-lib": "3.3.*" + "bitcoinjs-lib": "3.3.2" } }, "bitcoincashjs-lib": { "version": "github:Bitcoin-com/bitcoincashjs-lib#0a7fc7cf23551503f57689db4c930b8136db954c", - "from": "github:Bitcoin-com/bitcoincashjs-lib", - "requires": { - "bech32": "^1.1.2", - "bigi": "^1.4.0", - "bip66": "^1.1.0", - "bitcoin-ops": "^1.3.0", - "bs58check": "^2.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.3", - "ecurve": "^1.0.0", - "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "^1.0.1", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "typeforce": "^1.11.3", - "varuint-bitcoin": "^1.0.4", - "wif": "^2.0.1" - }, - "dependencies": { - "bitcoin-ops": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz", - "integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow==" - } + "requires": { + "bech32": "1.1.3", + "bigi": "1.4.2", + "bip66": "1.1.5", + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", + "bs58check": "2.1.1", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ecurve": "1.0.6", + "merkle-lib": "2.0.10", + "pushdata-bitcoin": "1.0.1", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2", + "typeforce": "1.12.0", + "varuint-bitcoin": "1.1.0", + "wif": "2.0.6" } }, "bitcoinjs-lib": { @@ -1049,21 +1039,21 @@ "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-3.3.2.tgz", "integrity": "sha512-l5qqvbaK8wwtANPf6oEffykycg4383XgEYdia1rI7/JpGf1jfRWlOUCvx5TiTZS7kyIvY4j/UhIQ2urLsvGkzw==", "requires": { - "bech32": "^1.1.2", - "bigi": "^1.4.0", - "bip66": "^1.1.0", - "bitcoin-ops": "^1.3.0", - "bs58check": "^2.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.3", - "ecurve": "^1.0.0", - "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "^1.0.1", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "typeforce": "^1.11.3", - "varuint-bitcoin": "^1.0.4", - "wif": "^2.0.1" + "bech32": "1.1.3", + "bigi": "1.4.2", + "bip66": "1.1.5", + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", + "bs58check": "2.1.1", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ecurve": "1.0.6", + "merkle-lib": "2.0.10", + "pushdata-bitcoin": "1.0.1", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2", + "typeforce": "1.12.0", + "varuint-bitcoin": "1.1.0", + "wif": "2.0.6" } }, "bitcoinjs-message": { @@ -1071,11 +1061,11 @@ "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", "requires": { - "bs58check": "^2.0.2", - "buffer-equals": "^1.0.3", - "create-hash": "^1.1.2", - "secp256k1": "^3.0.1", - "varuint-bitcoin": "^1.0.1" + "bs58check": "2.1.1", + "buffer-equals": "1.0.4", + "create-hash": "1.2.0", + "secp256k1": "3.5.0", + "varuint-bitcoin": "1.1.0" } }, "blob": { @@ -1093,7 +1083,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } }, "brace-expansion": { @@ -1101,7 +1091,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -1111,9 +1101,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "optional": true, "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" } }, "brorand": { @@ -1131,12 +1121,12 @@ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "buffer-xor": "1.0.3", + "cipher-base": "1.0.4", + "create-hash": "1.2.0", + "evp_bytestokey": "1.0.3", + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "browserslist": { @@ -1144,8 +1134,8 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "requires": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" + "caniuse-lite": "1.0.30000865", + "electron-to-chromium": "1.3.52" } }, "bs58": { @@ -1153,7 +1143,7 @@ "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", "requires": { - "base-x": "^3.0.2" + "base-x": "3.0.4" } }, "bs58check": { @@ -1161,8 +1151,8 @@ "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.1.tgz", "integrity": "sha512-okRQiWc5FJuA2VOwQ1hB7Sf0MyEFg/EwRN12h4b8HrJoGkZ3xq1CGjkaAfYloLcZyqixQnO5mhPpN6IcHSplVg==", "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0" + "bs58": "4.0.1", + "create-hash": "1.2.0" } }, "buffer": { @@ -1170,8 +1160,8 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.1.0.tgz", "integrity": "sha512-YkIRgwsZwJWTnyQrsBTWefizHh+8GYj3kbL1BTiAQ/9pwpino0G7B2gp5tx/FUBqUlvtxV85KNR3mwfAtv15Yw==", "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" + "base64-js": "1.3.0", + "ieee754": "1.1.12" } }, "buffer-equals": { @@ -1204,20 +1194,20 @@ "resolved": "https://registry.npmjs.org/can-promise/-/can-promise-0.0.1.tgz", "integrity": "sha512-gzVrHyyrvgt0YpDm7pn04MQt8gjh0ZAhN4ZDyCRtGl6YnuuK6b4aiUTD7G52r9l4YNmxfTtEscb92vxtAlL6XQ==", "requires": { - "window-or-global": "^1.0.1" + "window-or-global": "1.0.1" } }, "caniuse-lite": { - "version": "1.0.30000855", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000855.tgz", - "integrity": "sha512-ajORrkXa5UYk62P5PK6ZmBraYOAOr9HWy+XxLwjDg8Ys/5KiSyarg8tIA32ZVqbFhtz67wyySXnU9imkh2ZT2w==" + "version": "1.0.30000865", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000865.tgz", + "integrity": "sha512-vs79o1mOSKRGv/1pSkp4EXgl4ZviWeYReXw60XfacPU64uQWZwJT6vZNmxRF9O+6zu71sJwMxLK5JXxbzuVrLw==" }, "cashaddrjs": { "version": "0.2.8", "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.2.8.tgz", "integrity": "sha512-oezXpKZRjavdRB1QjBamfHFDzYescGFn9dWMbijP4fgXrqMdBygOqaPNW4phf7zpRD4+oW7aaFfFklF72/szaA==", "requires": { - "big-integer": "^1.6.26" + "big-integer": "1.6.32" } }, "chai": { @@ -1226,12 +1216,12 @@ "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", "dev": true, "requires": { - "assertion-error": "^1.0.1", - "check-error": "^1.0.1", - "deep-eql": "^3.0.0", - "get-func-name": "^2.0.0", - "pathval": "^1.0.0", - "type-detect": "^4.0.0" + "assertion-error": "1.1.0", + "check-error": "1.0.2", + "deep-eql": "3.0.1", + "get-func-name": "2.0.0", + "pathval": "1.1.0", + "type-detect": "4.0.8" } }, "chalk": { @@ -1239,9 +1229,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.4.0" }, "dependencies": { "ansi-styles": { @@ -1249,7 +1239,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "color-convert": "^1.9.0" + "color-convert": "1.9.2" } }, "supports-color": { @@ -1257,7 +1247,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -1274,15 +1264,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "optional": true, "requires": { - "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" + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.2.4", + "glob-parent": "2.0.0", + "inherits": "2.0.1", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" } }, "cipher-base": { @@ -1290,8 +1280,8 @@ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "clear": { @@ -1304,9 +1294,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" }, "dependencies": { "string-width": { @@ -1314,9 +1304,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -1328,9 +1318,8 @@ }, "coininfo": { "version": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", - "from": "github:Bitcoin-com/coininfo", "requires": { - "safe-buffer": "^5.1.1" + "safe-buffer": "5.1.2" } }, "color-convert": { @@ -1347,9 +1336,9 @@ "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=" }, "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz", + "integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==" }, "component-bind": { "version": "1.0.0", @@ -1396,15 +1385,15 @@ "resolved": "https://registry.npmjs.org/corsproxy/-/corsproxy-1.5.0.tgz", "integrity": "sha1-KUge0hXuWxvWkkx5Fc+I/LE8EGE=", "requires": { - "ejs": "^2.3.3", - "good": "^6.3.0", - "good-console": "^5.0.3", - "h2o2": "^4.0.1", - "hapi": "^9.0.2", - "hapi-cors-headers": "^1.0.0", - "http-proxy": "~1.11", - "inert": "^3.0.1", - "vision": "^3.0.0" + "ejs": "2.6.1", + "good": "6.6.3", + "good-console": "5.3.2", + "h2o2": "4.0.2", + "hapi": "9.5.1", + "hapi-cors-headers": "1.0.3", + "http-proxy": "1.11.3", + "inert": "3.2.1", + "vision": "3.0.0" } }, "cp-file": { @@ -1412,11 +1401,11 @@ "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-5.0.0.tgz", "integrity": "sha1-vHAP0wyjLSTUbH+wK5kuQ1/FqXg=", "requires": { - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "nested-error-stacks": "^2.0.0", - "pify": "^3.0.0", - "safe-buffer": "^5.0.1" + "graceful-fs": "4.1.11", + "make-dir": "1.3.0", + "nested-error-stacks": "2.0.1", + "pify": "3.0.0", + "safe-buffer": "5.1.2" } }, "create-hash": { @@ -1424,11 +1413,11 @@ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" + "cipher-base": "1.0.4", + "inherits": "2.0.1", + "md5.js": "1.3.4", + "ripemd160": "2.0.2", + "sha.js": "2.4.11" } }, "create-hmac": { @@ -1436,12 +1425,12 @@ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "cipher-base": "1.0.4", + "create-hash": "1.2.0", + "inherits": "2.0.1", + "ripemd160": "2.0.2", + "safe-buffer": "5.1.2", + "sha.js": "2.4.11" } }, "cross-spawn": { @@ -1449,9 +1438,9 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.1" }, "dependencies": { "lru-cache": { @@ -1459,8 +1448,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } } } @@ -1484,7 +1473,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "^4.0.0" + "type-detect": "4.0.8" } }, "detect-indent": { @@ -1492,7 +1481,7 @@ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "diff": { @@ -1510,9 +1499,9 @@ "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", "requires": { - "browserify-aes": "^1.0.6", - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4" + "browserify-aes": "1.2.0", + "create-hash": "1.2.0", + "create-hmac": "1.1.7" } }, "ecurve": { @@ -1520,8 +1509,8 @@ "resolved": "https://registry.npmjs.org/ecurve/-/ecurve-1.0.6.tgz", "integrity": "sha512-/BzEjNfiSuB7jIWKcS/z8FK9jNjmEWvUV2YZ4RLSmcDtP7Lq0m6FvDuSnJpBlDpGRpfRQeTLGLBI8H+kEv0r+w==", "requires": { - "bigi": "^1.1.0", - "safe-buffer": "^5.0.1" + "bigi": "1.4.2", + "safe-buffer": "5.1.2" } }, "ejs": { @@ -1530,22 +1519,22 @@ "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==" }, "electron-to-chromium": { - "version": "1.3.48", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.48.tgz", - "integrity": "sha1-07DYWTgUBE4JLs4hCPw6ya6kuQA=" + "version": "1.3.52", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.52.tgz", + "integrity": "sha1-0tnxJwuko7lnuDHEDvcftNmrXOA=" }, "elliptic": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" + "bn.js": "4.11.8", + "brorand": "1.1.0", + "hash.js": "1.1.5", + "hmac-drbg": "1.0.1", + "inherits": "2.0.1", + "minimalistic-assert": "1.0.1", + "minimalistic-crypto-utils": "1.0.1" } }, "engine.io": { @@ -1553,12 +1542,12 @@ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.0.tgz", "integrity": "sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==", "requires": { - "accepts": "~1.3.4", + "accepts": "1.3.5", "base64id": "1.0.0", "cookie": "0.3.1", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.0", - "ws": "~3.3.1" + "debug": "3.1.0", + "engine.io-parser": "2.1.2", + "ws": "3.3.3" } }, "engine.io-client": { @@ -1568,14 +1557,14 @@ "requires": { "component-emitter": "1.2.1", "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.1", + "debug": "3.1.0", + "engine.io-parser": "2.1.2", "has-cors": "1.1.0", "indexof": "0.0.1", "parseqs": "0.0.5", "parseuri": "0.0.5", - "ws": "~3.3.1", - "xmlhttprequest-ssl": "~1.5.4", + "ws": "3.3.3", + "xmlhttprequest-ssl": "1.5.5", "yeast": "0.1.2" } }, @@ -1585,18 +1574,18 @@ "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==", "requires": { "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", + "arraybuffer.slice": "0.0.7", "base64-arraybuffer": "0.1.5", "blob": "0.0.4", - "has-binary2": "~1.0.2" + "has-binary2": "1.0.3" } }, "error-ex": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "escape-string-regexp": { @@ -1619,8 +1608,8 @@ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "md5.js": "1.3.4", + "safe-buffer": "5.1.2" } }, "execa": { @@ -1628,13 +1617,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "requires": { - "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" + "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" } }, "expand-brackets": { @@ -1643,7 +1632,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "optional": true, "requires": { - "is-posix-bracket": "^0.1.0" + "is-posix-bracket": "0.1.1" } }, "expand-range": { @@ -1652,7 +1641,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "optional": true, "requires": { - "fill-range": "^2.1.0" + "fill-range": "2.2.4" } }, "extglob": { @@ -1661,7 +1650,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "optional": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "figlet": { @@ -1681,11 +1670,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "optional": true, "requires": { - "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": "2.1.0", + "isobject": "2.1.0", + "randomatic": "3.0.0", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" } }, "find-up": { @@ -1693,7 +1682,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "flow-bin": { @@ -1703,11 +1692,11 @@ "dev": true }, "follow-redirects": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.0.tgz", - "integrity": "sha512-fdrt472/9qQ6Kgjvb935ig6vJCuofpBUD14f9Vb+SLlm7xIe4Qva5gey8EKtv8lp7ahE1wilg3xL1znpVGtZIA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.1.tgz", + "integrity": "sha512-v9GI1hpaqq1ZZR6pBD1+kI7O24PhDvNGNodjS3MdcEqyrahCp8zbtpv+2B/krUnSmUH80lbAS7MrdeK5IylgKg==", "requires": { - "debug": "^3.1.0" + "debug": "3.1.0" } }, "for-in": { @@ -1722,7 +1711,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "optional": true, "requires": { - "for-in": "^1.0.1" + "for-in": "1.0.2" } }, "fs-readdir-recursive": { @@ -1741,8 +1730,8 @@ "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", "optional": true, "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" + "nan": "2.10.0", + "node-pre-gyp": "0.10.0" }, "dependencies": { "abbrev": { @@ -1764,8 +1753,8 @@ "bundled": true, "optional": true, "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "delegates": "1.0.0", + "readable-stream": "2.3.6" } }, "balanced-match": { @@ -1776,7 +1765,7 @@ "version": "1.1.11", "bundled": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -1830,7 +1819,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.2.4" } }, "fs.realpath": { @@ -1843,14 +1832,14 @@ "bundled": true, "optional": true, "requires": { - "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" + "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" } }, "glob": { @@ -1858,12 +1847,12 @@ "bundled": true, "optional": true, "requires": { - "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" + "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" } }, "has-unicode": { @@ -1876,7 +1865,7 @@ "bundled": true, "optional": true, "requires": { - "safer-buffer": "^2.1.0" + "safer-buffer": "2.1.2" } }, "ignore-walk": { @@ -1884,7 +1873,7 @@ "bundled": true, "optional": true, "requires": { - "minimatch": "^3.0.4" + "minimatch": "3.0.4" } }, "inflight": { @@ -1892,8 +1881,8 @@ "bundled": true, "optional": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -1909,7 +1898,7 @@ "version": "1.0.0", "bundled": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "isarray": { @@ -1921,7 +1910,7 @@ "version": "3.0.4", "bundled": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -1932,8 +1921,8 @@ "version": "2.2.4", "bundled": true, "requires": { - "safe-buffer": "^5.1.1", - "yallist": "^3.0.0" + "safe-buffer": "5.1.1", + "yallist": "3.0.2" } }, "minizlib": { @@ -1941,7 +1930,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.2.4" } }, "mkdirp": { @@ -1961,9 +1950,9 @@ "bundled": true, "optional": true, "requires": { - "debug": "^2.1.2", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" + "debug": "2.6.9", + "iconv-lite": "0.4.21", + "sax": "1.2.4" } }, "node-pre-gyp": { @@ -1971,16 +1960,16 @@ "bundled": 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" + "detect-libc": "1.0.3", + "mkdirp": "0.5.1", + "needle": "2.2.0", + "nopt": "4.0.1", + "npm-packlist": "1.1.10", + "npmlog": "4.1.2", + "rc": "1.2.7", + "rimraf": "2.6.2", + "semver": "5.5.0", + "tar": "4.4.1" } }, "nopt": { @@ -1988,8 +1977,8 @@ "bundled": true, "optional": true, "requires": { - "abbrev": "1", - "osenv": "^0.1.4" + "abbrev": "1.1.1", + "osenv": "0.1.5" } }, "npm-bundled": { @@ -2002,8 +1991,8 @@ "bundled": true, "optional": true, "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" + "ignore-walk": "3.0.1", + "npm-bundled": "1.0.3" } }, "npmlog": { @@ -2011,10 +2000,10 @@ "bundled": 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" + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" } }, "number-is-nan": { @@ -2030,7 +2019,7 @@ "version": "1.4.0", "bundled": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "os-homedir": { @@ -2048,8 +2037,8 @@ "bundled": true, "optional": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "path-is-absolute": { @@ -2067,10 +2056,10 @@ "bundled": true, "optional": true, "requires": { - "deep-extend": "^0.5.1", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" + "deep-extend": "0.5.1", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" }, "dependencies": { "minimist": { @@ -2085,13 +2074,13 @@ "bundled": true, "optional": true, "requires": { - "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" + "core-util-is": "1.0.2", + "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.2" } }, "rimraf": { @@ -2099,7 +2088,7 @@ "bundled": true, "optional": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "safe-buffer": { @@ -2135,9 +2124,9 @@ "version": "1.0.2", "bundled": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "string_decoder": { @@ -2145,14 +2134,14 @@ "bundled": true, "optional": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.1" } }, "strip-ansi": { "version": "3.0.1", "bundled": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-json-comments": { @@ -2165,13 +2154,13 @@ "bundled": true, "optional": true, "requires": { - "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" + "chownr": "1.0.1", + "fs-minipass": "1.2.5", + "minipass": "2.2.4", + "minizlib": "1.1.0", + "mkdirp": "0.5.1", + "safe-buffer": "5.1.1", + "yallist": "3.0.2" } }, "util-deprecate": { @@ -2184,7 +2173,7 @@ "bundled": true, "optional": true, "requires": { - "string-width": "^1.0.2" + "string-width": "1.0.2" } }, "wrappy": { @@ -2198,9 +2187,9 @@ } }, "get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" }, "get-func-name": { "version": "2.0.0", @@ -2223,12 +2212,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { - "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" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.1", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "glob-base": { @@ -2237,8 +2226,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "optional": true, "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" + "glob-parent": "2.0.0", + "is-glob": "2.0.1" } }, "glob-parent": { @@ -2246,7 +2235,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "requires": { - "is-glob": "^2.0.0" + "is-glob": "2.0.1" } }, "globals": { @@ -2259,11 +2248,11 @@ "resolved": "https://registry.npmjs.org/good/-/good-6.6.3.tgz", "integrity": "sha1-B9zIEfwSuDmKnDMezdM37OWogDU=", "requires": { - "hoek": "2.x.x", - "items": "1.x.x", - "joi": "6.x.x", + "hoek": "2.16.3", + "items": "1.1.1", + "joi": "6.10.1", "traverse": "0.6.6", - "wreck": "6.x.x" + "wreck": "6.3.0" } }, "good-console": { @@ -2271,11 +2260,11 @@ "resolved": "https://registry.npmjs.org/good-console/-/good-console-5.3.2.tgz", "integrity": "sha1-f8c9RDfiWsToODJB5GaWy6N0ia0=", "requires": { - "good-squeeze": "2.x.x", - "hoek": "2.x.x", - "json-stringify-safe": "5.0.x", - "moment": "2.11.x", - "through2": "0.6.x" + "good-squeeze": "2.1.0", + "hoek": "2.16.3", + "json-stringify-safe": "5.0.1", + "moment": "2.11.2", + "through2": "0.6.5" }, "dependencies": { "moment": { @@ -2290,8 +2279,8 @@ "resolved": "https://registry.npmjs.org/good-squeeze/-/good-squeeze-2.1.0.tgz", "integrity": "sha1-mc7pHSbVkWmKiZwo6TELzzxq4oo=", "requires": { - "hoek": "2.x.x", - "json-stringify-safe": "5.0.x" + "hoek": "2.16.3", + "json-stringify-safe": "5.0.1" } }, "graceful-fs": { @@ -2309,10 +2298,10 @@ "resolved": "https://registry.npmjs.org/h2o2/-/h2o2-4.0.2.tgz", "integrity": "sha1-h8uWDcD1tJWWT6koJT5s8TuiJIY=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x", - "joi": "6.x.x", - "wreck": "6.x.x" + "boom": "2.10.1", + "hoek": "2.16.3", + "joi": "6.10.1", + "wreck": "6.3.0" } }, "hapi": { @@ -2320,26 +2309,26 @@ "resolved": "https://registry.npmjs.org/hapi/-/hapi-9.5.1.tgz", "integrity": "sha1-jYyhPnwiCweEZemgp2QPJqWvuFU=", "requires": { - "accept": "1.x.x", - "ammo": "1.x.x", - "boom": "^2.5.x", - "call": "2.x.x", - "catbox": "6.x.x", - "catbox-memory": "1.x.x", - "cryptiles": "2.x.x", - "heavy": "3.x.x", - "hoek": "^2.14.x", - "iron": "2.x.x", - "items": "1.x.x", - "joi": "^6.8.1", - "kilt": "^1.1.x", - "mimos": "2.x.x", - "peekaboo": "1.x.x", - "qs": "4.x.x", - "shot": "^1.7.x", - "statehood": "2.x.x", - "subtext": "2.x.x", - "topo": "^1.1.x" + "accept": "1.1.0", + "ammo": "1.0.1", + "boom": "2.9.0", + "call": "2.0.2", + "catbox": "6.0.0", + "catbox-memory": "1.1.2", + "cryptiles": "2.0.5", + "heavy": "3.0.1", + "hoek": "2.16.3", + "iron": "2.1.3", + "items": "1.1.0", + "joi": "6.8.1", + "kilt": "1.1.1", + "mimos": "2.0.2", + "peekaboo": "1.0.0", + "qs": "4.0.0", + "shot": "1.7.0", + "statehood": "2.1.1", + "subtext": "2.0.0", + "topo": "1.1.0" }, "dependencies": { "accept": { @@ -2347,8 +2336,8 @@ "resolved": "https://registry.npmjs.org/accept/-/accept-1.1.0.tgz", "integrity": "sha1-x7VWfJmt5Kx8k38qm8HFZhYKMLU=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x" + "boom": "2.9.0", + "hoek": "2.16.3" } }, "ammo": { @@ -2356,8 +2345,8 @@ "resolved": "https://registry.npmjs.org/ammo/-/ammo-1.0.1.tgz", "integrity": "sha1-j4rdFM1Jve3jurOj4OvK8h0D3os=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x" + "boom": "2.9.0", + "hoek": "2.16.3" } }, "boom": { @@ -2365,7 +2354,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-2.9.0.tgz", "integrity": "sha1-pUt/0v7kd9NRv543FoDL6mfxJxU=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } }, "call": { @@ -2373,8 +2362,8 @@ "resolved": "https://registry.npmjs.org/call/-/call-2.0.2.tgz", "integrity": "sha1-nJgxq9B2lIb97oOkEUm4KbMtBsA=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x" + "boom": "2.9.0", + "hoek": "2.16.3" } }, "catbox": { @@ -2382,9 +2371,9 @@ "resolved": "https://registry.npmjs.org/catbox/-/catbox-6.0.0.tgz", "integrity": "sha1-6i8pT6Bemvx+IhDTI/XeU6OAQ+c=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x", - "joi": "6.x.x" + "boom": "2.9.0", + "hoek": "2.16.3", + "joi": "6.8.1" } }, "catbox-memory": { @@ -2392,7 +2381,7 @@ "resolved": "https://registry.npmjs.org/catbox-memory/-/catbox-memory-1.1.2.tgz", "integrity": "sha1-M8kYOjKzGUXuikhNDjw8u4Lq7Bo=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } }, "cryptiles": { @@ -2400,7 +2389,7 @@ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "requires": { - "boom": "2.x.x" + "boom": "2.9.0" } }, "heavy": { @@ -2408,9 +2397,9 @@ "resolved": "https://registry.npmjs.org/heavy/-/heavy-3.0.1.tgz", "integrity": "sha1-8oZ+bjUVv4OrGoux5z5dKOhas80=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x", - "joi": "6.x.x" + "boom": "2.9.0", + "hoek": "2.16.3", + "joi": "6.8.1" } }, "hoek": { @@ -2423,9 +2412,9 @@ "resolved": "https://registry.npmjs.org/iron/-/iron-2.1.3.tgz", "integrity": "sha1-cbjzV9gGquA6kKdFuaqv/sfi3eQ=", "requires": { - "boom": "2.x.x", - "cryptiles": "2.x.x", - "hoek": "2.x.x" + "boom": "2.9.0", + "cryptiles": "2.0.5", + "hoek": "2.16.3" } }, "items": { @@ -2438,10 +2427,10 @@ "resolved": "https://registry.npmjs.org/joi/-/joi-6.8.1.tgz", "integrity": "sha1-g94tYCj8DNXRYi8/V0fKCCtHjv8=", "requires": { - "hoek": "2.x.x", - "isemail": "1.x.x", - "moment": "2.x.x", - "topo": "1.x.x" + "hoek": "2.16.3", + "isemail": "1.2.0", + "moment": "2.10.6", + "topo": "1.1.0" }, "dependencies": { "isemail": { @@ -2461,7 +2450,7 @@ "resolved": "https://registry.npmjs.org/kilt/-/kilt-1.1.1.tgz", "integrity": "sha1-d7SmFjyn+lshN6iMFzNCFuwj1ds=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } }, "mimos": { @@ -2469,8 +2458,8 @@ "resolved": "https://registry.npmjs.org/mimos/-/mimos-2.0.2.tgz", "integrity": "sha1-wyQXF+dblZkr54esfdbbGptTmx4=", "requires": { - "hoek": "2.x.x", - "mime-db": "1.x.x" + "hoek": "2.16.3", + "mime-db": "1.19.0" }, "dependencies": { "mime-db": { @@ -2495,7 +2484,7 @@ "resolved": "https://registry.npmjs.org/shot/-/shot-1.7.0.tgz", "integrity": "sha1-8jKdfvM6/PA9RM5Bq66BSK4XBTI=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } }, "statehood": { @@ -2503,12 +2492,12 @@ "resolved": "https://registry.npmjs.org/statehood/-/statehood-2.1.1.tgz", "integrity": "sha1-AfFwtmxeklqvZ5qdMiulkYb8AAk=", "requires": { - "boom": "2.x.x", - "cryptiles": "2.x.x", - "hoek": "2.x.x", - "iron": "2.x.x", - "items": "1.x.x", - "joi": "6.x.x" + "boom": "2.9.0", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "iron": "2.1.3", + "items": "1.1.0", + "joi": "6.8.1" } }, "subtext": { @@ -2516,12 +2505,12 @@ "resolved": "https://registry.npmjs.org/subtext/-/subtext-2.0.0.tgz", "integrity": "sha1-I5lQ6SCBQ/FUirJeHJV5vbaNiU4=", "requires": { - "boom": "2.x.x", - "content": "1.x.x", - "hoek": "2.x.x", - "pez": "1.x.x", - "qs": "4.x.x", - "wreck": "6.x.x" + "boom": "2.9.0", + "content": "1.0.2", + "hoek": "2.16.3", + "pez": "1.0.0", + "qs": "4.0.0", + "wreck": "6.2.0" }, "dependencies": { "content": { @@ -2529,8 +2518,8 @@ "resolved": "https://registry.npmjs.org/content/-/content-1.0.2.tgz", "integrity": "sha1-y37fMq/vF8SKz9vSH/mMIzFa6CQ=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x" + "boom": "2.9.0", + "hoek": "2.16.3" } }, "pez": { @@ -2538,11 +2527,11 @@ "resolved": "https://registry.npmjs.org/pez/-/pez-1.0.0.tgz", "integrity": "sha1-hEMYpc5wku7d/6KV4YB5rHefoBg=", "requires": { - "b64": "2.x.x", - "boom": "2.x.x", - "content": "1.x.x", - "hoek": "2.x.x", - "nigel": "1.x.x" + "b64": "2.0.1", + "boom": "2.9.0", + "content": "1.0.2", + "hoek": "2.16.3", + "nigel": "1.0.1" }, "dependencies": { "b64": { @@ -2550,7 +2539,7 @@ "resolved": "https://registry.npmjs.org/b64/-/b64-2.0.1.tgz", "integrity": "sha1-0IwQcZcZ/x/htTKuSSaUCc4UnOk=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } }, "nigel": { @@ -2558,8 +2547,8 @@ "resolved": "https://registry.npmjs.org/nigel/-/nigel-1.0.1.tgz", "integrity": "sha1-RjmJr4gSePuqHTzJOCPb0XtDYKE=", "requires": { - "hoek": "2.x.x", - "vise": "1.x.x" + "hoek": "2.16.3", + "vise": "1.0.0" }, "dependencies": { "vise": { @@ -2567,7 +2556,7 @@ "resolved": "https://registry.npmjs.org/vise/-/vise-1.0.0.tgz", "integrity": "sha1-KDRb5N5aNB4V/SgW/Z6j5zA+jfM=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } } } @@ -2579,8 +2568,8 @@ "resolved": "https://registry.npmjs.org/wreck/-/wreck-6.2.0.tgz", "integrity": "sha1-8Jkx7UcbZL6Yjj57u4gjTa4i0iI=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x" + "boom": "2.9.0", + "hoek": "2.16.3" } } } @@ -2590,7 +2579,7 @@ "resolved": "https://registry.npmjs.org/topo/-/topo-1.1.0.tgz", "integrity": "sha1-6ddRYV0buH3IZdsYL6HKCl71NtU=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } } } @@ -2605,7 +2594,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "has-binary2": { @@ -2638,17 +2627,17 @@ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "hash.js": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.4.tgz", - "integrity": "sha512-A6RlQvvZEtFS5fLU43IDu0QUmBy+fDO9VMdTXvufKwIkt/rFfvICAViCax5fbDO4zdNzaC3/27ZhKUok5bAJyw==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", + "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1" }, "dependencies": { "inherits": { @@ -2668,9 +2657,9 @@ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "hash.js": "1.1.5", + "minimalistic-assert": "1.0.1", + "minimalistic-crypto-utils": "1.0.1" } }, "hoek": { @@ -2683,22 +2672,22 @@ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "hosted-git-info": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", - "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==" + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" }, "http-proxy": { "version": "1.11.3", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.11.3.tgz", "integrity": "sha1-GRXciIdR4qa/PCq/yxgI+obHI1M=", "requires": { - "eventemitter3": "1.x.x", - "requires-port": "0.x.x" + "eventemitter3": "1.2.0", + "requires-port": "0.0.1" } }, "ieee754": { @@ -2716,12 +2705,12 @@ "resolved": "https://registry.npmjs.org/inert/-/inert-3.2.1.tgz", "integrity": "sha1-xJZcXhh87z2yxChy5S51cAh2Qn0=", "requires": { - "ammo": "1.x.x", - "boom": "2.x.x", - "hoek": "2.x.x", - "items": "1.x.x", - "joi": "^6.7.x", - "lru-cache": "2.7.x" + "ammo": "1.0.1", + "boom": "2.10.1", + "hoek": "2.16.3", + "items": "1.1.1", + "joi": "6.10.1", + "lru-cache": "2.7.3" } }, "inflight": { @@ -2729,8 +2718,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -2748,7 +2737,7 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "loose-envify": "^1.0.0" + "loose-envify": "1.4.0" } }, "invert-kv": { @@ -2767,7 +2756,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "optional": true, "requires": { - "binary-extensions": "^1.0.0" + "binary-extensions": "1.11.0" } }, "is-buffer": { @@ -2780,7 +2769,7 @@ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-dotfile": { @@ -2795,7 +2784,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "optional": true, "requires": { - "is-primitive": "^2.0.0" + "is-primitive": "2.0.0" } }, "is-extendable": { @@ -2814,7 +2803,7 @@ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { @@ -2822,7 +2811,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.0" + "number-is-nan": "1.0.1" } }, "is-glob": { @@ -2830,7 +2819,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "is-number": { @@ -2839,7 +2828,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "optional": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-posix-bracket": { @@ -2893,10 +2882,10 @@ "resolved": "https://registry.npmjs.org/joi/-/joi-6.10.1.tgz", "integrity": "sha1-TVDDGAeRIgAP5fFq8f+OGRe3fgY=", "requires": { - "hoek": "2.x.x", - "isemail": "1.x.x", - "moment": "2.x.x", - "topo": "1.x.x" + "hoek": "2.16.3", + "isemail": "1.2.0", + "moment": "2.22.2", + "topo": "1.1.0" } }, "js-tokens": { @@ -2930,7 +2919,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "lcid": { @@ -2938,7 +2927,7 @@ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "load-json-file": { @@ -2946,10 +2935,10 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" }, "dependencies": { "pify": { @@ -2964,8 +2953,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "2.0.0", + "path-exists": "3.0.0" } }, "lodash": { @@ -2985,17 +2974,17 @@ "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=" }, "lolex": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.7.0.tgz", - "integrity": "sha512-uJkH2e0BVfU5KOJUevbTOtpDduooSarH5PopO+LfM/vZf8Z9sJzODqKev804JYM2i++ktJfUmC1le4LwFQ1VMg==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.7.1.tgz", + "integrity": "sha512-Oo2Si3RMKV3+lV5MsSWplDQFoTClz/24S0MMHYcgGWWmFXr6TMlqcqk/l1GtH+d5wLBwNRiqGnwDRMirtFalJw==", "dev": true }, "loose-envify": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { - "js-tokens": "^3.0.0" + "js-tokens": "3.0.2" } }, "lru-cache": { @@ -3008,7 +2997,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "math-random": { @@ -3022,8 +3011,8 @@ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "hash-base": "3.0.4", + "inherits": "2.0.1" } }, "mem": { @@ -3031,7 +3020,7 @@ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "merkle-lib": { @@ -3045,19 +3034,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "optional": true, "requires": { - "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" + "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" } }, "mime-db": { @@ -3070,7 +3059,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", "requires": { - "mime-db": "~1.35.0" + "mime-db": "1.35.0" } }, "mimic-fn": { @@ -3093,7 +3082,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -3127,12 +3116,17 @@ "supports-color": "5.4.0" }, "dependencies": { + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" + }, "supports-color": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -3163,16 +3157,16 @@ "integrity": "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==" }, "nise": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.1.tgz", - "integrity": "sha512-9JX3YwoIt3kS237scmSSOpEv7vCukVzLfwK0I0XhocDSHUANid8ZHnLEULbbSkfeMn98B2y5kphIWzZUylESRQ==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.2.tgz", + "integrity": "sha512-BxH/DxoQYYdhKgVAfqVy4pzXRZELHOIewzoesxpjYvpU+7YOalQhGNPf7wAx8pLrTNPrHRDlLOkAl8UI0ZpXjw==", "dev": true, "requires": { - "@sinonjs/formatio": "^2.0.0", - "just-extend": "^1.1.27", - "lolex": "^2.3.2", - "path-to-regexp": "^1.7.0", - "text-encoding": "^0.6.4" + "@sinonjs/formatio": "2.0.0", + "just-extend": "1.1.27", + "lolex": "2.7.1", + "path-to-regexp": "1.7.0", + "text-encoding": "0.6.4" } }, "node-cmd": { @@ -3185,7 +3179,7 @@ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", "requires": { - "lodash.toarray": "^4.4.0" + "lodash.toarray": "4.4.0" } }, "nopt": { @@ -3193,7 +3187,7 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "requires": { - "abbrev": "1" + "abbrev": "1.1.1" } }, "normalize-package-data": { @@ -3201,10 +3195,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.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.7.1", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" } }, "normalize-path": { @@ -3212,7 +3206,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { - "remove-trailing-separator": "^1.0.1" + "remove-trailing-separator": "1.1.0" } }, "npm-run-path": { @@ -3220,7 +3214,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { @@ -3234,33 +3228,33 @@ "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", "dev": true, "requires": { - "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^1.0.0", - "convert-source-map": "^1.5.1", - "debug-log": "^1.0.1", - "default-require-extensions": "^1.0.0", - "find-cache-dir": "^0.1.1", - "find-up": "^2.1.0", - "foreground-child": "^1.5.3", - "glob": "^7.0.6", - "istanbul-lib-coverage": "^1.1.2", - "istanbul-lib-hook": "^1.1.0", - "istanbul-lib-instrument": "^1.10.0", - "istanbul-lib-report": "^1.1.3", - "istanbul-lib-source-maps": "^1.2.3", - "istanbul-reports": "^1.4.0", - "md5-hex": "^1.2.0", - "merge-source-map": "^1.1.0", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.0", - "resolve-from": "^2.0.0", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.1", - "spawn-wrap": "^1.4.2", - "test-exclude": "^4.2.0", + "archy": "1.0.0", + "arrify": "1.0.1", + "caching-transform": "1.0.1", + "convert-source-map": "1.5.1", + "debug-log": "1.0.1", + "default-require-extensions": "1.0.0", + "find-cache-dir": "0.1.1", + "find-up": "2.1.0", + "foreground-child": "1.5.6", + "glob": "7.1.2", + "istanbul-lib-coverage": "1.2.0", + "istanbul-lib-hook": "1.1.0", + "istanbul-lib-instrument": "1.10.1", + "istanbul-lib-report": "1.1.3", + "istanbul-lib-source-maps": "1.2.3", + "istanbul-reports": "1.4.0", + "md5-hex": "1.3.0", + "merge-source-map": "1.1.0", + "micromatch": "3.1.10", + "mkdirp": "0.5.1", + "resolve-from": "2.0.0", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "spawn-wrap": "1.4.2", + "test-exclude": "4.2.1", "yargs": "11.1.0", - "yargs-parser": "^8.0.0" + "yargs-parser": "8.1.0" }, "dependencies": { "align-text": { @@ -3268,9 +3262,9 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" } }, "amdefine": { @@ -3293,7 +3287,7 @@ "bundled": true, "dev": true, "requires": { - "default-require-extensions": "^1.0.0" + "default-require-extensions": "1.0.0" } }, "archy": { @@ -3346,9 +3340,9 @@ "bundled": true, "dev": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" } }, "babel-generator": { @@ -3356,14 +3350,14 @@ "bundled": true, "dev": true, "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.10", + "source-map": "0.5.7", + "trim-right": "1.0.1" } }, "babel-messages": { @@ -3371,7 +3365,7 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-runtime": { @@ -3379,8 +3373,8 @@ "bundled": true, "dev": true, "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "core-js": "2.5.6", + "regenerator-runtime": "0.11.1" } }, "babel-template": { @@ -3388,11 +3382,11 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.10" } }, "babel-traverse": { @@ -3400,15 +3394,15 @@ "bundled": true, "dev": true, "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.4", + "lodash": "4.17.10" } }, "babel-types": { @@ -3416,10 +3410,10 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.10", + "to-fast-properties": "1.0.3" } }, "babylon": { @@ -3437,13 +3431,13 @@ "bundled": true, "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.2.0", - "pascalcase": "^0.1.1" + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" }, "dependencies": { "define-property": { @@ -3451,7 +3445,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -3459,7 +3453,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -3467,7 +3461,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -3475,9 +3469,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -3497,7 +3491,7 @@ "bundled": true, "dev": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -3506,16 +3500,16 @@ "bundled": true, "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -3523,7 +3517,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -3538,15 +3532,15 @@ "bundled": true, "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" }, "dependencies": { "isobject": { @@ -3561,9 +3555,9 @@ "bundled": true, "dev": true, "requires": { - "md5-hex": "^1.2.0", - "mkdirp": "^0.5.1", - "write-file-atomic": "^1.1.4" + "md5-hex": "1.3.0", + "mkdirp": "0.5.1", + "write-file-atomic": "1.3.4" } }, "camelcase": { @@ -3578,8 +3572,8 @@ "dev": true, "optional": true, "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" + "align-text": "0.1.4", + "lazy-cache": "1.0.4" } }, "chalk": { @@ -3587,11 +3581,11 @@ "bundled": true, "dev": true, "requires": { - "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" + "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" } }, "class-utils": { @@ -3599,10 +3593,10 @@ "bundled": true, "dev": true, "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" }, "dependencies": { "define-property": { @@ -3610,7 +3604,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "isobject": { @@ -3626,8 +3620,8 @@ "dev": true, "optional": true, "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", + "center-align": "0.1.3", + "right-align": "0.1.3", "wordwrap": "0.0.2" }, "dependencies": { @@ -3649,8 +3643,8 @@ "bundled": true, "dev": true, "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "map-visit": "1.0.0", + "object-visit": "1.0.1" } }, "commondir": { @@ -3688,8 +3682,8 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "which": "1.3.0" } }, "debug": { @@ -3720,7 +3714,7 @@ "bundled": true, "dev": true, "requires": { - "strip-bom": "^2.0.0" + "strip-bom": "2.0.0" } }, "define-property": { @@ -3728,8 +3722,8 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "is-descriptor": "1.0.2", + "isobject": "3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -3737,7 +3731,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -3745,7 +3739,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -3753,9 +3747,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -3775,7 +3769,7 @@ "bundled": true, "dev": true, "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "error-ex": { @@ -3783,7 +3777,7 @@ "bundled": true, "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "escape-string-regexp": { @@ -3801,13 +3795,13 @@ "bundled": true, "dev": true, "requires": { - "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" + "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" }, "dependencies": { "cross-spawn": { @@ -3815,9 +3809,9 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.0" } } } @@ -3827,13 +3821,13 @@ "bundled": true, "dev": true, "requires": { - "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" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -3841,7 +3835,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -3849,7 +3843,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -3859,8 +3853,8 @@ "bundled": true, "dev": true, "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -3868,7 +3862,7 @@ "bundled": true, "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -3878,14 +3872,14 @@ "bundled": true, "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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -3893,7 +3887,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -3901,7 +3895,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -3909,7 +3903,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -3917,7 +3911,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -3925,9 +3919,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "kind-of": { @@ -3942,10 +3936,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -3953,7 +3947,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -3963,9 +3957,9 @@ "bundled": true, "dev": true, "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" + "commondir": "1.0.1", + "mkdirp": "0.5.1", + "pkg-dir": "1.0.0" } }, "find-up": { @@ -3973,7 +3967,7 @@ "bundled": true, "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "for-in": { @@ -3986,8 +3980,8 @@ "bundled": true, "dev": true, "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" + "cross-spawn": "4.0.2", + "signal-exit": "3.0.2" } }, "fragment-cache": { @@ -3995,7 +3989,7 @@ "bundled": true, "dev": true, "requires": { - "map-cache": "^0.2.2" + "map-cache": "0.2.2" } }, "fs.realpath": { @@ -4023,12 +4017,12 @@ "bundled": true, "dev": true, "requires": { - "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" + "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" } }, "globals": { @@ -4046,10 +4040,10 @@ "bundled": true, "dev": true, "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" }, "dependencies": { "source-map": { @@ -4057,7 +4051,7 @@ "bundled": true, "dev": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } @@ -4067,7 +4061,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "has-flag": { @@ -4080,9 +4074,9 @@ "bundled": true, "dev": true, "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -4097,8 +4091,8 @@ "bundled": true, "dev": true, "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { "is-number": { @@ -4106,7 +4100,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -4114,7 +4108,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -4124,7 +4118,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -4144,8 +4138,8 @@ "bundled": true, "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -4158,7 +4152,7 @@ "bundled": true, "dev": true, "requires": { - "loose-envify": "^1.0.0" + "loose-envify": "1.3.1" } }, "invert-kv": { @@ -4171,7 +4165,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-arrayish": { @@ -4189,7 +4183,7 @@ "bundled": true, "dev": true, "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-data-descriptor": { @@ -4197,7 +4191,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-descriptor": { @@ -4205,9 +4199,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" }, "dependencies": { "kind-of": { @@ -4227,7 +4221,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { @@ -4240,7 +4234,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-odd": { @@ -4248,7 +4242,7 @@ "bundled": true, "dev": true, "requires": { - "is-number": "^4.0.0" + "is-number": "4.0.0" }, "dependencies": { "is-number": { @@ -4263,7 +4257,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -4313,7 +4307,7 @@ "bundled": true, "dev": true, "requires": { - "append-transform": "^0.4.0" + "append-transform": "0.4.0" } }, "istanbul-lib-instrument": { @@ -4321,13 +4315,13 @@ "bundled": true, "dev": true, "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.2.0", - "semver": "^5.3.0" + "babel-generator": "6.26.1", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "istanbul-lib-coverage": "1.2.0", + "semver": "5.5.0" } }, "istanbul-lib-report": { @@ -4335,10 +4329,10 @@ "bundled": true, "dev": true, "requires": { - "istanbul-lib-coverage": "^1.1.2", - "mkdirp": "^0.5.1", - "path-parse": "^1.0.5", - "supports-color": "^3.1.2" + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" }, "dependencies": { "supports-color": { @@ -4346,7 +4340,7 @@ "bundled": true, "dev": true, "requires": { - "has-flag": "^1.0.0" + "has-flag": "1.0.0" } } } @@ -4356,11 +4350,11 @@ "bundled": true, "dev": true, "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^1.1.2", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.1", - "source-map": "^0.5.3" + "debug": "3.1.0", + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" }, "dependencies": { "debug": { @@ -4378,7 +4372,7 @@ "bundled": true, "dev": true, "requires": { - "handlebars": "^4.0.3" + "handlebars": "4.0.11" } }, "js-tokens": { @@ -4396,7 +4390,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "lazy-cache": { @@ -4410,7 +4404,7 @@ "bundled": true, "dev": true, "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "load-json-file": { @@ -4418,11 +4412,11 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" } }, "locate-path": { @@ -4430,8 +4424,8 @@ "bundled": true, "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": { @@ -4456,7 +4450,7 @@ "bundled": true, "dev": true, "requires": { - "js-tokens": "^3.0.0" + "js-tokens": "3.0.2" } }, "lru-cache": { @@ -4464,8 +4458,8 @@ "bundled": true, "dev": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "map-cache": { @@ -4478,7 +4472,7 @@ "bundled": true, "dev": true, "requires": { - "object-visit": "^1.0.0" + "object-visit": "1.0.1" } }, "md5-hex": { @@ -4486,7 +4480,7 @@ "bundled": true, "dev": true, "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "md5-o-matic": { @@ -4499,7 +4493,7 @@ "bundled": true, "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "merge-source-map": { @@ -4507,7 +4501,7 @@ "bundled": true, "dev": true, "requires": { - "source-map": "^0.6.1" + "source-map": "0.6.1" }, "dependencies": { "source-map": { @@ -4522,19 +4516,19 @@ "bundled": true, "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "kind-of": { @@ -4554,7 +4548,7 @@ "bundled": true, "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -4567,8 +4561,8 @@ "bundled": true, "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": { @@ -4576,7 +4570,7 @@ "bundled": true, "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -4599,18 +4593,18 @@ "bundled": true, "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-odd": "^2.0.0", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-odd": "2.0.0", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "arr-diff": { @@ -4635,10 +4629,10 @@ "bundled": true, "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.6.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" } }, "npm-run-path": { @@ -4646,7 +4640,7 @@ "bundled": true, "dev": true, "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { @@ -4664,9 +4658,9 @@ "bundled": true, "dev": true, "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" }, "dependencies": { "define-property": { @@ -4674,7 +4668,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -4684,7 +4678,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "^3.0.0" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -4699,7 +4693,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -4714,7 +4708,7 @@ "bundled": true, "dev": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "optimist": { @@ -4722,8 +4716,8 @@ "bundled": true, "dev": true, "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" + "minimist": "0.0.8", + "wordwrap": "0.0.3" } }, "os-homedir": { @@ -4736,9 +4730,9 @@ "bundled": true, "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" } }, "p-finally": { @@ -4751,7 +4745,7 @@ "bundled": true, "dev": true, "requires": { - "p-try": "^1.0.0" + "p-try": "1.0.0" } }, "p-locate": { @@ -4759,7 +4753,7 @@ "bundled": true, "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.2.0" } }, "p-try": { @@ -4772,7 +4766,7 @@ "bundled": true, "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.1" } }, "pascalcase": { @@ -4785,7 +4779,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie-promise": "^2.0.0" + "pinkie-promise": "2.0.1" } }, "path-is-absolute": { @@ -4808,9 +4802,9 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "pify": { @@ -4828,7 +4822,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "pkg-dir": { @@ -4836,7 +4830,7 @@ "bundled": true, "dev": true, "requires": { - "find-up": "^1.0.0" + "find-up": "1.1.2" }, "dependencies": { "find-up": { @@ -4844,8 +4838,8 @@ "bundled": true, "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } @@ -4865,9 +4859,9 @@ "bundled": true, "dev": true, "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" } }, "read-pkg-up": { @@ -4875,8 +4869,8 @@ "bundled": true, "dev": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "find-up": "1.1.2", + "read-pkg": "1.1.0" }, "dependencies": { "find-up": { @@ -4884,8 +4878,8 @@ "bundled": true, "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } @@ -4900,8 +4894,8 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" } }, "repeat-element": { @@ -4919,7 +4913,7 @@ "bundled": true, "dev": true, "requires": { - "is-finite": "^1.0.0" + "is-finite": "1.0.2" } }, "require-directory": { @@ -4953,7 +4947,7 @@ "dev": true, "optional": true, "requires": { - "align-text": "^0.1.1" + "align-text": "0.1.4" } }, "rimraf": { @@ -4961,7 +4955,7 @@ "bundled": true, "dev": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "safe-regex": { @@ -4969,7 +4963,7 @@ "bundled": true, "dev": true, "requires": { - "ret": "~0.1.10" + "ret": "0.1.15" } }, "semver": { @@ -4987,10 +4981,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" }, "dependencies": { "extend-shallow": { @@ -4998,7 +4992,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -5008,7 +5002,7 @@ "bundled": true, "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -5031,14 +5025,14 @@ "bundled": true, "dev": true, "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "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": "3.1.0" }, "dependencies": { "define-property": { @@ -5046,7 +5040,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -5054,7 +5048,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -5064,9 +5058,9 @@ "bundled": true, "dev": true, "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" }, "dependencies": { "define-property": { @@ -5074,7 +5068,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -5082,7 +5076,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -5090,7 +5084,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -5098,9 +5092,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -5120,7 +5114,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.2.0" + "kind-of": "3.2.2" } }, "source-map": { @@ -5133,11 +5127,11 @@ "bundled": true, "dev": true, "requires": { - "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" + "atob": "2.1.1", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" } }, "source-map-url": { @@ -5150,12 +5144,12 @@ "bundled": true, "dev": true, "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" + "foreground-child": "1.5.6", + "mkdirp": "0.5.1", + "os-homedir": "1.0.2", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "which": "1.3.0" } }, "spdx-correct": { @@ -5163,8 +5157,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, "spdx-exceptions": { @@ -5177,8 +5171,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" } }, "spdx-license-ids": { @@ -5191,7 +5185,7 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^3.0.0" + "extend-shallow": "3.0.2" } }, "static-extend": { @@ -5199,8 +5193,8 @@ "bundled": true, "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": { @@ -5208,7 +5202,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -5218,8 +5212,8 @@ "bundled": true, "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" }, "dependencies": { "ansi-regex": { @@ -5232,7 +5226,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -5242,7 +5236,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-bom": { @@ -5250,7 +5244,7 @@ "bundled": true, "dev": true, "requires": { - "is-utf8": "^0.2.0" + "is-utf8": "0.2.1" } }, "strip-eof": { @@ -5268,11 +5262,11 @@ "bundled": true, "dev": true, "requires": { - "arrify": "^1.0.1", - "micromatch": "^3.1.8", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" + "arrify": "1.0.1", + "micromatch": "3.1.10", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" }, "dependencies": { "arr-diff": { @@ -5290,16 +5284,16 @@ "bundled": true, "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -5307,7 +5301,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -5317,13 +5311,13 @@ "bundled": true, "dev": true, "requires": { - "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" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -5331,7 +5325,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -5339,7 +5333,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -5347,7 +5341,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -5355,7 +5349,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -5365,7 +5359,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -5373,7 +5367,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -5383,9 +5377,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { @@ -5400,14 +5394,14 @@ "bundled": true, "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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -5415,7 +5409,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -5423,7 +5417,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -5433,10 +5427,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -5444,7 +5438,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -5454,7 +5448,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -5462,7 +5456,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -5470,9 +5464,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-number": { @@ -5480,7 +5474,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -5488,7 +5482,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -5508,19 +5502,19 @@ "bundled": true, "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } } } @@ -5535,7 +5529,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "to-regex": { @@ -5543,10 +5537,10 @@ "bundled": true, "dev": true, "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" } }, "to-regex-range": { @@ -5554,8 +5548,8 @@ "bundled": true, "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "3.0.0", + "repeat-string": "1.6.1" }, "dependencies": { "is-number": { @@ -5563,7 +5557,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } } } @@ -5579,9 +5573,9 @@ "dev": true, "optional": true, "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" }, "dependencies": { "yargs": { @@ -5590,9 +5584,9 @@ "dev": true, "optional": true, "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", "window-size": "0.1.0" } } @@ -5609,10 +5603,10 @@ "bundled": true, "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": { "extend-shallow": { @@ -5620,7 +5614,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "set-value": { @@ -5628,10 +5622,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" } } } @@ -5641,8 +5635,8 @@ "bundled": true, "dev": true, "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "has-value": "0.3.1", + "isobject": "3.0.1" }, "dependencies": { "has-value": { @@ -5650,9 +5644,9 @@ "bundled": true, "dev": true, "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" }, "dependencies": { "isobject": { @@ -5687,7 +5681,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.2" + "kind-of": "6.0.2" }, "dependencies": { "kind-of": { @@ -5702,8 +5696,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "which": { @@ -5711,7 +5705,7 @@ "bundled": true, "dev": true, "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -5735,8 +5729,8 @@ "bundled": true, "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -5744,7 +5738,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "string-width": { @@ -5752,9 +5746,9 @@ "bundled": true, "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -5769,9 +5763,9 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" } }, "y18n": { @@ -5789,18 +5783,18 @@ "bundled": true, "dev": true, "requires": { - "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": "^9.0.2" + "cliui": "4.1.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": "9.0.2" }, "dependencies": { "ansi-regex": { @@ -5818,9 +5812,9 @@ "bundled": true, "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" } }, "strip-ansi": { @@ -5828,7 +5822,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } }, "yargs-parser": { @@ -5836,7 +5830,7 @@ "bundled": true, "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" } } } @@ -5846,7 +5840,7 @@ "bundled": true, "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" }, "dependencies": { "camelcase": { @@ -5874,8 +5868,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "optional": true, "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" + "for-own": "0.1.5", + "is-extendable": "0.1.1" } }, "once": { @@ -5883,7 +5877,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "os-homedir": { @@ -5896,9 +5890,9 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "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" } }, "os-tmpdir": { @@ -5911,9 +5905,9 @@ "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", "requires": { - "graceful-fs": "^4.1.4", - "mkdirp": "^0.5.1", - "object-assign": "^4.1.0" + "graceful-fs": "4.1.11", + "mkdirp": "0.5.1", + "object-assign": "4.1.1" } }, "p-finally": { @@ -5926,7 +5920,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "requires": { - "p-try": "^1.0.0" + "p-try": "1.0.0" } }, "p-locate": { @@ -5934,7 +5928,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.3.0" } }, "p-try": { @@ -5948,10 +5942,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "optional": true, "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" } }, "parse-json": { @@ -5959,7 +5953,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.2" } }, "parseqs": { @@ -5967,7 +5961,7 @@ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "requires": { - "better-assert": "~1.0.0" + "better-assert": "1.0.2" } }, "parseuri": { @@ -5975,7 +5969,7 @@ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "requires": { - "better-assert": "~1.0.0" + "better-assert": "1.0.2" } }, "path-exists": { @@ -6015,7 +6009,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { - "pify": "^2.0.0" + "pify": "2.3.0" }, "dependencies": { "pify": { @@ -6036,11 +6030,11 @@ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ripemd160": "2.0.2", + "safe-buffer": "5.1.2", + "sha.js": "2.4.11" } }, "pify": { @@ -6080,14 +6074,7 @@ "resolved": "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", "integrity": "sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=", "requires": { - "bitcoin-ops": "^1.3.0" - }, - "dependencies": { - "bitcoin-ops": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz", - "integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow==" - } + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" } }, "qrcode": { @@ -6095,11 +6082,11 @@ "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.2.0.tgz", "integrity": "sha512-wZK0Z0eYmOUDP2tOGzmLdeBn5Npa+4wms9GdvzH7HrywvGUq/Stz0BKUhW4DfmBf1PSrm9dNfdnVDq683Zxvag==", "requires": { - "can-promise": "^0.0.1", - "dijkstrajs": "^1.0.1", - "isarray": "^2.0.1", - "pngjs": "^3.3.0", - "yargs": "^8.0.2" + "can-promise": "0.0.1", + "dijkstrajs": "1.0.1", + "isarray": "2.0.4", + "pngjs": "3.3.3", + "yargs": "8.0.2" }, "dependencies": { "isarray": { @@ -6120,9 +6107,9 @@ "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", "optional": true, "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" + "is-number": "4.0.0", + "kind-of": "6.0.2", + "math-random": "1.0.1" }, "dependencies": { "is-number": { @@ -6144,7 +6131,7 @@ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "requires": { - "safe-buffer": "^5.1.0" + "safe-buffer": "5.1.2" } }, "read-pkg": { @@ -6152,9 +6139,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" } }, "read-pkg-up": { @@ -6162,8 +6149,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" + "find-up": "2.1.0", + "read-pkg": "2.0.0" } }, "readable-stream": { @@ -6172,13 +6159,13 @@ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "optional": true, "requires": { - "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" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.2", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" }, "dependencies": { "inherits": { @@ -6195,10 +6182,10 @@ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "optional": true, "requires": { - "graceful-fs": "^4.1.2", - "minimatch": "^3.0.2", - "readable-stream": "^2.0.2", - "set-immediate-shim": "^1.0.1" + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.6", + "set-immediate-shim": "1.0.1" } }, "regenerate": { @@ -6216,9 +6203,9 @@ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "requires": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "private": "0.1.8" } }, "regex-cache": { @@ -6227,7 +6214,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "optional": true, "requires": { - "is-equal-shallow": "^0.1.3" + "is-equal-shallow": "0.1.3" } }, "regexpu-core": { @@ -6235,9 +6222,9 @@ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" + "regenerate": "1.4.0", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" } }, "regjsgen": { @@ -6250,7 +6237,7 @@ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "requires": { - "jsesc": "~0.5.0" + "jsesc": "0.5.0" }, "dependencies": { "jsesc": { @@ -6281,7 +6268,7 @@ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "requires": { - "is-finite": "^1.0.0" + "is-finite": "1.0.2" } }, "repl.history": { @@ -6309,8 +6296,8 @@ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "hash-base": "3.0.4", + "inherits": "2.0.1" } }, "safe-buffer": { @@ -6329,7 +6316,7 @@ "resolved": "https://registry.npmjs.org/satoshi-bitcoin/-/satoshi-bitcoin-1.0.4.tgz", "integrity": "sha1-0AK2dwddXLvywhGo3zJUvN9QseQ=", "requires": { - "big.js": "^3.1.3" + "big.js": "3.2.0" } }, "scryptsy": { @@ -6342,14 +6329,14 @@ "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.5.0.tgz", "integrity": "sha512-e5QIJl8W7Y4tT6LHffVcZAxJjvpgE5Owawv6/XCYPQljE9aP2NFFddQ8OYMKhdLshNu88FfL3qCN3/xYkXGRsA==", "requires": { - "bindings": "^1.2.1", - "bip66": "^1.1.3", - "bn.js": "^4.11.3", - "create-hash": "^1.1.2", - "drbg.js": "^1.0.1", - "elliptic": "^6.2.3", - "nan": "^2.2.1", - "safe-buffer": "^5.1.0" + "bindings": "1.3.0", + "bip66": "1.1.5", + "bn.js": "4.11.8", + "create-hash": "1.2.0", + "drbg.js": "1.0.1", + "elliptic": "6.4.0", + "nan": "2.10.0", + "safe-buffer": "5.1.2" } }, "semver": { @@ -6373,8 +6360,8 @@ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "shebang-command": { @@ -6382,7 +6369,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -6401,13 +6388,13 @@ "integrity": "sha512-trdx+mB0VBBgoYucy6a9L7/jfQOmvGeaKZT4OOJ+lPAtI8623xyGr8wLiE4eojzBS8G9yXbhx42GHUOVLr4X2w==", "dev": true, "requires": { - "@sinonjs/formatio": "^2.0.0", - "diff": "^3.1.0", - "lodash.get": "^4.4.2", - "lolex": "^2.2.0", - "nise": "^1.2.0", - "supports-color": "^5.1.0", - "type-detect": "^4.0.5" + "@sinonjs/formatio": "2.0.0", + "diff": "3.5.0", + "lodash.get": "4.4.2", + "lolex": "2.7.1", + "nise": "1.4.2", + "supports-color": "5.4.0", + "type-detect": "4.0.8" }, "dependencies": { "supports-color": { @@ -6416,7 +6403,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -6431,12 +6418,12 @@ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", "requires": { - "debug": "~3.1.0", - "engine.io": "~3.2.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", + "debug": "3.1.0", + "engine.io": "3.2.0", + "has-binary2": "1.0.3", + "socket.io-adapter": "1.1.1", "socket.io-client": "2.1.1", - "socket.io-parser": "~3.2.0" + "socket.io-parser": "3.2.0" } }, "socket.io-adapter": { @@ -6453,15 +6440,15 @@ "base64-arraybuffer": "0.1.5", "component-bind": "1.0.0", "component-emitter": "1.2.1", - "debug": "~3.1.0", - "engine.io-client": "~3.2.0", - "has-binary2": "~1.0.2", + "debug": "3.1.0", + "engine.io-client": "3.2.1", + "has-binary2": "1.0.3", "has-cors": "1.1.0", "indexof": "0.0.1", "object-component": "0.0.3", "parseqs": "0.0.5", "parseuri": "0.0.5", - "socket.io-parser": "~3.2.0", + "socket.io-parser": "3.2.0", "to-array": "0.1.4" } }, @@ -6471,7 +6458,7 @@ "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", "requires": { "component-emitter": "1.2.1", - "debug": "~3.1.0", + "debug": "3.1.0", "isarray": "2.0.1" }, "dependencies": { @@ -6492,7 +6479,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "requires": { - "source-map": "^0.5.6" + "source-map": "0.5.7" } }, "spdx-correct": { @@ -6500,8 +6487,8 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, "spdx-exceptions": { @@ -6514,8 +6501,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" } }, "spdx-license-ids": { @@ -6528,8 +6515,8 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "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" }, "dependencies": { "ansi-regex": { @@ -6547,7 +6534,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -6558,7 +6545,7 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "optional": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.2" } }, "strip-ansi": { @@ -6566,7 +6553,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-bom": { @@ -6595,8 +6582,8 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" + "readable-stream": "1.0.34", + "xtend": "4.0.1" }, "dependencies": { "isarray": { @@ -6609,10 +6596,10 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", + "core-util-is": "1.0.2", + "inherits": "2.0.1", "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "string_decoder": "0.10.31" } }, "string_decoder": { @@ -6637,7 +6624,7 @@ "resolved": "https://registry.npmjs.org/topo/-/topo-1.1.0.tgz", "integrity": "sha1-6ddRYV0buH3IZdsYL6HKCl71NtU=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } }, "touch": { @@ -6645,7 +6632,7 @@ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", "requires": { - "nopt": "~1.0.10" + "nopt": "1.0.10" } }, "traverse": { @@ -6703,7 +6690,7 @@ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "requires": { - "user-home": "^1.1.1" + "user-home": "1.1.1" } }, "validate-npm-package-license": { @@ -6711,8 +6698,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "varuint-bitcoin": { @@ -6720,7 +6707,7 @@ "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz", "integrity": "sha512-jCEPG+COU/1Rp84neKTyDJQr478/hAfVp5xxYn09QEH0yBjbmPeMfuuQIrp+BUD83hybtYZKhr5elV3bvdV1bA==", "requires": { - "safe-buffer": "^5.1.1" + "safe-buffer": "5.1.2" } }, "vision": { @@ -6728,10 +6715,10 @@ "resolved": "https://registry.npmjs.org/vision/-/vision-3.0.0.tgz", "integrity": "sha1-GEWEb2wjpvJTXa8woeHnHQukjGI=", "requires": { - "boom": "2.x.x", - "hoek": "^2.9.x", - "items": "^1.1.x", - "joi": "6.x.x" + "boom": "2.10.1", + "hoek": "2.16.3", + "items": "1.1.1", + "joi": "6.10.1" } }, "which": { @@ -6739,7 +6726,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -6752,7 +6739,7 @@ "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", "requires": { - "bs58check": "<3.0.0" + "bs58check": "2.1.1" } }, "window-or-global": { @@ -6765,8 +6752,8 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "string-width": { @@ -6774,9 +6761,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -6791,8 +6778,8 @@ "resolved": "https://registry.npmjs.org/wreck/-/wreck-6.3.0.tgz", "integrity": "sha1-oTaXafB7u2LWo3gzanhx/Hc8dAs=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x" + "boom": "2.10.1", + "hoek": "2.16.3" } }, "ws": { @@ -6800,9 +6787,9 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" + "async-limiter": "1.0.0", + "safe-buffer": "5.1.2", + "ultron": "1.1.1" } }, "xmlhttprequest-ssl": { @@ -6830,19 +6817,19 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", "requires": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^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": "^7.0.0" + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.3", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.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": "7.0.0" } }, "yargs-parser": { @@ -6850,7 +6837,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" } }, "yeast": { diff --git a/package.json b/package.json index 7c870551..3b540d0c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.4.0", + "version": "1.4.1", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", @@ -12,7 +12,7 @@ }, "license": "MIT", "engines": { - "node": ">=10.5.0" + "node": ">=8.11.0" }, "bin": { "bitbox": "./index.js" From c75334d28a729fa36e2e5886a441b11b1ab7d213 Mon Sep 17 00:00:00 2001 From: James Cramer Date: Mon, 23 Jul 2018 13:25:57 -0400 Subject: [PATCH 034/480] merged with upstream --- package-lock.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index d6453f50..70cc6c79 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.4.0", + "version": "1.4.1", "lockfileVersion": 1, "requires": true, "dependencies": { From f86379d85684f96f4ee7c1b7b573c21bb57878a8 Mon Sep 17 00:00:00 2001 From: James Cramer Date: Mon, 23 Jul 2018 13:29:36 -0400 Subject: [PATCH 035/480] typings update --- lib/ECPair.d.ts | 9 ++++++++- lib/HDNode.d.ts | 15 +++++++++++++++ lib/Mnemonic.d.ts | 2 +- lib/Price.d.ts | 5 +++++ lib/Socket.d.ts | 6 ++++++ lib/TransactionBuilder.d.ts | 4 ++-- lib/bitbox-cli.d.ts | 9 +++++++-- typings/ECPair.d.ts | 9 ++++++++- typings/HDNode.d.ts | 15 +++++++++++++++ typings/Mnemonic.d.ts | 2 +- typings/Price.d.ts | 5 +++++ typings/Socket.d.ts | 6 ++++++ typings/TransactionBuilder.d.ts | 4 ++-- typings/bitbox-cli.d.ts | 9 +++++++-- 14 files changed, 88 insertions(+), 12 deletions(-) create mode 100644 lib/Price.d.ts create mode 100644 lib/Socket.d.ts create mode 100644 typings/Price.d.ts create mode 100644 typings/Socket.d.ts diff --git a/lib/ECPair.d.ts b/lib/ECPair.d.ts index 42d4bd05..5cd3a3f0 100644 --- a/lib/ECPair.d.ts +++ b/lib/ECPair.d.ts @@ -4,12 +4,19 @@ declare type ECSignature = any; export declare interface ECPair { //constructor(); fromWIF(privateKeyWIF: string): ECPair; + toWif(): string; toWIF(ecpair: ECPair): string; sign(sigHash: number): ECSignature; + sign(ecpair: ECPair, sigHash: number): ECSignature; + sign(buffer: Buffer): Boolean | ECSignature; sign(ecpair: ECPair, buffer: Buffer): Boolean | ECSignature; + verify(buffer: Buffer, signature: ECSignature): boolean; verify(ecpair: ECPair, buffer: Buffer, signature: ECSignature): boolean; - fromPublicKey(pubkeyBuffer: string): ECPair; + fromPublicKey(pubkeyBuffer: string): ECPair; + toPublicKey(): Buffer; toPublicKey(ecpair: ECPair): Buffer; + toLegacyAddress(): string; toLegacyAddress(ecpair: ECPair): string; + toCashAddress(): string; toCashAddress(ecpair: ECPair): string; } \ No newline at end of file diff --git a/lib/HDNode.d.ts b/lib/HDNode.d.ts index a43410df..63f116ef 100644 --- a/lib/HDNode.d.ts +++ b/lib/HDNode.d.ts @@ -2,22 +2,37 @@ import { ECPair, ECSignature } from "./ECPair"; export declare interface HDNode { fromSeed(rootSeedBuffer: Buffer, network?: string): HDNode; + toLegacyAddress():string; toLegacyAddress(hdNode:HDNode):string; + toCashAddress():string; toCashAddress(hdNode:HDNode):string; + toWIF(): string; toWIF(hdNode:HDNode): string; + toXPub():string; toXPub(hdNode:HDNode):string; + toXPriv(): string; toXPriv(hdNode:HDNode): string; + toKeyPair(): ECPair; toKeyPair(hdNode:HDNode): ECPair; + toPublicKey(): Buffer; toPublicKey(hdNode:HDNode): Buffer; fromXPriv(xpriv: string): HDNode; fromXPub(xpub:string): HDNode; + derivePath(path:string):HDNode; derivePath(hdnode: HDNode, path:string):HDNode; + derive(num:number):HDNode; derive(hdnode: HDNode, num:number):HDNode; + deriveHardened(num: number):HDNode; deriveHardened(hdnode:HDNode, num: number):HDNode; + sign(buffer:Buffer):ECSignature; sign(hdnode:HDNode, buffer:Buffer):ECSignature; + verify(buffer:Buffer, signature:ECSignature):boolean; verify(hdnode:HDNode, buffer:Buffer, signature:ECSignature):boolean; + isPublic():boolean; isPublic(hdnode:HDNode):boolean; + isPrivate():boolean; isPrivate(hdnode:HDNode):boolean; + toIdentifier():string; toIdentifier(hdnode:HDNode):string; fromBase58(base58:string, network:string):string; } \ No newline at end of file diff --git a/lib/Mnemonic.d.ts b/lib/Mnemonic.d.ts index acd4fe1d..375eb6fd 100644 --- a/lib/Mnemonic.d.ts +++ b/lib/Mnemonic.d.ts @@ -4,7 +4,7 @@ export declare interface Mnemonic { toEntropy(mnemonic: string, wordlist?: string[]): Buffer; validate(mnemonic: string, wordlist?: string[]): boolean; toSeed(mnemonic: string, passphrase?: string): Buffer; - wordLists(): object; + wordLists(): any; toKeypairs(mnemonic: string, numberOfKeypairs?: number): { privateKeyWIF: string, address: string}[]; findNearestWord(word: string, wordlist: string[]): string; } \ No newline at end of file diff --git a/lib/Price.d.ts b/lib/Price.d.ts new file mode 100644 index 00000000..c3955b71 --- /dev/null +++ b/lib/Price.d.ts @@ -0,0 +1,5 @@ +declare interface Price { + current(currency: string): Promise; +} + +export default Price; \ No newline at end of file diff --git a/lib/Socket.d.ts b/lib/Socket.d.ts new file mode 100644 index 00000000..8bc7d808 --- /dev/null +++ b/lib/Socket.d.ts @@ -0,0 +1,6 @@ +declare interface ISocket { + new(restURL: string): ISocket + listen(endpoint: string, cb: any): void; +} + +export default ISocket; \ No newline at end of file diff --git a/lib/TransactionBuilder.d.ts b/lib/TransactionBuilder.d.ts index d7411dc1..1ecb2379 100644 --- a/lib/TransactionBuilder.d.ts +++ b/lib/TransactionBuilder.d.ts @@ -12,11 +12,11 @@ export declare interface ITransactionBuilder { bip66 : any; bip68 : any; - constructor(network?: string): ITransactionBuilder; + new(network?: string): ITransactionBuilder; addInput(txHash: string|Buffer, vout: number, sequence?: number, prevOutScript?: string): void; addOutput(scriptPubKey: string|Buffer, amount: number): void; - sign(vin: number, keyPair: ECPair, redeemScript: Buffer, hashType: number, value: number): ECSignature; + sign(vin: number, keyPair: ECPair, redeemScript: Buffer | undefined, hashType: number, value: number): ECSignature; build(): Transaction; } diff --git a/lib/bitbox-cli.d.ts b/lib/bitbox-cli.d.ts index c6b1c7d9..ba19f9b7 100644 --- a/lib/bitbox-cli.d.ts +++ b/lib/bitbox-cli.d.ts @@ -16,10 +16,14 @@ import { Transaction } from './Transaction'; import { ITransactionBuilder } from './TransactionBuilder'; import { ECPair } from './ECPair'; import { Script } from './Script'; +import Price from './Price'; +import ISocket from './Socket'; export declare interface IBITBOXCli { + new(config?: any): IBITBOXCli + restURL: string; Address: Address; BitcoinCash: BitcoinCash; @@ -33,10 +37,11 @@ export declare interface IBITBOXCli { HDNode: HDNode; Mnemonic: Mnemonic; Network: Network; + Price: Price; RawTransactions: RawTransactions; Script: Script; Transaction: Transaction; - //TransactionBuilder: ITransactionBuilder; + TransactionBuilder: ITransactionBuilder; Util: Util; - + Socket: ISocket; } diff --git a/typings/ECPair.d.ts b/typings/ECPair.d.ts index 42d4bd05..5cd3a3f0 100644 --- a/typings/ECPair.d.ts +++ b/typings/ECPair.d.ts @@ -4,12 +4,19 @@ declare type ECSignature = any; export declare interface ECPair { //constructor(); fromWIF(privateKeyWIF: string): ECPair; + toWif(): string; toWIF(ecpair: ECPair): string; sign(sigHash: number): ECSignature; + sign(ecpair: ECPair, sigHash: number): ECSignature; + sign(buffer: Buffer): Boolean | ECSignature; sign(ecpair: ECPair, buffer: Buffer): Boolean | ECSignature; + verify(buffer: Buffer, signature: ECSignature): boolean; verify(ecpair: ECPair, buffer: Buffer, signature: ECSignature): boolean; - fromPublicKey(pubkeyBuffer: string): ECPair; + fromPublicKey(pubkeyBuffer: string): ECPair; + toPublicKey(): Buffer; toPublicKey(ecpair: ECPair): Buffer; + toLegacyAddress(): string; toLegacyAddress(ecpair: ECPair): string; + toCashAddress(): string; toCashAddress(ecpair: ECPair): string; } \ No newline at end of file diff --git a/typings/HDNode.d.ts b/typings/HDNode.d.ts index a43410df..63f116ef 100644 --- a/typings/HDNode.d.ts +++ b/typings/HDNode.d.ts @@ -2,22 +2,37 @@ import { ECPair, ECSignature } from "./ECPair"; export declare interface HDNode { fromSeed(rootSeedBuffer: Buffer, network?: string): HDNode; + toLegacyAddress():string; toLegacyAddress(hdNode:HDNode):string; + toCashAddress():string; toCashAddress(hdNode:HDNode):string; + toWIF(): string; toWIF(hdNode:HDNode): string; + toXPub():string; toXPub(hdNode:HDNode):string; + toXPriv(): string; toXPriv(hdNode:HDNode): string; + toKeyPair(): ECPair; toKeyPair(hdNode:HDNode): ECPair; + toPublicKey(): Buffer; toPublicKey(hdNode:HDNode): Buffer; fromXPriv(xpriv: string): HDNode; fromXPub(xpub:string): HDNode; + derivePath(path:string):HDNode; derivePath(hdnode: HDNode, path:string):HDNode; + derive(num:number):HDNode; derive(hdnode: HDNode, num:number):HDNode; + deriveHardened(num: number):HDNode; deriveHardened(hdnode:HDNode, num: number):HDNode; + sign(buffer:Buffer):ECSignature; sign(hdnode:HDNode, buffer:Buffer):ECSignature; + verify(buffer:Buffer, signature:ECSignature):boolean; verify(hdnode:HDNode, buffer:Buffer, signature:ECSignature):boolean; + isPublic():boolean; isPublic(hdnode:HDNode):boolean; + isPrivate():boolean; isPrivate(hdnode:HDNode):boolean; + toIdentifier():string; toIdentifier(hdnode:HDNode):string; fromBase58(base58:string, network:string):string; } \ No newline at end of file diff --git a/typings/Mnemonic.d.ts b/typings/Mnemonic.d.ts index acd4fe1d..375eb6fd 100644 --- a/typings/Mnemonic.d.ts +++ b/typings/Mnemonic.d.ts @@ -4,7 +4,7 @@ export declare interface Mnemonic { toEntropy(mnemonic: string, wordlist?: string[]): Buffer; validate(mnemonic: string, wordlist?: string[]): boolean; toSeed(mnemonic: string, passphrase?: string): Buffer; - wordLists(): object; + wordLists(): any; toKeypairs(mnemonic: string, numberOfKeypairs?: number): { privateKeyWIF: string, address: string}[]; findNearestWord(word: string, wordlist: string[]): string; } \ No newline at end of file diff --git a/typings/Price.d.ts b/typings/Price.d.ts new file mode 100644 index 00000000..c3955b71 --- /dev/null +++ b/typings/Price.d.ts @@ -0,0 +1,5 @@ +declare interface Price { + current(currency: string): Promise; +} + +export default Price; \ No newline at end of file diff --git a/typings/Socket.d.ts b/typings/Socket.d.ts new file mode 100644 index 00000000..8bc7d808 --- /dev/null +++ b/typings/Socket.d.ts @@ -0,0 +1,6 @@ +declare interface ISocket { + new(restURL: string): ISocket + listen(endpoint: string, cb: any): void; +} + +export default ISocket; \ No newline at end of file diff --git a/typings/TransactionBuilder.d.ts b/typings/TransactionBuilder.d.ts index d7411dc1..1ecb2379 100644 --- a/typings/TransactionBuilder.d.ts +++ b/typings/TransactionBuilder.d.ts @@ -12,11 +12,11 @@ export declare interface ITransactionBuilder { bip66 : any; bip68 : any; - constructor(network?: string): ITransactionBuilder; + new(network?: string): ITransactionBuilder; addInput(txHash: string|Buffer, vout: number, sequence?: number, prevOutScript?: string): void; addOutput(scriptPubKey: string|Buffer, amount: number): void; - sign(vin: number, keyPair: ECPair, redeemScript: Buffer, hashType: number, value: number): ECSignature; + sign(vin: number, keyPair: ECPair, redeemScript: Buffer | undefined, hashType: number, value: number): ECSignature; build(): Transaction; } diff --git a/typings/bitbox-cli.d.ts b/typings/bitbox-cli.d.ts index c6b1c7d9..ba19f9b7 100644 --- a/typings/bitbox-cli.d.ts +++ b/typings/bitbox-cli.d.ts @@ -16,10 +16,14 @@ import { Transaction } from './Transaction'; import { ITransactionBuilder } from './TransactionBuilder'; import { ECPair } from './ECPair'; import { Script } from './Script'; +import Price from './Price'; +import ISocket from './Socket'; export declare interface IBITBOXCli { + new(config?: any): IBITBOXCli + restURL: string; Address: Address; BitcoinCash: BitcoinCash; @@ -33,10 +37,11 @@ export declare interface IBITBOXCli { HDNode: HDNode; Mnemonic: Mnemonic; Network: Network; + Price: Price; RawTransactions: RawTransactions; Script: Script; Transaction: Transaction; - //TransactionBuilder: ITransactionBuilder; + TransactionBuilder: ITransactionBuilder; Util: Util; - + Socket: ISocket; } From 040886c059676922785583fe2f8bee2b41a2e292 Mon Sep 17 00:00:00 2001 From: James Cramer Date: Mon, 23 Jul 2018 13:38:03 -0400 Subject: [PATCH 036/480] cleanup ts export --- lib/bitbox-cli.d.ts | 4 +++- typings/bitbox-cli.d.ts | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/bitbox-cli.d.ts b/lib/bitbox-cli.d.ts index ba19f9b7..cad7eecd 100644 --- a/lib/bitbox-cli.d.ts +++ b/lib/bitbox-cli.d.ts @@ -20,7 +20,7 @@ import Price from './Price'; import ISocket from './Socket'; -export declare interface IBITBOXCli { +declare interface IBITBOXCli { new(config?: any): IBITBOXCli @@ -45,3 +45,5 @@ export declare interface IBITBOXCli { Util: Util; Socket: ISocket; } + +export default IBITBOXCli; diff --git a/typings/bitbox-cli.d.ts b/typings/bitbox-cli.d.ts index ba19f9b7..cad7eecd 100644 --- a/typings/bitbox-cli.d.ts +++ b/typings/bitbox-cli.d.ts @@ -20,7 +20,7 @@ import Price from './Price'; import ISocket from './Socket'; -export declare interface IBITBOXCli { +declare interface IBITBOXCli { new(config?: any): IBITBOXCli @@ -45,3 +45,5 @@ export declare interface IBITBOXCli { Util: Util; Socket: ISocket; } + +export default IBITBOXCli; From 04065308f919a3b3ae2c5c87f94a1a4381bbab90 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 24 Jul 2018 07:29:34 +0900 Subject: [PATCH 037/480] v --- index.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index a7753ad9..0511532f 100755 --- a/index.js +++ b/index.js @@ -19,7 +19,7 @@ let corsproxy = require('corsproxy'); let cmd = require('node-cmd'); program - .version('1.4.1'); + .version('1.4.2'); program .command('new ') diff --git a/package.json b/package.json index 3b540d0c..8ddc020b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.4.1", + "version": "1.4.2", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", From 00ef24fce122e4884610b0962f3ae220e29015fe Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 24 Jul 2018 14:44:40 +0900 Subject: [PATCH 038/480] Reenable BIP32 utils. --- index.js | 2 +- lib/HDNode.js | 25 +- package-lock.json | 4485 +++++++++++++++++++++++++++------------------ package.json | 3 +- src/HDNode.js | 16 +- test/HDNode.js | 62 +- 6 files changed, 2749 insertions(+), 1844 deletions(-) diff --git a/index.js b/index.js index 0511532f..45c353b6 100755 --- a/index.js +++ b/index.js @@ -19,7 +19,7 @@ let corsproxy = require('corsproxy'); let cmd = require('node-cmd'); program - .version('1.4.2'); + .version('1.4.3'); program .command('new ') diff --git a/lib/HDNode.js b/lib/HDNode.js index 5b926f57..5662a98a 100644 --- a/lib/HDNode.js +++ b/lib/HDNode.js @@ -18,12 +18,14 @@ var _coininfo = require('coininfo'); var _coininfo2 = _interopRequireDefault(_coininfo); +var _bip32Utils = require('bip32-utils'); + +var _bip32Utils2 = _interopRequireDefault(_bip32Utils); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -// let bip32utils = require('bip32-utils') - var HDNode = function () { function HDNode() { _classCallCheck(this, HDNode); @@ -147,12 +149,19 @@ var HDNode = function () { value: function fromBase58(base58, network) { return _bitcoincashjsLib2.default.HDNode.fromBase58(base58, network); } - - // - // createChain(hdNode) { - // return new bip32utils.Chain(hdNode); - // } - + }, { + key: 'createAccount', + value: function createAccount(hdNodes) { + var arr = hdNodes.map(function (item, index) { + return new _bip32Utils2.default.Chain(item.neutered()); + }); + return new _bip32Utils2.default.Account(arr); + } + }, { + key: 'createChain', + value: function createChain(hdNode) { + return new _bip32Utils2.default.Chain(hdNode); + } }]); return HDNode; diff --git a/package-lock.json b/package-lock.json index 70cc6c79..fcff4ad7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.4.1", + "version": "1.4.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -29,24 +29,65 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "requires": { - "mime-types": "2.1.19", + "mime-types": "~2.1.18", "negotiator": "0.6.1" } }, + "acorn": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", + "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==" + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "requires": { + "acorn": "^3.0.4" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=" + } + } + }, "after": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" }, + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=" + }, "ammo": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ammo/-/ammo-1.0.1.tgz", "integrity": "sha1-j4rdFM1Jve3jurOj4OvK8h0D3os=", "requires": { - "boom": "2.10.1", - "hoek": "2.16.3" + "boom": "2.x.x", + "hoek": "2.x.x" } }, + "ansi-escapes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", + "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==" + }, "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", @@ -63,8 +104,16 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "optional": true, "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" } }, "arr-diff": { @@ -73,7 +122,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "optional": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { @@ -82,6 +131,28 @@ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "optional": true }, + "array-includes": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", + "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.7.0" + } + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" + }, "array-unique": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", @@ -93,6 +164,11 @@ "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + }, "assert": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", @@ -123,8 +199,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=", "requires": { - "follow-redirects": "1.5.1", - "is-buffer": "1.1.6" + "follow-redirects": "^1.2.5", + "is-buffer": "^1.1.5" } }, "babel-cli": { @@ -132,21 +208,21 @@ "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", "requires": { - "babel-core": "6.26.3", - "babel-polyfill": "6.26.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "chokidar": "1.7.0", - "commander": "2.16.0", - "convert-source-map": "1.5.1", - "fs-readdir-recursive": "1.1.0", - "glob": "7.1.2", - "lodash": "4.17.10", - "output-file-sync": "1.1.2", - "path-is-absolute": "1.0.1", - "slash": "1.0.0", - "source-map": "0.5.7", - "v8flags": "2.1.1" + "babel-core": "^6.26.0", + "babel-polyfill": "^6.26.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "chokidar": "^1.6.1", + "commander": "^2.11.0", + "convert-source-map": "^1.5.0", + "fs-readdir-recursive": "^1.0.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "output-file-sync": "^1.1.2", + "path-is-absolute": "^1.0.1", + "slash": "^1.0.0", + "source-map": "^0.5.6", + "v8flags": "^2.1.1" } }, "babel-code-frame": { @@ -154,9 +230,9 @@ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" }, "dependencies": { "chalk": { @@ -164,11 +240,11 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "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" } } } @@ -178,25 +254,25 @@ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.1", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.5.1", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.10", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" }, "dependencies": { "debug": { @@ -214,14 +290,14 @@ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" } }, "babel-helper-builder-binary-assignment-operator-visitor": { @@ -229,9 +305,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "requires": { - "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-builder-react-jsx": { @@ -239,9 +315,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "esutils": "2.0.2" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "esutils": "^2.0.2" } }, "babel-helper-call-delegate": { @@ -249,10 +325,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-define-map": { @@ -260,10 +336,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.10" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-explode-assignable-expression": { @@ -271,9 +347,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-function-name": { @@ -281,11 +357,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-get-function-arity": { @@ -293,8 +369,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-hoist-variables": { @@ -302,8 +378,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-optimise-call-expression": { @@ -311,8 +387,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-regex": { @@ -320,9 +396,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.10" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-remap-async-to-generator": { @@ -330,11 +406,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-replace-supers": { @@ -342,12 +418,12 @@ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "requires": { - "babel-helper-optimise-call-expression": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helpers": { @@ -355,8 +431,8 @@ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-messages": { @@ -364,7 +440,7 @@ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-check-es2015-constants": { @@ -372,7 +448,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-syntax-async-functions": { @@ -405,9 +481,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-arrow-functions": { @@ -415,7 +491,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -423,7 +499,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -431,11 +507,11 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.10" + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-plugin-transform-es2015-classes": { @@ -443,15 +519,15 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "requires": { - "babel-helper-define-map": "6.26.0", - "babel-helper-function-name": "6.24.1", - "babel-helper-optimise-call-expression": "6.24.1", - "babel-helper-replace-supers": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-computed-properties": { @@ -459,8 +535,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-destructuring": { @@ -468,7 +544,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -476,8 +552,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-for-of": { @@ -485,7 +561,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -493,9 +569,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-literals": { @@ -503,7 +579,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -511,9 +587,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -521,10 +597,10 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" } }, "babel-plugin-transform-es2015-modules-systemjs": { @@ -532,9 +608,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-umd": { @@ -542,9 +618,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "requires": { - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-object-super": { @@ -552,8 +628,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "requires": { - "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.26.0" + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -561,12 +637,12 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-shorthand-properties": { @@ -574,8 +650,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-spread": { @@ -583,7 +659,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -591,9 +667,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-template-literals": { @@ -601,7 +677,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -609,7 +685,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -617,9 +693,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -627,9 +703,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", - "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-flow-strip-types": { @@ -637,8 +713,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", "requires": { - "babel-plugin-syntax-flow": "6.18.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-flow": "^6.18.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-display-name": { @@ -646,7 +722,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx": { @@ -654,9 +730,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", "requires": { - "babel-helper-builder-react-jsx": "6.26.0", - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-react-jsx": "^6.24.1", + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx-self": { @@ -664,8 +740,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx-source": { @@ -673,8 +749,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-regenerator": { @@ -682,7 +758,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "requires": { - "regenerator-transform": "0.10.1" + "regenerator-transform": "^0.10.0" } }, "babel-plugin-transform-strict-mode": { @@ -690,8 +766,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-polyfill": { @@ -699,9 +775,9 @@ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "requires": { - "babel-runtime": "6.26.0", - "core-js": "2.5.7", - "regenerator-runtime": "0.10.5" + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" }, "dependencies": { "regenerator-runtime": { @@ -716,36 +792,36 @@ "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0", - "browserslist": "3.2.8", - "invariant": "2.2.4", - "semver": "5.5.0" + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" } }, "babel-preset-es2015": { @@ -753,30 +829,30 @@ "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0" + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.24.1", + "babel-plugin-transform-es2015-classes": "^6.24.1", + "babel-plugin-transform-es2015-computed-properties": "^6.24.1", + "babel-plugin-transform-es2015-destructuring": "^6.22.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", + "babel-plugin-transform-es2015-for-of": "^6.22.0", + "babel-plugin-transform-es2015-function-name": "^6.24.1", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-umd": "^6.24.1", + "babel-plugin-transform-es2015-object-super": "^6.24.1", + "babel-plugin-transform-es2015-parameters": "^6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", + "babel-plugin-transform-regenerator": "^6.24.1" } }, "babel-preset-flow": { @@ -784,7 +860,7 @@ "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", "requires": { - "babel-plugin-transform-flow-strip-types": "6.22.0" + "babel-plugin-transform-flow-strip-types": "^6.22.0" } }, "babel-preset-react": { @@ -792,12 +868,12 @@ "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-plugin-transform-react-display-name": "6.25.0", - "babel-plugin-transform-react-jsx": "6.24.1", - "babel-plugin-transform-react-jsx-self": "6.22.0", - "babel-plugin-transform-react-jsx-source": "6.22.0", - "babel-preset-flow": "6.23.0" + "babel-plugin-syntax-jsx": "^6.3.13", + "babel-plugin-transform-react-display-name": "^6.23.0", + "babel-plugin-transform-react-jsx": "^6.24.1", + "babel-plugin-transform-react-jsx-self": "^6.22.0", + "babel-plugin-transform-react-jsx-source": "^6.22.0", + "babel-preset-flow": "^6.23.0" } }, "babel-register": { @@ -805,13 +881,13 @@ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "requires": { - "babel-core": "6.26.3", - "babel-runtime": "6.26.0", - "core-js": "2.5.7", - "home-or-tmp": "2.0.0", - "lodash": "4.17.10", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" } }, "babel-runtime": { @@ -819,8 +895,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "2.5.7", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -828,11 +904,11 @@ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.10" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { @@ -840,15 +916,15 @@ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.10" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" }, "dependencies": { "debug": { @@ -866,10 +942,10 @@ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -892,7 +968,7 @@ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.4.tgz", "integrity": "sha512-UYOadoSIkEI/VrRGSG6qp93rp2WdokiAiNYDfGW5qURAY8GiAQkvMbwNNSDYiVJopqv4gCna7xqf4rrNGp+5AA==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "base64-arraybuffer": { @@ -915,8 +991,8 @@ "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.1.tgz", "integrity": "sha512-esOfL+EnG+qPgqAPl4NxWngDIJIEs35dcV6wU0NP6bxBtc363fYm7xhNtC1BRVagDLSbMNwyI27rkWXwN5i6yg==", "requires": { - "bs58check": "2.1.1", - "cashaddrjs": "0.2.8" + "bs58check": "^2.1.1", + "cashaddrjs": "^0.2.7" } }, "bech32": { @@ -960,8 +1036,20 @@ }, "bip21": { "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", + "from": "github:Bitcoin-com/bip21", + "requires": { + "qs": "^6.3.0" + } + }, + "bip32-utils": { + "version": "github:Bitcoin-com/bip32-utils#6d27e98d15ceb7543f904d7f770d1e39a806e6e8", + "from": "github:Bitcoin-com/bip32-utils#6d27e98d15ceb7543f904d7f770d1e39a806e6e8", "requires": { - "qs": "6.5.2" + "bitbox-cli": "1.4.2", + "keccak": "^1.3.0", + "nyc": "*", + "standard": "^11.0.1", + "tape": "*" } }, "bip38": { @@ -969,13 +1057,13 @@ "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", "integrity": "sha512-22KDak0RDyghFbR0Si7wyq9IgY423YzGYzWLpGeofH3DaolOQqjD3mNN08eFoubKlbyclOQKFwtONMv2SD9V3A==", "requires": { - "bigi": "1.4.2", - "browserify-aes": "1.2.0", - "bs58check": "2.1.1", - "buffer-xor": "1.0.3", - "create-hash": "1.2.0", - "ecurve": "1.0.6", - "scryptsy": "2.0.0" + "bigi": "^1.2.0", + "browserify-aes": "^1.0.1", + "bs58check": "<3.0.0", + "buffer-xor": "^1.0.2", + "create-hash": "^1.1.1", + "ecurve": "^1.0.0", + "scryptsy": "^2.0.0" } }, "bip39": { @@ -983,11 +1071,11 @@ "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", "requires": { - "create-hash": "1.2.0", - "pbkdf2": "3.0.16", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "unorm": "1.4.1" + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "unorm": "^1.3.3" } }, "bip66": { @@ -995,7 +1083,7 @@ "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "bip68": { @@ -1003,35 +1091,88 @@ "resolved": "https://registry.npmjs.org/bip68/-/bip68-1.0.4.tgz", "integrity": "sha512-O1htyufFTYy3EO0JkHg2CLykdXEtV2ssqw47Gq9A0WByp662xpJnMEB9m43LZjsSDjIAOozWRExlFQk2hlV1XQ==" }, + "bitbox-cli": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/bitbox-cli/-/bitbox-cli-1.4.2.tgz", + "integrity": "sha512-ilRmgewkTas89uOJmvDyCBFrPyov99wPJOlAEZUgV9H/cFIyRIjLPzqYim7m9N1FHVyorbfxBlsvoIqQRarcow==", + "requires": { + "assert": "^1.4.1", + "axios": "^0.17.1", + "babel-cli": "^6.26.0", + "babel-preset-env": "^1.6.1", + "babel-preset-es2015": "^6.24.1", + "babel-preset-flow": "^6.23.0", + "babel-preset-react": "^6.24.1", + "babel-register": "^6.26.0", + "bchaddrjs": "^0.2.1", + "bigi": "^1.4.2", + "bip21": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", + "bip38": "^2.0.2", + "bip39": "^2.5.0", + "bip66": "^1.1.5", + "bip68": "^1.0.4", + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", + "bitcoin-txdecoder": "0.0.3", + "bitcoincashjs-lib": "github:Bitcoin-com/bitcoincashjs-lib#0a7fc7cf23551503f57689db4c930b8136db954c", + "bitcoinjs-message": "^2.0.0", + "bs58": "^4.0.1", + "buffer": "^5.1.0", + "chalk": "^2.3.0", + "clear": "0.0.1", + "coininfo": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", + "commander": "^2.13.0", + "corsproxy": "^1.5.0", + "cp-file": "^5.0.0", + "ecurve": "^1.0.6", + "figlet": "^1.2.0", + "git-clone": "^0.1.0", + "ini": "^1.3.5", + "mkdirp": "^0.5.1", + "mocha": "^5.0.1", + "node-cmd": "^3.0.0", + "node-emoji": "^1.8.1", + "qrcode": "^1.2.0", + "randombytes": "^2.0.6", + "repl.history": "^0.1.4", + "safe-buffer": "^5.1.2", + "satoshi-bitcoin": "^1.0.4", + "socket.io": "^2.1.1", + "socket.io-client": "^2.1.1", + "touch": "^3.1.0", + "wif": "^2.0.6" + } + }, "bitcoin-ops": { - "version": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" + "version": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", + "from": "github:Bitcoin-com/bitcoincash-ops" }, "bitcoin-txdecoder": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/bitcoin-txdecoder/-/bitcoin-txdecoder-0.0.3.tgz", "integrity": "sha512-pH/eF5hQ65y54U23mzuF42wEj9YWj4WKHAIj2il6b1+oRoi/oyM4Ti3e8nMD8ajippICmyquqbyCZKGq3i4W+A==", "requires": { - "bitcoinjs-lib": "3.3.2" + "bitcoinjs-lib": "3.3.*" } }, "bitcoincashjs-lib": { "version": "github:Bitcoin-com/bitcoincashjs-lib#0a7fc7cf23551503f57689db4c930b8136db954c", - "requires": { - "bech32": "1.1.3", - "bigi": "1.4.2", - "bip66": "1.1.5", - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", - "bs58check": "2.1.1", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ecurve": "1.0.6", - "merkle-lib": "2.0.10", - "pushdata-bitcoin": "1.0.1", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "typeforce": "1.12.0", - "varuint-bitcoin": "1.1.0", - "wif": "2.0.6" + "from": "github:Bitcoin-com/bitcoincashjs-lib", + "requires": { + "bech32": "^1.1.2", + "bigi": "^1.4.0", + "bip66": "^1.1.0", + "bitcoin-ops": "^1.3.0", + "bs58check": "^2.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.3", + "ecurve": "^1.0.0", + "merkle-lib": "^2.0.10", + "pushdata-bitcoin": "^1.0.1", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "typeforce": "^1.11.3", + "varuint-bitcoin": "^1.0.4", + "wif": "^2.0.1" } }, "bitcoinjs-lib": { @@ -1039,21 +1180,21 @@ "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-3.3.2.tgz", "integrity": "sha512-l5qqvbaK8wwtANPf6oEffykycg4383XgEYdia1rI7/JpGf1jfRWlOUCvx5TiTZS7kyIvY4j/UhIQ2urLsvGkzw==", "requires": { - "bech32": "1.1.3", - "bigi": "1.4.2", - "bip66": "1.1.5", - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", - "bs58check": "2.1.1", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ecurve": "1.0.6", - "merkle-lib": "2.0.10", - "pushdata-bitcoin": "1.0.1", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "typeforce": "1.12.0", - "varuint-bitcoin": "1.1.0", - "wif": "2.0.6" + "bech32": "^1.1.2", + "bigi": "^1.4.0", + "bip66": "^1.1.0", + "bitcoin-ops": "^1.3.0", + "bs58check": "^2.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.3", + "ecurve": "^1.0.0", + "merkle-lib": "^2.0.10", + "pushdata-bitcoin": "^1.0.1", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "typeforce": "^1.11.3", + "varuint-bitcoin": "^1.0.4", + "wif": "^2.0.1" } }, "bitcoinjs-message": { @@ -1061,11 +1202,11 @@ "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", "requires": { - "bs58check": "2.1.1", - "buffer-equals": "1.0.4", - "create-hash": "1.2.0", - "secp256k1": "3.5.0", - "varuint-bitcoin": "1.1.0" + "bs58check": "^2.0.2", + "buffer-equals": "^1.0.3", + "create-hash": "^1.1.2", + "secp256k1": "^3.0.1", + "varuint-bitcoin": "^1.0.1" } }, "blob": { @@ -1083,7 +1224,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "brace-expansion": { @@ -1091,7 +1232,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -1101,9 +1242,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "optional": 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" } }, "brorand": { @@ -1121,12 +1262,12 @@ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "browserslist": { @@ -1134,8 +1275,8 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "requires": { - "caniuse-lite": "1.0.30000865", - "electron-to-chromium": "1.3.52" + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" } }, "bs58": { @@ -1143,7 +1284,7 @@ "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", "requires": { - "base-x": "3.0.4" + "base-x": "^3.0.2" } }, "bs58check": { @@ -1151,8 +1292,8 @@ "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.1.tgz", "integrity": "sha512-okRQiWc5FJuA2VOwQ1hB7Sf0MyEFg/EwRN12h4b8HrJoGkZ3xq1CGjkaAfYloLcZyqixQnO5mhPpN6IcHSplVg==", "requires": { - "bs58": "4.0.1", - "create-hash": "1.2.0" + "bs58": "^4.0.0", + "create-hash": "^1.1.0" } }, "buffer": { @@ -1160,8 +1301,8 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.1.0.tgz", "integrity": "sha512-YkIRgwsZwJWTnyQrsBTWefizHh+8GYj3kbL1BTiAQ/9pwpino0G7B2gp5tx/FUBqUlvtxV85KNR3mwfAtv15Yw==", "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.12" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" } }, "buffer-equals": { @@ -1169,6 +1310,11 @@ "resolved": "https://registry.npmjs.org/buffer-equals/-/buffer-equals-1.0.4.tgz", "integrity": "sha1-A1O1T9B/2VZBcGca5vZrnPENJ/U=" }, + "buffer-from": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", + "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==" + }, "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", @@ -1179,11 +1325,24 @@ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "requires": { + "callsites": "^0.2.0" + } + }, "callsite": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=" + }, "camelcase": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", @@ -1194,7 +1353,7 @@ "resolved": "https://registry.npmjs.org/can-promise/-/can-promise-0.0.1.tgz", "integrity": "sha512-gzVrHyyrvgt0YpDm7pn04MQt8gjh0ZAhN4ZDyCRtGl6YnuuK6b4aiUTD7G52r9l4YNmxfTtEscb92vxtAlL6XQ==", "requires": { - "window-or-global": "1.0.1" + "window-or-global": "^1.0.1" } }, "caniuse-lite": { @@ -1207,7 +1366,7 @@ "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.2.8.tgz", "integrity": "sha512-oezXpKZRjavdRB1QjBamfHFDzYescGFn9dWMbijP4fgXrqMdBygOqaPNW4phf7zpRD4+oW7aaFfFklF72/szaA==", "requires": { - "big-integer": "1.6.32" + "big-integer": "^1.6.26" } }, "chai": { @@ -1216,12 +1375,12 @@ "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", "dev": true, "requires": { - "assertion-error": "1.1.0", - "check-error": "1.0.2", - "deep-eql": "3.0.1", - "get-func-name": "2.0.0", - "pathval": "1.1.0", - "type-detect": "4.0.8" + "assertion-error": "^1.0.1", + "check-error": "^1.0.1", + "deep-eql": "^3.0.0", + "get-func-name": "^2.0.0", + "pathval": "^1.0.0", + "type-detect": "^4.0.0" } }, "chalk": { @@ -1229,9 +1388,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "ansi-styles": { @@ -1239,7 +1398,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "color-convert": "1.9.2" + "color-convert": "^1.9.0" } }, "supports-color": { @@ -1247,11 +1406,16 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=" + }, "check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", @@ -1264,15 +1428,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "optional": true, "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.2.4", - "glob-parent": "2.0.0", - "inherits": "2.0.1", - "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" } }, "cipher-base": { @@ -1280,23 +1444,41 @@ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==" + }, "clear": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/clear/-/clear-0.0.1.tgz", "integrity": "sha1-5RhuIp2ZRIF5wTAxG2+dML/2sLo=" }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" + }, "cliui": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "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" }, "dependencies": { "string-width": { @@ -1304,13 +1486,18 @@ "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" } } } }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", @@ -1318,8 +1505,9 @@ }, "coininfo": { "version": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", + "from": "github:Bitcoin-com/coininfo", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.1" } }, "color-convert": { @@ -1360,6 +1548,29 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=" + }, "convert-source-map": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", @@ -1385,15 +1596,15 @@ "resolved": "https://registry.npmjs.org/corsproxy/-/corsproxy-1.5.0.tgz", "integrity": "sha1-KUge0hXuWxvWkkx5Fc+I/LE8EGE=", "requires": { - "ejs": "2.6.1", - "good": "6.6.3", - "good-console": "5.3.2", - "h2o2": "4.0.2", - "hapi": "9.5.1", - "hapi-cors-headers": "1.0.3", - "http-proxy": "1.11.3", - "inert": "3.2.1", - "vision": "3.0.0" + "ejs": "^2.3.3", + "good": "^6.3.0", + "good-console": "^5.0.3", + "h2o2": "^4.0.1", + "hapi": "^9.0.2", + "hapi-cors-headers": "^1.0.0", + "http-proxy": "~1.11", + "inert": "^3.0.1", + "vision": "^3.0.0" } }, "cp-file": { @@ -1401,11 +1612,11 @@ "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-5.0.0.tgz", "integrity": "sha1-vHAP0wyjLSTUbH+wK5kuQ1/FqXg=", "requires": { - "graceful-fs": "4.1.11", - "make-dir": "1.3.0", - "nested-error-stacks": "2.0.1", - "pify": "3.0.0", - "safe-buffer": "5.1.2" + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "nested-error-stacks": "^2.0.0", + "pify": "^3.0.0", + "safe-buffer": "^5.0.1" } }, "create-hash": { @@ -1413,11 +1624,11 @@ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.1", - "md5.js": "1.3.4", - "ripemd160": "2.0.2", - "sha.js": "2.4.11" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, "create-hmac": { @@ -1425,12 +1636,12 @@ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "inherits": "2.0.1", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "cross-spawn": { @@ -1438,9 +1649,9 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" }, "dependencies": { "lru-cache": { @@ -1448,8 +1659,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } } } @@ -1462,6 +1673,11 @@ "ms": "2.0.0" } }, + "debug-log": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", + "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=" + }, "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", @@ -1473,7 +1689,65 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "4.0.8" + "type-detect": "^4.0.0" + } + }, + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "define-properties": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", + "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", + "requires": { + "foreach": "^2.0.5", + "object-keys": "^1.0.8" + } + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" + }, + "deglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.1.tgz", + "integrity": "sha512-2kjwuGGonL7gWE1XU4Fv79+vVzpoQCl0V+boMwWtOQJV2AGDabCwez++nB1Nli/8BabAfZQ/UuHPlp6AymKdWw==", + "requires": { + "find-root": "^1.0.0", + "glob": "^7.0.5", + "ignore": "^3.0.9", + "pkg-config": "^1.1.0", + "run-parallel": "^1.1.2", + "uniq": "^1.0.1" + } + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "requires": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } } }, "detect-indent": { @@ -1481,7 +1755,7 @@ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "diff": { @@ -1494,14 +1768,22 @@ "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.1.tgz", "integrity": "sha1-082BIh4+pAdCz83lVtTpnpjdxxs=" }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "requires": { + "esutils": "^2.0.2" + } + }, "drbg.js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", "requires": { - "browserify-aes": "1.2.0", - "create-hash": "1.2.0", - "create-hmac": "1.1.7" + "browserify-aes": "^1.0.6", + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4" } }, "ecurve": { @@ -1509,8 +1791,8 @@ "resolved": "https://registry.npmjs.org/ecurve/-/ecurve-1.0.6.tgz", "integrity": "sha512-/BzEjNfiSuB7jIWKcS/z8FK9jNjmEWvUV2YZ4RLSmcDtP7Lq0m6FvDuSnJpBlDpGRpfRQeTLGLBI8H+kEv0r+w==", "requires": { - "bigi": "1.4.2", - "safe-buffer": "5.1.2" + "bigi": "^1.1.0", + "safe-buffer": "^5.0.1" } }, "ejs": { @@ -1528,13 +1810,13 @@ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.5", - "hmac-drbg": "1.0.1", - "inherits": "2.0.1", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" } }, "engine.io": { @@ -1542,12 +1824,12 @@ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.0.tgz", "integrity": "sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==", "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.4", "base64id": "1.0.0", "cookie": "0.3.1", - "debug": "3.1.0", - "engine.io-parser": "2.1.2", - "ws": "3.3.3" + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "ws": "~3.3.1" } }, "engine.io-client": { @@ -1557,14 +1839,14 @@ "requires": { "component-emitter": "1.2.1", "component-inherit": "0.0.3", - "debug": "3.1.0", - "engine.io-parser": "2.1.2", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", "has-cors": "1.1.0", "indexof": "0.0.1", "parseqs": "0.0.5", "parseuri": "0.0.5", - "ws": "3.3.3", - "xmlhttprequest-ssl": "1.5.5", + "ws": "~3.3.1", + "xmlhttprequest-ssl": "~1.5.4", "yeast": "0.1.2" } }, @@ -1574,10 +1856,10 @@ "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==", "requires": { "after": "0.8.2", - "arraybuffer.slice": "0.0.7", + "arraybuffer.slice": "~0.0.7", "base64-arraybuffer": "0.1.5", "blob": "0.0.4", - "has-binary2": "1.0.3" + "has-binary2": "~1.0.2" } }, "error-ex": { @@ -1585,7 +1867,29 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", + "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", + "requires": { + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" + } + }, + "es-to-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", + "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", + "requires": { + "is-callable": "^1.1.1", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.1" } }, "escape-string-regexp": { @@ -1593,6 +1897,235 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, + "eslint": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", + "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", + "requires": { + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.2", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", + "table": "4.0.2", + "text-table": "~0.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "globals": { + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", + "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "eslint-config-standard": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-11.0.0.tgz", + "integrity": "sha512-oDdENzpViEe5fwuRCWla7AXQd++/oyIp8zP+iP9jiUPG6NBj3SHgdgtl/kTn00AjeN+1HNvavTKmYbMo+xMOlw==" + }, + "eslint-config-standard-jsx": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-5.0.0.tgz", + "integrity": "sha512-rLToPAEqLMPBfWnYTu6xRhm2OWziS2n40QFqJ8jAM8NSVzeVKTa3nclhsU4DpPJQRY60F34Oo1wi/71PN/eITg==" + }, + "eslint-import-resolver-node": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", + "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", + "requires": { + "debug": "^2.6.9", + "resolve": "^1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "eslint-module-utils": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", + "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", + "requires": { + "debug": "^2.6.8", + "pkg-dir": "^1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "eslint-plugin-import": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz", + "integrity": "sha1-JgAu+/ylmJtyiKwEdQi9JPIXsWk=", + "requires": { + "builtin-modules": "^1.1.1", + "contains-path": "^0.1.0", + "debug": "^2.6.8", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.1", + "eslint-module-utils": "^2.1.1", + "has": "^1.0.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.3", + "read-pkg-up": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + } + } + }, + "eslint-plugin-node": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz", + "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", + "requires": { + "ignore": "^3.3.6", + "minimatch": "^3.0.4", + "resolve": "^1.3.3", + "semver": "^5.4.1" + } + }, + "eslint-plugin-promise": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.7.0.tgz", + "integrity": "sha512-2WO+ZFh7vxUKRfR0cOIMrWgYKdR6S1AlOezw6pC52B6oYpd5WFghN+QHxvrRdZMtbo8h3dfUZ2o1rWb0UPbKtg==" + }, + "eslint-plugin-react": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz", + "integrity": "sha512-KC7Snr4YsWZD5flu6A5c0AcIZidzW3Exbqp7OT67OaD2AppJtlBr/GuPrW/vaQM/yfZotEvKAdrxrO+v8vwYJA==", + "requires": { + "doctrine": "^2.0.2", + "has": "^1.0.1", + "jsx-ast-utils": "^2.0.1", + "prop-types": "^15.6.0" + } + }, + "eslint-plugin-standard": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz", + "integrity": "sha1-NNDJFbRe3G8BA5PH7vOCOwhWXPI=" + }, + "eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==" + }, + "espree": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "requires": { + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esquery": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "requires": { + "estraverse": "^4.0.0" + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" + }, "esutils": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", @@ -1608,8 +2141,8 @@ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "requires": { - "md5.js": "1.3.4", - "safe-buffer": "5.1.2" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, "execa": { @@ -1617,13 +2150,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "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" } }, "expand-brackets": { @@ -1632,7 +2165,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "optional": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -1641,7 +2174,17 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "optional": true, "requires": { - "fill-range": "2.2.4" + "fill-range": "^2.1.0" + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" } }, "extglob": { @@ -1650,14 +2193,46 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "optional": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^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=" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, "figlet": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.2.0.tgz", "integrity": "sha1-bEZTc3j6tkkUa1phQ92gGbQwtBA=" }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "requires": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + } + }, "filename-regex": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", @@ -1670,19 +2245,35 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "optional": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.0.0", - "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" } }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, "find-up": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" + } + }, + "flat-cache": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", + "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", + "requires": { + "circular-json": "^0.3.1", + "del": "^2.0.2", + "graceful-fs": "^4.1.2", + "write": "^0.2.1" } }, "flow-bin": { @@ -1696,7 +2287,15 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.1.tgz", "integrity": "sha512-v9GI1hpaqq1ZZR6pBD1+kI7O24PhDvNGNodjS3MdcEqyrahCp8zbtpv+2B/krUnSmUH80lbAS7MrdeK5IylgKg==", "requires": { - "debug": "3.1.0" + "debug": "^3.1.0" + } + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "requires": { + "is-callable": "^1.1.3" } }, "for-in": { @@ -1711,9 +2310,14 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "optional": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, "fs-readdir-recursive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", @@ -1730,8 +2334,8 @@ "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", "optional": true, "requires": { - "nan": "2.10.0", - "node-pre-gyp": "0.10.0" + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" }, "dependencies": { "abbrev": { @@ -1753,8 +2357,8 @@ "bundled": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "balanced-match": { @@ -1765,7 +2369,7 @@ "version": "1.1.11", "bundled": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -1819,7 +2423,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "fs.realpath": { @@ -1832,14 +2436,14 @@ "bundled": true, "optional": 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" } }, "glob": { @@ -1847,12 +2451,12 @@ "bundled": true, "optional": 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" } }, "has-unicode": { @@ -1865,7 +2469,7 @@ "bundled": true, "optional": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "^2.1.0" } }, "ignore-walk": { @@ -1873,7 +2477,7 @@ "bundled": true, "optional": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "inflight": { @@ -1881,8 +2485,8 @@ "bundled": true, "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -1898,7 +2502,7 @@ "version": "1.0.0", "bundled": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "isarray": { @@ -1910,7 +2514,7 @@ "version": "3.0.4", "bundled": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -1921,8 +2525,8 @@ "version": "2.2.4", "bundled": true, "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" } }, "minizlib": { @@ -1930,7 +2534,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "mkdirp": { @@ -1950,9 +2554,9 @@ "bundled": true, "optional": true, "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, "node-pre-gyp": { @@ -1960,16 +2564,16 @@ "bundled": true, "optional": true, "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.7", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" + "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": { @@ -1977,8 +2581,8 @@ "bundled": true, "optional": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npm-bundled": { @@ -1991,8 +2595,8 @@ "bundled": true, "optional": true, "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, "npmlog": { @@ -2000,10 +2604,10 @@ "bundled": 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" + "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": { @@ -2019,7 +2623,7 @@ "version": "1.4.0", "bundled": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -2037,8 +2641,8 @@ "bundled": 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": { @@ -2056,10 +2660,10 @@ "bundled": true, "optional": true, "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "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": { @@ -2074,13 +2678,13 @@ "bundled": true, "optional": true, "requires": { - "core-util-is": "1.0.2", - "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.2" + "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": { @@ -2088,7 +2692,7 @@ "bundled": true, "optional": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { @@ -2124,9 +2728,9 @@ "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": { @@ -2134,14 +2738,14 @@ "bundled": true, "optional": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { "version": "3.0.1", "bundled": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -2154,13 +2758,13 @@ "bundled": true, "optional": true, "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "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" } }, "util-deprecate": { @@ -2173,7 +2777,7 @@ "bundled": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { @@ -2186,6 +2790,16 @@ } } }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + }, "get-caller-file": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", @@ -2197,6 +2811,11 @@ "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", "dev": true }, + "get-stdin": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", + "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==" + }, "get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", @@ -2212,12 +2831,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.1", - "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": { @@ -2226,8 +2845,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "optional": true, "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -2235,7 +2854,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "globals": { @@ -2243,16 +2862,36 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, "good": { "version": "6.6.3", "resolved": "https://registry.npmjs.org/good/-/good-6.6.3.tgz", "integrity": "sha1-B9zIEfwSuDmKnDMezdM37OWogDU=", "requires": { - "hoek": "2.16.3", - "items": "1.1.1", - "joi": "6.10.1", + "hoek": "2.x.x", + "items": "1.x.x", + "joi": "6.x.x", "traverse": "0.6.6", - "wreck": "6.3.0" + "wreck": "6.x.x" } }, "good-console": { @@ -2260,11 +2899,11 @@ "resolved": "https://registry.npmjs.org/good-console/-/good-console-5.3.2.tgz", "integrity": "sha1-f8c9RDfiWsToODJB5GaWy6N0ia0=", "requires": { - "good-squeeze": "2.1.0", - "hoek": "2.16.3", - "json-stringify-safe": "5.0.1", - "moment": "2.11.2", - "through2": "0.6.5" + "good-squeeze": "2.x.x", + "hoek": "2.x.x", + "json-stringify-safe": "5.0.x", + "moment": "2.11.x", + "through2": "0.6.x" }, "dependencies": { "moment": { @@ -2279,8 +2918,8 @@ "resolved": "https://registry.npmjs.org/good-squeeze/-/good-squeeze-2.1.0.tgz", "integrity": "sha1-mc7pHSbVkWmKiZwo6TELzzxq4oo=", "requires": { - "hoek": "2.16.3", - "json-stringify-safe": "5.0.1" + "hoek": "2.x.x", + "json-stringify-safe": "5.0.x" } }, "graceful-fs": { @@ -2298,10 +2937,10 @@ "resolved": "https://registry.npmjs.org/h2o2/-/h2o2-4.0.2.tgz", "integrity": "sha1-h8uWDcD1tJWWT6koJT5s8TuiJIY=", "requires": { - "boom": "2.10.1", - "hoek": "2.16.3", - "joi": "6.10.1", - "wreck": "6.3.0" + "boom": "2.x.x", + "hoek": "2.x.x", + "joi": "6.x.x", + "wreck": "6.x.x" } }, "hapi": { @@ -2309,26 +2948,26 @@ "resolved": "https://registry.npmjs.org/hapi/-/hapi-9.5.1.tgz", "integrity": "sha1-jYyhPnwiCweEZemgp2QPJqWvuFU=", "requires": { - "accept": "1.1.0", - "ammo": "1.0.1", - "boom": "2.9.0", - "call": "2.0.2", - "catbox": "6.0.0", - "catbox-memory": "1.1.2", - "cryptiles": "2.0.5", - "heavy": "3.0.1", - "hoek": "2.16.3", - "iron": "2.1.3", - "items": "1.1.0", - "joi": "6.8.1", - "kilt": "1.1.1", - "mimos": "2.0.2", - "peekaboo": "1.0.0", - "qs": "4.0.0", - "shot": "1.7.0", - "statehood": "2.1.1", - "subtext": "2.0.0", - "topo": "1.1.0" + "accept": "1.x.x", + "ammo": "1.x.x", + "boom": "^2.5.x", + "call": "2.x.x", + "catbox": "6.x.x", + "catbox-memory": "1.x.x", + "cryptiles": "2.x.x", + "heavy": "3.x.x", + "hoek": "^2.14.x", + "iron": "2.x.x", + "items": "1.x.x", + "joi": "^6.8.1", + "kilt": "^1.1.x", + "mimos": "2.x.x", + "peekaboo": "1.x.x", + "qs": "4.x.x", + "shot": "^1.7.x", + "statehood": "2.x.x", + "subtext": "2.x.x", + "topo": "^1.1.x" }, "dependencies": { "accept": { @@ -2336,8 +2975,8 @@ "resolved": "https://registry.npmjs.org/accept/-/accept-1.1.0.tgz", "integrity": "sha1-x7VWfJmt5Kx8k38qm8HFZhYKMLU=", "requires": { - "boom": "2.9.0", - "hoek": "2.16.3" + "boom": "2.x.x", + "hoek": "2.x.x" } }, "ammo": { @@ -2345,8 +2984,8 @@ "resolved": "https://registry.npmjs.org/ammo/-/ammo-1.0.1.tgz", "integrity": "sha1-j4rdFM1Jve3jurOj4OvK8h0D3os=", "requires": { - "boom": "2.9.0", - "hoek": "2.16.3" + "boom": "2.x.x", + "hoek": "2.x.x" } }, "boom": { @@ -2354,7 +2993,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-2.9.0.tgz", "integrity": "sha1-pUt/0v7kd9NRv543FoDL6mfxJxU=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "call": { @@ -2362,8 +3001,8 @@ "resolved": "https://registry.npmjs.org/call/-/call-2.0.2.tgz", "integrity": "sha1-nJgxq9B2lIb97oOkEUm4KbMtBsA=", "requires": { - "boom": "2.9.0", - "hoek": "2.16.3" + "boom": "2.x.x", + "hoek": "2.x.x" } }, "catbox": { @@ -2371,9 +3010,9 @@ "resolved": "https://registry.npmjs.org/catbox/-/catbox-6.0.0.tgz", "integrity": "sha1-6i8pT6Bemvx+IhDTI/XeU6OAQ+c=", "requires": { - "boom": "2.9.0", - "hoek": "2.16.3", - "joi": "6.8.1" + "boom": "2.x.x", + "hoek": "2.x.x", + "joi": "6.x.x" } }, "catbox-memory": { @@ -2381,7 +3020,7 @@ "resolved": "https://registry.npmjs.org/catbox-memory/-/catbox-memory-1.1.2.tgz", "integrity": "sha1-M8kYOjKzGUXuikhNDjw8u4Lq7Bo=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "cryptiles": { @@ -2389,7 +3028,7 @@ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "requires": { - "boom": "2.9.0" + "boom": "2.x.x" } }, "heavy": { @@ -2397,9 +3036,9 @@ "resolved": "https://registry.npmjs.org/heavy/-/heavy-3.0.1.tgz", "integrity": "sha1-8oZ+bjUVv4OrGoux5z5dKOhas80=", "requires": { - "boom": "2.9.0", - "hoek": "2.16.3", - "joi": "6.8.1" + "boom": "2.x.x", + "hoek": "2.x.x", + "joi": "6.x.x" } }, "hoek": { @@ -2412,9 +3051,9 @@ "resolved": "https://registry.npmjs.org/iron/-/iron-2.1.3.tgz", "integrity": "sha1-cbjzV9gGquA6kKdFuaqv/sfi3eQ=", "requires": { - "boom": "2.9.0", - "cryptiles": "2.0.5", - "hoek": "2.16.3" + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x" } }, "items": { @@ -2427,10 +3066,10 @@ "resolved": "https://registry.npmjs.org/joi/-/joi-6.8.1.tgz", "integrity": "sha1-g94tYCj8DNXRYi8/V0fKCCtHjv8=", "requires": { - "hoek": "2.16.3", - "isemail": "1.2.0", - "moment": "2.10.6", - "topo": "1.1.0" + "hoek": "2.x.x", + "isemail": "1.x.x", + "moment": "2.x.x", + "topo": "1.x.x" }, "dependencies": { "isemail": { @@ -2450,7 +3089,7 @@ "resolved": "https://registry.npmjs.org/kilt/-/kilt-1.1.1.tgz", "integrity": "sha1-d7SmFjyn+lshN6iMFzNCFuwj1ds=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "mimos": { @@ -2458,8 +3097,8 @@ "resolved": "https://registry.npmjs.org/mimos/-/mimos-2.0.2.tgz", "integrity": "sha1-wyQXF+dblZkr54esfdbbGptTmx4=", "requires": { - "hoek": "2.16.3", - "mime-db": "1.19.0" + "hoek": "2.x.x", + "mime-db": "1.x.x" }, "dependencies": { "mime-db": { @@ -2484,7 +3123,7 @@ "resolved": "https://registry.npmjs.org/shot/-/shot-1.7.0.tgz", "integrity": "sha1-8jKdfvM6/PA9RM5Bq66BSK4XBTI=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "statehood": { @@ -2492,12 +3131,12 @@ "resolved": "https://registry.npmjs.org/statehood/-/statehood-2.1.1.tgz", "integrity": "sha1-AfFwtmxeklqvZ5qdMiulkYb8AAk=", "requires": { - "boom": "2.9.0", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "iron": "2.1.3", - "items": "1.1.0", - "joi": "6.8.1" + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "iron": "2.x.x", + "items": "1.x.x", + "joi": "6.x.x" } }, "subtext": { @@ -2505,12 +3144,12 @@ "resolved": "https://registry.npmjs.org/subtext/-/subtext-2.0.0.tgz", "integrity": "sha1-I5lQ6SCBQ/FUirJeHJV5vbaNiU4=", "requires": { - "boom": "2.9.0", - "content": "1.0.2", - "hoek": "2.16.3", - "pez": "1.0.0", - "qs": "4.0.0", - "wreck": "6.2.0" + "boom": "2.x.x", + "content": "1.x.x", + "hoek": "2.x.x", + "pez": "1.x.x", + "qs": "4.x.x", + "wreck": "6.x.x" }, "dependencies": { "content": { @@ -2518,8 +3157,8 @@ "resolved": "https://registry.npmjs.org/content/-/content-1.0.2.tgz", "integrity": "sha1-y37fMq/vF8SKz9vSH/mMIzFa6CQ=", "requires": { - "boom": "2.9.0", - "hoek": "2.16.3" + "boom": "2.x.x", + "hoek": "2.x.x" } }, "pez": { @@ -2527,11 +3166,11 @@ "resolved": "https://registry.npmjs.org/pez/-/pez-1.0.0.tgz", "integrity": "sha1-hEMYpc5wku7d/6KV4YB5rHefoBg=", "requires": { - "b64": "2.0.1", - "boom": "2.9.0", - "content": "1.0.2", - "hoek": "2.16.3", - "nigel": "1.0.1" + "b64": "2.x.x", + "boom": "2.x.x", + "content": "1.x.x", + "hoek": "2.x.x", + "nigel": "1.x.x" }, "dependencies": { "b64": { @@ -2539,7 +3178,7 @@ "resolved": "https://registry.npmjs.org/b64/-/b64-2.0.1.tgz", "integrity": "sha1-0IwQcZcZ/x/htTKuSSaUCc4UnOk=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "nigel": { @@ -2547,8 +3186,8 @@ "resolved": "https://registry.npmjs.org/nigel/-/nigel-1.0.1.tgz", "integrity": "sha1-RjmJr4gSePuqHTzJOCPb0XtDYKE=", "requires": { - "hoek": "2.16.3", - "vise": "1.0.0" + "hoek": "2.x.x", + "vise": "1.x.x" }, "dependencies": { "vise": { @@ -2556,7 +3195,7 @@ "resolved": "https://registry.npmjs.org/vise/-/vise-1.0.0.tgz", "integrity": "sha1-KDRb5N5aNB4V/SgW/Z6j5zA+jfM=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } } } @@ -2568,8 +3207,8 @@ "resolved": "https://registry.npmjs.org/wreck/-/wreck-6.2.0.tgz", "integrity": "sha1-8Jkx7UcbZL6Yjj57u4gjTa4i0iI=", "requires": { - "boom": "2.9.0", - "hoek": "2.16.3" + "boom": "2.x.x", + "hoek": "2.x.x" } } } @@ -2579,7 +3218,7 @@ "resolved": "https://registry.npmjs.org/topo/-/topo-1.1.0.tgz", "integrity": "sha1-6ddRYV0buH3IZdsYL6HKCl71NtU=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } } } @@ -2589,12 +3228,20 @@ "resolved": "https://registry.npmjs.org/hapi-cors-headers/-/hapi-cors-headers-1.0.3.tgz", "integrity": "sha512-U/y+kpVLUJ0y86fEk8yleou9C1T5wFopcWQjuxKdMXzCcymTjfSqGz59waqvngUs1SbeXav/y8Ga9C0G0L1MGg==" }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, "has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-binary2": { @@ -2627,8 +3274,8 @@ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "hash.js": { @@ -2636,8 +3283,8 @@ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" }, "dependencies": { "inherits": { @@ -2657,9 +3304,9 @@ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { - "hash.js": "1.1.5", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, "hoek": { @@ -2672,8 +3319,8 @@ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" } }, "hosted-git-info": { @@ -2686,8 +3333,16 @@ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.11.3.tgz", "integrity": "sha1-GRXciIdR4qa/PCq/yxgI+obHI1M=", "requires": { - "eventemitter3": "1.2.0", - "requires-port": "0.0.1" + "eventemitter3": "1.x.x", + "requires-port": "0.x.x" + } + }, + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" } }, "ieee754": { @@ -2695,6 +3350,16 @@ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==" }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, "indexof": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", @@ -2705,12 +3370,12 @@ "resolved": "https://registry.npmjs.org/inert/-/inert-3.2.1.tgz", "integrity": "sha1-xJZcXhh87z2yxChy5S51cAh2Qn0=", "requires": { - "ammo": "1.0.1", - "boom": "2.10.1", - "hoek": "2.16.3", - "items": "1.1.1", - "joi": "6.10.1", - "lru-cache": "2.7.3" + "ammo": "1.x.x", + "boom": "2.x.x", + "hoek": "2.x.x", + "items": "1.x.x", + "joi": "^6.7.x", + "lru-cache": "2.7.x" } }, "inflight": { @@ -2718,8 +3383,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -2732,12 +3397,48 @@ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -2756,7 +3457,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "optional": true, "requires": { - "binary-extensions": "1.11.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -2769,9 +3470,19 @@ "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-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" + }, "is-dotfile": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", @@ -2784,7 +3495,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "optional": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -2803,7 +3514,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-fullwidth-code-point": { @@ -2811,7 +3522,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-glob": { @@ -2819,7 +3530,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-number": { @@ -2828,7 +3539,28 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=" + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "requires": { + "path-is-inside": "^1.0.1" } }, "is-posix-bracket": { @@ -2843,11 +3575,34 @@ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", "optional": true }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "requires": { + "has": "^1.0.1" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" + }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, + "is-symbol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", + "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=" + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -2882,10 +3637,10 @@ "resolved": "https://registry.npmjs.org/joi/-/joi-6.10.1.tgz", "integrity": "sha1-TVDDGAeRIgAP5fFq8f+OGRe3fgY=", "requires": { - "hoek": "2.16.3", - "isemail": "1.2.0", - "moment": "2.22.2", - "topo": "1.1.0" + "hoek": "2.x.x", + "isemail": "1.x.x", + "moment": "2.x.x", + "topo": "1.x.x" } }, "js-tokens": { @@ -2893,11 +3648,35 @@ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" }, + "js-yaml": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, "jsesc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + }, + "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-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" + }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", @@ -2908,18 +3687,44 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" }, + "jsx-ast-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", + "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", + "requires": { + "array-includes": "^3.0.3" + } + }, "just-extend": { "version": "1.1.27", "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-1.1.27.tgz", "integrity": "sha512-mJVp13Ix6gFo3SBAy9U/kL+oeZqzlYYYLQBwXVBlVzIsZwBqGREnOro24oC/8s8aox+rJhtZ2DiQof++IrkA+g==", "dev": true }, + "keccak": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", + "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", + "requires": { + "bindings": "^1.2.1", + "inherits": "^2.0.3", + "nan": "^2.2.1", + "safe-buffer": "^5.1.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lcid": { @@ -2927,7 +3732,16 @@ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "load-json-file": { @@ -2935,10 +3749,10 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "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" }, "dependencies": { "pify": { @@ -2953,8 +3767,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "lodash": { @@ -2984,7 +3798,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0 || ^4.0.0" } }, "lru-cache": { @@ -2997,7 +3811,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "math-random": { @@ -3011,8 +3825,8 @@ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.1" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, "mem": { @@ -3020,7 +3834,7 @@ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "merkle-lib": { @@ -3034,19 +3848,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "optional": 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" } }, "mime-db": { @@ -3059,7 +3873,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", "requires": { - "mime-db": "1.35.0" + "mime-db": "~1.35.0" } }, "mimic-fn": { @@ -3082,7 +3896,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -3126,7 +3940,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -3141,11 +3955,21 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" + }, "nan": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==" }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + }, "negotiator": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", @@ -3162,11 +3986,11 @@ "integrity": "sha512-BxH/DxoQYYdhKgVAfqVy4pzXRZELHOIewzoesxpjYvpU+7YOalQhGNPf7wAx8pLrTNPrHRDlLOkAl8UI0ZpXjw==", "dev": true, "requires": { - "@sinonjs/formatio": "2.0.0", - "just-extend": "1.1.27", - "lolex": "2.7.1", - "path-to-regexp": "1.7.0", - "text-encoding": "0.6.4" + "@sinonjs/formatio": "^2.0.0", + "just-extend": "^1.1.27", + "lolex": "^2.3.2", + "path-to-regexp": "^1.7.0", + "text-encoding": "^0.6.4" } }, "node-cmd": { @@ -3179,7 +4003,7 @@ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", "requires": { - "lodash.toarray": "4.4.0" + "lodash.toarray": "^4.4.0" } }, "nopt": { @@ -3187,7 +4011,7 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } }, "normalize-package-data": { @@ -3195,10 +4019,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.7.1", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "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": { @@ -3206,7 +4030,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "npm-run-path": { @@ -3214,7 +4038,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -3226,592 +4050,520 @@ "version": "11.9.0", "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.9.0.tgz", "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", - "dev": true, "requires": { - "archy": "1.0.0", - "arrify": "1.0.1", - "caching-transform": "1.0.1", - "convert-source-map": "1.5.1", - "debug-log": "1.0.1", - "default-require-extensions": "1.0.0", - "find-cache-dir": "0.1.1", - "find-up": "2.1.0", - "foreground-child": "1.5.6", - "glob": "7.1.2", - "istanbul-lib-coverage": "1.2.0", - "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "1.10.1", - "istanbul-lib-report": "1.1.3", - "istanbul-lib-source-maps": "1.2.3", - "istanbul-reports": "1.4.0", - "md5-hex": "1.3.0", - "merge-source-map": "1.1.0", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "resolve-from": "2.0.0", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "spawn-wrap": "1.4.2", - "test-exclude": "4.2.1", + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^1.0.0", + "convert-source-map": "^1.5.1", + "debug-log": "^1.0.1", + "default-require-extensions": "^1.0.0", + "find-cache-dir": "^0.1.1", + "find-up": "^2.1.0", + "foreground-child": "^1.5.3", + "glob": "^7.0.6", + "istanbul-lib-coverage": "^1.1.2", + "istanbul-lib-hook": "^1.1.0", + "istanbul-lib-instrument": "^1.10.0", + "istanbul-lib-report": "^1.1.3", + "istanbul-lib-source-maps": "^1.2.3", + "istanbul-reports": "^1.4.0", + "md5-hex": "^1.2.0", + "merge-source-map": "^1.1.0", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.0", + "resolve-from": "^2.0.0", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.1", + "spawn-wrap": "^1.4.2", + "test-exclude": "^4.2.0", "yargs": "11.1.0", - "yargs-parser": "8.1.0" + "yargs-parser": "^8.0.0" }, "dependencies": { "align-text": { "version": "0.1.4", "bundled": true, - "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" } }, "amdefine": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true, - "dev": true + "bundled": true }, "ansi-styles": { "version": "2.2.1", - "bundled": true, - "dev": true + "bundled": true }, "append-transform": { "version": "0.4.0", "bundled": true, - "dev": true, "requires": { - "default-require-extensions": "1.0.0" + "default-require-extensions": "^1.0.0" } }, "archy": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "arr-diff": { "version": "4.0.0", - "bundled": true, - "dev": true + "bundled": true }, "arr-flatten": { "version": "1.1.0", - "bundled": true, - "dev": true + "bundled": true }, "arr-union": { "version": "3.1.0", - "bundled": true, - "dev": true + "bundled": true }, "array-unique": { "version": "0.3.2", - "bundled": true, - "dev": true + "bundled": true }, "arrify": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "assign-symbols": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "async": { "version": "1.5.2", - "bundled": true, - "dev": true + "bundled": true }, "atob": { "version": "2.1.1", - "bundled": true, - "dev": true + "bundled": true }, "babel-code-frame": { "version": "6.26.0", "bundled": true, - "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" } }, "babel-generator": { "version": "6.26.1", "bundled": true, - "dev": true, "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" } }, "babel-messages": { "version": "6.23.0", "bundled": true, - "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-runtime": { "version": "6.26.0", "bundled": true, - "dev": true, "requires": { - "core-js": "2.5.6", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { "version": "6.26.0", "bundled": true, - "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.10" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { "version": "6.26.0", "bundled": true, - "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.10" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" } }, "babel-types": { "version": "6.26.0", "bundled": true, - "dev": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { "version": "6.18.0", - "bundled": true, - "dev": true + "bundled": true }, "balanced-match": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "base": { "version": "0.11.2", "bundled": true, - "dev": true, "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "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" }, "dependencies": { "define-property": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "brace-expansion": { "version": "1.1.11", "bundled": true, - "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "braces": { "version": "2.3.2", "bundled": true, - "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "builtin-modules": { "version": "1.1.1", - "bundled": true, - "dev": true + "bundled": true }, "cache-base": { "version": "1.0.1", "bundled": true, - "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" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "caching-transform": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" } }, "camelcase": { "version": "1.2.1", "bundled": true, - "dev": true, "optional": true }, "center-align": { "version": "0.1.3", "bundled": true, - "dev": true, "optional": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chalk": { "version": "1.1.3", "bundled": true, - "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" } }, "class-utils": { "version": "0.3.6", "bundled": true, - "dev": true, "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "cliui": { "version": "2.1.0", "bundled": true, - "dev": true, "optional": 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" }, "dependencies": { "wordwrap": { "version": "0.0.2", "bundled": true, - "dev": true, "optional": true } } }, "code-point-at": { "version": "1.1.0", - "bundled": true, - "dev": true + "bundled": true }, "collection-visit": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "commondir": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "component-emitter": { "version": "1.2.1", - "bundled": true, - "dev": true + "bundled": true }, "concat-map": { "version": "0.0.1", - "bundled": true, - "dev": true + "bundled": true }, "convert-source-map": { "version": "1.5.1", - "bundled": true, - "dev": true + "bundled": true }, "copy-descriptor": { "version": "0.1.1", - "bundled": true, - "dev": true + "bundled": true }, "core-js": { "version": "2.5.6", - "bundled": true, - "dev": true + "bundled": true }, "cross-spawn": { "version": "4.0.2", "bundled": true, - "dev": true, "requires": { - "lru-cache": "4.1.3", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } }, "debug": { "version": "2.6.9", "bundled": true, - "dev": true, "requires": { "ms": "2.0.0" } }, "debug-log": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "decamelize": { "version": "1.2.0", - "bundled": true, - "dev": true + "bundled": true }, "decode-uri-component": { "version": "0.2.0", - "bundled": true, - "dev": true + "bundled": true }, "default-require-extensions": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { - "strip-bom": "2.0.0" + "strip-bom": "^2.0.0" } }, "define-property": { "version": "2.0.2", "bundled": true, - "dev": true, "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "detect-indent": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "error-ex": { "version": "1.3.1", "bundled": true, - "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "escape-string-regexp": { "version": "1.0.5", - "bundled": true, - "dev": true + "bundled": true }, "esutils": { "version": "2.0.2", - "bundled": true, - "dev": true + "bundled": true }, "execa": { "version": "0.7.0", "bundled": true, - "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" }, "dependencies": { "cross-spawn": { "version": "5.1.0", "bundled": true, - "dev": true, "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } } } @@ -3819,31 +4571,28 @@ "expand-brackets": { "version": "2.1.4", "bundled": true, - "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -3851,18 +4600,16 @@ "extend-shallow": { "version": "3.0.2", "bundled": true, - "dev": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -3870,84 +4617,75 @@ "extglob": { "version": "2.0.4", "bundled": true, - "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "fill-range": { "version": "4.0.0", "bundled": true, - "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" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -3955,103 +4693,89 @@ "find-cache-dir": { "version": "0.1.1", "bundled": true, - "dev": true, "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" } }, "find-up": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "for-in": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "foreground-child": { "version": "1.5.6", "bundled": true, - "dev": true, "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" + "cross-spawn": "^4", + "signal-exit": "^3.0.0" } }, "fragment-cache": { "version": "0.2.1", "bundled": true, - "dev": true, "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fs.realpath": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "get-caller-file": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "get-stream": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true }, "get-value": { "version": "2.0.6", - "bundled": true, - "dev": true + "bundled": true }, "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" + "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" } }, "globals": { "version": "9.18.0", - "bundled": true, - "dev": true + "bundled": true }, "graceful-fs": { "version": "4.1.11", - "bundled": true, - "dev": true + "bundled": true }, "handlebars": { "version": "4.0.11", "bundled": true, - "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": { "source-map": { "version": "0.4.4", "bundled": true, - "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -4059,56 +4783,49 @@ "has-ansi": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "has-value": { "version": "1.0.0", "bundled": true, - "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" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "has-values": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "bundled": true, - "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -4116,231 +4833,198 @@ "kind-of": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "hosted-git-info": { "version": "2.6.0", - "bundled": true, - "dev": true + "bundled": true }, "imurmurhash": { "version": "0.1.4", - "bundled": true, - "dev": true + "bundled": true }, "inflight": { "version": "1.0.6", "bundled": true, - "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { "version": "2.0.3", - "bundled": true, - "dev": true + "bundled": true }, "invariant": { "version": "2.2.4", "bundled": true, - "dev": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "is-accessor-descriptor": { "version": "0.1.6", "bundled": true, - "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-arrayish": { "version": "0.2.1", - "bundled": true, - "dev": true + "bundled": true }, "is-buffer": { "version": "1.1.6", - "bundled": true, - "dev": true + "bundled": true }, "is-builtin-module": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-data-descriptor": { "version": "0.1.4", "bundled": true, - "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-descriptor": { "version": "0.1.6", "bundled": true, - "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": { "version": "5.1.0", - "bundled": true, - "dev": true + "bundled": true } } }, "is-extendable": { "version": "0.1.1", - "bundled": true, - "dev": true + "bundled": true }, "is-finite": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "is-number": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-odd": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { - "is-number": "4.0.0" + "is-number": "^4.0.0" }, "dependencies": { "is-number": { "version": "4.0.0", - "bundled": true, - "dev": true + "bundled": true } } }, "is-plain-object": { "version": "2.0.4", "bundled": true, - "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "is-stream": { "version": "1.1.0", - "bundled": true, - "dev": true + "bundled": true }, "is-utf8": { "version": "0.2.1", - "bundled": true, - "dev": true + "bundled": true }, "is-windows": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "isarray": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "isexe": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true }, "istanbul-lib-coverage": { "version": "1.2.0", - "bundled": true, - "dev": true + "bundled": true }, "istanbul-lib-hook": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { - "append-transform": "0.4.0" + "append-transform": "^0.4.0" } }, "istanbul-lib-instrument": { "version": "1.10.1", "bundled": true, - "dev": true, "requires": { - "babel-generator": "6.26.1", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.2.0", - "semver": "5.5.0" + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.0", + "semver": "^5.3.0" } }, "istanbul-lib-report": { "version": "1.1.3", "bundled": true, - "dev": true, "requires": { - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" }, "dependencies": { "supports-color": { "version": "3.2.3", "bundled": true, - "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -4348,19 +5032,17 @@ "istanbul-lib-source-maps": { "version": "1.2.3", "bundled": true, - "dev": true, "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" }, "dependencies": { "debug": { "version": "3.1.0", "bundled": true, - "dev": true, "requires": { "ms": "2.0.0" } @@ -4370,207 +5052,180 @@ "istanbul-reports": { "version": "1.4.0", "bundled": true, - "dev": true, "requires": { - "handlebars": "4.0.11" + "handlebars": "^4.0.3" } }, "js-tokens": { "version": "3.0.2", - "bundled": true, - "dev": true + "bundled": true }, "jsesc": { "version": "1.3.0", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "3.2.2", "bundled": true, - "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lazy-cache": { "version": "1.0.4", "bundled": true, - "dev": true, "optional": true }, "lcid": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "load-json-file": { "version": "1.1.0", "bundled": true, - "dev": true, "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": { "version": "2.0.0", "bundled": true, - "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": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true } } }, "lodash": { "version": "4.17.10", - "bundled": true, - "dev": true + "bundled": true }, "longest": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "loose-envify": { "version": "1.3.1", "bundled": true, - "dev": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "lru-cache": { "version": "4.1.3", "bundled": true, - "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "map-cache": { "version": "0.2.2", - "bundled": true, - "dev": true + "bundled": true }, "map-visit": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "md5-hex": { "version": "1.3.0", "bundled": true, - "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { "version": "0.1.1", - "bundled": true, - "dev": true + "bundled": true }, "mem": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "merge-source-map": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { - "source-map": "0.6.1" + "source-map": "^0.6.1" }, "dependencies": { "source-map": { "version": "0.6.1", - "bundled": true, - "dev": true + "bundled": true } } }, "micromatch": { "version": "3.1.10", "bundled": true, - "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "mimic-fn": { "version": "1.2.0", - "bundled": true, - "dev": true + "bundled": true }, "minimatch": { "version": "3.0.4", "bundled": true, - "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true, - "dev": true + "bundled": true }, "mixin-deep": { "version": "1.3.1", "bundled": true, - "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": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -4578,97 +5233,85 @@ "mkdirp": { "version": "0.5.1", "bundled": true, - "dev": true, "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "nanomatch": { "version": "1.2.9", "bundled": true, - "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-odd": "^2.0.0", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true, - "dev": true + "bundled": true }, "array-unique": { "version": "0.3.2", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "normalize-package-data": { "version": "2.4.0", "bundled": true, - "dev": true, "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "npm-run-path": { "version": "2.0.2", "bundled": true, - "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "object-assign": { "version": "4.1.1", - "bundled": true, - "dev": true + "bundled": true }, "object-copy": { "version": "0.1.0", "bundled": true, - "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": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -4676,323 +5319,277 @@ "object-visit": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "object.pick": { "version": "1.3.0", "bundled": true, - "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "once": { "version": "1.4.0", "bundled": true, - "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "optimist": { "version": "0.6.1", "bundled": true, - "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "os-homedir": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "os-locale": { "version": "2.1.0", "bundled": true, - "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" } }, "p-finally": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "p-limit": { "version": "1.2.0", "bundled": true, - "dev": true, "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { - "p-limit": "1.2.0" + "p-limit": "^1.1.0" } }, "p-try": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "parse-json": { "version": "2.2.0", "bundled": true, - "dev": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "pascalcase": { "version": "0.1.1", - "bundled": true, - "dev": true + "bundled": true }, "path-exists": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "path-key": { "version": "2.0.1", - "bundled": true, - "dev": true + "bundled": true }, "path-parse": { "version": "1.0.5", - "bundled": true, - "dev": true + "bundled": true }, "path-type": { "version": "1.1.0", "bundled": true, - "dev": true, "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" } }, "pify": { "version": "2.3.0", - "bundled": true, - "dev": true + "bundled": true }, "pinkie": { "version": "2.0.4", - "bundled": true, - "dev": true + "bundled": true }, "pinkie-promise": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" }, "dependencies": { "find-up": { "version": "1.1.2", "bundled": true, - "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } }, "posix-character-classes": { "version": "0.1.1", - "bundled": true, - "dev": true + "bundled": true }, "pseudomap": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "read-pkg": { "version": "1.1.0", "bundled": true, - "dev": true, "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": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" }, "dependencies": { "find-up": { "version": "1.1.2", "bundled": true, - "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } }, "regenerator-runtime": { "version": "0.11.1", - "bundled": true, - "dev": true + "bundled": true }, "regex-not": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "repeat-element": { "version": "1.1.2", - "bundled": true, - "dev": true + "bundled": true }, "repeat-string": { "version": "1.6.1", - "bundled": true, - "dev": true + "bundled": true }, "repeating": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "require-directory": { "version": "2.1.1", - "bundled": true, - "dev": true + "bundled": true }, "require-main-filename": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "resolve-from": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "resolve-url": { "version": "0.2.1", - "bundled": true, - "dev": true + "bundled": true }, "ret": { "version": "0.1.15", - "bundled": true, - "dev": true + "bundled": true }, "right-align": { "version": "0.1.3", "bundled": true, - "dev": true, "optional": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { "version": "2.6.2", "bundled": true, - "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-regex": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "semver": { "version": "5.5.0", - "bundled": true, - "dev": true + "bundled": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "set-value": { "version": "2.0.0", "bundled": true, - "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" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5000,55 +5597,48 @@ "shebang-command": { "version": "1.2.0", "bundled": true, - "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, - "dev": true + "bundled": true }, "slide": { "version": "1.1.6", - "bundled": true, - "dev": true + "bundled": true }, "snapdragon": { "version": "0.8.2", "bundled": true, - "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": "3.1.0" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5056,153 +5646,134 @@ "snapdragon-node": { "version": "2.1.1", "bundled": true, - "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" }, "dependencies": { "define-property": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "snapdragon-util": { "version": "3.0.1", "bundled": true, - "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "source-map": { "version": "0.5.7", - "bundled": true, - "dev": true + "bundled": true }, "source-map-resolve": { "version": "0.5.1", "bundled": true, - "dev": true, "requires": { - "atob": "2.1.1", - "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": { "version": "0.4.0", - "bundled": true, - "dev": true + "bundled": true }, "spawn-wrap": { "version": "1.4.2", "bundled": true, - "dev": true, "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.0" + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" } }, "spdx-correct": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { "version": "2.1.0", - "bundled": true, - "dev": true + "bundled": true }, "spdx-expression-parse": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true }, "split-string": { "version": "3.1.0", "bundled": true, - "dev": true, "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "static-extend": { "version": "0.1.2", "bundled": true, - "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": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -5210,23 +5781,20 @@ "string-width": { "version": "2.1.1", "bundled": true, - "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" }, "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true }, "strip-ansi": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -5234,74 +5802,65 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, - "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-eof": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "supports-color": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "test-exclude": { "version": "4.2.1", "bundled": true, - "dev": true, "requires": { - "arrify": "1.0.1", - "micromatch": "3.1.10", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" + "arrify": "^1.0.1", + "micromatch": "^3.1.8", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" }, "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true, - "dev": true + "bundled": true }, "array-unique": { "version": "0.3.2", - "bundled": true, - "dev": true + "bundled": true }, "braces": { "version": "2.3.2", "bundled": true, - "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5309,47 +5868,42 @@ "expand-brackets": { "version": "2.1.4", "bundled": true, - "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { "version": "0.1.6", "bundled": true, - "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "bundled": true, - "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5357,17 +5911,15 @@ "is-data-descriptor": { "version": "0.1.4", "bundled": true, - "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "bundled": true, - "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5375,49 +5927,44 @@ "is-descriptor": { "version": "0.1.6", "bundled": true, - "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": { "version": "5.1.0", - "bundled": true, - "dev": true + "bundled": true } } }, "extglob": { "version": "2.0.4", "bundled": true, - "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5425,20 +5972,18 @@ "fill-range": { "version": "4.0.0", "bundled": true, - "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" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5446,147 +5991,131 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-number": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "bundled": true, - "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true }, "micromatch": { "version": "3.1.10", "bundled": true, - "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } }, "to-fast-properties": { "version": "1.0.3", - "bundled": true, - "dev": true + "bundled": true }, "to-object-path": { "version": "0.3.0", "bundled": true, - "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { "version": "3.0.2", "bundled": true, - "dev": true, "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { "version": "2.1.1", "bundled": true, - "dev": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "dependencies": { "is-number": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } } } }, "trim-right": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "uglify-js": { "version": "2.8.29", "bundled": true, - "dev": true, "optional": 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" }, "dependencies": { "yargs": { "version": "3.10.0", "bundled": true, - "dev": true, "optional": 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" } } @@ -5595,37 +6124,33 @@ "uglify-to-browserify": { "version": "1.0.2", "bundled": true, - "dev": true, "optional": true }, "union-value": { "version": "1.0.0", "bundled": true, - "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": { "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { "version": "0.4.3", "bundled": true, - "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" } } } @@ -5633,26 +6158,23 @@ "unset-value": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { "version": "0.3.1", "bundled": true, - "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": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { "isarray": "1.0.0" } @@ -5661,176 +6183,153 @@ }, "has-values": { "version": "0.1.4", - "bundled": true, - "dev": true + "bundled": true }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "urix": { "version": "0.1.0", - "bundled": true, - "dev": true + "bundled": true }, "use": { "version": "3.1.0", "bundled": true, - "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "validate-npm-package-license": { "version": "3.0.3", "bundled": true, - "dev": true, "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "which": { "version": "1.3.0", "bundled": true, - "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "window-size": { "version": "0.1.0", "bundled": true, - "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "bundled": true, - "dev": true + "bundled": true }, "wrap-ansi": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "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" } } } }, "wrappy": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "write-file-atomic": { "version": "1.3.4", "bundled": true, - "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } }, "y18n": { "version": "3.2.1", - "bundled": true, - "dev": true + "bundled": true }, "yallist": { "version": "2.1.2", - "bundled": true, - "dev": true + "bundled": true }, "yargs": { "version": "11.1.0", "bundled": true, - "dev": true, "requires": { - "cliui": "4.1.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": "9.0.2" + "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": "^9.0.2" }, "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true }, "camelcase": { "version": "4.1.0", - "bundled": true, - "dev": true + "bundled": true }, "cliui": { "version": "4.1.0", "bundled": true, - "dev": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" } }, "strip-ansi": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "yargs-parser": { "version": "9.0.2", "bundled": true, - "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } @@ -5838,15 +6337,13 @@ "yargs-parser": { "version": "8.1.0", "bundled": true, - "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { "version": "4.1.0", - "bundled": true, - "dev": true + "bundled": true } } } @@ -5862,14 +6359,24 @@ "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" }, + "object-inspect": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", + "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==" + }, + "object-keys": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", + "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==" + }, "object.omit": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "optional": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "once": { @@ -5877,7 +6384,28 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" } }, "os-homedir": { @@ -5890,9 +6418,9 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "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" } }, "os-tmpdir": { @@ -5905,9 +6433,9 @@ "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", "requires": { - "graceful-fs": "4.1.11", - "mkdirp": "0.5.1", - "object-assign": "4.1.1" + "graceful-fs": "^4.1.4", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.0" } }, "p-finally": { @@ -5920,7 +6448,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -5928,7 +6456,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { - "p-limit": "1.3.0" + "p-limit": "^1.1.0" } }, "p-try": { @@ -5942,10 +6470,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "optional": 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" } }, "parse-json": { @@ -5953,7 +6481,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "1.3.2" + "error-ex": "^1.2.0" } }, "parseqs": { @@ -5961,7 +6489,7 @@ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseuri": { @@ -5969,7 +6497,7 @@ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "path-exists": { @@ -5982,11 +6510,21 @@ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + }, "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" + }, "path-to-regexp": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", @@ -6009,7 +6547,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { - "pify": "2.3.0" + "pify": "^2.0.0" }, "dependencies": { "pify": { @@ -6030,11 +6568,11 @@ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", "requires": { - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "pify": { @@ -6042,11 +6580,102 @@ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-conf": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", + "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", + "requires": { + "find-up": "^2.0.0", + "load-json-file": "^4.0.0" + }, + "dependencies": { + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + } + } + }, + "pkg-config": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", + "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=", + "requires": { + "debug-log": "^1.0.0", + "find-root": "^1.0.0", + "xtend": "^4.0.1" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "requires": { + "find-up": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "^2.0.0" + } + } + } + }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==" + }, "pngjs": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.3.3.tgz", "integrity": "sha512-1n3Z4p3IOxArEs1VRXnZ/RXdfEniAUS9jb68g58FIXMNkPJeZd+Qh4Uq7/e0LVxAQGos1eIUrqrt4FpjdnEd+Q==" }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, "preserve": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", @@ -6061,8 +6690,21 @@ "process-nextick-args": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "optional": true + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + }, + "progress": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", + "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=" + }, + "prop-types": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", + "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", + "requires": { + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } }, "pseudomap": { "version": "1.0.2", @@ -6074,7 +6716,7 @@ "resolved": "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", "integrity": "sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=", "requires": { - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" + "bitcoin-ops": "^1.3.0" } }, "qrcode": { @@ -6082,11 +6724,11 @@ "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.2.0.tgz", "integrity": "sha512-wZK0Z0eYmOUDP2tOGzmLdeBn5Npa+4wms9GdvzH7HrywvGUq/Stz0BKUhW4DfmBf1PSrm9dNfdnVDq683Zxvag==", "requires": { - "can-promise": "0.0.1", - "dijkstrajs": "1.0.1", - "isarray": "2.0.4", - "pngjs": "3.3.3", - "yargs": "8.0.2" + "can-promise": "^0.0.1", + "dijkstrajs": "^1.0.1", + "isarray": "^2.0.1", + "pngjs": "^3.3.0", + "yargs": "^8.0.2" }, "dependencies": { "isarray": { @@ -6107,9 +6749,9 @@ "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", "optional": true, "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.1" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "dependencies": { "is-number": { @@ -6131,7 +6773,7 @@ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.0" } }, "read-pkg": { @@ -6139,9 +6781,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "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": { @@ -6149,30 +6791,28 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" } }, "readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "optional": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "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" }, "dependencies": { "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "optional": true + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" } } }, @@ -6182,10 +6822,10 @@ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "optional": true, "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.6", - "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" } }, "regenerate": { @@ -6203,9 +6843,9 @@ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.8" + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" } }, "regex-cache": { @@ -6214,7 +6854,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "optional": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "regexpu-core": { @@ -6222,9 +6862,9 @@ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "requires": { - "regenerate": "1.4.0", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "regjsgen": { @@ -6237,7 +6877,7 @@ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { @@ -6268,7 +6908,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" } }, "repl.history": { @@ -6286,18 +6926,91 @@ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "requires": { + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" + } + }, "requires-port": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-0.0.1.tgz", "integrity": "sha1-S0QUQR2d98hVmV3YmajHiilRwW0=" }, + "resolve": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", + "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "requires": { + "path-parse": "^1.0.5" + } + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=" + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "resumer": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", + "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", + "requires": { + "through": "~2.3.4" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "requires": { + "glob": "^7.0.5" + } + }, "ripemd160": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.1" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "requires": { + "is-promise": "^2.1.0" + } + }, + "run-parallel": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", + "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==" + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=" + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "requires": { + "rx-lite": "*" } }, "safe-buffer": { @@ -6305,6 +7018,11 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, "samsam": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz", @@ -6316,7 +7034,7 @@ "resolved": "https://registry.npmjs.org/satoshi-bitcoin/-/satoshi-bitcoin-1.0.4.tgz", "integrity": "sha1-0AK2dwddXLvywhGo3zJUvN9QseQ=", "requires": { - "big.js": "3.2.0" + "big.js": "^3.1.3" } }, "scryptsy": { @@ -6329,14 +7047,14 @@ "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.5.0.tgz", "integrity": "sha512-e5QIJl8W7Y4tT6LHffVcZAxJjvpgE5Owawv6/XCYPQljE9aP2NFFddQ8OYMKhdLshNu88FfL3qCN3/xYkXGRsA==", "requires": { - "bindings": "1.3.0", - "bip66": "1.1.5", - "bn.js": "4.11.8", - "create-hash": "1.2.0", - "drbg.js": "1.0.1", - "elliptic": "6.4.0", - "nan": "2.10.0", - "safe-buffer": "5.1.2" + "bindings": "^1.2.1", + "bip66": "^1.1.3", + "bn.js": "^4.11.3", + "create-hash": "^1.1.2", + "drbg.js": "^1.0.1", + "elliptic": "^6.2.3", + "nan": "^2.2.1", + "safe-buffer": "^5.1.0" } }, "semver": { @@ -6360,8 +7078,8 @@ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "shebang-command": { @@ -6369,7 +7087,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -6388,13 +7106,13 @@ "integrity": "sha512-trdx+mB0VBBgoYucy6a9L7/jfQOmvGeaKZT4OOJ+lPAtI8623xyGr8wLiE4eojzBS8G9yXbhx42GHUOVLr4X2w==", "dev": true, "requires": { - "@sinonjs/formatio": "2.0.0", - "diff": "3.5.0", - "lodash.get": "4.4.2", - "lolex": "2.7.1", - "nise": "1.4.2", - "supports-color": "5.4.0", - "type-detect": "4.0.8" + "@sinonjs/formatio": "^2.0.0", + "diff": "^3.1.0", + "lodash.get": "^4.4.2", + "lolex": "^2.2.0", + "nise": "^1.2.0", + "supports-color": "^5.1.0", + "type-detect": "^4.0.5" }, "dependencies": { "supports-color": { @@ -6403,7 +7121,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -6413,17 +7131,32 @@ "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "requires": { + "is-fullwidth-code-point": "^2.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + } + } + }, "socket.io": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", "requires": { - "debug": "3.1.0", - "engine.io": "3.2.0", - "has-binary2": "1.0.3", - "socket.io-adapter": "1.1.1", + "debug": "~3.1.0", + "engine.io": "~3.2.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", "socket.io-client": "2.1.1", - "socket.io-parser": "3.2.0" + "socket.io-parser": "~3.2.0" } }, "socket.io-adapter": { @@ -6440,15 +7173,15 @@ "base64-arraybuffer": "0.1.5", "component-bind": "1.0.0", "component-emitter": "1.2.1", - "debug": "3.1.0", - "engine.io-client": "3.2.1", - "has-binary2": "1.0.3", + "debug": "~3.1.0", + "engine.io-client": "~3.2.0", + "has-binary2": "~1.0.2", "has-cors": "1.1.0", "indexof": "0.0.1", "object-component": "0.0.3", "parseqs": "0.0.5", "parseuri": "0.0.5", - "socket.io-parser": "3.2.0", + "socket.io-parser": "~3.2.0", "to-array": "0.1.4" } }, @@ -6458,7 +7191,7 @@ "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", "requires": { "component-emitter": "1.2.1", - "debug": "3.1.0", + "debug": "~3.1.0", "isarray": "2.0.1" }, "dependencies": { @@ -6479,7 +7212,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } }, "spdx-correct": { @@ -6487,8 +7220,8 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -6501,8 +7234,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -6510,13 +7243,52 @@ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==" }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "standard": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/standard/-/standard-11.0.1.tgz", + "integrity": "sha512-nu0jAcHiSc8H+gJCXeiziMVZNDYi8MuqrYJKxTgjP4xKXZMKm311boqQIzDrYI/ktosltxt2CbDjYQs9ANC8IA==", + "requires": { + "eslint": "~4.18.0", + "eslint-config-standard": "11.0.0", + "eslint-config-standard-jsx": "5.0.0", + "eslint-plugin-import": "~2.9.0", + "eslint-plugin-node": "~6.0.0", + "eslint-plugin-promise": "~3.7.0", + "eslint-plugin-react": "~7.7.0", + "eslint-plugin-standard": "~3.0.1", + "standard-engine": "~8.0.0" + } + }, + "standard-engine": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-8.0.1.tgz", + "integrity": "sha512-LA531C3+nljom/XRvdW/hGPXwmilRkaRkENhO3FAGF1Vtq/WtCXzgmnc5S6vUHHsgv534MRy02C1ikMwZXC+tw==", + "requires": { + "deglob": "^2.1.0", + "get-stdin": "^6.0.0", + "minimist": "^1.1.0", + "pkg-conf": "^2.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + } + } + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "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" }, "dependencies": { "ansi-regex": { @@ -6534,18 +7306,27 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } }, + "string.prototype.trim": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", + "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.0", + "function-bind": "^1.0.2" + } + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "optional": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -6553,7 +7334,7 @@ "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": { @@ -6566,24 +7347,92 @@ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" }, + "table": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "requires": { + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", + "slice-ansi": "1.0.0", + "string-width": "^2.1.1" + } + }, + "tape": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/tape/-/tape-4.9.1.tgz", + "integrity": "sha512-6fKIXknLpoe/Jp4rzHKFPpJUHDHDqn8jus99IfPnHIjyz78HYlefTGD3b5EkbQzuLfaEvmfPK3IolLgq2xT3kw==", + "requires": { + "deep-equal": "~1.0.1", + "defined": "~1.0.0", + "for-each": "~0.3.3", + "function-bind": "~1.1.1", + "glob": "~7.1.2", + "has": "~1.0.3", + "inherits": "~2.0.3", + "minimist": "~1.2.0", + "object-inspect": "~1.6.0", + "resolve": "~1.7.1", + "resumer": "~0.0.0", + "string.prototype.trim": "~1.1.2", + "through": "~2.3.8" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "resolve": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", + "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", + "requires": { + "path-parse": "^1.0.5" + } + } + } + }, "text-encoding": { "version": "0.6.4", "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", "integrity": "sha1-45mpgiV6J22uQou5KEXLcb3CbRk=", "dev": true }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, "through2": { "version": "0.6.5", "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", "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" }, "dependencies": { "isarray": { @@ -6596,10 +7445,10 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.1", + "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": { @@ -6609,6 +7458,14 @@ } } }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "~1.0.2" + } + }, "to-array": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", @@ -6624,7 +7481,7 @@ "resolved": "https://registry.npmjs.org/topo/-/topo-1.1.0.tgz", "integrity": "sha1-6ddRYV0buH3IZdsYL6HKCl71NtU=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "touch": { @@ -6632,7 +7489,7 @@ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", "requires": { - "nopt": "1.0.10" + "nopt": "~1.0.10" } }, "traverse": { @@ -6645,12 +7502,25 @@ "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "~1.1.2" + } + }, "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, "typeforce": { "version": "1.12.0", "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.12.0.tgz", @@ -6661,6 +7531,11 @@ "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" + }, "unorm": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.4.1.tgz", @@ -6682,15 +7557,14 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "optional": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "v8flags": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "requires": { - "user-home": "1.1.1" + "user-home": "^1.1.1" } }, "validate-npm-package-license": { @@ -6698,8 +7572,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "varuint-bitcoin": { @@ -6707,7 +7581,7 @@ "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz", "integrity": "sha512-jCEPG+COU/1Rp84neKTyDJQr478/hAfVp5xxYn09QEH0yBjbmPeMfuuQIrp+BUD83hybtYZKhr5elV3bvdV1bA==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.1" } }, "vision": { @@ -6715,10 +7589,10 @@ "resolved": "https://registry.npmjs.org/vision/-/vision-3.0.0.tgz", "integrity": "sha1-GEWEb2wjpvJTXa8woeHnHQukjGI=", "requires": { - "boom": "2.10.1", - "hoek": "2.16.3", - "items": "1.1.1", - "joi": "6.10.1" + "boom": "2.x.x", + "hoek": "^2.9.x", + "items": "^1.1.x", + "joi": "6.x.x" } }, "which": { @@ -6726,7 +7600,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -6739,7 +7613,7 @@ "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", "requires": { - "bs58check": "2.1.1" + "bs58check": "<3.0.0" } }, "window-or-global": { @@ -6747,13 +7621,18 @@ "resolved": "https://registry.npmjs.org/window-or-global/-/window-or-global-1.0.1.tgz", "integrity": "sha1-2+RboqKRqrxW1iz2bEW3+jIpRt4=" }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, "wrap-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "string-width": { @@ -6761,9 +7640,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" } } } @@ -6778,8 +7657,16 @@ "resolved": "https://registry.npmjs.org/wreck/-/wreck-6.3.0.tgz", "integrity": "sha1-oTaXafB7u2LWo3gzanhx/Hc8dAs=", "requires": { - "boom": "2.10.1", - "hoek": "2.16.3" + "boom": "2.x.x", + "hoek": "2.x.x" + } + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "requires": { + "mkdirp": "^0.5.1" } }, "ws": { @@ -6787,9 +7674,9 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.2", - "ultron": "1.1.1" + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" } }, "xmlhttprequest-ssl": { @@ -6817,19 +7704,19 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.3", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.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": "7.0.0" + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^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": "^7.0.0" } }, "yargs-parser": { @@ -6837,7 +7724,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } }, "yeast": { diff --git a/package.json b/package.json index 8ddc020b..bf474a1e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.4.2", + "version": "1.4.3", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", @@ -29,6 +29,7 @@ "bchaddrjs": "^0.2.1", "bigi": "^1.4.2", "bip21": "Bitcoin-com/bip21", + "bip32-utils": "Bitcoin-com/bip32-utils#6d27e98d15ceb7543f904d7f770d1e39a806e6e8", "bip38": "^2.0.2", "bip39": "^2.5.0", "bip66": "^1.1.5", diff --git a/src/HDNode.js b/src/HDNode.js index a9dc4157..d4d29588 100644 --- a/src/HDNode.js +++ b/src/HDNode.js @@ -1,7 +1,7 @@ import Bitcoin from 'bitcoincashjs-lib'; import bchaddr from 'bchaddrjs'; import coininfo from'coininfo'; -// let bip32utils = require('bip32-utils') +import bip32utils from 'bip32-utils'; class HDNode { fromSeed(rootSeedBuffer, network = 'bitcoincash') { @@ -101,10 +101,16 @@ class HDNode { return Bitcoin.HDNode.fromBase58(base58, network); } - // - // createChain(hdNode) { - // return new bip32utils.Chain(hdNode); - // } + createAccount(hdNodes) { + let arr = hdNodes.map((item, index) => { + return new bip32utils.Chain(item.neutered()) + }); + return new bip32utils.Account(arr); + } + + createChain(hdNode) { + return new bip32utils.Chain(hdNode); + } } export default HDNode; diff --git a/test/HDNode.js b/test/HDNode.js index 6af45758..0227c276 100644 --- a/test/HDNode.js +++ b/test/HDNode.js @@ -218,36 +218,38 @@ describe('#HDNode', () => { }); }); }); - // - // describe('create accounts and addresses', () => { - // fixtures.accounts.forEach((fixture) => { - // let seedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) - // let hdNode = BITBOX.HDNode.fromSeed(seedBuffer) - // let a = BITBOX.HDNode.derivePath(hdNode, "0'"); - // let external = BITBOX.HDNode.derivePath(a, "0"); - // let account = BITBOX.HDNode.createAccount([external]); - // - // it(`#createAccount`, () => { - // assert.notEqual(account, null); - // }); - // - // describe('#getChainAddress', () => { - // let external1 = BITBOX.Address.toCashAddress(account.getChainAddress(0)); - // it(`should create external change address ${external1}`, () => { - // assert.equal(external1, fixture.externals[0] ); - // }); - // }); - // - // describe('#nextChainAddress', () => { - // for(let i = 0; i < 4; i++) { - // let ex = BITBOX.Address.toCashAddress(account.nextChainAddress(0)); - // it(`should create external change address ${ex}`, () => { - // assert.equal(ex, fixture.externals[i + 1]); - // }); - // } - // }); - // }); - // }); + + describe('#bip32', () => { + describe('create accounts and addresses', () => { + fixtures.accounts.forEach((fixture) => { + let seedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) + let hdNode = BITBOX.HDNode.fromSeed(seedBuffer) + let a = BITBOX.HDNode.derivePath(hdNode, "0'"); + let external = BITBOX.HDNode.derivePath(a, "0"); + let account = BITBOX.HDNode.createAccount([external]); + + it(`#createAccount`, () => { + assert.notEqual(account, null); + }); + + describe('#getChainAddress', () => { + let external1 = BITBOX.Address.toCashAddress(account.getChainAddress(0)); + it(`should create external change address ${external1}`, () => { + assert.equal(external1, fixture.externals[0] ); + }); + }); + + describe('#nextChainAddress', () => { + for(let i = 0; i < 4; i++) { + let ex = BITBOX.Address.toCashAddress(account.nextChainAddress(0)); + it(`should create external change address ${ex}`, () => { + assert.equal(ex, fixture.externals[i + 1]); + }); + } + }); + }); + }); + }); describe('#sign', () => { fixtures.sign.forEach((fixture) => { From 028f53c010dfeed8923b2abc7bbed77862c46538 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 24 Jul 2018 14:45:27 +0900 Subject: [PATCH 039/480] Package lock --- package-lock.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index fcff4ad7..a72f2e11 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.4.2", + "version": "1.4.3", "lockfileVersion": 1, "requires": true, "dependencies": { From ceb10197110a10430b9a50106bdfff8d56781f90 Mon Sep 17 00:00:00 2001 From: James Cramer Date: Tue, 24 Jul 2018 06:55:34 -0400 Subject: [PATCH 040/480] fix for missing buffer import with webpack --- lib/Crypto.d.ts | 2 ++ lib/ECPair.d.ts | 1 + lib/HDNode.d.ts | 2 ++ lib/Mnemonic.d.ts | 2 ++ lib/Script.d.ts | 2 ++ lib/Transaction.d.ts | 2 ++ lib/TransactionBuilder.d.ts | 2 ++ typings/Crypto.d.ts | 2 ++ typings/ECPair.d.ts | 1 + typings/HDNode.d.ts | 2 ++ typings/Mnemonic.d.ts | 2 ++ typings/Script.d.ts | 2 ++ typings/Transaction.d.ts | 2 ++ typings/TransactionBuilder.d.ts | 2 ++ 14 files changed, 26 insertions(+) diff --git a/lib/Crypto.d.ts b/lib/Crypto.d.ts index 39faa4e3..d181e9f5 100644 --- a/lib/Crypto.d.ts +++ b/lib/Crypto.d.ts @@ -1,3 +1,5 @@ +import {Buffer} from 'buffer'; + export declare interface Crypto { sha256(buffer: Buffer): Buffer; ripemd160(buffer: Buffer): Buffer; diff --git a/lib/ECPair.d.ts b/lib/ECPair.d.ts index 5cd3a3f0..d6842366 100644 --- a/lib/ECPair.d.ts +++ b/lib/ECPair.d.ts @@ -1,3 +1,4 @@ +import {Buffer} from 'buffer'; declare type ECSignature = any; diff --git a/lib/HDNode.d.ts b/lib/HDNode.d.ts index 63f116ef..3437521b 100644 --- a/lib/HDNode.d.ts +++ b/lib/HDNode.d.ts @@ -1,3 +1,5 @@ +import {Buffer} from 'buffer'; + import { ECPair, ECSignature } from "./ECPair"; export declare interface HDNode { diff --git a/lib/Mnemonic.d.ts b/lib/Mnemonic.d.ts index 375eb6fd..c9b4ac88 100644 --- a/lib/Mnemonic.d.ts +++ b/lib/Mnemonic.d.ts @@ -1,3 +1,5 @@ +import {Buffer} from 'buffer'; + export declare interface Mnemonic { generate(bits: number, wordlist?: string[]): string; fromEntropy(bytes: Buffer, wordlist?: string[]): string; diff --git a/lib/Script.d.ts b/lib/Script.d.ts index 64f91387..779c07fe 100644 --- a/lib/Script.d.ts +++ b/lib/Script.d.ts @@ -1,3 +1,5 @@ +import {Buffer} from 'buffer'; + export declare interface Script { opcodes: opcodes; // nullData: null; diff --git a/lib/Transaction.d.ts b/lib/Transaction.d.ts index b35348be..218d3180 100644 --- a/lib/Transaction.d.ts +++ b/lib/Transaction.d.ts @@ -1,3 +1,5 @@ +import {Buffer} from 'buffer'; + import { ITransactionBuilder } from './TransactionBuilder'; export declare interface Transaction { //constructor(restURL: string); diff --git a/lib/TransactionBuilder.d.ts b/lib/TransactionBuilder.d.ts index 1ecb2379..b2d4d5d8 100644 --- a/lib/TransactionBuilder.d.ts +++ b/lib/TransactionBuilder.d.ts @@ -1,3 +1,5 @@ +import {Buffer} from 'buffer'; + import { Transaction } from './Transaction'; import { ECPair } from './ECPair'; diff --git a/typings/Crypto.d.ts b/typings/Crypto.d.ts index 39faa4e3..d181e9f5 100644 --- a/typings/Crypto.d.ts +++ b/typings/Crypto.d.ts @@ -1,3 +1,5 @@ +import {Buffer} from 'buffer'; + export declare interface Crypto { sha256(buffer: Buffer): Buffer; ripemd160(buffer: Buffer): Buffer; diff --git a/typings/ECPair.d.ts b/typings/ECPair.d.ts index 5cd3a3f0..d6842366 100644 --- a/typings/ECPair.d.ts +++ b/typings/ECPair.d.ts @@ -1,3 +1,4 @@ +import {Buffer} from 'buffer'; declare type ECSignature = any; diff --git a/typings/HDNode.d.ts b/typings/HDNode.d.ts index 63f116ef..3437521b 100644 --- a/typings/HDNode.d.ts +++ b/typings/HDNode.d.ts @@ -1,3 +1,5 @@ +import {Buffer} from 'buffer'; + import { ECPair, ECSignature } from "./ECPair"; export declare interface HDNode { diff --git a/typings/Mnemonic.d.ts b/typings/Mnemonic.d.ts index 375eb6fd..c9b4ac88 100644 --- a/typings/Mnemonic.d.ts +++ b/typings/Mnemonic.d.ts @@ -1,3 +1,5 @@ +import {Buffer} from 'buffer'; + export declare interface Mnemonic { generate(bits: number, wordlist?: string[]): string; fromEntropy(bytes: Buffer, wordlist?: string[]): string; diff --git a/typings/Script.d.ts b/typings/Script.d.ts index 64f91387..779c07fe 100644 --- a/typings/Script.d.ts +++ b/typings/Script.d.ts @@ -1,3 +1,5 @@ +import {Buffer} from 'buffer'; + export declare interface Script { opcodes: opcodes; // nullData: null; diff --git a/typings/Transaction.d.ts b/typings/Transaction.d.ts index b35348be..218d3180 100644 --- a/typings/Transaction.d.ts +++ b/typings/Transaction.d.ts @@ -1,3 +1,5 @@ +import {Buffer} from 'buffer'; + import { ITransactionBuilder } from './TransactionBuilder'; export declare interface Transaction { //constructor(restURL: string); diff --git a/typings/TransactionBuilder.d.ts b/typings/TransactionBuilder.d.ts index 1ecb2379..b2d4d5d8 100644 --- a/typings/TransactionBuilder.d.ts +++ b/typings/TransactionBuilder.d.ts @@ -1,3 +1,5 @@ +import {Buffer} from 'buffer'; + import { Transaction } from './Transaction'; import { ECPair } from './ECPair'; From 921ac04150a3d6e8bf73882601b2f266729f918c Mon Sep 17 00:00:00 2001 From: James Cramer Date: Tue, 24 Jul 2018 10:24:29 -0400 Subject: [PATCH 041/480] typing improvements --- lib/Price.d.ts | 2 +- lib/Socket.d.ts | 6 +++--- lib/Transaction.d.ts | 6 +++--- lib/TransactionBuilder.d.ts | 6 +++--- lib/bitbox-cli.d.ts | 14 +++++++------- typings/Price.d.ts | 2 +- typings/Socket.d.ts | 6 +++--- typings/Transaction.d.ts | 6 +++--- typings/TransactionBuilder.d.ts | 6 +++--- typings/bitbox-cli.d.ts | 14 +++++++------- 10 files changed, 34 insertions(+), 34 deletions(-) diff --git a/lib/Price.d.ts b/lib/Price.d.ts index c3955b71..5e4ddcf9 100644 --- a/lib/Price.d.ts +++ b/lib/Price.d.ts @@ -1,5 +1,5 @@ declare interface Price { - current(currency: string): Promise; + current(currency?: string): Promise; } export default Price; \ No newline at end of file diff --git a/lib/Socket.d.ts b/lib/Socket.d.ts index 8bc7d808..399eb3cc 100644 --- a/lib/Socket.d.ts +++ b/lib/Socket.d.ts @@ -1,6 +1,6 @@ -declare interface ISocket { - new(restURL: string): ISocket +declare interface Socket { + new(restURL?: string): Socket listen(endpoint: string, cb: any): void; } -export default ISocket; \ No newline at end of file +export default Socket; \ No newline at end of file diff --git a/lib/Transaction.d.ts b/lib/Transaction.d.ts index 218d3180..0dcbb650 100644 --- a/lib/Transaction.d.ts +++ b/lib/Transaction.d.ts @@ -1,13 +1,13 @@ import {Buffer} from 'buffer'; -import { ITransactionBuilder } from './TransactionBuilder'; +import { TransactionBuilder } from './TransactionBuilder'; export declare interface Transaction { //constructor(restURL: string); transaction(): Transaction; toHex(): string; fromHex(hex: string): string; - transactionBuilder(network: string): ITransactionBuilder; - fromTransaction(tx: Transaction): ITransactionBuilder; + transactionBuilder(network: string): TransactionBuilder; + fromTransaction(tx: Transaction): TransactionBuilder; details(txid: string| string[]): Promise; // lower level methods diff --git a/lib/TransactionBuilder.d.ts b/lib/TransactionBuilder.d.ts index b2d4d5d8..62a72f64 100644 --- a/lib/TransactionBuilder.d.ts +++ b/lib/TransactionBuilder.d.ts @@ -5,7 +5,7 @@ import { ECPair } from './ECPair'; declare type ECSignature = any; -export declare interface ITransactionBuilder { +export declare interface TransactionBuilder { // bitcoincash: coininfo.bitcoincash.main; // bitcoincashBitcoinJSLib: Bitcoin.toBitcoinJS; transaction: Transaction; @@ -14,8 +14,8 @@ export declare interface ITransactionBuilder { bip66 : any; bip68 : any; - new(network?: string): ITransactionBuilder; - + new(network?: string): TransactionBuilder; + addInput(txHash: string|Buffer, vout: number, sequence?: number, prevOutScript?: string): void; addOutput(scriptPubKey: string|Buffer, amount: number): void; sign(vin: number, keyPair: ECPair, redeemScript: Buffer | undefined, hashType: number, value: number): ECSignature; diff --git a/lib/bitbox-cli.d.ts b/lib/bitbox-cli.d.ts index cad7eecd..f5967302 100644 --- a/lib/bitbox-cli.d.ts +++ b/lib/bitbox-cli.d.ts @@ -13,16 +13,16 @@ import { Mnemonic } from './Mnemonic'; import { Address } from './Address'; import { HDNode } from './HDNode'; import { Transaction } from './Transaction'; -import { ITransactionBuilder } from './TransactionBuilder'; +import { TransactionBuilder } from './TransactionBuilder'; import { ECPair } from './ECPair'; import { Script } from './Script'; import Price from './Price'; -import ISocket from './Socket'; +import Socket from './Socket'; -declare interface IBITBOXCli { +declare class BITBOXCli { - new(config?: any): IBITBOXCli + constructor(config?: any); restURL: string; Address: Address; @@ -41,9 +41,9 @@ declare interface IBITBOXCli { RawTransactions: RawTransactions; Script: Script; Transaction: Transaction; - TransactionBuilder: ITransactionBuilder; + TransactionBuilder: TransactionBuilder; Util: Util; - Socket: ISocket; + Socket: Socket; } -export default IBITBOXCli; +export default BITBOXCli; diff --git a/typings/Price.d.ts b/typings/Price.d.ts index c3955b71..5e4ddcf9 100644 --- a/typings/Price.d.ts +++ b/typings/Price.d.ts @@ -1,5 +1,5 @@ declare interface Price { - current(currency: string): Promise; + current(currency?: string): Promise; } export default Price; \ No newline at end of file diff --git a/typings/Socket.d.ts b/typings/Socket.d.ts index 8bc7d808..399eb3cc 100644 --- a/typings/Socket.d.ts +++ b/typings/Socket.d.ts @@ -1,6 +1,6 @@ -declare interface ISocket { - new(restURL: string): ISocket +declare interface Socket { + new(restURL?: string): Socket listen(endpoint: string, cb: any): void; } -export default ISocket; \ No newline at end of file +export default Socket; \ No newline at end of file diff --git a/typings/Transaction.d.ts b/typings/Transaction.d.ts index 218d3180..0dcbb650 100644 --- a/typings/Transaction.d.ts +++ b/typings/Transaction.d.ts @@ -1,13 +1,13 @@ import {Buffer} from 'buffer'; -import { ITransactionBuilder } from './TransactionBuilder'; +import { TransactionBuilder } from './TransactionBuilder'; export declare interface Transaction { //constructor(restURL: string); transaction(): Transaction; toHex(): string; fromHex(hex: string): string; - transactionBuilder(network: string): ITransactionBuilder; - fromTransaction(tx: Transaction): ITransactionBuilder; + transactionBuilder(network: string): TransactionBuilder; + fromTransaction(tx: Transaction): TransactionBuilder; details(txid: string| string[]): Promise; // lower level methods diff --git a/typings/TransactionBuilder.d.ts b/typings/TransactionBuilder.d.ts index b2d4d5d8..62a72f64 100644 --- a/typings/TransactionBuilder.d.ts +++ b/typings/TransactionBuilder.d.ts @@ -5,7 +5,7 @@ import { ECPair } from './ECPair'; declare type ECSignature = any; -export declare interface ITransactionBuilder { +export declare interface TransactionBuilder { // bitcoincash: coininfo.bitcoincash.main; // bitcoincashBitcoinJSLib: Bitcoin.toBitcoinJS; transaction: Transaction; @@ -14,8 +14,8 @@ export declare interface ITransactionBuilder { bip66 : any; bip68 : any; - new(network?: string): ITransactionBuilder; - + new(network?: string): TransactionBuilder; + addInput(txHash: string|Buffer, vout: number, sequence?: number, prevOutScript?: string): void; addOutput(scriptPubKey: string|Buffer, amount: number): void; sign(vin: number, keyPair: ECPair, redeemScript: Buffer | undefined, hashType: number, value: number): ECSignature; diff --git a/typings/bitbox-cli.d.ts b/typings/bitbox-cli.d.ts index cad7eecd..f5967302 100644 --- a/typings/bitbox-cli.d.ts +++ b/typings/bitbox-cli.d.ts @@ -13,16 +13,16 @@ import { Mnemonic } from './Mnemonic'; import { Address } from './Address'; import { HDNode } from './HDNode'; import { Transaction } from './Transaction'; -import { ITransactionBuilder } from './TransactionBuilder'; +import { TransactionBuilder } from './TransactionBuilder'; import { ECPair } from './ECPair'; import { Script } from './Script'; import Price from './Price'; -import ISocket from './Socket'; +import Socket from './Socket'; -declare interface IBITBOXCli { +declare class BITBOXCli { - new(config?: any): IBITBOXCli + constructor(config?: any); restURL: string; Address: Address; @@ -41,9 +41,9 @@ declare interface IBITBOXCli { RawTransactions: RawTransactions; Script: Script; Transaction: Transaction; - TransactionBuilder: ITransactionBuilder; + TransactionBuilder: TransactionBuilder; Util: Util; - Socket: ISocket; + Socket: Socket; } -export default IBITBOXCli; +export default BITBOXCli; From 8781e2b72180263486dd96c17473051fd7b33831 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 25 Jul 2018 06:57:47 +0900 Subject: [PATCH 042/480] version. --- index.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 45c353b6..16e63e48 100755 --- a/index.js +++ b/index.js @@ -19,7 +19,7 @@ let corsproxy = require('corsproxy'); let cmd = require('node-cmd'); program - .version('1.4.3'); + .version('1.4.4'); program .command('new ') diff --git a/package.json b/package.json index bf474a1e..b3812d25 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.4.3", + "version": "1.4.4", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", From e1c8f1f70b0778f4e7332eb7c7397974c107ddd9 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 25 Jul 2018 07:03:54 +0900 Subject: [PATCH 043/480] Bump v. --- package-lock.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index a72f2e11..533f92e2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.4.3", + "version": "1.4.4", "lockfileVersion": 1, "requires": true, "dependencies": { From 84d7ecb5245e4316afedd2b26ab9f1934a64f8e8 Mon Sep 17 00:00:00 2001 From: Fairy <32335696+MissMonacoin@users.noreply.github.com> Date: Wed, 25 Jul 2018 23:22:15 +0900 Subject: [PATCH 044/480] Added homepage and git repo --- package.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/package.json b/package.json index b3812d25..a8c90e65 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,11 @@ "bin": { "bitbox": "./index.js" }, + "homepage": "https://www.bitbox.earth", + "repository": { + "type": "git", + "url": "git+https://github.com/Bitcoin-com/bitbox-javascript-sdk.git" + }, "dependencies": { "assert": "^1.4.1", "axios": "^0.17.1", From 4e095dca0154a9eca02c0da4bb56a756d352b94d Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Thu, 26 Jul 2018 14:53:10 +0900 Subject: [PATCH 045/480] Update Socket constructor to accept config object. --- index.js | 2 +- lib/Socket.js | 14 +- package-lock.json | 3195 ++++++++++++++++++++++----------------------- package.json | 2 +- src/Socket.js | 13 +- 5 files changed, 1618 insertions(+), 1608 deletions(-) diff --git a/index.js b/index.js index 16e63e48..bab48b06 100755 --- a/index.js +++ b/index.js @@ -19,7 +19,7 @@ let corsproxy = require('corsproxy'); let cmd = require('node-cmd'); program - .version('1.4.4'); + .version('1.4.5'); program .command('new ') diff --git a/lib/Socket.js b/lib/Socket.js index e860c3f8..198d28a6 100644 --- a/lib/Socket.js +++ b/lib/Socket.js @@ -15,12 +15,18 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var Socket = function () { - function Socket() { - var restURL = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'https://rest.bitbox.earth'; - + function Socket(config) { _classCallCheck(this, Socket); - this.socket = (0, _socket2.default)('' + restURL); + if (config.restURL) { + this.socket = (0, _socket2.default)('' + config.restURL); + } else { + var restURL = 'https://rest.bitbox.earth'; + this.socket = (0, _socket2.default)('' + restURL); + } + if (config.callback) { + config.callback(); + } } _createClass(Socket, [{ diff --git a/package-lock.json b/package-lock.json index 533f92e2..dbffe555 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.4.4", + "version": "1.4.5", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -29,7 +29,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "requires": { - "mime-types": "~2.1.18", + "mime-types": "2.1.19", "negotiator": "0.6.1" } }, @@ -43,7 +43,7 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "requires": { - "acorn": "^3.0.4" + "acorn": "3.3.0" }, "dependencies": { "acorn": { @@ -63,10 +63,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" } }, "ajv-keywords": { @@ -79,8 +79,8 @@ "resolved": "https://registry.npmjs.org/ammo/-/ammo-1.0.1.tgz", "integrity": "sha1-j4rdFM1Jve3jurOj4OvK8h0D3os=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x" + "boom": "2.10.1", + "hoek": "2.16.3" } }, "ansi-escapes": { @@ -104,8 +104,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "optional": true, "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" + "micromatch": "2.3.11", + "normalize-path": "2.1.1" } }, "argparse": { @@ -113,7 +113,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "~1.0.2" + "sprintf-js": "1.0.3" } }, "arr-diff": { @@ -122,7 +122,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "optional": true, "requires": { - "arr-flatten": "^1.0.1" + "arr-flatten": "1.1.0" } }, "arr-flatten": { @@ -136,8 +136,8 @@ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.7.0" + "define-properties": "1.1.2", + "es-abstract": "1.12.0" } }, "array-union": { @@ -145,7 +145,7 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "requires": { - "array-uniq": "^1.0.1" + "array-uniq": "1.0.3" } }, "array-uniq": { @@ -199,8 +199,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=", "requires": { - "follow-redirects": "^1.2.5", - "is-buffer": "^1.1.5" + "follow-redirects": "1.5.1", + "is-buffer": "1.1.6" } }, "babel-cli": { @@ -208,21 +208,21 @@ "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", "requires": { - "babel-core": "^6.26.0", - "babel-polyfill": "^6.26.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "chokidar": "^1.6.1", - "commander": "^2.11.0", - "convert-source-map": "^1.5.0", - "fs-readdir-recursive": "^1.0.0", - "glob": "^7.1.2", - "lodash": "^4.17.4", - "output-file-sync": "^1.1.2", - "path-is-absolute": "^1.0.1", - "slash": "^1.0.0", - "source-map": "^0.5.6", - "v8flags": "^2.1.1" + "babel-core": "6.26.3", + "babel-polyfill": "6.26.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "chokidar": "1.7.0", + "commander": "2.16.0", + "convert-source-map": "1.5.1", + "fs-readdir-recursive": "1.1.0", + "glob": "7.1.2", + "lodash": "4.17.10", + "output-file-sync": "1.1.2", + "path-is-absolute": "1.0.1", + "slash": "1.0.0", + "source-map": "0.5.7", + "v8flags": "2.1.1" } }, "babel-code-frame": { @@ -230,9 +230,9 @@ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" }, "dependencies": { "chalk": { @@ -240,11 +240,11 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { - "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" + "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" } } } @@ -254,25 +254,25 @@ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.1", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.5.1", + "debug": "2.6.9", + "json5": "0.5.1", + "lodash": "4.17.10", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "slash": "1.0.0", + "source-map": "0.5.7" }, "dependencies": { "debug": { @@ -290,14 +290,14 @@ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.10", + "source-map": "0.5.7", + "trim-right": "1.0.1" } }, "babel-helper-builder-binary-assignment-operator-visitor": { @@ -305,9 +305,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "requires": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-explode-assignable-expression": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-builder-react-jsx": { @@ -315,9 +315,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "esutils": "^2.0.2" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "esutils": "2.0.2" } }, "babel-helper-call-delegate": { @@ -325,10 +325,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-define-map": { @@ -336,10 +336,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.10" } }, "babel-helper-explode-assignable-expression": { @@ -347,9 +347,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-function-name": { @@ -357,11 +357,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "requires": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-get-function-arity": { @@ -369,8 +369,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-hoist-variables": { @@ -378,8 +378,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-optimise-call-expression": { @@ -387,8 +387,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-regex": { @@ -396,9 +396,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.10" } }, "babel-helper-remap-async-to-generator": { @@ -406,11 +406,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-replace-supers": { @@ -418,12 +418,12 @@ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "requires": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-optimise-call-expression": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helpers": { @@ -431,8 +431,8 @@ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-messages": { @@ -440,7 +440,7 @@ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-check-es2015-constants": { @@ -448,7 +448,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-syntax-async-functions": { @@ -481,9 +481,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-functions": "6.13.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-arrow-functions": { @@ -491,7 +491,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -499,7 +499,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -507,11 +507,11 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "requires": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.10" } }, "babel-plugin-transform-es2015-classes": { @@ -519,15 +519,15 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "requires": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-define-map": "6.26.0", + "babel-helper-function-name": "6.24.1", + "babel-helper-optimise-call-expression": "6.24.1", + "babel-helper-replace-supers": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-computed-properties": { @@ -535,8 +535,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-destructuring": { @@ -544,7 +544,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -552,8 +552,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-for-of": { @@ -561,7 +561,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -569,9 +569,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-literals": { @@ -579,7 +579,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -587,9 +587,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -597,10 +597,10 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-modules-systemjs": { @@ -608,9 +608,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-modules-umd": { @@ -618,9 +618,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "requires": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-object-super": { @@ -628,8 +628,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "requires": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" + "babel-helper-replace-supers": "6.24.1", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -637,12 +637,12 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "requires": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-call-delegate": "6.24.1", + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-shorthand-properties": { @@ -650,8 +650,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-spread": { @@ -659,7 +659,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -667,9 +667,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-template-literals": { @@ -677,7 +677,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -685,7 +685,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -693,9 +693,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "regexpu-core": "2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -703,9 +703,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", + "babel-plugin-syntax-exponentiation-operator": "6.13.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-flow-strip-types": { @@ -713,8 +713,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", "requires": { - "babel-plugin-syntax-flow": "^6.18.0", - "babel-runtime": "^6.22.0" + "babel-plugin-syntax-flow": "6.18.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-react-display-name": { @@ -722,7 +722,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-react-jsx": { @@ -730,9 +730,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", "requires": { - "babel-helper-builder-react-jsx": "^6.24.1", - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-builder-react-jsx": "6.26.0", + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-react-jsx-self": { @@ -740,8 +740,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", "requires": { - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-react-jsx-source": { @@ -749,8 +749,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", "requires": { - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-regenerator": { @@ -758,7 +758,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "requires": { - "regenerator-transform": "^0.10.0" + "regenerator-transform": "0.10.1" } }, "babel-plugin-transform-strict-mode": { @@ -766,8 +766,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-polyfill": { @@ -775,9 +775,9 @@ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "requires": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" + "babel-runtime": "6.26.0", + "core-js": "2.5.7", + "regenerator-runtime": "0.10.5" }, "dependencies": { "regenerator-runtime": { @@ -792,36 +792,36 @@ "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-to-generator": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.23.0", - "babel-plugin-transform-es2015-classes": "^6.23.0", - "babel-plugin-transform-es2015-computed-properties": "^6.22.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", - "babel-plugin-transform-es2015-for-of": "^6.23.0", - "babel-plugin-transform-es2015-function-name": "^6.22.0", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.22.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-umd": "^6.23.0", - "babel-plugin-transform-es2015-object-super": "^6.22.0", - "babel-plugin-transform-es2015-parameters": "^6.23.0", - "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", - "babel-plugin-transform-exponentiation-operator": "^6.22.0", - "babel-plugin-transform-regenerator": "^6.22.0", - "browserslist": "^3.2.6", - "invariant": "^2.2.2", - "semver": "^5.3.0" + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-async-to-generator": "6.24.1", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-exponentiation-operator": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0", + "browserslist": "3.2.8", + "invariant": "2.2.4", + "semver": "5.5.0" } }, "babel-preset-es2015": { @@ -829,30 +829,30 @@ "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.24.1", - "babel-plugin-transform-es2015-classes": "^6.24.1", - "babel-plugin-transform-es2015-computed-properties": "^6.24.1", - "babel-plugin-transform-es2015-destructuring": "^6.22.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", - "babel-plugin-transform-es2015-for-of": "^6.22.0", - "babel-plugin-transform-es2015-function-name": "^6.24.1", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-umd": "^6.24.1", - "babel-plugin-transform-es2015-object-super": "^6.24.1", - "babel-plugin-transform-es2015-parameters": "^6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", - "babel-plugin-transform-regenerator": "^6.24.1" + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0" } }, "babel-preset-flow": { @@ -860,7 +860,7 @@ "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", "requires": { - "babel-plugin-transform-flow-strip-types": "^6.22.0" + "babel-plugin-transform-flow-strip-types": "6.22.0" } }, "babel-preset-react": { @@ -868,12 +868,12 @@ "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", "requires": { - "babel-plugin-syntax-jsx": "^6.3.13", - "babel-plugin-transform-react-display-name": "^6.23.0", - "babel-plugin-transform-react-jsx": "^6.24.1", - "babel-plugin-transform-react-jsx-self": "^6.22.0", - "babel-plugin-transform-react-jsx-source": "^6.22.0", - "babel-preset-flow": "^6.23.0" + "babel-plugin-syntax-jsx": "6.18.0", + "babel-plugin-transform-react-display-name": "6.25.0", + "babel-plugin-transform-react-jsx": "6.24.1", + "babel-plugin-transform-react-jsx-self": "6.22.0", + "babel-plugin-transform-react-jsx-source": "6.22.0", + "babel-preset-flow": "6.23.0" } }, "babel-register": { @@ -881,13 +881,13 @@ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" + "babel-core": "6.26.3", + "babel-runtime": "6.26.0", + "core-js": "2.5.7", + "home-or-tmp": "2.0.0", + "lodash": "4.17.10", + "mkdirp": "0.5.1", + "source-map-support": "0.4.18" } }, "babel-runtime": { @@ -895,8 +895,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "babel-template": { @@ -904,11 +904,11 @@ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.10" } }, "babel-traverse": { @@ -916,15 +916,15 @@ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.4", + "lodash": "4.17.10" }, "dependencies": { "debug": { @@ -942,10 +942,10 @@ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.10", + "to-fast-properties": "1.0.3" } }, "babylon": { @@ -968,7 +968,7 @@ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.4.tgz", "integrity": "sha512-UYOadoSIkEI/VrRGSG6qp93rp2WdokiAiNYDfGW5qURAY8GiAQkvMbwNNSDYiVJopqv4gCna7xqf4rrNGp+5AA==", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "base64-arraybuffer": { @@ -991,8 +991,8 @@ "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.1.tgz", "integrity": "sha512-esOfL+EnG+qPgqAPl4NxWngDIJIEs35dcV6wU0NP6bxBtc363fYm7xhNtC1BRVagDLSbMNwyI27rkWXwN5i6yg==", "requires": { - "bs58check": "^2.1.1", - "cashaddrjs": "^0.2.7" + "bs58check": "2.1.1", + "cashaddrjs": "0.2.8" } }, "bech32": { @@ -1036,20 +1036,18 @@ }, "bip21": { "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "from": "github:Bitcoin-com/bip21", "requires": { - "qs": "^6.3.0" + "qs": "6.5.2" } }, "bip32-utils": { "version": "github:Bitcoin-com/bip32-utils#6d27e98d15ceb7543f904d7f770d1e39a806e6e8", - "from": "github:Bitcoin-com/bip32-utils#6d27e98d15ceb7543f904d7f770d1e39a806e6e8", "requires": { "bitbox-cli": "1.4.2", - "keccak": "^1.3.0", - "nyc": "*", - "standard": "^11.0.1", - "tape": "*" + "keccak": "1.4.0", + "nyc": "11.9.0", + "standard": "11.0.1", + "tape": "4.9.1" } }, "bip38": { @@ -1057,13 +1055,13 @@ "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", "integrity": "sha512-22KDak0RDyghFbR0Si7wyq9IgY423YzGYzWLpGeofH3DaolOQqjD3mNN08eFoubKlbyclOQKFwtONMv2SD9V3A==", "requires": { - "bigi": "^1.2.0", - "browserify-aes": "^1.0.1", - "bs58check": "<3.0.0", - "buffer-xor": "^1.0.2", - "create-hash": "^1.1.1", - "ecurve": "^1.0.0", - "scryptsy": "^2.0.0" + "bigi": "1.4.2", + "browserify-aes": "1.2.0", + "bs58check": "2.1.1", + "buffer-xor": "1.0.3", + "create-hash": "1.2.0", + "ecurve": "1.0.6", + "scryptsy": "2.0.0" } }, "bip39": { @@ -1071,11 +1069,11 @@ "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", "requires": { - "create-hash": "^1.1.0", - "pbkdf2": "^3.0.9", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "unorm": "^1.3.3" + "create-hash": "1.2.0", + "pbkdf2": "3.0.16", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2", + "unorm": "1.4.1" } }, "bip66": { @@ -1083,7 +1081,7 @@ "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "bip68": { @@ -1096,83 +1094,81 @@ "resolved": "https://registry.npmjs.org/bitbox-cli/-/bitbox-cli-1.4.2.tgz", "integrity": "sha512-ilRmgewkTas89uOJmvDyCBFrPyov99wPJOlAEZUgV9H/cFIyRIjLPzqYim7m9N1FHVyorbfxBlsvoIqQRarcow==", "requires": { - "assert": "^1.4.1", - "axios": "^0.17.1", - "babel-cli": "^6.26.0", - "babel-preset-env": "^1.6.1", - "babel-preset-es2015": "^6.24.1", - "babel-preset-flow": "^6.23.0", - "babel-preset-react": "^6.24.1", - "babel-register": "^6.26.0", - "bchaddrjs": "^0.2.1", - "bigi": "^1.4.2", + "assert": "1.4.1", + "axios": "0.17.1", + "babel-cli": "6.26.0", + "babel-preset-env": "1.7.0", + "babel-preset-es2015": "6.24.1", + "babel-preset-flow": "6.23.0", + "babel-preset-react": "6.24.1", + "babel-register": "6.26.0", + "bchaddrjs": "0.2.1", + "bigi": "1.4.2", "bip21": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "bip38": "^2.0.2", - "bip39": "^2.5.0", - "bip66": "^1.1.5", - "bip68": "^1.0.4", + "bip38": "2.0.2", + "bip39": "2.5.0", + "bip66": "1.1.5", + "bip68": "1.0.4", "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", "bitcoin-txdecoder": "0.0.3", "bitcoincashjs-lib": "github:Bitcoin-com/bitcoincashjs-lib#0a7fc7cf23551503f57689db4c930b8136db954c", - "bitcoinjs-message": "^2.0.0", - "bs58": "^4.0.1", - "buffer": "^5.1.0", - "chalk": "^2.3.0", + "bitcoinjs-message": "2.0.0", + "bs58": "4.0.1", + "buffer": "5.1.0", + "chalk": "2.4.1", "clear": "0.0.1", "coininfo": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", - "commander": "^2.13.0", - "corsproxy": "^1.5.0", - "cp-file": "^5.0.0", - "ecurve": "^1.0.6", - "figlet": "^1.2.0", - "git-clone": "^0.1.0", - "ini": "^1.3.5", - "mkdirp": "^0.5.1", - "mocha": "^5.0.1", - "node-cmd": "^3.0.0", - "node-emoji": "^1.8.1", - "qrcode": "^1.2.0", - "randombytes": "^2.0.6", - "repl.history": "^0.1.4", - "safe-buffer": "^5.1.2", - "satoshi-bitcoin": "^1.0.4", - "socket.io": "^2.1.1", - "socket.io-client": "^2.1.1", - "touch": "^3.1.0", - "wif": "^2.0.6" + "commander": "2.16.0", + "corsproxy": "1.5.0", + "cp-file": "5.0.0", + "ecurve": "1.0.6", + "figlet": "1.2.0", + "git-clone": "0.1.0", + "ini": "1.3.5", + "mkdirp": "0.5.1", + "mocha": "5.2.0", + "node-cmd": "3.0.0", + "node-emoji": "1.8.1", + "qrcode": "1.2.0", + "randombytes": "2.0.6", + "repl.history": "0.1.4", + "safe-buffer": "5.1.2", + "satoshi-bitcoin": "1.0.4", + "socket.io": "2.1.1", + "socket.io-client": "2.1.1", + "touch": "3.1.0", + "wif": "2.0.6" } }, "bitcoin-ops": { - "version": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", - "from": "github:Bitcoin-com/bitcoincash-ops" + "version": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" }, "bitcoin-txdecoder": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/bitcoin-txdecoder/-/bitcoin-txdecoder-0.0.3.tgz", "integrity": "sha512-pH/eF5hQ65y54U23mzuF42wEj9YWj4WKHAIj2il6b1+oRoi/oyM4Ti3e8nMD8ajippICmyquqbyCZKGq3i4W+A==", "requires": { - "bitcoinjs-lib": "3.3.*" + "bitcoinjs-lib": "3.3.2" } }, "bitcoincashjs-lib": { "version": "github:Bitcoin-com/bitcoincashjs-lib#0a7fc7cf23551503f57689db4c930b8136db954c", - "from": "github:Bitcoin-com/bitcoincashjs-lib", - "requires": { - "bech32": "^1.1.2", - "bigi": "^1.4.0", - "bip66": "^1.1.0", - "bitcoin-ops": "^1.3.0", - "bs58check": "^2.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.3", - "ecurve": "^1.0.0", - "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "^1.0.1", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "typeforce": "^1.11.3", - "varuint-bitcoin": "^1.0.4", - "wif": "^2.0.1" + "requires": { + "bech32": "1.1.3", + "bigi": "1.4.2", + "bip66": "1.1.5", + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", + "bs58check": "2.1.1", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ecurve": "1.0.6", + "merkle-lib": "2.0.10", + "pushdata-bitcoin": "1.0.1", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2", + "typeforce": "1.12.0", + "varuint-bitcoin": "1.1.0", + "wif": "2.0.6" } }, "bitcoinjs-lib": { @@ -1180,21 +1176,21 @@ "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-3.3.2.tgz", "integrity": "sha512-l5qqvbaK8wwtANPf6oEffykycg4383XgEYdia1rI7/JpGf1jfRWlOUCvx5TiTZS7kyIvY4j/UhIQ2urLsvGkzw==", "requires": { - "bech32": "^1.1.2", - "bigi": "^1.4.0", - "bip66": "^1.1.0", - "bitcoin-ops": "^1.3.0", - "bs58check": "^2.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.3", - "ecurve": "^1.0.0", - "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "^1.0.1", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "typeforce": "^1.11.3", - "varuint-bitcoin": "^1.0.4", - "wif": "^2.0.1" + "bech32": "1.1.3", + "bigi": "1.4.2", + "bip66": "1.1.5", + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", + "bs58check": "2.1.1", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ecurve": "1.0.6", + "merkle-lib": "2.0.10", + "pushdata-bitcoin": "1.0.1", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2", + "typeforce": "1.12.0", + "varuint-bitcoin": "1.1.0", + "wif": "2.0.6" } }, "bitcoinjs-message": { @@ -1202,11 +1198,11 @@ "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", "requires": { - "bs58check": "^2.0.2", - "buffer-equals": "^1.0.3", - "create-hash": "^1.1.2", - "secp256k1": "^3.0.1", - "varuint-bitcoin": "^1.0.1" + "bs58check": "2.1.1", + "buffer-equals": "1.0.4", + "create-hash": "1.2.0", + "secp256k1": "3.5.0", + "varuint-bitcoin": "1.1.0" } }, "blob": { @@ -1224,7 +1220,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } }, "brace-expansion": { @@ -1232,7 +1228,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -1242,9 +1238,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "optional": true, "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" } }, "brorand": { @@ -1262,12 +1258,12 @@ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "buffer-xor": "1.0.3", + "cipher-base": "1.0.4", + "create-hash": "1.2.0", + "evp_bytestokey": "1.0.3", + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "browserslist": { @@ -1275,8 +1271,8 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "requires": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" + "caniuse-lite": "1.0.30000865", + "electron-to-chromium": "1.3.52" } }, "bs58": { @@ -1284,7 +1280,7 @@ "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", "requires": { - "base-x": "^3.0.2" + "base-x": "3.0.4" } }, "bs58check": { @@ -1292,8 +1288,8 @@ "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.1.tgz", "integrity": "sha512-okRQiWc5FJuA2VOwQ1hB7Sf0MyEFg/EwRN12h4b8HrJoGkZ3xq1CGjkaAfYloLcZyqixQnO5mhPpN6IcHSplVg==", "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0" + "bs58": "4.0.1", + "create-hash": "1.2.0" } }, "buffer": { @@ -1301,8 +1297,8 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.1.0.tgz", "integrity": "sha512-YkIRgwsZwJWTnyQrsBTWefizHh+8GYj3kbL1BTiAQ/9pwpino0G7B2gp5tx/FUBqUlvtxV85KNR3mwfAtv15Yw==", "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" + "base64-js": "1.3.0", + "ieee754": "1.1.12" } }, "buffer-equals": { @@ -1330,7 +1326,7 @@ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "requires": { - "callsites": "^0.2.0" + "callsites": "0.2.0" } }, "callsite": { @@ -1353,7 +1349,7 @@ "resolved": "https://registry.npmjs.org/can-promise/-/can-promise-0.0.1.tgz", "integrity": "sha512-gzVrHyyrvgt0YpDm7pn04MQt8gjh0ZAhN4ZDyCRtGl6YnuuK6b4aiUTD7G52r9l4YNmxfTtEscb92vxtAlL6XQ==", "requires": { - "window-or-global": "^1.0.1" + "window-or-global": "1.0.1" } }, "caniuse-lite": { @@ -1366,7 +1362,7 @@ "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.2.8.tgz", "integrity": "sha512-oezXpKZRjavdRB1QjBamfHFDzYescGFn9dWMbijP4fgXrqMdBygOqaPNW4phf7zpRD4+oW7aaFfFklF72/szaA==", "requires": { - "big-integer": "^1.6.26" + "big-integer": "1.6.32" } }, "chai": { @@ -1375,12 +1371,12 @@ "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", "dev": true, "requires": { - "assertion-error": "^1.0.1", - "check-error": "^1.0.1", - "deep-eql": "^3.0.0", - "get-func-name": "^2.0.0", - "pathval": "^1.0.0", - "type-detect": "^4.0.0" + "assertion-error": "1.1.0", + "check-error": "1.0.2", + "deep-eql": "3.0.1", + "get-func-name": "2.0.0", + "pathval": "1.1.0", + "type-detect": "4.0.8" } }, "chalk": { @@ -1388,9 +1384,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.4.0" }, "dependencies": { "ansi-styles": { @@ -1398,7 +1394,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "color-convert": "^1.9.0" + "color-convert": "1.9.2" } }, "supports-color": { @@ -1406,7 +1402,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -1428,15 +1424,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "optional": true, "requires": { - "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" + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.2.4", + "glob-parent": "2.0.0", + "inherits": "2.0.1", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" } }, "cipher-base": { @@ -1444,8 +1440,8 @@ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "circular-json": { @@ -1463,7 +1459,7 @@ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { - "restore-cursor": "^2.0.0" + "restore-cursor": "2.0.0" } }, "cli-width": { @@ -1476,9 +1472,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" }, "dependencies": { "string-width": { @@ -1486,9 +1482,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -1505,9 +1501,8 @@ }, "coininfo": { "version": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", - "from": "github:Bitcoin-com/coininfo", "requires": { - "safe-buffer": "^5.1.1" + "safe-buffer": "5.1.2" } }, "color-convert": { @@ -1553,10 +1548,10 @@ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "buffer-from": "1.1.0", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "typedarray": "0.0.6" }, "dependencies": { "inherits": { @@ -1596,15 +1591,15 @@ "resolved": "https://registry.npmjs.org/corsproxy/-/corsproxy-1.5.0.tgz", "integrity": "sha1-KUge0hXuWxvWkkx5Fc+I/LE8EGE=", "requires": { - "ejs": "^2.3.3", - "good": "^6.3.0", - "good-console": "^5.0.3", - "h2o2": "^4.0.1", - "hapi": "^9.0.2", - "hapi-cors-headers": "^1.0.0", - "http-proxy": "~1.11", - "inert": "^3.0.1", - "vision": "^3.0.0" + "ejs": "2.6.1", + "good": "6.6.3", + "good-console": "5.3.2", + "h2o2": "4.0.2", + "hapi": "9.5.1", + "hapi-cors-headers": "1.0.3", + "http-proxy": "1.11.3", + "inert": "3.2.1", + "vision": "3.0.0" } }, "cp-file": { @@ -1612,11 +1607,11 @@ "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-5.0.0.tgz", "integrity": "sha1-vHAP0wyjLSTUbH+wK5kuQ1/FqXg=", "requires": { - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "nested-error-stacks": "^2.0.0", - "pify": "^3.0.0", - "safe-buffer": "^5.0.1" + "graceful-fs": "4.1.11", + "make-dir": "1.3.0", + "nested-error-stacks": "2.0.1", + "pify": "3.0.0", + "safe-buffer": "5.1.2" } }, "create-hash": { @@ -1624,11 +1619,11 @@ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" + "cipher-base": "1.0.4", + "inherits": "2.0.1", + "md5.js": "1.3.4", + "ripemd160": "2.0.2", + "sha.js": "2.4.11" } }, "create-hmac": { @@ -1636,12 +1631,12 @@ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "cipher-base": "1.0.4", + "create-hash": "1.2.0", + "inherits": "2.0.1", + "ripemd160": "2.0.2", + "safe-buffer": "5.1.2", + "sha.js": "2.4.11" } }, "cross-spawn": { @@ -1649,9 +1644,9 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.1" }, "dependencies": { "lru-cache": { @@ -1659,8 +1654,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } } } @@ -1689,7 +1684,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "^4.0.0" + "type-detect": "4.0.8" } }, "deep-equal": { @@ -1707,8 +1702,8 @@ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", "requires": { - "foreach": "^2.0.5", - "object-keys": "^1.0.8" + "foreach": "2.0.5", + "object-keys": "1.0.12" } }, "defined": { @@ -1721,12 +1716,12 @@ "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.1.tgz", "integrity": "sha512-2kjwuGGonL7gWE1XU4Fv79+vVzpoQCl0V+boMwWtOQJV2AGDabCwez++nB1Nli/8BabAfZQ/UuHPlp6AymKdWw==", "requires": { - "find-root": "^1.0.0", - "glob": "^7.0.5", - "ignore": "^3.0.9", - "pkg-config": "^1.1.0", - "run-parallel": "^1.1.2", - "uniq": "^1.0.1" + "find-root": "1.1.0", + "glob": "7.1.2", + "ignore": "3.3.10", + "pkg-config": "1.1.1", + "run-parallel": "1.1.9", + "uniq": "1.0.1" } }, "del": { @@ -1734,13 +1729,13 @@ "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "requires": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" + "globby": "5.0.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.1", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "rimraf": "2.6.2" }, "dependencies": { "pify": { @@ -1755,7 +1750,7 @@ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "diff": { @@ -1773,7 +1768,7 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "requires": { - "esutils": "^2.0.2" + "esutils": "2.0.2" } }, "drbg.js": { @@ -1781,9 +1776,9 @@ "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", "requires": { - "browserify-aes": "^1.0.6", - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4" + "browserify-aes": "1.2.0", + "create-hash": "1.2.0", + "create-hmac": "1.1.7" } }, "ecurve": { @@ -1791,8 +1786,8 @@ "resolved": "https://registry.npmjs.org/ecurve/-/ecurve-1.0.6.tgz", "integrity": "sha512-/BzEjNfiSuB7jIWKcS/z8FK9jNjmEWvUV2YZ4RLSmcDtP7Lq0m6FvDuSnJpBlDpGRpfRQeTLGLBI8H+kEv0r+w==", "requires": { - "bigi": "^1.1.0", - "safe-buffer": "^5.0.1" + "bigi": "1.4.2", + "safe-buffer": "5.1.2" } }, "ejs": { @@ -1810,13 +1805,13 @@ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" + "bn.js": "4.11.8", + "brorand": "1.1.0", + "hash.js": "1.1.5", + "hmac-drbg": "1.0.1", + "inherits": "2.0.1", + "minimalistic-assert": "1.0.1", + "minimalistic-crypto-utils": "1.0.1" } }, "engine.io": { @@ -1824,12 +1819,12 @@ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.0.tgz", "integrity": "sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==", "requires": { - "accepts": "~1.3.4", + "accepts": "1.3.5", "base64id": "1.0.0", "cookie": "0.3.1", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.0", - "ws": "~3.3.1" + "debug": "3.1.0", + "engine.io-parser": "2.1.2", + "ws": "3.3.3" } }, "engine.io-client": { @@ -1839,14 +1834,14 @@ "requires": { "component-emitter": "1.2.1", "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.1", + "debug": "3.1.0", + "engine.io-parser": "2.1.2", "has-cors": "1.1.0", "indexof": "0.0.1", "parseqs": "0.0.5", "parseuri": "0.0.5", - "ws": "~3.3.1", - "xmlhttprequest-ssl": "~1.5.4", + "ws": "3.3.3", + "xmlhttprequest-ssl": "1.5.5", "yeast": "0.1.2" } }, @@ -1856,10 +1851,10 @@ "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==", "requires": { "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", + "arraybuffer.slice": "0.0.7", "base64-arraybuffer": "0.1.5", "blob": "0.0.4", - "has-binary2": "~1.0.2" + "has-binary2": "1.0.3" } }, "error-ex": { @@ -1867,7 +1862,7 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "es-abstract": { @@ -1875,11 +1870,11 @@ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", "requires": { - "es-to-primitive": "^1.1.1", - "function-bind": "^1.1.1", - "has": "^1.0.1", - "is-callable": "^1.1.3", - "is-regex": "^1.0.4" + "es-to-primitive": "1.1.1", + "function-bind": "1.1.1", + "has": "1.0.3", + "is-callable": "1.1.4", + "is-regex": "1.0.4" } }, "es-to-primitive": { @@ -1887,9 +1882,9 @@ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", "requires": { - "is-callable": "^1.1.1", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.1" + "is-callable": "1.1.4", + "is-date-object": "1.0.1", + "is-symbol": "1.0.1" } }, "escape-string-regexp": { @@ -1902,43 +1897,43 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", "requires": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", - "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.2", - "esquery": "^1.0.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.0.1", - "ignore": "^3.3.3", - "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "require-uncached": "^1.0.3", - "semver": "^5.3.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", + "ajv": "5.5.2", + "babel-code-frame": "6.26.0", + "chalk": "2.4.1", + "concat-stream": "1.6.2", + "cross-spawn": "5.1.0", + "debug": "3.1.0", + "doctrine": "2.1.0", + "eslint-scope": "3.7.3", + "eslint-visitor-keys": "1.0.0", + "espree": "3.5.4", + "esquery": "1.0.1", + "esutils": "2.0.2", + "file-entry-cache": "2.0.0", + "functional-red-black-tree": "1.0.1", + "glob": "7.1.2", + "globals": "11.7.0", + "ignore": "3.3.10", + "imurmurhash": "0.1.4", + "inquirer": "3.3.0", + "is-resolvable": "1.1.0", + "js-yaml": "3.12.0", + "json-stable-stringify-without-jsonify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.10", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "7.0.0", + "progress": "2.0.0", + "require-uncached": "1.0.3", + "semver": "5.5.0", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", "table": "4.0.2", - "text-table": "~0.2.0" + "text-table": "0.2.0" }, "dependencies": { "ansi-regex": { @@ -1956,7 +1951,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -1976,8 +1971,8 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", "requires": { - "debug": "^2.6.9", - "resolve": "^1.5.0" + "debug": "2.6.9", + "resolve": "1.8.1" }, "dependencies": { "debug": { @@ -1995,8 +1990,8 @@ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", "requires": { - "debug": "^2.6.8", - "pkg-dir": "^1.0.0" + "debug": "2.6.9", + "pkg-dir": "1.0.0" }, "dependencies": { "debug": { @@ -2014,16 +2009,16 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz", "integrity": "sha1-JgAu+/ylmJtyiKwEdQi9JPIXsWk=", "requires": { - "builtin-modules": "^1.1.1", - "contains-path": "^0.1.0", - "debug": "^2.6.8", + "builtin-modules": "1.1.1", + "contains-path": "0.1.0", + "debug": "2.6.9", "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.1", - "eslint-module-utils": "^2.1.1", - "has": "^1.0.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.3", - "read-pkg-up": "^2.0.0" + "eslint-import-resolver-node": "0.3.2", + "eslint-module-utils": "2.2.0", + "has": "1.0.3", + "lodash": "4.17.10", + "minimatch": "3.0.4", + "read-pkg-up": "2.0.0" }, "dependencies": { "debug": { @@ -2039,8 +2034,8 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" + "esutils": "2.0.2", + "isarray": "1.0.0" } } } @@ -2050,10 +2045,10 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz", "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", "requires": { - "ignore": "^3.3.6", - "minimatch": "^3.0.4", - "resolve": "^1.3.3", - "semver": "^5.4.1" + "ignore": "3.3.10", + "minimatch": "3.0.4", + "resolve": "1.8.1", + "semver": "5.5.0" } }, "eslint-plugin-promise": { @@ -2066,10 +2061,10 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz", "integrity": "sha512-KC7Snr4YsWZD5flu6A5c0AcIZidzW3Exbqp7OT67OaD2AppJtlBr/GuPrW/vaQM/yfZotEvKAdrxrO+v8vwYJA==", "requires": { - "doctrine": "^2.0.2", - "has": "^1.0.1", - "jsx-ast-utils": "^2.0.1", - "prop-types": "^15.6.0" + "doctrine": "2.1.0", + "has": "1.0.3", + "jsx-ast-utils": "2.0.1", + "prop-types": "15.6.2" } }, "eslint-plugin-standard": { @@ -2082,8 +2077,8 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "esrecurse": "4.2.1", + "estraverse": "4.2.0" } }, "eslint-visitor-keys": { @@ -2096,8 +2091,8 @@ "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" + "acorn": "5.7.1", + "acorn-jsx": "3.0.1" } }, "esprima": { @@ -2110,7 +2105,7 @@ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "requires": { - "estraverse": "^4.0.0" + "estraverse": "4.2.0" } }, "esrecurse": { @@ -2118,7 +2113,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "requires": { - "estraverse": "^4.1.0" + "estraverse": "4.2.0" } }, "estraverse": { @@ -2141,8 +2136,8 @@ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "md5.js": "1.3.4", + "safe-buffer": "5.1.2" } }, "execa": { @@ -2150,13 +2145,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "requires": { - "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" + "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" } }, "expand-brackets": { @@ -2165,7 +2160,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "optional": true, "requires": { - "is-posix-bracket": "^0.1.0" + "is-posix-bracket": "0.1.1" } }, "expand-range": { @@ -2174,7 +2169,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "optional": true, "requires": { - "fill-range": "^2.1.0" + "fill-range": "2.2.4" } }, "external-editor": { @@ -2182,9 +2177,9 @@ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" + "chardet": "0.4.2", + "iconv-lite": "0.4.23", + "tmp": "0.0.33" } }, "extglob": { @@ -2193,7 +2188,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "optional": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "fast-deep-equal": { @@ -2221,7 +2216,7 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "requires": { - "escape-string-regexp": "^1.0.5" + "escape-string-regexp": "1.0.5" } }, "file-entry-cache": { @@ -2229,8 +2224,8 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" + "flat-cache": "1.3.0", + "object-assign": "4.1.1" } }, "filename-regex": { @@ -2245,11 +2240,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "optional": true, "requires": { - "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": "2.1.0", + "isobject": "2.1.0", + "randomatic": "3.0.0", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" } }, "find-root": { @@ -2262,7 +2257,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "flat-cache": { @@ -2270,10 +2265,10 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "requires": { - "circular-json": "^0.3.1", - "del": "^2.0.2", - "graceful-fs": "^4.1.2", - "write": "^0.2.1" + "circular-json": "0.3.3", + "del": "2.2.2", + "graceful-fs": "4.1.11", + "write": "0.2.1" } }, "flow-bin": { @@ -2287,7 +2282,7 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.1.tgz", "integrity": "sha512-v9GI1hpaqq1ZZR6pBD1+kI7O24PhDvNGNodjS3MdcEqyrahCp8zbtpv+2B/krUnSmUH80lbAS7MrdeK5IylgKg==", "requires": { - "debug": "^3.1.0" + "debug": "3.1.0" } }, "for-each": { @@ -2295,7 +2290,7 @@ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "requires": { - "is-callable": "^1.1.3" + "is-callable": "1.1.4" } }, "for-in": { @@ -2310,7 +2305,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "optional": true, "requires": { - "for-in": "^1.0.1" + "for-in": "1.0.2" } }, "foreach": { @@ -2334,8 +2329,8 @@ "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", "optional": true, "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" + "nan": "2.10.0", + "node-pre-gyp": "0.10.0" }, "dependencies": { "abbrev": { @@ -2357,8 +2352,8 @@ "bundled": true, "optional": true, "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "delegates": "1.0.0", + "readable-stream": "2.3.6" } }, "balanced-match": { @@ -2369,7 +2364,7 @@ "version": "1.1.11", "bundled": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -2423,7 +2418,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.2.4" } }, "fs.realpath": { @@ -2436,14 +2431,14 @@ "bundled": true, "optional": true, "requires": { - "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" + "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" } }, "glob": { @@ -2451,12 +2446,12 @@ "bundled": true, "optional": true, "requires": { - "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" + "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" } }, "has-unicode": { @@ -2469,7 +2464,7 @@ "bundled": true, "optional": true, "requires": { - "safer-buffer": "^2.1.0" + "safer-buffer": "2.1.2" } }, "ignore-walk": { @@ -2477,7 +2472,7 @@ "bundled": true, "optional": true, "requires": { - "minimatch": "^3.0.4" + "minimatch": "3.0.4" } }, "inflight": { @@ -2485,8 +2480,8 @@ "bundled": true, "optional": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -2502,7 +2497,7 @@ "version": "1.0.0", "bundled": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "isarray": { @@ -2514,7 +2509,7 @@ "version": "3.0.4", "bundled": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -2525,8 +2520,8 @@ "version": "2.2.4", "bundled": true, "requires": { - "safe-buffer": "^5.1.1", - "yallist": "^3.0.0" + "safe-buffer": "5.1.1", + "yallist": "3.0.2" } }, "minizlib": { @@ -2534,7 +2529,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.2.4" } }, "mkdirp": { @@ -2554,9 +2549,9 @@ "bundled": true, "optional": true, "requires": { - "debug": "^2.1.2", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" + "debug": "2.6.9", + "iconv-lite": "0.4.21", + "sax": "1.2.4" } }, "node-pre-gyp": { @@ -2564,16 +2559,16 @@ "bundled": 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" + "detect-libc": "1.0.3", + "mkdirp": "0.5.1", + "needle": "2.2.0", + "nopt": "4.0.1", + "npm-packlist": "1.1.10", + "npmlog": "4.1.2", + "rc": "1.2.7", + "rimraf": "2.6.2", + "semver": "5.5.0", + "tar": "4.4.1" } }, "nopt": { @@ -2581,8 +2576,8 @@ "bundled": true, "optional": true, "requires": { - "abbrev": "1", - "osenv": "^0.1.4" + "abbrev": "1.1.1", + "osenv": "0.1.5" } }, "npm-bundled": { @@ -2595,8 +2590,8 @@ "bundled": true, "optional": true, "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" + "ignore-walk": "3.0.1", + "npm-bundled": "1.0.3" } }, "npmlog": { @@ -2604,10 +2599,10 @@ "bundled": 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" + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" } }, "number-is-nan": { @@ -2623,7 +2618,7 @@ "version": "1.4.0", "bundled": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "os-homedir": { @@ -2641,8 +2636,8 @@ "bundled": true, "optional": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "path-is-absolute": { @@ -2660,10 +2655,10 @@ "bundled": true, "optional": true, "requires": { - "deep-extend": "^0.5.1", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" + "deep-extend": "0.5.1", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" }, "dependencies": { "minimist": { @@ -2678,13 +2673,13 @@ "bundled": true, "optional": true, "requires": { - "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" + "core-util-is": "1.0.2", + "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.2" } }, "rimraf": { @@ -2692,7 +2687,7 @@ "bundled": true, "optional": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "safe-buffer": { @@ -2728,9 +2723,9 @@ "version": "1.0.2", "bundled": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "string_decoder": { @@ -2738,14 +2733,14 @@ "bundled": true, "optional": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.1" } }, "strip-ansi": { "version": "3.0.1", "bundled": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-json-comments": { @@ -2758,13 +2753,13 @@ "bundled": true, "optional": true, "requires": { - "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" + "chownr": "1.0.1", + "fs-minipass": "1.2.5", + "minipass": "2.2.4", + "minizlib": "1.1.0", + "mkdirp": "0.5.1", + "safe-buffer": "5.1.1", + "yallist": "3.0.2" } }, "util-deprecate": { @@ -2777,7 +2772,7 @@ "bundled": true, "optional": true, "requires": { - "string-width": "^1.0.2" + "string-width": "1.0.2" } }, "wrappy": { @@ -2831,12 +2826,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { - "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" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.1", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "glob-base": { @@ -2845,8 +2840,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "optional": true, "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" + "glob-parent": "2.0.0", + "is-glob": "2.0.1" } }, "glob-parent": { @@ -2854,7 +2849,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "requires": { - "is-glob": "^2.0.0" + "is-glob": "2.0.1" } }, "globals": { @@ -2867,12 +2862,12 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" }, "dependencies": { "pify": { @@ -2887,11 +2882,11 @@ "resolved": "https://registry.npmjs.org/good/-/good-6.6.3.tgz", "integrity": "sha1-B9zIEfwSuDmKnDMezdM37OWogDU=", "requires": { - "hoek": "2.x.x", - "items": "1.x.x", - "joi": "6.x.x", + "hoek": "2.16.3", + "items": "1.1.1", + "joi": "6.10.1", "traverse": "0.6.6", - "wreck": "6.x.x" + "wreck": "6.3.0" } }, "good-console": { @@ -2899,11 +2894,11 @@ "resolved": "https://registry.npmjs.org/good-console/-/good-console-5.3.2.tgz", "integrity": "sha1-f8c9RDfiWsToODJB5GaWy6N0ia0=", "requires": { - "good-squeeze": "2.x.x", - "hoek": "2.x.x", - "json-stringify-safe": "5.0.x", - "moment": "2.11.x", - "through2": "0.6.x" + "good-squeeze": "2.1.0", + "hoek": "2.16.3", + "json-stringify-safe": "5.0.1", + "moment": "2.11.2", + "through2": "0.6.5" }, "dependencies": { "moment": { @@ -2918,8 +2913,8 @@ "resolved": "https://registry.npmjs.org/good-squeeze/-/good-squeeze-2.1.0.tgz", "integrity": "sha1-mc7pHSbVkWmKiZwo6TELzzxq4oo=", "requires": { - "hoek": "2.x.x", - "json-stringify-safe": "5.0.x" + "hoek": "2.16.3", + "json-stringify-safe": "5.0.1" } }, "graceful-fs": { @@ -2937,10 +2932,10 @@ "resolved": "https://registry.npmjs.org/h2o2/-/h2o2-4.0.2.tgz", "integrity": "sha1-h8uWDcD1tJWWT6koJT5s8TuiJIY=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x", - "joi": "6.x.x", - "wreck": "6.x.x" + "boom": "2.10.1", + "hoek": "2.16.3", + "joi": "6.10.1", + "wreck": "6.3.0" } }, "hapi": { @@ -2948,26 +2943,26 @@ "resolved": "https://registry.npmjs.org/hapi/-/hapi-9.5.1.tgz", "integrity": "sha1-jYyhPnwiCweEZemgp2QPJqWvuFU=", "requires": { - "accept": "1.x.x", - "ammo": "1.x.x", - "boom": "^2.5.x", - "call": "2.x.x", - "catbox": "6.x.x", - "catbox-memory": "1.x.x", - "cryptiles": "2.x.x", - "heavy": "3.x.x", - "hoek": "^2.14.x", - "iron": "2.x.x", - "items": "1.x.x", - "joi": "^6.8.1", - "kilt": "^1.1.x", - "mimos": "2.x.x", - "peekaboo": "1.x.x", - "qs": "4.x.x", - "shot": "^1.7.x", - "statehood": "2.x.x", - "subtext": "2.x.x", - "topo": "^1.1.x" + "accept": "1.1.0", + "ammo": "1.0.1", + "boom": "2.9.0", + "call": "2.0.2", + "catbox": "6.0.0", + "catbox-memory": "1.1.2", + "cryptiles": "2.0.5", + "heavy": "3.0.1", + "hoek": "2.16.3", + "iron": "2.1.3", + "items": "1.1.0", + "joi": "6.8.1", + "kilt": "1.1.1", + "mimos": "2.0.2", + "peekaboo": "1.0.0", + "qs": "4.0.0", + "shot": "1.7.0", + "statehood": "2.1.1", + "subtext": "2.0.0", + "topo": "1.1.0" }, "dependencies": { "accept": { @@ -2975,8 +2970,8 @@ "resolved": "https://registry.npmjs.org/accept/-/accept-1.1.0.tgz", "integrity": "sha1-x7VWfJmt5Kx8k38qm8HFZhYKMLU=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x" + "boom": "2.9.0", + "hoek": "2.16.3" } }, "ammo": { @@ -2984,8 +2979,8 @@ "resolved": "https://registry.npmjs.org/ammo/-/ammo-1.0.1.tgz", "integrity": "sha1-j4rdFM1Jve3jurOj4OvK8h0D3os=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x" + "boom": "2.9.0", + "hoek": "2.16.3" } }, "boom": { @@ -2993,7 +2988,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-2.9.0.tgz", "integrity": "sha1-pUt/0v7kd9NRv543FoDL6mfxJxU=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } }, "call": { @@ -3001,8 +2996,8 @@ "resolved": "https://registry.npmjs.org/call/-/call-2.0.2.tgz", "integrity": "sha1-nJgxq9B2lIb97oOkEUm4KbMtBsA=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x" + "boom": "2.9.0", + "hoek": "2.16.3" } }, "catbox": { @@ -3010,9 +3005,9 @@ "resolved": "https://registry.npmjs.org/catbox/-/catbox-6.0.0.tgz", "integrity": "sha1-6i8pT6Bemvx+IhDTI/XeU6OAQ+c=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x", - "joi": "6.x.x" + "boom": "2.9.0", + "hoek": "2.16.3", + "joi": "6.8.1" } }, "catbox-memory": { @@ -3020,7 +3015,7 @@ "resolved": "https://registry.npmjs.org/catbox-memory/-/catbox-memory-1.1.2.tgz", "integrity": "sha1-M8kYOjKzGUXuikhNDjw8u4Lq7Bo=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } }, "cryptiles": { @@ -3028,7 +3023,7 @@ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "requires": { - "boom": "2.x.x" + "boom": "2.9.0" } }, "heavy": { @@ -3036,9 +3031,9 @@ "resolved": "https://registry.npmjs.org/heavy/-/heavy-3.0.1.tgz", "integrity": "sha1-8oZ+bjUVv4OrGoux5z5dKOhas80=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x", - "joi": "6.x.x" + "boom": "2.9.0", + "hoek": "2.16.3", + "joi": "6.8.1" } }, "hoek": { @@ -3051,9 +3046,9 @@ "resolved": "https://registry.npmjs.org/iron/-/iron-2.1.3.tgz", "integrity": "sha1-cbjzV9gGquA6kKdFuaqv/sfi3eQ=", "requires": { - "boom": "2.x.x", - "cryptiles": "2.x.x", - "hoek": "2.x.x" + "boom": "2.9.0", + "cryptiles": "2.0.5", + "hoek": "2.16.3" } }, "items": { @@ -3066,10 +3061,10 @@ "resolved": "https://registry.npmjs.org/joi/-/joi-6.8.1.tgz", "integrity": "sha1-g94tYCj8DNXRYi8/V0fKCCtHjv8=", "requires": { - "hoek": "2.x.x", - "isemail": "1.x.x", - "moment": "2.x.x", - "topo": "1.x.x" + "hoek": "2.16.3", + "isemail": "1.2.0", + "moment": "2.10.6", + "topo": "1.1.0" }, "dependencies": { "isemail": { @@ -3089,7 +3084,7 @@ "resolved": "https://registry.npmjs.org/kilt/-/kilt-1.1.1.tgz", "integrity": "sha1-d7SmFjyn+lshN6iMFzNCFuwj1ds=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } }, "mimos": { @@ -3097,8 +3092,8 @@ "resolved": "https://registry.npmjs.org/mimos/-/mimos-2.0.2.tgz", "integrity": "sha1-wyQXF+dblZkr54esfdbbGptTmx4=", "requires": { - "hoek": "2.x.x", - "mime-db": "1.x.x" + "hoek": "2.16.3", + "mime-db": "1.19.0" }, "dependencies": { "mime-db": { @@ -3123,7 +3118,7 @@ "resolved": "https://registry.npmjs.org/shot/-/shot-1.7.0.tgz", "integrity": "sha1-8jKdfvM6/PA9RM5Bq66BSK4XBTI=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } }, "statehood": { @@ -3131,12 +3126,12 @@ "resolved": "https://registry.npmjs.org/statehood/-/statehood-2.1.1.tgz", "integrity": "sha1-AfFwtmxeklqvZ5qdMiulkYb8AAk=", "requires": { - "boom": "2.x.x", - "cryptiles": "2.x.x", - "hoek": "2.x.x", - "iron": "2.x.x", - "items": "1.x.x", - "joi": "6.x.x" + "boom": "2.9.0", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "iron": "2.1.3", + "items": "1.1.0", + "joi": "6.8.1" } }, "subtext": { @@ -3144,12 +3139,12 @@ "resolved": "https://registry.npmjs.org/subtext/-/subtext-2.0.0.tgz", "integrity": "sha1-I5lQ6SCBQ/FUirJeHJV5vbaNiU4=", "requires": { - "boom": "2.x.x", - "content": "1.x.x", - "hoek": "2.x.x", - "pez": "1.x.x", - "qs": "4.x.x", - "wreck": "6.x.x" + "boom": "2.9.0", + "content": "1.0.2", + "hoek": "2.16.3", + "pez": "1.0.0", + "qs": "4.0.0", + "wreck": "6.2.0" }, "dependencies": { "content": { @@ -3157,8 +3152,8 @@ "resolved": "https://registry.npmjs.org/content/-/content-1.0.2.tgz", "integrity": "sha1-y37fMq/vF8SKz9vSH/mMIzFa6CQ=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x" + "boom": "2.9.0", + "hoek": "2.16.3" } }, "pez": { @@ -3166,11 +3161,11 @@ "resolved": "https://registry.npmjs.org/pez/-/pez-1.0.0.tgz", "integrity": "sha1-hEMYpc5wku7d/6KV4YB5rHefoBg=", "requires": { - "b64": "2.x.x", - "boom": "2.x.x", - "content": "1.x.x", - "hoek": "2.x.x", - "nigel": "1.x.x" + "b64": "2.0.1", + "boom": "2.9.0", + "content": "1.0.2", + "hoek": "2.16.3", + "nigel": "1.0.1" }, "dependencies": { "b64": { @@ -3178,7 +3173,7 @@ "resolved": "https://registry.npmjs.org/b64/-/b64-2.0.1.tgz", "integrity": "sha1-0IwQcZcZ/x/htTKuSSaUCc4UnOk=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } }, "nigel": { @@ -3186,8 +3181,8 @@ "resolved": "https://registry.npmjs.org/nigel/-/nigel-1.0.1.tgz", "integrity": "sha1-RjmJr4gSePuqHTzJOCPb0XtDYKE=", "requires": { - "hoek": "2.x.x", - "vise": "1.x.x" + "hoek": "2.16.3", + "vise": "1.0.0" }, "dependencies": { "vise": { @@ -3195,7 +3190,7 @@ "resolved": "https://registry.npmjs.org/vise/-/vise-1.0.0.tgz", "integrity": "sha1-KDRb5N5aNB4V/SgW/Z6j5zA+jfM=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } } } @@ -3207,8 +3202,8 @@ "resolved": "https://registry.npmjs.org/wreck/-/wreck-6.2.0.tgz", "integrity": "sha1-8Jkx7UcbZL6Yjj57u4gjTa4i0iI=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x" + "boom": "2.9.0", + "hoek": "2.16.3" } } } @@ -3218,7 +3213,7 @@ "resolved": "https://registry.npmjs.org/topo/-/topo-1.1.0.tgz", "integrity": "sha1-6ddRYV0buH3IZdsYL6HKCl71NtU=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } } } @@ -3233,7 +3228,7 @@ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "requires": { - "function-bind": "^1.1.1" + "function-bind": "1.1.1" } }, "has-ansi": { @@ -3241,7 +3236,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "has-binary2": { @@ -3274,8 +3269,8 @@ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "hash.js": { @@ -3283,8 +3278,8 @@ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1" }, "dependencies": { "inherits": { @@ -3304,9 +3299,9 @@ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "hash.js": "1.1.5", + "minimalistic-assert": "1.0.1", + "minimalistic-crypto-utils": "1.0.1" } }, "hoek": { @@ -3319,8 +3314,8 @@ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "hosted-git-info": { @@ -3333,8 +3328,8 @@ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.11.3.tgz", "integrity": "sha1-GRXciIdR4qa/PCq/yxgI+obHI1M=", "requires": { - "eventemitter3": "1.x.x", - "requires-port": "0.x.x" + "eventemitter3": "1.2.0", + "requires-port": "0.0.1" } }, "iconv-lite": { @@ -3342,7 +3337,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": "2.1.2" } }, "ieee754": { @@ -3370,12 +3365,12 @@ "resolved": "https://registry.npmjs.org/inert/-/inert-3.2.1.tgz", "integrity": "sha1-xJZcXhh87z2yxChy5S51cAh2Qn0=", "requires": { - "ammo": "1.x.x", - "boom": "2.x.x", - "hoek": "2.x.x", - "items": "1.x.x", - "joi": "^6.7.x", - "lru-cache": "2.7.x" + "ammo": "1.0.1", + "boom": "2.10.1", + "hoek": "2.16.3", + "items": "1.1.1", + "joi": "6.10.1", + "lru-cache": "2.7.3" } }, "inflight": { @@ -3383,8 +3378,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -3402,20 +3397,20 @@ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", + "ansi-escapes": "3.1.0", + "chalk": "2.4.1", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.2.0", + "figures": "2.0.0", + "lodash": "4.17.10", "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" + "run-async": "2.3.0", + "rx-lite": "4.0.8", + "rx-lite-aggregates": "4.0.8", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" }, "dependencies": { "ansi-regex": { @@ -3428,7 +3423,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -3438,7 +3433,7 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "loose-envify": "^1.0.0" + "loose-envify": "1.4.0" } }, "invert-kv": { @@ -3457,7 +3452,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "optional": true, "requires": { - "binary-extensions": "^1.0.0" + "binary-extensions": "1.11.0" } }, "is-buffer": { @@ -3470,7 +3465,7 @@ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-callable": { @@ -3495,7 +3490,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "optional": true, "requires": { - "is-primitive": "^2.0.0" + "is-primitive": "2.0.0" } }, "is-extendable": { @@ -3514,7 +3509,7 @@ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { @@ -3522,7 +3517,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.0" + "number-is-nan": "1.0.1" } }, "is-glob": { @@ -3530,7 +3525,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "is-number": { @@ -3539,7 +3534,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "optional": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-path-cwd": { @@ -3552,7 +3547,7 @@ "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "requires": { - "is-path-inside": "^1.0.0" + "is-path-inside": "1.0.1" } }, "is-path-inside": { @@ -3560,7 +3555,7 @@ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "requires": { - "path-is-inside": "^1.0.1" + "path-is-inside": "1.0.2" } }, "is-posix-bracket": { @@ -3585,7 +3580,7 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "requires": { - "has": "^1.0.1" + "has": "1.0.3" } }, "is-resolvable": { @@ -3637,10 +3632,10 @@ "resolved": "https://registry.npmjs.org/joi/-/joi-6.10.1.tgz", "integrity": "sha1-TVDDGAeRIgAP5fFq8f+OGRe3fgY=", "requires": { - "hoek": "2.x.x", - "isemail": "1.x.x", - "moment": "2.x.x", - "topo": "1.x.x" + "hoek": "2.16.3", + "isemail": "1.2.0", + "moment": "2.22.2", + "topo": "1.1.0" } }, "js-tokens": { @@ -3653,8 +3648,8 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "1.0.10", + "esprima": "4.0.1" } }, "jsesc": { @@ -3692,7 +3687,7 @@ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", "requires": { - "array-includes": "^3.0.3" + "array-includes": "3.0.3" } }, "just-extend": { @@ -3706,10 +3701,10 @@ "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", "requires": { - "bindings": "^1.2.1", - "inherits": "^2.0.3", - "nan": "^2.2.1", - "safe-buffer": "^5.1.0" + "bindings": "1.3.0", + "inherits": "2.0.3", + "nan": "2.10.0", + "safe-buffer": "5.1.2" }, "dependencies": { "inherits": { @@ -3724,7 +3719,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "lcid": { @@ -3732,7 +3727,7 @@ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "levn": { @@ -3740,8 +3735,8 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "1.1.2", + "type-check": "0.3.2" } }, "load-json-file": { @@ -3749,10 +3744,10 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" }, "dependencies": { "pify": { @@ -3767,8 +3762,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "2.0.0", + "path-exists": "3.0.0" } }, "lodash": { @@ -3798,7 +3793,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" + "js-tokens": "3.0.2" } }, "lru-cache": { @@ -3811,7 +3806,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "math-random": { @@ -3825,8 +3820,8 @@ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "hash-base": "3.0.4", + "inherits": "2.0.1" } }, "mem": { @@ -3834,7 +3829,7 @@ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "merkle-lib": { @@ -3848,19 +3843,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "optional": true, "requires": { - "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" + "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" } }, "mime-db": { @@ -3873,7 +3868,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", "requires": { - "mime-db": "~1.35.0" + "mime-db": "1.35.0" } }, "mimic-fn": { @@ -3896,7 +3891,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -3940,7 +3935,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -3986,11 +3981,11 @@ "integrity": "sha512-BxH/DxoQYYdhKgVAfqVy4pzXRZELHOIewzoesxpjYvpU+7YOalQhGNPf7wAx8pLrTNPrHRDlLOkAl8UI0ZpXjw==", "dev": true, "requires": { - "@sinonjs/formatio": "^2.0.0", - "just-extend": "^1.1.27", - "lolex": "^2.3.2", - "path-to-regexp": "^1.7.0", - "text-encoding": "^0.6.4" + "@sinonjs/formatio": "2.0.0", + "just-extend": "1.1.27", + "lolex": "2.7.1", + "path-to-regexp": "1.7.0", + "text-encoding": "0.6.4" } }, "node-cmd": { @@ -4003,7 +3998,7 @@ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", "requires": { - "lodash.toarray": "^4.4.0" + "lodash.toarray": "4.4.0" } }, "nopt": { @@ -4011,7 +4006,7 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "requires": { - "abbrev": "1" + "abbrev": "1.1.1" } }, "normalize-package-data": { @@ -4019,10 +4014,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.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.7.1", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" } }, "normalize-path": { @@ -4030,7 +4025,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { - "remove-trailing-separator": "^1.0.1" + "remove-trailing-separator": "1.1.0" } }, "npm-run-path": { @@ -4038,7 +4033,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { @@ -4051,42 +4046,42 @@ "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.9.0.tgz", "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", "requires": { - "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^1.0.0", - "convert-source-map": "^1.5.1", - "debug-log": "^1.0.1", - "default-require-extensions": "^1.0.0", - "find-cache-dir": "^0.1.1", - "find-up": "^2.1.0", - "foreground-child": "^1.5.3", - "glob": "^7.0.6", - "istanbul-lib-coverage": "^1.1.2", - "istanbul-lib-hook": "^1.1.0", - "istanbul-lib-instrument": "^1.10.0", - "istanbul-lib-report": "^1.1.3", - "istanbul-lib-source-maps": "^1.2.3", - "istanbul-reports": "^1.4.0", - "md5-hex": "^1.2.0", - "merge-source-map": "^1.1.0", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.0", - "resolve-from": "^2.0.0", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.1", - "spawn-wrap": "^1.4.2", - "test-exclude": "^4.2.0", + "archy": "1.0.0", + "arrify": "1.0.1", + "caching-transform": "1.0.1", + "convert-source-map": "1.5.1", + "debug-log": "1.0.1", + "default-require-extensions": "1.0.0", + "find-cache-dir": "0.1.1", + "find-up": "2.1.0", + "foreground-child": "1.5.6", + "glob": "7.1.2", + "istanbul-lib-coverage": "1.2.0", + "istanbul-lib-hook": "1.1.0", + "istanbul-lib-instrument": "1.10.1", + "istanbul-lib-report": "1.1.3", + "istanbul-lib-source-maps": "1.2.3", + "istanbul-reports": "1.4.0", + "md5-hex": "1.3.0", + "merge-source-map": "1.1.0", + "micromatch": "3.1.10", + "mkdirp": "0.5.1", + "resolve-from": "2.0.0", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "spawn-wrap": "1.4.2", + "test-exclude": "4.2.1", "yargs": "11.1.0", - "yargs-parser": "^8.0.0" + "yargs-parser": "8.1.0" }, "dependencies": { "align-text": { "version": "0.1.4", "bundled": true, "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" } }, "amdefine": { @@ -4105,7 +4100,7 @@ "version": "0.4.0", "bundled": true, "requires": { - "default-require-extensions": "^1.0.0" + "default-require-extensions": "1.0.0" } }, "archy": { @@ -4148,74 +4143,74 @@ "version": "6.26.0", "bundled": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" } }, "babel-generator": { "version": "6.26.1", "bundled": true, "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.10", + "source-map": "0.5.7", + "trim-right": "1.0.1" } }, "babel-messages": { "version": "6.23.0", "bundled": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-runtime": { "version": "6.26.0", "bundled": true, "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "core-js": "2.5.6", + "regenerator-runtime": "0.11.1" } }, "babel-template": { "version": "6.26.0", "bundled": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.10" } }, "babel-traverse": { "version": "6.26.0", "bundled": true, "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.4", + "lodash": "4.17.10" } }, "babel-types": { "version": "6.26.0", "bundled": true, "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.10", + "to-fast-properties": "1.0.3" } }, "babylon": { @@ -4230,43 +4225,43 @@ "version": "0.11.2", "bundled": 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.2.0", - "pascalcase": "^0.1.1" + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" }, "dependencies": { "define-property": { "version": "1.0.0", "bundled": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -4283,7 +4278,7 @@ "version": "1.1.11", "bundled": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -4291,23 +4286,23 @@ "version": "2.3.2", "bundled": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -4320,15 +4315,15 @@ "version": "1.0.1", "bundled": 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" }, "dependencies": { "isobject": { @@ -4341,9 +4336,9 @@ "version": "1.0.1", "bundled": true, "requires": { - "md5-hex": "^1.2.0", - "mkdirp": "^0.5.1", - "write-file-atomic": "^1.1.4" + "md5-hex": "1.3.0", + "mkdirp": "0.5.1", + "write-file-atomic": "1.3.4" } }, "camelcase": { @@ -4356,36 +4351,36 @@ "bundled": true, "optional": true, "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" + "align-text": "0.1.4", + "lazy-cache": "1.0.4" } }, "chalk": { "version": "1.1.3", "bundled": true, "requires": { - "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" + "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" } }, "class-utils": { "version": "0.3.6", "bundled": true, "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" }, "dependencies": { "define-property": { "version": "0.2.5", "bundled": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "isobject": { @@ -4399,8 +4394,8 @@ "bundled": true, "optional": true, "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", + "center-align": "0.1.3", + "right-align": "0.1.3", "wordwrap": "0.0.2" }, "dependencies": { @@ -4419,8 +4414,8 @@ "version": "1.0.0", "bundled": true, "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "map-visit": "1.0.0", + "object-visit": "1.0.1" } }, "commondir": { @@ -4451,8 +4446,8 @@ "version": "4.0.2", "bundled": true, "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "which": "1.3.0" } }, "debug": { @@ -4478,38 +4473,38 @@ "version": "1.0.0", "bundled": true, "requires": { - "strip-bom": "^2.0.0" + "strip-bom": "2.0.0" } }, "define-property": { "version": "2.0.2", "bundled": true, "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "is-descriptor": "1.0.2", + "isobject": "3.0.1" }, "dependencies": { "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -4526,14 +4521,14 @@ "version": "4.0.0", "bundled": true, "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "error-ex": { "version": "1.3.1", "bundled": true, "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "escape-string-regexp": { @@ -4548,22 +4543,22 @@ "version": "0.7.0", "bundled": true, "requires": { - "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" + "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" }, "dependencies": { "cross-spawn": { "version": "5.1.0", "bundled": true, "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.0" } } } @@ -4572,27 +4567,27 @@ "version": "2.1.4", "bundled": true, "requires": { - "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" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { "version": "0.2.5", "bundled": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -4601,15 +4596,15 @@ "version": "3.0.2", "bundled": true, "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { "version": "1.0.1", "bundled": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -4618,51 +4613,51 @@ "version": "2.0.4", "bundled": 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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { "version": "1.0.0", "bundled": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "kind-of": { @@ -4675,17 +4670,17 @@ "version": "4.0.0", "bundled": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -4694,16 +4689,16 @@ "version": "0.1.1", "bundled": true, "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" + "commondir": "1.0.1", + "mkdirp": "0.5.1", + "pkg-dir": "1.0.0" } }, "find-up": { "version": "2.1.0", "bundled": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "for-in": { @@ -4714,15 +4709,15 @@ "version": "1.5.6", "bundled": true, "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" + "cross-spawn": "4.0.2", + "signal-exit": "3.0.2" } }, "fragment-cache": { "version": "0.2.1", "bundled": true, "requires": { - "map-cache": "^0.2.2" + "map-cache": "0.2.2" } }, "fs.realpath": { @@ -4745,12 +4740,12 @@ "version": "7.1.2", "bundled": true, "requires": { - "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" + "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" } }, "globals": { @@ -4765,17 +4760,17 @@ "version": "4.0.11", "bundled": true, "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" }, "dependencies": { "source-map": { "version": "0.4.4", "bundled": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } @@ -4784,7 +4779,7 @@ "version": "2.0.0", "bundled": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "has-flag": { @@ -4795,9 +4790,9 @@ "version": "1.0.0", "bundled": true, "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -4810,22 +4805,22 @@ "version": "1.0.0", "bundled": true, "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { "is-number": { "version": "3.0.0", "bundled": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "bundled": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -4834,7 +4829,7 @@ "version": "4.0.0", "bundled": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -4851,8 +4846,8 @@ "version": "1.0.6", "bundled": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -4863,7 +4858,7 @@ "version": "2.2.4", "bundled": true, "requires": { - "loose-envify": "^1.0.0" + "loose-envify": "1.3.1" } }, "invert-kv": { @@ -4874,7 +4869,7 @@ "version": "0.1.6", "bundled": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-arrayish": { @@ -4889,23 +4884,23 @@ "version": "1.0.0", "bundled": true, "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-data-descriptor": { "version": "0.1.4", "bundled": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-descriptor": { "version": "0.1.6", "bundled": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" }, "dependencies": { "kind-of": { @@ -4922,7 +4917,7 @@ "version": "1.0.2", "bundled": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { @@ -4933,14 +4928,14 @@ "version": "3.0.0", "bundled": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-odd": { "version": "2.0.0", "bundled": true, "requires": { - "is-number": "^4.0.0" + "is-number": "4.0.0" }, "dependencies": { "is-number": { @@ -4953,7 +4948,7 @@ "version": "2.0.4", "bundled": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -4994,37 +4989,37 @@ "version": "1.1.0", "bundled": true, "requires": { - "append-transform": "^0.4.0" + "append-transform": "0.4.0" } }, "istanbul-lib-instrument": { "version": "1.10.1", "bundled": true, "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.2.0", - "semver": "^5.3.0" + "babel-generator": "6.26.1", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "istanbul-lib-coverage": "1.2.0", + "semver": "5.5.0" } }, "istanbul-lib-report": { "version": "1.1.3", "bundled": true, "requires": { - "istanbul-lib-coverage": "^1.1.2", - "mkdirp": "^0.5.1", - "path-parse": "^1.0.5", - "supports-color": "^3.1.2" + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" }, "dependencies": { "supports-color": { "version": "3.2.3", "bundled": true, "requires": { - "has-flag": "^1.0.0" + "has-flag": "1.0.0" } } } @@ -5033,11 +5028,11 @@ "version": "1.2.3", "bundled": true, "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^1.1.2", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.1", - "source-map": "^0.5.3" + "debug": "3.1.0", + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" }, "dependencies": { "debug": { @@ -5053,7 +5048,7 @@ "version": "1.4.0", "bundled": true, "requires": { - "handlebars": "^4.0.3" + "handlebars": "4.0.11" } }, "js-tokens": { @@ -5068,7 +5063,7 @@ "version": "3.2.2", "bundled": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "lazy-cache": { @@ -5080,26 +5075,26 @@ "version": "1.0.0", "bundled": true, "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "load-json-file": { "version": "1.1.0", "bundled": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" } }, "locate-path": { "version": "2.0.0", "bundled": 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": { @@ -5120,15 +5115,15 @@ "version": "1.3.1", "bundled": true, "requires": { - "js-tokens": "^3.0.0" + "js-tokens": "3.0.2" } }, "lru-cache": { "version": "4.1.3", "bundled": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "map-cache": { @@ -5139,14 +5134,14 @@ "version": "1.0.0", "bundled": true, "requires": { - "object-visit": "^1.0.0" + "object-visit": "1.0.1" } }, "md5-hex": { "version": "1.3.0", "bundled": true, "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "md5-o-matic": { @@ -5157,14 +5152,14 @@ "version": "1.1.0", "bundled": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "merge-source-map": { "version": "1.1.0", "bundled": true, "requires": { - "source-map": "^0.6.1" + "source-map": "0.6.1" }, "dependencies": { "source-map": { @@ -5177,19 +5172,19 @@ "version": "3.1.10", "bundled": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "kind-of": { @@ -5206,7 +5201,7 @@ "version": "3.0.4", "bundled": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -5217,15 +5212,15 @@ "version": "1.3.1", "bundled": 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": { "version": "1.0.1", "bundled": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -5245,18 +5240,18 @@ "version": "1.2.9", "bundled": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-odd": "^2.0.0", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-odd": "2.0.0", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "arr-diff": { @@ -5277,17 +5272,17 @@ "version": "2.4.0", "bundled": true, "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.6.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" } }, "npm-run-path": { "version": "2.0.2", "bundled": true, "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { @@ -5302,16 +5297,16 @@ "version": "0.1.0", "bundled": true, "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" }, "dependencies": { "define-property": { "version": "0.2.5", "bundled": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -5320,7 +5315,7 @@ "version": "1.0.1", "bundled": true, "requires": { - "isobject": "^3.0.0" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -5333,7 +5328,7 @@ "version": "1.3.0", "bundled": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -5346,15 +5341,15 @@ "version": "1.4.0", "bundled": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "optimist": { "version": "0.6.1", "bundled": true, "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" + "minimist": "0.0.8", + "wordwrap": "0.0.3" } }, "os-homedir": { @@ -5365,9 +5360,9 @@ "version": "2.1.0", "bundled": 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" } }, "p-finally": { @@ -5378,14 +5373,14 @@ "version": "1.2.0", "bundled": true, "requires": { - "p-try": "^1.0.0" + "p-try": "1.0.0" } }, "p-locate": { "version": "2.0.0", "bundled": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.2.0" } }, "p-try": { @@ -5396,7 +5391,7 @@ "version": "2.2.0", "bundled": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.1" } }, "pascalcase": { @@ -5407,7 +5402,7 @@ "version": "2.1.0", "bundled": true, "requires": { - "pinkie-promise": "^2.0.0" + "pinkie-promise": "2.0.1" } }, "path-is-absolute": { @@ -5426,9 +5421,9 @@ "version": "1.1.0", "bundled": true, "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "pify": { @@ -5443,22 +5438,22 @@ "version": "2.0.1", "bundled": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "pkg-dir": { "version": "1.0.0", "bundled": true, "requires": { - "find-up": "^1.0.0" + "find-up": "1.1.2" }, "dependencies": { "find-up": { "version": "1.1.2", "bundled": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } @@ -5475,25 +5470,25 @@ "version": "1.1.0", "bundled": true, "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" } }, "read-pkg-up": { "version": "1.0.1", "bundled": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "find-up": "1.1.2", + "read-pkg": "1.1.0" }, "dependencies": { "find-up": { "version": "1.1.2", "bundled": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } @@ -5506,8 +5501,8 @@ "version": "1.0.2", "bundled": true, "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" } }, "repeat-element": { @@ -5522,7 +5517,7 @@ "version": "2.0.1", "bundled": true, "requires": { - "is-finite": "^1.0.0" + "is-finite": "1.0.2" } }, "require-directory": { @@ -5550,21 +5545,21 @@ "bundled": true, "optional": true, "requires": { - "align-text": "^0.1.1" + "align-text": "0.1.4" } }, "rimraf": { "version": "2.6.2", "bundled": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "safe-regex": { "version": "1.1.0", "bundled": true, "requires": { - "ret": "~0.1.10" + "ret": "0.1.15" } }, "semver": { @@ -5579,17 +5574,17 @@ "version": "2.0.0", "bundled": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -5598,7 +5593,7 @@ "version": "1.2.0", "bundled": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -5617,28 +5612,28 @@ "version": "0.8.2", "bundled": true, "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "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": "3.1.0" }, "dependencies": { "define-property": { "version": "0.2.5", "bundled": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -5647,39 +5642,39 @@ "version": "2.1.1", "bundled": true, "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" }, "dependencies": { "define-property": { "version": "1.0.0", "bundled": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -5696,7 +5691,7 @@ "version": "3.0.1", "bundled": true, "requires": { - "kind-of": "^3.2.0" + "kind-of": "3.2.2" } }, "source-map": { @@ -5707,11 +5702,11 @@ "version": "0.5.1", "bundled": true, "requires": { - "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" + "atob": "2.1.1", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" } }, "source-map-url": { @@ -5722,20 +5717,20 @@ "version": "1.4.2", "bundled": true, "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" + "foreground-child": "1.5.6", + "mkdirp": "0.5.1", + "os-homedir": "1.0.2", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "which": "1.3.0" } }, "spdx-correct": { "version": "3.0.0", "bundled": true, "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, "spdx-exceptions": { @@ -5746,8 +5741,8 @@ "version": "3.0.0", "bundled": true, "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" } }, "spdx-license-ids": { @@ -5758,22 +5753,22 @@ "version": "3.1.0", "bundled": true, "requires": { - "extend-shallow": "^3.0.0" + "extend-shallow": "3.0.2" } }, "static-extend": { "version": "0.1.2", "bundled": 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": { "version": "0.2.5", "bundled": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -5782,8 +5777,8 @@ "version": "2.1.1", "bundled": 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" }, "dependencies": { "ansi-regex": { @@ -5794,7 +5789,7 @@ "version": "4.0.0", "bundled": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -5803,14 +5798,14 @@ "version": "3.0.1", "bundled": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-bom": { "version": "2.0.0", "bundled": true, "requires": { - "is-utf8": "^0.2.0" + "is-utf8": "0.2.1" } }, "strip-eof": { @@ -5825,11 +5820,11 @@ "version": "4.2.1", "bundled": true, "requires": { - "arrify": "^1.0.1", - "micromatch": "^3.1.8", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" + "arrify": "1.0.1", + "micromatch": "3.1.10", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" }, "dependencies": { "arr-diff": { @@ -5844,23 +5839,23 @@ "version": "2.3.2", "bundled": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -5869,41 +5864,41 @@ "version": "2.1.4", "bundled": true, "requires": { - "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" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { "version": "0.2.5", "bundled": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { "version": "0.1.6", "bundled": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "bundled": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -5912,14 +5907,14 @@ "version": "0.1.4", "bundled": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "bundled": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -5928,9 +5923,9 @@ "version": "0.1.6", "bundled": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { @@ -5943,28 +5938,28 @@ "version": "2.0.4", "bundled": 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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { "version": "1.0.0", "bundled": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -5973,17 +5968,17 @@ "version": "4.0.0", "bundled": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -5992,37 +5987,37 @@ "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-number": { "version": "3.0.0", "bundled": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "bundled": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -6039,19 +6034,19 @@ "version": "3.1.10", "bundled": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } } } @@ -6064,32 +6059,32 @@ "version": "0.3.0", "bundled": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "to-regex": { "version": "3.0.2", "bundled": true, "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" } }, "to-regex-range": { "version": "2.1.1", "bundled": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "3.0.0", + "repeat-string": "1.6.1" }, "dependencies": { "is-number": { "version": "3.0.0", "bundled": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } } } @@ -6103,9 +6098,9 @@ "bundled": true, "optional": true, "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" }, "dependencies": { "yargs": { @@ -6113,9 +6108,9 @@ "bundled": true, "optional": true, "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", "window-size": "0.1.0" } } @@ -6130,27 +6125,27 @@ "version": "1.0.0", "bundled": 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": { "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "set-value": { "version": "0.4.3", "bundled": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" } } } @@ -6159,17 +6154,17 @@ "version": "1.0.0", "bundled": true, "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "has-value": "0.3.1", + "isobject": "3.0.1" }, "dependencies": { "has-value": { "version": "0.3.1", "bundled": true, "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" }, "dependencies": { "isobject": { @@ -6199,7 +6194,7 @@ "version": "3.1.0", "bundled": true, "requires": { - "kind-of": "^6.0.2" + "kind-of": "6.0.2" }, "dependencies": { "kind-of": { @@ -6212,15 +6207,15 @@ "version": "3.0.3", "bundled": true, "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "which": { "version": "1.3.0", "bundled": true, "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -6240,24 +6235,24 @@ "version": "2.1.0", "bundled": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "string-width": { "version": "1.0.2", "bundled": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -6270,9 +6265,9 @@ "version": "1.3.4", "bundled": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" } }, "y18n": { @@ -6287,18 +6282,18 @@ "version": "11.1.0", "bundled": true, "requires": { - "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": "^9.0.2" + "cliui": "4.1.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": "9.0.2" }, "dependencies": { "ansi-regex": { @@ -6313,23 +6308,23 @@ "version": "4.1.0", "bundled": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" } }, "strip-ansi": { "version": "4.0.0", "bundled": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } }, "yargs-parser": { "version": "9.0.2", "bundled": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" } } } @@ -6338,7 +6333,7 @@ "version": "8.1.0", "bundled": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" }, "dependencies": { "camelcase": { @@ -6375,8 +6370,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "optional": true, "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" + "for-own": "0.1.5", + "is-extendable": "0.1.1" } }, "once": { @@ -6384,7 +6379,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "onetime": { @@ -6392,7 +6387,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "optionator": { @@ -6400,12 +6395,12 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" } }, "os-homedir": { @@ -6418,9 +6413,9 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "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" } }, "os-tmpdir": { @@ -6433,9 +6428,9 @@ "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", "requires": { - "graceful-fs": "^4.1.4", - "mkdirp": "^0.5.1", - "object-assign": "^4.1.0" + "graceful-fs": "4.1.11", + "mkdirp": "0.5.1", + "object-assign": "4.1.1" } }, "p-finally": { @@ -6448,7 +6443,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "requires": { - "p-try": "^1.0.0" + "p-try": "1.0.0" } }, "p-locate": { @@ -6456,7 +6451,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.3.0" } }, "p-try": { @@ -6470,10 +6465,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "optional": true, "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" } }, "parse-json": { @@ -6481,7 +6476,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.2" } }, "parseqs": { @@ -6489,7 +6484,7 @@ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "requires": { - "better-assert": "~1.0.0" + "better-assert": "1.0.2" } }, "parseuri": { @@ -6497,7 +6492,7 @@ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "requires": { - "better-assert": "~1.0.0" + "better-assert": "1.0.2" } }, "path-exists": { @@ -6547,7 +6542,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { - "pify": "^2.0.0" + "pify": "2.3.0" }, "dependencies": { "pify": { @@ -6568,11 +6563,11 @@ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ripemd160": "2.0.2", + "safe-buffer": "5.1.2", + "sha.js": "2.4.11" } }, "pify": { @@ -6590,7 +6585,7 @@ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "pkg-conf": { @@ -6598,8 +6593,8 @@ "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", "requires": { - "find-up": "^2.0.0", - "load-json-file": "^4.0.0" + "find-up": "2.1.0", + "load-json-file": "4.0.0" }, "dependencies": { "load-json-file": { @@ -6607,10 +6602,10 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.11", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" } }, "parse-json": { @@ -6618,8 +6613,8 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" } } } @@ -6629,9 +6624,9 @@ "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=", "requires": { - "debug-log": "^1.0.0", - "find-root": "^1.0.0", - "xtend": "^4.0.1" + "debug-log": "1.0.1", + "find-root": "1.1.0", + "xtend": "4.0.1" } }, "pkg-dir": { @@ -6639,7 +6634,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "requires": { - "find-up": "^1.0.0" + "find-up": "1.1.2" }, "dependencies": { "find-up": { @@ -6647,8 +6642,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } }, "path-exists": { @@ -6656,7 +6651,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "requires": { - "pinkie-promise": "^2.0.0" + "pinkie-promise": "2.0.1" } } } @@ -6702,8 +6697,8 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" + "loose-envify": "1.4.0", + "object-assign": "4.1.1" } }, "pseudomap": { @@ -6716,7 +6711,7 @@ "resolved": "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", "integrity": "sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=", "requires": { - "bitcoin-ops": "^1.3.0" + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" } }, "qrcode": { @@ -6724,11 +6719,11 @@ "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.2.0.tgz", "integrity": "sha512-wZK0Z0eYmOUDP2tOGzmLdeBn5Npa+4wms9GdvzH7HrywvGUq/Stz0BKUhW4DfmBf1PSrm9dNfdnVDq683Zxvag==", "requires": { - "can-promise": "^0.0.1", - "dijkstrajs": "^1.0.1", - "isarray": "^2.0.1", - "pngjs": "^3.3.0", - "yargs": "^8.0.2" + "can-promise": "0.0.1", + "dijkstrajs": "1.0.1", + "isarray": "2.0.4", + "pngjs": "3.3.3", + "yargs": "8.0.2" }, "dependencies": { "isarray": { @@ -6749,9 +6744,9 @@ "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", "optional": true, "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" + "is-number": "4.0.0", + "kind-of": "6.0.2", + "math-random": "1.0.1" }, "dependencies": { "is-number": { @@ -6773,7 +6768,7 @@ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "requires": { - "safe-buffer": "^5.1.0" + "safe-buffer": "5.1.2" } }, "read-pkg": { @@ -6781,9 +6776,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" } }, "read-pkg-up": { @@ -6791,8 +6786,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" + "find-up": "2.1.0", + "read-pkg": "2.0.0" } }, "readable-stream": { @@ -6800,13 +6795,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "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" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.2", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" }, "dependencies": { "inherits": { @@ -6822,10 +6817,10 @@ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "optional": true, "requires": { - "graceful-fs": "^4.1.2", - "minimatch": "^3.0.2", - "readable-stream": "^2.0.2", - "set-immediate-shim": "^1.0.1" + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.6", + "set-immediate-shim": "1.0.1" } }, "regenerate": { @@ -6843,9 +6838,9 @@ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "requires": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "private": "0.1.8" } }, "regex-cache": { @@ -6854,7 +6849,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "optional": true, "requires": { - "is-equal-shallow": "^0.1.3" + "is-equal-shallow": "0.1.3" } }, "regexpu-core": { @@ -6862,9 +6857,9 @@ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" + "regenerate": "1.4.0", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" } }, "regjsgen": { @@ -6877,7 +6872,7 @@ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "requires": { - "jsesc": "~0.5.0" + "jsesc": "0.5.0" }, "dependencies": { "jsesc": { @@ -6908,7 +6903,7 @@ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "requires": { - "is-finite": "^1.0.0" + "is-finite": "1.0.2" } }, "repl.history": { @@ -6931,8 +6926,8 @@ "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" + "caller-path": "0.1.0", + "resolve-from": "1.0.1" } }, "requires-port": { @@ -6945,7 +6940,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "requires": { - "path-parse": "^1.0.5" + "path-parse": "1.0.5" } }, "resolve-from": { @@ -6958,8 +6953,8 @@ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "onetime": "2.0.1", + "signal-exit": "3.0.2" } }, "resumer": { @@ -6967,7 +6962,7 @@ "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", "requires": { - "through": "~2.3.4" + "through": "2.3.8" } }, "rimraf": { @@ -6975,7 +6970,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "ripemd160": { @@ -6983,8 +6978,8 @@ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "hash-base": "3.0.4", + "inherits": "2.0.1" } }, "run-async": { @@ -6992,7 +6987,7 @@ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "requires": { - "is-promise": "^2.1.0" + "is-promise": "2.1.0" } }, "run-parallel": { @@ -7010,7 +7005,7 @@ "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "requires": { - "rx-lite": "*" + "rx-lite": "4.0.8" } }, "safe-buffer": { @@ -7034,7 +7029,7 @@ "resolved": "https://registry.npmjs.org/satoshi-bitcoin/-/satoshi-bitcoin-1.0.4.tgz", "integrity": "sha1-0AK2dwddXLvywhGo3zJUvN9QseQ=", "requires": { - "big.js": "^3.1.3" + "big.js": "3.2.0" } }, "scryptsy": { @@ -7047,14 +7042,14 @@ "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.5.0.tgz", "integrity": "sha512-e5QIJl8W7Y4tT6LHffVcZAxJjvpgE5Owawv6/XCYPQljE9aP2NFFddQ8OYMKhdLshNu88FfL3qCN3/xYkXGRsA==", "requires": { - "bindings": "^1.2.1", - "bip66": "^1.1.3", - "bn.js": "^4.11.3", - "create-hash": "^1.1.2", - "drbg.js": "^1.0.1", - "elliptic": "^6.2.3", - "nan": "^2.2.1", - "safe-buffer": "^5.1.0" + "bindings": "1.3.0", + "bip66": "1.1.5", + "bn.js": "4.11.8", + "create-hash": "1.2.0", + "drbg.js": "1.0.1", + "elliptic": "6.4.0", + "nan": "2.10.0", + "safe-buffer": "5.1.2" } }, "semver": { @@ -7078,8 +7073,8 @@ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "shebang-command": { @@ -7087,7 +7082,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -7106,13 +7101,13 @@ "integrity": "sha512-trdx+mB0VBBgoYucy6a9L7/jfQOmvGeaKZT4OOJ+lPAtI8623xyGr8wLiE4eojzBS8G9yXbhx42GHUOVLr4X2w==", "dev": true, "requires": { - "@sinonjs/formatio": "^2.0.0", - "diff": "^3.1.0", - "lodash.get": "^4.4.2", - "lolex": "^2.2.0", - "nise": "^1.2.0", - "supports-color": "^5.1.0", - "type-detect": "^4.0.5" + "@sinonjs/formatio": "2.0.0", + "diff": "3.5.0", + "lodash.get": "4.4.2", + "lolex": "2.7.1", + "nise": "1.4.2", + "supports-color": "5.4.0", + "type-detect": "4.0.8" }, "dependencies": { "supports-color": { @@ -7121,7 +7116,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -7136,7 +7131,7 @@ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "requires": { - "is-fullwidth-code-point": "^2.0.0" + "is-fullwidth-code-point": "2.0.0" }, "dependencies": { "is-fullwidth-code-point": { @@ -7151,12 +7146,12 @@ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", "requires": { - "debug": "~3.1.0", - "engine.io": "~3.2.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", + "debug": "3.1.0", + "engine.io": "3.2.0", + "has-binary2": "1.0.3", + "socket.io-adapter": "1.1.1", "socket.io-client": "2.1.1", - "socket.io-parser": "~3.2.0" + "socket.io-parser": "3.2.0" } }, "socket.io-adapter": { @@ -7173,15 +7168,15 @@ "base64-arraybuffer": "0.1.5", "component-bind": "1.0.0", "component-emitter": "1.2.1", - "debug": "~3.1.0", - "engine.io-client": "~3.2.0", - "has-binary2": "~1.0.2", + "debug": "3.1.0", + "engine.io-client": "3.2.1", + "has-binary2": "1.0.3", "has-cors": "1.1.0", "indexof": "0.0.1", "object-component": "0.0.3", "parseqs": "0.0.5", "parseuri": "0.0.5", - "socket.io-parser": "~3.2.0", + "socket.io-parser": "3.2.0", "to-array": "0.1.4" } }, @@ -7191,7 +7186,7 @@ "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", "requires": { "component-emitter": "1.2.1", - "debug": "~3.1.0", + "debug": "3.1.0", "isarray": "2.0.1" }, "dependencies": { @@ -7212,7 +7207,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "requires": { - "source-map": "^0.5.6" + "source-map": "0.5.7" } }, "spdx-correct": { @@ -7220,8 +7215,8 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, "spdx-exceptions": { @@ -7234,8 +7229,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" } }, "spdx-license-ids": { @@ -7253,15 +7248,15 @@ "resolved": "https://registry.npmjs.org/standard/-/standard-11.0.1.tgz", "integrity": "sha512-nu0jAcHiSc8H+gJCXeiziMVZNDYi8MuqrYJKxTgjP4xKXZMKm311boqQIzDrYI/ktosltxt2CbDjYQs9ANC8IA==", "requires": { - "eslint": "~4.18.0", + "eslint": "4.18.2", "eslint-config-standard": "11.0.0", "eslint-config-standard-jsx": "5.0.0", - "eslint-plugin-import": "~2.9.0", - "eslint-plugin-node": "~6.0.0", - "eslint-plugin-promise": "~3.7.0", - "eslint-plugin-react": "~7.7.0", - "eslint-plugin-standard": "~3.0.1", - "standard-engine": "~8.0.0" + "eslint-plugin-import": "2.9.0", + "eslint-plugin-node": "6.0.1", + "eslint-plugin-promise": "3.7.0", + "eslint-plugin-react": "7.7.0", + "eslint-plugin-standard": "3.0.1", + "standard-engine": "8.0.1" } }, "standard-engine": { @@ -7269,10 +7264,10 @@ "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-8.0.1.tgz", "integrity": "sha512-LA531C3+nljom/XRvdW/hGPXwmilRkaRkENhO3FAGF1Vtq/WtCXzgmnc5S6vUHHsgv534MRy02C1ikMwZXC+tw==", "requires": { - "deglob": "^2.1.0", - "get-stdin": "^6.0.0", - "minimist": "^1.1.0", - "pkg-conf": "^2.0.0" + "deglob": "2.1.1", + "get-stdin": "6.0.0", + "minimist": "1.2.0", + "pkg-conf": "2.1.0" }, "dependencies": { "minimist": { @@ -7287,8 +7282,8 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "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" }, "dependencies": { "ansi-regex": { @@ -7306,7 +7301,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -7316,9 +7311,9 @@ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.0", - "function-bind": "^1.0.2" + "define-properties": "1.1.2", + "es-abstract": "1.12.0", + "function-bind": "1.1.1" } }, "string_decoder": { @@ -7326,7 +7321,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.2" } }, "strip-ansi": { @@ -7334,7 +7329,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-bom": { @@ -7362,12 +7357,12 @@ "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "requires": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", + "ajv": "5.5.2", + "ajv-keywords": "2.1.1", + "chalk": "2.4.1", + "lodash": "4.17.10", "slice-ansi": "1.0.0", - "string-width": "^2.1.1" + "string-width": "2.1.1" } }, "tape": { @@ -7375,19 +7370,19 @@ "resolved": "https://registry.npmjs.org/tape/-/tape-4.9.1.tgz", "integrity": "sha512-6fKIXknLpoe/Jp4rzHKFPpJUHDHDqn8jus99IfPnHIjyz78HYlefTGD3b5EkbQzuLfaEvmfPK3IolLgq2xT3kw==", "requires": { - "deep-equal": "~1.0.1", - "defined": "~1.0.0", - "for-each": "~0.3.3", - "function-bind": "~1.1.1", - "glob": "~7.1.2", - "has": "~1.0.3", - "inherits": "~2.0.3", - "minimist": "~1.2.0", - "object-inspect": "~1.6.0", - "resolve": "~1.7.1", - "resumer": "~0.0.0", - "string.prototype.trim": "~1.1.2", - "through": "~2.3.8" + "deep-equal": "1.0.1", + "defined": "1.0.0", + "for-each": "0.3.3", + "function-bind": "1.1.1", + "glob": "7.1.2", + "has": "1.0.3", + "inherits": "2.0.3", + "minimist": "1.2.0", + "object-inspect": "1.6.0", + "resolve": "1.7.1", + "resumer": "0.0.0", + "string.prototype.trim": "1.1.2", + "through": "2.3.8" }, "dependencies": { "inherits": { @@ -7405,7 +7400,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", "requires": { - "path-parse": "^1.0.5" + "path-parse": "1.0.5" } } } @@ -7431,8 +7426,8 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" + "readable-stream": "1.0.34", + "xtend": "4.0.1" }, "dependencies": { "isarray": { @@ -7445,10 +7440,10 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", + "core-util-is": "1.0.2", + "inherits": "2.0.1", "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "string_decoder": "0.10.31" } }, "string_decoder": { @@ -7463,7 +7458,7 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "requires": { - "os-tmpdir": "~1.0.2" + "os-tmpdir": "1.0.2" } }, "to-array": { @@ -7481,7 +7476,7 @@ "resolved": "https://registry.npmjs.org/topo/-/topo-1.1.0.tgz", "integrity": "sha1-6ddRYV0buH3IZdsYL6HKCl71NtU=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } }, "touch": { @@ -7489,7 +7484,7 @@ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", "requires": { - "nopt": "~1.0.10" + "nopt": "1.0.10" } }, "traverse": { @@ -7507,7 +7502,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { - "prelude-ls": "~1.1.2" + "prelude-ls": "1.1.2" } }, "type-detect": { @@ -7564,7 +7559,7 @@ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "requires": { - "user-home": "^1.1.1" + "user-home": "1.1.1" } }, "validate-npm-package-license": { @@ -7572,8 +7567,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "varuint-bitcoin": { @@ -7581,7 +7576,7 @@ "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz", "integrity": "sha512-jCEPG+COU/1Rp84neKTyDJQr478/hAfVp5xxYn09QEH0yBjbmPeMfuuQIrp+BUD83hybtYZKhr5elV3bvdV1bA==", "requires": { - "safe-buffer": "^5.1.1" + "safe-buffer": "5.1.2" } }, "vision": { @@ -7589,10 +7584,10 @@ "resolved": "https://registry.npmjs.org/vision/-/vision-3.0.0.tgz", "integrity": "sha1-GEWEb2wjpvJTXa8woeHnHQukjGI=", "requires": { - "boom": "2.x.x", - "hoek": "^2.9.x", - "items": "^1.1.x", - "joi": "6.x.x" + "boom": "2.10.1", + "hoek": "2.16.3", + "items": "1.1.1", + "joi": "6.10.1" } }, "which": { @@ -7600,7 +7595,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -7613,7 +7608,7 @@ "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", "requires": { - "bs58check": "<3.0.0" + "bs58check": "2.1.1" } }, "window-or-global": { @@ -7631,8 +7626,8 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "string-width": { @@ -7640,9 +7635,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -7657,8 +7652,8 @@ "resolved": "https://registry.npmjs.org/wreck/-/wreck-6.3.0.tgz", "integrity": "sha1-oTaXafB7u2LWo3gzanhx/Hc8dAs=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x" + "boom": "2.10.1", + "hoek": "2.16.3" } }, "write": { @@ -7666,7 +7661,7 @@ "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "requires": { - "mkdirp": "^0.5.1" + "mkdirp": "0.5.1" } }, "ws": { @@ -7674,9 +7669,9 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" + "async-limiter": "1.0.0", + "safe-buffer": "5.1.2", + "ultron": "1.1.1" } }, "xmlhttprequest-ssl": { @@ -7704,19 +7699,19 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", "requires": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^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": "^7.0.0" + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.3", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.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": "7.0.0" } }, "yargs-parser": { @@ -7724,7 +7719,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" } }, "yeast": { diff --git a/package.json b/package.json index b3812d25..fab2a4e4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.4.4", + "version": "1.4.5", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", diff --git a/src/Socket.js b/src/Socket.js index cb6fadc9..76036266 100644 --- a/src/Socket.js +++ b/src/Socket.js @@ -1,8 +1,17 @@ import io from 'socket.io-client'; class Socket { - constructor(restURL = 'https://rest.bitbox.earth') { - this.socket = io(`${restURL}`); + constructor(config) { + if(config.restURL) { + this.socket = io(`${config.restURL}`); + } else { + let restURL = 'https://rest.bitbox.earth'; + this.socket = io(`${restURL}`); + } + + if(config.callback) { + config.callback(); + } } listen(endpoint, cb) { From 81c75e4bfdaad13ab8a01910e55ed28fe8333132 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Thu, 26 Jul 2018 16:05:24 +0900 Subject: [PATCH 046/480] Don't break backwards compatibility. --- lib/Socket.js | 24 ++++++++++++++++-------- src/Socket.js | 23 ++++++++++++++--------- 2 files changed, 30 insertions(+), 17 deletions(-) diff --git a/lib/Socket.js b/lib/Socket.js index 198d28a6..b054af59 100644 --- a/lib/Socket.js +++ b/lib/Socket.js @@ -15,17 +15,25 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var Socket = function () { - function Socket(config) { + function Socket() { + var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + _classCallCheck(this, Socket); - if (config.restURL) { - this.socket = (0, _socket2.default)('' + config.restURL); + if (typeof config === 'string') { + // TODO remove this check in v2.0 + this.socket = (0, _socket2.default)('' + config); } else { - var restURL = 'https://rest.bitbox.earth'; - this.socket = (0, _socket2.default)('' + restURL); - } - if (config.callback) { - config.callback(); + if (config.restURL) { + this.socket = (0, _socket2.default)('' + config.restURL); + } else { + var restURL = 'https://rest.bitbox.earth'; + this.socket = (0, _socket2.default)('' + restURL); + } + + if (config.callback) { + config.callback(); + } } } diff --git a/src/Socket.js b/src/Socket.js index 76036266..9358ce88 100644 --- a/src/Socket.js +++ b/src/Socket.js @@ -1,16 +1,21 @@ import io from 'socket.io-client'; class Socket { - constructor(config) { - if(config.restURL) { - this.socket = io(`${config.restURL}`); + constructor(config = {}) { + if(typeof config === 'string') { + // TODO remove this check in v2.0 + this.socket = io(`${config}`); } else { - let restURL = 'https://rest.bitbox.earth'; - this.socket = io(`${restURL}`); - } - - if(config.callback) { - config.callback(); + if(config.restURL) { + this.socket = io(`${config.restURL}`); + } else { + let restURL = 'https://rest.bitbox.earth'; + this.socket = io(`${restURL}`); + } + + if(config.callback) { + config.callback(); + } } } From ee5f7fa1c64d589ba145c3ff3b1d506713a420e4 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 27 Jul 2018 15:16:48 +0900 Subject: [PATCH 047/480] Update homepage path. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b6dc8540..aba4f4dc 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "bin": { "bitbox": "./index.js" }, - "homepage": "https://www.bitbox.earth", + "homepage": "https://developer.bitcoin.com/bitbox.html", "repository": { "type": "git", "url": "git+https://github.com/Bitcoin-com/bitbox-javascript-sdk.git" From 1fab3879840128be21a8d428fea74c1b214de41d Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Mon, 30 Jul 2018 15:57:18 +0900 Subject: [PATCH 048/480] Update sockets to conditionally pass back only blocks or transactions. --- lib/Socket.js | 16 +- package-lock.json | 3193 +++++++++++++++++++++++---------------------- package.json | 2 +- src/Socket.js | 16 +- 4 files changed, 1618 insertions(+), 1609 deletions(-) diff --git a/lib/Socket.js b/lib/Socket.js index b054af59..f9d01187 100644 --- a/lib/Socket.js +++ b/lib/Socket.js @@ -42,13 +42,15 @@ var Socket = function () { value: function listen(endpoint, cb) { this.socket.emit(endpoint); - this.socket.on('blocks', function (msg) { - return cb(msg); - }); - - this.socket.on('transactions', function (msg) { - return cb(msg); - }); + if (endpoint === 'blocks') { + this.socket.on('blocks', function (msg) { + return cb(msg); + }); + } else if (endpoint === 'transactions') { + this.socket.on('transactions', function (msg) { + return cb(msg); + }); + } } }]); diff --git a/package-lock.json b/package-lock.json index dbffe555..6bf83e13 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,7 +29,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "requires": { - "mime-types": "2.1.19", + "mime-types": "~2.1.18", "negotiator": "0.6.1" } }, @@ -43,7 +43,7 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "requires": { - "acorn": "3.3.0" + "acorn": "^3.0.4" }, "dependencies": { "acorn": { @@ -63,10 +63,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "ajv-keywords": { @@ -79,8 +79,8 @@ "resolved": "https://registry.npmjs.org/ammo/-/ammo-1.0.1.tgz", "integrity": "sha1-j4rdFM1Jve3jurOj4OvK8h0D3os=", "requires": { - "boom": "2.10.1", - "hoek": "2.16.3" + "boom": "2.x.x", + "hoek": "2.x.x" } }, "ansi-escapes": { @@ -104,8 +104,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "optional": true, "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" } }, "argparse": { @@ -113,7 +113,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "arr-diff": { @@ -122,7 +122,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "optional": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { @@ -136,8 +136,8 @@ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.12.0" + "define-properties": "^1.1.2", + "es-abstract": "^1.7.0" } }, "array-union": { @@ -145,7 +145,7 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -199,8 +199,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=", "requires": { - "follow-redirects": "1.5.1", - "is-buffer": "1.1.6" + "follow-redirects": "^1.2.5", + "is-buffer": "^1.1.5" } }, "babel-cli": { @@ -208,21 +208,21 @@ "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", "requires": { - "babel-core": "6.26.3", - "babel-polyfill": "6.26.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "chokidar": "1.7.0", - "commander": "2.16.0", - "convert-source-map": "1.5.1", - "fs-readdir-recursive": "1.1.0", - "glob": "7.1.2", - "lodash": "4.17.10", - "output-file-sync": "1.1.2", - "path-is-absolute": "1.0.1", - "slash": "1.0.0", - "source-map": "0.5.7", - "v8flags": "2.1.1" + "babel-core": "^6.26.0", + "babel-polyfill": "^6.26.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "chokidar": "^1.6.1", + "commander": "^2.11.0", + "convert-source-map": "^1.5.0", + "fs-readdir-recursive": "^1.0.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "output-file-sync": "^1.1.2", + "path-is-absolute": "^1.0.1", + "slash": "^1.0.0", + "source-map": "^0.5.6", + "v8flags": "^2.1.1" } }, "babel-code-frame": { @@ -230,9 +230,9 @@ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" }, "dependencies": { "chalk": { @@ -240,11 +240,11 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "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" } } } @@ -254,25 +254,25 @@ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.1", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.5.1", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.10", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" }, "dependencies": { "debug": { @@ -290,14 +290,14 @@ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" } }, "babel-helper-builder-binary-assignment-operator-visitor": { @@ -305,9 +305,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "requires": { - "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-builder-react-jsx": { @@ -315,9 +315,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "esutils": "2.0.2" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "esutils": "^2.0.2" } }, "babel-helper-call-delegate": { @@ -325,10 +325,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-define-map": { @@ -336,10 +336,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.10" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-explode-assignable-expression": { @@ -347,9 +347,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-function-name": { @@ -357,11 +357,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-get-function-arity": { @@ -369,8 +369,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-hoist-variables": { @@ -378,8 +378,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-optimise-call-expression": { @@ -387,8 +387,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-regex": { @@ -396,9 +396,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.10" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-remap-async-to-generator": { @@ -406,11 +406,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-replace-supers": { @@ -418,12 +418,12 @@ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "requires": { - "babel-helper-optimise-call-expression": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helpers": { @@ -431,8 +431,8 @@ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-messages": { @@ -440,7 +440,7 @@ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-check-es2015-constants": { @@ -448,7 +448,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-syntax-async-functions": { @@ -481,9 +481,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-arrow-functions": { @@ -491,7 +491,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -499,7 +499,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -507,11 +507,11 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.10" + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-plugin-transform-es2015-classes": { @@ -519,15 +519,15 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "requires": { - "babel-helper-define-map": "6.26.0", - "babel-helper-function-name": "6.24.1", - "babel-helper-optimise-call-expression": "6.24.1", - "babel-helper-replace-supers": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-computed-properties": { @@ -535,8 +535,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-destructuring": { @@ -544,7 +544,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -552,8 +552,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-for-of": { @@ -561,7 +561,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -569,9 +569,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-literals": { @@ -579,7 +579,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -587,9 +587,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -597,10 +597,10 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" } }, "babel-plugin-transform-es2015-modules-systemjs": { @@ -608,9 +608,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-umd": { @@ -618,9 +618,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "requires": { - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-object-super": { @@ -628,8 +628,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "requires": { - "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.26.0" + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -637,12 +637,12 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-shorthand-properties": { @@ -650,8 +650,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-spread": { @@ -659,7 +659,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -667,9 +667,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-template-literals": { @@ -677,7 +677,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -685,7 +685,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -693,9 +693,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -703,9 +703,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", - "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-flow-strip-types": { @@ -713,8 +713,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", "requires": { - "babel-plugin-syntax-flow": "6.18.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-flow": "^6.18.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-display-name": { @@ -722,7 +722,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx": { @@ -730,9 +730,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", "requires": { - "babel-helper-builder-react-jsx": "6.26.0", - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-react-jsx": "^6.24.1", + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx-self": { @@ -740,8 +740,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx-source": { @@ -749,8 +749,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-regenerator": { @@ -758,7 +758,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "requires": { - "regenerator-transform": "0.10.1" + "regenerator-transform": "^0.10.0" } }, "babel-plugin-transform-strict-mode": { @@ -766,8 +766,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-polyfill": { @@ -775,9 +775,9 @@ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "requires": { - "babel-runtime": "6.26.0", - "core-js": "2.5.7", - "regenerator-runtime": "0.10.5" + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" }, "dependencies": { "regenerator-runtime": { @@ -792,36 +792,36 @@ "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0", - "browserslist": "3.2.8", - "invariant": "2.2.4", - "semver": "5.5.0" + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" } }, "babel-preset-es2015": { @@ -829,30 +829,30 @@ "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0" + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.24.1", + "babel-plugin-transform-es2015-classes": "^6.24.1", + "babel-plugin-transform-es2015-computed-properties": "^6.24.1", + "babel-plugin-transform-es2015-destructuring": "^6.22.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", + "babel-plugin-transform-es2015-for-of": "^6.22.0", + "babel-plugin-transform-es2015-function-name": "^6.24.1", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-umd": "^6.24.1", + "babel-plugin-transform-es2015-object-super": "^6.24.1", + "babel-plugin-transform-es2015-parameters": "^6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", + "babel-plugin-transform-regenerator": "^6.24.1" } }, "babel-preset-flow": { @@ -860,7 +860,7 @@ "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", "requires": { - "babel-plugin-transform-flow-strip-types": "6.22.0" + "babel-plugin-transform-flow-strip-types": "^6.22.0" } }, "babel-preset-react": { @@ -868,12 +868,12 @@ "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-plugin-transform-react-display-name": "6.25.0", - "babel-plugin-transform-react-jsx": "6.24.1", - "babel-plugin-transform-react-jsx-self": "6.22.0", - "babel-plugin-transform-react-jsx-source": "6.22.0", - "babel-preset-flow": "6.23.0" + "babel-plugin-syntax-jsx": "^6.3.13", + "babel-plugin-transform-react-display-name": "^6.23.0", + "babel-plugin-transform-react-jsx": "^6.24.1", + "babel-plugin-transform-react-jsx-self": "^6.22.0", + "babel-plugin-transform-react-jsx-source": "^6.22.0", + "babel-preset-flow": "^6.23.0" } }, "babel-register": { @@ -881,13 +881,13 @@ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "requires": { - "babel-core": "6.26.3", - "babel-runtime": "6.26.0", - "core-js": "2.5.7", - "home-or-tmp": "2.0.0", - "lodash": "4.17.10", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" } }, "babel-runtime": { @@ -895,8 +895,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "2.5.7", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -904,11 +904,11 @@ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.10" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { @@ -916,15 +916,15 @@ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.10" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" }, "dependencies": { "debug": { @@ -942,10 +942,10 @@ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -968,7 +968,7 @@ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.4.tgz", "integrity": "sha512-UYOadoSIkEI/VrRGSG6qp93rp2WdokiAiNYDfGW5qURAY8GiAQkvMbwNNSDYiVJopqv4gCna7xqf4rrNGp+5AA==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "base64-arraybuffer": { @@ -991,8 +991,8 @@ "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.1.tgz", "integrity": "sha512-esOfL+EnG+qPgqAPl4NxWngDIJIEs35dcV6wU0NP6bxBtc363fYm7xhNtC1BRVagDLSbMNwyI27rkWXwN5i6yg==", "requires": { - "bs58check": "2.1.1", - "cashaddrjs": "0.2.8" + "bs58check": "^2.1.1", + "cashaddrjs": "^0.2.7" } }, "bech32": { @@ -1036,18 +1036,20 @@ }, "bip21": { "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", + "from": "github:Bitcoin-com/bip21", "requires": { - "qs": "6.5.2" + "qs": "^6.3.0" } }, "bip32-utils": { "version": "github:Bitcoin-com/bip32-utils#6d27e98d15ceb7543f904d7f770d1e39a806e6e8", + "from": "github:Bitcoin-com/bip32-utils#6d27e98d15ceb7543f904d7f770d1e39a806e6e8", "requires": { "bitbox-cli": "1.4.2", - "keccak": "1.4.0", - "nyc": "11.9.0", - "standard": "11.0.1", - "tape": "4.9.1" + "keccak": "^1.3.0", + "nyc": "*", + "standard": "^11.0.1", + "tape": "*" } }, "bip38": { @@ -1055,13 +1057,13 @@ "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", "integrity": "sha512-22KDak0RDyghFbR0Si7wyq9IgY423YzGYzWLpGeofH3DaolOQqjD3mNN08eFoubKlbyclOQKFwtONMv2SD9V3A==", "requires": { - "bigi": "1.4.2", - "browserify-aes": "1.2.0", - "bs58check": "2.1.1", - "buffer-xor": "1.0.3", - "create-hash": "1.2.0", - "ecurve": "1.0.6", - "scryptsy": "2.0.0" + "bigi": "^1.2.0", + "browserify-aes": "^1.0.1", + "bs58check": "<3.0.0", + "buffer-xor": "^1.0.2", + "create-hash": "^1.1.1", + "ecurve": "^1.0.0", + "scryptsy": "^2.0.0" } }, "bip39": { @@ -1069,11 +1071,11 @@ "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", "requires": { - "create-hash": "1.2.0", - "pbkdf2": "3.0.16", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "unorm": "1.4.1" + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "unorm": "^1.3.3" } }, "bip66": { @@ -1081,7 +1083,7 @@ "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "bip68": { @@ -1094,81 +1096,83 @@ "resolved": "https://registry.npmjs.org/bitbox-cli/-/bitbox-cli-1.4.2.tgz", "integrity": "sha512-ilRmgewkTas89uOJmvDyCBFrPyov99wPJOlAEZUgV9H/cFIyRIjLPzqYim7m9N1FHVyorbfxBlsvoIqQRarcow==", "requires": { - "assert": "1.4.1", - "axios": "0.17.1", - "babel-cli": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-register": "6.26.0", - "bchaddrjs": "0.2.1", - "bigi": "1.4.2", + "assert": "^1.4.1", + "axios": "^0.17.1", + "babel-cli": "^6.26.0", + "babel-preset-env": "^1.6.1", + "babel-preset-es2015": "^6.24.1", + "babel-preset-flow": "^6.23.0", + "babel-preset-react": "^6.24.1", + "babel-register": "^6.26.0", + "bchaddrjs": "^0.2.1", + "bigi": "^1.4.2", "bip21": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "bip38": "2.0.2", - "bip39": "2.5.0", - "bip66": "1.1.5", - "bip68": "1.0.4", + "bip38": "^2.0.2", + "bip39": "^2.5.0", + "bip66": "^1.1.5", + "bip68": "^1.0.4", "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", "bitcoin-txdecoder": "0.0.3", "bitcoincashjs-lib": "github:Bitcoin-com/bitcoincashjs-lib#0a7fc7cf23551503f57689db4c930b8136db954c", - "bitcoinjs-message": "2.0.0", - "bs58": "4.0.1", - "buffer": "5.1.0", - "chalk": "2.4.1", + "bitcoinjs-message": "^2.0.0", + "bs58": "^4.0.1", + "buffer": "^5.1.0", + "chalk": "^2.3.0", "clear": "0.0.1", "coininfo": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", - "commander": "2.16.0", - "corsproxy": "1.5.0", - "cp-file": "5.0.0", - "ecurve": "1.0.6", - "figlet": "1.2.0", - "git-clone": "0.1.0", - "ini": "1.3.5", - "mkdirp": "0.5.1", - "mocha": "5.2.0", - "node-cmd": "3.0.0", - "node-emoji": "1.8.1", - "qrcode": "1.2.0", - "randombytes": "2.0.6", - "repl.history": "0.1.4", - "safe-buffer": "5.1.2", - "satoshi-bitcoin": "1.0.4", - "socket.io": "2.1.1", - "socket.io-client": "2.1.1", - "touch": "3.1.0", - "wif": "2.0.6" + "commander": "^2.13.0", + "corsproxy": "^1.5.0", + "cp-file": "^5.0.0", + "ecurve": "^1.0.6", + "figlet": "^1.2.0", + "git-clone": "^0.1.0", + "ini": "^1.3.5", + "mkdirp": "^0.5.1", + "mocha": "^5.0.1", + "node-cmd": "^3.0.0", + "node-emoji": "^1.8.1", + "qrcode": "^1.2.0", + "randombytes": "^2.0.6", + "repl.history": "^0.1.4", + "safe-buffer": "^5.1.2", + "satoshi-bitcoin": "^1.0.4", + "socket.io": "^2.1.1", + "socket.io-client": "^2.1.1", + "touch": "^3.1.0", + "wif": "^2.0.6" } }, "bitcoin-ops": { - "version": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" + "version": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", + "from": "github:Bitcoin-com/bitcoincash-ops" }, "bitcoin-txdecoder": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/bitcoin-txdecoder/-/bitcoin-txdecoder-0.0.3.tgz", "integrity": "sha512-pH/eF5hQ65y54U23mzuF42wEj9YWj4WKHAIj2il6b1+oRoi/oyM4Ti3e8nMD8ajippICmyquqbyCZKGq3i4W+A==", "requires": { - "bitcoinjs-lib": "3.3.2" + "bitcoinjs-lib": "3.3.*" } }, "bitcoincashjs-lib": { "version": "github:Bitcoin-com/bitcoincashjs-lib#0a7fc7cf23551503f57689db4c930b8136db954c", - "requires": { - "bech32": "1.1.3", - "bigi": "1.4.2", - "bip66": "1.1.5", - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", - "bs58check": "2.1.1", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ecurve": "1.0.6", - "merkle-lib": "2.0.10", - "pushdata-bitcoin": "1.0.1", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "typeforce": "1.12.0", - "varuint-bitcoin": "1.1.0", - "wif": "2.0.6" + "from": "github:Bitcoin-com/bitcoincashjs-lib", + "requires": { + "bech32": "^1.1.2", + "bigi": "^1.4.0", + "bip66": "^1.1.0", + "bitcoin-ops": "^1.3.0", + "bs58check": "^2.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.3", + "ecurve": "^1.0.0", + "merkle-lib": "^2.0.10", + "pushdata-bitcoin": "^1.0.1", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "typeforce": "^1.11.3", + "varuint-bitcoin": "^1.0.4", + "wif": "^2.0.1" } }, "bitcoinjs-lib": { @@ -1176,21 +1180,21 @@ "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-3.3.2.tgz", "integrity": "sha512-l5qqvbaK8wwtANPf6oEffykycg4383XgEYdia1rI7/JpGf1jfRWlOUCvx5TiTZS7kyIvY4j/UhIQ2urLsvGkzw==", "requires": { - "bech32": "1.1.3", - "bigi": "1.4.2", - "bip66": "1.1.5", - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", - "bs58check": "2.1.1", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ecurve": "1.0.6", - "merkle-lib": "2.0.10", - "pushdata-bitcoin": "1.0.1", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "typeforce": "1.12.0", - "varuint-bitcoin": "1.1.0", - "wif": "2.0.6" + "bech32": "^1.1.2", + "bigi": "^1.4.0", + "bip66": "^1.1.0", + "bitcoin-ops": "^1.3.0", + "bs58check": "^2.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.3", + "ecurve": "^1.0.0", + "merkle-lib": "^2.0.10", + "pushdata-bitcoin": "^1.0.1", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "typeforce": "^1.11.3", + "varuint-bitcoin": "^1.0.4", + "wif": "^2.0.1" } }, "bitcoinjs-message": { @@ -1198,11 +1202,11 @@ "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", "requires": { - "bs58check": "2.1.1", - "buffer-equals": "1.0.4", - "create-hash": "1.2.0", - "secp256k1": "3.5.0", - "varuint-bitcoin": "1.1.0" + "bs58check": "^2.0.2", + "buffer-equals": "^1.0.3", + "create-hash": "^1.1.2", + "secp256k1": "^3.0.1", + "varuint-bitcoin": "^1.0.1" } }, "blob": { @@ -1220,7 +1224,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "brace-expansion": { @@ -1228,7 +1232,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -1238,9 +1242,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "optional": 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" } }, "brorand": { @@ -1258,12 +1262,12 @@ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "browserslist": { @@ -1271,8 +1275,8 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "requires": { - "caniuse-lite": "1.0.30000865", - "electron-to-chromium": "1.3.52" + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" } }, "bs58": { @@ -1280,7 +1284,7 @@ "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", "requires": { - "base-x": "3.0.4" + "base-x": "^3.0.2" } }, "bs58check": { @@ -1288,8 +1292,8 @@ "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.1.tgz", "integrity": "sha512-okRQiWc5FJuA2VOwQ1hB7Sf0MyEFg/EwRN12h4b8HrJoGkZ3xq1CGjkaAfYloLcZyqixQnO5mhPpN6IcHSplVg==", "requires": { - "bs58": "4.0.1", - "create-hash": "1.2.0" + "bs58": "^4.0.0", + "create-hash": "^1.1.0" } }, "buffer": { @@ -1297,8 +1301,8 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.1.0.tgz", "integrity": "sha512-YkIRgwsZwJWTnyQrsBTWefizHh+8GYj3kbL1BTiAQ/9pwpino0G7B2gp5tx/FUBqUlvtxV85KNR3mwfAtv15Yw==", "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.12" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" } }, "buffer-equals": { @@ -1326,7 +1330,7 @@ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "requires": { - "callsites": "0.2.0" + "callsites": "^0.2.0" } }, "callsite": { @@ -1349,7 +1353,7 @@ "resolved": "https://registry.npmjs.org/can-promise/-/can-promise-0.0.1.tgz", "integrity": "sha512-gzVrHyyrvgt0YpDm7pn04MQt8gjh0ZAhN4ZDyCRtGl6YnuuK6b4aiUTD7G52r9l4YNmxfTtEscb92vxtAlL6XQ==", "requires": { - "window-or-global": "1.0.1" + "window-or-global": "^1.0.1" } }, "caniuse-lite": { @@ -1362,7 +1366,7 @@ "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.2.8.tgz", "integrity": "sha512-oezXpKZRjavdRB1QjBamfHFDzYescGFn9dWMbijP4fgXrqMdBygOqaPNW4phf7zpRD4+oW7aaFfFklF72/szaA==", "requires": { - "big-integer": "1.6.32" + "big-integer": "^1.6.26" } }, "chai": { @@ -1371,12 +1375,12 @@ "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", "dev": true, "requires": { - "assertion-error": "1.1.0", - "check-error": "1.0.2", - "deep-eql": "3.0.1", - "get-func-name": "2.0.0", - "pathval": "1.1.0", - "type-detect": "4.0.8" + "assertion-error": "^1.0.1", + "check-error": "^1.0.1", + "deep-eql": "^3.0.0", + "get-func-name": "^2.0.0", + "pathval": "^1.0.0", + "type-detect": "^4.0.0" } }, "chalk": { @@ -1384,9 +1388,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "ansi-styles": { @@ -1394,7 +1398,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "color-convert": "1.9.2" + "color-convert": "^1.9.0" } }, "supports-color": { @@ -1402,7 +1406,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -1424,15 +1428,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "optional": true, "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.2.4", - "glob-parent": "2.0.0", - "inherits": "2.0.1", - "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" } }, "cipher-base": { @@ -1440,8 +1444,8 @@ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "circular-json": { @@ -1459,7 +1463,7 @@ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-width": { @@ -1472,9 +1476,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "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" }, "dependencies": { "string-width": { @@ -1482,9 +1486,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" } } } @@ -1501,8 +1505,9 @@ }, "coininfo": { "version": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", + "from": "github:Bitcoin-com/coininfo", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.1" } }, "color-convert": { @@ -1548,10 +1553,10 @@ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "requires": { - "buffer-from": "1.1.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" }, "dependencies": { "inherits": { @@ -1591,15 +1596,15 @@ "resolved": "https://registry.npmjs.org/corsproxy/-/corsproxy-1.5.0.tgz", "integrity": "sha1-KUge0hXuWxvWkkx5Fc+I/LE8EGE=", "requires": { - "ejs": "2.6.1", - "good": "6.6.3", - "good-console": "5.3.2", - "h2o2": "4.0.2", - "hapi": "9.5.1", - "hapi-cors-headers": "1.0.3", - "http-proxy": "1.11.3", - "inert": "3.2.1", - "vision": "3.0.0" + "ejs": "^2.3.3", + "good": "^6.3.0", + "good-console": "^5.0.3", + "h2o2": "^4.0.1", + "hapi": "^9.0.2", + "hapi-cors-headers": "^1.0.0", + "http-proxy": "~1.11", + "inert": "^3.0.1", + "vision": "^3.0.0" } }, "cp-file": { @@ -1607,11 +1612,11 @@ "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-5.0.0.tgz", "integrity": "sha1-vHAP0wyjLSTUbH+wK5kuQ1/FqXg=", "requires": { - "graceful-fs": "4.1.11", - "make-dir": "1.3.0", - "nested-error-stacks": "2.0.1", - "pify": "3.0.0", - "safe-buffer": "5.1.2" + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "nested-error-stacks": "^2.0.0", + "pify": "^3.0.0", + "safe-buffer": "^5.0.1" } }, "create-hash": { @@ -1619,11 +1624,11 @@ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.1", - "md5.js": "1.3.4", - "ripemd160": "2.0.2", - "sha.js": "2.4.11" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, "create-hmac": { @@ -1631,12 +1636,12 @@ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "inherits": "2.0.1", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "cross-spawn": { @@ -1644,9 +1649,9 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" }, "dependencies": { "lru-cache": { @@ -1654,8 +1659,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } } } @@ -1684,7 +1689,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "4.0.8" + "type-detect": "^4.0.0" } }, "deep-equal": { @@ -1702,8 +1707,8 @@ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", "requires": { - "foreach": "2.0.5", - "object-keys": "1.0.12" + "foreach": "^2.0.5", + "object-keys": "^1.0.8" } }, "defined": { @@ -1716,12 +1721,12 @@ "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.1.tgz", "integrity": "sha512-2kjwuGGonL7gWE1XU4Fv79+vVzpoQCl0V+boMwWtOQJV2AGDabCwez++nB1Nli/8BabAfZQ/UuHPlp6AymKdWw==", "requires": { - "find-root": "1.1.0", - "glob": "7.1.2", - "ignore": "3.3.10", - "pkg-config": "1.1.1", - "run-parallel": "1.1.9", - "uniq": "1.0.1" + "find-root": "^1.0.0", + "glob": "^7.0.5", + "ignore": "^3.0.9", + "pkg-config": "^1.1.0", + "run-parallel": "^1.1.2", + "uniq": "^1.0.1" } }, "del": { @@ -1729,13 +1734,13 @@ "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.2" + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" }, "dependencies": { "pify": { @@ -1750,7 +1755,7 @@ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "diff": { @@ -1768,7 +1773,7 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "requires": { - "esutils": "2.0.2" + "esutils": "^2.0.2" } }, "drbg.js": { @@ -1776,9 +1781,9 @@ "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", "requires": { - "browserify-aes": "1.2.0", - "create-hash": "1.2.0", - "create-hmac": "1.1.7" + "browserify-aes": "^1.0.6", + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4" } }, "ecurve": { @@ -1786,8 +1791,8 @@ "resolved": "https://registry.npmjs.org/ecurve/-/ecurve-1.0.6.tgz", "integrity": "sha512-/BzEjNfiSuB7jIWKcS/z8FK9jNjmEWvUV2YZ4RLSmcDtP7Lq0m6FvDuSnJpBlDpGRpfRQeTLGLBI8H+kEv0r+w==", "requires": { - "bigi": "1.4.2", - "safe-buffer": "5.1.2" + "bigi": "^1.1.0", + "safe-buffer": "^5.0.1" } }, "ejs": { @@ -1805,13 +1810,13 @@ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.5", - "hmac-drbg": "1.0.1", - "inherits": "2.0.1", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" } }, "engine.io": { @@ -1819,12 +1824,12 @@ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.0.tgz", "integrity": "sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==", "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.4", "base64id": "1.0.0", "cookie": "0.3.1", - "debug": "3.1.0", - "engine.io-parser": "2.1.2", - "ws": "3.3.3" + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "ws": "~3.3.1" } }, "engine.io-client": { @@ -1834,14 +1839,14 @@ "requires": { "component-emitter": "1.2.1", "component-inherit": "0.0.3", - "debug": "3.1.0", - "engine.io-parser": "2.1.2", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", "has-cors": "1.1.0", "indexof": "0.0.1", "parseqs": "0.0.5", "parseuri": "0.0.5", - "ws": "3.3.3", - "xmlhttprequest-ssl": "1.5.5", + "ws": "~3.3.1", + "xmlhttprequest-ssl": "~1.5.4", "yeast": "0.1.2" } }, @@ -1851,10 +1856,10 @@ "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==", "requires": { "after": "0.8.2", - "arraybuffer.slice": "0.0.7", + "arraybuffer.slice": "~0.0.7", "base64-arraybuffer": "0.1.5", "blob": "0.0.4", - "has-binary2": "1.0.3" + "has-binary2": "~1.0.2" } }, "error-ex": { @@ -1862,7 +1867,7 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "es-abstract": { @@ -1870,11 +1875,11 @@ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", "requires": { - "es-to-primitive": "1.1.1", - "function-bind": "1.1.1", - "has": "1.0.3", - "is-callable": "1.1.4", - "is-regex": "1.0.4" + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" } }, "es-to-primitive": { @@ -1882,9 +1887,9 @@ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", "requires": { - "is-callable": "1.1.4", - "is-date-object": "1.0.1", - "is-symbol": "1.0.1" + "is-callable": "^1.1.1", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.1" } }, "escape-string-regexp": { @@ -1897,43 +1902,43 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", "requires": { - "ajv": "5.5.2", - "babel-code-frame": "6.26.0", - "chalk": "2.4.1", - "concat-stream": "1.6.2", - "cross-spawn": "5.1.0", - "debug": "3.1.0", - "doctrine": "2.1.0", - "eslint-scope": "3.7.3", - "eslint-visitor-keys": "1.0.0", - "espree": "3.5.4", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.2", - "globals": "11.7.0", - "ignore": "3.3.10", - "imurmurhash": "0.1.4", - "inquirer": "3.3.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.12.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.10", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.0", - "require-uncached": "1.0.3", - "semver": "5.5.0", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.2", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", "table": "4.0.2", - "text-table": "0.2.0" + "text-table": "~0.2.0" }, "dependencies": { "ansi-regex": { @@ -1951,7 +1956,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -1971,8 +1976,8 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", "requires": { - "debug": "2.6.9", - "resolve": "1.8.1" + "debug": "^2.6.9", + "resolve": "^1.5.0" }, "dependencies": { "debug": { @@ -1990,8 +1995,8 @@ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", "requires": { - "debug": "2.6.9", - "pkg-dir": "1.0.0" + "debug": "^2.6.8", + "pkg-dir": "^1.0.0" }, "dependencies": { "debug": { @@ -2009,16 +2014,16 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz", "integrity": "sha1-JgAu+/ylmJtyiKwEdQi9JPIXsWk=", "requires": { - "builtin-modules": "1.1.1", - "contains-path": "0.1.0", - "debug": "2.6.9", + "builtin-modules": "^1.1.1", + "contains-path": "^0.1.0", + "debug": "^2.6.8", "doctrine": "1.5.0", - "eslint-import-resolver-node": "0.3.2", - "eslint-module-utils": "2.2.0", - "has": "1.0.3", - "lodash": "4.17.10", - "minimatch": "3.0.4", - "read-pkg-up": "2.0.0" + "eslint-import-resolver-node": "^0.3.1", + "eslint-module-utils": "^2.1.1", + "has": "^1.0.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.3", + "read-pkg-up": "^2.0.0" }, "dependencies": { "debug": { @@ -2034,8 +2039,8 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" + "esutils": "^2.0.2", + "isarray": "^1.0.0" } } } @@ -2045,10 +2050,10 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz", "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", "requires": { - "ignore": "3.3.10", - "minimatch": "3.0.4", - "resolve": "1.8.1", - "semver": "5.5.0" + "ignore": "^3.3.6", + "minimatch": "^3.0.4", + "resolve": "^1.3.3", + "semver": "^5.4.1" } }, "eslint-plugin-promise": { @@ -2061,10 +2066,10 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz", "integrity": "sha512-KC7Snr4YsWZD5flu6A5c0AcIZidzW3Exbqp7OT67OaD2AppJtlBr/GuPrW/vaQM/yfZotEvKAdrxrO+v8vwYJA==", "requires": { - "doctrine": "2.1.0", - "has": "1.0.3", - "jsx-ast-utils": "2.0.1", - "prop-types": "15.6.2" + "doctrine": "^2.0.2", + "has": "^1.0.1", + "jsx-ast-utils": "^2.0.1", + "prop-types": "^15.6.0" } }, "eslint-plugin-standard": { @@ -2077,8 +2082,8 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint-visitor-keys": { @@ -2091,8 +2096,8 @@ "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "requires": { - "acorn": "5.7.1", - "acorn-jsx": "3.0.1" + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" } }, "esprima": { @@ -2105,7 +2110,7 @@ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "esrecurse": { @@ -2113,7 +2118,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.1.0" } }, "estraverse": { @@ -2136,8 +2141,8 @@ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "requires": { - "md5.js": "1.3.4", - "safe-buffer": "5.1.2" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, "execa": { @@ -2145,13 +2150,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "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" } }, "expand-brackets": { @@ -2160,7 +2165,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "optional": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -2169,7 +2174,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "optional": true, "requires": { - "fill-range": "2.2.4" + "fill-range": "^2.1.0" } }, "external-editor": { @@ -2177,9 +2182,9 @@ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.23", - "tmp": "0.0.33" + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" } }, "extglob": { @@ -2188,7 +2193,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "optional": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "fast-deep-equal": { @@ -2216,7 +2221,7 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { @@ -2224,8 +2229,8 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" } }, "filename-regex": { @@ -2240,11 +2245,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "optional": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.0.0", - "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" } }, "find-root": { @@ -2257,7 +2262,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "flat-cache": { @@ -2265,10 +2270,10 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "requires": { - "circular-json": "0.3.3", - "del": "2.2.2", - "graceful-fs": "4.1.11", - "write": "0.2.1" + "circular-json": "^0.3.1", + "del": "^2.0.2", + "graceful-fs": "^4.1.2", + "write": "^0.2.1" } }, "flow-bin": { @@ -2282,7 +2287,7 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.1.tgz", "integrity": "sha512-v9GI1hpaqq1ZZR6pBD1+kI7O24PhDvNGNodjS3MdcEqyrahCp8zbtpv+2B/krUnSmUH80lbAS7MrdeK5IylgKg==", "requires": { - "debug": "3.1.0" + "debug": "^3.1.0" } }, "for-each": { @@ -2290,7 +2295,7 @@ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "requires": { - "is-callable": "1.1.4" + "is-callable": "^1.1.3" } }, "for-in": { @@ -2305,7 +2310,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "optional": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "foreach": { @@ -2329,8 +2334,8 @@ "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", "optional": true, "requires": { - "nan": "2.10.0", - "node-pre-gyp": "0.10.0" + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" }, "dependencies": { "abbrev": { @@ -2352,8 +2357,8 @@ "bundled": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "balanced-match": { @@ -2364,7 +2369,7 @@ "version": "1.1.11", "bundled": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -2418,7 +2423,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "fs.realpath": { @@ -2431,14 +2436,14 @@ "bundled": true, "optional": 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" } }, "glob": { @@ -2446,12 +2451,12 @@ "bundled": true, "optional": 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" } }, "has-unicode": { @@ -2464,7 +2469,7 @@ "bundled": true, "optional": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "^2.1.0" } }, "ignore-walk": { @@ -2472,7 +2477,7 @@ "bundled": true, "optional": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "inflight": { @@ -2480,8 +2485,8 @@ "bundled": true, "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -2497,7 +2502,7 @@ "version": "1.0.0", "bundled": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "isarray": { @@ -2509,7 +2514,7 @@ "version": "3.0.4", "bundled": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -2520,8 +2525,8 @@ "version": "2.2.4", "bundled": true, "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" } }, "minizlib": { @@ -2529,7 +2534,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "mkdirp": { @@ -2549,9 +2554,9 @@ "bundled": true, "optional": true, "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, "node-pre-gyp": { @@ -2559,16 +2564,16 @@ "bundled": true, "optional": true, "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.7", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" + "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": { @@ -2576,8 +2581,8 @@ "bundled": true, "optional": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npm-bundled": { @@ -2590,8 +2595,8 @@ "bundled": true, "optional": true, "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, "npmlog": { @@ -2599,10 +2604,10 @@ "bundled": 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" + "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": { @@ -2618,7 +2623,7 @@ "version": "1.4.0", "bundled": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -2636,8 +2641,8 @@ "bundled": 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": { @@ -2655,10 +2660,10 @@ "bundled": true, "optional": true, "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "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": { @@ -2673,13 +2678,13 @@ "bundled": true, "optional": true, "requires": { - "core-util-is": "1.0.2", - "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.2" + "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": { @@ -2687,7 +2692,7 @@ "bundled": true, "optional": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { @@ -2723,9 +2728,9 @@ "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": { @@ -2733,14 +2738,14 @@ "bundled": true, "optional": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { "version": "3.0.1", "bundled": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -2753,13 +2758,13 @@ "bundled": true, "optional": true, "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "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" } }, "util-deprecate": { @@ -2772,7 +2777,7 @@ "bundled": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { @@ -2826,12 +2831,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.1", - "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": { @@ -2840,8 +2845,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "optional": true, "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -2849,7 +2854,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "globals": { @@ -2862,12 +2867,12 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "pify": { @@ -2882,11 +2887,11 @@ "resolved": "https://registry.npmjs.org/good/-/good-6.6.3.tgz", "integrity": "sha1-B9zIEfwSuDmKnDMezdM37OWogDU=", "requires": { - "hoek": "2.16.3", - "items": "1.1.1", - "joi": "6.10.1", + "hoek": "2.x.x", + "items": "1.x.x", + "joi": "6.x.x", "traverse": "0.6.6", - "wreck": "6.3.0" + "wreck": "6.x.x" } }, "good-console": { @@ -2894,11 +2899,11 @@ "resolved": "https://registry.npmjs.org/good-console/-/good-console-5.3.2.tgz", "integrity": "sha1-f8c9RDfiWsToODJB5GaWy6N0ia0=", "requires": { - "good-squeeze": "2.1.0", - "hoek": "2.16.3", - "json-stringify-safe": "5.0.1", - "moment": "2.11.2", - "through2": "0.6.5" + "good-squeeze": "2.x.x", + "hoek": "2.x.x", + "json-stringify-safe": "5.0.x", + "moment": "2.11.x", + "through2": "0.6.x" }, "dependencies": { "moment": { @@ -2913,8 +2918,8 @@ "resolved": "https://registry.npmjs.org/good-squeeze/-/good-squeeze-2.1.0.tgz", "integrity": "sha1-mc7pHSbVkWmKiZwo6TELzzxq4oo=", "requires": { - "hoek": "2.16.3", - "json-stringify-safe": "5.0.1" + "hoek": "2.x.x", + "json-stringify-safe": "5.0.x" } }, "graceful-fs": { @@ -2932,10 +2937,10 @@ "resolved": "https://registry.npmjs.org/h2o2/-/h2o2-4.0.2.tgz", "integrity": "sha1-h8uWDcD1tJWWT6koJT5s8TuiJIY=", "requires": { - "boom": "2.10.1", - "hoek": "2.16.3", - "joi": "6.10.1", - "wreck": "6.3.0" + "boom": "2.x.x", + "hoek": "2.x.x", + "joi": "6.x.x", + "wreck": "6.x.x" } }, "hapi": { @@ -2943,26 +2948,26 @@ "resolved": "https://registry.npmjs.org/hapi/-/hapi-9.5.1.tgz", "integrity": "sha1-jYyhPnwiCweEZemgp2QPJqWvuFU=", "requires": { - "accept": "1.1.0", - "ammo": "1.0.1", - "boom": "2.9.0", - "call": "2.0.2", - "catbox": "6.0.0", - "catbox-memory": "1.1.2", - "cryptiles": "2.0.5", - "heavy": "3.0.1", - "hoek": "2.16.3", - "iron": "2.1.3", - "items": "1.1.0", - "joi": "6.8.1", - "kilt": "1.1.1", - "mimos": "2.0.2", - "peekaboo": "1.0.0", - "qs": "4.0.0", - "shot": "1.7.0", - "statehood": "2.1.1", - "subtext": "2.0.0", - "topo": "1.1.0" + "accept": "1.x.x", + "ammo": "1.x.x", + "boom": "^2.5.x", + "call": "2.x.x", + "catbox": "6.x.x", + "catbox-memory": "1.x.x", + "cryptiles": "2.x.x", + "heavy": "3.x.x", + "hoek": "^2.14.x", + "iron": "2.x.x", + "items": "1.x.x", + "joi": "^6.8.1", + "kilt": "^1.1.x", + "mimos": "2.x.x", + "peekaboo": "1.x.x", + "qs": "4.x.x", + "shot": "^1.7.x", + "statehood": "2.x.x", + "subtext": "2.x.x", + "topo": "^1.1.x" }, "dependencies": { "accept": { @@ -2970,8 +2975,8 @@ "resolved": "https://registry.npmjs.org/accept/-/accept-1.1.0.tgz", "integrity": "sha1-x7VWfJmt5Kx8k38qm8HFZhYKMLU=", "requires": { - "boom": "2.9.0", - "hoek": "2.16.3" + "boom": "2.x.x", + "hoek": "2.x.x" } }, "ammo": { @@ -2979,8 +2984,8 @@ "resolved": "https://registry.npmjs.org/ammo/-/ammo-1.0.1.tgz", "integrity": "sha1-j4rdFM1Jve3jurOj4OvK8h0D3os=", "requires": { - "boom": "2.9.0", - "hoek": "2.16.3" + "boom": "2.x.x", + "hoek": "2.x.x" } }, "boom": { @@ -2988,7 +2993,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-2.9.0.tgz", "integrity": "sha1-pUt/0v7kd9NRv543FoDL6mfxJxU=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "call": { @@ -2996,8 +3001,8 @@ "resolved": "https://registry.npmjs.org/call/-/call-2.0.2.tgz", "integrity": "sha1-nJgxq9B2lIb97oOkEUm4KbMtBsA=", "requires": { - "boom": "2.9.0", - "hoek": "2.16.3" + "boom": "2.x.x", + "hoek": "2.x.x" } }, "catbox": { @@ -3005,9 +3010,9 @@ "resolved": "https://registry.npmjs.org/catbox/-/catbox-6.0.0.tgz", "integrity": "sha1-6i8pT6Bemvx+IhDTI/XeU6OAQ+c=", "requires": { - "boom": "2.9.0", - "hoek": "2.16.3", - "joi": "6.8.1" + "boom": "2.x.x", + "hoek": "2.x.x", + "joi": "6.x.x" } }, "catbox-memory": { @@ -3015,7 +3020,7 @@ "resolved": "https://registry.npmjs.org/catbox-memory/-/catbox-memory-1.1.2.tgz", "integrity": "sha1-M8kYOjKzGUXuikhNDjw8u4Lq7Bo=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "cryptiles": { @@ -3023,7 +3028,7 @@ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "requires": { - "boom": "2.9.0" + "boom": "2.x.x" } }, "heavy": { @@ -3031,9 +3036,9 @@ "resolved": "https://registry.npmjs.org/heavy/-/heavy-3.0.1.tgz", "integrity": "sha1-8oZ+bjUVv4OrGoux5z5dKOhas80=", "requires": { - "boom": "2.9.0", - "hoek": "2.16.3", - "joi": "6.8.1" + "boom": "2.x.x", + "hoek": "2.x.x", + "joi": "6.x.x" } }, "hoek": { @@ -3046,9 +3051,9 @@ "resolved": "https://registry.npmjs.org/iron/-/iron-2.1.3.tgz", "integrity": "sha1-cbjzV9gGquA6kKdFuaqv/sfi3eQ=", "requires": { - "boom": "2.9.0", - "cryptiles": "2.0.5", - "hoek": "2.16.3" + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x" } }, "items": { @@ -3061,10 +3066,10 @@ "resolved": "https://registry.npmjs.org/joi/-/joi-6.8.1.tgz", "integrity": "sha1-g94tYCj8DNXRYi8/V0fKCCtHjv8=", "requires": { - "hoek": "2.16.3", - "isemail": "1.2.0", - "moment": "2.10.6", - "topo": "1.1.0" + "hoek": "2.x.x", + "isemail": "1.x.x", + "moment": "2.x.x", + "topo": "1.x.x" }, "dependencies": { "isemail": { @@ -3084,7 +3089,7 @@ "resolved": "https://registry.npmjs.org/kilt/-/kilt-1.1.1.tgz", "integrity": "sha1-d7SmFjyn+lshN6iMFzNCFuwj1ds=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "mimos": { @@ -3092,8 +3097,8 @@ "resolved": "https://registry.npmjs.org/mimos/-/mimos-2.0.2.tgz", "integrity": "sha1-wyQXF+dblZkr54esfdbbGptTmx4=", "requires": { - "hoek": "2.16.3", - "mime-db": "1.19.0" + "hoek": "2.x.x", + "mime-db": "1.x.x" }, "dependencies": { "mime-db": { @@ -3118,7 +3123,7 @@ "resolved": "https://registry.npmjs.org/shot/-/shot-1.7.0.tgz", "integrity": "sha1-8jKdfvM6/PA9RM5Bq66BSK4XBTI=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "statehood": { @@ -3126,12 +3131,12 @@ "resolved": "https://registry.npmjs.org/statehood/-/statehood-2.1.1.tgz", "integrity": "sha1-AfFwtmxeklqvZ5qdMiulkYb8AAk=", "requires": { - "boom": "2.9.0", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "iron": "2.1.3", - "items": "1.1.0", - "joi": "6.8.1" + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "iron": "2.x.x", + "items": "1.x.x", + "joi": "6.x.x" } }, "subtext": { @@ -3139,12 +3144,12 @@ "resolved": "https://registry.npmjs.org/subtext/-/subtext-2.0.0.tgz", "integrity": "sha1-I5lQ6SCBQ/FUirJeHJV5vbaNiU4=", "requires": { - "boom": "2.9.0", - "content": "1.0.2", - "hoek": "2.16.3", - "pez": "1.0.0", - "qs": "4.0.0", - "wreck": "6.2.0" + "boom": "2.x.x", + "content": "1.x.x", + "hoek": "2.x.x", + "pez": "1.x.x", + "qs": "4.x.x", + "wreck": "6.x.x" }, "dependencies": { "content": { @@ -3152,8 +3157,8 @@ "resolved": "https://registry.npmjs.org/content/-/content-1.0.2.tgz", "integrity": "sha1-y37fMq/vF8SKz9vSH/mMIzFa6CQ=", "requires": { - "boom": "2.9.0", - "hoek": "2.16.3" + "boom": "2.x.x", + "hoek": "2.x.x" } }, "pez": { @@ -3161,11 +3166,11 @@ "resolved": "https://registry.npmjs.org/pez/-/pez-1.0.0.tgz", "integrity": "sha1-hEMYpc5wku7d/6KV4YB5rHefoBg=", "requires": { - "b64": "2.0.1", - "boom": "2.9.0", - "content": "1.0.2", - "hoek": "2.16.3", - "nigel": "1.0.1" + "b64": "2.x.x", + "boom": "2.x.x", + "content": "1.x.x", + "hoek": "2.x.x", + "nigel": "1.x.x" }, "dependencies": { "b64": { @@ -3173,7 +3178,7 @@ "resolved": "https://registry.npmjs.org/b64/-/b64-2.0.1.tgz", "integrity": "sha1-0IwQcZcZ/x/htTKuSSaUCc4UnOk=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "nigel": { @@ -3181,8 +3186,8 @@ "resolved": "https://registry.npmjs.org/nigel/-/nigel-1.0.1.tgz", "integrity": "sha1-RjmJr4gSePuqHTzJOCPb0XtDYKE=", "requires": { - "hoek": "2.16.3", - "vise": "1.0.0" + "hoek": "2.x.x", + "vise": "1.x.x" }, "dependencies": { "vise": { @@ -3190,7 +3195,7 @@ "resolved": "https://registry.npmjs.org/vise/-/vise-1.0.0.tgz", "integrity": "sha1-KDRb5N5aNB4V/SgW/Z6j5zA+jfM=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } } } @@ -3202,8 +3207,8 @@ "resolved": "https://registry.npmjs.org/wreck/-/wreck-6.2.0.tgz", "integrity": "sha1-8Jkx7UcbZL6Yjj57u4gjTa4i0iI=", "requires": { - "boom": "2.9.0", - "hoek": "2.16.3" + "boom": "2.x.x", + "hoek": "2.x.x" } } } @@ -3213,7 +3218,7 @@ "resolved": "https://registry.npmjs.org/topo/-/topo-1.1.0.tgz", "integrity": "sha1-6ddRYV0buH3IZdsYL6HKCl71NtU=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } } } @@ -3228,7 +3233,7 @@ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.1.1" } }, "has-ansi": { @@ -3236,7 +3241,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-binary2": { @@ -3269,8 +3274,8 @@ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "hash.js": { @@ -3278,8 +3283,8 @@ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" }, "dependencies": { "inherits": { @@ -3299,9 +3304,9 @@ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { - "hash.js": "1.1.5", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, "hoek": { @@ -3314,8 +3319,8 @@ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" } }, "hosted-git-info": { @@ -3328,8 +3333,8 @@ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.11.3.tgz", "integrity": "sha1-GRXciIdR4qa/PCq/yxgI+obHI1M=", "requires": { - "eventemitter3": "1.2.0", - "requires-port": "0.0.1" + "eventemitter3": "1.x.x", + "requires-port": "0.x.x" } }, "iconv-lite": { @@ -3337,7 +3342,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "ieee754": { @@ -3365,12 +3370,12 @@ "resolved": "https://registry.npmjs.org/inert/-/inert-3.2.1.tgz", "integrity": "sha1-xJZcXhh87z2yxChy5S51cAh2Qn0=", "requires": { - "ammo": "1.0.1", - "boom": "2.10.1", - "hoek": "2.16.3", - "items": "1.1.1", - "joi": "6.10.1", - "lru-cache": "2.7.3" + "ammo": "1.x.x", + "boom": "2.x.x", + "hoek": "2.x.x", + "items": "1.x.x", + "joi": "^6.7.x", + "lru-cache": "2.7.x" } }, "inflight": { @@ -3378,8 +3383,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -3397,20 +3402,20 @@ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.10", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" }, "dependencies": { "ansi-regex": { @@ -3423,7 +3428,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -3433,7 +3438,7 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -3452,7 +3457,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "optional": true, "requires": { - "binary-extensions": "1.11.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -3465,7 +3470,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-callable": { @@ -3490,7 +3495,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "optional": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -3509,7 +3514,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-fullwidth-code-point": { @@ -3517,7 +3522,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-glob": { @@ -3525,7 +3530,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-number": { @@ -3534,7 +3539,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-path-cwd": { @@ -3547,7 +3552,7 @@ "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "requires": { - "is-path-inside": "1.0.1" + "is-path-inside": "^1.0.0" } }, "is-path-inside": { @@ -3555,7 +3560,7 @@ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.1" } }, "is-posix-bracket": { @@ -3580,7 +3585,7 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "requires": { - "has": "1.0.3" + "has": "^1.0.1" } }, "is-resolvable": { @@ -3632,10 +3637,10 @@ "resolved": "https://registry.npmjs.org/joi/-/joi-6.10.1.tgz", "integrity": "sha1-TVDDGAeRIgAP5fFq8f+OGRe3fgY=", "requires": { - "hoek": "2.16.3", - "isemail": "1.2.0", - "moment": "2.22.2", - "topo": "1.1.0" + "hoek": "2.x.x", + "isemail": "1.x.x", + "moment": "2.x.x", + "topo": "1.x.x" } }, "js-tokens": { @@ -3648,8 +3653,8 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsesc": { @@ -3687,7 +3692,7 @@ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", "requires": { - "array-includes": "3.0.3" + "array-includes": "^3.0.3" } }, "just-extend": { @@ -3701,10 +3706,10 @@ "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", "requires": { - "bindings": "1.3.0", - "inherits": "2.0.3", - "nan": "2.10.0", - "safe-buffer": "5.1.2" + "bindings": "^1.2.1", + "inherits": "^2.0.3", + "nan": "^2.2.1", + "safe-buffer": "^5.1.0" }, "dependencies": { "inherits": { @@ -3719,7 +3724,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lcid": { @@ -3727,7 +3732,7 @@ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "levn": { @@ -3735,8 +3740,8 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "load-json-file": { @@ -3744,10 +3749,10 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "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" }, "dependencies": { "pify": { @@ -3762,8 +3767,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "lodash": { @@ -3793,7 +3798,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0 || ^4.0.0" } }, "lru-cache": { @@ -3806,7 +3811,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "math-random": { @@ -3820,8 +3825,8 @@ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.1" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, "mem": { @@ -3829,7 +3834,7 @@ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "merkle-lib": { @@ -3843,19 +3848,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "optional": 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" } }, "mime-db": { @@ -3868,7 +3873,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", "requires": { - "mime-db": "1.35.0" + "mime-db": "~1.35.0" } }, "mimic-fn": { @@ -3891,7 +3896,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -3935,7 +3940,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -3981,11 +3986,11 @@ "integrity": "sha512-BxH/DxoQYYdhKgVAfqVy4pzXRZELHOIewzoesxpjYvpU+7YOalQhGNPf7wAx8pLrTNPrHRDlLOkAl8UI0ZpXjw==", "dev": true, "requires": { - "@sinonjs/formatio": "2.0.0", - "just-extend": "1.1.27", - "lolex": "2.7.1", - "path-to-regexp": "1.7.0", - "text-encoding": "0.6.4" + "@sinonjs/formatio": "^2.0.0", + "just-extend": "^1.1.27", + "lolex": "^2.3.2", + "path-to-regexp": "^1.7.0", + "text-encoding": "^0.6.4" } }, "node-cmd": { @@ -3998,7 +4003,7 @@ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", "requires": { - "lodash.toarray": "4.4.0" + "lodash.toarray": "^4.4.0" } }, "nopt": { @@ -4006,7 +4011,7 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } }, "normalize-package-data": { @@ -4014,10 +4019,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.7.1", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "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": { @@ -4025,7 +4030,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "npm-run-path": { @@ -4033,7 +4038,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -4046,42 +4051,42 @@ "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.9.0.tgz", "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", "requires": { - "archy": "1.0.0", - "arrify": "1.0.1", - "caching-transform": "1.0.1", - "convert-source-map": "1.5.1", - "debug-log": "1.0.1", - "default-require-extensions": "1.0.0", - "find-cache-dir": "0.1.1", - "find-up": "2.1.0", - "foreground-child": "1.5.6", - "glob": "7.1.2", - "istanbul-lib-coverage": "1.2.0", - "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "1.10.1", - "istanbul-lib-report": "1.1.3", - "istanbul-lib-source-maps": "1.2.3", - "istanbul-reports": "1.4.0", - "md5-hex": "1.3.0", - "merge-source-map": "1.1.0", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "resolve-from": "2.0.0", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "spawn-wrap": "1.4.2", - "test-exclude": "4.2.1", + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^1.0.0", + "convert-source-map": "^1.5.1", + "debug-log": "^1.0.1", + "default-require-extensions": "^1.0.0", + "find-cache-dir": "^0.1.1", + "find-up": "^2.1.0", + "foreground-child": "^1.5.3", + "glob": "^7.0.6", + "istanbul-lib-coverage": "^1.1.2", + "istanbul-lib-hook": "^1.1.0", + "istanbul-lib-instrument": "^1.10.0", + "istanbul-lib-report": "^1.1.3", + "istanbul-lib-source-maps": "^1.2.3", + "istanbul-reports": "^1.4.0", + "md5-hex": "^1.2.0", + "merge-source-map": "^1.1.0", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.0", + "resolve-from": "^2.0.0", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.1", + "spawn-wrap": "^1.4.2", + "test-exclude": "^4.2.0", "yargs": "11.1.0", - "yargs-parser": "8.1.0" + "yargs-parser": "^8.0.0" }, "dependencies": { "align-text": { "version": "0.1.4", "bundled": 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" } }, "amdefine": { @@ -4100,7 +4105,7 @@ "version": "0.4.0", "bundled": true, "requires": { - "default-require-extensions": "1.0.0" + "default-require-extensions": "^1.0.0" } }, "archy": { @@ -4143,74 +4148,74 @@ "version": "6.26.0", "bundled": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" } }, "babel-generator": { "version": "6.26.1", "bundled": true, "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" } }, "babel-messages": { "version": "6.23.0", "bundled": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-runtime": { "version": "6.26.0", "bundled": true, "requires": { - "core-js": "2.5.6", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { "version": "6.26.0", "bundled": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.10" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { "version": "6.26.0", "bundled": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.10" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" } }, "babel-types": { "version": "6.26.0", "bundled": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -4225,43 +4230,43 @@ "version": "0.11.2", "bundled": true, "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "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" }, "dependencies": { "define-property": { "version": "1.0.0", "bundled": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -4278,7 +4283,7 @@ "version": "1.1.11", "bundled": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -4286,23 +4291,23 @@ "version": "2.3.2", "bundled": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -4315,15 +4320,15 @@ "version": "1.0.1", "bundled": 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" }, "dependencies": { "isobject": { @@ -4336,9 +4341,9 @@ "version": "1.0.1", "bundled": true, "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" } }, "camelcase": { @@ -4351,36 +4356,36 @@ "bundled": true, "optional": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chalk": { "version": "1.1.3", "bundled": 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" } }, "class-utils": { "version": "0.3.6", "bundled": true, "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { "version": "0.2.5", "bundled": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "isobject": { @@ -4394,8 +4399,8 @@ "bundled": true, "optional": 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" }, "dependencies": { @@ -4414,8 +4419,8 @@ "version": "1.0.0", "bundled": true, "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "commondir": { @@ -4446,8 +4451,8 @@ "version": "4.0.2", "bundled": true, "requires": { - "lru-cache": "4.1.3", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } }, "debug": { @@ -4473,38 +4478,38 @@ "version": "1.0.0", "bundled": true, "requires": { - "strip-bom": "2.0.0" + "strip-bom": "^2.0.0" } }, "define-property": { "version": "2.0.2", "bundled": true, "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -4521,14 +4526,14 @@ "version": "4.0.0", "bundled": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "error-ex": { "version": "1.3.1", "bundled": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "escape-string-regexp": { @@ -4543,22 +4548,22 @@ "version": "0.7.0", "bundled": 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" }, "dependencies": { "cross-spawn": { "version": "5.1.0", "bundled": true, "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } } } @@ -4567,27 +4572,27 @@ "version": "2.1.4", "bundled": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { "version": "0.2.5", "bundled": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -4596,15 +4601,15 @@ "version": "3.0.2", "bundled": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { "version": "1.0.1", "bundled": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -4613,51 +4618,51 @@ "version": "2.0.4", "bundled": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { "version": "1.0.0", "bundled": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { @@ -4670,17 +4675,17 @@ "version": "4.0.0", "bundled": 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" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -4689,16 +4694,16 @@ "version": "0.1.1", "bundled": true, "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" } }, "find-up": { "version": "2.1.0", "bundled": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "for-in": { @@ -4709,15 +4714,15 @@ "version": "1.5.6", "bundled": true, "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" + "cross-spawn": "^4", + "signal-exit": "^3.0.0" } }, "fragment-cache": { "version": "0.2.1", "bundled": true, "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fs.realpath": { @@ -4740,12 +4745,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" } }, "globals": { @@ -4760,17 +4765,17 @@ "version": "4.0.11", "bundled": 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": { "source-map": { "version": "0.4.4", "bundled": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -4779,7 +4784,7 @@ "version": "2.0.0", "bundled": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { @@ -4790,9 +4795,9 @@ "version": "1.0.0", "bundled": 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" }, "dependencies": { "isobject": { @@ -4805,22 +4810,22 @@ "version": "1.0.0", "bundled": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { "version": "3.0.0", "bundled": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "bundled": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -4829,7 +4834,7 @@ "version": "4.0.0", "bundled": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -4846,8 +4851,8 @@ "version": "1.0.6", "bundled": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -4858,7 +4863,7 @@ "version": "2.2.4", "bundled": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -4869,7 +4874,7 @@ "version": "0.1.6", "bundled": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-arrayish": { @@ -4884,23 +4889,23 @@ "version": "1.0.0", "bundled": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-data-descriptor": { "version": "0.1.4", "bundled": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-descriptor": { "version": "0.1.6", "bundled": 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": { @@ -4917,7 +4922,7 @@ "version": "1.0.2", "bundled": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -4928,14 +4933,14 @@ "version": "3.0.0", "bundled": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-odd": { "version": "2.0.0", "bundled": true, "requires": { - "is-number": "4.0.0" + "is-number": "^4.0.0" }, "dependencies": { "is-number": { @@ -4948,7 +4953,7 @@ "version": "2.0.4", "bundled": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -4989,37 +4994,37 @@ "version": "1.1.0", "bundled": true, "requires": { - "append-transform": "0.4.0" + "append-transform": "^0.4.0" } }, "istanbul-lib-instrument": { "version": "1.10.1", "bundled": true, "requires": { - "babel-generator": "6.26.1", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.2.0", - "semver": "5.5.0" + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.0", + "semver": "^5.3.0" } }, "istanbul-lib-report": { "version": "1.1.3", "bundled": true, "requires": { - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" }, "dependencies": { "supports-color": { "version": "3.2.3", "bundled": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5028,11 +5033,11 @@ "version": "1.2.3", "bundled": true, "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" }, "dependencies": { "debug": { @@ -5048,7 +5053,7 @@ "version": "1.4.0", "bundled": true, "requires": { - "handlebars": "4.0.11" + "handlebars": "^4.0.3" } }, "js-tokens": { @@ -5063,7 +5068,7 @@ "version": "3.2.2", "bundled": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lazy-cache": { @@ -5075,26 +5080,26 @@ "version": "1.0.0", "bundled": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "load-json-file": { "version": "1.1.0", "bundled": true, "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": { "version": "2.0.0", "bundled": 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": { @@ -5115,15 +5120,15 @@ "version": "1.3.1", "bundled": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "lru-cache": { "version": "4.1.3", "bundled": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "map-cache": { @@ -5134,14 +5139,14 @@ "version": "1.0.0", "bundled": true, "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "md5-hex": { "version": "1.3.0", "bundled": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { @@ -5152,14 +5157,14 @@ "version": "1.1.0", "bundled": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "merge-source-map": { "version": "1.1.0", "bundled": true, "requires": { - "source-map": "0.6.1" + "source-map": "^0.6.1" }, "dependencies": { "source-map": { @@ -5172,19 +5177,19 @@ "version": "3.1.10", "bundled": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "dependencies": { "kind-of": { @@ -5201,7 +5206,7 @@ "version": "3.0.4", "bundled": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -5212,15 +5217,15 @@ "version": "1.3.1", "bundled": 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": { "version": "1.0.1", "bundled": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -5240,18 +5245,18 @@ "version": "1.2.9", "bundled": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-odd": "^2.0.0", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "arr-diff": { @@ -5272,17 +5277,17 @@ "version": "2.4.0", "bundled": true, "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "npm-run-path": { "version": "2.0.2", "bundled": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -5297,16 +5302,16 @@ "version": "0.1.0", "bundled": 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": { "version": "0.2.5", "bundled": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -5315,7 +5320,7 @@ "version": "1.0.1", "bundled": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" }, "dependencies": { "isobject": { @@ -5328,7 +5333,7 @@ "version": "1.3.0", "bundled": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -5341,15 +5346,15 @@ "version": "1.4.0", "bundled": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "optimist": { "version": "0.6.1", "bundled": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "os-homedir": { @@ -5360,9 +5365,9 @@ "version": "2.1.0", "bundled": 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" } }, "p-finally": { @@ -5373,14 +5378,14 @@ "version": "1.2.0", "bundled": true, "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { "version": "2.0.0", "bundled": true, "requires": { - "p-limit": "1.2.0" + "p-limit": "^1.1.0" } }, "p-try": { @@ -5391,7 +5396,7 @@ "version": "2.2.0", "bundled": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "pascalcase": { @@ -5402,7 +5407,7 @@ "version": "2.1.0", "bundled": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { @@ -5421,9 +5426,9 @@ "version": "1.1.0", "bundled": true, "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" } }, "pify": { @@ -5438,22 +5443,22 @@ "version": "2.0.1", "bundled": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { "version": "1.0.0", "bundled": true, "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" }, "dependencies": { "find-up": { "version": "1.1.2", "bundled": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } @@ -5470,25 +5475,25 @@ "version": "1.1.0", "bundled": true, "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": { "version": "1.0.1", "bundled": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" }, "dependencies": { "find-up": { "version": "1.1.2", "bundled": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } @@ -5501,8 +5506,8 @@ "version": "1.0.2", "bundled": true, "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "repeat-element": { @@ -5517,7 +5522,7 @@ "version": "2.0.1", "bundled": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "require-directory": { @@ -5545,21 +5550,21 @@ "bundled": true, "optional": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { "version": "2.6.2", "bundled": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-regex": { "version": "1.1.0", "bundled": true, "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "semver": { @@ -5574,17 +5579,17 @@ "version": "2.0.0", "bundled": 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" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5593,7 +5598,7 @@ "version": "1.2.0", "bundled": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -5612,28 +5617,28 @@ "version": "0.8.2", "bundled": 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": "3.1.0" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "define-property": { "version": "0.2.5", "bundled": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5642,39 +5647,39 @@ "version": "2.1.1", "bundled": 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" }, "dependencies": { "define-property": { "version": "1.0.0", "bundled": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -5691,7 +5696,7 @@ "version": "3.0.1", "bundled": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "source-map": { @@ -5702,11 +5707,11 @@ "version": "0.5.1", "bundled": true, "requires": { - "atob": "2.1.1", - "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": { @@ -5717,20 +5722,20 @@ "version": "1.4.2", "bundled": true, "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.0" + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" } }, "spdx-correct": { "version": "3.0.0", "bundled": true, "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -5741,8 +5746,8 @@ "version": "3.0.0", "bundled": true, "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -5753,22 +5758,22 @@ "version": "3.1.0", "bundled": true, "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "static-extend": { "version": "0.1.2", "bundled": 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": { "version": "0.2.5", "bundled": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -5777,8 +5782,8 @@ "version": "2.1.1", "bundled": 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" }, "dependencies": { "ansi-regex": { @@ -5789,7 +5794,7 @@ "version": "4.0.0", "bundled": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -5798,14 +5803,14 @@ "version": "3.0.1", "bundled": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { "version": "2.0.0", "bundled": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-eof": { @@ -5820,11 +5825,11 @@ "version": "4.2.1", "bundled": true, "requires": { - "arrify": "1.0.1", - "micromatch": "3.1.10", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" + "arrify": "^1.0.1", + "micromatch": "^3.1.8", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" }, "dependencies": { "arr-diff": { @@ -5839,23 +5844,23 @@ "version": "2.3.2", "bundled": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5864,41 +5869,41 @@ "version": "2.1.4", "bundled": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { "version": "0.2.5", "bundled": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { "version": "0.1.6", "bundled": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "bundled": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5907,14 +5912,14 @@ "version": "0.1.4", "bundled": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "bundled": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5923,9 +5928,9 @@ "version": "0.1.6", "bundled": 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": { @@ -5938,28 +5943,28 @@ "version": "2.0.4", "bundled": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { "version": "1.0.0", "bundled": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5968,17 +5973,17 @@ "version": "4.0.0", "bundled": 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" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5987,37 +5992,37 @@ "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-number": { "version": "3.0.0", "bundled": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "bundled": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -6034,19 +6039,19 @@ "version": "3.1.10", "bundled": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } @@ -6059,32 +6064,32 @@ "version": "0.3.0", "bundled": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { "version": "3.0.2", "bundled": true, "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { "version": "2.1.1", "bundled": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "dependencies": { "is-number": { "version": "3.0.0", "bundled": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } } } @@ -6098,9 +6103,9 @@ "bundled": true, "optional": 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" }, "dependencies": { "yargs": { @@ -6108,9 +6113,9 @@ "bundled": true, "optional": 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" } } @@ -6125,27 +6130,27 @@ "version": "1.0.0", "bundled": 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": { "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { "version": "0.4.3", "bundled": 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" } } } @@ -6154,17 +6159,17 @@ "version": "1.0.0", "bundled": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { "version": "0.3.1", "bundled": 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": { @@ -6194,7 +6199,7 @@ "version": "3.1.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.2" }, "dependencies": { "kind-of": { @@ -6207,15 +6212,15 @@ "version": "3.0.3", "bundled": true, "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "which": { "version": "1.3.0", "bundled": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -6235,24 +6240,24 @@ "version": "2.1.0", "bundled": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { "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" } } } @@ -6265,9 +6270,9 @@ "version": "1.3.4", "bundled": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } }, "y18n": { @@ -6282,18 +6287,18 @@ "version": "11.1.0", "bundled": true, "requires": { - "cliui": "4.1.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": "9.0.2" + "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": "^9.0.2" }, "dependencies": { "ansi-regex": { @@ -6308,23 +6313,23 @@ "version": "4.1.0", "bundled": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" } }, "strip-ansi": { "version": "4.0.0", "bundled": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "yargs-parser": { "version": "9.0.2", "bundled": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } @@ -6333,7 +6338,7 @@ "version": "8.1.0", "bundled": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { @@ -6370,8 +6375,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "optional": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "once": { @@ -6379,7 +6384,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -6387,7 +6392,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "optionator": { @@ -6395,12 +6400,12 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" } }, "os-homedir": { @@ -6413,9 +6418,9 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "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" } }, "os-tmpdir": { @@ -6428,9 +6433,9 @@ "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", "requires": { - "graceful-fs": "4.1.11", - "mkdirp": "0.5.1", - "object-assign": "4.1.1" + "graceful-fs": "^4.1.4", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.0" } }, "p-finally": { @@ -6443,7 +6448,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -6451,7 +6456,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { - "p-limit": "1.3.0" + "p-limit": "^1.1.0" } }, "p-try": { @@ -6465,10 +6470,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "optional": 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" } }, "parse-json": { @@ -6476,7 +6481,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "1.3.2" + "error-ex": "^1.2.0" } }, "parseqs": { @@ -6484,7 +6489,7 @@ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseuri": { @@ -6492,7 +6497,7 @@ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "path-exists": { @@ -6542,7 +6547,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { - "pify": "2.3.0" + "pify": "^2.0.0" }, "dependencies": { "pify": { @@ -6563,11 +6568,11 @@ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", "requires": { - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "pify": { @@ -6585,7 +6590,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" } }, "pkg-conf": { @@ -6593,8 +6598,8 @@ "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", "requires": { - "find-up": "2.1.0", - "load-json-file": "4.0.0" + "find-up": "^2.0.0", + "load-json-file": "^4.0.0" }, "dependencies": { "load-json-file": { @@ -6602,10 +6607,10 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "requires": { - "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "parse-json": { @@ -6613,8 +6618,8 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } } } @@ -6624,9 +6629,9 @@ "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=", "requires": { - "debug-log": "1.0.1", - "find-root": "1.1.0", - "xtend": "4.0.1" + "debug-log": "^1.0.0", + "find-root": "^1.0.0", + "xtend": "^4.0.1" } }, "pkg-dir": { @@ -6634,7 +6639,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" }, "dependencies": { "find-up": { @@ -6642,8 +6647,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" } }, "path-exists": { @@ -6651,7 +6656,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" } } } @@ -6697,8 +6702,8 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", "requires": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1" + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" } }, "pseudomap": { @@ -6711,7 +6716,7 @@ "resolved": "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", "integrity": "sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=", "requires": { - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" + "bitcoin-ops": "^1.3.0" } }, "qrcode": { @@ -6719,11 +6724,11 @@ "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.2.0.tgz", "integrity": "sha512-wZK0Z0eYmOUDP2tOGzmLdeBn5Npa+4wms9GdvzH7HrywvGUq/Stz0BKUhW4DfmBf1PSrm9dNfdnVDq683Zxvag==", "requires": { - "can-promise": "0.0.1", - "dijkstrajs": "1.0.1", - "isarray": "2.0.4", - "pngjs": "3.3.3", - "yargs": "8.0.2" + "can-promise": "^0.0.1", + "dijkstrajs": "^1.0.1", + "isarray": "^2.0.1", + "pngjs": "^3.3.0", + "yargs": "^8.0.2" }, "dependencies": { "isarray": { @@ -6744,9 +6749,9 @@ "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", "optional": true, "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.1" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "dependencies": { "is-number": { @@ -6768,7 +6773,7 @@ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.0" } }, "read-pkg": { @@ -6776,9 +6781,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "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": { @@ -6786,8 +6791,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" } }, "readable-stream": { @@ -6795,13 +6800,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "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" }, "dependencies": { "inherits": { @@ -6817,10 +6822,10 @@ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "optional": true, "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.6", - "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" } }, "regenerate": { @@ -6838,9 +6843,9 @@ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.8" + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" } }, "regex-cache": { @@ -6849,7 +6854,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "optional": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "regexpu-core": { @@ -6857,9 +6862,9 @@ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "requires": { - "regenerate": "1.4.0", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "regjsgen": { @@ -6872,7 +6877,7 @@ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { @@ -6903,7 +6908,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" } }, "repl.history": { @@ -6926,8 +6931,8 @@ "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" } }, "requires-port": { @@ -6940,7 +6945,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } }, "resolve-from": { @@ -6953,8 +6958,8 @@ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "resumer": { @@ -6962,7 +6967,7 @@ "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", "requires": { - "through": "2.3.8" + "through": "~2.3.4" } }, "rimraf": { @@ -6970,7 +6975,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "ripemd160": { @@ -6978,8 +6983,8 @@ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.1" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, "run-async": { @@ -6987,7 +6992,7 @@ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, "run-parallel": { @@ -7005,7 +7010,7 @@ "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "requires": { - "rx-lite": "4.0.8" + "rx-lite": "*" } }, "safe-buffer": { @@ -7029,7 +7034,7 @@ "resolved": "https://registry.npmjs.org/satoshi-bitcoin/-/satoshi-bitcoin-1.0.4.tgz", "integrity": "sha1-0AK2dwddXLvywhGo3zJUvN9QseQ=", "requires": { - "big.js": "3.2.0" + "big.js": "^3.1.3" } }, "scryptsy": { @@ -7042,14 +7047,14 @@ "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.5.0.tgz", "integrity": "sha512-e5QIJl8W7Y4tT6LHffVcZAxJjvpgE5Owawv6/XCYPQljE9aP2NFFddQ8OYMKhdLshNu88FfL3qCN3/xYkXGRsA==", "requires": { - "bindings": "1.3.0", - "bip66": "1.1.5", - "bn.js": "4.11.8", - "create-hash": "1.2.0", - "drbg.js": "1.0.1", - "elliptic": "6.4.0", - "nan": "2.10.0", - "safe-buffer": "5.1.2" + "bindings": "^1.2.1", + "bip66": "^1.1.3", + "bn.js": "^4.11.3", + "create-hash": "^1.1.2", + "drbg.js": "^1.0.1", + "elliptic": "^6.2.3", + "nan": "^2.2.1", + "safe-buffer": "^5.1.0" } }, "semver": { @@ -7073,8 +7078,8 @@ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "shebang-command": { @@ -7082,7 +7087,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -7101,13 +7106,13 @@ "integrity": "sha512-trdx+mB0VBBgoYucy6a9L7/jfQOmvGeaKZT4OOJ+lPAtI8623xyGr8wLiE4eojzBS8G9yXbhx42GHUOVLr4X2w==", "dev": true, "requires": { - "@sinonjs/formatio": "2.0.0", - "diff": "3.5.0", - "lodash.get": "4.4.2", - "lolex": "2.7.1", - "nise": "1.4.2", - "supports-color": "5.4.0", - "type-detect": "4.0.8" + "@sinonjs/formatio": "^2.0.0", + "diff": "^3.1.0", + "lodash.get": "^4.4.2", + "lolex": "^2.2.0", + "nise": "^1.2.0", + "supports-color": "^5.1.0", + "type-detect": "^4.0.5" }, "dependencies": { "supports-color": { @@ -7116,7 +7121,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -7131,7 +7136,7 @@ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "requires": { - "is-fullwidth-code-point": "2.0.0" + "is-fullwidth-code-point": "^2.0.0" }, "dependencies": { "is-fullwidth-code-point": { @@ -7146,12 +7151,12 @@ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", "requires": { - "debug": "3.1.0", - "engine.io": "3.2.0", - "has-binary2": "1.0.3", - "socket.io-adapter": "1.1.1", + "debug": "~3.1.0", + "engine.io": "~3.2.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", "socket.io-client": "2.1.1", - "socket.io-parser": "3.2.0" + "socket.io-parser": "~3.2.0" } }, "socket.io-adapter": { @@ -7168,15 +7173,15 @@ "base64-arraybuffer": "0.1.5", "component-bind": "1.0.0", "component-emitter": "1.2.1", - "debug": "3.1.0", - "engine.io-client": "3.2.1", - "has-binary2": "1.0.3", + "debug": "~3.1.0", + "engine.io-client": "~3.2.0", + "has-binary2": "~1.0.2", "has-cors": "1.1.0", "indexof": "0.0.1", "object-component": "0.0.3", "parseqs": "0.0.5", "parseuri": "0.0.5", - "socket.io-parser": "3.2.0", + "socket.io-parser": "~3.2.0", "to-array": "0.1.4" } }, @@ -7186,7 +7191,7 @@ "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", "requires": { "component-emitter": "1.2.1", - "debug": "3.1.0", + "debug": "~3.1.0", "isarray": "2.0.1" }, "dependencies": { @@ -7207,7 +7212,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } }, "spdx-correct": { @@ -7215,8 +7220,8 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -7229,8 +7234,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -7248,15 +7253,15 @@ "resolved": "https://registry.npmjs.org/standard/-/standard-11.0.1.tgz", "integrity": "sha512-nu0jAcHiSc8H+gJCXeiziMVZNDYi8MuqrYJKxTgjP4xKXZMKm311boqQIzDrYI/ktosltxt2CbDjYQs9ANC8IA==", "requires": { - "eslint": "4.18.2", + "eslint": "~4.18.0", "eslint-config-standard": "11.0.0", "eslint-config-standard-jsx": "5.0.0", - "eslint-plugin-import": "2.9.0", - "eslint-plugin-node": "6.0.1", - "eslint-plugin-promise": "3.7.0", - "eslint-plugin-react": "7.7.0", - "eslint-plugin-standard": "3.0.1", - "standard-engine": "8.0.1" + "eslint-plugin-import": "~2.9.0", + "eslint-plugin-node": "~6.0.0", + "eslint-plugin-promise": "~3.7.0", + "eslint-plugin-react": "~7.7.0", + "eslint-plugin-standard": "~3.0.1", + "standard-engine": "~8.0.0" } }, "standard-engine": { @@ -7264,10 +7269,10 @@ "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-8.0.1.tgz", "integrity": "sha512-LA531C3+nljom/XRvdW/hGPXwmilRkaRkENhO3FAGF1Vtq/WtCXzgmnc5S6vUHHsgv534MRy02C1ikMwZXC+tw==", "requires": { - "deglob": "2.1.1", - "get-stdin": "6.0.0", - "minimist": "1.2.0", - "pkg-conf": "2.1.0" + "deglob": "^2.1.0", + "get-stdin": "^6.0.0", + "minimist": "^1.1.0", + "pkg-conf": "^2.0.0" }, "dependencies": { "minimist": { @@ -7282,8 +7287,8 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "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" }, "dependencies": { "ansi-regex": { @@ -7301,7 +7306,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -7311,9 +7316,9 @@ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.12.0", - "function-bind": "1.1.1" + "define-properties": "^1.1.2", + "es-abstract": "^1.5.0", + "function-bind": "^1.0.2" } }, "string_decoder": { @@ -7321,7 +7326,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -7329,7 +7334,7 @@ "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": { @@ -7357,12 +7362,12 @@ "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "chalk": "2.4.1", - "lodash": "4.17.10", + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "string-width": "^2.1.1" } }, "tape": { @@ -7370,19 +7375,19 @@ "resolved": "https://registry.npmjs.org/tape/-/tape-4.9.1.tgz", "integrity": "sha512-6fKIXknLpoe/Jp4rzHKFPpJUHDHDqn8jus99IfPnHIjyz78HYlefTGD3b5EkbQzuLfaEvmfPK3IolLgq2xT3kw==", "requires": { - "deep-equal": "1.0.1", - "defined": "1.0.0", - "for-each": "0.3.3", - "function-bind": "1.1.1", - "glob": "7.1.2", - "has": "1.0.3", - "inherits": "2.0.3", - "minimist": "1.2.0", - "object-inspect": "1.6.0", - "resolve": "1.7.1", - "resumer": "0.0.0", - "string.prototype.trim": "1.1.2", - "through": "2.3.8" + "deep-equal": "~1.0.1", + "defined": "~1.0.0", + "for-each": "~0.3.3", + "function-bind": "~1.1.1", + "glob": "~7.1.2", + "has": "~1.0.3", + "inherits": "~2.0.3", + "minimist": "~1.2.0", + "object-inspect": "~1.6.0", + "resolve": "~1.7.1", + "resumer": "~0.0.0", + "string.prototype.trim": "~1.1.2", + "through": "~2.3.8" }, "dependencies": { "inherits": { @@ -7400,7 +7405,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } } } @@ -7426,8 +7431,8 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", "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" }, "dependencies": { "isarray": { @@ -7440,10 +7445,10 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.1", + "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": { @@ -7458,7 +7463,7 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "to-array": { @@ -7476,7 +7481,7 @@ "resolved": "https://registry.npmjs.org/topo/-/topo-1.1.0.tgz", "integrity": "sha1-6ddRYV0buH3IZdsYL6HKCl71NtU=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "touch": { @@ -7484,7 +7489,7 @@ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", "requires": { - "nopt": "1.0.10" + "nopt": "~1.0.10" } }, "traverse": { @@ -7502,7 +7507,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-detect": { @@ -7559,7 +7564,7 @@ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "requires": { - "user-home": "1.1.1" + "user-home": "^1.1.1" } }, "validate-npm-package-license": { @@ -7567,8 +7572,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "varuint-bitcoin": { @@ -7576,7 +7581,7 @@ "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz", "integrity": "sha512-jCEPG+COU/1Rp84neKTyDJQr478/hAfVp5xxYn09QEH0yBjbmPeMfuuQIrp+BUD83hybtYZKhr5elV3bvdV1bA==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.1" } }, "vision": { @@ -7584,10 +7589,10 @@ "resolved": "https://registry.npmjs.org/vision/-/vision-3.0.0.tgz", "integrity": "sha1-GEWEb2wjpvJTXa8woeHnHQukjGI=", "requires": { - "boom": "2.10.1", - "hoek": "2.16.3", - "items": "1.1.1", - "joi": "6.10.1" + "boom": "2.x.x", + "hoek": "^2.9.x", + "items": "^1.1.x", + "joi": "6.x.x" } }, "which": { @@ -7595,7 +7600,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -7608,7 +7613,7 @@ "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", "requires": { - "bs58check": "2.1.1" + "bs58check": "<3.0.0" } }, "window-or-global": { @@ -7626,8 +7631,8 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "string-width": { @@ -7635,9 +7640,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" } } } @@ -7652,8 +7657,8 @@ "resolved": "https://registry.npmjs.org/wreck/-/wreck-6.3.0.tgz", "integrity": "sha1-oTaXafB7u2LWo3gzanhx/Hc8dAs=", "requires": { - "boom": "2.10.1", - "hoek": "2.16.3" + "boom": "2.x.x", + "hoek": "2.x.x" } }, "write": { @@ -7661,7 +7666,7 @@ "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "ws": { @@ -7669,9 +7674,9 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.2", - "ultron": "1.1.1" + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" } }, "xmlhttprequest-ssl": { @@ -7699,19 +7704,19 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.3", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.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": "7.0.0" + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^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": "^7.0.0" } }, "yargs-parser": { @@ -7719,7 +7724,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } }, "yeast": { diff --git a/package.json b/package.json index aba4f4dc..7a4706ec 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.4.5", + "version": "1.4.6", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", diff --git a/src/Socket.js b/src/Socket.js index 9358ce88..34e2384e 100644 --- a/src/Socket.js +++ b/src/Socket.js @@ -22,13 +22,15 @@ class Socket { listen(endpoint, cb) { this.socket.emit(endpoint); - this.socket.on('blocks', (msg) => { - return cb(msg); - }); - - this.socket.on('transactions', (msg) => { - return cb(msg); - }); + if(endpoint === 'blocks') { + this.socket.on('blocks', (msg) => { + return cb(msg); + }); + } else if(endpoint === 'transactions') { + this.socket.on('transactions', (msg) => { + return cb(msg); + }); + } } } From d69725b0e6aad7da537f277d0f073ddd18f473a6 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Mon, 30 Jul 2018 16:22:07 +0900 Subject: [PATCH 049/480] Integrate bitbox-cli w/ rest.bitcoin.com. --- index.js | 6 +++--- lib/Socket.js | 2 +- lib/bitbox-cli.js | 2 +- package-lock.json | 2 +- package.json | 2 +- src/Socket.js | 2 +- src/bitbox-cli.js | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/index.js b/index.js index bab48b06..2ca1b4aa 100755 --- a/index.js +++ b/index.js @@ -19,12 +19,12 @@ let corsproxy = require('corsproxy'); let cmd = require('node-cmd'); program - .version('1.4.5'); + .version('1.4.7'); program .command('new ') .option('-s, --scaffold ', 'The framework to use. Options include react, angular, vuejs, nextjs and node.') - .option('-r, --restURL ', 'The rest URL to use. default: https://rest.bitbox.earth/v1/') + .option('-r, --restURL ', 'The rest URL to use. default: https://rest.bitcoin.com/v1/') .option('-e, --environment ', 'environment of running BITBOX instance. Ex: production, staging. (Default: development)') .description(`create a new BITBOX application`) .action((name, options) => { @@ -35,7 +35,7 @@ program let config; let environment = fetchOption('environment=development', config, options); - let restURL = fetchOption('restURL=https://rest.bitbox.earth/v1/', config, options); + let restURL = fetchOption('restURL=https://rest.bitcoin.com/v1/', config, options); if(options && options.scaffold) { let scaffold = options.scaffold.toLowerCase(); diff --git a/lib/Socket.js b/lib/Socket.js index f9d01187..813cd676 100644 --- a/lib/Socket.js +++ b/lib/Socket.js @@ -27,7 +27,7 @@ var Socket = function () { if (config.restURL) { this.socket = (0, _socket2.default)('' + config.restURL); } else { - var restURL = 'https://rest.bitbox.earth'; + var restURL = 'https://rest.bitcoin.com'; this.socket = (0, _socket2.default)('' + restURL); } diff --git a/lib/bitbox-cli.js b/lib/bitbox-cli.js index 79133f45..0423ee8a 100644 --- a/lib/bitbox-cli.js +++ b/lib/bitbox-cli.js @@ -102,7 +102,7 @@ var BITBOXCli = function BITBOXCli(config) { if (config && config.restURL && config.restURL !== '') { this.restURL = config.restURL; } else { - this.restURL = 'https://rest.bitbox.earth/v1/'; + this.restURL = 'https://rest.bitcoin.com/v1/'; } this.Address = new _Address2.default(this.restURL); diff --git a/package-lock.json b/package-lock.json index 6bf83e13..8a271e3e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.4.5", + "version": "1.4.7", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 7a4706ec..187bd225 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.4.6", + "version": "1.4.7", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", diff --git a/src/Socket.js b/src/Socket.js index 34e2384e..ce4c75fd 100644 --- a/src/Socket.js +++ b/src/Socket.js @@ -9,7 +9,7 @@ class Socket { if(config.restURL) { this.socket = io(`${config.restURL}`); } else { - let restURL = 'https://rest.bitbox.earth'; + let restURL = 'https://rest.bitcoin.com'; this.socket = io(`${restURL}`); } diff --git a/src/bitbox-cli.js b/src/bitbox-cli.js index 5b63440e..a858e491 100644 --- a/src/bitbox-cli.js +++ b/src/bitbox-cli.js @@ -28,7 +28,7 @@ class BITBOXCli { if(config && config.restURL && config.restURL !== '') { this.restURL = config.restURL; } else { - this.restURL = 'https://rest.bitbox.earth/v1/'; + this.restURL = 'https://rest.bitcoin.com/v1/'; } this.Address = new Address(this.restURL); From 337266f75e36c7cbe52c17812df6f779dac10e78 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Mon, 30 Jul 2018 17:09:03 +0900 Subject: [PATCH 050/480] Version and deps. --- package-lock.json | 6152 +++++++++++++++++++++++++++++++-------------- package.json | 4 +- 2 files changed, 4208 insertions(+), 1948 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8a271e3e..4d865fd3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,6 +4,126 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@babel/code-frame": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz", + "integrity": "sha1-vXHZsZKvl435FYKdOdQJRFZDmgw=", + "requires": { + "@babel/highlight": "7.0.0-beta.51" + } + }, + "@babel/generator": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.51.tgz", + "integrity": "sha1-bHV1/952HQdIXgS67cA5LG2eMPY=", + "requires": { + "@babel/types": "7.0.0-beta.51", + "jsesc": "2.5.1", + "lodash": "4.17.10", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "jsesc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", + "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=" + } + } + }, + "@babel/helper-function-name": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.51.tgz", + "integrity": "sha1-IbSHSiJ8+Z7K/MMKkDAtpaJkBWE=", + "requires": { + "@babel/helper-get-function-arity": "7.0.0-beta.51", + "@babel/template": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.51.tgz", + "integrity": "sha1-MoGy0EWvlcFyzpGyCCXYXqRnZBE=", + "requires": { + "@babel/types": "7.0.0-beta.51" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.51.tgz", + "integrity": "sha1-imw/ZsTSZTUvwHdIT59ugKUauXg=", + "requires": { + "@babel/types": "7.0.0-beta.51" + } + }, + "@babel/highlight": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.51.tgz", + "integrity": "sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0=", + "requires": { + "chalk": "2.4.1", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "@babel/parser": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.0.0-beta.51.tgz", + "integrity": "sha1-J87C30Cd9gr1gnDtj2qlVAnqhvY=" + }, + "@babel/template": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.51.tgz", + "integrity": "sha1-lgKkCuvPNXrpZ34lMu9fyBD1+/8=", + "requires": { + "@babel/code-frame": "7.0.0-beta.51", + "@babel/parser": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51", + "lodash": "4.17.10" + } + }, + "@babel/traverse": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.51.tgz", + "integrity": "sha1-mB2vLOw0emIx06odnhgDsDqqpKg=", + "requires": { + "@babel/code-frame": "7.0.0-beta.51", + "@babel/generator": "7.0.0-beta.51", + "@babel/helper-function-name": "7.0.0-beta.51", + "@babel/helper-split-export-declaration": "7.0.0-beta.51", + "@babel/parser": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51", + "debug": "3.1.0", + "globals": "11.7.0", + "invariant": "2.2.4", + "lodash": "4.17.10" + }, + "dependencies": { + "globals": { + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", + "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==" + } + } + }, + "@babel/types": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.51.tgz", + "integrity": "sha1-2AK3tUO1g2x3iqaReXq/APPZfqk=", + "requires": { + "esutils": "2.0.2", + "lodash": "4.17.10", + "to-fast-properties": "2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } + } + }, "@sinonjs/formatio": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", @@ -14,9 +134,9 @@ } }, "@types/node": { - "version": "10.5.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.2.tgz", - "integrity": "sha512-m9zXmifkZsMHZBOyxZWilMwmTlpC8x5Ty360JKTiXvlXZfBWYpsg9ZZvP/Ye+iZUh+Q+MxDLjItVTWIsfwz+8Q==", + "version": "10.5.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.4.tgz", + "integrity": "sha512-8TqvB0ReZWwtcd3LXq3YSrBoLyXFgBX/sBZfGye9+YS8zH7/g+i6QRIuiDmwBoTzcQ/pk89nZYTYU4c5akKkzw==", "dev": true }, "abbrev": { @@ -29,7 +149,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "requires": { - "mime-types": "~2.1.18", + "mime-types": "2.1.19", "negotiator": "0.6.1" } }, @@ -43,7 +163,7 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "requires": { - "acorn": "^3.0.4" + "acorn": "3.3.0" }, "dependencies": { "acorn": { @@ -63,10 +183,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" } }, "ajv-keywords": { @@ -79,8 +199,8 @@ "resolved": "https://registry.npmjs.org/ammo/-/ammo-1.0.1.tgz", "integrity": "sha1-j4rdFM1Jve3jurOj4OvK8h0D3os=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x" + "boom": "2.10.1", + "hoek": "2.16.3" } }, "ansi-escapes": { @@ -104,8 +224,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "optional": true, "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" + "micromatch": "2.3.11", + "normalize-path": "2.1.1" } }, "argparse": { @@ -113,7 +233,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "~1.0.2" + "sprintf-js": "1.0.3" } }, "arr-diff": { @@ -122,7 +242,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "optional": true, "requires": { - "arr-flatten": "^1.0.1" + "arr-flatten": "1.1.0" } }, "arr-flatten": { @@ -136,8 +256,8 @@ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.7.0" + "define-properties": "1.1.2", + "es-abstract": "1.12.0" } }, "array-union": { @@ -145,7 +265,7 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "requires": { - "array-uniq": "^1.0.1" + "array-uniq": "1.0.3" } }, "array-uniq": { @@ -199,8 +319,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=", "requires": { - "follow-redirects": "^1.2.5", - "is-buffer": "^1.1.5" + "follow-redirects": "1.5.1", + "is-buffer": "1.1.6" } }, "babel-cli": { @@ -208,21 +328,21 @@ "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", "requires": { - "babel-core": "^6.26.0", - "babel-polyfill": "^6.26.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "chokidar": "^1.6.1", - "commander": "^2.11.0", - "convert-source-map": "^1.5.0", - "fs-readdir-recursive": "^1.0.0", - "glob": "^7.1.2", - "lodash": "^4.17.4", - "output-file-sync": "^1.1.2", - "path-is-absolute": "^1.0.1", - "slash": "^1.0.0", - "source-map": "^0.5.6", - "v8flags": "^2.1.1" + "babel-core": "6.26.3", + "babel-polyfill": "6.26.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "chokidar": "1.7.0", + "commander": "2.16.0", + "convert-source-map": "1.5.1", + "fs-readdir-recursive": "1.1.0", + "glob": "7.1.2", + "lodash": "4.17.10", + "output-file-sync": "1.1.2", + "path-is-absolute": "1.0.1", + "slash": "1.0.0", + "source-map": "0.5.7", + "v8flags": "2.1.1" } }, "babel-code-frame": { @@ -230,9 +350,9 @@ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" }, "dependencies": { "chalk": { @@ -240,11 +360,11 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { - "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" + "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" } } } @@ -254,25 +374,25 @@ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.1", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.5.1", + "debug": "2.6.9", + "json5": "0.5.1", + "lodash": "4.17.10", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "slash": "1.0.0", + "source-map": "0.5.7" }, "dependencies": { "debug": { @@ -290,14 +410,14 @@ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.10", + "source-map": "0.5.7", + "trim-right": "1.0.1" } }, "babel-helper-builder-binary-assignment-operator-visitor": { @@ -305,9 +425,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "requires": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-explode-assignable-expression": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-builder-react-jsx": { @@ -315,9 +435,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "esutils": "^2.0.2" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "esutils": "2.0.2" } }, "babel-helper-call-delegate": { @@ -325,10 +445,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-define-map": { @@ -336,10 +456,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.10" } }, "babel-helper-explode-assignable-expression": { @@ -347,9 +467,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-function-name": { @@ -357,11 +477,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "requires": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-get-function-arity": { @@ -369,8 +489,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-hoist-variables": { @@ -378,8 +498,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-optimise-call-expression": { @@ -387,8 +507,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-regex": { @@ -396,9 +516,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.10" } }, "babel-helper-remap-async-to-generator": { @@ -406,11 +526,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-replace-supers": { @@ -418,12 +538,12 @@ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "requires": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-optimise-call-expression": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helpers": { @@ -431,8 +551,8 @@ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-messages": { @@ -440,7 +560,7 @@ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-check-es2015-constants": { @@ -448,7 +568,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-syntax-async-functions": { @@ -481,9 +601,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-functions": "6.13.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-arrow-functions": { @@ -491,7 +611,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -499,7 +619,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -507,11 +627,11 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "requires": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.10" } }, "babel-plugin-transform-es2015-classes": { @@ -519,15 +639,15 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "requires": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-define-map": "6.26.0", + "babel-helper-function-name": "6.24.1", + "babel-helper-optimise-call-expression": "6.24.1", + "babel-helper-replace-supers": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-computed-properties": { @@ -535,8 +655,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-destructuring": { @@ -544,7 +664,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -552,8 +672,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-for-of": { @@ -561,7 +681,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -569,9 +689,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-literals": { @@ -579,7 +699,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -587,9 +707,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -597,10 +717,10 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-modules-systemjs": { @@ -608,9 +728,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-modules-umd": { @@ -618,9 +738,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "requires": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-object-super": { @@ -628,8 +748,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "requires": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" + "babel-helper-replace-supers": "6.24.1", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -637,12 +757,12 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "requires": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-call-delegate": "6.24.1", + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-shorthand-properties": { @@ -650,8 +770,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-spread": { @@ -659,7 +779,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -667,9 +787,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-template-literals": { @@ -677,7 +797,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -685,7 +805,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -693,9 +813,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "regexpu-core": "2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -703,9 +823,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", + "babel-plugin-syntax-exponentiation-operator": "6.13.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-flow-strip-types": { @@ -713,8 +833,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", "requires": { - "babel-plugin-syntax-flow": "^6.18.0", - "babel-runtime": "^6.22.0" + "babel-plugin-syntax-flow": "6.18.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-react-display-name": { @@ -722,7 +842,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-react-jsx": { @@ -730,9 +850,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", "requires": { - "babel-helper-builder-react-jsx": "^6.24.1", - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-builder-react-jsx": "6.26.0", + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-react-jsx-self": { @@ -740,8 +860,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", "requires": { - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-react-jsx-source": { @@ -749,8 +869,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", "requires": { - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-regenerator": { @@ -758,7 +878,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "requires": { - "regenerator-transform": "^0.10.0" + "regenerator-transform": "0.10.1" } }, "babel-plugin-transform-strict-mode": { @@ -766,8 +886,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-polyfill": { @@ -775,9 +895,9 @@ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "requires": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" + "babel-runtime": "6.26.0", + "core-js": "2.5.7", + "regenerator-runtime": "0.10.5" }, "dependencies": { "regenerator-runtime": { @@ -792,36 +912,36 @@ "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-to-generator": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.23.0", - "babel-plugin-transform-es2015-classes": "^6.23.0", - "babel-plugin-transform-es2015-computed-properties": "^6.22.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", - "babel-plugin-transform-es2015-for-of": "^6.23.0", - "babel-plugin-transform-es2015-function-name": "^6.22.0", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.22.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-umd": "^6.23.0", - "babel-plugin-transform-es2015-object-super": "^6.22.0", - "babel-plugin-transform-es2015-parameters": "^6.23.0", - "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", - "babel-plugin-transform-exponentiation-operator": "^6.22.0", - "babel-plugin-transform-regenerator": "^6.22.0", - "browserslist": "^3.2.6", - "invariant": "^2.2.2", - "semver": "^5.3.0" + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-async-to-generator": "6.24.1", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-exponentiation-operator": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0", + "browserslist": "3.2.8", + "invariant": "2.2.4", + "semver": "5.5.0" } }, "babel-preset-es2015": { @@ -829,30 +949,30 @@ "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.24.1", - "babel-plugin-transform-es2015-classes": "^6.24.1", - "babel-plugin-transform-es2015-computed-properties": "^6.24.1", - "babel-plugin-transform-es2015-destructuring": "^6.22.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", - "babel-plugin-transform-es2015-for-of": "^6.22.0", - "babel-plugin-transform-es2015-function-name": "^6.24.1", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-umd": "^6.24.1", - "babel-plugin-transform-es2015-object-super": "^6.24.1", - "babel-plugin-transform-es2015-parameters": "^6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", - "babel-plugin-transform-regenerator": "^6.24.1" + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0" } }, "babel-preset-flow": { @@ -860,7 +980,7 @@ "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", "requires": { - "babel-plugin-transform-flow-strip-types": "^6.22.0" + "babel-plugin-transform-flow-strip-types": "6.22.0" } }, "babel-preset-react": { @@ -868,12 +988,12 @@ "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", "requires": { - "babel-plugin-syntax-jsx": "^6.3.13", - "babel-plugin-transform-react-display-name": "^6.23.0", - "babel-plugin-transform-react-jsx": "^6.24.1", - "babel-plugin-transform-react-jsx-self": "^6.22.0", - "babel-plugin-transform-react-jsx-source": "^6.22.0", - "babel-preset-flow": "^6.23.0" + "babel-plugin-syntax-jsx": "6.18.0", + "babel-plugin-transform-react-display-name": "6.25.0", + "babel-plugin-transform-react-jsx": "6.24.1", + "babel-plugin-transform-react-jsx-self": "6.22.0", + "babel-plugin-transform-react-jsx-source": "6.22.0", + "babel-preset-flow": "6.23.0" } }, "babel-register": { @@ -881,13 +1001,13 @@ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" + "babel-core": "6.26.3", + "babel-runtime": "6.26.0", + "core-js": "2.5.7", + "home-or-tmp": "2.0.0", + "lodash": "4.17.10", + "mkdirp": "0.5.1", + "source-map-support": "0.4.18" } }, "babel-runtime": { @@ -895,8 +1015,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "babel-template": { @@ -904,11 +1024,11 @@ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.10" } }, "babel-traverse": { @@ -916,15 +1036,15 @@ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.4", + "lodash": "4.17.10" }, "dependencies": { "debug": { @@ -942,10 +1062,10 @@ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.10", + "to-fast-properties": "1.0.3" } }, "babylon": { @@ -968,7 +1088,7 @@ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.4.tgz", "integrity": "sha512-UYOadoSIkEI/VrRGSG6qp93rp2WdokiAiNYDfGW5qURAY8GiAQkvMbwNNSDYiVJopqv4gCna7xqf4rrNGp+5AA==", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "base64-arraybuffer": { @@ -991,8 +1111,8 @@ "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.1.tgz", "integrity": "sha512-esOfL+EnG+qPgqAPl4NxWngDIJIEs35dcV6wU0NP6bxBtc363fYm7xhNtC1BRVagDLSbMNwyI27rkWXwN5i6yg==", "requires": { - "bs58check": "^2.1.1", - "cashaddrjs": "^0.2.7" + "bs58check": "2.1.2", + "cashaddrjs": "0.2.8" } }, "bech32": { @@ -1036,351 +1156,2146 @@ }, "bip21": { "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "from": "github:Bitcoin-com/bip21", "requires": { - "qs": "^6.3.0" + "qs": "6.5.2" } }, "bip32-utils": { "version": "github:Bitcoin-com/bip32-utils#6d27e98d15ceb7543f904d7f770d1e39a806e6e8", - "from": "github:Bitcoin-com/bip32-utils#6d27e98d15ceb7543f904d7f770d1e39a806e6e8", "requires": { "bitbox-cli": "1.4.2", - "keccak": "^1.3.0", - "nyc": "*", - "standard": "^11.0.1", - "tape": "*" - } - }, - "bip38": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", - "integrity": "sha512-22KDak0RDyghFbR0Si7wyq9IgY423YzGYzWLpGeofH3DaolOQqjD3mNN08eFoubKlbyclOQKFwtONMv2SD9V3A==", - "requires": { - "bigi": "^1.2.0", - "browserify-aes": "^1.0.1", - "bs58check": "<3.0.0", - "buffer-xor": "^1.0.2", - "create-hash": "^1.1.1", - "ecurve": "^1.0.0", - "scryptsy": "^2.0.0" - } - }, - "bip39": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", - "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", - "requires": { - "create-hash": "^1.1.0", - "pbkdf2": "^3.0.9", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "unorm": "^1.3.3" - } - }, - "bip66": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", - "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "bip68": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/bip68/-/bip68-1.0.4.tgz", - "integrity": "sha512-O1htyufFTYy3EO0JkHg2CLykdXEtV2ssqw47Gq9A0WByp662xpJnMEB9m43LZjsSDjIAOozWRExlFQk2hlV1XQ==" - }, - "bitbox-cli": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/bitbox-cli/-/bitbox-cli-1.4.2.tgz", - "integrity": "sha512-ilRmgewkTas89uOJmvDyCBFrPyov99wPJOlAEZUgV9H/cFIyRIjLPzqYim7m9N1FHVyorbfxBlsvoIqQRarcow==", - "requires": { - "assert": "^1.4.1", - "axios": "^0.17.1", - "babel-cli": "^6.26.0", - "babel-preset-env": "^1.6.1", - "babel-preset-es2015": "^6.24.1", - "babel-preset-flow": "^6.23.0", - "babel-preset-react": "^6.24.1", - "babel-register": "^6.26.0", - "bchaddrjs": "^0.2.1", - "bigi": "^1.4.2", - "bip21": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "bip38": "^2.0.2", - "bip39": "^2.5.0", - "bip66": "^1.1.5", - "bip68": "^1.0.4", - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", - "bitcoin-txdecoder": "0.0.3", - "bitcoincashjs-lib": "github:Bitcoin-com/bitcoincashjs-lib#0a7fc7cf23551503f57689db4c930b8136db954c", - "bitcoinjs-message": "^2.0.0", - "bs58": "^4.0.1", - "buffer": "^5.1.0", - "chalk": "^2.3.0", - "clear": "0.0.1", - "coininfo": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", - "commander": "^2.13.0", - "corsproxy": "^1.5.0", - "cp-file": "^5.0.0", - "ecurve": "^1.0.6", - "figlet": "^1.2.0", - "git-clone": "^0.1.0", - "ini": "^1.3.5", - "mkdirp": "^0.5.1", - "mocha": "^5.0.1", - "node-cmd": "^3.0.0", - "node-emoji": "^1.8.1", - "qrcode": "^1.2.0", - "randombytes": "^2.0.6", - "repl.history": "^0.1.4", - "safe-buffer": "^5.1.2", - "satoshi-bitcoin": "^1.0.4", - "socket.io": "^2.1.1", - "socket.io-client": "^2.1.1", - "touch": "^3.1.0", - "wif": "^2.0.6" - } - }, - "bitcoin-ops": { - "version": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", - "from": "github:Bitcoin-com/bitcoincash-ops" - }, - "bitcoin-txdecoder": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/bitcoin-txdecoder/-/bitcoin-txdecoder-0.0.3.tgz", - "integrity": "sha512-pH/eF5hQ65y54U23mzuF42wEj9YWj4WKHAIj2il6b1+oRoi/oyM4Ti3e8nMD8ajippICmyquqbyCZKGq3i4W+A==", - "requires": { - "bitcoinjs-lib": "3.3.*" - } - }, - "bitcoincashjs-lib": { - "version": "github:Bitcoin-com/bitcoincashjs-lib#0a7fc7cf23551503f57689db4c930b8136db954c", - "from": "github:Bitcoin-com/bitcoincashjs-lib", - "requires": { - "bech32": "^1.1.2", - "bigi": "^1.4.0", - "bip66": "^1.1.0", - "bitcoin-ops": "^1.3.0", - "bs58check": "^2.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.3", - "ecurve": "^1.0.0", - "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "^1.0.1", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "typeforce": "^1.11.3", - "varuint-bitcoin": "^1.0.4", - "wif": "^2.0.1" - } - }, - "bitcoinjs-lib": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-3.3.2.tgz", - "integrity": "sha512-l5qqvbaK8wwtANPf6oEffykycg4383XgEYdia1rI7/JpGf1jfRWlOUCvx5TiTZS7kyIvY4j/UhIQ2urLsvGkzw==", - "requires": { - "bech32": "^1.1.2", - "bigi": "^1.4.0", - "bip66": "^1.1.0", - "bitcoin-ops": "^1.3.0", - "bs58check": "^2.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.3", - "ecurve": "^1.0.0", - "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "^1.0.1", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "typeforce": "^1.11.3", - "varuint-bitcoin": "^1.0.4", - "wif": "^2.0.1" - } - }, - "bitcoinjs-message": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", - "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", - "requires": { - "bs58check": "^2.0.2", - "buffer-equals": "^1.0.3", - "create-hash": "^1.1.2", - "secp256k1": "^3.0.1", - "varuint-bitcoin": "^1.0.1" - } - }, - "blob": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", - "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=" - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" - }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "requires": { - "hoek": "2.x.x" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "optional": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", - "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", - "requires": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" - } - }, - "bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "requires": { - "base-x": "^3.0.2" - } - }, - "bs58check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.1.tgz", - "integrity": "sha512-okRQiWc5FJuA2VOwQ1hB7Sf0MyEFg/EwRN12h4b8HrJoGkZ3xq1CGjkaAfYloLcZyqixQnO5mhPpN6IcHSplVg==", - "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0" - } - }, - "buffer": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.1.0.tgz", - "integrity": "sha512-YkIRgwsZwJWTnyQrsBTWefizHh+8GYj3kbL1BTiAQ/9pwpino0G7B2gp5tx/FUBqUlvtxV85KNR3mwfAtv15Yw==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "buffer-equals": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/buffer-equals/-/buffer-equals-1.0.4.tgz", - "integrity": "sha1-A1O1T9B/2VZBcGca5vZrnPENJ/U=" - }, - "buffer-from": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", - "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" - }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "requires": { - "callsites": "^0.2.0" - } - }, - "callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" - }, - "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=" - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, - "can-promise": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/can-promise/-/can-promise-0.0.1.tgz", - "integrity": "sha512-gzVrHyyrvgt0YpDm7pn04MQt8gjh0ZAhN4ZDyCRtGl6YnuuK6b4aiUTD7G52r9l4YNmxfTtEscb92vxtAlL6XQ==", - "requires": { - "window-or-global": "^1.0.1" - } - }, - "caniuse-lite": { - "version": "1.0.30000865", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000865.tgz", - "integrity": "sha512-vs79o1mOSKRGv/1pSkp4EXgl4ZviWeYReXw60XfacPU64uQWZwJT6vZNmxRF9O+6zu71sJwMxLK5JXxbzuVrLw==" - }, - "cashaddrjs": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.2.8.tgz", - "integrity": "sha512-oezXpKZRjavdRB1QjBamfHFDzYescGFn9dWMbijP4fgXrqMdBygOqaPNW4phf7zpRD4+oW7aaFfFklF72/szaA==", - "requires": { - "big-integer": "^1.6.26" - } - }, - "chai": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", - "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", - "dev": true, + "keccak": "1.4.0", + "nyc": "12.0.2", + "standard": "11.0.1", + "tape": "4.9.1" + }, + "dependencies": { + "nyc": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-12.0.2.tgz", + "integrity": "sha1-ikpO1pCWbBHsWH/4fuoMEsl0upk=", + "requires": { + "archy": "1.0.0", + "arrify": "1.0.1", + "caching-transform": "1.0.1", + "convert-source-map": "1.5.1", + "debug-log": "1.0.1", + "default-require-extensions": "1.0.0", + "find-cache-dir": "0.1.1", + "find-up": "2.1.0", + "foreground-child": "1.5.6", + "glob": "7.1.2", + "istanbul-lib-coverage": "1.2.0", + "istanbul-lib-hook": "1.1.0", + "istanbul-lib-instrument": "2.3.2", + "istanbul-lib-report": "1.1.3", + "istanbul-lib-source-maps": "1.2.5", + "istanbul-reports": "1.4.1", + "md5-hex": "1.3.0", + "merge-source-map": "1.1.0", + "micromatch": "3.1.10", + "mkdirp": "0.5.1", + "resolve-from": "2.0.0", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "spawn-wrap": "1.4.2", + "test-exclude": "4.2.1", + "yargs": "11.1.0", + "yargs-parser": "8.1.0" + }, + "dependencies": { + "align-text": { + "version": "0.1.4", + "bundled": true, + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } + }, + "amdefine": { + "version": "1.0.1", + "bundled": true + }, + "ansi-regex": { + "version": "3.0.0", + "bundled": true + }, + "append-transform": { + "version": "0.4.0", + "bundled": true, + "requires": { + "default-require-extensions": "1.0.0" + } + }, + "archy": { + "version": "1.0.0", + "bundled": true + }, + "arr-diff": { + "version": "4.0.0", + "bundled": true + }, + "arr-flatten": { + "version": "1.1.0", + "bundled": true + }, + "arr-union": { + "version": "3.1.0", + "bundled": true + }, + "array-unique": { + "version": "0.3.2", + "bundled": true + }, + "arrify": { + "version": "1.0.1", + "bundled": true + }, + "assign-symbols": { + "version": "1.0.0", + "bundled": true + }, + "async": { + "version": "1.5.2", + "bundled": true + }, + "atob": { + "version": "2.1.1", + "bundled": true + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "base": { + "version": "0.11.2", + "bundled": true, + "requires": { + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "bundled": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "builtin-modules": { + "version": "1.1.1", + "bundled": true + }, + "cache-base": { + "version": "1.0.1", + "bundled": 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" + } + }, + "caching-transform": { + "version": "1.0.1", + "bundled": true, + "requires": { + "md5-hex": "1.3.0", + "mkdirp": "0.5.1", + "write-file-atomic": "1.3.4" + } + }, + "camelcase": { + "version": "1.2.1", + "bundled": true, + "optional": true + }, + "center-align": { + "version": "0.1.3", + "bundled": true, + "optional": true, + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + } + }, + "class-utils": { + "version": "0.3.6", + "bundled": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "cliui": { + "version": "2.1.0", + "bundled": true, + "optional": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "bundled": true, + "optional": true + } + } + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "collection-visit": { + "version": "1.0.0", + "bundled": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "commondir": { + "version": "1.0.1", + "bundled": true + }, + "component-emitter": { + "version": "1.2.1", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "convert-source-map": { + "version": "1.5.1", + "bundled": true + }, + "copy-descriptor": { + "version": "0.1.1", + "bundled": true + }, + "cross-spawn": { + "version": "4.0.2", + "bundled": true, + "requires": { + "lru-cache": "4.1.3", + "which": "1.3.1" + } + }, + "debug": { + "version": "3.1.0", + "bundled": true, + "requires": { + "ms": "2.0.0" + } + }, + "debug-log": { + "version": "1.0.1", + "bundled": true + }, + "decamelize": { + "version": "1.2.0", + "bundled": true + }, + "decode-uri-component": { + "version": "0.2.0", + "bundled": true + }, + "default-require-extensions": { + "version": "1.0.0", + "bundled": true, + "requires": { + "strip-bom": "2.0.0" + } + }, + "define-property": { + "version": "2.0.2", + "bundled": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true + } + } + }, + "error-ex": { + "version": "1.3.1", + "bundled": true, + "requires": { + "is-arrayish": "0.2.1" + } + }, + "execa": { + "version": "0.7.0", + "bundled": 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" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "bundled": true, + "requires": { + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.1" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "bundled": 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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "bundled": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "bundled": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "bundled": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "bundled": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "bundled": 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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true + } + } + }, + "fill-range": { + "version": "4.0.0", + "bundled": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "find-cache-dir": { + "version": "0.1.1", + "bundled": true, + "requires": { + "commondir": "1.0.1", + "mkdirp": "0.5.1", + "pkg-dir": "1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "bundled": true, + "requires": { + "locate-path": "2.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "bundled": true + }, + "foreground-child": { + "version": "1.5.6", + "bundled": true, + "requires": { + "cross-spawn": "4.0.2", + "signal-exit": "3.0.2" + } + }, + "fragment-cache": { + "version": "0.2.1", + "bundled": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "get-caller-file": { + "version": "1.0.2", + "bundled": true + }, + "get-stream": { + "version": "3.0.0", + "bundled": true + }, + "get-value": { + "version": "2.0.6", + "bundled": true + }, + "glob": { + "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" + } + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true + }, + "handlebars": { + "version": "4.0.11", + "bundled": true, + "requires": { + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "bundled": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "has-value": { + "version": "1.0.0", + "bundled": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "bundled": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "bundled": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "hosted-git-info": { + "version": "2.6.0", + "bundled": true + }, + "imurmurhash": { + "version": "0.1.4", + "bundled": true + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "invert-kv": { + "version": "1.0.0", + "bundled": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "bundled": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-arrayish": { + "version": "0.2.1", + "bundled": true + }, + "is-buffer": { + "version": "1.1.6", + "bundled": true + }, + "is-builtin-module": { + "version": "1.0.0", + "bundled": true, + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "bundled": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "bundled": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "bundled": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true + }, + "is-number": { + "version": "3.0.0", + "bundled": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-odd": { + "version": "2.0.0", + "bundled": true, + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "bundled": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "bundled": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-stream": { + "version": "1.1.0", + "bundled": true + }, + "is-utf8": { + "version": "0.2.1", + "bundled": true + }, + "is-windows": { + "version": "1.0.2", + "bundled": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true + }, + "isexe": { + "version": "2.0.0", + "bundled": true + }, + "isobject": { + "version": "3.0.1", + "bundled": true + }, + "istanbul-lib-coverage": { + "version": "1.2.0", + "bundled": true + }, + "istanbul-lib-hook": { + "version": "1.1.0", + "bundled": true, + "requires": { + "append-transform": "0.4.0" + } + }, + "istanbul-lib-report": { + "version": "1.1.3", + "bundled": true, + "requires": { + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "bundled": true + }, + "supports-color": { + "version": "3.2.3", + "bundled": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.5", + "bundled": true, + "requires": { + "debug": "3.1.0", + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" + } + }, + "istanbul-reports": { + "version": "1.4.1", + "bundled": true, + "requires": { + "handlebars": "4.0.11" + } + }, + "kind-of": { + "version": "3.2.2", + "bundled": true, + "requires": { + "is-buffer": "1.1.6" + } + }, + "lazy-cache": { + "version": "1.0.4", + "bundled": true, + "optional": true + }, + "lcid": { + "version": "1.0.0", + "bundled": true, + "requires": { + "invert-kv": "1.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "bundled": true, + "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" + } + }, + "locate-path": { + "version": "2.0.0", + "bundled": true, + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "bundled": true + } + } + }, + "longest": { + "version": "1.0.1", + "bundled": true + }, + "lru-cache": { + "version": "4.1.3", + "bundled": true, + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + }, + "map-cache": { + "version": "0.2.2", + "bundled": true + }, + "map-visit": { + "version": "1.0.0", + "bundled": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "md5-hex": { + "version": "1.3.0", + "bundled": true, + "requires": { + "md5-o-matic": "0.1.1" + } + }, + "md5-o-matic": { + "version": "0.1.1", + "bundled": true + }, + "mem": { + "version": "1.1.0", + "bundled": true, + "requires": { + "mimic-fn": "1.2.0" + } + }, + "merge-source-map": { + "version": "1.1.0", + "bundled": true, + "requires": { + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "bundled": true + } + } + }, + "micromatch": { + "version": "3.1.10", + "bundled": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true + } + } + }, + "mimic-fn": { + "version": "1.2.0", + "bundled": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true + }, + "mixin-deep": { + "version": "1.3.1", + "bundled": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "bundled": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true + }, + "nanomatch": { + "version": "1.2.9", + "bundled": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-odd": "2.0.0", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true + } + } + }, + "normalize-package-data": { + "version": "2.4.0", + "bundled": true, + "requires": { + "hosted-git-info": "2.6.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" + } + }, + "npm-run-path": { + "version": "2.0.2", + "bundled": true, + "requires": { + "path-key": "2.0.1" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true + }, + "object-copy": { + "version": "0.1.0", + "bundled": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "bundled": true, + "requires": { + "isobject": "3.0.1" + } + }, + "object.pick": { + "version": "1.3.0", + "bundled": true, + "requires": { + "isobject": "3.0.1" + } + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optimist": { + "version": "0.6.1", + "bundled": true, + "requires": { + "minimist": "0.0.8", + "wordwrap": "0.0.3" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true + }, + "os-locale": { + "version": "2.1.0", + "bundled": true, + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } + }, + "p-finally": { + "version": "1.0.0", + "bundled": true + }, + "p-limit": { + "version": "1.2.0", + "bundled": true, + "requires": { + "p-try": "1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "bundled": true, + "requires": { + "p-limit": "1.2.0" + } + }, + "p-try": { + "version": "1.0.0", + "bundled": true + }, + "parse-json": { + "version": "2.2.0", + "bundled": true, + "requires": { + "error-ex": "1.3.1" + } + }, + "pascalcase": { + "version": "0.1.1", + "bundled": true + }, + "path-exists": { + "version": "2.1.0", + "bundled": true, + "requires": { + "pinkie-promise": "2.0.1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true + }, + "path-key": { + "version": "2.0.1", + "bundled": true + }, + "path-parse": { + "version": "1.0.5", + "bundled": true + }, + "path-type": { + "version": "1.1.0", + "bundled": true, + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "pify": { + "version": "2.3.0", + "bundled": true + }, + "pinkie": { + "version": "2.0.4", + "bundled": true + }, + "pinkie-promise": { + "version": "2.0.1", + "bundled": true, + "requires": { + "pinkie": "2.0.4" + } + }, + "pkg-dir": { + "version": "1.0.0", + "bundled": true, + "requires": { + "find-up": "1.1.2" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "bundled": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "bundled": true + }, + "pseudomap": { + "version": "1.0.2", + "bundled": true + }, + "read-pkg": { + "version": "1.1.0", + "bundled": true, + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "bundled": true, + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "bundled": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + } + } + }, + "regex-not": { + "version": "1.0.2", + "bundled": true, + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "bundled": true + }, + "repeat-string": { + "version": "1.6.1", + "bundled": true + }, + "require-directory": { + "version": "2.1.1", + "bundled": true + }, + "require-main-filename": { + "version": "1.0.1", + "bundled": true + }, + "resolve-from": { + "version": "2.0.0", + "bundled": true + }, + "resolve-url": { + "version": "0.2.1", + "bundled": true + }, + "ret": { + "version": "0.1.15", + "bundled": true + }, + "right-align": { + "version": "0.1.3", + "bundled": true, + "optional": true, + "requires": { + "align-text": "0.1.4" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-regex": { + "version": "1.1.0", + "bundled": true, + "requires": { + "ret": "0.1.15" + } + }, + "semver": { + "version": "5.5.0", + "bundled": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true + }, + "set-value": { + "version": "2.0.0", + "bundled": true, + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "shebang-command": { + "version": "1.2.0", + "bundled": true, + "requires": { + "shebang-regex": "1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "bundled": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true + }, + "slide": { + "version": "1.1.6", + "bundled": true + }, + "snapdragon": { + "version": "0.8.2", + "bundled": 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.2", + "use": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "bundled": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "bundled": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "bundled": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "bundled": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "source-map": { + "version": "0.5.7", + "bundled": true + }, + "source-map-resolve": { + "version": "0.5.2", + "bundled": true, + "requires": { + "atob": "2.1.1", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "bundled": true + }, + "spawn-wrap": { + "version": "1.4.2", + "bundled": true, + "requires": { + "foreground-child": "1.5.6", + "mkdirp": "0.5.1", + "os-homedir": "1.0.2", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "which": "1.3.1" + } + }, + "spdx-correct": { + "version": "3.0.0", + "bundled": true, + "requires": { + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "bundled": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "bundled": true, + "requires": { + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.0", + "bundled": true + }, + "split-string": { + "version": "3.1.0", + "bundled": true, + "requires": { + "extend-shallow": "3.0.2" + } + }, + "static-extend": { + "version": "0.1.2", + "bundled": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "string-width": { + "version": "2.1.1", + "bundled": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "bundled": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "bundled": true, + "requires": { + "is-utf8": "0.2.1" + } + }, + "strip-eof": { + "version": "1.0.0", + "bundled": true + }, + "test-exclude": { + "version": "4.2.1", + "bundled": true, + "requires": { + "arrify": "1.0.1", + "micromatch": "3.1.10", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" + } + }, + "to-object-path": { + "version": "0.3.0", + "bundled": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "to-regex": { + "version": "3.0.2", + "bundled": true, + "requires": { + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "bundled": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, + "uglify-js": { + "version": "2.8.29", + "bundled": true, + "optional": true, + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "yargs": { + "version": "3.10.0", + "bundled": true, + "optional": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "union-value": { + "version": "1.0.0", + "bundled": true, + "requires": { + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "bundled": true, + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" + } + } + } + }, + "unset-value": { + "version": "1.0.0", + "bundled": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "bundled": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "bundled": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "bundled": true + } + } + }, + "urix": { + "version": "0.1.0", + "bundled": true + }, + "use": { + "version": "3.1.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true + } + } + }, + "validate-npm-package-license": { + "version": "3.0.3", + "bundled": true, + "requires": { + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" + } + }, + "which": { + "version": "1.3.1", + "bundled": true, + "requires": { + "isexe": "2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "bundled": true + }, + "window-size": { + "version": "0.1.0", + "bundled": true, + "optional": true + }, + "wordwrap": { + "version": "0.0.3", + "bundled": true + }, + "wrap-ansi": { + "version": "2.1.0", + "bundled": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "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" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "2.1.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + }, + "write-file-atomic": { + "version": "1.3.4", + "bundled": true, + "requires": { + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" + } + }, + "y18n": { + "version": "3.2.1", + "bundled": true + }, + "yallist": { + "version": "2.1.2", + "bundled": true + }, + "yargs": { + "version": "11.1.0", + "bundled": true, + "requires": { + "cliui": "4.1.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": "9.0.2" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "bundled": true + }, + "cliui": { + "version": "4.1.0", + "bundled": true, + "requires": { + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" + } + }, + "yargs-parser": { + "version": "9.0.2", + "bundled": true, + "requires": { + "camelcase": "4.1.0" + } + } + } + }, + "yargs-parser": { + "version": "8.1.0", + "bundled": true, + "requires": { + "camelcase": "4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "bundled": true + } + } + } + } + } + } + }, + "bip38": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", + "integrity": "sha512-22KDak0RDyghFbR0Si7wyq9IgY423YzGYzWLpGeofH3DaolOQqjD3mNN08eFoubKlbyclOQKFwtONMv2SD9V3A==", + "requires": { + "bigi": "1.4.2", + "browserify-aes": "1.2.0", + "bs58check": "2.1.2", + "buffer-xor": "1.0.3", + "create-hash": "1.2.0", + "ecurve": "1.0.6", + "scryptsy": "2.0.0" + } + }, + "bip39": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", + "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", + "requires": { + "create-hash": "1.2.0", + "pbkdf2": "3.0.16", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2", + "unorm": "1.4.1" + } + }, + "bip66": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", + "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "bip68": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/bip68/-/bip68-1.0.4.tgz", + "integrity": "sha512-O1htyufFTYy3EO0JkHg2CLykdXEtV2ssqw47Gq9A0WByp662xpJnMEB9m43LZjsSDjIAOozWRExlFQk2hlV1XQ==" + }, + "bitbox-cli": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/bitbox-cli/-/bitbox-cli-1.4.2.tgz", + "integrity": "sha512-ilRmgewkTas89uOJmvDyCBFrPyov99wPJOlAEZUgV9H/cFIyRIjLPzqYim7m9N1FHVyorbfxBlsvoIqQRarcow==", + "requires": { + "assert": "1.4.1", + "axios": "0.17.1", + "babel-cli": "6.26.0", + "babel-preset-env": "1.7.0", + "babel-preset-es2015": "6.24.1", + "babel-preset-flow": "6.23.0", + "babel-preset-react": "6.24.1", + "babel-register": "6.26.0", + "bchaddrjs": "0.2.1", + "bigi": "1.4.2", + "bip21": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", + "bip38": "2.0.2", + "bip39": "2.5.0", + "bip66": "1.1.5", + "bip68": "1.0.4", + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", + "bitcoin-txdecoder": "0.0.3", + "bitcoincashjs-lib": "github:Bitcoin-com/bitcoincashjs-lib#0a7fc7cf23551503f57689db4c930b8136db954c", + "bitcoinjs-message": "2.0.0", + "bs58": "4.0.1", + "buffer": "5.2.0", + "chalk": "2.4.1", + "clear": "0.0.1", + "coininfo": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", + "commander": "2.16.0", + "corsproxy": "1.5.0", + "cp-file": "5.0.0", + "ecurve": "1.0.6", + "figlet": "1.2.0", + "git-clone": "0.1.0", + "ini": "1.3.5", + "mkdirp": "0.5.1", + "mocha": "5.2.0", + "node-cmd": "3.0.0", + "node-emoji": "1.8.1", + "qrcode": "1.2.0", + "randombytes": "2.0.6", + "repl.history": "0.1.4", + "safe-buffer": "5.1.2", + "satoshi-bitcoin": "1.0.4", + "socket.io": "2.1.1", + "socket.io-client": "2.1.1", + "touch": "3.1.0", + "wif": "2.0.6" + } + }, + "bitcoin-ops": { + "version": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" + }, + "bitcoin-txdecoder": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/bitcoin-txdecoder/-/bitcoin-txdecoder-0.0.3.tgz", + "integrity": "sha512-pH/eF5hQ65y54U23mzuF42wEj9YWj4WKHAIj2il6b1+oRoi/oyM4Ti3e8nMD8ajippICmyquqbyCZKGq3i4W+A==", + "requires": { + "bitcoinjs-lib": "3.3.2" + } + }, + "bitcoincashjs-lib": { + "version": "github:Bitcoin-com/bitcoincashjs-lib#0a7fc7cf23551503f57689db4c930b8136db954c", + "requires": { + "bech32": "1.1.3", + "bigi": "1.4.2", + "bip66": "1.1.5", + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", + "bs58check": "2.1.2", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ecurve": "1.0.6", + "merkle-lib": "2.0.10", + "pushdata-bitcoin": "1.0.1", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2", + "typeforce": "1.12.0", + "varuint-bitcoin": "1.1.0", + "wif": "2.0.6" + } + }, + "bitcoinjs-lib": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-3.3.2.tgz", + "integrity": "sha512-l5qqvbaK8wwtANPf6oEffykycg4383XgEYdia1rI7/JpGf1jfRWlOUCvx5TiTZS7kyIvY4j/UhIQ2urLsvGkzw==", + "requires": { + "bech32": "1.1.3", + "bigi": "1.4.2", + "bip66": "1.1.5", + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", + "bs58check": "2.1.2", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ecurve": "1.0.6", + "merkle-lib": "2.0.10", + "pushdata-bitcoin": "1.0.1", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2", + "typeforce": "1.12.0", + "varuint-bitcoin": "1.1.0", + "wif": "2.0.6" + } + }, + "bitcoinjs-message": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", + "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", + "requires": { + "bs58check": "2.1.2", + "buffer-equals": "1.0.4", + "create-hash": "1.2.0", + "secp256k1": "3.5.0", + "varuint-bitcoin": "1.1.0" + } + }, + "blob": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", + "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=" + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "requires": { + "hoek": "2.16.3" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "optional": true, + "requires": { + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "1.0.3", + "cipher-base": "1.0.4", + "create-hash": "1.2.0", + "evp_bytestokey": "1.0.3", + "inherits": "2.0.1", + "safe-buffer": "5.1.2" + } + }, + "browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "requires": { + "caniuse-lite": "1.0.30000865", + "electron-to-chromium": "1.3.52" + } + }, + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "requires": { + "base-x": "3.0.4" + } + }, + "bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "requires": { + "bs58": "4.0.1", + "create-hash": "1.2.0", + "safe-buffer": "5.1.2" + } + }, + "buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.0.tgz", + "integrity": "sha512-nUJyfChH7PMJy75eRDCCKtszSEFokUNXC1hNVSe+o+VdcgvDPLs20k3v8UXI8ruRYAJiYtyRea8mYyqPxoHWDw==", + "requires": { + "base64-js": "1.3.0", + "ieee754": "1.1.12" + } + }, + "buffer-equals": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/buffer-equals/-/buffer-equals-1.0.4.tgz", + "integrity": "sha1-A1O1T9B/2VZBcGca5vZrnPENJ/U=" + }, + "buffer-from": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", + "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "requires": { + "callsites": "0.2.0" + } + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=" + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + }, + "can-promise": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/can-promise/-/can-promise-0.0.1.tgz", + "integrity": "sha512-gzVrHyyrvgt0YpDm7pn04MQt8gjh0ZAhN4ZDyCRtGl6YnuuK6b4aiUTD7G52r9l4YNmxfTtEscb92vxtAlL6XQ==", + "requires": { + "window-or-global": "1.0.1" + } + }, + "caniuse-lite": { + "version": "1.0.30000865", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000865.tgz", + "integrity": "sha512-vs79o1mOSKRGv/1pSkp4EXgl4ZviWeYReXw60XfacPU64uQWZwJT6vZNmxRF9O+6zu71sJwMxLK5JXxbzuVrLw==" + }, + "cashaddrjs": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.2.8.tgz", + "integrity": "sha512-oezXpKZRjavdRB1QjBamfHFDzYescGFn9dWMbijP4fgXrqMdBygOqaPNW4phf7zpRD4+oW7aaFfFklF72/szaA==", + "requires": { + "big-integer": "1.6.32" + } + }, + "chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", + "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", + "dev": true, "requires": { - "assertion-error": "^1.0.1", - "check-error": "^1.0.1", - "deep-eql": "^3.0.0", - "get-func-name": "^2.0.0", - "pathval": "^1.0.0", - "type-detect": "^4.0.0" + "assertion-error": "1.1.0", + "check-error": "1.0.2", + "deep-eql": "3.0.1", + "get-func-name": "2.0.0", + "pathval": "1.1.0", + "type-detect": "4.0.8" } }, "chalk": { @@ -1388,9 +3303,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.4.0" }, "dependencies": { "ansi-styles": { @@ -1398,7 +3313,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "color-convert": "^1.9.0" + "color-convert": "1.9.2" } }, "supports-color": { @@ -1406,7 +3321,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -1428,15 +3343,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "optional": true, "requires": { - "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" + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.2.4", + "glob-parent": "2.0.0", + "inherits": "2.0.1", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" } }, "cipher-base": { @@ -1444,8 +3359,8 @@ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "circular-json": { @@ -1463,7 +3378,7 @@ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { - "restore-cursor": "^2.0.0" + "restore-cursor": "2.0.0" } }, "cli-width": { @@ -1476,9 +3391,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" }, "dependencies": { "string-width": { @@ -1486,9 +3401,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -1505,9 +3420,8 @@ }, "coininfo": { "version": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", - "from": "github:Bitcoin-com/coininfo", "requires": { - "safe-buffer": "^5.1.1" + "safe-buffer": "5.1.2" } }, "color-convert": { @@ -1553,10 +3467,10 @@ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "buffer-from": "1.1.0", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "typedarray": "0.0.6" }, "dependencies": { "inherits": { @@ -1596,15 +3510,15 @@ "resolved": "https://registry.npmjs.org/corsproxy/-/corsproxy-1.5.0.tgz", "integrity": "sha1-KUge0hXuWxvWkkx5Fc+I/LE8EGE=", "requires": { - "ejs": "^2.3.3", - "good": "^6.3.0", - "good-console": "^5.0.3", - "h2o2": "^4.0.1", - "hapi": "^9.0.2", - "hapi-cors-headers": "^1.0.0", - "http-proxy": "~1.11", - "inert": "^3.0.1", - "vision": "^3.0.0" + "ejs": "2.6.1", + "good": "6.6.3", + "good-console": "5.3.2", + "h2o2": "4.0.2", + "hapi": "9.5.1", + "hapi-cors-headers": "1.0.3", + "http-proxy": "1.11.3", + "inert": "3.2.1", + "vision": "3.0.0" } }, "cp-file": { @@ -1612,11 +3526,11 @@ "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-5.0.0.tgz", "integrity": "sha1-vHAP0wyjLSTUbH+wK5kuQ1/FqXg=", "requires": { - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "nested-error-stacks": "^2.0.0", - "pify": "^3.0.0", - "safe-buffer": "^5.0.1" + "graceful-fs": "4.1.11", + "make-dir": "1.3.0", + "nested-error-stacks": "2.0.1", + "pify": "3.0.0", + "safe-buffer": "5.1.2" } }, "create-hash": { @@ -1624,11 +3538,11 @@ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" + "cipher-base": "1.0.4", + "inherits": "2.0.1", + "md5.js": "1.3.4", + "ripemd160": "2.0.2", + "sha.js": "2.4.11" } }, "create-hmac": { @@ -1636,12 +3550,12 @@ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "cipher-base": "1.0.4", + "create-hash": "1.2.0", + "inherits": "2.0.1", + "ripemd160": "2.0.2", + "safe-buffer": "5.1.2", + "sha.js": "2.4.11" } }, "cross-spawn": { @@ -1649,9 +3563,9 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.1" }, "dependencies": { "lru-cache": { @@ -1659,8 +3573,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } } } @@ -1689,7 +3603,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "^4.0.0" + "type-detect": "4.0.8" } }, "deep-equal": { @@ -1707,8 +3621,8 @@ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", "requires": { - "foreach": "^2.0.5", - "object-keys": "^1.0.8" + "foreach": "2.0.5", + "object-keys": "1.0.12" } }, "defined": { @@ -1721,12 +3635,12 @@ "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.1.tgz", "integrity": "sha512-2kjwuGGonL7gWE1XU4Fv79+vVzpoQCl0V+boMwWtOQJV2AGDabCwez++nB1Nli/8BabAfZQ/UuHPlp6AymKdWw==", "requires": { - "find-root": "^1.0.0", - "glob": "^7.0.5", - "ignore": "^3.0.9", - "pkg-config": "^1.1.0", - "run-parallel": "^1.1.2", - "uniq": "^1.0.1" + "find-root": "1.1.0", + "glob": "7.1.2", + "ignore": "3.3.10", + "pkg-config": "1.1.1", + "run-parallel": "1.1.9", + "uniq": "1.0.1" } }, "del": { @@ -1734,13 +3648,13 @@ "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "requires": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" + "globby": "5.0.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.1", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "rimraf": "2.6.2" }, "dependencies": { "pify": { @@ -1755,7 +3669,7 @@ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "diff": { @@ -1773,7 +3687,7 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "requires": { - "esutils": "^2.0.2" + "esutils": "2.0.2" } }, "drbg.js": { @@ -1781,9 +3695,9 @@ "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", "requires": { - "browserify-aes": "^1.0.6", - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4" + "browserify-aes": "1.2.0", + "create-hash": "1.2.0", + "create-hmac": "1.1.7" } }, "ecurve": { @@ -1791,8 +3705,8 @@ "resolved": "https://registry.npmjs.org/ecurve/-/ecurve-1.0.6.tgz", "integrity": "sha512-/BzEjNfiSuB7jIWKcS/z8FK9jNjmEWvUV2YZ4RLSmcDtP7Lq0m6FvDuSnJpBlDpGRpfRQeTLGLBI8H+kEv0r+w==", "requires": { - "bigi": "^1.1.0", - "safe-buffer": "^5.0.1" + "bigi": "1.4.2", + "safe-buffer": "5.1.2" } }, "ejs": { @@ -1810,13 +3724,13 @@ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" + "bn.js": "4.11.8", + "brorand": "1.1.0", + "hash.js": "1.1.5", + "hmac-drbg": "1.0.1", + "inherits": "2.0.1", + "minimalistic-assert": "1.0.1", + "minimalistic-crypto-utils": "1.0.1" } }, "engine.io": { @@ -1824,12 +3738,12 @@ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.0.tgz", "integrity": "sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==", "requires": { - "accepts": "~1.3.4", + "accepts": "1.3.5", "base64id": "1.0.0", "cookie": "0.3.1", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.0", - "ws": "~3.3.1" + "debug": "3.1.0", + "engine.io-parser": "2.1.2", + "ws": "3.3.3" } }, "engine.io-client": { @@ -1839,14 +3753,14 @@ "requires": { "component-emitter": "1.2.1", "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.1", + "debug": "3.1.0", + "engine.io-parser": "2.1.2", "has-cors": "1.1.0", "indexof": "0.0.1", "parseqs": "0.0.5", "parseuri": "0.0.5", - "ws": "~3.3.1", - "xmlhttprequest-ssl": "~1.5.4", + "ws": "3.3.3", + "xmlhttprequest-ssl": "1.5.5", "yeast": "0.1.2" } }, @@ -1856,10 +3770,10 @@ "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==", "requires": { "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", + "arraybuffer.slice": "0.0.7", "base64-arraybuffer": "0.1.5", "blob": "0.0.4", - "has-binary2": "~1.0.2" + "has-binary2": "1.0.3" } }, "error-ex": { @@ -1867,7 +3781,7 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "es-abstract": { @@ -1875,11 +3789,11 @@ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", "requires": { - "es-to-primitive": "^1.1.1", - "function-bind": "^1.1.1", - "has": "^1.0.1", - "is-callable": "^1.1.3", - "is-regex": "^1.0.4" + "es-to-primitive": "1.1.1", + "function-bind": "1.1.1", + "has": "1.0.3", + "is-callable": "1.1.4", + "is-regex": "1.0.4" } }, "es-to-primitive": { @@ -1887,9 +3801,9 @@ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", "requires": { - "is-callable": "^1.1.1", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.1" + "is-callable": "1.1.4", + "is-date-object": "1.0.1", + "is-symbol": "1.0.1" } }, "escape-string-regexp": { @@ -1902,43 +3816,43 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", "requires": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", - "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.2", - "esquery": "^1.0.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.0.1", - "ignore": "^3.3.3", - "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "require-uncached": "^1.0.3", - "semver": "^5.3.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", + "ajv": "5.5.2", + "babel-code-frame": "6.26.0", + "chalk": "2.4.1", + "concat-stream": "1.6.2", + "cross-spawn": "5.1.0", + "debug": "3.1.0", + "doctrine": "2.1.0", + "eslint-scope": "3.7.3", + "eslint-visitor-keys": "1.0.0", + "espree": "3.5.4", + "esquery": "1.0.1", + "esutils": "2.0.2", + "file-entry-cache": "2.0.0", + "functional-red-black-tree": "1.0.1", + "glob": "7.1.2", + "globals": "11.7.0", + "ignore": "3.3.10", + "imurmurhash": "0.1.4", + "inquirer": "3.3.0", + "is-resolvable": "1.1.0", + "js-yaml": "3.12.0", + "json-stable-stringify-without-jsonify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.10", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "7.0.0", + "progress": "2.0.0", + "require-uncached": "1.0.3", + "semver": "5.5.0", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", "table": "4.0.2", - "text-table": "~0.2.0" + "text-table": "0.2.0" }, "dependencies": { "ansi-regex": { @@ -1956,7 +3870,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -1976,8 +3890,8 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", "requires": { - "debug": "^2.6.9", - "resolve": "^1.5.0" + "debug": "2.6.9", + "resolve": "1.8.1" }, "dependencies": { "debug": { @@ -1995,8 +3909,8 @@ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", "requires": { - "debug": "^2.6.8", - "pkg-dir": "^1.0.0" + "debug": "2.6.9", + "pkg-dir": "1.0.0" }, "dependencies": { "debug": { @@ -2014,16 +3928,16 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz", "integrity": "sha1-JgAu+/ylmJtyiKwEdQi9JPIXsWk=", "requires": { - "builtin-modules": "^1.1.1", - "contains-path": "^0.1.0", - "debug": "^2.6.8", + "builtin-modules": "1.1.1", + "contains-path": "0.1.0", + "debug": "2.6.9", "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.1", - "eslint-module-utils": "^2.1.1", - "has": "^1.0.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.3", - "read-pkg-up": "^2.0.0" + "eslint-import-resolver-node": "0.3.2", + "eslint-module-utils": "2.2.0", + "has": "1.0.3", + "lodash": "4.17.10", + "minimatch": "3.0.4", + "read-pkg-up": "2.0.0" }, "dependencies": { "debug": { @@ -2039,8 +3953,8 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" + "esutils": "2.0.2", + "isarray": "1.0.0" } } } @@ -2050,10 +3964,10 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz", "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", "requires": { - "ignore": "^3.3.6", - "minimatch": "^3.0.4", - "resolve": "^1.3.3", - "semver": "^5.4.1" + "ignore": "3.3.10", + "minimatch": "3.0.4", + "resolve": "1.8.1", + "semver": "5.5.0" } }, "eslint-plugin-promise": { @@ -2066,10 +3980,10 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz", "integrity": "sha512-KC7Snr4YsWZD5flu6A5c0AcIZidzW3Exbqp7OT67OaD2AppJtlBr/GuPrW/vaQM/yfZotEvKAdrxrO+v8vwYJA==", "requires": { - "doctrine": "^2.0.2", - "has": "^1.0.1", - "jsx-ast-utils": "^2.0.1", - "prop-types": "^15.6.0" + "doctrine": "2.1.0", + "has": "1.0.3", + "jsx-ast-utils": "2.0.1", + "prop-types": "15.6.2" } }, "eslint-plugin-standard": { @@ -2082,8 +3996,8 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "esrecurse": "4.2.1", + "estraverse": "4.2.0" } }, "eslint-visitor-keys": { @@ -2096,8 +4010,8 @@ "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" + "acorn": "5.7.1", + "acorn-jsx": "3.0.1" } }, "esprima": { @@ -2110,7 +4024,7 @@ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "requires": { - "estraverse": "^4.0.0" + "estraverse": "4.2.0" } }, "esrecurse": { @@ -2118,7 +4032,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "requires": { - "estraverse": "^4.1.0" + "estraverse": "4.2.0" } }, "estraverse": { @@ -2141,8 +4055,8 @@ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "md5.js": "1.3.4", + "safe-buffer": "5.1.2" } }, "execa": { @@ -2150,13 +4064,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "requires": { - "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" + "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" } }, "expand-brackets": { @@ -2165,7 +4079,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "optional": true, "requires": { - "is-posix-bracket": "^0.1.0" + "is-posix-bracket": "0.1.1" } }, "expand-range": { @@ -2174,7 +4088,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "optional": true, "requires": { - "fill-range": "^2.1.0" + "fill-range": "2.2.4" } }, "external-editor": { @@ -2182,9 +4096,9 @@ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" + "chardet": "0.4.2", + "iconv-lite": "0.4.23", + "tmp": "0.0.33" } }, "extglob": { @@ -2193,7 +4107,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "optional": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "fast-deep-equal": { @@ -2221,7 +4135,7 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "requires": { - "escape-string-regexp": "^1.0.5" + "escape-string-regexp": "1.0.5" } }, "file-entry-cache": { @@ -2229,8 +4143,8 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" + "flat-cache": "1.3.0", + "object-assign": "4.1.1" } }, "filename-regex": { @@ -2245,11 +4159,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "optional": true, "requires": { - "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": "2.1.0", + "isobject": "2.1.0", + "randomatic": "3.0.0", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" } }, "find-root": { @@ -2262,7 +4176,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "flat-cache": { @@ -2270,10 +4184,10 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "requires": { - "circular-json": "^0.3.1", - "del": "^2.0.2", - "graceful-fs": "^4.1.2", - "write": "^0.2.1" + "circular-json": "0.3.3", + "del": "2.2.2", + "graceful-fs": "4.1.11", + "write": "0.2.1" } }, "flow-bin": { @@ -2287,7 +4201,7 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.1.tgz", "integrity": "sha512-v9GI1hpaqq1ZZR6pBD1+kI7O24PhDvNGNodjS3MdcEqyrahCp8zbtpv+2B/krUnSmUH80lbAS7MrdeK5IylgKg==", "requires": { - "debug": "^3.1.0" + "debug": "3.1.0" } }, "for-each": { @@ -2295,7 +4209,7 @@ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "requires": { - "is-callable": "^1.1.3" + "is-callable": "1.1.4" } }, "for-in": { @@ -2310,7 +4224,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "optional": true, "requires": { - "for-in": "^1.0.1" + "for-in": "1.0.2" } }, "foreach": { @@ -2334,8 +4248,8 @@ "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", "optional": true, "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" + "nan": "2.10.0", + "node-pre-gyp": "0.10.0" }, "dependencies": { "abbrev": { @@ -2357,8 +4271,8 @@ "bundled": true, "optional": true, "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "delegates": "1.0.0", + "readable-stream": "2.3.6" } }, "balanced-match": { @@ -2369,7 +4283,7 @@ "version": "1.1.11", "bundled": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -2423,7 +4337,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.2.4" } }, "fs.realpath": { @@ -2436,14 +4350,14 @@ "bundled": true, "optional": true, "requires": { - "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" + "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" } }, "glob": { @@ -2451,12 +4365,12 @@ "bundled": true, "optional": true, "requires": { - "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" + "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" } }, "has-unicode": { @@ -2469,7 +4383,7 @@ "bundled": true, "optional": true, "requires": { - "safer-buffer": "^2.1.0" + "safer-buffer": "2.1.2" } }, "ignore-walk": { @@ -2477,7 +4391,7 @@ "bundled": true, "optional": true, "requires": { - "minimatch": "^3.0.4" + "minimatch": "3.0.4" } }, "inflight": { @@ -2485,8 +4399,8 @@ "bundled": true, "optional": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -2502,7 +4416,7 @@ "version": "1.0.0", "bundled": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "isarray": { @@ -2514,7 +4428,7 @@ "version": "3.0.4", "bundled": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -2525,8 +4439,8 @@ "version": "2.2.4", "bundled": true, "requires": { - "safe-buffer": "^5.1.1", - "yallist": "^3.0.0" + "safe-buffer": "5.1.1", + "yallist": "3.0.2" } }, "minizlib": { @@ -2534,7 +4448,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.2.4" } }, "mkdirp": { @@ -2554,9 +4468,9 @@ "bundled": true, "optional": true, "requires": { - "debug": "^2.1.2", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" + "debug": "2.6.9", + "iconv-lite": "0.4.21", + "sax": "1.2.4" } }, "node-pre-gyp": { @@ -2564,16 +4478,16 @@ "bundled": 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" + "detect-libc": "1.0.3", + "mkdirp": "0.5.1", + "needle": "2.2.0", + "nopt": "4.0.1", + "npm-packlist": "1.1.10", + "npmlog": "4.1.2", + "rc": "1.2.7", + "rimraf": "2.6.2", + "semver": "5.5.0", + "tar": "4.4.1" } }, "nopt": { @@ -2581,8 +4495,8 @@ "bundled": true, "optional": true, "requires": { - "abbrev": "1", - "osenv": "^0.1.4" + "abbrev": "1.1.1", + "osenv": "0.1.5" } }, "npm-bundled": { @@ -2595,8 +4509,8 @@ "bundled": true, "optional": true, "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" + "ignore-walk": "3.0.1", + "npm-bundled": "1.0.3" } }, "npmlog": { @@ -2604,10 +4518,10 @@ "bundled": 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" + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" } }, "number-is-nan": { @@ -2623,7 +4537,7 @@ "version": "1.4.0", "bundled": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "os-homedir": { @@ -2641,8 +4555,8 @@ "bundled": true, "optional": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "path-is-absolute": { @@ -2660,10 +4574,10 @@ "bundled": true, "optional": true, "requires": { - "deep-extend": "^0.5.1", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" + "deep-extend": "0.5.1", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" }, "dependencies": { "minimist": { @@ -2678,13 +4592,13 @@ "bundled": true, "optional": true, "requires": { - "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" + "core-util-is": "1.0.2", + "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.2" } }, "rimraf": { @@ -2692,7 +4606,7 @@ "bundled": true, "optional": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "safe-buffer": { @@ -2728,9 +4642,9 @@ "version": "1.0.2", "bundled": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "string_decoder": { @@ -2738,14 +4652,14 @@ "bundled": true, "optional": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.1" } }, "strip-ansi": { "version": "3.0.1", "bundled": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-json-comments": { @@ -2758,13 +4672,13 @@ "bundled": true, "optional": true, "requires": { - "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" + "chownr": "1.0.1", + "fs-minipass": "1.2.5", + "minipass": "2.2.4", + "minizlib": "1.1.0", + "mkdirp": "0.5.1", + "safe-buffer": "5.1.1", + "yallist": "3.0.2" } }, "util-deprecate": { @@ -2777,7 +4691,7 @@ "bundled": true, "optional": true, "requires": { - "string-width": "^1.0.2" + "string-width": "1.0.2" } }, "wrappy": { @@ -2831,12 +4745,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { - "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" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.1", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "glob-base": { @@ -2845,8 +4759,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "optional": true, "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" + "glob-parent": "2.0.0", + "is-glob": "2.0.1" } }, "glob-parent": { @@ -2854,7 +4768,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "requires": { - "is-glob": "^2.0.0" + "is-glob": "2.0.1" } }, "globals": { @@ -2867,12 +4781,12 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" }, "dependencies": { "pify": { @@ -2887,11 +4801,11 @@ "resolved": "https://registry.npmjs.org/good/-/good-6.6.3.tgz", "integrity": "sha1-B9zIEfwSuDmKnDMezdM37OWogDU=", "requires": { - "hoek": "2.x.x", - "items": "1.x.x", - "joi": "6.x.x", + "hoek": "2.16.3", + "items": "1.1.1", + "joi": "6.10.1", "traverse": "0.6.6", - "wreck": "6.x.x" + "wreck": "6.3.0" } }, "good-console": { @@ -2899,11 +4813,11 @@ "resolved": "https://registry.npmjs.org/good-console/-/good-console-5.3.2.tgz", "integrity": "sha1-f8c9RDfiWsToODJB5GaWy6N0ia0=", "requires": { - "good-squeeze": "2.x.x", - "hoek": "2.x.x", - "json-stringify-safe": "5.0.x", - "moment": "2.11.x", - "through2": "0.6.x" + "good-squeeze": "2.1.0", + "hoek": "2.16.3", + "json-stringify-safe": "5.0.1", + "moment": "2.11.2", + "through2": "0.6.5" }, "dependencies": { "moment": { @@ -2918,8 +4832,8 @@ "resolved": "https://registry.npmjs.org/good-squeeze/-/good-squeeze-2.1.0.tgz", "integrity": "sha1-mc7pHSbVkWmKiZwo6TELzzxq4oo=", "requires": { - "hoek": "2.x.x", - "json-stringify-safe": "5.0.x" + "hoek": "2.16.3", + "json-stringify-safe": "5.0.1" } }, "graceful-fs": { @@ -2937,10 +4851,10 @@ "resolved": "https://registry.npmjs.org/h2o2/-/h2o2-4.0.2.tgz", "integrity": "sha1-h8uWDcD1tJWWT6koJT5s8TuiJIY=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x", - "joi": "6.x.x", - "wreck": "6.x.x" + "boom": "2.10.1", + "hoek": "2.16.3", + "joi": "6.10.1", + "wreck": "6.3.0" } }, "hapi": { @@ -2948,26 +4862,26 @@ "resolved": "https://registry.npmjs.org/hapi/-/hapi-9.5.1.tgz", "integrity": "sha1-jYyhPnwiCweEZemgp2QPJqWvuFU=", "requires": { - "accept": "1.x.x", - "ammo": "1.x.x", - "boom": "^2.5.x", - "call": "2.x.x", - "catbox": "6.x.x", - "catbox-memory": "1.x.x", - "cryptiles": "2.x.x", - "heavy": "3.x.x", - "hoek": "^2.14.x", - "iron": "2.x.x", - "items": "1.x.x", - "joi": "^6.8.1", - "kilt": "^1.1.x", - "mimos": "2.x.x", - "peekaboo": "1.x.x", - "qs": "4.x.x", - "shot": "^1.7.x", - "statehood": "2.x.x", - "subtext": "2.x.x", - "topo": "^1.1.x" + "accept": "1.1.0", + "ammo": "1.0.1", + "boom": "2.9.0", + "call": "2.0.2", + "catbox": "6.0.0", + "catbox-memory": "1.1.2", + "cryptiles": "2.0.5", + "heavy": "3.0.1", + "hoek": "2.16.3", + "iron": "2.1.3", + "items": "1.1.0", + "joi": "6.8.1", + "kilt": "1.1.1", + "mimos": "2.0.2", + "peekaboo": "1.0.0", + "qs": "4.0.0", + "shot": "1.7.0", + "statehood": "2.1.1", + "subtext": "2.0.0", + "topo": "1.1.0" }, "dependencies": { "accept": { @@ -2975,8 +4889,8 @@ "resolved": "https://registry.npmjs.org/accept/-/accept-1.1.0.tgz", "integrity": "sha1-x7VWfJmt5Kx8k38qm8HFZhYKMLU=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x" + "boom": "2.9.0", + "hoek": "2.16.3" } }, "ammo": { @@ -2984,8 +4898,8 @@ "resolved": "https://registry.npmjs.org/ammo/-/ammo-1.0.1.tgz", "integrity": "sha1-j4rdFM1Jve3jurOj4OvK8h0D3os=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x" + "boom": "2.9.0", + "hoek": "2.16.3" } }, "boom": { @@ -2993,7 +4907,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-2.9.0.tgz", "integrity": "sha1-pUt/0v7kd9NRv543FoDL6mfxJxU=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } }, "call": { @@ -3001,8 +4915,8 @@ "resolved": "https://registry.npmjs.org/call/-/call-2.0.2.tgz", "integrity": "sha1-nJgxq9B2lIb97oOkEUm4KbMtBsA=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x" + "boom": "2.9.0", + "hoek": "2.16.3" } }, "catbox": { @@ -3010,9 +4924,9 @@ "resolved": "https://registry.npmjs.org/catbox/-/catbox-6.0.0.tgz", "integrity": "sha1-6i8pT6Bemvx+IhDTI/XeU6OAQ+c=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x", - "joi": "6.x.x" + "boom": "2.9.0", + "hoek": "2.16.3", + "joi": "6.8.1" } }, "catbox-memory": { @@ -3020,7 +4934,7 @@ "resolved": "https://registry.npmjs.org/catbox-memory/-/catbox-memory-1.1.2.tgz", "integrity": "sha1-M8kYOjKzGUXuikhNDjw8u4Lq7Bo=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } }, "cryptiles": { @@ -3028,7 +4942,7 @@ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "requires": { - "boom": "2.x.x" + "boom": "2.9.0" } }, "heavy": { @@ -3036,9 +4950,9 @@ "resolved": "https://registry.npmjs.org/heavy/-/heavy-3.0.1.tgz", "integrity": "sha1-8oZ+bjUVv4OrGoux5z5dKOhas80=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x", - "joi": "6.x.x" + "boom": "2.9.0", + "hoek": "2.16.3", + "joi": "6.8.1" } }, "hoek": { @@ -3051,9 +4965,9 @@ "resolved": "https://registry.npmjs.org/iron/-/iron-2.1.3.tgz", "integrity": "sha1-cbjzV9gGquA6kKdFuaqv/sfi3eQ=", "requires": { - "boom": "2.x.x", - "cryptiles": "2.x.x", - "hoek": "2.x.x" + "boom": "2.9.0", + "cryptiles": "2.0.5", + "hoek": "2.16.3" } }, "items": { @@ -3066,10 +4980,10 @@ "resolved": "https://registry.npmjs.org/joi/-/joi-6.8.1.tgz", "integrity": "sha1-g94tYCj8DNXRYi8/V0fKCCtHjv8=", "requires": { - "hoek": "2.x.x", - "isemail": "1.x.x", - "moment": "2.x.x", - "topo": "1.x.x" + "hoek": "2.16.3", + "isemail": "1.2.0", + "moment": "2.10.6", + "topo": "1.1.0" }, "dependencies": { "isemail": { @@ -3089,7 +5003,7 @@ "resolved": "https://registry.npmjs.org/kilt/-/kilt-1.1.1.tgz", "integrity": "sha1-d7SmFjyn+lshN6iMFzNCFuwj1ds=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } }, "mimos": { @@ -3097,8 +5011,8 @@ "resolved": "https://registry.npmjs.org/mimos/-/mimos-2.0.2.tgz", "integrity": "sha1-wyQXF+dblZkr54esfdbbGptTmx4=", "requires": { - "hoek": "2.x.x", - "mime-db": "1.x.x" + "hoek": "2.16.3", + "mime-db": "1.19.0" }, "dependencies": { "mime-db": { @@ -3123,7 +5037,7 @@ "resolved": "https://registry.npmjs.org/shot/-/shot-1.7.0.tgz", "integrity": "sha1-8jKdfvM6/PA9RM5Bq66BSK4XBTI=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } }, "statehood": { @@ -3131,12 +5045,12 @@ "resolved": "https://registry.npmjs.org/statehood/-/statehood-2.1.1.tgz", "integrity": "sha1-AfFwtmxeklqvZ5qdMiulkYb8AAk=", "requires": { - "boom": "2.x.x", - "cryptiles": "2.x.x", - "hoek": "2.x.x", - "iron": "2.x.x", - "items": "1.x.x", - "joi": "6.x.x" + "boom": "2.9.0", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "iron": "2.1.3", + "items": "1.1.0", + "joi": "6.8.1" } }, "subtext": { @@ -3144,12 +5058,12 @@ "resolved": "https://registry.npmjs.org/subtext/-/subtext-2.0.0.tgz", "integrity": "sha1-I5lQ6SCBQ/FUirJeHJV5vbaNiU4=", "requires": { - "boom": "2.x.x", - "content": "1.x.x", - "hoek": "2.x.x", - "pez": "1.x.x", - "qs": "4.x.x", - "wreck": "6.x.x" + "boom": "2.9.0", + "content": "1.0.2", + "hoek": "2.16.3", + "pez": "1.0.0", + "qs": "4.0.0", + "wreck": "6.2.0" }, "dependencies": { "content": { @@ -3157,8 +5071,8 @@ "resolved": "https://registry.npmjs.org/content/-/content-1.0.2.tgz", "integrity": "sha1-y37fMq/vF8SKz9vSH/mMIzFa6CQ=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x" + "boom": "2.9.0", + "hoek": "2.16.3" } }, "pez": { @@ -3166,11 +5080,11 @@ "resolved": "https://registry.npmjs.org/pez/-/pez-1.0.0.tgz", "integrity": "sha1-hEMYpc5wku7d/6KV4YB5rHefoBg=", "requires": { - "b64": "2.x.x", - "boom": "2.x.x", - "content": "1.x.x", - "hoek": "2.x.x", - "nigel": "1.x.x" + "b64": "2.0.1", + "boom": "2.9.0", + "content": "1.0.2", + "hoek": "2.16.3", + "nigel": "1.0.1" }, "dependencies": { "b64": { @@ -3178,7 +5092,7 @@ "resolved": "https://registry.npmjs.org/b64/-/b64-2.0.1.tgz", "integrity": "sha1-0IwQcZcZ/x/htTKuSSaUCc4UnOk=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } }, "nigel": { @@ -3186,8 +5100,8 @@ "resolved": "https://registry.npmjs.org/nigel/-/nigel-1.0.1.tgz", "integrity": "sha1-RjmJr4gSePuqHTzJOCPb0XtDYKE=", "requires": { - "hoek": "2.x.x", - "vise": "1.x.x" + "hoek": "2.16.3", + "vise": "1.0.0" }, "dependencies": { "vise": { @@ -3195,7 +5109,7 @@ "resolved": "https://registry.npmjs.org/vise/-/vise-1.0.0.tgz", "integrity": "sha1-KDRb5N5aNB4V/SgW/Z6j5zA+jfM=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } } } @@ -3207,8 +5121,8 @@ "resolved": "https://registry.npmjs.org/wreck/-/wreck-6.2.0.tgz", "integrity": "sha1-8Jkx7UcbZL6Yjj57u4gjTa4i0iI=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x" + "boom": "2.9.0", + "hoek": "2.16.3" } } } @@ -3218,7 +5132,7 @@ "resolved": "https://registry.npmjs.org/topo/-/topo-1.1.0.tgz", "integrity": "sha1-6ddRYV0buH3IZdsYL6HKCl71NtU=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } } } @@ -3233,7 +5147,7 @@ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "requires": { - "function-bind": "^1.1.1" + "function-bind": "1.1.1" } }, "has-ansi": { @@ -3241,7 +5155,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "has-binary2": { @@ -3274,8 +5188,8 @@ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "hash.js": { @@ -3283,8 +5197,8 @@ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1" }, "dependencies": { "inherits": { @@ -3304,9 +5218,9 @@ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "hash.js": "1.1.5", + "minimalistic-assert": "1.0.1", + "minimalistic-crypto-utils": "1.0.1" } }, "hoek": { @@ -3319,8 +5233,8 @@ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "hosted-git-info": { @@ -3333,8 +5247,8 @@ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.11.3.tgz", "integrity": "sha1-GRXciIdR4qa/PCq/yxgI+obHI1M=", "requires": { - "eventemitter3": "1.x.x", - "requires-port": "0.x.x" + "eventemitter3": "1.2.0", + "requires-port": "0.0.1" } }, "iconv-lite": { @@ -3342,7 +5256,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": "2.1.2" } }, "ieee754": { @@ -3370,12 +5284,12 @@ "resolved": "https://registry.npmjs.org/inert/-/inert-3.2.1.tgz", "integrity": "sha1-xJZcXhh87z2yxChy5S51cAh2Qn0=", "requires": { - "ammo": "1.x.x", - "boom": "2.x.x", - "hoek": "2.x.x", - "items": "1.x.x", - "joi": "^6.7.x", - "lru-cache": "2.7.x" + "ammo": "1.0.1", + "boom": "2.10.1", + "hoek": "2.16.3", + "items": "1.1.1", + "joi": "6.10.1", + "lru-cache": "2.7.3" } }, "inflight": { @@ -3383,8 +5297,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -3402,20 +5316,20 @@ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", + "ansi-escapes": "3.1.0", + "chalk": "2.4.1", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.2.0", + "figures": "2.0.0", + "lodash": "4.17.10", "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" + "run-async": "2.3.0", + "rx-lite": "4.0.8", + "rx-lite-aggregates": "4.0.8", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" }, "dependencies": { "ansi-regex": { @@ -3428,7 +5342,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -3438,7 +5352,7 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "loose-envify": "^1.0.0" + "loose-envify": "1.4.0" } }, "invert-kv": { @@ -3457,7 +5371,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "optional": true, "requires": { - "binary-extensions": "^1.0.0" + "binary-extensions": "1.11.0" } }, "is-buffer": { @@ -3470,7 +5384,7 @@ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-callable": { @@ -3495,7 +5409,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "optional": true, "requires": { - "is-primitive": "^2.0.0" + "is-primitive": "2.0.0" } }, "is-extendable": { @@ -3514,7 +5428,7 @@ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { @@ -3522,7 +5436,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.0" + "number-is-nan": "1.0.1" } }, "is-glob": { @@ -3530,7 +5444,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "is-number": { @@ -3539,7 +5453,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "optional": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-path-cwd": { @@ -3552,7 +5466,7 @@ "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "requires": { - "is-path-inside": "^1.0.0" + "is-path-inside": "1.0.1" } }, "is-path-inside": { @@ -3560,7 +5474,7 @@ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "requires": { - "path-is-inside": "^1.0.1" + "path-is-inside": "1.0.2" } }, "is-posix-bracket": { @@ -3585,7 +5499,7 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "requires": { - "has": "^1.0.1" + "has": "1.0.3" } }, "is-resolvable": { @@ -3627,6 +5541,25 @@ "isarray": "1.0.0" } }, + "istanbul-lib-coverage": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", + "integrity": "sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA==" + }, + "istanbul-lib-instrument": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-2.3.2.tgz", + "integrity": "sha512-l7TD/VnBsIB2OJvSyxaLW/ab1+92dxZNH9wLH7uHPPioy3JZ8tnx2UXUdKmdkgmP2EFPzg64CToUP6dAS3U32Q==", + "requires": { + "@babel/generator": "7.0.0-beta.51", + "@babel/parser": "7.0.0-beta.51", + "@babel/template": "7.0.0-beta.51", + "@babel/traverse": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51", + "istanbul-lib-coverage": "2.0.1", + "semver": "5.5.0" + } + }, "items": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/items/-/items-1.1.1.tgz", @@ -3637,10 +5570,10 @@ "resolved": "https://registry.npmjs.org/joi/-/joi-6.10.1.tgz", "integrity": "sha1-TVDDGAeRIgAP5fFq8f+OGRe3fgY=", "requires": { - "hoek": "2.x.x", - "isemail": "1.x.x", - "moment": "2.x.x", - "topo": "1.x.x" + "hoek": "2.16.3", + "isemail": "1.2.0", + "moment": "2.22.2", + "topo": "1.1.0" } }, "js-tokens": { @@ -3653,8 +5586,8 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "1.0.10", + "esprima": "4.0.1" } }, "jsesc": { @@ -3692,7 +5625,7 @@ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", "requires": { - "array-includes": "^3.0.3" + "array-includes": "3.0.3" } }, "just-extend": { @@ -3706,10 +5639,10 @@ "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", "requires": { - "bindings": "^1.2.1", - "inherits": "^2.0.3", - "nan": "^2.2.1", - "safe-buffer": "^5.1.0" + "bindings": "1.3.0", + "inherits": "2.0.3", + "nan": "2.10.0", + "safe-buffer": "5.1.2" }, "dependencies": { "inherits": { @@ -3724,7 +5657,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "lcid": { @@ -3732,7 +5665,7 @@ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "levn": { @@ -3740,8 +5673,8 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "1.1.2", + "type-check": "0.3.2" } }, "load-json-file": { @@ -3749,10 +5682,10 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" }, "dependencies": { "pify": { @@ -3767,8 +5700,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "2.0.0", + "path-exists": "3.0.0" } }, "lodash": { @@ -3798,7 +5731,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" + "js-tokens": "3.0.2" } }, "lru-cache": { @@ -3811,7 +5744,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "math-random": { @@ -3825,8 +5758,8 @@ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "hash-base": "3.0.4", + "inherits": "2.0.1" } }, "mem": { @@ -3834,7 +5767,7 @@ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "merkle-lib": { @@ -3848,19 +5781,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "optional": true, "requires": { - "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" + "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" } }, "mime-db": { @@ -3873,7 +5806,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", "requires": { - "mime-db": "~1.35.0" + "mime-db": "1.35.0" } }, "mimic-fn": { @@ -3896,7 +5829,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -3940,7 +5873,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -3986,11 +5919,11 @@ "integrity": "sha512-BxH/DxoQYYdhKgVAfqVy4pzXRZELHOIewzoesxpjYvpU+7YOalQhGNPf7wAx8pLrTNPrHRDlLOkAl8UI0ZpXjw==", "dev": true, "requires": { - "@sinonjs/formatio": "^2.0.0", - "just-extend": "^1.1.27", - "lolex": "^2.3.2", - "path-to-regexp": "^1.7.0", - "text-encoding": "^0.6.4" + "@sinonjs/formatio": "2.0.0", + "just-extend": "1.1.27", + "lolex": "2.7.1", + "path-to-regexp": "1.7.0", + "text-encoding": "0.6.4" } }, "node-cmd": { @@ -4003,7 +5936,7 @@ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", "requires": { - "lodash.toarray": "^4.4.0" + "lodash.toarray": "4.4.0" } }, "nopt": { @@ -4011,7 +5944,7 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "requires": { - "abbrev": "1" + "abbrev": "1.1.1" } }, "normalize-package-data": { @@ -4019,10 +5952,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.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.7.1", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" } }, "normalize-path": { @@ -4030,7 +5963,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { - "remove-trailing-separator": "^1.0.1" + "remove-trailing-separator": "1.1.0" } }, "npm-run-path": { @@ -4038,7 +5971,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { @@ -4050,520 +5983,592 @@ "version": "11.9.0", "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.9.0.tgz", "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", + "dev": true, "requires": { - "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^1.0.0", - "convert-source-map": "^1.5.1", - "debug-log": "^1.0.1", - "default-require-extensions": "^1.0.0", - "find-cache-dir": "^0.1.1", - "find-up": "^2.1.0", - "foreground-child": "^1.5.3", - "glob": "^7.0.6", - "istanbul-lib-coverage": "^1.1.2", - "istanbul-lib-hook": "^1.1.0", - "istanbul-lib-instrument": "^1.10.0", - "istanbul-lib-report": "^1.1.3", - "istanbul-lib-source-maps": "^1.2.3", - "istanbul-reports": "^1.4.0", - "md5-hex": "^1.2.0", - "merge-source-map": "^1.1.0", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.0", - "resolve-from": "^2.0.0", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.1", - "spawn-wrap": "^1.4.2", - "test-exclude": "^4.2.0", + "archy": "1.0.0", + "arrify": "1.0.1", + "caching-transform": "1.0.1", + "convert-source-map": "1.5.1", + "debug-log": "1.0.1", + "default-require-extensions": "1.0.0", + "find-cache-dir": "0.1.1", + "find-up": "2.1.0", + "foreground-child": "1.5.6", + "glob": "7.1.2", + "istanbul-lib-coverage": "1.2.0", + "istanbul-lib-hook": "1.1.0", + "istanbul-lib-instrument": "1.10.1", + "istanbul-lib-report": "1.1.3", + "istanbul-lib-source-maps": "1.2.3", + "istanbul-reports": "1.4.0", + "md5-hex": "1.3.0", + "merge-source-map": "1.1.0", + "micromatch": "3.1.10", + "mkdirp": "0.5.1", + "resolve-from": "2.0.0", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "spawn-wrap": "1.4.2", + "test-exclude": "4.2.1", "yargs": "11.1.0", - "yargs-parser": "^8.0.0" + "yargs-parser": "8.1.0" }, "dependencies": { "align-text": { "version": "0.1.4", "bundled": true, + "dev": true, "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" } }, "amdefine": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "bundled": true, + "dev": true }, "ansi-styles": { "version": "2.2.1", - "bundled": true + "bundled": true, + "dev": true }, "append-transform": { "version": "0.4.0", "bundled": true, + "dev": true, "requires": { - "default-require-extensions": "^1.0.0" + "default-require-extensions": "1.0.0" } }, "archy": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "arr-diff": { "version": "4.0.0", - "bundled": true + "bundled": true, + "dev": true }, "arr-flatten": { "version": "1.1.0", - "bundled": true + "bundled": true, + "dev": true }, "arr-union": { "version": "3.1.0", - "bundled": true + "bundled": true, + "dev": true }, "array-unique": { "version": "0.3.2", - "bundled": true + "bundled": true, + "dev": true }, "arrify": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "assign-symbols": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "async": { "version": "1.5.2", - "bundled": true + "bundled": true, + "dev": true }, "atob": { "version": "2.1.1", - "bundled": true + "bundled": true, + "dev": true }, "babel-code-frame": { "version": "6.26.0", "bundled": true, + "dev": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" } }, "babel-generator": { "version": "6.26.1", "bundled": true, + "dev": true, "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.10", + "source-map": "0.5.7", + "trim-right": "1.0.1" } }, "babel-messages": { "version": "6.23.0", "bundled": true, + "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-runtime": { "version": "6.26.0", "bundled": true, + "dev": true, "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "core-js": "2.5.6", + "regenerator-runtime": "0.11.1" } }, "babel-template": { "version": "6.26.0", "bundled": true, + "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.10" } }, "babel-traverse": { "version": "6.26.0", "bundled": true, + "dev": true, "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.4", + "lodash": "4.17.10" } }, "babel-types": { "version": "6.26.0", "bundled": true, + "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.10", + "to-fast-properties": "1.0.3" } }, "babylon": { "version": "6.18.0", - "bundled": true + "bundled": true, + "dev": true }, "balanced-match": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "base": { "version": "0.11.2", "bundled": true, + "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.2.0", - "pascalcase": "^0.1.1" + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" }, "dependencies": { "define-property": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "brace-expansion": { "version": "1.1.11", "bundled": true, + "dev": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, "braces": { "version": "2.3.2", "bundled": true, + "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } }, "builtin-modules": { "version": "1.1.1", - "bundled": true + "bundled": true, + "dev": true }, "cache-base": { "version": "1.0.1", "bundled": true, + "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" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "caching-transform": { "version": "1.0.1", "bundled": true, + "dev": true, "requires": { - "md5-hex": "^1.2.0", - "mkdirp": "^0.5.1", - "write-file-atomic": "^1.1.4" + "md5-hex": "1.3.0", + "mkdirp": "0.5.1", + "write-file-atomic": "1.3.4" } }, "camelcase": { "version": "1.2.1", "bundled": true, + "dev": true, "optional": true }, "center-align": { "version": "0.1.3", "bundled": true, + "dev": true, "optional": true, "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" + "align-text": "0.1.4", + "lazy-cache": "1.0.4" } }, "chalk": { "version": "1.1.3", "bundled": true, + "dev": true, "requires": { - "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" + "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" } }, "class-utils": { "version": "0.3.6", "bundled": true, + "dev": true, "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" }, "dependencies": { "define-property": { "version": "0.2.5", "bundled": true, + "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "cliui": { "version": "2.1.0", "bundled": true, + "dev": true, "optional": true, "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", + "center-align": "0.1.3", + "right-align": "0.1.3", "wordwrap": "0.0.2" }, "dependencies": { "wordwrap": { "version": "0.0.2", "bundled": true, + "dev": true, "optional": true } } }, "code-point-at": { "version": "1.1.0", - "bundled": true + "bundled": true, + "dev": true }, "collection-visit": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "map-visit": "1.0.0", + "object-visit": "1.0.1" } }, "commondir": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "component-emitter": { "version": "1.2.1", - "bundled": true + "bundled": true, + "dev": true }, "concat-map": { "version": "0.0.1", - "bundled": true + "bundled": true, + "dev": true }, "convert-source-map": { "version": "1.5.1", - "bundled": true + "bundled": true, + "dev": true }, "copy-descriptor": { "version": "0.1.1", - "bundled": true + "bundled": true, + "dev": true }, "core-js": { "version": "2.5.6", - "bundled": true + "bundled": true, + "dev": true }, "cross-spawn": { "version": "4.0.2", "bundled": true, + "dev": true, "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "which": "1.3.0" } }, "debug": { "version": "2.6.9", "bundled": true, + "dev": true, "requires": { "ms": "2.0.0" } }, "debug-log": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "decamelize": { "version": "1.2.0", - "bundled": true + "bundled": true, + "dev": true }, "decode-uri-component": { "version": "0.2.0", - "bundled": true + "bundled": true, + "dev": true }, "default-require-extensions": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "strip-bom": "^2.0.0" + "strip-bom": "2.0.0" } }, "define-property": { "version": "2.0.2", "bundled": true, + "dev": true, "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "is-descriptor": "1.0.2", + "isobject": "3.0.1" }, "dependencies": { "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "detect-indent": { "version": "4.0.0", "bundled": true, + "dev": true, "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "error-ex": { "version": "1.3.1", "bundled": true, + "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "escape-string-regexp": { "version": "1.0.5", - "bundled": true + "bundled": true, + "dev": true }, "esutils": { "version": "2.0.2", - "bundled": true + "bundled": true, + "dev": true }, "execa": { "version": "0.7.0", "bundled": true, + "dev": true, "requires": { - "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" + "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" }, "dependencies": { "cross-spawn": { "version": "5.1.0", "bundled": true, + "dev": true, "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.0" } } } @@ -4571,28 +6576,31 @@ "expand-brackets": { "version": "2.1.4", "bundled": true, + "dev": true, "requires": { - "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" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { "version": "0.2.5", "bundled": true, + "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -4600,16 +6608,18 @@ "extend-shallow": { "version": "3.0.2", "bundled": true, + "dev": true, "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { "version": "1.0.1", "bundled": true, + "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -4617,75 +6627,84 @@ "extglob": { "version": "2.0.4", "bundled": true, + "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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "fill-range": { "version": "4.0.0", "bundled": true, + "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -4693,89 +6712,103 @@ "find-cache-dir": { "version": "0.1.1", "bundled": true, + "dev": true, "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" + "commondir": "1.0.1", + "mkdirp": "0.5.1", + "pkg-dir": "1.0.0" } }, "find-up": { "version": "2.1.0", "bundled": true, + "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "for-in": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true }, "foreground-child": { "version": "1.5.6", "bundled": true, + "dev": true, "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" + "cross-spawn": "4.0.2", + "signal-exit": "3.0.2" } }, "fragment-cache": { "version": "0.2.1", "bundled": true, + "dev": true, "requires": { - "map-cache": "^0.2.2" + "map-cache": "0.2.2" } }, "fs.realpath": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "get-caller-file": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true }, "get-stream": { "version": "3.0.0", - "bundled": true + "bundled": true, + "dev": true }, "get-value": { "version": "2.0.6", - "bundled": true + "bundled": true, + "dev": true }, "glob": { "version": "7.1.2", "bundled": true, + "dev": true, "requires": { - "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" + "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" } }, "globals": { "version": "9.18.0", - "bundled": true + "bundled": true, + "dev": true }, "graceful-fs": { "version": "4.1.11", - "bundled": true + "bundled": true, + "dev": true }, "handlebars": { "version": "4.0.11", "bundled": true, + "dev": true, "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" }, "dependencies": { "source-map": { "version": "0.4.4", "bundled": true, + "dev": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } @@ -4783,49 +6816,56 @@ "has-ansi": { "version": "2.0.0", "bundled": true, + "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "has-flag": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "has-value": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "has-values": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { "is-number": { "version": "3.0.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "bundled": true, + "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -4833,198 +6873,231 @@ "kind-of": { "version": "4.0.0", "bundled": true, + "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } }, "hosted-git-info": { "version": "2.6.0", - "bundled": true + "bundled": true, + "dev": true }, "imurmurhash": { "version": "0.1.4", - "bundled": true + "bundled": true, + "dev": true }, "inflight": { "version": "1.0.6", "bundled": true, + "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { "version": "2.0.3", - "bundled": true + "bundled": true, + "dev": true }, "invariant": { "version": "2.2.4", "bundled": true, + "dev": true, "requires": { - "loose-envify": "^1.0.0" + "loose-envify": "1.3.1" } }, "invert-kv": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "is-accessor-descriptor": { "version": "0.1.6", "bundled": true, + "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-arrayish": { "version": "0.2.1", - "bundled": true + "bundled": true, + "dev": true }, "is-buffer": { "version": "1.1.6", - "bundled": true + "bundled": true, + "dev": true }, "is-builtin-module": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-data-descriptor": { "version": "0.1.4", "bundled": true, + "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-descriptor": { "version": "0.1.6", "bundled": true, + "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" }, "dependencies": { "kind-of": { "version": "5.1.0", - "bundled": true + "bundled": true, + "dev": true } } }, "is-extendable": { "version": "0.1.1", - "bundled": true + "bundled": true, + "dev": true }, "is-finite": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "is-number": { "version": "3.0.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-odd": { "version": "2.0.0", "bundled": true, + "dev": true, "requires": { - "is-number": "^4.0.0" + "is-number": "4.0.0" }, "dependencies": { "is-number": { "version": "4.0.0", - "bundled": true + "bundled": true, + "dev": true } } }, "is-plain-object": { "version": "2.0.4", "bundled": true, + "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "is-stream": { "version": "1.1.0", - "bundled": true + "bundled": true, + "dev": true }, "is-utf8": { "version": "0.2.1", - "bundled": true + "bundled": true, + "dev": true }, "is-windows": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true }, "isarray": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "isexe": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true }, "istanbul-lib-coverage": { "version": "1.2.0", - "bundled": true + "bundled": true, + "dev": true }, "istanbul-lib-hook": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { - "append-transform": "^0.4.0" + "append-transform": "0.4.0" } }, "istanbul-lib-instrument": { "version": "1.10.1", "bundled": true, + "dev": true, "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.2.0", - "semver": "^5.3.0" + "babel-generator": "6.26.1", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "istanbul-lib-coverage": "1.2.0", + "semver": "5.5.0" } }, "istanbul-lib-report": { "version": "1.1.3", "bundled": true, + "dev": true, "requires": { - "istanbul-lib-coverage": "^1.1.2", - "mkdirp": "^0.5.1", - "path-parse": "^1.0.5", - "supports-color": "^3.1.2" + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" }, "dependencies": { "supports-color": { "version": "3.2.3", "bundled": true, + "dev": true, "requires": { - "has-flag": "^1.0.0" + "has-flag": "1.0.0" } } } @@ -5032,17 +7105,19 @@ "istanbul-lib-source-maps": { "version": "1.2.3", "bundled": true, + "dev": true, "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^1.1.2", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.1", - "source-map": "^0.5.3" + "debug": "3.1.0", + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" }, "dependencies": { "debug": { "version": "3.1.0", "bundled": true, + "dev": true, "requires": { "ms": "2.0.0" } @@ -5052,180 +7127,207 @@ "istanbul-reports": { "version": "1.4.0", "bundled": true, + "dev": true, "requires": { - "handlebars": "^4.0.3" + "handlebars": "4.0.11" } }, "js-tokens": { "version": "3.0.2", - "bundled": true + "bundled": true, + "dev": true }, "jsesc": { "version": "1.3.0", - "bundled": true + "bundled": true, + "dev": true }, "kind-of": { "version": "3.2.2", "bundled": true, + "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "lazy-cache": { "version": "1.0.4", "bundled": true, + "dev": true, "optional": true }, "lcid": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "load-json-file": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" } }, "locate-path": { "version": "2.0.0", "bundled": true, + "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": { "version": "3.0.0", - "bundled": true + "bundled": true, + "dev": true } } }, "lodash": { "version": "4.17.10", - "bundled": true + "bundled": true, + "dev": true }, "longest": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "loose-envify": { "version": "1.3.1", "bundled": true, + "dev": true, "requires": { - "js-tokens": "^3.0.0" + "js-tokens": "3.0.2" } }, "lru-cache": { "version": "4.1.3", "bundled": true, + "dev": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "map-cache": { "version": "0.2.2", - "bundled": true + "bundled": true, + "dev": true }, "map-visit": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "object-visit": "^1.0.0" + "object-visit": "1.0.1" } }, "md5-hex": { "version": "1.3.0", "bundled": true, + "dev": true, "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "md5-o-matic": { "version": "0.1.1", - "bundled": true + "bundled": true, + "dev": true }, "mem": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "merge-source-map": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { - "source-map": "^0.6.1" + "source-map": "0.6.1" }, "dependencies": { "source-map": { "version": "0.6.1", - "bundled": true + "bundled": true, + "dev": true } } }, "micromatch": { "version": "3.1.10", "bundled": true, + "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "mimic-fn": { "version": "1.2.0", - "bundled": true + "bundled": true, + "dev": true }, "minimatch": { "version": "3.0.4", "bundled": true, + "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { "version": "0.0.8", - "bundled": true + "bundled": true, + "dev": true }, "mixin-deep": { "version": "1.3.1", "bundled": true, + "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": { "version": "1.0.1", "bundled": true, + "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -5233,85 +7335,97 @@ "mkdirp": { "version": "0.5.1", "bundled": true, + "dev": true, "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "nanomatch": { "version": "1.2.9", "bundled": true, + "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-odd": "^2.0.0", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-odd": "2.0.0", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true + "bundled": true, + "dev": true }, "array-unique": { "version": "0.3.2", - "bundled": true + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "normalize-package-data": { "version": "2.4.0", "bundled": true, + "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.6.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" } }, "npm-run-path": { "version": "2.0.2", "bundled": true, + "dev": true, "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "object-assign": { "version": "4.1.1", - "bundled": true + "bundled": true, + "dev": true }, "object-copy": { "version": "0.1.0", "bundled": true, + "dev": true, "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" }, "dependencies": { "define-property": { "version": "0.2.5", "bundled": true, + "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -5319,277 +7433,323 @@ "object-visit": { "version": "1.0.1", "bundled": true, + "dev": true, "requires": { - "isobject": "^3.0.0" + "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "object.pick": { "version": "1.3.0", "bundled": true, + "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "once": { "version": "1.4.0", "bundled": true, + "dev": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "optimist": { "version": "0.6.1", "bundled": true, + "dev": true, "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" + "minimist": "0.0.8", + "wordwrap": "0.0.3" } }, "os-homedir": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true }, "os-locale": { "version": "2.1.0", "bundled": true, + "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" } }, "p-finally": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "p-limit": { "version": "1.2.0", "bundled": true, + "dev": true, "requires": { - "p-try": "^1.0.0" + "p-try": "1.0.0" } }, "p-locate": { "version": "2.0.0", "bundled": true, + "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.2.0" } }, "p-try": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "parse-json": { "version": "2.2.0", "bundled": true, + "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.1" } }, "pascalcase": { "version": "0.1.1", - "bundled": true + "bundled": true, + "dev": true }, "path-exists": { "version": "2.1.0", "bundled": true, + "dev": true, "requires": { - "pinkie-promise": "^2.0.0" + "pinkie-promise": "2.0.1" } }, "path-is-absolute": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "path-key": { "version": "2.0.1", - "bundled": true + "bundled": true, + "dev": true }, "path-parse": { "version": "1.0.5", - "bundled": true + "bundled": true, + "dev": true }, "path-type": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "pify": { "version": "2.3.0", - "bundled": true + "bundled": true, + "dev": true }, "pinkie": { "version": "2.0.4", - "bundled": true + "bundled": true, + "dev": true }, "pinkie-promise": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "pkg-dir": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "find-up": "^1.0.0" + "find-up": "1.1.2" }, "dependencies": { "find-up": { "version": "1.1.2", "bundled": true, + "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } }, "posix-character-classes": { "version": "0.1.1", - "bundled": true + "bundled": true, + "dev": true }, "pseudomap": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true }, "read-pkg": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" } }, "read-pkg-up": { "version": "1.0.1", "bundled": true, + "dev": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "find-up": "1.1.2", + "read-pkg": "1.1.0" }, "dependencies": { "find-up": { "version": "1.1.2", "bundled": true, + "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } }, "regenerator-runtime": { "version": "0.11.1", - "bundled": true + "bundled": true, + "dev": true }, "regex-not": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" } }, "repeat-element": { "version": "1.1.2", - "bundled": true + "bundled": true, + "dev": true }, "repeat-string": { "version": "1.6.1", - "bundled": true + "bundled": true, + "dev": true }, "repeating": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { - "is-finite": "^1.0.0" + "is-finite": "1.0.2" } }, "require-directory": { "version": "2.1.1", - "bundled": true + "bundled": true, + "dev": true }, "require-main-filename": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "resolve-from": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "resolve-url": { "version": "0.2.1", - "bundled": true + "bundled": true, + "dev": true }, "ret": { "version": "0.1.15", - "bundled": true + "bundled": true, + "dev": true }, "right-align": { "version": "0.1.3", "bundled": true, + "dev": true, "optional": true, "requires": { - "align-text": "^0.1.1" + "align-text": "0.1.4" } }, "rimraf": { "version": "2.6.2", "bundled": true, + "dev": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "safe-regex": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { - "ret": "~0.1.10" + "ret": "0.1.15" } }, "semver": { "version": "5.5.0", - "bundled": true + "bundled": true, + "dev": true }, "set-blocking": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "set-value": { "version": "2.0.0", "bundled": true, + "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -5597,48 +7757,55 @@ "shebang-command": { "version": "1.2.0", "bundled": true, + "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "signal-exit": { "version": "3.0.2", - "bundled": true + "bundled": true, + "dev": true }, "slide": { "version": "1.1.6", - "bundled": true + "bundled": true, + "dev": true }, "snapdragon": { "version": "0.8.2", "bundled": true, + "dev": true, "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "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": "3.1.0" }, "dependencies": { "define-property": { "version": "0.2.5", "bundled": true, + "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -5646,134 +7813,153 @@ "snapdragon-node": { "version": "2.1.1", "bundled": true, + "dev": true, "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" }, "dependencies": { "define-property": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "snapdragon-util": { "version": "3.0.1", "bundled": true, + "dev": true, "requires": { - "kind-of": "^3.2.0" + "kind-of": "3.2.2" } }, "source-map": { "version": "0.5.7", - "bundled": true + "bundled": true, + "dev": true }, "source-map-resolve": { "version": "0.5.1", "bundled": true, + "dev": true, "requires": { - "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" + "atob": "2.1.1", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" } }, "source-map-url": { "version": "0.4.0", - "bundled": true + "bundled": true, + "dev": true }, "spawn-wrap": { "version": "1.4.2", "bundled": true, + "dev": true, "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" + "foreground-child": "1.5.6", + "mkdirp": "0.5.1", + "os-homedir": "1.0.2", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "which": "1.3.0" } }, "spdx-correct": { "version": "3.0.0", "bundled": true, + "dev": true, "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, "spdx-exceptions": { "version": "2.1.0", - "bundled": true + "bundled": true, + "dev": true }, "spdx-expression-parse": { "version": "3.0.0", "bundled": true, + "dev": true, "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" } }, "spdx-license-ids": { "version": "3.0.0", - "bundled": true + "bundled": true, + "dev": true }, "split-string": { "version": "3.1.0", "bundled": true, + "dev": true, "requires": { - "extend-shallow": "^3.0.0" + "extend-shallow": "3.0.2" } }, "static-extend": { "version": "0.1.2", "bundled": true, + "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": { "version": "0.2.5", "bundled": true, + "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -5781,20 +7967,23 @@ "string-width": { "version": "2.1.1", "bundled": true, + "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" }, "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true + "bundled": true, + "dev": true }, "strip-ansi": { "version": "4.0.0", "bundled": true, + "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -5802,65 +7991,74 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, + "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-bom": { "version": "2.0.0", "bundled": true, + "dev": true, "requires": { - "is-utf8": "^0.2.0" + "is-utf8": "0.2.1" } }, "strip-eof": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "supports-color": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "test-exclude": { "version": "4.2.1", "bundled": true, + "dev": true, "requires": { - "arrify": "^1.0.1", - "micromatch": "^3.1.8", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" + "arrify": "1.0.1", + "micromatch": "3.1.10", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" }, "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true + "bundled": true, + "dev": true }, "array-unique": { "version": "0.3.2", - "bundled": true + "bundled": true, + "dev": true }, "braces": { "version": "2.3.2", "bundled": true, + "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -5868,42 +8066,47 @@ "expand-brackets": { "version": "2.1.4", "bundled": true, + "dev": true, "requires": { - "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" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { "version": "0.2.5", "bundled": true, + "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { "version": "0.1.6", "bundled": true, + "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "bundled": true, + "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -5911,15 +8114,17 @@ "is-data-descriptor": { "version": "0.1.4", "bundled": true, + "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "bundled": true, + "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -5927,44 +8132,49 @@ "is-descriptor": { "version": "0.1.6", "bundled": true, + "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { "version": "5.1.0", - "bundled": true + "bundled": true, + "dev": true } } }, "extglob": { "version": "2.0.4", "bundled": true, + "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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -5972,18 +8182,20 @@ "fill-range": { "version": "4.0.0", "bundled": true, + "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -5991,131 +8203,147 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-number": { "version": "3.0.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "bundled": true, + "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true }, "micromatch": { "version": "3.1.10", "bundled": true, + "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } } } }, "to-fast-properties": { "version": "1.0.3", - "bundled": true + "bundled": true, + "dev": true }, "to-object-path": { "version": "0.3.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "to-regex": { "version": "3.0.2", "bundled": true, + "dev": true, "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" } }, "to-regex-range": { "version": "2.1.1", "bundled": true, + "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "3.0.0", + "repeat-string": "1.6.1" }, "dependencies": { "is-number": { "version": "3.0.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } } } }, "trim-right": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "uglify-js": { "version": "2.8.29", "bundled": true, + "dev": true, "optional": true, "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" }, "dependencies": { "yargs": { "version": "3.10.0", "bundled": true, + "dev": true, "optional": true, "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", "window-size": "0.1.0" } } @@ -6124,33 +8352,37 @@ "uglify-to-browserify": { "version": "1.0.2", "bundled": true, + "dev": true, "optional": true }, "union-value": { "version": "1.0.0", "bundled": true, + "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": { "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "set-value": { "version": "0.4.3", "bundled": true, + "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" } } } @@ -6158,23 +8390,26 @@ "unset-value": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "has-value": "0.3.1", + "isobject": "3.0.1" }, "dependencies": { "has-value": { "version": "0.3.1", "bundled": true, + "dev": true, "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" }, "dependencies": { "isobject": { "version": "2.1.0", "bundled": true, + "dev": true, "requires": { "isarray": "1.0.0" } @@ -6183,153 +8418,176 @@ }, "has-values": { "version": "0.1.4", - "bundled": true + "bundled": true, + "dev": true }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "urix": { "version": "0.1.0", - "bundled": true + "bundled": true, + "dev": true }, "use": { "version": "3.1.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "^6.0.2" + "kind-of": "6.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "validate-npm-package-license": { "version": "3.0.3", "bundled": true, + "dev": true, "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "which": { "version": "1.3.0", "bundled": true, + "dev": true, "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "window-size": { "version": "0.1.0", "bundled": true, + "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "bundled": true + "bundled": true, + "dev": true }, "wrap-ansi": { "version": "2.1.0", "bundled": true, + "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "string-width": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } }, "wrappy": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true }, "write-file-atomic": { "version": "1.3.4", "bundled": true, + "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" } }, "y18n": { "version": "3.2.1", - "bundled": true + "bundled": true, + "dev": true }, "yallist": { "version": "2.1.2", - "bundled": true + "bundled": true, + "dev": true }, "yargs": { "version": "11.1.0", "bundled": true, + "dev": true, "requires": { - "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": "^9.0.2" + "cliui": "4.1.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": "9.0.2" }, "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true + "bundled": true, + "dev": true }, "camelcase": { "version": "4.1.0", - "bundled": true + "bundled": true, + "dev": true }, "cliui": { "version": "4.1.0", "bundled": true, + "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" } }, "strip-ansi": { "version": "4.0.0", "bundled": true, + "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } }, "yargs-parser": { "version": "9.0.2", "bundled": true, + "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" } } } @@ -6337,13 +8595,15 @@ "yargs-parser": { "version": "8.1.0", "bundled": true, + "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" }, "dependencies": { "camelcase": { "version": "4.1.0", - "bundled": true + "bundled": true, + "dev": true } } } @@ -6375,8 +8635,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "optional": true, "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" + "for-own": "0.1.5", + "is-extendable": "0.1.1" } }, "once": { @@ -6384,7 +8644,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "onetime": { @@ -6392,7 +8652,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "optionator": { @@ -6400,12 +8660,12 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" } }, "os-homedir": { @@ -6418,9 +8678,9 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "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" } }, "os-tmpdir": { @@ -6433,9 +8693,9 @@ "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", "requires": { - "graceful-fs": "^4.1.4", - "mkdirp": "^0.5.1", - "object-assign": "^4.1.0" + "graceful-fs": "4.1.11", + "mkdirp": "0.5.1", + "object-assign": "4.1.1" } }, "p-finally": { @@ -6448,7 +8708,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "requires": { - "p-try": "^1.0.0" + "p-try": "1.0.0" } }, "p-locate": { @@ -6456,7 +8716,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.3.0" } }, "p-try": { @@ -6470,10 +8730,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "optional": true, "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" } }, "parse-json": { @@ -6481,7 +8741,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.2" } }, "parseqs": { @@ -6489,7 +8749,7 @@ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "requires": { - "better-assert": "~1.0.0" + "better-assert": "1.0.2" } }, "parseuri": { @@ -6497,7 +8757,7 @@ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "requires": { - "better-assert": "~1.0.0" + "better-assert": "1.0.2" } }, "path-exists": { @@ -6547,7 +8807,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { - "pify": "^2.0.0" + "pify": "2.3.0" }, "dependencies": { "pify": { @@ -6568,11 +8828,11 @@ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ripemd160": "2.0.2", + "safe-buffer": "5.1.2", + "sha.js": "2.4.11" } }, "pify": { @@ -6590,7 +8850,7 @@ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "pkg-conf": { @@ -6598,8 +8858,8 @@ "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", "requires": { - "find-up": "^2.0.0", - "load-json-file": "^4.0.0" + "find-up": "2.1.0", + "load-json-file": "4.0.0" }, "dependencies": { "load-json-file": { @@ -6607,10 +8867,10 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.11", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" } }, "parse-json": { @@ -6618,8 +8878,8 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" } } } @@ -6629,9 +8889,9 @@ "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=", "requires": { - "debug-log": "^1.0.0", - "find-root": "^1.0.0", - "xtend": "^4.0.1" + "debug-log": "1.0.1", + "find-root": "1.1.0", + "xtend": "4.0.1" } }, "pkg-dir": { @@ -6639,7 +8899,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "requires": { - "find-up": "^1.0.0" + "find-up": "1.1.2" }, "dependencies": { "find-up": { @@ -6647,8 +8907,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } }, "path-exists": { @@ -6656,7 +8916,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "requires": { - "pinkie-promise": "^2.0.0" + "pinkie-promise": "2.0.1" } } } @@ -6702,8 +8962,8 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" + "loose-envify": "1.4.0", + "object-assign": "4.1.1" } }, "pseudomap": { @@ -6716,7 +8976,7 @@ "resolved": "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", "integrity": "sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=", "requires": { - "bitcoin-ops": "^1.3.0" + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" } }, "qrcode": { @@ -6724,11 +8984,11 @@ "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.2.0.tgz", "integrity": "sha512-wZK0Z0eYmOUDP2tOGzmLdeBn5Npa+4wms9GdvzH7HrywvGUq/Stz0BKUhW4DfmBf1PSrm9dNfdnVDq683Zxvag==", "requires": { - "can-promise": "^0.0.1", - "dijkstrajs": "^1.0.1", - "isarray": "^2.0.1", - "pngjs": "^3.3.0", - "yargs": "^8.0.2" + "can-promise": "0.0.1", + "dijkstrajs": "1.0.1", + "isarray": "2.0.4", + "pngjs": "3.3.3", + "yargs": "8.0.2" }, "dependencies": { "isarray": { @@ -6749,9 +9009,9 @@ "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", "optional": true, "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" + "is-number": "4.0.0", + "kind-of": "6.0.2", + "math-random": "1.0.1" }, "dependencies": { "is-number": { @@ -6773,7 +9033,7 @@ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "requires": { - "safe-buffer": "^5.1.0" + "safe-buffer": "5.1.2" } }, "read-pkg": { @@ -6781,9 +9041,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" } }, "read-pkg-up": { @@ -6791,8 +9051,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" + "find-up": "2.1.0", + "read-pkg": "2.0.0" } }, "readable-stream": { @@ -6800,13 +9060,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "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" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.2", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" }, "dependencies": { "inherits": { @@ -6822,10 +9082,10 @@ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "optional": true, "requires": { - "graceful-fs": "^4.1.2", - "minimatch": "^3.0.2", - "readable-stream": "^2.0.2", - "set-immediate-shim": "^1.0.1" + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.6", + "set-immediate-shim": "1.0.1" } }, "regenerate": { @@ -6843,9 +9103,9 @@ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "requires": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "private": "0.1.8" } }, "regex-cache": { @@ -6854,7 +9114,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "optional": true, "requires": { - "is-equal-shallow": "^0.1.3" + "is-equal-shallow": "0.1.3" } }, "regexpu-core": { @@ -6862,9 +9122,9 @@ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" + "regenerate": "1.4.0", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" } }, "regjsgen": { @@ -6877,7 +9137,7 @@ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "requires": { - "jsesc": "~0.5.0" + "jsesc": "0.5.0" }, "dependencies": { "jsesc": { @@ -6908,7 +9168,7 @@ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "requires": { - "is-finite": "^1.0.0" + "is-finite": "1.0.2" } }, "repl.history": { @@ -6931,8 +9191,8 @@ "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" + "caller-path": "0.1.0", + "resolve-from": "1.0.1" } }, "requires-port": { @@ -6945,7 +9205,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "requires": { - "path-parse": "^1.0.5" + "path-parse": "1.0.5" } }, "resolve-from": { @@ -6958,8 +9218,8 @@ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "onetime": "2.0.1", + "signal-exit": "3.0.2" } }, "resumer": { @@ -6967,7 +9227,7 @@ "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", "requires": { - "through": "~2.3.4" + "through": "2.3.8" } }, "rimraf": { @@ -6975,7 +9235,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "ripemd160": { @@ -6983,8 +9243,8 @@ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "hash-base": "3.0.4", + "inherits": "2.0.1" } }, "run-async": { @@ -6992,7 +9252,7 @@ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "requires": { - "is-promise": "^2.1.0" + "is-promise": "2.1.0" } }, "run-parallel": { @@ -7010,7 +9270,7 @@ "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "requires": { - "rx-lite": "*" + "rx-lite": "4.0.8" } }, "safe-buffer": { @@ -7034,7 +9294,7 @@ "resolved": "https://registry.npmjs.org/satoshi-bitcoin/-/satoshi-bitcoin-1.0.4.tgz", "integrity": "sha1-0AK2dwddXLvywhGo3zJUvN9QseQ=", "requires": { - "big.js": "^3.1.3" + "big.js": "3.2.0" } }, "scryptsy": { @@ -7047,14 +9307,14 @@ "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.5.0.tgz", "integrity": "sha512-e5QIJl8W7Y4tT6LHffVcZAxJjvpgE5Owawv6/XCYPQljE9aP2NFFddQ8OYMKhdLshNu88FfL3qCN3/xYkXGRsA==", "requires": { - "bindings": "^1.2.1", - "bip66": "^1.1.3", - "bn.js": "^4.11.3", - "create-hash": "^1.1.2", - "drbg.js": "^1.0.1", - "elliptic": "^6.2.3", - "nan": "^2.2.1", - "safe-buffer": "^5.1.0" + "bindings": "1.3.0", + "bip66": "1.1.5", + "bn.js": "4.11.8", + "create-hash": "1.2.0", + "drbg.js": "1.0.1", + "elliptic": "6.4.0", + "nan": "2.10.0", + "safe-buffer": "5.1.2" } }, "semver": { @@ -7078,8 +9338,8 @@ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "shebang-command": { @@ -7087,7 +9347,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -7106,13 +9366,13 @@ "integrity": "sha512-trdx+mB0VBBgoYucy6a9L7/jfQOmvGeaKZT4OOJ+lPAtI8623xyGr8wLiE4eojzBS8G9yXbhx42GHUOVLr4X2w==", "dev": true, "requires": { - "@sinonjs/formatio": "^2.0.0", - "diff": "^3.1.0", - "lodash.get": "^4.4.2", - "lolex": "^2.2.0", - "nise": "^1.2.0", - "supports-color": "^5.1.0", - "type-detect": "^4.0.5" + "@sinonjs/formatio": "2.0.0", + "diff": "3.5.0", + "lodash.get": "4.4.2", + "lolex": "2.7.1", + "nise": "1.4.2", + "supports-color": "5.4.0", + "type-detect": "4.0.8" }, "dependencies": { "supports-color": { @@ -7121,7 +9381,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -7136,7 +9396,7 @@ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "requires": { - "is-fullwidth-code-point": "^2.0.0" + "is-fullwidth-code-point": "2.0.0" }, "dependencies": { "is-fullwidth-code-point": { @@ -7151,12 +9411,12 @@ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", "requires": { - "debug": "~3.1.0", - "engine.io": "~3.2.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", + "debug": "3.1.0", + "engine.io": "3.2.0", + "has-binary2": "1.0.3", + "socket.io-adapter": "1.1.1", "socket.io-client": "2.1.1", - "socket.io-parser": "~3.2.0" + "socket.io-parser": "3.2.0" } }, "socket.io-adapter": { @@ -7173,15 +9433,15 @@ "base64-arraybuffer": "0.1.5", "component-bind": "1.0.0", "component-emitter": "1.2.1", - "debug": "~3.1.0", - "engine.io-client": "~3.2.0", - "has-binary2": "~1.0.2", + "debug": "3.1.0", + "engine.io-client": "3.2.1", + "has-binary2": "1.0.3", "has-cors": "1.1.0", "indexof": "0.0.1", "object-component": "0.0.3", "parseqs": "0.0.5", "parseuri": "0.0.5", - "socket.io-parser": "~3.2.0", + "socket.io-parser": "3.2.0", "to-array": "0.1.4" } }, @@ -7191,7 +9451,7 @@ "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", "requires": { "component-emitter": "1.2.1", - "debug": "~3.1.0", + "debug": "3.1.0", "isarray": "2.0.1" }, "dependencies": { @@ -7212,7 +9472,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "requires": { - "source-map": "^0.5.6" + "source-map": "0.5.7" } }, "spdx-correct": { @@ -7220,8 +9480,8 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, "spdx-exceptions": { @@ -7234,8 +9494,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" } }, "spdx-license-ids": { @@ -7253,15 +9513,15 @@ "resolved": "https://registry.npmjs.org/standard/-/standard-11.0.1.tgz", "integrity": "sha512-nu0jAcHiSc8H+gJCXeiziMVZNDYi8MuqrYJKxTgjP4xKXZMKm311boqQIzDrYI/ktosltxt2CbDjYQs9ANC8IA==", "requires": { - "eslint": "~4.18.0", + "eslint": "4.18.2", "eslint-config-standard": "11.0.0", "eslint-config-standard-jsx": "5.0.0", - "eslint-plugin-import": "~2.9.0", - "eslint-plugin-node": "~6.0.0", - "eslint-plugin-promise": "~3.7.0", - "eslint-plugin-react": "~7.7.0", - "eslint-plugin-standard": "~3.0.1", - "standard-engine": "~8.0.0" + "eslint-plugin-import": "2.9.0", + "eslint-plugin-node": "6.0.1", + "eslint-plugin-promise": "3.7.0", + "eslint-plugin-react": "7.7.0", + "eslint-plugin-standard": "3.0.1", + "standard-engine": "8.0.1" } }, "standard-engine": { @@ -7269,10 +9529,10 @@ "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-8.0.1.tgz", "integrity": "sha512-LA531C3+nljom/XRvdW/hGPXwmilRkaRkENhO3FAGF1Vtq/WtCXzgmnc5S6vUHHsgv534MRy02C1ikMwZXC+tw==", "requires": { - "deglob": "^2.1.0", - "get-stdin": "^6.0.0", - "minimist": "^1.1.0", - "pkg-conf": "^2.0.0" + "deglob": "2.1.1", + "get-stdin": "6.0.0", + "minimist": "1.2.0", + "pkg-conf": "2.1.0" }, "dependencies": { "minimist": { @@ -7287,8 +9547,8 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "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" }, "dependencies": { "ansi-regex": { @@ -7306,7 +9566,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -7316,9 +9576,9 @@ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.0", - "function-bind": "^1.0.2" + "define-properties": "1.1.2", + "es-abstract": "1.12.0", + "function-bind": "1.1.1" } }, "string_decoder": { @@ -7326,7 +9586,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.2" } }, "strip-ansi": { @@ -7334,7 +9594,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-bom": { @@ -7362,12 +9622,12 @@ "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "requires": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", + "ajv": "5.5.2", + "ajv-keywords": "2.1.1", + "chalk": "2.4.1", + "lodash": "4.17.10", "slice-ansi": "1.0.0", - "string-width": "^2.1.1" + "string-width": "2.1.1" } }, "tape": { @@ -7375,19 +9635,19 @@ "resolved": "https://registry.npmjs.org/tape/-/tape-4.9.1.tgz", "integrity": "sha512-6fKIXknLpoe/Jp4rzHKFPpJUHDHDqn8jus99IfPnHIjyz78HYlefTGD3b5EkbQzuLfaEvmfPK3IolLgq2xT3kw==", "requires": { - "deep-equal": "~1.0.1", - "defined": "~1.0.0", - "for-each": "~0.3.3", - "function-bind": "~1.1.1", - "glob": "~7.1.2", - "has": "~1.0.3", - "inherits": "~2.0.3", - "minimist": "~1.2.0", - "object-inspect": "~1.6.0", - "resolve": "~1.7.1", - "resumer": "~0.0.0", - "string.prototype.trim": "~1.1.2", - "through": "~2.3.8" + "deep-equal": "1.0.1", + "defined": "1.0.0", + "for-each": "0.3.3", + "function-bind": "1.1.1", + "glob": "7.1.2", + "has": "1.0.3", + "inherits": "2.0.3", + "minimist": "1.2.0", + "object-inspect": "1.6.0", + "resolve": "1.7.1", + "resumer": "0.0.0", + "string.prototype.trim": "1.1.2", + "through": "2.3.8" }, "dependencies": { "inherits": { @@ -7405,7 +9665,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", "requires": { - "path-parse": "^1.0.5" + "path-parse": "1.0.5" } } } @@ -7431,8 +9691,8 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" + "readable-stream": "1.0.34", + "xtend": "4.0.1" }, "dependencies": { "isarray": { @@ -7445,10 +9705,10 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", + "core-util-is": "1.0.2", + "inherits": "2.0.1", "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "string_decoder": "0.10.31" } }, "string_decoder": { @@ -7463,7 +9723,7 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "requires": { - "os-tmpdir": "~1.0.2" + "os-tmpdir": "1.0.2" } }, "to-array": { @@ -7481,7 +9741,7 @@ "resolved": "https://registry.npmjs.org/topo/-/topo-1.1.0.tgz", "integrity": "sha1-6ddRYV0buH3IZdsYL6HKCl71NtU=", "requires": { - "hoek": "2.x.x" + "hoek": "2.16.3" } }, "touch": { @@ -7489,7 +9749,7 @@ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", "requires": { - "nopt": "~1.0.10" + "nopt": "1.0.10" } }, "traverse": { @@ -7507,7 +9767,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { - "prelude-ls": "~1.1.2" + "prelude-ls": "1.1.2" } }, "type-detect": { @@ -7564,7 +9824,7 @@ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "requires": { - "user-home": "^1.1.1" + "user-home": "1.1.1" } }, "validate-npm-package-license": { @@ -7572,8 +9832,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "varuint-bitcoin": { @@ -7581,7 +9841,7 @@ "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz", "integrity": "sha512-jCEPG+COU/1Rp84neKTyDJQr478/hAfVp5xxYn09QEH0yBjbmPeMfuuQIrp+BUD83hybtYZKhr5elV3bvdV1bA==", "requires": { - "safe-buffer": "^5.1.1" + "safe-buffer": "5.1.2" } }, "vision": { @@ -7589,10 +9849,10 @@ "resolved": "https://registry.npmjs.org/vision/-/vision-3.0.0.tgz", "integrity": "sha1-GEWEb2wjpvJTXa8woeHnHQukjGI=", "requires": { - "boom": "2.x.x", - "hoek": "^2.9.x", - "items": "^1.1.x", - "joi": "6.x.x" + "boom": "2.10.1", + "hoek": "2.16.3", + "items": "1.1.1", + "joi": "6.10.1" } }, "which": { @@ -7600,7 +9860,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -7613,7 +9873,7 @@ "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", "requires": { - "bs58check": "<3.0.0" + "bs58check": "2.1.2" } }, "window-or-global": { @@ -7631,8 +9891,8 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "string-width": { @@ -7640,9 +9900,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -7657,8 +9917,8 @@ "resolved": "https://registry.npmjs.org/wreck/-/wreck-6.3.0.tgz", "integrity": "sha1-oTaXafB7u2LWo3gzanhx/Hc8dAs=", "requires": { - "boom": "2.x.x", - "hoek": "2.x.x" + "boom": "2.10.1", + "hoek": "2.16.3" } }, "write": { @@ -7666,7 +9926,7 @@ "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "requires": { - "mkdirp": "^0.5.1" + "mkdirp": "0.5.1" } }, "ws": { @@ -7674,9 +9934,9 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" + "async-limiter": "1.0.0", + "safe-buffer": "5.1.2", + "ultron": "1.1.1" } }, "xmlhttprequest-ssl": { @@ -7704,19 +9964,19 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", "requires": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^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": "^7.0.0" + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.3", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.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": "7.0.0" } }, "yargs-parser": { @@ -7724,7 +9984,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" } }, "yeast": { diff --git a/package.json b/package.json index 187bd225..db89a91e 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,11 @@ { "name": "bitbox-cli", - "version": "1.4.7", + "version": "1.4.8", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", "scripts": { - "test": "nyc mocha --timeout 15000 --require babel-core/register", + "test": "nyc mocha --timeout 30000 --require babel-core/register", "build": "babel src/ -d lib/", "postbuild": "cp -R typings/* lib", "flow": "flow" From 60b937b6e40bfff03e2a6731360a3fa29aab2dc4 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Mon, 30 Jul 2018 17:13:56 +0900 Subject: [PATCH 051/480] Version. --- index.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 2ca1b4aa..aab8fcdc 100755 --- a/index.js +++ b/index.js @@ -19,7 +19,7 @@ let corsproxy = require('corsproxy'); let cmd = require('node-cmd'); program - .version('1.4.7'); + .version('1.4.9'); program .command('new ') diff --git a/package.json b/package.json index db89a91e..9346764a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.4.8", + "version": "1.4.9", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", From d231c0a80cba3f9e7a0491f67264f7dc432240bc Mon Sep 17 00:00:00 2001 From: Yuiki <10101661+Yuiki@users.noreply.github.com> Date: Sun, 5 Aug 2018 15:54:03 +0900 Subject: [PATCH 052/480] update AddressUtxoResult object structure --- typings/Address.d.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/typings/Address.d.ts b/typings/Address.d.ts index e57802ca..32949c96 100644 --- a/typings/Address.d.ts +++ b/typings/Address.d.ts @@ -35,7 +35,6 @@ export declare interface AddressDetailsResult { } export declare interface AddressUtxoResult { - address: string; txid: string; vout: number; scriptPubKey: string; @@ -43,6 +42,8 @@ export declare interface AddressUtxoResult { satoshis: number; height: number; confirmations: number; + legacyAddress: string; + cashAddress: string; } export declare interface AddressUnconfirmedResult { From 9cb6ca2c037a07c02bb3ec9b61c642265af01fb6 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 14 Aug 2018 15:10:28 -0700 Subject: [PATCH 053/480] Websockets scaffold. --- index.js | 6 ++++-- lib/Address.d.ts | 3 ++- package.json | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/index.js b/index.js index aab8fcdc..131a9767 100755 --- a/index.js +++ b/index.js @@ -19,11 +19,11 @@ let corsproxy = require('corsproxy'); let cmd = require('node-cmd'); program - .version('1.4.9'); + .version('1.5.0'); program .command('new ') - .option('-s, --scaffold ', 'The framework to use. Options include react, angular, vuejs, nextjs and node.') + .option('-s, --scaffold ', 'The framework to use. Options include react, angular, vuejs, nextjs, node and websockets.') .option('-r, --restURL ', 'The rest URL to use. default: https://rest.bitcoin.com/v1/') .option('-e, --environment ', 'environment of running BITBOX instance. Ex: production, staging. (Default: development)') .description(`create a new BITBOX application`) @@ -51,6 +51,8 @@ program repo = 'https://github.com/Bitcoin-com/bitbox-scaffold-react.git'; } else if(scaffold === 'vue') { repo = 'https://github.com/Bitcoin-com/bitbox-scaffold-vue.git'; + } else if(scaffold === 'websockets') { + repo = 'https://github.com/Bitcoin-com/bitbox-scaffold-websockets.git'; } else { console.log(chalk.red(`Scaffold ${scaffold} not supported`)); process.exit(1) diff --git a/lib/Address.d.ts b/lib/Address.d.ts index e57802ca..32949c96 100644 --- a/lib/Address.d.ts +++ b/lib/Address.d.ts @@ -35,7 +35,6 @@ export declare interface AddressDetailsResult { } export declare interface AddressUtxoResult { - address: string; txid: string; vout: number; scriptPubKey: string; @@ -43,6 +42,8 @@ export declare interface AddressUtxoResult { satoshis: number; height: number; confirmations: number; + legacyAddress: string; + cashAddress: string; } export declare interface AddressUnconfirmedResult { diff --git a/package.json b/package.json index 9346764a..1633aa56 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.4.9", + "version": "1.5.0", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", From 4739c84b193244b00a189f1f179c5187a09aa595 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 14 Aug 2018 16:43:48 -0700 Subject: [PATCH 054/480] Docs --- README.md | 7 +++---- index.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index dfea7138..bffd3ba6 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,13 @@ # `bitbox-cli` -## Command line tool for https://www.bitbox.earth +## Command line tool for https://developer.bitcoin.com/bitbox.html `bitbox-cli` is a utility for creating great [Bitcoin Cash](https://www.bitcoincash.org) applications. If can be used from the command line or from within client/server apps. Extensive documentation available at: -* [General docs](https://www.bitbox.earth/docs/gettingstarted) -* [BITBOX API](https://www.bitbox.earth/bitboxcli/bitcoincash) -* [BITBLOG](https://bigearth.github.io/bitblog/) +* [General docs](https://developer.bitcoin.com) +* [BITBOX API](https://developer.bitcoin.com/bitbox.html) Open Source / Creative Commons Listings diff --git a/index.js b/index.js index 131a9767..58f19896 100755 --- a/index.js +++ b/index.js @@ -19,7 +19,7 @@ let corsproxy = require('corsproxy'); let cmd = require('node-cmd'); program - .version('1.5.0'); + .version('1.5.1'); program .command('new ') diff --git a/package.json b/package.json index 1633aa56..949f0cd9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.5.0", + "version": "1.5.1", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", From 20c352c7ba54e70f07443ee2590106fc3be8903a Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 15 Aug 2018 16:15:47 -0700 Subject: [PATCH 055/480] Stringify array. --- index.js | 2 +- lib/RawTransactions.js | 3 + package-lock.json | 2825 +++++----------------------------------- package.json | 4 +- src/RawTransactions.js | 3 + 5 files changed, 319 insertions(+), 2518 deletions(-) diff --git a/index.js b/index.js index 58f19896..9f6befb9 100755 --- a/index.js +++ b/index.js @@ -19,7 +19,7 @@ let corsproxy = require('corsproxy'); let cmd = require('node-cmd'); program - .version('1.5.1'); + .version('1.5.2'); program .command('new ') diff --git a/lib/RawTransactions.js b/lib/RawTransactions.js index 2786dbc5..8b7267f4 100644 --- a/lib/RawTransactions.js +++ b/lib/RawTransactions.js @@ -95,6 +95,9 @@ var RawTransactions = function () { // Result: // "hex" (string) The transaction hash in hex // + if (typeof hex !== 'string') { + hex = JSON.stringify(hex); + } return _axios2.default.post(this.restURL + 'rawtransactions/sendRawTransaction/' + hex + '?allowhighfees=' + allowhighfees).then(function (response) { return response.data; diff --git a/package-lock.json b/package-lock.json index 4d865fd3..7bd902bc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,129 +1,9 @@ { "name": "bitbox-cli", - "version": "1.4.7", + "version": "1.5.2", "lockfileVersion": 1, "requires": true, "dependencies": { - "@babel/code-frame": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz", - "integrity": "sha1-vXHZsZKvl435FYKdOdQJRFZDmgw=", - "requires": { - "@babel/highlight": "7.0.0-beta.51" - } - }, - "@babel/generator": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.51.tgz", - "integrity": "sha1-bHV1/952HQdIXgS67cA5LG2eMPY=", - "requires": { - "@babel/types": "7.0.0-beta.51", - "jsesc": "2.5.1", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" - }, - "dependencies": { - "jsesc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", - "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=" - } - } - }, - "@babel/helper-function-name": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.51.tgz", - "integrity": "sha1-IbSHSiJ8+Z7K/MMKkDAtpaJkBWE=", - "requires": { - "@babel/helper-get-function-arity": "7.0.0-beta.51", - "@babel/template": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.51.tgz", - "integrity": "sha1-MoGy0EWvlcFyzpGyCCXYXqRnZBE=", - "requires": { - "@babel/types": "7.0.0-beta.51" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.51.tgz", - "integrity": "sha1-imw/ZsTSZTUvwHdIT59ugKUauXg=", - "requires": { - "@babel/types": "7.0.0-beta.51" - } - }, - "@babel/highlight": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.51.tgz", - "integrity": "sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0=", - "requires": { - "chalk": "2.4.1", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } - }, - "@babel/parser": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.0.0-beta.51.tgz", - "integrity": "sha1-J87C30Cd9gr1gnDtj2qlVAnqhvY=" - }, - "@babel/template": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.51.tgz", - "integrity": "sha1-lgKkCuvPNXrpZ34lMu9fyBD1+/8=", - "requires": { - "@babel/code-frame": "7.0.0-beta.51", - "@babel/parser": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51", - "lodash": "4.17.10" - } - }, - "@babel/traverse": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.51.tgz", - "integrity": "sha1-mB2vLOw0emIx06odnhgDsDqqpKg=", - "requires": { - "@babel/code-frame": "7.0.0-beta.51", - "@babel/generator": "7.0.0-beta.51", - "@babel/helper-function-name": "7.0.0-beta.51", - "@babel/helper-split-export-declaration": "7.0.0-beta.51", - "@babel/parser": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51", - "debug": "3.1.0", - "globals": "11.7.0", - "invariant": "2.2.4", - "lodash": "4.17.10" - }, - "dependencies": { - "globals": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", - "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==" - } - } - }, - "@babel/types": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.51.tgz", - "integrity": "sha1-2AK3tUO1g2x3iqaReXq/APPZfqk=", - "requires": { - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "2.0.0" - }, - "dependencies": { - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - } - } - }, "@sinonjs/formatio": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", @@ -134,9 +14,9 @@ } }, "@types/node": { - "version": "10.5.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.4.tgz", - "integrity": "sha512-8TqvB0ReZWwtcd3LXq3YSrBoLyXFgBX/sBZfGye9+YS8zH7/g+i6QRIuiDmwBoTzcQ/pk89nZYTYU4c5akKkzw==", + "version": "10.7.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.7.0.tgz", + "integrity": "sha512-dmYIvoQEZWnyQfgrwPCoxztv/93NYQGEiOoQhuI56rJahv9de6Q2apZl3bufV46YJ0OAXdaktIuw4RIRl4DTeA==", "dev": true }, "abbrev": { @@ -256,7 +136,7 @@ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", "requires": { - "define-properties": "1.1.2", + "define-properties": "1.1.3", "es-abstract": "1.12.0" } }, @@ -319,7 +199,7 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=", "requires": { - "follow-redirects": "1.5.1", + "follow-redirects": "1.5.5", "is-buffer": "1.1.6" } }, @@ -333,7 +213,7 @@ "babel-register": "6.26.0", "babel-runtime": "6.26.0", "chokidar": "1.7.0", - "commander": "2.16.0", + "commander": "2.17.1", "convert-source-map": "1.5.1", "fs-readdir-recursive": "1.1.0", "glob": "7.1.2", @@ -1107,9 +987,9 @@ "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=" }, "bchaddrjs": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.1.tgz", - "integrity": "sha512-esOfL+EnG+qPgqAPl4NxWngDIJIEs35dcV6wU0NP6bxBtc363fYm7xhNtC1BRVagDLSbMNwyI27rkWXwN5i6yg==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.2.tgz", + "integrity": "sha512-W06sUpprptb65JHbu2yFdv8Tg7o2OWpD5n2pMUIhuLOXC5c64eMW7y9Pg0IHd/Qe31e1KwnHT9H1w6Pf9r4Fkg==", "requires": { "bs58check": "2.1.2", "cashaddrjs": "0.2.8" @@ -1129,9 +1009,9 @@ } }, "big-integer": { - "version": "1.6.32", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.32.tgz", - "integrity": "sha512-ljKJdR3wk9thHfLj4DtrNiOSTxvGFaMjWrG4pW75juXC4j7+XuKJVFdg4kgFMYp85PVkO05dFMj2dk2xVsH4xw==" + "version": "1.6.34", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.34.tgz", + "integrity": "sha512-+w6B0Uo0ZvTSzDkXjoBCTNK0oe+aVL+yPi7kwGZm8hd8+Nj1AFPoxoq1Bl/mEu/G/ivOkUc1LRqVR0XeWFUzuA==" }, "big.js": { "version": "3.2.0", @@ -1161,1810 +1041,128 @@ } }, "bip32-utils": { - "version": "github:Bitcoin-com/bip32-utils#6d27e98d15ceb7543f904d7f770d1e39a806e6e8", + "version": "github:Bitcoin-com/bip32-utils#3b6db1115533afd57130783c002889933e027002", "requires": { - "bitbox-cli": "1.4.2", + "bitbox-cli": "1.5.1", "keccak": "1.4.0", - "nyc": "12.0.2", + "nyc": "11.9.0", "standard": "11.0.1", "tape": "4.9.1" }, "dependencies": { - "nyc": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-12.0.2.tgz", - "integrity": "sha1-ikpO1pCWbBHsWH/4fuoMEsl0upk=", - "requires": { - "archy": "1.0.0", - "arrify": "1.0.1", - "caching-transform": "1.0.1", - "convert-source-map": "1.5.1", - "debug-log": "1.0.1", - "default-require-extensions": "1.0.0", - "find-cache-dir": "0.1.1", - "find-up": "2.1.0", - "foreground-child": "1.5.6", - "glob": "7.1.2", - "istanbul-lib-coverage": "1.2.0", - "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "2.3.2", - "istanbul-lib-report": "1.1.3", - "istanbul-lib-source-maps": "1.2.5", - "istanbul-reports": "1.4.1", - "md5-hex": "1.3.0", - "merge-source-map": "1.1.0", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "resolve-from": "2.0.0", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "spawn-wrap": "1.4.2", - "test-exclude": "4.2.1", - "yargs": "11.1.0", - "yargs-parser": "8.1.0" + "bip32-utils": { + "version": "github:Bitcoin-com/bip32-utils#6d27e98d15ceb7543f904d7f770d1e39a806e6e8", + "requires": { + "bitbox-cli": "1.4.2", + "keccak": "1.4.0", + "nyc": "11.9.0", + "standard": "11.0.1", + "tape": "4.9.1" }, "dependencies": { - "align-text": { - "version": "0.1.4", - "bundled": true, - "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" - } - }, - "amdefine": { - "version": "1.0.1", - "bundled": true - }, - "ansi-regex": { - "version": "3.0.0", - "bundled": true - }, - "append-transform": { - "version": "0.4.0", - "bundled": true, - "requires": { - "default-require-extensions": "1.0.0" - } - }, - "archy": { - "version": "1.0.0", - "bundled": true - }, - "arr-diff": { - "version": "4.0.0", - "bundled": true - }, - "arr-flatten": { - "version": "1.1.0", - "bundled": true - }, - "arr-union": { - "version": "3.1.0", - "bundled": true - }, - "array-unique": { - "version": "0.3.2", - "bundled": true - }, - "arrify": { - "version": "1.0.1", - "bundled": true - }, - "assign-symbols": { - "version": "1.0.0", - "bundled": true - }, - "async": { - "version": "1.5.2", - "bundled": true - }, - "atob": { - "version": "2.1.1", - "bundled": true - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true - }, - "base": { - "version": "0.11.2", - "bundled": true, - "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "bundled": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "builtin-modules": { - "version": "1.1.1", - "bundled": true - }, - "cache-base": { - "version": "1.0.1", - "bundled": 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" - } - }, - "caching-transform": { - "version": "1.0.1", - "bundled": true, - "requires": { - "md5-hex": "1.3.0", + "bitbox-cli": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/bitbox-cli/-/bitbox-cli-1.4.2.tgz", + "integrity": "sha512-ilRmgewkTas89uOJmvDyCBFrPyov99wPJOlAEZUgV9H/cFIyRIjLPzqYim7m9N1FHVyorbfxBlsvoIqQRarcow==", + "requires": { + "assert": "1.4.1", + "axios": "0.17.1", + "babel-cli": "6.26.0", + "babel-preset-env": "1.7.0", + "babel-preset-es2015": "6.24.1", + "babel-preset-flow": "6.23.0", + "babel-preset-react": "6.24.1", + "babel-register": "6.26.0", + "bchaddrjs": "0.2.2", + "bigi": "1.4.2", + "bip21": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", + "bip38": "2.0.2", + "bip39": "2.5.0", + "bip66": "1.1.5", + "bip68": "1.0.4", + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", + "bitcoin-txdecoder": "0.0.3", + "bitcoincashjs-lib": "github:Bitcoin-com/bitcoincashjs-lib#0a7fc7cf23551503f57689db4c930b8136db954c", + "bitcoinjs-message": "2.0.0", + "bs58": "4.0.1", + "buffer": "5.2.0", + "chalk": "2.4.1", + "clear": "0.0.1", + "coininfo": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", + "commander": "2.17.1", + "corsproxy": "1.5.0", + "cp-file": "5.0.0", + "ecurve": "1.0.6", + "figlet": "1.2.0", + "git-clone": "0.1.0", + "ini": "1.3.5", "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" - } - }, - "camelcase": { - "version": "1.2.1", - "bundled": true, - "optional": true - }, - "center-align": { - "version": "0.1.3", - "bundled": true, - "optional": true, - "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" - } - }, - "class-utils": { - "version": "0.3.6", - "bundled": true, - "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "cliui": { - "version": "2.1.0", - "bundled": true, - "optional": true, - "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "bundled": true, - "optional": true - } - } - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true - }, - "collection-visit": { - "version": "1.0.0", - "bundled": true, - "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" - } - }, - "commondir": { - "version": "1.0.1", - "bundled": true - }, - "component-emitter": { - "version": "1.2.1", - "bundled": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true - }, - "convert-source-map": { - "version": "1.5.1", - "bundled": true - }, - "copy-descriptor": { - "version": "0.1.1", - "bundled": true - }, - "cross-spawn": { - "version": "4.0.2", - "bundled": true, - "requires": { - "lru-cache": "4.1.3", - "which": "1.3.1" - } - }, - "debug": { - "version": "3.1.0", - "bundled": true, - "requires": { - "ms": "2.0.0" - } - }, - "debug-log": { - "version": "1.0.1", - "bundled": true - }, - "decamelize": { - "version": "1.2.0", - "bundled": true - }, - "decode-uri-component": { - "version": "0.2.0", - "bundled": true - }, - "default-require-extensions": { - "version": "1.0.0", - "bundled": true, - "requires": { - "strip-bom": "2.0.0" - } - }, - "define-property": { - "version": "2.0.2", - "bundled": true, - "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "error-ex": { - "version": "1.3.1", - "bundled": true, - "requires": { - "is-arrayish": "0.2.1" - } - }, - "execa": { - "version": "0.7.0", - "bundled": 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" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "bundled": true, - "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "bundled": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "bundled": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "extend-shallow": { - "version": "3.0.2", - "bundled": true, - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "bundled": true, - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "bundled": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "fill-range": { - "version": "4.0.0", - "bundled": true, - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "find-cache-dir": { - "version": "0.1.1", - "bundled": true, - "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "bundled": true, - "requires": { - "locate-path": "2.0.0" - } - }, - "for-in": { - "version": "1.0.2", - "bundled": true - }, - "foreground-child": { - "version": "1.5.6", - "bundled": true, - "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" - } - }, - "fragment-cache": { - "version": "0.2.1", - "bundled": true, - "requires": { - "map-cache": "0.2.2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true - }, - "get-caller-file": { - "version": "1.0.2", - "bundled": true - }, - "get-stream": { - "version": "3.0.0", - "bundled": true - }, - "get-value": { - "version": "2.0.6", - "bundled": true - }, - "glob": { - "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" - } - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true - }, - "handlebars": { - "version": "4.0.11", - "bundled": true, - "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "bundled": true, - "requires": { - "amdefine": "1.0.1" - } - } - } - }, - "has-value": { - "version": "1.0.0", - "bundled": true, - "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" - } - }, - "has-values": { - "version": "1.0.0", - "bundled": true, - "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "bundled": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "hosted-git-info": { - "version": "2.6.0", - "bundled": true - }, - "imurmurhash": { - "version": "0.1.4", - "bundled": true - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true - }, - "invert-kv": { - "version": "1.0.0", - "bundled": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-arrayish": { - "version": "0.2.1", - "bundled": true - }, - "is-buffer": { - "version": "1.1.6", - "bundled": true - }, - "is-builtin-module": { - "version": "1.0.0", - "bundled": true, - "requires": { - "builtin-modules": "1.1.1" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "bundled": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "bundled": true - } - } - }, - "is-extendable": { - "version": "0.1.1", - "bundled": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "bundled": true - }, - "is-number": { - "version": "3.0.0", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-odd": { - "version": "2.0.0", - "bundled": true, - "requires": { - "is-number": "4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "bundled": true - } - } - }, - "is-plain-object": { - "version": "2.0.4", - "bundled": true, - "requires": { - "isobject": "3.0.1" - } - }, - "is-stream": { - "version": "1.1.0", - "bundled": true - }, - "is-utf8": { - "version": "0.2.1", - "bundled": true - }, - "is-windows": { - "version": "1.0.2", - "bundled": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true - }, - "isexe": { - "version": "2.0.0", - "bundled": true - }, - "isobject": { - "version": "3.0.1", - "bundled": true - }, - "istanbul-lib-coverage": { - "version": "1.2.0", - "bundled": true - }, - "istanbul-lib-hook": { - "version": "1.1.0", - "bundled": true, - "requires": { - "append-transform": "0.4.0" - } - }, - "istanbul-lib-report": { - "version": "1.1.3", - "bundled": true, - "requires": { - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "bundled": true - }, - "supports-color": { - "version": "3.2.3", - "bundled": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "1.2.5", - "bundled": true, - "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" - } - }, - "istanbul-reports": { - "version": "1.4.1", - "bundled": true, - "requires": { - "handlebars": "4.0.11" - } - }, - "kind-of": { - "version": "3.2.2", - "bundled": true, - "requires": { - "is-buffer": "1.1.6" - } - }, - "lazy-cache": { - "version": "1.0.4", - "bundled": true, - "optional": true - }, - "lcid": { - "version": "1.0.0", - "bundled": true, - "requires": { - "invert-kv": "1.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "bundled": true, - "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" - } - }, - "locate-path": { - "version": "2.0.0", - "bundled": true, - "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "bundled": true - } - } - }, - "longest": { - "version": "1.0.1", - "bundled": true - }, - "lru-cache": { - "version": "4.1.3", - "bundled": true, - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } - }, - "map-cache": { - "version": "0.2.2", - "bundled": true - }, - "map-visit": { - "version": "1.0.0", - "bundled": true, - "requires": { - "object-visit": "1.0.1" - } - }, - "md5-hex": { - "version": "1.3.0", - "bundled": true, - "requires": { - "md5-o-matic": "0.1.1" - } - }, - "md5-o-matic": { - "version": "0.1.1", - "bundled": true - }, - "mem": { - "version": "1.1.0", - "bundled": true, - "requires": { - "mimic-fn": "1.2.0" - } - }, - "merge-source-map": { - "version": "1.1.0", - "bundled": true, - "requires": { - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true - } - } - }, - "micromatch": { - "version": "3.1.10", - "bundled": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "mimic-fn": { - "version": "1.2.0", - "bundled": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true - }, - "mixin-deep": { - "version": "1.3.1", - "bundled": true, - "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "bundled": true, - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true - }, - "nanomatch": { - "version": "1.2.9", - "bundled": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "normalize-package-data": { - "version": "2.4.0", - "bundled": true, - "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" - } - }, - "npm-run-path": { - "version": "2.0.2", - "bundled": true, - "requires": { - "path-key": "2.0.1" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true - }, - "object-copy": { - "version": "0.1.0", - "bundled": true, - "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "object-visit": { - "version": "1.0.1", - "bundled": true, - "requires": { - "isobject": "3.0.1" - } - }, - "object.pick": { - "version": "1.3.0", - "bundled": true, - "requires": { - "isobject": "3.0.1" - } - }, - "once": { - "version": "1.4.0", - "bundled": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "optimist": { - "version": "0.6.1", - "bundled": true, - "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true - }, - "os-locale": { - "version": "2.1.0", - "bundled": true, - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - } - }, - "p-finally": { - "version": "1.0.0", - "bundled": true - }, - "p-limit": { - "version": "1.2.0", - "bundled": true, - "requires": { - "p-try": "1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "bundled": true, - "requires": { - "p-limit": "1.2.0" - } - }, - "p-try": { - "version": "1.0.0", - "bundled": true - }, - "parse-json": { - "version": "2.2.0", - "bundled": true, - "requires": { - "error-ex": "1.3.1" - } - }, - "pascalcase": { - "version": "0.1.1", - "bundled": true - }, - "path-exists": { - "version": "2.1.0", - "bundled": true, - "requires": { - "pinkie-promise": "2.0.1" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true - }, - "path-key": { - "version": "2.0.1", - "bundled": true - }, - "path-parse": { - "version": "1.0.5", - "bundled": true - }, - "path-type": { - "version": "1.1.0", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - } - }, - "pify": { - "version": "2.3.0", - "bundled": true - }, - "pinkie": { - "version": "2.0.4", - "bundled": true - }, - "pinkie-promise": { - "version": "2.0.1", - "bundled": true, - "requires": { - "pinkie": "2.0.4" - } - }, - "pkg-dir": { - "version": "1.0.0", - "bundled": true, - "requires": { - "find-up": "1.1.2" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "bundled": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "bundled": true - }, - "pseudomap": { - "version": "1.0.2", - "bundled": true - }, - "read-pkg": { - "version": "1.1.0", - "bundled": true, - "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "bundled": true, - "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "bundled": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - } - } - }, - "regex-not": { - "version": "1.0.2", - "bundled": true, - "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" - } - }, - "repeat-element": { - "version": "1.1.2", - "bundled": true - }, - "repeat-string": { - "version": "1.6.1", - "bundled": true - }, - "require-directory": { - "version": "2.1.1", - "bundled": true - }, - "require-main-filename": { - "version": "1.0.1", - "bundled": true - }, - "resolve-from": { - "version": "2.0.0", - "bundled": true - }, - "resolve-url": { - "version": "0.2.1", - "bundled": true - }, - "ret": { - "version": "0.1.15", - "bundled": true - }, - "right-align": { - "version": "0.1.3", - "bundled": true, - "optional": true, - "requires": { - "align-text": "0.1.4" - } - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "requires": { - "glob": "7.1.2" - } - }, - "safe-regex": { - "version": "1.1.0", - "bundled": true, - "requires": { - "ret": "0.1.15" - } - }, - "semver": { - "version": "5.5.0", - "bundled": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true - }, - "set-value": { - "version": "2.0.0", - "bundled": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "shebang-command": { - "version": "1.2.0", - "bundled": true, - "requires": { - "shebang-regex": "1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "bundled": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true - }, - "slide": { - "version": "1.1.6", - "bundled": true - }, - "snapdragon": { - "version": "0.8.2", - "bundled": 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.2", - "use": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "bundled": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "bundled": true, - "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "source-map": { - "version": "0.5.7", - "bundled": true - }, - "source-map-resolve": { - "version": "0.5.2", - "bundled": true, - "requires": { - "atob": "2.1.1", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "bundled": true - }, - "spawn-wrap": { - "version": "1.4.2", - "bundled": true, - "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.1" - } - }, - "spdx-correct": { - "version": "3.0.0", - "bundled": true, - "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "bundled": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "bundled": true, - "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "bundled": true - }, - "split-string": { - "version": "3.1.0", - "bundled": true, - "requires": { - "extend-shallow": "3.0.2" - } - }, - "static-extend": { - "version": "0.1.2", - "bundled": true, - "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "string-width": { - "version": "2.1.1", - "bundled": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "requires": { - "ansi-regex": "3.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "bundled": true, - "requires": { - "is-utf8": "0.2.1" - } - }, - "strip-eof": { - "version": "1.0.0", - "bundled": true - }, - "test-exclude": { - "version": "4.2.1", - "bundled": true, - "requires": { - "arrify": "1.0.1", - "micromatch": "3.1.10", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" - } - }, - "to-object-path": { - "version": "0.3.0", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "to-regex": { - "version": "3.0.2", - "bundled": true, - "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "bundled": true, - "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" - } - }, - "uglify-js": { - "version": "2.8.29", - "bundled": true, - "optional": true, - "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" - }, - "dependencies": { - "yargs": { - "version": "3.10.0", - "bundled": true, - "optional": true, - "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" - } - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "union-value": { - "version": "1.0.0", - "bundled": true, - "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "set-value": { - "version": "0.4.3", - "bundled": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" - } - } - } - }, - "unset-value": { - "version": "1.0.0", - "bundled": true, - "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "bundled": true, - "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "bundled": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "bundled": true - } - } - }, - "urix": { - "version": "0.1.0", - "bundled": true - }, - "use": { - "version": "3.1.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "validate-npm-package-license": { - "version": "3.0.3", - "bundled": true, - "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" - } - }, - "which": { - "version": "1.3.1", - "bundled": true, - "requires": { - "isexe": "2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "bundled": true - }, - "window-size": { - "version": "0.1.0", - "bundled": true, - "optional": true - }, - "wordwrap": { - "version": "0.0.3", - "bundled": true - }, - "wrap-ansi": { - "version": "2.1.0", - "bundled": true, - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "bundled": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "string-width": { - "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" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "requires": { - "ansi-regex": "2.1.1" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true - }, - "write-file-atomic": { - "version": "1.3.4", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" - } - }, - "y18n": { - "version": "3.2.1", - "bundled": true - }, - "yallist": { - "version": "2.1.2", - "bundled": true - }, - "yargs": { - "version": "11.1.0", - "bundled": true, - "requires": { - "cliui": "4.1.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": "9.0.2" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "bundled": true - }, - "cliui": { - "version": "4.1.0", - "bundled": true, - "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" - } - }, - "yargs-parser": { - "version": "9.0.2", - "bundled": true, - "requires": { - "camelcase": "4.1.0" - } - } - } - }, - "yargs-parser": { - "version": "8.1.0", - "bundled": true, - "requires": { - "camelcase": "4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "bundled": true - } + "mocha": "5.2.0", + "node-cmd": "3.0.0", + "node-emoji": "1.8.1", + "qrcode": "1.2.2", + "randombytes": "2.0.6", + "repl.history": "0.1.4", + "safe-buffer": "5.1.2", + "satoshi-bitcoin": "1.0.4", + "socket.io": "2.1.1", + "socket.io-client": "2.1.1", + "touch": "3.1.0", + "wif": "2.0.6" } } } + }, + "bitbox-cli": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/bitbox-cli/-/bitbox-cli-1.5.1.tgz", + "integrity": "sha512-Qb1uxmvjgxglmNyVc966EVMCsPMJ7KZN5RbbC82a1xtfsv01S6lvaG6hfwWLsQfO2NPOoSnhIVpjYMBN4c5RmA==", + "requires": { + "assert": "1.4.1", + "axios": "0.17.1", + "babel-cli": "6.26.0", + "babel-preset-env": "1.7.0", + "babel-preset-es2015": "6.24.1", + "babel-preset-flow": "6.23.0", + "babel-preset-react": "6.24.1", + "babel-register": "6.26.0", + "bchaddrjs": "0.2.2", + "bigi": "1.4.2", + "bip21": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", + "bip38": "2.0.2", + "bip39": "2.5.0", + "bip66": "1.1.5", + "bip68": "1.0.4", + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", + "bitcoin-txdecoder": "0.0.3", + "bitcoincashjs-lib": "github:Bitcoin-com/bitcoincashjs-lib#0a7fc7cf23551503f57689db4c930b8136db954c", + "bitcoinjs-message": "2.0.0", + "bs58": "4.0.1", + "buffer": "5.2.0", + "chalk": "2.4.1", + "clear": "0.0.1", + "coininfo": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", + "commander": "2.17.1", + "corsproxy": "1.5.0", + "cp-file": "5.0.0", + "ecurve": "1.0.6", + "figlet": "1.2.0", + "git-clone": "0.1.0", + "ini": "1.3.5", + "mkdirp": "0.5.1", + "mocha": "5.2.0", + "node-cmd": "3.0.0", + "node-emoji": "1.8.1", + "qrcode": "1.2.2", + "randombytes": "2.0.6", + "repl.history": "0.1.4", + "safe-buffer": "5.1.2", + "satoshi-bitcoin": "1.0.4", + "socket.io": "2.1.1", + "socket.io-client": "2.1.1", + "touch": "3.1.0", + "wif": "2.0.6" + } } } }, @@ -3002,61 +1200,10 @@ "safe-buffer": "5.1.2" } }, - "bip68": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/bip68/-/bip68-1.0.4.tgz", - "integrity": "sha512-O1htyufFTYy3EO0JkHg2CLykdXEtV2ssqw47Gq9A0WByp662xpJnMEB9m43LZjsSDjIAOozWRExlFQk2hlV1XQ==" - }, - "bitbox-cli": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/bitbox-cli/-/bitbox-cli-1.4.2.tgz", - "integrity": "sha512-ilRmgewkTas89uOJmvDyCBFrPyov99wPJOlAEZUgV9H/cFIyRIjLPzqYim7m9N1FHVyorbfxBlsvoIqQRarcow==", - "requires": { - "assert": "1.4.1", - "axios": "0.17.1", - "babel-cli": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-register": "6.26.0", - "bchaddrjs": "0.2.1", - "bigi": "1.4.2", - "bip21": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "bip38": "2.0.2", - "bip39": "2.5.0", - "bip66": "1.1.5", - "bip68": "1.0.4", - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", - "bitcoin-txdecoder": "0.0.3", - "bitcoincashjs-lib": "github:Bitcoin-com/bitcoincashjs-lib#0a7fc7cf23551503f57689db4c930b8136db954c", - "bitcoinjs-message": "2.0.0", - "bs58": "4.0.1", - "buffer": "5.2.0", - "chalk": "2.4.1", - "clear": "0.0.1", - "coininfo": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", - "commander": "2.16.0", - "corsproxy": "1.5.0", - "cp-file": "5.0.0", - "ecurve": "1.0.6", - "figlet": "1.2.0", - "git-clone": "0.1.0", - "ini": "1.3.5", - "mkdirp": "0.5.1", - "mocha": "5.2.0", - "node-cmd": "3.0.0", - "node-emoji": "1.8.1", - "qrcode": "1.2.0", - "randombytes": "2.0.6", - "repl.history": "0.1.4", - "safe-buffer": "5.1.2", - "satoshi-bitcoin": "1.0.4", - "socket.io": "2.1.1", - "socket.io-client": "2.1.1", - "touch": "3.1.0", - "wif": "2.0.6" - } + "bip68": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/bip68/-/bip68-1.0.4.tgz", + "integrity": "sha512-O1htyufFTYy3EO0JkHg2CLykdXEtV2ssqw47Gq9A0WByp662xpJnMEB9m43LZjsSDjIAOozWRExlFQk2hlV1XQ==" }, "bitcoin-ops": { "version": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" @@ -3189,8 +1336,8 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "requires": { - "caniuse-lite": "1.0.30000865", - "electron-to-chromium": "1.3.52" + "caniuse-lite": "1.0.30000877", + "electron-to-chromium": "1.3.58" } }, "bs58": { @@ -3226,9 +1373,9 @@ "integrity": "sha1-A1O1T9B/2VZBcGca5vZrnPENJ/U=" }, "buffer-from": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", - "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, "buffer-xor": { "version": "1.0.3", @@ -3272,16 +1419,16 @@ } }, "caniuse-lite": { - "version": "1.0.30000865", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000865.tgz", - "integrity": "sha512-vs79o1mOSKRGv/1pSkp4EXgl4ZviWeYReXw60XfacPU64uQWZwJT6vZNmxRF9O+6zu71sJwMxLK5JXxbzuVrLw==" + "version": "1.0.30000877", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000877.tgz", + "integrity": "sha512-h04kV/lcuhItU1CZTJOxUEk/9R+1XeJqgc67E+XC8J9TjPM8kzVgOn27ZtRdDUo8O5F8U4QRCzDWJrVym3w3Cg==" }, "cashaddrjs": { "version": "0.2.8", "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.2.8.tgz", "integrity": "sha512-oezXpKZRjavdRB1QjBamfHFDzYescGFn9dWMbijP4fgXrqMdBygOqaPNW4phf7zpRD4+oW7aaFfFklF72/szaA==", "requires": { - "big-integer": "1.6.32" + "big-integer": "1.6.34" } }, "chai": { @@ -3438,9 +1585,9 @@ "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=" }, "commander": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz", - "integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==" + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" }, "component-bind": { "version": "1.0.0", @@ -3467,7 +1614,7 @@ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "requires": { - "buffer-from": "1.1.0", + "buffer-from": "1.1.1", "inherits": "2.0.3", "readable-stream": "2.3.6", "typedarray": "0.0.6" @@ -3528,7 +1675,7 @@ "requires": { "graceful-fs": "4.1.11", "make-dir": "1.3.0", - "nested-error-stacks": "2.0.1", + "nested-error-stacks": "2.1.0", "pify": "3.0.0", "safe-buffer": "5.1.2" } @@ -3617,11 +1764,10 @@ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, "define-properties": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", - "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "requires": { - "foreach": "2.0.5", "object-keys": "1.0.12" } }, @@ -3715,14 +1861,14 @@ "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==" }, "electron-to-chromium": { - "version": "1.3.52", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.52.tgz", - "integrity": "sha1-0tnxJwuko7lnuDHEDvcftNmrXOA=" + "version": "1.3.58", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.58.tgz", + "integrity": "sha512-AGJxlBEn2wOohxqWZkISVsOjZueKTQljfEODTDSEiMqSpH0S+xzV+/5oEM9AGaqhu7DzrpKOgU7ocQRjj0nJmg==" }, "elliptic": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", - "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", + "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", "requires": { "bn.js": "4.11.8", "brorand": "1.1.0", @@ -4161,7 +2307,7 @@ "requires": { "is-number": "2.1.0", "isobject": "2.1.0", - "randomatic": "3.0.0", + "randomatic": "3.1.0", "repeat-element": "1.1.2", "repeat-string": "1.6.1" } @@ -4197,9 +2343,9 @@ "dev": true }, "follow-redirects": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.1.tgz", - "integrity": "sha512-v9GI1hpaqq1ZZR6pBD1+kI7O24PhDvNGNodjS3MdcEqyrahCp8zbtpv+2B/krUnSmUH80lbAS7MrdeK5IylgKg==", + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.5.tgz", + "integrity": "sha512-GHjtHDlY/ehslqv0Gr5N0PUJppgg/q0rOBvX0na1s7y1A3LWxPqCYU76s3Z1bM4+UZB4QF0usaXLT5wFpof5PA==", "requires": { "debug": "3.1.0" } @@ -4227,11 +2373,6 @@ "for-in": "1.0.2" } }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" - }, "fs-readdir-recursive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", @@ -5541,25 +3682,6 @@ "isarray": "1.0.0" } }, - "istanbul-lib-coverage": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", - "integrity": "sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA==" - }, - "istanbul-lib-instrument": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-2.3.2.tgz", - "integrity": "sha512-l7TD/VnBsIB2OJvSyxaLW/ab1+92dxZNH9wLH7uHPPioy3JZ8tnx2UXUdKmdkgmP2EFPzg64CToUP6dAS3U32Q==", - "requires": { - "@babel/generator": "7.0.0-beta.51", - "@babel/parser": "7.0.0-beta.51", - "@babel/template": "7.0.0-beta.51", - "@babel/traverse": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51", - "istanbul-lib-coverage": "2.0.1", - "semver": "5.5.0" - } - }, "items": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/items/-/items-1.1.1.tgz", @@ -5909,14 +4031,14 @@ "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" }, "nested-error-stacks": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz", - "integrity": "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", + "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==" }, "nise": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.2.tgz", - "integrity": "sha512-BxH/DxoQYYdhKgVAfqVy4pzXRZELHOIewzoesxpjYvpU+7YOalQhGNPf7wAx8pLrTNPrHRDlLOkAl8UI0ZpXjw==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.3.tgz", + "integrity": "sha512-cg44dkGHutAY+VmftgB1gHvLWxFl2vwYdF8WpbceYicQwylESRJiAAKgCRJntdoEbMiUzywkZEUzjoDWH0JwKA==", "dev": true, "requires": { "@sinonjs/formatio": "2.0.0", @@ -5955,7 +4077,7 @@ "hosted-git-info": "2.7.1", "is-builtin-module": "1.0.0", "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "validate-npm-package-license": "3.0.4" } }, "normalize-path": { @@ -5983,7 +4105,6 @@ "version": "11.9.0", "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.9.0.tgz", "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", - "dev": true, "requires": { "archy": "1.0.0", "arrify": "1.0.1", @@ -6017,7 +4138,6 @@ "align-text": { "version": "0.1.4", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2", "longest": "1.0.1", @@ -6026,76 +4146,62 @@ }, "amdefine": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true, - "dev": true + "bundled": true }, "ansi-styles": { "version": "2.2.1", - "bundled": true, - "dev": true + "bundled": true }, "append-transform": { "version": "0.4.0", "bundled": true, - "dev": true, "requires": { "default-require-extensions": "1.0.0" } }, "archy": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "arr-diff": { "version": "4.0.0", - "bundled": true, - "dev": true + "bundled": true }, "arr-flatten": { "version": "1.1.0", - "bundled": true, - "dev": true + "bundled": true }, "arr-union": { "version": "3.1.0", - "bundled": true, - "dev": true + "bundled": true }, "array-unique": { "version": "0.3.2", - "bundled": true, - "dev": true + "bundled": true }, "arrify": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "assign-symbols": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "async": { "version": "1.5.2", - "bundled": true, - "dev": true + "bundled": true }, "atob": { "version": "2.1.1", - "bundled": true, - "dev": true + "bundled": true }, "babel-code-frame": { "version": "6.26.0", "bundled": true, - "dev": true, "requires": { "chalk": "1.1.3", "esutils": "2.0.2", @@ -6105,7 +4211,6 @@ "babel-generator": { "version": "6.26.1", "bundled": true, - "dev": true, "requires": { "babel-messages": "6.23.0", "babel-runtime": "6.26.0", @@ -6120,7 +4225,6 @@ "babel-messages": { "version": "6.23.0", "bundled": true, - "dev": true, "requires": { "babel-runtime": "6.26.0" } @@ -6128,7 +4232,6 @@ "babel-runtime": { "version": "6.26.0", "bundled": true, - "dev": true, "requires": { "core-js": "2.5.6", "regenerator-runtime": "0.11.1" @@ -6137,7 +4240,6 @@ "babel-template": { "version": "6.26.0", "bundled": true, - "dev": true, "requires": { "babel-runtime": "6.26.0", "babel-traverse": "6.26.0", @@ -6149,7 +4251,6 @@ "babel-traverse": { "version": "6.26.0", "bundled": true, - "dev": true, "requires": { "babel-code-frame": "6.26.0", "babel-messages": "6.23.0", @@ -6165,7 +4266,6 @@ "babel-types": { "version": "6.26.0", "bundled": true, - "dev": true, "requires": { "babel-runtime": "6.26.0", "esutils": "2.0.2", @@ -6175,18 +4275,15 @@ }, "babylon": { "version": "6.18.0", - "bundled": true, - "dev": true + "bundled": true }, "balanced-match": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "base": { "version": "0.11.2", "bundled": true, - "dev": true, "requires": { "cache-base": "1.0.1", "class-utils": "0.3.6", @@ -6200,7 +4297,6 @@ "define-property": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "is-descriptor": "1.0.2" } @@ -6208,7 +4304,6 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -6216,7 +4311,6 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -6224,7 +4318,6 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -6233,20 +4326,17 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "brace-expansion": { "version": "1.1.11", "bundled": true, - "dev": true, "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -6255,7 +4345,6 @@ "braces": { "version": "2.3.2", "bundled": true, - "dev": true, "requires": { "arr-flatten": "1.1.0", "array-unique": "0.3.2", @@ -6272,7 +4361,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -6281,13 +4369,11 @@ }, "builtin-modules": { "version": "1.1.1", - "bundled": true, - "dev": true + "bundled": true }, "cache-base": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "collection-visit": "1.0.0", "component-emitter": "1.2.1", @@ -6302,15 +4388,13 @@ "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "caching-transform": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "md5-hex": "1.3.0", "mkdirp": "0.5.1", @@ -6320,13 +4404,11 @@ "camelcase": { "version": "1.2.1", "bundled": true, - "dev": true, "optional": true }, "center-align": { "version": "0.1.3", "bundled": true, - "dev": true, "optional": true, "requires": { "align-text": "0.1.4", @@ -6336,7 +4418,6 @@ "chalk": { "version": "1.1.3", "bundled": true, - "dev": true, "requires": { "ansi-styles": "2.2.1", "escape-string-regexp": "1.0.5", @@ -6348,7 +4429,6 @@ "class-utils": { "version": "0.3.6", "bundled": true, - "dev": true, "requires": { "arr-union": "3.1.0", "define-property": "0.2.5", @@ -6359,22 +4439,19 @@ "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { "is-descriptor": "0.1.6" } }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "cliui": { "version": "2.1.0", "bundled": true, - "dev": true, "optional": true, "requires": { "center-align": "0.1.3", @@ -6385,20 +4462,17 @@ "wordwrap": { "version": "0.0.2", "bundled": true, - "dev": true, "optional": true } } }, "code-point-at": { "version": "1.1.0", - "bundled": true, - "dev": true + "bundled": true }, "collection-visit": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "map-visit": "1.0.0", "object-visit": "1.0.1" @@ -6406,38 +4480,31 @@ }, "commondir": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "component-emitter": { "version": "1.2.1", - "bundled": true, - "dev": true + "bundled": true }, "concat-map": { "version": "0.0.1", - "bundled": true, - "dev": true + "bundled": true }, "convert-source-map": { "version": "1.5.1", - "bundled": true, - "dev": true + "bundled": true }, "copy-descriptor": { "version": "0.1.1", - "bundled": true, - "dev": true + "bundled": true }, "core-js": { "version": "2.5.6", - "bundled": true, - "dev": true + "bundled": true }, "cross-spawn": { "version": "4.0.2", "bundled": true, - "dev": true, "requires": { "lru-cache": "4.1.3", "which": "1.3.0" @@ -6446,30 +4513,25 @@ "debug": { "version": "2.6.9", "bundled": true, - "dev": true, "requires": { "ms": "2.0.0" } }, "debug-log": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "decamelize": { "version": "1.2.0", - "bundled": true, - "dev": true + "bundled": true }, "decode-uri-component": { "version": "0.2.0", - "bundled": true, - "dev": true + "bundled": true }, "default-require-extensions": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "strip-bom": "2.0.0" } @@ -6477,7 +4539,6 @@ "define-property": { "version": "2.0.2", "bundled": true, - "dev": true, "requires": { "is-descriptor": "1.0.2", "isobject": "3.0.1" @@ -6486,7 +4547,6 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -6494,7 +4554,6 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -6502,7 +4561,6 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -6511,20 +4569,17 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "detect-indent": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "repeating": "2.0.1" } @@ -6532,25 +4587,21 @@ "error-ex": { "version": "1.3.1", "bundled": true, - "dev": true, "requires": { "is-arrayish": "0.2.1" } }, "escape-string-regexp": { "version": "1.0.5", - "bundled": true, - "dev": true + "bundled": true }, "esutils": { "version": "2.0.2", - "bundled": true, - "dev": true + "bundled": true }, "execa": { "version": "0.7.0", "bundled": true, - "dev": true, "requires": { "cross-spawn": "5.1.0", "get-stream": "3.0.0", @@ -6564,7 +4615,6 @@ "cross-spawn": { "version": "5.1.0", "bundled": true, - "dev": true, "requires": { "lru-cache": "4.1.3", "shebang-command": "1.2.0", @@ -6576,7 +4626,6 @@ "expand-brackets": { "version": "2.1.4", "bundled": true, - "dev": true, "requires": { "debug": "2.6.9", "define-property": "0.2.5", @@ -6590,7 +4639,6 @@ "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -6598,7 +4646,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -6608,7 +4655,6 @@ "extend-shallow": { "version": "3.0.2", "bundled": true, - "dev": true, "requires": { "assign-symbols": "1.0.0", "is-extendable": "1.0.1" @@ -6617,7 +4663,6 @@ "is-extendable": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "is-plain-object": "2.0.4" } @@ -6627,7 +4672,6 @@ "extglob": { "version": "2.0.4", "bundled": true, - "dev": true, "requires": { "array-unique": "0.3.2", "define-property": "1.0.0", @@ -6642,7 +4686,6 @@ "define-property": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "is-descriptor": "1.0.2" } @@ -6650,7 +4693,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -6658,7 +4700,6 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -6666,7 +4707,6 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -6674,7 +4714,6 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -6683,15 +4722,13 @@ }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "fill-range": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "extend-shallow": "2.0.1", "is-number": "3.0.0", @@ -6702,7 +4739,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -6712,7 +4748,6 @@ "find-cache-dir": { "version": "0.1.1", "bundled": true, - "dev": true, "requires": { "commondir": "1.0.1", "mkdirp": "0.5.1", @@ -6722,20 +4757,17 @@ "find-up": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { "locate-path": "2.0.0" } }, "for-in": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "foreground-child": { "version": "1.5.6", "bundled": true, - "dev": true, "requires": { "cross-spawn": "4.0.2", "signal-exit": "3.0.2" @@ -6744,35 +4776,29 @@ "fragment-cache": { "version": "0.2.1", "bundled": true, - "dev": true, "requires": { "map-cache": "0.2.2" } }, "fs.realpath": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "get-caller-file": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "get-stream": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true }, "get-value": { "version": "2.0.6", - "bundled": true, - "dev": true + "bundled": true }, "glob": { "version": "7.1.2", "bundled": true, - "dev": true, "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -6784,18 +4810,15 @@ }, "globals": { "version": "9.18.0", - "bundled": true, - "dev": true + "bundled": true }, "graceful-fs": { "version": "4.1.11", - "bundled": true, - "dev": true + "bundled": true }, "handlebars": { "version": "4.0.11", "bundled": true, - "dev": true, "requires": { "async": "1.5.2", "optimist": "0.6.1", @@ -6806,7 +4829,6 @@ "source-map": { "version": "0.4.4", "bundled": true, - "dev": true, "requires": { "amdefine": "1.0.1" } @@ -6816,20 +4838,17 @@ "has-ansi": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "ansi-regex": "2.1.1" } }, "has-flag": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "has-value": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "get-value": "2.0.6", "has-values": "1.0.0", @@ -6838,15 +4857,13 @@ "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "has-values": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "is-number": "3.0.0", "kind-of": "4.0.0" @@ -6855,7 +4872,6 @@ "is-number": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" }, @@ -6863,7 +4879,6 @@ "kind-of": { "version": "3.2.2", "bundled": true, - "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -6873,7 +4888,6 @@ "kind-of": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -6882,18 +4896,15 @@ }, "hosted-git-info": { "version": "2.6.0", - "bundled": true, - "dev": true + "bundled": true }, "imurmurhash": { "version": "0.1.4", - "bundled": true, - "dev": true + "bundled": true }, "inflight": { "version": "1.0.6", "bundled": true, - "dev": true, "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -6901,44 +4912,37 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, - "dev": true + "bundled": true }, "invariant": { "version": "2.2.4", "bundled": true, - "dev": true, "requires": { "loose-envify": "1.3.1" } }, "invert-kv": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "is-accessor-descriptor": { "version": "0.1.6", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" } }, "is-arrayish": { "version": "0.2.1", - "bundled": true, - "dev": true + "bundled": true }, "is-buffer": { "version": "1.1.6", - "bundled": true, - "dev": true + "bundled": true }, "is-builtin-module": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "builtin-modules": "1.1.1" } @@ -6946,7 +4950,6 @@ "is-data-descriptor": { "version": "0.1.4", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" } @@ -6954,7 +4957,6 @@ "is-descriptor": { "version": "0.1.6", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "0.1.6", "is-data-descriptor": "0.1.4", @@ -6963,33 +4965,28 @@ "dependencies": { "kind-of": { "version": "5.1.0", - "bundled": true, - "dev": true + "bundled": true } } }, "is-extendable": { "version": "0.1.1", - "bundled": true, - "dev": true + "bundled": true }, "is-finite": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "is-number": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" } @@ -6997,72 +4994,60 @@ "is-odd": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "is-number": "4.0.0" }, "dependencies": { "is-number": { "version": "4.0.0", - "bundled": true, - "dev": true + "bundled": true } } }, "is-plain-object": { "version": "2.0.4", "bundled": true, - "dev": true, "requires": { "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "is-stream": { "version": "1.1.0", - "bundled": true, - "dev": true + "bundled": true }, "is-utf8": { "version": "0.2.1", - "bundled": true, - "dev": true + "bundled": true }, "is-windows": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "isarray": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "isexe": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true }, "istanbul-lib-coverage": { "version": "1.2.0", - "bundled": true, - "dev": true + "bundled": true }, "istanbul-lib-hook": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "append-transform": "0.4.0" } @@ -7070,7 +5055,6 @@ "istanbul-lib-instrument": { "version": "1.10.1", "bundled": true, - "dev": true, "requires": { "babel-generator": "6.26.1", "babel-template": "6.26.0", @@ -7084,7 +5068,6 @@ "istanbul-lib-report": { "version": "1.1.3", "bundled": true, - "dev": true, "requires": { "istanbul-lib-coverage": "1.2.0", "mkdirp": "0.5.1", @@ -7095,7 +5078,6 @@ "supports-color": { "version": "3.2.3", "bundled": true, - "dev": true, "requires": { "has-flag": "1.0.0" } @@ -7105,7 +5087,6 @@ "istanbul-lib-source-maps": { "version": "1.2.3", "bundled": true, - "dev": true, "requires": { "debug": "3.1.0", "istanbul-lib-coverage": "1.2.0", @@ -7117,7 +5098,6 @@ "debug": { "version": "3.1.0", "bundled": true, - "dev": true, "requires": { "ms": "2.0.0" } @@ -7127,25 +5107,21 @@ "istanbul-reports": { "version": "1.4.0", "bundled": true, - "dev": true, "requires": { "handlebars": "4.0.11" } }, "js-tokens": { "version": "3.0.2", - "bundled": true, - "dev": true + "bundled": true }, "jsesc": { "version": "1.3.0", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "3.2.2", "bundled": true, - "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -7153,13 +5129,11 @@ "lazy-cache": { "version": "1.0.4", "bundled": true, - "dev": true, "optional": true }, "lcid": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "invert-kv": "1.0.0" } @@ -7167,7 +5141,6 @@ "load-json-file": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "graceful-fs": "4.1.11", "parse-json": "2.2.0", @@ -7179,7 +5152,6 @@ "locate-path": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "p-locate": "2.0.0", "path-exists": "3.0.0" @@ -7187,25 +5159,21 @@ "dependencies": { "path-exists": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true } } }, "lodash": { "version": "4.17.10", - "bundled": true, - "dev": true + "bundled": true }, "longest": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "loose-envify": { "version": "1.3.1", "bundled": true, - "dev": true, "requires": { "js-tokens": "3.0.2" } @@ -7213,7 +5181,6 @@ "lru-cache": { "version": "4.1.3", "bundled": true, - "dev": true, "requires": { "pseudomap": "1.0.2", "yallist": "2.1.2" @@ -7221,13 +5188,11 @@ }, "map-cache": { "version": "0.2.2", - "bundled": true, - "dev": true + "bundled": true }, "map-visit": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "object-visit": "1.0.1" } @@ -7235,20 +5200,17 @@ "md5-hex": { "version": "1.3.0", "bundled": true, - "dev": true, "requires": { "md5-o-matic": "0.1.1" } }, "md5-o-matic": { "version": "0.1.1", - "bundled": true, - "dev": true + "bundled": true }, "mem": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "mimic-fn": "1.2.0" } @@ -7256,22 +5218,19 @@ "merge-source-map": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "source-map": "0.6.1" }, "dependencies": { "source-map": { "version": "0.6.1", - "bundled": true, - "dev": true + "bundled": true } } }, "micromatch": { "version": "3.1.10", "bundled": true, - "dev": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -7290,33 +5249,28 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "mimic-fn": { "version": "1.2.0", - "bundled": true, - "dev": true + "bundled": true }, "minimatch": { "version": "3.0.4", "bundled": true, - "dev": true, "requires": { "brace-expansion": "1.1.11" } }, "minimist": { "version": "0.0.8", - "bundled": true, - "dev": true + "bundled": true }, "mixin-deep": { "version": "1.3.1", "bundled": true, - "dev": true, "requires": { "for-in": "1.0.2", "is-extendable": "1.0.1" @@ -7325,7 +5279,6 @@ "is-extendable": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "is-plain-object": "2.0.4" } @@ -7335,20 +5288,17 @@ "mkdirp": { "version": "0.5.1", "bundled": true, - "dev": true, "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "nanomatch": { "version": "1.2.9", "bundled": true, - "dev": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -7366,25 +5316,21 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true, - "dev": true + "bundled": true }, "array-unique": { "version": "0.3.2", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "normalize-package-data": { "version": "2.4.0", "bundled": true, - "dev": true, "requires": { "hosted-git-info": "2.6.0", "is-builtin-module": "1.0.0", @@ -7395,25 +5341,21 @@ "npm-run-path": { "version": "2.0.2", "bundled": true, - "dev": true, "requires": { "path-key": "2.0.1" } }, "number-is-nan": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "object-assign": { "version": "4.1.1", - "bundled": true, - "dev": true + "bundled": true }, "object-copy": { "version": "0.1.0", "bundled": true, - "dev": true, "requires": { "copy-descriptor": "0.1.1", "define-property": "0.2.5", @@ -7423,7 +5365,6 @@ "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -7433,37 +5374,32 @@ "object-visit": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "object.pick": { "version": "1.3.0", "bundled": true, - "dev": true, "requires": { "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "once": { "version": "1.4.0", "bundled": true, - "dev": true, "requires": { "wrappy": "1.0.2" } @@ -7471,7 +5407,6 @@ "optimist": { "version": "0.6.1", "bundled": true, - "dev": true, "requires": { "minimist": "0.0.8", "wordwrap": "0.0.3" @@ -7479,13 +5414,11 @@ }, "os-homedir": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "os-locale": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { "execa": "0.7.0", "lcid": "1.0.0", @@ -7494,13 +5427,11 @@ }, "p-finally": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "p-limit": { "version": "1.2.0", "bundled": true, - "dev": true, "requires": { "p-try": "1.0.0" } @@ -7508,56 +5439,47 @@ "p-locate": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "p-limit": "1.2.0" } }, "p-try": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "parse-json": { "version": "2.2.0", "bundled": true, - "dev": true, "requires": { "error-ex": "1.3.1" } }, "pascalcase": { "version": "0.1.1", - "bundled": true, - "dev": true + "bundled": true }, "path-exists": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { "pinkie-promise": "2.0.1" } }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "path-key": { "version": "2.0.1", - "bundled": true, - "dev": true + "bundled": true }, "path-parse": { "version": "1.0.5", - "bundled": true, - "dev": true + "bundled": true }, "path-type": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "graceful-fs": "4.1.11", "pify": "2.3.0", @@ -7566,18 +5488,15 @@ }, "pify": { "version": "2.3.0", - "bundled": true, - "dev": true + "bundled": true }, "pinkie": { "version": "2.0.4", - "bundled": true, - "dev": true + "bundled": true }, "pinkie-promise": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "pinkie": "2.0.4" } @@ -7585,7 +5504,6 @@ "pkg-dir": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "find-up": "1.1.2" }, @@ -7593,7 +5511,6 @@ "find-up": { "version": "1.1.2", "bundled": true, - "dev": true, "requires": { "path-exists": "2.1.0", "pinkie-promise": "2.0.1" @@ -7603,18 +5520,15 @@ }, "posix-character-classes": { "version": "0.1.1", - "bundled": true, - "dev": true + "bundled": true }, "pseudomap": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "read-pkg": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "load-json-file": "1.1.0", "normalize-package-data": "2.4.0", @@ -7624,7 +5538,6 @@ "read-pkg-up": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "find-up": "1.1.2", "read-pkg": "1.1.0" @@ -7633,7 +5546,6 @@ "find-up": { "version": "1.1.2", "bundled": true, - "dev": true, "requires": { "path-exists": "2.1.0", "pinkie-promise": "2.0.1" @@ -7643,13 +5555,11 @@ }, "regenerator-runtime": { "version": "0.11.1", - "bundled": true, - "dev": true + "bundled": true }, "regex-not": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "extend-shallow": "3.0.2", "safe-regex": "1.1.0" @@ -7657,51 +5567,42 @@ }, "repeat-element": { "version": "1.1.2", - "bundled": true, - "dev": true + "bundled": true }, "repeat-string": { "version": "1.6.1", - "bundled": true, - "dev": true + "bundled": true }, "repeating": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-finite": "1.0.2" } }, "require-directory": { "version": "2.1.1", - "bundled": true, - "dev": true + "bundled": true }, "require-main-filename": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "resolve-from": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "resolve-url": { "version": "0.2.1", - "bundled": true, - "dev": true + "bundled": true }, "ret": { "version": "0.1.15", - "bundled": true, - "dev": true + "bundled": true }, "right-align": { "version": "0.1.3", "bundled": true, - "dev": true, "optional": true, "requires": { "align-text": "0.1.4" @@ -7710,7 +5611,6 @@ "rimraf": { "version": "2.6.2", "bundled": true, - "dev": true, "requires": { "glob": "7.1.2" } @@ -7718,25 +5618,21 @@ "safe-regex": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "ret": "0.1.15" } }, "semver": { "version": "5.5.0", - "bundled": true, - "dev": true + "bundled": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "set-value": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "extend-shallow": "2.0.1", "is-extendable": "0.1.1", @@ -7747,7 +5643,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -7757,30 +5652,25 @@ "shebang-command": { "version": "1.2.0", "bundled": true, - "dev": true, "requires": { "shebang-regex": "1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, - "dev": true + "bundled": true }, "slide": { "version": "1.1.6", - "bundled": true, - "dev": true + "bundled": true }, "snapdragon": { "version": "0.8.2", "bundled": true, - "dev": true, "requires": { "base": "0.11.2", "debug": "2.6.9", @@ -7795,7 +5685,6 @@ "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -7803,7 +5692,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -7813,7 +5701,6 @@ "snapdragon-node": { "version": "2.1.1", "bundled": true, - "dev": true, "requires": { "define-property": "1.0.0", "isobject": "3.0.1", @@ -7823,7 +5710,6 @@ "define-property": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "is-descriptor": "1.0.2" } @@ -7831,7 +5717,6 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -7839,7 +5724,6 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -7847,7 +5731,6 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -7856,33 +5739,28 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "snapdragon-util": { "version": "3.0.1", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" } }, "source-map": { "version": "0.5.7", - "bundled": true, - "dev": true + "bundled": true }, "source-map-resolve": { "version": "0.5.1", "bundled": true, - "dev": true, "requires": { "atob": "2.1.1", "decode-uri-component": "0.2.0", @@ -7893,13 +5771,11 @@ }, "source-map-url": { "version": "0.4.0", - "bundled": true, - "dev": true + "bundled": true }, "spawn-wrap": { "version": "1.4.2", "bundled": true, - "dev": true, "requires": { "foreground-child": "1.5.6", "mkdirp": "0.5.1", @@ -7912,7 +5788,6 @@ "spdx-correct": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "spdx-expression-parse": "3.0.0", "spdx-license-ids": "3.0.0" @@ -7920,13 +5795,11 @@ }, "spdx-exceptions": { "version": "2.1.0", - "bundled": true, - "dev": true + "bundled": true }, "spdx-expression-parse": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "spdx-exceptions": "2.1.0", "spdx-license-ids": "3.0.0" @@ -7934,13 +5807,11 @@ }, "spdx-license-ids": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true }, "split-string": { "version": "3.1.0", "bundled": true, - "dev": true, "requires": { "extend-shallow": "3.0.2" } @@ -7948,7 +5819,6 @@ "static-extend": { "version": "0.1.2", "bundled": true, - "dev": true, "requires": { "define-property": "0.2.5", "object-copy": "0.1.0" @@ -7957,7 +5827,6 @@ "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -7967,7 +5836,6 @@ "string-width": { "version": "2.1.1", "bundled": true, - "dev": true, "requires": { "is-fullwidth-code-point": "2.0.0", "strip-ansi": "4.0.0" @@ -7975,13 +5843,11 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true }, "strip-ansi": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "ansi-regex": "3.0.0" } @@ -7991,7 +5857,6 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, - "dev": true, "requires": { "ansi-regex": "2.1.1" } @@ -7999,25 +5864,21 @@ "strip-bom": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "is-utf8": "0.2.1" } }, "strip-eof": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "supports-color": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "test-exclude": { "version": "4.2.1", "bundled": true, - "dev": true, "requires": { "arrify": "1.0.1", "micromatch": "3.1.10", @@ -8028,18 +5889,15 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true, - "dev": true + "bundled": true }, "array-unique": { "version": "0.3.2", - "bundled": true, - "dev": true + "bundled": true }, "braces": { "version": "2.3.2", "bundled": true, - "dev": true, "requires": { "arr-flatten": "1.1.0", "array-unique": "0.3.2", @@ -8056,7 +5914,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -8066,7 +5923,6 @@ "expand-brackets": { "version": "2.1.4", "bundled": true, - "dev": true, "requires": { "debug": "2.6.9", "define-property": "0.2.5", @@ -8080,7 +5936,6 @@ "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -8088,7 +5943,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -8096,7 +5950,6 @@ "is-accessor-descriptor": { "version": "0.1.6", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" }, @@ -8104,7 +5957,6 @@ "kind-of": { "version": "3.2.2", "bundled": true, - "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -8114,7 +5966,6 @@ "is-data-descriptor": { "version": "0.1.4", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" }, @@ -8122,7 +5973,6 @@ "kind-of": { "version": "3.2.2", "bundled": true, - "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -8132,7 +5982,6 @@ "is-descriptor": { "version": "0.1.6", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "0.1.6", "is-data-descriptor": "0.1.4", @@ -8141,15 +5990,13 @@ }, "kind-of": { "version": "5.1.0", - "bundled": true, - "dev": true + "bundled": true } } }, "extglob": { "version": "2.0.4", "bundled": true, - "dev": true, "requires": { "array-unique": "0.3.2", "define-property": "1.0.0", @@ -8164,7 +6011,6 @@ "define-property": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "is-descriptor": "1.0.2" } @@ -8172,7 +6018,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -8182,7 +6027,6 @@ "fill-range": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "extend-shallow": "2.0.1", "is-number": "3.0.0", @@ -8193,7 +6037,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -8203,7 +6046,6 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -8211,7 +6053,6 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -8219,7 +6060,6 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -8229,7 +6069,6 @@ "is-number": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" }, @@ -8237,7 +6076,6 @@ "kind-of": { "version": "3.2.2", "bundled": true, - "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -8246,18 +6084,15 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true }, "micromatch": { "version": "3.1.10", "bundled": true, - "dev": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -8278,13 +6113,11 @@ }, "to-fast-properties": { "version": "1.0.3", - "bundled": true, - "dev": true + "bundled": true }, "to-object-path": { "version": "0.3.0", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" } @@ -8292,7 +6125,6 @@ "to-regex": { "version": "3.0.2", "bundled": true, - "dev": true, "requires": { "define-property": "2.0.2", "extend-shallow": "3.0.2", @@ -8303,7 +6135,6 @@ "to-regex-range": { "version": "2.1.1", "bundled": true, - "dev": true, "requires": { "is-number": "3.0.0", "repeat-string": "1.6.1" @@ -8312,7 +6143,6 @@ "is-number": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" } @@ -8321,13 +6151,11 @@ }, "trim-right": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "uglify-js": { "version": "2.8.29", "bundled": true, - "dev": true, "optional": true, "requires": { "source-map": "0.5.7", @@ -8338,7 +6166,6 @@ "yargs": { "version": "3.10.0", "bundled": true, - "dev": true, "optional": true, "requires": { "camelcase": "1.2.1", @@ -8352,13 +6179,11 @@ "uglify-to-browserify": { "version": "1.0.2", "bundled": true, - "dev": true, "optional": true }, "union-value": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "arr-union": "3.1.0", "get-value": "2.0.6", @@ -8369,7 +6194,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -8377,7 +6201,6 @@ "set-value": { "version": "0.4.3", "bundled": true, - "dev": true, "requires": { "extend-shallow": "2.0.1", "is-extendable": "0.1.1", @@ -8390,7 +6213,6 @@ "unset-value": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "has-value": "0.3.1", "isobject": "3.0.1" @@ -8399,7 +6221,6 @@ "has-value": { "version": "0.3.1", "bundled": true, - "dev": true, "requires": { "get-value": "2.0.6", "has-values": "0.1.4", @@ -8409,7 +6230,6 @@ "isobject": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { "isarray": "1.0.0" } @@ -8418,40 +6238,34 @@ }, "has-values": { "version": "0.1.4", - "bundled": true, - "dev": true + "bundled": true }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "urix": { "version": "0.1.0", - "bundled": true, - "dev": true + "bundled": true }, "use": { "version": "3.1.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "validate-npm-package-license": { "version": "3.0.3", "bundled": true, - "dev": true, "requires": { "spdx-correct": "3.0.0", "spdx-expression-parse": "3.0.0" @@ -8460,31 +6274,26 @@ "which": { "version": "1.3.0", "bundled": true, - "dev": true, "requires": { "isexe": "2.0.0" } }, "which-module": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "window-size": { "version": "0.1.0", "bundled": true, - "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "bundled": true, - "dev": true + "bundled": true }, "wrap-ansi": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { "string-width": "1.0.2", "strip-ansi": "3.0.1" @@ -8493,7 +6302,6 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "number-is-nan": "1.0.1" } @@ -8501,7 +6309,6 @@ "string-width": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -8512,13 +6319,11 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "write-file-atomic": { "version": "1.3.4", "bundled": true, - "dev": true, "requires": { "graceful-fs": "4.1.11", "imurmurhash": "0.1.4", @@ -8527,18 +6332,15 @@ }, "y18n": { "version": "3.2.1", - "bundled": true, - "dev": true + "bundled": true }, "yallist": { "version": "2.1.2", - "bundled": true, - "dev": true + "bundled": true }, "yargs": { "version": "11.1.0", "bundled": true, - "dev": true, "requires": { "cliui": "4.1.0", "decamelize": "1.2.0", @@ -8556,18 +6358,15 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true }, "camelcase": { "version": "4.1.0", - "bundled": true, - "dev": true + "bundled": true }, "cliui": { "version": "4.1.0", "bundled": true, - "dev": true, "requires": { "string-width": "2.1.1", "strip-ansi": "4.0.0", @@ -8577,7 +6376,6 @@ "strip-ansi": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "ansi-regex": "3.0.0" } @@ -8585,7 +6383,6 @@ "yargs-parser": { "version": "9.0.2", "bundled": true, - "dev": true, "requires": { "camelcase": "4.1.0" } @@ -8595,15 +6392,13 @@ "yargs-parser": { "version": "8.1.0", "bundled": true, - "dev": true, "requires": { "camelcase": "4.1.0" }, "dependencies": { "camelcase": { "version": "4.1.0", - "bundled": true, - "dev": true + "bundled": true } } } @@ -8781,9 +6576,9 @@ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, "path-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" }, "path-to-regexp": { "version": "1.7.0", @@ -8980,9 +6775,9 @@ } }, "qrcode": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.2.0.tgz", - "integrity": "sha512-wZK0Z0eYmOUDP2tOGzmLdeBn5Npa+4wms9GdvzH7HrywvGUq/Stz0BKUhW4DfmBf1PSrm9dNfdnVDq683Zxvag==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.2.2.tgz", + "integrity": "sha512-iHD3eGma3PMaIfvM+p6oaTZjz83PsEIJ5F4H3oqyfKbQM+kbWjJjHdnTRlzi9q0KoiJ9QFKfiNhkEAYOWTTDdw==", "requires": { "can-promise": "0.0.1", "dijkstrajs": "1.0.1", @@ -9004,9 +6799,9 @@ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, "randomatic": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz", - "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz", + "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==", "optional": true, "requires": { "is-number": "4.0.0", @@ -9205,7 +7000,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "requires": { - "path-parse": "1.0.5" + "path-parse": "1.0.6" } }, "resolve-from": { @@ -9312,7 +7107,7 @@ "bn.js": "4.11.8", "create-hash": "1.2.0", "drbg.js": "1.0.1", - "elliptic": "6.4.0", + "elliptic": "6.4.1", "nan": "2.10.0", "safe-buffer": "5.1.2" } @@ -9370,7 +7165,7 @@ "diff": "3.5.0", "lodash.get": "4.4.2", "lolex": "2.7.1", - "nise": "1.4.2", + "nise": "1.4.3", "supports-color": "5.4.0", "type-detect": "4.0.8" }, @@ -9576,7 +7371,7 @@ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", "requires": { - "define-properties": "1.1.2", + "define-properties": "1.1.3", "es-abstract": "1.12.0", "function-bind": "1.1.1" } @@ -9665,7 +7460,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", "requires": { - "path-parse": "1.0.5" + "path-parse": "1.0.6" } } } @@ -9828,9 +7623,9 @@ } }, "validate-npm-package-license": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", - "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "requires": { "spdx-correct": "3.0.0", "spdx-expression-parse": "3.0.0" diff --git a/package.json b/package.json index 949f0cd9..e0285cb9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.5.1", + "version": "1.5.2", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", @@ -34,7 +34,7 @@ "bchaddrjs": "^0.2.1", "bigi": "^1.4.2", "bip21": "Bitcoin-com/bip21", - "bip32-utils": "Bitcoin-com/bip32-utils#6d27e98d15ceb7543f904d7f770d1e39a806e6e8", + "bip32-utils": "Bitcoin-com/bip32-utils#3b6db1115533afd57130783c002889933e027002", "bip38": "^2.0.2", "bip39": "^2.5.0", "bip66": "^1.1.5", diff --git a/src/RawTransactions.js b/src/RawTransactions.js index 0e3da7ce..9495f9ec 100644 --- a/src/RawTransactions.js +++ b/src/RawTransactions.js @@ -75,6 +75,9 @@ class RawTransactions { // Result: // "hex" (string) The transaction hash in hex // + if(typeof hex !== 'string') { + hex = JSON.stringify(hex); + } return axios.post(`${this.restURL}rawtransactions/sendRawTransaction/${hex}?allowhighfees=${allowhighfees}`) .then((response) => { From fa72cb28f2d3842be02d7b1e3036c36f639818d5 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 15 Aug 2018 16:35:23 -0700 Subject: [PATCH 056/480] Update dep --- index.js | 2 +- package.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 9f6befb9..517723ad 100755 --- a/index.js +++ b/index.js @@ -19,7 +19,7 @@ let corsproxy = require('corsproxy'); let cmd = require('node-cmd'); program - .version('1.5.2'); + .version('1.5.3'); program .command('new ') diff --git a/package.json b/package.json index e0285cb9..46eead41 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.5.2", + "version": "1.5.3", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", @@ -34,7 +34,7 @@ "bchaddrjs": "^0.2.1", "bigi": "^1.4.2", "bip21": "Bitcoin-com/bip21", - "bip32-utils": "Bitcoin-com/bip32-utils#3b6db1115533afd57130783c002889933e027002", + "bip32-utils": "Bitcoin-com/bip32-utils#a747210cf5636b2bd78ec151e7024275814b5f35", "bip38": "^2.0.2", "bip39": "^2.5.0", "bip66": "^1.1.5", From d7d04ad4f9acb07fdfed808c2db5ea17eea1c82e Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 15 Aug 2018 16:48:32 -0700 Subject: [PATCH 057/480] Versions --- index.js | 2 +- package-lock.json | 186 +++++++++++++++++----------------------------- package.json | 4 +- 3 files changed, 70 insertions(+), 122 deletions(-) diff --git a/index.js b/index.js index 517723ad..8b07da96 100755 --- a/index.js +++ b/index.js @@ -19,7 +19,7 @@ let corsproxy = require('corsproxy'); let cmd = require('node-cmd'); program - .version('1.5.3'); + .version('1.5.4'); program .command('new ') diff --git a/package-lock.json b/package-lock.json index 7bd902bc..3148baaa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.5.2", + "version": "1.5.3", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1041,129 +1041,13 @@ } }, "bip32-utils": { - "version": "github:Bitcoin-com/bip32-utils#3b6db1115533afd57130783c002889933e027002", + "version": "github:Bitcoin-com/bip32-utils#0c7a1129e8b49da5800edb5c9add142b72308faf", "requires": { - "bitbox-cli": "1.5.1", + "bitbox-cli": "1.5.3", "keccak": "1.4.0", "nyc": "11.9.0", "standard": "11.0.1", "tape": "4.9.1" - }, - "dependencies": { - "bip32-utils": { - "version": "github:Bitcoin-com/bip32-utils#6d27e98d15ceb7543f904d7f770d1e39a806e6e8", - "requires": { - "bitbox-cli": "1.4.2", - "keccak": "1.4.0", - "nyc": "11.9.0", - "standard": "11.0.1", - "tape": "4.9.1" - }, - "dependencies": { - "bitbox-cli": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/bitbox-cli/-/bitbox-cli-1.4.2.tgz", - "integrity": "sha512-ilRmgewkTas89uOJmvDyCBFrPyov99wPJOlAEZUgV9H/cFIyRIjLPzqYim7m9N1FHVyorbfxBlsvoIqQRarcow==", - "requires": { - "assert": "1.4.1", - "axios": "0.17.1", - "babel-cli": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-register": "6.26.0", - "bchaddrjs": "0.2.2", - "bigi": "1.4.2", - "bip21": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "bip38": "2.0.2", - "bip39": "2.5.0", - "bip66": "1.1.5", - "bip68": "1.0.4", - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", - "bitcoin-txdecoder": "0.0.3", - "bitcoincashjs-lib": "github:Bitcoin-com/bitcoincashjs-lib#0a7fc7cf23551503f57689db4c930b8136db954c", - "bitcoinjs-message": "2.0.0", - "bs58": "4.0.1", - "buffer": "5.2.0", - "chalk": "2.4.1", - "clear": "0.0.1", - "coininfo": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", - "commander": "2.17.1", - "corsproxy": "1.5.0", - "cp-file": "5.0.0", - "ecurve": "1.0.6", - "figlet": "1.2.0", - "git-clone": "0.1.0", - "ini": "1.3.5", - "mkdirp": "0.5.1", - "mocha": "5.2.0", - "node-cmd": "3.0.0", - "node-emoji": "1.8.1", - "qrcode": "1.2.2", - "randombytes": "2.0.6", - "repl.history": "0.1.4", - "safe-buffer": "5.1.2", - "satoshi-bitcoin": "1.0.4", - "socket.io": "2.1.1", - "socket.io-client": "2.1.1", - "touch": "3.1.0", - "wif": "2.0.6" - } - } - } - }, - "bitbox-cli": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/bitbox-cli/-/bitbox-cli-1.5.1.tgz", - "integrity": "sha512-Qb1uxmvjgxglmNyVc966EVMCsPMJ7KZN5RbbC82a1xtfsv01S6lvaG6hfwWLsQfO2NPOoSnhIVpjYMBN4c5RmA==", - "requires": { - "assert": "1.4.1", - "axios": "0.17.1", - "babel-cli": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-register": "6.26.0", - "bchaddrjs": "0.2.2", - "bigi": "1.4.2", - "bip21": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "bip38": "2.0.2", - "bip39": "2.5.0", - "bip66": "1.1.5", - "bip68": "1.0.4", - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", - "bitcoin-txdecoder": "0.0.3", - "bitcoincashjs-lib": "github:Bitcoin-com/bitcoincashjs-lib#0a7fc7cf23551503f57689db4c930b8136db954c", - "bitcoinjs-message": "2.0.0", - "bs58": "4.0.1", - "buffer": "5.2.0", - "chalk": "2.4.1", - "clear": "0.0.1", - "coininfo": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", - "commander": "2.17.1", - "corsproxy": "1.5.0", - "cp-file": "5.0.0", - "ecurve": "1.0.6", - "figlet": "1.2.0", - "git-clone": "0.1.0", - "ini": "1.3.5", - "mkdirp": "0.5.1", - "mocha": "5.2.0", - "node-cmd": "3.0.0", - "node-emoji": "1.8.1", - "qrcode": "1.2.2", - "randombytes": "2.0.6", - "repl.history": "0.1.4", - "safe-buffer": "5.1.2", - "satoshi-bitcoin": "1.0.4", - "socket.io": "2.1.1", - "socket.io-client": "2.1.1", - "touch": "3.1.0", - "wif": "2.0.6" - } - } } }, "bip38": { @@ -1205,6 +1089,70 @@ "resolved": "https://registry.npmjs.org/bip68/-/bip68-1.0.4.tgz", "integrity": "sha512-O1htyufFTYy3EO0JkHg2CLykdXEtV2ssqw47Gq9A0WByp662xpJnMEB9m43LZjsSDjIAOozWRExlFQk2hlV1XQ==" }, + "bitbox-cli": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/bitbox-cli/-/bitbox-cli-1.5.3.tgz", + "integrity": "sha512-XZ6mMSa/mwKiilj0SDljpwFuEhp1Ghtk/HmaUXzFsW6nnLn/P83WzcZoBdpuEaNsAs56i9r/I0VaNSHWQwDx5Q==", + "requires": { + "assert": "1.4.1", + "axios": "0.17.1", + "babel-cli": "6.26.0", + "babel-preset-env": "1.7.0", + "babel-preset-es2015": "6.24.1", + "babel-preset-flow": "6.23.0", + "babel-preset-react": "6.24.1", + "babel-register": "6.26.0", + "bchaddrjs": "0.2.2", + "bigi": "1.4.2", + "bip21": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", + "bip32-utils": "github:Bitcoin-com/bip32-utils#a747210cf5636b2bd78ec151e7024275814b5f35", + "bip38": "2.0.2", + "bip39": "2.5.0", + "bip66": "1.1.5", + "bip68": "1.0.4", + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", + "bitcoin-txdecoder": "0.0.3", + "bitcoincashjs-lib": "github:Bitcoin-com/bitcoincashjs-lib#0a7fc7cf23551503f57689db4c930b8136db954c", + "bitcoinjs-message": "2.0.0", + "bs58": "4.0.1", + "buffer": "5.2.0", + "chalk": "2.4.1", + "clear": "0.0.1", + "coininfo": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", + "commander": "2.17.1", + "corsproxy": "1.5.0", + "cp-file": "5.0.0", + "ecurve": "1.0.6", + "figlet": "1.2.0", + "git-clone": "0.1.0", + "ini": "1.3.5", + "mkdirp": "0.5.1", + "mocha": "5.2.0", + "node-cmd": "3.0.0", + "node-emoji": "1.8.1", + "qrcode": "1.2.2", + "randombytes": "2.0.6", + "repl.history": "0.1.4", + "safe-buffer": "5.1.2", + "satoshi-bitcoin": "1.0.4", + "socket.io": "2.1.1", + "socket.io-client": "2.1.1", + "touch": "3.1.0", + "wif": "2.0.6" + }, + "dependencies": { + "bip32-utils": { + "version": "github:Bitcoin-com/bip32-utils#a747210cf5636b2bd78ec151e7024275814b5f35", + "requires": { + "bitbox-cli": "1.5.3", + "keccak": "1.4.0", + "nyc": "11.9.0", + "standard": "11.0.1", + "tape": "4.9.1" + } + } + } + }, "bitcoin-ops": { "version": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" }, diff --git a/package.json b/package.json index 46eead41..7b94c3bc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.5.3", + "version": "1.5.4", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", @@ -34,7 +34,7 @@ "bchaddrjs": "^0.2.1", "bigi": "^1.4.2", "bip21": "Bitcoin-com/bip21", - "bip32-utils": "Bitcoin-com/bip32-utils#a747210cf5636b2bd78ec151e7024275814b5f35", + "bip32-utils": "Bitcoin-com/bip32-utils#0.11.3", "bip38": "^2.0.2", "bip39": "^2.5.0", "bip66": "^1.1.5", From 3831aa19f83282370aa9a87a1ca0b9b8480f69c5 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 15 Aug 2018 17:03:08 -0700 Subject: [PATCH 058/480] Versioning --- index.js | 2 +- package-lock.json | 3573 ++++++++++++++++++++++++++++++++++++++------- package.json | 4 +- 3 files changed, 3082 insertions(+), 497 deletions(-) diff --git a/index.js b/index.js index 8b07da96..64e90263 100755 --- a/index.js +++ b/index.js @@ -19,7 +19,7 @@ let corsproxy = require('corsproxy'); let cmd = require('node-cmd'); program - .version('1.5.4'); + .version('1.5.5'); program .command('new ') diff --git a/package-lock.json b/package-lock.json index 3148baaa..8f524362 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,9 +1,129 @@ { "name": "bitbox-cli", - "version": "1.5.3", + "version": "1.5.5", "lockfileVersion": 1, "requires": true, "dependencies": { + "@babel/code-frame": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz", + "integrity": "sha1-vXHZsZKvl435FYKdOdQJRFZDmgw=", + "requires": { + "@babel/highlight": "7.0.0-beta.51" + } + }, + "@babel/generator": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.51.tgz", + "integrity": "sha1-bHV1/952HQdIXgS67cA5LG2eMPY=", + "requires": { + "@babel/types": "7.0.0-beta.51", + "jsesc": "2.5.1", + "lodash": "4.17.10", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "jsesc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", + "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=" + } + } + }, + "@babel/helper-function-name": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.51.tgz", + "integrity": "sha1-IbSHSiJ8+Z7K/MMKkDAtpaJkBWE=", + "requires": { + "@babel/helper-get-function-arity": "7.0.0-beta.51", + "@babel/template": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.51.tgz", + "integrity": "sha1-MoGy0EWvlcFyzpGyCCXYXqRnZBE=", + "requires": { + "@babel/types": "7.0.0-beta.51" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.51.tgz", + "integrity": "sha1-imw/ZsTSZTUvwHdIT59ugKUauXg=", + "requires": { + "@babel/types": "7.0.0-beta.51" + } + }, + "@babel/highlight": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.51.tgz", + "integrity": "sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0=", + "requires": { + "chalk": "2.4.1", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "@babel/parser": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.0.0-beta.51.tgz", + "integrity": "sha1-J87C30Cd9gr1gnDtj2qlVAnqhvY=" + }, + "@babel/template": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.51.tgz", + "integrity": "sha1-lgKkCuvPNXrpZ34lMu9fyBD1+/8=", + "requires": { + "@babel/code-frame": "7.0.0-beta.51", + "@babel/parser": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51", + "lodash": "4.17.10" + } + }, + "@babel/traverse": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.51.tgz", + "integrity": "sha1-mB2vLOw0emIx06odnhgDsDqqpKg=", + "requires": { + "@babel/code-frame": "7.0.0-beta.51", + "@babel/generator": "7.0.0-beta.51", + "@babel/helper-function-name": "7.0.0-beta.51", + "@babel/helper-split-export-declaration": "7.0.0-beta.51", + "@babel/parser": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51", + "debug": "3.1.0", + "globals": "11.7.0", + "invariant": "2.2.4", + "lodash": "4.17.10" + }, + "dependencies": { + "globals": { + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", + "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==" + } + } + }, + "@babel/types": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.51.tgz", + "integrity": "sha1-2AK3tUO1g2x3iqaReXq/APPZfqk=", + "requires": { + "esutils": "2.0.2", + "lodash": "4.17.10", + "to-fast-properties": "2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } + } + }, "@sinonjs/formatio": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", @@ -14,9 +134,9 @@ } }, "@types/node": { - "version": "10.7.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.7.0.tgz", - "integrity": "sha512-dmYIvoQEZWnyQfgrwPCoxztv/93NYQGEiOoQhuI56rJahv9de6Q2apZl3bufV46YJ0OAXdaktIuw4RIRl4DTeA==", + "version": "10.7.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.7.1.tgz", + "integrity": "sha512-EGoI4ylB/lPOaqXqtzAyL8HcgOuCtH2hkEaLmkueOYufsTFWBn4VCvlCDC2HW8Q+9iF+QVC3sxjDKQYjHQeZ9w==", "dev": true }, "abbrev": { @@ -1041,9 +1161,9 @@ } }, "bip32-utils": { - "version": "github:Bitcoin-com/bip32-utils#0c7a1129e8b49da5800edb5c9add142b72308faf", + "version": "github:Bitcoin-com/bip32-utils#8357139b8537bc350c9b9235d689840bfaaaa33f", "requires": { - "bitbox-cli": "1.5.3", + "bitbox-cli": "1.5.4", "keccak": "1.4.0", "nyc": "11.9.0", "standard": "11.0.1", @@ -1090,9 +1210,9 @@ "integrity": "sha512-O1htyufFTYy3EO0JkHg2CLykdXEtV2ssqw47Gq9A0WByp662xpJnMEB9m43LZjsSDjIAOozWRExlFQk2hlV1XQ==" }, "bitbox-cli": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/bitbox-cli/-/bitbox-cli-1.5.3.tgz", - "integrity": "sha512-XZ6mMSa/mwKiilj0SDljpwFuEhp1Ghtk/HmaUXzFsW6nnLn/P83WzcZoBdpuEaNsAs56i9r/I0VaNSHWQwDx5Q==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/bitbox-cli/-/bitbox-cli-1.5.4.tgz", + "integrity": "sha512-6R6LIVmUnO0/gcDSHALZWSx9biZ/CoCpZuSbcqEQXXn0V7M2yAEeFYZ88O08XuAjnZO873eoQ1XVPZghvoihYw==", "requires": { "assert": "1.4.1", "axios": "0.17.1", @@ -1105,7 +1225,7 @@ "bchaddrjs": "0.2.2", "bigi": "1.4.2", "bip21": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "bip32-utils": "github:Bitcoin-com/bip32-utils#a747210cf5636b2bd78ec151e7024275814b5f35", + "bip32-utils": "github:Bitcoin-com/bip32-utils#0c7a1129e8b49da5800edb5c9add142b72308faf", "bip38": "2.0.2", "bip39": "2.5.0", "bip66": "1.1.5", @@ -1142,14 +1262,2066 @@ }, "dependencies": { "bip32-utils": { - "version": "github:Bitcoin-com/bip32-utils#a747210cf5636b2bd78ec151e7024275814b5f35", + "version": "github:Bitcoin-com/bip32-utils#0c7a1129e8b49da5800edb5c9add142b72308faf", "requires": { - "bitbox-cli": "1.5.3", + "bitbox-cli": "1.5.4", "keccak": "1.4.0", - "nyc": "11.9.0", + "nyc": "12.0.2", "standard": "11.0.1", "tape": "4.9.1" } + }, + "nyc": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-12.0.2.tgz", + "integrity": "sha1-ikpO1pCWbBHsWH/4fuoMEsl0upk=", + "requires": { + "archy": "1.0.0", + "arrify": "1.0.1", + "caching-transform": "1.0.1", + "convert-source-map": "1.5.1", + "debug-log": "1.0.1", + "default-require-extensions": "1.0.0", + "find-cache-dir": "0.1.1", + "find-up": "2.1.0", + "foreground-child": "1.5.6", + "glob": "7.1.2", + "istanbul-lib-coverage": "1.2.0", + "istanbul-lib-hook": "1.1.0", + "istanbul-lib-instrument": "2.3.2", + "istanbul-lib-report": "1.1.3", + "istanbul-lib-source-maps": "1.2.5", + "istanbul-reports": "1.4.1", + "md5-hex": "1.3.0", + "merge-source-map": "1.1.0", + "micromatch": "3.1.10", + "mkdirp": "0.5.1", + "resolve-from": "2.0.0", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "spawn-wrap": "1.4.2", + "test-exclude": "4.2.1", + "yargs": "11.1.0", + "yargs-parser": "8.1.0" + }, + "dependencies": { + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "append-transform": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "requires": { + "default-require-extensions": "1.0.0" + } + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + }, + "atob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", + "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", + "requires": { + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=" + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", + "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" + } + }, + "caching-transform": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", + "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", + "requires": { + "md5-hex": "1.3.0", + "mkdirp": "0.5.1", + "write-file-atomic": "1.3.4" + } + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "optional": true + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "optional": true, + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "optional": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "optional": true + } + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "convert-source-map": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=" + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "cross-spawn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "requires": { + "lru-cache": "4.1.3", + "which": "1.3.1" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", + "requires": { + "ms": "2.0.0" + } + }, + "debug-log": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", + "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=" + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "default-require-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "requires": { + "strip-bom": "2.0.0" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=" + } + } + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "requires": { + "is-arrayish": "0.2.1" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "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" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.1" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", + "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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=" + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "find-cache-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "requires": { + "commondir": "1.0.1", + "mkdirp": "0.5.1", + "pkg-dir": "1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "2.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "foreground-child": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", + "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "requires": { + "cross-spawn": "4.0.2", + "signal-exit": "3.0.2" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "0.2.2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", + "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", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "handlebars": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "requires": { + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "hosted-git-info": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", + "integrity": "sha1-IyNbKasjDFdqqw1PE/wEawsDgiI=" + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=" + }, + "is-builtin-module": { + "version": "1.0.0", + "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" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=" + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "3.2.2" + } + }, + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha1-dkZiRnH9fqVYzNmieVGC8pWPGyQ=", + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha1-ACbjf1RU1z41bf5lZGmYZ8an8P8=" + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", + "requires": { + "isobject": "3.0.1" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "istanbul-lib-coverage": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", + "integrity": "sha1-99jy5CuX43/nlhFMsPnWi146Q0E=" + }, + "istanbul-lib-hook": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", + "integrity": "sha1-hTjZcDcss3FtU+VVI91UtVeo2Js=", + "requires": { + "append-transform": "0.4.0" + } + }, + "istanbul-lib-report": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz", + "integrity": "sha1-LfEhiMD6d5kMDSF20tC6M5QYglk=", + "requires": { + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.5.tgz", + "integrity": "sha1-/+a+Tnq4bTYD5CkNVJkLFFBvybE=", + "requires": { + "debug": "3.1.0", + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" + } + }, + "istanbul-reports": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.4.1.tgz", + "integrity": "sha1-Ty6OkoqnoF0dpsQn1AmLJlXsczQ=", + "requires": { + "handlebars": "4.0.11" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "optional": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "requires": { + "invert-kv": "1.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "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" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } + } + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" + }, + "lru-cache": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha1-oRdc80lt/IQ2wVbDNLSVWZK85pw=", + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "1.0.1" + } + }, + "md5-hex": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", + "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", + "requires": { + "md5-o-matic": "0.1.1" + } + }, + "md5-o-matic": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", + "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=" + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "requires": { + "mimic-fn": "1.2.0" + } + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha1-L93n5gIJOfcJBqaPLXrmheTIxkY=", + "requires": { + "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": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=" + } + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha1-pJ5yaNzhoNlpjkUybFYm3zVD0P4=", + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "integrity": "sha1-h59xUMstq3pHElkGbBBO7m4Pp8I=", + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-odd": "2.0.0", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=" + } + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha1-EvlaMH1YNSB1oEkHuErIvpisAS8=", + "requires": { + "hosted-git-info": "2.6.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "2.0.1" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "3.0.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1.0.2" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "requires": { + "minimist": "0.0.8", + "wordwrap": "0.0.3" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha1-QrwpAKa1uL0XN2yOiCtlr8zyS/I=", + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-limit": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", + "integrity": "sha1-DpK2vty1nwIsE9DxlJ3ILRWQnxw=", + "requires": { + "p-try": "1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "1.2.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "1.3.1" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "2.0.1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" + }, + "path-type": { + "version": "1.1.0", + "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" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "2.0.4" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "requires": { + "find-up": "1.1.2" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "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" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "read-pkg": { + "version": "1.1.0", + "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" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "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" + } + } + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + }, + "resolve-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=" + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "optional": true, + "requires": { + "align-text": "0.1.4" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha1-LtgVDSShbqhlHm1u8PR8QVjOejY=", + "requires": { + "glob": "7.1.2" + } + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "0.1.15" + } + }, + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha1-3Eu8emyp2Rbe5dQ1FvAJK1j3uKs=" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha1-ca5KiPD+77v1LR6mBPP7MV67YnQ=", + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "slide": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", + "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.2", + "use": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=" + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", + "requires": { + "kind-of": "3.2.2" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha1-cuLMNAlVQ+Q7LGKyxMENSpBU8lk=", + "requires": { + "atob": "2.1.1", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + }, + "spawn-wrap": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", + "integrity": "sha1-z/WOc6giRhe2Vhq9wyWG6gyCJIw=", + "requires": { + "foreground-child": "1.5.6", + "mkdirp": "0.5.1", + "os-homedir": "1.0.2", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "which": "1.3.1" + } + }, + "spdx-correct": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha1-BaW01xU6GVvJLDxCW2nzsqlSTII=", + "requires": { + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha1-LHrmEFbHFKW5ubKyr30xHvXHj+k=" + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha1-meEZt6XaAOBUkcn6M4t5BII7QdA=", + "requires": { + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", + "integrity": "sha1-enzShHDMbToc/m1miG9rxDDTrIc=" + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", + "requires": { + "extend-shallow": "3.0.2" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "3.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "0.2.1" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "test-exclude": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", + "integrity": "sha1-36Ii8DSAvKaSB8pyizfXS0X3JPo=", + "requires": { + "arrify": "1.0.1", + "micromatch": "3.1.10", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" + } + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "3.2.2" + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", + "requires": { + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "optional": true, + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "optional": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "optional": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "requires": { + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" + } + } + } + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "use": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha1-FHFr8D/f79AwQK71jYtLhfOnxUQ=", + "requires": { + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=" + } + } + }, + "validate-npm-package-license": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", + "integrity": "sha1-gWQ7y+8b3+zUYjeT3EZIlIupgzg=", + "requires": { + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "requires": { + "isexe": "2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "optional": true + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "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" + } + }, + "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" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write-file-atomic": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", + "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", + "requires": { + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" + } + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yargs": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", + "integrity": "sha1-kLhpk07W6HERXqL/WLA/RyTtLXc=", + "requires": { + "cliui": "4.1.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": "9.0.2" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha1-NIQi2+gtgAswIu709qwQvy5NG0k=", + "requires": { + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" + } + }, + "yargs-parser": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", + "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "requires": { + "camelcase": "4.1.0" + } + } + } + }, + "yargs-parser": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", + "integrity": "sha1-8TdqM7Ziml0GN4KUTacyYx6WaVA=", + "requires": { + "camelcase": "4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + } + } + } + } } } }, @@ -1491,6 +3663,14 @@ "wrap-ansi": "2.1.0" }, "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } + }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -1626,6 +3806,13 @@ "nested-error-stacks": "2.1.0", "pify": "3.0.0", "safe-buffer": "5.1.2" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } } }, "create-hash": { @@ -1661,17 +3848,6 @@ "lru-cache": "4.1.3", "shebang-command": "1.2.0", "which": "1.3.1" - }, - "dependencies": { - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } - } } }, "debug": { @@ -1749,13 +3925,6 @@ "pify": "2.3.0", "pinkie-promise": "2.0.1", "rimraf": "2.6.2" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } } }, "detect-indent": { @@ -2266,11 +4435,12 @@ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" }, "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "requires": { - "locate-path": "2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } }, "flat-cache": { @@ -2343,21 +4513,25 @@ "dependencies": { "abbrev": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "optional": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "aproba": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "optional": true }, "are-we-there-yet": { "version": "1.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "optional": true, "requires": { "delegates": "1.0.0", @@ -2366,11 +4540,13 @@ }, "balanced-match": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "brace-expansion": { "version": "1.1.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -2378,29 +4554,35 @@ }, "chownr": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", "optional": true }, "code-point-at": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "concat-map": { "version": "0.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, "core-util-is": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "optional": true }, "debug": { "version": "2.6.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "optional": true, "requires": { "ms": "2.0.0" @@ -2408,22 +4590,26 @@ }, "deep-extend": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", + "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", "optional": true }, "delegates": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "optional": true }, "detect-libc": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", "optional": true }, "fs-minipass": { "version": "1.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", + "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", "optional": true, "requires": { "minipass": "2.2.4" @@ -2431,12 +4617,14 @@ }, "fs.realpath": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "optional": true }, "gauge": { "version": "2.7.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "optional": true, "requires": { "aproba": "1.2.0", @@ -2451,7 +4639,8 @@ }, "glob": { "version": "7.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "optional": true, "requires": { "fs.realpath": "1.0.0", @@ -2464,12 +4653,14 @@ }, "has-unicode": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "optional": true }, "iconv-lite": { "version": "0.4.21", - "bundled": true, + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.21.tgz", + "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", "optional": true, "requires": { "safer-buffer": "2.1.2" @@ -2477,7 +4668,8 @@ }, "ignore-walk": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", + "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "optional": true, "requires": { "minimatch": "3.0.4" @@ -2485,7 +4677,8 @@ }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "optional": true, "requires": { "once": "1.4.0", @@ -2494,39 +4687,46 @@ }, "inherits": { "version": "2.0.3", - "bundled": true + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { "version": "1.3.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "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" } }, "isarray": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "optional": true }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "1.1.11" } }, "minimist": { "version": "0.0.8", - "bundled": true + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, "minipass": { "version": "2.2.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.4.tgz", + "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", "requires": { "safe-buffer": "5.1.1", "yallist": "3.0.2" @@ -2534,7 +4734,8 @@ }, "minizlib": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", + "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", "optional": true, "requires": { "minipass": "2.2.4" @@ -2542,19 +4743,22 @@ }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "optional": true }, "needle": { "version": "2.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/needle/-/needle-2.2.0.tgz", + "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", "optional": true, "requires": { "debug": "2.6.9", @@ -2564,7 +4768,8 @@ }, "node-pre-gyp": { "version": "0.10.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.10.0.tgz", + "integrity": "sha512-G7kEonQLRbcA/mOoFoxvlMrw6Q6dPf92+t/l0DFSMuSlDoWaI9JWIyPwK0jyE1bph//CUEL65/Fz1m2vJbmjQQ==", "optional": true, "requires": { "detect-libc": "1.0.3", @@ -2581,7 +4786,8 @@ }, "nopt": { "version": "4.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "optional": true, "requires": { "abbrev": "1.1.1", @@ -2590,12 +4796,14 @@ }, "npm-bundled": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.3.tgz", + "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", "optional": true }, "npm-packlist": { "version": "1.1.10", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.10.tgz", + "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", "optional": true, "requires": { "ignore-walk": "3.0.1", @@ -2604,7 +4812,8 @@ }, "npmlog": { "version": "4.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "optional": true, "requires": { "are-we-there-yet": "1.1.4", @@ -2615,33 +4824,39 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "optional": true }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { "wrappy": "1.0.2" } }, "os-homedir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "optional": true }, "os-tmpdir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "optional": true }, "osenv": { "version": "0.1.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "optional": true, "requires": { "os-homedir": "1.0.2", @@ -2650,17 +4865,20 @@ }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "optional": true }, "process-nextick-args": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "optional": true }, "rc": { "version": "1.2.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz", + "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", "optional": true, "requires": { "deep-extend": "0.5.1", @@ -2671,14 +4889,16 @@ "dependencies": { "minimist": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "optional": true } } }, "readable-stream": { "version": "2.3.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "optional": true, "requires": { "core-util-is": "1.0.2", @@ -2692,7 +4912,8 @@ }, "rimraf": { "version": "2.6.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "optional": true, "requires": { "glob": "7.1.2" @@ -2700,36 +4921,43 @@ }, "safe-buffer": { "version": "5.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, "safer-buffer": { "version": "2.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "optional": true }, "sax": { "version": "1.2.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "optional": true }, "semver": { "version": "5.5.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", "optional": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "optional": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "optional": true }, "string-width": { "version": "1.0.2", - "bundled": true, + "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", @@ -2738,7 +4966,8 @@ }, "string_decoder": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "optional": true, "requires": { "safe-buffer": "5.1.1" @@ -2746,19 +4975,22 @@ }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "2.1.1" } }, "strip-json-comments": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "optional": true }, "tar": { "version": "4.4.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.1.tgz", + "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", "optional": true, "requires": { "chownr": "1.0.1", @@ -2772,12 +5004,14 @@ }, "util-deprecate": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "optional": true }, "wide-align": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "optional": true, "requires": { "string-width": "1.0.2" @@ -2785,11 +5019,13 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "yallist": { "version": "3.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", + "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" } } }, @@ -2876,13 +5112,6 @@ "object-assign": "4.1.1", "pify": "2.3.0", "pinkie-promise": "2.0.1" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } } }, "good": { @@ -3379,6 +5608,13 @@ "items": "1.1.1", "joi": "6.10.1", "lru-cache": "2.7.3" + }, + "dependencies": { + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" + } } }, "inflight": { @@ -3521,12 +5757,9 @@ } }, "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "1.0.1" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "is-glob": { "version": "2.0.1", @@ -3630,6 +5863,25 @@ "isarray": "1.0.0" } }, + "istanbul-lib-coverage": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", + "integrity": "sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA==" + }, + "istanbul-lib-instrument": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-2.3.2.tgz", + "integrity": "sha512-l7TD/VnBsIB2OJvSyxaLW/ab1+92dxZNH9wLH7uHPPioy3JZ8tnx2UXUdKmdkgmP2EFPzg64CToUP6dAS3U32Q==", + "requires": { + "@babel/generator": "7.0.0-beta.51", + "@babel/parser": "7.0.0-beta.51", + "@babel/template": "7.0.0-beta.51", + "@babel/traverse": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51", + "istanbul-lib-coverage": "2.0.1", + "semver": "5.5.0" + } + }, "items": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/items/-/items-1.1.1.tgz", @@ -3756,13 +6008,6 @@ "parse-json": "2.2.0", "pify": "2.3.0", "strip-bom": "3.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } } }, "locate-path": { @@ -3772,6 +6017,13 @@ "requires": { "p-locate": "2.0.0", "path-exists": "3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } } }, "lodash": { @@ -3805,9 +6057,13 @@ } }, "lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } }, "make-dir": { "version": "1.3.0", @@ -3815,6 +6071,13 @@ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "requires": { "pify": "3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } } }, "math-random": { @@ -4085,7 +6348,8 @@ "dependencies": { "align-text": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "requires": { "kind-of": "3.2.2", "longest": "1.0.1", @@ -4094,62 +6358,76 @@ }, "amdefine": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { "version": "2.2.1", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, "append-transform": { "version": "0.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", "requires": { "default-require-extensions": "1.0.0" } }, "archy": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" }, "arr-diff": { "version": "4.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "arr-flatten": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" }, "arr-union": { "version": "3.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, "array-unique": { "version": "0.3.2", - "bundled": true + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "arrify": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" }, "assign-symbols": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, "async": { "version": "1.5.2", - "bundled": true + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" }, "atob": { "version": "2.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", + "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=" }, "babel-code-frame": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { "chalk": "1.1.3", "esutils": "2.0.2", @@ -4158,7 +6436,8 @@ }, "babel-generator": { "version": "6.26.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "requires": { "babel-messages": "6.23.0", "babel-runtime": "6.26.0", @@ -4172,14 +6451,16 @@ }, "babel-messages": { "version": "6.23.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "requires": { "babel-runtime": "6.26.0" } }, "babel-runtime": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { "core-js": "2.5.6", "regenerator-runtime": "0.11.1" @@ -4187,7 +6468,8 @@ }, "babel-template": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "requires": { "babel-runtime": "6.26.0", "babel-traverse": "6.26.0", @@ -4198,7 +6480,8 @@ }, "babel-traverse": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "requires": { "babel-code-frame": "6.26.0", "babel-messages": "6.23.0", @@ -4213,7 +6496,8 @@ }, "babel-types": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { "babel-runtime": "6.26.0", "esutils": "2.0.2", @@ -4223,15 +6507,18 @@ }, "babylon": { "version": "6.18.0", - "bundled": true + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" }, "balanced-match": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base": { "version": "0.11.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { "cache-base": "1.0.1", "class-utils": "0.3.6", @@ -4244,28 +6531,32 @@ "dependencies": { "define-property": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -4274,17 +6565,20 @@ }, "isobject": { "version": "3.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "kind-of": { "version": "6.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, "brace-expansion": { "version": "1.1.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -4292,7 +6586,8 @@ }, "braces": { "version": "2.3.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "requires": { "arr-flatten": "1.1.0", "array-unique": "0.3.2", @@ -4308,7 +6603,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } @@ -4317,11 +6613,13 @@ }, "builtin-modules": { "version": "1.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" }, "cache-base": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "requires": { "collection-visit": "1.0.0", "component-emitter": "1.2.1", @@ -4336,13 +6634,15 @@ "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, "caching-transform": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", + "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", "requires": { "md5-hex": "1.3.0", "mkdirp": "0.5.1", @@ -4351,12 +6651,14 @@ }, "camelcase": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", "optional": true }, "center-align": { "version": "0.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "optional": true, "requires": { "align-text": "0.1.4", @@ -4365,7 +6667,8 @@ }, "chalk": { "version": "1.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { "ansi-styles": "2.2.1", "escape-string-regexp": "1.0.5", @@ -4376,7 +6679,8 @@ }, "class-utils": { "version": "0.3.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "requires": { "arr-union": "3.1.0", "define-property": "0.2.5", @@ -4386,20 +6690,23 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "0.1.6" } }, "isobject": { "version": "3.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, "cliui": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "optional": true, "requires": { "center-align": "0.1.3", @@ -4409,18 +6716,21 @@ "dependencies": { "wordwrap": { "version": "0.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", "optional": true } } }, "code-point-at": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "collection-visit": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { "map-visit": "1.0.0", "object-visit": "1.0.1" @@ -4428,31 +6738,38 @@ }, "commondir": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" }, "component-emitter": { "version": "1.2.1", - "bundled": true + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" }, "concat-map": { "version": "0.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "convert-source-map": { "version": "1.5.1", - "bundled": true + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=" }, "copy-descriptor": { "version": "0.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "core-js": { "version": "2.5.6", - "bundled": true + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.6.tgz", + "integrity": "sha512-lQUVfQi0aLix2xpyjrrJEvfuYCqPc/HwmTKsC/VNf8q0zsjX7SQZtp4+oRONN5Tsur9GDETPjj+Ub2iDiGZfSQ==" }, "cross-spawn": { "version": "4.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", "requires": { "lru-cache": "4.1.3", "which": "1.3.0" @@ -4460,33 +6777,39 @@ }, "debug": { "version": "2.6.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { "ms": "2.0.0" } }, "debug-log": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", + "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=" }, "decamelize": { "version": "1.2.0", - "bundled": true + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, "decode-uri-component": { "version": "0.2.0", - "bundled": true + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, "default-require-extensions": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", "requires": { "strip-bom": "2.0.0" } }, "define-property": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "requires": { "is-descriptor": "1.0.2", "isobject": "3.0.1" @@ -4494,21 +6817,24 @@ "dependencies": { "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -4517,39 +6843,46 @@ }, "isobject": { "version": "3.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "kind-of": { "version": "6.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, "detect-indent": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "requires": { "repeating": "2.0.1" } }, "error-ex": { "version": "1.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "requires": { "is-arrayish": "0.2.1" } }, "escape-string-regexp": { "version": "1.0.5", - "bundled": true + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "esutils": { "version": "2.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" }, "execa": { "version": "0.7.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "requires": { "cross-spawn": "5.1.0", "get-stream": "3.0.0", @@ -4562,7 +6895,8 @@ "dependencies": { "cross-spawn": { "version": "5.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { "lru-cache": "4.1.3", "shebang-command": "1.2.0", @@ -4573,7 +6907,8 @@ }, "expand-brackets": { "version": "2.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { "debug": "2.6.9", "define-property": "0.2.5", @@ -4586,14 +6921,16 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "0.1.6" } }, "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } @@ -4602,7 +6939,8 @@ }, "extend-shallow": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { "assign-symbols": "1.0.0", "is-extendable": "1.0.1" @@ -4610,7 +6948,8 @@ "dependencies": { "is-extendable": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { "is-plain-object": "2.0.4" } @@ -4619,7 +6958,8 @@ }, "extglob": { "version": "2.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "requires": { "array-unique": "0.3.2", "define-property": "1.0.0", @@ -4633,35 +6973,40 @@ "dependencies": { "define-property": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "1.0.2" } }, "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -4670,13 +7015,15 @@ }, "kind-of": { "version": "6.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, "fill-range": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { "extend-shallow": "2.0.1", "is-number": "3.0.0", @@ -4686,7 +7033,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } @@ -4695,7 +7043,8 @@ }, "find-cache-dir": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", "requires": { "commondir": "1.0.1", "mkdirp": "0.5.1", @@ -4704,18 +7053,21 @@ }, "find-up": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { "locate-path": "2.0.0" } }, "for-in": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" }, "foreground-child": { "version": "1.5.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", + "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", "requires": { "cross-spawn": "4.0.2", "signal-exit": "3.0.2" @@ -4723,30 +7075,36 @@ }, "fragment-cache": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { "map-cache": "0.2.2" } }, "fs.realpath": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "get-caller-file": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" }, "get-stream": { "version": "3.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, "get-value": { "version": "2.0.6", - "bundled": true + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" }, "glob": { "version": "7.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -4758,15 +7116,18 @@ }, "globals": { "version": "9.18.0", - "bundled": true + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" }, "graceful-fs": { "version": "4.1.11", - "bundled": true + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" }, "handlebars": { "version": "4.0.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "requires": { "async": "1.5.2", "optimist": "0.6.1", @@ -4776,7 +7137,8 @@ "dependencies": { "source-map": { "version": "0.4.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "requires": { "amdefine": "1.0.1" } @@ -4785,18 +7147,21 @@ }, "has-ansi": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { "ansi-regex": "2.1.1" } }, "has-flag": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" }, "has-value": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "requires": { "get-value": "2.0.6", "has-values": "1.0.0", @@ -4805,13 +7170,15 @@ "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, "has-values": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { "is-number": "3.0.0", "kind-of": "4.0.0" @@ -4819,14 +7186,16 @@ "dependencies": { "is-number": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "1.1.6" } @@ -4835,7 +7204,8 @@ }, "kind-of": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { "is-buffer": "1.1.6" } @@ -4844,15 +7214,18 @@ }, "hosted-git-info": { "version": "2.6.0", - "bundled": true + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", + "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==" }, "imurmurhash": { "version": "0.1.4", - "bundled": true + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -4860,51 +7233,60 @@ }, "inherits": { "version": "2.0.3", - "bundled": true + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "invariant": { "version": "2.2.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { "loose-envify": "1.3.1" } }, "invert-kv": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" }, "is-accessor-descriptor": { "version": "0.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { "kind-of": "3.2.2" } }, "is-arrayish": { "version": "0.2.1", - "bundled": true + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "is-buffer": { "version": "1.1.6", - "bundled": true + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-builtin-module": { "version": "1.0.0", - "bundled": true, + "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" } }, "is-data-descriptor": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { "kind-of": "3.2.2" } }, "is-descriptor": { "version": "0.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "requires": { "is-accessor-descriptor": "0.1.6", "is-data-descriptor": "0.1.4", @@ -4913,96 +7295,114 @@ "dependencies": { "kind-of": { "version": "5.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, "is-extendable": { "version": "0.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" }, "is-finite": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "requires": { "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "is-number": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { "kind-of": "3.2.2" } }, "is-odd": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", "requires": { "is-number": "4.0.0" }, "dependencies": { "is-number": { "version": "4.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" } } }, "is-plain-object": { "version": "2.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, "is-stream": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "is-utf8": { "version": "0.2.1", - "bundled": true + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" }, "is-windows": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" }, "isarray": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isexe": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { "version": "3.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "istanbul-lib-coverage": { "version": "1.2.0", - "bundled": true + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", + "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==" }, "istanbul-lib-hook": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", + "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", "requires": { "append-transform": "0.4.0" } }, "istanbul-lib-instrument": { "version": "1.10.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", + "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", "requires": { "babel-generator": "6.26.1", "babel-template": "6.26.0", @@ -5015,7 +7415,8 @@ }, "istanbul-lib-report": { "version": "1.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz", + "integrity": "sha512-D4jVbMDtT2dPmloPJS/rmeP626N5Pr3Rp+SovrPn1+zPChGHcggd/0sL29jnbm4oK9W0wHjCRsdch9oLd7cm6g==", "requires": { "istanbul-lib-coverage": "1.2.0", "mkdirp": "0.5.1", @@ -5025,7 +7426,8 @@ "dependencies": { "supports-color": { "version": "3.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "requires": { "has-flag": "1.0.0" } @@ -5034,7 +7436,8 @@ }, "istanbul-lib-source-maps": { "version": "1.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz", + "integrity": "sha512-fDa0hwU/5sDXwAklXgAoCJCOsFsBplVQ6WBldz5UwaqOzmDhUK4nfuR7/G//G2lERlblUNJB8P6e8cXq3a7MlA==", "requires": { "debug": "3.1.0", "istanbul-lib-coverage": "1.2.0", @@ -5045,7 +7448,8 @@ "dependencies": { "debug": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "requires": { "ms": "2.0.0" } @@ -5054,41 +7458,48 @@ }, "istanbul-reports": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.4.0.tgz", + "integrity": "sha512-OPzVo1fPZ2H+owr8q/LYKLD+vquv9Pj4F+dj808MdHbuQLD7S4ACRjcX+0Tne5Vxt2lxXvdZaL7v+FOOAV281w==", "requires": { "handlebars": "4.0.11" } }, "js-tokens": { "version": "3.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" }, "jsesc": { "version": "1.3.0", - "bundled": true + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" }, "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "1.1.6" } }, "lazy-cache": { "version": "1.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", "optional": true }, "lcid": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { "invert-kv": "1.0.0" } }, "load-json-file": { "version": "1.1.0", - "bundled": true, + "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", @@ -5099,7 +7510,8 @@ }, "locate-path": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { "p-locate": "2.0.0", "path-exists": "3.0.0" @@ -5107,28 +7519,33 @@ "dependencies": { "path-exists": { "version": "3.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" } } }, "lodash": { "version": "4.17.10", - "bundled": true + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" }, "longest": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" }, "loose-envify": { "version": "1.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "requires": { "js-tokens": "3.0.2" } }, "lru-cache": { "version": "4.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { "pseudomap": "1.0.2", "yallist": "2.1.2" @@ -5136,49 +7553,57 @@ }, "map-cache": { "version": "0.2.2", - "bundled": true + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, "map-visit": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { "object-visit": "1.0.1" } }, "md5-hex": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", + "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "requires": { "md5-o-matic": "0.1.1" } }, "md5-o-matic": { "version": "0.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", + "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=" }, "mem": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { "mimic-fn": "1.2.0" } }, "merge-source-map": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", "requires": { "source-map": "0.6.1" }, "dependencies": { "source-map": { "version": "0.6.1", - "bundled": true + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, "micromatch": { "version": "3.1.10", - "bundled": true, + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -5197,28 +7622,33 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, "mimic-fn": { "version": "1.2.0", - "bundled": true + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "1.1.11" } }, "minimist": { "version": "0.0.8", - "bundled": true + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, "mixin-deep": { "version": "1.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "requires": { "for-in": "1.0.2", "is-extendable": "1.0.1" @@ -5226,7 +7656,8 @@ "dependencies": { "is-extendable": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { "is-plain-object": "2.0.4" } @@ -5235,18 +7666,21 @@ }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "nanomatch": { "version": "1.2.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -5264,21 +7698,25 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "array-unique": { "version": "0.3.2", - "bundled": true + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "kind-of": { "version": "6.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, "normalize-package-data": { "version": "2.4.0", - "bundled": true, + "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.6.0", "is-builtin-module": "1.0.0", @@ -5288,22 +7726,26 @@ }, "npm-run-path": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { "path-key": "2.0.1" } }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "object-assign": { "version": "4.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-copy": { "version": "0.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "requires": { "copy-descriptor": "0.1.1", "define-property": "0.2.5", @@ -5312,7 +7754,8 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "0.1.6" } @@ -5321,40 +7764,46 @@ }, "object-visit": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, "object.pick": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { "wrappy": "1.0.2" } }, "optimist": { "version": "0.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "requires": { "minimist": "0.0.8", "wordwrap": "0.0.3" @@ -5362,11 +7811,13 @@ }, "os-homedir": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-locale": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "requires": { "execa": "0.7.0", "lcid": "1.0.0", @@ -5375,59 +7826,70 @@ }, "p-finally": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "p-limit": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", + "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", "requires": { "p-try": "1.0.0" } }, "p-locate": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { "p-limit": "1.2.0" } }, "p-try": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" }, "parse-json": { "version": "2.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { "error-ex": "1.3.1" } }, "pascalcase": { "version": "0.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" }, "path-exists": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "requires": { "pinkie-promise": "2.0.1" } }, "path-is-absolute": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-key": { "version": "2.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, "path-parse": { "version": "1.0.5", - "bundled": true + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" }, "path-type": { "version": "1.1.0", - "bundled": true, + "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", @@ -5436,29 +7898,34 @@ }, "pify": { "version": "2.3.0", - "bundled": true + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, "pinkie": { "version": "2.0.4", - "bundled": true + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" }, "pinkie-promise": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { "pinkie": "2.0.4" } }, "pkg-dir": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "requires": { "find-up": "1.1.2" }, "dependencies": { "find-up": { "version": "1.1.2", - "bundled": true, + "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" @@ -5468,15 +7935,18 @@ }, "posix-character-classes": { "version": "0.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "pseudomap": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, "read-pkg": { "version": "1.1.0", - "bundled": true, + "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", @@ -5485,7 +7955,8 @@ }, "read-pkg-up": { "version": "1.0.1", - "bundled": true, + "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" @@ -5493,7 +7964,8 @@ "dependencies": { "find-up": { "version": "1.1.2", - "bundled": true, + "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" @@ -5503,11 +7975,13 @@ }, "regenerator-runtime": { "version": "0.11.1", - "bundled": true + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" }, "regex-not": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "requires": { "extend-shallow": "3.0.2", "safe-regex": "1.1.0" @@ -5515,42 +7989,51 @@ }, "repeat-element": { "version": "1.1.2", - "bundled": true + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" }, "repeat-string": { "version": "1.6.1", - "bundled": true + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, "repeating": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "requires": { "is-finite": "1.0.2" } }, "require-directory": { "version": "2.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, "require-main-filename": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" }, "resolve-from": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" }, "resolve-url": { "version": "0.2.1", - "bundled": true + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" }, "ret": { "version": "0.1.15", - "bundled": true + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" }, "right-align": { "version": "0.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "optional": true, "requires": { "align-text": "0.1.4" @@ -5558,29 +8041,34 @@ }, "rimraf": { "version": "2.6.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { "glob": "7.1.2" } }, "safe-regex": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { "ret": "0.1.15" } }, "semver": { "version": "5.5.0", - "bundled": true + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" }, "set-blocking": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "set-value": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "requires": { "extend-shallow": "2.0.1", "is-extendable": "0.1.1", @@ -5590,7 +8078,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } @@ -5599,26 +8088,31 @@ }, "shebang-command": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { "shebang-regex": "1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, "signal-exit": { "version": "3.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "slide": { "version": "1.1.6", - "bundled": true + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" }, "snapdragon": { "version": "0.8.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "requires": { "base": "0.11.2", "debug": "2.6.9", @@ -5632,14 +8126,16 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "0.1.6" } }, "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } @@ -5648,7 +8144,8 @@ }, "snapdragon-node": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "requires": { "define-property": "1.0.0", "isobject": "3.0.1", @@ -5657,28 +8154,32 @@ "dependencies": { "define-property": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -5687,28 +8188,33 @@ }, "isobject": { "version": "3.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "kind-of": { "version": "6.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, "snapdragon-util": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "requires": { "kind-of": "3.2.2" } }, "source-map": { "version": "0.5.7", - "bundled": true + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "source-map-resolve": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", "requires": { "atob": "2.1.1", "decode-uri-component": "0.2.0", @@ -5719,11 +8225,13 @@ }, "source-map-url": { "version": "0.4.0", - "bundled": true + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, "spawn-wrap": { "version": "1.4.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", + "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", "requires": { "foreground-child": "1.5.6", "mkdirp": "0.5.1", @@ -5735,7 +8243,8 @@ }, "spdx-correct": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "requires": { "spdx-expression-parse": "3.0.0", "spdx-license-ids": "3.0.0" @@ -5743,11 +8252,13 @@ }, "spdx-exceptions": { "version": "2.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==" }, "spdx-expression-parse": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { "spdx-exceptions": "2.1.0", "spdx-license-ids": "3.0.0" @@ -5755,18 +8266,21 @@ }, "spdx-license-ids": { "version": "3.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", + "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==" }, "split-string": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "requires": { "extend-shallow": "3.0.2" } }, "static-extend": { "version": "0.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { "define-property": "0.2.5", "object-copy": "0.1.0" @@ -5774,7 +8288,8 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "0.1.6" } @@ -5783,7 +8298,8 @@ }, "string-width": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "requires": { "is-fullwidth-code-point": "2.0.0", "strip-ansi": "4.0.0" @@ -5791,11 +8307,13 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "strip-ansi": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { "ansi-regex": "3.0.0" } @@ -5804,29 +8322,34 @@ }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "2.1.1" } }, "strip-bom": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { "is-utf8": "0.2.1" } }, "strip-eof": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, "supports-color": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" }, "test-exclude": { "version": "4.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", + "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", "requires": { "arrify": "1.0.1", "micromatch": "3.1.10", @@ -5837,15 +8360,18 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "array-unique": { "version": "0.3.2", - "bundled": true + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "braces": { "version": "2.3.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "requires": { "arr-flatten": "1.1.0", "array-unique": "0.3.2", @@ -5861,7 +8387,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } @@ -5870,7 +8397,8 @@ }, "expand-brackets": { "version": "2.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { "debug": "2.6.9", "define-property": "0.2.5", @@ -5883,28 +8411,32 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "0.1.6" } }, "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { "version": "0.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "1.1.6" } @@ -5913,14 +8445,16 @@ }, "is-data-descriptor": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "1.1.6" } @@ -5929,7 +8463,8 @@ }, "is-descriptor": { "version": "0.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "requires": { "is-accessor-descriptor": "0.1.6", "is-data-descriptor": "0.1.4", @@ -5938,13 +8473,15 @@ }, "kind-of": { "version": "5.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, "extglob": { "version": "2.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "requires": { "array-unique": "0.3.2", "define-property": "1.0.0", @@ -5958,14 +8495,16 @@ "dependencies": { "define-property": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "1.0.2" } }, "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } @@ -5974,7 +8513,8 @@ }, "fill-range": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { "extend-shallow": "2.0.1", "is-number": "3.0.0", @@ -5984,7 +8524,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } @@ -5993,21 +8534,24 @@ }, "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -6016,14 +8560,16 @@ }, "is-number": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "1.1.6" } @@ -6032,15 +8578,18 @@ }, "isobject": { "version": "3.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "kind-of": { "version": "6.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" }, "micromatch": { "version": "3.1.10", - "bundled": true, + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -6061,18 +8610,21 @@ }, "to-fast-properties": { "version": "1.0.3", - "bundled": true + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" }, "to-object-path": { "version": "0.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { "kind-of": "3.2.2" } }, "to-regex": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "requires": { "define-property": "2.0.2", "extend-shallow": "3.0.2", @@ -6082,7 +8634,8 @@ }, "to-regex-range": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "requires": { "is-number": "3.0.0", "repeat-string": "1.6.1" @@ -6090,7 +8643,8 @@ "dependencies": { "is-number": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { "kind-of": "3.2.2" } @@ -6099,11 +8653,13 @@ }, "trim-right": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" }, "uglify-js": { "version": "2.8.29", - "bundled": true, + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "optional": true, "requires": { "source-map": "0.5.7", @@ -6113,7 +8669,8 @@ "dependencies": { "yargs": { "version": "3.10.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "optional": true, "requires": { "camelcase": "1.2.1", @@ -6126,12 +8683,14 @@ }, "uglify-to-browserify": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", "optional": true }, "union-value": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "requires": { "arr-union": "3.1.0", "get-value": "2.0.6", @@ -6141,14 +8700,16 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } }, "set-value": { "version": "0.4.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "requires": { "extend-shallow": "2.0.1", "is-extendable": "0.1.1", @@ -6160,7 +8721,8 @@ }, "unset-value": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { "has-value": "0.3.1", "isobject": "3.0.1" @@ -6168,7 +8730,8 @@ "dependencies": { "has-value": { "version": "0.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "requires": { "get-value": "2.0.6", "has-values": "0.1.4", @@ -6177,7 +8740,8 @@ "dependencies": { "isobject": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "requires": { "isarray": "1.0.0" } @@ -6186,34 +8750,40 @@ }, "has-values": { "version": "0.1.4", - "bundled": true + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" }, "isobject": { "version": "3.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, "urix": { "version": "0.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" }, "use": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", "requires": { "kind-of": "6.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, "validate-npm-package-license": { "version": "3.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", + "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "requires": { "spdx-correct": "3.0.0", "spdx-expression-parse": "3.0.0" @@ -6221,27 +8791,32 @@ }, "which": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "requires": { "isexe": "2.0.0" } }, "which-module": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, "window-size": { "version": "0.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", "optional": true }, "wordwrap": { "version": "0.0.3", - "bundled": true + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" }, "wrap-ansi": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { "string-width": "1.0.2", "strip-ansi": "3.0.1" @@ -6249,14 +8824,16 @@ "dependencies": { "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "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" } }, "string-width": { "version": "1.0.2", - "bundled": true, + "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", @@ -6267,11 +8844,13 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write-file-atomic": { "version": "1.3.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", + "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", "requires": { "graceful-fs": "4.1.11", "imurmurhash": "0.1.4", @@ -6280,15 +8859,18 @@ }, "y18n": { "version": "3.2.1", - "bundled": true + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" }, "yallist": { "version": "2.1.2", - "bundled": true + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" }, "yargs": { "version": "11.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", + "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", "requires": { "cliui": "4.1.0", "decamelize": "1.2.0", @@ -6306,15 +8888,18 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "camelcase": { "version": "4.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, "cliui": { "version": "4.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "requires": { "string-width": "2.1.1", "strip-ansi": "4.0.0", @@ -6323,14 +8908,16 @@ }, "strip-ansi": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { "ansi-regex": "3.0.0" } }, "yargs-parser": { "version": "9.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", + "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", "requires": { "camelcase": "4.1.0" } @@ -6339,14 +8926,16 @@ }, "yargs-parser": { "version": "8.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", + "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", "requires": { "camelcase": "4.1.0" }, "dependencies": { "camelcase": { "version": "4.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" } } } @@ -6504,9 +9093,12 @@ } }, "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "2.0.1" + } }, "path-is-absolute": { "version": "1.0.1", @@ -6551,13 +9143,6 @@ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { "pify": "2.3.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } } }, "pathval": { @@ -6579,9 +9164,9 @@ } }, "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, "pinkie": { "version": "2.0.4", @@ -6605,6 +9190,14 @@ "load-json-file": "4.0.0" }, "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "2.0.0" + } + }, "load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", @@ -6624,6 +9217,11 @@ "error-ex": "1.3.2", "json-parse-better-errors": "1.0.2" } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" } } }, @@ -6643,25 +9241,6 @@ "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "requires": { "find-up": "1.1.2" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "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": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "2.0.1" - } - } } }, "pluralize": { @@ -6796,6 +9375,16 @@ "requires": { "find-up": "2.1.0", "read-pkg": "2.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "2.0.0" + } + } } }, "readable-stream": { @@ -7140,13 +9729,6 @@ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "requires": { "is-fullwidth-code-point": "2.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - } } }, "socket.io": { @@ -7299,11 +9881,6 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", @@ -7638,6 +10215,14 @@ "strip-ansi": "3.0.1" }, "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } + }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", diff --git a/package.json b/package.json index 7b94c3bc..d9095eba 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.5.4", + "version": "1.5.5", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", @@ -34,7 +34,7 @@ "bchaddrjs": "^0.2.1", "bigi": "^1.4.2", "bip21": "Bitcoin-com/bip21", - "bip32-utils": "Bitcoin-com/bip32-utils#0.11.3", + "bip32-utils": "Bitcoin-com/bip32-utils#0.12.0", "bip38": "^2.0.2", "bip39": "^2.5.0", "bip66": "^1.1.5", From 917f3963de974ea10000ed0e2ee59b1db097484b Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 15 Aug 2018 17:19:25 -0700 Subject: [PATCH 059/480] Versions --- index.js | 2 +- package-lock.json | 4089 ++++++++++++++++++++++++++++++--------------- package.json | 4 +- 3 files changed, 2786 insertions(+), 1309 deletions(-) diff --git a/index.js b/index.js index 64e90263..0adffebe 100755 --- a/index.js +++ b/index.js @@ -19,7 +19,7 @@ let corsproxy = require('corsproxy'); let cmd = require('node-cmd'); program - .version('1.5.5'); + .version('1.5.6'); program .command('new ') diff --git a/package-lock.json b/package-lock.json index 8f524362..12324344 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.5.5", + "version": "1.5.6", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1161,13 +1161,1811 @@ } }, "bip32-utils": { - "version": "github:Bitcoin-com/bip32-utils#8357139b8537bc350c9b9235d689840bfaaaa33f", + "version": "github:Bitcoin-com/bip32-utils#154514b66924185d24a39574df8b4a4023b4f41a", "requires": { - "bitbox-cli": "1.5.4", + "bitbox-cli": "1.5.5", "keccak": "1.4.0", - "nyc": "11.9.0", + "nyc": "12.0.2", "standard": "11.0.1", "tape": "4.9.1" + }, + "dependencies": { + "nyc": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-12.0.2.tgz", + "integrity": "sha1-ikpO1pCWbBHsWH/4fuoMEsl0upk=", + "requires": { + "archy": "1.0.0", + "arrify": "1.0.1", + "caching-transform": "1.0.1", + "convert-source-map": "1.5.1", + "debug-log": "1.0.1", + "default-require-extensions": "1.0.0", + "find-cache-dir": "0.1.1", + "find-up": "2.1.0", + "foreground-child": "1.5.6", + "glob": "7.1.2", + "istanbul-lib-coverage": "1.2.0", + "istanbul-lib-hook": "1.1.0", + "istanbul-lib-instrument": "2.3.2", + "istanbul-lib-report": "1.1.3", + "istanbul-lib-source-maps": "1.2.5", + "istanbul-reports": "1.4.1", + "md5-hex": "1.3.0", + "merge-source-map": "1.1.0", + "micromatch": "3.1.10", + "mkdirp": "0.5.1", + "resolve-from": "2.0.0", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "spawn-wrap": "1.4.2", + "test-exclude": "4.2.1", + "yargs": "11.1.0", + "yargs-parser": "8.1.0" + }, + "dependencies": { + "align-text": { + "version": "0.1.4", + "bundled": true, + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } + }, + "amdefine": { + "version": "1.0.1", + "bundled": true + }, + "ansi-regex": { + "version": "3.0.0", + "bundled": true + }, + "append-transform": { + "version": "0.4.0", + "bundled": true, + "requires": { + "default-require-extensions": "1.0.0" + } + }, + "archy": { + "version": "1.0.0", + "bundled": true + }, + "arr-diff": { + "version": "4.0.0", + "bundled": true + }, + "arr-flatten": { + "version": "1.1.0", + "bundled": true + }, + "arr-union": { + "version": "3.1.0", + "bundled": true + }, + "array-unique": { + "version": "0.3.2", + "bundled": true + }, + "arrify": { + "version": "1.0.1", + "bundled": true + }, + "assign-symbols": { + "version": "1.0.0", + "bundled": true + }, + "async": { + "version": "1.5.2", + "bundled": true + }, + "atob": { + "version": "2.1.1", + "bundled": true + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "base": { + "version": "0.11.2", + "bundled": true, + "requires": { + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "bundled": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "builtin-modules": { + "version": "1.1.1", + "bundled": true + }, + "cache-base": { + "version": "1.0.1", + "bundled": 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" + } + }, + "caching-transform": { + "version": "1.0.1", + "bundled": true, + "requires": { + "md5-hex": "1.3.0", + "mkdirp": "0.5.1", + "write-file-atomic": "1.3.4" + } + }, + "camelcase": { + "version": "1.2.1", + "bundled": true, + "optional": true + }, + "center-align": { + "version": "0.1.3", + "bundled": true, + "optional": true, + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + } + }, + "class-utils": { + "version": "0.3.6", + "bundled": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "cliui": { + "version": "2.1.0", + "bundled": true, + "optional": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "bundled": true, + "optional": true + } + } + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "collection-visit": { + "version": "1.0.0", + "bundled": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "commondir": { + "version": "1.0.1", + "bundled": true + }, + "component-emitter": { + "version": "1.2.1", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "convert-source-map": { + "version": "1.5.1", + "bundled": true + }, + "copy-descriptor": { + "version": "0.1.1", + "bundled": true + }, + "cross-spawn": { + "version": "4.0.2", + "bundled": true, + "requires": { + "lru-cache": "4.1.3", + "which": "1.3.1" + } + }, + "debug": { + "version": "3.1.0", + "bundled": true, + "requires": { + "ms": "2.0.0" + } + }, + "debug-log": { + "version": "1.0.1", + "bundled": true + }, + "decamelize": { + "version": "1.2.0", + "bundled": true + }, + "decode-uri-component": { + "version": "0.2.0", + "bundled": true + }, + "default-require-extensions": { + "version": "1.0.0", + "bundled": true, + "requires": { + "strip-bom": "2.0.0" + } + }, + "define-property": { + "version": "2.0.2", + "bundled": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true + } + } + }, + "error-ex": { + "version": "1.3.1", + "bundled": true, + "requires": { + "is-arrayish": "0.2.1" + } + }, + "execa": { + "version": "0.7.0", + "bundled": 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" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "bundled": true, + "requires": { + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.1" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "bundled": 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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "bundled": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "bundled": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "bundled": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "bundled": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "bundled": 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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true + } + } + }, + "fill-range": { + "version": "4.0.0", + "bundled": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "find-cache-dir": { + "version": "0.1.1", + "bundled": true, + "requires": { + "commondir": "1.0.1", + "mkdirp": "0.5.1", + "pkg-dir": "1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "bundled": true, + "requires": { + "locate-path": "2.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "bundled": true + }, + "foreground-child": { + "version": "1.5.6", + "bundled": true, + "requires": { + "cross-spawn": "4.0.2", + "signal-exit": "3.0.2" + } + }, + "fragment-cache": { + "version": "0.2.1", + "bundled": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "get-caller-file": { + "version": "1.0.2", + "bundled": true + }, + "get-stream": { + "version": "3.0.0", + "bundled": true + }, + "get-value": { + "version": "2.0.6", + "bundled": true + }, + "glob": { + "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" + } + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true + }, + "handlebars": { + "version": "4.0.11", + "bundled": true, + "requires": { + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "bundled": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "has-value": { + "version": "1.0.0", + "bundled": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "bundled": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "bundled": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "hosted-git-info": { + "version": "2.6.0", + "bundled": true + }, + "imurmurhash": { + "version": "0.1.4", + "bundled": true + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "invert-kv": { + "version": "1.0.0", + "bundled": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "bundled": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-arrayish": { + "version": "0.2.1", + "bundled": true + }, + "is-buffer": { + "version": "1.1.6", + "bundled": true + }, + "is-builtin-module": { + "version": "1.0.0", + "bundled": true, + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "bundled": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "bundled": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "bundled": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true + }, + "is-number": { + "version": "3.0.0", + "bundled": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-odd": { + "version": "2.0.0", + "bundled": true, + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "bundled": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "bundled": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-stream": { + "version": "1.1.0", + "bundled": true + }, + "is-utf8": { + "version": "0.2.1", + "bundled": true + }, + "is-windows": { + "version": "1.0.2", + "bundled": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true + }, + "isexe": { + "version": "2.0.0", + "bundled": true + }, + "isobject": { + "version": "3.0.1", + "bundled": true + }, + "istanbul-lib-coverage": { + "version": "1.2.0", + "bundled": true + }, + "istanbul-lib-hook": { + "version": "1.1.0", + "bundled": true, + "requires": { + "append-transform": "0.4.0" + } + }, + "istanbul-lib-report": { + "version": "1.1.3", + "bundled": true, + "requires": { + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "bundled": true + }, + "supports-color": { + "version": "3.2.3", + "bundled": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.5", + "bundled": true, + "requires": { + "debug": "3.1.0", + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" + } + }, + "istanbul-reports": { + "version": "1.4.1", + "bundled": true, + "requires": { + "handlebars": "4.0.11" + } + }, + "kind-of": { + "version": "3.2.2", + "bundled": true, + "requires": { + "is-buffer": "1.1.6" + } + }, + "lazy-cache": { + "version": "1.0.4", + "bundled": true, + "optional": true + }, + "lcid": { + "version": "1.0.0", + "bundled": true, + "requires": { + "invert-kv": "1.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "bundled": true, + "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" + } + }, + "locate-path": { + "version": "2.0.0", + "bundled": true, + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "bundled": true + } + } + }, + "longest": { + "version": "1.0.1", + "bundled": true + }, + "lru-cache": { + "version": "4.1.3", + "bundled": true, + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + }, + "map-cache": { + "version": "0.2.2", + "bundled": true + }, + "map-visit": { + "version": "1.0.0", + "bundled": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "md5-hex": { + "version": "1.3.0", + "bundled": true, + "requires": { + "md5-o-matic": "0.1.1" + } + }, + "md5-o-matic": { + "version": "0.1.1", + "bundled": true + }, + "mem": { + "version": "1.1.0", + "bundled": true, + "requires": { + "mimic-fn": "1.2.0" + } + }, + "merge-source-map": { + "version": "1.1.0", + "bundled": true, + "requires": { + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "bundled": true + } + } + }, + "micromatch": { + "version": "3.1.10", + "bundled": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true + } + } + }, + "mimic-fn": { + "version": "1.2.0", + "bundled": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true + }, + "mixin-deep": { + "version": "1.3.1", + "bundled": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "bundled": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true + }, + "nanomatch": { + "version": "1.2.9", + "bundled": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-odd": "2.0.0", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true + } + } + }, + "normalize-package-data": { + "version": "2.4.0", + "bundled": true, + "requires": { + "hosted-git-info": "2.6.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" + } + }, + "npm-run-path": { + "version": "2.0.2", + "bundled": true, + "requires": { + "path-key": "2.0.1" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true + }, + "object-copy": { + "version": "0.1.0", + "bundled": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "bundled": true, + "requires": { + "isobject": "3.0.1" + } + }, + "object.pick": { + "version": "1.3.0", + "bundled": true, + "requires": { + "isobject": "3.0.1" + } + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optimist": { + "version": "0.6.1", + "bundled": true, + "requires": { + "minimist": "0.0.8", + "wordwrap": "0.0.3" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true + }, + "os-locale": { + "version": "2.1.0", + "bundled": true, + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } + }, + "p-finally": { + "version": "1.0.0", + "bundled": true + }, + "p-limit": { + "version": "1.2.0", + "bundled": true, + "requires": { + "p-try": "1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "bundled": true, + "requires": { + "p-limit": "1.2.0" + } + }, + "p-try": { + "version": "1.0.0", + "bundled": true + }, + "parse-json": { + "version": "2.2.0", + "bundled": true, + "requires": { + "error-ex": "1.3.1" + } + }, + "pascalcase": { + "version": "0.1.1", + "bundled": true + }, + "path-exists": { + "version": "2.1.0", + "bundled": true, + "requires": { + "pinkie-promise": "2.0.1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true + }, + "path-key": { + "version": "2.0.1", + "bundled": true + }, + "path-parse": { + "version": "1.0.5", + "bundled": true + }, + "path-type": { + "version": "1.1.0", + "bundled": true, + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "pify": { + "version": "2.3.0", + "bundled": true + }, + "pinkie": { + "version": "2.0.4", + "bundled": true + }, + "pinkie-promise": { + "version": "2.0.1", + "bundled": true, + "requires": { + "pinkie": "2.0.4" + } + }, + "pkg-dir": { + "version": "1.0.0", + "bundled": true, + "requires": { + "find-up": "1.1.2" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "bundled": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "bundled": true + }, + "pseudomap": { + "version": "1.0.2", + "bundled": true + }, + "read-pkg": { + "version": "1.1.0", + "bundled": true, + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "bundled": true, + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "bundled": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + } + } + }, + "regex-not": { + "version": "1.0.2", + "bundled": true, + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "bundled": true + }, + "repeat-string": { + "version": "1.6.1", + "bundled": true + }, + "require-directory": { + "version": "2.1.1", + "bundled": true + }, + "require-main-filename": { + "version": "1.0.1", + "bundled": true + }, + "resolve-from": { + "version": "2.0.0", + "bundled": true + }, + "resolve-url": { + "version": "0.2.1", + "bundled": true + }, + "ret": { + "version": "0.1.15", + "bundled": true + }, + "right-align": { + "version": "0.1.3", + "bundled": true, + "optional": true, + "requires": { + "align-text": "0.1.4" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-regex": { + "version": "1.1.0", + "bundled": true, + "requires": { + "ret": "0.1.15" + } + }, + "semver": { + "version": "5.5.0", + "bundled": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true + }, + "set-value": { + "version": "2.0.0", + "bundled": true, + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "shebang-command": { + "version": "1.2.0", + "bundled": true, + "requires": { + "shebang-regex": "1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "bundled": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true + }, + "slide": { + "version": "1.1.6", + "bundled": true + }, + "snapdragon": { + "version": "0.8.2", + "bundled": 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.2", + "use": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "bundled": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "bundled": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "bundled": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "bundled": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "source-map": { + "version": "0.5.7", + "bundled": true + }, + "source-map-resolve": { + "version": "0.5.2", + "bundled": true, + "requires": { + "atob": "2.1.1", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "bundled": true + }, + "spawn-wrap": { + "version": "1.4.2", + "bundled": true, + "requires": { + "foreground-child": "1.5.6", + "mkdirp": "0.5.1", + "os-homedir": "1.0.2", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "which": "1.3.1" + } + }, + "spdx-correct": { + "version": "3.0.0", + "bundled": true, + "requires": { + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "bundled": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "bundled": true, + "requires": { + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.0", + "bundled": true + }, + "split-string": { + "version": "3.1.0", + "bundled": true, + "requires": { + "extend-shallow": "3.0.2" + } + }, + "static-extend": { + "version": "0.1.2", + "bundled": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "string-width": { + "version": "2.1.1", + "bundled": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "bundled": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "bundled": true, + "requires": { + "is-utf8": "0.2.1" + } + }, + "strip-eof": { + "version": "1.0.0", + "bundled": true + }, + "test-exclude": { + "version": "4.2.1", + "bundled": true, + "requires": { + "arrify": "1.0.1", + "micromatch": "3.1.10", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" + } + }, + "to-object-path": { + "version": "0.3.0", + "bundled": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "to-regex": { + "version": "3.0.2", + "bundled": true, + "requires": { + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "bundled": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, + "uglify-js": { + "version": "2.8.29", + "bundled": true, + "optional": true, + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "yargs": { + "version": "3.10.0", + "bundled": true, + "optional": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "union-value": { + "version": "1.0.0", + "bundled": true, + "requires": { + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "bundled": true, + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" + } + } + } + }, + "unset-value": { + "version": "1.0.0", + "bundled": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "bundled": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "bundled": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "bundled": true + } + } + }, + "urix": { + "version": "0.1.0", + "bundled": true + }, + "use": { + "version": "3.1.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true + } + } + }, + "validate-npm-package-license": { + "version": "3.0.3", + "bundled": true, + "requires": { + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" + } + }, + "which": { + "version": "1.3.1", + "bundled": true, + "requires": { + "isexe": "2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "bundled": true + }, + "window-size": { + "version": "0.1.0", + "bundled": true, + "optional": true + }, + "wordwrap": { + "version": "0.0.3", + "bundled": true + }, + "wrap-ansi": { + "version": "2.1.0", + "bundled": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "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" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "2.1.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + }, + "write-file-atomic": { + "version": "1.3.4", + "bundled": true, + "requires": { + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" + } + }, + "y18n": { + "version": "3.2.1", + "bundled": true + }, + "yallist": { + "version": "2.1.2", + "bundled": true + }, + "yargs": { + "version": "11.1.0", + "bundled": true, + "requires": { + "cliui": "4.1.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": "9.0.2" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "bundled": true + }, + "cliui": { + "version": "4.1.0", + "bundled": true, + "requires": { + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" + } + }, + "yargs-parser": { + "version": "9.0.2", + "bundled": true, + "requires": { + "camelcase": "4.1.0" + } + } + } + }, + "yargs-parser": { + "version": "8.1.0", + "bundled": true, + "requires": { + "camelcase": "4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "bundled": true + } + } + } + } + } } }, "bip38": { @@ -1210,9 +3008,9 @@ "integrity": "sha512-O1htyufFTYy3EO0JkHg2CLykdXEtV2ssqw47Gq9A0WByp662xpJnMEB9m43LZjsSDjIAOozWRExlFQk2hlV1XQ==" }, "bitbox-cli": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/bitbox-cli/-/bitbox-cli-1.5.4.tgz", - "integrity": "sha512-6R6LIVmUnO0/gcDSHALZWSx9biZ/CoCpZuSbcqEQXXn0V7M2yAEeFYZ88O08XuAjnZO873eoQ1XVPZghvoihYw==", + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/bitbox-cli/-/bitbox-cli-1.5.5.tgz", + "integrity": "sha512-dl7v/UsRjI+wAWHrOBXcDSBEQiKI/sV7EG4H9RK1bO6Nf7PDzzqW5jo1kmLCwO6KNIarxJWlJ3nfVP8kk0ou7w==", "requires": { "assert": "1.4.1", "axios": "0.17.1", @@ -1225,7 +3023,7 @@ "bchaddrjs": "0.2.2", "bigi": "1.4.2", "bip21": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "bip32-utils": "github:Bitcoin-com/bip32-utils#0c7a1129e8b49da5800edb5c9add142b72308faf", + "bip32-utils": "github:Bitcoin-com/bip32-utils#8357139b8537bc350c9b9235d689840bfaaaa33f", "bip38": "2.0.2", "bip39": "2.5.0", "bip66": "1.1.5", @@ -1262,9 +3060,9 @@ }, "dependencies": { "bip32-utils": { - "version": "github:Bitcoin-com/bip32-utils#0c7a1129e8b49da5800edb5c9add142b72308faf", + "version": "github:Bitcoin-com/bip32-utils#8357139b8537bc350c9b9235d689840bfaaaa33f", "requires": { - "bitbox-cli": "1.5.4", + "bitbox-cli": "1.5.5", "keccak": "1.4.0", "nyc": "12.0.2", "standard": "11.0.1", @@ -1307,8 +3105,7 @@ "dependencies": { "align-text": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "bundled": true, "requires": { "kind-of": "3.2.2", "longest": "1.0.1", @@ -1317,76 +3114,62 @@ }, "amdefine": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" + "bundled": true }, "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "bundled": true }, "append-transform": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", - "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "bundled": true, "requires": { "default-require-extensions": "1.0.0" } }, "archy": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" + "bundled": true }, "arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + "bundled": true }, "arr-flatten": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=" + "bundled": true }, "arr-union": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + "bundled": true }, "array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + "bundled": true }, "arrify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + "bundled": true }, "assign-symbols": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + "bundled": true }, "async": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + "bundled": true }, "atob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", - "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=" + "bundled": true }, "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "bundled": true }, "base": { "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", + "bundled": true, "requires": { "cache-base": "1.0.1", "class-utils": "0.3.6", @@ -1399,32 +3182,28 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, "requires": { "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "bundled": true, "requires": { "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "bundled": true, "requires": { "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "bundled": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -1433,15 +3212,13 @@ }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=" + "bundled": true } } }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", + "bundled": true, "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -1449,8 +3226,7 @@ }, "braces": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", + "bundled": true, "requires": { "arr-flatten": "1.1.0", "array-unique": "0.3.2", @@ -1466,8 +3242,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "requires": { "is-extendable": "0.1.1" } @@ -1476,13 +3251,11 @@ }, "builtin-modules": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + "bundled": true }, "cache-base": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", + "bundled": true, "requires": { "collection-visit": "1.0.0", "component-emitter": "1.2.1", @@ -1497,8 +3270,7 @@ }, "caching-transform": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", - "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", + "bundled": true, "requires": { "md5-hex": "1.3.0", "mkdirp": "0.5.1", @@ -1507,14 +3279,12 @@ }, "camelcase": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "bundled": true, "optional": true }, "center-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "bundled": true, "optional": true, "requires": { "align-text": "0.1.4", @@ -1523,8 +3293,7 @@ }, "class-utils": { "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", + "bundled": true, "requires": { "arr-union": "3.1.0", "define-property": "0.2.5", @@ -1534,8 +3303,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "requires": { "is-descriptor": "0.1.6" } @@ -1544,8 +3312,7 @@ }, "cliui": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "bundled": true, "optional": true, "requires": { "center-align": "0.1.3", @@ -1555,21 +3322,18 @@ "dependencies": { "wordwrap": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "bundled": true, "optional": true } } }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "bundled": true }, "collection-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "bundled": true, "requires": { "map-visit": "1.0.0", "object-visit": "1.0.1" @@ -1577,33 +3341,27 @@ }, "commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + "bundled": true }, "component-emitter": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + "bundled": true }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "bundled": true }, "convert-source-map": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=" + "bundled": true }, "copy-descriptor": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + "bundled": true }, "cross-spawn": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "bundled": true, "requires": { "lru-cache": "4.1.3", "which": "1.3.1" @@ -1611,39 +3369,33 @@ }, "debug": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", + "bundled": true, "requires": { "ms": "2.0.0" } }, "debug-log": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", - "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=" + "bundled": true }, "decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "bundled": true }, "decode-uri-component": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + "bundled": true }, "default-require-extensions": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", - "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "bundled": true, "requires": { "strip-bom": "2.0.0" } }, "define-property": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", + "bundled": true, "requires": { "is-descriptor": "1.0.2", "isobject": "3.0.1" @@ -1651,24 +3403,21 @@ "dependencies": { "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "bundled": true, "requires": { "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "bundled": true, "requires": { "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "bundled": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -1677,23 +3426,20 @@ }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=" + "bundled": true } } }, "error-ex": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "bundled": true, "requires": { "is-arrayish": "0.2.1" } }, "execa": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "bundled": true, "requires": { "cross-spawn": "5.1.0", "get-stream": "3.0.0", @@ -1706,8 +3452,7 @@ "dependencies": { "cross-spawn": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "bundled": true, "requires": { "lru-cache": "4.1.3", "shebang-command": "1.2.0", @@ -1718,8 +3463,7 @@ }, "expand-brackets": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "bundled": true, "requires": { "debug": "2.6.9", "define-property": "0.2.5", @@ -1732,24 +3476,21 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "bundled": true, "requires": { "ms": "2.0.0" } }, "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "requires": { "is-descriptor": "0.1.6" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "requires": { "is-extendable": "0.1.1" } @@ -1758,8 +3499,7 @@ }, "extend-shallow": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "bundled": true, "requires": { "assign-symbols": "1.0.0", "is-extendable": "1.0.1" @@ -1767,8 +3507,7 @@ "dependencies": { "is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "bundled": true, "requires": { "is-plain-object": "2.0.4" } @@ -1777,8 +3516,7 @@ }, "extglob": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", + "bundled": true, "requires": { "array-unique": "0.3.2", "define-property": "1.0.0", @@ -1792,40 +3530,35 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, "requires": { "is-descriptor": "1.0.2" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "requires": { "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "bundled": true, "requires": { "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "bundled": true, "requires": { "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "bundled": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -1834,15 +3567,13 @@ }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=" + "bundled": true } } }, "fill-range": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "bundled": true, "requires": { "extend-shallow": "2.0.1", "is-number": "3.0.0", @@ -1852,8 +3583,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "requires": { "is-extendable": "0.1.1" } @@ -1862,8 +3592,7 @@ }, "find-cache-dir": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "bundled": true, "requires": { "commondir": "1.0.1", "mkdirp": "0.5.1", @@ -1872,21 +3601,18 @@ }, "find-up": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "bundled": true, "requires": { "locate-path": "2.0.0" } }, "for-in": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + "bundled": true }, "foreground-child": { "version": "1.5.6", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", - "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "bundled": true, "requires": { "cross-spawn": "4.0.2", "signal-exit": "3.0.2" @@ -1894,36 +3620,30 @@ }, "fragment-cache": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "bundled": true, "requires": { "map-cache": "0.2.2" } }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "bundled": true }, "get-caller-file": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" + "bundled": true }, "get-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + "bundled": true }, "get-value": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + "bundled": true }, "glob": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", + "bundled": true, "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -1935,13 +3655,11 @@ }, "graceful-fs": { "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "bundled": true }, "handlebars": { "version": "4.0.11", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", - "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "bundled": true, "requires": { "async": "1.5.2", "optimist": "0.6.1", @@ -1951,8 +3669,7 @@ "dependencies": { "source-map": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "bundled": true, "requires": { "amdefine": "1.0.1" } @@ -1961,8 +3678,7 @@ }, "has-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "bundled": true, "requires": { "get-value": "2.0.6", "has-values": "1.0.0", @@ -1971,8 +3687,7 @@ }, "has-values": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "bundled": true, "requires": { "is-number": "3.0.0", "kind-of": "4.0.0" @@ -1980,8 +3695,7 @@ "dependencies": { "kind-of": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "bundled": true, "requires": { "is-buffer": "1.1.6" } @@ -1990,18 +3704,15 @@ }, "hosted-git-info": { "version": "2.6.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", - "integrity": "sha1-IyNbKasjDFdqqw1PE/wEawsDgiI=" + "bundled": true }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + "bundled": true }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -2009,52 +3720,44 @@ }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "bundled": true }, "invert-kv": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + "bundled": true }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "bundled": true, "requires": { "kind-of": "3.2.2" } }, "is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "bundled": true }, "is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=" + "bundled": true }, "is-builtin-module": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "bundled": true, "requires": { "builtin-modules": "1.1.1" } }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "bundled": true, "requires": { "kind-of": "3.2.2" } }, "is-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", + "bundled": true, "requires": { "is-accessor-descriptor": "0.1.6", "is-data-descriptor": "0.1.4", @@ -2063,99 +3766,83 @@ "dependencies": { "kind-of": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=" + "bundled": true } } }, "is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "bundled": true }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "bundled": true }, "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, "requires": { "kind-of": "3.2.2" } }, "is-odd": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", - "integrity": "sha1-dkZiRnH9fqVYzNmieVGC8pWPGyQ=", + "bundled": true, "requires": { "is-number": "4.0.0" }, "dependencies": { "is-number": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha1-ACbjf1RU1z41bf5lZGmYZ8an8P8=" + "bundled": true } } }, "is-plain-object": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", + "bundled": true, "requires": { "isobject": "3.0.1" } }, "is-stream": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "bundled": true }, "is-utf8": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + "bundled": true }, "is-windows": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=" + "bundled": true }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "bundled": true }, "isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "bundled": true }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true }, "istanbul-lib-coverage": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", - "integrity": "sha1-99jy5CuX43/nlhFMsPnWi146Q0E=" + "bundled": true }, "istanbul-lib-hook": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", - "integrity": "sha1-hTjZcDcss3FtU+VVI91UtVeo2Js=", + "bundled": true, "requires": { "append-transform": "0.4.0" } }, "istanbul-lib-report": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz", - "integrity": "sha1-LfEhiMD6d5kMDSF20tC6M5QYglk=", + "bundled": true, "requires": { "istanbul-lib-coverage": "1.2.0", "mkdirp": "0.5.1", @@ -2165,13 +3852,11 @@ "dependencies": { "has-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "bundled": true }, "supports-color": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "bundled": true, "requires": { "has-flag": "1.0.0" } @@ -2180,8 +3865,7 @@ }, "istanbul-lib-source-maps": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.5.tgz", - "integrity": "sha1-/+a+Tnq4bTYD5CkNVJkLFFBvybE=", + "bundled": true, "requires": { "debug": "3.1.0", "istanbul-lib-coverage": "1.2.0", @@ -2192,38 +3876,33 @@ }, "istanbul-reports": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.4.1.tgz", - "integrity": "sha1-Ty6OkoqnoF0dpsQn1AmLJlXsczQ=", + "bundled": true, "requires": { "handlebars": "4.0.11" } }, "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "requires": { "is-buffer": "1.1.6" } }, "lazy-cache": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "bundled": true, "optional": true }, "lcid": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "bundled": true, "requires": { "invert-kv": "1.0.0" } }, "load-json-file": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "bundled": true, "requires": { "graceful-fs": "4.1.11", "parse-json": "2.2.0", @@ -2234,8 +3913,7 @@ }, "locate-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "bundled": true, "requires": { "p-locate": "2.0.0", "path-exists": "3.0.0" @@ -2243,20 +3921,17 @@ "dependencies": { "path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "bundled": true } } }, "longest": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" + "bundled": true }, "lru-cache": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha1-oRdc80lt/IQ2wVbDNLSVWZK85pw=", + "bundled": true, "requires": { "pseudomap": "1.0.2", "yallist": "2.1.2" @@ -2264,57 +3939,49 @@ }, "map-cache": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + "bundled": true }, "map-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "bundled": true, "requires": { "object-visit": "1.0.1" } }, "md5-hex": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", - "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", + "bundled": true, "requires": { "md5-o-matic": "0.1.1" } }, "md5-o-matic": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", - "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=" + "bundled": true }, "mem": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "bundled": true, "requires": { "mimic-fn": "1.2.0" } }, "merge-source-map": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha1-L93n5gIJOfcJBqaPLXrmheTIxkY=", + "bundled": true, "requires": { "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": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" + "bundled": true } } }, "micromatch": { "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", + "bundled": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -2333,33 +4000,28 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=" + "bundled": true } } }, "mimic-fn": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=" + "bundled": true }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "bundled": true, "requires": { "brace-expansion": "1.1.11" } }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "bundled": true }, "mixin-deep": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha1-pJ5yaNzhoNlpjkUybFYm3zVD0P4=", + "bundled": true, "requires": { "for-in": "1.0.2", "is-extendable": "1.0.1" @@ -2367,8 +4029,7 @@ "dependencies": { "is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "bundled": true, "requires": { "is-plain-object": "2.0.4" } @@ -2377,21 +4038,18 @@ }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "bundled": true }, "nanomatch": { "version": "1.2.9", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", - "integrity": "sha1-h59xUMstq3pHElkGbBBO7m4Pp8I=", + "bundled": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -2409,15 +4067,13 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=" + "bundled": true } } }, "normalize-package-data": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha1-EvlaMH1YNSB1oEkHuErIvpisAS8=", + "bundled": true, "requires": { "hosted-git-info": "2.6.0", "is-builtin-module": "1.0.0", @@ -2427,26 +4083,22 @@ }, "npm-run-path": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "bundled": true, "requires": { "path-key": "2.0.1" } }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "bundled": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "bundled": true }, "object-copy": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "bundled": true, "requires": { "copy-descriptor": "0.1.1", "define-property": "0.2.5", @@ -2455,8 +4107,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "requires": { "is-descriptor": "0.1.6" } @@ -2465,32 +4116,28 @@ }, "object-visit": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "bundled": true, "requires": { "isobject": "3.0.1" } }, "object.pick": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "bundled": true, "requires": { "isobject": "3.0.1" } }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, "requires": { "wrappy": "1.0.2" } }, "optimist": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "bundled": true, "requires": { "minimist": "0.0.8", "wordwrap": "0.0.3" @@ -2498,13 +4145,11 @@ }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + "bundled": true }, "os-locale": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha1-QrwpAKa1uL0XN2yOiCtlr8zyS/I=", + "bundled": true, "requires": { "execa": "0.7.0", "lcid": "1.0.0", @@ -2513,70 +4158,59 @@ }, "p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + "bundled": true }, "p-limit": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha1-DpK2vty1nwIsE9DxlJ3ILRWQnxw=", + "bundled": true, "requires": { "p-try": "1.0.0" } }, "p-locate": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "bundled": true, "requires": { "p-limit": "1.2.0" } }, "p-try": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + "bundled": true }, "parse-json": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "bundled": true, "requires": { "error-ex": "1.3.1" } }, "pascalcase": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + "bundled": true }, "path-exists": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "bundled": true, "requires": { "pinkie-promise": "2.0.1" } }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "bundled": true }, "path-key": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + "bundled": true }, "path-parse": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" + "bundled": true }, "path-type": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "bundled": true, "requires": { "graceful-fs": "4.1.11", "pify": "2.3.0", @@ -2585,34 +4219,29 @@ }, "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + "bundled": true }, "pinkie": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + "bundled": true }, "pinkie-promise": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "bundled": true, "requires": { "pinkie": "2.0.4" } }, "pkg-dir": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "bundled": true, "requires": { "find-up": "1.1.2" }, "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "bundled": true, "requires": { "path-exists": "2.1.0", "pinkie-promise": "2.0.1" @@ -2622,18 +4251,15 @@ }, "posix-character-classes": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + "bundled": true }, "pseudomap": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + "bundled": true }, "read-pkg": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "bundled": true, "requires": { "load-json-file": "1.1.0", "normalize-package-data": "2.4.0", @@ -2642,8 +4268,7 @@ }, "read-pkg-up": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "bundled": true, "requires": { "find-up": "1.1.2", "read-pkg": "1.1.0" @@ -2651,8 +4276,7 @@ "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "bundled": true, "requires": { "path-exists": "2.1.0", "pinkie-promise": "2.0.1" @@ -2662,8 +4286,7 @@ }, "regex-not": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", + "bundled": true, "requires": { "extend-shallow": "3.0.2", "safe-regex": "1.1.0" @@ -2671,43 +4294,35 @@ }, "repeat-element": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" + "bundled": true }, "repeat-string": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + "bundled": true }, "require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "bundled": true }, "require-main-filename": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + "bundled": true }, "resolve-from": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" + "bundled": true }, "resolve-url": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + "bundled": true }, "ret": { "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=" + "bundled": true }, "right-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "bundled": true, "optional": true, "requires": { "align-text": "0.1.4" @@ -2715,34 +4330,29 @@ }, "rimraf": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha1-LtgVDSShbqhlHm1u8PR8QVjOejY=", + "bundled": true, "requires": { "glob": "7.1.2" } }, "safe-regex": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "bundled": true, "requires": { "ret": "0.1.15" } }, "semver": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha1-3Eu8emyp2Rbe5dQ1FvAJK1j3uKs=" + "bundled": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "bundled": true }, "set-value": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha1-ca5KiPD+77v1LR6mBPP7MV67YnQ=", + "bundled": true, "requires": { "extend-shallow": "2.0.1", "is-extendable": "0.1.1", @@ -2752,8 +4362,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "requires": { "is-extendable": "0.1.1" } @@ -2762,31 +4371,26 @@ }, "shebang-command": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "bundled": true, "requires": { "shebang-regex": "1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + "bundled": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + "bundled": true }, "slide": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" + "bundled": true }, "snapdragon": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", + "bundled": true, "requires": { "base": "0.11.2", "debug": "2.6.9", @@ -2800,24 +4404,21 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "bundled": true, "requires": { "ms": "2.0.0" } }, "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "requires": { "is-descriptor": "0.1.6" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "requires": { "is-extendable": "0.1.1" } @@ -2826,8 +4427,7 @@ }, "snapdragon-node": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", + "bundled": true, "requires": { "define-property": "1.0.0", "isobject": "3.0.1", @@ -2836,32 +4436,28 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, "requires": { "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "bundled": true, "requires": { "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "bundled": true, "requires": { "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "bundled": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -2870,28 +4466,24 @@ }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=" + "bundled": true } } }, "snapdragon-util": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", + "bundled": true, "requires": { "kind-of": "3.2.2" } }, "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "bundled": true }, "source-map-resolve": { "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha1-cuLMNAlVQ+Q7LGKyxMENSpBU8lk=", + "bundled": true, "requires": { "atob": "2.1.1", "decode-uri-component": "0.2.0", @@ -2902,13 +4494,11 @@ }, "source-map-url": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + "bundled": true }, "spawn-wrap": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", - "integrity": "sha1-z/WOc6giRhe2Vhq9wyWG6gyCJIw=", + "bundled": true, "requires": { "foreground-child": "1.5.6", "mkdirp": "0.5.1", @@ -2920,8 +4510,7 @@ }, "spdx-correct": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha1-BaW01xU6GVvJLDxCW2nzsqlSTII=", + "bundled": true, "requires": { "spdx-expression-parse": "3.0.0", "spdx-license-ids": "3.0.0" @@ -2929,13 +4518,11 @@ }, "spdx-exceptions": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha1-LHrmEFbHFKW5ubKyr30xHvXHj+k=" + "bundled": true }, "spdx-expression-parse": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha1-meEZt6XaAOBUkcn6M4t5BII7QdA=", + "bundled": true, "requires": { "spdx-exceptions": "2.1.0", "spdx-license-ids": "3.0.0" @@ -2943,21 +4530,18 @@ }, "spdx-license-ids": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha1-enzShHDMbToc/m1miG9rxDDTrIc=" + "bundled": true }, "split-string": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", + "bundled": true, "requires": { "extend-shallow": "3.0.2" } }, "static-extend": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "bundled": true, "requires": { "define-property": "0.2.5", "object-copy": "0.1.0" @@ -2965,8 +4549,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "requires": { "is-descriptor": "0.1.6" } @@ -2975,8 +4558,7 @@ }, "string-width": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "bundled": true, "requires": { "is-fullwidth-code-point": "2.0.0", "strip-ansi": "4.0.0" @@ -2984,29 +4566,25 @@ }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "bundled": true, "requires": { "ansi-regex": "3.0.0" } }, "strip-bom": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "bundled": true, "requires": { "is-utf8": "0.2.1" } }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + "bundled": true }, "test-exclude": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", - "integrity": "sha1-36Ii8DSAvKaSB8pyizfXS0X3JPo=", + "bundled": true, "requires": { "arrify": "1.0.1", "micromatch": "3.1.10", @@ -3017,16 +4595,14 @@ }, "to-object-path": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "bundled": true, "requires": { "kind-of": "3.2.2" } }, "to-regex": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", + "bundled": true, "requires": { "define-property": "2.0.2", "extend-shallow": "3.0.2", @@ -3036,8 +4612,7 @@ }, "to-regex-range": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "bundled": true, "requires": { "is-number": "3.0.0", "repeat-string": "1.6.1" @@ -3045,8 +4620,7 @@ }, "uglify-js": { "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "bundled": true, "optional": true, "requires": { "source-map": "0.5.7", @@ -3056,8 +4630,7 @@ "dependencies": { "yargs": { "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "bundled": true, "optional": true, "requires": { "camelcase": "1.2.1", @@ -3070,14 +4643,12 @@ }, "uglify-to-browserify": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "bundled": true, "optional": true }, "union-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "bundled": true, "requires": { "arr-union": "3.1.0", "get-value": "2.0.6", @@ -3087,16 +4658,14 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "requires": { "is-extendable": "0.1.1" } }, "set-value": { "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "bundled": true, "requires": { "extend-shallow": "2.0.1", "is-extendable": "0.1.1", @@ -3108,8 +4677,7 @@ }, "unset-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "bundled": true, "requires": { "has-value": "0.3.1", "isobject": "3.0.1" @@ -3117,8 +4685,7 @@ "dependencies": { "has-value": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "bundled": true, "requires": { "get-value": "2.0.6", "has-values": "0.1.4", @@ -3127,8 +4694,7 @@ "dependencies": { "isobject": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "bundled": true, "requires": { "isarray": "1.0.0" } @@ -3137,35 +4703,30 @@ }, "has-values": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + "bundled": true } } }, "urix": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + "bundled": true }, "use": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", - "integrity": "sha1-FHFr8D/f79AwQK71jYtLhfOnxUQ=", + "bundled": true, "requires": { "kind-of": "6.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=" + "bundled": true } } }, "validate-npm-package-license": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", - "integrity": "sha1-gWQ7y+8b3+zUYjeT3EZIlIupgzg=", + "bundled": true, "requires": { "spdx-correct": "3.0.0", "spdx-expression-parse": "3.0.0" @@ -3173,32 +4734,27 @@ }, "which": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "bundled": true, "requires": { "isexe": "2.0.0" } }, "which-module": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + "bundled": true }, "window-size": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "bundled": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" + "bundled": true }, "wrap-ansi": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "bundled": true, "requires": { "string-width": "1.0.2", "strip-ansi": "3.0.1" @@ -3206,21 +4762,18 @@ "dependencies": { "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "bundled": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, "requires": { "number-is-nan": "1.0.1" } }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -3229,8 +4782,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, "requires": { "ansi-regex": "2.1.1" } @@ -3239,13 +4791,11 @@ }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "bundled": true }, "write-file-atomic": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", - "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", + "bundled": true, "requires": { "graceful-fs": "4.1.11", "imurmurhash": "0.1.4", @@ -3254,18 +4804,15 @@ }, "y18n": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + "bundled": true }, "yallist": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + "bundled": true }, "yargs": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", - "integrity": "sha1-kLhpk07W6HERXqL/WLA/RyTtLXc=", + "bundled": true, "requires": { "cliui": "4.1.0", "decamelize": "1.2.0", @@ -3283,13 +4830,11 @@ "dependencies": { "camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + "bundled": true }, "cliui": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha1-NIQi2+gtgAswIu709qwQvy5NG0k=", + "bundled": true, "requires": { "string-width": "2.1.1", "strip-ansi": "4.0.0", @@ -3298,8 +4843,7 @@ }, "yargs-parser": { "version": "9.0.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "bundled": true, "requires": { "camelcase": "4.1.0" } @@ -3308,16 +4852,14 @@ }, "yargs-parser": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", - "integrity": "sha1-8TdqM7Ziml0GN4KUTacyYx6WaVA=", + "bundled": true, "requires": { "camelcase": "4.1.0" }, "dependencies": { "camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + "bundled": true } } } @@ -4513,25 +6055,21 @@ "dependencies": { "abbrev": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "bundled": true, "optional": true }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "bundled": true }, "aproba": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "bundled": true, "optional": true }, "are-we-there-yet": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "bundled": true, "optional": true, "requires": { "delegates": "1.0.0", @@ -4540,13 +6078,11 @@ }, "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "bundled": true }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "bundled": true, "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -4554,35 +6090,29 @@ }, "chownr": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", + "bundled": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "bundled": true }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "bundled": true }, "console-control-strings": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "bundled": true }, "core-util-is": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "bundled": true, "optional": true }, "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "bundled": true, "optional": true, "requires": { "ms": "2.0.0" @@ -4590,26 +6120,22 @@ }, "deep-extend": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", + "bundled": true, "optional": true }, "delegates": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "bundled": true, "optional": true }, "detect-libc": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "bundled": true, "optional": true }, "fs-minipass": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", - "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", + "bundled": true, "optional": true, "requires": { "minipass": "2.2.4" @@ -4617,14 +6143,12 @@ }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "bundled": true, "optional": true }, "gauge": { "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "bundled": true, "optional": true, "requires": { "aproba": "1.2.0", @@ -4639,8 +6163,7 @@ }, "glob": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "bundled": true, "optional": true, "requires": { "fs.realpath": "1.0.0", @@ -4653,14 +6176,12 @@ }, "has-unicode": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "bundled": true, "optional": true }, "iconv-lite": { "version": "0.4.21", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.21.tgz", - "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", + "bundled": true, "optional": true, "requires": { "safer-buffer": "2.1.2" @@ -4668,8 +6189,7 @@ }, "ignore-walk": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", - "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", + "bundled": true, "optional": true, "requires": { "minimatch": "3.0.4" @@ -4677,8 +6197,7 @@ }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, "optional": true, "requires": { "once": "1.4.0", @@ -4687,46 +6206,39 @@ }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "bundled": true }, "ini": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "bundled": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, "requires": { "number-is-nan": "1.0.1" } }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "bundled": true, "optional": true }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, "requires": { "brace-expansion": "1.1.11" } }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "bundled": true }, "minipass": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.4.tgz", - "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", + "bundled": true, "requires": { "safe-buffer": "5.1.1", "yallist": "3.0.2" @@ -4734,8 +6246,7 @@ }, "minizlib": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", - "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", + "bundled": true, "optional": true, "requires": { "minipass": "2.2.4" @@ -4743,22 +6254,19 @@ }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "bundled": true, "optional": true }, "needle": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.2.0.tgz", - "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", + "bundled": true, "optional": true, "requires": { "debug": "2.6.9", @@ -4768,8 +6276,7 @@ }, "node-pre-gyp": { "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.10.0.tgz", - "integrity": "sha512-G7kEonQLRbcA/mOoFoxvlMrw6Q6dPf92+t/l0DFSMuSlDoWaI9JWIyPwK0jyE1bph//CUEL65/Fz1m2vJbmjQQ==", + "bundled": true, "optional": true, "requires": { "detect-libc": "1.0.3", @@ -4786,8 +6293,7 @@ }, "nopt": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "bundled": true, "optional": true, "requires": { "abbrev": "1.1.1", @@ -4796,14 +6302,12 @@ }, "npm-bundled": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.3.tgz", - "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", + "bundled": true, "optional": true }, "npm-packlist": { "version": "1.1.10", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.10.tgz", - "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", + "bundled": true, "optional": true, "requires": { "ignore-walk": "3.0.1", @@ -4812,8 +6316,7 @@ }, "npmlog": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "bundled": true, "optional": true, "requires": { "are-we-there-yet": "1.1.4", @@ -4824,39 +6327,33 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "bundled": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "bundled": true, "optional": true }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, "requires": { "wrappy": "1.0.2" } }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "bundled": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "bundled": true, "optional": true }, "osenv": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "bundled": true, "optional": true, "requires": { "os-homedir": "1.0.2", @@ -4865,20 +6362,17 @@ }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "bundled": true, "optional": true }, "process-nextick-args": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "bundled": true, "optional": true }, "rc": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz", - "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", + "bundled": true, "optional": true, "requires": { "deep-extend": "0.5.1", @@ -4889,16 +6383,14 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "bundled": true, "optional": true } } }, "readable-stream": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "bundled": true, "optional": true, "requires": { "core-util-is": "1.0.2", @@ -4912,8 +6404,7 @@ }, "rimraf": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "bundled": true, "optional": true, "requires": { "glob": "7.1.2" @@ -4921,43 +6412,36 @@ }, "safe-buffer": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + "bundled": true }, "safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "bundled": true, "optional": true }, "sax": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "bundled": true, "optional": true }, "semver": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "bundled": true, "optional": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "bundled": true, "optional": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "bundled": true, "optional": true }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -4966,8 +6450,7 @@ }, "string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "bundled": true, "optional": true, "requires": { "safe-buffer": "5.1.1" @@ -4975,22 +6458,19 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, "requires": { "ansi-regex": "2.1.1" } }, "strip-json-comments": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "bundled": true, "optional": true }, "tar": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.1.tgz", - "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", + "bundled": true, "optional": true, "requires": { "chownr": "1.0.1", @@ -5004,14 +6484,12 @@ }, "util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "bundled": true, "optional": true }, "wide-align": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "bundled": true, "optional": true, "requires": { "string-width": "1.0.2" @@ -5019,13 +6497,11 @@ }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "bundled": true }, "yallist": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" + "bundled": true } } }, @@ -6316,6 +7792,7 @@ "version": "11.9.0", "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.9.0.tgz", "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", + "dev": true, "requires": { "archy": "1.0.0", "arrify": "1.0.1", @@ -6348,8 +7825,8 @@ "dependencies": { "align-text": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "bundled": true, + "dev": true, "requires": { "kind-of": "3.2.2", "longest": "1.0.1", @@ -6358,76 +7835,76 @@ }, "amdefine": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" + "bundled": true, + "dev": true }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "bundled": true, + "dev": true }, "ansi-styles": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + "bundled": true, + "dev": true }, "append-transform": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", - "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "bundled": true, + "dev": true, "requires": { "default-require-extensions": "1.0.0" } }, "archy": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" + "bundled": true, + "dev": true }, "arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + "bundled": true, + "dev": true }, "arr-flatten": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + "bundled": true, + "dev": true }, "arr-union": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + "bundled": true, + "dev": true }, "array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + "bundled": true, + "dev": true }, "arrify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + "bundled": true, + "dev": true }, "assign-symbols": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + "bundled": true, + "dev": true }, "async": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + "bundled": true, + "dev": true }, "atob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", - "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=" + "bundled": true, + "dev": true }, "babel-code-frame": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "bundled": true, + "dev": true, "requires": { "chalk": "1.1.3", "esutils": "2.0.2", @@ -6436,8 +7913,8 @@ }, "babel-generator": { "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "bundled": true, + "dev": true, "requires": { "babel-messages": "6.23.0", "babel-runtime": "6.26.0", @@ -6451,16 +7928,16 @@ }, "babel-messages": { "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "bundled": true, + "dev": true, "requires": { "babel-runtime": "6.26.0" } }, "babel-runtime": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "bundled": true, + "dev": true, "requires": { "core-js": "2.5.6", "regenerator-runtime": "0.11.1" @@ -6468,8 +7945,8 @@ }, "babel-template": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "bundled": true, + "dev": true, "requires": { "babel-runtime": "6.26.0", "babel-traverse": "6.26.0", @@ -6480,8 +7957,8 @@ }, "babel-traverse": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "bundled": true, + "dev": true, "requires": { "babel-code-frame": "6.26.0", "babel-messages": "6.23.0", @@ -6496,8 +7973,8 @@ }, "babel-types": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "bundled": true, + "dev": true, "requires": { "babel-runtime": "6.26.0", "esutils": "2.0.2", @@ -6507,18 +7984,18 @@ }, "babylon": { "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" + "bundled": true, + "dev": true }, "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "bundled": true, + "dev": true }, "base": { "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "bundled": true, + "dev": true, "requires": { "cache-base": "1.0.1", "class-utils": "0.3.6", @@ -6531,32 +8008,32 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, + "dev": true, "requires": { "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "bundled": true, + "dev": true, "requires": { "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "bundled": true, + "dev": true, "requires": { "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, + "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -6565,20 +8042,20 @@ }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "bundled": true, + "dev": true } } }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "bundled": true, + "dev": true, "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -6586,8 +8063,8 @@ }, "braces": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "bundled": true, + "dev": true, "requires": { "arr-flatten": "1.1.0", "array-unique": "0.3.2", @@ -6603,8 +8080,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -6613,13 +8090,13 @@ }, "builtin-modules": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + "bundled": true, + "dev": true }, "cache-base": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "bundled": true, + "dev": true, "requires": { "collection-visit": "1.0.0", "component-emitter": "1.2.1", @@ -6634,15 +8111,15 @@ "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true } } }, "caching-transform": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", - "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", + "bundled": true, + "dev": true, "requires": { "md5-hex": "1.3.0", "mkdirp": "0.5.1", @@ -6651,14 +8128,14 @@ }, "camelcase": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "bundled": true, + "dev": true, "optional": true }, "center-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "bundled": true, + "dev": true, "optional": true, "requires": { "align-text": "0.1.4", @@ -6667,8 +8144,8 @@ }, "chalk": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "bundled": true, + "dev": true, "requires": { "ansi-styles": "2.2.1", "escape-string-regexp": "1.0.5", @@ -6679,8 +8156,8 @@ }, "class-utils": { "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "bundled": true, + "dev": true, "requires": { "arr-union": "3.1.0", "define-property": "0.2.5", @@ -6690,23 +8167,23 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, + "dev": true, "requires": { "is-descriptor": "0.1.6" } }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true } } }, "cliui": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "bundled": true, + "dev": true, "optional": true, "requires": { "center-align": "0.1.3", @@ -6716,21 +8193,21 @@ "dependencies": { "wordwrap": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "bundled": true, + "dev": true, "optional": true } } }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "bundled": true, + "dev": true }, "collection-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "bundled": true, + "dev": true, "requires": { "map-visit": "1.0.0", "object-visit": "1.0.1" @@ -6738,38 +8215,38 @@ }, "commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + "bundled": true, + "dev": true }, "component-emitter": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + "bundled": true, + "dev": true }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "bundled": true, + "dev": true }, "convert-source-map": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=" + "bundled": true, + "dev": true }, "copy-descriptor": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + "bundled": true, + "dev": true }, "core-js": { "version": "2.5.6", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.6.tgz", - "integrity": "sha512-lQUVfQi0aLix2xpyjrrJEvfuYCqPc/HwmTKsC/VNf8q0zsjX7SQZtp4+oRONN5Tsur9GDETPjj+Ub2iDiGZfSQ==" + "bundled": true, + "dev": true }, "cross-spawn": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "bundled": true, + "dev": true, "requires": { "lru-cache": "4.1.3", "which": "1.3.0" @@ -6777,39 +8254,39 @@ }, "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "bundled": true, + "dev": true, "requires": { "ms": "2.0.0" } }, "debug-log": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", - "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=" + "bundled": true, + "dev": true }, "decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "bundled": true, + "dev": true }, "decode-uri-component": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + "bundled": true, + "dev": true }, "default-require-extensions": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", - "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "bundled": true, + "dev": true, "requires": { "strip-bom": "2.0.0" } }, "define-property": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "bundled": true, + "dev": true, "requires": { "is-descriptor": "1.0.2", "isobject": "3.0.1" @@ -6817,24 +8294,24 @@ "dependencies": { "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "bundled": true, + "dev": true, "requires": { "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "bundled": true, + "dev": true, "requires": { "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, + "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -6843,46 +8320,46 @@ }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "bundled": true, + "dev": true } } }, "detect-indent": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "bundled": true, + "dev": true, "requires": { "repeating": "2.0.1" } }, "error-ex": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "bundled": true, + "dev": true, "requires": { "is-arrayish": "0.2.1" } }, "escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "bundled": true, + "dev": true }, "esutils": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + "bundled": true, + "dev": true }, "execa": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "bundled": true, + "dev": true, "requires": { "cross-spawn": "5.1.0", "get-stream": "3.0.0", @@ -6895,8 +8372,8 @@ "dependencies": { "cross-spawn": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "bundled": true, + "dev": true, "requires": { "lru-cache": "4.1.3", "shebang-command": "1.2.0", @@ -6907,8 +8384,8 @@ }, "expand-brackets": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "bundled": true, + "dev": true, "requires": { "debug": "2.6.9", "define-property": "0.2.5", @@ -6921,16 +8398,16 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, + "dev": true, "requires": { "is-descriptor": "0.1.6" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -6939,8 +8416,8 @@ }, "extend-shallow": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "bundled": true, + "dev": true, "requires": { "assign-symbols": "1.0.0", "is-extendable": "1.0.1" @@ -6948,8 +8425,8 @@ "dependencies": { "is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "bundled": true, + "dev": true, "requires": { "is-plain-object": "2.0.4" } @@ -6958,8 +8435,8 @@ }, "extglob": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "bundled": true, + "dev": true, "requires": { "array-unique": "0.3.2", "define-property": "1.0.0", @@ -6973,40 +8450,40 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, + "dev": true, "requires": { "is-descriptor": "1.0.2" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "bundled": true, + "dev": true, "requires": { "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "bundled": true, + "dev": true, "requires": { "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, + "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -7015,15 +8492,15 @@ }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "bundled": true, + "dev": true } } }, "fill-range": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "bundled": true, + "dev": true, "requires": { "extend-shallow": "2.0.1", "is-number": "3.0.0", @@ -7033,8 +8510,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -7043,8 +8520,8 @@ }, "find-cache-dir": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "bundled": true, + "dev": true, "requires": { "commondir": "1.0.1", "mkdirp": "0.5.1", @@ -7053,21 +8530,21 @@ }, "find-up": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "bundled": true, + "dev": true, "requires": { "locate-path": "2.0.0" } }, "for-in": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + "bundled": true, + "dev": true }, "foreground-child": { "version": "1.5.6", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", - "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "bundled": true, + "dev": true, "requires": { "cross-spawn": "4.0.2", "signal-exit": "3.0.2" @@ -7075,36 +8552,36 @@ }, "fragment-cache": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "bundled": true, + "dev": true, "requires": { "map-cache": "0.2.2" } }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "bundled": true, + "dev": true }, "get-caller-file": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" + "bundled": true, + "dev": true }, "get-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + "bundled": true, + "dev": true }, "get-value": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + "bundled": true, + "dev": true }, "glob": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "bundled": true, + "dev": true, "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -7116,18 +8593,18 @@ }, "globals": { "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" + "bundled": true, + "dev": true }, "graceful-fs": { "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "bundled": true, + "dev": true }, "handlebars": { "version": "4.0.11", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", - "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "bundled": true, + "dev": true, "requires": { "async": "1.5.2", "optimist": "0.6.1", @@ -7137,8 +8614,8 @@ "dependencies": { "source-map": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "bundled": true, + "dev": true, "requires": { "amdefine": "1.0.1" } @@ -7147,21 +8624,21 @@ }, "has-ansi": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "bundled": true, + "dev": true, "requires": { "ansi-regex": "2.1.1" } }, "has-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "bundled": true, + "dev": true }, "has-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "bundled": true, + "dev": true, "requires": { "get-value": "2.0.6", "has-values": "1.0.0", @@ -7170,15 +8647,15 @@ "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true } } }, "has-values": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "bundled": true, + "dev": true, "requires": { "is-number": "3.0.0", "kind-of": "4.0.0" @@ -7186,16 +8663,16 @@ "dependencies": { "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, + "dev": true, "requires": { "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, + "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -7204,8 +8681,8 @@ }, "kind-of": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "bundled": true, + "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -7214,18 +8691,18 @@ }, "hosted-git-info": { "version": "2.6.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", - "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==" + "bundled": true, + "dev": true }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + "bundled": true, + "dev": true }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, + "dev": true, "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -7233,60 +8710,60 @@ }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "bundled": true, + "dev": true }, "invariant": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "bundled": true, + "dev": true, "requires": { "loose-envify": "1.3.1" } }, "invert-kv": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + "bundled": true, + "dev": true }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "bundled": true, + "dev": true, "requires": { "kind-of": "3.2.2" } }, "is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "bundled": true, + "dev": true }, "is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "bundled": true, + "dev": true }, "is-builtin-module": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "bundled": true, + "dev": true, "requires": { "builtin-modules": "1.1.1" } }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "bundled": true, + "dev": true, "requires": { "kind-of": "3.2.2" } }, "is-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "bundled": true, + "dev": true, "requires": { "is-accessor-descriptor": "0.1.6", "is-data-descriptor": "0.1.4", @@ -7295,114 +8772,114 @@ "dependencies": { "kind-of": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + "bundled": true, + "dev": true } } }, "is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "bundled": true, + "dev": true }, "is-finite": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "bundled": true, + "dev": true, "requires": { "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "bundled": true, + "dev": true }, "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, + "dev": true, "requires": { "kind-of": "3.2.2" } }, "is-odd": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", - "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "bundled": true, + "dev": true, "requires": { "is-number": "4.0.0" }, "dependencies": { "is-number": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" + "bundled": true, + "dev": true } } }, "is-plain-object": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "bundled": true, + "dev": true, "requires": { "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true } } }, "is-stream": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "bundled": true, + "dev": true }, "is-utf8": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + "bundled": true, + "dev": true }, "is-windows": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + "bundled": true, + "dev": true }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "bundled": true, + "dev": true }, "isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "bundled": true, + "dev": true }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true }, "istanbul-lib-coverage": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", - "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==" + "bundled": true, + "dev": true }, "istanbul-lib-hook": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", - "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", + "bundled": true, + "dev": true, "requires": { "append-transform": "0.4.0" } }, "istanbul-lib-instrument": { "version": "1.10.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", - "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", + "bundled": true, + "dev": true, "requires": { "babel-generator": "6.26.1", "babel-template": "6.26.0", @@ -7415,8 +8892,8 @@ }, "istanbul-lib-report": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz", - "integrity": "sha512-D4jVbMDtT2dPmloPJS/rmeP626N5Pr3Rp+SovrPn1+zPChGHcggd/0sL29jnbm4oK9W0wHjCRsdch9oLd7cm6g==", + "bundled": true, + "dev": true, "requires": { "istanbul-lib-coverage": "1.2.0", "mkdirp": "0.5.1", @@ -7426,8 +8903,8 @@ "dependencies": { "supports-color": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "bundled": true, + "dev": true, "requires": { "has-flag": "1.0.0" } @@ -7436,8 +8913,8 @@ }, "istanbul-lib-source-maps": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz", - "integrity": "sha512-fDa0hwU/5sDXwAklXgAoCJCOsFsBplVQ6WBldz5UwaqOzmDhUK4nfuR7/G//G2lERlblUNJB8P6e8cXq3a7MlA==", + "bundled": true, + "dev": true, "requires": { "debug": "3.1.0", "istanbul-lib-coverage": "1.2.0", @@ -7448,8 +8925,8 @@ "dependencies": { "debug": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "bundled": true, + "dev": true, "requires": { "ms": "2.0.0" } @@ -7458,48 +8935,48 @@ }, "istanbul-reports": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.4.0.tgz", - "integrity": "sha512-OPzVo1fPZ2H+owr8q/LYKLD+vquv9Pj4F+dj808MdHbuQLD7S4ACRjcX+0Tne5Vxt2lxXvdZaL7v+FOOAV281w==", + "bundled": true, + "dev": true, "requires": { "handlebars": "4.0.11" } }, "js-tokens": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + "bundled": true, + "dev": true }, "jsesc": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" + "bundled": true, + "dev": true }, "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, + "dev": true, "requires": { "is-buffer": "1.1.6" } }, "lazy-cache": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "bundled": true, + "dev": true, "optional": true }, "lcid": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "bundled": true, + "dev": true, "requires": { "invert-kv": "1.0.0" } }, "load-json-file": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "bundled": true, + "dev": true, "requires": { "graceful-fs": "4.1.11", "parse-json": "2.2.0", @@ -7510,8 +8987,8 @@ }, "locate-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "bundled": true, + "dev": true, "requires": { "p-locate": "2.0.0", "path-exists": "3.0.0" @@ -7519,33 +8996,33 @@ "dependencies": { "path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "bundled": true, + "dev": true } } }, "lodash": { "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" + "bundled": true, + "dev": true }, "longest": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" + "bundled": true, + "dev": true }, "loose-envify": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "bundled": true, + "dev": true, "requires": { "js-tokens": "3.0.2" } }, "lru-cache": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "bundled": true, + "dev": true, "requires": { "pseudomap": "1.0.2", "yallist": "2.1.2" @@ -7553,57 +9030,57 @@ }, "map-cache": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + "bundled": true, + "dev": true }, "map-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "bundled": true, + "dev": true, "requires": { "object-visit": "1.0.1" } }, "md5-hex": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", - "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", + "bundled": true, + "dev": true, "requires": { "md5-o-matic": "0.1.1" } }, "md5-o-matic": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", - "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=" + "bundled": true, + "dev": true }, "mem": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "bundled": true, + "dev": true, "requires": { "mimic-fn": "1.2.0" } }, "merge-source-map": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "bundled": true, + "dev": true, "requires": { "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==" + "bundled": true, + "dev": true } } }, "micromatch": { "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "bundled": true, + "dev": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -7622,33 +9099,33 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "bundled": true, + "dev": true } } }, "mimic-fn": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + "bundled": true, + "dev": true }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, + "dev": true, "requires": { "brace-expansion": "1.1.11" } }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "bundled": true, + "dev": true }, "mixin-deep": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "bundled": true, + "dev": true, "requires": { "for-in": "1.0.2", "is-extendable": "1.0.1" @@ -7656,8 +9133,8 @@ "dependencies": { "is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "bundled": true, + "dev": true, "requires": { "is-plain-object": "2.0.4" } @@ -7666,21 +9143,21 @@ }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, + "dev": true, "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "bundled": true, + "dev": true }, "nanomatch": { "version": "1.2.9", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", - "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", + "bundled": true, + "dev": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -7698,25 +9175,25 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + "bundled": true, + "dev": true }, "array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "bundled": true, + "dev": true } } }, "normalize-package-data": { "version": "2.4.0", - "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==", + "bundled": true, + "dev": true, "requires": { "hosted-git-info": "2.6.0", "is-builtin-module": "1.0.0", @@ -7726,26 +9203,26 @@ }, "npm-run-path": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "bundled": true, + "dev": true, "requires": { "path-key": "2.0.1" } }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "bundled": true, + "dev": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "bundled": true, + "dev": true }, "object-copy": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "bundled": true, + "dev": true, "requires": { "copy-descriptor": "0.1.1", "define-property": "0.2.5", @@ -7754,8 +9231,8 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, + "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -7764,46 +9241,46 @@ }, "object-visit": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "bundled": true, + "dev": true, "requires": { "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true } } }, "object.pick": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "bundled": true, + "dev": true, "requires": { "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true } } }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, + "dev": true, "requires": { "wrappy": "1.0.2" } }, "optimist": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "bundled": true, + "dev": true, "requires": { "minimist": "0.0.8", "wordwrap": "0.0.3" @@ -7811,13 +9288,13 @@ }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + "bundled": true, + "dev": true }, "os-locale": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "bundled": true, + "dev": true, "requires": { "execa": "0.7.0", "lcid": "1.0.0", @@ -7826,70 +9303,70 @@ }, "p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + "bundled": true, + "dev": true }, "p-limit": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "bundled": true, + "dev": true, "requires": { "p-try": "1.0.0" } }, "p-locate": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "bundled": true, + "dev": true, "requires": { "p-limit": "1.2.0" } }, "p-try": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + "bundled": true, + "dev": true }, "parse-json": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "bundled": true, + "dev": true, "requires": { "error-ex": "1.3.1" } }, "pascalcase": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + "bundled": true, + "dev": true }, "path-exists": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "bundled": true, + "dev": true, "requires": { "pinkie-promise": "2.0.1" } }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "bundled": true, + "dev": true }, "path-key": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + "bundled": true, + "dev": true }, "path-parse": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" + "bundled": true, + "dev": true }, "path-type": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "bundled": true, + "dev": true, "requires": { "graceful-fs": "4.1.11", "pify": "2.3.0", @@ -7898,34 +9375,34 @@ }, "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + "bundled": true, + "dev": true }, "pinkie": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + "bundled": true, + "dev": true }, "pinkie-promise": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "bundled": true, + "dev": true, "requires": { "pinkie": "2.0.4" } }, "pkg-dir": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "bundled": true, + "dev": true, "requires": { "find-up": "1.1.2" }, "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "bundled": true, + "dev": true, "requires": { "path-exists": "2.1.0", "pinkie-promise": "2.0.1" @@ -7935,18 +9412,18 @@ }, "posix-character-classes": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + "bundled": true, + "dev": true }, "pseudomap": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + "bundled": true, + "dev": true }, "read-pkg": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "bundled": true, + "dev": true, "requires": { "load-json-file": "1.1.0", "normalize-package-data": "2.4.0", @@ -7955,8 +9432,8 @@ }, "read-pkg-up": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "bundled": true, + "dev": true, "requires": { "find-up": "1.1.2", "read-pkg": "1.1.0" @@ -7964,8 +9441,8 @@ "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "bundled": true, + "dev": true, "requires": { "path-exists": "2.1.0", "pinkie-promise": "2.0.1" @@ -7975,13 +9452,13 @@ }, "regenerator-runtime": { "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + "bundled": true, + "dev": true }, "regex-not": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "bundled": true, + "dev": true, "requires": { "extend-shallow": "3.0.2", "safe-regex": "1.1.0" @@ -7989,51 +9466,51 @@ }, "repeat-element": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" + "bundled": true, + "dev": true }, "repeat-string": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + "bundled": true, + "dev": true }, "repeating": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "bundled": true, + "dev": true, "requires": { "is-finite": "1.0.2" } }, "require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "bundled": true, + "dev": true }, "require-main-filename": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + "bundled": true, + "dev": true }, "resolve-from": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" + "bundled": true, + "dev": true }, "resolve-url": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + "bundled": true, + "dev": true }, "ret": { "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + "bundled": true, + "dev": true }, "right-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "bundled": true, + "dev": true, "optional": true, "requires": { "align-text": "0.1.4" @@ -8041,34 +9518,34 @@ }, "rimraf": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "bundled": true, + "dev": true, "requires": { "glob": "7.1.2" } }, "safe-regex": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "bundled": true, + "dev": true, "requires": { "ret": "0.1.15" } }, "semver": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + "bundled": true, + "dev": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "bundled": true, + "dev": true }, "set-value": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "bundled": true, + "dev": true, "requires": { "extend-shallow": "2.0.1", "is-extendable": "0.1.1", @@ -8078,8 +9555,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -8088,31 +9565,31 @@ }, "shebang-command": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "bundled": true, + "dev": true, "requires": { "shebang-regex": "1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + "bundled": true, + "dev": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + "bundled": true, + "dev": true }, "slide": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" + "bundled": true, + "dev": true }, "snapdragon": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "bundled": true, + "dev": true, "requires": { "base": "0.11.2", "debug": "2.6.9", @@ -8126,16 +9603,16 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, + "dev": true, "requires": { "is-descriptor": "0.1.6" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -8144,8 +9621,8 @@ }, "snapdragon-node": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "bundled": true, + "dev": true, "requires": { "define-property": "1.0.0", "isobject": "3.0.1", @@ -8154,32 +9631,32 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, + "dev": true, "requires": { "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "bundled": true, + "dev": true, "requires": { "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "bundled": true, + "dev": true, "requires": { "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, + "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -8188,33 +9665,33 @@ }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "bundled": true, + "dev": true } } }, "snapdragon-util": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "bundled": true, + "dev": true, "requires": { "kind-of": "3.2.2" } }, "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "bundled": true, + "dev": true }, "source-map-resolve": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", - "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "bundled": true, + "dev": true, "requires": { "atob": "2.1.1", "decode-uri-component": "0.2.0", @@ -8225,13 +9702,13 @@ }, "source-map-url": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + "bundled": true, + "dev": true }, "spawn-wrap": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", - "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", + "bundled": true, + "dev": true, "requires": { "foreground-child": "1.5.6", "mkdirp": "0.5.1", @@ -8243,8 +9720,8 @@ }, "spdx-correct": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "bundled": true, + "dev": true, "requires": { "spdx-expression-parse": "3.0.0", "spdx-license-ids": "3.0.0" @@ -8252,13 +9729,13 @@ }, "spdx-exceptions": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==" + "bundled": true, + "dev": true }, "spdx-expression-parse": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "bundled": true, + "dev": true, "requires": { "spdx-exceptions": "2.1.0", "spdx-license-ids": "3.0.0" @@ -8266,21 +9743,21 @@ }, "spdx-license-ids": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==" + "bundled": true, + "dev": true }, "split-string": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "bundled": true, + "dev": true, "requires": { "extend-shallow": "3.0.2" } }, "static-extend": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "bundled": true, + "dev": true, "requires": { "define-property": "0.2.5", "object-copy": "0.1.0" @@ -8288,8 +9765,8 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, + "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -8298,8 +9775,8 @@ }, "string-width": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "bundled": true, + "dev": true, "requires": { "is-fullwidth-code-point": "2.0.0", "strip-ansi": "4.0.0" @@ -8307,13 +9784,13 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "bundled": true, + "dev": true }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "bundled": true, + "dev": true, "requires": { "ansi-regex": "3.0.0" } @@ -8322,34 +9799,34 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, + "dev": true, "requires": { "ansi-regex": "2.1.1" } }, "strip-bom": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "bundled": true, + "dev": true, "requires": { "is-utf8": "0.2.1" } }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + "bundled": true, + "dev": true }, "supports-color": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "bundled": true, + "dev": true }, "test-exclude": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", - "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", + "bundled": true, + "dev": true, "requires": { "arrify": "1.0.1", "micromatch": "3.1.10", @@ -8360,18 +9837,18 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + "bundled": true, + "dev": true }, "array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + "bundled": true, + "dev": true }, "braces": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "bundled": true, + "dev": true, "requires": { "arr-flatten": "1.1.0", "array-unique": "0.3.2", @@ -8387,8 +9864,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -8397,8 +9874,8 @@ }, "expand-brackets": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "bundled": true, + "dev": true, "requires": { "debug": "2.6.9", "define-property": "0.2.5", @@ -8411,32 +9888,32 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, + "dev": true, "requires": { "is-descriptor": "0.1.6" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "bundled": true, + "dev": true, "requires": { "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, + "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -8445,16 +9922,16 @@ }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "bundled": true, + "dev": true, "requires": { "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, + "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -8463,8 +9940,8 @@ }, "is-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "bundled": true, + "dev": true, "requires": { "is-accessor-descriptor": "0.1.6", "is-data-descriptor": "0.1.4", @@ -8473,15 +9950,15 @@ }, "kind-of": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + "bundled": true, + "dev": true } } }, "extglob": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "bundled": true, + "dev": true, "requires": { "array-unique": "0.3.2", "define-property": "1.0.0", @@ -8495,16 +9972,16 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, + "dev": true, "requires": { "is-descriptor": "1.0.2" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -8513,8 +9990,8 @@ }, "fill-range": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "bundled": true, + "dev": true, "requires": { "extend-shallow": "2.0.1", "is-number": "3.0.0", @@ -8524,8 +10001,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -8534,24 +10011,24 @@ }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "bundled": true, + "dev": true, "requires": { "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "bundled": true, + "dev": true, "requires": { "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, + "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -8560,16 +10037,16 @@ }, "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, + "dev": true, "requires": { "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, + "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -8578,18 +10055,18 @@ }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "bundled": true, + "dev": true }, "micromatch": { "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "bundled": true, + "dev": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -8610,21 +10087,21 @@ }, "to-fast-properties": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" + "bundled": true, + "dev": true }, "to-object-path": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "bundled": true, + "dev": true, "requires": { "kind-of": "3.2.2" } }, "to-regex": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "bundled": true, + "dev": true, "requires": { "define-property": "2.0.2", "extend-shallow": "3.0.2", @@ -8634,8 +10111,8 @@ }, "to-regex-range": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "bundled": true, + "dev": true, "requires": { "is-number": "3.0.0", "repeat-string": "1.6.1" @@ -8643,8 +10120,8 @@ "dependencies": { "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, + "dev": true, "requires": { "kind-of": "3.2.2" } @@ -8653,13 +10130,13 @@ }, "trim-right": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" + "bundled": true, + "dev": true }, "uglify-js": { "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "bundled": true, + "dev": true, "optional": true, "requires": { "source-map": "0.5.7", @@ -8669,8 +10146,8 @@ "dependencies": { "yargs": { "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "bundled": true, + "dev": true, "optional": true, "requires": { "camelcase": "1.2.1", @@ -8683,14 +10160,14 @@ }, "uglify-to-browserify": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "bundled": true, + "dev": true, "optional": true }, "union-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "bundled": true, + "dev": true, "requires": { "arr-union": "3.1.0", "get-value": "2.0.6", @@ -8700,16 +10177,16 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { "is-extendable": "0.1.1" } }, "set-value": { "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "bundled": true, + "dev": true, "requires": { "extend-shallow": "2.0.1", "is-extendable": "0.1.1", @@ -8721,8 +10198,8 @@ }, "unset-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "bundled": true, + "dev": true, "requires": { "has-value": "0.3.1", "isobject": "3.0.1" @@ -8730,8 +10207,8 @@ "dependencies": { "has-value": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "bundled": true, + "dev": true, "requires": { "get-value": "2.0.6", "has-values": "0.1.4", @@ -8740,8 +10217,8 @@ "dependencies": { "isobject": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "bundled": true, + "dev": true, "requires": { "isarray": "1.0.0" } @@ -8750,40 +10227,40 @@ }, "has-values": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + "bundled": true, + "dev": true }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true } } }, "urix": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + "bundled": true, + "dev": true }, "use": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", - "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "bundled": true, + "dev": true, "requires": { "kind-of": "6.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "bundled": true, + "dev": true } } }, "validate-npm-package-license": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", - "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", + "bundled": true, + "dev": true, "requires": { "spdx-correct": "3.0.0", "spdx-expression-parse": "3.0.0" @@ -8791,32 +10268,32 @@ }, "which": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "bundled": true, + "dev": true, "requires": { "isexe": "2.0.0" } }, "which-module": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + "bundled": true, + "dev": true }, "window-size": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "bundled": true, + "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" + "bundled": true, + "dev": true }, "wrap-ansi": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "bundled": true, + "dev": true, "requires": { "string-width": "1.0.2", "strip-ansi": "3.0.1" @@ -8824,16 +10301,16 @@ "dependencies": { "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, + "dev": true, "requires": { "number-is-nan": "1.0.1" } }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, + "dev": true, "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -8844,13 +10321,13 @@ }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "bundled": true, + "dev": true }, "write-file-atomic": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", - "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", + "bundled": true, + "dev": true, "requires": { "graceful-fs": "4.1.11", "imurmurhash": "0.1.4", @@ -8859,18 +10336,18 @@ }, "y18n": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + "bundled": true, + "dev": true }, "yallist": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + "bundled": true, + "dev": true }, "yargs": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", - "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", + "bundled": true, + "dev": true, "requires": { "cliui": "4.1.0", "decamelize": "1.2.0", @@ -8888,18 +10365,18 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "bundled": true, + "dev": true }, "camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + "bundled": true, + "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==", + "bundled": true, + "dev": true, "requires": { "string-width": "2.1.1", "strip-ansi": "4.0.0", @@ -8908,16 +10385,16 @@ }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "bundled": true, + "dev": true, "requires": { "ansi-regex": "3.0.0" } }, "yargs-parser": { "version": "9.0.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "bundled": true, + "dev": true, "requires": { "camelcase": "4.1.0" } @@ -8926,16 +10403,16 @@ }, "yargs-parser": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", - "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", + "bundled": true, + "dev": true, "requires": { "camelcase": "4.1.0" }, "dependencies": { "camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + "bundled": true, + "dev": true } } } diff --git a/package.json b/package.json index d9095eba..3d9520b8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.5.5", + "version": "1.5.6", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", @@ -34,7 +34,7 @@ "bchaddrjs": "^0.2.1", "bigi": "^1.4.2", "bip21": "Bitcoin-com/bip21", - "bip32-utils": "Bitcoin-com/bip32-utils#0.12.0", + "bip32-utils": "Bitcoin-com/bip32-utils#0.12.1", "bip38": "^2.0.2", "bip39": "^2.5.0", "bip66": "^1.1.5", From b00e79a091ff36d43fab72c1fab47b59f781a62e Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 15 Aug 2018 21:22:46 -0700 Subject: [PATCH 060/480] Remove proxy --- index.js | 18 +- package-lock.json | 2090 +++------------------------------------------ package.json | 3 +- 3 files changed, 142 insertions(+), 1969 deletions(-) diff --git a/index.js b/index.js index 0adffebe..15722545 100755 --- a/index.js +++ b/index.js @@ -15,11 +15,10 @@ let repl = require("repl"); let ini = require('ini'); let BITBOXCli = require('./lib/bitbox-cli').default; let clone = require('git-clone'); -let corsproxy = require('corsproxy'); let cmd = require('node-cmd'); program - .version('1.5.6'); + .version('1.5.7'); program .command('new ') @@ -183,21 +182,6 @@ program } ); -program - .command('proxy') - .description('localhost proxy for POSTing to full BCH node') - .action((options) => { - console.log(chalk.green(`CORS Proxy running at: http://localhost:1337`)); - cmd.run('npm install -g corsproxy'); - cmd.get( - 'corsproxy', - function(err, data, stderr){ - // console.log('') - } - ); - } -); - function fetchOption(kv, config, options) { let parts = kv.split('='); let key = parts[0]; diff --git a/package-lock.json b/package-lock.json index 12324344..df7370fd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.5.6", + "version": "1.5.7", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1163,7 +1163,7 @@ "bip32-utils": { "version": "github:Bitcoin-com/bip32-utils#154514b66924185d24a39574df8b4a4023b4f41a", "requires": { - "bitbox-cli": "1.5.5", + "bitbox-cli": "1.5.6", "keccak": "1.4.0", "nyc": "12.0.2", "standard": "11.0.1", @@ -3008,1863 +3008,55 @@ "integrity": "sha512-O1htyufFTYy3EO0JkHg2CLykdXEtV2ssqw47Gq9A0WByp662xpJnMEB9m43LZjsSDjIAOozWRExlFQk2hlV1XQ==" }, "bitbox-cli": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/bitbox-cli/-/bitbox-cli-1.5.5.tgz", - "integrity": "sha512-dl7v/UsRjI+wAWHrOBXcDSBEQiKI/sV7EG4H9RK1bO6Nf7PDzzqW5jo1kmLCwO6KNIarxJWlJ3nfVP8kk0ou7w==", - "requires": { - "assert": "1.4.1", - "axios": "0.17.1", - "babel-cli": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-register": "6.26.0", - "bchaddrjs": "0.2.2", - "bigi": "1.4.2", - "bip21": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "bip32-utils": "github:Bitcoin-com/bip32-utils#8357139b8537bc350c9b9235d689840bfaaaa33f", - "bip38": "2.0.2", - "bip39": "2.5.0", - "bip66": "1.1.5", - "bip68": "1.0.4", - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", - "bitcoin-txdecoder": "0.0.3", - "bitcoincashjs-lib": "github:Bitcoin-com/bitcoincashjs-lib#0a7fc7cf23551503f57689db4c930b8136db954c", - "bitcoinjs-message": "2.0.0", - "bs58": "4.0.1", - "buffer": "5.2.0", - "chalk": "2.4.1", - "clear": "0.0.1", - "coininfo": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", - "commander": "2.17.1", - "corsproxy": "1.5.0", - "cp-file": "5.0.0", - "ecurve": "1.0.6", - "figlet": "1.2.0", - "git-clone": "0.1.0", - "ini": "1.3.5", - "mkdirp": "0.5.1", - "mocha": "5.2.0", - "node-cmd": "3.0.0", - "node-emoji": "1.8.1", - "qrcode": "1.2.2", - "randombytes": "2.0.6", - "repl.history": "0.1.4", - "safe-buffer": "5.1.2", - "satoshi-bitcoin": "1.0.4", - "socket.io": "2.1.1", - "socket.io-client": "2.1.1", - "touch": "3.1.0", - "wif": "2.0.6" - }, - "dependencies": { - "bip32-utils": { - "version": "github:Bitcoin-com/bip32-utils#8357139b8537bc350c9b9235d689840bfaaaa33f", - "requires": { - "bitbox-cli": "1.5.5", - "keccak": "1.4.0", - "nyc": "12.0.2", - "standard": "11.0.1", - "tape": "4.9.1" - } - }, - "nyc": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-12.0.2.tgz", - "integrity": "sha1-ikpO1pCWbBHsWH/4fuoMEsl0upk=", - "requires": { - "archy": "1.0.0", - "arrify": "1.0.1", - "caching-transform": "1.0.1", - "convert-source-map": "1.5.1", - "debug-log": "1.0.1", - "default-require-extensions": "1.0.0", - "find-cache-dir": "0.1.1", - "find-up": "2.1.0", - "foreground-child": "1.5.6", - "glob": "7.1.2", - "istanbul-lib-coverage": "1.2.0", - "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "2.3.2", - "istanbul-lib-report": "1.1.3", - "istanbul-lib-source-maps": "1.2.5", - "istanbul-reports": "1.4.1", - "md5-hex": "1.3.0", - "merge-source-map": "1.1.0", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "resolve-from": "2.0.0", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "spawn-wrap": "1.4.2", - "test-exclude": "4.2.1", - "yargs": "11.1.0", - "yargs-parser": "8.1.0" - }, - "dependencies": { - "align-text": { - "version": "0.1.4", - "bundled": true, - "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" - } - }, - "amdefine": { - "version": "1.0.1", - "bundled": true - }, - "ansi-regex": { - "version": "3.0.0", - "bundled": true - }, - "append-transform": { - "version": "0.4.0", - "bundled": true, - "requires": { - "default-require-extensions": "1.0.0" - } - }, - "archy": { - "version": "1.0.0", - "bundled": true - }, - "arr-diff": { - "version": "4.0.0", - "bundled": true - }, - "arr-flatten": { - "version": "1.1.0", - "bundled": true - }, - "arr-union": { - "version": "3.1.0", - "bundled": true - }, - "array-unique": { - "version": "0.3.2", - "bundled": true - }, - "arrify": { - "version": "1.0.1", - "bundled": true - }, - "assign-symbols": { - "version": "1.0.0", - "bundled": true - }, - "async": { - "version": "1.5.2", - "bundled": true - }, - "atob": { - "version": "2.1.1", - "bundled": true - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true - }, - "base": { - "version": "0.11.2", - "bundled": true, - "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "bundled": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "builtin-modules": { - "version": "1.1.1", - "bundled": true - }, - "cache-base": { - "version": "1.0.1", - "bundled": 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" - } - }, - "caching-transform": { - "version": "1.0.1", - "bundled": true, - "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" - } - }, - "camelcase": { - "version": "1.2.1", - "bundled": true, - "optional": true - }, - "center-align": { - "version": "0.1.3", - "bundled": true, - "optional": true, - "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" - } - }, - "class-utils": { - "version": "0.3.6", - "bundled": true, - "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "cliui": { - "version": "2.1.0", - "bundled": true, - "optional": true, - "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "bundled": true, - "optional": true - } - } - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true - }, - "collection-visit": { - "version": "1.0.0", - "bundled": true, - "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" - } - }, - "commondir": { - "version": "1.0.1", - "bundled": true - }, - "component-emitter": { - "version": "1.2.1", - "bundled": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true - }, - "convert-source-map": { - "version": "1.5.1", - "bundled": true - }, - "copy-descriptor": { - "version": "0.1.1", - "bundled": true - }, - "cross-spawn": { - "version": "4.0.2", - "bundled": true, - "requires": { - "lru-cache": "4.1.3", - "which": "1.3.1" - } - }, - "debug": { - "version": "3.1.0", - "bundled": true, - "requires": { - "ms": "2.0.0" - } - }, - "debug-log": { - "version": "1.0.1", - "bundled": true - }, - "decamelize": { - "version": "1.2.0", - "bundled": true - }, - "decode-uri-component": { - "version": "0.2.0", - "bundled": true - }, - "default-require-extensions": { - "version": "1.0.0", - "bundled": true, - "requires": { - "strip-bom": "2.0.0" - } - }, - "define-property": { - "version": "2.0.2", - "bundled": true, - "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "error-ex": { - "version": "1.3.1", - "bundled": true, - "requires": { - "is-arrayish": "0.2.1" - } - }, - "execa": { - "version": "0.7.0", - "bundled": 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" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "bundled": true, - "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "bundled": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "bundled": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "extend-shallow": { - "version": "3.0.2", - "bundled": true, - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "bundled": true, - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "bundled": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "fill-range": { - "version": "4.0.0", - "bundled": true, - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "find-cache-dir": { - "version": "0.1.1", - "bundled": true, - "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "bundled": true, - "requires": { - "locate-path": "2.0.0" - } - }, - "for-in": { - "version": "1.0.2", - "bundled": true - }, - "foreground-child": { - "version": "1.5.6", - "bundled": true, - "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" - } - }, - "fragment-cache": { - "version": "0.2.1", - "bundled": true, - "requires": { - "map-cache": "0.2.2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true - }, - "get-caller-file": { - "version": "1.0.2", - "bundled": true - }, - "get-stream": { - "version": "3.0.0", - "bundled": true - }, - "get-value": { - "version": "2.0.6", - "bundled": true - }, - "glob": { - "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" - } - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true - }, - "handlebars": { - "version": "4.0.11", - "bundled": true, - "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "bundled": true, - "requires": { - "amdefine": "1.0.1" - } - } - } - }, - "has-value": { - "version": "1.0.0", - "bundled": true, - "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" - } - }, - "has-values": { - "version": "1.0.0", - "bundled": true, - "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "bundled": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "hosted-git-info": { - "version": "2.6.0", - "bundled": true - }, - "imurmurhash": { - "version": "0.1.4", - "bundled": true - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true - }, - "invert-kv": { - "version": "1.0.0", - "bundled": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-arrayish": { - "version": "0.2.1", - "bundled": true - }, - "is-buffer": { - "version": "1.1.6", - "bundled": true - }, - "is-builtin-module": { - "version": "1.0.0", - "bundled": true, - "requires": { - "builtin-modules": "1.1.1" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "bundled": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "bundled": true - } - } - }, - "is-extendable": { - "version": "0.1.1", - "bundled": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "bundled": true - }, - "is-number": { - "version": "3.0.0", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-odd": { - "version": "2.0.0", - "bundled": true, - "requires": { - "is-number": "4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "bundled": true - } - } - }, - "is-plain-object": { - "version": "2.0.4", - "bundled": true, - "requires": { - "isobject": "3.0.1" - } - }, - "is-stream": { - "version": "1.1.0", - "bundled": true - }, - "is-utf8": { - "version": "0.2.1", - "bundled": true - }, - "is-windows": { - "version": "1.0.2", - "bundled": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true - }, - "isexe": { - "version": "2.0.0", - "bundled": true - }, - "isobject": { - "version": "3.0.1", - "bundled": true - }, - "istanbul-lib-coverage": { - "version": "1.2.0", - "bundled": true - }, - "istanbul-lib-hook": { - "version": "1.1.0", - "bundled": true, - "requires": { - "append-transform": "0.4.0" - } - }, - "istanbul-lib-report": { - "version": "1.1.3", - "bundled": true, - "requires": { - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "bundled": true - }, - "supports-color": { - "version": "3.2.3", - "bundled": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "1.2.5", - "bundled": true, - "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" - } - }, - "istanbul-reports": { - "version": "1.4.1", - "bundled": true, - "requires": { - "handlebars": "4.0.11" - } - }, - "kind-of": { - "version": "3.2.2", - "bundled": true, - "requires": { - "is-buffer": "1.1.6" - } - }, - "lazy-cache": { - "version": "1.0.4", - "bundled": true, - "optional": true - }, - "lcid": { - "version": "1.0.0", - "bundled": true, - "requires": { - "invert-kv": "1.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "bundled": true, - "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" - } - }, - "locate-path": { - "version": "2.0.0", - "bundled": true, - "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "bundled": true - } - } - }, - "longest": { - "version": "1.0.1", - "bundled": true - }, - "lru-cache": { - "version": "4.1.3", - "bundled": true, - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } - }, - "map-cache": { - "version": "0.2.2", - "bundled": true - }, - "map-visit": { - "version": "1.0.0", - "bundled": true, - "requires": { - "object-visit": "1.0.1" - } - }, - "md5-hex": { - "version": "1.3.0", - "bundled": true, - "requires": { - "md5-o-matic": "0.1.1" - } - }, - "md5-o-matic": { - "version": "0.1.1", - "bundled": true - }, - "mem": { - "version": "1.1.0", - "bundled": true, - "requires": { - "mimic-fn": "1.2.0" - } - }, - "merge-source-map": { - "version": "1.1.0", - "bundled": true, - "requires": { - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true - } - } - }, - "micromatch": { - "version": "3.1.10", - "bundled": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "mimic-fn": { - "version": "1.2.0", - "bundled": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true - }, - "mixin-deep": { - "version": "1.3.1", - "bundled": true, - "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "bundled": true, - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true - }, - "nanomatch": { - "version": "1.2.9", - "bundled": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "normalize-package-data": { - "version": "2.4.0", - "bundled": true, - "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" - } - }, - "npm-run-path": { - "version": "2.0.2", - "bundled": true, - "requires": { - "path-key": "2.0.1" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true - }, - "object-copy": { - "version": "0.1.0", - "bundled": true, - "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "object-visit": { - "version": "1.0.1", - "bundled": true, - "requires": { - "isobject": "3.0.1" - } - }, - "object.pick": { - "version": "1.3.0", - "bundled": true, - "requires": { - "isobject": "3.0.1" - } - }, - "once": { - "version": "1.4.0", - "bundled": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "optimist": { - "version": "0.6.1", - "bundled": true, - "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true - }, - "os-locale": { - "version": "2.1.0", - "bundled": true, - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - } - }, - "p-finally": { - "version": "1.0.0", - "bundled": true - }, - "p-limit": { - "version": "1.2.0", - "bundled": true, - "requires": { - "p-try": "1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "bundled": true, - "requires": { - "p-limit": "1.2.0" - } - }, - "p-try": { - "version": "1.0.0", - "bundled": true - }, - "parse-json": { - "version": "2.2.0", - "bundled": true, - "requires": { - "error-ex": "1.3.1" - } - }, - "pascalcase": { - "version": "0.1.1", - "bundled": true - }, - "path-exists": { - "version": "2.1.0", - "bundled": true, - "requires": { - "pinkie-promise": "2.0.1" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true - }, - "path-key": { - "version": "2.0.1", - "bundled": true - }, - "path-parse": { - "version": "1.0.5", - "bundled": true - }, - "path-type": { - "version": "1.1.0", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - } - }, - "pify": { - "version": "2.3.0", - "bundled": true - }, - "pinkie": { - "version": "2.0.4", - "bundled": true - }, - "pinkie-promise": { - "version": "2.0.1", - "bundled": true, - "requires": { - "pinkie": "2.0.4" - } - }, - "pkg-dir": { - "version": "1.0.0", - "bundled": true, - "requires": { - "find-up": "1.1.2" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "bundled": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "bundled": true - }, - "pseudomap": { - "version": "1.0.2", - "bundled": true - }, - "read-pkg": { - "version": "1.1.0", - "bundled": true, - "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "bundled": true, - "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "bundled": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - } - } - }, - "regex-not": { - "version": "1.0.2", - "bundled": true, - "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" - } - }, - "repeat-element": { - "version": "1.1.2", - "bundled": true - }, - "repeat-string": { - "version": "1.6.1", - "bundled": true - }, - "require-directory": { - "version": "2.1.1", - "bundled": true - }, - "require-main-filename": { - "version": "1.0.1", - "bundled": true - }, - "resolve-from": { - "version": "2.0.0", - "bundled": true - }, - "resolve-url": { - "version": "0.2.1", - "bundled": true - }, - "ret": { - "version": "0.1.15", - "bundled": true - }, - "right-align": { - "version": "0.1.3", - "bundled": true, - "optional": true, - "requires": { - "align-text": "0.1.4" - } - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "requires": { - "glob": "7.1.2" - } - }, - "safe-regex": { - "version": "1.1.0", - "bundled": true, - "requires": { - "ret": "0.1.15" - } - }, - "semver": { - "version": "5.5.0", - "bundled": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true - }, - "set-value": { - "version": "2.0.0", - "bundled": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "shebang-command": { - "version": "1.2.0", - "bundled": true, - "requires": { - "shebang-regex": "1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "bundled": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true - }, - "slide": { - "version": "1.1.6", - "bundled": true - }, - "snapdragon": { - "version": "0.8.2", - "bundled": 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.2", - "use": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "bundled": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "bundled": true, - "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "source-map": { - "version": "0.5.7", - "bundled": true - }, - "source-map-resolve": { - "version": "0.5.2", - "bundled": true, - "requires": { - "atob": "2.1.1", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "bundled": true - }, - "spawn-wrap": { - "version": "1.4.2", - "bundled": true, - "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.1" - } - }, - "spdx-correct": { - "version": "3.0.0", - "bundled": true, - "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "bundled": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "bundled": true, - "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "bundled": true - }, - "split-string": { - "version": "3.1.0", - "bundled": true, - "requires": { - "extend-shallow": "3.0.2" - } - }, - "static-extend": { - "version": "0.1.2", - "bundled": true, - "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "string-width": { - "version": "2.1.1", - "bundled": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "requires": { - "ansi-regex": "3.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "bundled": true, - "requires": { - "is-utf8": "0.2.1" - } - }, - "strip-eof": { - "version": "1.0.0", - "bundled": true - }, - "test-exclude": { - "version": "4.2.1", - "bundled": true, - "requires": { - "arrify": "1.0.1", - "micromatch": "3.1.10", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" - } - }, - "to-object-path": { - "version": "0.3.0", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "to-regex": { - "version": "3.0.2", - "bundled": true, - "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "bundled": true, - "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" - } - }, - "uglify-js": { - "version": "2.8.29", - "bundled": true, - "optional": true, - "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" - }, - "dependencies": { - "yargs": { - "version": "3.10.0", - "bundled": true, - "optional": true, - "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" - } - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "union-value": { - "version": "1.0.0", - "bundled": true, - "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "set-value": { - "version": "0.4.3", - "bundled": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" - } - } - } - }, - "unset-value": { - "version": "1.0.0", - "bundled": true, - "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "bundled": true, - "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "bundled": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "bundled": true - } - } - }, - "urix": { - "version": "0.1.0", - "bundled": true - }, - "use": { - "version": "3.1.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "validate-npm-package-license": { - "version": "3.0.3", - "bundled": true, - "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" - } - }, - "which": { - "version": "1.3.1", - "bundled": true, - "requires": { - "isexe": "2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "bundled": true - }, - "window-size": { - "version": "0.1.0", - "bundled": true, - "optional": true - }, - "wordwrap": { - "version": "0.0.3", - "bundled": true - }, - "wrap-ansi": { - "version": "2.1.0", - "bundled": true, - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "bundled": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "string-width": { - "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" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "requires": { - "ansi-regex": "2.1.1" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true - }, - "write-file-atomic": { - "version": "1.3.4", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" - } - }, - "y18n": { - "version": "3.2.1", - "bundled": true - }, - "yallist": { - "version": "2.1.2", - "bundled": true - }, - "yargs": { - "version": "11.1.0", - "bundled": true, - "requires": { - "cliui": "4.1.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": "9.0.2" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "bundled": true - }, - "cliui": { - "version": "4.1.0", - "bundled": true, - "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" - } - }, - "yargs-parser": { - "version": "9.0.2", - "bundled": true, - "requires": { - "camelcase": "4.1.0" - } - } - } - }, - "yargs-parser": { - "version": "8.1.0", - "bundled": true, - "requires": { - "camelcase": "4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "bundled": true - } - } - } - } - } + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/bitbox-cli/-/bitbox-cli-1.5.6.tgz", + "integrity": "sha512-bELn7pL44tUvIJxPafrqKN5Q827SatsUreGM3z1o56noTUE2HtVaHG7fR6qXMcp+0CL0MEyBl5z82VY4r1CljQ==", + "requires": { + "assert": "1.4.1", + "axios": "0.17.1", + "babel-cli": "6.26.0", + "babel-preset-env": "1.7.0", + "babel-preset-es2015": "6.24.1", + "babel-preset-flow": "6.23.0", + "babel-preset-react": "6.24.1", + "babel-register": "6.26.0", + "bchaddrjs": "0.2.2", + "bigi": "1.4.2", + "bip21": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", + "bip32-utils": "github:Bitcoin-com/bip32-utils#154514b66924185d24a39574df8b4a4023b4f41a", + "bip38": "2.0.2", + "bip39": "2.5.0", + "bip66": "1.1.5", + "bip68": "1.0.4", + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", + "bitcoin-txdecoder": "0.0.3", + "bitcoincashjs-lib": "github:Bitcoin-com/bitcoincashjs-lib#0a7fc7cf23551503f57689db4c930b8136db954c", + "bitcoinjs-message": "2.0.0", + "bs58": "4.0.1", + "buffer": "5.2.0", + "chalk": "2.4.1", + "clear": "0.0.1", + "coininfo": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", + "commander": "2.17.1", + "corsproxy": "1.5.0", + "cp-file": "5.0.0", + "ecurve": "1.0.6", + "figlet": "1.2.0", + "git-clone": "0.1.0", + "ini": "1.3.5", + "mkdirp": "0.5.1", + "mocha": "5.2.0", + "node-cmd": "3.0.0", + "node-emoji": "1.8.1", + "qrcode": "1.2.2", + "randombytes": "2.0.6", + "repl.history": "0.1.4", + "safe-buffer": "5.1.2", + "satoshi-bitcoin": "1.0.4", + "socket.io": "2.1.1", + "socket.io-client": "2.1.1", + "touch": "3.1.0", + "wif": "2.0.6" } }, "bitcoin-ops": { @@ -5205,14 +3397,6 @@ "wrap-ansi": "2.1.0" }, "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "1.0.1" - } - }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -5348,13 +3532,6 @@ "nested-error-stacks": "2.1.0", "pify": "3.0.0", "safe-buffer": "5.1.2" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } } }, "create-hash": { @@ -5390,6 +3567,17 @@ "lru-cache": "4.1.3", "shebang-command": "1.2.0", "which": "1.3.1" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + } } }, "debug": { @@ -5467,6 +3655,13 @@ "pify": "2.3.0", "pinkie-promise": "2.0.1", "rimraf": "2.6.2" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } } }, "detect-indent": { @@ -5977,12 +4172,11 @@ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" }, "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "locate-path": "2.0.0" } }, "flat-cache": { @@ -6588,6 +4782,13 @@ "object-assign": "4.1.1", "pify": "2.3.0", "pinkie-promise": "2.0.1" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } } }, "good": { @@ -7084,13 +5285,6 @@ "items": "1.1.1", "joi": "6.10.1", "lru-cache": "2.7.3" - }, - "dependencies": { - "lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" - } } }, "inflight": { @@ -7233,9 +5427,12 @@ } }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "version": "1.0.0", + "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" + } }, "is-glob": { "version": "2.0.1", @@ -7484,6 +5681,13 @@ "parse-json": "2.2.0", "pify": "2.3.0", "strip-bom": "3.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } } }, "locate-path": { @@ -7493,13 +5697,6 @@ "requires": { "p-locate": "2.0.0", "path-exists": "3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } } }, "lodash": { @@ -7533,13 +5730,9 @@ } }, "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" }, "make-dir": { "version": "1.3.0", @@ -7547,13 +5740,6 @@ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "requires": { "pify": "3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } } }, "math-random": { @@ -10570,12 +8756,9 @@ } }, "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "2.0.1" - } + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" }, "path-is-absolute": { "version": "1.0.1", @@ -10620,6 +8803,13 @@ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { "pify": "2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } } }, "pathval": { @@ -10641,9 +8831,9 @@ } }, "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" }, "pinkie": { "version": "2.0.4", @@ -10667,14 +8857,6 @@ "load-json-file": "4.0.0" }, "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "2.0.0" - } - }, "load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", @@ -10694,11 +8876,6 @@ "error-ex": "1.3.2", "json-parse-better-errors": "1.0.2" } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" } } }, @@ -10718,6 +8895,25 @@ "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "requires": { "find-up": "1.1.2" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "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": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "2.0.1" + } + } } }, "pluralize": { @@ -10852,16 +9048,6 @@ "requires": { "find-up": "2.1.0", "read-pkg": "2.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "2.0.0" - } - } } }, "readable-stream": { @@ -11206,6 +9392,13 @@ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "requires": { "is-fullwidth-code-point": "2.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + } } }, "socket.io": { @@ -11358,6 +9551,11 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", @@ -11692,14 +9890,6 @@ "strip-ansi": "3.0.1" }, "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "1.0.1" - } - }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", diff --git a/package.json b/package.json index 3d9520b8..d8e69958 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.5.6", + "version": "1.5.7", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", @@ -49,7 +49,6 @@ "clear": "0.0.1", "coininfo": "Bitcoin-com/coininfo", "commander": "^2.13.0", - "corsproxy": "^1.5.0", "cp-file": "^5.0.0", "ecurve": "^1.0.6", "figlet": "^1.2.0", From fc2f1a4baa97e3cb35191e467a89d000c6b764de Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 15 Aug 2018 22:49:19 -0700 Subject: [PATCH 061/480] Version --- index.js | 2 +- package-lock.json | 3001 ++++++++++++++++++++++++++++++++------------- package.json | 4 +- 3 files changed, 2151 insertions(+), 856 deletions(-) diff --git a/index.js b/index.js index 15722545..4473796a 100755 --- a/index.js +++ b/index.js @@ -18,7 +18,7 @@ let clone = require('git-clone'); let cmd = require('node-cmd'); program - .version('1.5.7'); + .version('1.5.8'); program .command('new ') diff --git a/package-lock.json b/package-lock.json index df7370fd..190d021f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.5.7", + "version": "1.5.8", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -194,15 +194,6 @@ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=" }, - "ammo": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ammo/-/ammo-1.0.1.tgz", - "integrity": "sha1-j4rdFM1Jve3jurOj4OvK8h0D3os=", - "requires": { - "boom": "2.10.1", - "hoek": "2.16.3" - } - }, "ansi-escapes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", @@ -1161,9 +1152,9 @@ } }, "bip32-utils": { - "version": "github:Bitcoin-com/bip32-utils#154514b66924185d24a39574df8b4a4023b4f41a", + "version": "github:Bitcoin-com/bip32-utils#318df796443311f7e12217542f7f45d3b7791f10", "requires": { - "bitbox-cli": "1.5.6", + "bitbox-cli": "1.5.7", "keccak": "1.4.0", "nyc": "12.0.2", "standard": "11.0.1", @@ -3008,9 +2999,9 @@ "integrity": "sha512-O1htyufFTYy3EO0JkHg2CLykdXEtV2ssqw47Gq9A0WByp662xpJnMEB9m43LZjsSDjIAOozWRExlFQk2hlV1XQ==" }, "bitbox-cli": { - "version": "1.5.6", - "resolved": "https://registry.npmjs.org/bitbox-cli/-/bitbox-cli-1.5.6.tgz", - "integrity": "sha512-bELn7pL44tUvIJxPafrqKN5Q827SatsUreGM3z1o56noTUE2HtVaHG7fR6qXMcp+0CL0MEyBl5z82VY4r1CljQ==", + "version": "1.5.7", + "resolved": "https://registry.npmjs.org/bitbox-cli/-/bitbox-cli-1.5.7.tgz", + "integrity": "sha512-y1qnEcB5ppFX8dtkW/S8rzFGYilDwJ1ajSLedBCk3HOiqgSXelch/b3jpPAt38USTFoD4SWbhwpF8sxjGiZTrQ==", "requires": { "assert": "1.4.1", "axios": "0.17.1", @@ -3038,7 +3029,6 @@ "clear": "0.0.1", "coininfo": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", "commander": "2.17.1", - "corsproxy": "1.5.0", "cp-file": "5.0.0", "ecurve": "1.0.6", "figlet": "1.2.0", @@ -3057,268 +3047,2068 @@ "socket.io-client": "2.1.1", "touch": "3.1.0", "wif": "2.0.6" - } - }, - "bitcoin-ops": { - "version": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" - }, - "bitcoin-txdecoder": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/bitcoin-txdecoder/-/bitcoin-txdecoder-0.0.3.tgz", - "integrity": "sha512-pH/eF5hQ65y54U23mzuF42wEj9YWj4WKHAIj2il6b1+oRoi/oyM4Ti3e8nMD8ajippICmyquqbyCZKGq3i4W+A==", - "requires": { - "bitcoinjs-lib": "3.3.2" - } - }, - "bitcoincashjs-lib": { - "version": "github:Bitcoin-com/bitcoincashjs-lib#0a7fc7cf23551503f57689db4c930b8136db954c", - "requires": { - "bech32": "1.1.3", - "bigi": "1.4.2", - "bip66": "1.1.5", - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", - "bs58check": "2.1.2", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ecurve": "1.0.6", - "merkle-lib": "2.0.10", - "pushdata-bitcoin": "1.0.1", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "typeforce": "1.12.0", - "varuint-bitcoin": "1.1.0", - "wif": "2.0.6" - } - }, - "bitcoinjs-lib": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-3.3.2.tgz", - "integrity": "sha512-l5qqvbaK8wwtANPf6oEffykycg4383XgEYdia1rI7/JpGf1jfRWlOUCvx5TiTZS7kyIvY4j/UhIQ2urLsvGkzw==", - "requires": { - "bech32": "1.1.3", - "bigi": "1.4.2", - "bip66": "1.1.5", - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", - "bs58check": "2.1.2", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ecurve": "1.0.6", - "merkle-lib": "2.0.10", - "pushdata-bitcoin": "1.0.1", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "typeforce": "1.12.0", - "varuint-bitcoin": "1.1.0", - "wif": "2.0.6" - } - }, - "bitcoinjs-message": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", - "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", - "requires": { - "bs58check": "2.1.2", - "buffer-equals": "1.0.4", - "create-hash": "1.2.0", - "secp256k1": "3.5.0", - "varuint-bitcoin": "1.1.0" - } - }, - "blob": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", - "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=" - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" - }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "requires": { - "hoek": "2.16.3" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "optional": true, - "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.1", - "safe-buffer": "5.1.2" - } - }, - "browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", - "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", - "requires": { - "caniuse-lite": "1.0.30000877", - "electron-to-chromium": "1.3.58" - } - }, - "bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "requires": { - "base-x": "3.0.4" - } - }, - "bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "requires": { - "bs58": "4.0.1", - "create-hash": "1.2.0", - "safe-buffer": "5.1.2" - } - }, - "buffer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.0.tgz", - "integrity": "sha512-nUJyfChH7PMJy75eRDCCKtszSEFokUNXC1hNVSe+o+VdcgvDPLs20k3v8UXI8ruRYAJiYtyRea8mYyqPxoHWDw==", - "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.12" - } - }, - "buffer-equals": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/buffer-equals/-/buffer-equals-1.0.4.tgz", - "integrity": "sha1-A1O1T9B/2VZBcGca5vZrnPENJ/U=" - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" - }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "requires": { - "callsites": "0.2.0" - } - }, - "callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" - }, - "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=" - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, - "can-promise": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/can-promise/-/can-promise-0.0.1.tgz", - "integrity": "sha512-gzVrHyyrvgt0YpDm7pn04MQt8gjh0ZAhN4ZDyCRtGl6YnuuK6b4aiUTD7G52r9l4YNmxfTtEscb92vxtAlL6XQ==", - "requires": { - "window-or-global": "1.0.1" - } - }, - "caniuse-lite": { - "version": "1.0.30000877", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000877.tgz", - "integrity": "sha512-h04kV/lcuhItU1CZTJOxUEk/9R+1XeJqgc67E+XC8J9TjPM8kzVgOn27ZtRdDUo8O5F8U4QRCzDWJrVym3w3Cg==" - }, - "cashaddrjs": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.2.8.tgz", - "integrity": "sha512-oezXpKZRjavdRB1QjBamfHFDzYescGFn9dWMbijP4fgXrqMdBygOqaPNW4phf7zpRD4+oW7aaFfFklF72/szaA==", - "requires": { - "big-integer": "1.6.34" - } - }, - "chai": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", - "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", - "dev": true, - "requires": { - "assertion-error": "1.1.0", - "check-error": "1.0.2", - "deep-eql": "3.0.1", - "get-func-name": "2.0.0", - "pathval": "1.1.0", - "type-detect": "4.0.8" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "bip32-utils": { + "version": "github:Bitcoin-com/bip32-utils#154514b66924185d24a39574df8b4a4023b4f41a", "requires": { - "color-convert": "1.9.2" + "bitbox-cli": "1.5.7", + "keccak": "1.4.0", + "nyc": "12.0.2", + "standard": "11.0.1", + "tape": "4.9.1" } }, - "supports-color": { - "version": "5.4.0", + "nyc": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-12.0.2.tgz", + "integrity": "sha1-ikpO1pCWbBHsWH/4fuoMEsl0upk=", + "requires": { + "archy": "1.0.0", + "arrify": "1.0.1", + "caching-transform": "1.0.1", + "convert-source-map": "1.5.1", + "debug-log": "1.0.1", + "default-require-extensions": "1.0.0", + "find-cache-dir": "0.1.1", + "find-up": "2.1.0", + "foreground-child": "1.5.6", + "glob": "7.1.2", + "istanbul-lib-coverage": "1.2.0", + "istanbul-lib-hook": "1.1.0", + "istanbul-lib-instrument": "2.3.2", + "istanbul-lib-report": "1.1.3", + "istanbul-lib-source-maps": "1.2.5", + "istanbul-reports": "1.4.1", + "md5-hex": "1.3.0", + "merge-source-map": "1.1.0", + "micromatch": "3.1.10", + "mkdirp": "0.5.1", + "resolve-from": "2.0.0", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "spawn-wrap": "1.4.2", + "test-exclude": "4.2.1", + "yargs": "11.1.0", + "yargs-parser": "8.1.0" + }, + "dependencies": { + "align-text": { + "version": "0.1.4", + "bundled": true, + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } + }, + "amdefine": { + "version": "1.0.1", + "bundled": true + }, + "ansi-regex": { + "version": "3.0.0", + "bundled": true + }, + "append-transform": { + "version": "0.4.0", + "bundled": true, + "requires": { + "default-require-extensions": "1.0.0" + } + }, + "archy": { + "version": "1.0.0", + "bundled": true + }, + "arr-diff": { + "version": "4.0.0", + "bundled": true + }, + "arr-flatten": { + "version": "1.1.0", + "bundled": true + }, + "arr-union": { + "version": "3.1.0", + "bundled": true + }, + "array-unique": { + "version": "0.3.2", + "bundled": true + }, + "arrify": { + "version": "1.0.1", + "bundled": true + }, + "assign-symbols": { + "version": "1.0.0", + "bundled": true + }, + "async": { + "version": "1.5.2", + "bundled": true + }, + "atob": { + "version": "2.1.1", + "bundled": true + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "base": { + "version": "0.11.2", + "bundled": true, + "requires": { + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "bundled": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "builtin-modules": { + "version": "1.1.1", + "bundled": true + }, + "cache-base": { + "version": "1.0.1", + "bundled": 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" + } + }, + "caching-transform": { + "version": "1.0.1", + "bundled": true, + "requires": { + "md5-hex": "1.3.0", + "mkdirp": "0.5.1", + "write-file-atomic": "1.3.4" + } + }, + "camelcase": { + "version": "1.2.1", + "bundled": true, + "optional": true + }, + "center-align": { + "version": "0.1.3", + "bundled": true, + "optional": true, + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + } + }, + "class-utils": { + "version": "0.3.6", + "bundled": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "cliui": { + "version": "2.1.0", + "bundled": true, + "optional": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "bundled": true, + "optional": true + } + } + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "collection-visit": { + "version": "1.0.0", + "bundled": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "commondir": { + "version": "1.0.1", + "bundled": true + }, + "component-emitter": { + "version": "1.2.1", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "convert-source-map": { + "version": "1.5.1", + "bundled": true + }, + "copy-descriptor": { + "version": "0.1.1", + "bundled": true + }, + "cross-spawn": { + "version": "4.0.2", + "bundled": true, + "requires": { + "lru-cache": "4.1.3", + "which": "1.3.1" + } + }, + "debug": { + "version": "3.1.0", + "bundled": true, + "requires": { + "ms": "2.0.0" + } + }, + "debug-log": { + "version": "1.0.1", + "bundled": true + }, + "decamelize": { + "version": "1.2.0", + "bundled": true + }, + "decode-uri-component": { + "version": "0.2.0", + "bundled": true + }, + "default-require-extensions": { + "version": "1.0.0", + "bundled": true, + "requires": { + "strip-bom": "2.0.0" + } + }, + "define-property": { + "version": "2.0.2", + "bundled": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true + } + } + }, + "error-ex": { + "version": "1.3.1", + "bundled": true, + "requires": { + "is-arrayish": "0.2.1" + } + }, + "execa": { + "version": "0.7.0", + "bundled": 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" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "bundled": true, + "requires": { + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.1" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "bundled": 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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "bundled": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "bundled": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "bundled": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "bundled": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "bundled": 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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true + } + } + }, + "fill-range": { + "version": "4.0.0", + "bundled": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "find-cache-dir": { + "version": "0.1.1", + "bundled": true, + "requires": { + "commondir": "1.0.1", + "mkdirp": "0.5.1", + "pkg-dir": "1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "bundled": true, + "requires": { + "locate-path": "2.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "bundled": true + }, + "foreground-child": { + "version": "1.5.6", + "bundled": true, + "requires": { + "cross-spawn": "4.0.2", + "signal-exit": "3.0.2" + } + }, + "fragment-cache": { + "version": "0.2.1", + "bundled": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "get-caller-file": { + "version": "1.0.2", + "bundled": true + }, + "get-stream": { + "version": "3.0.0", + "bundled": true + }, + "get-value": { + "version": "2.0.6", + "bundled": true + }, + "glob": { + "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" + } + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true + }, + "handlebars": { + "version": "4.0.11", + "bundled": true, + "requires": { + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "bundled": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "has-value": { + "version": "1.0.0", + "bundled": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "bundled": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "bundled": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "hosted-git-info": { + "version": "2.6.0", + "bundled": true + }, + "imurmurhash": { + "version": "0.1.4", + "bundled": true + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "invert-kv": { + "version": "1.0.0", + "bundled": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "bundled": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-arrayish": { + "version": "0.2.1", + "bundled": true + }, + "is-buffer": { + "version": "1.1.6", + "bundled": true + }, + "is-builtin-module": { + "version": "1.0.0", + "bundled": true, + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "bundled": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "bundled": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "bundled": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true + }, + "is-number": { + "version": "3.0.0", + "bundled": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-odd": { + "version": "2.0.0", + "bundled": true, + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "bundled": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "bundled": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-stream": { + "version": "1.1.0", + "bundled": true + }, + "is-utf8": { + "version": "0.2.1", + "bundled": true + }, + "is-windows": { + "version": "1.0.2", + "bundled": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true + }, + "isexe": { + "version": "2.0.0", + "bundled": true + }, + "isobject": { + "version": "3.0.1", + "bundled": true + }, + "istanbul-lib-coverage": { + "version": "1.2.0", + "bundled": true + }, + "istanbul-lib-hook": { + "version": "1.1.0", + "bundled": true, + "requires": { + "append-transform": "0.4.0" + } + }, + "istanbul-lib-report": { + "version": "1.1.3", + "bundled": true, + "requires": { + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "bundled": true + }, + "supports-color": { + "version": "3.2.3", + "bundled": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.5", + "bundled": true, + "requires": { + "debug": "3.1.0", + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" + } + }, + "istanbul-reports": { + "version": "1.4.1", + "bundled": true, + "requires": { + "handlebars": "4.0.11" + } + }, + "kind-of": { + "version": "3.2.2", + "bundled": true, + "requires": { + "is-buffer": "1.1.6" + } + }, + "lazy-cache": { + "version": "1.0.4", + "bundled": true, + "optional": true + }, + "lcid": { + "version": "1.0.0", + "bundled": true, + "requires": { + "invert-kv": "1.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "bundled": true, + "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" + } + }, + "locate-path": { + "version": "2.0.0", + "bundled": true, + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "bundled": true + } + } + }, + "longest": { + "version": "1.0.1", + "bundled": true + }, + "lru-cache": { + "version": "4.1.3", + "bundled": true, + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + }, + "map-cache": { + "version": "0.2.2", + "bundled": true + }, + "map-visit": { + "version": "1.0.0", + "bundled": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "md5-hex": { + "version": "1.3.0", + "bundled": true, + "requires": { + "md5-o-matic": "0.1.1" + } + }, + "md5-o-matic": { + "version": "0.1.1", + "bundled": true + }, + "mem": { + "version": "1.1.0", + "bundled": true, + "requires": { + "mimic-fn": "1.2.0" + } + }, + "merge-source-map": { + "version": "1.1.0", + "bundled": true, + "requires": { + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "bundled": true + } + } + }, + "micromatch": { + "version": "3.1.10", + "bundled": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true + } + } + }, + "mimic-fn": { + "version": "1.2.0", + "bundled": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true + }, + "mixin-deep": { + "version": "1.3.1", + "bundled": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "bundled": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true + }, + "nanomatch": { + "version": "1.2.9", + "bundled": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-odd": "2.0.0", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true + } + } + }, + "normalize-package-data": { + "version": "2.4.0", + "bundled": true, + "requires": { + "hosted-git-info": "2.6.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" + } + }, + "npm-run-path": { + "version": "2.0.2", + "bundled": true, + "requires": { + "path-key": "2.0.1" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true + }, + "object-copy": { + "version": "0.1.0", + "bundled": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "bundled": true, + "requires": { + "isobject": "3.0.1" + } + }, + "object.pick": { + "version": "1.3.0", + "bundled": true, + "requires": { + "isobject": "3.0.1" + } + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optimist": { + "version": "0.6.1", + "bundled": true, + "requires": { + "minimist": "0.0.8", + "wordwrap": "0.0.3" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true + }, + "os-locale": { + "version": "2.1.0", + "bundled": true, + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } + }, + "p-finally": { + "version": "1.0.0", + "bundled": true + }, + "p-limit": { + "version": "1.2.0", + "bundled": true, + "requires": { + "p-try": "1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "bundled": true, + "requires": { + "p-limit": "1.2.0" + } + }, + "p-try": { + "version": "1.0.0", + "bundled": true + }, + "parse-json": { + "version": "2.2.0", + "bundled": true, + "requires": { + "error-ex": "1.3.1" + } + }, + "pascalcase": { + "version": "0.1.1", + "bundled": true + }, + "path-exists": { + "version": "2.1.0", + "bundled": true, + "requires": { + "pinkie-promise": "2.0.1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true + }, + "path-key": { + "version": "2.0.1", + "bundled": true + }, + "path-parse": { + "version": "1.0.5", + "bundled": true + }, + "path-type": { + "version": "1.1.0", + "bundled": true, + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "pify": { + "version": "2.3.0", + "bundled": true + }, + "pinkie": { + "version": "2.0.4", + "bundled": true + }, + "pinkie-promise": { + "version": "2.0.1", + "bundled": true, + "requires": { + "pinkie": "2.0.4" + } + }, + "pkg-dir": { + "version": "1.0.0", + "bundled": true, + "requires": { + "find-up": "1.1.2" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "bundled": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "bundled": true + }, + "pseudomap": { + "version": "1.0.2", + "bundled": true + }, + "read-pkg": { + "version": "1.1.0", + "bundled": true, + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "bundled": true, + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "bundled": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + } + } + }, + "regex-not": { + "version": "1.0.2", + "bundled": true, + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "bundled": true + }, + "repeat-string": { + "version": "1.6.1", + "bundled": true + }, + "require-directory": { + "version": "2.1.1", + "bundled": true + }, + "require-main-filename": { + "version": "1.0.1", + "bundled": true + }, + "resolve-from": { + "version": "2.0.0", + "bundled": true + }, + "resolve-url": { + "version": "0.2.1", + "bundled": true + }, + "ret": { + "version": "0.1.15", + "bundled": true + }, + "right-align": { + "version": "0.1.3", + "bundled": true, + "optional": true, + "requires": { + "align-text": "0.1.4" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-regex": { + "version": "1.1.0", + "bundled": true, + "requires": { + "ret": "0.1.15" + } + }, + "semver": { + "version": "5.5.0", + "bundled": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true + }, + "set-value": { + "version": "2.0.0", + "bundled": true, + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "shebang-command": { + "version": "1.2.0", + "bundled": true, + "requires": { + "shebang-regex": "1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "bundled": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true + }, + "slide": { + "version": "1.1.6", + "bundled": true + }, + "snapdragon": { + "version": "0.8.2", + "bundled": 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.2", + "use": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "bundled": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "bundled": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "bundled": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "bundled": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "source-map": { + "version": "0.5.7", + "bundled": true + }, + "source-map-resolve": { + "version": "0.5.2", + "bundled": true, + "requires": { + "atob": "2.1.1", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "bundled": true + }, + "spawn-wrap": { + "version": "1.4.2", + "bundled": true, + "requires": { + "foreground-child": "1.5.6", + "mkdirp": "0.5.1", + "os-homedir": "1.0.2", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "which": "1.3.1" + } + }, + "spdx-correct": { + "version": "3.0.0", + "bundled": true, + "requires": { + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "bundled": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "bundled": true, + "requires": { + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.0", + "bundled": true + }, + "split-string": { + "version": "3.1.0", + "bundled": true, + "requires": { + "extend-shallow": "3.0.2" + } + }, + "static-extend": { + "version": "0.1.2", + "bundled": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "string-width": { + "version": "2.1.1", + "bundled": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "bundled": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "bundled": true, + "requires": { + "is-utf8": "0.2.1" + } + }, + "strip-eof": { + "version": "1.0.0", + "bundled": true + }, + "test-exclude": { + "version": "4.2.1", + "bundled": true, + "requires": { + "arrify": "1.0.1", + "micromatch": "3.1.10", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" + } + }, + "to-object-path": { + "version": "0.3.0", + "bundled": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "to-regex": { + "version": "3.0.2", + "bundled": true, + "requires": { + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "bundled": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, + "uglify-js": { + "version": "2.8.29", + "bundled": true, + "optional": true, + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "yargs": { + "version": "3.10.0", + "bundled": true, + "optional": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "union-value": { + "version": "1.0.0", + "bundled": true, + "requires": { + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "bundled": true, + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" + } + } + } + }, + "unset-value": { + "version": "1.0.0", + "bundled": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "bundled": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "bundled": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "bundled": true + } + } + }, + "urix": { + "version": "0.1.0", + "bundled": true + }, + "use": { + "version": "3.1.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true + } + } + }, + "validate-npm-package-license": { + "version": "3.0.3", + "bundled": true, + "requires": { + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" + } + }, + "which": { + "version": "1.3.1", + "bundled": true, + "requires": { + "isexe": "2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "bundled": true + }, + "window-size": { + "version": "0.1.0", + "bundled": true, + "optional": true + }, + "wordwrap": { + "version": "0.0.3", + "bundled": true + }, + "wrap-ansi": { + "version": "2.1.0", + "bundled": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "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" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "2.1.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + }, + "write-file-atomic": { + "version": "1.3.4", + "bundled": true, + "requires": { + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" + } + }, + "y18n": { + "version": "3.2.1", + "bundled": true + }, + "yallist": { + "version": "2.1.2", + "bundled": true + }, + "yargs": { + "version": "11.1.0", + "bundled": true, + "requires": { + "cliui": "4.1.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": "9.0.2" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "bundled": true + }, + "cliui": { + "version": "4.1.0", + "bundled": true, + "requires": { + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" + } + }, + "yargs-parser": { + "version": "9.0.2", + "bundled": true, + "requires": { + "camelcase": "4.1.0" + } + } + } + }, + "yargs-parser": { + "version": "8.1.0", + "bundled": true, + "requires": { + "camelcase": "4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "bundled": true + } + } + } + } + } + } + }, + "bitcoin-ops": { + "version": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" + }, + "bitcoin-txdecoder": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/bitcoin-txdecoder/-/bitcoin-txdecoder-0.0.3.tgz", + "integrity": "sha512-pH/eF5hQ65y54U23mzuF42wEj9YWj4WKHAIj2il6b1+oRoi/oyM4Ti3e8nMD8ajippICmyquqbyCZKGq3i4W+A==", + "requires": { + "bitcoinjs-lib": "3.3.2" + } + }, + "bitcoincashjs-lib": { + "version": "github:Bitcoin-com/bitcoincashjs-lib#0a7fc7cf23551503f57689db4c930b8136db954c", + "requires": { + "bech32": "1.1.3", + "bigi": "1.4.2", + "bip66": "1.1.5", + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", + "bs58check": "2.1.2", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ecurve": "1.0.6", + "merkle-lib": "2.0.10", + "pushdata-bitcoin": "1.0.1", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2", + "typeforce": "1.12.0", + "varuint-bitcoin": "1.1.0", + "wif": "2.0.6" + } + }, + "bitcoinjs-lib": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-3.3.2.tgz", + "integrity": "sha512-l5qqvbaK8wwtANPf6oEffykycg4383XgEYdia1rI7/JpGf1jfRWlOUCvx5TiTZS7kyIvY4j/UhIQ2urLsvGkzw==", + "requires": { + "bech32": "1.1.3", + "bigi": "1.4.2", + "bip66": "1.1.5", + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", + "bs58check": "2.1.2", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ecurve": "1.0.6", + "merkle-lib": "2.0.10", + "pushdata-bitcoin": "1.0.1", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2", + "typeforce": "1.12.0", + "varuint-bitcoin": "1.1.0", + "wif": "2.0.6" + } + }, + "bitcoinjs-message": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", + "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", + "requires": { + "bs58check": "2.1.2", + "buffer-equals": "1.0.4", + "create-hash": "1.2.0", + "secp256k1": "3.5.0", + "varuint-bitcoin": "1.1.0" + } + }, + "blob": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", + "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=" + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "optional": true, + "requires": { + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "1.0.3", + "cipher-base": "1.0.4", + "create-hash": "1.2.0", + "evp_bytestokey": "1.0.3", + "inherits": "2.0.1", + "safe-buffer": "5.1.2" + } + }, + "browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "requires": { + "caniuse-lite": "1.0.30000877", + "electron-to-chromium": "1.3.58" + } + }, + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "requires": { + "base-x": "3.0.4" + } + }, + "bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "requires": { + "bs58": "4.0.1", + "create-hash": "1.2.0", + "safe-buffer": "5.1.2" + } + }, + "buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.0.tgz", + "integrity": "sha512-nUJyfChH7PMJy75eRDCCKtszSEFokUNXC1hNVSe+o+VdcgvDPLs20k3v8UXI8ruRYAJiYtyRea8mYyqPxoHWDw==", + "requires": { + "base64-js": "1.3.0", + "ieee754": "1.1.12" + } + }, + "buffer-equals": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/buffer-equals/-/buffer-equals-1.0.4.tgz", + "integrity": "sha1-A1O1T9B/2VZBcGca5vZrnPENJ/U=" + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "requires": { + "callsites": "0.2.0" + } + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=" + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + }, + "can-promise": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/can-promise/-/can-promise-0.0.1.tgz", + "integrity": "sha512-gzVrHyyrvgt0YpDm7pn04MQt8gjh0ZAhN4ZDyCRtGl6YnuuK6b4aiUTD7G52r9l4YNmxfTtEscb92vxtAlL6XQ==", + "requires": { + "window-or-global": "1.0.1" + } + }, + "caniuse-lite": { + "version": "1.0.30000877", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000877.tgz", + "integrity": "sha512-h04kV/lcuhItU1CZTJOxUEk/9R+1XeJqgc67E+XC8J9TjPM8kzVgOn27ZtRdDUo8O5F8U4QRCzDWJrVym3w3Cg==" + }, + "cashaddrjs": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.2.8.tgz", + "integrity": "sha512-oezXpKZRjavdRB1QjBamfHFDzYescGFn9dWMbijP4fgXrqMdBygOqaPNW4phf7zpRD4+oW7aaFfFklF72/szaA==", + "requires": { + "big-integer": "1.6.34" + } + }, + "chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", + "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", + "dev": true, + "requires": { + "assertion-error": "1.1.0", + "check-error": "1.0.2", + "deep-eql": "3.0.1", + "get-func-name": "2.0.0", + "pathval": "1.1.0", + "type-detect": "4.0.8" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.4.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "1.9.2" + } + }, + "supports-color": { + "version": "5.4.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "requires": { @@ -3397,6 +5187,14 @@ "wrap-ansi": "2.1.0" }, "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } + }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -3506,22 +5304,6 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, - "corsproxy": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/corsproxy/-/corsproxy-1.5.0.tgz", - "integrity": "sha1-KUge0hXuWxvWkkx5Fc+I/LE8EGE=", - "requires": { - "ejs": "2.6.1", - "good": "6.6.3", - "good-console": "5.3.2", - "h2o2": "4.0.2", - "hapi": "9.5.1", - "hapi-cors-headers": "1.0.3", - "http-proxy": "1.11.3", - "inert": "3.2.1", - "vision": "3.0.0" - } - }, "cp-file": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-5.0.0.tgz", @@ -3532,6 +5314,13 @@ "nested-error-stacks": "2.1.0", "pify": "3.0.0", "safe-buffer": "5.1.2" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } } }, "create-hash": { @@ -3567,17 +5356,6 @@ "lru-cache": "4.1.3", "shebang-command": "1.2.0", "which": "1.3.1" - }, - "dependencies": { - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } - } } }, "debug": { @@ -3654,14 +5432,7 @@ "object-assign": "4.1.1", "pify": "2.3.0", "pinkie-promise": "2.0.1", - "rimraf": "2.6.2" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } + "rimraf": "2.6.2" } }, "detect-indent": { @@ -3709,11 +5480,6 @@ "safe-buffer": "5.1.2" } }, - "ejs": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz", - "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==" - }, "electron-to-chromium": { "version": "1.3.58", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.58.tgz", @@ -4045,11 +5811,6 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" }, - "eventemitter3": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", - "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=" - }, "evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", @@ -4172,11 +5933,12 @@ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" }, "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "requires": { - "locate-path": "2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } }, "flat-cache": { @@ -4782,53 +6544,6 @@ "object-assign": "4.1.1", "pify": "2.3.0", "pinkie-promise": "2.0.1" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } - } - }, - "good": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/good/-/good-6.6.3.tgz", - "integrity": "sha1-B9zIEfwSuDmKnDMezdM37OWogDU=", - "requires": { - "hoek": "2.16.3", - "items": "1.1.1", - "joi": "6.10.1", - "traverse": "0.6.6", - "wreck": "6.3.0" - } - }, - "good-console": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/good-console/-/good-console-5.3.2.tgz", - "integrity": "sha1-f8c9RDfiWsToODJB5GaWy6N0ia0=", - "requires": { - "good-squeeze": "2.1.0", - "hoek": "2.16.3", - "json-stringify-safe": "5.0.1", - "moment": "2.11.2", - "through2": "0.6.5" - }, - "dependencies": { - "moment": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.11.2.tgz", - "integrity": "sha1-h5aOX5WsA4wuQqyVnHWBnNP1KQE=" - } - } - }, - "good-squeeze": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/good-squeeze/-/good-squeeze-2.1.0.tgz", - "integrity": "sha1-mc7pHSbVkWmKiZwo6TELzzxq4oo=", - "requires": { - "hoek": "2.16.3", - "json-stringify-safe": "5.0.1" } }, "graceful-fs": { @@ -4841,302 +6556,6 @@ "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==" }, - "h2o2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/h2o2/-/h2o2-4.0.2.tgz", - "integrity": "sha1-h8uWDcD1tJWWT6koJT5s8TuiJIY=", - "requires": { - "boom": "2.10.1", - "hoek": "2.16.3", - "joi": "6.10.1", - "wreck": "6.3.0" - } - }, - "hapi": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/hapi/-/hapi-9.5.1.tgz", - "integrity": "sha1-jYyhPnwiCweEZemgp2QPJqWvuFU=", - "requires": { - "accept": "1.1.0", - "ammo": "1.0.1", - "boom": "2.9.0", - "call": "2.0.2", - "catbox": "6.0.0", - "catbox-memory": "1.1.2", - "cryptiles": "2.0.5", - "heavy": "3.0.1", - "hoek": "2.16.3", - "iron": "2.1.3", - "items": "1.1.0", - "joi": "6.8.1", - "kilt": "1.1.1", - "mimos": "2.0.2", - "peekaboo": "1.0.0", - "qs": "4.0.0", - "shot": "1.7.0", - "statehood": "2.1.1", - "subtext": "2.0.0", - "topo": "1.1.0" - }, - "dependencies": { - "accept": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/accept/-/accept-1.1.0.tgz", - "integrity": "sha1-x7VWfJmt5Kx8k38qm8HFZhYKMLU=", - "requires": { - "boom": "2.9.0", - "hoek": "2.16.3" - } - }, - "ammo": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ammo/-/ammo-1.0.1.tgz", - "integrity": "sha1-j4rdFM1Jve3jurOj4OvK8h0D3os=", - "requires": { - "boom": "2.9.0", - "hoek": "2.16.3" - } - }, - "boom": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.9.0.tgz", - "integrity": "sha1-pUt/0v7kd9NRv543FoDL6mfxJxU=", - "requires": { - "hoek": "2.16.3" - } - }, - "call": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/call/-/call-2.0.2.tgz", - "integrity": "sha1-nJgxq9B2lIb97oOkEUm4KbMtBsA=", - "requires": { - "boom": "2.9.0", - "hoek": "2.16.3" - } - }, - "catbox": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/catbox/-/catbox-6.0.0.tgz", - "integrity": "sha1-6i8pT6Bemvx+IhDTI/XeU6OAQ+c=", - "requires": { - "boom": "2.9.0", - "hoek": "2.16.3", - "joi": "6.8.1" - } - }, - "catbox-memory": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/catbox-memory/-/catbox-memory-1.1.2.tgz", - "integrity": "sha1-M8kYOjKzGUXuikhNDjw8u4Lq7Bo=", - "requires": { - "hoek": "2.16.3" - } - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "requires": { - "boom": "2.9.0" - } - }, - "heavy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/heavy/-/heavy-3.0.1.tgz", - "integrity": "sha1-8oZ+bjUVv4OrGoux5z5dKOhas80=", - "requires": { - "boom": "2.9.0", - "hoek": "2.16.3", - "joi": "6.8.1" - } - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" - }, - "iron": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/iron/-/iron-2.1.3.tgz", - "integrity": "sha1-cbjzV9gGquA6kKdFuaqv/sfi3eQ=", - "requires": { - "boom": "2.9.0", - "cryptiles": "2.0.5", - "hoek": "2.16.3" - } - }, - "items": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/items/-/items-1.1.0.tgz", - "integrity": "sha1-rZ1VhAsimGDLPRYLMidMLUvZ4mI=" - }, - "joi": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/joi/-/joi-6.8.1.tgz", - "integrity": "sha1-g94tYCj8DNXRYi8/V0fKCCtHjv8=", - "requires": { - "hoek": "2.16.3", - "isemail": "1.2.0", - "moment": "2.10.6", - "topo": "1.1.0" - }, - "dependencies": { - "isemail": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/isemail/-/isemail-1.2.0.tgz", - "integrity": "sha1-vgPfjMPineTSxd9lASY/H6RZXpo=" - }, - "moment": { - "version": "2.10.6", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.10.6.tgz", - "integrity": "sha1-bLIZZ8ecunsMpeZmRPFzZis++nc=" - } - } - }, - "kilt": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/kilt/-/kilt-1.1.1.tgz", - "integrity": "sha1-d7SmFjyn+lshN6iMFzNCFuwj1ds=", - "requires": { - "hoek": "2.16.3" - } - }, - "mimos": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/mimos/-/mimos-2.0.2.tgz", - "integrity": "sha1-wyQXF+dblZkr54esfdbbGptTmx4=", - "requires": { - "hoek": "2.16.3", - "mime-db": "1.19.0" - }, - "dependencies": { - "mime-db": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz", - "integrity": "sha1-SWoYGYp86CRFNOJbsQK3T7Qg/VY=" - } - } - }, - "peekaboo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/peekaboo/-/peekaboo-1.0.0.tgz", - "integrity": "sha1-wNspJq1lTSygH3ymUKtFkadk/EI=" - }, - "qs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz", - "integrity": "sha1-wx2bdOwn33XlQ6hseHKO2NRiNgc=" - }, - "shot": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/shot/-/shot-1.7.0.tgz", - "integrity": "sha1-8jKdfvM6/PA9RM5Bq66BSK4XBTI=", - "requires": { - "hoek": "2.16.3" - } - }, - "statehood": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/statehood/-/statehood-2.1.1.tgz", - "integrity": "sha1-AfFwtmxeklqvZ5qdMiulkYb8AAk=", - "requires": { - "boom": "2.9.0", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "iron": "2.1.3", - "items": "1.1.0", - "joi": "6.8.1" - } - }, - "subtext": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/subtext/-/subtext-2.0.0.tgz", - "integrity": "sha1-I5lQ6SCBQ/FUirJeHJV5vbaNiU4=", - "requires": { - "boom": "2.9.0", - "content": "1.0.2", - "hoek": "2.16.3", - "pez": "1.0.0", - "qs": "4.0.0", - "wreck": "6.2.0" - }, - "dependencies": { - "content": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/content/-/content-1.0.2.tgz", - "integrity": "sha1-y37fMq/vF8SKz9vSH/mMIzFa6CQ=", - "requires": { - "boom": "2.9.0", - "hoek": "2.16.3" - } - }, - "pez": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pez/-/pez-1.0.0.tgz", - "integrity": "sha1-hEMYpc5wku7d/6KV4YB5rHefoBg=", - "requires": { - "b64": "2.0.1", - "boom": "2.9.0", - "content": "1.0.2", - "hoek": "2.16.3", - "nigel": "1.0.1" - }, - "dependencies": { - "b64": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/b64/-/b64-2.0.1.tgz", - "integrity": "sha1-0IwQcZcZ/x/htTKuSSaUCc4UnOk=", - "requires": { - "hoek": "2.16.3" - } - }, - "nigel": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/nigel/-/nigel-1.0.1.tgz", - "integrity": "sha1-RjmJr4gSePuqHTzJOCPb0XtDYKE=", - "requires": { - "hoek": "2.16.3", - "vise": "1.0.0" - }, - "dependencies": { - "vise": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vise/-/vise-1.0.0.tgz", - "integrity": "sha1-KDRb5N5aNB4V/SgW/Z6j5zA+jfM=", - "requires": { - "hoek": "2.16.3" - } - } - } - } - } - }, - "wreck": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wreck/-/wreck-6.2.0.tgz", - "integrity": "sha1-8Jkx7UcbZL6Yjj57u4gjTa4i0iI=", - "requires": { - "boom": "2.9.0", - "hoek": "2.16.3" - } - } - } - }, - "topo": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/topo/-/topo-1.1.0.tgz", - "integrity": "sha1-6ddRYV0buH3IZdsYL6HKCl71NtU=", - "requires": { - "hoek": "2.16.3" - } - } - } - }, - "hapi-cors-headers": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/hapi-cors-headers/-/hapi-cors-headers-1.0.3.tgz", - "integrity": "sha512-U/y+kpVLUJ0y86fEk8yleou9C1T5wFopcWQjuxKdMXzCcymTjfSqGz59waqvngUs1SbeXav/y8Ga9C0G0L1MGg==" - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -5218,11 +6637,6 @@ "minimalistic-crypto-utils": "1.0.1" } }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" - }, "home-or-tmp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", @@ -5237,15 +6651,6 @@ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" }, - "http-proxy": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.11.3.tgz", - "integrity": "sha1-GRXciIdR4qa/PCq/yxgI+obHI1M=", - "requires": { - "eventemitter3": "1.2.0", - "requires-port": "0.0.1" - } - }, "iconv-lite": { "version": "0.4.23", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", @@ -5274,19 +6679,6 @@ "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" }, - "inert": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/inert/-/inert-3.2.1.tgz", - "integrity": "sha1-xJZcXhh87z2yxChy5S51cAh2Qn0=", - "requires": { - "ammo": "1.0.1", - "boom": "2.10.1", - "hoek": "2.16.3", - "items": "1.1.1", - "joi": "6.10.1", - "lru-cache": "2.7.3" - } - }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -5427,12 +6819,9 @@ } }, "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "1.0.1" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "is-glob": { "version": "2.0.1", @@ -5517,11 +6906,6 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "isemail": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/isemail/-/isemail-1.2.0.tgz", - "integrity": "sha1-vgPfjMPineTSxd9lASY/H6RZXpo=" - }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -5555,22 +6939,6 @@ "semver": "5.5.0" } }, - "items": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/items/-/items-1.1.1.tgz", - "integrity": "sha1-Q1td0hvKKLPP0lu1xrJ4txUBD9k=" - }, - "joi": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/joi/-/joi-6.10.1.tgz", - "integrity": "sha1-TVDDGAeRIgAP5fFq8f+OGRe3fgY=", - "requires": { - "hoek": "2.16.3", - "isemail": "1.2.0", - "moment": "2.22.2", - "topo": "1.1.0" - } - }, "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", @@ -5605,11 +6973,6 @@ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, "json5": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", @@ -5681,13 +7044,6 @@ "parse-json": "2.2.0", "pify": "2.3.0", "strip-bom": "3.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } } }, "locate-path": { @@ -5697,6 +7053,13 @@ "requires": { "p-locate": "2.0.0", "path-exists": "3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } } }, "lodash": { @@ -5730,9 +7093,13 @@ } }, "lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } }, "make-dir": { "version": "1.3.0", @@ -5740,6 +7107,13 @@ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "requires": { "pify": "3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } } }, "math-random": { @@ -5873,11 +7247,6 @@ } } }, - "moment": { - "version": "2.22.2", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz", - "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=" - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -8756,9 +10125,12 @@ } }, "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "2.0.1" + } }, "path-is-absolute": { "version": "1.0.1", @@ -8803,13 +10175,6 @@ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { "pify": "2.3.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } } }, "pathval": { @@ -8831,9 +10196,9 @@ } }, "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, "pinkie": { "version": "2.0.4", @@ -8857,6 +10222,14 @@ "load-json-file": "4.0.0" }, "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "2.0.0" + } + }, "load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", @@ -8876,6 +10249,11 @@ "error-ex": "1.3.2", "json-parse-better-errors": "1.0.2" } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" } } }, @@ -8895,25 +10273,6 @@ "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "requires": { "find-up": "1.1.2" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "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": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "2.0.1" - } - } } }, "pluralize": { @@ -9048,6 +10407,16 @@ "requires": { "find-up": "2.1.0", "read-pkg": "2.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "2.0.0" + } + } } }, "readable-stream": { @@ -9190,11 +10559,6 @@ "resolve-from": "1.0.1" } }, - "requires-port": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-0.0.1.tgz", - "integrity": "sha1-S0QUQR2d98hVmV3YmajHiilRwW0=" - }, "resolve": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", @@ -9392,13 +10756,6 @@ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "requires": { "is-fullwidth-code-point": "2.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - } } }, "socket.io": { @@ -9551,11 +10908,6 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", @@ -9681,38 +11033,6 @@ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "requires": { - "readable-stream": "1.0.34", - "xtend": "4.0.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.1", - "isarray": "0.0.1", - "string_decoder": "0.10.31" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } - } - }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -9731,14 +11051,6 @@ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" }, - "topo": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/topo/-/topo-1.1.0.tgz", - "integrity": "sha1-6ddRYV0buH3IZdsYL6HKCl71NtU=", - "requires": { - "hoek": "2.16.3" - } - }, "touch": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", @@ -9747,11 +11059,6 @@ "nopt": "1.0.10" } }, - "traverse": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", - "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=" - }, "trim-right": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", @@ -9839,17 +11146,6 @@ "safe-buffer": "5.1.2" } }, - "vision": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vision/-/vision-3.0.0.tgz", - "integrity": "sha1-GEWEb2wjpvJTXa8woeHnHQukjGI=", - "requires": { - "boom": "2.10.1", - "hoek": "2.16.3", - "items": "1.1.1", - "joi": "6.10.1" - } - }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -9890,6 +11186,14 @@ "strip-ansi": "3.0.1" }, "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } + }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -9907,15 +11211,6 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, - "wreck": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/wreck/-/wreck-6.3.0.tgz", - "integrity": "sha1-oTaXafB7u2LWo3gzanhx/Hc8dAs=", - "requires": { - "boom": "2.10.1", - "hoek": "2.16.3" - } - }, "write": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", diff --git a/package.json b/package.json index d8e69958..b38d2869 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.5.7", + "version": "1.5.8", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", @@ -34,7 +34,7 @@ "bchaddrjs": "^0.2.1", "bigi": "^1.4.2", "bip21": "Bitcoin-com/bip21", - "bip32-utils": "Bitcoin-com/bip32-utils#0.12.1", + "bip32-utils": "Bitcoin-com/bip32-utils#0.12.2", "bip38": "^2.0.2", "bip39": "^2.5.0", "bip66": "^1.1.5", From c73a91e88bfc065aa024011b2f28b8754212478d Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Mon, 20 Aug 2018 11:09:02 -0700 Subject: [PATCH 062/480] Update Script.classifyOutput test --- README.md | 1 - index.js | 2 +- package-lock.json | 2030 ++------------------------------ package.json | 4 +- test/fixtures/BitcoinCash.json | 20 - test/fixtures/Script.json | 4 + 6 files changed, 128 insertions(+), 1933 deletions(-) diff --git a/README.md b/README.md index bffd3ba6..8ada0842 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,6 @@ Open Source / Creative Commons Listings * [chalk](https://www.npmjs.com/package/chalk) - MIT * [clear](https://www.npmjs.com/package/clear) - none * [commander](https://www.npmjs.com/package/commander) - MIT -* [corsproxy](https://www.npmjs.com/package/corsproxy) - MIT * [cp-file](https://www.npmjs.com/package/cp-file) - MIT * [ecurve](https://www.npmjs.com/package/ecurve) - MIT * [figlet](https://www.npmjs.com/package/figlet) - MIT diff --git a/index.js b/index.js index 4473796a..20837994 100755 --- a/index.js +++ b/index.js @@ -18,7 +18,7 @@ let clone = require('git-clone'); let cmd = require('node-cmd'); program - .version('1.5.8'); + .version('1.5.9'); program .command('new ') diff --git a/package-lock.json b/package-lock.json index 190d021f..314f61ae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -932,7 +932,7 @@ "babel-plugin-transform-regenerator": "6.26.0", "browserslist": "3.2.8", "invariant": "2.2.4", - "semver": "5.5.0" + "semver": "5.5.1" } }, "babel-preset-es2015": { @@ -1154,7 +1154,7 @@ "bip32-utils": { "version": "github:Bitcoin-com/bip32-utils#318df796443311f7e12217542f7f45d3b7791f10", "requires": { - "bitbox-cli": "1.5.7", + "bitbox-cli": "1.5.8", "keccak": "1.4.0", "nyc": "12.0.2", "standard": "11.0.1", @@ -2999,9 +2999,9 @@ "integrity": "sha512-O1htyufFTYy3EO0JkHg2CLykdXEtV2ssqw47Gq9A0WByp662xpJnMEB9m43LZjsSDjIAOozWRExlFQk2hlV1XQ==" }, "bitbox-cli": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/bitbox-cli/-/bitbox-cli-1.5.7.tgz", - "integrity": "sha512-y1qnEcB5ppFX8dtkW/S8rzFGYilDwJ1ajSLedBCk3HOiqgSXelch/b3jpPAt38USTFoD4SWbhwpF8sxjGiZTrQ==", + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/bitbox-cli/-/bitbox-cli-1.5.8.tgz", + "integrity": "sha512-60dUEoup/9lslfW2QDVHTThBw8tZsPrmBTkAqR37RveZSlxEYDYrQw9oHBimkXzEaVakXdjLEBgrm4t/TAmYug==", "requires": { "assert": "1.4.1", "axios": "0.17.1", @@ -3014,14 +3014,14 @@ "bchaddrjs": "0.2.2", "bigi": "1.4.2", "bip21": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "bip32-utils": "github:Bitcoin-com/bip32-utils#154514b66924185d24a39574df8b4a4023b4f41a", + "bip32-utils": "github:Bitcoin-com/bip32-utils#318df796443311f7e12217542f7f45d3b7791f10", "bip38": "2.0.2", "bip39": "2.5.0", "bip66": "1.1.5", "bip68": "1.0.4", "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", "bitcoin-txdecoder": "0.0.3", - "bitcoincashjs-lib": "github:Bitcoin-com/bitcoincashjs-lib#0a7fc7cf23551503f57689db4c930b8136db954c", + "bitcoincashjs-lib": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", "bitcoinjs-message": "2.0.0", "bs58": "4.0.1", "buffer": "5.2.0", @@ -3049,1810 +3049,24 @@ "wif": "2.0.6" }, "dependencies": { - "bip32-utils": { - "version": "github:Bitcoin-com/bip32-utils#154514b66924185d24a39574df8b4a4023b4f41a", - "requires": { - "bitbox-cli": "1.5.7", - "keccak": "1.4.0", - "nyc": "12.0.2", - "standard": "11.0.1", - "tape": "4.9.1" - } - }, - "nyc": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-12.0.2.tgz", - "integrity": "sha1-ikpO1pCWbBHsWH/4fuoMEsl0upk=", - "requires": { - "archy": "1.0.0", - "arrify": "1.0.1", - "caching-transform": "1.0.1", - "convert-source-map": "1.5.1", - "debug-log": "1.0.1", - "default-require-extensions": "1.0.0", - "find-cache-dir": "0.1.1", - "find-up": "2.1.0", - "foreground-child": "1.5.6", - "glob": "7.1.2", - "istanbul-lib-coverage": "1.2.0", - "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "2.3.2", - "istanbul-lib-report": "1.1.3", - "istanbul-lib-source-maps": "1.2.5", - "istanbul-reports": "1.4.1", - "md5-hex": "1.3.0", - "merge-source-map": "1.1.0", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "resolve-from": "2.0.0", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "spawn-wrap": "1.4.2", - "test-exclude": "4.2.1", - "yargs": "11.1.0", - "yargs-parser": "8.1.0" - }, - "dependencies": { - "align-text": { - "version": "0.1.4", - "bundled": true, - "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" - } - }, - "amdefine": { - "version": "1.0.1", - "bundled": true - }, - "ansi-regex": { - "version": "3.0.0", - "bundled": true - }, - "append-transform": { - "version": "0.4.0", - "bundled": true, - "requires": { - "default-require-extensions": "1.0.0" - } - }, - "archy": { - "version": "1.0.0", - "bundled": true - }, - "arr-diff": { - "version": "4.0.0", - "bundled": true - }, - "arr-flatten": { - "version": "1.1.0", - "bundled": true - }, - "arr-union": { - "version": "3.1.0", - "bundled": true - }, - "array-unique": { - "version": "0.3.2", - "bundled": true - }, - "arrify": { - "version": "1.0.1", - "bundled": true - }, - "assign-symbols": { - "version": "1.0.0", - "bundled": true - }, - "async": { - "version": "1.5.2", - "bundled": true - }, - "atob": { - "version": "2.1.1", - "bundled": true - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true - }, - "base": { - "version": "0.11.2", - "bundled": true, - "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "bundled": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "builtin-modules": { - "version": "1.1.1", - "bundled": true - }, - "cache-base": { - "version": "1.0.1", - "bundled": 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" - } - }, - "caching-transform": { - "version": "1.0.1", - "bundled": true, - "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" - } - }, - "camelcase": { - "version": "1.2.1", - "bundled": true, - "optional": true - }, - "center-align": { - "version": "0.1.3", - "bundled": true, - "optional": true, - "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" - } - }, - "class-utils": { - "version": "0.3.6", - "bundled": true, - "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "cliui": { - "version": "2.1.0", - "bundled": true, - "optional": true, - "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "bundled": true, - "optional": true - } - } - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true - }, - "collection-visit": { - "version": "1.0.0", - "bundled": true, - "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" - } - }, - "commondir": { - "version": "1.0.1", - "bundled": true - }, - "component-emitter": { - "version": "1.2.1", - "bundled": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true - }, - "convert-source-map": { - "version": "1.5.1", - "bundled": true - }, - "copy-descriptor": { - "version": "0.1.1", - "bundled": true - }, - "cross-spawn": { - "version": "4.0.2", - "bundled": true, - "requires": { - "lru-cache": "4.1.3", - "which": "1.3.1" - } - }, - "debug": { - "version": "3.1.0", - "bundled": true, - "requires": { - "ms": "2.0.0" - } - }, - "debug-log": { - "version": "1.0.1", - "bundled": true - }, - "decamelize": { - "version": "1.2.0", - "bundled": true - }, - "decode-uri-component": { - "version": "0.2.0", - "bundled": true - }, - "default-require-extensions": { - "version": "1.0.0", - "bundled": true, - "requires": { - "strip-bom": "2.0.0" - } - }, - "define-property": { - "version": "2.0.2", - "bundled": true, - "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "error-ex": { - "version": "1.3.1", - "bundled": true, - "requires": { - "is-arrayish": "0.2.1" - } - }, - "execa": { - "version": "0.7.0", - "bundled": 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" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "bundled": true, - "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "bundled": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "bundled": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "extend-shallow": { - "version": "3.0.2", - "bundled": true, - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "bundled": true, - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "bundled": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "fill-range": { - "version": "4.0.0", - "bundled": true, - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "find-cache-dir": { - "version": "0.1.1", - "bundled": true, - "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "bundled": true, - "requires": { - "locate-path": "2.0.0" - } - }, - "for-in": { - "version": "1.0.2", - "bundled": true - }, - "foreground-child": { - "version": "1.5.6", - "bundled": true, - "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" - } - }, - "fragment-cache": { - "version": "0.2.1", - "bundled": true, - "requires": { - "map-cache": "0.2.2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true - }, - "get-caller-file": { - "version": "1.0.2", - "bundled": true - }, - "get-stream": { - "version": "3.0.0", - "bundled": true - }, - "get-value": { - "version": "2.0.6", - "bundled": true - }, - "glob": { - "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" - } - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true - }, - "handlebars": { - "version": "4.0.11", - "bundled": true, - "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "bundled": true, - "requires": { - "amdefine": "1.0.1" - } - } - } - }, - "has-value": { - "version": "1.0.0", - "bundled": true, - "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" - } - }, - "has-values": { - "version": "1.0.0", - "bundled": true, - "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "bundled": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "hosted-git-info": { - "version": "2.6.0", - "bundled": true - }, - "imurmurhash": { - "version": "0.1.4", - "bundled": true - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true - }, - "invert-kv": { - "version": "1.0.0", - "bundled": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-arrayish": { - "version": "0.2.1", - "bundled": true - }, - "is-buffer": { - "version": "1.1.6", - "bundled": true - }, - "is-builtin-module": { - "version": "1.0.0", - "bundled": true, - "requires": { - "builtin-modules": "1.1.1" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "bundled": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "bundled": true - } - } - }, - "is-extendable": { - "version": "0.1.1", - "bundled": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "bundled": true - }, - "is-number": { - "version": "3.0.0", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-odd": { - "version": "2.0.0", - "bundled": true, - "requires": { - "is-number": "4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "bundled": true - } - } - }, - "is-plain-object": { - "version": "2.0.4", - "bundled": true, - "requires": { - "isobject": "3.0.1" - } - }, - "is-stream": { - "version": "1.1.0", - "bundled": true - }, - "is-utf8": { - "version": "0.2.1", - "bundled": true - }, - "is-windows": { - "version": "1.0.2", - "bundled": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true - }, - "isexe": { - "version": "2.0.0", - "bundled": true - }, - "isobject": { - "version": "3.0.1", - "bundled": true - }, - "istanbul-lib-coverage": { - "version": "1.2.0", - "bundled": true - }, - "istanbul-lib-hook": { - "version": "1.1.0", - "bundled": true, - "requires": { - "append-transform": "0.4.0" - } - }, - "istanbul-lib-report": { - "version": "1.1.3", - "bundled": true, - "requires": { - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "bundled": true - }, - "supports-color": { - "version": "3.2.3", - "bundled": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "1.2.5", - "bundled": true, - "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" - } - }, - "istanbul-reports": { - "version": "1.4.1", - "bundled": true, - "requires": { - "handlebars": "4.0.11" - } - }, - "kind-of": { - "version": "3.2.2", - "bundled": true, - "requires": { - "is-buffer": "1.1.6" - } - }, - "lazy-cache": { - "version": "1.0.4", - "bundled": true, - "optional": true - }, - "lcid": { - "version": "1.0.0", - "bundled": true, - "requires": { - "invert-kv": "1.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "bundled": true, - "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" - } - }, - "locate-path": { - "version": "2.0.0", - "bundled": true, - "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "bundled": true - } - } - }, - "longest": { - "version": "1.0.1", - "bundled": true - }, - "lru-cache": { - "version": "4.1.3", - "bundled": true, - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } - }, - "map-cache": { - "version": "0.2.2", - "bundled": true - }, - "map-visit": { - "version": "1.0.0", - "bundled": true, - "requires": { - "object-visit": "1.0.1" - } - }, - "md5-hex": { - "version": "1.3.0", - "bundled": true, - "requires": { - "md5-o-matic": "0.1.1" - } - }, - "md5-o-matic": { - "version": "0.1.1", - "bundled": true - }, - "mem": { - "version": "1.1.0", - "bundled": true, - "requires": { - "mimic-fn": "1.2.0" - } - }, - "merge-source-map": { - "version": "1.1.0", - "bundled": true, - "requires": { - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true - } - } - }, - "micromatch": { - "version": "3.1.10", - "bundled": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "mimic-fn": { - "version": "1.2.0", - "bundled": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true - }, - "mixin-deep": { - "version": "1.3.1", - "bundled": true, - "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "bundled": true, - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true - }, - "nanomatch": { - "version": "1.2.9", - "bundled": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "normalize-package-data": { - "version": "2.4.0", - "bundled": true, - "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" - } - }, - "npm-run-path": { - "version": "2.0.2", - "bundled": true, - "requires": { - "path-key": "2.0.1" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true - }, - "object-copy": { - "version": "0.1.0", - "bundled": true, - "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "object-visit": { - "version": "1.0.1", - "bundled": true, - "requires": { - "isobject": "3.0.1" - } - }, - "object.pick": { - "version": "1.3.0", - "bundled": true, - "requires": { - "isobject": "3.0.1" - } - }, - "once": { - "version": "1.4.0", - "bundled": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "optimist": { - "version": "0.6.1", - "bundled": true, - "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true - }, - "os-locale": { - "version": "2.1.0", - "bundled": true, - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - } - }, - "p-finally": { - "version": "1.0.0", - "bundled": true - }, - "p-limit": { - "version": "1.2.0", - "bundled": true, - "requires": { - "p-try": "1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "bundled": true, - "requires": { - "p-limit": "1.2.0" - } - }, - "p-try": { - "version": "1.0.0", - "bundled": true - }, - "parse-json": { - "version": "2.2.0", - "bundled": true, - "requires": { - "error-ex": "1.3.1" - } - }, - "pascalcase": { - "version": "0.1.1", - "bundled": true - }, - "path-exists": { - "version": "2.1.0", - "bundled": true, - "requires": { - "pinkie-promise": "2.0.1" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true - }, - "path-key": { - "version": "2.0.1", - "bundled": true - }, - "path-parse": { - "version": "1.0.5", - "bundled": true - }, - "path-type": { - "version": "1.1.0", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - } - }, - "pify": { - "version": "2.3.0", - "bundled": true - }, - "pinkie": { - "version": "2.0.4", - "bundled": true - }, - "pinkie-promise": { - "version": "2.0.1", - "bundled": true, - "requires": { - "pinkie": "2.0.4" - } - }, - "pkg-dir": { - "version": "1.0.0", - "bundled": true, - "requires": { - "find-up": "1.1.2" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "bundled": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "bundled": true - }, - "pseudomap": { - "version": "1.0.2", - "bundled": true - }, - "read-pkg": { - "version": "1.1.0", - "bundled": true, - "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "bundled": true, - "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "bundled": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - } - } - }, - "regex-not": { - "version": "1.0.2", - "bundled": true, - "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" - } - }, - "repeat-element": { - "version": "1.1.2", - "bundled": true - }, - "repeat-string": { - "version": "1.6.1", - "bundled": true - }, - "require-directory": { - "version": "2.1.1", - "bundled": true - }, - "require-main-filename": { - "version": "1.0.1", - "bundled": true - }, - "resolve-from": { - "version": "2.0.0", - "bundled": true - }, - "resolve-url": { - "version": "0.2.1", - "bundled": true - }, - "ret": { - "version": "0.1.15", - "bundled": true - }, - "right-align": { - "version": "0.1.3", - "bundled": true, - "optional": true, - "requires": { - "align-text": "0.1.4" - } - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "requires": { - "glob": "7.1.2" - } - }, - "safe-regex": { - "version": "1.1.0", - "bundled": true, - "requires": { - "ret": "0.1.15" - } - }, - "semver": { - "version": "5.5.0", - "bundled": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true - }, - "set-value": { - "version": "2.0.0", - "bundled": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "shebang-command": { - "version": "1.2.0", - "bundled": true, - "requires": { - "shebang-regex": "1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "bundled": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true - }, - "slide": { - "version": "1.1.6", - "bundled": true - }, - "snapdragon": { - "version": "0.8.2", - "bundled": 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.2", - "use": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "bundled": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "bundled": true, - "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "source-map": { - "version": "0.5.7", - "bundled": true - }, - "source-map-resolve": { - "version": "0.5.2", - "bundled": true, - "requires": { - "atob": "2.1.1", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "bundled": true - }, - "spawn-wrap": { - "version": "1.4.2", - "bundled": true, - "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.1" - } - }, - "spdx-correct": { - "version": "3.0.0", - "bundled": true, - "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "bundled": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "bundled": true, - "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "bundled": true - }, - "split-string": { - "version": "3.1.0", - "bundled": true, - "requires": { - "extend-shallow": "3.0.2" - } - }, - "static-extend": { - "version": "0.1.2", - "bundled": true, - "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "string-width": { - "version": "2.1.1", - "bundled": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "requires": { - "ansi-regex": "3.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "bundled": true, - "requires": { - "is-utf8": "0.2.1" - } - }, - "strip-eof": { - "version": "1.0.0", - "bundled": true - }, - "test-exclude": { - "version": "4.2.1", - "bundled": true, - "requires": { - "arrify": "1.0.1", - "micromatch": "3.1.10", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" - } - }, - "to-object-path": { - "version": "0.3.0", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "to-regex": { - "version": "3.0.2", - "bundled": true, - "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "bundled": true, - "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" - } - }, - "uglify-js": { - "version": "2.8.29", - "bundled": true, - "optional": true, - "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" - }, - "dependencies": { - "yargs": { - "version": "3.10.0", - "bundled": true, - "optional": true, - "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" - } - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "union-value": { - "version": "1.0.0", - "bundled": true, - "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "set-value": { - "version": "0.4.3", - "bundled": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" - } - } - } - }, - "unset-value": { - "version": "1.0.0", - "bundled": true, - "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "bundled": true, - "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "bundled": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "bundled": true - } - } - }, - "urix": { - "version": "0.1.0", - "bundled": true - }, - "use": { - "version": "3.1.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "validate-npm-package-license": { - "version": "3.0.3", - "bundled": true, - "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" - } - }, - "which": { - "version": "1.3.1", - "bundled": true, - "requires": { - "isexe": "2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "bundled": true - }, - "window-size": { - "version": "0.1.0", - "bundled": true, - "optional": true - }, - "wordwrap": { - "version": "0.0.3", - "bundled": true - }, - "wrap-ansi": { - "version": "2.1.0", - "bundled": true, - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "bundled": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "string-width": { - "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" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "requires": { - "ansi-regex": "2.1.1" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true - }, - "write-file-atomic": { - "version": "1.3.4", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" - } - }, - "y18n": { - "version": "3.2.1", - "bundled": true - }, - "yallist": { - "version": "2.1.2", - "bundled": true - }, - "yargs": { - "version": "11.1.0", - "bundled": true, - "requires": { - "cliui": "4.1.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": "9.0.2" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "bundled": true - }, - "cliui": { - "version": "4.1.0", - "bundled": true, - "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" - } - }, - "yargs-parser": { - "version": "9.0.2", - "bundled": true, - "requires": { - "camelcase": "4.1.0" - } - } - } - }, - "yargs-parser": { - "version": "8.1.0", - "bundled": true, - "requires": { - "camelcase": "4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "bundled": true - } - } - } + "bitcoincashjs-lib": { + "version": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", + "requires": { + "bech32": "1.1.3", + "bigi": "1.4.2", + "bip66": "1.1.5", + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", + "bs58check": "2.1.2", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ecurve": "1.0.6", + "merkle-lib": "2.0.10", + "pushdata-bitcoin": "1.0.1", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2", + "typeforce": "1.12.0", + "varuint-bitcoin": "1.1.0", + "wif": "2.0.6" } } } @@ -4869,7 +3083,7 @@ } }, "bitcoincashjs-lib": { - "version": "github:Bitcoin-com/bitcoincashjs-lib#0a7fc7cf23551503f57689db4c930b8136db954c", + "version": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", "requires": { "bech32": "1.1.3", "bigi": "1.4.2", @@ -4949,7 +3163,7 @@ "requires": { "expand-range": "1.8.2", "preserve": "0.2.0", - "repeat-element": "1.1.2" + "repeat-element": "1.1.3" } }, "brorand": { @@ -5096,7 +3310,7 @@ "requires": { "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "supports-color": "5.5.0" }, "dependencies": { "ansi-styles": { @@ -5108,9 +3322,9 @@ } }, "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { "has-flag": "3.0.0" } @@ -5187,14 +3401,6 @@ "wrap-ansi": "2.1.0" }, "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "1.0.1" - } - }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -5314,13 +3520,6 @@ "nested-error-stacks": "2.1.0", "pify": "3.0.0", "safe-buffer": "5.1.2" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } } }, "create-hash": { @@ -5433,6 +3632,13 @@ "pify": "2.3.0", "pinkie-promise": "2.0.1", "rimraf": "2.6.2" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } } }, "detect-indent": { @@ -5614,7 +3820,7 @@ "pluralize": "7.0.0", "progress": "2.0.0", "require-uncached": "1.0.3", - "semver": "5.5.0", + "semver": "5.5.1", "strip-ansi": "4.0.0", "strip-json-comments": "2.0.1", "table": "4.0.2", @@ -5733,7 +3939,7 @@ "ignore": "3.3.10", "minimatch": "3.0.4", "resolve": "1.8.1", - "semver": "5.5.0" + "semver": "5.5.1" } }, "eslint-plugin-promise": { @@ -5923,7 +4129,7 @@ "is-number": "2.1.0", "isobject": "2.1.0", "randomatic": "3.1.0", - "repeat-element": "1.1.2", + "repeat-element": "1.1.3", "repeat-string": "1.6.1" } }, @@ -5933,12 +4139,11 @@ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" }, "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "locate-path": "2.0.0" } }, "flat-cache": { @@ -6544,6 +4749,13 @@ "object-assign": "4.1.1", "pify": "2.3.0", "pinkie-promise": "2.0.1" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } } }, "graceful-fs": { @@ -6819,9 +5031,12 @@ } }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "version": "1.0.0", + "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" + } }, "is-glob": { "version": "2.0.1", @@ -6936,7 +5151,7 @@ "@babel/traverse": "7.0.0-beta.51", "@babel/types": "7.0.0-beta.51", "istanbul-lib-coverage": "2.0.1", - "semver": "5.5.0" + "semver": "5.5.1" } }, "js-tokens": { @@ -7044,6 +5259,13 @@ "parse-json": "2.2.0", "pify": "2.3.0", "strip-bom": "3.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } } }, "locate-path": { @@ -7053,13 +5275,6 @@ "requires": { "p-locate": "2.0.0", "path-exists": "3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } } }, "lodash": { @@ -7107,13 +5322,6 @@ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "requires": { "pify": "3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } } }, "math-random": { @@ -7318,7 +5526,7 @@ "requires": { "hosted-git-info": "2.7.1", "is-builtin-module": "1.0.0", - "semver": "5.5.0", + "semver": "5.5.1", "validate-npm-package-license": "3.0.4" } }, @@ -10125,12 +8333,9 @@ } }, "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "2.0.1" - } + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" }, "path-is-absolute": { "version": "1.0.1", @@ -10175,6 +8380,13 @@ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { "pify": "2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } } }, "pathval": { @@ -10196,9 +8408,9 @@ } }, "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" }, "pinkie": { "version": "2.0.4", @@ -10222,14 +8434,6 @@ "load-json-file": "4.0.0" }, "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "2.0.0" - } - }, "load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", @@ -10249,11 +8453,6 @@ "error-ex": "1.3.2", "json-parse-better-errors": "1.0.2" } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" } } }, @@ -10273,6 +8472,25 @@ "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "requires": { "find-up": "1.1.2" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "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": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "2.0.1" + } + } } }, "pluralize": { @@ -10407,16 +8625,6 @@ "requires": { "find-up": "2.1.0", "read-pkg": "2.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "2.0.0" - } - } } }, "readable-stream": { @@ -10517,9 +8725,9 @@ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" }, "repeat-element": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" }, "repeat-string": { "version": "1.6.1", @@ -10677,9 +8885,9 @@ } }, "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==" }, "set-blocking": { "version": "2.0.0", @@ -10730,14 +8938,14 @@ "lodash.get": "4.4.2", "lolex": "2.7.1", "nise": "1.4.3", - "supports-color": "5.4.0", + "supports-color": "5.5.0", "type-detect": "4.0.8" }, "dependencies": { "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -10756,6 +8964,13 @@ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "requires": { "is-fullwidth-code-point": "2.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + } } }, "socket.io": { @@ -10908,6 +9123,11 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", @@ -11186,14 +9406,6 @@ "strip-ansi": "3.0.1" }, "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "1.0.1" - } - }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", diff --git a/package.json b/package.json index b38d2869..8588fa22 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.5.8", + "version": "1.5.9", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", @@ -41,7 +41,7 @@ "bip68": "^1.0.4", "bitcoin-ops": "Bitcoin-com/bitcoincash-ops", "bitcoin-txdecoder": "0.0.3", - "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib", + "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib#3.3.4", "bitcoinjs-message": "^2.0.0", "bs58": "^4.0.1", "buffer": "^5.1.0", diff --git a/test/fixtures/BitcoinCash.json b/test/fixtures/BitcoinCash.json index 4162ff9f..8289c9fd 100644 --- a/test/fixtures/BitcoinCash.json +++ b/test/fixtures/BitcoinCash.json @@ -352,11 +352,6 @@ "bip38": { "encrypt": { "mainnet": [ - { - "wif": "5KN7MzqK5wt2TP1fQCYyHBtDrXdJuXbUzm4A9rKAteGu3Qi5CVR", - "password": "TestingOneTwoThree", - "encryptedKey": "6PRVWUbkzzsbcVac2qwfssoUJAN1Xhrg6bNk8J7Nzm5H7kxEbn2Nh2ZoGg" - }, { "wif": "L1XHKhaBAfkr2FJQn3pTfCMxz652WYfmvKj8xDCHCEDV9tWGcbYj", "password": "1EBPIyj55eR8bVUov9", @@ -369,11 +364,6 @@ } ], "testnet": [ - { - "wif": "cRQeGr3Wv91dUF94zy2EEP7rgwVsqNnZa3MtM7Civxdk74gNEPNn", - "password": "TestingOneTwoThree", - "encryptedKey": "6PYXFe1CdGMuVrLCvTo47JUpqcp7sEK7QxE9m4zHHkzUbgqVXVuTUAJh9T" - }, { "wif": "cSx7KzdH9EcvDEireu2WYpGnXdFYpta7sJUNt5kVCJgA7kcAU8Gm", "password": "1EBPIyj55eR8bVUov9", @@ -388,11 +378,6 @@ }, "decrypt": { "mainnet": [ - { - "wif": "5KN7MzqK5wt2TP1fQCYyHBtDrXdJuXbUzm4A9rKAteGu3Qi5CVR", - "password": "TestingOneTwoThree", - "encryptedKey": "6PRVWUbkzzsbcVac2qwfssoUJAN1Xhrg6bNk8J7Nzm5H7kxEbn2Nh2ZoGg" - }, { "wif": "L1XHKhaBAfkr2FJQn3pTfCMxz652WYfmvKj8xDCHCEDV9tWGcbYj", "password": "1EBPIyj55eR8bVUov9", @@ -405,11 +390,6 @@ } ], "testnet": [ - { - "wif": "cRQeGr3Wv91dUF94zy2EEP7rgwVsqNnZa3MtM7Civxdk74gNEPNn", - "password": "TestingOneTwoThree", - "encryptedKey": "6PYXFe1CdGMuVrLCvTo47JUpqcp7sEK7QxE9m4zHHkzUbgqVXVuTUAJh9T" - }, { "wif": "cSx7KzdH9EcvDEireu2WYpGnXdFYpta7sJUNt5kVCJgA7kcAU8Gm", "password": "1EBPIyj55eR8bVUov9", diff --git a/test/fixtures/Script.json b/test/fixtures/Script.json index 04ebfbab..db95b382 100644 --- a/test/fixtures/Script.json +++ b/test/fixtures/Script.json @@ -412,6 +412,10 @@ "script": "OP_RETURN 5454", "type": "nulldata" }, + { + "script": "OP_RETURN 877 8106baaeb4f1b3f7f2558b788be6cb62d76b5ea8eba64a05a509edd504d76fb7 f09fa496203120424348203d203536312e30322420f09f938820362e3533250a54697073203d206675656cefb88f", + "type": "nulldata" + }, { "script": "OP_RETURN 424348466f7245766572796f6e65", "type": "nulldata" From 02af933fd5bb532782d2b0e63b5208efd2390b40 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Mon, 20 Aug 2018 18:04:02 -0700 Subject: [PATCH 063/480] Remove paper wallet generator. --- index.js | 53 +--------------------------------------------------- package.json | 2 +- 2 files changed, 2 insertions(+), 53 deletions(-) diff --git a/index.js b/index.js index 20837994..a2943167 100755 --- a/index.js +++ b/index.js @@ -18,7 +18,7 @@ let clone = require('git-clone'); let cmd = require('node-cmd'); program - .version('1.5.9'); + .version('1.5.10'); program .command('new ') @@ -131,57 +131,6 @@ program } ); -program - .command('paper') - .option('-e, --encoding ', 'The encoding to use. Options include "cashaddr" and "legacy". (Default: "cashaddr")') - .option('-l, --language ', 'language of mnemonic. Options: chinese_simplified, chinese_traditional, english, french, italian, japanese, korean, spanish. (Default: english)') - .description('Create a paper wallet for easy and safe back up') - .action((options) => { - if(!options.encoding || (options.encoding !== 'cashaddr' && options.encoding !== 'legacy')) { - options.encoding = 'cashaddr'; - } - - if(!options.language || (options.language !== 'chinese_simplified' && options.language !== 'chinese_traditional' && options.language !== 'english' && options.language !== 'french' && options.language !== 'italian' && options.language !== 'japanese' && options.language !== 'korean' && options.language !== 'spanish')) { - options.language = 'english'; - } - - console.log(chalk.blue(`Creating ${options.language} ${options.encoding} paper wallet`)); - let bitbox = new BITBOXCli(); - let mnemonic = bitbox.Mnemonic.generate(256, bitbox.Mnemonic.wordLists()[options.language]); - let keypair = bitbox.Mnemonic.toKeypairs(mnemonic, 1)[0]; - let privateKeyWIF = keypair.privateKeyWIF; - let address = keypair.address; - if(options.encoding === 'legacy') { - address = bitbox.Address.toLegacyAddress(address); - } - touch(`./paper-wallet.html`); - let QRCode = require('qrcode') - - QRCode.toDataURL(privateKeyWIF, (err, privateKeyWIFQR) => { - QRCode.toDataURL(address, (err, addressQR) => { - fs.writeFileSync( `./paper-wallet.html`, ` -
-

Private Key WIF

-

${privateKeyWIF}

-

-
-
-

Public address

-

${address}

-

-
-
-

Mnemonic: ${mnemonic}

-

HD Path: m/44'/145'/0'/0/0

-

Encoding: ${options.encoding}

-

Language: ${options.language}

-
- `); - }) - }) - } -); - function fetchOption(kv, config, options) { let parts = kv.split('='); let key = parts[0]; diff --git a/package.json b/package.json index 8588fa22..e582f130 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.5.9", + "version": "1.5.10", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", From 18926e3037a39546b5dc815adcfff70860a042e3 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 21 Aug 2018 12:37:38 -0700 Subject: [PATCH 064/480] Stringify arrays --- index.js | 2 +- lib/RawTransactions.js | 15 +- lib/Socket.d.ts | 6 +- package-lock.json | 2574 +++------------------------------------- package.json | 2 +- src/RawTransactions.js | 15 +- typings/Socket.d.ts | 6 +- 7 files changed, 187 insertions(+), 2433 deletions(-) diff --git a/index.js b/index.js index a2943167..1a48adb0 100755 --- a/index.js +++ b/index.js @@ -18,7 +18,7 @@ let clone = require('git-clone'); let cmd = require('node-cmd'); program - .version('1.5.10'); + .version('1.5.11'); program .command('new ') diff --git a/lib/RawTransactions.js b/lib/RawTransactions.js index 8b7267f4..e3ae1368 100644 --- a/lib/RawTransactions.js +++ b/lib/RawTransactions.js @@ -29,6 +29,9 @@ var RawTransactions = function () { // Parameter #1—serialized transaction in hex // Result—the decoded transaction + if (typeof hex !== 'string') { + hex = JSON.stringify(hex); + } return _axios2.default.get(this.restURL + 'rawtransactions/decodeRawTransaction/' + hex).then(function (response) { return response.data; @@ -38,15 +41,17 @@ var RawTransactions = function () { } }, { key: 'decodeScript', - value: function decodeScript(hex) { + value: function decodeScript(script) { // decodes a hex-encoded P2SH redeem script. // Parameter #1—a hex-encoded redeem script // Result—the decoded script - // console.log('decode script called *****', redeemScript) + if (typeof script !== 'string') { + script = JSON.stringify(script); + } - return _axios2.default.get(this.restURL + 'rawtransactions/decodeScript/' + hex).then(function (response) { + return _axios2.default.get(this.restURL + 'rawtransactions/decodeScript/' + script).then(function (response) { return response.data; }).catch(function (error) { return JSON.stringify(error.response.data.error.message); @@ -73,6 +78,10 @@ var RawTransactions = function () { // Result (if verbose is not set or set to false): // "data" (string) The serialized, hex-encoded data for 'txid' + if (typeof txid !== 'string') { + txid = JSON.stringify(txid); + } + return _axios2.default.get(this.restURL + 'rawtransactions/getRawTransaction/' + txid + '?verbose=' + verbose).then(function (response) { return response.data; }).catch(function (error) { diff --git a/lib/Socket.d.ts b/lib/Socket.d.ts index 399eb3cc..9a6dfba6 100644 --- a/lib/Socket.d.ts +++ b/lib/Socket.d.ts @@ -1,6 +1,6 @@ declare interface Socket { - new(restURL?: string): Socket - listen(endpoint: string, cb: any): void; + new(restURL?: string): Socket + listen(endpoint: string, cb: any): void; } -export default Socket; \ No newline at end of file +export default Socket; diff --git a/package-lock.json b/package-lock.json index 314f61ae..e905c85a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,129 +1,9 @@ { "name": "bitbox-cli", - "version": "1.5.8", + "version": "1.5.11", "lockfileVersion": 1, "requires": true, "dependencies": { - "@babel/code-frame": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz", - "integrity": "sha1-vXHZsZKvl435FYKdOdQJRFZDmgw=", - "requires": { - "@babel/highlight": "7.0.0-beta.51" - } - }, - "@babel/generator": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.51.tgz", - "integrity": "sha1-bHV1/952HQdIXgS67cA5LG2eMPY=", - "requires": { - "@babel/types": "7.0.0-beta.51", - "jsesc": "2.5.1", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" - }, - "dependencies": { - "jsesc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", - "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=" - } - } - }, - "@babel/helper-function-name": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.51.tgz", - "integrity": "sha1-IbSHSiJ8+Z7K/MMKkDAtpaJkBWE=", - "requires": { - "@babel/helper-get-function-arity": "7.0.0-beta.51", - "@babel/template": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.51.tgz", - "integrity": "sha1-MoGy0EWvlcFyzpGyCCXYXqRnZBE=", - "requires": { - "@babel/types": "7.0.0-beta.51" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.51.tgz", - "integrity": "sha1-imw/ZsTSZTUvwHdIT59ugKUauXg=", - "requires": { - "@babel/types": "7.0.0-beta.51" - } - }, - "@babel/highlight": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.51.tgz", - "integrity": "sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0=", - "requires": { - "chalk": "2.4.1", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } - }, - "@babel/parser": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.0.0-beta.51.tgz", - "integrity": "sha1-J87C30Cd9gr1gnDtj2qlVAnqhvY=" - }, - "@babel/template": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.51.tgz", - "integrity": "sha1-lgKkCuvPNXrpZ34lMu9fyBD1+/8=", - "requires": { - "@babel/code-frame": "7.0.0-beta.51", - "@babel/parser": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51", - "lodash": "4.17.10" - } - }, - "@babel/traverse": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.51.tgz", - "integrity": "sha1-mB2vLOw0emIx06odnhgDsDqqpKg=", - "requires": { - "@babel/code-frame": "7.0.0-beta.51", - "@babel/generator": "7.0.0-beta.51", - "@babel/helper-function-name": "7.0.0-beta.51", - "@babel/helper-split-export-declaration": "7.0.0-beta.51", - "@babel/parser": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51", - "debug": "3.1.0", - "globals": "11.7.0", - "invariant": "2.2.4", - "lodash": "4.17.10" - }, - "dependencies": { - "globals": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", - "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==" - } - } - }, - "@babel/types": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.51.tgz", - "integrity": "sha1-2AK3tUO1g2x3iqaReXq/APPZfqk=", - "requires": { - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "2.0.0" - }, - "dependencies": { - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - } - } - }, "@sinonjs/formatio": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", @@ -1137,1826 +1017,28 @@ "binary-extensions": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", - "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", - "optional": true - }, - "bindings": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz", - "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==" - }, - "bip21": { - "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "requires": { - "qs": "6.5.2" - } - }, - "bip32-utils": { - "version": "github:Bitcoin-com/bip32-utils#318df796443311f7e12217542f7f45d3b7791f10", - "requires": { - "bitbox-cli": "1.5.8", - "keccak": "1.4.0", - "nyc": "12.0.2", - "standard": "11.0.1", - "tape": "4.9.1" - }, - "dependencies": { - "nyc": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-12.0.2.tgz", - "integrity": "sha1-ikpO1pCWbBHsWH/4fuoMEsl0upk=", - "requires": { - "archy": "1.0.0", - "arrify": "1.0.1", - "caching-transform": "1.0.1", - "convert-source-map": "1.5.1", - "debug-log": "1.0.1", - "default-require-extensions": "1.0.0", - "find-cache-dir": "0.1.1", - "find-up": "2.1.0", - "foreground-child": "1.5.6", - "glob": "7.1.2", - "istanbul-lib-coverage": "1.2.0", - "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "2.3.2", - "istanbul-lib-report": "1.1.3", - "istanbul-lib-source-maps": "1.2.5", - "istanbul-reports": "1.4.1", - "md5-hex": "1.3.0", - "merge-source-map": "1.1.0", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "resolve-from": "2.0.0", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "spawn-wrap": "1.4.2", - "test-exclude": "4.2.1", - "yargs": "11.1.0", - "yargs-parser": "8.1.0" - }, - "dependencies": { - "align-text": { - "version": "0.1.4", - "bundled": true, - "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" - } - }, - "amdefine": { - "version": "1.0.1", - "bundled": true - }, - "ansi-regex": { - "version": "3.0.0", - "bundled": true - }, - "append-transform": { - "version": "0.4.0", - "bundled": true, - "requires": { - "default-require-extensions": "1.0.0" - } - }, - "archy": { - "version": "1.0.0", - "bundled": true - }, - "arr-diff": { - "version": "4.0.0", - "bundled": true - }, - "arr-flatten": { - "version": "1.1.0", - "bundled": true - }, - "arr-union": { - "version": "3.1.0", - "bundled": true - }, - "array-unique": { - "version": "0.3.2", - "bundled": true - }, - "arrify": { - "version": "1.0.1", - "bundled": true - }, - "assign-symbols": { - "version": "1.0.0", - "bundled": true - }, - "async": { - "version": "1.5.2", - "bundled": true - }, - "atob": { - "version": "2.1.1", - "bundled": true - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true - }, - "base": { - "version": "0.11.2", - "bundled": true, - "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "bundled": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "builtin-modules": { - "version": "1.1.1", - "bundled": true - }, - "cache-base": { - "version": "1.0.1", - "bundled": 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" - } - }, - "caching-transform": { - "version": "1.0.1", - "bundled": true, - "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" - } - }, - "camelcase": { - "version": "1.2.1", - "bundled": true, - "optional": true - }, - "center-align": { - "version": "0.1.3", - "bundled": true, - "optional": true, - "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" - } - }, - "class-utils": { - "version": "0.3.6", - "bundled": true, - "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "cliui": { - "version": "2.1.0", - "bundled": true, - "optional": true, - "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "bundled": true, - "optional": true - } - } - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true - }, - "collection-visit": { - "version": "1.0.0", - "bundled": true, - "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" - } - }, - "commondir": { - "version": "1.0.1", - "bundled": true - }, - "component-emitter": { - "version": "1.2.1", - "bundled": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true - }, - "convert-source-map": { - "version": "1.5.1", - "bundled": true - }, - "copy-descriptor": { - "version": "0.1.1", - "bundled": true - }, - "cross-spawn": { - "version": "4.0.2", - "bundled": true, - "requires": { - "lru-cache": "4.1.3", - "which": "1.3.1" - } - }, - "debug": { - "version": "3.1.0", - "bundled": true, - "requires": { - "ms": "2.0.0" - } - }, - "debug-log": { - "version": "1.0.1", - "bundled": true - }, - "decamelize": { - "version": "1.2.0", - "bundled": true - }, - "decode-uri-component": { - "version": "0.2.0", - "bundled": true - }, - "default-require-extensions": { - "version": "1.0.0", - "bundled": true, - "requires": { - "strip-bom": "2.0.0" - } - }, - "define-property": { - "version": "2.0.2", - "bundled": true, - "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "error-ex": { - "version": "1.3.1", - "bundled": true, - "requires": { - "is-arrayish": "0.2.1" - } - }, - "execa": { - "version": "0.7.0", - "bundled": 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" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "bundled": true, - "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "bundled": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "bundled": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "extend-shallow": { - "version": "3.0.2", - "bundled": true, - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "bundled": true, - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "bundled": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "fill-range": { - "version": "4.0.0", - "bundled": true, - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "find-cache-dir": { - "version": "0.1.1", - "bundled": true, - "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "bundled": true, - "requires": { - "locate-path": "2.0.0" - } - }, - "for-in": { - "version": "1.0.2", - "bundled": true - }, - "foreground-child": { - "version": "1.5.6", - "bundled": true, - "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" - } - }, - "fragment-cache": { - "version": "0.2.1", - "bundled": true, - "requires": { - "map-cache": "0.2.2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true - }, - "get-caller-file": { - "version": "1.0.2", - "bundled": true - }, - "get-stream": { - "version": "3.0.0", - "bundled": true - }, - "get-value": { - "version": "2.0.6", - "bundled": true - }, - "glob": { - "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" - } - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true - }, - "handlebars": { - "version": "4.0.11", - "bundled": true, - "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "bundled": true, - "requires": { - "amdefine": "1.0.1" - } - } - } - }, - "has-value": { - "version": "1.0.0", - "bundled": true, - "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" - } - }, - "has-values": { - "version": "1.0.0", - "bundled": true, - "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "bundled": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "hosted-git-info": { - "version": "2.6.0", - "bundled": true - }, - "imurmurhash": { - "version": "0.1.4", - "bundled": true - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true - }, - "invert-kv": { - "version": "1.0.0", - "bundled": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-arrayish": { - "version": "0.2.1", - "bundled": true - }, - "is-buffer": { - "version": "1.1.6", - "bundled": true - }, - "is-builtin-module": { - "version": "1.0.0", - "bundled": true, - "requires": { - "builtin-modules": "1.1.1" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "bundled": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "bundled": true - } - } - }, - "is-extendable": { - "version": "0.1.1", - "bundled": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "bundled": true - }, - "is-number": { - "version": "3.0.0", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-odd": { - "version": "2.0.0", - "bundled": true, - "requires": { - "is-number": "4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "bundled": true - } - } - }, - "is-plain-object": { - "version": "2.0.4", - "bundled": true, - "requires": { - "isobject": "3.0.1" - } - }, - "is-stream": { - "version": "1.1.0", - "bundled": true - }, - "is-utf8": { - "version": "0.2.1", - "bundled": true - }, - "is-windows": { - "version": "1.0.2", - "bundled": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true - }, - "isexe": { - "version": "2.0.0", - "bundled": true - }, - "isobject": { - "version": "3.0.1", - "bundled": true - }, - "istanbul-lib-coverage": { - "version": "1.2.0", - "bundled": true - }, - "istanbul-lib-hook": { - "version": "1.1.0", - "bundled": true, - "requires": { - "append-transform": "0.4.0" - } - }, - "istanbul-lib-report": { - "version": "1.1.3", - "bundled": true, - "requires": { - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "bundled": true - }, - "supports-color": { - "version": "3.2.3", - "bundled": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "1.2.5", - "bundled": true, - "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" - } - }, - "istanbul-reports": { - "version": "1.4.1", - "bundled": true, - "requires": { - "handlebars": "4.0.11" - } - }, - "kind-of": { - "version": "3.2.2", - "bundled": true, - "requires": { - "is-buffer": "1.1.6" - } - }, - "lazy-cache": { - "version": "1.0.4", - "bundled": true, - "optional": true - }, - "lcid": { - "version": "1.0.0", - "bundled": true, - "requires": { - "invert-kv": "1.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "bundled": true, - "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" - } - }, - "locate-path": { - "version": "2.0.0", - "bundled": true, - "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "bundled": true - } - } - }, - "longest": { - "version": "1.0.1", - "bundled": true - }, - "lru-cache": { - "version": "4.1.3", - "bundled": true, - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } - }, - "map-cache": { - "version": "0.2.2", - "bundled": true - }, - "map-visit": { - "version": "1.0.0", - "bundled": true, - "requires": { - "object-visit": "1.0.1" - } - }, - "md5-hex": { - "version": "1.3.0", - "bundled": true, - "requires": { - "md5-o-matic": "0.1.1" - } - }, - "md5-o-matic": { - "version": "0.1.1", - "bundled": true - }, - "mem": { - "version": "1.1.0", - "bundled": true, - "requires": { - "mimic-fn": "1.2.0" - } - }, - "merge-source-map": { - "version": "1.1.0", - "bundled": true, - "requires": { - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true - } - } - }, - "micromatch": { - "version": "3.1.10", - "bundled": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "mimic-fn": { - "version": "1.2.0", - "bundled": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true - }, - "mixin-deep": { - "version": "1.3.1", - "bundled": true, - "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "bundled": true, - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true - }, - "nanomatch": { - "version": "1.2.9", - "bundled": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "normalize-package-data": { - "version": "2.4.0", - "bundled": true, - "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" - } - }, - "npm-run-path": { - "version": "2.0.2", - "bundled": true, - "requires": { - "path-key": "2.0.1" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true - }, - "object-copy": { - "version": "0.1.0", - "bundled": true, - "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "object-visit": { - "version": "1.0.1", - "bundled": true, - "requires": { - "isobject": "3.0.1" - } - }, - "object.pick": { - "version": "1.3.0", - "bundled": true, - "requires": { - "isobject": "3.0.1" - } - }, - "once": { - "version": "1.4.0", - "bundled": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "optimist": { - "version": "0.6.1", - "bundled": true, - "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true - }, - "os-locale": { - "version": "2.1.0", - "bundled": true, - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - } - }, - "p-finally": { - "version": "1.0.0", - "bundled": true - }, - "p-limit": { - "version": "1.2.0", - "bundled": true, - "requires": { - "p-try": "1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "bundled": true, - "requires": { - "p-limit": "1.2.0" - } - }, - "p-try": { - "version": "1.0.0", - "bundled": true - }, - "parse-json": { - "version": "2.2.0", - "bundled": true, - "requires": { - "error-ex": "1.3.1" - } - }, - "pascalcase": { - "version": "0.1.1", - "bundled": true - }, - "path-exists": { - "version": "2.1.0", - "bundled": true, - "requires": { - "pinkie-promise": "2.0.1" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true - }, - "path-key": { - "version": "2.0.1", - "bundled": true - }, - "path-parse": { - "version": "1.0.5", - "bundled": true - }, - "path-type": { - "version": "1.1.0", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - } - }, - "pify": { - "version": "2.3.0", - "bundled": true - }, - "pinkie": { - "version": "2.0.4", - "bundled": true - }, - "pinkie-promise": { - "version": "2.0.1", - "bundled": true, - "requires": { - "pinkie": "2.0.4" - } - }, - "pkg-dir": { - "version": "1.0.0", - "bundled": true, - "requires": { - "find-up": "1.1.2" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "bundled": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "bundled": true - }, - "pseudomap": { - "version": "1.0.2", - "bundled": true - }, - "read-pkg": { - "version": "1.1.0", - "bundled": true, - "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "bundled": true, - "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "bundled": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - } - } - }, - "regex-not": { - "version": "1.0.2", - "bundled": true, - "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" - } - }, - "repeat-element": { - "version": "1.1.2", - "bundled": true - }, - "repeat-string": { - "version": "1.6.1", - "bundled": true - }, - "require-directory": { - "version": "2.1.1", - "bundled": true - }, - "require-main-filename": { - "version": "1.0.1", - "bundled": true - }, - "resolve-from": { - "version": "2.0.0", - "bundled": true - }, - "resolve-url": { - "version": "0.2.1", - "bundled": true - }, - "ret": { - "version": "0.1.15", - "bundled": true - }, - "right-align": { - "version": "0.1.3", - "bundled": true, - "optional": true, - "requires": { - "align-text": "0.1.4" - } - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "requires": { - "glob": "7.1.2" - } - }, - "safe-regex": { - "version": "1.1.0", - "bundled": true, - "requires": { - "ret": "0.1.15" - } - }, - "semver": { - "version": "5.5.0", - "bundled": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true - }, - "set-value": { - "version": "2.0.0", - "bundled": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "shebang-command": { - "version": "1.2.0", - "bundled": true, - "requires": { - "shebang-regex": "1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "bundled": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true - }, - "slide": { - "version": "1.1.6", - "bundled": true - }, - "snapdragon": { - "version": "0.8.2", - "bundled": 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.2", - "use": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "bundled": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "bundled": true, - "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "source-map": { - "version": "0.5.7", - "bundled": true - }, - "source-map-resolve": { - "version": "0.5.2", - "bundled": true, - "requires": { - "atob": "2.1.1", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "bundled": true - }, - "spawn-wrap": { - "version": "1.4.2", - "bundled": true, - "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.1" - } - }, - "spdx-correct": { - "version": "3.0.0", - "bundled": true, - "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "bundled": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "bundled": true, - "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "bundled": true - }, - "split-string": { - "version": "3.1.0", - "bundled": true, - "requires": { - "extend-shallow": "3.0.2" - } - }, - "static-extend": { - "version": "0.1.2", - "bundled": true, - "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "string-width": { - "version": "2.1.1", - "bundled": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "requires": { - "ansi-regex": "3.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "bundled": true, - "requires": { - "is-utf8": "0.2.1" - } - }, - "strip-eof": { - "version": "1.0.0", - "bundled": true - }, - "test-exclude": { - "version": "4.2.1", - "bundled": true, - "requires": { - "arrify": "1.0.1", - "micromatch": "3.1.10", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" - } - }, - "to-object-path": { - "version": "0.3.0", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "to-regex": { - "version": "3.0.2", - "bundled": true, - "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "bundled": true, - "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" - } - }, - "uglify-js": { - "version": "2.8.29", - "bundled": true, - "optional": true, - "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" - }, - "dependencies": { - "yargs": { - "version": "3.10.0", - "bundled": true, - "optional": true, - "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" - } - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "union-value": { - "version": "1.0.0", - "bundled": true, - "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "set-value": { - "version": "0.4.3", - "bundled": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" - } - } - } - }, - "unset-value": { - "version": "1.0.0", - "bundled": true, - "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "bundled": true, - "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "bundled": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "bundled": true - } - } - }, - "urix": { - "version": "0.1.0", - "bundled": true - }, - "use": { - "version": "3.1.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "validate-npm-package-license": { - "version": "3.0.3", - "bundled": true, - "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" - } - }, - "which": { - "version": "1.3.1", - "bundled": true, - "requires": { - "isexe": "2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "bundled": true - }, - "window-size": { - "version": "0.1.0", - "bundled": true, - "optional": true - }, - "wordwrap": { - "version": "0.0.3", - "bundled": true - }, - "wrap-ansi": { - "version": "2.1.0", - "bundled": true, - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "bundled": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "string-width": { - "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" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "requires": { - "ansi-regex": "2.1.1" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true - }, - "write-file-atomic": { - "version": "1.3.4", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" - } - }, - "y18n": { - "version": "3.2.1", - "bundled": true - }, - "yallist": { - "version": "2.1.2", - "bundled": true - }, - "yargs": { - "version": "11.1.0", - "bundled": true, - "requires": { - "cliui": "4.1.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": "9.0.2" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "bundled": true - }, - "cliui": { - "version": "4.1.0", - "bundled": true, - "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" - } - }, - "yargs-parser": { - "version": "9.0.2", - "bundled": true, - "requires": { - "camelcase": "4.1.0" - } - } - } - }, - "yargs-parser": { - "version": "8.1.0", - "bundled": true, - "requires": { - "camelcase": "4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "bundled": true - } - } - } - } - } + "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", + "optional": true + }, + "bindings": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz", + "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==" + }, + "bip21": { + "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", + "requires": { + "qs": "6.5.2" + } + }, + "bip32-utils": { + "version": "github:Bitcoin-com/bip32-utils#318df796443311f7e12217542f7f45d3b7791f10", + "requires": { + "bitbox-cli": "1.5.8", + "keccak": "1.4.0", + "nyc": "11.9.0", + "standard": "11.0.1", + "tape": "4.9.1" } }, "bip38": { @@ -5135,25 +3217,6 @@ "isarray": "1.0.0" } }, - "istanbul-lib-coverage": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", - "integrity": "sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA==" - }, - "istanbul-lib-instrument": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-2.3.2.tgz", - "integrity": "sha512-l7TD/VnBsIB2OJvSyxaLW/ab1+92dxZNH9wLH7uHPPioy3JZ8tnx2UXUdKmdkgmP2EFPzg64CToUP6dAS3U32Q==", - "requires": { - "@babel/generator": "7.0.0-beta.51", - "@babel/parser": "7.0.0-beta.51", - "@babel/template": "7.0.0-beta.51", - "@babel/traverse": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51", - "istanbul-lib-coverage": "2.0.1", - "semver": "5.5.1" - } - }, "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", @@ -5555,7 +3618,6 @@ "version": "11.9.0", "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.9.0.tgz", "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", - "dev": true, "requires": { "archy": "1.0.0", "arrify": "1.0.1", @@ -5589,7 +3651,6 @@ "align-text": { "version": "0.1.4", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2", "longest": "1.0.1", @@ -5598,76 +3659,62 @@ }, "amdefine": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true, - "dev": true + "bundled": true }, "ansi-styles": { "version": "2.2.1", - "bundled": true, - "dev": true + "bundled": true }, "append-transform": { "version": "0.4.0", "bundled": true, - "dev": true, "requires": { "default-require-extensions": "1.0.0" } }, "archy": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "arr-diff": { "version": "4.0.0", - "bundled": true, - "dev": true + "bundled": true }, "arr-flatten": { "version": "1.1.0", - "bundled": true, - "dev": true + "bundled": true }, "arr-union": { "version": "3.1.0", - "bundled": true, - "dev": true + "bundled": true }, "array-unique": { "version": "0.3.2", - "bundled": true, - "dev": true + "bundled": true }, "arrify": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "assign-symbols": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "async": { "version": "1.5.2", - "bundled": true, - "dev": true + "bundled": true }, "atob": { "version": "2.1.1", - "bundled": true, - "dev": true + "bundled": true }, "babel-code-frame": { "version": "6.26.0", "bundled": true, - "dev": true, "requires": { "chalk": "1.1.3", "esutils": "2.0.2", @@ -5677,7 +3724,6 @@ "babel-generator": { "version": "6.26.1", "bundled": true, - "dev": true, "requires": { "babel-messages": "6.23.0", "babel-runtime": "6.26.0", @@ -5692,7 +3738,6 @@ "babel-messages": { "version": "6.23.0", "bundled": true, - "dev": true, "requires": { "babel-runtime": "6.26.0" } @@ -5700,7 +3745,6 @@ "babel-runtime": { "version": "6.26.0", "bundled": true, - "dev": true, "requires": { "core-js": "2.5.6", "regenerator-runtime": "0.11.1" @@ -5709,7 +3753,6 @@ "babel-template": { "version": "6.26.0", "bundled": true, - "dev": true, "requires": { "babel-runtime": "6.26.0", "babel-traverse": "6.26.0", @@ -5721,7 +3764,6 @@ "babel-traverse": { "version": "6.26.0", "bundled": true, - "dev": true, "requires": { "babel-code-frame": "6.26.0", "babel-messages": "6.23.0", @@ -5737,7 +3779,6 @@ "babel-types": { "version": "6.26.0", "bundled": true, - "dev": true, "requires": { "babel-runtime": "6.26.0", "esutils": "2.0.2", @@ -5747,18 +3788,15 @@ }, "babylon": { "version": "6.18.0", - "bundled": true, - "dev": true + "bundled": true }, "balanced-match": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "base": { "version": "0.11.2", "bundled": true, - "dev": true, "requires": { "cache-base": "1.0.1", "class-utils": "0.3.6", @@ -5772,7 +3810,6 @@ "define-property": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "is-descriptor": "1.0.2" } @@ -5780,7 +3817,6 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -5788,7 +3824,6 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -5796,7 +3831,6 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -5805,20 +3839,17 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "brace-expansion": { "version": "1.1.11", "bundled": true, - "dev": true, "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -5827,7 +3858,6 @@ "braces": { "version": "2.3.2", "bundled": true, - "dev": true, "requires": { "arr-flatten": "1.1.0", "array-unique": "0.3.2", @@ -5844,7 +3874,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -5853,13 +3882,11 @@ }, "builtin-modules": { "version": "1.1.1", - "bundled": true, - "dev": true + "bundled": true }, "cache-base": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "collection-visit": "1.0.0", "component-emitter": "1.2.1", @@ -5874,15 +3901,13 @@ "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "caching-transform": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "md5-hex": "1.3.0", "mkdirp": "0.5.1", @@ -5892,13 +3917,11 @@ "camelcase": { "version": "1.2.1", "bundled": true, - "dev": true, "optional": true }, "center-align": { "version": "0.1.3", "bundled": true, - "dev": true, "optional": true, "requires": { "align-text": "0.1.4", @@ -5908,7 +3931,6 @@ "chalk": { "version": "1.1.3", "bundled": true, - "dev": true, "requires": { "ansi-styles": "2.2.1", "escape-string-regexp": "1.0.5", @@ -5920,7 +3942,6 @@ "class-utils": { "version": "0.3.6", "bundled": true, - "dev": true, "requires": { "arr-union": "3.1.0", "define-property": "0.2.5", @@ -5931,22 +3952,19 @@ "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { "is-descriptor": "0.1.6" } }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "cliui": { "version": "2.1.0", "bundled": true, - "dev": true, "optional": true, "requires": { "center-align": "0.1.3", @@ -5957,20 +3975,17 @@ "wordwrap": { "version": "0.0.2", "bundled": true, - "dev": true, "optional": true } } }, "code-point-at": { "version": "1.1.0", - "bundled": true, - "dev": true + "bundled": true }, "collection-visit": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "map-visit": "1.0.0", "object-visit": "1.0.1" @@ -5978,38 +3993,31 @@ }, "commondir": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "component-emitter": { "version": "1.2.1", - "bundled": true, - "dev": true + "bundled": true }, "concat-map": { "version": "0.0.1", - "bundled": true, - "dev": true + "bundled": true }, "convert-source-map": { "version": "1.5.1", - "bundled": true, - "dev": true + "bundled": true }, "copy-descriptor": { "version": "0.1.1", - "bundled": true, - "dev": true + "bundled": true }, "core-js": { "version": "2.5.6", - "bundled": true, - "dev": true + "bundled": true }, "cross-spawn": { "version": "4.0.2", "bundled": true, - "dev": true, "requires": { "lru-cache": "4.1.3", "which": "1.3.0" @@ -6018,30 +4026,25 @@ "debug": { "version": "2.6.9", "bundled": true, - "dev": true, "requires": { "ms": "2.0.0" } }, "debug-log": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "decamelize": { "version": "1.2.0", - "bundled": true, - "dev": true + "bundled": true }, "decode-uri-component": { "version": "0.2.0", - "bundled": true, - "dev": true + "bundled": true }, "default-require-extensions": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "strip-bom": "2.0.0" } @@ -6049,7 +4052,6 @@ "define-property": { "version": "2.0.2", "bundled": true, - "dev": true, "requires": { "is-descriptor": "1.0.2", "isobject": "3.0.1" @@ -6058,7 +4060,6 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -6066,7 +4067,6 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -6074,7 +4074,6 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -6083,20 +4082,17 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "detect-indent": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "repeating": "2.0.1" } @@ -6104,25 +4100,21 @@ "error-ex": { "version": "1.3.1", "bundled": true, - "dev": true, "requires": { "is-arrayish": "0.2.1" } }, "escape-string-regexp": { "version": "1.0.5", - "bundled": true, - "dev": true + "bundled": true }, "esutils": { "version": "2.0.2", - "bundled": true, - "dev": true + "bundled": true }, "execa": { "version": "0.7.0", "bundled": true, - "dev": true, "requires": { "cross-spawn": "5.1.0", "get-stream": "3.0.0", @@ -6136,7 +4128,6 @@ "cross-spawn": { "version": "5.1.0", "bundled": true, - "dev": true, "requires": { "lru-cache": "4.1.3", "shebang-command": "1.2.0", @@ -6148,7 +4139,6 @@ "expand-brackets": { "version": "2.1.4", "bundled": true, - "dev": true, "requires": { "debug": "2.6.9", "define-property": "0.2.5", @@ -6162,7 +4152,6 @@ "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -6170,7 +4159,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -6180,7 +4168,6 @@ "extend-shallow": { "version": "3.0.2", "bundled": true, - "dev": true, "requires": { "assign-symbols": "1.0.0", "is-extendable": "1.0.1" @@ -6189,7 +4176,6 @@ "is-extendable": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "is-plain-object": "2.0.4" } @@ -6199,7 +4185,6 @@ "extglob": { "version": "2.0.4", "bundled": true, - "dev": true, "requires": { "array-unique": "0.3.2", "define-property": "1.0.0", @@ -6214,7 +4199,6 @@ "define-property": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "is-descriptor": "1.0.2" } @@ -6222,7 +4206,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -6230,7 +4213,6 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -6238,7 +4220,6 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -6246,7 +4227,6 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -6255,15 +4235,13 @@ }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "fill-range": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "extend-shallow": "2.0.1", "is-number": "3.0.0", @@ -6274,7 +4252,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -6284,7 +4261,6 @@ "find-cache-dir": { "version": "0.1.1", "bundled": true, - "dev": true, "requires": { "commondir": "1.0.1", "mkdirp": "0.5.1", @@ -6294,20 +4270,17 @@ "find-up": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { "locate-path": "2.0.0" } }, "for-in": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "foreground-child": { "version": "1.5.6", "bundled": true, - "dev": true, "requires": { "cross-spawn": "4.0.2", "signal-exit": "3.0.2" @@ -6316,35 +4289,29 @@ "fragment-cache": { "version": "0.2.1", "bundled": true, - "dev": true, "requires": { "map-cache": "0.2.2" } }, "fs.realpath": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "get-caller-file": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "get-stream": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true }, "get-value": { "version": "2.0.6", - "bundled": true, - "dev": true + "bundled": true }, "glob": { "version": "7.1.2", "bundled": true, - "dev": true, "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -6356,18 +4323,15 @@ }, "globals": { "version": "9.18.0", - "bundled": true, - "dev": true + "bundled": true }, "graceful-fs": { "version": "4.1.11", - "bundled": true, - "dev": true + "bundled": true }, "handlebars": { "version": "4.0.11", "bundled": true, - "dev": true, "requires": { "async": "1.5.2", "optimist": "0.6.1", @@ -6378,7 +4342,6 @@ "source-map": { "version": "0.4.4", "bundled": true, - "dev": true, "requires": { "amdefine": "1.0.1" } @@ -6388,20 +4351,17 @@ "has-ansi": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "ansi-regex": "2.1.1" } }, "has-flag": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "has-value": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "get-value": "2.0.6", "has-values": "1.0.0", @@ -6410,15 +4370,13 @@ "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "has-values": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "is-number": "3.0.0", "kind-of": "4.0.0" @@ -6427,7 +4385,6 @@ "is-number": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" }, @@ -6435,7 +4392,6 @@ "kind-of": { "version": "3.2.2", "bundled": true, - "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -6445,7 +4401,6 @@ "kind-of": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -6454,18 +4409,15 @@ }, "hosted-git-info": { "version": "2.6.0", - "bundled": true, - "dev": true + "bundled": true }, "imurmurhash": { "version": "0.1.4", - "bundled": true, - "dev": true + "bundled": true }, "inflight": { "version": "1.0.6", "bundled": true, - "dev": true, "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -6473,44 +4425,37 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, - "dev": true + "bundled": true }, "invariant": { "version": "2.2.4", "bundled": true, - "dev": true, "requires": { "loose-envify": "1.3.1" } }, "invert-kv": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "is-accessor-descriptor": { "version": "0.1.6", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" } }, "is-arrayish": { "version": "0.2.1", - "bundled": true, - "dev": true + "bundled": true }, "is-buffer": { "version": "1.1.6", - "bundled": true, - "dev": true + "bundled": true }, "is-builtin-module": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "builtin-modules": "1.1.1" } @@ -6518,7 +4463,6 @@ "is-data-descriptor": { "version": "0.1.4", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" } @@ -6526,7 +4470,6 @@ "is-descriptor": { "version": "0.1.6", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "0.1.6", "is-data-descriptor": "0.1.4", @@ -6535,33 +4478,28 @@ "dependencies": { "kind-of": { "version": "5.1.0", - "bundled": true, - "dev": true + "bundled": true } } }, "is-extendable": { "version": "0.1.1", - "bundled": true, - "dev": true + "bundled": true }, "is-finite": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "is-number": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" } @@ -6569,72 +4507,60 @@ "is-odd": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "is-number": "4.0.0" }, "dependencies": { "is-number": { "version": "4.0.0", - "bundled": true, - "dev": true + "bundled": true } } }, "is-plain-object": { "version": "2.0.4", "bundled": true, - "dev": true, "requires": { "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "is-stream": { "version": "1.1.0", - "bundled": true, - "dev": true + "bundled": true }, "is-utf8": { "version": "0.2.1", - "bundled": true, - "dev": true + "bundled": true }, "is-windows": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "isarray": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "isexe": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true }, "istanbul-lib-coverage": { "version": "1.2.0", - "bundled": true, - "dev": true + "bundled": true }, "istanbul-lib-hook": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "append-transform": "0.4.0" } @@ -6642,7 +4568,6 @@ "istanbul-lib-instrument": { "version": "1.10.1", "bundled": true, - "dev": true, "requires": { "babel-generator": "6.26.1", "babel-template": "6.26.0", @@ -6656,7 +4581,6 @@ "istanbul-lib-report": { "version": "1.1.3", "bundled": true, - "dev": true, "requires": { "istanbul-lib-coverage": "1.2.0", "mkdirp": "0.5.1", @@ -6667,7 +4591,6 @@ "supports-color": { "version": "3.2.3", "bundled": true, - "dev": true, "requires": { "has-flag": "1.0.0" } @@ -6677,7 +4600,6 @@ "istanbul-lib-source-maps": { "version": "1.2.3", "bundled": true, - "dev": true, "requires": { "debug": "3.1.0", "istanbul-lib-coverage": "1.2.0", @@ -6689,7 +4611,6 @@ "debug": { "version": "3.1.0", "bundled": true, - "dev": true, "requires": { "ms": "2.0.0" } @@ -6699,25 +4620,21 @@ "istanbul-reports": { "version": "1.4.0", "bundled": true, - "dev": true, "requires": { "handlebars": "4.0.11" } }, "js-tokens": { "version": "3.0.2", - "bundled": true, - "dev": true + "bundled": true }, "jsesc": { "version": "1.3.0", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "3.2.2", "bundled": true, - "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -6725,13 +4642,11 @@ "lazy-cache": { "version": "1.0.4", "bundled": true, - "dev": true, "optional": true }, "lcid": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "invert-kv": "1.0.0" } @@ -6739,7 +4654,6 @@ "load-json-file": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "graceful-fs": "4.1.11", "parse-json": "2.2.0", @@ -6751,7 +4665,6 @@ "locate-path": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "p-locate": "2.0.0", "path-exists": "3.0.0" @@ -6759,25 +4672,21 @@ "dependencies": { "path-exists": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true } } }, "lodash": { "version": "4.17.10", - "bundled": true, - "dev": true + "bundled": true }, "longest": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "loose-envify": { "version": "1.3.1", "bundled": true, - "dev": true, "requires": { "js-tokens": "3.0.2" } @@ -6785,7 +4694,6 @@ "lru-cache": { "version": "4.1.3", "bundled": true, - "dev": true, "requires": { "pseudomap": "1.0.2", "yallist": "2.1.2" @@ -6793,13 +4701,11 @@ }, "map-cache": { "version": "0.2.2", - "bundled": true, - "dev": true + "bundled": true }, "map-visit": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "object-visit": "1.0.1" } @@ -6807,20 +4713,17 @@ "md5-hex": { "version": "1.3.0", "bundled": true, - "dev": true, "requires": { "md5-o-matic": "0.1.1" } }, "md5-o-matic": { "version": "0.1.1", - "bundled": true, - "dev": true + "bundled": true }, "mem": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "mimic-fn": "1.2.0" } @@ -6828,22 +4731,19 @@ "merge-source-map": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "source-map": "0.6.1" }, "dependencies": { "source-map": { "version": "0.6.1", - "bundled": true, - "dev": true + "bundled": true } } }, "micromatch": { "version": "3.1.10", "bundled": true, - "dev": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -6862,33 +4762,28 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "mimic-fn": { "version": "1.2.0", - "bundled": true, - "dev": true + "bundled": true }, "minimatch": { "version": "3.0.4", "bundled": true, - "dev": true, "requires": { "brace-expansion": "1.1.11" } }, "minimist": { "version": "0.0.8", - "bundled": true, - "dev": true + "bundled": true }, "mixin-deep": { "version": "1.3.1", "bundled": true, - "dev": true, "requires": { "for-in": "1.0.2", "is-extendable": "1.0.1" @@ -6897,7 +4792,6 @@ "is-extendable": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "is-plain-object": "2.0.4" } @@ -6907,20 +4801,17 @@ "mkdirp": { "version": "0.5.1", "bundled": true, - "dev": true, "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "nanomatch": { "version": "1.2.9", "bundled": true, - "dev": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -6938,25 +4829,21 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true, - "dev": true + "bundled": true }, "array-unique": { "version": "0.3.2", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "normalize-package-data": { "version": "2.4.0", "bundled": true, - "dev": true, "requires": { "hosted-git-info": "2.6.0", "is-builtin-module": "1.0.0", @@ -6967,25 +4854,21 @@ "npm-run-path": { "version": "2.0.2", "bundled": true, - "dev": true, "requires": { "path-key": "2.0.1" } }, "number-is-nan": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "object-assign": { "version": "4.1.1", - "bundled": true, - "dev": true + "bundled": true }, "object-copy": { "version": "0.1.0", "bundled": true, - "dev": true, "requires": { "copy-descriptor": "0.1.1", "define-property": "0.2.5", @@ -6995,7 +4878,6 @@ "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -7005,37 +4887,32 @@ "object-visit": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "object.pick": { "version": "1.3.0", "bundled": true, - "dev": true, "requires": { "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "once": { "version": "1.4.0", "bundled": true, - "dev": true, "requires": { "wrappy": "1.0.2" } @@ -7043,7 +4920,6 @@ "optimist": { "version": "0.6.1", "bundled": true, - "dev": true, "requires": { "minimist": "0.0.8", "wordwrap": "0.0.3" @@ -7051,13 +4927,11 @@ }, "os-homedir": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "os-locale": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { "execa": "0.7.0", "lcid": "1.0.0", @@ -7066,13 +4940,11 @@ }, "p-finally": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "p-limit": { "version": "1.2.0", "bundled": true, - "dev": true, "requires": { "p-try": "1.0.0" } @@ -7080,56 +4952,47 @@ "p-locate": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "p-limit": "1.2.0" } }, "p-try": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "parse-json": { "version": "2.2.0", "bundled": true, - "dev": true, "requires": { "error-ex": "1.3.1" } }, "pascalcase": { "version": "0.1.1", - "bundled": true, - "dev": true + "bundled": true }, "path-exists": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { "pinkie-promise": "2.0.1" } }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "path-key": { "version": "2.0.1", - "bundled": true, - "dev": true + "bundled": true }, "path-parse": { "version": "1.0.5", - "bundled": true, - "dev": true + "bundled": true }, "path-type": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "graceful-fs": "4.1.11", "pify": "2.3.0", @@ -7138,18 +5001,15 @@ }, "pify": { "version": "2.3.0", - "bundled": true, - "dev": true + "bundled": true }, "pinkie": { "version": "2.0.4", - "bundled": true, - "dev": true + "bundled": true }, "pinkie-promise": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "pinkie": "2.0.4" } @@ -7157,7 +5017,6 @@ "pkg-dir": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "find-up": "1.1.2" }, @@ -7165,7 +5024,6 @@ "find-up": { "version": "1.1.2", "bundled": true, - "dev": true, "requires": { "path-exists": "2.1.0", "pinkie-promise": "2.0.1" @@ -7175,18 +5033,15 @@ }, "posix-character-classes": { "version": "0.1.1", - "bundled": true, - "dev": true + "bundled": true }, "pseudomap": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "read-pkg": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "load-json-file": "1.1.0", "normalize-package-data": "2.4.0", @@ -7196,7 +5051,6 @@ "read-pkg-up": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "find-up": "1.1.2", "read-pkg": "1.1.0" @@ -7205,7 +5059,6 @@ "find-up": { "version": "1.1.2", "bundled": true, - "dev": true, "requires": { "path-exists": "2.1.0", "pinkie-promise": "2.0.1" @@ -7215,13 +5068,11 @@ }, "regenerator-runtime": { "version": "0.11.1", - "bundled": true, - "dev": true + "bundled": true }, "regex-not": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "extend-shallow": "3.0.2", "safe-regex": "1.1.0" @@ -7229,51 +5080,42 @@ }, "repeat-element": { "version": "1.1.2", - "bundled": true, - "dev": true + "bundled": true }, "repeat-string": { "version": "1.6.1", - "bundled": true, - "dev": true + "bundled": true }, "repeating": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-finite": "1.0.2" } }, "require-directory": { "version": "2.1.1", - "bundled": true, - "dev": true + "bundled": true }, "require-main-filename": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "resolve-from": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "resolve-url": { "version": "0.2.1", - "bundled": true, - "dev": true + "bundled": true }, "ret": { "version": "0.1.15", - "bundled": true, - "dev": true + "bundled": true }, "right-align": { "version": "0.1.3", "bundled": true, - "dev": true, "optional": true, "requires": { "align-text": "0.1.4" @@ -7282,7 +5124,6 @@ "rimraf": { "version": "2.6.2", "bundled": true, - "dev": true, "requires": { "glob": "7.1.2" } @@ -7290,25 +5131,21 @@ "safe-regex": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "ret": "0.1.15" } }, "semver": { "version": "5.5.0", - "bundled": true, - "dev": true + "bundled": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "set-value": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "extend-shallow": "2.0.1", "is-extendable": "0.1.1", @@ -7319,7 +5156,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -7329,30 +5165,25 @@ "shebang-command": { "version": "1.2.0", "bundled": true, - "dev": true, "requires": { "shebang-regex": "1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, - "dev": true + "bundled": true }, "slide": { "version": "1.1.6", - "bundled": true, - "dev": true + "bundled": true }, "snapdragon": { "version": "0.8.2", "bundled": true, - "dev": true, "requires": { "base": "0.11.2", "debug": "2.6.9", @@ -7367,7 +5198,6 @@ "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -7375,7 +5205,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -7385,7 +5214,6 @@ "snapdragon-node": { "version": "2.1.1", "bundled": true, - "dev": true, "requires": { "define-property": "1.0.0", "isobject": "3.0.1", @@ -7395,7 +5223,6 @@ "define-property": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "is-descriptor": "1.0.2" } @@ -7403,7 +5230,6 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -7411,7 +5237,6 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -7419,7 +5244,6 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -7428,33 +5252,28 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "snapdragon-util": { "version": "3.0.1", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" } }, "source-map": { "version": "0.5.7", - "bundled": true, - "dev": true + "bundled": true }, "source-map-resolve": { "version": "0.5.1", "bundled": true, - "dev": true, "requires": { "atob": "2.1.1", "decode-uri-component": "0.2.0", @@ -7465,13 +5284,11 @@ }, "source-map-url": { "version": "0.4.0", - "bundled": true, - "dev": true + "bundled": true }, "spawn-wrap": { "version": "1.4.2", "bundled": true, - "dev": true, "requires": { "foreground-child": "1.5.6", "mkdirp": "0.5.1", @@ -7484,7 +5301,6 @@ "spdx-correct": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "spdx-expression-parse": "3.0.0", "spdx-license-ids": "3.0.0" @@ -7492,13 +5308,11 @@ }, "spdx-exceptions": { "version": "2.1.0", - "bundled": true, - "dev": true + "bundled": true }, "spdx-expression-parse": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "spdx-exceptions": "2.1.0", "spdx-license-ids": "3.0.0" @@ -7506,13 +5320,11 @@ }, "spdx-license-ids": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true }, "split-string": { "version": "3.1.0", "bundled": true, - "dev": true, "requires": { "extend-shallow": "3.0.2" } @@ -7520,7 +5332,6 @@ "static-extend": { "version": "0.1.2", "bundled": true, - "dev": true, "requires": { "define-property": "0.2.5", "object-copy": "0.1.0" @@ -7529,7 +5340,6 @@ "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -7539,7 +5349,6 @@ "string-width": { "version": "2.1.1", "bundled": true, - "dev": true, "requires": { "is-fullwidth-code-point": "2.0.0", "strip-ansi": "4.0.0" @@ -7547,13 +5356,11 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true }, "strip-ansi": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "ansi-regex": "3.0.0" } @@ -7563,7 +5370,6 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, - "dev": true, "requires": { "ansi-regex": "2.1.1" } @@ -7571,25 +5377,21 @@ "strip-bom": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "is-utf8": "0.2.1" } }, "strip-eof": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "supports-color": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "test-exclude": { "version": "4.2.1", "bundled": true, - "dev": true, "requires": { "arrify": "1.0.1", "micromatch": "3.1.10", @@ -7600,18 +5402,15 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true, - "dev": true + "bundled": true }, "array-unique": { "version": "0.3.2", - "bundled": true, - "dev": true + "bundled": true }, "braces": { "version": "2.3.2", "bundled": true, - "dev": true, "requires": { "arr-flatten": "1.1.0", "array-unique": "0.3.2", @@ -7628,7 +5427,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -7638,7 +5436,6 @@ "expand-brackets": { "version": "2.1.4", "bundled": true, - "dev": true, "requires": { "debug": "2.6.9", "define-property": "0.2.5", @@ -7652,7 +5449,6 @@ "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -7660,7 +5456,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -7668,7 +5463,6 @@ "is-accessor-descriptor": { "version": "0.1.6", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" }, @@ -7676,7 +5470,6 @@ "kind-of": { "version": "3.2.2", "bundled": true, - "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -7686,7 +5479,6 @@ "is-data-descriptor": { "version": "0.1.4", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" }, @@ -7694,7 +5486,6 @@ "kind-of": { "version": "3.2.2", "bundled": true, - "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -7704,7 +5495,6 @@ "is-descriptor": { "version": "0.1.6", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "0.1.6", "is-data-descriptor": "0.1.4", @@ -7713,15 +5503,13 @@ }, "kind-of": { "version": "5.1.0", - "bundled": true, - "dev": true + "bundled": true } } }, "extglob": { "version": "2.0.4", "bundled": true, - "dev": true, "requires": { "array-unique": "0.3.2", "define-property": "1.0.0", @@ -7736,7 +5524,6 @@ "define-property": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "is-descriptor": "1.0.2" } @@ -7744,7 +5531,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -7754,7 +5540,6 @@ "fill-range": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "extend-shallow": "2.0.1", "is-number": "3.0.0", @@ -7765,7 +5550,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -7775,7 +5559,6 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -7783,7 +5566,6 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -7791,7 +5573,6 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -7801,7 +5582,6 @@ "is-number": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" }, @@ -7809,7 +5589,6 @@ "kind-of": { "version": "3.2.2", "bundled": true, - "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -7818,18 +5597,15 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true }, "micromatch": { "version": "3.1.10", "bundled": true, - "dev": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -7850,13 +5626,11 @@ }, "to-fast-properties": { "version": "1.0.3", - "bundled": true, - "dev": true + "bundled": true }, "to-object-path": { "version": "0.3.0", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" } @@ -7864,7 +5638,6 @@ "to-regex": { "version": "3.0.2", "bundled": true, - "dev": true, "requires": { "define-property": "2.0.2", "extend-shallow": "3.0.2", @@ -7875,7 +5648,6 @@ "to-regex-range": { "version": "2.1.1", "bundled": true, - "dev": true, "requires": { "is-number": "3.0.0", "repeat-string": "1.6.1" @@ -7884,7 +5656,6 @@ "is-number": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" } @@ -7893,13 +5664,11 @@ }, "trim-right": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "uglify-js": { "version": "2.8.29", "bundled": true, - "dev": true, "optional": true, "requires": { "source-map": "0.5.7", @@ -7910,7 +5679,6 @@ "yargs": { "version": "3.10.0", "bundled": true, - "dev": true, "optional": true, "requires": { "camelcase": "1.2.1", @@ -7924,13 +5692,11 @@ "uglify-to-browserify": { "version": "1.0.2", "bundled": true, - "dev": true, "optional": true }, "union-value": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "arr-union": "3.1.0", "get-value": "2.0.6", @@ -7941,7 +5707,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -7949,7 +5714,6 @@ "set-value": { "version": "0.4.3", "bundled": true, - "dev": true, "requires": { "extend-shallow": "2.0.1", "is-extendable": "0.1.1", @@ -7962,7 +5726,6 @@ "unset-value": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "has-value": "0.3.1", "isobject": "3.0.1" @@ -7971,7 +5734,6 @@ "has-value": { "version": "0.3.1", "bundled": true, - "dev": true, "requires": { "get-value": "2.0.6", "has-values": "0.1.4", @@ -7981,7 +5743,6 @@ "isobject": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { "isarray": "1.0.0" } @@ -7990,40 +5751,34 @@ }, "has-values": { "version": "0.1.4", - "bundled": true, - "dev": true + "bundled": true }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "urix": { "version": "0.1.0", - "bundled": true, - "dev": true + "bundled": true }, "use": { "version": "3.1.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "validate-npm-package-license": { "version": "3.0.3", "bundled": true, - "dev": true, "requires": { "spdx-correct": "3.0.0", "spdx-expression-parse": "3.0.0" @@ -8032,31 +5787,26 @@ "which": { "version": "1.3.0", "bundled": true, - "dev": true, "requires": { "isexe": "2.0.0" } }, "which-module": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "window-size": { "version": "0.1.0", "bundled": true, - "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "bundled": true, - "dev": true + "bundled": true }, "wrap-ansi": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { "string-width": "1.0.2", "strip-ansi": "3.0.1" @@ -8065,7 +5815,6 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "number-is-nan": "1.0.1" } @@ -8073,7 +5822,6 @@ "string-width": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -8084,13 +5832,11 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "write-file-atomic": { "version": "1.3.4", "bundled": true, - "dev": true, "requires": { "graceful-fs": "4.1.11", "imurmurhash": "0.1.4", @@ -8099,18 +5845,15 @@ }, "y18n": { "version": "3.2.1", - "bundled": true, - "dev": true + "bundled": true }, "yallist": { "version": "2.1.2", - "bundled": true, - "dev": true + "bundled": true }, "yargs": { "version": "11.1.0", "bundled": true, - "dev": true, "requires": { "cliui": "4.1.0", "decamelize": "1.2.0", @@ -8128,18 +5871,15 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true }, "camelcase": { "version": "4.1.0", - "bundled": true, - "dev": true + "bundled": true }, "cliui": { "version": "4.1.0", "bundled": true, - "dev": true, "requires": { "string-width": "2.1.1", "strip-ansi": "4.0.0", @@ -8149,7 +5889,6 @@ "strip-ansi": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "ansi-regex": "3.0.0" } @@ -8157,7 +5896,6 @@ "yargs-parser": { "version": "9.0.2", "bundled": true, - "dev": true, "requires": { "camelcase": "4.1.0" } @@ -8167,15 +5905,13 @@ "yargs-parser": { "version": "8.1.0", "bundled": true, - "dev": true, "requires": { "camelcase": "4.1.0" }, "dependencies": { "camelcase": { "version": "4.1.0", - "bundled": true, - "dev": true + "bundled": true } } } diff --git a/package.json b/package.json index e582f130..b1606b27 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.5.10", + "version": "1.5.11", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", diff --git a/src/RawTransactions.js b/src/RawTransactions.js index 9495f9ec..6ea1096b 100644 --- a/src/RawTransactions.js +++ b/src/RawTransactions.js @@ -10,6 +10,9 @@ class RawTransactions { // Parameter #1—serialized transaction in hex // Result—the decoded transaction + if(typeof hex !== 'string') { + hex = JSON.stringify(hex); + } return axios.get(`${this.restURL}rawtransactions/decodeRawTransaction/${hex}`) .then((response) => { @@ -20,15 +23,17 @@ class RawTransactions { }); } - decodeScript(hex) { + decodeScript(script) { // decodes a hex-encoded P2SH redeem script. // Parameter #1—a hex-encoded redeem script // Result—the decoded script - // console.log('decode script called *****', redeemScript) + if(typeof script !== 'string') { + script = JSON.stringify(script); + } - return axios.get(`${this.restURL}rawtransactions/decodeScript/${hex}`) + return axios.get(`${this.restURL}rawtransactions/decodeScript/${script}`) .then((response) => { return response.data; }) @@ -54,6 +59,10 @@ class RawTransactions { // Result (if verbose is not set or set to false): // "data" (string) The serialized, hex-encoded data for 'txid' + if(typeof txid !== 'string') { + txid = JSON.stringify(txid); + } + return axios.get(`${this.restURL}rawtransactions/getRawTransaction/${txid}?verbose=${verbose}`) .then((response) => { return response.data; diff --git a/typings/Socket.d.ts b/typings/Socket.d.ts index 399eb3cc..9a6dfba6 100644 --- a/typings/Socket.d.ts +++ b/typings/Socket.d.ts @@ -1,6 +1,6 @@ declare interface Socket { - new(restURL?: string): Socket - listen(endpoint: string, cb: any): void; + new(restURL?: string): Socket + listen(endpoint: string, cb: any): void; } -export default Socket; \ No newline at end of file +export default Socket; From 192e1fde6f3962e737027f26b19886474b273f09 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 21 Aug 2018 12:47:53 -0700 Subject: [PATCH 065/480] Update tests --- test/RawTransactions.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/RawTransactions.js b/test/RawTransactions.js index ce339b3b..5a484aae 100644 --- a/test/RawTransactions.js +++ b/test/RawTransactions.js @@ -26,7 +26,7 @@ describe('#RawTransactions', () => { const resolved = new Promise((r) => r({ data: data })); sandbox.stub(axios, 'get').returns(resolved); - BITBOX.RawTransactions.decodeRawTransaction('02000000000000000000') + BITBOX.RawTransactions.decodeRawTransaction(['02000000000000000000']) .then((result) => { assert.deepEqual( data, @@ -52,7 +52,7 @@ describe('#RawTransactions', () => { const resolved = new Promise((r) => r({ data: data })); sandbox.stub(axios, 'get').returns(resolved); - BITBOX.RawTransactions.decodeScript('6a105361746f736869204e616b616d6f746f') + BITBOX.RawTransactions.decodeScript(['6a105361746f736869204e616b616d6f746f']) .then((result) => { assert.deepEqual( data, @@ -74,7 +74,7 @@ describe('#RawTransactions', () => { const resolved = new Promise((r) => r({ data: data })); sandbox.stub(axios, 'get').returns(resolved); - BITBOX.RawTransactions.getRawTransaction('808d617eccaad4f1397fe07a06ec5ed15a0821cf22a3e0931c0c92aef9e572b6') + BITBOX.RawTransactions.getRawTransaction(['808d617eccaad4f1397fe07a06ec5ed15a0821cf22a3e0931c0c92aef9e572b6']) .then((result) => { assert.deepEqual( data, @@ -96,7 +96,7 @@ describe('#RawTransactions', () => { const resolved = new Promise((r) => r({ data: data })); sandbox.stub(axios, 'post').returns(resolved); - BITBOX.RawTransactions.sendRawTransaction('020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000') + BITBOX.RawTransactions.sendRawTransaction(['020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000']) .then((result) => { assert.equal( data, From 342d671b244f48e508c52885fef5ffa7cf93e516 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 21 Aug 2018 15:52:46 -0700 Subject: [PATCH 066/480] Stringify arrays --- index.js | 2 +- lib/Blockchain.js | 15 +++++++++++++++ package.json | 2 +- src/Blockchain.js | 15 +++++++++++++++ 4 files changed, 32 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 1a48adb0..9f0b3927 100755 --- a/index.js +++ b/index.js @@ -18,7 +18,7 @@ let clone = require('git-clone'); let cmd = require('node-cmd'); program - .version('1.5.11'); + .version('1.5.12'); program .command('new ') diff --git a/lib/Blockchain.js b/lib/Blockchain.js index 09c26307..676d8bed 100644 --- a/lib/Blockchain.js +++ b/lib/Blockchain.js @@ -113,6 +113,9 @@ var Blockchain = function () { // // Result: // "hash" (string) The block hash + if (typeof height !== 'string') { + height = JSON.stringify(height); + } return _axios2.default.get(this.restURL + 'blockchain/getBlockHash/' + height).then(function (response) { return response.data; }).catch(function (error) { @@ -152,6 +155,9 @@ var Blockchain = function () { // // Result (for verbose=false): // "data" (string) A string that is serialized, hex-encoded data for block 'hash'. + if (typeof hash !== 'string') { + hash = JSON.stringify(hash); + } return _axios2.default.get(this.restURL + 'blockchain/getBlockHeader/' + hash + '?verbose=' + verbose).then(function (response) { return response.data; }).catch(function (error) { @@ -244,6 +250,9 @@ var Blockchain = function () { // ... ] // }, ... // } + if (typeof txid !== 'string') { + txid = JSON.stringify(txid); + } return _axios2.default.get(this.restURL + 'blockchain/getMempoolAncestors/' + txid + '?verbose=' + verbose).then(function (response) { return response.data; }).catch(function (error) { @@ -288,6 +297,9 @@ var Blockchain = function () { // ... ] // }, ... // } + if (typeof txid !== 'string') { + txid = JSON.stringify(txid); + } return _axios2.default.get(this.restURL + 'blockchain/getMempoolDescendants/' + txid + '?verbose=' + verbose).then(function (response) { return response.data; @@ -322,6 +334,9 @@ var Blockchain = function () { // "transactionid", (string) parent transaction id // ... ] // } + if (typeof txid !== 'string') { + txid = JSON.stringify(txid); + } return _axios2.default.get(this.restURL + 'blockchain/getMempoolEntry/' + txid).then(function (response) { return response.data; diff --git a/package.json b/package.json index b1606b27..59a2f049 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.5.11", + "version": "1.5.12", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", diff --git a/src/Blockchain.js b/src/Blockchain.js index f45ab220..6665835a 100644 --- a/src/Blockchain.js +++ b/src/Blockchain.js @@ -94,6 +94,9 @@ class Blockchain { // // Result: // "hash" (string) The block hash + if(typeof height !== 'string') { + height = JSON.stringify(height); + } return axios.get(`${this.restURL}blockchain/getBlockHash/${height}`) .then((response) => { return response.data; @@ -132,6 +135,9 @@ class Blockchain { // // Result (for verbose=false): // "data" (string) A string that is serialized, hex-encoded data for block 'hash'. + if(typeof hash !== 'string') { + hash = JSON.stringify(hash); + } return axios.get(`${this.restURL}blockchain/getBlockHeader/${hash}?verbose=${verbose}`) .then((response) => { return response.data; @@ -225,6 +231,9 @@ class Blockchain { // ... ] // }, ... // } + if(typeof txid !== 'string') { + txid = JSON.stringify(txid); + } return axios.get(`${this.restURL}blockchain/getMempoolAncestors/${txid}?verbose=${verbose}`) .then((response) => { return response.data; @@ -268,6 +277,9 @@ class Blockchain { // ... ] // }, ... // } + if(typeof txid !== 'string') { + txid = JSON.stringify(txid); + } return axios.get(`${this.restURL}blockchain/getMempoolDescendants/${txid}?verbose=${verbose}`) .then((response) => { @@ -303,6 +315,9 @@ class Blockchain { // "transactionid", (string) parent transaction id // ... ] // } + if(typeof txid !== 'string') { + txid = JSON.stringify(txid); + } return axios.get(`${this.restURL}blockchain/getMempoolEntry/${txid}`) .then((response) => { From 839657ccedc2a19993a5fe93df5952051464bd2c Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Thu, 23 Aug 2018 21:43:02 -0700 Subject: [PATCH 067/480] Refactor to use async/await. --- index.js | 4 +- lib/Address.js | 30 +++--- lib/Block.js | 9 +- lib/Blockchain.js | 171 ++++++++++++++++++--------------- lib/Control.js | 18 ++-- lib/Generating.js | 9 +- lib/Mining.js | 38 ++++---- lib/Network.js | 81 +++++++++------- lib/Price.js | 9 +- lib/RawTransactions.js | 36 +++---- lib/Transaction.js | 9 +- lib/Util.js | 9 +- package.json | 2 +- src/Address.js | 36 +++---- src/Block.js | 11 +-- src/Blockchain.js | 209 +++++++++++++++++++---------------------- src/Control.js | 22 ++--- src/Generating.js | 11 +-- src/Mining.js | 46 +++++---- src/Network.js | 99 +++++++++---------- src/Price.js | 11 +-- src/RawTransactions.js | 44 ++++----- src/Transaction.js | 11 +-- src/Util.js | 11 +-- 24 files changed, 471 insertions(+), 465 deletions(-) diff --git a/index.js b/index.js index 9f0b3927..47705348 100755 --- a/index.js +++ b/index.js @@ -18,7 +18,7 @@ let clone = require('git-clone'); let cmd = require('node-cmd'); program - .version('1.5.12'); + .version('1.6.0'); program .command('new ') @@ -34,7 +34,7 @@ program let config; let environment = fetchOption('environment=development', config, options); - let restURL = fetchOption('restURL=https://rest.bitcoin.com/v1/', config, options); + let restURL = fetchOption('restURL=https://trest.bitcoin.com/v1/', config, options); if(options && options.scaffold) { let scaffold = options.scaffold.toLowerCase(); diff --git a/lib/Address.js b/lib/Address.js index ab308e8e..d1b2c2ac 100644 --- a/lib/Address.js +++ b/lib/Address.js @@ -145,39 +145,45 @@ var Address = function () { } }, { key: 'details', - value: function details(address) { + value: async function details(address) { if (typeof address !== 'string') { address = JSON.stringify(address); } - return _axios2.default.get(this.restURL + 'address/details/' + address).then(function (response) { + + try { + var response = await _axios2.default.get(this.restURL + 'address/details/' + address); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'utxo', - value: function utxo(address) { + value: async function utxo(address) { if (typeof address !== 'string') { address = JSON.stringify(address); } - return _axios2.default.get(this.restURL + 'address/utxo/' + address).then(function (response) { + + try { + var response = await _axios2.default.get(this.restURL + 'address/utxo/' + address); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'unconfirmed', - value: function unconfirmed(address) { + value: async function unconfirmed(address) { if (typeof address !== 'string') { address = JSON.stringify(address); } - return _axios2.default.get(this.restURL + 'address/unconfirmed/' + address).then(function (response) { + + try { + var response = await _axios2.default.get(this.restURL + 'address/unconfirmed/' + address); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }]); diff --git a/lib/Block.js b/lib/Block.js index 4f09336e..135852b3 100644 --- a/lib/Block.js +++ b/lib/Block.js @@ -23,12 +23,13 @@ var Block = function () { _createClass(Block, [{ key: 'details', - value: function details(id) { - return _axios2.default.get(this.restURL + 'block/details/' + id).then(function (response) { + value: async function details(id) { + try { + var response = await _axios2.default.get(this.restURL + 'block/details/' + id); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }]); diff --git a/lib/Blockchain.js b/lib/Blockchain.js index 676d8bed..de04fb17 100644 --- a/lib/Blockchain.js +++ b/lib/Blockchain.js @@ -23,20 +23,21 @@ var Blockchain = function () { _createClass(Blockchain, [{ key: 'getBestBlockHash', - value: function getBestBlockHash() { + value: async function getBestBlockHash() { // Returns the hash of the best (tip) block in the longest blockchain. // // Result: // "hex" (string) the block hash hex encoded - return _axios2.default.get(this.restURL + 'blockchain/getBestBlockHash').then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'blockchain/getBestBlockHash'); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'getBlock', - value: function getBlock(blockhash) { + value: async function getBlock(blockhash) { var verbose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; // If verbose is false, returns a string that is serialized, hex-encoded data for block 'hash'. @@ -72,38 +73,41 @@ var Blockchain = function () { // Result (for verbose=false): // "data" (string) A string that is serialized, hex-encoded data for block 'hash'. - return _axios2.default.get(this.restURL + 'blockchain/getBlock/' + blockhash + '?verbose=' + verbose).then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'blockchain/getBlock/' + blockhash + '?verbose=' + verbose); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'getBlockchainInfo', - value: function getBlockchainInfo() { + value: async function getBlockchainInfo() { // Returns an object containing various state info regarding blockchain processing. - return _axios2.default.get(this.restURL + 'blockchain/getBlockchainInfo').then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'blockchain/getBlockchainInfo'); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'getBlockCount', - value: function getBlockCount() { + value: async function getBlockCount() { // Returns the number of blocks in the longest blockchain. // // Result: // n (numeric) The current block count - return _axios2.default.get(this.restURL + 'blockchain/getBlockCount').then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'blockchain/getBlockCount'); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'getBlockHash', - value: function getBlockHash() { + value: async function getBlockHash() { var height = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; // Returns hash of block in best-block-chain at height provided. @@ -116,15 +120,16 @@ var Blockchain = function () { if (typeof height !== 'string') { height = JSON.stringify(height); } - return _axios2.default.get(this.restURL + 'blockchain/getBlockHash/' + height).then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'blockchain/getBlockHash/' + height); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'getBlockHeader', - value: function getBlockHeader(hash) { + value: async function getBlockHeader(hash) { var verbose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; @@ -158,15 +163,16 @@ var Blockchain = function () { if (typeof hash !== 'string') { hash = JSON.stringify(hash); } - return _axios2.default.get(this.restURL + 'blockchain/getBlockHeader/' + hash + '?verbose=' + verbose).then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'blockchain/getBlockHeader/' + hash + '?verbose=' + verbose); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'getChainTips', - value: function getChainTips() { + value: async function getChainTips() { // Return information about all known tips in the block tree, including the main chain as well as orphaned branches. // // Result: @@ -191,30 +197,32 @@ var Blockchain = function () { // 4. "valid-fork" This branch is not part of the active chain, but is fully validated // 5. "active" This is the tip of the active main chain, which is certainly valid - return _axios2.default.get(this.restURL + 'blockchain/getChainTips').then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'blockchain/getChainTips'); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'getDifficulty', - value: function getDifficulty() { + value: async function getDifficulty() { // Returns the proof-of-work difficulty as a multiple of the minimum difficulty. // // Result: // n.nnn (numeric) the proof-of-work difficulty as a multiple of the minimum difficulty. - return _axios2.default.get(this.restURL + 'blockchain/getDifficulty').then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'blockchain/getDifficulty'); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'getMempoolAncestors', - value: function getMempoolAncestors(txid) { + value: async function getMempoolAncestors(txid) { var verbose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; // If txid is in the mempool, returns all in-mempool ancestors. @@ -253,15 +261,16 @@ var Blockchain = function () { if (typeof txid !== 'string') { txid = JSON.stringify(txid); } - return _axios2.default.get(this.restURL + 'blockchain/getMempoolAncestors/' + txid + '?verbose=' + verbose).then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'blockchain/getMempoolAncestors/' + txid + '?verbose=' + verbose); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'getMempoolDescendants', - value: function getMempoolDescendants(txid) { + value: async function getMempoolDescendants(txid) { var verbose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; // If txid is in the mempool, returns all in-mempool descendants. @@ -301,15 +310,16 @@ var Blockchain = function () { txid = JSON.stringify(txid); } - return _axios2.default.get(this.restURL + 'blockchain/getMempoolDescendants/' + txid + '?verbose=' + verbose).then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'blockchain/getMempoolDescendants/' + txid + '?verbose=' + verbose); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'getMempoolEntry', - value: function getMempoolEntry(txid) { + value: async function getMempoolEntry(txid) { // Returns mempool data for given transaction // // Arguments: @@ -338,15 +348,16 @@ var Blockchain = function () { txid = JSON.stringify(txid); } - return _axios2.default.get(this.restURL + 'blockchain/getMempoolEntry/' + txid).then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'blockchain/getMempoolEntry/' + txid); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'getMempoolInfo', - value: function getMempoolInfo() { + value: async function getMempoolInfo() { // Returns details on the active state of the TX memory pool. // // Result: @@ -358,15 +369,16 @@ var Blockchain = function () { // "mempoolminfee": xxxxx (numeric) Minimum fee for tx to be accepted // } - return _axios2.default.get(this.restURL + 'blockchain/getMempoolInfo').then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'blockchain/getMempoolInfo'); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'getRawMempool', - value: function getRawMempool() { + value: async function getRawMempool() { var verbose = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; // Returns all transaction ids in memory pool as a json array of string transaction ids. @@ -401,15 +413,16 @@ var Blockchain = function () { // ... ] // }, ... // } - return _axios2.default.get(this.restURL + 'blockchain/getRawMempool?vebose=' + verbose).then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'blockchain/getRawMempool?vebose=' + verbose); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'getTxOut', - value: function getTxOut(txid, n) { + value: async function getTxOut(txid, n) { var include_mempool = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; // Returns details about an unspent transaction output. @@ -438,15 +451,16 @@ var Blockchain = function () { // } // - return _axios2.default.get(this.restURL + 'blockchain/getTxOut/' + txid + '/n?include_mempool=' + include_mempool).then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'blockchain/getTxOut/' + txid + '/n?include_mempool=' + include_mempool); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'getTxOutProof', - value: function getTxOutProof(txids, blockhash) { + value: async function getTxOutProof(txids, blockhash) { var path = this.restURL + 'blockchain/getTxOutProof/' + txids; if (blockhash) { path = path + '?blockhash=' + blockhash; @@ -468,15 +482,16 @@ var Blockchain = function () { // // Result: // "data" (string) A string that is a serialized, hex-encoded data for the proof. - return _axios2.default.get(path).then(function (response) { + try { + var response = await _axios2.default.get(path); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'preciousBlock', - value: function preciousBlock(blockhash) { + value: async function preciousBlock(blockhash) { // Treats a block as if it were received before others with the same work. // // A later preciousblock call can override the effect of an earlier one. @@ -486,30 +501,32 @@ var Blockchain = function () { // Arguments: // 1. "blockhash" (string, required) the hash of the block to mark as precious - return _axios2.default.get(this.restURL + 'blockchain/preciousBlock/' + blockhash).then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'blockchain/preciousBlock/' + blockhash); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'pruneBlockchain', - value: function pruneBlockchain(height) { + value: async function pruneBlockchain(height) { // Arguments: // 1. "height" (numeric, required) The block height to prune up to. May be set to a discrete height, or a unix timestamp // to prune blocks whose block time is at least 2 hours older than the provided timestamp. // // Result: // n (numeric) Height of the last block pruned. - return _axios2.default.post(this.restURL + 'blockchain/pruneBlockchain/' + height).then(function (response) { + try { + var response = await _axios2.default.post(this.restURL + 'blockchain/pruneBlockchain/' + height); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'verifyChain', - value: function verifyChain() { + value: async function verifyChain() { var checklevel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 3; var nblocks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6; @@ -521,15 +538,16 @@ var Blockchain = function () { // // Result: // true|false (boolean) Verified or not - return _axios2.default.get(this.restURL + 'blockchain/verifyChain?checklevel=' + checklevel + '&nblocks=' + nblocks).then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'blockchain/verifyChain?checklevel=' + checklevel + '&nblocks=' + nblocks); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'verifyTxOutProof', - value: function verifyTxOutProof(proof) { + value: async function verifyTxOutProof(proof) { // Verifies that a proof points to a transaction in a block, returning the transaction it commits to // and throwing an RPC error if the block is not in our best chain // @@ -539,11 +557,12 @@ var Blockchain = function () { // Result: // ["txid"] (array, strings) The txid(s) which the proof commits to, or empty array if the proof is invalid - return _axios2.default.get(this.restURL + 'blockchain/verifyTxOutProof/proof').then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'blockchain/verifyTxOutProof/proof'); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }]); diff --git a/lib/Control.js b/lib/Control.js index 0f3cdbf8..52fee216 100644 --- a/lib/Control.js +++ b/lib/Control.js @@ -23,7 +23,7 @@ var Control = function () { _createClass(Control, [{ key: 'getInfo', - value: function getInfo() { + value: async function getInfo() { // DEPRECATED. Returns an object containing various state info. // // Result: @@ -46,15 +46,16 @@ var Control = function () { // "errors": "..." (string) any error messages // } - return _axios2.default.get(this.restURL + 'control/getInfo').then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'control/getInfo'); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'getMemoryInfo', - value: function getMemoryInfo() { + value: async function getMemoryInfo() { // Returns an object containing information about memory usage. // @@ -71,11 +72,12 @@ var Control = function () { // } // - return _axios2.default.get(this.restURL + 'control/getMemoryInfo').then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'control/getMemoryInfo'); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } // // stop() { diff --git a/lib/Generating.js b/lib/Generating.js index 02e4908f..ed354cf1 100644 --- a/lib/Generating.js +++ b/lib/Generating.js @@ -23,7 +23,7 @@ var Generating = function () { _createClass(Generating, [{ key: 'generateToAddress', - value: function generateToAddress(blocks, address) { + value: async function generateToAddress(blocks, address) { var maxtries = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1000000; @@ -37,11 +37,12 @@ var Generating = function () { // Result: // [ blockhashes ] (array) hashes of blocks generated // - return _axios2.default.post(this.restURL + 'generating/generateToAddress/' + blocks + '/' + address + '?maxtries=' + maxtries).then(function (response) { + try { + var response = await _axios2.default.post(this.restURL + 'generating/generateToAddress/' + blocks + '/' + address + '?maxtries=' + maxtries); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }]); diff --git a/lib/Mining.js b/lib/Mining.js index 8f2d5d90..52816561 100644 --- a/lib/Mining.js +++ b/lib/Mining.js @@ -23,7 +23,7 @@ var Mining = function () { _createClass(Mining, [{ key: 'getBlockTemplate', - value: function getBlockTemplate(template_request) { + value: async function getBlockTemplate(template_request) { // If the request parameters include a 'mode' key, that is used to explicitly select between the default 'template' request or a 'proposal'. // It returns data needed to construct a block to work on. @@ -47,15 +47,16 @@ var Mining = function () { // ] // } - return _axios2.default.get(this.restURL + 'mining/getBlockTemplate/' + template_request).then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'mining/getBlockTemplate/' + template_request); return response.data; - }).catch(function (error) { - return JSON.stringify(error.response.data.message); - }); + } catch (error) { + return JSON.stringify(error.response.data.error.message); + } } }, { key: 'getMiningInfo', - value: function getMiningInfo() { + value: async function getMiningInfo() { // Returns a json object containing mining-related information. // Result: // { @@ -69,15 +70,16 @@ var Mining = function () { // "chain": "xxxx", (string) current network name as defined in BIP70 (main, test, regtest) // } - return _axios2.default.get(this.restURL + 'mining/getMiningInfo').then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'mining/getMiningInfo'); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'getNetworkHashps', - value: function getNetworkHashps() { + value: async function getNetworkHashps() { var nblocks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 120; var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; @@ -91,15 +93,16 @@ var Mining = function () { // // Result: // x (numeric) Hashes per second estimated - return _axios2.default.get(this.restURL + 'mining/getNetworkHashps?nblocks=' + nblocks + '&height=' + height).then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'mining/getNetworkHashps?nblocks=' + nblocks + '&height=' + height); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'submitBlock', - value: function submitBlock(hex, parameters) { + value: async function submitBlock(hex, parameters) { // Attempts to submit new block to network. // The 'jsonparametersobject' parameter is currently ignored. // See https://en.bitcoin.it/wiki/BIP_0022 for full specification. @@ -115,11 +118,12 @@ var Mining = function () { if (parameters) { path = path + '?parameters=' + parameters; } - return _axios2.default.post(path).then(function (response) { + try { + var response = await _axios2.default.post(path); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }]); diff --git a/lib/Network.js b/lib/Network.js index b831261f..a91568b6 100644 --- a/lib/Network.js +++ b/lib/Network.js @@ -23,7 +23,7 @@ var Network = function () { _createClass(Network, [{ key: 'addNode', - value: function addNode(node, command) { + value: async function addNode(node, command) { // Attempts add or remove a node from the addnode list. // Or try a connection to a node once. // @@ -32,15 +32,16 @@ var Network = function () { // 2. "command" (string, required) 'add' to add a node to the list, 'remove' to remove a node from the list, 'onetry' to try a connection to the node once // - return _axios2.default.post(this.restURL + 'network/addNode/' + node + '/' + command).then(function (response) { + try { + var response = await _axios2.default.post(this.restURL + 'network/addNode/' + node + '/' + command); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'clearBanned', - value: function clearBanned() { + value: async function clearBanned() { //The clearbanned RPC clears list of banned nodes. // Parameters: none @@ -48,15 +49,16 @@ var Network = function () { // Result—null on success // JSON null when the list was cleared - return _axios2.default.post(this.restURL + 'clearBanned').then(function (response) { + try { + var response = await _axios2.default.post(this.restURL + 'clearBanned'); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'disconnectNode', - value: function disconnectNode(configuration) { + value: async function disconnectNode(configuration) { // Immediately disconnects from the specified peer node. // // Strictly one out of 'configuration.address' and 'configuration.nodeid' can be provided to identify the node. @@ -68,15 +70,16 @@ var Network = function () { // Properties // 1. "address" (string, optional) The IP address/port of the node // 2. "nodeid" (number, optional) The node ID (see getpeerinfo for node IDs) - return _axios2.default.post(this.restURL + 'disconnectNode/' + configuration).then(function (response) { + try { + var response = await _axios2.default.post(this.restURL + 'disconnectNode/' + configuration); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'getAddedNodeInfo', - value: function getAddedNodeInfo(node) { + value: async function getAddedNodeInfo(node) { // Returns information about the given added node, or all added nodes // (note that onetry addnodes are not listed here) // @@ -102,29 +105,31 @@ var Network = function () { path = path + '?node=' + node; } - return _axios2.default.get(path).then(function (response) { + try { + var response = await _axios2.default.get(path); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'getConnectionCount', - value: function getConnectionCount() { + value: async function getConnectionCount() { // Returns the number of connections to other nodes. // // Result: // n (numeric) The connection count - return _axios2.default.get(this.restURL + 'network/getConnectionCount').then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'network/getConnectionCount'); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'getNetTotals', - value: function getNetTotals() { + value: async function getNetTotals() { // Returns information about network traffic, including bytes in, bytes out, and current time. // // Result: @@ -143,15 +148,16 @@ var Network = function () { // } // } - return _axios2.default.get(this.restURL + 'network/getNetTotals').then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'network/getNetTotals'); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'getNetworkInfo', - value: function getNetworkInfo() { + value: async function getNetworkInfo() { // Returns an object containing various state info regarding P2P networking. // // Result: @@ -187,15 +193,16 @@ var Network = function () { // "warnings": "..." (string) any network warnings // } - return _axios2.default.get(this.restURL + 'network/getNetworkInfo').then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'network/getNetworkInfo'); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'getPeerInfo', - value: function getPeerInfo() { + value: async function getPeerInfo() { // Returns data about each connected network node as a json array of objects. // // Result: @@ -240,11 +247,12 @@ var Network = function () { // ,... // ] - return _axios2.default.get(this.restURL + 'network/getPeerInfo').then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'network/getPeerInfo'); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } // // listBanned() { @@ -260,16 +268,17 @@ var Network = function () { }, { key: 'ping', - value: function ping() { + value: async function ping() { // Requests that a ping be sent to all other nodes, to measure ping time. // Results provided in getpeerinfo, pingtime and pingwait fields are decimal seconds. // Ping command is handled in queue with all other commands, so it measures processing backlog, not just network ping. - return _axios2.default.get(this.restURL + 'network/ping').then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'network/ping'); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } // // setBan(subnet, command, bantime, absolute) { diff --git a/lib/Price.js b/lib/Price.js index 730098cb..02aa65dc 100644 --- a/lib/Price.js +++ b/lib/Price.js @@ -21,18 +21,19 @@ var Price = function () { _createClass(Price, [{ key: 'current', - value: function current() { + value: async function current() { var currency = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'all'; - return _axios2.default.get('https://www.blocktrail.com/BCC/json/blockchain/price').then(function (response) { + try { + var response = await _axios2.default.get('https://www.blocktrail.com/BCC/json/blockchain/price'); if (currency === 'all') { return response.data; } else { return response.data[currency.toUpperCase()]; } - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }]); diff --git a/lib/RawTransactions.js b/lib/RawTransactions.js index e3ae1368..7ac1a277 100644 --- a/lib/RawTransactions.js +++ b/lib/RawTransactions.js @@ -23,7 +23,7 @@ var RawTransactions = function () { _createClass(RawTransactions, [{ key: 'decodeRawTransaction', - value: function decodeRawTransaction(hex) { + value: async function decodeRawTransaction(hex) { // decodes a serialized transaction hex string into a JSON object describing the transaction. // Parameter #1—serialized transaction in hex @@ -33,15 +33,16 @@ var RawTransactions = function () { hex = JSON.stringify(hex); } - return _axios2.default.get(this.restURL + 'rawtransactions/decodeRawTransaction/' + hex).then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'rawtransactions/decodeRawTransaction/' + hex); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'decodeScript', - value: function decodeScript(script) { + value: async function decodeScript(script) { // decodes a hex-encoded P2SH redeem script. // Parameter #1—a hex-encoded redeem script @@ -51,15 +52,16 @@ var RawTransactions = function () { script = JSON.stringify(script); } - return _axios2.default.get(this.restURL + 'rawtransactions/decodeScript/' + script).then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'rawtransactions/decodeScript/' + script); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'getRawTransaction', - value: function getRawTransaction(txid) { + value: async function getRawTransaction(txid) { var verbose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; // NOTE: By default this function only works for mempool transactions. If the -txindex option is @@ -82,15 +84,16 @@ var RawTransactions = function () { txid = JSON.stringify(txid); } - return _axios2.default.get(this.restURL + 'rawtransactions/getRawTransaction/' + txid + '?verbose=' + verbose).then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'rawtransactions/getRawTransaction/' + txid + '?verbose=' + verbose); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }, { key: 'sendRawTransaction', - value: function sendRawTransaction(hex) { + value: async function sendRawTransaction(hex) { var allowhighfees = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; // Submits raw transaction (serialized, hex-encoded) to local node and network. @@ -108,11 +111,12 @@ var RawTransactions = function () { hex = JSON.stringify(hex); } - return _axios2.default.post(this.restURL + 'rawtransactions/sendRawTransaction/' + hex + '?allowhighfees=' + allowhighfees).then(function (response) { + try { + var response = await _axios2.default.post(this.restURL + 'rawtransactions/sendRawTransaction/' + hex + '?allowhighfees=' + allowhighfees); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }]); diff --git a/lib/Transaction.js b/lib/Transaction.js index 6075222a..1d7ef3a0 100644 --- a/lib/Transaction.js +++ b/lib/Transaction.js @@ -49,16 +49,17 @@ var Transaction = function () { } }, { key: 'details', - value: function details(txid) { + value: async function details(txid) { if (typeof txid !== 'string') { txid = JSON.stringify(txid); } - return _axios2.default.get(this.restURL + 'transaction/details/' + txid).then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'transaction/details/' + txid); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }]); diff --git a/lib/Util.js b/lib/Util.js index 7cecc053..c6b31988 100644 --- a/lib/Util.js +++ b/lib/Util.js @@ -23,7 +23,7 @@ var Util = function () { _createClass(Util, [{ key: 'validateAddress', - value: function validateAddress(address) { + value: async function validateAddress(address) { // Return information about the given bitcoin address. // // Arguments: @@ -44,11 +44,12 @@ var Util = function () { // "hdkeypath" : "keypath" (string, optional) The HD keypath if the key is HD and available // "hdmasterkeyid" : "" (string, optional) The Hash160 of the HD master pubkey // } - return _axios2.default.get(this.restURL + 'util/validateAddress/' + address).then(function (response) { + try { + var response = await _axios2.default.get(this.restURL + 'util/validateAddress/' + address); return response.data; - }).catch(function (error) { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } }]); diff --git a/package.json b/package.json index 59a2f049..0996c010 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.5.12", + "version": "1.6.0", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", diff --git a/src/Address.js b/src/Address.js index 299f0b7d..f8a418aa 100644 --- a/src/Address.js +++ b/src/Address.js @@ -90,43 +90,43 @@ class Address { return bchaddr.toCashAddress(Bitcoin.address.fromOutputScript(scriptPubKey)); } - details(address) { + async details(address) { if(typeof address !== 'string') { address = JSON.stringify(address); } - return axios.get(`${this.restURL}address/details/${address}`) - .then((response) => { + + try { + let response = await axios.get(`${this.restURL}address/details/${address}`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - utxo(address) { + async utxo(address) { if(typeof address !== 'string') { address = JSON.stringify(address); } - return axios.get(`${this.restURL}address/utxo/${address}`) - .then((response) => { + + try { + let response = await axios.get(`${this.restURL}address/utxo/${address}`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - unconfirmed(address) { + async unconfirmed(address) { if(typeof address !== 'string') { address = JSON.stringify(address); } - return axios.get(`${this.restURL}address/unconfirmed/${address}`) - .then((response) => { + + try { + let response = await axios.get(`${this.restURL}address/unconfirmed/${address}`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } } diff --git a/src/Block.js b/src/Block.js index c637dc87..bcce85ff 100644 --- a/src/Block.js +++ b/src/Block.js @@ -4,14 +4,13 @@ class Block { this.restURL = restURL; } - details(id) { - return axios.get(`${this.restURL}block/details/${id}`) - .then((response) => { + async details(id) { + try { + let response = await axios.get(`${this.restURL}block/details/${id}`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } } diff --git a/src/Blockchain.js b/src/Blockchain.js index 6665835a..e63f1530 100644 --- a/src/Blockchain.js +++ b/src/Blockchain.js @@ -4,21 +4,20 @@ class Blockchain { this.restURL = restURL; } - getBestBlockHash() { + async getBestBlockHash() { // Returns the hash of the best (tip) block in the longest blockchain. // // Result: // "hex" (string) the block hash hex encoded - return axios.get(`${this.restURL}blockchain/getBestBlockHash`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}blockchain/getBestBlockHash`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - getBlock(blockhash, verbose = true) { + async getBlock(blockhash, verbose = true) { // If verbose is false, returns a string that is serialized, hex-encoded data for block 'hash'. // If verbose is true, returns an Object with information about block . // @@ -52,41 +51,38 @@ class Blockchain { // Result (for verbose=false): // "data" (string) A string that is serialized, hex-encoded data for block 'hash'. - return axios.get(`${this.restURL}blockchain/getBlock/${blockhash}?verbose=${verbose}`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}blockchain/getBlock/${blockhash}?verbose=${verbose}`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - getBlockchainInfo() { + async getBlockchainInfo() { // Returns an object containing various state info regarding blockchain processing. - return axios.get(`${this.restURL}blockchain/getBlockchainInfo`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}blockchain/getBlockchainInfo`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - getBlockCount() { + async getBlockCount() { // Returns the number of blocks in the longest blockchain. // // Result: // n (numeric) The current block count - return axios.get(`${this.restURL}blockchain/getBlockCount`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}blockchain/getBlockCount`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - getBlockHash(height = 1) { + async getBlockHash(height = 1) { // Returns hash of block in best-block-chain at height provided. // // Arguments: @@ -97,16 +93,15 @@ class Blockchain { if(typeof height !== 'string') { height = JSON.stringify(height); } - return axios.get(`${this.restURL}blockchain/getBlockHash/${height}`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}blockchain/getBlockHash/${height}`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - getBlockHeader(hash, verbose = true) { + async getBlockHeader(hash, verbose = true) { // If verbose is false, returns a string that is serialized, hex-encoded data for blockheader 'hash'. // If verbose is true, returns an Object with information about blockheader . @@ -138,16 +133,15 @@ class Blockchain { if(typeof hash !== 'string') { hash = JSON.stringify(hash); } - return axios.get(`${this.restURL}blockchain/getBlockHeader/${hash}?verbose=${verbose}`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}blockchain/getBlockHeader/${hash}?verbose=${verbose}`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - getChainTips() { + async getChainTips() { // Return information about all known tips in the block tree, including the main chain as well as orphaned branches. // // Result: @@ -172,32 +166,30 @@ class Blockchain { // 4. "valid-fork" This branch is not part of the active chain, but is fully validated // 5. "active" This is the tip of the active main chain, which is certainly valid - return axios.get(`${this.restURL}blockchain/getChainTips`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}blockchain/getChainTips`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - getDifficulty() { + async getDifficulty() { // Returns the proof-of-work difficulty as a multiple of the minimum difficulty. // // Result: // n.nnn (numeric) the proof-of-work difficulty as a multiple of the minimum difficulty. - return axios.get(`${this.restURL}blockchain/getDifficulty`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}blockchain/getDifficulty`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - getMempoolAncestors(txid, verbose = false) { + async getMempoolAncestors(txid, verbose = false) { // If txid is in the mempool, returns all in-mempool ancestors. // // Arguments: @@ -234,16 +226,15 @@ class Blockchain { if(typeof txid !== 'string') { txid = JSON.stringify(txid); } - return axios.get(`${this.restURL}blockchain/getMempoolAncestors/${txid}?verbose=${verbose}`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}blockchain/getMempoolAncestors/${txid}?verbose=${verbose}`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - getMempoolDescendants(txid, verbose = false) { + async getMempoolDescendants(txid, verbose = false) { // If txid is in the mempool, returns all in-mempool descendants. // // Arguments: @@ -281,16 +272,15 @@ class Blockchain { txid = JSON.stringify(txid); } - return axios.get(`${this.restURL}blockchain/getMempoolDescendants/${txid}?verbose=${verbose}`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}blockchain/getMempoolDescendants/${txid}?verbose=${verbose}`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - getMempoolEntry(txid) { + async getMempoolEntry(txid) { // Returns mempool data for given transaction // // Arguments: @@ -319,16 +309,15 @@ class Blockchain { txid = JSON.stringify(txid); } - return axios.get(`${this.restURL}blockchain/getMempoolEntry/${txid}`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}blockchain/getMempoolEntry/${txid}`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - getMempoolInfo() { + async getMempoolInfo() { // Returns details on the active state of the TX memory pool. // // Result: @@ -340,16 +329,15 @@ class Blockchain { // "mempoolminfee": xxxxx (numeric) Minimum fee for tx to be accepted // } - return axios.get(`${this.restURL}blockchain/getMempoolInfo`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}blockchain/getMempoolInfo`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - getRawMempool(verbose = false) { + async getRawMempool(verbose = false) { // Returns all transaction ids in memory pool as a json array of string transaction ids. // // Arguments: @@ -382,16 +370,15 @@ class Blockchain { // ... ] // }, ... // } - return axios.get(`${this.restURL}blockchain/getRawMempool?vebose=${verbose}`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}blockchain/getRawMempool?vebose=${verbose}`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - getTxOut(txid, n, include_mempool = true) { + async getTxOut(txid, n, include_mempool = true) { // Returns details about an unspent transaction output. // // Arguments: @@ -418,16 +405,15 @@ class Blockchain { // } // - return axios.get(`${this.restURL}blockchain/getTxOut/${txid}/n?include_mempool=${include_mempool}`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}blockchain/getTxOut/${txid}/n?include_mempool=${include_mempool}`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - getTxOutProof(txids, blockhash) { + async getTxOutProof(txids, blockhash) { let path = `${this.restURL}blockchain/getTxOutProof/${txids}`; if(blockhash) { path = `${path}?blockhash=${blockhash}` @@ -449,16 +435,15 @@ class Blockchain { // // Result: // "data" (string) A string that is a serialized, hex-encoded data for the proof. - return axios.get(path) - .then((response) => { + try { + let response = await axios.get(path) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - preciousBlock(blockhash) { + async preciousBlock(blockhash) { // Treats a block as if it were received before others with the same work. // // A later preciousblock call can override the effect of an earlier one. @@ -468,32 +453,30 @@ class Blockchain { // Arguments: // 1. "blockhash" (string, required) the hash of the block to mark as precious - return axios.get(`${this.restURL}blockchain/preciousBlock/${blockhash}`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}blockchain/preciousBlock/${blockhash}`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - pruneBlockchain(height) { + async pruneBlockchain(height) { // Arguments: // 1. "height" (numeric, required) The block height to prune up to. May be set to a discrete height, or a unix timestamp // to prune blocks whose block time is at least 2 hours older than the provided timestamp. // // Result: // n (numeric) Height of the last block pruned. - return axios.post(`${this.restURL}blockchain/pruneBlockchain/${height}`) - .then((response) => { + try { + let response = await axios.post(`${this.restURL}blockchain/pruneBlockchain/${height}`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - verifyChain(checklevel = 3, nblocks = 6) { + async verifyChain(checklevel = 3, nblocks = 6) { // Verifies blockchain database. // // Arguments: @@ -502,16 +485,15 @@ class Blockchain { // // Result: // true|false (boolean) Verified or not - return axios.get(`${this.restURL}blockchain/verifyChain?checklevel=${checklevel}&nblocks=${nblocks}`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}blockchain/verifyChain?checklevel=${checklevel}&nblocks=${nblocks}`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - verifyTxOutProof(proof) { + async verifyTxOutProof(proof) { // Verifies that a proof points to a transaction in a block, returning the transaction it commits to // and throwing an RPC error if the block is not in our best chain // @@ -521,13 +503,12 @@ class Blockchain { // Result: // ["txid"] (array, strings) The txid(s) which the proof commits to, or empty array if the proof is invalid - return axios.get(`${this.restURL}blockchain/verifyTxOutProof/proof`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}blockchain/verifyTxOutProof/proof`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } } diff --git a/src/Control.js b/src/Control.js index 9956f96f..39dda419 100644 --- a/src/Control.js +++ b/src/Control.js @@ -4,7 +4,7 @@ class Control { this.restURL = restURL; } - getInfo() { + async getInfo() { // DEPRECATED. Returns an object containing various state info. // // Result: @@ -27,16 +27,15 @@ class Control { // "errors": "..." (string) any error messages // } - return axios.get(`${this.restURL}control/getInfo`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}control/getInfo`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - getMemoryInfo() { + async getMemoryInfo() { // Returns an object containing information about memory usage. // @@ -53,13 +52,12 @@ class Control { // } // - return axios.get(`${this.restURL}control/getMemoryInfo`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}control/getMemoryInfo`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } // // stop() { diff --git a/src/Generating.js b/src/Generating.js index c7ce4cfe..bf8b96f9 100644 --- a/src/Generating.js +++ b/src/Generating.js @@ -4,7 +4,7 @@ class Generating { this.restURL = restURL; } - generateToAddress(blocks, address, maxtries = 1000000) { + async generateToAddress(blocks, address, maxtries = 1000000) { // Mine blocks immediately to a specified address (before the RPC call returns) // @@ -16,13 +16,12 @@ class Generating { // Result: // [ blockhashes ] (array) hashes of blocks generated // - return axios.post(`${this.restURL}generating/generateToAddress/${blocks}/${address}?maxtries=${maxtries}`) - .then((response) => { + try { + let response = await axios.post(`${this.restURL}generating/generateToAddress/${blocks}/${address}?maxtries=${maxtries}`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } } diff --git a/src/Mining.js b/src/Mining.js index ae0ca03d..d1cde954 100644 --- a/src/Mining.js +++ b/src/Mining.js @@ -4,7 +4,7 @@ class Mining { this.restURL = restURL; } - getBlockTemplate(template_request) { + async getBlockTemplate(template_request) { // If the request parameters include a 'mode' key, that is used to explicitly select between the default 'template' request or a 'proposal'. // It returns data needed to construct a block to work on. @@ -28,16 +28,15 @@ class Mining { // ] // } - return axios.get(`${this.restURL}mining/getBlockTemplate/${template_request}`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}mining/getBlockTemplate/${template_request}`) return response.data; - }) - .catch((error) => { - return JSON.stringify(error.response.data.message); - }); + } catch (error) { + return JSON.stringify(error.response.data.error.message); + } } - getMiningInfo() { + async getMiningInfo() { // Returns a json object containing mining-related information. // Result: // { @@ -51,16 +50,15 @@ class Mining { // "chain": "xxxx", (string) current network name as defined in BIP70 (main, test, regtest) // } - return axios.get(`${this.restURL}mining/getMiningInfo`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}mining/getMiningInfo`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - getNetworkHashps(nblocks = 120, height = 1) { + async getNetworkHashps(nblocks = 120, height = 1) { // Returns the estimated network hashes per second based on the last n blocks. // Pass in [blocks] to override # of blocks, -1 specifies since last difficulty change. // Pass in [height] to estimate the network speed at the time when a certain block was found. @@ -71,16 +69,15 @@ class Mining { // // Result: // x (numeric) Hashes per second estimated - return axios.get(`${this.restURL}mining/getNetworkHashps?nblocks=${nblocks}&height=${height}`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}mining/getNetworkHashps?nblocks=${nblocks}&height=${height}`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - submitBlock(hex, parameters) { + async submitBlock(hex, parameters) { // Attempts to submit new block to network. // The 'jsonparametersobject' parameter is currently ignored. // See https://en.bitcoin.it/wiki/BIP_0022 for full specification. @@ -96,13 +93,12 @@ class Mining { if(parameters) { path = `${path}?parameters=${parameters}`; } - return axios.post(path) - .then((response) => { + try { + let response = await axios.post(path) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } } diff --git a/src/Network.js b/src/Network.js index 3997e69a..6bca0121 100644 --- a/src/Network.js +++ b/src/Network.js @@ -4,7 +4,7 @@ class Network { this.restURL = restURL; } - addNode(node, command){ + async addNode(node, command){ // Attempts add or remove a node from the addnode list. // Or try a connection to a node once. // @@ -13,16 +13,15 @@ class Network { // 2. "command" (string, required) 'add' to add a node to the list, 'remove' to remove a node from the list, 'onetry' to try a connection to the node once // - return axios.post(`${this.restURL}network/addNode/${node}/${command}`) - .then((response) => { + try { + let response = await axios.post(`${this.restURL}network/addNode/${node}/${command}`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - clearBanned() { + async clearBanned() { //The clearbanned RPC clears list of banned nodes. // Parameters: none @@ -30,16 +29,15 @@ class Network { // Result—null on success // JSON null when the list was cleared - return axios.post(`${this.restURL}clearBanned`) - .then((response) => { + try { + let response = await axios.post(`${this.restURL}clearBanned`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - disconnectNode(configuration) { + async disconnectNode(configuration) { // Immediately disconnects from the specified peer node. // // Strictly one out of 'configuration.address' and 'configuration.nodeid' can be provided to identify the node. @@ -51,16 +49,15 @@ class Network { // Properties // 1. "address" (string, optional) The IP address/port of the node // 2. "nodeid" (number, optional) The node ID (see getpeerinfo for node IDs) - return axios.post(`${this.restURL}disconnectNode/${configuration}`) - .then((response) => { + try { + let response = await axios.post(`${this.restURL}disconnectNode/${configuration}`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - getAddedNodeInfo(node) { + async getAddedNodeInfo(node) { // Returns information about the given added node, or all added nodes // (note that onetry addnodes are not listed here) // @@ -86,31 +83,29 @@ class Network { path = `${path}?node=${node}`; } - return axios.get(path) - .then((response) => { + try { + let response = await axios.get(path) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - getConnectionCount() { + async getConnectionCount() { // Returns the number of connections to other nodes. // // Result: // n (numeric) The connection count - return axios.get(`${this.restURL}network/getConnectionCount`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}network/getConnectionCount`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - getNetTotals() { + async getNetTotals() { // Returns information about network traffic, including bytes in, bytes out, and current time. // // Result: @@ -129,16 +124,15 @@ class Network { // } // } - return axios.get(`${this.restURL}network/getNetTotals`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}network/getNetTotals`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - getNetworkInfo() { + async getNetworkInfo() { // Returns an object containing various state info regarding P2P networking. // // Result: @@ -174,16 +168,15 @@ class Network { // "warnings": "..." (string) any network warnings // } - return axios.get(`${this.restURL}network/getNetworkInfo`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}network/getNetworkInfo`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - getPeerInfo() { + async getPeerInfo() { // Returns data about each connected network node as a json array of objects. // // Result: @@ -228,13 +221,12 @@ class Network { // ,... // ] - return axios.get(`${this.restURL}network/getPeerInfo`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}network/getPeerInfo`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } // // listBanned() { @@ -248,18 +240,17 @@ class Network { // }); // } - ping() { + async ping() { // Requests that a ping be sent to all other nodes, to measure ping time. // Results provided in getpeerinfo, pingtime and pingwait fields are decimal seconds. // Ping command is handled in queue with all other commands, so it measures processing backlog, not just network ping. - return axios.get(`${this.restURL}network/ping`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}network/ping`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } // // setBan(subnet, command, bantime, absolute) { diff --git a/src/Price.js b/src/Price.js index 9477de02..3c42b656 100644 --- a/src/Price.js +++ b/src/Price.js @@ -1,17 +1,16 @@ import axios from 'axios'; class Price { - current(currency = 'all') { - return axios.get(`https://www.blocktrail.com/BCC/json/blockchain/price`) - .then((response) => { + async current(currency = 'all') { + try { + let response = await axios.get(`https://www.blocktrail.com/BCC/json/blockchain/price`) if(currency === 'all') { return response.data; } else { return response.data[currency.toUpperCase()]; } - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } } diff --git a/src/RawTransactions.js b/src/RawTransactions.js index 6ea1096b..aa482cc1 100644 --- a/src/RawTransactions.js +++ b/src/RawTransactions.js @@ -4,7 +4,7 @@ class RawTransactions { this.restURL = restURL; } - decodeRawTransaction(hex) { + async decodeRawTransaction(hex) { // decodes a serialized transaction hex string into a JSON object describing the transaction. // Parameter #1—serialized transaction in hex @@ -14,16 +14,15 @@ class RawTransactions { hex = JSON.stringify(hex); } - return axios.get(`${this.restURL}rawtransactions/decodeRawTransaction/${hex}`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}rawtransactions/decodeRawTransaction/${hex}`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - decodeScript(script) { + async decodeScript(script) { // decodes a hex-encoded P2SH redeem script. // Parameter #1—a hex-encoded redeem script @@ -33,16 +32,15 @@ class RawTransactions { script = JSON.stringify(script); } - return axios.get(`${this.restURL}rawtransactions/decodeScript/${script}`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}rawtransactions/decodeScript/${script}`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - getRawTransaction(txid, verbose = false) { + async getRawTransaction(txid, verbose = false) { // NOTE: By default this function only works for mempool transactions. If the -txindex option is // enabled, it also works for blockchain transactions. // DEPRECATED: for now, it also works for transactions with unspent outputs. @@ -63,16 +61,15 @@ class RawTransactions { txid = JSON.stringify(txid); } - return axios.get(`${this.restURL}rawtransactions/getRawTransaction/${txid}?verbose=${verbose}`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}rawtransactions/getRawTransaction/${txid}?verbose=${verbose}`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } - sendRawTransaction(hex, allowhighfees = false) { + async sendRawTransaction(hex, allowhighfees = false) { // Submits raw transaction (serialized, hex-encoded) to local node and network. // // Also see createrawtransaction and signrawtransaction calls. @@ -88,13 +85,12 @@ class RawTransactions { hex = JSON.stringify(hex); } - return axios.post(`${this.restURL}rawtransactions/sendRawTransaction/${hex}?allowhighfees=${allowhighfees}`) - .then((response) => { + try { + let response = await axios.post(`${this.restURL}rawtransactions/sendRawTransaction/${hex}?allowhighfees=${allowhighfees}`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } } diff --git a/src/Transaction.js b/src/Transaction.js index 5ff4fa3d..0655da79 100644 --- a/src/Transaction.js +++ b/src/Transaction.js @@ -22,18 +22,17 @@ class Transaction { return Bitcoin.TransactionBuilder.fromTransaction(tx); } - details(txid) { + async details(txid) { if(typeof txid !== 'string') { txid = JSON.stringify(txid); } - return axios.get(`${this.restURL}transaction/details/${txid}`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}transaction/details/${txid}`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } } diff --git a/src/Util.js b/src/Util.js index 85d29c52..36bebdba 100644 --- a/src/Util.js +++ b/src/Util.js @@ -4,7 +4,7 @@ class Util { this.restURL = restURL; } - validateAddress(address) { + async validateAddress(address) { // Return information about the given bitcoin address. // // Arguments: @@ -25,13 +25,12 @@ class Util { // "hdkeypath" : "keypath" (string, optional) The HD keypath if the key is HD and available // "hdmasterkeyid" : "" (string, optional) The Hash160 of the HD master pubkey // } - return axios.get(`${this.restURL}util/validateAddress/${address}`) - .then((response) => { + try { + let response = await axios.get(`${this.restURL}util/validateAddress/${address}`) return response.data; - }) - .catch((error) => { + } catch (error) { return JSON.stringify(error.response.data.error.message); - }); + } } } From eda2cdf006234649bb63c193ca3371f37af2a20a Mon Sep 17 00:00:00 2001 From: Sam Cheng Hung Date: Fri, 24 Aug 2018 13:29:08 +0800 Subject: [PATCH 068/480] Adds function to convert address to RIPEMD-160 hash --- lib/Address.js | 15 + package-lock.json | 2616 +++++++++++++++++++++++++++++++++--- src/Address.js | 10 + test/Address.js | 32 + test/fixtures/Address.json | 36 + 5 files changed, 2522 insertions(+), 187 deletions(-) diff --git a/lib/Address.js b/lib/Address.js index ab308e8e..fee0050e 100644 --- a/lib/Address.js +++ b/lib/Address.js @@ -18,6 +18,10 @@ var _bitcoincashjsLib = require('bitcoincashjs-lib'); var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); +var _bs = require('bs58'); + +var _bs2 = _interopRequireDefault(_bs); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -49,6 +53,17 @@ var Address = function () { } } + // Converts address to RIPEMD-160 hash + + }, { + key: 'toHash160', + value: function toHash160(address) { + var legacyAddress = _bchaddrjs2.default.toLegacyAddress(address); + var bytes = _bs2.default.decode(legacyAddress); + var strippedBytes = bytes.slice(1, 21); + return strippedBytes.toString('hex'); + } + // Test for address format. }, { diff --git a/package-lock.json b/package-lock.json index e905c85a..7ea2e255 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,9 +1,129 @@ { "name": "bitbox-cli", - "version": "1.5.11", + "version": "1.5.12", "lockfileVersion": 1, "requires": true, "dependencies": { + "@babel/code-frame": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz", + "integrity": "sha1-vXHZsZKvl435FYKdOdQJRFZDmgw=", + "requires": { + "@babel/highlight": "7.0.0-beta.51" + } + }, + "@babel/generator": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.51.tgz", + "integrity": "sha1-bHV1/952HQdIXgS67cA5LG2eMPY=", + "requires": { + "@babel/types": "7.0.0-beta.51", + "jsesc": "2.5.1", + "lodash": "4.17.10", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "jsesc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", + "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=" + } + } + }, + "@babel/helper-function-name": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.51.tgz", + "integrity": "sha1-IbSHSiJ8+Z7K/MMKkDAtpaJkBWE=", + "requires": { + "@babel/helper-get-function-arity": "7.0.0-beta.51", + "@babel/template": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.51.tgz", + "integrity": "sha1-MoGy0EWvlcFyzpGyCCXYXqRnZBE=", + "requires": { + "@babel/types": "7.0.0-beta.51" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.51.tgz", + "integrity": "sha1-imw/ZsTSZTUvwHdIT59ugKUauXg=", + "requires": { + "@babel/types": "7.0.0-beta.51" + } + }, + "@babel/highlight": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.51.tgz", + "integrity": "sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0=", + "requires": { + "chalk": "2.4.1", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "@babel/parser": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.0.0-beta.51.tgz", + "integrity": "sha1-J87C30Cd9gr1gnDtj2qlVAnqhvY=" + }, + "@babel/template": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.51.tgz", + "integrity": "sha1-lgKkCuvPNXrpZ34lMu9fyBD1+/8=", + "requires": { + "@babel/code-frame": "7.0.0-beta.51", + "@babel/parser": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51", + "lodash": "4.17.10" + } + }, + "@babel/traverse": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.51.tgz", + "integrity": "sha1-mB2vLOw0emIx06odnhgDsDqqpKg=", + "requires": { + "@babel/code-frame": "7.0.0-beta.51", + "@babel/generator": "7.0.0-beta.51", + "@babel/helper-function-name": "7.0.0-beta.51", + "@babel/helper-split-export-declaration": "7.0.0-beta.51", + "@babel/parser": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51", + "debug": "3.1.0", + "globals": "11.7.0", + "invariant": "2.2.4", + "lodash": "4.17.10" + }, + "dependencies": { + "globals": { + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", + "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==" + } + } + }, + "@babel/types": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.51.tgz", + "integrity": "sha1-2AK3tUO1g2x3iqaReXq/APPZfqk=", + "requires": { + "esutils": "2.0.2", + "lodash": "4.17.10", + "to-fast-properties": "2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } + } + }, "@sinonjs/formatio": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", @@ -14,9 +134,9 @@ } }, "@types/node": { - "version": "10.7.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.7.1.tgz", - "integrity": "sha512-EGoI4ylB/lPOaqXqtzAyL8HcgOuCtH2hkEaLmkueOYufsTFWBn4VCvlCDC2HW8Q+9iF+QVC3sxjDKQYjHQeZ9w==", + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.9.1.tgz", + "integrity": "sha512-f+qQR5lLCB8UPhtk8Xm8RQvbR4ycD7MOsdiuAEQCYpz44bBx2g7JL0+iYBcjl9J7d0KT1sX2g0VGNeHfw+GXpg==", "dev": true }, "abbrev": { @@ -190,7 +310,7 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=", "requires": { - "follow-redirects": "1.5.5", + "follow-redirects": "1.5.7", "is-buffer": "1.1.6" } }, @@ -983,7 +1103,7 @@ "integrity": "sha512-W06sUpprptb65JHbu2yFdv8Tg7o2OWpD5n2pMUIhuLOXC5c64eMW7y9Pg0IHd/Qe31e1KwnHT9H1w6Pf9r4Fkg==", "requires": { "bs58check": "2.1.2", - "cashaddrjs": "0.2.8" + "cashaddrjs": "0.2.9" } }, "bech32": { @@ -1034,11 +1154,1809 @@ "bip32-utils": { "version": "github:Bitcoin-com/bip32-utils#318df796443311f7e12217542f7f45d3b7791f10", "requires": { - "bitbox-cli": "1.5.8", + "bitbox-cli": "1.5.12", "keccak": "1.4.0", - "nyc": "11.9.0", + "nyc": "12.0.2", "standard": "11.0.1", "tape": "4.9.1" + }, + "dependencies": { + "nyc": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-12.0.2.tgz", + "integrity": "sha1-ikpO1pCWbBHsWH/4fuoMEsl0upk=", + "requires": { + "archy": "1.0.0", + "arrify": "1.0.1", + "caching-transform": "1.0.1", + "convert-source-map": "1.5.1", + "debug-log": "1.0.1", + "default-require-extensions": "1.0.0", + "find-cache-dir": "0.1.1", + "find-up": "2.1.0", + "foreground-child": "1.5.6", + "glob": "7.1.2", + "istanbul-lib-coverage": "1.2.0", + "istanbul-lib-hook": "1.1.0", + "istanbul-lib-instrument": "2.3.2", + "istanbul-lib-report": "1.1.3", + "istanbul-lib-source-maps": "1.2.5", + "istanbul-reports": "1.4.1", + "md5-hex": "1.3.0", + "merge-source-map": "1.1.0", + "micromatch": "3.1.10", + "mkdirp": "0.5.1", + "resolve-from": "2.0.0", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "spawn-wrap": "1.4.2", + "test-exclude": "4.2.1", + "yargs": "11.1.0", + "yargs-parser": "8.1.0" + }, + "dependencies": { + "align-text": { + "version": "0.1.4", + "bundled": true, + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } + }, + "amdefine": { + "version": "1.0.1", + "bundled": true + }, + "ansi-regex": { + "version": "3.0.0", + "bundled": true + }, + "append-transform": { + "version": "0.4.0", + "bundled": true, + "requires": { + "default-require-extensions": "1.0.0" + } + }, + "archy": { + "version": "1.0.0", + "bundled": true + }, + "arr-diff": { + "version": "4.0.0", + "bundled": true + }, + "arr-flatten": { + "version": "1.1.0", + "bundled": true + }, + "arr-union": { + "version": "3.1.0", + "bundled": true + }, + "array-unique": { + "version": "0.3.2", + "bundled": true + }, + "arrify": { + "version": "1.0.1", + "bundled": true + }, + "assign-symbols": { + "version": "1.0.0", + "bundled": true + }, + "async": { + "version": "1.5.2", + "bundled": true + }, + "atob": { + "version": "2.1.1", + "bundled": true + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "base": { + "version": "0.11.2", + "bundled": true, + "requires": { + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "bundled": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "builtin-modules": { + "version": "1.1.1", + "bundled": true + }, + "cache-base": { + "version": "1.0.1", + "bundled": 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" + } + }, + "caching-transform": { + "version": "1.0.1", + "bundled": true, + "requires": { + "md5-hex": "1.3.0", + "mkdirp": "0.5.1", + "write-file-atomic": "1.3.4" + } + }, + "camelcase": { + "version": "1.2.1", + "bundled": true, + "optional": true + }, + "center-align": { + "version": "0.1.3", + "bundled": true, + "optional": true, + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + } + }, + "class-utils": { + "version": "0.3.6", + "bundled": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "cliui": { + "version": "2.1.0", + "bundled": true, + "optional": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "bundled": true, + "optional": true + } + } + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "collection-visit": { + "version": "1.0.0", + "bundled": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "commondir": { + "version": "1.0.1", + "bundled": true + }, + "component-emitter": { + "version": "1.2.1", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "convert-source-map": { + "version": "1.5.1", + "bundled": true + }, + "copy-descriptor": { + "version": "0.1.1", + "bundled": true + }, + "cross-spawn": { + "version": "4.0.2", + "bundled": true, + "requires": { + "lru-cache": "4.1.3", + "which": "1.3.1" + } + }, + "debug": { + "version": "3.1.0", + "bundled": true, + "requires": { + "ms": "2.0.0" + } + }, + "debug-log": { + "version": "1.0.1", + "bundled": true + }, + "decamelize": { + "version": "1.2.0", + "bundled": true + }, + "decode-uri-component": { + "version": "0.2.0", + "bundled": true + }, + "default-require-extensions": { + "version": "1.0.0", + "bundled": true, + "requires": { + "strip-bom": "2.0.0" + } + }, + "define-property": { + "version": "2.0.2", + "bundled": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true + } + } + }, + "error-ex": { + "version": "1.3.1", + "bundled": true, + "requires": { + "is-arrayish": "0.2.1" + } + }, + "execa": { + "version": "0.7.0", + "bundled": 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" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "bundled": true, + "requires": { + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.1" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "bundled": 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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "bundled": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "bundled": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "bundled": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "bundled": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "bundled": 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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true + } + } + }, + "fill-range": { + "version": "4.0.0", + "bundled": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "find-cache-dir": { + "version": "0.1.1", + "bundled": true, + "requires": { + "commondir": "1.0.1", + "mkdirp": "0.5.1", + "pkg-dir": "1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "bundled": true, + "requires": { + "locate-path": "2.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "bundled": true + }, + "foreground-child": { + "version": "1.5.6", + "bundled": true, + "requires": { + "cross-spawn": "4.0.2", + "signal-exit": "3.0.2" + } + }, + "fragment-cache": { + "version": "0.2.1", + "bundled": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "get-caller-file": { + "version": "1.0.2", + "bundled": true + }, + "get-stream": { + "version": "3.0.0", + "bundled": true + }, + "get-value": { + "version": "2.0.6", + "bundled": true + }, + "glob": { + "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" + } + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true + }, + "handlebars": { + "version": "4.0.11", + "bundled": true, + "requires": { + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "bundled": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "has-value": { + "version": "1.0.0", + "bundled": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "bundled": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "bundled": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "hosted-git-info": { + "version": "2.6.0", + "bundled": true + }, + "imurmurhash": { + "version": "0.1.4", + "bundled": true + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "invert-kv": { + "version": "1.0.0", + "bundled": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "bundled": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-arrayish": { + "version": "0.2.1", + "bundled": true + }, + "is-buffer": { + "version": "1.1.6", + "bundled": true + }, + "is-builtin-module": { + "version": "1.0.0", + "bundled": true, + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "bundled": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "bundled": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "bundled": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true + }, + "is-number": { + "version": "3.0.0", + "bundled": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-odd": { + "version": "2.0.0", + "bundled": true, + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "bundled": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "bundled": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-stream": { + "version": "1.1.0", + "bundled": true + }, + "is-utf8": { + "version": "0.2.1", + "bundled": true + }, + "is-windows": { + "version": "1.0.2", + "bundled": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true + }, + "isexe": { + "version": "2.0.0", + "bundled": true + }, + "isobject": { + "version": "3.0.1", + "bundled": true + }, + "istanbul-lib-coverage": { + "version": "1.2.0", + "bundled": true + }, + "istanbul-lib-hook": { + "version": "1.1.0", + "bundled": true, + "requires": { + "append-transform": "0.4.0" + } + }, + "istanbul-lib-report": { + "version": "1.1.3", + "bundled": true, + "requires": { + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "bundled": true + }, + "supports-color": { + "version": "3.2.3", + "bundled": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.5", + "bundled": true, + "requires": { + "debug": "3.1.0", + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" + } + }, + "istanbul-reports": { + "version": "1.4.1", + "bundled": true, + "requires": { + "handlebars": "4.0.11" + } + }, + "kind-of": { + "version": "3.2.2", + "bundled": true, + "requires": { + "is-buffer": "1.1.6" + } + }, + "lazy-cache": { + "version": "1.0.4", + "bundled": true, + "optional": true + }, + "lcid": { + "version": "1.0.0", + "bundled": true, + "requires": { + "invert-kv": "1.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "bundled": true, + "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" + } + }, + "locate-path": { + "version": "2.0.0", + "bundled": true, + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "bundled": true + } + } + }, + "longest": { + "version": "1.0.1", + "bundled": true + }, + "lru-cache": { + "version": "4.1.3", + "bundled": true, + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + }, + "map-cache": { + "version": "0.2.2", + "bundled": true + }, + "map-visit": { + "version": "1.0.0", + "bundled": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "md5-hex": { + "version": "1.3.0", + "bundled": true, + "requires": { + "md5-o-matic": "0.1.1" + } + }, + "md5-o-matic": { + "version": "0.1.1", + "bundled": true + }, + "mem": { + "version": "1.1.0", + "bundled": true, + "requires": { + "mimic-fn": "1.2.0" + } + }, + "merge-source-map": { + "version": "1.1.0", + "bundled": true, + "requires": { + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "bundled": true + } + } + }, + "micromatch": { + "version": "3.1.10", + "bundled": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true + } + } + }, + "mimic-fn": { + "version": "1.2.0", + "bundled": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true + }, + "mixin-deep": { + "version": "1.3.1", + "bundled": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "bundled": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true + }, + "nanomatch": { + "version": "1.2.9", + "bundled": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-odd": "2.0.0", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true + } + } + }, + "normalize-package-data": { + "version": "2.4.0", + "bundled": true, + "requires": { + "hosted-git-info": "2.6.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" + } + }, + "npm-run-path": { + "version": "2.0.2", + "bundled": true, + "requires": { + "path-key": "2.0.1" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true + }, + "object-copy": { + "version": "0.1.0", + "bundled": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "bundled": true, + "requires": { + "isobject": "3.0.1" + } + }, + "object.pick": { + "version": "1.3.0", + "bundled": true, + "requires": { + "isobject": "3.0.1" + } + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optimist": { + "version": "0.6.1", + "bundled": true, + "requires": { + "minimist": "0.0.8", + "wordwrap": "0.0.3" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true + }, + "os-locale": { + "version": "2.1.0", + "bundled": true, + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } + }, + "p-finally": { + "version": "1.0.0", + "bundled": true + }, + "p-limit": { + "version": "1.2.0", + "bundled": true, + "requires": { + "p-try": "1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "bundled": true, + "requires": { + "p-limit": "1.2.0" + } + }, + "p-try": { + "version": "1.0.0", + "bundled": true + }, + "parse-json": { + "version": "2.2.0", + "bundled": true, + "requires": { + "error-ex": "1.3.1" + } + }, + "pascalcase": { + "version": "0.1.1", + "bundled": true + }, + "path-exists": { + "version": "2.1.0", + "bundled": true, + "requires": { + "pinkie-promise": "2.0.1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true + }, + "path-key": { + "version": "2.0.1", + "bundled": true + }, + "path-parse": { + "version": "1.0.5", + "bundled": true + }, + "path-type": { + "version": "1.1.0", + "bundled": true, + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "pify": { + "version": "2.3.0", + "bundled": true + }, + "pinkie": { + "version": "2.0.4", + "bundled": true + }, + "pinkie-promise": { + "version": "2.0.1", + "bundled": true, + "requires": { + "pinkie": "2.0.4" + } + }, + "pkg-dir": { + "version": "1.0.0", + "bundled": true, + "requires": { + "find-up": "1.1.2" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "bundled": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "bundled": true + }, + "pseudomap": { + "version": "1.0.2", + "bundled": true + }, + "read-pkg": { + "version": "1.1.0", + "bundled": true, + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "bundled": true, + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "bundled": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + } + } + }, + "regex-not": { + "version": "1.0.2", + "bundled": true, + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "bundled": true + }, + "repeat-string": { + "version": "1.6.1", + "bundled": true + }, + "require-directory": { + "version": "2.1.1", + "bundled": true + }, + "require-main-filename": { + "version": "1.0.1", + "bundled": true + }, + "resolve-from": { + "version": "2.0.0", + "bundled": true + }, + "resolve-url": { + "version": "0.2.1", + "bundled": true + }, + "ret": { + "version": "0.1.15", + "bundled": true + }, + "right-align": { + "version": "0.1.3", + "bundled": true, + "optional": true, + "requires": { + "align-text": "0.1.4" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-regex": { + "version": "1.1.0", + "bundled": true, + "requires": { + "ret": "0.1.15" + } + }, + "semver": { + "version": "5.5.0", + "bundled": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true + }, + "set-value": { + "version": "2.0.0", + "bundled": true, + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "shebang-command": { + "version": "1.2.0", + "bundled": true, + "requires": { + "shebang-regex": "1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "bundled": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true + }, + "slide": { + "version": "1.1.6", + "bundled": true + }, + "snapdragon": { + "version": "0.8.2", + "bundled": 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.2", + "use": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "bundled": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "bundled": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "bundled": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "bundled": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "source-map": { + "version": "0.5.7", + "bundled": true + }, + "source-map-resolve": { + "version": "0.5.2", + "bundled": true, + "requires": { + "atob": "2.1.1", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "bundled": true + }, + "spawn-wrap": { + "version": "1.4.2", + "bundled": true, + "requires": { + "foreground-child": "1.5.6", + "mkdirp": "0.5.1", + "os-homedir": "1.0.2", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "which": "1.3.1" + } + }, + "spdx-correct": { + "version": "3.0.0", + "bundled": true, + "requires": { + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "bundled": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "bundled": true, + "requires": { + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.0", + "bundled": true + }, + "split-string": { + "version": "3.1.0", + "bundled": true, + "requires": { + "extend-shallow": "3.0.2" + } + }, + "static-extend": { + "version": "0.1.2", + "bundled": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "string-width": { + "version": "2.1.1", + "bundled": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "bundled": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "bundled": true, + "requires": { + "is-utf8": "0.2.1" + } + }, + "strip-eof": { + "version": "1.0.0", + "bundled": true + }, + "test-exclude": { + "version": "4.2.1", + "bundled": true, + "requires": { + "arrify": "1.0.1", + "micromatch": "3.1.10", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" + } + }, + "to-object-path": { + "version": "0.3.0", + "bundled": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "to-regex": { + "version": "3.0.2", + "bundled": true, + "requires": { + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "bundled": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, + "uglify-js": { + "version": "2.8.29", + "bundled": true, + "optional": true, + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "yargs": { + "version": "3.10.0", + "bundled": true, + "optional": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "union-value": { + "version": "1.0.0", + "bundled": true, + "requires": { + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "bundled": true, + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" + } + } + } + }, + "unset-value": { + "version": "1.0.0", + "bundled": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "bundled": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "bundled": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "bundled": true + } + } + }, + "urix": { + "version": "0.1.0", + "bundled": true + }, + "use": { + "version": "3.1.0", + "bundled": true, + "requires": { + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true + } + } + }, + "validate-npm-package-license": { + "version": "3.0.3", + "bundled": true, + "requires": { + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" + } + }, + "which": { + "version": "1.3.1", + "bundled": true, + "requires": { + "isexe": "2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "bundled": true + }, + "window-size": { + "version": "0.1.0", + "bundled": true, + "optional": true + }, + "wordwrap": { + "version": "0.0.3", + "bundled": true + }, + "wrap-ansi": { + "version": "2.1.0", + "bundled": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "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" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "2.1.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + }, + "write-file-atomic": { + "version": "1.3.4", + "bundled": true, + "requires": { + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" + } + }, + "y18n": { + "version": "3.2.1", + "bundled": true + }, + "yallist": { + "version": "2.1.2", + "bundled": true + }, + "yargs": { + "version": "11.1.0", + "bundled": true, + "requires": { + "cliui": "4.1.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": "9.0.2" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "bundled": true + }, + "cliui": { + "version": "4.1.0", + "bundled": true, + "requires": { + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" + } + }, + "yargs-parser": { + "version": "9.0.2", + "bundled": true, + "requires": { + "camelcase": "4.1.0" + } + } + } + }, + "yargs-parser": { + "version": "8.1.0", + "bundled": true, + "requires": { + "camelcase": "4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "bundled": true + } + } + } + } + } } }, "bip38": { @@ -1081,9 +2999,9 @@ "integrity": "sha512-O1htyufFTYy3EO0JkHg2CLykdXEtV2ssqw47Gq9A0WByp662xpJnMEB9m43LZjsSDjIAOozWRExlFQk2hlV1XQ==" }, "bitbox-cli": { - "version": "1.5.8", - "resolved": "https://registry.npmjs.org/bitbox-cli/-/bitbox-cli-1.5.8.tgz", - "integrity": "sha512-60dUEoup/9lslfW2QDVHTThBw8tZsPrmBTkAqR37RveZSlxEYDYrQw9oHBimkXzEaVakXdjLEBgrm4t/TAmYug==", + "version": "1.5.12", + "resolved": "https://registry.npmjs.org/bitbox-cli/-/bitbox-cli-1.5.12.tgz", + "integrity": "sha512-SQk02foLnSEi8ZkJFTFLZXEEW/3ribb/YNaF2L/qZ1wtWOcB2uei4v/rmb31TJOseH6MvfZ5Ygl6HzcyCTpYHg==", "requires": { "assert": "1.4.1", "axios": "0.17.1", @@ -1129,28 +3047,6 @@ "socket.io-client": "2.1.1", "touch": "3.1.0", "wif": "2.0.6" - }, - "dependencies": { - "bitcoincashjs-lib": { - "version": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", - "requires": { - "bech32": "1.1.3", - "bigi": "1.4.2", - "bip66": "1.1.5", - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", - "bs58check": "2.1.2", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ecurve": "1.0.6", - "merkle-lib": "2.0.10", - "pushdata-bitcoin": "1.0.1", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "typeforce": "1.12.0", - "varuint-bitcoin": "1.1.0", - "wif": "2.0.6" - } - } } }, "bitcoin-ops": { @@ -1214,7 +3110,7 @@ "bs58check": "2.1.2", "buffer-equals": "1.0.4", "create-hash": "1.2.0", - "secp256k1": "3.5.0", + "secp256k1": "3.5.2", "varuint-bitcoin": "1.1.0" } }, @@ -1276,8 +3172,8 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "requires": { - "caniuse-lite": "1.0.30000877", - "electron-to-chromium": "1.3.58" + "caniuse-lite": "1.0.30000878", + "electron-to-chromium": "1.3.61" } }, "bs58": { @@ -1359,14 +3255,14 @@ } }, "caniuse-lite": { - "version": "1.0.30000877", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000877.tgz", - "integrity": "sha512-h04kV/lcuhItU1CZTJOxUEk/9R+1XeJqgc67E+XC8J9TjPM8kzVgOn27ZtRdDUo8O5F8U4QRCzDWJrVym3w3Cg==" + "version": "1.0.30000878", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000878.tgz", + "integrity": "sha512-/dCGTdLCnjVJno1mFRn7Y6eit3AYaeFzSrMQHCoK0LEQaWl5snuLex1Ky4b8/Qu2ig5NgTX4cJx65hH9546puA==" }, "cashaddrjs": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.2.8.tgz", - "integrity": "sha512-oezXpKZRjavdRB1QjBamfHFDzYescGFn9dWMbijP4fgXrqMdBygOqaPNW4phf7zpRD4+oW7aaFfFklF72/szaA==", + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.2.9.tgz", + "integrity": "sha512-DhJF4iAH0/RM3UjHDHKRxzs09YGL9px+oTyizzydanhC7jTyM2aJ+aLKA96vZGTTWayvvr2iDF2l13lpqXiRFg==", "requires": { "big-integer": "1.6.34" } @@ -1769,9 +3665,9 @@ } }, "electron-to-chromium": { - "version": "1.3.58", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.58.tgz", - "integrity": "sha512-AGJxlBEn2wOohxqWZkISVsOjZueKTQljfEODTDSEiMqSpH0S+xzV+/5oEM9AGaqhu7DzrpKOgU7ocQRjj0nJmg==" + "version": "1.3.61", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.61.tgz", + "integrity": "sha512-XjTdsm6x71Y48lF9EEvGciwXD70b20g0t+3YbrE+0fPFutqV08DSNrZXkoXAp3QuzX7TpL/OW+/VsNoR9GkuNg==" }, "elliptic": { "version": "6.4.1", @@ -2146,7 +4042,7 @@ "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "requires": { "chardet": "0.4.2", - "iconv-lite": "0.4.23", + "iconv-lite": "0.4.24", "tmp": "0.0.33" } }, @@ -2246,9 +4142,9 @@ "dev": true }, "follow-redirects": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.5.tgz", - "integrity": "sha512-GHjtHDlY/ehslqv0Gr5N0PUJppgg/q0rOBvX0na1s7y1A3LWxPqCYU76s3Z1bM4+UZB4QF0usaXLT5wFpof5PA==", + "version": "1.5.7", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.7.tgz", + "integrity": "sha512-NONJVIFiX7Z8k2WxfqBjtwqMifx7X42ORLFrOZ2LTKGj71G3C0kfdyTqGqr8fx5zSX6Foo/D95dgGWbPUiwnew==", "requires": { "debug": "3.1.0" } @@ -2946,9 +4842,9 @@ "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" }, "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { "safer-buffer": "2.1.2" } @@ -3217,6 +5113,25 @@ "isarray": "1.0.0" } }, + "istanbul-lib-coverage": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", + "integrity": "sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA==" + }, + "istanbul-lib-instrument": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-2.3.2.tgz", + "integrity": "sha512-l7TD/VnBsIB2OJvSyxaLW/ab1+92dxZNH9wLH7uHPPioy3JZ8tnx2UXUdKmdkgmP2EFPzg64CToUP6dAS3U32Q==", + "requires": { + "@babel/generator": "7.0.0-beta.51", + "@babel/parser": "7.0.0-beta.51", + "@babel/template": "7.0.0-beta.51", + "@babel/traverse": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51", + "istanbul-lib-coverage": "2.0.1", + "semver": "5.5.1" + } + }, "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", @@ -3618,6 +5533,7 @@ "version": "11.9.0", "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.9.0.tgz", "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", + "dev": true, "requires": { "archy": "1.0.0", "arrify": "1.0.1", @@ -3651,6 +5567,7 @@ "align-text": { "version": "0.1.4", "bundled": true, + "dev": true, "requires": { "kind-of": "3.2.2", "longest": "1.0.1", @@ -3659,62 +5576,76 @@ }, "amdefine": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "bundled": true, + "dev": true }, "ansi-styles": { "version": "2.2.1", - "bundled": true + "bundled": true, + "dev": true }, "append-transform": { "version": "0.4.0", "bundled": true, + "dev": true, "requires": { "default-require-extensions": "1.0.0" } }, "archy": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "arr-diff": { "version": "4.0.0", - "bundled": true + "bundled": true, + "dev": true }, "arr-flatten": { "version": "1.1.0", - "bundled": true + "bundled": true, + "dev": true }, "arr-union": { "version": "3.1.0", - "bundled": true + "bundled": true, + "dev": true }, "array-unique": { "version": "0.3.2", - "bundled": true + "bundled": true, + "dev": true }, "arrify": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "assign-symbols": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "async": { "version": "1.5.2", - "bundled": true + "bundled": true, + "dev": true }, "atob": { "version": "2.1.1", - "bundled": true + "bundled": true, + "dev": true }, "babel-code-frame": { "version": "6.26.0", "bundled": true, + "dev": true, "requires": { "chalk": "1.1.3", "esutils": "2.0.2", @@ -3724,6 +5655,7 @@ "babel-generator": { "version": "6.26.1", "bundled": true, + "dev": true, "requires": { "babel-messages": "6.23.0", "babel-runtime": "6.26.0", @@ -3738,6 +5670,7 @@ "babel-messages": { "version": "6.23.0", "bundled": true, + "dev": true, "requires": { "babel-runtime": "6.26.0" } @@ -3745,6 +5678,7 @@ "babel-runtime": { "version": "6.26.0", "bundled": true, + "dev": true, "requires": { "core-js": "2.5.6", "regenerator-runtime": "0.11.1" @@ -3753,6 +5687,7 @@ "babel-template": { "version": "6.26.0", "bundled": true, + "dev": true, "requires": { "babel-runtime": "6.26.0", "babel-traverse": "6.26.0", @@ -3764,6 +5699,7 @@ "babel-traverse": { "version": "6.26.0", "bundled": true, + "dev": true, "requires": { "babel-code-frame": "6.26.0", "babel-messages": "6.23.0", @@ -3779,6 +5715,7 @@ "babel-types": { "version": "6.26.0", "bundled": true, + "dev": true, "requires": { "babel-runtime": "6.26.0", "esutils": "2.0.2", @@ -3788,15 +5725,18 @@ }, "babylon": { "version": "6.18.0", - "bundled": true + "bundled": true, + "dev": true }, "balanced-match": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "base": { "version": "0.11.2", "bundled": true, + "dev": true, "requires": { "cache-base": "1.0.1", "class-utils": "0.3.6", @@ -3810,6 +5750,7 @@ "define-property": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "is-descriptor": "1.0.2" } @@ -3817,6 +5758,7 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "6.0.2" } @@ -3824,6 +5766,7 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "6.0.2" } @@ -3831,6 +5774,7 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -3839,17 +5783,20 @@ }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "brace-expansion": { "version": "1.1.11", "bundled": true, + "dev": true, "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -3858,6 +5805,7 @@ "braces": { "version": "2.3.2", "bundled": true, + "dev": true, "requires": { "arr-flatten": "1.1.0", "array-unique": "0.3.2", @@ -3874,6 +5822,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -3882,11 +5831,13 @@ }, "builtin-modules": { "version": "1.1.1", - "bundled": true + "bundled": true, + "dev": true }, "cache-base": { "version": "1.0.1", "bundled": true, + "dev": true, "requires": { "collection-visit": "1.0.0", "component-emitter": "1.2.1", @@ -3901,13 +5852,15 @@ "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "caching-transform": { "version": "1.0.1", "bundled": true, + "dev": true, "requires": { "md5-hex": "1.3.0", "mkdirp": "0.5.1", @@ -3917,11 +5870,13 @@ "camelcase": { "version": "1.2.1", "bundled": true, + "dev": true, "optional": true }, "center-align": { "version": "0.1.3", "bundled": true, + "dev": true, "optional": true, "requires": { "align-text": "0.1.4", @@ -3931,6 +5886,7 @@ "chalk": { "version": "1.1.3", "bundled": true, + "dev": true, "requires": { "ansi-styles": "2.2.1", "escape-string-regexp": "1.0.5", @@ -3942,6 +5898,7 @@ "class-utils": { "version": "0.3.6", "bundled": true, + "dev": true, "requires": { "arr-union": "3.1.0", "define-property": "0.2.5", @@ -3952,19 +5909,22 @@ "define-property": { "version": "0.2.5", "bundled": true, + "dev": true, "requires": { "is-descriptor": "0.1.6" } }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "cliui": { "version": "2.1.0", "bundled": true, + "dev": true, "optional": true, "requires": { "center-align": "0.1.3", @@ -3975,17 +5935,20 @@ "wordwrap": { "version": "0.0.2", "bundled": true, + "dev": true, "optional": true } } }, "code-point-at": { "version": "1.1.0", - "bundled": true + "bundled": true, + "dev": true }, "collection-visit": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "map-visit": "1.0.0", "object-visit": "1.0.1" @@ -3993,31 +5956,38 @@ }, "commondir": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "component-emitter": { "version": "1.2.1", - "bundled": true + "bundled": true, + "dev": true }, "concat-map": { "version": "0.0.1", - "bundled": true + "bundled": true, + "dev": true }, "convert-source-map": { "version": "1.5.1", - "bundled": true + "bundled": true, + "dev": true }, "copy-descriptor": { "version": "0.1.1", - "bundled": true + "bundled": true, + "dev": true }, "core-js": { "version": "2.5.6", - "bundled": true + "bundled": true, + "dev": true }, "cross-spawn": { "version": "4.0.2", "bundled": true, + "dev": true, "requires": { "lru-cache": "4.1.3", "which": "1.3.0" @@ -4026,25 +5996,30 @@ "debug": { "version": "2.6.9", "bundled": true, + "dev": true, "requires": { "ms": "2.0.0" } }, "debug-log": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "decamelize": { "version": "1.2.0", - "bundled": true + "bundled": true, + "dev": true }, "decode-uri-component": { "version": "0.2.0", - "bundled": true + "bundled": true, + "dev": true }, "default-require-extensions": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "strip-bom": "2.0.0" } @@ -4052,6 +6027,7 @@ "define-property": { "version": "2.0.2", "bundled": true, + "dev": true, "requires": { "is-descriptor": "1.0.2", "isobject": "3.0.1" @@ -4060,6 +6036,7 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "6.0.2" } @@ -4067,6 +6044,7 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "6.0.2" } @@ -4074,6 +6052,7 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -4082,17 +6061,20 @@ }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "detect-indent": { "version": "4.0.0", "bundled": true, + "dev": true, "requires": { "repeating": "2.0.1" } @@ -4100,21 +6082,25 @@ "error-ex": { "version": "1.3.1", "bundled": true, + "dev": true, "requires": { "is-arrayish": "0.2.1" } }, "escape-string-regexp": { "version": "1.0.5", - "bundled": true + "bundled": true, + "dev": true }, "esutils": { "version": "2.0.2", - "bundled": true + "bundled": true, + "dev": true }, "execa": { "version": "0.7.0", "bundled": true, + "dev": true, "requires": { "cross-spawn": "5.1.0", "get-stream": "3.0.0", @@ -4128,6 +6114,7 @@ "cross-spawn": { "version": "5.1.0", "bundled": true, + "dev": true, "requires": { "lru-cache": "4.1.3", "shebang-command": "1.2.0", @@ -4139,6 +6126,7 @@ "expand-brackets": { "version": "2.1.4", "bundled": true, + "dev": true, "requires": { "debug": "2.6.9", "define-property": "0.2.5", @@ -4152,6 +6140,7 @@ "define-property": { "version": "0.2.5", "bundled": true, + "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -4159,6 +6148,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -4168,6 +6158,7 @@ "extend-shallow": { "version": "3.0.2", "bundled": true, + "dev": true, "requires": { "assign-symbols": "1.0.0", "is-extendable": "1.0.1" @@ -4176,6 +6167,7 @@ "is-extendable": { "version": "1.0.1", "bundled": true, + "dev": true, "requires": { "is-plain-object": "2.0.4" } @@ -4185,6 +6177,7 @@ "extglob": { "version": "2.0.4", "bundled": true, + "dev": true, "requires": { "array-unique": "0.3.2", "define-property": "1.0.0", @@ -4199,6 +6192,7 @@ "define-property": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "is-descriptor": "1.0.2" } @@ -4206,6 +6200,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -4213,6 +6208,7 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "6.0.2" } @@ -4220,6 +6216,7 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "6.0.2" } @@ -4227,6 +6224,7 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -4235,13 +6233,15 @@ }, "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "fill-range": { "version": "4.0.0", "bundled": true, + "dev": true, "requires": { "extend-shallow": "2.0.1", "is-number": "3.0.0", @@ -4252,6 +6252,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -4261,6 +6262,7 @@ "find-cache-dir": { "version": "0.1.1", "bundled": true, + "dev": true, "requires": { "commondir": "1.0.1", "mkdirp": "0.5.1", @@ -4270,17 +6272,20 @@ "find-up": { "version": "2.1.0", "bundled": true, + "dev": true, "requires": { "locate-path": "2.0.0" } }, "for-in": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true }, "foreground-child": { "version": "1.5.6", "bundled": true, + "dev": true, "requires": { "cross-spawn": "4.0.2", "signal-exit": "3.0.2" @@ -4289,29 +6294,35 @@ "fragment-cache": { "version": "0.2.1", "bundled": true, + "dev": true, "requires": { "map-cache": "0.2.2" } }, "fs.realpath": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "get-caller-file": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true }, "get-stream": { "version": "3.0.0", - "bundled": true + "bundled": true, + "dev": true }, "get-value": { "version": "2.0.6", - "bundled": true + "bundled": true, + "dev": true }, "glob": { "version": "7.1.2", "bundled": true, + "dev": true, "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -4323,15 +6334,18 @@ }, "globals": { "version": "9.18.0", - "bundled": true + "bundled": true, + "dev": true }, "graceful-fs": { "version": "4.1.11", - "bundled": true + "bundled": true, + "dev": true }, "handlebars": { "version": "4.0.11", "bundled": true, + "dev": true, "requires": { "async": "1.5.2", "optimist": "0.6.1", @@ -4342,6 +6356,7 @@ "source-map": { "version": "0.4.4", "bundled": true, + "dev": true, "requires": { "amdefine": "1.0.1" } @@ -4351,17 +6366,20 @@ "has-ansi": { "version": "2.0.0", "bundled": true, + "dev": true, "requires": { "ansi-regex": "2.1.1" } }, "has-flag": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "has-value": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "get-value": "2.0.6", "has-values": "1.0.0", @@ -4370,13 +6388,15 @@ "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "has-values": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "is-number": "3.0.0", "kind-of": "4.0.0" @@ -4385,6 +6405,7 @@ "is-number": { "version": "3.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "3.2.2" }, @@ -4392,6 +6413,7 @@ "kind-of": { "version": "3.2.2", "bundled": true, + "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -4401,6 +6423,7 @@ "kind-of": { "version": "4.0.0", "bundled": true, + "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -4409,15 +6432,18 @@ }, "hosted-git-info": { "version": "2.6.0", - "bundled": true + "bundled": true, + "dev": true }, "imurmurhash": { "version": "0.1.4", - "bundled": true + "bundled": true, + "dev": true }, "inflight": { "version": "1.0.6", "bundled": true, + "dev": true, "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -4425,37 +6451,44 @@ }, "inherits": { "version": "2.0.3", - "bundled": true + "bundled": true, + "dev": true }, "invariant": { "version": "2.2.4", "bundled": true, + "dev": true, "requires": { "loose-envify": "1.3.1" } }, "invert-kv": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "is-accessor-descriptor": { "version": "0.1.6", "bundled": true, + "dev": true, "requires": { "kind-of": "3.2.2" } }, "is-arrayish": { "version": "0.2.1", - "bundled": true + "bundled": true, + "dev": true }, "is-buffer": { "version": "1.1.6", - "bundled": true + "bundled": true, + "dev": true }, "is-builtin-module": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "builtin-modules": "1.1.1" } @@ -4463,6 +6496,7 @@ "is-data-descriptor": { "version": "0.1.4", "bundled": true, + "dev": true, "requires": { "kind-of": "3.2.2" } @@ -4470,6 +6504,7 @@ "is-descriptor": { "version": "0.1.6", "bundled": true, + "dev": true, "requires": { "is-accessor-descriptor": "0.1.6", "is-data-descriptor": "0.1.4", @@ -4478,28 +6513,33 @@ "dependencies": { "kind-of": { "version": "5.1.0", - "bundled": true + "bundled": true, + "dev": true } } }, "is-extendable": { "version": "0.1.1", - "bundled": true + "bundled": true, + "dev": true }, "is-finite": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "is-number": { "version": "3.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "3.2.2" } @@ -4507,60 +6547,72 @@ "is-odd": { "version": "2.0.0", "bundled": true, + "dev": true, "requires": { "is-number": "4.0.0" }, "dependencies": { "is-number": { "version": "4.0.0", - "bundled": true + "bundled": true, + "dev": true } } }, "is-plain-object": { "version": "2.0.4", "bundled": true, + "dev": true, "requires": { "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "is-stream": { "version": "1.1.0", - "bundled": true + "bundled": true, + "dev": true }, "is-utf8": { "version": "0.2.1", - "bundled": true + "bundled": true, + "dev": true }, "is-windows": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true }, "isarray": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "isexe": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true }, "istanbul-lib-coverage": { "version": "1.2.0", - "bundled": true + "bundled": true, + "dev": true }, "istanbul-lib-hook": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { "append-transform": "0.4.0" } @@ -4568,6 +6620,7 @@ "istanbul-lib-instrument": { "version": "1.10.1", "bundled": true, + "dev": true, "requires": { "babel-generator": "6.26.1", "babel-template": "6.26.0", @@ -4581,6 +6634,7 @@ "istanbul-lib-report": { "version": "1.1.3", "bundled": true, + "dev": true, "requires": { "istanbul-lib-coverage": "1.2.0", "mkdirp": "0.5.1", @@ -4591,6 +6645,7 @@ "supports-color": { "version": "3.2.3", "bundled": true, + "dev": true, "requires": { "has-flag": "1.0.0" } @@ -4600,6 +6655,7 @@ "istanbul-lib-source-maps": { "version": "1.2.3", "bundled": true, + "dev": true, "requires": { "debug": "3.1.0", "istanbul-lib-coverage": "1.2.0", @@ -4611,6 +6667,7 @@ "debug": { "version": "3.1.0", "bundled": true, + "dev": true, "requires": { "ms": "2.0.0" } @@ -4620,21 +6677,25 @@ "istanbul-reports": { "version": "1.4.0", "bundled": true, + "dev": true, "requires": { "handlebars": "4.0.11" } }, "js-tokens": { "version": "3.0.2", - "bundled": true + "bundled": true, + "dev": true }, "jsesc": { "version": "1.3.0", - "bundled": true + "bundled": true, + "dev": true }, "kind-of": { "version": "3.2.2", "bundled": true, + "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -4642,11 +6703,13 @@ "lazy-cache": { "version": "1.0.4", "bundled": true, + "dev": true, "optional": true }, "lcid": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "invert-kv": "1.0.0" } @@ -4654,6 +6717,7 @@ "load-json-file": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { "graceful-fs": "4.1.11", "parse-json": "2.2.0", @@ -4665,6 +6729,7 @@ "locate-path": { "version": "2.0.0", "bundled": true, + "dev": true, "requires": { "p-locate": "2.0.0", "path-exists": "3.0.0" @@ -4672,21 +6737,25 @@ "dependencies": { "path-exists": { "version": "3.0.0", - "bundled": true + "bundled": true, + "dev": true } } }, "lodash": { "version": "4.17.10", - "bundled": true + "bundled": true, + "dev": true }, "longest": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "loose-envify": { "version": "1.3.1", "bundled": true, + "dev": true, "requires": { "js-tokens": "3.0.2" } @@ -4694,6 +6763,7 @@ "lru-cache": { "version": "4.1.3", "bundled": true, + "dev": true, "requires": { "pseudomap": "1.0.2", "yallist": "2.1.2" @@ -4701,11 +6771,13 @@ }, "map-cache": { "version": "0.2.2", - "bundled": true + "bundled": true, + "dev": true }, "map-visit": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "object-visit": "1.0.1" } @@ -4713,17 +6785,20 @@ "md5-hex": { "version": "1.3.0", "bundled": true, + "dev": true, "requires": { "md5-o-matic": "0.1.1" } }, "md5-o-matic": { "version": "0.1.1", - "bundled": true + "bundled": true, + "dev": true }, "mem": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { "mimic-fn": "1.2.0" } @@ -4731,19 +6806,22 @@ "merge-source-map": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { "source-map": "0.6.1" }, "dependencies": { "source-map": { "version": "0.6.1", - "bundled": true + "bundled": true, + "dev": true } } }, "micromatch": { "version": "3.1.10", "bundled": true, + "dev": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -4762,28 +6840,33 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "mimic-fn": { "version": "1.2.0", - "bundled": true + "bundled": true, + "dev": true }, "minimatch": { "version": "3.0.4", "bundled": true, + "dev": true, "requires": { "brace-expansion": "1.1.11" } }, "minimist": { "version": "0.0.8", - "bundled": true + "bundled": true, + "dev": true }, "mixin-deep": { "version": "1.3.1", "bundled": true, + "dev": true, "requires": { "for-in": "1.0.2", "is-extendable": "1.0.1" @@ -4792,6 +6875,7 @@ "is-extendable": { "version": "1.0.1", "bundled": true, + "dev": true, "requires": { "is-plain-object": "2.0.4" } @@ -4801,17 +6885,20 @@ "mkdirp": { "version": "0.5.1", "bundled": true, + "dev": true, "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "nanomatch": { "version": "1.2.9", "bundled": true, + "dev": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -4829,21 +6916,25 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true + "bundled": true, + "dev": true }, "array-unique": { "version": "0.3.2", - "bundled": true + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "normalize-package-data": { "version": "2.4.0", "bundled": true, + "dev": true, "requires": { "hosted-git-info": "2.6.0", "is-builtin-module": "1.0.0", @@ -4854,21 +6945,25 @@ "npm-run-path": { "version": "2.0.2", "bundled": true, + "dev": true, "requires": { "path-key": "2.0.1" } }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "object-assign": { "version": "4.1.1", - "bundled": true + "bundled": true, + "dev": true }, "object-copy": { "version": "0.1.0", "bundled": true, + "dev": true, "requires": { "copy-descriptor": "0.1.1", "define-property": "0.2.5", @@ -4878,6 +6973,7 @@ "define-property": { "version": "0.2.5", "bundled": true, + "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -4887,32 +6983,37 @@ "object-visit": { "version": "1.0.1", "bundled": true, + "dev": true, "requires": { "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "object.pick": { "version": "1.3.0", "bundled": true, + "dev": true, "requires": { "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "once": { "version": "1.4.0", "bundled": true, + "dev": true, "requires": { "wrappy": "1.0.2" } @@ -4920,6 +7021,7 @@ "optimist": { "version": "0.6.1", "bundled": true, + "dev": true, "requires": { "minimist": "0.0.8", "wordwrap": "0.0.3" @@ -4927,11 +7029,13 @@ }, "os-homedir": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true }, "os-locale": { "version": "2.1.0", "bundled": true, + "dev": true, "requires": { "execa": "0.7.0", "lcid": "1.0.0", @@ -4940,11 +7044,13 @@ }, "p-finally": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "p-limit": { "version": "1.2.0", "bundled": true, + "dev": true, "requires": { "p-try": "1.0.0" } @@ -4952,47 +7058,56 @@ "p-locate": { "version": "2.0.0", "bundled": true, + "dev": true, "requires": { "p-limit": "1.2.0" } }, "p-try": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "parse-json": { "version": "2.2.0", "bundled": true, + "dev": true, "requires": { "error-ex": "1.3.1" } }, "pascalcase": { "version": "0.1.1", - "bundled": true + "bundled": true, + "dev": true }, "path-exists": { "version": "2.1.0", "bundled": true, + "dev": true, "requires": { "pinkie-promise": "2.0.1" } }, "path-is-absolute": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "path-key": { "version": "2.0.1", - "bundled": true + "bundled": true, + "dev": true }, "path-parse": { "version": "1.0.5", - "bundled": true + "bundled": true, + "dev": true }, "path-type": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { "graceful-fs": "4.1.11", "pify": "2.3.0", @@ -5001,15 +7116,18 @@ }, "pify": { "version": "2.3.0", - "bundled": true + "bundled": true, + "dev": true }, "pinkie": { "version": "2.0.4", - "bundled": true + "bundled": true, + "dev": true }, "pinkie-promise": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "pinkie": "2.0.4" } @@ -5017,6 +7135,7 @@ "pkg-dir": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "find-up": "1.1.2" }, @@ -5024,6 +7143,7 @@ "find-up": { "version": "1.1.2", "bundled": true, + "dev": true, "requires": { "path-exists": "2.1.0", "pinkie-promise": "2.0.1" @@ -5033,15 +7153,18 @@ }, "posix-character-classes": { "version": "0.1.1", - "bundled": true + "bundled": true, + "dev": true }, "pseudomap": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true }, "read-pkg": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { "load-json-file": "1.1.0", "normalize-package-data": "2.4.0", @@ -5051,6 +7174,7 @@ "read-pkg-up": { "version": "1.0.1", "bundled": true, + "dev": true, "requires": { "find-up": "1.1.2", "read-pkg": "1.1.0" @@ -5059,6 +7183,7 @@ "find-up": { "version": "1.1.2", "bundled": true, + "dev": true, "requires": { "path-exists": "2.1.0", "pinkie-promise": "2.0.1" @@ -5068,11 +7193,13 @@ }, "regenerator-runtime": { "version": "0.11.1", - "bundled": true + "bundled": true, + "dev": true }, "regex-not": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { "extend-shallow": "3.0.2", "safe-regex": "1.1.0" @@ -5080,42 +7207,51 @@ }, "repeat-element": { "version": "1.1.2", - "bundled": true + "bundled": true, + "dev": true }, "repeat-string": { "version": "1.6.1", - "bundled": true + "bundled": true, + "dev": true }, "repeating": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-finite": "1.0.2" } }, "require-directory": { "version": "2.1.1", - "bundled": true + "bundled": true, + "dev": true }, "require-main-filename": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "resolve-from": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "resolve-url": { "version": "0.2.1", - "bundled": true + "bundled": true, + "dev": true }, "ret": { "version": "0.1.15", - "bundled": true + "bundled": true, + "dev": true }, "right-align": { "version": "0.1.3", "bundled": true, + "dev": true, "optional": true, "requires": { "align-text": "0.1.4" @@ -5124,6 +7260,7 @@ "rimraf": { "version": "2.6.2", "bundled": true, + "dev": true, "requires": { "glob": "7.1.2" } @@ -5131,21 +7268,25 @@ "safe-regex": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { "ret": "0.1.15" } }, "semver": { "version": "5.5.0", - "bundled": true + "bundled": true, + "dev": true }, "set-blocking": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "set-value": { "version": "2.0.0", "bundled": true, + "dev": true, "requires": { "extend-shallow": "2.0.1", "is-extendable": "0.1.1", @@ -5156,6 +7297,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -5165,25 +7307,30 @@ "shebang-command": { "version": "1.2.0", "bundled": true, + "dev": true, "requires": { "shebang-regex": "1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "signal-exit": { "version": "3.0.2", - "bundled": true + "bundled": true, + "dev": true }, "slide": { "version": "1.1.6", - "bundled": true + "bundled": true, + "dev": true }, "snapdragon": { "version": "0.8.2", "bundled": true, + "dev": true, "requires": { "base": "0.11.2", "debug": "2.6.9", @@ -5198,6 +7345,7 @@ "define-property": { "version": "0.2.5", "bundled": true, + "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -5205,6 +7353,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -5214,6 +7363,7 @@ "snapdragon-node": { "version": "2.1.1", "bundled": true, + "dev": true, "requires": { "define-property": "1.0.0", "isobject": "3.0.1", @@ -5223,6 +7373,7 @@ "define-property": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "is-descriptor": "1.0.2" } @@ -5230,6 +7381,7 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "6.0.2" } @@ -5237,6 +7389,7 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "6.0.2" } @@ -5244,6 +7397,7 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -5252,28 +7406,33 @@ }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "snapdragon-util": { "version": "3.0.1", "bundled": true, + "dev": true, "requires": { "kind-of": "3.2.2" } }, "source-map": { "version": "0.5.7", - "bundled": true + "bundled": true, + "dev": true }, "source-map-resolve": { "version": "0.5.1", "bundled": true, + "dev": true, "requires": { "atob": "2.1.1", "decode-uri-component": "0.2.0", @@ -5284,11 +7443,13 @@ }, "source-map-url": { "version": "0.4.0", - "bundled": true + "bundled": true, + "dev": true }, "spawn-wrap": { "version": "1.4.2", "bundled": true, + "dev": true, "requires": { "foreground-child": "1.5.6", "mkdirp": "0.5.1", @@ -5301,6 +7462,7 @@ "spdx-correct": { "version": "3.0.0", "bundled": true, + "dev": true, "requires": { "spdx-expression-parse": "3.0.0", "spdx-license-ids": "3.0.0" @@ -5308,11 +7470,13 @@ }, "spdx-exceptions": { "version": "2.1.0", - "bundled": true + "bundled": true, + "dev": true }, "spdx-expression-parse": { "version": "3.0.0", "bundled": true, + "dev": true, "requires": { "spdx-exceptions": "2.1.0", "spdx-license-ids": "3.0.0" @@ -5320,11 +7484,13 @@ }, "spdx-license-ids": { "version": "3.0.0", - "bundled": true + "bundled": true, + "dev": true }, "split-string": { "version": "3.1.0", "bundled": true, + "dev": true, "requires": { "extend-shallow": "3.0.2" } @@ -5332,6 +7498,7 @@ "static-extend": { "version": "0.1.2", "bundled": true, + "dev": true, "requires": { "define-property": "0.2.5", "object-copy": "0.1.0" @@ -5340,6 +7507,7 @@ "define-property": { "version": "0.2.5", "bundled": true, + "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -5349,6 +7517,7 @@ "string-width": { "version": "2.1.1", "bundled": true, + "dev": true, "requires": { "is-fullwidth-code-point": "2.0.0", "strip-ansi": "4.0.0" @@ -5356,11 +7525,13 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true + "bundled": true, + "dev": true }, "strip-ansi": { "version": "4.0.0", "bundled": true, + "dev": true, "requires": { "ansi-regex": "3.0.0" } @@ -5370,6 +7541,7 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, + "dev": true, "requires": { "ansi-regex": "2.1.1" } @@ -5377,21 +7549,25 @@ "strip-bom": { "version": "2.0.0", "bundled": true, + "dev": true, "requires": { "is-utf8": "0.2.1" } }, "strip-eof": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "supports-color": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "test-exclude": { "version": "4.2.1", "bundled": true, + "dev": true, "requires": { "arrify": "1.0.1", "micromatch": "3.1.10", @@ -5402,15 +7578,18 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true + "bundled": true, + "dev": true }, "array-unique": { "version": "0.3.2", - "bundled": true + "bundled": true, + "dev": true }, "braces": { "version": "2.3.2", "bundled": true, + "dev": true, "requires": { "arr-flatten": "1.1.0", "array-unique": "0.3.2", @@ -5427,6 +7606,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -5436,6 +7616,7 @@ "expand-brackets": { "version": "2.1.4", "bundled": true, + "dev": true, "requires": { "debug": "2.6.9", "define-property": "0.2.5", @@ -5449,6 +7630,7 @@ "define-property": { "version": "0.2.5", "bundled": true, + "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -5456,6 +7638,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -5463,6 +7646,7 @@ "is-accessor-descriptor": { "version": "0.1.6", "bundled": true, + "dev": true, "requires": { "kind-of": "3.2.2" }, @@ -5470,6 +7654,7 @@ "kind-of": { "version": "3.2.2", "bundled": true, + "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -5479,6 +7664,7 @@ "is-data-descriptor": { "version": "0.1.4", "bundled": true, + "dev": true, "requires": { "kind-of": "3.2.2" }, @@ -5486,6 +7672,7 @@ "kind-of": { "version": "3.2.2", "bundled": true, + "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -5495,6 +7682,7 @@ "is-descriptor": { "version": "0.1.6", "bundled": true, + "dev": true, "requires": { "is-accessor-descriptor": "0.1.6", "is-data-descriptor": "0.1.4", @@ -5503,13 +7691,15 @@ }, "kind-of": { "version": "5.1.0", - "bundled": true + "bundled": true, + "dev": true } } }, "extglob": { "version": "2.0.4", "bundled": true, + "dev": true, "requires": { "array-unique": "0.3.2", "define-property": "1.0.0", @@ -5524,6 +7714,7 @@ "define-property": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "is-descriptor": "1.0.2" } @@ -5531,6 +7722,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -5540,6 +7732,7 @@ "fill-range": { "version": "4.0.0", "bundled": true, + "dev": true, "requires": { "extend-shallow": "2.0.1", "is-number": "3.0.0", @@ -5550,6 +7743,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -5559,6 +7753,7 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "6.0.2" } @@ -5566,6 +7761,7 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "6.0.2" } @@ -5573,6 +7769,7 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -5582,6 +7779,7 @@ "is-number": { "version": "3.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "3.2.2" }, @@ -5589,6 +7787,7 @@ "kind-of": { "version": "3.2.2", "bundled": true, + "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -5597,15 +7796,18 @@ }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true }, "micromatch": { "version": "3.1.10", "bundled": true, + "dev": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -5626,11 +7828,13 @@ }, "to-fast-properties": { "version": "1.0.3", - "bundled": true + "bundled": true, + "dev": true }, "to-object-path": { "version": "0.3.0", "bundled": true, + "dev": true, "requires": { "kind-of": "3.2.2" } @@ -5638,6 +7842,7 @@ "to-regex": { "version": "3.0.2", "bundled": true, + "dev": true, "requires": { "define-property": "2.0.2", "extend-shallow": "3.0.2", @@ -5648,6 +7853,7 @@ "to-regex-range": { "version": "2.1.1", "bundled": true, + "dev": true, "requires": { "is-number": "3.0.0", "repeat-string": "1.6.1" @@ -5656,6 +7862,7 @@ "is-number": { "version": "3.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "3.2.2" } @@ -5664,11 +7871,13 @@ }, "trim-right": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "uglify-js": { "version": "2.8.29", "bundled": true, + "dev": true, "optional": true, "requires": { "source-map": "0.5.7", @@ -5679,6 +7888,7 @@ "yargs": { "version": "3.10.0", "bundled": true, + "dev": true, "optional": true, "requires": { "camelcase": "1.2.1", @@ -5692,11 +7902,13 @@ "uglify-to-browserify": { "version": "1.0.2", "bundled": true, + "dev": true, "optional": true }, "union-value": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "arr-union": "3.1.0", "get-value": "2.0.6", @@ -5707,6 +7919,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -5714,6 +7927,7 @@ "set-value": { "version": "0.4.3", "bundled": true, + "dev": true, "requires": { "extend-shallow": "2.0.1", "is-extendable": "0.1.1", @@ -5726,6 +7940,7 @@ "unset-value": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "has-value": "0.3.1", "isobject": "3.0.1" @@ -5734,6 +7949,7 @@ "has-value": { "version": "0.3.1", "bundled": true, + "dev": true, "requires": { "get-value": "2.0.6", "has-values": "0.1.4", @@ -5743,6 +7959,7 @@ "isobject": { "version": "2.1.0", "bundled": true, + "dev": true, "requires": { "isarray": "1.0.0" } @@ -5751,34 +7968,40 @@ }, "has-values": { "version": "0.1.4", - "bundled": true + "bundled": true, + "dev": true }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "urix": { "version": "0.1.0", - "bundled": true + "bundled": true, + "dev": true }, "use": { "version": "3.1.0", "bundled": true, + "dev": true, "requires": { "kind-of": "6.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "validate-npm-package-license": { "version": "3.0.3", "bundled": true, + "dev": true, "requires": { "spdx-correct": "3.0.0", "spdx-expression-parse": "3.0.0" @@ -5787,26 +8010,31 @@ "which": { "version": "1.3.0", "bundled": true, + "dev": true, "requires": { "isexe": "2.0.0" } }, "which-module": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "window-size": { "version": "0.1.0", "bundled": true, + "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "bundled": true + "bundled": true, + "dev": true }, "wrap-ansi": { "version": "2.1.0", "bundled": true, + "dev": true, "requires": { "string-width": "1.0.2", "strip-ansi": "3.0.1" @@ -5815,6 +8043,7 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "number-is-nan": "1.0.1" } @@ -5822,6 +8051,7 @@ "string-width": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -5832,11 +8062,13 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true }, "write-file-atomic": { "version": "1.3.4", "bundled": true, + "dev": true, "requires": { "graceful-fs": "4.1.11", "imurmurhash": "0.1.4", @@ -5845,15 +8077,18 @@ }, "y18n": { "version": "3.2.1", - "bundled": true + "bundled": true, + "dev": true }, "yallist": { "version": "2.1.2", - "bundled": true + "bundled": true, + "dev": true }, "yargs": { "version": "11.1.0", "bundled": true, + "dev": true, "requires": { "cliui": "4.1.0", "decamelize": "1.2.0", @@ -5871,15 +8106,18 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true + "bundled": true, + "dev": true }, "camelcase": { "version": "4.1.0", - "bundled": true + "bundled": true, + "dev": true }, "cliui": { "version": "4.1.0", "bundled": true, + "dev": true, "requires": { "string-width": "2.1.1", "strip-ansi": "4.0.0", @@ -5889,6 +8127,7 @@ "strip-ansi": { "version": "4.0.0", "bundled": true, + "dev": true, "requires": { "ansi-regex": "3.0.0" } @@ -5896,6 +8135,7 @@ "yargs-parser": { "version": "9.0.2", "bundled": true, + "dev": true, "requires": { "camelcase": "4.1.0" } @@ -5905,13 +8145,15 @@ "yargs-parser": { "version": "8.1.0", "bundled": true, + "dev": true, "requires": { "camelcase": "4.1.0" }, "dependencies": { "camelcase": { "version": "4.1.0", - "bundled": true + "bundled": true, + "dev": true } } } @@ -6606,9 +8848,9 @@ "integrity": "sha1-Jiw28CMc+nZU4jY/o5TNLexm83g=" }, "secp256k1": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.5.0.tgz", - "integrity": "sha512-e5QIJl8W7Y4tT6LHffVcZAxJjvpgE5Owawv6/XCYPQljE9aP2NFFddQ8OYMKhdLshNu88FfL3qCN3/xYkXGRsA==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.5.2.tgz", + "integrity": "sha512-iin3kojdybY6NArd+UFsoTuapOF7bnJNf2UbcWXaY3z+E1sJDipl60vtzB5hbO/uquBu7z0fd4VC4Irp+xoFVQ==", "requires": { "bindings": "1.3.0", "bip66": "1.1.5", diff --git a/src/Address.js b/src/Address.js index 299f0b7d..e71521d7 100644 --- a/src/Address.js +++ b/src/Address.js @@ -1,6 +1,8 @@ import axios from 'axios'; import bchaddr from 'bchaddrjs'; import Bitcoin from 'bitcoincashjs-lib'; +import bs58 from 'bs58'; + class Address { constructor(restURL) { @@ -20,6 +22,14 @@ class Address { } } + // Converts address to RIPEMD-160 hash + toHash160(address) { + let legacyAddress = bchaddr.toLegacyAddress(address); + let bytes = bs58.decode(legacyAddress); + let strippedBytes = bytes.slice(1,21); + return strippedBytes.toString('hex'); + } + // Test for address format. isLegacyAddress(address) { return bchaddr.isLegacyAddress(address); diff --git a/test/Address.js b/test/Address.js index f34d940c..6a1d8c84 100644 --- a/test/Address.js +++ b/test/Address.js @@ -53,6 +53,12 @@ let CASHADDR_ADDRESSES_NO_PREFIX = CASHADDR_ADDRESSES.map((address) => { return parts[1]; }) +let RIPEMD_160_HASHES = flatten([ + fixtures.hash160MainnetP2PKH, + fixtures.hash160MainnetP2SH, + fixtures.hash160TestnetP2PKH +]); + let P2PKH_ADDRESSES = flatten([ fixtures.legacyMainnetP2PKH, fixtures.legacyTestnetP2PKH, @@ -133,6 +139,32 @@ describe('#addressConversion', () => { }) }); }); + describe('#toHash160', () => { + it('should convert legacy base58check address to hash160', () => { + assert.deepEqual( + LEGACY_ADDRESSES.map(BITBOX.Address.toHash160), + RIPEMD_160_HASHES + ); + }) + + it('should convert cashaddr address to hash160', () => { + assert.deepEqual( + CASHADDR_ADDRESSES.map(BITBOX.Address.toHash160), + RIPEMD_160_HASHES + ); + }); + + describe('errors', () => { + it('should fail when called with an invalid address', () => { + assert.throws(() => { + BITBOX.Address.toHash160() + }, BITBOX.BitcoinCash.InvalidAddressError) + assert.throws(() => { + BITBOX.Address.toHash160('some invalid address') + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }); + }); }); describe('address format detection', () => { diff --git a/test/fixtures/Address.json b/test/fixtures/Address.json index 8913722c..b08aaf3b 100644 --- a/test/fixtures/Address.json +++ b/test/fixtures/Address.json @@ -71,6 +71,42 @@ "bchtest:qpuxsqzgq3j0a58tnmwpgcrwwyrkenalevaeknklfg", "bchtest:qpgrlg0yqmdf4y8q980e57tx6v7vrvds2ug89n8w8q" ], + "hash160MainnetP2PKH": [ + "573d93b475be4f1925f3b74ed951201b0147eac1", + "c6a872e524a03b7d400c425d7b974a35c78f4634", + "6c9456d8b14aeb409086a6ce817d4e7b74cc830c", + "428df38e23fc879a25819427995c3e6355b12d33", + "c9239ab0f3130c1f5596de6ef6c502727022caad", + "0cd440a628cd567915cf6963102392ac574d9a2d", + "f1c426f508cc2f9c02074445dfc45f31ab5400c2", + "22a22aeffc964232a6b59fe42c83c7d8a3381480", + "cce6fee93513534133fbd073fb34c62140f08782", + "a85a67d277620ab1cad3af3d0b02d19feaeb45fa" + ], + "hash160MainnetP2SH": [ + "7dc85da64d1d93ef01ef62e0221c02f512e3942f", + "61c0d3b62301fa3aba01730134a9304c5f3fb809", + "c531daf34e8408743afeb55e905c51b99d7b99aa", + "6fbd9de114ffa0cedb176c28f6fd491bb65dc2c4", + "b411aa88d6f9f0bed9814d3dc1bd7f2a34d6aaec", + "8a0ce890399ff29c59425fd28fb9a8b33b16840d", + "81b93ac72a8b25817eee3d014b9d72e0ed9aebe5", + "656566b3157d3a3ee141c5a9ae974cb3d912b821", + "f9b7afcb0605f275ca6c5ebd8651964a051be276", + "8fd3c7df5aecc95a087ca5bdf3e0626c8080786a" + ], + "hash160TestnetP2PKH": [ + "155187a3283b08b30519db50bc23bbba9f4b6657", + "452d79dbfc007e2d6d6b5bd0ca5d71390e0f38ed", + "9682e2bc8fdb7468fb020430ff3aee4aabba69cd", + "f3b561158da1b67fbb0df3c19d09436f7b53db22", + "6b24c67eabec94dbfd6f3e5d1a60a35634fd1535", + "fe034c5ce6aec620a0c8dfb7962475a53e79dbf1", + "eb59a465ca0cbf5fdf336cb496dd936054b9a636", + "6df4b55ae79ebed65e0d56e33156a74262d02f00", + "786800480464fed0eb9edc14606e71076ccfbfcb", + "503fa1e406da9a90e029df9a7966d33cc1b1b057" + ], "mainnetXPub": [ { "xpub": "xpub6CVcpZVmPNjuniVYu1mLnLjDBfxWpx7LS25uxwRm5BLbXMCJmRaQgAxuqZDoYDeidJUh5QUatLJPWpeCkEK648hExyKFezqxJz4CMfEoYAc", From 9fbeabe63084b35625db8e1965954e7147ea2deb Mon Sep 17 00:00:00 2001 From: Sam Cheng Hung Date: Fri, 24 Aug 2018 13:57:31 +0800 Subject: [PATCH 069/480] Fixes typo in addressConversion > toCashAddress test case --- test/Address.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/Address.js b/test/Address.js index f34d940c..a8a6bf43 100644 --- a/test/Address.js +++ b/test/Address.js @@ -125,10 +125,10 @@ describe('#addressConversion', () => { describe('errors', () => { it('should fail when called with an invalid address', () => { assert.throws(() => { - BITBOX.BitcoinCash.Addresst.oCashAddress() + BITBOX.BitcoinCash.Address.toCashAddress() }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.BitcoinCash.Addresst.toCashAddress('some invalid address') + BITBOX.BitcoinCash.Address.toCashAddress('some invalid address') }, BITBOX.BitcoinCash.InvalidAddressError) }) }); From 8dcea2ffdad33df9472da942aa47902bf76b7efd Mon Sep 17 00:00:00 2001 From: Sam Cheng Hung Date: Fri, 24 Aug 2018 17:03:19 +0800 Subject: [PATCH 070/480] Updates converter to utilise bitcoincashjs-lib functions --- lib/Address.js | 5 ++--- src/Address.js | 6 ++---- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/lib/Address.js b/lib/Address.js index fee0050e..5efca38f 100644 --- a/lib/Address.js +++ b/lib/Address.js @@ -59,9 +59,8 @@ var Address = function () { key: 'toHash160', value: function toHash160(address) { var legacyAddress = _bchaddrjs2.default.toLegacyAddress(address); - var bytes = _bs2.default.decode(legacyAddress); - var strippedBytes = bytes.slice(1, 21); - return strippedBytes.toString('hex'); + var bytes = _bitcoincashjsLib2.default.address.fromBase58Check(legacyAddress); + return bytes.hash.toString('hex'); } // Test for address format. diff --git a/src/Address.js b/src/Address.js index e71521d7..d924b27b 100644 --- a/src/Address.js +++ b/src/Address.js @@ -1,7 +1,6 @@ import axios from 'axios'; import bchaddr from 'bchaddrjs'; import Bitcoin from 'bitcoincashjs-lib'; -import bs58 from 'bs58'; class Address { @@ -25,9 +24,8 @@ class Address { // Converts address to RIPEMD-160 hash toHash160(address) { let legacyAddress = bchaddr.toLegacyAddress(address); - let bytes = bs58.decode(legacyAddress); - let strippedBytes = bytes.slice(1,21); - return strippedBytes.toString('hex'); + let bytes = Bitcoin.address.fromBase58Check(legacyAddress); + return bytes.hash.toString('hex'); } // Test for address format. From e3484269be0b06e691d9aca1c8c91e06b03be141 Mon Sep 17 00:00:00 2001 From: Sam Cheng Hung Date: Fri, 24 Aug 2018 17:35:09 +0800 Subject: [PATCH 071/480] Adds toLegacyAddressFromHash160 and tests for mainnet address build --- lib/Address.js | 16 ++++++++++++---- src/Address.js | 7 +++++++ test/Address.js | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 4 deletions(-) diff --git a/lib/Address.js b/lib/Address.js index 5efca38f..80a7db83 100644 --- a/lib/Address.js +++ b/lib/Address.js @@ -18,10 +18,6 @@ var _bitcoincashjsLib = require('bitcoincashjs-lib'); var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); -var _bs = require('bs58'); - -var _bs2 = _interopRequireDefault(_bs); - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -63,6 +59,18 @@ var Address = function () { return bytes.hash.toString('hex'); } + // Converts RIPEMD-160 hash to Legacy Address + + }, { + key: 'toLegacyAddressFromHash160', + value: function toLegacyAddressFromHash160(ripemd160) { + var network = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _bitcoincashjsLib2.default.networks.bitcoin.pubKeyHash; + + var buffer = Buffer(ripemd160, 'hex'); + var legacyAddress = _bitcoincashjsLib2.default.address.toBase58Check(buffer, network); + return legacyAddress; + } + // Test for address format. }, { diff --git a/src/Address.js b/src/Address.js index d924b27b..44b37e8b 100644 --- a/src/Address.js +++ b/src/Address.js @@ -28,6 +28,13 @@ class Address { return bytes.hash.toString('hex'); } + // Converts RIPEMD-160 hash to Legacy Address + toLegacyAddressFromHash160(ripemd160, network = Bitcoin.networks.bitcoin.pubKeyHash) { + let buffer = Buffer(ripemd160, 'hex'); + let legacyAddress = Bitcoin.address.toBase58Check(buffer, network); + return legacyAddress; + } + // Test for address format. isLegacyAddress(address) { return bchaddr.isLegacyAddress(address); diff --git a/test/Address.js b/test/Address.js index 6a1d8c84..01b7c792 100644 --- a/test/Address.js +++ b/test/Address.js @@ -154,14 +154,46 @@ describe('#addressConversion', () => { ); }); + it('should build mainnet legacy base58check address from hash160', () => { + assert.deepEqual( + fixtures.hash160MainnetP2PKH.map(hash160 => BITBOX.Address.toLegacyAddressFromHash160(hash160)), + fixtures.legacyMainnetP2PKH + ); + }) + describe('errors', () => { it('should fail when called with an invalid address', () => { assert.throws(() => { BITBOX.Address.toHash160() }, BITBOX.BitcoinCash.InvalidAddressError) + assert.throws(() => { + BITBOX.Address.toLegacyAddressFromHash160() + }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { BITBOX.Address.toHash160('some invalid address') }, BITBOX.BitcoinCash.InvalidAddressError) + assert.throws(() => { + BITBOX.Address.toLegacyAddressFromHash160('some invalid address') + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }); + }); + describe('#toLegacyAddressFromHash160', () => { + it('should build mainnet legacy base58check address from hash160', () => { + assert.deepEqual( + fixtures.hash160MainnetP2PKH.map(hash160 => BITBOX.Address.toLegacyAddressFromHash160(hash160)), + fixtures.legacyMainnetP2PKH + ); + }) + + describe('errors', () => { + it('should fail when called with an invalid address', () => { + assert.throws(() => { + BITBOX.Address.toLegacyAddressFromHash160() + }, BITBOX.BitcoinCash.InvalidAddressError) + assert.throws(() => { + BITBOX.Address.toLegacyAddressFromHash160('some invalid address') + }, BITBOX.BitcoinCash.InvalidAddressError) }) }); }); From e7f872d80d3519cbed5276b7b8fac628b3d9c8a8 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sat, 25 Aug 2018 09:56:15 -0700 Subject: [PATCH 072/480] More info --- README.md | 2 ++ index.js | 2 +- package.json | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8ada0842..560893ae 100644 --- a/README.md +++ b/README.md @@ -48,3 +48,5 @@ Open Source / Creative Commons Listings ## Font awesome [Cube icon](https://fontawesome.com/icons/cube?style=solid) available under [CC v4.0](https://creativecommons.org/licenses/by/4.0/) + +[More info](https://developer.bitcoin.com/bitbox.html) diff --git a/index.js b/index.js index 47705348..6b7ae8f5 100755 --- a/index.js +++ b/index.js @@ -18,7 +18,7 @@ let clone = require('git-clone'); let cmd = require('node-cmd'); program - .version('1.6.0'); + .version('1.6.1'); program .command('new ') diff --git a/package.json b/package.json index 0996c010..df0332d0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.6.0", + "version": "1.6.1", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", From 4ef87432d19be4652774d0ab6b286c5072de635a Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sat, 25 Aug 2018 10:00:55 -0700 Subject: [PATCH 073/480] Cleanup. --- lib/Crypto.js | 9 --------- src/Crypto.js | 4 ---- 2 files changed, 13 deletions(-) diff --git a/lib/Crypto.js b/lib/Crypto.js index 6760b6b7..080bd1bb 100644 --- a/lib/Crypto.js +++ b/lib/Crypto.js @@ -10,10 +10,6 @@ var _randombytes = require('randombytes'); var _randombytes2 = _interopRequireDefault(_randombytes); -var _BitcoinCash = require('./BitcoinCash'); - -var _BitcoinCash2 = _interopRequireDefault(_BitcoinCash); - var _bitcoincashjsLib = require('bitcoincashjs-lib'); var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); @@ -22,8 +18,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var bc = new _BitcoinCash2.default(); - var Crypto = function () { function Crypto() { _classCallCheck(this, Crypto); @@ -31,9 +25,6 @@ var Crypto = function () { _createClass(Crypto, null, [{ key: 'sha256', - - // Utility class to wrap NodeJS's crypto module - // https://nodejs.org/api/crypto.html value: function sha256(buffer) { return _bitcoincashjsLib2.default.crypto.sha256(buffer); } diff --git a/src/Crypto.js b/src/Crypto.js index 86d7fd0a..03cc97d6 100644 --- a/src/Crypto.js +++ b/src/Crypto.js @@ -1,11 +1,7 @@ import randomBytes from 'randombytes'; -import BitcoinCash from './BitcoinCash'; import Bitcoin from 'bitcoincashjs-lib'; -let bc = new BitcoinCash(); class Crypto { - // Utility class to wrap NodeJS's crypto module - // https://nodejs.org/api/crypto.html static sha256(buffer) { return Bitcoin.crypto.sha256(buffer); } From ad32e31774096a99fec4cca4770dee01771e26ce Mon Sep 17 00:00:00 2001 From: Sam Cheng Hung Date: Mon, 27 Aug 2018 17:04:04 +0800 Subject: [PATCH 074/480] Renames hash160 functions and adds more utility for different address formats. Adds more test cases. --- lib/Address.js | 21 +++++++++++---- src/Address.js | 14 +++++++--- test/Address.js | 71 ++++++++++++++++++++++++++++++++++--------------- 3 files changed, 76 insertions(+), 30 deletions(-) diff --git a/lib/Address.js b/lib/Address.js index 80a7db83..497e48ab 100644 --- a/lib/Address.js +++ b/lib/Address.js @@ -49,7 +49,7 @@ var Address = function () { } } - // Converts address to RIPEMD-160 hash + // Converts any address format to hash160 }, { key: 'toHash160', @@ -59,18 +59,29 @@ var Address = function () { return bytes.hash.toString('hex'); } - // Converts RIPEMD-160 hash to Legacy Address + // Converts hash160 to Legacy Address }, { - key: 'toLegacyAddressFromHash160', - value: function toLegacyAddressFromHash160(ripemd160) { + key: 'hash160ToLegacy', + value: function hash160ToLegacy(hash160) { var network = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _bitcoincashjsLib2.default.networks.bitcoin.pubKeyHash; - var buffer = Buffer(ripemd160, 'hex'); + var buffer = Buffer(hash160, 'hex'); var legacyAddress = _bitcoincashjsLib2.default.address.toBase58Check(buffer, network); return legacyAddress; } + // Converts hash160 to Cash Address + + }, { + key: 'hash160ToCash', + value: function hash160ToCash(hash160) { + var network = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _bitcoincashjsLib2.default.networks.bitcoin.pubKeyHash; + + var legacyAddress = this.hash160ToLegacy(hash160, network); + return this.toCashAddress(legacyAddress); + } + // Test for address format. }, { diff --git a/src/Address.js b/src/Address.js index 44b37e8b..85e4b6e1 100644 --- a/src/Address.js +++ b/src/Address.js @@ -21,20 +21,26 @@ class Address { } } - // Converts address to RIPEMD-160 hash + // Converts any address format to hash160 toHash160(address) { let legacyAddress = bchaddr.toLegacyAddress(address); let bytes = Bitcoin.address.fromBase58Check(legacyAddress); return bytes.hash.toString('hex'); } - // Converts RIPEMD-160 hash to Legacy Address - toLegacyAddressFromHash160(ripemd160, network = Bitcoin.networks.bitcoin.pubKeyHash) { - let buffer = Buffer(ripemd160, 'hex'); + // Converts hash160 to Legacy Address + hash160ToLegacy(hash160, network = Bitcoin.networks.bitcoin.pubKeyHash) { + let buffer = Buffer(hash160, 'hex'); let legacyAddress = Bitcoin.address.toBase58Check(buffer, network); return legacyAddress; } + // Converts hash160 to Cash Address + hash160ToCash(hash160, network = Bitcoin.networks.bitcoin.pubKeyHash) { + let legacyAddress = this.hash160ToLegacy(hash160, network); + return this.toCashAddress(legacyAddress); + } + // Test for address format. isLegacyAddress(address) { return bchaddr.isLegacyAddress(address); diff --git a/test/Address.js b/test/Address.js index 01b7c792..b9b0dafb 100644 --- a/test/Address.js +++ b/test/Address.js @@ -5,6 +5,7 @@ let BITBOXCli = require('./../lib/bitbox-cli').default; let BITBOX = new BITBOXCli(); let axios = require('axios'); let sinon = require('sinon'); +let Bitcoin = require('bitcoincashjs-lib'); function flatten (arrays) { return [].concat.apply([], arrays) @@ -53,7 +54,7 @@ let CASHADDR_ADDRESSES_NO_PREFIX = CASHADDR_ADDRESSES.map((address) => { return parts[1]; }) -let RIPEMD_160_HASHES = flatten([ +let HASH160_HASHES = flatten([ fixtures.hash160MainnetP2PKH, fixtures.hash160MainnetP2SH, fixtures.hash160TestnetP2PKH @@ -143,56 +144,84 @@ describe('#addressConversion', () => { it('should convert legacy base58check address to hash160', () => { assert.deepEqual( LEGACY_ADDRESSES.map(BITBOX.Address.toHash160), - RIPEMD_160_HASHES + HASH160_HASHES ); }) it('should convert cashaddr address to hash160', () => { assert.deepEqual( CASHADDR_ADDRESSES.map(BITBOX.Address.toHash160), - RIPEMD_160_HASHES + HASH160_HASHES ); }); - it('should build mainnet legacy base58check address from hash160', () => { - assert.deepEqual( - fixtures.hash160MainnetP2PKH.map(hash160 => BITBOX.Address.toLegacyAddressFromHash160(hash160)), - fixtures.legacyMainnetP2PKH - ); - }) - describe('errors', () => { it('should fail when called with an invalid address', () => { assert.throws(() => { BITBOX.Address.toHash160() }, BITBOX.BitcoinCash.InvalidAddressError) - assert.throws(() => { - BITBOX.Address.toLegacyAddressFromHash160() - }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { BITBOX.Address.toHash160('some invalid address') }, BITBOX.BitcoinCash.InvalidAddressError) - assert.throws(() => { - BITBOX.Address.toLegacyAddressFromHash160('some invalid address') - }, BITBOX.BitcoinCash.InvalidAddressError) }) }); }); - describe('#toLegacyAddressFromHash160', () => { - it('should build mainnet legacy base58check address from hash160', () => { + describe('#fromHash160', () => { + it('should convert hash160 to mainnet P2PKH legacy base58check address', () => { assert.deepEqual( - fixtures.hash160MainnetP2PKH.map(hash160 => BITBOX.Address.toLegacyAddressFromHash160(hash160)), + fixtures.hash160MainnetP2PKH.map(hash160 => BITBOX.Address.hash160ToLegacy(hash160)), fixtures.legacyMainnetP2PKH ); }) + it('should convert hash160 to mainnet P2SH legacy base58check address', () => { + assert.deepEqual( + fixtures.hash160MainnetP2SH.map(hash160 => BITBOX.Address.hash160ToLegacy(hash160, Bitcoin.networks.bitcoin.scriptHash)), + fixtures.legacyMainnetP2SH + ); + }) + + it('should convert hash160 to testnet P2PKH legacy base58check address', () => { + assert.deepEqual( + fixtures.hash160TestnetP2PKH.map(hash160 => BITBOX.Address.hash160ToLegacy(hash160, Bitcoin.networks.testnet.pubKeyHash)), + fixtures.legacyTestnetP2PKH + ); + }) + + it('should convert hash160 to mainnet P2PKH cash address', () => { + assert.deepEqual( + fixtures.hash160MainnetP2PKH.map(hash160 => BITBOX.Address.hash160ToCash(hash160)), + fixtures.cashaddrMainnetP2PKH + ); + }) + + it('should convert hash160 to mainnet P2SH cash address', () => { + assert.deepEqual( + fixtures.hash160MainnetP2SH.map(hash160 => BITBOX.Address.hash160ToCash(hash160, Bitcoin.networks.bitcoin.scriptHash)), + fixtures.cashaddrMainnetP2SH + ); + }) + + it('should convert hash160 to testnet P2PKH cash address', () => { + assert.deepEqual( + fixtures.hash160TestnetP2PKH.map(hash160 => BITBOX.Address.hash160ToCash(hash160, Bitcoin.networks.testnet.pubKeyHash)), + fixtures.cashaddrTestnetP2PKH + ); + }) + describe('errors', () => { it('should fail when called with an invalid address', () => { assert.throws(() => { - BITBOX.Address.toLegacyAddressFromHash160() + BITBOX.Address.hash160ToLegacy() + }, BITBOX.BitcoinCash.InvalidAddressError) + assert.throws(() => { + BITBOX.Address.hash160ToLegacy('some invalid address') + }, BITBOX.BitcoinCash.InvalidAddressError) + assert.throws(() => { + BITBOX.Address.hash160ToCash() }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.toLegacyAddressFromHash160('some invalid address') + BITBOX.Address.hash160ToCash('some invalid address') }, BITBOX.BitcoinCash.InvalidAddressError) }) }); From a7a6418128404ec6c5469423931b6bafcece8c33 Mon Sep 17 00:00:00 2001 From: Sam Cheng Hung Date: Mon, 27 Aug 2018 17:07:01 +0800 Subject: [PATCH 075/480] Removes extra line --- src/Address.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Address.js b/src/Address.js index 85e4b6e1..c67aac57 100644 --- a/src/Address.js +++ b/src/Address.js @@ -2,7 +2,6 @@ import axios from 'axios'; import bchaddr from 'bchaddrjs'; import Bitcoin from 'bitcoincashjs-lib'; - class Address { constructor(restURL) { this.restURL = restURL; From c00ab364236c2af980c68d25586e495cb16d7d2d Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Mon, 27 Aug 2018 08:17:12 -0700 Subject: [PATCH 076/480] Address toHash160, hash160ToLegacy, hash160Cash and tests --- index.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 6b7ae8f5..411c8d1c 100755 --- a/index.js +++ b/index.js @@ -18,7 +18,7 @@ let clone = require('git-clone'); let cmd = require('node-cmd'); program - .version('1.6.1'); + .version('1.6.2'); program .command('new ') diff --git a/package.json b/package.json index df0332d0..1abaa2a9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.6.1", + "version": "1.6.2", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", From 7c29586236cad50e5e93725eb2eef2a0d6c0d2b0 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 29 Aug 2018 13:27:52 -0700 Subject: [PATCH 077/480] Refactored error handling. --- index.js | 2 +- lib/Address.js | 6 +- lib/Block.js | 2 +- lib/Blockchain.js | 353 +--- lib/Control.js | 42 +- lib/Generating.js | 13 +- lib/Mining.js | 65 +- lib/Network.js | 170 +- lib/Price.js | 2 +- lib/RawTransactions.js | 45 +- lib/Transaction.js | 2 +- lib/Util.js | 22 +- package-lock.json | 3466 +++++++++------------------------------- package.json | 2 +- src/Address.js | 6 +- src/Block.js | 2 +- src/Blockchain.js | 353 +--- src/Control.js | 42 +- src/Generating.js | 13 +- src/Mining.js | 65 +- src/Network.js | 170 +- src/Price.js | 2 +- src/RawTransactions.js | 45 +- src/Transaction.js | 2 +- src/Util.js | 22 +- 25 files changed, 891 insertions(+), 4023 deletions(-) diff --git a/index.js b/index.js index 411c8d1c..d5b105fe 100755 --- a/index.js +++ b/index.js @@ -18,7 +18,7 @@ let clone = require('git-clone'); let cmd = require('node-cmd'); program - .version('1.6.2'); + .version('1.6.3'); program .command('new ') diff --git a/lib/Address.js b/lib/Address.js index ccc90007..072b2a3e 100644 --- a/lib/Address.js +++ b/lib/Address.js @@ -187,7 +187,7 @@ var Address = function () { var response = await _axios2.default.get(this.restURL + 'address/details/' + address); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } }, { @@ -201,7 +201,7 @@ var Address = function () { var response = await _axios2.default.get(this.restURL + 'address/utxo/' + address); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } }, { @@ -215,7 +215,7 @@ var Address = function () { var response = await _axios2.default.get(this.restURL + 'address/unconfirmed/' + address); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } }]); diff --git a/lib/Block.js b/lib/Block.js index 135852b3..483c33cc 100644 --- a/lib/Block.js +++ b/lib/Block.js @@ -28,7 +28,7 @@ var Block = function () { var response = await _axios2.default.get(this.restURL + 'block/details/' + id); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } }]); diff --git a/lib/Blockchain.js b/lib/Blockchain.js index de04fb17..ac8cb738 100644 --- a/lib/Blockchain.js +++ b/lib/Blockchain.js @@ -24,15 +24,11 @@ var Blockchain = function () { _createClass(Blockchain, [{ key: 'getBestBlockHash', value: async function getBestBlockHash() { - // Returns the hash of the best (tip) block in the longest blockchain. - // - // Result: - // "hex" (string) the block hash hex encoded try { var response = await _axios2.default.get(this.restURL + 'blockchain/getBestBlockHash'); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } }, { @@ -40,69 +36,31 @@ var Blockchain = function () { value: async function getBlock(blockhash) { var verbose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - // If verbose is false, returns a string that is serialized, hex-encoded data for block 'hash'. - // If verbose is true, returns an Object with information about block . - // - // Arguments: - // 1. "blockhash" (string, required) The block hash - // 2. verbose (boolean, optional, default=true) true for a json object, false for the hex encoded data - // - // Result (for verbose = true): - // { - // "hash" : "hash", (string) the block hash (same as provided) - // "confirmations" : n, (numeric) The number of confirmations, or -1 if the block is not on the main chain - // "size" : n, (numeric) The block size - // "height" : n, (numeric) The block height or index - // "version" : n, (numeric) The block version - // "versionHex" : "00000000", (string) The block version formatted in hexadecimal - // "merkleroot" : "xxxx", (string) The merkle root - // "tx" : [ (array of string) The transaction ids - // "transactionid" (string) The transaction id - // ,... - // ], - // "time" : ttt, (numeric) The block time in seconds since epoch (Jan 1 1970 GMT) - // "mediantime" : ttt, (numeric) The median block time in seconds since epoch (Jan 1 1970 GMT) - // "nonce" : n, (numeric) The nonce - // "bits" : "1d00ffff", (string) The bits - // "difficulty" : x.xxx, (numeric) The difficulty - // "chainwork" : "xxxx", (string) Expected number of hashes required to produce the chain up to this block (in hex) - // "previousblockhash" : "hash", (string) The hash of the previous block - // "nextblockhash" : "hash" (string) The hash of the next block - // } - // - // Result (for verbose=false): - // "data" (string) A string that is serialized, hex-encoded data for block 'hash'. - try { var response = await _axios2.default.get(this.restURL + 'blockchain/getBlock/' + blockhash + '?verbose=' + verbose); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } }, { key: 'getBlockchainInfo', value: async function getBlockchainInfo() { - // Returns an object containing various state info regarding blockchain processing. try { var response = await _axios2.default.get(this.restURL + 'blockchain/getBlockchainInfo'); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } }, { key: 'getBlockCount', value: async function getBlockCount() { - // Returns the number of blocks in the longest blockchain. - // - // Result: - // n (numeric) The current block count try { var response = await _axios2.default.get(this.restURL + 'blockchain/getBlockCount'); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } }, { @@ -110,13 +68,6 @@ var Blockchain = function () { value: async function getBlockHash() { var height = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; - // Returns hash of block in best-block-chain at height provided. - // - // Arguments: - // 1. height (numeric, required) The height index - // - // Result: - // "hash" (string) The block hash if (typeof height !== 'string') { height = JSON.stringify(height); } @@ -124,7 +75,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + 'blockchain/getBlockHash/' + height); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } }, { @@ -132,34 +83,6 @@ var Blockchain = function () { value: async function getBlockHeader(hash) { var verbose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - - // If verbose is false, returns a string that is serialized, hex-encoded data for blockheader 'hash'. - // If verbose is true, returns an Object with information about blockheader . - // - // Arguments: - // 1. "hash" (string, required) The block hash - // 2. verbose (boolean, optional, default=true) true for a json object, false for the hex encoded data - // - // Result (for verbose = true): - // { - // "hash" : "hash", (string) the block hash (same as provided) - // "confirmations" : n, (numeric) The number of confirmations, or -1 if the block is not on the main chain - // "height" : n, (numeric) The block height or index - // "version" : n, (numeric) The block version - // "versionHex" : "00000000", (string) The block version formatted in hexadecimal - // "merkleroot" : "xxxx", (string) The merkle root - // "time" : ttt, (numeric) The block time in seconds since epoch (Jan 1 1970 GMT) - // "mediantime" : ttt, (numeric) The median block time in seconds since epoch (Jan 1 1970 GMT) - // "nonce" : n, (numeric) The nonce - // "bits" : "1d00ffff", (string) The bits - // "difficulty" : x.xxx, (numeric) The difficulty - // "chainwork" : "0000...1f3" (string) Expected number of hashes required to produce the current chain (in hex) - // "previousblockhash" : "hash", (string) The hash of the previous block - // "nextblockhash" : "hash", (string) The hash of the next block - // } - // - // Result (for verbose=false): - // "data" (string) A string that is serialized, hex-encoded data for block 'hash'. if (typeof hash !== 'string') { hash = JSON.stringify(hash); } @@ -167,57 +90,27 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + 'blockchain/getBlockHeader/' + hash + '?verbose=' + verbose); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } }, { key: 'getChainTips', value: async function getChainTips() { - // Return information about all known tips in the block tree, including the main chain as well as orphaned branches. - // - // Result: - // [ - // { - // "height": xxxx, (numeric) height of the chain tip - // "hash": "xxxx", (string) block hash of the tip - // "branchlen": 0 (numeric) zero for main chain - // "status": "active" (string) "active" for the main chain - // }, - // { - // "height": xxxx, - // "hash": "xxxx", - // "branchlen": 1 (numeric) length of branch connecting the tip to the main chain - // "status": "xxxx" (string) status of the chain (active, valid-fork, valid-headers, headers-only, invalid) - // } - // ] - // Possible values for status: - // 1. "invalid" This branch contains at least one invalid block - // 2. "headers-only" Not all blocks for this branch are available, but the headers are valid - // 3. "valid-headers" All blocks are available for this branch, but they were never fully validated - // 4. "valid-fork" This branch is not part of the active chain, but is fully validated - // 5. "active" This is the tip of the active main chain, which is certainly valid - try { var response = await _axios2.default.get(this.restURL + 'blockchain/getChainTips'); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } }, { key: 'getDifficulty', value: async function getDifficulty() { - - // Returns the proof-of-work difficulty as a multiple of the minimum difficulty. - // - // Result: - // n.nnn (numeric) the proof-of-work difficulty as a multiple of the minimum difficulty. - try { var response = await _axios2.default.get(this.restURL + 'blockchain/getDifficulty'); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } }, { @@ -225,39 +118,6 @@ var Blockchain = function () { value: async function getMempoolAncestors(txid) { var verbose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - // If txid is in the mempool, returns all in-mempool ancestors. - // - // Arguments: - // 1. "txid" (string, required) The transaction id (must be in mempool) - // 2. verbose (boolean, optional, default=false) True for a json object, false for array of transaction ids - // - // Result (for verbose=false): - // [ (json array of strings) - // "transactionid" (string) The transaction id of an in-mempool ancestor transaction - // ,... - // ] - // - // Result (for verbose=true): - // { (json object) - // "transactionid" : { (json object) - // "size" : n, (numeric) transaction size. - // "fee" : n, (numeric) transaction fee in BCH - // "modifiedfee" : n, (numeric) transaction fee with fee deltas used for mining priority - // "time" : n, (numeric) local time transaction entered pool in seconds since 1 Jan 1970 GMT - // "height" : n, (numeric) block height when transaction entered pool - // "startingpriority" : n, (numeric) DEPRECATED. Priority when transaction entered pool - // "currentpriority" : n, (numeric) DEPRECATED. Transaction priority now - // "descendantcount" : n, (numeric) number of in-mempool descendant transactions (including this one) - // "descendantsize" : n, (numeric) virtual transaction size of in-mempool descendants (including this one) - // "descendantfees" : n, (numeric) modified fees (see above) of in-mempool descendants (including this one) - // "ancestorcount" : n, (numeric) number of in-mempool ancestor transactions (including this one) - // "ancestorsize" : n, (numeric) virtual transaction size of in-mempool ancestors (including this one) - // "ancestorfees" : n, (numeric) modified fees (see above) of in-mempool ancestors (including this one) - // "depends" : [ (array) unconfirmed transactions used as inputs for this transaction - // "transactionid", (string) parent transaction id - // ... ] - // }, ... - // } if (typeof txid !== 'string') { txid = JSON.stringify(txid); } @@ -265,7 +125,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + 'blockchain/getMempoolAncestors/' + txid + '?verbose=' + verbose); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } }, { @@ -273,39 +133,6 @@ var Blockchain = function () { value: async function getMempoolDescendants(txid) { var verbose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - // If txid is in the mempool, returns all in-mempool descendants. - // - // Arguments: - // 1. "txid" (string, required) The transaction id (must be in mempool) - // 2. verbose (boolean, optional, default=false) True for a json object, false for array of transaction ids - // - // Result (for verbose=false): - // [ (json array of strings) - // "transactionid" (string) The transaction id of an in-mempool descendant transaction - // ,... - // ] - // - // Result (for verbose=true): - // { (json object) - // "transactionid" : { (json object) - // "size" : n, (numeric) transaction size. - // "fee" : n, (numeric) transaction fee in BCH - // "modifiedfee" : n, (numeric) transaction fee with fee deltas used for mining priority - // "time" : n, (numeric) local time transaction entered pool in seconds since 1 Jan 1970 GMT - // "height" : n, (numeric) block height when transaction entered pool - // "startingpriority" : n, (numeric) DEPRECATED. Priority when transaction entered pool - // "currentpriority" : n, (numeric) DEPRECATED. Transaction priority now - // "descendantcount" : n, (numeric) number of in-mempool descendant transactions (including this one) - // "descendantsize" : n, (numeric) virtual transaction size of in-mempool descendants (including this one) - // "descendantfees" : n, (numeric) modified fees (see above) of in-mempool descendants (including this one) - // "ancestorcount" : n, (numeric) number of in-mempool ancestor transactions (including this one) - // "ancestorsize" : n, (numeric) virtual transaction size of in-mempool ancestors (including this one) - // "ancestorfees" : n, (numeric) modified fees (see above) of in-mempool ancestors (including this one) - // "depends" : [ (array) unconfirmed transactions used as inputs for this transaction - // "transactionid", (string) parent transaction id - // ... ] - // }, ... - // } if (typeof txid !== 'string') { txid = JSON.stringify(txid); } @@ -314,36 +141,12 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + 'blockchain/getMempoolDescendants/' + txid + '?verbose=' + verbose); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } }, { key: 'getMempoolEntry', value: async function getMempoolEntry(txid) { - // Returns mempool data for given transaction - // - // Arguments: - // 1. "txid" (string, required) The transaction id (must be in mempool) - // - // Result: - // { (json object) - // "size" : n, (numeric) transaction size. - // "fee" : n, (numeric) transaction fee in BCH - // "modifiedfee" : n, (numeric) transaction fee with fee deltas used for mining priority - // "time" : n, (numeric) local time transaction entered pool in seconds since 1 Jan 1970 GMT - // "height" : n, (numeric) block height when transaction entered pool - // "startingpriority" : n, (numeric) DEPRECATED. Priority when transaction entered pool - // "currentpriority" : n, (numeric) DEPRECATED. Transaction priority now - // "descendantcount" : n, (numeric) number of in-mempool descendant transactions (including this one) - // "descendantsize" : n, (numeric) virtual transaction size of in-mempool descendants (including this one) - // "descendantfees" : n, (numeric) modified fees (see above) of in-mempool descendants (including this one) - // "ancestorcount" : n, (numeric) number of in-mempool ancestor transactions (including this one) - // "ancestorsize" : n, (numeric) virtual transaction size of in-mempool ancestors (including this one) - // "ancestorfees" : n, (numeric) modified fees (see above) of in-mempool ancestors (including this one) - // "depends" : [ (array) unconfirmed transactions used as inputs for this transaction - // "transactionid", (string) parent transaction id - // ... ] - // } if (typeof txid !== 'string') { txid = JSON.stringify(txid); } @@ -352,28 +155,17 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + 'blockchain/getMempoolEntry/' + txid); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } }, { key: 'getMempoolInfo', value: async function getMempoolInfo() { - // Returns details on the active state of the TX memory pool. - // - // Result: - // { - // "size": xxxxx, (numeric) Current tx count - // "bytes": xxxxx, (numeric) Transaction size. - // "usage": xxxxx, (numeric) Total memory usage for the mempool - // "maxmempool": xxxxx, (numeric) Maximum memory usage for the mempool - // "mempoolminfee": xxxxx (numeric) Minimum fee for tx to be accepted - // } - try { var response = await _axios2.default.get(this.restURL + 'blockchain/getMempoolInfo'); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } }, { @@ -381,43 +173,11 @@ var Blockchain = function () { value: async function getRawMempool() { var verbose = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - // Returns all transaction ids in memory pool as a json array of string transaction ids. - // - // Arguments: - // 1. verbose (boolean, optional, default=false) True for a json object, false for array of transaction ids - // - // Result: (for verbose = false): - // [ (json array of string) - // "transactionid" (string) The transaction id - // ,... - // ] - // - // Result: (for verbose = true): - // { (json object) - // "transactionid" : { (json object) - // "size" : n, (numeric) transaction size. - // "fee" : n, (numeric) transaction fee in BCH - // "modifiedfee" : n, (numeric) transaction fee with fee deltas used for mining priority - // "time" : n, (numeric) local time transaction entered pool in seconds since 1 Jan 1970 GMT - // "height" : n, (numeric) block height when transaction entered pool - // "startingpriority" : n, (numeric) DEPRECATED. Priority when transaction entered pool - // "currentpriority" : n, (numeric) DEPRECATED. Transaction priority now - // "descendantcount" : n, (numeric) number of in-mempool descendant transactions (including this one) - // "descendantsize" : n, (numeric) virtual transaction size of in-mempool descendants (including this one) - // "descendantfees" : n, (numeric) modified fees (see above) of in-mempool descendants (including this one) - // "ancestorcount" : n, (numeric) number of in-mempool ancestor transactions (including this one) - // "ancestorsize" : n, (numeric) virtual transaction size of in-mempool ancestors (including this one) - // "ancestorfees" : n, (numeric) modified fees (see above) of in-mempool ancestors (including this one) - // "depends" : [ (array) unconfirmed transactions used as inputs for this transaction - // "transactionid", (string) parent transaction id - // ... ] - // }, ... - // } try { var response = await _axios2.default.get(this.restURL + 'blockchain/getRawMempool?vebose=' + verbose); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } }, { @@ -425,37 +185,11 @@ var Blockchain = function () { value: async function getTxOut(txid, n) { var include_mempool = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; - // Returns details about an unspent transaction output. - // - // Arguments: - // 1. "txid" (string, required) The transaction id - // 2. n (numeric, required) vout number - // 3. include_mempool (boolean, optional) Whether to include the mempool - // - // Result: - // { - // "bestblock" : "hash", (string) the block hash - // "confirmations" : n, (numeric) The number of confirmations - // "value" : x.xxx, (numeric) The transaction value in BCH - // "scriptPubKey" : { (json object) - // "asm" : "code", (string) - // "hex" : "hex", (string) - // "reqSigs" : n, (numeric) Number of required signatures - // "type" : "pubkeyhash", (string) The type, eg pubkeyhash - // "addresses" : [ (array of string) array of bitcoin addresses - // "address" (string) bitcoin address - // ,... - // ] - // }, - // "coinbase" : true|false (boolean) Coinbase or not - // } - // - try { var response = await _axios2.default.get(this.restURL + 'blockchain/getTxOut/' + txid + '/n?include_mempool=' + include_mempool); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } }, { @@ -465,63 +199,31 @@ var Blockchain = function () { if (blockhash) { path = path + '?blockhash=' + blockhash; } - // Returns a hex-encoded proof that "txid" was included in a block. - // - // NOTE: By default this function only works sometimes. This is when there is an - // unspent output in the utxo for this transaction. To make it always work, - // you need to maintain a transaction index, using the -txindex command line option or - // specify the block in which the transaction is included manually (by blockhash). - // - // Arguments: - // 1. "txids" (string) A json array of txids to filter - // [ - // "txid" (string) A transaction hash - // ,... - // ] - // 2. "blockhash" (string, optional) If specified, looks for txid in the block with this hash - // - // Result: - // "data" (string) A string that is a serialized, hex-encoded data for the proof. try { var response = await _axios2.default.get(path); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } }, { key: 'preciousBlock', value: async function preciousBlock(blockhash) { - // Treats a block as if it were received before others with the same work. - // - // A later preciousblock call can override the effect of an earlier one. - // - // The effects of preciousblock are not retained across restarts. - // - // Arguments: - // 1. "blockhash" (string, required) the hash of the block to mark as precious - try { var response = await _axios2.default.get(this.restURL + 'blockchain/preciousBlock/' + blockhash); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } }, { key: 'pruneBlockchain', value: async function pruneBlockchain(height) { - // Arguments: - // 1. "height" (numeric, required) The block height to prune up to. May be set to a discrete height, or a unix timestamp - // to prune blocks whose block time is at least 2 hours older than the provided timestamp. - // - // Result: - // n (numeric) Height of the last block pruned. try { var response = await _axios2.default.post(this.restURL + 'blockchain/pruneBlockchain/' + height); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } }, { @@ -530,38 +232,21 @@ var Blockchain = function () { var checklevel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 3; var nblocks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6; - // Verifies blockchain database. - // - // Arguments: - // 1. checklevel (numeric, optional, 0-4, default=3) How thorough the block verification is. - // 2. nblocks (numeric, optional, default=6, 0=all) The number of blocks to check. - // - // Result: - // true|false (boolean) Verified or not try { var response = await _axios2.default.get(this.restURL + 'blockchain/verifyChain?checklevel=' + checklevel + '&nblocks=' + nblocks); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } }, { key: 'verifyTxOutProof', value: async function verifyTxOutProof(proof) { - // Verifies that a proof points to a transaction in a block, returning the transaction it commits to - // and throwing an RPC error if the block is not in our best chain - // - // Arguments: - // 1. "proof" (string, required) The hex-encoded proof generated by gettxoutproof - // - // Result: - // ["txid"] (array, strings) The txid(s) which the proof commits to, or empty array if the proof is invalid - try { var response = await _axios2.default.get(this.restURL + 'blockchain/verifyTxOutProof/proof'); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } }]); diff --git a/lib/Control.js b/lib/Control.js index 52fee216..3d7a3373 100644 --- a/lib/Control.js +++ b/lib/Control.js @@ -24,59 +24,21 @@ var Control = function () { _createClass(Control, [{ key: 'getInfo', value: async function getInfo() { - // DEPRECATED. Returns an object containing various state info. - // - // Result: - // { - // "version": xxxxx, (numeric) the server version - // "protocolversion": xxxxx, (numeric) the protocol version - // "walletversion": xxxxx, (numeric) the wallet version - // "balance": xxxxxxx, (numeric) the total bitcoin balance of the wallet - // "blocks": xxxxxx, (numeric) the current number of blocks processed in the server - // "timeoffset": xxxxx, (numeric) the time offset - // "connections": xxxxx, (numeric) the number of connections - // "proxy": "host:port", (string, optional) the proxy used by the server - // "difficulty": xxxxxx, (numeric) the current difficulty - // "testnet": true|false, (boolean) if the server is using testnet or not - // "keypoololdest": xxxxxx, (numeric) the timestamp (seconds since Unix epoch) of the oldest pre-generated key in the key pool - // "keypoolsize": xxxx, (numeric) how many new keys are pre-generated - // "unlocked_until": ttt, (numeric) the timestamp in seconds since epoch (midnight Jan 1 1970 GMT) that the wallet is unlocked for transfers, or 0 if the wallet is locked - // "paytxfee": x.xxxx, (numeric) the transaction fee set in BCH/kB - // "relayfee": x.xxxx, (numeric) minimum relay fee for non-free transactions in BCH/kB - // "errors": "..." (string) any error messages - // } - try { var response = await _axios2.default.get(this.restURL + 'control/getInfo'); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } }, { key: 'getMemoryInfo', value: async function getMemoryInfo() { - - // Returns an object containing information about memory usage. - // - // Result: - // { - // "locked": { (json object) Information about locked memory manager - // "used": xxxxx, (numeric) Number of bytes used - // "free": xxxxx, (numeric) Number of bytes available in current arenas - // "total": xxxxxxx, (numeric) Total number of bytes managed - // "locked": xxxxxx, (numeric) Amount of bytes that succeeded locking. If this number is smaller than total, locking pages failed at some point and key data could be swapped to disk. - // "chunks_used": xxxxx, (numeric) Number allocated chunks - // "chunks_free": xxxxx, (numeric) Number unused chunks - // } - // } - // - try { var response = await _axios2.default.get(this.restURL + 'control/getMemoryInfo'); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } // diff --git a/lib/Generating.js b/lib/Generating.js index ed354cf1..02c41e34 100644 --- a/lib/Generating.js +++ b/lib/Generating.js @@ -26,22 +26,11 @@ var Generating = function () { value: async function generateToAddress(blocks, address) { var maxtries = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1000000; - - // Mine blocks immediately to a specified address (before the RPC call returns) - // - // Arguments: - // 1. nblocks (numeric, required) How many blocks are generated immediately. - // 2. address (string, required) The address to send the newly generated bitcoin to. - // 3. maxtries (numeric, optional) How many iterations to try (default = 1000000). - // - // Result: - // [ blockhashes ] (array) hashes of blocks generated - // try { var response = await _axios2.default.post(this.restURL + 'generating/generateToAddress/' + blocks + '/' + address + '?maxtries=' + maxtries); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } }]); diff --git a/lib/Mining.js b/lib/Mining.js index 52816561..7143f129 100644 --- a/lib/Mining.js +++ b/lib/Mining.js @@ -24,57 +24,21 @@ var Mining = function () { _createClass(Mining, [{ key: 'getBlockTemplate', value: async function getBlockTemplate(template_request) { - - // If the request parameters include a 'mode' key, that is used to explicitly select between the default 'template' request or a 'proposal'. - // It returns data needed to construct a block to work on. - // For full specification, see BIPs 22, 23, 9, and 145: - // https://github.com/bitcoin/bips/blob/master/bip-0022.mediawiki - // https://github.com/bitcoin/bips/blob/master/bip-0023.mediawiki - // https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki#getblocktemplate_changes - // https://github.com/bitcoin/bips/blob/master/bip-0145.mediawiki - // - // Arguments: - // 1. template_request (json object, optional) A json object in the following spec - // { - // "mode":"template" (string, optional) This must be set to "template", "proposal" (see BIP 23), or omitted - // "capabilities":[ (array, optional) A list of strings - // "support" (string) client side supported feature, 'longpoll', 'coinbasetxn', 'coinbasevalue', 'proposal', 'serverlist', 'workid' - // ,... - // ], - // "rules":[ (array, optional) A list of strings - // "support" (string) client side supported softfork deployment - // ,... - // ] - // } - try { var response = await _axios2.default.get(this.restURL + 'mining/getBlockTemplate/' + template_request); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } }, { key: 'getMiningInfo', value: async function getMiningInfo() { - // Returns a json object containing mining-related information. - // Result: - // { - // "blocks": nnn, (numeric) The current block - // "currentblocksize": nnn, (numeric) The last block size - // "currentblocktx": nnn, (numeric) The last block transaction - // "difficulty": xxx.xxxxx (numeric) The current difficulty - // "errors": "..." (string) Current errors - // "networkhashps": nnn, (numeric) The network hashes per second - // "pooledtx": n (numeric) The size of the mempool - // "chain": "xxxx", (string) current network name as defined in BIP70 (main, test, regtest) - // } - try { var response = await _axios2.default.get(this.restURL + 'mining/getMiningInfo'); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } }, { @@ -83,37 +47,16 @@ var Mining = function () { var nblocks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 120; var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; - // Returns the estimated network hashes per second based on the last n blocks. - // Pass in [blocks] to override # of blocks, -1 specifies since last difficulty change. - // Pass in [height] to estimate the network speed at the time when a certain block was found. - // - // Arguments: - // 1. nblocks (numeric, optional, default=120) The number of blocks, or -1 for blocks since last difficulty change. - // 2. height (numeric, optional, default=-1) To estimate at the time of the given height. - // - // Result: - // x (numeric) Hashes per second estimated try { var response = await _axios2.default.get(this.restURL + 'mining/getNetworkHashps?nblocks=' + nblocks + '&height=' + height); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } }, { key: 'submitBlock', value: async function submitBlock(hex, parameters) { - // Attempts to submit new block to network. - // The 'jsonparametersobject' parameter is currently ignored. - // See https://en.bitcoin.it/wiki/BIP_0022 for full specification. - // - // Arguments - // 1. "hex" (string, required) the hex-encoded block data to submit - // 2. "parameters" (string, optional) object of optional parameters - // { - // "workid" : "id" (string, optional) if the server provided a workid, it MUST be included with submissions - // } - // var path = this.restURL + 'mining/submitBlock/' + hex; if (parameters) { path = path + '?parameters=' + parameters; @@ -122,7 +65,7 @@ var Mining = function () { var response = await _axios2.default.post(path); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } }]); diff --git a/lib/Network.js b/lib/Network.js index a91568b6..b879cee3 100644 --- a/lib/Network.js +++ b/lib/Network.js @@ -24,82 +24,36 @@ var Network = function () { _createClass(Network, [{ key: 'addNode', value: async function addNode(node, command) { - // Attempts add or remove a node from the addnode list. - // Or try a connection to a node once. - // - // Arguments: - // 1. "node" (string, required) The node (see getpeerinfo for nodes) - // 2. "command" (string, required) 'add' to add a node to the list, 'remove' to remove a node from the list, 'onetry' to try a connection to the node once - // - try { var response = await _axios2.default.post(this.restURL + 'network/addNode/' + node + '/' + command); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } }, { key: 'clearBanned', value: async function clearBanned() { - //The clearbanned RPC clears list of banned nodes. - - // Parameters: none - - // Result—null on success - // JSON null when the list was cleared - try { var response = await _axios2.default.post(this.restURL + 'clearBanned'); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } }, { key: 'disconnectNode', value: async function disconnectNode(configuration) { - // Immediately disconnects from the specified peer node. - // - // Strictly one out of 'configuration.address' and 'configuration.nodeid' can be provided to identify the node. - // - // To disconnect by nodeid, either set 'address' to the empty string, or call using the named 'nodeid' argument only. - // - // Arguments: - // 1. "configuration" (object, optional) - // Properties - // 1. "address" (string, optional) The IP address/port of the node - // 2. "nodeid" (number, optional) The node ID (see getpeerinfo for node IDs) try { var response = await _axios2.default.post(this.restURL + 'disconnectNode/' + configuration); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } }, { key: 'getAddedNodeInfo', value: async function getAddedNodeInfo(node) { - // Returns information about the given added node, or all added nodes - // (note that onetry addnodes are not listed here) - // - // Arguments: - // 1. "node" (string, optional) If provided, return information about this specific node, otherwise all nodes are returned. - // - // Result: - // [ - // { - // "addednode" : "192.168.0.201", (string) The node ip address or name (as provided to addnode) - // "connected" : true|false, (boolean) If connected - // "addresses" : [ (list of objects) Only when connected = true - // { - // "address" : "192.168.0.201:8333", (string) The bitcoin server IP and port we're connected to - // "connected" : "outbound" (string) connection, inbound or outbound - // } - // ] - // } - // ,... - // ] var path = this.restURL + 'network/getAddedNodeInfo'; if (node) { path = path + '?node=' + node; @@ -109,149 +63,47 @@ var Network = function () { var response = await _axios2.default.get(path); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } }, { key: 'getConnectionCount', value: async function getConnectionCount() { - // Returns the number of connections to other nodes. - // - // Result: - // n (numeric) The connection count - try { var response = await _axios2.default.get(this.restURL + 'network/getConnectionCount'); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } }, { key: 'getNetTotals', value: async function getNetTotals() { - // Returns information about network traffic, including bytes in, bytes out, and current time. - // - // Result: - // { - // "totalbytesrecv": n, (numeric) Total bytes received - // "totalbytessent": n, (numeric) Total bytes sent - // "timemillis": t, (numeric) Current UNIX time in milliseconds - // "uploadtarget": - // { - // "timeframe": n, (numeric) Length of the measuring timeframe in seconds - // "target": n, (numeric) Target in bytes - // "target_reached": true|false, (boolean) True if target is reached - // "serve_historical_blocks": true|false, (boolean) True if serving historical blocks - // "bytes_left_in_cycle": t, (numeric) Bytes left in current time cycle - // "time_left_in_cycle": t (numeric) Seconds left in current time cycle - // } - // } - try { var response = await _axios2.default.get(this.restURL + 'network/getNetTotals'); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } }, { key: 'getNetworkInfo', value: async function getNetworkInfo() { - // Returns an object containing various state info regarding P2P networking. - // - // Result: - // { - // "version": xxxxx, (numeric) the server version - // "subversion": "/Satoshi:x.x.x/", (string) the server subversion string - // "protocolversion": xxxxx, (numeric) the protocol version - // "localservices": "xxxxxxxxxxxxxxxx", (string) the services we offer to the network - // "localrelay": true|false, (bool) true if transaction relay is requested from peers - // "timeoffset": xxxxx, (numeric) the time offset - // "connections": xxxxx, (numeric) the number of connections - // "networkactive": true|false, (bool) whether p2p networking is enabled - // "networks": [ (array) information per network - // { - // "name": "xxx", (string) network (ipv4, ipv6 or onion) - // "limited": true|false, (boolean) is the network limited using -onlynet? - // "reachable": true|false, (boolean) is the network reachable? - // "proxy": "host:port" (string) the proxy that is used for this network, or empty if none - // "proxy_randomize_credentials": true|false, (string) Whether randomized credentials are used - // } - // ,... - // ], - // "relayfee": x.xxxxxxxx, (numeric) minimum relay fee for non-free transactions in BCH/kB - // "incrementalfee": x.xxxxxxxx, (numeric) minimum fee increment for mempool limiting or BIP 125 replacement in BCH/kB - // "localaddresses": [ (array) list of local addresses - // { - // "address": "xxxx", (string) network address - // "port": xxx, (numeric) network port - // "score": xxx (numeric) relative score - // } - // ,... - // ] - // "warnings": "..." (string) any network warnings - // } - try { var response = await _axios2.default.get(this.restURL + 'network/getNetworkInfo'); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } }, { key: 'getPeerInfo', value: async function getPeerInfo() { - // Returns data about each connected network node as a json array of objects. - // - // Result: - // [ - // { - // "id": n, (numeric) Peer index - // "addr":"host:port", (string) The ip address and port of the peer - // "addrlocal":"ip:port", (string) local address - // "services":"xxxxxxxxxxxxxxxx", (string) The services offered - // "relaytxes":true|false, (boolean) Whether peer has asked us to relay transactions to it - // "lastsend": ttt, (numeric) The time in seconds since epoch (Jan 1 1970 GMT) of the last send - // "lastrecv": ttt, (numeric) The time in seconds since epoch (Jan 1 1970 GMT) of the last receive - // "bytessent": n, (numeric) The total bytes sent - // "bytesrecv": n, (numeric) The total bytes received - // "conntime": ttt, (numeric) The connection time in seconds since epoch (Jan 1 1970 GMT) - // "timeoffset": ttt, (numeric) The time offset in seconds - // "pingtime": n, (numeric) ping time (if available) - // "minping": n, (numeric) minimum observed ping time (if any at all) - // "pingwait": n, (numeric) ping wait (if non-zero) - // "version": v, (numeric) The peer version, such as 7001 - // "subver": "/Satoshi:0.8.5/", (string) The string version - // "inbound": true|false, (boolean) Inbound (true) or Outbound (false) - // "addnode": true|false, (boolean) Whether connection was due to addnode and is using an addnode slot - // "startingheight": n, (numeric) The starting height (block) of the peer - // "banscore": n, (numeric) The ban score - // "synced_headers": n, (numeric) The last header we have in common with this peer - // "synced_blocks": n, (numeric) The last block we have in common with this peer - // "inflight": [ - // n, (numeric) The heights of blocks we're currently asking from this peer - // ... - // ], - // "whitelisted": true|false, (boolean) Whether the peer is whitelisted - // "bytessent_per_msg": { - // "addr": n, (numeric) The total bytes sent aggregated by message type - // ... - // }, - // "bytesrecv_per_msg": { - // "addr": n, (numeric) The total bytes received aggregated by message type - // ... - // } - // } - // ,... - // ] - try { var response = await _axios2.default.get(this.restURL + 'network/getPeerInfo'); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } // @@ -269,15 +121,11 @@ var Network = function () { }, { key: 'ping', value: async function ping() { - // Requests that a ping be sent to all other nodes, to measure ping time. - // Results provided in getpeerinfo, pingtime and pingwait fields are decimal seconds. - // Ping command is handled in queue with all other commands, so it measures processing backlog, not just network ping. - try { var response = await _axios2.default.get(this.restURL + 'network/ping'); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } // diff --git a/lib/Price.js b/lib/Price.js index 02aa65dc..59472006 100644 --- a/lib/Price.js +++ b/lib/Price.js @@ -32,7 +32,7 @@ var Price = function () { return response.data[currency.toUpperCase()]; } } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } }]); diff --git a/lib/RawTransactions.js b/lib/RawTransactions.js index 7ac1a277..b1954e60 100644 --- a/lib/RawTransactions.js +++ b/lib/RawTransactions.js @@ -24,11 +24,6 @@ var RawTransactions = function () { _createClass(RawTransactions, [{ key: 'decodeRawTransaction', value: async function decodeRawTransaction(hex) { - // decodes a serialized transaction hex string into a JSON object describing the transaction. - - // Parameter #1—serialized transaction in hex - - // Result—the decoded transaction if (typeof hex !== 'string') { hex = JSON.stringify(hex); } @@ -37,17 +32,12 @@ var RawTransactions = function () { var response = await _axios2.default.get(this.restURL + 'rawtransactions/decodeRawTransaction/' + hex); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } }, { key: 'decodeScript', value: async function decodeScript(script) { - // decodes a hex-encoded P2SH redeem script. - - // Parameter #1—a hex-encoded redeem script - - // Result—the decoded script if (typeof script !== 'string') { script = JSON.stringify(script); } @@ -56,7 +46,7 @@ var RawTransactions = function () { var response = await _axios2.default.get(this.restURL + 'rawtransactions/decodeScript/' + script); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } }, { @@ -64,22 +54,6 @@ var RawTransactions = function () { value: async function getRawTransaction(txid) { var verbose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - // NOTE: By default this function only works for mempool transactions. If the -txindex option is - // enabled, it also works for blockchain transactions. - // DEPRECATED: for now, it also works for transactions with unspent outputs. - // - // Return the raw transaction data. - // - // If verbose is 'true', returns an Object with information about 'txid'. - // If verbose is 'false' or omitted, returns a string that is serialized, hex-encoded data for 'txid'. - // - // Arguments: - // 1. "txid" (string, required) The transaction id - // 2. verbose (bool, optional, default=false) If false, return a string, otherwise return a json object - // - // Result (if verbose is not set or set to false): - // "data" (string) The serialized, hex-encoded data for 'txid' - if (typeof txid !== 'string') { txid = JSON.stringify(txid); } @@ -88,7 +62,7 @@ var RawTransactions = function () { var response = await _axios2.default.get(this.restURL + 'rawtransactions/getRawTransaction/' + txid + '?verbose=' + verbose); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } }, { @@ -96,17 +70,6 @@ var RawTransactions = function () { value: async function sendRawTransaction(hex) { var allowhighfees = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - // Submits raw transaction (serialized, hex-encoded) to local node and network. - // - // Also see createrawtransaction and signrawtransaction calls. - // - // Arguments: - // 1. "hexstring" (string, required) The hex string of the raw transaction) - // 2. allowhighfees (boolean, optional, default=false) Allow high fees - // - // Result: - // "hex" (string) The transaction hash in hex - // if (typeof hex !== 'string') { hex = JSON.stringify(hex); } @@ -115,7 +78,7 @@ var RawTransactions = function () { var response = await _axios2.default.post(this.restURL + 'rawtransactions/sendRawTransaction/' + hex + '?allowhighfees=' + allowhighfees); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } }]); diff --git a/lib/Transaction.js b/lib/Transaction.js index 1d7ef3a0..24388401 100644 --- a/lib/Transaction.js +++ b/lib/Transaction.js @@ -58,7 +58,7 @@ var Transaction = function () { var response = await _axios2.default.get(this.restURL + 'transaction/details/' + txid); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } }]); diff --git a/lib/Util.js b/lib/Util.js index c6b31988..157c7cfc 100644 --- a/lib/Util.js +++ b/lib/Util.js @@ -24,31 +24,11 @@ var Util = function () { _createClass(Util, [{ key: 'validateAddress', value: async function validateAddress(address) { - // Return information about the given bitcoin address. - // - // Arguments: - // 1. "address" (string, required) The bitcoin address to validate - // - // Result: - // { - // "isvalid" : true|false, (boolean) If the address is valid or not. If not, this is the only property returned. - // "address" : "address", (string) The bitcoin address validated - // "scriptPubKey" : "hex", (string) The hex encoded scriptPubKey generated by the address - // "ismine" : true|false, (boolean) If the address is yours or not - // "iswatchonly" : true|false, (boolean) If the address is watchonly - // "isscript" : true|false, (boolean) If the key is a script - // "pubkey" : "publickeyhex", (string) The hex value of the raw public key - // "iscompressed" : true|false, (boolean) If the address is compressed - // "account" : "account" (string) DEPRECATED. The account associated with the address, "" is the default account - // "timestamp" : timestamp, (number, optional) The creation time of the key if available in seconds since epoch (Jan 1 1970 GMT) - // "hdkeypath" : "keypath" (string, optional) The HD keypath if the key is HD and available - // "hdmasterkeyid" : "" (string, optional) The Hash160 of the HD master pubkey - // } try { var response = await _axios2.default.get(this.restURL + 'util/validateAddress/' + address); return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } }]); diff --git a/package-lock.json b/package-lock.json index 7ea2e255..35800344 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,129 +1,9 @@ { "name": "bitbox-cli", - "version": "1.5.12", + "version": "1.6.3", "lockfileVersion": 1, "requires": true, "dependencies": { - "@babel/code-frame": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz", - "integrity": "sha1-vXHZsZKvl435FYKdOdQJRFZDmgw=", - "requires": { - "@babel/highlight": "7.0.0-beta.51" - } - }, - "@babel/generator": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.51.tgz", - "integrity": "sha1-bHV1/952HQdIXgS67cA5LG2eMPY=", - "requires": { - "@babel/types": "7.0.0-beta.51", - "jsesc": "2.5.1", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" - }, - "dependencies": { - "jsesc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", - "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=" - } - } - }, - "@babel/helper-function-name": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.51.tgz", - "integrity": "sha1-IbSHSiJ8+Z7K/MMKkDAtpaJkBWE=", - "requires": { - "@babel/helper-get-function-arity": "7.0.0-beta.51", - "@babel/template": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.51.tgz", - "integrity": "sha1-MoGy0EWvlcFyzpGyCCXYXqRnZBE=", - "requires": { - "@babel/types": "7.0.0-beta.51" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.51.tgz", - "integrity": "sha1-imw/ZsTSZTUvwHdIT59ugKUauXg=", - "requires": { - "@babel/types": "7.0.0-beta.51" - } - }, - "@babel/highlight": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.51.tgz", - "integrity": "sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0=", - "requires": { - "chalk": "2.4.1", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } - }, - "@babel/parser": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.0.0-beta.51.tgz", - "integrity": "sha1-J87C30Cd9gr1gnDtj2qlVAnqhvY=" - }, - "@babel/template": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.51.tgz", - "integrity": "sha1-lgKkCuvPNXrpZ34lMu9fyBD1+/8=", - "requires": { - "@babel/code-frame": "7.0.0-beta.51", - "@babel/parser": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51", - "lodash": "4.17.10" - } - }, - "@babel/traverse": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.51.tgz", - "integrity": "sha1-mB2vLOw0emIx06odnhgDsDqqpKg=", - "requires": { - "@babel/code-frame": "7.0.0-beta.51", - "@babel/generator": "7.0.0-beta.51", - "@babel/helper-function-name": "7.0.0-beta.51", - "@babel/helper-split-export-declaration": "7.0.0-beta.51", - "@babel/parser": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51", - "debug": "3.1.0", - "globals": "11.7.0", - "invariant": "2.2.4", - "lodash": "4.17.10" - }, - "dependencies": { - "globals": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", - "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==" - } - } - }, - "@babel/types": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.51.tgz", - "integrity": "sha1-2AK3tUO1g2x3iqaReXq/APPZfqk=", - "requires": { - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "2.0.0" - }, - "dependencies": { - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - } - } - }, "@sinonjs/formatio": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", @@ -1147,1816 +1027,18 @@ }, "bip21": { "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "requires": { - "qs": "6.5.2" - } - }, - "bip32-utils": { - "version": "github:Bitcoin-com/bip32-utils#318df796443311f7e12217542f7f45d3b7791f10", - "requires": { - "bitbox-cli": "1.5.12", - "keccak": "1.4.0", - "nyc": "12.0.2", - "standard": "11.0.1", - "tape": "4.9.1" - }, - "dependencies": { - "nyc": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-12.0.2.tgz", - "integrity": "sha1-ikpO1pCWbBHsWH/4fuoMEsl0upk=", - "requires": { - "archy": "1.0.0", - "arrify": "1.0.1", - "caching-transform": "1.0.1", - "convert-source-map": "1.5.1", - "debug-log": "1.0.1", - "default-require-extensions": "1.0.0", - "find-cache-dir": "0.1.1", - "find-up": "2.1.0", - "foreground-child": "1.5.6", - "glob": "7.1.2", - "istanbul-lib-coverage": "1.2.0", - "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "2.3.2", - "istanbul-lib-report": "1.1.3", - "istanbul-lib-source-maps": "1.2.5", - "istanbul-reports": "1.4.1", - "md5-hex": "1.3.0", - "merge-source-map": "1.1.0", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "resolve-from": "2.0.0", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "spawn-wrap": "1.4.2", - "test-exclude": "4.2.1", - "yargs": "11.1.0", - "yargs-parser": "8.1.0" - }, - "dependencies": { - "align-text": { - "version": "0.1.4", - "bundled": true, - "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" - } - }, - "amdefine": { - "version": "1.0.1", - "bundled": true - }, - "ansi-regex": { - "version": "3.0.0", - "bundled": true - }, - "append-transform": { - "version": "0.4.0", - "bundled": true, - "requires": { - "default-require-extensions": "1.0.0" - } - }, - "archy": { - "version": "1.0.0", - "bundled": true - }, - "arr-diff": { - "version": "4.0.0", - "bundled": true - }, - "arr-flatten": { - "version": "1.1.0", - "bundled": true - }, - "arr-union": { - "version": "3.1.0", - "bundled": true - }, - "array-unique": { - "version": "0.3.2", - "bundled": true - }, - "arrify": { - "version": "1.0.1", - "bundled": true - }, - "assign-symbols": { - "version": "1.0.0", - "bundled": true - }, - "async": { - "version": "1.5.2", - "bundled": true - }, - "atob": { - "version": "2.1.1", - "bundled": true - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true - }, - "base": { - "version": "0.11.2", - "bundled": true, - "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "bundled": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "builtin-modules": { - "version": "1.1.1", - "bundled": true - }, - "cache-base": { - "version": "1.0.1", - "bundled": 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" - } - }, - "caching-transform": { - "version": "1.0.1", - "bundled": true, - "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" - } - }, - "camelcase": { - "version": "1.2.1", - "bundled": true, - "optional": true - }, - "center-align": { - "version": "0.1.3", - "bundled": true, - "optional": true, - "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" - } - }, - "class-utils": { - "version": "0.3.6", - "bundled": true, - "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "cliui": { - "version": "2.1.0", - "bundled": true, - "optional": true, - "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "bundled": true, - "optional": true - } - } - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true - }, - "collection-visit": { - "version": "1.0.0", - "bundled": true, - "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" - } - }, - "commondir": { - "version": "1.0.1", - "bundled": true - }, - "component-emitter": { - "version": "1.2.1", - "bundled": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true - }, - "convert-source-map": { - "version": "1.5.1", - "bundled": true - }, - "copy-descriptor": { - "version": "0.1.1", - "bundled": true - }, - "cross-spawn": { - "version": "4.0.2", - "bundled": true, - "requires": { - "lru-cache": "4.1.3", - "which": "1.3.1" - } - }, - "debug": { - "version": "3.1.0", - "bundled": true, - "requires": { - "ms": "2.0.0" - } - }, - "debug-log": { - "version": "1.0.1", - "bundled": true - }, - "decamelize": { - "version": "1.2.0", - "bundled": true - }, - "decode-uri-component": { - "version": "0.2.0", - "bundled": true - }, - "default-require-extensions": { - "version": "1.0.0", - "bundled": true, - "requires": { - "strip-bom": "2.0.0" - } - }, - "define-property": { - "version": "2.0.2", - "bundled": true, - "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "error-ex": { - "version": "1.3.1", - "bundled": true, - "requires": { - "is-arrayish": "0.2.1" - } - }, - "execa": { - "version": "0.7.0", - "bundled": 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" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "bundled": true, - "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "bundled": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "bundled": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "extend-shallow": { - "version": "3.0.2", - "bundled": true, - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "bundled": true, - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "bundled": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "fill-range": { - "version": "4.0.0", - "bundled": true, - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "find-cache-dir": { - "version": "0.1.1", - "bundled": true, - "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "bundled": true, - "requires": { - "locate-path": "2.0.0" - } - }, - "for-in": { - "version": "1.0.2", - "bundled": true - }, - "foreground-child": { - "version": "1.5.6", - "bundled": true, - "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" - } - }, - "fragment-cache": { - "version": "0.2.1", - "bundled": true, - "requires": { - "map-cache": "0.2.2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true - }, - "get-caller-file": { - "version": "1.0.2", - "bundled": true - }, - "get-stream": { - "version": "3.0.0", - "bundled": true - }, - "get-value": { - "version": "2.0.6", - "bundled": true - }, - "glob": { - "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" - } - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true - }, - "handlebars": { - "version": "4.0.11", - "bundled": true, - "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "bundled": true, - "requires": { - "amdefine": "1.0.1" - } - } - } - }, - "has-value": { - "version": "1.0.0", - "bundled": true, - "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" - } - }, - "has-values": { - "version": "1.0.0", - "bundled": true, - "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "bundled": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "hosted-git-info": { - "version": "2.6.0", - "bundled": true - }, - "imurmurhash": { - "version": "0.1.4", - "bundled": true - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true - }, - "invert-kv": { - "version": "1.0.0", - "bundled": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-arrayish": { - "version": "0.2.1", - "bundled": true - }, - "is-buffer": { - "version": "1.1.6", - "bundled": true - }, - "is-builtin-module": { - "version": "1.0.0", - "bundled": true, - "requires": { - "builtin-modules": "1.1.1" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "bundled": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "bundled": true - } - } - }, - "is-extendable": { - "version": "0.1.1", - "bundled": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "bundled": true - }, - "is-number": { - "version": "3.0.0", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-odd": { - "version": "2.0.0", - "bundled": true, - "requires": { - "is-number": "4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "bundled": true - } - } - }, - "is-plain-object": { - "version": "2.0.4", - "bundled": true, - "requires": { - "isobject": "3.0.1" - } - }, - "is-stream": { - "version": "1.1.0", - "bundled": true - }, - "is-utf8": { - "version": "0.2.1", - "bundled": true - }, - "is-windows": { - "version": "1.0.2", - "bundled": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true - }, - "isexe": { - "version": "2.0.0", - "bundled": true - }, - "isobject": { - "version": "3.0.1", - "bundled": true - }, - "istanbul-lib-coverage": { - "version": "1.2.0", - "bundled": true - }, - "istanbul-lib-hook": { - "version": "1.1.0", - "bundled": true, - "requires": { - "append-transform": "0.4.0" - } - }, - "istanbul-lib-report": { - "version": "1.1.3", - "bundled": true, - "requires": { - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "bundled": true - }, - "supports-color": { - "version": "3.2.3", - "bundled": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "1.2.5", - "bundled": true, - "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" - } - }, - "istanbul-reports": { - "version": "1.4.1", - "bundled": true, - "requires": { - "handlebars": "4.0.11" - } - }, - "kind-of": { - "version": "3.2.2", - "bundled": true, - "requires": { - "is-buffer": "1.1.6" - } - }, - "lazy-cache": { - "version": "1.0.4", - "bundled": true, - "optional": true - }, - "lcid": { - "version": "1.0.0", - "bundled": true, - "requires": { - "invert-kv": "1.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "bundled": true, - "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" - } - }, - "locate-path": { - "version": "2.0.0", - "bundled": true, - "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "bundled": true - } - } - }, - "longest": { - "version": "1.0.1", - "bundled": true - }, - "lru-cache": { - "version": "4.1.3", - "bundled": true, - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } - }, - "map-cache": { - "version": "0.2.2", - "bundled": true - }, - "map-visit": { - "version": "1.0.0", - "bundled": true, - "requires": { - "object-visit": "1.0.1" - } - }, - "md5-hex": { - "version": "1.3.0", - "bundled": true, - "requires": { - "md5-o-matic": "0.1.1" - } - }, - "md5-o-matic": { - "version": "0.1.1", - "bundled": true - }, - "mem": { - "version": "1.1.0", - "bundled": true, - "requires": { - "mimic-fn": "1.2.0" - } - }, - "merge-source-map": { - "version": "1.1.0", - "bundled": true, - "requires": { - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true - } - } - }, - "micromatch": { - "version": "3.1.10", - "bundled": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "mimic-fn": { - "version": "1.2.0", - "bundled": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true - }, - "mixin-deep": { - "version": "1.3.1", - "bundled": true, - "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "bundled": true, - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true - }, - "nanomatch": { - "version": "1.2.9", - "bundled": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "normalize-package-data": { - "version": "2.4.0", - "bundled": true, - "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" - } - }, - "npm-run-path": { - "version": "2.0.2", - "bundled": true, - "requires": { - "path-key": "2.0.1" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true - }, - "object-copy": { - "version": "0.1.0", - "bundled": true, - "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "object-visit": { - "version": "1.0.1", - "bundled": true, - "requires": { - "isobject": "3.0.1" - } - }, - "object.pick": { - "version": "1.3.0", - "bundled": true, - "requires": { - "isobject": "3.0.1" - } - }, - "once": { - "version": "1.4.0", - "bundled": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "optimist": { - "version": "0.6.1", - "bundled": true, - "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true - }, - "os-locale": { - "version": "2.1.0", - "bundled": true, - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - } - }, - "p-finally": { - "version": "1.0.0", - "bundled": true - }, - "p-limit": { - "version": "1.2.0", - "bundled": true, - "requires": { - "p-try": "1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "bundled": true, - "requires": { - "p-limit": "1.2.0" - } - }, - "p-try": { - "version": "1.0.0", - "bundled": true - }, - "parse-json": { - "version": "2.2.0", - "bundled": true, - "requires": { - "error-ex": "1.3.1" - } - }, - "pascalcase": { - "version": "0.1.1", - "bundled": true - }, - "path-exists": { - "version": "2.1.0", - "bundled": true, - "requires": { - "pinkie-promise": "2.0.1" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true - }, - "path-key": { - "version": "2.0.1", - "bundled": true - }, - "path-parse": { - "version": "1.0.5", - "bundled": true - }, - "path-type": { - "version": "1.1.0", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - } - }, - "pify": { - "version": "2.3.0", - "bundled": true - }, - "pinkie": { - "version": "2.0.4", - "bundled": true - }, - "pinkie-promise": { - "version": "2.0.1", - "bundled": true, - "requires": { - "pinkie": "2.0.4" - } - }, - "pkg-dir": { - "version": "1.0.0", - "bundled": true, - "requires": { - "find-up": "1.1.2" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "bundled": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "bundled": true - }, - "pseudomap": { - "version": "1.0.2", - "bundled": true - }, - "read-pkg": { - "version": "1.1.0", - "bundled": true, - "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "bundled": true, - "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "bundled": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - } - } - }, - "regex-not": { - "version": "1.0.2", - "bundled": true, - "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" - } - }, - "repeat-element": { - "version": "1.1.2", - "bundled": true - }, - "repeat-string": { - "version": "1.6.1", - "bundled": true - }, - "require-directory": { - "version": "2.1.1", - "bundled": true - }, - "require-main-filename": { - "version": "1.0.1", - "bundled": true - }, - "resolve-from": { - "version": "2.0.0", - "bundled": true - }, - "resolve-url": { - "version": "0.2.1", - "bundled": true - }, - "ret": { - "version": "0.1.15", - "bundled": true - }, - "right-align": { - "version": "0.1.3", - "bundled": true, - "optional": true, - "requires": { - "align-text": "0.1.4" - } - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "requires": { - "glob": "7.1.2" - } - }, - "safe-regex": { - "version": "1.1.0", - "bundled": true, - "requires": { - "ret": "0.1.15" - } - }, - "semver": { - "version": "5.5.0", - "bundled": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true - }, - "set-value": { - "version": "2.0.0", - "bundled": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "shebang-command": { - "version": "1.2.0", - "bundled": true, - "requires": { - "shebang-regex": "1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "bundled": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true - }, - "slide": { - "version": "1.1.6", - "bundled": true - }, - "snapdragon": { - "version": "0.8.2", - "bundled": 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.2", - "use": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "bundled": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "bundled": true, - "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "source-map": { - "version": "0.5.7", - "bundled": true - }, - "source-map-resolve": { - "version": "0.5.2", - "bundled": true, - "requires": { - "atob": "2.1.1", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "bundled": true - }, - "spawn-wrap": { - "version": "1.4.2", - "bundled": true, - "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.1" - } - }, - "spdx-correct": { - "version": "3.0.0", - "bundled": true, - "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "bundled": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "bundled": true, - "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "bundled": true - }, - "split-string": { - "version": "3.1.0", - "bundled": true, - "requires": { - "extend-shallow": "3.0.2" - } - }, - "static-extend": { - "version": "0.1.2", - "bundled": true, - "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "string-width": { - "version": "2.1.1", - "bundled": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "requires": { - "ansi-regex": "3.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "bundled": true, - "requires": { - "is-utf8": "0.2.1" - } - }, - "strip-eof": { - "version": "1.0.0", - "bundled": true - }, - "test-exclude": { - "version": "4.2.1", - "bundled": true, - "requires": { - "arrify": "1.0.1", - "micromatch": "3.1.10", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" - } - }, - "to-object-path": { - "version": "0.3.0", - "bundled": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "to-regex": { - "version": "3.0.2", - "bundled": true, - "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "bundled": true, - "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" - } - }, - "uglify-js": { - "version": "2.8.29", - "bundled": true, - "optional": true, - "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" - }, - "dependencies": { - "yargs": { - "version": "3.10.0", - "bundled": true, - "optional": true, - "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" - } - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "union-value": { - "version": "1.0.0", - "bundled": true, - "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "set-value": { - "version": "0.4.3", - "bundled": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" - } - } - } - }, - "unset-value": { - "version": "1.0.0", - "bundled": true, - "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "bundled": true, - "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "bundled": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "bundled": true - } - } - }, - "urix": { - "version": "0.1.0", - "bundled": true - }, - "use": { - "version": "3.1.0", - "bundled": true, - "requires": { - "kind-of": "6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true - } - } - }, - "validate-npm-package-license": { - "version": "3.0.3", - "bundled": true, - "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" - } - }, - "which": { - "version": "1.3.1", - "bundled": true, - "requires": { - "isexe": "2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "bundled": true - }, - "window-size": { - "version": "0.1.0", - "bundled": true, - "optional": true - }, - "wordwrap": { - "version": "0.0.3", - "bundled": true - }, - "wrap-ansi": { - "version": "2.1.0", - "bundled": true, - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "bundled": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "string-width": { - "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" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "requires": { - "ansi-regex": "2.1.1" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true - }, - "write-file-atomic": { - "version": "1.3.4", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" - } - }, - "y18n": { - "version": "3.2.1", - "bundled": true - }, - "yallist": { - "version": "2.1.2", - "bundled": true - }, - "yargs": { - "version": "11.1.0", - "bundled": true, - "requires": { - "cliui": "4.1.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": "9.0.2" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "bundled": true - }, - "cliui": { - "version": "4.1.0", - "bundled": true, - "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" - } - }, - "yargs-parser": { - "version": "9.0.2", - "bundled": true, - "requires": { - "camelcase": "4.1.0" - } - } - } - }, - "yargs-parser": { - "version": "8.1.0", - "bundled": true, - "requires": { - "camelcase": "4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "bundled": true - } - } - } - } - } + "requires": { + "qs": "6.5.2" + } + }, + "bip32-utils": { + "version": "github:Bitcoin-com/bip32-utils#318df796443311f7e12217542f7f45d3b7791f10", + "requires": { + "bitbox-cli": "1.5.12", + "keccak": "1.4.0", + "nyc": "11.9.0", + "standard": "11.0.1", + "tape": "4.9.1" } }, "bip38": { @@ -4194,21 +2276,25 @@ "dependencies": { "abbrev": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "optional": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "aproba": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "optional": true }, "are-we-there-yet": { "version": "1.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "optional": true, "requires": { "delegates": "1.0.0", @@ -4217,11 +2303,13 @@ }, "balanced-match": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "brace-expansion": { "version": "1.1.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -4229,29 +2317,35 @@ }, "chownr": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", "optional": true }, "code-point-at": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "concat-map": { "version": "0.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, "core-util-is": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "optional": true }, "debug": { "version": "2.6.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "optional": true, "requires": { "ms": "2.0.0" @@ -4259,22 +2353,26 @@ }, "deep-extend": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", + "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", "optional": true }, "delegates": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "optional": true }, "detect-libc": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", "optional": true }, "fs-minipass": { "version": "1.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", + "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", "optional": true, "requires": { "minipass": "2.2.4" @@ -4282,12 +2380,14 @@ }, "fs.realpath": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "optional": true }, "gauge": { "version": "2.7.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "optional": true, "requires": { "aproba": "1.2.0", @@ -4302,7 +2402,8 @@ }, "glob": { "version": "7.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "optional": true, "requires": { "fs.realpath": "1.0.0", @@ -4315,12 +2416,14 @@ }, "has-unicode": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "optional": true }, "iconv-lite": { "version": "0.4.21", - "bundled": true, + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.21.tgz", + "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", "optional": true, "requires": { "safer-buffer": "2.1.2" @@ -4328,7 +2431,8 @@ }, "ignore-walk": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", + "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "optional": true, "requires": { "minimatch": "3.0.4" @@ -4336,7 +2440,8 @@ }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "optional": true, "requires": { "once": "1.4.0", @@ -4345,39 +2450,46 @@ }, "inherits": { "version": "2.0.3", - "bundled": true + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { "version": "1.3.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "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" } }, "isarray": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "optional": true }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "1.1.11" } }, "minimist": { "version": "0.0.8", - "bundled": true + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, "minipass": { "version": "2.2.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.4.tgz", + "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", "requires": { "safe-buffer": "5.1.1", "yallist": "3.0.2" @@ -4385,7 +2497,8 @@ }, "minizlib": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", + "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", "optional": true, "requires": { "minipass": "2.2.4" @@ -4393,19 +2506,22 @@ }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "optional": true }, "needle": { "version": "2.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/needle/-/needle-2.2.0.tgz", + "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", "optional": true, "requires": { "debug": "2.6.9", @@ -4415,7 +2531,8 @@ }, "node-pre-gyp": { "version": "0.10.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.10.0.tgz", + "integrity": "sha512-G7kEonQLRbcA/mOoFoxvlMrw6Q6dPf92+t/l0DFSMuSlDoWaI9JWIyPwK0jyE1bph//CUEL65/Fz1m2vJbmjQQ==", "optional": true, "requires": { "detect-libc": "1.0.3", @@ -4432,7 +2549,8 @@ }, "nopt": { "version": "4.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "optional": true, "requires": { "abbrev": "1.1.1", @@ -4441,12 +2559,14 @@ }, "npm-bundled": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.3.tgz", + "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", "optional": true }, "npm-packlist": { "version": "1.1.10", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.10.tgz", + "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", "optional": true, "requires": { "ignore-walk": "3.0.1", @@ -4455,7 +2575,8 @@ }, "npmlog": { "version": "4.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "optional": true, "requires": { "are-we-there-yet": "1.1.4", @@ -4466,33 +2587,39 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "optional": true }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { "wrappy": "1.0.2" } }, "os-homedir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "optional": true }, "os-tmpdir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "optional": true }, "osenv": { "version": "0.1.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "optional": true, "requires": { "os-homedir": "1.0.2", @@ -4501,17 +2628,20 @@ }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "optional": true }, "process-nextick-args": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "optional": true }, "rc": { "version": "1.2.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz", + "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", "optional": true, "requires": { "deep-extend": "0.5.1", @@ -4522,14 +2652,16 @@ "dependencies": { "minimist": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "optional": true } } }, "readable-stream": { "version": "2.3.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "optional": true, "requires": { "core-util-is": "1.0.2", @@ -4543,7 +2675,8 @@ }, "rimraf": { "version": "2.6.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "optional": true, "requires": { "glob": "7.1.2" @@ -4551,36 +2684,43 @@ }, "safe-buffer": { "version": "5.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, "safer-buffer": { "version": "2.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "optional": true }, "sax": { "version": "1.2.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "optional": true }, "semver": { "version": "5.5.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", "optional": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "optional": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "optional": true }, "string-width": { "version": "1.0.2", - "bundled": true, + "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", @@ -4589,7 +2729,8 @@ }, "string_decoder": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "optional": true, "requires": { "safe-buffer": "5.1.1" @@ -4597,19 +2738,22 @@ }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "2.1.1" } }, "strip-json-comments": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "optional": true }, "tar": { "version": "4.4.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.1.tgz", + "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", "optional": true, "requires": { "chownr": "1.0.1", @@ -4623,12 +2767,14 @@ }, "util-deprecate": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "optional": true }, "wide-align": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "optional": true, "requires": { "string-width": "1.0.2" @@ -4636,11 +2782,13 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "yallist": { "version": "3.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", + "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" } } }, @@ -5113,25 +3261,6 @@ "isarray": "1.0.0" } }, - "istanbul-lib-coverage": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", - "integrity": "sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA==" - }, - "istanbul-lib-instrument": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-2.3.2.tgz", - "integrity": "sha512-l7TD/VnBsIB2OJvSyxaLW/ab1+92dxZNH9wLH7uHPPioy3JZ8tnx2UXUdKmdkgmP2EFPzg64CToUP6dAS3U32Q==", - "requires": { - "@babel/generator": "7.0.0-beta.51", - "@babel/parser": "7.0.0-beta.51", - "@babel/template": "7.0.0-beta.51", - "@babel/traverse": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51", - "istanbul-lib-coverage": "2.0.1", - "semver": "5.5.1" - } - }, "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", @@ -5533,7 +3662,6 @@ "version": "11.9.0", "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.9.0.tgz", "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", - "dev": true, "requires": { "archy": "1.0.0", "arrify": "1.0.1", @@ -5566,8 +3694,8 @@ "dependencies": { "align-text": { "version": "0.1.4", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "requires": { "kind-of": "3.2.2", "longest": "1.0.1", @@ -5576,76 +3704,76 @@ }, "amdefine": { "version": "1.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" }, "ansi-regex": { "version": "2.1.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { "version": "2.2.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, "append-transform": { "version": "0.4.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", "requires": { "default-require-extensions": "1.0.0" } }, "archy": { "version": "1.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" }, "arr-diff": { "version": "4.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "arr-flatten": { "version": "1.1.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" }, "arr-union": { "version": "3.1.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, "array-unique": { "version": "0.3.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "arrify": { "version": "1.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" }, "assign-symbols": { "version": "1.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, "async": { "version": "1.5.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" }, "atob": { "version": "2.1.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", + "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=" }, "babel-code-frame": { "version": "6.26.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { "chalk": "1.1.3", "esutils": "2.0.2", @@ -5654,8 +3782,8 @@ }, "babel-generator": { "version": "6.26.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "requires": { "babel-messages": "6.23.0", "babel-runtime": "6.26.0", @@ -5669,16 +3797,16 @@ }, "babel-messages": { "version": "6.23.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "requires": { "babel-runtime": "6.26.0" } }, "babel-runtime": { "version": "6.26.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { "core-js": "2.5.6", "regenerator-runtime": "0.11.1" @@ -5686,8 +3814,8 @@ }, "babel-template": { "version": "6.26.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "requires": { "babel-runtime": "6.26.0", "babel-traverse": "6.26.0", @@ -5698,8 +3826,8 @@ }, "babel-traverse": { "version": "6.26.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "requires": { "babel-code-frame": "6.26.0", "babel-messages": "6.23.0", @@ -5714,8 +3842,8 @@ }, "babel-types": { "version": "6.26.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { "babel-runtime": "6.26.0", "esutils": "2.0.2", @@ -5725,18 +3853,18 @@ }, "babylon": { "version": "6.18.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" }, "balanced-match": { "version": "1.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base": { "version": "0.11.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { "cache-base": "1.0.1", "class-utils": "0.3.6", @@ -5749,32 +3877,32 @@ "dependencies": { "define-property": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -5783,20 +3911,20 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, "brace-expansion": { "version": "1.1.11", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -5804,8 +3932,8 @@ }, "braces": { "version": "2.3.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "requires": { "arr-flatten": "1.1.0", "array-unique": "0.3.2", @@ -5821,8 +3949,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } @@ -5831,13 +3959,13 @@ }, "builtin-modules": { "version": "1.1.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" }, "cache-base": { "version": "1.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "requires": { "collection-visit": "1.0.0", "component-emitter": "1.2.1", @@ -5852,15 +3980,15 @@ "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, "caching-transform": { "version": "1.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", + "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", "requires": { "md5-hex": "1.3.0", "mkdirp": "0.5.1", @@ -5869,14 +3997,14 @@ }, "camelcase": { "version": "1.2.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", "optional": true }, "center-align": { "version": "0.1.3", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "optional": true, "requires": { "align-text": "0.1.4", @@ -5885,8 +4013,8 @@ }, "chalk": { "version": "1.1.3", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { "ansi-styles": "2.2.1", "escape-string-regexp": "1.0.5", @@ -5897,8 +4025,8 @@ }, "class-utils": { "version": "0.3.6", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "requires": { "arr-union": "3.1.0", "define-property": "0.2.5", @@ -5908,23 +4036,23 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "0.1.6" } }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, "cliui": { "version": "2.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "optional": true, "requires": { "center-align": "0.1.3", @@ -5934,21 +4062,21 @@ "dependencies": { "wordwrap": { "version": "0.0.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", "optional": true } } }, "code-point-at": { "version": "1.1.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "collection-visit": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { "map-visit": "1.0.0", "object-visit": "1.0.1" @@ -5956,38 +4084,38 @@ }, "commondir": { "version": "1.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" }, "component-emitter": { "version": "1.2.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" }, "concat-map": { "version": "0.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "convert-source-map": { "version": "1.5.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=" }, "copy-descriptor": { "version": "0.1.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "core-js": { "version": "2.5.6", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.6.tgz", + "integrity": "sha512-lQUVfQi0aLix2xpyjrrJEvfuYCqPc/HwmTKsC/VNf8q0zsjX7SQZtp4+oRONN5Tsur9GDETPjj+Ub2iDiGZfSQ==" }, "cross-spawn": { "version": "4.0.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", "requires": { "lru-cache": "4.1.3", "which": "1.3.0" @@ -5995,39 +4123,39 @@ }, "debug": { "version": "2.6.9", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { "ms": "2.0.0" } }, "debug-log": { "version": "1.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", + "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=" }, "decamelize": { "version": "1.2.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, "decode-uri-component": { "version": "0.2.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, "default-require-extensions": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", "requires": { "strip-bom": "2.0.0" } }, "define-property": { "version": "2.0.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "requires": { "is-descriptor": "1.0.2", "isobject": "3.0.1" @@ -6035,24 +4163,24 @@ "dependencies": { "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -6061,46 +4189,46 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, "detect-indent": { "version": "4.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "requires": { "repeating": "2.0.1" } }, "error-ex": { "version": "1.3.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "requires": { "is-arrayish": "0.2.1" } }, "escape-string-regexp": { "version": "1.0.5", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "esutils": { "version": "2.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" }, "execa": { "version": "0.7.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "requires": { "cross-spawn": "5.1.0", "get-stream": "3.0.0", @@ -6113,8 +4241,8 @@ "dependencies": { "cross-spawn": { "version": "5.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { "lru-cache": "4.1.3", "shebang-command": "1.2.0", @@ -6125,8 +4253,8 @@ }, "expand-brackets": { "version": "2.1.4", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { "debug": "2.6.9", "define-property": "0.2.5", @@ -6139,16 +4267,16 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "0.1.6" } }, "extend-shallow": { "version": "2.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } @@ -6157,8 +4285,8 @@ }, "extend-shallow": { "version": "3.0.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { "assign-symbols": "1.0.0", "is-extendable": "1.0.1" @@ -6166,8 +4294,8 @@ "dependencies": { "is-extendable": { "version": "1.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { "is-plain-object": "2.0.4" } @@ -6176,8 +4304,8 @@ }, "extglob": { "version": "2.0.4", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "requires": { "array-unique": "0.3.2", "define-property": "1.0.0", @@ -6191,40 +4319,40 @@ "dependencies": { "define-property": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "1.0.2" } }, "extend-shallow": { "version": "2.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -6233,15 +4361,15 @@ }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, "fill-range": { "version": "4.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { "extend-shallow": "2.0.1", "is-number": "3.0.0", @@ -6251,8 +4379,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } @@ -6261,8 +4389,8 @@ }, "find-cache-dir": { "version": "0.1.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", "requires": { "commondir": "1.0.1", "mkdirp": "0.5.1", @@ -6271,21 +4399,21 @@ }, "find-up": { "version": "2.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { "locate-path": "2.0.0" } }, "for-in": { "version": "1.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" }, "foreground-child": { "version": "1.5.6", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", + "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", "requires": { "cross-spawn": "4.0.2", "signal-exit": "3.0.2" @@ -6293,36 +4421,36 @@ }, "fragment-cache": { "version": "0.2.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { "map-cache": "0.2.2" } }, "fs.realpath": { "version": "1.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "get-caller-file": { "version": "1.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" }, "get-stream": { "version": "3.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, "get-value": { "version": "2.0.6", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" }, "glob": { "version": "7.1.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -6334,18 +4462,18 @@ }, "globals": { "version": "9.18.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" }, "graceful-fs": { "version": "4.1.11", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" }, "handlebars": { "version": "4.0.11", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "requires": { "async": "1.5.2", "optimist": "0.6.1", @@ -6355,8 +4483,8 @@ "dependencies": { "source-map": { "version": "0.4.4", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "requires": { "amdefine": "1.0.1" } @@ -6365,21 +4493,21 @@ }, "has-ansi": { "version": "2.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { "ansi-regex": "2.1.1" } }, "has-flag": { "version": "1.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" }, "has-value": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "requires": { "get-value": "2.0.6", "has-values": "1.0.0", @@ -6388,15 +4516,15 @@ "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, "has-values": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { "is-number": "3.0.0", "kind-of": "4.0.0" @@ -6404,16 +4532,16 @@ "dependencies": { "is-number": { "version": "3.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "1.1.6" } @@ -6422,8 +4550,8 @@ }, "kind-of": { "version": "4.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { "is-buffer": "1.1.6" } @@ -6432,18 +4560,18 @@ }, "hosted-git-info": { "version": "2.6.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", + "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==" }, "imurmurhash": { "version": "0.1.4", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "inflight": { "version": "1.0.6", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -6451,60 +4579,60 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "invariant": { "version": "2.2.4", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { "loose-envify": "1.3.1" } }, "invert-kv": { "version": "1.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" }, "is-accessor-descriptor": { "version": "0.1.6", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { "kind-of": "3.2.2" } }, "is-arrayish": { "version": "0.2.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "is-buffer": { "version": "1.1.6", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-builtin-module": { "version": "1.0.0", - "bundled": true, - "dev": true, + "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" } }, "is-data-descriptor": { "version": "0.1.4", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { "kind-of": "3.2.2" } }, "is-descriptor": { "version": "0.1.6", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "requires": { "is-accessor-descriptor": "0.1.6", "is-data-descriptor": "0.1.4", @@ -6513,114 +4641,114 @@ "dependencies": { "kind-of": { "version": "5.1.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, "is-extendable": { "version": "0.1.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" }, "is-finite": { "version": "1.0.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "requires": { "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "is-number": { "version": "3.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { "kind-of": "3.2.2" } }, "is-odd": { "version": "2.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", "requires": { "is-number": "4.0.0" }, "dependencies": { "is-number": { "version": "4.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" } } }, "is-plain-object": { "version": "2.0.4", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, "is-stream": { "version": "1.1.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "is-utf8": { "version": "0.2.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" }, "is-windows": { "version": "1.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" }, "isarray": { "version": "1.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isexe": { "version": "2.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "istanbul-lib-coverage": { "version": "1.2.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", + "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==" }, "istanbul-lib-hook": { "version": "1.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", + "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", "requires": { "append-transform": "0.4.0" } }, "istanbul-lib-instrument": { "version": "1.10.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", + "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", "requires": { "babel-generator": "6.26.1", "babel-template": "6.26.0", @@ -6633,8 +4761,8 @@ }, "istanbul-lib-report": { "version": "1.1.3", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz", + "integrity": "sha512-D4jVbMDtT2dPmloPJS/rmeP626N5Pr3Rp+SovrPn1+zPChGHcggd/0sL29jnbm4oK9W0wHjCRsdch9oLd7cm6g==", "requires": { "istanbul-lib-coverage": "1.2.0", "mkdirp": "0.5.1", @@ -6644,8 +4772,8 @@ "dependencies": { "supports-color": { "version": "3.2.3", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "requires": { "has-flag": "1.0.0" } @@ -6654,8 +4782,8 @@ }, "istanbul-lib-source-maps": { "version": "1.2.3", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz", + "integrity": "sha512-fDa0hwU/5sDXwAklXgAoCJCOsFsBplVQ6WBldz5UwaqOzmDhUK4nfuR7/G//G2lERlblUNJB8P6e8cXq3a7MlA==", "requires": { "debug": "3.1.0", "istanbul-lib-coverage": "1.2.0", @@ -6666,8 +4794,8 @@ "dependencies": { "debug": { "version": "3.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "requires": { "ms": "2.0.0" } @@ -6676,48 +4804,48 @@ }, "istanbul-reports": { "version": "1.4.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.4.0.tgz", + "integrity": "sha512-OPzVo1fPZ2H+owr8q/LYKLD+vquv9Pj4F+dj808MdHbuQLD7S4ACRjcX+0Tne5Vxt2lxXvdZaL7v+FOOAV281w==", "requires": { "handlebars": "4.0.11" } }, "js-tokens": { "version": "3.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" }, "jsesc": { "version": "1.3.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" }, "kind-of": { "version": "3.2.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "1.1.6" } }, "lazy-cache": { "version": "1.0.4", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", "optional": true }, "lcid": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { "invert-kv": "1.0.0" } }, "load-json-file": { "version": "1.1.0", - "bundled": true, - "dev": true, + "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", @@ -6728,8 +4856,8 @@ }, "locate-path": { "version": "2.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { "p-locate": "2.0.0", "path-exists": "3.0.0" @@ -6737,33 +4865,33 @@ "dependencies": { "path-exists": { "version": "3.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" } } }, "lodash": { "version": "4.17.10", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" }, "longest": { "version": "1.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" }, "loose-envify": { "version": "1.3.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "requires": { "js-tokens": "3.0.2" } }, "lru-cache": { "version": "4.1.3", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { "pseudomap": "1.0.2", "yallist": "2.1.2" @@ -6771,57 +4899,57 @@ }, "map-cache": { "version": "0.2.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, "map-visit": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { "object-visit": "1.0.1" } }, "md5-hex": { "version": "1.3.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", + "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "requires": { "md5-o-matic": "0.1.1" } }, "md5-o-matic": { "version": "0.1.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", + "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=" }, "mem": { "version": "1.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { "mimic-fn": "1.2.0" } }, "merge-source-map": { "version": "1.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", "requires": { "source-map": "0.6.1" }, "dependencies": { "source-map": { "version": "0.6.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, "micromatch": { "version": "3.1.10", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -6840,33 +4968,33 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, "mimic-fn": { "version": "1.2.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" }, "minimatch": { "version": "3.0.4", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "1.1.11" } }, "minimist": { "version": "0.0.8", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, "mixin-deep": { "version": "1.3.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "requires": { "for-in": "1.0.2", "is-extendable": "1.0.1" @@ -6874,8 +5002,8 @@ "dependencies": { "is-extendable": { "version": "1.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { "is-plain-object": "2.0.4" } @@ -6884,21 +5012,21 @@ }, "mkdirp": { "version": "0.5.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "nanomatch": { "version": "1.2.9", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -6916,25 +5044,25 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "array-unique": { "version": "0.3.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, "normalize-package-data": { "version": "2.4.0", - "bundled": true, - "dev": true, + "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.6.0", "is-builtin-module": "1.0.0", @@ -6944,26 +5072,26 @@ }, "npm-run-path": { "version": "2.0.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { "path-key": "2.0.1" } }, "number-is-nan": { "version": "1.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "object-assign": { "version": "4.1.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-copy": { "version": "0.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "requires": { "copy-descriptor": "0.1.1", "define-property": "0.2.5", @@ -6972,8 +5100,8 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "0.1.6" } @@ -6982,46 +5110,46 @@ }, "object-visit": { "version": "1.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, "object.pick": { "version": "1.3.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, "once": { "version": "1.4.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { "wrappy": "1.0.2" } }, "optimist": { "version": "0.6.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "requires": { "minimist": "0.0.8", "wordwrap": "0.0.3" @@ -7029,13 +5157,13 @@ }, "os-homedir": { "version": "1.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-locale": { "version": "2.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "requires": { "execa": "0.7.0", "lcid": "1.0.0", @@ -7044,70 +5172,70 @@ }, "p-finally": { "version": "1.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "p-limit": { "version": "1.2.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", + "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", "requires": { "p-try": "1.0.0" } }, "p-locate": { "version": "2.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { "p-limit": "1.2.0" } }, "p-try": { "version": "1.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" }, "parse-json": { "version": "2.2.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { "error-ex": "1.3.1" } }, "pascalcase": { "version": "0.1.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" }, "path-exists": { "version": "2.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "requires": { "pinkie-promise": "2.0.1" } }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-key": { "version": "2.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, "path-parse": { "version": "1.0.5", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" }, "path-type": { "version": "1.1.0", - "bundled": true, - "dev": true, + "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", @@ -7116,34 +5244,34 @@ }, "pify": { "version": "2.3.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, "pinkie": { "version": "2.0.4", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" }, "pinkie-promise": { "version": "2.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { "pinkie": "2.0.4" } }, "pkg-dir": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "requires": { "find-up": "1.1.2" }, "dependencies": { "find-up": { "version": "1.1.2", - "bundled": true, - "dev": true, + "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" @@ -7153,18 +5281,18 @@ }, "posix-character-classes": { "version": "0.1.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "pseudomap": { "version": "1.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, "read-pkg": { "version": "1.1.0", - "bundled": true, - "dev": true, + "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", @@ -7173,8 +5301,8 @@ }, "read-pkg-up": { "version": "1.0.1", - "bundled": true, - "dev": true, + "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" @@ -7182,8 +5310,8 @@ "dependencies": { "find-up": { "version": "1.1.2", - "bundled": true, - "dev": true, + "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" @@ -7193,13 +5321,13 @@ }, "regenerator-runtime": { "version": "0.11.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" }, "regex-not": { "version": "1.0.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "requires": { "extend-shallow": "3.0.2", "safe-regex": "1.1.0" @@ -7207,51 +5335,51 @@ }, "repeat-element": { "version": "1.1.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" }, "repeat-string": { "version": "1.6.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, "repeating": { "version": "2.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "requires": { "is-finite": "1.0.2" } }, "require-directory": { "version": "2.1.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, "require-main-filename": { "version": "1.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" }, "resolve-from": { "version": "2.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" }, "resolve-url": { "version": "0.2.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" }, "ret": { "version": "0.1.15", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" }, "right-align": { "version": "0.1.3", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "optional": true, "requires": { "align-text": "0.1.4" @@ -7259,34 +5387,34 @@ }, "rimraf": { "version": "2.6.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { "glob": "7.1.2" } }, "safe-regex": { "version": "1.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { "ret": "0.1.15" } }, "semver": { "version": "5.5.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" }, "set-blocking": { "version": "2.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "set-value": { "version": "2.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "requires": { "extend-shallow": "2.0.1", "is-extendable": "0.1.1", @@ -7296,8 +5424,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } @@ -7306,31 +5434,31 @@ }, "shebang-command": { "version": "1.2.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { "shebang-regex": "1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, "signal-exit": { "version": "3.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "slide": { "version": "1.1.6", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" }, "snapdragon": { "version": "0.8.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "requires": { "base": "0.11.2", "debug": "2.6.9", @@ -7344,16 +5472,16 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "0.1.6" } }, "extend-shallow": { "version": "2.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } @@ -7362,8 +5490,8 @@ }, "snapdragon-node": { "version": "2.1.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "requires": { "define-property": "1.0.0", "isobject": "3.0.1", @@ -7372,32 +5500,32 @@ "dependencies": { "define-property": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -7406,33 +5534,33 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, "snapdragon-util": { "version": "3.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "requires": { "kind-of": "3.2.2" } }, "source-map": { "version": "0.5.7", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "source-map-resolve": { "version": "0.5.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", "requires": { "atob": "2.1.1", "decode-uri-component": "0.2.0", @@ -7443,13 +5571,13 @@ }, "source-map-url": { "version": "0.4.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, "spawn-wrap": { "version": "1.4.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", + "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", "requires": { "foreground-child": "1.5.6", "mkdirp": "0.5.1", @@ -7461,8 +5589,8 @@ }, "spdx-correct": { "version": "3.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "requires": { "spdx-expression-parse": "3.0.0", "spdx-license-ids": "3.0.0" @@ -7470,13 +5598,13 @@ }, "spdx-exceptions": { "version": "2.1.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==" }, "spdx-expression-parse": { "version": "3.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { "spdx-exceptions": "2.1.0", "spdx-license-ids": "3.0.0" @@ -7484,21 +5612,21 @@ }, "spdx-license-ids": { "version": "3.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", + "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==" }, "split-string": { "version": "3.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "requires": { "extend-shallow": "3.0.2" } }, "static-extend": { "version": "0.1.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { "define-property": "0.2.5", "object-copy": "0.1.0" @@ -7506,8 +5634,8 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "0.1.6" } @@ -7516,8 +5644,8 @@ }, "string-width": { "version": "2.1.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "requires": { "is-fullwidth-code-point": "2.0.0", "strip-ansi": "4.0.0" @@ -7525,13 +5653,13 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "strip-ansi": { "version": "4.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { "ansi-regex": "3.0.0" } @@ -7540,34 +5668,34 @@ }, "strip-ansi": { "version": "3.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "2.1.1" } }, "strip-bom": { "version": "2.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { "is-utf8": "0.2.1" } }, "strip-eof": { "version": "1.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, "supports-color": { "version": "2.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" }, "test-exclude": { "version": "4.2.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", + "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", "requires": { "arrify": "1.0.1", "micromatch": "3.1.10", @@ -7578,18 +5706,18 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "array-unique": { "version": "0.3.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "braces": { "version": "2.3.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "requires": { "arr-flatten": "1.1.0", "array-unique": "0.3.2", @@ -7605,8 +5733,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } @@ -7615,8 +5743,8 @@ }, "expand-brackets": { "version": "2.1.4", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { "debug": "2.6.9", "define-property": "0.2.5", @@ -7629,32 +5757,32 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "0.1.6" } }, "extend-shallow": { "version": "2.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { "version": "0.1.6", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "1.1.6" } @@ -7663,16 +5791,16 @@ }, "is-data-descriptor": { "version": "0.1.4", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "1.1.6" } @@ -7681,8 +5809,8 @@ }, "is-descriptor": { "version": "0.1.6", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "requires": { "is-accessor-descriptor": "0.1.6", "is-data-descriptor": "0.1.4", @@ -7691,15 +5819,15 @@ }, "kind-of": { "version": "5.1.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, "extglob": { "version": "2.0.4", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "requires": { "array-unique": "0.3.2", "define-property": "1.0.0", @@ -7713,16 +5841,16 @@ "dependencies": { "define-property": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "1.0.2" } }, "extend-shallow": { "version": "2.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } @@ -7731,8 +5859,8 @@ }, "fill-range": { "version": "4.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { "extend-shallow": "2.0.1", "is-number": "3.0.0", @@ -7742,8 +5870,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } @@ -7752,24 +5880,24 @@ }, "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -7778,16 +5906,16 @@ }, "is-number": { "version": "3.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "1.1.6" } @@ -7796,18 +5924,18 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" }, "micromatch": { "version": "3.1.10", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -7828,21 +5956,21 @@ }, "to-fast-properties": { "version": "1.0.3", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" }, "to-object-path": { "version": "0.3.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { "kind-of": "3.2.2" } }, "to-regex": { "version": "3.0.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "requires": { "define-property": "2.0.2", "extend-shallow": "3.0.2", @@ -7852,8 +5980,8 @@ }, "to-regex-range": { "version": "2.1.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "requires": { "is-number": "3.0.0", "repeat-string": "1.6.1" @@ -7861,8 +5989,8 @@ "dependencies": { "is-number": { "version": "3.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { "kind-of": "3.2.2" } @@ -7871,13 +5999,13 @@ }, "trim-right": { "version": "1.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" }, "uglify-js": { "version": "2.8.29", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "optional": true, "requires": { "source-map": "0.5.7", @@ -7887,8 +6015,8 @@ "dependencies": { "yargs": { "version": "3.10.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "optional": true, "requires": { "camelcase": "1.2.1", @@ -7901,14 +6029,14 @@ }, "uglify-to-browserify": { "version": "1.0.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", "optional": true }, "union-value": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "requires": { "arr-union": "3.1.0", "get-value": "2.0.6", @@ -7918,16 +6046,16 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } }, "set-value": { "version": "0.4.3", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "requires": { "extend-shallow": "2.0.1", "is-extendable": "0.1.1", @@ -7939,8 +6067,8 @@ }, "unset-value": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { "has-value": "0.3.1", "isobject": "3.0.1" @@ -7948,8 +6076,8 @@ "dependencies": { "has-value": { "version": "0.3.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "requires": { "get-value": "2.0.6", "has-values": "0.1.4", @@ -7958,8 +6086,8 @@ "dependencies": { "isobject": { "version": "2.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "requires": { "isarray": "1.0.0" } @@ -7968,40 +6096,40 @@ }, "has-values": { "version": "0.1.4", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, "urix": { "version": "0.1.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" }, "use": { "version": "3.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", "requires": { "kind-of": "6.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, "validate-npm-package-license": { "version": "3.0.3", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", + "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "requires": { "spdx-correct": "3.0.0", "spdx-expression-parse": "3.0.0" @@ -8009,32 +6137,32 @@ }, "which": { "version": "1.3.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "requires": { "isexe": "2.0.0" } }, "which-module": { "version": "2.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, "window-size": { "version": "0.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", "optional": true }, "wordwrap": { "version": "0.0.3", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" }, "wrap-ansi": { "version": "2.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { "string-width": "1.0.2", "strip-ansi": "3.0.1" @@ -8042,16 +6170,16 @@ "dependencies": { "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, - "dev": true, + "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" } }, "string-width": { "version": "1.0.2", - "bundled": true, - "dev": true, + "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", @@ -8062,13 +6190,13 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write-file-atomic": { "version": "1.3.4", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", + "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", "requires": { "graceful-fs": "4.1.11", "imurmurhash": "0.1.4", @@ -8077,18 +6205,18 @@ }, "y18n": { "version": "3.2.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" }, "yallist": { "version": "2.1.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" }, "yargs": { "version": "11.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", + "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", "requires": { "cliui": "4.1.0", "decamelize": "1.2.0", @@ -8106,18 +6234,18 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "camelcase": { "version": "4.1.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, "cliui": { "version": "4.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "requires": { "string-width": "2.1.1", "strip-ansi": "4.0.0", @@ -8126,16 +6254,16 @@ }, "strip-ansi": { "version": "4.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { "ansi-regex": "3.0.0" } }, "yargs-parser": { "version": "9.0.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", + "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", "requires": { "camelcase": "4.1.0" } @@ -8144,16 +6272,16 @@ }, "yargs-parser": { "version": "8.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", + "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", "requires": { "camelcase": "4.1.0" }, "dependencies": { "camelcase": { "version": "4.1.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" } } } diff --git a/package.json b/package.json index 1abaa2a9..bf787ab9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.6.2", + "version": "1.6.3", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", diff --git a/src/Address.js b/src/Address.js index 98381e07..7f803b84 100644 --- a/src/Address.js +++ b/src/Address.js @@ -119,7 +119,7 @@ class Address { let response = await axios.get(`${this.restURL}address/details/${address}`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } @@ -132,7 +132,7 @@ class Address { let response = await axios.get(`${this.restURL}address/utxo/${address}`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } @@ -145,7 +145,7 @@ class Address { let response = await axios.get(`${this.restURL}address/unconfirmed/${address}`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } } diff --git a/src/Block.js b/src/Block.js index bcce85ff..55651f1e 100644 --- a/src/Block.js +++ b/src/Block.js @@ -9,7 +9,7 @@ class Block { let response = await axios.get(`${this.restURL}block/details/${id}`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } } diff --git a/src/Blockchain.js b/src/Blockchain.js index e63f1530..231af15c 100644 --- a/src/Blockchain.js +++ b/src/Blockchain.js @@ -5,91 +5,42 @@ class Blockchain { } async getBestBlockHash() { - // Returns the hash of the best (tip) block in the longest blockchain. - // - // Result: - // "hex" (string) the block hash hex encoded try { let response = await axios.get(`${this.restURL}blockchain/getBestBlockHash`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } async getBlock(blockhash, verbose = true) { - // If verbose is false, returns a string that is serialized, hex-encoded data for block 'hash'. - // If verbose is true, returns an Object with information about block . - // - // Arguments: - // 1. "blockhash" (string, required) The block hash - // 2. verbose (boolean, optional, default=true) true for a json object, false for the hex encoded data - // - // Result (for verbose = true): - // { - // "hash" : "hash", (string) the block hash (same as provided) - // "confirmations" : n, (numeric) The number of confirmations, or -1 if the block is not on the main chain - // "size" : n, (numeric) The block size - // "height" : n, (numeric) The block height or index - // "version" : n, (numeric) The block version - // "versionHex" : "00000000", (string) The block version formatted in hexadecimal - // "merkleroot" : "xxxx", (string) The merkle root - // "tx" : [ (array of string) The transaction ids - // "transactionid" (string) The transaction id - // ,... - // ], - // "time" : ttt, (numeric) The block time in seconds since epoch (Jan 1 1970 GMT) - // "mediantime" : ttt, (numeric) The median block time in seconds since epoch (Jan 1 1970 GMT) - // "nonce" : n, (numeric) The nonce - // "bits" : "1d00ffff", (string) The bits - // "difficulty" : x.xxx, (numeric) The difficulty - // "chainwork" : "xxxx", (string) Expected number of hashes required to produce the chain up to this block (in hex) - // "previousblockhash" : "hash", (string) The hash of the previous block - // "nextblockhash" : "hash" (string) The hash of the next block - // } - // - // Result (for verbose=false): - // "data" (string) A string that is serialized, hex-encoded data for block 'hash'. - try { let response = await axios.get(`${this.restURL}blockchain/getBlock/${blockhash}?verbose=${verbose}`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } async getBlockchainInfo() { - // Returns an object containing various state info regarding blockchain processing. try { let response = await axios.get(`${this.restURL}blockchain/getBlockchainInfo`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } async getBlockCount() { - // Returns the number of blocks in the longest blockchain. - // - // Result: - // n (numeric) The current block count try { let response = await axios.get(`${this.restURL}blockchain/getBlockCount`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } async getBlockHash(height = 1) { - // Returns hash of block in best-block-chain at height provided. - // - // Arguments: - // 1. height (numeric, required) The height index - // - // Result: - // "hash" (string) The block hash if(typeof height !== 'string') { height = JSON.stringify(height); } @@ -97,39 +48,11 @@ class Blockchain { let response = await axios.get(`${this.restURL}blockchain/getBlockHash/${height}`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } async getBlockHeader(hash, verbose = true) { - - // If verbose is false, returns a string that is serialized, hex-encoded data for blockheader 'hash'. - // If verbose is true, returns an Object with information about blockheader . - // - // Arguments: - // 1. "hash" (string, required) The block hash - // 2. verbose (boolean, optional, default=true) true for a json object, false for the hex encoded data - // - // Result (for verbose = true): - // { - // "hash" : "hash", (string) the block hash (same as provided) - // "confirmations" : n, (numeric) The number of confirmations, or -1 if the block is not on the main chain - // "height" : n, (numeric) The block height or index - // "version" : n, (numeric) The block version - // "versionHex" : "00000000", (string) The block version formatted in hexadecimal - // "merkleroot" : "xxxx", (string) The merkle root - // "time" : ttt, (numeric) The block time in seconds since epoch (Jan 1 1970 GMT) - // "mediantime" : ttt, (numeric) The median block time in seconds since epoch (Jan 1 1970 GMT) - // "nonce" : n, (numeric) The nonce - // "bits" : "1d00ffff", (string) The bits - // "difficulty" : x.xxx, (numeric) The difficulty - // "chainwork" : "0000...1f3" (string) Expected number of hashes required to produce the current chain (in hex) - // "previousblockhash" : "hash", (string) The hash of the previous block - // "nextblockhash" : "hash", (string) The hash of the next block - // } - // - // Result (for verbose=false): - // "data" (string) A string that is serialized, hex-encoded data for block 'hash'. if(typeof hash !== 'string') { hash = JSON.stringify(hash); } @@ -137,92 +60,29 @@ class Blockchain { let response = await axios.get(`${this.restURL}blockchain/getBlockHeader/${hash}?verbose=${verbose}`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } async getChainTips() { - // Return information about all known tips in the block tree, including the main chain as well as orphaned branches. - // - // Result: - // [ - // { - // "height": xxxx, (numeric) height of the chain tip - // "hash": "xxxx", (string) block hash of the tip - // "branchlen": 0 (numeric) zero for main chain - // "status": "active" (string) "active" for the main chain - // }, - // { - // "height": xxxx, - // "hash": "xxxx", - // "branchlen": 1 (numeric) length of branch connecting the tip to the main chain - // "status": "xxxx" (string) status of the chain (active, valid-fork, valid-headers, headers-only, invalid) - // } - // ] - // Possible values for status: - // 1. "invalid" This branch contains at least one invalid block - // 2. "headers-only" Not all blocks for this branch are available, but the headers are valid - // 3. "valid-headers" All blocks are available for this branch, but they were never fully validated - // 4. "valid-fork" This branch is not part of the active chain, but is fully validated - // 5. "active" This is the tip of the active main chain, which is certainly valid - try { let response = await axios.get(`${this.restURL}blockchain/getChainTips`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } async getDifficulty() { - - // Returns the proof-of-work difficulty as a multiple of the minimum difficulty. - // - // Result: - // n.nnn (numeric) the proof-of-work difficulty as a multiple of the minimum difficulty. - try { let response = await axios.get(`${this.restURL}blockchain/getDifficulty`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } async getMempoolAncestors(txid, verbose = false) { - // If txid is in the mempool, returns all in-mempool ancestors. - // - // Arguments: - // 1. "txid" (string, required) The transaction id (must be in mempool) - // 2. verbose (boolean, optional, default=false) True for a json object, false for array of transaction ids - // - // Result (for verbose=false): - // [ (json array of strings) - // "transactionid" (string) The transaction id of an in-mempool ancestor transaction - // ,... - // ] - // - // Result (for verbose=true): - // { (json object) - // "transactionid" : { (json object) - // "size" : n, (numeric) transaction size. - // "fee" : n, (numeric) transaction fee in BCH - // "modifiedfee" : n, (numeric) transaction fee with fee deltas used for mining priority - // "time" : n, (numeric) local time transaction entered pool in seconds since 1 Jan 1970 GMT - // "height" : n, (numeric) block height when transaction entered pool - // "startingpriority" : n, (numeric) DEPRECATED. Priority when transaction entered pool - // "currentpriority" : n, (numeric) DEPRECATED. Transaction priority now - // "descendantcount" : n, (numeric) number of in-mempool descendant transactions (including this one) - // "descendantsize" : n, (numeric) virtual transaction size of in-mempool descendants (including this one) - // "descendantfees" : n, (numeric) modified fees (see above) of in-mempool descendants (including this one) - // "ancestorcount" : n, (numeric) number of in-mempool ancestor transactions (including this one) - // "ancestorsize" : n, (numeric) virtual transaction size of in-mempool ancestors (including this one) - // "ancestorfees" : n, (numeric) modified fees (see above) of in-mempool ancestors (including this one) - // "depends" : [ (array) unconfirmed transactions used as inputs for this transaction - // "transactionid", (string) parent transaction id - // ... ] - // }, ... - // } if(typeof txid !== 'string') { txid = JSON.stringify(txid); } @@ -230,44 +90,11 @@ class Blockchain { let response = await axios.get(`${this.restURL}blockchain/getMempoolAncestors/${txid}?verbose=${verbose}`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } async getMempoolDescendants(txid, verbose = false) { - // If txid is in the mempool, returns all in-mempool descendants. - // - // Arguments: - // 1. "txid" (string, required) The transaction id (must be in mempool) - // 2. verbose (boolean, optional, default=false) True for a json object, false for array of transaction ids - // - // Result (for verbose=false): - // [ (json array of strings) - // "transactionid" (string) The transaction id of an in-mempool descendant transaction - // ,... - // ] - // - // Result (for verbose=true): - // { (json object) - // "transactionid" : { (json object) - // "size" : n, (numeric) transaction size. - // "fee" : n, (numeric) transaction fee in BCH - // "modifiedfee" : n, (numeric) transaction fee with fee deltas used for mining priority - // "time" : n, (numeric) local time transaction entered pool in seconds since 1 Jan 1970 GMT - // "height" : n, (numeric) block height when transaction entered pool - // "startingpriority" : n, (numeric) DEPRECATED. Priority when transaction entered pool - // "currentpriority" : n, (numeric) DEPRECATED. Transaction priority now - // "descendantcount" : n, (numeric) number of in-mempool descendant transactions (including this one) - // "descendantsize" : n, (numeric) virtual transaction size of in-mempool descendants (including this one) - // "descendantfees" : n, (numeric) modified fees (see above) of in-mempool descendants (including this one) - // "ancestorcount" : n, (numeric) number of in-mempool ancestor transactions (including this one) - // "ancestorsize" : n, (numeric) virtual transaction size of in-mempool ancestors (including this one) - // "ancestorfees" : n, (numeric) modified fees (see above) of in-mempool ancestors (including this one) - // "depends" : [ (array) unconfirmed transactions used as inputs for this transaction - // "transactionid", (string) parent transaction id - // ... ] - // }, ... - // } if(typeof txid !== 'string') { txid = JSON.stringify(txid); } @@ -276,35 +103,11 @@ class Blockchain { let response = await axios.get(`${this.restURL}blockchain/getMempoolDescendants/${txid}?verbose=${verbose}`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } async getMempoolEntry(txid) { - // Returns mempool data for given transaction - // - // Arguments: - // 1. "txid" (string, required) The transaction id (must be in mempool) - // - // Result: - // { (json object) - // "size" : n, (numeric) transaction size. - // "fee" : n, (numeric) transaction fee in BCH - // "modifiedfee" : n, (numeric) transaction fee with fee deltas used for mining priority - // "time" : n, (numeric) local time transaction entered pool in seconds since 1 Jan 1970 GMT - // "height" : n, (numeric) block height when transaction entered pool - // "startingpriority" : n, (numeric) DEPRECATED. Priority when transaction entered pool - // "currentpriority" : n, (numeric) DEPRECATED. Transaction priority now - // "descendantcount" : n, (numeric) number of in-mempool descendant transactions (including this one) - // "descendantsize" : n, (numeric) virtual transaction size of in-mempool descendants (including this one) - // "descendantfees" : n, (numeric) modified fees (see above) of in-mempool descendants (including this one) - // "ancestorcount" : n, (numeric) number of in-mempool ancestor transactions (including this one) - // "ancestorsize" : n, (numeric) virtual transaction size of in-mempool ancestors (including this one) - // "ancestorfees" : n, (numeric) modified fees (see above) of in-mempool ancestors (including this one) - // "depends" : [ (array) unconfirmed transactions used as inputs for this transaction - // "transactionid", (string) parent transaction id - // ... ] - // } if(typeof txid !== 'string') { txid = JSON.stringify(txid); } @@ -313,103 +116,34 @@ class Blockchain { let response = await axios.get(`${this.restURL}blockchain/getMempoolEntry/${txid}`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } async getMempoolInfo() { - // Returns details on the active state of the TX memory pool. - // - // Result: - // { - // "size": xxxxx, (numeric) Current tx count - // "bytes": xxxxx, (numeric) Transaction size. - // "usage": xxxxx, (numeric) Total memory usage for the mempool - // "maxmempool": xxxxx, (numeric) Maximum memory usage for the mempool - // "mempoolminfee": xxxxx (numeric) Minimum fee for tx to be accepted - // } - try { let response = await axios.get(`${this.restURL}blockchain/getMempoolInfo`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } async getRawMempool(verbose = false) { - // Returns all transaction ids in memory pool as a json array of string transaction ids. - // - // Arguments: - // 1. verbose (boolean, optional, default=false) True for a json object, false for array of transaction ids - // - // Result: (for verbose = false): - // [ (json array of string) - // "transactionid" (string) The transaction id - // ,... - // ] - // - // Result: (for verbose = true): - // { (json object) - // "transactionid" : { (json object) - // "size" : n, (numeric) transaction size. - // "fee" : n, (numeric) transaction fee in BCH - // "modifiedfee" : n, (numeric) transaction fee with fee deltas used for mining priority - // "time" : n, (numeric) local time transaction entered pool in seconds since 1 Jan 1970 GMT - // "height" : n, (numeric) block height when transaction entered pool - // "startingpriority" : n, (numeric) DEPRECATED. Priority when transaction entered pool - // "currentpriority" : n, (numeric) DEPRECATED. Transaction priority now - // "descendantcount" : n, (numeric) number of in-mempool descendant transactions (including this one) - // "descendantsize" : n, (numeric) virtual transaction size of in-mempool descendants (including this one) - // "descendantfees" : n, (numeric) modified fees (see above) of in-mempool descendants (including this one) - // "ancestorcount" : n, (numeric) number of in-mempool ancestor transactions (including this one) - // "ancestorsize" : n, (numeric) virtual transaction size of in-mempool ancestors (including this one) - // "ancestorfees" : n, (numeric) modified fees (see above) of in-mempool ancestors (including this one) - // "depends" : [ (array) unconfirmed transactions used as inputs for this transaction - // "transactionid", (string) parent transaction id - // ... ] - // }, ... - // } try { let response = await axios.get(`${this.restURL}blockchain/getRawMempool?vebose=${verbose}`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } async getTxOut(txid, n, include_mempool = true) { - // Returns details about an unspent transaction output. - // - // Arguments: - // 1. "txid" (string, required) The transaction id - // 2. n (numeric, required) vout number - // 3. include_mempool (boolean, optional) Whether to include the mempool - // - // Result: - // { - // "bestblock" : "hash", (string) the block hash - // "confirmations" : n, (numeric) The number of confirmations - // "value" : x.xxx, (numeric) The transaction value in BCH - // "scriptPubKey" : { (json object) - // "asm" : "code", (string) - // "hex" : "hex", (string) - // "reqSigs" : n, (numeric) Number of required signatures - // "type" : "pubkeyhash", (string) The type, eg pubkeyhash - // "addresses" : [ (array of string) array of bitcoin addresses - // "address" (string) bitcoin address - // ,... - // ] - // }, - // "coinbase" : true|false (boolean) Coinbase or not - // } - // - try { let response = await axios.get(`${this.restURL}blockchain/getTxOut/${txid}/n?include_mempool=${include_mempool}`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } @@ -418,96 +152,47 @@ class Blockchain { if(blockhash) { path = `${path}?blockhash=${blockhash}` } - // Returns a hex-encoded proof that "txid" was included in a block. - // - // NOTE: By default this function only works sometimes. This is when there is an - // unspent output in the utxo for this transaction. To make it always work, - // you need to maintain a transaction index, using the -txindex command line option or - // specify the block in which the transaction is included manually (by blockhash). - // - // Arguments: - // 1. "txids" (string) A json array of txids to filter - // [ - // "txid" (string) A transaction hash - // ,... - // ] - // 2. "blockhash" (string, optional) If specified, looks for txid in the block with this hash - // - // Result: - // "data" (string) A string that is a serialized, hex-encoded data for the proof. try { let response = await axios.get(path) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } async preciousBlock(blockhash) { - // Treats a block as if it were received before others with the same work. - // - // A later preciousblock call can override the effect of an earlier one. - // - // The effects of preciousblock are not retained across restarts. - // - // Arguments: - // 1. "blockhash" (string, required) the hash of the block to mark as precious - try { let response = await axios.get(`${this.restURL}blockchain/preciousBlock/${blockhash}`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } async pruneBlockchain(height) { - // Arguments: - // 1. "height" (numeric, required) The block height to prune up to. May be set to a discrete height, or a unix timestamp - // to prune blocks whose block time is at least 2 hours older than the provided timestamp. - // - // Result: - // n (numeric) Height of the last block pruned. try { let response = await axios.post(`${this.restURL}blockchain/pruneBlockchain/${height}`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } async verifyChain(checklevel = 3, nblocks = 6) { - // Verifies blockchain database. - // - // Arguments: - // 1. checklevel (numeric, optional, 0-4, default=3) How thorough the block verification is. - // 2. nblocks (numeric, optional, default=6, 0=all) The number of blocks to check. - // - // Result: - // true|false (boolean) Verified or not try { let response = await axios.get(`${this.restURL}blockchain/verifyChain?checklevel=${checklevel}&nblocks=${nblocks}`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } async verifyTxOutProof(proof) { - // Verifies that a proof points to a transaction in a block, returning the transaction it commits to - // and throwing an RPC error if the block is not in our best chain - // - // Arguments: - // 1. "proof" (string, required) The hex-encoded proof generated by gettxoutproof - // - // Result: - // ["txid"] (array, strings) The txid(s) which the proof commits to, or empty array if the proof is invalid - try { let response = await axios.get(`${this.restURL}blockchain/verifyTxOutProof/proof`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data.message; } } } diff --git a/src/Control.js b/src/Control.js index 39dda419..7cf8da5e 100644 --- a/src/Control.js +++ b/src/Control.js @@ -5,58 +5,20 @@ class Control { } async getInfo() { - // DEPRECATED. Returns an object containing various state info. - // - // Result: - // { - // "version": xxxxx, (numeric) the server version - // "protocolversion": xxxxx, (numeric) the protocol version - // "walletversion": xxxxx, (numeric) the wallet version - // "balance": xxxxxxx, (numeric) the total bitcoin balance of the wallet - // "blocks": xxxxxx, (numeric) the current number of blocks processed in the server - // "timeoffset": xxxxx, (numeric) the time offset - // "connections": xxxxx, (numeric) the number of connections - // "proxy": "host:port", (string, optional) the proxy used by the server - // "difficulty": xxxxxx, (numeric) the current difficulty - // "testnet": true|false, (boolean) if the server is using testnet or not - // "keypoololdest": xxxxxx, (numeric) the timestamp (seconds since Unix epoch) of the oldest pre-generated key in the key pool - // "keypoolsize": xxxx, (numeric) how many new keys are pre-generated - // "unlocked_until": ttt, (numeric) the timestamp in seconds since epoch (midnight Jan 1 1970 GMT) that the wallet is unlocked for transfers, or 0 if the wallet is locked - // "paytxfee": x.xxxx, (numeric) the transaction fee set in BCH/kB - // "relayfee": x.xxxx, (numeric) minimum relay fee for non-free transactions in BCH/kB - // "errors": "..." (string) any error messages - // } - try { let response = await axios.get(`${this.restURL}control/getInfo`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } async getMemoryInfo() { - - // Returns an object containing information about memory usage. - // - // Result: - // { - // "locked": { (json object) Information about locked memory manager - // "used": xxxxx, (numeric) Number of bytes used - // "free": xxxxx, (numeric) Number of bytes available in current arenas - // "total": xxxxxxx, (numeric) Total number of bytes managed - // "locked": xxxxxx, (numeric) Amount of bytes that succeeded locking. If this number is smaller than total, locking pages failed at some point and key data could be swapped to disk. - // "chunks_used": xxxxx, (numeric) Number allocated chunks - // "chunks_free": xxxxx, (numeric) Number unused chunks - // } - // } - // - try { let response = await axios.get(`${this.restURL}control/getMemoryInfo`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } // diff --git a/src/Generating.js b/src/Generating.js index bf8b96f9..a9888ff1 100644 --- a/src/Generating.js +++ b/src/Generating.js @@ -5,22 +5,11 @@ class Generating { } async generateToAddress(blocks, address, maxtries = 1000000) { - - // Mine blocks immediately to a specified address (before the RPC call returns) - // - // Arguments: - // 1. nblocks (numeric, required) How many blocks are generated immediately. - // 2. address (string, required) The address to send the newly generated bitcoin to. - // 3. maxtries (numeric, optional) How many iterations to try (default = 1000000). - // - // Result: - // [ blockhashes ] (array) hashes of blocks generated - // try { let response = await axios.post(`${this.restURL}generating/generateToAddress/${blocks}/${address}?maxtries=${maxtries}`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } } diff --git a/src/Mining.js b/src/Mining.js index d1cde954..3676ee45 100644 --- a/src/Mining.js +++ b/src/Mining.js @@ -5,90 +5,33 @@ class Mining { } async getBlockTemplate(template_request) { - - // If the request parameters include a 'mode' key, that is used to explicitly select between the default 'template' request or a 'proposal'. - // It returns data needed to construct a block to work on. - // For full specification, see BIPs 22, 23, 9, and 145: - // https://github.com/bitcoin/bips/blob/master/bip-0022.mediawiki - // https://github.com/bitcoin/bips/blob/master/bip-0023.mediawiki - // https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki#getblocktemplate_changes - // https://github.com/bitcoin/bips/blob/master/bip-0145.mediawiki - // - // Arguments: - // 1. template_request (json object, optional) A json object in the following spec - // { - // "mode":"template" (string, optional) This must be set to "template", "proposal" (see BIP 23), or omitted - // "capabilities":[ (array, optional) A list of strings - // "support" (string) client side supported feature, 'longpoll', 'coinbasetxn', 'coinbasevalue', 'proposal', 'serverlist', 'workid' - // ,... - // ], - // "rules":[ (array, optional) A list of strings - // "support" (string) client side supported softfork deployment - // ,... - // ] - // } - try { let response = await axios.get(`${this.restURL}mining/getBlockTemplate/${template_request}`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } async getMiningInfo() { - // Returns a json object containing mining-related information. - // Result: - // { - // "blocks": nnn, (numeric) The current block - // "currentblocksize": nnn, (numeric) The last block size - // "currentblocktx": nnn, (numeric) The last block transaction - // "difficulty": xxx.xxxxx (numeric) The current difficulty - // "errors": "..." (string) Current errors - // "networkhashps": nnn, (numeric) The network hashes per second - // "pooledtx": n (numeric) The size of the mempool - // "chain": "xxxx", (string) current network name as defined in BIP70 (main, test, regtest) - // } - try { let response = await axios.get(`${this.restURL}mining/getMiningInfo`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } async getNetworkHashps(nblocks = 120, height = 1) { - // Returns the estimated network hashes per second based on the last n blocks. - // Pass in [blocks] to override # of blocks, -1 specifies since last difficulty change. - // Pass in [height] to estimate the network speed at the time when a certain block was found. - // - // Arguments: - // 1. nblocks (numeric, optional, default=120) The number of blocks, or -1 for blocks since last difficulty change. - // 2. height (numeric, optional, default=-1) To estimate at the time of the given height. - // - // Result: - // x (numeric) Hashes per second estimated try { let response = await axios.get(`${this.restURL}mining/getNetworkHashps?nblocks=${nblocks}&height=${height}`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } async submitBlock(hex, parameters) { - // Attempts to submit new block to network. - // The 'jsonparametersobject' parameter is currently ignored. - // See https://en.bitcoin.it/wiki/BIP_0022 for full specification. - // - // Arguments - // 1. "hex" (string, required) the hex-encoded block data to submit - // 2. "parameters" (string, optional) object of optional parameters - // { - // "workid" : "id" (string, optional) if the server provided a workid, it MUST be included with submissions - // } - // let path = `${this.restURL}mining/submitBlock/${hex}`; if(parameters) { path = `${path}?parameters=${parameters}`; @@ -97,7 +40,7 @@ class Mining { let response = await axios.post(path) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } } diff --git a/src/Network.js b/src/Network.js index 6bca0121..c85c180f 100644 --- a/src/Network.js +++ b/src/Network.js @@ -5,79 +5,33 @@ class Network { } async addNode(node, command){ - // Attempts add or remove a node from the addnode list. - // Or try a connection to a node once. - // - // Arguments: - // 1. "node" (string, required) The node (see getpeerinfo for nodes) - // 2. "command" (string, required) 'add' to add a node to the list, 'remove' to remove a node from the list, 'onetry' to try a connection to the node once - // - try { let response = await axios.post(`${this.restURL}network/addNode/${node}/${command}`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } async clearBanned() { - //The clearbanned RPC clears list of banned nodes. - - // Parameters: none - - // Result—null on success - // JSON null when the list was cleared - try { let response = await axios.post(`${this.restURL}clearBanned`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } async disconnectNode(configuration) { - // Immediately disconnects from the specified peer node. - // - // Strictly one out of 'configuration.address' and 'configuration.nodeid' can be provided to identify the node. - // - // To disconnect by nodeid, either set 'address' to the empty string, or call using the named 'nodeid' argument only. - // - // Arguments: - // 1. "configuration" (object, optional) - // Properties - // 1. "address" (string, optional) The IP address/port of the node - // 2. "nodeid" (number, optional) The node ID (see getpeerinfo for node IDs) try { let response = await axios.post(`${this.restURL}disconnectNode/${configuration}`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } async getAddedNodeInfo(node) { - // Returns information about the given added node, or all added nodes - // (note that onetry addnodes are not listed here) - // - // Arguments: - // 1. "node" (string, optional) If provided, return information about this specific node, otherwise all nodes are returned. - // - // Result: - // [ - // { - // "addednode" : "192.168.0.201", (string) The node ip address or name (as provided to addnode) - // "connected" : true|false, (boolean) If connected - // "addresses" : [ (list of objects) Only when connected = true - // { - // "address" : "192.168.0.201:8333", (string) The bitcoin server IP and port we're connected to - // "connected" : "outbound" (string) connection, inbound or outbound - // } - // ] - // } - // ,... - // ] let path = `${this.restURL}network/getAddedNodeInfo`; if(node) { path = `${path}?node=${node}`; @@ -87,145 +41,43 @@ class Network { let response = await axios.get(path) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } async getConnectionCount() { - // Returns the number of connections to other nodes. - // - // Result: - // n (numeric) The connection count - try { let response = await axios.get(`${this.restURL}network/getConnectionCount`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } async getNetTotals() { - // Returns information about network traffic, including bytes in, bytes out, and current time. - // - // Result: - // { - // "totalbytesrecv": n, (numeric) Total bytes received - // "totalbytessent": n, (numeric) Total bytes sent - // "timemillis": t, (numeric) Current UNIX time in milliseconds - // "uploadtarget": - // { - // "timeframe": n, (numeric) Length of the measuring timeframe in seconds - // "target": n, (numeric) Target in bytes - // "target_reached": true|false, (boolean) True if target is reached - // "serve_historical_blocks": true|false, (boolean) True if serving historical blocks - // "bytes_left_in_cycle": t, (numeric) Bytes left in current time cycle - // "time_left_in_cycle": t (numeric) Seconds left in current time cycle - // } - // } - try { let response = await axios.get(`${this.restURL}network/getNetTotals`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } async getNetworkInfo() { - // Returns an object containing various state info regarding P2P networking. - // - // Result: - // { - // "version": xxxxx, (numeric) the server version - // "subversion": "/Satoshi:x.x.x/", (string) the server subversion string - // "protocolversion": xxxxx, (numeric) the protocol version - // "localservices": "xxxxxxxxxxxxxxxx", (string) the services we offer to the network - // "localrelay": true|false, (bool) true if transaction relay is requested from peers - // "timeoffset": xxxxx, (numeric) the time offset - // "connections": xxxxx, (numeric) the number of connections - // "networkactive": true|false, (bool) whether p2p networking is enabled - // "networks": [ (array) information per network - // { - // "name": "xxx", (string) network (ipv4, ipv6 or onion) - // "limited": true|false, (boolean) is the network limited using -onlynet? - // "reachable": true|false, (boolean) is the network reachable? - // "proxy": "host:port" (string) the proxy that is used for this network, or empty if none - // "proxy_randomize_credentials": true|false, (string) Whether randomized credentials are used - // } - // ,... - // ], - // "relayfee": x.xxxxxxxx, (numeric) minimum relay fee for non-free transactions in BCH/kB - // "incrementalfee": x.xxxxxxxx, (numeric) minimum fee increment for mempool limiting or BIP 125 replacement in BCH/kB - // "localaddresses": [ (array) list of local addresses - // { - // "address": "xxxx", (string) network address - // "port": xxx, (numeric) network port - // "score": xxx (numeric) relative score - // } - // ,... - // ] - // "warnings": "..." (string) any network warnings - // } - try { let response = await axios.get(`${this.restURL}network/getNetworkInfo`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } async getPeerInfo() { - // Returns data about each connected network node as a json array of objects. - // - // Result: - // [ - // { - // "id": n, (numeric) Peer index - // "addr":"host:port", (string) The ip address and port of the peer - // "addrlocal":"ip:port", (string) local address - // "services":"xxxxxxxxxxxxxxxx", (string) The services offered - // "relaytxes":true|false, (boolean) Whether peer has asked us to relay transactions to it - // "lastsend": ttt, (numeric) The time in seconds since epoch (Jan 1 1970 GMT) of the last send - // "lastrecv": ttt, (numeric) The time in seconds since epoch (Jan 1 1970 GMT) of the last receive - // "bytessent": n, (numeric) The total bytes sent - // "bytesrecv": n, (numeric) The total bytes received - // "conntime": ttt, (numeric) The connection time in seconds since epoch (Jan 1 1970 GMT) - // "timeoffset": ttt, (numeric) The time offset in seconds - // "pingtime": n, (numeric) ping time (if available) - // "minping": n, (numeric) minimum observed ping time (if any at all) - // "pingwait": n, (numeric) ping wait (if non-zero) - // "version": v, (numeric) The peer version, such as 7001 - // "subver": "/Satoshi:0.8.5/", (string) The string version - // "inbound": true|false, (boolean) Inbound (true) or Outbound (false) - // "addnode": true|false, (boolean) Whether connection was due to addnode and is using an addnode slot - // "startingheight": n, (numeric) The starting height (block) of the peer - // "banscore": n, (numeric) The ban score - // "synced_headers": n, (numeric) The last header we have in common with this peer - // "synced_blocks": n, (numeric) The last block we have in common with this peer - // "inflight": [ - // n, (numeric) The heights of blocks we're currently asking from this peer - // ... - // ], - // "whitelisted": true|false, (boolean) Whether the peer is whitelisted - // "bytessent_per_msg": { - // "addr": n, (numeric) The total bytes sent aggregated by message type - // ... - // }, - // "bytesrecv_per_msg": { - // "addr": n, (numeric) The total bytes received aggregated by message type - // ... - // } - // } - // ,... - // ] - try { let response = await axios.get(`${this.restURL}network/getPeerInfo`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } // @@ -241,15 +93,11 @@ class Network { // } async ping() { - // Requests that a ping be sent to all other nodes, to measure ping time. - // Results provided in getpeerinfo, pingtime and pingwait fields are decimal seconds. - // Ping command is handled in queue with all other commands, so it measures processing backlog, not just network ping. - try { let response = await axios.get(`${this.restURL}network/ping`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } // diff --git a/src/Price.js b/src/Price.js index 3c42b656..840dec89 100644 --- a/src/Price.js +++ b/src/Price.js @@ -9,7 +9,7 @@ class Price { return response.data[currency.toUpperCase()]; } } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } } diff --git a/src/RawTransactions.js b/src/RawTransactions.js index aa482cc1..15c40c23 100644 --- a/src/RawTransactions.js +++ b/src/RawTransactions.js @@ -5,11 +5,6 @@ class RawTransactions { } async decodeRawTransaction(hex) { - // decodes a serialized transaction hex string into a JSON object describing the transaction. - - // Parameter #1—serialized transaction in hex - - // Result—the decoded transaction if(typeof hex !== 'string') { hex = JSON.stringify(hex); } @@ -18,16 +13,11 @@ class RawTransactions { let response = await axios.get(`${this.restURL}rawtransactions/decodeRawTransaction/${hex}`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } async decodeScript(script) { - // decodes a hex-encoded P2SH redeem script. - - // Parameter #1—a hex-encoded redeem script - - // Result—the decoded script if(typeof script !== 'string') { script = JSON.stringify(script); } @@ -36,27 +26,11 @@ class RawTransactions { let response = await axios.get(`${this.restURL}rawtransactions/decodeScript/${script}`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } async getRawTransaction(txid, verbose = false) { - // NOTE: By default this function only works for mempool transactions. If the -txindex option is - // enabled, it also works for blockchain transactions. - // DEPRECATED: for now, it also works for transactions with unspent outputs. - // - // Return the raw transaction data. - // - // If verbose is 'true', returns an Object with information about 'txid'. - // If verbose is 'false' or omitted, returns a string that is serialized, hex-encoded data for 'txid'. - // - // Arguments: - // 1. "txid" (string, required) The transaction id - // 2. verbose (bool, optional, default=false) If false, return a string, otherwise return a json object - // - // Result (if verbose is not set or set to false): - // "data" (string) The serialized, hex-encoded data for 'txid' - if(typeof txid !== 'string') { txid = JSON.stringify(txid); } @@ -65,22 +39,11 @@ class RawTransactions { let response = await axios.get(`${this.restURL}rawtransactions/getRawTransaction/${txid}?verbose=${verbose}`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } async sendRawTransaction(hex, allowhighfees = false) { - // Submits raw transaction (serialized, hex-encoded) to local node and network. - // - // Also see createrawtransaction and signrawtransaction calls. - // - // Arguments: - // 1. "hexstring" (string, required) The hex string of the raw transaction) - // 2. allowhighfees (boolean, optional, default=false) Allow high fees - // - // Result: - // "hex" (string) The transaction hash in hex - // if(typeof hex !== 'string') { hex = JSON.stringify(hex); } @@ -89,7 +52,7 @@ class RawTransactions { let response = await axios.post(`${this.restURL}rawtransactions/sendRawTransaction/${hex}?allowhighfees=${allowhighfees}`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } } diff --git a/src/Transaction.js b/src/Transaction.js index 0655da79..42887bc8 100644 --- a/src/Transaction.js +++ b/src/Transaction.js @@ -31,7 +31,7 @@ class Transaction { let response = await axios.get(`${this.restURL}transaction/details/${txid}`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } } diff --git a/src/Util.js b/src/Util.js index 36bebdba..0761488f 100644 --- a/src/Util.js +++ b/src/Util.js @@ -5,31 +5,11 @@ class Util { } async validateAddress(address) { - // Return information about the given bitcoin address. - // - // Arguments: - // 1. "address" (string, required) The bitcoin address to validate - // - // Result: - // { - // "isvalid" : true|false, (boolean) If the address is valid or not. If not, this is the only property returned. - // "address" : "address", (string) The bitcoin address validated - // "scriptPubKey" : "hex", (string) The hex encoded scriptPubKey generated by the address - // "ismine" : true|false, (boolean) If the address is yours or not - // "iswatchonly" : true|false, (boolean) If the address is watchonly - // "isscript" : true|false, (boolean) If the key is a script - // "pubkey" : "publickeyhex", (string) The hex value of the raw public key - // "iscompressed" : true|false, (boolean) If the address is compressed - // "account" : "account" (string) DEPRECATED. The account associated with the address, "" is the default account - // "timestamp" : timestamp, (number, optional) The creation time of the key if available in seconds since epoch (Jan 1 1970 GMT) - // "hdkeypath" : "keypath" (string, optional) The HD keypath if the key is HD and available - // "hdmasterkeyid" : "" (string, optional) The Hash160 of the HD master pubkey - // } try { let response = await axios.get(`${this.restURL}util/validateAddress/${address}`) return response.data; } catch (error) { - return JSON.stringify(error.response.data.error.message); + throw error.response.data; } } } From ab2127081c56722c7eeee4fce9255298cbf081b8 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 29 Aug 2018 14:19:13 -0700 Subject: [PATCH 078/480] Error handling. --- index.js | 2 +- lib/Blockchain.js | 32 ++++++++++++++++---------------- package.json | 2 +- src/Blockchain.js | 32 ++++++++++++++++---------------- 4 files changed, 34 insertions(+), 34 deletions(-) diff --git a/index.js b/index.js index d5b105fe..bfde847a 100755 --- a/index.js +++ b/index.js @@ -18,7 +18,7 @@ let clone = require('git-clone'); let cmd = require('node-cmd'); program - .version('1.6.3'); + .version('1.6.4'); program .command('new ') diff --git a/lib/Blockchain.js b/lib/Blockchain.js index ac8cb738..1a723ab9 100644 --- a/lib/Blockchain.js +++ b/lib/Blockchain.js @@ -60,7 +60,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + 'blockchain/getBlockCount'); return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } }, { @@ -75,7 +75,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + 'blockchain/getBlockHash/' + height); return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } }, { @@ -90,7 +90,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + 'blockchain/getBlockHeader/' + hash + '?verbose=' + verbose); return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } }, { @@ -100,7 +100,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + 'blockchain/getChainTips'); return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } }, { @@ -110,7 +110,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + 'blockchain/getDifficulty'); return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } }, { @@ -125,7 +125,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + 'blockchain/getMempoolAncestors/' + txid + '?verbose=' + verbose); return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } }, { @@ -141,7 +141,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + 'blockchain/getMempoolDescendants/' + txid + '?verbose=' + verbose); return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } }, { @@ -155,7 +155,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + 'blockchain/getMempoolEntry/' + txid); return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } }, { @@ -165,7 +165,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + 'blockchain/getMempoolInfo'); return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } }, { @@ -177,7 +177,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + 'blockchain/getRawMempool?vebose=' + verbose); return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } }, { @@ -189,7 +189,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + 'blockchain/getTxOut/' + txid + '/n?include_mempool=' + include_mempool); return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } }, { @@ -203,7 +203,7 @@ var Blockchain = function () { var response = await _axios2.default.get(path); return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } }, { @@ -213,7 +213,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + 'blockchain/preciousBlock/' + blockhash); return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } }, { @@ -223,7 +223,7 @@ var Blockchain = function () { var response = await _axios2.default.post(this.restURL + 'blockchain/pruneBlockchain/' + height); return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } }, { @@ -236,7 +236,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + 'blockchain/verifyChain?checklevel=' + checklevel + '&nblocks=' + nblocks); return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } }, { @@ -246,7 +246,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + 'blockchain/verifyTxOutProof/proof'); return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } }]); diff --git a/package.json b/package.json index bf787ab9..58a78269 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.6.3", + "version": "1.6.4", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", diff --git a/src/Blockchain.js b/src/Blockchain.js index 231af15c..4d844db9 100644 --- a/src/Blockchain.js +++ b/src/Blockchain.js @@ -36,7 +36,7 @@ class Blockchain { let response = await axios.get(`${this.restURL}blockchain/getBlockCount`) return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } @@ -48,7 +48,7 @@ class Blockchain { let response = await axios.get(`${this.restURL}blockchain/getBlockHash/${height}`) return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } @@ -60,7 +60,7 @@ class Blockchain { let response = await axios.get(`${this.restURL}blockchain/getBlockHeader/${hash}?verbose=${verbose}`) return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } @@ -69,7 +69,7 @@ class Blockchain { let response = await axios.get(`${this.restURL}blockchain/getChainTips`) return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } @@ -78,7 +78,7 @@ class Blockchain { let response = await axios.get(`${this.restURL}blockchain/getDifficulty`) return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } @@ -90,7 +90,7 @@ class Blockchain { let response = await axios.get(`${this.restURL}blockchain/getMempoolAncestors/${txid}?verbose=${verbose}`) return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } @@ -103,7 +103,7 @@ class Blockchain { let response = await axios.get(`${this.restURL}blockchain/getMempoolDescendants/${txid}?verbose=${verbose}`) return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } @@ -116,7 +116,7 @@ class Blockchain { let response = await axios.get(`${this.restURL}blockchain/getMempoolEntry/${txid}`) return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } @@ -125,7 +125,7 @@ class Blockchain { let response = await axios.get(`${this.restURL}blockchain/getMempoolInfo`) return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } @@ -134,7 +134,7 @@ class Blockchain { let response = await axios.get(`${this.restURL}blockchain/getRawMempool?vebose=${verbose}`) return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } @@ -143,7 +143,7 @@ class Blockchain { let response = await axios.get(`${this.restURL}blockchain/getTxOut/${txid}/n?include_mempool=${include_mempool}`) return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } @@ -156,7 +156,7 @@ class Blockchain { let response = await axios.get(path) return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } @@ -165,7 +165,7 @@ class Blockchain { let response = await axios.get(`${this.restURL}blockchain/preciousBlock/${blockhash}`) return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } @@ -174,7 +174,7 @@ class Blockchain { let response = await axios.post(`${this.restURL}blockchain/pruneBlockchain/${height}`) return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } @@ -183,7 +183,7 @@ class Blockchain { let response = await axios.get(`${this.restURL}blockchain/verifyChain?checklevel=${checklevel}&nblocks=${nblocks}`) return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } @@ -192,7 +192,7 @@ class Blockchain { let response = await axios.get(`${this.restURL}blockchain/verifyTxOutProof/proof`) return response.data; } catch (error) { - throw error.response.data.message; + throw error.response.data; } } } From bbfc60b11ab4926674bf74a66564df903ed06151 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 4 Sep 2018 07:20:14 -0700 Subject: [PATCH 079/480] Update deps --- index.js | 2 +- package-lock.json | 7604 --------------------------------------------- package.json | 4 +- yarn.lock | 4719 ++++++++++++++++++++++++++++ 4 files changed, 4722 insertions(+), 7607 deletions(-) delete mode 100644 package-lock.json create mode 100644 yarn.lock diff --git a/index.js b/index.js index bfde847a..92d8b5fd 100755 --- a/index.js +++ b/index.js @@ -18,7 +18,7 @@ let clone = require('git-clone'); let cmd = require('node-cmd'); program - .version('1.6.4'); + .version('1.6.5', '-v, --version') program .command('new ') diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 35800344..00000000 --- a/package-lock.json +++ /dev/null @@ -1,7604 +0,0 @@ -{ - "name": "bitbox-cli", - "version": "1.6.3", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@sinonjs/formatio": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", - "integrity": "sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg==", - "dev": true, - "requires": { - "samsam": "1.3.0" - } - }, - "@types/node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.9.1.tgz", - "integrity": "sha512-f+qQR5lLCB8UPhtk8Xm8RQvbR4ycD7MOsdiuAEQCYpz44bBx2g7JL0+iYBcjl9J7d0KT1sX2g0VGNeHfw+GXpg==", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", - "requires": { - "mime-types": "2.1.19", - "negotiator": "0.6.1" - } - }, - "acorn": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", - "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==" - }, - "acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", - "requires": { - "acorn": "3.3.0" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=" - } - } - }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" - }, - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" - } - }, - "ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=" - }, - "ansi-escapes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", - "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==" - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", - "optional": true, - "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "1.0.3" - } - }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "optional": true, - "requires": { - "arr-flatten": "1.1.0" - } - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "optional": true - }, - "array-includes": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", - "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", - "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.12.0" - } - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "requires": { - "array-uniq": "1.0.3" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "optional": true - }, - "arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" - }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "requires": { - "util": "0.10.3" - } - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true - }, - "async-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", - "optional": true - }, - "async-limiter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", - "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" - }, - "axios": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", - "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=", - "requires": { - "follow-redirects": "1.5.7", - "is-buffer": "1.1.6" - } - }, - "babel-cli": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", - "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", - "requires": { - "babel-core": "6.26.3", - "babel-polyfill": "6.26.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "chokidar": "1.7.0", - "commander": "2.17.1", - "convert-source-map": "1.5.1", - "fs-readdir-recursive": "1.1.0", - "glob": "7.1.2", - "lodash": "4.17.10", - "output-file-sync": "1.1.2", - "path-is-absolute": "1.0.1", - "slash": "1.0.0", - "source-map": "0.5.7", - "v8flags": "2.1.1" - } - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - }, - "dependencies": { - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "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" - } - } - } - }, - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.1", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.5.1", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.10", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - } - } - }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" - } - }, - "babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", - "requires": { - "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-builder-react-jsx": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", - "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "esutils": "2.0.2" - } - }, - "babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", - "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.10" - } - }, - "babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", - "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.10" - } - }, - "babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", - "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", - "requires": { - "babel-helper-optimise-call-expression": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" - }, - "babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" - }, - "babel-plugin-syntax-flow": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", - "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=" - }, - "babel-plugin-syntax-jsx": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" - }, - "babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" - }, - "babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", - "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.10" - } - }, - "babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "requires": { - "babel-helper-define-map": "6.26.0", - "babel-helper-function-name": "6.24.1", - "babel-helper-optimise-call-expression": "6.24.1", - "babel-helper-replace-supers": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } - }, - "babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", - "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", - "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "requires": { - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } - }, - "babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", - "requires": { - "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" - } - }, - "babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", - "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", - "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-flow-strip-types": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", - "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", - "requires": { - "babel-plugin-syntax-flow": "6.18.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-react-display-name": { - "version": "6.25.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", - "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-react-jsx": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", - "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", - "requires": { - "babel-helper-builder-react-jsx": "6.26.0", - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-react-jsx-self": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", - "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", - "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-react-jsx-source": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", - "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", - "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "requires": { - "regenerator-transform": "0.10.1" - } - }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-polyfill": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", - "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", - "requires": { - "babel-runtime": "6.26.0", - "core-js": "2.5.7", - "regenerator-runtime": "0.10.5" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" - } - } - }, - "babel-preset-env": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", - "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", - "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0", - "browserslist": "3.2.8", - "invariant": "2.2.4", - "semver": "5.5.1" - } - }, - "babel-preset-es2015": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", - "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", - "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0" - } - }, - "babel-preset-flow": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", - "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", - "requires": { - "babel-plugin-transform-flow-strip-types": "6.22.0" - } - }, - "babel-preset-react": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", - "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", - "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-plugin-transform-react-display-name": "6.25.0", - "babel-plugin-transform-react-jsx": "6.24.1", - "babel-plugin-transform-react-jsx-self": "6.22.0", - "babel-plugin-transform-react-jsx-source": "6.22.0", - "babel-preset-flow": "6.23.0" - } - }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "requires": { - "babel-core": "6.26.3", - "babel-runtime": "6.26.0", - "core-js": "2.5.7", - "home-or-tmp": "2.0.0", - "lodash": "4.17.10", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "requires": { - "core-js": "2.5.7", - "regenerator-runtime": "0.11.1" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.10" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.10" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - } - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base-x": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.4.tgz", - "integrity": "sha512-UYOadoSIkEI/VrRGSG6qp93rp2WdokiAiNYDfGW5qURAY8GiAQkvMbwNNSDYiVJopqv4gCna7xqf4rrNGp+5AA==", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" - }, - "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" - }, - "base64id": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", - "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=" - }, - "bchaddrjs": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.2.tgz", - "integrity": "sha512-W06sUpprptb65JHbu2yFdv8Tg7o2OWpD5n2pMUIhuLOXC5c64eMW7y9Pg0IHd/Qe31e1KwnHT9H1w6Pf9r4Fkg==", - "requires": { - "bs58check": "2.1.2", - "cashaddrjs": "0.2.9" - } - }, - "bech32": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.3.tgz", - "integrity": "sha512-yuVFUvrNcoJi0sv5phmqc6P+Fl1HjRDRNOOkHY2X/3LBy2bIGNSFx4fZ95HMaXHupuS7cZR15AsvtmCIF4UEyg==" - }, - "better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", - "requires": { - "callsite": "1.0.0" - } - }, - "big-integer": { - "version": "1.6.34", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.34.tgz", - "integrity": "sha512-+w6B0Uo0ZvTSzDkXjoBCTNK0oe+aVL+yPi7kwGZm8hd8+Nj1AFPoxoq1Bl/mEu/G/ivOkUc1LRqVR0XeWFUzuA==" - }, - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" - }, - "bigi": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz", - "integrity": "sha1-nGZalfiLiwj8Bc/XMfVhhZ1yWCU=" - }, - "binary-extensions": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", - "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", - "optional": true - }, - "bindings": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz", - "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==" - }, - "bip21": { - "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "requires": { - "qs": "6.5.2" - } - }, - "bip32-utils": { - "version": "github:Bitcoin-com/bip32-utils#318df796443311f7e12217542f7f45d3b7791f10", - "requires": { - "bitbox-cli": "1.5.12", - "keccak": "1.4.0", - "nyc": "11.9.0", - "standard": "11.0.1", - "tape": "4.9.1" - } - }, - "bip38": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", - "integrity": "sha512-22KDak0RDyghFbR0Si7wyq9IgY423YzGYzWLpGeofH3DaolOQqjD3mNN08eFoubKlbyclOQKFwtONMv2SD9V3A==", - "requires": { - "bigi": "1.4.2", - "browserify-aes": "1.2.0", - "bs58check": "2.1.2", - "buffer-xor": "1.0.3", - "create-hash": "1.2.0", - "ecurve": "1.0.6", - "scryptsy": "2.0.0" - } - }, - "bip39": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", - "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", - "requires": { - "create-hash": "1.2.0", - "pbkdf2": "3.0.16", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "unorm": "1.4.1" - } - }, - "bip66": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", - "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "bip68": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/bip68/-/bip68-1.0.4.tgz", - "integrity": "sha512-O1htyufFTYy3EO0JkHg2CLykdXEtV2ssqw47Gq9A0WByp662xpJnMEB9m43LZjsSDjIAOozWRExlFQk2hlV1XQ==" - }, - "bitbox-cli": { - "version": "1.5.12", - "resolved": "https://registry.npmjs.org/bitbox-cli/-/bitbox-cli-1.5.12.tgz", - "integrity": "sha512-SQk02foLnSEi8ZkJFTFLZXEEW/3ribb/YNaF2L/qZ1wtWOcB2uei4v/rmb31TJOseH6MvfZ5Ygl6HzcyCTpYHg==", - "requires": { - "assert": "1.4.1", - "axios": "0.17.1", - "babel-cli": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-register": "6.26.0", - "bchaddrjs": "0.2.2", - "bigi": "1.4.2", - "bip21": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "bip32-utils": "github:Bitcoin-com/bip32-utils#318df796443311f7e12217542f7f45d3b7791f10", - "bip38": "2.0.2", - "bip39": "2.5.0", - "bip66": "1.1.5", - "bip68": "1.0.4", - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", - "bitcoin-txdecoder": "0.0.3", - "bitcoincashjs-lib": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", - "bitcoinjs-message": "2.0.0", - "bs58": "4.0.1", - "buffer": "5.2.0", - "chalk": "2.4.1", - "clear": "0.0.1", - "coininfo": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", - "commander": "2.17.1", - "cp-file": "5.0.0", - "ecurve": "1.0.6", - "figlet": "1.2.0", - "git-clone": "0.1.0", - "ini": "1.3.5", - "mkdirp": "0.5.1", - "mocha": "5.2.0", - "node-cmd": "3.0.0", - "node-emoji": "1.8.1", - "qrcode": "1.2.2", - "randombytes": "2.0.6", - "repl.history": "0.1.4", - "safe-buffer": "5.1.2", - "satoshi-bitcoin": "1.0.4", - "socket.io": "2.1.1", - "socket.io-client": "2.1.1", - "touch": "3.1.0", - "wif": "2.0.6" - } - }, - "bitcoin-ops": { - "version": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" - }, - "bitcoin-txdecoder": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/bitcoin-txdecoder/-/bitcoin-txdecoder-0.0.3.tgz", - "integrity": "sha512-pH/eF5hQ65y54U23mzuF42wEj9YWj4WKHAIj2il6b1+oRoi/oyM4Ti3e8nMD8ajippICmyquqbyCZKGq3i4W+A==", - "requires": { - "bitcoinjs-lib": "3.3.2" - } - }, - "bitcoincashjs-lib": { - "version": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", - "requires": { - "bech32": "1.1.3", - "bigi": "1.4.2", - "bip66": "1.1.5", - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", - "bs58check": "2.1.2", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ecurve": "1.0.6", - "merkle-lib": "2.0.10", - "pushdata-bitcoin": "1.0.1", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "typeforce": "1.12.0", - "varuint-bitcoin": "1.1.0", - "wif": "2.0.6" - } - }, - "bitcoinjs-lib": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-3.3.2.tgz", - "integrity": "sha512-l5qqvbaK8wwtANPf6oEffykycg4383XgEYdia1rI7/JpGf1jfRWlOUCvx5TiTZS7kyIvY4j/UhIQ2urLsvGkzw==", - "requires": { - "bech32": "1.1.3", - "bigi": "1.4.2", - "bip66": "1.1.5", - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", - "bs58check": "2.1.2", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ecurve": "1.0.6", - "merkle-lib": "2.0.10", - "pushdata-bitcoin": "1.0.1", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "typeforce": "1.12.0", - "varuint-bitcoin": "1.1.0", - "wif": "2.0.6" - } - }, - "bitcoinjs-message": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", - "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", - "requires": { - "bs58check": "2.1.2", - "buffer-equals": "1.0.4", - "create-hash": "1.2.0", - "secp256k1": "3.5.2", - "varuint-bitcoin": "1.1.0" - } - }, - "blob": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", - "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=" - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "optional": true, - "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.3" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.1", - "safe-buffer": "5.1.2" - } - }, - "browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", - "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", - "requires": { - "caniuse-lite": "1.0.30000878", - "electron-to-chromium": "1.3.61" - } - }, - "bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "requires": { - "base-x": "3.0.4" - } - }, - "bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "requires": { - "bs58": "4.0.1", - "create-hash": "1.2.0", - "safe-buffer": "5.1.2" - } - }, - "buffer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.0.tgz", - "integrity": "sha512-nUJyfChH7PMJy75eRDCCKtszSEFokUNXC1hNVSe+o+VdcgvDPLs20k3v8UXI8ruRYAJiYtyRea8mYyqPxoHWDw==", - "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.12" - } - }, - "buffer-equals": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/buffer-equals/-/buffer-equals-1.0.4.tgz", - "integrity": "sha1-A1O1T9B/2VZBcGca5vZrnPENJ/U=" - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" - }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "requires": { - "callsites": "0.2.0" - } - }, - "callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" - }, - "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=" - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, - "can-promise": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/can-promise/-/can-promise-0.0.1.tgz", - "integrity": "sha512-gzVrHyyrvgt0YpDm7pn04MQt8gjh0ZAhN4ZDyCRtGl6YnuuK6b4aiUTD7G52r9l4YNmxfTtEscb92vxtAlL6XQ==", - "requires": { - "window-or-global": "1.0.1" - } - }, - "caniuse-lite": { - "version": "1.0.30000878", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000878.tgz", - "integrity": "sha512-/dCGTdLCnjVJno1mFRn7Y6eit3AYaeFzSrMQHCoK0LEQaWl5snuLex1Ky4b8/Qu2ig5NgTX4cJx65hH9546puA==" - }, - "cashaddrjs": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.2.9.tgz", - "integrity": "sha512-DhJF4iAH0/RM3UjHDHKRxzs09YGL9px+oTyizzydanhC7jTyM2aJ+aLKA96vZGTTWayvvr2iDF2l13lpqXiRFg==", - "requires": { - "big-integer": "1.6.34" - } - }, - "chai": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", - "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", - "dev": true, - "requires": { - "assertion-error": "1.1.0", - "check-error": "1.0.2", - "deep-eql": "3.0.1", - "get-func-name": "2.0.0", - "pathval": "1.1.0", - "type-detect": "4.0.8" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "1.9.2" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=" - }, - "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true - }, - "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", - "optional": true, - "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.2.4", - "glob-parent": "2.0.0", - "inherits": "2.0.1", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" - } - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" - } - }, - "circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==" - }, - "clear": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clear/-/clear-0.0.1.tgz", - "integrity": "sha1-5RhuIp2ZRIF5wTAxG2+dML/2sLo=" - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "requires": { - "restore-cursor": "2.0.0" - } - }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "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" - } - } - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "coininfo": { - "version": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "requires": { - "color-name": "1.1.1" - } - }, - "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=" - }, - "commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" - }, - "component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" - }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" - }, - "component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } - } - }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=" - }, - "convert-source-map": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=" - }, - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" - }, - "core-js": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cp-file": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-5.0.0.tgz", - "integrity": "sha1-vHAP0wyjLSTUbH+wK5kuQ1/FqXg=", - "requires": { - "graceful-fs": "4.1.11", - "make-dir": "1.3.0", - "nested-error-stacks": "2.1.0", - "pify": "3.0.0", - "safe-buffer": "5.1.2" - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.1", - "md5.js": "1.3.4", - "ripemd160": "2.0.2", - "sha.js": "2.4.11" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "inherits": "2.0.1", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "debug-log": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", - "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=" - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "1.0.12" - } - }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" - }, - "deglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.1.tgz", - "integrity": "sha512-2kjwuGGonL7gWE1XU4Fv79+vVzpoQCl0V+boMwWtOQJV2AGDabCwez++nB1Nli/8BabAfZQ/UuHPlp6AymKdWw==", - "requires": { - "find-root": "1.1.0", - "glob": "7.1.2", - "ignore": "3.3.10", - "pkg-config": "1.1.1", - "run-parallel": "1.1.9", - "uniq": "1.0.1" - } - }, - "del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", - "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.2" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } - } - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "requires": { - "repeating": "2.0.1" - } - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" - }, - "dijkstrajs": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.1.tgz", - "integrity": "sha1-082BIh4+pAdCz83lVtTpnpjdxxs=" - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "requires": { - "esutils": "2.0.2" - } - }, - "drbg.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", - "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", - "requires": { - "browserify-aes": "1.2.0", - "create-hash": "1.2.0", - "create-hmac": "1.1.7" - } - }, - "ecurve": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/ecurve/-/ecurve-1.0.6.tgz", - "integrity": "sha512-/BzEjNfiSuB7jIWKcS/z8FK9jNjmEWvUV2YZ4RLSmcDtP7Lq0m6FvDuSnJpBlDpGRpfRQeTLGLBI8H+kEv0r+w==", - "requires": { - "bigi": "1.4.2", - "safe-buffer": "5.1.2" - } - }, - "electron-to-chromium": { - "version": "1.3.61", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.61.tgz", - "integrity": "sha512-XjTdsm6x71Y48lF9EEvGciwXD70b20g0t+3YbrE+0fPFutqV08DSNrZXkoXAp3QuzX7TpL/OW+/VsNoR9GkuNg==" - }, - "elliptic": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", - "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", - "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.5", - "hmac-drbg": "1.0.1", - "inherits": "2.0.1", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" - } - }, - "engine.io": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.0.tgz", - "integrity": "sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==", - "requires": { - "accepts": "1.3.5", - "base64id": "1.0.0", - "cookie": "0.3.1", - "debug": "3.1.0", - "engine.io-parser": "2.1.2", - "ws": "3.3.3" - } - }, - "engine.io-client": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", - "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", - "requires": { - "component-emitter": "1.2.1", - "component-inherit": "0.0.3", - "debug": "3.1.0", - "engine.io-parser": "2.1.2", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "ws": "3.3.3", - "xmlhttprequest-ssl": "1.5.5", - "yeast": "0.1.2" - } - }, - "engine.io-parser": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.2.tgz", - "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==", - "requires": { - "after": "0.8.2", - "arraybuffer.slice": "0.0.7", - "base64-arraybuffer": "0.1.5", - "blob": "0.0.4", - "has-binary2": "1.0.3" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "0.2.1" - } - }, - "es-abstract": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", - "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", - "requires": { - "es-to-primitive": "1.1.1", - "function-bind": "1.1.1", - "has": "1.0.3", - "is-callable": "1.1.4", - "is-regex": "1.0.4" - } - }, - "es-to-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", - "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", - "requires": { - "is-callable": "1.1.4", - "is-date-object": "1.0.1", - "is-symbol": "1.0.1" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "eslint": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", - "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", - "requires": { - "ajv": "5.5.2", - "babel-code-frame": "6.26.0", - "chalk": "2.4.1", - "concat-stream": "1.6.2", - "cross-spawn": "5.1.0", - "debug": "3.1.0", - "doctrine": "2.1.0", - "eslint-scope": "3.7.3", - "eslint-visitor-keys": "1.0.0", - "espree": "3.5.4", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.2", - "globals": "11.7.0", - "ignore": "3.3.10", - "imurmurhash": "0.1.4", - "inquirer": "3.3.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.12.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.10", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.0", - "require-uncached": "1.0.3", - "semver": "5.5.1", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", - "table": "4.0.2", - "text-table": "0.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "globals": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", - "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==" - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "3.0.0" - } - } - } - }, - "eslint-config-standard": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-11.0.0.tgz", - "integrity": "sha512-oDdENzpViEe5fwuRCWla7AXQd++/oyIp8zP+iP9jiUPG6NBj3SHgdgtl/kTn00AjeN+1HNvavTKmYbMo+xMOlw==" - }, - "eslint-config-standard-jsx": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-5.0.0.tgz", - "integrity": "sha512-rLToPAEqLMPBfWnYTu6xRhm2OWziS2n40QFqJ8jAM8NSVzeVKTa3nclhsU4DpPJQRY60F34Oo1wi/71PN/eITg==" - }, - "eslint-import-resolver-node": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", - "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", - "requires": { - "debug": "2.6.9", - "resolve": "1.8.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - } - } - }, - "eslint-module-utils": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", - "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", - "requires": { - "debug": "2.6.9", - "pkg-dir": "1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - } - } - }, - "eslint-plugin-import": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz", - "integrity": "sha1-JgAu+/ylmJtyiKwEdQi9JPIXsWk=", - "requires": { - "builtin-modules": "1.1.1", - "contains-path": "0.1.0", - "debug": "2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "0.3.2", - "eslint-module-utils": "2.2.0", - "has": "1.0.3", - "lodash": "4.17.10", - "minimatch": "3.0.4", - "read-pkg-up": "2.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" - } - } - } - }, - "eslint-plugin-node": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz", - "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", - "requires": { - "ignore": "3.3.10", - "minimatch": "3.0.4", - "resolve": "1.8.1", - "semver": "5.5.1" - } - }, - "eslint-plugin-promise": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.7.0.tgz", - "integrity": "sha512-2WO+ZFh7vxUKRfR0cOIMrWgYKdR6S1AlOezw6pC52B6oYpd5WFghN+QHxvrRdZMtbo8h3dfUZ2o1rWb0UPbKtg==" - }, - "eslint-plugin-react": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz", - "integrity": "sha512-KC7Snr4YsWZD5flu6A5c0AcIZidzW3Exbqp7OT67OaD2AppJtlBr/GuPrW/vaQM/yfZotEvKAdrxrO+v8vwYJA==", - "requires": { - "doctrine": "2.1.0", - "has": "1.0.3", - "jsx-ast-utils": "2.0.1", - "prop-types": "15.6.2" - } - }, - "eslint-plugin-standard": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz", - "integrity": "sha1-NNDJFbRe3G8BA5PH7vOCOwhWXPI=" - }, - "eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", - "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" - } - }, - "eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==" - }, - "espree": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", - "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", - "requires": { - "acorn": "5.7.1", - "acorn-jsx": "3.0.1" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", - "requires": { - "estraverse": "4.2.0" - } - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "requires": { - "estraverse": "4.2.0" - } - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "requires": { - "md5.js": "1.3.4", - "safe-buffer": "5.1.2" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "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" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "optional": true, - "requires": { - "is-posix-bracket": "0.1.1" - } - }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "optional": true, - "requires": { - "fill-range": "2.2.4" - } - }, - "external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", - "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "optional": true, - "requires": { - "is-extglob": "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=" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "figlet": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.2.0.tgz", - "integrity": "sha1-bEZTc3j6tkkUa1phQ92gGbQwtBA=" - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "requires": { - "escape-string-regexp": "1.0.5" - } - }, - "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", - "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" - } - }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "optional": true - }, - "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", - "optional": true, - "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.1.0", - "repeat-element": "1.1.3", - "repeat-string": "1.6.1" - } - }, - "find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "2.0.0" - } - }, - "flat-cache": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", - "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", - "requires": { - "circular-json": "0.3.3", - "del": "2.2.2", - "graceful-fs": "4.1.11", - "write": "0.2.1" - } - }, - "flow-bin": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.64.0.tgz", - "integrity": "sha1-3dP7Oxg6sas1pdXeycr167ze0Wc=", - "dev": true - }, - "follow-redirects": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.7.tgz", - "integrity": "sha512-NONJVIFiX7Z8k2WxfqBjtwqMifx7X42ORLFrOZ2LTKGj71G3C0kfdyTqGqr8fx5zSX6Foo/D95dgGWbPUiwnew==", - "requires": { - "debug": "3.1.0" - } - }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "requires": { - "is-callable": "1.1.4" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "optional": true - }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "optional": true, - "requires": { - "for-in": "1.0.2" - } - }, - "fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", - "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", - "optional": true, - "requires": { - "nan": "2.10.0", - "node-pre-gyp": "0.10.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", - "optional": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "optional": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", - "optional": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", - "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", - "optional": true, - "requires": { - "minipass": "2.2.4" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "optional": true - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "optional": 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" - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "optional": 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" - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "optional": true - }, - "iconv-lite": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.21.tgz", - "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", - "optional": true, - "requires": { - "safer-buffer": "2.1.2" - } - }, - "ignore-walk": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", - "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", - "optional": true, - "requires": { - "minimatch": "3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "optional": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "1.0.1" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - }, - "minipass": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.4.tgz", - "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", - "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" - } - }, - "minizlib": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", - "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", - "optional": true, - "requires": { - "minipass": "2.2.4" - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "optional": true - }, - "needle": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.2.0.tgz", - "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", - "optional": true, - "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.10.0.tgz", - "integrity": "sha512-G7kEonQLRbcA/mOoFoxvlMrw6Q6dPf92+t/l0DFSMuSlDoWaI9JWIyPwK0jyE1bph//CUEL65/Fz1m2vJbmjQQ==", - "optional": true, - "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.7", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" - } - }, - "nopt": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", - "optional": true, - "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" - } - }, - "npm-bundled": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.3.tgz", - "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", - "optional": true - }, - "npm-packlist": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.10.tgz", - "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", - "optional": true, - "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "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" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "optional": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "optional": true - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "optional": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "optional": true - }, - "rc": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz", - "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", - "optional": true, - "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "optional": true, - "requires": { - "core-util-is": "1.0.2", - "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.2" - } - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "optional": true, - "requires": { - "glob": "7.1.2" - } - }, - "safe-buffer": { - "version": "5.1.1", - "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==", - "optional": true - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "optional": true - }, - "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "optional": true - }, - "string-width": { - "version": "1.0.2", - "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" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "optional": true, - "requires": { - "safe-buffer": "5.1.1" - } - }, - "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" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "optional": true - }, - "tar": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.1.tgz", - "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", - "optional": true, - "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "optional": true - }, - "wide-align": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", - "optional": true, - "requires": { - "string-width": "1.0.2" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "yallist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" - } - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" - }, - "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "dev": true - }, - "get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==" - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "git-clone": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/git-clone/-/git-clone-0.1.0.tgz", - "integrity": "sha1-DXYWN3gJOu9/HDAjjyqe8/B6Lrk=" - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.1", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "optional": true, - "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" - } - }, - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "requires": { - "is-glob": "2.0.1" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" - }, - "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==" - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "2.1.1" - } - }, - "has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", - "requires": { - "isarray": "2.0.1" - }, - "dependencies": { - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - } - } - }, - "has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" - } - }, - "hash.js": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", - "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", - "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } - } - }, - "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=" - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "requires": { - "hash.js": "1.1.5", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" - } - }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": "2.1.2" - } - }, - "ieee754": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", - "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==" - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" - }, - "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", - "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.10", - "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "3.0.0" - } - } - } - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "requires": { - "loose-envify": "1.4.0" - } - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "optional": true, - "requires": { - "binary-extensions": "1.11.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-builtin-module": { - "version": "1.0.0", - "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" - } - }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" - }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" - }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "optional": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "optional": true, - "requires": { - "is-primitive": "2.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "optional": true - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" - }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "requires": { - "is-extglob": "1.0.0" - } - }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "optional": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=" - }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", - "requires": { - "is-path-inside": "1.0.1" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "requires": { - "path-is-inside": "1.0.2" - } - }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "optional": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "optional": true - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" - }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "requires": { - "has": "1.0.3" - } - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-symbol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", - "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "optional": true, - "requires": { - "isarray": "1.0.0" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" - }, - "js-yaml": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", - "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" - } - }, - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "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-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" - }, - "jsx-ast-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", - "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", - "requires": { - "array-includes": "3.0.3" - } - }, - "just-extend": { - "version": "1.1.27", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-1.1.27.tgz", - "integrity": "sha512-mJVp13Ix6gFo3SBAy9U/kL+oeZqzlYYYLQBwXVBlVzIsZwBqGREnOro24oC/8s8aox+rJhtZ2DiQof++IrkA+g==", - "dev": true - }, - "keccak": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", - "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", - "requires": { - "bindings": "1.3.0", - "inherits": "2.0.3", - "nan": "2.10.0", - "safe-buffer": "5.1.2" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "requires": { - "invert-kv": "1.0.0" - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" - } - }, - "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true - }, - "lodash.toarray": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", - "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=" - }, - "lolex": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.7.1.tgz", - "integrity": "sha512-Oo2Si3RMKV3+lV5MsSWplDQFoTClz/24S0MMHYcgGWWmFXr6TMlqcqk/l1GtH+d5wLBwNRiqGnwDRMirtFalJw==", - "dev": true - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "3.0.2" - } - }, - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "requires": { - "pify": "3.0.0" - } - }, - "math-random": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", - "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", - "optional": true - }, - "md5.js": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", - "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", - "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.1" - } - }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "requires": { - "mimic-fn": "1.2.0" - } - }, - "merkle-lib": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/merkle-lib/-/merkle-lib-2.0.10.tgz", - "integrity": "sha1-grjbrnXieneFOItz+ddyXQ9vMyY=" - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "optional": 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" - } - }, - "mime-db": { - "version": "1.35.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz", - "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==" - }, - "mime-types": { - "version": "2.1.19", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", - "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", - "requires": { - "mime-db": "1.35.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - } - }, - "mocha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", - "requires": { - "browser-stdout": "1.3.1", - "commander": "2.15.1", - "debug": "3.1.0", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", - "growl": "1.10.5", - "he": "1.1.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "supports-color": "5.4.0" - }, - "dependencies": { - "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" - }, - "nan": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", - "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==" - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" - }, - "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" - }, - "nested-error-stacks": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", - "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==" - }, - "nise": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.3.tgz", - "integrity": "sha512-cg44dkGHutAY+VmftgB1gHvLWxFl2vwYdF8WpbceYicQwylESRJiAAKgCRJntdoEbMiUzywkZEUzjoDWH0JwKA==", - "dev": true, - "requires": { - "@sinonjs/formatio": "2.0.0", - "just-extend": "1.1.27", - "lolex": "2.7.1", - "path-to-regexp": "1.7.0", - "text-encoding": "0.6.4" - } - }, - "node-cmd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/node-cmd/-/node-cmd-3.0.0.tgz", - "integrity": "sha1-OP/3CkqqT2WdID61eGJzcBjiT28=" - }, - "node-emoji": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", - "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", - "requires": { - "lodash.toarray": "4.4.0" - } - }, - "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "requires": { - "abbrev": "1.1.1" - } - }, - "normalize-package-data": { - "version": "2.4.0", - "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.7.1", - "is-builtin-module": "1.0.0", - "semver": "5.5.1", - "validate-npm-package-license": "3.0.4" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "1.1.0" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "2.0.1" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "nyc": { - "version": "11.9.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.9.0.tgz", - "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", - "requires": { - "archy": "1.0.0", - "arrify": "1.0.1", - "caching-transform": "1.0.1", - "convert-source-map": "1.5.1", - "debug-log": "1.0.1", - "default-require-extensions": "1.0.0", - "find-cache-dir": "0.1.1", - "find-up": "2.1.0", - "foreground-child": "1.5.6", - "glob": "7.1.2", - "istanbul-lib-coverage": "1.2.0", - "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "1.10.1", - "istanbul-lib-report": "1.1.3", - "istanbul-lib-source-maps": "1.2.3", - "istanbul-reports": "1.4.0", - "md5-hex": "1.3.0", - "merge-source-map": "1.1.0", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "resolve-from": "2.0.0", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "spawn-wrap": "1.4.2", - "test-exclude": "4.2.1", - "yargs": "11.1.0", - "yargs-parser": "8.1.0" - }, - "dependencies": { - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" - } - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "append-transform": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", - "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", - "requires": { - "default-require-extensions": "1.0.0" - } - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" - }, - "atob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", - "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=" - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } - }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "requires": { - "core-js": "2.5.6", - "regenerator-runtime": "0.11.1" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.10" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.10" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "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" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } - } - }, - "caching-transform": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", - "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", - "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" - } - }, - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "optional": true - }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "optional": true, - "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" - } - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "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" - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "0.1.6" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } - } - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "optional": true, - "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "optional": true - } - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" - } - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "convert-source-map": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=" - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "core-js": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.6.tgz", - "integrity": "sha512-lQUVfQi0aLix2xpyjrrJEvfuYCqPc/HwmTKsC/VNf8q0zsjX7SQZtp4+oRONN5Tsur9GDETPjj+Ub2iDiGZfSQ==" - }, - "cross-spawn": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", - "requires": { - "lru-cache": "4.1.3", - "which": "1.3.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "debug-log": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", - "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=" - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "default-require-extensions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", - "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", - "requires": { - "strip-bom": "2.0.0" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "requires": { - "repeating": "2.0.1" - } - }, - "error-ex": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", - "requires": { - "is-arrayish": "0.2.1" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "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" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.0" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "find-cache-dir": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", - "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "2.0.0" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "foreground-child": { - "version": "1.5.6", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", - "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", - "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" - } - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "0.2.2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "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" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" - }, - "handlebars": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", - "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", - "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "requires": { - "amdefine": "1.0.1" - } - } - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "2.1.1" - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "hosted-git-info": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", - "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==" - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "requires": { - "loose-envify": "1.3.1" - } - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "3.2.2" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-builtin-module": { - "version": "1.0.0", - "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" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "3.2.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "3.2.2" - } - }, - "is-odd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", - "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", - "requires": { - "is-number": "4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" - } - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "istanbul-lib-coverage": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", - "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==" - }, - "istanbul-lib-hook": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", - "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", - "requires": { - "append-transform": "0.4.0" - } - }, - "istanbul-lib-instrument": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", - "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", - "requires": { - "babel-generator": "6.26.1", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.2.0", - "semver": "5.5.0" - } - }, - "istanbul-lib-report": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz", - "integrity": "sha512-D4jVbMDtT2dPmloPJS/rmeP626N5Pr3Rp+SovrPn1+zPChGHcggd/0sL29jnbm4oK9W0wHjCRsdch9oLd7cm6g==", - "requires": { - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" - }, - "dependencies": { - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz", - "integrity": "sha512-fDa0hwU/5sDXwAklXgAoCJCOsFsBplVQ6WBldz5UwaqOzmDhUK4nfuR7/G//G2lERlblUNJB8P6e8cXq3a7MlA==", - "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - } - } - }, - "istanbul-reports": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.4.0.tgz", - "integrity": "sha512-OPzVo1fPZ2H+owr8q/LYKLD+vquv9Pj4F+dj808MdHbuQLD7S4ACRjcX+0Tne5Vxt2lxXvdZaL7v+FOOAV281w==", - "requires": { - "handlebars": "4.0.11" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" - }, - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "optional": true - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "requires": { - "invert-kv": "1.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "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" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } - } - }, - "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" - }, - "loose-envify": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", - "requires": { - "js-tokens": "3.0.2" - } - }, - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "1.0.1" - } - }, - "md5-hex": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", - "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", - "requires": { - "md5-o-matic": "0.1.1" - } - }, - "md5-o-matic": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", - "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=" - }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "requires": { - "mimic-fn": "1.2.0" - } - }, - "merge-source-map": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", - "requires": { - "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==" - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - }, - "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", - "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "nanomatch": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", - "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "normalize-package-data": { - "version": "2.4.0", - "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.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "2.0.1" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1.0.2" - } - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-limit": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", - "requires": { - "p-try": "1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "1.2.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "1.3.1" - } - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "2.0.1" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "path-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" - }, - "path-type": { - "version": "1.1.0", - "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" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "2.0.4" - } - }, - "pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", - "requires": { - "find-up": "1.1.2" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "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" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "read-pkg": { - "version": "1.1.0", - "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" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "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" - } - } - } - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" - } - }, - "repeat-element": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "requires": { - "is-finite": "1.0.2" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "resolve-from": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "optional": true, - "requires": { - "align-text": "0.1.4" - } - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "requires": { - "glob": "7.1.2" - } - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "0.1.15" - } - }, - "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "slide": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "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": "3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "requires": { - "kind-of": "3.2.2" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-resolve": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", - "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", - "requires": { - "atob": "2.1.1", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" - }, - "spawn-wrap": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", - "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", - "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.0" - } - }, - "spdx-correct": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", - "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==" - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==" - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "requires": { - "extend-shallow": "3.0.2" - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "3.0.0" - } - } - } - }, - "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" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "0.2.1" - } - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - }, - "test-exclude": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", - "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", - "requires": { - "arrify": "1.0.1", - "micromatch": "3.1.10", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - } - } - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "3.2.2" - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "3.2.2" - } - } - } - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "optional": true, - "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" - }, - "dependencies": { - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "optional": true, - "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" - } - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "optional": true - }, - "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", - "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" - } - } - } - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "use": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", - "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", - "requires": { - "kind-of": "6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "validate-npm-package-license": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", - "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", - "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" - } - }, - "which": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", - "requires": { - "isexe": "2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "optional": true - }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "1.0.1" - } - }, - "string-width": { - "version": "1.0.2", - "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" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write-file-atomic": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", - "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", - "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" - } - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - }, - "yargs": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", - "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", - "requires": { - "cliui": "4.1.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": "9.0.2" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "3.0.0" - } - }, - "yargs-parser": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", - "requires": { - "camelcase": "4.1.0" - } - } - } - }, - "yargs-parser": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", - "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", - "requires": { - "camelcase": "4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - } - } - } - } - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-component": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" - }, - "object-inspect": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", - "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==" - }, - "object-keys": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", - "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==" - }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "optional": true, - "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1.0.2" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "requires": { - "mimic-fn": "1.2.0" - } - }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "output-file-sync": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", - "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", - "requires": { - "graceful-fs": "4.1.11", - "mkdirp": "0.5.1", - "object-assign": "4.1.1" - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "1.3.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "optional": true, - "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "1.3.2" - } - }, - "parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", - "requires": { - "better-assert": "1.0.2" - } - }, - "parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", - "requires": { - "better-assert": "1.0.2" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "path-to-regexp": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", - "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", - "dev": true, - "requires": { - "isarray": "0.0.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - } - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "requires": { - "pify": "2.3.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } - } - }, - "pathval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", - "dev": true - }, - "pbkdf2": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", - "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", - "requires": { - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "2.0.4" - } - }, - "pkg-conf": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", - "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", - "requires": { - "find-up": "2.1.0", - "load-json-file": "4.0.0" - }, - "dependencies": { - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" - } - } - } - }, - "pkg-config": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", - "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=", - "requires": { - "debug-log": "1.0.1", - "find-root": "1.1.0", - "xtend": "4.0.1" - } - }, - "pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", - "requires": { - "find-up": "1.1.2" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "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": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "2.0.1" - } - } - } - }, - "pluralize": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", - "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==" - }, - "pngjs": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.3.3.tgz", - "integrity": "sha512-1n3Z4p3IOxArEs1VRXnZ/RXdfEniAUS9jb68g58FIXMNkPJeZd+Qh4Uq7/e0LVxAQGos1eIUrqrt4FpjdnEd+Q==" - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "optional": true - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" - }, - "progress": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", - "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=" - }, - "prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", - "requires": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1" - } - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "pushdata-bitcoin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", - "integrity": "sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=", - "requires": { - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" - } - }, - "qrcode": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.2.2.tgz", - "integrity": "sha512-iHD3eGma3PMaIfvM+p6oaTZjz83PsEIJ5F4H3oqyfKbQM+kbWjJjHdnTRlzi9q0KoiJ9QFKfiNhkEAYOWTTDdw==", - "requires": { - "can-promise": "0.0.1", - "dijkstrajs": "1.0.1", - "isarray": "2.0.4", - "pngjs": "3.3.3", - "yargs": "8.0.2" - }, - "dependencies": { - "isarray": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.4.tgz", - "integrity": "sha512-GMxXOiUirWg1xTKRipM0Ek07rX+ubx4nNVElTJdNLYmNO/2YrDkgJGw9CljXn+r4EWiDQg/8lsRdHyg2PJuUaA==" - } - } - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - }, - "randomatic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz", - "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==", - "optional": true, - "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.1" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "optional": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "optional": true - } - } - }, - "randombytes": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", - "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } - } - }, - "readdirp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", - "optional": true, - "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.6", - "set-immediate-shim": "1.0.1" - } - }, - "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==" - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - }, - "regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.8" - } - }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "optional": true, - "requires": { - "is-equal-shallow": "0.1.3" - } - }, - "regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "requires": { - "regenerate": "1.4.0", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "requires": { - "jsesc": "0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" - } - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "optional": true - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "requires": { - "is-finite": "1.0.2" - } - }, - "repl.history": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/repl.history/-/repl.history-0.1.4.tgz", - "integrity": "sha1-gDZxcfN4HW5CmccXWMJTCX9dWDI=" - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" - } - }, - "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", - "requires": { - "path-parse": "1.0.6" - } - }, - "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=" - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" - } - }, - "resumer": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", - "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", - "requires": { - "through": "2.3.8" - } - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "requires": { - "glob": "7.1.2" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.1" - } - }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "requires": { - "is-promise": "2.1.0" - } - }, - "run-parallel": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", - "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==" - }, - "rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=" - }, - "rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "requires": { - "rx-lite": "4.0.8" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "samsam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz", - "integrity": "sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg==", - "dev": true - }, - "satoshi-bitcoin": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/satoshi-bitcoin/-/satoshi-bitcoin-1.0.4.tgz", - "integrity": "sha1-0AK2dwddXLvywhGo3zJUvN9QseQ=", - "requires": { - "big.js": "3.2.0" - } - }, - "scryptsy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-2.0.0.tgz", - "integrity": "sha1-Jiw28CMc+nZU4jY/o5TNLexm83g=" - }, - "secp256k1": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.5.2.tgz", - "integrity": "sha512-iin3kojdybY6NArd+UFsoTuapOF7bnJNf2UbcWXaY3z+E1sJDipl60vtzB5hbO/uquBu7z0fd4VC4Irp+xoFVQ==", - "requires": { - "bindings": "1.3.0", - "bip66": "1.1.5", - "bn.js": "4.11.8", - "create-hash": "1.2.0", - "drbg.js": "1.0.1", - "elliptic": "6.4.1", - "nan": "2.10.0", - "safe-buffer": "5.1.2" - } - }, - "semver": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", - "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==" - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "optional": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "sinon": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-4.5.0.tgz", - "integrity": "sha512-trdx+mB0VBBgoYucy6a9L7/jfQOmvGeaKZT4OOJ+lPAtI8623xyGr8wLiE4eojzBS8G9yXbhx42GHUOVLr4X2w==", - "dev": true, - "requires": { - "@sinonjs/formatio": "2.0.0", - "diff": "3.5.0", - "lodash.get": "4.4.2", - "lolex": "2.7.1", - "nise": "1.4.3", - "supports-color": "5.5.0", - "type-detect": "4.0.8" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" - }, - "slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", - "requires": { - "is-fullwidth-code-point": "2.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - } - } - }, - "socket.io": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", - "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", - "requires": { - "debug": "3.1.0", - "engine.io": "3.2.0", - "has-binary2": "1.0.3", - "socket.io-adapter": "1.1.1", - "socket.io-client": "2.1.1", - "socket.io-parser": "3.2.0" - } - }, - "socket.io-adapter": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz", - "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=" - }, - "socket.io-client": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz", - "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==", - "requires": { - "backo2": "1.0.2", - "base64-arraybuffer": "0.1.5", - "component-bind": "1.0.0", - "component-emitter": "1.2.1", - "debug": "3.1.0", - "engine.io-client": "3.2.1", - "has-binary2": "1.0.3", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "object-component": "0.0.3", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "socket.io-parser": "3.2.0", - "to-array": "0.1.4" - } - }, - "socket.io-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", - "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", - "requires": { - "component-emitter": "1.2.1", - "debug": "3.1.0", - "isarray": "2.0.1" - }, - "dependencies": { - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "requires": { - "source-map": "0.5.7" - } - }, - "spdx-correct": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", - "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==" - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==" - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "standard": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/standard/-/standard-11.0.1.tgz", - "integrity": "sha512-nu0jAcHiSc8H+gJCXeiziMVZNDYi8MuqrYJKxTgjP4xKXZMKm311boqQIzDrYI/ktosltxt2CbDjYQs9ANC8IA==", - "requires": { - "eslint": "4.18.2", - "eslint-config-standard": "11.0.0", - "eslint-config-standard-jsx": "5.0.0", - "eslint-plugin-import": "2.9.0", - "eslint-plugin-node": "6.0.1", - "eslint-plugin-promise": "3.7.0", - "eslint-plugin-react": "7.7.0", - "eslint-plugin-standard": "3.0.1", - "standard-engine": "8.0.1" - } - }, - "standard-engine": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-8.0.1.tgz", - "integrity": "sha512-LA531C3+nljom/XRvdW/hGPXwmilRkaRkENhO3FAGF1Vtq/WtCXzgmnc5S6vUHHsgv534MRy02C1ikMwZXC+tw==", - "requires": { - "deglob": "2.1.1", - "get-stdin": "6.0.0", - "minimist": "1.2.0", - "pkg-conf": "2.1.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - } - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "3.0.0" - } - } - } - }, - "string.prototype.trim": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", - "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", - "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.12.0", - "function-bind": "1.1.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "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" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - }, - "table": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", - "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", - "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "chalk": "2.4.1", - "lodash": "4.17.10", - "slice-ansi": "1.0.0", - "string-width": "2.1.1" - } - }, - "tape": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/tape/-/tape-4.9.1.tgz", - "integrity": "sha512-6fKIXknLpoe/Jp4rzHKFPpJUHDHDqn8jus99IfPnHIjyz78HYlefTGD3b5EkbQzuLfaEvmfPK3IolLgq2xT3kw==", - "requires": { - "deep-equal": "1.0.1", - "defined": "1.0.0", - "for-each": "0.3.3", - "function-bind": "1.1.1", - "glob": "7.1.2", - "has": "1.0.3", - "inherits": "2.0.3", - "minimist": "1.2.0", - "object-inspect": "1.6.0", - "resolve": "1.7.1", - "resumer": "0.0.0", - "string.prototype.trim": "1.1.2", - "through": "2.3.8" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "resolve": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", - "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", - "requires": { - "path-parse": "1.0.6" - } - } - } - }, - "text-encoding": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", - "integrity": "sha1-45mpgiV6J22uQou5KEXLcb3CbRk=", - "dev": true - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "requires": { - "os-tmpdir": "1.0.2" - } - }, - "to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" - }, - "touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", - "requires": { - "nopt": "1.0.10" - } - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "requires": { - "prelude-ls": "1.1.2" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "typeforce": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.12.0.tgz", - "integrity": "sha512-fvnkvueAOFLhtAqDgIA/wMP21SMwS/NQESFKZuwVrj5m/Ew6eK2S0z0iB++cwtROPWDOhaT6OUfla8UwMw4Adg==" - }, - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" - }, - "unorm": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.4.1.tgz", - "integrity": "sha1-NkIA1fE2RsqLzURJAnEzVhR5IwA=" - }, - "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "requires": { - "inherits": "2.0.1" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", - "requires": { - "user-home": "1.1.1" - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" - } - }, - "varuint-bitcoin": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz", - "integrity": "sha512-jCEPG+COU/1Rp84neKTyDJQr478/hAfVp5xxYn09QEH0yBjbmPeMfuuQIrp+BUD83hybtYZKhr5elV3bvdV1bA==", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "wif": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", - "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", - "requires": { - "bs58check": "2.1.2" - } - }, - "window-or-global": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/window-or-global/-/window-or-global-1.0.1.tgz", - "integrity": "sha1-2+RboqKRqrxW1iz2bEW3+jIpRt4=" - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "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" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", - "requires": { - "mkdirp": "0.5.1" - } - }, - "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.2", - "ultron": "1.1.1" - } - }, - "xmlhttprequest-ssl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=" - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - }, - "yargs": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", - "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", - "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.3", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.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": "7.0.0" - } - }, - "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", - "requires": { - "camelcase": "4.1.0" - } - }, - "yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" - } - } -} diff --git a/package.json b/package.json index 58a78269..59826bd9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.6.4", + "version": "1.6.5", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", @@ -38,7 +38,7 @@ "bip38": "^2.0.2", "bip39": "^2.5.0", "bip66": "^1.1.5", - "bip68": "^1.0.4", + "bip68": "Bitcoin-com/bip68#1.0.5", "bitcoin-ops": "Bitcoin-com/bitcoincash-ops", "bitcoin-txdecoder": "0.0.3", "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib#3.3.4", diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 00000000..2ec9487e --- /dev/null +++ b/yarn.lock @@ -0,0 +1,4719 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@7.0.0-beta.51": + version "7.0.0-beta.51" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz#bd71d9b192af978df915829d39d4094456439a0c" + dependencies: + "@babel/highlight" "7.0.0-beta.51" + +"@babel/generator@7.0.0-beta.51": + version "7.0.0-beta.51" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.51.tgz#6c7575ffde761d07485e04baedc0392c6d9e30f6" + dependencies: + "@babel/types" "7.0.0-beta.51" + jsesc "^2.5.1" + lodash "^4.17.5" + source-map "^0.5.0" + trim-right "^1.0.1" + +"@babel/helper-function-name@7.0.0-beta.51": + version "7.0.0-beta.51" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.51.tgz#21b4874a227cf99ecafcc30a90302da5a2640561" + dependencies: + "@babel/helper-get-function-arity" "7.0.0-beta.51" + "@babel/template" "7.0.0-beta.51" + "@babel/types" "7.0.0-beta.51" + +"@babel/helper-get-function-arity@7.0.0-beta.51": + version "7.0.0-beta.51" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.51.tgz#3281b2d045af95c172ce91b20825d85ea4676411" + dependencies: + "@babel/types" "7.0.0-beta.51" + +"@babel/helper-split-export-declaration@7.0.0-beta.51": + version "7.0.0-beta.51" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.51.tgz#8a6c3f66c4d265352fc077484f9f6e80a51ab978" + dependencies: + "@babel/types" "7.0.0-beta.51" + +"@babel/highlight@7.0.0-beta.51": + version "7.0.0-beta.51" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.51.tgz#e8844ae25a1595ccfd42b89623b4376ca06d225d" + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^3.0.0" + +"@babel/parser@7.0.0-beta.51": + version "7.0.0-beta.51" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.0.0-beta.51.tgz#27cec2df409df60af58270ed8f6aa55409ea86f6" + +"@babel/template@7.0.0-beta.51": + version "7.0.0-beta.51" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.51.tgz#9602a40aebcf357ae9677e2532ef5fc810f5fbff" + dependencies: + "@babel/code-frame" "7.0.0-beta.51" + "@babel/parser" "7.0.0-beta.51" + "@babel/types" "7.0.0-beta.51" + lodash "^4.17.5" + +"@babel/traverse@7.0.0-beta.51": + version "7.0.0-beta.51" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.51.tgz#981daf2cec347a6231d3aa1d9e1803b03aaaa4a8" + dependencies: + "@babel/code-frame" "7.0.0-beta.51" + "@babel/generator" "7.0.0-beta.51" + "@babel/helper-function-name" "7.0.0-beta.51" + "@babel/helper-split-export-declaration" "7.0.0-beta.51" + "@babel/parser" "7.0.0-beta.51" + "@babel/types" "7.0.0-beta.51" + debug "^3.1.0" + globals "^11.1.0" + invariant "^2.2.0" + lodash "^4.17.5" + +"@babel/types@7.0.0-beta.51": + version "7.0.0-beta.51" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.51.tgz#d802b7b543b5836c778aa691797abf00f3d97ea9" + dependencies: + esutils "^2.0.2" + lodash "^4.17.5" + to-fast-properties "^2.0.0" + +"@sinonjs/formatio@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-2.0.0.tgz#84db7e9eb5531df18a8c5e0bfb6e449e55e654b2" + dependencies: + samsam "1.3.0" + +"@types/node@^10.5.2": + version "10.9.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.9.4.tgz#0f4cb2dc7c1de6096055357f70179043c33e9897" + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + +accepts@~1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" + dependencies: + mime-types "~2.1.18" + negotiator "0.6.1" + +acorn-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + dependencies: + acorn "^3.0.4" + +acorn@^3.0.4: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + +acorn@^5.5.0: + version "5.7.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.2.tgz#91fa871883485d06708800318404e72bfb26dcc5" + +after@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" + +ajv-keywords@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" + +ajv@^5.2.3, ajv@^5.3.0: + version "5.5.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" + dependencies: + 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@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + +ansi-escapes@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + dependencies: + color-convert "^1.9.0" + +anymatch@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" + dependencies: + micromatch "^2.1.5" + normalize-path "^2.0.0" + +append-transform@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab" + dependencies: + default-require-extensions "^2.0.0" + +aproba@^1.0.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + +archy@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + +arr-flatten@^1.0.1, arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + +array-includes@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.7.0" + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + +arraybuffer.slice@~0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" + +arrify@^1.0.0, arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + +assert@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + dependencies: + util "0.10.3" + +assertion-error@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + +async-limiter@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" + +async@^1.4.0: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + +atob@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + +axios@^0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.17.1.tgz#2d8e3e5d0bdbd7327f91bc814f5c57660f81824d" + dependencies: + follow-redirects "^1.2.5" + is-buffer "^1.1.5" + +babel-cli@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" + dependencies: + babel-core "^6.26.0" + babel-polyfill "^6.26.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + commander "^2.11.0" + convert-source-map "^1.5.0" + fs-readdir-recursive "^1.0.0" + glob "^7.1.2" + lodash "^4.17.4" + output-file-sync "^1.1.2" + path-is-absolute "^1.0.1" + slash "^1.0.0" + source-map "^0.5.6" + v8flags "^2.1.1" + optionalDependencies: + chokidar "^1.6.1" + +babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@^6.26.0: + version "6.26.3" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.1" + debug "^2.6.9" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.8" + slash "^1.0.0" + source-map "^0.5.7" + +babel-generator@^6.18.0, babel-generator@^6.26.0: + version "6.26.1" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" + +babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" + dependencies: + babel-helper-explode-assignable-expression "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-builder-react-jsx@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0" + dependencies: + babel-runtime "^6.26.0" + babel-types "^6.26.0" + esutils "^2.0.2" + +babel-helper-call-delegate@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-define-map@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-explode-assignable-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" + dependencies: + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-get-function-arity@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-hoist-variables@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-optimise-call-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-regex@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" + dependencies: + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-remap-async-to-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-replace-supers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" + dependencies: + babel-helper-optimise-call-expression "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-check-es2015-constants@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-syntax-async-functions@^6.8.0: + version "6.13.0" + resolved "http://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" + +babel-plugin-syntax-exponentiation-operator@^6.8.0: + version "6.13.0" + resolved "http://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" + +babel-plugin-syntax-flow@^6.18.0: + version "6.18.0" + resolved "http://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" + +babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: + version "6.18.0" + resolved "http://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" + +babel-plugin-syntax-trailing-function-commas@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" + +babel-plugin-transform-async-to-generator@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" + dependencies: + babel-helper-remap-async-to-generator "^6.24.1" + babel-plugin-syntax-async-functions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-arrow-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoping@^6.23.0, babel-plugin-transform-es2015-block-scoping@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" + dependencies: + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-plugin-transform-es2015-classes@^6.23.0, babel-plugin-transform-es2015-classes@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" + dependencies: + babel-helper-define-map "^6.24.1" + babel-helper-function-name "^6.24.1" + babel-helper-optimise-call-expression "^6.24.1" + babel-helper-replace-supers "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-computed-properties@^6.22.0, babel-plugin-transform-es2015-computed-properties@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-destructuring@^6.22.0, babel-plugin-transform-es2015-destructuring@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-duplicate-keys@^6.22.0, babel-plugin-transform-es2015-duplicate-keys@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-for-of@^6.22.0, babel-plugin-transform-es2015-for-of@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-function-name@^6.22.0, babel-plugin-transform-es2015-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" + dependencies: + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: + version "6.26.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" + dependencies: + babel-plugin-transform-strict-mode "^6.24.1" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-types "^6.26.0" + +babel-plugin-transform-es2015-modules-systemjs@^6.23.0, babel-plugin-transform-es2015-modules-systemjs@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-umd@^6.23.0, babel-plugin-transform-es2015-modules-umd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" + dependencies: + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-object-super@^6.22.0, babel-plugin-transform-es2015-object-super@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" + dependencies: + babel-helper-replace-supers "^6.24.1" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-parameters@^6.23.0, babel-plugin-transform-es2015-parameters@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" + dependencies: + babel-helper-call-delegate "^6.24.1" + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-shorthand-properties@^6.22.0, babel-plugin-transform-es2015-shorthand-properties@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-spread@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-sticky-regex@^6.22.0, babel-plugin-transform-es2015-sticky-regex@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-template-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-typeof-symbol@^6.22.0, babel-plugin-transform-es2015-typeof-symbol@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-unicode-regex@^6.22.0, babel-plugin-transform-es2015-unicode-regex@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + regexpu-core "^2.0.0" + +babel-plugin-transform-exponentiation-operator@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" + dependencies: + babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" + babel-plugin-syntax-exponentiation-operator "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-flow-strip-types@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" + dependencies: + babel-plugin-syntax-flow "^6.18.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-react-display-name@^6.23.0: + version "6.25.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx-self@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz#df6d80a9da2612a121e6ddd7558bcbecf06e636e" + dependencies: + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx-source@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6" + dependencies: + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" + dependencies: + babel-helper-builder-react-jsx "^6.24.1" + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-regenerator@^6.22.0, babel-plugin-transform-regenerator@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" + dependencies: + regenerator-transform "^0.10.0" + +babel-plugin-transform-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-polyfill@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" + dependencies: + babel-runtime "^6.26.0" + core-js "^2.5.0" + regenerator-runtime "^0.10.5" + +babel-preset-env@^1.6.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-syntax-trailing-function-commas "^6.22.0" + babel-plugin-transform-async-to-generator "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.23.0" + babel-plugin-transform-es2015-classes "^6.23.0" + babel-plugin-transform-es2015-computed-properties "^6.22.0" + babel-plugin-transform-es2015-destructuring "^6.23.0" + babel-plugin-transform-es2015-duplicate-keys "^6.22.0" + babel-plugin-transform-es2015-for-of "^6.23.0" + babel-plugin-transform-es2015-function-name "^6.22.0" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.22.0" + babel-plugin-transform-es2015-modules-commonjs "^6.23.0" + babel-plugin-transform-es2015-modules-systemjs "^6.23.0" + babel-plugin-transform-es2015-modules-umd "^6.23.0" + babel-plugin-transform-es2015-object-super "^6.22.0" + babel-plugin-transform-es2015-parameters "^6.23.0" + babel-plugin-transform-es2015-shorthand-properties "^6.22.0" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.22.0" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.23.0" + babel-plugin-transform-es2015-unicode-regex "^6.22.0" + babel-plugin-transform-exponentiation-operator "^6.22.0" + babel-plugin-transform-regenerator "^6.22.0" + browserslist "^3.2.6" + invariant "^2.2.2" + semver "^5.3.0" + +babel-preset-es2015@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.24.1" + babel-plugin-transform-es2015-classes "^6.24.1" + babel-plugin-transform-es2015-computed-properties "^6.24.1" + babel-plugin-transform-es2015-destructuring "^6.22.0" + babel-plugin-transform-es2015-duplicate-keys "^6.24.1" + babel-plugin-transform-es2015-for-of "^6.22.0" + babel-plugin-transform-es2015-function-name "^6.24.1" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-plugin-transform-es2015-modules-systemjs "^6.24.1" + babel-plugin-transform-es2015-modules-umd "^6.24.1" + babel-plugin-transform-es2015-object-super "^6.24.1" + babel-plugin-transform-es2015-parameters "^6.24.1" + babel-plugin-transform-es2015-shorthand-properties "^6.24.1" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.24.1" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.22.0" + babel-plugin-transform-es2015-unicode-regex "^6.24.1" + babel-plugin-transform-regenerator "^6.24.1" + +babel-preset-flow@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d" + dependencies: + babel-plugin-transform-flow-strip-types "^6.22.0" + +babel-preset-react@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380" + dependencies: + babel-plugin-syntax-jsx "^6.3.13" + babel-plugin-transform-react-display-name "^6.23.0" + babel-plugin-transform-react-jsx "^6.24.1" + babel-plugin-transform-react-jsx-self "^6.22.0" + babel-plugin-transform-react-jsx-source "^6.22.0" + babel-preset-flow "^6.23.0" + +babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + +babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.18.0, babel-traverse@^6.24.1, babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + +backo2@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + +base-x@^3.0.2: + version "3.0.4" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.4.tgz#94c1788736da065edb1d68808869e357c977fa77" + dependencies: + safe-buffer "^5.0.1" + +base64-arraybuffer@0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" + +base64-js@^1.0.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" + +base64id@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +bchaddrjs@^0.2.1: + version "0.2.2" + resolved "https://registry.yarnpkg.com/bchaddrjs/-/bchaddrjs-0.2.2.tgz#51f8a2fc0349bd02b8be3347129a10c13ca7002c" + dependencies: + bs58check "^2.1.1" + cashaddrjs "^0.2.7" + +bech32@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.3.tgz#bd47a8986bbb3eec34a56a097a84b8d3e9a2dfcd" + +better-assert@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + dependencies: + callsite "1.0.0" + +big-integer@^1.6.34: + version "1.6.35" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.35.tgz#e093c3a50f63fb6bda0b5511c9425f1befcba74d" + +big.js@^3.1.3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" + +bigi@^1.1.0, bigi@^1.2.0, bigi@^1.4.0, bigi@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/bigi/-/bigi-1.4.2.tgz#9c665a95f88b8b08fc05cfd731f561859d725825" + +binary-extensions@^1.0.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" + +bindings@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.3.0.tgz#b346f6ecf6a95f5a815c5839fc7cdb22502f1ed7" + +bip21@Bitcoin-com/bip21, "bip21@github:Bitcoin-com/bip21": + version "2.0.1" + resolved "https://codeload.github.com/Bitcoin-com/bip21/tar.gz/28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f" + dependencies: + qs "^6.3.0" + +bip32-utils@Bitcoin-com/bip32-utils#0.12.2, "bip32-utils@github:Bitcoin-com/bip32-utils#0.12.2": + version "0.12.2" + resolved "https://codeload.github.com/Bitcoin-com/bip32-utils/tar.gz/318df796443311f7e12217542f7f45d3b7791f10" + dependencies: + bitbox-cli "1.5.*" + keccak "^1.3.0" + nyc "*" + standard "^11.0.1" + tape "*" + +bip38@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/bip38/-/bip38-2.0.2.tgz#6f7762bc90b0bdf63b489ff95349354aecf9baee" + dependencies: + bigi "^1.2.0" + browserify-aes "^1.0.1" + bs58check "<3.0.0" + buffer-xor "^1.0.2" + create-hash "^1.1.1" + ecurve "^1.0.0" + scryptsy "^2.0.0" + +bip39@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/bip39/-/bip39-2.5.0.tgz#51cbd5179460504a63ea3c000db3f787ca051235" + dependencies: + create-hash "^1.1.0" + pbkdf2 "^3.0.9" + randombytes "^2.0.1" + safe-buffer "^5.0.1" + unorm "^1.3.3" + +bip66@^1.1.0, bip66@^1.1.3, bip66@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/bip66/-/bip66-1.1.5.tgz#01fa8748785ca70955d5011217d1b3139969ca22" + dependencies: + safe-buffer "^5.0.1" + +bip68@Bitcoin-com/bip68#1.0.5: + version "1.0.5" + resolved "https://codeload.github.com/Bitcoin-com/bip68/tar.gz/aeac5a8c5c1e01dfba79ff3eb824171be004a28c" + +bip68@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/bip68/-/bip68-1.0.4.tgz#78a95c7a43fad183957995cc2e08d79b0c372c4d" + +bitbox-cli@1.5.*: + version "1.5.12" + resolved "https://registry.yarnpkg.com/bitbox-cli/-/bitbox-cli-1.5.12.tgz#7389b7fca4244341f59b47e030de32d4d2e0dd25" + dependencies: + assert "^1.4.1" + axios "^0.17.1" + babel-cli "^6.26.0" + babel-preset-env "^1.6.1" + babel-preset-es2015 "^6.24.1" + babel-preset-flow "^6.23.0" + babel-preset-react "^6.24.1" + babel-register "^6.26.0" + bchaddrjs "^0.2.1" + bigi "^1.4.2" + bip21 Bitcoin-com/bip21 + bip32-utils Bitcoin-com/bip32-utils#0.12.2 + bip38 "^2.0.2" + bip39 "^2.5.0" + bip66 "^1.1.5" + bip68 "^1.0.4" + bitcoin-ops Bitcoin-com/bitcoincash-ops + bitcoin-txdecoder "0.0.3" + bitcoincashjs-lib Bitcoin-com/bitcoincashjs-lib#3.3.4 + bitcoinjs-message "^2.0.0" + bs58 "^4.0.1" + buffer "^5.1.0" + chalk "^2.3.0" + clear "0.0.1" + coininfo Bitcoin-com/coininfo + commander "^2.13.0" + cp-file "^5.0.0" + ecurve "^1.0.6" + figlet "^1.2.0" + git-clone "^0.1.0" + ini "^1.3.5" + mkdirp "^0.5.1" + mocha "^5.0.1" + node-cmd "^3.0.0" + node-emoji "^1.8.1" + qrcode "^1.2.0" + randombytes "^2.0.6" + repl.history "^0.1.4" + safe-buffer "^5.1.2" + satoshi-bitcoin "^1.0.4" + socket.io "^2.1.1" + socket.io-client "^2.1.1" + touch "^3.1.0" + wif "^2.0.6" + +bitcoin-ops@Bitcoin-com/bitcoincash-ops, "bitcoin-ops@github:Bitcoin-com/bitcoincash-ops": + version "1.4.1" + uid d62a0a12ce227a63222282b5f4e9a7a23a5a6b38 + resolved "https://codeload.github.com/Bitcoin-com/bitcoincash-ops/tar.gz/d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" + +bitcoin-ops@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz#e45de620398e22fd4ca6023de43974ff42240278" + +bitcoin-txdecoder@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/bitcoin-txdecoder/-/bitcoin-txdecoder-0.0.3.tgz#f9052d6ea7bb0cbc8f22c024869391296b6c86dd" + dependencies: + bitcoinjs-lib "3.3.*" + +bitcoincashjs-lib@Bitcoin-com/bitcoincashjs-lib#3.3.4, "bitcoincashjs-lib@github:Bitcoin-com/bitcoincashjs-lib#3.3.4": + version "3.3.4" + uid "12fa5fe9b535816b54b9efedd6caf278d3e55b90" + resolved "https://codeload.github.com/Bitcoin-com/bitcoincashjs-lib/tar.gz/12fa5fe9b535816b54b9efedd6caf278d3e55b90" + dependencies: + bech32 "^1.1.2" + bigi "^1.4.0" + bip66 "^1.1.0" + bitcoin-ops "^1.3.0" + bs58check "^2.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.3" + ecurve "^1.0.0" + merkle-lib "^2.0.10" + pushdata-bitcoin "^1.0.1" + randombytes "^2.0.1" + safe-buffer "^5.0.1" + typeforce "^1.11.3" + varuint-bitcoin "^1.0.4" + wif "^2.0.1" + +bitcoinjs-lib@3.3.*: + version "3.3.2" + resolved "https://registry.yarnpkg.com/bitcoinjs-lib/-/bitcoinjs-lib-3.3.2.tgz#780c9c53ecb1222adb463b58bef26386067b609a" + dependencies: + bech32 "^1.1.2" + bigi "^1.4.0" + bip66 "^1.1.0" + bitcoin-ops "^1.3.0" + bs58check "^2.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.3" + ecurve "^1.0.0" + merkle-lib "^2.0.10" + pushdata-bitcoin "^1.0.1" + randombytes "^2.0.1" + safe-buffer "^5.0.1" + typeforce "^1.11.3" + varuint-bitcoin "^1.0.4" + wif "^2.0.1" + +bitcoinjs-message@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz#e285d223607dabf2b33a6ee486a223b59d1b1548" + dependencies: + bs58check "^2.0.2" + buffer-equals "^1.0.3" + create-hash "^1.1.2" + secp256k1 "^3.0.1" + varuint-bitcoin "^1.0.1" + +blob@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" + +bn.js@^4.11.3, bn.js@^4.4.0: + version "4.11.8" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +braces@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + +browserify-aes@^1.0.1, browserify-aes@^1.0.6: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserslist@^3.2.6: + version "3.2.8" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" + dependencies: + caniuse-lite "^1.0.30000844" + electron-to-chromium "^1.3.47" + +bs58@^4.0.0, bs58@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" + dependencies: + base-x "^3.0.2" + +bs58check@<3.0.0, bs58check@^2.0.0, bs58check@^2.0.2, bs58check@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" + dependencies: + bs58 "^4.0.0" + create-hash "^1.1.0" + safe-buffer "^5.1.2" + +buffer-equals@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/buffer-equals/-/buffer-equals-1.0.4.tgz#0353b54fd07fd9564170671ae6f66b9cf10d27f5" + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + +buffer-xor@^1.0.2, buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + +buffer@^5.1.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6" + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +builtin-modules@^1.0.0, builtin-modules@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +caching-transform@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-1.0.1.tgz#6dbdb2f20f8d8fbce79f3e94e9d1742dcdf5c0a1" + dependencies: + md5-hex "^1.2.0" + mkdirp "^0.5.1" + write-file-atomic "^1.1.4" + +caching-transform@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-2.0.0.tgz#e1292bd92d35b6e8b1ed7075726724b3bd64eea0" + dependencies: + make-dir "^1.0.0" + md5-hex "^2.0.0" + package-hash "^2.0.0" + write-file-atomic "^2.0.0" + +caller-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + dependencies: + callsites "^0.2.0" + +callsite@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + +callsites@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + +camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + +can-promise@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/can-promise/-/can-promise-0.0.1.tgz#7a7597ad801fb14c8b22341dfec314b6bd6ad8d3" + dependencies: + window-or-global "^1.0.1" + +caniuse-lite@^1.0.30000844: + version "1.0.30000884" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000884.tgz#eb82a959698745033b26a4dcd34d89dba7cc6eb3" + +cashaddrjs@^0.2.7: + version "0.2.9" + resolved "https://registry.yarnpkg.com/cashaddrjs/-/cashaddrjs-0.2.9.tgz#e38e323e11e0ab761767006b3938a36278dadec9" + dependencies: + big-integer "^1.6.34" + +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +chai@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.1.2.tgz#0f64584ba642f0f2ace2806279f4f06ca23ad73c" + dependencies: + assertion-error "^1.0.1" + check-error "^1.0.1" + deep-eql "^3.0.0" + get-func-name "^2.0.0" + pathval "^1.0.0" + type-detect "^4.0.0" + +chalk@^1.1.3: + version "1.1.3" + resolved "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + 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" + +chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chardet@^0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" + +check-error@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + +chokidar@^1.6.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" + dependencies: + anymatch "^1.3.0" + async-each "^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" + optionalDependencies: + fsevents "^1.0.0" + +chownr@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +circular-json@^0.3.1: + version "0.3.3" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +clear@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/clear/-/clear-0.0.1.tgz#e5186e229d99448179c130311b6f9d30bff6b0ba" + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + dependencies: + restore-cursor "^2.0.0" + +cli-width@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + +cliui@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + +coininfo@Bitcoin-com/coininfo, "coininfo@github:Bitcoin-com/coininfo": + version "4.0.0" + uid eece2c6141d08c3e7783929f2a1e1e681aa1a82c + resolved "https://codeload.github.com/Bitcoin-com/coininfo/tar.gz/eece2c6141d08c3e7783929f2a1e1e681aa1a82c" + dependencies: + safe-buffer "^5.1.1" + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + +commander@2.15.1: + version "2.15.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" + +commander@^2.11.0, commander@^2.13.0: + version "2.17.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + +component-bind@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + +component-emitter@1.2.1, component-emitter@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + +component-inherit@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +concat-stream@^1.6.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + +contains-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + +convert-source-map@^1.5.0, convert-source-map@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" + +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + +core-js@^2.4.0, core-js@^2.5.0: + version "2.5.7" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" + +core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +cp-file@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cp-file/-/cp-file-5.0.0.tgz#bc700fd30ca32d24d46c7fb02b992e435fc5a978" + dependencies: + graceful-fs "^4.1.2" + make-dir "^1.0.0" + nested-error-stacks "^2.0.0" + pify "^3.0.0" + safe-buffer "^5.0.1" + +create-hash@^1.1.0, create-hash@^1.1.1, create-hash@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.3, create-hmac@^1.1.4: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-spawn@^4: + version "4.0.2" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" + dependencies: + lru-cache "^4.0.1" + which "^1.2.9" + +cross-spawn@^5.0.1, cross-spawn@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +debug-log@^1.0.0, debug-log@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" + +debug@3.1.0, debug@^3.1.0, debug@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + dependencies: + ms "2.0.0" + +debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + dependencies: + ms "2.0.0" + +decamelize@^1.0.0, decamelize@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + +deep-eql@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + dependencies: + type-detect "^4.0.0" + +deep-equal@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + +default-require-extensions@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" + dependencies: + strip-bom "^2.0.0" + +default-require-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-2.0.0.tgz#f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7" + dependencies: + strip-bom "^3.0.0" + +define-properties@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +defined@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + +deglob@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/deglob/-/deglob-2.1.1.tgz#d268e168727799862e8eac07042e165957c1f3be" + dependencies: + find-root "^1.0.0" + glob "^7.0.5" + ignore "^3.0.9" + pkg-config "^1.1.0" + run-parallel "^1.1.2" + uniq "^1.0.1" + +del@^2.0.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" + dependencies: + globby "^5.0.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + rimraf "^2.2.8" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + dependencies: + repeating "^2.0.0" + +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + +diff@3.5.0, diff@^3.1.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + +dijkstrajs@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.1.tgz#d3cd81221e3ea40742cfcde556d4e99e98ddc71b" + +doctrine@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctrine@^2.0.2, doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + dependencies: + esutils "^2.0.2" + +drbg.js@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/drbg.js/-/drbg.js-1.0.1.tgz#3e36b6c42b37043823cdbc332d58f31e2445480b" + dependencies: + browserify-aes "^1.0.6" + create-hash "^1.1.2" + create-hmac "^1.1.4" + +ecurve@^1.0.0, ecurve@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/ecurve/-/ecurve-1.0.6.tgz#dfdabbb7149f8d8b78816be5a7d5b83fcf6de797" + dependencies: + bigi "^1.1.0" + safe-buffer "^5.0.1" + +electron-to-chromium@^1.3.47: + version "1.3.62" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.62.tgz#2e8e2dc070c800ec8ce23ff9dfcceb585d6f9ed8" + +elliptic@^6.2.3: + version "6.4.1" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + +engine.io-client@~3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz#6f54c0475de487158a1a7c77d10178708b6add36" + dependencies: + component-emitter "1.2.1" + component-inherit "0.0.3" + debug "~3.1.0" + engine.io-parser "~2.1.1" + has-cors "1.1.0" + indexof "0.0.1" + parseqs "0.0.5" + parseuri "0.0.5" + ws "~3.3.1" + xmlhttprequest-ssl "~1.5.4" + yeast "0.1.2" + +engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.2.tgz#4c0f4cff79aaeecbbdcfdea66a823c6085409196" + dependencies: + after "0.8.2" + arraybuffer.slice "~0.0.7" + base64-arraybuffer "0.1.5" + blob "0.0.4" + has-binary2 "~1.0.2" + +engine.io@~3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.0.tgz#54332506f42f2edc71690d2f2a42349359f3bf7d" + dependencies: + accepts "~1.3.4" + base64id "1.0.0" + cookie "0.3.1" + debug "~3.1.0" + engine.io-parser "~2.1.0" + ws "~3.3.1" + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.5.0, es-abstract@^1.7.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.1" + has "^1.0.1" + is-callable "^1.1.3" + is-regex "^1.0.4" + +es-to-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" + dependencies: + is-callable "^1.1.1" + is-date-object "^1.0.1" + is-symbol "^1.0.1" + +es6-error@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +eslint-config-standard-jsx@5.0.0: + version "5.0.0" + resolved "http://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-5.0.0.tgz#4abfac554f38668e0078c664569e7b2384e5d2aa" + +eslint-config-standard@11.0.0: + version "11.0.0" + resolved "http://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-11.0.0.tgz#87ee0d3c9d95382dc761958cbb23da9eea31e0ba" + +eslint-import-resolver-node@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" + dependencies: + debug "^2.6.9" + resolve "^1.5.0" + +eslint-module-utils@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz#b270362cd88b1a48ad308976ce7fa54e98411746" + dependencies: + debug "^2.6.8" + pkg-dir "^1.0.0" + +eslint-plugin-import@~2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz#26002efbfca5989b7288ac047508bd24f217b169" + dependencies: + builtin-modules "^1.1.1" + contains-path "^0.1.0" + debug "^2.6.8" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.1" + eslint-module-utils "^2.1.1" + has "^1.0.1" + lodash "^4.17.4" + minimatch "^3.0.3" + read-pkg-up "^2.0.0" + +eslint-plugin-node@~6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz#bf19642298064379315d7a4b2a75937376fa05e4" + dependencies: + ignore "^3.3.6" + minimatch "^3.0.4" + resolve "^1.3.3" + semver "^5.4.1" + +eslint-plugin-promise@~3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-3.7.0.tgz#f4bde5c2c77cdd69557a8f69a24d1ad3cfc9e67e" + +eslint-plugin-react@~7.7.0: + version "7.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz#f606c719dbd8a1a2b3d25c16299813878cca0160" + dependencies: + doctrine "^2.0.2" + has "^1.0.1" + jsx-ast-utils "^2.0.1" + prop-types "^15.6.0" + +eslint-plugin-standard@~3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz#34d0c915b45edc6f010393c7eef3823b08565cf2" + +eslint-scope@^3.7.1: + version "3.7.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535" + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-visitor-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" + +eslint@~4.18.0: + version "4.18.2" + resolved "http://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz#0f81267ad1012e7d2051e186a9004cc2267b8d45" + dependencies: + ajv "^5.3.0" + babel-code-frame "^6.22.0" + chalk "^2.1.0" + concat-stream "^1.6.0" + cross-spawn "^5.1.0" + debug "^3.1.0" + doctrine "^2.1.0" + eslint-scope "^3.7.1" + eslint-visitor-keys "^1.0.0" + espree "^3.5.2" + esquery "^1.0.0" + esutils "^2.0.2" + file-entry-cache "^2.0.0" + functional-red-black-tree "^1.0.1" + glob "^7.1.2" + globals "^11.0.1" + ignore "^3.3.3" + imurmurhash "^0.1.4" + inquirer "^3.0.6" + is-resolvable "^1.0.0" + js-yaml "^3.9.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.4" + minimatch "^3.0.2" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.2" + pluralize "^7.0.0" + progress "^2.0.0" + require-uncached "^1.0.3" + semver "^5.3.0" + strip-ansi "^4.0.0" + strip-json-comments "~2.0.1" + table "4.0.2" + text-table "~0.2.0" + +espree@^3.5.2: + version "3.5.4" + resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" + dependencies: + acorn "^5.5.0" + acorn-jsx "^3.0.0" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + +esquery@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" + dependencies: + estraverse "^4.0.0" + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + dependencies: + estraverse "^4.1.0" + +estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + +esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + dependencies: + 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" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +external-editor@^2.0.4: + version "2.2.0" + resolved "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" + dependencies: + chardet "^0.4.0" + iconv-lite "^0.4.17" + tmp "^0.0.33" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +fast-deep-equal@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" + +fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + +figlet@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/figlet/-/figlet-1.2.0.tgz#6c46537378fab649146b5a6143dda019b430b410" + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + +fill-range@^2.1.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^3.0.0" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +find-cache-dir@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" + dependencies: + commondir "^1.0.1" + mkdirp "^0.5.1" + pkg-dir "^1.0.0" + +find-cache-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.0.0.tgz#4c1faed59f45184530fb9d7fa123a4d04a98472d" + dependencies: + commondir "^1.0.1" + make-dir "^1.0.0" + pkg-dir "^3.0.0" + +find-root@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + dependencies: + locate-path "^2.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + dependencies: + locate-path "^3.0.0" + +flat-cache@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" + dependencies: + circular-json "^0.3.1" + del "^2.0.2" + graceful-fs "^4.1.2" + write "^0.2.1" + +flow-bin@^0.64.0: + version "0.64.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.64.0.tgz#ddd3fb3b183ab1ab35a5d5dec9caf5ebbcded167" + +follow-redirects@^1.2.5: + version "1.5.7" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.7.tgz#a39e4804dacb90202bca76a9e2ac10433ca6a69a" + dependencies: + debug "^3.1.0" + +for-each@~0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + dependencies: + is-callable "^1.1.3" + +for-in@^1.0.1, for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + dependencies: + for-in "^1.0.1" + +foreground-child@^1.5.3, foreground-child@^1.5.6: + version "1.5.6" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9" + dependencies: + cross-spawn "^4" + signal-exit "^3.0.0" + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + dependencies: + map-cache "^0.2.2" + +fs-minipass@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" + dependencies: + minipass "^2.2.1" + +fs-readdir-recursive@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fsevents@^1.0.0: + version "1.2.4" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" + dependencies: + nan "^2.9.2" + node-pre-gyp "^0.10.0" + +function-bind@^1.0.2, function-bind@^1.1.1, function-bind@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + dependencies: + 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" + +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + +get-stdin@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + +git-clone@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/git-clone/-/git-clone-0.1.0.tgz#0d76163778093aef7f1c30238f2a9ef3f07a2eb9" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + +glob@7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.2, glob@~7.1.2: + version "7.1.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^11.0.1, globals@^11.1.0: + version "11.7.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.7.0.tgz#a583faa43055b1aca771914bf68258e2fc125673" + +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + +globby@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" + dependencies: + array-union "^1.0.1" + arrify "^1.0.0" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +growl@1.10.5: + version "1.10.5" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + +handlebars@^4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc" + dependencies: + async "^1.4.0" + optimist "^0.6.1" + source-map "^0.4.4" + optionalDependencies: + uglify-js "^2.6" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +has-binary2@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" + dependencies: + isarray "2.0.1" + +has-cors@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.1, has@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.5" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.5.tgz#e38ab4b85dfb1e0c40fe9265c0e9b54854c23812" + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +he@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +hosted-git-info@^2.1.4: + version "2.7.1" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" + +iconv-lite@^0.4.17, iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ieee754@^1.1.4: + version "1.1.12" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b" + +ignore-walk@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" + dependencies: + minimatch "^3.0.4" + +ignore@^3.0.9, ignore@^3.3.3, ignore@^3.3.6: + version "3.3.10" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + +ini@^1.3.5, ini@~1.3.0: + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + +inquirer@^3.0.6: + version "3.3.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^2.0.4" + figures "^2.0.0" + lodash "^4.3.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rx-lite "^4.0.8" + rx-lite-aggregates "^4.0.8" + string-width "^2.1.0" + strip-ansi "^4.0.0" + through "^2.3.6" + +invariant@^2.2.0, invariant@^2.2.2: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + dependencies: + kind-of "^6.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + +is-builtin-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + dependencies: + builtin-modules "^1.0.0" + +is-callable@^1.1.1, is-callable@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + dependencies: + kind-of "^3.0.2" + +is-number@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + +is-path-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + +is-path-in-cwd@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" + dependencies: + is-path-inside "^1.0.0" + +is-path-inside@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" + dependencies: + path-is-inside "^1.0.1" + +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + dependencies: + isobject "^3.0.1" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + +is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + dependencies: + has "^1.0.1" + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + +is-symbol@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isarray@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" + +isarray@^2.0.1: + version "2.0.4" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.4.tgz#38e7bcbb0f3ba1b7933c86ba1894ddfc3781bbb7" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + +istanbul-lib-coverage@^1.1.2, istanbul-lib-coverage@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz#f7d8f2e42b97e37fe796114cb0f9d68b5e3a4341" + +istanbul-lib-coverage@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#2aee0e073ad8c5f6a0b00e0dfbf52b4667472eda" + +istanbul-lib-hook@^1.1.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.2.1.tgz#f614ec45287b2a8fc4f07f5660af787575601805" + dependencies: + append-transform "^1.0.0" + +istanbul-lib-hook@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-2.0.1.tgz#918a57b75a0f951d552a08487ca1fa5336433d72" + dependencies: + append-transform "^1.0.0" + +istanbul-lib-instrument@^1.10.0: + version "1.10.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz#724b4b6caceba8692d3f1f9d0727e279c401af7b" + dependencies: + babel-generator "^6.18.0" + babel-template "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + babylon "^6.18.0" + istanbul-lib-coverage "^1.2.0" + semver "^5.3.0" + +istanbul-lib-instrument@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-2.3.2.tgz#b287cbae2b5f65f3567b05e2e29b275eaf92d25e" + dependencies: + "@babel/generator" "7.0.0-beta.51" + "@babel/parser" "7.0.0-beta.51" + "@babel/template" "7.0.0-beta.51" + "@babel/traverse" "7.0.0-beta.51" + "@babel/types" "7.0.0-beta.51" + istanbul-lib-coverage "^2.0.1" + semver "^5.5.0" + +istanbul-lib-report@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.4.tgz#e886cdf505c4ebbd8e099e4396a90d0a28e2acb5" + dependencies: + istanbul-lib-coverage "^1.2.0" + mkdirp "^0.5.1" + path-parse "^1.0.5" + supports-color "^3.1.2" + +istanbul-lib-report@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.1.tgz#64a0a08f42676b9c801b841b9dc3311017c6ae09" + dependencies: + istanbul-lib-coverage "^2.0.1" + make-dir "^1.3.0" + supports-color "^5.4.0" + +istanbul-lib-source-maps@^1.2.3: + version "1.2.5" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.5.tgz#ffe6be4e7ab86d3603e4290d54990b14506fc9b1" + dependencies: + debug "^3.1.0" + istanbul-lib-coverage "^1.2.0" + mkdirp "^0.5.1" + rimraf "^2.6.1" + source-map "^0.5.3" + +istanbul-lib-source-maps@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-2.0.1.tgz#ce8b45131d8293fdeaa732f4faf1852d13d0a97e" + dependencies: + debug "^3.1.0" + istanbul-lib-coverage "^2.0.1" + make-dir "^1.3.0" + rimraf "^2.6.2" + source-map "^0.6.1" + +istanbul-reports@^1.4.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.5.0.tgz#c6c2867fa65f59eb7dcedb7f845dfc76aaee70f9" + dependencies: + handlebars "^4.0.11" + +istanbul-reports@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.0.0.tgz#eb12eddf55724ebc557b32cd77c34d11ed7980c1" + dependencies: + handlebars "^4.0.11" + +js-tokens@^3.0.0, js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + +"js-tokens@^3.0.0 || ^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + +js-yaml@^3.9.1: + version "3.12.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + +jsesc@^2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe" + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + +json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + +json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + +jsx-ast-utils@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f" + dependencies: + array-includes "^3.0.3" + +just-extend@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-3.0.0.tgz#cee004031eaabf6406da03a7b84e4fe9d78ef288" + +keccak@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-1.4.0.tgz#572f8a6dbee8e7b3aa421550f9e6408ca2186f80" + dependencies: + bindings "^1.2.1" + inherits "^2.0.3" + nan "^2.2.1" + safe-buffer "^5.1.0" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + dependencies: + invert-kv "^1.0.0" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +lodash.flattendeep@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + +lodash.toarray@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" + +lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0: + version "4.17.10" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" + +lolex@^2.2.0, lolex@^2.3.2: + version "2.7.1" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.7.1.tgz#e40a8c4d1f14b536aa03e42a537c7adbaf0c20be" + +longest@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + +loose-envify@^1.0.0, loose-envify@^1.3.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lru-cache@^4.0.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c" + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +make-dir@^1.0.0, make-dir@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + dependencies: + pify "^3.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + dependencies: + object-visit "^1.0.0" + +math-random@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac" + +md5-hex@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4" + dependencies: + md5-o-matic "^0.1.1" + +md5-hex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-2.0.0.tgz#d0588e9f1c74954492ecd24ac0ac6ce997d92e33" + dependencies: + md5-o-matic "^0.1.1" + +md5-o-matic@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3" + +md5.js@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +mem@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + dependencies: + mimic-fn "^1.0.0" + +merge-source-map@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" + dependencies: + source-map "^0.6.1" + +merkle-lib@^2.0.10: + version "2.0.10" + resolved "https://registry.yarnpkg.com/merkle-lib/-/merkle-lib-2.0.10.tgz#82b8dbae75e27a7785388b73f9d7725d0f6f3326" + +micromatch@^2.1.5: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + 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" + +micromatch@^3.1.10: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +mime-db@~1.36.0: + version "1.36.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.36.0.tgz#5020478db3c7fe93aad7bbcc4dcf869c43363397" + +mime-types@~2.1.18: + version "2.1.20" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.20.tgz#930cb719d571e903738520f8470911548ca2cc19" + dependencies: + mime-db "~1.36.0" + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + +minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@^1.1.0, minimist@^1.2.0, minimist@~1.2.0: + version "1.2.0" + resolved "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +minimist@~0.0.1: + version "0.0.10" + resolved "http://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + +minipass@^2.2.1, minipass@^2.3.3: + version "2.3.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.4.tgz#4768d7605ed6194d6d576169b9e12ef71e9d9957" + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" + dependencies: + minipass "^2.2.1" + +mixin-deep@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1: + version "0.5.1" + resolved "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +mocha@^5.0.1: + version "5.2.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz#6d8ae508f59167f940f2b5b3c4a612ae50c90ae6" + dependencies: + browser-stdout "1.3.1" + commander "2.15.1" + debug "3.1.0" + diff "3.5.0" + escape-string-regexp "1.0.5" + glob "7.1.2" + growl "1.10.5" + he "1.1.1" + minimatch "3.0.4" + mkdirp "0.5.1" + supports-color "5.4.0" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + +nan@^2.2.1, nan@^2.9.2: + version "2.11.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.11.0.tgz#574e360e4d954ab16966ec102c0c049fd961a099" + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + +needle@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.2.tgz#1120ca4c41f2fcc6976fd28a8968afe239929418" + dependencies: + debug "^2.1.2" + iconv-lite "^0.4.4" + sax "^1.2.4" + +negotiator@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + +nested-error-stacks@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz#0fbdcf3e13fe4994781280524f8b96b0cdff9c61" + +nise@^1.2.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/nise/-/nise-1.4.4.tgz#b8d9dd35334c99e514b75e46fcc38e358caecdd0" + dependencies: + "@sinonjs/formatio" "^2.0.0" + just-extend "^3.0.0" + lolex "^2.3.2" + path-to-regexp "^1.7.0" + text-encoding "^0.6.4" + +node-cmd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/node-cmd/-/node-cmd-3.0.0.tgz#38fff70a4aaa4f659d203eb57862737018e24f6f" + +node-emoji@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.8.1.tgz#6eec6bfb07421e2148c75c6bba72421f8530a826" + dependencies: + lodash.toarray "^4.4.0" + +node-pre-gyp@^0.10.0: + version "0.10.3" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + dependencies: + abbrev "1" + osenv "^0.1.4" + +nopt@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + dependencies: + abbrev "1" + +normalize-package-data@^2.3.2: + version "2.4.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" + dependencies: + 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@^2.0.0, normalize-path@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + dependencies: + remove-trailing-separator "^1.0.1" + +npm-bundled@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979" + +npm-packlist@^1.1.6: + version "1.1.11" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.11.tgz#84e8c683cbe7867d34b1d357d893ce29e28a02de" + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + dependencies: + path-key "^2.0.0" + +npmlog@^4.0.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + dependencies: + 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@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +nyc@*: + version "13.0.1" + resolved "https://registry.yarnpkg.com/nyc/-/nyc-13.0.1.tgz#b61857ed633c803353fc41eeca775d0e1f62034b" + dependencies: + archy "^1.0.0" + arrify "^1.0.1" + caching-transform "^2.0.0" + convert-source-map "^1.5.1" + debug-log "^1.0.1" + find-cache-dir "^2.0.0" + find-up "^3.0.0" + foreground-child "^1.5.6" + glob "^7.1.2" + istanbul-lib-coverage "^2.0.1" + istanbul-lib-hook "^2.0.1" + istanbul-lib-instrument "^2.3.2" + istanbul-lib-report "^2.0.1" + istanbul-lib-source-maps "^2.0.1" + istanbul-reports "^2.0.0" + make-dir "^1.3.0" + merge-source-map "^1.1.0" + resolve-from "^4.0.0" + rimraf "^2.6.2" + signal-exit "^3.0.2" + spawn-wrap "^1.4.2" + test-exclude "^5.0.0" + uuid "^3.3.2" + yargs "11.1.0" + yargs-parser "^9.0.2" + +nyc@^11.6.0: + version "11.9.0" + resolved "https://registry.yarnpkg.com/nyc/-/nyc-11.9.0.tgz#4106e89e8fbe73623a1fc8b6ecb7abaa271ae1e4" + dependencies: + archy "^1.0.0" + arrify "^1.0.1" + caching-transform "^1.0.0" + convert-source-map "^1.5.1" + debug-log "^1.0.1" + default-require-extensions "^1.0.0" + find-cache-dir "^0.1.1" + find-up "^2.1.0" + foreground-child "^1.5.3" + glob "^7.0.6" + istanbul-lib-coverage "^1.1.2" + istanbul-lib-hook "^1.1.0" + istanbul-lib-instrument "^1.10.0" + istanbul-lib-report "^1.1.3" + istanbul-lib-source-maps "^1.2.3" + istanbul-reports "^1.4.0" + md5-hex "^1.2.0" + merge-source-map "^1.1.0" + micromatch "^3.1.10" + mkdirp "^0.5.0" + resolve-from "^2.0.0" + rimraf "^2.6.2" + signal-exit "^3.0.1" + spawn-wrap "^1.4.2" + test-exclude "^4.2.0" + yargs "11.1.0" + yargs-parser "^8.0.0" + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +object-component@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-inspect@~1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" + +object-keys@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + dependencies: + isobject "^3.0.0" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + dependencies: + isobject "^3.0.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + dependencies: + mimic-fn "^1.0.0" + +optimist@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +optionator@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.4" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + wordwrap "~1.0.0" + +os-homedir@^1.0.0, os-homedir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +os-locale@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +output-file-sync@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" + dependencies: + graceful-fs "^4.1.4" + mkdirp "^0.5.1" + object-assign "^4.1.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.0.0.tgz#e624ed54ee8c460a778b3c9f3670496ff8a57aec" + dependencies: + p-try "^2.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + dependencies: + p-limit "^2.0.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + +p-try@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" + +package-hash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-2.0.0.tgz#78ae326c89e05a4d813b68601977af05c00d2a0d" + dependencies: + graceful-fs "^4.1.11" + lodash.flattendeep "^4.4.0" + md5-hex "^2.0.0" + release-zalgo "^1.0.0" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + dependencies: + error-ex "^1.2.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parseqs@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" + dependencies: + better-assert "~1.0.0" + +parseuri@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" + dependencies: + better-assert "~1.0.0" + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-is-inside@^1.0.1, path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + +path-key@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + +path-parse@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + +path-to-regexp@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" + dependencies: + isarray "0.0.1" + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + dependencies: + pify "^2.0.0" + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + dependencies: + pify "^3.0.0" + +pathval@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" + +pbkdf2@^3.0.9: + version "3.0.16" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.16.tgz#7404208ec6b01b62d85bf83853a8064f8d9c2a5c" + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + +pkg-conf@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.1.0.tgz#2126514ca6f2abfebd168596df18ba57867f0058" + dependencies: + find-up "^2.0.0" + load-json-file "^4.0.0" + +pkg-config@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pkg-config/-/pkg-config-1.1.1.tgz#557ef22d73da3c8837107766c52eadabde298fe4" + dependencies: + debug-log "^1.0.0" + find-root "^1.0.0" + xtend "^4.0.1" + +pkg-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" + dependencies: + find-up "^1.0.0" + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + dependencies: + find-up "^3.0.0" + +pluralize@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" + +pngjs@^3.3.0: + version "3.3.3" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.3.3.tgz#85173703bde3edac8998757b96e5821d0966a21b" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +private@^0.1.6, private@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + +process-nextick-args@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + +progress@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" + +prop-types@^15.6.0: + version "15.6.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102" + dependencies: + loose-envify "^1.3.1" + object-assign "^4.1.1" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + +pushdata-bitcoin@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz#15931d3cd967ade52206f523aa7331aef7d43af7" + dependencies: + bitcoin-ops "^1.3.0" + +qrcode@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.2.2.tgz#f3c97f5a4c32cf5c2ec75b63c1b66a38df122693" + dependencies: + can-promise "^0.0.1" + dijkstrajs "^1.0.1" + isarray "^2.0.1" + pngjs "^3.3.0" + yargs "^8.0.2" + +qs@^6.3.0: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + +randomatic@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.0.tgz#36f2ca708e9e567f5ed2ec01949026d50aa10116" + dependencies: + is-number "^4.0.0" + kind-of "^6.0.0" + math-random "^1.0.1" + +randombytes@^2.0.1, randombytes@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" + dependencies: + safe-buffer "^5.1.0" + +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + dependencies: + find-up "^2.0.0" + read-pkg "^3.0.0" + +read-pkg-up@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" + dependencies: + find-up "^3.0.0" + read-pkg "^3.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.2.2: + version "2.3.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readdirp@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" + dependencies: + graceful-fs "^4.1.2" + minimatch "^3.0.2" + readable-stream "^2.0.2" + set-immediate-shim "^1.0.1" + +regenerate@^1.2.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" + +regenerator-runtime@^0.10.5: + version "0.10.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + +regenerator-transform@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" + dependencies: + babel-runtime "^6.18.0" + babel-types "^6.19.0" + private "^0.1.6" + +regex-cache@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + dependencies: + is-equal-shallow "^0.1.3" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexpu-core@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + dependencies: + jsesc "~0.5.0" + +release-zalgo@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/release-zalgo/-/release-zalgo-1.0.0.tgz#09700b7e5074329739330e535c5a90fb67851730" + dependencies: + es6-error "^4.0.1" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + +repeat-string@^1.5.2, repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + dependencies: + is-finite "^1.0.0" + +repl.history@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/repl.history/-/repl.history-0.1.4.tgz#80367171f3781d6e4299c71758c253097f5d5832" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + +require-uncached@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + dependencies: + caller-path "^0.1.0" + resolve-from "^1.0.0" + +resolve-from@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + +resolve-from@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + +resolve@^1.3.3, resolve@^1.5.0: + version "1.8.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" + dependencies: + path-parse "^1.0.5" + +resolve@~1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.7.1.tgz#aadd656374fd298aee895bc026b8297418677fd3" + dependencies: + path-parse "^1.0.5" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +resumer@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" + dependencies: + through "~2.3.4" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + dependencies: + align-text "^0.1.1" + +rimraf@^2.2.8, rimraf@^2.6.1, rimraf@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" + dependencies: + glob "^7.0.5" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +run-async@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + dependencies: + is-promise "^2.1.0" + +run-parallel@^1.1.2: + version "1.1.9" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" + +rx-lite-aggregates@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" + dependencies: + rx-lite "*" + +rx-lite@*, rx-lite@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + +samsam@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.3.0.tgz#8d1d9350e25622da30de3e44ba692b5221ab7c50" + +satoshi-bitcoin@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/satoshi-bitcoin/-/satoshi-bitcoin-1.0.4.tgz#d002b677075d5cbbf2c211a8df3254bcdf50b1e4" + dependencies: + big.js "^3.1.3" + +sax@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + +scryptsy@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-2.0.0.tgz#262c36f0231cfa7654e2363fa394cd2dec66f378" + +secp256k1@^3.0.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.5.2.tgz#f95f952057310722184fe9c914e6b71281f2f2ae" + dependencies: + bindings "^1.2.1" + bip66 "^1.1.3" + bn.js "^4.11.3" + create-hash "^1.1.2" + drbg.js "^1.0.1" + elliptic "^6.2.3" + nan "^2.2.1" + safe-buffer "^5.1.0" + +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0: + version "5.5.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz#7dfdd8814bdb7cabc7be0fb1d734cfb66c940477" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + +set-immediate-shim@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + +set-value@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.1" + to-object-path "^0.3.0" + +set-value@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + +signal-exit@^3.0.0, signal-exit@^3.0.1, signal-exit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +sinon@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-4.5.0.tgz#427ae312a337d3c516804ce2754e8c0d5028cb04" + dependencies: + "@sinonjs/formatio" "^2.0.0" + diff "^3.1.0" + lodash.get "^4.4.2" + lolex "^2.2.0" + nise "^1.2.0" + supports-color "^5.1.0" + type-detect "^4.0.5" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + +slice-ansi@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" + dependencies: + is-fullwidth-code-point "^2.0.0" + +slide@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +socket.io-adapter@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b" + +socket.io-client@2.1.1, socket.io-client@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.1.tgz#dcb38103436ab4578ddb026638ae2f21b623671f" + dependencies: + backo2 "1.0.2" + base64-arraybuffer "0.1.5" + component-bind "1.0.0" + component-emitter "1.2.1" + debug "~3.1.0" + engine.io-client "~3.2.0" + has-binary2 "~1.0.2" + has-cors "1.1.0" + indexof "0.0.1" + object-component "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" + socket.io-parser "~3.2.0" + to-array "0.1.4" + +socket.io-parser@~3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.2.0.tgz#e7c6228b6aa1f814e6148aea325b51aa9499e077" + dependencies: + component-emitter "1.2.1" + debug "~3.1.0" + isarray "2.0.1" + +socket.io@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.1.tgz#a069c5feabee3e6b214a75b40ce0652e1cfb9980" + dependencies: + debug "~3.1.0" + engine.io "~3.2.0" + has-binary2 "~1.0.2" + socket.io-adapter "~1.1.0" + socket.io-client "2.1.1" + socket.io-parser "~3.2.0" + +source-map-resolve@^0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" + dependencies: + atob "^2.1.1" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.4.15: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + dependencies: + source-map "^0.5.6" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + +source-map@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + dependencies: + amdefine ">=0.0.4" + +source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + +source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + +spawn-wrap@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.4.2.tgz#cff58e73a8224617b6561abdc32586ea0c82248c" + dependencies: + foreground-child "^1.5.6" + mkdirp "^0.5.0" + os-homedir "^1.0.1" + rimraf "^2.6.2" + signal-exit "^3.0.2" + which "^1.3.0" + +spdx-correct@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" + +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + +standard-engine@~8.0.0: + version "8.0.1" + resolved "http://registry.npmjs.org/standard-engine/-/standard-engine-8.0.1.tgz#0b77be8d7ab963675717dbeac1ef1d6675fb62f0" + dependencies: + deglob "^2.1.0" + get-stdin "^6.0.0" + minimist "^1.1.0" + pkg-conf "^2.0.0" + +standard@^11.0.1: + version "11.0.1" + resolved "http://registry.npmjs.org/standard/-/standard-11.0.1.tgz#49be40c76f1d564964b22bbf7309929ad0335e29" + dependencies: + eslint "~4.18.0" + eslint-config-standard "11.0.0" + eslint-config-standard-jsx "5.0.0" + eslint-plugin-import "~2.9.0" + eslint-plugin-node "~6.0.0" + eslint-plugin-promise "~3.7.0" + eslint-plugin-react "~7.7.0" + eslint-plugin-standard "~3.0.1" + standard-engine "~8.0.0" + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string.prototype.trim@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz#d04de2c89e137f4d7d206f086b5ed2fae6be8cea" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.0" + function-bind "^1.0.2" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + dependencies: + ansi-regex "^3.0.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + dependencies: + is-utf8 "^0.2.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + +supports-color@5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" + dependencies: + has-flag "^3.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +supports-color@^3.1.2: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + dependencies: + has-flag "^1.0.0" + +supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.4.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + dependencies: + has-flag "^3.0.0" + +table@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" + dependencies: + ajv "^5.2.3" + ajv-keywords "^2.1.0" + chalk "^2.1.0" + lodash "^4.17.4" + slice-ansi "1.0.0" + string-width "^2.1.1" + +tape@*: + version "4.9.1" + resolved "https://registry.yarnpkg.com/tape/-/tape-4.9.1.tgz#1173d7337e040c76fbf42ec86fcabedc9b3805c9" + dependencies: + deep-equal "~1.0.1" + defined "~1.0.0" + for-each "~0.3.3" + function-bind "~1.1.1" + glob "~7.1.2" + has "~1.0.3" + inherits "~2.0.3" + minimist "~1.2.0" + object-inspect "~1.6.0" + resolve "~1.7.1" + resumer "~0.0.0" + string.prototype.trim "~1.1.2" + through "~2.3.8" + +tar@^4: + version "4.4.6" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.6.tgz#63110f09c00b4e60ac8bcfe1bf3c8660235fbc9b" + dependencies: + chownr "^1.0.1" + fs-minipass "^1.2.5" + minipass "^2.3.3" + minizlib "^1.1.0" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.2" + +test-exclude@^4.2.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.2.tgz#8b67aa8408f84afc225b06669e25c510f8582820" + dependencies: + arrify "^1.0.1" + minimatch "^3.0.4" + read-pkg-up "^3.0.0" + require-main-filename "^1.0.1" + +test-exclude@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.0.0.tgz#cdce7cece785e0e829cd5c2b27baf18bc583cfb7" + dependencies: + arrify "^1.0.1" + minimatch "^3.0.4" + read-pkg-up "^4.0.0" + require-main-filename "^1.0.1" + +text-encoding@^0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/text-encoding/-/text-encoding-0.6.4.tgz#e399a982257a276dae428bb92845cb71bdc26d19" + +text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + +through@^2.3.6, through@~2.3.4, through@~2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + dependencies: + os-tmpdir "~1.0.2" + +to-array@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +touch@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" + dependencies: + nopt "~1.0.10" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + dependencies: + prelude-ls "~1.1.2" + +type-detect@^4.0.0, type-detect@^4.0.5: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + +typeforce@^1.11.3: + version "1.12.0" + resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.12.0.tgz#ca40899919f1466d7819e37be039406beb912a2e" + +uglify-js@^2.6: + version "2.8.29" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" + dependencies: + source-map "~0.5.1" + yargs "~3.10.0" + optionalDependencies: + uglify-to-browserify "~1.0.0" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + +ultron@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" + +union-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^0.4.3" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + +unorm@^1.3.3: + version "1.4.1" + resolved "https://registry.yarnpkg.com/unorm/-/unorm-1.4.1.tgz#364200d5f13646ca8bcd44490271335614792300" + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + +user-home@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + dependencies: + inherits "2.0.1" + +uuid@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + +v8flags@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" + dependencies: + user-home "^1.1.1" + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +varuint-bitcoin@^1.0.1, varuint-bitcoin@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz#7a343f50537607af6a3059312b9782a170894540" + dependencies: + safe-buffer "^5.1.1" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + +which@^1.2.9, which@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + dependencies: + string-width "^1.0.2 || 2" + +wif@^2.0.1, wif@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/wif/-/wif-2.0.6.tgz#08d3f52056c66679299726fade0d432ae74b4704" + dependencies: + bs58check "<3.0.0" + +window-or-global@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/window-or-global/-/window-or-global-1.0.1.tgz#dbe45ba2a291aabc56d62cf66c45b7fa322946de" + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +write-file-atomic@^1.1.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + slide "^1.1.5" + +write-file-atomic@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +write@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + dependencies: + mkdirp "^0.5.1" + +ws@~3.3.1: + version "3.3.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" + dependencies: + async-limiter "~1.0.0" + safe-buffer "~5.1.0" + ultron "~1.1.0" + +xmlhttprequest-ssl@~1.5.4: + version "1.5.5" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" + +xtend@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + +yallist@^3.0.0, yallist@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" + +yargs-parser@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" + dependencies: + camelcase "^4.1.0" + +yargs-parser@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950" + dependencies: + camelcase "^4.1.0" + +yargs-parser@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" + dependencies: + camelcase "^4.1.0" + +yargs@11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" + dependencies: + 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 "^9.0.2" + +yargs@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" + dependencies: + camelcase "^4.1.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + read-pkg-up "^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 "^7.0.0" + +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" + +yeast@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" From 1b13a5256af76e26a8bbf69583a2ee4c33b2557d Mon Sep 17 00:00:00 2001 From: Yuiki <10101661+Yuiki@users.noreply.github.com> Date: Sat, 22 Sep 2018 14:51:09 +0900 Subject: [PATCH 080/480] support p2sh testnet address --- lib/Address.d.ts | 2 +- lib/Address.js | 8 +++++++- src/Address.js | 8 ++++++-- typings/Address.d.ts | 2 +- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/lib/Address.d.ts b/lib/Address.d.ts index 32949c96..ef8c00b8 100644 --- a/lib/Address.d.ts +++ b/lib/Address.d.ts @@ -13,7 +13,7 @@ export declare interface Address { detectAddressNetwork(address: string): string; detectAddressType(address: string): string; fromXPub(xpub: string, path?: string): string; - fromOutputScript(scriptPubKey:string): string; + fromOutputScript(scriptPubKey:string, network?: string): string; details(address: string): Promise; utxo(address: string): Promise; unconfirmed(address: string): Promise; diff --git a/lib/Address.js b/lib/Address.js index 072b2a3e..591f1416 100644 --- a/lib/Address.js +++ b/lib/Address.js @@ -174,7 +174,13 @@ var Address = function () { }, { key: 'fromOutputScript', value: function fromOutputScript(scriptPubKey) { - return _bchaddrjs2.default.toCashAddress(_bitcoincashjsLib2.default.address.fromOutputScript(scriptPubKey)); + var network = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'bitcoincash'; + + var netParam = void 0; + if (network !== 'bitcoincash') { + netParam = _bitcoincashjsLib2.default.networks.testnet; + } + return _bchaddrjs2.default.toCashAddress(_bitcoincashjsLib2.default.address.fromOutputScript(scriptPubKey, netParam)); } }, { key: 'details', diff --git a/src/Address.js b/src/Address.js index 7f803b84..6beceb64 100644 --- a/src/Address.js +++ b/src/Address.js @@ -106,8 +106,12 @@ class Address { return this.toCashAddress(address.getAddress()); } - fromOutputScript(scriptPubKey) { - return bchaddr.toCashAddress(Bitcoin.address.fromOutputScript(scriptPubKey)); + fromOutputScript(scriptPubKey, network = 'bitcoincash') { + let netParam + if (network !== 'bitcoincash') { + netParam = Bitcoin.networks.testnet + } + return bchaddr.toCashAddress(Bitcoin.address.fromOutputScript(scriptPubKey, netParam)); } async details(address) { diff --git a/typings/Address.d.ts b/typings/Address.d.ts index 32949c96..ef8c00b8 100644 --- a/typings/Address.d.ts +++ b/typings/Address.d.ts @@ -13,7 +13,7 @@ export declare interface Address { detectAddressNetwork(address: string): string; detectAddressType(address: string): string; fromXPub(xpub: string, path?: string): string; - fromOutputScript(scriptPubKey:string): string; + fromOutputScript(scriptPubKey:string, network?: string): string; details(address: string): Promise; utxo(address: string): Promise; unconfirmed(address: string): Promise; From 8280be8b37355b894836d8a915e7e0129bca977d Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sun, 23 Sep 2018 11:55:45 +0900 Subject: [PATCH 081/480] Version. --- index.js | 2 +- package-lock.json | 9769 +++++++++++++++++++++++++++++++++++++++++++++ package.json | 2 +- yarn.lock | 4719 ---------------------- 4 files changed, 9771 insertions(+), 4721 deletions(-) create mode 100644 package-lock.json delete mode 100644 yarn.lock diff --git a/index.js b/index.js index 92d8b5fd..12fb0cc7 100755 --- a/index.js +++ b/index.js @@ -18,7 +18,7 @@ let clone = require('git-clone'); let cmd = require('node-cmd'); program - .version('1.6.5', '-v, --version') + .version('1.6.6', '-v, --version') program .command('new ') diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..ca4a7403 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,9769 @@ +{ + "name": "bitbox-cli", + "version": "1.6.6", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz", + "integrity": "sha1-vXHZsZKvl435FYKdOdQJRFZDmgw=", + "requires": { + "@babel/highlight": "7.0.0-beta.51" + } + }, + "@babel/generator": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.51.tgz", + "integrity": "sha1-bHV1/952HQdIXgS67cA5LG2eMPY=", + "requires": { + "@babel/types": "7.0.0-beta.51", + "jsesc": "2.5.1", + "lodash": "4.17.11", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "jsesc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", + "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=" + } + } + }, + "@babel/helper-function-name": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.51.tgz", + "integrity": "sha1-IbSHSiJ8+Z7K/MMKkDAtpaJkBWE=", + "requires": { + "@babel/helper-get-function-arity": "7.0.0-beta.51", + "@babel/template": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.51.tgz", + "integrity": "sha1-MoGy0EWvlcFyzpGyCCXYXqRnZBE=", + "requires": { + "@babel/types": "7.0.0-beta.51" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.51.tgz", + "integrity": "sha1-imw/ZsTSZTUvwHdIT59ugKUauXg=", + "requires": { + "@babel/types": "7.0.0-beta.51" + } + }, + "@babel/highlight": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.51.tgz", + "integrity": "sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0=", + "requires": { + "chalk": "2.4.1", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "@babel/parser": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.0.0-beta.51.tgz", + "integrity": "sha1-J87C30Cd9gr1gnDtj2qlVAnqhvY=" + }, + "@babel/template": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.51.tgz", + "integrity": "sha1-lgKkCuvPNXrpZ34lMu9fyBD1+/8=", + "requires": { + "@babel/code-frame": "7.0.0-beta.51", + "@babel/parser": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51", + "lodash": "4.17.11" + } + }, + "@babel/traverse": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.51.tgz", + "integrity": "sha1-mB2vLOw0emIx06odnhgDsDqqpKg=", + "requires": { + "@babel/code-frame": "7.0.0-beta.51", + "@babel/generator": "7.0.0-beta.51", + "@babel/helper-function-name": "7.0.0-beta.51", + "@babel/helper-split-export-declaration": "7.0.0-beta.51", + "@babel/parser": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51", + "debug": "3.1.0", + "globals": "11.7.0", + "invariant": "2.2.4", + "lodash": "4.17.11" + }, + "dependencies": { + "globals": { + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", + "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==" + } + } + }, + "@babel/types": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.51.tgz", + "integrity": "sha1-2AK3tUO1g2x3iqaReXq/APPZfqk=", + "requires": { + "esutils": "2.0.2", + "lodash": "4.17.11", + "to-fast-properties": "2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } + } + }, + "@sinonjs/formatio": { + "version": "2.0.0", + "resolved": "http://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", + "integrity": "sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg==", + "dev": true, + "requires": { + "samsam": "1.3.0" + } + }, + "@sinonjs/samsam": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-2.1.0.tgz", + "integrity": "sha512-5x2kFgJYupaF1ns/RmharQ90lQkd2ELS8A9X0ymkAAdemYHGtI2KiUHG8nX2WU0T1qgnOU5YMqnBM2V7NUanNw==", + "dev": true, + "requires": { + "array-from": "2.1.1" + } + }, + "@types/node": { + "version": "10.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.10.3.tgz", + "integrity": "sha512-dWk7F3b0m6uDLHero7tsnpAi9r2RGPQHGbb0/VCv7DPJRMFtk3RonY1/29vfJKnheRMBa7+uF+vunlg/mBGlxg==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "requires": { + "mime-types": "2.1.20", + "negotiator": "0.6.1" + } + }, + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==" + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "http://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "requires": { + "acorn": "3.3.0" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "http://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=" + } + } + }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" + }, + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + }, + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=" + }, + "ansi-escapes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", + "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==" + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "optional": true, + "requires": { + "micromatch": "2.3.11", + "normalize-path": "2.1.1" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "1.0.3" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "optional": true, + "requires": { + "arr-flatten": "1.1.0" + } + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-from": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", + "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=", + "dev": true + }, + "array-includes": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", + "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", + "requires": { + "define-properties": "1.1.3", + "es-abstract": "1.12.0" + } + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "requires": { + "array-uniq": "1.0.3" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "optional": true + }, + "arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + }, + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "requires": { + "util": "0.10.3" + } + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "optional": true + }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, + "axios": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", + "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=", + "requires": { + "follow-redirects": "1.5.8", + "is-buffer": "1.1.6" + } + }, + "babel-cli": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", + "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", + "requires": { + "babel-core": "6.26.3", + "babel-polyfill": "6.26.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "chokidar": "1.7.0", + "commander": "2.18.0", + "convert-source-map": "1.6.0", + "fs-readdir-recursive": "1.1.0", + "glob": "7.1.3", + "lodash": "4.17.11", + "output-file-sync": "1.1.2", + "path-is-absolute": "1.0.1", + "slash": "1.0.0", + "source-map": "0.5.7", + "v8flags": "2.1.1" + } + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "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" + } + } + } + }, + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "requires": { + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.1", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.6.0", + "debug": "2.6.9", + "json5": "0.5.1", + "lodash": "4.17.11", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "slash": "1.0.0", + "source-map": "0.5.7" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.11", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "requires": { + "babel-helper-explode-assignable-expression": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-builder-react-jsx": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", + "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "esutils": "2.0.2" + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.11" + } + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "requires": { + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.11" + } + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "requires": { + "babel-helper-optimise-call-expression": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" + }, + "babel-plugin-syntax-flow": { + "version": "6.18.0", + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", + "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=" + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "requires": { + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-functions": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.11" + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "requires": { + "babel-helper-define-map": "6.26.0", + "babel-helper-function-name": "6.24.1", + "babel-helper-optimise-call-expression": "6.24.1", + "babel-helper-replace-supers": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", + "requires": { + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "requires": { + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "requires": { + "babel-helper-replace-supers": "6.24.1", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "requires": { + "babel-helper-call-delegate": "6.24.1", + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "requires": { + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "requires": { + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "regexpu-core": "2.0.0" + } + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "requires": { + "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", + "babel-plugin-syntax-exponentiation-operator": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-flow-strip-types": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", + "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", + "requires": { + "babel-plugin-syntax-flow": "6.18.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-react-display-name": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", + "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-react-jsx": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", + "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", + "requires": { + "babel-helper-builder-react-jsx": "6.26.0", + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-react-jsx-self": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", + "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", + "requires": { + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-react-jsx-source": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", + "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", + "requires": { + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "requires": { + "regenerator-transform": "0.10.1" + } + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-polyfill": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", + "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", + "requires": { + "babel-runtime": "6.26.0", + "core-js": "2.5.7", + "regenerator-runtime": "0.10.5" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" + } + } + }, + "babel-preset-env": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", + "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", + "requires": { + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-async-to-generator": "6.24.1", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-exponentiation-operator": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0", + "browserslist": "3.2.8", + "invariant": "2.2.4", + "semver": "5.5.1" + } + }, + "babel-preset-es2015": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", + "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", + "requires": { + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0" + } + }, + "babel-preset-flow": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", + "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", + "requires": { + "babel-plugin-transform-flow-strip-types": "6.22.0" + } + }, + "babel-preset-react": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", + "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", + "requires": { + "babel-plugin-syntax-jsx": "6.18.0", + "babel-plugin-transform-react-display-name": "6.25.0", + "babel-plugin-transform-react-jsx": "6.24.1", + "babel-plugin-transform-react-jsx-self": "6.22.0", + "babel-plugin-transform-react-jsx-source": "6.22.0", + "babel-preset-flow": "6.23.0" + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "requires": { + "babel-core": "6.26.3", + "babel-runtime": "6.26.0", + "core-js": "2.5.7", + "home-or-tmp": "2.0.0", + "lodash": "4.17.11", + "mkdirp": "0.5.1", + "source-map-support": "0.4.18" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "requires": { + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.11" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.4", + "lodash": "4.17.11" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.11", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "base-x": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.4.tgz", + "integrity": "sha512-UYOadoSIkEI/VrRGSG6qp93rp2WdokiAiNYDfGW5qURAY8GiAQkvMbwNNSDYiVJopqv4gCna7xqf4rrNGp+5AA==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" + }, + "base64-js": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" + }, + "base64id": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=" + }, + "bchaddrjs": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.2.tgz", + "integrity": "sha512-W06sUpprptb65JHbu2yFdv8Tg7o2OWpD5n2pMUIhuLOXC5c64eMW7y9Pg0IHd/Qe31e1KwnHT9H1w6Pf9r4Fkg==", + "requires": { + "bs58check": "2.1.2", + "cashaddrjs": "0.2.9" + } + }, + "bech32": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.3.tgz", + "integrity": "sha512-yuVFUvrNcoJi0sv5phmqc6P+Fl1HjRDRNOOkHY2X/3LBy2bIGNSFx4fZ95HMaXHupuS7cZR15AsvtmCIF4UEyg==" + }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "requires": { + "callsite": "1.0.0" + } + }, + "big-integer": { + "version": "1.6.36", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", + "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==" + }, + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" + }, + "bigi": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz", + "integrity": "sha1-nGZalfiLiwj8Bc/XMfVhhZ1yWCU=" + }, + "binary-extensions": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", + "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==", + "optional": true + }, + "bindings": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz", + "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==" + }, + "bip21": { + "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", + "requires": { + "qs": "6.5.2" + } + }, + "bip32-utils": { + "version": "github:Bitcoin-com/bip32-utils#318df796443311f7e12217542f7f45d3b7791f10", + "requires": { + "bitbox-cli": "1.5.12", + "keccak": "1.4.0", + "nyc": "13.0.1", + "standard": "11.0.1", + "tape": "4.9.1" + }, + "dependencies": { + "nyc": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-13.0.1.tgz", + "integrity": "sha512-Op/bjhEF74IMtzMmgYt+ModTeMHoPZzHe4qseUguPBwg5qC6r4rYMBt1L3yRXQIbjUpEqmn24/1xAC/umQGU7w==", + "requires": { + "archy": "1.0.0", + "arrify": "1.0.1", + "caching-transform": "2.0.0", + "convert-source-map": "1.5.1", + "debug-log": "1.0.1", + "find-cache-dir": "2.0.0", + "find-up": "3.0.0", + "foreground-child": "1.5.6", + "glob": "7.1.2", + "istanbul-lib-coverage": "2.0.1", + "istanbul-lib-hook": "2.0.1", + "istanbul-lib-instrument": "2.3.2", + "istanbul-lib-report": "2.0.1", + "istanbul-lib-source-maps": "2.0.1", + "istanbul-reports": "2.0.0", + "make-dir": "1.3.0", + "merge-source-map": "1.1.0", + "resolve-from": "4.0.0", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "spawn-wrap": "1.4.2", + "test-exclude": "5.0.0", + "uuid": "3.3.2", + "yargs": "11.1.0", + "yargs-parser": "9.0.2" + }, + "dependencies": { + "align-text": { + "version": "0.1.4", + "bundled": true, + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } + }, + "amdefine": { + "version": "1.0.1", + "bundled": true + }, + "ansi-regex": { + "version": "3.0.0", + "bundled": true + }, + "append-transform": { + "version": "1.0.0", + "bundled": true, + "requires": { + "default-require-extensions": "2.0.0" + } + }, + "archy": { + "version": "1.0.0", + "bundled": true + }, + "arrify": { + "version": "1.0.1", + "bundled": true + }, + "async": { + "version": "1.5.2", + "bundled": true + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "builtin-modules": { + "version": "1.1.1", + "bundled": true + }, + "caching-transform": { + "version": "2.0.0", + "bundled": true, + "requires": { + "make-dir": "1.3.0", + "md5-hex": "2.0.0", + "package-hash": "2.0.0", + "write-file-atomic": "2.3.0" + } + }, + "camelcase": { + "version": "1.2.1", + "bundled": true, + "optional": true + }, + "center-align": { + "version": "0.1.3", + "bundled": true, + "optional": true, + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + } + }, + "cliui": { + "version": "2.1.0", + "bundled": true, + "optional": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "bundled": true, + "optional": true + } + } + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "commondir": { + "version": "1.0.1", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "convert-source-map": { + "version": "1.5.1", + "bundled": true + }, + "cross-spawn": { + "version": "4.0.2", + "bundled": true, + "requires": { + "lru-cache": "4.1.3", + "which": "1.3.1" + } + }, + "debug": { + "version": "3.1.0", + "bundled": true, + "requires": { + "ms": "2.0.0" + } + }, + "debug-log": { + "version": "1.0.1", + "bundled": true + }, + "decamelize": { + "version": "1.2.0", + "bundled": true + }, + "default-require-extensions": { + "version": "2.0.0", + "bundled": true, + "requires": { + "strip-bom": "3.0.0" + } + }, + "error-ex": { + "version": "1.3.2", + "bundled": true, + "requires": { + "is-arrayish": "0.2.1" + } + }, + "es6-error": { + "version": "4.1.1", + "bundled": true + }, + "execa": { + "version": "0.7.0", + "bundled": 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" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "bundled": true, + "requires": { + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.1" + } + } + } + }, + "find-cache-dir": { + "version": "2.0.0", + "bundled": true, + "requires": { + "commondir": "1.0.1", + "make-dir": "1.3.0", + "pkg-dir": "3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "bundled": true, + "requires": { + "locate-path": "3.0.0" + } + }, + "foreground-child": { + "version": "1.5.6", + "bundled": true, + "requires": { + "cross-spawn": "4.0.2", + "signal-exit": "3.0.2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "get-caller-file": { + "version": "1.0.3", + "bundled": true + }, + "get-stream": { + "version": "3.0.0", + "bundled": true + }, + "glob": { + "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" + } + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true + }, + "handlebars": { + "version": "4.0.11", + "bundled": true, + "requires": { + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "bundled": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "has-flag": { + "version": "3.0.0", + "bundled": true + }, + "hosted-git-info": { + "version": "2.7.1", + "bundled": true + }, + "imurmurhash": { + "version": "0.1.4", + "bundled": true + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "invert-kv": { + "version": "1.0.0", + "bundled": true + }, + "is-arrayish": { + "version": "0.2.1", + "bundled": true + }, + "is-buffer": { + "version": "1.1.6", + "bundled": true + }, + "is-builtin-module": { + "version": "1.0.0", + "bundled": true, + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true + }, + "is-stream": { + "version": "1.1.0", + "bundled": true + }, + "isexe": { + "version": "2.0.0", + "bundled": true + }, + "istanbul-lib-coverage": { + "version": "2.0.1", + "bundled": true + }, + "istanbul-lib-hook": { + "version": "2.0.1", + "bundled": true, + "requires": { + "append-transform": "1.0.0" + } + }, + "istanbul-lib-report": { + "version": "2.0.1", + "bundled": true, + "requires": { + "istanbul-lib-coverage": "2.0.1", + "make-dir": "1.3.0", + "supports-color": "5.4.0" + } + }, + "istanbul-lib-source-maps": { + "version": "2.0.1", + "bundled": true, + "requires": { + "debug": "3.1.0", + "istanbul-lib-coverage": "2.0.1", + "make-dir": "1.3.0", + "rimraf": "2.6.2", + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "bundled": true + } + } + }, + "istanbul-reports": { + "version": "2.0.0", + "bundled": true, + "requires": { + "handlebars": "4.0.11" + } + }, + "json-parse-better-errors": { + "version": "1.0.2", + "bundled": true + }, + "kind-of": { + "version": "3.2.2", + "bundled": true, + "requires": { + "is-buffer": "1.1.6" + } + }, + "lazy-cache": { + "version": "1.0.4", + "bundled": true, + "optional": true + }, + "lcid": { + "version": "1.0.0", + "bundled": true, + "requires": { + "invert-kv": "1.0.0" + } + }, + "load-json-file": { + "version": "4.0.0", + "bundled": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "bundled": true, + "requires": { + "p-locate": "3.0.0", + "path-exists": "3.0.0" + } + }, + "lodash.flattendeep": { + "version": "4.4.0", + "bundled": true + }, + "longest": { + "version": "1.0.1", + "bundled": true + }, + "lru-cache": { + "version": "4.1.3", + "bundled": true, + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "bundled": true, + "requires": { + "pify": "3.0.0" + } + }, + "md5-hex": { + "version": "2.0.0", + "bundled": true, + "requires": { + "md5-o-matic": "0.1.1" + } + }, + "md5-o-matic": { + "version": "0.1.1", + "bundled": true + }, + "mem": { + "version": "1.1.0", + "bundled": true, + "requires": { + "mimic-fn": "1.2.0" + } + }, + "merge-source-map": { + "version": "1.1.0", + "bundled": true, + "requires": { + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "bundled": true + } + } + }, + "mimic-fn": { + "version": "1.2.0", + "bundled": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimist": { + "version": "0.0.10", + "bundled": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "bundled": true + } + } + }, + "ms": { + "version": "2.0.0", + "bundled": true + }, + "normalize-package-data": { + "version": "2.4.0", + "bundled": true, + "requires": { + "hosted-git-info": "2.7.1", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" + } + }, + "npm-run-path": { + "version": "2.0.2", + "bundled": true, + "requires": { + "path-key": "2.0.1" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optimist": { + "version": "0.6.1", + "bundled": true, + "requires": { + "minimist": "0.0.10", + "wordwrap": "0.0.3" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true + }, + "os-locale": { + "version": "2.1.0", + "bundled": true, + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } + }, + "p-finally": { + "version": "1.0.0", + "bundled": true + }, + "p-limit": { + "version": "2.0.0", + "bundled": true, + "requires": { + "p-try": "2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "bundled": true, + "requires": { + "p-limit": "2.0.0" + } + }, + "p-try": { + "version": "2.0.0", + "bundled": true + }, + "package-hash": { + "version": "2.0.0", + "bundled": true, + "requires": { + "graceful-fs": "4.1.11", + "lodash.flattendeep": "4.4.0", + "md5-hex": "2.0.0", + "release-zalgo": "1.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "bundled": true, + "requires": { + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" + } + }, + "path-exists": { + "version": "3.0.0", + "bundled": true + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true + }, + "path-key": { + "version": "2.0.1", + "bundled": true + }, + "path-type": { + "version": "3.0.0", + "bundled": true, + "requires": { + "pify": "3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "bundled": true + }, + "pkg-dir": { + "version": "3.0.0", + "bundled": true, + "requires": { + "find-up": "3.0.0" + } + }, + "pseudomap": { + "version": "1.0.2", + "bundled": true + }, + "read-pkg": { + "version": "3.0.0", + "bundled": true, + "requires": { + "load-json-file": "4.0.0", + "normalize-package-data": "2.4.0", + "path-type": "3.0.0" + } + }, + "read-pkg-up": { + "version": "4.0.0", + "bundled": true, + "requires": { + "find-up": "3.0.0", + "read-pkg": "3.0.0" + } + }, + "release-zalgo": { + "version": "1.0.0", + "bundled": true, + "requires": { + "es6-error": "4.1.1" + } + }, + "repeat-string": { + "version": "1.6.1", + "bundled": true + }, + "require-directory": { + "version": "2.1.1", + "bundled": true + }, + "require-main-filename": { + "version": "1.0.1", + "bundled": true + }, + "resolve-from": { + "version": "4.0.0", + "bundled": true + }, + "right-align": { + "version": "0.1.3", + "bundled": true, + "optional": true, + "requires": { + "align-text": "0.1.4" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "requires": { + "glob": "7.1.2" + } + }, + "semver": { + "version": "5.5.0", + "bundled": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true + }, + "shebang-command": { + "version": "1.2.0", + "bundled": true, + "requires": { + "shebang-regex": "1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "bundled": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true + }, + "source-map": { + "version": "0.5.7", + "bundled": true, + "optional": true + }, + "spawn-wrap": { + "version": "1.4.2", + "bundled": true, + "requires": { + "foreground-child": "1.5.6", + "mkdirp": "0.5.1", + "os-homedir": "1.0.2", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "which": "1.3.1" + } + }, + "spdx-correct": { + "version": "3.0.0", + "bundled": true, + "requires": { + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "bundled": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "bundled": true, + "requires": { + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.0", + "bundled": true + }, + "string-width": { + "version": "2.1.1", + "bundled": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "bundled": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "bundled": true + }, + "strip-eof": { + "version": "1.0.0", + "bundled": true + }, + "supports-color": { + "version": "5.4.0", + "bundled": true, + "requires": { + "has-flag": "3.0.0" + } + }, + "test-exclude": { + "version": "5.0.0", + "bundled": true, + "requires": { + "arrify": "1.0.1", + "minimatch": "3.0.4", + "read-pkg-up": "4.0.0", + "require-main-filename": "1.0.1" + } + }, + "uglify-js": { + "version": "2.8.29", + "bundled": true, + "optional": true, + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "yargs": { + "version": "3.10.0", + "bundled": true, + "optional": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "uuid": { + "version": "3.3.2", + "bundled": true + }, + "validate-npm-package-license": { + "version": "3.0.3", + "bundled": true, + "requires": { + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" + } + }, + "which": { + "version": "1.3.1", + "bundled": true, + "requires": { + "isexe": "2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "bundled": true + }, + "window-size": { + "version": "0.1.0", + "bundled": true, + "optional": true + }, + "wordwrap": { + "version": "0.0.3", + "bundled": true + }, + "wrap-ansi": { + "version": "2.1.0", + "bundled": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "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" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "2.1.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + }, + "write-file-atomic": { + "version": "2.3.0", + "bundled": true, + "requires": { + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "signal-exit": "3.0.2" + } + }, + "y18n": { + "version": "3.2.1", + "bundled": true + }, + "yallist": { + "version": "2.1.2", + "bundled": true + }, + "yargs": { + "version": "11.1.0", + "bundled": true, + "requires": { + "cliui": "4.1.0", + "decamelize": "1.2.0", + "find-up": "2.1.0", + "get-caller-file": "1.0.3", + "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": "9.0.2" + }, + "dependencies": { + "cliui": { + "version": "4.1.0", + "bundled": true, + "requires": { + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" + } + }, + "find-up": { + "version": "2.1.0", + "bundled": true, + "requires": { + "locate-path": "2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "bundled": true, + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "bundled": true, + "requires": { + "p-try": "1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "bundled": true, + "requires": { + "p-limit": "1.3.0" + } + }, + "p-try": { + "version": "1.0.0", + "bundled": true + } + } + }, + "yargs-parser": { + "version": "9.0.2", + "bundled": true, + "requires": { + "camelcase": "4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "bundled": true + } + } + } + } + } + } + }, + "bip38": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", + "integrity": "sha512-22KDak0RDyghFbR0Si7wyq9IgY423YzGYzWLpGeofH3DaolOQqjD3mNN08eFoubKlbyclOQKFwtONMv2SD9V3A==", + "requires": { + "bigi": "1.4.2", + "browserify-aes": "1.2.0", + "bs58check": "2.1.2", + "buffer-xor": "1.0.3", + "create-hash": "1.2.0", + "ecurve": "1.0.6", + "scryptsy": "2.0.0" + } + }, + "bip39": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", + "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", + "requires": { + "create-hash": "1.2.0", + "pbkdf2": "3.0.16", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2", + "unorm": "1.4.1" + } + }, + "bip66": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", + "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "bip68": { + "version": "github:Bitcoin-com/bip68#aeac5a8c5c1e01dfba79ff3eb824171be004a28c" + }, + "bitbox-cli": { + "version": "1.5.12", + "resolved": "https://registry.npmjs.org/bitbox-cli/-/bitbox-cli-1.5.12.tgz", + "integrity": "sha512-SQk02foLnSEi8ZkJFTFLZXEEW/3ribb/YNaF2L/qZ1wtWOcB2uei4v/rmb31TJOseH6MvfZ5Ygl6HzcyCTpYHg==", + "requires": { + "assert": "1.4.1", + "axios": "0.17.1", + "babel-cli": "6.26.0", + "babel-preset-env": "1.7.0", + "babel-preset-es2015": "6.24.1", + "babel-preset-flow": "6.23.0", + "babel-preset-react": "6.24.1", + "babel-register": "6.26.0", + "bchaddrjs": "0.2.2", + "bigi": "1.4.2", + "bip21": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", + "bip32-utils": "github:Bitcoin-com/bip32-utils#318df796443311f7e12217542f7f45d3b7791f10", + "bip38": "2.0.2", + "bip39": "2.5.0", + "bip66": "1.1.5", + "bip68": "github:Bitcoin-com/bip68#aeac5a8c5c1e01dfba79ff3eb824171be004a28c", + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", + "bitcoin-txdecoder": "0.0.3", + "bitcoincashjs-lib": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", + "bitcoinjs-message": "2.0.0", + "bs58": "4.0.1", + "buffer": "5.2.1", + "chalk": "2.4.1", + "clear": "0.0.1", + "coininfo": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", + "commander": "2.18.0", + "cp-file": "5.0.0", + "ecurve": "1.0.6", + "figlet": "1.2.0", + "git-clone": "0.1.0", + "ini": "1.3.5", + "mkdirp": "0.5.1", + "mocha": "5.2.0", + "node-cmd": "3.0.0", + "node-emoji": "1.8.1", + "qrcode": "1.2.2", + "randombytes": "2.0.6", + "repl.history": "0.1.4", + "safe-buffer": "5.1.2", + "satoshi-bitcoin": "1.0.4", + "socket.io": "2.1.1", + "socket.io-client": "2.1.1", + "touch": "3.1.0", + "wif": "2.0.6" + } + }, + "bitcoin-ops": { + "version": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" + }, + "bitcoin-txdecoder": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/bitcoin-txdecoder/-/bitcoin-txdecoder-0.0.3.tgz", + "integrity": "sha512-pH/eF5hQ65y54U23mzuF42wEj9YWj4WKHAIj2il6b1+oRoi/oyM4Ti3e8nMD8ajippICmyquqbyCZKGq3i4W+A==", + "requires": { + "bitcoinjs-lib": "3.3.2" + } + }, + "bitcoincashjs-lib": { + "version": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", + "requires": { + "bech32": "1.1.3", + "bigi": "1.4.2", + "bip66": "1.1.5", + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", + "bs58check": "2.1.2", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ecurve": "1.0.6", + "merkle-lib": "2.0.10", + "pushdata-bitcoin": "1.0.1", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2", + "typeforce": "1.12.0", + "varuint-bitcoin": "1.1.0", + "wif": "2.0.6" + } + }, + "bitcoinjs-lib": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-3.3.2.tgz", + "integrity": "sha512-l5qqvbaK8wwtANPf6oEffykycg4383XgEYdia1rI7/JpGf1jfRWlOUCvx5TiTZS7kyIvY4j/UhIQ2urLsvGkzw==", + "requires": { + "bech32": "1.1.3", + "bigi": "1.4.2", + "bip66": "1.1.5", + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", + "bs58check": "2.1.2", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ecurve": "1.0.6", + "merkle-lib": "2.0.10", + "pushdata-bitcoin": "1.0.1", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2", + "typeforce": "1.12.0", + "varuint-bitcoin": "1.1.0", + "wif": "2.0.6" + } + }, + "bitcoinjs-message": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", + "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", + "requires": { + "bs58check": "2.1.2", + "buffer-equals": "1.0.4", + "create-hash": "1.2.0", + "secp256k1": "3.5.2", + "varuint-bitcoin": "1.1.0" + } + }, + "blob": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", + "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=" + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "optional": true, + "requires": { + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.3" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "1.0.3", + "cipher-base": "1.0.4", + "create-hash": "1.2.0", + "evp_bytestokey": "1.0.3", + "inherits": "2.0.1", + "safe-buffer": "5.1.2" + } + }, + "browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "requires": { + "caniuse-lite": "1.0.30000886", + "electron-to-chromium": "1.3.70" + } + }, + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "requires": { + "base-x": "3.0.4" + } + }, + "bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "requires": { + "bs58": "4.0.1", + "create-hash": "1.2.0", + "safe-buffer": "5.1.2" + } + }, + "buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", + "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", + "requires": { + "base64-js": "1.3.0", + "ieee754": "1.1.12" + } + }, + "buffer-equals": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/buffer-equals/-/buffer-equals-1.0.4.tgz", + "integrity": "sha1-A1O1T9B/2VZBcGca5vZrnPENJ/U=" + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "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" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "requires": { + "callsites": "0.2.0" + } + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=" + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + }, + "can-promise": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/can-promise/-/can-promise-0.0.1.tgz", + "integrity": "sha512-gzVrHyyrvgt0YpDm7pn04MQt8gjh0ZAhN4ZDyCRtGl6YnuuK6b4aiUTD7G52r9l4YNmxfTtEscb92vxtAlL6XQ==", + "requires": { + "window-or-global": "1.0.1" + } + }, + "caniuse-lite": { + "version": "1.0.30000886", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000886.tgz", + "integrity": "sha512-xpYuY7rqc5+4q1n/l1BfSgIndaNqvXWKZ0Vk0ZXzVncCAkn0+huvIIPwcSL5YRJoW4MSRsgyNbjnKuh45GmknA==" + }, + "cashaddrjs": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.2.9.tgz", + "integrity": "sha512-DhJF4iAH0/RM3UjHDHKRxzs09YGL9px+oTyizzydanhC7jTyM2aJ+aLKA96vZGTTWayvvr2iDF2l13lpqXiRFg==", + "requires": { + "big-integer": "1.6.36" + } + }, + "chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", + "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", + "dev": true, + "requires": { + "assertion-error": "1.1.0", + "check-error": "1.0.2", + "deep-eql": "3.0.1", + "get-func-name": "2.0.0", + "pathval": "1.1.0", + "type-detect": "4.0.8" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "1.9.3" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "3.0.0" + } + } + } + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=" + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "optional": true, + "requires": { + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.2.4", + "glob-parent": "2.0.0", + "inherits": "2.0.1", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.2.1" + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "2.0.1", + "safe-buffer": "5.1.2" + } + }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==" + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "clear": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clear/-/clear-0.0.1.tgz", + "integrity": "sha1-5RhuIp2ZRIF5wTAxG2+dML/2sLo=" + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "requires": { + "restore-cursor": "2.0.0" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "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" + } + } + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "coininfo": { + "version": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "commander": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.18.0.tgz", + "integrity": "sha512-6CYPa+JP2ftfRU2qkDK+UTVeQYosOg/2GbcjIcKPHfinyOLPVGXu/ovN86RP49Re5ndJK1N0kuiidFFuepc4ZQ==" + }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "typedarray": "0.0.6" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=" + }, + "convert-source-map": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "core-js": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cp-file": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-5.0.0.tgz", + "integrity": "sha1-vHAP0wyjLSTUbH+wK5kuQ1/FqXg=", + "requires": { + "graceful-fs": "4.1.11", + "make-dir": "1.3.0", + "nested-error-stacks": "2.1.0", + "pify": "3.0.0", + "safe-buffer": "5.1.2" + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "1.0.4", + "inherits": "2.0.1", + "md5.js": "1.3.4", + "ripemd160": "2.0.2", + "sha.js": "2.4.11" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "1.0.4", + "create-hash": "1.2.0", + "inherits": "2.0.1", + "ripemd160": "2.0.2", + "safe-buffer": "5.1.2", + "sha.js": "2.4.11" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.1" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "debug-log": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", + "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=" + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" + }, + "deglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.1.tgz", + "integrity": "sha512-2kjwuGGonL7gWE1XU4Fv79+vVzpoQCl0V+boMwWtOQJV2AGDabCwez++nB1Nli/8BabAfZQ/UuHPlp6AymKdWw==", + "requires": { + "find-root": "1.1.0", + "glob": "7.1.3", + "ignore": "3.3.10", + "pkg-config": "1.1.1", + "run-parallel": "1.1.9", + "uniq": "1.0.1" + } + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "requires": { + "globby": "5.0.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.1", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "rimraf": "2.6.2" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "requires": { + "repeating": "2.0.1" + } + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" + }, + "dijkstrajs": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.1.tgz", + "integrity": "sha1-082BIh4+pAdCz83lVtTpnpjdxxs=" + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "requires": { + "esutils": "2.0.2" + } + }, + "drbg.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", + "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", + "requires": { + "browserify-aes": "1.2.0", + "create-hash": "1.2.0", + "create-hmac": "1.1.7" + } + }, + "ecurve": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/ecurve/-/ecurve-1.0.6.tgz", + "integrity": "sha512-/BzEjNfiSuB7jIWKcS/z8FK9jNjmEWvUV2YZ4RLSmcDtP7Lq0m6FvDuSnJpBlDpGRpfRQeTLGLBI8H+kEv0r+w==", + "requires": { + "bigi": "1.4.2", + "safe-buffer": "5.1.2" + } + }, + "electron-to-chromium": { + "version": "1.3.70", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.70.tgz", + "integrity": "sha512-WYMjqCnPVS5JA+XvwEnpwucJpVi2+q9cdCFpbhxgWGsCtforFBEkuP9+nCyy/wnU/0SyLcLRIeZct9ayMGcXoQ==" + }, + "elliptic": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", + "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", + "requires": { + "bn.js": "4.11.8", + "brorand": "1.1.0", + "hash.js": "1.1.5", + "hmac-drbg": "1.0.1", + "inherits": "2.0.1", + "minimalistic-assert": "1.0.1", + "minimalistic-crypto-utils": "1.0.1" + } + }, + "engine.io": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.0.tgz", + "integrity": "sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==", + "requires": { + "accepts": "1.3.5", + "base64id": "1.0.0", + "cookie": "0.3.1", + "debug": "3.1.0", + "engine.io-parser": "2.1.2", + "ws": "3.3.3" + } + }, + "engine.io-client": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", + "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "3.1.0", + "engine.io-parser": "2.1.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "3.3.3", + "xmlhttprequest-ssl": "1.5.5", + "yeast": "0.1.2" + } + }, + "engine.io-parser": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.2.tgz", + "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==", + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.4", + "has-binary2": "1.0.3" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "0.2.1" + } + }, + "es-abstract": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", + "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", + "requires": { + "es-to-primitive": "1.1.1", + "function-bind": "1.1.1", + "has": "1.0.3", + "is-callable": "1.1.4", + "is-regex": "1.0.4" + } + }, + "es-to-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", + "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", + "requires": { + "is-callable": "1.1.4", + "is-date-object": "1.0.1", + "is-symbol": "1.0.2" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "eslint": { + "version": "4.18.2", + "resolved": "http://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", + "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", + "requires": { + "ajv": "5.5.2", + "babel-code-frame": "6.26.0", + "chalk": "2.4.1", + "concat-stream": "1.6.2", + "cross-spawn": "5.1.0", + "debug": "3.1.0", + "doctrine": "2.1.0", + "eslint-scope": "3.7.3", + "eslint-visitor-keys": "1.0.0", + "espree": "3.5.4", + "esquery": "1.0.1", + "esutils": "2.0.2", + "file-entry-cache": "2.0.0", + "functional-red-black-tree": "1.0.1", + "glob": "7.1.3", + "globals": "11.7.0", + "ignore": "3.3.10", + "imurmurhash": "0.1.4", + "inquirer": "3.3.0", + "is-resolvable": "1.1.0", + "js-yaml": "3.12.0", + "json-stable-stringify-without-jsonify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.11", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "7.0.0", + "progress": "2.0.0", + "require-uncached": "1.0.3", + "semver": "5.5.1", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", + "table": "4.0.2", + "text-table": "0.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "globals": { + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", + "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "3.0.0" + } + } + } + }, + "eslint-config-standard": { + "version": "11.0.0", + "resolved": "http://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-11.0.0.tgz", + "integrity": "sha512-oDdENzpViEe5fwuRCWla7AXQd++/oyIp8zP+iP9jiUPG6NBj3SHgdgtl/kTn00AjeN+1HNvavTKmYbMo+xMOlw==" + }, + "eslint-config-standard-jsx": { + "version": "5.0.0", + "resolved": "http://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-5.0.0.tgz", + "integrity": "sha512-rLToPAEqLMPBfWnYTu6xRhm2OWziS2n40QFqJ8jAM8NSVzeVKTa3nclhsU4DpPJQRY60F34Oo1wi/71PN/eITg==" + }, + "eslint-import-resolver-node": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", + "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", + "requires": { + "debug": "2.6.9", + "resolve": "1.8.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "eslint-module-utils": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", + "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", + "requires": { + "debug": "2.6.9", + "pkg-dir": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "eslint-plugin-import": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz", + "integrity": "sha1-JgAu+/ylmJtyiKwEdQi9JPIXsWk=", + "requires": { + "builtin-modules": "1.1.1", + "contains-path": "0.1.0", + "debug": "2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "0.3.2", + "eslint-module-utils": "2.2.0", + "has": "1.0.3", + "lodash": "4.17.11", + "minimatch": "3.0.4", + "read-pkg-up": "2.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "requires": { + "esutils": "2.0.2", + "isarray": "1.0.0" + } + } + } + }, + "eslint-plugin-node": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz", + "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", + "requires": { + "ignore": "3.3.10", + "minimatch": "3.0.4", + "resolve": "1.8.1", + "semver": "5.5.1" + } + }, + "eslint-plugin-promise": { + "version": "3.7.0", + "resolved": "http://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.7.0.tgz", + "integrity": "sha512-2WO+ZFh7vxUKRfR0cOIMrWgYKdR6S1AlOezw6pC52B6oYpd5WFghN+QHxvrRdZMtbo8h3dfUZ2o1rWb0UPbKtg==" + }, + "eslint-plugin-react": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz", + "integrity": "sha512-KC7Snr4YsWZD5flu6A5c0AcIZidzW3Exbqp7OT67OaD2AppJtlBr/GuPrW/vaQM/yfZotEvKAdrxrO+v8vwYJA==", + "requires": { + "doctrine": "2.1.0", + "has": "1.0.3", + "jsx-ast-utils": "2.0.1", + "prop-types": "15.6.2" + } + }, + "eslint-plugin-standard": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz", + "integrity": "sha1-NNDJFbRe3G8BA5PH7vOCOwhWXPI=" + }, + "eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", + "requires": { + "esrecurse": "4.2.1", + "estraverse": "4.2.0" + } + }, + "eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==" + }, + "espree": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "requires": { + "acorn": "5.7.3", + "acorn-jsx": "3.0.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esquery": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "requires": { + "estraverse": "4.2.0" + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "requires": { + "estraverse": "4.2.0" + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "1.3.4", + "safe-buffer": "5.1.2" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "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" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "optional": true, + "requires": { + "is-posix-bracket": "0.1.1" + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "optional": true, + "requires": { + "fill-range": "2.2.4" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "requires": { + "chardet": "0.4.2", + "iconv-lite": "0.4.24", + "tmp": "0.0.33" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "optional": true, + "requires": { + "is-extglob": "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=" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "figlet": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.2.0.tgz", + "integrity": "sha1-bEZTc3j6tkkUa1phQ92gGbQwtBA=" + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "requires": { + "escape-string-regexp": "1.0.5" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "requires": { + "flat-cache": "1.3.0", + "object-assign": "4.1.1" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "optional": true + }, + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "optional": true, + "requires": { + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "3.1.0", + "repeat-element": "1.1.3", + "repeat-string": "1.6.1" + } + }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "2.0.0" + } + }, + "flat-cache": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", + "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", + "requires": { + "circular-json": "0.3.3", + "del": "2.2.2", + "graceful-fs": "4.1.11", + "write": "0.2.1" + } + }, + "flow-bin": { + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.64.0.tgz", + "integrity": "sha1-3dP7Oxg6sas1pdXeycr167ze0Wc=", + "dev": true + }, + "follow-redirects": { + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.8.tgz", + "integrity": "sha512-sy1mXPmv7kLAMKW/8XofG7o9T+6gAjzdZK4AJF6ryqQYUa/hnzgiypoeUecZ53x7XiqKNEpNqLtS97MshW2nxg==", + "requires": { + "debug": "3.1.0" + } + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "requires": { + "is-callable": "1.1.4" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "optional": true, + "requires": { + "for-in": "1.0.2" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "0.2.2" + } + }, + "fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "optional": true, + "requires": { + "nan": "2.11.0", + "node-pre-gyp": "0.10.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "optional": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.3.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.1", + "bundled": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "optional": true, + "requires": { + "minipass": "2.2.4" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": 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" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "optional": 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" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "optional": true, + "requires": { + "safer-buffer": "2.1.2" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "optional": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "optional": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "requires": { + "safe-buffer": "5.1.1", + "yallist": "3.0.2" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "optional": true, + "requires": { + "minipass": "2.2.4" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "2.6.9", + "iconv-lite": "0.4.21", + "sax": "1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.0", + "bundled": true, + "optional": true, + "requires": { + "detect-libc": "1.0.3", + "mkdirp": "0.5.1", + "needle": "2.2.0", + "nopt": "4.0.1", + "npm-packlist": "1.1.10", + "npmlog": "4.1.2", + "rc": "1.2.7", + "rimraf": "2.6.2", + "semver": "5.5.0", + "tar": "4.4.1" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1.1.1", + "osenv": "0.1.5" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "optional": true, + "requires": { + "ignore-walk": "3.0.1", + "npm-bundled": "1.0.3" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": 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" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.7", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "0.5.1", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "optional": true, + "requires": { + "core-util-is": "1.0.2", + "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.2" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "optional": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "optional": true + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "string-width": { + "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" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "optional": true, + "requires": { + "chownr": "1.0.1", + "fs-minipass": "1.2.5", + "minipass": "2.2.4", + "minizlib": "1.1.0", + "mkdirp": "0.5.1", + "safe-buffer": "5.1.1", + "yallist": "3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true + } + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true + }, + "get-stdin": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", + "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==" + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "git-clone": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/git-clone/-/git-clone-0.1.0.tgz", + "integrity": "sha1-DXYWN3gJOu9/HDAjjyqe8/B6Lrk=" + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.1", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "optional": true, + "requires": { + "glob-parent": "2.0.0", + "is-glob": "2.0.1" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "requires": { + "is-glob": "2.0.1" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "requires": { + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "7.1.3", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==" + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "requires": { + "isarray": "2.0.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" + } + } + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "requires": { + "inherits": "2.0.1", + "safe-buffer": "5.1.2" + } + }, + "hash.js": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", + "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=" + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "1.1.5", + "minimalistic-assert": "1.0.1", + "minimalistic-crypto-utils": "1.0.1" + } + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "hosted-git-info": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": "2.1.2" + } + }, + "ieee754": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", + "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==" + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "requires": { + "ansi-escapes": "3.1.0", + "chalk": "2.4.1", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.2.0", + "figures": "2.0.0", + "lodash": "4.17.11", + "mute-stream": "0.0.7", + "run-async": "2.3.0", + "rx-lite": "4.0.8", + "rx-lite-aggregates": "4.0.8", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "3.0.0" + } + } + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "1.4.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "optional": true, + "requires": { + "binary-extensions": "1.12.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + } + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "optional": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "optional": true, + "requires": { + "is-primitive": "2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "1.0.0" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "optional": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=" + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "requires": { + "is-path-inside": "1.0.1" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "requires": { + "path-is-inside": "1.0.2" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "optional": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "optional": true + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "requires": { + "has": "1.0.3" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "requires": { + "has-symbols": "1.0.0" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "optional": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "optional": true, + "requires": { + "isarray": "1.0.0" + } + }, + "istanbul-lib-coverage": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", + "integrity": "sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA==" + }, + "istanbul-lib-instrument": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-2.3.2.tgz", + "integrity": "sha512-l7TD/VnBsIB2OJvSyxaLW/ab1+92dxZNH9wLH7uHPPioy3JZ8tnx2UXUdKmdkgmP2EFPzg64CToUP6dAS3U32Q==", + "requires": { + "@babel/generator": "7.0.0-beta.51", + "@babel/parser": "7.0.0-beta.51", + "@babel/template": "7.0.0-beta.51", + "@babel/traverse": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51", + "istanbul-lib-coverage": "2.0.1", + "semver": "5.5.1" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + }, + "js-yaml": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", + "requires": { + "argparse": "1.0.10", + "esprima": "4.0.1" + } + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + }, + "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-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + }, + "jsx-ast-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", + "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", + "requires": { + "array-includes": "3.0.3" + } + }, + "just-extend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-3.0.0.tgz", + "integrity": "sha512-Fu3T6pKBuxjWT/p4DkqGHFRsysc8OauWr4ZRTY9dIx07Y9O0RkoR5jcv28aeD1vuAwhm3nLkDurwLXoALp4DpQ==", + "dev": true + }, + "keccak": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", + "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", + "requires": { + "bindings": "1.3.0", + "inherits": "2.0.3", + "nan": "2.11.0", + "safe-buffer": "5.1.2" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "requires": { + "invert-kv": "1.0.0" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true + }, + "lodash.toarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", + "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=" + }, + "lolex": { + "version": "2.7.5", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.7.5.tgz", + "integrity": "sha512-l9x0+1offnKKIzYVjyXU2SiwhXDLekRzKyhnbyldPHvC7BvLPVpdNUNR2KeMAiCN2D/kLNttZgQD5WjSxuBx3Q==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "3.0.2" + } + }, + "lru-cache": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "requires": { + "pify": "3.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "1.0.1" + } + }, + "math-random": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", + "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", + "optional": true + }, + "md5.js": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", + "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", + "requires": { + "hash-base": "3.0.4", + "inherits": "2.0.1" + } + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "requires": { + "mimic-fn": "1.2.0" + } + }, + "merkle-lib": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/merkle-lib/-/merkle-lib-2.0.10.tgz", + "integrity": "sha1-grjbrnXieneFOItz+ddyXQ9vMyY=" + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "optional": 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" + } + }, + "mime-db": { + "version": "1.36.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", + "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==" + }, + "mime-types": { + "version": "2.1.20", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", + "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", + "requires": { + "mime-db": "1.36.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + } + }, + "mocha": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", + "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", + "requires": { + "browser-stdout": "1.3.1", + "commander": "2.15.1", + "debug": "3.1.0", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.5", + "he": "1.1.1", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "supports-color": "5.4.0" + }, + "dependencies": { + "commander": { + "version": "2.15.1", + "resolved": "http://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.1", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "requires": { + "has-flag": "3.0.0" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" + }, + "nan": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz", + "integrity": "sha512-F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw==" + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "optional": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "optional": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "optional": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "optional": true + } + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" + }, + "nested-error-stacks": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", + "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==" + }, + "nise": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.5.tgz", + "integrity": "sha512-OHRVvdxKgwZELf2DTgsJEIA4MOq8XWvpSUzoOXyxJ2mY0mMENWC66+70AShLR2z05B1dzrzWlUQJmJERlOUpZw==", + "dev": true, + "requires": { + "@sinonjs/formatio": "3.0.0", + "just-extend": "3.0.0", + "lolex": "2.7.5", + "path-to-regexp": "1.7.0", + "text-encoding": "0.6.4" + }, + "dependencies": { + "@sinonjs/formatio": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.0.0.tgz", + "integrity": "sha512-vdjoYLDptCgvtJs57ULshak3iJe4NW3sJ3g36xVDGff5AE8P30S6A093EIEPjdi2noGhfuNOEkbxt3J3awFW1w==", + "dev": true, + "requires": { + "@sinonjs/samsam": "2.1.0" + } + } + } + }, + "node-cmd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/node-cmd/-/node-cmd-3.0.0.tgz", + "integrity": "sha1-OP/3CkqqT2WdID61eGJzcBjiT28=" + }, + "node-emoji": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", + "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", + "requires": { + "lodash.toarray": "4.4.0" + } + }, + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "requires": { + "abbrev": "1.1.1" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "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.7.1", + "is-builtin-module": "1.0.0", + "semver": "5.5.1", + "validate-npm-package-license": "3.0.4" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "1.1.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "2.0.1" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "nyc": { + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.9.0.tgz", + "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", + "dev": true, + "requires": { + "archy": "1.0.0", + "arrify": "1.0.1", + "caching-transform": "1.0.1", + "convert-source-map": "1.5.1", + "debug-log": "1.0.1", + "default-require-extensions": "1.0.0", + "find-cache-dir": "0.1.1", + "find-up": "2.1.0", + "foreground-child": "1.5.6", + "glob": "7.1.2", + "istanbul-lib-coverage": "1.2.0", + "istanbul-lib-hook": "1.1.0", + "istanbul-lib-instrument": "1.10.1", + "istanbul-lib-report": "1.1.3", + "istanbul-lib-source-maps": "1.2.3", + "istanbul-reports": "1.4.0", + "md5-hex": "1.3.0", + "merge-source-map": "1.1.0", + "micromatch": "3.1.10", + "mkdirp": "0.5.1", + "resolve-from": "2.0.0", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "spawn-wrap": "1.4.2", + "test-exclude": "4.2.1", + "yargs": "11.1.0", + "yargs-parser": "8.1.0" + }, + "dependencies": { + "align-text": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } + }, + "amdefine": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "bundled": true, + "dev": true + }, + "append-transform": { + "version": "0.4.0", + "bundled": true, + "dev": true, + "requires": { + "default-require-extensions": "1.0.0" + } + }, + "archy": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "arr-diff": { + "version": "4.0.0", + "bundled": true, + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "bundled": true, + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "bundled": true, + "dev": true + }, + "arrify": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "async": { + "version": "1.5.2", + "bundled": true, + "dev": true + }, + "atob": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "bundled": true, + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.1", + "bundled": true, + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.10", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "bundled": true, + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "bundled": true, + "dev": true, + "requires": { + "core-js": "2.5.6", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "6.26.0", + "bundled": true, + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.10" + } + }, + "babel-traverse": { + "version": "6.26.0", + "bundled": true, + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.4", + "lodash": "4.17.10" + } + }, + "babel-types": { + "version": "6.26.0", + "bundled": true, + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.10", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "bundled": true, + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "base": { + "version": "0.11.2", + "bundled": true, + "dev": true, + "requires": { + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "bundled": true, + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "builtin-modules": { + "version": "1.1.1", + "bundled": true, + "dev": true + }, + "cache-base": { + "version": "1.0.1", + "bundled": true, + "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" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + } + } + }, + "caching-transform": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "md5-hex": "1.3.0", + "mkdirp": "0.5.1", + "write-file-atomic": "1.3.4" + } + }, + "camelcase": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true + }, + "center-align": { + "version": "0.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + } + }, + "chalk": { + "version": "1.1.3", + "bundled": true, + "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" + } + }, + "class-utils": { + "version": "0.3.6", + "bundled": true, + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + } + } + }, + "cliui": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "commondir": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "component-emitter": { + "version": "1.2.1", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "convert-source-map": { + "version": "1.5.1", + "bundled": true, + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, + "core-js": { + "version": "2.5.6", + "bundled": true, + "dev": true + }, + "cross-spawn": { + "version": "4.0.2", + "bundled": true, + "dev": true, + "requires": { + "lru-cache": "4.1.3", + "which": "1.3.0" + } + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "debug-log": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "decamelize": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "bundled": true, + "dev": true + }, + "default-require-extensions": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "strip-bom": "2.0.0" + } + }, + "define-property": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, + "detect-indent": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "error-ex": { + "version": "1.3.1", + "bundled": true, + "dev": true, + "requires": { + "is-arrayish": "0.2.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, + "esutils": { + "version": "2.0.2", + "bundled": true, + "dev": true + }, + "execa": { + "version": "0.7.0", + "bundled": true, + "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" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "bundled": true, + "dev": true, + "requires": { + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.0" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "bundled": true, + "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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "bundled": true, + "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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, + "fill-range": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "find-cache-dir": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "requires": { + "commondir": "1.0.1", + "mkdirp": "0.5.1", + "pkg-dir": "1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "locate-path": "2.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "foreground-child": { + "version": "1.5.6", + "bundled": true, + "dev": true, + "requires": { + "cross-spawn": "4.0.2", + "signal-exit": "3.0.2" + } + }, + "fragment-cache": { + "version": "0.2.1", + "bundled": true, + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "get-caller-file": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "get-value": { + "version": "2.0.6", + "bundled": true, + "dev": true + }, + "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" + } + }, + "globals": { + "version": "9.18.0", + "bundled": true, + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true, + "dev": true + }, + "handlebars": { + "version": "4.0.11", + "bundled": true, + "dev": true, + "requires": { + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "bundled": true, + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "has-ansi": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "has-value": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + } + } + }, + "has-values": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "hosted-git-info": { + "version": "2.6.0", + "bundled": true, + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "bundled": true, + "dev": true + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "invariant": { + "version": "2.2.4", + "bundled": true, + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "invert-kv": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-arrayish": { + "version": "0.2.1", + "bundled": true, + "dev": true + }, + "is-buffer": { + "version": "1.1.6", + "bundled": true, + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "bundled": true, + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "is-number": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-odd": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "bundled": true, + "dev": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "bundled": true, + "dev": true, + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + } + } + }, + "is-stream": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "bundled": true, + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "isexe": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "istanbul-lib-coverage": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "istanbul-lib-hook": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "append-transform": "0.4.0" + } + }, + "istanbul-lib-instrument": { + "version": "1.10.1", + "bundled": true, + "dev": true, + "requires": { + "babel-generator": "6.26.1", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "istanbul-lib-coverage": "1.2.0", + "semver": "5.5.0" + } + }, + "istanbul-lib-report": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "requires": { + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" + }, + "dependencies": { + "supports-color": { + "version": "3.2.3", + "bundled": true, + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.3", + "bundled": true, + "dev": true, + "requires": { + "debug": "3.1.0", + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "istanbul-reports": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "handlebars": "4.0.11" + } + }, + "js-tokens": { + "version": "3.0.2", + "bundled": true, + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "bundled": true, + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + }, + "lazy-cache": { + "version": "1.0.4", + "bundled": true, + "dev": true, + "optional": true + }, + "lcid": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "invert-kv": "1.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "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" + } + }, + "locate-path": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "bundled": true, + "dev": true + } + } + }, + "lodash": { + "version": "4.17.10", + "bundled": true, + "dev": true + }, + "longest": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "bundled": true, + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "lru-cache": { + "version": "4.1.3", + "bundled": true, + "dev": true, + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + }, + "map-cache": { + "version": "0.2.2", + "bundled": true, + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "md5-hex": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "md5-o-matic": "0.1.1" + } + }, + "md5-o-matic": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, + "mem": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "mimic-fn": "1.2.0" + } + }, + "merge-source-map": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "bundled": true, + "dev": true + } + } + }, + "micromatch": { + "version": "3.1.10", + "bundled": true, + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, + "mimic-fn": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "mixin-deep": { + "version": "1.3.1", + "bundled": true, + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "nanomatch": { + "version": "1.2.9", + "bundled": true, + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-odd": "2.0.0", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "bundled": true, + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "bundled": true, + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, + "normalize-package-data": { + "version": "2.4.0", + "bundled": true, + "dev": true, + "requires": { + "hosted-git-info": "2.6.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" + } + }, + "npm-run-path": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "path-key": "2.0.1" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "bundled": true, + "dev": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + } + } + }, + "object.pick": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + } + } + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optimist": { + "version": "0.6.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8", + "wordwrap": "0.0.3" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "os-locale": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } + }, + "p-finally": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "p-limit": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "p-try": "1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "p-limit": "1.2.0" + } + }, + "p-try": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "parse-json": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "requires": { + "error-ex": "1.3.1" + } + }, + "pascalcase": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, + "path-exists": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "path-key": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, + "path-type": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "pify": { + "version": "2.3.0", + "bundled": true, + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "bundled": true, + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "pinkie": "2.0.4" + } + }, + "pkg-dir": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "find-up": "1.1.2" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "read-pkg": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + } + } + }, + "regenerator-runtime": { + "version": "0.11.1", + "bundled": true, + "dev": true + }, + "regex-not": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "bundled": true, + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "bundled": true, + "dev": true + }, + "repeating": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "require-directory": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "resolve-from": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "bundled": true, + "dev": true + }, + "ret": { + "version": "0.1.15", + "bundled": true, + "dev": true + }, + "right-align": { + "version": "0.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "align-text": "0.1.4" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "dev": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-regex": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "ret": "0.1.15" + } + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "set-value": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "shebang-command": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "shebang-regex": "1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true + }, + "slide": { + "version": "1.1.6", + "bundled": true, + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "bundled": true, + "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": "3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "source-map": { + "version": "0.5.7", + "bundled": true, + "dev": true + }, + "source-map-resolve": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "atob": "2.1.1", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "bundled": true, + "dev": true + }, + "spawn-wrap": { + "version": "1.4.2", + "bundled": true, + "dev": true, + "requires": { + "foreground-child": "1.5.6", + "mkdirp": "0.5.1", + "os-homedir": "1.0.2", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "which": "1.3.0" + } + }, + "spdx-correct": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "split-string": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "extend-shallow": "3.0.2" + } + }, + "static-extend": { + "version": "0.1.2", + "bundled": true, + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "string-width": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-bom": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-utf8": "0.2.1" + } + }, + "strip-eof": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "test-exclude": { + "version": "4.2.1", + "bundled": true, + "dev": true, + "requires": { + "arrify": "1.0.1", + "micromatch": "3.1.10", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "bundled": true, + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "bundled": true, + "dev": true + }, + "braces": { + "version": "2.3.2", + "bundled": true, + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "bundled": true, + "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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "bundled": true, + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "bundled": true, + "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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "is-number": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "bundled": true, + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + } + } + } + }, + "to-fast-properties": { + "version": "1.0.3", + "bundled": true, + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "to-regex": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + } + } + }, + "trim-right": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "uglify-js": { + "version": "2.8.29", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "yargs": { + "version": "3.10.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "union-value": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "bundled": true, + "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" + } + } + } + }, + "unset-value": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "bundled": true, + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "bundled": true, + "dev": true + }, + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "bundled": true, + "dev": true + }, + "use": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, + "validate-npm-package-license": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "requires": { + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" + } + }, + "which": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "isexe": "2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "window-size": { + "version": "0.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "wordwrap": { + "version": "0.0.3", + "bundled": true, + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "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" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "write-file-atomic": { + "version": "1.3.4", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" + } + }, + "y18n": { + "version": "3.2.1", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "2.1.2", + "bundled": true, + "dev": true + }, + "yargs": { + "version": "11.1.0", + "bundled": true, + "dev": true, + "requires": { + "cliui": "4.1.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": "9.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "bundled": true, + "dev": true + }, + "cliui": { + "version": "4.1.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "yargs-parser": { + "version": "9.0.2", + "bundled": true, + "dev": true, + "requires": { + "camelcase": "4.1.0" + } + } + } + }, + "yargs-parser": { + "version": "8.1.0", + "bundled": true, + "dev": true, + "requires": { + "camelcase": "4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "bundled": true, + "dev": true + } + } + } + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "object-inspect": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", + "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==" + }, + "object-keys": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", + "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==" + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "optional": true, + "requires": { + "for-own": "0.1.5", + "is-extendable": "0.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1.0.2" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "requires": { + "mimic-fn": "1.2.0" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "requires": { + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "output-file-sync": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", + "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", + "requires": { + "graceful-fs": "4.1.11", + "mkdirp": "0.5.1", + "object-assign": "4.1.1" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "1.3.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "optional": true, + "requires": { + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "1.3.2" + } + }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "requires": { + "better-assert": "1.0.2" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "requires": { + "better-assert": "1.0.2" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "path-to-regexp": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", + "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", + "dev": true, + "requires": { + "isarray": "0.0.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + } + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "pathval": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", + "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "dev": true + }, + "pbkdf2": { + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", + "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", + "requires": { + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ripemd160": "2.0.2", + "safe-buffer": "5.1.2", + "sha.js": "2.4.11" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "2.0.4" + } + }, + "pkg-conf": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", + "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", + "requires": { + "find-up": "2.1.0", + "load-json-file": "4.0.0" + }, + "dependencies": { + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "requires": { + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" + } + } + } + }, + "pkg-config": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", + "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=", + "requires": { + "debug-log": "1.0.1", + "find-root": "1.1.0", + "xtend": "4.0.1" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "requires": { + "find-up": "1.1.2" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "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": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "2.0.1" + } + } + } + }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==" + }, + "pngjs": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.3.3.tgz", + "integrity": "sha512-1n3Z4p3IOxArEs1VRXnZ/RXdfEniAUS9jb68g58FIXMNkPJeZd+Qh4Uq7/e0LVxAQGos1eIUrqrt4FpjdnEd+Q==" + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "optional": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "optional": true + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + }, + "progress": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", + "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=" + }, + "prop-types": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", + "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", + "requires": { + "loose-envify": "1.4.0", + "object-assign": "4.1.1" + } + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "pushdata-bitcoin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", + "integrity": "sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=", + "requires": { + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" + } + }, + "qrcode": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.2.2.tgz", + "integrity": "sha512-iHD3eGma3PMaIfvM+p6oaTZjz83PsEIJ5F4H3oqyfKbQM+kbWjJjHdnTRlzi9q0KoiJ9QFKfiNhkEAYOWTTDdw==", + "requires": { + "can-promise": "0.0.1", + "dijkstrajs": "1.0.1", + "isarray": "2.0.4", + "pngjs": "3.3.3", + "yargs": "8.0.2" + }, + "dependencies": { + "isarray": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.4.tgz", + "integrity": "sha512-GMxXOiUirWg1xTKRipM0Ek07rX+ubx4nNVElTJdNLYmNO/2YrDkgJGw9CljXn+r4EWiDQg/8lsRdHyg2PJuUaA==" + } + } + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "randomatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz", + "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==", + "optional": true, + "requires": { + "is-number": "4.0.0", + "kind-of": "6.0.2", + "math-random": "1.0.1" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "optional": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "optional": true + } + } + }, + "randombytes": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", + "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "requires": { + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "requires": { + "find-up": "2.1.0", + "read-pkg": "2.0.0" + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.2", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "optional": true, + "requires": { + "graceful-fs": "4.1.11", + "micromatch": "3.1.10", + "readable-stream": "2.3.6" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "optional": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "optional": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.3", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "optional": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "optional": 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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "optional": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "optional": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "optional": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "optional": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "optional": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "optional": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "optional": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "optional": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "optional": 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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "optional": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "optional": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "optional": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "optional": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "optional": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "optional": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "optional": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "optional": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "optional": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "optional": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "optional": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.13", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + } + } + } + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==" + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "private": "0.1.8" + } + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "optional": true, + "requires": { + "is-equal-shallow": "0.1.3" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "requires": { + "regenerate": "1.4.0", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "requires": { + "jsesc": "0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "requires": { + "is-finite": "1.0.2" + } + }, + "repl.history": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/repl.history/-/repl.history-0.1.4.tgz", + "integrity": "sha1-gDZxcfN4HW5CmccXWMJTCX9dWDI=" + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "requires": { + "caller-path": "0.1.0", + "resolve-from": "1.0.1" + } + }, + "resolve": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", + "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "requires": { + "path-parse": "1.0.6" + } + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=" + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "requires": { + "onetime": "2.0.1", + "signal-exit": "3.0.2" + } + }, + "resumer": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", + "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", + "requires": { + "through": "2.3.8" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "requires": { + "glob": "7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "requires": { + "hash-base": "3.0.4", + "inherits": "2.0.1" + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "requires": { + "is-promise": "2.1.0" + } + }, + "run-parallel": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", + "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==" + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=" + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "requires": { + "rx-lite": "4.0.8" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "0.1.15" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "samsam": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz", + "integrity": "sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg==", + "dev": true + }, + "satoshi-bitcoin": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/satoshi-bitcoin/-/satoshi-bitcoin-1.0.4.tgz", + "integrity": "sha1-0AK2dwddXLvywhGo3zJUvN9QseQ=", + "requires": { + "big.js": "3.2.0" + } + }, + "scryptsy": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-2.0.0.tgz", + "integrity": "sha1-Jiw28CMc+nZU4jY/o5TNLexm83g=" + }, + "secp256k1": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.5.2.tgz", + "integrity": "sha512-iin3kojdybY6NArd+UFsoTuapOF7bnJNf2UbcWXaY3z+E1sJDipl60vtzB5hbO/uquBu7z0fd4VC4Irp+xoFVQ==", + "requires": { + "bindings": "1.3.0", + "bip66": "1.1.5", + "bn.js": "4.11.8", + "create-hash": "1.2.0", + "drbg.js": "1.0.1", + "elliptic": "6.4.1", + "nan": "2.11.0", + "safe-buffer": "5.1.2" + } + }, + "semver": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "sha.js": { + "version": "2.4.11", + "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "2.0.1", + "safe-buffer": "5.1.2" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "sinon": { + "version": "4.5.0", + "resolved": "http://registry.npmjs.org/sinon/-/sinon-4.5.0.tgz", + "integrity": "sha512-trdx+mB0VBBgoYucy6a9L7/jfQOmvGeaKZT4OOJ+lPAtI8623xyGr8wLiE4eojzBS8G9yXbhx42GHUOVLr4X2w==", + "dev": true, + "requires": { + "@sinonjs/formatio": "2.0.0", + "diff": "3.5.0", + "lodash.get": "4.4.2", + "lolex": "2.7.5", + "nise": "1.4.5", + "supports-color": "5.5.0", + "type-detect": "4.0.8" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + } + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "requires": { + "is-fullwidth-code-point": "2.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + } + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "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.2", + "use": "3.1.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "optional": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "optional": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "optional": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "optional": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "optional": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "optional": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "optional": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "socket.io": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", + "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", + "requires": { + "debug": "3.1.0", + "engine.io": "3.2.0", + "has-binary2": "1.0.3", + "socket.io-adapter": "1.1.1", + "socket.io-client": "2.1.1", + "socket.io-parser": "3.2.0" + } + }, + "socket.io-adapter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz", + "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=" + }, + "socket.io-client": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz", + "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==", + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "3.1.0", + "engine.io-client": "3.2.1", + "has-binary2": "1.0.3", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "3.2.0", + "to-array": "0.1.4" + } + }, + "socket.io-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", + "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", + "requires": { + "component-emitter": "1.2.1", + "debug": "3.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" + } + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "requires": { + "atob": "2.1.2", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "requires": { + "source-map": "0.5.7" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + }, + "spdx-correct": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "requires": { + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.1" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==" + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "requires": { + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.1" + } + }, + "spdx-license-ids": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz", + "integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w==" + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "3.0.2" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "standard": { + "version": "11.0.1", + "resolved": "http://registry.npmjs.org/standard/-/standard-11.0.1.tgz", + "integrity": "sha512-nu0jAcHiSc8H+gJCXeiziMVZNDYi8MuqrYJKxTgjP4xKXZMKm311boqQIzDrYI/ktosltxt2CbDjYQs9ANC8IA==", + "requires": { + "eslint": "4.18.2", + "eslint-config-standard": "11.0.0", + "eslint-config-standard-jsx": "5.0.0", + "eslint-plugin-import": "2.9.0", + "eslint-plugin-node": "6.0.1", + "eslint-plugin-promise": "3.7.0", + "eslint-plugin-react": "7.7.0", + "eslint-plugin-standard": "3.0.1", + "standard-engine": "8.0.1" + } + }, + "standard-engine": { + "version": "8.0.1", + "resolved": "http://registry.npmjs.org/standard-engine/-/standard-engine-8.0.1.tgz", + "integrity": "sha512-LA531C3+nljom/XRvdW/hGPXwmilRkaRkENhO3FAGF1Vtq/WtCXzgmnc5S6vUHHsgv534MRy02C1ikMwZXC+tw==", + "requires": { + "deglob": "2.1.1", + "get-stdin": "6.0.0", + "minimist": "1.2.0", + "pkg-conf": "2.1.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + } + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "3.0.0" + } + } + } + }, + "string.prototype.trim": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", + "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", + "requires": { + "define-properties": "1.1.3", + "es-abstract": "1.12.0", + "function-bind": "1.1.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "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" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "table": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "requires": { + "ajv": "5.5.2", + "ajv-keywords": "2.1.1", + "chalk": "2.4.1", + "lodash": "4.17.11", + "slice-ansi": "1.0.0", + "string-width": "2.1.1" + } + }, + "tape": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/tape/-/tape-4.9.1.tgz", + "integrity": "sha512-6fKIXknLpoe/Jp4rzHKFPpJUHDHDqn8jus99IfPnHIjyz78HYlefTGD3b5EkbQzuLfaEvmfPK3IolLgq2xT3kw==", + "requires": { + "deep-equal": "1.0.1", + "defined": "1.0.0", + "for-each": "0.3.3", + "function-bind": "1.1.1", + "glob": "7.1.3", + "has": "1.0.3", + "inherits": "2.0.3", + "minimist": "1.2.0", + "object-inspect": "1.6.0", + "resolve": "1.7.1", + "resumer": "0.0.0", + "string.prototype.trim": "1.1.2", + "through": "2.3.8" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "resolve": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", + "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", + "requires": { + "path-parse": "1.0.6" + } + } + } + }, + "text-encoding": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", + "integrity": "sha1-45mpgiV6J22uQou5KEXLcb3CbRk=", + "dev": true + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "through": { + "version": "2.3.8", + "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "1.0.2" + } + }, + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "3.2.2" + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "optional": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "optional": true, + "requires": { + "kind-of": "3.2.2" + } + } + } + }, + "touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "requires": { + "nopt": "1.0.10" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "1.1.2" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "typeforce": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.12.0.tgz", + "integrity": "sha512-fvnkvueAOFLhtAqDgIA/wMP21SMwS/NQESFKZuwVrj5m/Ew6eK2S0z0iB++cwtROPWDOhaT6OUfla8UwMw4Adg==" + }, + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "requires": { + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" + } + } + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" + }, + "unorm": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.4.1.tgz", + "integrity": "sha1-NkIA1fE2RsqLzURJAnEzVhR5IwA=" + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "requires": { + "inherits": "2.0.1" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "requires": { + "user-home": "1.1.1" + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "requires": { + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" + } + }, + "varuint-bitcoin": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz", + "integrity": "sha512-jCEPG+COU/1Rp84neKTyDJQr478/hAfVp5xxYn09QEH0yBjbmPeMfuuQIrp+BUD83hybtYZKhr5elV3bvdV1bA==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "wif": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", + "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", + "requires": { + "bs58check": "2.1.2" + } + }, + "window-or-global": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/window-or-global/-/window-or-global-1.0.1.tgz", + "integrity": "sha1-2+RboqKRqrxW1iz2bEW3+jIpRt4=" + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "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" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "requires": { + "mkdirp": "0.5.1" + } + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "requires": { + "async-limiter": "1.0.0", + "safe-buffer": "5.1.2", + "ultron": "1.1.1" + } + }, + "xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=" + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yargs": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", + "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "requires": { + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.3", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.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": "7.0.0" + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "requires": { + "camelcase": "4.1.0" + } + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" + } + } +} diff --git a/package.json b/package.json index 59826bd9..c0de1b76 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.6.5", + "version": "1.6.6", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 2ec9487e..00000000 --- a/yarn.lock +++ /dev/null @@ -1,4719 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/code-frame@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz#bd71d9b192af978df915829d39d4094456439a0c" - dependencies: - "@babel/highlight" "7.0.0-beta.51" - -"@babel/generator@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.51.tgz#6c7575ffde761d07485e04baedc0392c6d9e30f6" - dependencies: - "@babel/types" "7.0.0-beta.51" - jsesc "^2.5.1" - lodash "^4.17.5" - source-map "^0.5.0" - trim-right "^1.0.1" - -"@babel/helper-function-name@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.51.tgz#21b4874a227cf99ecafcc30a90302da5a2640561" - dependencies: - "@babel/helper-get-function-arity" "7.0.0-beta.51" - "@babel/template" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" - -"@babel/helper-get-function-arity@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.51.tgz#3281b2d045af95c172ce91b20825d85ea4676411" - dependencies: - "@babel/types" "7.0.0-beta.51" - -"@babel/helper-split-export-declaration@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.51.tgz#8a6c3f66c4d265352fc077484f9f6e80a51ab978" - dependencies: - "@babel/types" "7.0.0-beta.51" - -"@babel/highlight@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.51.tgz#e8844ae25a1595ccfd42b89623b4376ca06d225d" - dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^3.0.0" - -"@babel/parser@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.0.0-beta.51.tgz#27cec2df409df60af58270ed8f6aa55409ea86f6" - -"@babel/template@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.51.tgz#9602a40aebcf357ae9677e2532ef5fc810f5fbff" - dependencies: - "@babel/code-frame" "7.0.0-beta.51" - "@babel/parser" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" - lodash "^4.17.5" - -"@babel/traverse@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.51.tgz#981daf2cec347a6231d3aa1d9e1803b03aaaa4a8" - dependencies: - "@babel/code-frame" "7.0.0-beta.51" - "@babel/generator" "7.0.0-beta.51" - "@babel/helper-function-name" "7.0.0-beta.51" - "@babel/helper-split-export-declaration" "7.0.0-beta.51" - "@babel/parser" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" - debug "^3.1.0" - globals "^11.1.0" - invariant "^2.2.0" - lodash "^4.17.5" - -"@babel/types@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.51.tgz#d802b7b543b5836c778aa691797abf00f3d97ea9" - dependencies: - esutils "^2.0.2" - lodash "^4.17.5" - to-fast-properties "^2.0.0" - -"@sinonjs/formatio@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-2.0.0.tgz#84db7e9eb5531df18a8c5e0bfb6e449e55e654b2" - dependencies: - samsam "1.3.0" - -"@types/node@^10.5.2": - version "10.9.4" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.9.4.tgz#0f4cb2dc7c1de6096055357f70179043c33e9897" - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - -accepts@~1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" - dependencies: - mime-types "~2.1.18" - negotiator "0.6.1" - -acorn-jsx@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" - dependencies: - acorn "^3.0.4" - -acorn@^3.0.4: - version "3.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" - -acorn@^5.5.0: - version "5.7.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.2.tgz#91fa871883485d06708800318404e72bfb26dcc5" - -after@0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" - -ajv-keywords@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" - -ajv@^5.2.3, ajv@^5.3.0: - version "5.5.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" - dependencies: - 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@^0.1.1, align-text@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" - dependencies: - kind-of "^3.0.2" - longest "^1.0.1" - repeat-string "^1.5.2" - -amdefine@>=0.0.4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - -ansi-escapes@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - dependencies: - color-convert "^1.9.0" - -anymatch@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" - dependencies: - micromatch "^2.1.5" - normalize-path "^2.0.0" - -append-transform@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab" - dependencies: - default-require-extensions "^2.0.0" - -aproba@^1.0.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - -archy@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" - -are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - dependencies: - arr-flatten "^1.0.1" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - -arr-flatten@^1.0.1, arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - -array-includes@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" - dependencies: - define-properties "^1.1.2" - es-abstract "^1.7.0" - -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - -arraybuffer.slice@~0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" - -arrify@^1.0.0, arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - -assert@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" - dependencies: - util "0.10.3" - -assertion-error@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - -async-each@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" - -async-limiter@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" - -async@^1.4.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - -atob@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - -axios@^0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.17.1.tgz#2d8e3e5d0bdbd7327f91bc814f5c57660f81824d" - dependencies: - follow-redirects "^1.2.5" - is-buffer "^1.1.5" - -babel-cli@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" - dependencies: - babel-core "^6.26.0" - babel-polyfill "^6.26.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - commander "^2.11.0" - convert-source-map "^1.5.0" - fs-readdir-recursive "^1.0.0" - glob "^7.1.2" - lodash "^4.17.4" - output-file-sync "^1.1.2" - path-is-absolute "^1.0.1" - slash "^1.0.0" - source-map "^0.5.6" - v8flags "^2.1.1" - optionalDependencies: - chokidar "^1.6.1" - -babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@^6.26.0: - version "6.26.3" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.1" - debug "^2.6.9" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.8" - slash "^1.0.0" - source-map "^0.5.7" - -babel-generator@^6.18.0, babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" - dependencies: - babel-helper-explode-assignable-expression "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-builder-react-jsx@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0" - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - esutils "^2.0.2" - -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-define-map@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-explode-assignable-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-remap-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-replace-supers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" - dependencies: - babel-helper-optimise-call-expression "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-check-es2015-constants@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "http://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" - -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "http://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" - -babel-plugin-syntax-flow@^6.18.0: - version "6.18.0" - resolved "http://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" - -babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: - version "6.18.0" - resolved "http://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" - -babel-plugin-syntax-trailing-function-commas@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" - -babel-plugin-transform-async-to-generator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-arrow-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoping@^6.23.0, babel-plugin-transform-es2015-block-scoping@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" - dependencies: - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-plugin-transform-es2015-classes@^6.23.0, babel-plugin-transform-es2015-classes@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - dependencies: - babel-helper-define-map "^6.24.1" - babel-helper-function-name "^6.24.1" - babel-helper-optimise-call-expression "^6.24.1" - babel-helper-replace-supers "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-computed-properties@^6.22.0, babel-plugin-transform-es2015-computed-properties@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-destructuring@^6.22.0, babel-plugin-transform-es2015-destructuring@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-duplicate-keys@^6.22.0, babel-plugin-transform-es2015-duplicate-keys@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-for-of@^6.22.0, babel-plugin-transform-es2015-for-of@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-function-name@^6.22.0, babel-plugin-transform-es2015-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-es2015-modules-systemjs@^6.23.0, babel-plugin-transform-es2015-modules-systemjs@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-umd@^6.23.0, babel-plugin-transform-es2015-modules-umd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" - dependencies: - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-object-super@^6.22.0, babel-plugin-transform-es2015-object-super@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" - dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-parameters@^6.23.0, babel-plugin-transform-es2015-parameters@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" - dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-shorthand-properties@^6.22.0, babel-plugin-transform-es2015-shorthand-properties@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-sticky-regex@^6.22.0, babel-plugin-transform-es2015-sticky-regex@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-typeof-symbol@^6.22.0, babel-plugin-transform-es2015-typeof-symbol@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-unicode-regex@^6.22.0, babel-plugin-transform-es2015-unicode-regex@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" - -babel-plugin-transform-exponentiation-operator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" - dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" - babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-flow-strip-types@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" - dependencies: - babel-plugin-syntax-flow "^6.18.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-react-display-name@^6.23.0: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx-self@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz#df6d80a9da2612a121e6ddd7558bcbecf06e636e" - dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx-source@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6" - dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" - dependencies: - babel-helper-builder-react-jsx "^6.24.1" - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-regenerator@^6.22.0, babel-plugin-transform-regenerator@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" - dependencies: - regenerator-transform "^0.10.0" - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-polyfill@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" - dependencies: - babel-runtime "^6.26.0" - core-js "^2.5.0" - regenerator-runtime "^0.10.5" - -babel-preset-env@^1.6.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-to-generator "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.23.0" - babel-plugin-transform-es2015-classes "^6.23.0" - babel-plugin-transform-es2015-computed-properties "^6.22.0" - babel-plugin-transform-es2015-destructuring "^6.23.0" - babel-plugin-transform-es2015-duplicate-keys "^6.22.0" - babel-plugin-transform-es2015-for-of "^6.23.0" - babel-plugin-transform-es2015-function-name "^6.22.0" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.22.0" - babel-plugin-transform-es2015-modules-commonjs "^6.23.0" - babel-plugin-transform-es2015-modules-systemjs "^6.23.0" - babel-plugin-transform-es2015-modules-umd "^6.23.0" - babel-plugin-transform-es2015-object-super "^6.22.0" - babel-plugin-transform-es2015-parameters "^6.23.0" - babel-plugin-transform-es2015-shorthand-properties "^6.22.0" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.22.0" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.23.0" - babel-plugin-transform-es2015-unicode-regex "^6.22.0" - babel-plugin-transform-exponentiation-operator "^6.22.0" - babel-plugin-transform-regenerator "^6.22.0" - browserslist "^3.2.6" - invariant "^2.2.2" - semver "^5.3.0" - -babel-preset-es2015@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.24.1" - babel-plugin-transform-es2015-classes "^6.24.1" - babel-plugin-transform-es2015-computed-properties "^6.24.1" - babel-plugin-transform-es2015-destructuring "^6.22.0" - babel-plugin-transform-es2015-duplicate-keys "^6.24.1" - babel-plugin-transform-es2015-for-of "^6.22.0" - babel-plugin-transform-es2015-function-name "^6.24.1" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-plugin-transform-es2015-modules-systemjs "^6.24.1" - babel-plugin-transform-es2015-modules-umd "^6.24.1" - babel-plugin-transform-es2015-object-super "^6.24.1" - babel-plugin-transform-es2015-parameters "^6.24.1" - babel-plugin-transform-es2015-shorthand-properties "^6.24.1" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.24.1" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.22.0" - babel-plugin-transform-es2015-unicode-regex "^6.24.1" - babel-plugin-transform-regenerator "^6.24.1" - -babel-preset-flow@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d" - dependencies: - babel-plugin-transform-flow-strip-types "^6.22.0" - -babel-preset-react@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380" - dependencies: - babel-plugin-syntax-jsx "^6.3.13" - babel-plugin-transform-react-display-name "^6.23.0" - babel-plugin-transform-react-jsx "^6.24.1" - babel-plugin-transform-react-jsx-self "^6.22.0" - babel-plugin-transform-react-jsx-source "^6.22.0" - babel-preset-flow "^6.23.0" - -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - -babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.18.0, babel-traverse@^6.24.1, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - -backo2@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - -base-x@^3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.4.tgz#94c1788736da065edb1d68808869e357c977fa77" - dependencies: - safe-buffer "^5.0.1" - -base64-arraybuffer@0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" - -base64-js@^1.0.2: - version "1.3.0" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" - -base64id@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -bchaddrjs@^0.2.1: - version "0.2.2" - resolved "https://registry.yarnpkg.com/bchaddrjs/-/bchaddrjs-0.2.2.tgz#51f8a2fc0349bd02b8be3347129a10c13ca7002c" - dependencies: - bs58check "^2.1.1" - cashaddrjs "^0.2.7" - -bech32@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.3.tgz#bd47a8986bbb3eec34a56a097a84b8d3e9a2dfcd" - -better-assert@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" - dependencies: - callsite "1.0.0" - -big-integer@^1.6.34: - version "1.6.35" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.35.tgz#e093c3a50f63fb6bda0b5511c9425f1befcba74d" - -big.js@^3.1.3: - version "3.2.0" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" - -bigi@^1.1.0, bigi@^1.2.0, bigi@^1.4.0, bigi@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/bigi/-/bigi-1.4.2.tgz#9c665a95f88b8b08fc05cfd731f561859d725825" - -binary-extensions@^1.0.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" - -bindings@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.3.0.tgz#b346f6ecf6a95f5a815c5839fc7cdb22502f1ed7" - -bip21@Bitcoin-com/bip21, "bip21@github:Bitcoin-com/bip21": - version "2.0.1" - resolved "https://codeload.github.com/Bitcoin-com/bip21/tar.gz/28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f" - dependencies: - qs "^6.3.0" - -bip32-utils@Bitcoin-com/bip32-utils#0.12.2, "bip32-utils@github:Bitcoin-com/bip32-utils#0.12.2": - version "0.12.2" - resolved "https://codeload.github.com/Bitcoin-com/bip32-utils/tar.gz/318df796443311f7e12217542f7f45d3b7791f10" - dependencies: - bitbox-cli "1.5.*" - keccak "^1.3.0" - nyc "*" - standard "^11.0.1" - tape "*" - -bip38@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/bip38/-/bip38-2.0.2.tgz#6f7762bc90b0bdf63b489ff95349354aecf9baee" - dependencies: - bigi "^1.2.0" - browserify-aes "^1.0.1" - bs58check "<3.0.0" - buffer-xor "^1.0.2" - create-hash "^1.1.1" - ecurve "^1.0.0" - scryptsy "^2.0.0" - -bip39@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/bip39/-/bip39-2.5.0.tgz#51cbd5179460504a63ea3c000db3f787ca051235" - dependencies: - create-hash "^1.1.0" - pbkdf2 "^3.0.9" - randombytes "^2.0.1" - safe-buffer "^5.0.1" - unorm "^1.3.3" - -bip66@^1.1.0, bip66@^1.1.3, bip66@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/bip66/-/bip66-1.1.5.tgz#01fa8748785ca70955d5011217d1b3139969ca22" - dependencies: - safe-buffer "^5.0.1" - -bip68@Bitcoin-com/bip68#1.0.5: - version "1.0.5" - resolved "https://codeload.github.com/Bitcoin-com/bip68/tar.gz/aeac5a8c5c1e01dfba79ff3eb824171be004a28c" - -bip68@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/bip68/-/bip68-1.0.4.tgz#78a95c7a43fad183957995cc2e08d79b0c372c4d" - -bitbox-cli@1.5.*: - version "1.5.12" - resolved "https://registry.yarnpkg.com/bitbox-cli/-/bitbox-cli-1.5.12.tgz#7389b7fca4244341f59b47e030de32d4d2e0dd25" - dependencies: - assert "^1.4.1" - axios "^0.17.1" - babel-cli "^6.26.0" - babel-preset-env "^1.6.1" - babel-preset-es2015 "^6.24.1" - babel-preset-flow "^6.23.0" - babel-preset-react "^6.24.1" - babel-register "^6.26.0" - bchaddrjs "^0.2.1" - bigi "^1.4.2" - bip21 Bitcoin-com/bip21 - bip32-utils Bitcoin-com/bip32-utils#0.12.2 - bip38 "^2.0.2" - bip39 "^2.5.0" - bip66 "^1.1.5" - bip68 "^1.0.4" - bitcoin-ops Bitcoin-com/bitcoincash-ops - bitcoin-txdecoder "0.0.3" - bitcoincashjs-lib Bitcoin-com/bitcoincashjs-lib#3.3.4 - bitcoinjs-message "^2.0.0" - bs58 "^4.0.1" - buffer "^5.1.0" - chalk "^2.3.0" - clear "0.0.1" - coininfo Bitcoin-com/coininfo - commander "^2.13.0" - cp-file "^5.0.0" - ecurve "^1.0.6" - figlet "^1.2.0" - git-clone "^0.1.0" - ini "^1.3.5" - mkdirp "^0.5.1" - mocha "^5.0.1" - node-cmd "^3.0.0" - node-emoji "^1.8.1" - qrcode "^1.2.0" - randombytes "^2.0.6" - repl.history "^0.1.4" - safe-buffer "^5.1.2" - satoshi-bitcoin "^1.0.4" - socket.io "^2.1.1" - socket.io-client "^2.1.1" - touch "^3.1.0" - wif "^2.0.6" - -bitcoin-ops@Bitcoin-com/bitcoincash-ops, "bitcoin-ops@github:Bitcoin-com/bitcoincash-ops": - version "1.4.1" - uid d62a0a12ce227a63222282b5f4e9a7a23a5a6b38 - resolved "https://codeload.github.com/Bitcoin-com/bitcoincash-ops/tar.gz/d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" - -bitcoin-ops@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz#e45de620398e22fd4ca6023de43974ff42240278" - -bitcoin-txdecoder@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/bitcoin-txdecoder/-/bitcoin-txdecoder-0.0.3.tgz#f9052d6ea7bb0cbc8f22c024869391296b6c86dd" - dependencies: - bitcoinjs-lib "3.3.*" - -bitcoincashjs-lib@Bitcoin-com/bitcoincashjs-lib#3.3.4, "bitcoincashjs-lib@github:Bitcoin-com/bitcoincashjs-lib#3.3.4": - version "3.3.4" - uid "12fa5fe9b535816b54b9efedd6caf278d3e55b90" - resolved "https://codeload.github.com/Bitcoin-com/bitcoincashjs-lib/tar.gz/12fa5fe9b535816b54b9efedd6caf278d3e55b90" - dependencies: - bech32 "^1.1.2" - bigi "^1.4.0" - bip66 "^1.1.0" - bitcoin-ops "^1.3.0" - bs58check "^2.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.3" - ecurve "^1.0.0" - merkle-lib "^2.0.10" - pushdata-bitcoin "^1.0.1" - randombytes "^2.0.1" - safe-buffer "^5.0.1" - typeforce "^1.11.3" - varuint-bitcoin "^1.0.4" - wif "^2.0.1" - -bitcoinjs-lib@3.3.*: - version "3.3.2" - resolved "https://registry.yarnpkg.com/bitcoinjs-lib/-/bitcoinjs-lib-3.3.2.tgz#780c9c53ecb1222adb463b58bef26386067b609a" - dependencies: - bech32 "^1.1.2" - bigi "^1.4.0" - bip66 "^1.1.0" - bitcoin-ops "^1.3.0" - bs58check "^2.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.3" - ecurve "^1.0.0" - merkle-lib "^2.0.10" - pushdata-bitcoin "^1.0.1" - randombytes "^2.0.1" - safe-buffer "^5.0.1" - typeforce "^1.11.3" - varuint-bitcoin "^1.0.4" - wif "^2.0.1" - -bitcoinjs-message@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz#e285d223607dabf2b33a6ee486a223b59d1b1548" - dependencies: - bs58check "^2.0.2" - buffer-equals "^1.0.3" - create-hash "^1.1.2" - secp256k1 "^3.0.1" - varuint-bitcoin "^1.0.1" - -blob@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" - -bn.js@^4.11.3, bn.js@^4.4.0: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^1.8.2: - version "1.8.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" - dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" - -braces@^2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - -browser-stdout@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - -browserify-aes@^1.0.1, browserify-aes@^1.0.6: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserslist@^3.2.6: - version "3.2.8" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" - dependencies: - caniuse-lite "^1.0.30000844" - electron-to-chromium "^1.3.47" - -bs58@^4.0.0, bs58@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - dependencies: - base-x "^3.0.2" - -bs58check@<3.0.0, bs58check@^2.0.0, bs58check@^2.0.2, bs58check@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" - dependencies: - bs58 "^4.0.0" - create-hash "^1.1.0" - safe-buffer "^5.1.2" - -buffer-equals@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/buffer-equals/-/buffer-equals-1.0.4.tgz#0353b54fd07fd9564170671ae6f66b9cf10d27f5" - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - -buffer-xor@^1.0.2, buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - -buffer@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6" - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - -builtin-modules@^1.0.0, builtin-modules@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -caching-transform@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-1.0.1.tgz#6dbdb2f20f8d8fbce79f3e94e9d1742dcdf5c0a1" - dependencies: - md5-hex "^1.2.0" - mkdirp "^0.5.1" - write-file-atomic "^1.1.4" - -caching-transform@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-2.0.0.tgz#e1292bd92d35b6e8b1ed7075726724b3bd64eea0" - dependencies: - make-dir "^1.0.0" - md5-hex "^2.0.0" - package-hash "^2.0.0" - write-file-atomic "^2.0.0" - -caller-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" - dependencies: - callsites "^0.2.0" - -callsite@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" - -callsites@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" - -camelcase@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" - -camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - -can-promise@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/can-promise/-/can-promise-0.0.1.tgz#7a7597ad801fb14c8b22341dfec314b6bd6ad8d3" - dependencies: - window-or-global "^1.0.1" - -caniuse-lite@^1.0.30000844: - version "1.0.30000884" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000884.tgz#eb82a959698745033b26a4dcd34d89dba7cc6eb3" - -cashaddrjs@^0.2.7: - version "0.2.9" - resolved "https://registry.yarnpkg.com/cashaddrjs/-/cashaddrjs-0.2.9.tgz#e38e323e11e0ab761767006b3938a36278dadec9" - dependencies: - big-integer "^1.6.34" - -center-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" - dependencies: - align-text "^0.1.3" - lazy-cache "^1.0.3" - -chai@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.1.2.tgz#0f64584ba642f0f2ace2806279f4f06ca23ad73c" - dependencies: - assertion-error "^1.0.1" - check-error "^1.0.1" - deep-eql "^3.0.0" - get-func-name "^2.0.0" - pathval "^1.0.0" - type-detect "^4.0.0" - -chalk@^1.1.3: - version "1.1.3" - resolved "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - dependencies: - 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" - -chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chardet@^0.4.0: - version "0.4.2" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" - -check-error@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" - -chokidar@^1.6.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" - dependencies: - anymatch "^1.3.0" - async-each "^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" - optionalDependencies: - fsevents "^1.0.0" - -chownr@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -circular-json@^0.3.1: - version "0.3.3" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -clear@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/clear/-/clear-0.0.1.tgz#e5186e229d99448179c130311b6f9d30bff6b0ba" - -cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - dependencies: - restore-cursor "^2.0.0" - -cli-width@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" - -cliui@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" - dependencies: - center-align "^0.1.1" - right-align "^0.1.1" - wordwrap "0.0.2" - -cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" - -cliui@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" - dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - wrap-ansi "^2.0.0" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - -coininfo@Bitcoin-com/coininfo, "coininfo@github:Bitcoin-com/coininfo": - version "4.0.0" - uid eece2c6141d08c3e7783929f2a1e1e681aa1a82c - resolved "https://codeload.github.com/Bitcoin-com/coininfo/tar.gz/eece2c6141d08c3e7783929f2a1e1e681aa1a82c" - dependencies: - safe-buffer "^5.1.1" - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - dependencies: - color-name "1.1.3" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - -commander@2.15.1: - version "2.15.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" - -commander@^2.11.0, commander@^2.13.0: - version "2.17.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - -component-bind@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" - -component-emitter@1.2.1, component-emitter@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - -component-inherit@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - -concat-stream@^1.6.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - -contains-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" - -convert-source-map@^1.5.0, convert-source-map@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" - -cookie@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - -core-js@^2.4.0, core-js@^2.5.0: - version "2.5.7" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" - -core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - -cp-file@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cp-file/-/cp-file-5.0.0.tgz#bc700fd30ca32d24d46c7fb02b992e435fc5a978" - dependencies: - graceful-fs "^4.1.2" - make-dir "^1.0.0" - nested-error-stacks "^2.0.0" - pify "^3.0.0" - safe-buffer "^5.0.1" - -create-hash@^1.1.0, create-hash@^1.1.1, create-hash@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.3, create-hmac@^1.1.4: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-spawn@^4: - version "4.0.2" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" - dependencies: - lru-cache "^4.0.1" - which "^1.2.9" - -cross-spawn@^5.0.1, cross-spawn@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - -debug-log@^1.0.0, debug-log@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" - -debug@3.1.0, debug@^3.1.0, debug@~3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - dependencies: - ms "2.0.0" - -debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - dependencies: - ms "2.0.0" - -decamelize@^1.0.0, decamelize@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - -deep-eql@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" - dependencies: - type-detect "^4.0.0" - -deep-equal@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - -deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - -default-require-extensions@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" - dependencies: - strip-bom "^2.0.0" - -default-require-extensions@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-2.0.0.tgz#f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7" - dependencies: - strip-bom "^3.0.0" - -define-properties@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -defined@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - -deglob@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/deglob/-/deglob-2.1.1.tgz#d268e168727799862e8eac07042e165957c1f3be" - dependencies: - find-root "^1.0.0" - glob "^7.0.5" - ignore "^3.0.9" - pkg-config "^1.1.0" - run-parallel "^1.1.2" - uniq "^1.0.1" - -del@^2.0.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" - dependencies: - globby "^5.0.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - rimraf "^2.2.8" - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - dependencies: - repeating "^2.0.0" - -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - -diff@3.5.0, diff@^3.1.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" - -dijkstrajs@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.1.tgz#d3cd81221e3ea40742cfcde556d4e99e98ddc71b" - -doctrine@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" - dependencies: - esutils "^2.0.2" - isarray "^1.0.0" - -doctrine@^2.0.2, doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - dependencies: - esutils "^2.0.2" - -drbg.js@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/drbg.js/-/drbg.js-1.0.1.tgz#3e36b6c42b37043823cdbc332d58f31e2445480b" - dependencies: - browserify-aes "^1.0.6" - create-hash "^1.1.2" - create-hmac "^1.1.4" - -ecurve@^1.0.0, ecurve@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/ecurve/-/ecurve-1.0.6.tgz#dfdabbb7149f8d8b78816be5a7d5b83fcf6de797" - dependencies: - bigi "^1.1.0" - safe-buffer "^5.0.1" - -electron-to-chromium@^1.3.47: - version "1.3.62" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.62.tgz#2e8e2dc070c800ec8ce23ff9dfcceb585d6f9ed8" - -elliptic@^6.2.3: - version "6.4.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -engine.io-client@~3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz#6f54c0475de487158a1a7c77d10178708b6add36" - dependencies: - component-emitter "1.2.1" - component-inherit "0.0.3" - debug "~3.1.0" - engine.io-parser "~2.1.1" - has-cors "1.1.0" - indexof "0.0.1" - parseqs "0.0.5" - parseuri "0.0.5" - ws "~3.3.1" - xmlhttprequest-ssl "~1.5.4" - yeast "0.1.2" - -engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.2.tgz#4c0f4cff79aaeecbbdcfdea66a823c6085409196" - dependencies: - after "0.8.2" - arraybuffer.slice "~0.0.7" - base64-arraybuffer "0.1.5" - blob "0.0.4" - has-binary2 "~1.0.2" - -engine.io@~3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.0.tgz#54332506f42f2edc71690d2f2a42349359f3bf7d" - dependencies: - accepts "~1.3.4" - base64id "1.0.0" - cookie "0.3.1" - debug "~3.1.0" - engine.io-parser "~2.1.0" - ws "~3.3.1" - -error-ex@^1.2.0, error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.5.0, es-abstract@^1.7.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" - dependencies: - es-to-primitive "^1.1.1" - function-bind "^1.1.1" - has "^1.0.1" - is-callable "^1.1.3" - is-regex "^1.0.4" - -es-to-primitive@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" - dependencies: - is-callable "^1.1.1" - is-date-object "^1.0.1" - is-symbol "^1.0.1" - -es6-error@^4.0.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" - -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - -eslint-config-standard-jsx@5.0.0: - version "5.0.0" - resolved "http://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-5.0.0.tgz#4abfac554f38668e0078c664569e7b2384e5d2aa" - -eslint-config-standard@11.0.0: - version "11.0.0" - resolved "http://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-11.0.0.tgz#87ee0d3c9d95382dc761958cbb23da9eea31e0ba" - -eslint-import-resolver-node@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" - dependencies: - debug "^2.6.9" - resolve "^1.5.0" - -eslint-module-utils@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz#b270362cd88b1a48ad308976ce7fa54e98411746" - dependencies: - debug "^2.6.8" - pkg-dir "^1.0.0" - -eslint-plugin-import@~2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz#26002efbfca5989b7288ac047508bd24f217b169" - dependencies: - builtin-modules "^1.1.1" - contains-path "^0.1.0" - debug "^2.6.8" - doctrine "1.5.0" - eslint-import-resolver-node "^0.3.1" - eslint-module-utils "^2.1.1" - has "^1.0.1" - lodash "^4.17.4" - minimatch "^3.0.3" - read-pkg-up "^2.0.0" - -eslint-plugin-node@~6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz#bf19642298064379315d7a4b2a75937376fa05e4" - dependencies: - ignore "^3.3.6" - minimatch "^3.0.4" - resolve "^1.3.3" - semver "^5.4.1" - -eslint-plugin-promise@~3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-3.7.0.tgz#f4bde5c2c77cdd69557a8f69a24d1ad3cfc9e67e" - -eslint-plugin-react@~7.7.0: - version "7.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz#f606c719dbd8a1a2b3d25c16299813878cca0160" - dependencies: - doctrine "^2.0.2" - has "^1.0.1" - jsx-ast-utils "^2.0.1" - prop-types "^15.6.0" - -eslint-plugin-standard@~3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz#34d0c915b45edc6f010393c7eef3823b08565cf2" - -eslint-scope@^3.7.1: - version "3.7.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535" - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-visitor-keys@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" - -eslint@~4.18.0: - version "4.18.2" - resolved "http://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz#0f81267ad1012e7d2051e186a9004cc2267b8d45" - dependencies: - ajv "^5.3.0" - babel-code-frame "^6.22.0" - chalk "^2.1.0" - concat-stream "^1.6.0" - cross-spawn "^5.1.0" - debug "^3.1.0" - doctrine "^2.1.0" - eslint-scope "^3.7.1" - eslint-visitor-keys "^1.0.0" - espree "^3.5.2" - esquery "^1.0.0" - esutils "^2.0.2" - file-entry-cache "^2.0.0" - functional-red-black-tree "^1.0.1" - glob "^7.1.2" - globals "^11.0.1" - ignore "^3.3.3" - imurmurhash "^0.1.4" - inquirer "^3.0.6" - is-resolvable "^1.0.0" - js-yaml "^3.9.1" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.4" - minimatch "^3.0.2" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.2" - pluralize "^7.0.0" - progress "^2.0.0" - require-uncached "^1.0.3" - semver "^5.3.0" - strip-ansi "^4.0.0" - strip-json-comments "~2.0.1" - table "4.0.2" - text-table "~0.2.0" - -espree@^3.5.2: - version "3.5.4" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" - dependencies: - acorn "^5.5.0" - acorn-jsx "^3.0.0" - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - -esquery@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" - dependencies: - estraverse "^4.0.0" - -esrecurse@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - dependencies: - estraverse "^4.1.0" - -estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" - -esutils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" - -evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - dependencies: - 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" - -expand-brackets@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - dependencies: - is-posix-bracket "^0.1.0" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - dependencies: - fill-range "^2.1.0" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -external-editor@^2.0.4: - version "2.2.0" - resolved "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" - dependencies: - chardet "^0.4.0" - iconv-lite "^0.4.17" - tmp "^0.0.33" - -extglob@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" - dependencies: - is-extglob "^1.0.0" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -fast-deep-equal@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" - -fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - -fast-levenshtein@~2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - -figlet@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/figlet/-/figlet-1.2.0.tgz#6c46537378fab649146b5a6143dda019b430b410" - -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - dependencies: - escape-string-regexp "^1.0.5" - -file-entry-cache@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" - dependencies: - flat-cache "^1.2.1" - object-assign "^4.0.1" - -filename-regex@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" - -fill-range@^2.1.0: - version "2.2.4" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^3.0.0" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -find-cache-dir@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" - dependencies: - commondir "^1.0.1" - mkdirp "^0.5.1" - pkg-dir "^1.0.0" - -find-cache-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.0.0.tgz#4c1faed59f45184530fb9d7fa123a4d04a98472d" - dependencies: - commondir "^1.0.1" - make-dir "^1.0.0" - pkg-dir "^3.0.0" - -find-root@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" - -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - -find-up@^2.0.0, find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - dependencies: - locate-path "^2.0.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - dependencies: - locate-path "^3.0.0" - -flat-cache@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" - dependencies: - circular-json "^0.3.1" - del "^2.0.2" - graceful-fs "^4.1.2" - write "^0.2.1" - -flow-bin@^0.64.0: - version "0.64.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.64.0.tgz#ddd3fb3b183ab1ab35a5d5dec9caf5ebbcded167" - -follow-redirects@^1.2.5: - version "1.5.7" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.7.tgz#a39e4804dacb90202bca76a9e2ac10433ca6a69a" - dependencies: - debug "^3.1.0" - -for-each@~0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - dependencies: - is-callable "^1.1.3" - -for-in@^1.0.1, for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - -for-own@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" - dependencies: - for-in "^1.0.1" - -foreground-child@^1.5.3, foreground-child@^1.5.6: - version "1.5.6" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9" - dependencies: - cross-spawn "^4" - signal-exit "^3.0.0" - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - dependencies: - map-cache "^0.2.2" - -fs-minipass@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" - dependencies: - minipass "^2.2.1" - -fs-readdir-recursive@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - -fsevents@^1.0.0: - version "1.2.4" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" - dependencies: - nan "^2.9.2" - node-pre-gyp "^0.10.0" - -function-bind@^1.0.2, function-bind@^1.1.1, function-bind@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - dependencies: - 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" - -get-caller-file@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" - -get-func-name@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" - -get-stdin@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" - -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - -git-clone@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/git-clone/-/git-clone-0.1.0.tgz#0d76163778093aef7f1c30238f2a9ef3f07a2eb9" - -glob-base@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" - -glob-parent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" - dependencies: - is-glob "^2.0.0" - -glob@7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.2, glob@~7.1.2: - version "7.1.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^11.0.1, globals@^11.1.0: - version "11.7.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.7.0.tgz#a583faa43055b1aca771914bf68258e2fc125673" - -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - -globby@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" - dependencies: - array-union "^1.0.1" - arrify "^1.0.0" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4: - version "4.1.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" - -growl@1.10.5: - version "1.10.5" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" - -handlebars@^4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc" - dependencies: - async "^1.4.0" - optimist "^0.6.1" - source-map "^0.4.4" - optionalDependencies: - uglify-js "^2.6" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - dependencies: - ansi-regex "^2.0.0" - -has-binary2@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" - dependencies: - isarray "2.0.1" - -has-cors@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.1, has@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.5" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.5.tgz#e38ab4b85dfb1e0c40fe9265c0e9b54854c23812" - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -he@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - -hosted-git-info@^2.1.4: - version "2.7.1" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" - -iconv-lite@^0.4.17, iconv-lite@^0.4.4: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ieee754@^1.1.4: - version "1.1.12" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b" - -ignore-walk@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" - dependencies: - minimatch "^3.0.4" - -ignore@^3.0.9, ignore@^3.3.3, ignore@^3.3.6: - version "3.3.10" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - -ini@^1.3.5, ini@~1.3.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - -inquirer@^3.0.6: - version "3.3.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" - dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.0" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^2.0.4" - figures "^2.0.0" - lodash "^4.3.0" - mute-stream "0.0.7" - run-async "^2.2.0" - rx-lite "^4.0.8" - rx-lite-aggregates "^4.0.8" - string-width "^2.1.0" - strip-ansi "^4.0.0" - through "^2.3.6" - -invariant@^2.2.0, invariant@^2.2.2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - dependencies: - loose-envify "^1.0.0" - -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - dependencies: - kind-of "^6.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - dependencies: - binary-extensions "^1.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - -is-builtin-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" - dependencies: - builtin-modules "^1.0.0" - -is-callable@^1.1.1, is-callable@^1.1.3: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-dotfile@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" - -is-equal-shallow@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" - dependencies: - is-primitive "^2.0.0" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - -is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - -is-glob@^2.0.0, is-glob@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - dependencies: - is-extglob "^1.0.0" - -is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - dependencies: - kind-of "^3.0.2" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - dependencies: - kind-of "^3.0.2" - -is-number@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" - -is-path-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" - -is-path-in-cwd@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" - dependencies: - is-path-inside "^1.0.0" - -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - dependencies: - path-is-inside "^1.0.1" - -is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - dependencies: - isobject "^3.0.1" - -is-posix-bracket@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" - -is-primitive@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" - -is-promise@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" - -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" - dependencies: - has "^1.0.1" - -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - -is-symbol@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" - -is-utf8@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - -isarray@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" - -isarray@^2.0.1: - version "2.0.4" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.4.tgz#38e7bcbb0f3ba1b7933c86ba1894ddfc3781bbb7" - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - -istanbul-lib-coverage@^1.1.2, istanbul-lib-coverage@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz#f7d8f2e42b97e37fe796114cb0f9d68b5e3a4341" - -istanbul-lib-coverage@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#2aee0e073ad8c5f6a0b00e0dfbf52b4667472eda" - -istanbul-lib-hook@^1.1.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.2.1.tgz#f614ec45287b2a8fc4f07f5660af787575601805" - dependencies: - append-transform "^1.0.0" - -istanbul-lib-hook@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-2.0.1.tgz#918a57b75a0f951d552a08487ca1fa5336433d72" - dependencies: - append-transform "^1.0.0" - -istanbul-lib-instrument@^1.10.0: - version "1.10.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz#724b4b6caceba8692d3f1f9d0727e279c401af7b" - dependencies: - babel-generator "^6.18.0" - babel-template "^6.16.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - babylon "^6.18.0" - istanbul-lib-coverage "^1.2.0" - semver "^5.3.0" - -istanbul-lib-instrument@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-2.3.2.tgz#b287cbae2b5f65f3567b05e2e29b275eaf92d25e" - dependencies: - "@babel/generator" "7.0.0-beta.51" - "@babel/parser" "7.0.0-beta.51" - "@babel/template" "7.0.0-beta.51" - "@babel/traverse" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" - istanbul-lib-coverage "^2.0.1" - semver "^5.5.0" - -istanbul-lib-report@^1.1.3: - version "1.1.4" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.4.tgz#e886cdf505c4ebbd8e099e4396a90d0a28e2acb5" - dependencies: - istanbul-lib-coverage "^1.2.0" - mkdirp "^0.5.1" - path-parse "^1.0.5" - supports-color "^3.1.2" - -istanbul-lib-report@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.1.tgz#64a0a08f42676b9c801b841b9dc3311017c6ae09" - dependencies: - istanbul-lib-coverage "^2.0.1" - make-dir "^1.3.0" - supports-color "^5.4.0" - -istanbul-lib-source-maps@^1.2.3: - version "1.2.5" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.5.tgz#ffe6be4e7ab86d3603e4290d54990b14506fc9b1" - dependencies: - debug "^3.1.0" - istanbul-lib-coverage "^1.2.0" - mkdirp "^0.5.1" - rimraf "^2.6.1" - source-map "^0.5.3" - -istanbul-lib-source-maps@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-2.0.1.tgz#ce8b45131d8293fdeaa732f4faf1852d13d0a97e" - dependencies: - debug "^3.1.0" - istanbul-lib-coverage "^2.0.1" - make-dir "^1.3.0" - rimraf "^2.6.2" - source-map "^0.6.1" - -istanbul-reports@^1.4.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.5.0.tgz#c6c2867fa65f59eb7dcedb7f845dfc76aaee70f9" - dependencies: - handlebars "^4.0.11" - -istanbul-reports@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.0.0.tgz#eb12eddf55724ebc557b32cd77c34d11ed7980c1" - dependencies: - handlebars "^4.0.11" - -js-tokens@^3.0.0, js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - -"js-tokens@^3.0.0 || ^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - -js-yaml@^3.9.1: - version "3.12.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - -jsesc@^2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe" - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - -json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - -json-schema-traverse@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - -json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - -jsx-ast-utils@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f" - dependencies: - array-includes "^3.0.3" - -just-extend@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-3.0.0.tgz#cee004031eaabf6406da03a7b84e4fe9d78ef288" - -keccak@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-1.4.0.tgz#572f8a6dbee8e7b3aa421550f9e6408ca2186f80" - dependencies: - bindings "^1.2.1" - inherits "^2.0.3" - nan "^2.2.1" - safe-buffer "^5.1.0" - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" - -lazy-cache@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" - -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - dependencies: - invert-kv "^1.0.0" - -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -lodash.flattendeep@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" - -lodash.get@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - -lodash.toarray@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" - -lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0: - version "4.17.10" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" - -lolex@^2.2.0, lolex@^2.3.2: - version "2.7.1" - resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.7.1.tgz#e40a8c4d1f14b536aa03e42a537c7adbaf0c20be" - -longest@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - -loose-envify@^1.0.0, loose-envify@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lru-cache@^4.0.1: - version "4.1.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c" - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -make-dir@^1.0.0, make-dir@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" - dependencies: - pify "^3.0.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - dependencies: - object-visit "^1.0.0" - -math-random@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac" - -md5-hex@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4" - dependencies: - md5-o-matic "^0.1.1" - -md5-hex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-2.0.0.tgz#d0588e9f1c74954492ecd24ac0ac6ce997d92e33" - dependencies: - md5-o-matic "^0.1.1" - -md5-o-matic@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3" - -md5.js@^1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -mem@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" - dependencies: - mimic-fn "^1.0.0" - -merge-source-map@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" - dependencies: - source-map "^0.6.1" - -merkle-lib@^2.0.10: - version "2.0.10" - resolved "https://registry.yarnpkg.com/merkle-lib/-/merkle-lib-2.0.10.tgz#82b8dbae75e27a7785388b73f9d7725d0f6f3326" - -micromatch@^2.1.5: - version "2.3.11" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - dependencies: - 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" - -micromatch@^3.1.10: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -mime-db@~1.36.0: - version "1.36.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.36.0.tgz#5020478db3c7fe93aad7bbcc4dcf869c43363397" - -mime-types@~2.1.18: - version "2.1.20" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.20.tgz#930cb719d571e903738520f8470911548ca2cc19" - dependencies: - mime-db "~1.36.0" - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - -minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - dependencies: - brace-expansion "^1.1.7" - -minimist@0.0.8: - version "0.0.8" - resolved "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - -minimist@^1.1.0, minimist@^1.2.0, minimist@~1.2.0: - version "1.2.0" - resolved "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - -minimist@~0.0.1: - version "0.0.10" - resolved "http://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - -minipass@^2.2.1, minipass@^2.3.3: - version "2.3.4" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.4.tgz#4768d7605ed6194d6d576169b9e12ef71e9d9957" - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minizlib@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" - dependencies: - minipass "^2.2.1" - -mixin-deep@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1: - version "0.5.1" - resolved "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - dependencies: - minimist "0.0.8" - -mocha@^5.0.1: - version "5.2.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz#6d8ae508f59167f940f2b5b3c4a612ae50c90ae6" - dependencies: - browser-stdout "1.3.1" - commander "2.15.1" - debug "3.1.0" - diff "3.5.0" - escape-string-regexp "1.0.5" - glob "7.1.2" - growl "1.10.5" - he "1.1.1" - minimatch "3.0.4" - mkdirp "0.5.1" - supports-color "5.4.0" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - -nan@^2.2.1, nan@^2.9.2: - version "2.11.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.11.0.tgz#574e360e4d954ab16966ec102c0c049fd961a099" - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - -needle@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.2.tgz#1120ca4c41f2fcc6976fd28a8968afe239929418" - dependencies: - debug "^2.1.2" - iconv-lite "^0.4.4" - sax "^1.2.4" - -negotiator@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" - -nested-error-stacks@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz#0fbdcf3e13fe4994781280524f8b96b0cdff9c61" - -nise@^1.2.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/nise/-/nise-1.4.4.tgz#b8d9dd35334c99e514b75e46fcc38e358caecdd0" - dependencies: - "@sinonjs/formatio" "^2.0.0" - just-extend "^3.0.0" - lolex "^2.3.2" - path-to-regexp "^1.7.0" - text-encoding "^0.6.4" - -node-cmd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/node-cmd/-/node-cmd-3.0.0.tgz#38fff70a4aaa4f659d203eb57862737018e24f6f" - -node-emoji@^1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.8.1.tgz#6eec6bfb07421e2148c75c6bba72421f8530a826" - dependencies: - lodash.toarray "^4.4.0" - -node-pre-gyp@^0.10.0: - version "0.10.3" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - -nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - dependencies: - abbrev "1" - osenv "^0.1.4" - -nopt@~1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" - dependencies: - abbrev "1" - -normalize-package-data@^2.3.2: - version "2.4.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" - dependencies: - 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@^2.0.0, normalize-path@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - dependencies: - remove-trailing-separator "^1.0.1" - -npm-bundled@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979" - -npm-packlist@^1.1.6: - version "1.1.11" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.11.tgz#84e8c683cbe7867d34b1d357d893ce29e28a02de" - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - dependencies: - path-key "^2.0.0" - -npmlog@^4.0.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - dependencies: - 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@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - -nyc@*: - version "13.0.1" - resolved "https://registry.yarnpkg.com/nyc/-/nyc-13.0.1.tgz#b61857ed633c803353fc41eeca775d0e1f62034b" - dependencies: - archy "^1.0.0" - arrify "^1.0.1" - caching-transform "^2.0.0" - convert-source-map "^1.5.1" - debug-log "^1.0.1" - find-cache-dir "^2.0.0" - find-up "^3.0.0" - foreground-child "^1.5.6" - glob "^7.1.2" - istanbul-lib-coverage "^2.0.1" - istanbul-lib-hook "^2.0.1" - istanbul-lib-instrument "^2.3.2" - istanbul-lib-report "^2.0.1" - istanbul-lib-source-maps "^2.0.1" - istanbul-reports "^2.0.0" - make-dir "^1.3.0" - merge-source-map "^1.1.0" - resolve-from "^4.0.0" - rimraf "^2.6.2" - signal-exit "^3.0.2" - spawn-wrap "^1.4.2" - test-exclude "^5.0.0" - uuid "^3.3.2" - yargs "11.1.0" - yargs-parser "^9.0.2" - -nyc@^11.6.0: - version "11.9.0" - resolved "https://registry.yarnpkg.com/nyc/-/nyc-11.9.0.tgz#4106e89e8fbe73623a1fc8b6ecb7abaa271ae1e4" - dependencies: - archy "^1.0.0" - arrify "^1.0.1" - caching-transform "^1.0.0" - convert-source-map "^1.5.1" - debug-log "^1.0.1" - default-require-extensions "^1.0.0" - find-cache-dir "^0.1.1" - find-up "^2.1.0" - foreground-child "^1.5.3" - glob "^7.0.6" - istanbul-lib-coverage "^1.1.2" - istanbul-lib-hook "^1.1.0" - istanbul-lib-instrument "^1.10.0" - istanbul-lib-report "^1.1.3" - istanbul-lib-source-maps "^1.2.3" - istanbul-reports "^1.4.0" - md5-hex "^1.2.0" - merge-source-map "^1.1.0" - micromatch "^3.1.10" - mkdirp "^0.5.0" - resolve-from "^2.0.0" - rimraf "^2.6.2" - signal-exit "^3.0.1" - spawn-wrap "^1.4.2" - test-exclude "^4.2.0" - yargs "11.1.0" - yargs-parser "^8.0.0" - -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - -object-component@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-inspect@~1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" - -object-keys@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - dependencies: - isobject "^3.0.0" - -object.omit@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" - dependencies: - for-own "^0.1.4" - is-extendable "^0.1.1" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - dependencies: - isobject "^3.0.1" - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - dependencies: - wrappy "1" - -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - dependencies: - mimic-fn "^1.0.0" - -optimist@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" - -optionator@^0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.4" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - wordwrap "~1.0.0" - -os-homedir@^1.0.0, os-homedir@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - -os-locale@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" - dependencies: - execa "^0.7.0" - lcid "^1.0.0" - mem "^1.1.0" - -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - -osenv@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -output-file-sync@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" - dependencies: - graceful-fs "^4.1.4" - mkdirp "^0.5.1" - object-assign "^4.1.0" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - dependencies: - p-try "^1.0.0" - -p-limit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.0.0.tgz#e624ed54ee8c460a778b3c9f3670496ff8a57aec" - dependencies: - p-try "^2.0.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - dependencies: - p-limit "^1.1.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - dependencies: - p-limit "^2.0.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - -p-try@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" - -package-hash@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-2.0.0.tgz#78ae326c89e05a4d813b68601977af05c00d2a0d" - dependencies: - graceful-fs "^4.1.11" - lodash.flattendeep "^4.4.0" - md5-hex "^2.0.0" - release-zalgo "^1.0.0" - -parse-glob@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" - dependencies: - glob-base "^0.3.0" - is-dotfile "^1.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.0" - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - dependencies: - error-ex "^1.2.0" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parseqs@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" - dependencies: - better-assert "~1.0.0" - -parseuri@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" - dependencies: - better-assert "~1.0.0" - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - dependencies: - pinkie-promise "^2.0.0" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - -path-is-inside@^1.0.1, path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - -path-key@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - -path-parse@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - -path-to-regexp@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" - dependencies: - isarray "0.0.1" - -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - dependencies: - pify "^2.0.0" - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - dependencies: - pify "^3.0.0" - -pathval@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" - -pbkdf2@^3.0.9: - version "3.0.16" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.16.tgz#7404208ec6b01b62d85bf83853a8064f8d9c2a5c" - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -pify@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - -pkg-conf@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.1.0.tgz#2126514ca6f2abfebd168596df18ba57867f0058" - dependencies: - find-up "^2.0.0" - load-json-file "^4.0.0" - -pkg-config@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pkg-config/-/pkg-config-1.1.1.tgz#557ef22d73da3c8837107766c52eadabde298fe4" - dependencies: - debug-log "^1.0.0" - find-root "^1.0.0" - xtend "^4.0.1" - -pkg-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" - dependencies: - find-up "^1.0.0" - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - dependencies: - find-up "^3.0.0" - -pluralize@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" - -pngjs@^3.3.0: - version "3.3.3" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.3.3.tgz#85173703bde3edac8998757b96e5821d0966a21b" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - -preserve@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - -private@^0.1.6, private@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - -process-nextick-args@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" - -progress@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" - -prop-types@^15.6.0: - version "15.6.2" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102" - dependencies: - loose-envify "^1.3.1" - object-assign "^4.1.1" - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - -pushdata-bitcoin@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz#15931d3cd967ade52206f523aa7331aef7d43af7" - dependencies: - bitcoin-ops "^1.3.0" - -qrcode@^1.2.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.2.2.tgz#f3c97f5a4c32cf5c2ec75b63c1b66a38df122693" - dependencies: - can-promise "^0.0.1" - dijkstrajs "^1.0.1" - isarray "^2.0.1" - pngjs "^3.3.0" - yargs "^8.0.2" - -qs@^6.3.0: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - -randomatic@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.0.tgz#36f2ca708e9e567f5ed2ec01949026d50aa10116" - dependencies: - is-number "^4.0.0" - kind-of "^6.0.0" - math-random "^1.0.1" - -randombytes@^2.0.1, randombytes@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" - dependencies: - safe-buffer "^5.1.0" - -rc@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - dependencies: - find-up "^2.0.0" - read-pkg "^2.0.0" - -read-pkg-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" - dependencies: - find-up "^2.0.0" - read-pkg "^3.0.0" - -read-pkg-up@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" - dependencies: - find-up "^3.0.0" - read-pkg "^3.0.0" - -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" - -readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.2.2: - version "2.3.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readdirp@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" - dependencies: - graceful-fs "^4.1.2" - minimatch "^3.0.2" - readable-stream "^2.0.2" - set-immediate-shim "^1.0.1" - -regenerate@^1.2.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - -regenerator-runtime@^0.10.5: - version "0.10.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" - dependencies: - babel-runtime "^6.18.0" - babel-types "^6.19.0" - private "^0.1.6" - -regex-cache@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" - dependencies: - is-equal-shallow "^0.1.3" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - dependencies: - jsesc "~0.5.0" - -release-zalgo@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/release-zalgo/-/release-zalgo-1.0.0.tgz#09700b7e5074329739330e535c5a90fb67851730" - dependencies: - es6-error "^4.0.1" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - -repeat-string@^1.5.2, repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - dependencies: - is-finite "^1.0.0" - -repl.history@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/repl.history/-/repl.history-0.1.4.tgz#80367171f3781d6e4299c71758c253097f5d5832" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - -require-uncached@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" - dependencies: - caller-path "^0.1.0" - resolve-from "^1.0.0" - -resolve-from@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" - -resolve-from@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - -resolve@^1.3.3, resolve@^1.5.0: - version "1.8.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" - dependencies: - path-parse "^1.0.5" - -resolve@~1.7.1: - version "1.7.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.7.1.tgz#aadd656374fd298aee895bc026b8297418677fd3" - dependencies: - path-parse "^1.0.5" - -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - -resumer@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" - dependencies: - through "~2.3.4" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - -right-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" - dependencies: - align-text "^0.1.1" - -rimraf@^2.2.8, rimraf@^2.6.1, rimraf@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" - dependencies: - glob "^7.0.5" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -run-async@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" - dependencies: - is-promise "^2.1.0" - -run-parallel@^1.1.2: - version "1.1.9" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" - -rx-lite-aggregates@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" - dependencies: - rx-lite "*" - -rx-lite@*, rx-lite@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - -samsam@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.3.0.tgz#8d1d9350e25622da30de3e44ba692b5221ab7c50" - -satoshi-bitcoin@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/satoshi-bitcoin/-/satoshi-bitcoin-1.0.4.tgz#d002b677075d5cbbf2c211a8df3254bcdf50b1e4" - dependencies: - big.js "^3.1.3" - -sax@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - -scryptsy@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-2.0.0.tgz#262c36f0231cfa7654e2363fa394cd2dec66f378" - -secp256k1@^3.0.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.5.2.tgz#f95f952057310722184fe9c914e6b71281f2f2ae" - dependencies: - bindings "^1.2.1" - bip66 "^1.1.3" - bn.js "^4.11.3" - create-hash "^1.1.2" - drbg.js "^1.0.1" - elliptic "^6.2.3" - nan "^2.2.1" - safe-buffer "^5.1.0" - -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0: - version "5.5.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz#7dfdd8814bdb7cabc7be0fb1d734cfb66c940477" - -set-blocking@^2.0.0, set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - -set-immediate-shim@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" - -set-value@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.1" - to-object-path "^0.3.0" - -set-value@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - dependencies: - shebang-regex "^1.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - -signal-exit@^3.0.0, signal-exit@^3.0.1, signal-exit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - -sinon@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-4.5.0.tgz#427ae312a337d3c516804ce2754e8c0d5028cb04" - dependencies: - "@sinonjs/formatio" "^2.0.0" - diff "^3.1.0" - lodash.get "^4.4.2" - lolex "^2.2.0" - nise "^1.2.0" - supports-color "^5.1.0" - type-detect "^4.0.5" - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - -slice-ansi@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" - dependencies: - is-fullwidth-code-point "^2.0.0" - -slide@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -socket.io-adapter@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b" - -socket.io-client@2.1.1, socket.io-client@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.1.tgz#dcb38103436ab4578ddb026638ae2f21b623671f" - dependencies: - backo2 "1.0.2" - base64-arraybuffer "0.1.5" - component-bind "1.0.0" - component-emitter "1.2.1" - debug "~3.1.0" - engine.io-client "~3.2.0" - has-binary2 "~1.0.2" - has-cors "1.1.0" - indexof "0.0.1" - object-component "0.0.3" - parseqs "0.0.5" - parseuri "0.0.5" - socket.io-parser "~3.2.0" - to-array "0.1.4" - -socket.io-parser@~3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.2.0.tgz#e7c6228b6aa1f814e6148aea325b51aa9499e077" - dependencies: - component-emitter "1.2.1" - debug "~3.1.0" - isarray "2.0.1" - -socket.io@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.1.tgz#a069c5feabee3e6b214a75b40ce0652e1cfb9980" - dependencies: - debug "~3.1.0" - engine.io "~3.2.0" - has-binary2 "~1.0.2" - socket.io-adapter "~1.1.0" - socket.io-client "2.1.1" - socket.io-parser "~3.2.0" - -source-map-resolve@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" - dependencies: - atob "^2.1.1" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - dependencies: - source-map "^0.5.6" - -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - -source-map@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" - dependencies: - amdefine ">=0.0.4" - -source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - -source-map@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - -spawn-wrap@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.4.2.tgz#cff58e73a8224617b6561abdc32586ea0c82248c" - dependencies: - foreground-child "^1.5.6" - mkdirp "^0.5.0" - os-homedir "^1.0.1" - rimraf "^2.6.2" - signal-exit "^3.0.2" - which "^1.3.0" - -spdx-correct@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" - -spdx-expression-parse@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - -standard-engine@~8.0.0: - version "8.0.1" - resolved "http://registry.npmjs.org/standard-engine/-/standard-engine-8.0.1.tgz#0b77be8d7ab963675717dbeac1ef1d6675fb62f0" - dependencies: - deglob "^2.1.0" - get-stdin "^6.0.0" - minimist "^1.1.0" - pkg-conf "^2.0.0" - -standard@^11.0.1: - version "11.0.1" - resolved "http://registry.npmjs.org/standard/-/standard-11.0.1.tgz#49be40c76f1d564964b22bbf7309929ad0335e29" - dependencies: - eslint "~4.18.0" - eslint-config-standard "11.0.0" - eslint-config-standard-jsx "5.0.0" - eslint-plugin-import "~2.9.0" - eslint-plugin-node "~6.0.0" - eslint-plugin-promise "~3.7.0" - eslint-plugin-react "~7.7.0" - eslint-plugin-standard "~3.0.1" - standard-engine "~8.0.0" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string.prototype.trim@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz#d04de2c89e137f4d7d206f086b5ed2fae6be8cea" - dependencies: - define-properties "^1.1.2" - es-abstract "^1.5.0" - function-bind "^1.0.2" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - dependencies: - ansi-regex "^3.0.0" - -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - dependencies: - is-utf8 "^0.2.0" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - -supports-color@5.4.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" - dependencies: - has-flag "^3.0.0" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - -supports-color@^3.1.2: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - dependencies: - has-flag "^1.0.0" - -supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.4.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - dependencies: - has-flag "^3.0.0" - -table@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" - dependencies: - ajv "^5.2.3" - ajv-keywords "^2.1.0" - chalk "^2.1.0" - lodash "^4.17.4" - slice-ansi "1.0.0" - string-width "^2.1.1" - -tape@*: - version "4.9.1" - resolved "https://registry.yarnpkg.com/tape/-/tape-4.9.1.tgz#1173d7337e040c76fbf42ec86fcabedc9b3805c9" - dependencies: - deep-equal "~1.0.1" - defined "~1.0.0" - for-each "~0.3.3" - function-bind "~1.1.1" - glob "~7.1.2" - has "~1.0.3" - inherits "~2.0.3" - minimist "~1.2.0" - object-inspect "~1.6.0" - resolve "~1.7.1" - resumer "~0.0.0" - string.prototype.trim "~1.1.2" - through "~2.3.8" - -tar@^4: - version "4.4.6" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.6.tgz#63110f09c00b4e60ac8bcfe1bf3c8660235fbc9b" - dependencies: - chownr "^1.0.1" - fs-minipass "^1.2.5" - minipass "^2.3.3" - minizlib "^1.1.0" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.2" - -test-exclude@^4.2.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.2.tgz#8b67aa8408f84afc225b06669e25c510f8582820" - dependencies: - arrify "^1.0.1" - minimatch "^3.0.4" - read-pkg-up "^3.0.0" - require-main-filename "^1.0.1" - -test-exclude@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.0.0.tgz#cdce7cece785e0e829cd5c2b27baf18bc583cfb7" - dependencies: - arrify "^1.0.1" - minimatch "^3.0.4" - read-pkg-up "^4.0.0" - require-main-filename "^1.0.1" - -text-encoding@^0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/text-encoding/-/text-encoding-0.6.4.tgz#e399a982257a276dae428bb92845cb71bdc26d19" - -text-table@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - -through@^2.3.6, through@~2.3.4, through@~2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - dependencies: - os-tmpdir "~1.0.2" - -to-array@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -touch@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" - dependencies: - nopt "~1.0.10" - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - dependencies: - prelude-ls "~1.1.2" - -type-detect@^4.0.0, type-detect@^4.0.5: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - -typeforce@^1.11.3: - version "1.12.0" - resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.12.0.tgz#ca40899919f1466d7819e37be039406beb912a2e" - -uglify-js@^2.6: - version "2.8.29" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" - dependencies: - source-map "~0.5.1" - yargs "~3.10.0" - optionalDependencies: - uglify-to-browserify "~1.0.0" - -uglify-to-browserify@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" - -ultron@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" - -union-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^0.4.3" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - -unorm@^1.3.3: - version "1.4.1" - resolved "https://registry.yarnpkg.com/unorm/-/unorm-1.4.1.tgz#364200d5f13646ca8bcd44490271335614792300" - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - -user-home@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - dependencies: - inherits "2.0.1" - -uuid@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" - -v8flags@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" - dependencies: - user-home "^1.1.1" - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -varuint-bitcoin@^1.0.1, varuint-bitcoin@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz#7a343f50537607af6a3059312b9782a170894540" - dependencies: - safe-buffer "^5.1.1" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - -which@^1.2.9, which@^1.3.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - dependencies: - string-width "^1.0.2 || 2" - -wif@^2.0.1, wif@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/wif/-/wif-2.0.6.tgz#08d3f52056c66679299726fade0d432ae74b4704" - dependencies: - bs58check "<3.0.0" - -window-or-global@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/window-or-global/-/window-or-global-1.0.1.tgz#dbe45ba2a291aabc56d62cf66c45b7fa322946de" - -window-size@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" - -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - -wordwrap@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - -write-file-atomic@^1.1.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - slide "^1.1.5" - -write-file-atomic@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - -write@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" - dependencies: - mkdirp "^0.5.1" - -ws@~3.3.1: - version "3.3.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" - dependencies: - async-limiter "~1.0.0" - safe-buffer "~5.1.0" - ultron "~1.1.0" - -xmlhttprequest-ssl@~1.5.4: - version "1.5.5" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" - -xtend@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" - -y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - -yallist@^3.0.0, yallist@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" - -yargs-parser@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" - dependencies: - camelcase "^4.1.0" - -yargs-parser@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950" - dependencies: - camelcase "^4.1.0" - -yargs-parser@^9.0.2: - version "9.0.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" - dependencies: - camelcase "^4.1.0" - -yargs@11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" - dependencies: - 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 "^9.0.2" - -yargs@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" - dependencies: - camelcase "^4.1.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^2.0.0" - read-pkg-up "^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 "^7.0.0" - -yargs@~3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" - dependencies: - camelcase "^1.0.2" - cliui "^2.1.0" - decamelize "^1.0.0" - window-size "0.1.0" - -yeast@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" From 1356cbc73507682f8287412ab79b3cf4f03de485 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Mon, 24 Sep 2018 17:47:12 +0900 Subject: [PATCH 082/480] Linting, fully bake the P2SH API and add Address.fromOutputScript test. --- .eslintrc.json | 54 + index.js | 266 ++- lib/Address.js | 84 +- lib/BitcoinCash.js | 100 +- lib/Block.js | 8 +- lib/Blockchain.js | 92 +- lib/Control.js | 12 +- lib/Crypto.js | 16 +- lib/ECPair.js | 34 +- lib/Generating.js | 8 +- lib/HDNode.js | 64 +- lib/Mining.js | 22 +- lib/Mnemonic.js | 57 +- lib/Network.js | 42 +- lib/Price.js | 12 +- lib/RawTransactions.js | 28 +- lib/Script.js | 18 +- lib/Socket.js | 24 +- lib/Transaction.js | 22 +- lib/TransactionBuilder.js | 39 +- lib/Util.js | 8 +- lib/bitbox-cli.js | 52 +- package-lock.json | 4325 +++++++++++++++++++++--------------- package.json | 15 +- src/Address.js | 116 +- src/BitcoinCash.js | 121 +- src/Block.js | 11 +- src/Blockchain.js | 171 +- src/Control.js | 15 +- src/Crypto.js | 17 +- src/ECPair.js | 45 +- src/Generating.js | 17 +- src/HDNode.js | 94 +- src/Mining.js | 39 +- src/Mnemonic.js | 427 ++-- src/Network.js | 63 +- src/Price.js | 19 +- src/RawTransactions.js | 59 +- src/Script.js | 59 +- src/Socket.js | 39 +- src/Transaction.js | 31 +- src/TransactionBuilder.js | 82 +- src/Util.js | 15 +- src/bitbox-cli.js | 89 +- test/Address.js | 863 +++---- test/BitcoinCash.js | 454 ++-- test/Block.js | 74 +- test/Blockchain.js | 711 +++--- test/Control.js | 84 +- test/Crypto.js | 175 +- test/ECPair.js | 179 +- test/Generating.js | 52 +- test/HDNode.js | 551 ++--- test/Mining.js | 157 +- test/Mnemonic.js | 571 ++--- test/Network.js | 294 ++- test/Price.js | 89 +- test/RawTransactions.js | 216 +- test/Script.js | 675 +++--- test/Transaction.js | 78 +- test/TransactionBuilder.js | 2543 ++++++++++++--------- test/Util.js | 59 +- test/fixtures/Address.json | 3 +- 63 files changed, 8215 insertions(+), 6544 deletions(-) create mode 100644 .eslintrc.json diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 00000000..06818ce3 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,54 @@ +{ + "root": true, + "parserOptions": { + "ecmaVersion": 2018 + }, + "plugins": ["prettier"], + "rules": { + "no-debugger": ["warn"], + "no-regex-spaces": ["error"], + "no-unsafe-negation": ["error"], + "curly": ["error", "multi-or-nest", "consistent"], + "dot-location": ["error", "property"], + "dot-notation": ["error"], + "eqeqeq": ["error", "smart"], + "no-else-return": ["error"], + "no-extra-bind": ["error"], + "no-extra-label": ["error"], + "no-floating-decimal": ["error"], + "no-implicit-coercion": ["error", { "allow": ["!!"] }], + "wrap-iife": ["error", "inside"], + "strict": ["error", "global"], + "func-call-spacing": ["error", "never"], + "comma-style": ["error", "last"], + "keyword-spacing": ["error"], + "linebreak-style": ["error", "unix"], + "new-parens": ["error"], + "no-lonely-if": ["error"], + "no-multiple-empty-lines": ["error", { "max": 2, "maxEOF": 1 }], + "no-whitespace-before-property": ["error"], + "semi": ["error", "never"], + "arrow-body-style": ["error", "as-needed"], + "arrow-parens": ["error", "as-needed"], + "arrow-spacing": ["error"], + "no-useless-computed-key": ["error"], + "no-useless-rename": ["error"], + "no-var": ["error"], + "prefer-spread": ["error"], + "prefer-template": ["error"], + "rest-spread-spacing": ["error", "never"], + "prefer-const": ["warn", { "destructuring": "all" }], + "no-unreachable": ["warn"], + "no-unused-vars": ["warn", { "args": "none" }], + + "prettier/prettier": [ + "warn", + { + "printWidth": 80, + "trailingComma": "none", + "singleQuote": false, + "semi": false + } + ] + } +} diff --git a/index.js b/index.js index 12fb0cc7..7c7048e8 100755 --- a/index.js +++ b/index.js @@ -1,153 +1,177 @@ #!/usr/bin/env node -require("babel-register"); -let path = require('path'); -let program = require('commander'); -let chalk = require('chalk'); -let mkdirp = require('mkdirp'); -let cpFile = require('cp-file'); -let figlet = require('figlet'); -let clear = require('clear'); -let fs = require('fs'); -let os = require('os'); -let touch = require("touch"); -let emoji = require('node-emoji'); -let repl = require("repl"); -let ini = require('ini'); -let BITBOXCli = require('./lib/bitbox-cli').default; -let clone = require('git-clone'); -let cmd = require('node-cmd'); +require("babel-register") +const path = require("path") +const program = require("commander") +const chalk = require("chalk") +const mkdirp = require("mkdirp") +const cpFile = require("cp-file") +const figlet = require("figlet") +const clear = require("clear") +const fs = require("fs") +const os = require("os") +const touch = require("touch") +const emoji = require("node-emoji") +const repl = require("repl") +const ini = require("ini") +const BITBOXCli = require("./lib/bitbox-cli").default +const clone = require("git-clone") +const cmd = require("node-cmd") + +program.version("1.7.0", "-v, --version") program - .version('1.6.6', '-v, --version') - -program - .command('new ') - .option('-s, --scaffold ', 'The framework to use. Options include react, angular, vuejs, nextjs, node and websockets.') - .option('-r, --restURL ', 'The rest URL to use. default: https://rest.bitcoin.com/v1/') - .option('-e, --environment ', 'environment of running BITBOX instance. Ex: production, staging. (Default: development)') + .command("new ") + .option( + "-s, --scaffold ", + "The framework to use. Options include react, angular, vuejs, nextjs, node and websockets." + ) + .option( + "-r, --restURL ", + "The rest URL to use. default: https://rest.bitcoin.com/v1/" + ) + .option( + "-e, --environment ", + "environment of running BITBOX instance. Ex: production, staging. (Default: development)" + ) .description(`create a new BITBOX application`) .action((name, options) => { - if(fs.existsSync(`./${name}`)) { - console.log(chalk.red(`Project ${name} already exists`)); - process.exit(1); + if (fs.existsSync(`./${name}`)) { + console.log(chalk.red(`Project ${name} already exists`)) + process.exit(1) } - let config; - let environment = fetchOption('environment=development', config, options); - let restURL = fetchOption('restURL=https://trest.bitcoin.com/v1/', config, options); - - if(options && options.scaffold) { - let scaffold = options.scaffold.toLowerCase(); - let repo; - let conf = {}; - if(scaffold === 'node') { - repo = 'https://github.com/Bitcoin-com/bitbox-scaffold-node.git'; - } else if(scaffold === 'angular') { - repo = 'https://github.com/Bitcoin-com/bitbox-scaffold-angular.git'; - } else if(scaffold === 'next') { - repo = 'https://github.com/Bitcoin-com/bitbox-scaffold-next.git'; - } else if(scaffold === 'react') { - repo = 'https://github.com/Bitcoin-com/bitbox-scaffold-react.git'; - } else if(scaffold === 'vue') { - repo = 'https://github.com/Bitcoin-com/bitbox-scaffold-vue.git'; - } else if(scaffold === 'websockets') { - repo = 'https://github.com/Bitcoin-com/bitbox-scaffold-websockets.git'; - } else { - console.log(chalk.red(`Scaffold ${scaffold} not supported`)); - process.exit(1) - } + let config + const environment = fetchOption("environment=development", config, options) + const restURL = fetchOption( + "restURL=https://trest.bitcoin.com/v1/", + config, + options + ) + + if (options && options.scaffold) { + let scaffold = options.scaffold.toLowerCase() + let repo + const conf = {} + if (scaffold === "node") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-node.git" + } else if (scaffold === "angular") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-angular.git" + } else if (scaffold === "next") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-next.git" + } else if (scaffold === "react") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-react.git" + } else if (scaffold === "vue") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-vue.git" + } else if (scaffold === "websockets") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-websockets.git" + } else { + console.log(chalk.red(`Scaffold ${scaffold} not supported`)) + process.exit(1) + } - if(options && options.repo) { - scaffold = 'custom repo'; - repo = options.repo.toLowerCase(); - } + if (options && options.repo) { + scaffold = "custom repo" + repo = options.repo.toLowerCase() + } - clear(); - console.log( - chalk.blue( - figlet.textSync('BITBOX', { - font: '3-D', - horizontalLayout: 'full' - }) + clear() + console.log( + chalk.blue( + figlet.textSync("BITBOX", { + font: "3-D", + horizontalLayout: "full" + }) + ) + ) + + console.log(chalk.blue(`Scaffolding ${scaffold} app in ${name}`)) + clone(repo, `./${name}`, [conf], res => { + if (res == "Error: 'git clone' failed with status 128") { + console.log(chalk.red("Must create new app in to an empty directory")) + } else { + console.log(chalk.green("All done."), emoji.get(":white_check_mark:")) + console.log( + chalk.blue( + "Now `cd` in to your new project and run `npm install && npm start`" + ), + emoji.get(":rocket:") ) - ); - - console.log(chalk.blue(`Scaffolding ${scaffold} app in ${name}`)); - clone(repo, `./${name}`, [conf], (res) => { - if(res == "Error: 'git clone' failed with status 128") { - console.log(chalk.red('Must create new app in to an empty directory')); - } else { - console.log(chalk.green('All done.'), emoji.get(':white_check_mark:')); - console.log(chalk.blue('Now `cd` in to your new project and run `npm install && npm start`'), emoji.get(':rocket:')); - } - }); - return; - } + } + }) + return + } - console.log(chalk.green(`Creating ${name}/ directory`)); - console.log(chalk.green(`Creating src/ directory: ./${name}/src`)); - mkdirp(`./${name}/src`, (err) => {}); + console.log(chalk.green(`Creating ${name}/ directory`)) + console.log(chalk.green(`Creating src/ directory: ./${name}/src`)) + mkdirp(`./${name}/src`, err => {}) - console.log(chalk.green(`Creating tests/ directory: ./${name}/tests`)); - mkdirp(`./${name}/tests`, (err) => {}); + console.log(chalk.green(`Creating tests/ directory: ./${name}/tests`)) + mkdirp(`./${name}/tests`, err => {}) - console.log(chalk.green(`Creating bitbox.js configuration file: ./${name}/bitbox.js`)); + console.log( + chalk.green(`Creating bitbox.js configuration file: ./${name}/bitbox.js`) + ) - mkdirp(`./${name}`, (err) => {}); - touch(`./${name}/bitbox.js`); - fs.writeFileSync( `./${name}/bitbox.js`, `exports.config = { + mkdirp(`./${name}`, err => {}) + touch(`./${name}/bitbox.js`) + fs.writeFileSync( + `./${name}/bitbox.js`, + `exports.config = { networks: { ${environment}: { restURL: "${restURL}" } } }; -`); - fs.appendFileSync(`./${name}/.gitignore`, '.console_history'); - console.log(chalk.blue('All done.'), emoji.get(':white_check_mark:')); - console.log(chalk.blue('Go get em! Remember--with great power comes great responsibility.'), emoji.get(':rocket:')); - } -); +` + ) + fs.appendFileSync(`./${name}/.gitignore`, ".console_history") + console.log(chalk.blue("All done."), emoji.get(":white_check_mark:")) + console.log( + chalk.blue( + "Go get em! Remember--with great power comes great responsibility." + ), + emoji.get(":rocket:") + ) + }) program - .command('console') - .option('-e, --environment ', 'environment of running BITBOX instance. Ex: production, staging. (Default: development)') - .description('Run a console with Bitcoin Cash RPC commands available') - .action((options) => { - let config; + .command("console") + .option( + "-e, --environment ", + "environment of running BITBOX instance. Ex: production, staging. (Default: development)" + ) + .description("Run a console with Bitcoin Cash RPC commands available") + .action(options => { + let config try { - config = require(process.cwd() + '/bitbox.js').config; - } catch(err) { - console.log(chalk.red('Console command must be run inside a bitbox project')); - process.exit(1); + config = require(`${process.cwd()}/bitbox.js`).config + } catch (err) { + console.log( + chalk.red("Console command must be run inside a bitbox project") + ) + process.exit(1) } - let replServer = repl.start('> '); - let historyFile = path.join(process.cwd(), '.console_history'); - require('repl.history')(replServer, historyFile); + const replServer = repl.start("> ") + const historyFile = path.join(process.cwd(), ".console_history") + require("repl.history")(replServer, historyFile) - let environment = fetchOption('environment=development', config, options); + const environment = fetchOption("environment=development", config, options) - replServer.context.BITBOX = new BITBOXCli(config.networks[environment]); - } -); + replServer.context.BITBOX = new BITBOXCli(config.networks[environment]) + }) function fetchOption(kv, config, options) { - let parts = kv.split('='); - let key = parts[0]; - let defaultVal = parts[1]; - if(options && options[key]) { - return options[key]; - } else if(config && config.new && config.new[key]) { - return config.new[key]; - } else { - return defaultVal; - } + const parts = kv.split("=") + const key = parts[0] + const defaultVal = parts[1] + if (options && options[key]) return options[key] + else if (config && config.new && config.new[key]) return config.new[key] + + return defaultVal } -program - .parse(process.argv); +program.parse(process.argv) // print help if no command given -if (!process.argv.slice(2).length) { - program.outputHelp() -} +if (!process.argv.slice(2).length) program.outputHelp() diff --git a/lib/Address.js b/lib/Address.js index 591f1416..4a64eb7c 100644 --- a/lib/Address.js +++ b/lib/Address.js @@ -1,4 +1,4 @@ -'use strict'; +"use strict"; Object.defineProperty(exports, "__esModule", { value: true @@ -6,15 +6,15 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _axios = require('axios'); +var _axios = require("axios"); var _axios2 = _interopRequireDefault(_axios); -var _bchaddrjs = require('bchaddrjs'); +var _bchaddrjs = require("bchaddrjs"); var _bchaddrjs2 = _interopRequireDefault(_bchaddrjs); -var _bitcoincashjsLib = require('bitcoincashjs-lib'); +var _bitcoincashjsLib = require("bitcoincashjs-lib"); var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); @@ -33,40 +33,40 @@ var Address = function () { _createClass(Address, [{ - key: 'toLegacyAddress', + key: "toLegacyAddress", value: function toLegacyAddress(address) { return _bchaddrjs2.default.toLegacyAddress(address); } }, { - key: 'toCashAddress', + key: "toCashAddress", value: function toCashAddress(address) { var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; if (prefix) { return _bchaddrjs2.default.toCashAddress(address); } else { - return _bchaddrjs2.default.toCashAddress(address).split(':')[1]; + return _bchaddrjs2.default.toCashAddress(address).split(":")[1]; } } // Converts any address format to hash160 }, { - key: 'toHash160', + key: "toHash160", value: function toHash160(address) { var legacyAddress = _bchaddrjs2.default.toLegacyAddress(address); var bytes = _bitcoincashjsLib2.default.address.fromBase58Check(legacyAddress); - return bytes.hash.toString('hex'); + return bytes.hash.toString("hex"); } // Converts hash160 to Legacy Address }, { - key: 'hash160ToLegacy', + key: "hash160ToLegacy", value: function hash160ToLegacy(hash160) { var network = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _bitcoincashjsLib2.default.networks.bitcoin.pubKeyHash; - var buffer = Buffer(hash160, 'hex'); + var buffer = Buffer(hash160, "hex"); var legacyAddress = _bitcoincashjsLib2.default.address.toBase58Check(buffer, network); return legacyAddress; } @@ -74,7 +74,7 @@ var Address = function () { // Converts hash160 to Cash Address }, { - key: 'hash160ToCash', + key: "hash160ToCash", value: function hash160ToCash(hash160) { var network = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _bitcoincashjsLib2.default.networks.bitcoin.pubKeyHash; @@ -85,12 +85,12 @@ var Address = function () { // Test for address format. }, { - key: 'isLegacyAddress', + key: "isLegacyAddress", value: function isLegacyAddress(address) { return _bchaddrjs2.default.isLegacyAddress(address); } }, { - key: 'isCashAddress', + key: "isCashAddress", value: function isCashAddress(address) { return _bchaddrjs2.default.isCashAddress(address); } @@ -98,22 +98,22 @@ var Address = function () { // Test for address network. }, { - key: 'isMainnetAddress', + key: "isMainnetAddress", value: function isMainnetAddress(address) { - if (address[0] === 'x') { + if (address[0] === "x") { return true; - } else if (address[0] === 't') { + } else if (address[0] === "t") { return false; } else { return _bchaddrjs2.default.isMainnetAddress(address); } } }, { - key: 'isTestnetAddress', + key: "isTestnetAddress", value: function isTestnetAddress(address) { - if (address[0] === 'x') { + if (address[0] === "x") { return false; - } else if (address[0] === 't') { + } else if (address[0] === "t") { return true; } else { return _bchaddrjs2.default.isTestnetAddress(address); @@ -123,12 +123,12 @@ var Address = function () { // Test for address type. }, { - key: 'isP2PKHAddress', + key: "isP2PKHAddress", value: function isP2PKHAddress(address) { return _bchaddrjs2.default.isP2PKHAddress(address); } }, { - key: 'isP2SHAddress', + key: "isP2SHAddress", value: function isP2SHAddress(address) { return _bchaddrjs2.default.isP2SHAddress(address); } @@ -136,7 +136,7 @@ var Address = function () { // Detect address format. }, { - key: 'detectAddressFormat', + key: "detectAddressFormat", value: function detectAddressFormat(address) { return _bchaddrjs2.default.detectAddressFormat(address); } @@ -144,12 +144,12 @@ var Address = function () { // Detect address network. }, { - key: 'detectAddressNetwork', + key: "detectAddressNetwork", value: function detectAddressNetwork(address) { - if (address[0] === 'x') { - return 'mainnet'; - } else if (address[0] === 't') { - return 'testnet'; + if (address[0] === "x") { + return "mainnet"; + } else if (address[0] === "t") { + return "testnet"; } else { return _bchaddrjs2.default.detectAddressNetwork(address); } @@ -158,12 +158,12 @@ var Address = function () { // Detect address type. }, { - key: 'detectAddressType', + key: "detectAddressType", value: function detectAddressType(address) { return _bchaddrjs2.default.detectAddressType(address); } }, { - key: 'fromXPub', + key: "fromXPub", value: function fromXPub(xpub) { var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "0/0"; @@ -172,53 +172,53 @@ var Address = function () { return this.toCashAddress(address.getAddress()); } }, { - key: 'fromOutputScript', + key: "fromOutputScript", value: function fromOutputScript(scriptPubKey) { - var network = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'bitcoincash'; + var network = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "bitcoincash"; var netParam = void 0; - if (network !== 'bitcoincash') { + if (network !== "bitcoincash") { netParam = _bitcoincashjsLib2.default.networks.testnet; } return _bchaddrjs2.default.toCashAddress(_bitcoincashjsLib2.default.address.fromOutputScript(scriptPubKey, netParam)); } }, { - key: 'details', + key: "details", value: async function details(address) { - if (typeof address !== 'string') { + if (typeof address !== "string") { address = JSON.stringify(address); } try { - var response = await _axios2.default.get(this.restURL + 'address/details/' + address); + var response = await _axios2.default.get(this.restURL + "address/details/" + address); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'utxo', + key: "utxo", value: async function utxo(address) { - if (typeof address !== 'string') { + if (typeof address !== "string") { address = JSON.stringify(address); } try { - var response = await _axios2.default.get(this.restURL + 'address/utxo/' + address); + var response = await _axios2.default.get(this.restURL + "address/utxo/" + address); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'unconfirmed', + key: "unconfirmed", value: async function unconfirmed(address) { - if (typeof address !== 'string') { + if (typeof address !== "string") { address = JSON.stringify(address); } try { - var response = await _axios2.default.get(this.restURL + 'address/unconfirmed/' + address); + var response = await _axios2.default.get(this.restURL + "address/unconfirmed/" + address); return response.data; } catch (error) { throw error.response.data; diff --git a/lib/BitcoinCash.js b/lib/BitcoinCash.js index 12160d33..eeb425df 100644 --- a/lib/BitcoinCash.js +++ b/lib/BitcoinCash.js @@ -1,4 +1,4 @@ -'use strict'; +"use strict"; Object.defineProperty(exports, "__esModule", { value: true @@ -6,39 +6,39 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _bitcoincashjsLib = require('bitcoincashjs-lib'); +var _bitcoincashjsLib = require("bitcoincashjs-lib"); var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); -var _bchaddrjs = require('bchaddrjs'); +var _bchaddrjs = require("bchaddrjs"); var _bchaddrjs2 = _interopRequireDefault(_bchaddrjs); -var _satoshiBitcoin = require('satoshi-bitcoin'); +var _satoshiBitcoin = require("satoshi-bitcoin"); var _satoshiBitcoin2 = _interopRequireDefault(_satoshiBitcoin); -var _bitcoinjsMessage = require('bitcoinjs-message'); +var _bitcoinjsMessage = require("bitcoinjs-message"); var _bitcoinjsMessage2 = _interopRequireDefault(_bitcoinjsMessage); -var _bs = require('bs58'); +var _bs = require("bs58"); var _bs2 = _interopRequireDefault(_bs); -var _bip = require('bip21'); +var _bip = require("bip21"); var _bip2 = _interopRequireDefault(_bip); -var _coininfo = require('coininfo'); +var _coininfo = require("coininfo"); var _coininfo2 = _interopRequireDefault(_coininfo); -var _bip3 = require('bip38'); +var _bip3 = require("bip38"); var _bip4 = _interopRequireDefault(_bip3); -var _wif = require('wif'); +var _wif = require("wif"); var _wif2 = _interopRequireDefault(_wif); @@ -46,7 +46,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var Buffer = require('safe-buffer').Buffer; +var Buffer = require("safe-buffer").Buffer; var BitcoinCash = function () { function BitcoinCash() { @@ -54,7 +54,7 @@ var BitcoinCash = function () { } _createClass(BitcoinCash, [{ - key: 'toSatoshi', + key: "toSatoshi", // Translate coins to satoshi value value: function toSatoshi(coins) { @@ -64,7 +64,7 @@ var BitcoinCash = function () { // Translate satoshi to coin value }, { - key: 'toBitcoinCash', + key: "toBitcoinCash", value: function toBitcoinCash(satoshis) { return _satoshiBitcoin2.default.toBitcoin(satoshis); } @@ -72,7 +72,7 @@ var BitcoinCash = function () { // Translate satoshi to bits denomination }, { - key: 'toBits', + key: "toBits", value: function toBits(satoshis) { return parseFloat(satoshis) / 100; } @@ -81,7 +81,7 @@ var BitcoinCash = function () { // TODO remove in 2.0 }, { - key: 'satsToBits', + key: "satsToBits", value: function satsToBits(satoshis) { return parseFloat(satoshis) / 100; } @@ -106,11 +106,11 @@ var BitcoinCash = function () { // sign message }, { - key: 'signMessageWithPrivKey', + key: "signMessageWithPrivKey", value: function signMessageWithPrivKey(privateKeyWIF, message) { - var network = privateKeyWIF.charAt(0) === 'c' ? 'testnet' : 'bitcoincash'; + var network = privateKeyWIF.charAt(0) === "c" ? "testnet" : "bitcoincash"; var bitcoincash = void 0; - if (network === 'bitcoincash') { + if (network === "bitcoincash") { bitcoincash = _coininfo2.default.bitcoincash.main; } else { bitcoincash = _coininfo2.default.bitcoincash.test; @@ -118,13 +118,13 @@ var BitcoinCash = function () { var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); var keyPair = _bitcoincashjsLib2.default.ECPair.fromWIF(privateKeyWIF, bitcoincashBitcoinJSLib); var privateKey = keyPair.d.toBuffer(32); - return _bitcoinjsMessage2.default.sign(message, privateKey, keyPair.compressed).toString('base64'); + return _bitcoinjsMessage2.default.sign(message, privateKey, keyPair.compressed).toString("base64"); } // verify message }, { - key: 'verifyMessage', + key: "verifyMessage", value: function verifyMessage(address, signature, message) { return _bitcoinjsMessage2.default.verify(message, _bchaddrjs2.default.toLegacyAddress(address), signature); } @@ -132,23 +132,23 @@ var BitcoinCash = function () { // encode base58Check }, { - key: 'encodeBase58Check', + key: "encodeBase58Check", value: function encodeBase58Check(hex) { - return _bs2.default.encode(Buffer.from(hex, 'hex')); + return _bs2.default.encode(Buffer.from(hex, "hex")); } // decode base58Check }, { - key: 'decodeBase58Check', + key: "decodeBase58Check", value: function decodeBase58Check(address) { - return _bs2.default.decode(address).toString('hex'); + return _bs2.default.decode(address).toString("hex"); } // encode bip21 url }, { - key: 'encodeBIP21', + key: "encodeBIP21", value: function encodeBIP21(address, options) { return _bip2.default.encode(_bchaddrjs2.default.toCashAddress(address), options); } @@ -156,51 +156,51 @@ var BitcoinCash = function () { // decode bip21 url }, { - key: 'decodeBIP21', + key: "decodeBIP21", value: function decodeBIP21(url) { return _bip2.default.decode(url); } }, { - key: 'getByteCount', + key: "getByteCount", value: function getByteCount(inputs, outputs) { // from https://github.com/bitcoinjs/bitcoinjs-lib/issues/921#issuecomment-354394004 var totalWeight = 0; var hasWitness = false; // assumes compressed pubkeys in all cases. var types = { - 'inputs': { - 'MULTISIG-P2SH': 49 * 4, - 'MULTISIG-P2WSH': 6 + 41 * 4, - 'MULTISIG-P2SH-P2WSH': 6 + 76 * 4, - 'P2PKH': 148 * 4, - 'P2WPKH': 108 + 41 * 4, - 'P2SH-P2WPKH': 108 + 64 * 4 + inputs: { + "MULTISIG-P2SH": 49 * 4, + "MULTISIG-P2WSH": 6 + 41 * 4, + "MULTISIG-P2SH-P2WSH": 6 + 76 * 4, + P2PKH: 148 * 4, + P2WPKH: 108 + 41 * 4, + "P2SH-P2WPKH": 108 + 64 * 4 }, - 'outputs': { - 'P2SH': 32 * 4, - 'P2PKH': 34 * 4, - 'P2WPKH': 31 * 4, - 'P2WSH': 43 * 4 + outputs: { + P2SH: 32 * 4, + P2PKH: 34 * 4, + P2WPKH: 31 * 4, + P2WSH: 43 * 4 } }; Object.keys(inputs).forEach(function (key) { - if (key.slice(0, 8) === 'MULTISIG') { + if (key.slice(0, 8) === "MULTISIG") { // ex. "MULTISIG-P2SH:2-3" would mean 2 of 3 P2SH MULTISIG - var keyParts = key.split(':'); - if (keyParts.length !== 2) throw new Error('invalid input: ' + key); + var keyParts = key.split(":"); + if (keyParts.length !== 2) throw new Error("invalid input: " + key); var newKey = keyParts[0]; - var mAndN = keyParts[1].split('-').map(function (item) { + var mAndN = keyParts[1].split("-").map(function (item) { return parseInt(item); }); totalWeight += types.inputs[newKey] * inputs[key]; - var multiplyer = newKey === 'MULTISIG-P2SH' ? 4 : 1; + var multiplyer = newKey === "MULTISIG-P2SH" ? 4 : 1; totalWeight += (73 * mAndN[0] + 34 * mAndN[1]) * multiplyer; } else { totalWeight += types.inputs[key] * inputs[key]; } - if (key.indexOf('W') >= 0) hasWitness = true; + if (key.indexOf("W") >= 0) hasWitness = true; }); Object.keys(outputs).forEach(function (key) { @@ -214,21 +214,21 @@ var BitcoinCash = function () { return Math.ceil(totalWeight / 4); } }, { - key: 'encryptBIP38', + key: "encryptBIP38", value: function encryptBIP38(privKeyWIF, passphrase) { var decoded = _wif2.default.decode(privKeyWIF); return _bip4.default.encrypt(decoded.privateKey, decoded.compressed, passphrase); } }, { - key: 'decryptBIP38', + key: "decryptBIP38", value: function decryptBIP38(encryptedKey, passphrase) { - var network = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'mainnet'; + var network = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "mainnet"; var decryptedKey = _bip4.default.decrypt(encryptedKey, passphrase); var prefix = void 0; - if (network === 'testnet') { - prefix = 0xEF; + if (network === "testnet") { + prefix = 0xef; } else { prefix = 0x80; } diff --git a/lib/Block.js b/lib/Block.js index 483c33cc..16a21f33 100644 --- a/lib/Block.js +++ b/lib/Block.js @@ -1,4 +1,4 @@ -'use strict'; +"use strict"; Object.defineProperty(exports, "__esModule", { value: true @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _axios = require('axios'); +var _axios = require("axios"); var _axios2 = _interopRequireDefault(_axios); @@ -22,10 +22,10 @@ var Block = function () { } _createClass(Block, [{ - key: 'details', + key: "details", value: async function details(id) { try { - var response = await _axios2.default.get(this.restURL + 'block/details/' + id); + var response = await _axios2.default.get(this.restURL + "block/details/" + id); return response.data; } catch (error) { throw error.response.data; diff --git a/lib/Blockchain.js b/lib/Blockchain.js index 1a723ab9..df5e322e 100644 --- a/lib/Blockchain.js +++ b/lib/Blockchain.js @@ -1,4 +1,4 @@ -'use strict'; +"use strict"; Object.defineProperty(exports, "__esModule", { value: true @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _axios = require('axios'); +var _axios = require("axios"); var _axios2 = _interopRequireDefault(_axios); @@ -22,182 +22,182 @@ var Blockchain = function () { } _createClass(Blockchain, [{ - key: 'getBestBlockHash', + key: "getBestBlockHash", value: async function getBestBlockHash() { try { - var response = await _axios2.default.get(this.restURL + 'blockchain/getBestBlockHash'); + var response = await _axios2.default.get(this.restURL + "blockchain/getBestBlockHash"); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'getBlock', + key: "getBlock", value: async function getBlock(blockhash) { var verbose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; try { - var response = await _axios2.default.get(this.restURL + 'blockchain/getBlock/' + blockhash + '?verbose=' + verbose); + var response = await _axios2.default.get(this.restURL + "blockchain/getBlock/" + blockhash + "?verbose=" + verbose); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'getBlockchainInfo', + key: "getBlockchainInfo", value: async function getBlockchainInfo() { try { - var response = await _axios2.default.get(this.restURL + 'blockchain/getBlockchainInfo'); + var response = await _axios2.default.get(this.restURL + "blockchain/getBlockchainInfo"); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'getBlockCount', + key: "getBlockCount", value: async function getBlockCount() { try { - var response = await _axios2.default.get(this.restURL + 'blockchain/getBlockCount'); + var response = await _axios2.default.get(this.restURL + "blockchain/getBlockCount"); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'getBlockHash', + key: "getBlockHash", value: async function getBlockHash() { var height = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; - if (typeof height !== 'string') { + if (typeof height !== "string") { height = JSON.stringify(height); } try { - var response = await _axios2.default.get(this.restURL + 'blockchain/getBlockHash/' + height); + var response = await _axios2.default.get(this.restURL + "blockchain/getBlockHash/" + height); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'getBlockHeader', + key: "getBlockHeader", value: async function getBlockHeader(hash) { var verbose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - if (typeof hash !== 'string') { + if (typeof hash !== "string") { hash = JSON.stringify(hash); } try { - var response = await _axios2.default.get(this.restURL + 'blockchain/getBlockHeader/' + hash + '?verbose=' + verbose); + var response = await _axios2.default.get(this.restURL + "blockchain/getBlockHeader/" + hash + "?verbose=" + verbose); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'getChainTips', + key: "getChainTips", value: async function getChainTips() { try { - var response = await _axios2.default.get(this.restURL + 'blockchain/getChainTips'); + var response = await _axios2.default.get(this.restURL + "blockchain/getChainTips"); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'getDifficulty', + key: "getDifficulty", value: async function getDifficulty() { try { - var response = await _axios2.default.get(this.restURL + 'blockchain/getDifficulty'); + var response = await _axios2.default.get(this.restURL + "blockchain/getDifficulty"); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'getMempoolAncestors', + key: "getMempoolAncestors", value: async function getMempoolAncestors(txid) { var verbose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - if (typeof txid !== 'string') { + if (typeof txid !== "string") { txid = JSON.stringify(txid); } try { - var response = await _axios2.default.get(this.restURL + 'blockchain/getMempoolAncestors/' + txid + '?verbose=' + verbose); + var response = await _axios2.default.get(this.restURL + "blockchain/getMempoolAncestors/" + txid + "?verbose=" + verbose); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'getMempoolDescendants', + key: "getMempoolDescendants", value: async function getMempoolDescendants(txid) { var verbose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - if (typeof txid !== 'string') { + if (typeof txid !== "string") { txid = JSON.stringify(txid); } try { - var response = await _axios2.default.get(this.restURL + 'blockchain/getMempoolDescendants/' + txid + '?verbose=' + verbose); + var response = await _axios2.default.get(this.restURL + "blockchain/getMempoolDescendants/" + txid + "?verbose=" + verbose); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'getMempoolEntry', + key: "getMempoolEntry", value: async function getMempoolEntry(txid) { - if (typeof txid !== 'string') { + if (typeof txid !== "string") { txid = JSON.stringify(txid); } try { - var response = await _axios2.default.get(this.restURL + 'blockchain/getMempoolEntry/' + txid); + var response = await _axios2.default.get(this.restURL + "blockchain/getMempoolEntry/" + txid); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'getMempoolInfo', + key: "getMempoolInfo", value: async function getMempoolInfo() { try { - var response = await _axios2.default.get(this.restURL + 'blockchain/getMempoolInfo'); + var response = await _axios2.default.get(this.restURL + "blockchain/getMempoolInfo"); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'getRawMempool', + key: "getRawMempool", value: async function getRawMempool() { var verbose = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; try { - var response = await _axios2.default.get(this.restURL + 'blockchain/getRawMempool?vebose=' + verbose); + var response = await _axios2.default.get(this.restURL + "blockchain/getRawMempool?vebose=" + verbose); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'getTxOut', + key: "getTxOut", value: async function getTxOut(txid, n) { var include_mempool = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; try { - var response = await _axios2.default.get(this.restURL + 'blockchain/getTxOut/' + txid + '/n?include_mempool=' + include_mempool); + var response = await _axios2.default.get(this.restURL + "blockchain/getTxOut/" + txid + "/n?include_mempool=" + include_mempool); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'getTxOutProof', + key: "getTxOutProof", value: async function getTxOutProof(txids, blockhash) { - var path = this.restURL + 'blockchain/getTxOutProof/' + txids; + var path = this.restURL + "blockchain/getTxOutProof/" + txids; if (blockhash) { - path = path + '?blockhash=' + blockhash; + path = path + "?blockhash=" + blockhash; } try { var response = await _axios2.default.get(path); @@ -207,43 +207,43 @@ var Blockchain = function () { } } }, { - key: 'preciousBlock', + key: "preciousBlock", value: async function preciousBlock(blockhash) { try { - var response = await _axios2.default.get(this.restURL + 'blockchain/preciousBlock/' + blockhash); + var response = await _axios2.default.get(this.restURL + "blockchain/preciousBlock/" + blockhash); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'pruneBlockchain', + key: "pruneBlockchain", value: async function pruneBlockchain(height) { try { - var response = await _axios2.default.post(this.restURL + 'blockchain/pruneBlockchain/' + height); + var response = await _axios2.default.post(this.restURL + "blockchain/pruneBlockchain/" + height); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'verifyChain', + key: "verifyChain", value: async function verifyChain() { var checklevel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 3; var nblocks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6; try { - var response = await _axios2.default.get(this.restURL + 'blockchain/verifyChain?checklevel=' + checklevel + '&nblocks=' + nblocks); + var response = await _axios2.default.get(this.restURL + "blockchain/verifyChain?checklevel=" + checklevel + "&nblocks=" + nblocks); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'verifyTxOutProof', + key: "verifyTxOutProof", value: async function verifyTxOutProof(proof) { try { - var response = await _axios2.default.get(this.restURL + 'blockchain/verifyTxOutProof/proof'); + var response = await _axios2.default.get(this.restURL + "blockchain/verifyTxOutProof/proof"); return response.data; } catch (error) { throw error.response.data; diff --git a/lib/Control.js b/lib/Control.js index 3d7a3373..0144cdb0 100644 --- a/lib/Control.js +++ b/lib/Control.js @@ -1,4 +1,4 @@ -'use strict'; +"use strict"; Object.defineProperty(exports, "__esModule", { value: true @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _axios = require('axios'); +var _axios = require("axios"); var _axios2 = _interopRequireDefault(_axios); @@ -22,20 +22,20 @@ var Control = function () { } _createClass(Control, [{ - key: 'getInfo', + key: "getInfo", value: async function getInfo() { try { - var response = await _axios2.default.get(this.restURL + 'control/getInfo'); + var response = await _axios2.default.get(this.restURL + "control/getInfo"); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'getMemoryInfo', + key: "getMemoryInfo", value: async function getMemoryInfo() { try { - var response = await _axios2.default.get(this.restURL + 'control/getMemoryInfo'); + var response = await _axios2.default.get(this.restURL + "control/getMemoryInfo"); return response.data; } catch (error) { throw error.response.data; diff --git a/lib/Crypto.js b/lib/Crypto.js index 080bd1bb..c0b0210f 100644 --- a/lib/Crypto.js +++ b/lib/Crypto.js @@ -1,4 +1,4 @@ -'use strict'; +"use strict"; Object.defineProperty(exports, "__esModule", { value: true @@ -6,11 +6,11 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _randombytes = require('randombytes'); +var _randombytes = require("randombytes"); var _randombytes2 = _interopRequireDefault(_randombytes); -var _bitcoincashjsLib = require('bitcoincashjs-lib'); +var _bitcoincashjsLib = require("bitcoincashjs-lib"); var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); @@ -24,27 +24,27 @@ var Crypto = function () { } _createClass(Crypto, null, [{ - key: 'sha256', + key: "sha256", value: function sha256(buffer) { return _bitcoincashjsLib2.default.crypto.sha256(buffer); } }, { - key: 'ripemd160', + key: "ripemd160", value: function ripemd160(buffer) { return _bitcoincashjsLib2.default.crypto.ripemd160(buffer); } }, { - key: 'hash256', + key: "hash256", value: function hash256(buffer) { return _bitcoincashjsLib2.default.crypto.hash256(buffer); } }, { - key: 'hash160', + key: "hash160", value: function hash160(buffer) { return _bitcoincashjsLib2.default.crypto.hash160(buffer); } }, { - key: 'randomBytes', + key: "randomBytes", value: function randomBytes() { var size = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 16; diff --git a/lib/ECPair.js b/lib/ECPair.js index 942e9577..34be034c 100644 --- a/lib/ECPair.js +++ b/lib/ECPair.js @@ -1,4 +1,4 @@ -'use strict'; +"use strict"; Object.defineProperty(exports, "__esModule", { value: true @@ -6,15 +6,15 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _bitcoincashjsLib = require('bitcoincashjs-lib'); +var _bitcoincashjsLib = require("bitcoincashjs-lib"); var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); -var _bchaddrjs = require('bchaddrjs'); +var _bchaddrjs = require("bchaddrjs"); var _bchaddrjs2 = _interopRequireDefault(_bchaddrjs); -var _coininfo = require('coininfo'); +var _coininfo = require("coininfo"); var _coininfo2 = _interopRequireDefault(_coininfo); @@ -28,16 +28,16 @@ var ECPair = function () { } _createClass(ECPair, null, [{ - key: 'fromWIF', + key: "fromWIF", value: function fromWIF(privateKeyWIF) { var network = void 0; - if (privateKeyWIF[0] === 'L' || privateKeyWIF[0] === 'K') { - network = 'bitcoincash'; - } else if (privateKeyWIF[0] === 'c') { - network = 'testnet'; + if (privateKeyWIF[0] === "L" || privateKeyWIF[0] === "K") { + network = "bitcoincash"; + } else if (privateKeyWIF[0] === "c") { + network = "testnet"; } var bitcoincash = void 0; - if (network === 'bitcoincash') { + if (network === "bitcoincash") { bitcoincash = _coininfo2.default.bitcoincash.main; } else { bitcoincash = _coininfo2.default.bitcoincash.test; @@ -47,37 +47,37 @@ var ECPair = function () { return _bitcoincashjsLib2.default.ECPair.fromWIF(privateKeyWIF, bitcoincashBitcoinJSLib); } }, { - key: 'toWIF', + key: "toWIF", value: function toWIF(ecpair) { return ecpair.toWIF(); } }, { - key: 'sign', + key: "sign", value: function sign(ecpair, buffer) { return ecpair.sign(buffer); } }, { - key: 'verify', + key: "verify", value: function verify(ecpair, buffer, signature) { return ecpair.verify(buffer, signature); } }, { - key: 'fromPublicKey', + key: "fromPublicKey", value: function fromPublicKey(pubkeyBuffer) { return _bitcoincashjsLib2.default.ECPair.fromPublicKeyBuffer(pubkeyBuffer); } }, { - key: 'toPublicKey', + key: "toPublicKey", value: function toPublicKey(ecpair) { return ecpair.getPublicKeyBuffer(); } }, { - key: 'toLegacyAddress', + key: "toLegacyAddress", value: function toLegacyAddress(ecpair) { return ecpair.getAddress(); } }, { - key: 'toCashAddress', + key: "toCashAddress", value: function toCashAddress(ecpair) { return _bchaddrjs2.default.toCashAddress(ecpair.getAddress()); } diff --git a/lib/Generating.js b/lib/Generating.js index 02c41e34..845d31ca 100644 --- a/lib/Generating.js +++ b/lib/Generating.js @@ -1,4 +1,4 @@ -'use strict'; +"use strict"; Object.defineProperty(exports, "__esModule", { value: true @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _axios = require('axios'); +var _axios = require("axios"); var _axios2 = _interopRequireDefault(_axios); @@ -22,12 +22,12 @@ var Generating = function () { } _createClass(Generating, [{ - key: 'generateToAddress', + key: "generateToAddress", value: async function generateToAddress(blocks, address) { var maxtries = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1000000; try { - var response = await _axios2.default.post(this.restURL + 'generating/generateToAddress/' + blocks + '/' + address + '?maxtries=' + maxtries); + var response = await _axios2.default.post(this.restURL + "generating/generateToAddress/" + blocks + "/" + address + "?maxtries=" + maxtries); return response.data; } catch (error) { throw error.response.data; diff --git a/lib/HDNode.js b/lib/HDNode.js index 5662a98a..9d73d4d1 100644 --- a/lib/HDNode.js +++ b/lib/HDNode.js @@ -1,4 +1,4 @@ -'use strict'; +"use strict"; Object.defineProperty(exports, "__esModule", { value: true @@ -6,19 +6,19 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _bitcoincashjsLib = require('bitcoincashjs-lib'); +var _bitcoincashjsLib = require("bitcoincashjs-lib"); var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); -var _bchaddrjs = require('bchaddrjs'); +var _bchaddrjs = require("bchaddrjs"); var _bchaddrjs2 = _interopRequireDefault(_bchaddrjs); -var _coininfo = require('coininfo'); +var _coininfo = require("coininfo"); var _coininfo2 = _interopRequireDefault(_coininfo); -var _bip32Utils = require('bip32-utils'); +var _bip32Utils = require("bip32-utils"); var _bip32Utils2 = _interopRequireDefault(_bip32Utils); @@ -32,12 +32,12 @@ var HDNode = function () { } _createClass(HDNode, [{ - key: 'fromSeed', + key: "fromSeed", value: function fromSeed(rootSeedBuffer) { - var network = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'bitcoincash'; + var network = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "bitcoincash"; var bitcoincash = void 0; - if (network === 'bitcoincash') { + if (network === "bitcoincash") { bitcoincash = _coininfo2.default.bitcoincash.main; } else { bitcoincash = _coininfo2.default.bitcoincash.test; @@ -46,111 +46,111 @@ var HDNode = function () { return _bitcoincashjsLib2.default.HDNode.fromSeedBuffer(rootSeedBuffer, bitcoincashBitcoinJSLib); } }, { - key: 'toLegacyAddress', + key: "toLegacyAddress", value: function toLegacyAddress(hdNode) { return hdNode.getAddress(); } }, { - key: 'toCashAddress', + key: "toCashAddress", value: function toCashAddress(hdNode) { return _bchaddrjs2.default.toCashAddress(hdNode.getAddress()); } }, { - key: 'toWIF', + key: "toWIF", value: function toWIF(hdNode) { return hdNode.keyPair.toWIF(); } }, { - key: 'toXPub', + key: "toXPub", value: function toXPub(hdNode) { return hdNode.neutered().toBase58(); } }, { - key: 'toXPriv', + key: "toXPriv", value: function toXPriv(hdNode) { return hdNode.toBase58(); } }, { - key: 'toKeyPair', + key: "toKeyPair", value: function toKeyPair(hdNode) { return hdNode.keyPair; } }, { - key: 'toPublicKey', + key: "toPublicKey", value: function toPublicKey(hdNode) { return hdNode.getPublicKeyBuffer(); } }, { - key: 'fromXPriv', + key: "fromXPriv", value: function fromXPriv(xpriv) { var bitcoincash = void 0; - if (xpriv[0] === 'x') { + if (xpriv[0] === "x") { bitcoincash = _coininfo2.default.bitcoincash.main; - } else if (xpriv[0] === 't') { + } else if (xpriv[0] === "t") { bitcoincash = _coininfo2.default.bitcoincash.test; } var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); return _bitcoincashjsLib2.default.HDNode.fromBase58(xpriv, bitcoincashBitcoinJSLib); } }, { - key: 'fromXPub', + key: "fromXPub", value: function fromXPub(xpub) { var bitcoincash = void 0; - if (xpub[0] === 'x') { + if (xpub[0] === "x") { bitcoincash = _coininfo2.default.bitcoincash.main; - } else if (xpub[0] === 't') { + } else if (xpub[0] === "t") { bitcoincash = _coininfo2.default.bitcoincash.test; } var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); return _bitcoincashjsLib2.default.HDNode.fromBase58(xpub, bitcoincashBitcoinJSLib); } }, { - key: 'derivePath', + key: "derivePath", value: function derivePath(hdnode, path) { return hdnode.derivePath(path); } }, { - key: 'derive', + key: "derive", value: function derive(hdnode, path) { return hdnode.derive(path); } }, { - key: 'deriveHardened', + key: "deriveHardened", value: function deriveHardened(hdnode, path) { return hdnode.deriveHardened(path); } }, { - key: 'sign', + key: "sign", value: function sign(hdnode, buffer) { return hdnode.sign(buffer); } }, { - key: 'verify', + key: "verify", value: function verify(hdnode, buffer, signature) { return hdnode.verify(buffer, signature); } }, { - key: 'isPublic', + key: "isPublic", value: function isPublic(hdnode) { return hdnode.isNeutered(); } }, { - key: 'isPrivate', + key: "isPrivate", value: function isPrivate(hdnode) { return !hdnode.isNeutered(); } }, { - key: 'toIdentifier', + key: "toIdentifier", value: function toIdentifier(hdnode) { return hdnode.getIdentifier(); } }, { - key: 'fromBase58', + key: "fromBase58", value: function fromBase58(base58, network) { return _bitcoincashjsLib2.default.HDNode.fromBase58(base58, network); } }, { - key: 'createAccount', + key: "createAccount", value: function createAccount(hdNodes) { var arr = hdNodes.map(function (item, index) { return new _bip32Utils2.default.Chain(item.neutered()); @@ -158,7 +158,7 @@ var HDNode = function () { return new _bip32Utils2.default.Account(arr); } }, { - key: 'createChain', + key: "createChain", value: function createChain(hdNode) { return new _bip32Utils2.default.Chain(hdNode); } diff --git a/lib/Mining.js b/lib/Mining.js index 7143f129..52f5fba6 100644 --- a/lib/Mining.js +++ b/lib/Mining.js @@ -1,4 +1,4 @@ -'use strict'; +"use strict"; Object.defineProperty(exports, "__esModule", { value: true @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _axios = require('axios'); +var _axios = require("axios"); var _axios2 = _interopRequireDefault(_axios); @@ -22,44 +22,44 @@ var Mining = function () { } _createClass(Mining, [{ - key: 'getBlockTemplate', + key: "getBlockTemplate", value: async function getBlockTemplate(template_request) { try { - var response = await _axios2.default.get(this.restURL + 'mining/getBlockTemplate/' + template_request); + var response = await _axios2.default.get(this.restURL + "mining/getBlockTemplate/" + template_request); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'getMiningInfo', + key: "getMiningInfo", value: async function getMiningInfo() { try { - var response = await _axios2.default.get(this.restURL + 'mining/getMiningInfo'); + var response = await _axios2.default.get(this.restURL + "mining/getMiningInfo"); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'getNetworkHashps', + key: "getNetworkHashps", value: async function getNetworkHashps() { var nblocks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 120; var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; try { - var response = await _axios2.default.get(this.restURL + 'mining/getNetworkHashps?nblocks=' + nblocks + '&height=' + height); + var response = await _axios2.default.get(this.restURL + "mining/getNetworkHashps?nblocks=" + nblocks + "&height=" + height); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'submitBlock', + key: "submitBlock", value: async function submitBlock(hex, parameters) { - var path = this.restURL + 'mining/submitBlock/' + hex; + var path = this.restURL + "mining/submitBlock/" + hex; if (parameters) { - path = path + '?parameters=' + parameters; + path = path + "?parameters=" + parameters; } try { var response = await _axios2.default.post(path); diff --git a/lib/Mnemonic.js b/lib/Mnemonic.js index f6848409..64846af8 100644 --- a/lib/Mnemonic.js +++ b/lib/Mnemonic.js @@ -1,4 +1,4 @@ -'use strict'; +"use strict"; Object.defineProperty(exports, "__esModule", { value: true @@ -6,23 +6,23 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _Crypto = require('./Crypto'); +var _Crypto = require("./Crypto"); var _Crypto2 = _interopRequireDefault(_Crypto); -var _bip = require('bip39'); +var _bip = require("bip39"); var _bip2 = _interopRequireDefault(_bip); -var _randombytes = require('randombytes'); +var _randombytes = require("randombytes"); var _randombytes2 = _interopRequireDefault(_randombytes); -var _bitcoincashjsLib = require('bitcoincashjs-lib'); +var _bitcoincashjsLib = require("bitcoincashjs-lib"); var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); -var _bchaddrjs = require('bchaddrjs'); +var _bchaddrjs = require("bchaddrjs"); var _bchaddrjs2 = _interopRequireDefault(_bchaddrjs); @@ -30,7 +30,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var Buffer = require('safe-buffer').Buffer; +var Buffer = require("safe-buffer").Buffer; var Mnemonic = function () { function Mnemonic() { @@ -38,7 +38,7 @@ var Mnemonic = function () { } _createClass(Mnemonic, [{ - key: 'generate', + key: "generate", value: function generate() { var bits = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 128; var wordlist = arguments[1]; @@ -46,20 +46,20 @@ var Mnemonic = function () { return _bip2.default.generateMnemonic(bits, _randombytes2.default, wordlist); } }, { - key: 'fromEntropy', + key: "fromEntropy", value: function fromEntropy(bytes, wordlist) { return _bip2.default.entropyToMnemonic(bytes, wordlist); } }, { - key: 'toEntropy', + key: "toEntropy", value: function toEntropy(mnemonic, wordlist) { - return Buffer.from(_bip2.default.mnemonicToEntropy(mnemonic, wordlist), 'hex'); + return Buffer.from(_bip2.default.mnemonicToEntropy(mnemonic, wordlist), "hex"); } }, { - key: 'validate', + key: "validate", value: function validate(mnemonic, wordlist) { // Preprocess the words - var words = mnemonic.split(' '); + var words = mnemonic.split(" "); // Detect blank phrase if (words.length == 0) { return "Blank mnemonic"; @@ -70,7 +70,7 @@ var Mnemonic = function () { if (wordlist.indexOf(word) == -1) { // Finding closest match to word var nearestWord = this.findNearestWord(word, wordlist); - return word + ' is not in wordlist, did you mean ' + nearestWord + '?'; + return word + " is not in wordlist, did you mean " + nearestWord + "?"; } } // Check the words are valid @@ -79,43 +79,43 @@ var Mnemonic = function () { if (!isValid) { return "Invalid mnemonic"; } else { - return 'Valid mnemonic'; + return "Valid mnemonic"; } } }, { - key: 'toSeed', + key: "toSeed", value: function toSeed(mnemonic) { - var password = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; + var password = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ""; return _bip2.default.mnemonicToSeed(mnemonic, password); } }, { - key: 'wordLists', + key: "wordLists", value: function wordLists() { return _bip2.default.wordlists; } }, { - key: 'toKeypairs', + key: "toKeypairs", value: function toKeypairs(mnemonic) { var numberOfKeypairs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; - var rootSeedBuffer = this.toSeed(mnemonic, ''); + var rootSeedBuffer = this.toSeed(mnemonic, ""); var hdNode = _bitcoincashjsLib2.default.HDNode.fromSeedBuffer(rootSeedBuffer); - var HDPath = '44\'/145\'/0\'/0/'; + var HDPath = "44'/145'/0'/0/"; var accounts = []; for (var i = 0; i < numberOfKeypairs; i++) { - var childHDNode = hdNode.derivePath('' + HDPath + i); + var childHDNode = hdNode.derivePath("" + HDPath + i); accounts.push({ privateKeyWIF: childHDNode.keyPair.toWIF(), address: _bchaddrjs2.default.toCashAddress(childHDNode.getAddress()) }); - }; + } return accounts; } }, { - key: 'findNearestWord', + key: "findNearestWord", value: function findNearestWord(word, wordlist) { var minDistance = 99; var closestWord = wordlist[0]; @@ -167,7 +167,7 @@ var _extend = function _extend(dst) { * @param {Function} func */ var _defer = function _defer(func) { - if (typeof setImmediate === 'function') { + if (typeof setImmediate === "function") { return setImmediate(func); } else { return setTimeout(func, 0); @@ -175,8 +175,8 @@ var _defer = function _defer(func) { }; /** -* Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance. -*/ + * Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance. + */ var Levenshtein = { /** * Calculate levenshtein distance of the two strings. @@ -324,7 +324,7 @@ var Levenshtein = { try { options.progress.call(null, i * 100.0 / str1.length); } catch (err) { - return cb('Progress callback: ' + err.toString()); + return cb("Progress callback: " + err.toString()); } } @@ -334,5 +334,4 @@ var Levenshtein = { __calculate(); } - }; \ No newline at end of file diff --git a/lib/Network.js b/lib/Network.js index b879cee3..cd28a66f 100644 --- a/lib/Network.js +++ b/lib/Network.js @@ -1,4 +1,4 @@ -'use strict'; +"use strict"; Object.defineProperty(exports, "__esModule", { value: true @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _axios = require('axios'); +var _axios = require("axios"); var _axios2 = _interopRequireDefault(_axios); @@ -22,41 +22,41 @@ var Network = function () { } _createClass(Network, [{ - key: 'addNode', + key: "addNode", value: async function addNode(node, command) { try { - var response = await _axios2.default.post(this.restURL + 'network/addNode/' + node + '/' + command); + var response = await _axios2.default.post(this.restURL + "network/addNode/" + node + "/" + command); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'clearBanned', + key: "clearBanned", value: async function clearBanned() { try { - var response = await _axios2.default.post(this.restURL + 'clearBanned'); + var response = await _axios2.default.post(this.restURL + "clearBanned"); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'disconnectNode', + key: "disconnectNode", value: async function disconnectNode(configuration) { try { - var response = await _axios2.default.post(this.restURL + 'disconnectNode/' + configuration); + var response = await _axios2.default.post(this.restURL + "disconnectNode/" + configuration); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'getAddedNodeInfo', + key: "getAddedNodeInfo", value: async function getAddedNodeInfo(node) { - var path = this.restURL + 'network/getAddedNodeInfo'; + var path = this.restURL + "network/getAddedNodeInfo"; if (node) { - path = path + '?node=' + node; + path = path + "?node=" + node; } try { @@ -67,40 +67,40 @@ var Network = function () { } } }, { - key: 'getConnectionCount', + key: "getConnectionCount", value: async function getConnectionCount() { try { - var response = await _axios2.default.get(this.restURL + 'network/getConnectionCount'); + var response = await _axios2.default.get(this.restURL + "network/getConnectionCount"); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'getNetTotals', + key: "getNetTotals", value: async function getNetTotals() { try { - var response = await _axios2.default.get(this.restURL + 'network/getNetTotals'); + var response = await _axios2.default.get(this.restURL + "network/getNetTotals"); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'getNetworkInfo', + key: "getNetworkInfo", value: async function getNetworkInfo() { try { - var response = await _axios2.default.get(this.restURL + 'network/getNetworkInfo'); + var response = await _axios2.default.get(this.restURL + "network/getNetworkInfo"); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'getPeerInfo', + key: "getPeerInfo", value: async function getPeerInfo() { try { - var response = await _axios2.default.get(this.restURL + 'network/getPeerInfo'); + var response = await _axios2.default.get(this.restURL + "network/getPeerInfo"); return response.data; } catch (error) { throw error.response.data; @@ -119,10 +119,10 @@ var Network = function () { // } }, { - key: 'ping', + key: "ping", value: async function ping() { try { - var response = await _axios2.default.get(this.restURL + 'network/ping'); + var response = await _axios2.default.get(this.restURL + "network/ping"); return response.data; } catch (error) { throw error.response.data; diff --git a/lib/Price.js b/lib/Price.js index 59472006..3f8fbf5d 100644 --- a/lib/Price.js +++ b/lib/Price.js @@ -1,4 +1,4 @@ -'use strict'; +"use strict"; Object.defineProperty(exports, "__esModule", { value: true @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _axios = require('axios'); +var _axios = require("axios"); var _axios2 = _interopRequireDefault(_axios); @@ -20,13 +20,13 @@ var Price = function () { } _createClass(Price, [{ - key: 'current', + key: "current", value: async function current() { - var currency = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'all'; + var currency = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "all"; try { - var response = await _axios2.default.get('https://www.blocktrail.com/BCC/json/blockchain/price'); - if (currency === 'all') { + var response = await _axios2.default.get("https://www.blocktrail.com/BCC/json/blockchain/price"); + if (currency === "all") { return response.data; } else { return response.data[currency.toUpperCase()]; diff --git a/lib/RawTransactions.js b/lib/RawTransactions.js index b1954e60..826339e0 100644 --- a/lib/RawTransactions.js +++ b/lib/RawTransactions.js @@ -1,4 +1,4 @@ -'use strict'; +"use strict"; Object.defineProperty(exports, "__esModule", { value: true @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _axios = require('axios'); +var _axios = require("axios"); var _axios2 = _interopRequireDefault(_axios); @@ -22,60 +22,60 @@ var RawTransactions = function () { } _createClass(RawTransactions, [{ - key: 'decodeRawTransaction', + key: "decodeRawTransaction", value: async function decodeRawTransaction(hex) { - if (typeof hex !== 'string') { + if (typeof hex !== "string") { hex = JSON.stringify(hex); } try { - var response = await _axios2.default.get(this.restURL + 'rawtransactions/decodeRawTransaction/' + hex); + var response = await _axios2.default.get(this.restURL + "rawtransactions/decodeRawTransaction/" + hex); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'decodeScript', + key: "decodeScript", value: async function decodeScript(script) { - if (typeof script !== 'string') { + if (typeof script !== "string") { script = JSON.stringify(script); } try { - var response = await _axios2.default.get(this.restURL + 'rawtransactions/decodeScript/' + script); + var response = await _axios2.default.get(this.restURL + "rawtransactions/decodeScript/" + script); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'getRawTransaction', + key: "getRawTransaction", value: async function getRawTransaction(txid) { var verbose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - if (typeof txid !== 'string') { + if (typeof txid !== "string") { txid = JSON.stringify(txid); } try { - var response = await _axios2.default.get(this.restURL + 'rawtransactions/getRawTransaction/' + txid + '?verbose=' + verbose); + var response = await _axios2.default.get(this.restURL + "rawtransactions/getRawTransaction/" + txid + "?verbose=" + verbose); return response.data; } catch (error) { throw error.response.data; } } }, { - key: 'sendRawTransaction', + key: "sendRawTransaction", value: async function sendRawTransaction(hex) { var allowhighfees = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - if (typeof hex !== 'string') { + if (typeof hex !== "string") { hex = JSON.stringify(hex); } try { - var response = await _axios2.default.post(this.restURL + 'rawtransactions/sendRawTransaction/' + hex + '?allowhighfees=' + allowhighfees); + var response = await _axios2.default.post(this.restURL + "rawtransactions/sendRawTransaction/" + hex + "?allowhighfees=" + allowhighfees); return response.data; } catch (error) { throw error.response.data; diff --git a/lib/Script.js b/lib/Script.js index 149718ef..f6e99654 100644 --- a/lib/Script.js +++ b/lib/Script.js @@ -1,4 +1,4 @@ -'use strict'; +"use strict"; Object.defineProperty(exports, "__esModule", { value: true @@ -6,11 +6,11 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _bitcoincashjsLib = require('bitcoincashjs-lib'); +var _bitcoincashjsLib = require("bitcoincashjs-lib"); var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); -var _bitcoinOps = require('bitcoin-ops'); +var _bitcoinOps = require("bitcoin-ops"); var _bitcoinOps2 = _interopRequireDefault(_bitcoinOps); @@ -54,22 +54,22 @@ var Script = function () { } _createClass(Script, [{ - key: 'classifyInput', + key: "classifyInput", value: function classifyInput(script) { return _bitcoincashjsLib2.default.script.classifyInput(script); } }, { - key: 'classifyOutput', + key: "classifyOutput", value: function classifyOutput(script) { return _bitcoincashjsLib2.default.script.classifyOutput(script); } }, { - key: 'decode', + key: "decode", value: function decode(scriptBuffer) { return _bitcoincashjsLib2.default.script.decompile(scriptBuffer); } }, { - key: 'encode', + key: "encode", value: function encode(scriptChunks) { var arr = []; scriptChunks.forEach(function (chunk) { @@ -78,12 +78,12 @@ var Script = function () { return _bitcoincashjsLib2.default.script.compile(arr); } }, { - key: 'toASM', + key: "toASM", value: function toASM(buffer) { return _bitcoincashjsLib2.default.script.toASM(buffer); } }, { - key: 'fromASM', + key: "fromASM", value: function fromASM(asm) { return _bitcoincashjsLib2.default.script.fromASM(asm); } diff --git a/lib/Socket.js b/lib/Socket.js index 813cd676..40e14f05 100644 --- a/lib/Socket.js +++ b/lib/Socket.js @@ -1,4 +1,4 @@ -'use strict'; +"use strict"; Object.defineProperty(exports, "__esModule", { value: true @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _socket = require('socket.io-client'); +var _socket = require("socket.io-client"); var _socket2 = _interopRequireDefault(_socket); @@ -20,15 +20,15 @@ var Socket = function () { _classCallCheck(this, Socket); - if (typeof config === 'string') { + if (typeof config === "string") { // TODO remove this check in v2.0 - this.socket = (0, _socket2.default)('' + config); + this.socket = (0, _socket2.default)("" + config); } else { if (config.restURL) { - this.socket = (0, _socket2.default)('' + config.restURL); + this.socket = (0, _socket2.default)("" + config.restURL); } else { - var restURL = 'https://rest.bitcoin.com'; - this.socket = (0, _socket2.default)('' + restURL); + var restURL = "https://rest.bitcoin.com"; + this.socket = (0, _socket2.default)("" + restURL); } if (config.callback) { @@ -38,16 +38,16 @@ var Socket = function () { } _createClass(Socket, [{ - key: 'listen', + key: "listen", value: function listen(endpoint, cb) { this.socket.emit(endpoint); - if (endpoint === 'blocks') { - this.socket.on('blocks', function (msg) { + if (endpoint === "blocks") { + this.socket.on("blocks", function (msg) { return cb(msg); }); - } else if (endpoint === 'transactions') { - this.socket.on('transactions', function (msg) { + } else if (endpoint === "transactions") { + this.socket.on("transactions", function (msg) { return cb(msg); }); } diff --git a/lib/Transaction.js b/lib/Transaction.js index 24388401..bf5a7ea9 100644 --- a/lib/Transaction.js +++ b/lib/Transaction.js @@ -1,4 +1,4 @@ -'use strict'; +"use strict"; Object.defineProperty(exports, "__esModule", { value: true @@ -6,11 +6,11 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _bitcoincashjsLib = require('bitcoincashjs-lib'); +var _bitcoincashjsLib = require("bitcoincashjs-lib"); var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); -var _axios = require('axios'); +var _axios = require("axios"); var _axios2 = _interopRequireDefault(_axios); @@ -26,36 +26,36 @@ var Transaction = function () { } _createClass(Transaction, [{ - key: 'transaction', + key: "transaction", value: function transaction() { return new _bitcoincashjsLib2.default.Transaction(); } }, { - key: 'fromHex', + key: "fromHex", value: function fromHex(hex) { return _bitcoincashjsLib2.default.Transaction.fromHex(hex); } }, { - key: 'transactionBuilder', + key: "transactionBuilder", value: function transactionBuilder() { - var network = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'bitcoin'; + var network = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "bitcoin"; return new _bitcoincashjsLib2.default.TransactionBuilder(_bitcoincashjsLib2.default.networks[network]); } }, { - key: 'fromTransaction', + key: "fromTransaction", value: function fromTransaction(tx) { return _bitcoincashjsLib2.default.TransactionBuilder.fromTransaction(tx); } }, { - key: 'details', + key: "details", value: async function details(txid) { - if (typeof txid !== 'string') { + if (typeof txid !== "string") { txid = JSON.stringify(txid); } try { - var response = await _axios2.default.get(this.restURL + 'transaction/details/' + txid); + var response = await _axios2.default.get(this.restURL + "transaction/details/" + txid); return response.data; } catch (error) { throw error.response.data; diff --git a/lib/TransactionBuilder.js b/lib/TransactionBuilder.js index 2765b5b8..e51cf9bb 100644 --- a/lib/TransactionBuilder.js +++ b/lib/TransactionBuilder.js @@ -1,4 +1,4 @@ -'use strict'; +"use strict"; Object.defineProperty(exports, "__esModule", { value: true @@ -6,23 +6,23 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _bitcoincashjsLib = require('bitcoincashjs-lib'); +var _bitcoincashjsLib = require("bitcoincashjs-lib"); var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); -var _bchaddrjs = require('bchaddrjs'); +var _bchaddrjs = require("bchaddrjs"); var _bchaddrjs2 = _interopRequireDefault(_bchaddrjs); -var _coininfo = require('coininfo'); +var _coininfo = require("coininfo"); var _coininfo2 = _interopRequireDefault(_coininfo); -var _bip = require('bip66'); +var _bip = require("bip66"); var _bip2 = _interopRequireDefault(_bip); -var _bip3 = require('bip68'); +var _bip3 = require("bip68"); var _bip4 = _interopRequireDefault(_bip3); @@ -32,12 +32,12 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons var TransactionBuilder = function () { function TransactionBuilder() { - var network = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'bitcoincash'; + var network = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "bitcoincash"; _classCallCheck(this, TransactionBuilder); var bitcoincash = void 0; - if (network === 'bitcoincash') { + if (network === "bitcoincash") { bitcoincash = _coininfo2.default.bitcoincash.main; } else { bitcoincash = _coininfo2.default.bitcoincash.test; @@ -56,10 +56,12 @@ var TransactionBuilder = function () { }; this.bip66 = _bip2.default; this.bip68 = _bip4.default; + this.p2shInput = false; + this.tx; } _createClass(TransactionBuilder, [{ - key: 'addInput', + key: "addInput", value: function addInput(txHash, vout) { var sequence = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.DEFAULT_SEQUENCE; var prevOutScript = arguments[3]; @@ -67,7 +69,14 @@ var TransactionBuilder = function () { this.transaction.addInput(txHash, vout, sequence, prevOutScript); } }, { - key: 'addOutput', + key: "addInputScript", + value: function addInputScript(vout, script) { + this.tx = this.transaction.buildIncomplete(); + this.tx.setInputScript(vout, script); + this.p2shInput = true; + } + }, { + key: "addOutput", value: function addOutput(scriptPubKey, amount) { try { this.transaction.addOutput(_bchaddrjs2.default.toLegacyAddress(scriptPubKey), amount); @@ -76,7 +85,7 @@ var TransactionBuilder = function () { } } }, { - key: 'sign', + key: "sign", value: function sign(vin, keyPair, redeemScript) { var hashType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : this.hashTypes.SIGHASH_ALL; var value = arguments[4]; @@ -86,9 +95,13 @@ var TransactionBuilder = function () { this.transaction.sign(vin, keyPair, redeemScript, hashType, value, witnessScript); } }, { - key: 'build', + key: "build", value: function build() { - return this.transaction.build(); + if (this.p2shInput === true) { + return this.tx; + } else { + return this.transaction.build(); + } } }]); diff --git a/lib/Util.js b/lib/Util.js index 157c7cfc..0f5dcf7e 100644 --- a/lib/Util.js +++ b/lib/Util.js @@ -1,4 +1,4 @@ -'use strict'; +"use strict"; Object.defineProperty(exports, "__esModule", { value: true @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _axios = require('axios'); +var _axios = require("axios"); var _axios2 = _interopRequireDefault(_axios); @@ -22,10 +22,10 @@ var Util = function () { } _createClass(Util, [{ - key: 'validateAddress', + key: "validateAddress", value: async function validateAddress(address) { try { - var response = await _axios2.default.get(this.restURL + 'util/validateAddress/' + address); + var response = await _axios2.default.get(this.restURL + "util/validateAddress/" + address); return response.data; } catch (error) { throw error.response.data; diff --git a/lib/bitbox-cli.js b/lib/bitbox-cli.js index 0423ee8a..518e2adb 100644 --- a/lib/bitbox-cli.js +++ b/lib/bitbox-cli.js @@ -1,97 +1,97 @@ -'use strict'; +"use strict"; +// 3rd party deps Object.defineProperty(exports, "__esModule", { value: true }); -var _axios = require('axios'); +var _axios = require("axios"); var _axios2 = _interopRequireDefault(_axios); -var _bitcoincashjsLib = require('bitcoincashjs-lib'); +var _bitcoincashjsLib = require("bitcoincashjs-lib"); var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); -var _BitcoinCash = require('./BitcoinCash'); +var _BitcoinCash = require("./BitcoinCash"); var _BitcoinCash2 = _interopRequireDefault(_BitcoinCash); -var _Crypto = require('./Crypto'); +var _Crypto = require("./Crypto"); var _Crypto2 = _interopRequireDefault(_Crypto); -var _Util = require('./Util'); +var _Util = require("./Util"); var _Util2 = _interopRequireDefault(_Util); -var _Block = require('./Block'); +var _Block = require("./Block"); var _Block2 = _interopRequireDefault(_Block); -var _Blockchain = require('./Blockchain'); +var _Blockchain = require("./Blockchain"); var _Blockchain2 = _interopRequireDefault(_Blockchain); -var _Control = require('./Control'); +var _Control = require("./Control"); var _Control2 = _interopRequireDefault(_Control); -var _Generating = require('./Generating'); +var _Generating = require("./Generating"); var _Generating2 = _interopRequireDefault(_Generating); -var _Mining = require('./Mining'); +var _Mining = require("./Mining"); var _Mining2 = _interopRequireDefault(_Mining); -var _Network = require('./Network'); +var _Network = require("./Network"); var _Network2 = _interopRequireDefault(_Network); -var _RawTransactions = require('./RawTransactions'); +var _RawTransactions = require("./RawTransactions"); var _RawTransactions2 = _interopRequireDefault(_RawTransactions); -var _Mnemonic = require('./Mnemonic'); +var _Mnemonic = require("./Mnemonic"); var _Mnemonic2 = _interopRequireDefault(_Mnemonic); -var _Address = require('./Address'); +var _Address = require("./Address"); var _Address2 = _interopRequireDefault(_Address); -var _HDNode = require('./HDNode'); +var _HDNode = require("./HDNode"); var _HDNode2 = _interopRequireDefault(_HDNode); -var _Transaction = require('./Transaction'); +var _Transaction = require("./Transaction"); var _Transaction2 = _interopRequireDefault(_Transaction); -var _TransactionBuilder = require('./TransactionBuilder'); +var _TransactionBuilder = require("./TransactionBuilder"); var _TransactionBuilder2 = _interopRequireDefault(_TransactionBuilder); -var _ECPair = require('./ECPair'); +var _ECPair = require("./ECPair"); var _ECPair2 = _interopRequireDefault(_ECPair); -var _Script = require('./Script'); +var _Script = require("./Script"); var _Script2 = _interopRequireDefault(_Script); -var _Price = require('./Price'); +var _Price = require("./Price"); var _Price2 = _interopRequireDefault(_Price); -var _Socket = require('./Socket'); +var _Socket = require("./Socket"); var _Socket2 = _interopRequireDefault(_Socket); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } // 3rd party deps - +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } // local deps @@ -99,10 +99,10 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons var BITBOXCli = function BITBOXCli(config) { _classCallCheck(this, BITBOXCli); - if (config && config.restURL && config.restURL !== '') { + if (config && config.restURL && config.restURL !== "") { this.restURL = config.restURL; } else { - this.restURL = 'https://rest.bitcoin.com/v1/'; + this.restURL = "https://rest.bitcoin.com/v1/"; } this.Address = new _Address2.default(this.restURL); diff --git a/package-lock.json b/package-lock.json index ca4a7403..a6bdb6de 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,128 +1,14 @@ { "name": "bitbox-cli", - "version": "1.6.6", + "version": "1.7.0", "lockfileVersion": 1, "requires": true, "dependencies": { - "@babel/code-frame": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz", - "integrity": "sha1-vXHZsZKvl435FYKdOdQJRFZDmgw=", - "requires": { - "@babel/highlight": "7.0.0-beta.51" - } - }, - "@babel/generator": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.51.tgz", - "integrity": "sha1-bHV1/952HQdIXgS67cA5LG2eMPY=", - "requires": { - "@babel/types": "7.0.0-beta.51", - "jsesc": "2.5.1", - "lodash": "4.17.11", - "source-map": "0.5.7", - "trim-right": "1.0.1" - }, - "dependencies": { - "jsesc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", - "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=" - } - } - }, - "@babel/helper-function-name": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.51.tgz", - "integrity": "sha1-IbSHSiJ8+Z7K/MMKkDAtpaJkBWE=", - "requires": { - "@babel/helper-get-function-arity": "7.0.0-beta.51", - "@babel/template": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.51.tgz", - "integrity": "sha1-MoGy0EWvlcFyzpGyCCXYXqRnZBE=", - "requires": { - "@babel/types": "7.0.0-beta.51" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.51.tgz", - "integrity": "sha1-imw/ZsTSZTUvwHdIT59ugKUauXg=", - "requires": { - "@babel/types": "7.0.0-beta.51" - } - }, - "@babel/highlight": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.51.tgz", - "integrity": "sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0=", - "requires": { - "chalk": "2.4.1", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } - }, - "@babel/parser": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.0.0-beta.51.tgz", - "integrity": "sha1-J87C30Cd9gr1gnDtj2qlVAnqhvY=" - }, - "@babel/template": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.51.tgz", - "integrity": "sha1-lgKkCuvPNXrpZ34lMu9fyBD1+/8=", - "requires": { - "@babel/code-frame": "7.0.0-beta.51", - "@babel/parser": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51", - "lodash": "4.17.11" - } - }, - "@babel/traverse": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.51.tgz", - "integrity": "sha1-mB2vLOw0emIx06odnhgDsDqqpKg=", - "requires": { - "@babel/code-frame": "7.0.0-beta.51", - "@babel/generator": "7.0.0-beta.51", - "@babel/helper-function-name": "7.0.0-beta.51", - "@babel/helper-split-export-declaration": "7.0.0-beta.51", - "@babel/parser": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51", - "debug": "3.1.0", - "globals": "11.7.0", - "invariant": "2.2.4", - "lodash": "4.17.11" - }, - "dependencies": { - "globals": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", - "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==" - } - } - }, - "@babel/types": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.51.tgz", - "integrity": "sha1-2AK3tUO1g2x3iqaReXq/APPZfqk=", - "requires": { - "esutils": "2.0.2", - "lodash": "4.17.11", - "to-fast-properties": "2.0.0" - }, - "dependencies": { - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - } - } + "@sindresorhus/is": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", + "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==", + "dev": true }, "@sinonjs/formatio": { "version": "2.0.0", @@ -187,6 +73,16 @@ "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" }, + "aggregate-error": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-1.0.0.tgz", + "integrity": "sha1-iINE2tAiCnLjr1CQYRf0h3GSX6w=", + "dev": true, + "requires": { + "clean-stack": "1.3.0", + "indent-string": "3.2.0" + } + }, "ajv": { "version": "5.5.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", @@ -203,6 +99,15 @@ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=" }, + "ansi-align": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "dev": true, + "requires": { + "string-width": "2.1.1" + } + }, "ansi-escapes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", @@ -299,6 +204,15 @@ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "2.1.2" + } + }, "assert": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", @@ -307,6 +221,12 @@ "util": "0.10.3" } }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, "assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", @@ -318,22 +238,45 @@ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, "async-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", - "optional": true + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=" }, "async-limiter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "dev": true + }, "axios": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", @@ -1186,6 +1129,12 @@ "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=" }, + "base64url": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.0.tgz", + "integrity": "sha512-LIVmqIrIWuiqTvn4RzcrwCOuHo2DD6tKmKBPXXlr4p4n4l6BZBkwFTIa3zu1XkX5MbZgro4a6BvPi+n2Mns5Gg==", + "dev": true + }, "bchaddrjs": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.2.tgz", @@ -1195,6 +1144,16 @@ "cashaddrjs": "0.2.9" } }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, "bech32": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.3.tgz", @@ -1226,8 +1185,7 @@ "binary-extensions": { "version": "1.12.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", - "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==", - "optional": true + "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==" }, "bindings": { "version": "1.3.0", @@ -1245,991 +1203,9 @@ "requires": { "bitbox-cli": "1.5.12", "keccak": "1.4.0", - "nyc": "13.0.1", + "nyc": "11.9.0", "standard": "11.0.1", "tape": "4.9.1" - }, - "dependencies": { - "nyc": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-13.0.1.tgz", - "integrity": "sha512-Op/bjhEF74IMtzMmgYt+ModTeMHoPZzHe4qseUguPBwg5qC6r4rYMBt1L3yRXQIbjUpEqmn24/1xAC/umQGU7w==", - "requires": { - "archy": "1.0.0", - "arrify": "1.0.1", - "caching-transform": "2.0.0", - "convert-source-map": "1.5.1", - "debug-log": "1.0.1", - "find-cache-dir": "2.0.0", - "find-up": "3.0.0", - "foreground-child": "1.5.6", - "glob": "7.1.2", - "istanbul-lib-coverage": "2.0.1", - "istanbul-lib-hook": "2.0.1", - "istanbul-lib-instrument": "2.3.2", - "istanbul-lib-report": "2.0.1", - "istanbul-lib-source-maps": "2.0.1", - "istanbul-reports": "2.0.0", - "make-dir": "1.3.0", - "merge-source-map": "1.1.0", - "resolve-from": "4.0.0", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "spawn-wrap": "1.4.2", - "test-exclude": "5.0.0", - "uuid": "3.3.2", - "yargs": "11.1.0", - "yargs-parser": "9.0.2" - }, - "dependencies": { - "align-text": { - "version": "0.1.4", - "bundled": true, - "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" - } - }, - "amdefine": { - "version": "1.0.1", - "bundled": true - }, - "ansi-regex": { - "version": "3.0.0", - "bundled": true - }, - "append-transform": { - "version": "1.0.0", - "bundled": true, - "requires": { - "default-require-extensions": "2.0.0" - } - }, - "archy": { - "version": "1.0.0", - "bundled": true - }, - "arrify": { - "version": "1.0.1", - "bundled": true - }, - "async": { - "version": "1.5.2", - "bundled": true - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "builtin-modules": { - "version": "1.1.1", - "bundled": true - }, - "caching-transform": { - "version": "2.0.0", - "bundled": true, - "requires": { - "make-dir": "1.3.0", - "md5-hex": "2.0.0", - "package-hash": "2.0.0", - "write-file-atomic": "2.3.0" - } - }, - "camelcase": { - "version": "1.2.1", - "bundled": true, - "optional": true - }, - "center-align": { - "version": "0.1.3", - "bundled": true, - "optional": true, - "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" - } - }, - "cliui": { - "version": "2.1.0", - "bundled": true, - "optional": true, - "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "bundled": true, - "optional": true - } - } - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true - }, - "commondir": { - "version": "1.0.1", - "bundled": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true - }, - "convert-source-map": { - "version": "1.5.1", - "bundled": true - }, - "cross-spawn": { - "version": "4.0.2", - "bundled": true, - "requires": { - "lru-cache": "4.1.3", - "which": "1.3.1" - } - }, - "debug": { - "version": "3.1.0", - "bundled": true, - "requires": { - "ms": "2.0.0" - } - }, - "debug-log": { - "version": "1.0.1", - "bundled": true - }, - "decamelize": { - "version": "1.2.0", - "bundled": true - }, - "default-require-extensions": { - "version": "2.0.0", - "bundled": true, - "requires": { - "strip-bom": "3.0.0" - } - }, - "error-ex": { - "version": "1.3.2", - "bundled": true, - "requires": { - "is-arrayish": "0.2.1" - } - }, - "es6-error": { - "version": "4.1.1", - "bundled": true - }, - "execa": { - "version": "0.7.0", - "bundled": 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" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "bundled": true, - "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" - } - } - } - }, - "find-cache-dir": { - "version": "2.0.0", - "bundled": true, - "requires": { - "commondir": "1.0.1", - "make-dir": "1.3.0", - "pkg-dir": "3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "bundled": true, - "requires": { - "locate-path": "3.0.0" - } - }, - "foreground-child": { - "version": "1.5.6", - "bundled": true, - "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true - }, - "get-caller-file": { - "version": "1.0.3", - "bundled": true - }, - "get-stream": { - "version": "3.0.0", - "bundled": true - }, - "glob": { - "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" - } - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true - }, - "handlebars": { - "version": "4.0.11", - "bundled": true, - "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "bundled": true, - "requires": { - "amdefine": "1.0.1" - } - } - } - }, - "has-flag": { - "version": "3.0.0", - "bundled": true - }, - "hosted-git-info": { - "version": "2.7.1", - "bundled": true - }, - "imurmurhash": { - "version": "0.1.4", - "bundled": true - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true - }, - "invert-kv": { - "version": "1.0.0", - "bundled": true - }, - "is-arrayish": { - "version": "0.2.1", - "bundled": true - }, - "is-buffer": { - "version": "1.1.6", - "bundled": true - }, - "is-builtin-module": { - "version": "1.0.0", - "bundled": true, - "requires": { - "builtin-modules": "1.1.1" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "bundled": true - }, - "is-stream": { - "version": "1.1.0", - "bundled": true - }, - "isexe": { - "version": "2.0.0", - "bundled": true - }, - "istanbul-lib-coverage": { - "version": "2.0.1", - "bundled": true - }, - "istanbul-lib-hook": { - "version": "2.0.1", - "bundled": true, - "requires": { - "append-transform": "1.0.0" - } - }, - "istanbul-lib-report": { - "version": "2.0.1", - "bundled": true, - "requires": { - "istanbul-lib-coverage": "2.0.1", - "make-dir": "1.3.0", - "supports-color": "5.4.0" - } - }, - "istanbul-lib-source-maps": { - "version": "2.0.1", - "bundled": true, - "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "2.0.1", - "make-dir": "1.3.0", - "rimraf": "2.6.2", - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true - } - } - }, - "istanbul-reports": { - "version": "2.0.0", - "bundled": true, - "requires": { - "handlebars": "4.0.11" - } - }, - "json-parse-better-errors": { - "version": "1.0.2", - "bundled": true - }, - "kind-of": { - "version": "3.2.2", - "bundled": true, - "requires": { - "is-buffer": "1.1.6" - } - }, - "lazy-cache": { - "version": "1.0.4", - "bundled": true, - "optional": true - }, - "lcid": { - "version": "1.0.0", - "bundled": true, - "requires": { - "invert-kv": "1.0.0" - } - }, - "load-json-file": { - "version": "4.0.0", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "bundled": true, - "requires": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" - } - }, - "lodash.flattendeep": { - "version": "4.4.0", - "bundled": true - }, - "longest": { - "version": "1.0.1", - "bundled": true - }, - "lru-cache": { - "version": "4.1.3", - "bundled": true, - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } - }, - "make-dir": { - "version": "1.3.0", - "bundled": true, - "requires": { - "pify": "3.0.0" - } - }, - "md5-hex": { - "version": "2.0.0", - "bundled": true, - "requires": { - "md5-o-matic": "0.1.1" - } - }, - "md5-o-matic": { - "version": "0.1.1", - "bundled": true - }, - "mem": { - "version": "1.1.0", - "bundled": true, - "requires": { - "mimic-fn": "1.2.0" - } - }, - "merge-source-map": { - "version": "1.1.0", - "bundled": true, - "requires": { - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true - } - } - }, - "mimic-fn": { - "version": "1.2.0", - "bundled": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "0.0.10", - "bundled": true - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "bundled": true - } - } - }, - "ms": { - "version": "2.0.0", - "bundled": true - }, - "normalize-package-data": { - "version": "2.4.0", - "bundled": true, - "requires": { - "hosted-git-info": "2.7.1", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" - } - }, - "npm-run-path": { - "version": "2.0.2", - "bundled": true, - "requires": { - "path-key": "2.0.1" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "optimist": { - "version": "0.6.1", - "bundled": true, - "requires": { - "minimist": "0.0.10", - "wordwrap": "0.0.3" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true - }, - "os-locale": { - "version": "2.1.0", - "bundled": true, - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - } - }, - "p-finally": { - "version": "1.0.0", - "bundled": true - }, - "p-limit": { - "version": "2.0.0", - "bundled": true, - "requires": { - "p-try": "2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "bundled": true, - "requires": { - "p-limit": "2.0.0" - } - }, - "p-try": { - "version": "2.0.0", - "bundled": true - }, - "package-hash": { - "version": "2.0.0", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "lodash.flattendeep": "4.4.0", - "md5-hex": "2.0.0", - "release-zalgo": "1.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "bundled": true, - "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" - } - }, - "path-exists": { - "version": "3.0.0", - "bundled": true - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true - }, - "path-key": { - "version": "2.0.1", - "bundled": true - }, - "path-type": { - "version": "3.0.0", - "bundled": true, - "requires": { - "pify": "3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "bundled": true - }, - "pkg-dir": { - "version": "3.0.0", - "bundled": true, - "requires": { - "find-up": "3.0.0" - } - }, - "pseudomap": { - "version": "1.0.2", - "bundled": true - }, - "read-pkg": { - "version": "3.0.0", - "bundled": true, - "requires": { - "load-json-file": "4.0.0", - "normalize-package-data": "2.4.0", - "path-type": "3.0.0" - } - }, - "read-pkg-up": { - "version": "4.0.0", - "bundled": true, - "requires": { - "find-up": "3.0.0", - "read-pkg": "3.0.0" - } - }, - "release-zalgo": { - "version": "1.0.0", - "bundled": true, - "requires": { - "es6-error": "4.1.1" - } - }, - "repeat-string": { - "version": "1.6.1", - "bundled": true - }, - "require-directory": { - "version": "2.1.1", - "bundled": true - }, - "require-main-filename": { - "version": "1.0.1", - "bundled": true - }, - "resolve-from": { - "version": "4.0.0", - "bundled": true - }, - "right-align": { - "version": "0.1.3", - "bundled": true, - "optional": true, - "requires": { - "align-text": "0.1.4" - } - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "requires": { - "glob": "7.1.2" - } - }, - "semver": { - "version": "5.5.0", - "bundled": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true - }, - "shebang-command": { - "version": "1.2.0", - "bundled": true, - "requires": { - "shebang-regex": "1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "bundled": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true - }, - "source-map": { - "version": "0.5.7", - "bundled": true, - "optional": true - }, - "spawn-wrap": { - "version": "1.4.2", - "bundled": true, - "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.1" - } - }, - "spdx-correct": { - "version": "3.0.0", - "bundled": true, - "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "bundled": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "bundled": true, - "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "bundled": true - }, - "string-width": { - "version": "2.1.1", - "bundled": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "requires": { - "ansi-regex": "3.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "bundled": true - }, - "strip-eof": { - "version": "1.0.0", - "bundled": true - }, - "supports-color": { - "version": "5.4.0", - "bundled": true, - "requires": { - "has-flag": "3.0.0" - } - }, - "test-exclude": { - "version": "5.0.0", - "bundled": true, - "requires": { - "arrify": "1.0.1", - "minimatch": "3.0.4", - "read-pkg-up": "4.0.0", - "require-main-filename": "1.0.1" - } - }, - "uglify-js": { - "version": "2.8.29", - "bundled": true, - "optional": true, - "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" - }, - "dependencies": { - "yargs": { - "version": "3.10.0", - "bundled": true, - "optional": true, - "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" - } - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "uuid": { - "version": "3.3.2", - "bundled": true - }, - "validate-npm-package-license": { - "version": "3.0.3", - "bundled": true, - "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" - } - }, - "which": { - "version": "1.3.1", - "bundled": true, - "requires": { - "isexe": "2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "bundled": true - }, - "window-size": { - "version": "0.1.0", - "bundled": true, - "optional": true - }, - "wordwrap": { - "version": "0.0.3", - "bundled": true - }, - "wrap-ansi": { - "version": "2.1.0", - "bundled": true, - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "bundled": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "string-width": { - "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" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "requires": { - "ansi-regex": "2.1.1" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true - }, - "write-file-atomic": { - "version": "2.3.0", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "signal-exit": "3.0.2" - } - }, - "y18n": { - "version": "3.2.1", - "bundled": true - }, - "yallist": { - "version": "2.1.2", - "bundled": true - }, - "yargs": { - "version": "11.1.0", - "bundled": true, - "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.3", - "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": "9.0.2" - }, - "dependencies": { - "cliui": { - "version": "4.1.0", - "bundled": true, - "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" - } - }, - "find-up": { - "version": "2.1.0", - "bundled": true, - "requires": { - "locate-path": "2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "bundled": true, - "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "bundled": true, - "requires": { - "p-try": "1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "bundled": true, - "requires": { - "p-limit": "1.3.0" - } - }, - "p-try": { - "version": "1.0.0", - "bundled": true - } - } - }, - "yargs-parser": { - "version": "9.0.2", - "bundled": true, - "requires": { - "camelcase": "4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "bundled": true - } - } - } - } - } } }, "bip38": { @@ -2395,6 +1371,21 @@ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" }, + "boxen": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", + "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "dev": true, + "requires": { + "ansi-align": "2.0.0", + "camelcase": "4.1.0", + "chalk": "2.4.1", + "cli-boxes": "1.0.0", + "string-width": "2.1.1", + "term-size": "1.2.0", + "widest-line": "2.0.0" + } + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -2443,7 +1434,7 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "requires": { - "caniuse-lite": "1.0.30000886", + "caniuse-lite": "1.0.30000887", "electron-to-chromium": "1.3.70" } }, @@ -2476,7 +1467,7 @@ }, "buffer-equals": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/buffer-equals/-/buffer-equals-1.0.4.tgz", + "resolved": "http://registry.npmjs.org/buffer-equals/-/buffer-equals-1.0.4.tgz", "integrity": "sha1-A1O1T9B/2VZBcGca5vZrnPENJ/U=" }, "buffer-from": { @@ -2517,6 +1508,29 @@ } } }, + "cacheable-request": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", + "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=", + "dev": true, + "requires": { + "clone-response": "1.0.2", + "get-stream": "3.0.0", + "http-cache-semantics": "3.8.1", + "keyv": "3.0.0", + "lowercase-keys": "1.0.0", + "normalize-url": "2.0.1", + "responselike": "1.0.2" + }, + "dependencies": { + "lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", + "dev": true + } + } + }, "caller-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", @@ -2549,9 +1563,21 @@ } }, "caniuse-lite": { - "version": "1.0.30000886", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000886.tgz", - "integrity": "sha512-xpYuY7rqc5+4q1n/l1BfSgIndaNqvXWKZ0Vk0ZXzVncCAkn0+huvIIPwcSL5YRJoW4MSRsgyNbjnKuh45GmknA==" + "version": "1.0.30000887", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000887.tgz", + "integrity": "sha512-AHpONWuGFWO8yY9igdXH94tikM6ERS84286r0cAMAXYFtJBk76lhiMhtCxBJNBZsD6hzlvpWZ2AtbVFEkf4JQA==" + }, + "capture-stack-trace": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", + "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true }, "cashaddrjs": { "version": "0.2.9", @@ -2631,6 +1657,12 @@ "readdirp": "2.2.1" } }, + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "dev": true + }, "cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", @@ -2671,11 +1703,23 @@ } } }, + "clean-stack": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-1.3.0.tgz", + "integrity": "sha1-noIVAa6XmYbEax1m0tQy2y/UrjE=", + "dev": true + }, "clear": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/clear/-/clear-0.0.1.tgz", "integrity": "sha1-5RhuIp2ZRIF5wTAxG2+dML/2sLo=" }, + "cli-boxes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", + "dev": true + }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", @@ -2711,6 +1755,15 @@ } } }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "1.0.1" + } + }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -2749,6 +1802,15 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, + "combined-stream": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", + "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", + "dev": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, "commander": { "version": "2.18.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.18.0.tgz", @@ -2792,6 +1854,20 @@ } } }, + "configstore": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", + "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "dev": true, + "requires": { + "dot-prop": "4.2.0", + "graceful-fs": "4.1.11", + "make-dir": "1.3.0", + "unique-string": "1.0.0", + "write-file-atomic": "2.3.0", + "xdg-basedir": "3.0.0" + } + }, "contains-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", @@ -2810,6 +1886,12 @@ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" }, + "cookiejar": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", + "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==", + "dev": true + }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", @@ -2825,6 +1907,28 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, + "coveralls": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.0.2.tgz", + "integrity": "sha512-Tv0LKe/MkBOilH2v7WBiTBdudg2ChfGbdXafc/s330djpF3zKOmuehTeRwjXWc7pzfj9FrDUTA7tEx6Div8NFw==", + "dev": true, + "requires": { + "growl": "1.10.5", + "js-yaml": "3.12.0", + "lcov-parse": "0.0.10", + "log-driver": "1.2.7", + "minimist": "1.2.0", + "request": "2.88.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, "cp-file": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-5.0.0.tgz", @@ -2837,6 +1941,15 @@ "safe-buffer": "5.1.2" } }, + "create-error-class": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "dev": true, + "requires": { + "capture-stack-trace": "1.0.1" + } + }, "create-hash": { "version": "1.2.0", "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", @@ -2872,6 +1985,21 @@ "which": "1.3.1" } }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "1.0.0" + } + }, "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", @@ -2895,6 +2023,15 @@ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "1.0.1" + } + }, "deep-eql": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", @@ -2909,6 +2046,12 @@ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" }, + "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==", + "dev": true + }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", @@ -2985,6 +2128,13 @@ "pkg-config": "1.1.1", "run-parallel": "1.1.9", "uniq": "1.0.1" + }, + "dependencies": { + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" + } } }, "del": { @@ -3008,6 +2158,18 @@ } } }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, "detect-indent": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", @@ -3034,6 +2196,15 @@ "esutils": "2.0.2" } }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "dev": true, + "requires": { + "is-obj": "1.0.1" + } + }, "drbg.js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", @@ -3044,6 +2215,29 @@ "create-hmac": "1.1.7" } }, + "duplexer": { + "version": "0.1.1", + "resolved": "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "dev": true + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1", + "safer-buffer": "2.1.2" + } + }, "ecurve": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/ecurve/-/ecurve-1.0.6.tgz", @@ -3145,35 +2339,42 @@ "is-symbol": "1.0.2" } }, + "es6-promise": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz", + "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==", + "dev": true + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "eslint": { - "version": "4.18.2", - "resolved": "http://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", - "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.6.0.tgz", + "integrity": "sha512-/eVYs9VVVboX286mBK7bbKnO1yamUy2UCRjiY6MryhQL2PaaXCExsCQ2aO83OeYRhU2eCU/FMFP+tVMoOrzNrA==", + "dev": true, "requires": { - "ajv": "5.5.2", - "babel-code-frame": "6.26.0", + "@babel/code-frame": "7.0.0", + "ajv": "6.5.4", "chalk": "2.4.1", - "concat-stream": "1.6.2", - "cross-spawn": "5.1.0", + "cross-spawn": "6.0.5", "debug": "3.1.0", "doctrine": "2.1.0", - "eslint-scope": "3.7.3", + "eslint-scope": "4.0.0", + "eslint-utils": "1.3.1", "eslint-visitor-keys": "1.0.0", - "espree": "3.5.4", + "espree": "4.0.0", "esquery": "1.0.1", "esutils": "2.0.2", "file-entry-cache": "2.0.0", "functional-red-black-tree": "1.0.1", "glob": "7.1.3", "globals": "11.7.0", - "ignore": "3.3.10", + "ignore": "4.0.6", "imurmurhash": "0.1.4", - "inquirer": "3.3.0", + "inquirer": "6.2.0", "is-resolvable": "1.1.0", "js-yaml": "3.12.0", "json-stable-stringify-without-jsonify": "1.0.1", @@ -3186,34 +2387,203 @@ "path-is-inside": "1.0.2", "pluralize": "7.0.0", "progress": "2.0.0", + "regexpp": "2.0.0", "require-uncached": "1.0.3", "semver": "5.5.1", "strip-ansi": "4.0.0", "strip-json-comments": "2.0.1", - "table": "4.0.2", + "table": "4.0.3", "text-table": "0.2.0" }, "dependencies": { + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, + "requires": { + "@babel/highlight": "7.0.0" + } + }, + "@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "dev": true, + "requires": { + "chalk": "2.4.1", + "esutils": "2.0.2", + "js-tokens": "4.0.0" + } + }, + "acorn-jsx": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-4.1.1.tgz", + "integrity": "sha512-JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw==", + "dev": true, + "requires": { + "acorn": "5.7.3" + } + }, + "ajv": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.4.tgz", + "integrity": "sha512-4Wyjt8+t6YszqaXnLDfMmG/8AlO5Zbcsy3ATHncCzjW/NoPzAId8AK6749Ybjmdt+kUY1gP60fCu46oDxPv/mg==", + "dev": true, + "requires": { + "fast-deep-equal": "2.0.1", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" + } + }, + "ajv-keywords": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", + "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", + "dev": true + }, "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "1.0.5", + "path-key": "2.0.1", + "semver": "5.5.1", + "shebang-command": "1.2.0", + "which": "1.3.1" + } + }, + "eslint-scope": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", + "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", + "dev": true, + "requires": { + "esrecurse": "4.2.1", + "estraverse": "4.2.0" + } + }, + "espree": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-4.0.0.tgz", + "integrity": "sha512-kapdTCt1bjmspxStVKX6huolXVV5ZfyZguY1lcfhVVZstce3bqxH9mcLzNn3/mlgW6wQ732+0fuG9v7h0ZQoKg==", + "dev": true, + "requires": { + "acorn": "5.7.3", + "acorn-jsx": "4.1.1" + } + }, + "external-editor": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz", + "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", + "dev": true, + "requires": { + "chardet": "0.7.0", + "iconv-lite": "0.4.24", + "tmp": "0.0.33" + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true }, "globals": { "version": "11.7.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", - "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==" + "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", + "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "inquirer": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.0.tgz", + "integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==", + "dev": true, + "requires": { + "ansi-escapes": "3.1.0", + "chalk": "2.4.1", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "3.0.3", + "figures": "2.0.0", + "lodash": "4.17.11", + "mute-stream": "0.0.7", + "run-async": "2.3.0", + "rxjs": "6.3.2", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, "requires": { "ansi-regex": "3.0.0" } + }, + "table": { + "version": "4.0.3", + "resolved": "http://registry.npmjs.org/table/-/table-4.0.3.tgz", + "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", + "dev": true, + "requires": { + "ajv": "6.5.4", + "ajv-keywords": "3.2.0", + "chalk": "2.4.1", + "lodash": "4.17.11", + "slice-ansi": "1.0.0", + "string-width": "2.1.1" + } } } }, + "eslint-config-prettier": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-3.1.0.tgz", + "integrity": "sha512-QYGfmzuc4q4J6XIhlp8vRKdI/fI0tQfQPy1dME3UOLprE+v4ssH/3W9LM2Q7h5qBcy5m0ehCrBDU2YF8q6OY8w==", + "dev": true, + "requires": { + "get-stdin": "6.0.0" + } + }, "eslint-config-standard": { "version": "11.0.0", "resolved": "http://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-11.0.0.tgz", @@ -3262,6 +2632,16 @@ } } }, + "eslint-plugin-es": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-1.3.1.tgz", + "integrity": "sha512-9XcVyZiQRVeFjqHw8qHNDAZcQLqaHlOGGpeYqzYh8S4JYCWTCO3yzyen8yVmA5PratfzTRWDwCOFphtDEG+w/w==", + "dev": true, + "requires": { + "eslint-utils": "1.3.1", + "regexpp": "2.0.0" + } + }, "eslint-plugin-import": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz", @@ -3299,16 +2679,29 @@ } }, "eslint-plugin-node": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz", - "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-7.0.1.tgz", + "integrity": "sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw==", + "dev": true, "requires": { - "ignore": "3.3.10", + "eslint-plugin-es": "1.3.1", + "eslint-utils": "1.3.1", + "ignore": "4.0.6", "minimatch": "3.0.4", "resolve": "1.8.1", "semver": "5.5.1" } }, + "eslint-plugin-prettier": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.2.tgz", + "integrity": "sha512-tGek5clmW5swrAx1mdPYM8oThrBE83ePh7LeseZHBWfHVGrHPhKn7Y5zgRMbU/9D5Td9K4CEmUPjGxA7iw98Og==", + "dev": true, + "requires": { + "fast-diff": "1.1.2", + "jest-docblock": "21.2.0" + } + }, "eslint-plugin-promise": { "version": "3.7.0", "resolved": "http://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.7.0.tgz", @@ -3339,6 +2732,12 @@ "estraverse": "4.2.0" } }, + "eslint-utils": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz", + "integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==", + "dev": true + }, "eslint-visitor-keys": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", @@ -3384,6 +2783,22 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" }, + "event-stream": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.6.tgz", + "integrity": "sha512-dGXNg4F/FgVzlApjzItL+7naHutA3fDqbV/zAZqDDlXTjiMnQmZKu+prImWKszeBM5UQeGvAl3u1wBiKeDh61g==", + "dev": true, + "requires": { + "duplexer": "0.1.1", + "flatmap-stream": "0.1.0", + "from": "0.1.7", + "map-stream": "0.0.7", + "pause-stream": "0.0.11", + "split": "1.0.1", + "stream-combiner": "0.2.2", + "through": "2.3.8" + } + }, "evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", @@ -3425,6 +2840,12 @@ "fill-range": "2.2.4" } }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, "extend-shallow": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", @@ -3463,11 +2884,23 @@ "is-extglob": "1.0.0" } }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, "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-diff": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz", + "integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==", + "dev": true + }, "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", @@ -3543,12 +2976,27 @@ "write": "0.2.1" } }, + "flatmap-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/flatmap-stream/-/flatmap-stream-0.1.0.tgz", + "integrity": "sha512-Nlic4ZRYxikqnK5rj3YoxDVKGGtUjcNDUtvQ7XsdGLZmMwdUYnXf10o1zcXtzEZTBgc6GxeRpQxV/Wu3WPIIHA==", + "dev": true + }, "flow-bin": { "version": "0.64.0", "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.64.0.tgz", "integrity": "sha1-3dP7Oxg6sas1pdXeycr167ze0Wc=", "dev": true }, + "fluent-openapi": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/fluent-openapi/-/fluent-openapi-0.1.1.tgz", + "integrity": "sha512-JTnCiuaAm66gGuizv4g46MqN1QVldPxySn9DxZ+hCjMaEGFx6ciJhz0iMfS5iv1YKqZo5pBW6qFJ9Zu0jaqvaw==", + "dev": true, + "requires": { + "lodash.merge": "4.6.1" + } + }, "follow-redirects": { "version": "1.5.8", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.8.tgz", @@ -3579,6 +3027,40 @@ "for-in": "1.0.2" } }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "dev": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.6", + "mime-types": "2.1.20" + }, + "dependencies": { + "combined-stream": { + "version": "1.0.6", + "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "dev": true, + "requires": { + "delayed-stream": "1.0.0" + } + } + } + }, + "formidable": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz", + "integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg==", + "dev": true + }, "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", @@ -3587,6 +3069,28 @@ "map-cache": "0.2.2" } }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "2.0.1", + "readable-stream": "2.3.6" + } + }, "fs-readdir-recursive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", @@ -4095,6 +3599,15 @@ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "1.0.0" + } + }, "git-clone": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/git-clone/-/git-clone-0.1.0.tgz", @@ -4131,6 +3644,15 @@ "is-glob": "2.0.1" } }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "dev": true, + "requires": { + "ini": "1.3.5" + } + }, "globals": { "version": "9.18.0", "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", @@ -4156,6 +3678,31 @@ } } }, + "got": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", + "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", + "dev": true, + "requires": { + "@sindresorhus/is": "0.7.0", + "cacheable-request": "2.1.4", + "decompress-response": "3.3.0", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "into-stream": "3.1.0", + "is-retry-allowed": "1.1.0", + "isurl": "1.0.0", + "lowercase-keys": "1.0.1", + "mimic-response": "1.0.1", + "p-cancelable": "0.4.1", + "p-timeout": "2.0.1", + "pify": "3.0.0", + "safe-buffer": "5.1.2", + "timed-out": "4.0.1", + "url-parse-lax": "3.0.0", + "url-to-options": "1.0.1" + } + }, "graceful-fs": { "version": "4.1.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", @@ -4166,6 +3713,22 @@ "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==" }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", + "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", + "dev": true, + "requires": { + "ajv": "5.5.2", + "har-schema": "2.0.0" + } + }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -4207,11 +3770,26 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, + "has-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", + "dev": true + }, "has-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" }, + "has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "dev": true, + "requires": { + "has-symbol-support-x": "1.4.2" + } + }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -4320,6 +3898,23 @@ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" }, + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "dev": true + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.14.2" + } + }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -4334,15 +3929,34 @@ "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==" }, "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true + }, "indexof": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", @@ -4403,6 +4017,16 @@ } } }, + "into-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", + "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", + "dev": true, + "requires": { + "from2": "2.3.0", + "p-is-promise": "1.1.0" + } + }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -4433,7 +4057,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "optional": true, "requires": { "binary-extensions": "1.12.0" } @@ -4456,6 +4079,15 @@ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" }, + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "dev": true, + "requires": { + "ci-info": "1.6.0" + } + }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", @@ -4535,6 +4167,22 @@ "is-extglob": "1.0.0" } }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "dev": true, + "requires": { + "global-dirs": "0.1.1", + "is-path-inside": "1.0.1" + } + }, + "is-npm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", + "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", + "dev": true + }, "is-number": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", @@ -4544,6 +4192,18 @@ "kind-of": "3.2.2" } }, + "is-obj": { + "version": "1.0.1", + "resolved": "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, + "is-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", + "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", + "dev": true + }, "is-path-cwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", @@ -4565,6 +4225,12 @@ "path-is-inside": "1.0.2" } }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -4597,6 +4263,12 @@ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" }, + "is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", + "dev": true + }, "is-regex": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", @@ -4610,6 +4282,12 @@ "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" }, + "is-retry-allowed": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", + "dev": true + }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", @@ -4623,11 +4301,16 @@ "has-symbols": "1.0.0" } }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "optional": true + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" }, "isarray": { "version": "1.0.0", @@ -4648,25 +4331,28 @@ "isarray": "1.0.0" } }, - "istanbul-lib-coverage": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", - "integrity": "sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA==" + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true }, - "istanbul-lib-instrument": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-2.3.2.tgz", - "integrity": "sha512-l7TD/VnBsIB2OJvSyxaLW/ab1+92dxZNH9wLH7uHPPioy3JZ8tnx2UXUdKmdkgmP2EFPzg64CToUP6dAS3U32Q==", - "requires": { - "@babel/generator": "7.0.0-beta.51", - "@babel/parser": "7.0.0-beta.51", - "@babel/template": "7.0.0-beta.51", - "@babel/traverse": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51", - "istanbul-lib-coverage": "2.0.1", - "semver": "5.5.1" + "isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "dev": true, + "requires": { + "has-to-string-tag-x": "1.4.1", + "is-object": "1.0.1" } }, + "jest-docblock": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz", + "integrity": "sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw==", + "dev": true + }, "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", @@ -4681,16 +4367,35 @@ "esprima": "4.0.1" } }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "optional": true + }, "jsesc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, "json-schema-traverse": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", @@ -4701,11 +4406,29 @@ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, "json5": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, "jsx-ast-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", @@ -4738,6 +4461,15 @@ } } }, + "keyv": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", + "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -4746,6 +4478,27 @@ "is-buffer": "1.1.6" } }, + "kubernetes-client": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/kubernetes-client/-/kubernetes-client-6.1.0.tgz", + "integrity": "sha512-H4Phnw7zWV3nYzvMqc84DDexr1Da8sRokPWoDLxLuVJSTPnqVuXpAPAWPqNcZzZdm4kWddTfKTjpg8iOYHiDDQ==", + "dev": true, + "requires": { + "fluent-openapi": "0.1.1", + "js-yaml": "3.12.0", + "openid-client": "2.4.1", + "request": "2.88.0" + } + }, + "latest-version": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", + "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "dev": true, + "requires": { + "package-json": "4.0.1" + } + }, "lcid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", @@ -4754,6 +4507,12 @@ "invert-kv": "1.0.0" } }, + "lcov-parse": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz", + "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=", + "dev": true + }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", @@ -4795,23 +4554,101 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" }, + "lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", + "dev": true + }, + "lodash.clone": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz", + "integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y=", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, + "lodash.fill": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/lodash.fill/-/lodash.fill-3.4.0.tgz", + "integrity": "sha1-o8dK5kDQU63w3CB5+HIHiOi/74U=", + "dev": true + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", + "dev": true + }, "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", "dev": true }, + "lodash.intersection": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.intersection/-/lodash.intersection-4.4.0.tgz", + "integrity": "sha1-ChG6Yx0OlcI8fy9Mu5ppLtF45wU=", + "dev": true + }, + "lodash.merge": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.1.tgz", + "integrity": "sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ==", + "dev": true + }, + "lodash.omit": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", + "integrity": "sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=", + "dev": true + }, + "lodash.partialright": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/lodash.partialright/-/lodash.partialright-4.2.1.tgz", + "integrity": "sha1-ATDYDoM2MmTUAHTzKbij56ihzEs=", + "dev": true + }, + "lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", + "dev": true + }, "lodash.toarray": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=" }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "log-driver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", + "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", + "dev": true + }, "lolex": { "version": "2.7.5", "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.7.5.tgz", "integrity": "sha512-l9x0+1offnKKIzYVjyXU2SiwhXDLekRzKyhnbyldPHvC7BvLPVpdNUNR2KeMAiCN2D/kLNttZgQD5WjSxuBx3Q==", "dev": true }, + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", + "dev": true + }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -4820,6 +4657,12 @@ "js-tokens": "3.0.2" } }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, "lru-cache": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", @@ -4842,6 +4685,12 @@ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, + "map-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", + "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", + "dev": true + }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", @@ -4865,6 +4714,12 @@ "inherits": "2.0.1" } }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, "mem": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", @@ -4873,11 +4728,23 @@ "mimic-fn": "1.2.0" } }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, "merkle-lib": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/merkle-lib/-/merkle-lib-2.0.10.tgz", "integrity": "sha1-grjbrnXieneFOItz+ddyXQ9vMyY=" }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, "micromatch": { "version": "2.3.11", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", @@ -4899,226 +4766,672 @@ "regex-cache": "0.4.4" } }, - "mime-db": { - "version": "1.36.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", - "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==" + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.36.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", + "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==" + }, + "mime-types": { + "version": "2.1.20", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", + "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", + "requires": { + "mime-db": "1.36.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + } + }, + "mocha": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", + "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", + "requires": { + "browser-stdout": "1.3.1", + "commander": "2.15.1", + "debug": "3.1.0", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.5", + "he": "1.1.1", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "supports-color": "5.4.0" + }, + "dependencies": { + "commander": { + "version": "2.15.1", + "resolved": "http://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.1", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "requires": { + "has-flag": "3.0.0" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" + }, + "nan": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz", + "integrity": "sha512-F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw==" + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" }, - "mime-types": { - "version": "2.1.20", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", - "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", - "requires": { - "mime-db": "1.36.0" - } + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + "nested-error-stacks": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", + "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==" }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + "net": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/net/-/net-1.0.2.tgz", + "integrity": "sha1-0XV+yaf7I3HYPPR1XOPifhCCk4g=", + "dev": true }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "nise": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.5.tgz", + "integrity": "sha512-OHRVvdxKgwZELf2DTgsJEIA4MOq8XWvpSUzoOXyxJ2mY0mMENWC66+70AShLR2z05B1dzrzWlUQJmJERlOUpZw==", + "dev": true, "requires": { - "brace-expansion": "1.1.11" + "@sinonjs/formatio": "3.0.0", + "just-extend": "3.0.0", + "lolex": "2.7.5", + "path-to-regexp": "1.7.0", + "text-encoding": "0.6.4" + }, + "dependencies": { + "@sinonjs/formatio": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.0.0.tgz", + "integrity": "sha512-vdjoYLDptCgvtJs57ULshak3iJe4NW3sJ3g36xVDGff5AE8P30S6A093EIEPjdi2noGhfuNOEkbxt3J3awFW1w==", + "dev": true, + "requires": { + "@sinonjs/samsam": "2.1.0" + } + } } }, - "minimist": { - "version": "0.0.8", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "node-cmd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/node-cmd/-/node-cmd-3.0.0.tgz", + "integrity": "sha1-OP/3CkqqT2WdID61eGJzcBjiT28=" }, - "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "node-emoji": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", + "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "lodash.toarray": "4.4.0" + } + }, + "node-forge": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.6.tgz", + "integrity": "sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw==", + "dev": true + }, + "node-jose": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-jose/-/node-jose-1.0.0.tgz", + "integrity": "sha512-RE3P8l60Rj9ELrpPmvw6sOQ1hSyYfmQdNUMCa4EN7nCE1ux5JVX+GfXv+mfUTEMhZwNMwxBtI0+X1CKKeukSVQ==", + "dev": true, + "requires": { + "base64url": "3.0.0", + "es6-promise": "4.2.5", + "lodash.assign": "4.2.0", + "lodash.clone": "4.5.0", + "lodash.fill": "3.4.0", + "lodash.flatten": "4.4.0", + "lodash.intersection": "4.4.0", + "lodash.merge": "4.6.1", + "lodash.omit": "4.5.0", + "lodash.partialright": "4.2.1", + "lodash.pick": "4.4.0", + "lodash.uniq": "4.5.0", + "long": "4.0.0", + "node-forge": "0.7.6", + "uuid": "3.3.2" + } + }, + "node-mocks-http": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/node-mocks-http/-/node-mocks-http-1.7.0.tgz", + "integrity": "sha512-AX1jGG87itK38N9UZif1CFYjJDibCOj07d0YGpUsxzglVWJjyJ3R7fxtuK7l6RVCKZteLiQyaTo9UR8rIEESgw==", + "dev": true, + "requires": { + "accepts": "1.3.5", + "depd": "1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "1.1.2", + "mime": "1.6.0", + "net": "1.0.2", + "parseurl": "1.3.2", + "range-parser": "1.2.0", + "type-is": "1.6.16" + } + }, + "nodemon": { + "version": "1.18.4", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.18.4.tgz", + "integrity": "sha512-hyK6vl65IPnky/ee+D3IWvVGgJa/m3No2/Xc/3wanS6Ce1MWjCzH6NnhPJ/vZM+6JFym16jtHx51lmCMB9HDtg==", + "dev": true, + "requires": { + "chokidar": "2.0.4", + "debug": "3.1.0", + "ignore-by-default": "1.0.1", + "minimatch": "3.0.4", + "pstree.remy": "1.1.0", + "semver": "5.5.1", + "supports-color": "5.5.0", + "touch": "3.1.0", + "undefsafe": "2.0.2", + "update-notifier": "2.5.0" }, "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "3.1.10", + "normalize-path": "2.1.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.3", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "chokidar": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", + "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", + "dev": true, + "requires": { + "anymatch": "2.0.0", + "async-each": "1.0.1", + "braces": "2.3.2", + "fsevents": "1.2.4", + "glob-parent": "3.1.0", + "inherits": "2.0.1", + "is-binary-path": "1.0.1", + "is-glob": "4.0.0", + "lodash.debounce": "4.0.8", + "normalize-path": "2.1.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.2.1", + "upath": "1.1.0" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, "requires": { - "is-plain-object": "2.0.4" + "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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - } - }, - "mocha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", - "requires": { - "browser-stdout": "1.3.1", - "commander": "2.15.1", - "debug": "3.1.0", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", - "growl": "1.10.5", - "he": "1.1.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "supports-color": "5.4.0" - }, - "dependencies": { - "commander": { - "version": "2.15.1", - "resolved": "http://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.1", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } } }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, "requires": { - "has-flag": "3.0.0" + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } } - } - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" - }, - "nan": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz", - "integrity": "sha512-F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw==" - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "optional": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "optional": true }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "optional": true + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "optional": true - } - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" - }, - "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" - }, - "nested-error-stacks": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", - "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==" - }, - "nise": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.5.tgz", - "integrity": "sha512-OHRVvdxKgwZELf2DTgsJEIA4MOq8XWvpSUzoOXyxJ2mY0mMENWC66+70AShLR2z05B1dzrzWlUQJmJERlOUpZw==", - "dev": true, - "requires": { - "@sinonjs/formatio": "3.0.0", - "just-extend": "3.0.0", - "lolex": "2.7.5", - "path-to-regexp": "1.7.0", - "text-encoding": "0.6.4" - }, - "dependencies": { - "@sinonjs/formatio": { + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.0.0.tgz", - "integrity": "sha512-vdjoYLDptCgvtJs57ULshak3iJe4NW3sJ3g36xVDGff5AE8P30S6A093EIEPjdi2noGhfuNOEkbxt3J3awFW1w==", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "@sinonjs/samsam": "2.1.0" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.13", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "3.0.0" } } } }, - "node-cmd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/node-cmd/-/node-cmd-3.0.0.tgz", - "integrity": "sha1-OP/3CkqqT2WdID61eGJzcBjiT28=" - }, - "node-emoji": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", - "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", - "requires": { - "lodash.toarray": "4.4.0" - } - }, "nopt": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", @@ -5146,6 +5459,17 @@ "remove-trailing-separator": "1.1.0" } }, + "normalize-url": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", + "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", + "dev": true, + "requires": { + "prepend-http": "2.0.0", + "query-string": "5.1.1", + "sort-keys": "2.0.0" + } + }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -5163,7 +5487,6 @@ "version": "11.9.0", "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.9.0.tgz", "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", - "dev": true, "requires": { "archy": "1.0.0", "arrify": "1.0.1", @@ -5197,7 +5520,6 @@ "align-text": { "version": "0.1.4", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2", "longest": "1.0.1", @@ -5206,76 +5528,62 @@ }, "amdefine": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true, - "dev": true + "bundled": true }, "ansi-styles": { "version": "2.2.1", - "bundled": true, - "dev": true + "bundled": true }, "append-transform": { "version": "0.4.0", "bundled": true, - "dev": true, "requires": { "default-require-extensions": "1.0.0" } }, "archy": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "arr-diff": { "version": "4.0.0", - "bundled": true, - "dev": true + "bundled": true }, "arr-flatten": { "version": "1.1.0", - "bundled": true, - "dev": true + "bundled": true }, "arr-union": { "version": "3.1.0", - "bundled": true, - "dev": true + "bundled": true }, "array-unique": { "version": "0.3.2", - "bundled": true, - "dev": true + "bundled": true }, "arrify": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "assign-symbols": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "async": { "version": "1.5.2", - "bundled": true, - "dev": true + "bundled": true }, "atob": { "version": "2.1.1", - "bundled": true, - "dev": true + "bundled": true }, "babel-code-frame": { "version": "6.26.0", "bundled": true, - "dev": true, "requires": { "chalk": "1.1.3", "esutils": "2.0.2", @@ -5285,7 +5593,6 @@ "babel-generator": { "version": "6.26.1", "bundled": true, - "dev": true, "requires": { "babel-messages": "6.23.0", "babel-runtime": "6.26.0", @@ -5300,7 +5607,6 @@ "babel-messages": { "version": "6.23.0", "bundled": true, - "dev": true, "requires": { "babel-runtime": "6.26.0" } @@ -5308,7 +5614,6 @@ "babel-runtime": { "version": "6.26.0", "bundled": true, - "dev": true, "requires": { "core-js": "2.5.6", "regenerator-runtime": "0.11.1" @@ -5317,7 +5622,6 @@ "babel-template": { "version": "6.26.0", "bundled": true, - "dev": true, "requires": { "babel-runtime": "6.26.0", "babel-traverse": "6.26.0", @@ -5329,7 +5633,6 @@ "babel-traverse": { "version": "6.26.0", "bundled": true, - "dev": true, "requires": { "babel-code-frame": "6.26.0", "babel-messages": "6.23.0", @@ -5345,7 +5648,6 @@ "babel-types": { "version": "6.26.0", "bundled": true, - "dev": true, "requires": { "babel-runtime": "6.26.0", "esutils": "2.0.2", @@ -5355,18 +5657,15 @@ }, "babylon": { "version": "6.18.0", - "bundled": true, - "dev": true + "bundled": true }, "balanced-match": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "base": { "version": "0.11.2", "bundled": true, - "dev": true, "requires": { "cache-base": "1.0.1", "class-utils": "0.3.6", @@ -5380,7 +5679,6 @@ "define-property": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "is-descriptor": "1.0.2" } @@ -5388,7 +5686,6 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -5396,7 +5693,6 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -5404,7 +5700,6 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -5413,20 +5708,17 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "brace-expansion": { "version": "1.1.11", "bundled": true, - "dev": true, "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -5435,7 +5727,6 @@ "braces": { "version": "2.3.2", "bundled": true, - "dev": true, "requires": { "arr-flatten": "1.1.0", "array-unique": "0.3.2", @@ -5452,7 +5743,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -5461,13 +5751,11 @@ }, "builtin-modules": { "version": "1.1.1", - "bundled": true, - "dev": true + "bundled": true }, "cache-base": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "collection-visit": "1.0.0", "component-emitter": "1.2.1", @@ -5482,15 +5770,13 @@ "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "caching-transform": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "md5-hex": "1.3.0", "mkdirp": "0.5.1", @@ -5500,13 +5786,11 @@ "camelcase": { "version": "1.2.1", "bundled": true, - "dev": true, "optional": true }, "center-align": { "version": "0.1.3", "bundled": true, - "dev": true, "optional": true, "requires": { "align-text": "0.1.4", @@ -5516,7 +5800,6 @@ "chalk": { "version": "1.1.3", "bundled": true, - "dev": true, "requires": { "ansi-styles": "2.2.1", "escape-string-regexp": "1.0.5", @@ -5528,7 +5811,6 @@ "class-utils": { "version": "0.3.6", "bundled": true, - "dev": true, "requires": { "arr-union": "3.1.0", "define-property": "0.2.5", @@ -5539,22 +5821,19 @@ "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { "is-descriptor": "0.1.6" } }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "cliui": { "version": "2.1.0", "bundled": true, - "dev": true, "optional": true, "requires": { "center-align": "0.1.3", @@ -5565,20 +5844,17 @@ "wordwrap": { "version": "0.0.2", "bundled": true, - "dev": true, "optional": true } } }, "code-point-at": { "version": "1.1.0", - "bundled": true, - "dev": true + "bundled": true }, "collection-visit": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "map-visit": "1.0.0", "object-visit": "1.0.1" @@ -5586,38 +5862,31 @@ }, "commondir": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "component-emitter": { "version": "1.2.1", - "bundled": true, - "dev": true + "bundled": true }, "concat-map": { "version": "0.0.1", - "bundled": true, - "dev": true + "bundled": true }, "convert-source-map": { "version": "1.5.1", - "bundled": true, - "dev": true + "bundled": true }, "copy-descriptor": { "version": "0.1.1", - "bundled": true, - "dev": true + "bundled": true }, "core-js": { "version": "2.5.6", - "bundled": true, - "dev": true + "bundled": true }, "cross-spawn": { "version": "4.0.2", "bundled": true, - "dev": true, "requires": { "lru-cache": "4.1.3", "which": "1.3.0" @@ -5626,30 +5895,25 @@ "debug": { "version": "2.6.9", "bundled": true, - "dev": true, "requires": { "ms": "2.0.0" } }, "debug-log": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "decamelize": { "version": "1.2.0", - "bundled": true, - "dev": true + "bundled": true }, "decode-uri-component": { "version": "0.2.0", - "bundled": true, - "dev": true + "bundled": true }, "default-require-extensions": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "strip-bom": "2.0.0" } @@ -5657,7 +5921,6 @@ "define-property": { "version": "2.0.2", "bundled": true, - "dev": true, "requires": { "is-descriptor": "1.0.2", "isobject": "3.0.1" @@ -5666,7 +5929,6 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -5674,7 +5936,6 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -5682,7 +5943,6 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -5691,20 +5951,17 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "detect-indent": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "repeating": "2.0.1" } @@ -5712,25 +5969,21 @@ "error-ex": { "version": "1.3.1", "bundled": true, - "dev": true, "requires": { "is-arrayish": "0.2.1" } }, "escape-string-regexp": { "version": "1.0.5", - "bundled": true, - "dev": true + "bundled": true }, "esutils": { "version": "2.0.2", - "bundled": true, - "dev": true + "bundled": true }, "execa": { "version": "0.7.0", "bundled": true, - "dev": true, "requires": { "cross-spawn": "5.1.0", "get-stream": "3.0.0", @@ -5744,7 +5997,6 @@ "cross-spawn": { "version": "5.1.0", "bundled": true, - "dev": true, "requires": { "lru-cache": "4.1.3", "shebang-command": "1.2.0", @@ -5756,7 +6008,6 @@ "expand-brackets": { "version": "2.1.4", "bundled": true, - "dev": true, "requires": { "debug": "2.6.9", "define-property": "0.2.5", @@ -5770,7 +6021,6 @@ "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -5778,7 +6028,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -5788,7 +6037,6 @@ "extend-shallow": { "version": "3.0.2", "bundled": true, - "dev": true, "requires": { "assign-symbols": "1.0.0", "is-extendable": "1.0.1" @@ -5797,7 +6045,6 @@ "is-extendable": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "is-plain-object": "2.0.4" } @@ -5807,7 +6054,6 @@ "extglob": { "version": "2.0.4", "bundled": true, - "dev": true, "requires": { "array-unique": "0.3.2", "define-property": "1.0.0", @@ -5822,7 +6068,6 @@ "define-property": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "is-descriptor": "1.0.2" } @@ -5830,7 +6075,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -5838,7 +6082,6 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -5846,7 +6089,6 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -5854,7 +6096,6 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -5863,15 +6104,13 @@ }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "fill-range": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "extend-shallow": "2.0.1", "is-number": "3.0.0", @@ -5882,7 +6121,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -5892,7 +6130,6 @@ "find-cache-dir": { "version": "0.1.1", "bundled": true, - "dev": true, "requires": { "commondir": "1.0.1", "mkdirp": "0.5.1", @@ -5902,20 +6139,17 @@ "find-up": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { "locate-path": "2.0.0" } }, "for-in": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "foreground-child": { "version": "1.5.6", "bundled": true, - "dev": true, "requires": { "cross-spawn": "4.0.2", "signal-exit": "3.0.2" @@ -5924,35 +6158,29 @@ "fragment-cache": { "version": "0.2.1", "bundled": true, - "dev": true, "requires": { "map-cache": "0.2.2" } }, "fs.realpath": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "get-caller-file": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "get-stream": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true }, "get-value": { "version": "2.0.6", - "bundled": true, - "dev": true + "bundled": true }, "glob": { "version": "7.1.2", "bundled": true, - "dev": true, "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -5964,18 +6192,15 @@ }, "globals": { "version": "9.18.0", - "bundled": true, - "dev": true + "bundled": true }, "graceful-fs": { "version": "4.1.11", - "bundled": true, - "dev": true + "bundled": true }, "handlebars": { "version": "4.0.11", "bundled": true, - "dev": true, "requires": { "async": "1.5.2", "optimist": "0.6.1", @@ -5986,7 +6211,6 @@ "source-map": { "version": "0.4.4", "bundled": true, - "dev": true, "requires": { "amdefine": "1.0.1" } @@ -5996,20 +6220,17 @@ "has-ansi": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "ansi-regex": "2.1.1" } }, "has-flag": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "has-value": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "get-value": "2.0.6", "has-values": "1.0.0", @@ -6018,15 +6239,13 @@ "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "has-values": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "is-number": "3.0.0", "kind-of": "4.0.0" @@ -6035,7 +6254,6 @@ "is-number": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" }, @@ -6043,7 +6261,6 @@ "kind-of": { "version": "3.2.2", "bundled": true, - "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -6053,7 +6270,6 @@ "kind-of": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -6062,18 +6278,15 @@ }, "hosted-git-info": { "version": "2.6.0", - "bundled": true, - "dev": true + "bundled": true }, "imurmurhash": { "version": "0.1.4", - "bundled": true, - "dev": true + "bundled": true }, "inflight": { "version": "1.0.6", "bundled": true, - "dev": true, "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -6081,44 +6294,37 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, - "dev": true + "bundled": true }, "invariant": { "version": "2.2.4", "bundled": true, - "dev": true, "requires": { "loose-envify": "1.3.1" } }, "invert-kv": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "is-accessor-descriptor": { "version": "0.1.6", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" } }, "is-arrayish": { "version": "0.2.1", - "bundled": true, - "dev": true + "bundled": true }, "is-buffer": { "version": "1.1.6", - "bundled": true, - "dev": true + "bundled": true }, "is-builtin-module": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "builtin-modules": "1.1.1" } @@ -6126,7 +6332,6 @@ "is-data-descriptor": { "version": "0.1.4", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" } @@ -6134,7 +6339,6 @@ "is-descriptor": { "version": "0.1.6", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "0.1.6", "is-data-descriptor": "0.1.4", @@ -6143,33 +6347,28 @@ "dependencies": { "kind-of": { "version": "5.1.0", - "bundled": true, - "dev": true + "bundled": true } } }, "is-extendable": { "version": "0.1.1", - "bundled": true, - "dev": true + "bundled": true }, "is-finite": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "is-number": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" } @@ -6177,72 +6376,60 @@ "is-odd": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "is-number": "4.0.0" }, "dependencies": { "is-number": { "version": "4.0.0", - "bundled": true, - "dev": true + "bundled": true } } }, "is-plain-object": { "version": "2.0.4", "bundled": true, - "dev": true, "requires": { "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "is-stream": { "version": "1.1.0", - "bundled": true, - "dev": true + "bundled": true }, "is-utf8": { "version": "0.2.1", - "bundled": true, - "dev": true + "bundled": true }, "is-windows": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "isarray": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "isexe": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true }, "istanbul-lib-coverage": { "version": "1.2.0", - "bundled": true, - "dev": true + "bundled": true }, "istanbul-lib-hook": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "append-transform": "0.4.0" } @@ -6250,7 +6437,6 @@ "istanbul-lib-instrument": { "version": "1.10.1", "bundled": true, - "dev": true, "requires": { "babel-generator": "6.26.1", "babel-template": "6.26.0", @@ -6264,7 +6450,6 @@ "istanbul-lib-report": { "version": "1.1.3", "bundled": true, - "dev": true, "requires": { "istanbul-lib-coverage": "1.2.0", "mkdirp": "0.5.1", @@ -6275,7 +6460,6 @@ "supports-color": { "version": "3.2.3", "bundled": true, - "dev": true, "requires": { "has-flag": "1.0.0" } @@ -6285,7 +6469,6 @@ "istanbul-lib-source-maps": { "version": "1.2.3", "bundled": true, - "dev": true, "requires": { "debug": "3.1.0", "istanbul-lib-coverage": "1.2.0", @@ -6297,7 +6480,6 @@ "debug": { "version": "3.1.0", "bundled": true, - "dev": true, "requires": { "ms": "2.0.0" } @@ -6307,25 +6489,21 @@ "istanbul-reports": { "version": "1.4.0", "bundled": true, - "dev": true, "requires": { "handlebars": "4.0.11" } }, "js-tokens": { "version": "3.0.2", - "bundled": true, - "dev": true + "bundled": true }, "jsesc": { "version": "1.3.0", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "3.2.2", "bundled": true, - "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -6333,13 +6511,11 @@ "lazy-cache": { "version": "1.0.4", "bundled": true, - "dev": true, "optional": true }, "lcid": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "invert-kv": "1.0.0" } @@ -6347,7 +6523,6 @@ "load-json-file": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "graceful-fs": "4.1.11", "parse-json": "2.2.0", @@ -6359,7 +6534,6 @@ "locate-path": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "p-locate": "2.0.0", "path-exists": "3.0.0" @@ -6367,25 +6541,21 @@ "dependencies": { "path-exists": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true } } }, "lodash": { "version": "4.17.10", - "bundled": true, - "dev": true + "bundled": true }, "longest": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "loose-envify": { "version": "1.3.1", "bundled": true, - "dev": true, "requires": { "js-tokens": "3.0.2" } @@ -6393,7 +6563,6 @@ "lru-cache": { "version": "4.1.3", "bundled": true, - "dev": true, "requires": { "pseudomap": "1.0.2", "yallist": "2.1.2" @@ -6401,13 +6570,11 @@ }, "map-cache": { "version": "0.2.2", - "bundled": true, - "dev": true + "bundled": true }, "map-visit": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "object-visit": "1.0.1" } @@ -6415,20 +6582,17 @@ "md5-hex": { "version": "1.3.0", "bundled": true, - "dev": true, "requires": { "md5-o-matic": "0.1.1" } }, "md5-o-matic": { "version": "0.1.1", - "bundled": true, - "dev": true + "bundled": true }, "mem": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "mimic-fn": "1.2.0" } @@ -6436,22 +6600,19 @@ "merge-source-map": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "source-map": "0.6.1" }, "dependencies": { "source-map": { "version": "0.6.1", - "bundled": true, - "dev": true + "bundled": true } } }, "micromatch": { "version": "3.1.10", "bundled": true, - "dev": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -6470,33 +6631,28 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "mimic-fn": { "version": "1.2.0", - "bundled": true, - "dev": true + "bundled": true }, "minimatch": { "version": "3.0.4", "bundled": true, - "dev": true, "requires": { "brace-expansion": "1.1.11" } }, "minimist": { "version": "0.0.8", - "bundled": true, - "dev": true + "bundled": true }, "mixin-deep": { "version": "1.3.1", "bundled": true, - "dev": true, "requires": { "for-in": "1.0.2", "is-extendable": "1.0.1" @@ -6505,7 +6661,6 @@ "is-extendable": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "is-plain-object": "2.0.4" } @@ -6515,20 +6670,17 @@ "mkdirp": { "version": "0.5.1", "bundled": true, - "dev": true, "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "nanomatch": { "version": "1.2.9", "bundled": true, - "dev": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -6546,25 +6698,21 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true, - "dev": true + "bundled": true }, "array-unique": { "version": "0.3.2", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "normalize-package-data": { "version": "2.4.0", "bundled": true, - "dev": true, "requires": { "hosted-git-info": "2.6.0", "is-builtin-module": "1.0.0", @@ -6575,25 +6723,21 @@ "npm-run-path": { "version": "2.0.2", "bundled": true, - "dev": true, "requires": { "path-key": "2.0.1" } }, "number-is-nan": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "object-assign": { "version": "4.1.1", - "bundled": true, - "dev": true + "bundled": true }, "object-copy": { "version": "0.1.0", "bundled": true, - "dev": true, "requires": { "copy-descriptor": "0.1.1", "define-property": "0.2.5", @@ -6603,7 +6747,6 @@ "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -6613,37 +6756,32 @@ "object-visit": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "object.pick": { "version": "1.3.0", "bundled": true, - "dev": true, "requires": { "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "once": { "version": "1.4.0", "bundled": true, - "dev": true, "requires": { "wrappy": "1.0.2" } @@ -6651,7 +6789,6 @@ "optimist": { "version": "0.6.1", "bundled": true, - "dev": true, "requires": { "minimist": "0.0.8", "wordwrap": "0.0.3" @@ -6659,13 +6796,11 @@ }, "os-homedir": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "os-locale": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { "execa": "0.7.0", "lcid": "1.0.0", @@ -6674,13 +6809,11 @@ }, "p-finally": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "p-limit": { "version": "1.2.0", "bundled": true, - "dev": true, "requires": { "p-try": "1.0.0" } @@ -6688,56 +6821,47 @@ "p-locate": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "p-limit": "1.2.0" } }, "p-try": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "parse-json": { "version": "2.2.0", "bundled": true, - "dev": true, "requires": { "error-ex": "1.3.1" } }, "pascalcase": { "version": "0.1.1", - "bundled": true, - "dev": true + "bundled": true }, "path-exists": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { "pinkie-promise": "2.0.1" } }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "path-key": { "version": "2.0.1", - "bundled": true, - "dev": true + "bundled": true }, "path-parse": { "version": "1.0.5", - "bundled": true, - "dev": true + "bundled": true }, "path-type": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "graceful-fs": "4.1.11", "pify": "2.3.0", @@ -6746,18 +6870,15 @@ }, "pify": { "version": "2.3.0", - "bundled": true, - "dev": true + "bundled": true }, "pinkie": { "version": "2.0.4", - "bundled": true, - "dev": true + "bundled": true }, "pinkie-promise": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "pinkie": "2.0.4" } @@ -6765,7 +6886,6 @@ "pkg-dir": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "find-up": "1.1.2" }, @@ -6773,7 +6893,6 @@ "find-up": { "version": "1.1.2", "bundled": true, - "dev": true, "requires": { "path-exists": "2.1.0", "pinkie-promise": "2.0.1" @@ -6783,18 +6902,15 @@ }, "posix-character-classes": { "version": "0.1.1", - "bundled": true, - "dev": true + "bundled": true }, "pseudomap": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "read-pkg": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "load-json-file": "1.1.0", "normalize-package-data": "2.4.0", @@ -6804,7 +6920,6 @@ "read-pkg-up": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "find-up": "1.1.2", "read-pkg": "1.1.0" @@ -6813,7 +6928,6 @@ "find-up": { "version": "1.1.2", "bundled": true, - "dev": true, "requires": { "path-exists": "2.1.0", "pinkie-promise": "2.0.1" @@ -6823,13 +6937,11 @@ }, "regenerator-runtime": { "version": "0.11.1", - "bundled": true, - "dev": true + "bundled": true }, "regex-not": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "extend-shallow": "3.0.2", "safe-regex": "1.1.0" @@ -6837,51 +6949,42 @@ }, "repeat-element": { "version": "1.1.2", - "bundled": true, - "dev": true + "bundled": true }, "repeat-string": { "version": "1.6.1", - "bundled": true, - "dev": true + "bundled": true }, "repeating": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-finite": "1.0.2" } }, "require-directory": { "version": "2.1.1", - "bundled": true, - "dev": true + "bundled": true }, "require-main-filename": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "resolve-from": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "resolve-url": { "version": "0.2.1", - "bundled": true, - "dev": true + "bundled": true }, "ret": { "version": "0.1.15", - "bundled": true, - "dev": true + "bundled": true }, "right-align": { "version": "0.1.3", "bundled": true, - "dev": true, "optional": true, "requires": { "align-text": "0.1.4" @@ -6890,7 +6993,6 @@ "rimraf": { "version": "2.6.2", "bundled": true, - "dev": true, "requires": { "glob": "7.1.2" } @@ -6898,25 +7000,21 @@ "safe-regex": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "ret": "0.1.15" } }, "semver": { "version": "5.5.0", - "bundled": true, - "dev": true + "bundled": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "set-value": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "extend-shallow": "2.0.1", "is-extendable": "0.1.1", @@ -6927,7 +7025,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -6937,30 +7034,25 @@ "shebang-command": { "version": "1.2.0", "bundled": true, - "dev": true, "requires": { "shebang-regex": "1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, - "dev": true + "bundled": true }, "slide": { "version": "1.1.6", - "bundled": true, - "dev": true + "bundled": true }, "snapdragon": { "version": "0.8.2", "bundled": true, - "dev": true, "requires": { "base": "0.11.2", "debug": "2.6.9", @@ -6975,7 +7067,6 @@ "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -6983,7 +7074,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -6993,7 +7083,6 @@ "snapdragon-node": { "version": "2.1.1", "bundled": true, - "dev": true, "requires": { "define-property": "1.0.0", "isobject": "3.0.1", @@ -7003,7 +7092,6 @@ "define-property": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "is-descriptor": "1.0.2" } @@ -7011,7 +7099,6 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -7019,7 +7106,6 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -7027,7 +7113,6 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -7035,34 +7120,29 @@ } }, "isobject": { - "version": "3.0.1", - "bundled": true, - "dev": true + "version": "3.0.1", + "bundled": true }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "snapdragon-util": { "version": "3.0.1", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" } }, "source-map": { "version": "0.5.7", - "bundled": true, - "dev": true + "bundled": true }, "source-map-resolve": { "version": "0.5.1", "bundled": true, - "dev": true, "requires": { "atob": "2.1.1", "decode-uri-component": "0.2.0", @@ -7073,13 +7153,11 @@ }, "source-map-url": { "version": "0.4.0", - "bundled": true, - "dev": true + "bundled": true }, "spawn-wrap": { "version": "1.4.2", "bundled": true, - "dev": true, "requires": { "foreground-child": "1.5.6", "mkdirp": "0.5.1", @@ -7092,7 +7170,6 @@ "spdx-correct": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "spdx-expression-parse": "3.0.0", "spdx-license-ids": "3.0.0" @@ -7100,13 +7177,11 @@ }, "spdx-exceptions": { "version": "2.1.0", - "bundled": true, - "dev": true + "bundled": true }, "spdx-expression-parse": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "spdx-exceptions": "2.1.0", "spdx-license-ids": "3.0.0" @@ -7114,13 +7189,11 @@ }, "spdx-license-ids": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true }, "split-string": { "version": "3.1.0", "bundled": true, - "dev": true, "requires": { "extend-shallow": "3.0.2" } @@ -7128,7 +7201,6 @@ "static-extend": { "version": "0.1.2", "bundled": true, - "dev": true, "requires": { "define-property": "0.2.5", "object-copy": "0.1.0" @@ -7137,7 +7209,6 @@ "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -7147,7 +7218,6 @@ "string-width": { "version": "2.1.1", "bundled": true, - "dev": true, "requires": { "is-fullwidth-code-point": "2.0.0", "strip-ansi": "4.0.0" @@ -7155,13 +7225,11 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true }, "strip-ansi": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "ansi-regex": "3.0.0" } @@ -7171,7 +7239,6 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, - "dev": true, "requires": { "ansi-regex": "2.1.1" } @@ -7179,25 +7246,21 @@ "strip-bom": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "is-utf8": "0.2.1" } }, "strip-eof": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "supports-color": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "test-exclude": { "version": "4.2.1", "bundled": true, - "dev": true, "requires": { "arrify": "1.0.1", "micromatch": "3.1.10", @@ -7208,18 +7271,15 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true, - "dev": true + "bundled": true }, "array-unique": { "version": "0.3.2", - "bundled": true, - "dev": true + "bundled": true }, "braces": { "version": "2.3.2", "bundled": true, - "dev": true, "requires": { "arr-flatten": "1.1.0", "array-unique": "0.3.2", @@ -7236,7 +7296,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -7246,7 +7305,6 @@ "expand-brackets": { "version": "2.1.4", "bundled": true, - "dev": true, "requires": { "debug": "2.6.9", "define-property": "0.2.5", @@ -7260,7 +7318,6 @@ "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -7268,7 +7325,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -7276,7 +7332,6 @@ "is-accessor-descriptor": { "version": "0.1.6", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" }, @@ -7284,7 +7339,6 @@ "kind-of": { "version": "3.2.2", "bundled": true, - "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -7294,7 +7348,6 @@ "is-data-descriptor": { "version": "0.1.4", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" }, @@ -7302,7 +7355,6 @@ "kind-of": { "version": "3.2.2", "bundled": true, - "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -7312,7 +7364,6 @@ "is-descriptor": { "version": "0.1.6", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "0.1.6", "is-data-descriptor": "0.1.4", @@ -7321,15 +7372,13 @@ }, "kind-of": { "version": "5.1.0", - "bundled": true, - "dev": true + "bundled": true } } }, "extglob": { "version": "2.0.4", "bundled": true, - "dev": true, "requires": { "array-unique": "0.3.2", "define-property": "1.0.0", @@ -7344,7 +7393,6 @@ "define-property": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "is-descriptor": "1.0.2" } @@ -7352,7 +7400,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -7362,7 +7409,6 @@ "fill-range": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "extend-shallow": "2.0.1", "is-number": "3.0.0", @@ -7373,7 +7419,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -7383,7 +7428,6 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -7391,7 +7435,6 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -7399,7 +7442,6 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -7409,7 +7451,6 @@ "is-number": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" }, @@ -7417,7 +7458,6 @@ "kind-of": { "version": "3.2.2", "bundled": true, - "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -7426,18 +7466,15 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true }, "micromatch": { "version": "3.1.10", "bundled": true, - "dev": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -7458,13 +7495,11 @@ }, "to-fast-properties": { "version": "1.0.3", - "bundled": true, - "dev": true + "bundled": true }, "to-object-path": { "version": "0.3.0", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" } @@ -7472,7 +7507,6 @@ "to-regex": { "version": "3.0.2", "bundled": true, - "dev": true, "requires": { "define-property": "2.0.2", "extend-shallow": "3.0.2", @@ -7483,7 +7517,6 @@ "to-regex-range": { "version": "2.1.1", "bundled": true, - "dev": true, "requires": { "is-number": "3.0.0", "repeat-string": "1.6.1" @@ -7492,7 +7525,6 @@ "is-number": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" } @@ -7501,13 +7533,11 @@ }, "trim-right": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "uglify-js": { "version": "2.8.29", "bundled": true, - "dev": true, "optional": true, "requires": { "source-map": "0.5.7", @@ -7518,7 +7548,6 @@ "yargs": { "version": "3.10.0", "bundled": true, - "dev": true, "optional": true, "requires": { "camelcase": "1.2.1", @@ -7532,13 +7561,11 @@ "uglify-to-browserify": { "version": "1.0.2", "bundled": true, - "dev": true, "optional": true }, "union-value": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "arr-union": "3.1.0", "get-value": "2.0.6", @@ -7549,7 +7576,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -7557,7 +7583,6 @@ "set-value": { "version": "0.4.3", "bundled": true, - "dev": true, "requires": { "extend-shallow": "2.0.1", "is-extendable": "0.1.1", @@ -7570,7 +7595,6 @@ "unset-value": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "has-value": "0.3.1", "isobject": "3.0.1" @@ -7579,7 +7603,6 @@ "has-value": { "version": "0.3.1", "bundled": true, - "dev": true, "requires": { "get-value": "2.0.6", "has-values": "0.1.4", @@ -7589,7 +7612,6 @@ "isobject": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { "isarray": "1.0.0" } @@ -7598,40 +7620,34 @@ }, "has-values": { "version": "0.1.4", - "bundled": true, - "dev": true + "bundled": true }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "urix": { "version": "0.1.0", - "bundled": true, - "dev": true + "bundled": true }, "use": { "version": "3.1.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "validate-npm-package-license": { "version": "3.0.3", "bundled": true, - "dev": true, "requires": { "spdx-correct": "3.0.0", "spdx-expression-parse": "3.0.0" @@ -7640,31 +7656,26 @@ "which": { "version": "1.3.0", "bundled": true, - "dev": true, "requires": { "isexe": "2.0.0" } }, "which-module": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "window-size": { "version": "0.1.0", "bundled": true, - "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "bundled": true, - "dev": true + "bundled": true }, "wrap-ansi": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { "string-width": "1.0.2", "strip-ansi": "3.0.1" @@ -7673,7 +7684,6 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "number-is-nan": "1.0.1" } @@ -7681,7 +7691,6 @@ "string-width": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -7692,13 +7701,11 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "write-file-atomic": { "version": "1.3.4", "bundled": true, - "dev": true, "requires": { "graceful-fs": "4.1.11", "imurmurhash": "0.1.4", @@ -7707,18 +7714,15 @@ }, "y18n": { "version": "3.2.1", - "bundled": true, - "dev": true + "bundled": true }, "yallist": { "version": "2.1.2", - "bundled": true, - "dev": true + "bundled": true }, "yargs": { "version": "11.1.0", "bundled": true, - "dev": true, "requires": { "cliui": "4.1.0", "decamelize": "1.2.0", @@ -7736,18 +7740,15 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true }, "camelcase": { "version": "4.1.0", - "bundled": true, - "dev": true + "bundled": true }, "cliui": { "version": "4.1.0", "bundled": true, - "dev": true, "requires": { "string-width": "2.1.1", "strip-ansi": "4.0.0", @@ -7757,7 +7758,6 @@ "strip-ansi": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "ansi-regex": "3.0.0" } @@ -7765,7 +7765,6 @@ "yargs-parser": { "version": "9.0.2", "bundled": true, - "dev": true, "requires": { "camelcase": "4.1.0" } @@ -7775,20 +7774,24 @@ "yargs-parser": { "version": "8.1.0", "bundled": true, - "dev": true, "requires": { "camelcase": "4.1.0" }, "dependencies": { "camelcase": { "version": "4.1.0", - "bundled": true, - "dev": true + "bundled": true } } } } }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -7869,6 +7872,15 @@ } } }, + "oidc-token-hash": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-3.0.1.tgz", + "integrity": "sha512-oLnVSEcNZkw01sB5aFR+2iJmW4oyC1PIMJmd3FMBGDuPTy5ZtEuX5WNhKMRarJIMOq8NiOwIB6eJB9AhgYwBTg==", + "dev": true, + "requires": { + "base64url": "3.0.0" + } + }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -7885,6 +7897,22 @@ "mimic-fn": "1.2.0" } }, + "openid-client": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-2.4.1.tgz", + "integrity": "sha512-x4YkoRVGLWG7VfLdm6abHV8LpcWU6BSQYmUaQcZX9sLrFHuhytaoiz/4Lf6VtrSA6/9qL4OaUMe/mgCwh2LwCw==", + "dev": true, + "requires": { + "base64url": "3.0.0", + "got": "8.3.2", + "lodash": "4.17.11", + "lru-cache": "4.1.3", + "node-jose": "1.0.0", + "oidc-token-hash": "3.0.1", + "p-any": "1.1.0", + "uuid": "3.3.2" + } + }, "optionator": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", @@ -7928,11 +7956,32 @@ "object-assign": "4.1.1" } }, + "p-any": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-any/-/p-any-1.1.0.tgz", + "integrity": "sha512-Ef0tVa4CZ5pTAmKn+Cg3w8ABBXh+hHO1aV8281dKOoUHfX+3tjG2EaFcC+aZyagg9b4EYGsHEjz21DnEE8Og2g==", + "dev": true, + "requires": { + "p-some": "2.0.1" + } + }, + "p-cancelable": { + "version": "0.4.1", + "resolved": "http://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", + "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==", + "dev": true + }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, + "p-is-promise": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", + "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", + "dev": true + }, "p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", @@ -7949,11 +7998,77 @@ "p-limit": "1.3.0" } }, + "p-some": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-some/-/p-some-2.0.1.tgz", + "integrity": "sha1-Zdh8ixVO289SIdFnd4ttLhUPbwY=", + "dev": true, + "requires": { + "aggregate-error": "1.0.0" + } + }, + "p-timeout": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", + "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", + "dev": true, + "requires": { + "p-finally": "1.0.0" + } + }, "p-try": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" }, + "package-json": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", + "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "dev": true, + "requires": { + "got": "6.7.1", + "registry-auth-token": "3.3.2", + "registry-url": "3.1.0", + "semver": "5.5.1" + }, + "dependencies": { + "got": { + "version": "6.7.1", + "resolved": "http://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "dev": true, + "requires": { + "create-error-class": "3.0.2", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "is-redirect": "1.0.0", + "is-retry-allowed": "1.1.0", + "is-stream": "1.1.0", + "lowercase-keys": "1.0.1", + "safe-buffer": "5.1.2", + "timed-out": "4.0.1", + "unzip-response": "2.0.1", + "url-parse-lax": "1.0.0" + } + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "dev": true, + "requires": { + "prepend-http": "1.0.4" + } + } + } + }, "parse-glob": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", @@ -7990,11 +8105,23 @@ "better-assert": "1.0.2" } }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", + "dev": true + }, "pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", @@ -8058,6 +8185,15 @@ "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", "dev": true }, + "pause-stream": { + "version": "0.0.11", + "resolved": "http://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "dev": true, + "requires": { + "through": "2.3.8" + } + }, "pbkdf2": { "version": "3.0.16", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", @@ -8070,6 +8206,12 @@ "sha.js": "2.4.11" } }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", @@ -8169,20 +8311,31 @@ "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "optional": true + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + }, "preserve": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", "optional": true }, + "prettier": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.14.3.tgz", + "integrity": "sha512-qZDVnCrnpsRJJq5nSsiHCE3BYMED2OtsI+cmzIzF1QIfqm5ALf8tEJcO27zV1gKNKRPdhjO0dNWnrzssDQ1tFg==", + "dev": true + }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", @@ -8207,11 +8360,41 @@ "object-assign": "4.1.1" } }, + "ps-tree": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.1.0.tgz", + "integrity": "sha1-tCGyQUDWID8e08dplrRCewjowBQ=", + "dev": true, + "requires": { + "event-stream": "3.3.6" + } + }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, + "psl": { + "version": "1.1.29", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", + "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==", + "dev": true + }, + "pstree.remy": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.0.tgz", + "integrity": "sha512-q5I5vLRMVtdWa8n/3UEzZX7Lfghzrg9eG2IKk2ENLSofKRCXVqMvMUHxCKgXNaqH/8ebhBxrqftHWnyTFweJ5Q==", + "dev": true, + "requires": { + "ps-tree": "1.1.0" + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, "pushdata-bitcoin": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", @@ -8244,6 +8427,17 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, + "query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "dev": true, + "requires": { + "decode-uri-component": "0.2.0", + "object-assign": "4.1.1", + "strict-uri-encode": "1.1.0" + } + }, "randomatic": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz", @@ -8277,6 +8471,32 @@ "safe-buffer": "5.1.2" } }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", + "dev": true + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "0.6.0", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, "read-pkg": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", @@ -8321,7 +8541,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "optional": true, "requires": { "graceful-fs": "4.1.11", "micromatch": "3.1.10", @@ -8331,8 +8550,7 @@ "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "optional": true + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "array-unique": { "version": "0.3.2", @@ -8343,7 +8561,6 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "optional": true, "requires": { "arr-flatten": "1.1.0", "array-unique": "0.3.2", @@ -8361,7 +8578,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "optional": true, "requires": { "is-extendable": "0.1.1" } @@ -8372,7 +8588,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "optional": true, "requires": { "ms": "2.0.0" } @@ -8381,7 +8596,6 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "optional": true, "requires": { "debug": "2.6.9", "define-property": "0.2.5", @@ -8396,7 +8610,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "optional": true, "requires": { "is-descriptor": "0.1.6" } @@ -8405,7 +8618,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "optional": true, "requires": { "is-extendable": "0.1.1" } @@ -8414,7 +8626,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "optional": true, "requires": { "kind-of": "3.2.2" }, @@ -8423,7 +8634,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "optional": true, "requires": { "is-buffer": "1.1.6" } @@ -8434,7 +8644,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "optional": true, "requires": { "kind-of": "3.2.2" }, @@ -8443,7 +8652,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "optional": true, "requires": { "is-buffer": "1.1.6" } @@ -8454,7 +8662,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "optional": true, "requires": { "is-accessor-descriptor": "0.1.6", "is-data-descriptor": "0.1.4", @@ -8464,8 +8671,7 @@ "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "optional": true + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, @@ -8473,7 +8679,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "optional": true, "requires": { "array-unique": "0.3.2", "define-property": "1.0.0", @@ -8489,7 +8694,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "optional": true, "requires": { "is-descriptor": "1.0.2" } @@ -8498,7 +8702,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "optional": true, "requires": { "is-extendable": "0.1.1" } @@ -8509,7 +8712,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "optional": true, "requires": { "extend-shallow": "2.0.1", "is-number": "3.0.0", @@ -8521,7 +8723,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "optional": true, "requires": { "is-extendable": "0.1.1" } @@ -8532,7 +8733,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "optional": true, "requires": { "kind-of": "6.0.2" } @@ -8541,7 +8741,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "optional": true, "requires": { "kind-of": "6.0.2" } @@ -8550,7 +8749,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "optional": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -8561,7 +8759,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "optional": true, "requires": { "kind-of": "3.2.2" }, @@ -8570,7 +8767,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "optional": true, "requires": { "is-buffer": "1.1.6" } @@ -8580,8 +8776,7 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "optional": true + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "kind-of": { "version": "6.0.2", @@ -8592,7 +8787,6 @@ "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "optional": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -8649,6 +8843,12 @@ "safe-regex": "1.1.0" } }, + "regexpp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.0.tgz", + "integrity": "sha512-g2FAVtR8Uh8GO1Nv5wpxW7VFVwHcCEr4wyA8/MHiRkO8uHoR5ntAA8Uq3P1vvMTX/BeQiRVSpDGLd+Wn5HNOTA==", + "dev": true + }, "regexpu-core": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", @@ -8659,6 +8859,25 @@ "regjsparser": "0.1.5" } }, + "registry-auth-token": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", + "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "dev": true, + "requires": { + "rc": "1.2.8", + "safe-buffer": "5.1.2" + } + }, + "registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "dev": true, + "requires": { + "rc": "1.2.8" + } + }, "regjsgen": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", @@ -8707,6 +8926,34 @@ "resolved": "https://registry.npmjs.org/repl.history/-/repl.history-0.1.4.tgz", "integrity": "sha1-gDZxcfN4HW5CmccXWMJTCX9dWDI=" }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "dev": true, + "requires": { + "aws-sign2": "0.7.0", + "aws4": "1.8.0", + "caseless": "0.12.0", + "combined-stream": "1.0.7", + "extend": "3.0.2", + "forever-agent": "0.6.1", + "form-data": "2.3.2", + "har-validator": "5.1.0", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.20", + "oauth-sign": "0.9.0", + "performance-now": "2.1.0", + "qs": "6.5.2", + "safe-buffer": "5.1.2", + "tough-cookie": "2.4.3", + "tunnel-agent": "0.6.0", + "uuid": "3.3.2" + } + }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -8744,6 +8991,15 @@ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "1.0.1" + } + }, "restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", @@ -8809,6 +9065,15 @@ "rx-lite": "4.0.8" } }, + "rxjs": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.2.tgz", + "integrity": "sha512-hV7criqbR0pe7EeL3O66UYVg92IR0XsA97+9y+BWTePK9SKmEI5Qd3Zj6uPnGkNzXsBywBQWTvujPl+1Kn9Zjw==", + "dev": true, + "requires": { + "tslib": "1.9.3" + } + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -8866,6 +9131,15 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==" }, + "semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "dev": true, + "requires": { + "semver": "5.5.1" + } + }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -9010,7 +9284,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "optional": true, "requires": { "define-property": "1.0.0", "isobject": "3.0.1", @@ -9021,7 +9294,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "optional": true, "requires": { "is-descriptor": "1.0.2" } @@ -9030,7 +9302,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "optional": true, "requires": { "kind-of": "6.0.2" } @@ -9039,7 +9310,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "optional": true, "requires": { "kind-of": "6.0.2" } @@ -9048,7 +9318,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "optional": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -9058,8 +9327,7 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "optional": true + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "kind-of": { "version": "6.0.2", @@ -9072,7 +9340,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "optional": true, "requires": { "kind-of": "3.2.2" } @@ -9133,6 +9400,15 @@ } } }, + "sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", + "dev": true, + "requires": { + "is-plain-obj": "1.1.0" + } + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -9191,6 +9467,15 @@ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz", "integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w==" }, + "split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "dev": true, + "requires": { + "through": "2.3.8" + } + }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -9204,6 +9489,23 @@ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, + "sshpk": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", + "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "dev": true, + "requires": { + "asn1": "0.2.4", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.2", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.2", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "safer-buffer": "2.1.2", + "tweetnacl": "0.14.5" + } + }, "standard": { "version": "11.0.1", "resolved": "http://registry.npmjs.org/standard/-/standard-11.0.1.tgz", @@ -9218,6 +9520,86 @@ "eslint-plugin-react": "7.7.0", "eslint-plugin-standard": "3.0.1", "standard-engine": "8.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "eslint": { + "version": "4.18.2", + "resolved": "http://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", + "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", + "requires": { + "ajv": "5.5.2", + "babel-code-frame": "6.26.0", + "chalk": "2.4.1", + "concat-stream": "1.6.2", + "cross-spawn": "5.1.0", + "debug": "3.1.0", + "doctrine": "2.1.0", + "eslint-scope": "3.7.3", + "eslint-visitor-keys": "1.0.0", + "espree": "3.5.4", + "esquery": "1.0.1", + "esutils": "2.0.2", + "file-entry-cache": "2.0.0", + "functional-red-black-tree": "1.0.1", + "glob": "7.1.3", + "globals": "11.7.0", + "ignore": "3.3.10", + "imurmurhash": "0.1.4", + "inquirer": "3.3.0", + "is-resolvable": "1.1.0", + "js-yaml": "3.12.0", + "json-stable-stringify-without-jsonify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.11", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "7.0.0", + "progress": "2.0.0", + "require-uncached": "1.0.3", + "semver": "5.5.1", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", + "table": "4.0.2", + "text-table": "0.2.0" + } + }, + "eslint-plugin-node": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz", + "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", + "requires": { + "ignore": "3.3.10", + "minimatch": "3.0.4", + "resolve": "1.8.1", + "semver": "5.5.1" + } + }, + "globals": { + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", + "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==" + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "3.0.0" + } + } } }, "standard-engine": { @@ -9257,6 +9639,22 @@ } } }, + "stream-combiner": { + "version": "0.2.2", + "resolved": "http://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", + "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", + "dev": true, + "requires": { + "duplexer": "0.1.1", + "through": "2.3.8" + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -9327,6 +9725,56 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, + "superagent": { + "version": "2.3.0", + "resolved": "http://registry.npmjs.org/superagent/-/superagent-2.3.0.tgz", + "integrity": "sha1-cDUpoHFOV+EjlZ3e+84ZOy5Q0RU=", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "cookiejar": "2.1.2", + "debug": "2.6.9", + "extend": "3.0.2", + "form-data": "1.0.0-rc4", + "formidable": "1.2.1", + "methods": "1.1.2", + "mime": "1.6.0", + "qs": "6.5.2", + "readable-stream": "2.3.6" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "form-data": { + "version": "1.0.0-rc4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc4.tgz", + "integrity": "sha1-BaxrwiIntD5EYfSIFhVUaZ1Pi14=", + "dev": true, + "requires": { + "async": "1.5.2", + "combined-stream": "1.0.7", + "mime-types": "2.1.20" + } + } + } + }, + "supertest": { + "version": "2.0.1", + "resolved": "http://registry.npmjs.org/supertest/-/supertest-2.0.1.tgz", + "integrity": "sha1-oFgIHXiPFRXUcA11Aogea3WeRM0=", + "dev": true, + "requires": { + "methods": "1.1.2", + "superagent": "2.3.0" + } + }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", @@ -9385,6 +9833,15 @@ } } }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "dev": true, + "requires": { + "execa": "0.7.0" + } + }, "text-encoding": { "version": "0.6.4", "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", @@ -9401,6 +9858,12 @@ "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", + "dev": true + }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -9442,7 +9905,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "optional": true, "requires": { "is-number": "3.0.0", "repeat-string": "1.6.1" @@ -9452,7 +9914,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "optional": true, "requires": { "kind-of": "3.2.2" } @@ -9467,11 +9928,43 @@ "nopt": "1.0.10" } }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "dev": true, + "requires": { + "psl": "1.1.29", + "punycode": "1.4.1" + } + }, "trim-right": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" }, + "tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, + "optional": true + }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", @@ -9486,6 +9979,16 @@ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, + "type-is": { + "version": "1.6.16", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "2.1.20" + } + }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", @@ -9501,6 +10004,26 @@ "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" }, + "undefsafe": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.2.tgz", + "integrity": "sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY=", + "dev": true, + "requires": { + "debug": "2.6.9" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, "union-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", @@ -9538,6 +10061,15 @@ "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "dev": true, + "requires": { + "crypto-random-string": "1.0.0" + } + }, "unorm": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.4.1.tgz", @@ -9584,11 +10116,73 @@ } } }, + "unzip-response": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", + "dev": true + }, + "upath": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", + "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", + "dev": true + }, + "update-notifier": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", + "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", + "dev": true, + "requires": { + "boxen": "1.3.0", + "chalk": "2.4.1", + "configstore": "3.1.2", + "import-lazy": "2.1.0", + "is-ci": "1.2.1", + "is-installed-globally": "0.1.0", + "is-npm": "1.0.0", + "latest-version": "3.1.0", + "semver-diff": "2.1.0", + "xdg-basedir": "3.0.0" + } + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "2.1.1" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + } + } + }, "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "2.0.0" + } + }, + "url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", + "dev": true + }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -9612,6 +10206,12 @@ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + }, "v8flags": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", @@ -9637,6 +10237,17 @@ "safe-buffer": "5.1.2" } }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" + } + }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -9650,6 +10261,15 @@ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, + "widest-line": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz", + "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", + "dev": true, + "requires": { + "string-width": "2.1.1" + } + }, "wif": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", @@ -9702,6 +10322,17 @@ "mkdirp": "0.5.1" } }, + "write-file-atomic": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", + "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "signal-exit": "3.0.2" + } + }, "ws": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", @@ -9712,6 +10343,12 @@ "ultron": "1.1.1" } }, + "xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", + "dev": true + }, "xmlhttprequest-ssl": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", diff --git a/package.json b/package.json index c0de1b76..0f07d738 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.6.6", + "version": "1.7.0", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", @@ -71,8 +71,19 @@ "devDependencies": { "@types/node": "^10.5.2", "chai": "^4.1.2", + "coveralls": "^3.0.2", + "eslint": "^5.5.0", + "eslint-config-prettier": "^3.0.1", + "eslint-plugin-node": "7.0.1", + "eslint-plugin-prettier": "^2.6.2", "flow-bin": "^0.64.0", + "kubernetes-client": "^6.1.0", + "mocha": "^3.5.3", + "node-mocks-http": "^1.7.0", + "nodemon": "^1.8.1", "nyc": "^11.6.0", - "sinon": "^4.5.0" + "prettier": "^1.14.2", + "sinon": "^4.5.0", + "supertest": "^2.0.0" } } diff --git a/src/Address.js b/src/Address.js index 6beceb64..4cc55aef 100644 --- a/src/Address.js +++ b/src/Address.js @@ -1,155 +1,165 @@ -import axios from 'axios'; -import bchaddr from 'bchaddrjs'; -import Bitcoin from 'bitcoincashjs-lib'; +"use strict" +import axios from "axios" +import bchaddr from "bchaddrjs" +import Bitcoin from "bitcoincashjs-lib" class Address { constructor(restURL) { - this.restURL = restURL; + this.restURL = restURL } // Translate address from any address format into a specific format. toLegacyAddress(address) { - return bchaddr.toLegacyAddress(address); + return bchaddr.toLegacyAddress(address) } toCashAddress(address, prefix = true) { - if(prefix) { - return bchaddr.toCashAddress(address); + if (prefix) { + return bchaddr.toCashAddress(address) } else { - return bchaddr.toCashAddress(address).split(':')[1]; + return bchaddr.toCashAddress(address).split(":")[1] } } // Converts any address format to hash160 toHash160(address) { - let legacyAddress = bchaddr.toLegacyAddress(address); - let bytes = Bitcoin.address.fromBase58Check(legacyAddress); - return bytes.hash.toString('hex'); + let legacyAddress = bchaddr.toLegacyAddress(address) + let bytes = Bitcoin.address.fromBase58Check(legacyAddress) + return bytes.hash.toString("hex") } // Converts hash160 to Legacy Address hash160ToLegacy(hash160, network = Bitcoin.networks.bitcoin.pubKeyHash) { - let buffer = Buffer(hash160, 'hex'); - let legacyAddress = Bitcoin.address.toBase58Check(buffer, network); - return legacyAddress; + let buffer = Buffer(hash160, "hex") + let legacyAddress = Bitcoin.address.toBase58Check(buffer, network) + return legacyAddress } // Converts hash160 to Cash Address hash160ToCash(hash160, network = Bitcoin.networks.bitcoin.pubKeyHash) { - let legacyAddress = this.hash160ToLegacy(hash160, network); - return this.toCashAddress(legacyAddress); + let legacyAddress = this.hash160ToLegacy(hash160, network) + return this.toCashAddress(legacyAddress) } // Test for address format. isLegacyAddress(address) { - return bchaddr.isLegacyAddress(address); + return bchaddr.isLegacyAddress(address) } isCashAddress(address) { - return bchaddr.isCashAddress(address); + return bchaddr.isCashAddress(address) } // Test for address network. isMainnetAddress(address) { - if(address[0] === 'x') { + if (address[0] === "x") { return true - } else if(address[0] === 't') { + } else if (address[0] === "t") { return false } else { - return bchaddr.isMainnetAddress(address); + return bchaddr.isMainnetAddress(address) } } isTestnetAddress(address) { - if(address[0] === 'x') { + if (address[0] === "x") { return false - } else if(address[0] === 't') { + } else if (address[0] === "t") { return true } else { - return bchaddr.isTestnetAddress(address); + return bchaddr.isTestnetAddress(address) } } // Test for address type. isP2PKHAddress(address) { - return bchaddr.isP2PKHAddress(address); + return bchaddr.isP2PKHAddress(address) } isP2SHAddress(address) { - return bchaddr.isP2SHAddress(address); + return bchaddr.isP2SHAddress(address) } // Detect address format. detectAddressFormat(address) { - return bchaddr.detectAddressFormat(address); + return bchaddr.detectAddressFormat(address) } // Detect address network. detectAddressNetwork(address) { - if(address[0] === 'x') { - return 'mainnet' - } else if(address[0] === 't') { - return 'testnet' + if (address[0] === "x") { + return "mainnet" + } else if (address[0] === "t") { + return "testnet" } else { - return bchaddr.detectAddressNetwork(address); + return bchaddr.detectAddressNetwork(address) } } // Detect address type. detectAddressType(address) { - return bchaddr.detectAddressType(address); + return bchaddr.detectAddressType(address) } fromXPub(xpub, path = "0/0") { - let HDNode = Bitcoin.HDNode.fromBase58(xpub, Bitcoin.networks[this.detectAddressNetwork(xpub)]); - let address = HDNode.derivePath(path); - return this.toCashAddress(address.getAddress()); + let HDNode = Bitcoin.HDNode.fromBase58( + xpub, + Bitcoin.networks[this.detectAddressNetwork(xpub)] + ) + let address = HDNode.derivePath(path) + return this.toCashAddress(address.getAddress()) } - fromOutputScript(scriptPubKey, network = 'bitcoincash') { + fromOutputScript(scriptPubKey, network = "bitcoincash") { let netParam - if (network !== 'bitcoincash') { + if (network !== "bitcoincash") { netParam = Bitcoin.networks.testnet } - return bchaddr.toCashAddress(Bitcoin.address.fromOutputScript(scriptPubKey, netParam)); + return bchaddr.toCashAddress( + Bitcoin.address.fromOutputScript(scriptPubKey, netParam) + ) } async details(address) { - if(typeof address !== 'string') { - address = JSON.stringify(address); + if (typeof address !== "string") { + address = JSON.stringify(address) } try { - let response = await axios.get(`${this.restURL}address/details/${address}`) - return response.data; + let response = await axios.get( + `${this.restURL}address/details/${address}` + ) + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async utxo(address) { - if(typeof address !== 'string') { - address = JSON.stringify(address); + if (typeof address !== "string") { + address = JSON.stringify(address) } try { let response = await axios.get(`${this.restURL}address/utxo/${address}`) - return response.data; + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async unconfirmed(address) { - if(typeof address !== 'string') { - address = JSON.stringify(address); + if (typeof address !== "string") { + address = JSON.stringify(address) } try { - let response = await axios.get(`${this.restURL}address/unconfirmed/${address}`) - return response.data; + let response = await axios.get( + `${this.restURL}address/unconfirmed/${address}` + ) + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } } diff --git a/src/BitcoinCash.js b/src/BitcoinCash.js index 672c2128..c0a086f7 100644 --- a/src/BitcoinCash.js +++ b/src/BitcoinCash.js @@ -1,35 +1,36 @@ -import Bitcoin from 'bitcoincashjs-lib'; -import bchaddr from 'bchaddrjs'; -import sb from 'satoshi-bitcoin'; -import bitcoinMessage from 'bitcoinjs-message'; -import bs58 from 'bs58'; -import bip21 from 'bip21'; -import coininfo from'coininfo'; -import bip38 from 'bip38'; -import wif from 'wif'; - -let Buffer = require('safe-buffer').Buffer +"use strict" +import Bitcoin from "bitcoincashjs-lib" +import bchaddr from "bchaddrjs" +import sb from "satoshi-bitcoin" +import bitcoinMessage from "bitcoinjs-message" +import bs58 from "bs58" +import bip21 from "bip21" +import coininfo from "coininfo" +import bip38 from "bip38" +import wif from "wif" + +let Buffer = require("safe-buffer").Buffer class BitcoinCash { // Translate coins to satoshi value toSatoshi(coins) { - return sb.toSatoshi(coins); + return sb.toSatoshi(coins) } // Translate satoshi to coin value toBitcoinCash(satoshis) { - return sb.toBitcoin(satoshis); + return sb.toBitcoin(satoshis) } // Translate satoshi to bits denomination toBits(satoshis) { - return parseFloat(satoshis) / 100; + return parseFloat(satoshis) / 100 } // Translate satoshi to bits denomination // TODO remove in 2.0 satsToBits(satoshis) { - return parseFloat(satoshis) / 100; + return parseFloat(satoshis) / 100 } // Translate bits to satoshi denomination @@ -51,42 +52,48 @@ class BitcoinCash { // sign message signMessageWithPrivKey(privateKeyWIF, message) { - let network = privateKeyWIF.charAt(0) === 'c' ? 'testnet' : 'bitcoincash'; - let bitcoincash; - if(network === 'bitcoincash') { - bitcoincash = coininfo.bitcoincash.main; + let network = privateKeyWIF.charAt(0) === "c" ? "testnet" : "bitcoincash" + let bitcoincash + if (network === "bitcoincash") { + bitcoincash = coininfo.bitcoincash.main } else { - bitcoincash = coininfo.bitcoincash.test; + bitcoincash = coininfo.bitcoincash.test } - let bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); + let bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS() let keyPair = Bitcoin.ECPair.fromWIF(privateKeyWIF, bitcoincashBitcoinJSLib) let privateKey = keyPair.d.toBuffer(32) - return bitcoinMessage.sign(message, privateKey, keyPair.compressed).toString('base64'); + return bitcoinMessage + .sign(message, privateKey, keyPair.compressed) + .toString("base64") } // verify message verifyMessage(address, signature, message) { - return bitcoinMessage.verify(message, bchaddr.toLegacyAddress(address), signature); + return bitcoinMessage.verify( + message, + bchaddr.toLegacyAddress(address), + signature + ) } // encode base58Check encodeBase58Check(hex) { - return bs58.encode(Buffer.from(hex, 'hex')); + return bs58.encode(Buffer.from(hex, "hex")) } // decode base58Check decodeBase58Check(address) { - return bs58.decode(address).toString('hex'); + return bs58.decode(address).toString("hex") } // encode bip21 url encodeBIP21(address, options) { - return bip21.encode(bchaddr.toCashAddress(address), options); + return bip21.encode(bchaddr.toCashAddress(address), options) } // decode bip21 url decodeBIP21(url) { - return bip21.decode(url); + return bip21.decode(url) } getByteCount(inputs, outputs) { @@ -95,37 +102,39 @@ class BitcoinCash { let hasWitness = false // assumes compressed pubkeys in all cases. let types = { - 'inputs': { - 'MULTISIG-P2SH': 49 * 4, - 'MULTISIG-P2WSH': 6 + (41 * 4), - 'MULTISIG-P2SH-P2WSH': 6 + (76 * 4), - 'P2PKH': 148 * 4, - 'P2WPKH': 108 + (41 * 4), - 'P2SH-P2WPKH': 108 + (64 * 4) + inputs: { + "MULTISIG-P2SH": 49 * 4, + "MULTISIG-P2WSH": 6 + 41 * 4, + "MULTISIG-P2SH-P2WSH": 6 + 76 * 4, + P2PKH: 148 * 4, + P2WPKH: 108 + 41 * 4, + "P2SH-P2WPKH": 108 + 64 * 4 }, - 'outputs': { - 'P2SH': 32 * 4, - 'P2PKH': 34 * 4, - 'P2WPKH': 31 * 4, - 'P2WSH': 43 * 4 + outputs: { + P2SH: 32 * 4, + P2PKH: 34 * 4, + P2WPKH: 31 * 4, + P2WSH: 43 * 4 } } Object.keys(inputs).forEach(function(key) { - if (key.slice(0,8) === 'MULTISIG') { + if (key.slice(0, 8) === "MULTISIG") { // ex. "MULTISIG-P2SH:2-3" would mean 2 of 3 P2SH MULTISIG - let keyParts = key.split(':') - if (keyParts.length !== 2) throw new Error('invalid input: ' + key) + let keyParts = key.split(":") + if (keyParts.length !== 2) throw new Error("invalid input: " + key) let newKey = keyParts[0] - let mAndN = keyParts[1].split('-').map(function (item) { return parseInt(item) }) + let mAndN = keyParts[1].split("-").map(function(item) { + return parseInt(item) + }) totalWeight += types.inputs[newKey] * inputs[key] - let multiplyer = (newKey === 'MULTISIG-P2SH') ? 4 : 1 - totalWeight += ((73 * mAndN[0]) + (34 * mAndN[1])) * multiplyer + let multiplyer = newKey === "MULTISIG-P2SH" ? 4 : 1 + totalWeight += (73 * mAndN[0] + 34 * mAndN[1]) * multiplyer } else { totalWeight += types.inputs[key] * inputs[key] } - if (key.indexOf('W') >= 0) hasWitness = true + if (key.indexOf("W") >= 0) hasWitness = true }) Object.keys(outputs).forEach(function(key) { @@ -140,21 +149,21 @@ class BitcoinCash { } encryptBIP38(privKeyWIF, passphrase) { - let decoded = wif.decode(privKeyWIF); + let decoded = wif.decode(privKeyWIF) - return bip38.encrypt(decoded.privateKey, decoded.compressed, passphrase); + return bip38.encrypt(decoded.privateKey, decoded.compressed, passphrase) } - decryptBIP38(encryptedKey, passphrase, network = 'mainnet') { - let decryptedKey = bip38.decrypt(encryptedKey, passphrase); - let prefix; - if(network === 'testnet') { - prefix = 0xEF; + decryptBIP38(encryptedKey, passphrase, network = "mainnet") { + let decryptedKey = bip38.decrypt(encryptedKey, passphrase) + let prefix + if (network === "testnet") { + prefix = 0xef } else { - prefix = 0x80; + prefix = 0x80 } - return wif.encode(prefix, decryptedKey.privateKey, decryptedKey.compressed) ; + return wif.encode(prefix, decryptedKey.privateKey, decryptedKey.compressed) } } -export default BitcoinCash; +export default BitcoinCash diff --git a/src/Block.js b/src/Block.js index 55651f1e..40ac62b6 100644 --- a/src/Block.js +++ b/src/Block.js @@ -1,17 +1,18 @@ -import axios from 'axios'; +"use strict" +import axios from "axios" class Block { constructor(restURL) { - this.restURL = restURL; + this.restURL = restURL } async details(id) { try { let response = await axios.get(`${this.restURL}block/details/${id}`) - return response.data; + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } } -export default Block; +export default Block diff --git a/src/Blockchain.js b/src/Blockchain.js index 4d844db9..fdcc454c 100644 --- a/src/Blockchain.js +++ b/src/Blockchain.js @@ -1,200 +1,237 @@ -import axios from 'axios'; +"use strict" +import axios from "axios" class Blockchain { constructor(restURL) { - this.restURL = restURL; + this.restURL = restURL } async getBestBlockHash() { try { - let response = await axios.get(`${this.restURL}blockchain/getBestBlockHash`) - return response.data; + let response = await axios.get( + `${this.restURL}blockchain/getBestBlockHash` + ) + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async getBlock(blockhash, verbose = true) { try { - let response = await axios.get(`${this.restURL}blockchain/getBlock/${blockhash}?verbose=${verbose}`) - return response.data; + let response = await axios.get( + `${this.restURL}blockchain/getBlock/${blockhash}?verbose=${verbose}` + ) + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async getBlockchainInfo() { try { - let response = await axios.get(`${this.restURL}blockchain/getBlockchainInfo`) - return response.data; + let response = await axios.get( + `${this.restURL}blockchain/getBlockchainInfo` + ) + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async getBlockCount() { try { let response = await axios.get(`${this.restURL}blockchain/getBlockCount`) - return response.data; + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async getBlockHash(height = 1) { - if(typeof height !== 'string') { - height = JSON.stringify(height); + if (typeof height !== "string") { + height = JSON.stringify(height) } try { - let response = await axios.get(`${this.restURL}blockchain/getBlockHash/${height}`) - return response.data; + let response = await axios.get( + `${this.restURL}blockchain/getBlockHash/${height}` + ) + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async getBlockHeader(hash, verbose = true) { - if(typeof hash !== 'string') { - hash = JSON.stringify(hash); + if (typeof hash !== "string") { + hash = JSON.stringify(hash) } try { - let response = await axios.get(`${this.restURL}blockchain/getBlockHeader/${hash}?verbose=${verbose}`) - return response.data; + let response = await axios.get( + `${this.restURL}blockchain/getBlockHeader/${hash}?verbose=${verbose}` + ) + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async getChainTips() { try { let response = await axios.get(`${this.restURL}blockchain/getChainTips`) - return response.data; + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async getDifficulty() { try { let response = await axios.get(`${this.restURL}blockchain/getDifficulty`) - return response.data; + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async getMempoolAncestors(txid, verbose = false) { - if(typeof txid !== 'string') { - txid = JSON.stringify(txid); + if (typeof txid !== "string") { + txid = JSON.stringify(txid) } try { - let response = await axios.get(`${this.restURL}blockchain/getMempoolAncestors/${txid}?verbose=${verbose}`) - return response.data; + let response = await axios.get( + `${ + this.restURL + }blockchain/getMempoolAncestors/${txid}?verbose=${verbose}` + ) + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async getMempoolDescendants(txid, verbose = false) { - if(typeof txid !== 'string') { - txid = JSON.stringify(txid); + if (typeof txid !== "string") { + txid = JSON.stringify(txid) } try { - let response = await axios.get(`${this.restURL}blockchain/getMempoolDescendants/${txid}?verbose=${verbose}`) - return response.data; + let response = await axios.get( + `${ + this.restURL + }blockchain/getMempoolDescendants/${txid}?verbose=${verbose}` + ) + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async getMempoolEntry(txid) { - if(typeof txid !== 'string') { - txid = JSON.stringify(txid); + if (typeof txid !== "string") { + txid = JSON.stringify(txid) } try { - let response = await axios.get(`${this.restURL}blockchain/getMempoolEntry/${txid}`) - return response.data; + let response = await axios.get( + `${this.restURL}blockchain/getMempoolEntry/${txid}` + ) + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async getMempoolInfo() { try { let response = await axios.get(`${this.restURL}blockchain/getMempoolInfo`) - return response.data; + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async getRawMempool(verbose = false) { try { - let response = await axios.get(`${this.restURL}blockchain/getRawMempool?vebose=${verbose}`) - return response.data; + let response = await axios.get( + `${this.restURL}blockchain/getRawMempool?vebose=${verbose}` + ) + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async getTxOut(txid, n, include_mempool = true) { try { - let response = await axios.get(`${this.restURL}blockchain/getTxOut/${txid}/n?include_mempool=${include_mempool}`) - return response.data; + let response = await axios.get( + `${ + this.restURL + }blockchain/getTxOut/${txid}/n?include_mempool=${include_mempool}` + ) + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async getTxOutProof(txids, blockhash) { - let path = `${this.restURL}blockchain/getTxOutProof/${txids}`; - if(blockhash) { + let path = `${this.restURL}blockchain/getTxOutProof/${txids}` + if (blockhash) { path = `${path}?blockhash=${blockhash}` } try { let response = await axios.get(path) - return response.data; + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async preciousBlock(blockhash) { try { - let response = await axios.get(`${this.restURL}blockchain/preciousBlock/${blockhash}`) - return response.data; + let response = await axios.get( + `${this.restURL}blockchain/preciousBlock/${blockhash}` + ) + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async pruneBlockchain(height) { try { - let response = await axios.post(`${this.restURL}blockchain/pruneBlockchain/${height}`) - return response.data; + let response = await axios.post( + `${this.restURL}blockchain/pruneBlockchain/${height}` + ) + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async verifyChain(checklevel = 3, nblocks = 6) { try { - let response = await axios.get(`${this.restURL}blockchain/verifyChain?checklevel=${checklevel}&nblocks=${nblocks}`) - return response.data; + let response = await axios.get( + `${ + this.restURL + }blockchain/verifyChain?checklevel=${checklevel}&nblocks=${nblocks}` + ) + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async verifyTxOutProof(proof) { try { - let response = await axios.get(`${this.restURL}blockchain/verifyTxOutProof/proof`) - return response.data; + let response = await axios.get( + `${this.restURL}blockchain/verifyTxOutProof/proof` + ) + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } } -export default Blockchain; +export default Blockchain diff --git a/src/Control.js b/src/Control.js index 7cf8da5e..edae47e5 100644 --- a/src/Control.js +++ b/src/Control.js @@ -1,24 +1,25 @@ -import axios from 'axios'; +"use strict" +import axios from "axios" class Control { constructor(restURL) { - this.restURL = restURL; + this.restURL = restURL } async getInfo() { try { let response = await axios.get(`${this.restURL}control/getInfo`) - return response.data; + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async getMemoryInfo() { try { let response = await axios.get(`${this.restURL}control/getMemoryInfo`) - return response.data; + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } // @@ -34,4 +35,4 @@ class Control { // } } -export default Control; +export default Control diff --git a/src/Crypto.js b/src/Crypto.js index 03cc97d6..254c8574 100644 --- a/src/Crypto.js +++ b/src/Crypto.js @@ -1,26 +1,27 @@ -import randomBytes from 'randombytes'; -import Bitcoin from 'bitcoincashjs-lib'; +"use strict" +import randomBytes from "randombytes" +import Bitcoin from "bitcoincashjs-lib" class Crypto { static sha256(buffer) { - return Bitcoin.crypto.sha256(buffer); + return Bitcoin.crypto.sha256(buffer) } static ripemd160(buffer) { - return Bitcoin.crypto.ripemd160(buffer); + return Bitcoin.crypto.ripemd160(buffer) } static hash256(buffer) { - return Bitcoin.crypto.hash256(buffer); + return Bitcoin.crypto.hash256(buffer) } static hash160(buffer) { - return Bitcoin.crypto.hash160(buffer); + return Bitcoin.crypto.hash160(buffer) } static randomBytes(size = 16) { - return randomBytes(size); + return randomBytes(size) } } -export default Crypto; +export default Crypto diff --git a/src/ECPair.js b/src/ECPair.js index 94fd3aa3..dde6d196 100644 --- a/src/ECPair.js +++ b/src/ECPair.js @@ -1,53 +1,54 @@ -import Bitcoin from 'bitcoincashjs-lib'; -import bchaddr from 'bchaddrjs'; -import coininfo from'coininfo'; +"use strict" +import Bitcoin from "bitcoincashjs-lib" +import bchaddr from "bchaddrjs" +import coininfo from "coininfo" class ECPair { static fromWIF(privateKeyWIF) { - let network; - if(privateKeyWIF[0] === 'L' || privateKeyWIF[0] === 'K') { - network = 'bitcoincash'; - } else if(privateKeyWIF[0] === 'c') { - network = 'testnet'; + let network + if (privateKeyWIF[0] === "L" || privateKeyWIF[0] === "K") { + network = "bitcoincash" + } else if (privateKeyWIF[0] === "c") { + network = "testnet" } - let bitcoincash; - if(network === 'bitcoincash') { - bitcoincash = coininfo.bitcoincash.main; + let bitcoincash + if (network === "bitcoincash") { + bitcoincash = coininfo.bitcoincash.main } else { - bitcoincash = coininfo.bitcoincash.test; + bitcoincash = coininfo.bitcoincash.test } - let bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); + let bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS() - return Bitcoin.ECPair.fromWIF(privateKeyWIF, bitcoincashBitcoinJSLib); + return Bitcoin.ECPair.fromWIF(privateKeyWIF, bitcoincashBitcoinJSLib) } static toWIF(ecpair) { - return ecpair.toWIF(); + return ecpair.toWIF() } static sign(ecpair, buffer) { - return ecpair.sign(buffer); + return ecpair.sign(buffer) } static verify(ecpair, buffer, signature) { - return ecpair.verify(buffer, signature); + return ecpair.verify(buffer, signature) } static fromPublicKey(pubkeyBuffer) { - return Bitcoin.ECPair.fromPublicKeyBuffer(pubkeyBuffer); + return Bitcoin.ECPair.fromPublicKeyBuffer(pubkeyBuffer) } static toPublicKey(ecpair) { - return ecpair.getPublicKeyBuffer(); + return ecpair.getPublicKeyBuffer() } static toLegacyAddress(ecpair) { - return ecpair.getAddress(); + return ecpair.getAddress() } static toCashAddress(ecpair) { - return bchaddr.toCashAddress(ecpair.getAddress()); + return bchaddr.toCashAddress(ecpair.getAddress()) } } -export default ECPair; +export default ECPair diff --git a/src/Generating.js b/src/Generating.js index a9888ff1..35266dda 100644 --- a/src/Generating.js +++ b/src/Generating.js @@ -1,17 +1,22 @@ -import axios from 'axios'; +"use strict" +import axios from "axios" class Generating { constructor(restURL) { - this.restURL = restURL; + this.restURL = restURL } async generateToAddress(blocks, address, maxtries = 1000000) { try { - let response = await axios.post(`${this.restURL}generating/generateToAddress/${blocks}/${address}?maxtries=${maxtries}`) - return response.data; + let response = await axios.post( + `${ + this.restURL + }generating/generateToAddress/${blocks}/${address}?maxtries=${maxtries}` + ) + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } } -export default Generating; +export default Generating diff --git a/src/HDNode.js b/src/HDNode.js index d4d29588..e2c0dd3f 100644 --- a/src/HDNode.js +++ b/src/HDNode.js @@ -1,116 +1,120 @@ -import Bitcoin from 'bitcoincashjs-lib'; -import bchaddr from 'bchaddrjs'; -import coininfo from'coininfo'; -import bip32utils from 'bip32-utils'; +"use strict" +import Bitcoin from "bitcoincashjs-lib" +import bchaddr from "bchaddrjs" +import coininfo from "coininfo" +import bip32utils from "bip32-utils" class HDNode { - fromSeed(rootSeedBuffer, network = 'bitcoincash') { - let bitcoincash; - if(network === 'bitcoincash') { - bitcoincash = coininfo.bitcoincash.main; + fromSeed(rootSeedBuffer, network = "bitcoincash") { + let bitcoincash + if (network === "bitcoincash") { + bitcoincash = coininfo.bitcoincash.main } else { - bitcoincash = coininfo.bitcoincash.test; + bitcoincash = coininfo.bitcoincash.test } - let bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); - return Bitcoin.HDNode.fromSeedBuffer(rootSeedBuffer, bitcoincashBitcoinJSLib); + let bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS() + return Bitcoin.HDNode.fromSeedBuffer( + rootSeedBuffer, + bitcoincashBitcoinJSLib + ) } toLegacyAddress(hdNode) { - return hdNode.getAddress(); + return hdNode.getAddress() } toCashAddress(hdNode) { - return bchaddr.toCashAddress(hdNode.getAddress()); + return bchaddr.toCashAddress(hdNode.getAddress()) } toWIF(hdNode) { - return hdNode.keyPair.toWIF(); + return hdNode.keyPair.toWIF() } toXPub(hdNode) { - return hdNode.neutered().toBase58(); + return hdNode.neutered().toBase58() } toXPriv(hdNode) { - return hdNode.toBase58(); + return hdNode.toBase58() } toKeyPair(hdNode) { - return hdNode.keyPair; + return hdNode.keyPair } toPublicKey(hdNode) { - return hdNode.getPublicKeyBuffer(); + return hdNode.getPublicKeyBuffer() } fromXPriv(xpriv) { - let bitcoincash; - if(xpriv[0] === 'x') { - bitcoincash = coininfo.bitcoincash.main; - } else if(xpriv[0] === 't') { - bitcoincash = coininfo.bitcoincash.test; + let bitcoincash + if (xpriv[0] === "x") { + bitcoincash = coininfo.bitcoincash.main + } else if (xpriv[0] === "t") { + bitcoincash = coininfo.bitcoincash.test } - let bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); - return Bitcoin.HDNode.fromBase58(xpriv, bitcoincashBitcoinJSLib); + let bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS() + return Bitcoin.HDNode.fromBase58(xpriv, bitcoincashBitcoinJSLib) } fromXPub(xpub) { - let bitcoincash; - if(xpub[0] === 'x') { - bitcoincash = coininfo.bitcoincash.main; - } else if(xpub[0] === 't') { - bitcoincash = coininfo.bitcoincash.test; + let bitcoincash + if (xpub[0] === "x") { + bitcoincash = coininfo.bitcoincash.main + } else if (xpub[0] === "t") { + bitcoincash = coininfo.bitcoincash.test } - let bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); - return Bitcoin.HDNode.fromBase58(xpub, bitcoincashBitcoinJSLib); + let bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS() + return Bitcoin.HDNode.fromBase58(xpub, bitcoincashBitcoinJSLib) } derivePath(hdnode, path) { - return hdnode.derivePath(path); + return hdnode.derivePath(path) } derive(hdnode, path) { - return hdnode.derive(path); + return hdnode.derive(path) } deriveHardened(hdnode, path) { - return hdnode.deriveHardened(path); + return hdnode.deriveHardened(path) } sign(hdnode, buffer) { - return hdnode.sign(buffer); + return hdnode.sign(buffer) } verify(hdnode, buffer, signature) { - return hdnode.verify(buffer, signature); + return hdnode.verify(buffer, signature) } isPublic(hdnode) { - return hdnode.isNeutered(); + return hdnode.isNeutered() } isPrivate(hdnode) { - return !hdnode.isNeutered(); + return !hdnode.isNeutered() } toIdentifier(hdnode) { - return hdnode.getIdentifier(); + return hdnode.getIdentifier() } fromBase58(base58, network) { - return Bitcoin.HDNode.fromBase58(base58, network); + return Bitcoin.HDNode.fromBase58(base58, network) } createAccount(hdNodes) { let arr = hdNodes.map((item, index) => { return new bip32utils.Chain(item.neutered()) - }); - return new bip32utils.Account(arr); + }) + return new bip32utils.Account(arr) } createChain(hdNode) { - return new bip32utils.Chain(hdNode); + return new bip32utils.Chain(hdNode) } } -export default HDNode; +export default HDNode diff --git a/src/Mining.js b/src/Mining.js index 3676ee45..6b4da681 100644 --- a/src/Mining.js +++ b/src/Mining.js @@ -1,48 +1,55 @@ -import axios from 'axios'; +"use strict" +import axios from "axios" class Mining { constructor(restURL) { - this.restURL = restURL; + this.restURL = restURL } async getBlockTemplate(template_request) { try { - let response = await axios.get(`${this.restURL}mining/getBlockTemplate/${template_request}`) - return response.data; + let response = await axios.get( + `${this.restURL}mining/getBlockTemplate/${template_request}` + ) + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async getMiningInfo() { try { let response = await axios.get(`${this.restURL}mining/getMiningInfo`) - return response.data; + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async getNetworkHashps(nblocks = 120, height = 1) { try { - let response = await axios.get(`${this.restURL}mining/getNetworkHashps?nblocks=${nblocks}&height=${height}`) - return response.data; + let response = await axios.get( + `${ + this.restURL + }mining/getNetworkHashps?nblocks=${nblocks}&height=${height}` + ) + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async submitBlock(hex, parameters) { - let path = `${this.restURL}mining/submitBlock/${hex}`; - if(parameters) { - path = `${path}?parameters=${parameters}`; + let path = `${this.restURL}mining/submitBlock/${hex}` + if (parameters) { + path = `${path}?parameters=${parameters}` } try { let response = await axios.post(path) - return response.data; + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } } -export default Mining; +export default Mining diff --git a/src/Mnemonic.js b/src/Mnemonic.js index 957d7988..ff603bae 100644 --- a/src/Mnemonic.js +++ b/src/Mnemonic.js @@ -1,96 +1,95 @@ -import Crypto from './Crypto'; +"use strict" +import Crypto from "./Crypto" -import BIP39 from 'bip39'; -import randomBytes from 'randombytes'; -import Bitcoin from 'bitcoincashjs-lib'; -import bchaddr from 'bchaddrjs'; -let Buffer = require('safe-buffer').Buffer +import BIP39 from "bip39" +import randomBytes from "randombytes" +import Bitcoin from "bitcoincashjs-lib" +import bchaddr from "bchaddrjs" +let Buffer = require("safe-buffer").Buffer class Mnemonic { generate(bits = 128, wordlist) { - return BIP39.generateMnemonic(bits, randomBytes, wordlist); + return BIP39.generateMnemonic(bits, randomBytes, wordlist) } fromEntropy(bytes, wordlist) { - return BIP39.entropyToMnemonic(bytes, wordlist); + return BIP39.entropyToMnemonic(bytes, wordlist) } toEntropy(mnemonic, wordlist) { - return Buffer.from(BIP39.mnemonicToEntropy(mnemonic, wordlist), 'hex'); + return Buffer.from(BIP39.mnemonicToEntropy(mnemonic, wordlist), "hex") } validate(mnemonic, wordlist) { // Preprocess the words - let words = mnemonic.split(' '); + let words = mnemonic.split(" ") // Detect blank phrase if (words.length == 0) { - return "Blank mnemonic"; + return "Blank mnemonic" } // Check each word for (let i = 0; i < words.length; i++) { - let word = words[i]; + let word = words[i] if (wordlist.indexOf(word) == -1) { // Finding closest match to word - let nearestWord = this.findNearestWord(word, wordlist); - return `${word} is not in wordlist, did you mean ${nearestWord}?`; + let nearestWord = this.findNearestWord(word, wordlist) + return `${word} is not in wordlist, did you mean ${nearestWord}?` } } // Check the words are valid - let properPhrase = words.join(); - let isValid = BIP39.validateMnemonic(mnemonic, wordlist); + let properPhrase = words.join() + let isValid = BIP39.validateMnemonic(mnemonic, wordlist) if (!isValid) { - return "Invalid mnemonic"; + return "Invalid mnemonic" } else { - return 'Valid mnemonic'; + return "Valid mnemonic" } } - toSeed(mnemonic, password = '') { - return BIP39.mnemonicToSeed(mnemonic, password); + toSeed(mnemonic, password = "") { + return BIP39.mnemonicToSeed(mnemonic, password) } wordLists() { - return BIP39.wordlists; + return BIP39.wordlists } toKeypairs(mnemonic, numberOfKeypairs = 1) { - let rootSeedBuffer = this.toSeed(mnemonic, ''); - let hdNode = Bitcoin.HDNode.fromSeedBuffer(rootSeedBuffer); + let rootSeedBuffer = this.toSeed(mnemonic, "") + let hdNode = Bitcoin.HDNode.fromSeedBuffer(rootSeedBuffer) let HDPath = `44'/145'/0'/0/` - let accounts = []; + let accounts = [] for (let i = 0; i < numberOfKeypairs; i++) { - let childHDNode = hdNode.derivePath(`${HDPath}${i}`); - accounts.push( - { - privateKeyWIF: childHDNode.keyPair.toWIF(), - address: bchaddr.toCashAddress(childHDNode.getAddress()) - } - ) - }; - return accounts; + let childHDNode = hdNode.derivePath(`${HDPath}${i}`) + accounts.push({ + privateKeyWIF: childHDNode.keyPair.toWIF(), + address: bchaddr.toCashAddress(childHDNode.getAddress()) + }) + } + return accounts } findNearestWord(word, wordlist) { - let minDistance = 99; - let closestWord = wordlist[0]; + let minDistance = 99 + let closestWord = wordlist[0] for (let i = 0; i < wordlist.length; i++) { - let comparedTo = wordlist[i]; + let comparedTo = wordlist[i] if (comparedTo.indexOf(word) == 0) { - return comparedTo; + return comparedTo } - let distance = Levenshtein.get(word, comparedTo); + let distance = Levenshtein.get(word, comparedTo) if (distance < minDistance) { - closestWord = comparedTo; - minDistance = distance; + closestWord = comparedTo + minDistance = distance } } - return closestWord; + return closestWord } } -export default Mnemonic; +export default Mnemonic // The following code is from: https://raw.githubusercontent.com/iancoleman/bip39/7ff86d4c983f1e8c80b87b31acfd69fcf98c1b82/src/js/levenshtein.js @@ -105,182 +104,190 @@ export default Mnemonic; */ var _extend = function(dst) { - var sources = Array.prototype.slice.call(arguments, 1); - for (var i=0; i tmp) { + nextCol = tmp + } + // deletion + tmp = prevRow[j + 1] + 1 + if (nextCol > tmp) { + nextCol = tmp + } + + // copy current col value into previous (in preparation for next iteration) + prevRow[j] = curCol + } + + // copy last col value into previous (in preparation for next iteration) + prevRow[j] = nextCol } - }; + return nextCol + }, /** - * Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance. - */ - var Levenshtein = { - /** - * Calculate levenshtein distance of the two strings. - * - * @param str1 String the first string. - * @param str2 String the second string. - * @return Integer the levenshtein distance (0 and above). - */ - get: function(str1, str2) { - // base cases - if (str1 === str2) return 0; - if (str1.length === 0) return str2.length; - if (str2.length === 0) return str1.length; - - // two rows - var prevRow = new Array(str2.length + 1), - curCol, nextCol, i, j, tmp; - - // initialise previous row - for (i=0; i tmp) { - nextCol = tmp; - } - // deletion - tmp = prevRow[j + 1] + 1; - if (nextCol > tmp) { - nextCol = tmp; - } - - // copy current col value into previous (in preparation for next iteration) - prevRow[j] = curCol; - } - - // copy last col value into previous (in preparation for next iteration) - prevRow[j] = nextCol; - } - - return nextCol; - }, - - /** - * Asynchronously calculate levenshtein distance of the two strings. - * - * @param str1 String the first string. - * @param str2 String the second string. - * @param cb Function callback function with signature: function(Error err, int distance) - * @param [options] Object additional options. - * @param [options.progress] Function progress callback with signature: function(percentComplete) - */ - getAsync: function(str1, str2, cb, options) { - options = _extend({}, { - progress: null - }, options); - - // base cases - if (str1 === str2) return cb(null, 0); - if (str1.length === 0) return cb(null, str2.length); - if (str2.length === 0) return cb(null, str1.length); - - // two rows - var prevRow = new Array(str2.length + 1), - curCol, nextCol, - i, j, tmp, - startTime, currentTime; - - // initialise previous row - for (i=0; i tmp) { - nextCol = tmp; - } - // deletion - tmp = prevRow[j + 1] + 1; - if (nextCol > tmp) { - nextCol = tmp; - } - - // copy current into previous (in preparation for next iteration) - prevRow[j] = curCol; - - // get current time - currentTime = new Date().valueOf(); - } - - // send a progress update? - if (null !== options.progress) { - try { - options.progress.call(null, (i * 100.0/ str1.length)); - } catch (err) { - return cb('Progress callback: ' + err.toString()); - } - } - - // next iteration - _defer(__calculate); - }; - - __calculate(); - } - - }; + * Asynchronously calculate levenshtein distance of the two strings. + * + * @param str1 String the first string. + * @param str2 String the second string. + * @param cb Function callback function with signature: function(Error err, int distance) + * @param [options] Object additional options. + * @param [options.progress] Function progress callback with signature: function(percentComplete) + */ + getAsync: function(str1, str2, cb, options) { + options = _extend( + {}, + { + progress: null + }, + options + ) + + // base cases + if (str1 === str2) return cb(null, 0) + if (str1.length === 0) return cb(null, str2.length) + if (str2.length === 0) return cb(null, str1.length) + + // two rows + var prevRow = new Array(str2.length + 1), + curCol, + nextCol, + i, + j, + tmp, + startTime, + currentTime + + // initialise previous row + for (i = 0; i < prevRow.length; ++i) { + prevRow[i] = i + } + + nextCol = 1 + i = 0 + j = -1 + + var __calculate = function() { + // reset timer + startTime = new Date().valueOf() + currentTime = startTime + + // keep going until one second has elapsed + while (currentTime - startTime < 1000) { + // reached end of current row? + if (str2.length <= ++j) { + // copy current into previous (in preparation for next iteration) + prevRow[j] = nextCol + + // if already done all chars + if (str1.length <= ++i) { + return cb(null, nextCol) + } + // else if we have more left to do + else { + nextCol = i + 1 + j = 0 + } + } + + // calculation + curCol = nextCol + + // substution + nextCol = prevRow[j] + (str1.charAt(i) === str2.charAt(j) ? 0 : 1) + // insertion + tmp = curCol + 1 + if (nextCol > tmp) { + nextCol = tmp + } + // deletion + tmp = prevRow[j + 1] + 1 + if (nextCol > tmp) { + nextCol = tmp + } + + // copy current into previous (in preparation for next iteration) + prevRow[j] = curCol + + // get current time + currentTime = new Date().valueOf() + } + + // send a progress update? + if (null !== options.progress) { + try { + options.progress.call(null, (i * 100.0) / str1.length) + } catch (err) { + return cb("Progress callback: " + err.toString()) + } + } + + // next iteration + _defer(__calculate) + } + + __calculate() + } +} diff --git a/src/Network.js b/src/Network.js index c85c180f..41899dcf 100644 --- a/src/Network.js +++ b/src/Network.js @@ -1,83 +1,90 @@ -import axios from 'axios'; +"use strict" +import axios from "axios" class Network { constructor(restURL) { - this.restURL = restURL; + this.restURL = restURL } - async addNode(node, command){ + async addNode(node, command) { try { - let response = await axios.post(`${this.restURL}network/addNode/${node}/${command}`) - return response.data; + let response = await axios.post( + `${this.restURL}network/addNode/${node}/${command}` + ) + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async clearBanned() { try { let response = await axios.post(`${this.restURL}clearBanned`) - return response.data; + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async disconnectNode(configuration) { try { - let response = await axios.post(`${this.restURL}disconnectNode/${configuration}`) - return response.data; + let response = await axios.post( + `${this.restURL}disconnectNode/${configuration}` + ) + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async getAddedNodeInfo(node) { - let path = `${this.restURL}network/getAddedNodeInfo`; - if(node) { - path = `${path}?node=${node}`; + let path = `${this.restURL}network/getAddedNodeInfo` + if (node) { + path = `${path}?node=${node}` } try { let response = await axios.get(path) - return response.data; + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async getConnectionCount() { try { - let response = await axios.get(`${this.restURL}network/getConnectionCount`) - return response.data; + let response = await axios.get( + `${this.restURL}network/getConnectionCount` + ) + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async getNetTotals() { try { let response = await axios.get(`${this.restURL}network/getNetTotals`) - return response.data; + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async getNetworkInfo() { try { let response = await axios.get(`${this.restURL}network/getNetworkInfo`) - return response.data; + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async getPeerInfo() { try { let response = await axios.get(`${this.restURL}network/getPeerInfo`) - return response.data; + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } // @@ -95,9 +102,9 @@ class Network { async ping() { try { let response = await axios.get(`${this.restURL}network/ping`) - return response.data; + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } // @@ -135,4 +142,4 @@ class Network { // } } -export default Network; +export default Network diff --git a/src/Price.js b/src/Price.js index 840dec89..9fb44b7c 100644 --- a/src/Price.js +++ b/src/Price.js @@ -1,17 +1,20 @@ -import axios from 'axios'; +"use strict" +import axios from "axios" class Price { - async current(currency = 'all') { + async current(currency = "all") { try { - let response = await axios.get(`https://www.blocktrail.com/BCC/json/blockchain/price`) - if(currency === 'all') { - return response.data; + let response = await axios.get( + `https://www.blocktrail.com/BCC/json/blockchain/price` + ) + if (currency === "all") { + return response.data } else { - return response.data[currency.toUpperCase()]; + return response.data[currency.toUpperCase()] } } catch (error) { - throw error.response.data; + throw error.response.data } } } -export default Price; +export default Price diff --git a/src/RawTransactions.js b/src/RawTransactions.js index 15c40c23..f2918577 100644 --- a/src/RawTransactions.js +++ b/src/RawTransactions.js @@ -1,60 +1,73 @@ -import axios from 'axios'; +"use strict" +import axios from "axios" class RawTransactions { constructor(restURL) { - this.restURL = restURL; + this.restURL = restURL } async decodeRawTransaction(hex) { - if(typeof hex !== 'string') { - hex = JSON.stringify(hex); + if (typeof hex !== "string") { + hex = JSON.stringify(hex) } try { - let response = await axios.get(`${this.restURL}rawtransactions/decodeRawTransaction/${hex}`) - return response.data; + let response = await axios.get( + `${this.restURL}rawtransactions/decodeRawTransaction/${hex}` + ) + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async decodeScript(script) { - if(typeof script !== 'string') { - script = JSON.stringify(script); + if (typeof script !== "string") { + script = JSON.stringify(script) } try { - let response = await axios.get(`${this.restURL}rawtransactions/decodeScript/${script}`) - return response.data; + let response = await axios.get( + `${this.restURL}rawtransactions/decodeScript/${script}` + ) + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async getRawTransaction(txid, verbose = false) { - if(typeof txid !== 'string') { - txid = JSON.stringify(txid); + if (typeof txid !== "string") { + txid = JSON.stringify(txid) } try { - let response = await axios.get(`${this.restURL}rawtransactions/getRawTransaction/${txid}?verbose=${verbose}`) - return response.data; + let response = await axios.get( + `${ + this.restURL + }rawtransactions/getRawTransaction/${txid}?verbose=${verbose}` + ) + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } async sendRawTransaction(hex, allowhighfees = false) { - if(typeof hex !== 'string') { - hex = JSON.stringify(hex); + if (typeof hex !== "string") { + hex = JSON.stringify(hex) } try { - let response = await axios.post(`${this.restURL}rawtransactions/sendRawTransaction/${hex}?allowhighfees=${allowhighfees}`) - return response.data; + let response = await axios.post( + `${ + this.restURL + }rawtransactions/sendRawTransaction/${hex}?allowhighfees=${allowhighfees}` + ) + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } } -export default RawTransactions; +export default RawTransactions diff --git a/src/Script.js b/src/Script.js index a8cdd94f..95fde869 100644 --- a/src/Script.js +++ b/src/Script.js @@ -1,66 +1,67 @@ -import Bitcoin from 'bitcoincashjs-lib'; -import opcodes from 'bitcoin-ops'; +"use strict" +import Bitcoin from "bitcoincashjs-lib" +import opcodes from "bitcoin-ops" class Script { constructor() { - this.opcodes = opcodes; - this.nullData = Bitcoin.script.nullData; + this.opcodes = opcodes + this.nullData = Bitcoin.script.nullData this.multisig = { input: { - encode: (signatures) => { - let sigs = []; - signatures.forEach((sig) => { - sigs.push(sig); + encode: signatures => { + let sigs = [] + signatures.forEach(sig => { + sigs.push(sig) }) return Bitcoin.script.multisig.input.encode(sigs) }, decode: Bitcoin.script.multisig.input.decode, - check: Bitcoin.script.multisig.input.check, + check: Bitcoin.script.multisig.input.check }, output: { encode: (m, pubKeys) => { - let pks = []; - pubKeys.forEach((pubKey) => { - pks.push(pubKey); + let pks = [] + pubKeys.forEach(pubKey => { + pks.push(pubKey) }) - return Bitcoin.script.multisig.output.encode(m, pks); + return Bitcoin.script.multisig.output.encode(m, pks) }, decode: Bitcoin.script.multisig.output.decode, - check: Bitcoin.script.multisig.output.check, + check: Bitcoin.script.multisig.output.check } - }; - this.pubKey = Bitcoin.script.pubKey; - this.pubKeyHash = Bitcoin.script.pubKeyHash; - this.scriptHash = Bitcoin.script.scriptHash; + } + this.pubKey = Bitcoin.script.pubKey + this.pubKeyHash = Bitcoin.script.pubKeyHash + this.scriptHash = Bitcoin.script.scriptHash } classifyInput(script) { - return Bitcoin.script.classifyInput(script); + return Bitcoin.script.classifyInput(script) } classifyOutput(script) { - return Bitcoin.script.classifyOutput(script); + return Bitcoin.script.classifyOutput(script) } decode(scriptBuffer) { - return Bitcoin.script.decompile(scriptBuffer); + return Bitcoin.script.decompile(scriptBuffer) } encode(scriptChunks) { - let arr = []; - scriptChunks.forEach((chunk) => { - arr.push(chunk); - }); - return Bitcoin.script.compile(arr); + let arr = [] + scriptChunks.forEach(chunk => { + arr.push(chunk) + }) + return Bitcoin.script.compile(arr) } toASM(buffer) { - return Bitcoin.script.toASM(buffer); + return Bitcoin.script.toASM(buffer) } fromASM(asm) { - return Bitcoin.script.fromASM(asm); + return Bitcoin.script.fromASM(asm) } } -export default Script; +export default Script diff --git a/src/Socket.js b/src/Socket.js index ce4c75fd..a2a600f6 100644 --- a/src/Socket.js +++ b/src/Socket.js @@ -1,37 +1,38 @@ -import io from 'socket.io-client'; +"use strict" +import io from "socket.io-client" class Socket { constructor(config = {}) { - if(typeof config === 'string') { + if (typeof config === "string") { // TODO remove this check in v2.0 - this.socket = io(`${config}`); + this.socket = io(`${config}`) } else { - if(config.restURL) { - this.socket = io(`${config.restURL}`); + if (config.restURL) { + this.socket = io(`${config.restURL}`) } else { - let restURL = 'https://rest.bitcoin.com'; - this.socket = io(`${restURL}`); + let restURL = "https://rest.bitcoin.com" + this.socket = io(`${restURL}`) } - if(config.callback) { - config.callback(); + if (config.callback) { + config.callback() } } } listen(endpoint, cb) { - this.socket.emit(endpoint); + this.socket.emit(endpoint) - if(endpoint === 'blocks') { - this.socket.on('blocks', (msg) => { - return cb(msg); - }); - } else if(endpoint === 'transactions') { - this.socket.on('transactions', (msg) => { - return cb(msg); - }); + if (endpoint === "blocks") { + this.socket.on("blocks", msg => { + return cb(msg) + }) + } else if (endpoint === "transactions") { + this.socket.on("transactions", msg => { + return cb(msg) + }) } } } -export default Socket; +export default Socket diff --git a/src/Transaction.js b/src/Transaction.js index 42887bc8..5f187872 100644 --- a/src/Transaction.js +++ b/src/Transaction.js @@ -1,39 +1,42 @@ -import Bitcoin from 'bitcoincashjs-lib'; -import axios from 'axios'; +"use strict" +import Bitcoin from "bitcoincashjs-lib" +import axios from "axios" class Transaction { constructor(restURL) { - this.restURL = restURL; + this.restURL = restURL } transaction() { - return new Bitcoin.Transaction(); + return new Bitcoin.Transaction() } fromHex(hex) { - return Bitcoin.Transaction.fromHex(hex); + return Bitcoin.Transaction.fromHex(hex) } - transactionBuilder(network = 'bitcoin') { - return new Bitcoin.TransactionBuilder(Bitcoin.networks[network]); + transactionBuilder(network = "bitcoin") { + return new Bitcoin.TransactionBuilder(Bitcoin.networks[network]) } fromTransaction(tx) { - return Bitcoin.TransactionBuilder.fromTransaction(tx); + return Bitcoin.TransactionBuilder.fromTransaction(tx) } async details(txid) { - if(typeof txid !== 'string') { - txid = JSON.stringify(txid); + if (typeof txid !== "string") { + txid = JSON.stringify(txid) } try { - let response = await axios.get(`${this.restURL}transaction/details/${txid}`) - return response.data; + let response = await axios.get( + `${this.restURL}transaction/details/${txid}` + ) + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } } -export default Transaction; +export default Transaction diff --git a/src/TransactionBuilder.js b/src/TransactionBuilder.js index 529f5247..12f72bbe 100644 --- a/src/TransactionBuilder.js +++ b/src/TransactionBuilder.js @@ -1,20 +1,21 @@ -import Bitcoin from 'bitcoincashjs-lib'; -import bchaddr from 'bchaddrjs'; -import coininfo from'coininfo'; -import bip66 from 'bip66'; -import bip68 from 'bip68'; +"use strict" +import Bitcoin from "bitcoincashjs-lib" +import bchaddr from "bchaddrjs" +import coininfo from "coininfo" +import bip66 from "bip66" +import bip68 from "bip68" class TransactionBuilder { - constructor(network = 'bitcoincash') { - let bitcoincash; - if(network === 'bitcoincash') { - bitcoincash = coininfo.bitcoincash.main; + constructor(network = "bitcoincash") { + let bitcoincash + if (network === "bitcoincash") { + bitcoincash = coininfo.bitcoincash.main } else { - bitcoincash = coininfo.bitcoincash.test; + bitcoincash = coininfo.bitcoincash.test } - let bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); - this.transaction = new Bitcoin.TransactionBuilder(bitcoincashBitcoinJSLib); - this.DEFAULT_SEQUENCE = 0xffffffff; + let bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS() + this.transaction = new Bitcoin.TransactionBuilder(bitcoincashBitcoinJSLib) + this.DEFAULT_SEQUENCE = 0xffffffff this.hashTypes = { SIGHASH_ALL: 0x01, SIGHASH_NONE: 0x02, @@ -23,38 +24,57 @@ class TransactionBuilder { SIGHASH_BITCOINCASH_BIP143: 0x40, ADVANCED_TRANSACTION_MARKER: 0x00, ADVANCED_TRANSACTION_FLAG: 0x01 - }; - this.bip66 = bip66; - this.bip68 = bip68; + } + this.bip66 = bip66 + this.bip68 = bip68 + this.p2shInput = false + this.tx } addInput(txHash, vout, sequence = this.DEFAULT_SEQUENCE, prevOutScript) { - this.transaction.addInput( - txHash, - vout, - sequence, - prevOutScript - ); + this.transaction.addInput(txHash, vout, sequence, prevOutScript) + } + + addInputScript(vout, script) { + this.tx = this.transaction.buildIncomplete() + this.tx.setInputScript(vout, script) + this.p2shInput = true } addOutput(scriptPubKey, amount) { try { - this.transaction.addOutput(bchaddr.toLegacyAddress(scriptPubKey), amount); - } - catch(error) { - this.transaction.addOutput(scriptPubKey, amount); + this.transaction.addOutput(bchaddr.toLegacyAddress(scriptPubKey), amount) + } catch (error) { + this.transaction.addOutput(scriptPubKey, amount) } } - sign(vin, keyPair, redeemScript, hashType = this.hashTypes.SIGHASH_ALL, value) { - let witnessScript; + sign( + vin, + keyPair, + redeemScript, + hashType = this.hashTypes.SIGHASH_ALL, + value + ) { + let witnessScript - this.transaction.sign(vin, keyPair, redeemScript, hashType, value, witnessScript); + this.transaction.sign( + vin, + keyPair, + redeemScript, + hashType, + value, + witnessScript + ) } build() { - return this.transaction.build(); + if (this.p2shInput === true) { + return this.tx + } else { + return this.transaction.build() + } } } -export default TransactionBuilder; +export default TransactionBuilder diff --git a/src/Util.js b/src/Util.js index 0761488f..dc32c1aa 100644 --- a/src/Util.js +++ b/src/Util.js @@ -1,17 +1,20 @@ -import axios from 'axios'; +"use strict" +import axios from "axios" class Util { constructor(restURL) { - this.restURL = restURL; + this.restURL = restURL } async validateAddress(address) { try { - let response = await axios.get(`${this.restURL}util/validateAddress/${address}`) - return response.data; + let response = await axios.get( + `${this.restURL}util/validateAddress/${address}` + ) + return response.data } catch (error) { - throw error.response.data; + throw error.response.data } } } -export default Util; +export default Util diff --git a/src/bitbox-cli.js b/src/bitbox-cli.js index a858e491..a885e15b 100644 --- a/src/bitbox-cli.js +++ b/src/bitbox-cli.js @@ -1,56 +1,57 @@ +"use strict" // 3rd party deps -import axios from 'axios'; -import Bitcoin from 'bitcoincashjs-lib'; +import axios from "axios" +import Bitcoin from "bitcoincashjs-lib" // local deps -import BitcoinCash from './BitcoinCash'; -import Crypto from './Crypto'; -import Util from './Util'; -import Block from './Block'; -import Blockchain from './Blockchain'; -import Control from './Control'; -import Generating from './Generating'; -import Mining from './Mining'; -import Network from './Network'; -import RawTransactions from './RawTransactions'; -import Mnemonic from './Mnemonic'; -import Address from './Address'; -import HDNode from './HDNode'; -import Transaction from './Transaction'; -import TransactionBuilder from './TransactionBuilder'; -import ECPair from './ECPair'; -import Script from './Script'; -import Price from './Price'; -import Socket from './Socket'; +import BitcoinCash from "./BitcoinCash" +import Crypto from "./Crypto" +import Util from "./Util" +import Block from "./Block" +import Blockchain from "./Blockchain" +import Control from "./Control" +import Generating from "./Generating" +import Mining from "./Mining" +import Network from "./Network" +import RawTransactions from "./RawTransactions" +import Mnemonic from "./Mnemonic" +import Address from "./Address" +import HDNode from "./HDNode" +import Transaction from "./Transaction" +import TransactionBuilder from "./TransactionBuilder" +import ECPair from "./ECPair" +import Script from "./Script" +import Price from "./Price" +import Socket from "./Socket" class BITBOXCli { constructor(config) { - if(config && config.restURL && config.restURL !== '') { - this.restURL = config.restURL; + if (config && config.restURL && config.restURL !== "") { + this.restURL = config.restURL } else { - this.restURL = 'https://rest.bitcoin.com/v1/'; + this.restURL = "https://rest.bitcoin.com/v1/" } - this.Address = new Address(this.restURL); - this.BitcoinCash = new BitcoinCash(); - this.Block = new Block(this.restURL); - this.Blockchain = new Blockchain(this.restURL); - this.Control = new Control(this.restURL); - this.Crypto = Crypto; - this.ECPair = ECPair; - this.Generating = new Generating(this.restURL); - this.HDNode = new HDNode(); - this.Mining = new Mining(this.restURL); - this.Mnemonic = new Mnemonic(); - this.Network = new Network(this.restURL); - this.Price = new Price(); - this.RawTransactions = new RawTransactions(this.restURL); - this.Script = new Script(); - this.Transaction = new Transaction(this.restURL); - this.TransactionBuilder = TransactionBuilder; - this.Util = new Util(this.restURL); - this.Socket = Socket; + this.Address = new Address(this.restURL) + this.BitcoinCash = new BitcoinCash() + this.Block = new Block(this.restURL) + this.Blockchain = new Blockchain(this.restURL) + this.Control = new Control(this.restURL) + this.Crypto = Crypto + this.ECPair = ECPair + this.Generating = new Generating(this.restURL) + this.HDNode = new HDNode() + this.Mining = new Mining(this.restURL) + this.Mnemonic = new Mnemonic() + this.Network = new Network(this.restURL) + this.Price = new Price() + this.RawTransactions = new RawTransactions(this.restURL) + this.Script = new Script() + this.Transaction = new Transaction(this.restURL) + this.TransactionBuilder = TransactionBuilder + this.Util = new Util(this.restURL) + this.Socket = Socket } } -export default BITBOXCli; +export default BITBOXCli diff --git a/test/Address.js b/test/Address.js index 5c20c4e9..791e9d13 100644 --- a/test/Address.js +++ b/test/Address.js @@ -1,482 +1,508 @@ -let fixtures = require('./fixtures/Address.json') -let chai = require('chai'); -let assert = require('assert'); -let BITBOXCli = require('./../lib/bitbox-cli').default; -let BITBOX = new BITBOXCli(); -let axios = require('axios'); -let sinon = require('sinon'); -let Bitcoin = require('bitcoincashjs-lib'); - -function flatten (arrays) { +"use strict" +const fixtures = require("./fixtures/Address.json") +const chai = require("chai") +const assert = require("assert") +const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOX = new BITBOXCli() +const axios = require("axios") +const sinon = require("sinon") +const Bitcoin = require("bitcoincashjs-lib") + +function flatten(arrays) { return [].concat.apply([], arrays) } -let XPUBS = flatten([ - fixtures.mainnetXPub, - fixtures.testnetXPub -]) +const XPUBS = flatten([fixtures.mainnetXPub, fixtures.testnetXPub]) -let LEGACY_ADDRESSES = flatten([ +const LEGACY_ADDRESSES = flatten([ fixtures.legacyMainnetP2PKH, fixtures.legacyMainnetP2SH, fixtures.legacyTestnetP2PKH -]); +]) -let mainnet_xpubs = []; +const mainnet_xpubs = [] fixtures.mainnetXPub.forEach((f, i) => { - mainnet_xpubs.push(f.xpub); + mainnet_xpubs.push(f.xpub) }) -let MAINNET_ADDRESSES = flatten([ +const MAINNET_ADDRESSES = flatten([ mainnet_xpubs, fixtures.legacyMainnetP2PKH, fixtures.legacyMainnetP2SH, fixtures.cashaddrMainnetP2PKH -]); +]) -let testnet_xpubs = []; +const testnet_xpubs = [] fixtures.testnetXPub.forEach((f, i) => { - testnet_xpubs.push(f.xpub); + testnet_xpubs.push(f.xpub) }) -let TESTNET_ADDRESSES = flatten([ +const TESTNET_ADDRESSES = flatten([ testnet_xpubs, fixtures.legacyTestnetP2PKH, fixtures.cashaddrTestnetP2PKH -]); +]) -let CASHADDR_ADDRESSES = flatten([ +const CASHADDR_ADDRESSES = flatten([ fixtures.cashaddrMainnetP2PKH, fixtures.cashaddrMainnetP2SH, fixtures.cashaddrTestnetP2PKH -]); +]) -let CASHADDR_ADDRESSES_NO_PREFIX = CASHADDR_ADDRESSES.map((address) => { - let parts = address.split(':'); - return parts[1]; +const CASHADDR_ADDRESSES_NO_PREFIX = CASHADDR_ADDRESSES.map(address => { + const parts = address.split(":") + return parts[1] }) -let HASH160_HASHES = flatten([ +const HASH160_HASHES = flatten([ fixtures.hash160MainnetP2PKH, fixtures.hash160MainnetP2SH, fixtures.hash160TestnetP2PKH -]); +]) -let P2PKH_ADDRESSES = flatten([ +const P2PKH_ADDRESSES = flatten([ fixtures.legacyMainnetP2PKH, fixtures.legacyTestnetP2PKH, fixtures.cashaddrMainnetP2PKH, fixtures.cashaddrTestnetP2PKH ]) -let P2SH_ADDRESSES = flatten([ +const P2SH_ADDRESSES = flatten([ fixtures.legacyMainnetP2SH, fixtures.cashaddrMainnetP2SH ]) -describe('#addressConversion', () => { - describe('#toLegacyAddress', () => { - it('should translate legacy address format to itself correctly', () => { +describe("#addressConversion", () => { + describe("#toLegacyAddress", () => { + it("should translate legacy address format to itself correctly", () => { assert.deepEqual( LEGACY_ADDRESSES.map(BITBOX.Address.toLegacyAddress), LEGACY_ADDRESSES - ); + ) }) - it('should convert cashaddr address to legacy base58Check', () => { + it("should convert cashaddr address to legacy base58Check", () => { assert.deepEqual( CASHADDR_ADDRESSES.map(BITBOX.Address.toLegacyAddress), LEGACY_ADDRESSES - ); - }); + ) + }) - describe('errors', () => { - it('should fail when called with an invalid address', () => { + describe("errors", () => { + it("should fail when called with an invalid address", () => { assert.throws(() => { BITBOX.Address.toLegacyAddress() }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.toLegacyAddress('some invalid address') + BITBOX.Address.toLegacyAddress("some invalid address") }, BITBOX.BitcoinCash.InvalidAddressError) }) - }); - }); + }) + }) - describe('#toCashAddress', () => { - it('should convert legacy base58Check address to cashaddr', () => { + describe("#toCashAddress", () => { + it("should convert legacy base58Check address to cashaddr", () => { assert.deepEqual( - LEGACY_ADDRESSES.map(address => BITBOX.Address.toCashAddress(address, true)), + LEGACY_ADDRESSES.map(address => + BITBOX.Address.toCashAddress(address, true) + ), CASHADDR_ADDRESSES - ); - }); + ) + }) - it('should translate cashaddr address format to itself correctly', () => { + it("should translate cashaddr address format to itself correctly", () => { assert.deepEqual( - CASHADDR_ADDRESSES.map(address => BITBOX.Address.toCashAddress(address, true)), + CASHADDR_ADDRESSES.map(address => + BITBOX.Address.toCashAddress(address, true) + ), CASHADDR_ADDRESSES - ); + ) }) - it('should translate no-prefix cashaddr address format to itself correctly', () => { + it("should translate no-prefix cashaddr address format to itself correctly", () => { assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.toCashAddress(address, true)), + CASHADDR_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.toCashAddress(address, true) + ), CASHADDR_ADDRESSES ) }) - it('should translate no-prefix cashaddr address format to itself correctly', () => { - CASHADDR_ADDRESSES.forEach((address) => { - let noPrefix = BITBOX.Address.toCashAddress(address, false); - assert.equal(address.split(':')[1], noPrefix); - }); + it("should translate no-prefix cashaddr address format to itself correctly", () => { + CASHADDR_ADDRESSES.forEach(address => { + const noPrefix = BITBOX.Address.toCashAddress(address, false) + assert.equal(address.split(":")[1], noPrefix) + }) }) - describe('errors', () => { - it('should fail when called with an invalid address', () => { + describe("errors", () => { + it("should fail when called with an invalid address", () => { assert.throws(() => { BITBOX.BitcoinCash.Address.toCashAddress() }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.BitcoinCash.Address.toCashAddress('some invalid address') + BITBOX.BitcoinCash.Address.toCashAddress("some invalid address") }, BITBOX.BitcoinCash.InvalidAddressError) }) - }); - }); - describe('#toHash160', () => { - it('should convert legacy base58check address to hash160', () => { + }) + }) + describe("#toHash160", () => { + it("should convert legacy base58check address to hash160", () => { assert.deepEqual( LEGACY_ADDRESSES.map(BITBOX.Address.toHash160), HASH160_HASHES - ); + ) }) - it('should convert cashaddr address to hash160', () => { + it("should convert cashaddr address to hash160", () => { assert.deepEqual( CASHADDR_ADDRESSES.map(BITBOX.Address.toHash160), HASH160_HASHES - ); - }); + ) + }) - describe('errors', () => { - it('should fail when called with an invalid address', () => { + describe("errors", () => { + it("should fail when called with an invalid address", () => { assert.throws(() => { BITBOX.Address.toHash160() }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.toHash160('some invalid address') + BITBOX.Address.toHash160("some invalid address") }, BITBOX.BitcoinCash.InvalidAddressError) }) - }); - }); - describe('#fromHash160', () => { - it('should convert hash160 to mainnet P2PKH legacy base58check address', () => { + }) + }) + describe("#fromHash160", () => { + it("should convert hash160 to mainnet P2PKH legacy base58check address", () => { assert.deepEqual( - fixtures.hash160MainnetP2PKH.map(hash160 => BITBOX.Address.hash160ToLegacy(hash160)), + fixtures.hash160MainnetP2PKH.map(hash160 => + BITBOX.Address.hash160ToLegacy(hash160) + ), fixtures.legacyMainnetP2PKH - ); + ) }) - it('should convert hash160 to mainnet P2SH legacy base58check address', () => { + it("should convert hash160 to mainnet P2SH legacy base58check address", () => { assert.deepEqual( - fixtures.hash160MainnetP2SH.map(hash160 => BITBOX.Address.hash160ToLegacy(hash160, Bitcoin.networks.bitcoin.scriptHash)), + fixtures.hash160MainnetP2SH.map(hash160 => + BITBOX.Address.hash160ToLegacy( + hash160, + Bitcoin.networks.bitcoin.scriptHash + ) + ), fixtures.legacyMainnetP2SH - ); + ) }) - it('should convert hash160 to testnet P2PKH legacy base58check address', () => { + it("should convert hash160 to testnet P2PKH legacy base58check address", () => { assert.deepEqual( - fixtures.hash160TestnetP2PKH.map(hash160 => BITBOX.Address.hash160ToLegacy(hash160, Bitcoin.networks.testnet.pubKeyHash)), + fixtures.hash160TestnetP2PKH.map(hash160 => + BITBOX.Address.hash160ToLegacy( + hash160, + Bitcoin.networks.testnet.pubKeyHash + ) + ), fixtures.legacyTestnetP2PKH - ); + ) }) - it('should convert hash160 to mainnet P2PKH cash address', () => { + it("should convert hash160 to mainnet P2PKH cash address", () => { assert.deepEqual( - fixtures.hash160MainnetP2PKH.map(hash160 => BITBOX.Address.hash160ToCash(hash160)), + fixtures.hash160MainnetP2PKH.map(hash160 => + BITBOX.Address.hash160ToCash(hash160) + ), fixtures.cashaddrMainnetP2PKH - ); + ) }) - it('should convert hash160 to mainnet P2SH cash address', () => { + it("should convert hash160 to mainnet P2SH cash address", () => { assert.deepEqual( - fixtures.hash160MainnetP2SH.map(hash160 => BITBOX.Address.hash160ToCash(hash160, Bitcoin.networks.bitcoin.scriptHash)), + fixtures.hash160MainnetP2SH.map(hash160 => + BITBOX.Address.hash160ToCash( + hash160, + Bitcoin.networks.bitcoin.scriptHash + ) + ), fixtures.cashaddrMainnetP2SH - ); + ) }) - it('should convert hash160 to testnet P2PKH cash address', () => { + it("should convert hash160 to testnet P2PKH cash address", () => { assert.deepEqual( - fixtures.hash160TestnetP2PKH.map(hash160 => BITBOX.Address.hash160ToCash(hash160, Bitcoin.networks.testnet.pubKeyHash)), + fixtures.hash160TestnetP2PKH.map(hash160 => + BITBOX.Address.hash160ToCash( + hash160, + Bitcoin.networks.testnet.pubKeyHash + ) + ), fixtures.cashaddrTestnetP2PKH - ); + ) }) - describe('errors', () => { - it('should fail when called with an invalid address', () => { + describe("errors", () => { + it("should fail when called with an invalid address", () => { assert.throws(() => { BITBOX.Address.hash160ToLegacy() }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.hash160ToLegacy('some invalid address') + BITBOX.Address.hash160ToLegacy("some invalid address") }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { BITBOX.Address.hash160ToCash() }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.hash160ToCash('some invalid address') + BITBOX.Address.hash160ToCash("some invalid address") }, BITBOX.BitcoinCash.InvalidAddressError) }) - }); - }); -}); - -describe('address format detection', () => { + }) + }) +}) - describe('#isLegacyAddress', () => { - describe('is legacy', () => { - LEGACY_ADDRESSES.forEach((address) => { +describe("address format detection", () => { + describe("#isLegacyAddress", () => { + describe("is legacy", () => { + LEGACY_ADDRESSES.forEach(address => { it(`should detect ${address} is a legacy base58Check address`, () => { - let isBase58Check = BITBOX.Address.isLegacyAddress(address); - assert.equal(isBase58Check, true); - }); - }); - }); - describe('is not legacy', () => { - CASHADDR_ADDRESSES.forEach((address) => { + const isBase58Check = BITBOX.Address.isLegacyAddress(address) + assert.equal(isBase58Check, true) + }) + }) + }) + describe("is not legacy", () => { + CASHADDR_ADDRESSES.forEach(address => { it(`should detect ${address} is not a legacy address`, () => { - let isBase58Check = BITBOX.Address.isLegacyAddress(address); - assert.equal(isBase58Check, false); - }); - }); - }); - - describe('errors', () => { - it('should fail when called with an invalid address', () => { + const isBase58Check = BITBOX.Address.isLegacyAddress(address) + assert.equal(isBase58Check, false) + }) + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { assert.throws(() => { BITBOX.Address.isLegacyAddress() }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.isLegacyAddress('some invalid address') + BITBOX.Address.isLegacyAddress("some invalid address") }, BITBOX.BitcoinCash.InvalidAddressError) }) - }); - }); + }) + }) - describe('#isCashAddress', () => { - describe('is cashaddr', () => { - CASHADDR_ADDRESSES.forEach((address) => { + describe("#isCashAddress", () => { + describe("is cashaddr", () => { + CASHADDR_ADDRESSES.forEach(address => { it(`should detect ${address} is a cashaddr address`, () => { - let isCashaddr = BITBOX.Address.isCashAddress(address); - assert.equal(isCashaddr, true); - }); - }); - }); - - describe('is not cashaddr', () => { - LEGACY_ADDRESSES.forEach((address) => { + const isCashaddr = BITBOX.Address.isCashAddress(address) + assert.equal(isCashaddr, true) + }) + }) + }) + + describe("is not cashaddr", () => { + LEGACY_ADDRESSES.forEach(address => { it(`should detect ${address} is not a cashaddr address`, () => { - let isCashaddr = BITBOX.Address.isCashAddress(address); - assert.equal(isCashaddr, false); - }); - }); - }); - - describe('errors', () => { - it('should fail when called with an invalid address', () => { + const isCashaddr = BITBOX.Address.isCashAddress(address) + assert.equal(isCashaddr, false) + }) + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { assert.throws(() => { BITBOX.Address.isCashAddress() }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.isCashAddress('some invalid address') + BITBOX.Address.isCashAddress("some invalid address") }, BITBOX.BitcoinCash.InvalidAddressError) }) - }); - }); -}); - -describe('network detection', () => { + }) + }) +}) - describe('#isMainnetAddress', () => { - describe('is mainnet', () => { - MAINNET_ADDRESSES.forEach((address) => { +describe("network detection", () => { + describe("#isMainnetAddress", () => { + describe("is mainnet", () => { + MAINNET_ADDRESSES.forEach(address => { it(`should detect ${address} is a mainnet address`, () => { - let isMainnet = BITBOX.Address.isMainnetAddress(address); - assert.equal(isMainnet, true); - }); - }); - }); - - describe('is not mainnet', () => { - TESTNET_ADDRESSES.forEach((address) => { + const isMainnet = BITBOX.Address.isMainnetAddress(address) + assert.equal(isMainnet, true) + }) + }) + }) + + describe("is not mainnet", () => { + TESTNET_ADDRESSES.forEach(address => { it(`should detect ${address} is not a mainnet address`, () => { - let isMainnet = BITBOX.Address.isMainnetAddress(address); - assert.equal(isMainnet, false); - }); - }); - }); - - describe('errors', () => { - it('should fail when called with an invalid address', () => { + const isMainnet = BITBOX.Address.isMainnetAddress(address) + assert.equal(isMainnet, false) + }) + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { assert.throws(() => { BITBOX.Address.isMainnetAddress() }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.isMainnetAddress('some invalid address') + BITBOX.Address.isMainnetAddress("some invalid address") }, BITBOX.BitcoinCash.InvalidAddressError) }) - }); - }); + }) + }) - describe('#isTestnetAddress', () => { - describe('is testnet', () => { - TESTNET_ADDRESSES.forEach((address) => { + describe("#isTestnetAddress", () => { + describe("is testnet", () => { + TESTNET_ADDRESSES.forEach(address => { it(`should detect ${address} is a testnet address`, () => { - let isTestnet = BITBOX.Address.isTestnetAddress(address); - assert.equal(isTestnet, true); - }); - }); - }); - - describe('is not testnet', () => { - MAINNET_ADDRESSES.forEach((address) => { + const isTestnet = BITBOX.Address.isTestnetAddress(address) + assert.equal(isTestnet, true) + }) + }) + }) + + describe("is not testnet", () => { + MAINNET_ADDRESSES.forEach(address => { it(`should detect ${address} is not a testnet address`, () => { - let isTestnet = BITBOX.Address.isTestnetAddress(address); - assert.equal(isTestnet, false); - }); - }); - }); - - describe('errors', () => { - it('should fail when called with an invalid address', () => { + const isTestnet = BITBOX.Address.isTestnetAddress(address) + assert.equal(isTestnet, false) + }) + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { assert.throws(() => { BITBOX.Address.isTestnetAddress() }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.isTestnetAddress('some invalid address') + BITBOX.Address.isTestnetAddress("some invalid address") }, BITBOX.BitcoinCash.InvalidAddressError) }) - }); - }); -}); - -describe('address type detection', () => { - describe('#isP2PKHAddress', () => { - describe('is P2PKH', () => { - P2PKH_ADDRESSES.forEach((address) => { + }) + }) +}) + +describe("address type detection", () => { + describe("#isP2PKHAddress", () => { + describe("is P2PKH", () => { + P2PKH_ADDRESSES.forEach(address => { it(`should detect ${address} is a P2PKH address`, () => { - let isP2PKH = BITBOX.Address.isP2PKHAddress(address); - assert.equal(isP2PKH, true); - }); - }); - }); - - describe('is not P2PKH', () => { - P2SH_ADDRESSES.forEach((address) => { + const isP2PKH = BITBOX.Address.isP2PKHAddress(address) + assert.equal(isP2PKH, true) + }) + }) + }) + + describe("is not P2PKH", () => { + P2SH_ADDRESSES.forEach(address => { it(`should detect ${address} is not a P2PKH address`, () => { - let isP2PKH = BITBOX.Address.isP2PKHAddress(address); - assert.equal(isP2PKH, false); - }); - }); - }); - - describe('errors', () => { - it('should fail when called with an invalid address', () => { + const isP2PKH = BITBOX.Address.isP2PKHAddress(address) + assert.equal(isP2PKH, false) + }) + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { assert.throws(() => { BITBOX.Address.isP2PKHAddress() }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.isP2PKHAddress('some invalid address') + BITBOX.Address.isP2PKHAddress("some invalid address") }, BITBOX.BitcoinCash.InvalidAddressError) }) - }); - }); + }) + }) - describe('#isP2SHAddress', () => { - describe('is P2SH', () => { - P2SH_ADDRESSES.forEach((address) => { + describe("#isP2SHAddress", () => { + describe("is P2SH", () => { + P2SH_ADDRESSES.forEach(address => { it(`should detect ${address} is a P2SH address`, () => { - let isP2SH = BITBOX.Address.isP2SHAddress(address); - assert.equal(isP2SH, true); - }); - }); - }); - - describe('is not P2SH', () => { - P2PKH_ADDRESSES.forEach((address) => { + const isP2SH = BITBOX.Address.isP2SHAddress(address) + assert.equal(isP2SH, true) + }) + }) + }) + + describe("is not P2SH", () => { + P2PKH_ADDRESSES.forEach(address => { it(`should detect ${address} is not a P2SH address`, () => { - let isP2SH = BITBOX.Address.isP2SHAddress(address); - assert.equal(isP2SH, false); - }); - }); - }); - - describe('errors', () => { - it('should fail when called with an invalid address', () => { + const isP2SH = BITBOX.Address.isP2SHAddress(address) + assert.equal(isP2SH, false) + }) + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { assert.throws(() => { BITBOX.Address.isP2SHAddress() }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.isP2SHAddress('some invalid address') + BITBOX.Address.isP2SHAddress("some invalid address") }, BITBOX.BitcoinCash.InvalidAddressError) }) - }); - }); -}); + }) + }) +}) -describe('cashaddr prefix detection', () => { - it('should return the same result for detectAddressFormat', () => { +describe("cashaddr prefix detection", () => { + it("should return the same result for detectAddressFormat", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(BITBOX.Address.detectAddressFormat), CASHADDR_ADDRESSES.map(BITBOX.Address.detectAddressFormat) ) }) - it('should return the same result for detectAddressNetwork', () => { + it("should return the same result for detectAddressNetwork", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(BITBOX.Address.detectAddressNetwork), CASHADDR_ADDRESSES.map(BITBOX.Address.detectAddressNetwork) ) }) - it('should return the same result for detectAddressType', () => { + it("should return the same result for detectAddressType", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(BITBOX.Address.detectAddressType), CASHADDR_ADDRESSES.map(BITBOX.Address.detectAddressType) ) }) - it('should return the same result for toLegacyAddress', () => { + it("should return the same result for toLegacyAddress", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(BITBOX.Address.toLegacyAddress), CASHADDR_ADDRESSES.map(BITBOX.Address.toLegacyAddress) ) }) - it('should return the same result for isLegacyAddress', () => { + it("should return the same result for isLegacyAddress", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(BITBOX.Address.isLegacyAddress), CASHADDR_ADDRESSES.map(BITBOX.Address.isLegacyAddress) ) }) - it('should return the same result for isCashAddress', () => { + it("should return the same result for isCashAddress", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(BITBOX.Address.isCashAddress), CASHADDR_ADDRESSES.map(BITBOX.Address.isCashAddress) ) }) - it('should return the same result for isMainnetAddress', () => { + it("should return the same result for isMainnetAddress", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(BITBOX.Address.isMainnetAddress), CASHADDR_ADDRESSES.map(BITBOX.Address.isMainnetAddress) ) }) - it('should return the same result for isTestnetAddress', () => { + it("should return the same result for isTestnetAddress", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(BITBOX.Address.isTestnetAddress), CASHADDR_ADDRESSES.map(BITBOX.Address.isTestnetAddress) ) }) - it('should return the same result for isP2PKHAddress', () => { + it("should return the same result for isP2PKHAddress", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(BITBOX.Address.isP2PKHAddress), CASHADDR_ADDRESSES.map(BITBOX.Address.isP2PKHAddress) ) }) - it('should return the same result for isP2SHAddress', () => { + it("should return the same result for isP2SHAddress", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(BITBOX.Address.isP2SHAddress), CASHADDR_ADDRESSES.map(BITBOX.Address.isP2SHAddress) @@ -484,208 +510,231 @@ describe('cashaddr prefix detection', () => { }) }) -describe('#detectAddressFormat', () => { - LEGACY_ADDRESSES.forEach((address) => { +describe("#detectAddressFormat", () => { + LEGACY_ADDRESSES.forEach(address => { it(`should detect ${address} is a legacy base58Check address`, () => { - let isBase58Check = BITBOX.Address.detectAddressFormat(address); - assert.equal(isBase58Check, 'legacy'); - }); - }); + const isBase58Check = BITBOX.Address.detectAddressFormat(address) + assert.equal(isBase58Check, "legacy") + }) + }) - CASHADDR_ADDRESSES.forEach((address) => { + CASHADDR_ADDRESSES.forEach(address => { it(`should detect ${address} is a legacy cashaddr address`, () => { - let isCashaddr = BITBOX.Address.detectAddressFormat(address); - assert.equal(isCashaddr, 'cashaddr'); - }); - }); + const isCashaddr = BITBOX.Address.detectAddressFormat(address) + assert.equal(isCashaddr, "cashaddr") + }) + }) - describe('errors', () => { - it('should fail when called with an invalid address', () => { + describe("errors", () => { + it("should fail when called with an invalid address", () => { assert.throws(() => { BITBOX.Address.detectAddressFormat() }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.detectAddressFormat('some invalid address') + BITBOX.Address.detectAddressFormat("some invalid address") }, BITBOX.BitcoinCash.InvalidAddressError) }) - }); -}); + }) +}) -describe('#detectAddressNetwork', () => { - MAINNET_ADDRESSES.forEach((address) => { +describe("#detectAddressNetwork", () => { + MAINNET_ADDRESSES.forEach(address => { it(`should detect ${address} is a mainnet address`, () => { - let isMainnet = BITBOX.Address.detectAddressNetwork(address); - assert.equal(isMainnet, 'mainnet'); + const isMainnet = BITBOX.Address.detectAddressNetwork(address) + assert.equal(isMainnet, "mainnet") }) - }); + }) - TESTNET_ADDRESSES.forEach((address) => { + TESTNET_ADDRESSES.forEach(address => { it(`should detect ${address} is a testnet address`, () => { - let isTestnet = BITBOX.Address.detectAddressNetwork(address); - assert.equal(isTestnet, 'testnet'); - }); - }); + const isTestnet = BITBOX.Address.detectAddressNetwork(address) + assert.equal(isTestnet, "testnet") + }) + }) - describe('errors', () => { - it('should fail when called with an invalid address', () => { + describe("errors", () => { + it("should fail when called with an invalid address", () => { assert.throws(() => { BITBOX.Address.detectAddressNetwork() }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.detectAddressNetwork('some invalid address') + BITBOX.Address.detectAddressNetwork("some invalid address") }, BITBOX.BitcoinCash.InvalidAddressError) - }); - }); -}); + }) + }) +}) -describe('#detectAddressType', () => { - P2PKH_ADDRESSES.forEach((address) => { +describe("#detectAddressType", () => { + P2PKH_ADDRESSES.forEach(address => { it(`should detect ${address} is a P2PKH address`, () => { - let isP2PKH = BITBOX.Address.detectAddressType(address); - assert.equal(isP2PKH, 'p2pkh'); + const isP2PKH = BITBOX.Address.detectAddressType(address) + assert.equal(isP2PKH, "p2pkh") }) - }); + }) - P2SH_ADDRESSES.forEach((address) => { + P2SH_ADDRESSES.forEach(address => { it(`should detect ${address} is a P2SH address`, () => { - let isP2SH = BITBOX.Address.detectAddressType(address); - assert.equal(isP2SH, 'p2sh'); + const isP2SH = BITBOX.Address.detectAddressType(address) + assert.equal(isP2SH, "p2sh") }) - }); + }) - describe('errors', () => { - it('should fail when called with an invalid address', () => { + describe("errors", () => { + it("should fail when called with an invalid address", () => { assert.throws(() => { BITBOX.Address.detectAddressType() }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.detectAddressType('some invalid address') + BITBOX.Address.detectAddressType("some invalid address") }, BITBOX.BitcoinCash.InvalidAddressError) }) - }); -}); + }) +}) -describe('#fromXPub', () => { +describe("#fromXPub", () => { XPUBS.forEach((xpub, i) => { xpub.addresses.forEach((address, j) => { - it(`generate public external change address ${j} for ${xpub.xpub}`, () => { - assert.equal(BITBOX.Address.fromXPub(xpub.xpub, `0/${j}`), address); - }); - }); - }); -}); - -describe('#details', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); - - it('should get details', (done) => { - let data = { - "legacyAddress": "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", - "cashAddress": "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", - "balance": 300.0828874, - "balanceSat": 30008288740, - "totalReceived": 12945.45174649, - "totalReceivedSat": 1294545174649, - "totalSent": 12645.36885909, - "totalSentSat": 1264536885909, - "unconfirmedBalance": 0, - "unconfirmedBalanceSat": 0, - "unconfirmedTxApperances": 0, - "txApperances": 1042, - "transactions": [ + it(`generate public external change address ${j} for ${ + xpub.xpub + }`, () => { + assert.equal(BITBOX.Address.fromXPub(xpub.xpub, `0/${j}`), address) + }) + }) + }) +}) + +describe("#fromOutputScript", () => { + const script = BITBOX.Script.encode([ + Buffer.from("BOX", "ascii"), + BITBOX.Script.opcodes.OP_CAT, + Buffer.from("BITBOX", "ascii"), + BITBOX.Script.opcodes.OP_EQUAL + ]) + + // hash160 script buffer + const p2sh_hash160 = BITBOX.Crypto.hash160(script) + + // encode hash160 as P2SH output + const scriptPubKey = BITBOX.Script.scriptHash.output.encode(p2sh_hash160) + const p2shAddress = BITBOX.Address.fromOutputScript(scriptPubKey) + fixtures.p2shMainnet.forEach((address, i) => { + it(`generate address from output script`, () => { + assert.equal(p2shAddress, address) + }) + }) +}) + +describe("#details", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get details", done => { + const data = { + legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", + cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", + balance: 300.0828874, + balanceSat: 30008288740, + totalReceived: 12945.45174649, + totalReceivedSat: 1294545174649, + totalSent: 12645.36885909, + totalSentSat: 1264536885909, + unconfirmedBalance: 0, + unconfirmedBalanceSat: 0, + unconfirmedTxApperances: 0, + txApperances: 1042, + transactions: [ "b29425a876f62e114508e67e66b5eb1ab0d320d7c9a57fb0ece086a36e2b7309" ] - }; + } - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) - BITBOX.Address.details('bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf') - .then((result) => { - assert.deepEqual( - data, - result - ); + BITBOX.Address.details( + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + ) + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); -}); + .then(done, done) + }) +}) -describe('#utxo', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); +describe("#utxo", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) - it('should get utxo', (done) => { - let data = [ + it("should get utxo", done => { + const data = [ + { + legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", + cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", + txid: + "6f56254424378d6914cebd097579c70664843e5876ca86f0bf412ba7f3928326", + vout: 0, + scriptPubKey: "a91479cb06a5986baf588237de9b7fb1a8f68c35b76687", + amount: 12.5002911, + satoshis: 1250029110, + height: 528745, + confirmations: 17 + }, { - "legacyAddress": "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", - "cashAddress": "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", - "txid": "6f56254424378d6914cebd097579c70664843e5876ca86f0bf412ba7f3928326", - "vout": 0, - "scriptPubKey": "a91479cb06a5986baf588237de9b7fb1a8f68c35b76687", - "amount": 12.5002911, - "satoshis": 1250029110, - "height": 528745, - "confirmations": 17 - }, - { - "legacyAddress": "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", - "cashAddress": "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", - "txid": "b29425a876f62e114508e67e66b5eb1ab0d320d7c9a57fb0ece086a36e2b7309", - "vout": 0, - "scriptPubKey": "a91479cb06a5986baf588237de9b7fb1a8f68c35b76687", - "amount": 12.50069247, - "satoshis": 1250069247, - "height": 528744, - "confirmations": 18 - } - ]; - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); - - BITBOX.Address.utxo('bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l') - .then((result) => { - assert.deepEqual( - data, - result - ); + legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", + cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", + txid: + "b29425a876f62e114508e67e66b5eb1ab0d320d7c9a57fb0ece086a36e2b7309", + vout: 0, + scriptPubKey: "a91479cb06a5986baf588237de9b7fb1a8f68c35b76687", + amount: 12.50069247, + satoshis: 1250069247, + height: 528744, + confirmations: 18 + } + ] + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Address.utxo( + "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l" + ) + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); -}); + .then(done, done) + }) +}) -describe('#unconfirmed', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); +describe("#unconfirmed", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) - it('should get unconfirmed transactions', (done) => { - let data = [ + it("should get unconfirmed transactions", done => { + const data = [ { - "txid": "e0aadd861a06993e39af932bb0b9ad69e7b37ef5843a13c6724789e1c94f3513", - "vout": 1, - "scriptPubKey": "76a914a0f531f4ff810a415580c12e54a7072946bb927e88ac", - "amount": 0.00008273, - "satoshis": 8273, - "confirmations": 0, - "ts": 1526680569, - "legacyAddress": "1Fg4r9iDrEkCcDmHTy2T79EusNfhyQpu7W", - "cashAddress": "bitcoincash:qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c" + txid: + "e0aadd861a06993e39af932bb0b9ad69e7b37ef5843a13c6724789e1c94f3513", + vout: 1, + scriptPubKey: "76a914a0f531f4ff810a415580c12e54a7072946bb927e88ac", + amount: 0.00008273, + satoshis: 8273, + confirmations: 0, + ts: 1526680569, + legacyAddress: "1Fg4r9iDrEkCcDmHTy2T79EusNfhyQpu7W", + cashAddress: "bitcoincash:qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c" } - ]; - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); - - BITBOX.Address.unconfirmed('bitcoincash:qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c') - .then((result) => { - assert.deepEqual( - data, - result - ); + ] + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Address.unconfirmed( + "bitcoincash:qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c" + ) + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); -}); + .then(done, done) + }) +}) diff --git a/test/BitcoinCash.js b/test/BitcoinCash.js index dab5ae09..9f35b607 100644 --- a/test/BitcoinCash.js +++ b/test/BitcoinCash.js @@ -1,8 +1,9 @@ -let fixtures = require('./fixtures/BitcoinCash.json') -let chai = require('chai'); -let assert = require('assert'); -let BITBOXCli = require('./../lib/bitbox-cli').default; -let BITBOX = new BITBOXCli(); +"use strict" +const fixtures = require("./fixtures/BitcoinCash.json") +const chai = require("chai") +const assert = require("assert") +const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOX = new BITBOXCli() // TODO // 1. generate testnet p2sh @@ -12,81 +13,99 @@ let BITBOX = new BITBOXCli(); // * confirm xpub cannot generate WIF // * confirm xpriv can generate WIF // 5. create fromXPriv method w/ tests and docs - // 1. mainnet - // * confirm xpriv generates address - // * confirm xpriv generates WIF - // 2. testnet - // * confirm xpriv generates address - // * confirm xpriv generates WIF +// 1. mainnet +// * confirm xpriv generates address +// * confirm xpriv generates WIF +// 2. testnet +// * confirm xpriv generates address +// * confirm xpriv generates WIF // 6. More error test cases. -describe('#BitcoinCash', () => { - describe('price conversion', () => { - describe('#toBitcoinCash', () => { - fixtures.conversion.toBCH.satoshis.forEach((satoshi) => { - it(`should convert ${satoshi[0]} Satoshis to ${satoshi[1]} $BCH`, () => { - assert.equal(BITBOX.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]); - }); - }); - - fixtures.conversion.toBCH.strings.forEach((satoshi) => { - it(`should convert "${satoshi[0]}" Satoshis as a string to ${satoshi[1]} $BCH`, () => { - assert.equal(BITBOX.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]); - }); - }); - - fixtures.conversion.toBCH.not.forEach((bch) => { - it(`converts ${bch[0]} to Bitcoin Cash, not to ${bch[1]} Satoshi`, () => { - assert.notEqual(BITBOX.BitcoinCash.toBitcoinCash(bch[0]), bch[1]); - }); - }); - - fixtures.conversion.toBCH.rounding.forEach((satoshi) => { +describe("#BitcoinCash", () => { + describe("price conversion", () => { + describe("#toBitcoinCash", () => { + fixtures.conversion.toBCH.satoshis.forEach(satoshi => { + it(`should convert ${satoshi[0]} Satoshis to ${ + satoshi[1] + } $BCH`, () => { + assert.equal(BITBOX.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]) + }) + }) + + fixtures.conversion.toBCH.strings.forEach(satoshi => { + it(`should convert "${satoshi[0]}" Satoshis as a string to ${ + satoshi[1] + } $BCH`, () => { + assert.equal(BITBOX.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]) + }) + }) + + fixtures.conversion.toBCH.not.forEach(bch => { + it(`converts ${bch[0]} to Bitcoin Cash, not to ${ + bch[1] + } Satoshi`, () => { + assert.notEqual(BITBOX.BitcoinCash.toBitcoinCash(bch[0]), bch[1]) + }) + }) + + fixtures.conversion.toBCH.rounding.forEach(satoshi => { it(`rounding ${satoshi[0]} to ${satoshi[1]} $BCH`, () => { - assert.equal(BITBOX.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]); - }); - }); - }); + assert.equal(BITBOX.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]) + }) + }) + }) - describe('#toSatoshi', () => { - fixtures.conversion.toSatoshi.bch.forEach((bch) => { + describe("#toSatoshi", () => { + fixtures.conversion.toSatoshi.bch.forEach(bch => { it(`should convert ${bch[0]} $BCH to ${bch[1]} Satoshis`, () => { - assert.equal(BITBOX.BitcoinCash.toSatoshi(bch[0]), bch[1]); - }); - }); - - fixtures.conversion.toSatoshi.strings.forEach((bch) => { - it(`should convert "${bch[0]}" $BCH as a string to ${bch[1]} Satoshis`, () => { - assert.equal(BITBOX.BitcoinCash.toSatoshi(bch[0]), bch[1]); - }); - }); - - fixtures.conversion.toSatoshi.not.forEach((satoshi) => { - it(`converts ${satoshi[0]} to Satoshi, not to ${satoshi[1]} Bitcoin Cash`, () => { - assert.notEqual(BITBOX.BitcoinCash.toSatoshi(satoshi[0]), satoshi[1]); - }); - }); - - fixtures.conversion.toSatoshi.rounding.forEach((bch) => { + assert.equal(BITBOX.BitcoinCash.toSatoshi(bch[0]), bch[1]) + }) + }) + + fixtures.conversion.toSatoshi.strings.forEach(bch => { + it(`should convert "${bch[0]}" $BCH as a string to ${ + bch[1] + } Satoshis`, () => { + assert.equal(BITBOX.BitcoinCash.toSatoshi(bch[0]), bch[1]) + }) + }) + + fixtures.conversion.toSatoshi.not.forEach(satoshi => { + it(`converts ${satoshi[0]} to Satoshi, not to ${ + satoshi[1] + } Bitcoin Cash`, () => { + assert.notEqual(BITBOX.BitcoinCash.toSatoshi(satoshi[0]), satoshi[1]) + }) + }) + + fixtures.conversion.toSatoshi.rounding.forEach(bch => { it(`rounding ${bch[0]} to ${bch[1]} Satoshi`, () => { - assert.equal(BITBOX.BitcoinCash.toSatoshi(bch[0]), bch[1]); - }); - }); - }); + assert.equal(BITBOX.BitcoinCash.toSatoshi(bch[0]), bch[1]) + }) + }) + }) - describe('#satsToBits', () => { - fixtures.conversion.satsToBits.bch.forEach((bch) => { + describe("#satsToBits", () => { + fixtures.conversion.satsToBits.bch.forEach(bch => { it(`should convert ${bch[0]} BCH to ${bch[1]} bits`, () => { - assert.equal(BITBOX.BitcoinCash.satsToBits(BITBOX.BitcoinCash.toSatoshi(bch[0])), bch[1]); - }); - }); - - fixtures.conversion.satsToBits.strings.forEach((bch) => { - it(`should convert "${bch[0]}" BCH as a string to ${bch[1]} bits`, () => { - assert.equal(BITBOX.BitcoinCash.satsToBits(BITBOX.BitcoinCash.toSatoshi(bch[0])), bch[1]); - }); - }); - }); + assert.equal( + BITBOX.BitcoinCash.satsToBits(BITBOX.BitcoinCash.toSatoshi(bch[0])), + bch[1] + ) + }) + }) + + fixtures.conversion.satsToBits.strings.forEach(bch => { + it(`should convert "${bch[0]}" BCH as a string to ${ + bch[1] + } bits`, () => { + assert.equal( + BITBOX.BitcoinCash.satsToBits(BITBOX.BitcoinCash.toSatoshi(bch[0])), + bch[1] + ) + }) + }) + }) // // describe('#satsFromBits', () => { // fixtures.conversion.satsFromBits.bch.forEach((bch) => { @@ -101,123 +120,194 @@ describe('#BitcoinCash', () => { // }); // }); // }); - }); - - describe('sign and verify messages', () => { - describe('#signMessageWithPrivKey', () => { - fixtures.signatures.sign.forEach((sign) => { - it(`should sign a message w/ ${sign.network} ${sign.privateKeyWIF}`, () => { - let privateKeyWIF = sign.privateKeyWIF; - let message = sign.message; - let signature = BITBOX.BitcoinCash.signMessageWithPrivKey(privateKeyWIF, message) - assert.equal(signature, sign.signature); - }); - }); - }); - - describe('#verifyMessage', () => { - fixtures.signatures.verify.forEach((sign) => { - it(`should verify a valid signed message from ${sign.network} cashaddr address ${sign.address}`, () => { - assert.equal(BITBOX.BitcoinCash.verifyMessage(sign.address, sign.signature, sign.message), true); - }); - }); - - fixtures.signatures.verify.forEach((sign) => { - let legacyAddress = BITBOX.Address.toLegacyAddress(sign.address); - it(`should verify a valid signed message from ${sign.network} legacy address ${legacyAddress}`, () => { - assert.equal(BITBOX.BitcoinCash.verifyMessage(legacyAddress, sign.signature, sign.message), true); - }); - }); - - fixtures.signatures.verify.forEach((sign) => { - let legacyAddress = BITBOX.Address.toLegacyAddress(sign.address); - it(`should not verify an invalid signed message from ${sign.network} cashaddr address ${sign.address}`, () => { - assert.equal(BITBOX.BitcoinCash.verifyMessage(sign.address, sign.signature, 'nope'), false); - }); - }); - }); - }); - - describe('encode and decode to base58Check', () => { - describe('#encodeBase58Check', () => { + }) + + describe("sign and verify messages", () => { + describe("#signMessageWithPrivKey", () => { + fixtures.signatures.sign.forEach(sign => { + it(`should sign a message w/ ${sign.network} ${ + sign.privateKeyWIF + }`, () => { + const privateKeyWIF = sign.privateKeyWIF + const message = sign.message + const signature = BITBOX.BitcoinCash.signMessageWithPrivKey( + privateKeyWIF, + message + ) + assert.equal(signature, sign.signature) + }) + }) + }) + + describe("#verifyMessage", () => { + fixtures.signatures.verify.forEach(sign => { + it(`should verify a valid signed message from ${ + sign.network + } cashaddr address ${sign.address}`, () => { + assert.equal( + BITBOX.BitcoinCash.verifyMessage( + sign.address, + sign.signature, + sign.message + ), + true + ) + }) + }) + + fixtures.signatures.verify.forEach(sign => { + const legacyAddress = BITBOX.Address.toLegacyAddress(sign.address) + it(`should verify a valid signed message from ${ + sign.network + } legacy address ${legacyAddress}`, () => { + assert.equal( + BITBOX.BitcoinCash.verifyMessage( + legacyAddress, + sign.signature, + sign.message + ), + true + ) + }) + }) + + fixtures.signatures.verify.forEach(sign => { + const legacyAddress = BITBOX.Address.toLegacyAddress(sign.address) + it(`should not verify an invalid signed message from ${ + sign.network + } cashaddr address ${sign.address}`, () => { + assert.equal( + BITBOX.BitcoinCash.verifyMessage( + sign.address, + sign.signature, + "nope" + ), + false + ) + }) + }) + }) + }) + + describe("encode and decode to base58Check", () => { + describe("#encodeBase58Check", () => { fixtures.encodeBase58Check.forEach((base58Check, i) => { - it(`encode ${base58Check.hex} as base58Check ${base58Check.base58Check}`, () => { - assert.equal(BITBOX.BitcoinCash.encodeBase58Check(base58Check.hex), base58Check.base58Check); - }); - }); - }); + it(`encode ${base58Check.hex} as base58Check ${ + base58Check.base58Check + }`, () => { + assert.equal( + BITBOX.BitcoinCash.encodeBase58Check(base58Check.hex), + base58Check.base58Check + ) + }) + }) + }) - describe('#decodeBase58Check', () => { + describe("#decodeBase58Check", () => { fixtures.encodeBase58Check.forEach((base58Check, i) => { it(`decode ${base58Check.base58Check} as ${base58Check.hex}`, () => { - assert.equal(BITBOX.BitcoinCash.decodeBase58Check(base58Check.base58Check), base58Check.hex); - }); - }); - }); - }); - - describe('encode and decode BIP21 urls', () => { - describe('#encodeBIP21', () => { + assert.equal( + BITBOX.BitcoinCash.decodeBase58Check(base58Check.base58Check), + base58Check.hex + ) + }) + }) + }) + }) + + describe("encode and decode BIP21 urls", () => { + describe("#encodeBIP21", () => { fixtures.bip21.valid.forEach((bip21, i) => { it(`encode ${bip21.address} as url`, () => { - let url = BITBOX.BitcoinCash.encodeBIP21(bip21.address, bip21.options) - assert.equal(url, bip21.url); - }); - }); - }); + const url = BITBOX.BitcoinCash.encodeBIP21( + bip21.address, + bip21.options + ) + assert.equal(url, bip21.url) + }) + }) + }) - describe('#decodeBIP21', () => { + describe("#decodeBIP21", () => { fixtures.bip21.valid.forEach((bip21, i) => { it(`decodes ${bip21.url}`, () => { - let decoded = BITBOX.BitcoinCash.decodeBIP21(bip21.url); - assert.equal(decoded.options.amount, bip21.options.amount); - assert.equal(decoded.options.label, bip21.options.label); - assert.equal(BITBOX.Address.toCashAddress(decoded.address), BITBOX.Address.toCashAddress(bip21.address)); - }); - }); - }); - }); - - describe('#getByteCount', () => { - fixtures.getByteCount.forEach((fixture) => { + const decoded = BITBOX.BitcoinCash.decodeBIP21(bip21.url) + assert.equal(decoded.options.amount, bip21.options.amount) + assert.equal(decoded.options.label, bip21.options.label) + assert.equal( + BITBOX.Address.toCashAddress(decoded.address), + BITBOX.Address.toCashAddress(bip21.address) + ) + }) + }) + }) + }) + + describe("#getByteCount", () => { + fixtures.getByteCount.forEach(fixture => { it(`get byte count`, () => { - let byteCount = BITBOX.BitcoinCash.getByteCount(fixture.inputs, fixture.outputs); - assert.equal(byteCount, fixture.byteCount); - }); - }); - }); - - describe('#bip38', () => { - describe('#encryptBIP38', () => { - fixtures.bip38.encrypt.mainnet.forEach((fixture) => { - it(`BIP 38 encrypt wif ${fixture.wif} with password ${fixture.password} on mainnet`, () => { - let encryptedKey = BITBOX.BitcoinCash.encryptBIP38(fixture.wif, fixture.password); - assert.equal(encryptedKey, fixture.encryptedKey); - }); - }); - - fixtures.bip38.encrypt.testnet.forEach((fixture) => { - it(`BIP 38 encrypt wif ${fixture.wif} with password ${fixture.password} on testnet`, () => { - let encryptedKey = BITBOX.BitcoinCash.encryptBIP38(fixture.wif, fixture.password); - assert.equal(encryptedKey, fixture.encryptedKey); - }); - }); - }); - - describe('#decryptBIP38', () => { - fixtures.bip38.decrypt.mainnet.forEach((fixture) => { - it(`BIP 38 decrypt encrypted key ${fixture.encryptedKey} on mainnet`, () => { - let wif = BITBOX.BitcoinCash.decryptBIP38(fixture.encryptedKey, fixture.password, 'mainnet'); - assert.equal(wif, fixture.wif); - }); - }); - - fixtures.bip38.decrypt.testnet.forEach((fixture) => { - it(`BIP 38 decrypt encrypted key ${fixture.encryptedKey} on testnet`, () => { - let wif = BITBOX.BitcoinCash.decryptBIP38(fixture.encryptedKey, fixture.password, 'testnet'); - assert.equal(wif, fixture.wif); - }); - }); - }); - }); -}); + const byteCount = BITBOX.BitcoinCash.getByteCount( + fixture.inputs, + fixture.outputs + ) + assert.equal(byteCount, fixture.byteCount) + }) + }) + }) + + describe("#bip38", () => { + describe("#encryptBIP38", () => { + fixtures.bip38.encrypt.mainnet.forEach(fixture => { + it(`BIP 38 encrypt wif ${fixture.wif} with password ${ + fixture.password + } on mainnet`, () => { + const encryptedKey = BITBOX.BitcoinCash.encryptBIP38( + fixture.wif, + fixture.password + ) + assert.equal(encryptedKey, fixture.encryptedKey) + }) + }) + + fixtures.bip38.encrypt.testnet.forEach(fixture => { + it(`BIP 38 encrypt wif ${fixture.wif} with password ${ + fixture.password + } on testnet`, () => { + const encryptedKey = BITBOX.BitcoinCash.encryptBIP38( + fixture.wif, + fixture.password + ) + assert.equal(encryptedKey, fixture.encryptedKey) + }) + }) + }) + + describe("#decryptBIP38", () => { + fixtures.bip38.decrypt.mainnet.forEach(fixture => { + it(`BIP 38 decrypt encrypted key ${ + fixture.encryptedKey + } on mainnet`, () => { + const wif = BITBOX.BitcoinCash.decryptBIP38( + fixture.encryptedKey, + fixture.password, + "mainnet" + ) + assert.equal(wif, fixture.wif) + }) + }) + + fixtures.bip38.decrypt.testnet.forEach(fixture => { + it(`BIP 38 decrypt encrypted key ${ + fixture.encryptedKey + } on testnet`, () => { + const wif = BITBOX.BitcoinCash.decryptBIP38( + fixture.encryptedKey, + fixture.password, + "testnet" + ) + assert.equal(wif, fixture.wif) + }) + }) + }) + }) +}) diff --git a/test/Block.js b/test/Block.js index 98c36662..1d39d412 100644 --- a/test/Block.js +++ b/test/Block.js @@ -1,48 +1,54 @@ -let chai = require('chai'); -let assert = require('assert'); -let BITBOXCli = require('./../lib/bitbox-cli').default; -let BITBOX = new BITBOXCli(); -let axios = require('axios'); -let sinon = require('sinon'); +"use strict" +const chai = require("chai") +const assert = require("assert") +const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOX = new BITBOXCli() +const axios = require("axios") +const sinon = require("sinon") -describe('#Block', () => { - describe('#details', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); +describe("#Block", () => { + describe("#details", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) - it('should get block details', (done) => { - let data = { - hash: '000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0', + it("should get block details", done => { + const data = { + hash: + "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", size: 216, height: 507, version: 1, - merkleroot: 'a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8', - tx: - [ 'a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8' ], + merkleroot: + "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8", + tx: [ + "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8" + ], time: 1231973656, nonce: 330467862, - bits: '1d00ffff', + bits: "1d00ffff", difficulty: 1, - chainwork: '000000000000000000000000000000000000000000000000000001fc01fc01fc', + chainwork: + "000000000000000000000000000000000000000000000000000001fc01fc01fc", confirmations: 528402, - previousblockhash: '00000000a99525c043fd7e323414b60add43c254c44860094048f9c01e9a5fdd', - nextblockhash: '000000000d550f4161f2702165fdd782ec72ff9c541f864ebb8256b662b7e51a', + previousblockhash: + "00000000a99525c043fd7e323414b60add43c254c44860094048f9c01e9a5fdd", + nextblockhash: + "000000000d550f4161f2702165fdd782ec72ff9c541f864ebb8256b662b7e51a", reward: 50, isMainChain: true, poolInfo: {} - }; - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); + } + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) - BITBOX.Block.details('000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0') - .then((result) => { - assert.deepEqual( - data, - result - ); + BITBOX.Block.details( + "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0" + ) + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); - }); -}); + .then(done, done) + }) + }) +}) diff --git a/test/Blockchain.js b/test/Blockchain.js index b8541491..6641305d 100644 --- a/test/Blockchain.js +++ b/test/Blockchain.js @@ -1,282 +1,284 @@ -// let fixtures = require('./fixtures/BitcoinCash.json') -let chai = require('chai'); -let assert = require('assert'); -let axios = require('axios'); -let BITBOXCli = require('./../lib/bitbox-cli').default; -let BITBOX = new BITBOXCli(); -let sinon = require('sinon'); - -describe('#Blockchain', () => { - describe('#getBestBlockHash', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); - - it('should get best block hash', (done) => { - const resolved = new Promise((r) => r({ data: '0000000000000000005f1f550d3d8b142b684277016ebd00fa29c668606ae52d' })); - sandbox.stub(axios, 'get').returns(resolved); +"use strict" +const chai = require("chai") +const assert = require("assert") +const axios = require("axios") +const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOX = new BITBOXCli() +const sinon = require("sinon") + +describe("#Blockchain", () => { + describe("#getBestBlockHash", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get best block hash", done => { + const resolved = new Promise(r => + r({ + data: + "0000000000000000005f1f550d3d8b142b684277016ebd00fa29c668606ae52d" + }) + ) + sandbox.stub(axios, "get").returns(resolved) BITBOX.Blockchain.getBestBlockHash() - .then((result) => { - let hash = '0000000000000000005f1f550d3d8b142b684277016ebd00fa29c668606ae52d'; - assert.equal(hash, result); + .then(result => { + const hash = + "0000000000000000005f1f550d3d8b142b684277016ebd00fa29c668606ae52d" + assert.equal(hash, result) }) - .then(done, done); - }); - }); - - describe('#getBlock', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); - let data = { - hash: '00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09', + .then(done, done) + }) + }) + + describe("#getBlock", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + hash: "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09", confirmations: 526807, size: 216, height: 1000, version: 1, - versionHex: '00000001', - merkleroot: 'fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33', - tx: - [ 'fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33' ], + versionHex: "00000001", + merkleroot: + "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33", + tx: ["fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33"], time: 1232346882, mediantime: 1232344831, nonce: 2595206198, - bits: '1d00ffff', + bits: "1d00ffff", difficulty: 1, - chainwork: '000000000000000000000000000000000000000000000000000003e903e903e9', - previousblockhash: '0000000008e647742775a230787d66fdf92c46a48c896bfbc85cdc8acc67e87d', - nextblockhash: '00000000a2887344f8db859e372e7e4bc26b23b9de340f725afbf2edb265b4c6' - }; - - it('should get block by hash', (done) => { - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); - - BITBOX.Blockchain.getBlock("00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09") - .then((result) => { - assert.deepEqual( - data, - result - ); + chainwork: + "000000000000000000000000000000000000000000000000000003e903e903e9", + previousblockhash: + "0000000008e647742775a230787d66fdf92c46a48c896bfbc85cdc8acc67e87d", + nextblockhash: + "00000000a2887344f8db859e372e7e4bc26b23b9de340f725afbf2edb265b4c6" + } + + it("should get block by hash", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Blockchain.getBlock( + "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09" + ) + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); - }); - - describe('#getBlockchainInfo', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); - let data = { - chain: 'main', + .then(done, done) + }) + }) + + describe("#getBlockchainInfo", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + chain: "main", blocks: 527810, headers: 527810, - bestblockhash: '000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0', + bestblockhash: + "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0", difficulty: 576023394804.6666, mediantime: 1524878499, verificationprogress: 0.9999990106793685, - chainwork: '00000000000000000000000000000000000000000096da5b040913fa09249b4e', + chainwork: + "00000000000000000000000000000000000000000096da5b040913fa09249b4e", pruned: false, - softforks: - [ { id: 'bip34', version: 2, reject: [Object] }, - { id: 'bip66', version: 3, reject: [Object] }, - { id: 'bip65', version: 4, reject: [Object] } ], - bip9_softforks: - { csv: - { status: 'active', - startTime: 1462060800, - timeout: 1493596800, - since: 419328 - } + softforks: [ + { id: "bip34", version: 2, reject: [Object] }, + { id: "bip66", version: 3, reject: [Object] }, + { id: "bip65", version: 4, reject: [Object] } + ], + bip9_softforks: { + csv: { + status: "active", + startTime: 1462060800, + timeout: 1493596800, + since: 419328 + } } - }; + } - it('should get blockchain info', (done) => { - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); + it("should get blockchain info", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) BITBOX.Blockchain.getBlockchainInfo() - .then((result) => { - assert.deepEqual( - data, - result - ); + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); - }); + .then(done, done) + }) + }) - describe('#getBlockCount', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); - let data = 527810; + describe("#getBlockCount", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = 527810 - it('should get block count', (done) => { - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); + it("should get block count", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) BITBOX.Blockchain.getBlockCount() - .then((result) => { - assert.deepEqual( - data, - result - ); + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); - }); + .then(done, done) + }) + }) - describe('#getBlockHash', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); - let data = '000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0'; + describe("#getBlockHash", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = + "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0" - it('should get block hash by height', (done) => { - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); + it("should get block hash by height", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) BITBOX.Blockchain.getBlockHash(527810) - .then((result) => { - assert.deepEqual( - data, - result - ); + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); - }); - - describe('#getBlockHeader', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); - let data = { - hash: '000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0', + .then(done, done) + }) + }) + + describe("#getBlockHeader", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + hash: "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0", confirmations: 1, height: 527810, version: 536870912, - versionHex: '20000000', - merkleroot: '9298432bbebe4638456aa19cb7ef91639da87668a285d88d0ecd6080424d223b', + versionHex: "20000000", + merkleroot: + "9298432bbebe4638456aa19cb7ef91639da87668a285d88d0ecd6080424d223b", time: 1524881438, mediantime: 1524878499, nonce: 3326843941, - bits: '1801e8a5', + bits: "1801e8a5", difficulty: 576023394804.6666, - chainwork: '00000000000000000000000000000000000000000096da5b040913fa09249b4e', - previousblockhash: '000000000000000000b33251708bc7a7b4540e61880d8c376e8e2db6a19a4789' - }; - - it('should get block header by hash', (done) => { - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); - - BITBOX.Blockchain.getBlockHeader('000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0', true) - .then((result) => { - assert.deepEqual( - data, - result - ); + chainwork: + "00000000000000000000000000000000000000000096da5b040913fa09249b4e", + previousblockhash: + "000000000000000000b33251708bc7a7b4540e61880d8c376e8e2db6a19a4789" + } + + it("should get block header by hash", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Blockchain.getBlockHeader( + "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0", + true + ) + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); - }); + .then(done, done) + }) + }) - describe('#getDifficulty', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); - let data = '577528469277.1339'; + describe("#getDifficulty", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = "577528469277.1339" - it('should get difficulty', (done) => { - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); + it("should get difficulty", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) BITBOX.Blockchain.getDifficulty() - .then((result) => { - assert.deepEqual( - data, - result - ); + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); - }); - - describe('#getMempoolAncestors', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); - let data = "Transaction not in mempool"; - - it('should get mempool ancestors', (done) => { - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); - - BITBOX.Blockchain.getMempoolAncestors('daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88', true) - .then((result) => { - assert.deepEqual( - data, - result - ); + .then(done, done) + }) + }) + + describe("#getMempoolAncestors", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = "Transaction not in mempool" + + it("should get mempool ancestors", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Blockchain.getMempoolAncestors( + "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", + true + ) + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); - }); - - describe('#getMempoolDescendants', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); - let data = { + .then(done, done) + }) + }) + + describe("#getMempoolDescendants", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { result: "Transaction not in mempool" - }; - - it('should get mempool descendants', (done) => { - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); - - BITBOX.Blockchain.getMempoolDescendants('daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88', true) - .then((result) => { - assert.deepEqual( - data, - result - ); + } + + it("should get mempool descendants", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Blockchain.getMempoolDescendants( + "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", + true + ) + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); - }); - - describe('#getMempoolEntry', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); - let data = { + .then(done, done) + }) + }) + + describe("#getMempoolEntry", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { result: "Transaction not in mempool" - }; - - it('should get mempool entry', (done) => { - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); - - BITBOX.Blockchain.getMempoolEntry('daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88') - .then((result) => { - assert.deepEqual( - data, - result - ); + } + + it("should get mempool entry", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Blockchain.getMempoolEntry( + "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88" + ) + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); - }); - - describe('#getMempoolInfo', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); - let data = { + .then(done, done) + }) + }) + + describe("#getMempoolInfo", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { result: { size: 317, bytes: 208583, @@ -284,173 +286,158 @@ describe('#Blockchain', () => { maxmempool: 300000000, mempoolminfee: 0 } - }; + } - it('should get mempool info', (done) => { - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); + it("should get mempool info", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) BITBOX.Blockchain.getMempoolInfo() - .then((result) => { - assert.deepEqual( - data, - result - ); + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); - }); - - describe('#getRawMempool', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); - let data = { + .then(done, done) + }) + }) + + describe("#getRawMempool", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { result: { transactions: [ { - txid: 'ab36d68dd0a618592fe34e4a898e8beeeb4049133547dbb16f9338384084af96', - size: 191, - fee: 0.00047703, - modifiedfee: 0.00047703, - time: 1524883317, - height: 527811, - startingpriority: 5287822727.272727, - currentpriority: 5287822727.272727, - descendantcount: 1, - descendantsize: 191, - descendantfees: 47703, - ancestorcount: 1, - ancestorsize: 191, - ancestorfees: 47703, - depends: [] - }] + txid: + "ab36d68dd0a618592fe34e4a898e8beeeb4049133547dbb16f9338384084af96", + size: 191, + fee: 0.00047703, + modifiedfee: 0.00047703, + time: 1524883317, + height: 527811, + startingpriority: 5287822727.272727, + currentpriority: 5287822727.272727, + descendantcount: 1, + descendantsize: 191, + descendantfees: 47703, + ancestorcount: 1, + ancestorsize: 191, + ancestorfees: 47703, + depends: [] + } + ] } - }; + } - it('should get mempool info', (done) => { - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); + it("should get mempool info", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) BITBOX.Blockchain.getRawMempool() - .then((result) => { - assert.deepEqual( - data, - result - ); + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); - }); + .then(done, done) + }) + }) - describe('#getTxOut', () => { + describe("#getTxOut", () => { // TODO finish this test - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); - let data = { - result: { } - }; - - it('should get TODO', (done) => { - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); - - BITBOX.Blockchain.getTxOut('daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88', 0, true) - .then((result) => { - assert.deepEqual( - data, - result - ); + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + result: {} + } + + it("should get TODO", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Blockchain.getTxOut( + "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", + 0, + true + ) + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); - }); + .then(done, done) + }) + }) - describe('#preciousBlock', () => { + describe("#preciousBlock", () => { // TODO finish this test - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); - let data = { - result: { } - }; + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + result: {} + } - it('should get TODO', (done) => { - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); + it("should get TODO", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) BITBOX.Blockchain.preciousBlock() - .then((result) => { - assert.deepEqual( - data, - result - ); + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); - }); + .then(done, done) + }) + }) - describe('#pruneBlockchain', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); - let data = "Cannot prune blocks because node is not in prune mode."; + describe("#pruneBlockchain", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = "Cannot prune blocks because node is not in prune mode." - it('should prune blockchain', (done) => { - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'post').returns(resolved); + it("should prune blockchain", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "post").returns(resolved) BITBOX.Blockchain.pruneBlockchain(507) - .then((result) => { - assert.deepEqual( - data, - result - ); + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); - }); + .then(done, done) + }) + }) - describe('#verifyChain', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); - let data = true; + describe("#verifyChain", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = true - it('should verify blockchain', (done) => { - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); + it("should verify blockchain", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) BITBOX.Blockchain.verifyChain(3, 6) - .then((result) => { - assert.deepEqual( - data, - result - ); + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); - }); + .then(done, done) + }) + }) - describe('#verifyTxOutProof', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); - let data = "proof must be hexadecimal string (not '')"; + describe("#verifyTxOutProof", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = "proof must be hexadecimal string (not '')" - it('should verify utxo proof', (done) => { - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); + it("should verify utxo proof", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) BITBOX.Blockchain.verifyTxOutProof(3, 6) - .then((result) => { - assert.deepEqual( - data, - result - ); + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); - }); -}); + .then(done, done) + }) + }) +}) diff --git a/test/Control.js b/test/Control.js index 1b6aa3e7..fc3f8fac 100644 --- a/test/Control.js +++ b/test/Control.js @@ -1,52 +1,49 @@ -// let fixtures = require('./fixtures/BitcoinCash.json') -let chai = require('chai'); -let assert = require('assert'); -let axios = require('axios'); -let BITBOXCli = require('./../lib/bitbox-cli').default; -let BITBOX = new BITBOXCli(); -let sinon = require('sinon'); +"use strict" +const chai = require("chai") +const assert = require("assert") +const axios = require("axios") +const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOX = new BITBOXCli() +const sinon = require("sinon") -describe('#Control', () => { - describe('#getInfo', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); +describe("#Control", () => { + describe("#getInfo", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) - it('should get info', (done) => { - let data = { + it("should get info", done => { + const data = { version: 170000, protocolversion: 70015, blocks: 527813, timeoffset: 0, connections: 21, - proxy: '', + proxy: "", difficulty: 581086703759.5878, testnet: false, paytxfee: 0, relayfee: 0.00001, - errors: '' - }; - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); + errors: "" + } + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) BITBOX.Control.getInfo() - .then((result) => { - assert.deepEqual( - data, - result - ); + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); - }); + .then(done, done) + }) + }) - describe('#getMemoryInfo', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); + describe("#getMemoryInfo", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) - it('should get memory info', (done) => { - let data = { + it("should get memory info", done => { + const data = { locked: { used: 0, free: 65536, @@ -55,18 +52,15 @@ describe('#Control', () => { chunks_used: 0, chunks_free: 1 } - }; - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); + } + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) BITBOX.Control.getMemoryInfo() - .then((result) => { - assert.deepEqual( - data, - result - ); + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); - }); -}); + .then(done, done) + }) + }) +}) diff --git a/test/Crypto.js b/test/Crypto.js index ef84bdf7..e0fa58b4 100644 --- a/test/Crypto.js +++ b/test/Crypto.js @@ -1,101 +1,110 @@ -let fixtures = require('./fixtures/Crypto.json') -let chai = require('chai'); -let assert = require('assert'); -let BITBOXCli = require('./../lib/bitbox-cli').default; -let BITBOX = new BITBOXCli(); -let Buffer = require('safe-buffer').Buffer +"use strict" +const fixtures = require("./fixtures/Crypto.json") +const chai = require("chai") +const assert = require("assert") +const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOX = new BITBOXCli() +const Buffer = require("safe-buffer").Buffer -describe('#Crypto', () => { - describe('#sha256', () => { - fixtures.sha256.forEach((fixture) => { - it(`should create SHA256Hash hex encoded ${fixture.hash} from ${fixture.hex}`, () => { - let data = Buffer.from(fixture.hex, 'hex') - let sha256Hash = BITBOX.Crypto.sha256(data).toString('hex'); - assert.equal(sha256Hash, fixture.hash); - }); +describe("#Crypto", () => { + describe("#sha256", () => { + fixtures.sha256.forEach(fixture => { + it(`should create SHA256Hash hex encoded ${fixture.hash} from ${ + fixture.hex + }`, () => { + const data = Buffer.from(fixture.hex, "hex") + const sha256Hash = BITBOX.Crypto.sha256(data).toString("hex") + assert.equal(sha256Hash, fixture.hash) + }) it(`should create 64 character SHA256Hash hex encoded`, () => { - let data = Buffer.from(fixture.hex, 'hex') - let sha256Hash = BITBOX.Crypto.sha256(data).toString('hex'); - assert.equal(sha256Hash.length, 64); - }); - }); - }); + const data = Buffer.from(fixture.hex, "hex") + const sha256Hash = BITBOX.Crypto.sha256(data).toString("hex") + assert.equal(sha256Hash.length, 64) + }) + }) + }) - describe('#ripemd160', () => { - fixtures.ripemd160.forEach((fixture) => { - it(`should create RIPEMD160Hash hex encoded ${fixture.hash} from ${fixture.hex}`, () => { - let data = Buffer.from(fixture.hex, 'hex') - let ripemd160 = BITBOX.Crypto.ripemd160(data).toString('hex'); - assert.equal(ripemd160, fixture.hash); - }); + describe("#ripemd160", () => { + fixtures.ripemd160.forEach(fixture => { + it(`should create RIPEMD160Hash hex encoded ${fixture.hash} from ${ + fixture.hex + }`, () => { + const data = Buffer.from(fixture.hex, "hex") + const ripemd160 = BITBOX.Crypto.ripemd160(data).toString("hex") + assert.equal(ripemd160, fixture.hash) + }) it(`should create 64 character RIPEMD160Hash hex encoded`, () => { - let data = Buffer.from(fixture.hex, 'hex') - let ripemd160 = BITBOX.Crypto.ripemd160(data).toString('hex'); - assert.equal(ripemd160.length, 40); - }); - }); - }); + const data = Buffer.from(fixture.hex, "hex") + const ripemd160 = BITBOX.Crypto.ripemd160(data).toString("hex") + assert.equal(ripemd160.length, 40) + }) + }) + }) - describe('#hash256', () => { - fixtures.hash256.forEach((fixture) => { - it(`should create double SHA256 Hash hex encoded ${fixture.hash} from ${fixture.hex}`, () => { - let data = Buffer.from(fixture.hex, 'hex') - let hash256 = BITBOX.Crypto.hash256(data).toString('hex'); - assert.equal(hash256, fixture.hash); - }); + describe("#hash256", () => { + fixtures.hash256.forEach(fixture => { + it(`should create double SHA256 Hash hex encoded ${fixture.hash} from ${ + fixture.hex + }`, () => { + const data = Buffer.from(fixture.hex, "hex") + const hash256 = BITBOX.Crypto.hash256(data).toString("hex") + assert.equal(hash256, fixture.hash) + }) it(`should create 64 character SHA256 Hash hex encoded`, () => { - let data = Buffer.from(fixture.hex, 'hex') - let hash256 = BITBOX.Crypto.hash256(data).toString('hex'); - assert.equal(hash256.length, 64); - }); - }); - }); + const data = Buffer.from(fixture.hex, "hex") + const hash256 = BITBOX.Crypto.hash256(data).toString("hex") + assert.equal(hash256.length, 64) + }) + }) + }) - describe('#hash160', () => { - fixtures.hash160.forEach((fixture) => { - it(`should create RIPEMD160(SHA256()) hex encoded ${fixture.hash} from ${fixture.hex}`, () => { - let data = Buffer.from(fixture.hex, 'hex') - let hash160 = BITBOX.Crypto.hash160(data).toString('hex'); - assert.equal(hash160, fixture.hash); - }); + describe("#hash160", () => { + fixtures.hash160.forEach(fixture => { + it(`should create RIPEMD160(SHA256()) hex encoded ${fixture.hash} from ${ + fixture.hex + }`, () => { + const data = Buffer.from(fixture.hex, "hex") + const hash160 = BITBOX.Crypto.hash160(data).toString("hex") + assert.equal(hash160, fixture.hash) + }) it(`should create 64 character SHA256Hash hex encoded`, () => { - let data = Buffer.from(fixture.hex, 'hex') - let hash160 = BITBOX.Crypto.hash160(data).toString('hex'); - assert.equal(hash160.length, 40); - }); - }); - }); + const data = Buffer.from(fixture.hex, "hex") + const hash160 = BITBOX.Crypto.hash160(data).toString("hex") + assert.equal(hash160.length, 40) + }) + }) + }) - describe('#randomBytes', () => { - for(let i = 0; i < 6; i++) { - it('should return 16 bytes of entropy hex encoded', () => { - let entropy = BITBOX.Crypto.randomBytes(16); - assert.equal(Buffer.byteLength(entropy), 16); - }); + describe("#randomBytes", () => { + for (let i = 0; i < 6; i++) { + it("should return 16 bytes of entropy hex encoded", () => { + const entropy = BITBOX.Crypto.randomBytes(16) + assert.equal(Buffer.byteLength(entropy), 16) + }) - it('should return 20 bytes of entropy hex encoded', () => { - let entropy = BITBOX.Crypto.randomBytes(20); - assert.equal(Buffer.byteLength(entropy), 20); - }); + it("should return 20 bytes of entropy hex encoded", () => { + const entropy = BITBOX.Crypto.randomBytes(20) + assert.equal(Buffer.byteLength(entropy), 20) + }) - it('should return 24 bytes of entropy hex encoded', () => { - let entropy = BITBOX.Crypto.randomBytes(24); - assert.equal(Buffer.byteLength(entropy), 24); - }); + it("should return 24 bytes of entropy hex encoded", () => { + const entropy = BITBOX.Crypto.randomBytes(24) + assert.equal(Buffer.byteLength(entropy), 24) + }) - it('should return 28 bytes of entropy hex encoded', () => { - let entropy = BITBOX.Crypto.randomBytes(28); - assert.equal(Buffer.byteLength(entropy), 28); - }); + it("should return 28 bytes of entropy hex encoded", () => { + const entropy = BITBOX.Crypto.randomBytes(28) + assert.equal(Buffer.byteLength(entropy), 28) + }) - it('should return 32 bytes of entropy hex encoded', () => { - let entropy = BITBOX.Crypto.randomBytes(32); - assert.equal(Buffer.byteLength(entropy), 32); - }); + it("should return 32 bytes of entropy hex encoded", () => { + const entropy = BITBOX.Crypto.randomBytes(32) + assert.equal(Buffer.byteLength(entropy), 32) + }) } - }); -}); + }) +}) diff --git a/test/ECPair.js b/test/ECPair.js index dc818bab..259427d1 100644 --- a/test/ECPair.js +++ b/test/ECPair.js @@ -1,111 +1,124 @@ -let fixtures = require('./fixtures/ECPair.json') -let chai = require('chai'); -let assert = require('assert'); -let BITBOXCli = require('./../lib/bitbox-cli').default; -let BITBOX = new BITBOXCli(); -let script = BITBOX.Script; -let Buffer = require('safe-buffer').Buffer +"use strict" +const fixtures = require("./fixtures/ECPair.json") +const chai = require("chai") +const assert = require("assert") +const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOX = new BITBOXCli() +const script = BITBOX.Script +const Buffer = require("safe-buffer").Buffer -describe('#ECPair', () => { - describe('#fromWIF', () => { - fixtures.fromWIF.forEach((fixture) => { +describe("#ECPair", () => { + describe("#fromWIF", () => { + fixtures.fromWIF.forEach(fixture => { it(`should create ECPair from WIF ${fixture.privateKeyWIF}`, () => { - let ecpair = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF); - assert.equal(typeof ecpair, 'object'); + const ecpair = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) + assert.equal(typeof ecpair, "object") }) it(`should get ${fixture.legacy} legacy address`, () => { - let legacy = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF); - assert.equal(BITBOX.HDNode.toLegacyAddress(legacy), fixture.legacy); + const legacy = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) + assert.equal(BITBOX.HDNode.toLegacyAddress(legacy), fixture.legacy) }) it(`should get ${fixture.cashAddr} cash address`, () => { - let cashAddr = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF); - assert.equal(BITBOX.HDNode.toCashAddress(cashAddr), fixture.cashAddr); + const cashAddr = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) + assert.equal(BITBOX.HDNode.toCashAddress(cashAddr), fixture.cashAddr) }) - }); - }); + }) + }) - describe('#toWIF', () => { - fixtures.toWIF.forEach((fixture) => { + describe("#toWIF", () => { + fixtures.toWIF.forEach(fixture => { it(`should get WIF ${fixture.privateKeyWIF} from ECPair`, () => { - let ecpair = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF); - let wif = BITBOX.ECPair.toWIF(ecpair); - assert.equal(wif, fixture.privateKeyWIF); + const ecpair = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) + const wif = BITBOX.ECPair.toWIF(ecpair) + assert.equal(wif, fixture.privateKeyWIF) }) - }); - }); + }) + }) - describe('#fromPublicKey', () => { - fixtures.fromPublicKey.forEach((fixture) => { + describe("#fromPublicKey", () => { + fixtures.fromPublicKey.forEach(fixture => { it(`should create ECPair from public key buffer`, () => { - let ecpair = BITBOX.ECPair.fromPublicKey(Buffer.from(fixture.pubkeyHex, 'hex')); - assert.equal(typeof ecpair, 'object'); - }); + const ecpair = BITBOX.ECPair.fromPublicKey( + Buffer.from(fixture.pubkeyHex, "hex") + ) + assert.equal(typeof ecpair, "object") + }) it(`should get ${fixture.legacy} legacy address`, () => { - let ecpair = BITBOX.ECPair.fromPublicKey(Buffer.from(fixture.pubkeyHex, 'hex')); - assert.equal(BITBOX.HDNode.toLegacyAddress(ecpair), fixture.legacy); + const ecpair = BITBOX.ECPair.fromPublicKey( + Buffer.from(fixture.pubkeyHex, "hex") + ) + assert.equal(BITBOX.HDNode.toLegacyAddress(ecpair), fixture.legacy) }) it(`should get ${fixture.cashAddr} cash address`, () => { - let ecpair = BITBOX.ECPair.fromPublicKey(Buffer.from(fixture.pubkeyHex, 'hex')); - assert.equal(BITBOX.HDNode.toCashAddress(ecpair), fixture.cashAddr); + const ecpair = BITBOX.ECPair.fromPublicKey( + Buffer.from(fixture.pubkeyHex, "hex") + ) + assert.equal(BITBOX.HDNode.toCashAddress(ecpair), fixture.cashAddr) }) - }); - }); + }) + }) - describe('#toPublicKey', () => { - fixtures.toPublicKey.forEach((fixture) => { + describe("#toPublicKey", () => { + fixtures.toPublicKey.forEach(fixture => { it(`should create a public key buffer from an ECPair`, () => { - let ecpair = BITBOX.ECPair.fromPublicKey(Buffer.from(fixture.pubkeyHex, 'hex')); - let pubkeyBuffer = BITBOX.ECPair.toPublicKey(ecpair); - assert.equal(typeof pubkeyBuffer, 'object'); - }); - }); - }); + const ecpair = BITBOX.ECPair.fromPublicKey( + Buffer.from(fixture.pubkeyHex, "hex") + ) + const pubkeyBuffer = BITBOX.ECPair.toPublicKey(ecpair) + assert.equal(typeof pubkeyBuffer, "object") + }) + }) + }) - describe('#toLegacyAddress', () => { - fixtures.toLegacyAddress.forEach((fixture) => { - it(`should create legacy address ${fixture.legacy} from an ECPair`, () => { - let ecpair = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF); - let legacyAddress = BITBOX.ECPair.toLegacyAddress(ecpair); - assert.equal(legacyAddress, fixture.legacy); - }); - }); - }); + describe("#toLegacyAddress", () => { + fixtures.toLegacyAddress.forEach(fixture => { + it(`should create legacy address ${ + fixture.legacy + } from an ECPair`, () => { + const ecpair = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) + const legacyAddress = BITBOX.ECPair.toLegacyAddress(ecpair) + assert.equal(legacyAddress, fixture.legacy) + }) + }) + }) - describe('#toCashAddress', () => { - fixtures.toCashAddress.forEach((fixture) => { - it(`should create cash address ${fixture.cashAddr} from an ECPair`, () => { - let ecpair = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF); - let cashAddr = BITBOX.ECPair.toCashAddress(ecpair); - assert.equal(cashAddr, fixture.cashAddr); - }); - }); - }); + describe("#toCashAddress", () => { + fixtures.toCashAddress.forEach(fixture => { + it(`should create cash address ${ + fixture.cashAddr + } from an ECPair`, () => { + const ecpair = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) + const cashAddr = BITBOX.ECPair.toCashAddress(ecpair) + assert.equal(cashAddr, fixture.cashAddr) + }) + }) + }) - describe('#sign', () => { - fixtures.sign.forEach((fixture) => { + describe("#sign", () => { + fixtures.sign.forEach(fixture => { it(`should sign 32 byte hash buffer`, () => { - let ecpair = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF); - let buf = Buffer.from(BITBOX.Crypto.sha256(fixture.data), 'hex'); - let signatureBuf = BITBOX.ECPair.sign(ecpair, buf); - assert.equal(typeof signatureBuf, 'object'); - }); - }); - }); + const ecpair = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) + const buf = Buffer.from(BITBOX.Crypto.sha256(fixture.data), "hex") + const signatureBuf = BITBOX.ECPair.sign(ecpair, buf) + assert.equal(typeof signatureBuf, "object") + }) + }) + }) - describe('#verify', () => { - fixtures.verify.forEach((fixture) => { + describe("#verify", () => { + fixtures.verify.forEach(fixture => { it(`should verify signed 32 byte hash buffer`, () => { - let ecpair1 = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF1); - let ecpair2 = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF2); - let buf = Buffer.from(BITBOX.Crypto.sha256(fixture.data), 'hex'); - let signature = BITBOX.ECPair.sign(ecpair1, buf); - let verify = BITBOX.ECPair.verify(ecpair1, buf, signature); - assert.equal(verify, true); - }); - }); - }); -}); + const ecpair1 = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF1) + const ecpair2 = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF2) + const buf = Buffer.from(BITBOX.Crypto.sha256(fixture.data), "hex") + const signature = BITBOX.ECPair.sign(ecpair1, buf) + const verify = BITBOX.ECPair.verify(ecpair1, buf, signature) + assert.equal(verify, true) + }) + }) + }) +}) diff --git a/test/Generating.js b/test/Generating.js index 0c55c230..1fbe0c05 100644 --- a/test/Generating.js +++ b/test/Generating.js @@ -1,30 +1,30 @@ -// let fixtures = require('./fixtures/BitcoinCash.json') -let chai = require('chai'); -let assert = require('assert'); -let axios = require('axios'); -let BITBOXCli = require('./../lib/bitbox-cli').default; -let BITBOX = new BITBOXCli(); -let sinon = require('sinon'); +"use strict" +const chai = require("chai") +const assert = require("assert") +const axios = require("axios") +const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOX = new BITBOXCli() +const sinon = require("sinon") -describe('#Generating', () => { - describe('#generateToAddress', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); +describe("#Generating", () => { + describe("#generateToAddress", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) - it('should generate', (done) => { - let data = []; - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'post').returns(resolved); + it("should generate", done => { + const data = [] + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "post").returns(resolved) - BITBOX.Generating.generateToAddress(1, 'bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf') - .then((result) => { - assert.deepEqual( - data, - result - ); + BITBOX.Generating.generateToAddress( + 1, + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + ) + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); - }); -}); + .then(done, done) + }) + }) +}) diff --git a/test/HDNode.js b/test/HDNode.js index 0227c276..76ef8e89 100644 --- a/test/HDNode.js +++ b/test/HDNode.js @@ -1,321 +1,326 @@ -let fixtures = require('./fixtures/HDNode.json') -let chai = require('chai'); -let assert = require('assert'); -let BITBOXCli = require('./../lib/bitbox-cli').default; -let BITBOX = new BITBOXCli(); -let Buffer = require('safe-buffer').Buffer - -describe('#HDNode', () => { - describe('#fromSeed', () => { - fixtures.fromSeed.forEach((mnemonic) => { +"use strict" +const fixtures = require("./fixtures/HDNode.json") +const chai = require("chai") +const assert = require("assert") +const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOX = new BITBOXCli() +const Buffer = require("safe-buffer").Buffer + +describe("#HDNode", () => { + describe("#fromSeed", () => { + fixtures.fromSeed.forEach(mnemonic => { it(`should create an HDNode from root seed buffer`, () => { - let rootSeedBuffer = BITBOX.Mnemonic.toSeed(mnemonic); - let hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer); - assert.notEqual(hdNode, null); - }); - }); - }); - - describe('#derive', () => { - fixtures.derive.forEach((derive) => { + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(mnemonic) + const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) + assert.notEqual(hdNode, null) + }) + }) + }) + + describe("#derive", () => { + fixtures.derive.forEach(derive => { it(`should derive non hardened child HDNode`, () => { - let rootSeedBuffer = BITBOX.Mnemonic.toSeed(derive.mnemonic); - let hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer); - let childHDNode = BITBOX.HDNode.derive(hdNode, 0); - assert.equal(BITBOX.HDNode.toXPub(childHDNode), derive.xpub); - assert.equal(BITBOX.HDNode.toXPriv(childHDNode), derive.xpriv); - }); - }); - }); - - describe('#deriveHardened', () => { - fixtures.deriveHardened.forEach((derive) => { + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(derive.mnemonic) + const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) + const childHDNode = BITBOX.HDNode.derive(hdNode, 0) + assert.equal(BITBOX.HDNode.toXPub(childHDNode), derive.xpub) + assert.equal(BITBOX.HDNode.toXPriv(childHDNode), derive.xpriv) + }) + }) + }) + + describe("#deriveHardened", () => { + fixtures.deriveHardened.forEach(derive => { it(`should derive hardened child HDNode`, () => { - let rootSeedBuffer = BITBOX.Mnemonic.toSeed(derive.mnemonic); - let hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer); - let childHDNode = BITBOX.HDNode.deriveHardened(hdNode, 0); - assert.equal(BITBOX.HDNode.toXPub(childHDNode), derive.xpub); - assert.equal(BITBOX.HDNode.toXPriv(childHDNode), derive.xpriv); - }); - }); - - describe('derive BIP44 $BCH account', () => { - fixtures.deriveBIP44.forEach((derive) => { + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(derive.mnemonic) + const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) + const childHDNode = BITBOX.HDNode.deriveHardened(hdNode, 0) + assert.equal(BITBOX.HDNode.toXPub(childHDNode), derive.xpub) + assert.equal(BITBOX.HDNode.toXPriv(childHDNode), derive.xpriv) + }) + }) + + describe("derive BIP44 $BCH account", () => { + fixtures.deriveBIP44.forEach(derive => { it(`should derive BIP44 $BCH account`, () => { - let rootSeedBuffer = BITBOX.Mnemonic.toSeed(derive.mnemonic); - let hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer); - let purpose = BITBOX.HDNode.deriveHardened(hdNode, 44); - let coin = BITBOX.HDNode.deriveHardened(purpose, 145); - let childHDNode = BITBOX.HDNode.deriveHardened(coin, 0); - assert.equal(BITBOX.HDNode.toXPub(childHDNode), derive.xpub); - assert.equal(BITBOX.HDNode.toXPriv(childHDNode), derive.xpriv); - }); - }); - }); - }); - - describe('#derivePath', () => { - describe('derive non hardened Path', () => { - fixtures.derivePath.forEach((derive) => { + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(derive.mnemonic) + const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) + const purpose = BITBOX.HDNode.deriveHardened(hdNode, 44) + const coin = BITBOX.HDNode.deriveHardened(purpose, 145) + const childHDNode = BITBOX.HDNode.deriveHardened(coin, 0) + assert.equal(BITBOX.HDNode.toXPub(childHDNode), derive.xpub) + assert.equal(BITBOX.HDNode.toXPriv(childHDNode), derive.xpriv) + }) + }) + }) + }) + + describe("#derivePath", () => { + describe("derive non hardened Path", () => { + fixtures.derivePath.forEach(derive => { it(`should derive non hardened child HDNode from path`, () => { - let rootSeedBuffer = BITBOX.Mnemonic.toSeed(derive.mnemonic); - let hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer); - let childHDNode = BITBOX.HDNode.derivePath(hdNode, "0"); - assert.equal(BITBOX.HDNode.toXPub(childHDNode), derive.xpub); - assert.equal(BITBOX.HDNode.toXPriv(childHDNode), derive.xpriv); - }); - }); - }); - - describe('derive hardened Path', () => { - fixtures.deriveHardenedPath.forEach((derive) => { + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(derive.mnemonic) + const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) + const childHDNode = BITBOX.HDNode.derivePath(hdNode, "0") + assert.equal(BITBOX.HDNode.toXPub(childHDNode), derive.xpub) + assert.equal(BITBOX.HDNode.toXPriv(childHDNode), derive.xpriv) + }) + }) + }) + + describe("derive hardened Path", () => { + fixtures.deriveHardenedPath.forEach(derive => { it(`should derive hardened child HDNode from path`, () => { - let rootSeedBuffer = BITBOX.Mnemonic.toSeed(derive.mnemonic); - let hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer); - let childHDNode = BITBOX.HDNode.derivePath(hdNode, "0'"); - assert.equal(BITBOX.HDNode.toXPub(childHDNode), derive.xpub); - assert.equal(BITBOX.HDNode.toXPriv(childHDNode), derive.xpriv); - }); - }); - }); - - describe('derive BIP44 $BCH account', () => { - fixtures.deriveBIP44.forEach((derive) => { + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(derive.mnemonic) + const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) + const childHDNode = BITBOX.HDNode.derivePath(hdNode, "0'") + assert.equal(BITBOX.HDNode.toXPub(childHDNode), derive.xpub) + assert.equal(BITBOX.HDNode.toXPriv(childHDNode), derive.xpriv) + }) + }) + }) + + describe("derive BIP44 $BCH account", () => { + fixtures.deriveBIP44.forEach(derive => { it(`should derive BIP44 $BCH account`, () => { - let rootSeedBuffer = BITBOX.Mnemonic.toSeed(derive.mnemonic); - let hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer); - let childHDNode = BITBOX.HDNode.derivePath(hdNode, "44'/145'/0'"); - assert.equal(BITBOX.HDNode.toXPub(childHDNode), derive.xpub); - assert.equal(BITBOX.HDNode.toXPriv(childHDNode), derive.xpriv); - }); - }); - }); - }); - - describe('#toLegacyAddress', () => { - fixtures.toLegacyAddress.forEach((fixture) => { + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(derive.mnemonic) + const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) + const childHDNode = BITBOX.HDNode.derivePath(hdNode, "44'/145'/0'") + assert.equal(BITBOX.HDNode.toXPub(childHDNode), derive.xpub) + assert.equal(BITBOX.HDNode.toXPriv(childHDNode), derive.xpriv) + }) + }) + }) + }) + + describe("#toLegacyAddress", () => { + fixtures.toLegacyAddress.forEach(fixture => { it(`should get address ${fixture.address} from HDNode`, () => { - let rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic); - let hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer); - let childHDNode = BITBOX.HDNode.derivePath(hdNode, "0"); - let addy = BITBOX.HDNode.toLegacyAddress(childHDNode); - assert.equal(addy, fixture.address); - }); - }); - }); - - describe('#toCashAddress', () => { - fixtures.toCashAddress.forEach((fixture) => { + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) + const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) + const childHDNode = BITBOX.HDNode.derivePath(hdNode, "0") + const addy = BITBOX.HDNode.toLegacyAddress(childHDNode) + assert.equal(addy, fixture.address) + }) + }) + }) + + describe("#toCashAddress", () => { + fixtures.toCashAddress.forEach(fixture => { it(`should get address ${fixture.address} from HDNode`, () => { - let rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic); - let hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer); - let childHDNode = BITBOX.HDNode.derivePath(hdNode, "0"); - let addy = BITBOX.HDNode.toCashAddress(childHDNode); - assert.equal(addy, fixture.address); - }); - }); - }); - - describe('#toWIF', () => { - fixtures.toWIF.forEach((fixture) => { - it(`should get privateKeyWIF ${fixture.privateKeyWIF} from HDNode`, () => { - let hdNode = BITBOX.HDNode.fromXPriv(fixture.xpriv); - assert.equal(BITBOX.HDNode.toWIF(hdNode), fixture.privateKeyWIF); - }); - }); - }); - - describe('#toXPub', () => { - fixtures.toXPub.forEach((fixture) => { + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) + const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) + const childHDNode = BITBOX.HDNode.derivePath(hdNode, "0") + const addy = BITBOX.HDNode.toCashAddress(childHDNode) + assert.equal(addy, fixture.address) + }) + }) + }) + + describe("#toWIF", () => { + fixtures.toWIF.forEach(fixture => { + it(`should get privateKeyWIF ${ + fixture.privateKeyWIF + } from HDNode`, () => { + const hdNode = BITBOX.HDNode.fromXPriv(fixture.xpriv) + assert.equal(BITBOX.HDNode.toWIF(hdNode), fixture.privateKeyWIF) + }) + }) + }) + + describe("#toXPub", () => { + fixtures.toXPub.forEach(fixture => { it(`should create xpub ${fixture.xpub} from an HDNode`, () => { - let rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic); - let hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer); - let xpub = BITBOX.HDNode.toXPub(hdNode); - assert.equal(xpub, fixture.xpub); - }); - }); - }); - - describe('#toXPriv', () => { - fixtures.toXPriv.forEach((fixture) => { + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) + const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) + const xpub = BITBOX.HDNode.toXPub(hdNode) + assert.equal(xpub, fixture.xpub) + }) + }) + }) + + describe("#toXPriv", () => { + fixtures.toXPriv.forEach(fixture => { it(`should create xpriv ${fixture.xpriv} from an HDNode`, () => { - let rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic); - let hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer); - let xpriv = BITBOX.HDNode.toXPriv(hdNode); - assert.equal(xpriv, fixture.xpriv); - }); - }); - }); - - describe('#toKeyPair', () => { - fixtures.toKeyPair.forEach((fixture) => { + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) + const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) + const xpriv = BITBOX.HDNode.toXPriv(hdNode) + assert.equal(xpriv, fixture.xpriv) + }) + }) + }) + + describe("#toKeyPair", () => { + fixtures.toKeyPair.forEach(fixture => { it(`should get ECPair from an HDNode`, () => { - let rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic); - let hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer); - let keyPair = BITBOX.HDNode.toKeyPair(hdNode); - assert.equal(typeof keyPair, 'object'); - }); - }); - }); - - describe('#toPublicKey', () => { - fixtures.toPublicKey.forEach((fixture) => { + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) + const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) + const keyPair = BITBOX.HDNode.toKeyPair(hdNode) + assert.equal(typeof keyPair, "object") + }) + }) + }) + + describe("#toPublicKey", () => { + fixtures.toPublicKey.forEach(fixture => { it(`should create public key buffer from an HDNode`, () => { - let rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic); - let hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer); - let publicKeyBuffer = BITBOX.HDNode.toPublicKey(hdNode); - assert.equal(typeof publicKeyBuffer, 'object'); - }); - }); - }); - - describe('#fromXPriv', () => { - fixtures.fromXPriv.forEach((fixture) => { - let hdNode = BITBOX.HDNode.fromXPriv(fixture.xpriv); + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) + const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) + const publicKeyBuffer = BITBOX.HDNode.toPublicKey(hdNode) + assert.equal(typeof publicKeyBuffer, "object") + }) + }) + }) + + describe("#fromXPriv", () => { + fixtures.fromXPriv.forEach(fixture => { + const hdNode = BITBOX.HDNode.fromXPriv(fixture.xpriv) it(`should create HDNode from xpriv ${fixture.xpriv}`, () => { - assert.notEqual(hdNode, null); - }); + assert.notEqual(hdNode, null) + }) it(`should export xpriv ${fixture.xpriv}`, () => { - assert.equal(BITBOX.HDNode.toXPriv(hdNode), fixture.xpriv); - }); + assert.equal(BITBOX.HDNode.toXPriv(hdNode), fixture.xpriv) + }) it(`should export xpub ${fixture.xpub}`, () => { - assert.equal(BITBOX.HDNode.toXPub(hdNode), fixture.xpub); - }); + assert.equal(BITBOX.HDNode.toXPub(hdNode), fixture.xpub) + }) it(`should export legacy address ${fixture.legacy}`, () => { - assert.equal(BITBOX.HDNode.toLegacyAddress(hdNode), fixture.legacy); - }); + assert.equal(BITBOX.HDNode.toLegacyAddress(hdNode), fixture.legacy) + }) it(`should export cashaddress ${fixture.cashaddress}`, () => { - assert.equal(BITBOX.HDNode.toCashAddress(hdNode), fixture.cashaddress); - }); + assert.equal(BITBOX.HDNode.toCashAddress(hdNode), fixture.cashaddress) + }) it(`should export privateKeyWIF ${fixture.privateKeyWIF}`, () => { - assert.equal(BITBOX.HDNode.toWIF(hdNode), fixture.privateKeyWIF); - }); - }); - }); - - describe('#fromXPub', () => { - fixtures.fromXPub.forEach((fixture) => { - let hdNode = BITBOX.HDNode.fromXPub(fixture.xpub); + assert.equal(BITBOX.HDNode.toWIF(hdNode), fixture.privateKeyWIF) + }) + }) + }) + + describe("#fromXPub", () => { + fixtures.fromXPub.forEach(fixture => { + const hdNode = BITBOX.HDNode.fromXPub(fixture.xpub) it(`should create HDNode from xpub ${fixture.xpub}`, () => { - assert.notEqual(hdNode, null); - }); + assert.notEqual(hdNode, null) + }) it(`should export xpub ${fixture.xpub}`, () => { - assert.equal(BITBOX.HDNode.toXPub(hdNode), fixture.xpub); - }); + assert.equal(BITBOX.HDNode.toXPub(hdNode), fixture.xpub) + }) it(`should export legacy address ${fixture.legacy}`, () => { - assert.equal(BITBOX.HDNode.toLegacyAddress(hdNode), fixture.legacy); - }); + assert.equal(BITBOX.HDNode.toLegacyAddress(hdNode), fixture.legacy) + }) it(`should export cashaddress ${fixture.cashaddress}`, () => { - assert.equal(BITBOX.HDNode.toCashAddress(hdNode), fixture.cashaddress); - }); - }); - }); - - describe('#bip32', () => { - describe('create accounts and addresses', () => { - fixtures.accounts.forEach((fixture) => { - let seedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) - let hdNode = BITBOX.HDNode.fromSeed(seedBuffer) - let a = BITBOX.HDNode.derivePath(hdNode, "0'"); - let external = BITBOX.HDNode.derivePath(a, "0"); - let account = BITBOX.HDNode.createAccount([external]); + assert.equal(BITBOX.HDNode.toCashAddress(hdNode), fixture.cashaddress) + }) + }) + }) + + describe("#bip32", () => { + describe("create accounts and addresses", () => { + fixtures.accounts.forEach(fixture => { + const seedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) + const hdNode = BITBOX.HDNode.fromSeed(seedBuffer) + const a = BITBOX.HDNode.derivePath(hdNode, "0'") + const external = BITBOX.HDNode.derivePath(a, "0") + const account = BITBOX.HDNode.createAccount([external]) it(`#createAccount`, () => { - assert.notEqual(account, null); - }); + assert.notEqual(account, null) + }) - describe('#getChainAddress', () => { - let external1 = BITBOX.Address.toCashAddress(account.getChainAddress(0)); + describe("#getChainAddress", () => { + const external1 = BITBOX.Address.toCashAddress( + account.getChainAddress(0) + ) it(`should create external change address ${external1}`, () => { - assert.equal(external1, fixture.externals[0] ); - }); - }); + assert.equal(external1, fixture.externals[0]) + }) + }) - describe('#nextChainAddress', () => { - for(let i = 0; i < 4; i++) { - let ex = BITBOX.Address.toCashAddress(account.nextChainAddress(0)); + describe("#nextChainAddress", () => { + for (let i = 0; i < 4; i++) { + const ex = BITBOX.Address.toCashAddress(account.nextChainAddress(0)) it(`should create external change address ${ex}`, () => { - assert.equal(ex, fixture.externals[i + 1]); - }); + assert.equal(ex, fixture.externals[i + 1]) + }) } - }); - }); - }); - }); + }) + }) + }) + }) - describe('#sign', () => { - fixtures.sign.forEach((fixture) => { + describe("#sign", () => { + fixtures.sign.forEach(fixture => { it(`should sign 32 byte hash buffer`, () => { - let hdnode = BITBOX.HDNode.fromXPriv(fixture.privateKeyWIF); - let buf = Buffer.from(BITBOX.Crypto.sha256(fixture.data), 'hex'); - let signatureBuf = BITBOX.HDNode.sign(hdnode, buf); - assert.equal(typeof signatureBuf, 'object'); - }); - }); - }); - - describe('#verify', () => { - fixtures.verify.forEach((fixture) => { + const hdnode = BITBOX.HDNode.fromXPriv(fixture.privateKeyWIF) + const buf = Buffer.from(BITBOX.Crypto.sha256(fixture.data), "hex") + const signatureBuf = BITBOX.HDNode.sign(hdnode, buf) + assert.equal(typeof signatureBuf, "object") + }) + }) + }) + + describe("#verify", () => { + fixtures.verify.forEach(fixture => { it(`should verify signed 32 byte hash buffer`, () => { - let hdnode1 = BITBOX.HDNode.fromXPriv(fixture.privateKeyWIF1); - let hdnode2 = BITBOX.HDNode.fromXPriv(fixture.privateKeyWIF2); - let buf = Buffer.from(BITBOX.Crypto.sha256(fixture.data), 'hex'); - let signature = BITBOX.HDNode.sign(hdnode1, buf); - let verify = BITBOX.HDNode.verify(hdnode1, buf, signature); - assert.equal(verify, true); - }); - }); - }); - - describe('#isPublic', () => { - fixtures.isPublic.forEach((fixture) => { + const hdnode1 = BITBOX.HDNode.fromXPriv(fixture.privateKeyWIF1) + const hdnode2 = BITBOX.HDNode.fromXPriv(fixture.privateKeyWIF2) + const buf = Buffer.from(BITBOX.Crypto.sha256(fixture.data), "hex") + const signature = BITBOX.HDNode.sign(hdnode1, buf) + const verify = BITBOX.HDNode.verify(hdnode1, buf, signature) + assert.equal(verify, true) + }) + }) + }) + + describe("#isPublic", () => { + fixtures.isPublic.forEach(fixture => { it(`should verify hdnode is public`, () => { - let node = BITBOX.HDNode.fromXPub(fixture.xpub); - assert.equal(BITBOX.HDNode.isPublic(node), true); - }); - }); + const node = BITBOX.HDNode.fromXPub(fixture.xpub) + assert.equal(BITBOX.HDNode.isPublic(node), true) + }) + }) - fixtures.isPublic.forEach((fixture) => { + fixtures.isPublic.forEach(fixture => { it(`should verify hdnode is not public`, () => { - let node = BITBOX.HDNode.fromXPriv(fixture.xpriv); - assert.equal(BITBOX.HDNode.isPublic(node), false); - }); - }); - }); - - describe('#isPrivate', () => { - fixtures.isPrivate.forEach((fixture) => { + const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) + assert.equal(BITBOX.HDNode.isPublic(node), false) + }) + }) + }) + + describe("#isPrivate", () => { + fixtures.isPrivate.forEach(fixture => { it(`should verify hdnode is not private`, () => { - let node = BITBOX.HDNode.fromXPub(fixture.xpub); - assert.equal(BITBOX.HDNode.isPrivate(node), false); - }); - }); + const node = BITBOX.HDNode.fromXPub(fixture.xpub) + assert.equal(BITBOX.HDNode.isPrivate(node), false) + }) + }) - fixtures.isPrivate.forEach((fixture) => { + fixtures.isPrivate.forEach(fixture => { it(`should verify hdnode is private`, () => { - let node = BITBOX.HDNode.fromXPriv(fixture.xpriv); - assert.equal(BITBOX.HDNode.isPrivate(node), true); - }); - }); - }); - - describe('#toIdentifier', () => { - fixtures.toIdentifier.forEach((fixture) => { + const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) + assert.equal(BITBOX.HDNode.isPrivate(node), true) + }) + }) + }) + + describe("#toIdentifier", () => { + fixtures.toIdentifier.forEach(fixture => { it(`should get identifier of hdnode`, () => { - let node = BITBOX.HDNode.fromXPriv(fixture.xpriv); - let publicKeyBuffer = BITBOX.HDNode.toPublicKey(node); - let hash160 = BITBOX.Crypto.hash160(publicKeyBuffer); - let identifier = BITBOX.HDNode.toIdentifier(node); - assert.equal(identifier.toString('hex'), hash160.toString('hex')); - }); - }); - }); -}); + const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const publicKeyBuffer = BITBOX.HDNode.toPublicKey(node) + const hash160 = BITBOX.Crypto.hash160(publicKeyBuffer) + const identifier = BITBOX.HDNode.toIdentifier(node) + assert.equal(identifier.toString("hex"), hash160.toString("hex")) + }) + }) + }) +}) diff --git a/test/Mining.js b/test/Mining.js index 4f6b9302..770c0037 100644 --- a/test/Mining.js +++ b/test/Mining.js @@ -1,115 +1,106 @@ -// let fixtures = require('./fixtures/BitcoinCash.json') -let chai = require('chai'); -let assert = require('assert'); -let axios = require('axios'); -let BITBOXCli = require('./../lib/bitbox-cli').default; -let BITBOX = new BITBOXCli(); -let sinon = require('sinon'); - -describe('#Mining', () => { - describe('#getBlockTemplate', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); - - it('should get block template', (done) => { - let data = { - data: '01000000017f6305e3b0b05f5b57a82f4e6d4187e148bbe56a947208390e488bad36472368000000006a47304402203b0079ff5b896187feb02e2679c87ac2fb8d483b60e0721ed33601e2c0eecc700220590f8a0e1a51b53b368294861fd5fc99db3a6607d0f4e543f6217108e208c1834121024c93c841d7f576584ffbf513b7abd8283e6562669905f6554f788fce4cc67a34ffffffff0228100000000000001976a914af78709a76abc8a28e568c9210c8247dd10cff2c88ac22020000000000001976a914f339927678803f451b41400737e7dc83c6a8682188ac00000000', - txid: '7f462d71c649a0d8cfbaa2d20d8ff86677966b308f0ac9906ee015bf4453f97a', - hash: '7f462d71c649a0d8cfbaa2d20d8ff86677966b308f0ac9906ee015bf4453f97a', +"use strict" +const chai = require("chai") +const assert = require("assert") +const axios = require("axios") +const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOX = new BITBOXCli() +const sinon = require("sinon") + +describe("#Mining", () => { + describe("#getBlockTemplate", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get block template", done => { + const data = { + data: + "01000000017f6305e3b0b05f5b57a82f4e6d4187e148bbe56a947208390e488bad36472368000000006a47304402203b0079ff5b896187feb02e2679c87ac2fb8d483b60e0721ed33601e2c0eecc700220590f8a0e1a51b53b368294861fd5fc99db3a6607d0f4e543f6217108e208c1834121024c93c841d7f576584ffbf513b7abd8283e6562669905f6554f788fce4cc67a34ffffffff0228100000000000001976a914af78709a76abc8a28e568c9210c8247dd10cff2c88ac22020000000000001976a914f339927678803f451b41400737e7dc83c6a8682188ac00000000", + txid: + "7f462d71c649a0d8cfbaa2d20d8ff86677966b308f0ac9906ee015bf4453f97a", + hash: + "7f462d71c649a0d8cfbaa2d20d8ff86677966b308f0ac9906ee015bf4453f97a", depends: [], fee: 226, sigops: 2 - }; + } - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) - BITBOX.Mining.getBlockTemplate('') - .then((result) => { - assert.deepEqual( - data, - result - ); + BITBOX.Mining.getBlockTemplate("") + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); - }); + .then(done, done) + }) + }) - describe('#getMiningInfo', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); + describe("#getMiningInfo", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) - it('should get mining info', (done) => { - let data = { + it("should get mining info", done => { + const data = { blocks: 527816, currentblocksize: 89408, currentblocktx: 156, difficulty: 568757800682.7649, blockprioritypercentage: 5, - errors: '', + errors: "", networkhashps: 4347259225696976000, pooledtx: 184, - chain: 'main' - }; + chain: "main" + } - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) BITBOX.Mining.getMiningInfo() - .then((result) => { - assert.deepEqual( - data, - result - ); + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); - }); + .then(done, done) + }) + }) - describe('#getNetworkHashps', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); + describe("#getNetworkHashps", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) - it('should get network hashps', (done) => { - let data = 3586365937646890000; + it("should get network hashps", done => { + const data = 3586365937646890000 - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) BITBOX.Mining.getNetworkHashps() - .then((result) => { - assert.equal( - data, - result - ); + .then(result => { + assert.equal(data, result) }) - .then(done, done); - }); - }); + .then(done, done) + }) + }) - describe('#submitBlock', () => { + describe("#submitBlock", () => { // TODO finish - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) - it('should TODO', (done) => { - let data = {}; + it("should TODO", done => { + const data = {} - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'post').returns(resolved); + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "post").returns(resolved) BITBOX.Mining.submitBlock() - .then((result) => { - assert.deepEqual( - data, - result - ); + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); - }); -}); + .then(done, done) + }) + }) +}) diff --git a/test/Mnemonic.js b/test/Mnemonic.js index 8453c3da..7c4d289b 100644 --- a/test/Mnemonic.js +++ b/test/Mnemonic.js @@ -1,260 +1,323 @@ -let fixtures = require('./fixtures/Mnemonic.json') -let chai = require('chai'); -let assert = require('assert'); -let BITBOXCli = require('./../lib/bitbox-cli').default; -let BITBOX = new BITBOXCli(); -let Buffer = require('safe-buffer').Buffer - -describe('#Mnemonic', () => { - describe('#generate', () => { - it('should generate a 12 word mnemonic', () => { - let mnemonic = BITBOX.Mnemonic.generate(128); - assert.equal(mnemonic.split(' ').length, 12); - }); - - it('should generate a 15 word mnemonic', () => { - let mnemonic = BITBOX.Mnemonic.generate(160); - assert.equal(mnemonic.split(' ').length, 15); - }); - - it('should generate a 18 word mnemonic', () => { - let mnemonic = BITBOX.Mnemonic.generate(192); - assert.equal(mnemonic.split(' ').length, 18); - }); - - it('should generate an 21 word mnemonic', () => { - let mnemonic = BITBOX.Mnemonic.generate(224); - assert.equal(mnemonic.split(' ').length, 21); - }); - - it('should generate an 24 word mnemonic', () => { - let mnemonic = BITBOX.Mnemonic.generate(256); - assert.equal(mnemonic.split(' ').length, 24); - }); - - it('should generate an 24 word italian mnemonic', () => { - let mnemonic = BITBOX.Mnemonic.generate(256, BITBOX.Mnemonic.wordLists().italian); - assert.equal(mnemonic.split(' ').length, 24); - }); - }); - - describe('#fromEntropy', () => { - it('should generate a 12 word mnemonic from 16 bytes of entropy', () => { - let rand = BITBOX.Crypto.randomBytes(16); - let mnemonic = BITBOX.Mnemonic.fromEntropy(rand.toString('hex')); - assert.equal(mnemonic.split(' ').length, 12); - }); - - it('should generate a 15 word mnemonic from 20 bytes of entropy', () => { - let rand = BITBOX.Crypto.randomBytes(20); - let mnemonic = BITBOX.Mnemonic.fromEntropy(rand.toString('hex')); - assert.equal(mnemonic.split(' ').length, 15); - }); - - it('should generate an 18 word mnemonic from 24 bytes of entropy', () => { - let rand = BITBOX.Crypto.randomBytes(24); - let mnemonic = BITBOX.Mnemonic.fromEntropy(rand.toString('hex')); - assert.equal(mnemonic.split(' ').length, 18); - }); - - it('should generate an 21 word mnemonic from 28 bytes of entropy', () => { - let rand = BITBOX.Crypto.randomBytes(28); - let mnemonic = BITBOX.Mnemonic.fromEntropy(rand.toString('hex')); - assert.equal(mnemonic.split(' ').length, 21); - }); - - it('should generate an 24 word mnemonic from 32 bytes of entropy', () => { - let rand = BITBOX.Crypto.randomBytes(32); - let mnemonic = BITBOX.Mnemonic.fromEntropy(rand.toString('hex')); - assert.equal(mnemonic.split(' ').length, 24); - }); - - it('should generate an 24 french word mnemonic 32 bytes of entropy', () => { - let rand = BITBOX.Crypto.randomBytes(32); - let mnemonic = BITBOX.Mnemonic.fromEntropy(rand.toString('hex'), BITBOX.Mnemonic.wordLists().french); - assert.equal(mnemonic.split(' ').length, 24); - }); - - fixtures.fromEntropy.forEach((entropy) => { - let mnemonic = BITBOX.Mnemonic.fromEntropy(entropy.entropy); +"use strict" +const fixtures = require("./fixtures/Mnemonic.json") +const chai = require("chai") +const assert = require("assert") +const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOX = new BITBOXCli() +const Buffer = require("safe-buffer").Buffer + +describe("#Mnemonic", () => { + describe("#generate", () => { + it("should generate a 12 word mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate(128) + assert.equal(mnemonic.split(" ").length, 12) + }) + + it("should generate a 15 word mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate(160) + assert.equal(mnemonic.split(" ").length, 15) + }) + + it("should generate a 18 word mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate(192) + assert.equal(mnemonic.split(" ").length, 18) + }) + + it("should generate an 21 word mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate(224) + assert.equal(mnemonic.split(" ").length, 21) + }) + + it("should generate an 24 word mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate(256) + assert.equal(mnemonic.split(" ").length, 24) + }) + + it("should generate an 24 word italian mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate( + 256, + BITBOX.Mnemonic.wordLists().italian + ) + assert.equal(mnemonic.split(" ").length, 24) + }) + }) + + describe("#fromEntropy", () => { + it("should generate a 12 word mnemonic from 16 bytes of entropy", () => { + const rand = BITBOX.Crypto.randomBytes(16) + const mnemonic = BITBOX.Mnemonic.fromEntropy(rand.toString("hex")) + assert.equal(mnemonic.split(" ").length, 12) + }) + + it("should generate a 15 word mnemonic from 20 bytes of entropy", () => { + const rand = BITBOX.Crypto.randomBytes(20) + const mnemonic = BITBOX.Mnemonic.fromEntropy(rand.toString("hex")) + assert.equal(mnemonic.split(" ").length, 15) + }) + + it("should generate an 18 word mnemonic from 24 bytes of entropy", () => { + const rand = BITBOX.Crypto.randomBytes(24) + const mnemonic = BITBOX.Mnemonic.fromEntropy(rand.toString("hex")) + assert.equal(mnemonic.split(" ").length, 18) + }) + + it("should generate an 21 word mnemonic from 28 bytes of entropy", () => { + const rand = BITBOX.Crypto.randomBytes(28) + const mnemonic = BITBOX.Mnemonic.fromEntropy(rand.toString("hex")) + assert.equal(mnemonic.split(" ").length, 21) + }) + + it("should generate an 24 word mnemonic from 32 bytes of entropy", () => { + const rand = BITBOX.Crypto.randomBytes(32) + const mnemonic = BITBOX.Mnemonic.fromEntropy(rand.toString("hex")) + assert.equal(mnemonic.split(" ").length, 24) + }) + + it("should generate an 24 french word mnemonic 32 bytes of entropy", () => { + const rand = BITBOX.Crypto.randomBytes(32) + const mnemonic = BITBOX.Mnemonic.fromEntropy( + rand.toString("hex"), + BITBOX.Mnemonic.wordLists().french + ) + assert.equal(mnemonic.split(" ").length, 24) + }) + + fixtures.fromEntropy.forEach(entropy => { + const mnemonic = BITBOX.Mnemonic.fromEntropy(entropy.entropy) it(`should convert ${entropy.entropy} to ${entropy.mnemonic}`, () => { - assert.equal(mnemonic, entropy.mnemonic); - }); - }); - }); - - describe('#toEntropy', () => { - it('should turn a 12 word mnemonic to entropy', () => { - let mnemonic = BITBOX.Mnemonic.generate(128); - let entropy = BITBOX.Mnemonic.toEntropy(mnemonic); - assert.equal(entropy.length, 16); - }); - - it('should turn a 15 word mnemonic to entropy', () => { - let mnemonic = BITBOX.Mnemonic.generate(160); - let entropy = BITBOX.Mnemonic.toEntropy(mnemonic); - assert.equal(entropy.length, 20); - }); - - it('should turn a 18 word mnemonic to entropy', () => { - let mnemonic = BITBOX.Mnemonic.generate(192); - let entropy = BITBOX.Mnemonic.toEntropy(mnemonic); - assert.equal(entropy.length, 24); - }); - - it('should turn a 21 word mnemonic to entropy', () => { - let mnemonic = BITBOX.Mnemonic.generate(224); - let entropy = BITBOX.Mnemonic.toEntropy(mnemonic); - assert.equal(entropy.length, 28); - }); - - it('should turn a 24 word mnemonic to entropy', () => { - let mnemonic = BITBOX.Mnemonic.generate(256); - let entropy = BITBOX.Mnemonic.toEntropy(mnemonic); - assert.equal(entropy.length, 32); - }); - - it('should turn a 24 word spanish mnemonic to entropy', () => { - let mnemonic = BITBOX.Mnemonic.generate(256, BITBOX.Mnemonic.wordLists().spanish); - let entropy = BITBOX.Mnemonic.toEntropy(mnemonic, BITBOX.Mnemonic.wordLists().spanish); - assert.equal(entropy.length, 32); - }); - - fixtures.fromEntropy.forEach((fixture) => { - let entropy = BITBOX.Mnemonic.toEntropy(fixture.mnemonic); + assert.equal(mnemonic, entropy.mnemonic) + }) + }) + }) + + describe("#toEntropy", () => { + it("should turn a 12 word mnemonic to entropy", () => { + const mnemonic = BITBOX.Mnemonic.generate(128) + const entropy = BITBOX.Mnemonic.toEntropy(mnemonic) + assert.equal(entropy.length, 16) + }) + + it("should turn a 15 word mnemonic to entropy", () => { + const mnemonic = BITBOX.Mnemonic.generate(160) + const entropy = BITBOX.Mnemonic.toEntropy(mnemonic) + assert.equal(entropy.length, 20) + }) + + it("should turn a 18 word mnemonic to entropy", () => { + const mnemonic = BITBOX.Mnemonic.generate(192) + const entropy = BITBOX.Mnemonic.toEntropy(mnemonic) + assert.equal(entropy.length, 24) + }) + + it("should turn a 21 word mnemonic to entropy", () => { + const mnemonic = BITBOX.Mnemonic.generate(224) + const entropy = BITBOX.Mnemonic.toEntropy(mnemonic) + assert.equal(entropy.length, 28) + }) + + it("should turn a 24 word mnemonic to entropy", () => { + const mnemonic = BITBOX.Mnemonic.generate(256) + const entropy = BITBOX.Mnemonic.toEntropy(mnemonic) + assert.equal(entropy.length, 32) + }) + + it("should turn a 24 word spanish mnemonic to entropy", () => { + const mnemonic = BITBOX.Mnemonic.generate( + 256, + BITBOX.Mnemonic.wordLists().spanish + ) + const entropy = BITBOX.Mnemonic.toEntropy( + mnemonic, + BITBOX.Mnemonic.wordLists().spanish + ) + assert.equal(entropy.length, 32) + }) + + fixtures.fromEntropy.forEach(fixture => { + const entropy = BITBOX.Mnemonic.toEntropy(fixture.mnemonic) it(`should convert ${fixture.mnemonic} to ${fixture.entropy}`, () => { - assert.equal(entropy.toString('hex'), fixture.entropy); - }); - }); - }); - - describe('#validate', () => { - it('fails for a mnemonic that is too short', () => { - assert.equal(BITBOX.Mnemonic.validate('mixed winner', BITBOX.Mnemonic.wordLists().english), 'Invalid mnemonic'); - }); - - it('fails for a mnemonic that is too long', () => { - assert.equal(BITBOX.Mnemonic.validate('mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake', BITBOX.Mnemonic.wordLists().english), 'Invalid mnemonic'); - }); - - it('fails if mnemonic words are not in the word list', () => { - assert.equal(BITBOX.Mnemonic.validate('failsauce one two three four five six seven eight nine ten eleven', BITBOX.Mnemonic.wordLists().english), 'failsauce is not in wordlist, did you mean balance?'); - }); - - it('validate a 128 bit mnemonic', () => { - let mnemonic = BITBOX.Mnemonic.generate(128); - assert.equal(BITBOX.Mnemonic.validate(mnemonic, BITBOX.Mnemonic.wordLists().english), 'Valid mnemonic'); - }); - - it('validate a 160 bit mnemonic', () => { - let mnemonic = BITBOX.Mnemonic.generate(160); - assert.equal(BITBOX.Mnemonic.validate(mnemonic, BITBOX.Mnemonic.wordLists().english), 'Valid mnemonic'); - }); - - it('validate a 192 bit mnemonic', () => { - let mnemonic = BITBOX.Mnemonic.generate(192); - assert.equal(BITBOX.Mnemonic.validate(mnemonic, BITBOX.Mnemonic.wordLists().english), 'Valid mnemonic'); - }); - - it('validate a 224 bit mnemonic', () => { - let mnemonic = BITBOX.Mnemonic.generate(224); - assert.equal(BITBOX.Mnemonic.validate(mnemonic, BITBOX.Mnemonic.wordLists().english), 'Valid mnemonic'); - }); - - it('validate a 256 bit mnemonic', () => { - let mnemonic = BITBOX.Mnemonic.generate(256); - assert.equal(BITBOX.Mnemonic.validate(mnemonic, BITBOX.Mnemonic.wordLists().english), 'Valid mnemonic'); - }); - - it('validate a 256 bit chinese simplified mnemonic', () => { - let mnemonic = BITBOX.Mnemonic.generate(256, BITBOX.Mnemonic.wordLists().chinese_simplified); - assert.equal(BITBOX.Mnemonic.validate(mnemonic, BITBOX.Mnemonic.wordLists().chinese_simplified), 'Valid mnemonic'); - }); - }); - - describe('#toSeed', () => { - it('should create 512 bit / 64 byte HMAC-SHA512 root seed from a 128 bit mnemonic', () => { - let mnemonic = BITBOX.Mnemonic.generate(128); - let rootSeedBuffer = BITBOX.Mnemonic.toSeed(mnemonic, ''); - assert.equal(rootSeedBuffer.byteLength, 64); - }); - - it('should create 512 bit / 64 byte HMAC-SHA512 root seed from a 160 bit mnemonic', () => { - let mnemonic = BITBOX.Mnemonic.generate(160); - let rootSeedBuffer = BITBOX.Mnemonic.toSeed(mnemonic, ''); - assert.equal(rootSeedBuffer.byteLength, 64); - }); - - it('should create 512 bit / 64 byte HMAC-SHA512 root seed from a 192 bit mnemonic', () => { - let mnemonic = BITBOX.Mnemonic.generate(192); - let rootSeedBuffer = BITBOX.Mnemonic.toSeed(mnemonic, ''); - assert.equal(rootSeedBuffer.byteLength, 64); - }); - - it('should create 512 bit / 64 byte HMAC-SHA512 root seed from a 224 bit mnemonic', () => { - let mnemonic = BITBOX.Mnemonic.generate(224); - let rootSeedBuffer = BITBOX.Mnemonic.toSeed(mnemonic, ''); - assert.equal(rootSeedBuffer.byteLength, 64); - }); - - it('should create 512 bit / 64 byte HMAC-SHA512 root seed from a 256 bit mnemonic', () => { - let mnemonic = BITBOX.Mnemonic.generate(256); - let rootSeedBuffer = BITBOX.Mnemonic.toSeed(mnemonic, ''); - assert.equal(rootSeedBuffer.byteLength, 64); - }); - }); - - describe('#wordLists', () => { - it('return a list of 2048 english words', () => { - assert.equal(BITBOX.Mnemonic.wordLists().english.length, 2048); - }); - - it('return a list of 2048 japanese words', () => { - assert.equal(BITBOX.Mnemonic.wordLists().japanese.length, 2048); - }); - - it('return a list of 2048 chinese simplified words', () => { - assert.equal(BITBOX.Mnemonic.wordLists().chinese_simplified.length, 2048); - }); - - it('return a list of 2048 chinese traditional words', () => { - assert.equal(BITBOX.Mnemonic.wordLists().chinese_traditional.length, 2048); - }); - - it('return a list of 2048 french words', () => { - assert.equal(BITBOX.Mnemonic.wordLists().french.length, 2048); - }); - - it('return a list of 2048 italian words', () => { - assert.equal(BITBOX.Mnemonic.wordLists().italian.length, 2048); - }); - - it('return a list of 2048 korean words', () => { - assert.equal(BITBOX.Mnemonic.wordLists().korean.length, 2048); - }); - - it('return a list of 2048 spanish words', () => { - assert.equal(BITBOX.Mnemonic.wordLists().spanish.length, 2048); - }); - }); - - describe('#toKeypairs', () => { + assert.equal(entropy.toString("hex"), fixture.entropy) + }) + }) + }) + + describe("#validate", () => { + it("fails for a mnemonic that is too short", () => { + assert.equal( + BITBOX.Mnemonic.validate( + "mixed winner", + BITBOX.Mnemonic.wordLists().english + ), + "Invalid mnemonic" + ) + }) + + it("fails for a mnemonic that is too long", () => { + assert.equal( + BITBOX.Mnemonic.validate( + "mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake", + BITBOX.Mnemonic.wordLists().english + ), + "Invalid mnemonic" + ) + }) + + it("fails if mnemonic words are not in the word list", () => { + assert.equal( + BITBOX.Mnemonic.validate( + "failsauce one two three four five six seven eight nine ten eleven", + BITBOX.Mnemonic.wordLists().english + ), + "failsauce is not in wordlist, did you mean balance?" + ) + }) + + it("validate a 128 bit mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate(128) + assert.equal( + BITBOX.Mnemonic.validate(mnemonic, BITBOX.Mnemonic.wordLists().english), + "Valid mnemonic" + ) + }) + + it("validate a 160 bit mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate(160) + assert.equal( + BITBOX.Mnemonic.validate(mnemonic, BITBOX.Mnemonic.wordLists().english), + "Valid mnemonic" + ) + }) + + it("validate a 192 bit mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate(192) + assert.equal( + BITBOX.Mnemonic.validate(mnemonic, BITBOX.Mnemonic.wordLists().english), + "Valid mnemonic" + ) + }) + + it("validate a 224 bit mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate(224) + assert.equal( + BITBOX.Mnemonic.validate(mnemonic, BITBOX.Mnemonic.wordLists().english), + "Valid mnemonic" + ) + }) + + it("validate a 256 bit mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate(256) + assert.equal( + BITBOX.Mnemonic.validate(mnemonic, BITBOX.Mnemonic.wordLists().english), + "Valid mnemonic" + ) + }) + + it("validate a 256 bit chinese simplified mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate( + 256, + BITBOX.Mnemonic.wordLists().chinese_simplified + ) + assert.equal( + BITBOX.Mnemonic.validate( + mnemonic, + BITBOX.Mnemonic.wordLists().chinese_simplified + ), + "Valid mnemonic" + ) + }) + }) + + describe("#toSeed", () => { + it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 128 bit mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate(128) + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(mnemonic, "") + assert.equal(rootSeedBuffer.byteLength, 64) + }) + + it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 160 bit mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate(160) + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(mnemonic, "") + assert.equal(rootSeedBuffer.byteLength, 64) + }) + + it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 192 bit mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate(192) + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(mnemonic, "") + assert.equal(rootSeedBuffer.byteLength, 64) + }) + + it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 224 bit mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate(224) + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(mnemonic, "") + assert.equal(rootSeedBuffer.byteLength, 64) + }) + + it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 256 bit mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate(256) + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(mnemonic, "") + assert.equal(rootSeedBuffer.byteLength, 64) + }) + }) + + describe("#wordLists", () => { + it("return a list of 2048 english words", () => { + assert.equal(BITBOX.Mnemonic.wordLists().english.length, 2048) + }) + + it("return a list of 2048 japanese words", () => { + assert.equal(BITBOX.Mnemonic.wordLists().japanese.length, 2048) + }) + + it("return a list of 2048 chinese simplified words", () => { + assert.equal(BITBOX.Mnemonic.wordLists().chinese_simplified.length, 2048) + }) + + it("return a list of 2048 chinese traditional words", () => { + assert.equal(BITBOX.Mnemonic.wordLists().chinese_traditional.length, 2048) + }) + + it("return a list of 2048 french words", () => { + assert.equal(BITBOX.Mnemonic.wordLists().french.length, 2048) + }) + + it("return a list of 2048 italian words", () => { + assert.equal(BITBOX.Mnemonic.wordLists().italian.length, 2048) + }) + + it("return a list of 2048 korean words", () => { + assert.equal(BITBOX.Mnemonic.wordLists().korean.length, 2048) + }) + + it("return a list of 2048 spanish words", () => { + assert.equal(BITBOX.Mnemonic.wordLists().spanish.length, 2048) + }) + }) + + describe("#toKeypairs", () => { fixtures.toKeypairs.forEach((fixture, i) => { - let keypairs = BITBOX.Mnemonic.toKeypairs(fixture.mnemonic, 5); + const keypairs = BITBOX.Mnemonic.toKeypairs(fixture.mnemonic, 5) keypairs.forEach((keypair, j) => { it(`Generate keypair from mnemonic`, () => { - assert.equal(keypair.privateKeyWIF, fixtures.toKeypairs[i].output[j].privateKeyWIF); - }); - }); - }); - }); - - describe('#findNearestWord', () => { + assert.equal( + keypair.privateKeyWIF, + fixtures.toKeypairs[i].output[j].privateKeyWIF + ) + }) + }) + }) + }) + + describe("#findNearestWord", () => { fixtures.findNearestWord.forEach((fixture, i) => { - let word = BITBOX.Mnemonic.findNearestWord(fixture.word, BITBOX.Mnemonic.wordLists()[fixture.language]); - it(`find word ${fixture.foundWord} near ${fixture.word} in ${fixture.language}`, () => { - assert.equal(word, fixture.foundWord); - }); - }); - }); -}); + const word = BITBOX.Mnemonic.findNearestWord( + fixture.word, + BITBOX.Mnemonic.wordLists()[fixture.language] + ) + it(`find word ${fixture.foundWord} near ${fixture.word} in ${ + fixture.language + }`, () => { + assert.equal(word, fixture.foundWord) + }) + }) + }) +}) diff --git a/test/Network.js b/test/Network.js index 5f403b2f..a241be0a 100644 --- a/test/Network.js +++ b/test/Network.js @@ -1,130 +1,129 @@ -// let fixtures = require('./fixtures/BitcoinCash.json') -let chai = require('chai'); -let assert = require('assert'); -let axios = require('axios'); -let BITBOXCli = require('./../lib/bitbox-cli').default; -let BITBOX = new BITBOXCli(); -let sinon = require('sinon'); - -describe('#Network', () => { - describe('#getConnectionCount', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); - - it('should get connection count', (done) => { - let data = 13; - - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); +"use strict" +const chai = require("chai") +const assert = require("assert") +const axios = require("axios") +const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOX = new BITBOXCli() +const sinon = require("sinon") + +describe("#Network", () => { + describe("#getConnectionCount", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get connection count", done => { + const data = 13 + + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) BITBOX.Network.getConnectionCount() - .then((result) => { - assert.deepEqual( - data, - result - ); + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); - }); + .then(done, done) + }) + }) - describe('#getNetTotals', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); + describe("#getNetTotals", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) - it('should get net totals', (done) => { - let data = { + it("should get net totals", done => { + const data = { totalbytesrecv: 9348169, totalbytessent: 246903958, timemillis: 1524922367067, - uploadtarget: - { timeframe: 86400, - target: 0, - target_reached: false, - serve_historical_blocks: true, - bytes_left_in_cycle: 0, - time_left_in_cycle: 0 - } - }; - - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); + uploadtarget: { + timeframe: 86400, + target: 0, + target_reached: false, + serve_historical_blocks: true, + bytes_left_in_cycle: 0, + time_left_in_cycle: 0 + } + } + + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) BITBOX.Network.getNetTotals() - .then((result) => { - assert.deepEqual( - data, - result - ); + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); - }); + .then(done, done) + }) + }) - describe('#getNetworkInfo', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); + describe("#getNetworkInfo", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) - it('should get network info', (done) => { - let data = { + it("should get network info", done => { + const data = { version: 170000, - subversion: '/Bitcoin ABC:0.17.0(EB32.0)/', + subversion: "/Bitcoin ABC:0.17.0(EB32.0)/", protocolversion: 70015, - localservices: '0000000000000025', + localservices: "0000000000000025", localrelay: true, timeoffset: 0, networkactive: true, connections: 11, - networks: - [ { name: 'ipv4', - limited: false, - reachable: true, - proxy: '', - proxy_randomize_credentials: false }, - { name: 'ipv6', - limited: false, - reachable: true, - proxy: '', - proxy_randomize_credentials: false }, - { name: 'onion', - limited: true, - reachable: false, - proxy: '', - proxy_randomize_credentials: false } ], + networks: [ + { + name: "ipv4", + limited: false, + reachable: true, + proxy: "", + proxy_randomize_credentials: false + }, + { + name: "ipv6", + limited: false, + reachable: true, + proxy: "", + proxy_randomize_credentials: false + }, + { + name: "onion", + limited: true, + reachable: false, + proxy: "", + proxy_randomize_credentials: false + } + ], relayfee: 0.00001, incrementalfee: 0.00001, - localaddresses: [ { address: '138.68.54.100', port: 8333, score: 584 } ], - warnings: '' - }; + localaddresses: [{ address: "138.68.54.100", port: 8333, score: 584 }], + warnings: "" + } - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) BITBOX.Network.getNetworkInfo() - .then((result) => { - assert.deepEqual( - data, - result - ); + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); - }); - - describe('#getPeerInfo', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); - - it('should get peer info', (done) => { - let data = [ - { id: 99, - addr: '54.39.17.74:47990', - addrlocal: '138.68.54.100:8333', - services: '0000000000000000', + .then(done, done) + }) + }) + + describe("#getPeerInfo", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get peer info", done => { + const data = [ + { + id: 99, + addr: "54.39.17.74:47990", + addrlocal: "138.68.54.100:8333", + services: "0000000000000000", relaytxes: true, lastsend: 1524922628, lastrecv: 1524922616, @@ -135,7 +134,7 @@ describe('#Network', () => { pingtime: 0.066598, minping: 0.066502, version: 70015, - subver: '/bitnodes.ping.com:0.1/', + subver: "/bitnodes.ping.com:0.1/", inbound: true, addnode: false, startingheight: 527808, @@ -144,58 +143,55 @@ describe('#Network', () => { synced_blocks: -1, inflight: [], whitelisted: false, - bytessent_per_msg: - { addr: 14975, - feefilter: 32, - inv: 286552, - ping: 8512, - pong: 192, - sendcmpct: 33, - sendheaders: 24, - verack: 24, - version: 138 }, - bytesrecv_per_msg: - { addr: 1410, - inv: 366, - ping: 192, - pong: 8512, - verack: 24, - version: 133 } } - ]; - - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); + bytessent_per_msg: { + addr: 14975, + feefilter: 32, + inv: 286552, + ping: 8512, + pong: 192, + sendcmpct: 33, + sendheaders: 24, + verack: 24, + version: 138 + }, + bytesrecv_per_msg: { + addr: 1410, + inv: 366, + ping: 192, + pong: 8512, + verack: 24, + version: 133 + } + } + ] + + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) BITBOX.Network.getPeerInfo() - .then((result) => { - assert.deepEqual( - data, - result - ); + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); - }); + .then(done, done) + }) + }) - describe('#ping', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); + describe("#ping", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) - it('should ping', (done) => { - let data = null; + it("should ping", done => { + const data = null - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) BITBOX.Network.ping() - .then((result) => { - assert.deepEqual( - data, - result - ); + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); - }); -}); + .then(done, done) + }) + }) +}) diff --git a/test/Price.js b/test/Price.js index 076478ab..27d07b74 100644 --- a/test/Price.js +++ b/test/Price.js @@ -1,19 +1,20 @@ -let chai = require('chai'); -let assert = require('assert'); -let BITBOXCli = require('./../lib/bitbox-cli').default; -let BITBOX = new BITBOXCli(); -let axios = require('axios'); -let sinon = require('sinon'); +"use strict" +const chai = require("chai") +const assert = require("assert") +const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOX = new BITBOXCli() +const axios = require("axios") +const sinon = require("sinon") -describe('#Price', () => { - describe('#current', () => { - describe('#all currencies', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); +describe("#Price", () => { + describe("#current", () => { + describe("#all currencies", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) - it('should get current price for all currencies', (done) => { - let data = { + it("should get current price for all currencies", done => { + const data = { USD: 872.31, GBP: 665.3, EUR: 748.34, @@ -43,28 +44,25 @@ describe('#Price', () => { COP: 2521500.32, PHP: 46612.32, PLN: 3215.41 - }; - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); + } + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) BITBOX.Price.current() - .then((result) => { - assert.deepEqual( - data, - result - ); - }) - .then(done, done); - }); - }); + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) - describe('#single currency', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); + describe("#single currency", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) - it('should get current price for single currency', (done) => { - let data = { + it("should get current price for single currency", done => { + const data = { USD: 872.31, GBP: 665.3, EUR: 748.34, @@ -94,19 +92,16 @@ describe('#Price', () => { COP: 2521500.32, PHP: 46612.32, PLN: 3215.41 - }; - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); + } + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) - BITBOX.Price.current('usd') - .then((result) => { - assert.deepEqual( - data['USD'], - result - ); - }) - .then(done, done); - }); - }); - }); -}); + BITBOX.Price.current("usd") + .then(result => { + assert.deepEqual(data.USD, result) + }) + .then(done, done) + }) + }) + }) +}) diff --git a/test/RawTransactions.js b/test/RawTransactions.js index 5a484aae..a44d8f6d 100644 --- a/test/RawTransactions.js +++ b/test/RawTransactions.js @@ -1,109 +1,107 @@ -let chai = require('chai'); -let assert = require('assert'); -let axios = require('axios'); -let BITBOXCli = require('./../lib/bitbox-cli').default; -let BITBOX = new BITBOXCli(); - -let sinon = require('sinon'); - -describe('#RawTransactions', () => { - describe('#decodeRawTransaction', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); - - it('should decode raw transaction', (done) => { - let data = { - "txid": "4ebd325a4b394cff8c57e8317ccf5a8d0e2bdf1b8526f8aad6c8e43d8240621a", - "hash": "4ebd325a4b394cff8c57e8317ccf5a8d0e2bdf1b8526f8aad6c8e43d8240621a", - "size": 10, - "version": 2, - "locktime": 0, - "vin": [], - "vout": [] - }; - - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); - - BITBOX.RawTransactions.decodeRawTransaction(['02000000000000000000']) - .then((result) => { - assert.deepEqual( - data, - result - ); - }) - .then(done, done); - }); - }); - - describe('#decodeScript', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); - - it('should decode script', (done) => { - let data = { - asm: 'OP_RETURN 5361746f736869204e616b616d6f746f', - type: 'nulldata', - p2sh: 'bitcoincash:prswx5965nfumux9qng5kj8hw603vcne7q08t8c6jp' - }; - - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); - - BITBOX.RawTransactions.decodeScript(['6a105361746f736869204e616b616d6f746f']) - .then((result) => { - assert.deepEqual( - data, - result - ); - }) - .then(done, done); - }); - }); - - describe('#getRawTransaction', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); - - it('should get raw transaction', (done) => { - let data = '020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000'; - - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); - - BITBOX.RawTransactions.getRawTransaction(['808d617eccaad4f1397fe07a06ec5ed15a0821cf22a3e0931c0c92aef9e572b6']) - .then((result) => { - assert.deepEqual( - data, - result - ); - }) - .then(done, done); - }); - }); - - describe('#sendRawTransaction', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); - - it('should send raw transaction', (done) => { - let data = 'Error: transaction already in block chain'; - - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'post').returns(resolved); - - BITBOX.RawTransactions.sendRawTransaction(['020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000']) - .then((result) => { - assert.equal( - data, - result - ); - }) - .then(done, done); - }); - }); -}); +"use strict" +const chai = require("chai") +const assert = require("assert") +const axios = require("axios") +const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOX = new BITBOXCli() + +const sinon = require("sinon") + +describe("#RawTransactions", () => { + describe("#decodeRawTransaction", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should decode raw transaction", done => { + const data = { + txid: + "4ebd325a4b394cff8c57e8317ccf5a8d0e2bdf1b8526f8aad6c8e43d8240621a", + hash: + "4ebd325a4b394cff8c57e8317ccf5a8d0e2bdf1b8526f8aad6c8e43d8240621a", + size: 10, + version: 2, + locktime: 0, + vin: [], + vout: [] + } + + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.RawTransactions.decodeRawTransaction(["02000000000000000000"]) + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#decodeScript", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should decode script", done => { + const data = { + asm: "OP_RETURN 5361746f736869204e616b616d6f746f", + type: "nulldata", + p2sh: "bitcoincash:prswx5965nfumux9qng5kj8hw603vcne7q08t8c6jp" + } + + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.RawTransactions.decodeScript([ + "6a105361746f736869204e616b616d6f746f" + ]) + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getRawTransaction", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get raw transaction", done => { + const data = + "020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000" + + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.RawTransactions.getRawTransaction([ + "808d617eccaad4f1397fe07a06ec5ed15a0821cf22a3e0931c0c92aef9e572b6" + ]) + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#sendRawTransaction", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should send raw transaction", done => { + const data = "Error: transaction already in block chain" + + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "post").returns(resolved) + + BITBOX.RawTransactions.sendRawTransaction([ + "020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000" + ]) + .then(result => { + assert.equal(data, result) + }) + .then(done, done) + }) + }) +}) diff --git a/test/Script.js b/test/Script.js index b3e75ff4..eddbfd18 100644 --- a/test/Script.js +++ b/test/Script.js @@ -1,362 +1,445 @@ -let fixtures = require('./fixtures/Script.json') -let chai = require('chai'); -let assert = require('assert'); -let BITBOXCli = require('./../lib/bitbox-cli').default; -let BITBOX = new BITBOXCli(); -let Buffer = require('safe-buffer').Buffer - -describe('#Script', () => { - describe('#decode', () => { - describe('P2PKH scriptSig', () => { - fixtures.decodeScriptSig.forEach((fixture) => { +"use strict" +const fixtures = require("./fixtures/Script.json") +const chai = require("chai") +const assert = require("assert") +const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOX = new BITBOXCli() +const Buffer = require("safe-buffer").Buffer + +describe("#Script", () => { + describe("#decode", () => { + describe("P2PKH scriptSig", () => { + fixtures.decodeScriptSig.forEach(fixture => { it(`should decode scriptSig buffer`, () => { - let decodedScriptSig = BITBOX.Script.decode(Buffer.from(fixture.scriptSigHex, 'hex')); - assert.equal(typeof decodedScriptSig, 'object'); - }); - - it(`should decode scriptSig buffer to cash address ${fixture.cashAddress}`, () => { - let decodedScriptSig = BITBOX.Script.decode(Buffer.from(fixture.scriptSigHex, 'hex')); - let address = BITBOX.HDNode.toCashAddress(BITBOX.ECPair.fromPublicKey(decodedScriptSig[1])); - assert.equal(address, fixture.cashAddress); - }); - - it(`should decode scriptSig buffer to legacy address ${fixture.legacyAddress}`, () => { - let decodedScriptSig = BITBOX.Script.decode(Buffer.from(fixture.scriptSigHex, 'hex')); - let address = BITBOX.HDNode.toLegacyAddress(BITBOX.ECPair.fromPublicKey(decodedScriptSig[1])); - assert.equal(address, fixture.legacyAddress); - }); - }); - }); - - describe('P2PKH scriptPubKey', () => { - fixtures.decodeScriptPubKey.forEach((fixture) => { + const decodedScriptSig = BITBOX.Script.decode( + Buffer.from(fixture.scriptSigHex, "hex") + ) + assert.equal(typeof decodedScriptSig, "object") + }) + + it(`should decode scriptSig buffer to cash address ${ + fixture.cashAddress + }`, () => { + const decodedScriptSig = BITBOX.Script.decode( + Buffer.from(fixture.scriptSigHex, "hex") + ) + const address = BITBOX.HDNode.toCashAddress( + BITBOX.ECPair.fromPublicKey(decodedScriptSig[1]) + ) + assert.equal(address, fixture.cashAddress) + }) + + it(`should decode scriptSig buffer to legacy address ${ + fixture.legacyAddress + }`, () => { + const decodedScriptSig = BITBOX.Script.decode( + Buffer.from(fixture.scriptSigHex, "hex") + ) + const address = BITBOX.HDNode.toLegacyAddress( + BITBOX.ECPair.fromPublicKey(decodedScriptSig[1]) + ) + assert.equal(address, fixture.legacyAddress) + }) + }) + }) + + describe("P2PKH scriptPubKey", () => { + fixtures.decodeScriptPubKey.forEach(fixture => { it(`should decode scriptSig buffer`, () => { - let decodedScriptPubKey = BITBOX.Script.decode(Buffer.from(fixture.scriptPubKeyHex, 'hex')); - assert.equal(decodedScriptPubKey.length, 5); - }); + const decodedScriptPubKey = BITBOX.Script.decode( + Buffer.from(fixture.scriptPubKeyHex, "hex") + ) + assert.equal(decodedScriptPubKey.length, 5) + }) it(`should match hashed pubKey ${fixture.pubKeyHex}`, () => { - let decodedScriptPubKey = BITBOX.Script.decode(Buffer.from(fixture.scriptPubKeyHex, 'hex')); - let data = Buffer.from(fixture.pubKeyHex, 'hex') - let hash160 = BITBOX.Crypto.hash160(data).toString('hex'); - assert.equal(decodedScriptPubKey[2].toString('hex'), hash160); - }); - }); - }); - }); - - describe('#encode', () => { - describe('P2PKH scriptSig', () => { - fixtures.encodeScriptSig.forEach((fixture) => { + const decodedScriptPubKey = BITBOX.Script.decode( + Buffer.from(fixture.scriptPubKeyHex, "hex") + ) + const data = Buffer.from(fixture.pubKeyHex, "hex") + const hash160 = BITBOX.Crypto.hash160(data).toString("hex") + assert.equal(decodedScriptPubKey[2].toString("hex"), hash160) + }) + }) + }) + }) + + describe("#encode", () => { + describe("P2PKH scriptSig", () => { + fixtures.encodeScriptSig.forEach(fixture => { it(`should encode scriptSig chunks to buffer`, () => { - let arr = [ - Buffer.from(fixture.scriptSigChunks[0], 'hex'), - Buffer.from(fixture.scriptSigChunks[1], 'hex') - ]; - let encodedScriptSig = BITBOX.Script.encode(arr); - assert.equal(typeof encodedScriptSig, 'object'); - }); - }); - }); - - describe('P2PKH scriptPubKey', () => { - fixtures.encodeScriptPubKey.forEach((fixture) => { + const arr = [ + Buffer.from(fixture.scriptSigChunks[0], "hex"), + Buffer.from(fixture.scriptSigChunks[1], "hex") + ] + const encodedScriptSig = BITBOX.Script.encode(arr) + assert.equal(typeof encodedScriptSig, "object") + }) + }) + }) + + describe("P2PKH scriptPubKey", () => { + fixtures.encodeScriptPubKey.forEach(fixture => { it(`should encode scriptPubKey buffer`, () => { - let decodedScriptPubKey = BITBOX.Script.decode(Buffer.from(fixture.scriptPubKeyHex, 'hex')); - let compiledScriptPubKey = BITBOX.Script.encode(decodedScriptPubKey); - assert.equal(compiledScriptPubKey.toString('hex'), fixture.scriptPubKeyHex); - }); - }); - }); - }); - - describe('#toASM', () => { - describe('P2PKH scriptSig', () => { - fixtures.scriptSigToASM.forEach((fixture) => { + const decodedScriptPubKey = BITBOX.Script.decode( + Buffer.from(fixture.scriptPubKeyHex, "hex") + ) + const compiledScriptPubKey = BITBOX.Script.encode(decodedScriptPubKey) + assert.equal( + compiledScriptPubKey.toString("hex"), + fixture.scriptPubKeyHex + ) + }) + }) + }) + }) + + describe("#toASM", () => { + describe("P2PKH scriptSig", () => { + fixtures.scriptSigToASM.forEach(fixture => { it(`should encode scriptSig buffer to ${fixture.asm}`, () => { - let arr = [ - Buffer.from(fixture.scriptSigChunks[0], 'hex'), - Buffer.from(fixture.scriptSigChunks[1], 'hex') - ]; - let compiledScriptSig = BITBOX.Script.encode(arr); - let asm = BITBOX.Script.toASM(compiledScriptSig); - assert.equal(asm, fixture.asm); - }); - }); - }); - - describe('P2PKH scriptPubKey', () => { - fixtures.scriptPubKeyToASM.forEach((fixture) => { + const arr = [ + Buffer.from(fixture.scriptSigChunks[0], "hex"), + Buffer.from(fixture.scriptSigChunks[1], "hex") + ] + const compiledScriptSig = BITBOX.Script.encode(arr) + const asm = BITBOX.Script.toASM(compiledScriptSig) + assert.equal(asm, fixture.asm) + }) + }) + }) + + describe("P2PKH scriptPubKey", () => { + fixtures.scriptPubKeyToASM.forEach(fixture => { it(`should compile scriptPubKey buffer to ${fixture.asm}`, () => { - let asm = BITBOX.Script.toASM(Buffer.from(fixture.scriptPubKeyHex, 'hex')); - assert.equal(asm, fixture.asm); - }); - }); - }); - }); - - describe('#fromASM', () => { - describe('P2PKH scriptSig', () => { - fixtures.scriptSigFromASM.forEach((fixture) => { + const asm = BITBOX.Script.toASM( + Buffer.from(fixture.scriptPubKeyHex, "hex") + ) + assert.equal(asm, fixture.asm) + }) + }) + }) + }) + + describe("#fromASM", () => { + describe("P2PKH scriptSig", () => { + fixtures.scriptSigFromASM.forEach(fixture => { it(`should decode scriptSig asm to buffer`, () => { - let buf = BITBOX.Script.fromASM(fixture.asm); - assert.equal(typeof buf, 'object'); - }); - }); - }); - - describe('P2PKH scriptPubKey', () => { - fixtures.scriptPubKeyFromASM.forEach((fixture) => { + const buf = BITBOX.Script.fromASM(fixture.asm) + assert.equal(typeof buf, "object") + }) + }) + }) + + describe("P2PKH scriptPubKey", () => { + fixtures.scriptPubKeyFromASM.forEach(fixture => { it(`should decode scriptPubKey asm to buffer`, () => { - let buf = BITBOX.Script.fromASM(fixture.asm); - assert.equal(typeof buf, 'object'); - }); - }); - }); - }); - - describe('#OPCodes', () => { - for (let opcode in fixtures.opcodes) { + const buf = BITBOX.Script.fromASM(fixture.asm) + assert.equal(typeof buf, "object") + }) + }) + }) + }) + + describe("#OPCodes", () => { + for (const opcode in fixtures.opcodes) { it(`should have OP Code ${opcode}`, () => { - assert.equal(BITBOX.Script.opcodes[opcode], fixtures.opcodes[opcode]); - }); + assert.equal(BITBOX.Script.opcodes[opcode], fixtures.opcodes[opcode]) + }) } - }); + }) - describe('#classifyInput', () => { - fixtures.classifyInput.forEach((fixture) => { + describe("#classifyInput", () => { + fixtures.classifyInput.forEach(fixture => { it(`should classify input type ${fixture.type}`, () => { - let type = BITBOX.Script.classifyInput(BITBOX.Script.fromASM(fixture.script)); - assert.equal(type, fixture.type); - }); - }); - }); - - describe('#classifyOutput', () => { - fixtures.classifyOutput.forEach((fixture) => { + const type = BITBOX.Script.classifyInput( + BITBOX.Script.fromASM(fixture.script) + ) + assert.equal(type, fixture.type) + }) + }) + }) + + describe("#classifyOutput", () => { + fixtures.classifyOutput.forEach(fixture => { it(`should classify ouput type ${fixture.type}`, () => { - let type = BITBOX.Script.classifyOutput(BITBOX.Script.fromASM(fixture.script)); - assert.equal(type, fixture.type); - }); - }); - }); - - describe('#nullDataTemplate', () => { - fixtures.nullDataTemplate.forEach((fixture) => { + const type = BITBOX.Script.classifyOutput( + BITBOX.Script.fromASM(fixture.script) + ) + assert.equal(type, fixture.type) + }) + }) + }) + + describe("#nullDataTemplate", () => { + fixtures.nullDataTemplate.forEach(fixture => { it(`should encode nulldata output`, () => { - let buf = BITBOX.Script.nullData.output.encode(Buffer.from(`${fixture.data}`, 'ascii')); - assert.equal(buf.toString('hex'), fixture.hex); - }); + const buf = BITBOX.Script.nullData.output.encode( + Buffer.from(`${fixture.data}`, "ascii") + ) + assert.equal(buf.toString("hex"), fixture.hex) + }) it(`should decode nulldata output`, () => { - let buf = BITBOX.Script.nullData.output.decode(Buffer.from(`${fixture.hex}`, 'hex')); - assert.equal(buf.toString('ascii'), fixture.data); - }); + const buf = BITBOX.Script.nullData.output.decode( + Buffer.from(`${fixture.hex}`, "hex") + ) + assert.equal(buf.toString("ascii"), fixture.data) + }) it(`should confirm correctly formatted nulldata output`, () => { - let buf = BITBOX.Script.nullData.output.encode(Buffer.from(`${fixture.data}`, 'ascii')); - let valid = BITBOX.Script.nullData.output.check(buf); - assert.equal(valid, true); - }); - }); - }); - - describe('#pubKeyTemplate', () => { - describe('#pubKeyInputTemplate', () => { - fixtures.pubKeyInputTemplate.forEach((fixture) => { + const buf = BITBOX.Script.nullData.output.encode( + Buffer.from(`${fixture.data}`, "ascii") + ) + const valid = BITBOX.Script.nullData.output.check(buf) + assert.equal(valid, true) + }) + }) + }) + + describe("#pubKeyTemplate", () => { + describe("#pubKeyInputTemplate", () => { + fixtures.pubKeyInputTemplate.forEach(fixture => { it(`should encode pubKey input`, () => { - let buf = BITBOX.Script.pubKey.input.encode(Buffer.from(fixture.signature, 'hex')); - assert.equal(buf.toString('hex'), fixture.hex); - }); + const buf = BITBOX.Script.pubKey.input.encode( + Buffer.from(fixture.signature, "hex") + ) + assert.equal(buf.toString("hex"), fixture.hex) + }) it(`should decode pubKey input`, () => { - let buf = BITBOX.Script.pubKey.input.decode(Buffer.from(fixture.hex, 'hex')); - assert.equal(buf.toString('hex'), fixture.signature); - }); + const buf = BITBOX.Script.pubKey.input.decode( + Buffer.from(fixture.hex, "hex") + ) + assert.equal(buf.toString("hex"), fixture.signature) + }) it(`should confirm correctly formatted pubKeyHash input`, () => { - let buf = BITBOX.Script.pubKey.input.encode(Buffer.from(fixture.signature, 'hex')); - let valid = BITBOX.Script.pubKey.input.check(buf); - assert.equal(valid, true); - }); - }); - }); - - describe('#pubKeyOutputTemplate', () => { - fixtures.pubKeyOutputTemplate.forEach((fixture) => { + const buf = BITBOX.Script.pubKey.input.encode( + Buffer.from(fixture.signature, "hex") + ) + const valid = BITBOX.Script.pubKey.input.check(buf) + assert.equal(valid, true) + }) + }) + }) + + describe("#pubKeyOutputTemplate", () => { + fixtures.pubKeyOutputTemplate.forEach(fixture => { it(`should encode pubKey output`, () => { - let buf = BITBOX.Script.pubKey.output.encode(Buffer.from(fixture.pubKey, 'hex')); - assert.equal(buf.toString('hex'), fixture.hex); - }); + const buf = BITBOX.Script.pubKey.output.encode( + Buffer.from(fixture.pubKey, "hex") + ) + assert.equal(buf.toString("hex"), fixture.hex) + }) it(`should decode pubKey output`, () => { - let buf = BITBOX.Script.pubKey.output.decode(Buffer.from(`${fixture.hex}`, 'hex')); - assert.equal(buf.toString('hex'), fixture.pubKey); - }); + const buf = BITBOX.Script.pubKey.output.decode( + Buffer.from(`${fixture.hex}`, "hex") + ) + assert.equal(buf.toString("hex"), fixture.pubKey) + }) it(`should confirm correctly formatted pubKey output`, () => { - let buf = BITBOX.Script.pubKey.output.encode(Buffer.from(fixture.pubKey, 'hex')); - let valid = BITBOX.Script.pubKey.output.check(buf); - assert.equal(valid, true); - }); - }); - }); - }); - - describe('#pubKeyHashTemplate', () => { - describe('#pubKeyHashInputTemplate', () => { - fixtures.pubKeyHashInputTemplate.forEach((fixture) => { + const buf = BITBOX.Script.pubKey.output.encode( + Buffer.from(fixture.pubKey, "hex") + ) + const valid = BITBOX.Script.pubKey.output.check(buf) + assert.equal(valid, true) + }) + }) + }) + }) + + describe("#pubKeyHashTemplate", () => { + describe("#pubKeyHashInputTemplate", () => { + fixtures.pubKeyHashInputTemplate.forEach(fixture => { it(`should encode pubKeyHash input`, () => { - let buf = BITBOX.Script.pubKeyHash.input.encode(Buffer.from(fixture.signature, 'hex'), Buffer.from(fixture.pubKey, 'hex')); - assert.equal(buf.toString('hex'), fixture.hex); - }); + const buf = BITBOX.Script.pubKeyHash.input.encode( + Buffer.from(fixture.signature, "hex"), + Buffer.from(fixture.pubKey, "hex") + ) + assert.equal(buf.toString("hex"), fixture.hex) + }) it(`should decode pubKeyHash input signature`, () => { - let buf = BITBOX.Script.pubKeyHash.input.decode(Buffer.from(fixture.hex, 'hex')); - assert.equal(buf.signature.toString('hex'), fixture.signature); - }); + const buf = BITBOX.Script.pubKeyHash.input.decode( + Buffer.from(fixture.hex, "hex") + ) + assert.equal(buf.signature.toString("hex"), fixture.signature) + }) it(`should decode pubKeyHash input pubkey`, () => { - let buf = BITBOX.Script.pubKeyHash.input.decode(Buffer.from(fixture.hex, 'hex')); - assert.equal(buf.pubKey.toString('hex'), fixture.pubKey); - }); + const buf = BITBOX.Script.pubKeyHash.input.decode( + Buffer.from(fixture.hex, "hex") + ) + assert.equal(buf.pubKey.toString("hex"), fixture.pubKey) + }) it(`should confirm correctly formatted pubKeyHash input`, () => { - let buf = BITBOX.Script.pubKeyHash.input.encode(Buffer.from(fixture.signature, 'hex'), Buffer.from(fixture.pubKey, 'hex')); - let valid = BITBOX.Script.pubKeyHash.input.check(buf); - assert.equal(valid, true); - }); - }); - }); - - describe('#pubKeyHashOutputTemplate', () => { - fixtures.pubKeyHashOutputTemplate.forEach((fixture) => { - let node = BITBOX.HDNode.fromXPriv(fixture.xpriv); - let identifier = BITBOX.HDNode.toIdentifier(node); + const buf = BITBOX.Script.pubKeyHash.input.encode( + Buffer.from(fixture.signature, "hex"), + Buffer.from(fixture.pubKey, "hex") + ) + const valid = BITBOX.Script.pubKeyHash.input.check(buf) + assert.equal(valid, true) + }) + }) + }) + + describe("#pubKeyHashOutputTemplate", () => { + fixtures.pubKeyHashOutputTemplate.forEach(fixture => { + const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const identifier = BITBOX.HDNode.toIdentifier(node) it(`should encode pubKeyHash output`, () => { - let buf = BITBOX.Script.pubKeyHash.output.encode(identifier); - assert.equal(buf.toString('hex'), fixture.hex); - }); + const buf = BITBOX.Script.pubKeyHash.output.encode(identifier) + assert.equal(buf.toString("hex"), fixture.hex) + }) it(`should decode pubKeyHash output`, () => { - let buf = BITBOX.Script.pubKeyHash.output.decode(Buffer.from(`${fixture.hex}`, 'hex')); - assert.equal(buf.toString('hex'), identifier.toString('hex')); - }); + const buf = BITBOX.Script.pubKeyHash.output.decode( + Buffer.from(`${fixture.hex}`, "hex") + ) + assert.equal(buf.toString("hex"), identifier.toString("hex")) + }) it(`should confirm correctly formatted pubKeyHash output`, () => { - let buf = BITBOX.Script.pubKeyHash.output.encode(identifier); - let valid = BITBOX.Script.pubKeyHash.output.check(buf); - assert.equal(valid, true); - }); - }); - }); - }); - - describe('#multisigTemplate', () => { - describe('#multisigInputTemplate', () => { - fixtures.multisigInputTemplate.forEach((fixture) => { + const buf = BITBOX.Script.pubKeyHash.output.encode(identifier) + const valid = BITBOX.Script.pubKeyHash.output.check(buf) + assert.equal(valid, true) + }) + }) + }) + }) + + describe("#multisigTemplate", () => { + describe("#multisigInputTemplate", () => { + fixtures.multisigInputTemplate.forEach(fixture => { it(`should encode multisig input`, () => { - let signatures = fixture.signatures.map((signature) => { - return signature ? Buffer.from(signature, 'hex') : BITBOX.Script.opcodes.OP_0 - }) + const signatures = fixture.signatures.map( + signature => + signature + ? Buffer.from(signature, "hex") + : BITBOX.Script.opcodes.OP_0 + ) - let buf = BITBOX.Script.multisig.input.encode(signatures); - assert.equal(buf.toString('hex'), fixture.hex); - }); + const buf = BITBOX.Script.multisig.input.encode(signatures) + assert.equal(buf.toString("hex"), fixture.hex) + }) it(`should decode multisig input`, () => { - let buf = BITBOX.Script.multisig.input.decode(Buffer.from(fixture.hex, 'hex')); - assert.equal(buf[0].toString('hex'), fixture.signatures[0]); - }); + const buf = BITBOX.Script.multisig.input.decode( + Buffer.from(fixture.hex, "hex") + ) + assert.equal(buf[0].toString("hex"), fixture.signatures[0]) + }) it(`should confirm correctly formatted multisig input`, () => { - let signatures = fixture.signatures.map((signature) => { - return signature ? Buffer.from(signature, 'hex') : BITBOX.Script.opcodes.OP_0 - }) - - let buf = BITBOX.Script.multisig.input.encode(signatures); - let valid = BITBOX.Script.multisig.input.check(buf); - assert.equal(valid, true); - }); - }); - }); - - describe('#multisigOutputTemplate', () => { - fixtures.multisigOutputTemplate.forEach((fixture) => { + const signatures = fixture.signatures.map( + signature => + signature + ? Buffer.from(signature, "hex") + : BITBOX.Script.opcodes.OP_0 + ) + + const buf = BITBOX.Script.multisig.input.encode(signatures) + const valid = BITBOX.Script.multisig.input.check(buf) + assert.equal(valid, true) + }) + }) + }) + + describe("#multisigOutputTemplate", () => { + fixtures.multisigOutputTemplate.forEach(fixture => { it(`should encode multisig output`, () => { - let pubKeys = fixture.pubKeys.map((p) => { return Buffer.from(p, 'hex') }) - let m = pubKeys.length - let buf = BITBOX.Script.multisig.output.encode(m, pubKeys); + const pubKeys = fixture.pubKeys.map(p => Buffer.from(p, "hex")) + const m = pubKeys.length + const buf = BITBOX.Script.multisig.output.encode(m, pubKeys) - assert.equal(buf.toString('hex'), fixture.hex); - }); + assert.equal(buf.toString("hex"), fixture.hex) + }) it(`should decode multisig output`, () => { - let output = BITBOX.Script.multisig.output.decode(Buffer.from(`${fixture.hex}`, 'hex')); - assert.equal(output.m, fixture.pubKeys.length); - }); + const output = BITBOX.Script.multisig.output.decode( + Buffer.from(`${fixture.hex}`, "hex") + ) + assert.equal(output.m, fixture.pubKeys.length) + }) it(`should confirm correctly formatted multisig output`, () => { - let pubKeys = fixture.pubKeys.map((p) => { return Buffer.from(p, 'hex') }) - let m = pubKeys.length - let buf = BITBOX.Script.multisig.output.encode(m, pubKeys); - let valid = BITBOX.Script.multisig.output.check(buf); - assert.equal(valid, true); - }); - }); - }); - }); - - describe('#scriptHashTemplate', () => { - describe('#scriptHashInputTemplate', () => { - fixtures.scriptHashInputTemplate.forEach((fixture) => { + const pubKeys = fixture.pubKeys.map(p => Buffer.from(p, "hex")) + const m = pubKeys.length + const buf = BITBOX.Script.multisig.output.encode(m, pubKeys) + const valid = BITBOX.Script.multisig.output.check(buf) + assert.equal(valid, true) + }) + }) + }) + }) + + describe("#scriptHashTemplate", () => { + describe("#scriptHashInputTemplate", () => { + fixtures.scriptHashInputTemplate.forEach(fixture => { it(`should encode scriptHash input`, () => { - let buf = BITBOX.Script.scriptHash.input.encode(BITBOX.Script.fromASM(fixture.redeemScriptSig), BITBOX.Script.fromASM(fixture.redeemScript)); - assert.equal(buf.toString('hex'), fixture.hex); - }); + const buf = BITBOX.Script.scriptHash.input.encode( + BITBOX.Script.fromASM(fixture.redeemScriptSig), + BITBOX.Script.fromASM(fixture.redeemScript) + ) + assert.equal(buf.toString("hex"), fixture.hex) + }) it(`should decode scriptHash input`, () => { - let redeemScriptSig = BITBOX.Script.fromASM(fixture.redeemScriptSig) - let redeemScript = BITBOX.Script.fromASM(fixture.redeemScript) - assert.deepEqual(BITBOX.Script.scriptHash.input.decode(Buffer.from(fixture.hex, 'hex')), { - redeemScriptSig: redeemScriptSig, - redeemScript: redeemScript - }) - }); + const redeemScriptSig = BITBOX.Script.fromASM(fixture.redeemScriptSig) + const redeemScript = BITBOX.Script.fromASM(fixture.redeemScript) + assert.deepEqual( + BITBOX.Script.scriptHash.input.decode( + Buffer.from(fixture.hex, "hex") + ), + { + redeemScriptSig: redeemScriptSig, + redeemScript: redeemScript + } + ) + }) it(`should confirm correctly formatted scriptHash input`, () => { - let buf = BITBOX.Script.scriptHash.input.encode(BITBOX.Script.fromASM(fixture.redeemScriptSig), BITBOX.Script.fromASM(fixture.redeemScript)); - let valid = BITBOX.Script.scriptHash.input.check(buf); - assert.equal(valid, true); - }); - }); - }); - - describe('#scriptHashOutputTemplate', () => { - fixtures.scriptHashOutputTemplate.forEach((fixture) => { + const buf = BITBOX.Script.scriptHash.input.encode( + BITBOX.Script.fromASM(fixture.redeemScriptSig), + BITBOX.Script.fromASM(fixture.redeemScript) + ) + const valid = BITBOX.Script.scriptHash.input.check(buf) + assert.equal(valid, true) + }) + }) + }) + + describe("#scriptHashOutputTemplate", () => { + fixtures.scriptHashOutputTemplate.forEach(fixture => { it(`should encode scriptHash output`, () => { - let redeemScript = BITBOX.Script.fromASM(fixture.output); - let scriptHash = BITBOX.Crypto.hash160(redeemScript); - let buf = BITBOX.Script.scriptHash.output.encode(scriptHash); + const redeemScript = BITBOX.Script.fromASM(fixture.output) + const scriptHash = BITBOX.Crypto.hash160(redeemScript) + const buf = BITBOX.Script.scriptHash.output.encode(scriptHash) - assert.equal(buf.toString('hex'), fixture.hex); - }); + assert.equal(buf.toString("hex"), fixture.hex) + }) it(`should decode scriptHash output`, () => { - let redeemScript = BITBOX.Script.fromASM(fixture.output); - let scriptHash = BITBOX.Crypto.hash160(redeemScript); - let buf = BITBOX.Script.scriptHash.output.decode(Buffer.from(`${fixture.hex}`, 'hex')); + const redeemScript = BITBOX.Script.fromASM(fixture.output) + const scriptHash = BITBOX.Crypto.hash160(redeemScript) + const buf = BITBOX.Script.scriptHash.output.decode( + Buffer.from(`${fixture.hex}`, "hex") + ) assert.deepEqual(buf, scriptHash) - }); + }) it(`should confirm correctly formatted scriptHash output`, () => { - let redeemScript = BITBOX.Script.fromASM(fixture.output); - let scriptHash = BITBOX.Crypto.hash160(redeemScript); - let buf = BITBOX.Script.scriptHash.output.encode(scriptHash); - let valid = BITBOX.Script.scriptHash.output.check(buf); - assert.equal(valid, true); - }); - }); - }); - }); -}); + const redeemScript = BITBOX.Script.fromASM(fixture.output) + const scriptHash = BITBOX.Crypto.hash160(redeemScript) + const buf = BITBOX.Script.scriptHash.output.encode(scriptHash) + const valid = BITBOX.Script.scriptHash.output.check(buf) + assert.equal(valid, true) + }) + }) + }) + }) +}) diff --git a/test/Transaction.js b/test/Transaction.js index 0774905e..17b1b5a0 100644 --- a/test/Transaction.js +++ b/test/Transaction.js @@ -1,31 +1,36 @@ -let chai = require('chai'); -let assert = require('assert'); -let BITBOXCli = require('./../lib/bitbox-cli').default; -let BITBOX = new BITBOXCli(); -let axios = require('axios'); -let sinon = require('sinon'); +"use strict" +const chai = require("chai") +const assert = require("assert") +const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOX = new BITBOXCli() +const axios = require("axios") +const sinon = require("sinon") -describe('#Transaction', () => { - describe('#details', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); +describe("#Transaction", () => { + describe("#details", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) - it('should get transaction details', (done) => { - let data = { - txid: 'a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8', + it("should get transaction details", done => { + const data = { + txid: + "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8", version: 1, locktime: 0, - vin: - [ { coinbase: '04ffff001d029804', sequence: 4294967295, n: 0 } ], - vout: - [ { value: '50.00000000', - n: 0, - scriptPubKey: [Object], - spentTxId: null, - spentIndex: null, - spentHeight: null } ], - blockhash: '000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0', + vin: [{ coinbase: "04ffff001d029804", sequence: 4294967295, n: 0 }], + vout: [ + { + value: "50.00000000", + n: 0, + scriptPubKey: [Object], + spentTxId: null, + spentIndex: null, + spentHeight: null + } + ], + blockhash: + "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", blockheight: 507, confirmations: 528399, time: 1231973656, @@ -33,18 +38,17 @@ describe('#Transaction', () => { isCoinBase: true, valueOut: 50, size: 135 - }; - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); + } + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) - BITBOX.Transaction.details('a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8') - .then((result) => { - assert.deepEqual( - data, - result - ); + BITBOX.Transaction.details( + "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8" + ) + .then(result => { + assert.deepEqual(data, result) }) - .then(done, done); - }); - }); -}); + .then(done, done) + }) + }) +}) diff --git a/test/TransactionBuilder.js b/test/TransactionBuilder.js index 7fdeb0a7..58060a1c 100644 --- a/test/TransactionBuilder.js +++ b/test/TransactionBuilder.js @@ -1,579 +1,900 @@ -let fixtures = require('./fixtures/TransactionBuilder.json') -let chai = require('chai'); -let assert = require('assert'); -let BITBOXCli = require('./../lib/bitbox-cli').default; -let BITBOX = new BITBOXCli(); -let Buffer = require('safe-buffer').Buffer +"use strict" +const fixtures = require("./fixtures/TransactionBuilder.json") +const chai = require("chai") +const assert = require("assert") +const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOX = new BITBOXCli() +const Buffer = require("safe-buffer").Buffer - -describe('#TransactionBuilder', () => { - describe('#hashTypes', () => { - let transactionBuilder = new BITBOX.TransactionBuilder('bitcoincash'); - fixtures.hashTypes.forEach((fixture) => { +describe("#TransactionBuilder", () => { + describe("#hashTypes", () => { + const transactionBuilder = new BITBOX.TransactionBuilder("bitcoincash") + fixtures.hashTypes.forEach(fixture => { it(`should match hash type`, () => { - assert.equal(fixture[Object.keys(fixture)[0]], transactionBuilder.hashTypes[Object.keys(fixture)[0]]); - }); - }); - }); + assert.equal( + fixture[Object.keys(fixture)[0]], + transactionBuilder.hashTypes[Object.keys(fixture)[0]] + ) + }) + }) + }) - describe('#P2PK', () => { - describe('#toOne', () => { - describe('#Mainnet', () => { - fixtures.scripts.p2pk.toOne.mainnet.forEach((fixture) => { + describe("#P2PK", () => { + describe("#toOne", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2pk.toOne.mainnet.forEach(fixture => { it(`should create 1-to-1 P2PK transaction on mainnet`, () => { - let node = BITBOX.HDNode.fromXPriv(fixture.xpriv); - let transactionBuilder = new BITBOX.TransactionBuilder(); - let originalAmount = fixture.amount; - let txid = fixture.txHash; - let pubKey = BITBOX.HDNode.toPublicKey(node); - let buf = BITBOX.Script.pubKey.output.encode(pubKey); - transactionBuilder.addInput(txid, 0, transactionBuilder.DEFAULT_SEQUENCE, buf); - let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 3 }); - let sendAmount = originalAmount - byteCount; - transactionBuilder.addOutput(buf, sendAmount); - let keyPair = BITBOX.HDNode.toKeyPair(node); - let redeemScript; - transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); - let tx = transactionBuilder.build(); - let hex = tx.toHex(); - assert.equal(hex, fixture.hex); - }); - }); - }); + const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new BITBOX.TransactionBuilder() + const originalAmount = fixture.amount + const txid = fixture.txHash + const pubKey = BITBOX.HDNode.toPublicKey(node) + const buf = BITBOX.Script.pubKey.output.encode(pubKey) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + buf + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 3 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(buf, sendAmount) + const keyPair = BITBOX.HDNode.toKeyPair(node) + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) - describe('#Testnet', () => { - fixtures.scripts.p2pk.toOne.testnet.forEach((fixture) => { + describe("#Testnet", () => { + fixtures.scripts.p2pk.toOne.testnet.forEach(fixture => { it(`should create 1-to-1 P2PK transaction on testnet`, () => { - let node = BITBOX.HDNode.fromXPriv(fixture.xpriv); - let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); - let originalAmount = fixture.amount; - let txid = fixture.txHash; - let pubKey = BITBOX.HDNode.toPublicKey(node); - let buf = BITBOX.Script.pubKey.output.encode(pubKey); - transactionBuilder.addInput(txid, 0, transactionBuilder.DEFAULT_SEQUENCE, buf); - let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 3 }, { P2PKH: 3 }); - let sendAmount = originalAmount - byteCount; - transactionBuilder.addOutput(buf, sendAmount); - let keyPair = BITBOX.HDNode.toKeyPair(node); - let redeemScript; - transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); - let tx = transactionBuilder.build(); - let hex = tx.toHex(); - assert.equal(hex, fixture.hex); - }); - }); - }); - }); + const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const originalAmount = fixture.amount + const txid = fixture.txHash + const pubKey = BITBOX.HDNode.toPublicKey(node) + const buf = BITBOX.Script.pubKey.output.encode(pubKey) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + buf + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 3 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(buf, sendAmount) + const keyPair = BITBOX.HDNode.toKeyPair(node) + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) - describe('#toMany', () => { - describe('#Mainnet', () => { - fixtures.scripts.p2pk.toMany.mainnet.forEach((fixture) => { + describe("#toMany", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2pk.toMany.mainnet.forEach(fixture => { it(`should create 1-to-many P2PK transaction on mainnet`, () => { - let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); - let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); - let node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]); - let transactionBuilder = new BITBOX.TransactionBuilder(); - let originalAmount = fixture.amount; - let txid = fixture.txHash; - let pubKey1 = BITBOX.HDNode.toPublicKey(node1); - let pubKey2 = BITBOX.HDNode.toPublicKey(node2); - let pubKey3 = BITBOX.HDNode.toPublicKey(node3); - let buf1 = BITBOX.Script.pubKey.output.encode(pubKey1); - let buf2 = BITBOX.Script.pubKey.output.encode(pubKey2); - let buf3 = BITBOX.Script.pubKey.output.encode(pubKey3); - transactionBuilder.addInput(txid, 0, transactionBuilder.DEFAULT_SEQUENCE, buf1); - let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 3 }); - let sendAmount = originalAmount - byteCount; - transactionBuilder.addOutput(buf2, Math.floor(sendAmount / 2)); - transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)); - let keyPair = BITBOX.HDNode.toKeyPair(node1); - let redeemScript; - transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); - let tx = transactionBuilder.build(); - let hex = tx.toHex(); - assert.equal(hex, fixture.hex); - }); - }); - }); + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) + const transactionBuilder = new BITBOX.TransactionBuilder() + const originalAmount = fixture.amount + const txid = fixture.txHash + const pubKey1 = BITBOX.HDNode.toPublicKey(node1) + const pubKey2 = BITBOX.HDNode.toPublicKey(node2) + const pubKey3 = BITBOX.HDNode.toPublicKey(node3) + const buf1 = BITBOX.Script.pubKey.output.encode(pubKey1) + const buf2 = BITBOX.Script.pubKey.output.encode(pubKey2) + const buf3 = BITBOX.Script.pubKey.output.encode(pubKey3) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + buf1 + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 3 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(buf2, Math.floor(sendAmount / 2)) + transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) + const keyPair = BITBOX.HDNode.toKeyPair(node1) + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) - describe('#Testnet', () => { - fixtures.scripts.p2pk.toMany.testnet.forEach((fixture) => { + describe("#Testnet", () => { + fixtures.scripts.p2pk.toMany.testnet.forEach(fixture => { it(`should create 1-to-many P2PK transaction on testnet`, () => { - let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); - let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); - let node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]); - let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); - let originalAmount = fixture.amount; - let txid = fixture.txHash; - let pubKey1 = BITBOX.HDNode.toPublicKey(node1); - let pubKey2 = BITBOX.HDNode.toPublicKey(node2); - let pubKey3 = BITBOX.HDNode.toPublicKey(node3); - let buf1 = BITBOX.Script.pubKey.output.encode(pubKey1); - let buf2 = BITBOX.Script.pubKey.output.encode(pubKey2); - let buf3 = BITBOX.Script.pubKey.output.encode(pubKey3); - transactionBuilder.addInput(txid, 0, transactionBuilder.DEFAULT_SEQUENCE, buf1); - let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 3 }, { P2PKH: 3 }); - let sendAmount = originalAmount - byteCount; - transactionBuilder.addOutput(buf2, Math.floor(sendAmount / 2)); - transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)); - let keyPair = BITBOX.HDNode.toKeyPair(node1); - let redeemScript; - transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); - let tx = transactionBuilder.build(); - let hex = tx.toHex(); - assert.equal(hex, fixture.hex); - }); - }); - }); - }); + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) + const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const originalAmount = fixture.amount + const txid = fixture.txHash + const pubKey1 = BITBOX.HDNode.toPublicKey(node1) + const pubKey2 = BITBOX.HDNode.toPublicKey(node2) + const pubKey3 = BITBOX.HDNode.toPublicKey(node3) + const buf1 = BITBOX.Script.pubKey.output.encode(pubKey1) + const buf2 = BITBOX.Script.pubKey.output.encode(pubKey2) + const buf3 = BITBOX.Script.pubKey.output.encode(pubKey3) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + buf1 + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 3 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(buf2, Math.floor(sendAmount / 2)) + transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) + const keyPair = BITBOX.HDNode.toKeyPair(node1) + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) - describe('#manyToMany', () => { - describe('#Mainnet', () => { - fixtures.scripts.p2pk.manyToMany.mainnet.forEach((fixture) => { + describe("#manyToMany", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2pk.manyToMany.mainnet.forEach(fixture => { it(`should create many-to-many P2PK transaction on mainnet`, () => { - let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); - let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); - let node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]); - let node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]); - let transactionBuilder = new BITBOX.TransactionBuilder(); - let originalAmount = fixture.amount; - let txid = fixture.txHash; - let pubKey1 = BITBOX.HDNode.toPublicKey(node1); - let pubKey2 = BITBOX.HDNode.toPublicKey(node2); - let pubKey3 = BITBOX.HDNode.toPublicKey(node3); - let pubKey4 = BITBOX.HDNode.toPublicKey(node4); - let buf1 = BITBOX.Script.pubKey.output.encode(pubKey1); - let buf2 = BITBOX.Script.pubKey.output.encode(pubKey2); - let buf3 = BITBOX.Script.pubKey.output.encode(pubKey3); - let buf4 = BITBOX.Script.pubKey.output.encode(pubKey4); - transactionBuilder.addInput(txid, 0, transactionBuilder.DEFAULT_SEQUENCE, buf1); - transactionBuilder.addInput(txid, 1, transactionBuilder.DEFAULT_SEQUENCE, buf2); - let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 3 }, { P2PKH: 3 }); - let sendAmount = originalAmount - byteCount; - transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)); - transactionBuilder.addOutput(buf4, Math.floor(sendAmount / 2)); - let keyPair1 = BITBOX.HDNode.toKeyPair(node1); - let keyPair2 = BITBOX.HDNode.toKeyPair(node2); - let redeemScript; - transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount / 2); - transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount / 2); - let tx = transactionBuilder.build(); - let hex = tx.toHex(); - assert.equal(hex, fixture.hex); - }); - }); - }); + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) + const node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]) + const transactionBuilder = new BITBOX.TransactionBuilder() + const originalAmount = fixture.amount + const txid = fixture.txHash + const pubKey1 = BITBOX.HDNode.toPublicKey(node1) + const pubKey2 = BITBOX.HDNode.toPublicKey(node2) + const pubKey3 = BITBOX.HDNode.toPublicKey(node3) + const pubKey4 = BITBOX.HDNode.toPublicKey(node4) + const buf1 = BITBOX.Script.pubKey.output.encode(pubKey1) + const buf2 = BITBOX.Script.pubKey.output.encode(pubKey2) + const buf3 = BITBOX.Script.pubKey.output.encode(pubKey3) + const buf4 = BITBOX.Script.pubKey.output.encode(pubKey4) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + buf1 + ) + transactionBuilder.addInput( + txid, + 1, + transactionBuilder.DEFAULT_SEQUENCE, + buf2 + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 3 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) + transactionBuilder.addOutput(buf4, Math.floor(sendAmount / 2)) + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + let redeemScript + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) - describe('#Testnet', () => { - fixtures.scripts.p2pk.manyToMany.testnet.forEach((fixture) => { + describe("#Testnet", () => { + fixtures.scripts.p2pk.manyToMany.testnet.forEach(fixture => { it(`should create many-to-many P2PK transaction on testnet`, () => { - let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); - let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); - let node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]); - let node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]); - let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); - let originalAmount = fixture.amount; - let txid = fixture.txHash; - let pubKey1 = BITBOX.HDNode.toPublicKey(node1); - let pubKey2 = BITBOX.HDNode.toPublicKey(node2); - let pubKey3 = BITBOX.HDNode.toPublicKey(node3); - let pubKey4 = BITBOX.HDNode.toPublicKey(node4); - let buf1 = BITBOX.Script.pubKey.output.encode(pubKey1); - let buf2 = BITBOX.Script.pubKey.output.encode(pubKey2); - let buf3 = BITBOX.Script.pubKey.output.encode(pubKey3); - let buf4 = BITBOX.Script.pubKey.output.encode(pubKey4); - transactionBuilder.addInput(txid, 0, transactionBuilder.DEFAULT_SEQUENCE, buf1); - transactionBuilder.addInput(txid, 1, transactionBuilder.DEFAULT_SEQUENCE, buf2); - let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 3 }, { P2PKH: 3 }); - let sendAmount = originalAmount - byteCount; - transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)); - transactionBuilder.addOutput(buf4, Math.floor(sendAmount / 2)); - let keyPair1 = BITBOX.HDNode.toKeyPair(node1); - let keyPair2 = BITBOX.HDNode.toKeyPair(node2); - let redeemScript; - transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount / 2); - transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount / 2); - let tx = transactionBuilder.build(); - let hex = tx.toHex(); - assert.equal(hex, fixture.hex); - }); - }); - }); - }); + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) + const node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]) + const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const originalAmount = fixture.amount + const txid = fixture.txHash + const pubKey1 = BITBOX.HDNode.toPublicKey(node1) + const pubKey2 = BITBOX.HDNode.toPublicKey(node2) + const pubKey3 = BITBOX.HDNode.toPublicKey(node3) + const pubKey4 = BITBOX.HDNode.toPublicKey(node4) + const buf1 = BITBOX.Script.pubKey.output.encode(pubKey1) + const buf2 = BITBOX.Script.pubKey.output.encode(pubKey2) + const buf3 = BITBOX.Script.pubKey.output.encode(pubKey3) + const buf4 = BITBOX.Script.pubKey.output.encode(pubKey4) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + buf1 + ) + transactionBuilder.addInput( + txid, + 1, + transactionBuilder.DEFAULT_SEQUENCE, + buf2 + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 3 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) + transactionBuilder.addOutput(buf4, Math.floor(sendAmount / 2)) + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + let redeemScript + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) - describe('#fromMany', () => { - describe('#Mainnet', () => { - fixtures.scripts.p2pk.fromMany.mainnet.forEach((fixture) => { + describe("#fromMany", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2pk.fromMany.mainnet.forEach(fixture => { it(`should create many-to-1 P2PK transaction on mainnet`, () => { - let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); - let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); - let node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]); - let transactionBuilder = new BITBOX.TransactionBuilder(); - let originalAmount = fixture.amount; - let txid = fixture.txHash; - let pubKey1 = BITBOX.HDNode.toPublicKey(node1); - let pubKey2 = BITBOX.HDNode.toPublicKey(node2); - let pubKey3 = BITBOX.HDNode.toPublicKey(node3); - let buf1 = BITBOX.Script.pubKey.output.encode(pubKey1); - let buf2 = BITBOX.Script.pubKey.output.encode(pubKey2); - let buf3 = BITBOX.Script.pubKey.output.encode(pubKey3); - transactionBuilder.addInput(txid, 0, transactionBuilder.DEFAULT_SEQUENCE, buf1); - transactionBuilder.addInput(txid, 1, transactionBuilder.DEFAULT_SEQUENCE, buf2); - let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 3 }, { P2PKH: 3 }); - let sendAmount = originalAmount - byteCount; - transactionBuilder.addOutput(buf3, sendAmount); - let keyPair1 = BITBOX.HDNode.toKeyPair(node1); - let keyPair2 = BITBOX.HDNode.toKeyPair(node2); - let redeemScript; - transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount / 2); - transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount / 2); - let tx = transactionBuilder.build(); - let hex = tx.toHex(); - assert.equal(hex, fixture.hex); - }); - }); - }); + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) + const transactionBuilder = new BITBOX.TransactionBuilder() + const originalAmount = fixture.amount + const txid = fixture.txHash + const pubKey1 = BITBOX.HDNode.toPublicKey(node1) + const pubKey2 = BITBOX.HDNode.toPublicKey(node2) + const pubKey3 = BITBOX.HDNode.toPublicKey(node3) + const buf1 = BITBOX.Script.pubKey.output.encode(pubKey1) + const buf2 = BITBOX.Script.pubKey.output.encode(pubKey2) + const buf3 = BITBOX.Script.pubKey.output.encode(pubKey3) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + buf1 + ) + transactionBuilder.addInput( + txid, + 1, + transactionBuilder.DEFAULT_SEQUENCE, + buf2 + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 3 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(buf3, sendAmount) + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + let redeemScript + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) - describe('#Testnet', () => { - fixtures.scripts.p2pk.fromMany.testnet.forEach((fixture) => { + describe("#Testnet", () => { + fixtures.scripts.p2pk.fromMany.testnet.forEach(fixture => { it(`should create many-to-1 P2PK transaction on testnet`, () => { - let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); - let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); - let node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]); - let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); - let originalAmount = fixture.amount; - let txid = fixture.txHash; - let pubKey1 = BITBOX.HDNode.toPublicKey(node1); - let pubKey2 = BITBOX.HDNode.toPublicKey(node2); - let pubKey3 = BITBOX.HDNode.toPublicKey(node3); - let buf1 = BITBOX.Script.pubKey.output.encode(pubKey1); - let buf2 = BITBOX.Script.pubKey.output.encode(pubKey2); - let buf3 = BITBOX.Script.pubKey.output.encode(pubKey3); - transactionBuilder.addInput(txid, 0, transactionBuilder.DEFAULT_SEQUENCE, buf1); - transactionBuilder.addInput(txid, 1, transactionBuilder.DEFAULT_SEQUENCE, buf2); - let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 3 }, { P2PKH: 3 }); - let sendAmount = originalAmount - byteCount; - transactionBuilder.addOutput(buf3, sendAmount); - let keyPair1 = BITBOX.HDNode.toKeyPair(node1); - let keyPair2 = BITBOX.HDNode.toKeyPair(node2); - let redeemScript; - transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount / 2); - transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount / 2); - let tx = transactionBuilder.build(); - let hex = tx.toHex(); - assert.equal(hex, fixture.hex); - }); - }); - }); - }); - }); + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) + const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const originalAmount = fixture.amount + const txid = fixture.txHash + const pubKey1 = BITBOX.HDNode.toPublicKey(node1) + const pubKey2 = BITBOX.HDNode.toPublicKey(node2) + const pubKey3 = BITBOX.HDNode.toPublicKey(node3) + const buf1 = BITBOX.Script.pubKey.output.encode(pubKey1) + const buf2 = BITBOX.Script.pubKey.output.encode(pubKey2) + const buf3 = BITBOX.Script.pubKey.output.encode(pubKey3) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + buf1 + ) + transactionBuilder.addInput( + txid, + 1, + transactionBuilder.DEFAULT_SEQUENCE, + buf2 + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 3 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(buf3, sendAmount) + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + let redeemScript + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) + }) - describe('#P2PKH', () => { - describe('#toOne', () => { - describe('#Mainnet', () => { - fixtures.scripts.p2pkh.toOne.mainnet.forEach((fixture) => { + describe("#P2PKH", () => { + describe("#toOne", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2pkh.toOne.mainnet.forEach(fixture => { it(`should create 1-to-1 P2PKH transaction on mainnet`, () => { - let hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv); - let transactionBuilder = new BITBOX.TransactionBuilder(); - let keyPair = BITBOX.HDNode.toKeyPair(hdnode); - let txHash = fixture.txHash; + const hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new BITBOX.TransactionBuilder() + const keyPair = BITBOX.HDNode.toKeyPair(hdnode) + const txHash = fixture.txHash // original amount of satoshis in vin - let originalAmount = fixture.amount; - transactionBuilder.addInput(txHash, fixture.vout); + const originalAmount = fixture.amount + transactionBuilder.addInput(txHash, fixture.vout) // get byte count to calculate fee. paying 1 sat/byte - let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 1 }); + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 1 } + ) // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - let sendAmount = originalAmount - byteCount; + const sendAmount = originalAmount - byteCount // add output w/ address and amount to send let redeemScript - transactionBuilder.addOutput(fixture.outputs[0], sendAmount); - transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); + transactionBuilder.addOutput(fixture.outputs[0], sendAmount) + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) // build tx - let tx = transactionBuilder.build(); + const tx = transactionBuilder.build() // output rawhex - let hex = tx.toHex(); - assert.equal(hex, fixture.hex); - }); - }); - }); + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) - describe('#Testnet', () => { - fixtures.scripts.p2pkh.toOne.testnet.forEach((fixture) => { + describe("#Testnet", () => { + fixtures.scripts.p2pkh.toOne.testnet.forEach(fixture => { it(`should create 1-to-1 P2PKH transaction on testnet`, () => { - let hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv, 'testnet'); - let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); - let keyPair = BITBOX.HDNode.toKeyPair(hdnode); - let txHash = fixture.txHash; + const hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv, "testnet") + const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const keyPair = BITBOX.HDNode.toKeyPair(hdnode) + const txHash = fixture.txHash // original amount of satoshis in vin - let originalAmount = fixture.amount; - transactionBuilder.addInput(txHash, fixture.vout); + const originalAmount = fixture.amount + transactionBuilder.addInput(txHash, fixture.vout) // get byte count to calculate fee. paying 1 sat/byte - let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 1 }); + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 1 } + ) // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - let sendAmount = originalAmount - (byteCount * 15); + const sendAmount = originalAmount - byteCount * 15 // add output w/ address and amount to send let redeemScript - transactionBuilder.addOutput(fixture.outputs[0], sendAmount); - transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); + transactionBuilder.addOutput(fixture.outputs[0], sendAmount) + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) // build tx - let tx = transactionBuilder.build(); + const tx = transactionBuilder.build() // output rawhex - let hex = tx.toHex(); - assert.equal(hex, fixture.hex); - }); - }); - }); - }); + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) - describe('#toMany', () => { - describe('#Mainnet', () => { - fixtures.scripts.p2pkh.toMany.mainnet.forEach((fixture) => { + describe("#toMany", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2pkh.toMany.mainnet.forEach(fixture => { it(`should create 1-to-2 P2PKH transaction on mainnet`, () => { - let hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv); - let transactionBuilder = new BITBOX.TransactionBuilder(); - let keyPair = BITBOX.HDNode.toKeyPair(hdnode); - let txHash = fixture.txHash; + const hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new BITBOX.TransactionBuilder() + const keyPair = BITBOX.HDNode.toKeyPair(hdnode) + const txHash = fixture.txHash // original amount of satoshis in vin - let originalAmount = fixture.amount; - transactionBuilder.addInput(txHash, fixture.vout); + const originalAmount = fixture.amount + transactionBuilder.addInput(txHash, fixture.vout) // get byte count to calculate fee. paying 1 sat/byte - let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 2 }); + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 2 } + ) // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - let sendAmount = originalAmount - byteCount; + const sendAmount = originalAmount - byteCount // add output w/ address and amount to send - transactionBuilder.addOutput(fixture.outputs[0], Math.floor(sendAmount / 2)); - transactionBuilder.addOutput(fixture.outputs[1], Math.floor(sendAmount / 2)); + transactionBuilder.addOutput( + fixture.outputs[0], + Math.floor(sendAmount / 2) + ) + transactionBuilder.addOutput( + fixture.outputs[1], + Math.floor(sendAmount / 2) + ) let redeemScript - transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) // build tx - let tx = transactionBuilder.build(); + const tx = transactionBuilder.build() // output rawhex - let hex = tx.toHex(); - assert.equal(hex, fixture.hex); - }); - }); - }); + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) - describe('#Testnet', () => { - fixtures.scripts.p2pkh.toMany.testnet.forEach((fixture) => { + describe("#Testnet", () => { + fixtures.scripts.p2pkh.toMany.testnet.forEach(fixture => { // TODO pass in tesnet network config it(`should create 1-to-2 P2PKH transaction on testnet`, () => { - let hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv); - let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); - let keyPair = BITBOX.HDNode.toKeyPair(hdnode); - let txHash = fixture.txHash; + const hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const keyPair = BITBOX.HDNode.toKeyPair(hdnode) + const txHash = fixture.txHash // original amount of satoshis in vin - let originalAmount = fixture.amount; - transactionBuilder.addInput(txHash, fixture.vout); + const originalAmount = fixture.amount + transactionBuilder.addInput(txHash, fixture.vout) // get byte count to calculate fee. paying 1 sat/byte - let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 2 }); + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 2 } + ) // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - let sendAmount = originalAmount - (byteCount * 15); + const sendAmount = originalAmount - byteCount * 15 // add output w/ address and amount to send - transactionBuilder.addOutput(fixture.outputs[0], Math.floor(sendAmount / 2)); - transactionBuilder.addOutput(fixture.outputs[1], Math.floor(sendAmount / 2)); + transactionBuilder.addOutput( + fixture.outputs[0], + Math.floor(sendAmount / 2) + ) + transactionBuilder.addOutput( + fixture.outputs[1], + Math.floor(sendAmount / 2) + ) let redeemScript - transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) // build tx - let tx = transactionBuilder.build(); + const tx = transactionBuilder.build() // output rawhex - let hex = tx.toHex(); - assert.equal(hex, fixture.hex); - }); - }); - }); - }); + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) - describe('#manyToMany', () => { - describe('#Mainnet', () => { - fixtures.scripts.p2pkh.manyToMany.mainnet.forEach((fixture) => { + describe("#manyToMany", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2pkh.manyToMany.mainnet.forEach(fixture => { it(`should create 2-to-2 P2PKH transaction on mainnet`, () => { - let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); - let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); - let transactionBuilder = new BITBOX.TransactionBuilder(); - let txHash = fixture.txHash; - let originalAmount = fixture.amounts[0] + fixture.amounts[1]; - transactionBuilder.addInput(txHash, 0); - transactionBuilder.addInput(txHash, 1); - let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 2 }); - let sendAmount = originalAmount - byteCount; - transactionBuilder.addOutput(fixture.outputs[0], Math.floor(sendAmount / 2)); - transactionBuilder.addOutput(fixture.outputs[1], Math.floor(sendAmount / 2)); - let keyPair1 = BITBOX.HDNode.toKeyPair(node1); - let keyPair2 = BITBOX.HDNode.toKeyPair(node2); - let redeemScript; - transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); - transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); - let tx = transactionBuilder.build(); - let hex = tx.toHex(); - assert.equal(hex, fixture.hex); - }); - }); - }); + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder = new BITBOX.TransactionBuilder() + const txHash = fixture.txHash + const originalAmount = fixture.amounts[0] + fixture.amounts[1] + transactionBuilder.addInput(txHash, 0) + transactionBuilder.addInput(txHash, 1) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 2 }, + { P2PKH: 2 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput( + fixture.outputs[0], + Math.floor(sendAmount / 2) + ) + transactionBuilder.addOutput( + fixture.outputs[1], + Math.floor(sendAmount / 2) + ) + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + let redeemScript + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[0] + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[1] + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) - describe('#Testnet', () => { - fixtures.scripts.p2pkh.manyToMany.testnet.forEach((fixture) => { + describe("#Testnet", () => { + fixtures.scripts.p2pkh.manyToMany.testnet.forEach(fixture => { it(`should create 2-to-2 P2PKH transaction on testnet`, () => { - let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); - let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); - let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); - let txHash = fixture.txHash; - let originalAmount = fixture.amounts[0] + fixture.amounts[1]; - transactionBuilder.addInput(txHash, 0); - transactionBuilder.addInput(txHash, 1); - let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 2 }); - let sendAmount = originalAmount - (byteCount * 15); - transactionBuilder.addOutput(fixture.outputs[0], Math.floor(sendAmount / 2)); - transactionBuilder.addOutput(fixture.outputs[1], Math.floor(sendAmount / 2)); - let keyPair1 = BITBOX.HDNode.toKeyPair(node1); - let keyPair2 = BITBOX.HDNode.toKeyPair(node2); - let redeemScript; - transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); - transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); - let tx = transactionBuilder.build(); - let hex = tx.toHex(); - assert.equal(hex, fixture.hex); - }); - }); - }); - }); + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const txHash = fixture.txHash + const originalAmount = fixture.amounts[0] + fixture.amounts[1] + transactionBuilder.addInput(txHash, 0) + transactionBuilder.addInput(txHash, 1) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 2 }, + { P2PKH: 2 } + ) + const sendAmount = originalAmount - byteCount * 15 + transactionBuilder.addOutput( + fixture.outputs[0], + Math.floor(sendAmount / 2) + ) + transactionBuilder.addOutput( + fixture.outputs[1], + Math.floor(sendAmount / 2) + ) + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + let redeemScript + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[0] + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[1] + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) - describe('#fromMany', () => { - describe('#Mainnet', () => { - fixtures.scripts.p2pkh.fromMany.mainnet.forEach((fixture) => { + describe("#fromMany", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2pkh.fromMany.mainnet.forEach(fixture => { it(`should create 2-to-1 P2PKH transaction on mainnet`, () => { - let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); - let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); - let transactionBuilder = new BITBOX.TransactionBuilder(); - let txHash = fixture.txHash; - let originalAmount = fixture.amounts[0] + fixture.amounts[1]; - transactionBuilder.addInput(txHash, 0); - transactionBuilder.addInput(txHash, 1); - let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 1 }); - let sendAmount = originalAmount - byteCount; - transactionBuilder.addOutput(fixture.outputs[0], sendAmount); - let keyPair1 = BITBOX.HDNode.toKeyPair(node1); - let keyPair2 = BITBOX.HDNode.toKeyPair(node2); - let redeemScript; - transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); - transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); - let tx = transactionBuilder.build(); - let hex = tx.toHex(); - assert.equal(hex, fixture.hex); - }); - }); - }); + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder = new BITBOX.TransactionBuilder() + const txHash = fixture.txHash + const originalAmount = fixture.amounts[0] + fixture.amounts[1] + transactionBuilder.addInput(txHash, 0) + transactionBuilder.addInput(txHash, 1) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 2 }, + { P2PKH: 1 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(fixture.outputs[0], sendAmount) + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + let redeemScript + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[0] + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[1] + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) - describe('#Testnet', () => { - fixtures.scripts.p2pkh.fromMany.testnet.forEach((fixture) => { + describe("#Testnet", () => { + fixtures.scripts.p2pkh.fromMany.testnet.forEach(fixture => { it(`should create 2-to-1 P2PKH transaction on testnet`, () => { - let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); - let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); - let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); - let txHash = fixture.txHash; - let originalAmount = fixture.amounts[0] + fixture.amounts[1]; - transactionBuilder.addInput(txHash, 0); - transactionBuilder.addInput(txHash, 1); - let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 1 }); - let sendAmount = originalAmount - (byteCount * 15); - transactionBuilder.addOutput(fixture.outputs[0], sendAmount); - let keyPair1 = BITBOX.HDNode.toKeyPair(node1); - let keyPair2 = BITBOX.HDNode.toKeyPair(node2); - let redeemScript; - transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); - transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); - let tx = transactionBuilder.build(); - let hex = tx.toHex(); - assert.equal(hex, fixture.hex); - }); - }); - }); - }); - }); + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const txHash = fixture.txHash + const originalAmount = fixture.amounts[0] + fixture.amounts[1] + transactionBuilder.addInput(txHash, 0) + transactionBuilder.addInput(txHash, 1) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 2 }, + { P2PKH: 1 } + ) + const sendAmount = originalAmount - byteCount * 15 + transactionBuilder.addOutput(fixture.outputs[0], sendAmount) + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + let redeemScript + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[0] + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[1] + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) + }) - describe('#op_return', () => { - describe('#Mainnet', () => { - fixtures.nulldata.mainnet.forEach((fixture) => { + describe("#op_return", () => { + describe("#Mainnet", () => { + fixtures.nulldata.mainnet.forEach(fixture => { it(`should create transaction w/ OP_RETURN output on mainnet`, () => { - let node = BITBOX.HDNode.fromXPriv(fixture.xpriv); - let transactionBuilder = new BITBOX.TransactionBuilder(); - let txHash = fixture.txHash; - let originalAmount = fixture.amount; - transactionBuilder.addInput(txHash, 0); - let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 5 }); - let sendAmount = originalAmount - byteCount; - transactionBuilder.addOutput(fixture.output, sendAmount); - let data = fixture.data; - let buf = BITBOX.Script.nullData.output.encode(Buffer.from(data, 'ascii')); - transactionBuilder.addOutput(buf, 0); - let keyPair = BITBOX.HDNode.toKeyPair(node); - let redeemScript; - transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amount); - let tx = transactionBuilder.build(); - let hex = tx.toHex(); - assert.equal(hex, fixture.hex); - }); - }); - }); + const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new BITBOX.TransactionBuilder() + const txHash = fixture.txHash + const originalAmount = fixture.amount + transactionBuilder.addInput(txHash, 0) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 5 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(fixture.output, sendAmount) + const data = fixture.data + const buf = BITBOX.Script.nullData.output.encode( + Buffer.from(data, "ascii") + ) + transactionBuilder.addOutput(buf, 0) + const keyPair = BITBOX.HDNode.toKeyPair(node) + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amount + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) - describe('#Testnet', () => { - fixtures.nulldata.testnet.forEach((fixture) => { + describe("#Testnet", () => { + fixtures.nulldata.testnet.forEach(fixture => { it(`should create transaction w/ OP_RETURN output on testnet`, () => { - let node = BITBOX.HDNode.fromXPriv(fixture.xpriv); - let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); - let txHash = fixture.txHash; - let originalAmount = fixture.amount; - transactionBuilder.addInput(txHash, 0); - let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 5 }); - let sendAmount = originalAmount - byteCount; - transactionBuilder.addOutput(fixture.output, sendAmount); - let data = fixture.data; - let buf = BITBOX.Script.nullData.output.encode(Buffer.from(data, 'ascii')); - transactionBuilder.addOutput(buf, 0); - let keyPair = BITBOX.HDNode.toKeyPair(node); - let redeemScript; - transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amount); - let tx = transactionBuilder.build(); - let hex = tx.toHex(); - assert.equal(hex, fixture.hex); - }); - }); - }); - }); + const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const txHash = fixture.txHash + const originalAmount = fixture.amount + transactionBuilder.addInput(txHash, 0) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 5 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(fixture.output, sendAmount) + const data = fixture.data + const buf = BITBOX.Script.nullData.output.encode( + Buffer.from(data, "ascii") + ) + transactionBuilder.addOutput(buf, 0) + const keyPair = BITBOX.HDNode.toKeyPair(node) + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amount + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) - describe('#P2PMS', () => { - describe('#toOne', () => { - describe('#Mainnet', () => { - fixtures.scripts.p2ms.toOne.mainnet.forEach((fixture) => { + describe("#P2PMS", () => { + describe("#toOne", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2ms.toOne.mainnet.forEach(fixture => { it(`should create 1-to-1 1-of-2 P2MS transaction on mainnet`, () => { - let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); - let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); - let node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]); - let node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]); - let transactionBuilder = new BITBOX.TransactionBuilder(); - let txid = fixture.txHash; - let originalAmount = fixture.amount; - let pubKey1 = BITBOX.HDNode.toPublicKey(node1); - let pubKey2 = BITBOX.HDNode.toPublicKey(node2); - let buf1 = BITBOX.Script.multisig.output.encode(1, [pubKey1, pubKey2]); - transactionBuilder.addInput(txid, 0, transactionBuilder.DEFAULT_SEQUENCE, buf1); - let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 3 }, { P2PKH: 3 }); - let pubKey3 = BITBOX.HDNode.toPublicKey(node3); - let pubKey4 = BITBOX.HDNode.toPublicKey(node4); - let buf2 = BITBOX.Script.multisig.output.encode(1, [pubKey3, pubKey4]); - let sendAmount = originalAmount - byteCount; - transactionBuilder.addOutput(buf2, sendAmount); + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) + const node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]) + const transactionBuilder = new BITBOX.TransactionBuilder() + const txid = fixture.txHash + const originalAmount = fixture.amount + const pubKey1 = BITBOX.HDNode.toPublicKey(node1) + const pubKey2 = BITBOX.HDNode.toPublicKey(node2) + const buf1 = BITBOX.Script.multisig.output.encode(1, [ + pubKey1, + pubKey2 + ]) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + buf1 + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 3 } + ) + const pubKey3 = BITBOX.HDNode.toPublicKey(node3) + const pubKey4 = BITBOX.HDNode.toPublicKey(node4) + const buf2 = BITBOX.Script.multisig.output.encode(1, [ + pubKey3, + pubKey4 + ]) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(buf2, sendAmount) let redeemScript - let keyPair = BITBOX.HDNode.toKeyPair(node1); - transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); - let tx = transactionBuilder.build(); - let hex = tx.toHex(); - assert.equal(hex, fixture.hex); - }); - }); - }); + const keyPair = BITBOX.HDNode.toKeyPair(node1) + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) // describe('#Testnet', () => { // fixtures.scripts.p2ms.toOne.testnet.forEach((fixture) => { @@ -602,238 +923,340 @@ describe('#TransactionBuilder', () => { // }); // }); // }); - }); + }) - describe('#toMany', () => { - describe('#Mainnet', () => { - fixtures.scripts.p2ms.toMany.mainnet.forEach((fixture) => { + describe("#toMany", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2ms.toMany.mainnet.forEach(fixture => { it(`should create 1-to-2 P2MS transaction on mainnet`, () => { - let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); - let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); - let node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]); - let node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]); - let node5 = BITBOX.HDNode.fromXPriv(fixture.xprivs[4]); - let node6 = BITBOX.HDNode.fromXPriv(fixture.xprivs[5]); - let transactionBuilder = new BITBOX.TransactionBuilder(); - let txid = fixture.txHash; - let originalAmount = fixture.amount; - let pubKey1 = BITBOX.HDNode.toPublicKey(node1); - let pubKey2 = BITBOX.HDNode.toPublicKey(node2); - let buf1 = BITBOX.Script.multisig.output.encode(1, [pubKey1, pubKey2]); - transactionBuilder.addInput(txid, 0, transactionBuilder.DEFAULT_SEQUENCE, buf1); - let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 3 }, { P2PKH: 3 }); - let sendAmount = originalAmount - byteCount; - let pubKey3 = BITBOX.HDNode.toPublicKey(node3); - let pubKey4 = BITBOX.HDNode.toPublicKey(node4); - let buf2 = BITBOX.Script.multisig.output.encode(1, [pubKey3, pubKey4]); - transactionBuilder.addOutput(buf2, Math.floor(sendAmount / 2)); - let pubKey5 = BITBOX.HDNode.toPublicKey(node5); - let pubKey6 = BITBOX.HDNode.toPublicKey(node6); - let buf3 = BITBOX.Script.multisig.output.encode(1, [pubKey5, pubKey6]); - transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)); + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) + const node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]) + const node5 = BITBOX.HDNode.fromXPriv(fixture.xprivs[4]) + const node6 = BITBOX.HDNode.fromXPriv(fixture.xprivs[5]) + const transactionBuilder = new BITBOX.TransactionBuilder() + const txid = fixture.txHash + const originalAmount = fixture.amount + const pubKey1 = BITBOX.HDNode.toPublicKey(node1) + const pubKey2 = BITBOX.HDNode.toPublicKey(node2) + const buf1 = BITBOX.Script.multisig.output.encode(1, [ + pubKey1, + pubKey2 + ]) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + buf1 + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 3 } + ) + const sendAmount = originalAmount - byteCount + const pubKey3 = BITBOX.HDNode.toPublicKey(node3) + const pubKey4 = BITBOX.HDNode.toPublicKey(node4) + const buf2 = BITBOX.Script.multisig.output.encode(1, [ + pubKey3, + pubKey4 + ]) + transactionBuilder.addOutput(buf2, Math.floor(sendAmount / 2)) + const pubKey5 = BITBOX.HDNode.toPublicKey(node5) + const pubKey6 = BITBOX.HDNode.toPublicKey(node6) + const buf3 = BITBOX.Script.multisig.output.encode(1, [ + pubKey5, + pubKey6 + ]) + transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) let redeemScript - let keyPair = BITBOX.HDNode.toKeyPair(node1); - transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); - let tx = transactionBuilder.build(); - let hex = tx.toHex(); - assert.equal(hex, fixture.hex); - }); - }); - }); + const keyPair = BITBOX.HDNode.toKeyPair(node1) + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) - // describe('#Testnet', () => { - // fixtures.scripts.p2ms.toMany.testnet.forEach((fixture) => { - // // TODO pass in tesnet network config - // it(`should create 1-to-2 P2MS transaction on testnet`, () => { - // let hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv); - // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); - // let keyPair = BITBOX.HDNode.toKeyPair(hdnode); - // let txHash = fixture.txHash; - // // original amount of satoshis in vin - // let originalAmount = fixture.amount; - // transactionBuilder.addInput(txHash, fixture.vout); - // // get byte count to calculate fee. paying 1 sat/byte - // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 2 }); - // // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - // let sendAmount = originalAmount - (byteCount * 15); - // // add output w/ address and amount to send - // transactionBuilder.addOutput(fixture.outputs[0], Math.floor(sendAmount / 2)); - // transactionBuilder.addOutput(fixture.outputs[1], Math.floor(sendAmount / 2)); - // let redeemScript - // transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); - // // build tx - // let tx = transactionBuilder.build(); - // // output rawhex - // let hex = tx.toHex(); - // assert.equal(hex, fixture.hex); - // }); - // }); - // }); - }); + // describe('#Testnet', () => { + // fixtures.scripts.p2ms.toMany.testnet.forEach((fixture) => { + // // TODO pass in tesnet network config + // it(`should create 1-to-2 P2MS transaction on testnet`, () => { + // let hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv); + // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); + // let keyPair = BITBOX.HDNode.toKeyPair(hdnode); + // let txHash = fixture.txHash; + // // original amount of satoshis in vin + // let originalAmount = fixture.amount; + // transactionBuilder.addInput(txHash, fixture.vout); + // // get byte count to calculate fee. paying 1 sat/byte + // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 2 }); + // // amount to send to receiver. It's the original amount - 1 sat/byte for tx size + // let sendAmount = originalAmount - (byteCount * 15); + // // add output w/ address and amount to send + // transactionBuilder.addOutput(fixture.outputs[0], Math.floor(sendAmount / 2)); + // transactionBuilder.addOutput(fixture.outputs[1], Math.floor(sendAmount / 2)); + // let redeemScript + // transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); + // // build tx + // let tx = transactionBuilder.build(); + // // output rawhex + // let hex = tx.toHex(); + // assert.equal(hex, fixture.hex); + // }); + // }); + // }); + }) - describe('#manyToMany', () => { - describe('#Mainnet', () => { - fixtures.scripts.p2ms.manyToMany.mainnet.forEach((fixture) => { + describe("#manyToMany", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2ms.manyToMany.mainnet.forEach(fixture => { it(`should create 2-to-2 P2MS transaction on mainnet`, () => { - let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); - let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); - let node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]); - let node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]); - let node5 = BITBOX.HDNode.fromXPriv(fixture.xprivs[4]); - let node6 = BITBOX.HDNode.fromXPriv(fixture.xprivs[5]); - let node7 = BITBOX.HDNode.fromXPriv(fixture.xprivs[6]); - let node8 = BITBOX.HDNode.fromXPriv(fixture.xprivs[7]); - let transactionBuilder = new BITBOX.TransactionBuilder(); - let txid = fixture.txHash; - let originalAmount = fixture.amount; - let pubKey1 = BITBOX.HDNode.toPublicKey(node1); - let pubKey2 = BITBOX.HDNode.toPublicKey(node2); - let buf1 = BITBOX.Script.multisig.output.encode(1, [pubKey1, pubKey2]); - transactionBuilder.addInput(txid, 0, transactionBuilder.DEFAULT_SEQUENCE, buf1); - let pubKey3 = BITBOX.HDNode.toPublicKey(node3); - let pubKey4 = BITBOX.HDNode.toPublicKey(node4); - let buf2 = BITBOX.Script.multisig.output.encode(1, [pubKey3, pubKey4]); - transactionBuilder.addInput(txid, 1, transactionBuilder.DEFAULT_SEQUENCE, buf2); - let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 3 }, { P2PKH: 3 }); - let sendAmount = originalAmount - byteCount; - let pubKey5 = BITBOX.HDNode.toPublicKey(node5); - let pubKey6 = BITBOX.HDNode.toPublicKey(node6); - let buf3 = BITBOX.Script.multisig.output.encode(1, [pubKey5, pubKey6]); - transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)); - let pubKey7 = BITBOX.HDNode.toPublicKey(node7); - let pubKey8 = BITBOX.HDNode.toPublicKey(node8); - let buf4 = BITBOX.Script.multisig.output.encode(1, [pubKey7, pubKey8]); - transactionBuilder.addOutput(buf4, Math.floor(sendAmount / 2)); + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) + const node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]) + const node5 = BITBOX.HDNode.fromXPriv(fixture.xprivs[4]) + const node6 = BITBOX.HDNode.fromXPriv(fixture.xprivs[5]) + const node7 = BITBOX.HDNode.fromXPriv(fixture.xprivs[6]) + const node8 = BITBOX.HDNode.fromXPriv(fixture.xprivs[7]) + const transactionBuilder = new BITBOX.TransactionBuilder() + const txid = fixture.txHash + const originalAmount = fixture.amount + const pubKey1 = BITBOX.HDNode.toPublicKey(node1) + const pubKey2 = BITBOX.HDNode.toPublicKey(node2) + const buf1 = BITBOX.Script.multisig.output.encode(1, [ + pubKey1, + pubKey2 + ]) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + buf1 + ) + const pubKey3 = BITBOX.HDNode.toPublicKey(node3) + const pubKey4 = BITBOX.HDNode.toPublicKey(node4) + const buf2 = BITBOX.Script.multisig.output.encode(1, [ + pubKey3, + pubKey4 + ]) + transactionBuilder.addInput( + txid, + 1, + transactionBuilder.DEFAULT_SEQUENCE, + buf2 + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 3 } + ) + const sendAmount = originalAmount - byteCount + const pubKey5 = BITBOX.HDNode.toPublicKey(node5) + const pubKey6 = BITBOX.HDNode.toPublicKey(node6) + const buf3 = BITBOX.Script.multisig.output.encode(1, [ + pubKey5, + pubKey6 + ]) + transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) + const pubKey7 = BITBOX.HDNode.toPublicKey(node7) + const pubKey8 = BITBOX.HDNode.toPublicKey(node8) + const buf4 = BITBOX.Script.multisig.output.encode(1, [ + pubKey7, + pubKey8 + ]) + transactionBuilder.addOutput(buf4, Math.floor(sendAmount / 2)) let redeemScript - let keyPair1 = BITBOX.HDNode.toKeyPair(node1); - let keyPair2 = BITBOX.HDNode.toKeyPair(node3); - transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount / 2); - transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount / 2); - let tx = transactionBuilder.build(); - let hex = tx.toHex(); - assert.equal(hex, fixture.hex); - }); - }); - }); + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + const keyPair2 = BITBOX.HDNode.toKeyPair(node3) + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) - // describe('#Testnet', () => { - // fixtures.scripts.p2ms.manyToMany.testnet.forEach((fixture) => { - // it(`should create 2-to-2 P2MS transaction on testnet`, () => { - // let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); - // let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); - // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); - // let txHash = fixture.txHash; - // let originalAmount = fixture.amounts[0] + fixture.amounts[1]; - // transactionBuilder.addInput(txHash, 0); - // transactionBuilder.addInput(txHash, 1); - // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 2 }); - // let sendAmount = originalAmount - (byteCount * 15); - // transactionBuilder.addOutput(fixture.outputs[0], Math.floor(sendAmount / 2)); - // transactionBuilder.addOutput(fixture.outputs[1], Math.floor(sendAmount / 2)); - // let keyPair1 = BITBOX.HDNode.toKeyPair(node1); - // let keyPair2 = BITBOX.HDNode.toKeyPair(node2); - // let redeemScript; - // transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); - // transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); - // let tx = transactionBuilder.build(); - // let hex = tx.toHex(); - // assert.equal(hex, fixture.hex); - // }); - // }); - // }); - }); + // describe('#Testnet', () => { + // fixtures.scripts.p2ms.manyToMany.testnet.forEach((fixture) => { + // it(`should create 2-to-2 P2MS transaction on testnet`, () => { + // let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); + // let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); + // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); + // let txHash = fixture.txHash; + // let originalAmount = fixture.amounts[0] + fixture.amounts[1]; + // transactionBuilder.addInput(txHash, 0); + // transactionBuilder.addInput(txHash, 1); + // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 2 }); + // let sendAmount = originalAmount - (byteCount * 15); + // transactionBuilder.addOutput(fixture.outputs[0], Math.floor(sendAmount / 2)); + // transactionBuilder.addOutput(fixture.outputs[1], Math.floor(sendAmount / 2)); + // let keyPair1 = BITBOX.HDNode.toKeyPair(node1); + // let keyPair2 = BITBOX.HDNode.toKeyPair(node2); + // let redeemScript; + // transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); + // transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); + // let tx = transactionBuilder.build(); + // let hex = tx.toHex(); + // assert.equal(hex, fixture.hex); + // }); + // }); + // }); + }) - describe('#fromMany', () => { - describe('#Mainnet', () => { - fixtures.scripts.p2ms.fromMany.mainnet.forEach((fixture) => { + describe("#fromMany", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2ms.fromMany.mainnet.forEach(fixture => { it(`should create 2-to-1 P2MS transaction on mainnet`, () => { - let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); - let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); - let node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]); - let node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]); - let node5 = BITBOX.HDNode.fromXPriv(fixture.xprivs[4]); - let node6 = BITBOX.HDNode.fromXPriv(fixture.xprivs[5]); - let transactionBuilder = new BITBOX.TransactionBuilder(); - let txid = fixture.txHash; - let originalAmount = fixture.amount; - let pubKey1 = BITBOX.HDNode.toPublicKey(node1); - let pubKey2 = BITBOX.HDNode.toPublicKey(node2); - let buf1 = BITBOX.Script.multisig.output.encode(1, [pubKey1, pubKey2]); - transactionBuilder.addInput(txid, 0, transactionBuilder.DEFAULT_SEQUENCE, buf1); - let pubKey3 = BITBOX.HDNode.toPublicKey(node3); - let pubKey4 = BITBOX.HDNode.toPublicKey(node4); - let buf2 = BITBOX.Script.multisig.output.encode(1, [pubKey3, pubKey4]); - transactionBuilder.addInput(txid, 1, transactionBuilder.DEFAULT_SEQUENCE, buf2); - let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 3 }, { P2PKH: 3 }); - let sendAmount = originalAmount - byteCount; - let pubKey5 = BITBOX.HDNode.toPublicKey(node5); - let pubKey6 = BITBOX.HDNode.toPublicKey(node6); - let buf3 = BITBOX.Script.multisig.output.encode(1, [pubKey5, pubKey6]); - transactionBuilder.addOutput(buf3, sendAmount); + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) + const node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]) + const node5 = BITBOX.HDNode.fromXPriv(fixture.xprivs[4]) + const node6 = BITBOX.HDNode.fromXPriv(fixture.xprivs[5]) + const transactionBuilder = new BITBOX.TransactionBuilder() + const txid = fixture.txHash + const originalAmount = fixture.amount + const pubKey1 = BITBOX.HDNode.toPublicKey(node1) + const pubKey2 = BITBOX.HDNode.toPublicKey(node2) + const buf1 = BITBOX.Script.multisig.output.encode(1, [ + pubKey1, + pubKey2 + ]) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + buf1 + ) + const pubKey3 = BITBOX.HDNode.toPublicKey(node3) + const pubKey4 = BITBOX.HDNode.toPublicKey(node4) + const buf2 = BITBOX.Script.multisig.output.encode(1, [ + pubKey3, + pubKey4 + ]) + transactionBuilder.addInput( + txid, + 1, + transactionBuilder.DEFAULT_SEQUENCE, + buf2 + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 3 } + ) + const sendAmount = originalAmount - byteCount + const pubKey5 = BITBOX.HDNode.toPublicKey(node5) + const pubKey6 = BITBOX.HDNode.toPublicKey(node6) + const buf3 = BITBOX.Script.multisig.output.encode(1, [ + pubKey5, + pubKey6 + ]) + transactionBuilder.addOutput(buf3, sendAmount) let redeemScript - let keyPair1 = BITBOX.HDNode.toKeyPair(node1); - let keyPair2 = BITBOX.HDNode.toKeyPair(node3); - transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount / 2); - transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount / 2); - let tx = transactionBuilder.build(); - let hex = tx.toHex(); - assert.equal(hex, fixture.hex); - }); - }); - }); + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + const keyPair2 = BITBOX.HDNode.toKeyPair(node3) + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) - // describe('#Testnet', () => { - // fixtures.scripts.p2ms.fromMany.testnet.forEach((fixture) => { - // it(`should create 2-to-1 P2MS transaction on testnet`, () => { - // let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); - // let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); - // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); - // let txHash = fixture.txHash; - // let originalAmount = fixture.amounts[0] + fixture.amounts[1]; - // transactionBuilder.addInput(txHash, 0); - // transactionBuilder.addInput(txHash, 1); - // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 1 }); - // let sendAmount = originalAmount - (byteCount * 15); - // transactionBuilder.addOutput(fixture.outputs[0], sendAmount); - // let keyPair1 = BITBOX.HDNode.toKeyPair(node1); - // let keyPair2 = BITBOX.HDNode.toKeyPair(node2); - // let redeemScript; - // transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); - // transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); - // let tx = transactionBuilder.build(); - // let hex = tx.toHex(); - // assert.equal(hex, fixture.hex); - // }); - // }); - // }); - }); - }); + // describe('#Testnet', () => { + // fixtures.scripts.p2ms.fromMany.testnet.forEach((fixture) => { + // it(`should create 2-to-1 P2MS transaction on testnet`, () => { + // let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); + // let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); + // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); + // let txHash = fixture.txHash; + // let originalAmount = fixture.amounts[0] + fixture.amounts[1]; + // transactionBuilder.addInput(txHash, 0); + // transactionBuilder.addInput(txHash, 1); + // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 1 }); + // let sendAmount = originalAmount - (byteCount * 15); + // transactionBuilder.addOutput(fixture.outputs[0], sendAmount); + // let keyPair1 = BITBOX.HDNode.toKeyPair(node1); + // let keyPair2 = BITBOX.HDNode.toKeyPair(node2); + // let redeemScript; + // transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); + // transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); + // let tx = transactionBuilder.build(); + // let hex = tx.toHex(); + // assert.equal(hex, fixture.hex); + // }); + // }); + // }); + }) + }) - describe('#P2SH', () => { - describe('#toOne', () => { - describe('#Mainnet', () => { - fixtures.scripts.p2sh.toOne.mainnet.forEach((fixture) => { + describe("#P2SH", () => { + describe("#toOne", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2sh.toOne.mainnet.forEach(fixture => { it(`should create 1-to-1 P2SH transaction on mainnet`, () => { - let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); - let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); - let transactionBuilder = new BITBOX.TransactionBuilder(); - let txid = fixture.txHash; - let originalAmount = fixture.amount; - let identifier1 = BITBOX.HDNode.toIdentifier(node1); - let buf1 = BITBOX.Script.encode([ + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder = new BITBOX.TransactionBuilder() + const txid = fixture.txHash + const originalAmount = fixture.amount + const identifier1 = BITBOX.HDNode.toIdentifier(node1) + const buf1 = BITBOX.Script.encode([ BITBOX.Script.opcodes.OP_DUP, BITBOX.Script.opcodes.OP_HASH160, identifier1, BITBOX.Script.opcodes.OP_EQUALVERIFY, BITBOX.Script.opcodes.OP_CHECKSIG - ]); - let scriptHash1 = BITBOX.Crypto.hash160(buf1); - let data1 = BITBOX.Script.scriptHash.output.encode(scriptHash1); - transactionBuilder.addInput(txid, 0, transactionBuilder.DEFAULT_SEQUENCE, data1); - let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 1 }); - let sendAmount = originalAmount - byteCount; - let identifier2 = BITBOX.HDNode.toIdentifier(node2); - let buf2 = BITBOX.Script.encode([ + ]) + const scriptHash1 = BITBOX.Crypto.hash160(buf1) + const data1 = BITBOX.Script.scriptHash.output.encode(scriptHash1) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + data1 + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 2 }, + { P2PKH: 1 } + ) + const sendAmount = originalAmount - byteCount + const identifier2 = BITBOX.HDNode.toIdentifier(node2) + const buf2 = BITBOX.Script.encode([ BITBOX.Script.opcodes.OP_DUP, BITBOX.Script.opcodes.OP_HASH160, identifier2, @@ -841,17 +1264,23 @@ describe('#TransactionBuilder', () => { BITBOX.Script.opcodes.OP_CHECKSIG ]) - let scriptHash2 = BITBOX.Crypto.hash160(buf2); - let data2 = BITBOX.Script.scriptHash.output.encode(scriptHash2); - transactionBuilder.addOutput(data2, sendAmount); - let keyPair1 = BITBOX.HDNode.toKeyPair(node1); - transactionBuilder.sign(0, keyPair1, buf1, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); - let tx = transactionBuilder.build(); - let hex = tx.toHex(); - assert.equal(hex, fixture.hex); - }); - }); - }); + const scriptHash2 = BITBOX.Crypto.hash160(buf2) + const data2 = BITBOX.Script.scriptHash.output.encode(scriptHash2) + transactionBuilder.addOutput(data2, sendAmount) + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + transactionBuilder.sign( + 0, + keyPair1, + buf1, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) // describe('#Testnet', () => { // fixtures.scripts.p2sh.toOne.testnet.forEach((fixture) => { @@ -880,369 +1309,455 @@ describe('#TransactionBuilder', () => { // }); // }); // }); - }); + }) - describe('#toMany', () => { - describe('#Mainnet', () => { - fixtures.scripts.p2sh.toMany.mainnet.forEach((fixture) => { + describe("#toMany", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2sh.toMany.mainnet.forEach(fixture => { it(`should create 1-to-2 P2SH transaction on mainnet`, () => { - let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); - let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); - let node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]); - let transactionBuilder = new BITBOX.TransactionBuilder(); - let txid = fixture.txHash; - let originalAmount = fixture.amount; - let identifier1 = BITBOX.HDNode.toIdentifier(node1); - let buf1 = BITBOX.Script.encode([ + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) + const transactionBuilder = new BITBOX.TransactionBuilder() + const txid = fixture.txHash + const originalAmount = fixture.amount + const identifier1 = BITBOX.HDNode.toIdentifier(node1) + const buf1 = BITBOX.Script.encode([ BITBOX.Script.opcodes.OP_DUP, BITBOX.Script.opcodes.OP_HASH160, identifier1, BITBOX.Script.opcodes.OP_EQUALVERIFY, BITBOX.Script.opcodes.OP_CHECKSIG - ]); - let scriptHash1 = BITBOX.Crypto.hash160(buf1); - let data1 = BITBOX.Script.scriptHash.output.encode(scriptHash1); - transactionBuilder.addInput(txid, 0, transactionBuilder.DEFAULT_SEQUENCE, data1); - let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 3 }, { P2PKH: 2 }); - let sendAmount = originalAmount - byteCount; - let identifier2 = BITBOX.HDNode.toIdentifier(node2); - let buf2 = BITBOX.Script.encode([ + ]) + const scriptHash1 = BITBOX.Crypto.hash160(buf1) + const data1 = BITBOX.Script.scriptHash.output.encode(scriptHash1) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + data1 + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 2 } + ) + const sendAmount = originalAmount - byteCount + const identifier2 = BITBOX.HDNode.toIdentifier(node2) + const buf2 = BITBOX.Script.encode([ BITBOX.Script.opcodes.OP_DUP, BITBOX.Script.opcodes.OP_HASH160, identifier2, BITBOX.Script.opcodes.OP_EQUALVERIFY, BITBOX.Script.opcodes.OP_CHECKSIG ]) - let scriptHash2 = BITBOX.Crypto.hash160(buf2); - let data2 = BITBOX.Script.scriptHash.output.encode(scriptHash2); - transactionBuilder.addOutput(data2, Math.floor(sendAmount / 2)); - let identifier3 = BITBOX.HDNode.toIdentifier(node3); - let buf3 = BITBOX.Script.encode([ + const scriptHash2 = BITBOX.Crypto.hash160(buf2) + const data2 = BITBOX.Script.scriptHash.output.encode(scriptHash2) + transactionBuilder.addOutput(data2, Math.floor(sendAmount / 2)) + const identifier3 = BITBOX.HDNode.toIdentifier(node3) + const buf3 = BITBOX.Script.encode([ BITBOX.Script.opcodes.OP_DUP, BITBOX.Script.opcodes.OP_HASH160, identifier3, BITBOX.Script.opcodes.OP_EQUALVERIFY, BITBOX.Script.opcodes.OP_CHECKSIG ]) - let scriptHash3 = BITBOX.Crypto.hash160(buf3); - let data3 = BITBOX.Script.scriptHash.output.encode(scriptHash3); - transactionBuilder.addOutput(data3, Math.floor(sendAmount / 2)); - let keyPair1 = BITBOX.HDNode.toKeyPair(node1); - transactionBuilder.sign(0, keyPair1, buf1, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); - let tx = transactionBuilder.build(); - let hex = tx.toHex(); - assert.equal(hex, fixture.hex); - }); - }); - }); + const scriptHash3 = BITBOX.Crypto.hash160(buf3) + const data3 = BITBOX.Script.scriptHash.output.encode(scriptHash3) + transactionBuilder.addOutput(data3, Math.floor(sendAmount / 2)) + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + transactionBuilder.sign( + 0, + keyPair1, + buf1, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) - // describe('#Testnet', () => { - // fixtures.scripts.p2sh.toMany.testnet.forEach((fixture) => { - // // TODO pass in tesnet network config - // it(`should create 1-to-2 P2SH transaction on testnet`, () => { - // let hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv); - // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); - // let keyPair = BITBOX.HDNode.toKeyPair(hdnode); - // let txHash = fixture.txHash; - // // original amount of satoshis in vin - // let originalAmount = fixture.amount; - // transactionBuilder.addInput(txHash, fixture.vout); - // // get byte count to calculate fee. paying 1 sat/byte - // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 2 }); - // // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - // let sendAmount = originalAmount - (byteCount * 15); - // // add output w/ address and amount to send - // transactionBuilder.addOutput(fixture.outputs[0], Math.floor(sendAmount / 2)); - // transactionBuilder.addOutput(fixture.outputs[1], Math.floor(sendAmount / 2)); - // let redeemScript - // transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); - // // build tx - // let tx = transactionBuilder.build(); - // // output rawhex - // let hex = tx.toHex(); - // assert.equal(hex, fixture.hex); - // }); - // }); - // }); - }); + // describe('#Testnet', () => { + // fixtures.scripts.p2sh.toMany.testnet.forEach((fixture) => { + // // TODO pass in tesnet network config + // it(`should create 1-to-2 P2SH transaction on testnet`, () => { + // let hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv); + // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); + // let keyPair = BITBOX.HDNode.toKeyPair(hdnode); + // let txHash = fixture.txHash; + // // original amount of satoshis in vin + // let originalAmount = fixture.amount; + // transactionBuilder.addInput(txHash, fixture.vout); + // // get byte count to calculate fee. paying 1 sat/byte + // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 2 }); + // // amount to send to receiver. It's the original amount - 1 sat/byte for tx size + // let sendAmount = originalAmount - (byteCount * 15); + // // add output w/ address and amount to send + // transactionBuilder.addOutput(fixture.outputs[0], Math.floor(sendAmount / 2)); + // transactionBuilder.addOutput(fixture.outputs[1], Math.floor(sendAmount / 2)); + // let redeemScript + // transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); + // // build tx + // let tx = transactionBuilder.build(); + // // output rawhex + // let hex = tx.toHex(); + // assert.equal(hex, fixture.hex); + // }); + // }); + // }); + }) - describe('#manyToMany', () => { - describe('#Mainnet', () => { - fixtures.scripts.p2sh.manyToMany.mainnet.forEach((fixture) => { + describe("#manyToMany", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2sh.manyToMany.mainnet.forEach(fixture => { it(`should create 2-to-2 P2SH transaction on mainnet`, () => { - let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); - let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); - let node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]); - let node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]); - let transactionBuilder = new BITBOX.TransactionBuilder(); - let txid = fixture.txHash; - let originalAmount = fixture.amount; - let identifier1 = BITBOX.HDNode.toIdentifier(node1); - let buf1 = BITBOX.Script.encode([ + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) + const node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]) + const transactionBuilder = new BITBOX.TransactionBuilder() + const txid = fixture.txHash + const originalAmount = fixture.amount + const identifier1 = BITBOX.HDNode.toIdentifier(node1) + const buf1 = BITBOX.Script.encode([ BITBOX.Script.opcodes.OP_DUP, BITBOX.Script.opcodes.OP_HASH160, identifier1, BITBOX.Script.opcodes.OP_EQUALVERIFY, BITBOX.Script.opcodes.OP_CHECKSIG - ]); - let scriptHash1 = BITBOX.Crypto.hash160(buf1); - let data1 = BITBOX.Script.scriptHash.output.encode(scriptHash1); - transactionBuilder.addInput(txid, 0, transactionBuilder.DEFAULT_SEQUENCE, data1); - let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 5 }, { P2PKH: 5 }); - let sendAmount = originalAmount - byteCount; - let identifier2 = BITBOX.HDNode.toIdentifier(node2); - let buf2 = BITBOX.Script.encode([ + ]) + const scriptHash1 = BITBOX.Crypto.hash160(buf1) + const data1 = BITBOX.Script.scriptHash.output.encode(scriptHash1) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + data1 + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 5 }, + { P2PKH: 5 } + ) + const sendAmount = originalAmount - byteCount + const identifier2 = BITBOX.HDNode.toIdentifier(node2) + const buf2 = BITBOX.Script.encode([ BITBOX.Script.opcodes.OP_DUP, BITBOX.Script.opcodes.OP_HASH160, identifier2, BITBOX.Script.opcodes.OP_EQUALVERIFY, BITBOX.Script.opcodes.OP_CHECKSIG ]) - let scriptHash2 = BITBOX.Crypto.hash160(buf2); - let data2 = BITBOX.Script.scriptHash.output.encode(scriptHash2); - transactionBuilder.addInput(txid, 1, transactionBuilder.DEFAULT_SEQUENCE, data2); - let identifier3 = BITBOX.HDNode.toIdentifier(node3); - let buf3 = BITBOX.Script.encode([ + const scriptHash2 = BITBOX.Crypto.hash160(buf2) + const data2 = BITBOX.Script.scriptHash.output.encode(scriptHash2) + transactionBuilder.addInput( + txid, + 1, + transactionBuilder.DEFAULT_SEQUENCE, + data2 + ) + const identifier3 = BITBOX.HDNode.toIdentifier(node3) + const buf3 = BITBOX.Script.encode([ BITBOX.Script.opcodes.OP_DUP, BITBOX.Script.opcodes.OP_HASH160, identifier3, BITBOX.Script.opcodes.OP_EQUALVERIFY, BITBOX.Script.opcodes.OP_CHECKSIG ]) - let scriptHash3 = BITBOX.Crypto.hash160(buf3); - let data3 = BITBOX.Script.scriptHash.output.encode(scriptHash3); - transactionBuilder.addOutput(data3, Math.floor(sendAmount / 2)); - let identifier4 = BITBOX.HDNode.toIdentifier(node4); - let buf4 = BITBOX.Script.encode([ + const scriptHash3 = BITBOX.Crypto.hash160(buf3) + const data3 = BITBOX.Script.scriptHash.output.encode(scriptHash3) + transactionBuilder.addOutput(data3, Math.floor(sendAmount / 2)) + const identifier4 = BITBOX.HDNode.toIdentifier(node4) + const buf4 = BITBOX.Script.encode([ BITBOX.Script.opcodes.OP_DUP, BITBOX.Script.opcodes.OP_HASH160, identifier4, BITBOX.Script.opcodes.OP_EQUALVERIFY, BITBOX.Script.opcodes.OP_CHECKSIG ]) - let scriptHash4 = BITBOX.Crypto.hash160(buf4); - let data4 = BITBOX.Script.scriptHash.output.encode(scriptHash4); - transactionBuilder.addOutput(data4, Math.floor(sendAmount / 2)); - let keyPair1 = BITBOX.HDNode.toKeyPair(node1); - let keyPair2 = BITBOX.HDNode.toKeyPair(node2); - transactionBuilder.sign(0, keyPair1, buf1, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount / 2); - transactionBuilder.sign(1, keyPair2, buf2, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount / 2); - let tx = transactionBuilder.build(); - let hex = tx.toHex(); - assert.equal(hex, fixture.hex); - }); - }); - }); + const scriptHash4 = BITBOX.Crypto.hash160(buf4) + const data4 = BITBOX.Script.scriptHash.output.encode(scriptHash4) + transactionBuilder.addOutput(data4, Math.floor(sendAmount / 2)) + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + transactionBuilder.sign( + 0, + keyPair1, + buf1, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + transactionBuilder.sign( + 1, + keyPair2, + buf2, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) - // describe('#Testnet', () => { - // fixtures.scripts.p2sh.manyToMany.testnet.forEach((fixture) => { - // it(`should create 2-to-2 P2SH transaction on testnet`, () => { - // let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); - // let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); - // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); - // let txHash = fixture.txHash; - // let originalAmount = fixture.amounts[0] + fixture.amounts[1]; - // transactionBuilder.addInput(txHash, 0); - // transactionBuilder.addInput(txHash, 1); - // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 2 }); - // let sendAmount = originalAmount - (byteCount * 15); - // transactionBuilder.addOutput(fixture.outputs[0], Math.floor(sendAmount / 2)); - // transactionBuilder.addOutput(fixture.outputs[1], Math.floor(sendAmount / 2)); - // let keyPair1 = BITBOX.HDNode.toKeyPair(node1); - // let keyPair2 = BITBOX.HDNode.toKeyPair(node2); - // let redeemScript; - // transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); - // transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); - // let tx = transactionBuilder.build(); - // let hex = tx.toHex(); - // assert.equal(hex, fixture.hex); - // }); - // }); - // }); - }); + // describe('#Testnet', () => { + // fixtures.scripts.p2sh.manyToMany.testnet.forEach((fixture) => { + // it(`should create 2-to-2 P2SH transaction on testnet`, () => { + // let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); + // let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); + // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); + // let txHash = fixture.txHash; + // let originalAmount = fixture.amounts[0] + fixture.amounts[1]; + // transactionBuilder.addInput(txHash, 0); + // transactionBuilder.addInput(txHash, 1); + // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 2 }); + // let sendAmount = originalAmount - (byteCount * 15); + // transactionBuilder.addOutput(fixture.outputs[0], Math.floor(sendAmount / 2)); + // transactionBuilder.addOutput(fixture.outputs[1], Math.floor(sendAmount / 2)); + // let keyPair1 = BITBOX.HDNode.toKeyPair(node1); + // let keyPair2 = BITBOX.HDNode.toKeyPair(node2); + // let redeemScript; + // transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); + // transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); + // let tx = transactionBuilder.build(); + // let hex = tx.toHex(); + // assert.equal(hex, fixture.hex); + // }); + // }); + // }); + }) - describe('#fromMany', () => { - describe('#Mainnet', () => { - fixtures.scripts.p2sh.fromMany.mainnet.forEach((fixture) => { + describe("#fromMany", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2sh.fromMany.mainnet.forEach(fixture => { it(`should create 2-to-1 P2SH transaction on mainnet`, () => { - let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); - let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); - let node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]); - let transactionBuilder = new BITBOX.TransactionBuilder(); - let txid = fixture.txHash; - let originalAmount = fixture.amount; - let identifier1 = BITBOX.HDNode.toIdentifier(node1); - let buf1 = BITBOX.Script.encode([ + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) + const transactionBuilder = new BITBOX.TransactionBuilder() + const txid = fixture.txHash + const originalAmount = fixture.amount + const identifier1 = BITBOX.HDNode.toIdentifier(node1) + const buf1 = BITBOX.Script.encode([ BITBOX.Script.opcodes.OP_DUP, BITBOX.Script.opcodes.OP_HASH160, identifier1, BITBOX.Script.opcodes.OP_EQUALVERIFY, BITBOX.Script.opcodes.OP_CHECKSIG - ]); - let scriptHash1 = BITBOX.Crypto.hash160(buf1); - let data1 = BITBOX.Script.scriptHash.output.encode(scriptHash1); - transactionBuilder.addInput(txid, 0, transactionBuilder.DEFAULT_SEQUENCE, data1); - let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 3 }, { P2PKH: 2 }); - let sendAmount = originalAmount - byteCount; - let identifier2 = BITBOX.HDNode.toIdentifier(node2); - let buf2 = BITBOX.Script.encode([ + ]) + const scriptHash1 = BITBOX.Crypto.hash160(buf1) + const data1 = BITBOX.Script.scriptHash.output.encode(scriptHash1) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + data1 + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 2 } + ) + const sendAmount = originalAmount - byteCount + const identifier2 = BITBOX.HDNode.toIdentifier(node2) + const buf2 = BITBOX.Script.encode([ BITBOX.Script.opcodes.OP_DUP, BITBOX.Script.opcodes.OP_HASH160, identifier2, BITBOX.Script.opcodes.OP_EQUALVERIFY, BITBOX.Script.opcodes.OP_CHECKSIG ]) - let scriptHash2 = BITBOX.Crypto.hash160(buf2); - let data2 = BITBOX.Script.scriptHash.output.encode(scriptHash2); - transactionBuilder.addInput(txid, 1, transactionBuilder.DEFAULT_SEQUENCE, data2); - let identifier3 = BITBOX.HDNode.toIdentifier(node3); - let buf3 = BITBOX.Script.encode([ + const scriptHash2 = BITBOX.Crypto.hash160(buf2) + const data2 = BITBOX.Script.scriptHash.output.encode(scriptHash2) + transactionBuilder.addInput( + txid, + 1, + transactionBuilder.DEFAULT_SEQUENCE, + data2 + ) + const identifier3 = BITBOX.HDNode.toIdentifier(node3) + const buf3 = BITBOX.Script.encode([ BITBOX.Script.opcodes.OP_DUP, BITBOX.Script.opcodes.OP_HASH160, identifier3, BITBOX.Script.opcodes.OP_EQUALVERIFY, BITBOX.Script.opcodes.OP_CHECKSIG ]) - let scriptHash3 = BITBOX.Crypto.hash160(buf3); - let data3 = BITBOX.Script.scriptHash.output.encode(scriptHash3); - transactionBuilder.addOutput(data3, sendAmount); - let keyPair1 = BITBOX.HDNode.toKeyPair(node1); - let keyPair2 = BITBOX.HDNode.toKeyPair(node2); - transactionBuilder.sign(0, keyPair1, buf1, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount / 2); - transactionBuilder.sign(1, keyPair2, buf2, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount / 2); - let tx = transactionBuilder.build(); - let hex = tx.toHex(); - assert.equal(hex, fixture.hex); - }); - }); - }); + const scriptHash3 = BITBOX.Crypto.hash160(buf3) + const data3 = BITBOX.Script.scriptHash.output.encode(scriptHash3) + transactionBuilder.addOutput(data3, sendAmount) + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + transactionBuilder.sign( + 0, + keyPair1, + buf1, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + transactionBuilder.sign( + 1, + keyPair2, + buf2, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) - // describe('#Testnet', () => { - // fixtures.scripts.p2sh.fromMany.testnet.forEach((fixture) => { - // it(`should create 2-to-1 P2SH transaction on testnet`, () => { - // let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); - // let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); - // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); - // let txHash = fixture.txHash; - // let originalAmount = fixture.amounts[0] + fixture.amounts[1]; - // transactionBuilder.addInput(txHash, 0); - // transactionBuilder.addInput(txHash, 1); - // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 1 }); - // let sendAmount = originalAmount - (byteCount * 15); - // transactionBuilder.addOutput(fixture.outputs[0], sendAmount); - // let keyPair1 = BITBOX.HDNode.toKeyPair(node1); - // let keyPair2 = BITBOX.HDNode.toKeyPair(node2); - // let redeemScript; - // transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); - // transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); - // let tx = transactionBuilder.build(); - // let hex = tx.toHex(); - // assert.equal(hex, fixture.hex); - // }); - // }); - // }); - }); - }); + // describe('#Testnet', () => { + // fixtures.scripts.p2sh.fromMany.testnet.forEach((fixture) => { + // it(`should create 2-to-1 P2SH transaction on testnet`, () => { + // let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); + // let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); + // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); + // let txHash = fixture.txHash; + // let originalAmount = fixture.amounts[0] + fixture.amounts[1]; + // transactionBuilder.addInput(txHash, 0); + // transactionBuilder.addInput(txHash, 1); + // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 1 }); + // let sendAmount = originalAmount - (byteCount * 15); + // transactionBuilder.addOutput(fixture.outputs[0], sendAmount); + // let keyPair1 = BITBOX.HDNode.toKeyPair(node1); + // let keyPair2 = BITBOX.HDNode.toKeyPair(node2); + // let redeemScript; + // transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); + // transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); + // let tx = transactionBuilder.build(); + // let hex = tx.toHex(); + // assert.equal(hex, fixture.hex); + // }); + // }); + // }); + }) + }) - describe('#op_return', () => { - describe('#Mainnet', () => { - fixtures.nulldata.mainnet.forEach((fixture) => { + describe("#op_return", () => { + describe("#Mainnet", () => { + fixtures.nulldata.mainnet.forEach(fixture => { it(`should create transaction w/ OP_RETURN output on mainnet`, () => { - let node = BITBOX.HDNode.fromXPriv(fixture.xpriv); - let transactionBuilder = new BITBOX.TransactionBuilder(); - let txHash = fixture.txHash; - let originalAmount = fixture.amount; - transactionBuilder.addInput(txHash, 0); - let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 5 }); - let sendAmount = originalAmount - byteCount; - transactionBuilder.addOutput(fixture.output, sendAmount); - let data = fixture.data; - let buf = BITBOX.Script.nullData.output.encode(Buffer.from(data, 'ascii')); - transactionBuilder.addOutput(buf, 0); - let keyPair = BITBOX.HDNode.toKeyPair(node); - let redeemScript; - transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amount); - let tx = transactionBuilder.build(); - let hex = tx.toHex(); - assert.equal(hex, fixture.hex); - }); - }); - }); + const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new BITBOX.TransactionBuilder() + const txHash = fixture.txHash + const originalAmount = fixture.amount + transactionBuilder.addInput(txHash, 0) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 5 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(fixture.output, sendAmount) + const data = fixture.data + const buf = BITBOX.Script.nullData.output.encode( + Buffer.from(data, "ascii") + ) + transactionBuilder.addOutput(buf, 0) + const keyPair = BITBOX.HDNode.toKeyPair(node) + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amount + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) - describe('#Testnet', () => { - fixtures.nulldata.testnet.forEach((fixture) => { + describe("#Testnet", () => { + fixtures.nulldata.testnet.forEach(fixture => { it(`should create transaction w/ OP_RETURN output on testnet`, () => { - let node = BITBOX.HDNode.fromXPriv(fixture.xpriv); - let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); - let txHash = fixture.txHash; - let originalAmount = fixture.amount; - transactionBuilder.addInput(txHash, 0); - let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 5 }); - let sendAmount = originalAmount - byteCount; - transactionBuilder.addOutput(fixture.output, sendAmount); - let data = fixture.data; - let buf = BITBOX.Script.nullData.output.encode(Buffer.from(data, 'ascii')); - transactionBuilder.addOutput(buf, 0); - let keyPair = BITBOX.HDNode.toKeyPair(node); - let redeemScript; - transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amount); - let tx = transactionBuilder.build(); - let hex = tx.toHex(); - assert.equal(hex, fixture.hex); - }); - }); - }); - }); + const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const txHash = fixture.txHash + const originalAmount = fixture.amount + transactionBuilder.addInput(txHash, 0) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 5 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(fixture.output, sendAmount) + const data = fixture.data + const buf = BITBOX.Script.nullData.output.encode( + Buffer.from(data, "ascii") + ) + transactionBuilder.addOutput(buf, 0) + const keyPair = BITBOX.HDNode.toKeyPair(node) + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amount + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) - describe('#bip66', () => { - fixtures.bip66.forEach((fixture) => { + describe("#bip66", () => { + fixtures.bip66.forEach(fixture => { it(`should bip66 encode as ${fixture.DER}`, () => { - let transactionBuilder = new BITBOX.TransactionBuilder(); - let r = Buffer.from(fixture.r, 'hex') - let s = Buffer.from(fixture.s, 'hex') - let DER = transactionBuilder.bip66.encode(r, s) - assert.equal(DER.toString('hex'), fixture.DER); - }); - }); + const transactionBuilder = new BITBOX.TransactionBuilder() + const r = Buffer.from(fixture.r, "hex") + const s = Buffer.from(fixture.s, "hex") + const DER = transactionBuilder.bip66.encode(r, s) + assert.equal(DER.toString("hex"), fixture.DER) + }) + }) - fixtures.bip66.forEach((fixture) => { + fixtures.bip66.forEach(fixture => { it(`should bip66 decode ${fixture.DER}`, () => { - let transactionBuilder = new BITBOX.TransactionBuilder(); - let buffer = Buffer.from(fixture.DER, 'hex') - let signature = transactionBuilder.bip66.decode(buffer) - assert.equal(signature.r.toString('hex'), fixture.r); - assert.equal(signature.s.toString('hex'), fixture.s); - }); - }); + const transactionBuilder = new BITBOX.TransactionBuilder() + const buffer = Buffer.from(fixture.DER, "hex") + const signature = transactionBuilder.bip66.decode(buffer) + assert.equal(signature.r.toString("hex"), fixture.r) + assert.equal(signature.s.toString("hex"), fixture.s) + }) + }) - fixtures.bip66.forEach((fixture) => { + fixtures.bip66.forEach(fixture => { it(`should bip66 check ${fixture.DER}`, () => { - let transactionBuilder = new BITBOX.TransactionBuilder(); - let buffer = Buffer.from(fixture.DER, 'hex') - assert.equal(transactionBuilder.bip66.check(buffer), true); - }); - }); - }); + const transactionBuilder = new BITBOX.TransactionBuilder() + const buffer = Buffer.from(fixture.DER, "hex") + assert.equal(transactionBuilder.bip66.check(buffer), true) + }) + }) + }) - describe('#bip68', () => { - fixtures.bip68.encode.forEach((fixture) => { + describe("#bip68", () => { + fixtures.bip68.encode.forEach(fixture => { it(`should bip68 encode as ${fixture.result}`, () => { - let transactionBuilder = new BITBOX.TransactionBuilder(); - let obj = {}; - obj[fixture.type] = fixture.value; - let encode = transactionBuilder.bip68.encode(obj); - assert.equal(encode, fixture.result); - }); - }); + const transactionBuilder = new BITBOX.TransactionBuilder() + const obj = {} + obj[fixture.type] = fixture.value + const encode = transactionBuilder.bip68.encode(obj) + assert.equal(encode, fixture.result) + }) + }) - fixtures.bip68.decode.forEach((fixture) => { + fixtures.bip68.decode.forEach(fixture => { it(`should bip68 decode ${fixture.result}`, () => { - let transactionBuilder = new BITBOX.TransactionBuilder(); - let obj = {}; - let decode = transactionBuilder.bip68.decode(fixture.result); - assert.equal(Object.keys(decode)[0], fixture.type); - assert.deepEqual(decode[Object.keys(decode)[0]], fixture.value); - }); - }); - }); -}); + const transactionBuilder = new BITBOX.TransactionBuilder() + const obj = {} + const decode = transactionBuilder.bip68.decode(fixture.result) + assert.equal(Object.keys(decode)[0], fixture.type) + assert.deepEqual(decode[Object.keys(decode)[0]], fixture.value) + }) + }) + }) +}) diff --git a/test/Util.js b/test/Util.js index 43f0f958..15e5251b 100644 --- a/test/Util.js +++ b/test/Util.js @@ -1,38 +1,37 @@ -// let fixtures = require('./fixtures/BitcoinCash.json') -let chai = require('chai'); -let assert = require('assert'); -let axios = require('axios'); -let BITBOXCli = require('./../lib/bitbox-cli').default; -let BITBOX = new BITBOXCli(); -let sinon = require('sinon'); +"use strict" +const chai = require("chai") +const assert = require("assert") +const axios = require("axios") +const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOX = new BITBOXCli() +const sinon = require("sinon") -describe('#Util', () => { - describe('#validateAddress', () => { - let sandbox; - beforeEach(() => sandbox = sinon.sandbox.create()); - afterEach(() => sandbox.restore()); +describe("#Util", () => { + describe("#validateAddress", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) - it('should validate address', (done) => { - let data = { + it("should validate address", done => { + const data = { isvalid: true, - address: 'bitcoincash:qpz7qtkuyhrsz4qmnnrvf8gz9zd0u9v7eqsewyk4w5', - scriptPubKey: '76a91445e02edc25c701541b9cc6c49d02289afe159ec888ac', + address: "bitcoincash:qpz7qtkuyhrsz4qmnnrvf8gz9zd0u9v7eqsewyk4w5", + scriptPubKey: "76a91445e02edc25c701541b9cc6c49d02289afe159ec888ac", ismine: false, iswatchonly: false, isscript: false - }; + } - const resolved = new Promise((r) => r({ data: data })); - sandbox.stub(axios, 'get').returns(resolved); + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) - BITBOX.Util.validateAddress('bitcoincash:qpz7qtkuyhrsz4qmnnrvf8gz9zd0u9v7eqsewyk4w5') - .then((result) => { - assert.deepEqual( - data, - result - ); - }) - .then(done, done); - }); - }); -}); + BITBOX.Util.validateAddress( + "bitcoincash:qpz7qtkuyhrsz4qmnnrvf8gz9zd0u9v7eqsewyk4w5" + ) + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) +}) diff --git a/test/fixtures/Address.json b/test/fixtures/Address.json index b08aaf3b..f340dd93 100644 --- a/test/fixtures/Address.json +++ b/test/fixtures/Address.json @@ -170,5 +170,6 @@ "bchtest:qrd88na4869phkr0h44kzfakwc52w2jwmqjl6vlynn" ] } - ] + ], + "p2shMainnet": ["bitcoincash:pz0qcslrqn7hr44hsszwl4lw5r6udkg6zqncnufkrl"] } From 0fa37063631ab8ef697bf935169ad0a5278f3247 Mon Sep 17 00:00:00 2001 From: haryu703 Date: Tue, 25 Sep 2018 23:28:11 +0900 Subject: [PATCH 083/480] update Address.d.ts --- lib/Address.d.ts | 6 +++++- typings/Address.d.ts | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/Address.d.ts b/lib/Address.d.ts index ef8c00b8..15b1b826 100644 --- a/lib/Address.d.ts +++ b/lib/Address.d.ts @@ -3,6 +3,9 @@ export declare interface Address { //constructor(restURL: string); toLegacyAddress(address: string): string; toCashAddress(address: string, prefix?: boolean): string; + toHash160(address: string): string; + hash160ToLegacy(hash160: string): string; + hash160ToCash(hash160: string): string; isLegacyAddress(address: string): boolean; isCashAddress(address: string): boolean; isMainnetAddress(address: string): boolean; @@ -20,7 +23,6 @@ export declare interface Address { } export declare interface AddressDetailsResult { - addrStr: string; balance: number; balanceSat: number; totalReceived: number; @@ -32,6 +34,8 @@ export declare interface AddressDetailsResult { unconfirmedTxApperances: number; txApperances: number; transactions: string[]; + legacyAddress: string; + cashAddress: string; } export declare interface AddressUtxoResult { diff --git a/typings/Address.d.ts b/typings/Address.d.ts index ef8c00b8..15b1b826 100644 --- a/typings/Address.d.ts +++ b/typings/Address.d.ts @@ -3,6 +3,9 @@ export declare interface Address { //constructor(restURL: string); toLegacyAddress(address: string): string; toCashAddress(address: string, prefix?: boolean): string; + toHash160(address: string): string; + hash160ToLegacy(hash160: string): string; + hash160ToCash(hash160: string): string; isLegacyAddress(address: string): boolean; isCashAddress(address: string): boolean; isMainnetAddress(address: string): boolean; @@ -20,7 +23,6 @@ export declare interface Address { } export declare interface AddressDetailsResult { - addrStr: string; balance: number; balanceSat: number; totalReceived: number; @@ -32,6 +34,8 @@ export declare interface AddressDetailsResult { unconfirmedTxApperances: number; txApperances: number; transactions: string[]; + legacyAddress: string; + cashAddress: string; } export declare interface AddressUtxoResult { From 5c2ea631919c89745d87b61c12ebd2cabc7c043f Mon Sep 17 00:00:00 2001 From: haryu703 Date: Wed, 26 Sep 2018 02:40:34 +0900 Subject: [PATCH 084/480] update TransactionBuilder.d.ts --- lib/TransactionBuilder.d.ts | 1 + typings/TransactionBuilder.d.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/lib/TransactionBuilder.d.ts b/lib/TransactionBuilder.d.ts index 62a72f64..fc06b796 100644 --- a/lib/TransactionBuilder.d.ts +++ b/lib/TransactionBuilder.d.ts @@ -17,6 +17,7 @@ export declare interface TransactionBuilder { new(network?: string): TransactionBuilder; addInput(txHash: string|Buffer, vout: number, sequence?: number, prevOutScript?: string): void; + addInputScript(vout: number, script: Buffer): void; addOutput(scriptPubKey: string|Buffer, amount: number): void; sign(vin: number, keyPair: ECPair, redeemScript: Buffer | undefined, hashType: number, value: number): ECSignature; build(): Transaction; diff --git a/typings/TransactionBuilder.d.ts b/typings/TransactionBuilder.d.ts index 62a72f64..fc06b796 100644 --- a/typings/TransactionBuilder.d.ts +++ b/typings/TransactionBuilder.d.ts @@ -17,6 +17,7 @@ export declare interface TransactionBuilder { new(network?: string): TransactionBuilder; addInput(txHash: string|Buffer, vout: number, sequence?: number, prevOutScript?: string): void; + addInputScript(vout: number, script: Buffer): void; addOutput(scriptPubKey: string|Buffer, amount: number): void; sign(vin: number, keyPair: ECPair, redeemScript: Buffer | undefined, hashType: number, value: number): ECSignature; build(): Transaction; From 600513d11f7dc2ce3f537495c9c7b9faae08cbbf Mon Sep 17 00:00:00 2001 From: haryu703 Date: Wed, 26 Sep 2018 16:39:46 +0900 Subject: [PATCH 085/480] update TransactionBuilder.d.ts --- lib/TransactionBuilder.d.ts | 2 +- typings/TransactionBuilder.d.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/TransactionBuilder.d.ts b/lib/TransactionBuilder.d.ts index fc06b796..86482f85 100644 --- a/lib/TransactionBuilder.d.ts +++ b/lib/TransactionBuilder.d.ts @@ -8,7 +8,7 @@ declare type ECSignature = any; export declare interface TransactionBuilder { // bitcoincash: coininfo.bitcoincash.main; // bitcoincashBitcoinJSLib: Bitcoin.toBitcoinJS; - transaction: Transaction; + transaction: any; DEFAULT_SEQUENCE: number; hashTypes: HashTypes; bip66 : any; diff --git a/typings/TransactionBuilder.d.ts b/typings/TransactionBuilder.d.ts index fc06b796..86482f85 100644 --- a/typings/TransactionBuilder.d.ts +++ b/typings/TransactionBuilder.d.ts @@ -8,7 +8,7 @@ declare type ECSignature = any; export declare interface TransactionBuilder { // bitcoincash: coininfo.bitcoincash.main; // bitcoincashBitcoinJSLib: Bitcoin.toBitcoinJS; - transaction: Transaction; + transaction: any; DEFAULT_SEQUENCE: number; hashTypes: HashTypes; bip66 : any; From eb5b70b3433281c247e5ad3f24d21238bddf5214 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Thu, 27 Sep 2018 07:16:11 -0700 Subject: [PATCH 086/480] Seeing if I can create a branch --- examples/README.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 examples/README.md diff --git a/examples/README.md b/examples/README.md new file mode 100644 index 00000000..16e09310 --- /dev/null +++ b/examples/README.md @@ -0,0 +1,2 @@ +This is a test + From 322adf032341b3828c40dce0ca3fda186dea79af Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Thu, 27 Sep 2018 07:24:27 -0700 Subject: [PATCH 087/480] Adding README --- examples/README.md | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/examples/README.md b/examples/README.md index 16e09310..eb55bb2b 100644 --- a/examples/README.md +++ b/examples/README.md @@ -1,2 +1,34 @@ -This is a test +This directory contains a series of small examples apps that illustrate how to +code up common use cases for a Bitcoin Cash application. +The `low-level` directory +contains low-level applications exercising a single feature of BITBOX. Think of +these examples like lego blocks that can be used to build a bigger app. + +The `applications` directory contains example applications like wallets, voting, +and other ideas. + +## Installation +Prior to running these examples, you need to setup this code repository. In the +root directory run these commands: +``` +npm install +npm build +npm postbuild +``` + +## Running Examples +You can run each example script by entering its directory and executing `npm start` + +## General BCH Functions +* `create-wallet` Create a BCH compatible HD Node wallet on the BCH testnet. +Send test BCH using a testnet faucet (like +[this one](https://testnet.manu.backend.hamburg/bitcoin-cash-faucet) or +[this one](http://www.wormhole.cash/test/)) to the address saved in the +wallet.json file generated by this app. + +* `check-balance` Check the balance of your BCH wallet. This displays both BCH +information as well as Wormhole token information. + +* `send-bch` Send BCH to another address. (Great for sending balances back to +the testnet faucet.) From bfb9e49a2c02e41b90fb6b3d020b54bd619e3298 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Thu, 27 Sep 2018 07:41:34 -0700 Subject: [PATCH 088/480] Added create-wallet example --- .gitignore | 3 + .../wallet/check-balance/check-balance.js | 48 +++++++ .../wallet/check-balance/package.json | 24 ++++ .../wallet/create-wallet/create-wallet.js | 65 +++++++++ .../wallet/create-wallet/package.json | 24 ++++ .../applications/wallet/send-bch/package.json | 24 ++++ .../applications/wallet/send-bch/send-bch.js | 135 ++++++++++++++++++ 7 files changed, 323 insertions(+) create mode 100644 examples/applications/wallet/check-balance/check-balance.js create mode 100644 examples/applications/wallet/check-balance/package.json create mode 100644 examples/applications/wallet/create-wallet/create-wallet.js create mode 100644 examples/applications/wallet/create-wallet/package.json create mode 100644 examples/applications/wallet/send-bch/package.json create mode 100644 examples/applications/wallet/send-bch/send-bch.js diff --git a/.gitignore b/.gitignore index 7bfff5eb..2d6acf8b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ node_modules/* .nyc_output/* +wallet-info.txt +wallet.json + diff --git a/examples/applications/wallet/check-balance/check-balance.js b/examples/applications/wallet/check-balance/check-balance.js new file mode 100644 index 00000000..d4f95afd --- /dev/null +++ b/examples/applications/wallet/check-balance/check-balance.js @@ -0,0 +1,48 @@ +/* + Create an HDNode wallet using Bitbox. The mnemonic from this wallet + will be used in future examples. +*/ + +"use strict" + +const BITBOXCli = require("bitbox-cli/lib/bitbox-cli").default +//const BITBOX = new BITBOXCli({ restURL: "https://trest.bitcoin.com/v1/" }) +const BITBOX = new BITBOXCli({ restURL: "http://localhost:3000/v1/" }) +const WH = require("wormholecash/lib/Wormhole").default +const Wormhole = new WH({ + restURL: `https://wormholecash-staging.herokuapp.com/v1/` +}) + +// Open the wallet generated with create-wallet. +let walletInfo +try { + walletInfo = require(`../create-wallet/wallet.json`) +} catch (err) { + console.log( + `Could not open wallet.json. Generate a wallet with create-wallet first.` + ) + process.exit(0) +} + +async function getBalance() { + try { + // first get BCH balance + const balance = await BITBOX.Address.details([walletInfo.cashAddress]) + + console.log(`BCH Balance information:`) + console.log(balance) + + // get token balances + const tokens = await Wormhole.DataRetrieval.balancesForAddress( + walletInfo.cashAddress + ) + + console.log(``) + console.log(`Wormhole Token information:`) + console.log(JSON.stringify(tokens, null, 2)) + } catch (err) { + console.error(`Error in getBalance: `, err) + throw err + } +} +getBalance() diff --git a/examples/applications/wallet/check-balance/package.json b/examples/applications/wallet/check-balance/package.json new file mode 100644 index 00000000..5cb88ca6 --- /dev/null +++ b/examples/applications/wallet/check-balance/package.json @@ -0,0 +1,24 @@ +{ + "name": "check-balance", + "version": "1.0.0", + "description": "Create an HDNode wallet", + "main": "create-wallet.js", + "scripts": { + "test": "echo no tests yet", + "start": "node check-balance.js" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/Bitcoin-com/wormholecash.git" + }, + "keywords": [ + "wormholecash", + "example" + ], + "author": "Chris Troutner ", + "license": "MIT", + "bugs": { + "url": "https://github.com/Bitcoin-com/wormholecash/issues" + }, + "homepage": "https://github.com/Bitcoin-com/wormholecash#readme" +} diff --git a/examples/applications/wallet/create-wallet/create-wallet.js b/examples/applications/wallet/create-wallet/create-wallet.js new file mode 100644 index 00000000..bd3eb44d --- /dev/null +++ b/examples/applications/wallet/create-wallet/create-wallet.js @@ -0,0 +1,65 @@ +/* + Create an HDNode wallet using BITBOX. The mnemonic from this wallet + will be used in future examples. +*/ + +"use strict" + +const bitboxLib = "../../../../lib/bitbox-cli" +const BITBOXCli = require(bitboxLib).default +const BITBOX = new BITBOXCli({ restURL: "https://trest.bitcoin.com/v1/" }) + +const fs = require("fs") + +const lang = "english" // Set the language of the wallet. + +// These objects used for writing wallet information out to a file. +let outStr = "" +const outObj = {} + +// create 256 bit BIP39 mnemonic +const mnemonic = BITBOX.Mnemonic.generate( + 256, + BITBOX.Mnemonic.wordLists()[lang] +) +console.log("BIP44 $BCH Wallet") +outStr += "BIP44 $BCH Wallet\n" +console.log(`256 bit ${lang} BIP39 Mnemonic: `, mnemonic) +outStr += `\n256 bit ${lang} BIP32 Mnemonic:\n${mnemonic}\n\n` +outObj.mnemonic = mnemonic + +// root seed buffer +const rootSeed = BITBOX.Mnemonic.toSeed(mnemonic) + +// master HDNode +const masterHDNode = BITBOX.HDNode.fromSeed(rootSeed, "testnet") + +// HDNode of BIP44 account +console.log(`BIP44 Account: "m/44'/145'/0'"`) +outStr += `BIP44 Account: "m/44'/145'/0'"\n` + +// Generate the first 10 seed addresses. +for (let i = 0; i < 10; i++) { + const childNode = masterHDNode.derivePath(`m/44'/145'/0'/0/${i}`) + console.log(`m/44'/145'/0'/0/${i}: ${BITBOX.HDNode.toCashAddress(childNode)}`) + outStr += `m/44'/145'/0'/0/${i}: ${BITBOX.HDNode.toCashAddress(childNode)}\n` + + // Save the first seed address for use in the .json output file. + if (i === 0) { + outObj.cashAddress = BITBOX.HDNode.toCashAddress(childNode) + outObj.legacyAddress = BITBOX.HDNode.toLegacyAddress(childNode) + } +} + +// Write the extended wallet information into a text file. +fs.writeFile("wallet-info.txt", outStr, function(err) { + if (err) return console.error(err) + + console.log(`wallet-info.txt written successfully.`) +}) + +// Write out the basic information into a json file for other example apps to use. +fs.writeFile("wallet.json", JSON.stringify(outObj, null, 2), function(err) { + if (err) return console.error(err) + console.log(`wallet.json written successfully.`) +}) diff --git a/examples/applications/wallet/create-wallet/package.json b/examples/applications/wallet/create-wallet/package.json new file mode 100644 index 00000000..b56a86bb --- /dev/null +++ b/examples/applications/wallet/create-wallet/package.json @@ -0,0 +1,24 @@ +{ + "name": "create-wallet", + "version": "1.0.0", + "description": "Create an HDNode wallet", + "main": "create-wallet.js", + "scripts": { + "test": "echo no tests yet", + "start": "node create-wallet.js" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/Bitcoin-com/bitbox-javascript-sdk.git" + }, + "keywords": [ + "wormholecash", + "example" + ], + "author": "Chris Troutner ", + "license": "MIT", + "bugs": { + "url": "https://github.com/Bitcoin-com/bitbox-javascript-sdk/issues" + }, + "homepage": "https://github.com/Bitcoin-com/bitbox-javascript-sdk/blob/master/README.md" +} diff --git a/examples/applications/wallet/send-bch/package.json b/examples/applications/wallet/send-bch/package.json new file mode 100644 index 00000000..73046033 --- /dev/null +++ b/examples/applications/wallet/send-bch/package.json @@ -0,0 +1,24 @@ +{ + "name": "send-bch", + "version": "1.0.0", + "description": "Create an HDNode wallet", + "main": "send-bch.js", + "scripts": { + "test": "echo no tests yet", + "start": "node send-bch.js" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/Bitcoin-com/wormholecash.git" + }, + "keywords": [ + "wormholecash", + "example" + ], + "author": "Chris Troutner ", + "license": "MIT", + "bugs": { + "url": "https://github.com/Bitcoin-com/wormholecash/issues" + }, + "homepage": "https://github.com/Bitcoin-com/wormholecash#readme" +} diff --git a/examples/applications/wallet/send-bch/send-bch.js b/examples/applications/wallet/send-bch/send-bch.js new file mode 100644 index 00000000..58e08bf9 --- /dev/null +++ b/examples/applications/wallet/send-bch/send-bch.js @@ -0,0 +1,135 @@ +/* + Send 1000 satoshis to RECV_ADDR. +*/ + +"use strict" + +const BITBOXCli = require("bitbox-cli/lib/bitbox-cli").default +//const BITBOX = new BITBOXCli({ restURL: "https://trest.bitcoin.com/v1/" }) +const BITBOX = new BITBOXCli({ restURL: "http://localhost:3000/v1/" }) + +// Replace the address below with the address you want to send the BCH to. +const RECV_ADDR = `bchtest:qr45kxqda7yw8atztvkc4ckqnrlhmp0kvsep4p345q` + +// Open the wallet generated with create-wallet. +let walletInfo +try { + walletInfo = require(`../create-wallet/wallet.json`) +} catch (err) { + console.log( + `Could not open wallet.json. Generate a wallet with create-wallet first.` + ) + process.exit(0) +} + +const SEND_ADDR = walletInfo.cashAddress +const SEND_MNEMONIC = walletInfo.mnemonic + +async function sendBch() { + const balance = await getBCHBalance(SEND_ADDR, false) + console.log(`balance: ${JSON.stringify(balance, null, 2)}`) + console.log(`Balance of sending address ${SEND_ADDR} is ${balance} BCH.`) + + if (balance <= 0.0) { + console.log(`Balance of sending address is zero. Exiting.`) + process.exit(0) + } + + const SEND_ADDR_LEGACY = BITBOX.Address.toLegacyAddress(SEND_ADDR) + const RECV_ADDR_LEGACY = BITBOX.Address.toLegacyAddress(RECV_ADDR) + console.log(`Sender Legacy Address: ${SEND_ADDR_LEGACY}`) + console.log(`Receiver Legacy Address: ${RECV_ADDR_LEGACY}`) + + const balance2 = await getBCHBalance(RECV_ADDR, false) + console.log(`Balance of recieving address ${RECV_ADDR} is ${balance2} BCH.`) + + const utxo = await BITBOX.Address.utxo(SEND_ADDR) + console.log(`utxo: ${JSON.stringify(utxo, null, 2)}`) + + // instance of transaction builder + const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + + const satoshisToSend = 1000 + const originalAmount = utxo[0].satoshis + const vout = utxo[0].vout + const txid = utxo[0].txid + + // add input with txid and index of vout + transactionBuilder.addInput(txid, vout) + + // get byte count to calculate fee. paying 1 sat/byte + const byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 2 }) + console.log(`byteCount: ${byteCount}`) + const satoshisPerByte = 1.2 + const txFee = Math.floor(satoshisPerByte * byteCount) + console.log(`txFee: ${txFee}`) + + // amount to send back to the sending address. It's the original amount - 1 sat/byte for tx size + const remainder = originalAmount - satoshisToSend - txFee + + // add output w/ address and amount to send + transactionBuilder.addOutput(RECV_ADDR, satoshisToSend) + transactionBuilder.addOutput(SEND_ADDR, remainder) + + // Generate a change address from a Mnemonic of a private key. + const change = changeAddrFromMnemonic(SEND_MNEMONIC) + + // Generate a keypair from the change address. + const keyPair = BITBOX.HDNode.toKeyPair(change) + + // Sign the transaction with the HD node. + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + + // build tx + const tx = transactionBuilder.build() + // output rawhex + const hex = tx.toHex() + //console.log(`Transaction raw hex: `); + //console.log(`${hex}`); + + // sendRawTransaction to running BCH node + const broadcast = await BITBOX.RawTransactions.sendRawTransaction(hex) + console.log(`Transaction ID: ${broadcast}`) +} +sendBch() + +// Generate a change address from a Mnemonic of a private key. +function changeAddrFromMnemonic(mnemonic) { + // root seed buffer + const rootSeed = BITBOX.Mnemonic.toSeed(mnemonic) + + // master HDNode + const masterHDNode = BITBOX.HDNode.fromSeed(rootSeed, "testnet") + + // HDNode of BIP44 account + const account = BITBOX.HDNode.derivePath(masterHDNode, "m/44'/145'/0'") + + // derive the first external change address HDNode which is going to spend utxo + const change = BITBOX.HDNode.derivePath(account, "0/0") + + return change +} + +// Get the balance in BCH of a BCH address. +async function getBCHBalance(addr, verbose) { + try { + const result = await BITBOX.Address.details([addr]) + + if (verbose) console.log(result) + + const bchBalance = result[0] + + return bchBalance.balance + } catch (err) { + console.error(`Error in getBCHBalance: `, err) + console.log(`addr: ${addr}`) + throw err + } +} From c10b6617f1dd9cbd289edc8667f18733c02448c4 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Thu, 27 Sep 2018 07:51:11 -0700 Subject: [PATCH 089/480] Added check-balance example --- examples/README.md | 10 +++++-- .../wallet/check-balance/check-balance.js | 28 ++++++------------- .../wallet/check-balance/package.json | 17 +++++++---- .../wallet/create-wallet/create-wallet.js | 1 + .../wallet/create-wallet/package.json | 9 ++++-- 5 files changed, 35 insertions(+), 30 deletions(-) diff --git a/examples/README.md b/examples/README.md index eb55bb2b..a2b5668e 100644 --- a/examples/README.md +++ b/examples/README.md @@ -20,7 +20,13 @@ npm postbuild ## Running Examples You can run each example script by entering its directory and executing `npm start` -## General BCH Functions +## Basic BCH Wallet Functions +These basic examples in the `applications/wallet` directory are used to bootstrap +a BCH testnet wallet for use with the other examples. Recommended path: +Create a wallet, fund it with a faucet, check the balance, then send some tBCH +back to faucet. Once those objectives are achieved, you're ready explore some of +the other examples. + * `create-wallet` Create a BCH compatible HD Node wallet on the BCH testnet. Send test BCH using a testnet faucet (like [this one](https://testnet.manu.backend.hamburg/bitcoin-cash-faucet) or @@ -30,5 +36,5 @@ wallet.json file generated by this app. * `check-balance` Check the balance of your BCH wallet. This displays both BCH information as well as Wormhole token information. -* `send-bch` Send BCH to another address. (Great for sending balances back to +* `send-bch` Send BCH to another address. (Great for sending balances back to the testnet faucet.) diff --git a/examples/applications/wallet/check-balance/check-balance.js b/examples/applications/wallet/check-balance/check-balance.js index d4f95afd..f9077365 100644 --- a/examples/applications/wallet/check-balance/check-balance.js +++ b/examples/applications/wallet/check-balance/check-balance.js @@ -1,22 +1,18 @@ /* - Create an HDNode wallet using Bitbox. The mnemonic from this wallet - will be used in future examples. + Check the balance of the root address of an HD node wallet generated + with the create-wallet example. */ "use strict" -const BITBOXCli = require("bitbox-cli/lib/bitbox-cli").default -//const BITBOX = new BITBOXCli({ restURL: "https://trest.bitcoin.com/v1/" }) -const BITBOX = new BITBOXCli({ restURL: "http://localhost:3000/v1/" }) -const WH = require("wormholecash/lib/Wormhole").default -const Wormhole = new WH({ - restURL: `https://wormholecash-staging.herokuapp.com/v1/` -}) +// Instantiate BITBOX. +const bitboxLib = "../../../../lib/bitbox-cli" +const BITBOXCli = require(bitboxLib).default +const BITBOX = new BITBOXCli({ restURL: "https://trest.bitcoin.com/v1/" }) // Open the wallet generated with create-wallet. -let walletInfo try { - walletInfo = require(`../create-wallet/wallet.json`) + var walletInfo = require(`../create-wallet/wallet.json`) } catch (err) { console.log( `Could not open wallet.json. Generate a wallet with create-wallet first.` @@ -24,6 +20,7 @@ try { process.exit(0) } +// Get the balance of the wallet. async function getBalance() { try { // first get BCH balance @@ -31,15 +28,6 @@ async function getBalance() { console.log(`BCH Balance information:`) console.log(balance) - - // get token balances - const tokens = await Wormhole.DataRetrieval.balancesForAddress( - walletInfo.cashAddress - ) - - console.log(``) - console.log(`Wormhole Token information:`) - console.log(JSON.stringify(tokens, null, 2)) } catch (err) { console.error(`Error in getBalance: `, err) throw err diff --git a/examples/applications/wallet/check-balance/package.json b/examples/applications/wallet/check-balance/package.json index 5cb88ca6..b6654790 100644 --- a/examples/applications/wallet/check-balance/package.json +++ b/examples/applications/wallet/check-balance/package.json @@ -1,7 +1,7 @@ { "name": "check-balance", "version": "1.0.0", - "description": "Create an HDNode wallet", + "description": "Check the balance of an HDNode wallet", "main": "create-wallet.js", "scripts": { "test": "echo no tests yet", @@ -9,16 +9,21 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/Bitcoin-com/wormholecash.git" + "url": "git+https://github.com/Bitcoin-com/bitbox-javascript-sdk.git" }, "keywords": [ - "wormholecash", - "example" + "bitbox", + "example", + "bch", + "bitcoin", + "bitcoin cash", + "bitcoin.com", + "javascript" ], "author": "Chris Troutner ", "license": "MIT", "bugs": { - "url": "https://github.com/Bitcoin-com/wormholecash/issues" + "url": "https://github.com/Bitcoin-com/bitbox-javascript-sdk/issues" }, - "homepage": "https://github.com/Bitcoin-com/wormholecash#readme" + "homepage": "https://github.com/Bitcoin-com/bitbox-javascript-sdk/blob/master/README.md" } diff --git a/examples/applications/wallet/create-wallet/create-wallet.js b/examples/applications/wallet/create-wallet/create-wallet.js index bd3eb44d..d7b72d2a 100644 --- a/examples/applications/wallet/create-wallet/create-wallet.js +++ b/examples/applications/wallet/create-wallet/create-wallet.js @@ -5,6 +5,7 @@ "use strict" +// Instantiate BITBOX. const bitboxLib = "../../../../lib/bitbox-cli" const BITBOXCli = require(bitboxLib).default const BITBOX = new BITBOXCli({ restURL: "https://trest.bitcoin.com/v1/" }) diff --git a/examples/applications/wallet/create-wallet/package.json b/examples/applications/wallet/create-wallet/package.json index b56a86bb..66997241 100644 --- a/examples/applications/wallet/create-wallet/package.json +++ b/examples/applications/wallet/create-wallet/package.json @@ -12,8 +12,13 @@ "url": "git+https://github.com/Bitcoin-com/bitbox-javascript-sdk.git" }, "keywords": [ - "wormholecash", - "example" + "bitbox", + "example", + "bch", + "bitcoin", + "bitcoin cash", + "bitcoin.com", + "javascript" ], "author": "Chris Troutner ", "license": "MIT", From a558f03134bfc96b808f755e979cafaff6e74b88 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Thu, 27 Sep 2018 08:45:34 -0700 Subject: [PATCH 090/480] Added send-bch example --- .eslintrc.json | 2 +- .../applications/wallet/send-bch/package.json | 17 +++++++----- .../applications/wallet/send-bch/send-bch.js | 26 ++++++++++--------- 3 files changed, 26 insertions(+), 19 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 06818ce3..bde529ab 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -33,7 +33,7 @@ "arrow-spacing": ["error"], "no-useless-computed-key": ["error"], "no-useless-rename": ["error"], - "no-var": ["error"], + "no-var": ["warn"], "prefer-spread": ["error"], "prefer-template": ["error"], "rest-spread-spacing": ["error", "never"], diff --git a/examples/applications/wallet/send-bch/package.json b/examples/applications/wallet/send-bch/package.json index 73046033..bc08f0fe 100644 --- a/examples/applications/wallet/send-bch/package.json +++ b/examples/applications/wallet/send-bch/package.json @@ -1,7 +1,7 @@ { "name": "send-bch", "version": "1.0.0", - "description": "Create an HDNode wallet", + "description": "Send some tBCH to another address.", "main": "send-bch.js", "scripts": { "test": "echo no tests yet", @@ -9,16 +9,21 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/Bitcoin-com/wormholecash.git" + "url": "git+https://github.com/Bitcoin-com/bitbox-javascript-sdk.git" }, "keywords": [ - "wormholecash", - "example" + "bitbox", + "example", + "bch", + "bitcoin", + "bitcoin cash", + "bitcoin.com", + "javascript" ], "author": "Chris Troutner ", "license": "MIT", "bugs": { - "url": "https://github.com/Bitcoin-com/wormholecash/issues" + "url": "https://github.com/Bitcoin-com/bitbox-javascript-sdk/issues" }, - "homepage": "https://github.com/Bitcoin-com/wormholecash#readme" + "homepage": "https://github.com/Bitcoin-com/bitbox-javascript-sdk/blob/master/README.md" } diff --git a/examples/applications/wallet/send-bch/send-bch.js b/examples/applications/wallet/send-bch/send-bch.js index 58e08bf9..38f7d6ab 100644 --- a/examples/applications/wallet/send-bch/send-bch.js +++ b/examples/applications/wallet/send-bch/send-bch.js @@ -4,17 +4,18 @@ "use strict" -const BITBOXCli = require("bitbox-cli/lib/bitbox-cli").default -//const BITBOX = new BITBOXCli({ restURL: "https://trest.bitcoin.com/v1/" }) -const BITBOX = new BITBOXCli({ restURL: "http://localhost:3000/v1/" }) +// Instantiate BITBOX. +const bitboxLib = "../../../../lib/bitbox-cli" +const BITBOXCli = require(bitboxLib).default +const BITBOX = new BITBOXCli({ restURL: "https://trest.bitcoin.com/v1/" }) +//const BITBOX = new BITBOXCli({ restURL: "htts://localhost:3000/v1/" }) // Replace the address below with the address you want to send the BCH to. -const RECV_ADDR = `bchtest:qr45kxqda7yw8atztvkc4ckqnrlhmp0kvsep4p345q` +const RECV_ADDR = `bchtest:qpytyr39fsr80emqh2ukftkpdqvdddcnfg9s6wjtfa` // Open the wallet generated with create-wallet. -let walletInfo try { - walletInfo = require(`../create-wallet/wallet.json`) + var walletInfo = require(`../create-wallet/wallet.json`) } catch (err) { console.log( `Could not open wallet.json. Generate a wallet with create-wallet first.` @@ -26,10 +27,12 @@ const SEND_ADDR = walletInfo.cashAddress const SEND_MNEMONIC = walletInfo.mnemonic async function sendBch() { + // Get the balance of the sending address. const balance = await getBCHBalance(SEND_ADDR, false) console.log(`balance: ${JSON.stringify(balance, null, 2)}`) console.log(`Balance of sending address ${SEND_ADDR} is ${balance} BCH.`) + // Exit if the balance is zero. if (balance <= 0.0) { console.log(`Balance of sending address is zero. Exiting.`) process.exit(0) @@ -49,7 +52,7 @@ async function sendBch() { // instance of transaction builder const transactionBuilder = new BITBOX.TransactionBuilder("testnet") - const satoshisToSend = 1000 + const satoshisToSend = 1000 // <--- This is where you set the amount to send. const originalAmount = utxo[0].satoshis const vout = utxo[0].vout const txid = utxo[0].txid @@ -57,14 +60,15 @@ async function sendBch() { // add input with txid and index of vout transactionBuilder.addInput(txid, vout) - // get byte count to calculate fee. paying 1 sat/byte + // get byte count to calculate fee. paying 1.2 sat/byte const byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 2 }) console.log(`byteCount: ${byteCount}`) const satoshisPerByte = 1.2 const txFee = Math.floor(satoshisPerByte * byteCount) console.log(`txFee: ${txFee}`) - // amount to send back to the sending address. It's the original amount - 1 sat/byte for tx size + // amount to send back to the sending address. + // It's the original amount - 1 sat/byte for tx size const remainder = originalAmount - satoshisToSend - txFee // add output w/ address and amount to send @@ -91,10 +95,8 @@ async function sendBch() { const tx = transactionBuilder.build() // output rawhex const hex = tx.toHex() - //console.log(`Transaction raw hex: `); - //console.log(`${hex}`); - // sendRawTransaction to running BCH node + // Broadcast transation to the network const broadcast = await BITBOX.RawTransactions.sendRawTransaction(hex) console.log(`Transaction ID: ${broadcast}`) } From 5d71eedecbfa447bad49d22929ebab51ff62266a Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 28 Sep 2018 09:10:50 -0700 Subject: [PATCH 091/480] Switching examples to local server until trest is fixed --- examples/applications/wallet/send-bch/send-bch.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/applications/wallet/send-bch/send-bch.js b/examples/applications/wallet/send-bch/send-bch.js index 38f7d6ab..8ef6ae46 100644 --- a/examples/applications/wallet/send-bch/send-bch.js +++ b/examples/applications/wallet/send-bch/send-bch.js @@ -7,8 +7,8 @@ // Instantiate BITBOX. const bitboxLib = "../../../../lib/bitbox-cli" const BITBOXCli = require(bitboxLib).default -const BITBOX = new BITBOXCli({ restURL: "https://trest.bitcoin.com/v1/" }) -//const BITBOX = new BITBOXCli({ restURL: "htts://localhost:3000/v1/" }) +//const BITBOX = new BITBOXCli({ restURL: "https://trest.bitcoin.com/v1/" }) +const BITBOX = new BITBOXCli({ restURL: "htts://localhost:3000/v1/" }) // Replace the address below with the address you want to send the BCH to. const RECV_ADDR = `bchtest:qpytyr39fsr80emqh2ukftkpdqvdddcnfg9s6wjtfa` From a10d36d03bd4a661137ade320b215afe5e1291b1 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 28 Sep 2018 09:23:20 -0700 Subject: [PATCH 092/480] Added address-details example --- .../address-details/address-details.js | 28 ++++++++++++++++++ .../low-level/address-details/package.json | 29 +++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 examples/low-level/address-details/address-details.js create mode 100644 examples/low-level/address-details/package.json diff --git a/examples/low-level/address-details/address-details.js b/examples/low-level/address-details/address-details.js new file mode 100644 index 00000000..a48610bf --- /dev/null +++ b/examples/low-level/address-details/address-details.js @@ -0,0 +1,28 @@ +/* + Check the balance of the root address of an HD node wallet generated + with the create-wallet example. +*/ + +"use strict" + +// Instantiate BITBOX. +const bitboxLib = "../../../lib/bitbox-cli" +const BITBOXCli = require(bitboxLib).default +//const BITBOX = new BITBOXCli({ restURL: "https://trest.bitcoin.com/v1/" }) +const BITBOX = new BITBOXCli({ restURL: "htts://localhost:3000/v1/" }) + +const ADDR = `mqKgHerAkpvKpSyFawhEKVWZpDPmxHZuLG` + +async function addressDetails() { + try { + // first get BCH balance + const balance = await BITBOX.Address.details([ADDR]) + + console.log(`BCH Balance information:`) + console.log(balance) + } catch (err) { + console.error(`Error in getBalance: `, err) + throw err + } +} +addressDetails() diff --git a/examples/low-level/address-details/package.json b/examples/low-level/address-details/package.json new file mode 100644 index 00000000..65f36677 --- /dev/null +++ b/examples/low-level/address-details/package.json @@ -0,0 +1,29 @@ +{ + "name": "address-details", + "version": "1.0.0", + "description": "Get details about an address", + "main": "address-details.js", + "scripts": { + "test": "echo no tests yet", + "start": "node address-details.js" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/Bitcoin-com/bitbox-javascript-sdk.git" + }, + "keywords": [ + "bitbox", + "example", + "bch", + "bitcoin", + "bitcoin cash", + "bitcoin.com", + "javascript" + ], + "author": "Chris Troutner ", + "license": "MIT", + "bugs": { + "url": "https://github.com/Bitcoin-com/bitbox-javascript-sdk/issues" + }, + "homepage": "https://github.com/Bitcoin-com/bitbox-javascript-sdk/blob/master/README.md" +} From 84f617bfb203f0f34343de7ff84e863a5b301390 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 28 Sep 2018 09:33:52 -0700 Subject: [PATCH 093/480] Added utxo example --- examples/low-level/utxo-address/get-utxos.js | 28 +++++++++++++++++++ examples/low-level/utxo-address/package.json | 29 ++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 examples/low-level/utxo-address/get-utxos.js create mode 100644 examples/low-level/utxo-address/package.json diff --git a/examples/low-level/utxo-address/get-utxos.js b/examples/low-level/utxo-address/get-utxos.js new file mode 100644 index 00000000..c99e4ddc --- /dev/null +++ b/examples/low-level/utxo-address/get-utxos.js @@ -0,0 +1,28 @@ +/* + Check the balance of the root address of an HD node wallet generated + with the create-wallet example. +*/ + +"use strict" + +// Instantiate BITBOX. +const bitboxLib = "../../../lib/bitbox-cli" +const BITBOXCli = require(bitboxLib).default +//const BITBOX = new BITBOXCli({ restURL: "https://trest.bitcoin.com/v1/" }) +const BITBOX = new BITBOXCli({ restURL: "htts://localhost:3000/v1/" }) + +const ADDR = `mqKgHerAkpvKpSyFawhEKVWZpDPmxHZuLG` + +async function getUtxos() { + try { + // first get BCH balance + const utxos = await BITBOX.Address.utxo([ADDR]) + + console.log(`UTXO information for address ${ADDR}:`) + console.log(utxos) + } catch (err) { + console.error(`Error in getUtxos: `, err) + throw err + } +} +getUtxos() diff --git a/examples/low-level/utxo-address/package.json b/examples/low-level/utxo-address/package.json new file mode 100644 index 00000000..f62d3ffb --- /dev/null +++ b/examples/low-level/utxo-address/package.json @@ -0,0 +1,29 @@ +{ + "name": "get-utxos", + "version": "1.0.0", + "description": "Get UTXOs associated with an address", + "main": "get-utxos.js", + "scripts": { + "test": "echo no tests yet", + "start": "node get-utxos.js" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/Bitcoin-com/bitbox-javascript-sdk.git" + }, + "keywords": [ + "bitbox", + "example", + "bch", + "bitcoin", + "bitcoin cash", + "bitcoin.com", + "javascript" + ], + "author": "Chris Troutner ", + "license": "MIT", + "bugs": { + "url": "https://github.com/Bitcoin-com/bitbox-javascript-sdk/issues" + }, + "homepage": "https://github.com/Bitcoin-com/bitbox-javascript-sdk/blob/master/README.md" +} From 14e66f388a4820eeb27bbe9020d5f030a0c76d8c Mon Sep 17 00:00:00 2001 From: haryu703 Date: Sun, 30 Sep 2018 14:28:41 +0900 Subject: [PATCH 094/480] update Address.d.ts --- lib/Address.d.ts | 2 +- typings/Address.d.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/Address.d.ts b/lib/Address.d.ts index 15b1b826..22bbebe6 100644 --- a/lib/Address.d.ts +++ b/lib/Address.d.ts @@ -17,7 +17,7 @@ export declare interface Address { detectAddressType(address: string): string; fromXPub(xpub: string, path?: string): string; fromOutputScript(scriptPubKey:string, network?: string): string; - details(address: string): Promise; + details(address: string | string[]): Promise; utxo(address: string): Promise; unconfirmed(address: string): Promise; } diff --git a/typings/Address.d.ts b/typings/Address.d.ts index 15b1b826..22bbebe6 100644 --- a/typings/Address.d.ts +++ b/typings/Address.d.ts @@ -17,7 +17,7 @@ export declare interface Address { detectAddressType(address: string): string; fromXPub(xpub: string, path?: string): string; fromOutputScript(scriptPubKey:string, network?: string): string; - details(address: string): Promise; + details(address: string | string[]): Promise; utxo(address: string): Promise; unconfirmed(address: string): Promise; } From 891c548bfb7ab9be06f1f409f9c03c5f96429f0c Mon Sep 17 00:00:00 2001 From: haryu703 Date: Sun, 30 Sep 2018 14:56:36 +0900 Subject: [PATCH 095/480] update Address.d.ts --- lib/Address.d.ts | 4 ++-- typings/Address.d.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/Address.d.ts b/lib/Address.d.ts index 22bbebe6..fe43a512 100644 --- a/lib/Address.d.ts +++ b/lib/Address.d.ts @@ -18,8 +18,8 @@ export declare interface Address { fromXPub(xpub: string, path?: string): string; fromOutputScript(scriptPubKey:string, network?: string): string; details(address: string | string[]): Promise; - utxo(address: string): Promise; - unconfirmed(address: string): Promise; + utxo(address: string | string[]): Promise; + unconfirmed(address: string | string[]): Promise; } export declare interface AddressDetailsResult { diff --git a/typings/Address.d.ts b/typings/Address.d.ts index 22bbebe6..fe43a512 100644 --- a/typings/Address.d.ts +++ b/typings/Address.d.ts @@ -18,8 +18,8 @@ export declare interface Address { fromXPub(xpub: string, path?: string): string; fromOutputScript(scriptPubKey:string, network?: string): string; details(address: string | string[]): Promise; - utxo(address: string): Promise; - unconfirmed(address: string): Promise; + utxo(address: string | string[]): Promise; + unconfirmed(address: string | string[]): Promise; } export declare interface AddressDetailsResult { From f2bd3333e46fb8455b87949c7c4a9a7f4b2a527c Mon Sep 17 00:00:00 2001 From: haryu703 Date: Sun, 30 Sep 2018 15:25:00 +0900 Subject: [PATCH 096/480] change Transaction to any --- lib/Transaction.d.ts | 14 ++++---------- lib/TransactionBuilder.d.ts | 2 +- typings/Transaction.d.ts | 14 ++++---------- typings/TransactionBuilder.d.ts | 2 +- 4 files changed, 10 insertions(+), 22 deletions(-) diff --git a/lib/Transaction.d.ts b/lib/Transaction.d.ts index 0dcbb650..b42a881e 100644 --- a/lib/Transaction.d.ts +++ b/lib/Transaction.d.ts @@ -3,17 +3,11 @@ import {Buffer} from 'buffer'; import { TransactionBuilder } from './TransactionBuilder'; export declare interface Transaction { //constructor(restURL: string); - transaction(): Transaction; - toHex(): string; - fromHex(hex: string): string; - transactionBuilder(network: string): TransactionBuilder; - fromTransaction(tx: Transaction): TransactionBuilder; + transaction(): any; + fromHex(hex: string): any; + transactionBuilder(network: string): any; + fromTransaction(tx: any): any; details(txid: string| string[]): Promise; - - // lower level methods - buildIncomplete(): Transaction; - hashForWitnessV0(idx: number, script: Buffer, amount: number, hashType: number): number; - setInputScript(idx: number, scriptSig: Buffer): void; } declare interface TxnDetails{ diff --git a/lib/TransactionBuilder.d.ts b/lib/TransactionBuilder.d.ts index 86482f85..e7bd864c 100644 --- a/lib/TransactionBuilder.d.ts +++ b/lib/TransactionBuilder.d.ts @@ -20,7 +20,7 @@ export declare interface TransactionBuilder { addInputScript(vout: number, script: Buffer): void; addOutput(scriptPubKey: string|Buffer, amount: number): void; sign(vin: number, keyPair: ECPair, redeemScript: Buffer | undefined, hashType: number, value: number): ECSignature; - build(): Transaction; + build(): any; } declare interface HashTypes { diff --git a/typings/Transaction.d.ts b/typings/Transaction.d.ts index 0dcbb650..b42a881e 100644 --- a/typings/Transaction.d.ts +++ b/typings/Transaction.d.ts @@ -3,17 +3,11 @@ import {Buffer} from 'buffer'; import { TransactionBuilder } from './TransactionBuilder'; export declare interface Transaction { //constructor(restURL: string); - transaction(): Transaction; - toHex(): string; - fromHex(hex: string): string; - transactionBuilder(network: string): TransactionBuilder; - fromTransaction(tx: Transaction): TransactionBuilder; + transaction(): any; + fromHex(hex: string): any; + transactionBuilder(network: string): any; + fromTransaction(tx: any): any; details(txid: string| string[]): Promise; - - // lower level methods - buildIncomplete(): Transaction; - hashForWitnessV0(idx: number, script: Buffer, amount: number, hashType: number): number; - setInputScript(idx: number, scriptSig: Buffer): void; } declare interface TxnDetails{ diff --git a/typings/TransactionBuilder.d.ts b/typings/TransactionBuilder.d.ts index 86482f85..e7bd864c 100644 --- a/typings/TransactionBuilder.d.ts +++ b/typings/TransactionBuilder.d.ts @@ -20,7 +20,7 @@ export declare interface TransactionBuilder { addInputScript(vout: number, script: Buffer): void; addOutput(scriptPubKey: string|Buffer, amount: number): void; sign(vin: number, keyPair: ECPair, redeemScript: Buffer | undefined, hashType: number, value: number): ECSignature; - build(): Transaction; + build(): any; } declare interface HashTypes { From d7abfdfe105f3cc2bd55a147f00bc0529d3267dc Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Sun, 30 Sep 2018 12:29:28 -0700 Subject: [PATCH 097/480] Linted /src libraries --- .eslintrc.json | 3 +- src/Address.js | 79 +++++++++++---------------- src/BitcoinCash.js | 46 ++++++++-------- src/Block.js | 3 +- src/Blockchain.js | 73 ++++++++++++------------- src/Control.js | 5 +- src/Crypto.js | 1 - src/ECPair.js | 18 +++---- src/Generating.js | 3 +- src/HDNode.js | 37 ++++++------- src/Mining.js | 14 +++-- src/Mnemonic.js | 111 ++++++++++++++++---------------------- src/Network.js | 23 ++++---- src/Price.js | 11 ++-- src/RawTransactions.js | 25 +++------ src/Script.js | 7 ++- src/Socket.js | 19 ++----- src/Transaction.js | 7 +-- src/TransactionBuilder.js | 19 +++---- src/Util.js | 3 +- src/bitbox-cli.js | 7 +-- 21 files changed, 208 insertions(+), 306 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index bde529ab..076a53da 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,7 +1,8 @@ { "root": true, "parserOptions": { - "ecmaVersion": 2018 + "ecmaVersion": 2018, + "sourceType": "module" }, "plugins": ["prettier"], "rules": { diff --git a/src/Address.js b/src/Address.js index 4cc55aef..2d29f460 100644 --- a/src/Address.js +++ b/src/Address.js @@ -1,4 +1,3 @@ -"use strict" import axios from "axios" import bchaddr from "bchaddrjs" import Bitcoin from "bitcoincashjs-lib" @@ -14,30 +13,28 @@ class Address { } toCashAddress(address, prefix = true) { - if (prefix) { - return bchaddr.toCashAddress(address) - } else { - return bchaddr.toCashAddress(address).split(":")[1] - } + if (prefix) return bchaddr.toCashAddress(address) + + return bchaddr.toCashAddress(address).split(":")[1] } // Converts any address format to hash160 toHash160(address) { - let legacyAddress = bchaddr.toLegacyAddress(address) - let bytes = Bitcoin.address.fromBase58Check(legacyAddress) + const legacyAddress = bchaddr.toLegacyAddress(address) + const bytes = Bitcoin.address.fromBase58Check(legacyAddress) return bytes.hash.toString("hex") } // Converts hash160 to Legacy Address hash160ToLegacy(hash160, network = Bitcoin.networks.bitcoin.pubKeyHash) { - let buffer = Buffer(hash160, "hex") - let legacyAddress = Bitcoin.address.toBase58Check(buffer, network) + const buffer = Buffer(hash160, "hex") + const legacyAddress = Bitcoin.address.toBase58Check(buffer, network) return legacyAddress } // Converts hash160 to Cash Address hash160ToCash(hash160, network = Bitcoin.networks.bitcoin.pubKeyHash) { - let legacyAddress = this.hash160ToLegacy(hash160, network) + const legacyAddress = this.hash160ToLegacy(hash160, network) return this.toCashAddress(legacyAddress) } @@ -52,23 +49,17 @@ class Address { // Test for address network. isMainnetAddress(address) { - if (address[0] === "x") { - return true - } else if (address[0] === "t") { - return false - } else { - return bchaddr.isMainnetAddress(address) - } + if (address[0] === "x") return true + else if (address[0] === "t") return false + + return bchaddr.isMainnetAddress(address) } isTestnetAddress(address) { - if (address[0] === "x") { - return false - } else if (address[0] === "t") { - return true - } else { - return bchaddr.isTestnetAddress(address) - } + if (address[0] === "x") return false + else if (address[0] === "t") return true + + return bchaddr.isTestnetAddress(address) } // Test for address type. @@ -87,13 +78,10 @@ class Address { // Detect address network. detectAddressNetwork(address) { - if (address[0] === "x") { - return "mainnet" - } else if (address[0] === "t") { - return "testnet" - } else { - return bchaddr.detectAddressNetwork(address) - } + if (address[0] === "x") return "mainnet" + else if (address[0] === "t") return "testnet" + + return bchaddr.detectAddressNetwork(address) } // Detect address type. @@ -102,31 +90,28 @@ class Address { } fromXPub(xpub, path = "0/0") { - let HDNode = Bitcoin.HDNode.fromBase58( + const HDNode = Bitcoin.HDNode.fromBase58( xpub, Bitcoin.networks[this.detectAddressNetwork(xpub)] ) - let address = HDNode.derivePath(path) + const address = HDNode.derivePath(path) return this.toCashAddress(address.getAddress()) } fromOutputScript(scriptPubKey, network = "bitcoincash") { let netParam - if (network !== "bitcoincash") { - netParam = Bitcoin.networks.testnet - } + if (network !== "bitcoincash") netParam = Bitcoin.networks.testnet + return bchaddr.toCashAddress( Bitcoin.address.fromOutputScript(scriptPubKey, netParam) ) } async details(address) { - if (typeof address !== "string") { - address = JSON.stringify(address) - } + if (typeof address !== "string") address = JSON.stringify(address) try { - let response = await axios.get( + const response = await axios.get( `${this.restURL}address/details/${address}` ) return response.data @@ -136,12 +121,10 @@ class Address { } async utxo(address) { - if (typeof address !== "string") { - address = JSON.stringify(address) - } + if (typeof address !== "string") address = JSON.stringify(address) try { - let response = await axios.get(`${this.restURL}address/utxo/${address}`) + const response = await axios.get(`${this.restURL}address/utxo/${address}`) return response.data } catch (error) { throw error.response.data @@ -149,12 +132,10 @@ class Address { } async unconfirmed(address) { - if (typeof address !== "string") { - address = JSON.stringify(address) - } + if (typeof address !== "string") address = JSON.stringify(address) try { - let response = await axios.get( + const response = await axios.get( `${this.restURL}address/unconfirmed/${address}` ) return response.data diff --git a/src/BitcoinCash.js b/src/BitcoinCash.js index c0a086f7..d89c0654 100644 --- a/src/BitcoinCash.js +++ b/src/BitcoinCash.js @@ -1,4 +1,3 @@ -"use strict" import Bitcoin from "bitcoincashjs-lib" import bchaddr from "bchaddrjs" import sb from "satoshi-bitcoin" @@ -9,7 +8,7 @@ import coininfo from "coininfo" import bip38 from "bip38" import wif from "wif" -let Buffer = require("safe-buffer").Buffer +const Buffer = require("safe-buffer").Buffer class BitcoinCash { // Translate coins to satoshi value @@ -52,16 +51,17 @@ class BitcoinCash { // sign message signMessageWithPrivKey(privateKeyWIF, message) { - let network = privateKeyWIF.charAt(0) === "c" ? "testnet" : "bitcoincash" + const network = privateKeyWIF.charAt(0) === "c" ? "testnet" : "bitcoincash" let bitcoincash - if (network === "bitcoincash") { - bitcoincash = coininfo.bitcoincash.main - } else { - bitcoincash = coininfo.bitcoincash.test - } - let bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS() - let keyPair = Bitcoin.ECPair.fromWIF(privateKeyWIF, bitcoincashBitcoinJSLib) - let privateKey = keyPair.d.toBuffer(32) + if (network === "bitcoincash") bitcoincash = coininfo.bitcoincash.main + else bitcoincash = coininfo.bitcoincash.test + + const bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS() + const keyPair = Bitcoin.ECPair.fromWIF( + privateKeyWIF, + bitcoincashBitcoinJSLib + ) + const privateKey = keyPair.d.toBuffer(32) return bitcoinMessage .sign(message, privateKey, keyPair.compressed) .toString("base64") @@ -101,7 +101,7 @@ class BitcoinCash { let totalWeight = 0 let hasWitness = false // assumes compressed pubkeys in all cases. - let types = { + const types = { inputs: { "MULTISIG-P2SH": 49 * 4, "MULTISIG-P2WSH": 6 + 41 * 4, @@ -121,15 +121,15 @@ class BitcoinCash { Object.keys(inputs).forEach(function(key) { if (key.slice(0, 8) === "MULTISIG") { // ex. "MULTISIG-P2SH:2-3" would mean 2 of 3 P2SH MULTISIG - let keyParts = key.split(":") - if (keyParts.length !== 2) throw new Error("invalid input: " + key) - let newKey = keyParts[0] - let mAndN = keyParts[1].split("-").map(function(item) { + const keyParts = key.split(":") + if (keyParts.length !== 2) throw new Error(`invalid input: ${key}`) + const newKey = keyParts[0] + const mAndN = keyParts[1].split("-").map(function(item) { return parseInt(item) }) totalWeight += types.inputs[newKey] * inputs[key] - let multiplyer = newKey === "MULTISIG-P2SH" ? 4 : 1 + const multiplyer = newKey === "MULTISIG-P2SH" ? 4 : 1 totalWeight += (73 * mAndN[0] + 34 * mAndN[1]) * multiplyer } else { totalWeight += types.inputs[key] * inputs[key] @@ -149,19 +149,17 @@ class BitcoinCash { } encryptBIP38(privKeyWIF, passphrase) { - let decoded = wif.decode(privKeyWIF) + const decoded = wif.decode(privKeyWIF) return bip38.encrypt(decoded.privateKey, decoded.compressed, passphrase) } decryptBIP38(encryptedKey, passphrase, network = "mainnet") { - let decryptedKey = bip38.decrypt(encryptedKey, passphrase) + const decryptedKey = bip38.decrypt(encryptedKey, passphrase) let prefix - if (network === "testnet") { - prefix = 0xef - } else { - prefix = 0x80 - } + if (network === "testnet") prefix = 0xef + else prefix = 0x80 + return wif.encode(prefix, decryptedKey.privateKey, decryptedKey.compressed) } } diff --git a/src/Block.js b/src/Block.js index 40ac62b6..694a06b9 100644 --- a/src/Block.js +++ b/src/Block.js @@ -1,4 +1,3 @@ -"use strict" import axios from "axios" class Block { constructor(restURL) { @@ -7,7 +6,7 @@ class Block { async details(id) { try { - let response = await axios.get(`${this.restURL}block/details/${id}`) + const response = await axios.get(`${this.restURL}block/details/${id}`) return response.data } catch (error) { throw error.response.data diff --git a/src/Blockchain.js b/src/Blockchain.js index fdcc454c..2fb559c3 100644 --- a/src/Blockchain.js +++ b/src/Blockchain.js @@ -1,4 +1,3 @@ -"use strict" import axios from "axios" class Blockchain { constructor(restURL) { @@ -7,7 +6,7 @@ class Blockchain { async getBestBlockHash() { try { - let response = await axios.get( + const response = await axios.get( `${this.restURL}blockchain/getBestBlockHash` ) return response.data @@ -18,7 +17,7 @@ class Blockchain { async getBlock(blockhash, verbose = true) { try { - let response = await axios.get( + const response = await axios.get( `${this.restURL}blockchain/getBlock/${blockhash}?verbose=${verbose}` ) return response.data @@ -29,7 +28,7 @@ class Blockchain { async getBlockchainInfo() { try { - let response = await axios.get( + const response = await axios.get( `${this.restURL}blockchain/getBlockchainInfo` ) return response.data @@ -40,7 +39,9 @@ class Blockchain { async getBlockCount() { try { - let response = await axios.get(`${this.restURL}blockchain/getBlockCount`) + const response = await axios.get( + `${this.restURL}blockchain/getBlockCount` + ) return response.data } catch (error) { throw error.response.data @@ -48,11 +49,10 @@ class Blockchain { } async getBlockHash(height = 1) { - if (typeof height !== "string") { - height = JSON.stringify(height) - } + if (typeof height !== "string") height = JSON.stringify(height) + try { - let response = await axios.get( + const response = await axios.get( `${this.restURL}blockchain/getBlockHash/${height}` ) return response.data @@ -62,11 +62,10 @@ class Blockchain { } async getBlockHeader(hash, verbose = true) { - if (typeof hash !== "string") { - hash = JSON.stringify(hash) - } + if (typeof hash !== "string") hash = JSON.stringify(hash) + try { - let response = await axios.get( + const response = await axios.get( `${this.restURL}blockchain/getBlockHeader/${hash}?verbose=${verbose}` ) return response.data @@ -77,7 +76,7 @@ class Blockchain { async getChainTips() { try { - let response = await axios.get(`${this.restURL}blockchain/getChainTips`) + const response = await axios.get(`${this.restURL}blockchain/getChainTips`) return response.data } catch (error) { throw error.response.data @@ -86,7 +85,9 @@ class Blockchain { async getDifficulty() { try { - let response = await axios.get(`${this.restURL}blockchain/getDifficulty`) + const response = await axios.get( + `${this.restURL}blockchain/getDifficulty` + ) return response.data } catch (error) { throw error.response.data @@ -94,11 +95,10 @@ class Blockchain { } async getMempoolAncestors(txid, verbose = false) { - if (typeof txid !== "string") { - txid = JSON.stringify(txid) - } + if (typeof txid !== "string") txid = JSON.stringify(txid) + try { - let response = await axios.get( + const response = await axios.get( `${ this.restURL }blockchain/getMempoolAncestors/${txid}?verbose=${verbose}` @@ -110,12 +110,10 @@ class Blockchain { } async getMempoolDescendants(txid, verbose = false) { - if (typeof txid !== "string") { - txid = JSON.stringify(txid) - } + if (typeof txid !== "string") txid = JSON.stringify(txid) try { - let response = await axios.get( + const response = await axios.get( `${ this.restURL }blockchain/getMempoolDescendants/${txid}?verbose=${verbose}` @@ -127,12 +125,10 @@ class Blockchain { } async getMempoolEntry(txid) { - if (typeof txid !== "string") { - txid = JSON.stringify(txid) - } + if (typeof txid !== "string") txid = JSON.stringify(txid) try { - let response = await axios.get( + const response = await axios.get( `${this.restURL}blockchain/getMempoolEntry/${txid}` ) return response.data @@ -143,7 +139,9 @@ class Blockchain { async getMempoolInfo() { try { - let response = await axios.get(`${this.restURL}blockchain/getMempoolInfo`) + const response = await axios.get( + `${this.restURL}blockchain/getMempoolInfo` + ) return response.data } catch (error) { throw error.response.data @@ -152,7 +150,7 @@ class Blockchain { async getRawMempool(verbose = false) { try { - let response = await axios.get( + const response = await axios.get( `${this.restURL}blockchain/getRawMempool?vebose=${verbose}` ) return response.data @@ -163,7 +161,7 @@ class Blockchain { async getTxOut(txid, n, include_mempool = true) { try { - let response = await axios.get( + const response = await axios.get( `${ this.restURL }blockchain/getTxOut/${txid}/n?include_mempool=${include_mempool}` @@ -176,11 +174,10 @@ class Blockchain { async getTxOutProof(txids, blockhash) { let path = `${this.restURL}blockchain/getTxOutProof/${txids}` - if (blockhash) { - path = `${path}?blockhash=${blockhash}` - } + if (blockhash) path = `${path}?blockhash=${blockhash}` + try { - let response = await axios.get(path) + const response = await axios.get(path) return response.data } catch (error) { throw error.response.data @@ -189,7 +186,7 @@ class Blockchain { async preciousBlock(blockhash) { try { - let response = await axios.get( + const response = await axios.get( `${this.restURL}blockchain/preciousBlock/${blockhash}` ) return response.data @@ -200,7 +197,7 @@ class Blockchain { async pruneBlockchain(height) { try { - let response = await axios.post( + const response = await axios.post( `${this.restURL}blockchain/pruneBlockchain/${height}` ) return response.data @@ -211,7 +208,7 @@ class Blockchain { async verifyChain(checklevel = 3, nblocks = 6) { try { - let response = await axios.get( + const response = await axios.get( `${ this.restURL }blockchain/verifyChain?checklevel=${checklevel}&nblocks=${nblocks}` @@ -224,7 +221,7 @@ class Blockchain { async verifyTxOutProof(proof) { try { - let response = await axios.get( + const response = await axios.get( `${this.restURL}blockchain/verifyTxOutProof/proof` ) return response.data diff --git a/src/Control.js b/src/Control.js index edae47e5..22ddf728 100644 --- a/src/Control.js +++ b/src/Control.js @@ -1,4 +1,3 @@ -"use strict" import axios from "axios" class Control { constructor(restURL) { @@ -7,7 +6,7 @@ class Control { async getInfo() { try { - let response = await axios.get(`${this.restURL}control/getInfo`) + const response = await axios.get(`${this.restURL}control/getInfo`) return response.data } catch (error) { throw error.response.data @@ -16,7 +15,7 @@ class Control { async getMemoryInfo() { try { - let response = await axios.get(`${this.restURL}control/getMemoryInfo`) + const response = await axios.get(`${this.restURL}control/getMemoryInfo`) return response.data } catch (error) { throw error.response.data diff --git a/src/Crypto.js b/src/Crypto.js index 254c8574..669ffaaa 100644 --- a/src/Crypto.js +++ b/src/Crypto.js @@ -1,4 +1,3 @@ -"use strict" import randomBytes from "randombytes" import Bitcoin from "bitcoincashjs-lib" diff --git a/src/ECPair.js b/src/ECPair.js index dde6d196..4ddc24ce 100644 --- a/src/ECPair.js +++ b/src/ECPair.js @@ -1,4 +1,3 @@ -"use strict" import Bitcoin from "bitcoincashjs-lib" import bchaddr from "bchaddrjs" import coininfo from "coininfo" @@ -6,18 +5,15 @@ import coininfo from "coininfo" class ECPair { static fromWIF(privateKeyWIF) { let network - if (privateKeyWIF[0] === "L" || privateKeyWIF[0] === "K") { + if (privateKeyWIF[0] === "L" || privateKeyWIF[0] === "K") network = "bitcoincash" - } else if (privateKeyWIF[0] === "c") { - network = "testnet" - } + else if (privateKeyWIF[0] === "c") network = "testnet" + let bitcoincash - if (network === "bitcoincash") { - bitcoincash = coininfo.bitcoincash.main - } else { - bitcoincash = coininfo.bitcoincash.test - } - let bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS() + if (network === "bitcoincash") bitcoincash = coininfo.bitcoincash.main + else bitcoincash = coininfo.bitcoincash.test + + const bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS() return Bitcoin.ECPair.fromWIF(privateKeyWIF, bitcoincashBitcoinJSLib) } diff --git a/src/Generating.js b/src/Generating.js index 35266dda..161426fb 100644 --- a/src/Generating.js +++ b/src/Generating.js @@ -1,4 +1,3 @@ -"use strict" import axios from "axios" class Generating { constructor(restURL) { @@ -7,7 +6,7 @@ class Generating { async generateToAddress(blocks, address, maxtries = 1000000) { try { - let response = await axios.post( + const response = await axios.post( `${ this.restURL }generating/generateToAddress/${blocks}/${address}?maxtries=${maxtries}` diff --git a/src/HDNode.js b/src/HDNode.js index e2c0dd3f..e6a65a70 100644 --- a/src/HDNode.js +++ b/src/HDNode.js @@ -1,4 +1,3 @@ -"use strict" import Bitcoin from "bitcoincashjs-lib" import bchaddr from "bchaddrjs" import coininfo from "coininfo" @@ -7,12 +6,10 @@ import bip32utils from "bip32-utils" class HDNode { fromSeed(rootSeedBuffer, network = "bitcoincash") { let bitcoincash - if (network === "bitcoincash") { - bitcoincash = coininfo.bitcoincash.main - } else { - bitcoincash = coininfo.bitcoincash.test - } - let bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS() + if (network === "bitcoincash") bitcoincash = coininfo.bitcoincash.main + else bitcoincash = coininfo.bitcoincash.test + + const bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS() return Bitcoin.HDNode.fromSeedBuffer( rootSeedBuffer, bitcoincashBitcoinJSLib @@ -49,23 +46,19 @@ class HDNode { fromXPriv(xpriv) { let bitcoincash - if (xpriv[0] === "x") { - bitcoincash = coininfo.bitcoincash.main - } else if (xpriv[0] === "t") { - bitcoincash = coininfo.bitcoincash.test - } - let bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS() + if (xpriv[0] === "x") bitcoincash = coininfo.bitcoincash.main + else if (xpriv[0] === "t") bitcoincash = coininfo.bitcoincash.test + + const bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS() return Bitcoin.HDNode.fromBase58(xpriv, bitcoincashBitcoinJSLib) } fromXPub(xpub) { let bitcoincash - if (xpub[0] === "x") { - bitcoincash = coininfo.bitcoincash.main - } else if (xpub[0] === "t") { - bitcoincash = coininfo.bitcoincash.test - } - let bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS() + if (xpub[0] === "x") bitcoincash = coininfo.bitcoincash.main + else if (xpub[0] === "t") bitcoincash = coininfo.bitcoincash.test + + const bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS() return Bitcoin.HDNode.fromBase58(xpub, bitcoincashBitcoinJSLib) } @@ -106,9 +99,9 @@ class HDNode { } createAccount(hdNodes) { - let arr = hdNodes.map((item, index) => { - return new bip32utils.Chain(item.neutered()) - }) + const arr = hdNodes.map( + (item, index) => new bip32utils.Chain(item.neutered()) + ) return new bip32utils.Account(arr) } diff --git a/src/Mining.js b/src/Mining.js index 6b4da681..6d5794c4 100644 --- a/src/Mining.js +++ b/src/Mining.js @@ -1,4 +1,3 @@ -"use strict" import axios from "axios" class Mining { constructor(restURL) { @@ -7,7 +6,7 @@ class Mining { async getBlockTemplate(template_request) { try { - let response = await axios.get( + const response = await axios.get( `${this.restURL}mining/getBlockTemplate/${template_request}` ) return response.data @@ -18,7 +17,7 @@ class Mining { async getMiningInfo() { try { - let response = await axios.get(`${this.restURL}mining/getMiningInfo`) + const response = await axios.get(`${this.restURL}mining/getMiningInfo`) return response.data } catch (error) { throw error.response.data @@ -27,7 +26,7 @@ class Mining { async getNetworkHashps(nblocks = 120, height = 1) { try { - let response = await axios.get( + const response = await axios.get( `${ this.restURL }mining/getNetworkHashps?nblocks=${nblocks}&height=${height}` @@ -40,11 +39,10 @@ class Mining { async submitBlock(hex, parameters) { let path = `${this.restURL}mining/submitBlock/${hex}` - if (parameters) { - path = `${path}?parameters=${parameters}` - } + if (parameters) path = `${path}?parameters=${parameters}` + try { - let response = await axios.post(path) + const response = await axios.post(path) return response.data } catch (error) { throw error.response.data diff --git a/src/Mnemonic.js b/src/Mnemonic.js index ff603bae..6d5546d9 100644 --- a/src/Mnemonic.js +++ b/src/Mnemonic.js @@ -1,11 +1,10 @@ -"use strict" import Crypto from "./Crypto" import BIP39 from "bip39" import randomBytes from "randombytes" import Bitcoin from "bitcoincashjs-lib" import bchaddr from "bchaddrjs" -let Buffer = require("safe-buffer").Buffer +const Buffer = require("safe-buffer").Buffer class Mnemonic { generate(bits = 128, wordlist) { @@ -22,28 +21,25 @@ class Mnemonic { validate(mnemonic, wordlist) { // Preprocess the words - let words = mnemonic.split(" ") + const words = mnemonic.split(" ") // Detect blank phrase - if (words.length == 0) { - return "Blank mnemonic" - } + if (words.length === 0) return "Blank mnemonic" + // Check each word for (let i = 0; i < words.length; i++) { - let word = words[i] + const word = words[i] if (wordlist.indexOf(word) == -1) { // Finding closest match to word - let nearestWord = this.findNearestWord(word, wordlist) + const nearestWord = this.findNearestWord(word, wordlist) return `${word} is not in wordlist, did you mean ${nearestWord}?` } } // Check the words are valid - let properPhrase = words.join() - let isValid = BIP39.validateMnemonic(mnemonic, wordlist) - if (!isValid) { - return "Invalid mnemonic" - } else { - return "Valid mnemonic" - } + const properPhrase = words.join() + const isValid = BIP39.validateMnemonic(mnemonic, wordlist) + if (!isValid) return "Invalid mnemonic" + + return "Valid mnemonic" } toSeed(mnemonic, password = "") { @@ -55,14 +51,14 @@ class Mnemonic { } toKeypairs(mnemonic, numberOfKeypairs = 1) { - let rootSeedBuffer = this.toSeed(mnemonic, "") - let hdNode = Bitcoin.HDNode.fromSeedBuffer(rootSeedBuffer) - let HDPath = `44'/145'/0'/0/` + const rootSeedBuffer = this.toSeed(mnemonic, "") + const hdNode = Bitcoin.HDNode.fromSeedBuffer(rootSeedBuffer) + const HDPath = `44'/145'/0'/0/` - let accounts = [] + const accounts = [] for (let i = 0; i < numberOfKeypairs; i++) { - let childHDNode = hdNode.derivePath(`${HDPath}${i}`) + const childHDNode = hdNode.derivePath(`${HDPath}${i}`) accounts.push({ privateKeyWIF: childHDNode.keyPair.toWIF(), address: bchaddr.toCashAddress(childHDNode.getAddress()) @@ -75,11 +71,10 @@ class Mnemonic { let minDistance = 99 let closestWord = wordlist[0] for (let i = 0; i < wordlist.length; i++) { - let comparedTo = wordlist[i] - if (comparedTo.indexOf(word) == 0) { - return comparedTo - } - let distance = Levenshtein.get(word, comparedTo) + const comparedTo = wordlist[i] + if (comparedTo.indexOf(word) == 0) return comparedTo + + const distance = Levenshtein.get(word, comparedTo) if (distance < minDistance) { closestWord = comparedTo minDistance = distance @@ -103,13 +98,11 @@ export default Mnemonic * @return Object the final object. */ -var _extend = function(dst) { - var sources = Array.prototype.slice.call(arguments, 1) - for (var i = 0; i < sources.length; ++i) { - var src = sources[i] - for (var p in src) { - if (src.hasOwnProperty(p)) dst[p] = src[p] - } +const _extend = function(dst) { + const sources = Array.prototype.slice.call(arguments, 1) + for (let i = 0; i < sources.length; ++i) { + const src = sources[i] + for (const p in src) if (src.hasOwnProperty(p)) dst[p] = src[p] } return dst } @@ -118,12 +111,10 @@ var _extend = function(dst) { * Defer execution of given function. * @param {Function} func */ -var _defer = function(func) { - if (typeof setImmediate === "function") { - return setImmediate(func) - } else { - return setTimeout(func, 0) - } +const _defer = function(func) { + if (typeof setImmediate === "function") return setImmediate(func) + + return setTimeout(func, 0) } /** @@ -144,7 +135,7 @@ var Levenshtein = { if (str2.length === 0) return str1.length // two rows - var prevRow = new Array(str2.length + 1), + let prevRow = new Array(str2.length + 1), curCol, nextCol, i, @@ -152,9 +143,7 @@ var Levenshtein = { tmp // initialise previous row - for (i = 0; i < prevRow.length; ++i) { - prevRow[i] = i - } + for (i = 0; i < prevRow.length; ++i) prevRow[i] = i // calculate current row distance from previous row for (i = 0; i < str1.length; ++i) { @@ -167,14 +156,11 @@ var Levenshtein = { nextCol = prevRow[j] + (str1.charAt(i) === str2.charAt(j) ? 0 : 1) // insertion tmp = curCol + 1 - if (nextCol > tmp) { - nextCol = tmp - } + if (nextCol > tmp) nextCol = tmp + // deletion tmp = prevRow[j + 1] + 1 - if (nextCol > tmp) { - nextCol = tmp - } + if (nextCol > tmp) nextCol = tmp // copy current col value into previous (in preparation for next iteration) prevRow[j] = curCol @@ -211,7 +197,7 @@ var Levenshtein = { if (str2.length === 0) return cb(null, str1.length) // two rows - var prevRow = new Array(str2.length + 1), + let prevRow = new Array(str2.length + 1), curCol, nextCol, i, @@ -221,9 +207,7 @@ var Levenshtein = { currentTime // initialise previous row - for (i = 0; i < prevRow.length; ++i) { - prevRow[i] = i - } + for (i = 0; i < prevRow.length; ++i) prevRow[i] = i nextCol = 1 i = 0 @@ -242,14 +226,12 @@ var Levenshtein = { prevRow[j] = nextCol // if already done all chars - if (str1.length <= ++i) { - return cb(null, nextCol) - } + if (str1.length <= ++i) return cb(null, nextCol) + // else if we have more left to do - else { - nextCol = i + 1 - j = 0 - } + + nextCol = i + 1 + j = 0 } // calculation @@ -259,14 +241,11 @@ var Levenshtein = { nextCol = prevRow[j] + (str1.charAt(i) === str2.charAt(j) ? 0 : 1) // insertion tmp = curCol + 1 - if (nextCol > tmp) { - nextCol = tmp - } + if (nextCol > tmp) nextCol = tmp + // deletion tmp = prevRow[j + 1] + 1 - if (nextCol > tmp) { - nextCol = tmp - } + if (nextCol > tmp) nextCol = tmp // copy current into previous (in preparation for next iteration) prevRow[j] = curCol @@ -280,7 +259,7 @@ var Levenshtein = { try { options.progress.call(null, (i * 100.0) / str1.length) } catch (err) { - return cb("Progress callback: " + err.toString()) + return cb(`Progress callback: ${err.toString()}`) } } diff --git a/src/Network.js b/src/Network.js index 41899dcf..e9fa4760 100644 --- a/src/Network.js +++ b/src/Network.js @@ -1,4 +1,3 @@ -"use strict" import axios from "axios" class Network { constructor(restURL) { @@ -7,7 +6,7 @@ class Network { async addNode(node, command) { try { - let response = await axios.post( + const response = await axios.post( `${this.restURL}network/addNode/${node}/${command}` ) return response.data @@ -18,7 +17,7 @@ class Network { async clearBanned() { try { - let response = await axios.post(`${this.restURL}clearBanned`) + const response = await axios.post(`${this.restURL}clearBanned`) return response.data } catch (error) { throw error.response.data @@ -27,7 +26,7 @@ class Network { async disconnectNode(configuration) { try { - let response = await axios.post( + const response = await axios.post( `${this.restURL}disconnectNode/${configuration}` ) return response.data @@ -38,12 +37,10 @@ class Network { async getAddedNodeInfo(node) { let path = `${this.restURL}network/getAddedNodeInfo` - if (node) { - path = `${path}?node=${node}` - } + if (node) path = `${path}?node=${node}` try { - let response = await axios.get(path) + const response = await axios.get(path) return response.data } catch (error) { throw error.response.data @@ -52,7 +49,7 @@ class Network { async getConnectionCount() { try { - let response = await axios.get( + const response = await axios.get( `${this.restURL}network/getConnectionCount` ) return response.data @@ -63,7 +60,7 @@ class Network { async getNetTotals() { try { - let response = await axios.get(`${this.restURL}network/getNetTotals`) + const response = await axios.get(`${this.restURL}network/getNetTotals`) return response.data } catch (error) { throw error.response.data @@ -72,7 +69,7 @@ class Network { async getNetworkInfo() { try { - let response = await axios.get(`${this.restURL}network/getNetworkInfo`) + const response = await axios.get(`${this.restURL}network/getNetworkInfo`) return response.data } catch (error) { throw error.response.data @@ -81,7 +78,7 @@ class Network { async getPeerInfo() { try { - let response = await axios.get(`${this.restURL}network/getPeerInfo`) + const response = await axios.get(`${this.restURL}network/getPeerInfo`) return response.data } catch (error) { throw error.response.data @@ -101,7 +98,7 @@ class Network { async ping() { try { - let response = await axios.get(`${this.restURL}network/ping`) + const response = await axios.get(`${this.restURL}network/ping`) return response.data } catch (error) { throw error.response.data diff --git a/src/Price.js b/src/Price.js index 9fb44b7c..40cc2d01 100644 --- a/src/Price.js +++ b/src/Price.js @@ -1,16 +1,13 @@ -"use strict" import axios from "axios" class Price { async current(currency = "all") { try { - let response = await axios.get( + const response = await axios.get( `https://www.blocktrail.com/BCC/json/blockchain/price` ) - if (currency === "all") { - return response.data - } else { - return response.data[currency.toUpperCase()] - } + if (currency === "all") return response.data + + return response.data[currency.toUpperCase()] } catch (error) { throw error.response.data } diff --git a/src/RawTransactions.js b/src/RawTransactions.js index f2918577..81717220 100644 --- a/src/RawTransactions.js +++ b/src/RawTransactions.js @@ -1,4 +1,3 @@ -"use strict" import axios from "axios" class RawTransactions { constructor(restURL) { @@ -6,12 +5,10 @@ class RawTransactions { } async decodeRawTransaction(hex) { - if (typeof hex !== "string") { - hex = JSON.stringify(hex) - } + if (typeof hex !== "string") hex = JSON.stringify(hex) try { - let response = await axios.get( + const response = await axios.get( `${this.restURL}rawtransactions/decodeRawTransaction/${hex}` ) return response.data @@ -21,12 +18,10 @@ class RawTransactions { } async decodeScript(script) { - if (typeof script !== "string") { - script = JSON.stringify(script) - } + if (typeof script !== "string") script = JSON.stringify(script) try { - let response = await axios.get( + const response = await axios.get( `${this.restURL}rawtransactions/decodeScript/${script}` ) return response.data @@ -36,12 +31,10 @@ class RawTransactions { } async getRawTransaction(txid, verbose = false) { - if (typeof txid !== "string") { - txid = JSON.stringify(txid) - } + if (typeof txid !== "string") txid = JSON.stringify(txid) try { - let response = await axios.get( + const response = await axios.get( `${ this.restURL }rawtransactions/getRawTransaction/${txid}?verbose=${verbose}` @@ -53,12 +46,10 @@ class RawTransactions { } async sendRawTransaction(hex, allowhighfees = false) { - if (typeof hex !== "string") { - hex = JSON.stringify(hex) - } + if (typeof hex !== "string") hex = JSON.stringify(hex) try { - let response = await axios.post( + const response = await axios.post( `${ this.restURL }rawtransactions/sendRawTransaction/${hex}?allowhighfees=${allowhighfees}` diff --git a/src/Script.js b/src/Script.js index 95fde869..7fb178e5 100644 --- a/src/Script.js +++ b/src/Script.js @@ -1,4 +1,3 @@ -"use strict" import Bitcoin from "bitcoincashjs-lib" import opcodes from "bitcoin-ops" @@ -9,7 +8,7 @@ class Script { this.multisig = { input: { encode: signatures => { - let sigs = [] + const sigs = [] signatures.forEach(sig => { sigs.push(sig) }) @@ -20,7 +19,7 @@ class Script { }, output: { encode: (m, pubKeys) => { - let pks = [] + const pks = [] pubKeys.forEach(pubKey => { pks.push(pubKey) }) @@ -48,7 +47,7 @@ class Script { } encode(scriptChunks) { - let arr = [] + const arr = [] scriptChunks.forEach(chunk => { arr.push(chunk) }) diff --git a/src/Socket.js b/src/Socket.js index a2a600f6..afe31a88 100644 --- a/src/Socket.js +++ b/src/Socket.js @@ -1,4 +1,3 @@ -"use strict" import io from "socket.io-client" class Socket { @@ -10,28 +9,20 @@ class Socket { if (config.restURL) { this.socket = io(`${config.restURL}`) } else { - let restURL = "https://rest.bitcoin.com" + const restURL = "https://rest.bitcoin.com" this.socket = io(`${restURL}`) } - if (config.callback) { - config.callback() - } + if (config.callback) config.callback() } } listen(endpoint, cb) { this.socket.emit(endpoint) - if (endpoint === "blocks") { - this.socket.on("blocks", msg => { - return cb(msg) - }) - } else if (endpoint === "transactions") { - this.socket.on("transactions", msg => { - return cb(msg) - }) - } + if (endpoint === "blocks") this.socket.on("blocks", msg => cb(msg)) + else if (endpoint === "transactions") + this.socket.on("transactions", msg => cb(msg)) } } diff --git a/src/Transaction.js b/src/Transaction.js index 5f187872..9edb3f42 100644 --- a/src/Transaction.js +++ b/src/Transaction.js @@ -1,4 +1,3 @@ -"use strict" import Bitcoin from "bitcoincashjs-lib" import axios from "axios" @@ -24,12 +23,10 @@ class Transaction { } async details(txid) { - if (typeof txid !== "string") { - txid = JSON.stringify(txid) - } + if (typeof txid !== "string") txid = JSON.stringify(txid) try { - let response = await axios.get( + const response = await axios.get( `${this.restURL}transaction/details/${txid}` ) return response.data diff --git a/src/TransactionBuilder.js b/src/TransactionBuilder.js index 12f72bbe..67df11ee 100644 --- a/src/TransactionBuilder.js +++ b/src/TransactionBuilder.js @@ -1,4 +1,3 @@ -"use strict" import Bitcoin from "bitcoincashjs-lib" import bchaddr from "bchaddrjs" import coininfo from "coininfo" @@ -8,12 +7,10 @@ import bip68 from "bip68" class TransactionBuilder { constructor(network = "bitcoincash") { let bitcoincash - if (network === "bitcoincash") { - bitcoincash = coininfo.bitcoincash.main - } else { - bitcoincash = coininfo.bitcoincash.test - } - let bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS() + if (network === "bitcoincash") bitcoincash = coininfo.bitcoincash.main + else bitcoincash = coininfo.bitcoincash.test + + const bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS() this.transaction = new Bitcoin.TransactionBuilder(bitcoincashBitcoinJSLib) this.DEFAULT_SEQUENCE = 0xffffffff this.hashTypes = { @@ -69,11 +66,9 @@ class TransactionBuilder { } build() { - if (this.p2shInput === true) { - return this.tx - } else { - return this.transaction.build() - } + if (this.p2shInput === true) return this.tx + + return this.transaction.build() } } diff --git a/src/Util.js b/src/Util.js index dc32c1aa..0604bf67 100644 --- a/src/Util.js +++ b/src/Util.js @@ -1,4 +1,3 @@ -"use strict" import axios from "axios" class Util { constructor(restURL) { @@ -7,7 +6,7 @@ class Util { async validateAddress(address) { try { - let response = await axios.get( + const response = await axios.get( `${this.restURL}util/validateAddress/${address}` ) return response.data diff --git a/src/bitbox-cli.js b/src/bitbox-cli.js index a885e15b..68830669 100644 --- a/src/bitbox-cli.js +++ b/src/bitbox-cli.js @@ -1,4 +1,3 @@ -"use strict" // 3rd party deps import axios from "axios" import Bitcoin from "bitcoincashjs-lib" @@ -26,11 +25,9 @@ import Socket from "./Socket" class BITBOXCli { constructor(config) { - if (config && config.restURL && config.restURL !== "") { + if (config && config.restURL && config.restURL !== "") this.restURL = config.restURL - } else { - this.restURL = "https://rest.bitcoin.com/v1/" - } + else this.restURL = "https://rest.bitcoin.com/v1/" this.Address = new Address(this.restURL) this.BitcoinCash = new BitcoinCash() From 6e4a76d3bdeb6c3ff45e6d88a4d4ee83dbdb6a18 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Sun, 30 Sep 2018 12:55:57 -0700 Subject: [PATCH 098/480] minor change to push branch --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 560893ae..a5b1fef9 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # `bitbox-cli` -## Command line tool for https://developer.bitcoin.com/bitbox.html +## Command line tool for https://developer.bitcoin.com/bitbox.html `bitbox-cli` is a utility for creating great [Bitcoin Cash](https://www.bitcoincash.org) applications. If can be used from the command line or from within client/server apps. From 5be61f214c189c653bc35baa1ad997753c27af5d Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Wed, 3 Oct 2018 07:07:16 -0700 Subject: [PATCH 099/480] Built and tested repo --- lib/Address.js | 55 ++++++++---------------- lib/BitcoinCash.js | 14 ++----- lib/Blockchain.js | 28 +++++-------- lib/ECPair.js | 14 ++----- lib/HDNode.js | 21 +++------- lib/Mining.js | 5 +-- lib/Mnemonic.js | 88 ++++++++++++++++----------------------- lib/Network.js | 4 +- lib/Price.js | 8 ++-- lib/RawTransactions.js | 16 ++----- lib/Socket.js | 18 +++----- lib/Transaction.js | 4 +- lib/TransactionBuilder.js | 15 +++---- lib/bitbox-cli.js | 10 ++--- 14 files changed, 101 insertions(+), 199 deletions(-) diff --git a/lib/Address.js b/lib/Address.js index 4a64eb7c..22562208 100644 --- a/lib/Address.js +++ b/lib/Address.js @@ -42,11 +42,9 @@ var Address = function () { value: function toCashAddress(address) { var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - if (prefix) { - return _bchaddrjs2.default.toCashAddress(address); - } else { - return _bchaddrjs2.default.toCashAddress(address).split(":")[1]; - } + if (prefix) return _bchaddrjs2.default.toCashAddress(address); + + return _bchaddrjs2.default.toCashAddress(address).split(":")[1]; } // Converts any address format to hash160 @@ -100,24 +98,16 @@ var Address = function () { }, { key: "isMainnetAddress", value: function isMainnetAddress(address) { - if (address[0] === "x") { - return true; - } else if (address[0] === "t") { - return false; - } else { - return _bchaddrjs2.default.isMainnetAddress(address); - } + if (address[0] === "x") return true;else if (address[0] === "t") return false; + + return _bchaddrjs2.default.isMainnetAddress(address); } }, { key: "isTestnetAddress", value: function isTestnetAddress(address) { - if (address[0] === "x") { - return false; - } else if (address[0] === "t") { - return true; - } else { - return _bchaddrjs2.default.isTestnetAddress(address); - } + if (address[0] === "x") return false;else if (address[0] === "t") return true; + + return _bchaddrjs2.default.isTestnetAddress(address); } // Test for address type. @@ -146,13 +136,9 @@ var Address = function () { }, { key: "detectAddressNetwork", value: function detectAddressNetwork(address) { - if (address[0] === "x") { - return "mainnet"; - } else if (address[0] === "t") { - return "testnet"; - } else { - return _bchaddrjs2.default.detectAddressNetwork(address); - } + if (address[0] === "x") return "mainnet";else if (address[0] === "t") return "testnet"; + + return _bchaddrjs2.default.detectAddressNetwork(address); } // Detect address type. @@ -177,17 +163,14 @@ var Address = function () { var network = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "bitcoincash"; var netParam = void 0; - if (network !== "bitcoincash") { - netParam = _bitcoincashjsLib2.default.networks.testnet; - } + if (network !== "bitcoincash") netParam = _bitcoincashjsLib2.default.networks.testnet; + return _bchaddrjs2.default.toCashAddress(_bitcoincashjsLib2.default.address.fromOutputScript(scriptPubKey, netParam)); } }, { key: "details", value: async function details(address) { - if (typeof address !== "string") { - address = JSON.stringify(address); - } + if (typeof address !== "string") address = JSON.stringify(address); try { var response = await _axios2.default.get(this.restURL + "address/details/" + address); @@ -199,9 +182,7 @@ var Address = function () { }, { key: "utxo", value: async function utxo(address) { - if (typeof address !== "string") { - address = JSON.stringify(address); - } + if (typeof address !== "string") address = JSON.stringify(address); try { var response = await _axios2.default.get(this.restURL + "address/utxo/" + address); @@ -213,9 +194,7 @@ var Address = function () { }, { key: "unconfirmed", value: async function unconfirmed(address) { - if (typeof address !== "string") { - address = JSON.stringify(address); - } + if (typeof address !== "string") address = JSON.stringify(address); try { var response = await _axios2.default.get(this.restURL + "address/unconfirmed/" + address); diff --git a/lib/BitcoinCash.js b/lib/BitcoinCash.js index eeb425df..cdbac7ca 100644 --- a/lib/BitcoinCash.js +++ b/lib/BitcoinCash.js @@ -110,11 +110,8 @@ var BitcoinCash = function () { value: function signMessageWithPrivKey(privateKeyWIF, message) { var network = privateKeyWIF.charAt(0) === "c" ? "testnet" : "bitcoincash"; var bitcoincash = void 0; - if (network === "bitcoincash") { - bitcoincash = _coininfo2.default.bitcoincash.main; - } else { - bitcoincash = _coininfo2.default.bitcoincash.test; - } + if (network === "bitcoincash") bitcoincash = _coininfo2.default.bitcoincash.main;else bitcoincash = _coininfo2.default.bitcoincash.test; + var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); var keyPair = _bitcoincashjsLib2.default.ECPair.fromWIF(privateKeyWIF, bitcoincashBitcoinJSLib); var privateKey = keyPair.d.toBuffer(32); @@ -227,11 +224,8 @@ var BitcoinCash = function () { var decryptedKey = _bip4.default.decrypt(encryptedKey, passphrase); var prefix = void 0; - if (network === "testnet") { - prefix = 0xef; - } else { - prefix = 0x80; - } + if (network === "testnet") prefix = 0xef;else prefix = 0x80; + return _wif2.default.encode(prefix, decryptedKey.privateKey, decryptedKey.compressed); } }]); diff --git a/lib/Blockchain.js b/lib/Blockchain.js index df5e322e..a496e88f 100644 --- a/lib/Blockchain.js +++ b/lib/Blockchain.js @@ -68,9 +68,8 @@ var Blockchain = function () { value: async function getBlockHash() { var height = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; - if (typeof height !== "string") { - height = JSON.stringify(height); - } + if (typeof height !== "string") height = JSON.stringify(height); + try { var response = await _axios2.default.get(this.restURL + "blockchain/getBlockHash/" + height); return response.data; @@ -83,9 +82,8 @@ var Blockchain = function () { value: async function getBlockHeader(hash) { var verbose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - if (typeof hash !== "string") { - hash = JSON.stringify(hash); - } + if (typeof hash !== "string") hash = JSON.stringify(hash); + try { var response = await _axios2.default.get(this.restURL + "blockchain/getBlockHeader/" + hash + "?verbose=" + verbose); return response.data; @@ -118,9 +116,8 @@ var Blockchain = function () { value: async function getMempoolAncestors(txid) { var verbose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - if (typeof txid !== "string") { - txid = JSON.stringify(txid); - } + if (typeof txid !== "string") txid = JSON.stringify(txid); + try { var response = await _axios2.default.get(this.restURL + "blockchain/getMempoolAncestors/" + txid + "?verbose=" + verbose); return response.data; @@ -133,9 +130,7 @@ var Blockchain = function () { value: async function getMempoolDescendants(txid) { var verbose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - if (typeof txid !== "string") { - txid = JSON.stringify(txid); - } + if (typeof txid !== "string") txid = JSON.stringify(txid); try { var response = await _axios2.default.get(this.restURL + "blockchain/getMempoolDescendants/" + txid + "?verbose=" + verbose); @@ -147,9 +142,7 @@ var Blockchain = function () { }, { key: "getMempoolEntry", value: async function getMempoolEntry(txid) { - if (typeof txid !== "string") { - txid = JSON.stringify(txid); - } + if (typeof txid !== "string") txid = JSON.stringify(txid); try { var response = await _axios2.default.get(this.restURL + "blockchain/getMempoolEntry/" + txid); @@ -196,9 +189,8 @@ var Blockchain = function () { key: "getTxOutProof", value: async function getTxOutProof(txids, blockhash) { var path = this.restURL + "blockchain/getTxOutProof/" + txids; - if (blockhash) { - path = path + "?blockhash=" + blockhash; - } + if (blockhash) path = path + "?blockhash=" + blockhash; + try { var response = await _axios2.default.get(path); return response.data; diff --git a/lib/ECPair.js b/lib/ECPair.js index 34be034c..928c69cc 100644 --- a/lib/ECPair.js +++ b/lib/ECPair.js @@ -31,17 +31,11 @@ var ECPair = function () { key: "fromWIF", value: function fromWIF(privateKeyWIF) { var network = void 0; - if (privateKeyWIF[0] === "L" || privateKeyWIF[0] === "K") { - network = "bitcoincash"; - } else if (privateKeyWIF[0] === "c") { - network = "testnet"; - } + if (privateKeyWIF[0] === "L" || privateKeyWIF[0] === "K") network = "bitcoincash";else if (privateKeyWIF[0] === "c") network = "testnet"; + var bitcoincash = void 0; - if (network === "bitcoincash") { - bitcoincash = _coininfo2.default.bitcoincash.main; - } else { - bitcoincash = _coininfo2.default.bitcoincash.test; - } + if (network === "bitcoincash") bitcoincash = _coininfo2.default.bitcoincash.main;else bitcoincash = _coininfo2.default.bitcoincash.test; + var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); return _bitcoincashjsLib2.default.ECPair.fromWIF(privateKeyWIF, bitcoincashBitcoinJSLib); diff --git a/lib/HDNode.js b/lib/HDNode.js index 9d73d4d1..f3964add 100644 --- a/lib/HDNode.js +++ b/lib/HDNode.js @@ -37,11 +37,8 @@ var HDNode = function () { var network = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "bitcoincash"; var bitcoincash = void 0; - if (network === "bitcoincash") { - bitcoincash = _coininfo2.default.bitcoincash.main; - } else { - bitcoincash = _coininfo2.default.bitcoincash.test; - } + if (network === "bitcoincash") bitcoincash = _coininfo2.default.bitcoincash.main;else bitcoincash = _coininfo2.default.bitcoincash.test; + var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); return _bitcoincashjsLib2.default.HDNode.fromSeedBuffer(rootSeedBuffer, bitcoincashBitcoinJSLib); } @@ -84,11 +81,8 @@ var HDNode = function () { key: "fromXPriv", value: function fromXPriv(xpriv) { var bitcoincash = void 0; - if (xpriv[0] === "x") { - bitcoincash = _coininfo2.default.bitcoincash.main; - } else if (xpriv[0] === "t") { - bitcoincash = _coininfo2.default.bitcoincash.test; - } + if (xpriv[0] === "x") bitcoincash = _coininfo2.default.bitcoincash.main;else if (xpriv[0] === "t") bitcoincash = _coininfo2.default.bitcoincash.test; + var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); return _bitcoincashjsLib2.default.HDNode.fromBase58(xpriv, bitcoincashBitcoinJSLib); } @@ -96,11 +90,8 @@ var HDNode = function () { key: "fromXPub", value: function fromXPub(xpub) { var bitcoincash = void 0; - if (xpub[0] === "x") { - bitcoincash = _coininfo2.default.bitcoincash.main; - } else if (xpub[0] === "t") { - bitcoincash = _coininfo2.default.bitcoincash.test; - } + if (xpub[0] === "x") bitcoincash = _coininfo2.default.bitcoincash.main;else if (xpub[0] === "t") bitcoincash = _coininfo2.default.bitcoincash.test; + var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); return _bitcoincashjsLib2.default.HDNode.fromBase58(xpub, bitcoincashBitcoinJSLib); } diff --git a/lib/Mining.js b/lib/Mining.js index 52f5fba6..d5345433 100644 --- a/lib/Mining.js +++ b/lib/Mining.js @@ -58,9 +58,8 @@ var Mining = function () { key: "submitBlock", value: async function submitBlock(hex, parameters) { var path = this.restURL + "mining/submitBlock/" + hex; - if (parameters) { - path = path + "?parameters=" + parameters; - } + if (parameters) path = path + "?parameters=" + parameters; + try { var response = await _axios2.default.post(path); return response.data; diff --git a/lib/Mnemonic.js b/lib/Mnemonic.js index 64846af8..25ea0c33 100644 --- a/lib/Mnemonic.js +++ b/lib/Mnemonic.js @@ -61,9 +61,8 @@ var Mnemonic = function () { // Preprocess the words var words = mnemonic.split(" "); // Detect blank phrase - if (words.length == 0) { - return "Blank mnemonic"; - } + if (words.length === 0) return "Blank mnemonic"; + // Check each word for (var i = 0; i < words.length; i++) { var word = words[i]; @@ -76,11 +75,9 @@ var Mnemonic = function () { // Check the words are valid var properPhrase = words.join(); var isValid = _bip2.default.validateMnemonic(mnemonic, wordlist); - if (!isValid) { - return "Invalid mnemonic"; - } else { - return "Valid mnemonic"; - } + if (!isValid) return "Invalid mnemonic"; + + return "Valid mnemonic"; } }, { key: "toSeed", @@ -121,9 +118,8 @@ var Mnemonic = function () { var closestWord = wordlist[0]; for (var i = 0; i < wordlist.length; i++) { var comparedTo = wordlist[i]; - if (comparedTo.indexOf(word) == 0) { - return comparedTo; - } + if (comparedTo.indexOf(word) == 0) return comparedTo; + var distance = Levenshtein.get(word, comparedTo); if (distance < minDistance) { closestWord = comparedTo; @@ -167,11 +163,9 @@ var _extend = function _extend(dst) { * @param {Function} func */ var _defer = function _defer(func) { - if (typeof setImmediate === "function") { - return setImmediate(func); - } else { - return setTimeout(func, 0); - } + if (typeof setImmediate === "function") return setImmediate(func); + + return setTimeout(func, 0); }; /** @@ -193,18 +187,16 @@ var Levenshtein = { // two rows var prevRow = new Array(str2.length + 1), - curCol, - nextCol, - i, - j, - tmp; + curCol = void 0, + nextCol = void 0, + i = void 0, + j = void 0, + tmp = void 0; // initialise previous row for (i = 0; i < prevRow.length; ++i) { prevRow[i] = i; - } - - // calculate current row distance from previous row + } // calculate current row distance from previous row for (i = 0; i < str1.length; ++i) { nextCol = i + 1; @@ -215,14 +207,11 @@ var Levenshtein = { nextCol = prevRow[j] + (str1.charAt(i) === str2.charAt(j) ? 0 : 1); // insertion tmp = curCol + 1; - if (nextCol > tmp) { - nextCol = tmp; - } + if (nextCol > tmp) nextCol = tmp; + // deletion tmp = prevRow[j + 1] + 1; - if (nextCol > tmp) { - nextCol = tmp; - } + if (nextCol > tmp) nextCol = tmp; // copy current col value into previous (in preparation for next iteration) prevRow[j] = curCol; @@ -256,20 +245,18 @@ var Levenshtein = { // two rows var prevRow = new Array(str2.length + 1), - curCol, - nextCol, - i, - j, - tmp, - startTime, - currentTime; + curCol = void 0, + nextCol = void 0, + i = void 0, + j = void 0, + tmp = void 0, + startTime = void 0, + currentTime = void 0; // initialise previous row for (i = 0; i < prevRow.length; ++i) { prevRow[i] = i; - } - - nextCol = 1; + }nextCol = 1; i = 0; j = -1; @@ -286,14 +273,12 @@ var Levenshtein = { prevRow[j] = nextCol; // if already done all chars - if (str1.length <= ++i) { - return cb(null, nextCol); - } + if (str1.length <= ++i) return cb(null, nextCol); + // else if we have more left to do - else { - nextCol = i + 1; - j = 0; - } + + nextCol = i + 1; + j = 0; } // calculation @@ -303,14 +288,11 @@ var Levenshtein = { nextCol = prevRow[j] + (str1.charAt(i) === str2.charAt(j) ? 0 : 1); // insertion tmp = curCol + 1; - if (nextCol > tmp) { - nextCol = tmp; - } + if (nextCol > tmp) nextCol = tmp; + // deletion tmp = prevRow[j + 1] + 1; - if (nextCol > tmp) { - nextCol = tmp; - } + if (nextCol > tmp) nextCol = tmp; // copy current into previous (in preparation for next iteration) prevRow[j] = curCol; diff --git a/lib/Network.js b/lib/Network.js index cd28a66f..f459e304 100644 --- a/lib/Network.js +++ b/lib/Network.js @@ -55,9 +55,7 @@ var Network = function () { key: "getAddedNodeInfo", value: async function getAddedNodeInfo(node) { var path = this.restURL + "network/getAddedNodeInfo"; - if (node) { - path = path + "?node=" + node; - } + if (node) path = path + "?node=" + node; try { var response = await _axios2.default.get(path); diff --git a/lib/Price.js b/lib/Price.js index 3f8fbf5d..d6ce402f 100644 --- a/lib/Price.js +++ b/lib/Price.js @@ -26,11 +26,9 @@ var Price = function () { try { var response = await _axios2.default.get("https://www.blocktrail.com/BCC/json/blockchain/price"); - if (currency === "all") { - return response.data; - } else { - return response.data[currency.toUpperCase()]; - } + if (currency === "all") return response.data; + + return response.data[currency.toUpperCase()]; } catch (error) { throw error.response.data; } diff --git a/lib/RawTransactions.js b/lib/RawTransactions.js index 826339e0..36696c79 100644 --- a/lib/RawTransactions.js +++ b/lib/RawTransactions.js @@ -24,9 +24,7 @@ var RawTransactions = function () { _createClass(RawTransactions, [{ key: "decodeRawTransaction", value: async function decodeRawTransaction(hex) { - if (typeof hex !== "string") { - hex = JSON.stringify(hex); - } + if (typeof hex !== "string") hex = JSON.stringify(hex); try { var response = await _axios2.default.get(this.restURL + "rawtransactions/decodeRawTransaction/" + hex); @@ -38,9 +36,7 @@ var RawTransactions = function () { }, { key: "decodeScript", value: async function decodeScript(script) { - if (typeof script !== "string") { - script = JSON.stringify(script); - } + if (typeof script !== "string") script = JSON.stringify(script); try { var response = await _axios2.default.get(this.restURL + "rawtransactions/decodeScript/" + script); @@ -54,9 +50,7 @@ var RawTransactions = function () { value: async function getRawTransaction(txid) { var verbose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - if (typeof txid !== "string") { - txid = JSON.stringify(txid); - } + if (typeof txid !== "string") txid = JSON.stringify(txid); try { var response = await _axios2.default.get(this.restURL + "rawtransactions/getRawTransaction/" + txid + "?verbose=" + verbose); @@ -70,9 +64,7 @@ var RawTransactions = function () { value: async function sendRawTransaction(hex) { var allowhighfees = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - if (typeof hex !== "string") { - hex = JSON.stringify(hex); - } + if (typeof hex !== "string") hex = JSON.stringify(hex); try { var response = await _axios2.default.post(this.restURL + "rawtransactions/sendRawTransaction/" + hex + "?allowhighfees=" + allowhighfees); diff --git a/lib/Socket.js b/lib/Socket.js index 40e14f05..ece057b2 100644 --- a/lib/Socket.js +++ b/lib/Socket.js @@ -31,9 +31,7 @@ var Socket = function () { this.socket = (0, _socket2.default)("" + restURL); } - if (config.callback) { - config.callback(); - } + if (config.callback) config.callback(); } } @@ -42,15 +40,11 @@ var Socket = function () { value: function listen(endpoint, cb) { this.socket.emit(endpoint); - if (endpoint === "blocks") { - this.socket.on("blocks", function (msg) { - return cb(msg); - }); - } else if (endpoint === "transactions") { - this.socket.on("transactions", function (msg) { - return cb(msg); - }); - } + if (endpoint === "blocks") this.socket.on("blocks", function (msg) { + return cb(msg); + });else if (endpoint === "transactions") this.socket.on("transactions", function (msg) { + return cb(msg); + }); } }]); diff --git a/lib/Transaction.js b/lib/Transaction.js index bf5a7ea9..cdc479f7 100644 --- a/lib/Transaction.js +++ b/lib/Transaction.js @@ -50,9 +50,7 @@ var Transaction = function () { }, { key: "details", value: async function details(txid) { - if (typeof txid !== "string") { - txid = JSON.stringify(txid); - } + if (typeof txid !== "string") txid = JSON.stringify(txid); try { var response = await _axios2.default.get(this.restURL + "transaction/details/" + txid); diff --git a/lib/TransactionBuilder.js b/lib/TransactionBuilder.js index e51cf9bb..be24aecf 100644 --- a/lib/TransactionBuilder.js +++ b/lib/TransactionBuilder.js @@ -37,11 +37,8 @@ var TransactionBuilder = function () { _classCallCheck(this, TransactionBuilder); var bitcoincash = void 0; - if (network === "bitcoincash") { - bitcoincash = _coininfo2.default.bitcoincash.main; - } else { - bitcoincash = _coininfo2.default.bitcoincash.test; - } + if (network === "bitcoincash") bitcoincash = _coininfo2.default.bitcoincash.main;else bitcoincash = _coininfo2.default.bitcoincash.test; + var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); this.transaction = new _bitcoincashjsLib2.default.TransactionBuilder(bitcoincashBitcoinJSLib); this.DEFAULT_SEQUENCE = 0xffffffff; @@ -97,11 +94,9 @@ var TransactionBuilder = function () { }, { key: "build", value: function build() { - if (this.p2shInput === true) { - return this.tx; - } else { - return this.transaction.build(); - } + if (this.p2shInput === true) return this.tx; + + return this.transaction.build(); } }]); diff --git a/lib/bitbox-cli.js b/lib/bitbox-cli.js index 518e2adb..ae38f982 100644 --- a/lib/bitbox-cli.js +++ b/lib/bitbox-cli.js @@ -1,5 +1,4 @@ "use strict"; -// 3rd party deps Object.defineProperty(exports, "__esModule", { value: true @@ -91,7 +90,8 @@ var _Socket2 = _interopRequireDefault(_Socket); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } // 3rd party deps + // local deps @@ -99,11 +99,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons var BITBOXCli = function BITBOXCli(config) { _classCallCheck(this, BITBOXCli); - if (config && config.restURL && config.restURL !== "") { - this.restURL = config.restURL; - } else { - this.restURL = "https://rest.bitcoin.com/v1/"; - } + if (config && config.restURL && config.restURL !== "") this.restURL = config.restURL;else this.restURL = "https://rest.bitcoin.com/v1/"; this.Address = new _Address2.default(this.restURL); this.BitcoinCash = new _BitcoinCash2.default(); From cad049dcef6d19ba35014a9a0c02d0736aafaf71 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Wed, 3 Oct 2018 07:21:01 -0700 Subject: [PATCH 100/480] Improved error handling --- src/Address.js | 9 ++++--- src/Block.js | 3 ++- src/Blockchain.js | 57 ++++++++++++++++++++++++++++-------------- src/Control.js | 6 +++-- src/Generating.js | 3 ++- src/Mining.js | 12 ++++++--- src/Network.js | 27 +++++++++++++------- src/Price.js | 3 ++- src/RawTransactions.js | 12 ++++++--- src/Transaction.js | 3 ++- src/Util.js | 3 ++- 11 files changed, 92 insertions(+), 46 deletions(-) diff --git a/src/Address.js b/src/Address.js index 2d29f460..19c67617 100644 --- a/src/Address.js +++ b/src/Address.js @@ -116,7 +116,8 @@ class Address { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -127,7 +128,8 @@ class Address { const response = await axios.get(`${this.restURL}address/utxo/${address}`) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -140,7 +142,8 @@ class Address { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } } diff --git a/src/Block.js b/src/Block.js index 694a06b9..161e4e42 100644 --- a/src/Block.js +++ b/src/Block.js @@ -9,7 +9,8 @@ class Block { const response = await axios.get(`${this.restURL}block/details/${id}`) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } } diff --git a/src/Blockchain.js b/src/Blockchain.js index 2fb559c3..dc8a05dc 100644 --- a/src/Blockchain.js +++ b/src/Blockchain.js @@ -11,7 +11,8 @@ class Blockchain { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -22,7 +23,8 @@ class Blockchain { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -33,7 +35,8 @@ class Blockchain { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -44,7 +47,8 @@ class Blockchain { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -57,7 +61,8 @@ class Blockchain { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -70,7 +75,8 @@ class Blockchain { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -79,7 +85,8 @@ class Blockchain { const response = await axios.get(`${this.restURL}blockchain/getChainTips`) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -90,7 +97,8 @@ class Blockchain { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -105,7 +113,8 @@ class Blockchain { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -120,7 +129,8 @@ class Blockchain { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -133,7 +143,8 @@ class Blockchain { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -144,7 +155,8 @@ class Blockchain { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -155,7 +167,8 @@ class Blockchain { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -168,7 +181,8 @@ class Blockchain { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -180,7 +194,8 @@ class Blockchain { const response = await axios.get(path) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -191,7 +206,8 @@ class Blockchain { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -202,7 +218,8 @@ class Blockchain { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -215,7 +232,8 @@ class Blockchain { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -226,7 +244,8 @@ class Blockchain { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } } diff --git a/src/Control.js b/src/Control.js index 22ddf728..2254b05d 100644 --- a/src/Control.js +++ b/src/Control.js @@ -9,7 +9,8 @@ class Control { const response = await axios.get(`${this.restURL}control/getInfo`) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -18,7 +19,8 @@ class Control { const response = await axios.get(`${this.restURL}control/getMemoryInfo`) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } // diff --git a/src/Generating.js b/src/Generating.js index 161426fb..719a2678 100644 --- a/src/Generating.js +++ b/src/Generating.js @@ -13,7 +13,8 @@ class Generating { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } } diff --git a/src/Mining.js b/src/Mining.js index 6d5794c4..40d110f7 100644 --- a/src/Mining.js +++ b/src/Mining.js @@ -11,7 +11,8 @@ class Mining { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -20,7 +21,8 @@ class Mining { const response = await axios.get(`${this.restURL}mining/getMiningInfo`) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -33,7 +35,8 @@ class Mining { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -45,7 +48,8 @@ class Mining { const response = await axios.post(path) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } } diff --git a/src/Network.js b/src/Network.js index e9fa4760..523e1656 100644 --- a/src/Network.js +++ b/src/Network.js @@ -11,7 +11,8 @@ class Network { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -20,7 +21,8 @@ class Network { const response = await axios.post(`${this.restURL}clearBanned`) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -31,7 +33,8 @@ class Network { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -43,7 +46,8 @@ class Network { const response = await axios.get(path) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -54,7 +58,8 @@ class Network { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -63,7 +68,8 @@ class Network { const response = await axios.get(`${this.restURL}network/getNetTotals`) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -72,7 +78,8 @@ class Network { const response = await axios.get(`${this.restURL}network/getNetworkInfo`) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -81,7 +88,8 @@ class Network { const response = await axios.get(`${this.restURL}network/getPeerInfo`) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } // @@ -101,7 +109,8 @@ class Network { const response = await axios.get(`${this.restURL}network/ping`) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } // diff --git a/src/Price.js b/src/Price.js index 40cc2d01..0f5f0320 100644 --- a/src/Price.js +++ b/src/Price.js @@ -9,7 +9,8 @@ class Price { return response.data[currency.toUpperCase()] } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } } diff --git a/src/RawTransactions.js b/src/RawTransactions.js index 81717220..377c251a 100644 --- a/src/RawTransactions.js +++ b/src/RawTransactions.js @@ -13,7 +13,8 @@ class RawTransactions { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -26,7 +27,8 @@ class RawTransactions { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -41,7 +43,8 @@ class RawTransactions { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -56,7 +59,8 @@ class RawTransactions { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } } diff --git a/src/Transaction.js b/src/Transaction.js index 9edb3f42..26b30800 100644 --- a/src/Transaction.js +++ b/src/Transaction.js @@ -31,7 +31,8 @@ class Transaction { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } } diff --git a/src/Util.js b/src/Util.js index 0604bf67..fbf3a16f 100644 --- a/src/Util.js +++ b/src/Util.js @@ -11,7 +11,8 @@ class Util { ) return response.data } catch (error) { - throw error.response.data + if (error.response && error.response.data) throw error.response.data + else throw error } } } From c87fb0d1fa422b8f9b429fa81333a89066a94f79 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Wed, 3 Oct 2018 07:34:27 -0700 Subject: [PATCH 101/480] Build and tested error handling changes --- lib/Address.js | 6 +++--- lib/Block.js | 2 +- lib/Blockchain.js | 38 +++++++++++++++++++------------------- lib/Control.js | 4 ++-- lib/Generating.js | 2 +- lib/Mining.js | 8 ++++---- lib/Network.js | 18 +++++++++--------- lib/Price.js | 2 +- lib/RawTransactions.js | 8 ++++---- lib/Transaction.js | 2 +- lib/Util.js | 2 +- 11 files changed, 46 insertions(+), 46 deletions(-) diff --git a/lib/Address.js b/lib/Address.js index 22562208..4de95de9 100644 --- a/lib/Address.js +++ b/lib/Address.js @@ -176,7 +176,7 @@ var Address = function () { var response = await _axios2.default.get(this.restURL + "address/details/" + address); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -188,7 +188,7 @@ var Address = function () { var response = await _axios2.default.get(this.restURL + "address/utxo/" + address); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -200,7 +200,7 @@ var Address = function () { var response = await _axios2.default.get(this.restURL + "address/unconfirmed/" + address); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }]); diff --git a/lib/Block.js b/lib/Block.js index 16a21f33..7d4d04bb 100644 --- a/lib/Block.js +++ b/lib/Block.js @@ -28,7 +28,7 @@ var Block = function () { var response = await _axios2.default.get(this.restURL + "block/details/" + id); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }]); diff --git a/lib/Blockchain.js b/lib/Blockchain.js index a496e88f..73141435 100644 --- a/lib/Blockchain.js +++ b/lib/Blockchain.js @@ -28,7 +28,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + "blockchain/getBestBlockHash"); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -40,7 +40,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + "blockchain/getBlock/" + blockhash + "?verbose=" + verbose); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -50,7 +50,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + "blockchain/getBlockchainInfo"); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -60,7 +60,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + "blockchain/getBlockCount"); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -74,7 +74,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + "blockchain/getBlockHash/" + height); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -88,7 +88,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + "blockchain/getBlockHeader/" + hash + "?verbose=" + verbose); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -98,7 +98,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + "blockchain/getChainTips"); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -108,7 +108,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + "blockchain/getDifficulty"); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -122,7 +122,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + "blockchain/getMempoolAncestors/" + txid + "?verbose=" + verbose); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -136,7 +136,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + "blockchain/getMempoolDescendants/" + txid + "?verbose=" + verbose); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -148,7 +148,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + "blockchain/getMempoolEntry/" + txid); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -158,7 +158,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + "blockchain/getMempoolInfo"); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -170,7 +170,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + "blockchain/getRawMempool?vebose=" + verbose); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -182,7 +182,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + "blockchain/getTxOut/" + txid + "/n?include_mempool=" + include_mempool); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -195,7 +195,7 @@ var Blockchain = function () { var response = await _axios2.default.get(path); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -205,7 +205,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + "blockchain/preciousBlock/" + blockhash); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -215,7 +215,7 @@ var Blockchain = function () { var response = await _axios2.default.post(this.restURL + "blockchain/pruneBlockchain/" + height); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -228,7 +228,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + "blockchain/verifyChain?checklevel=" + checklevel + "&nblocks=" + nblocks); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -238,7 +238,7 @@ var Blockchain = function () { var response = await _axios2.default.get(this.restURL + "blockchain/verifyTxOutProof/proof"); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }]); diff --git a/lib/Control.js b/lib/Control.js index 0144cdb0..604cf5d6 100644 --- a/lib/Control.js +++ b/lib/Control.js @@ -28,7 +28,7 @@ var Control = function () { var response = await _axios2.default.get(this.restURL + "control/getInfo"); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -38,7 +38,7 @@ var Control = function () { var response = await _axios2.default.get(this.restURL + "control/getMemoryInfo"); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } // diff --git a/lib/Generating.js b/lib/Generating.js index 845d31ca..77e625c4 100644 --- a/lib/Generating.js +++ b/lib/Generating.js @@ -30,7 +30,7 @@ var Generating = function () { var response = await _axios2.default.post(this.restURL + "generating/generateToAddress/" + blocks + "/" + address + "?maxtries=" + maxtries); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }]); diff --git a/lib/Mining.js b/lib/Mining.js index d5345433..68a95941 100644 --- a/lib/Mining.js +++ b/lib/Mining.js @@ -28,7 +28,7 @@ var Mining = function () { var response = await _axios2.default.get(this.restURL + "mining/getBlockTemplate/" + template_request); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -38,7 +38,7 @@ var Mining = function () { var response = await _axios2.default.get(this.restURL + "mining/getMiningInfo"); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -51,7 +51,7 @@ var Mining = function () { var response = await _axios2.default.get(this.restURL + "mining/getNetworkHashps?nblocks=" + nblocks + "&height=" + height); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -64,7 +64,7 @@ var Mining = function () { var response = await _axios2.default.post(path); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }]); diff --git a/lib/Network.js b/lib/Network.js index f459e304..65de9d64 100644 --- a/lib/Network.js +++ b/lib/Network.js @@ -28,7 +28,7 @@ var Network = function () { var response = await _axios2.default.post(this.restURL + "network/addNode/" + node + "/" + command); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -38,7 +38,7 @@ var Network = function () { var response = await _axios2.default.post(this.restURL + "clearBanned"); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -48,7 +48,7 @@ var Network = function () { var response = await _axios2.default.post(this.restURL + "disconnectNode/" + configuration); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -61,7 +61,7 @@ var Network = function () { var response = await _axios2.default.get(path); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -71,7 +71,7 @@ var Network = function () { var response = await _axios2.default.get(this.restURL + "network/getConnectionCount"); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -81,7 +81,7 @@ var Network = function () { var response = await _axios2.default.get(this.restURL + "network/getNetTotals"); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -91,7 +91,7 @@ var Network = function () { var response = await _axios2.default.get(this.restURL + "network/getNetworkInfo"); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -101,7 +101,7 @@ var Network = function () { var response = await _axios2.default.get(this.restURL + "network/getPeerInfo"); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } // @@ -123,7 +123,7 @@ var Network = function () { var response = await _axios2.default.get(this.restURL + "network/ping"); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } // diff --git a/lib/Price.js b/lib/Price.js index d6ce402f..e06c8baf 100644 --- a/lib/Price.js +++ b/lib/Price.js @@ -30,7 +30,7 @@ var Price = function () { return response.data[currency.toUpperCase()]; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }]); diff --git a/lib/RawTransactions.js b/lib/RawTransactions.js index 36696c79..e10827aa 100644 --- a/lib/RawTransactions.js +++ b/lib/RawTransactions.js @@ -30,7 +30,7 @@ var RawTransactions = function () { var response = await _axios2.default.get(this.restURL + "rawtransactions/decodeRawTransaction/" + hex); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -42,7 +42,7 @@ var RawTransactions = function () { var response = await _axios2.default.get(this.restURL + "rawtransactions/decodeScript/" + script); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -56,7 +56,7 @@ var RawTransactions = function () { var response = await _axios2.default.get(this.restURL + "rawtransactions/getRawTransaction/" + txid + "?verbose=" + verbose); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }, { @@ -70,7 +70,7 @@ var RawTransactions = function () { var response = await _axios2.default.post(this.restURL + "rawtransactions/sendRawTransaction/" + hex + "?allowhighfees=" + allowhighfees); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }]); diff --git a/lib/Transaction.js b/lib/Transaction.js index cdc479f7..eceb072c 100644 --- a/lib/Transaction.js +++ b/lib/Transaction.js @@ -56,7 +56,7 @@ var Transaction = function () { var response = await _axios2.default.get(this.restURL + "transaction/details/" + txid); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }]); diff --git a/lib/Util.js b/lib/Util.js index 0f5dcf7e..92af94b4 100644 --- a/lib/Util.js +++ b/lib/Util.js @@ -28,7 +28,7 @@ var Util = function () { var response = await _axios2.default.get(this.restURL + "util/validateAddress/" + address); return response.data; } catch (error) { - throw error.response.data; + if (error.response && error.response.data) throw error.response.data;else throw error; } } }]); From c9d46cdef8b1d336c750c5e881d0d3986f6c1b20 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Wed, 3 Oct 2018 07:35:45 -0700 Subject: [PATCH 102/480] Bumping version --- index.js | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 7c7048e8..807301ea 100755 --- a/index.js +++ b/index.js @@ -17,7 +17,7 @@ const BITBOXCli = require("./lib/bitbox-cli").default const clone = require("git-clone") const cmd = require("node-cmd") -program.version("1.7.0", "-v, --version") +program.version("1.8.0", "-v, --version") program .command("new ") @@ -86,7 +86,7 @@ program console.log(chalk.blue(`Scaffolding ${scaffold} app in ${name}`)) clone(repo, `./${name}`, [conf], res => { - if (res == "Error: 'git clone' failed with status 128") { + if (res === "Error: 'git clone' failed with status 128") { console.log(chalk.red("Must create new app in to an empty directory")) } else { console.log(chalk.green("All done."), emoji.get(":white_check_mark:")) diff --git a/package.json b/package.json index 0f07d738..9623ac88 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.7.0", + "version": "1.8.0", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", From 1393276d2e1d93a8267525c34d419b008fe4562d Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 3 Oct 2018 10:24:25 -0700 Subject: [PATCH 103/480] Fix typescript definitions. --- index.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 807301ea..8e21dfd3 100755 --- a/index.js +++ b/index.js @@ -17,7 +17,7 @@ const BITBOXCli = require("./lib/bitbox-cli").default const clone = require("git-clone") const cmd = require("node-cmd") -program.version("1.8.0", "-v, --version") +program.version("1.7.1", "-v, --version") program .command("new ") diff --git a/package.json b/package.json index 9623ac88..be4f5faa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.8.0", + "version": "1.7.1", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", From 7e09ae48c7722ad98226e38d81e53c6d0d945a95 Mon Sep 17 00:00:00 2001 From: haryu703 Date: Sun, 7 Oct 2018 03:56:08 +0900 Subject: [PATCH 104/480] Address.js supports regtest --- lib/Address.d.ts | 7 +- lib/Address.js | 183 +- lib/bitbox-cli.js | 2 +- package-lock.json | 4260 ++++++++++++++++++------------------ package.json | 3 +- src/Address.js | 179 +- src/bitbox-cli.js | 2 +- test/Address.js | 303 ++- test/fixtures/Address.json | 12 + typings/Address.d.ts | 7 +- 10 files changed, 2794 insertions(+), 2164 deletions(-) diff --git a/lib/Address.d.ts b/lib/Address.d.ts index fe43a512..5c5d70ce 100644 --- a/lib/Address.d.ts +++ b/lib/Address.d.ts @@ -2,14 +2,15 @@ export declare interface Address { restURL: string; //constructor(restURL: string); toLegacyAddress(address: string): string; - toCashAddress(address: string, prefix?: boolean): string; + toCashAddress(address: string, prefix?: boolean, regtest?: boolean): string; toHash160(address: string): string; - hash160ToLegacy(hash160: string): string; - hash160ToCash(hash160: string): string; + hash160ToLegacy(hash160: string, network?: number): string; + hash160ToCash(hash160: string, network?: number, regtest?: boolean): string; isLegacyAddress(address: string): boolean; isCashAddress(address: string): boolean; isMainnetAddress(address: string): boolean; isTestnetAddress(address: string): boolean; + isRegTestAddress(address: string): boolean; isP2PKHAddress(address: string): boolean; isP2SHAddress(address: string): boolean; detectAddressFormat(address: string): string; diff --git a/lib/Address.js b/lib/Address.js index 4de95de9..4f0bf47d 100644 --- a/lib/Address.js +++ b/lib/Address.js @@ -10,14 +10,18 @@ var _axios = require("axios"); var _axios2 = _interopRequireDefault(_axios); -var _bchaddrjs = require("bchaddrjs"); - -var _bchaddrjs2 = _interopRequireDefault(_bchaddrjs); - var _bitcoincashjsLib = require("bitcoincashjs-lib"); var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); +var _cashaddrjs = require("cashaddrjs"); + +var _cashaddrjs2 = _interopRequireDefault(_cashaddrjs); + +var _coininfo = require("coininfo"); + +var _coininfo2 = _interopRequireDefault(_coininfo); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -35,16 +39,57 @@ var Address = function () { _createClass(Address, [{ key: "toLegacyAddress", value: function toLegacyAddress(address) { - return _bchaddrjs2.default.toLegacyAddress(address); + var _decode2 = this._decode(address), + prefix = _decode2.prefix, + type = _decode2.type, + hash = _decode2.hash; + + var bitcoincash = void 0; + switch (prefix) { + case "bitcoincash": + bitcoincash = _coininfo2.default.bitcoincash.main; + break; + case "bchtest": + bitcoincash = _coininfo2.default.bitcoincash.test; + break; + case "bchreg": + bitcoincash = _coininfo2.default.bitcoincash.regtest; + break; + default: + throw "unsupported prefix : " + prefix; + } + + var version = void 0; + switch (type) { + case "P2PKH": + version = bitcoincash.versions.public; + break; + case "P2SH": + version = bitcoincash.versions.scripthash; + break; + default: + throw "unsupported address type : " + type; + } + + var hashBuf = Buffer.from(hash); + + return _bitcoincashjsLib2.default.address.toBase58Check(hashBuf, version); } }, { key: "toCashAddress", value: function toCashAddress(address) { var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + var regtest = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + + var decoded = this._decode(address); + + var prefixString = void 0; + if (regtest) prefixString = "bchreg";else prefixString = decoded.prefix; - if (prefix) return _bchaddrjs2.default.toCashAddress(address); + var cashAddress = _cashaddrjs2.default.encode(prefixString, decoded.type, decoded.hash); - return _bchaddrjs2.default.toCashAddress(address).split(":")[1]; + if (prefix) return cashAddress; + return cashAddress.split(":")[1]; } // Converts any address format to hash160 @@ -52,7 +97,7 @@ var Address = function () { }, { key: "toHash160", value: function toHash160(address) { - var legacyAddress = _bchaddrjs2.default.toLegacyAddress(address); + var legacyAddress = this.toLegacyAddress(address); var bytes = _bitcoincashjsLib2.default.address.fromBase58Check(legacyAddress); return bytes.hash.toString("hex"); } @@ -64,7 +109,7 @@ var Address = function () { value: function hash160ToLegacy(hash160) { var network = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _bitcoincashjsLib2.default.networks.bitcoin.pubKeyHash; - var buffer = Buffer(hash160, "hex"); + var buffer = Buffer.from(hash160, "hex"); var legacyAddress = _bitcoincashjsLib2.default.address.toBase58Check(buffer, network); return legacyAddress; } @@ -75,9 +120,85 @@ var Address = function () { key: "hash160ToCash", value: function hash160ToCash(hash160) { var network = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _bitcoincashjsLib2.default.networks.bitcoin.pubKeyHash; + var regtest = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; var legacyAddress = this.hash160ToLegacy(hash160, network); - return this.toCashAddress(legacyAddress); + return this.toCashAddress(legacyAddress, true, regtest); + } + }, { + key: "_decode", + value: function _decode(address) { + try { + return this._decodeLegacyAddress(address); + } catch (error) {} + + try { + return this._decodeCashAddress(address); + } catch (error) {} + + throw new Error("Unsupported address format : " + address); + } + }, { + key: "_decodeLegacyAddress", + value: function _decodeLegacyAddress(address) { + var _Bitcoin$address$from = _bitcoincashjsLib2.default.address.fromBase58Check(address), + version = _Bitcoin$address$from.version, + hash = _Bitcoin$address$from.hash; + + var info = _coininfo2.default.bitcoincash; + + switch (version) { + case info.main.versions.public: + return { + prefix: "bitcoincash", + type: "P2PKH", + hash: hash, + format: "legacy" + }; + case info.main.versions.scripthash: + return { + prefix: "bitcoincash", + type: "P2SH", + hash: hash, + format: "legacy" + }; + case info.test.versions.public: + return { + prefix: "bchtest", + type: "P2PKH", + hash: hash, + format: "legacy" + }; + case info.test.versions.scripthash: + return { + prefix: "bchtest", + type: "P2SH", + hash: hash, + format: "legacy" + }; + default: + throw new Error("Invalid format : " + address); + } + } + }, { + key: "_decodeCashAddress", + value: function _decodeCashAddress(address) { + if (address.indexOf(":") !== -1) { + var decoded = _cashaddrjs2.default.decode(address); + decoded.format = "cashaddr"; + return decoded; + } + + var prefixes = ["bitcoincash", "bchtest", "bchreg"]; + for (var i = 0; i < prefixes.length; ++i) { + try { + var _decoded = _cashaddrjs2.default.decode(prefixes[i] + ":" + address); + _decoded.format = "cashaddr"; + return _decoded; + } catch (error) {} + } + + throw new Error("Invalid format : " + address); } // Test for address format. @@ -85,12 +206,12 @@ var Address = function () { }, { key: "isLegacyAddress", value: function isLegacyAddress(address) { - return _bchaddrjs2.default.isLegacyAddress(address); + return this.detectAddressFormat(address) === "legacy"; } }, { key: "isCashAddress", value: function isCashAddress(address) { - return _bchaddrjs2.default.isCashAddress(address); + return this.detectAddressFormat(address) === "cashaddr"; } // Test for address network. @@ -100,14 +221,19 @@ var Address = function () { value: function isMainnetAddress(address) { if (address[0] === "x") return true;else if (address[0] === "t") return false; - return _bchaddrjs2.default.isMainnetAddress(address); + return this.detectAddressNetwork(address) === "mainnet"; } }, { key: "isTestnetAddress", value: function isTestnetAddress(address) { if (address[0] === "x") return false;else if (address[0] === "t") return true; - return _bchaddrjs2.default.isTestnetAddress(address); + return this.detectAddressNetwork(address) === "testnet"; + } + }, { + key: "isRegTestAddress", + value: function isRegTestAddress(address) { + return this.detectAddressNetwork(address) === "regtest"; } // Test for address type. @@ -115,12 +241,12 @@ var Address = function () { }, { key: "isP2PKHAddress", value: function isP2PKHAddress(address) { - return _bchaddrjs2.default.isP2PKHAddress(address); + return this.detectAddressType(address) === "p2pkh"; } }, { key: "isP2SHAddress", value: function isP2SHAddress(address) { - return _bchaddrjs2.default.isP2SHAddress(address); + return this.detectAddressType(address) === "p2sh"; } // Detect address format. @@ -128,7 +254,9 @@ var Address = function () { }, { key: "detectAddressFormat", value: function detectAddressFormat(address) { - return _bchaddrjs2.default.detectAddressFormat(address); + var decoded = this._decode(address); + + return decoded.format; } // Detect address network. @@ -138,7 +266,18 @@ var Address = function () { value: function detectAddressNetwork(address) { if (address[0] === "x") return "mainnet";else if (address[0] === "t") return "testnet"; - return _bchaddrjs2.default.detectAddressNetwork(address); + var decoded = this._decode(address); + + switch (decoded.prefix) { + case "bitcoincash": + return "mainnet"; + case "bchtest": + return "testnet"; + case "bchreg": + return "regtest"; + default: + throw new Error("Invalid prefix : " + decoded.prefix); + } } // Detect address type. @@ -146,7 +285,9 @@ var Address = function () { }, { key: "detectAddressType", value: function detectAddressType(address) { - return _bchaddrjs2.default.detectAddressType(address); + var decoded = this._decode(address); + + return decoded.type.toLowerCase(); } }, { key: "fromXPub", @@ -165,7 +306,9 @@ var Address = function () { var netParam = void 0; if (network !== "bitcoincash") netParam = _bitcoincashjsLib2.default.networks.testnet; - return _bchaddrjs2.default.toCashAddress(_bitcoincashjsLib2.default.address.fromOutputScript(scriptPubKey, netParam)); + var regtest = network === "bchreg"; + + return this.toCashAddress(_bitcoincashjsLib2.default.address.fromOutputScript(scriptPubKey, netParam), true, regtest); } }, { key: "details", diff --git a/lib/bitbox-cli.js b/lib/bitbox-cli.js index ae38f982..3f578e10 100644 --- a/lib/bitbox-cli.js +++ b/lib/bitbox-cli.js @@ -102,7 +102,7 @@ var BITBOXCli = function BITBOXCli(config) { if (config && config.restURL && config.restURL !== "") this.restURL = config.restURL;else this.restURL = "https://rest.bitcoin.com/v1/"; this.Address = new _Address2.default(this.restURL); - this.BitcoinCash = new _BitcoinCash2.default(); + this.BitcoinCash = new _BitcoinCash2.default(this.Address); this.Block = new _Block2.default(this.restURL); this.Blockchain = new _Blockchain2.default(this.restURL); this.Control = new _Control2.default(this.restURL); diff --git a/package-lock.json b/package-lock.json index a6bdb6de..bf0c1f2f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.7.0", + "version": "1.7.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -25,7 +25,7 @@ "integrity": "sha512-5x2kFgJYupaF1ns/RmharQ90lQkd2ELS8A9X0ymkAAdemYHGtI2KiUHG8nX2WU0T1qgnOU5YMqnBM2V7NUanNw==", "dev": true, "requires": { - "array-from": "2.1.1" + "array-from": "^2.1.1" } }, "@types/node": { @@ -44,7 +44,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "requires": { - "mime-types": "2.1.20", + "mime-types": "~2.1.18", "negotiator": "0.6.1" } }, @@ -58,7 +58,7 @@ "resolved": "http://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "requires": { - "acorn": "3.3.0" + "acorn": "^3.0.4" }, "dependencies": { "acorn": { @@ -79,8 +79,8 @@ "integrity": "sha1-iINE2tAiCnLjr1CQYRf0h3GSX6w=", "dev": true, "requires": { - "clean-stack": "1.3.0", - "indent-string": "3.2.0" + "clean-stack": "^1.0.0", + "indent-string": "^3.0.0" } }, "ajv": { @@ -88,10 +88,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "ajv-keywords": { @@ -105,7 +105,7 @@ "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "dev": true, "requires": { - "string-width": "2.1.1" + "string-width": "^2.0.0" } }, "ansi-escapes": { @@ -129,8 +129,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "optional": true, "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" } }, "argparse": { @@ -138,7 +138,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "arr-diff": { @@ -147,7 +147,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "optional": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { @@ -171,8 +171,8 @@ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.12.0" + "define-properties": "^1.1.2", + "es-abstract": "^1.7.0" } }, "array-union": { @@ -180,7 +180,7 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -210,7 +210,7 @@ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "~2.1.0" } }, "assert": { @@ -282,8 +282,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=", "requires": { - "follow-redirects": "1.5.8", - "is-buffer": "1.1.6" + "follow-redirects": "^1.2.5", + "is-buffer": "^1.1.5" } }, "babel-cli": { @@ -291,21 +291,21 @@ "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", "requires": { - "babel-core": "6.26.3", - "babel-polyfill": "6.26.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "chokidar": "1.7.0", - "commander": "2.18.0", - "convert-source-map": "1.6.0", - "fs-readdir-recursive": "1.1.0", - "glob": "7.1.3", - "lodash": "4.17.11", - "output-file-sync": "1.1.2", - "path-is-absolute": "1.0.1", - "slash": "1.0.0", - "source-map": "0.5.7", - "v8flags": "2.1.1" + "babel-core": "^6.26.0", + "babel-polyfill": "^6.26.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "chokidar": "^1.6.1", + "commander": "^2.11.0", + "convert-source-map": "^1.5.0", + "fs-readdir-recursive": "^1.0.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "output-file-sync": "^1.1.2", + "path-is-absolute": "^1.0.1", + "slash": "^1.0.0", + "source-map": "^0.5.6", + "v8flags": "^2.1.1" } }, "babel-code-frame": { @@ -313,9 +313,9 @@ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" }, "dependencies": { "chalk": { @@ -323,11 +323,11 @@ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "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" } } } @@ -337,25 +337,25 @@ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.1", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.6.0", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" }, "dependencies": { "debug": { @@ -373,14 +373,14 @@ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.11", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" } }, "babel-helper-builder-binary-assignment-operator-visitor": { @@ -388,9 +388,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "requires": { - "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-builder-react-jsx": { @@ -398,9 +398,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "esutils": "2.0.2" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "esutils": "^2.0.2" } }, "babel-helper-call-delegate": { @@ -408,10 +408,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-define-map": { @@ -419,10 +419,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.11" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-explode-assignable-expression": { @@ -430,9 +430,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-function-name": { @@ -440,11 +440,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-get-function-arity": { @@ -452,8 +452,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-hoist-variables": { @@ -461,8 +461,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-optimise-call-expression": { @@ -470,8 +470,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-regex": { @@ -479,9 +479,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.11" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-remap-async-to-generator": { @@ -489,11 +489,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-replace-supers": { @@ -501,12 +501,12 @@ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "requires": { - "babel-helper-optimise-call-expression": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helpers": { @@ -514,8 +514,8 @@ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-messages": { @@ -523,7 +523,7 @@ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-check-es2015-constants": { @@ -531,7 +531,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-syntax-async-functions": { @@ -564,9 +564,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-arrow-functions": { @@ -574,7 +574,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -582,7 +582,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -590,11 +590,11 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.11" + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-plugin-transform-es2015-classes": { @@ -602,15 +602,15 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "requires": { - "babel-helper-define-map": "6.26.0", - "babel-helper-function-name": "6.24.1", - "babel-helper-optimise-call-expression": "6.24.1", - "babel-helper-replace-supers": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-computed-properties": { @@ -618,8 +618,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-destructuring": { @@ -627,7 +627,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -635,8 +635,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-for-of": { @@ -644,7 +644,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -652,9 +652,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-literals": { @@ -662,7 +662,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -670,9 +670,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -680,10 +680,10 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" } }, "babel-plugin-transform-es2015-modules-systemjs": { @@ -691,9 +691,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-umd": { @@ -701,9 +701,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "requires": { - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-object-super": { @@ -711,8 +711,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "requires": { - "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.26.0" + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -720,12 +720,12 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-shorthand-properties": { @@ -733,8 +733,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-spread": { @@ -742,7 +742,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -750,9 +750,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-template-literals": { @@ -760,7 +760,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -768,7 +768,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -776,9 +776,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -786,9 +786,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", - "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-flow-strip-types": { @@ -796,8 +796,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", "requires": { - "babel-plugin-syntax-flow": "6.18.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-flow": "^6.18.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-display-name": { @@ -805,7 +805,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx": { @@ -813,9 +813,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", "requires": { - "babel-helper-builder-react-jsx": "6.26.0", - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-react-jsx": "^6.24.1", + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx-self": { @@ -823,8 +823,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx-source": { @@ -832,8 +832,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-regenerator": { @@ -841,7 +841,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "requires": { - "regenerator-transform": "0.10.1" + "regenerator-transform": "^0.10.0" } }, "babel-plugin-transform-strict-mode": { @@ -849,8 +849,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-polyfill": { @@ -858,9 +858,9 @@ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "requires": { - "babel-runtime": "6.26.0", - "core-js": "2.5.7", - "regenerator-runtime": "0.10.5" + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" }, "dependencies": { "regenerator-runtime": { @@ -875,36 +875,36 @@ "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0", - "browserslist": "3.2.8", - "invariant": "2.2.4", - "semver": "5.5.1" + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" } }, "babel-preset-es2015": { @@ -912,30 +912,30 @@ "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0" + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.24.1", + "babel-plugin-transform-es2015-classes": "^6.24.1", + "babel-plugin-transform-es2015-computed-properties": "^6.24.1", + "babel-plugin-transform-es2015-destructuring": "^6.22.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", + "babel-plugin-transform-es2015-for-of": "^6.22.0", + "babel-plugin-transform-es2015-function-name": "^6.24.1", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-umd": "^6.24.1", + "babel-plugin-transform-es2015-object-super": "^6.24.1", + "babel-plugin-transform-es2015-parameters": "^6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", + "babel-plugin-transform-regenerator": "^6.24.1" } }, "babel-preset-flow": { @@ -943,7 +943,7 @@ "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", "requires": { - "babel-plugin-transform-flow-strip-types": "6.22.0" + "babel-plugin-transform-flow-strip-types": "^6.22.0" } }, "babel-preset-react": { @@ -951,12 +951,12 @@ "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-plugin-transform-react-display-name": "6.25.0", - "babel-plugin-transform-react-jsx": "6.24.1", - "babel-plugin-transform-react-jsx-self": "6.22.0", - "babel-plugin-transform-react-jsx-source": "6.22.0", - "babel-preset-flow": "6.23.0" + "babel-plugin-syntax-jsx": "^6.3.13", + "babel-plugin-transform-react-display-name": "^6.23.0", + "babel-plugin-transform-react-jsx": "^6.24.1", + "babel-plugin-transform-react-jsx-self": "^6.22.0", + "babel-plugin-transform-react-jsx-source": "^6.22.0", + "babel-preset-flow": "^6.23.0" } }, "babel-register": { @@ -964,13 +964,13 @@ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "requires": { - "babel-core": "6.26.3", - "babel-runtime": "6.26.0", - "core-js": "2.5.7", - "home-or-tmp": "2.0.0", - "lodash": "4.17.11", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" } }, "babel-runtime": { @@ -978,8 +978,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "2.5.7", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -987,11 +987,11 @@ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.11" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { @@ -999,15 +999,15 @@ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.11" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" }, "dependencies": { "debug": { @@ -1025,10 +1025,10 @@ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.11", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -1051,13 +1051,13 @@ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "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" }, "dependencies": { "define-property": { @@ -1065,7 +1065,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -1073,7 +1073,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -1081,7 +1081,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -1089,9 +1089,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -1111,7 +1111,7 @@ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.4.tgz", "integrity": "sha512-UYOadoSIkEI/VrRGSG6qp93rp2WdokiAiNYDfGW5qURAY8GiAQkvMbwNNSDYiVJopqv4gCna7xqf4rrNGp+5AA==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "base64-arraybuffer": { @@ -1140,8 +1140,8 @@ "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.2.tgz", "integrity": "sha512-W06sUpprptb65JHbu2yFdv8Tg7o2OWpD5n2pMUIhuLOXC5c64eMW7y9Pg0IHd/Qe31e1KwnHT9H1w6Pf9r4Fkg==", "requires": { - "bs58check": "2.1.2", - "cashaddrjs": "0.2.9" + "bs58check": "^2.1.1", + "cashaddrjs": "^0.2.7" } }, "bcrypt-pbkdf": { @@ -1151,7 +1151,7 @@ "dev": true, "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "bech32": { @@ -1194,18 +1194,20 @@ }, "bip21": { "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", + "from": "github:Bitcoin-com/bip21", "requires": { - "qs": "6.5.2" + "qs": "^6.3.0" } }, "bip32-utils": { "version": "github:Bitcoin-com/bip32-utils#318df796443311f7e12217542f7f45d3b7791f10", + "from": "github:Bitcoin-com/bip32-utils#0.12.2", "requires": { - "bitbox-cli": "1.5.12", - "keccak": "1.4.0", - "nyc": "11.9.0", - "standard": "11.0.1", - "tape": "4.9.1" + "bitbox-cli": "1.5.*", + "keccak": "^1.3.0", + "nyc": "*", + "standard": "^11.0.1", + "tape": "*" } }, "bip38": { @@ -1213,13 +1215,13 @@ "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", "integrity": "sha512-22KDak0RDyghFbR0Si7wyq9IgY423YzGYzWLpGeofH3DaolOQqjD3mNN08eFoubKlbyclOQKFwtONMv2SD9V3A==", "requires": { - "bigi": "1.4.2", - "browserify-aes": "1.2.0", - "bs58check": "2.1.2", - "buffer-xor": "1.0.3", - "create-hash": "1.2.0", - "ecurve": "1.0.6", - "scryptsy": "2.0.0" + "bigi": "^1.2.0", + "browserify-aes": "^1.0.1", + "bs58check": "<3.0.0", + "buffer-xor": "^1.0.2", + "create-hash": "^1.1.1", + "ecurve": "^1.0.0", + "scryptsy": "^2.0.0" } }, "bip39": { @@ -1227,11 +1229,11 @@ "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", "requires": { - "create-hash": "1.2.0", - "pbkdf2": "3.0.16", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "unorm": "1.4.1" + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "unorm": "^1.3.3" } }, "bip66": { @@ -1239,92 +1241,159 @@ "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "bip68": { - "version": "github:Bitcoin-com/bip68#aeac5a8c5c1e01dfba79ff3eb824171be004a28c" + "version": "github:Bitcoin-com/bip68#aeac5a8c5c1e01dfba79ff3eb824171be004a28c", + "from": "github:Bitcoin-com/bip68#1.0.5" }, "bitbox-cli": { "version": "1.5.12", "resolved": "https://registry.npmjs.org/bitbox-cli/-/bitbox-cli-1.5.12.tgz", "integrity": "sha512-SQk02foLnSEi8ZkJFTFLZXEEW/3ribb/YNaF2L/qZ1wtWOcB2uei4v/rmb31TJOseH6MvfZ5Ygl6HzcyCTpYHg==", "requires": { - "assert": "1.4.1", - "axios": "0.17.1", - "babel-cli": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-register": "6.26.0", - "bchaddrjs": "0.2.2", - "bigi": "1.4.2", + "assert": "^1.4.1", + "axios": "^0.17.1", + "babel-cli": "^6.26.0", + "babel-preset-env": "^1.6.1", + "babel-preset-es2015": "^6.24.1", + "babel-preset-flow": "^6.23.0", + "babel-preset-react": "^6.24.1", + "babel-register": "^6.26.0", + "bchaddrjs": "^0.2.1", + "bigi": "^1.4.2", "bip21": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", "bip32-utils": "github:Bitcoin-com/bip32-utils#318df796443311f7e12217542f7f45d3b7791f10", - "bip38": "2.0.2", - "bip39": "2.5.0", - "bip66": "1.1.5", - "bip68": "github:Bitcoin-com/bip68#aeac5a8c5c1e01dfba79ff3eb824171be004a28c", + "bip38": "^2.0.2", + "bip39": "^2.5.0", + "bip66": "^1.1.5", + "bip68": "^1.0.4", "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", "bitcoin-txdecoder": "0.0.3", "bitcoincashjs-lib": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", - "bitcoinjs-message": "2.0.0", - "bs58": "4.0.1", - "buffer": "5.2.1", - "chalk": "2.4.1", + "bitcoinjs-message": "^2.0.0", + "bs58": "^4.0.1", + "buffer": "^5.1.0", + "chalk": "^2.3.0", "clear": "0.0.1", "coininfo": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", - "commander": "2.18.0", - "cp-file": "5.0.0", - "ecurve": "1.0.6", - "figlet": "1.2.0", - "git-clone": "0.1.0", - "ini": "1.3.5", - "mkdirp": "0.5.1", - "mocha": "5.2.0", - "node-cmd": "3.0.0", - "node-emoji": "1.8.1", - "qrcode": "1.2.2", - "randombytes": "2.0.6", - "repl.history": "0.1.4", - "safe-buffer": "5.1.2", - "satoshi-bitcoin": "1.0.4", - "socket.io": "2.1.1", - "socket.io-client": "2.1.1", - "touch": "3.1.0", - "wif": "2.0.6" + "commander": "^2.13.0", + "cp-file": "^5.0.0", + "ecurve": "^1.0.6", + "figlet": "^1.2.0", + "git-clone": "^0.1.0", + "ini": "^1.3.5", + "mkdirp": "^0.5.1", + "mocha": "^5.0.1", + "node-cmd": "^3.0.0", + "node-emoji": "^1.8.1", + "qrcode": "^1.2.0", + "randombytes": "^2.0.6", + "repl.history": "^0.1.4", + "safe-buffer": "^5.1.2", + "satoshi-bitcoin": "^1.0.4", + "socket.io": "^2.1.1", + "socket.io-client": "^2.1.1", + "touch": "^3.1.0", + "wif": "^2.0.6" + }, + "dependencies": { + "bip21": { + "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", + "from": "github:Bitcoin-com/bip21", + "requires": { + "qs": "^6.3.0" + } + }, + "bip32-utils": { + "version": "github:Bitcoin-com/bip32-utils#318df796443311f7e12217542f7f45d3b7791f10", + "from": "github:Bitcoin-com/bip32-utils#0.12.2", + "requires": { + "bitbox-cli": "1.5.*", + "keccak": "^1.3.0", + "nyc": "*", + "standard": "^11.0.1", + "tape": "*" + } + }, + "bip68": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/bip68/-/bip68-1.0.4.tgz", + "integrity": "sha512-O1htyufFTYy3EO0JkHg2CLykdXEtV2ssqw47Gq9A0WByp662xpJnMEB9m43LZjsSDjIAOozWRExlFQk2hlV1XQ==" + }, + "bitcoin-ops": { + "version": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", + "from": "github:Bitcoin-com/bitcoincash-ops" + }, + "bitcoincashjs-lib": { + "version": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", + "from": "github:Bitcoin-com/bitcoincashjs-lib#3.3.4", + "requires": { + "bech32": "^1.1.2", + "bigi": "^1.4.0", + "bip66": "^1.1.0", + "bitcoin-ops": "^1.3.0", + "bs58check": "^2.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.3", + "ecurve": "^1.0.0", + "merkle-lib": "^2.0.10", + "pushdata-bitcoin": "^1.0.1", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "typeforce": "^1.11.3", + "varuint-bitcoin": "^1.0.4", + "wif": "^2.0.1" + } + }, + "coininfo": { + "version": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", + "from": "github:Bitcoin-com/coininfo", + "requires": { + "safe-buffer": "^5.1.1" + } + } } }, "bitcoin-ops": { - "version": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" + "version": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", + "from": "github:Bitcoin-com/bitcoincash-ops" }, "bitcoin-txdecoder": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/bitcoin-txdecoder/-/bitcoin-txdecoder-0.0.3.tgz", "integrity": "sha512-pH/eF5hQ65y54U23mzuF42wEj9YWj4WKHAIj2il6b1+oRoi/oyM4Ti3e8nMD8ajippICmyquqbyCZKGq3i4W+A==", "requires": { - "bitcoinjs-lib": "3.3.2" + "bitcoinjs-lib": "3.3.*" } }, "bitcoincashjs-lib": { "version": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", - "requires": { - "bech32": "1.1.3", - "bigi": "1.4.2", - "bip66": "1.1.5", - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", - "bs58check": "2.1.2", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ecurve": "1.0.6", - "merkle-lib": "2.0.10", - "pushdata-bitcoin": "1.0.1", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "typeforce": "1.12.0", - "varuint-bitcoin": "1.1.0", - "wif": "2.0.6" + "from": "github:Bitcoin-com/bitcoincashjs-lib#3.3.4", + "requires": { + "bech32": "^1.1.2", + "bigi": "^1.4.0", + "bip66": "^1.1.0", + "bitcoin-ops": "^1.3.0", + "bs58check": "^2.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.3", + "ecurve": "^1.0.0", + "merkle-lib": "^2.0.10", + "pushdata-bitcoin": "^1.0.1", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "typeforce": "^1.11.3", + "varuint-bitcoin": "^1.0.4", + "wif": "^2.0.1" + }, + "dependencies": { + "bitcoin-ops": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz", + "integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow==" + } } }, "bitcoinjs-lib": { @@ -1332,21 +1401,27 @@ "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-3.3.2.tgz", "integrity": "sha512-l5qqvbaK8wwtANPf6oEffykycg4383XgEYdia1rI7/JpGf1jfRWlOUCvx5TiTZS7kyIvY4j/UhIQ2urLsvGkzw==", "requires": { - "bech32": "1.1.3", - "bigi": "1.4.2", - "bip66": "1.1.5", - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", - "bs58check": "2.1.2", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ecurve": "1.0.6", - "merkle-lib": "2.0.10", - "pushdata-bitcoin": "1.0.1", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "typeforce": "1.12.0", - "varuint-bitcoin": "1.1.0", - "wif": "2.0.6" + "bech32": "^1.1.2", + "bigi": "^1.4.0", + "bip66": "^1.1.0", + "bitcoin-ops": "^1.3.0", + "bs58check": "^2.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.3", + "ecurve": "^1.0.0", + "merkle-lib": "^2.0.10", + "pushdata-bitcoin": "^1.0.1", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "typeforce": "^1.11.3", + "varuint-bitcoin": "^1.0.4", + "wif": "^2.0.1" + }, + "dependencies": { + "bitcoin-ops": { + "version": "1.4.1", + "resolved": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" + } } }, "bitcoinjs-message": { @@ -1354,11 +1429,11 @@ "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", "requires": { - "bs58check": "2.1.2", - "buffer-equals": "1.0.4", - "create-hash": "1.2.0", - "secp256k1": "3.5.2", - "varuint-bitcoin": "1.1.0" + "bs58check": "^2.0.2", + "buffer-equals": "^1.0.3", + "create-hash": "^1.1.2", + "secp256k1": "^3.0.1", + "varuint-bitcoin": "^1.0.1" } }, "blob": { @@ -1377,13 +1452,13 @@ "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", "dev": true, "requires": { - "ansi-align": "2.0.0", - "camelcase": "4.1.0", - "chalk": "2.4.1", - "cli-boxes": "1.0.0", - "string-width": "2.1.1", - "term-size": "1.2.0", - "widest-line": "2.0.0" + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" } }, "brace-expansion": { @@ -1391,7 +1466,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -1401,9 +1476,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "optional": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.3" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "brorand": { @@ -1421,12 +1496,12 @@ "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "browserslist": { @@ -1434,8 +1509,8 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "requires": { - "caniuse-lite": "1.0.30000887", - "electron-to-chromium": "1.3.70" + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" } }, "bs58": { @@ -1443,7 +1518,7 @@ "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", "requires": { - "base-x": "3.0.4" + "base-x": "^3.0.2" } }, "bs58check": { @@ -1451,9 +1526,9 @@ "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", "requires": { - "bs58": "4.0.1", - "create-hash": "1.2.0", - "safe-buffer": "5.1.2" + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" } }, "buffer": { @@ -1461,8 +1536,8 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.12" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" } }, "buffer-equals": { @@ -1490,15 +1565,15 @@ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "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" }, "dependencies": { "isobject": { @@ -1536,7 +1611,7 @@ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "requires": { - "callsites": "0.2.0" + "callsites": "^0.2.0" } }, "callsite": { @@ -1559,7 +1634,7 @@ "resolved": "https://registry.npmjs.org/can-promise/-/can-promise-0.0.1.tgz", "integrity": "sha512-gzVrHyyrvgt0YpDm7pn04MQt8gjh0ZAhN4ZDyCRtGl6YnuuK6b4aiUTD7G52r9l4YNmxfTtEscb92vxtAlL6XQ==", "requires": { - "window-or-global": "1.0.1" + "window-or-global": "^1.0.1" } }, "caniuse-lite": { @@ -1584,7 +1659,7 @@ "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.2.9.tgz", "integrity": "sha512-DhJF4iAH0/RM3UjHDHKRxzs09YGL9px+oTyizzydanhC7jTyM2aJ+aLKA96vZGTTWayvvr2iDF2l13lpqXiRFg==", "requires": { - "big-integer": "1.6.36" + "big-integer": "^1.6.34" } }, "chai": { @@ -1593,12 +1668,12 @@ "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", "dev": true, "requires": { - "assertion-error": "1.1.0", - "check-error": "1.0.2", - "deep-eql": "3.0.1", - "get-func-name": "2.0.0", - "pathval": "1.1.0", - "type-detect": "4.0.8" + "assertion-error": "^1.0.1", + "check-error": "^1.0.1", + "deep-eql": "^3.0.0", + "get-func-name": "^2.0.0", + "pathval": "^1.0.0", + "type-detect": "^4.0.0" } }, "chalk": { @@ -1606,9 +1681,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "ansi-styles": { @@ -1616,7 +1691,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "color-convert": "1.9.3" + "color-convert": "^1.9.0" } }, "supports-color": { @@ -1624,7 +1699,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -1646,15 +1721,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "optional": true, "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.2.4", - "glob-parent": "2.0.0", - "inherits": "2.0.1", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1" + "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" } }, "ci-info": { @@ -1668,8 +1743,8 @@ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "circular-json": { @@ -1682,10 +1757,10 @@ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -1693,7 +1768,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "isobject": { @@ -1725,7 +1800,7 @@ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-width": { @@ -1738,9 +1813,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "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" }, "dependencies": { "string-width": { @@ -1748,9 +1823,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" } } } @@ -1761,7 +1836,7 @@ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "dev": true, "requires": { - "mimic-response": "1.0.1" + "mimic-response": "^1.0.0" } }, "co": { @@ -1776,8 +1851,9 @@ }, "coininfo": { "version": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", + "from": "github:Bitcoin-com/coininfo", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.1" } }, "collection-visit": { @@ -1785,8 +1861,8 @@ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "color-convert": { @@ -1808,7 +1884,7 @@ "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", "dev": true, "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -1841,10 +1917,10 @@ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "requires": { - "buffer-from": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" }, "dependencies": { "inherits": { @@ -1860,12 +1936,12 @@ "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", "dev": true, "requires": { - "dot-prop": "4.2.0", - "graceful-fs": "4.1.11", - "make-dir": "1.3.0", - "unique-string": "1.0.0", - "write-file-atomic": "2.3.0", - "xdg-basedir": "3.0.0" + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" } }, "contains-path": { @@ -1878,7 +1954,7 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.1" } }, "cookie": { @@ -1913,12 +1989,12 @@ "integrity": "sha512-Tv0LKe/MkBOilH2v7WBiTBdudg2ChfGbdXafc/s330djpF3zKOmuehTeRwjXWc7pzfj9FrDUTA7tEx6Div8NFw==", "dev": true, "requires": { - "growl": "1.10.5", - "js-yaml": "3.12.0", - "lcov-parse": "0.0.10", - "log-driver": "1.2.7", - "minimist": "1.2.0", - "request": "2.88.0" + "growl": "~> 1.10.0", + "js-yaml": "^3.11.0", + "lcov-parse": "^0.0.10", + "log-driver": "^1.2.7", + "minimist": "^1.2.0", + "request": "^2.85.0" }, "dependencies": { "minimist": { @@ -1934,11 +2010,11 @@ "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-5.0.0.tgz", "integrity": "sha1-vHAP0wyjLSTUbH+wK5kuQ1/FqXg=", "requires": { - "graceful-fs": "4.1.11", - "make-dir": "1.3.0", - "nested-error-stacks": "2.1.0", - "pify": "3.0.0", - "safe-buffer": "5.1.2" + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "nested-error-stacks": "^2.0.0", + "pify": "^3.0.0", + "safe-buffer": "^5.0.1" } }, "create-error-class": { @@ -1947,7 +2023,7 @@ "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "dev": true, "requires": { - "capture-stack-trace": "1.0.1" + "capture-stack-trace": "^1.0.0" } }, "create-hash": { @@ -1955,11 +2031,11 @@ "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.1", - "md5.js": "1.3.4", - "ripemd160": "2.0.2", - "sha.js": "2.4.11" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, "create-hmac": { @@ -1967,12 +2043,12 @@ "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "inherits": "2.0.1", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "cross-spawn": { @@ -1980,9 +2056,9 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "crypto-random-string": { @@ -1997,7 +2073,7 @@ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "debug": { @@ -2029,7 +2105,7 @@ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "dev": true, "requires": { - "mimic-response": "1.0.1" + "mimic-response": "^1.0.0" } }, "deep-eql": { @@ -2038,7 +2114,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "4.0.8" + "type-detect": "^4.0.0" } }, "deep-equal": { @@ -2062,7 +2138,7 @@ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "requires": { - "object-keys": "1.0.12" + "object-keys": "^1.0.12" } }, "define-property": { @@ -2070,8 +2146,8 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -2079,7 +2155,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -2087,7 +2163,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -2095,9 +2171,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -2122,12 +2198,12 @@ "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.1.tgz", "integrity": "sha512-2kjwuGGonL7gWE1XU4Fv79+vVzpoQCl0V+boMwWtOQJV2AGDabCwez++nB1Nli/8BabAfZQ/UuHPlp6AymKdWw==", "requires": { - "find-root": "1.1.0", - "glob": "7.1.3", - "ignore": "3.3.10", - "pkg-config": "1.1.1", - "run-parallel": "1.1.9", - "uniq": "1.0.1" + "find-root": "^1.0.0", + "glob": "^7.0.5", + "ignore": "^3.0.9", + "pkg-config": "^1.1.0", + "run-parallel": "^1.1.2", + "uniq": "^1.0.1" }, "dependencies": { "ignore": { @@ -2142,13 +2218,13 @@ "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.2" + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" }, "dependencies": { "pify": { @@ -2175,7 +2251,7 @@ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "diff": { @@ -2193,7 +2269,7 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "requires": { - "esutils": "2.0.2" + "esutils": "^2.0.2" } }, "dot-prop": { @@ -2202,7 +2278,7 @@ "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", "dev": true, "requires": { - "is-obj": "1.0.1" + "is-obj": "^1.0.0" } }, "drbg.js": { @@ -2210,9 +2286,9 @@ "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", "requires": { - "browserify-aes": "1.2.0", - "create-hash": "1.2.0", - "create-hmac": "1.1.7" + "browserify-aes": "^1.0.6", + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4" } }, "duplexer": { @@ -2234,8 +2310,8 @@ "dev": true, "optional": true, "requires": { - "jsbn": "0.1.1", - "safer-buffer": "2.1.2" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, "ecurve": { @@ -2243,8 +2319,8 @@ "resolved": "https://registry.npmjs.org/ecurve/-/ecurve-1.0.6.tgz", "integrity": "sha512-/BzEjNfiSuB7jIWKcS/z8FK9jNjmEWvUV2YZ4RLSmcDtP7Lq0m6FvDuSnJpBlDpGRpfRQeTLGLBI8H+kEv0r+w==", "requires": { - "bigi": "1.4.2", - "safe-buffer": "5.1.2" + "bigi": "^1.1.0", + "safe-buffer": "^5.0.1" } }, "electron-to-chromium": { @@ -2257,13 +2333,13 @@ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.5", - "hmac-drbg": "1.0.1", - "inherits": "2.0.1", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" } }, "engine.io": { @@ -2271,12 +2347,12 @@ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.0.tgz", "integrity": "sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==", "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.4", "base64id": "1.0.0", "cookie": "0.3.1", - "debug": "3.1.0", - "engine.io-parser": "2.1.2", - "ws": "3.3.3" + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "ws": "~3.3.1" } }, "engine.io-client": { @@ -2286,14 +2362,14 @@ "requires": { "component-emitter": "1.2.1", "component-inherit": "0.0.3", - "debug": "3.1.0", - "engine.io-parser": "2.1.2", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", "has-cors": "1.1.0", "indexof": "0.0.1", "parseqs": "0.0.5", "parseuri": "0.0.5", - "ws": "3.3.3", - "xmlhttprequest-ssl": "1.5.5", + "ws": "~3.3.1", + "xmlhttprequest-ssl": "~1.5.4", "yeast": "0.1.2" } }, @@ -2303,10 +2379,10 @@ "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==", "requires": { "after": "0.8.2", - "arraybuffer.slice": "0.0.7", + "arraybuffer.slice": "~0.0.7", "base64-arraybuffer": "0.1.5", "blob": "0.0.4", - "has-binary2": "1.0.3" + "has-binary2": "~1.0.2" } }, "error-ex": { @@ -2314,7 +2390,7 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "es-abstract": { @@ -2322,21 +2398,21 @@ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", "requires": { - "es-to-primitive": "1.1.1", - "function-bind": "1.1.1", - "has": "1.0.3", - "is-callable": "1.1.4", - "is-regex": "1.0.4" + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" } }, "es-to-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", - "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", "requires": { - "is-callable": "1.1.4", - "is-date-object": "1.0.1", - "is-symbol": "1.0.2" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" } }, "es6-promise": { @@ -2356,44 +2432,44 @@ "integrity": "sha512-/eVYs9VVVboX286mBK7bbKnO1yamUy2UCRjiY6MryhQL2PaaXCExsCQ2aO83OeYRhU2eCU/FMFP+tVMoOrzNrA==", "dev": true, "requires": { - "@babel/code-frame": "7.0.0", - "ajv": "6.5.4", - "chalk": "2.4.1", - "cross-spawn": "6.0.5", - "debug": "3.1.0", - "doctrine": "2.1.0", - "eslint-scope": "4.0.0", - "eslint-utils": "1.3.1", - "eslint-visitor-keys": "1.0.0", - "espree": "4.0.0", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.3", - "globals": "11.7.0", - "ignore": "4.0.6", - "imurmurhash": "0.1.4", - "inquirer": "6.2.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.12.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.0", - "regexpp": "2.0.0", - "require-uncached": "1.0.3", - "semver": "5.5.1", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", - "table": "4.0.3", - "text-table": "0.2.0" + "@babel/code-frame": "^7.0.0", + "ajv": "^6.5.3", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^4.0.0", + "eslint-utils": "^1.3.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^4.0.0", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.7.0", + "ignore": "^4.0.6", + "imurmurhash": "^0.1.4", + "inquirer": "^6.1.0", + "is-resolvable": "^1.1.0", + "js-yaml": "^3.12.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.5", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^2.0.0", + "require-uncached": "^1.0.3", + "semver": "^5.5.1", + "strip-ansi": "^4.0.0", + "strip-json-comments": "^2.0.1", + "table": "^4.0.3", + "text-table": "^0.2.0" }, "dependencies": { "@babel/code-frame": { @@ -2402,7 +2478,7 @@ "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", "dev": true, "requires": { - "@babel/highlight": "7.0.0" + "@babel/highlight": "^7.0.0" } }, "@babel/highlight": { @@ -2411,9 +2487,9 @@ "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", "dev": true, "requires": { - "chalk": "2.4.1", - "esutils": "2.0.2", - "js-tokens": "4.0.0" + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" } }, "acorn-jsx": { @@ -2422,7 +2498,7 @@ "integrity": "sha512-JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw==", "dev": true, "requires": { - "acorn": "5.7.3" + "acorn": "^5.0.3" } }, "ajv": { @@ -2431,10 +2507,10 @@ "integrity": "sha512-4Wyjt8+t6YszqaXnLDfMmG/8AlO5Zbcsy3ATHncCzjW/NoPzAId8AK6749Ybjmdt+kUY1gP60fCu46oDxPv/mg==", "dev": true, "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, "ajv-keywords": { @@ -2461,11 +2537,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.5.1", - "shebang-command": "1.2.0", - "which": "1.3.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "eslint-scope": { @@ -2474,8 +2550,8 @@ "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", "dev": true, "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "espree": { @@ -2484,8 +2560,8 @@ "integrity": "sha512-kapdTCt1bjmspxStVKX6huolXVV5ZfyZguY1lcfhVVZstce3bqxH9mcLzNn3/mlgW6wQ732+0fuG9v7h0ZQoKg==", "dev": true, "requires": { - "acorn": "5.7.3", - "acorn-jsx": "4.1.1" + "acorn": "^5.6.0", + "acorn-jsx": "^4.1.1" } }, "external-editor": { @@ -2494,9 +2570,9 @@ "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", "dev": true, "requires": { - "chardet": "0.7.0", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" } }, "fast-deep-equal": { @@ -2523,19 +2599,19 @@ "integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==", "dev": true, "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "3.0.3", - "figures": "2.0.0", - "lodash": "4.17.11", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.0", + "figures": "^2.0.0", + "lodash": "^4.17.10", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rxjs": "6.3.2", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rxjs": "^6.1.0", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" } }, "js-tokens": { @@ -2556,7 +2632,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "table": { @@ -2565,12 +2641,12 @@ "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", "dev": true, "requires": { - "ajv": "6.5.4", - "ajv-keywords": "3.2.0", - "chalk": "2.4.1", - "lodash": "4.17.11", + "ajv": "^6.0.1", + "ajv-keywords": "^3.0.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "string-width": "^2.1.1" } } } @@ -2581,7 +2657,7 @@ "integrity": "sha512-QYGfmzuc4q4J6XIhlp8vRKdI/fI0tQfQPy1dME3UOLprE+v4ssH/3W9LM2Q7h5qBcy5m0ehCrBDU2YF8q6OY8w==", "dev": true, "requires": { - "get-stdin": "6.0.0" + "get-stdin": "^6.0.0" } }, "eslint-config-standard": { @@ -2599,8 +2675,8 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", "requires": { - "debug": "2.6.9", - "resolve": "1.8.1" + "debug": "^2.6.9", + "resolve": "^1.5.0" }, "dependencies": { "debug": { @@ -2618,8 +2694,8 @@ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", "requires": { - "debug": "2.6.9", - "pkg-dir": "1.0.0" + "debug": "^2.6.8", + "pkg-dir": "^1.0.0" }, "dependencies": { "debug": { @@ -2638,25 +2714,25 @@ "integrity": "sha512-9XcVyZiQRVeFjqHw8qHNDAZcQLqaHlOGGpeYqzYh8S4JYCWTCO3yzyen8yVmA5PratfzTRWDwCOFphtDEG+w/w==", "dev": true, "requires": { - "eslint-utils": "1.3.1", - "regexpp": "2.0.0" + "eslint-utils": "^1.3.0", + "regexpp": "^2.0.0" } }, "eslint-plugin-import": { "version": "2.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz", + "resolved": "http://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz", "integrity": "sha1-JgAu+/ylmJtyiKwEdQi9JPIXsWk=", "requires": { - "builtin-modules": "1.1.1", - "contains-path": "0.1.0", - "debug": "2.6.9", + "builtin-modules": "^1.1.1", + "contains-path": "^0.1.0", + "debug": "^2.6.8", "doctrine": "1.5.0", - "eslint-import-resolver-node": "0.3.2", - "eslint-module-utils": "2.2.0", - "has": "1.0.3", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "read-pkg-up": "2.0.0" + "eslint-import-resolver-node": "^0.3.1", + "eslint-module-utils": "^2.1.1", + "has": "^1.0.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.3", + "read-pkg-up": "^2.0.0" }, "dependencies": { "debug": { @@ -2672,8 +2748,8 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" + "esutils": "^2.0.2", + "isarray": "^1.0.0" } } } @@ -2684,12 +2760,12 @@ "integrity": "sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw==", "dev": true, "requires": { - "eslint-plugin-es": "1.3.1", - "eslint-utils": "1.3.1", - "ignore": "4.0.6", - "minimatch": "3.0.4", - "resolve": "1.8.1", - "semver": "5.5.1" + "eslint-plugin-es": "^1.3.1", + "eslint-utils": "^1.3.1", + "ignore": "^4.0.2", + "minimatch": "^3.0.4", + "resolve": "^1.8.1", + "semver": "^5.5.0" } }, "eslint-plugin-prettier": { @@ -2698,8 +2774,8 @@ "integrity": "sha512-tGek5clmW5swrAx1mdPYM8oThrBE83ePh7LeseZHBWfHVGrHPhKn7Y5zgRMbU/9D5Td9K4CEmUPjGxA7iw98Og==", "dev": true, "requires": { - "fast-diff": "1.1.2", - "jest-docblock": "21.2.0" + "fast-diff": "^1.1.1", + "jest-docblock": "^21.0.0" } }, "eslint-plugin-promise": { @@ -2709,13 +2785,13 @@ }, "eslint-plugin-react": { "version": "7.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz", + "resolved": "http://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz", "integrity": "sha512-KC7Snr4YsWZD5flu6A5c0AcIZidzW3Exbqp7OT67OaD2AppJtlBr/GuPrW/vaQM/yfZotEvKAdrxrO+v8vwYJA==", "requires": { - "doctrine": "2.1.0", - "has": "1.0.3", - "jsx-ast-utils": "2.0.1", - "prop-types": "15.6.2" + "doctrine": "^2.0.2", + "has": "^1.0.1", + "jsx-ast-utils": "^2.0.1", + "prop-types": "^15.6.0" } }, "eslint-plugin-standard": { @@ -2728,8 +2804,8 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint-utils": { @@ -2748,8 +2824,8 @@ "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "requires": { - "acorn": "5.7.3", - "acorn-jsx": "3.0.1" + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" } }, "esprima": { @@ -2762,7 +2838,7 @@ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "esrecurse": { @@ -2770,7 +2846,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.1.0" } }, "estraverse": { @@ -2789,14 +2865,14 @@ "integrity": "sha512-dGXNg4F/FgVzlApjzItL+7naHutA3fDqbV/zAZqDDlXTjiMnQmZKu+prImWKszeBM5UQeGvAl3u1wBiKeDh61g==", "dev": true, "requires": { - "duplexer": "0.1.1", - "flatmap-stream": "0.1.0", - "from": "0.1.7", + "duplexer": "^0.1.1", + "flatmap-stream": "^0.1.0", + "from": "^0.1.7", "map-stream": "0.0.7", - "pause-stream": "0.0.11", - "split": "1.0.1", - "stream-combiner": "0.2.2", - "through": "2.3.8" + "pause-stream": "^0.0.11", + "split": "^1.0.1", + "stream-combiner": "^0.2.2", + "through": "^2.3.8" } }, "evp_bytestokey": { @@ -2804,8 +2880,8 @@ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "requires": { - "md5.js": "1.3.4", - "safe-buffer": "5.1.2" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, "execa": { @@ -2813,13 +2889,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "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" } }, "expand-brackets": { @@ -2828,7 +2904,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "optional": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -2837,7 +2913,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "optional": true, "requires": { - "fill-range": "2.2.4" + "fill-range": "^2.1.0" } }, "extend": { @@ -2851,8 +2927,8 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -2860,7 +2936,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -2870,9 +2946,9 @@ "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" } }, "extglob": { @@ -2881,7 +2957,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "optional": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "extsprintf": { @@ -2921,7 +2997,7 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { @@ -2929,8 +3005,8 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" } }, "filename-regex": { @@ -2945,11 +3021,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "optional": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.1.0", - "repeat-element": "1.1.3", - "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" } }, "find-root": { @@ -2962,7 +3038,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "flat-cache": { @@ -2970,10 +3046,10 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "requires": { - "circular-json": "0.3.3", - "del": "2.2.2", - "graceful-fs": "4.1.11", - "write": "0.2.1" + "circular-json": "^0.3.1", + "del": "^2.0.2", + "graceful-fs": "^4.1.2", + "write": "^0.2.1" } }, "flatmap-stream": { @@ -2994,7 +3070,7 @@ "integrity": "sha512-JTnCiuaAm66gGuizv4g46MqN1QVldPxySn9DxZ+hCjMaEGFx6ciJhz0iMfS5iv1YKqZo5pBW6qFJ9Zu0jaqvaw==", "dev": true, "requires": { - "lodash.merge": "4.6.1" + "lodash.merge": "^4.6.1" } }, "follow-redirects": { @@ -3002,7 +3078,7 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.8.tgz", "integrity": "sha512-sy1mXPmv7kLAMKW/8XofG7o9T+6gAjzdZK4AJF6ryqQYUa/hnzgiypoeUecZ53x7XiqKNEpNqLtS97MshW2nxg==", "requires": { - "debug": "3.1.0" + "debug": "=3.1.0" } }, "for-each": { @@ -3010,7 +3086,7 @@ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "requires": { - "is-callable": "1.1.4" + "is-callable": "^1.1.3" } }, "for-in": { @@ -3024,7 +3100,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "optional": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "forever-agent": { @@ -3039,9 +3115,9 @@ "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "dev": true, "requires": { - "asynckit": "0.4.0", + "asynckit": "^0.4.0", "combined-stream": "1.0.6", - "mime-types": "2.1.20" + "mime-types": "^2.1.12" }, "dependencies": { "combined-stream": { @@ -3050,7 +3126,7 @@ "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "dev": true, "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } } } @@ -3066,7 +3142,7 @@ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fresh": { @@ -3087,8 +3163,8 @@ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "requires": { - "inherits": "2.0.1", - "readable-stream": "2.3.6" + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" } }, "fs-readdir-recursive": { @@ -3107,8 +3183,8 @@ "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", "optional": true, "requires": { - "nan": "2.11.0", - "node-pre-gyp": "0.10.0" + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" }, "dependencies": { "abbrev": { @@ -3130,8 +3206,8 @@ "bundled": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "balanced-match": { @@ -3142,7 +3218,7 @@ "version": "1.1.11", "bundled": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -3196,7 +3272,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "fs.realpath": { @@ -3209,14 +3285,14 @@ "bundled": true, "optional": 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" } }, "glob": { @@ -3224,12 +3300,12 @@ "bundled": true, "optional": 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" } }, "has-unicode": { @@ -3242,7 +3318,7 @@ "bundled": true, "optional": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "^2.1.0" } }, "ignore-walk": { @@ -3250,7 +3326,7 @@ "bundled": true, "optional": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "inflight": { @@ -3258,8 +3334,8 @@ "bundled": true, "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -3275,7 +3351,7 @@ "version": "1.0.0", "bundled": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "isarray": { @@ -3287,7 +3363,7 @@ "version": "3.0.4", "bundled": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -3298,8 +3374,8 @@ "version": "2.2.4", "bundled": true, "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" } }, "minizlib": { @@ -3307,7 +3383,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "mkdirp": { @@ -3327,9 +3403,9 @@ "bundled": true, "optional": true, "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, "node-pre-gyp": { @@ -3337,16 +3413,16 @@ "bundled": true, "optional": true, "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.7", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" + "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": { @@ -3354,8 +3430,8 @@ "bundled": true, "optional": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npm-bundled": { @@ -3368,8 +3444,8 @@ "bundled": true, "optional": true, "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, "npmlog": { @@ -3377,10 +3453,10 @@ "bundled": 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" + "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": { @@ -3396,7 +3472,7 @@ "version": "1.4.0", "bundled": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -3414,8 +3490,8 @@ "bundled": 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": { @@ -3433,10 +3509,10 @@ "bundled": true, "optional": true, "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "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": { @@ -3451,13 +3527,13 @@ "bundled": true, "optional": true, "requires": { - "core-util-is": "1.0.2", - "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.2" + "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": { @@ -3465,7 +3541,7 @@ "bundled": true, "optional": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { @@ -3501,9 +3577,9 @@ "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": { @@ -3511,14 +3587,14 @@ "bundled": true, "optional": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { "version": "3.0.1", "bundled": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -3531,13 +3607,13 @@ "bundled": true, "optional": true, "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "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" } }, "util-deprecate": { @@ -3550,7 +3626,7 @@ "bundled": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { @@ -3605,7 +3681,7 @@ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "git-clone": { @@ -3618,12 +3694,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.1", - "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": { @@ -3632,8 +3708,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "optional": true, "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -3641,7 +3717,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "global-dirs": { @@ -3650,7 +3726,7 @@ "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "dev": true, "requires": { - "ini": "1.3.5" + "ini": "^1.3.4" } }, "globals": { @@ -3663,12 +3739,12 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.3", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "pify": { @@ -3684,23 +3760,23 @@ "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", "dev": true, "requires": { - "@sindresorhus/is": "0.7.0", - "cacheable-request": "2.1.4", - "decompress-response": "3.3.0", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "into-stream": "3.1.0", - "is-retry-allowed": "1.1.0", - "isurl": "1.0.0", - "lowercase-keys": "1.0.1", - "mimic-response": "1.0.1", - "p-cancelable": "0.4.1", - "p-timeout": "2.0.1", - "pify": "3.0.0", - "safe-buffer": "5.1.2", - "timed-out": "4.0.1", - "url-parse-lax": "3.0.0", - "url-to-options": "1.0.1" + "@sindresorhus/is": "^0.7.0", + "cacheable-request": "^2.1.1", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "into-stream": "^3.1.0", + "is-retry-allowed": "^1.1.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "mimic-response": "^1.0.0", + "p-cancelable": "^0.4.0", + "p-timeout": "^2.0.1", + "pify": "^3.0.0", + "safe-buffer": "^5.1.1", + "timed-out": "^4.0.1", + "url-parse-lax": "^3.0.0", + "url-to-options": "^1.0.1" } }, "graceful-fs": { @@ -3725,8 +3801,8 @@ "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", "dev": true, "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" + "ajv": "^5.3.0", + "har-schema": "^2.0.0" } }, "has": { @@ -3734,7 +3810,7 @@ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.1.1" } }, "has-ansi": { @@ -3742,7 +3818,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-binary2": { @@ -3787,7 +3863,7 @@ "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", "dev": true, "requires": { - "has-symbol-support-x": "1.4.2" + "has-symbol-support-x": "^1.4.1" } }, "has-value": { @@ -3795,9 +3871,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "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" }, "dependencies": { "isobject": { @@ -3812,8 +3888,8 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { @@ -3821,7 +3897,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -3829,7 +3905,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -3839,7 +3915,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -3849,8 +3925,8 @@ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "hash.js": { @@ -3858,8 +3934,8 @@ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" }, "dependencies": { "inherits": { @@ -3879,9 +3955,9 @@ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { - "hash.js": "1.1.5", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, "home-or-tmp": { @@ -3889,8 +3965,8 @@ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" } }, "hosted-git-info": { @@ -3910,9 +3986,9 @@ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.14.2" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "iconv-lite": { @@ -3920,7 +3996,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "ieee754": { @@ -3967,8 +4043,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -3986,20 +4062,20 @@ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.11", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" }, "dependencies": { "ansi-regex": { @@ -4012,7 +4088,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -4023,8 +4099,8 @@ "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", "dev": true, "requires": { - "from2": "2.3.0", - "p-is-promise": "1.1.0" + "from2": "^2.1.1", + "p-is-promise": "^1.1.0" } }, "invariant": { @@ -4032,7 +4108,7 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -4045,7 +4121,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-arrayish": { @@ -4058,7 +4134,7 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "requires": { - "binary-extensions": "1.12.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -4071,7 +4147,7 @@ "resolved": "http://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-callable": { @@ -4085,7 +4161,7 @@ "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", "dev": true, "requires": { - "ci-info": "1.6.0" + "ci-info": "^1.5.0" } }, "is-data-descriptor": { @@ -4093,7 +4169,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-date-object": { @@ -4106,9 +4182,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "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": { @@ -4130,7 +4206,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "optional": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -4148,7 +4224,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-fullwidth-code-point": { @@ -4156,7 +4232,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-glob": { @@ -4164,7 +4240,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-installed-globally": { @@ -4173,8 +4249,8 @@ "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "dev": true, "requires": { - "global-dirs": "0.1.1", - "is-path-inside": "1.0.1" + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" } }, "is-npm": { @@ -4189,7 +4265,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-obj": { @@ -4214,7 +4290,7 @@ "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "requires": { - "is-path-inside": "1.0.1" + "is-path-inside": "^1.0.0" } }, "is-path-inside": { @@ -4222,7 +4298,7 @@ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.1" } }, "is-plain-obj": { @@ -4236,7 +4312,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -4274,7 +4350,7 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "requires": { - "has": "1.0.3" + "has": "^1.0.1" } }, "is-resolvable": { @@ -4298,7 +4374,7 @@ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", "requires": { - "has-symbols": "1.0.0" + "has-symbols": "^1.0.0" } }, "is-typedarray": { @@ -4343,8 +4419,8 @@ "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", "dev": true, "requires": { - "has-to-string-tag-x": "1.4.1", - "is-object": "1.0.1" + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" } }, "jest-docblock": { @@ -4363,8 +4439,8 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsbn": { @@ -4434,7 +4510,7 @@ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", "requires": { - "array-includes": "3.0.3" + "array-includes": "^3.0.3" } }, "just-extend": { @@ -4448,10 +4524,10 @@ "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", "requires": { - "bindings": "1.3.0", - "inherits": "2.0.3", - "nan": "2.11.0", - "safe-buffer": "5.1.2" + "bindings": "^1.2.1", + "inherits": "^2.0.3", + "nan": "^2.2.1", + "safe-buffer": "^5.1.0" }, "dependencies": { "inherits": { @@ -4475,7 +4551,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "kubernetes-client": { @@ -4485,9 +4561,9 @@ "dev": true, "requires": { "fluent-openapi": "0.1.1", - "js-yaml": "3.12.0", - "openid-client": "2.4.1", - "request": "2.88.0" + "js-yaml": "^3.10.0", + "openid-client": "^2.0.0", + "request": "^2.83.0" } }, "latest-version": { @@ -4496,7 +4572,7 @@ "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", "dev": true, "requires": { - "package-json": "4.0.1" + "package-json": "^4.0.0" } }, "lcid": { @@ -4504,7 +4580,7 @@ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "lcov-parse": { @@ -4518,8 +4594,8 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "load-json-file": { @@ -4527,10 +4603,10 @@ "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "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" }, "dependencies": { "pify": { @@ -4545,8 +4621,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "lodash": { @@ -4654,7 +4730,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0 || ^4.0.0" } }, "lowercase-keys": { @@ -4668,8 +4744,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "make-dir": { @@ -4677,7 +4753,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "map-cache": { @@ -4696,7 +4772,7 @@ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "math-random": { @@ -4710,8 +4786,8 @@ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.1" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, "media-typer": { @@ -4725,7 +4801,7 @@ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "merge-descriptors": { @@ -4751,19 +4827,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "optional": 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" } }, "mime": { @@ -4782,7 +4858,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", "requires": { - "mime-db": "1.36.0" + "mime-db": "~1.36.0" } }, "mimic-fn": { @@ -4811,7 +4887,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -4824,8 +4900,8 @@ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -4833,7 +4909,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -4874,12 +4950,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.1", - "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" } }, "supports-color": { @@ -4887,7 +4963,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -4912,17 +4988,17 @@ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "arr-diff": { @@ -4976,10 +5052,10 @@ "dev": true, "requires": { "@sinonjs/formatio": "3.0.0", - "just-extend": "3.0.0", - "lolex": "2.7.5", - "path-to-regexp": "1.7.0", - "text-encoding": "0.6.4" + "just-extend": "^3.0.0", + "lolex": "^2.3.2", + "path-to-regexp": "^1.7.0", + "text-encoding": "^0.6.4" }, "dependencies": { "@sinonjs/formatio": { @@ -5003,7 +5079,7 @@ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", "requires": { - "lodash.toarray": "4.4.0" + "lodash.toarray": "^4.4.0" } }, "node-forge": { @@ -5018,21 +5094,21 @@ "integrity": "sha512-RE3P8l60Rj9ELrpPmvw6sOQ1hSyYfmQdNUMCa4EN7nCE1ux5JVX+GfXv+mfUTEMhZwNMwxBtI0+X1CKKeukSVQ==", "dev": true, "requires": { - "base64url": "3.0.0", - "es6-promise": "4.2.5", - "lodash.assign": "4.2.0", - "lodash.clone": "4.5.0", - "lodash.fill": "3.4.0", - "lodash.flatten": "4.4.0", - "lodash.intersection": "4.4.0", - "lodash.merge": "4.6.1", - "lodash.omit": "4.5.0", - "lodash.partialright": "4.2.1", - "lodash.pick": "4.4.0", - "lodash.uniq": "4.5.0", - "long": "4.0.0", - "node-forge": "0.7.6", - "uuid": "3.3.2" + "base64url": "^3.0.0", + "es6-promise": "^4.0.5", + "lodash.assign": "^4.0.8", + "lodash.clone": "^4.3.2", + "lodash.fill": "^3.2.2", + "lodash.flatten": "^4.2.0", + "lodash.intersection": "^4.1.2", + "lodash.merge": "^4.3.5", + "lodash.omit": "^4.2.1", + "lodash.partialright": "^4.1.3", + "lodash.pick": "^4.2.0", + "lodash.uniq": "^4.2.1", + "long": "^4.0.0", + "node-forge": "^0.7.1", + "uuid": "^3.0.1" } }, "node-mocks-http": { @@ -5041,16 +5117,16 @@ "integrity": "sha512-AX1jGG87itK38N9UZif1CFYjJDibCOj07d0YGpUsxzglVWJjyJ3R7fxtuK7l6RVCKZteLiQyaTo9UR8rIEESgw==", "dev": true, "requires": { - "accepts": "1.3.5", - "depd": "1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "mime": "1.6.0", - "net": "1.0.2", - "parseurl": "1.3.2", - "range-parser": "1.2.0", - "type-is": "1.6.16" + "accepts": "^1.3.3", + "depd": "^1.1.0", + "fresh": "^0.5.2", + "merge-descriptors": "^1.0.1", + "methods": "^1.1.2", + "mime": "^1.3.4", + "net": "^1.0.2", + "parseurl": "^1.3.1", + "range-parser": "^1.2.0", + "type-is": "^1.6.14" } }, "nodemon": { @@ -5059,16 +5135,16 @@ "integrity": "sha512-hyK6vl65IPnky/ee+D3IWvVGgJa/m3No2/Xc/3wanS6Ce1MWjCzH6NnhPJ/vZM+6JFym16jtHx51lmCMB9HDtg==", "dev": true, "requires": { - "chokidar": "2.0.4", - "debug": "3.1.0", - "ignore-by-default": "1.0.1", - "minimatch": "3.0.4", - "pstree.remy": "1.1.0", - "semver": "5.5.1", - "supports-color": "5.5.0", - "touch": "3.1.0", - "undefsafe": "2.0.2", - "update-notifier": "2.5.0" + "chokidar": "^2.0.2", + "debug": "^3.1.0", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.0", + "semver": "^5.5.0", + "supports-color": "^5.2.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.2", + "update-notifier": "^2.3.0" }, "dependencies": { "anymatch": { @@ -5077,8 +5153,8 @@ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" } }, "arr-diff": { @@ -5099,16 +5175,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -5117,7 +5193,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5128,19 +5204,19 @@ "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", "dev": true, "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.1", - "braces": "2.3.2", - "fsevents": "1.2.4", - "glob-parent": "3.1.0", - "inherits": "2.0.1", - "is-binary-path": "1.0.1", - "is-glob": "4.0.0", - "lodash.debounce": "4.0.8", - "normalize-path": "2.1.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1", - "upath": "1.1.0" + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.2.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "lodash.debounce": "^4.0.8", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.5" } }, "expand-brackets": { @@ -5149,13 +5225,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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { "debug": { @@ -5173,7 +5249,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -5182,7 +5258,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -5191,7 +5267,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -5200,7 +5276,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5211,7 +5287,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -5220,7 +5296,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5231,9 +5307,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": { @@ -5250,14 +5326,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { @@ -5266,7 +5342,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -5275,7 +5351,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5286,10 +5362,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" }, "dependencies": { "extend-shallow": { @@ -5298,7 +5374,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5309,8 +5385,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { @@ -5319,7 +5395,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -5330,7 +5406,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -5339,7 +5415,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -5348,9 +5424,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-extglob": { @@ -5365,7 +5441,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } }, "is-number": { @@ -5374,7 +5450,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -5383,7 +5459,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5406,19 +5482,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } }, "supports-color": { @@ -5427,7 +5503,7 @@ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -5437,7 +5513,7 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } }, "normalize-package-data": { @@ -5445,10 +5521,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.7.1", - "is-builtin-module": "1.0.0", - "semver": "5.5.1", - "validate-npm-package-license": "3.0.4" + "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": { @@ -5456,7 +5532,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "normalize-url": { @@ -5465,9 +5541,9 @@ "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", "dev": true, "requires": { - "prepend-http": "2.0.0", - "query-string": "5.1.1", - "sort-keys": "2.0.0" + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" } }, "npm-run-path": { @@ -5475,7 +5551,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -5488,42 +5564,42 @@ "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.9.0.tgz", "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", "requires": { - "archy": "1.0.0", - "arrify": "1.0.1", - "caching-transform": "1.0.1", - "convert-source-map": "1.5.1", - "debug-log": "1.0.1", - "default-require-extensions": "1.0.0", - "find-cache-dir": "0.1.1", - "find-up": "2.1.0", - "foreground-child": "1.5.6", - "glob": "7.1.2", - "istanbul-lib-coverage": "1.2.0", - "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "1.10.1", - "istanbul-lib-report": "1.1.3", - "istanbul-lib-source-maps": "1.2.3", - "istanbul-reports": "1.4.0", - "md5-hex": "1.3.0", - "merge-source-map": "1.1.0", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "resolve-from": "2.0.0", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "spawn-wrap": "1.4.2", - "test-exclude": "4.2.1", + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^1.0.0", + "convert-source-map": "^1.5.1", + "debug-log": "^1.0.1", + "default-require-extensions": "^1.0.0", + "find-cache-dir": "^0.1.1", + "find-up": "^2.1.0", + "foreground-child": "^1.5.3", + "glob": "^7.0.6", + "istanbul-lib-coverage": "^1.1.2", + "istanbul-lib-hook": "^1.1.0", + "istanbul-lib-instrument": "^1.10.0", + "istanbul-lib-report": "^1.1.3", + "istanbul-lib-source-maps": "^1.2.3", + "istanbul-reports": "^1.4.0", + "md5-hex": "^1.2.0", + "merge-source-map": "^1.1.0", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.0", + "resolve-from": "^2.0.0", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.1", + "spawn-wrap": "^1.4.2", + "test-exclude": "^4.2.0", "yargs": "11.1.0", - "yargs-parser": "8.1.0" + "yargs-parser": "^8.0.0" }, "dependencies": { "align-text": { "version": "0.1.4", "bundled": 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" } }, "amdefine": { @@ -5542,7 +5618,7 @@ "version": "0.4.0", "bundled": true, "requires": { - "default-require-extensions": "1.0.0" + "default-require-extensions": "^1.0.0" } }, "archy": { @@ -5585,74 +5661,74 @@ "version": "6.26.0", "bundled": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" } }, "babel-generator": { "version": "6.26.1", "bundled": true, "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" } }, "babel-messages": { "version": "6.23.0", "bundled": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-runtime": { "version": "6.26.0", "bundled": true, "requires": { - "core-js": "2.5.6", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { "version": "6.26.0", "bundled": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.10" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { "version": "6.26.0", "bundled": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.10" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" } }, "babel-types": { "version": "6.26.0", "bundled": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -5667,43 +5743,43 @@ "version": "0.11.2", "bundled": true, "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "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" }, "dependencies": { "define-property": { "version": "1.0.0", "bundled": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -5720,7 +5796,7 @@ "version": "1.1.11", "bundled": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -5728,23 +5804,23 @@ "version": "2.3.2", "bundled": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5757,15 +5833,15 @@ "version": "1.0.1", "bundled": 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" }, "dependencies": { "isobject": { @@ -5778,9 +5854,9 @@ "version": "1.0.1", "bundled": true, "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" } }, "camelcase": { @@ -5793,36 +5869,36 @@ "bundled": true, "optional": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chalk": { "version": "1.1.3", "bundled": 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" } }, "class-utils": { "version": "0.3.6", "bundled": true, "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { "version": "0.2.5", "bundled": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "isobject": { @@ -5836,8 +5912,8 @@ "bundled": true, "optional": 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" }, "dependencies": { @@ -5856,8 +5932,8 @@ "version": "1.0.0", "bundled": true, "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "commondir": { @@ -5888,8 +5964,8 @@ "version": "4.0.2", "bundled": true, "requires": { - "lru-cache": "4.1.3", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } }, "debug": { @@ -5915,38 +5991,38 @@ "version": "1.0.0", "bundled": true, "requires": { - "strip-bom": "2.0.0" + "strip-bom": "^2.0.0" } }, "define-property": { "version": "2.0.2", "bundled": true, "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -5963,14 +6039,14 @@ "version": "4.0.0", "bundled": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "error-ex": { "version": "1.3.1", "bundled": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "escape-string-regexp": { @@ -5985,22 +6061,22 @@ "version": "0.7.0", "bundled": 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" }, "dependencies": { "cross-spawn": { "version": "5.1.0", "bundled": true, "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } } } @@ -6009,27 +6085,27 @@ "version": "2.1.4", "bundled": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { "version": "0.2.5", "bundled": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -6038,15 +6114,15 @@ "version": "3.0.2", "bundled": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { "version": "1.0.1", "bundled": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -6055,51 +6131,51 @@ "version": "2.0.4", "bundled": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { "version": "1.0.0", "bundled": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { @@ -6112,17 +6188,17 @@ "version": "4.0.0", "bundled": 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" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -6131,16 +6207,16 @@ "version": "0.1.1", "bundled": true, "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" } }, "find-up": { "version": "2.1.0", "bundled": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "for-in": { @@ -6151,15 +6227,15 @@ "version": "1.5.6", "bundled": true, "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" + "cross-spawn": "^4", + "signal-exit": "^3.0.0" } }, "fragment-cache": { "version": "0.2.1", "bundled": true, "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fs.realpath": { @@ -6182,12 +6258,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" } }, "globals": { @@ -6202,17 +6278,17 @@ "version": "4.0.11", "bundled": 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": { "source-map": { "version": "0.4.4", "bundled": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -6221,7 +6297,7 @@ "version": "2.0.0", "bundled": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { @@ -6232,9 +6308,9 @@ "version": "1.0.0", "bundled": 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" }, "dependencies": { "isobject": { @@ -6247,22 +6323,22 @@ "version": "1.0.0", "bundled": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { "version": "3.0.0", "bundled": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "bundled": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -6271,7 +6347,7 @@ "version": "4.0.0", "bundled": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -6288,8 +6364,8 @@ "version": "1.0.6", "bundled": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -6300,7 +6376,7 @@ "version": "2.2.4", "bundled": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -6311,7 +6387,7 @@ "version": "0.1.6", "bundled": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-arrayish": { @@ -6326,23 +6402,23 @@ "version": "1.0.0", "bundled": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-data-descriptor": { "version": "0.1.4", "bundled": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-descriptor": { "version": "0.1.6", "bundled": 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": { @@ -6359,7 +6435,7 @@ "version": "1.0.2", "bundled": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -6370,14 +6446,14 @@ "version": "3.0.0", "bundled": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-odd": { "version": "2.0.0", "bundled": true, "requires": { - "is-number": "4.0.0" + "is-number": "^4.0.0" }, "dependencies": { "is-number": { @@ -6390,7 +6466,7 @@ "version": "2.0.4", "bundled": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -6431,37 +6507,37 @@ "version": "1.1.0", "bundled": true, "requires": { - "append-transform": "0.4.0" + "append-transform": "^0.4.0" } }, "istanbul-lib-instrument": { "version": "1.10.1", "bundled": true, "requires": { - "babel-generator": "6.26.1", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.2.0", - "semver": "5.5.0" + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.0", + "semver": "^5.3.0" } }, "istanbul-lib-report": { "version": "1.1.3", "bundled": true, "requires": { - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" }, "dependencies": { "supports-color": { "version": "3.2.3", "bundled": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -6470,11 +6546,11 @@ "version": "1.2.3", "bundled": true, "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" }, "dependencies": { "debug": { @@ -6490,7 +6566,7 @@ "version": "1.4.0", "bundled": true, "requires": { - "handlebars": "4.0.11" + "handlebars": "^4.0.3" } }, "js-tokens": { @@ -6505,7 +6581,7 @@ "version": "3.2.2", "bundled": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lazy-cache": { @@ -6517,26 +6593,26 @@ "version": "1.0.0", "bundled": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "load-json-file": { "version": "1.1.0", "bundled": true, "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": { "version": "2.0.0", "bundled": 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": { @@ -6557,15 +6633,15 @@ "version": "1.3.1", "bundled": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "lru-cache": { "version": "4.1.3", "bundled": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "map-cache": { @@ -6576,14 +6652,14 @@ "version": "1.0.0", "bundled": true, "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "md5-hex": { "version": "1.3.0", "bundled": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { @@ -6594,14 +6670,14 @@ "version": "1.1.0", "bundled": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "merge-source-map": { "version": "1.1.0", "bundled": true, "requires": { - "source-map": "0.6.1" + "source-map": "^0.6.1" }, "dependencies": { "source-map": { @@ -6614,19 +6690,19 @@ "version": "3.1.10", "bundled": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "dependencies": { "kind-of": { @@ -6643,7 +6719,7 @@ "version": "3.0.4", "bundled": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -6654,15 +6730,15 @@ "version": "1.3.1", "bundled": 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": { "version": "1.0.1", "bundled": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -6682,18 +6758,18 @@ "version": "1.2.9", "bundled": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-odd": "^2.0.0", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "arr-diff": { @@ -6714,17 +6790,17 @@ "version": "2.4.0", "bundled": true, "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "npm-run-path": { "version": "2.0.2", "bundled": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -6739,16 +6815,16 @@ "version": "0.1.0", "bundled": 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": { "version": "0.2.5", "bundled": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -6757,7 +6833,7 @@ "version": "1.0.1", "bundled": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" }, "dependencies": { "isobject": { @@ -6770,7 +6846,7 @@ "version": "1.3.0", "bundled": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -6783,15 +6859,15 @@ "version": "1.4.0", "bundled": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "optimist": { "version": "0.6.1", "bundled": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "os-homedir": { @@ -6802,9 +6878,9 @@ "version": "2.1.0", "bundled": 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" } }, "p-finally": { @@ -6815,14 +6891,14 @@ "version": "1.2.0", "bundled": true, "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { "version": "2.0.0", "bundled": true, "requires": { - "p-limit": "1.2.0" + "p-limit": "^1.1.0" } }, "p-try": { @@ -6833,7 +6909,7 @@ "version": "2.2.0", "bundled": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "pascalcase": { @@ -6844,7 +6920,7 @@ "version": "2.1.0", "bundled": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { @@ -6863,9 +6939,9 @@ "version": "1.1.0", "bundled": true, "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" } }, "pify": { @@ -6880,22 +6956,22 @@ "version": "2.0.1", "bundled": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { "version": "1.0.0", "bundled": true, "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" }, "dependencies": { "find-up": { "version": "1.1.2", "bundled": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } @@ -6912,25 +6988,25 @@ "version": "1.1.0", "bundled": true, "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": { "version": "1.0.1", "bundled": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" }, "dependencies": { "find-up": { "version": "1.1.2", "bundled": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } @@ -6943,8 +7019,8 @@ "version": "1.0.2", "bundled": true, "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "repeat-element": { @@ -6959,7 +7035,7 @@ "version": "2.0.1", "bundled": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "require-directory": { @@ -6987,21 +7063,21 @@ "bundled": true, "optional": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { "version": "2.6.2", "bundled": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-regex": { "version": "1.1.0", "bundled": true, "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "semver": { @@ -7016,17 +7092,17 @@ "version": "2.0.0", "bundled": 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" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -7035,7 +7111,7 @@ "version": "1.2.0", "bundled": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -7054,28 +7130,28 @@ "version": "0.8.2", "bundled": 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": "3.1.0" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "define-property": { "version": "0.2.5", "bundled": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -7084,39 +7160,39 @@ "version": "2.1.1", "bundled": 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" }, "dependencies": { "define-property": { "version": "1.0.0", "bundled": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -7133,7 +7209,7 @@ "version": "3.0.1", "bundled": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "source-map": { @@ -7144,11 +7220,11 @@ "version": "0.5.1", "bundled": true, "requires": { - "atob": "2.1.1", - "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": { @@ -7159,20 +7235,20 @@ "version": "1.4.2", "bundled": true, "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.0" + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" } }, "spdx-correct": { "version": "3.0.0", "bundled": true, "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -7183,8 +7259,8 @@ "version": "3.0.0", "bundled": true, "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -7195,22 +7271,22 @@ "version": "3.1.0", "bundled": true, "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "static-extend": { "version": "0.1.2", "bundled": 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": { "version": "0.2.5", "bundled": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -7219,8 +7295,8 @@ "version": "2.1.1", "bundled": 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" }, "dependencies": { "ansi-regex": { @@ -7231,7 +7307,7 @@ "version": "4.0.0", "bundled": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -7240,14 +7316,14 @@ "version": "3.0.1", "bundled": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { "version": "2.0.0", "bundled": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-eof": { @@ -7262,11 +7338,11 @@ "version": "4.2.1", "bundled": true, "requires": { - "arrify": "1.0.1", - "micromatch": "3.1.10", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" + "arrify": "^1.0.1", + "micromatch": "^3.1.8", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" }, "dependencies": { "arr-diff": { @@ -7281,23 +7357,23 @@ "version": "2.3.2", "bundled": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -7306,41 +7382,41 @@ "version": "2.1.4", "bundled": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { "version": "0.2.5", "bundled": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { "version": "0.1.6", "bundled": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "bundled": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7349,14 +7425,14 @@ "version": "0.1.4", "bundled": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "bundled": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7365,9 +7441,9 @@ "version": "0.1.6", "bundled": 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": { @@ -7380,28 +7456,28 @@ "version": "2.0.4", "bundled": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { "version": "1.0.0", "bundled": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -7410,17 +7486,17 @@ "version": "4.0.0", "bundled": 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" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -7429,37 +7505,37 @@ "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-number": { "version": "3.0.0", "bundled": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "bundled": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7476,19 +7552,19 @@ "version": "3.1.10", "bundled": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } @@ -7501,32 +7577,32 @@ "version": "0.3.0", "bundled": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { "version": "3.0.2", "bundled": true, "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { "version": "2.1.1", "bundled": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "dependencies": { "is-number": { "version": "3.0.0", "bundled": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } } } @@ -7540,9 +7616,9 @@ "bundled": true, "optional": 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" }, "dependencies": { "yargs": { @@ -7550,9 +7626,9 @@ "bundled": true, "optional": 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" } } @@ -7567,27 +7643,27 @@ "version": "1.0.0", "bundled": 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": { "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { "version": "0.4.3", "bundled": 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" } } } @@ -7596,17 +7672,17 @@ "version": "1.0.0", "bundled": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { "version": "0.3.1", "bundled": 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": { @@ -7636,7 +7712,7 @@ "version": "3.1.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.2" }, "dependencies": { "kind-of": { @@ -7649,15 +7725,15 @@ "version": "3.0.3", "bundled": true, "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "which": { "version": "1.3.0", "bundled": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -7677,24 +7753,24 @@ "version": "2.1.0", "bundled": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { "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" } } } @@ -7707,9 +7783,9 @@ "version": "1.3.4", "bundled": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } }, "y18n": { @@ -7724,18 +7800,18 @@ "version": "11.1.0", "bundled": true, "requires": { - "cliui": "4.1.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": "9.0.2" + "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": "^9.0.2" }, "dependencies": { "ansi-regex": { @@ -7750,23 +7826,23 @@ "version": "4.1.0", "bundled": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" } }, "strip-ansi": { "version": "4.0.0", "bundled": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "yargs-parser": { "version": "9.0.2", "bundled": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } @@ -7775,7 +7851,7 @@ "version": "8.1.0", "bundled": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { @@ -7807,9 +7883,9 @@ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "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": { @@ -7817,7 +7893,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -7837,7 +7913,7 @@ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" }, "dependencies": { "isobject": { @@ -7853,8 +7929,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "optional": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "object.pick": { @@ -7862,7 +7938,7 @@ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -7878,7 +7954,7 @@ "integrity": "sha512-oLnVSEcNZkw01sB5aFR+2iJmW4oyC1PIMJmd3FMBGDuPTy5ZtEuX5WNhKMRarJIMOq8NiOwIB6eJB9AhgYwBTg==", "dev": true, "requires": { - "base64url": "3.0.0" + "base64url": "^3.0.0" } }, "once": { @@ -7886,7 +7962,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -7894,7 +7970,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "openid-client": { @@ -7903,14 +7979,14 @@ "integrity": "sha512-x4YkoRVGLWG7VfLdm6abHV8LpcWU6BSQYmUaQcZX9sLrFHuhytaoiz/4Lf6VtrSA6/9qL4OaUMe/mgCwh2LwCw==", "dev": true, "requires": { - "base64url": "3.0.0", - "got": "8.3.2", - "lodash": "4.17.11", - "lru-cache": "4.1.3", - "node-jose": "1.0.0", - "oidc-token-hash": "3.0.1", - "p-any": "1.1.0", - "uuid": "3.3.2" + "base64url": "^3.0.0", + "got": "^8.3.1", + "lodash": "^4.17.10", + "lru-cache": "^4.1.3", + "node-jose": "^1.0.0", + "oidc-token-hash": "^3.0.1", + "p-any": "^1.1.0", + "uuid": "^3.2.1" } }, "optionator": { @@ -7918,12 +7994,12 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" } }, "os-homedir": { @@ -7936,9 +8012,9 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "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" } }, "os-tmpdir": { @@ -7951,9 +8027,9 @@ "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", "requires": { - "graceful-fs": "4.1.11", - "mkdirp": "0.5.1", - "object-assign": "4.1.1" + "graceful-fs": "^4.1.4", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.0" } }, "p-any": { @@ -7962,7 +8038,7 @@ "integrity": "sha512-Ef0tVa4CZ5pTAmKn+Cg3w8ABBXh+hHO1aV8281dKOoUHfX+3tjG2EaFcC+aZyagg9b4EYGsHEjz21DnEE8Og2g==", "dev": true, "requires": { - "p-some": "2.0.1" + "p-some": "^2.0.0" } }, "p-cancelable": { @@ -7987,7 +8063,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -7995,7 +8071,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { - "p-limit": "1.3.0" + "p-limit": "^1.1.0" } }, "p-some": { @@ -8004,7 +8080,7 @@ "integrity": "sha1-Zdh8ixVO289SIdFnd4ttLhUPbwY=", "dev": true, "requires": { - "aggregate-error": "1.0.0" + "aggregate-error": "^1.0.0" } }, "p-timeout": { @@ -8013,7 +8089,7 @@ "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", "dev": true, "requires": { - "p-finally": "1.0.0" + "p-finally": "^1.0.0" } }, "p-try": { @@ -8027,10 +8103,10 @@ "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", "dev": true, "requires": { - "got": "6.7.1", - "registry-auth-token": "3.3.2", - "registry-url": "3.1.0", - "semver": "5.5.1" + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" }, "dependencies": { "got": { @@ -8039,17 +8115,17 @@ "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "dev": true, "requires": { - "create-error-class": "3.0.2", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "is-redirect": "1.0.0", - "is-retry-allowed": "1.1.0", - "is-stream": "1.1.0", - "lowercase-keys": "1.0.1", - "safe-buffer": "5.1.2", - "timed-out": "4.0.1", - "unzip-response": "2.0.1", - "url-parse-lax": "1.0.0" + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" } }, "prepend-http": { @@ -8064,7 +8140,7 @@ "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "dev": true, "requires": { - "prepend-http": "1.0.4" + "prepend-http": "^1.0.1" } } } @@ -8075,10 +8151,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "optional": 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" } }, "parse-json": { @@ -8086,7 +8162,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "1.3.2" + "error-ex": "^1.2.0" } }, "parseqs": { @@ -8094,7 +8170,7 @@ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseuri": { @@ -8102,7 +8178,7 @@ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseurl": { @@ -8169,7 +8245,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { - "pify": "2.3.0" + "pify": "^2.0.0" }, "dependencies": { "pify": { @@ -8191,7 +8267,7 @@ "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", "dev": true, "requires": { - "through": "2.3.8" + "through": "~2.3" } }, "pbkdf2": { @@ -8199,11 +8275,11 @@ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", "requires": { - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "performance-now": { @@ -8227,7 +8303,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" } }, "pkg-conf": { @@ -8235,8 +8311,8 @@ "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", "requires": { - "find-up": "2.1.0", - "load-json-file": "4.0.0" + "find-up": "^2.0.0", + "load-json-file": "^4.0.0" }, "dependencies": { "load-json-file": { @@ -8244,10 +8320,10 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "requires": { - "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "parse-json": { @@ -8255,8 +8331,8 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } } } @@ -8266,9 +8342,9 @@ "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=", "requires": { - "debug-log": "1.0.1", - "find-root": "1.1.0", - "xtend": "4.0.1" + "debug-log": "^1.0.0", + "find-root": "^1.0.0", + "xtend": "^4.0.1" } }, "pkg-dir": { @@ -8276,7 +8352,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" }, "dependencies": { "find-up": { @@ -8284,8 +8360,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" } }, "path-exists": { @@ -8293,7 +8369,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" } } } @@ -8356,8 +8432,8 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", "requires": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1" + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" } }, "ps-tree": { @@ -8366,7 +8442,7 @@ "integrity": "sha1-tCGyQUDWID8e08dplrRCewjowBQ=", "dev": true, "requires": { - "event-stream": "3.3.6" + "event-stream": "~3.3.0" } }, "pseudomap": { @@ -8386,7 +8462,7 @@ "integrity": "sha512-q5I5vLRMVtdWa8n/3UEzZX7Lfghzrg9eG2IKk2ENLSofKRCXVqMvMUHxCKgXNaqH/8ebhBxrqftHWnyTFweJ5Q==", "dev": true, "requires": { - "ps-tree": "1.1.0" + "ps-tree": "^1.1.0" } }, "punycode": { @@ -8400,7 +8476,13 @@ "resolved": "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", "integrity": "sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=", "requires": { - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" + "bitcoin-ops": "^1.3.0" + }, + "dependencies": { + "bitcoin-ops": { + "version": "1.4.1", + "resolved": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" + } } }, "qrcode": { @@ -8408,11 +8490,11 @@ "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.2.2.tgz", "integrity": "sha512-iHD3eGma3PMaIfvM+p6oaTZjz83PsEIJ5F4H3oqyfKbQM+kbWjJjHdnTRlzi9q0KoiJ9QFKfiNhkEAYOWTTDdw==", "requires": { - "can-promise": "0.0.1", - "dijkstrajs": "1.0.1", - "isarray": "2.0.4", - "pngjs": "3.3.3", - "yargs": "8.0.2" + "can-promise": "^0.0.1", + "dijkstrajs": "^1.0.1", + "isarray": "^2.0.1", + "pngjs": "^3.3.0", + "yargs": "^8.0.2" }, "dependencies": { "isarray": { @@ -8433,9 +8515,9 @@ "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", "dev": true, "requires": { - "decode-uri-component": "0.2.0", - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" } }, "randomatic": { @@ -8444,9 +8526,9 @@ "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==", "optional": true, "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.1" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "dependencies": { "is-number": { @@ -8468,7 +8550,7 @@ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.0" } }, "range-parser": { @@ -8483,10 +8565,10 @@ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "requires": { - "deep-extend": "0.6.0", - "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": { "minimist": { @@ -8502,9 +8584,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "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": { @@ -8512,8 +8594,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" } }, "readable-stream": { @@ -8521,13 +8603,13 @@ "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "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" }, "dependencies": { "inherits": { @@ -8542,9 +8624,9 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "requires": { - "graceful-fs": "4.1.11", - "micromatch": "3.1.10", - "readable-stream": "2.3.6" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" }, "dependencies": { "arr-diff": { @@ -8562,16 +8644,16 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -8579,7 +8661,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -8597,13 +8679,13 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -8611,7 +8693,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -8619,7 +8701,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -8627,7 +8709,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -8635,7 +8717,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -8645,7 +8727,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -8653,7 +8735,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -8663,9 +8745,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "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": { @@ -8680,14 +8762,14 @@ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { @@ -8695,7 +8777,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -8703,7 +8785,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -8713,10 +8795,10 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "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" }, "dependencies": { "extend-shallow": { @@ -8724,7 +8806,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -8734,7 +8816,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -8742,7 +8824,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -8750,9 +8832,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-number": { @@ -8760,7 +8842,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -8768,7 +8850,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -8788,19 +8870,19 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } @@ -8820,9 +8902,9 @@ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.8" + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" } }, "regex-cache": { @@ -8831,7 +8913,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "optional": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "regex-not": { @@ -8839,8 +8921,8 @@ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "regexpp": { @@ -8854,9 +8936,9 @@ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "requires": { - "regenerate": "1.4.0", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "registry-auth-token": { @@ -8865,8 +8947,8 @@ "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", "dev": true, "requires": { - "rc": "1.2.8", - "safe-buffer": "5.1.2" + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" } }, "registry-url": { @@ -8875,7 +8957,7 @@ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "dev": true, "requires": { - "rc": "1.2.8" + "rc": "^1.0.1" } }, "regjsgen": { @@ -8888,7 +8970,7 @@ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { @@ -8918,7 +9000,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" } }, "repl.history": { @@ -8932,26 +9014,26 @@ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "dev": true, "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.8.0", - "caseless": "0.12.0", - "combined-stream": "1.0.7", - "extend": "3.0.2", - "forever-agent": "0.6.1", - "form-data": "2.3.2", - "har-validator": "5.1.0", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.20", - "oauth-sign": "0.9.0", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.4.3", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" } }, "require-directory": { @@ -8969,8 +9051,8 @@ "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" } }, "resolve": { @@ -8978,7 +9060,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "requires": { - "path-parse": "1.0.6" + "path-parse": "^1.0.5" } }, "resolve-from": { @@ -8997,7 +9079,7 @@ "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", "dev": true, "requires": { - "lowercase-keys": "1.0.1" + "lowercase-keys": "^1.0.0" } }, "restore-cursor": { @@ -9005,8 +9087,8 @@ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "resumer": { @@ -9014,7 +9096,7 @@ "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", "requires": { - "through": "2.3.8" + "through": "~2.3.4" } }, "ret": { @@ -9027,7 +9109,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "glob": "7.1.3" + "glob": "^7.0.5" } }, "ripemd160": { @@ -9035,8 +9117,8 @@ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.1" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, "run-async": { @@ -9044,7 +9126,7 @@ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, "run-parallel": { @@ -9062,7 +9144,7 @@ "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "requires": { - "rx-lite": "4.0.8" + "rx-lite": "*" } }, "rxjs": { @@ -9071,7 +9153,7 @@ "integrity": "sha512-hV7criqbR0pe7EeL3O66UYVg92IR0XsA97+9y+BWTePK9SKmEI5Qd3Zj6uPnGkNzXsBywBQWTvujPl+1Kn9Zjw==", "dev": true, "requires": { - "tslib": "1.9.3" + "tslib": "^1.9.0" } }, "safe-buffer": { @@ -9084,7 +9166,7 @@ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "safer-buffer": { @@ -9103,7 +9185,7 @@ "resolved": "https://registry.npmjs.org/satoshi-bitcoin/-/satoshi-bitcoin-1.0.4.tgz", "integrity": "sha1-0AK2dwddXLvywhGo3zJUvN9QseQ=", "requires": { - "big.js": "3.2.0" + "big.js": "^3.1.3" } }, "scryptsy": { @@ -9116,14 +9198,14 @@ "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.5.2.tgz", "integrity": "sha512-iin3kojdybY6NArd+UFsoTuapOF7bnJNf2UbcWXaY3z+E1sJDipl60vtzB5hbO/uquBu7z0fd4VC4Irp+xoFVQ==", "requires": { - "bindings": "1.3.0", - "bip66": "1.1.5", - "bn.js": "4.11.8", - "create-hash": "1.2.0", - "drbg.js": "1.0.1", - "elliptic": "6.4.1", - "nan": "2.11.0", - "safe-buffer": "5.1.2" + "bindings": "^1.2.1", + "bip66": "^1.1.3", + "bn.js": "^4.11.3", + "create-hash": "^1.1.2", + "drbg.js": "^1.0.1", + "elliptic": "^6.2.3", + "nan": "^2.2.1", + "safe-buffer": "^5.1.0" } }, "semver": { @@ -9137,7 +9219,7 @@ "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "dev": true, "requires": { - "semver": "5.5.1" + "semver": "^5.0.3" } }, "set-blocking": { @@ -9150,10 +9232,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "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" }, "dependencies": { "extend-shallow": { @@ -9161,7 +9243,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -9171,8 +9253,8 @@ "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "shebang-command": { @@ -9180,7 +9262,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -9199,13 +9281,13 @@ "integrity": "sha512-trdx+mB0VBBgoYucy6a9L7/jfQOmvGeaKZT4OOJ+lPAtI8623xyGr8wLiE4eojzBS8G9yXbhx42GHUOVLr4X2w==", "dev": true, "requires": { - "@sinonjs/formatio": "2.0.0", - "diff": "3.5.0", - "lodash.get": "4.4.2", - "lolex": "2.7.5", - "nise": "1.4.5", - "supports-color": "5.5.0", - "type-detect": "4.0.8" + "@sinonjs/formatio": "^2.0.0", + "diff": "^3.1.0", + "lodash.get": "^4.4.2", + "lolex": "^2.2.0", + "nise": "^1.2.0", + "supports-color": "^5.1.0", + "type-detect": "^4.0.5" }, "dependencies": { "supports-color": { @@ -9214,7 +9296,7 @@ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -9229,7 +9311,7 @@ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "requires": { - "is-fullwidth-code-point": "2.0.0" + "is-fullwidth-code-point": "^2.0.0" }, "dependencies": { "is-fullwidth-code-point": { @@ -9244,14 +9326,14 @@ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "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.2", - "use": "3.1.1" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "debug": { @@ -9267,7 +9349,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -9275,7 +9357,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -9285,9 +9367,9 @@ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "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" }, "dependencies": { "define-property": { @@ -9295,7 +9377,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -9303,7 +9385,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -9311,7 +9393,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -9319,9 +9401,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -9341,7 +9423,7 @@ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "socket.io": { @@ -9349,12 +9431,12 @@ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", "requires": { - "debug": "3.1.0", - "engine.io": "3.2.0", - "has-binary2": "1.0.3", - "socket.io-adapter": "1.1.1", + "debug": "~3.1.0", + "engine.io": "~3.2.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", "socket.io-client": "2.1.1", - "socket.io-parser": "3.2.0" + "socket.io-parser": "~3.2.0" } }, "socket.io-adapter": { @@ -9371,15 +9453,15 @@ "base64-arraybuffer": "0.1.5", "component-bind": "1.0.0", "component-emitter": "1.2.1", - "debug": "3.1.0", - "engine.io-client": "3.2.1", - "has-binary2": "1.0.3", + "debug": "~3.1.0", + "engine.io-client": "~3.2.0", + "has-binary2": "~1.0.2", "has-cors": "1.1.0", "indexof": "0.0.1", "object-component": "0.0.3", "parseqs": "0.0.5", "parseuri": "0.0.5", - "socket.io-parser": "3.2.0", + "socket.io-parser": "~3.2.0", "to-array": "0.1.4" } }, @@ -9389,7 +9471,7 @@ "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", "requires": { "component-emitter": "1.2.1", - "debug": "3.1.0", + "debug": "~3.1.0", "isarray": "2.0.1" }, "dependencies": { @@ -9406,7 +9488,7 @@ "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", "dev": true, "requires": { - "is-plain-obj": "1.1.0" + "is-plain-obj": "^1.0.0" } }, "source-map": { @@ -9419,11 +9501,11 @@ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "requires": { - "atob": "2.1.2", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -9431,7 +9513,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } }, "source-map-url": { @@ -9444,8 +9526,8 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.1" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -9458,8 +9540,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.1" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -9473,7 +9555,7 @@ "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dev": true, "requires": { - "through": "2.3.8" + "through": "2" } }, "split-string": { @@ -9481,7 +9563,7 @@ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "sprintf-js": { @@ -9495,15 +9577,15 @@ "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", "dev": true, "requires": { - "asn1": "0.2.4", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.2", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.2", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "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", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" } }, "standard": { @@ -9511,15 +9593,15 @@ "resolved": "http://registry.npmjs.org/standard/-/standard-11.0.1.tgz", "integrity": "sha512-nu0jAcHiSc8H+gJCXeiziMVZNDYi8MuqrYJKxTgjP4xKXZMKm311boqQIzDrYI/ktosltxt2CbDjYQs9ANC8IA==", "requires": { - "eslint": "4.18.2", + "eslint": "~4.18.0", "eslint-config-standard": "11.0.0", "eslint-config-standard-jsx": "5.0.0", - "eslint-plugin-import": "2.9.0", - "eslint-plugin-node": "6.0.1", - "eslint-plugin-promise": "3.7.0", - "eslint-plugin-react": "7.7.0", - "eslint-plugin-standard": "3.0.1", - "standard-engine": "8.0.1" + "eslint-plugin-import": "~2.9.0", + "eslint-plugin-node": "~6.0.0", + "eslint-plugin-promise": "~3.7.0", + "eslint-plugin-react": "~7.7.0", + "eslint-plugin-standard": "~3.0.1", + "standard-engine": "~8.0.0" }, "dependencies": { "ansi-regex": { @@ -9532,43 +9614,43 @@ "resolved": "http://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", "requires": { - "ajv": "5.5.2", - "babel-code-frame": "6.26.0", - "chalk": "2.4.1", - "concat-stream": "1.6.2", - "cross-spawn": "5.1.0", - "debug": "3.1.0", - "doctrine": "2.1.0", - "eslint-scope": "3.7.3", - "eslint-visitor-keys": "1.0.0", - "espree": "3.5.4", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.3", - "globals": "11.7.0", - "ignore": "3.3.10", - "imurmurhash": "0.1.4", - "inquirer": "3.3.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.12.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.0", - "require-uncached": "1.0.3", - "semver": "5.5.1", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.2", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", "table": "4.0.2", - "text-table": "0.2.0" + "text-table": "~0.2.0" } }, "eslint-plugin-node": { @@ -9576,16 +9658,16 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz", "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", "requires": { - "ignore": "3.3.10", - "minimatch": "3.0.4", - "resolve": "1.8.1", - "semver": "5.5.1" + "ignore": "^3.3.6", + "minimatch": "^3.0.4", + "resolve": "^1.3.3", + "semver": "^5.4.1" } }, "globals": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", - "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==" + "version": "11.8.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.8.0.tgz", + "integrity": "sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA==" }, "ignore": { "version": "3.3.10", @@ -9597,7 +9679,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -9607,10 +9689,10 @@ "resolved": "http://registry.npmjs.org/standard-engine/-/standard-engine-8.0.1.tgz", "integrity": "sha512-LA531C3+nljom/XRvdW/hGPXwmilRkaRkENhO3FAGF1Vtq/WtCXzgmnc5S6vUHHsgv534MRy02C1ikMwZXC+tw==", "requires": { - "deglob": "2.1.1", - "get-stdin": "6.0.0", - "minimist": "1.2.0", - "pkg-conf": "2.1.0" + "deglob": "^2.1.0", + "get-stdin": "^6.0.0", + "minimist": "^1.1.0", + "pkg-conf": "^2.0.0" }, "dependencies": { "minimist": { @@ -9625,8 +9707,8 @@ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { @@ -9634,7 +9716,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -9645,8 +9727,8 @@ "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", "dev": true, "requires": { - "duplexer": "0.1.1", - "through": "2.3.8" + "duplexer": "~0.1.1", + "through": "~2.3.4" } }, "strict-uri-encode": { @@ -9660,8 +9742,8 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "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" }, "dependencies": { "ansi-regex": { @@ -9679,7 +9761,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -9689,9 +9771,9 @@ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.12.0", - "function-bind": "1.1.1" + "define-properties": "^1.1.2", + "es-abstract": "^1.5.0", + "function-bind": "^1.0.2" } }, "string_decoder": { @@ -9699,7 +9781,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -9707,7 +9789,7 @@ "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": { @@ -9731,16 +9813,16 @@ "integrity": "sha1-cDUpoHFOV+EjlZ3e+84ZOy5Q0RU=", "dev": true, "requires": { - "component-emitter": "1.2.1", - "cookiejar": "2.1.2", - "debug": "2.6.9", - "extend": "3.0.2", + "component-emitter": "^1.2.0", + "cookiejar": "^2.0.6", + "debug": "^2.2.0", + "extend": "^3.0.0", "form-data": "1.0.0-rc4", - "formidable": "1.2.1", - "methods": "1.1.2", - "mime": "1.6.0", - "qs": "6.5.2", - "readable-stream": "2.3.6" + "formidable": "^1.0.17", + "methods": "^1.1.1", + "mime": "^1.3.4", + "qs": "^6.1.0", + "readable-stream": "^2.0.5" }, "dependencies": { "debug": { @@ -9758,9 +9840,9 @@ "integrity": "sha1-BaxrwiIntD5EYfSIFhVUaZ1Pi14=", "dev": true, "requires": { - "async": "1.5.2", - "combined-stream": "1.0.7", - "mime-types": "2.1.20" + "async": "^1.5.2", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.10" } } } @@ -9771,8 +9853,8 @@ "integrity": "sha1-oFgIHXiPFRXUcA11Aogea3WeRM0=", "dev": true, "requires": { - "methods": "1.1.2", - "superagent": "2.3.0" + "methods": "1.x", + "superagent": "^2.0.0" } }, "supports-color": { @@ -9785,12 +9867,12 @@ "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "chalk": "2.4.1", - "lodash": "4.17.11", + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "string-width": "^2.1.1" } }, "tape": { @@ -9798,19 +9880,19 @@ "resolved": "https://registry.npmjs.org/tape/-/tape-4.9.1.tgz", "integrity": "sha512-6fKIXknLpoe/Jp4rzHKFPpJUHDHDqn8jus99IfPnHIjyz78HYlefTGD3b5EkbQzuLfaEvmfPK3IolLgq2xT3kw==", "requires": { - "deep-equal": "1.0.1", - "defined": "1.0.0", - "for-each": "0.3.3", - "function-bind": "1.1.1", - "glob": "7.1.3", - "has": "1.0.3", - "inherits": "2.0.3", - "minimist": "1.2.0", - "object-inspect": "1.6.0", - "resolve": "1.7.1", - "resumer": "0.0.0", - "string.prototype.trim": "1.1.2", - "through": "2.3.8" + "deep-equal": "~1.0.1", + "defined": "~1.0.0", + "for-each": "~0.3.3", + "function-bind": "~1.1.1", + "glob": "~7.1.2", + "has": "~1.0.3", + "inherits": "~2.0.3", + "minimist": "~1.2.0", + "object-inspect": "~1.6.0", + "resolve": "~1.7.1", + "resumer": "~0.0.0", + "string.prototype.trim": "~1.1.2", + "through": "~2.3.8" }, "dependencies": { "inherits": { @@ -9828,7 +9910,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", "requires": { - "path-parse": "1.0.6" + "path-parse": "^1.0.5" } } } @@ -9839,7 +9921,7 @@ "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "dev": true, "requires": { - "execa": "0.7.0" + "execa": "^0.7.0" } }, "text-encoding": { @@ -9869,7 +9951,7 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "to-array": { @@ -9887,7 +9969,7 @@ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { @@ -9895,10 +9977,10 @@ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { @@ -9906,8 +9988,8 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "dependencies": { "is-number": { @@ -9915,7 +9997,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } } } @@ -9925,7 +10007,7 @@ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", "requires": { - "nopt": "1.0.10" + "nopt": "~1.0.10" } }, "tough-cookie": { @@ -9934,8 +10016,8 @@ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "dev": true, "requires": { - "psl": "1.1.29", - "punycode": "1.4.1" + "psl": "^1.1.24", + "punycode": "^1.4.1" } }, "trim-right": { @@ -9955,7 +10037,7 @@ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -9970,7 +10052,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-detect": { @@ -9986,7 +10068,7 @@ "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.20" + "mime-types": "~2.1.18" } }, "typedarray": { @@ -10010,7 +10092,7 @@ "integrity": "sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY=", "dev": true, "requires": { - "debug": "2.6.9" + "debug": "^2.2.0" }, "dependencies": { "debug": { @@ -10029,10 +10111,10 @@ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "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": { "extend-shallow": { @@ -10040,7 +10122,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { @@ -10048,10 +10130,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "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" } } } @@ -10067,7 +10149,7 @@ "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", "dev": true, "requires": { - "crypto-random-string": "1.0.0" + "crypto-random-string": "^1.0.0" } }, "unorm": { @@ -10080,8 +10162,8 @@ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -10089,9 +10171,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "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": { @@ -10134,16 +10216,16 @@ "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", "dev": true, "requires": { - "boxen": "1.3.0", - "chalk": "2.4.1", - "configstore": "3.1.2", - "import-lazy": "2.1.0", - "is-ci": "1.2.1", - "is-installed-globally": "0.1.0", - "is-npm": "1.0.0", - "latest-version": "3.1.0", - "semver-diff": "2.1.0", - "xdg-basedir": "3.0.0" + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" } }, "uri-js": { @@ -10152,7 +10234,7 @@ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "requires": { - "punycode": "2.1.1" + "punycode": "^2.1.0" }, "dependencies": { "punycode": { @@ -10174,7 +10256,7 @@ "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "dev": true, "requires": { - "prepend-http": "2.0.0" + "prepend-http": "^2.0.0" } }, "url-to-options": { @@ -10217,7 +10299,7 @@ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "requires": { - "user-home": "1.1.1" + "user-home": "^1.1.1" } }, "validate-npm-package-license": { @@ -10225,8 +10307,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "varuint-bitcoin": { @@ -10234,7 +10316,7 @@ "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz", "integrity": "sha512-jCEPG+COU/1Rp84neKTyDJQr478/hAfVp5xxYn09QEH0yBjbmPeMfuuQIrp+BUD83hybtYZKhr5elV3bvdV1bA==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.1" } }, "verror": { @@ -10243,9 +10325,9 @@ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": 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" } }, "which": { @@ -10253,7 +10335,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -10267,7 +10349,7 @@ "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", "dev": true, "requires": { - "string-width": "2.1.1" + "string-width": "^2.1.1" } }, "wif": { @@ -10275,7 +10357,7 @@ "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", "requires": { - "bs58check": "2.1.2" + "bs58check": "<3.0.0" } }, "window-or-global": { @@ -10293,8 +10375,8 @@ "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "string-width": { @@ -10302,9 +10384,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" } } } @@ -10319,7 +10401,7 @@ "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "write-file-atomic": { @@ -10328,9 +10410,9 @@ "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "signal-exit": "3.0.2" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" } }, "ws": { @@ -10338,9 +10420,9 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.2", - "ultron": "1.1.1" + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" } }, "xdg-basedir": { @@ -10374,19 +10456,19 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.3", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.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": "7.0.0" + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^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": "^7.0.0" } }, "yargs-parser": { @@ -10394,7 +10476,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } }, "yeast": { diff --git a/package.json b/package.json index be4f5faa..7f95e136 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "babel-preset-flow": "^6.23.0", "babel-preset-react": "^6.24.1", "babel-register": "^6.26.0", - "bchaddrjs": "^0.2.1", + "bchaddrjs": "^0.2.2", "bigi": "^1.4.2", "bip21": "Bitcoin-com/bip21", "bip32-utils": "Bitcoin-com/bip32-utils#0.12.2", @@ -45,6 +45,7 @@ "bitcoinjs-message": "^2.0.0", "bs58": "^4.0.1", "buffer": "^5.1.0", + "cashaddrjs": "^0.2.9", "chalk": "^2.3.0", "clear": "0.0.1", "coininfo": "Bitcoin-com/coininfo", diff --git a/src/Address.js b/src/Address.js index 19c67617..873ad11e 100644 --- a/src/Address.js +++ b/src/Address.js @@ -1,6 +1,7 @@ import axios from "axios" -import bchaddr from "bchaddrjs" import Bitcoin from "bitcoincashjs-lib" +import cashaddr from "cashaddrjs" +import coininfo from "coininfo" class Address { constructor(restURL) { @@ -9,42 +10,157 @@ class Address { // Translate address from any address format into a specific format. toLegacyAddress(address) { - return bchaddr.toLegacyAddress(address) + const { prefix, type, hash } = this._decode(address) + + let bitcoincash + switch (prefix) { + case "bitcoincash": + bitcoincash = coininfo.bitcoincash.main + break + case "bchtest": + bitcoincash = coininfo.bitcoincash.test + break + case "bchreg": + bitcoincash = coininfo.bitcoincash.regtest + break + default: + throw `unsupported prefix : ${prefix}` + } + + let version + switch (type) { + case "P2PKH": + version = bitcoincash.versions.public + break + case "P2SH": + version = bitcoincash.versions.scripthash + break + default: + throw `unsupported address type : ${type}` + } + + const hashBuf = Buffer.from(hash) + + return Bitcoin.address.toBase58Check(hashBuf, version) } - toCashAddress(address, prefix = true) { - if (prefix) return bchaddr.toCashAddress(address) + toCashAddress(address, prefix = true, regtest = false) { + const decoded = this._decode(address) + + let prefixString + if (regtest) prefixString = "bchreg" + else prefixString = decoded.prefix + + const cashAddress = cashaddr.encode( + prefixString, + decoded.type, + decoded.hash + ) - return bchaddr.toCashAddress(address).split(":")[1] + if (prefix) return cashAddress + return cashAddress.split(":")[1] } // Converts any address format to hash160 toHash160(address) { - const legacyAddress = bchaddr.toLegacyAddress(address) + const legacyAddress = this.toLegacyAddress(address) const bytes = Bitcoin.address.fromBase58Check(legacyAddress) return bytes.hash.toString("hex") } // Converts hash160 to Legacy Address hash160ToLegacy(hash160, network = Bitcoin.networks.bitcoin.pubKeyHash) { - const buffer = Buffer(hash160, "hex") + const buffer = Buffer.from(hash160, "hex") const legacyAddress = Bitcoin.address.toBase58Check(buffer, network) return legacyAddress } // Converts hash160 to Cash Address - hash160ToCash(hash160, network = Bitcoin.networks.bitcoin.pubKeyHash) { + hash160ToCash( + hash160, + network = Bitcoin.networks.bitcoin.pubKeyHash, + regtest = false + ) { const legacyAddress = this.hash160ToLegacy(hash160, network) - return this.toCashAddress(legacyAddress) + return this.toCashAddress(legacyAddress, true, regtest) + } + + _decode(address) { + try { + return this._decodeLegacyAddress(address) + } catch (error) {} + + try { + return this._decodeCashAddress(address) + } catch (error) {} + + throw new Error(`Unsupported address format : ${address}`) + } + + _decodeLegacyAddress(address) { + const { version, hash } = Bitcoin.address.fromBase58Check(address) + const info = coininfo.bitcoincash + + switch (version) { + case info.main.versions.public: + return { + prefix: "bitcoincash", + type: "P2PKH", + hash: hash, + format: "legacy" + } + case info.main.versions.scripthash: + return { + prefix: "bitcoincash", + type: "P2SH", + hash: hash, + format: "legacy" + } + case info.test.versions.public: + return { + prefix: "bchtest", + type: "P2PKH", + hash: hash, + format: "legacy" + } + case info.test.versions.scripthash: + return { + prefix: "bchtest", + type: "P2SH", + hash: hash, + format: "legacy" + } + default: + throw new Error(`Invalid format : ${address}`) + } + } + + _decodeCashAddress(address) { + if (address.indexOf(":") !== -1) { + const decoded = cashaddr.decode(address) + decoded.format = "cashaddr" + return decoded + } + + const prefixes = ["bitcoincash", "bchtest", "bchreg"] + for (let i = 0; i < prefixes.length; ++i) { + try { + const decoded = cashaddr.decode(`${prefixes[i]}:${address}`) + decoded.format = "cashaddr" + return decoded + } catch (error) {} + } + + throw new Error(`Invalid format : ${address}`) } // Test for address format. isLegacyAddress(address) { - return bchaddr.isLegacyAddress(address) + return this.detectAddressFormat(address) === "legacy" } isCashAddress(address) { - return bchaddr.isCashAddress(address) + return this.detectAddressFormat(address) === "cashaddr" } // Test for address network. @@ -52,28 +168,34 @@ class Address { if (address[0] === "x") return true else if (address[0] === "t") return false - return bchaddr.isMainnetAddress(address) + return this.detectAddressNetwork(address) === "mainnet" } isTestnetAddress(address) { if (address[0] === "x") return false else if (address[0] === "t") return true - return bchaddr.isTestnetAddress(address) + return this.detectAddressNetwork(address) === "testnet" + } + + isRegTestAddress(address) { + return this.detectAddressNetwork(address) === "regtest" } // Test for address type. isP2PKHAddress(address) { - return bchaddr.isP2PKHAddress(address) + return this.detectAddressType(address) === "p2pkh" } isP2SHAddress(address) { - return bchaddr.isP2SHAddress(address) + return this.detectAddressType(address) === "p2sh" } // Detect address format. detectAddressFormat(address) { - return bchaddr.detectAddressFormat(address) + const decoded = this._decode(address) + + return decoded.format } // Detect address network. @@ -81,12 +203,25 @@ class Address { if (address[0] === "x") return "mainnet" else if (address[0] === "t") return "testnet" - return bchaddr.detectAddressNetwork(address) + const decoded = this._decode(address) + + switch (decoded.prefix) { + case "bitcoincash": + return "mainnet" + case "bchtest": + return "testnet" + case "bchreg": + return "regtest" + default: + throw new Error(`Invalid prefix : ${decoded.prefix}`) + } } // Detect address type. detectAddressType(address) { - return bchaddr.detectAddressType(address) + const decoded = this._decode(address) + + return decoded.type.toLowerCase() } fromXPub(xpub, path = "0/0") { @@ -102,8 +237,12 @@ class Address { let netParam if (network !== "bitcoincash") netParam = Bitcoin.networks.testnet - return bchaddr.toCashAddress( - Bitcoin.address.fromOutputScript(scriptPubKey, netParam) + const regtest = network === "bchreg" + + return this.toCashAddress( + Bitcoin.address.fromOutputScript(scriptPubKey, netParam), + true, + regtest ) } diff --git a/src/bitbox-cli.js b/src/bitbox-cli.js index 68830669..a3122e78 100644 --- a/src/bitbox-cli.js +++ b/src/bitbox-cli.js @@ -30,7 +30,7 @@ class BITBOXCli { else this.restURL = "https://rest.bitcoin.com/v1/" this.Address = new Address(this.restURL) - this.BitcoinCash = new BitcoinCash() + this.BitcoinCash = new BitcoinCash(this.Address) this.Block = new Block(this.restURL) this.Blockchain = new Blockchain(this.restURL) this.Control = new Control(this.restURL) diff --git a/test/Address.js b/test/Address.js index 791e9d13..4024301f 100644 --- a/test/Address.js +++ b/test/Address.js @@ -52,6 +52,13 @@ const CASHADDR_ADDRESSES_NO_PREFIX = CASHADDR_ADDRESSES.map(address => { return parts[1] }) +const REGTEST_ADDRESSES = fixtures.cashaddrRegTestP2PKH + +const REGTEST_ADDRESSES_NO_PREFIX = REGTEST_ADDRESSES.map(address => { + const parts = address.split(":") + return parts[1] +}) + const HASH160_HASHES = flatten([ fixtures.hash160MainnetP2PKH, fixtures.hash160MainnetP2SH, @@ -62,7 +69,8 @@ const P2PKH_ADDRESSES = flatten([ fixtures.legacyMainnetP2PKH, fixtures.legacyTestnetP2PKH, fixtures.cashaddrMainnetP2PKH, - fixtures.cashaddrTestnetP2PKH + fixtures.cashaddrTestnetP2PKH, + fixtures.cashaddrRegTestP2PKH ]) const P2SH_ADDRESSES = flatten([ @@ -74,18 +82,31 @@ describe("#addressConversion", () => { describe("#toLegacyAddress", () => { it("should translate legacy address format to itself correctly", () => { assert.deepEqual( - LEGACY_ADDRESSES.map(BITBOX.Address.toLegacyAddress), + LEGACY_ADDRESSES.map(address => + BITBOX.Address.toLegacyAddress(address) + ), LEGACY_ADDRESSES ) }) it("should convert cashaddr address to legacy base58Check", () => { assert.deepEqual( - CASHADDR_ADDRESSES.map(BITBOX.Address.toLegacyAddress), + CASHADDR_ADDRESSES.map(address => + BITBOX.Address.toLegacyAddress(address) + ), LEGACY_ADDRESSES ) }) + it("should convert cashaddr regtest address to legacy base58Check", () => { + assert.deepEqual( + REGTEST_ADDRESSES.map(address => + BITBOX.Address.toLegacyAddress(address) + ), + fixtures.legacyTestnetP2PKH + ) + }) + describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { @@ -108,6 +129,15 @@ describe("#addressConversion", () => { ) }) + it("should convert legacy base58Check address to regtest cashaddr", () => { + assert.deepEqual( + fixtures.legacyTestnetP2PKH.map(address => + BITBOX.Address.toCashAddress(address, true, true) + ), + REGTEST_ADDRESSES + ) + }) + it("should translate cashaddr address format to itself correctly", () => { assert.deepEqual( CASHADDR_ADDRESSES.map(address => @@ -117,6 +147,15 @@ describe("#addressConversion", () => { ) }) + it("should translate regtest cashaddr address format to itself correctly", () => { + assert.deepEqual( + REGTEST_ADDRESSES.map(address => + BITBOX.Address.toCashAddress(address, true, true) + ), + REGTEST_ADDRESSES + ) + }) + it("should translate no-prefix cashaddr address format to itself correctly", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(address => @@ -126,13 +165,29 @@ describe("#addressConversion", () => { ) }) - it("should translate no-prefix cashaddr address format to itself correctly", () => { + it("should translate no-prefix regtest cashaddr address format to itself correctly", () => { + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.toCashAddress(address, true, true) + ), + REGTEST_ADDRESSES + ) + }) + + it("should translate cashaddr address format to itself of no-prefix correctly", () => { CASHADDR_ADDRESSES.forEach(address => { const noPrefix = BITBOX.Address.toCashAddress(address, false) assert.equal(address.split(":")[1], noPrefix) }) }) + it("should translate regtest cashaddr address format to itself of no-prefix correctly", () => { + REGTEST_ADDRESSES.forEach(address => { + const noPrefix = BITBOX.Address.toCashAddress(address, false, true) + assert.equal(address.split(":")[1], noPrefix) + }) + }) + describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { @@ -147,18 +202,25 @@ describe("#addressConversion", () => { describe("#toHash160", () => { it("should convert legacy base58check address to hash160", () => { assert.deepEqual( - LEGACY_ADDRESSES.map(BITBOX.Address.toHash160), + LEGACY_ADDRESSES.map(address => BITBOX.Address.toHash160(address)), HASH160_HASHES ) }) it("should convert cashaddr address to hash160", () => { assert.deepEqual( - CASHADDR_ADDRESSES.map(BITBOX.Address.toHash160), + CASHADDR_ADDRESSES.map(address => BITBOX.Address.toHash160(address)), HASH160_HASHES ) }) + it("should convert regtest cashaddr address to hash160", () => { + assert.deepEqual( + REGTEST_ADDRESSES.map(address => BITBOX.Address.toHash160(address)), + fixtures.hash160TestnetP2PKH + ) + }) + describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { @@ -237,6 +299,19 @@ describe("#addressConversion", () => { ) }) + it("should convert hash160 to regtest P2PKH cash address", () => { + assert.deepEqual( + fixtures.hash160TestnetP2PKH.map(hash160 => + BITBOX.Address.hash160ToCash( + hash160, + Bitcoin.networks.testnet.pubKeyHash, + true + ) + ), + REGTEST_ADDRESSES + ) + }) + describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { @@ -273,6 +348,13 @@ describe("address format detection", () => { assert.equal(isBase58Check, false) }) }) + + REGTEST_ADDRESSES.forEach(address => { + it(`should detect ${address} is not a legacy address`, () => { + const isBase58Check = BITBOX.Address.isLegacyAddress(address) + assert.equal(isBase58Check, false) + }) + }) }) describe("errors", () => { @@ -295,6 +377,13 @@ describe("address format detection", () => { assert.equal(isCashaddr, true) }) }) + + REGTEST_ADDRESSES.forEach(address => { + it(`should detect ${address} is a cashaddr address`, () => { + const isCashaddr = BITBOX.Address.isCashAddress(address) + assert.equal(isCashaddr, true) + }) + }) }) describe("is not cashaddr", () => { @@ -337,6 +426,13 @@ describe("network detection", () => { assert.equal(isMainnet, false) }) }) + + REGTEST_ADDRESSES.forEach(address => { + it(`should detect ${address} is not a mainnet address`, () => { + const isMainnet = BITBOX.Address.isMainnetAddress(address) + assert.equal(isMainnet, false) + }) + }) }) describe("errors", () => { @@ -368,6 +464,13 @@ describe("network detection", () => { assert.equal(isTestnet, false) }) }) + + REGTEST_ADDRESSES.forEach(address => { + it(`should detect ${address} is not a testnet address`, () => { + const isTestnet = BITBOX.Address.isTestnetAddress(address) + assert.equal(isTestnet, false) + }) + }) }) describe("errors", () => { @@ -381,6 +484,44 @@ describe("network detection", () => { }) }) }) + + describe("#isRegTestAddress", () => { + describe("is testnet", () => { + REGTEST_ADDRESSES.forEach(address => { + it(`should detect ${address} is a regtest address`, () => { + const isRegTest = BITBOX.Address.isRegTestAddress(address) + assert.equal(isRegTest, true) + }) + }) + }) + + describe("is not testnet", () => { + MAINNET_ADDRESSES.forEach(address => { + it(`should detect ${address} is not a regtest address`, () => { + const isRegTest = BITBOX.Address.isRegTestAddress(address) + assert.equal(isRegTest, false) + }) + }) + + TESTNET_ADDRESSES.forEach(address => { + it(`should detect ${address} is not a regtest address`, () => { + const isRegTest = BITBOX.Address.isRegTestAddress(address) + assert.equal(isRegTest, false) + }) + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + BITBOX.Address.isRegTestAddress() + }, BITBOX.BitcoinCash.InvalidAddressError) + assert.throws(() => { + BITBOX.Address.isRegTestAddress("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) + }) }) describe("address type detection", () => { @@ -450,62 +591,158 @@ describe("address type detection", () => { describe("cashaddr prefix detection", () => { it("should return the same result for detectAddressFormat", () => { assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(BITBOX.Address.detectAddressFormat), - CASHADDR_ADDRESSES.map(BITBOX.Address.detectAddressFormat) + CASHADDR_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.detectAddressFormat(address) + ), + CASHADDR_ADDRESSES.map(address => + BITBOX.Address.detectAddressFormat(address) + ) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.detectAddressFormat(address) + ), + REGTEST_ADDRESSES.map(address => + BITBOX.Address.detectAddressFormat(address) + ) ) }) it("should return the same result for detectAddressNetwork", () => { assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(BITBOX.Address.detectAddressNetwork), - CASHADDR_ADDRESSES.map(BITBOX.Address.detectAddressNetwork) + CASHADDR_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.detectAddressNetwork(address) + ), + CASHADDR_ADDRESSES.map(address => + BITBOX.Address.detectAddressNetwork(address) + ) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.detectAddressNetwork(address) + ), + REGTEST_ADDRESSES.map(address => + BITBOX.Address.detectAddressNetwork(address) + ) ) }) it("should return the same result for detectAddressType", () => { assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(BITBOX.Address.detectAddressType), - CASHADDR_ADDRESSES.map(BITBOX.Address.detectAddressType) + CASHADDR_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.detectAddressType(address) + ), + CASHADDR_ADDRESSES.map(address => + BITBOX.Address.detectAddressType(address) + ) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.detectAddressType(address) + ), + REGTEST_ADDRESSES.map(address => + BITBOX.Address.detectAddressType(address) + ) ) }) it("should return the same result for toLegacyAddress", () => { assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(BITBOX.Address.toLegacyAddress), - CASHADDR_ADDRESSES.map(BITBOX.Address.toLegacyAddress) + CASHADDR_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.toLegacyAddress(address) + ), + CASHADDR_ADDRESSES.map(address => BITBOX.Address.toLegacyAddress(address)) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.toLegacyAddress(address) + ), + REGTEST_ADDRESSES.map(address => BITBOX.Address.toLegacyAddress(address)) ) }) it("should return the same result for isLegacyAddress", () => { assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(BITBOX.Address.isLegacyAddress), - CASHADDR_ADDRESSES.map(BITBOX.Address.isLegacyAddress) + CASHADDR_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.isLegacyAddress(address) + ), + CASHADDR_ADDRESSES.map(address => BITBOX.Address.isLegacyAddress(address)) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.isLegacyAddress(address) + ), + REGTEST_ADDRESSES.map(address => BITBOX.Address.isLegacyAddress(address)) ) }) it("should return the same result for isCashAddress", () => { assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(BITBOX.Address.isCashAddress), - CASHADDR_ADDRESSES.map(BITBOX.Address.isCashAddress) + CASHADDR_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.isCashAddress(address) + ), + CASHADDR_ADDRESSES.map(address => BITBOX.Address.isCashAddress(address)) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.isCashAddress(address) + ), + REGTEST_ADDRESSES.map(address => BITBOX.Address.isCashAddress(address)) ) }) it("should return the same result for isMainnetAddress", () => { assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(BITBOX.Address.isMainnetAddress), - CASHADDR_ADDRESSES.map(BITBOX.Address.isMainnetAddress) + CASHADDR_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.isMainnetAddress(address) + ), + CASHADDR_ADDRESSES.map(address => + BITBOX.Address.isMainnetAddress(address) + ) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.isMainnetAddress(address) + ), + REGTEST_ADDRESSES.map(address => BITBOX.Address.isMainnetAddress(address)) ) }) it("should return the same result for isTestnetAddress", () => { assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(BITBOX.Address.isTestnetAddress), - CASHADDR_ADDRESSES.map(BITBOX.Address.isTestnetAddress) + CASHADDR_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.isTestnetAddress(address) + ), + CASHADDR_ADDRESSES.map(address => + BITBOX.Address.isTestnetAddress(address) + ) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.isTestnetAddress(address) + ), + REGTEST_ADDRESSES.map(address => BITBOX.Address.isTestnetAddress(address)) ) }) it("should return the same result for isP2PKHAddress", () => { assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(BITBOX.Address.isP2PKHAddress), - CASHADDR_ADDRESSES.map(BITBOX.Address.isP2PKHAddress) + CASHADDR_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.isP2PKHAddress(address) + ), + CASHADDR_ADDRESSES.map(address => BITBOX.Address.isP2PKHAddress(address)) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.isP2PKHAddress(address) + ), + REGTEST_ADDRESSES.map(address => BITBOX.Address.isP2PKHAddress(address)) ) }) it("should return the same result for isP2SHAddress", () => { assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(BITBOX.Address.isP2SHAddress), - CASHADDR_ADDRESSES.map(BITBOX.Address.isP2SHAddress) + CASHADDR_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.isP2SHAddress(address) + ), + CASHADDR_ADDRESSES.map(address => BITBOX.Address.isP2SHAddress(address)) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.isP2SHAddress(address) + ), + REGTEST_ADDRESSES.map(address => BITBOX.Address.isP2SHAddress(address)) ) }) }) @@ -525,6 +762,13 @@ describe("#detectAddressFormat", () => { }) }) + REGTEST_ADDRESSES.forEach(address => { + it(`should detect ${address} is a legacy cashaddr address`, () => { + const isCashaddr = BITBOX.Address.detectAddressFormat(address) + assert.equal(isCashaddr, "cashaddr") + }) + }) + describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { @@ -552,6 +796,13 @@ describe("#detectAddressNetwork", () => { }) }) + REGTEST_ADDRESSES.forEach(address => { + it(`should detect ${address} is a testnet address`, () => { + const isTestnet = BITBOX.Address.detectAddressNetwork(address) + assert.equal(isTestnet, "regtest") + }) + }) + describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { diff --git a/test/fixtures/Address.json b/test/fixtures/Address.json index f340dd93..02c11120 100644 --- a/test/fixtures/Address.json +++ b/test/fixtures/Address.json @@ -71,6 +71,18 @@ "bchtest:qpuxsqzgq3j0a58tnmwpgcrwwyrkenalevaeknklfg", "bchtest:qpgrlg0yqmdf4y8q980e57tx6v7vrvds2ug89n8w8q" ], + "cashaddrRegTestP2PKH": [ + "bchreg:qq24rpar9qas3vc9r8d4p0prhwaf7jmx2usk9rgkku", + "bchreg:qpzj67wmlsq8uttddddapjjawyusureca5lq7ymw4p", + "bchreg:qztg9c4u3ldhg68mqgzrple6ae92hwnfe5pxq96p2t", + "bchreg:qrem2cg43ksmvlampheur8gfgdhhk57myg7kv9a6fl", + "bchreg:qp4jf3n740kffkladul96xnq5dtrflg4x55g4g8ef9", + "bchreg:qrlqxnzuu6hvvg9qer0m093ywkjnu7wm7ymwgasnp7", + "bchreg:qr44nfr9egxt7h7lxdktf9kajds9fwdxxck9mlyea5", + "bchreg:qpklfd26u70ta4j7p4twxv2k5apx95p0qqj83e2ent", + "bchreg:qpuxsqzgq3j0a58tnmwpgcrwwyrkenalev89qj4v2w", + "bchreg:qpgrlg0yqmdf4y8q980e57tx6v7vrvds2ujmnjyayx" + ], "hash160MainnetP2PKH": [ "573d93b475be4f1925f3b74ed951201b0147eac1", "c6a872e524a03b7d400c425d7b974a35c78f4634", diff --git a/typings/Address.d.ts b/typings/Address.d.ts index fe43a512..5c5d70ce 100644 --- a/typings/Address.d.ts +++ b/typings/Address.d.ts @@ -2,14 +2,15 @@ export declare interface Address { restURL: string; //constructor(restURL: string); toLegacyAddress(address: string): string; - toCashAddress(address: string, prefix?: boolean): string; + toCashAddress(address: string, prefix?: boolean, regtest?: boolean): string; toHash160(address: string): string; - hash160ToLegacy(hash160: string): string; - hash160ToCash(hash160: string): string; + hash160ToLegacy(hash160: string, network?: number): string; + hash160ToCash(hash160: string, network?: number, regtest?: boolean): string; isLegacyAddress(address: string): boolean; isCashAddress(address: string): boolean; isMainnetAddress(address: string): boolean; isTestnetAddress(address: string): boolean; + isRegTestAddress(address: string): boolean; isP2PKHAddress(address: string): boolean; isP2SHAddress(address: string): boolean; detectAddressFormat(address: string): string; From 9ecbca47b50c75690fe11597b68c3730320ab676 Mon Sep 17 00:00:00 2001 From: haryu703 Date: Sun, 7 Oct 2018 18:08:59 +0900 Subject: [PATCH 105/480] BitcoinCash.js supports regtest only bip21 encode --- lib/BitcoinCash.d.ts | 2 +- lib/BitcoinCash.js | 19 +++++++------ src/BitcoinCash.js | 14 +++++++--- test/BitcoinCash.js | 21 ++++++++++++++ test/fixtures/BitcoinCash.json | 50 ++++++++++++++++++++++++++++++++++ typings/BitcoinCash.d.ts | 2 +- 6 files changed, 93 insertions(+), 15 deletions(-) diff --git a/lib/BitcoinCash.d.ts b/lib/BitcoinCash.d.ts index 62b77572..22fbaf5b 100644 --- a/lib/BitcoinCash.d.ts +++ b/lib/BitcoinCash.d.ts @@ -7,7 +7,7 @@ export declare interface BitcoinCash { verifyMessage(address : string, signature: string, message: string): Boolean; encodeBase58Check(hex: string): string; decodeBase58Check(address: string): string; - encodeBIP21(address: string, options: EncodeBIP21Options): string; + encodeBIP21(address: string, options: EncodeBIP21Options, regtest?: boolean): string; decodeBIP21(url: string): BIP21Object; getByteCount(inputs: ByteCountInput|object, outputs: ByteCountOutput): number; encryptBIP38(privKeyWIF: string, passphrase: string): string; diff --git a/lib/BitcoinCash.js b/lib/BitcoinCash.js index cdbac7ca..ee95f73c 100644 --- a/lib/BitcoinCash.js +++ b/lib/BitcoinCash.js @@ -10,10 +10,6 @@ var _bitcoincashjsLib = require("bitcoincashjs-lib"); var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); -var _bchaddrjs = require("bchaddrjs"); - -var _bchaddrjs2 = _interopRequireDefault(_bchaddrjs); - var _satoshiBitcoin = require("satoshi-bitcoin"); var _satoshiBitcoin2 = _interopRequireDefault(_satoshiBitcoin); @@ -49,14 +45,17 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons var Buffer = require("safe-buffer").Buffer; var BitcoinCash = function () { - function BitcoinCash() { + function BitcoinCash(address) { _classCallCheck(this, BitcoinCash); + + this._address = address; } + // Translate coins to satoshi value + + _createClass(BitcoinCash, [{ key: "toSatoshi", - - // Translate coins to satoshi value value: function toSatoshi(coins) { return _satoshiBitcoin2.default.toSatoshi(coins); } @@ -123,7 +122,7 @@ var BitcoinCash = function () { }, { key: "verifyMessage", value: function verifyMessage(address, signature, message) { - return _bitcoinjsMessage2.default.verify(message, _bchaddrjs2.default.toLegacyAddress(address), signature); + return _bitcoinjsMessage2.default.verify(message, this._address.toLegacyAddress(address), signature); } // encode base58Check @@ -147,7 +146,9 @@ var BitcoinCash = function () { }, { key: "encodeBIP21", value: function encodeBIP21(address, options) { - return _bip2.default.encode(_bchaddrjs2.default.toCashAddress(address), options); + var regtest = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + + return _bip2.default.encode(this._address.toCashAddress(address, true, regtest), options); } // decode bip21 url diff --git a/src/BitcoinCash.js b/src/BitcoinCash.js index d89c0654..5921bc51 100644 --- a/src/BitcoinCash.js +++ b/src/BitcoinCash.js @@ -1,5 +1,4 @@ import Bitcoin from "bitcoincashjs-lib" -import bchaddr from "bchaddrjs" import sb from "satoshi-bitcoin" import bitcoinMessage from "bitcoinjs-message" import bs58 from "bs58" @@ -11,6 +10,10 @@ import wif from "wif" const Buffer = require("safe-buffer").Buffer class BitcoinCash { + constructor(address) { + this._address = address + } + // Translate coins to satoshi value toSatoshi(coins) { return sb.toSatoshi(coins) @@ -71,7 +74,7 @@ class BitcoinCash { verifyMessage(address, signature, message) { return bitcoinMessage.verify( message, - bchaddr.toLegacyAddress(address), + this._address.toLegacyAddress(address), signature ) } @@ -87,8 +90,11 @@ class BitcoinCash { } // encode bip21 url - encodeBIP21(address, options) { - return bip21.encode(bchaddr.toCashAddress(address), options) + encodeBIP21(address, options, regtest = false) { + return bip21.encode( + this._address.toCashAddress(address, true, regtest), + options + ) } // decode bip21 url diff --git a/test/BitcoinCash.js b/test/BitcoinCash.js index 9f35b607..82457b0f 100644 --- a/test/BitcoinCash.js +++ b/test/BitcoinCash.js @@ -226,6 +226,16 @@ describe("#BitcoinCash", () => { assert.equal(url, bip21.url) }) }) + fixtures.bip21.valid_regtest.forEach((bip21, i) => { + it(`encode ${bip21.address} as url`, () => { + const url = BITBOX.BitcoinCash.encodeBIP21( + bip21.address, + bip21.options, + true + ) + assert.equal(url, bip21.url) + }) + }) }) describe("#decodeBIP21", () => { @@ -240,6 +250,17 @@ describe("#BitcoinCash", () => { ) }) }) + // fixtures.bip21.valid_regtest.forEach((bip21, i) => { + // it(`decodes ${bip21.url}`, () => { + // const decoded = BITBOX.BitcoinCash.decodeBIP21(bip21.url) + // assert.equal(decoded.options.amount, bip21.options.amount) + // assert.equal(decoded.options.label, bip21.options.label) + // assert.equal( + // BITBOX.Address.toCashAddress(decoded.address, true, true), + // BITBOX.Address.toCashAddress(bip21.address, true, true) + // ) + // }) + // }) }) }) diff --git a/test/fixtures/BitcoinCash.json b/test/fixtures/BitcoinCash.json index 8289c9fd..d53c6f3c 100644 --- a/test/fixtures/BitcoinCash.json +++ b/test/fixtures/BitcoinCash.json @@ -297,6 +297,56 @@ }, "url": "bitcoincash:qphgz6ut3uu9xu8sly2zj7n5jkg5eyes5vjv3juf0x?amount=20.3&label=Foobar" } + ], + "valid_regtest": [ + { + "address": "1C6hRmfzvWst5WA7bFRCVAqHt5gE2g7Qar", + "options": { + "amount": 12.5, + "label": "coinbase donation", + "message": "and ya don't stop" + }, + "url": "bchreg:qpum6dwnqmmysdggrprse8ccjq7ldcrfqg94ewelh7?amount=12.5&label=coinbase%20donation&message=and%20ya%20don%27t%20stop" + }, + { + "address": "1Azo2JBz2JswboeY9xSMcp14BAfhjnD9SK", + "options": { + "label": "Foobar" + }, + "url": "bchreg:qpk6wsngptx0y2pd7hadar5m0gq629l80y59284j0h?label=Foobar" + }, + { + "address": "bchreg:qrdsfshx7yzfjl9sfj2khuja5crcu4vaxqa9cxhxs2", + "options": { + "amount": 1, + "label": "test" + }, + "url": "bchreg:qrdsfshx7yzfjl9sfj2khuja5crcu4vaxqa9cxhxs2?amount=1&label=test" + }, + { + "address": "bchreg:qzc5fxdm6lnwzgeju4jaemngtxkkkgt78uxag2hkxw", + "options": { + "amount": 3, + "label": "hhhhhhh" + }, + "url": "bchreg:qzc5fxdm6lnwzgeju4jaemngtxkkkgt78uxag2hkxw?amount=3&label=hhhhhhh" + }, + { + "address": "qzw6tfrh8p0jh834uf9rhg77pjg5rgnt3qsptj5ctt", + "options": { + "amount": 23, + "label": "no prefix" + }, + "url": "bchreg:qzw6tfrh8p0jh834uf9rhg77pjg5rgnt3qsptj5ctt?amount=23&label=no%20prefix" + }, + { + "address": "qphgz6ut3uu9xu8sly2zj7n5jkg5eyes5vvzr5adtu", + "options": { + "amount": 20.3, + "label": "Foobar" + }, + "url": "bchreg:qphgz6ut3uu9xu8sly2zj7n5jkg5eyes5vvzr5adtu?amount=20.3&label=Foobar" + } ] }, "getByteCount": [ diff --git a/typings/BitcoinCash.d.ts b/typings/BitcoinCash.d.ts index 62b77572..22fbaf5b 100644 --- a/typings/BitcoinCash.d.ts +++ b/typings/BitcoinCash.d.ts @@ -7,7 +7,7 @@ export declare interface BitcoinCash { verifyMessage(address : string, signature: string, message: string): Boolean; encodeBase58Check(hex: string): string; decodeBase58Check(address: string): string; - encodeBIP21(address: string, options: EncodeBIP21Options): string; + encodeBIP21(address: string, options: EncodeBIP21Options, regtest?: boolean): string; decodeBIP21(url: string): BIP21Object; getByteCount(inputs: ByteCountInput|object, outputs: ByteCountOutput): number; encryptBIP38(privKeyWIF: string, passphrase: string): string; From c8ba88eed5201cab4af27879757e4725d0f219da Mon Sep 17 00:00:00 2001 From: haryu703 Date: Sun, 7 Oct 2018 20:07:31 +0900 Subject: [PATCH 106/480] HDNode.js and ECPair.js supports regtest --- lib/ECPair.d.ts | 2 +- lib/ECPair.js | 13 ++++++----- lib/HDNode.d.ts | 2 +- lib/HDNode.js | 12 +++++------ lib/bitbox-cli.js | 3 ++- src/ECPair.js | 9 +++++--- src/HDNode.js | 9 +++++--- src/bitbox-cli.js | 3 ++- test/ECPair.js | 28 ++++++++++++++++++++++++ test/HDNode.js | 22 +++++++++++++++++++ test/fixtures/ECPair.json | 45 ++++++++++++++++++++++++++------------- test/fixtures/HDNode.json | 25 +++++++++++++++++----- typings/ECPair.d.ts | 2 +- typings/HDNode.d.ts | 2 +- 14 files changed, 134 insertions(+), 43 deletions(-) diff --git a/lib/ECPair.d.ts b/lib/ECPair.d.ts index d6842366..9cbba8dd 100644 --- a/lib/ECPair.d.ts +++ b/lib/ECPair.d.ts @@ -19,5 +19,5 @@ export declare interface ECPair { toLegacyAddress(): string; toLegacyAddress(ecpair: ECPair): string; toCashAddress(): string; - toCashAddress(ecpair: ECPair): string; + toCashAddress(ecpair: ECPair, regtest?: boolean): string; } \ No newline at end of file diff --git a/lib/ECPair.js b/lib/ECPair.js index 928c69cc..750f8120 100644 --- a/lib/ECPair.js +++ b/lib/ECPair.js @@ -10,10 +10,6 @@ var _bitcoincashjsLib = require("bitcoincashjs-lib"); var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); -var _bchaddrjs = require("bchaddrjs"); - -var _bchaddrjs2 = _interopRequireDefault(_bchaddrjs); - var _coininfo = require("coininfo"); var _coininfo2 = _interopRequireDefault(_coininfo); @@ -28,6 +24,11 @@ var ECPair = function () { } _createClass(ECPair, null, [{ + key: "setAddress", + value: function setAddress(address) { + ECPair._address = address; + } + }, { key: "fromWIF", value: function fromWIF(privateKeyWIF) { var network = void 0; @@ -73,7 +74,9 @@ var ECPair = function () { }, { key: "toCashAddress", value: function toCashAddress(ecpair) { - return _bchaddrjs2.default.toCashAddress(ecpair.getAddress()); + var regtest = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + return ECPair._address.toCashAddress(ecpair.getAddress(), true, regtest); } }]); diff --git a/lib/HDNode.d.ts b/lib/HDNode.d.ts index 3437521b..2c56ac7b 100644 --- a/lib/HDNode.d.ts +++ b/lib/HDNode.d.ts @@ -7,7 +7,7 @@ export declare interface HDNode { toLegacyAddress():string; toLegacyAddress(hdNode:HDNode):string; toCashAddress():string; - toCashAddress(hdNode:HDNode):string; + toCashAddress(hdNode:HDNode, regtest?: boolean):string; toWIF(): string; toWIF(hdNode:HDNode): string; toXPub():string; diff --git a/lib/HDNode.js b/lib/HDNode.js index f3964add..85831de0 100644 --- a/lib/HDNode.js +++ b/lib/HDNode.js @@ -10,10 +10,6 @@ var _bitcoincashjsLib = require("bitcoincashjs-lib"); var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); -var _bchaddrjs = require("bchaddrjs"); - -var _bchaddrjs2 = _interopRequireDefault(_bchaddrjs); - var _coininfo = require("coininfo"); var _coininfo2 = _interopRequireDefault(_coininfo); @@ -27,8 +23,10 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var HDNode = function () { - function HDNode() { + function HDNode(address) { _classCallCheck(this, HDNode); + + this._address = address; } _createClass(HDNode, [{ @@ -50,7 +48,9 @@ var HDNode = function () { }, { key: "toCashAddress", value: function toCashAddress(hdNode) { - return _bchaddrjs2.default.toCashAddress(hdNode.getAddress()); + var regtest = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + return this._address.toCashAddress(hdNode.getAddress(), true, regtest); } }, { key: "toWIF", diff --git a/lib/bitbox-cli.js b/lib/bitbox-cli.js index 3f578e10..c587083b 100644 --- a/lib/bitbox-cli.js +++ b/lib/bitbox-cli.js @@ -108,8 +108,9 @@ var BITBOXCli = function BITBOXCli(config) { this.Control = new _Control2.default(this.restURL); this.Crypto = _Crypto2.default; this.ECPair = _ECPair2.default; + this.ECPair.setAddress(this.Address); this.Generating = new _Generating2.default(this.restURL); - this.HDNode = new _HDNode2.default(); + this.HDNode = new _HDNode2.default(this.Address); this.Mining = new _Mining2.default(this.restURL); this.Mnemonic = new _Mnemonic2.default(); this.Network = new _Network2.default(this.restURL); diff --git a/src/ECPair.js b/src/ECPair.js index 4ddc24ce..02bb8457 100644 --- a/src/ECPair.js +++ b/src/ECPair.js @@ -1,8 +1,11 @@ import Bitcoin from "bitcoincashjs-lib" -import bchaddr from "bchaddrjs" import coininfo from "coininfo" class ECPair { + static setAddress(address) { + ECPair._address = address + } + static fromWIF(privateKeyWIF) { let network if (privateKeyWIF[0] === "L" || privateKeyWIF[0] === "K") @@ -42,8 +45,8 @@ class ECPair { return ecpair.getAddress() } - static toCashAddress(ecpair) { - return bchaddr.toCashAddress(ecpair.getAddress()) + static toCashAddress(ecpair, regtest = false) { + return ECPair._address.toCashAddress(ecpair.getAddress(), true, regtest) } } diff --git a/src/HDNode.js b/src/HDNode.js index e6a65a70..6df0302a 100644 --- a/src/HDNode.js +++ b/src/HDNode.js @@ -1,9 +1,12 @@ import Bitcoin from "bitcoincashjs-lib" -import bchaddr from "bchaddrjs" import coininfo from "coininfo" import bip32utils from "bip32-utils" class HDNode { + constructor(address) { + this._address = address + } + fromSeed(rootSeedBuffer, network = "bitcoincash") { let bitcoincash if (network === "bitcoincash") bitcoincash = coininfo.bitcoincash.main @@ -20,8 +23,8 @@ class HDNode { return hdNode.getAddress() } - toCashAddress(hdNode) { - return bchaddr.toCashAddress(hdNode.getAddress()) + toCashAddress(hdNode, regtest = false) { + return this._address.toCashAddress(hdNode.getAddress(), true, regtest) } toWIF(hdNode) { diff --git a/src/bitbox-cli.js b/src/bitbox-cli.js index a3122e78..28fffe23 100644 --- a/src/bitbox-cli.js +++ b/src/bitbox-cli.js @@ -36,8 +36,9 @@ class BITBOXCli { this.Control = new Control(this.restURL) this.Crypto = Crypto this.ECPair = ECPair + this.ECPair.setAddress(this.Address) this.Generating = new Generating(this.restURL) - this.HDNode = new HDNode() + this.HDNode = new HDNode(this.Address) this.Mining = new Mining(this.restURL) this.Mnemonic = new Mnemonic() this.Network = new Network(this.restURL) diff --git a/test/ECPair.js b/test/ECPair.js index 259427d1..e977875c 100644 --- a/test/ECPair.js +++ b/test/ECPair.js @@ -24,6 +24,14 @@ describe("#ECPair", () => { const cashAddr = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) assert.equal(BITBOX.HDNode.toCashAddress(cashAddr), fixture.cashAddr) }) + + it(`should get ${fixture.regtestAddr} cash address`, () => { + const cashAddr = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) + assert.equal( + BITBOX.HDNode.toCashAddress(cashAddr, true), + fixture.regtestAddr + ) + }) }) }) @@ -59,6 +67,16 @@ describe("#ECPair", () => { ) assert.equal(BITBOX.HDNode.toCashAddress(ecpair), fixture.cashAddr) }) + + it(`should get ${fixture.regtestAddr} cash address`, () => { + const ecpair = BITBOX.ECPair.fromPublicKey( + Buffer.from(fixture.pubkeyHex, "hex") + ) + assert.equal( + BITBOX.HDNode.toCashAddress(ecpair, true), + fixture.regtestAddr + ) + }) }) }) @@ -96,6 +114,16 @@ describe("#ECPair", () => { assert.equal(cashAddr, fixture.cashAddr) }) }) + + fixtures.toCashAddress.forEach(fixture => { + it(`should create regtest cash address ${ + fixture.regtestAddr + } from an ECPair`, () => { + const ecpair = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) + const regtestAddr = BITBOX.ECPair.toCashAddress(ecpair, true) + assert.equal(regtestAddr, fixture.regtestAddr) + }) + }) }) describe("#sign", () => { diff --git a/test/HDNode.js b/test/HDNode.js index 76ef8e89..f9759f83 100644 --- a/test/HDNode.js +++ b/test/HDNode.js @@ -114,6 +114,14 @@ describe("#HDNode", () => { const addy = BITBOX.HDNode.toCashAddress(childHDNode) assert.equal(addy, fixture.address) }) + + it(`should get address ${fixture.regtestAddress} from HDNode`, () => { + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) + const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) + const childHDNode = BITBOX.HDNode.derivePath(hdNode, "0") + const addr = BITBOX.HDNode.toCashAddress(childHDNode, true) + assert.equal(addr, fixture.regtestAddress) + }) }) }) @@ -195,6 +203,13 @@ describe("#HDNode", () => { assert.equal(BITBOX.HDNode.toCashAddress(hdNode), fixture.cashaddress) }) + it(`should export regtest cashaddress ${fixture.regtestaddress}`, () => { + assert.equal( + BITBOX.HDNode.toCashAddress(hdNode, true), + fixture.regtestaddress + ) + }) + it(`should export privateKeyWIF ${fixture.privateKeyWIF}`, () => { assert.equal(BITBOX.HDNode.toWIF(hdNode), fixture.privateKeyWIF) }) @@ -219,6 +234,13 @@ describe("#HDNode", () => { it(`should export cashaddress ${fixture.cashaddress}`, () => { assert.equal(BITBOX.HDNode.toCashAddress(hdNode), fixture.cashaddress) }) + + it(`should export regtest cashaddress ${fixture.regtestaddress}`, () => { + assert.equal( + BITBOX.HDNode.toCashAddress(hdNode, true), + fixture.regtestaddress + ) + }) }) }) diff --git a/test/fixtures/ECPair.json b/test/fixtures/ECPair.json index 36539cb9..ec74811b 100644 --- a/test/fixtures/ECPair.json +++ b/test/fixtures/ECPair.json @@ -3,27 +3,32 @@ { "privateKeyWIF": "L5PKiCuwwgmVN1GQNg8CdR6Rmg7tg1Npw7GyL5ULRPZ5EVPhtSrz", "legacy": "1P23VhvFLH18qP7YRCPDWPwA9TCJjmp9B5", - "cashAddr": "bitcoincash:qrcc23q0w7wgld690kduxvhetu0am523c5ufq5pes4" + "cashAddr": "bitcoincash:qrcc23q0w7wgld690kduxvhetu0am523c5ufq5pes4", + "regtestAddr": "bchreg:qrcc23q0w7wgld690kduxvhetu0am523c5z8jjqa50" }, { "privateKeyWIF": "L1SD3NYLMcoqpUzn2hwJ7c1Vb4pPiqMToSMyGMTcbcvRBDh9U9SP", "legacy": "14tqru6iL3KX2m4nKg36tfLFe13J1d1uwu", - "cashAddr": "bitcoincash:qq4tvcxq5z35pkfj65a2elyy8xpn0r55r59r5he7nz" + "cashAddr": "bitcoincash:qq4tvcxq5z35pkfj65a2elyy8xpn0r55r59r5he7nz", + "regtestAddr": "bchreg:qq4tvcxq5z35pkfj65a2elyy8xpn0r55r5mdx3c6hc" }, { "privateKeyWIF": "L57L3Xtu3j1Z2B2RuQzc59JLQXJQ86TH8To1hM348URbC2iCZqLe", "legacy": "135cNoFyxcwJ88BQsJd7c6qKfSBgRK7cCT", - "cashAddr": "bitcoincash:qqtv7uskar0nd8hyflesg7wq4uuqwdmtyg4hsx9kge" + "cashAddr": "bitcoincash:qqtv7uskar0nd8hyflesg7wq4uuqwdmtyg4hsx9kge", + "regtestAddr": "bchreg:qqtv7uskar0nd8hyflesg7wq4uuqwdmtygtezqyjvr" }, { "privateKeyWIF": "KzTm29RBrSgUbMyeJL9sCNUnc7LQEuDeT6Upq1iUwx78qWRdRzyW", "legacy": "1NbRysVu1cy8A8mjrLh4z649HqG6DrX9Z", - "cashAddr": "bitcoincash:qqzp270mhkglttfaysmt985aykwjhndw0ulmgr5g5d" + "cashAddr": "bitcoincash:qqzp270mhkglttfaysmt985aykwjhndw0ulmgr5g5d", + "regtestAddr": "bchreg:qqzp270mhkglttfaysmt985aykwjhndw0up4694vsh" }, { "privateKeyWIF": "L4BwXDmjzEyzKHbAfGruhieUDPs8KTx7DMgqPk4aF9GefzgqPENV", "legacy": "1FoZGWj8rgrimR7W383LNSLUfdPCjKAXLK", - "cashAddr": "bitcoincash:qz39l492msv9zz838t8ltx2w4zmycnqhwck4fnnyym" + "cashAddr": "bitcoincash:qz39l492msv9zz838t8ltx2w4zmycnqhwck4fnnyym", + "regtestAddr": "bchreg:qz39l492msv9zz838t8ltx2w4zmycnqhwcgmm4jqqp" } ], "toWIF": [ @@ -47,27 +52,32 @@ { "pubkeyHex": "02fb721b92025e775b1b84774e65d568d24645cb633275f5c26f5c3101b214a8fb", "legacy": "1SeP7kmdWTwjFmWiRMpqtSkDpW39zrVLK", - "cashAddr": "bitcoincash:qqzdnxncgm3v247u5v0gqnglr2vpdhe0hu4wl0rmwt" + "cashAddr": "bitcoincash:qqzdnxncgm3v247u5v0gqnglr2vpdhe0hu4wl0rmwt", + "regtestAddr": "bchreg:qqzdnxncgm3v247u5v0gqnglr2vpdhe0hutqdfzl23" }, { "pubkeyHex": "02d305772e0873fba6c1c7ff353ce374233316eb5820acd7ff3d7d9b82d514126b", "legacy": "1GpugKfjEycPRhk8A8ALPh1zAJmTQGdJPp", - "cashAddr": "bitcoincash:qzkej6g2zr9c9k83chyqh5pllzv6pkw62ckf2m82ks" + "cashAddr": "bitcoincash:qzkej6g2zr9c9k83chyqh5pllzv6pkw62ckf2m82ks", + "regtestAddr": "bchreg:qzkej6g2zr9c9k83chyqh5pllzv6pkw62cg8caxwj2" }, { "pubkeyHex": "02d305772e0873fba6c1c7ff353ce374233316eb5820acd7ff3d7d9b82d514126b", "legacy": "1GpugKfjEycPRhk8A8ALPh1zAJmTQGdJPp", - "cashAddr": "bitcoincash:qzkej6g2zr9c9k83chyqh5pllzv6pkw62ckf2m82ks" + "cashAddr": "bitcoincash:qzkej6g2zr9c9k83chyqh5pllzv6pkw62ckf2m82ks", + "regtestAddr": "bchreg:qzkej6g2zr9c9k83chyqh5pllzv6pkw62cg8caxwj2" }, { "pubkeyHex": "033c071f19057f11140f80308031fa58b6e7d8f9e889252805cae6a29c1248f843", "legacy": "15NQKRj7rAVsFL5rWMmhkAgx2K1dYoHoDW", - "cashAddr": "bitcoincash:qqh7evl4w7h6lsu7uvakvadm0z5hj535lqk098l670" + "cashAddr": "bitcoincash:qqh7evl4w7h6lsu7uvakvadm0z5hj535lqk098l670", + "regtestAddr": "bchreg:qqh7evl4w7h6lsu7uvakvadm0z5hj535lqgphp7764" }, { "pubkeyHex": "024933d7cc962415fda8249d6ee6820009fb6f0cf592385d91f8d9f39de507b7e1", "legacy": "14sq5dL1TeFdQJpj3vVMQvjrdmQoqVoM6m", - "cashAddr": "bitcoincash:qq4g2nmk64wt7a2mx85cl07n45nkh2p7lcytfgmqdl" + "cashAddr": "bitcoincash:qq4g2nmk64wt7a2mx85cl07n45nkh2p7lcytfgmqdl", + "regtestAddr": "bchreg:qq4g2nmk64wt7a2mx85cl07n45nkh2p7lc69mw6yf9" } ], "toPublicKey": [ @@ -112,23 +122,28 @@ "toCashAddress": [ { "privateKeyWIF": "L5PKiCuwwgmVN1GQNg8CdR6Rmg7tg1Npw7GyL5ULRPZ5EVPhtSrz", - "cashAddr": "bitcoincash:qrcc23q0w7wgld690kduxvhetu0am523c5ufq5pes4" + "cashAddr": "bitcoincash:qrcc23q0w7wgld690kduxvhetu0am523c5ufq5pes4", + "regtestAddr": "bchreg:qrcc23q0w7wgld690kduxvhetu0am523c5z8jjqa50" }, { "privateKeyWIF": "L1SD3NYLMcoqpUzn2hwJ7c1Vb4pPiqMToSMyGMTcbcvRBDh9U9SP", - "cashAddr": "bitcoincash:qq4tvcxq5z35pkfj65a2elyy8xpn0r55r59r5he7nz" + "cashAddr": "bitcoincash:qq4tvcxq5z35pkfj65a2elyy8xpn0r55r59r5he7nz", + "regtestAddr": "bchreg:qq4tvcxq5z35pkfj65a2elyy8xpn0r55r5mdx3c6hc" }, { "privateKeyWIF": "L57L3Xtu3j1Z2B2RuQzc59JLQXJQ86TH8To1hM348URbC2iCZqLe", - "cashAddr": "bitcoincash:qqtv7uskar0nd8hyflesg7wq4uuqwdmtyg4hsx9kge" + "cashAddr": "bitcoincash:qqtv7uskar0nd8hyflesg7wq4uuqwdmtyg4hsx9kge", + "regtestAddr": "bchreg:qqtv7uskar0nd8hyflesg7wq4uuqwdmtygtezqyjvr" }, { "privateKeyWIF": "KzTm29RBrSgUbMyeJL9sCNUnc7LQEuDeT6Upq1iUwx78qWRdRzyW", - "cashAddr": "bitcoincash:qqzp270mhkglttfaysmt985aykwjhndw0ulmgr5g5d" + "cashAddr": "bitcoincash:qqzp270mhkglttfaysmt985aykwjhndw0ulmgr5g5d", + "regtestAddr": "bchreg:qqzp270mhkglttfaysmt985aykwjhndw0up4694vsh" }, { "privateKeyWIF": "L4BwXDmjzEyzKHbAfGruhieUDPs8KTx7DMgqPk4aF9GefzgqPENV", - "cashAddr": "bitcoincash:qz39l492msv9zz838t8ltx2w4zmycnqhwck4fnnyym" + "cashAddr": "bitcoincash:qz39l492msv9zz838t8ltx2w4zmycnqhwck4fnnyym", + "regtestAddr": "bchreg:qz39l492msv9zz838t8ltx2w4zmycnqhwcgmm4jqqp" } ], "sign": [ diff --git a/test/fixtures/HDNode.json b/test/fixtures/HDNode.json index a93f769e..b6f05bc8 100644 --- a/test/fixtures/HDNode.json +++ b/test/fixtures/HDNode.json @@ -237,23 +237,28 @@ "toCashAddress": [ { "mnemonic": "rare dinosaur army fat spend average design order ritual town brave spike", - "address": "bitcoincash:qze9zznaqzdne2awnlnygt0p74dkc3e4svm9ty58nx" + "address": "bitcoincash:qze9zznaqzdne2awnlnygt0p74dkc3e4svm9ty58nx", + "regtestAddress": "bchreg:qze9zznaqzdne2awnlnygt0p74dkc3e4sv9tez4rhu" }, { "mnemonic": "rabbit track ahead moral either upper tiger paper echo snow multiply trial kind two cram", - "address": "bitcoincash:qqa37fkpl3g90ydgas3t3ev0xes24du2aqfdxaz85s" + "address": "bitcoincash:qqa37fkpl3g90ydgas3t3ev0xes24du2aqfdxaz85s", + "regtestAddress": "bchreg:qqa37fkpl3g90ydgas3t3ev0xes24du2aqhr5mrrs2" }, { "mnemonic": "shadow steak gospel heart life wedding loud jar marriage during lecture stove exclude price worry story art relief", - "address": "bitcoincash:qp2yr38pjeqdtsqw9pfwjs6ng3ya4lqlpu46wkzsh5" + "address": "bitcoincash:qp2yr38pjeqdtsqw9pfwjs6ng3ya4lqlpu46wkzsh5", + "regtestAddress": "bchreg:qp2yr38pjeqdtsqw9pfwjs6ng3ya4lqlput5usr5nw" }, { "mnemonic": "supply salute they blood coyote century envelope circle baby armed comfort sport jazz clarify museum portion wolf hour donkey frog juice", - "address": "bitcoincash:qqjpuwkhepkgxylfg8tq59sqm8zwf32dxqdchcnge7" + "address": "bitcoincash:qqjpuwkhepkgxylfg8tq59sqm8zwf32dxqdchcnge7", + "regtestAddress": "bchreg:qqjpuwkhepkgxylfg8tq59sqm8zwf32dxqnk97jvay" }, { "mnemonic": "tunnel ugly degree bid merry world pupil tornado ski rent casino rent security length wet twice luxury rookie invite destroy busy leopard escape shoe", - "address": "bitcoincash:qpjh00scq3ratsytmttle5cml6yyk9stvc5lfd6pck" + "address": "bitcoincash:qpjh00scq3ratsytmttle5cml6yyk9stvc5lfd6pck", + "regtestAddress": "bchreg:qpjh00scq3ratsytmttle5cml6yyk9stvc23mtm9uv" } ], "toWIF": [ @@ -290,6 +295,7 @@ "xpriv": "xprv9ysdmq3FsEdR2byz2KdNuGNd1dY181zpe5jBpydatj49DaxVnrTGNkM4S28WgBzNSFQA5SSnT34XcqcoS6opVGebrhXAef3rGpXPPb7yHPi", "legacy": "1CtdPZHebT5QTdknNvEBjGSgACHbriUmLV", "cashaddress": "bitcoincash:qzpxe7f7zc3rwckjmtled2wfssvv5gkvw52e35pc9q", + "regtestaddress": "bchreg:qzpxe7f7zc3rwckjmtled2wfssvv5gkvw55hrjqup6", "xpub": "xpub6CrzBLa9hcBiF64T8MAPGQKMZfNVXUig1JendN3CT4b86PHeLPmWvYfYHK2NNYrEBj1GwfWqWF1xYjn6aD1Y7RYDNajKSKbSi1CW2hzeDA5", "privateKeyWIF": "L3nMAFHGojwdTajZAjEfSsqyP8TmQgqpxmhKNdwpLiNw4EBuhUcg" }, @@ -297,6 +303,7 @@ "xpriv": "xprv9ysdmq3FsEdQyzSTsENJdmQPvXWDArRWG118RzwPTGoYmwUDGoeHoBjr1hxgGrLP9XpEXg9roQhSBFrwjb934bnu8yQzdHi6MmcPUXniGrP", "legacy": "1J1nGBW8rWeV1VEETii5nKhKHT7qshuQYw", "cashaddress": "bitcoincash:qzafl67pkxgmmzfp5jj4937jv6rlfs7zxy6gurw0xh", + "regtestaddress": "bchreg:qzafl67pkxgmmzfp5jj4937jv6rlfs7zxyyxw90tzd", "xpub": "xpub6CrzBLa9hcBiCUWvyFuJzuM8UZLhaK9MdDvjEPM11cLXejoMpLxYLz4KrxjRV9cd44EacgeaWU4E3GT6HfkDwjEup3Hw9inf9opWxxCZUa6", "privateKeyWIF": "KxWMGJMHMhB4f8aTwpmqags7gNvcrc7gs76SJHaXbAc4Me2DKP3L" }, @@ -304,6 +311,7 @@ "xpriv": "xprv9ysdmq3FsEdR71JPPhVFP2DwwQCUksByZA7kg6y5qTjDvkX8GQH1WwJDc2epCeCL416qnVHJYNQvaFjkrM1CkGwaHy1w9oVAUAe4V6cYiyq", "legacy": "1CrwnAN3p4Y5h7511F49VgwUvbEq314BM9", "cashaddress": "bitcoincash:qzppkls7al33d0w2dd07776d0fu2jwvtxsnw8nyum4", + "regtestaddress": "bchreg:qzppkls7al33d0w2dd07776d0fu2jwvtxsdq449cl0", "xpub": "xpub6CrzBLa9hcBiKVNrVj2FkAAgVS2yAKupvP3MUVNhPoGCoYrGowbG4jchTLccFRbah2Kw7VNbP11G6mXYAkur47EZJcsXkvwTqCekjrpBYaS", "privateKeyWIF": "KzYUskkRuJrhDYLgP1JAywmUx3MPh2UZNQa299iZgGS9cNKytzy4" }, @@ -311,6 +319,7 @@ "xpriv": "xprv9ysdmq3FsEdR8Zka7LWxKXaW2bsS3fjmusdBq5GnnDVMSAZ2LqhsoydPr6gD4CS9Ww8vWfnKtGe1rTqbw5NBvuqJwhebogWGbmkGhV9xa69", "legacy": "1HbccrsbZjyPewX6vaHBFyuhE2NtP3BJYp", "cashaddress": "bitcoincash:qzmqmc6vq4hrdwtjrluwk9uvyj6nt4h4aqe24qxnqr", + "regtestaddress": "bchreg:qzmqmc6vq4hrdwtjrluwk9uvyj6nt4h4aq8y8x8hye", "xpub": "xpub6CrzBLa9hcBiM3q3DN3xgfXEadhvT8TdH6YndTgQLZ2LJxtAtP28MmwshM34EtFhPDLorNocunk1E2KBvBbsGVJ5NorsvxW1yDWxsuLZF8Y", "privateKeyWIF": "L54oL29DdWDiPtHDW1kr3fzTWdm2f34V1tWhrFxnJoVafadwx6aS" }, @@ -318,6 +327,7 @@ "xpriv": "xprv9ysdmq3FsEdRD3iBKzw3f8HwpR1TbZNbySfxvXFZ6ZnmiMQGPfcnfCuDoLcnGT27p8DTvsqVubj8tv6yQp5siqUoPmT4WRLpjZXauriLnZB", "legacy": "1CmRFZjxL6auhVooc9sd3d8oKwL8mKwfFQ", "cashaddress": "bitcoincash:qzqslmsyprdfzwu3hk4sa237c7lpm44kesvkl2vtnq", + "regtestaddress": "bchreg:qzqslmsyprdfzwu3hk4sa237c7lpm44kesjcdvd0h6", "xpub": "xpub6CrzBLa9hcBiRXneS2U42GEgNSqx126TLfbZiufAeuKkb9jQwCw3D1Dhec4bNzwm9JkunejrxWcviV5NmoQTkb5eMGqJrVby2L7p6Mtee75", "privateKeyWIF": "L5UtYZibxTiHYefBQNvTRHYp75V3EeoqzRdv8KwqzYBtvzewaUME" } @@ -326,26 +336,31 @@ { "legacy": "1CtdPZHebT5QTdknNvEBjGSgACHbriUmLV", "cashaddress": "bitcoincash:qzpxe7f7zc3rwckjmtled2wfssvv5gkvw52e35pc9q", + "regtestaddress": "bchreg:qzpxe7f7zc3rwckjmtled2wfssvv5gkvw55hrjqup6", "xpub": "xpub6CrzBLa9hcBiF64T8MAPGQKMZfNVXUig1JendN3CT4b86PHeLPmWvYfYHK2NNYrEBj1GwfWqWF1xYjn6aD1Y7RYDNajKSKbSi1CW2hzeDA5" }, { "legacy": "1J1nGBW8rWeV1VEETii5nKhKHT7qshuQYw", "cashaddress": "bitcoincash:qzafl67pkxgmmzfp5jj4937jv6rlfs7zxy6gurw0xh", + "regtestaddress": "bchreg:qzafl67pkxgmmzfp5jj4937jv6rlfs7zxyyxw90tzd", "xpub": "xpub6CrzBLa9hcBiCUWvyFuJzuM8UZLhaK9MdDvjEPM11cLXejoMpLxYLz4KrxjRV9cd44EacgeaWU4E3GT6HfkDwjEup3Hw9inf9opWxxCZUa6" }, { "legacy": "1CrwnAN3p4Y5h7511F49VgwUvbEq314BM9", "cashaddress": "bitcoincash:qzppkls7al33d0w2dd07776d0fu2jwvtxsnw8nyum4", + "regtestaddress": "bchreg:qzppkls7al33d0w2dd07776d0fu2jwvtxsdq449cl0", "xpub": "xpub6CrzBLa9hcBiKVNrVj2FkAAgVS2yAKupvP3MUVNhPoGCoYrGowbG4jchTLccFRbah2Kw7VNbP11G6mXYAkur47EZJcsXkvwTqCekjrpBYaS" }, { "legacy": "1HbccrsbZjyPewX6vaHBFyuhE2NtP3BJYp", "cashaddress": "bitcoincash:qzmqmc6vq4hrdwtjrluwk9uvyj6nt4h4aqe24qxnqr", + "regtestaddress": "bchreg:qzmqmc6vq4hrdwtjrluwk9uvyj6nt4h4aq8y8x8hye", "xpub": "xpub6CrzBLa9hcBiM3q3DN3xgfXEadhvT8TdH6YndTgQLZ2LJxtAtP28MmwshM34EtFhPDLorNocunk1E2KBvBbsGVJ5NorsvxW1yDWxsuLZF8Y" }, { "legacy": "1CmRFZjxL6auhVooc9sd3d8oKwL8mKwfFQ", "cashaddress": "bitcoincash:qzqslmsyprdfzwu3hk4sa237c7lpm44kesvkl2vtnq", + "regtestaddress": "bchreg:qzqslmsyprdfzwu3hk4sa237c7lpm44kesjcdvd0h6", "xpub": "xpub6CrzBLa9hcBiRXneS2U42GEgNSqx126TLfbZiufAeuKkb9jQwCw3D1Dhec4bNzwm9JkunejrxWcviV5NmoQTkb5eMGqJrVby2L7p6Mtee75" } ], diff --git a/typings/ECPair.d.ts b/typings/ECPair.d.ts index d6842366..9cbba8dd 100644 --- a/typings/ECPair.d.ts +++ b/typings/ECPair.d.ts @@ -19,5 +19,5 @@ export declare interface ECPair { toLegacyAddress(): string; toLegacyAddress(ecpair: ECPair): string; toCashAddress(): string; - toCashAddress(ecpair: ECPair): string; + toCashAddress(ecpair: ECPair, regtest?: boolean): string; } \ No newline at end of file diff --git a/typings/HDNode.d.ts b/typings/HDNode.d.ts index 3437521b..2c56ac7b 100644 --- a/typings/HDNode.d.ts +++ b/typings/HDNode.d.ts @@ -7,7 +7,7 @@ export declare interface HDNode { toLegacyAddress():string; toLegacyAddress(hdNode:HDNode):string; toCashAddress():string; - toCashAddress(hdNode:HDNode):string; + toCashAddress(hdNode:HDNode, regtest?: boolean):string; toWIF(): string; toWIF(hdNode:HDNode): string; toXPub():string; From 2f8dc03db3ee0860b7873fa28eb980042e099cdc Mon Sep 17 00:00:00 2001 From: haryu703 Date: Sun, 7 Oct 2018 20:58:12 +0900 Subject: [PATCH 107/480] Mnemonic.js supports regtest --- lib/Mnemonic.d.ts | 2 +- lib/Mnemonic.js | 11 +++++------ lib/bitbox-cli.js | 2 +- src/Mnemonic.js | 13 ++++++++++--- src/bitbox-cli.js | 2 +- test/Mnemonic.js | 22 ++++++++++++++++++++++ typings/Mnemonic.d.ts | 2 +- 7 files changed, 41 insertions(+), 13 deletions(-) diff --git a/lib/Mnemonic.d.ts b/lib/Mnemonic.d.ts index c9b4ac88..688e5fcf 100644 --- a/lib/Mnemonic.d.ts +++ b/lib/Mnemonic.d.ts @@ -7,6 +7,6 @@ export declare interface Mnemonic { validate(mnemonic: string, wordlist?: string[]): boolean; toSeed(mnemonic: string, passphrase?: string): Buffer; wordLists(): any; - toKeypairs(mnemonic: string, numberOfKeypairs?: number): { privateKeyWIF: string, address: string}[]; + toKeypairs(mnemonic: string, numberOfKeypairs?: number, rgetest?: boolean): { privateKeyWIF: string, address: string}[]; findNearestWord(word: string, wordlist: string[]): string; } \ No newline at end of file diff --git a/lib/Mnemonic.js b/lib/Mnemonic.js index 25ea0c33..7b18a25c 100644 --- a/lib/Mnemonic.js +++ b/lib/Mnemonic.js @@ -22,10 +22,6 @@ var _bitcoincashjsLib = require("bitcoincashjs-lib"); var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); -var _bchaddrjs = require("bchaddrjs"); - -var _bchaddrjs2 = _interopRequireDefault(_bchaddrjs); - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -33,8 +29,10 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons var Buffer = require("safe-buffer").Buffer; var Mnemonic = function () { - function Mnemonic() { + function Mnemonic(address) { _classCallCheck(this, Mnemonic); + + this._address = address; } _createClass(Mnemonic, [{ @@ -95,6 +93,7 @@ var Mnemonic = function () { key: "toKeypairs", value: function toKeypairs(mnemonic) { var numberOfKeypairs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; + var regtest = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; var rootSeedBuffer = this.toSeed(mnemonic, ""); var hdNode = _bitcoincashjsLib2.default.HDNode.fromSeedBuffer(rootSeedBuffer); @@ -106,7 +105,7 @@ var Mnemonic = function () { var childHDNode = hdNode.derivePath("" + HDPath + i); accounts.push({ privateKeyWIF: childHDNode.keyPair.toWIF(), - address: _bchaddrjs2.default.toCashAddress(childHDNode.getAddress()) + address: this._address.toCashAddress(childHDNode.getAddress(), true, regtest) }); } return accounts; diff --git a/lib/bitbox-cli.js b/lib/bitbox-cli.js index c587083b..192d27f0 100644 --- a/lib/bitbox-cli.js +++ b/lib/bitbox-cli.js @@ -112,7 +112,7 @@ var BITBOXCli = function BITBOXCli(config) { this.Generating = new _Generating2.default(this.restURL); this.HDNode = new _HDNode2.default(this.Address); this.Mining = new _Mining2.default(this.restURL); - this.Mnemonic = new _Mnemonic2.default(); + this.Mnemonic = new _Mnemonic2.default(this.Address); this.Network = new _Network2.default(this.restURL); this.Price = new _Price2.default(); this.RawTransactions = new _RawTransactions2.default(this.restURL); diff --git a/src/Mnemonic.js b/src/Mnemonic.js index 6d5546d9..c140ed30 100644 --- a/src/Mnemonic.js +++ b/src/Mnemonic.js @@ -3,10 +3,13 @@ import Crypto from "./Crypto" import BIP39 from "bip39" import randomBytes from "randombytes" import Bitcoin from "bitcoincashjs-lib" -import bchaddr from "bchaddrjs" const Buffer = require("safe-buffer").Buffer class Mnemonic { + constructor(address) { + this._address = address + } + generate(bits = 128, wordlist) { return BIP39.generateMnemonic(bits, randomBytes, wordlist) } @@ -50,7 +53,7 @@ class Mnemonic { return BIP39.wordlists } - toKeypairs(mnemonic, numberOfKeypairs = 1) { + toKeypairs(mnemonic, numberOfKeypairs = 1, regtest = false) { const rootSeedBuffer = this.toSeed(mnemonic, "") const hdNode = Bitcoin.HDNode.fromSeedBuffer(rootSeedBuffer) const HDPath = `44'/145'/0'/0/` @@ -61,7 +64,11 @@ class Mnemonic { const childHDNode = hdNode.derivePath(`${HDPath}${i}`) accounts.push({ privateKeyWIF: childHDNode.keyPair.toWIF(), - address: bchaddr.toCashAddress(childHDNode.getAddress()) + address: this._address.toCashAddress( + childHDNode.getAddress(), + true, + regtest + ) }) } return accounts diff --git a/src/bitbox-cli.js b/src/bitbox-cli.js index 28fffe23..f5146590 100644 --- a/src/bitbox-cli.js +++ b/src/bitbox-cli.js @@ -40,7 +40,7 @@ class BITBOXCli { this.Generating = new Generating(this.restURL) this.HDNode = new HDNode(this.Address) this.Mining = new Mining(this.restURL) - this.Mnemonic = new Mnemonic() + this.Mnemonic = new Mnemonic(this.Address) this.Network = new Network(this.restURL) this.Price = new Price() this.RawTransactions = new RawTransactions(this.restURL) diff --git a/test/Mnemonic.js b/test/Mnemonic.js index 7c4d289b..d98837d1 100644 --- a/test/Mnemonic.js +++ b/test/Mnemonic.js @@ -302,6 +302,28 @@ describe("#Mnemonic", () => { keypair.privateKeyWIF, fixtures.toKeypairs[i].output[j].privateKeyWIF ) + // assert.equal( + // keypair.address, + // fixtures.toKeypairs[i].output[j].address + // ) + }) + }) + + const regtestKeypairs = BITBOX.Mnemonic.toKeypairs( + fixture.mnemonic, + 5, + true + ) + regtestKeypairs.forEach((keypair, j) => { + it(`Generate keypair from mnemonic`, () => { + assert.equal( + keypair.privateKeyWIF, + fixtures.toKeypairs[i].output[j].privateKeyWIF + ) + // assert.equal( + // keypair.address, + // fixtures.toKeypairs[i].output[j].regtestAddress + // ) }) }) }) diff --git a/typings/Mnemonic.d.ts b/typings/Mnemonic.d.ts index c9b4ac88..688e5fcf 100644 --- a/typings/Mnemonic.d.ts +++ b/typings/Mnemonic.d.ts @@ -7,6 +7,6 @@ export declare interface Mnemonic { validate(mnemonic: string, wordlist?: string[]): boolean; toSeed(mnemonic: string, passphrase?: string): Buffer; wordLists(): any; - toKeypairs(mnemonic: string, numberOfKeypairs?: number): { privateKeyWIF: string, address: string}[]; + toKeypairs(mnemonic: string, numberOfKeypairs?: number, rgetest?: boolean): { privateKeyWIF: string, address: string}[]; findNearestWord(word: string, wordlist: string[]): string; } \ No newline at end of file From c029f48483b238c9456e64f6ab691f99bce661e1 Mon Sep 17 00:00:00 2001 From: haryu703 Date: Sun, 7 Oct 2018 22:50:22 +0900 Subject: [PATCH 108/480] TransactionBuilder.js supports regtest --- lib/TransactionBuilder.js | 13 +- lib/bitbox-cli.js | 1 + src/TransactionBuilder.js | 10 +- src/bitbox-cli.js | 1 + test/TransactionBuilder.js | 238 ++++++++++++++++++++ test/fixtures/TransactionBuilder.json | 311 ++++++++++++++++++++++++++ 6 files changed, 567 insertions(+), 7 deletions(-) diff --git a/lib/TransactionBuilder.js b/lib/TransactionBuilder.js index be24aecf..a871e5f7 100644 --- a/lib/TransactionBuilder.js +++ b/lib/TransactionBuilder.js @@ -10,10 +10,6 @@ var _bitcoincashjsLib = require("bitcoincashjs-lib"); var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); -var _bchaddrjs = require("bchaddrjs"); - -var _bchaddrjs2 = _interopRequireDefault(_bchaddrjs); - var _coininfo = require("coininfo"); var _coininfo2 = _interopRequireDefault(_coininfo); @@ -31,6 +27,13 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var TransactionBuilder = function () { + _createClass(TransactionBuilder, null, [{ + key: "setAddress", + value: function setAddress(address) { + TransactionBuilder._address = address; + } + }]); + function TransactionBuilder() { var network = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "bitcoincash"; @@ -76,7 +79,7 @@ var TransactionBuilder = function () { key: "addOutput", value: function addOutput(scriptPubKey, amount) { try { - this.transaction.addOutput(_bchaddrjs2.default.toLegacyAddress(scriptPubKey), amount); + this.transaction.addOutput(TransactionBuilder._address.toLegacyAddress(scriptPubKey), amount); } catch (error) { this.transaction.addOutput(scriptPubKey, amount); } diff --git a/lib/bitbox-cli.js b/lib/bitbox-cli.js index 192d27f0..e7955682 100644 --- a/lib/bitbox-cli.js +++ b/lib/bitbox-cli.js @@ -119,6 +119,7 @@ var BITBOXCli = function BITBOXCli(config) { this.Script = new _Script2.default(); this.Transaction = new _Transaction2.default(this.restURL); this.TransactionBuilder = _TransactionBuilder2.default; + this.TransactionBuilder.setAddress(this.Address); this.Util = new _Util2.default(this.restURL); this.Socket = _Socket2.default; }; diff --git a/src/TransactionBuilder.js b/src/TransactionBuilder.js index 67df11ee..b1164825 100644 --- a/src/TransactionBuilder.js +++ b/src/TransactionBuilder.js @@ -1,10 +1,13 @@ import Bitcoin from "bitcoincashjs-lib" -import bchaddr from "bchaddrjs" import coininfo from "coininfo" import bip66 from "bip66" import bip68 from "bip68" class TransactionBuilder { + static setAddress(address) { + TransactionBuilder._address = address + } + constructor(network = "bitcoincash") { let bitcoincash if (network === "bitcoincash") bitcoincash = coininfo.bitcoincash.main @@ -40,7 +43,10 @@ class TransactionBuilder { addOutput(scriptPubKey, amount) { try { - this.transaction.addOutput(bchaddr.toLegacyAddress(scriptPubKey), amount) + this.transaction.addOutput( + TransactionBuilder._address.toLegacyAddress(scriptPubKey), + amount + ) } catch (error) { this.transaction.addOutput(scriptPubKey, amount) } diff --git a/src/bitbox-cli.js b/src/bitbox-cli.js index f5146590..2c6e2b83 100644 --- a/src/bitbox-cli.js +++ b/src/bitbox-cli.js @@ -47,6 +47,7 @@ class BITBOXCli { this.Script = new Script() this.Transaction = new Transaction(this.restURL) this.TransactionBuilder = TransactionBuilder + this.TransactionBuilder.setAddress(this.Address) this.Util = new Util(this.restURL) this.Socket = Socket } diff --git a/test/TransactionBuilder.js b/test/TransactionBuilder.js index 58060a1c..fead01c5 100644 --- a/test/TransactionBuilder.js +++ b/test/TransactionBuilder.js @@ -502,6 +502,43 @@ describe("#TransactionBuilder", () => { }) }) }) + + describe("#RegTest", () => { + fixtures.scripts.p2pkh.toOne.regtest.forEach(fixture => { + it(`should create 1-to-1 P2PKH transaction on regtest`, () => { + const hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new BITBOX.TransactionBuilder("regtest") + const keyPair = BITBOX.HDNode.toKeyPair(hdnode) + const txHash = fixture.txHash + // original amount of satoshis in vin + const originalAmount = fixture.amount + transactionBuilder.addInput(txHash, fixture.vout) + // get byte count to calculate fee. paying 1 sat/byte + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 1 } + ) + // amount to send to receiver. It's the original amount - 1 sat/byte for tx size + const sendAmount = originalAmount - byteCount * 15 + // add output w/ address and amount to send + let redeemScript + transactionBuilder.addOutput(fixture.outputs[0], sendAmount) + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + + // build tx + const tx = transactionBuilder.build() + // output rawhex + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) }) describe("#toMany", () => { @@ -591,6 +628,50 @@ describe("#TransactionBuilder", () => { }) }) }) + + describe("#RegTest", () => { + fixtures.scripts.p2pkh.toMany.regtest.forEach(fixture => { + // TODO pass in tesnet network config + it(`should create 1-to-2 P2PKH transaction on regtest`, () => { + const hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new BITBOX.TransactionBuilder("regtest") + const keyPair = BITBOX.HDNode.toKeyPair(hdnode) + const txHash = fixture.txHash + // original amount of satoshis in vin + const originalAmount = fixture.amount + transactionBuilder.addInput(txHash, fixture.vout) + // get byte count to calculate fee. paying 1 sat/byte + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 2 } + ) + // amount to send to receiver. It's the original amount - 1 sat/byte for tx size + const sendAmount = originalAmount - byteCount * 15 + // add output w/ address and amount to send + transactionBuilder.addOutput( + fixture.outputs[0], + Math.floor(sendAmount / 2) + ) + transactionBuilder.addOutput( + fixture.outputs[1], + Math.floor(sendAmount / 2) + ) + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + // build tx + const tx = transactionBuilder.build() + // output rawhex + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) }) describe("#manyToMany", () => { @@ -687,6 +768,53 @@ describe("#TransactionBuilder", () => { }) }) }) + + describe("#RegTest", () => { + fixtures.scripts.p2pkh.manyToMany.regtest.forEach(fixture => { + it(`should create 2-to-2 P2PKH transaction on regtest`, () => { + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder = new BITBOX.TransactionBuilder("regtest") + const txHash = fixture.txHash + const originalAmount = fixture.amounts[0] + fixture.amounts[1] + transactionBuilder.addInput(txHash, 0) + transactionBuilder.addInput(txHash, 1) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 2 }, + { P2PKH: 2 } + ) + const sendAmount = originalAmount - byteCount * 15 + transactionBuilder.addOutput( + fixture.outputs[0], + Math.floor(sendAmount / 2) + ) + transactionBuilder.addOutput( + fixture.outputs[1], + Math.floor(sendAmount / 2) + ) + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + let redeemScript + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[0] + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[1] + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) }) describe("#fromMany", () => { @@ -769,6 +897,46 @@ describe("#TransactionBuilder", () => { }) }) }) + + describe("#RegTest", () => { + fixtures.scripts.p2pkh.fromMany.regtest.forEach(fixture => { + it(`should create 2-to-1 P2PKH transaction on regtest`, () => { + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder = new BITBOX.TransactionBuilder("regtest") + const txHash = fixture.txHash + const originalAmount = fixture.amounts[0] + fixture.amounts[1] + transactionBuilder.addInput(txHash, 0) + transactionBuilder.addInput(txHash, 1) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 2 }, + { P2PKH: 1 } + ) + const sendAmount = originalAmount - byteCount * 15 + transactionBuilder.addOutput(fixture.outputs[0], sendAmount) + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + let redeemScript + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[0] + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[1] + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) }) }) @@ -842,6 +1010,41 @@ describe("#TransactionBuilder", () => { }) }) }) + + describe("#RegTest", () => { + fixtures.nulldata.regtest.forEach(fixture => { + it(`should create transaction w/ OP_RETURN output on regtest`, () => { + const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new BITBOX.TransactionBuilder("regtest") + const txHash = fixture.txHash + const originalAmount = fixture.amount + transactionBuilder.addInput(txHash, 0) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 5 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(fixture.output, sendAmount) + const data = fixture.data + const buf = BITBOX.Script.nullData.output.encode( + Buffer.from(data, "ascii") + ) + transactionBuilder.addOutput(buf, 0) + const keyPair = BITBOX.HDNode.toKeyPair(node) + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amount + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) }) describe("#P2PMS", () => { @@ -1707,6 +1910,41 @@ describe("#TransactionBuilder", () => { }) }) }) + + describe("#RegTest", () => { + fixtures.nulldata.regtest.forEach(fixture => { + it(`should create transaction w/ OP_RETURN output on regtest`, () => { + const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new BITBOX.TransactionBuilder("regtest") + const txHash = fixture.txHash + const originalAmount = fixture.amount + transactionBuilder.addInput(txHash, 0) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 5 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(fixture.output, sendAmount) + const data = fixture.data + const buf = BITBOX.Script.nullData.output.encode( + Buffer.from(data, "ascii") + ) + transactionBuilder.addOutput(buf, 0) + const keyPair = BITBOX.HDNode.toKeyPair(node) + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amount + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) }) describe("#bip66", () => { diff --git a/test/fixtures/TransactionBuilder.json b/test/fixtures/TransactionBuilder.json index 14ee8a4d..e40e1903 100644 --- a/test/fixtures/TransactionBuilder.json +++ b/test/fixtures/TransactionBuilder.json @@ -524,6 +524,58 @@ "bchtest:qz9glwj836l6xtf0r3fhm6895d4ed3rhy5s907urel" ] } + ], + "regtest": [ + { + "xpriv": "tprv8jwG6YA1fGe7Ut879xQ9NMTwK9oWx4huSvQuix8bEorixxkhkSJd55B7mfQAQeALoEpWWQ5GW2qCmBjAnnyTCyMXoJYUGuQLQLPN367M98Y", + "txHash": "adcda2424f8768bdf3d5064e9a71a61d6d80b22bcc12f5eae0372822aac4c293", + "hex": "020000000193c2c4aa222837e0eaf512cc2bb2806d1da6719a4e06d5f3bd68874f42a2cdad000000006b483045022100dce87e98844fe01c7f0bffeb3ec6dbd92cada2751570653abb5db5bb1c40eeec02202eeac6d4f79f4774b40c121c6b99b8f431357a17dc8bae39003a16a8246a2bae4121037e04aa55787df424b4f1160aa64c65f64b2daa69e53d16c75b9a40708b01651dffffffff0140a0eb0b000000001976a9143cb6602d5ab7dc5c283f34c361fe9ce152f5c46888ac00000000", + "amount": 199994240, + "vout": 0, + "outputs": [ + "bchreg:qq7tvcpdt2machpg8u6vxc07nns49awydq85ujk0dc" + ] + }, + { + "xpriv": "tprv8jwG6YA1fGe7Zw1EnkCEfsm4DosKKHtczdcH2n2H6b7NgnyoHqcQLQHt9d384GG14MJyQ3Jifij1tgkkVCJn4x926i5vZbFhtjkyewCFBYD", + "txHash": "0ed1f82a7581f694fa77e9bdcb36a6e67e95ff75bb141e1df78e1f3de7109af4", + "hex": "0200000001f49a10e73d1f8ef71d1e14bb75ff957ee6a636cbbde977fa94f681752af8d10e000000006a4730440221009e36bba2b64d1aaf6fe509e27cffdeab3c5f5b4bd464c014e0abb0cfa8594880021f3f8111b1f19894f902b592ba967e55b98568dea4c5e14e1f9260bfc988ed9c412103b230a14bfbdaacb71b2005314de971fa58b14edb6a8dd7bfbd3fdd2ba41be329ffffffff010095eb0b000000001976a91481a5df1328bc195ee8affe9cf497bbdb79957bb588ac00000000", + "amount": 199991360, + "vout": 0, + "outputs": [ + "bchreg:qzq6thcn9z7pjhhg4llfeayhh0dhn9tmk5rfn084kv" + ] + }, + { + "xpriv": "tprv8jwG6YA1fGe7bymmgt3fveCX9Ja97PYm6zuVAzxkqMwD2W9RMH7QeqmJjjcYds7oqe6TnEqVvDjxSB5JJW2gTijE9HtptT8UHskamocUgrA", + "txHash": "62c0967f5fedbde7b5d485b8a98cf64c6f59c49b52667407e1e4f08f8868e80a", + "hex": "02000000010ae868888ff0e4e1077466529bc4596f4cf68ca9b885d4b5e7bded5f7f96c062000000006b483045022100810a26ea991a98f3bc38764095b00be6f86795a6b165117726f1401f2714757b02207d6ee4551f4dc7e053cc29abd63b24bbb6ef150024b656fde0289bec52053633412102193e4ead30e7008945e5c98589668762814624ed97a6fdbe89b5cb9cef90ec76ffffffff01c089eb0b000000001976a914305166fda99a88d62955a21adc6d5515c88b194f88ac00000000", + "amount": 199988480, + "vout": 0, + "outputs": [ + "bchreg:qqc9zeha4xdg343f2k3p4hrd252u3zcefurwxvh6g9" + ] + }, + { + "xpriv": "tprv8jwG6YA1fGe7cffn1viCuHyewctT4zxe6tBKvHJavt5AMgTUJTSbZyiYwXwaq1bXSzP2k6WmBTewtLdXqG7hmNWCsUgrGz9XEp9iBaZcjz2", + "txHash": "8095f9aacd64c3119ed07b1152e0aaaa2d9a2da8886e442b6e43ee0c5474cdc0", + "hex": "0200000001c0cd74540cee436e2b446e88a82d9a2daaaae052117bd09e11c364cdaaf99580000000006b4830450221008226da5999b699f941b120824e6f2f0eac1cfd1ee0265758996a1351c5e0f800022002a8125bacee157b482fff4e4412d2926a5cdb8ba154f1de14aac68858403c7a41210355cfbd19413917309ac59f1dfe4bd7ea9ea86628ed54872a9c70eb20d453e518ffffffff01807eeb0b000000001976a9145c529406c0577109811a9e4305900c283783b5ff88ac00000000", + "amount": 199985600, + "vout": 0, + "outputs": [ + "bchreg:qpw999qxcpthzzvpr20yxpvsps5r0qa4lusgdzjysj" + ] + }, + { + "xpriv": "tprv8jwG6YA1fGe7fLkrKHuZWCM8uy911tAZKrqM8RRaF6aJUku9Vw9uYCYtRdAoLG6cyfBcfyVrXBAqaXUxFZZXPRxqiszMj5U9zTGL52PZxPD", + "txHash": "10b55f91a2dd91ad28bffb32b8967f5dcfd4f1d93f6bf2fafd089f5899b341fd", + "hex": "0200000001fd41b399589f08fdfaf26b3fd9f1d4cf5d7f96b832fbbf28ad91dda2915fb510000000006b483045022100b289038c20d65b2e2403df6bcc5d3ab56ecae10d2b04e75aa98e4a1418f670f40220079d059ec3546bfd6baa1355bd7f65cb38a997439d99afb1e7ab21c7506a15ec412103ee46afc68bb38a9a5598950e51e4466a8b33573e8605126b0779040d740f88f0ffffffff014073eb0b000000001976a9148a8fba478ebfa32d2f1c537de8e5a36b96c4772588ac00000000", + "amount": 199982720, + "vout": 0, + "outputs": [ + "bchreg:qz9glwj836l6xtf0r3fhm6895d4ed3rhy52eells6e" + ] + } ] }, "toMany": { @@ -640,6 +692,59 @@ "bchtest:qrld2c0xn8zpm8knvyn9lx2zuh8rhkawsyat9mtkg4" ] } + ], + "regtest": [ + { + "xpriv": "tprv8jwG6YA1fGe7jgUsatzgsqH941oUDZs9FejN6rVRZcMaL4nPoShBwD6LNFThDNNg1zpVe1k4zHeK82KJMU4iJMCeEbinn86QuFd5eXutaUL", + "txHash": "4edb662b14424d7bbbbe4b9fd1533d49690aefb2a15af8fa0704eab1ce41210b", + "hex": "02000000010b2141ceb1ea0407faf85aa1b2ef0a69493d53d19f4bbebb7b4d42142b66db4e000000006b483045022100bf8c2e6b8d3bcbfbaa64a5e9c2cbe5ce71471f87ff1d9f6a0bcec1c58c4a8a2102201504868d60e6f75ccda4c3fe899df0094d878fe8ca5ec55893da5f61517b49a04121029cc6fa90d901a5474249facbb32b187a1de63e853c43b272752109abdef19728ffffffff0201b3f505000000001976a914b3a223ad62ca6c8669a69a508216cd374612cb5688ac01b3f505000000001976a914b4e71aaf9bf4afd806d0560b17995c873ef61e9e88ac00000000", + "amount": 199979840, + "vout": 0, + "outputs": [ + "bchreg:qze6ygadvt9xepnf56d9pqske5m5vykt2cyscdju70", + "bchreg:qz6wwx40n062lkqx6ptqk9uetjrnaas7ncppy9sc0f" + ] + }, + { + "xpriv": "tprv8jwG6YA1fGe7vmRFrLKrsa216JHN44gEbnqUDThD1YtcFfVnb4a68bN6vdr3SqTPh1PX4CBgRoHcK8Ub4HCCei1q8c8HdstHsY93fxvQaEz", + "txHash": "7bc7e2f13ee5aab5c561dadde8ccdaa9968a75af074605c8d9a07545d3c03c8b", + "hex": "02000000018b3cc0d34575a0d9c8054607af758a96a9dacce8ddda61c5b5aae53ef1e2c77b000000006b483045022100d01c1c4039bd57bd18bd6d1185f7ca68477f6f347c977f740464685d80ae8b0402202de873b559814282a8a54b032c3bfc4cd7aa3a6e556356be1e78e999a5f478e94121028495390a7537738c2b0b1709eeba8bc74cc21279a35a45d0a7ff5a31d0416be2ffffffff027797f505000000001976a91417995bdbdd04ffa5d6fcf475d147d71fb7fb9d2088ac7797f505000000001976a91438b9d2974d586b062af9fe25b5fb8a2a87e3b27888ac00000000", + "amount": 199965740, + "vout": 0, + "outputs": [ + "bchreg:qqtejk7mm5z0lfwkln68t5286u0m07uayqdy443vvd", + "bchreg:qqutn55hf4vxkp32l8lztd0m3g4g0caj0qlel2j0dj" ] + }, + { + "xpriv": "tprv8jwG6YA1fGe8AkaYjYBgP4uCdBzEc1KNJTEmjaf7bwyysea4qt275maGXt9ergfGz7JeUULZok9UNKT5uuPMoseGJzYJUJgac2pqS7FLhgP", + "txHash": "84f8380b4f4166e332a9aba700b7c616061ac77f85593245470ef0657c000f92", + "hex": "0200000001920f007c65f00e47453259857fc71a0616c6b700a7aba932e366414f0b38f884010000006b483045022100b342eaa7f357a19fc24918b772b73c13e2060db4fcde690eb5df526e6341b9a2022030b36ec3f862e03081af98f0d64dabba0ecde8605f70c4ef08a93b60af662739412102547aa38203e296e558c0ab77fff7b2f12669e7e39fe1511993ce2038eebf0fbeffffffff0261daf505000000001976a914b65a6f84ba3b239f4258192562c3b99ec576e28688ac61daf505000000001976a914fe64266e2cdee4ed1f9708a71d9e6883451e067088ac00000000", + "amount": 200000000, + "vout": 1, + "outputs": [ + "bchreg:qzm95muyhgaj886ztqvj2ckrhx0v2ahzscdcnyd8e7", + "bchreg:qrlxgfnw9n0wfmgljuy2w8v7dzp528sxwqw7rzk9zj" ] + }, + { + "xpriv": "tprv8jwG6YA1fGe8M9RrTT7WZc4NJshwsfEW8RKp8b2oCNNNLa5YJfPPJhDgXHFQJQsyrioTeQi4D1Xdh28rA5c1FYSpe5QpD39QdYeReUFErSV", + "txHash": "ab6c8f1b141f5a169afb2abe44d91d0eaa2b294e3df8326c3ffeeba62c7fcad0", + "hex": "0200000001d0ca7f2ca6ebfe3f6c32f83d4e292baa0e1dd944be2afb9a165a1f141b8f6cab000000006b483045022100f975e3114ff17c7b4ca5ad19c268b89135f1664163acd68a7f1fc516e2f554e102200bdeb773f5f1d466f22e476ae35e2ac8e810c4bdca7f8f477519c4d889224e4341210223c633d50fb10af9de12f9ef3aecc39ebc26a76e57fa510c3455e5cd1da827d9ffffffff02d7bef505000000001976a914a1612a990756144cd374bc77395b38ce3a4e4afc88acd7bef505000000001976a914d324c14c2fedd81ee2ce94cf4ef896f4b303391088ac00000000", + "amount": 199985900, + "vout": 0, + "outputs": [ + "bchreg:qzskz25eqatpgnxnwj78ww2m8r8r5nj2ls8e66qkc6", + "bchreg:qrfjfs2v9lkas8hze62v7nhcjm6txqeezqxk4g7uuf" ] + }, + { + "xpriv": "tprv8jwG6YA1fGe8aEi5iXr42XpRDHANmSKvjkGQDhUEn4E3vFKU6uyxmzmDvH4XRDkykP56gr37YshRMJ6Q4ZPqmG3UD9bMvVPkv5oyEUZKoE3", + "txHash": "83d388b50f42e4dd4bc0dd6629c912e5a1ee2e78b3d8851bdab841112efe04ca", + "hex": "0200000001ca04fe2e1141b8da1b85d8b3782eeea1e512c92966ddc04bdde4420fb588d383000000006a473044022024c944f77c00cf8cca8641cf9e0b3cad498f04c2919e0067832a1031c64caa8a02204d7cc3e0181f56dd72039219d2eb139728a77172d1a2010379f0c00e97d443574121037c5b346363b720a74c5fd732ba2002f16682744fb0d728a24826ed83c2f6f633ffffffff024da3f505000000001976a91444f3088ca3a476f9d8c1d217cfe47d5df0e83a7088ac4da3f505000000001976a914fed561e699c41d9ed361265f9942e5ce3bdbae8188ac00000000", + "amount": 199971800, + "vout": 0, + "outputs": [ + "bchreg:qpz0xzyv5wj8d7wcc8fp0nly04wlp6p6wqg540xw5p", + "bchreg:qrld2c0xn8zpm8knvyn9lx2zuh8rhkawsy8hn6g9tn" ] + } ] }, "manyToMany": { @@ -806,6 +911,88 @@ "bchtest:qzdk7py96h020e6wv63zql2ld5dfp73uzgl9hqe9lw" ] } + ], + "regtest": [ + { + "xprivs": [ + "tprv8jwG6YA1fGe7kqL9HPxnBAJtzwzRmUq5qYAgA37BWw2PCFn3Tr56qikGoMpXxdPJ8vD7JokXN4rmLuygZMQ5nRTFUSodZtsD735UTDn99ff", + "tprv8jwG6YA1fGe7phE5EFsL5bSMK2EG4UvxHZb69tuajqGqmUas2R4JCA3G9gHeHGt8w71MVDEH7G1pYnqE2GhECtRFDYWpEovnnnnqdRhvS5e" + ], + "txHash": "a0367edacec483e77e2401ed73e035d4fe65b8c456b66175280701cd486af271", + "hex": "020000000271f26a48cd0107287561b656c4b865fed435e073ed01247ee783c4ceda7e36a0000000006a47304402207ff1867ad6e9b7dc7a1d3968113e20965c0ff77ad739e12b17e5dce7fe76e57502202e656dc0f57c3e7884228fe6c0f6161de74842fe2dc4b40296d0e49e118c778a412103206d484ae9751634d0a059acfbee14de2967f9da04159ac8fdd6fa8f1cb486f7ffffffff71f26a48cd0107287561b656c4b865fed435e073ed01247ee783c4ceda7e36a0010000006b483045022100b9115cf9024e5d61a17e6002fb5f9a71c9ecc1f50604c266638bda197579511d0220035b31d1a51a72136c1813e3a90a1e785f94650dc78bd0f0e9f8bbd4422e82d541210318a9bba01a9b343b3469af1ecd27815bdb6797c0eb21b1734a0d0f47290f44faffffffff020ca8f505000000001976a91439890e01e03442581056f0e3f606083cb552f66488ac0ca8f505000000001976a91443802909a4a51575217b553bb5b2670631fdc3cb88ac00000000", + "amounts": [ + 99988225, + 99988225 + ], + "outputs": [ + "bchreg:qqucjrspuq6yykqs2mcw8asxpq7t25hkvs9tlywwcn", + "bchreg:qppcq2gf5jj32afp0d2nhddjvurrrlwrevpdgvew0d" + ] + }, + { + "xprivs": [ + "tprv8jwG6YA1fGe81FvYckTjBt9uYG7XAmBMo59BRnytSBDUcTwTuRk2xidoA75t3b8rBEBnDxc2yV9nG4FiE9eedcwdFfzEg9Jaifqva5AXeQo", + "tprv8jwG6YA1fGe822yK9p2ojos9qESLKr3VXUFHca2jwv5Q32vBqMaMsXgH9S4iXQJVMTq4pPEFT7SWKv4Tx2fP45ktk7CXJaDSQYDCyWZo57T" + ], + "txHash": "860cdbf1c532dcb8b5c1e0a663f826400c55f7ccd7377e4d3bad9fcaa144e204", + "hex": "020000000204e244a1ca9fad3b4d7e37d7ccf7550c4026f863a6e0c1b5b8dc32c5f1db0c86000000006b483045022100cb3c583edc2a4023bcd3bdc1504f8a1584730a86eb3f1e947478cdb06914f9a10220553feed668967a194008d68da28010cf6dab0b9d0bc195d28fdc71f54abd44544121031b276c55b432444553e2739eaf77a98fbd21fb6b1597fea52dfa2a4692350972ffffffff04e244a1ca9fad3b4d7e37d7ccf7550c4026f863a6e0c1b5b8dc32c5f1db0c86010000006a473044022050e8437b4bc64890a1420ad74c0b51bc1d6bf2cc7e889d0e062c9ba41d50205402204b129553250cf13aa0269a048ad3e70fbde3747cd62efbad9d899f31121a795e412103fc35b3829b5fa081121470caa84cb9f4893f3ae542432ae1b1d05443d31f48d6ffffffff02828cf505000000001976a91431bcd80a099174adbd2355f03a3a9d1f39f60cb688ac828cf505000000001976a91405dd4318185a8726ee26bd344a535d7b61af082088ac00000000", + "amounts": [ + 99981175, + 99981175 + ], + "outputs": [ + "bchreg:qqcmekq2pxghftdayd2lqw36n50nnasvkcl4mu5rll", + "bchreg:qqza6sccrpdgwfhwy67ngjjnt4akrtcgyqkrzyar5g" + ] + }, + { + "xprivs": [ + "tprv8jwG6YA1fGe8E31BpkuCMurbLYKyuiaozJkMSqF2pS5UzygRQDh1Wb6uLWA6v9oQPNPHUi3VrxeT766HcJ5ApnDgU51REx1XA5s1f2vVnsN", + "tprv8jwG6YA1fGe8Fnr2eFwWmFMqK6t2YnEbXNLAS44iHmfaubrj7VQ6o1WnqLEG8CD7Q4ghoJbce9W8U2nG7WntiDX3Enk2y3SJuKuJubukkYY" + ], + "txHash": "d0e96087e7b5e684de362792a7e7a1d88b8647568fe372e4f45160eb4b927a67", + "hex": "0200000002677a924beb6051f4e472e38f5647868bd8a1e7a7922736de84e6b5e78760e9d0000000006b483045022100f3a9e17a8b9e2062c51376a9781015da460857165b183b33cad3fc611d28705f022016418087ac42ecfac3b411fbdc39e9a2aa24061e368769b1a782500fbacab9fd412103bf3e95bf65f053d883ed590a8bb3839e4028ffcba86a26d3e8c6ae12af3ed461ffffffff677a924beb6051f4e472e38f5647868bd8a1e7a7922736de84e6b5e78760e9d0010000006b483045022100dd9a7b17336da13c89aa35b5a8c78ad2cf5d62c82d89a9ac9a55a984827864cd02202baaf9b9dbd35da72720559e97b24e31ed54b7a76d120d42f3934d4322f50a08412103ba2abd8d0a84d0ed16c07569581aeebc1619661627527c48a6a7778d529e5cf7ffffffff026ccff505000000001976a914fe64266e2cdee4ed1f9708a71d9e6883451e067088ac6ccff505000000001976a9145ff601b23938962a743651a2bc682fdbae08171088ac00000000", + "amounts": [ + 99998305, + 99998305 + ], + "outputs": [ + "bchreg:qrlxgfnw9n0wfmgljuy2w8v7dzp528sxwqw7rzk9zj", + "bchreg:qp0lvqdj8yufv2n5xeg690rg9ld6uzqhzqy6u6mp8p" + ] + }, + { + "xprivs": [ + "tprv8jwG6YA1fGe8QJVJJ4sFfteUDybajahxa8NhkPgazaUFyEZ66C3WT99KnCuSpd9tbroDRqeD6oBTrjLFm8JMzcUSexbS2NAB8CrGzXS5CCj", + "tprv8jwG6YA1fGe8SiGV9L54byiMzUwms12gLrY8c7MRA6movJxrcnUHSmMqo5G27nET3ecF3ZhGMtXDDCWabhudscgnaxy5iVm1davE9JZ99sX" + ], + "txHash": "be6545f91b961d7b317d23f0b74f433bf4cae002317ebe9721a5b2e938a1887e", + "hex": "02000000027e88a138e9b2a52197be7e3102e0caf43b434fb7f0237d317b1d961bf94565be000000006a473044022016b8d887dcf44f95242a9b6bc5b85a35c71de80c3a5238261aa7c46010a92ce302205ae014669368148d070d3492e954fec156107248e468161c1ad05289a8c0d7454121020a2b22cd2eb901dfd79f12c5e4789223e88f5fadb560dd9a695d4228104a06ecffffffff7e88a138e9b2a52197be7e3102e0caf43b434fb7f0237d317b1d961bf94565be010000006a473044022052fc4bb44921e65ea9b4c57a495e3e10f0c43e69dc355d684bba5d6f8ca903920220642067e7a047964be39f6d4cc35aacf1041c7cf56a9fe1f352cefe97043d872b41210353183b2da1e76e1722a9ec5583ac22a75f6f79a8cfe9606a02ace3072e81ebb3ffffffff02e2b3f505000000001976a9145df278d466856014987fa0f921b5ee28622ac51d88ace2b3f505000000001976a914f9cfec9585d99d929a39644e34b9fc27ddbf65bf88ac00000000", + "amounts": [ + 99991255, + 99991255 + ], + "outputs": [ + "bchreg:qpwly7x5v6zkq9yc07s0jgd4ac5xy2k9r5x0k6h9y5", + "bchreg:qruulmy4shvemy5689jyud9elsnam0m9hu9hxau5rs" + ] + }, + { + "xprivs": [ + "tprv8jwG6YA1fGe8ajHkiGHL6oh97Thw7zBQSWhc5AHyFbLgEr5PnY6akBLpj4hvWcJRUzTD39bLqy4wzT5G8vsXAJBMX21GPTxWeuycvdPnaST", + "tprv8jwG6YA1fGe8dDLRhAmXv5rYxM3G7o8B7wEdKWMrBgCk2A2u8Q2mmhBEX2Xz7YVNUfS44CDuKZkQ552C1ybshigst6G1YvroBN2TrksrFec" + ], + "txHash": "bfc8eb9070d97f34f5b923a07036b1559b5260f5daa0adacb944c235103e68c2", + "hex": "0200000002c2683e1035c244b9acada0daf560529b55b13670a023b9f5347fd97090ebc8bf000000006a473044022073daa422f4825fea6a0d14e3b3574d35eb2ae8acd24a44cacc179e7fcef3d92d0220261e5ca416e98e0bdab9727ecc1fb2af0e14ffd7e1839546fe2af31a48be5784412102611ad099d44f5c6e1c765f36557287da7e190db591ce1b5a59439edb493511b9ffffffffc2683e1035c244b9acada0daf560529b55b13670a023b9f5347fd97090ebc8bf010000006b48304502210094ce1d26331f37f4679e2b3dc7cfb098e383dd54315371522feecd7162db184c02203fb3810d8252e6e208ebb347d58fba97408611dba507058ad0ec7e71d5fa2304412102b1746ad583eb093774063036a847250ac9c424edf1498cae7e7a0bad20df9640ffffffff025898f505000000001976a91495a5bddee9ad7fc612ea237f326c5ac77e751f8888ac5898f505000000001976a9149b6f0485d5dea7e74e66a2207d5f6d1a90fa3c1288ac00000000", + "amounts": [ + 99984205, + 99984205 + ], + "outputs": [ + "bchreg:qz26t0w7axkhl3sjag3h7vnvttrhuagl3q5dznjkdq", + "bchreg:qzdk7py96h020e6wv63zql2ld5dfp73uzg9epp6kug" + ] + } ] }, "fromMany": { @@ -962,6 +1149,83 @@ "bchtest:qzz29p3dccmrrwmptgtgqamectz6vexpturce5juax" ] } + ], + "regtest": [ + { + "xprivs": [ + "tprv8jwG6YA1fGe7r2bbsoGrUt7gSo8auZgv6aSaS59FVjZjRiJkK1SYqPGY3vr9gMEXvfKNzRNjW6VjMRpt3GVwXXF6gT8SgNfdSMarW2mU5JC", + "tprv8jwG6YA1fGe7u7wh93Si5YXPWAm6mZD4MMqEmdPiYzgWUCC3BDJ6Sg8XR14Rw4QmyBFu5fSF7ksjDU3Xk94KAjSY6P3f372X5uk9T3iSugg" + ], + "txHash": "812391dbaf4dc6b39dcbbb85a613a183aea48fb994212449bdbd4dd1b74b3518", + "hex": "020000000218354bb7d14dbdbd49242194b98fa4ae83a113a685bbcb9db3c64dafdb912381000000006a473044022058c446eec373bb5cae046e12a57cbf5f0b85f7c5a022b88ca17e77f72c2f8d7b022049cfdcb56bf6291db71c5fcbe82812f1e1a98c5e083c405b855b9532eb055f85412103dbd4cae70953a0c34550d59120bc8aa6ed6c01adf833c1d9d3118247f6175084ffffffff18354bb7d14dbdbd49242194b98fa4ae83a113a685bbcb9db3c64dafdb912381010000006a473044022045df2a8ccca97dedeb22bf74fc890bc6a2d2998147621b78a208938bf43a2fc4022077b4b5b21a04d27629535e7a44d3e96bf6d10bf84a20d68c1fccdaca41eb5fc8412103b744479db3b9b26ae110236568fdaff6637bb0e7a874154bf3060468fc5de09dffffffff012c3ceb0b000000001976a91456f61499e2617482f2a63e8aceae5e8cc4c16b5a88ac00000000", + "amounts": [ + 99985420, + 99985420 + ], + "outputs": [ + "bchreg:qpt0v9yeufshfqhj5clg4n4wt6xvfstttg5n5z6sx4" + ] + }, + { + "xprivs": [ + "tprv8jwG6YA1fGe85moRDL8ZmSRmsHDxgdje16KyYvnc2N4wzTpXoQQVgygVwUYzEGWeMNTuMZCRGAiReSGNdFm2R5mEmfvTEPpdiqYWWLNmdSk", + "tprv8jwG6YA1fGe86yJEbtnWSGSLZQ9Ep7cRptNFLYChBAfDqnR9EA12hN4eum2wTDd3rgVFrVW97M4yPSHDzEQ2KE3PwnuSvVt87ZQMLoA5zyj" + ], + "txHash": "29aa7fe4cb2ab3a0ab3e8d3d98ef6acd95be66e6c0a2709d58c4991b57fb6a8d", + "hex": "02000000028d6afb571b99c4589d70a2c0e666be95cd6aef983d8d3eaba0b32acbe47faa29000000006b483045022100960f60296536abf61573aa012a91492874a52bfab4ab220ba67011616f309e7002206f48e6d34ff2a91e76b329dff9dc5766a1e9a04030a9529d334b521e459bdc054121023f30c27ee820b656ef9c4286f657b1a3353f9bea94b3fde7446181e080217777ffffffff8d6afb571b99c4589d70a2c0e666be95cd6aef983d8d3eaba0b32acbe47faa29010000006b483045022100a02e8bc1bf5df3a45d79d16aadc1e0256fcc44355896d35179471a71be0934bc0220253d2d57428e05570829bbf18f7d3fb7120a34046797673457edead77749a606412103aa369a3edc60b06b099b20fc624ff5213a44212911e7b89b561ecd2e8089cbd2ffffffff011805eb0b000000001976a914cf0abb634cfdb82c73544f625697eb464b008b0288ac00000000", + "amounts": [ + 99978370, + 99978370 + ], + "outputs": [ + "bchreg:qr8s4wmrfn7mstrn238ky45hadrykqytqg3g07krgt" + ] + }, + { + "xprivs": [ + "tprv8jwG6YA1fGe8Fnr2eFwWmFMqK6t2YnEbXNLAS44iHmfaubrj7VQ6o1WnqLEG8CD7Q4ghoJbce9W8U2nG7WntiDX3Enk2y3SJuKuJubukkYY", + "tprv8jwG6YA1fGe8HbFCHAmLcKgz7Ft8c3LBGACiohF5AdFR6PQLHGfxgyESph9FLm8p7zM4wahBjFCEkgAtSQEyjNCuy8yE8jwpZxfCe1KSwjG" + ], + "txHash": "017232691d2d6d1c6c366943d536a1d1818101a6289a9f544c49fa54dd00c2e1", + "hex": "0200000002e1c200dd54fa494c549f9a28a6018181d1a136d54369366c1c6d2d1d69327201000000006b483045022100bb85f1b6a241a1c594c7686589e62438b2a9d25de106b4a9bb241f05beaed76e02204dd2e495462a448adf73197bfea811d7f76fde1657a988dfaba588ad2b964260412103ba2abd8d0a84d0ed16c07569581aeebc1619661627527c48a6a7778d529e5cf7ffffffffe1c200dd54fa494c549f9a28a6018181d1a136d54369366c1c6d2d1d69327201010000006a47304402202e7f45406b0225cffa0d9de135a9233b98accc9ea2601f3b980bcd030d2dfdc802205c3b32c93bc5321e0040a01b2062a31037f2235ce37e9883f17e0919d1b3ad5841210300251d96a333cb1712a6ce2491670ccf156ba51d56265d23b3f1ca88dc0911d1ffffffff01ec8aeb0b000000001976a914fe7325733cb8a245f39300b3c01eb218f54f8cc188ac00000000", + "amounts": [ + 99995500, + 99995500 + ], + "outputs": [ + "bchreg:qrl8xftn8ju2y30njvqt8sq7kgv02nuvcymle9tr0k" + ] + }, + { + "xprivs": [ + "tprv8jwG6YA1fGe8TDaPJgNPpGg4Lw4ui6ypX9MBJGwgrQEfSifG7sA3L5kX4mif1ToufcMQFfRKavBew5rw9HKcHjjbZBE3zYJFbrAR6QvxZZK", + "tprv8jwG6YA1fGe8WP5MiS2b8JrrqMTcttJ11FMBv9Z8UAzkj3G2NHcxyJsbmjPQ6sX5NLtcVBgcmPFP7mjNZewNZ7A2v6HeofXS6nPvVKXHkoD" + ], + "txHash": "d39387deba6166d99e3fe35a54d715bfccae883c303575e97d555b7c57d1975c", + "hex": "02000000025c97d1577c5b557de97535303c88aeccbf15d7545ae33f9ed96661bade8793d3000000006a47304402206f49ad053ed79c0e7cbeeb0463889e9e51da503bebd6615108455e2e5e23e86e0220510041031e44eb466fbea0ffd5ccc3e749a01e7135d014b0e7050d5d74e9a620412102338993f9038fbff3c595d8a5eca8f36c5c7c1f837f60a2aec1e9bd3f06acbb2dffffffff5c97d1577c5b557de97535303c88aeccbf15d7545ae33f9ed96661bade8793d3010000006a47304402202b47efa8d290ef8bab184ed297a08aecfe772dd1fc889a91664d6127fe32f6b702204f6f83351f81df5703a9fa64c1ba2e1fb418d3944eee025408d6d30ea2907d9d412102101fd2a369bf6ef3e3ae69bd0e3a86f4c9d5670dae8588792ec0dc23a7bed47dffffffff01d853eb0b000000001976a9144156292b93d85702651e163326b0f6374031cb6888ac00000000", + "amounts": [ + 99988450, + 99988450 + ], + "outputs": [ + "bchreg:qpq4v2ftj0v9wqn9rctrxf4s7cm5qvwtdqn2nmkwk7" + ] + }, + { + "xprivs": [ + "tprv8jwG6YA1fGe8fvc31CxrmL81j3Le2iGmkm6HkpC2Mw8ZYKAQMCd5y2UZ8rMFossHwwPVfL28Cjizd2fweeQmPeWtnirBEbZLFZ3LutsE6Q5", + "tprv8jwG6YA1fGe8icVTQp2n5nWJKSLCErHXqGRy6fcby9h1QUN9Nxy6Agxg8atUL687XtwV8bJvotdjVLaZ6rMwea2k9Em2Hk418LkFK79FKgj" + ], + "txHash": "89b1b44fca675b0a8740c7493af3a67be3824985d37ffd52798fccbcc12fb0af", + "hex": "0200000002afb02fc1bccc8f7952fd7fd3854982e37ba6f33a49c740870a5b67ca4fb4b189000000006a47304402203689aab908c142791d5e7c84ab5b5e4cc3332bf921292216464326d489729bb702200f3d31fe6c77482946d7d84571c6a05b78e6ed01813a0c4ac50bd57f01f5ebf4412102747da20b143a15a33c9d7165815f79ede81881044e23066d2fc803d43a21deb2ffffffffafb02fc1bccc8f7952fd7fd3854982e37ba6f33a49c740870a5b67ca4fb4b189010000006b483045022100c574a287502e7f782a244156445b7130bbc7934e5f784a55b3535f83576c667602200f9c636dce7e7414ce0dac5a652ddc9f4ebeb48144cd01f860b2ea8d984b4e134121032bfc541ed6be30e1e02b5f3827a81c4b59426611b697fd202d40cbd65d6e53deffffffff01c41ceb0b000000001976a91484a2862dc63631bb615a16807779c2c5a664c15f88ac00000000", + "amounts": [ + 99981400, + 99981400 + ], + "outputs": [ + "bchreg:qzz29p3dccmrrwmptgtgqamectz6vexptuey04307q" + ] + } ] } }, @@ -1426,6 +1690,53 @@ "script": "OP_RETURN 426974636f696e2043617368", "hex": "0200000001fa9ebcdee96f09e1b5049fe222d16574e0100fa1e538f78b248bd91d26b88edc000000006a4730440220337ccd2d539e25c7b12388e7e416c8e90f4d416b502d0086e83d0ec809f473f2022002143e840c1ae49dc19fe5a5b291f3466c096e5105a26a26e11159916983d3034121026d0446d88c057cdf3b59f4442603609282672c4961c44e738ca48387d911f782ffffffff0208b9eb0b000000001976a914b0cc863e96ed2492f085f2141447d91ce3d51af788ac00000000000000000e6a0c426974636f696e204361736800000000" } + ], + "regtest": [ + { + "xpriv": "tprv8kNvR1z7HT4RJ72z5HGtpPVVrTMY9uVFJh9sbDw62CBU2iKbCUkqjHUSjpT3drDVEWsqrTJqW4C2EEMnb2RueNo6MWtPdPmRnGdx97XZijS", + "txHash": "126d9e84a51b64ca1d88b47f42fdada0ac7fee543e49feffef01114f9f61111e", + "data": "Satoshi Nakamoto", + "amount": 199999344, + "output": "bchreg:qzcvep37jmkjfyhsshepg9z8myww84g67uzu3pgfr3", + "script": "OP_RETURN 5361746f736869204e616b616d6f746f", + "hex": "02000000011e11619f4f1101effffe493e54ee7faca0adfd427fb4881dca641ba5849e6d12000000006a4730440220094fcec3637c1b7473818198558b5b6dcee0026034119927b12c11943d7d894d0220489ed60a6b01d7d4c6146ae36d6dc81a329391d6796c2b851b99ac934f96b4af4121026d0446d88c057cdf3b59f4442603609282672c4961c44e738ca48387d911f782ffffffff0228beeb0b000000001976a914b0cc863e96ed2492f085f2141447d91ce3d51af788ac0000000000000000126a105361746f736869204e616b616d6f746f00000000" + }, + { + "xpriv": "tprv8kNvR1z7HT4RJ72z5HGtpPVVrTMY9uVFJh9sbDw62CBU2iKbCUkqjHUSjpT3drDVEWsqrTJqW4C2EEMnb2RueNo6MWtPdPmRnGdx97XZijS", + "txHash": "0655231b5a008ef23bfaa16ec7b08ae178e81f033834babce84fd4114ea2b226", + "data": "BCHForEveryone", + "amount": 199999016, + "output": "bchreg:qzcvep37jmkjfyhsshepg9z8myww84g67uzu3pgfr3", + "script": "OP_RETURN 424348466f7245766572796f6e65", + "hex": "020000000126b2a24e11d44fe8bcba3438031fe878e18ab0c76ea1fa3bf28e005a1b235506000000006a47304402204d972c018376836ba0b40a0f93b5d93beb2ce9be24d1eff12a9c44eb33e6f2f3022062cf5abf201312f720d8e22eb48ca021da0364edd755f6991a7a6e90f24cd3804121026d0446d88c057cdf3b59f4442603609282672c4961c44e738ca48387d911f782ffffffff02e0bceb0b000000001976a914b0cc863e96ed2492f085f2141447d91ce3d51af788ac0000000000000000106a0e424348466f7245766572796f6e6500000000" + }, + { + "xpriv": "tprv8kNvR1z7HT4RJ72z5HGtpPVVrTMY9uVFJh9sbDw62CBU2iKbCUkqjHUSjpT3drDVEWsqrTJqW4C2EEMnb2RueNo6MWtPdPmRnGdx97XZijS", + "txHash": "6b95aa8764096fb531ae235acbd281935fc7f4fc055992b7060fb36ff3cce8d6", + "data": "chancellor on brink of second bailout for banks", + "amount": 199998688, + "output": "bchreg:qzcvep37jmkjfyhsshepg9z8myww84g67uzu3pgfr3", + "script": "OP_RETURN 6368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73", + "hex": "0200000001d6e8ccf36fb30f06b7925905fcf4c75f9381d2cb5a23ae31b56f096487aa956b000000006a473044022006b7dd030c3eb56ba6993e7f770e7ddb8732132aede642e61af98669f2500c62022029308c95c25a56df4aa7a3eead08d16470d8b827749d747811e2b0581273b28e4121026d0446d88c057cdf3b59f4442603609282672c4961c44e738ca48387d911f782ffffffff0298bbeb0b000000001976a914b0cc863e96ed2492f085f2141447d91ce3d51af788ac0000000000000000316a2f6368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b7300000000" + }, + { + "xpriv": "tprv8kNvR1z7HT4RJ72z5HGtpPVVrTMY9uVFJh9sbDw62CBU2iKbCUkqjHUSjpT3drDVEWsqrTJqW4C2EEMnb2RueNo6MWtPdPmRnGdx97XZijS", + "txHash": "86c1fc1dbbdcb9d42ef174f31a79520547f9da1beec4aed9184fc62ef0ecce9e", + "data": "Tokenize all the things", + "amount": 199998360, + "output": "bchreg:qzcvep37jmkjfyhsshepg9z8myww84g67uzu3pgfr3", + "script": "OP_RETURN 546f6b656e697a6520616c6c20746865207468696e6773", + "hex": "02000000019eceecf02ec64f18d9aec4ee1bdaf9470552791af374f12ed4b9dcbb1dfcc186000000006b483045022100ae630f40cb0d508115f723df49ea2b5c49f141e5623ad5030a7221109db7b86f02201aa411112dcc0a558c342ee539cfc6d9c7e49c1542957bbf52dbe5421d6de7554121026d0446d88c057cdf3b59f4442603609282672c4961c44e738ca48387d911f782ffffffff0250baeb0b000000001976a914b0cc863e96ed2492f085f2141447d91ce3d51af788ac0000000000000000196a17546f6b656e697a6520616c6c20746865207468696e677300000000" + }, + { + "xpriv": "tprv8kNvR1z7HT4RJ72z5HGtpPVVrTMY9uVFJh9sbDw62CBU2iKbCUkqjHUSjpT3drDVEWsqrTJqW4C2EEMnb2RueNo6MWtPdPmRnGdx97XZijS", + "txHash": "dc8eb8261dd98b248bf738e5a10f10e07465d122e29f04b5e1096fe9debc9efa", + "data": "Bitcoin Cash", + "amount": 199998032, + "output": "bchreg:qzcvep37jmkjfyhsshepg9z8myww84g67uzu3pgfr3", + "script": "OP_RETURN 426974636f696e2043617368", + "hex": "0200000001fa9ebcdee96f09e1b5049fe222d16574e0100fa1e538f78b248bd91d26b88edc000000006a4730440220337ccd2d539e25c7b12388e7e416c8e90f4d416b502d0086e83d0ec809f473f2022002143e840c1ae49dc19fe5a5b291f3466c096e5105a26a26e11159916983d3034121026d0446d88c057cdf3b59f4442603609282672c4961c44e738ca48387d911f782ffffffff0208b9eb0b000000001976a914b0cc863e96ed2492f085f2141447d91ce3d51af788ac00000000000000000e6a0c426974636f696e204361736800000000" + } ] }, "bip66": [ From a0b96bc6d55f9f3f15822ad2a2e605def8062ab7 Mon Sep 17 00:00:00 2001 From: haryu703 Date: Sun, 7 Oct 2018 22:56:27 +0900 Subject: [PATCH 109/480] remove bchaddrjs --- README.md | 2 +- package-lock.json | 2351 +++++++++++++++++++++++++++++++++++---------- package.json | 1 - 3 files changed, 1868 insertions(+), 486 deletions(-) diff --git a/README.md b/README.md index a5b1fef9..77847bb5 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,6 @@ Open Source / Creative Commons Listings * [assert](https://www.npmjs.com/package/assert) - MIT * [axios](https://github.com/axios/axios) - MIT * [babel](https://babeljs.io/docs/setup/) - MIT -* [bchaddrjs](https://github.com/bitcoincashjs/bchaddrjs/blob/master/LICENSE) - mit * [bigi](https://www.npmjs.com/package/bigi) - none * [bip21](https://github.com/bigearth/bip21) - ISC * [bip39](https://github.com/bitcoinjs/bip39/blob/master/LICENSE) - ISC @@ -23,6 +22,7 @@ Open Source / Creative Commons Listings * [bitcoinjs-message](https://github.com/bitcoinjs/bitcoinjs-message) - MIT * [bs58](https://www.npmjs.com/package/bs58) - MIT * [buffer](https://www.npmjs.com/package/buffer) - MIT +* [cashaddrjs](https://github.com/bitcoincashjs/cashaddrjs/blob/master/LICENSE) - MIT * [chai](https://www.npmjs.com/package/chai) - MIT * [chalk](https://www.npmjs.com/package/chalk) - MIT * [clear](https://www.npmjs.com/package/clear) - none diff --git a/package-lock.json b/package-lock.json index bf0c1f2f..05f99cb4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,6 +4,126 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@babel/code-frame": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz", + "integrity": "sha1-vXHZsZKvl435FYKdOdQJRFZDmgw=", + "requires": { + "@babel/highlight": "7.0.0-beta.51" + } + }, + "@babel/generator": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.51.tgz", + "integrity": "sha1-bHV1/952HQdIXgS67cA5LG2eMPY=", + "requires": { + "@babel/types": "7.0.0-beta.51", + "jsesc": "^2.5.1", + "lodash": "^4.17.5", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + }, + "dependencies": { + "jsesc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", + "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=" + } + } + }, + "@babel/helper-function-name": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.51.tgz", + "integrity": "sha1-IbSHSiJ8+Z7K/MMKkDAtpaJkBWE=", + "requires": { + "@babel/helper-get-function-arity": "7.0.0-beta.51", + "@babel/template": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.51.tgz", + "integrity": "sha1-MoGy0EWvlcFyzpGyCCXYXqRnZBE=", + "requires": { + "@babel/types": "7.0.0-beta.51" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.51.tgz", + "integrity": "sha1-imw/ZsTSZTUvwHdIT59ugKUauXg=", + "requires": { + "@babel/types": "7.0.0-beta.51" + } + }, + "@babel/highlight": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.51.tgz", + "integrity": "sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0=", + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^3.0.0" + } + }, + "@babel/parser": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.0.0-beta.51.tgz", + "integrity": "sha1-J87C30Cd9gr1gnDtj2qlVAnqhvY=" + }, + "@babel/template": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.51.tgz", + "integrity": "sha1-lgKkCuvPNXrpZ34lMu9fyBD1+/8=", + "requires": { + "@babel/code-frame": "7.0.0-beta.51", + "@babel/parser": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51", + "lodash": "^4.17.5" + } + }, + "@babel/traverse": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.51.tgz", + "integrity": "sha1-mB2vLOw0emIx06odnhgDsDqqpKg=", + "requires": { + "@babel/code-frame": "7.0.0-beta.51", + "@babel/generator": "7.0.0-beta.51", + "@babel/helper-function-name": "7.0.0-beta.51", + "@babel/helper-split-export-declaration": "7.0.0-beta.51", + "@babel/parser": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51", + "debug": "^3.1.0", + "globals": "^11.1.0", + "invariant": "^2.2.0", + "lodash": "^4.17.5" + }, + "dependencies": { + "globals": { + "version": "11.8.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.8.0.tgz", + "integrity": "sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA==" + } + } + }, + "@babel/types": { + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.51.tgz", + "integrity": "sha1-2AK3tUO1g2x3iqaReXq/APPZfqk=", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.5", + "to-fast-properties": "^2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } + } + }, "@sindresorhus/is": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", @@ -29,9 +149,9 @@ } }, "@types/node": { - "version": "10.10.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.10.3.tgz", - "integrity": "sha512-dWk7F3b0m6uDLHero7tsnpAi9r2RGPQHGbb0/VCv7DPJRMFtk3RonY1/29vfJKnheRMBa7+uF+vunlg/mBGlxg==", + "version": "10.11.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.11.4.tgz", + "integrity": "sha512-ojnbBiKkZFYRfQpmtnnWTMw+rzGp/JiystjluW9jgN3VzRwilXddJ6aGQ9V/7iuDG06SBgn7ozW9k3zcAnYjYQ==", "dev": true }, "abbrev": { @@ -240,7 +360,7 @@ }, "async": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "resolved": "http://registry.npmjs.org/async/-/async-1.5.2.tgz", "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", "dev": true }, @@ -1208,263 +1328,1175 @@ "nyc": "*", "standard": "^11.0.1", "tape": "*" - } - }, - "bip38": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", - "integrity": "sha512-22KDak0RDyghFbR0Si7wyq9IgY423YzGYzWLpGeofH3DaolOQqjD3mNN08eFoubKlbyclOQKFwtONMv2SD9V3A==", - "requires": { - "bigi": "^1.2.0", - "browserify-aes": "^1.0.1", - "bs58check": "<3.0.0", - "buffer-xor": "^1.0.2", - "create-hash": "^1.1.1", - "ecurve": "^1.0.0", - "scryptsy": "^2.0.0" - } - }, - "bip39": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", - "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", - "requires": { - "create-hash": "^1.1.0", - "pbkdf2": "^3.0.9", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "unorm": "^1.3.3" - } - }, - "bip66": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", - "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "bip68": { - "version": "github:Bitcoin-com/bip68#aeac5a8c5c1e01dfba79ff3eb824171be004a28c", - "from": "github:Bitcoin-com/bip68#1.0.5" - }, - "bitbox-cli": { - "version": "1.5.12", - "resolved": "https://registry.npmjs.org/bitbox-cli/-/bitbox-cli-1.5.12.tgz", - "integrity": "sha512-SQk02foLnSEi8ZkJFTFLZXEEW/3ribb/YNaF2L/qZ1wtWOcB2uei4v/rmb31TJOseH6MvfZ5Ygl6HzcyCTpYHg==", - "requires": { - "assert": "^1.4.1", - "axios": "^0.17.1", - "babel-cli": "^6.26.0", - "babel-preset-env": "^1.6.1", - "babel-preset-es2015": "^6.24.1", - "babel-preset-flow": "^6.23.0", - "babel-preset-react": "^6.24.1", - "babel-register": "^6.26.0", - "bchaddrjs": "^0.2.1", - "bigi": "^1.4.2", - "bip21": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "bip32-utils": "github:Bitcoin-com/bip32-utils#318df796443311f7e12217542f7f45d3b7791f10", - "bip38": "^2.0.2", - "bip39": "^2.5.0", - "bip66": "^1.1.5", - "bip68": "^1.0.4", - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", - "bitcoin-txdecoder": "0.0.3", - "bitcoincashjs-lib": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", - "bitcoinjs-message": "^2.0.0", - "bs58": "^4.0.1", - "buffer": "^5.1.0", - "chalk": "^2.3.0", - "clear": "0.0.1", - "coininfo": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", - "commander": "^2.13.0", - "cp-file": "^5.0.0", - "ecurve": "^1.0.6", - "figlet": "^1.2.0", - "git-clone": "^0.1.0", - "ini": "^1.3.5", - "mkdirp": "^0.5.1", - "mocha": "^5.0.1", - "node-cmd": "^3.0.0", - "node-emoji": "^1.8.1", - "qrcode": "^1.2.0", - "randombytes": "^2.0.6", - "repl.history": "^0.1.4", - "safe-buffer": "^5.1.2", - "satoshi-bitcoin": "^1.0.4", - "socket.io": "^2.1.1", - "socket.io-client": "^2.1.1", - "touch": "^3.1.0", - "wif": "^2.0.6" }, "dependencies": { - "bip21": { - "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "from": "github:Bitcoin-com/bip21", - "requires": { - "qs": "^6.3.0" - } - }, - "bip32-utils": { - "version": "github:Bitcoin-com/bip32-utils#318df796443311f7e12217542f7f45d3b7791f10", - "from": "github:Bitcoin-com/bip32-utils#0.12.2", - "requires": { - "bitbox-cli": "1.5.*", - "keccak": "^1.3.0", - "nyc": "*", - "standard": "^11.0.1", - "tape": "*" - } - }, - "bip68": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/bip68/-/bip68-1.0.4.tgz", - "integrity": "sha512-O1htyufFTYy3EO0JkHg2CLykdXEtV2ssqw47Gq9A0WByp662xpJnMEB9m43LZjsSDjIAOozWRExlFQk2hlV1XQ==" - }, - "bitcoin-ops": { - "version": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", - "from": "github:Bitcoin-com/bitcoincash-ops" - }, - "bitcoincashjs-lib": { - "version": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", - "from": "github:Bitcoin-com/bitcoincashjs-lib#3.3.4", - "requires": { - "bech32": "^1.1.2", - "bigi": "^1.4.0", - "bip66": "^1.1.0", - "bitcoin-ops": "^1.3.0", - "bs58check": "^2.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.3", - "ecurve": "^1.0.0", - "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "^1.0.1", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "typeforce": "^1.11.3", - "varuint-bitcoin": "^1.0.4", - "wif": "^2.0.1" - } - }, - "coininfo": { - "version": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", - "from": "github:Bitcoin-com/coininfo", + "nyc": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-13.0.1.tgz", + "integrity": "sha512-Op/bjhEF74IMtzMmgYt+ModTeMHoPZzHe4qseUguPBwg5qC6r4rYMBt1L3yRXQIbjUpEqmn24/1xAC/umQGU7w==", "requires": { - "safe-buffer": "^5.1.1" - } - } - } - }, - "bitcoin-ops": { - "version": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", - "from": "github:Bitcoin-com/bitcoincash-ops" - }, - "bitcoin-txdecoder": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/bitcoin-txdecoder/-/bitcoin-txdecoder-0.0.3.tgz", - "integrity": "sha512-pH/eF5hQ65y54U23mzuF42wEj9YWj4WKHAIj2il6b1+oRoi/oyM4Ti3e8nMD8ajippICmyquqbyCZKGq3i4W+A==", - "requires": { - "bitcoinjs-lib": "3.3.*" - } - }, - "bitcoincashjs-lib": { - "version": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", - "from": "github:Bitcoin-com/bitcoincashjs-lib#3.3.4", - "requires": { - "bech32": "^1.1.2", - "bigi": "^1.4.0", - "bip66": "^1.1.0", - "bitcoin-ops": "^1.3.0", - "bs58check": "^2.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.3", - "ecurve": "^1.0.0", - "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "^1.0.1", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "typeforce": "^1.11.3", - "varuint-bitcoin": "^1.0.4", - "wif": "^2.0.1" - }, - "dependencies": { - "bitcoin-ops": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz", - "integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow==" - } - } - }, - "bitcoinjs-lib": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-3.3.2.tgz", - "integrity": "sha512-l5qqvbaK8wwtANPf6oEffykycg4383XgEYdia1rI7/JpGf1jfRWlOUCvx5TiTZS7kyIvY4j/UhIQ2urLsvGkzw==", - "requires": { - "bech32": "^1.1.2", - "bigi": "^1.4.0", - "bip66": "^1.1.0", - "bitcoin-ops": "^1.3.0", - "bs58check": "^2.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.3", - "ecurve": "^1.0.0", - "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "^1.0.1", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "typeforce": "^1.11.3", - "varuint-bitcoin": "^1.0.4", - "wif": "^2.0.1" - }, - "dependencies": { - "bitcoin-ops": { - "version": "1.4.1", - "resolved": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" - } - } - }, - "bitcoinjs-message": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", - "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", - "requires": { - "bs58check": "^2.0.2", - "buffer-equals": "^1.0.3", - "create-hash": "^1.1.2", - "secp256k1": "^3.0.1", - "varuint-bitcoin": "^1.0.1" - } - }, - "blob": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", - "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=" - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" - }, - "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", - "dev": true, - "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^2.0.0", + "convert-source-map": "^1.5.1", + "debug-log": "^1.0.1", + "find-cache-dir": "^2.0.0", + "find-up": "^3.0.0", + "foreground-child": "^1.5.6", + "glob": "^7.1.2", + "istanbul-lib-coverage": "^2.0.1", + "istanbul-lib-hook": "^2.0.1", + "istanbul-lib-instrument": "^2.3.2", + "istanbul-lib-report": "^2.0.1", + "istanbul-lib-source-maps": "^2.0.1", + "istanbul-reports": "^2.0.0", + "make-dir": "^1.3.0", + "merge-source-map": "^1.1.0", + "resolve-from": "^4.0.0", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "spawn-wrap": "^1.4.2", + "test-exclude": "^5.0.0", + "uuid": "^3.3.2", + "yargs": "11.1.0", + "yargs-parser": "^9.0.2" + }, + "dependencies": { + "align-text": { + "version": "0.1.4", + "bundled": true, + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + } + }, + "amdefine": { + "version": "1.0.1", + "bundled": true + }, + "ansi-regex": { + "version": "3.0.0", + "bundled": true + }, + "append-transform": { + "version": "1.0.0", + "bundled": true, + "requires": { + "default-require-extensions": "^2.0.0" + } + }, + "archy": { + "version": "1.0.0", + "bundled": true + }, + "arrify": { + "version": "1.0.1", + "bundled": true + }, + "async": { + "version": "1.5.2", + "bundled": true + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "builtin-modules": { + "version": "1.1.1", + "bundled": true + }, + "caching-transform": { + "version": "2.0.0", + "bundled": true, + "requires": { + "make-dir": "^1.0.0", + "md5-hex": "^2.0.0", + "package-hash": "^2.0.0", + "write-file-atomic": "^2.0.0" + } + }, + "camelcase": { + "version": "1.2.1", + "bundled": true, + "optional": true + }, + "center-align": { + "version": "0.1.3", + "bundled": true, + "optional": true, + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "cliui": { + "version": "2.1.0", + "bundled": true, + "optional": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "bundled": true, + "optional": true + } + } + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "commondir": { + "version": "1.0.1", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "convert-source-map": { + "version": "1.5.1", + "bundled": true + }, + "cross-spawn": { + "version": "4.0.2", + "bundled": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "debug": { + "version": "3.1.0", + "bundled": true, + "requires": { + "ms": "2.0.0" + } + }, + "debug-log": { + "version": "1.0.1", + "bundled": true + }, + "decamelize": { + "version": "1.2.0", + "bundled": true + }, + "default-require-extensions": { + "version": "2.0.0", + "bundled": true, + "requires": { + "strip-bom": "^3.0.0" + } + }, + "error-ex": { + "version": "1.3.2", + "bundled": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es6-error": { + "version": "4.1.1", + "bundled": true + }, + "execa": { + "version": "0.7.0", + "bundled": true, + "requires": { + "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" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "bundled": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + } + } + }, + "find-cache-dir": { + "version": "2.0.0", + "bundled": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "bundled": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "foreground-child": { + "version": "1.5.6", + "bundled": true, + "requires": { + "cross-spawn": "^4", + "signal-exit": "^3.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "get-caller-file": { + "version": "1.0.3", + "bundled": true + }, + "get-stream": { + "version": "3.0.0", + "bundled": true + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "requires": { + "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": { + "version": "4.1.11", + "bundled": true + }, + "handlebars": { + "version": "4.0.11", + "bundled": true, + "requires": { + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "bundled": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "has-flag": { + "version": "3.0.0", + "bundled": true + }, + "hosted-git-info": { + "version": "2.7.1", + "bundled": true + }, + "imurmurhash": { + "version": "0.1.4", + "bundled": true + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "invert-kv": { + "version": "1.0.0", + "bundled": true + }, + "is-arrayish": { + "version": "0.2.1", + "bundled": true + }, + "is-buffer": { + "version": "1.1.6", + "bundled": true + }, + "is-builtin-module": { + "version": "1.0.0", + "bundled": true, + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true + }, + "is-stream": { + "version": "1.1.0", + "bundled": true + }, + "isexe": { + "version": "2.0.0", + "bundled": true + }, + "istanbul-lib-coverage": { + "version": "2.0.1", + "bundled": true + }, + "istanbul-lib-hook": { + "version": "2.0.1", + "bundled": true, + "requires": { + "append-transform": "^1.0.0" + } + }, + "istanbul-lib-report": { + "version": "2.0.1", + "bundled": true, + "requires": { + "istanbul-lib-coverage": "^2.0.1", + "make-dir": "^1.3.0", + "supports-color": "^5.4.0" + } + }, + "istanbul-lib-source-maps": { + "version": "2.0.1", + "bundled": true, + "requires": { + "debug": "^3.1.0", + "istanbul-lib-coverage": "^2.0.1", + "make-dir": "^1.3.0", + "rimraf": "^2.6.2", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "bundled": true + } + } + }, + "istanbul-reports": { + "version": "2.0.0", + "bundled": true, + "requires": { + "handlebars": "^4.0.11" + } + }, + "json-parse-better-errors": { + "version": "1.0.2", + "bundled": true + }, + "kind-of": { + "version": "3.2.2", + "bundled": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "lazy-cache": { + "version": "1.0.4", + "bundled": true, + "optional": true + }, + "lcid": { + "version": "1.0.0", + "bundled": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "load-json-file": { + "version": "4.0.0", + "bundled": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "bundled": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash.flattendeep": { + "version": "4.4.0", + "bundled": true + }, + "longest": { + "version": "1.0.1", + "bundled": true + }, + "lru-cache": { + "version": "4.1.3", + "bundled": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "bundled": true, + "requires": { + "pify": "^3.0.0" + } + }, + "md5-hex": { + "version": "2.0.0", + "bundled": true, + "requires": { + "md5-o-matic": "^0.1.1" + } + }, + "md5-o-matic": { + "version": "0.1.1", + "bundled": true + }, + "mem": { + "version": "1.1.0", + "bundled": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "merge-source-map": { + "version": "1.1.0", + "bundled": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "bundled": true + } + } + }, + "mimic-fn": { + "version": "1.2.0", + "bundled": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.10", + "bundled": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "bundled": true + } + } + }, + "ms": { + "version": "2.0.0", + "bundled": true + }, + "normalize-package-data": { + "version": "2.4.0", + "bundled": true, + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "npm-run-path": { + "version": "2.0.2", + "bundled": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1" + } + }, + "optimist": { + "version": "0.6.1", + "bundled": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true + }, + "os-locale": { + "version": "2.1.0", + "bundled": true, + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "p-finally": { + "version": "1.0.0", + "bundled": true + }, + "p-limit": { + "version": "2.0.0", + "bundled": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "bundled": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.0.0", + "bundled": true + }, + "package-hash": { + "version": "2.0.0", + "bundled": true, + "requires": { + "graceful-fs": "^4.1.11", + "lodash.flattendeep": "^4.4.0", + "md5-hex": "^2.0.0", + "release-zalgo": "^1.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "bundled": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "path-exists": { + "version": "3.0.0", + "bundled": true + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true + }, + "path-key": { + "version": "2.0.1", + "bundled": true + }, + "path-type": { + "version": "3.0.0", + "bundled": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "bundled": true + }, + "pkg-dir": { + "version": "3.0.0", + "bundled": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "pseudomap": { + "version": "1.0.2", + "bundled": true + }, + "read-pkg": { + "version": "3.0.0", + "bundled": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "4.0.0", + "bundled": true, + "requires": { + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" + } + }, + "release-zalgo": { + "version": "1.0.0", + "bundled": true, + "requires": { + "es6-error": "^4.0.1" + } + }, + "repeat-string": { + "version": "1.6.1", + "bundled": true + }, + "require-directory": { + "version": "2.1.1", + "bundled": true + }, + "require-main-filename": { + "version": "1.0.1", + "bundled": true + }, + "resolve-from": { + "version": "4.0.0", + "bundled": true + }, + "right-align": { + "version": "0.1.3", + "bundled": true, + "optional": true, + "requires": { + "align-text": "^0.1.1" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "requires": { + "glob": "^7.0.5" + } + }, + "semver": { + "version": "5.5.0", + "bundled": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true + }, + "shebang-command": { + "version": "1.2.0", + "bundled": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "bundled": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true + }, + "source-map": { + "version": "0.5.7", + "bundled": true, + "optional": true + }, + "spawn-wrap": { + "version": "1.4.2", + "bundled": true, + "requires": { + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" + } + }, + "spdx-correct": { + "version": "3.0.0", + "bundled": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "bundled": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "bundled": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.0", + "bundled": true + }, + "string-width": { + "version": "2.1.1", + "bundled": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "bundled": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "bundled": true + }, + "strip-eof": { + "version": "1.0.0", + "bundled": true + }, + "supports-color": { + "version": "5.4.0", + "bundled": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "test-exclude": { + "version": "5.0.0", + "bundled": true, + "requires": { + "arrify": "^1.0.1", + "minimatch": "^3.0.4", + "read-pkg-up": "^4.0.0", + "require-main-filename": "^1.0.1" + } + }, + "uglify-js": { + "version": "2.8.29", + "bundled": true, + "optional": true, + "requires": { + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "dependencies": { + "yargs": { + "version": "3.10.0", + "bundled": true, + "optional": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "uuid": { + "version": "3.3.2", + "bundled": true + }, + "validate-npm-package-license": { + "version": "3.0.3", + "bundled": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "bundled": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "bundled": true + }, + "window-size": { + "version": "0.1.0", + "bundled": true, + "optional": true + }, + "wordwrap": { + "version": "0.0.3", + "bundled": true + }, + "wrap-ansi": { + "version": "2.1.0", + "bundled": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + }, + "write-file-atomic": { + "version": "2.3.0", + "bundled": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "y18n": { + "version": "3.2.1", + "bundled": true + }, + "yallist": { + "version": "2.1.2", + "bundled": true + }, + "yargs": { + "version": "11.1.0", + "bundled": true, + "requires": { + "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": "^9.0.2" + }, + "dependencies": { + "cliui": { + "version": "4.1.0", + "bundled": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "bundled": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "bundled": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "bundled": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "bundled": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "bundled": true + } + } + }, + "yargs-parser": { + "version": "9.0.2", + "bundled": true, + "requires": { + "camelcase": "^4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "bundled": true + } + } + } + } + } + } + }, + "bip38": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", + "integrity": "sha512-22KDak0RDyghFbR0Si7wyq9IgY423YzGYzWLpGeofH3DaolOQqjD3mNN08eFoubKlbyclOQKFwtONMv2SD9V3A==", + "requires": { + "bigi": "^1.2.0", + "browserify-aes": "^1.0.1", + "bs58check": "<3.0.0", + "buffer-xor": "^1.0.2", + "create-hash": "^1.1.1", + "ecurve": "^1.0.0", + "scryptsy": "^2.0.0" + } + }, + "bip39": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", + "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", + "requires": { + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "unorm": "^1.3.3" + } + }, + "bip66": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", + "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "bip68": { + "version": "github:Bitcoin-com/bip68#aeac5a8c5c1e01dfba79ff3eb824171be004a28c", + "from": "github:Bitcoin-com/bip68#1.0.5" + }, + "bitbox-cli": { + "version": "1.5.12", + "resolved": "https://registry.npmjs.org/bitbox-cli/-/bitbox-cli-1.5.12.tgz", + "integrity": "sha512-SQk02foLnSEi8ZkJFTFLZXEEW/3ribb/YNaF2L/qZ1wtWOcB2uei4v/rmb31TJOseH6MvfZ5Ygl6HzcyCTpYHg==", + "requires": { + "assert": "^1.4.1", + "axios": "^0.17.1", + "babel-cli": "^6.26.0", + "babel-preset-env": "^1.6.1", + "babel-preset-es2015": "^6.24.1", + "babel-preset-flow": "^6.23.0", + "babel-preset-react": "^6.24.1", + "babel-register": "^6.26.0", + "bchaddrjs": "^0.2.1", + "bigi": "^1.4.2", + "bip21": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", + "bip32-utils": "github:Bitcoin-com/bip32-utils#318df796443311f7e12217542f7f45d3b7791f10", + "bip38": "^2.0.2", + "bip39": "^2.5.0", + "bip66": "^1.1.5", + "bip68": "^1.0.4", + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", + "bitcoin-txdecoder": "0.0.3", + "bitcoincashjs-lib": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", + "bitcoinjs-message": "^2.0.0", + "bs58": "^4.0.1", + "buffer": "^5.1.0", + "chalk": "^2.3.0", + "clear": "0.0.1", + "coininfo": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", + "commander": "^2.13.0", + "cp-file": "^5.0.0", + "ecurve": "^1.0.6", + "figlet": "^1.2.0", + "git-clone": "^0.1.0", + "ini": "^1.3.5", + "mkdirp": "^0.5.1", + "mocha": "^5.0.1", + "node-cmd": "^3.0.0", + "node-emoji": "^1.8.1", + "qrcode": "^1.2.0", + "randombytes": "^2.0.6", + "repl.history": "^0.1.4", + "safe-buffer": "^5.1.2", + "satoshi-bitcoin": "^1.0.4", + "socket.io": "^2.1.1", + "socket.io-client": "^2.1.1", + "touch": "^3.1.0", + "wif": "^2.0.6" + } + }, + "bitcoin-ops": { + "version": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", + "from": "github:Bitcoin-com/bitcoincash-ops" + }, + "bitcoin-txdecoder": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/bitcoin-txdecoder/-/bitcoin-txdecoder-0.0.3.tgz", + "integrity": "sha512-pH/eF5hQ65y54U23mzuF42wEj9YWj4WKHAIj2il6b1+oRoi/oyM4Ti3e8nMD8ajippICmyquqbyCZKGq3i4W+A==", + "requires": { + "bitcoinjs-lib": "3.3.*" + } + }, + "bitcoincashjs-lib": { + "version": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", + "from": "github:Bitcoin-com/bitcoincashjs-lib#3.3.4", + "requires": { + "bech32": "^1.1.2", + "bigi": "^1.4.0", + "bip66": "^1.1.0", + "bitcoin-ops": "^1.3.0", + "bs58check": "^2.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.3", + "ecurve": "^1.0.0", + "merkle-lib": "^2.0.10", + "pushdata-bitcoin": "^1.0.1", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "typeforce": "^1.11.3", + "varuint-bitcoin": "^1.0.4", + "wif": "^2.0.1" + } + }, + "bitcoinjs-lib": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-3.3.2.tgz", + "integrity": "sha512-l5qqvbaK8wwtANPf6oEffykycg4383XgEYdia1rI7/JpGf1jfRWlOUCvx5TiTZS7kyIvY4j/UhIQ2urLsvGkzw==", + "requires": { + "bech32": "^1.1.2", + "bigi": "^1.4.0", + "bip66": "^1.1.0", + "bitcoin-ops": "^1.3.0", + "bs58check": "^2.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.3", + "ecurve": "^1.0.0", + "merkle-lib": "^2.0.10", + "pushdata-bitcoin": "^1.0.1", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "typeforce": "^1.11.3", + "varuint-bitcoin": "^1.0.4", + "wif": "^2.0.1" + } + }, + "bitcoinjs-message": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", + "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", + "requires": { + "bs58check": "^2.0.2", + "buffer-equals": "^1.0.3", + "create-hash": "^1.1.2", + "secp256k1": "^3.0.1", + "varuint-bitcoin": "^1.0.1" + } + }, + "blob": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", + "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=" + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, + "boxen": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", + "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "dev": true, + "requires": { + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1638,9 +2670,9 @@ } }, "caniuse-lite": { - "version": "1.0.30000887", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000887.tgz", - "integrity": "sha512-AHpONWuGFWO8yY9igdXH94tikM6ERS84286r0cAMAXYFtJBk76lhiMhtCxBJNBZsD6hzlvpWZ2AtbVFEkf4JQA==" + "version": "1.0.30000889", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000889.tgz", + "integrity": "sha512-MFxcQ6x/LEEoaIhO7Zdb7Eg8YyNONN+WBnS5ERJ0li2yRw51+i4xXUNxnLaveTb/4ZoJqsWKEmlomhG2pYzlQA==" }, "capture-stack-trace": { "version": "1.0.1", @@ -1663,17 +2695,17 @@ } }, "chai": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", - "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", + "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", "dev": true, "requires": { - "assertion-error": "^1.0.1", - "check-error": "^1.0.1", - "deep-eql": "^3.0.0", + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", "get-func-name": "^2.0.0", - "pathval": "^1.0.0", - "type-detect": "^4.0.0" + "pathval": "^1.1.0", + "type-detect": "^4.0.5" } }, "chalk": { @@ -2204,13 +3236,6 @@ "pkg-config": "^1.1.0", "run-parallel": "^1.1.2", "uniq": "^1.0.1" - }, - "dependencies": { - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" - } } }, "del": { @@ -2324,9 +3349,9 @@ } }, "electron-to-chromium": { - "version": "1.3.70", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.70.tgz", - "integrity": "sha512-WYMjqCnPVS5JA+XvwEnpwucJpVi2+q9cdCFpbhxgWGsCtforFBEkuP9+nCyy/wnU/0SyLcLRIeZct9ayMGcXoQ==" + "version": "1.3.75", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.75.tgz", + "integrity": "sha512-nLo03Qpw++8R6BxDZL/B1c8SQvUe/htdgc5LWYHe5YotV2jVvRUMP5AlOmxOsyeOzgMiXrNln2mC05Ixz6vuUQ==" }, "elliptic": { "version": "6.4.1", @@ -2427,16 +3452,16 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "eslint": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.6.0.tgz", - "integrity": "sha512-/eVYs9VVVboX286mBK7bbKnO1yamUy2UCRjiY6MryhQL2PaaXCExsCQ2aO83OeYRhU2eCU/FMFP+tVMoOrzNrA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.6.1.tgz", + "integrity": "sha512-hgrDtGWz368b7Wqf+v1Z69O3ZebNR0+GA7PtDdbmuz4rInFVUV9uw7whjZEiWyLzCjVb5Rs5WRN1TAS6eo7AYA==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "ajv": "^6.5.3", "chalk": "^2.1.0", "cross-spawn": "^6.0.5", - "debug": "^3.1.0", + "debug": "^4.0.1", "doctrine": "^2.1.0", "eslint-scope": "^4.0.0", "eslint-utils": "^1.3.1", @@ -2544,6 +3569,15 @@ "which": "^1.2.9" } }, + "debug": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.0.1.tgz", + "integrity": "sha512-K23FHJ/Mt404FSlp6gSZCevIbTMLX0j3fmHhUEhQ3Wq0FMODW3+cUSoLdy1Gx4polAf4t/lphhmHH35BB8cLYw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, "eslint-scope": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", @@ -2582,9 +3616,9 @@ "dev": true }, "globals": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", - "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", + "version": "11.8.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.8.0.tgz", + "integrity": "sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA==", "dev": true }, "ignore": { @@ -2626,6 +3660,12 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", @@ -2766,12 +3806,20 @@ "minimatch": "^3.0.4", "resolve": "^1.8.1", "semver": "^5.5.0" + }, + "dependencies": { + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + } } }, "eslint-plugin-prettier": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.2.tgz", - "integrity": "sha512-tGek5clmW5swrAx1mdPYM8oThrBE83ePh7LeseZHBWfHVGrHPhKn7Y5zgRMbU/9D5Td9K4CEmUPjGxA7iw98Og==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-2.7.0.tgz", + "integrity": "sha512-CStQYJgALoQBw3FsBzH0VOVDRnJ/ZimUlpLm226U8qgqYJfPOY/CPK6wyRInMxh73HSKg5wyRwdS4BVYYHwokA==", "dev": true, "requires": { "fast-diff": "^1.1.1", @@ -3053,9 +4101,9 @@ } }, "flatmap-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/flatmap-stream/-/flatmap-stream-0.1.0.tgz", - "integrity": "sha512-Nlic4ZRYxikqnK5rj3YoxDVKGGtUjcNDUtvQ7XsdGLZmMwdUYnXf10o1zcXtzEZTBgc6GxeRpQxV/Wu3WPIIHA==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/flatmap-stream/-/flatmap-stream-0.1.1.tgz", + "integrity": "sha512-lAq4tLbm3sidmdCN8G3ExaxH7cUCtP5mgDvrYowsx84dcYkJJ4I28N7gkxA6+YlSXzaGLJYIDEi9WGfXzMiXdw==", "dev": true }, "flow-bin": { @@ -3667,7 +4715,7 @@ }, "get-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, "get-value": { @@ -4005,10 +5053,9 @@ "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==" }, "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" }, "ignore-by-default": { "version": "1.0.1", @@ -4413,6 +5460,25 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, + "istanbul-lib-coverage": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", + "integrity": "sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA==" + }, + "istanbul-lib-instrument": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-2.3.2.tgz", + "integrity": "sha512-l7TD/VnBsIB2OJvSyxaLW/ab1+92dxZNH9wLH7uHPPioy3JZ8tnx2UXUdKmdkgmP2EFPzg64CToUP6dAS3U32Q==", + "requires": { + "@babel/generator": "7.0.0-beta.51", + "@babel/parser": "7.0.0-beta.51", + "@babel/template": "7.0.0-beta.51", + "@babel/traverse": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51", + "istanbul-lib-coverage": "^2.0.1", + "semver": "^5.5.0" + } + }, "isurl": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", @@ -4490,7 +5556,7 @@ }, "json5": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" }, "jsprim": { @@ -4782,12 +5848,13 @@ "optional": true }, "md5.js": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", - "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "requires": { "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, "media-typer": { @@ -4979,9 +6046,9 @@ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" }, "nan": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz", - "integrity": "sha512-F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw==" + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz", + "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==" }, "nanomatch": { "version": "1.2.13", @@ -5112,12 +6179,12 @@ } }, "node-mocks-http": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/node-mocks-http/-/node-mocks-http-1.7.0.tgz", - "integrity": "sha512-AX1jGG87itK38N9UZif1CFYjJDibCOj07d0YGpUsxzglVWJjyJ3R7fxtuK7l6RVCKZteLiQyaTo9UR8rIEESgw==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/node-mocks-http/-/node-mocks-http-1.7.2.tgz", + "integrity": "sha512-n7fj7BzRNjhQuWU/xcoRH/aOOPeLg3qMJx3mUDjwheoEmZGkThhhGMTxJZ5nnSUcXmEU1uS3gFq3VdBMhS5ZxQ==", "dev": true, "requires": { - "accepts": "^1.3.3", + "accepts": "^1.3.5", "depd": "^1.1.0", "fresh": "^0.5.2", "merge-descriptors": "^1.0.1", @@ -5126,7 +6193,7 @@ "net": "^1.0.2", "parseurl": "^1.3.1", "range-parser": "^1.2.0", - "type-is": "^1.6.14" + "type-is": "^1.6.16" } }, "nodemon": { @@ -5563,6 +6630,7 @@ "version": "11.9.0", "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.9.0.tgz", "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", + "dev": true, "requires": { "archy": "^1.0.0", "arrify": "^1.0.1", @@ -5596,6 +6664,7 @@ "align-text": { "version": "0.1.4", "bundled": true, + "dev": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -5604,62 +6673,76 @@ }, "amdefine": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "bundled": true, + "dev": true }, "ansi-styles": { "version": "2.2.1", - "bundled": true + "bundled": true, + "dev": true }, "append-transform": { "version": "0.4.0", "bundled": true, + "dev": true, "requires": { "default-require-extensions": "^1.0.0" } }, "archy": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "arr-diff": { "version": "4.0.0", - "bundled": true + "bundled": true, + "dev": true }, "arr-flatten": { "version": "1.1.0", - "bundled": true + "bundled": true, + "dev": true }, "arr-union": { "version": "3.1.0", - "bundled": true + "bundled": true, + "dev": true }, "array-unique": { "version": "0.3.2", - "bundled": true + "bundled": true, + "dev": true }, "arrify": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "assign-symbols": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "async": { "version": "1.5.2", - "bundled": true + "bundled": true, + "dev": true }, "atob": { "version": "2.1.1", - "bundled": true + "bundled": true, + "dev": true }, "babel-code-frame": { "version": "6.26.0", "bundled": true, + "dev": true, "requires": { "chalk": "^1.1.3", "esutils": "^2.0.2", @@ -5669,6 +6752,7 @@ "babel-generator": { "version": "6.26.1", "bundled": true, + "dev": true, "requires": { "babel-messages": "^6.23.0", "babel-runtime": "^6.26.0", @@ -5683,6 +6767,7 @@ "babel-messages": { "version": "6.23.0", "bundled": true, + "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -5690,6 +6775,7 @@ "babel-runtime": { "version": "6.26.0", "bundled": true, + "dev": true, "requires": { "core-js": "^2.4.0", "regenerator-runtime": "^0.11.0" @@ -5698,6 +6784,7 @@ "babel-template": { "version": "6.26.0", "bundled": true, + "dev": true, "requires": { "babel-runtime": "^6.26.0", "babel-traverse": "^6.26.0", @@ -5709,6 +6796,7 @@ "babel-traverse": { "version": "6.26.0", "bundled": true, + "dev": true, "requires": { "babel-code-frame": "^6.26.0", "babel-messages": "^6.23.0", @@ -5724,6 +6812,7 @@ "babel-types": { "version": "6.26.0", "bundled": true, + "dev": true, "requires": { "babel-runtime": "^6.26.0", "esutils": "^2.0.2", @@ -5733,15 +6822,18 @@ }, "babylon": { "version": "6.18.0", - "bundled": true + "bundled": true, + "dev": true }, "balanced-match": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "base": { "version": "0.11.2", "bundled": true, + "dev": true, "requires": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", @@ -5755,6 +6847,7 @@ "define-property": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -5762,6 +6855,7 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -5769,6 +6863,7 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -5776,6 +6871,7 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -5784,17 +6880,20 @@ }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "brace-expansion": { "version": "1.1.11", "bundled": true, + "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -5803,6 +6902,7 @@ "braces": { "version": "2.3.2", "bundled": true, + "dev": true, "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -5819,6 +6919,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -5827,11 +6928,13 @@ }, "builtin-modules": { "version": "1.1.1", - "bundled": true + "bundled": true, + "dev": true }, "cache-base": { "version": "1.0.1", "bundled": true, + "dev": true, "requires": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", @@ -5846,13 +6949,15 @@ "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "caching-transform": { "version": "1.0.1", "bundled": true, + "dev": true, "requires": { "md5-hex": "^1.2.0", "mkdirp": "^0.5.1", @@ -5862,11 +6967,13 @@ "camelcase": { "version": "1.2.1", "bundled": true, + "dev": true, "optional": true }, "center-align": { "version": "0.1.3", "bundled": true, + "dev": true, "optional": true, "requires": { "align-text": "^0.1.3", @@ -5876,6 +6983,7 @@ "chalk": { "version": "1.1.3", "bundled": true, + "dev": true, "requires": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -5887,6 +6995,7 @@ "class-utils": { "version": "0.3.6", "bundled": true, + "dev": true, "requires": { "arr-union": "^3.1.0", "define-property": "^0.2.5", @@ -5897,19 +7006,22 @@ "define-property": { "version": "0.2.5", "bundled": true, + "dev": true, "requires": { "is-descriptor": "^0.1.0" } }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "cliui": { "version": "2.1.0", "bundled": true, + "dev": true, "optional": true, "requires": { "center-align": "^0.1.1", @@ -5920,17 +7032,20 @@ "wordwrap": { "version": "0.0.2", "bundled": true, + "dev": true, "optional": true } } }, "code-point-at": { "version": "1.1.0", - "bundled": true + "bundled": true, + "dev": true }, "collection-visit": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" @@ -5938,31 +7053,38 @@ }, "commondir": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "component-emitter": { "version": "1.2.1", - "bundled": true + "bundled": true, + "dev": true }, "concat-map": { "version": "0.0.1", - "bundled": true + "bundled": true, + "dev": true }, "convert-source-map": { "version": "1.5.1", - "bundled": true + "bundled": true, + "dev": true }, "copy-descriptor": { "version": "0.1.1", - "bundled": true + "bundled": true, + "dev": true }, "core-js": { "version": "2.5.6", - "bundled": true + "bundled": true, + "dev": true }, "cross-spawn": { "version": "4.0.2", "bundled": true, + "dev": true, "requires": { "lru-cache": "^4.0.1", "which": "^1.2.9" @@ -5971,25 +7093,30 @@ "debug": { "version": "2.6.9", "bundled": true, + "dev": true, "requires": { "ms": "2.0.0" } }, "debug-log": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "decamelize": { "version": "1.2.0", - "bundled": true + "bundled": true, + "dev": true }, "decode-uri-component": { "version": "0.2.0", - "bundled": true + "bundled": true, + "dev": true }, "default-require-extensions": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "strip-bom": "^2.0.0" } @@ -5997,6 +7124,7 @@ "define-property": { "version": "2.0.2", "bundled": true, + "dev": true, "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" @@ -6005,6 +7133,7 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -6012,6 +7141,7 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -6019,6 +7149,7 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -6027,17 +7158,20 @@ }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "detect-indent": { "version": "4.0.0", "bundled": true, + "dev": true, "requires": { "repeating": "^2.0.0" } @@ -6045,21 +7179,25 @@ "error-ex": { "version": "1.3.1", "bundled": true, + "dev": true, "requires": { "is-arrayish": "^0.2.1" } }, "escape-string-regexp": { "version": "1.0.5", - "bundled": true + "bundled": true, + "dev": true }, "esutils": { "version": "2.0.2", - "bundled": true + "bundled": true, + "dev": true }, "execa": { "version": "0.7.0", "bundled": true, + "dev": true, "requires": { "cross-spawn": "^5.0.1", "get-stream": "^3.0.0", @@ -6073,6 +7211,7 @@ "cross-spawn": { "version": "5.1.0", "bundled": true, + "dev": true, "requires": { "lru-cache": "^4.0.1", "shebang-command": "^1.2.0", @@ -6084,6 +7223,7 @@ "expand-brackets": { "version": "2.1.4", "bundled": true, + "dev": true, "requires": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -6097,6 +7237,7 @@ "define-property": { "version": "0.2.5", "bundled": true, + "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -6104,6 +7245,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -6113,6 +7255,7 @@ "extend-shallow": { "version": "3.0.2", "bundled": true, + "dev": true, "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" @@ -6121,6 +7264,7 @@ "is-extendable": { "version": "1.0.1", "bundled": true, + "dev": true, "requires": { "is-plain-object": "^2.0.4" } @@ -6130,6 +7274,7 @@ "extglob": { "version": "2.0.4", "bundled": true, + "dev": true, "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -6144,6 +7289,7 @@ "define-property": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -6151,6 +7297,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -6158,6 +7305,7 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -6165,6 +7313,7 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -6172,6 +7321,7 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -6180,13 +7330,15 @@ }, "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "fill-range": { "version": "4.0.0", "bundled": true, + "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -6197,6 +7349,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -6206,6 +7359,7 @@ "find-cache-dir": { "version": "0.1.1", "bundled": true, + "dev": true, "requires": { "commondir": "^1.0.1", "mkdirp": "^0.5.1", @@ -6215,17 +7369,20 @@ "find-up": { "version": "2.1.0", "bundled": true, + "dev": true, "requires": { "locate-path": "^2.0.0" } }, "for-in": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true }, "foreground-child": { "version": "1.5.6", "bundled": true, + "dev": true, "requires": { "cross-spawn": "^4", "signal-exit": "^3.0.0" @@ -6234,29 +7391,35 @@ "fragment-cache": { "version": "0.2.1", "bundled": true, + "dev": true, "requires": { "map-cache": "^0.2.2" } }, "fs.realpath": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "get-caller-file": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true }, "get-stream": { "version": "3.0.0", - "bundled": true + "bundled": true, + "dev": true }, "get-value": { "version": "2.0.6", - "bundled": true + "bundled": true, + "dev": true }, "glob": { "version": "7.1.2", "bundled": true, + "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -6268,15 +7431,18 @@ }, "globals": { "version": "9.18.0", - "bundled": true + "bundled": true, + "dev": true }, "graceful-fs": { "version": "4.1.11", - "bundled": true + "bundled": true, + "dev": true }, "handlebars": { "version": "4.0.11", "bundled": true, + "dev": true, "requires": { "async": "^1.4.0", "optimist": "^0.6.1", @@ -6287,6 +7453,7 @@ "source-map": { "version": "0.4.4", "bundled": true, + "dev": true, "requires": { "amdefine": ">=0.0.4" } @@ -6296,17 +7463,20 @@ "has-ansi": { "version": "2.0.0", "bundled": true, + "dev": true, "requires": { "ansi-regex": "^2.0.0" } }, "has-flag": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "has-value": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "get-value": "^2.0.6", "has-values": "^1.0.0", @@ -6315,13 +7485,15 @@ "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "has-values": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "is-number": "^3.0.0", "kind-of": "^4.0.0" @@ -6330,6 +7502,7 @@ "is-number": { "version": "3.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -6337,6 +7510,7 @@ "kind-of": { "version": "3.2.2", "bundled": true, + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -6346,6 +7520,7 @@ "kind-of": { "version": "4.0.0", "bundled": true, + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -6354,15 +7529,18 @@ }, "hosted-git-info": { "version": "2.6.0", - "bundled": true + "bundled": true, + "dev": true }, "imurmurhash": { "version": "0.1.4", - "bundled": true + "bundled": true, + "dev": true }, "inflight": { "version": "1.0.6", "bundled": true, + "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -6370,37 +7548,44 @@ }, "inherits": { "version": "2.0.3", - "bundled": true + "bundled": true, + "dev": true }, "invariant": { "version": "2.2.4", "bundled": true, + "dev": true, "requires": { "loose-envify": "^1.0.0" } }, "invert-kv": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "is-accessor-descriptor": { "version": "0.1.6", "bundled": true, + "dev": true, "requires": { "kind-of": "^3.0.2" } }, "is-arrayish": { "version": "0.2.1", - "bundled": true + "bundled": true, + "dev": true }, "is-buffer": { "version": "1.1.6", - "bundled": true + "bundled": true, + "dev": true }, "is-builtin-module": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "builtin-modules": "^1.0.0" } @@ -6408,6 +7593,7 @@ "is-data-descriptor": { "version": "0.1.4", "bundled": true, + "dev": true, "requires": { "kind-of": "^3.0.2" } @@ -6415,6 +7601,7 @@ "is-descriptor": { "version": "0.1.6", "bundled": true, + "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -6423,28 +7610,33 @@ "dependencies": { "kind-of": { "version": "5.1.0", - "bundled": true + "bundled": true, + "dev": true } } }, "is-extendable": { "version": "0.1.1", - "bundled": true + "bundled": true, + "dev": true }, "is-finite": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "is-number": { "version": "3.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^3.0.2" } @@ -6452,60 +7644,72 @@ "is-odd": { "version": "2.0.0", "bundled": true, + "dev": true, "requires": { "is-number": "^4.0.0" }, "dependencies": { "is-number": { "version": "4.0.0", - "bundled": true + "bundled": true, + "dev": true } } }, "is-plain-object": { "version": "2.0.4", "bundled": true, + "dev": true, "requires": { "isobject": "^3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "is-stream": { "version": "1.1.0", - "bundled": true + "bundled": true, + "dev": true }, "is-utf8": { "version": "0.2.1", - "bundled": true + "bundled": true, + "dev": true }, "is-windows": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true }, "isarray": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "isexe": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true }, "istanbul-lib-coverage": { "version": "1.2.0", - "bundled": true + "bundled": true, + "dev": true }, "istanbul-lib-hook": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { "append-transform": "^0.4.0" } @@ -6513,6 +7717,7 @@ "istanbul-lib-instrument": { "version": "1.10.1", "bundled": true, + "dev": true, "requires": { "babel-generator": "^6.18.0", "babel-template": "^6.16.0", @@ -6526,6 +7731,7 @@ "istanbul-lib-report": { "version": "1.1.3", "bundled": true, + "dev": true, "requires": { "istanbul-lib-coverage": "^1.1.2", "mkdirp": "^0.5.1", @@ -6536,6 +7742,7 @@ "supports-color": { "version": "3.2.3", "bundled": true, + "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -6545,6 +7752,7 @@ "istanbul-lib-source-maps": { "version": "1.2.3", "bundled": true, + "dev": true, "requires": { "debug": "^3.1.0", "istanbul-lib-coverage": "^1.1.2", @@ -6556,6 +7764,7 @@ "debug": { "version": "3.1.0", "bundled": true, + "dev": true, "requires": { "ms": "2.0.0" } @@ -6565,21 +7774,25 @@ "istanbul-reports": { "version": "1.4.0", "bundled": true, + "dev": true, "requires": { "handlebars": "^4.0.3" } }, "js-tokens": { "version": "3.0.2", - "bundled": true + "bundled": true, + "dev": true }, "jsesc": { "version": "1.3.0", - "bundled": true + "bundled": true, + "dev": true }, "kind-of": { "version": "3.2.2", "bundled": true, + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -6587,11 +7800,13 @@ "lazy-cache": { "version": "1.0.4", "bundled": true, + "dev": true, "optional": true }, "lcid": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "invert-kv": "^1.0.0" } @@ -6599,6 +7814,7 @@ "load-json-file": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { "graceful-fs": "^4.1.2", "parse-json": "^2.2.0", @@ -6610,6 +7826,7 @@ "locate-path": { "version": "2.0.0", "bundled": true, + "dev": true, "requires": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" @@ -6617,21 +7834,25 @@ "dependencies": { "path-exists": { "version": "3.0.0", - "bundled": true + "bundled": true, + "dev": true } } }, "lodash": { "version": "4.17.10", - "bundled": true + "bundled": true, + "dev": true }, "longest": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "loose-envify": { "version": "1.3.1", "bundled": true, + "dev": true, "requires": { "js-tokens": "^3.0.0" } @@ -6639,6 +7860,7 @@ "lru-cache": { "version": "4.1.3", "bundled": true, + "dev": true, "requires": { "pseudomap": "^1.0.2", "yallist": "^2.1.2" @@ -6646,11 +7868,13 @@ }, "map-cache": { "version": "0.2.2", - "bundled": true + "bundled": true, + "dev": true }, "map-visit": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "object-visit": "^1.0.0" } @@ -6658,17 +7882,20 @@ "md5-hex": { "version": "1.3.0", "bundled": true, + "dev": true, "requires": { "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { "version": "0.1.1", - "bundled": true + "bundled": true, + "dev": true }, "mem": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { "mimic-fn": "^1.0.0" } @@ -6676,19 +7903,22 @@ "merge-source-map": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { "source-map": "^0.6.1" }, "dependencies": { "source-map": { "version": "0.6.1", - "bundled": true + "bundled": true, + "dev": true } } }, "micromatch": { "version": "3.1.10", "bundled": true, + "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -6707,28 +7937,33 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "mimic-fn": { "version": "1.2.0", - "bundled": true + "bundled": true, + "dev": true }, "minimatch": { "version": "3.0.4", "bundled": true, + "dev": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true + "bundled": true, + "dev": true }, "mixin-deep": { "version": "1.3.1", "bundled": true, + "dev": true, "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" @@ -6737,6 +7972,7 @@ "is-extendable": { "version": "1.0.1", "bundled": true, + "dev": true, "requires": { "is-plain-object": "^2.0.4" } @@ -6746,17 +7982,20 @@ "mkdirp": { "version": "0.5.1", "bundled": true, + "dev": true, "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "nanomatch": { "version": "1.2.9", "bundled": true, + "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -6774,21 +8013,25 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true + "bundled": true, + "dev": true }, "array-unique": { "version": "0.3.2", - "bundled": true + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "normalize-package-data": { "version": "2.4.0", "bundled": true, + "dev": true, "requires": { "hosted-git-info": "^2.1.4", "is-builtin-module": "^1.0.0", @@ -6799,21 +8042,25 @@ "npm-run-path": { "version": "2.0.2", "bundled": true, + "dev": true, "requires": { "path-key": "^2.0.0" } }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "object-assign": { "version": "4.1.1", - "bundled": true + "bundled": true, + "dev": true }, "object-copy": { "version": "0.1.0", "bundled": true, + "dev": true, "requires": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", @@ -6823,6 +8070,7 @@ "define-property": { "version": "0.2.5", "bundled": true, + "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -6832,32 +8080,37 @@ "object-visit": { "version": "1.0.1", "bundled": true, + "dev": true, "requires": { "isobject": "^3.0.0" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "object.pick": { "version": "1.3.0", "bundled": true, + "dev": true, "requires": { "isobject": "^3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "once": { "version": "1.4.0", "bundled": true, + "dev": true, "requires": { "wrappy": "1" } @@ -6865,6 +8118,7 @@ "optimist": { "version": "0.6.1", "bundled": true, + "dev": true, "requires": { "minimist": "~0.0.1", "wordwrap": "~0.0.2" @@ -6872,11 +8126,13 @@ }, "os-homedir": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true }, "os-locale": { "version": "2.1.0", "bundled": true, + "dev": true, "requires": { "execa": "^0.7.0", "lcid": "^1.0.0", @@ -6885,11 +8141,13 @@ }, "p-finally": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "p-limit": { "version": "1.2.0", "bundled": true, + "dev": true, "requires": { "p-try": "^1.0.0" } @@ -6897,47 +8155,56 @@ "p-locate": { "version": "2.0.0", "bundled": true, + "dev": true, "requires": { "p-limit": "^1.1.0" } }, "p-try": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "parse-json": { "version": "2.2.0", "bundled": true, + "dev": true, "requires": { "error-ex": "^1.2.0" } }, "pascalcase": { "version": "0.1.1", - "bundled": true + "bundled": true, + "dev": true }, "path-exists": { "version": "2.1.0", "bundled": true, + "dev": true, "requires": { "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "path-key": { "version": "2.0.1", - "bundled": true + "bundled": true, + "dev": true }, "path-parse": { "version": "1.0.5", - "bundled": true + "bundled": true, + "dev": true }, "path-type": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { "graceful-fs": "^4.1.2", "pify": "^2.0.0", @@ -6946,15 +8213,18 @@ }, "pify": { "version": "2.3.0", - "bundled": true + "bundled": true, + "dev": true }, "pinkie": { "version": "2.0.4", - "bundled": true + "bundled": true, + "dev": true }, "pinkie-promise": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "pinkie": "^2.0.0" } @@ -6962,6 +8232,7 @@ "pkg-dir": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "find-up": "^1.0.0" }, @@ -6969,6 +8240,7 @@ "find-up": { "version": "1.1.2", "bundled": true, + "dev": true, "requires": { "path-exists": "^2.0.0", "pinkie-promise": "^2.0.0" @@ -6978,15 +8250,18 @@ }, "posix-character-classes": { "version": "0.1.1", - "bundled": true + "bundled": true, + "dev": true }, "pseudomap": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true }, "read-pkg": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { "load-json-file": "^1.0.0", "normalize-package-data": "^2.3.2", @@ -6996,6 +8271,7 @@ "read-pkg-up": { "version": "1.0.1", "bundled": true, + "dev": true, "requires": { "find-up": "^1.0.0", "read-pkg": "^1.0.0" @@ -7004,6 +8280,7 @@ "find-up": { "version": "1.1.2", "bundled": true, + "dev": true, "requires": { "path-exists": "^2.0.0", "pinkie-promise": "^2.0.0" @@ -7013,11 +8290,13 @@ }, "regenerator-runtime": { "version": "0.11.1", - "bundled": true + "bundled": true, + "dev": true }, "regex-not": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" @@ -7025,42 +8304,51 @@ }, "repeat-element": { "version": "1.1.2", - "bundled": true + "bundled": true, + "dev": true }, "repeat-string": { "version": "1.6.1", - "bundled": true + "bundled": true, + "dev": true }, "repeating": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-finite": "^1.0.0" } }, "require-directory": { "version": "2.1.1", - "bundled": true + "bundled": true, + "dev": true }, "require-main-filename": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "resolve-from": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "resolve-url": { "version": "0.2.1", - "bundled": true + "bundled": true, + "dev": true }, "ret": { "version": "0.1.15", - "bundled": true + "bundled": true, + "dev": true }, "right-align": { "version": "0.1.3", "bundled": true, + "dev": true, "optional": true, "requires": { "align-text": "^0.1.1" @@ -7069,6 +8357,7 @@ "rimraf": { "version": "2.6.2", "bundled": true, + "dev": true, "requires": { "glob": "^7.0.5" } @@ -7076,21 +8365,25 @@ "safe-regex": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { "ret": "~0.1.10" } }, "semver": { "version": "5.5.0", - "bundled": true + "bundled": true, + "dev": true }, "set-blocking": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "set-value": { "version": "2.0.0", "bundled": true, + "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -7101,6 +8394,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -7110,25 +8404,30 @@ "shebang-command": { "version": "1.2.0", "bundled": true, + "dev": true, "requires": { "shebang-regex": "^1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "signal-exit": { "version": "3.0.2", - "bundled": true + "bundled": true, + "dev": true }, "slide": { "version": "1.1.6", - "bundled": true + "bundled": true, + "dev": true }, "snapdragon": { "version": "0.8.2", "bundled": true, + "dev": true, "requires": { "base": "^0.11.1", "debug": "^2.2.0", @@ -7143,6 +8442,7 @@ "define-property": { "version": "0.2.5", "bundled": true, + "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -7150,6 +8450,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -7159,6 +8460,7 @@ "snapdragon-node": { "version": "2.1.1", "bundled": true, + "dev": true, "requires": { "define-property": "^1.0.0", "isobject": "^3.0.0", @@ -7168,6 +8470,7 @@ "define-property": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -7175,6 +8478,7 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -7182,6 +8486,7 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -7189,6 +8494,7 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -7197,28 +8503,33 @@ }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "snapdragon-util": { "version": "3.0.1", "bundled": true, + "dev": true, "requires": { "kind-of": "^3.2.0" } }, "source-map": { "version": "0.5.7", - "bundled": true + "bundled": true, + "dev": true }, "source-map-resolve": { "version": "0.5.1", "bundled": true, + "dev": true, "requires": { "atob": "^2.0.0", "decode-uri-component": "^0.2.0", @@ -7229,11 +8540,13 @@ }, "source-map-url": { "version": "0.4.0", - "bundled": true + "bundled": true, + "dev": true }, "spawn-wrap": { "version": "1.4.2", "bundled": true, + "dev": true, "requires": { "foreground-child": "^1.5.6", "mkdirp": "^0.5.0", @@ -7246,6 +8559,7 @@ "spdx-correct": { "version": "3.0.0", "bundled": true, + "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -7253,11 +8567,13 @@ }, "spdx-exceptions": { "version": "2.1.0", - "bundled": true + "bundled": true, + "dev": true }, "spdx-expression-parse": { "version": "3.0.0", "bundled": true, + "dev": true, "requires": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" @@ -7265,11 +8581,13 @@ }, "spdx-license-ids": { "version": "3.0.0", - "bundled": true + "bundled": true, + "dev": true }, "split-string": { "version": "3.1.0", "bundled": true, + "dev": true, "requires": { "extend-shallow": "^3.0.0" } @@ -7277,6 +8595,7 @@ "static-extend": { "version": "0.1.2", "bundled": true, + "dev": true, "requires": { "define-property": "^0.2.5", "object-copy": "^0.1.0" @@ -7285,6 +8604,7 @@ "define-property": { "version": "0.2.5", "bundled": true, + "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -7294,6 +8614,7 @@ "string-width": { "version": "2.1.1", "bundled": true, + "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" @@ -7301,11 +8622,13 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true + "bundled": true, + "dev": true }, "strip-ansi": { "version": "4.0.0", "bundled": true, + "dev": true, "requires": { "ansi-regex": "^3.0.0" } @@ -7315,6 +8638,7 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, + "dev": true, "requires": { "ansi-regex": "^2.0.0" } @@ -7322,21 +8646,25 @@ "strip-bom": { "version": "2.0.0", "bundled": true, + "dev": true, "requires": { "is-utf8": "^0.2.0" } }, "strip-eof": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "supports-color": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "test-exclude": { "version": "4.2.1", "bundled": true, + "dev": true, "requires": { "arrify": "^1.0.1", "micromatch": "^3.1.8", @@ -7347,15 +8675,18 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true + "bundled": true, + "dev": true }, "array-unique": { "version": "0.3.2", - "bundled": true + "bundled": true, + "dev": true }, "braces": { "version": "2.3.2", "bundled": true, + "dev": true, "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -7372,6 +8703,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -7381,6 +8713,7 @@ "expand-brackets": { "version": "2.1.4", "bundled": true, + "dev": true, "requires": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -7394,6 +8727,7 @@ "define-property": { "version": "0.2.5", "bundled": true, + "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -7401,6 +8735,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -7408,6 +8743,7 @@ "is-accessor-descriptor": { "version": "0.1.6", "bundled": true, + "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -7415,6 +8751,7 @@ "kind-of": { "version": "3.2.2", "bundled": true, + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -7424,6 +8761,7 @@ "is-data-descriptor": { "version": "0.1.4", "bundled": true, + "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -7431,6 +8769,7 @@ "kind-of": { "version": "3.2.2", "bundled": true, + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -7440,6 +8779,7 @@ "is-descriptor": { "version": "0.1.6", "bundled": true, + "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -7448,13 +8788,15 @@ }, "kind-of": { "version": "5.1.0", - "bundled": true + "bundled": true, + "dev": true } } }, "extglob": { "version": "2.0.4", "bundled": true, + "dev": true, "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -7469,6 +8811,7 @@ "define-property": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -7476,6 +8819,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -7485,6 +8829,7 @@ "fill-range": { "version": "4.0.0", "bundled": true, + "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -7495,6 +8840,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -7504,6 +8850,7 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -7511,6 +8858,7 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -7518,6 +8866,7 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -7527,6 +8876,7 @@ "is-number": { "version": "3.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -7534,6 +8884,7 @@ "kind-of": { "version": "3.2.2", "bundled": true, + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -7542,15 +8893,18 @@ }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true }, "micromatch": { "version": "3.1.10", "bundled": true, + "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -7571,11 +8925,13 @@ }, "to-fast-properties": { "version": "1.0.3", - "bundled": true + "bundled": true, + "dev": true }, "to-object-path": { "version": "0.3.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^3.0.2" } @@ -7583,6 +8939,7 @@ "to-regex": { "version": "3.0.2", "bundled": true, + "dev": true, "requires": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", @@ -7593,6 +8950,7 @@ "to-regex-range": { "version": "2.1.1", "bundled": true, + "dev": true, "requires": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" @@ -7601,6 +8959,7 @@ "is-number": { "version": "3.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^3.0.2" } @@ -7609,11 +8968,13 @@ }, "trim-right": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "uglify-js": { "version": "2.8.29", "bundled": true, + "dev": true, "optional": true, "requires": { "source-map": "~0.5.1", @@ -7624,6 +8985,7 @@ "yargs": { "version": "3.10.0", "bundled": true, + "dev": true, "optional": true, "requires": { "camelcase": "^1.0.2", @@ -7637,11 +8999,13 @@ "uglify-to-browserify": { "version": "1.0.2", "bundled": true, + "dev": true, "optional": true }, "union-value": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", @@ -7652,6 +9016,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -7659,6 +9024,7 @@ "set-value": { "version": "0.4.3", "bundled": true, + "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -7671,6 +9037,7 @@ "unset-value": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "has-value": "^0.3.1", "isobject": "^3.0.0" @@ -7679,6 +9046,7 @@ "has-value": { "version": "0.3.1", "bundled": true, + "dev": true, "requires": { "get-value": "^2.0.3", "has-values": "^0.1.4", @@ -7688,6 +9056,7 @@ "isobject": { "version": "2.1.0", "bundled": true, + "dev": true, "requires": { "isarray": "1.0.0" } @@ -7696,34 +9065,40 @@ }, "has-values": { "version": "0.1.4", - "bundled": true + "bundled": true, + "dev": true }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "urix": { "version": "0.1.0", - "bundled": true + "bundled": true, + "dev": true }, "use": { "version": "3.1.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^6.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "validate-npm-package-license": { "version": "3.0.3", "bundled": true, + "dev": true, "requires": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -7732,26 +9107,31 @@ "which": { "version": "1.3.0", "bundled": true, + "dev": true, "requires": { "isexe": "^2.0.0" } }, "which-module": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "window-size": { "version": "0.1.0", "bundled": true, + "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "bundled": true + "bundled": true, + "dev": true }, "wrap-ansi": { "version": "2.1.0", "bundled": true, + "dev": true, "requires": { "string-width": "^1.0.1", "strip-ansi": "^3.0.1" @@ -7760,6 +9140,7 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "number-is-nan": "^1.0.0" } @@ -7767,6 +9148,7 @@ "string-width": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -7777,11 +9159,13 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true }, "write-file-atomic": { "version": "1.3.4", "bundled": true, + "dev": true, "requires": { "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", @@ -7790,15 +9174,18 @@ }, "y18n": { "version": "3.2.1", - "bundled": true + "bundled": true, + "dev": true }, "yallist": { "version": "2.1.2", - "bundled": true + "bundled": true, + "dev": true }, "yargs": { "version": "11.1.0", "bundled": true, + "dev": true, "requires": { "cliui": "^4.0.0", "decamelize": "^1.1.1", @@ -7816,15 +9203,18 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true + "bundled": true, + "dev": true }, "camelcase": { "version": "4.1.0", - "bundled": true + "bundled": true, + "dev": true }, "cliui": { "version": "4.1.0", "bundled": true, + "dev": true, "requires": { "string-width": "^2.1.1", "strip-ansi": "^4.0.0", @@ -7834,6 +9224,7 @@ "strip-ansi": { "version": "4.0.0", "bundled": true, + "dev": true, "requires": { "ansi-regex": "^3.0.0" } @@ -7841,6 +9232,7 @@ "yargs-parser": { "version": "9.0.2", "bundled": true, + "dev": true, "requires": { "camelcase": "^4.1.0" } @@ -7850,13 +9242,15 @@ "yargs-parser": { "version": "8.1.0", "bundled": true, + "dev": true, "requires": { "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { "version": "4.1.0", - "bundled": true + "bundled": true, + "dev": true } } } @@ -7974,19 +9368,19 @@ } }, "openid-client": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-2.4.1.tgz", - "integrity": "sha512-x4YkoRVGLWG7VfLdm6abHV8LpcWU6BSQYmUaQcZX9sLrFHuhytaoiz/4Lf6VtrSA6/9qL4OaUMe/mgCwh2LwCw==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-2.4.2.tgz", + "integrity": "sha512-8HP7SCamsQKC8JGosk0Hs+qXfDyO5lojRW+gE6uW8Tjh4h/B8HzZeppyzo27p1Au0ziTKbI+umHuyZST/t6jXQ==", "dev": true, "requires": { "base64url": "^3.0.0", - "got": "^8.3.1", - "lodash": "^4.17.10", + "got": "^8.3.2", + "lodash": "^4.17.11", "lru-cache": "^4.1.3", "node-jose": "^1.0.0", "oidc-token-hash": "^3.0.1", "p-any": "^1.1.0", - "uuid": "^3.2.1" + "uuid": "^3.3.2" } }, "optionator": { @@ -8054,7 +9448,7 @@ }, "p-is-promise": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", "dev": true }, @@ -8271,9 +9665,9 @@ } }, "pbkdf2": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", - "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", + "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", "requires": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", @@ -8477,18 +9871,12 @@ "integrity": "sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=", "requires": { "bitcoin-ops": "^1.3.0" - }, - "dependencies": { - "bitcoin-ops": { - "version": "1.4.1", - "resolved": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" - } } }, "qrcode": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.2.2.tgz", - "integrity": "sha512-iHD3eGma3PMaIfvM+p6oaTZjz83PsEIJ5F4H3oqyfKbQM+kbWjJjHdnTRlzi9q0KoiJ9QFKfiNhkEAYOWTTDdw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.3.0.tgz", + "integrity": "sha512-HFE7drEGhVoPxL1Ilm/zV+wkNJzUa8zL2nXP30vzo78EXAnHPStVOt2iZUIOfgmELtAbSkw/Z8igqu/TbNDGrQ==", "requires": { "can-promise": "^0.0.1", "dijkstrajs": "^1.0.1", @@ -8511,7 +9899,7 @@ }, "query-string": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "resolved": "http://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", "dev": true, "requires": { @@ -8926,9 +10314,9 @@ } }, "regexpp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.0.tgz", - "integrity": "sha512-g2FAVtR8Uh8GO1Nv5wpxW7VFVwHcCEr4wyA8/MHiRkO8uHoR5ntAA8Uq3P1vvMTX/BeQiRVSpDGLd+Wn5HNOTA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", "dev": true }, "regexpu-core": { @@ -9148,9 +10536,9 @@ } }, "rxjs": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.2.tgz", - "integrity": "sha512-hV7criqbR0pe7EeL3O66UYVg92IR0XsA97+9y+BWTePK9SKmEI5Qd3Zj6uPnGkNzXsBywBQWTvujPl+1Kn9Zjw==", + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", + "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", "dev": true, "requires": { "tslib": "^1.9.0" @@ -9522,18 +10910,18 @@ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, "spdx-correct": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz", + "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==", "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" }, "spdx-expression-parse": { "version": "3.0.0", @@ -9669,11 +11057,6 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-11.8.0.tgz", "integrity": "sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA==" }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" - }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", @@ -9786,7 +11169,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "^2.0.0" @@ -9926,7 +11309,7 @@ }, "text-encoding": { "version": "0.6.4", - "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", + "resolved": "http://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", "integrity": "sha1-45mpgiV6J22uQou5KEXLcb3CbRk=", "dev": true }, @@ -10077,9 +11460,9 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "typeforce": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.12.0.tgz", - "integrity": "sha512-fvnkvueAOFLhtAqDgIA/wMP21SMwS/NQESFKZuwVrj5m/Ew6eK2S0z0iB++cwtROPWDOhaT6OUfla8UwMw4Adg==" + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.13.2.tgz", + "integrity": "sha512-NBEHFw7hWhzFtr/D73xffwlk7l6QjExtSrS9nhg9VeU5U94tJIeNLgN74bm6V+pUaN8RF14QhL+wXItZJBMJBA==" }, "ultron": { "version": "1.1.1", diff --git a/package.json b/package.json index 7f95e136..e7a7518c 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,6 @@ "babel-preset-flow": "^6.23.0", "babel-preset-react": "^6.24.1", "babel-register": "^6.26.0", - "bchaddrjs": "^0.2.2", "bigi": "^1.4.2", "bip21": "Bitcoin-com/bip21", "bip32-utils": "Bitcoin-com/bip32-utils#0.12.2", From 3265fd391c827f189e9fd9eeef23e15b7f025157 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sun, 7 Oct 2018 08:30:27 -0700 Subject: [PATCH 110/480] Bump v to 1.8.0 --- index.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 8e21dfd3..807301ea 100755 --- a/index.js +++ b/index.js @@ -17,7 +17,7 @@ const BITBOXCli = require("./lib/bitbox-cli").default const clone = require("git-clone") const cmd = require("node-cmd") -program.version("1.7.1", "-v, --version") +program.version("1.8.0", "-v, --version") program .command("new ") diff --git a/package.json b/package.json index e7a7518c..081312f9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.7.1", + "version": "1.8.0", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", From 1cc3c180f8acfbf45034df97a27f0fed9eab8c46 Mon Sep 17 00:00:00 2001 From: haryu703 Date: Mon, 8 Oct 2018 10:53:25 +0900 Subject: [PATCH 111/480] fix typo --- lib/Mnemonic.d.ts | 2 +- typings/Mnemonic.d.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/Mnemonic.d.ts b/lib/Mnemonic.d.ts index 688e5fcf..f839d318 100644 --- a/lib/Mnemonic.d.ts +++ b/lib/Mnemonic.d.ts @@ -7,6 +7,6 @@ export declare interface Mnemonic { validate(mnemonic: string, wordlist?: string[]): boolean; toSeed(mnemonic: string, passphrase?: string): Buffer; wordLists(): any; - toKeypairs(mnemonic: string, numberOfKeypairs?: number, rgetest?: boolean): { privateKeyWIF: string, address: string}[]; + toKeypairs(mnemonic: string, numberOfKeypairs?: number, regtest?: boolean): { privateKeyWIF: string, address: string}[]; findNearestWord(word: string, wordlist: string[]): string; } \ No newline at end of file diff --git a/typings/Mnemonic.d.ts b/typings/Mnemonic.d.ts index 688e5fcf..f839d318 100644 --- a/typings/Mnemonic.d.ts +++ b/typings/Mnemonic.d.ts @@ -7,6 +7,6 @@ export declare interface Mnemonic { validate(mnemonic: string, wordlist?: string[]): boolean; toSeed(mnemonic: string, passphrase?: string): Buffer; wordLists(): any; - toKeypairs(mnemonic: string, numberOfKeypairs?: number, rgetest?: boolean): { privateKeyWIF: string, address: string}[]; + toKeypairs(mnemonic: string, numberOfKeypairs?: number, regtest?: boolean): { privateKeyWIF: string, address: string}[]; findNearestWord(word: string, wordlist: string[]): string; } \ No newline at end of file From a033491dbe610a4f939386494c2e90f552a4c798 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Mon, 8 Oct 2018 11:18:54 -0700 Subject: [PATCH 112/480] V --- index.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 807301ea..e053c17e 100755 --- a/index.js +++ b/index.js @@ -17,7 +17,7 @@ const BITBOXCli = require("./lib/bitbox-cli").default const clone = require("git-clone") const cmd = require("node-cmd") -program.version("1.8.0", "-v, --version") +program.version("1.8.1", "-v, --version") program .command("new ") diff --git a/package.json b/package.json index 081312f9..acbd3b16 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-cli", - "version": "1.8.0", + "version": "1.8.1", "description": "BITBOX javascript sdk for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", From 303377f28cbdd99c71dfe2e59ae8fcd4ff2ee2dd Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 9 Oct 2018 12:50:27 -0700 Subject: [PATCH 113/480] Update to bitbox-sdk --- README.md | 4 +- .../wallet/check-balance/check-balance.js | 2 +- .../wallet/create-wallet/create-wallet.js | 2 +- .../applications/wallet/send-bch/send-bch.js | 2 +- .../address-details/address-details.js | 2 +- examples/low-level/utxo-address/get-utxos.js | 2 +- index.js | 2 +- package-lock.json | 4576 ++++++++--------- package.json | 6 +- test/Address.js | 758 +-- test/BitcoinCash.js | 2 +- test/Block.js | 2 +- test/Blockchain.js | 2 +- test/Control.js | 2 +- test/Crypto.js | 2 +- test/ECPair.js | 2 +- test/Generating.js | 2 +- test/HDNode.js | 2 +- test/Mining.js | 2 +- test/Mnemonic.js | 2 +- test/Network.js | 2 +- test/Price.js | 2 +- test/RawTransactions.js | 2 +- test/Script.js | 2 +- test/Transaction.js | 2 +- test/TransactionBuilder.js | 2 +- test/Util.js | 2 +- 27 files changed, 2692 insertions(+), 2698 deletions(-) diff --git a/README.md b/README.md index 77847bb5..a0eb40ee 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# `bitbox-cli` +# `bitbox-sdk` ## Command line tool for https://developer.bitcoin.com/bitbox.html -`bitbox-cli` is a utility for creating great [Bitcoin Cash](https://www.bitcoincash.org) applications. If can be used from the command line or from within client/server apps. +`bitbox-sdk` is a utility for creating great [Bitcoin Cash](https://www.bitcoincash.org) applications. If can be used from the command line or from within client/server apps. Extensive documentation available at: diff --git a/examples/applications/wallet/check-balance/check-balance.js b/examples/applications/wallet/check-balance/check-balance.js index f9077365..370dcddb 100644 --- a/examples/applications/wallet/check-balance/check-balance.js +++ b/examples/applications/wallet/check-balance/check-balance.js @@ -6,7 +6,7 @@ "use strict" // Instantiate BITBOX. -const bitboxLib = "../../../../lib/bitbox-cli" +const bitboxLib = "../../../../lib/bitbox-sdk" const BITBOXCli = require(bitboxLib).default const BITBOX = new BITBOXCli({ restURL: "https://trest.bitcoin.com/v1/" }) diff --git a/examples/applications/wallet/create-wallet/create-wallet.js b/examples/applications/wallet/create-wallet/create-wallet.js index d7b72d2a..677678ff 100644 --- a/examples/applications/wallet/create-wallet/create-wallet.js +++ b/examples/applications/wallet/create-wallet/create-wallet.js @@ -6,7 +6,7 @@ "use strict" // Instantiate BITBOX. -const bitboxLib = "../../../../lib/bitbox-cli" +const bitboxLib = "../../../../lib/bitbox-sdk" const BITBOXCli = require(bitboxLib).default const BITBOX = new BITBOXCli({ restURL: "https://trest.bitcoin.com/v1/" }) diff --git a/examples/applications/wallet/send-bch/send-bch.js b/examples/applications/wallet/send-bch/send-bch.js index 8ef6ae46..a983a93f 100644 --- a/examples/applications/wallet/send-bch/send-bch.js +++ b/examples/applications/wallet/send-bch/send-bch.js @@ -5,7 +5,7 @@ "use strict" // Instantiate BITBOX. -const bitboxLib = "../../../../lib/bitbox-cli" +const bitboxLib = "../../../../lib/bitbox-sdk" const BITBOXCli = require(bitboxLib).default //const BITBOX = new BITBOXCli({ restURL: "https://trest.bitcoin.com/v1/" }) const BITBOX = new BITBOXCli({ restURL: "htts://localhost:3000/v1/" }) diff --git a/examples/low-level/address-details/address-details.js b/examples/low-level/address-details/address-details.js index a48610bf..e0b4251d 100644 --- a/examples/low-level/address-details/address-details.js +++ b/examples/low-level/address-details/address-details.js @@ -6,7 +6,7 @@ "use strict" // Instantiate BITBOX. -const bitboxLib = "../../../lib/bitbox-cli" +const bitboxLib = "../../../lib/bitbox-sdk" const BITBOXCli = require(bitboxLib).default //const BITBOX = new BITBOXCli({ restURL: "https://trest.bitcoin.com/v1/" }) const BITBOX = new BITBOXCli({ restURL: "htts://localhost:3000/v1/" }) diff --git a/examples/low-level/utxo-address/get-utxos.js b/examples/low-level/utxo-address/get-utxos.js index c99e4ddc..0e434f43 100644 --- a/examples/low-level/utxo-address/get-utxos.js +++ b/examples/low-level/utxo-address/get-utxos.js @@ -6,7 +6,7 @@ "use strict" // Instantiate BITBOX. -const bitboxLib = "../../../lib/bitbox-cli" +const bitboxLib = "../../../lib/bitbox-sdk" const BITBOXCli = require(bitboxLib).default //const BITBOX = new BITBOXCli({ restURL: "https://trest.bitcoin.com/v1/" }) const BITBOX = new BITBOXCli({ restURL: "htts://localhost:3000/v1/" }) diff --git a/index.js b/index.js index e053c17e..2c3fb4ae 100755 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ const touch = require("touch") const emoji = require("node-emoji") const repl = require("repl") const ini = require("ini") -const BITBOXCli = require("./lib/bitbox-cli").default +const BITBOXCli = require("./lib/bitbox-sdk").default const clone = require("git-clone") const cmd = require("node-cmd") diff --git a/package-lock.json b/package-lock.json index 05f99cb4..136a62c9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { - "name": "bitbox-cli", - "version": "1.7.1", + "name": "bitbox-sdk", + "version": "1.8.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -18,10 +18,10 @@ "integrity": "sha1-bHV1/952HQdIXgS67cA5LG2eMPY=", "requires": { "@babel/types": "7.0.0-beta.51", - "jsesc": "^2.5.1", - "lodash": "^4.17.5", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" + "jsesc": "2.5.1", + "lodash": "4.17.11", + "source-map": "0.5.7", + "trim-right": "1.0.1" }, "dependencies": { "jsesc": { @@ -62,9 +62,9 @@ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.51.tgz", "integrity": "sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0=", "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^3.0.0" + "chalk": "2.4.1", + "esutils": "2.0.2", + "js-tokens": "3.0.2" } }, "@babel/parser": { @@ -80,7 +80,7 @@ "@babel/code-frame": "7.0.0-beta.51", "@babel/parser": "7.0.0-beta.51", "@babel/types": "7.0.0-beta.51", - "lodash": "^4.17.5" + "lodash": "4.17.11" } }, "@babel/traverse": { @@ -94,10 +94,10 @@ "@babel/helper-split-export-declaration": "7.0.0-beta.51", "@babel/parser": "7.0.0-beta.51", "@babel/types": "7.0.0-beta.51", - "debug": "^3.1.0", - "globals": "^11.1.0", - "invariant": "^2.2.0", - "lodash": "^4.17.5" + "debug": "3.1.0", + "globals": "11.8.0", + "invariant": "2.2.4", + "lodash": "4.17.11" }, "dependencies": { "globals": { @@ -112,9 +112,9 @@ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.51.tgz", "integrity": "sha1-2AK3tUO1g2x3iqaReXq/APPZfqk=", "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.5", - "to-fast-properties": "^2.0.0" + "esutils": "2.0.2", + "lodash": "4.17.11", + "to-fast-properties": "2.0.0" }, "dependencies": { "to-fast-properties": { @@ -145,7 +145,7 @@ "integrity": "sha512-5x2kFgJYupaF1ns/RmharQ90lQkd2ELS8A9X0ymkAAdemYHGtI2KiUHG8nX2WU0T1qgnOU5YMqnBM2V7NUanNw==", "dev": true, "requires": { - "array-from": "^2.1.1" + "array-from": "2.1.1" } }, "@types/node": { @@ -164,7 +164,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "requires": { - "mime-types": "~2.1.18", + "mime-types": "2.1.20", "negotiator": "0.6.1" } }, @@ -178,7 +178,7 @@ "resolved": "http://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "requires": { - "acorn": "^3.0.4" + "acorn": "3.3.0" }, "dependencies": { "acorn": { @@ -199,8 +199,8 @@ "integrity": "sha1-iINE2tAiCnLjr1CQYRf0h3GSX6w=", "dev": true, "requires": { - "clean-stack": "^1.0.0", - "indent-string": "^3.0.0" + "clean-stack": "1.3.0", + "indent-string": "3.2.0" } }, "ajv": { @@ -208,10 +208,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" } }, "ajv-keywords": { @@ -225,7 +225,7 @@ "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "dev": true, "requires": { - "string-width": "^2.0.0" + "string-width": "2.1.1" } }, "ansi-escapes": { @@ -249,8 +249,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "optional": true, "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" + "micromatch": "2.3.11", + "normalize-path": "2.1.1" } }, "argparse": { @@ -258,7 +258,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "~1.0.2" + "sprintf-js": "1.0.3" } }, "arr-diff": { @@ -267,7 +267,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "optional": true, "requires": { - "arr-flatten": "^1.0.1" + "arr-flatten": "1.1.0" } }, "arr-flatten": { @@ -291,8 +291,8 @@ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.7.0" + "define-properties": "1.1.3", + "es-abstract": "1.12.0" } }, "array-union": { @@ -300,7 +300,7 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "requires": { - "array-uniq": "^1.0.1" + "array-uniq": "1.0.3" } }, "array-uniq": { @@ -330,7 +330,7 @@ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, "requires": { - "safer-buffer": "~2.1.0" + "safer-buffer": "2.1.2" } }, "assert": { @@ -402,8 +402,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=", "requires": { - "follow-redirects": "^1.2.5", - "is-buffer": "^1.1.5" + "follow-redirects": "1.5.8", + "is-buffer": "1.1.6" } }, "babel-cli": { @@ -411,21 +411,21 @@ "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", "requires": { - "babel-core": "^6.26.0", - "babel-polyfill": "^6.26.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "chokidar": "^1.6.1", - "commander": "^2.11.0", - "convert-source-map": "^1.5.0", - "fs-readdir-recursive": "^1.0.0", - "glob": "^7.1.2", - "lodash": "^4.17.4", - "output-file-sync": "^1.1.2", - "path-is-absolute": "^1.0.1", - "slash": "^1.0.0", - "source-map": "^0.5.6", - "v8flags": "^2.1.1" + "babel-core": "6.26.3", + "babel-polyfill": "6.26.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "chokidar": "1.7.0", + "commander": "2.18.0", + "convert-source-map": "1.6.0", + "fs-readdir-recursive": "1.1.0", + "glob": "7.1.3", + "lodash": "4.17.11", + "output-file-sync": "1.1.2", + "path-is-absolute": "1.0.1", + "slash": "1.0.0", + "source-map": "0.5.7", + "v8flags": "2.1.1" } }, "babel-code-frame": { @@ -433,9 +433,9 @@ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" }, "dependencies": { "chalk": { @@ -443,11 +443,11 @@ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { - "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" + "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" } } } @@ -457,25 +457,25 @@ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.1", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.6.0", + "debug": "2.6.9", + "json5": "0.5.1", + "lodash": "4.17.11", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "slash": "1.0.0", + "source-map": "0.5.7" }, "dependencies": { "debug": { @@ -493,14 +493,14 @@ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.11", + "source-map": "0.5.7", + "trim-right": "1.0.1" } }, "babel-helper-builder-binary-assignment-operator-visitor": { @@ -508,9 +508,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "requires": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-explode-assignable-expression": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-builder-react-jsx": { @@ -518,9 +518,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "esutils": "^2.0.2" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "esutils": "2.0.2" } }, "babel-helper-call-delegate": { @@ -528,10 +528,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-define-map": { @@ -539,10 +539,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.11" } }, "babel-helper-explode-assignable-expression": { @@ -550,9 +550,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-function-name": { @@ -560,11 +560,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "requires": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-get-function-arity": { @@ -572,8 +572,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-hoist-variables": { @@ -581,8 +581,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-optimise-call-expression": { @@ -590,8 +590,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-regex": { @@ -599,9 +599,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.11" } }, "babel-helper-remap-async-to-generator": { @@ -609,11 +609,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-replace-supers": { @@ -621,12 +621,12 @@ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "requires": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-optimise-call-expression": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helpers": { @@ -634,8 +634,8 @@ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-messages": { @@ -643,7 +643,7 @@ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-check-es2015-constants": { @@ -651,7 +651,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-syntax-async-functions": { @@ -684,9 +684,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-functions": "6.13.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-arrow-functions": { @@ -694,7 +694,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -702,7 +702,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -710,11 +710,11 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "requires": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.11" } }, "babel-plugin-transform-es2015-classes": { @@ -722,15 +722,15 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "requires": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-define-map": "6.26.0", + "babel-helper-function-name": "6.24.1", + "babel-helper-optimise-call-expression": "6.24.1", + "babel-helper-replace-supers": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-computed-properties": { @@ -738,8 +738,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-destructuring": { @@ -747,7 +747,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -755,8 +755,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-for-of": { @@ -764,7 +764,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -772,9 +772,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-literals": { @@ -782,7 +782,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -790,9 +790,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -800,10 +800,10 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-modules-systemjs": { @@ -811,9 +811,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-modules-umd": { @@ -821,9 +821,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "requires": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-object-super": { @@ -831,8 +831,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "requires": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" + "babel-helper-replace-supers": "6.24.1", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -840,12 +840,12 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "requires": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-call-delegate": "6.24.1", + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-shorthand-properties": { @@ -853,8 +853,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-spread": { @@ -862,7 +862,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -870,9 +870,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-template-literals": { @@ -880,7 +880,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -888,7 +888,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -896,9 +896,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "regexpu-core": "2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -906,9 +906,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", + "babel-plugin-syntax-exponentiation-operator": "6.13.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-flow-strip-types": { @@ -916,8 +916,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", "requires": { - "babel-plugin-syntax-flow": "^6.18.0", - "babel-runtime": "^6.22.0" + "babel-plugin-syntax-flow": "6.18.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-react-display-name": { @@ -925,7 +925,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-react-jsx": { @@ -933,9 +933,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", "requires": { - "babel-helper-builder-react-jsx": "^6.24.1", - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-builder-react-jsx": "6.26.0", + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-react-jsx-self": { @@ -943,8 +943,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", "requires": { - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-react-jsx-source": { @@ -952,8 +952,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", "requires": { - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-regenerator": { @@ -961,7 +961,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "requires": { - "regenerator-transform": "^0.10.0" + "regenerator-transform": "0.10.1" } }, "babel-plugin-transform-strict-mode": { @@ -969,8 +969,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-polyfill": { @@ -978,9 +978,9 @@ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "requires": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" + "babel-runtime": "6.26.0", + "core-js": "2.5.7", + "regenerator-runtime": "0.10.5" }, "dependencies": { "regenerator-runtime": { @@ -995,36 +995,36 @@ "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-to-generator": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.23.0", - "babel-plugin-transform-es2015-classes": "^6.23.0", - "babel-plugin-transform-es2015-computed-properties": "^6.22.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", - "babel-plugin-transform-es2015-for-of": "^6.23.0", - "babel-plugin-transform-es2015-function-name": "^6.22.0", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.22.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-umd": "^6.23.0", - "babel-plugin-transform-es2015-object-super": "^6.22.0", - "babel-plugin-transform-es2015-parameters": "^6.23.0", - "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", - "babel-plugin-transform-exponentiation-operator": "^6.22.0", - "babel-plugin-transform-regenerator": "^6.22.0", - "browserslist": "^3.2.6", - "invariant": "^2.2.2", - "semver": "^5.3.0" + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-async-to-generator": "6.24.1", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-exponentiation-operator": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0", + "browserslist": "3.2.8", + "invariant": "2.2.4", + "semver": "5.5.1" } }, "babel-preset-es2015": { @@ -1032,30 +1032,30 @@ "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.24.1", - "babel-plugin-transform-es2015-classes": "^6.24.1", - "babel-plugin-transform-es2015-computed-properties": "^6.24.1", - "babel-plugin-transform-es2015-destructuring": "^6.22.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", - "babel-plugin-transform-es2015-for-of": "^6.22.0", - "babel-plugin-transform-es2015-function-name": "^6.24.1", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-umd": "^6.24.1", - "babel-plugin-transform-es2015-object-super": "^6.24.1", - "babel-plugin-transform-es2015-parameters": "^6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", - "babel-plugin-transform-regenerator": "^6.24.1" + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0" } }, "babel-preset-flow": { @@ -1063,7 +1063,7 @@ "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", "requires": { - "babel-plugin-transform-flow-strip-types": "^6.22.0" + "babel-plugin-transform-flow-strip-types": "6.22.0" } }, "babel-preset-react": { @@ -1071,12 +1071,12 @@ "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", "requires": { - "babel-plugin-syntax-jsx": "^6.3.13", - "babel-plugin-transform-react-display-name": "^6.23.0", - "babel-plugin-transform-react-jsx": "^6.24.1", - "babel-plugin-transform-react-jsx-self": "^6.22.0", - "babel-plugin-transform-react-jsx-source": "^6.22.0", - "babel-preset-flow": "^6.23.0" + "babel-plugin-syntax-jsx": "6.18.0", + "babel-plugin-transform-react-display-name": "6.25.0", + "babel-plugin-transform-react-jsx": "6.24.1", + "babel-plugin-transform-react-jsx-self": "6.22.0", + "babel-plugin-transform-react-jsx-source": "6.22.0", + "babel-preset-flow": "6.23.0" } }, "babel-register": { @@ -1084,13 +1084,13 @@ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" + "babel-core": "6.26.3", + "babel-runtime": "6.26.0", + "core-js": "2.5.7", + "home-or-tmp": "2.0.0", + "lodash": "4.17.11", + "mkdirp": "0.5.1", + "source-map-support": "0.4.18" } }, "babel-runtime": { @@ -1098,8 +1098,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "babel-template": { @@ -1107,11 +1107,11 @@ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.11" } }, "babel-traverse": { @@ -1119,15 +1119,15 @@ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.4", + "lodash": "4.17.11" }, "dependencies": { "debug": { @@ -1145,10 +1145,10 @@ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.11", + "to-fast-properties": "1.0.3" } }, "babylon": { @@ -1171,13 +1171,13 @@ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "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.2.0", - "pascalcase": "^0.1.1" + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" }, "dependencies": { "define-property": { @@ -1185,7 +1185,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -1193,7 +1193,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -1201,7 +1201,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -1209,9 +1209,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -1231,7 +1231,7 @@ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.4.tgz", "integrity": "sha512-UYOadoSIkEI/VrRGSG6qp93rp2WdokiAiNYDfGW5qURAY8GiAQkvMbwNNSDYiVJopqv4gCna7xqf4rrNGp+5AA==", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "base64-arraybuffer": { @@ -1260,8 +1260,8 @@ "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.2.tgz", "integrity": "sha512-W06sUpprptb65JHbu2yFdv8Tg7o2OWpD5n2pMUIhuLOXC5c64eMW7y9Pg0IHd/Qe31e1KwnHT9H1w6Pf9r4Fkg==", "requires": { - "bs58check": "^2.1.1", - "cashaddrjs": "^0.2.7" + "bs58check": "2.1.2", + "cashaddrjs": "0.2.9" } }, "bcrypt-pbkdf": { @@ -1271,7 +1271,7 @@ "dev": true, "optional": true, "requires": { - "tweetnacl": "^0.14.3" + "tweetnacl": "0.14.5" } }, "bech32": { @@ -1314,20 +1314,18 @@ }, "bip21": { "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "from": "github:Bitcoin-com/bip21", "requires": { - "qs": "^6.3.0" + "qs": "6.5.2" } }, "bip32-utils": { "version": "github:Bitcoin-com/bip32-utils#318df796443311f7e12217542f7f45d3b7791f10", - "from": "github:Bitcoin-com/bip32-utils#0.12.2", "requires": { - "bitbox-cli": "1.5.*", - "keccak": "^1.3.0", - "nyc": "*", - "standard": "^11.0.1", - "tape": "*" + "bitbox-cli": "1.5.12", + "keccak": "1.4.0", + "nyc": "13.0.1", + "standard": "11.0.1", + "tape": "4.9.1" }, "dependencies": { "nyc": { @@ -1335,40 +1333,40 @@ "resolved": "https://registry.npmjs.org/nyc/-/nyc-13.0.1.tgz", "integrity": "sha512-Op/bjhEF74IMtzMmgYt+ModTeMHoPZzHe4qseUguPBwg5qC6r4rYMBt1L3yRXQIbjUpEqmn24/1xAC/umQGU7w==", "requires": { - "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^2.0.0", - "convert-source-map": "^1.5.1", - "debug-log": "^1.0.1", - "find-cache-dir": "^2.0.0", - "find-up": "^3.0.0", - "foreground-child": "^1.5.6", - "glob": "^7.1.2", - "istanbul-lib-coverage": "^2.0.1", - "istanbul-lib-hook": "^2.0.1", - "istanbul-lib-instrument": "^2.3.2", - "istanbul-lib-report": "^2.0.1", - "istanbul-lib-source-maps": "^2.0.1", - "istanbul-reports": "^2.0.0", - "make-dir": "^1.3.0", - "merge-source-map": "^1.1.0", - "resolve-from": "^4.0.0", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "spawn-wrap": "^1.4.2", - "test-exclude": "^5.0.0", - "uuid": "^3.3.2", + "archy": "1.0.0", + "arrify": "1.0.1", + "caching-transform": "2.0.0", + "convert-source-map": "1.5.1", + "debug-log": "1.0.1", + "find-cache-dir": "2.0.0", + "find-up": "3.0.0", + "foreground-child": "1.5.6", + "glob": "7.1.2", + "istanbul-lib-coverage": "2.0.1", + "istanbul-lib-hook": "2.0.1", + "istanbul-lib-instrument": "2.3.2", + "istanbul-lib-report": "2.0.1", + "istanbul-lib-source-maps": "2.0.1", + "istanbul-reports": "2.0.0", + "make-dir": "1.3.0", + "merge-source-map": "1.1.0", + "resolve-from": "4.0.0", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "spawn-wrap": "1.4.2", + "test-exclude": "5.0.0", + "uuid": "3.3.2", "yargs": "11.1.0", - "yargs-parser": "^9.0.2" + "yargs-parser": "9.0.2" }, "dependencies": { "align-text": { "version": "0.1.4", "bundled": true, "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" } }, "amdefine": { @@ -1383,7 +1381,7 @@ "version": "1.0.0", "bundled": true, "requires": { - "default-require-extensions": "^2.0.0" + "default-require-extensions": "2.0.0" } }, "archy": { @@ -1406,7 +1404,7 @@ "version": "1.1.11", "bundled": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -1418,10 +1416,10 @@ "version": "2.0.0", "bundled": true, "requires": { - "make-dir": "^1.0.0", - "md5-hex": "^2.0.0", - "package-hash": "^2.0.0", - "write-file-atomic": "^2.0.0" + "make-dir": "1.3.0", + "md5-hex": "2.0.0", + "package-hash": "2.0.0", + "write-file-atomic": "2.3.0" } }, "camelcase": { @@ -1434,8 +1432,8 @@ "bundled": true, "optional": true, "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" + "align-text": "0.1.4", + "lazy-cache": "1.0.4" } }, "cliui": { @@ -1443,8 +1441,8 @@ "bundled": true, "optional": true, "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", + "center-align": "0.1.3", + "right-align": "0.1.3", "wordwrap": "0.0.2" }, "dependencies": { @@ -1475,8 +1473,8 @@ "version": "4.0.2", "bundled": true, "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "which": "1.3.1" } }, "debug": { @@ -1498,14 +1496,14 @@ "version": "2.0.0", "bundled": true, "requires": { - "strip-bom": "^3.0.0" + "strip-bom": "3.0.0" } }, "error-ex": { "version": "1.3.2", "bundled": true, "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "es6-error": { @@ -1516,22 +1514,22 @@ "version": "0.7.0", "bundled": true, "requires": { - "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" + "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" }, "dependencies": { "cross-spawn": { "version": "5.1.0", "bundled": true, "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.1" } } } @@ -1540,24 +1538,24 @@ "version": "2.0.0", "bundled": true, "requires": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^3.0.0" + "commondir": "1.0.1", + "make-dir": "1.3.0", + "pkg-dir": "3.0.0" } }, "find-up": { "version": "3.0.0", "bundled": true, "requires": { - "locate-path": "^3.0.0" + "locate-path": "3.0.0" } }, "foreground-child": { "version": "1.5.6", "bundled": true, "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" + "cross-spawn": "4.0.2", + "signal-exit": "3.0.2" } }, "fs.realpath": { @@ -1576,12 +1574,12 @@ "version": "7.1.2", "bundled": true, "requires": { - "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" + "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": { @@ -1592,17 +1590,17 @@ "version": "4.0.11", "bundled": true, "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" }, "dependencies": { "source-map": { "version": "0.4.4", "bundled": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } @@ -1623,8 +1621,8 @@ "version": "1.0.6", "bundled": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -1647,7 +1645,7 @@ "version": "1.0.0", "bundled": true, "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-fullwidth-code-point": { @@ -1670,27 +1668,27 @@ "version": "2.0.1", "bundled": true, "requires": { - "append-transform": "^1.0.0" + "append-transform": "1.0.0" } }, "istanbul-lib-report": { "version": "2.0.1", "bundled": true, "requires": { - "istanbul-lib-coverage": "^2.0.1", - "make-dir": "^1.3.0", - "supports-color": "^5.4.0" + "istanbul-lib-coverage": "2.0.1", + "make-dir": "1.3.0", + "supports-color": "5.4.0" } }, "istanbul-lib-source-maps": { "version": "2.0.1", "bundled": true, "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^2.0.1", - "make-dir": "^1.3.0", - "rimraf": "^2.6.2", - "source-map": "^0.6.1" + "debug": "3.1.0", + "istanbul-lib-coverage": "2.0.1", + "make-dir": "1.3.0", + "rimraf": "2.6.2", + "source-map": "0.6.1" }, "dependencies": { "source-map": { @@ -1703,7 +1701,7 @@ "version": "2.0.0", "bundled": true, "requires": { - "handlebars": "^4.0.11" + "handlebars": "4.0.11" } }, "json-parse-better-errors": { @@ -1714,7 +1712,7 @@ "version": "3.2.2", "bundled": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "lazy-cache": { @@ -1726,25 +1724,25 @@ "version": "1.0.0", "bundled": true, "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "load-json-file": { "version": "4.0.0", "bundled": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.11", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" } }, "locate-path": { "version": "3.0.0", "bundled": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "3.0.0", + "path-exists": "3.0.0" } }, "lodash.flattendeep": { @@ -1759,22 +1757,22 @@ "version": "4.1.3", "bundled": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "make-dir": { "version": "1.3.0", "bundled": true, "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "md5-hex": { "version": "2.0.0", "bundled": true, "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "md5-o-matic": { @@ -1785,14 +1783,14 @@ "version": "1.1.0", "bundled": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "merge-source-map": { "version": "1.1.0", "bundled": true, "requires": { - "source-map": "^0.6.1" + "source-map": "0.6.1" }, "dependencies": { "source-map": { @@ -1809,7 +1807,7 @@ "version": "3.0.4", "bundled": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -1837,17 +1835,17 @@ "version": "2.4.0", "bundled": true, "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.7.1", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" } }, "npm-run-path": { "version": "2.0.2", "bundled": true, "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { @@ -1858,15 +1856,15 @@ "version": "1.4.0", "bundled": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "optimist": { "version": "0.6.1", "bundled": true, "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" + "minimist": "0.0.10", + "wordwrap": "0.0.3" } }, "os-homedir": { @@ -1877,9 +1875,9 @@ "version": "2.1.0", "bundled": 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" } }, "p-finally": { @@ -1890,14 +1888,14 @@ "version": "2.0.0", "bundled": true, "requires": { - "p-try": "^2.0.0" + "p-try": "2.0.0" } }, "p-locate": { "version": "3.0.0", "bundled": true, "requires": { - "p-limit": "^2.0.0" + "p-limit": "2.0.0" } }, "p-try": { @@ -1908,18 +1906,18 @@ "version": "2.0.0", "bundled": true, "requires": { - "graceful-fs": "^4.1.11", - "lodash.flattendeep": "^4.4.0", - "md5-hex": "^2.0.0", - "release-zalgo": "^1.0.0" + "graceful-fs": "4.1.11", + "lodash.flattendeep": "4.4.0", + "md5-hex": "2.0.0", + "release-zalgo": "1.0.0" } }, "parse-json": { "version": "4.0.0", "bundled": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" } }, "path-exists": { @@ -1938,7 +1936,7 @@ "version": "3.0.0", "bundled": true, "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "pify": { @@ -1949,7 +1947,7 @@ "version": "3.0.0", "bundled": true, "requires": { - "find-up": "^3.0.0" + "find-up": "3.0.0" } }, "pseudomap": { @@ -1960,24 +1958,24 @@ "version": "3.0.0", "bundled": true, "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" + "load-json-file": "4.0.0", + "normalize-package-data": "2.4.0", + "path-type": "3.0.0" } }, "read-pkg-up": { "version": "4.0.0", "bundled": true, "requires": { - "find-up": "^3.0.0", - "read-pkg": "^3.0.0" + "find-up": "3.0.0", + "read-pkg": "3.0.0" } }, "release-zalgo": { "version": "1.0.0", "bundled": true, "requires": { - "es6-error": "^4.0.1" + "es6-error": "4.1.1" } }, "repeat-string": { @@ -2001,14 +1999,14 @@ "bundled": true, "optional": true, "requires": { - "align-text": "^0.1.1" + "align-text": "0.1.4" } }, "rimraf": { "version": "2.6.2", "bundled": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "semver": { @@ -2023,7 +2021,7 @@ "version": "1.2.0", "bundled": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -2043,20 +2041,20 @@ "version": "1.4.2", "bundled": true, "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" + "foreground-child": "1.5.6", + "mkdirp": "0.5.1", + "os-homedir": "1.0.2", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "which": "1.3.1" } }, "spdx-correct": { "version": "3.0.0", "bundled": true, "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, "spdx-exceptions": { @@ -2067,8 +2065,8 @@ "version": "3.0.0", "bundled": true, "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" } }, "spdx-license-ids": { @@ -2079,15 +2077,15 @@ "version": "2.1.1", "bundled": 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": { "version": "4.0.0", "bundled": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } }, "strip-bom": { @@ -2102,17 +2100,17 @@ "version": "5.4.0", "bundled": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } }, "test-exclude": { "version": "5.0.0", "bundled": true, "requires": { - "arrify": "^1.0.1", - "minimatch": "^3.0.4", - "read-pkg-up": "^4.0.0", - "require-main-filename": "^1.0.1" + "arrify": "1.0.1", + "minimatch": "3.0.4", + "read-pkg-up": "4.0.0", + "require-main-filename": "1.0.1" } }, "uglify-js": { @@ -2120,9 +2118,9 @@ "bundled": true, "optional": true, "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" }, "dependencies": { "yargs": { @@ -2130,9 +2128,9 @@ "bundled": true, "optional": true, "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", "window-size": "0.1.0" } } @@ -2151,15 +2149,15 @@ "version": "3.0.3", "bundled": true, "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "which": { "version": "1.3.1", "bundled": true, "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -2179,8 +2177,8 @@ "version": "2.1.0", "bundled": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "ansi-regex": { @@ -2191,23 +2189,23 @@ "version": "1.0.0", "bundled": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "string-width": { "version": "1.0.2", "bundled": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "strip-ansi": { "version": "3.0.1", "bundled": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } } } @@ -2220,9 +2218,9 @@ "version": "2.3.0", "bundled": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "signal-exit": "3.0.2" } }, "y18n": { @@ -2237,56 +2235,56 @@ "version": "11.1.0", "bundled": true, "requires": { - "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": "^9.0.2" + "cliui": "4.1.0", + "decamelize": "1.2.0", + "find-up": "2.1.0", + "get-caller-file": "1.0.3", + "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": "9.0.2" }, "dependencies": { "cliui": { "version": "4.1.0", "bundled": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" } }, "find-up": { "version": "2.1.0", "bundled": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "locate-path": { "version": "2.0.0", "bundled": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "2.0.0", + "path-exists": "3.0.0" } }, "p-limit": { "version": "1.3.0", "bundled": true, "requires": { - "p-try": "^1.0.0" + "p-try": "1.0.0" } }, "p-locate": { "version": "2.0.0", "bundled": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.3.0" } }, "p-try": { @@ -2299,7 +2297,7 @@ "version": "9.0.2", "bundled": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" }, "dependencies": { "camelcase": { @@ -2317,13 +2315,13 @@ "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", "integrity": "sha512-22KDak0RDyghFbR0Si7wyq9IgY423YzGYzWLpGeofH3DaolOQqjD3mNN08eFoubKlbyclOQKFwtONMv2SD9V3A==", "requires": { - "bigi": "^1.2.0", - "browserify-aes": "^1.0.1", - "bs58check": "<3.0.0", - "buffer-xor": "^1.0.2", - "create-hash": "^1.1.1", - "ecurve": "^1.0.0", - "scryptsy": "^2.0.0" + "bigi": "1.4.2", + "browserify-aes": "1.2.0", + "bs58check": "2.1.2", + "buffer-xor": "1.0.3", + "create-hash": "1.2.0", + "ecurve": "1.0.6", + "scryptsy": "2.0.0" } }, "bip39": { @@ -2331,11 +2329,11 @@ "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", "requires": { - "create-hash": "^1.1.0", - "pbkdf2": "^3.0.9", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "unorm": "^1.3.3" + "create-hash": "1.2.0", + "pbkdf2": "3.0.17", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2", + "unorm": "1.4.1" } }, "bip66": { @@ -2343,95 +2341,92 @@ "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "bip68": { - "version": "github:Bitcoin-com/bip68#aeac5a8c5c1e01dfba79ff3eb824171be004a28c", - "from": "github:Bitcoin-com/bip68#1.0.5" + "version": "github:Bitcoin-com/bip68#aeac5a8c5c1e01dfba79ff3eb824171be004a28c" }, "bitbox-cli": { "version": "1.5.12", "resolved": "https://registry.npmjs.org/bitbox-cli/-/bitbox-cli-1.5.12.tgz", "integrity": "sha512-SQk02foLnSEi8ZkJFTFLZXEEW/3ribb/YNaF2L/qZ1wtWOcB2uei4v/rmb31TJOseH6MvfZ5Ygl6HzcyCTpYHg==", "requires": { - "assert": "^1.4.1", - "axios": "^0.17.1", - "babel-cli": "^6.26.0", - "babel-preset-env": "^1.6.1", - "babel-preset-es2015": "^6.24.1", - "babel-preset-flow": "^6.23.0", - "babel-preset-react": "^6.24.1", - "babel-register": "^6.26.0", - "bchaddrjs": "^0.2.1", - "bigi": "^1.4.2", + "assert": "1.4.1", + "axios": "0.17.1", + "babel-cli": "6.26.0", + "babel-preset-env": "1.7.0", + "babel-preset-es2015": "6.24.1", + "babel-preset-flow": "6.23.0", + "babel-preset-react": "6.24.1", + "babel-register": "6.26.0", + "bchaddrjs": "0.2.2", + "bigi": "1.4.2", "bip21": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", "bip32-utils": "github:Bitcoin-com/bip32-utils#318df796443311f7e12217542f7f45d3b7791f10", - "bip38": "^2.0.2", - "bip39": "^2.5.0", - "bip66": "^1.1.5", - "bip68": "^1.0.4", + "bip38": "2.0.2", + "bip39": "2.5.0", + "bip66": "1.1.5", + "bip68": "github:Bitcoin-com/bip68#aeac5a8c5c1e01dfba79ff3eb824171be004a28c", "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", "bitcoin-txdecoder": "0.0.3", "bitcoincashjs-lib": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", - "bitcoinjs-message": "^2.0.0", - "bs58": "^4.0.1", - "buffer": "^5.1.0", - "chalk": "^2.3.0", + "bitcoinjs-message": "2.0.0", + "bs58": "4.0.1", + "buffer": "5.2.1", + "chalk": "2.4.1", "clear": "0.0.1", "coininfo": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", - "commander": "^2.13.0", - "cp-file": "^5.0.0", - "ecurve": "^1.0.6", - "figlet": "^1.2.0", - "git-clone": "^0.1.0", - "ini": "^1.3.5", - "mkdirp": "^0.5.1", - "mocha": "^5.0.1", - "node-cmd": "^3.0.0", - "node-emoji": "^1.8.1", - "qrcode": "^1.2.0", - "randombytes": "^2.0.6", - "repl.history": "^0.1.4", - "safe-buffer": "^5.1.2", - "satoshi-bitcoin": "^1.0.4", - "socket.io": "^2.1.1", - "socket.io-client": "^2.1.1", - "touch": "^3.1.0", - "wif": "^2.0.6" + "commander": "2.18.0", + "cp-file": "5.0.0", + "ecurve": "1.0.6", + "figlet": "1.2.0", + "git-clone": "0.1.0", + "ini": "1.3.5", + "mkdirp": "0.5.1", + "mocha": "5.2.0", + "node-cmd": "3.0.0", + "node-emoji": "1.8.1", + "qrcode": "1.3.0", + "randombytes": "2.0.6", + "repl.history": "0.1.4", + "safe-buffer": "5.1.2", + "satoshi-bitcoin": "1.0.4", + "socket.io": "2.1.1", + "socket.io-client": "2.1.1", + "touch": "3.1.0", + "wif": "2.0.6" } }, "bitcoin-ops": { - "version": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", - "from": "github:Bitcoin-com/bitcoincash-ops" + "version": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" }, "bitcoin-txdecoder": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/bitcoin-txdecoder/-/bitcoin-txdecoder-0.0.3.tgz", "integrity": "sha512-pH/eF5hQ65y54U23mzuF42wEj9YWj4WKHAIj2il6b1+oRoi/oyM4Ti3e8nMD8ajippICmyquqbyCZKGq3i4W+A==", "requires": { - "bitcoinjs-lib": "3.3.*" + "bitcoinjs-lib": "3.3.2" } }, "bitcoincashjs-lib": { "version": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", - "from": "github:Bitcoin-com/bitcoincashjs-lib#3.3.4", - "requires": { - "bech32": "^1.1.2", - "bigi": "^1.4.0", - "bip66": "^1.1.0", - "bitcoin-ops": "^1.3.0", - "bs58check": "^2.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.3", - "ecurve": "^1.0.0", - "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "^1.0.1", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "typeforce": "^1.11.3", - "varuint-bitcoin": "^1.0.4", - "wif": "^2.0.1" + "requires": { + "bech32": "1.1.3", + "bigi": "1.4.2", + "bip66": "1.1.5", + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", + "bs58check": "2.1.2", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ecurve": "1.0.6", + "merkle-lib": "2.0.10", + "pushdata-bitcoin": "1.0.1", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2", + "typeforce": "1.13.2", + "varuint-bitcoin": "1.1.0", + "wif": "2.0.6" } }, "bitcoinjs-lib": { @@ -2439,21 +2434,21 @@ "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-3.3.2.tgz", "integrity": "sha512-l5qqvbaK8wwtANPf6oEffykycg4383XgEYdia1rI7/JpGf1jfRWlOUCvx5TiTZS7kyIvY4j/UhIQ2urLsvGkzw==", "requires": { - "bech32": "^1.1.2", - "bigi": "^1.4.0", - "bip66": "^1.1.0", - "bitcoin-ops": "^1.3.0", - "bs58check": "^2.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.3", - "ecurve": "^1.0.0", - "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "^1.0.1", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "typeforce": "^1.11.3", - "varuint-bitcoin": "^1.0.4", - "wif": "^2.0.1" + "bech32": "1.1.3", + "bigi": "1.4.2", + "bip66": "1.1.5", + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", + "bs58check": "2.1.2", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ecurve": "1.0.6", + "merkle-lib": "2.0.10", + "pushdata-bitcoin": "1.0.1", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2", + "typeforce": "1.13.2", + "varuint-bitcoin": "1.1.0", + "wif": "2.0.6" } }, "bitcoinjs-message": { @@ -2461,11 +2456,11 @@ "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", "requires": { - "bs58check": "^2.0.2", - "buffer-equals": "^1.0.3", - "create-hash": "^1.1.2", - "secp256k1": "^3.0.1", - "varuint-bitcoin": "^1.0.1" + "bs58check": "2.1.2", + "buffer-equals": "1.0.4", + "create-hash": "1.2.0", + "secp256k1": "3.5.2", + "varuint-bitcoin": "1.1.0" } }, "blob": { @@ -2484,13 +2479,13 @@ "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", "dev": true, "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" + "ansi-align": "2.0.0", + "camelcase": "4.1.0", + "chalk": "2.4.1", + "cli-boxes": "1.0.0", + "string-width": "2.1.1", + "term-size": "1.2.0", + "widest-line": "2.0.0" } }, "brace-expansion": { @@ -2498,7 +2493,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -2508,9 +2503,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "optional": true, "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.3" } }, "brorand": { @@ -2528,12 +2523,12 @@ "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "buffer-xor": "1.0.3", + "cipher-base": "1.0.4", + "create-hash": "1.2.0", + "evp_bytestokey": "1.0.3", + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "browserslist": { @@ -2541,8 +2536,8 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "requires": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" + "caniuse-lite": "1.0.30000889", + "electron-to-chromium": "1.3.75" } }, "bs58": { @@ -2550,7 +2545,7 @@ "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", "requires": { - "base-x": "^3.0.2" + "base-x": "3.0.4" } }, "bs58check": { @@ -2558,9 +2553,9 @@ "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" + "bs58": "4.0.1", + "create-hash": "1.2.0", + "safe-buffer": "5.1.2" } }, "buffer": { @@ -2568,8 +2563,8 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" + "base64-js": "1.3.0", + "ieee754": "1.1.12" } }, "buffer-equals": { @@ -2597,15 +2592,15 @@ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "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" }, "dependencies": { "isobject": { @@ -2643,7 +2638,7 @@ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "requires": { - "callsites": "^0.2.0" + "callsites": "0.2.0" } }, "callsite": { @@ -2666,7 +2661,7 @@ "resolved": "https://registry.npmjs.org/can-promise/-/can-promise-0.0.1.tgz", "integrity": "sha512-gzVrHyyrvgt0YpDm7pn04MQt8gjh0ZAhN4ZDyCRtGl6YnuuK6b4aiUTD7G52r9l4YNmxfTtEscb92vxtAlL6XQ==", "requires": { - "window-or-global": "^1.0.1" + "window-or-global": "1.0.1" } }, "caniuse-lite": { @@ -2691,7 +2686,7 @@ "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.2.9.tgz", "integrity": "sha512-DhJF4iAH0/RM3UjHDHKRxzs09YGL9px+oTyizzydanhC7jTyM2aJ+aLKA96vZGTTWayvvr2iDF2l13lpqXiRFg==", "requires": { - "big-integer": "^1.6.34" + "big-integer": "1.6.36" } }, "chai": { @@ -2700,12 +2695,12 @@ "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", "dev": true, "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.0", - "type-detect": "^4.0.5" + "assertion-error": "1.1.0", + "check-error": "1.0.2", + "deep-eql": "3.0.1", + "get-func-name": "2.0.0", + "pathval": "1.1.0", + "type-detect": "4.0.8" } }, "chalk": { @@ -2713,9 +2708,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" }, "dependencies": { "ansi-styles": { @@ -2723,7 +2718,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "color-convert": "^1.9.0" + "color-convert": "1.9.3" } }, "supports-color": { @@ -2731,7 +2726,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -2753,15 +2748,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "optional": true, "requires": { - "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" + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.2.4", + "glob-parent": "2.0.0", + "inherits": "2.0.1", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.2.1" } }, "ci-info": { @@ -2775,8 +2770,8 @@ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "circular-json": { @@ -2789,10 +2784,10 @@ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" }, "dependencies": { "define-property": { @@ -2800,7 +2795,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "isobject": { @@ -2832,7 +2827,7 @@ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { - "restore-cursor": "^2.0.0" + "restore-cursor": "2.0.0" } }, "cli-width": { @@ -2845,9 +2840,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" }, "dependencies": { "string-width": { @@ -2855,9 +2850,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -2868,7 +2863,7 @@ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "dev": true, "requires": { - "mimic-response": "^1.0.0" + "mimic-response": "1.0.1" } }, "co": { @@ -2883,9 +2878,8 @@ }, "coininfo": { "version": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", - "from": "github:Bitcoin-com/coininfo", "requires": { - "safe-buffer": "^5.1.1" + "safe-buffer": "5.1.2" } }, "collection-visit": { @@ -2893,8 +2887,8 @@ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "map-visit": "1.0.0", + "object-visit": "1.0.1" } }, "color-convert": { @@ -2916,7 +2910,7 @@ "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", "dev": true, "requires": { - "delayed-stream": "~1.0.0" + "delayed-stream": "1.0.0" } }, "commander": { @@ -2949,10 +2943,10 @@ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "buffer-from": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "typedarray": "0.0.6" }, "dependencies": { "inherits": { @@ -2968,12 +2962,12 @@ "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", "dev": true, "requires": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" + "dot-prop": "4.2.0", + "graceful-fs": "4.1.11", + "make-dir": "1.3.0", + "unique-string": "1.0.0", + "write-file-atomic": "2.3.0", + "xdg-basedir": "3.0.0" } }, "contains-path": { @@ -2986,7 +2980,7 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", "requires": { - "safe-buffer": "~5.1.1" + "safe-buffer": "5.1.2" } }, "cookie": { @@ -3021,12 +3015,12 @@ "integrity": "sha512-Tv0LKe/MkBOilH2v7WBiTBdudg2ChfGbdXafc/s330djpF3zKOmuehTeRwjXWc7pzfj9FrDUTA7tEx6Div8NFw==", "dev": true, "requires": { - "growl": "~> 1.10.0", - "js-yaml": "^3.11.0", - "lcov-parse": "^0.0.10", - "log-driver": "^1.2.7", - "minimist": "^1.2.0", - "request": "^2.85.0" + "growl": "1.10.5", + "js-yaml": "3.12.0", + "lcov-parse": "0.0.10", + "log-driver": "1.2.7", + "minimist": "1.2.0", + "request": "2.88.0" }, "dependencies": { "minimist": { @@ -3042,11 +3036,11 @@ "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-5.0.0.tgz", "integrity": "sha1-vHAP0wyjLSTUbH+wK5kuQ1/FqXg=", "requires": { - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "nested-error-stacks": "^2.0.0", - "pify": "^3.0.0", - "safe-buffer": "^5.0.1" + "graceful-fs": "4.1.11", + "make-dir": "1.3.0", + "nested-error-stacks": "2.1.0", + "pify": "3.0.0", + "safe-buffer": "5.1.2" } }, "create-error-class": { @@ -3055,7 +3049,7 @@ "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "dev": true, "requires": { - "capture-stack-trace": "^1.0.0" + "capture-stack-trace": "1.0.1" } }, "create-hash": { @@ -3063,11 +3057,11 @@ "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" + "cipher-base": "1.0.4", + "inherits": "2.0.1", + "md5.js": "1.3.5", + "ripemd160": "2.0.2", + "sha.js": "2.4.11" } }, "create-hmac": { @@ -3075,12 +3069,12 @@ "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "cipher-base": "1.0.4", + "create-hash": "1.2.0", + "inherits": "2.0.1", + "ripemd160": "2.0.2", + "safe-buffer": "5.1.2", + "sha.js": "2.4.11" } }, "cross-spawn": { @@ -3088,9 +3082,9 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.1" } }, "crypto-random-string": { @@ -3105,7 +3099,7 @@ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "debug": { @@ -3137,7 +3131,7 @@ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "dev": true, "requires": { - "mimic-response": "^1.0.0" + "mimic-response": "1.0.1" } }, "deep-eql": { @@ -3146,7 +3140,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "^4.0.0" + "type-detect": "4.0.8" } }, "deep-equal": { @@ -3170,7 +3164,7 @@ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "requires": { - "object-keys": "^1.0.12" + "object-keys": "1.0.12" } }, "define-property": { @@ -3178,8 +3172,8 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "is-descriptor": "1.0.2", + "isobject": "3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -3187,7 +3181,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -3195,7 +3189,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -3203,9 +3197,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -3230,12 +3224,12 @@ "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.1.tgz", "integrity": "sha512-2kjwuGGonL7gWE1XU4Fv79+vVzpoQCl0V+boMwWtOQJV2AGDabCwez++nB1Nli/8BabAfZQ/UuHPlp6AymKdWw==", "requires": { - "find-root": "^1.0.0", - "glob": "^7.0.5", - "ignore": "^3.0.9", - "pkg-config": "^1.1.0", - "run-parallel": "^1.1.2", - "uniq": "^1.0.1" + "find-root": "1.1.0", + "glob": "7.1.3", + "ignore": "3.3.10", + "pkg-config": "1.1.1", + "run-parallel": "1.1.9", + "uniq": "1.0.1" } }, "del": { @@ -3243,13 +3237,13 @@ "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "requires": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" + "globby": "5.0.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.1", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "rimraf": "2.6.2" }, "dependencies": { "pify": { @@ -3276,7 +3270,7 @@ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "diff": { @@ -3294,7 +3288,7 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "requires": { - "esutils": "^2.0.2" + "esutils": "2.0.2" } }, "dot-prop": { @@ -3303,7 +3297,7 @@ "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", "dev": true, "requires": { - "is-obj": "^1.0.0" + "is-obj": "1.0.1" } }, "drbg.js": { @@ -3311,9 +3305,9 @@ "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", "requires": { - "browserify-aes": "^1.0.6", - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4" + "browserify-aes": "1.2.0", + "create-hash": "1.2.0", + "create-hmac": "1.1.7" } }, "duplexer": { @@ -3335,8 +3329,8 @@ "dev": true, "optional": true, "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "jsbn": "0.1.1", + "safer-buffer": "2.1.2" } }, "ecurve": { @@ -3344,8 +3338,8 @@ "resolved": "https://registry.npmjs.org/ecurve/-/ecurve-1.0.6.tgz", "integrity": "sha512-/BzEjNfiSuB7jIWKcS/z8FK9jNjmEWvUV2YZ4RLSmcDtP7Lq0m6FvDuSnJpBlDpGRpfRQeTLGLBI8H+kEv0r+w==", "requires": { - "bigi": "^1.1.0", - "safe-buffer": "^5.0.1" + "bigi": "1.4.2", + "safe-buffer": "5.1.2" } }, "electron-to-chromium": { @@ -3358,13 +3352,13 @@ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" + "bn.js": "4.11.8", + "brorand": "1.1.0", + "hash.js": "1.1.5", + "hmac-drbg": "1.0.1", + "inherits": "2.0.1", + "minimalistic-assert": "1.0.1", + "minimalistic-crypto-utils": "1.0.1" } }, "engine.io": { @@ -3372,12 +3366,12 @@ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.0.tgz", "integrity": "sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==", "requires": { - "accepts": "~1.3.4", + "accepts": "1.3.5", "base64id": "1.0.0", "cookie": "0.3.1", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.0", - "ws": "~3.3.1" + "debug": "3.1.0", + "engine.io-parser": "2.1.2", + "ws": "3.3.3" } }, "engine.io-client": { @@ -3387,14 +3381,14 @@ "requires": { "component-emitter": "1.2.1", "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.1", + "debug": "3.1.0", + "engine.io-parser": "2.1.2", "has-cors": "1.1.0", "indexof": "0.0.1", "parseqs": "0.0.5", "parseuri": "0.0.5", - "ws": "~3.3.1", - "xmlhttprequest-ssl": "~1.5.4", + "ws": "3.3.3", + "xmlhttprequest-ssl": "1.5.5", "yeast": "0.1.2" } }, @@ -3404,10 +3398,10 @@ "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==", "requires": { "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", + "arraybuffer.slice": "0.0.7", "base64-arraybuffer": "0.1.5", "blob": "0.0.4", - "has-binary2": "~1.0.2" + "has-binary2": "1.0.3" } }, "error-ex": { @@ -3415,7 +3409,7 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "es-abstract": { @@ -3423,11 +3417,11 @@ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", "requires": { - "es-to-primitive": "^1.1.1", - "function-bind": "^1.1.1", - "has": "^1.0.1", - "is-callable": "^1.1.3", - "is-regex": "^1.0.4" + "es-to-primitive": "1.2.0", + "function-bind": "1.1.1", + "has": "1.0.3", + "is-callable": "1.1.4", + "is-regex": "1.0.4" } }, "es-to-primitive": { @@ -3435,9 +3429,9 @@ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "is-callable": "1.1.4", + "is-date-object": "1.0.1", + "is-symbol": "1.0.2" } }, "es6-promise": { @@ -3457,44 +3451,44 @@ "integrity": "sha512-hgrDtGWz368b7Wqf+v1Z69O3ZebNR0+GA7PtDdbmuz4rInFVUV9uw7whjZEiWyLzCjVb5Rs5WRN1TAS6eo7AYA==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.5.3", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^2.1.0", - "eslint-scope": "^4.0.0", - "eslint-utils": "^1.3.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^4.0.0", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.7.0", - "ignore": "^4.0.6", - "imurmurhash": "^0.1.4", - "inquirer": "^6.1.0", - "is-resolvable": "^1.1.0", - "js-yaml": "^3.12.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.5", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "regexpp": "^2.0.0", - "require-uncached": "^1.0.3", - "semver": "^5.5.1", - "strip-ansi": "^4.0.0", - "strip-json-comments": "^2.0.1", - "table": "^4.0.3", - "text-table": "^0.2.0" + "@babel/code-frame": "7.0.0", + "ajv": "6.5.4", + "chalk": "2.4.1", + "cross-spawn": "6.0.5", + "debug": "4.0.1", + "doctrine": "2.1.0", + "eslint-scope": "4.0.0", + "eslint-utils": "1.3.1", + "eslint-visitor-keys": "1.0.0", + "espree": "4.0.0", + "esquery": "1.0.1", + "esutils": "2.0.2", + "file-entry-cache": "2.0.0", + "functional-red-black-tree": "1.0.1", + "glob": "7.1.3", + "globals": "11.8.0", + "ignore": "4.0.6", + "imurmurhash": "0.1.4", + "inquirer": "6.2.0", + "is-resolvable": "1.1.0", + "js-yaml": "3.12.0", + "json-stable-stringify-without-jsonify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.11", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "7.0.0", + "progress": "2.0.0", + "regexpp": "2.0.1", + "require-uncached": "1.0.3", + "semver": "5.5.1", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", + "table": "4.0.3", + "text-table": "0.2.0" }, "dependencies": { "@babel/code-frame": { @@ -3503,7 +3497,7 @@ "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", "dev": true, "requires": { - "@babel/highlight": "^7.0.0" + "@babel/highlight": "7.0.0" } }, "@babel/highlight": { @@ -3512,9 +3506,9 @@ "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", "dev": true, "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" + "chalk": "2.4.1", + "esutils": "2.0.2", + "js-tokens": "4.0.0" } }, "acorn-jsx": { @@ -3523,7 +3517,7 @@ "integrity": "sha512-JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw==", "dev": true, "requires": { - "acorn": "^5.0.3" + "acorn": "5.7.3" } }, "ajv": { @@ -3532,10 +3526,10 @@ "integrity": "sha512-4Wyjt8+t6YszqaXnLDfMmG/8AlO5Zbcsy3ATHncCzjW/NoPzAId8AK6749Ybjmdt+kUY1gP60fCu46oDxPv/mg==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "fast-deep-equal": "2.0.1", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" } }, "ajv-keywords": { @@ -3562,11 +3556,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "nice-try": "1.0.5", + "path-key": "2.0.1", + "semver": "5.5.1", + "shebang-command": "1.2.0", + "which": "1.3.1" } }, "debug": { @@ -3575,7 +3569,7 @@ "integrity": "sha512-K23FHJ/Mt404FSlp6gSZCevIbTMLX0j3fmHhUEhQ3Wq0FMODW3+cUSoLdy1Gx4polAf4t/lphhmHH35BB8cLYw==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.1" } }, "eslint-scope": { @@ -3584,8 +3578,8 @@ "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", "dev": true, "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "esrecurse": "4.2.1", + "estraverse": "4.2.0" } }, "espree": { @@ -3594,8 +3588,8 @@ "integrity": "sha512-kapdTCt1bjmspxStVKX6huolXVV5ZfyZguY1lcfhVVZstce3bqxH9mcLzNn3/mlgW6wQ732+0fuG9v7h0ZQoKg==", "dev": true, "requires": { - "acorn": "^5.6.0", - "acorn-jsx": "^4.1.1" + "acorn": "5.7.3", + "acorn-jsx": "4.1.1" } }, "external-editor": { @@ -3604,9 +3598,9 @@ "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", "dev": true, "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" + "chardet": "0.7.0", + "iconv-lite": "0.4.24", + "tmp": "0.0.33" } }, "fast-deep-equal": { @@ -3633,19 +3627,19 @@ "integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==", "dev": true, "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.0", - "figures": "^2.0.0", - "lodash": "^4.17.10", + "ansi-escapes": "3.1.0", + "chalk": "2.4.1", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "3.0.3", + "figures": "2.0.0", + "lodash": "4.17.11", "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.1.0", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" + "run-async": "2.3.0", + "rxjs": "6.3.3", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" } }, "js-tokens": { @@ -3672,7 +3666,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } }, "table": { @@ -3681,12 +3675,12 @@ "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", "dev": true, "requires": { - "ajv": "^6.0.1", - "ajv-keywords": "^3.0.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", + "ajv": "6.5.4", + "ajv-keywords": "3.2.0", + "chalk": "2.4.1", + "lodash": "4.17.11", "slice-ansi": "1.0.0", - "string-width": "^2.1.1" + "string-width": "2.1.1" } } } @@ -3697,7 +3691,7 @@ "integrity": "sha512-QYGfmzuc4q4J6XIhlp8vRKdI/fI0tQfQPy1dME3UOLprE+v4ssH/3W9LM2Q7h5qBcy5m0ehCrBDU2YF8q6OY8w==", "dev": true, "requires": { - "get-stdin": "^6.0.0" + "get-stdin": "6.0.0" } }, "eslint-config-standard": { @@ -3715,8 +3709,8 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", "requires": { - "debug": "^2.6.9", - "resolve": "^1.5.0" + "debug": "2.6.9", + "resolve": "1.8.1" }, "dependencies": { "debug": { @@ -3734,8 +3728,8 @@ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", "requires": { - "debug": "^2.6.8", - "pkg-dir": "^1.0.0" + "debug": "2.6.9", + "pkg-dir": "1.0.0" }, "dependencies": { "debug": { @@ -3754,8 +3748,8 @@ "integrity": "sha512-9XcVyZiQRVeFjqHw8qHNDAZcQLqaHlOGGpeYqzYh8S4JYCWTCO3yzyen8yVmA5PratfzTRWDwCOFphtDEG+w/w==", "dev": true, "requires": { - "eslint-utils": "^1.3.0", - "regexpp": "^2.0.0" + "eslint-utils": "1.3.1", + "regexpp": "2.0.1" } }, "eslint-plugin-import": { @@ -3763,16 +3757,16 @@ "resolved": "http://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz", "integrity": "sha1-JgAu+/ylmJtyiKwEdQi9JPIXsWk=", "requires": { - "builtin-modules": "^1.1.1", - "contains-path": "^0.1.0", - "debug": "^2.6.8", + "builtin-modules": "1.1.1", + "contains-path": "0.1.0", + "debug": "2.6.9", "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.1", - "eslint-module-utils": "^2.1.1", - "has": "^1.0.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.3", - "read-pkg-up": "^2.0.0" + "eslint-import-resolver-node": "0.3.2", + "eslint-module-utils": "2.2.0", + "has": "1.0.3", + "lodash": "4.17.11", + "minimatch": "3.0.4", + "read-pkg-up": "2.0.0" }, "dependencies": { "debug": { @@ -3788,8 +3782,8 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" + "esutils": "2.0.2", + "isarray": "1.0.0" } } } @@ -3800,12 +3794,12 @@ "integrity": "sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw==", "dev": true, "requires": { - "eslint-plugin-es": "^1.3.1", - "eslint-utils": "^1.3.1", - "ignore": "^4.0.2", - "minimatch": "^3.0.4", - "resolve": "^1.8.1", - "semver": "^5.5.0" + "eslint-plugin-es": "1.3.1", + "eslint-utils": "1.3.1", + "ignore": "4.0.6", + "minimatch": "3.0.4", + "resolve": "1.8.1", + "semver": "5.5.1" }, "dependencies": { "ignore": { @@ -3822,8 +3816,8 @@ "integrity": "sha512-CStQYJgALoQBw3FsBzH0VOVDRnJ/ZimUlpLm226U8qgqYJfPOY/CPK6wyRInMxh73HSKg5wyRwdS4BVYYHwokA==", "dev": true, "requires": { - "fast-diff": "^1.1.1", - "jest-docblock": "^21.0.0" + "fast-diff": "1.1.2", + "jest-docblock": "21.2.0" } }, "eslint-plugin-promise": { @@ -3836,10 +3830,10 @@ "resolved": "http://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz", "integrity": "sha512-KC7Snr4YsWZD5flu6A5c0AcIZidzW3Exbqp7OT67OaD2AppJtlBr/GuPrW/vaQM/yfZotEvKAdrxrO+v8vwYJA==", "requires": { - "doctrine": "^2.0.2", - "has": "^1.0.1", - "jsx-ast-utils": "^2.0.1", - "prop-types": "^15.6.0" + "doctrine": "2.1.0", + "has": "1.0.3", + "jsx-ast-utils": "2.0.1", + "prop-types": "15.6.2" } }, "eslint-plugin-standard": { @@ -3852,8 +3846,8 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "esrecurse": "4.2.1", + "estraverse": "4.2.0" } }, "eslint-utils": { @@ -3872,8 +3866,8 @@ "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" + "acorn": "5.7.3", + "acorn-jsx": "3.0.1" } }, "esprima": { @@ -3886,7 +3880,7 @@ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "requires": { - "estraverse": "^4.0.0" + "estraverse": "4.2.0" } }, "esrecurse": { @@ -3894,7 +3888,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "requires": { - "estraverse": "^4.1.0" + "estraverse": "4.2.0" } }, "estraverse": { @@ -3913,14 +3907,14 @@ "integrity": "sha512-dGXNg4F/FgVzlApjzItL+7naHutA3fDqbV/zAZqDDlXTjiMnQmZKu+prImWKszeBM5UQeGvAl3u1wBiKeDh61g==", "dev": true, "requires": { - "duplexer": "^0.1.1", - "flatmap-stream": "^0.1.0", - "from": "^0.1.7", + "duplexer": "0.1.1", + "flatmap-stream": "0.1.1", + "from": "0.1.7", "map-stream": "0.0.7", - "pause-stream": "^0.0.11", - "split": "^1.0.1", - "stream-combiner": "^0.2.2", - "through": "^2.3.8" + "pause-stream": "0.0.11", + "split": "1.0.1", + "stream-combiner": "0.2.2", + "through": "2.3.8" } }, "evp_bytestokey": { @@ -3928,8 +3922,8 @@ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "md5.js": "1.3.5", + "safe-buffer": "5.1.2" } }, "execa": { @@ -3937,13 +3931,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "requires": { - "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" + "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" } }, "expand-brackets": { @@ -3952,7 +3946,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "optional": true, "requires": { - "is-posix-bracket": "^0.1.0" + "is-posix-bracket": "0.1.1" } }, "expand-range": { @@ -3961,7 +3955,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "optional": true, "requires": { - "fill-range": "^2.1.0" + "fill-range": "2.2.4" } }, "extend": { @@ -3975,8 +3969,8 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -3984,7 +3978,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -3994,9 +3988,9 @@ "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" + "chardet": "0.4.2", + "iconv-lite": "0.4.24", + "tmp": "0.0.33" } }, "extglob": { @@ -4005,7 +3999,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "optional": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "extsprintf": { @@ -4045,7 +4039,7 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "requires": { - "escape-string-regexp": "^1.0.5" + "escape-string-regexp": "1.0.5" } }, "file-entry-cache": { @@ -4053,8 +4047,8 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" + "flat-cache": "1.3.0", + "object-assign": "4.1.1" } }, "filename-regex": { @@ -4069,11 +4063,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "optional": true, "requires": { - "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": "2.1.0", + "isobject": "2.1.0", + "randomatic": "3.1.0", + "repeat-element": "1.1.3", + "repeat-string": "1.6.1" } }, "find-root": { @@ -4086,7 +4080,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "flat-cache": { @@ -4094,10 +4088,10 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "requires": { - "circular-json": "^0.3.1", - "del": "^2.0.2", - "graceful-fs": "^4.1.2", - "write": "^0.2.1" + "circular-json": "0.3.3", + "del": "2.2.2", + "graceful-fs": "4.1.11", + "write": "0.2.1" } }, "flatmap-stream": { @@ -4118,7 +4112,7 @@ "integrity": "sha512-JTnCiuaAm66gGuizv4g46MqN1QVldPxySn9DxZ+hCjMaEGFx6ciJhz0iMfS5iv1YKqZo5pBW6qFJ9Zu0jaqvaw==", "dev": true, "requires": { - "lodash.merge": "^4.6.1" + "lodash.merge": "4.6.1" } }, "follow-redirects": { @@ -4126,7 +4120,7 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.8.tgz", "integrity": "sha512-sy1mXPmv7kLAMKW/8XofG7o9T+6gAjzdZK4AJF6ryqQYUa/hnzgiypoeUecZ53x7XiqKNEpNqLtS97MshW2nxg==", "requires": { - "debug": "=3.1.0" + "debug": "3.1.0" } }, "for-each": { @@ -4134,7 +4128,7 @@ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "requires": { - "is-callable": "^1.1.3" + "is-callable": "1.1.4" } }, "for-in": { @@ -4148,7 +4142,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "optional": true, "requires": { - "for-in": "^1.0.1" + "for-in": "1.0.2" } }, "forever-agent": { @@ -4163,9 +4157,9 @@ "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "dev": true, "requires": { - "asynckit": "^0.4.0", + "asynckit": "0.4.0", "combined-stream": "1.0.6", - "mime-types": "^2.1.12" + "mime-types": "2.1.20" }, "dependencies": { "combined-stream": { @@ -4174,7 +4168,7 @@ "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "dev": true, "requires": { - "delayed-stream": "~1.0.0" + "delayed-stream": "1.0.0" } } } @@ -4190,7 +4184,7 @@ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { - "map-cache": "^0.2.2" + "map-cache": "0.2.2" } }, "fresh": { @@ -4211,8 +4205,8 @@ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "inherits": "2.0.1", + "readable-stream": "2.3.6" } }, "fs-readdir-recursive": { @@ -4231,8 +4225,8 @@ "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", "optional": true, "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" + "nan": "2.11.1", + "node-pre-gyp": "0.10.0" }, "dependencies": { "abbrev": { @@ -4254,8 +4248,8 @@ "bundled": true, "optional": true, "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "delegates": "1.0.0", + "readable-stream": "2.3.6" } }, "balanced-match": { @@ -4266,7 +4260,7 @@ "version": "1.1.11", "bundled": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -4320,7 +4314,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.2.4" } }, "fs.realpath": { @@ -4333,14 +4327,14 @@ "bundled": true, "optional": true, "requires": { - "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" + "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" } }, "glob": { @@ -4348,12 +4342,12 @@ "bundled": true, "optional": true, "requires": { - "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" + "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" } }, "has-unicode": { @@ -4366,7 +4360,7 @@ "bundled": true, "optional": true, "requires": { - "safer-buffer": "^2.1.0" + "safer-buffer": "2.1.2" } }, "ignore-walk": { @@ -4374,7 +4368,7 @@ "bundled": true, "optional": true, "requires": { - "minimatch": "^3.0.4" + "minimatch": "3.0.4" } }, "inflight": { @@ -4382,8 +4376,8 @@ "bundled": true, "optional": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -4399,7 +4393,7 @@ "version": "1.0.0", "bundled": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "isarray": { @@ -4411,7 +4405,7 @@ "version": "3.0.4", "bundled": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -4422,8 +4416,8 @@ "version": "2.2.4", "bundled": true, "requires": { - "safe-buffer": "^5.1.1", - "yallist": "^3.0.0" + "safe-buffer": "5.1.1", + "yallist": "3.0.2" } }, "minizlib": { @@ -4431,7 +4425,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.2.4" } }, "mkdirp": { @@ -4451,9 +4445,9 @@ "bundled": true, "optional": true, "requires": { - "debug": "^2.1.2", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" + "debug": "2.6.9", + "iconv-lite": "0.4.21", + "sax": "1.2.4" } }, "node-pre-gyp": { @@ -4461,16 +4455,16 @@ "bundled": 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" + "detect-libc": "1.0.3", + "mkdirp": "0.5.1", + "needle": "2.2.0", + "nopt": "4.0.1", + "npm-packlist": "1.1.10", + "npmlog": "4.1.2", + "rc": "1.2.7", + "rimraf": "2.6.2", + "semver": "5.5.0", + "tar": "4.4.1" } }, "nopt": { @@ -4478,8 +4472,8 @@ "bundled": true, "optional": true, "requires": { - "abbrev": "1", - "osenv": "^0.1.4" + "abbrev": "1.1.1", + "osenv": "0.1.5" } }, "npm-bundled": { @@ -4492,8 +4486,8 @@ "bundled": true, "optional": true, "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" + "ignore-walk": "3.0.1", + "npm-bundled": "1.0.3" } }, "npmlog": { @@ -4501,10 +4495,10 @@ "bundled": 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" + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" } }, "number-is-nan": { @@ -4520,7 +4514,7 @@ "version": "1.4.0", "bundled": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "os-homedir": { @@ -4538,8 +4532,8 @@ "bundled": true, "optional": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "path-is-absolute": { @@ -4557,10 +4551,10 @@ "bundled": true, "optional": true, "requires": { - "deep-extend": "^0.5.1", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" + "deep-extend": "0.5.1", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" }, "dependencies": { "minimist": { @@ -4575,13 +4569,13 @@ "bundled": true, "optional": true, "requires": { - "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" + "core-util-is": "1.0.2", + "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.2" } }, "rimraf": { @@ -4589,7 +4583,7 @@ "bundled": true, "optional": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "safe-buffer": { @@ -4625,9 +4619,9 @@ "version": "1.0.2", "bundled": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "string_decoder": { @@ -4635,14 +4629,14 @@ "bundled": true, "optional": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.1" } }, "strip-ansi": { "version": "3.0.1", "bundled": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-json-comments": { @@ -4655,13 +4649,13 @@ "bundled": true, "optional": true, "requires": { - "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" + "chownr": "1.0.1", + "fs-minipass": "1.2.5", + "minipass": "2.2.4", + "minizlib": "1.1.0", + "mkdirp": "0.5.1", + "safe-buffer": "5.1.1", + "yallist": "3.0.2" } }, "util-deprecate": { @@ -4674,7 +4668,7 @@ "bundled": true, "optional": true, "requires": { - "string-width": "^1.0.2" + "string-width": "1.0.2" } }, "wrappy": { @@ -4729,7 +4723,7 @@ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "git-clone": { @@ -4742,12 +4736,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "requires": { - "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" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.1", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "glob-base": { @@ -4756,8 +4750,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "optional": true, "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" + "glob-parent": "2.0.0", + "is-glob": "2.0.1" } }, "glob-parent": { @@ -4765,7 +4759,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "requires": { - "is-glob": "^2.0.0" + "is-glob": "2.0.1" } }, "global-dirs": { @@ -4774,7 +4768,7 @@ "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "dev": true, "requires": { - "ini": "^1.3.4" + "ini": "1.3.5" } }, "globals": { @@ -4787,12 +4781,12 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "7.1.3", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" }, "dependencies": { "pify": { @@ -4808,23 +4802,23 @@ "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", "dev": true, "requires": { - "@sindresorhus/is": "^0.7.0", - "cacheable-request": "^2.1.1", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "into-stream": "^3.1.0", - "is-retry-allowed": "^1.1.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "mimic-response": "^1.0.0", - "p-cancelable": "^0.4.0", - "p-timeout": "^2.0.1", - "pify": "^3.0.0", - "safe-buffer": "^5.1.1", - "timed-out": "^4.0.1", - "url-parse-lax": "^3.0.0", - "url-to-options": "^1.0.1" + "@sindresorhus/is": "0.7.0", + "cacheable-request": "2.1.4", + "decompress-response": "3.3.0", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "into-stream": "3.1.0", + "is-retry-allowed": "1.1.0", + "isurl": "1.0.0", + "lowercase-keys": "1.0.1", + "mimic-response": "1.0.1", + "p-cancelable": "0.4.1", + "p-timeout": "2.0.1", + "pify": "3.0.0", + "safe-buffer": "5.1.2", + "timed-out": "4.0.1", + "url-parse-lax": "3.0.0", + "url-to-options": "1.0.1" } }, "graceful-fs": { @@ -4849,8 +4843,8 @@ "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", "dev": true, "requires": { - "ajv": "^5.3.0", - "har-schema": "^2.0.0" + "ajv": "5.5.2", + "har-schema": "2.0.0" } }, "has": { @@ -4858,7 +4852,7 @@ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "requires": { - "function-bind": "^1.1.1" + "function-bind": "1.1.1" } }, "has-ansi": { @@ -4866,7 +4860,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "has-binary2": { @@ -4911,7 +4905,7 @@ "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", "dev": true, "requires": { - "has-symbol-support-x": "^1.4.1" + "has-symbol-support-x": "1.4.2" } }, "has-value": { @@ -4919,9 +4913,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -4936,8 +4930,8 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { "is-number": { @@ -4945,7 +4939,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -4953,7 +4947,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -4963,7 +4957,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -4973,8 +4967,8 @@ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "hash.js": { @@ -4982,8 +4976,8 @@ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1" }, "dependencies": { "inherits": { @@ -5003,9 +4997,9 @@ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "hash.js": "1.1.5", + "minimalistic-assert": "1.0.1", + "minimalistic-crypto-utils": "1.0.1" } }, "home-or-tmp": { @@ -5013,8 +5007,8 @@ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "hosted-git-info": { @@ -5034,9 +5028,9 @@ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.14.2" } }, "iconv-lite": { @@ -5044,7 +5038,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": "2.1.2" } }, "ieee754": { @@ -5090,8 +5084,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -5109,20 +5103,20 @@ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", + "ansi-escapes": "3.1.0", + "chalk": "2.4.1", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.2.0", + "figures": "2.0.0", + "lodash": "4.17.11", "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" + "run-async": "2.3.0", + "rx-lite": "4.0.8", + "rx-lite-aggregates": "4.0.8", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" }, "dependencies": { "ansi-regex": { @@ -5135,7 +5129,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -5146,8 +5140,8 @@ "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", "dev": true, "requires": { - "from2": "^2.1.1", - "p-is-promise": "^1.1.0" + "from2": "2.3.0", + "p-is-promise": "1.1.0" } }, "invariant": { @@ -5155,7 +5149,7 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "loose-envify": "^1.0.0" + "loose-envify": "1.4.0" } }, "invert-kv": { @@ -5168,7 +5162,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-arrayish": { @@ -5181,7 +5175,7 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "requires": { - "binary-extensions": "^1.0.0" + "binary-extensions": "1.12.0" } }, "is-buffer": { @@ -5194,7 +5188,7 @@ "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-callable": { @@ -5208,7 +5202,7 @@ "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", "dev": true, "requires": { - "ci-info": "^1.5.0" + "ci-info": "1.6.0" } }, "is-data-descriptor": { @@ -5216,7 +5210,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-date-object": { @@ -5229,9 +5223,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" }, "dependencies": { "kind-of": { @@ -5253,7 +5247,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "optional": true, "requires": { - "is-primitive": "^2.0.0" + "is-primitive": "2.0.0" } }, "is-extendable": { @@ -5271,7 +5265,7 @@ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { @@ -5279,7 +5273,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.0" + "number-is-nan": "1.0.1" } }, "is-glob": { @@ -5287,7 +5281,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "is-installed-globally": { @@ -5296,8 +5290,8 @@ "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "dev": true, "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" + "global-dirs": "0.1.1", + "is-path-inside": "1.0.1" } }, "is-npm": { @@ -5312,7 +5306,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "optional": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-obj": { @@ -5337,7 +5331,7 @@ "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "requires": { - "is-path-inside": "^1.0.0" + "is-path-inside": "1.0.1" } }, "is-path-inside": { @@ -5345,7 +5339,7 @@ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "requires": { - "path-is-inside": "^1.0.1" + "path-is-inside": "1.0.2" } }, "is-plain-obj": { @@ -5359,7 +5353,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -5397,7 +5391,7 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "requires": { - "has": "^1.0.1" + "has": "1.0.3" } }, "is-resolvable": { @@ -5421,7 +5415,7 @@ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", "requires": { - "has-symbols": "^1.0.0" + "has-symbols": "1.0.0" } }, "is-typedarray": { @@ -5475,8 +5469,8 @@ "@babel/template": "7.0.0-beta.51", "@babel/traverse": "7.0.0-beta.51", "@babel/types": "7.0.0-beta.51", - "istanbul-lib-coverage": "^2.0.1", - "semver": "^5.5.0" + "istanbul-lib-coverage": "2.0.1", + "semver": "5.5.1" } }, "isurl": { @@ -5485,8 +5479,8 @@ "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", "dev": true, "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" + "has-to-string-tag-x": "1.4.1", + "is-object": "1.0.1" } }, "jest-docblock": { @@ -5505,8 +5499,8 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "1.0.10", + "esprima": "4.0.1" } }, "jsbn": { @@ -5576,7 +5570,7 @@ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", "requires": { - "array-includes": "^3.0.3" + "array-includes": "3.0.3" } }, "just-extend": { @@ -5590,10 +5584,10 @@ "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", "requires": { - "bindings": "^1.2.1", - "inherits": "^2.0.3", - "nan": "^2.2.1", - "safe-buffer": "^5.1.0" + "bindings": "1.3.0", + "inherits": "2.0.3", + "nan": "2.11.1", + "safe-buffer": "5.1.2" }, "dependencies": { "inherits": { @@ -5617,7 +5611,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "kubernetes-client": { @@ -5627,9 +5621,9 @@ "dev": true, "requires": { "fluent-openapi": "0.1.1", - "js-yaml": "^3.10.0", - "openid-client": "^2.0.0", - "request": "^2.83.0" + "js-yaml": "3.12.0", + "openid-client": "2.4.2", + "request": "2.88.0" } }, "latest-version": { @@ -5638,7 +5632,7 @@ "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", "dev": true, "requires": { - "package-json": "^4.0.0" + "package-json": "4.0.1" } }, "lcid": { @@ -5646,7 +5640,7 @@ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "lcov-parse": { @@ -5660,8 +5654,8 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "1.1.2", + "type-check": "0.3.2" } }, "load-json-file": { @@ -5669,10 +5663,10 @@ "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" }, "dependencies": { "pify": { @@ -5687,8 +5681,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "2.0.0", + "path-exists": "3.0.0" } }, "lodash": { @@ -5796,7 +5790,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" + "js-tokens": "3.0.2" } }, "lowercase-keys": { @@ -5810,8 +5804,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "make-dir": { @@ -5819,7 +5813,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "map-cache": { @@ -5838,7 +5832,7 @@ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { - "object-visit": "^1.0.0" + "object-visit": "1.0.1" } }, "math-random": { @@ -5852,9 +5846,9 @@ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "hash-base": "3.0.4", + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "media-typer": { @@ -5868,7 +5862,7 @@ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "merge-descriptors": { @@ -5894,19 +5888,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "optional": true, "requires": { - "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" + "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" } }, "mime": { @@ -5925,7 +5919,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", "requires": { - "mime-db": "~1.36.0" + "mime-db": "1.36.0" } }, "mimic-fn": { @@ -5954,7 +5948,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -5967,8 +5961,8 @@ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" + "for-in": "1.0.2", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -5976,7 +5970,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -6017,12 +6011,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { - "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" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.1", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "supports-color": { @@ -6030,7 +6024,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -6055,17 +6049,17 @@ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "arr-diff": { @@ -6119,10 +6113,10 @@ "dev": true, "requires": { "@sinonjs/formatio": "3.0.0", - "just-extend": "^3.0.0", - "lolex": "^2.3.2", - "path-to-regexp": "^1.7.0", - "text-encoding": "^0.6.4" + "just-extend": "3.0.0", + "lolex": "2.7.5", + "path-to-regexp": "1.7.0", + "text-encoding": "0.6.4" }, "dependencies": { "@sinonjs/formatio": { @@ -6146,7 +6140,7 @@ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", "requires": { - "lodash.toarray": "^4.4.0" + "lodash.toarray": "4.4.0" } }, "node-forge": { @@ -6161,21 +6155,21 @@ "integrity": "sha512-RE3P8l60Rj9ELrpPmvw6sOQ1hSyYfmQdNUMCa4EN7nCE1ux5JVX+GfXv+mfUTEMhZwNMwxBtI0+X1CKKeukSVQ==", "dev": true, "requires": { - "base64url": "^3.0.0", - "es6-promise": "^4.0.5", - "lodash.assign": "^4.0.8", - "lodash.clone": "^4.3.2", - "lodash.fill": "^3.2.2", - "lodash.flatten": "^4.2.0", - "lodash.intersection": "^4.1.2", - "lodash.merge": "^4.3.5", - "lodash.omit": "^4.2.1", - "lodash.partialright": "^4.1.3", - "lodash.pick": "^4.2.0", - "lodash.uniq": "^4.2.1", - "long": "^4.0.0", - "node-forge": "^0.7.1", - "uuid": "^3.0.1" + "base64url": "3.0.0", + "es6-promise": "4.2.5", + "lodash.assign": "4.2.0", + "lodash.clone": "4.5.0", + "lodash.fill": "3.4.0", + "lodash.flatten": "4.4.0", + "lodash.intersection": "4.4.0", + "lodash.merge": "4.6.1", + "lodash.omit": "4.5.0", + "lodash.partialright": "4.2.1", + "lodash.pick": "4.4.0", + "lodash.uniq": "4.5.0", + "long": "4.0.0", + "node-forge": "0.7.6", + "uuid": "3.3.2" } }, "node-mocks-http": { @@ -6184,16 +6178,16 @@ "integrity": "sha512-n7fj7BzRNjhQuWU/xcoRH/aOOPeLg3qMJx3mUDjwheoEmZGkThhhGMTxJZ5nnSUcXmEU1uS3gFq3VdBMhS5ZxQ==", "dev": true, "requires": { - "accepts": "^1.3.5", - "depd": "^1.1.0", - "fresh": "^0.5.2", - "merge-descriptors": "^1.0.1", - "methods": "^1.1.2", - "mime": "^1.3.4", - "net": "^1.0.2", - "parseurl": "^1.3.1", - "range-parser": "^1.2.0", - "type-is": "^1.6.16" + "accepts": "1.3.5", + "depd": "1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "1.1.2", + "mime": "1.6.0", + "net": "1.0.2", + "parseurl": "1.3.2", + "range-parser": "1.2.0", + "type-is": "1.6.16" } }, "nodemon": { @@ -6202,16 +6196,16 @@ "integrity": "sha512-hyK6vl65IPnky/ee+D3IWvVGgJa/m3No2/Xc/3wanS6Ce1MWjCzH6NnhPJ/vZM+6JFym16jtHx51lmCMB9HDtg==", "dev": true, "requires": { - "chokidar": "^2.0.2", - "debug": "^3.1.0", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.0.4", - "pstree.remy": "^1.1.0", - "semver": "^5.5.0", - "supports-color": "^5.2.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.2", - "update-notifier": "^2.3.0" + "chokidar": "2.0.4", + "debug": "3.1.0", + "ignore-by-default": "1.0.1", + "minimatch": "3.0.4", + "pstree.remy": "1.1.0", + "semver": "5.5.1", + "supports-color": "5.5.0", + "touch": "3.1.0", + "undefsafe": "2.0.2", + "update-notifier": "2.5.0" }, "dependencies": { "anymatch": { @@ -6220,8 +6214,8 @@ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" + "micromatch": "3.1.10", + "normalize-path": "2.1.1" } }, "arr-diff": { @@ -6242,16 +6236,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.3", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -6260,7 +6254,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -6271,19 +6265,19 @@ "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", "dev": true, "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.0", - "braces": "^2.3.0", - "fsevents": "^1.2.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "lodash.debounce": "^4.0.8", - "normalize-path": "^2.1.1", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0", - "upath": "^1.0.5" + "anymatch": "2.0.0", + "async-each": "1.0.1", + "braces": "2.3.2", + "fsevents": "1.2.4", + "glob-parent": "3.1.0", + "inherits": "2.0.1", + "is-binary-path": "1.0.1", + "is-glob": "4.0.0", + "lodash.debounce": "4.0.8", + "normalize-path": "2.1.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.2.1", + "upath": "1.1.0" } }, "expand-brackets": { @@ -6292,13 +6286,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "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" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "debug": { @@ -6316,7 +6310,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -6325,7 +6319,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -6334,7 +6328,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -6343,7 +6337,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -6354,7 +6348,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -6363,7 +6357,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -6374,9 +6368,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { @@ -6393,14 +6387,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -6409,7 +6403,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -6418,7 +6412,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -6429,10 +6423,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.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -6441,7 +6435,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -6452,8 +6446,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" + "is-glob": "3.1.0", + "path-dirname": "1.0.2" }, "dependencies": { "is-glob": { @@ -6462,7 +6456,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "^2.1.0" + "is-extglob": "2.1.1" } } } @@ -6473,7 +6467,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -6482,7 +6476,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -6491,9 +6485,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-extglob": { @@ -6508,7 +6502,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "^2.1.1" + "is-extglob": "2.1.1" } }, "is-number": { @@ -6517,7 +6511,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -6526,7 +6520,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -6549,19 +6543,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.13", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } }, "supports-color": { @@ -6570,7 +6564,7 @@ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -6580,7 +6574,7 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "requires": { - "abbrev": "1" + "abbrev": "1.1.1" } }, "normalize-package-data": { @@ -6588,10 +6582,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.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.7.1", + "is-builtin-module": "1.0.0", + "semver": "5.5.1", + "validate-npm-package-license": "3.0.4" } }, "normalize-path": { @@ -6599,7 +6593,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { - "remove-trailing-separator": "^1.0.1" + "remove-trailing-separator": "1.1.0" } }, "normalize-url": { @@ -6608,9 +6602,9 @@ "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", "dev": true, "requires": { - "prepend-http": "^2.0.0", - "query-string": "^5.0.1", - "sort-keys": "^2.0.0" + "prepend-http": "2.0.0", + "query-string": "5.1.1", + "sort-keys": "2.0.0" } }, "npm-run-path": { @@ -6618,7 +6612,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { @@ -6632,33 +6626,33 @@ "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", "dev": true, "requires": { - "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^1.0.0", - "convert-source-map": "^1.5.1", - "debug-log": "^1.0.1", - "default-require-extensions": "^1.0.0", - "find-cache-dir": "^0.1.1", - "find-up": "^2.1.0", - "foreground-child": "^1.5.3", - "glob": "^7.0.6", - "istanbul-lib-coverage": "^1.1.2", - "istanbul-lib-hook": "^1.1.0", - "istanbul-lib-instrument": "^1.10.0", - "istanbul-lib-report": "^1.1.3", - "istanbul-lib-source-maps": "^1.2.3", - "istanbul-reports": "^1.4.0", - "md5-hex": "^1.2.0", - "merge-source-map": "^1.1.0", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.0", - "resolve-from": "^2.0.0", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.1", - "spawn-wrap": "^1.4.2", - "test-exclude": "^4.2.0", + "archy": "1.0.0", + "arrify": "1.0.1", + "caching-transform": "1.0.1", + "convert-source-map": "1.5.1", + "debug-log": "1.0.1", + "default-require-extensions": "1.0.0", + "find-cache-dir": "0.1.1", + "find-up": "2.1.0", + "foreground-child": "1.5.6", + "glob": "7.1.2", + "istanbul-lib-coverage": "1.2.0", + "istanbul-lib-hook": "1.1.0", + "istanbul-lib-instrument": "1.10.1", + "istanbul-lib-report": "1.1.3", + "istanbul-lib-source-maps": "1.2.3", + "istanbul-reports": "1.4.0", + "md5-hex": "1.3.0", + "merge-source-map": "1.1.0", + "micromatch": "3.1.10", + "mkdirp": "0.5.1", + "resolve-from": "2.0.0", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "spawn-wrap": "1.4.2", + "test-exclude": "4.2.1", "yargs": "11.1.0", - "yargs-parser": "^8.0.0" + "yargs-parser": "8.1.0" }, "dependencies": { "align-text": { @@ -6666,9 +6660,9 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" } }, "amdefine": { @@ -6691,7 +6685,7 @@ "bundled": true, "dev": true, "requires": { - "default-require-extensions": "^1.0.0" + "default-require-extensions": "1.0.0" } }, "archy": { @@ -6744,9 +6738,9 @@ "bundled": true, "dev": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" } }, "babel-generator": { @@ -6754,14 +6748,14 @@ "bundled": true, "dev": true, "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.10", + "source-map": "0.5.7", + "trim-right": "1.0.1" } }, "babel-messages": { @@ -6769,7 +6763,7 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-runtime": { @@ -6777,8 +6771,8 @@ "bundled": true, "dev": true, "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "core-js": "2.5.6", + "regenerator-runtime": "0.11.1" } }, "babel-template": { @@ -6786,11 +6780,11 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.10" } }, "babel-traverse": { @@ -6798,15 +6792,15 @@ "bundled": true, "dev": true, "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.4", + "lodash": "4.17.10" } }, "babel-types": { @@ -6814,10 +6808,10 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.10", + "to-fast-properties": "1.0.3" } }, "babylon": { @@ -6835,13 +6829,13 @@ "bundled": true, "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.2.0", - "pascalcase": "^0.1.1" + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" }, "dependencies": { "define-property": { @@ -6849,7 +6843,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -6857,7 +6851,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -6865,7 +6859,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -6873,9 +6867,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -6895,7 +6889,7 @@ "bundled": true, "dev": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -6904,16 +6898,16 @@ "bundled": true, "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -6921,7 +6915,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -6936,15 +6930,15 @@ "bundled": true, "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" }, "dependencies": { "isobject": { @@ -6959,9 +6953,9 @@ "bundled": true, "dev": true, "requires": { - "md5-hex": "^1.2.0", - "mkdirp": "^0.5.1", - "write-file-atomic": "^1.1.4" + "md5-hex": "1.3.0", + "mkdirp": "0.5.1", + "write-file-atomic": "1.3.4" } }, "camelcase": { @@ -6976,8 +6970,8 @@ "dev": true, "optional": true, "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" + "align-text": "0.1.4", + "lazy-cache": "1.0.4" } }, "chalk": { @@ -6985,11 +6979,11 @@ "bundled": true, "dev": true, "requires": { - "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" + "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" } }, "class-utils": { @@ -6997,10 +6991,10 @@ "bundled": true, "dev": true, "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" }, "dependencies": { "define-property": { @@ -7008,7 +7002,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "isobject": { @@ -7024,8 +7018,8 @@ "dev": true, "optional": true, "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", + "center-align": "0.1.3", + "right-align": "0.1.3", "wordwrap": "0.0.2" }, "dependencies": { @@ -7047,8 +7041,8 @@ "bundled": true, "dev": true, "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "map-visit": "1.0.0", + "object-visit": "1.0.1" } }, "commondir": { @@ -7086,8 +7080,8 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "which": "1.3.0" } }, "debug": { @@ -7118,7 +7112,7 @@ "bundled": true, "dev": true, "requires": { - "strip-bom": "^2.0.0" + "strip-bom": "2.0.0" } }, "define-property": { @@ -7126,8 +7120,8 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "is-descriptor": "1.0.2", + "isobject": "3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -7135,7 +7129,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -7143,7 +7137,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -7151,9 +7145,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -7173,7 +7167,7 @@ "bundled": true, "dev": true, "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "error-ex": { @@ -7181,7 +7175,7 @@ "bundled": true, "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "escape-string-regexp": { @@ -7199,13 +7193,13 @@ "bundled": true, "dev": true, "requires": { - "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" + "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" }, "dependencies": { "cross-spawn": { @@ -7213,9 +7207,9 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.0" } } } @@ -7225,13 +7219,13 @@ "bundled": true, "dev": true, "requires": { - "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" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -7239,7 +7233,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -7247,7 +7241,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -7257,8 +7251,8 @@ "bundled": true, "dev": true, "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -7266,7 +7260,7 @@ "bundled": true, "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -7276,14 +7270,14 @@ "bundled": true, "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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -7291,7 +7285,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -7299,7 +7293,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -7307,7 +7301,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -7315,7 +7309,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -7323,9 +7317,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "kind-of": { @@ -7340,10 +7334,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -7351,7 +7345,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -7361,9 +7355,9 @@ "bundled": true, "dev": true, "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" + "commondir": "1.0.1", + "mkdirp": "0.5.1", + "pkg-dir": "1.0.0" } }, "find-up": { @@ -7371,7 +7365,7 @@ "bundled": true, "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "for-in": { @@ -7384,8 +7378,8 @@ "bundled": true, "dev": true, "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" + "cross-spawn": "4.0.2", + "signal-exit": "3.0.2" } }, "fragment-cache": { @@ -7393,7 +7387,7 @@ "bundled": true, "dev": true, "requires": { - "map-cache": "^0.2.2" + "map-cache": "0.2.2" } }, "fs.realpath": { @@ -7421,12 +7415,12 @@ "bundled": true, "dev": true, "requires": { - "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" + "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" } }, "globals": { @@ -7444,10 +7438,10 @@ "bundled": true, "dev": true, "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" }, "dependencies": { "source-map": { @@ -7455,7 +7449,7 @@ "bundled": true, "dev": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } @@ -7465,7 +7459,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "has-flag": { @@ -7478,9 +7472,9 @@ "bundled": true, "dev": true, "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -7495,8 +7489,8 @@ "bundled": true, "dev": true, "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { "is-number": { @@ -7504,7 +7498,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -7512,7 +7506,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -7522,7 +7516,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -7542,8 +7536,8 @@ "bundled": true, "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -7556,7 +7550,7 @@ "bundled": true, "dev": true, "requires": { - "loose-envify": "^1.0.0" + "loose-envify": "1.3.1" } }, "invert-kv": { @@ -7569,7 +7563,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-arrayish": { @@ -7587,7 +7581,7 @@ "bundled": true, "dev": true, "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-data-descriptor": { @@ -7595,7 +7589,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-descriptor": { @@ -7603,9 +7597,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" }, "dependencies": { "kind-of": { @@ -7625,7 +7619,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { @@ -7638,7 +7632,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-odd": { @@ -7646,7 +7640,7 @@ "bundled": true, "dev": true, "requires": { - "is-number": "^4.0.0" + "is-number": "4.0.0" }, "dependencies": { "is-number": { @@ -7661,7 +7655,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -7711,7 +7705,7 @@ "bundled": true, "dev": true, "requires": { - "append-transform": "^0.4.0" + "append-transform": "0.4.0" } }, "istanbul-lib-instrument": { @@ -7719,13 +7713,13 @@ "bundled": true, "dev": true, "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.2.0", - "semver": "^5.3.0" + "babel-generator": "6.26.1", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "istanbul-lib-coverage": "1.2.0", + "semver": "5.5.0" } }, "istanbul-lib-report": { @@ -7733,10 +7727,10 @@ "bundled": true, "dev": true, "requires": { - "istanbul-lib-coverage": "^1.1.2", - "mkdirp": "^0.5.1", - "path-parse": "^1.0.5", - "supports-color": "^3.1.2" + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" }, "dependencies": { "supports-color": { @@ -7744,7 +7738,7 @@ "bundled": true, "dev": true, "requires": { - "has-flag": "^1.0.0" + "has-flag": "1.0.0" } } } @@ -7754,11 +7748,11 @@ "bundled": true, "dev": true, "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^1.1.2", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.1", - "source-map": "^0.5.3" + "debug": "3.1.0", + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" }, "dependencies": { "debug": { @@ -7776,7 +7770,7 @@ "bundled": true, "dev": true, "requires": { - "handlebars": "^4.0.3" + "handlebars": "4.0.11" } }, "js-tokens": { @@ -7794,7 +7788,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "lazy-cache": { @@ -7808,7 +7802,7 @@ "bundled": true, "dev": true, "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "load-json-file": { @@ -7816,11 +7810,11 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" } }, "locate-path": { @@ -7828,8 +7822,8 @@ "bundled": true, "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": { @@ -7854,7 +7848,7 @@ "bundled": true, "dev": true, "requires": { - "js-tokens": "^3.0.0" + "js-tokens": "3.0.2" } }, "lru-cache": { @@ -7862,8 +7856,8 @@ "bundled": true, "dev": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "map-cache": { @@ -7876,7 +7870,7 @@ "bundled": true, "dev": true, "requires": { - "object-visit": "^1.0.0" + "object-visit": "1.0.1" } }, "md5-hex": { @@ -7884,7 +7878,7 @@ "bundled": true, "dev": true, "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "md5-o-matic": { @@ -7897,7 +7891,7 @@ "bundled": true, "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "merge-source-map": { @@ -7905,7 +7899,7 @@ "bundled": true, "dev": true, "requires": { - "source-map": "^0.6.1" + "source-map": "0.6.1" }, "dependencies": { "source-map": { @@ -7920,19 +7914,19 @@ "bundled": true, "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "kind-of": { @@ -7952,7 +7946,7 @@ "bundled": true, "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -7965,8 +7959,8 @@ "bundled": true, "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": { @@ -7974,7 +7968,7 @@ "bundled": true, "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -7997,18 +7991,18 @@ "bundled": true, "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-odd": "^2.0.0", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-odd": "2.0.0", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "arr-diff": { @@ -8033,10 +8027,10 @@ "bundled": true, "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.6.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" } }, "npm-run-path": { @@ -8044,7 +8038,7 @@ "bundled": true, "dev": true, "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { @@ -8062,9 +8056,9 @@ "bundled": true, "dev": true, "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" }, "dependencies": { "define-property": { @@ -8072,7 +8066,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -8082,7 +8076,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "^3.0.0" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -8097,7 +8091,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -8112,7 +8106,7 @@ "bundled": true, "dev": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "optimist": { @@ -8120,8 +8114,8 @@ "bundled": true, "dev": true, "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" + "minimist": "0.0.8", + "wordwrap": "0.0.3" } }, "os-homedir": { @@ -8134,9 +8128,9 @@ "bundled": true, "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" } }, "p-finally": { @@ -8149,7 +8143,7 @@ "bundled": true, "dev": true, "requires": { - "p-try": "^1.0.0" + "p-try": "1.0.0" } }, "p-locate": { @@ -8157,7 +8151,7 @@ "bundled": true, "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.2.0" } }, "p-try": { @@ -8170,7 +8164,7 @@ "bundled": true, "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.1" } }, "pascalcase": { @@ -8183,7 +8177,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie-promise": "^2.0.0" + "pinkie-promise": "2.0.1" } }, "path-is-absolute": { @@ -8206,9 +8200,9 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "pify": { @@ -8226,7 +8220,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "pkg-dir": { @@ -8234,7 +8228,7 @@ "bundled": true, "dev": true, "requires": { - "find-up": "^1.0.0" + "find-up": "1.1.2" }, "dependencies": { "find-up": { @@ -8242,8 +8236,8 @@ "bundled": true, "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } @@ -8263,9 +8257,9 @@ "bundled": true, "dev": true, "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" } }, "read-pkg-up": { @@ -8273,8 +8267,8 @@ "bundled": true, "dev": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "find-up": "1.1.2", + "read-pkg": "1.1.0" }, "dependencies": { "find-up": { @@ -8282,8 +8276,8 @@ "bundled": true, "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } @@ -8298,8 +8292,8 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" } }, "repeat-element": { @@ -8317,7 +8311,7 @@ "bundled": true, "dev": true, "requires": { - "is-finite": "^1.0.0" + "is-finite": "1.0.2" } }, "require-directory": { @@ -8351,7 +8345,7 @@ "dev": true, "optional": true, "requires": { - "align-text": "^0.1.1" + "align-text": "0.1.4" } }, "rimraf": { @@ -8359,7 +8353,7 @@ "bundled": true, "dev": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "safe-regex": { @@ -8367,7 +8361,7 @@ "bundled": true, "dev": true, "requires": { - "ret": "~0.1.10" + "ret": "0.1.15" } }, "semver": { @@ -8385,10 +8379,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" }, "dependencies": { "extend-shallow": { @@ -8396,7 +8390,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -8406,7 +8400,7 @@ "bundled": true, "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -8429,14 +8423,14 @@ "bundled": true, "dev": true, "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "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": "3.1.0" }, "dependencies": { "define-property": { @@ -8444,7 +8438,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -8452,7 +8446,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -8462,9 +8456,9 @@ "bundled": true, "dev": true, "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" }, "dependencies": { "define-property": { @@ -8472,7 +8466,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -8480,7 +8474,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -8488,7 +8482,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -8496,9 +8490,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -8518,7 +8512,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.2.0" + "kind-of": "3.2.2" } }, "source-map": { @@ -8531,11 +8525,11 @@ "bundled": true, "dev": true, "requires": { - "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" + "atob": "2.1.1", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" } }, "source-map-url": { @@ -8548,12 +8542,12 @@ "bundled": true, "dev": true, "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" + "foreground-child": "1.5.6", + "mkdirp": "0.5.1", + "os-homedir": "1.0.2", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "which": "1.3.0" } }, "spdx-correct": { @@ -8561,8 +8555,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, "spdx-exceptions": { @@ -8575,8 +8569,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" } }, "spdx-license-ids": { @@ -8589,7 +8583,7 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^3.0.0" + "extend-shallow": "3.0.2" } }, "static-extend": { @@ -8597,8 +8591,8 @@ "bundled": true, "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": { @@ -8606,7 +8600,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -8616,8 +8610,8 @@ "bundled": true, "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" }, "dependencies": { "ansi-regex": { @@ -8630,7 +8624,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -8640,7 +8634,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-bom": { @@ -8648,7 +8642,7 @@ "bundled": true, "dev": true, "requires": { - "is-utf8": "^0.2.0" + "is-utf8": "0.2.1" } }, "strip-eof": { @@ -8666,11 +8660,11 @@ "bundled": true, "dev": true, "requires": { - "arrify": "^1.0.1", - "micromatch": "^3.1.8", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" + "arrify": "1.0.1", + "micromatch": "3.1.10", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" }, "dependencies": { "arr-diff": { @@ -8688,16 +8682,16 @@ "bundled": true, "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -8705,7 +8699,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -8715,13 +8709,13 @@ "bundled": true, "dev": true, "requires": { - "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" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -8729,7 +8723,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -8737,7 +8731,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -8745,7 +8739,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -8753,7 +8747,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -8763,7 +8757,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -8771,7 +8765,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -8781,9 +8775,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { @@ -8798,14 +8792,14 @@ "bundled": true, "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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -8813,7 +8807,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -8821,7 +8815,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -8831,10 +8825,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -8842,7 +8836,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -8852,7 +8846,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -8860,7 +8854,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -8868,9 +8862,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-number": { @@ -8878,7 +8872,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -8886,7 +8880,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -8906,19 +8900,19 @@ "bundled": true, "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } } } @@ -8933,7 +8927,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "to-regex": { @@ -8941,10 +8935,10 @@ "bundled": true, "dev": true, "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" } }, "to-regex-range": { @@ -8952,8 +8946,8 @@ "bundled": true, "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "3.0.0", + "repeat-string": "1.6.1" }, "dependencies": { "is-number": { @@ -8961,7 +8955,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } } } @@ -8977,9 +8971,9 @@ "dev": true, "optional": true, "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" }, "dependencies": { "yargs": { @@ -8988,9 +8982,9 @@ "dev": true, "optional": true, "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", "window-size": "0.1.0" } } @@ -9007,10 +9001,10 @@ "bundled": true, "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": { "extend-shallow": { @@ -9018,7 +9012,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "set-value": { @@ -9026,10 +9020,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" } } } @@ -9039,8 +9033,8 @@ "bundled": true, "dev": true, "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "has-value": "0.3.1", + "isobject": "3.0.1" }, "dependencies": { "has-value": { @@ -9048,9 +9042,9 @@ "bundled": true, "dev": true, "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" }, "dependencies": { "isobject": { @@ -9085,7 +9079,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.2" + "kind-of": "6.0.2" }, "dependencies": { "kind-of": { @@ -9100,8 +9094,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "which": { @@ -9109,7 +9103,7 @@ "bundled": true, "dev": true, "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -9133,8 +9127,8 @@ "bundled": true, "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -9142,7 +9136,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "string-width": { @@ -9150,9 +9144,9 @@ "bundled": true, "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -9167,9 +9161,9 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" } }, "y18n": { @@ -9187,18 +9181,18 @@ "bundled": true, "dev": true, "requires": { - "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": "^9.0.2" + "cliui": "4.1.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": "9.0.2" }, "dependencies": { "ansi-regex": { @@ -9216,9 +9210,9 @@ "bundled": true, "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" } }, "strip-ansi": { @@ -9226,7 +9220,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } }, "yargs-parser": { @@ -9234,7 +9228,7 @@ "bundled": true, "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" } } } @@ -9244,7 +9238,7 @@ "bundled": true, "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" }, "dependencies": { "camelcase": { @@ -9277,9 +9271,9 @@ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" }, "dependencies": { "define-property": { @@ -9287,7 +9281,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -9307,7 +9301,7 @@ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { - "isobject": "^3.0.0" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -9323,8 +9317,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "optional": true, "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" + "for-own": "0.1.5", + "is-extendable": "0.1.1" } }, "object.pick": { @@ -9332,7 +9326,7 @@ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -9348,7 +9342,7 @@ "integrity": "sha512-oLnVSEcNZkw01sB5aFR+2iJmW4oyC1PIMJmd3FMBGDuPTy5ZtEuX5WNhKMRarJIMOq8NiOwIB6eJB9AhgYwBTg==", "dev": true, "requires": { - "base64url": "^3.0.0" + "base64url": "3.0.0" } }, "once": { @@ -9356,7 +9350,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "onetime": { @@ -9364,7 +9358,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "openid-client": { @@ -9373,14 +9367,14 @@ "integrity": "sha512-8HP7SCamsQKC8JGosk0Hs+qXfDyO5lojRW+gE6uW8Tjh4h/B8HzZeppyzo27p1Au0ziTKbI+umHuyZST/t6jXQ==", "dev": true, "requires": { - "base64url": "^3.0.0", - "got": "^8.3.2", - "lodash": "^4.17.11", - "lru-cache": "^4.1.3", - "node-jose": "^1.0.0", - "oidc-token-hash": "^3.0.1", - "p-any": "^1.1.0", - "uuid": "^3.3.2" + "base64url": "3.0.0", + "got": "8.3.2", + "lodash": "4.17.11", + "lru-cache": "4.1.3", + "node-jose": "1.0.0", + "oidc-token-hash": "3.0.1", + "p-any": "1.1.0", + "uuid": "3.3.2" } }, "optionator": { @@ -9388,12 +9382,12 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" } }, "os-homedir": { @@ -9406,9 +9400,9 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "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" } }, "os-tmpdir": { @@ -9421,9 +9415,9 @@ "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", "requires": { - "graceful-fs": "^4.1.4", - "mkdirp": "^0.5.1", - "object-assign": "^4.1.0" + "graceful-fs": "4.1.11", + "mkdirp": "0.5.1", + "object-assign": "4.1.1" } }, "p-any": { @@ -9432,7 +9426,7 @@ "integrity": "sha512-Ef0tVa4CZ5pTAmKn+Cg3w8ABBXh+hHO1aV8281dKOoUHfX+3tjG2EaFcC+aZyagg9b4EYGsHEjz21DnEE8Og2g==", "dev": true, "requires": { - "p-some": "^2.0.0" + "p-some": "2.0.1" } }, "p-cancelable": { @@ -9457,7 +9451,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "requires": { - "p-try": "^1.0.0" + "p-try": "1.0.0" } }, "p-locate": { @@ -9465,7 +9459,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.3.0" } }, "p-some": { @@ -9474,7 +9468,7 @@ "integrity": "sha1-Zdh8ixVO289SIdFnd4ttLhUPbwY=", "dev": true, "requires": { - "aggregate-error": "^1.0.0" + "aggregate-error": "1.0.0" } }, "p-timeout": { @@ -9483,7 +9477,7 @@ "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", "dev": true, "requires": { - "p-finally": "^1.0.0" + "p-finally": "1.0.0" } }, "p-try": { @@ -9497,10 +9491,10 @@ "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", "dev": true, "requires": { - "got": "^6.7.1", - "registry-auth-token": "^3.0.1", - "registry-url": "^3.0.3", - "semver": "^5.1.0" + "got": "6.7.1", + "registry-auth-token": "3.3.2", + "registry-url": "3.1.0", + "semver": "5.5.1" }, "dependencies": { "got": { @@ -9509,17 +9503,17 @@ "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "dev": true, "requires": { - "create-error-class": "^3.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" + "create-error-class": "3.0.2", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "is-redirect": "1.0.0", + "is-retry-allowed": "1.1.0", + "is-stream": "1.1.0", + "lowercase-keys": "1.0.1", + "safe-buffer": "5.1.2", + "timed-out": "4.0.1", + "unzip-response": "2.0.1", + "url-parse-lax": "1.0.0" } }, "prepend-http": { @@ -9534,7 +9528,7 @@ "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "dev": true, "requires": { - "prepend-http": "^1.0.1" + "prepend-http": "1.0.4" } } } @@ -9545,10 +9539,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "optional": true, "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" } }, "parse-json": { @@ -9556,7 +9550,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.2" } }, "parseqs": { @@ -9564,7 +9558,7 @@ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "requires": { - "better-assert": "~1.0.0" + "better-assert": "1.0.2" } }, "parseuri": { @@ -9572,7 +9566,7 @@ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "requires": { - "better-assert": "~1.0.0" + "better-assert": "1.0.2" } }, "parseurl": { @@ -9639,7 +9633,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { - "pify": "^2.0.0" + "pify": "2.3.0" }, "dependencies": { "pify": { @@ -9661,7 +9655,7 @@ "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", "dev": true, "requires": { - "through": "~2.3" + "through": "2.3.8" } }, "pbkdf2": { @@ -9669,11 +9663,11 @@ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ripemd160": "2.0.2", + "safe-buffer": "5.1.2", + "sha.js": "2.4.11" } }, "performance-now": { @@ -9697,7 +9691,7 @@ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "pkg-conf": { @@ -9705,8 +9699,8 @@ "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", "requires": { - "find-up": "^2.0.0", - "load-json-file": "^4.0.0" + "find-up": "2.1.0", + "load-json-file": "4.0.0" }, "dependencies": { "load-json-file": { @@ -9714,10 +9708,10 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.11", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" } }, "parse-json": { @@ -9725,8 +9719,8 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" } } } @@ -9736,9 +9730,9 @@ "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=", "requires": { - "debug-log": "^1.0.0", - "find-root": "^1.0.0", - "xtend": "^4.0.1" + "debug-log": "1.0.1", + "find-root": "1.1.0", + "xtend": "4.0.1" } }, "pkg-dir": { @@ -9746,7 +9740,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "requires": { - "find-up": "^1.0.0" + "find-up": "1.1.2" }, "dependencies": { "find-up": { @@ -9754,8 +9748,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } }, "path-exists": { @@ -9763,7 +9757,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "requires": { - "pinkie-promise": "^2.0.0" + "pinkie-promise": "2.0.1" } } } @@ -9826,8 +9820,8 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" + "loose-envify": "1.4.0", + "object-assign": "4.1.1" } }, "ps-tree": { @@ -9836,7 +9830,7 @@ "integrity": "sha1-tCGyQUDWID8e08dplrRCewjowBQ=", "dev": true, "requires": { - "event-stream": "~3.3.0" + "event-stream": "3.3.6" } }, "pseudomap": { @@ -9856,7 +9850,7 @@ "integrity": "sha512-q5I5vLRMVtdWa8n/3UEzZX7Lfghzrg9eG2IKk2ENLSofKRCXVqMvMUHxCKgXNaqH/8ebhBxrqftHWnyTFweJ5Q==", "dev": true, "requires": { - "ps-tree": "^1.1.0" + "ps-tree": "1.1.0" } }, "punycode": { @@ -9870,7 +9864,7 @@ "resolved": "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", "integrity": "sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=", "requires": { - "bitcoin-ops": "^1.3.0" + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" } }, "qrcode": { @@ -9878,11 +9872,11 @@ "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.3.0.tgz", "integrity": "sha512-HFE7drEGhVoPxL1Ilm/zV+wkNJzUa8zL2nXP30vzo78EXAnHPStVOt2iZUIOfgmELtAbSkw/Z8igqu/TbNDGrQ==", "requires": { - "can-promise": "^0.0.1", - "dijkstrajs": "^1.0.1", - "isarray": "^2.0.1", - "pngjs": "^3.3.0", - "yargs": "^8.0.2" + "can-promise": "0.0.1", + "dijkstrajs": "1.0.1", + "isarray": "2.0.4", + "pngjs": "3.3.3", + "yargs": "8.0.2" }, "dependencies": { "isarray": { @@ -9903,9 +9897,9 @@ "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", "dev": true, "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" + "decode-uri-component": "0.2.0", + "object-assign": "4.1.1", + "strict-uri-encode": "1.1.0" } }, "randomatic": { @@ -9914,9 +9908,9 @@ "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==", "optional": true, "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" + "is-number": "4.0.0", + "kind-of": "6.0.2", + "math-random": "1.0.1" }, "dependencies": { "is-number": { @@ -9938,7 +9932,7 @@ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "requires": { - "safe-buffer": "^5.1.0" + "safe-buffer": "5.1.2" } }, "range-parser": { @@ -9953,10 +9947,10 @@ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" + "deep-extend": "0.6.0", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" }, "dependencies": { "minimist": { @@ -9972,9 +9966,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" } }, "read-pkg-up": { @@ -9982,8 +9976,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" + "find-up": "2.1.0", + "read-pkg": "2.0.0" } }, "readable-stream": { @@ -9991,13 +9985,13 @@ "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "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" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.2", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" }, "dependencies": { "inherits": { @@ -10012,9 +10006,9 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" + "graceful-fs": "4.1.11", + "micromatch": "3.1.10", + "readable-stream": "2.3.6" }, "dependencies": { "arr-diff": { @@ -10032,16 +10026,16 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.3", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -10049,7 +10043,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -10067,13 +10061,13 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { - "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" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -10081,7 +10075,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -10089,7 +10083,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -10097,7 +10091,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -10105,7 +10099,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -10115,7 +10109,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -10123,7 +10117,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -10133,9 +10127,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { @@ -10150,14 +10144,14 @@ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -10165,7 +10159,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -10173,7 +10167,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -10183,10 +10177,10 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -10194,7 +10188,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -10204,7 +10198,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -10212,7 +10206,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -10220,9 +10214,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-number": { @@ -10230,7 +10224,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -10238,7 +10232,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -10258,19 +10252,19 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.13", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } } } @@ -10290,9 +10284,9 @@ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "requires": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "private": "0.1.8" } }, "regex-cache": { @@ -10301,7 +10295,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "optional": true, "requires": { - "is-equal-shallow": "^0.1.3" + "is-equal-shallow": "0.1.3" } }, "regex-not": { @@ -10309,8 +10303,8 @@ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" } }, "regexpp": { @@ -10324,9 +10318,9 @@ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" + "regenerate": "1.4.0", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" } }, "registry-auth-token": { @@ -10335,8 +10329,8 @@ "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", "dev": true, "requires": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" + "rc": "1.2.8", + "safe-buffer": "5.1.2" } }, "registry-url": { @@ -10345,7 +10339,7 @@ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "dev": true, "requires": { - "rc": "^1.0.1" + "rc": "1.2.8" } }, "regjsgen": { @@ -10358,7 +10352,7 @@ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "requires": { - "jsesc": "~0.5.0" + "jsesc": "0.5.0" }, "dependencies": { "jsesc": { @@ -10388,7 +10382,7 @@ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "requires": { - "is-finite": "^1.0.0" + "is-finite": "1.0.2" } }, "repl.history": { @@ -10402,26 +10396,26 @@ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "dev": true, "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" + "aws-sign2": "0.7.0", + "aws4": "1.8.0", + "caseless": "0.12.0", + "combined-stream": "1.0.7", + "extend": "3.0.2", + "forever-agent": "0.6.1", + "form-data": "2.3.2", + "har-validator": "5.1.0", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.20", + "oauth-sign": "0.9.0", + "performance-now": "2.1.0", + "qs": "6.5.2", + "safe-buffer": "5.1.2", + "tough-cookie": "2.4.3", + "tunnel-agent": "0.6.0", + "uuid": "3.3.2" } }, "require-directory": { @@ -10439,8 +10433,8 @@ "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" + "caller-path": "0.1.0", + "resolve-from": "1.0.1" } }, "resolve": { @@ -10448,7 +10442,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "requires": { - "path-parse": "^1.0.5" + "path-parse": "1.0.6" } }, "resolve-from": { @@ -10467,7 +10461,7 @@ "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", "dev": true, "requires": { - "lowercase-keys": "^1.0.0" + "lowercase-keys": "1.0.1" } }, "restore-cursor": { @@ -10475,8 +10469,8 @@ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "onetime": "2.0.1", + "signal-exit": "3.0.2" } }, "resumer": { @@ -10484,7 +10478,7 @@ "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", "requires": { - "through": "~2.3.4" + "through": "2.3.8" } }, "ret": { @@ -10497,7 +10491,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "glob": "^7.0.5" + "glob": "7.1.3" } }, "ripemd160": { @@ -10505,8 +10499,8 @@ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "hash-base": "3.0.4", + "inherits": "2.0.1" } }, "run-async": { @@ -10514,7 +10508,7 @@ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "requires": { - "is-promise": "^2.1.0" + "is-promise": "2.1.0" } }, "run-parallel": { @@ -10532,7 +10526,7 @@ "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "requires": { - "rx-lite": "*" + "rx-lite": "4.0.8" } }, "rxjs": { @@ -10541,7 +10535,7 @@ "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", "dev": true, "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.3" } }, "safe-buffer": { @@ -10554,7 +10548,7 @@ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { - "ret": "~0.1.10" + "ret": "0.1.15" } }, "safer-buffer": { @@ -10573,7 +10567,7 @@ "resolved": "https://registry.npmjs.org/satoshi-bitcoin/-/satoshi-bitcoin-1.0.4.tgz", "integrity": "sha1-0AK2dwddXLvywhGo3zJUvN9QseQ=", "requires": { - "big.js": "^3.1.3" + "big.js": "3.2.0" } }, "scryptsy": { @@ -10586,14 +10580,14 @@ "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.5.2.tgz", "integrity": "sha512-iin3kojdybY6NArd+UFsoTuapOF7bnJNf2UbcWXaY3z+E1sJDipl60vtzB5hbO/uquBu7z0fd4VC4Irp+xoFVQ==", "requires": { - "bindings": "^1.2.1", - "bip66": "^1.1.3", - "bn.js": "^4.11.3", - "create-hash": "^1.1.2", - "drbg.js": "^1.0.1", - "elliptic": "^6.2.3", - "nan": "^2.2.1", - "safe-buffer": "^5.1.0" + "bindings": "1.3.0", + "bip66": "1.1.5", + "bn.js": "4.11.8", + "create-hash": "1.2.0", + "drbg.js": "1.0.1", + "elliptic": "6.4.1", + "nan": "2.11.1", + "safe-buffer": "5.1.2" } }, "semver": { @@ -10607,7 +10601,7 @@ "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "dev": true, "requires": { - "semver": "^5.0.3" + "semver": "5.5.1" } }, "set-blocking": { @@ -10620,10 +10614,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" }, "dependencies": { "extend-shallow": { @@ -10631,7 +10625,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -10641,8 +10635,8 @@ "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "shebang-command": { @@ -10650,7 +10644,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -10669,13 +10663,13 @@ "integrity": "sha512-trdx+mB0VBBgoYucy6a9L7/jfQOmvGeaKZT4OOJ+lPAtI8623xyGr8wLiE4eojzBS8G9yXbhx42GHUOVLr4X2w==", "dev": true, "requires": { - "@sinonjs/formatio": "^2.0.0", - "diff": "^3.1.0", - "lodash.get": "^4.4.2", - "lolex": "^2.2.0", - "nise": "^1.2.0", - "supports-color": "^5.1.0", - "type-detect": "^4.0.5" + "@sinonjs/formatio": "2.0.0", + "diff": "3.5.0", + "lodash.get": "4.4.2", + "lolex": "2.7.5", + "nise": "1.4.5", + "supports-color": "5.5.0", + "type-detect": "4.0.8" }, "dependencies": { "supports-color": { @@ -10684,7 +10678,7 @@ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -10699,7 +10693,7 @@ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "requires": { - "is-fullwidth-code-point": "^2.0.0" + "is-fullwidth-code-point": "2.0.0" }, "dependencies": { "is-fullwidth-code-point": { @@ -10714,14 +10708,14 @@ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "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.2", + "use": "3.1.1" }, "dependencies": { "debug": { @@ -10737,7 +10731,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -10745,7 +10739,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -10755,9 +10749,9 @@ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" }, "dependencies": { "define-property": { @@ -10765,7 +10759,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -10773,7 +10767,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -10781,7 +10775,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -10789,9 +10783,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -10811,7 +10805,7 @@ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "requires": { - "kind-of": "^3.2.0" + "kind-of": "3.2.2" } }, "socket.io": { @@ -10819,12 +10813,12 @@ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", "requires": { - "debug": "~3.1.0", - "engine.io": "~3.2.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", + "debug": "3.1.0", + "engine.io": "3.2.0", + "has-binary2": "1.0.3", + "socket.io-adapter": "1.1.1", "socket.io-client": "2.1.1", - "socket.io-parser": "~3.2.0" + "socket.io-parser": "3.2.0" } }, "socket.io-adapter": { @@ -10841,15 +10835,15 @@ "base64-arraybuffer": "0.1.5", "component-bind": "1.0.0", "component-emitter": "1.2.1", - "debug": "~3.1.0", - "engine.io-client": "~3.2.0", - "has-binary2": "~1.0.2", + "debug": "3.1.0", + "engine.io-client": "3.2.1", + "has-binary2": "1.0.3", "has-cors": "1.1.0", "indexof": "0.0.1", "object-component": "0.0.3", "parseqs": "0.0.5", "parseuri": "0.0.5", - "socket.io-parser": "~3.2.0", + "socket.io-parser": "3.2.0", "to-array": "0.1.4" } }, @@ -10859,7 +10853,7 @@ "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", "requires": { "component-emitter": "1.2.1", - "debug": "~3.1.0", + "debug": "3.1.0", "isarray": "2.0.1" }, "dependencies": { @@ -10876,7 +10870,7 @@ "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", "dev": true, "requires": { - "is-plain-obj": "^1.0.0" + "is-plain-obj": "1.1.0" } }, "source-map": { @@ -10889,11 +10883,11 @@ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "atob": "2.1.2", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" } }, "source-map-support": { @@ -10901,7 +10895,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "requires": { - "source-map": "^0.5.6" + "source-map": "0.5.7" } }, "source-map-url": { @@ -10914,8 +10908,8 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz", "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==", "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.1" } }, "spdx-exceptions": { @@ -10928,8 +10922,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.2.0", + "spdx-license-ids": "3.0.1" } }, "spdx-license-ids": { @@ -10943,7 +10937,7 @@ "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dev": true, "requires": { - "through": "2" + "through": "2.3.8" } }, "split-string": { @@ -10951,7 +10945,7 @@ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "requires": { - "extend-shallow": "^3.0.0" + "extend-shallow": "3.0.2" } }, "sprintf-js": { @@ -10965,15 +10959,15 @@ "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", "dev": true, "requires": { - "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" + "asn1": "0.2.4", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.2", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.2", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "safer-buffer": "2.1.2", + "tweetnacl": "0.14.5" } }, "standard": { @@ -10981,15 +10975,15 @@ "resolved": "http://registry.npmjs.org/standard/-/standard-11.0.1.tgz", "integrity": "sha512-nu0jAcHiSc8H+gJCXeiziMVZNDYi8MuqrYJKxTgjP4xKXZMKm311boqQIzDrYI/ktosltxt2CbDjYQs9ANC8IA==", "requires": { - "eslint": "~4.18.0", + "eslint": "4.18.2", "eslint-config-standard": "11.0.0", "eslint-config-standard-jsx": "5.0.0", - "eslint-plugin-import": "~2.9.0", - "eslint-plugin-node": "~6.0.0", - "eslint-plugin-promise": "~3.7.0", - "eslint-plugin-react": "~7.7.0", - "eslint-plugin-standard": "~3.0.1", - "standard-engine": "~8.0.0" + "eslint-plugin-import": "2.9.0", + "eslint-plugin-node": "6.0.1", + "eslint-plugin-promise": "3.7.0", + "eslint-plugin-react": "7.7.0", + "eslint-plugin-standard": "3.0.1", + "standard-engine": "8.0.1" }, "dependencies": { "ansi-regex": { @@ -11002,43 +10996,43 @@ "resolved": "http://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", "requires": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", - "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.2", - "esquery": "^1.0.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.0.1", - "ignore": "^3.3.3", - "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "require-uncached": "^1.0.3", - "semver": "^5.3.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", + "ajv": "5.5.2", + "babel-code-frame": "6.26.0", + "chalk": "2.4.1", + "concat-stream": "1.6.2", + "cross-spawn": "5.1.0", + "debug": "3.1.0", + "doctrine": "2.1.0", + "eslint-scope": "3.7.3", + "eslint-visitor-keys": "1.0.0", + "espree": "3.5.4", + "esquery": "1.0.1", + "esutils": "2.0.2", + "file-entry-cache": "2.0.0", + "functional-red-black-tree": "1.0.1", + "glob": "7.1.3", + "globals": "11.8.0", + "ignore": "3.3.10", + "imurmurhash": "0.1.4", + "inquirer": "3.3.0", + "is-resolvable": "1.1.0", + "js-yaml": "3.12.0", + "json-stable-stringify-without-jsonify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.11", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "7.0.0", + "progress": "2.0.0", + "require-uncached": "1.0.3", + "semver": "5.5.1", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", "table": "4.0.2", - "text-table": "~0.2.0" + "text-table": "0.2.0" } }, "eslint-plugin-node": { @@ -11046,10 +11040,10 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz", "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", "requires": { - "ignore": "^3.3.6", - "minimatch": "^3.0.4", - "resolve": "^1.3.3", - "semver": "^5.4.1" + "ignore": "3.3.10", + "minimatch": "3.0.4", + "resolve": "1.8.1", + "semver": "5.5.1" } }, "globals": { @@ -11062,7 +11056,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -11072,10 +11066,10 @@ "resolved": "http://registry.npmjs.org/standard-engine/-/standard-engine-8.0.1.tgz", "integrity": "sha512-LA531C3+nljom/XRvdW/hGPXwmilRkaRkENhO3FAGF1Vtq/WtCXzgmnc5S6vUHHsgv534MRy02C1ikMwZXC+tw==", "requires": { - "deglob": "^2.1.0", - "get-stdin": "^6.0.0", - "minimist": "^1.1.0", - "pkg-conf": "^2.0.0" + "deglob": "2.1.1", + "get-stdin": "6.0.0", + "minimist": "1.2.0", + "pkg-conf": "2.1.0" }, "dependencies": { "minimist": { @@ -11090,8 +11084,8 @@ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" + "define-property": "0.2.5", + "object-copy": "0.1.0" }, "dependencies": { "define-property": { @@ -11099,7 +11093,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -11110,8 +11104,8 @@ "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", "dev": true, "requires": { - "duplexer": "~0.1.1", - "through": "~2.3.4" + "duplexer": "0.1.1", + "through": "2.3.8" } }, "strict-uri-encode": { @@ -11125,8 +11119,8 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "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" }, "dependencies": { "ansi-regex": { @@ -11144,7 +11138,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -11154,9 +11148,9 @@ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.0", - "function-bind": "^1.0.2" + "define-properties": "1.1.3", + "es-abstract": "1.12.0", + "function-bind": "1.1.1" } }, "string_decoder": { @@ -11164,7 +11158,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.2" } }, "strip-ansi": { @@ -11172,7 +11166,7 @@ "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-bom": { @@ -11196,16 +11190,16 @@ "integrity": "sha1-cDUpoHFOV+EjlZ3e+84ZOy5Q0RU=", "dev": true, "requires": { - "component-emitter": "^1.2.0", - "cookiejar": "^2.0.6", - "debug": "^2.2.0", - "extend": "^3.0.0", + "component-emitter": "1.2.1", + "cookiejar": "2.1.2", + "debug": "2.6.9", + "extend": "3.0.2", "form-data": "1.0.0-rc4", - "formidable": "^1.0.17", - "methods": "^1.1.1", - "mime": "^1.3.4", - "qs": "^6.1.0", - "readable-stream": "^2.0.5" + "formidable": "1.2.1", + "methods": "1.1.2", + "mime": "1.6.0", + "qs": "6.5.2", + "readable-stream": "2.3.6" }, "dependencies": { "debug": { @@ -11223,9 +11217,9 @@ "integrity": "sha1-BaxrwiIntD5EYfSIFhVUaZ1Pi14=", "dev": true, "requires": { - "async": "^1.5.2", - "combined-stream": "^1.0.5", - "mime-types": "^2.1.10" + "async": "1.5.2", + "combined-stream": "1.0.7", + "mime-types": "2.1.20" } } } @@ -11236,8 +11230,8 @@ "integrity": "sha1-oFgIHXiPFRXUcA11Aogea3WeRM0=", "dev": true, "requires": { - "methods": "1.x", - "superagent": "^2.0.0" + "methods": "1.1.2", + "superagent": "2.3.0" } }, "supports-color": { @@ -11250,12 +11244,12 @@ "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "requires": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", + "ajv": "5.5.2", + "ajv-keywords": "2.1.1", + "chalk": "2.4.1", + "lodash": "4.17.11", "slice-ansi": "1.0.0", - "string-width": "^2.1.1" + "string-width": "2.1.1" } }, "tape": { @@ -11263,19 +11257,19 @@ "resolved": "https://registry.npmjs.org/tape/-/tape-4.9.1.tgz", "integrity": "sha512-6fKIXknLpoe/Jp4rzHKFPpJUHDHDqn8jus99IfPnHIjyz78HYlefTGD3b5EkbQzuLfaEvmfPK3IolLgq2xT3kw==", "requires": { - "deep-equal": "~1.0.1", - "defined": "~1.0.0", - "for-each": "~0.3.3", - "function-bind": "~1.1.1", - "glob": "~7.1.2", - "has": "~1.0.3", - "inherits": "~2.0.3", - "minimist": "~1.2.0", - "object-inspect": "~1.6.0", - "resolve": "~1.7.1", - "resumer": "~0.0.0", - "string.prototype.trim": "~1.1.2", - "through": "~2.3.8" + "deep-equal": "1.0.1", + "defined": "1.0.0", + "for-each": "0.3.3", + "function-bind": "1.1.1", + "glob": "7.1.3", + "has": "1.0.3", + "inherits": "2.0.3", + "minimist": "1.2.0", + "object-inspect": "1.6.0", + "resolve": "1.7.1", + "resumer": "0.0.0", + "string.prototype.trim": "1.1.2", + "through": "2.3.8" }, "dependencies": { "inherits": { @@ -11293,7 +11287,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", "requires": { - "path-parse": "^1.0.5" + "path-parse": "1.0.6" } } } @@ -11304,7 +11298,7 @@ "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "dev": true, "requires": { - "execa": "^0.7.0" + "execa": "0.7.0" } }, "text-encoding": { @@ -11334,7 +11328,7 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "requires": { - "os-tmpdir": "~1.0.2" + "os-tmpdir": "1.0.2" } }, "to-array": { @@ -11352,7 +11346,7 @@ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "to-regex": { @@ -11360,10 +11354,10 @@ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" } }, "to-regex-range": { @@ -11371,8 +11365,8 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "3.0.0", + "repeat-string": "1.6.1" }, "dependencies": { "is-number": { @@ -11380,7 +11374,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } } } @@ -11390,7 +11384,7 @@ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", "requires": { - "nopt": "~1.0.10" + "nopt": "1.0.10" } }, "tough-cookie": { @@ -11399,8 +11393,8 @@ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "dev": true, "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" + "psl": "1.1.29", + "punycode": "1.4.1" } }, "trim-right": { @@ -11420,7 +11414,7 @@ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "tweetnacl": { @@ -11435,7 +11429,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { - "prelude-ls": "~1.1.2" + "prelude-ls": "1.1.2" } }, "type-detect": { @@ -11451,7 +11445,7 @@ "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "~2.1.18" + "mime-types": "2.1.20" } }, "typedarray": { @@ -11475,7 +11469,7 @@ "integrity": "sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY=", "dev": true, "requires": { - "debug": "^2.2.0" + "debug": "2.6.9" }, "dependencies": { "debug": { @@ -11494,10 +11488,10 @@ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "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": { "extend-shallow": { @@ -11505,7 +11499,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "set-value": { @@ -11513,10 +11507,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" } } } @@ -11532,7 +11526,7 @@ "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", "dev": true, "requires": { - "crypto-random-string": "^1.0.0" + "crypto-random-string": "1.0.0" } }, "unorm": { @@ -11545,8 +11539,8 @@ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "has-value": "0.3.1", + "isobject": "3.0.1" }, "dependencies": { "has-value": { @@ -11554,9 +11548,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" }, "dependencies": { "isobject": { @@ -11599,16 +11593,16 @@ "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", "dev": true, "requires": { - "boxen": "^1.2.1", - "chalk": "^2.0.1", - "configstore": "^3.0.0", - "import-lazy": "^2.1.0", - "is-ci": "^1.0.10", - "is-installed-globally": "^0.1.0", - "is-npm": "^1.0.0", - "latest-version": "^3.0.0", - "semver-diff": "^2.0.0", - "xdg-basedir": "^3.0.0" + "boxen": "1.3.0", + "chalk": "2.4.1", + "configstore": "3.1.2", + "import-lazy": "2.1.0", + "is-ci": "1.2.1", + "is-installed-globally": "0.1.0", + "is-npm": "1.0.0", + "latest-version": "3.1.0", + "semver-diff": "2.1.0", + "xdg-basedir": "3.0.0" } }, "uri-js": { @@ -11617,7 +11611,7 @@ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "requires": { - "punycode": "^2.1.0" + "punycode": "2.1.1" }, "dependencies": { "punycode": { @@ -11639,7 +11633,7 @@ "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "dev": true, "requires": { - "prepend-http": "^2.0.0" + "prepend-http": "2.0.0" } }, "url-to-options": { @@ -11682,7 +11676,7 @@ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "requires": { - "user-home": "^1.1.1" + "user-home": "1.1.1" } }, "validate-npm-package-license": { @@ -11690,8 +11684,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.2", + "spdx-expression-parse": "3.0.0" } }, "varuint-bitcoin": { @@ -11699,7 +11693,7 @@ "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz", "integrity": "sha512-jCEPG+COU/1Rp84neKTyDJQr478/hAfVp5xxYn09QEH0yBjbmPeMfuuQIrp+BUD83hybtYZKhr5elV3bvdV1bA==", "requires": { - "safe-buffer": "^5.1.1" + "safe-buffer": "5.1.2" } }, "verror": { @@ -11708,9 +11702,9 @@ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": true, "requires": { - "assert-plus": "^1.0.0", + "assert-plus": "1.0.0", "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "extsprintf": "1.3.0" } }, "which": { @@ -11718,7 +11712,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -11732,7 +11726,7 @@ "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", "dev": true, "requires": { - "string-width": "^2.1.1" + "string-width": "2.1.1" } }, "wif": { @@ -11740,7 +11734,7 @@ "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", "requires": { - "bs58check": "<3.0.0" + "bs58check": "2.1.2" } }, "window-or-global": { @@ -11758,8 +11752,8 @@ "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "string-width": { @@ -11767,9 +11761,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -11784,7 +11778,7 @@ "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "requires": { - "mkdirp": "^0.5.1" + "mkdirp": "0.5.1" } }, "write-file-atomic": { @@ -11793,9 +11787,9 @@ "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "signal-exit": "3.0.2" } }, "ws": { @@ -11803,9 +11797,9 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" + "async-limiter": "1.0.0", + "safe-buffer": "5.1.2", + "ultron": "1.1.1" } }, "xdg-basedir": { @@ -11839,19 +11833,19 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", "requires": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^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": "^7.0.0" + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.3", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.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": "7.0.0" } }, "yargs-parser": { @@ -11859,7 +11853,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" } }, "yeast": { diff --git a/package.json b/package.json index acbd3b16..17f009a5 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { - "name": "bitbox-cli", + "name": "bitbox-sdk", "version": "1.8.1", - "description": "BITBOX javascript sdk for Bitcoin Cash", + "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", "scripts": { @@ -17,7 +17,7 @@ "bin": { "bitbox": "./index.js" }, - "homepage": "https://developer.bitcoin.com/bitbox.html", + "homepage": "https://developer.bitcoin.com/bitbox", "repository": { "type": "git", "url": "git+https://github.com/Bitcoin-com/bitbox-javascript-sdk.git" diff --git a/test/Address.js b/test/Address.js index 4024301f..6a59e886 100644 --- a/test/Address.js +++ b/test/Address.js @@ -1,69 +1,69 @@ -"use strict" -const fixtures = require("./fixtures/Address.json") -const chai = require("chai") -const assert = require("assert") -const BITBOXCli = require("./../lib/bitbox-cli").default -const BITBOX = new BITBOXCli() -const axios = require("axios") -const sinon = require("sinon") -const Bitcoin = require("bitcoincashjs-lib") +"use strict"; +const fixtures = require("./fixtures/Address.json"); +const chai = require("chai"); +const assert = require("assert"); +const BITBOXCli = require("./../lib/bitbox-sdk").default; +const BITBOX = new BITBOXCli(); +const axios = require("axios"); +const sinon = require("sinon"); +const Bitcoin = require("bitcoincashjs-lib"); function flatten(arrays) { - return [].concat.apply([], arrays) + return [].concat.apply([], arrays); } -const XPUBS = flatten([fixtures.mainnetXPub, fixtures.testnetXPub]) +const XPUBS = flatten([fixtures.mainnetXPub, fixtures.testnetXPub]); const LEGACY_ADDRESSES = flatten([ fixtures.legacyMainnetP2PKH, fixtures.legacyMainnetP2SH, fixtures.legacyTestnetP2PKH -]) +]); -const mainnet_xpubs = [] +const mainnet_xpubs = []; fixtures.mainnetXPub.forEach((f, i) => { - mainnet_xpubs.push(f.xpub) -}) + mainnet_xpubs.push(f.xpub); +}); const MAINNET_ADDRESSES = flatten([ mainnet_xpubs, fixtures.legacyMainnetP2PKH, fixtures.legacyMainnetP2SH, fixtures.cashaddrMainnetP2PKH -]) +]); -const testnet_xpubs = [] +const testnet_xpubs = []; fixtures.testnetXPub.forEach((f, i) => { - testnet_xpubs.push(f.xpub) -}) + testnet_xpubs.push(f.xpub); +}); const TESTNET_ADDRESSES = flatten([ testnet_xpubs, fixtures.legacyTestnetP2PKH, fixtures.cashaddrTestnetP2PKH -]) +]); const CASHADDR_ADDRESSES = flatten([ fixtures.cashaddrMainnetP2PKH, fixtures.cashaddrMainnetP2SH, fixtures.cashaddrTestnetP2PKH -]) +]); const CASHADDR_ADDRESSES_NO_PREFIX = CASHADDR_ADDRESSES.map(address => { - const parts = address.split(":") - return parts[1] -}) + const parts = address.split(":"); + return parts[1]; +}); -const REGTEST_ADDRESSES = fixtures.cashaddrRegTestP2PKH +const REGTEST_ADDRESSES = fixtures.cashaddrRegTestP2PKH; const REGTEST_ADDRESSES_NO_PREFIX = REGTEST_ADDRESSES.map(address => { - const parts = address.split(":") - return parts[1] -}) + const parts = address.split(":"); + return parts[1]; +}); const HASH160_HASHES = flatten([ fixtures.hash160MainnetP2PKH, fixtures.hash160MainnetP2SH, fixtures.hash160TestnetP2PKH -]) +]); const P2PKH_ADDRESSES = flatten([ fixtures.legacyMainnetP2PKH, @@ -71,12 +71,12 @@ const P2PKH_ADDRESSES = flatten([ fixtures.cashaddrMainnetP2PKH, fixtures.cashaddrTestnetP2PKH, fixtures.cashaddrRegTestP2PKH -]) +]); const P2SH_ADDRESSES = flatten([ fixtures.legacyMainnetP2SH, fixtures.cashaddrMainnetP2SH -]) +]); describe("#addressConversion", () => { describe("#toLegacyAddress", () => { @@ -86,8 +86,8 @@ describe("#addressConversion", () => { BITBOX.Address.toLegacyAddress(address) ), LEGACY_ADDRESSES - ) - }) + ); + }); it("should convert cashaddr address to legacy base58Check", () => { assert.deepEqual( @@ -95,8 +95,8 @@ describe("#addressConversion", () => { BITBOX.Address.toLegacyAddress(address) ), LEGACY_ADDRESSES - ) - }) + ); + }); it("should convert cashaddr regtest address to legacy base58Check", () => { assert.deepEqual( @@ -104,20 +104,20 @@ describe("#addressConversion", () => { BITBOX.Address.toLegacyAddress(address) ), fixtures.legacyTestnetP2PKH - ) - }) + ); + }); describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.toLegacyAddress() - }, BITBOX.BitcoinCash.InvalidAddressError) + BITBOX.Address.toLegacyAddress(); + }, BITBOX.BitcoinCash.InvalidAddressError); assert.throws(() => { - BITBOX.Address.toLegacyAddress("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) - }) - }) - }) + BITBOX.Address.toLegacyAddress("some invalid address"); + }, BITBOX.BitcoinCash.InvalidAddressError); + }); + }); + }); describe("#toCashAddress", () => { it("should convert legacy base58Check address to cashaddr", () => { @@ -126,8 +126,8 @@ describe("#addressConversion", () => { BITBOX.Address.toCashAddress(address, true) ), CASHADDR_ADDRESSES - ) - }) + ); + }); it("should convert legacy base58Check address to regtest cashaddr", () => { assert.deepEqual( @@ -135,8 +135,8 @@ describe("#addressConversion", () => { BITBOX.Address.toCashAddress(address, true, true) ), REGTEST_ADDRESSES - ) - }) + ); + }); it("should translate cashaddr address format to itself correctly", () => { assert.deepEqual( @@ -144,8 +144,8 @@ describe("#addressConversion", () => { BITBOX.Address.toCashAddress(address, true) ), CASHADDR_ADDRESSES - ) - }) + ); + }); it("should translate regtest cashaddr address format to itself correctly", () => { assert.deepEqual( @@ -153,8 +153,8 @@ describe("#addressConversion", () => { BITBOX.Address.toCashAddress(address, true, true) ), REGTEST_ADDRESSES - ) - }) + ); + }); it("should translate no-prefix cashaddr address format to itself correctly", () => { assert.deepEqual( @@ -162,8 +162,8 @@ describe("#addressConversion", () => { BITBOX.Address.toCashAddress(address, true) ), CASHADDR_ADDRESSES - ) - }) + ); + }); it("should translate no-prefix regtest cashaddr address format to itself correctly", () => { assert.deepEqual( @@ -171,67 +171,67 @@ describe("#addressConversion", () => { BITBOX.Address.toCashAddress(address, true, true) ), REGTEST_ADDRESSES - ) - }) + ); + }); it("should translate cashaddr address format to itself of no-prefix correctly", () => { CASHADDR_ADDRESSES.forEach(address => { - const noPrefix = BITBOX.Address.toCashAddress(address, false) - assert.equal(address.split(":")[1], noPrefix) - }) - }) + const noPrefix = BITBOX.Address.toCashAddress(address, false); + assert.equal(address.split(":")[1], noPrefix); + }); + }); it("should translate regtest cashaddr address format to itself of no-prefix correctly", () => { REGTEST_ADDRESSES.forEach(address => { - const noPrefix = BITBOX.Address.toCashAddress(address, false, true) - assert.equal(address.split(":")[1], noPrefix) - }) - }) + const noPrefix = BITBOX.Address.toCashAddress(address, false, true); + assert.equal(address.split(":")[1], noPrefix); + }); + }); describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.BitcoinCash.Address.toCashAddress() - }, BITBOX.BitcoinCash.InvalidAddressError) + BITBOX.BitcoinCash.Address.toCashAddress(); + }, BITBOX.BitcoinCash.InvalidAddressError); assert.throws(() => { - BITBOX.BitcoinCash.Address.toCashAddress("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) - }) - }) - }) + BITBOX.BitcoinCash.Address.toCashAddress("some invalid address"); + }, BITBOX.BitcoinCash.InvalidAddressError); + }); + }); + }); describe("#toHash160", () => { it("should convert legacy base58check address to hash160", () => { assert.deepEqual( LEGACY_ADDRESSES.map(address => BITBOX.Address.toHash160(address)), HASH160_HASHES - ) - }) + ); + }); it("should convert cashaddr address to hash160", () => { assert.deepEqual( CASHADDR_ADDRESSES.map(address => BITBOX.Address.toHash160(address)), HASH160_HASHES - ) - }) + ); + }); it("should convert regtest cashaddr address to hash160", () => { assert.deepEqual( REGTEST_ADDRESSES.map(address => BITBOX.Address.toHash160(address)), fixtures.hash160TestnetP2PKH - ) - }) + ); + }); describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.toHash160() - }, BITBOX.BitcoinCash.InvalidAddressError) + BITBOX.Address.toHash160(); + }, BITBOX.BitcoinCash.InvalidAddressError); assert.throws(() => { - BITBOX.Address.toHash160("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) - }) - }) - }) + BITBOX.Address.toHash160("some invalid address"); + }, BITBOX.BitcoinCash.InvalidAddressError); + }); + }); + }); describe("#fromHash160", () => { it("should convert hash160 to mainnet P2PKH legacy base58check address", () => { assert.deepEqual( @@ -239,8 +239,8 @@ describe("#addressConversion", () => { BITBOX.Address.hash160ToLegacy(hash160) ), fixtures.legacyMainnetP2PKH - ) - }) + ); + }); it("should convert hash160 to mainnet P2SH legacy base58check address", () => { assert.deepEqual( @@ -251,8 +251,8 @@ describe("#addressConversion", () => { ) ), fixtures.legacyMainnetP2SH - ) - }) + ); + }); it("should convert hash160 to testnet P2PKH legacy base58check address", () => { assert.deepEqual( @@ -263,8 +263,8 @@ describe("#addressConversion", () => { ) ), fixtures.legacyTestnetP2PKH - ) - }) + ); + }); it("should convert hash160 to mainnet P2PKH cash address", () => { assert.deepEqual( @@ -272,8 +272,8 @@ describe("#addressConversion", () => { BITBOX.Address.hash160ToCash(hash160) ), fixtures.cashaddrMainnetP2PKH - ) - }) + ); + }); it("should convert hash160 to mainnet P2SH cash address", () => { assert.deepEqual( @@ -284,8 +284,8 @@ describe("#addressConversion", () => { ) ), fixtures.cashaddrMainnetP2SH - ) - }) + ); + }); it("should convert hash160 to testnet P2PKH cash address", () => { assert.deepEqual( @@ -296,8 +296,8 @@ describe("#addressConversion", () => { ) ), fixtures.cashaddrTestnetP2PKH - ) - }) + ); + }); it("should convert hash160 to regtest P2PKH cash address", () => { assert.deepEqual( @@ -309,284 +309,284 @@ describe("#addressConversion", () => { ) ), REGTEST_ADDRESSES - ) - }) + ); + }); describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.hash160ToLegacy() - }, BITBOX.BitcoinCash.InvalidAddressError) + BITBOX.Address.hash160ToLegacy(); + }, BITBOX.BitcoinCash.InvalidAddressError); assert.throws(() => { - BITBOX.Address.hash160ToLegacy("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) + BITBOX.Address.hash160ToLegacy("some invalid address"); + }, BITBOX.BitcoinCash.InvalidAddressError); assert.throws(() => { - BITBOX.Address.hash160ToCash() - }, BITBOX.BitcoinCash.InvalidAddressError) + BITBOX.Address.hash160ToCash(); + }, BITBOX.BitcoinCash.InvalidAddressError); assert.throws(() => { - BITBOX.Address.hash160ToCash("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) - }) - }) - }) -}) + BITBOX.Address.hash160ToCash("some invalid address"); + }, BITBOX.BitcoinCash.InvalidAddressError); + }); + }); + }); +}); describe("address format detection", () => { describe("#isLegacyAddress", () => { describe("is legacy", () => { LEGACY_ADDRESSES.forEach(address => { it(`should detect ${address} is a legacy base58Check address`, () => { - const isBase58Check = BITBOX.Address.isLegacyAddress(address) - assert.equal(isBase58Check, true) - }) - }) - }) + const isBase58Check = BITBOX.Address.isLegacyAddress(address); + assert.equal(isBase58Check, true); + }); + }); + }); describe("is not legacy", () => { CASHADDR_ADDRESSES.forEach(address => { it(`should detect ${address} is not a legacy address`, () => { - const isBase58Check = BITBOX.Address.isLegacyAddress(address) - assert.equal(isBase58Check, false) - }) - }) + const isBase58Check = BITBOX.Address.isLegacyAddress(address); + assert.equal(isBase58Check, false); + }); + }); REGTEST_ADDRESSES.forEach(address => { it(`should detect ${address} is not a legacy address`, () => { - const isBase58Check = BITBOX.Address.isLegacyAddress(address) - assert.equal(isBase58Check, false) - }) - }) - }) + const isBase58Check = BITBOX.Address.isLegacyAddress(address); + assert.equal(isBase58Check, false); + }); + }); + }); describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.isLegacyAddress() - }, BITBOX.BitcoinCash.InvalidAddressError) + BITBOX.Address.isLegacyAddress(); + }, BITBOX.BitcoinCash.InvalidAddressError); assert.throws(() => { - BITBOX.Address.isLegacyAddress("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) - }) - }) - }) + BITBOX.Address.isLegacyAddress("some invalid address"); + }, BITBOX.BitcoinCash.InvalidAddressError); + }); + }); + }); describe("#isCashAddress", () => { describe("is cashaddr", () => { CASHADDR_ADDRESSES.forEach(address => { it(`should detect ${address} is a cashaddr address`, () => { - const isCashaddr = BITBOX.Address.isCashAddress(address) - assert.equal(isCashaddr, true) - }) - }) + const isCashaddr = BITBOX.Address.isCashAddress(address); + assert.equal(isCashaddr, true); + }); + }); REGTEST_ADDRESSES.forEach(address => { it(`should detect ${address} is a cashaddr address`, () => { - const isCashaddr = BITBOX.Address.isCashAddress(address) - assert.equal(isCashaddr, true) - }) - }) - }) + const isCashaddr = BITBOX.Address.isCashAddress(address); + assert.equal(isCashaddr, true); + }); + }); + }); describe("is not cashaddr", () => { LEGACY_ADDRESSES.forEach(address => { it(`should detect ${address} is not a cashaddr address`, () => { - const isCashaddr = BITBOX.Address.isCashAddress(address) - assert.equal(isCashaddr, false) - }) - }) - }) + const isCashaddr = BITBOX.Address.isCashAddress(address); + assert.equal(isCashaddr, false); + }); + }); + }); describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.isCashAddress() - }, BITBOX.BitcoinCash.InvalidAddressError) + BITBOX.Address.isCashAddress(); + }, BITBOX.BitcoinCash.InvalidAddressError); assert.throws(() => { - BITBOX.Address.isCashAddress("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) - }) - }) - }) -}) + BITBOX.Address.isCashAddress("some invalid address"); + }, BITBOX.BitcoinCash.InvalidAddressError); + }); + }); + }); +}); describe("network detection", () => { describe("#isMainnetAddress", () => { describe("is mainnet", () => { MAINNET_ADDRESSES.forEach(address => { it(`should detect ${address} is a mainnet address`, () => { - const isMainnet = BITBOX.Address.isMainnetAddress(address) - assert.equal(isMainnet, true) - }) - }) - }) + const isMainnet = BITBOX.Address.isMainnetAddress(address); + assert.equal(isMainnet, true); + }); + }); + }); describe("is not mainnet", () => { TESTNET_ADDRESSES.forEach(address => { it(`should detect ${address} is not a mainnet address`, () => { - const isMainnet = BITBOX.Address.isMainnetAddress(address) - assert.equal(isMainnet, false) - }) - }) + const isMainnet = BITBOX.Address.isMainnetAddress(address); + assert.equal(isMainnet, false); + }); + }); REGTEST_ADDRESSES.forEach(address => { it(`should detect ${address} is not a mainnet address`, () => { - const isMainnet = BITBOX.Address.isMainnetAddress(address) - assert.equal(isMainnet, false) - }) - }) - }) + const isMainnet = BITBOX.Address.isMainnetAddress(address); + assert.equal(isMainnet, false); + }); + }); + }); describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.isMainnetAddress() - }, BITBOX.BitcoinCash.InvalidAddressError) + BITBOX.Address.isMainnetAddress(); + }, BITBOX.BitcoinCash.InvalidAddressError); assert.throws(() => { - BITBOX.Address.isMainnetAddress("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) - }) - }) - }) + BITBOX.Address.isMainnetAddress("some invalid address"); + }, BITBOX.BitcoinCash.InvalidAddressError); + }); + }); + }); describe("#isTestnetAddress", () => { describe("is testnet", () => { TESTNET_ADDRESSES.forEach(address => { it(`should detect ${address} is a testnet address`, () => { - const isTestnet = BITBOX.Address.isTestnetAddress(address) - assert.equal(isTestnet, true) - }) - }) - }) + const isTestnet = BITBOX.Address.isTestnetAddress(address); + assert.equal(isTestnet, true); + }); + }); + }); describe("is not testnet", () => { MAINNET_ADDRESSES.forEach(address => { it(`should detect ${address} is not a testnet address`, () => { - const isTestnet = BITBOX.Address.isTestnetAddress(address) - assert.equal(isTestnet, false) - }) - }) + const isTestnet = BITBOX.Address.isTestnetAddress(address); + assert.equal(isTestnet, false); + }); + }); REGTEST_ADDRESSES.forEach(address => { it(`should detect ${address} is not a testnet address`, () => { - const isTestnet = BITBOX.Address.isTestnetAddress(address) - assert.equal(isTestnet, false) - }) - }) - }) + const isTestnet = BITBOX.Address.isTestnetAddress(address); + assert.equal(isTestnet, false); + }); + }); + }); describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.isTestnetAddress() - }, BITBOX.BitcoinCash.InvalidAddressError) + BITBOX.Address.isTestnetAddress(); + }, BITBOX.BitcoinCash.InvalidAddressError); assert.throws(() => { - BITBOX.Address.isTestnetAddress("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) - }) - }) - }) + BITBOX.Address.isTestnetAddress("some invalid address"); + }, BITBOX.BitcoinCash.InvalidAddressError); + }); + }); + }); describe("#isRegTestAddress", () => { describe("is testnet", () => { REGTEST_ADDRESSES.forEach(address => { it(`should detect ${address} is a regtest address`, () => { - const isRegTest = BITBOX.Address.isRegTestAddress(address) - assert.equal(isRegTest, true) - }) - }) - }) + const isRegTest = BITBOX.Address.isRegTestAddress(address); + assert.equal(isRegTest, true); + }); + }); + }); describe("is not testnet", () => { MAINNET_ADDRESSES.forEach(address => { it(`should detect ${address} is not a regtest address`, () => { - const isRegTest = BITBOX.Address.isRegTestAddress(address) - assert.equal(isRegTest, false) - }) - }) + const isRegTest = BITBOX.Address.isRegTestAddress(address); + assert.equal(isRegTest, false); + }); + }); TESTNET_ADDRESSES.forEach(address => { it(`should detect ${address} is not a regtest address`, () => { - const isRegTest = BITBOX.Address.isRegTestAddress(address) - assert.equal(isRegTest, false) - }) - }) - }) + const isRegTest = BITBOX.Address.isRegTestAddress(address); + assert.equal(isRegTest, false); + }); + }); + }); describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.isRegTestAddress() - }, BITBOX.BitcoinCash.InvalidAddressError) + BITBOX.Address.isRegTestAddress(); + }, BITBOX.BitcoinCash.InvalidAddressError); assert.throws(() => { - BITBOX.Address.isRegTestAddress("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) - }) - }) - }) -}) + BITBOX.Address.isRegTestAddress("some invalid address"); + }, BITBOX.BitcoinCash.InvalidAddressError); + }); + }); + }); +}); describe("address type detection", () => { describe("#isP2PKHAddress", () => { describe("is P2PKH", () => { P2PKH_ADDRESSES.forEach(address => { it(`should detect ${address} is a P2PKH address`, () => { - const isP2PKH = BITBOX.Address.isP2PKHAddress(address) - assert.equal(isP2PKH, true) - }) - }) - }) + const isP2PKH = BITBOX.Address.isP2PKHAddress(address); + assert.equal(isP2PKH, true); + }); + }); + }); describe("is not P2PKH", () => { P2SH_ADDRESSES.forEach(address => { it(`should detect ${address} is not a P2PKH address`, () => { - const isP2PKH = BITBOX.Address.isP2PKHAddress(address) - assert.equal(isP2PKH, false) - }) - }) - }) + const isP2PKH = BITBOX.Address.isP2PKHAddress(address); + assert.equal(isP2PKH, false); + }); + }); + }); describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.isP2PKHAddress() - }, BITBOX.BitcoinCash.InvalidAddressError) + BITBOX.Address.isP2PKHAddress(); + }, BITBOX.BitcoinCash.InvalidAddressError); assert.throws(() => { - BITBOX.Address.isP2PKHAddress("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) - }) - }) - }) + BITBOX.Address.isP2PKHAddress("some invalid address"); + }, BITBOX.BitcoinCash.InvalidAddressError); + }); + }); + }); describe("#isP2SHAddress", () => { describe("is P2SH", () => { P2SH_ADDRESSES.forEach(address => { it(`should detect ${address} is a P2SH address`, () => { - const isP2SH = BITBOX.Address.isP2SHAddress(address) - assert.equal(isP2SH, true) - }) - }) - }) + const isP2SH = BITBOX.Address.isP2SHAddress(address); + assert.equal(isP2SH, true); + }); + }); + }); describe("is not P2SH", () => { P2PKH_ADDRESSES.forEach(address => { it(`should detect ${address} is not a P2SH address`, () => { - const isP2SH = BITBOX.Address.isP2SHAddress(address) - assert.equal(isP2SH, false) - }) - }) - }) + const isP2SH = BITBOX.Address.isP2SHAddress(address); + assert.equal(isP2SH, false); + }); + }); + }); describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.isP2SHAddress() - }, BITBOX.BitcoinCash.InvalidAddressError) + BITBOX.Address.isP2SHAddress(); + }, BITBOX.BitcoinCash.InvalidAddressError); assert.throws(() => { - BITBOX.Address.isP2SHAddress("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) - }) - }) - }) -}) + BITBOX.Address.isP2SHAddress("some invalid address"); + }, BITBOX.BitcoinCash.InvalidAddressError); + }); + }); + }); +}); describe("cashaddr prefix detection", () => { it("should return the same result for detectAddressFormat", () => { @@ -597,7 +597,7 @@ describe("cashaddr prefix detection", () => { CASHADDR_ADDRESSES.map(address => BITBOX.Address.detectAddressFormat(address) ) - ) + ); assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.detectAddressFormat(address) @@ -605,8 +605,8 @@ describe("cashaddr prefix detection", () => { REGTEST_ADDRESSES.map(address => BITBOX.Address.detectAddressFormat(address) ) - ) - }) + ); + }); it("should return the same result for detectAddressNetwork", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(address => @@ -615,7 +615,7 @@ describe("cashaddr prefix detection", () => { CASHADDR_ADDRESSES.map(address => BITBOX.Address.detectAddressNetwork(address) ) - ) + ); assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.detectAddressNetwork(address) @@ -623,8 +623,8 @@ describe("cashaddr prefix detection", () => { REGTEST_ADDRESSES.map(address => BITBOX.Address.detectAddressNetwork(address) ) - ) - }) + ); + }); it("should return the same result for detectAddressType", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(address => @@ -633,7 +633,7 @@ describe("cashaddr prefix detection", () => { CASHADDR_ADDRESSES.map(address => BITBOX.Address.detectAddressType(address) ) - ) + ); assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.detectAddressType(address) @@ -641,50 +641,50 @@ describe("cashaddr prefix detection", () => { REGTEST_ADDRESSES.map(address => BITBOX.Address.detectAddressType(address) ) - ) - }) + ); + }); it("should return the same result for toLegacyAddress", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.toLegacyAddress(address) ), CASHADDR_ADDRESSES.map(address => BITBOX.Address.toLegacyAddress(address)) - ) + ); assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.toLegacyAddress(address) ), REGTEST_ADDRESSES.map(address => BITBOX.Address.toLegacyAddress(address)) - ) - }) + ); + }); it("should return the same result for isLegacyAddress", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.isLegacyAddress(address) ), CASHADDR_ADDRESSES.map(address => BITBOX.Address.isLegacyAddress(address)) - ) + ); assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.isLegacyAddress(address) ), REGTEST_ADDRESSES.map(address => BITBOX.Address.isLegacyAddress(address)) - ) - }) + ); + }); it("should return the same result for isCashAddress", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.isCashAddress(address) ), CASHADDR_ADDRESSES.map(address => BITBOX.Address.isCashAddress(address)) - ) + ); assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.isCashAddress(address) ), REGTEST_ADDRESSES.map(address => BITBOX.Address.isCashAddress(address)) - ) - }) + ); + }); it("should return the same result for isMainnetAddress", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(address => @@ -693,14 +693,14 @@ describe("cashaddr prefix detection", () => { CASHADDR_ADDRESSES.map(address => BITBOX.Address.isMainnetAddress(address) ) - ) + ); assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.isMainnetAddress(address) ), REGTEST_ADDRESSES.map(address => BITBOX.Address.isMainnetAddress(address)) - ) - }) + ); + }); it("should return the same result for isTestnetAddress", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(address => @@ -709,138 +709,138 @@ describe("cashaddr prefix detection", () => { CASHADDR_ADDRESSES.map(address => BITBOX.Address.isTestnetAddress(address) ) - ) + ); assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.isTestnetAddress(address) ), REGTEST_ADDRESSES.map(address => BITBOX.Address.isTestnetAddress(address)) - ) - }) + ); + }); it("should return the same result for isP2PKHAddress", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.isP2PKHAddress(address) ), CASHADDR_ADDRESSES.map(address => BITBOX.Address.isP2PKHAddress(address)) - ) + ); assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.isP2PKHAddress(address) ), REGTEST_ADDRESSES.map(address => BITBOX.Address.isP2PKHAddress(address)) - ) - }) + ); + }); it("should return the same result for isP2SHAddress", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.isP2SHAddress(address) ), CASHADDR_ADDRESSES.map(address => BITBOX.Address.isP2SHAddress(address)) - ) + ); assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.isP2SHAddress(address) ), REGTEST_ADDRESSES.map(address => BITBOX.Address.isP2SHAddress(address)) - ) - }) -}) + ); + }); +}); describe("#detectAddressFormat", () => { LEGACY_ADDRESSES.forEach(address => { it(`should detect ${address} is a legacy base58Check address`, () => { - const isBase58Check = BITBOX.Address.detectAddressFormat(address) - assert.equal(isBase58Check, "legacy") - }) - }) + const isBase58Check = BITBOX.Address.detectAddressFormat(address); + assert.equal(isBase58Check, "legacy"); + }); + }); CASHADDR_ADDRESSES.forEach(address => { it(`should detect ${address} is a legacy cashaddr address`, () => { - const isCashaddr = BITBOX.Address.detectAddressFormat(address) - assert.equal(isCashaddr, "cashaddr") - }) - }) + const isCashaddr = BITBOX.Address.detectAddressFormat(address); + assert.equal(isCashaddr, "cashaddr"); + }); + }); REGTEST_ADDRESSES.forEach(address => { it(`should detect ${address} is a legacy cashaddr address`, () => { - const isCashaddr = BITBOX.Address.detectAddressFormat(address) - assert.equal(isCashaddr, "cashaddr") - }) - }) + const isCashaddr = BITBOX.Address.detectAddressFormat(address); + assert.equal(isCashaddr, "cashaddr"); + }); + }); describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.detectAddressFormat() - }, BITBOX.BitcoinCash.InvalidAddressError) + BITBOX.Address.detectAddressFormat(); + }, BITBOX.BitcoinCash.InvalidAddressError); assert.throws(() => { - BITBOX.Address.detectAddressFormat("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) - }) - }) -}) + BITBOX.Address.detectAddressFormat("some invalid address"); + }, BITBOX.BitcoinCash.InvalidAddressError); + }); + }); +}); describe("#detectAddressNetwork", () => { MAINNET_ADDRESSES.forEach(address => { it(`should detect ${address} is a mainnet address`, () => { - const isMainnet = BITBOX.Address.detectAddressNetwork(address) - assert.equal(isMainnet, "mainnet") - }) - }) + const isMainnet = BITBOX.Address.detectAddressNetwork(address); + assert.equal(isMainnet, "mainnet"); + }); + }); TESTNET_ADDRESSES.forEach(address => { it(`should detect ${address} is a testnet address`, () => { - const isTestnet = BITBOX.Address.detectAddressNetwork(address) - assert.equal(isTestnet, "testnet") - }) - }) + const isTestnet = BITBOX.Address.detectAddressNetwork(address); + assert.equal(isTestnet, "testnet"); + }); + }); REGTEST_ADDRESSES.forEach(address => { it(`should detect ${address} is a testnet address`, () => { - const isTestnet = BITBOX.Address.detectAddressNetwork(address) - assert.equal(isTestnet, "regtest") - }) - }) + const isTestnet = BITBOX.Address.detectAddressNetwork(address); + assert.equal(isTestnet, "regtest"); + }); + }); describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.detectAddressNetwork() - }, BITBOX.BitcoinCash.InvalidAddressError) + BITBOX.Address.detectAddressNetwork(); + }, BITBOX.BitcoinCash.InvalidAddressError); assert.throws(() => { - BITBOX.Address.detectAddressNetwork("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) - }) - }) -}) + BITBOX.Address.detectAddressNetwork("some invalid address"); + }, BITBOX.BitcoinCash.InvalidAddressError); + }); + }); +}); describe("#detectAddressType", () => { P2PKH_ADDRESSES.forEach(address => { it(`should detect ${address} is a P2PKH address`, () => { - const isP2PKH = BITBOX.Address.detectAddressType(address) - assert.equal(isP2PKH, "p2pkh") - }) - }) + const isP2PKH = BITBOX.Address.detectAddressType(address); + assert.equal(isP2PKH, "p2pkh"); + }); + }); P2SH_ADDRESSES.forEach(address => { it(`should detect ${address} is a P2SH address`, () => { - const isP2SH = BITBOX.Address.detectAddressType(address) - assert.equal(isP2SH, "p2sh") - }) - }) + const isP2SH = BITBOX.Address.detectAddressType(address); + assert.equal(isP2SH, "p2sh"); + }); + }); describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.detectAddressType() - }, BITBOX.BitcoinCash.InvalidAddressError) + BITBOX.Address.detectAddressType(); + }, BITBOX.BitcoinCash.InvalidAddressError); assert.throws(() => { - BITBOX.Address.detectAddressType("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) - }) - }) -}) + BITBOX.Address.detectAddressType("some invalid address"); + }, BITBOX.BitcoinCash.InvalidAddressError); + }); + }); +}); describe("#fromXPub", () => { XPUBS.forEach((xpub, i) => { @@ -848,11 +848,11 @@ describe("#fromXPub", () => { it(`generate public external change address ${j} for ${ xpub.xpub }`, () => { - assert.equal(BITBOX.Address.fromXPub(xpub.xpub, `0/${j}`), address) - }) - }) - }) -}) + assert.equal(BITBOX.Address.fromXPub(xpub.xpub, `0/${j}`), address); + }); + }); + }); +}); describe("#fromOutputScript", () => { const script = BITBOX.Script.encode([ @@ -860,25 +860,25 @@ describe("#fromOutputScript", () => { BITBOX.Script.opcodes.OP_CAT, Buffer.from("BITBOX", "ascii"), BITBOX.Script.opcodes.OP_EQUAL - ]) + ]); // hash160 script buffer - const p2sh_hash160 = BITBOX.Crypto.hash160(script) + const p2sh_hash160 = BITBOX.Crypto.hash160(script); // encode hash160 as P2SH output - const scriptPubKey = BITBOX.Script.scriptHash.output.encode(p2sh_hash160) - const p2shAddress = BITBOX.Address.fromOutputScript(scriptPubKey) + const scriptPubKey = BITBOX.Script.scriptHash.output.encode(p2sh_hash160); + const p2shAddress = BITBOX.Address.fromOutputScript(scriptPubKey); fixtures.p2shMainnet.forEach((address, i) => { it(`generate address from output script`, () => { - assert.equal(p2shAddress, address) - }) - }) -}) + assert.equal(p2shAddress, address); + }); + }); +}); describe("#details", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) + let sandbox; + beforeEach(() => (sandbox = sinon.sandbox.create())); + afterEach(() => sandbox.restore()); it("should get details", done => { const data = { @@ -897,25 +897,25 @@ describe("#details", () => { transactions: [ "b29425a876f62e114508e67e66b5eb1ab0d320d7c9a57fb0ece086a36e2b7309" ] - } + }; - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) + const resolved = new Promise(r => r({ data: data })); + sandbox.stub(axios, "get").returns(resolved); BITBOX.Address.details( "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" ) .then(result => { - assert.deepEqual(data, result) + assert.deepEqual(data, result); }) - .then(done, done) - }) -}) + .then(done, done); + }); +}); describe("#utxo", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) + let sandbox; + beforeEach(() => (sandbox = sinon.sandbox.create())); + afterEach(() => sandbox.restore()); it("should get utxo", done => { const data = [ @@ -943,24 +943,24 @@ describe("#utxo", () => { height: 528744, confirmations: 18 } - ] - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) + ]; + const resolved = new Promise(r => r({ data: data })); + sandbox.stub(axios, "get").returns(resolved); BITBOX.Address.utxo( "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l" ) .then(result => { - assert.deepEqual(data, result) + assert.deepEqual(data, result); }) - .then(done, done) - }) -}) + .then(done, done); + }); +}); describe("#unconfirmed", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) + let sandbox; + beforeEach(() => (sandbox = sinon.sandbox.create())); + afterEach(() => sandbox.restore()); it("should get unconfirmed transactions", done => { const data = [ @@ -976,16 +976,16 @@ describe("#unconfirmed", () => { legacyAddress: "1Fg4r9iDrEkCcDmHTy2T79EusNfhyQpu7W", cashAddress: "bitcoincash:qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c" } - ] - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) + ]; + const resolved = new Promise(r => r({ data: data })); + sandbox.stub(axios, "get").returns(resolved); BITBOX.Address.unconfirmed( "bitcoincash:qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c" ) .then(result => { - assert.deepEqual(data, result) + assert.deepEqual(data, result); }) - .then(done, done) - }) -}) + .then(done, done); + }); +}); diff --git a/test/BitcoinCash.js b/test/BitcoinCash.js index 82457b0f..d4cb23aa 100644 --- a/test/BitcoinCash.js +++ b/test/BitcoinCash.js @@ -2,7 +2,7 @@ const fixtures = require("./fixtures/BitcoinCash.json") const chai = require("chai") const assert = require("assert") -const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOXCli = require("./../lib/bitbox-sdk").default const BITBOX = new BITBOXCli() // TODO diff --git a/test/Block.js b/test/Block.js index 1d39d412..b00407c3 100644 --- a/test/Block.js +++ b/test/Block.js @@ -1,7 +1,7 @@ "use strict" const chai = require("chai") const assert = require("assert") -const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOXCli = require("./../lib/bitbox-sdk").default const BITBOX = new BITBOXCli() const axios = require("axios") const sinon = require("sinon") diff --git a/test/Blockchain.js b/test/Blockchain.js index 6641305d..41846bae 100644 --- a/test/Blockchain.js +++ b/test/Blockchain.js @@ -2,7 +2,7 @@ const chai = require("chai") const assert = require("assert") const axios = require("axios") -const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOXCli = require("./../lib/bitbox-sdk").default const BITBOX = new BITBOXCli() const sinon = require("sinon") diff --git a/test/Control.js b/test/Control.js index fc3f8fac..92e822a1 100644 --- a/test/Control.js +++ b/test/Control.js @@ -2,7 +2,7 @@ const chai = require("chai") const assert = require("assert") const axios = require("axios") -const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOXCli = require("./../lib/bitbox-sdk").default const BITBOX = new BITBOXCli() const sinon = require("sinon") diff --git a/test/Crypto.js b/test/Crypto.js index e0fa58b4..f53516fc 100644 --- a/test/Crypto.js +++ b/test/Crypto.js @@ -2,7 +2,7 @@ const fixtures = require("./fixtures/Crypto.json") const chai = require("chai") const assert = require("assert") -const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOXCli = require("./../lib/bitbox-sdk").default const BITBOX = new BITBOXCli() const Buffer = require("safe-buffer").Buffer diff --git a/test/ECPair.js b/test/ECPair.js index e977875c..2b7dd10e 100644 --- a/test/ECPair.js +++ b/test/ECPair.js @@ -2,7 +2,7 @@ const fixtures = require("./fixtures/ECPair.json") const chai = require("chai") const assert = require("assert") -const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOXCli = require("./../lib/bitbox-sdk").default const BITBOX = new BITBOXCli() const script = BITBOX.Script const Buffer = require("safe-buffer").Buffer diff --git a/test/Generating.js b/test/Generating.js index 1fbe0c05..bef69ace 100644 --- a/test/Generating.js +++ b/test/Generating.js @@ -2,7 +2,7 @@ const chai = require("chai") const assert = require("assert") const axios = require("axios") -const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOXCli = require("./../lib/bitbox-sdk").default const BITBOX = new BITBOXCli() const sinon = require("sinon") diff --git a/test/HDNode.js b/test/HDNode.js index f9759f83..813cc2bc 100644 --- a/test/HDNode.js +++ b/test/HDNode.js @@ -2,7 +2,7 @@ const fixtures = require("./fixtures/HDNode.json") const chai = require("chai") const assert = require("assert") -const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOXCli = require("./../lib/bitbox-sdk").default const BITBOX = new BITBOXCli() const Buffer = require("safe-buffer").Buffer diff --git a/test/Mining.js b/test/Mining.js index 770c0037..8bae0d9e 100644 --- a/test/Mining.js +++ b/test/Mining.js @@ -2,7 +2,7 @@ const chai = require("chai") const assert = require("assert") const axios = require("axios") -const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOXCli = require("./../lib/bitbox-sdk").default const BITBOX = new BITBOXCli() const sinon = require("sinon") diff --git a/test/Mnemonic.js b/test/Mnemonic.js index d98837d1..5422ca31 100644 --- a/test/Mnemonic.js +++ b/test/Mnemonic.js @@ -2,7 +2,7 @@ const fixtures = require("./fixtures/Mnemonic.json") const chai = require("chai") const assert = require("assert") -const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOXCli = require("./../lib/bitbox-sdk").default const BITBOX = new BITBOXCli() const Buffer = require("safe-buffer").Buffer diff --git a/test/Network.js b/test/Network.js index a241be0a..c5c6e2c3 100644 --- a/test/Network.js +++ b/test/Network.js @@ -2,7 +2,7 @@ const chai = require("chai") const assert = require("assert") const axios = require("axios") -const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOXCli = require("./../lib/bitbox-sdk").default const BITBOX = new BITBOXCli() const sinon = require("sinon") diff --git a/test/Price.js b/test/Price.js index 27d07b74..bde835bb 100644 --- a/test/Price.js +++ b/test/Price.js @@ -1,7 +1,7 @@ "use strict" const chai = require("chai") const assert = require("assert") -const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOXCli = require("./../lib/bitbox-sdk").default const BITBOX = new BITBOXCli() const axios = require("axios") const sinon = require("sinon") diff --git a/test/RawTransactions.js b/test/RawTransactions.js index a44d8f6d..eb065c32 100644 --- a/test/RawTransactions.js +++ b/test/RawTransactions.js @@ -2,7 +2,7 @@ const chai = require("chai") const assert = require("assert") const axios = require("axios") -const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOXCli = require("./../lib/bitbox-sdk").default const BITBOX = new BITBOXCli() const sinon = require("sinon") diff --git a/test/Script.js b/test/Script.js index eddbfd18..eb3be668 100644 --- a/test/Script.js +++ b/test/Script.js @@ -2,7 +2,7 @@ const fixtures = require("./fixtures/Script.json") const chai = require("chai") const assert = require("assert") -const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOXCli = require("./../lib/bitbox-sdk").default const BITBOX = new BITBOXCli() const Buffer = require("safe-buffer").Buffer diff --git a/test/Transaction.js b/test/Transaction.js index 17b1b5a0..96038973 100644 --- a/test/Transaction.js +++ b/test/Transaction.js @@ -1,7 +1,7 @@ "use strict" const chai = require("chai") const assert = require("assert") -const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOXCli = require("./../lib/bitbox-sdk").default const BITBOX = new BITBOXCli() const axios = require("axios") const sinon = require("sinon") diff --git a/test/TransactionBuilder.js b/test/TransactionBuilder.js index fead01c5..e2c59309 100644 --- a/test/TransactionBuilder.js +++ b/test/TransactionBuilder.js @@ -2,7 +2,7 @@ const fixtures = require("./fixtures/TransactionBuilder.json") const chai = require("chai") const assert = require("assert") -const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOXCli = require("./../lib/bitbox-sdk").default const BITBOX = new BITBOXCli() const Buffer = require("safe-buffer").Buffer diff --git a/test/Util.js b/test/Util.js index 15e5251b..d587c1a8 100644 --- a/test/Util.js +++ b/test/Util.js @@ -2,7 +2,7 @@ const chai = require("chai") const assert = require("assert") const axios = require("axios") -const BITBOXCli = require("./../lib/bitbox-cli").default +const BITBOXCli = require("./../lib/bitbox-sdk").default const BITBOX = new BITBOXCli() const sinon = require("sinon") From 646cd744e51fdb7eeeb98249d0fd34cad578d806 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 9 Oct 2018 13:01:38 -0700 Subject: [PATCH 114/480] More renaming bitbox-cli to bitbox-sdk. --- README.md | 72 +++++----- .../wallet/check-balance/check-balance.js | 6 +- .../wallet/create-wallet/create-wallet.js | 4 +- .../applications/wallet/send-bch/send-bch.js | 6 +- .../address-details/address-details.js | 6 +- examples/low-level/utxo-address/get-utxos.js | 6 +- index.js | 4 +- lib/bitbox-cli.d.ts | 4 +- lib/bitbox-cli.js | 6 +- lib/bitbox-sdk.js | 127 ++++++++++++++++++ package-lock.json | 48 +++---- src/{bitbox-cli.js => bitbox-sdk.js} | 4 +- test/Address.js | 4 +- test/BitcoinCash.js | 4 +- test/Block.js | 4 +- test/Blockchain.js | 4 +- test/Control.js | 4 +- test/Crypto.js | 4 +- test/ECPair.js | 4 +- test/Generating.js | 4 +- test/HDNode.js | 4 +- test/Mining.js | 4 +- test/Mnemonic.js | 4 +- test/Network.js | 4 +- test/Price.js | 4 +- test/RawTransactions.js | 4 +- test/Script.js | 4 +- test/Transaction.js | 4 +- test/TransactionBuilder.js | 4 +- test/Util.js | 4 +- typings/bitbox-cli.d.ts | 4 +- 31 files changed, 247 insertions(+), 122 deletions(-) create mode 100644 lib/bitbox-sdk.js rename src/{bitbox-cli.js => bitbox-sdk.js} (97%) diff --git a/README.md b/README.md index a0eb40ee..d49ce600 100644 --- a/README.md +++ b/README.md @@ -1,49 +1,49 @@ # `bitbox-sdk` -## Command line tool for https://developer.bitcoin.com/bitbox.html +## Command line tool for https://developer.bitcoin.com/bitbox `bitbox-sdk` is a utility for creating great [Bitcoin Cash](https://www.bitcoincash.org) applications. If can be used from the command line or from within client/server apps. Extensive documentation available at: -* [General docs](https://developer.bitcoin.com) -* [BITBOX API](https://developer.bitcoin.com/bitbox.html) +- [General docs](https://developer.bitcoin.com) +- [BITBOX API](https://developer.bitcoin.com/bitbox) Open Source / Creative Commons Listings -* [assert](https://www.npmjs.com/package/assert) - MIT -* [axios](https://github.com/axios/axios) - MIT -* [babel](https://babeljs.io/docs/setup/) - MIT -* [bigi](https://www.npmjs.com/package/bigi) - none -* [bip21](https://github.com/bigearth/bip21) - ISC -* [bip39](https://github.com/bitcoinjs/bip39/blob/master/LICENSE) - ISC -* [bitcoin-ops](https://github.com/bigearth/bitcoin-ops) - MIT -* [bitcoinjs-lib](https://github.com/bigearth/bitcoinjs-lib) - MIT -* [bitcoinjs-message](https://github.com/bitcoinjs/bitcoinjs-message) - MIT -* [bs58](https://www.npmjs.com/package/bs58) - MIT -* [buffer](https://www.npmjs.com/package/buffer) - MIT -* [cashaddrjs](https://github.com/bitcoincashjs/cashaddrjs/blob/master/LICENSE) - MIT -* [chai](https://www.npmjs.com/package/chai) - MIT -* [chalk](https://www.npmjs.com/package/chalk) - MIT -* [clear](https://www.npmjs.com/package/clear) - none -* [commander](https://www.npmjs.com/package/commander) - MIT -* [cp-file](https://www.npmjs.com/package/cp-file) - MIT -* [ecurve](https://www.npmjs.com/package/ecurve) - MIT -* [figlet](https://www.npmjs.com/package/figlet) - MIT -* [flow-bin](https://www.npmjs.com/package/flow-bin) - MIT -* [git-clone](https://www.npmjs.com/package/git-clone) - ICS -* [ini](https://www.npmjs.com/package/ini) - ICS -* [mkdirp](https://www.npmjs.com/package/mkdirp) - MIT -* [mocha](https://www.npmjs.com/package/mocha) - MIT -* [node-cmd](https://www.npmjs.com/package/node-cmd) - DBAD -* [node-emoji](https://www.npmjs.com/package/node-emoji) - MIT -* [nyc](https://www.npmjs.com/package/nyc) - ICS -* [qrcode](https://www.npmjs.com/package/qrcode) - MIT -* [randombytes](https://www.npmjs.com/package/randombytes) - MIT -* [safe-buffer](https://www.npmjs.com/package/safe-buffer) - MIT -* [satoshi-bitcoin](https://www.npmjs.com/package/satoshi-bitcoin) - MIT -* [sinon](https://www.npmjs.com/package/sinon) - BSD-3-Clause -* [touch](https://www.npmjs.com/package/touch) - ISC +- [assert](https://www.npmjs.com/package/assert) - MIT +- [axios](https://github.com/axios/axios) - MIT +- [babel](https://babeljs.io/docs/setup/) - MIT +- [bigi](https://www.npmjs.com/package/bigi) - none +- [bip21](https://github.com/bigearth/bip21) - ISC +- [bip39](https://github.com/bitcoinjs/bip39/blob/master/LICENSE) - ISC +- [bitcoin-ops](https://github.com/bigearth/bitcoin-ops) - MIT +- [bitcoinjs-lib](https://github.com/bigearth/bitcoinjs-lib) - MIT +- [bitcoinjs-message](https://github.com/bitcoinjs/bitcoinjs-message) - MIT +- [bs58](https://www.npmjs.com/package/bs58) - MIT +- [buffer](https://www.npmjs.com/package/buffer) - MIT +- [cashaddrjs](https://github.com/bitcoincashjs/cashaddrjs/blob/master/LICENSE) - MIT +- [chai](https://www.npmjs.com/package/chai) - MIT +- [chalk](https://www.npmjs.com/package/chalk) - MIT +- [clear](https://www.npmjs.com/package/clear) - none +- [commander](https://www.npmjs.com/package/commander) - MIT +- [cp-file](https://www.npmjs.com/package/cp-file) - MIT +- [ecurve](https://www.npmjs.com/package/ecurve) - MIT +- [figlet](https://www.npmjs.com/package/figlet) - MIT +- [flow-bin](https://www.npmjs.com/package/flow-bin) - MIT +- [git-clone](https://www.npmjs.com/package/git-clone) - ICS +- [ini](https://www.npmjs.com/package/ini) - ICS +- [mkdirp](https://www.npmjs.com/package/mkdirp) - MIT +- [mocha](https://www.npmjs.com/package/mocha) - MIT +- [node-cmd](https://www.npmjs.com/package/node-cmd) - DBAD +- [node-emoji](https://www.npmjs.com/package/node-emoji) - MIT +- [nyc](https://www.npmjs.com/package/nyc) - ICS +- [qrcode](https://www.npmjs.com/package/qrcode) - MIT +- [randombytes](https://www.npmjs.com/package/randombytes) - MIT +- [safe-buffer](https://www.npmjs.com/package/safe-buffer) - MIT +- [satoshi-bitcoin](https://www.npmjs.com/package/satoshi-bitcoin) - MIT +- [sinon](https://www.npmjs.com/package/sinon) - BSD-3-Clause +- [touch](https://www.npmjs.com/package/touch) - ISC ## Font awesome diff --git a/examples/applications/wallet/check-balance/check-balance.js b/examples/applications/wallet/check-balance/check-balance.js index 370dcddb..0734fc34 100644 --- a/examples/applications/wallet/check-balance/check-balance.js +++ b/examples/applications/wallet/check-balance/check-balance.js @@ -3,12 +3,10 @@ with the create-wallet example. */ -"use strict" - // Instantiate BITBOX. const bitboxLib = "../../../../lib/bitbox-sdk" -const BITBOXCli = require(bitboxLib).default -const BITBOX = new BITBOXCli({ restURL: "https://trest.bitcoin.com/v1/" }) +const BITBOXSDK = require(bitboxLib).default +const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v1/" }) // Open the wallet generated with create-wallet. try { diff --git a/examples/applications/wallet/create-wallet/create-wallet.js b/examples/applications/wallet/create-wallet/create-wallet.js index 677678ff..1fb05935 100644 --- a/examples/applications/wallet/create-wallet/create-wallet.js +++ b/examples/applications/wallet/create-wallet/create-wallet.js @@ -7,8 +7,8 @@ // Instantiate BITBOX. const bitboxLib = "../../../../lib/bitbox-sdk" -const BITBOXCli = require(bitboxLib).default -const BITBOX = new BITBOXCli({ restURL: "https://trest.bitcoin.com/v1/" }) +const BITBOXSDK = require(bitboxLib).default +const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v1/" }) const fs = require("fs") diff --git a/examples/applications/wallet/send-bch/send-bch.js b/examples/applications/wallet/send-bch/send-bch.js index a983a93f..596606f5 100644 --- a/examples/applications/wallet/send-bch/send-bch.js +++ b/examples/applications/wallet/send-bch/send-bch.js @@ -6,9 +6,9 @@ // Instantiate BITBOX. const bitboxLib = "../../../../lib/bitbox-sdk" -const BITBOXCli = require(bitboxLib).default -//const BITBOX = new BITBOXCli({ restURL: "https://trest.bitcoin.com/v1/" }) -const BITBOX = new BITBOXCli({ restURL: "htts://localhost:3000/v1/" }) +const BITBOXSDK = require(bitboxLib).default +//const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v1/" }) +const BITBOX = new BITBOXSDK({ restURL: "htts://localhost:3000/v1/" }) // Replace the address below with the address you want to send the BCH to. const RECV_ADDR = `bchtest:qpytyr39fsr80emqh2ukftkpdqvdddcnfg9s6wjtfa` diff --git a/examples/low-level/address-details/address-details.js b/examples/low-level/address-details/address-details.js index e0b4251d..160ddc6f 100644 --- a/examples/low-level/address-details/address-details.js +++ b/examples/low-level/address-details/address-details.js @@ -7,9 +7,9 @@ // Instantiate BITBOX. const bitboxLib = "../../../lib/bitbox-sdk" -const BITBOXCli = require(bitboxLib).default -//const BITBOX = new BITBOXCli({ restURL: "https://trest.bitcoin.com/v1/" }) -const BITBOX = new BITBOXCli({ restURL: "htts://localhost:3000/v1/" }) +const BITBOXSDK = require(bitboxLib).default +//const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v1/" }) +const BITBOX = new BITBOXSDK({ restURL: "htts://localhost:3000/v1/" }) const ADDR = `mqKgHerAkpvKpSyFawhEKVWZpDPmxHZuLG` diff --git a/examples/low-level/utxo-address/get-utxos.js b/examples/low-level/utxo-address/get-utxos.js index 0e434f43..bd81e058 100644 --- a/examples/low-level/utxo-address/get-utxos.js +++ b/examples/low-level/utxo-address/get-utxos.js @@ -7,9 +7,9 @@ // Instantiate BITBOX. const bitboxLib = "../../../lib/bitbox-sdk" -const BITBOXCli = require(bitboxLib).default -//const BITBOX = new BITBOXCli({ restURL: "https://trest.bitcoin.com/v1/" }) -const BITBOX = new BITBOXCli({ restURL: "htts://localhost:3000/v1/" }) +const BITBOXSDK = require(bitboxLib).default +//const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v1/" }) +const BITBOX = new BITBOXSDK({ restURL: "htts://localhost:3000/v1/" }) const ADDR = `mqKgHerAkpvKpSyFawhEKVWZpDPmxHZuLG` diff --git a/index.js b/index.js index 2c3fb4ae..369df253 100755 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ const touch = require("touch") const emoji = require("node-emoji") const repl = require("repl") const ini = require("ini") -const BITBOXCli = require("./lib/bitbox-sdk").default +const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") const cmd = require("node-cmd") @@ -158,7 +158,7 @@ program const environment = fetchOption("environment=development", config, options) - replServer.context.BITBOX = new BITBOXCli(config.networks[environment]) + replServer.context.BITBOX = new BITBOXSDK(config.networks[environment]) }) function fetchOption(kv, config, options) { diff --git a/lib/bitbox-cli.d.ts b/lib/bitbox-cli.d.ts index f5967302..79f67c00 100644 --- a/lib/bitbox-cli.d.ts +++ b/lib/bitbox-cli.d.ts @@ -20,7 +20,7 @@ import Price from './Price'; import Socket from './Socket'; -declare class BITBOXCli { +declare class BITBOXSDK { constructor(config?: any); @@ -46,4 +46,4 @@ declare class BITBOXCli { Socket: Socket; } -export default BITBOXCli; +export default BITBOXSDK; diff --git a/lib/bitbox-cli.js b/lib/bitbox-cli.js index e7955682..032d4a2a 100644 --- a/lib/bitbox-cli.js +++ b/lib/bitbox-cli.js @@ -96,8 +96,8 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons // local deps -var BITBOXCli = function BITBOXCli(config) { - _classCallCheck(this, BITBOXCli); +var BITBOXSDK = function BITBOXSDK(config) { + _classCallCheck(this, BITBOXSDK); if (config && config.restURL && config.restURL !== "") this.restURL = config.restURL;else this.restURL = "https://rest.bitcoin.com/v1/"; @@ -124,4 +124,4 @@ var BITBOXCli = function BITBOXCli(config) { this.Socket = _Socket2.default; }; -exports.default = BITBOXCli; \ No newline at end of file +exports.default = BITBOXSDK; \ No newline at end of file diff --git a/lib/bitbox-sdk.js b/lib/bitbox-sdk.js new file mode 100644 index 00000000..032d4a2a --- /dev/null +++ b/lib/bitbox-sdk.js @@ -0,0 +1,127 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _axios = require("axios"); + +var _axios2 = _interopRequireDefault(_axios); + +var _bitcoincashjsLib = require("bitcoincashjs-lib"); + +var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); + +var _BitcoinCash = require("./BitcoinCash"); + +var _BitcoinCash2 = _interopRequireDefault(_BitcoinCash); + +var _Crypto = require("./Crypto"); + +var _Crypto2 = _interopRequireDefault(_Crypto); + +var _Util = require("./Util"); + +var _Util2 = _interopRequireDefault(_Util); + +var _Block = require("./Block"); + +var _Block2 = _interopRequireDefault(_Block); + +var _Blockchain = require("./Blockchain"); + +var _Blockchain2 = _interopRequireDefault(_Blockchain); + +var _Control = require("./Control"); + +var _Control2 = _interopRequireDefault(_Control); + +var _Generating = require("./Generating"); + +var _Generating2 = _interopRequireDefault(_Generating); + +var _Mining = require("./Mining"); + +var _Mining2 = _interopRequireDefault(_Mining); + +var _Network = require("./Network"); + +var _Network2 = _interopRequireDefault(_Network); + +var _RawTransactions = require("./RawTransactions"); + +var _RawTransactions2 = _interopRequireDefault(_RawTransactions); + +var _Mnemonic = require("./Mnemonic"); + +var _Mnemonic2 = _interopRequireDefault(_Mnemonic); + +var _Address = require("./Address"); + +var _Address2 = _interopRequireDefault(_Address); + +var _HDNode = require("./HDNode"); + +var _HDNode2 = _interopRequireDefault(_HDNode); + +var _Transaction = require("./Transaction"); + +var _Transaction2 = _interopRequireDefault(_Transaction); + +var _TransactionBuilder = require("./TransactionBuilder"); + +var _TransactionBuilder2 = _interopRequireDefault(_TransactionBuilder); + +var _ECPair = require("./ECPair"); + +var _ECPair2 = _interopRequireDefault(_ECPair); + +var _Script = require("./Script"); + +var _Script2 = _interopRequireDefault(_Script); + +var _Price = require("./Price"); + +var _Price2 = _interopRequireDefault(_Price); + +var _Socket = require("./Socket"); + +var _Socket2 = _interopRequireDefault(_Socket); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } // 3rd party deps + + +// local deps + + +var BITBOXSDK = function BITBOXSDK(config) { + _classCallCheck(this, BITBOXSDK); + + if (config && config.restURL && config.restURL !== "") this.restURL = config.restURL;else this.restURL = "https://rest.bitcoin.com/v1/"; + + this.Address = new _Address2.default(this.restURL); + this.BitcoinCash = new _BitcoinCash2.default(this.Address); + this.Block = new _Block2.default(this.restURL); + this.Blockchain = new _Blockchain2.default(this.restURL); + this.Control = new _Control2.default(this.restURL); + this.Crypto = _Crypto2.default; + this.ECPair = _ECPair2.default; + this.ECPair.setAddress(this.Address); + this.Generating = new _Generating2.default(this.restURL); + this.HDNode = new _HDNode2.default(this.Address); + this.Mining = new _Mining2.default(this.restURL); + this.Mnemonic = new _Mnemonic2.default(this.Address); + this.Network = new _Network2.default(this.restURL); + this.Price = new _Price2.default(); + this.RawTransactions = new _RawTransactions2.default(this.restURL); + this.Script = new _Script2.default(); + this.Transaction = new _Transaction2.default(this.restURL); + this.TransactionBuilder = _TransactionBuilder2.default; + this.TransactionBuilder.setAddress(this.Address); + this.Util = new _Util2.default(this.restURL); + this.Socket = _Socket2.default; +}; + +exports.default = BITBOXSDK; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 136a62c9..92692d1d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -149,9 +149,9 @@ } }, "@types/node": { - "version": "10.11.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.11.4.tgz", - "integrity": "sha512-ojnbBiKkZFYRfQpmtnnWTMw+rzGp/JiystjluW9jgN3VzRwilXddJ6aGQ9V/7iuDG06SBgn7ozW9k3zcAnYjYQ==", + "version": "10.11.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.11.6.tgz", + "integrity": "sha512-fnA7yvqg3oKQDb3skBif9w5RRKVKAaeKeNuLzZL37XcSiWL4IoSXQnnbchR3UnBu2EMLHBip7ZVEkqoIVBP8QQ==", "dev": true }, "abbrev": { @@ -402,7 +402,7 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=", "requires": { - "follow-redirects": "1.5.8", + "follow-redirects": "1.5.9", "is-buffer": "1.1.6" } }, @@ -416,7 +416,7 @@ "babel-register": "6.26.0", "babel-runtime": "6.26.0", "chokidar": "1.7.0", - "commander": "2.18.0", + "commander": "2.19.0", "convert-source-map": "1.6.0", "fs-readdir-recursive": "1.1.0", "glob": "7.1.3", @@ -2377,7 +2377,7 @@ "chalk": "2.4.1", "clear": "0.0.1", "coininfo": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", - "commander": "2.18.0", + "commander": "2.19.0", "cp-file": "5.0.0", "ecurve": "1.0.6", "figlet": "1.2.0", @@ -2536,7 +2536,7 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "requires": { - "caniuse-lite": "1.0.30000889", + "caniuse-lite": "1.0.30000890", "electron-to-chromium": "1.3.75" } }, @@ -2665,9 +2665,9 @@ } }, "caniuse-lite": { - "version": "1.0.30000889", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000889.tgz", - "integrity": "sha512-MFxcQ6x/LEEoaIhO7Zdb7Eg8YyNONN+WBnS5ERJ0li2yRw51+i4xXUNxnLaveTb/4ZoJqsWKEmlomhG2pYzlQA==" + "version": "1.0.30000890", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000890.tgz", + "integrity": "sha512-4NI3s4Y6ROm+SgZN5sLUG4k7nVWQnedis3c/RWkynV5G6cHSY7+a8fwFyn2yoBDE3E6VswhTNNwR3PvzGqlTkg==" }, "capture-stack-trace": { "version": "1.0.1", @@ -2914,9 +2914,9 @@ } }, "commander": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.18.0.tgz", - "integrity": "sha512-6CYPa+JP2ftfRU2qkDK+UTVeQYosOg/2GbcjIcKPHfinyOLPVGXu/ovN86RP49Re5ndJK1N0kuiidFFuepc4ZQ==" + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==" }, "component-bind": { "version": "1.0.0", @@ -3455,7 +3455,7 @@ "ajv": "6.5.4", "chalk": "2.4.1", "cross-spawn": "6.0.5", - "debug": "4.0.1", + "debug": "4.1.0", "doctrine": "2.1.0", "eslint-scope": "4.0.0", "eslint-utils": "1.3.1", @@ -3564,9 +3564,9 @@ } }, "debug": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.0.1.tgz", - "integrity": "sha512-K23FHJ/Mt404FSlp6gSZCevIbTMLX0j3fmHhUEhQ3Wq0FMODW3+cUSoLdy1Gx4polAf4t/lphhmHH35BB8cLYw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", + "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", "dev": true, "requires": { "ms": "2.1.1" @@ -3816,7 +3816,7 @@ "integrity": "sha512-CStQYJgALoQBw3FsBzH0VOVDRnJ/ZimUlpLm226U8qgqYJfPOY/CPK6wyRInMxh73HSKg5wyRwdS4BVYYHwokA==", "dev": true, "requires": { - "fast-diff": "1.1.2", + "fast-diff": "1.2.0", "jest-docblock": "21.2.0" } }, @@ -4014,9 +4014,9 @@ "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" }, "fast-diff": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz", - "integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", "dev": true }, "fast-json-stable-stringify": { @@ -4116,9 +4116,9 @@ } }, "follow-redirects": { - "version": "1.5.8", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.8.tgz", - "integrity": "sha512-sy1mXPmv7kLAMKW/8XofG7o9T+6gAjzdZK4AJF6ryqQYUa/hnzgiypoeUecZ53x7XiqKNEpNqLtS97MshW2nxg==", + "version": "1.5.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.9.tgz", + "integrity": "sha512-Bh65EZI/RU8nx0wbYF9shkFZlqLP+6WT/5FnA3cE/djNSuKNHJEinGGZgu/cQEkeeb2GdFOgenAmn8qaqYke2w==", "requires": { "debug": "3.1.0" } diff --git a/src/bitbox-cli.js b/src/bitbox-sdk.js similarity index 97% rename from src/bitbox-cli.js rename to src/bitbox-sdk.js index 2c6e2b83..d5b6a86e 100644 --- a/src/bitbox-cli.js +++ b/src/bitbox-sdk.js @@ -23,7 +23,7 @@ import Script from "./Script" import Price from "./Price" import Socket from "./Socket" -class BITBOXCli { +class BITBOXSDK { constructor(config) { if (config && config.restURL && config.restURL !== "") this.restURL = config.restURL @@ -53,4 +53,4 @@ class BITBOXCli { } } -export default BITBOXCli +export default BITBOXSDK diff --git a/test/Address.js b/test/Address.js index 6a59e886..718de0fc 100644 --- a/test/Address.js +++ b/test/Address.js @@ -2,8 +2,8 @@ const fixtures = require("./fixtures/Address.json"); const chai = require("chai"); const assert = require("assert"); -const BITBOXCli = require("./../lib/bitbox-sdk").default; -const BITBOX = new BITBOXCli(); +const BITBOXSDK = require("./../lib/bitbox-sdk").default; +const BITBOX = new BITBOXSDK(); const axios = require("axios"); const sinon = require("sinon"); const Bitcoin = require("bitcoincashjs-lib"); diff --git a/test/BitcoinCash.js b/test/BitcoinCash.js index d4cb23aa..75a450cd 100644 --- a/test/BitcoinCash.js +++ b/test/BitcoinCash.js @@ -2,8 +2,8 @@ const fixtures = require("./fixtures/BitcoinCash.json") const chai = require("chai") const assert = require("assert") -const BITBOXCli = require("./../lib/bitbox-sdk").default -const BITBOX = new BITBOXCli() +const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() // TODO // 1. generate testnet p2sh diff --git a/test/Block.js b/test/Block.js index b00407c3..f9e40b6f 100644 --- a/test/Block.js +++ b/test/Block.js @@ -1,8 +1,8 @@ "use strict" const chai = require("chai") const assert = require("assert") -const BITBOXCli = require("./../lib/bitbox-sdk").default -const BITBOX = new BITBOXCli() +const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() const axios = require("axios") const sinon = require("sinon") diff --git a/test/Blockchain.js b/test/Blockchain.js index 41846bae..b04df44a 100644 --- a/test/Blockchain.js +++ b/test/Blockchain.js @@ -2,8 +2,8 @@ const chai = require("chai") const assert = require("assert") const axios = require("axios") -const BITBOXCli = require("./../lib/bitbox-sdk").default -const BITBOX = new BITBOXCli() +const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() const sinon = require("sinon") describe("#Blockchain", () => { diff --git a/test/Control.js b/test/Control.js index 92e822a1..7171d208 100644 --- a/test/Control.js +++ b/test/Control.js @@ -2,8 +2,8 @@ const chai = require("chai") const assert = require("assert") const axios = require("axios") -const BITBOXCli = require("./../lib/bitbox-sdk").default -const BITBOX = new BITBOXCli() +const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() const sinon = require("sinon") describe("#Control", () => { diff --git a/test/Crypto.js b/test/Crypto.js index f53516fc..8eb1a1e5 100644 --- a/test/Crypto.js +++ b/test/Crypto.js @@ -2,8 +2,8 @@ const fixtures = require("./fixtures/Crypto.json") const chai = require("chai") const assert = require("assert") -const BITBOXCli = require("./../lib/bitbox-sdk").default -const BITBOX = new BITBOXCli() +const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() const Buffer = require("safe-buffer").Buffer describe("#Crypto", () => { diff --git a/test/ECPair.js b/test/ECPair.js index 2b7dd10e..bfb21f41 100644 --- a/test/ECPair.js +++ b/test/ECPair.js @@ -2,8 +2,8 @@ const fixtures = require("./fixtures/ECPair.json") const chai = require("chai") const assert = require("assert") -const BITBOXCli = require("./../lib/bitbox-sdk").default -const BITBOX = new BITBOXCli() +const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() const script = BITBOX.Script const Buffer = require("safe-buffer").Buffer diff --git a/test/Generating.js b/test/Generating.js index bef69ace..7ad4834c 100644 --- a/test/Generating.js +++ b/test/Generating.js @@ -2,8 +2,8 @@ const chai = require("chai") const assert = require("assert") const axios = require("axios") -const BITBOXCli = require("./../lib/bitbox-sdk").default -const BITBOX = new BITBOXCli() +const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() const sinon = require("sinon") describe("#Generating", () => { diff --git a/test/HDNode.js b/test/HDNode.js index 813cc2bc..1e6cca3a 100644 --- a/test/HDNode.js +++ b/test/HDNode.js @@ -2,8 +2,8 @@ const fixtures = require("./fixtures/HDNode.json") const chai = require("chai") const assert = require("assert") -const BITBOXCli = require("./../lib/bitbox-sdk").default -const BITBOX = new BITBOXCli() +const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() const Buffer = require("safe-buffer").Buffer describe("#HDNode", () => { diff --git a/test/Mining.js b/test/Mining.js index 8bae0d9e..98871fa5 100644 --- a/test/Mining.js +++ b/test/Mining.js @@ -2,8 +2,8 @@ const chai = require("chai") const assert = require("assert") const axios = require("axios") -const BITBOXCli = require("./../lib/bitbox-sdk").default -const BITBOX = new BITBOXCli() +const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() const sinon = require("sinon") describe("#Mining", () => { diff --git a/test/Mnemonic.js b/test/Mnemonic.js index 5422ca31..02ab1806 100644 --- a/test/Mnemonic.js +++ b/test/Mnemonic.js @@ -2,8 +2,8 @@ const fixtures = require("./fixtures/Mnemonic.json") const chai = require("chai") const assert = require("assert") -const BITBOXCli = require("./../lib/bitbox-sdk").default -const BITBOX = new BITBOXCli() +const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() const Buffer = require("safe-buffer").Buffer describe("#Mnemonic", () => { diff --git a/test/Network.js b/test/Network.js index c5c6e2c3..66ec3433 100644 --- a/test/Network.js +++ b/test/Network.js @@ -2,8 +2,8 @@ const chai = require("chai") const assert = require("assert") const axios = require("axios") -const BITBOXCli = require("./../lib/bitbox-sdk").default -const BITBOX = new BITBOXCli() +const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() const sinon = require("sinon") describe("#Network", () => { diff --git a/test/Price.js b/test/Price.js index bde835bb..92a595d7 100644 --- a/test/Price.js +++ b/test/Price.js @@ -1,8 +1,8 @@ "use strict" const chai = require("chai") const assert = require("assert") -const BITBOXCli = require("./../lib/bitbox-sdk").default -const BITBOX = new BITBOXCli() +const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() const axios = require("axios") const sinon = require("sinon") diff --git a/test/RawTransactions.js b/test/RawTransactions.js index eb065c32..ac0a1fda 100644 --- a/test/RawTransactions.js +++ b/test/RawTransactions.js @@ -2,8 +2,8 @@ const chai = require("chai") const assert = require("assert") const axios = require("axios") -const BITBOXCli = require("./../lib/bitbox-sdk").default -const BITBOX = new BITBOXCli() +const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() const sinon = require("sinon") diff --git a/test/Script.js b/test/Script.js index eb3be668..f3649bb5 100644 --- a/test/Script.js +++ b/test/Script.js @@ -2,8 +2,8 @@ const fixtures = require("./fixtures/Script.json") const chai = require("chai") const assert = require("assert") -const BITBOXCli = require("./../lib/bitbox-sdk").default -const BITBOX = new BITBOXCli() +const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() const Buffer = require("safe-buffer").Buffer describe("#Script", () => { diff --git a/test/Transaction.js b/test/Transaction.js index 96038973..169e3c33 100644 --- a/test/Transaction.js +++ b/test/Transaction.js @@ -1,8 +1,8 @@ "use strict" const chai = require("chai") const assert = require("assert") -const BITBOXCli = require("./../lib/bitbox-sdk").default -const BITBOX = new BITBOXCli() +const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() const axios = require("axios") const sinon = require("sinon") diff --git a/test/TransactionBuilder.js b/test/TransactionBuilder.js index e2c59309..8591c594 100644 --- a/test/TransactionBuilder.js +++ b/test/TransactionBuilder.js @@ -2,8 +2,8 @@ const fixtures = require("./fixtures/TransactionBuilder.json") const chai = require("chai") const assert = require("assert") -const BITBOXCli = require("./../lib/bitbox-sdk").default -const BITBOX = new BITBOXCli() +const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() const Buffer = require("safe-buffer").Buffer describe("#TransactionBuilder", () => { diff --git a/test/Util.js b/test/Util.js index d587c1a8..b5ea2792 100644 --- a/test/Util.js +++ b/test/Util.js @@ -2,8 +2,8 @@ const chai = require("chai") const assert = require("assert") const axios = require("axios") -const BITBOXCli = require("./../lib/bitbox-sdk").default -const BITBOX = new BITBOXCli() +const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() const sinon = require("sinon") describe("#Util", () => { diff --git a/typings/bitbox-cli.d.ts b/typings/bitbox-cli.d.ts index f5967302..79f67c00 100644 --- a/typings/bitbox-cli.d.ts +++ b/typings/bitbox-cli.d.ts @@ -20,7 +20,7 @@ import Price from './Price'; import Socket from './Socket'; -declare class BITBOXCli { +declare class BITBOXSDK { constructor(config?: any); @@ -46,4 +46,4 @@ declare class BITBOXCli { Socket: Socket; } -export default BITBOXCli; +export default BITBOXSDK; From daf3a75991306ee4143bb6999221f0a1ab423e3f Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 9 Oct 2018 13:02:16 -0700 Subject: [PATCH 115/480] v --- index.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 369df253..4d49ec97 100755 --- a/index.js +++ b/index.js @@ -17,7 +17,7 @@ const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") const cmd = require("node-cmd") -program.version("1.8.1", "-v, --version") +program.version("1.8.2", "-v, --version") program .command("new ") diff --git a/package.json b/package.json index 17f009a5..0dbfa1bf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "1.8.1", + "version": "1.8.2", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", From f8656817f88aa9954e68113982a4df2f0d452232 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 9 Oct 2018 13:10:37 -0700 Subject: [PATCH 116/480] V2.0.0 --- index.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 4d49ec97..fb796dc6 100755 --- a/index.js +++ b/index.js @@ -17,7 +17,7 @@ const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") const cmd = require("node-cmd") -program.version("1.8.2", "-v, --version") +program.version("2.0.0", "-v, --version") program .command("new ") diff --git a/package.json b/package.json index 0dbfa1bf..0c9b3658 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "1.8.2", + "version": "2.0.0", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", From 06dbd91492d4f9ea916432243140c5776552f7d6 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 9 Oct 2018 13:36:11 -0700 Subject: [PATCH 117/480] Clean up README. --- README.md | 4 +--- index.js | 2 +- package.json | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index d49ce600..a2ce8355 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,4 @@ -# `bitbox-sdk` - -## Command line tool for https://developer.bitcoin.com/bitbox +# BITBOX SDK `bitbox-sdk` is a utility for creating great [Bitcoin Cash](https://www.bitcoincash.org) applications. If can be used from the command line or from within client/server apps. diff --git a/index.js b/index.js index fb796dc6..f5e9feea 100755 --- a/index.js +++ b/index.js @@ -17,7 +17,7 @@ const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") const cmd = require("node-cmd") -program.version("2.0.0", "-v, --version") +program.version("2.0.1 ", "-v, --version") program .command("new ") diff --git a/package.json b/package.json index 0c9b3658..8faa387c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "2.0.0", + "version": "2.0.1", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", From 7add3b86af4a587c914059c0bbabb0dac7b3edc1 Mon Sep 17 00:00:00 2001 From: Yuiki <10101661+Yuiki@users.noreply.github.com> Date: Mon, 15 Oct 2018 14:11:45 +0900 Subject: [PATCH 118/480] rename bitbox-cli.d.ts to bitbox-sdk.d.ts --- lib/bitbox-cli.js | 127 ------------------- lib/{bitbox-cli.d.ts => bitbox-sdk.d.ts} | 98 +++++++------- typings/{bitbox-cli.d.ts => bitbox-sdk.d.ts} | 98 +++++++------- 3 files changed, 98 insertions(+), 225 deletions(-) delete mode 100644 lib/bitbox-cli.js rename lib/{bitbox-cli.d.ts => bitbox-sdk.d.ts} (96%) rename typings/{bitbox-cli.d.ts => bitbox-sdk.d.ts} (96%) diff --git a/lib/bitbox-cli.js b/lib/bitbox-cli.js deleted file mode 100644 index 032d4a2a..00000000 --- a/lib/bitbox-cli.js +++ /dev/null @@ -1,127 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _axios = require("axios"); - -var _axios2 = _interopRequireDefault(_axios); - -var _bitcoincashjsLib = require("bitcoincashjs-lib"); - -var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); - -var _BitcoinCash = require("./BitcoinCash"); - -var _BitcoinCash2 = _interopRequireDefault(_BitcoinCash); - -var _Crypto = require("./Crypto"); - -var _Crypto2 = _interopRequireDefault(_Crypto); - -var _Util = require("./Util"); - -var _Util2 = _interopRequireDefault(_Util); - -var _Block = require("./Block"); - -var _Block2 = _interopRequireDefault(_Block); - -var _Blockchain = require("./Blockchain"); - -var _Blockchain2 = _interopRequireDefault(_Blockchain); - -var _Control = require("./Control"); - -var _Control2 = _interopRequireDefault(_Control); - -var _Generating = require("./Generating"); - -var _Generating2 = _interopRequireDefault(_Generating); - -var _Mining = require("./Mining"); - -var _Mining2 = _interopRequireDefault(_Mining); - -var _Network = require("./Network"); - -var _Network2 = _interopRequireDefault(_Network); - -var _RawTransactions = require("./RawTransactions"); - -var _RawTransactions2 = _interopRequireDefault(_RawTransactions); - -var _Mnemonic = require("./Mnemonic"); - -var _Mnemonic2 = _interopRequireDefault(_Mnemonic); - -var _Address = require("./Address"); - -var _Address2 = _interopRequireDefault(_Address); - -var _HDNode = require("./HDNode"); - -var _HDNode2 = _interopRequireDefault(_HDNode); - -var _Transaction = require("./Transaction"); - -var _Transaction2 = _interopRequireDefault(_Transaction); - -var _TransactionBuilder = require("./TransactionBuilder"); - -var _TransactionBuilder2 = _interopRequireDefault(_TransactionBuilder); - -var _ECPair = require("./ECPair"); - -var _ECPair2 = _interopRequireDefault(_ECPair); - -var _Script = require("./Script"); - -var _Script2 = _interopRequireDefault(_Script); - -var _Price = require("./Price"); - -var _Price2 = _interopRequireDefault(_Price); - -var _Socket = require("./Socket"); - -var _Socket2 = _interopRequireDefault(_Socket); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } // 3rd party deps - - -// local deps - - -var BITBOXSDK = function BITBOXSDK(config) { - _classCallCheck(this, BITBOXSDK); - - if (config && config.restURL && config.restURL !== "") this.restURL = config.restURL;else this.restURL = "https://rest.bitcoin.com/v1/"; - - this.Address = new _Address2.default(this.restURL); - this.BitcoinCash = new _BitcoinCash2.default(this.Address); - this.Block = new _Block2.default(this.restURL); - this.Blockchain = new _Blockchain2.default(this.restURL); - this.Control = new _Control2.default(this.restURL); - this.Crypto = _Crypto2.default; - this.ECPair = _ECPair2.default; - this.ECPair.setAddress(this.Address); - this.Generating = new _Generating2.default(this.restURL); - this.HDNode = new _HDNode2.default(this.Address); - this.Mining = new _Mining2.default(this.restURL); - this.Mnemonic = new _Mnemonic2.default(this.Address); - this.Network = new _Network2.default(this.restURL); - this.Price = new _Price2.default(); - this.RawTransactions = new _RawTransactions2.default(this.restURL); - this.Script = new _Script2.default(); - this.Transaction = new _Transaction2.default(this.restURL); - this.TransactionBuilder = _TransactionBuilder2.default; - this.TransactionBuilder.setAddress(this.Address); - this.Util = new _Util2.default(this.restURL); - this.Socket = _Socket2.default; -}; - -exports.default = BITBOXSDK; \ No newline at end of file diff --git a/lib/bitbox-cli.d.ts b/lib/bitbox-sdk.d.ts similarity index 96% rename from lib/bitbox-cli.d.ts rename to lib/bitbox-sdk.d.ts index 79f67c00..0ced11e4 100644 --- a/lib/bitbox-cli.d.ts +++ b/lib/bitbox-sdk.d.ts @@ -1,49 +1,49 @@ -// local deps -import { BitcoinCash } from './BitcoinCash'; -import { Crypto } from './Crypto'; -import { Util } from './Util'; -import { Block } from './Block'; -import { Blockchain } from './Blockchain'; -import { Control } from './Control'; -import { Generating } from './Generating'; -import { Mining } from './Mining'; -import { Network } from './Network'; -import { RawTransactions } from './RawTransactions'; -import { Mnemonic } from './Mnemonic'; -import { Address } from './Address'; -import { HDNode } from './HDNode'; -import { Transaction } from './Transaction'; -import { TransactionBuilder } from './TransactionBuilder'; -import { ECPair } from './ECPair'; -import { Script } from './Script'; -import Price from './Price'; -import Socket from './Socket'; - - -declare class BITBOXSDK { - - constructor(config?: any); - - restURL: string; - Address: Address; - BitcoinCash: BitcoinCash; - Block: Block; - Blockchain: Blockchain; - Control: Control; - Generating: Generating; - Mining: Mining; - Crypto: Crypto; - ECPair: ECPair; - HDNode: HDNode; - Mnemonic: Mnemonic; - Network: Network; - Price: Price; - RawTransactions: RawTransactions; - Script: Script; - Transaction: Transaction; - TransactionBuilder: TransactionBuilder; - Util: Util; - Socket: Socket; -} - -export default BITBOXSDK; +// local deps +import { BitcoinCash } from './BitcoinCash'; +import { Crypto } from './Crypto'; +import { Util } from './Util'; +import { Block } from './Block'; +import { Blockchain } from './Blockchain'; +import { Control } from './Control'; +import { Generating } from './Generating'; +import { Mining } from './Mining'; +import { Network } from './Network'; +import { RawTransactions } from './RawTransactions'; +import { Mnemonic } from './Mnemonic'; +import { Address } from './Address'; +import { HDNode } from './HDNode'; +import { Transaction } from './Transaction'; +import { TransactionBuilder } from './TransactionBuilder'; +import { ECPair } from './ECPair'; +import { Script } from './Script'; +import Price from './Price'; +import Socket from './Socket'; + + +declare class BITBOXSDK { + + constructor(config?: any); + + restURL: string; + Address: Address; + BitcoinCash: BitcoinCash; + Block: Block; + Blockchain: Blockchain; + Control: Control; + Generating: Generating; + Mining: Mining; + Crypto: Crypto; + ECPair: ECPair; + HDNode: HDNode; + Mnemonic: Mnemonic; + Network: Network; + Price: Price; + RawTransactions: RawTransactions; + Script: Script; + Transaction: Transaction; + TransactionBuilder: TransactionBuilder; + Util: Util; + Socket: Socket; +} + +export default BITBOXSDK; diff --git a/typings/bitbox-cli.d.ts b/typings/bitbox-sdk.d.ts similarity index 96% rename from typings/bitbox-cli.d.ts rename to typings/bitbox-sdk.d.ts index 79f67c00..0ced11e4 100644 --- a/typings/bitbox-cli.d.ts +++ b/typings/bitbox-sdk.d.ts @@ -1,49 +1,49 @@ -// local deps -import { BitcoinCash } from './BitcoinCash'; -import { Crypto } from './Crypto'; -import { Util } from './Util'; -import { Block } from './Block'; -import { Blockchain } from './Blockchain'; -import { Control } from './Control'; -import { Generating } from './Generating'; -import { Mining } from './Mining'; -import { Network } from './Network'; -import { RawTransactions } from './RawTransactions'; -import { Mnemonic } from './Mnemonic'; -import { Address } from './Address'; -import { HDNode } from './HDNode'; -import { Transaction } from './Transaction'; -import { TransactionBuilder } from './TransactionBuilder'; -import { ECPair } from './ECPair'; -import { Script } from './Script'; -import Price from './Price'; -import Socket from './Socket'; - - -declare class BITBOXSDK { - - constructor(config?: any); - - restURL: string; - Address: Address; - BitcoinCash: BitcoinCash; - Block: Block; - Blockchain: Blockchain; - Control: Control; - Generating: Generating; - Mining: Mining; - Crypto: Crypto; - ECPair: ECPair; - HDNode: HDNode; - Mnemonic: Mnemonic; - Network: Network; - Price: Price; - RawTransactions: RawTransactions; - Script: Script; - Transaction: Transaction; - TransactionBuilder: TransactionBuilder; - Util: Util; - Socket: Socket; -} - -export default BITBOXSDK; +// local deps +import { BitcoinCash } from './BitcoinCash'; +import { Crypto } from './Crypto'; +import { Util } from './Util'; +import { Block } from './Block'; +import { Blockchain } from './Blockchain'; +import { Control } from './Control'; +import { Generating } from './Generating'; +import { Mining } from './Mining'; +import { Network } from './Network'; +import { RawTransactions } from './RawTransactions'; +import { Mnemonic } from './Mnemonic'; +import { Address } from './Address'; +import { HDNode } from './HDNode'; +import { Transaction } from './Transaction'; +import { TransactionBuilder } from './TransactionBuilder'; +import { ECPair } from './ECPair'; +import { Script } from './Script'; +import Price from './Price'; +import Socket from './Socket'; + + +declare class BITBOXSDK { + + constructor(config?: any); + + restURL: string; + Address: Address; + BitcoinCash: BitcoinCash; + Block: Block; + Blockchain: Blockchain; + Control: Control; + Generating: Generating; + Mining: Mining; + Crypto: Crypto; + ECPair: ECPair; + HDNode: HDNode; + Mnemonic: Mnemonic; + Network: Network; + Price: Price; + RawTransactions: RawTransactions; + Script: Script; + Transaction: Transaction; + TransactionBuilder: TransactionBuilder; + Util: Util; + Socket: Socket; +} + +export default BITBOXSDK; From 3a5405f3ff8c427e8b15378c182f764363af202f Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Mon, 15 Oct 2018 17:27:01 +0200 Subject: [PATCH 119/480] v --- index.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index f5e9feea..e9f9e1c1 100755 --- a/index.js +++ b/index.js @@ -17,7 +17,7 @@ const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") const cmd = require("node-cmd") -program.version("2.0.1 ", "-v, --version") +program.version("2.0.2 ", "-v, --version") program .command("new ") diff --git a/package.json b/package.json index 8faa387c..ed9b5447 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "2.0.1", + "version": "2.0.2", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", From 8af412c91485d7874096bac3afe47e2bd80d0dc7 Mon Sep 17 00:00:00 2001 From: SpendBCH Date: Mon, 15 Oct 2018 10:02:01 -0700 Subject: [PATCH 120/480] Update price api for explicit currencies; CORS fix --- lib/Price.js | 9 ++++++--- src/Price.js | 13 +++++++++---- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/lib/Price.js b/lib/Price.js index e06c8baf..55ac5017 100644 --- a/lib/Price.js +++ b/lib/Price.js @@ -25,10 +25,13 @@ var Price = function () { var currency = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "all"; try { - var response = await _axios2.default.get("https://www.blocktrail.com/BCC/json/blockchain/price"); - if (currency === "all") return response.data; + if (currency === "all") { + var _response = await _axios2.default.get("https://www.blocktrail.com/BCC/json/blockchain/price"); + return _response.data; + } - return response.data[currency.toUpperCase()]; + var response = await _axios2.default.get("https://index-api.bitcoin.com/api/v0/cash/price/" + currency); + return response.data.price / 100.0; } catch (error) { if (error.response && error.response.data) throw error.response.data;else throw error; } diff --git a/src/Price.js b/src/Price.js index 0f5f0320..2a9edf88 100644 --- a/src/Price.js +++ b/src/Price.js @@ -2,12 +2,17 @@ import axios from "axios" class Price { async current(currency = "all") { try { + if (currency === "all") { + const response = await axios.get( + `https://www.blocktrail.com/BCC/json/blockchain/price` + ) + return response.data + } + const response = await axios.get( - `https://www.blocktrail.com/BCC/json/blockchain/price` + `https://index-api.bitcoin.com/api/v0/cash/price/${currency}` ) - if (currency === "all") return response.data - - return response.data[currency.toUpperCase()] + return response.data.price / 100.0 } catch (error) { if (error.response && error.response.data) throw error.response.data else throw error From 84b2e7874e0f39be329d90656409f2dd0f0938de Mon Sep 17 00:00:00 2001 From: SpendBCH Date: Mon, 15 Oct 2018 10:17:37 -0700 Subject: [PATCH 121/480] Update Price test --- test/Price.js | 33 +++------------------------------ 1 file changed, 3 insertions(+), 30 deletions(-) diff --git a/test/Price.js b/test/Price.js index 92a595d7..6d996d4a 100644 --- a/test/Price.js +++ b/test/Price.js @@ -63,42 +63,15 @@ describe("#Price", () => { it("should get current price for single currency", done => { const data = { - USD: 872.31, - GBP: 665.3, - EUR: 748.34, - CNY: 5848.32, - PAB: 872.31, - ARS: 24005.97, - BOB: 6060.11, - CLP: 570141.82, - PEN: 2851.32, - PYG: 4986964.67, - UYU: 27300.76, - VEF: 69697569, - CRC: 494264.3, - MXN: 16476.28, - NGN: 314903.91, - INR: 59620.88, - RUB: 54650.83, - AUD: 1180.92, - BRL: 3347.57, - CAD: 1151.44, - ZAR: 11579.24, - GHS: 4177.25, - JPY: 98519.56, - ILS: 3165.36, - SAR: 3271.21, - KRW: 984345.13, - COP: 2521500.32, - PHP: 46612.32, - PLN: 3215.41 + price: 46347, + stamp: 1539620880 } const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) BITBOX.Price.current("usd") .then(result => { - assert.deepEqual(data.USD, result) + assert.deepEqual(data.price / 100.0, result) }) .then(done, done) }) From 9e3a94d780638c46063690dfb59756b665fe55e2 Mon Sep 17 00:00:00 2001 From: SpendBCH Date: Mon, 15 Oct 2018 10:50:13 -0700 Subject: [PATCH 122/480] Add Price todo for v3 --- lib/Price.js | 2 ++ src/Price.js | 1 + 2 files changed, 3 insertions(+) diff --git a/lib/Price.js b/lib/Price.js index 55ac5017..0c560ae6 100644 --- a/lib/Price.js +++ b/lib/Price.js @@ -21,6 +21,8 @@ var Price = function () { _createClass(Price, [{ key: "current", + + // TODO: v3: Default currency to usd, always call index.bitcoin.com value: async function current() { var currency = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "all"; diff --git a/src/Price.js b/src/Price.js index 2a9edf88..6fd81158 100644 --- a/src/Price.js +++ b/src/Price.js @@ -1,5 +1,6 @@ import axios from "axios" class Price { + // TODO: v3: Default currency to usd, always call index.bitcoin.com async current(currency = "all") { try { if (currency === "all") { From 2009b4cf9c35c9ab51d024085420f0e3dcbac9ae Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 16 Oct 2018 22:01:45 +0200 Subject: [PATCH 123/480] v --- index.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index e9f9e1c1..7bf8127e 100755 --- a/index.js +++ b/index.js @@ -17,7 +17,7 @@ const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") const cmd = require("node-cmd") -program.version("2.0.2 ", "-v, --version") +program.version("2.0.3 ", "-v, --version") program .command("new ") diff --git a/package.json b/package.json index ed9b5447..3efde512 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "2.0.2", + "version": "2.0.3", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", From 43ef416e934e665ac0065c1c84526dc64208ee8f Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Thu, 18 Oct 2018 22:14:28 +0200 Subject: [PATCH 124/480] Clean up deps. --- index.js | 2 +- package-lock.json | 2871 ++++++++++++++------------------------------- package.json | 4 +- 3 files changed, 880 insertions(+), 1997 deletions(-) diff --git a/index.js b/index.js index 7bf8127e..6f034eb9 100755 --- a/index.js +++ b/index.js @@ -17,7 +17,7 @@ const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") const cmd = require("node-cmd") -program.version("2.0.3 ", "-v, --version") +program.version("2.0.4 ", "-v, --version") program .command("new ") diff --git a/package-lock.json b/package-lock.json index 92692d1d..b356ab92 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,129 +1,9 @@ { "name": "bitbox-sdk", - "version": "1.8.1", + "version": "2.0.4", "lockfileVersion": 1, "requires": true, "dependencies": { - "@babel/code-frame": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz", - "integrity": "sha1-vXHZsZKvl435FYKdOdQJRFZDmgw=", - "requires": { - "@babel/highlight": "7.0.0-beta.51" - } - }, - "@babel/generator": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.51.tgz", - "integrity": "sha1-bHV1/952HQdIXgS67cA5LG2eMPY=", - "requires": { - "@babel/types": "7.0.0-beta.51", - "jsesc": "2.5.1", - "lodash": "4.17.11", - "source-map": "0.5.7", - "trim-right": "1.0.1" - }, - "dependencies": { - "jsesc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", - "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=" - } - } - }, - "@babel/helper-function-name": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.51.tgz", - "integrity": "sha1-IbSHSiJ8+Z7K/MMKkDAtpaJkBWE=", - "requires": { - "@babel/helper-get-function-arity": "7.0.0-beta.51", - "@babel/template": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.51.tgz", - "integrity": "sha1-MoGy0EWvlcFyzpGyCCXYXqRnZBE=", - "requires": { - "@babel/types": "7.0.0-beta.51" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.51.tgz", - "integrity": "sha1-imw/ZsTSZTUvwHdIT59ugKUauXg=", - "requires": { - "@babel/types": "7.0.0-beta.51" - } - }, - "@babel/highlight": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.51.tgz", - "integrity": "sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0=", - "requires": { - "chalk": "2.4.1", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } - }, - "@babel/parser": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.0.0-beta.51.tgz", - "integrity": "sha1-J87C30Cd9gr1gnDtj2qlVAnqhvY=" - }, - "@babel/template": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.51.tgz", - "integrity": "sha1-lgKkCuvPNXrpZ34lMu9fyBD1+/8=", - "requires": { - "@babel/code-frame": "7.0.0-beta.51", - "@babel/parser": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51", - "lodash": "4.17.11" - } - }, - "@babel/traverse": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.51.tgz", - "integrity": "sha1-mB2vLOw0emIx06odnhgDsDqqpKg=", - "requires": { - "@babel/code-frame": "7.0.0-beta.51", - "@babel/generator": "7.0.0-beta.51", - "@babel/helper-function-name": "7.0.0-beta.51", - "@babel/helper-split-export-declaration": "7.0.0-beta.51", - "@babel/parser": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51", - "debug": "3.1.0", - "globals": "11.8.0", - "invariant": "2.2.4", - "lodash": "4.17.11" - }, - "dependencies": { - "globals": { - "version": "11.8.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.8.0.tgz", - "integrity": "sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA==" - } - } - }, - "@babel/types": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.51.tgz", - "integrity": "sha1-2AK3tUO1g2x3iqaReXq/APPZfqk=", - "requires": { - "esutils": "2.0.2", - "lodash": "4.17.11", - "to-fast-properties": "2.0.0" - }, - "dependencies": { - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - } - } - }, "@sindresorhus/is": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", @@ -1226,1090 +1106,98 @@ } } }, - "base-x": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.4.tgz", - "integrity": "sha512-UYOadoSIkEI/VrRGSG6qp93rp2WdokiAiNYDfGW5qURAY8GiAQkvMbwNNSDYiVJopqv4gCna7xqf4rrNGp+5AA==", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" - }, - "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" - }, - "base64id": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", - "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=" - }, - "base64url": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.0.tgz", - "integrity": "sha512-LIVmqIrIWuiqTvn4RzcrwCOuHo2DD6tKmKBPXXlr4p4n4l6BZBkwFTIa3zu1XkX5MbZgro4a6BvPi+n2Mns5Gg==", - "dev": true - }, - "bchaddrjs": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.2.tgz", - "integrity": "sha512-W06sUpprptb65JHbu2yFdv8Tg7o2OWpD5n2pMUIhuLOXC5c64eMW7y9Pg0IHd/Qe31e1KwnHT9H1w6Pf9r4Fkg==", - "requires": { - "bs58check": "2.1.2", - "cashaddrjs": "0.2.9" - } - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "bech32": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.3.tgz", - "integrity": "sha512-yuVFUvrNcoJi0sv5phmqc6P+Fl1HjRDRNOOkHY2X/3LBy2bIGNSFx4fZ95HMaXHupuS7cZR15AsvtmCIF4UEyg==" - }, - "better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", - "requires": { - "callsite": "1.0.0" - } - }, - "big-integer": { - "version": "1.6.36", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", - "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==" - }, - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" - }, - "bigi": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz", - "integrity": "sha1-nGZalfiLiwj8Bc/XMfVhhZ1yWCU=" - }, - "binary-extensions": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", - "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==" - }, - "bindings": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz", - "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==" - }, - "bip21": { - "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "requires": { - "qs": "6.5.2" - } - }, - "bip32-utils": { - "version": "github:Bitcoin-com/bip32-utils#318df796443311f7e12217542f7f45d3b7791f10", - "requires": { - "bitbox-cli": "1.5.12", - "keccak": "1.4.0", - "nyc": "13.0.1", - "standard": "11.0.1", - "tape": "4.9.1" - }, - "dependencies": { - "nyc": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-13.0.1.tgz", - "integrity": "sha512-Op/bjhEF74IMtzMmgYt+ModTeMHoPZzHe4qseUguPBwg5qC6r4rYMBt1L3yRXQIbjUpEqmn24/1xAC/umQGU7w==", - "requires": { - "archy": "1.0.0", - "arrify": "1.0.1", - "caching-transform": "2.0.0", - "convert-source-map": "1.5.1", - "debug-log": "1.0.1", - "find-cache-dir": "2.0.0", - "find-up": "3.0.0", - "foreground-child": "1.5.6", - "glob": "7.1.2", - "istanbul-lib-coverage": "2.0.1", - "istanbul-lib-hook": "2.0.1", - "istanbul-lib-instrument": "2.3.2", - "istanbul-lib-report": "2.0.1", - "istanbul-lib-source-maps": "2.0.1", - "istanbul-reports": "2.0.0", - "make-dir": "1.3.0", - "merge-source-map": "1.1.0", - "resolve-from": "4.0.0", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "spawn-wrap": "1.4.2", - "test-exclude": "5.0.0", - "uuid": "3.3.2", - "yargs": "11.1.0", - "yargs-parser": "9.0.2" - }, - "dependencies": { - "align-text": { - "version": "0.1.4", - "bundled": true, - "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" - } - }, - "amdefine": { - "version": "1.0.1", - "bundled": true - }, - "ansi-regex": { - "version": "3.0.0", - "bundled": true - }, - "append-transform": { - "version": "1.0.0", - "bundled": true, - "requires": { - "default-require-extensions": "2.0.0" - } - }, - "archy": { - "version": "1.0.0", - "bundled": true - }, - "arrify": { - "version": "1.0.1", - "bundled": true - }, - "async": { - "version": "1.5.2", - "bundled": true - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "builtin-modules": { - "version": "1.1.1", - "bundled": true - }, - "caching-transform": { - "version": "2.0.0", - "bundled": true, - "requires": { - "make-dir": "1.3.0", - "md5-hex": "2.0.0", - "package-hash": "2.0.0", - "write-file-atomic": "2.3.0" - } - }, - "camelcase": { - "version": "1.2.1", - "bundled": true, - "optional": true - }, - "center-align": { - "version": "0.1.3", - "bundled": true, - "optional": true, - "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" - } - }, - "cliui": { - "version": "2.1.0", - "bundled": true, - "optional": true, - "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "bundled": true, - "optional": true - } - } - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true - }, - "commondir": { - "version": "1.0.1", - "bundled": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true - }, - "convert-source-map": { - "version": "1.5.1", - "bundled": true - }, - "cross-spawn": { - "version": "4.0.2", - "bundled": true, - "requires": { - "lru-cache": "4.1.3", - "which": "1.3.1" - } - }, - "debug": { - "version": "3.1.0", - "bundled": true, - "requires": { - "ms": "2.0.0" - } - }, - "debug-log": { - "version": "1.0.1", - "bundled": true - }, - "decamelize": { - "version": "1.2.0", - "bundled": true - }, - "default-require-extensions": { - "version": "2.0.0", - "bundled": true, - "requires": { - "strip-bom": "3.0.0" - } - }, - "error-ex": { - "version": "1.3.2", - "bundled": true, - "requires": { - "is-arrayish": "0.2.1" - } - }, - "es6-error": { - "version": "4.1.1", - "bundled": true - }, - "execa": { - "version": "0.7.0", - "bundled": 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" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "bundled": true, - "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" - } - } - } - }, - "find-cache-dir": { - "version": "2.0.0", - "bundled": true, - "requires": { - "commondir": "1.0.1", - "make-dir": "1.3.0", - "pkg-dir": "3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "bundled": true, - "requires": { - "locate-path": "3.0.0" - } - }, - "foreground-child": { - "version": "1.5.6", - "bundled": true, - "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true - }, - "get-caller-file": { - "version": "1.0.3", - "bundled": true - }, - "get-stream": { - "version": "3.0.0", - "bundled": true - }, - "glob": { - "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" - } - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true - }, - "handlebars": { - "version": "4.0.11", - "bundled": true, - "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "bundled": true, - "requires": { - "amdefine": "1.0.1" - } - } - } - }, - "has-flag": { - "version": "3.0.0", - "bundled": true - }, - "hosted-git-info": { - "version": "2.7.1", - "bundled": true - }, - "imurmurhash": { - "version": "0.1.4", - "bundled": true - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true - }, - "invert-kv": { - "version": "1.0.0", - "bundled": true - }, - "is-arrayish": { - "version": "0.2.1", - "bundled": true - }, - "is-buffer": { - "version": "1.1.6", - "bundled": true - }, - "is-builtin-module": { - "version": "1.0.0", - "bundled": true, - "requires": { - "builtin-modules": "1.1.1" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "bundled": true - }, - "is-stream": { - "version": "1.1.0", - "bundled": true - }, - "isexe": { - "version": "2.0.0", - "bundled": true - }, - "istanbul-lib-coverage": { - "version": "2.0.1", - "bundled": true - }, - "istanbul-lib-hook": { - "version": "2.0.1", - "bundled": true, - "requires": { - "append-transform": "1.0.0" - } - }, - "istanbul-lib-report": { - "version": "2.0.1", - "bundled": true, - "requires": { - "istanbul-lib-coverage": "2.0.1", - "make-dir": "1.3.0", - "supports-color": "5.4.0" - } - }, - "istanbul-lib-source-maps": { - "version": "2.0.1", - "bundled": true, - "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "2.0.1", - "make-dir": "1.3.0", - "rimraf": "2.6.2", - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true - } - } - }, - "istanbul-reports": { - "version": "2.0.0", - "bundled": true, - "requires": { - "handlebars": "4.0.11" - } - }, - "json-parse-better-errors": { - "version": "1.0.2", - "bundled": true - }, - "kind-of": { - "version": "3.2.2", - "bundled": true, - "requires": { - "is-buffer": "1.1.6" - } - }, - "lazy-cache": { - "version": "1.0.4", - "bundled": true, - "optional": true - }, - "lcid": { - "version": "1.0.0", - "bundled": true, - "requires": { - "invert-kv": "1.0.0" - } - }, - "load-json-file": { - "version": "4.0.0", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "bundled": true, - "requires": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" - } - }, - "lodash.flattendeep": { - "version": "4.4.0", - "bundled": true - }, - "longest": { - "version": "1.0.1", - "bundled": true - }, - "lru-cache": { - "version": "4.1.3", - "bundled": true, - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } - }, - "make-dir": { - "version": "1.3.0", - "bundled": true, - "requires": { - "pify": "3.0.0" - } - }, - "md5-hex": { - "version": "2.0.0", - "bundled": true, - "requires": { - "md5-o-matic": "0.1.1" - } - }, - "md5-o-matic": { - "version": "0.1.1", - "bundled": true - }, - "mem": { - "version": "1.1.0", - "bundled": true, - "requires": { - "mimic-fn": "1.2.0" - } - }, - "merge-source-map": { - "version": "1.1.0", - "bundled": true, - "requires": { - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true - } - } - }, - "mimic-fn": { - "version": "1.2.0", - "bundled": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "0.0.10", - "bundled": true - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "bundled": true - } - } - }, - "ms": { - "version": "2.0.0", - "bundled": true - }, - "normalize-package-data": { - "version": "2.4.0", - "bundled": true, - "requires": { - "hosted-git-info": "2.7.1", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" - } - }, - "npm-run-path": { - "version": "2.0.2", - "bundled": true, - "requires": { - "path-key": "2.0.1" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "optimist": { - "version": "0.6.1", - "bundled": true, - "requires": { - "minimist": "0.0.10", - "wordwrap": "0.0.3" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true - }, - "os-locale": { - "version": "2.1.0", - "bundled": true, - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - } - }, - "p-finally": { - "version": "1.0.0", - "bundled": true - }, - "p-limit": { - "version": "2.0.0", - "bundled": true, - "requires": { - "p-try": "2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "bundled": true, - "requires": { - "p-limit": "2.0.0" - } - }, - "p-try": { - "version": "2.0.0", - "bundled": true - }, - "package-hash": { - "version": "2.0.0", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "lodash.flattendeep": "4.4.0", - "md5-hex": "2.0.0", - "release-zalgo": "1.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "bundled": true, - "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" - } - }, - "path-exists": { - "version": "3.0.0", - "bundled": true - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true - }, - "path-key": { - "version": "2.0.1", - "bundled": true - }, - "path-type": { - "version": "3.0.0", - "bundled": true, - "requires": { - "pify": "3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "bundled": true - }, - "pkg-dir": { - "version": "3.0.0", - "bundled": true, - "requires": { - "find-up": "3.0.0" - } - }, - "pseudomap": { - "version": "1.0.2", - "bundled": true - }, - "read-pkg": { - "version": "3.0.0", - "bundled": true, - "requires": { - "load-json-file": "4.0.0", - "normalize-package-data": "2.4.0", - "path-type": "3.0.0" - } - }, - "read-pkg-up": { - "version": "4.0.0", - "bundled": true, - "requires": { - "find-up": "3.0.0", - "read-pkg": "3.0.0" - } - }, - "release-zalgo": { - "version": "1.0.0", - "bundled": true, - "requires": { - "es6-error": "4.1.1" - } - }, - "repeat-string": { - "version": "1.6.1", - "bundled": true - }, - "require-directory": { - "version": "2.1.1", - "bundled": true - }, - "require-main-filename": { - "version": "1.0.1", - "bundled": true - }, - "resolve-from": { - "version": "4.0.0", - "bundled": true - }, - "right-align": { - "version": "0.1.3", - "bundled": true, - "optional": true, - "requires": { - "align-text": "0.1.4" - } - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "requires": { - "glob": "7.1.2" - } - }, - "semver": { - "version": "5.5.0", - "bundled": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true - }, - "shebang-command": { - "version": "1.2.0", - "bundled": true, - "requires": { - "shebang-regex": "1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "bundled": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true - }, - "source-map": { - "version": "0.5.7", - "bundled": true, - "optional": true - }, - "spawn-wrap": { - "version": "1.4.2", - "bundled": true, - "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.1" - } - }, - "spdx-correct": { - "version": "3.0.0", - "bundled": true, - "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "bundled": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "bundled": true, - "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "bundled": true - }, - "string-width": { - "version": "2.1.1", - "bundled": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "requires": { - "ansi-regex": "3.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "bundled": true - }, - "strip-eof": { - "version": "1.0.0", - "bundled": true - }, - "supports-color": { - "version": "5.4.0", - "bundled": true, - "requires": { - "has-flag": "3.0.0" - } - }, - "test-exclude": { - "version": "5.0.0", - "bundled": true, - "requires": { - "arrify": "1.0.1", - "minimatch": "3.0.4", - "read-pkg-up": "4.0.0", - "require-main-filename": "1.0.1" - } - }, - "uglify-js": { - "version": "2.8.29", - "bundled": true, - "optional": true, - "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" - }, - "dependencies": { - "yargs": { - "version": "3.10.0", - "bundled": true, - "optional": true, - "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" - } - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "uuid": { - "version": "3.3.2", - "bundled": true - }, - "validate-npm-package-license": { - "version": "3.0.3", - "bundled": true, - "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" - } - }, - "which": { - "version": "1.3.1", - "bundled": true, - "requires": { - "isexe": "2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "bundled": true - }, - "window-size": { - "version": "0.1.0", - "bundled": true, - "optional": true - }, - "wordwrap": { - "version": "0.0.3", - "bundled": true - }, - "wrap-ansi": { - "version": "2.1.0", - "bundled": true, - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "bundled": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "string-width": { - "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" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "requires": { - "ansi-regex": "2.1.1" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true - }, - "write-file-atomic": { - "version": "2.3.0", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "signal-exit": "3.0.2" - } - }, - "y18n": { - "version": "3.2.1", - "bundled": true - }, - "yallist": { - "version": "2.1.2", - "bundled": true - }, - "yargs": { - "version": "11.1.0", - "bundled": true, - "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.3", - "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": "9.0.2" - }, - "dependencies": { - "cliui": { - "version": "4.1.0", - "bundled": true, - "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" - } - }, - "find-up": { - "version": "2.1.0", - "bundled": true, - "requires": { - "locate-path": "2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "bundled": true, - "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "bundled": true, - "requires": { - "p-try": "1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "bundled": true, - "requires": { - "p-limit": "1.3.0" - } - }, - "p-try": { - "version": "1.0.0", - "bundled": true - } - } - }, - "yargs-parser": { - "version": "9.0.2", - "bundled": true, - "requires": { - "camelcase": "4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "bundled": true - } - } - } - } - } - } - }, + "base-x": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.4.tgz", + "integrity": "sha512-UYOadoSIkEI/VrRGSG6qp93rp2WdokiAiNYDfGW5qURAY8GiAQkvMbwNNSDYiVJopqv4gCna7xqf4rrNGp+5AA==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" + }, + "base64-js": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" + }, + "base64id": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=" + }, + "base64url": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.0.tgz", + "integrity": "sha512-LIVmqIrIWuiqTvn4RzcrwCOuHo2DD6tKmKBPXXlr4p4n4l6BZBkwFTIa3zu1XkX5MbZgro4a6BvPi+n2Mns5Gg==", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "bech32": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.3.tgz", + "integrity": "sha512-yuVFUvrNcoJi0sv5phmqc6P+Fl1HjRDRNOOkHY2X/3LBy2bIGNSFx4fZ95HMaXHupuS7cZR15AsvtmCIF4UEyg==" + }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "requires": { + "callsite": "1.0.0" + } + }, + "big-integer": { + "version": "1.6.36", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", + "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==" + }, + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" + }, + "bigi": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz", + "integrity": "sha1-nGZalfiLiwj8Bc/XMfVhhZ1yWCU=" + }, + "binary-extensions": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", + "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==" + }, + "bindings": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz", + "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==" + }, + "bip21": { + "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", + "requires": { + "qs": "6.5.2" + } + }, + "bip32-utils": { + "version": "github:Bitcoin-com/bip32-utils#966fb8f0e0d4c667e4ee89adfa20c2078d66887c", + "requires": { + "keccak": "1.4.0", + "nyc": "11.9.0", + "standard": "11.0.1", + "tape": "4.9.1" + } + }, "bip38": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", @@ -2347,57 +1235,6 @@ "bip68": { "version": "github:Bitcoin-com/bip68#aeac5a8c5c1e01dfba79ff3eb824171be004a28c" }, - "bitbox-cli": { - "version": "1.5.12", - "resolved": "https://registry.npmjs.org/bitbox-cli/-/bitbox-cli-1.5.12.tgz", - "integrity": "sha512-SQk02foLnSEi8ZkJFTFLZXEEW/3ribb/YNaF2L/qZ1wtWOcB2uei4v/rmb31TJOseH6MvfZ5Ygl6HzcyCTpYHg==", - "requires": { - "assert": "1.4.1", - "axios": "0.17.1", - "babel-cli": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-register": "6.26.0", - "bchaddrjs": "0.2.2", - "bigi": "1.4.2", - "bip21": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "bip32-utils": "github:Bitcoin-com/bip32-utils#318df796443311f7e12217542f7f45d3b7791f10", - "bip38": "2.0.2", - "bip39": "2.5.0", - "bip66": "1.1.5", - "bip68": "github:Bitcoin-com/bip68#aeac5a8c5c1e01dfba79ff3eb824171be004a28c", - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", - "bitcoin-txdecoder": "0.0.3", - "bitcoincashjs-lib": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", - "bitcoinjs-message": "2.0.0", - "bs58": "4.0.1", - "buffer": "5.2.1", - "chalk": "2.4.1", - "clear": "0.0.1", - "coininfo": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", - "commander": "2.19.0", - "cp-file": "5.0.0", - "ecurve": "1.0.6", - "figlet": "1.2.0", - "git-clone": "0.1.0", - "ini": "1.3.5", - "mkdirp": "0.5.1", - "mocha": "5.2.0", - "node-cmd": "3.0.0", - "node-emoji": "1.8.1", - "qrcode": "1.3.0", - "randombytes": "2.0.6", - "repl.history": "0.1.4", - "safe-buffer": "5.1.2", - "satoshi-bitcoin": "1.0.4", - "socket.io": "2.1.1", - "socket.io-client": "2.1.1", - "touch": "3.1.0", - "wif": "2.0.6" - } - }, "bitcoin-ops": { "version": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" }, @@ -4231,21 +3068,25 @@ "dependencies": { "abbrev": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "optional": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "aproba": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "optional": true }, "are-we-there-yet": { "version": "1.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "optional": true, "requires": { "delegates": "1.0.0", @@ -4254,11 +3095,13 @@ }, "balanced-match": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "brace-expansion": { "version": "1.1.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -4266,29 +3109,35 @@ }, "chownr": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", "optional": true }, "code-point-at": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "concat-map": { "version": "0.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, "core-util-is": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "optional": true }, "debug": { "version": "2.6.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "optional": true, "requires": { "ms": "2.0.0" @@ -4296,22 +3145,26 @@ }, "deep-extend": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", + "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", "optional": true }, "delegates": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "optional": true }, "detect-libc": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", "optional": true }, "fs-minipass": { "version": "1.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", + "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", "optional": true, "requires": { "minipass": "2.2.4" @@ -4319,12 +3172,14 @@ }, "fs.realpath": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "optional": true }, "gauge": { "version": "2.7.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "optional": true, "requires": { "aproba": "1.2.0", @@ -4339,7 +3194,8 @@ }, "glob": { "version": "7.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "optional": true, "requires": { "fs.realpath": "1.0.0", @@ -4352,12 +3208,14 @@ }, "has-unicode": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "optional": true }, "iconv-lite": { "version": "0.4.21", - "bundled": true, + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.21.tgz", + "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", "optional": true, "requires": { "safer-buffer": "2.1.2" @@ -4365,7 +3223,8 @@ }, "ignore-walk": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", + "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "optional": true, "requires": { "minimatch": "3.0.4" @@ -4373,7 +3232,8 @@ }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "optional": true, "requires": { "once": "1.4.0", @@ -4382,39 +3242,46 @@ }, "inherits": { "version": "2.0.3", - "bundled": true + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { "version": "1.3.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "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" } }, "isarray": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "optional": true }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "1.1.11" } }, "minimist": { "version": "0.0.8", - "bundled": true + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, "minipass": { "version": "2.2.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.4.tgz", + "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", "requires": { "safe-buffer": "5.1.1", "yallist": "3.0.2" @@ -4422,7 +3289,8 @@ }, "minizlib": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", + "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", "optional": true, "requires": { "minipass": "2.2.4" @@ -4430,19 +3298,22 @@ }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "optional": true }, "needle": { "version": "2.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/needle/-/needle-2.2.0.tgz", + "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", "optional": true, "requires": { "debug": "2.6.9", @@ -4452,7 +3323,8 @@ }, "node-pre-gyp": { "version": "0.10.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.10.0.tgz", + "integrity": "sha512-G7kEonQLRbcA/mOoFoxvlMrw6Q6dPf92+t/l0DFSMuSlDoWaI9JWIyPwK0jyE1bph//CUEL65/Fz1m2vJbmjQQ==", "optional": true, "requires": { "detect-libc": "1.0.3", @@ -4469,7 +3341,8 @@ }, "nopt": { "version": "4.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "optional": true, "requires": { "abbrev": "1.1.1", @@ -4478,12 +3351,14 @@ }, "npm-bundled": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.3.tgz", + "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", "optional": true }, "npm-packlist": { "version": "1.1.10", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.10.tgz", + "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", "optional": true, "requires": { "ignore-walk": "3.0.1", @@ -4492,7 +3367,8 @@ }, "npmlog": { "version": "4.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "optional": true, "requires": { "are-we-there-yet": "1.1.4", @@ -4503,33 +3379,39 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "optional": true }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { "wrappy": "1.0.2" } }, "os-homedir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "optional": true }, "os-tmpdir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "optional": true }, "osenv": { "version": "0.1.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "optional": true, "requires": { "os-homedir": "1.0.2", @@ -4538,17 +3420,20 @@ }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "optional": true }, "process-nextick-args": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "optional": true }, "rc": { "version": "1.2.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz", + "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", "optional": true, "requires": { "deep-extend": "0.5.1", @@ -4559,14 +3444,16 @@ "dependencies": { "minimist": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "optional": true } } }, "readable-stream": { "version": "2.3.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "optional": true, "requires": { "core-util-is": "1.0.2", @@ -4580,7 +3467,8 @@ }, "rimraf": { "version": "2.6.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "optional": true, "requires": { "glob": "7.1.2" @@ -4588,36 +3476,43 @@ }, "safe-buffer": { "version": "5.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, "safer-buffer": { "version": "2.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "optional": true }, "sax": { "version": "1.2.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "optional": true }, "semver": { "version": "5.5.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", "optional": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "optional": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "optional": true }, "string-width": { "version": "1.0.2", - "bundled": true, + "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", @@ -4626,7 +3521,8 @@ }, "string_decoder": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "optional": true, "requires": { "safe-buffer": "5.1.1" @@ -4634,19 +3530,22 @@ }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "2.1.1" } }, "strip-json-comments": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "optional": true }, "tar": { "version": "4.4.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.1.tgz", + "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", "optional": true, "requires": { "chownr": "1.0.1", @@ -4660,12 +3559,14 @@ }, "util-deprecate": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "optional": true }, "wide-align": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "optional": true, "requires": { "string-width": "1.0.2" @@ -4673,11 +3574,13 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "yallist": { "version": "3.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", + "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" } } }, @@ -5454,25 +4357,6 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, - "istanbul-lib-coverage": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", - "integrity": "sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA==" - }, - "istanbul-lib-instrument": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-2.3.2.tgz", - "integrity": "sha512-l7TD/VnBsIB2OJvSyxaLW/ab1+92dxZNH9wLH7uHPPioy3JZ8tnx2UXUdKmdkgmP2EFPzg64CToUP6dAS3U32Q==", - "requires": { - "@babel/generator": "7.0.0-beta.51", - "@babel/parser": "7.0.0-beta.51", - "@babel/template": "7.0.0-beta.51", - "@babel/traverse": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51", - "istanbul-lib-coverage": "2.0.1", - "semver": "5.5.1" - } - }, "isurl": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", @@ -6624,7 +5508,6 @@ "version": "11.9.0", "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.9.0.tgz", "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", - "dev": true, "requires": { "archy": "1.0.0", "arrify": "1.0.1", @@ -6657,8 +5540,8 @@ "dependencies": { "align-text": { "version": "0.1.4", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "requires": { "kind-of": "3.2.2", "longest": "1.0.1", @@ -6667,76 +5550,76 @@ }, "amdefine": { "version": "1.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" }, "ansi-regex": { "version": "2.1.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { "version": "2.2.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, "append-transform": { "version": "0.4.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", "requires": { "default-require-extensions": "1.0.0" } }, "archy": { "version": "1.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" }, "arr-diff": { "version": "4.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "arr-flatten": { "version": "1.1.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" }, "arr-union": { "version": "3.1.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, "array-unique": { "version": "0.3.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "arrify": { "version": "1.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" }, "assign-symbols": { "version": "1.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, "async": { "version": "1.5.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" }, "atob": { "version": "2.1.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", + "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=" }, "babel-code-frame": { "version": "6.26.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { "chalk": "1.1.3", "esutils": "2.0.2", @@ -6745,8 +5628,8 @@ }, "babel-generator": { "version": "6.26.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "requires": { "babel-messages": "6.23.0", "babel-runtime": "6.26.0", @@ -6760,16 +5643,16 @@ }, "babel-messages": { "version": "6.23.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "requires": { "babel-runtime": "6.26.0" } }, "babel-runtime": { "version": "6.26.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { "core-js": "2.5.6", "regenerator-runtime": "0.11.1" @@ -6777,8 +5660,8 @@ }, "babel-template": { "version": "6.26.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "requires": { "babel-runtime": "6.26.0", "babel-traverse": "6.26.0", @@ -6789,8 +5672,8 @@ }, "babel-traverse": { "version": "6.26.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "requires": { "babel-code-frame": "6.26.0", "babel-messages": "6.23.0", @@ -6805,8 +5688,8 @@ }, "babel-types": { "version": "6.26.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { "babel-runtime": "6.26.0", "esutils": "2.0.2", @@ -6816,18 +5699,18 @@ }, "babylon": { "version": "6.18.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" }, "balanced-match": { "version": "1.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base": { "version": "0.11.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { "cache-base": "1.0.1", "class-utils": "0.3.6", @@ -6840,32 +5723,32 @@ "dependencies": { "define-property": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -6874,20 +5757,20 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, "brace-expansion": { "version": "1.1.11", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -6895,8 +5778,8 @@ }, "braces": { "version": "2.3.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "requires": { "arr-flatten": "1.1.0", "array-unique": "0.3.2", @@ -6912,8 +5795,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } @@ -6922,13 +5805,13 @@ }, "builtin-modules": { "version": "1.1.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" }, "cache-base": { "version": "1.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "requires": { "collection-visit": "1.0.0", "component-emitter": "1.2.1", @@ -6943,15 +5826,15 @@ "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, "caching-transform": { "version": "1.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", + "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", "requires": { "md5-hex": "1.3.0", "mkdirp": "0.5.1", @@ -6960,14 +5843,14 @@ }, "camelcase": { "version": "1.2.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", "optional": true }, "center-align": { "version": "0.1.3", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "optional": true, "requires": { "align-text": "0.1.4", @@ -6976,8 +5859,8 @@ }, "chalk": { "version": "1.1.3", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { "ansi-styles": "2.2.1", "escape-string-regexp": "1.0.5", @@ -6988,8 +5871,8 @@ }, "class-utils": { "version": "0.3.6", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "requires": { "arr-union": "3.1.0", "define-property": "0.2.5", @@ -6999,23 +5882,23 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "0.1.6" } }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, "cliui": { "version": "2.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "optional": true, "requires": { "center-align": "0.1.3", @@ -7025,21 +5908,21 @@ "dependencies": { "wordwrap": { "version": "0.0.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", "optional": true } } }, "code-point-at": { "version": "1.1.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "collection-visit": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { "map-visit": "1.0.0", "object-visit": "1.0.1" @@ -7047,38 +5930,38 @@ }, "commondir": { "version": "1.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" }, "component-emitter": { "version": "1.2.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" }, "concat-map": { "version": "0.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "convert-source-map": { "version": "1.5.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=" }, "copy-descriptor": { "version": "0.1.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "core-js": { "version": "2.5.6", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.6.tgz", + "integrity": "sha512-lQUVfQi0aLix2xpyjrrJEvfuYCqPc/HwmTKsC/VNf8q0zsjX7SQZtp4+oRONN5Tsur9GDETPjj+Ub2iDiGZfSQ==" }, "cross-spawn": { "version": "4.0.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", "requires": { "lru-cache": "4.1.3", "which": "1.3.0" @@ -7086,39 +5969,39 @@ }, "debug": { "version": "2.6.9", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { "ms": "2.0.0" } }, "debug-log": { "version": "1.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", + "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=" }, "decamelize": { "version": "1.2.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, "decode-uri-component": { "version": "0.2.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, "default-require-extensions": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", "requires": { "strip-bom": "2.0.0" } }, "define-property": { "version": "2.0.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "requires": { "is-descriptor": "1.0.2", "isobject": "3.0.1" @@ -7126,24 +6009,24 @@ "dependencies": { "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -7152,46 +6035,46 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, "detect-indent": { "version": "4.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "requires": { "repeating": "2.0.1" } }, "error-ex": { "version": "1.3.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "requires": { "is-arrayish": "0.2.1" } }, "escape-string-regexp": { "version": "1.0.5", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "esutils": { "version": "2.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" }, "execa": { "version": "0.7.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "requires": { "cross-spawn": "5.1.0", "get-stream": "3.0.0", @@ -7204,8 +6087,8 @@ "dependencies": { "cross-spawn": { "version": "5.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { "lru-cache": "4.1.3", "shebang-command": "1.2.0", @@ -7216,8 +6099,8 @@ }, "expand-brackets": { "version": "2.1.4", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { "debug": "2.6.9", "define-property": "0.2.5", @@ -7230,16 +6113,16 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "0.1.6" } }, "extend-shallow": { "version": "2.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } @@ -7248,8 +6131,8 @@ }, "extend-shallow": { "version": "3.0.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { "assign-symbols": "1.0.0", "is-extendable": "1.0.1" @@ -7257,8 +6140,8 @@ "dependencies": { "is-extendable": { "version": "1.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { "is-plain-object": "2.0.4" } @@ -7267,8 +6150,8 @@ }, "extglob": { "version": "2.0.4", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "requires": { "array-unique": "0.3.2", "define-property": "1.0.0", @@ -7282,40 +6165,40 @@ "dependencies": { "define-property": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "1.0.2" } }, "extend-shallow": { "version": "2.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -7324,15 +6207,15 @@ }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, "fill-range": { "version": "4.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { "extend-shallow": "2.0.1", "is-number": "3.0.0", @@ -7342,8 +6225,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } @@ -7352,8 +6235,8 @@ }, "find-cache-dir": { "version": "0.1.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", "requires": { "commondir": "1.0.1", "mkdirp": "0.5.1", @@ -7362,21 +6245,21 @@ }, "find-up": { "version": "2.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { "locate-path": "2.0.0" } }, "for-in": { "version": "1.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" }, "foreground-child": { "version": "1.5.6", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", + "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", "requires": { "cross-spawn": "4.0.2", "signal-exit": "3.0.2" @@ -7384,36 +6267,36 @@ }, "fragment-cache": { "version": "0.2.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { "map-cache": "0.2.2" } }, "fs.realpath": { "version": "1.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "get-caller-file": { "version": "1.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" }, "get-stream": { "version": "3.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, "get-value": { "version": "2.0.6", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" }, "glob": { "version": "7.1.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -7425,18 +6308,18 @@ }, "globals": { "version": "9.18.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" }, "graceful-fs": { "version": "4.1.11", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" }, "handlebars": { "version": "4.0.11", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "requires": { "async": "1.5.2", "optimist": "0.6.1", @@ -7446,8 +6329,8 @@ "dependencies": { "source-map": { "version": "0.4.4", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "requires": { "amdefine": "1.0.1" } @@ -7456,21 +6339,21 @@ }, "has-ansi": { "version": "2.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { "ansi-regex": "2.1.1" } }, "has-flag": { "version": "1.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" }, "has-value": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "requires": { "get-value": "2.0.6", "has-values": "1.0.0", @@ -7479,15 +6362,15 @@ "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, "has-values": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { "is-number": "3.0.0", "kind-of": "4.0.0" @@ -7495,16 +6378,16 @@ "dependencies": { "is-number": { "version": "3.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "1.1.6" } @@ -7513,8 +6396,8 @@ }, "kind-of": { "version": "4.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { "is-buffer": "1.1.6" } @@ -7523,18 +6406,18 @@ }, "hosted-git-info": { "version": "2.6.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", + "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==" }, "imurmurhash": { "version": "0.1.4", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "inflight": { "version": "1.0.6", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -7542,60 +6425,60 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "invariant": { "version": "2.2.4", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { "loose-envify": "1.3.1" } }, "invert-kv": { "version": "1.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" }, "is-accessor-descriptor": { "version": "0.1.6", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { "kind-of": "3.2.2" } }, "is-arrayish": { "version": "0.2.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "is-buffer": { "version": "1.1.6", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-builtin-module": { "version": "1.0.0", - "bundled": true, - "dev": true, + "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" } }, "is-data-descriptor": { "version": "0.1.4", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { "kind-of": "3.2.2" } }, "is-descriptor": { "version": "0.1.6", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "requires": { "is-accessor-descriptor": "0.1.6", "is-data-descriptor": "0.1.4", @@ -7604,114 +6487,114 @@ "dependencies": { "kind-of": { "version": "5.1.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, "is-extendable": { "version": "0.1.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" }, "is-finite": { "version": "1.0.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "requires": { "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "is-number": { "version": "3.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { "kind-of": "3.2.2" } }, "is-odd": { "version": "2.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", "requires": { "is-number": "4.0.0" }, "dependencies": { "is-number": { "version": "4.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" } } }, "is-plain-object": { "version": "2.0.4", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, "is-stream": { "version": "1.1.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "is-utf8": { "version": "0.2.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" }, "is-windows": { "version": "1.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" }, "isarray": { "version": "1.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isexe": { "version": "2.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "istanbul-lib-coverage": { "version": "1.2.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", + "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==" }, "istanbul-lib-hook": { "version": "1.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", + "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", "requires": { "append-transform": "0.4.0" } }, "istanbul-lib-instrument": { "version": "1.10.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", + "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", "requires": { "babel-generator": "6.26.1", "babel-template": "6.26.0", @@ -7724,8 +6607,8 @@ }, "istanbul-lib-report": { "version": "1.1.3", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz", + "integrity": "sha512-D4jVbMDtT2dPmloPJS/rmeP626N5Pr3Rp+SovrPn1+zPChGHcggd/0sL29jnbm4oK9W0wHjCRsdch9oLd7cm6g==", "requires": { "istanbul-lib-coverage": "1.2.0", "mkdirp": "0.5.1", @@ -7735,8 +6618,8 @@ "dependencies": { "supports-color": { "version": "3.2.3", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "requires": { "has-flag": "1.0.0" } @@ -7745,8 +6628,8 @@ }, "istanbul-lib-source-maps": { "version": "1.2.3", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz", + "integrity": "sha512-fDa0hwU/5sDXwAklXgAoCJCOsFsBplVQ6WBldz5UwaqOzmDhUK4nfuR7/G//G2lERlblUNJB8P6e8cXq3a7MlA==", "requires": { "debug": "3.1.0", "istanbul-lib-coverage": "1.2.0", @@ -7757,8 +6640,8 @@ "dependencies": { "debug": { "version": "3.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "requires": { "ms": "2.0.0" } @@ -7767,48 +6650,48 @@ }, "istanbul-reports": { "version": "1.4.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.4.0.tgz", + "integrity": "sha512-OPzVo1fPZ2H+owr8q/LYKLD+vquv9Pj4F+dj808MdHbuQLD7S4ACRjcX+0Tne5Vxt2lxXvdZaL7v+FOOAV281w==", "requires": { "handlebars": "4.0.11" } }, "js-tokens": { "version": "3.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" }, "jsesc": { "version": "1.3.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" }, "kind-of": { "version": "3.2.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "1.1.6" } }, "lazy-cache": { "version": "1.0.4", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", "optional": true }, "lcid": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { "invert-kv": "1.0.0" } }, "load-json-file": { "version": "1.1.0", - "bundled": true, - "dev": true, + "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", @@ -7819,8 +6702,8 @@ }, "locate-path": { "version": "2.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { "p-locate": "2.0.0", "path-exists": "3.0.0" @@ -7828,33 +6711,33 @@ "dependencies": { "path-exists": { "version": "3.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" } } }, "lodash": { "version": "4.17.10", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" }, "longest": { "version": "1.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" }, "loose-envify": { "version": "1.3.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "requires": { "js-tokens": "3.0.2" } }, "lru-cache": { "version": "4.1.3", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { "pseudomap": "1.0.2", "yallist": "2.1.2" @@ -7862,57 +6745,57 @@ }, "map-cache": { "version": "0.2.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, "map-visit": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { "object-visit": "1.0.1" } }, "md5-hex": { "version": "1.3.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", + "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "requires": { "md5-o-matic": "0.1.1" } }, "md5-o-matic": { "version": "0.1.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", + "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=" }, "mem": { "version": "1.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { "mimic-fn": "1.2.0" } }, "merge-source-map": { "version": "1.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", "requires": { "source-map": "0.6.1" }, "dependencies": { "source-map": { "version": "0.6.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, "micromatch": { "version": "3.1.10", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -7931,33 +6814,33 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, "mimic-fn": { "version": "1.2.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" }, "minimatch": { "version": "3.0.4", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "1.1.11" } }, "minimist": { "version": "0.0.8", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, "mixin-deep": { "version": "1.3.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "requires": { "for-in": "1.0.2", "is-extendable": "1.0.1" @@ -7965,8 +6848,8 @@ "dependencies": { "is-extendable": { "version": "1.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { "is-plain-object": "2.0.4" } @@ -7975,21 +6858,21 @@ }, "mkdirp": { "version": "0.5.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "nanomatch": { "version": "1.2.9", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -8007,25 +6890,25 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "array-unique": { "version": "0.3.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, "normalize-package-data": { "version": "2.4.0", - "bundled": true, - "dev": true, + "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.6.0", "is-builtin-module": "1.0.0", @@ -8035,26 +6918,26 @@ }, "npm-run-path": { "version": "2.0.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { "path-key": "2.0.1" } }, "number-is-nan": { "version": "1.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "object-assign": { "version": "4.1.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-copy": { "version": "0.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "requires": { "copy-descriptor": "0.1.1", "define-property": "0.2.5", @@ -8063,8 +6946,8 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "0.1.6" } @@ -8073,46 +6956,46 @@ }, "object-visit": { "version": "1.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, "object.pick": { "version": "1.3.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, "once": { "version": "1.4.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { "wrappy": "1.0.2" } }, "optimist": { "version": "0.6.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "requires": { "minimist": "0.0.8", "wordwrap": "0.0.3" @@ -8120,13 +7003,13 @@ }, "os-homedir": { "version": "1.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-locale": { "version": "2.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "requires": { "execa": "0.7.0", "lcid": "1.0.0", @@ -8135,70 +7018,70 @@ }, "p-finally": { "version": "1.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "p-limit": { "version": "1.2.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", + "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", "requires": { "p-try": "1.0.0" } }, "p-locate": { "version": "2.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { "p-limit": "1.2.0" } }, "p-try": { "version": "1.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" }, "parse-json": { "version": "2.2.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { "error-ex": "1.3.1" } }, "pascalcase": { "version": "0.1.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" }, "path-exists": { "version": "2.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "requires": { "pinkie-promise": "2.0.1" } }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-key": { "version": "2.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, "path-parse": { "version": "1.0.5", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" }, "path-type": { "version": "1.1.0", - "bundled": true, - "dev": true, + "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", @@ -8207,34 +7090,34 @@ }, "pify": { "version": "2.3.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, "pinkie": { "version": "2.0.4", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" }, "pinkie-promise": { "version": "2.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { "pinkie": "2.0.4" } }, "pkg-dir": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "requires": { "find-up": "1.1.2" }, "dependencies": { "find-up": { "version": "1.1.2", - "bundled": true, - "dev": true, + "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" @@ -8244,18 +7127,18 @@ }, "posix-character-classes": { "version": "0.1.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "pseudomap": { "version": "1.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, "read-pkg": { "version": "1.1.0", - "bundled": true, - "dev": true, + "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", @@ -8264,8 +7147,8 @@ }, "read-pkg-up": { "version": "1.0.1", - "bundled": true, - "dev": true, + "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" @@ -8273,8 +7156,8 @@ "dependencies": { "find-up": { "version": "1.1.2", - "bundled": true, - "dev": true, + "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" @@ -8284,13 +7167,13 @@ }, "regenerator-runtime": { "version": "0.11.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" }, "regex-not": { "version": "1.0.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "requires": { "extend-shallow": "3.0.2", "safe-regex": "1.1.0" @@ -8298,51 +7181,51 @@ }, "repeat-element": { "version": "1.1.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" }, "repeat-string": { "version": "1.6.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, "repeating": { "version": "2.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "requires": { "is-finite": "1.0.2" } }, "require-directory": { "version": "2.1.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, "require-main-filename": { "version": "1.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" }, "resolve-from": { "version": "2.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" }, "resolve-url": { "version": "0.2.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" }, "ret": { "version": "0.1.15", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" }, "right-align": { "version": "0.1.3", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "optional": true, "requires": { "align-text": "0.1.4" @@ -8350,34 +7233,34 @@ }, "rimraf": { "version": "2.6.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { "glob": "7.1.2" } }, "safe-regex": { "version": "1.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { "ret": "0.1.15" } }, "semver": { "version": "5.5.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" }, "set-blocking": { "version": "2.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "set-value": { "version": "2.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "requires": { "extend-shallow": "2.0.1", "is-extendable": "0.1.1", @@ -8387,8 +7270,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } @@ -8397,31 +7280,31 @@ }, "shebang-command": { "version": "1.2.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { "shebang-regex": "1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, "signal-exit": { "version": "3.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "slide": { "version": "1.1.6", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" }, "snapdragon": { "version": "0.8.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "requires": { "base": "0.11.2", "debug": "2.6.9", @@ -8435,16 +7318,16 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "0.1.6" } }, "extend-shallow": { "version": "2.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } @@ -8453,8 +7336,8 @@ }, "snapdragon-node": { "version": "2.1.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "requires": { "define-property": "1.0.0", "isobject": "3.0.1", @@ -8463,32 +7346,32 @@ "dependencies": { "define-property": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -8497,33 +7380,33 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, "snapdragon-util": { "version": "3.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "requires": { "kind-of": "3.2.2" } }, "source-map": { "version": "0.5.7", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "source-map-resolve": { "version": "0.5.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", "requires": { "atob": "2.1.1", "decode-uri-component": "0.2.0", @@ -8534,13 +7417,13 @@ }, "source-map-url": { "version": "0.4.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, "spawn-wrap": { "version": "1.4.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", + "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", "requires": { "foreground-child": "1.5.6", "mkdirp": "0.5.1", @@ -8552,8 +7435,8 @@ }, "spdx-correct": { "version": "3.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "requires": { "spdx-expression-parse": "3.0.0", "spdx-license-ids": "3.0.0" @@ -8561,13 +7444,13 @@ }, "spdx-exceptions": { "version": "2.1.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==" }, "spdx-expression-parse": { "version": "3.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { "spdx-exceptions": "2.1.0", "spdx-license-ids": "3.0.0" @@ -8575,21 +7458,21 @@ }, "spdx-license-ids": { "version": "3.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", + "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==" }, "split-string": { "version": "3.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "requires": { "extend-shallow": "3.0.2" } }, "static-extend": { "version": "0.1.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { "define-property": "0.2.5", "object-copy": "0.1.0" @@ -8597,8 +7480,8 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "0.1.6" } @@ -8607,8 +7490,8 @@ }, "string-width": { "version": "2.1.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "requires": { "is-fullwidth-code-point": "2.0.0", "strip-ansi": "4.0.0" @@ -8616,13 +7499,13 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "strip-ansi": { "version": "4.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { "ansi-regex": "3.0.0" } @@ -8631,34 +7514,34 @@ }, "strip-ansi": { "version": "3.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "2.1.1" } }, "strip-bom": { "version": "2.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { "is-utf8": "0.2.1" } }, "strip-eof": { "version": "1.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, "supports-color": { "version": "2.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" }, "test-exclude": { "version": "4.2.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", + "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", "requires": { "arrify": "1.0.1", "micromatch": "3.1.10", @@ -8669,18 +7552,18 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "array-unique": { "version": "0.3.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "braces": { "version": "2.3.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "requires": { "arr-flatten": "1.1.0", "array-unique": "0.3.2", @@ -8696,8 +7579,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } @@ -8706,8 +7589,8 @@ }, "expand-brackets": { "version": "2.1.4", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { "debug": "2.6.9", "define-property": "0.2.5", @@ -8720,32 +7603,32 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "0.1.6" } }, "extend-shallow": { "version": "2.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { "version": "0.1.6", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "1.1.6" } @@ -8754,16 +7637,16 @@ }, "is-data-descriptor": { "version": "0.1.4", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "1.1.6" } @@ -8772,8 +7655,8 @@ }, "is-descriptor": { "version": "0.1.6", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "requires": { "is-accessor-descriptor": "0.1.6", "is-data-descriptor": "0.1.4", @@ -8782,15 +7665,15 @@ }, "kind-of": { "version": "5.1.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, "extglob": { "version": "2.0.4", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "requires": { "array-unique": "0.3.2", "define-property": "1.0.0", @@ -8804,16 +7687,16 @@ "dependencies": { "define-property": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "1.0.2" } }, "extend-shallow": { "version": "2.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } @@ -8822,8 +7705,8 @@ }, "fill-range": { "version": "4.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { "extend-shallow": "2.0.1", "is-number": "3.0.0", @@ -8833,8 +7716,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } @@ -8843,24 +7726,24 @@ }, "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -8869,16 +7752,16 @@ }, "is-number": { "version": "3.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "1.1.6" } @@ -8887,18 +7770,18 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" }, "micromatch": { "version": "3.1.10", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -8919,21 +7802,21 @@ }, "to-fast-properties": { "version": "1.0.3", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" }, "to-object-path": { "version": "0.3.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { "kind-of": "3.2.2" } }, "to-regex": { "version": "3.0.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "requires": { "define-property": "2.0.2", "extend-shallow": "3.0.2", @@ -8943,8 +7826,8 @@ }, "to-regex-range": { "version": "2.1.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "requires": { "is-number": "3.0.0", "repeat-string": "1.6.1" @@ -8952,8 +7835,8 @@ "dependencies": { "is-number": { "version": "3.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { "kind-of": "3.2.2" } @@ -8962,13 +7845,13 @@ }, "trim-right": { "version": "1.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" }, "uglify-js": { "version": "2.8.29", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "optional": true, "requires": { "source-map": "0.5.7", @@ -8978,8 +7861,8 @@ "dependencies": { "yargs": { "version": "3.10.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "optional": true, "requires": { "camelcase": "1.2.1", @@ -8992,14 +7875,14 @@ }, "uglify-to-browserify": { "version": "1.0.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", "optional": true }, "union-value": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "requires": { "arr-union": "3.1.0", "get-value": "2.0.6", @@ -9009,16 +7892,16 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "0.1.1" } }, "set-value": { "version": "0.4.3", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "requires": { "extend-shallow": "2.0.1", "is-extendable": "0.1.1", @@ -9030,8 +7913,8 @@ }, "unset-value": { "version": "1.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { "has-value": "0.3.1", "isobject": "3.0.1" @@ -9039,8 +7922,8 @@ "dependencies": { "has-value": { "version": "0.3.1", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "requires": { "get-value": "2.0.6", "has-values": "0.1.4", @@ -9049,8 +7932,8 @@ "dependencies": { "isobject": { "version": "2.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "requires": { "isarray": "1.0.0" } @@ -9059,40 +7942,40 @@ }, "has-values": { "version": "0.1.4", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, "urix": { "version": "0.1.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" }, "use": { "version": "3.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", "requires": { "kind-of": "6.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, "validate-npm-package-license": { "version": "3.0.3", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", + "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "requires": { "spdx-correct": "3.0.0", "spdx-expression-parse": "3.0.0" @@ -9100,32 +7983,32 @@ }, "which": { "version": "1.3.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "requires": { "isexe": "2.0.0" } }, "which-module": { "version": "2.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, "window-size": { "version": "0.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", "optional": true }, "wordwrap": { "version": "0.0.3", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" }, "wrap-ansi": { "version": "2.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { "string-width": "1.0.2", "strip-ansi": "3.0.1" @@ -9133,16 +8016,16 @@ "dependencies": { "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, - "dev": true, + "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" } }, "string-width": { "version": "1.0.2", - "bundled": true, - "dev": true, + "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", @@ -9153,13 +8036,13 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write-file-atomic": { "version": "1.3.4", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", + "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", "requires": { "graceful-fs": "4.1.11", "imurmurhash": "0.1.4", @@ -9168,18 +8051,18 @@ }, "y18n": { "version": "3.2.1", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" }, "yallist": { "version": "2.1.2", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" }, "yargs": { "version": "11.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", + "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", "requires": { "cliui": "4.1.0", "decamelize": "1.2.0", @@ -9197,18 +8080,18 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "camelcase": { "version": "4.1.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, "cliui": { "version": "4.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "requires": { "string-width": "2.1.1", "strip-ansi": "4.0.0", @@ -9217,16 +8100,16 @@ }, "strip-ansi": { "version": "4.0.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { "ansi-regex": "3.0.0" } }, "yargs-parser": { "version": "9.0.2", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", + "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", "requires": { "camelcase": "4.1.0" } @@ -9235,16 +8118,16 @@ }, "yargs-parser": { "version": "8.1.0", - "bundled": true, - "dev": true, + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", + "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", "requires": { "camelcase": "4.1.0" }, "dependencies": { "camelcase": { "version": "4.1.0", - "bundled": true, - "dev": true + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" } } } diff --git a/package.json b/package.json index 3efde512..aef0592e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "2.0.3", + "version": "2.0.4", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", @@ -33,7 +33,7 @@ "babel-register": "^6.26.0", "bigi": "^1.4.2", "bip21": "Bitcoin-com/bip21", - "bip32-utils": "Bitcoin-com/bip32-utils#0.12.2", + "bip32-utils": "Bitcoin-com/bip32-utils#0.13.0", "bip38": "^2.0.2", "bip39": "^2.5.0", "bip66": "^1.1.5", From 1a37ae536d1a613e503cd80ed46ac28c10f7be28 Mon Sep 17 00:00:00 2001 From: haryu703 Date: Sun, 21 Oct 2018 16:32:40 +0900 Subject: [PATCH 125/480] update typing --- lib/Address.d.ts | 6 +++--- typings/Address.d.ts | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/Address.d.ts b/lib/Address.d.ts index 5c5d70ce..b9e59f69 100644 --- a/lib/Address.d.ts +++ b/lib/Address.d.ts @@ -18,9 +18,9 @@ export declare interface Address { detectAddressType(address: string): string; fromXPub(xpub: string, path?: string): string; fromOutputScript(scriptPubKey:string, network?: string): string; - details(address: string | string[]): Promise; - utxo(address: string | string[]): Promise; - unconfirmed(address: string | string[]): Promise; + details(address: string[]): Promise; + utxo(address: string[]): Promise; + unconfirmed(address: string[]): Promise; } export declare interface AddressDetailsResult { diff --git a/typings/Address.d.ts b/typings/Address.d.ts index 5c5d70ce..b9e59f69 100644 --- a/typings/Address.d.ts +++ b/typings/Address.d.ts @@ -18,9 +18,9 @@ export declare interface Address { detectAddressType(address: string): string; fromXPub(xpub: string, path?: string): string; fromOutputScript(scriptPubKey:string, network?: string): string; - details(address: string | string[]): Promise; - utxo(address: string | string[]): Promise; - unconfirmed(address: string | string[]): Promise; + details(address: string[]): Promise; + utxo(address: string[]): Promise; + unconfirmed(address: string[]): Promise; } export declare interface AddressDetailsResult { From d5f2f62198810005c0669d012ef066a2f3a47823 Mon Sep 17 00:00:00 2001 From: Sam Cheng Hung Date: Fri, 26 Oct 2018 18:10:17 +0800 Subject: [PATCH 126/480] Adds isHash160() function to Address --- lib/Address.js | 22 ++++++++++++++++++++++ src/Address.js | 20 ++++++++++++++++++++ test/Address.js | 43 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 85 insertions(+) diff --git a/lib/Address.js b/lib/Address.js index 4f0bf47d..f81cf9bf 100644 --- a/lib/Address.js +++ b/lib/Address.js @@ -136,6 +136,10 @@ var Address = function () { return this._decodeCashAddress(address); } catch (error) {} + try { + return this._encodeAddressFromHash160(address); + } catch (error) {} + throw new Error("Unsupported address format : " + address); } }, { @@ -200,6 +204,19 @@ var Address = function () { throw new Error("Invalid format : " + address); } + }, { + key: "_encodeAddressFromHash160", + value: function _encodeAddressFromHash160(address) { + try { + return { + legacyAddress: this.hash160ToLegacy(address), + cashAddress: this.hash160ToCash(address), + format: "hash160" + }; + } catch (error) {} + + throw new Error("Invalid format : " + address); + } // Test for address format. @@ -213,6 +230,11 @@ var Address = function () { value: function isCashAddress(address) { return this.detectAddressFormat(address) === "cashaddr"; } + }, { + key: "isHash160", + value: function isHash160(address) { + return this.detectAddressFormat(address) === "hash160"; + } // Test for address network. diff --git a/src/Address.js b/src/Address.js index 873ad11e..cbf78605 100644 --- a/src/Address.js +++ b/src/Address.js @@ -94,6 +94,10 @@ class Address { return this._decodeCashAddress(address) } catch (error) {} + try { + return this._encodeAddressFromHash160(address) + } catch (error) {} + throw new Error(`Unsupported address format : ${address}`) } @@ -154,6 +158,18 @@ class Address { throw new Error(`Invalid format : ${address}`) } + _encodeAddressFromHash160(address) { + try { + return { + legacyAddress: this.hash160ToLegacy(address), + cashAddress: this.hash160ToCash(address), + format: "hash160" + } + } catch (error) {} + + throw new Error(`Invalid format : ${address}`) + } + // Test for address format. isLegacyAddress(address) { return this.detectAddressFormat(address) === "legacy" @@ -163,6 +179,10 @@ class Address { return this.detectAddressFormat(address) === "cashaddr" } + isHash160(address) { + return this.detectAddressFormat(address) === "hash160" + } + // Test for address network. isMainnetAddress(address) { if (address[0] === "x") return true diff --git a/test/Address.js b/test/Address.js index 718de0fc..6c026507 100644 --- a/test/Address.js +++ b/test/Address.js @@ -406,6 +406,49 @@ describe("address format detection", () => { }); }); }); + describe("#isHash160", () => { + describe("is hash160", () => { + HASH160_HASHES.forEach(address => { + it(`should detect ${address} is a hash160 hash`, () => { + const isHash160 = BITBOX.Address.isHash160(address); + assert.equal(isHash160, true); + }); + }); + }); + describe("is not hash160", () => { + LEGACY_ADDRESSES.forEach(address => { + it(`should detect ${address} is not a hash160 hash`, () => { + const isHash160 = BITBOX.Address.isHash160(address); + assert.equal(isHash160, false); + }); + }); + + CASHADDR_ADDRESSES.forEach(address => { + it(`should detect ${address} is not a hash160 hash`, () => { + const isHash160 = BITBOX.Address.isHash160(address); + assert.equal(isHash160, false); + }); + }); + + REGTEST_ADDRESSES.forEach(address => { + it(`should detect ${address} is not a legacy address`, () => { + const isHash160 = BITBOX.Address.isHash160(address); + assert.equal(isHash160, false); + }); + }); + }); + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + BITBOX.Address.isHash160(); + }, BITBOX.BitcoinCash.InvalidAddressError); + assert.throws(() => { + BITBOX.Address.isHash160("some invalid address"); + }, BITBOX.BitcoinCash.InvalidAddressError); + }); + }); + }); }); describe("network detection", () => { From f363ef586a0b281772b990994f4b4b589244414e Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 26 Oct 2018 13:11:16 +0200 Subject: [PATCH 127/480] Version. --- index.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 6f034eb9..dec7ebfd 100755 --- a/index.js +++ b/index.js @@ -17,7 +17,7 @@ const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") const cmd = require("node-cmd") -program.version("2.0.4 ", "-v, --version") +program.version("2.1.0 ", "-v, --version") program .command("new ") diff --git a/package.json b/package.json index aef0592e..816ff280 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "2.0.4", + "version": "2.1.0", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", From 5dec4828b01a14014527f03bcb0388463702dd7a Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sat, 27 Oct 2018 22:30:19 +0200 Subject: [PATCH 128/480] Properly format privkeywif for regtest. --- index.js | 2 +- lib/Mnemonic.js | 11 ++++++----- package-lock.json | 4 ++-- package.json | 2 +- src/Mnemonic.js | 13 ++++++++++--- src/bitbox-sdk.js | 4 ---- test/Mnemonic.js | 3 +-- test/fixtures/Mnemonic.json | 27 ++++++++++++++++++++++++++- 8 files changed, 47 insertions(+), 19 deletions(-) diff --git a/index.js b/index.js index dec7ebfd..cdf6a542 100755 --- a/index.js +++ b/index.js @@ -17,7 +17,7 @@ const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") const cmd = require("node-cmd") -program.version("2.1.0 ", "-v, --version") +program.version("2.1.1 ", "-v, --version") program .command("new ") diff --git a/lib/Mnemonic.js b/lib/Mnemonic.js index 7b18a25c..43977d2b 100644 --- a/lib/Mnemonic.js +++ b/lib/Mnemonic.js @@ -6,10 +6,6 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _Crypto = require("./Crypto"); - -var _Crypto2 = _interopRequireDefault(_Crypto); - var _bip = require("bip39"); var _bip2 = _interopRequireDefault(_bip); @@ -27,6 +23,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var Buffer = require("safe-buffer").Buffer; +var wif = require("wif"); var Mnemonic = function () { function Mnemonic(address) { @@ -103,8 +100,12 @@ var Mnemonic = function () { for (var i = 0; i < numberOfKeypairs; i++) { var childHDNode = hdNode.derivePath("" + HDPath + i); + + var prefix = 128; + if (regtest === true) prefix = 239; + accounts.push({ - privateKeyWIF: childHDNode.keyPair.toWIF(), + privateKeyWIF: wif.encode(prefix, childHDNode.keyPair.d.toBuffer(32), true), address: this._address.toCashAddress(childHDNode.getAddress(), true, regtest) }); } diff --git a/package-lock.json b/package-lock.json index b356ab92..a84de615 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "2.0.4", + "version": "2.1.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -2700,7 +2700,7 @@ }, "espree": { "version": "3.5.4", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "resolved": "http://registry.npmjs.org/espree/-/espree-3.5.4.tgz", "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "requires": { "acorn": "5.7.3", diff --git a/package.json b/package.json index 816ff280..557377f6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "2.1.0", + "version": "2.1.1", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", diff --git a/src/Mnemonic.js b/src/Mnemonic.js index c140ed30..018656e5 100644 --- a/src/Mnemonic.js +++ b/src/Mnemonic.js @@ -1,9 +1,8 @@ -import Crypto from "./Crypto" - import BIP39 from "bip39" import randomBytes from "randombytes" import Bitcoin from "bitcoincashjs-lib" const Buffer = require("safe-buffer").Buffer +const wif = require("wif") class Mnemonic { constructor(address) { @@ -62,8 +61,16 @@ class Mnemonic { for (let i = 0; i < numberOfKeypairs; i++) { const childHDNode = hdNode.derivePath(`${HDPath}${i}`) + + let prefix = 128 + if (regtest === true) prefix = 239 + accounts.push({ - privateKeyWIF: childHDNode.keyPair.toWIF(), + privateKeyWIF: wif.encode( + prefix, + childHDNode.keyPair.d.toBuffer(32), + true + ), address: this._address.toCashAddress( childHDNode.getAddress(), true, diff --git a/src/bitbox-sdk.js b/src/bitbox-sdk.js index d5b6a86e..55e586bf 100644 --- a/src/bitbox-sdk.js +++ b/src/bitbox-sdk.js @@ -1,7 +1,3 @@ -// 3rd party deps -import axios from "axios" -import Bitcoin from "bitcoincashjs-lib" - // local deps import BitcoinCash from "./BitcoinCash" import Crypto from "./Crypto" diff --git a/test/Mnemonic.js b/test/Mnemonic.js index 02ab1806..4bdb9f9b 100644 --- a/test/Mnemonic.js +++ b/test/Mnemonic.js @@ -1,4 +1,3 @@ -"use strict" const fixtures = require("./fixtures/Mnemonic.json") const chai = require("chai") const assert = require("assert") @@ -318,7 +317,7 @@ describe("#Mnemonic", () => { it(`Generate keypair from mnemonic`, () => { assert.equal( keypair.privateKeyWIF, - fixtures.toKeypairs[i].output[j].privateKeyWIF + fixtures.toKeypairs[i].output[j].privateKeyWIFRegTest ) // assert.equal( // keypair.address, diff --git a/test/fixtures/Mnemonic.json b/test/fixtures/Mnemonic.json index f6fdf9fe..e1e2b6b5 100644 --- a/test/fixtures/Mnemonic.json +++ b/test/fixtures/Mnemonic.json @@ -4,7 +4,7 @@ "mnemonic": "rare dinosaur army fat spend average design order ritual town brave spike", "entropy": "b207cc3029bd141f8ef4e1ba9cc86d68" }, - { + { "mnemonic": "rabbit track ahead moral either upper tiger paper echo snow multiply trial kind two cram", "entropy": "b03cd014c7d471de387cff45f9b245f417a9d74c" }, @@ -27,22 +27,27 @@ "output": [ { "privateKeyWIF": "L5NHWZusDiBVi5eMc6mBGufDMewTqnN9fzi6zyCQSVp39iKPqH7v", + "privateKeyWIFRegTest": "cVjGyUuiemsksX7czWaJeEAGytEsWETqk2ra7PeuwcU3QTKYFYX7", "address": "bitcoincash:qr3r0yazu6s4ed0ckgpv96zcwx3wt9jy6vv56ywm2w" }, { "privateKeyWIF": "L3nGc7sEDQ6CQV7LPzyLwec8uWwQFWhXKcYdPC6dmx8xZuq4mmDM", + "privateKeyWIFRegTest": "cU9G52s5eTnTZvabnQnUJy7CXkEouxoDPeh6VcZ9H4nxpeqnn4y7", "address": "bitcoincash:qqzc32v777yz4qprp0tk443j5j35q5q0xgzuvprgv0" }, { "privateKeyWIF": "KxD3i4YUdzEdDggNbNjRbYqta85KPGko9mRxcZH1Dh7MYQ5PFjcq", + "privateKeyWIFRegTest": "cNa3AyYL53vtP89dynYYxsLxCMNj3irVDoaRiyjWiomMo9AginKE", "address": "bitcoincash:qre988ur4gp5k2ph3lmxltqtg4q2zgw6eye0l6k6eg" }, { "privateKeyWIF": "L1emnG2hYd3VKGVRHpZS3qHXQHMBgvDy4he4UtFu747wVyT5sQGT", + "privateKeyWIFRegTest": "cS1mFB2YygjkUhxggENZR9nb2WebMNKf8jnXbJiQcAmwkiSwiEsC", "address": "bitcoincash:qzrjsum46ecex9qs28eyhw27ltydu37wzcq3v80ld8" }, { "privateKeyWIF": "L28uLVU1Kt8fPJtbK7HUB436atC4dSN1WQPJLde1w6dtyhNmLMyt", + "privateKeyWIFRegTest": "cSVtoQTrkwpvYkMrhX6bYNYAD7VUHtThaSXmT46XSDHuESQ7LCaQ", "address": "bitcoincash:qqqnmqmpy9vz899ctv4chtx5n857pv9l4ykuea44xz" } ] @@ -52,22 +57,27 @@ "output": [ { "privateKeyWIF": "KxGbR7jBWA7jm7GVz9SQvUghX4cYyf1WoP7oGjVXgzbeCDBFy5Qi", + "privateKeyWIFRegTest": "cNdat2j2wDozvYjmNZFYHoBm9Huxe77CsRGGP9x3C7FeSxGV9GtJ", "address": "bitcoincash:qr3r0yazu6s4ed0ckgpv96zcwx3wt9jy6vv56ywm2w" }, { "privateKeyWIF": "L2Er6iZ87yeQVDREKQWw8xr7Uj2ZTmdF4fzfG2MYP3TYHHgXBphK", + "privateKeyWIFRegTest": "cSbqZdYyZ3LfeetVhpL4WHMB6xKy8Diw8i98NSp3tA7YY2o3PGAC", "address": "bitcoincash:qqzc32v777yz4qprp0tk443j5j35q5q0xgzuvprgv0" }, { "privateKeyWIF": "KwQW5F2oFfeqaB9H8AEWX6e8SFyw7qdNcVc3i9RBY6o1oDWYLuM3", + "privateKeyWIFRegTest": "cMmVYA2egjM6jccYWa3dtR9C4VHLnHj4gXkWpZsh3DT23xZ7Zhgx", "address": "bitcoincash:qre988ur4gp5k2ph3lmxltqtg4q2zgw6eye0l6k6eg" }, { "privateKeyWIF": "L1wrABy4xHXNct68ZkBsNUfRN3MHvSW4KJPPDbusUCTjPq3zm3AB", + "privateKeyWIFRegTest": "cSJqd6xvPMDdnKZPx9zzjoAUzGehatbkPLXrL2NNyK7jea72uxB7", "address": "bitcoincash:qzrjsum46ecex9qs28eyhw27ltydu37wzcq3v80ld8" }, { "privateKeyWIF": "L5fQnDhGNYH6qFjh4pgtxYtZ6SSa6PNvqsvXL3Xxc3UTckwo35WU", + "privateKeyWIFRegTest": "cW2QF8h7obyMzhCxTEW2KsPcifjykqUcuv4zSTzU7A8TsW2nQGUh", "address": "bitcoincash:qqqnmqmpy9vz899ctv4chtx5n857pv9l4ykuea44xz" } ] @@ -77,22 +87,27 @@ "output": [ { "privateKeyWIF": "Kwv3n87vwRrMbxa4vTWKY9gaAZtthe3NR1iebRTraaVSAwY5ty8Q", + "privateKeyWIFRegTest": "cNH3F37nNVYcmQ3LJsKSuUBdnoCJN694V3s7hqvN5h9SRgYiXW9A", "address": "bitcoincash:qr3r0yazu6s4ed0ckgpv96zcwx3wt9jy6vv56ywm2w" }, { "privateKeyWIF": "KzucDPxzkExCHTzzJBXo17V7LwRtKj6movuYWmbGW2HjVsFTSBdk", + "privateKeyWIFRegTest": "cRGbgJxrBJeTSuUFgbLvNRzAyAjHzBCTsy41dC3n18wjkcGHbiRX", "address": "bitcoincash:qqzc32v777yz4qprp0tk443j5j35q5q0xgzuvprgv0" }, { "privateKeyWIF": "Kye3NjRtM2NYtS4kfQgSNK2RvtzUM9mXzy6szZTVii33ETd5jNrU", + "privateKeyWIFRegTest": "cQ12qeRjn64p3sY23pVZjdXVZ8Ht1bsE51FM6yv1Dph3VCj31tVz", "address": "bitcoincash:qre988ur4gp5k2ph3lmxltqtg4q2zgw6eye0l6k6eg" }, { "privateKeyWIF": "KzZWMxZGgu8cZF2aEaP1sYnh3E4vtCHEKVzY2fWaHG44MFosYmq1", + "privateKeyWIFRegTest": "cQvVpsZ87xpsigVqczC9EsHkfTNLYeNvPY9195y5nNi4bzvNh7Zt", "address": "bitcoincash:qzrjsum46ecex9qs28eyhw27ltydu37wzcq3v80ld8" }, { "privateKeyWIF": "L4iVLdaMkKvwtZKeD1ishayo2XHGWLm37imjpQFyV4XSkv1XTkGk", + "privateKeyWIFRegTest": "cV5UoYaDBPdD3znubRY14uUrekagAnrjBkvCvpiUzBBT1f5bgdjT", "address": "bitcoincash:qqqnmqmpy9vz899ctv4chtx5n857pv9l4ykuea44xz" } ] @@ -102,22 +117,27 @@ "output": [ { "privateKeyWIF": "KwZ38dBpAk1BY53mmo6tSkt5we3FEAw8nvPE5m3L8iGJvfgCtM1r", + "privateKeyWIFRegTest": "cMv2bYBfbohShWX3ACv1p5P9ZsLetd2prxXhCBVqdpvKBQpZYKBJ", "address": "bitcoincash:qr3r0yazu6s4ed0ckgpv96zcwx3wt9jy6vv56ywm2w" }, { "privateKeyWIF": "L1VCKD5oq7s5iaWC2ZY79KuRxDJrQ6tjRiB3VaScYsxYD8TxsSan", + "privateKeyWIFRegTest": "cRrBn85fGBZLt1yTQyMEWeQVaScG4YzRVkKWbzu83zcYTsVYovue", "address": "bitcoincash:qqzc32v777yz4qprp0tk443j5j35q5q0xgzuvprgv0" }, { "privateKeyWIF": "KxojM7WKQqxS1FNKGVWowDPtzMXaXQ7UUsdwhxJFUwE7HxSofqUK", + "privateKeyWIFRegTest": "cPAip2WAquehAgqaeuKwJXtxcapzBrDAYunQpNkkz3t7YhTkSbJy", "address": "bitcoincash:qre988ur4gp5k2ph3lmxltqtg4q2zgw6eye0l6k6eg" }, { "privateKeyWIF": "KyWdb9m9TJpxqGHkZjHLipQiLUVmhvZT8p49N761RUc2Nq23FBxd", + "privateKeyWIFRegTest": "cPsd44kztNXDzhm1x96U68umxhoBNNf9CrCcUXYWvbG2daC2pDgL", "address": "bitcoincash:qzrjsum46ecex9qs28eyhw27ltydu37wzcq3v80ld8" }, { "privateKeyWIF": "L33wzMLV6m6DLHPnzuf27ZSjLv8HGG3DCjMdxDDTieDt7P1ih1ic", + "privateKeyWIFRegTest": "cTQwTGLLXpnUVis4PKU9Uswny9Rgvi8uGmW74dfyDkstN874DDMJ", "address": "bitcoincash:qqqnmqmpy9vz899ctv4chtx5n857pv9l4ykuea44xz" } ] @@ -127,22 +147,27 @@ "output": [ { "privateKeyWIF": "KyapaU8zwrHxLoqVfwRrF9e5a35DoXhV6C7zTkVnneuLQhMHBd7G", + "privateKeyWIFRegTest": "cPwp3P8rNuzDWFJm4MEycU99CGNdTyoBAEGTaAxJHmZLfSTUM32i", "address": "bitcoincash:qr3r0yazu6s4ed0ckgpv96zcwx3wt9jy6vv56ywm2w" }, { "privateKeyWIF": "L2WCL7KEJT415BPYBhW3vUp89x1AwFrLfMyjMrbC444N1tFKBhXY", + "privateKeyWIFRegTest": "cSsBo2K5jWkGEcroa7KBHoKBnBJabhx2jQ8CUH3hZAiNGdPAbR1L", "address": "bitcoincash:qqzc32v777yz4qprp0tk443j5j35q5q0xgzuvprgv0" }, { "privateKeyWIF": "L3Dz8kbwNf6EShtjnpZ65k8RuyD2reMcbZAnFY4GvQjy7CtvtmZX", + "privateKeyWIFRegTest": "cTaybfbnoinVc9N1BENDT4dVYCWSX6TJfbKFMxWnRXPyMwwVTigN", "address": "bitcoincash:qre988ur4gp5k2ph3lmxltqtg4q2zgw6eye0l6k6eg" }, { "privateKeyWIF": "L3Dy5sJB31JBnRtFZq6QJaKEaijo3wCnvJpjRvr8hYov7LUu8E13", + "privateKeyWIFRegTest": "cTaxYnJ2U4zSwsMWxEuXftpJCx3CiPJUzLyCYMJeCfTvN5VU9AG6", "address": "bitcoincash:qzrjsum46ecex9qs28eyhw27ltydu37wzcq3v80ld8" }, { "privateKeyWIF": "L4DTuvT3XWFW7vs6gvS88v4vYBMuJK3GjzMBTjD8XkpfJwoeqewD", + "privateKeyWIFRegTest": "cUaTNqStxZwmHNLN5LFFWEZzAQfJxm8xp2Vea9fe2sUfZgtqShVL", "address": "bitcoincash:qqqnmqmpy9vz899ctv4chtx5n857pv9l4ykuea44xz" } ] From 7aa9c1b2d8a4eeae437f577da0b7cc427954e3e5 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sun, 4 Nov 2018 00:14:00 +0900 Subject: [PATCH 129/480] Update HDNode typings. --- index.js | 2 +- lib/HDNode.d.ts | 76 +++++++++++++++++++++++---------------------- lib/bitbox-sdk.js | 13 +------- package.json | 2 +- typings/HDNode.d.ts | 76 +++++++++++++++++++++++---------------------- 5 files changed, 81 insertions(+), 88 deletions(-) diff --git a/index.js b/index.js index cdf6a542..889e6401 100755 --- a/index.js +++ b/index.js @@ -17,7 +17,7 @@ const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") const cmd = require("node-cmd") -program.version("2.1.1 ", "-v, --version") +program.version("2.1.2 ", "-v, --version") program .command("new ") diff --git a/lib/HDNode.d.ts b/lib/HDNode.d.ts index 2c56ac7b..ecd9d293 100644 --- a/lib/HDNode.d.ts +++ b/lib/HDNode.d.ts @@ -1,40 +1,42 @@ -import {Buffer} from 'buffer'; +import { Buffer } from "buffer" -import { ECPair, ECSignature } from "./ECPair"; +import { ECPair, ECSignature } from "./ECPair" export declare interface HDNode { - fromSeed(rootSeedBuffer: Buffer, network?: string): HDNode; - toLegacyAddress():string; - toLegacyAddress(hdNode:HDNode):string; - toCashAddress():string; - toCashAddress(hdNode:HDNode, regtest?: boolean):string; - toWIF(): string; - toWIF(hdNode:HDNode): string; - toXPub():string; - toXPub(hdNode:HDNode):string; - toXPriv(): string; - toXPriv(hdNode:HDNode): string; - toKeyPair(): ECPair; - toKeyPair(hdNode:HDNode): ECPair; - toPublicKey(): Buffer; - toPublicKey(hdNode:HDNode): Buffer; - fromXPriv(xpriv: string): HDNode; - fromXPub(xpub:string): HDNode; - derivePath(path:string):HDNode; - derivePath(hdnode: HDNode, path:string):HDNode; - derive(num:number):HDNode; - derive(hdnode: HDNode, num:number):HDNode; - deriveHardened(num: number):HDNode; - deriveHardened(hdnode:HDNode, num: number):HDNode; - sign(buffer:Buffer):ECSignature; - sign(hdnode:HDNode, buffer:Buffer):ECSignature; - verify(buffer:Buffer, signature:ECSignature):boolean; - verify(hdnode:HDNode, buffer:Buffer, signature:ECSignature):boolean; - isPublic():boolean; - isPublic(hdnode:HDNode):boolean; - isPrivate():boolean; - isPrivate(hdnode:HDNode):boolean; - toIdentifier():string; - toIdentifier(hdnode:HDNode):string; - fromBase58(base58:string, network:string):string; -} \ No newline at end of file + fromSeed(rootSeedBuffer: Buffer, network?: string): HDNode + toLegacyAddress(): string + toLegacyAddress(hdNode: HDNode): string + toCashAddress(): string + toCashAddress(hdNode: HDNode, regtest?: boolean): string + toWIF(): string + toWIF(hdNode: HDNode): string + toXPub(): string + toXPub(hdNode: HDNode): string + toXPriv(): string + toXPriv(hdNode: HDNode): string + toKeyPair(): ECPair + toKeyPair(hdNode: HDNode): ECPair + toPublicKey(): Buffer + toPublicKey(hdNode: HDNode): Buffer + fromXPriv(xpriv: string): HDNode + fromXPub(xpub: string): HDNode + derivePath(path: string): HDNode + derivePath(hdNode: HDNode, path: string): HDNode + derive(num: number): HDNode + derive(hdNode: HDNode, num: number): HDNode + deriveHardened(num: number): HDNode + deriveHardened(hdNode: HDNode, num: number): HDNode + sign(buffer: Buffer): ECSignature + sign(hdNode: HDNode, buffer: Buffer): ECSignature + verify(buffer: Buffer, signature: ECSignature): boolean + verify(hdNode: HDNode, buffer: Buffer, signature: ECSignature): boolean + isPublic(): boolean + isPublic(hdNode: HDNode): boolean + isPrivate(): boolean + isPrivate(hdNode: HDNode): boolean + toIdentifier(): string + toIdentifier(hdNode: HDNode): string + fromBase58(base58: string, network: string): string + createAccount(hdNodes: Array): object + createChain(hdNode: HDNode): object +} diff --git a/lib/bitbox-sdk.js b/lib/bitbox-sdk.js index 032d4a2a..858952cc 100644 --- a/lib/bitbox-sdk.js +++ b/lib/bitbox-sdk.js @@ -4,14 +4,6 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _axios = require("axios"); - -var _axios2 = _interopRequireDefault(_axios); - -var _bitcoincashjsLib = require("bitcoincashjs-lib"); - -var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); - var _BitcoinCash = require("./BitcoinCash"); var _BitcoinCash2 = _interopRequireDefault(_BitcoinCash); @@ -90,10 +82,7 @@ var _Socket2 = _interopRequireDefault(_Socket); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } // 3rd party deps - - -// local deps +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } // local deps var BITBOXSDK = function BITBOXSDK(config) { diff --git a/package.json b/package.json index 557377f6..a2dec54d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "2.1.1", + "version": "2.1.2", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", diff --git a/typings/HDNode.d.ts b/typings/HDNode.d.ts index 2c56ac7b..ecd9d293 100644 --- a/typings/HDNode.d.ts +++ b/typings/HDNode.d.ts @@ -1,40 +1,42 @@ -import {Buffer} from 'buffer'; +import { Buffer } from "buffer" -import { ECPair, ECSignature } from "./ECPair"; +import { ECPair, ECSignature } from "./ECPair" export declare interface HDNode { - fromSeed(rootSeedBuffer: Buffer, network?: string): HDNode; - toLegacyAddress():string; - toLegacyAddress(hdNode:HDNode):string; - toCashAddress():string; - toCashAddress(hdNode:HDNode, regtest?: boolean):string; - toWIF(): string; - toWIF(hdNode:HDNode): string; - toXPub():string; - toXPub(hdNode:HDNode):string; - toXPriv(): string; - toXPriv(hdNode:HDNode): string; - toKeyPair(): ECPair; - toKeyPair(hdNode:HDNode): ECPair; - toPublicKey(): Buffer; - toPublicKey(hdNode:HDNode): Buffer; - fromXPriv(xpriv: string): HDNode; - fromXPub(xpub:string): HDNode; - derivePath(path:string):HDNode; - derivePath(hdnode: HDNode, path:string):HDNode; - derive(num:number):HDNode; - derive(hdnode: HDNode, num:number):HDNode; - deriveHardened(num: number):HDNode; - deriveHardened(hdnode:HDNode, num: number):HDNode; - sign(buffer:Buffer):ECSignature; - sign(hdnode:HDNode, buffer:Buffer):ECSignature; - verify(buffer:Buffer, signature:ECSignature):boolean; - verify(hdnode:HDNode, buffer:Buffer, signature:ECSignature):boolean; - isPublic():boolean; - isPublic(hdnode:HDNode):boolean; - isPrivate():boolean; - isPrivate(hdnode:HDNode):boolean; - toIdentifier():string; - toIdentifier(hdnode:HDNode):string; - fromBase58(base58:string, network:string):string; -} \ No newline at end of file + fromSeed(rootSeedBuffer: Buffer, network?: string): HDNode + toLegacyAddress(): string + toLegacyAddress(hdNode: HDNode): string + toCashAddress(): string + toCashAddress(hdNode: HDNode, regtest?: boolean): string + toWIF(): string + toWIF(hdNode: HDNode): string + toXPub(): string + toXPub(hdNode: HDNode): string + toXPriv(): string + toXPriv(hdNode: HDNode): string + toKeyPair(): ECPair + toKeyPair(hdNode: HDNode): ECPair + toPublicKey(): Buffer + toPublicKey(hdNode: HDNode): Buffer + fromXPriv(xpriv: string): HDNode + fromXPub(xpub: string): HDNode + derivePath(path: string): HDNode + derivePath(hdNode: HDNode, path: string): HDNode + derive(num: number): HDNode + derive(hdNode: HDNode, num: number): HDNode + deriveHardened(num: number): HDNode + deriveHardened(hdNode: HDNode, num: number): HDNode + sign(buffer: Buffer): ECSignature + sign(hdNode: HDNode, buffer: Buffer): ECSignature + verify(buffer: Buffer, signature: ECSignature): boolean + verify(hdNode: HDNode, buffer: Buffer, signature: ECSignature): boolean + isPublic(): boolean + isPublic(hdNode: HDNode): boolean + isPrivate(): boolean + isPrivate(hdNode: HDNode): boolean + toIdentifier(): string + toIdentifier(hdNode: HDNode): string + fromBase58(base58: string, network: string): string + createAccount(hdNodes: Array): object + createChain(hdNode: HDNode): object +} From 7653bfb95ea58d213b7060adf41403c1107333c8 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Mon, 5 Nov 2018 08:08:19 +0900 Subject: [PATCH 130/480] Add support for DSV. --- index.js | 2 +- package-lock.json | 4094 +++++++++++++++++++++++---------------------- package.json | 4 +- 3 files changed, 2053 insertions(+), 2047 deletions(-) diff --git a/index.js b/index.js index 889e6401..b4b92610 100755 --- a/index.js +++ b/index.js @@ -17,7 +17,7 @@ const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") const cmd = require("node-cmd") -program.version("2.1.2 ", "-v, --version") +program.version("2.2.0 ", "-v, --version") program .command("new ") diff --git a/package-lock.json b/package-lock.json index a84de615..b27e701f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "2.1.0", + "version": "2.2.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -25,7 +25,7 @@ "integrity": "sha512-5x2kFgJYupaF1ns/RmharQ90lQkd2ELS8A9X0ymkAAdemYHGtI2KiUHG8nX2WU0T1qgnOU5YMqnBM2V7NUanNw==", "dev": true, "requires": { - "array-from": "2.1.1" + "array-from": "^2.1.1" } }, "@types/node": { @@ -44,7 +44,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "requires": { - "mime-types": "2.1.20", + "mime-types": "~2.1.18", "negotiator": "0.6.1" } }, @@ -58,7 +58,7 @@ "resolved": "http://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "requires": { - "acorn": "3.3.0" + "acorn": "^3.0.4" }, "dependencies": { "acorn": { @@ -79,8 +79,8 @@ "integrity": "sha1-iINE2tAiCnLjr1CQYRf0h3GSX6w=", "dev": true, "requires": { - "clean-stack": "1.3.0", - "indent-string": "3.2.0" + "clean-stack": "^1.0.0", + "indent-string": "^3.0.0" } }, "ajv": { @@ -88,10 +88,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "ajv-keywords": { @@ -105,7 +105,7 @@ "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "dev": true, "requires": { - "string-width": "2.1.1" + "string-width": "^2.0.0" } }, "ansi-escapes": { @@ -129,8 +129,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "optional": true, "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" } }, "argparse": { @@ -138,7 +138,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "arr-diff": { @@ -147,7 +147,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "optional": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { @@ -171,8 +171,8 @@ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.12.0" + "define-properties": "^1.1.2", + "es-abstract": "^1.7.0" } }, "array-union": { @@ -180,7 +180,7 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -210,7 +210,7 @@ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "~2.1.0" } }, "assert": { @@ -282,8 +282,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=", "requires": { - "follow-redirects": "1.5.9", - "is-buffer": "1.1.6" + "follow-redirects": "^1.2.5", + "is-buffer": "^1.1.5" } }, "babel-cli": { @@ -291,21 +291,21 @@ "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", "requires": { - "babel-core": "6.26.3", - "babel-polyfill": "6.26.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "chokidar": "1.7.0", - "commander": "2.19.0", - "convert-source-map": "1.6.0", - "fs-readdir-recursive": "1.1.0", - "glob": "7.1.3", - "lodash": "4.17.11", - "output-file-sync": "1.1.2", - "path-is-absolute": "1.0.1", - "slash": "1.0.0", - "source-map": "0.5.7", - "v8flags": "2.1.1" + "babel-core": "^6.26.0", + "babel-polyfill": "^6.26.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "chokidar": "^1.6.1", + "commander": "^2.11.0", + "convert-source-map": "^1.5.0", + "fs-readdir-recursive": "^1.0.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "output-file-sync": "^1.1.2", + "path-is-absolute": "^1.0.1", + "slash": "^1.0.0", + "source-map": "^0.5.6", + "v8flags": "^2.1.1" } }, "babel-code-frame": { @@ -313,9 +313,9 @@ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" }, "dependencies": { "chalk": { @@ -323,11 +323,11 @@ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "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" } } } @@ -337,25 +337,25 @@ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.1", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.6.0", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" }, "dependencies": { "debug": { @@ -373,14 +373,14 @@ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.11", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" } }, "babel-helper-builder-binary-assignment-operator-visitor": { @@ -388,9 +388,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "requires": { - "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-builder-react-jsx": { @@ -398,9 +398,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "esutils": "2.0.2" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "esutils": "^2.0.2" } }, "babel-helper-call-delegate": { @@ -408,10 +408,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-define-map": { @@ -419,10 +419,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.11" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-explode-assignable-expression": { @@ -430,9 +430,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-function-name": { @@ -440,11 +440,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-get-function-arity": { @@ -452,8 +452,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-hoist-variables": { @@ -461,8 +461,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-optimise-call-expression": { @@ -470,8 +470,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-regex": { @@ -479,9 +479,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.11" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-remap-async-to-generator": { @@ -489,11 +489,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-replace-supers": { @@ -501,12 +501,12 @@ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "requires": { - "babel-helper-optimise-call-expression": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helpers": { @@ -514,8 +514,8 @@ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-messages": { @@ -523,7 +523,7 @@ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-check-es2015-constants": { @@ -531,7 +531,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-syntax-async-functions": { @@ -564,9 +564,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-arrow-functions": { @@ -574,7 +574,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -582,7 +582,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -590,11 +590,11 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.11" + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-plugin-transform-es2015-classes": { @@ -602,15 +602,15 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "requires": { - "babel-helper-define-map": "6.26.0", - "babel-helper-function-name": "6.24.1", - "babel-helper-optimise-call-expression": "6.24.1", - "babel-helper-replace-supers": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-computed-properties": { @@ -618,8 +618,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-destructuring": { @@ -627,7 +627,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -635,8 +635,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-for-of": { @@ -644,7 +644,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -652,9 +652,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-literals": { @@ -662,7 +662,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -670,9 +670,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -680,10 +680,10 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" } }, "babel-plugin-transform-es2015-modules-systemjs": { @@ -691,9 +691,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-umd": { @@ -701,9 +701,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "requires": { - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-object-super": { @@ -711,8 +711,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "requires": { - "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.26.0" + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -720,12 +720,12 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-shorthand-properties": { @@ -733,8 +733,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-spread": { @@ -742,7 +742,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -750,9 +750,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-template-literals": { @@ -760,7 +760,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -768,7 +768,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -776,9 +776,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -786,9 +786,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", - "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-flow-strip-types": { @@ -796,8 +796,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", "requires": { - "babel-plugin-syntax-flow": "6.18.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-flow": "^6.18.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-display-name": { @@ -805,7 +805,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx": { @@ -813,9 +813,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", "requires": { - "babel-helper-builder-react-jsx": "6.26.0", - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-react-jsx": "^6.24.1", + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx-self": { @@ -823,8 +823,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx-source": { @@ -832,8 +832,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-regenerator": { @@ -841,7 +841,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "requires": { - "regenerator-transform": "0.10.1" + "regenerator-transform": "^0.10.0" } }, "babel-plugin-transform-strict-mode": { @@ -849,8 +849,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-polyfill": { @@ -858,9 +858,9 @@ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "requires": { - "babel-runtime": "6.26.0", - "core-js": "2.5.7", - "regenerator-runtime": "0.10.5" + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" }, "dependencies": { "regenerator-runtime": { @@ -875,36 +875,36 @@ "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0", - "browserslist": "3.2.8", - "invariant": "2.2.4", - "semver": "5.5.1" + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" } }, "babel-preset-es2015": { @@ -912,30 +912,30 @@ "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0" + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.24.1", + "babel-plugin-transform-es2015-classes": "^6.24.1", + "babel-plugin-transform-es2015-computed-properties": "^6.24.1", + "babel-plugin-transform-es2015-destructuring": "^6.22.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", + "babel-plugin-transform-es2015-for-of": "^6.22.0", + "babel-plugin-transform-es2015-function-name": "^6.24.1", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-umd": "^6.24.1", + "babel-plugin-transform-es2015-object-super": "^6.24.1", + "babel-plugin-transform-es2015-parameters": "^6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", + "babel-plugin-transform-regenerator": "^6.24.1" } }, "babel-preset-flow": { @@ -943,7 +943,7 @@ "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", "requires": { - "babel-plugin-transform-flow-strip-types": "6.22.0" + "babel-plugin-transform-flow-strip-types": "^6.22.0" } }, "babel-preset-react": { @@ -951,12 +951,12 @@ "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-plugin-transform-react-display-name": "6.25.0", - "babel-plugin-transform-react-jsx": "6.24.1", - "babel-plugin-transform-react-jsx-self": "6.22.0", - "babel-plugin-transform-react-jsx-source": "6.22.0", - "babel-preset-flow": "6.23.0" + "babel-plugin-syntax-jsx": "^6.3.13", + "babel-plugin-transform-react-display-name": "^6.23.0", + "babel-plugin-transform-react-jsx": "^6.24.1", + "babel-plugin-transform-react-jsx-self": "^6.22.0", + "babel-plugin-transform-react-jsx-source": "^6.22.0", + "babel-preset-flow": "^6.23.0" } }, "babel-register": { @@ -964,13 +964,13 @@ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "requires": { - "babel-core": "6.26.3", - "babel-runtime": "6.26.0", - "core-js": "2.5.7", - "home-or-tmp": "2.0.0", - "lodash": "4.17.11", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" } }, "babel-runtime": { @@ -978,8 +978,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "2.5.7", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -987,11 +987,11 @@ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.11" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { @@ -999,15 +999,15 @@ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.11" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" }, "dependencies": { "debug": { @@ -1025,10 +1025,10 @@ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.11", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -1051,13 +1051,13 @@ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "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" }, "dependencies": { "define-property": { @@ -1065,7 +1065,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -1073,7 +1073,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -1081,7 +1081,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -1089,9 +1089,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -1111,7 +1111,7 @@ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.4.tgz", "integrity": "sha512-UYOadoSIkEI/VrRGSG6qp93rp2WdokiAiNYDfGW5qURAY8GiAQkvMbwNNSDYiVJopqv4gCna7xqf4rrNGp+5AA==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "base64-arraybuffer": { @@ -1142,7 +1142,7 @@ "dev": true, "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "bech32": { @@ -1185,17 +1185,19 @@ }, "bip21": { "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", + "from": "github:Bitcoin-com/bip21", "requires": { - "qs": "6.5.2" + "qs": "^6.3.0" } }, "bip32-utils": { "version": "github:Bitcoin-com/bip32-utils#966fb8f0e0d4c667e4ee89adfa20c2078d66887c", + "from": "github:Bitcoin-com/bip32-utils#0.13.0", "requires": { - "keccak": "1.4.0", - "nyc": "11.9.0", - "standard": "11.0.1", - "tape": "4.9.1" + "keccak": "^1.3.0", + "nyc": "*", + "standard": "^11.0.1", + "tape": "*" } }, "bip38": { @@ -1203,13 +1205,13 @@ "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", "integrity": "sha512-22KDak0RDyghFbR0Si7wyq9IgY423YzGYzWLpGeofH3DaolOQqjD3mNN08eFoubKlbyclOQKFwtONMv2SD9V3A==", "requires": { - "bigi": "1.4.2", - "browserify-aes": "1.2.0", - "bs58check": "2.1.2", - "buffer-xor": "1.0.3", - "create-hash": "1.2.0", - "ecurve": "1.0.6", - "scryptsy": "2.0.0" + "bigi": "^1.2.0", + "browserify-aes": "^1.0.1", + "bs58check": "<3.0.0", + "buffer-xor": "^1.0.2", + "create-hash": "^1.1.1", + "ecurve": "^1.0.0", + "scryptsy": "^2.0.0" } }, "bip39": { @@ -1217,11 +1219,11 @@ "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", "requires": { - "create-hash": "1.2.0", - "pbkdf2": "3.0.17", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "unorm": "1.4.1" + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "unorm": "^1.3.3" } }, "bip66": { @@ -1229,41 +1231,44 @@ "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "bip68": { - "version": "github:Bitcoin-com/bip68#aeac5a8c5c1e01dfba79ff3eb824171be004a28c" + "version": "github:Bitcoin-com/bip68#aeac5a8c5c1e01dfba79ff3eb824171be004a28c", + "from": "github:Bitcoin-com/bip68#1.0.5" }, "bitcoin-ops": { - "version": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" + "version": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646", + "from": "github:Bitcoin-com/bitcoincash-ops#1.5.0" }, "bitcoin-txdecoder": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/bitcoin-txdecoder/-/bitcoin-txdecoder-0.0.3.tgz", "integrity": "sha512-pH/eF5hQ65y54U23mzuF42wEj9YWj4WKHAIj2il6b1+oRoi/oyM4Ti3e8nMD8ajippICmyquqbyCZKGq3i4W+A==", "requires": { - "bitcoinjs-lib": "3.3.2" + "bitcoinjs-lib": "3.3.*" } }, "bitcoincashjs-lib": { "version": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", - "requires": { - "bech32": "1.1.3", - "bigi": "1.4.2", - "bip66": "1.1.5", - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", - "bs58check": "2.1.2", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ecurve": "1.0.6", - "merkle-lib": "2.0.10", - "pushdata-bitcoin": "1.0.1", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "typeforce": "1.13.2", - "varuint-bitcoin": "1.1.0", - "wif": "2.0.6" + "from": "github:Bitcoin-com/bitcoincashjs-lib#3.3.4", + "requires": { + "bech32": "^1.1.2", + "bigi": "^1.4.0", + "bip66": "^1.1.0", + "bitcoin-ops": "^1.3.0", + "bs58check": "^2.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.3", + "ecurve": "^1.0.0", + "merkle-lib": "^2.0.10", + "pushdata-bitcoin": "^1.0.1", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "typeforce": "^1.11.3", + "varuint-bitcoin": "^1.0.4", + "wif": "^2.0.1" } }, "bitcoinjs-lib": { @@ -1271,21 +1276,21 @@ "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-3.3.2.tgz", "integrity": "sha512-l5qqvbaK8wwtANPf6oEffykycg4383XgEYdia1rI7/JpGf1jfRWlOUCvx5TiTZS7kyIvY4j/UhIQ2urLsvGkzw==", "requires": { - "bech32": "1.1.3", - "bigi": "1.4.2", - "bip66": "1.1.5", - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38", - "bs58check": "2.1.2", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ecurve": "1.0.6", - "merkle-lib": "2.0.10", - "pushdata-bitcoin": "1.0.1", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "typeforce": "1.13.2", - "varuint-bitcoin": "1.1.0", - "wif": "2.0.6" + "bech32": "^1.1.2", + "bigi": "^1.4.0", + "bip66": "^1.1.0", + "bitcoin-ops": "^1.3.0", + "bs58check": "^2.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.3", + "ecurve": "^1.0.0", + "merkle-lib": "^2.0.10", + "pushdata-bitcoin": "^1.0.1", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "typeforce": "^1.11.3", + "varuint-bitcoin": "^1.0.4", + "wif": "^2.0.1" } }, "bitcoinjs-message": { @@ -1293,11 +1298,11 @@ "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", "requires": { - "bs58check": "2.1.2", - "buffer-equals": "1.0.4", - "create-hash": "1.2.0", - "secp256k1": "3.5.2", - "varuint-bitcoin": "1.1.0" + "bs58check": "^2.0.2", + "buffer-equals": "^1.0.3", + "create-hash": "^1.1.2", + "secp256k1": "^3.0.1", + "varuint-bitcoin": "^1.0.1" } }, "blob": { @@ -1316,13 +1321,13 @@ "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", "dev": true, "requires": { - "ansi-align": "2.0.0", - "camelcase": "4.1.0", - "chalk": "2.4.1", - "cli-boxes": "1.0.0", - "string-width": "2.1.1", - "term-size": "1.2.0", - "widest-line": "2.0.0" + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" } }, "brace-expansion": { @@ -1330,7 +1335,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -1340,9 +1345,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "optional": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.3" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "brorand": { @@ -1360,12 +1365,12 @@ "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "browserslist": { @@ -1373,8 +1378,8 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "requires": { - "caniuse-lite": "1.0.30000890", - "electron-to-chromium": "1.3.75" + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" } }, "bs58": { @@ -1382,7 +1387,7 @@ "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", "requires": { - "base-x": "3.0.4" + "base-x": "^3.0.2" } }, "bs58check": { @@ -1390,9 +1395,9 @@ "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", "requires": { - "bs58": "4.0.1", - "create-hash": "1.2.0", - "safe-buffer": "5.1.2" + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" } }, "buffer": { @@ -1400,8 +1405,8 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.12" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" } }, "buffer-equals": { @@ -1429,15 +1434,15 @@ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "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" }, "dependencies": { "isobject": { @@ -1475,7 +1480,7 @@ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "requires": { - "callsites": "0.2.0" + "callsites": "^0.2.0" } }, "callsite": { @@ -1498,7 +1503,7 @@ "resolved": "https://registry.npmjs.org/can-promise/-/can-promise-0.0.1.tgz", "integrity": "sha512-gzVrHyyrvgt0YpDm7pn04MQt8gjh0ZAhN4ZDyCRtGl6YnuuK6b4aiUTD7G52r9l4YNmxfTtEscb92vxtAlL6XQ==", "requires": { - "window-or-global": "1.0.1" + "window-or-global": "^1.0.1" } }, "caniuse-lite": { @@ -1523,7 +1528,7 @@ "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.2.9.tgz", "integrity": "sha512-DhJF4iAH0/RM3UjHDHKRxzs09YGL9px+oTyizzydanhC7jTyM2aJ+aLKA96vZGTTWayvvr2iDF2l13lpqXiRFg==", "requires": { - "big-integer": "1.6.36" + "big-integer": "^1.6.34" } }, "chai": { @@ -1532,12 +1537,12 @@ "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", "dev": true, "requires": { - "assertion-error": "1.1.0", - "check-error": "1.0.2", - "deep-eql": "3.0.1", - "get-func-name": "2.0.0", - "pathval": "1.1.0", - "type-detect": "4.0.8" + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" } }, "chalk": { @@ -1545,9 +1550,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "ansi-styles": { @@ -1555,7 +1560,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "color-convert": "1.9.3" + "color-convert": "^1.9.0" } }, "supports-color": { @@ -1563,7 +1568,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -1585,15 +1590,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "optional": true, "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.2.4", - "glob-parent": "2.0.0", - "inherits": "2.0.1", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1" + "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" } }, "ci-info": { @@ -1607,8 +1612,8 @@ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "circular-json": { @@ -1621,10 +1626,10 @@ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -1632,7 +1637,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "isobject": { @@ -1664,7 +1669,7 @@ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-width": { @@ -1677,9 +1682,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "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" }, "dependencies": { "string-width": { @@ -1687,9 +1692,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" } } } @@ -1700,7 +1705,7 @@ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "dev": true, "requires": { - "mimic-response": "1.0.1" + "mimic-response": "^1.0.0" } }, "co": { @@ -1715,8 +1720,9 @@ }, "coininfo": { "version": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", + "from": "github:Bitcoin-com/coininfo", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.1" } }, "collection-visit": { @@ -1724,8 +1730,8 @@ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "color-convert": { @@ -1747,7 +1753,7 @@ "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", "dev": true, "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -1780,10 +1786,10 @@ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "requires": { - "buffer-from": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" }, "dependencies": { "inherits": { @@ -1799,12 +1805,12 @@ "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", "dev": true, "requires": { - "dot-prop": "4.2.0", - "graceful-fs": "4.1.11", - "make-dir": "1.3.0", - "unique-string": "1.0.0", - "write-file-atomic": "2.3.0", - "xdg-basedir": "3.0.0" + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" } }, "contains-path": { @@ -1817,7 +1823,7 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.1" } }, "cookie": { @@ -1852,12 +1858,12 @@ "integrity": "sha512-Tv0LKe/MkBOilH2v7WBiTBdudg2ChfGbdXafc/s330djpF3zKOmuehTeRwjXWc7pzfj9FrDUTA7tEx6Div8NFw==", "dev": true, "requires": { - "growl": "1.10.5", - "js-yaml": "3.12.0", - "lcov-parse": "0.0.10", - "log-driver": "1.2.7", - "minimist": "1.2.0", - "request": "2.88.0" + "growl": "~> 1.10.0", + "js-yaml": "^3.11.0", + "lcov-parse": "^0.0.10", + "log-driver": "^1.2.7", + "minimist": "^1.2.0", + "request": "^2.85.0" }, "dependencies": { "minimist": { @@ -1873,11 +1879,11 @@ "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-5.0.0.tgz", "integrity": "sha1-vHAP0wyjLSTUbH+wK5kuQ1/FqXg=", "requires": { - "graceful-fs": "4.1.11", - "make-dir": "1.3.0", - "nested-error-stacks": "2.1.0", - "pify": "3.0.0", - "safe-buffer": "5.1.2" + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "nested-error-stacks": "^2.0.0", + "pify": "^3.0.0", + "safe-buffer": "^5.0.1" } }, "create-error-class": { @@ -1886,7 +1892,7 @@ "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "dev": true, "requires": { - "capture-stack-trace": "1.0.1" + "capture-stack-trace": "^1.0.0" } }, "create-hash": { @@ -1894,11 +1900,11 @@ "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.1", - "md5.js": "1.3.5", - "ripemd160": "2.0.2", - "sha.js": "2.4.11" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, "create-hmac": { @@ -1906,12 +1912,12 @@ "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "inherits": "2.0.1", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "cross-spawn": { @@ -1919,9 +1925,9 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "crypto-random-string": { @@ -1936,7 +1942,7 @@ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "debug": { @@ -1968,7 +1974,7 @@ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "dev": true, "requires": { - "mimic-response": "1.0.1" + "mimic-response": "^1.0.0" } }, "deep-eql": { @@ -1977,7 +1983,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "4.0.8" + "type-detect": "^4.0.0" } }, "deep-equal": { @@ -2001,7 +2007,7 @@ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "requires": { - "object-keys": "1.0.12" + "object-keys": "^1.0.12" } }, "define-property": { @@ -2009,8 +2015,8 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -2018,7 +2024,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -2026,7 +2032,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -2034,9 +2040,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -2061,12 +2067,12 @@ "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.1.tgz", "integrity": "sha512-2kjwuGGonL7gWE1XU4Fv79+vVzpoQCl0V+boMwWtOQJV2AGDabCwez++nB1Nli/8BabAfZQ/UuHPlp6AymKdWw==", "requires": { - "find-root": "1.1.0", - "glob": "7.1.3", - "ignore": "3.3.10", - "pkg-config": "1.1.1", - "run-parallel": "1.1.9", - "uniq": "1.0.1" + "find-root": "^1.0.0", + "glob": "^7.0.5", + "ignore": "^3.0.9", + "pkg-config": "^1.1.0", + "run-parallel": "^1.1.2", + "uniq": "^1.0.1" } }, "del": { @@ -2074,13 +2080,13 @@ "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.2" + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" }, "dependencies": { "pify": { @@ -2107,7 +2113,7 @@ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "diff": { @@ -2125,7 +2131,7 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "requires": { - "esutils": "2.0.2" + "esutils": "^2.0.2" } }, "dot-prop": { @@ -2134,7 +2140,7 @@ "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", "dev": true, "requires": { - "is-obj": "1.0.1" + "is-obj": "^1.0.0" } }, "drbg.js": { @@ -2142,9 +2148,9 @@ "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", "requires": { - "browserify-aes": "1.2.0", - "create-hash": "1.2.0", - "create-hmac": "1.1.7" + "browserify-aes": "^1.0.6", + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4" } }, "duplexer": { @@ -2166,8 +2172,8 @@ "dev": true, "optional": true, "requires": { - "jsbn": "0.1.1", - "safer-buffer": "2.1.2" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, "ecurve": { @@ -2175,8 +2181,8 @@ "resolved": "https://registry.npmjs.org/ecurve/-/ecurve-1.0.6.tgz", "integrity": "sha512-/BzEjNfiSuB7jIWKcS/z8FK9jNjmEWvUV2YZ4RLSmcDtP7Lq0m6FvDuSnJpBlDpGRpfRQeTLGLBI8H+kEv0r+w==", "requires": { - "bigi": "1.4.2", - "safe-buffer": "5.1.2" + "bigi": "^1.1.0", + "safe-buffer": "^5.0.1" } }, "electron-to-chromium": { @@ -2189,13 +2195,13 @@ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.5", - "hmac-drbg": "1.0.1", - "inherits": "2.0.1", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" } }, "engine.io": { @@ -2203,12 +2209,12 @@ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.0.tgz", "integrity": "sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==", "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.4", "base64id": "1.0.0", "cookie": "0.3.1", - "debug": "3.1.0", - "engine.io-parser": "2.1.2", - "ws": "3.3.3" + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "ws": "~3.3.1" } }, "engine.io-client": { @@ -2218,14 +2224,14 @@ "requires": { "component-emitter": "1.2.1", "component-inherit": "0.0.3", - "debug": "3.1.0", - "engine.io-parser": "2.1.2", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", "has-cors": "1.1.0", "indexof": "0.0.1", "parseqs": "0.0.5", "parseuri": "0.0.5", - "ws": "3.3.3", - "xmlhttprequest-ssl": "1.5.5", + "ws": "~3.3.1", + "xmlhttprequest-ssl": "~1.5.4", "yeast": "0.1.2" } }, @@ -2235,10 +2241,10 @@ "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==", "requires": { "after": "0.8.2", - "arraybuffer.slice": "0.0.7", + "arraybuffer.slice": "~0.0.7", "base64-arraybuffer": "0.1.5", "blob": "0.0.4", - "has-binary2": "1.0.3" + "has-binary2": "~1.0.2" } }, "error-ex": { @@ -2246,7 +2252,7 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "es-abstract": { @@ -2254,11 +2260,11 @@ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", "requires": { - "es-to-primitive": "1.2.0", - "function-bind": "1.1.1", - "has": "1.0.3", - "is-callable": "1.1.4", - "is-regex": "1.0.4" + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" } }, "es-to-primitive": { @@ -2266,9 +2272,9 @@ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", "requires": { - "is-callable": "1.1.4", - "is-date-object": "1.0.1", - "is-symbol": "1.0.2" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" } }, "es6-promise": { @@ -2288,44 +2294,44 @@ "integrity": "sha512-hgrDtGWz368b7Wqf+v1Z69O3ZebNR0+GA7PtDdbmuz4rInFVUV9uw7whjZEiWyLzCjVb5Rs5WRN1TAS6eo7AYA==", "dev": true, "requires": { - "@babel/code-frame": "7.0.0", - "ajv": "6.5.4", - "chalk": "2.4.1", - "cross-spawn": "6.0.5", - "debug": "4.1.0", - "doctrine": "2.1.0", - "eslint-scope": "4.0.0", - "eslint-utils": "1.3.1", - "eslint-visitor-keys": "1.0.0", - "espree": "4.0.0", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.3", - "globals": "11.8.0", - "ignore": "4.0.6", - "imurmurhash": "0.1.4", - "inquirer": "6.2.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.12.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.0", - "regexpp": "2.0.1", - "require-uncached": "1.0.3", - "semver": "5.5.1", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", - "table": "4.0.3", - "text-table": "0.2.0" + "@babel/code-frame": "^7.0.0", + "ajv": "^6.5.3", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^2.1.0", + "eslint-scope": "^4.0.0", + "eslint-utils": "^1.3.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^4.0.0", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.7.0", + "ignore": "^4.0.6", + "imurmurhash": "^0.1.4", + "inquirer": "^6.1.0", + "is-resolvable": "^1.1.0", + "js-yaml": "^3.12.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.5", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^2.0.0", + "require-uncached": "^1.0.3", + "semver": "^5.5.1", + "strip-ansi": "^4.0.0", + "strip-json-comments": "^2.0.1", + "table": "^4.0.3", + "text-table": "^0.2.0" }, "dependencies": { "@babel/code-frame": { @@ -2334,7 +2340,7 @@ "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", "dev": true, "requires": { - "@babel/highlight": "7.0.0" + "@babel/highlight": "^7.0.0" } }, "@babel/highlight": { @@ -2343,9 +2349,9 @@ "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", "dev": true, "requires": { - "chalk": "2.4.1", - "esutils": "2.0.2", - "js-tokens": "4.0.0" + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" } }, "acorn-jsx": { @@ -2354,7 +2360,7 @@ "integrity": "sha512-JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw==", "dev": true, "requires": { - "acorn": "5.7.3" + "acorn": "^5.0.3" } }, "ajv": { @@ -2363,10 +2369,10 @@ "integrity": "sha512-4Wyjt8+t6YszqaXnLDfMmG/8AlO5Zbcsy3ATHncCzjW/NoPzAId8AK6749Ybjmdt+kUY1gP60fCu46oDxPv/mg==", "dev": true, "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, "ajv-keywords": { @@ -2393,11 +2399,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.5.1", - "shebang-command": "1.2.0", - "which": "1.3.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "debug": { @@ -2406,7 +2412,7 @@ "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", "dev": true, "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "eslint-scope": { @@ -2415,8 +2421,8 @@ "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", "dev": true, "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "espree": { @@ -2425,8 +2431,8 @@ "integrity": "sha512-kapdTCt1bjmspxStVKX6huolXVV5ZfyZguY1lcfhVVZstce3bqxH9mcLzNn3/mlgW6wQ732+0fuG9v7h0ZQoKg==", "dev": true, "requires": { - "acorn": "5.7.3", - "acorn-jsx": "4.1.1" + "acorn": "^5.6.0", + "acorn-jsx": "^4.1.1" } }, "external-editor": { @@ -2435,9 +2441,9 @@ "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", "dev": true, "requires": { - "chardet": "0.7.0", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" } }, "fast-deep-equal": { @@ -2464,19 +2470,19 @@ "integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==", "dev": true, "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "3.0.3", - "figures": "2.0.0", - "lodash": "4.17.11", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.0", + "figures": "^2.0.0", + "lodash": "^4.17.10", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rxjs": "6.3.3", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rxjs": "^6.1.0", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" } }, "js-tokens": { @@ -2503,7 +2509,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "table": { @@ -2512,12 +2518,12 @@ "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", "dev": true, "requires": { - "ajv": "6.5.4", - "ajv-keywords": "3.2.0", - "chalk": "2.4.1", - "lodash": "4.17.11", + "ajv": "^6.0.1", + "ajv-keywords": "^3.0.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "string-width": "^2.1.1" } } } @@ -2528,7 +2534,7 @@ "integrity": "sha512-QYGfmzuc4q4J6XIhlp8vRKdI/fI0tQfQPy1dME3UOLprE+v4ssH/3W9LM2Q7h5qBcy5m0ehCrBDU2YF8q6OY8w==", "dev": true, "requires": { - "get-stdin": "6.0.0" + "get-stdin": "^6.0.0" } }, "eslint-config-standard": { @@ -2546,8 +2552,8 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", "requires": { - "debug": "2.6.9", - "resolve": "1.8.1" + "debug": "^2.6.9", + "resolve": "^1.5.0" }, "dependencies": { "debug": { @@ -2565,8 +2571,8 @@ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", "requires": { - "debug": "2.6.9", - "pkg-dir": "1.0.0" + "debug": "^2.6.8", + "pkg-dir": "^1.0.0" }, "dependencies": { "debug": { @@ -2585,8 +2591,8 @@ "integrity": "sha512-9XcVyZiQRVeFjqHw8qHNDAZcQLqaHlOGGpeYqzYh8S4JYCWTCO3yzyen8yVmA5PratfzTRWDwCOFphtDEG+w/w==", "dev": true, "requires": { - "eslint-utils": "1.3.1", - "regexpp": "2.0.1" + "eslint-utils": "^1.3.0", + "regexpp": "^2.0.0" } }, "eslint-plugin-import": { @@ -2594,16 +2600,16 @@ "resolved": "http://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz", "integrity": "sha1-JgAu+/ylmJtyiKwEdQi9JPIXsWk=", "requires": { - "builtin-modules": "1.1.1", - "contains-path": "0.1.0", - "debug": "2.6.9", + "builtin-modules": "^1.1.1", + "contains-path": "^0.1.0", + "debug": "^2.6.8", "doctrine": "1.5.0", - "eslint-import-resolver-node": "0.3.2", - "eslint-module-utils": "2.2.0", - "has": "1.0.3", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "read-pkg-up": "2.0.0" + "eslint-import-resolver-node": "^0.3.1", + "eslint-module-utils": "^2.1.1", + "has": "^1.0.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.3", + "read-pkg-up": "^2.0.0" }, "dependencies": { "debug": { @@ -2619,8 +2625,8 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" + "esutils": "^2.0.2", + "isarray": "^1.0.0" } } } @@ -2631,12 +2637,12 @@ "integrity": "sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw==", "dev": true, "requires": { - "eslint-plugin-es": "1.3.1", - "eslint-utils": "1.3.1", - "ignore": "4.0.6", - "minimatch": "3.0.4", - "resolve": "1.8.1", - "semver": "5.5.1" + "eslint-plugin-es": "^1.3.1", + "eslint-utils": "^1.3.1", + "ignore": "^4.0.2", + "minimatch": "^3.0.4", + "resolve": "^1.8.1", + "semver": "^5.5.0" }, "dependencies": { "ignore": { @@ -2653,8 +2659,8 @@ "integrity": "sha512-CStQYJgALoQBw3FsBzH0VOVDRnJ/ZimUlpLm226U8qgqYJfPOY/CPK6wyRInMxh73HSKg5wyRwdS4BVYYHwokA==", "dev": true, "requires": { - "fast-diff": "1.2.0", - "jest-docblock": "21.2.0" + "fast-diff": "^1.1.1", + "jest-docblock": "^21.0.0" } }, "eslint-plugin-promise": { @@ -2667,10 +2673,10 @@ "resolved": "http://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz", "integrity": "sha512-KC7Snr4YsWZD5flu6A5c0AcIZidzW3Exbqp7OT67OaD2AppJtlBr/GuPrW/vaQM/yfZotEvKAdrxrO+v8vwYJA==", "requires": { - "doctrine": "2.1.0", - "has": "1.0.3", - "jsx-ast-utils": "2.0.1", - "prop-types": "15.6.2" + "doctrine": "^2.0.2", + "has": "^1.0.1", + "jsx-ast-utils": "^2.0.1", + "prop-types": "^15.6.0" } }, "eslint-plugin-standard": { @@ -2683,8 +2689,8 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint-utils": { @@ -2703,8 +2709,8 @@ "resolved": "http://registry.npmjs.org/espree/-/espree-3.5.4.tgz", "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "requires": { - "acorn": "5.7.3", - "acorn-jsx": "3.0.1" + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" } }, "esprima": { @@ -2717,7 +2723,7 @@ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "esrecurse": { @@ -2725,7 +2731,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.1.0" } }, "estraverse": { @@ -2744,14 +2750,14 @@ "integrity": "sha512-dGXNg4F/FgVzlApjzItL+7naHutA3fDqbV/zAZqDDlXTjiMnQmZKu+prImWKszeBM5UQeGvAl3u1wBiKeDh61g==", "dev": true, "requires": { - "duplexer": "0.1.1", - "flatmap-stream": "0.1.1", - "from": "0.1.7", + "duplexer": "^0.1.1", + "flatmap-stream": "^0.1.0", + "from": "^0.1.7", "map-stream": "0.0.7", - "pause-stream": "0.0.11", - "split": "1.0.1", - "stream-combiner": "0.2.2", - "through": "2.3.8" + "pause-stream": "^0.0.11", + "split": "^1.0.1", + "stream-combiner": "^0.2.2", + "through": "^2.3.8" } }, "evp_bytestokey": { @@ -2759,8 +2765,8 @@ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "requires": { - "md5.js": "1.3.5", - "safe-buffer": "5.1.2" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, "execa": { @@ -2768,13 +2774,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "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" } }, "expand-brackets": { @@ -2783,7 +2789,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "optional": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -2792,7 +2798,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "optional": true, "requires": { - "fill-range": "2.2.4" + "fill-range": "^2.1.0" } }, "extend": { @@ -2806,8 +2812,8 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -2815,7 +2821,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -2825,9 +2831,9 @@ "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" } }, "extglob": { @@ -2836,7 +2842,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "optional": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "extsprintf": { @@ -2876,7 +2882,7 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { @@ -2884,8 +2890,8 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" } }, "filename-regex": { @@ -2900,11 +2906,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "optional": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.1.0", - "repeat-element": "1.1.3", - "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" } }, "find-root": { @@ -2917,7 +2923,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "flat-cache": { @@ -2925,10 +2931,10 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "requires": { - "circular-json": "0.3.3", - "del": "2.2.2", - "graceful-fs": "4.1.11", - "write": "0.2.1" + "circular-json": "^0.3.1", + "del": "^2.0.2", + "graceful-fs": "^4.1.2", + "write": "^0.2.1" } }, "flatmap-stream": { @@ -2949,7 +2955,7 @@ "integrity": "sha512-JTnCiuaAm66gGuizv4g46MqN1QVldPxySn9DxZ+hCjMaEGFx6ciJhz0iMfS5iv1YKqZo5pBW6qFJ9Zu0jaqvaw==", "dev": true, "requires": { - "lodash.merge": "4.6.1" + "lodash.merge": "^4.6.1" } }, "follow-redirects": { @@ -2957,7 +2963,7 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.9.tgz", "integrity": "sha512-Bh65EZI/RU8nx0wbYF9shkFZlqLP+6WT/5FnA3cE/djNSuKNHJEinGGZgu/cQEkeeb2GdFOgenAmn8qaqYke2w==", "requires": { - "debug": "3.1.0" + "debug": "=3.1.0" } }, "for-each": { @@ -2965,7 +2971,7 @@ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "requires": { - "is-callable": "1.1.4" + "is-callable": "^1.1.3" } }, "for-in": { @@ -2979,7 +2985,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "optional": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "forever-agent": { @@ -2994,9 +3000,9 @@ "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "dev": true, "requires": { - "asynckit": "0.4.0", + "asynckit": "^0.4.0", "combined-stream": "1.0.6", - "mime-types": "2.1.20" + "mime-types": "^2.1.12" }, "dependencies": { "combined-stream": { @@ -3005,7 +3011,7 @@ "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "dev": true, "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } } } @@ -3021,7 +3027,7 @@ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fresh": { @@ -3042,8 +3048,8 @@ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "requires": { - "inherits": "2.0.1", - "readable-stream": "2.3.6" + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" } }, "fs-readdir-recursive": { @@ -3062,8 +3068,8 @@ "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", "optional": true, "requires": { - "nan": "2.11.1", - "node-pre-gyp": "0.10.0" + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" }, "dependencies": { "abbrev": { @@ -3089,8 +3095,8 @@ "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "balanced-match": { @@ -3103,7 +3109,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -3167,7 +3173,7 @@ "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "fs.realpath": { @@ -3182,14 +3188,14 @@ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "optional": 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" } }, "glob": { @@ -3198,12 +3204,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "optional": 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" } }, "has-unicode": { @@ -3218,7 +3224,7 @@ "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", "optional": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "^2.1.0" } }, "ignore-walk": { @@ -3227,7 +3233,7 @@ "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "optional": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "inflight": { @@ -3236,8 +3242,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -3256,7 +3262,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" } }, "isarray": { @@ -3270,7 +3276,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -3283,8 +3289,8 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.4.tgz", "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" } }, "minizlib": { @@ -3293,7 +3299,7 @@ "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "mkdirp": { @@ -3316,9 +3322,9 @@ "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", "optional": true, "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, "node-pre-gyp": { @@ -3327,16 +3333,16 @@ "integrity": "sha512-G7kEonQLRbcA/mOoFoxvlMrw6Q6dPf92+t/l0DFSMuSlDoWaI9JWIyPwK0jyE1bph//CUEL65/Fz1m2vJbmjQQ==", "optional": true, "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.7", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" + "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": { @@ -3345,8 +3351,8 @@ "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "optional": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npm-bundled": { @@ -3361,8 +3367,8 @@ "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", "optional": true, "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, "npmlog": { @@ -3371,10 +3377,10 @@ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "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" + "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": { @@ -3393,7 +3399,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -3414,8 +3420,8 @@ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "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": { @@ -3436,10 +3442,10 @@ "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", "optional": true, "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "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": { @@ -3456,13 +3462,13 @@ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "optional": true, "requires": { - "core-util-is": "1.0.2", - "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.2" + "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": { @@ -3471,7 +3477,7 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "optional": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { @@ -3514,9 +3520,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": { @@ -3525,7 +3531,7 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "optional": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -3533,7 +3539,7 @@ "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-json-comments": { @@ -3548,13 +3554,13 @@ "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", "optional": true, "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "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" } }, "util-deprecate": { @@ -3569,7 +3575,7 @@ "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { @@ -3626,7 +3632,7 @@ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "git-clone": { @@ -3639,12 +3645,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.1", - "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": { @@ -3653,8 +3659,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "optional": true, "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -3662,7 +3668,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "global-dirs": { @@ -3671,7 +3677,7 @@ "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "dev": true, "requires": { - "ini": "1.3.5" + "ini": "^1.3.4" } }, "globals": { @@ -3684,12 +3690,12 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.3", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "pify": { @@ -3705,23 +3711,23 @@ "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", "dev": true, "requires": { - "@sindresorhus/is": "0.7.0", - "cacheable-request": "2.1.4", - "decompress-response": "3.3.0", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "into-stream": "3.1.0", - "is-retry-allowed": "1.1.0", - "isurl": "1.0.0", - "lowercase-keys": "1.0.1", - "mimic-response": "1.0.1", - "p-cancelable": "0.4.1", - "p-timeout": "2.0.1", - "pify": "3.0.0", - "safe-buffer": "5.1.2", - "timed-out": "4.0.1", - "url-parse-lax": "3.0.0", - "url-to-options": "1.0.1" + "@sindresorhus/is": "^0.7.0", + "cacheable-request": "^2.1.1", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "into-stream": "^3.1.0", + "is-retry-allowed": "^1.1.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "mimic-response": "^1.0.0", + "p-cancelable": "^0.4.0", + "p-timeout": "^2.0.1", + "pify": "^3.0.0", + "safe-buffer": "^5.1.1", + "timed-out": "^4.0.1", + "url-parse-lax": "^3.0.0", + "url-to-options": "^1.0.1" } }, "graceful-fs": { @@ -3746,8 +3752,8 @@ "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", "dev": true, "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" + "ajv": "^5.3.0", + "har-schema": "^2.0.0" } }, "has": { @@ -3755,7 +3761,7 @@ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.1.1" } }, "has-ansi": { @@ -3763,7 +3769,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-binary2": { @@ -3808,7 +3814,7 @@ "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", "dev": true, "requires": { - "has-symbol-support-x": "1.4.2" + "has-symbol-support-x": "^1.4.1" } }, "has-value": { @@ -3816,9 +3822,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "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" }, "dependencies": { "isobject": { @@ -3833,8 +3839,8 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { @@ -3842,7 +3848,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -3850,7 +3856,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -3860,7 +3866,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -3870,8 +3876,8 @@ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "hash.js": { @@ -3879,8 +3885,8 @@ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" }, "dependencies": { "inherits": { @@ -3900,9 +3906,9 @@ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { - "hash.js": "1.1.5", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, "home-or-tmp": { @@ -3910,8 +3916,8 @@ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" } }, "hosted-git-info": { @@ -3931,9 +3937,9 @@ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.14.2" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "iconv-lite": { @@ -3941,7 +3947,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "ieee754": { @@ -3987,8 +3993,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -4006,20 +4012,20 @@ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.11", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" }, "dependencies": { "ansi-regex": { @@ -4032,7 +4038,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -4043,8 +4049,8 @@ "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", "dev": true, "requires": { - "from2": "2.3.0", - "p-is-promise": "1.1.0" + "from2": "^2.1.1", + "p-is-promise": "^1.1.0" } }, "invariant": { @@ -4052,7 +4058,7 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -4065,7 +4071,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-arrayish": { @@ -4078,7 +4084,7 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "requires": { - "binary-extensions": "1.12.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -4091,7 +4097,7 @@ "resolved": "http://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-callable": { @@ -4105,7 +4111,7 @@ "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", "dev": true, "requires": { - "ci-info": "1.6.0" + "ci-info": "^1.5.0" } }, "is-data-descriptor": { @@ -4113,7 +4119,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-date-object": { @@ -4126,9 +4132,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "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": { @@ -4150,7 +4156,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "optional": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -4168,7 +4174,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-fullwidth-code-point": { @@ -4176,7 +4182,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-glob": { @@ -4184,7 +4190,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-installed-globally": { @@ -4193,8 +4199,8 @@ "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "dev": true, "requires": { - "global-dirs": "0.1.1", - "is-path-inside": "1.0.1" + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" } }, "is-npm": { @@ -4209,7 +4215,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-obj": { @@ -4234,7 +4240,7 @@ "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "requires": { - "is-path-inside": "1.0.1" + "is-path-inside": "^1.0.0" } }, "is-path-inside": { @@ -4242,7 +4248,7 @@ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.1" } }, "is-plain-obj": { @@ -4256,7 +4262,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -4294,7 +4300,7 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "requires": { - "has": "1.0.3" + "has": "^1.0.1" } }, "is-resolvable": { @@ -4318,7 +4324,7 @@ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", "requires": { - "has-symbols": "1.0.0" + "has-symbols": "^1.0.0" } }, "is-typedarray": { @@ -4363,8 +4369,8 @@ "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", "dev": true, "requires": { - "has-to-string-tag-x": "1.4.1", - "is-object": "1.0.1" + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" } }, "jest-docblock": { @@ -4383,8 +4389,8 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsbn": { @@ -4454,7 +4460,7 @@ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", "requires": { - "array-includes": "3.0.3" + "array-includes": "^3.0.3" } }, "just-extend": { @@ -4468,10 +4474,10 @@ "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", "requires": { - "bindings": "1.3.0", - "inherits": "2.0.3", - "nan": "2.11.1", - "safe-buffer": "5.1.2" + "bindings": "^1.2.1", + "inherits": "^2.0.3", + "nan": "^2.2.1", + "safe-buffer": "^5.1.0" }, "dependencies": { "inherits": { @@ -4495,7 +4501,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "kubernetes-client": { @@ -4505,9 +4511,9 @@ "dev": true, "requires": { "fluent-openapi": "0.1.1", - "js-yaml": "3.12.0", - "openid-client": "2.4.2", - "request": "2.88.0" + "js-yaml": "^3.10.0", + "openid-client": "^2.0.0", + "request": "^2.83.0" } }, "latest-version": { @@ -4516,7 +4522,7 @@ "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", "dev": true, "requires": { - "package-json": "4.0.1" + "package-json": "^4.0.0" } }, "lcid": { @@ -4524,7 +4530,7 @@ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "lcov-parse": { @@ -4538,8 +4544,8 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "load-json-file": { @@ -4547,10 +4553,10 @@ "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "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" }, "dependencies": { "pify": { @@ -4565,8 +4571,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "lodash": { @@ -4674,7 +4680,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0 || ^4.0.0" } }, "lowercase-keys": { @@ -4688,8 +4694,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "make-dir": { @@ -4697,7 +4703,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "map-cache": { @@ -4716,7 +4722,7 @@ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "math-random": { @@ -4730,9 +4736,9 @@ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, "media-typer": { @@ -4746,7 +4752,7 @@ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "merge-descriptors": { @@ -4772,19 +4778,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "optional": 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" } }, "mime": { @@ -4803,7 +4809,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", "requires": { - "mime-db": "1.36.0" + "mime-db": "~1.36.0" } }, "mimic-fn": { @@ -4832,7 +4838,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -4845,8 +4851,8 @@ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -4854,7 +4860,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -4895,12 +4901,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.1", - "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" } }, "supports-color": { @@ -4908,7 +4914,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -4933,17 +4939,17 @@ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "arr-diff": { @@ -4997,10 +5003,10 @@ "dev": true, "requires": { "@sinonjs/formatio": "3.0.0", - "just-extend": "3.0.0", - "lolex": "2.7.5", - "path-to-regexp": "1.7.0", - "text-encoding": "0.6.4" + "just-extend": "^3.0.0", + "lolex": "^2.3.2", + "path-to-regexp": "^1.7.0", + "text-encoding": "^0.6.4" }, "dependencies": { "@sinonjs/formatio": { @@ -5024,7 +5030,7 @@ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", "requires": { - "lodash.toarray": "4.4.0" + "lodash.toarray": "^4.4.0" } }, "node-forge": { @@ -5039,21 +5045,21 @@ "integrity": "sha512-RE3P8l60Rj9ELrpPmvw6sOQ1hSyYfmQdNUMCa4EN7nCE1ux5JVX+GfXv+mfUTEMhZwNMwxBtI0+X1CKKeukSVQ==", "dev": true, "requires": { - "base64url": "3.0.0", - "es6-promise": "4.2.5", - "lodash.assign": "4.2.0", - "lodash.clone": "4.5.0", - "lodash.fill": "3.4.0", - "lodash.flatten": "4.4.0", - "lodash.intersection": "4.4.0", - "lodash.merge": "4.6.1", - "lodash.omit": "4.5.0", - "lodash.partialright": "4.2.1", - "lodash.pick": "4.4.0", - "lodash.uniq": "4.5.0", - "long": "4.0.0", - "node-forge": "0.7.6", - "uuid": "3.3.2" + "base64url": "^3.0.0", + "es6-promise": "^4.0.5", + "lodash.assign": "^4.0.8", + "lodash.clone": "^4.3.2", + "lodash.fill": "^3.2.2", + "lodash.flatten": "^4.2.0", + "lodash.intersection": "^4.1.2", + "lodash.merge": "^4.3.5", + "lodash.omit": "^4.2.1", + "lodash.partialright": "^4.1.3", + "lodash.pick": "^4.2.0", + "lodash.uniq": "^4.2.1", + "long": "^4.0.0", + "node-forge": "^0.7.1", + "uuid": "^3.0.1" } }, "node-mocks-http": { @@ -5062,16 +5068,16 @@ "integrity": "sha512-n7fj7BzRNjhQuWU/xcoRH/aOOPeLg3qMJx3mUDjwheoEmZGkThhhGMTxJZ5nnSUcXmEU1uS3gFq3VdBMhS5ZxQ==", "dev": true, "requires": { - "accepts": "1.3.5", - "depd": "1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "mime": "1.6.0", - "net": "1.0.2", - "parseurl": "1.3.2", - "range-parser": "1.2.0", - "type-is": "1.6.16" + "accepts": "^1.3.5", + "depd": "^1.1.0", + "fresh": "^0.5.2", + "merge-descriptors": "^1.0.1", + "methods": "^1.1.2", + "mime": "^1.3.4", + "net": "^1.0.2", + "parseurl": "^1.3.1", + "range-parser": "^1.2.0", + "type-is": "^1.6.16" } }, "nodemon": { @@ -5080,16 +5086,16 @@ "integrity": "sha512-hyK6vl65IPnky/ee+D3IWvVGgJa/m3No2/Xc/3wanS6Ce1MWjCzH6NnhPJ/vZM+6JFym16jtHx51lmCMB9HDtg==", "dev": true, "requires": { - "chokidar": "2.0.4", - "debug": "3.1.0", - "ignore-by-default": "1.0.1", - "minimatch": "3.0.4", - "pstree.remy": "1.1.0", - "semver": "5.5.1", - "supports-color": "5.5.0", - "touch": "3.1.0", - "undefsafe": "2.0.2", - "update-notifier": "2.5.0" + "chokidar": "^2.0.2", + "debug": "^3.1.0", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.0", + "semver": "^5.5.0", + "supports-color": "^5.2.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.2", + "update-notifier": "^2.3.0" }, "dependencies": { "anymatch": { @@ -5098,8 +5104,8 @@ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" } }, "arr-diff": { @@ -5120,16 +5126,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -5138,7 +5144,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5149,19 +5155,19 @@ "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", "dev": true, "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.1", - "braces": "2.3.2", - "fsevents": "1.2.4", - "glob-parent": "3.1.0", - "inherits": "2.0.1", - "is-binary-path": "1.0.1", - "is-glob": "4.0.0", - "lodash.debounce": "4.0.8", - "normalize-path": "2.1.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1", - "upath": "1.1.0" + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.2.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "lodash.debounce": "^4.0.8", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.5" } }, "expand-brackets": { @@ -5170,13 +5176,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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { "debug": { @@ -5194,7 +5200,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -5203,7 +5209,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -5212,7 +5218,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -5221,7 +5227,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5232,7 +5238,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -5241,7 +5247,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5252,9 +5258,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": { @@ -5271,14 +5277,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { @@ -5287,7 +5293,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -5296,7 +5302,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5307,10 +5313,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" }, "dependencies": { "extend-shallow": { @@ -5319,7 +5325,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5330,8 +5336,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { @@ -5340,7 +5346,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -5351,7 +5357,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -5360,7 +5366,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -5369,9 +5375,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-extglob": { @@ -5386,7 +5392,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } }, "is-number": { @@ -5395,7 +5401,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -5404,7 +5410,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5427,19 +5433,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } }, "supports-color": { @@ -5448,7 +5454,7 @@ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -5458,7 +5464,7 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } }, "normalize-package-data": { @@ -5466,10 +5472,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.7.1", - "is-builtin-module": "1.0.0", - "semver": "5.5.1", - "validate-npm-package-license": "3.0.4" + "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": { @@ -5477,7 +5483,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "normalize-url": { @@ -5486,9 +5492,9 @@ "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", "dev": true, "requires": { - "prepend-http": "2.0.0", - "query-string": "5.1.1", - "sort-keys": "2.0.0" + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" } }, "npm-run-path": { @@ -5496,7 +5502,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -5509,33 +5515,33 @@ "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.9.0.tgz", "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", "requires": { - "archy": "1.0.0", - "arrify": "1.0.1", - "caching-transform": "1.0.1", - "convert-source-map": "1.5.1", - "debug-log": "1.0.1", - "default-require-extensions": "1.0.0", - "find-cache-dir": "0.1.1", - "find-up": "2.1.0", - "foreground-child": "1.5.6", - "glob": "7.1.2", - "istanbul-lib-coverage": "1.2.0", - "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "1.10.1", - "istanbul-lib-report": "1.1.3", - "istanbul-lib-source-maps": "1.2.3", - "istanbul-reports": "1.4.0", - "md5-hex": "1.3.0", - "merge-source-map": "1.1.0", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "resolve-from": "2.0.0", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "spawn-wrap": "1.4.2", - "test-exclude": "4.2.1", + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^1.0.0", + "convert-source-map": "^1.5.1", + "debug-log": "^1.0.1", + "default-require-extensions": "^1.0.0", + "find-cache-dir": "^0.1.1", + "find-up": "^2.1.0", + "foreground-child": "^1.5.3", + "glob": "^7.0.6", + "istanbul-lib-coverage": "^1.1.2", + "istanbul-lib-hook": "^1.1.0", + "istanbul-lib-instrument": "^1.10.0", + "istanbul-lib-report": "^1.1.3", + "istanbul-lib-source-maps": "^1.2.3", + "istanbul-reports": "^1.4.0", + "md5-hex": "^1.2.0", + "merge-source-map": "^1.1.0", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.0", + "resolve-from": "^2.0.0", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.1", + "spawn-wrap": "^1.4.2", + "test-exclude": "^4.2.0", "yargs": "11.1.0", - "yargs-parser": "8.1.0" + "yargs-parser": "^8.0.0" }, "dependencies": { "align-text": { @@ -5543,9 +5549,9 @@ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "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" } }, "amdefine": { @@ -5568,7 +5574,7 @@ "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", "requires": { - "default-require-extensions": "1.0.0" + "default-require-extensions": "^1.0.0" } }, "archy": { @@ -5621,9 +5627,9 @@ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" } }, "babel-generator": { @@ -5631,14 +5637,14 @@ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" } }, "babel-messages": { @@ -5646,7 +5652,7 @@ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-runtime": { @@ -5654,8 +5660,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "2.5.6", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -5663,11 +5669,11 @@ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.10" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { @@ -5675,15 +5681,15 @@ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.10" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" } }, "babel-types": { @@ -5691,10 +5697,10 @@ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -5712,13 +5718,13 @@ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "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" }, "dependencies": { "define-property": { @@ -5726,7 +5732,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -5734,7 +5740,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -5742,7 +5748,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -5750,9 +5756,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -5772,7 +5778,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -5781,16 +5787,16 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -5798,7 +5804,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5813,15 +5819,15 @@ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "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" }, "dependencies": { "isobject": { @@ -5836,9 +5842,9 @@ "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" } }, "camelcase": { @@ -5853,8 +5859,8 @@ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "optional": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chalk": { @@ -5862,11 +5868,11 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "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" } }, "class-utils": { @@ -5874,10 +5880,10 @@ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -5885,7 +5891,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "isobject": { @@ -5901,8 +5907,8 @@ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "optional": 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" }, "dependencies": { @@ -5924,8 +5930,8 @@ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "commondir": { @@ -5963,8 +5969,8 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", "requires": { - "lru-cache": "4.1.3", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } }, "debug": { @@ -5995,7 +6001,7 @@ "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", "requires": { - "strip-bom": "2.0.0" + "strip-bom": "^2.0.0" } }, "define-property": { @@ -6003,8 +6009,8 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -6012,7 +6018,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -6020,7 +6026,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -6028,9 +6034,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -6050,7 +6056,7 @@ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "error-ex": { @@ -6058,7 +6064,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" } }, "escape-string-regexp": { @@ -6076,13 +6082,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "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" }, "dependencies": { "cross-spawn": { @@ -6090,9 +6096,9 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } } } @@ -6102,13 +6108,13 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -6116,7 +6122,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -6124,7 +6130,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -6134,8 +6140,8 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -6143,7 +6149,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -6153,14 +6159,14 @@ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { @@ -6168,7 +6174,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -6176,7 +6182,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -6184,7 +6190,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -6192,7 +6198,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -6200,9 +6206,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { @@ -6217,10 +6223,10 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "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" }, "dependencies": { "extend-shallow": { @@ -6228,7 +6234,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -6238,9 +6244,9 @@ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" } }, "find-up": { @@ -6248,7 +6254,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "for-in": { @@ -6261,8 +6267,8 @@ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" + "cross-spawn": "^4", + "signal-exit": "^3.0.0" } }, "fragment-cache": { @@ -6270,7 +6276,7 @@ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fs.realpath": { @@ -6298,12 +6304,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "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" } }, "globals": { @@ -6321,10 +6327,10 @@ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "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": { "source-map": { @@ -6332,7 +6338,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -6342,7 +6348,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { @@ -6355,9 +6361,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "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" }, "dependencies": { "isobject": { @@ -6372,8 +6378,8 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { @@ -6381,7 +6387,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -6389,7 +6395,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -6399,7 +6405,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -6419,8 +6425,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -6433,7 +6439,7 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -6446,7 +6452,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-arrayish": { @@ -6464,7 +6470,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": { @@ -6472,7 +6478,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-descriptor": { @@ -6480,9 +6486,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "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": { @@ -6502,7 +6508,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-fullwidth-code-point": { @@ -6515,7 +6521,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-odd": { @@ -6523,7 +6529,7 @@ "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", "requires": { - "is-number": "4.0.0" + "is-number": "^4.0.0" }, "dependencies": { "is-number": { @@ -6538,7 +6544,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -6588,7 +6594,7 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", "requires": { - "append-transform": "0.4.0" + "append-transform": "^0.4.0" } }, "istanbul-lib-instrument": { @@ -6596,13 +6602,13 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", "requires": { - "babel-generator": "6.26.1", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.2.0", - "semver": "5.5.0" + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.0", + "semver": "^5.3.0" } }, "istanbul-lib-report": { @@ -6610,10 +6616,10 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz", "integrity": "sha512-D4jVbMDtT2dPmloPJS/rmeP626N5Pr3Rp+SovrPn1+zPChGHcggd/0sL29jnbm4oK9W0wHjCRsdch9oLd7cm6g==", "requires": { - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" }, "dependencies": { "supports-color": { @@ -6621,7 +6627,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -6631,11 +6637,11 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz", "integrity": "sha512-fDa0hwU/5sDXwAklXgAoCJCOsFsBplVQ6WBldz5UwaqOzmDhUK4nfuR7/G//G2lERlblUNJB8P6e8cXq3a7MlA==", "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" }, "dependencies": { "debug": { @@ -6653,7 +6659,7 @@ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.4.0.tgz", "integrity": "sha512-OPzVo1fPZ2H+owr8q/LYKLD+vquv9Pj4F+dj808MdHbuQLD7S4ACRjcX+0Tne5Vxt2lxXvdZaL7v+FOOAV281w==", "requires": { - "handlebars": "4.0.11" + "handlebars": "^4.0.3" } }, "js-tokens": { @@ -6671,7 +6677,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lazy-cache": { @@ -6685,7 +6691,7 @@ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "load-json-file": { @@ -6693,11 +6699,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": { @@ -6705,8 +6711,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" }, "dependencies": { "path-exists": { @@ -6731,7 +6737,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "lru-cache": { @@ -6739,8 +6745,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "map-cache": { @@ -6753,7 +6759,7 @@ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "md5-hex": { @@ -6761,7 +6767,7 @@ "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { @@ -6774,7 +6780,7 @@ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "merge-source-map": { @@ -6782,7 +6788,7 @@ "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", "requires": { - "source-map": "0.6.1" + "source-map": "^0.6.1" }, "dependencies": { "source-map": { @@ -6797,19 +6803,19 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "dependencies": { "kind-of": { @@ -6829,7 +6835,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -6842,8 +6848,8 @@ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -6851,7 +6857,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -6874,18 +6880,18 @@ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-odd": "^2.0.0", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "arr-diff": { @@ -6910,10 +6916,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.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "npm-run-path": { @@ -6921,7 +6927,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -6939,9 +6945,9 @@ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "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": { @@ -6949,7 +6955,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -6959,7 +6965,7 @@ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" }, "dependencies": { "isobject": { @@ -6974,7 +6980,7 @@ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -6989,7 +6995,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "optimist": { @@ -6997,8 +7003,8 @@ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "os-homedir": { @@ -7011,9 +7017,9 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "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" } }, "p-finally": { @@ -7026,7 +7032,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -7034,7 +7040,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { - "p-limit": "1.2.0" + "p-limit": "^1.1.0" } }, "p-try": { @@ -7047,7 +7053,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" } }, "pascalcase": { @@ -7060,7 +7066,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": { @@ -7083,9 +7089,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" } }, "pify": { @@ -7103,7 +7109,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" } }, "pkg-dir": { @@ -7111,7 +7117,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" }, "dependencies": { "find-up": { @@ -7119,8 +7125,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" } } } @@ -7140,9 +7146,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": { @@ -7150,8 +7156,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" }, "dependencies": { "find-up": { @@ -7159,8 +7165,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" } } } @@ -7175,8 +7181,8 @@ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "repeat-element": { @@ -7194,7 +7200,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" } }, "require-directory": { @@ -7228,7 +7234,7 @@ "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "optional": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { @@ -7236,7 +7242,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-regex": { @@ -7244,7 +7250,7 @@ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "semver": { @@ -7262,10 +7268,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "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" }, "dependencies": { "extend-shallow": { @@ -7273,7 +7279,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -7283,7 +7289,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -7306,14 +7312,14 @@ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "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": "3.1.0" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "define-property": { @@ -7321,7 +7327,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -7329,7 +7335,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -7339,9 +7345,9 @@ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "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" }, "dependencies": { "define-property": { @@ -7349,7 +7355,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -7357,7 +7363,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -7365,7 +7371,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -7373,9 +7379,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -7395,7 +7401,7 @@ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "source-map": { @@ -7408,11 +7414,11 @@ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", "requires": { - "atob": "2.1.1", - "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": { @@ -7425,12 +7431,12 @@ "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.0" + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" } }, "spdx-correct": { @@ -7438,8 +7444,8 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -7452,8 +7458,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -7466,7 +7472,7 @@ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "static-extend": { @@ -7474,8 +7480,8 @@ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { @@ -7483,7 +7489,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -7493,8 +7499,8 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "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" }, "dependencies": { "ansi-regex": { @@ -7507,7 +7513,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -7517,7 +7523,7 @@ "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": { @@ -7525,7 +7531,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": { @@ -7543,11 +7549,11 @@ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", "requires": { - "arrify": "1.0.1", - "micromatch": "3.1.10", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" + "arrify": "^1.0.1", + "micromatch": "^3.1.8", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" }, "dependencies": { "arr-diff": { @@ -7565,16 +7571,16 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -7582,7 +7588,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -7592,13 +7598,13 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -7606,7 +7612,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -7614,7 +7620,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -7622,7 +7628,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -7630,7 +7636,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7640,7 +7646,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -7648,7 +7654,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7658,9 +7664,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "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": { @@ -7675,14 +7681,14 @@ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { @@ -7690,7 +7696,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -7698,7 +7704,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -7708,10 +7714,10 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "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" }, "dependencies": { "extend-shallow": { @@ -7719,7 +7725,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -7729,7 +7735,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -7737,7 +7743,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -7745,9 +7751,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-number": { @@ -7755,7 +7761,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -7763,7 +7769,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7783,19 +7789,19 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } @@ -7810,7 +7816,7 @@ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { @@ -7818,10 +7824,10 @@ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { @@ -7829,8 +7835,8 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "dependencies": { "is-number": { @@ -7838,7 +7844,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } } } @@ -7854,9 +7860,9 @@ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "optional": 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" }, "dependencies": { "yargs": { @@ -7865,9 +7871,9 @@ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "optional": 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" } } @@ -7884,10 +7890,10 @@ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "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": { "extend-shallow": { @@ -7895,7 +7901,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { @@ -7903,10 +7909,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "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" } } } @@ -7916,8 +7922,8 @@ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -7925,9 +7931,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "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": { @@ -7962,7 +7968,7 @@ "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.2" }, "dependencies": { "kind-of": { @@ -7977,8 +7983,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "which": { @@ -7986,7 +7992,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": { @@ -8010,8 +8016,8 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -8019,7 +8025,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" } }, "string-width": { @@ -8027,9 +8033,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" } } } @@ -8044,9 +8050,9 @@ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } }, "y18n": { @@ -8064,18 +8070,18 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", "requires": { - "cliui": "4.1.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": "9.0.2" + "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": "^9.0.2" }, "dependencies": { "ansi-regex": { @@ -8093,9 +8099,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" } }, "strip-ansi": { @@ -8103,7 +8109,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "yargs-parser": { @@ -8111,7 +8117,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } @@ -8121,7 +8127,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { @@ -8154,9 +8160,9 @@ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "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": { @@ -8164,7 +8170,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -8184,7 +8190,7 @@ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" }, "dependencies": { "isobject": { @@ -8200,8 +8206,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "optional": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "object.pick": { @@ -8209,7 +8215,7 @@ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -8225,7 +8231,7 @@ "integrity": "sha512-oLnVSEcNZkw01sB5aFR+2iJmW4oyC1PIMJmd3FMBGDuPTy5ZtEuX5WNhKMRarJIMOq8NiOwIB6eJB9AhgYwBTg==", "dev": true, "requires": { - "base64url": "3.0.0" + "base64url": "^3.0.0" } }, "once": { @@ -8233,7 +8239,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -8241,7 +8247,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "openid-client": { @@ -8250,14 +8256,14 @@ "integrity": "sha512-8HP7SCamsQKC8JGosk0Hs+qXfDyO5lojRW+gE6uW8Tjh4h/B8HzZeppyzo27p1Au0ziTKbI+umHuyZST/t6jXQ==", "dev": true, "requires": { - "base64url": "3.0.0", - "got": "8.3.2", - "lodash": "4.17.11", - "lru-cache": "4.1.3", - "node-jose": "1.0.0", - "oidc-token-hash": "3.0.1", - "p-any": "1.1.0", - "uuid": "3.3.2" + "base64url": "^3.0.0", + "got": "^8.3.2", + "lodash": "^4.17.11", + "lru-cache": "^4.1.3", + "node-jose": "^1.0.0", + "oidc-token-hash": "^3.0.1", + "p-any": "^1.1.0", + "uuid": "^3.3.2" } }, "optionator": { @@ -8265,12 +8271,12 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" } }, "os-homedir": { @@ -8283,9 +8289,9 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "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" } }, "os-tmpdir": { @@ -8298,9 +8304,9 @@ "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", "requires": { - "graceful-fs": "4.1.11", - "mkdirp": "0.5.1", - "object-assign": "4.1.1" + "graceful-fs": "^4.1.4", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.0" } }, "p-any": { @@ -8309,7 +8315,7 @@ "integrity": "sha512-Ef0tVa4CZ5pTAmKn+Cg3w8ABBXh+hHO1aV8281dKOoUHfX+3tjG2EaFcC+aZyagg9b4EYGsHEjz21DnEE8Og2g==", "dev": true, "requires": { - "p-some": "2.0.1" + "p-some": "^2.0.0" } }, "p-cancelable": { @@ -8334,7 +8340,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -8342,7 +8348,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { - "p-limit": "1.3.0" + "p-limit": "^1.1.0" } }, "p-some": { @@ -8351,7 +8357,7 @@ "integrity": "sha1-Zdh8ixVO289SIdFnd4ttLhUPbwY=", "dev": true, "requires": { - "aggregate-error": "1.0.0" + "aggregate-error": "^1.0.0" } }, "p-timeout": { @@ -8360,7 +8366,7 @@ "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", "dev": true, "requires": { - "p-finally": "1.0.0" + "p-finally": "^1.0.0" } }, "p-try": { @@ -8374,10 +8380,10 @@ "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", "dev": true, "requires": { - "got": "6.7.1", - "registry-auth-token": "3.3.2", - "registry-url": "3.1.0", - "semver": "5.5.1" + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" }, "dependencies": { "got": { @@ -8386,17 +8392,17 @@ "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "dev": true, "requires": { - "create-error-class": "3.0.2", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "is-redirect": "1.0.0", - "is-retry-allowed": "1.1.0", - "is-stream": "1.1.0", - "lowercase-keys": "1.0.1", - "safe-buffer": "5.1.2", - "timed-out": "4.0.1", - "unzip-response": "2.0.1", - "url-parse-lax": "1.0.0" + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" } }, "prepend-http": { @@ -8411,7 +8417,7 @@ "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "dev": true, "requires": { - "prepend-http": "1.0.4" + "prepend-http": "^1.0.1" } } } @@ -8422,10 +8428,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "optional": 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" } }, "parse-json": { @@ -8433,7 +8439,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "1.3.2" + "error-ex": "^1.2.0" } }, "parseqs": { @@ -8441,7 +8447,7 @@ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseuri": { @@ -8449,7 +8455,7 @@ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseurl": { @@ -8516,7 +8522,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { - "pify": "2.3.0" + "pify": "^2.0.0" }, "dependencies": { "pify": { @@ -8538,7 +8544,7 @@ "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", "dev": true, "requires": { - "through": "2.3.8" + "through": "~2.3" } }, "pbkdf2": { @@ -8546,11 +8552,11 @@ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", "requires": { - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "performance-now": { @@ -8574,7 +8580,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" } }, "pkg-conf": { @@ -8582,8 +8588,8 @@ "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", "requires": { - "find-up": "2.1.0", - "load-json-file": "4.0.0" + "find-up": "^2.0.0", + "load-json-file": "^4.0.0" }, "dependencies": { "load-json-file": { @@ -8591,10 +8597,10 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "requires": { - "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "parse-json": { @@ -8602,8 +8608,8 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } } } @@ -8613,9 +8619,9 @@ "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=", "requires": { - "debug-log": "1.0.1", - "find-root": "1.1.0", - "xtend": "4.0.1" + "debug-log": "^1.0.0", + "find-root": "^1.0.0", + "xtend": "^4.0.1" } }, "pkg-dir": { @@ -8623,7 +8629,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" }, "dependencies": { "find-up": { @@ -8631,8 +8637,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" } }, "path-exists": { @@ -8640,7 +8646,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" } } } @@ -8703,8 +8709,8 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", "requires": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1" + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" } }, "ps-tree": { @@ -8713,7 +8719,7 @@ "integrity": "sha1-tCGyQUDWID8e08dplrRCewjowBQ=", "dev": true, "requires": { - "event-stream": "3.3.6" + "event-stream": "~3.3.0" } }, "pseudomap": { @@ -8733,7 +8739,7 @@ "integrity": "sha512-q5I5vLRMVtdWa8n/3UEzZX7Lfghzrg9eG2IKk2ENLSofKRCXVqMvMUHxCKgXNaqH/8ebhBxrqftHWnyTFweJ5Q==", "dev": true, "requires": { - "ps-tree": "1.1.0" + "ps-tree": "^1.1.0" } }, "punycode": { @@ -8747,7 +8753,7 @@ "resolved": "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", "integrity": "sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=", "requires": { - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#d62a0a12ce227a63222282b5f4e9a7a23a5a6b38" + "bitcoin-ops": "^1.3.0" } }, "qrcode": { @@ -8755,11 +8761,11 @@ "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.3.0.tgz", "integrity": "sha512-HFE7drEGhVoPxL1Ilm/zV+wkNJzUa8zL2nXP30vzo78EXAnHPStVOt2iZUIOfgmELtAbSkw/Z8igqu/TbNDGrQ==", "requires": { - "can-promise": "0.0.1", - "dijkstrajs": "1.0.1", - "isarray": "2.0.4", - "pngjs": "3.3.3", - "yargs": "8.0.2" + "can-promise": "^0.0.1", + "dijkstrajs": "^1.0.1", + "isarray": "^2.0.1", + "pngjs": "^3.3.0", + "yargs": "^8.0.2" }, "dependencies": { "isarray": { @@ -8780,9 +8786,9 @@ "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", "dev": true, "requires": { - "decode-uri-component": "0.2.0", - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" } }, "randomatic": { @@ -8791,9 +8797,9 @@ "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==", "optional": true, "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.1" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "dependencies": { "is-number": { @@ -8815,7 +8821,7 @@ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.0" } }, "range-parser": { @@ -8830,10 +8836,10 @@ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "requires": { - "deep-extend": "0.6.0", - "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": { "minimist": { @@ -8849,9 +8855,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "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": { @@ -8859,8 +8865,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" } }, "readable-stream": { @@ -8868,13 +8874,13 @@ "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "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" }, "dependencies": { "inherits": { @@ -8889,9 +8895,9 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "requires": { - "graceful-fs": "4.1.11", - "micromatch": "3.1.10", - "readable-stream": "2.3.6" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" }, "dependencies": { "arr-diff": { @@ -8909,16 +8915,16 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -8926,7 +8932,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -8944,13 +8950,13 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -8958,7 +8964,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -8966,7 +8972,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -8974,7 +8980,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -8982,7 +8988,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -8992,7 +8998,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -9000,7 +9006,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -9010,9 +9016,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "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": { @@ -9027,14 +9033,14 @@ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { @@ -9042,7 +9048,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -9050,7 +9056,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -9060,10 +9066,10 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "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" }, "dependencies": { "extend-shallow": { @@ -9071,7 +9077,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -9081,7 +9087,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -9089,7 +9095,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -9097,9 +9103,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-number": { @@ -9107,7 +9113,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -9115,7 +9121,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -9135,19 +9141,19 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } @@ -9167,9 +9173,9 @@ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.8" + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" } }, "regex-cache": { @@ -9178,7 +9184,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "optional": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "regex-not": { @@ -9186,8 +9192,8 @@ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "regexpp": { @@ -9201,9 +9207,9 @@ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "requires": { - "regenerate": "1.4.0", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "registry-auth-token": { @@ -9212,8 +9218,8 @@ "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", "dev": true, "requires": { - "rc": "1.2.8", - "safe-buffer": "5.1.2" + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" } }, "registry-url": { @@ -9222,7 +9228,7 @@ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "dev": true, "requires": { - "rc": "1.2.8" + "rc": "^1.0.1" } }, "regjsgen": { @@ -9235,7 +9241,7 @@ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { @@ -9265,7 +9271,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" } }, "repl.history": { @@ -9279,26 +9285,26 @@ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "dev": true, "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.8.0", - "caseless": "0.12.0", - "combined-stream": "1.0.7", - "extend": "3.0.2", - "forever-agent": "0.6.1", - "form-data": "2.3.2", - "har-validator": "5.1.0", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.20", - "oauth-sign": "0.9.0", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.4.3", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" } }, "require-directory": { @@ -9316,8 +9322,8 @@ "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" } }, "resolve": { @@ -9325,7 +9331,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "requires": { - "path-parse": "1.0.6" + "path-parse": "^1.0.5" } }, "resolve-from": { @@ -9344,7 +9350,7 @@ "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", "dev": true, "requires": { - "lowercase-keys": "1.0.1" + "lowercase-keys": "^1.0.0" } }, "restore-cursor": { @@ -9352,8 +9358,8 @@ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "resumer": { @@ -9361,7 +9367,7 @@ "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", "requires": { - "through": "2.3.8" + "through": "~2.3.4" } }, "ret": { @@ -9374,7 +9380,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "glob": "7.1.3" + "glob": "^7.0.5" } }, "ripemd160": { @@ -9382,8 +9388,8 @@ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.1" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, "run-async": { @@ -9391,7 +9397,7 @@ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, "run-parallel": { @@ -9409,7 +9415,7 @@ "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "requires": { - "rx-lite": "4.0.8" + "rx-lite": "*" } }, "rxjs": { @@ -9418,7 +9424,7 @@ "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", "dev": true, "requires": { - "tslib": "1.9.3" + "tslib": "^1.9.0" } }, "safe-buffer": { @@ -9431,7 +9437,7 @@ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "safer-buffer": { @@ -9450,7 +9456,7 @@ "resolved": "https://registry.npmjs.org/satoshi-bitcoin/-/satoshi-bitcoin-1.0.4.tgz", "integrity": "sha1-0AK2dwddXLvywhGo3zJUvN9QseQ=", "requires": { - "big.js": "3.2.0" + "big.js": "^3.1.3" } }, "scryptsy": { @@ -9463,14 +9469,14 @@ "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.5.2.tgz", "integrity": "sha512-iin3kojdybY6NArd+UFsoTuapOF7bnJNf2UbcWXaY3z+E1sJDipl60vtzB5hbO/uquBu7z0fd4VC4Irp+xoFVQ==", "requires": { - "bindings": "1.3.0", - "bip66": "1.1.5", - "bn.js": "4.11.8", - "create-hash": "1.2.0", - "drbg.js": "1.0.1", - "elliptic": "6.4.1", - "nan": "2.11.1", - "safe-buffer": "5.1.2" + "bindings": "^1.2.1", + "bip66": "^1.1.3", + "bn.js": "^4.11.3", + "create-hash": "^1.1.2", + "drbg.js": "^1.0.1", + "elliptic": "^6.2.3", + "nan": "^2.2.1", + "safe-buffer": "^5.1.0" } }, "semver": { @@ -9484,7 +9490,7 @@ "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "dev": true, "requires": { - "semver": "5.5.1" + "semver": "^5.0.3" } }, "set-blocking": { @@ -9497,10 +9503,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "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" }, "dependencies": { "extend-shallow": { @@ -9508,7 +9514,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -9518,8 +9524,8 @@ "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "shebang-command": { @@ -9527,7 +9533,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -9546,13 +9552,13 @@ "integrity": "sha512-trdx+mB0VBBgoYucy6a9L7/jfQOmvGeaKZT4OOJ+lPAtI8623xyGr8wLiE4eojzBS8G9yXbhx42GHUOVLr4X2w==", "dev": true, "requires": { - "@sinonjs/formatio": "2.0.0", - "diff": "3.5.0", - "lodash.get": "4.4.2", - "lolex": "2.7.5", - "nise": "1.4.5", - "supports-color": "5.5.0", - "type-detect": "4.0.8" + "@sinonjs/formatio": "^2.0.0", + "diff": "^3.1.0", + "lodash.get": "^4.4.2", + "lolex": "^2.2.0", + "nise": "^1.2.0", + "supports-color": "^5.1.0", + "type-detect": "^4.0.5" }, "dependencies": { "supports-color": { @@ -9561,7 +9567,7 @@ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -9576,7 +9582,7 @@ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "requires": { - "is-fullwidth-code-point": "2.0.0" + "is-fullwidth-code-point": "^2.0.0" }, "dependencies": { "is-fullwidth-code-point": { @@ -9591,14 +9597,14 @@ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "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.2", - "use": "3.1.1" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "debug": { @@ -9614,7 +9620,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -9622,7 +9628,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -9632,9 +9638,9 @@ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "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" }, "dependencies": { "define-property": { @@ -9642,7 +9648,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -9650,7 +9656,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -9658,7 +9664,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -9666,9 +9672,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -9688,7 +9694,7 @@ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "socket.io": { @@ -9696,12 +9702,12 @@ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", "requires": { - "debug": "3.1.0", - "engine.io": "3.2.0", - "has-binary2": "1.0.3", - "socket.io-adapter": "1.1.1", + "debug": "~3.1.0", + "engine.io": "~3.2.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", "socket.io-client": "2.1.1", - "socket.io-parser": "3.2.0" + "socket.io-parser": "~3.2.0" } }, "socket.io-adapter": { @@ -9718,15 +9724,15 @@ "base64-arraybuffer": "0.1.5", "component-bind": "1.0.0", "component-emitter": "1.2.1", - "debug": "3.1.0", - "engine.io-client": "3.2.1", - "has-binary2": "1.0.3", + "debug": "~3.1.0", + "engine.io-client": "~3.2.0", + "has-binary2": "~1.0.2", "has-cors": "1.1.0", "indexof": "0.0.1", "object-component": "0.0.3", "parseqs": "0.0.5", "parseuri": "0.0.5", - "socket.io-parser": "3.2.0", + "socket.io-parser": "~3.2.0", "to-array": "0.1.4" } }, @@ -9736,7 +9742,7 @@ "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", "requires": { "component-emitter": "1.2.1", - "debug": "3.1.0", + "debug": "~3.1.0", "isarray": "2.0.1" }, "dependencies": { @@ -9753,7 +9759,7 @@ "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", "dev": true, "requires": { - "is-plain-obj": "1.1.0" + "is-plain-obj": "^1.0.0" } }, "source-map": { @@ -9766,11 +9772,11 @@ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "requires": { - "atob": "2.1.2", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -9778,7 +9784,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } }, "source-map-url": { @@ -9791,8 +9797,8 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz", "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==", "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.1" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -9805,8 +9811,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "2.2.0", - "spdx-license-ids": "3.0.1" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -9820,7 +9826,7 @@ "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dev": true, "requires": { - "through": "2.3.8" + "through": "2" } }, "split-string": { @@ -9828,7 +9834,7 @@ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "sprintf-js": { @@ -9842,15 +9848,15 @@ "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", "dev": true, "requires": { - "asn1": "0.2.4", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.2", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.2", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "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", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" } }, "standard": { @@ -9858,15 +9864,15 @@ "resolved": "http://registry.npmjs.org/standard/-/standard-11.0.1.tgz", "integrity": "sha512-nu0jAcHiSc8H+gJCXeiziMVZNDYi8MuqrYJKxTgjP4xKXZMKm311boqQIzDrYI/ktosltxt2CbDjYQs9ANC8IA==", "requires": { - "eslint": "4.18.2", + "eslint": "~4.18.0", "eslint-config-standard": "11.0.0", "eslint-config-standard-jsx": "5.0.0", - "eslint-plugin-import": "2.9.0", - "eslint-plugin-node": "6.0.1", - "eslint-plugin-promise": "3.7.0", - "eslint-plugin-react": "7.7.0", - "eslint-plugin-standard": "3.0.1", - "standard-engine": "8.0.1" + "eslint-plugin-import": "~2.9.0", + "eslint-plugin-node": "~6.0.0", + "eslint-plugin-promise": "~3.7.0", + "eslint-plugin-react": "~7.7.0", + "eslint-plugin-standard": "~3.0.1", + "standard-engine": "~8.0.0" }, "dependencies": { "ansi-regex": { @@ -9879,54 +9885,54 @@ "resolved": "http://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", "requires": { - "ajv": "5.5.2", - "babel-code-frame": "6.26.0", - "chalk": "2.4.1", - "concat-stream": "1.6.2", - "cross-spawn": "5.1.0", - "debug": "3.1.0", - "doctrine": "2.1.0", - "eslint-scope": "3.7.3", - "eslint-visitor-keys": "1.0.0", - "espree": "3.5.4", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.3", - "globals": "11.8.0", - "ignore": "3.3.10", - "imurmurhash": "0.1.4", - "inquirer": "3.3.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.12.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.0", - "require-uncached": "1.0.3", - "semver": "5.5.1", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.2", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", "table": "4.0.2", - "text-table": "0.2.0" + "text-table": "~0.2.0" } }, "eslint-plugin-node": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz", + "resolved": "http://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz", "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", "requires": { - "ignore": "3.3.10", - "minimatch": "3.0.4", - "resolve": "1.8.1", - "semver": "5.5.1" + "ignore": "^3.3.6", + "minimatch": "^3.0.4", + "resolve": "^1.3.3", + "semver": "^5.4.1" } }, "globals": { @@ -9939,7 +9945,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -9949,10 +9955,10 @@ "resolved": "http://registry.npmjs.org/standard-engine/-/standard-engine-8.0.1.tgz", "integrity": "sha512-LA531C3+nljom/XRvdW/hGPXwmilRkaRkENhO3FAGF1Vtq/WtCXzgmnc5S6vUHHsgv534MRy02C1ikMwZXC+tw==", "requires": { - "deglob": "2.1.1", - "get-stdin": "6.0.0", - "minimist": "1.2.0", - "pkg-conf": "2.1.0" + "deglob": "^2.1.0", + "get-stdin": "^6.0.0", + "minimist": "^1.1.0", + "pkg-conf": "^2.0.0" }, "dependencies": { "minimist": { @@ -9967,8 +9973,8 @@ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { @@ -9976,7 +9982,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -9987,8 +9993,8 @@ "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", "dev": true, "requires": { - "duplexer": "0.1.1", - "through": "2.3.8" + "duplexer": "~0.1.1", + "through": "~2.3.4" } }, "strict-uri-encode": { @@ -10002,8 +10008,8 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "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" }, "dependencies": { "ansi-regex": { @@ -10021,7 +10027,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -10031,9 +10037,9 @@ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.12.0", - "function-bind": "1.1.1" + "define-properties": "^1.1.2", + "es-abstract": "^1.5.0", + "function-bind": "^1.0.2" } }, "string_decoder": { @@ -10041,7 +10047,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -10049,7 +10055,7 @@ "resolved": "http://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": { @@ -10073,16 +10079,16 @@ "integrity": "sha1-cDUpoHFOV+EjlZ3e+84ZOy5Q0RU=", "dev": true, "requires": { - "component-emitter": "1.2.1", - "cookiejar": "2.1.2", - "debug": "2.6.9", - "extend": "3.0.2", + "component-emitter": "^1.2.0", + "cookiejar": "^2.0.6", + "debug": "^2.2.0", + "extend": "^3.0.0", "form-data": "1.0.0-rc4", - "formidable": "1.2.1", - "methods": "1.1.2", - "mime": "1.6.0", - "qs": "6.5.2", - "readable-stream": "2.3.6" + "formidable": "^1.0.17", + "methods": "^1.1.1", + "mime": "^1.3.4", + "qs": "^6.1.0", + "readable-stream": "^2.0.5" }, "dependencies": { "debug": { @@ -10100,9 +10106,9 @@ "integrity": "sha1-BaxrwiIntD5EYfSIFhVUaZ1Pi14=", "dev": true, "requires": { - "async": "1.5.2", - "combined-stream": "1.0.7", - "mime-types": "2.1.20" + "async": "^1.5.2", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.10" } } } @@ -10113,8 +10119,8 @@ "integrity": "sha1-oFgIHXiPFRXUcA11Aogea3WeRM0=", "dev": true, "requires": { - "methods": "1.1.2", - "superagent": "2.3.0" + "methods": "1.x", + "superagent": "^2.0.0" } }, "supports-color": { @@ -10127,12 +10133,12 @@ "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "chalk": "2.4.1", - "lodash": "4.17.11", + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "string-width": "^2.1.1" } }, "tape": { @@ -10140,19 +10146,19 @@ "resolved": "https://registry.npmjs.org/tape/-/tape-4.9.1.tgz", "integrity": "sha512-6fKIXknLpoe/Jp4rzHKFPpJUHDHDqn8jus99IfPnHIjyz78HYlefTGD3b5EkbQzuLfaEvmfPK3IolLgq2xT3kw==", "requires": { - "deep-equal": "1.0.1", - "defined": "1.0.0", - "for-each": "0.3.3", - "function-bind": "1.1.1", - "glob": "7.1.3", - "has": "1.0.3", - "inherits": "2.0.3", - "minimist": "1.2.0", - "object-inspect": "1.6.0", - "resolve": "1.7.1", - "resumer": "0.0.0", - "string.prototype.trim": "1.1.2", - "through": "2.3.8" + "deep-equal": "~1.0.1", + "defined": "~1.0.0", + "for-each": "~0.3.3", + "function-bind": "~1.1.1", + "glob": "~7.1.2", + "has": "~1.0.3", + "inherits": "~2.0.3", + "minimist": "~1.2.0", + "object-inspect": "~1.6.0", + "resolve": "~1.7.1", + "resumer": "~0.0.0", + "string.prototype.trim": "~1.1.2", + "through": "~2.3.8" }, "dependencies": { "inherits": { @@ -10170,7 +10176,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", "requires": { - "path-parse": "1.0.6" + "path-parse": "^1.0.5" } } } @@ -10181,7 +10187,7 @@ "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "dev": true, "requires": { - "execa": "0.7.0" + "execa": "^0.7.0" } }, "text-encoding": { @@ -10211,7 +10217,7 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "to-array": { @@ -10229,7 +10235,7 @@ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { @@ -10237,10 +10243,10 @@ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { @@ -10248,8 +10254,8 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "dependencies": { "is-number": { @@ -10257,7 +10263,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } } } @@ -10267,7 +10273,7 @@ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", "requires": { - "nopt": "1.0.10" + "nopt": "~1.0.10" } }, "tough-cookie": { @@ -10276,8 +10282,8 @@ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "dev": true, "requires": { - "psl": "1.1.29", - "punycode": "1.4.1" + "psl": "^1.1.24", + "punycode": "^1.4.1" } }, "trim-right": { @@ -10297,7 +10303,7 @@ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -10312,7 +10318,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-detect": { @@ -10328,7 +10334,7 @@ "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.20" + "mime-types": "~2.1.18" } }, "typedarray": { @@ -10352,7 +10358,7 @@ "integrity": "sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY=", "dev": true, "requires": { - "debug": "2.6.9" + "debug": "^2.2.0" }, "dependencies": { "debug": { @@ -10371,10 +10377,10 @@ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "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": { "extend-shallow": { @@ -10382,7 +10388,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { @@ -10390,10 +10396,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "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" } } } @@ -10409,7 +10415,7 @@ "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", "dev": true, "requires": { - "crypto-random-string": "1.0.0" + "crypto-random-string": "^1.0.0" } }, "unorm": { @@ -10422,8 +10428,8 @@ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -10431,9 +10437,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "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": { @@ -10476,16 +10482,16 @@ "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", "dev": true, "requires": { - "boxen": "1.3.0", - "chalk": "2.4.1", - "configstore": "3.1.2", - "import-lazy": "2.1.0", - "is-ci": "1.2.1", - "is-installed-globally": "0.1.0", - "is-npm": "1.0.0", - "latest-version": "3.1.0", - "semver-diff": "2.1.0", - "xdg-basedir": "3.0.0" + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" } }, "uri-js": { @@ -10494,7 +10500,7 @@ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "requires": { - "punycode": "2.1.1" + "punycode": "^2.1.0" }, "dependencies": { "punycode": { @@ -10516,7 +10522,7 @@ "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "dev": true, "requires": { - "prepend-http": "2.0.0" + "prepend-http": "^2.0.0" } }, "url-to-options": { @@ -10559,7 +10565,7 @@ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "requires": { - "user-home": "1.1.1" + "user-home": "^1.1.1" } }, "validate-npm-package-license": { @@ -10567,8 +10573,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "requires": { - "spdx-correct": "3.0.2", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "varuint-bitcoin": { @@ -10576,7 +10582,7 @@ "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz", "integrity": "sha512-jCEPG+COU/1Rp84neKTyDJQr478/hAfVp5xxYn09QEH0yBjbmPeMfuuQIrp+BUD83hybtYZKhr5elV3bvdV1bA==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.1" } }, "verror": { @@ -10585,9 +10591,9 @@ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": 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" } }, "which": { @@ -10595,7 +10601,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -10609,7 +10615,7 @@ "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", "dev": true, "requires": { - "string-width": "2.1.1" + "string-width": "^2.1.1" } }, "wif": { @@ -10617,7 +10623,7 @@ "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", "requires": { - "bs58check": "2.1.2" + "bs58check": "<3.0.0" } }, "window-or-global": { @@ -10635,8 +10641,8 @@ "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "string-width": { @@ -10644,9 +10650,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" } } } @@ -10661,7 +10667,7 @@ "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "write-file-atomic": { @@ -10670,9 +10676,9 @@ "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "signal-exit": "3.0.2" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" } }, "ws": { @@ -10680,9 +10686,9 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.2", - "ultron": "1.1.1" + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" } }, "xdg-basedir": { @@ -10716,19 +10722,19 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.3", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.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": "7.0.0" + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^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": "^7.0.0" } }, "yargs-parser": { @@ -10736,7 +10742,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } }, "yeast": { diff --git a/package.json b/package.json index a2dec54d..7a36aa25 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "2.1.2", + "version": "2.2.0", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", @@ -38,7 +38,7 @@ "bip39": "^2.5.0", "bip66": "^1.1.5", "bip68": "Bitcoin-com/bip68#1.0.5", - "bitcoin-ops": "Bitcoin-com/bitcoincash-ops", + "bitcoin-ops": "Bitcoin-com/bitcoincash-ops#1.5.0", "bitcoin-txdecoder": "0.0.3", "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib#3.3.4", "bitcoinjs-message": "^2.0.0", From 9a64453c019b57815c9402e1551554e4ceff0946 Mon Sep 17 00:00:00 2001 From: Alex Dovzhanyn Date: Wed, 7 Nov 2018 13:21:46 -0500 Subject: [PATCH 131/480] Warning of possible causes of '66: Insufficient Priority' --- src/RawTransactions.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/RawTransactions.js b/src/RawTransactions.js index 377c251a..fedcd317 100644 --- a/src/RawTransactions.js +++ b/src/RawTransactions.js @@ -57,6 +57,15 @@ class RawTransactions { this.restURL }rawtransactions/sendRawTransaction/${hex}?allowhighfees=${allowhighfees}` ) + + if (response.data == '66: insufficient priority') { + console.warn( + `WARN: Insufficient Priority! This is likely due to a fee that is too low, or insufficient funds. + Please ensure that there is BCH in the given wallet. If you are running on the testnet, get some + BCH from the testnet faucet at https://developer.bitcoin.com/faucets/bch` + ) + } + return response.data } catch (error) { if (error.response && error.response.data) throw error.response.data From a4b635fb86b4b2c46d7cbc8142983c8082940df3 Mon Sep 17 00:00:00 2001 From: Yuiki <10101661+Yuiki@users.noreply.github.com> Date: Mon, 12 Nov 2018 16:17:15 +0900 Subject: [PATCH 132/480] add web3bch --- lib/RawTransactions.js | 5 ++ lib/Wallet.js | 109 +++++++++++++++++++++++++++++++++++++++++ lib/bitbox-sdk.js | 5 ++ package-lock.json | 82 +++++++++++++++++++++++++++++++ package.json | 1 + src/Wallet.js | 73 +++++++++++++++++++++++++++ src/bitbox-sdk.js | 2 + 7 files changed, 277 insertions(+) create mode 100644 lib/Wallet.js create mode 100644 src/Wallet.js diff --git a/lib/RawTransactions.js b/lib/RawTransactions.js index e10827aa..3b26d86c 100644 --- a/lib/RawTransactions.js +++ b/lib/RawTransactions.js @@ -68,6 +68,11 @@ var RawTransactions = function () { try { var response = await _axios2.default.post(this.restURL + "rawtransactions/sendRawTransaction/" + hex + "?allowhighfees=" + allowhighfees); + + if (response.data == '66: insufficient priority') { + console.warn("WARN: Insufficient Priority! This is likely due to a fee that is too low, or insufficient funds. \n Please ensure that there is BCH in the given wallet. If you are running on the testnet, get some\n BCH from the testnet faucet at https://developer.bitcoin.com/faucets/bch"); + } + return response.data; } catch (error) { if (error.response && error.response.data) throw error.response.data;else throw error; diff --git a/lib/Wallet.js b/lib/Wallet.js new file mode 100644 index 00000000..abc5ee69 --- /dev/null +++ b/lib/Wallet.js @@ -0,0 +1,109 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _web3bch = require("web3bch.js"); + +var _web3bch2 = _interopRequireDefault(_web3bch); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var Wallet = function () { + function Wallet(walletProvider) { + _classCallCheck(this, Wallet); + + this.web3bch = new _web3bch2.default(walletProvider); + } + + _createClass(Wallet, [{ + key: "setWalletProvider", + value: function setWalletProvider(walletProvider) { + this.web3bch.walletProvider = walletProvider; + } + }, { + key: "getAddress", + value: function getAddress(changeType, index, dAppId) { + return this.web3bch.getAddress(changeType, index, dAppId); + } + }, { + key: "getAddressIndex", + value: function getAddressIndex(changeType, dAppId) { + return this.web3bch.getAddressIndex(changeType, dAppId); + } + }, { + key: "getAddresses", + value: function getAddresses(changeType, startIndex, size, dAppId) { + return this.web3bch.getAddresses(changeType, startIndex, size, dAppId); + } + }, { + key: "getRedeemScript", + value: function getRedeemScript(p2shAddress, dAppId) { + return this.web3bch.getRedeemScript(p2shAddress, dAppId); + } + }, { + key: "getRedeemScripts", + value: function getRedeemScripts(dAppId) { + return this.web3bch.getRedeemScripts(dAppId); + } + }, { + key: "addRedeemScript", + value: function addRedeemScript(redeemScript, dAppId) { + return this.web3bch.addRedeemScript(redeemScript, dAppId); + } + }, { + key: "getUtxos", + value: function getUtxos(dAppId) { + return this.web3bch.getUtxos(dAppId); + } + }, { + key: "getBalance", + value: function getBalance(dAppId) { + return this.web3bch.getBalance(dAppId); + } + }, { + key: "sign", + value: function sign(address, dataToSign) { + return this.web3bch.sign(address, dataToSign); + } + }, { + key: "buildTransaction", + value: function buildTransaction(outputs, dAppId) { + return this.web3bch.buildTransaction(outputs, dAppId); + } + }, { + key: "getProtocolVersion", + value: function getProtocolVersion() { + return this.web3bch.getProtocolVersion(); + } + }, { + key: "getNetwork", + value: function getNetwork() { + return this.web3bch.getNetwork(); + } + }, { + key: "getFeePerByte", + value: function getFeePerByte() { + return this.web3bch.getFeePerByte(); + } + }, { + key: "getDefaultDAppId", + value: function getDefaultDAppId() { + return this.web3bch.getDefaultDAppId(); + } + }, { + key: "setDefaultDAppId", + value: function setDefaultDAppId(dAppId) { + return this.web3bch.setDefaultDAppId(dAppId); + } + }]); + + return Wallet; +}(); + +exports.default = Wallet; \ No newline at end of file diff --git a/lib/bitbox-sdk.js b/lib/bitbox-sdk.js index 858952cc..c23e75b5 100644 --- a/lib/bitbox-sdk.js +++ b/lib/bitbox-sdk.js @@ -80,6 +80,10 @@ var _Socket = require("./Socket"); var _Socket2 = _interopRequireDefault(_Socket); +var _Wallet = require("./Wallet"); + +var _Wallet2 = _interopRequireDefault(_Wallet); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } // local deps @@ -111,6 +115,7 @@ var BITBOXSDK = function BITBOXSDK(config) { this.TransactionBuilder.setAddress(this.Address); this.Util = new _Util2.default(this.restURL); this.Socket = _Socket2.default; + this.Web3bch = _Wallet2.default; }; exports.default = BITBOXSDK; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index b27e701f..7bed63f7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1135,6 +1135,15 @@ "integrity": "sha512-LIVmqIrIWuiqTvn4RzcrwCOuHo2DD6tKmKBPXXlr4p4n4l6BZBkwFTIa3zu1XkX5MbZgro4a6BvPi+n2Mns5Gg==", "dev": true }, + "bchaddrjs": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.2.tgz", + "integrity": "sha512-W06sUpprptb65JHbu2yFdv8Tg7o2OWpD5n2pMUIhuLOXC5c64eMW7y9Pg0IHd/Qe31e1KwnHT9H1w6Pf9r4Fkg==", + "requires": { + "bs58check": "^2.1.1", + "cashaddrjs": "^0.2.7" + } + }, "bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", @@ -1250,6 +1259,45 @@ "bitcoinjs-lib": "3.3.*" } }, + "bitcoincashjs": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/bitcoincashjs/-/bitcoincashjs-0.1.10.tgz", + "integrity": "sha512-M4SiYYZEWUqWyp2ZE+imxP6Pgm15B4GIU+PvRo1ISvlgnxrwUANEVWAIW5+tam5MD3sO+XqnfK14ymRw14nCFQ==", + "requires": { + "big-integer": "^1.6.26", + "bn.js": "=2.0.4", + "bs58": "=2.0.0", + "buffer-compare": "=1.0.0", + "cashaddrjs": "^0.2.8", + "elliptic": "=3.0.3", + "inherits": "=2.0.1", + "lodash": "^4.17.4", + "unorm": "^1.4.1" + }, + "dependencies": { + "bn.js": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-2.0.4.tgz", + "integrity": "sha1-Igp81nf38b+pNif/QZN3b+eBlIA=" + }, + "bs58": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-2.0.0.tgz", + "integrity": "sha1-crcTvtIjoKxRi72g484/SBfznrU=" + }, + "elliptic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-3.0.3.tgz", + "integrity": "sha1-hlybQgv75VAGuflp+XoNLESWZZU=", + "requires": { + "bn.js": "^2.0.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "inherits": "^2.0.1" + } + } + } + }, "bitcoincashjs-lib": { "version": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", "from": "github:Bitcoin-com/bitcoincashjs-lib#3.3.4", @@ -1269,6 +1317,13 @@ "typeforce": "^1.11.3", "varuint-bitcoin": "^1.0.4", "wif": "^2.0.1" + }, + "dependencies": { + "bitcoin-ops": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz", + "integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow==" + } } }, "bitcoinjs-lib": { @@ -1291,6 +1346,13 @@ "typeforce": "^1.11.3", "varuint-bitcoin": "^1.0.4", "wif": "^2.0.1" + }, + "dependencies": { + "bitcoin-ops": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz", + "integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow==" + } } }, "bitcoinjs-message": { @@ -1409,6 +1471,11 @@ "ieee754": "^1.1.4" } }, + "buffer-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-compare/-/buffer-compare-1.0.0.tgz", + "integrity": "sha1-rKp6lm6Y7un64Usxw5pfFY+zxKI=" + }, "buffer-equals": { "version": "1.0.4", "resolved": "http://registry.npmjs.org/buffer-equals/-/buffer-equals-1.0.4.tgz", @@ -8754,6 +8821,13 @@ "integrity": "sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=", "requires": { "bitcoin-ops": "^1.3.0" + }, + "dependencies": { + "bitcoin-ops": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz", + "integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow==" + } } }, "qrcode": { @@ -10596,6 +10670,14 @@ "extsprintf": "^1.2.0" } }, + "web3bch.js": { + "version": "github:web3bch/web3bch.js#d904c42f7eb6385d20b7a2eebed8884814fe7988", + "from": "github:web3bch/web3bch.js#master", + "requires": { + "bchaddrjs": "^0.2.2", + "bitcoincashjs": "^0.1.10" + } + }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", diff --git a/package.json b/package.json index 7a36aa25..2f7f184b 100644 --- a/package.json +++ b/package.json @@ -66,6 +66,7 @@ "socket.io": "^2.1.1", "socket.io-client": "^2.1.1", "touch": "^3.1.0", + "web3bch.js": "github:web3bch/web3bch.js#master", "wif": "^2.0.6" }, "devDependencies": { diff --git a/src/Wallet.js b/src/Wallet.js new file mode 100644 index 00000000..73028158 --- /dev/null +++ b/src/Wallet.js @@ -0,0 +1,73 @@ +import Web3bch from "web3bch.js" + +class Wallet { + constructor(walletProvider) { + this.web3bch = new Web3bch(walletProvider) + } + + setWalletProvider(walletProvider) { + this.web3bch.walletProvider = walletProvider + } + + getAddress(changeType, index, dAppId) { + return this.web3bch.getAddress(changeType, index, dAppId) + } + + getAddressIndex(changeType, dAppId) { + return this.web3bch.getAddressIndex(changeType, dAppId) + } + + getAddresses(changeType, startIndex, size, dAppId) { + return this.web3bch.getAddresses(changeType, startIndex, size, dAppId) + } + + getRedeemScript(p2shAddress, dAppId) { + return this.web3bch.getRedeemScript(p2shAddress, dAppId) + } + + getRedeemScripts(dAppId) { + return this.web3bch.getRedeemScripts(dAppId) + } + + addRedeemScript(redeemScript, dAppId) { + return this.web3bch.addRedeemScript(redeemScript, dAppId) + } + + getUtxos(dAppId) { + return this.web3bch.getUtxos(dAppId) + } + + getBalance(dAppId) { + return this.web3bch.getBalance(dAppId) + } + + sign(address, dataToSign) { + return this.web3bch.sign(address, dataToSign) + } + + buildTransaction(outputs, dAppId) { + return this.web3bch.buildTransaction(outputs, dAppId) + } + + getProtocolVersion() { + return this.web3bch.getProtocolVersion() + } + + getNetwork() { + return this.web3bch.getNetwork() + } + + getFeePerByte() { + return this.web3bch.getFeePerByte() + } + + getDefaultDAppId() { + return this.web3bch.getDefaultDAppId() + } + + setDefaultDAppId(dAppId) { + return this.web3bch.setDefaultDAppId(dAppId) + } +} + +export default Wallet \ No newline at end of file diff --git a/src/bitbox-sdk.js b/src/bitbox-sdk.js index 55e586bf..14ed8215 100644 --- a/src/bitbox-sdk.js +++ b/src/bitbox-sdk.js @@ -18,6 +18,7 @@ import ECPair from "./ECPair" import Script from "./Script" import Price from "./Price" import Socket from "./Socket" +import Wallet from "./Wallet" class BITBOXSDK { constructor(config) { @@ -46,6 +47,7 @@ class BITBOXSDK { this.TransactionBuilder.setAddress(this.Address) this.Util = new Util(this.restURL) this.Socket = Socket + this.Web3bch = Wallet } } From 4e6905f8c884568590869fe9273e3a5195d4425e Mon Sep 17 00:00:00 2001 From: Shun Usami Date: Tue, 13 Nov 2018 11:20:18 +0900 Subject: [PATCH 133/480] :recycle: Rename to bch-wallet-bridge --- package.json | 2 +- src/Wallet.js | 36 ++++++++++++++++++------------------ src/bitbox-sdk.js | 2 +- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/package.json b/package.json index 2f7f184b..6887c59d 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "socket.io": "^2.1.1", "socket.io-client": "^2.1.1", "touch": "^3.1.0", - "web3bch.js": "github:web3bch/web3bch.js#master", + "bch-wallet-bridge.js": "github:web3bch/bch-wallet-bridge.js#master", "wif": "^2.0.6" }, "devDependencies": { diff --git a/src/Wallet.js b/src/Wallet.js index 73028158..cb5c9241 100644 --- a/src/Wallet.js +++ b/src/Wallet.js @@ -1,72 +1,72 @@ -import Web3bch from "web3bch.js" +import BCHWalletBridge from "bch-wallet-bridge.js" class Wallet { constructor(walletProvider) { - this.web3bch = new Web3bch(walletProvider) + this.bchWalletBridge = new BCHWalletBridge(walletProvider) } setWalletProvider(walletProvider) { - this.web3bch.walletProvider = walletProvider + this.bchWalletBridge.walletProvider = walletProvider } getAddress(changeType, index, dAppId) { - return this.web3bch.getAddress(changeType, index, dAppId) + return this.bchWalletBridge.getAddress(changeType, index, dAppId) } getAddressIndex(changeType, dAppId) { - return this.web3bch.getAddressIndex(changeType, dAppId) + return this.bchWalletBridge.getAddressIndex(changeType, dAppId) } getAddresses(changeType, startIndex, size, dAppId) { - return this.web3bch.getAddresses(changeType, startIndex, size, dAppId) + return this.bchWalletBridge.getAddresses(changeType, startIndex, size, dAppId) } getRedeemScript(p2shAddress, dAppId) { - return this.web3bch.getRedeemScript(p2shAddress, dAppId) + return this.bchWalletBridge.getRedeemScript(p2shAddress, dAppId) } getRedeemScripts(dAppId) { - return this.web3bch.getRedeemScripts(dAppId) + return this.bchWalletBridge.getRedeemScripts(dAppId) } addRedeemScript(redeemScript, dAppId) { - return this.web3bch.addRedeemScript(redeemScript, dAppId) + return this.bchWalletBridge.addRedeemScript(redeemScript, dAppId) } getUtxos(dAppId) { - return this.web3bch.getUtxos(dAppId) + return this.bchWalletBridge.getUtxos(dAppId) } getBalance(dAppId) { - return this.web3bch.getBalance(dAppId) + return this.bchWalletBridge.getBalance(dAppId) } sign(address, dataToSign) { - return this.web3bch.sign(address, dataToSign) + return this.bchWalletBridge.sign(address, dataToSign) } buildTransaction(outputs, dAppId) { - return this.web3bch.buildTransaction(outputs, dAppId) + return this.bchWalletBridge.buildTransaction(outputs, dAppId) } getProtocolVersion() { - return this.web3bch.getProtocolVersion() + return this.bchWalletBridge.getProtocolVersion() } getNetwork() { - return this.web3bch.getNetwork() + return this.bchWalletBridge.getNetwork() } getFeePerByte() { - return this.web3bch.getFeePerByte() + return this.bchWalletBridge.getFeePerByte() } getDefaultDAppId() { - return this.web3bch.getDefaultDAppId() + return this.bchWalletBridge.getDefaultDAppId() } setDefaultDAppId(dAppId) { - return this.web3bch.setDefaultDAppId(dAppId) + return this.bchWalletBridge.setDefaultDAppId(dAppId) } } diff --git a/src/bitbox-sdk.js b/src/bitbox-sdk.js index 14ed8215..4bba1310 100644 --- a/src/bitbox-sdk.js +++ b/src/bitbox-sdk.js @@ -47,7 +47,7 @@ class BITBOXSDK { this.TransactionBuilder.setAddress(this.Address) this.Util = new Util(this.restURL) this.Socket = Socket - this.Web3bch = Wallet + this.Wallet = Wallet } } From c04cc49e479e38ce71da6a3ae5d125d837b3aa58 Mon Sep 17 00:00:00 2001 From: Shun Usami Date: Tue, 13 Nov 2018 12:31:25 +0900 Subject: [PATCH 134/480] :rocket: yarn build --- lib/Wallet.js | 38 +++++++++++++++++++------------------- lib/bitbox-sdk.js | 2 +- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/lib/Wallet.js b/lib/Wallet.js index abc5ee69..b89a0de8 100644 --- a/lib/Wallet.js +++ b/lib/Wallet.js @@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _web3bch = require("web3bch.js"); +var _bchWalletBridge = require("bch-wallet-bridge.js"); -var _web3bch2 = _interopRequireDefault(_web3bch); +var _bchWalletBridge2 = _interopRequireDefault(_bchWalletBridge); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -18,88 +18,88 @@ var Wallet = function () { function Wallet(walletProvider) { _classCallCheck(this, Wallet); - this.web3bch = new _web3bch2.default(walletProvider); + this.bchWalletBridge = new _bchWalletBridge2.default(walletProvider); } _createClass(Wallet, [{ key: "setWalletProvider", value: function setWalletProvider(walletProvider) { - this.web3bch.walletProvider = walletProvider; + this.bchWalletBridge.walletProvider = walletProvider; } }, { key: "getAddress", value: function getAddress(changeType, index, dAppId) { - return this.web3bch.getAddress(changeType, index, dAppId); + return this.bchWalletBridge.getAddress(changeType, index, dAppId); } }, { key: "getAddressIndex", value: function getAddressIndex(changeType, dAppId) { - return this.web3bch.getAddressIndex(changeType, dAppId); + return this.bchWalletBridge.getAddressIndex(changeType, dAppId); } }, { key: "getAddresses", value: function getAddresses(changeType, startIndex, size, dAppId) { - return this.web3bch.getAddresses(changeType, startIndex, size, dAppId); + return this.bchWalletBridge.getAddresses(changeType, startIndex, size, dAppId); } }, { key: "getRedeemScript", value: function getRedeemScript(p2shAddress, dAppId) { - return this.web3bch.getRedeemScript(p2shAddress, dAppId); + return this.bchWalletBridge.getRedeemScript(p2shAddress, dAppId); } }, { key: "getRedeemScripts", value: function getRedeemScripts(dAppId) { - return this.web3bch.getRedeemScripts(dAppId); + return this.bchWalletBridge.getRedeemScripts(dAppId); } }, { key: "addRedeemScript", value: function addRedeemScript(redeemScript, dAppId) { - return this.web3bch.addRedeemScript(redeemScript, dAppId); + return this.bchWalletBridge.addRedeemScript(redeemScript, dAppId); } }, { key: "getUtxos", value: function getUtxos(dAppId) { - return this.web3bch.getUtxos(dAppId); + return this.bchWalletBridge.getUtxos(dAppId); } }, { key: "getBalance", value: function getBalance(dAppId) { - return this.web3bch.getBalance(dAppId); + return this.bchWalletBridge.getBalance(dAppId); } }, { key: "sign", value: function sign(address, dataToSign) { - return this.web3bch.sign(address, dataToSign); + return this.bchWalletBridge.sign(address, dataToSign); } }, { key: "buildTransaction", value: function buildTransaction(outputs, dAppId) { - return this.web3bch.buildTransaction(outputs, dAppId); + return this.bchWalletBridge.buildTransaction(outputs, dAppId); } }, { key: "getProtocolVersion", value: function getProtocolVersion() { - return this.web3bch.getProtocolVersion(); + return this.bchWalletBridge.getProtocolVersion(); } }, { key: "getNetwork", value: function getNetwork() { - return this.web3bch.getNetwork(); + return this.bchWalletBridge.getNetwork(); } }, { key: "getFeePerByte", value: function getFeePerByte() { - return this.web3bch.getFeePerByte(); + return this.bchWalletBridge.getFeePerByte(); } }, { key: "getDefaultDAppId", value: function getDefaultDAppId() { - return this.web3bch.getDefaultDAppId(); + return this.bchWalletBridge.getDefaultDAppId(); } }, { key: "setDefaultDAppId", value: function setDefaultDAppId(dAppId) { - return this.web3bch.setDefaultDAppId(dAppId); + return this.bchWalletBridge.setDefaultDAppId(dAppId); } }]); diff --git a/lib/bitbox-sdk.js b/lib/bitbox-sdk.js index c23e75b5..3bb1d2c4 100644 --- a/lib/bitbox-sdk.js +++ b/lib/bitbox-sdk.js @@ -115,7 +115,7 @@ var BITBOXSDK = function BITBOXSDK(config) { this.TransactionBuilder.setAddress(this.Address); this.Util = new _Util2.default(this.restURL); this.Socket = _Socket2.default; - this.Web3bch = _Wallet2.default; + this.Wallet = _Wallet2.default; }; exports.default = BITBOXSDK; \ No newline at end of file From cd0e9c75fe97af168dcabe798e6cf7eac1ea299c Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Thu, 15 Nov 2018 09:37:25 +0900 Subject: [PATCH 135/480] Update version and comment out bridge lib to make tests pass. --- index.js | 4 ++-- lib/Wallet.js | 11 +++-------- package.json | 2 +- src/Wallet.js | 14 +++++++++----- 4 files changed, 15 insertions(+), 16 deletions(-) diff --git a/index.js b/index.js index b4b92610..1ae39181 100755 --- a/index.js +++ b/index.js @@ -17,7 +17,7 @@ const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") const cmd = require("node-cmd") -program.version("2.2.0 ", "-v, --version") +program.version("2.2.1 ", "-v, --version") program .command("new ") @@ -27,7 +27,7 @@ program ) .option( "-r, --restURL ", - "The rest URL to use. default: https://rest.bitcoin.com/v1/" + "The rest URL to use. default: https://trest.bitcoin.com/v1/" ) .option( "-e, --environment ", diff --git a/lib/Wallet.js b/lib/Wallet.js index b89a0de8..e212cde8 100644 --- a/lib/Wallet.js +++ b/lib/Wallet.js @@ -6,19 +6,14 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _bchWalletBridge = require("bch-wallet-bridge.js"); - -var _bchWalletBridge2 = _interopRequireDefault(_bchWalletBridge); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +// import BCHWalletBridge from "bch-wallet-bridge.js" var Wallet = function () { function Wallet(walletProvider) { - _classCallCheck(this, Wallet); + // this.bchWalletBridge = new BCHWalletBridge(walletProvider) - this.bchWalletBridge = new _bchWalletBridge2.default(walletProvider); + _classCallCheck(this, Wallet); } _createClass(Wallet, [{ diff --git a/package.json b/package.json index 6887c59d..9ef11756 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "2.2.0", + "version": "2.2.1", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", diff --git a/src/Wallet.js b/src/Wallet.js index cb5c9241..de0e3839 100644 --- a/src/Wallet.js +++ b/src/Wallet.js @@ -1,8 +1,7 @@ -import BCHWalletBridge from "bch-wallet-bridge.js" - +// import BCHWalletBridge from "bch-wallet-bridge.js" class Wallet { constructor(walletProvider) { - this.bchWalletBridge = new BCHWalletBridge(walletProvider) + // this.bchWalletBridge = new BCHWalletBridge(walletProvider) } setWalletProvider(walletProvider) { @@ -18,7 +17,12 @@ class Wallet { } getAddresses(changeType, startIndex, size, dAppId) { - return this.bchWalletBridge.getAddresses(changeType, startIndex, size, dAppId) + return this.bchWalletBridge.getAddresses( + changeType, + startIndex, + size, + dAppId + ) } getRedeemScript(p2shAddress, dAppId) { @@ -70,4 +74,4 @@ class Wallet { } } -export default Wallet \ No newline at end of file +export default Wallet From a72291dbf1c84bf89ec1dbee77ab586a93866c66 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Mon, 19 Nov 2018 21:58:15 +0900 Subject: [PATCH 136/480] List all transactions for an address. --- .eslintrc.json | 5 +- index.js | 3 +- lib/Address.js | 12 + package-lock.json | 4143 ++++++++++++++++++++++----------------------- package.json | 2 +- src/Address.js | 14 + 6 files changed, 2102 insertions(+), 2077 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 076a53da..2ce7cac6 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,8 +1,7 @@ { "root": true, "parserOptions": { - "ecmaVersion": 2018, - "sourceType": "module" + "ecmaVersion": 2018 }, "plugins": ["prettier"], "rules": { @@ -34,7 +33,7 @@ "arrow-spacing": ["error"], "no-useless-computed-key": ["error"], "no-useless-rename": ["error"], - "no-var": ["warn"], + "no-var": ["off"], "prefer-spread": ["error"], "prefer-template": ["error"], "rest-spread-spacing": ["error", "never"], diff --git a/index.js b/index.js index 1ae39181..5be1552c 100755 --- a/index.js +++ b/index.js @@ -1,4 +1,5 @@ #!/usr/bin/env node +"use strict" require("babel-register") const path = require("path") const program = require("commander") @@ -17,7 +18,7 @@ const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") const cmd = require("node-cmd") -program.version("2.2.1 ", "-v, --version") +program.version("2.2.2 ", "-v, --version") program .command("new ") diff --git a/lib/Address.js b/lib/Address.js index f81cf9bf..ce5a7172 100644 --- a/lib/Address.js +++ b/lib/Address.js @@ -368,6 +368,18 @@ var Address = function () { if (error.response && error.response.data) throw error.response.data;else throw error; } } + }, { + key: "transactions", + value: async function transactions(address) { + if (typeof address !== "string") address = JSON.stringify(address); + + try { + var response = await _axios2.default.get(this.restURL + "address/transactions/" + address); + return response.data; + } catch (error) { + if (error.response && error.response.data) throw error.response.data;else throw error; + } + } }]); return Address; diff --git a/package-lock.json b/package-lock.json index 7bed63f7..4208a322 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "2.2.0", + "version": "2.2.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -25,7 +25,7 @@ "integrity": "sha512-5x2kFgJYupaF1ns/RmharQ90lQkd2ELS8A9X0ymkAAdemYHGtI2KiUHG8nX2WU0T1qgnOU5YMqnBM2V7NUanNw==", "dev": true, "requires": { - "array-from": "^2.1.1" + "array-from": "2.1.1" } }, "@types/node": { @@ -44,7 +44,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "requires": { - "mime-types": "~2.1.18", + "mime-types": "2.1.20", "negotiator": "0.6.1" } }, @@ -58,7 +58,7 @@ "resolved": "http://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "requires": { - "acorn": "^3.0.4" + "acorn": "3.3.0" }, "dependencies": { "acorn": { @@ -79,8 +79,8 @@ "integrity": "sha1-iINE2tAiCnLjr1CQYRf0h3GSX6w=", "dev": true, "requires": { - "clean-stack": "^1.0.0", - "indent-string": "^3.0.0" + "clean-stack": "1.3.0", + "indent-string": "3.2.0" } }, "ajv": { @@ -88,10 +88,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" } }, "ajv-keywords": { @@ -105,7 +105,7 @@ "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "dev": true, "requires": { - "string-width": "^2.0.0" + "string-width": "2.1.1" } }, "ansi-escapes": { @@ -129,8 +129,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "optional": true, "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" + "micromatch": "2.3.11", + "normalize-path": "2.1.1" } }, "argparse": { @@ -138,7 +138,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "~1.0.2" + "sprintf-js": "1.0.3" } }, "arr-diff": { @@ -147,7 +147,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "optional": true, "requires": { - "arr-flatten": "^1.0.1" + "arr-flatten": "1.1.0" } }, "arr-flatten": { @@ -171,8 +171,8 @@ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.7.0" + "define-properties": "1.1.3", + "es-abstract": "1.12.0" } }, "array-union": { @@ -180,7 +180,7 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "requires": { - "array-uniq": "^1.0.1" + "array-uniq": "1.0.3" } }, "array-uniq": { @@ -210,7 +210,7 @@ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, "requires": { - "safer-buffer": "~2.1.0" + "safer-buffer": "2.1.2" } }, "assert": { @@ -282,8 +282,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=", "requires": { - "follow-redirects": "^1.2.5", - "is-buffer": "^1.1.5" + "follow-redirects": "1.5.9", + "is-buffer": "1.1.6" } }, "babel-cli": { @@ -291,21 +291,21 @@ "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", "requires": { - "babel-core": "^6.26.0", - "babel-polyfill": "^6.26.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "chokidar": "^1.6.1", - "commander": "^2.11.0", - "convert-source-map": "^1.5.0", - "fs-readdir-recursive": "^1.0.0", - "glob": "^7.1.2", - "lodash": "^4.17.4", - "output-file-sync": "^1.1.2", - "path-is-absolute": "^1.0.1", - "slash": "^1.0.0", - "source-map": "^0.5.6", - "v8flags": "^2.1.1" + "babel-core": "6.26.3", + "babel-polyfill": "6.26.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "chokidar": "1.7.0", + "commander": "2.19.0", + "convert-source-map": "1.6.0", + "fs-readdir-recursive": "1.1.0", + "glob": "7.1.3", + "lodash": "4.17.11", + "output-file-sync": "1.1.2", + "path-is-absolute": "1.0.1", + "slash": "1.0.0", + "source-map": "0.5.7", + "v8flags": "2.1.1" } }, "babel-code-frame": { @@ -313,9 +313,9 @@ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" }, "dependencies": { "chalk": { @@ -323,11 +323,11 @@ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { - "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" + "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" } } } @@ -337,25 +337,25 @@ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.1", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.6.0", + "debug": "2.6.9", + "json5": "0.5.1", + "lodash": "4.17.11", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "slash": "1.0.0", + "source-map": "0.5.7" }, "dependencies": { "debug": { @@ -373,14 +373,14 @@ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.11", + "source-map": "0.5.7", + "trim-right": "1.0.1" } }, "babel-helper-builder-binary-assignment-operator-visitor": { @@ -388,9 +388,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "requires": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-explode-assignable-expression": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-builder-react-jsx": { @@ -398,9 +398,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "esutils": "^2.0.2" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "esutils": "2.0.2" } }, "babel-helper-call-delegate": { @@ -408,10 +408,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-define-map": { @@ -419,10 +419,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.11" } }, "babel-helper-explode-assignable-expression": { @@ -430,9 +430,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-function-name": { @@ -440,11 +440,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "requires": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-get-function-arity": { @@ -452,8 +452,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-hoist-variables": { @@ -461,8 +461,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-optimise-call-expression": { @@ -470,8 +470,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-regex": { @@ -479,9 +479,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.11" } }, "babel-helper-remap-async-to-generator": { @@ -489,11 +489,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-replace-supers": { @@ -501,12 +501,12 @@ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "requires": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-optimise-call-expression": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helpers": { @@ -514,8 +514,8 @@ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-messages": { @@ -523,7 +523,7 @@ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-check-es2015-constants": { @@ -531,7 +531,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-syntax-async-functions": { @@ -564,9 +564,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-functions": "6.13.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-arrow-functions": { @@ -574,7 +574,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -582,7 +582,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -590,11 +590,11 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "requires": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.11" } }, "babel-plugin-transform-es2015-classes": { @@ -602,15 +602,15 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "requires": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-define-map": "6.26.0", + "babel-helper-function-name": "6.24.1", + "babel-helper-optimise-call-expression": "6.24.1", + "babel-helper-replace-supers": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-computed-properties": { @@ -618,8 +618,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-destructuring": { @@ -627,7 +627,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -635,8 +635,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-for-of": { @@ -644,7 +644,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -652,9 +652,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-literals": { @@ -662,7 +662,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -670,9 +670,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -680,10 +680,10 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-modules-systemjs": { @@ -691,9 +691,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-modules-umd": { @@ -701,9 +701,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "requires": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-object-super": { @@ -711,8 +711,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "requires": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" + "babel-helper-replace-supers": "6.24.1", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -720,12 +720,12 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "requires": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-call-delegate": "6.24.1", + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-shorthand-properties": { @@ -733,8 +733,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-spread": { @@ -742,7 +742,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -750,9 +750,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-template-literals": { @@ -760,7 +760,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -768,7 +768,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -776,9 +776,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "regexpu-core": "2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -786,9 +786,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", + "babel-plugin-syntax-exponentiation-operator": "6.13.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-flow-strip-types": { @@ -796,8 +796,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", "requires": { - "babel-plugin-syntax-flow": "^6.18.0", - "babel-runtime": "^6.22.0" + "babel-plugin-syntax-flow": "6.18.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-react-display-name": { @@ -805,7 +805,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-react-jsx": { @@ -813,9 +813,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", "requires": { - "babel-helper-builder-react-jsx": "^6.24.1", - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-builder-react-jsx": "6.26.0", + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-react-jsx-self": { @@ -823,8 +823,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", "requires": { - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-react-jsx-source": { @@ -832,8 +832,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", "requires": { - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-regenerator": { @@ -841,7 +841,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "requires": { - "regenerator-transform": "^0.10.0" + "regenerator-transform": "0.10.1" } }, "babel-plugin-transform-strict-mode": { @@ -849,8 +849,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-polyfill": { @@ -858,9 +858,9 @@ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "requires": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" + "babel-runtime": "6.26.0", + "core-js": "2.5.7", + "regenerator-runtime": "0.10.5" }, "dependencies": { "regenerator-runtime": { @@ -875,36 +875,36 @@ "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-to-generator": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.23.0", - "babel-plugin-transform-es2015-classes": "^6.23.0", - "babel-plugin-transform-es2015-computed-properties": "^6.22.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", - "babel-plugin-transform-es2015-for-of": "^6.23.0", - "babel-plugin-transform-es2015-function-name": "^6.22.0", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.22.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-umd": "^6.23.0", - "babel-plugin-transform-es2015-object-super": "^6.22.0", - "babel-plugin-transform-es2015-parameters": "^6.23.0", - "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", - "babel-plugin-transform-exponentiation-operator": "^6.22.0", - "babel-plugin-transform-regenerator": "^6.22.0", - "browserslist": "^3.2.6", - "invariant": "^2.2.2", - "semver": "^5.3.0" + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-async-to-generator": "6.24.1", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-exponentiation-operator": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0", + "browserslist": "3.2.8", + "invariant": "2.2.4", + "semver": "5.5.1" } }, "babel-preset-es2015": { @@ -912,30 +912,30 @@ "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.24.1", - "babel-plugin-transform-es2015-classes": "^6.24.1", - "babel-plugin-transform-es2015-computed-properties": "^6.24.1", - "babel-plugin-transform-es2015-destructuring": "^6.22.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", - "babel-plugin-transform-es2015-for-of": "^6.22.0", - "babel-plugin-transform-es2015-function-name": "^6.24.1", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-umd": "^6.24.1", - "babel-plugin-transform-es2015-object-super": "^6.24.1", - "babel-plugin-transform-es2015-parameters": "^6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", - "babel-plugin-transform-regenerator": "^6.24.1" + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0" } }, "babel-preset-flow": { @@ -943,7 +943,7 @@ "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", "requires": { - "babel-plugin-transform-flow-strip-types": "^6.22.0" + "babel-plugin-transform-flow-strip-types": "6.22.0" } }, "babel-preset-react": { @@ -951,12 +951,12 @@ "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", "requires": { - "babel-plugin-syntax-jsx": "^6.3.13", - "babel-plugin-transform-react-display-name": "^6.23.0", - "babel-plugin-transform-react-jsx": "^6.24.1", - "babel-plugin-transform-react-jsx-self": "^6.22.0", - "babel-plugin-transform-react-jsx-source": "^6.22.0", - "babel-preset-flow": "^6.23.0" + "babel-plugin-syntax-jsx": "6.18.0", + "babel-plugin-transform-react-display-name": "6.25.0", + "babel-plugin-transform-react-jsx": "6.24.1", + "babel-plugin-transform-react-jsx-self": "6.22.0", + "babel-plugin-transform-react-jsx-source": "6.22.0", + "babel-preset-flow": "6.23.0" } }, "babel-register": { @@ -964,13 +964,13 @@ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" + "babel-core": "6.26.3", + "babel-runtime": "6.26.0", + "core-js": "2.5.7", + "home-or-tmp": "2.0.0", + "lodash": "4.17.11", + "mkdirp": "0.5.1", + "source-map-support": "0.4.18" } }, "babel-runtime": { @@ -978,8 +978,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "babel-template": { @@ -987,11 +987,11 @@ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.11" } }, "babel-traverse": { @@ -999,15 +999,15 @@ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.4", + "lodash": "4.17.11" }, "dependencies": { "debug": { @@ -1025,10 +1025,10 @@ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.11", + "to-fast-properties": "1.0.3" } }, "babylon": { @@ -1051,13 +1051,13 @@ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "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.2.0", - "pascalcase": "^0.1.1" + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" }, "dependencies": { "define-property": { @@ -1065,7 +1065,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -1073,7 +1073,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -1081,7 +1081,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -1089,9 +1089,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -1111,7 +1111,7 @@ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.4.tgz", "integrity": "sha512-UYOadoSIkEI/VrRGSG6qp93rp2WdokiAiNYDfGW5qURAY8GiAQkvMbwNNSDYiVJopqv4gCna7xqf4rrNGp+5AA==", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "base64-arraybuffer": { @@ -1135,13 +1135,26 @@ "integrity": "sha512-LIVmqIrIWuiqTvn4RzcrwCOuHo2DD6tKmKBPXXlr4p4n4l6BZBkwFTIa3zu1XkX5MbZgro4a6BvPi+n2Mns5Gg==", "dev": true }, + "bch-wallet-bridge-provider-interface": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/bch-wallet-bridge-provider-interface/-/bch-wallet-bridge-provider-interface-0.1.1.tgz", + "integrity": "sha512-m8Mq/aJhZN11aoa91YyYs/B1GxWfpT5IIp64IU5VRgNxGXBuUiIfvybk4XQR+zrHaMW4SLrD1tI9n59ogmEw/A==" + }, + "bch-wallet-bridge.js": { + "version": "github:web3bch/bch-wallet-bridge.js#f73558eaf3a98ba2a23de3c9cbbd582b30ff19eb", + "requires": { + "bch-wallet-bridge-provider-interface": "0.1.1", + "bchaddrjs": "0.2.2", + "bitcoincashjs": "0.1.10" + } + }, "bchaddrjs": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.2.tgz", "integrity": "sha512-W06sUpprptb65JHbu2yFdv8Tg7o2OWpD5n2pMUIhuLOXC5c64eMW7y9Pg0IHd/Qe31e1KwnHT9H1w6Pf9r4Fkg==", "requires": { - "bs58check": "^2.1.1", - "cashaddrjs": "^0.2.7" + "bs58check": "2.1.2", + "cashaddrjs": "0.2.9" } }, "bcrypt-pbkdf": { @@ -1151,7 +1164,7 @@ "dev": true, "optional": true, "requires": { - "tweetnacl": "^0.14.3" + "tweetnacl": "0.14.5" } }, "bech32": { @@ -1194,19 +1207,17 @@ }, "bip21": { "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "from": "github:Bitcoin-com/bip21", "requires": { - "qs": "^6.3.0" + "qs": "6.5.2" } }, "bip32-utils": { "version": "github:Bitcoin-com/bip32-utils#966fb8f0e0d4c667e4ee89adfa20c2078d66887c", - "from": "github:Bitcoin-com/bip32-utils#0.13.0", "requires": { - "keccak": "^1.3.0", - "nyc": "*", - "standard": "^11.0.1", - "tape": "*" + "keccak": "1.4.0", + "nyc": "11.9.0", + "standard": "11.0.1", + "tape": "4.9.1" } }, "bip38": { @@ -1214,13 +1225,13 @@ "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", "integrity": "sha512-22KDak0RDyghFbR0Si7wyq9IgY423YzGYzWLpGeofH3DaolOQqjD3mNN08eFoubKlbyclOQKFwtONMv2SD9V3A==", "requires": { - "bigi": "^1.2.0", - "browserify-aes": "^1.0.1", - "bs58check": "<3.0.0", - "buffer-xor": "^1.0.2", - "create-hash": "^1.1.1", - "ecurve": "^1.0.0", - "scryptsy": "^2.0.0" + "bigi": "1.4.2", + "browserify-aes": "1.2.0", + "bs58check": "2.1.2", + "buffer-xor": "1.0.3", + "create-hash": "1.2.0", + "ecurve": "1.0.6", + "scryptsy": "2.0.0" } }, "bip39": { @@ -1228,11 +1239,11 @@ "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", "requires": { - "create-hash": "^1.1.0", - "pbkdf2": "^3.0.9", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "unorm": "^1.3.3" + "create-hash": "1.2.0", + "pbkdf2": "3.0.17", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2", + "unorm": "1.4.1" } }, "bip66": { @@ -1240,23 +1251,21 @@ "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "bip68": { - "version": "github:Bitcoin-com/bip68#aeac5a8c5c1e01dfba79ff3eb824171be004a28c", - "from": "github:Bitcoin-com/bip68#1.0.5" + "version": "github:Bitcoin-com/bip68#aeac5a8c5c1e01dfba79ff3eb824171be004a28c" }, "bitcoin-ops": { - "version": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646", - "from": "github:Bitcoin-com/bitcoincash-ops#1.5.0" + "version": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646" }, "bitcoin-txdecoder": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/bitcoin-txdecoder/-/bitcoin-txdecoder-0.0.3.tgz", "integrity": "sha512-pH/eF5hQ65y54U23mzuF42wEj9YWj4WKHAIj2il6b1+oRoi/oyM4Ti3e8nMD8ajippICmyquqbyCZKGq3i4W+A==", "requires": { - "bitcoinjs-lib": "3.3.*" + "bitcoinjs-lib": "3.3.2" } }, "bitcoincashjs": { @@ -1264,15 +1273,15 @@ "resolved": "https://registry.npmjs.org/bitcoincashjs/-/bitcoincashjs-0.1.10.tgz", "integrity": "sha512-M4SiYYZEWUqWyp2ZE+imxP6Pgm15B4GIU+PvRo1ISvlgnxrwUANEVWAIW5+tam5MD3sO+XqnfK14ymRw14nCFQ==", "requires": { - "big-integer": "^1.6.26", - "bn.js": "=2.0.4", - "bs58": "=2.0.0", - "buffer-compare": "=1.0.0", - "cashaddrjs": "^0.2.8", - "elliptic": "=3.0.3", - "inherits": "=2.0.1", - "lodash": "^4.17.4", - "unorm": "^1.4.1" + "big-integer": "1.6.36", + "bn.js": "2.0.4", + "bs58": "2.0.0", + "buffer-compare": "1.0.0", + "cashaddrjs": "0.2.9", + "elliptic": "3.0.3", + "inherits": "2.0.1", + "lodash": "4.17.11", + "unorm": "1.4.1" }, "dependencies": { "bn.js": { @@ -1290,33 +1299,32 @@ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-3.0.3.tgz", "integrity": "sha1-hlybQgv75VAGuflp+XoNLESWZZU=", "requires": { - "bn.js": "^2.0.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "inherits": "^2.0.1" + "bn.js": "2.0.4", + "brorand": "1.1.0", + "hash.js": "1.1.5", + "inherits": "2.0.1" } } } }, "bitcoincashjs-lib": { "version": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", - "from": "github:Bitcoin-com/bitcoincashjs-lib#3.3.4", - "requires": { - "bech32": "^1.1.2", - "bigi": "^1.4.0", - "bip66": "^1.1.0", - "bitcoin-ops": "^1.3.0", - "bs58check": "^2.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.3", - "ecurve": "^1.0.0", - "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "^1.0.1", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "typeforce": "^1.11.3", - "varuint-bitcoin": "^1.0.4", - "wif": "^2.0.1" + "requires": { + "bech32": "1.1.3", + "bigi": "1.4.2", + "bip66": "1.1.5", + "bitcoin-ops": "1.4.1", + "bs58check": "2.1.2", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ecurve": "1.0.6", + "merkle-lib": "2.0.10", + "pushdata-bitcoin": "1.0.1", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2", + "typeforce": "1.13.2", + "varuint-bitcoin": "1.1.0", + "wif": "2.0.6" }, "dependencies": { "bitcoin-ops": { @@ -1331,21 +1339,21 @@ "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-3.3.2.tgz", "integrity": "sha512-l5qqvbaK8wwtANPf6oEffykycg4383XgEYdia1rI7/JpGf1jfRWlOUCvx5TiTZS7kyIvY4j/UhIQ2urLsvGkzw==", "requires": { - "bech32": "^1.1.2", - "bigi": "^1.4.0", - "bip66": "^1.1.0", - "bitcoin-ops": "^1.3.0", - "bs58check": "^2.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.3", - "ecurve": "^1.0.0", - "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "^1.0.1", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "typeforce": "^1.11.3", - "varuint-bitcoin": "^1.0.4", - "wif": "^2.0.1" + "bech32": "1.1.3", + "bigi": "1.4.2", + "bip66": "1.1.5", + "bitcoin-ops": "1.4.1", + "bs58check": "2.1.2", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ecurve": "1.0.6", + "merkle-lib": "2.0.10", + "pushdata-bitcoin": "1.0.1", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2", + "typeforce": "1.13.2", + "varuint-bitcoin": "1.1.0", + "wif": "2.0.6" }, "dependencies": { "bitcoin-ops": { @@ -1360,11 +1368,11 @@ "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", "requires": { - "bs58check": "^2.0.2", - "buffer-equals": "^1.0.3", - "create-hash": "^1.1.2", - "secp256k1": "^3.0.1", - "varuint-bitcoin": "^1.0.1" + "bs58check": "2.1.2", + "buffer-equals": "1.0.4", + "create-hash": "1.2.0", + "secp256k1": "3.5.2", + "varuint-bitcoin": "1.1.0" } }, "blob": { @@ -1383,13 +1391,13 @@ "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", "dev": true, "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" + "ansi-align": "2.0.0", + "camelcase": "4.1.0", + "chalk": "2.4.1", + "cli-boxes": "1.0.0", + "string-width": "2.1.1", + "term-size": "1.2.0", + "widest-line": "2.0.0" } }, "brace-expansion": { @@ -1397,7 +1405,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -1407,9 +1415,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "optional": true, "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.3" } }, "brorand": { @@ -1427,12 +1435,12 @@ "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "buffer-xor": "1.0.3", + "cipher-base": "1.0.4", + "create-hash": "1.2.0", + "evp_bytestokey": "1.0.3", + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "browserslist": { @@ -1440,8 +1448,8 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "requires": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" + "caniuse-lite": "1.0.30000890", + "electron-to-chromium": "1.3.75" } }, "bs58": { @@ -1449,7 +1457,7 @@ "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", "requires": { - "base-x": "^3.0.2" + "base-x": "3.0.4" } }, "bs58check": { @@ -1457,9 +1465,9 @@ "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" + "bs58": "4.0.1", + "create-hash": "1.2.0", + "safe-buffer": "5.1.2" } }, "buffer": { @@ -1467,8 +1475,8 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" + "base64-js": "1.3.0", + "ieee754": "1.1.12" } }, "buffer-compare": { @@ -1501,15 +1509,15 @@ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "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" }, "dependencies": { "isobject": { @@ -1547,7 +1555,7 @@ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "requires": { - "callsites": "^0.2.0" + "callsites": "0.2.0" } }, "callsite": { @@ -1570,7 +1578,7 @@ "resolved": "https://registry.npmjs.org/can-promise/-/can-promise-0.0.1.tgz", "integrity": "sha512-gzVrHyyrvgt0YpDm7pn04MQt8gjh0ZAhN4ZDyCRtGl6YnuuK6b4aiUTD7G52r9l4YNmxfTtEscb92vxtAlL6XQ==", "requires": { - "window-or-global": "^1.0.1" + "window-or-global": "1.0.1" } }, "caniuse-lite": { @@ -1595,7 +1603,7 @@ "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.2.9.tgz", "integrity": "sha512-DhJF4iAH0/RM3UjHDHKRxzs09YGL9px+oTyizzydanhC7jTyM2aJ+aLKA96vZGTTWayvvr2iDF2l13lpqXiRFg==", "requires": { - "big-integer": "^1.6.34" + "big-integer": "1.6.36" } }, "chai": { @@ -1604,12 +1612,12 @@ "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", "dev": true, "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.0", - "type-detect": "^4.0.5" + "assertion-error": "1.1.0", + "check-error": "1.0.2", + "deep-eql": "3.0.1", + "get-func-name": "2.0.0", + "pathval": "1.1.0", + "type-detect": "4.0.8" } }, "chalk": { @@ -1617,9 +1625,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" }, "dependencies": { "ansi-styles": { @@ -1627,7 +1635,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "color-convert": "^1.9.0" + "color-convert": "1.9.3" } }, "supports-color": { @@ -1635,7 +1643,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -1657,15 +1665,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "optional": true, "requires": { - "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" + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.2.4", + "glob-parent": "2.0.0", + "inherits": "2.0.1", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.2.1" } }, "ci-info": { @@ -1679,8 +1687,8 @@ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "circular-json": { @@ -1693,10 +1701,10 @@ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" }, "dependencies": { "define-property": { @@ -1704,7 +1712,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "isobject": { @@ -1736,7 +1744,7 @@ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { - "restore-cursor": "^2.0.0" + "restore-cursor": "2.0.0" } }, "cli-width": { @@ -1749,9 +1757,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" }, "dependencies": { "string-width": { @@ -1759,9 +1767,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -1772,7 +1780,7 @@ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "dev": true, "requires": { - "mimic-response": "^1.0.0" + "mimic-response": "1.0.1" } }, "co": { @@ -1787,9 +1795,8 @@ }, "coininfo": { "version": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", - "from": "github:Bitcoin-com/coininfo", "requires": { - "safe-buffer": "^5.1.1" + "safe-buffer": "5.1.2" } }, "collection-visit": { @@ -1797,8 +1804,8 @@ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "map-visit": "1.0.0", + "object-visit": "1.0.1" } }, "color-convert": { @@ -1820,7 +1827,7 @@ "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", "dev": true, "requires": { - "delayed-stream": "~1.0.0" + "delayed-stream": "1.0.0" } }, "commander": { @@ -1853,10 +1860,10 @@ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "buffer-from": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "typedarray": "0.0.6" }, "dependencies": { "inherits": { @@ -1872,12 +1879,12 @@ "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", "dev": true, "requires": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" + "dot-prop": "4.2.0", + "graceful-fs": "4.1.11", + "make-dir": "1.3.0", + "unique-string": "1.0.0", + "write-file-atomic": "2.3.0", + "xdg-basedir": "3.0.0" } }, "contains-path": { @@ -1890,7 +1897,7 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", "requires": { - "safe-buffer": "~5.1.1" + "safe-buffer": "5.1.2" } }, "cookie": { @@ -1925,12 +1932,12 @@ "integrity": "sha512-Tv0LKe/MkBOilH2v7WBiTBdudg2ChfGbdXafc/s330djpF3zKOmuehTeRwjXWc7pzfj9FrDUTA7tEx6Div8NFw==", "dev": true, "requires": { - "growl": "~> 1.10.0", - "js-yaml": "^3.11.0", - "lcov-parse": "^0.0.10", - "log-driver": "^1.2.7", - "minimist": "^1.2.0", - "request": "^2.85.0" + "growl": "1.10.5", + "js-yaml": "3.12.0", + "lcov-parse": "0.0.10", + "log-driver": "1.2.7", + "minimist": "1.2.0", + "request": "2.88.0" }, "dependencies": { "minimist": { @@ -1946,11 +1953,11 @@ "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-5.0.0.tgz", "integrity": "sha1-vHAP0wyjLSTUbH+wK5kuQ1/FqXg=", "requires": { - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "nested-error-stacks": "^2.0.0", - "pify": "^3.0.0", - "safe-buffer": "^5.0.1" + "graceful-fs": "4.1.11", + "make-dir": "1.3.0", + "nested-error-stacks": "2.1.0", + "pify": "3.0.0", + "safe-buffer": "5.1.2" } }, "create-error-class": { @@ -1959,7 +1966,7 @@ "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "dev": true, "requires": { - "capture-stack-trace": "^1.0.0" + "capture-stack-trace": "1.0.1" } }, "create-hash": { @@ -1967,11 +1974,11 @@ "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" + "cipher-base": "1.0.4", + "inherits": "2.0.1", + "md5.js": "1.3.5", + "ripemd160": "2.0.2", + "sha.js": "2.4.11" } }, "create-hmac": { @@ -1979,12 +1986,12 @@ "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "cipher-base": "1.0.4", + "create-hash": "1.2.0", + "inherits": "2.0.1", + "ripemd160": "2.0.2", + "safe-buffer": "5.1.2", + "sha.js": "2.4.11" } }, "cross-spawn": { @@ -1992,9 +1999,9 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.1" } }, "crypto-random-string": { @@ -2009,7 +2016,7 @@ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "debug": { @@ -2041,7 +2048,7 @@ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "dev": true, "requires": { - "mimic-response": "^1.0.0" + "mimic-response": "1.0.1" } }, "deep-eql": { @@ -2050,7 +2057,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "^4.0.0" + "type-detect": "4.0.8" } }, "deep-equal": { @@ -2074,7 +2081,7 @@ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "requires": { - "object-keys": "^1.0.12" + "object-keys": "1.0.12" } }, "define-property": { @@ -2082,8 +2089,8 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "is-descriptor": "1.0.2", + "isobject": "3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -2091,7 +2098,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -2099,7 +2106,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -2107,9 +2114,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -2134,12 +2141,12 @@ "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.1.tgz", "integrity": "sha512-2kjwuGGonL7gWE1XU4Fv79+vVzpoQCl0V+boMwWtOQJV2AGDabCwez++nB1Nli/8BabAfZQ/UuHPlp6AymKdWw==", "requires": { - "find-root": "^1.0.0", - "glob": "^7.0.5", - "ignore": "^3.0.9", - "pkg-config": "^1.1.0", - "run-parallel": "^1.1.2", - "uniq": "^1.0.1" + "find-root": "1.1.0", + "glob": "7.1.3", + "ignore": "3.3.10", + "pkg-config": "1.1.1", + "run-parallel": "1.1.9", + "uniq": "1.0.1" } }, "del": { @@ -2147,13 +2154,13 @@ "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "requires": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" + "globby": "5.0.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.1", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "rimraf": "2.6.2" }, "dependencies": { "pify": { @@ -2180,7 +2187,7 @@ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "diff": { @@ -2198,7 +2205,7 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "requires": { - "esutils": "^2.0.2" + "esutils": "2.0.2" } }, "dot-prop": { @@ -2207,7 +2214,7 @@ "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", "dev": true, "requires": { - "is-obj": "^1.0.0" + "is-obj": "1.0.1" } }, "drbg.js": { @@ -2215,9 +2222,9 @@ "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", "requires": { - "browserify-aes": "^1.0.6", - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4" + "browserify-aes": "1.2.0", + "create-hash": "1.2.0", + "create-hmac": "1.1.7" } }, "duplexer": { @@ -2239,8 +2246,8 @@ "dev": true, "optional": true, "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "jsbn": "0.1.1", + "safer-buffer": "2.1.2" } }, "ecurve": { @@ -2248,8 +2255,8 @@ "resolved": "https://registry.npmjs.org/ecurve/-/ecurve-1.0.6.tgz", "integrity": "sha512-/BzEjNfiSuB7jIWKcS/z8FK9jNjmEWvUV2YZ4RLSmcDtP7Lq0m6FvDuSnJpBlDpGRpfRQeTLGLBI8H+kEv0r+w==", "requires": { - "bigi": "^1.1.0", - "safe-buffer": "^5.0.1" + "bigi": "1.4.2", + "safe-buffer": "5.1.2" } }, "electron-to-chromium": { @@ -2262,13 +2269,13 @@ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" + "bn.js": "4.11.8", + "brorand": "1.1.0", + "hash.js": "1.1.5", + "hmac-drbg": "1.0.1", + "inherits": "2.0.1", + "minimalistic-assert": "1.0.1", + "minimalistic-crypto-utils": "1.0.1" } }, "engine.io": { @@ -2276,12 +2283,12 @@ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.0.tgz", "integrity": "sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==", "requires": { - "accepts": "~1.3.4", + "accepts": "1.3.5", "base64id": "1.0.0", "cookie": "0.3.1", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.0", - "ws": "~3.3.1" + "debug": "3.1.0", + "engine.io-parser": "2.1.2", + "ws": "3.3.3" } }, "engine.io-client": { @@ -2291,14 +2298,14 @@ "requires": { "component-emitter": "1.2.1", "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.1", + "debug": "3.1.0", + "engine.io-parser": "2.1.2", "has-cors": "1.1.0", "indexof": "0.0.1", "parseqs": "0.0.5", "parseuri": "0.0.5", - "ws": "~3.3.1", - "xmlhttprequest-ssl": "~1.5.4", + "ws": "3.3.3", + "xmlhttprequest-ssl": "1.5.5", "yeast": "0.1.2" } }, @@ -2308,10 +2315,10 @@ "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==", "requires": { "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", + "arraybuffer.slice": "0.0.7", "base64-arraybuffer": "0.1.5", "blob": "0.0.4", - "has-binary2": "~1.0.2" + "has-binary2": "1.0.3" } }, "error-ex": { @@ -2319,7 +2326,7 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "es-abstract": { @@ -2327,11 +2334,11 @@ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", "requires": { - "es-to-primitive": "^1.1.1", - "function-bind": "^1.1.1", - "has": "^1.0.1", - "is-callable": "^1.1.3", - "is-regex": "^1.0.4" + "es-to-primitive": "1.2.0", + "function-bind": "1.1.1", + "has": "1.0.3", + "is-callable": "1.1.4", + "is-regex": "1.0.4" } }, "es-to-primitive": { @@ -2339,9 +2346,9 @@ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "is-callable": "1.1.4", + "is-date-object": "1.0.1", + "is-symbol": "1.0.2" } }, "es6-promise": { @@ -2361,44 +2368,44 @@ "integrity": "sha512-hgrDtGWz368b7Wqf+v1Z69O3ZebNR0+GA7PtDdbmuz4rInFVUV9uw7whjZEiWyLzCjVb5Rs5WRN1TAS6eo7AYA==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.5.3", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^2.1.0", - "eslint-scope": "^4.0.0", - "eslint-utils": "^1.3.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^4.0.0", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.7.0", - "ignore": "^4.0.6", - "imurmurhash": "^0.1.4", - "inquirer": "^6.1.0", - "is-resolvable": "^1.1.0", - "js-yaml": "^3.12.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.5", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "regexpp": "^2.0.0", - "require-uncached": "^1.0.3", - "semver": "^5.5.1", - "strip-ansi": "^4.0.0", - "strip-json-comments": "^2.0.1", - "table": "^4.0.3", - "text-table": "^0.2.0" + "@babel/code-frame": "7.0.0", + "ajv": "6.5.4", + "chalk": "2.4.1", + "cross-spawn": "6.0.5", + "debug": "4.1.0", + "doctrine": "2.1.0", + "eslint-scope": "4.0.0", + "eslint-utils": "1.3.1", + "eslint-visitor-keys": "1.0.0", + "espree": "4.0.0", + "esquery": "1.0.1", + "esutils": "2.0.2", + "file-entry-cache": "2.0.0", + "functional-red-black-tree": "1.0.1", + "glob": "7.1.3", + "globals": "11.8.0", + "ignore": "4.0.6", + "imurmurhash": "0.1.4", + "inquirer": "6.2.0", + "is-resolvable": "1.1.0", + "js-yaml": "3.12.0", + "json-stable-stringify-without-jsonify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.11", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "7.0.0", + "progress": "2.0.0", + "regexpp": "2.0.1", + "require-uncached": "1.0.3", + "semver": "5.5.1", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", + "table": "4.0.3", + "text-table": "0.2.0" }, "dependencies": { "@babel/code-frame": { @@ -2407,7 +2414,7 @@ "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", "dev": true, "requires": { - "@babel/highlight": "^7.0.0" + "@babel/highlight": "7.0.0" } }, "@babel/highlight": { @@ -2416,9 +2423,9 @@ "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", "dev": true, "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" + "chalk": "2.4.1", + "esutils": "2.0.2", + "js-tokens": "4.0.0" } }, "acorn-jsx": { @@ -2427,7 +2434,7 @@ "integrity": "sha512-JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw==", "dev": true, "requires": { - "acorn": "^5.0.3" + "acorn": "5.7.3" } }, "ajv": { @@ -2436,10 +2443,10 @@ "integrity": "sha512-4Wyjt8+t6YszqaXnLDfMmG/8AlO5Zbcsy3ATHncCzjW/NoPzAId8AK6749Ybjmdt+kUY1gP60fCu46oDxPv/mg==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "fast-deep-equal": "2.0.1", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" } }, "ajv-keywords": { @@ -2466,11 +2473,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "nice-try": "1.0.5", + "path-key": "2.0.1", + "semver": "5.5.1", + "shebang-command": "1.2.0", + "which": "1.3.1" } }, "debug": { @@ -2479,7 +2486,7 @@ "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.1" } }, "eslint-scope": { @@ -2488,8 +2495,8 @@ "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", "dev": true, "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "esrecurse": "4.2.1", + "estraverse": "4.2.0" } }, "espree": { @@ -2498,8 +2505,8 @@ "integrity": "sha512-kapdTCt1bjmspxStVKX6huolXVV5ZfyZguY1lcfhVVZstce3bqxH9mcLzNn3/mlgW6wQ732+0fuG9v7h0ZQoKg==", "dev": true, "requires": { - "acorn": "^5.6.0", - "acorn-jsx": "^4.1.1" + "acorn": "5.7.3", + "acorn-jsx": "4.1.1" } }, "external-editor": { @@ -2508,9 +2515,9 @@ "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", "dev": true, "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" + "chardet": "0.7.0", + "iconv-lite": "0.4.24", + "tmp": "0.0.33" } }, "fast-deep-equal": { @@ -2537,19 +2544,19 @@ "integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==", "dev": true, "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.0", - "figures": "^2.0.0", - "lodash": "^4.17.10", + "ansi-escapes": "3.1.0", + "chalk": "2.4.1", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "3.0.3", + "figures": "2.0.0", + "lodash": "4.17.11", "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.1.0", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" + "run-async": "2.3.0", + "rxjs": "6.3.3", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" } }, "js-tokens": { @@ -2576,7 +2583,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } }, "table": { @@ -2585,12 +2592,12 @@ "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", "dev": true, "requires": { - "ajv": "^6.0.1", - "ajv-keywords": "^3.0.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", + "ajv": "6.5.4", + "ajv-keywords": "3.2.0", + "chalk": "2.4.1", + "lodash": "4.17.11", "slice-ansi": "1.0.0", - "string-width": "^2.1.1" + "string-width": "2.1.1" } } } @@ -2601,7 +2608,7 @@ "integrity": "sha512-QYGfmzuc4q4J6XIhlp8vRKdI/fI0tQfQPy1dME3UOLprE+v4ssH/3W9LM2Q7h5qBcy5m0ehCrBDU2YF8q6OY8w==", "dev": true, "requires": { - "get-stdin": "^6.0.0" + "get-stdin": "6.0.0" } }, "eslint-config-standard": { @@ -2619,8 +2626,8 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", "requires": { - "debug": "^2.6.9", - "resolve": "^1.5.0" + "debug": "2.6.9", + "resolve": "1.8.1" }, "dependencies": { "debug": { @@ -2638,8 +2645,8 @@ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", "requires": { - "debug": "^2.6.8", - "pkg-dir": "^1.0.0" + "debug": "2.6.9", + "pkg-dir": "1.0.0" }, "dependencies": { "debug": { @@ -2658,8 +2665,8 @@ "integrity": "sha512-9XcVyZiQRVeFjqHw8qHNDAZcQLqaHlOGGpeYqzYh8S4JYCWTCO3yzyen8yVmA5PratfzTRWDwCOFphtDEG+w/w==", "dev": true, "requires": { - "eslint-utils": "^1.3.0", - "regexpp": "^2.0.0" + "eslint-utils": "1.3.1", + "regexpp": "2.0.1" } }, "eslint-plugin-import": { @@ -2667,16 +2674,16 @@ "resolved": "http://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz", "integrity": "sha1-JgAu+/ylmJtyiKwEdQi9JPIXsWk=", "requires": { - "builtin-modules": "^1.1.1", - "contains-path": "^0.1.0", - "debug": "^2.6.8", + "builtin-modules": "1.1.1", + "contains-path": "0.1.0", + "debug": "2.6.9", "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.1", - "eslint-module-utils": "^2.1.1", - "has": "^1.0.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.3", - "read-pkg-up": "^2.0.0" + "eslint-import-resolver-node": "0.3.2", + "eslint-module-utils": "2.2.0", + "has": "1.0.3", + "lodash": "4.17.11", + "minimatch": "3.0.4", + "read-pkg-up": "2.0.0" }, "dependencies": { "debug": { @@ -2692,8 +2699,8 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" + "esutils": "2.0.2", + "isarray": "1.0.0" } } } @@ -2704,12 +2711,12 @@ "integrity": "sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw==", "dev": true, "requires": { - "eslint-plugin-es": "^1.3.1", - "eslint-utils": "^1.3.1", - "ignore": "^4.0.2", - "minimatch": "^3.0.4", - "resolve": "^1.8.1", - "semver": "^5.5.0" + "eslint-plugin-es": "1.3.1", + "eslint-utils": "1.3.1", + "ignore": "4.0.6", + "minimatch": "3.0.4", + "resolve": "1.8.1", + "semver": "5.5.1" }, "dependencies": { "ignore": { @@ -2726,8 +2733,8 @@ "integrity": "sha512-CStQYJgALoQBw3FsBzH0VOVDRnJ/ZimUlpLm226U8qgqYJfPOY/CPK6wyRInMxh73HSKg5wyRwdS4BVYYHwokA==", "dev": true, "requires": { - "fast-diff": "^1.1.1", - "jest-docblock": "^21.0.0" + "fast-diff": "1.2.0", + "jest-docblock": "21.2.0" } }, "eslint-plugin-promise": { @@ -2740,10 +2747,10 @@ "resolved": "http://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz", "integrity": "sha512-KC7Snr4YsWZD5flu6A5c0AcIZidzW3Exbqp7OT67OaD2AppJtlBr/GuPrW/vaQM/yfZotEvKAdrxrO+v8vwYJA==", "requires": { - "doctrine": "^2.0.2", - "has": "^1.0.1", - "jsx-ast-utils": "^2.0.1", - "prop-types": "^15.6.0" + "doctrine": "2.1.0", + "has": "1.0.3", + "jsx-ast-utils": "2.0.1", + "prop-types": "15.6.2" } }, "eslint-plugin-standard": { @@ -2756,8 +2763,8 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "esrecurse": "4.2.1", + "estraverse": "4.2.0" } }, "eslint-utils": { @@ -2776,8 +2783,8 @@ "resolved": "http://registry.npmjs.org/espree/-/espree-3.5.4.tgz", "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" + "acorn": "5.7.3", + "acorn-jsx": "3.0.1" } }, "esprima": { @@ -2790,7 +2797,7 @@ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "requires": { - "estraverse": "^4.0.0" + "estraverse": "4.2.0" } }, "esrecurse": { @@ -2798,7 +2805,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "requires": { - "estraverse": "^4.1.0" + "estraverse": "4.2.0" } }, "estraverse": { @@ -2817,14 +2824,14 @@ "integrity": "sha512-dGXNg4F/FgVzlApjzItL+7naHutA3fDqbV/zAZqDDlXTjiMnQmZKu+prImWKszeBM5UQeGvAl3u1wBiKeDh61g==", "dev": true, "requires": { - "duplexer": "^0.1.1", - "flatmap-stream": "^0.1.0", - "from": "^0.1.7", + "duplexer": "0.1.1", + "flatmap-stream": "0.1.1", + "from": "0.1.7", "map-stream": "0.0.7", - "pause-stream": "^0.0.11", - "split": "^1.0.1", - "stream-combiner": "^0.2.2", - "through": "^2.3.8" + "pause-stream": "0.0.11", + "split": "1.0.1", + "stream-combiner": "0.2.2", + "through": "2.3.8" } }, "evp_bytestokey": { @@ -2832,8 +2839,8 @@ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "md5.js": "1.3.5", + "safe-buffer": "5.1.2" } }, "execa": { @@ -2841,13 +2848,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "requires": { - "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" + "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" } }, "expand-brackets": { @@ -2856,7 +2863,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "optional": true, "requires": { - "is-posix-bracket": "^0.1.0" + "is-posix-bracket": "0.1.1" } }, "expand-range": { @@ -2865,7 +2872,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "optional": true, "requires": { - "fill-range": "^2.1.0" + "fill-range": "2.2.4" } }, "extend": { @@ -2879,8 +2886,8 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -2888,7 +2895,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -2898,9 +2905,9 @@ "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" + "chardet": "0.4.2", + "iconv-lite": "0.4.24", + "tmp": "0.0.33" } }, "extglob": { @@ -2909,7 +2916,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "optional": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "extsprintf": { @@ -2949,7 +2956,7 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "requires": { - "escape-string-regexp": "^1.0.5" + "escape-string-regexp": "1.0.5" } }, "file-entry-cache": { @@ -2957,8 +2964,8 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" + "flat-cache": "1.3.0", + "object-assign": "4.1.1" } }, "filename-regex": { @@ -2973,11 +2980,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "optional": true, "requires": { - "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": "2.1.0", + "isobject": "2.1.0", + "randomatic": "3.1.0", + "repeat-element": "1.1.3", + "repeat-string": "1.6.1" } }, "find-root": { @@ -2990,7 +2997,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "flat-cache": { @@ -2998,10 +3005,10 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "requires": { - "circular-json": "^0.3.1", - "del": "^2.0.2", - "graceful-fs": "^4.1.2", - "write": "^0.2.1" + "circular-json": "0.3.3", + "del": "2.2.2", + "graceful-fs": "4.1.11", + "write": "0.2.1" } }, "flatmap-stream": { @@ -3022,7 +3029,7 @@ "integrity": "sha512-JTnCiuaAm66gGuizv4g46MqN1QVldPxySn9DxZ+hCjMaEGFx6ciJhz0iMfS5iv1YKqZo5pBW6qFJ9Zu0jaqvaw==", "dev": true, "requires": { - "lodash.merge": "^4.6.1" + "lodash.merge": "4.6.1" } }, "follow-redirects": { @@ -3030,7 +3037,7 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.9.tgz", "integrity": "sha512-Bh65EZI/RU8nx0wbYF9shkFZlqLP+6WT/5FnA3cE/djNSuKNHJEinGGZgu/cQEkeeb2GdFOgenAmn8qaqYke2w==", "requires": { - "debug": "=3.1.0" + "debug": "3.1.0" } }, "for-each": { @@ -3038,7 +3045,7 @@ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "requires": { - "is-callable": "^1.1.3" + "is-callable": "1.1.4" } }, "for-in": { @@ -3052,7 +3059,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "optional": true, "requires": { - "for-in": "^1.0.1" + "for-in": "1.0.2" } }, "forever-agent": { @@ -3067,9 +3074,9 @@ "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "dev": true, "requires": { - "asynckit": "^0.4.0", + "asynckit": "0.4.0", "combined-stream": "1.0.6", - "mime-types": "^2.1.12" + "mime-types": "2.1.20" }, "dependencies": { "combined-stream": { @@ -3078,7 +3085,7 @@ "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "dev": true, "requires": { - "delayed-stream": "~1.0.0" + "delayed-stream": "1.0.0" } } } @@ -3094,7 +3101,7 @@ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { - "map-cache": "^0.2.2" + "map-cache": "0.2.2" } }, "fresh": { @@ -3115,8 +3122,8 @@ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "inherits": "2.0.1", + "readable-stream": "2.3.6" } }, "fs-readdir-recursive": { @@ -3135,8 +3142,8 @@ "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", "optional": true, "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" + "nan": "2.11.1", + "node-pre-gyp": "0.10.0" }, "dependencies": { "abbrev": { @@ -3162,8 +3169,8 @@ "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "optional": true, "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "delegates": "1.0.0", + "readable-stream": "2.3.6" } }, "balanced-match": { @@ -3176,7 +3183,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -3240,7 +3247,7 @@ "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.2.4" } }, "fs.realpath": { @@ -3255,14 +3262,14 @@ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "optional": true, "requires": { - "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" + "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" } }, "glob": { @@ -3271,12 +3278,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "optional": true, "requires": { - "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" + "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" } }, "has-unicode": { @@ -3291,7 +3298,7 @@ "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", "optional": true, "requires": { - "safer-buffer": "^2.1.0" + "safer-buffer": "2.1.2" } }, "ignore-walk": { @@ -3300,7 +3307,7 @@ "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "optional": true, "requires": { - "minimatch": "^3.0.4" + "minimatch": "3.0.4" } }, "inflight": { @@ -3309,8 +3316,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "optional": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -3329,7 +3336,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.0" + "number-is-nan": "1.0.1" } }, "isarray": { @@ -3343,7 +3350,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -3356,8 +3363,8 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.4.tgz", "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", "requires": { - "safe-buffer": "^5.1.1", - "yallist": "^3.0.0" + "safe-buffer": "5.1.1", + "yallist": "3.0.2" } }, "minizlib": { @@ -3366,7 +3373,7 @@ "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.2.4" } }, "mkdirp": { @@ -3389,9 +3396,9 @@ "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", "optional": true, "requires": { - "debug": "^2.1.2", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" + "debug": "2.6.9", + "iconv-lite": "0.4.21", + "sax": "1.2.4" } }, "node-pre-gyp": { @@ -3400,16 +3407,16 @@ "integrity": "sha512-G7kEonQLRbcA/mOoFoxvlMrw6Q6dPf92+t/l0DFSMuSlDoWaI9JWIyPwK0jyE1bph//CUEL65/Fz1m2vJbmjQQ==", "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" + "detect-libc": "1.0.3", + "mkdirp": "0.5.1", + "needle": "2.2.0", + "nopt": "4.0.1", + "npm-packlist": "1.1.10", + "npmlog": "4.1.2", + "rc": "1.2.7", + "rimraf": "2.6.2", + "semver": "5.5.0", + "tar": "4.4.1" } }, "nopt": { @@ -3418,8 +3425,8 @@ "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "optional": true, "requires": { - "abbrev": "1", - "osenv": "^0.1.4" + "abbrev": "1.1.1", + "osenv": "0.1.5" } }, "npm-bundled": { @@ -3434,8 +3441,8 @@ "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", "optional": true, "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" + "ignore-walk": "3.0.1", + "npm-bundled": "1.0.3" } }, "npmlog": { @@ -3444,10 +3451,10 @@ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "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" + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" } }, "number-is-nan": { @@ -3466,7 +3473,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "os-homedir": { @@ -3487,8 +3494,8 @@ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "optional": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "path-is-absolute": { @@ -3509,10 +3516,10 @@ "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", "optional": true, "requires": { - "deep-extend": "^0.5.1", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" + "deep-extend": "0.5.1", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" }, "dependencies": { "minimist": { @@ -3529,13 +3536,13 @@ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "optional": true, "requires": { - "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" + "core-util-is": "1.0.2", + "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.2" } }, "rimraf": { @@ -3544,7 +3551,7 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "optional": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "safe-buffer": { @@ -3587,9 +3594,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "string_decoder": { @@ -3598,7 +3605,7 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "optional": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.1" } }, "strip-ansi": { @@ -3606,7 +3613,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-json-comments": { @@ -3621,13 +3628,13 @@ "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", "optional": true, "requires": { - "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" + "chownr": "1.0.1", + "fs-minipass": "1.2.5", + "minipass": "2.2.4", + "minizlib": "1.1.0", + "mkdirp": "0.5.1", + "safe-buffer": "5.1.1", + "yallist": "3.0.2" } }, "util-deprecate": { @@ -3642,7 +3649,7 @@ "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "optional": true, "requires": { - "string-width": "^1.0.2" + "string-width": "1.0.2" } }, "wrappy": { @@ -3699,7 +3706,7 @@ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "git-clone": { @@ -3712,12 +3719,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "requires": { - "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" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.1", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "glob-base": { @@ -3726,8 +3733,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "optional": true, "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" + "glob-parent": "2.0.0", + "is-glob": "2.0.1" } }, "glob-parent": { @@ -3735,7 +3742,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "requires": { - "is-glob": "^2.0.0" + "is-glob": "2.0.1" } }, "global-dirs": { @@ -3744,7 +3751,7 @@ "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "dev": true, "requires": { - "ini": "^1.3.4" + "ini": "1.3.5" } }, "globals": { @@ -3757,12 +3764,12 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "7.1.3", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" }, "dependencies": { "pify": { @@ -3778,23 +3785,23 @@ "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", "dev": true, "requires": { - "@sindresorhus/is": "^0.7.0", - "cacheable-request": "^2.1.1", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "into-stream": "^3.1.0", - "is-retry-allowed": "^1.1.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "mimic-response": "^1.0.0", - "p-cancelable": "^0.4.0", - "p-timeout": "^2.0.1", - "pify": "^3.0.0", - "safe-buffer": "^5.1.1", - "timed-out": "^4.0.1", - "url-parse-lax": "^3.0.0", - "url-to-options": "^1.0.1" + "@sindresorhus/is": "0.7.0", + "cacheable-request": "2.1.4", + "decompress-response": "3.3.0", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "into-stream": "3.1.0", + "is-retry-allowed": "1.1.0", + "isurl": "1.0.0", + "lowercase-keys": "1.0.1", + "mimic-response": "1.0.1", + "p-cancelable": "0.4.1", + "p-timeout": "2.0.1", + "pify": "3.0.0", + "safe-buffer": "5.1.2", + "timed-out": "4.0.1", + "url-parse-lax": "3.0.0", + "url-to-options": "1.0.1" } }, "graceful-fs": { @@ -3819,8 +3826,8 @@ "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", "dev": true, "requires": { - "ajv": "^5.3.0", - "har-schema": "^2.0.0" + "ajv": "5.5.2", + "har-schema": "2.0.0" } }, "has": { @@ -3828,7 +3835,7 @@ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "requires": { - "function-bind": "^1.1.1" + "function-bind": "1.1.1" } }, "has-ansi": { @@ -3836,7 +3843,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "has-binary2": { @@ -3881,7 +3888,7 @@ "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", "dev": true, "requires": { - "has-symbol-support-x": "^1.4.1" + "has-symbol-support-x": "1.4.2" } }, "has-value": { @@ -3889,9 +3896,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -3906,8 +3913,8 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { "is-number": { @@ -3915,7 +3922,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -3923,7 +3930,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -3933,7 +3940,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -3943,8 +3950,8 @@ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "hash.js": { @@ -3952,8 +3959,8 @@ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1" }, "dependencies": { "inherits": { @@ -3973,9 +3980,9 @@ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "hash.js": "1.1.5", + "minimalistic-assert": "1.0.1", + "minimalistic-crypto-utils": "1.0.1" } }, "home-or-tmp": { @@ -3983,8 +3990,8 @@ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "hosted-git-info": { @@ -4004,9 +4011,9 @@ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.14.2" } }, "iconv-lite": { @@ -4014,7 +4021,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": "2.1.2" } }, "ieee754": { @@ -4060,8 +4067,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -4079,20 +4086,20 @@ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", + "ansi-escapes": "3.1.0", + "chalk": "2.4.1", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.2.0", + "figures": "2.0.0", + "lodash": "4.17.11", "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" + "run-async": "2.3.0", + "rx-lite": "4.0.8", + "rx-lite-aggregates": "4.0.8", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" }, "dependencies": { "ansi-regex": { @@ -4105,7 +4112,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -4116,8 +4123,8 @@ "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", "dev": true, "requires": { - "from2": "^2.1.1", - "p-is-promise": "^1.1.0" + "from2": "2.3.0", + "p-is-promise": "1.1.0" } }, "invariant": { @@ -4125,7 +4132,7 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "loose-envify": "^1.0.0" + "loose-envify": "1.4.0" } }, "invert-kv": { @@ -4138,7 +4145,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-arrayish": { @@ -4151,7 +4158,7 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "requires": { - "binary-extensions": "^1.0.0" + "binary-extensions": "1.12.0" } }, "is-buffer": { @@ -4164,7 +4171,7 @@ "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-callable": { @@ -4178,7 +4185,7 @@ "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", "dev": true, "requires": { - "ci-info": "^1.5.0" + "ci-info": "1.6.0" } }, "is-data-descriptor": { @@ -4186,7 +4193,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-date-object": { @@ -4199,9 +4206,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" }, "dependencies": { "kind-of": { @@ -4223,7 +4230,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "optional": true, "requires": { - "is-primitive": "^2.0.0" + "is-primitive": "2.0.0" } }, "is-extendable": { @@ -4241,7 +4248,7 @@ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { @@ -4249,7 +4256,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.0" + "number-is-nan": "1.0.1" } }, "is-glob": { @@ -4257,7 +4264,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "is-installed-globally": { @@ -4266,8 +4273,8 @@ "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "dev": true, "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" + "global-dirs": "0.1.1", + "is-path-inside": "1.0.1" } }, "is-npm": { @@ -4282,7 +4289,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "optional": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-obj": { @@ -4307,7 +4314,7 @@ "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "requires": { - "is-path-inside": "^1.0.0" + "is-path-inside": "1.0.1" } }, "is-path-inside": { @@ -4315,7 +4322,7 @@ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "requires": { - "path-is-inside": "^1.0.1" + "path-is-inside": "1.0.2" } }, "is-plain-obj": { @@ -4329,7 +4336,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -4367,7 +4374,7 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "requires": { - "has": "^1.0.1" + "has": "1.0.3" } }, "is-resolvable": { @@ -4391,7 +4398,7 @@ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", "requires": { - "has-symbols": "^1.0.0" + "has-symbols": "1.0.0" } }, "is-typedarray": { @@ -4436,8 +4443,8 @@ "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", "dev": true, "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" + "has-to-string-tag-x": "1.4.1", + "is-object": "1.0.1" } }, "jest-docblock": { @@ -4456,8 +4463,8 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "1.0.10", + "esprima": "4.0.1" } }, "jsbn": { @@ -4527,7 +4534,7 @@ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", "requires": { - "array-includes": "^3.0.3" + "array-includes": "3.0.3" } }, "just-extend": { @@ -4541,10 +4548,10 @@ "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", "requires": { - "bindings": "^1.2.1", - "inherits": "^2.0.3", - "nan": "^2.2.1", - "safe-buffer": "^5.1.0" + "bindings": "1.3.0", + "inherits": "2.0.3", + "nan": "2.11.1", + "safe-buffer": "5.1.2" }, "dependencies": { "inherits": { @@ -4568,7 +4575,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "kubernetes-client": { @@ -4578,9 +4585,9 @@ "dev": true, "requires": { "fluent-openapi": "0.1.1", - "js-yaml": "^3.10.0", - "openid-client": "^2.0.0", - "request": "^2.83.0" + "js-yaml": "3.12.0", + "openid-client": "2.4.2", + "request": "2.88.0" } }, "latest-version": { @@ -4589,7 +4596,7 @@ "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", "dev": true, "requires": { - "package-json": "^4.0.0" + "package-json": "4.0.1" } }, "lcid": { @@ -4597,7 +4604,7 @@ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "lcov-parse": { @@ -4611,8 +4618,8 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "1.1.2", + "type-check": "0.3.2" } }, "load-json-file": { @@ -4620,10 +4627,10 @@ "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" }, "dependencies": { "pify": { @@ -4638,8 +4645,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "2.0.0", + "path-exists": "3.0.0" } }, "lodash": { @@ -4747,7 +4754,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" + "js-tokens": "3.0.2" } }, "lowercase-keys": { @@ -4761,8 +4768,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "make-dir": { @@ -4770,7 +4777,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "map-cache": { @@ -4789,7 +4796,7 @@ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { - "object-visit": "^1.0.0" + "object-visit": "1.0.1" } }, "math-random": { @@ -4803,9 +4810,9 @@ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "hash-base": "3.0.4", + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "media-typer": { @@ -4819,7 +4826,7 @@ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "merge-descriptors": { @@ -4845,19 +4852,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "optional": true, "requires": { - "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" + "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" } }, "mime": { @@ -4876,7 +4883,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", "requires": { - "mime-db": "~1.36.0" + "mime-db": "1.36.0" } }, "mimic-fn": { @@ -4905,7 +4912,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -4918,8 +4925,8 @@ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" + "for-in": "1.0.2", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -4927,7 +4934,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -4968,12 +4975,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { - "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" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.1", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "supports-color": { @@ -4981,7 +4988,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -5006,17 +5013,17 @@ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "arr-diff": { @@ -5070,10 +5077,10 @@ "dev": true, "requires": { "@sinonjs/formatio": "3.0.0", - "just-extend": "^3.0.0", - "lolex": "^2.3.2", - "path-to-regexp": "^1.7.0", - "text-encoding": "^0.6.4" + "just-extend": "3.0.0", + "lolex": "2.7.5", + "path-to-regexp": "1.7.0", + "text-encoding": "0.6.4" }, "dependencies": { "@sinonjs/formatio": { @@ -5097,7 +5104,7 @@ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", "requires": { - "lodash.toarray": "^4.4.0" + "lodash.toarray": "4.4.0" } }, "node-forge": { @@ -5112,21 +5119,21 @@ "integrity": "sha512-RE3P8l60Rj9ELrpPmvw6sOQ1hSyYfmQdNUMCa4EN7nCE1ux5JVX+GfXv+mfUTEMhZwNMwxBtI0+X1CKKeukSVQ==", "dev": true, "requires": { - "base64url": "^3.0.0", - "es6-promise": "^4.0.5", - "lodash.assign": "^4.0.8", - "lodash.clone": "^4.3.2", - "lodash.fill": "^3.2.2", - "lodash.flatten": "^4.2.0", - "lodash.intersection": "^4.1.2", - "lodash.merge": "^4.3.5", - "lodash.omit": "^4.2.1", - "lodash.partialright": "^4.1.3", - "lodash.pick": "^4.2.0", - "lodash.uniq": "^4.2.1", - "long": "^4.0.0", - "node-forge": "^0.7.1", - "uuid": "^3.0.1" + "base64url": "3.0.0", + "es6-promise": "4.2.5", + "lodash.assign": "4.2.0", + "lodash.clone": "4.5.0", + "lodash.fill": "3.4.0", + "lodash.flatten": "4.4.0", + "lodash.intersection": "4.4.0", + "lodash.merge": "4.6.1", + "lodash.omit": "4.5.0", + "lodash.partialright": "4.2.1", + "lodash.pick": "4.4.0", + "lodash.uniq": "4.5.0", + "long": "4.0.0", + "node-forge": "0.7.6", + "uuid": "3.3.2" } }, "node-mocks-http": { @@ -5135,16 +5142,16 @@ "integrity": "sha512-n7fj7BzRNjhQuWU/xcoRH/aOOPeLg3qMJx3mUDjwheoEmZGkThhhGMTxJZ5nnSUcXmEU1uS3gFq3VdBMhS5ZxQ==", "dev": true, "requires": { - "accepts": "^1.3.5", - "depd": "^1.1.0", - "fresh": "^0.5.2", - "merge-descriptors": "^1.0.1", - "methods": "^1.1.2", - "mime": "^1.3.4", - "net": "^1.0.2", - "parseurl": "^1.3.1", - "range-parser": "^1.2.0", - "type-is": "^1.6.16" + "accepts": "1.3.5", + "depd": "1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "1.1.2", + "mime": "1.6.0", + "net": "1.0.2", + "parseurl": "1.3.2", + "range-parser": "1.2.0", + "type-is": "1.6.16" } }, "nodemon": { @@ -5153,16 +5160,16 @@ "integrity": "sha512-hyK6vl65IPnky/ee+D3IWvVGgJa/m3No2/Xc/3wanS6Ce1MWjCzH6NnhPJ/vZM+6JFym16jtHx51lmCMB9HDtg==", "dev": true, "requires": { - "chokidar": "^2.0.2", - "debug": "^3.1.0", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.0.4", - "pstree.remy": "^1.1.0", - "semver": "^5.5.0", - "supports-color": "^5.2.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.2", - "update-notifier": "^2.3.0" + "chokidar": "2.0.4", + "debug": "3.1.0", + "ignore-by-default": "1.0.1", + "minimatch": "3.0.4", + "pstree.remy": "1.1.0", + "semver": "5.5.1", + "supports-color": "5.5.0", + "touch": "3.1.0", + "undefsafe": "2.0.2", + "update-notifier": "2.5.0" }, "dependencies": { "anymatch": { @@ -5171,8 +5178,8 @@ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" + "micromatch": "3.1.10", + "normalize-path": "2.1.1" } }, "arr-diff": { @@ -5193,16 +5200,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.3", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -5211,7 +5218,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -5222,19 +5229,19 @@ "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", "dev": true, "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.0", - "braces": "^2.3.0", - "fsevents": "^1.2.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "lodash.debounce": "^4.0.8", - "normalize-path": "^2.1.1", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0", - "upath": "^1.0.5" + "anymatch": "2.0.0", + "async-each": "1.0.1", + "braces": "2.3.2", + "fsevents": "1.2.4", + "glob-parent": "3.1.0", + "inherits": "2.0.1", + "is-binary-path": "1.0.1", + "is-glob": "4.0.0", + "lodash.debounce": "4.0.8", + "normalize-path": "2.1.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.2.1", + "upath": "1.1.0" } }, "expand-brackets": { @@ -5243,13 +5250,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "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" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "debug": { @@ -5267,7 +5274,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -5276,7 +5283,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -5285,7 +5292,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -5294,7 +5301,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -5305,7 +5312,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -5314,7 +5321,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -5325,9 +5332,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { @@ -5344,14 +5351,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -5360,7 +5367,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -5369,7 +5376,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -5380,10 +5387,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.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -5392,7 +5399,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -5403,8 +5410,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" + "is-glob": "3.1.0", + "path-dirname": "1.0.2" }, "dependencies": { "is-glob": { @@ -5413,7 +5420,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "^2.1.0" + "is-extglob": "2.1.1" } } } @@ -5424,7 +5431,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -5433,7 +5440,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -5442,9 +5449,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-extglob": { @@ -5459,7 +5466,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "^2.1.1" + "is-extglob": "2.1.1" } }, "is-number": { @@ -5468,7 +5475,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -5477,7 +5484,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -5500,19 +5507,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.13", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } }, "supports-color": { @@ -5521,7 +5528,7 @@ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -5531,7 +5538,7 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "requires": { - "abbrev": "1" + "abbrev": "1.1.1" } }, "normalize-package-data": { @@ -5539,10 +5546,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.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.7.1", + "is-builtin-module": "1.0.0", + "semver": "5.5.1", + "validate-npm-package-license": "3.0.4" } }, "normalize-path": { @@ -5550,7 +5557,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { - "remove-trailing-separator": "^1.0.1" + "remove-trailing-separator": "1.1.0" } }, "normalize-url": { @@ -5559,9 +5566,9 @@ "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", "dev": true, "requires": { - "prepend-http": "^2.0.0", - "query-string": "^5.0.1", - "sort-keys": "^2.0.0" + "prepend-http": "2.0.0", + "query-string": "5.1.1", + "sort-keys": "2.0.0" } }, "npm-run-path": { @@ -5569,7 +5576,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { @@ -5582,33 +5589,33 @@ "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.9.0.tgz", "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", "requires": { - "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^1.0.0", - "convert-source-map": "^1.5.1", - "debug-log": "^1.0.1", - "default-require-extensions": "^1.0.0", - "find-cache-dir": "^0.1.1", - "find-up": "^2.1.0", - "foreground-child": "^1.5.3", - "glob": "^7.0.6", - "istanbul-lib-coverage": "^1.1.2", - "istanbul-lib-hook": "^1.1.0", - "istanbul-lib-instrument": "^1.10.0", - "istanbul-lib-report": "^1.1.3", - "istanbul-lib-source-maps": "^1.2.3", - "istanbul-reports": "^1.4.0", - "md5-hex": "^1.2.0", - "merge-source-map": "^1.1.0", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.0", - "resolve-from": "^2.0.0", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.1", - "spawn-wrap": "^1.4.2", - "test-exclude": "^4.2.0", + "archy": "1.0.0", + "arrify": "1.0.1", + "caching-transform": "1.0.1", + "convert-source-map": "1.5.1", + "debug-log": "1.0.1", + "default-require-extensions": "1.0.0", + "find-cache-dir": "0.1.1", + "find-up": "2.1.0", + "foreground-child": "1.5.6", + "glob": "7.1.2", + "istanbul-lib-coverage": "1.2.0", + "istanbul-lib-hook": "1.1.0", + "istanbul-lib-instrument": "1.10.1", + "istanbul-lib-report": "1.1.3", + "istanbul-lib-source-maps": "1.2.3", + "istanbul-reports": "1.4.0", + "md5-hex": "1.3.0", + "merge-source-map": "1.1.0", + "micromatch": "3.1.10", + "mkdirp": "0.5.1", + "resolve-from": "2.0.0", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "spawn-wrap": "1.4.2", + "test-exclude": "4.2.1", "yargs": "11.1.0", - "yargs-parser": "^8.0.0" + "yargs-parser": "8.1.0" }, "dependencies": { "align-text": { @@ -5616,9 +5623,9 @@ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" } }, "amdefine": { @@ -5641,7 +5648,7 @@ "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", "requires": { - "default-require-extensions": "^1.0.0" + "default-require-extensions": "1.0.0" } }, "archy": { @@ -5694,9 +5701,9 @@ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" } }, "babel-generator": { @@ -5704,14 +5711,14 @@ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.10", + "source-map": "0.5.7", + "trim-right": "1.0.1" } }, "babel-messages": { @@ -5719,7 +5726,7 @@ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-runtime": { @@ -5727,8 +5734,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "core-js": "2.5.6", + "regenerator-runtime": "0.11.1" } }, "babel-template": { @@ -5736,11 +5743,11 @@ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.10" } }, "babel-traverse": { @@ -5748,15 +5755,15 @@ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.4", + "lodash": "4.17.10" } }, "babel-types": { @@ -5764,10 +5771,10 @@ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.10", + "to-fast-properties": "1.0.3" } }, "babylon": { @@ -5785,13 +5792,13 @@ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "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.2.0", - "pascalcase": "^0.1.1" + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" }, "dependencies": { "define-property": { @@ -5799,7 +5806,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -5807,7 +5814,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -5815,7 +5822,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -5823,9 +5830,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -5845,7 +5852,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -5854,16 +5861,16 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -5871,7 +5878,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -5886,15 +5893,15 @@ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "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" }, "dependencies": { "isobject": { @@ -5909,9 +5916,9 @@ "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", "requires": { - "md5-hex": "^1.2.0", - "mkdirp": "^0.5.1", - "write-file-atomic": "^1.1.4" + "md5-hex": "1.3.0", + "mkdirp": "0.5.1", + "write-file-atomic": "1.3.4" } }, "camelcase": { @@ -5926,8 +5933,8 @@ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "optional": true, "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" + "align-text": "0.1.4", + "lazy-cache": "1.0.4" } }, "chalk": { @@ -5935,11 +5942,11 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { - "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" + "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" } }, "class-utils": { @@ -5947,10 +5954,10 @@ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" }, "dependencies": { "define-property": { @@ -5958,7 +5965,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "isobject": { @@ -5974,8 +5981,8 @@ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "optional": true, "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", + "center-align": "0.1.3", + "right-align": "0.1.3", "wordwrap": "0.0.2" }, "dependencies": { @@ -5997,8 +6004,8 @@ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "map-visit": "1.0.0", + "object-visit": "1.0.1" } }, "commondir": { @@ -6036,8 +6043,8 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "which": "1.3.0" } }, "debug": { @@ -6068,7 +6075,7 @@ "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", "requires": { - "strip-bom": "^2.0.0" + "strip-bom": "2.0.0" } }, "define-property": { @@ -6076,8 +6083,8 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "is-descriptor": "1.0.2", + "isobject": "3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -6085,7 +6092,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -6093,7 +6100,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -6101,9 +6108,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -6123,7 +6130,7 @@ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "error-ex": { @@ -6131,7 +6138,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" } }, "escape-string-regexp": { @@ -6149,13 +6156,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "requires": { - "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" + "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" }, "dependencies": { "cross-spawn": { @@ -6163,9 +6170,9 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.0" } } } @@ -6175,13 +6182,13 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { - "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" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -6189,7 +6196,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -6197,7 +6204,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -6207,8 +6214,8 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -6216,7 +6223,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -6226,14 +6233,14 @@ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -6241,7 +6248,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -6249,7 +6256,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -6257,7 +6264,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -6265,7 +6272,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -6273,9 +6280,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "kind-of": { @@ -6290,10 +6297,10 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -6301,7 +6308,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -6311,9 +6318,9 @@ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" + "commondir": "1.0.1", + "mkdirp": "0.5.1", + "pkg-dir": "1.0.0" } }, "find-up": { @@ -6321,7 +6328,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "for-in": { @@ -6334,8 +6341,8 @@ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" + "cross-spawn": "4.0.2", + "signal-exit": "3.0.2" } }, "fragment-cache": { @@ -6343,7 +6350,7 @@ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { - "map-cache": "^0.2.2" + "map-cache": "0.2.2" } }, "fs.realpath": { @@ -6371,12 +6378,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { - "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" + "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" } }, "globals": { @@ -6394,10 +6401,10 @@ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" }, "dependencies": { "source-map": { @@ -6405,7 +6412,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } @@ -6415,7 +6422,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "has-flag": { @@ -6428,9 +6435,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -6445,8 +6452,8 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { "is-number": { @@ -6454,7 +6461,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -6462,7 +6469,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -6472,7 +6479,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -6492,8 +6499,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -6506,7 +6513,7 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "loose-envify": "^1.0.0" + "loose-envify": "1.3.1" } }, "invert-kv": { @@ -6519,7 +6526,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-arrayish": { @@ -6537,7 +6544,7 @@ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-data-descriptor": { @@ -6545,7 +6552,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-descriptor": { @@ -6553,9 +6560,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" }, "dependencies": { "kind-of": { @@ -6575,7 +6582,7 @@ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { @@ -6588,7 +6595,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-odd": { @@ -6596,7 +6603,7 @@ "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", "requires": { - "is-number": "^4.0.0" + "is-number": "4.0.0" }, "dependencies": { "is-number": { @@ -6611,7 +6618,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -6661,7 +6668,7 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", "requires": { - "append-transform": "^0.4.0" + "append-transform": "0.4.0" } }, "istanbul-lib-instrument": { @@ -6669,13 +6676,13 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.2.0", - "semver": "^5.3.0" + "babel-generator": "6.26.1", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "istanbul-lib-coverage": "1.2.0", + "semver": "5.5.0" } }, "istanbul-lib-report": { @@ -6683,10 +6690,10 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz", "integrity": "sha512-D4jVbMDtT2dPmloPJS/rmeP626N5Pr3Rp+SovrPn1+zPChGHcggd/0sL29jnbm4oK9W0wHjCRsdch9oLd7cm6g==", "requires": { - "istanbul-lib-coverage": "^1.1.2", - "mkdirp": "^0.5.1", - "path-parse": "^1.0.5", - "supports-color": "^3.1.2" + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" }, "dependencies": { "supports-color": { @@ -6694,7 +6701,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "requires": { - "has-flag": "^1.0.0" + "has-flag": "1.0.0" } } } @@ -6704,11 +6711,11 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz", "integrity": "sha512-fDa0hwU/5sDXwAklXgAoCJCOsFsBplVQ6WBldz5UwaqOzmDhUK4nfuR7/G//G2lERlblUNJB8P6e8cXq3a7MlA==", "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^1.1.2", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.1", - "source-map": "^0.5.3" + "debug": "3.1.0", + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" }, "dependencies": { "debug": { @@ -6726,7 +6733,7 @@ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.4.0.tgz", "integrity": "sha512-OPzVo1fPZ2H+owr8q/LYKLD+vquv9Pj4F+dj808MdHbuQLD7S4ACRjcX+0Tne5Vxt2lxXvdZaL7v+FOOAV281w==", "requires": { - "handlebars": "^4.0.3" + "handlebars": "4.0.11" } }, "js-tokens": { @@ -6744,7 +6751,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "lazy-cache": { @@ -6758,7 +6765,7 @@ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "load-json-file": { @@ -6766,11 +6773,11 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" } }, "locate-path": { @@ -6778,8 +6785,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "2.0.0", + "path-exists": "3.0.0" }, "dependencies": { "path-exists": { @@ -6804,7 +6811,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "requires": { - "js-tokens": "^3.0.0" + "js-tokens": "3.0.2" } }, "lru-cache": { @@ -6812,8 +6819,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "map-cache": { @@ -6826,7 +6833,7 @@ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { - "object-visit": "^1.0.0" + "object-visit": "1.0.1" } }, "md5-hex": { @@ -6834,7 +6841,7 @@ "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "md5-o-matic": { @@ -6847,7 +6854,7 @@ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "merge-source-map": { @@ -6855,7 +6862,7 @@ "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", "requires": { - "source-map": "^0.6.1" + "source-map": "0.6.1" }, "dependencies": { "source-map": { @@ -6870,19 +6877,19 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "kind-of": { @@ -6902,7 +6909,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -6915,8 +6922,8 @@ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" + "for-in": "1.0.2", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -6924,7 +6931,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -6947,18 +6954,18 @@ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-odd": "^2.0.0", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-odd": "2.0.0", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "arr-diff": { @@ -6983,10 +6990,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.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.6.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" } }, "npm-run-path": { @@ -6994,7 +7001,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { @@ -7012,9 +7019,9 @@ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" }, "dependencies": { "define-property": { @@ -7022,7 +7029,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -7032,7 +7039,7 @@ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { - "isobject": "^3.0.0" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -7047,7 +7054,7 @@ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -7062,7 +7069,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "optimist": { @@ -7070,8 +7077,8 @@ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" + "minimist": "0.0.8", + "wordwrap": "0.0.3" } }, "os-homedir": { @@ -7084,9 +7091,9 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "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" } }, "p-finally": { @@ -7099,7 +7106,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", "requires": { - "p-try": "^1.0.0" + "p-try": "1.0.0" } }, "p-locate": { @@ -7107,7 +7114,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.2.0" } }, "p-try": { @@ -7120,7 +7127,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.1" } }, "pascalcase": { @@ -7133,7 +7140,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "requires": { - "pinkie-promise": "^2.0.0" + "pinkie-promise": "2.0.1" } }, "path-is-absolute": { @@ -7156,9 +7163,9 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "pify": { @@ -7176,7 +7183,7 @@ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "pkg-dir": { @@ -7184,7 +7191,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "requires": { - "find-up": "^1.0.0" + "find-up": "1.1.2" }, "dependencies": { "find-up": { @@ -7192,8 +7199,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } @@ -7213,9 +7220,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" } }, "read-pkg-up": { @@ -7223,8 +7230,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.0.0", - "read-pkg": "^1.0.0" + "find-up": "1.1.2", + "read-pkg": "1.1.0" }, "dependencies": { "find-up": { @@ -7232,8 +7239,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } @@ -7248,8 +7255,8 @@ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" } }, "repeat-element": { @@ -7267,7 +7274,7 @@ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "requires": { - "is-finite": "^1.0.0" + "is-finite": "1.0.2" } }, "require-directory": { @@ -7301,7 +7308,7 @@ "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "optional": true, "requires": { - "align-text": "^0.1.1" + "align-text": "0.1.4" } }, "rimraf": { @@ -7309,7 +7316,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "safe-regex": { @@ -7317,7 +7324,7 @@ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { - "ret": "~0.1.10" + "ret": "0.1.15" } }, "semver": { @@ -7335,10 +7342,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" }, "dependencies": { "extend-shallow": { @@ -7346,7 +7353,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -7356,7 +7363,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -7379,14 +7386,14 @@ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "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": "3.1.0" }, "dependencies": { "define-property": { @@ -7394,7 +7401,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -7402,7 +7409,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -7412,9 +7419,9 @@ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" }, "dependencies": { "define-property": { @@ -7422,7 +7429,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -7430,7 +7437,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -7438,7 +7445,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -7446,9 +7453,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -7468,7 +7475,7 @@ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "requires": { - "kind-of": "^3.2.0" + "kind-of": "3.2.2" } }, "source-map": { @@ -7481,11 +7488,11 @@ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", "requires": { - "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" + "atob": "2.1.1", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" } }, "source-map-url": { @@ -7498,12 +7505,12 @@ "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" + "foreground-child": "1.5.6", + "mkdirp": "0.5.1", + "os-homedir": "1.0.2", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "which": "1.3.0" } }, "spdx-correct": { @@ -7511,8 +7518,8 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, "spdx-exceptions": { @@ -7525,8 +7532,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" } }, "spdx-license-ids": { @@ -7539,7 +7546,7 @@ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "requires": { - "extend-shallow": "^3.0.0" + "extend-shallow": "3.0.2" } }, "static-extend": { @@ -7547,8 +7554,8 @@ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" + "define-property": "0.2.5", + "object-copy": "0.1.0" }, "dependencies": { "define-property": { @@ -7556,7 +7563,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -7566,8 +7573,8 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "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" }, "dependencies": { "ansi-regex": { @@ -7580,7 +7587,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -7590,7 +7597,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-bom": { @@ -7598,7 +7605,7 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { - "is-utf8": "^0.2.0" + "is-utf8": "0.2.1" } }, "strip-eof": { @@ -7616,11 +7623,11 @@ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", "requires": { - "arrify": "^1.0.1", - "micromatch": "^3.1.8", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" + "arrify": "1.0.1", + "micromatch": "3.1.10", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" }, "dependencies": { "arr-diff": { @@ -7638,16 +7645,16 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -7655,7 +7662,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -7665,13 +7672,13 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { - "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" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -7679,7 +7686,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -7687,7 +7694,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -7695,7 +7702,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -7703,7 +7710,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -7713,7 +7720,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -7721,7 +7728,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -7731,9 +7738,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { @@ -7748,14 +7755,14 @@ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -7763,7 +7770,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -7771,7 +7778,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -7781,10 +7788,10 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -7792,7 +7799,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -7802,7 +7809,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -7810,7 +7817,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -7818,9 +7825,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-number": { @@ -7828,7 +7835,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -7836,7 +7843,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -7856,19 +7863,19 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } } } @@ -7883,7 +7890,7 @@ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "to-regex": { @@ -7891,10 +7898,10 @@ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" } }, "to-regex-range": { @@ -7902,8 +7909,8 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "3.0.0", + "repeat-string": "1.6.1" }, "dependencies": { "is-number": { @@ -7911,7 +7918,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } } } @@ -7927,9 +7934,9 @@ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "optional": true, "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" }, "dependencies": { "yargs": { @@ -7938,9 +7945,9 @@ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "optional": true, "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", "window-size": "0.1.0" } } @@ -7957,10 +7964,10 @@ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "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": { "extend-shallow": { @@ -7968,7 +7975,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "set-value": { @@ -7976,10 +7983,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" } } } @@ -7989,8 +7996,8 @@ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "has-value": "0.3.1", + "isobject": "3.0.1" }, "dependencies": { "has-value": { @@ -7998,9 +8005,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" }, "dependencies": { "isobject": { @@ -8035,7 +8042,7 @@ "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", "requires": { - "kind-of": "^6.0.2" + "kind-of": "6.0.2" }, "dependencies": { "kind-of": { @@ -8050,8 +8057,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "which": { @@ -8059,7 +8066,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": { @@ -8083,8 +8090,8 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -8092,7 +8099,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.0" + "number-is-nan": "1.0.1" } }, "string-width": { @@ -8100,9 +8107,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -8117,9 +8124,9 @@ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" } }, "y18n": { @@ -8137,18 +8144,18 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", "requires": { - "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": "^9.0.2" + "cliui": "4.1.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": "9.0.2" }, "dependencies": { "ansi-regex": { @@ -8166,9 +8173,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" } }, "strip-ansi": { @@ -8176,7 +8183,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } }, "yargs-parser": { @@ -8184,7 +8191,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" } } } @@ -8194,7 +8201,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" }, "dependencies": { "camelcase": { @@ -8227,9 +8234,9 @@ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" }, "dependencies": { "define-property": { @@ -8237,7 +8244,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -8257,7 +8264,7 @@ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { - "isobject": "^3.0.0" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -8273,8 +8280,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "optional": true, "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" + "for-own": "0.1.5", + "is-extendable": "0.1.1" } }, "object.pick": { @@ -8282,7 +8289,7 @@ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -8298,7 +8305,7 @@ "integrity": "sha512-oLnVSEcNZkw01sB5aFR+2iJmW4oyC1PIMJmd3FMBGDuPTy5ZtEuX5WNhKMRarJIMOq8NiOwIB6eJB9AhgYwBTg==", "dev": true, "requires": { - "base64url": "^3.0.0" + "base64url": "3.0.0" } }, "once": { @@ -8306,7 +8313,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "onetime": { @@ -8314,7 +8321,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "openid-client": { @@ -8323,14 +8330,14 @@ "integrity": "sha512-8HP7SCamsQKC8JGosk0Hs+qXfDyO5lojRW+gE6uW8Tjh4h/B8HzZeppyzo27p1Au0ziTKbI+umHuyZST/t6jXQ==", "dev": true, "requires": { - "base64url": "^3.0.0", - "got": "^8.3.2", - "lodash": "^4.17.11", - "lru-cache": "^4.1.3", - "node-jose": "^1.0.0", - "oidc-token-hash": "^3.0.1", - "p-any": "^1.1.0", - "uuid": "^3.3.2" + "base64url": "3.0.0", + "got": "8.3.2", + "lodash": "4.17.11", + "lru-cache": "4.1.3", + "node-jose": "1.0.0", + "oidc-token-hash": "3.0.1", + "p-any": "1.1.0", + "uuid": "3.3.2" } }, "optionator": { @@ -8338,12 +8345,12 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" } }, "os-homedir": { @@ -8356,9 +8363,9 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "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" } }, "os-tmpdir": { @@ -8371,9 +8378,9 @@ "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", "requires": { - "graceful-fs": "^4.1.4", - "mkdirp": "^0.5.1", - "object-assign": "^4.1.0" + "graceful-fs": "4.1.11", + "mkdirp": "0.5.1", + "object-assign": "4.1.1" } }, "p-any": { @@ -8382,7 +8389,7 @@ "integrity": "sha512-Ef0tVa4CZ5pTAmKn+Cg3w8ABBXh+hHO1aV8281dKOoUHfX+3tjG2EaFcC+aZyagg9b4EYGsHEjz21DnEE8Og2g==", "dev": true, "requires": { - "p-some": "^2.0.0" + "p-some": "2.0.1" } }, "p-cancelable": { @@ -8407,7 +8414,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "requires": { - "p-try": "^1.0.0" + "p-try": "1.0.0" } }, "p-locate": { @@ -8415,7 +8422,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.3.0" } }, "p-some": { @@ -8424,7 +8431,7 @@ "integrity": "sha1-Zdh8ixVO289SIdFnd4ttLhUPbwY=", "dev": true, "requires": { - "aggregate-error": "^1.0.0" + "aggregate-error": "1.0.0" } }, "p-timeout": { @@ -8433,7 +8440,7 @@ "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", "dev": true, "requires": { - "p-finally": "^1.0.0" + "p-finally": "1.0.0" } }, "p-try": { @@ -8447,10 +8454,10 @@ "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", "dev": true, "requires": { - "got": "^6.7.1", - "registry-auth-token": "^3.0.1", - "registry-url": "^3.0.3", - "semver": "^5.1.0" + "got": "6.7.1", + "registry-auth-token": "3.3.2", + "registry-url": "3.1.0", + "semver": "5.5.1" }, "dependencies": { "got": { @@ -8459,17 +8466,17 @@ "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "dev": true, "requires": { - "create-error-class": "^3.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" + "create-error-class": "3.0.2", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "is-redirect": "1.0.0", + "is-retry-allowed": "1.1.0", + "is-stream": "1.1.0", + "lowercase-keys": "1.0.1", + "safe-buffer": "5.1.2", + "timed-out": "4.0.1", + "unzip-response": "2.0.1", + "url-parse-lax": "1.0.0" } }, "prepend-http": { @@ -8484,7 +8491,7 @@ "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "dev": true, "requires": { - "prepend-http": "^1.0.1" + "prepend-http": "1.0.4" } } } @@ -8495,10 +8502,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "optional": true, "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" } }, "parse-json": { @@ -8506,7 +8513,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.2" } }, "parseqs": { @@ -8514,7 +8521,7 @@ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "requires": { - "better-assert": "~1.0.0" + "better-assert": "1.0.2" } }, "parseuri": { @@ -8522,7 +8529,7 @@ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "requires": { - "better-assert": "~1.0.0" + "better-assert": "1.0.2" } }, "parseurl": { @@ -8589,7 +8596,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { - "pify": "^2.0.0" + "pify": "2.3.0" }, "dependencies": { "pify": { @@ -8611,7 +8618,7 @@ "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", "dev": true, "requires": { - "through": "~2.3" + "through": "2.3.8" } }, "pbkdf2": { @@ -8619,11 +8626,11 @@ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ripemd160": "2.0.2", + "safe-buffer": "5.1.2", + "sha.js": "2.4.11" } }, "performance-now": { @@ -8647,7 +8654,7 @@ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "pkg-conf": { @@ -8655,8 +8662,8 @@ "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", "requires": { - "find-up": "^2.0.0", - "load-json-file": "^4.0.0" + "find-up": "2.1.0", + "load-json-file": "4.0.0" }, "dependencies": { "load-json-file": { @@ -8664,10 +8671,10 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.11", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" } }, "parse-json": { @@ -8675,8 +8682,8 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" } } } @@ -8686,9 +8693,9 @@ "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=", "requires": { - "debug-log": "^1.0.0", - "find-root": "^1.0.0", - "xtend": "^4.0.1" + "debug-log": "1.0.1", + "find-root": "1.1.0", + "xtend": "4.0.1" } }, "pkg-dir": { @@ -8696,7 +8703,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "requires": { - "find-up": "^1.0.0" + "find-up": "1.1.2" }, "dependencies": { "find-up": { @@ -8704,8 +8711,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } }, "path-exists": { @@ -8713,7 +8720,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "requires": { - "pinkie-promise": "^2.0.0" + "pinkie-promise": "2.0.1" } } } @@ -8776,8 +8783,8 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" + "loose-envify": "1.4.0", + "object-assign": "4.1.1" } }, "ps-tree": { @@ -8786,7 +8793,7 @@ "integrity": "sha1-tCGyQUDWID8e08dplrRCewjowBQ=", "dev": true, "requires": { - "event-stream": "~3.3.0" + "event-stream": "3.3.6" } }, "pseudomap": { @@ -8806,7 +8813,7 @@ "integrity": "sha512-q5I5vLRMVtdWa8n/3UEzZX7Lfghzrg9eG2IKk2ENLSofKRCXVqMvMUHxCKgXNaqH/8ebhBxrqftHWnyTFweJ5Q==", "dev": true, "requires": { - "ps-tree": "^1.1.0" + "ps-tree": "1.1.0" } }, "punycode": { @@ -8820,7 +8827,7 @@ "resolved": "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", "integrity": "sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=", "requires": { - "bitcoin-ops": "^1.3.0" + "bitcoin-ops": "1.4.1" }, "dependencies": { "bitcoin-ops": { @@ -8835,11 +8842,11 @@ "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.3.0.tgz", "integrity": "sha512-HFE7drEGhVoPxL1Ilm/zV+wkNJzUa8zL2nXP30vzo78EXAnHPStVOt2iZUIOfgmELtAbSkw/Z8igqu/TbNDGrQ==", "requires": { - "can-promise": "^0.0.1", - "dijkstrajs": "^1.0.1", - "isarray": "^2.0.1", - "pngjs": "^3.3.0", - "yargs": "^8.0.2" + "can-promise": "0.0.1", + "dijkstrajs": "1.0.1", + "isarray": "2.0.4", + "pngjs": "3.3.3", + "yargs": "8.0.2" }, "dependencies": { "isarray": { @@ -8860,9 +8867,9 @@ "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", "dev": true, "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" + "decode-uri-component": "0.2.0", + "object-assign": "4.1.1", + "strict-uri-encode": "1.1.0" } }, "randomatic": { @@ -8871,9 +8878,9 @@ "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==", "optional": true, "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" + "is-number": "4.0.0", + "kind-of": "6.0.2", + "math-random": "1.0.1" }, "dependencies": { "is-number": { @@ -8895,7 +8902,7 @@ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "requires": { - "safe-buffer": "^5.1.0" + "safe-buffer": "5.1.2" } }, "range-parser": { @@ -8910,10 +8917,10 @@ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" + "deep-extend": "0.6.0", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" }, "dependencies": { "minimist": { @@ -8929,9 +8936,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" } }, "read-pkg-up": { @@ -8939,8 +8946,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" + "find-up": "2.1.0", + "read-pkg": "2.0.0" } }, "readable-stream": { @@ -8948,13 +8955,13 @@ "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "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" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.2", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" }, "dependencies": { "inherits": { @@ -8969,9 +8976,9 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" + "graceful-fs": "4.1.11", + "micromatch": "3.1.10", + "readable-stream": "2.3.6" }, "dependencies": { "arr-diff": { @@ -8989,16 +8996,16 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.3", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -9006,7 +9013,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -9024,13 +9031,13 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { - "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" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -9038,7 +9045,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -9046,7 +9053,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -9054,7 +9061,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -9062,7 +9069,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -9072,7 +9079,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -9080,7 +9087,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -9090,9 +9097,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { @@ -9107,14 +9114,14 @@ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -9122,7 +9129,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -9130,7 +9137,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -9140,10 +9147,10 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -9151,7 +9158,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -9161,7 +9168,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -9169,7 +9176,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -9177,9 +9184,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-number": { @@ -9187,7 +9194,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -9195,7 +9202,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -9215,19 +9222,19 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.13", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } } } @@ -9247,9 +9254,9 @@ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "requires": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "private": "0.1.8" } }, "regex-cache": { @@ -9258,7 +9265,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "optional": true, "requires": { - "is-equal-shallow": "^0.1.3" + "is-equal-shallow": "0.1.3" } }, "regex-not": { @@ -9266,8 +9273,8 @@ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" } }, "regexpp": { @@ -9281,9 +9288,9 @@ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" + "regenerate": "1.4.0", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" } }, "registry-auth-token": { @@ -9292,8 +9299,8 @@ "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", "dev": true, "requires": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" + "rc": "1.2.8", + "safe-buffer": "5.1.2" } }, "registry-url": { @@ -9302,7 +9309,7 @@ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "dev": true, "requires": { - "rc": "^1.0.1" + "rc": "1.2.8" } }, "regjsgen": { @@ -9315,7 +9322,7 @@ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "requires": { - "jsesc": "~0.5.0" + "jsesc": "0.5.0" }, "dependencies": { "jsesc": { @@ -9345,7 +9352,7 @@ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "requires": { - "is-finite": "^1.0.0" + "is-finite": "1.0.2" } }, "repl.history": { @@ -9359,26 +9366,26 @@ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "dev": true, "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" + "aws-sign2": "0.7.0", + "aws4": "1.8.0", + "caseless": "0.12.0", + "combined-stream": "1.0.7", + "extend": "3.0.2", + "forever-agent": "0.6.1", + "form-data": "2.3.2", + "har-validator": "5.1.0", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.20", + "oauth-sign": "0.9.0", + "performance-now": "2.1.0", + "qs": "6.5.2", + "safe-buffer": "5.1.2", + "tough-cookie": "2.4.3", + "tunnel-agent": "0.6.0", + "uuid": "3.3.2" } }, "require-directory": { @@ -9396,8 +9403,8 @@ "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" + "caller-path": "0.1.0", + "resolve-from": "1.0.1" } }, "resolve": { @@ -9405,7 +9412,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "requires": { - "path-parse": "^1.0.5" + "path-parse": "1.0.6" } }, "resolve-from": { @@ -9424,7 +9431,7 @@ "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", "dev": true, "requires": { - "lowercase-keys": "^1.0.0" + "lowercase-keys": "1.0.1" } }, "restore-cursor": { @@ -9432,8 +9439,8 @@ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "onetime": "2.0.1", + "signal-exit": "3.0.2" } }, "resumer": { @@ -9441,7 +9448,7 @@ "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", "requires": { - "through": "~2.3.4" + "through": "2.3.8" } }, "ret": { @@ -9454,7 +9461,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "glob": "^7.0.5" + "glob": "7.1.3" } }, "ripemd160": { @@ -9462,8 +9469,8 @@ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "hash-base": "3.0.4", + "inherits": "2.0.1" } }, "run-async": { @@ -9471,7 +9478,7 @@ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "requires": { - "is-promise": "^2.1.0" + "is-promise": "2.1.0" } }, "run-parallel": { @@ -9489,7 +9496,7 @@ "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "requires": { - "rx-lite": "*" + "rx-lite": "4.0.8" } }, "rxjs": { @@ -9498,7 +9505,7 @@ "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", "dev": true, "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.3" } }, "safe-buffer": { @@ -9511,7 +9518,7 @@ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { - "ret": "~0.1.10" + "ret": "0.1.15" } }, "safer-buffer": { @@ -9530,7 +9537,7 @@ "resolved": "https://registry.npmjs.org/satoshi-bitcoin/-/satoshi-bitcoin-1.0.4.tgz", "integrity": "sha1-0AK2dwddXLvywhGo3zJUvN9QseQ=", "requires": { - "big.js": "^3.1.3" + "big.js": "3.2.0" } }, "scryptsy": { @@ -9543,14 +9550,14 @@ "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.5.2.tgz", "integrity": "sha512-iin3kojdybY6NArd+UFsoTuapOF7bnJNf2UbcWXaY3z+E1sJDipl60vtzB5hbO/uquBu7z0fd4VC4Irp+xoFVQ==", "requires": { - "bindings": "^1.2.1", - "bip66": "^1.1.3", - "bn.js": "^4.11.3", - "create-hash": "^1.1.2", - "drbg.js": "^1.0.1", - "elliptic": "^6.2.3", - "nan": "^2.2.1", - "safe-buffer": "^5.1.0" + "bindings": "1.3.0", + "bip66": "1.1.5", + "bn.js": "4.11.8", + "create-hash": "1.2.0", + "drbg.js": "1.0.1", + "elliptic": "6.4.1", + "nan": "2.11.1", + "safe-buffer": "5.1.2" } }, "semver": { @@ -9564,7 +9571,7 @@ "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "dev": true, "requires": { - "semver": "^5.0.3" + "semver": "5.5.1" } }, "set-blocking": { @@ -9577,10 +9584,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" }, "dependencies": { "extend-shallow": { @@ -9588,7 +9595,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -9598,8 +9605,8 @@ "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "shebang-command": { @@ -9607,7 +9614,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -9626,13 +9633,13 @@ "integrity": "sha512-trdx+mB0VBBgoYucy6a9L7/jfQOmvGeaKZT4OOJ+lPAtI8623xyGr8wLiE4eojzBS8G9yXbhx42GHUOVLr4X2w==", "dev": true, "requires": { - "@sinonjs/formatio": "^2.0.0", - "diff": "^3.1.0", - "lodash.get": "^4.4.2", - "lolex": "^2.2.0", - "nise": "^1.2.0", - "supports-color": "^5.1.0", - "type-detect": "^4.0.5" + "@sinonjs/formatio": "2.0.0", + "diff": "3.5.0", + "lodash.get": "4.4.2", + "lolex": "2.7.5", + "nise": "1.4.5", + "supports-color": "5.5.0", + "type-detect": "4.0.8" }, "dependencies": { "supports-color": { @@ -9641,7 +9648,7 @@ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -9656,7 +9663,7 @@ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "requires": { - "is-fullwidth-code-point": "^2.0.0" + "is-fullwidth-code-point": "2.0.0" }, "dependencies": { "is-fullwidth-code-point": { @@ -9671,14 +9678,14 @@ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "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.2", + "use": "3.1.1" }, "dependencies": { "debug": { @@ -9694,7 +9701,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -9702,7 +9709,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -9712,9 +9719,9 @@ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" }, "dependencies": { "define-property": { @@ -9722,7 +9729,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -9730,7 +9737,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -9738,7 +9745,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -9746,9 +9753,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -9768,7 +9775,7 @@ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "requires": { - "kind-of": "^3.2.0" + "kind-of": "3.2.2" } }, "socket.io": { @@ -9776,12 +9783,12 @@ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", "requires": { - "debug": "~3.1.0", - "engine.io": "~3.2.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", + "debug": "3.1.0", + "engine.io": "3.2.0", + "has-binary2": "1.0.3", + "socket.io-adapter": "1.1.1", "socket.io-client": "2.1.1", - "socket.io-parser": "~3.2.0" + "socket.io-parser": "3.2.0" } }, "socket.io-adapter": { @@ -9798,15 +9805,15 @@ "base64-arraybuffer": "0.1.5", "component-bind": "1.0.0", "component-emitter": "1.2.1", - "debug": "~3.1.0", - "engine.io-client": "~3.2.0", - "has-binary2": "~1.0.2", + "debug": "3.1.0", + "engine.io-client": "3.2.1", + "has-binary2": "1.0.3", "has-cors": "1.1.0", "indexof": "0.0.1", "object-component": "0.0.3", "parseqs": "0.0.5", "parseuri": "0.0.5", - "socket.io-parser": "~3.2.0", + "socket.io-parser": "3.2.0", "to-array": "0.1.4" } }, @@ -9816,7 +9823,7 @@ "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", "requires": { "component-emitter": "1.2.1", - "debug": "~3.1.0", + "debug": "3.1.0", "isarray": "2.0.1" }, "dependencies": { @@ -9833,7 +9840,7 @@ "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", "dev": true, "requires": { - "is-plain-obj": "^1.0.0" + "is-plain-obj": "1.1.0" } }, "source-map": { @@ -9846,11 +9853,11 @@ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "atob": "2.1.2", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" } }, "source-map-support": { @@ -9858,7 +9865,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "requires": { - "source-map": "^0.5.6" + "source-map": "0.5.7" } }, "source-map-url": { @@ -9871,8 +9878,8 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz", "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==", "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.1" } }, "spdx-exceptions": { @@ -9885,8 +9892,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.2.0", + "spdx-license-ids": "3.0.1" } }, "spdx-license-ids": { @@ -9900,7 +9907,7 @@ "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dev": true, "requires": { - "through": "2" + "through": "2.3.8" } }, "split-string": { @@ -9908,7 +9915,7 @@ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "requires": { - "extend-shallow": "^3.0.0" + "extend-shallow": "3.0.2" } }, "sprintf-js": { @@ -9922,15 +9929,15 @@ "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", "dev": true, "requires": { - "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" + "asn1": "0.2.4", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.2", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.2", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "safer-buffer": "2.1.2", + "tweetnacl": "0.14.5" } }, "standard": { @@ -9938,15 +9945,15 @@ "resolved": "http://registry.npmjs.org/standard/-/standard-11.0.1.tgz", "integrity": "sha512-nu0jAcHiSc8H+gJCXeiziMVZNDYi8MuqrYJKxTgjP4xKXZMKm311boqQIzDrYI/ktosltxt2CbDjYQs9ANC8IA==", "requires": { - "eslint": "~4.18.0", + "eslint": "4.18.2", "eslint-config-standard": "11.0.0", "eslint-config-standard-jsx": "5.0.0", - "eslint-plugin-import": "~2.9.0", - "eslint-plugin-node": "~6.0.0", - "eslint-plugin-promise": "~3.7.0", - "eslint-plugin-react": "~7.7.0", - "eslint-plugin-standard": "~3.0.1", - "standard-engine": "~8.0.0" + "eslint-plugin-import": "2.9.0", + "eslint-plugin-node": "6.0.1", + "eslint-plugin-promise": "3.7.0", + "eslint-plugin-react": "7.7.0", + "eslint-plugin-standard": "3.0.1", + "standard-engine": "8.0.1" }, "dependencies": { "ansi-regex": { @@ -9959,43 +9966,43 @@ "resolved": "http://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", "requires": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", - "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.2", - "esquery": "^1.0.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.0.1", - "ignore": "^3.3.3", - "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "require-uncached": "^1.0.3", - "semver": "^5.3.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", + "ajv": "5.5.2", + "babel-code-frame": "6.26.0", + "chalk": "2.4.1", + "concat-stream": "1.6.2", + "cross-spawn": "5.1.0", + "debug": "3.1.0", + "doctrine": "2.1.0", + "eslint-scope": "3.7.3", + "eslint-visitor-keys": "1.0.0", + "espree": "3.5.4", + "esquery": "1.0.1", + "esutils": "2.0.2", + "file-entry-cache": "2.0.0", + "functional-red-black-tree": "1.0.1", + "glob": "7.1.3", + "globals": "11.8.0", + "ignore": "3.3.10", + "imurmurhash": "0.1.4", + "inquirer": "3.3.0", + "is-resolvable": "1.1.0", + "js-yaml": "3.12.0", + "json-stable-stringify-without-jsonify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.11", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "7.0.0", + "progress": "2.0.0", + "require-uncached": "1.0.3", + "semver": "5.5.1", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", "table": "4.0.2", - "text-table": "~0.2.0" + "text-table": "0.2.0" } }, "eslint-plugin-node": { @@ -10003,10 +10010,10 @@ "resolved": "http://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz", "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", "requires": { - "ignore": "^3.3.6", - "minimatch": "^3.0.4", - "resolve": "^1.3.3", - "semver": "^5.4.1" + "ignore": "3.3.10", + "minimatch": "3.0.4", + "resolve": "1.8.1", + "semver": "5.5.1" } }, "globals": { @@ -10019,7 +10026,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -10029,10 +10036,10 @@ "resolved": "http://registry.npmjs.org/standard-engine/-/standard-engine-8.0.1.tgz", "integrity": "sha512-LA531C3+nljom/XRvdW/hGPXwmilRkaRkENhO3FAGF1Vtq/WtCXzgmnc5S6vUHHsgv534MRy02C1ikMwZXC+tw==", "requires": { - "deglob": "^2.1.0", - "get-stdin": "^6.0.0", - "minimist": "^1.1.0", - "pkg-conf": "^2.0.0" + "deglob": "2.1.1", + "get-stdin": "6.0.0", + "minimist": "1.2.0", + "pkg-conf": "2.1.0" }, "dependencies": { "minimist": { @@ -10047,8 +10054,8 @@ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" + "define-property": "0.2.5", + "object-copy": "0.1.0" }, "dependencies": { "define-property": { @@ -10056,7 +10063,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -10067,8 +10074,8 @@ "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", "dev": true, "requires": { - "duplexer": "~0.1.1", - "through": "~2.3.4" + "duplexer": "0.1.1", + "through": "2.3.8" } }, "strict-uri-encode": { @@ -10082,8 +10089,8 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "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" }, "dependencies": { "ansi-regex": { @@ -10101,7 +10108,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -10111,9 +10118,9 @@ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.0", - "function-bind": "^1.0.2" + "define-properties": "1.1.3", + "es-abstract": "1.12.0", + "function-bind": "1.1.1" } }, "string_decoder": { @@ -10121,7 +10128,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.2" } }, "strip-ansi": { @@ -10129,7 +10136,7 @@ "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-bom": { @@ -10153,16 +10160,16 @@ "integrity": "sha1-cDUpoHFOV+EjlZ3e+84ZOy5Q0RU=", "dev": true, "requires": { - "component-emitter": "^1.2.0", - "cookiejar": "^2.0.6", - "debug": "^2.2.0", - "extend": "^3.0.0", + "component-emitter": "1.2.1", + "cookiejar": "2.1.2", + "debug": "2.6.9", + "extend": "3.0.2", "form-data": "1.0.0-rc4", - "formidable": "^1.0.17", - "methods": "^1.1.1", - "mime": "^1.3.4", - "qs": "^6.1.0", - "readable-stream": "^2.0.5" + "formidable": "1.2.1", + "methods": "1.1.2", + "mime": "1.6.0", + "qs": "6.5.2", + "readable-stream": "2.3.6" }, "dependencies": { "debug": { @@ -10180,9 +10187,9 @@ "integrity": "sha1-BaxrwiIntD5EYfSIFhVUaZ1Pi14=", "dev": true, "requires": { - "async": "^1.5.2", - "combined-stream": "^1.0.5", - "mime-types": "^2.1.10" + "async": "1.5.2", + "combined-stream": "1.0.7", + "mime-types": "2.1.20" } } } @@ -10193,8 +10200,8 @@ "integrity": "sha1-oFgIHXiPFRXUcA11Aogea3WeRM0=", "dev": true, "requires": { - "methods": "1.x", - "superagent": "^2.0.0" + "methods": "1.1.2", + "superagent": "2.3.0" } }, "supports-color": { @@ -10207,12 +10214,12 @@ "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "requires": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", + "ajv": "5.5.2", + "ajv-keywords": "2.1.1", + "chalk": "2.4.1", + "lodash": "4.17.11", "slice-ansi": "1.0.0", - "string-width": "^2.1.1" + "string-width": "2.1.1" } }, "tape": { @@ -10220,19 +10227,19 @@ "resolved": "https://registry.npmjs.org/tape/-/tape-4.9.1.tgz", "integrity": "sha512-6fKIXknLpoe/Jp4rzHKFPpJUHDHDqn8jus99IfPnHIjyz78HYlefTGD3b5EkbQzuLfaEvmfPK3IolLgq2xT3kw==", "requires": { - "deep-equal": "~1.0.1", - "defined": "~1.0.0", - "for-each": "~0.3.3", - "function-bind": "~1.1.1", - "glob": "~7.1.2", - "has": "~1.0.3", - "inherits": "~2.0.3", - "minimist": "~1.2.0", - "object-inspect": "~1.6.0", - "resolve": "~1.7.1", - "resumer": "~0.0.0", - "string.prototype.trim": "~1.1.2", - "through": "~2.3.8" + "deep-equal": "1.0.1", + "defined": "1.0.0", + "for-each": "0.3.3", + "function-bind": "1.1.1", + "glob": "7.1.3", + "has": "1.0.3", + "inherits": "2.0.3", + "minimist": "1.2.0", + "object-inspect": "1.6.0", + "resolve": "1.7.1", + "resumer": "0.0.0", + "string.prototype.trim": "1.1.2", + "through": "2.3.8" }, "dependencies": { "inherits": { @@ -10250,7 +10257,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", "requires": { - "path-parse": "^1.0.5" + "path-parse": "1.0.6" } } } @@ -10261,7 +10268,7 @@ "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "dev": true, "requires": { - "execa": "^0.7.0" + "execa": "0.7.0" } }, "text-encoding": { @@ -10291,7 +10298,7 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "requires": { - "os-tmpdir": "~1.0.2" + "os-tmpdir": "1.0.2" } }, "to-array": { @@ -10309,7 +10316,7 @@ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "to-regex": { @@ -10317,10 +10324,10 @@ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" } }, "to-regex-range": { @@ -10328,8 +10335,8 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "3.0.0", + "repeat-string": "1.6.1" }, "dependencies": { "is-number": { @@ -10337,7 +10344,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } } } @@ -10347,7 +10354,7 @@ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", "requires": { - "nopt": "~1.0.10" + "nopt": "1.0.10" } }, "tough-cookie": { @@ -10356,8 +10363,8 @@ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "dev": true, "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" + "psl": "1.1.29", + "punycode": "1.4.1" } }, "trim-right": { @@ -10377,7 +10384,7 @@ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "tweetnacl": { @@ -10392,7 +10399,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { - "prelude-ls": "~1.1.2" + "prelude-ls": "1.1.2" } }, "type-detect": { @@ -10408,7 +10415,7 @@ "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "~2.1.18" + "mime-types": "2.1.20" } }, "typedarray": { @@ -10432,7 +10439,7 @@ "integrity": "sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY=", "dev": true, "requires": { - "debug": "^2.2.0" + "debug": "2.6.9" }, "dependencies": { "debug": { @@ -10451,10 +10458,10 @@ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "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": { "extend-shallow": { @@ -10462,7 +10469,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "set-value": { @@ -10470,10 +10477,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" } } } @@ -10489,7 +10496,7 @@ "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", "dev": true, "requires": { - "crypto-random-string": "^1.0.0" + "crypto-random-string": "1.0.0" } }, "unorm": { @@ -10502,8 +10509,8 @@ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "has-value": "0.3.1", + "isobject": "3.0.1" }, "dependencies": { "has-value": { @@ -10511,9 +10518,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" }, "dependencies": { "isobject": { @@ -10556,16 +10563,16 @@ "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", "dev": true, "requires": { - "boxen": "^1.2.1", - "chalk": "^2.0.1", - "configstore": "^3.0.0", - "import-lazy": "^2.1.0", - "is-ci": "^1.0.10", - "is-installed-globally": "^0.1.0", - "is-npm": "^1.0.0", - "latest-version": "^3.0.0", - "semver-diff": "^2.0.0", - "xdg-basedir": "^3.0.0" + "boxen": "1.3.0", + "chalk": "2.4.1", + "configstore": "3.1.2", + "import-lazy": "2.1.0", + "is-ci": "1.2.1", + "is-installed-globally": "0.1.0", + "is-npm": "1.0.0", + "latest-version": "3.1.0", + "semver-diff": "2.1.0", + "xdg-basedir": "3.0.0" } }, "uri-js": { @@ -10574,7 +10581,7 @@ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "requires": { - "punycode": "^2.1.0" + "punycode": "2.1.1" }, "dependencies": { "punycode": { @@ -10596,7 +10603,7 @@ "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "dev": true, "requires": { - "prepend-http": "^2.0.0" + "prepend-http": "2.0.0" } }, "url-to-options": { @@ -10639,7 +10646,7 @@ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "requires": { - "user-home": "^1.1.1" + "user-home": "1.1.1" } }, "validate-npm-package-license": { @@ -10647,8 +10654,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.2", + "spdx-expression-parse": "3.0.0" } }, "varuint-bitcoin": { @@ -10656,7 +10663,7 @@ "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz", "integrity": "sha512-jCEPG+COU/1Rp84neKTyDJQr478/hAfVp5xxYn09QEH0yBjbmPeMfuuQIrp+BUD83hybtYZKhr5elV3bvdV1bA==", "requires": { - "safe-buffer": "^5.1.1" + "safe-buffer": "5.1.2" } }, "verror": { @@ -10665,17 +10672,9 @@ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": true, "requires": { - "assert-plus": "^1.0.0", + "assert-plus": "1.0.0", "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "web3bch.js": { - "version": "github:web3bch/web3bch.js#d904c42f7eb6385d20b7a2eebed8884814fe7988", - "from": "github:web3bch/web3bch.js#master", - "requires": { - "bchaddrjs": "^0.2.2", - "bitcoincashjs": "^0.1.10" + "extsprintf": "1.3.0" } }, "which": { @@ -10683,7 +10682,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -10697,7 +10696,7 @@ "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", "dev": true, "requires": { - "string-width": "^2.1.1" + "string-width": "2.1.1" } }, "wif": { @@ -10705,7 +10704,7 @@ "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", "requires": { - "bs58check": "<3.0.0" + "bs58check": "2.1.2" } }, "window-or-global": { @@ -10723,8 +10722,8 @@ "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "string-width": { @@ -10732,9 +10731,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -10749,7 +10748,7 @@ "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "requires": { - "mkdirp": "^0.5.1" + "mkdirp": "0.5.1" } }, "write-file-atomic": { @@ -10758,9 +10757,9 @@ "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "signal-exit": "3.0.2" } }, "ws": { @@ -10768,9 +10767,9 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" + "async-limiter": "1.0.0", + "safe-buffer": "5.1.2", + "ultron": "1.1.1" } }, "xdg-basedir": { @@ -10804,19 +10803,19 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", "requires": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^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": "^7.0.0" + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.3", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.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": "7.0.0" } }, "yargs-parser": { @@ -10824,7 +10823,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" } }, "yeast": { diff --git a/package.json b/package.json index 9ef11756..e8c518a7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "2.2.1", + "version": "2.2.2", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", diff --git a/src/Address.js b/src/Address.js index cbf78605..3a171ed3 100644 --- a/src/Address.js +++ b/src/Address.js @@ -305,6 +305,20 @@ class Address { else throw error } } + + async transactions(address) { + if (typeof address !== "string") address = JSON.stringify(address) + + try { + const response = await axios.get( + `${this.restURL}address/transactions/${address}` + ) + return response.data + } catch (error) { + if (error.response && error.response.data) throw error.response.data + else throw error + } + } } export default Address From 8a89bb3dfc161b538b5c368f305982fca7e89ca9 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 27 Nov 2018 18:58:09 +0800 Subject: [PATCH 137/480] Remove nodemon dep to address event-stream vuln. https://github.com/dominictarr/event-stream/issues/116 --- index.js | 2 +- package-lock.json | 1049 ++++++--------------------------------------- package.json | 3 +- 3 files changed, 135 insertions(+), 919 deletions(-) diff --git a/index.js b/index.js index 5be1552c..dd1a6c58 100755 --- a/index.js +++ b/index.js @@ -18,7 +18,7 @@ const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") const cmd = require("node-cmd") -program.version("2.2.2 ", "-v, --version") +program.version("2.2.3 ", "-v, --version") program .command("new ") diff --git a/package-lock.json b/package-lock.json index 4208a322..1e6304ea 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "2.2.2", + "version": "2.2.3", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -99,15 +99,6 @@ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=" }, - "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", - "dev": true, - "requires": { - "string-width": "2.1.1" - } - }, "ansi-escapes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", @@ -247,7 +238,8 @@ "async-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=" + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "optional": true }, "async-limiter": { "version": "1.0.0", @@ -1198,7 +1190,8 @@ "binary-extensions": { "version": "1.12.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", - "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==" + "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==", + "optional": true }, "bindings": { "version": "1.3.0", @@ -1313,7 +1306,7 @@ "bech32": "1.1.3", "bigi": "1.4.2", "bip66": "1.1.5", - "bitcoin-ops": "1.4.1", + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646", "bs58check": "2.1.2", "create-hash": "1.2.0", "create-hmac": "1.1.7", @@ -1325,13 +1318,6 @@ "typeforce": "1.13.2", "varuint-bitcoin": "1.1.0", "wif": "2.0.6" - }, - "dependencies": { - "bitcoin-ops": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz", - "integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow==" - } } }, "bitcoinjs-lib": { @@ -1385,21 +1371,6 @@ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" }, - "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", - "dev": true, - "requires": { - "ansi-align": "2.0.0", - "camelcase": "4.1.0", - "chalk": "2.4.1", - "cli-boxes": "1.0.0", - "string-width": "2.1.1", - "term-size": "1.2.0", - "widest-line": "2.0.0" - } - }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1586,12 +1557,6 @@ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000890.tgz", "integrity": "sha512-4NI3s4Y6ROm+SgZN5sLUG4k7nVWQnedis3c/RWkynV5G6cHSY7+a8fwFyn2yoBDE3E6VswhTNNwR3PvzGqlTkg==" }, - "capture-stack-trace": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", - "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==", - "dev": true - }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", @@ -1676,12 +1641,6 @@ "readdirp": "2.2.1" } }, - "ci-info": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", - "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", - "dev": true - }, "cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", @@ -1733,12 +1692,6 @@ "resolved": "https://registry.npmjs.org/clear/-/clear-0.0.1.tgz", "integrity": "sha1-5RhuIp2ZRIF5wTAxG2+dML/2sLo=" }, - "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", - "dev": true - }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", @@ -1873,20 +1826,6 @@ } } }, - "configstore": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", - "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", - "dev": true, - "requires": { - "dot-prop": "4.2.0", - "graceful-fs": "4.1.11", - "make-dir": "1.3.0", - "unique-string": "1.0.0", - "write-file-atomic": "2.3.0", - "xdg-basedir": "3.0.0" - } - }, "contains-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", @@ -1960,15 +1899,6 @@ "safe-buffer": "5.1.2" } }, - "create-error-class": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", - "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", - "dev": true, - "requires": { - "capture-stack-trace": "1.0.1" - } - }, "create-hash": { "version": "1.2.0", "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", @@ -2004,12 +1934,6 @@ "which": "1.3.1" } }, - "crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", - "dev": true - }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -2065,12 +1989,6 @@ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" }, - "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==", - "dev": true - }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", @@ -2208,15 +2126,6 @@ "esutils": "2.0.2" } }, - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "dev": true, - "requires": { - "is-obj": "1.0.1" - } - }, "drbg.js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", @@ -2227,12 +2136,6 @@ "create-hmac": "1.1.7" } }, - "duplexer": { - "version": "0.1.1", - "resolved": "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", - "dev": true - }, "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", @@ -2818,22 +2721,6 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" }, - "event-stream": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.6.tgz", - "integrity": "sha512-dGXNg4F/FgVzlApjzItL+7naHutA3fDqbV/zAZqDDlXTjiMnQmZKu+prImWKszeBM5UQeGvAl3u1wBiKeDh61g==", - "dev": true, - "requires": { - "duplexer": "0.1.1", - "flatmap-stream": "0.1.1", - "from": "0.1.7", - "map-stream": "0.0.7", - "pause-stream": "0.0.11", - "split": "1.0.1", - "stream-combiner": "0.2.2", - "through": "2.3.8" - } - }, "evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", @@ -3011,12 +2898,6 @@ "write": "0.2.1" } }, - "flatmap-stream": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/flatmap-stream/-/flatmap-stream-0.1.1.tgz", - "integrity": "sha512-lAq4tLbm3sidmdCN8G3ExaxH7cUCtP5mgDvrYowsx84dcYkJJ4I28N7gkxA6+YlSXzaGLJYIDEi9WGfXzMiXdw==", - "dev": true - }, "flow-bin": { "version": "0.64.0", "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.64.0.tgz", @@ -3110,12 +2991,6 @@ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", "dev": true }, - "from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", - "dev": true - }, "from2": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", @@ -3745,15 +3620,6 @@ "is-glob": "2.0.1" } }, - "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", - "dev": true, - "requires": { - "ini": "1.3.5" - } - }, "globals": { "version": "9.18.0", "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", @@ -4034,18 +3900,6 @@ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" }, - "ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", - "dev": true - }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true - }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -4157,6 +4011,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "optional": true, "requires": { "binary-extensions": "1.12.0" } @@ -4179,15 +4034,6 @@ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" }, - "is-ci": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", - "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", - "dev": true, - "requires": { - "ci-info": "1.6.0" - } - }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", @@ -4267,22 +4113,6 @@ "is-extglob": "1.0.0" } }, - "is-installed-globally": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", - "dev": true, - "requires": { - "global-dirs": "0.1.1", - "is-path-inside": "1.0.1" - } - }, - "is-npm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", - "dev": true - }, "is-number": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", @@ -4292,12 +4122,6 @@ "kind-of": "3.2.2" } }, - "is-obj": { - "version": "1.0.1", - "resolved": "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - }, "is-object": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", @@ -4363,12 +4187,6 @@ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" }, - "is-redirect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", - "dev": true - }, "is-regex": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", @@ -4410,7 +4228,8 @@ "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "optional": true }, "isarray": { "version": "1.0.0", @@ -4590,15 +4409,6 @@ "request": "2.88.0" } }, - "latest-version": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", - "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", - "dev": true, - "requires": { - "package-json": "4.0.1" - } - }, "lcid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", @@ -4666,12 +4476,6 @@ "integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y=", "dev": true }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, "lodash.fill": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/lodash.fill/-/lodash.fill-3.4.0.tgz", @@ -4785,12 +4589,6 @@ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, - "map-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", - "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", - "dev": true - }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", @@ -5012,6 +4810,7 @@ "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "optional": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -5029,17 +4828,20 @@ "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "optional": true }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "optional": true }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "optional": true } } }, @@ -5072,467 +4874,88 @@ }, "nise": { "version": "1.4.5", - "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.5.tgz", - "integrity": "sha512-OHRVvdxKgwZELf2DTgsJEIA4MOq8XWvpSUzoOXyxJ2mY0mMENWC66+70AShLR2z05B1dzrzWlUQJmJERlOUpZw==", - "dev": true, - "requires": { - "@sinonjs/formatio": "3.0.0", - "just-extend": "3.0.0", - "lolex": "2.7.5", - "path-to-regexp": "1.7.0", - "text-encoding": "0.6.4" - }, - "dependencies": { - "@sinonjs/formatio": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.0.0.tgz", - "integrity": "sha512-vdjoYLDptCgvtJs57ULshak3iJe4NW3sJ3g36xVDGff5AE8P30S6A093EIEPjdi2noGhfuNOEkbxt3J3awFW1w==", - "dev": true, - "requires": { - "@sinonjs/samsam": "2.1.0" - } - } - } - }, - "node-cmd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/node-cmd/-/node-cmd-3.0.0.tgz", - "integrity": "sha1-OP/3CkqqT2WdID61eGJzcBjiT28=" - }, - "node-emoji": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", - "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", - "requires": { - "lodash.toarray": "4.4.0" - } - }, - "node-forge": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.6.tgz", - "integrity": "sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw==", - "dev": true - }, - "node-jose": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-jose/-/node-jose-1.0.0.tgz", - "integrity": "sha512-RE3P8l60Rj9ELrpPmvw6sOQ1hSyYfmQdNUMCa4EN7nCE1ux5JVX+GfXv+mfUTEMhZwNMwxBtI0+X1CKKeukSVQ==", - "dev": true, - "requires": { - "base64url": "3.0.0", - "es6-promise": "4.2.5", - "lodash.assign": "4.2.0", - "lodash.clone": "4.5.0", - "lodash.fill": "3.4.0", - "lodash.flatten": "4.4.0", - "lodash.intersection": "4.4.0", - "lodash.merge": "4.6.1", - "lodash.omit": "4.5.0", - "lodash.partialright": "4.2.1", - "lodash.pick": "4.4.0", - "lodash.uniq": "4.5.0", - "long": "4.0.0", - "node-forge": "0.7.6", - "uuid": "3.3.2" - } - }, - "node-mocks-http": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/node-mocks-http/-/node-mocks-http-1.7.2.tgz", - "integrity": "sha512-n7fj7BzRNjhQuWU/xcoRH/aOOPeLg3qMJx3mUDjwheoEmZGkThhhGMTxJZ5nnSUcXmEU1uS3gFq3VdBMhS5ZxQ==", - "dev": true, - "requires": { - "accepts": "1.3.5", - "depd": "1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "mime": "1.6.0", - "net": "1.0.2", - "parseurl": "1.3.2", - "range-parser": "1.2.0", - "type-is": "1.6.16" - } - }, - "nodemon": { - "version": "1.18.4", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.18.4.tgz", - "integrity": "sha512-hyK6vl65IPnky/ee+D3IWvVGgJa/m3No2/Xc/3wanS6Ce1MWjCzH6NnhPJ/vZM+6JFym16jtHx51lmCMB9HDtg==", - "dev": true, - "requires": { - "chokidar": "2.0.4", - "debug": "3.1.0", - "ignore-by-default": "1.0.1", - "minimatch": "3.0.4", - "pstree.remy": "1.1.0", - "semver": "5.5.1", - "supports-color": "5.5.0", - "touch": "3.1.0", - "undefsafe": "2.0.2", - "update-notifier": "2.5.0" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "chokidar": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", - "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", - "dev": true, - "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.1", - "braces": "2.3.2", - "fsevents": "1.2.4", - "glob-parent": "3.1.0", - "inherits": "2.0.1", - "is-binary-path": "1.0.1", - "is-glob": "4.0.0", - "lodash.debounce": "4.0.8", - "normalize-path": "2.1.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1", - "upath": "1.1.0" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.5.tgz", + "integrity": "sha512-OHRVvdxKgwZELf2DTgsJEIA4MOq8XWvpSUzoOXyxJ2mY0mMENWC66+70AShLR2z05B1dzrzWlUQJmJERlOUpZw==", + "dev": true, + "requires": { + "@sinonjs/formatio": "3.0.0", + "just-extend": "3.0.0", + "lolex": "2.7.5", + "path-to-regexp": "1.7.0", + "text-encoding": "0.6.4" + }, + "dependencies": { + "@sinonjs/formatio": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.0.0.tgz", + "integrity": "sha512-vdjoYLDptCgvtJs57ULshak3iJe4NW3sJ3g36xVDGff5AE8P30S6A093EIEPjdi2noGhfuNOEkbxt3J3awFW1w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "@sinonjs/samsam": "2.1.0" } } } }, + "node-cmd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/node-cmd/-/node-cmd-3.0.0.tgz", + "integrity": "sha1-OP/3CkqqT2WdID61eGJzcBjiT28=" + }, + "node-emoji": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", + "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", + "requires": { + "lodash.toarray": "4.4.0" + } + }, + "node-forge": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.6.tgz", + "integrity": "sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw==", + "dev": true + }, + "node-jose": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-jose/-/node-jose-1.0.0.tgz", + "integrity": "sha512-RE3P8l60Rj9ELrpPmvw6sOQ1hSyYfmQdNUMCa4EN7nCE1ux5JVX+GfXv+mfUTEMhZwNMwxBtI0+X1CKKeukSVQ==", + "dev": true, + "requires": { + "base64url": "3.0.0", + "es6-promise": "4.2.5", + "lodash.assign": "4.2.0", + "lodash.clone": "4.5.0", + "lodash.fill": "3.4.0", + "lodash.flatten": "4.4.0", + "lodash.intersection": "4.4.0", + "lodash.merge": "4.6.1", + "lodash.omit": "4.5.0", + "lodash.partialright": "4.2.1", + "lodash.pick": "4.4.0", + "lodash.uniq": "4.5.0", + "long": "4.0.0", + "node-forge": "0.7.6", + "uuid": "3.3.2" + } + }, + "node-mocks-http": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/node-mocks-http/-/node-mocks-http-1.7.2.tgz", + "integrity": "sha512-n7fj7BzRNjhQuWU/xcoRH/aOOPeLg3qMJx3mUDjwheoEmZGkThhhGMTxJZ5nnSUcXmEU1uS3gFq3VdBMhS5ZxQ==", + "dev": true, + "requires": { + "accepts": "1.3.5", + "depd": "1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "1.1.2", + "mime": "1.6.0", + "net": "1.0.2", + "parseurl": "1.3.2", + "range-parser": "1.2.0", + "type-is": "1.6.16" + } + }, "nopt": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", @@ -8448,54 +7871,6 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" }, - "package-json": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", - "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", - "dev": true, - "requires": { - "got": "6.7.1", - "registry-auth-token": "3.3.2", - "registry-url": "3.1.0", - "semver": "5.5.1" - }, - "dependencies": { - "got": { - "version": "6.7.1", - "resolved": "http://registry.npmjs.org/got/-/got-6.7.1.tgz", - "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", - "dev": true, - "requires": { - "create-error-class": "3.0.2", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "is-redirect": "1.0.0", - "is-retry-allowed": "1.1.0", - "is-stream": "1.1.0", - "lowercase-keys": "1.0.1", - "safe-buffer": "5.1.2", - "timed-out": "4.0.1", - "unzip-response": "2.0.1", - "url-parse-lax": "1.0.0" - } - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true - }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "dev": true, - "requires": { - "prepend-http": "1.0.4" - } - } - } - }, "parse-glob": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", @@ -8543,12 +7918,6 @@ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", @@ -8612,15 +7981,6 @@ "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", "dev": true }, - "pause-stream": { - "version": "0.0.11", - "resolved": "http://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", - "dev": true, - "requires": { - "through": "2.3.8" - } - }, "pbkdf2": { "version": "3.0.17", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", @@ -8738,7 +8098,8 @@ "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "optional": true }, "prelude-ls": { "version": "1.1.2", @@ -8787,15 +8148,6 @@ "object-assign": "4.1.1" } }, - "ps-tree": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.1.0.tgz", - "integrity": "sha1-tCGyQUDWID8e08dplrRCewjowBQ=", - "dev": true, - "requires": { - "event-stream": "3.3.6" - } - }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", @@ -8807,15 +8159,6 @@ "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==", "dev": true }, - "pstree.remy": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.0.tgz", - "integrity": "sha512-q5I5vLRMVtdWa8n/3UEzZX7Lfghzrg9eG2IKk2ENLSofKRCXVqMvMUHxCKgXNaqH/8ebhBxrqftHWnyTFweJ5Q==", - "dev": true, - "requires": { - "ps-tree": "1.1.0" - } - }, "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", @@ -8911,26 +8254,6 @@ "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", "dev": true }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "0.6.0", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, "read-pkg": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", @@ -8975,6 +8298,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "optional": true, "requires": { "graceful-fs": "4.1.11", "micromatch": "3.1.10", @@ -8984,7 +8308,8 @@ "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "optional": true }, "array-unique": { "version": "0.3.2", @@ -8995,6 +8320,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "optional": true, "requires": { "arr-flatten": "1.1.0", "array-unique": "0.3.2", @@ -9012,6 +8338,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "optional": true, "requires": { "is-extendable": "0.1.1" } @@ -9022,6 +8349,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "optional": true, "requires": { "ms": "2.0.0" } @@ -9030,6 +8358,7 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "optional": true, "requires": { "debug": "2.6.9", "define-property": "0.2.5", @@ -9044,6 +8373,7 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "optional": true, "requires": { "is-descriptor": "0.1.6" } @@ -9052,6 +8382,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "optional": true, "requires": { "is-extendable": "0.1.1" } @@ -9060,6 +8391,7 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "optional": true, "requires": { "kind-of": "3.2.2" }, @@ -9068,6 +8400,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "optional": true, "requires": { "is-buffer": "1.1.6" } @@ -9078,6 +8411,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "optional": true, "requires": { "kind-of": "3.2.2" }, @@ -9086,6 +8420,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "optional": true, "requires": { "is-buffer": "1.1.6" } @@ -9096,6 +8431,7 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "optional": true, "requires": { "is-accessor-descriptor": "0.1.6", "is-data-descriptor": "0.1.4", @@ -9105,7 +8441,8 @@ "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "optional": true } } }, @@ -9113,6 +8450,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "optional": true, "requires": { "array-unique": "0.3.2", "define-property": "1.0.0", @@ -9128,6 +8466,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "optional": true, "requires": { "is-descriptor": "1.0.2" } @@ -9136,6 +8475,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "optional": true, "requires": { "is-extendable": "0.1.1" } @@ -9146,6 +8486,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "optional": true, "requires": { "extend-shallow": "2.0.1", "is-number": "3.0.0", @@ -9157,6 +8498,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "optional": true, "requires": { "is-extendable": "0.1.1" } @@ -9167,6 +8509,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "optional": true, "requires": { "kind-of": "6.0.2" } @@ -9175,6 +8518,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "optional": true, "requires": { "kind-of": "6.0.2" } @@ -9183,6 +8527,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "optional": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -9193,6 +8538,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "optional": true, "requires": { "kind-of": "3.2.2" }, @@ -9201,6 +8547,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "optional": true, "requires": { "is-buffer": "1.1.6" } @@ -9210,7 +8557,8 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "optional": true }, "kind-of": { "version": "6.0.2", @@ -9221,6 +8569,7 @@ "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "optional": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -9293,25 +8642,6 @@ "regjsparser": "0.1.5" } }, - "registry-auth-token": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", - "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", - "dev": true, - "requires": { - "rc": "1.2.8", - "safe-buffer": "5.1.2" - } - }, - "registry-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", - "dev": true, - "requires": { - "rc": "1.2.8" - } - }, "regjsgen": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", @@ -9565,15 +8895,6 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==" }, - "semver-diff": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", - "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", - "dev": true, - "requires": { - "semver": "5.5.1" - } - }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -9718,6 +9039,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "optional": true, "requires": { "define-property": "1.0.0", "isobject": "3.0.1", @@ -9728,6 +9050,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "optional": true, "requires": { "is-descriptor": "1.0.2" } @@ -9736,6 +9059,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "optional": true, "requires": { "kind-of": "6.0.2" } @@ -9744,6 +9068,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "optional": true, "requires": { "kind-of": "6.0.2" } @@ -9752,6 +9077,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "optional": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -9761,7 +9087,8 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "optional": true }, "kind-of": { "version": "6.0.2", @@ -9774,6 +9101,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "optional": true, "requires": { "kind-of": "3.2.2" } @@ -9901,15 +9229,6 @@ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz", "integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w==" }, - "split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dev": true, - "requires": { - "through": "2.3.8" - } - }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -10068,16 +9387,6 @@ } } }, - "stream-combiner": { - "version": "0.2.2", - "resolved": "http://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", - "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", - "dev": true, - "requires": { - "duplexer": "0.1.1", - "through": "2.3.8" - } - }, "strict-uri-encode": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", @@ -10262,15 +9571,6 @@ } } }, - "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", - "dev": true, - "requires": { - "execa": "0.7.0" - } - }, "text-encoding": { "version": "0.6.4", "resolved": "http://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", @@ -10334,6 +9634,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "optional": true, "requires": { "is-number": "3.0.0", "repeat-string": "1.6.1" @@ -10343,6 +9644,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "optional": true, "requires": { "kind-of": "3.2.2" } @@ -10433,26 +9735,6 @@ "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" }, - "undefsafe": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.2.tgz", - "integrity": "sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY=", - "dev": true, - "requires": { - "debug": "2.6.9" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, "union-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", @@ -10490,15 +9772,6 @@ "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" }, - "unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", - "dev": true, - "requires": { - "crypto-random-string": "1.0.0" - } - }, "unorm": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.4.1.tgz", @@ -10545,36 +9818,6 @@ } } }, - "unzip-response": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", - "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", - "dev": true - }, - "upath": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", - "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", - "dev": true - }, - "update-notifier": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", - "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", - "dev": true, - "requires": { - "boxen": "1.3.0", - "chalk": "2.4.1", - "configstore": "3.1.2", - "import-lazy": "2.1.0", - "is-ci": "1.2.1", - "is-installed-globally": "0.1.0", - "is-npm": "1.0.0", - "latest-version": "3.1.0", - "semver-diff": "2.1.0", - "xdg-basedir": "3.0.0" - } - }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", @@ -10690,15 +9933,6 @@ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, - "widest-line": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz", - "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", - "dev": true, - "requires": { - "string-width": "2.1.1" - } - }, "wif": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", @@ -10751,17 +9985,6 @@ "mkdirp": "0.5.1" } }, - "write-file-atomic": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", - "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "signal-exit": "3.0.2" - } - }, "ws": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", @@ -10772,12 +9995,6 @@ "ultron": "1.1.1" } }, - "xdg-basedir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", - "dev": true - }, "xmlhttprequest-ssl": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", diff --git a/package.json b/package.json index e8c518a7..d0478ccd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "2.2.2", + "version": "2.2.3", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", @@ -81,7 +81,6 @@ "kubernetes-client": "^6.1.0", "mocha": "^3.5.3", "node-mocks-http": "^1.7.0", - "nodemon": "^1.8.1", "nyc": "^11.6.0", "prettier": "^1.14.2", "sinon": "^4.5.0", From cacf8cd095720b7baf9e57b89eadd6f0d579ab5f Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 28 Nov 2018 07:59:20 +0800 Subject: [PATCH 138/480] Update bip68 dep. --- index.js | 2 +- lib/TransactionBuilder.js | 6 +++--- package-lock.json | 10 ++++++---- package.json | 4 ++-- src/TransactionBuilder.js | 2 +- 5 files changed, 13 insertions(+), 11 deletions(-) diff --git a/index.js b/index.js index dd1a6c58..c0b292df 100755 --- a/index.js +++ b/index.js @@ -18,7 +18,7 @@ const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") const cmd = require("node-cmd") -program.version("2.2.3 ", "-v, --version") +program.version("2.2.4 ", "-v, --version") program .command("new ") diff --git a/lib/TransactionBuilder.js b/lib/TransactionBuilder.js index a871e5f7..5c84a894 100644 --- a/lib/TransactionBuilder.js +++ b/lib/TransactionBuilder.js @@ -18,9 +18,9 @@ var _bip = require("bip66"); var _bip2 = _interopRequireDefault(_bip); -var _bip3 = require("bip68"); +var _bcBip = require("bc-bip68"); -var _bip4 = _interopRequireDefault(_bip3); +var _bcBip2 = _interopRequireDefault(_bcBip); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -55,7 +55,7 @@ var TransactionBuilder = function () { ADVANCED_TRANSACTION_FLAG: 0x01 }; this.bip66 = _bip2.default; - this.bip68 = _bip4.default; + this.bip68 = _bcBip2.default; this.p2shInput = false; this.tx; } diff --git a/package-lock.json b/package-lock.json index 1e6304ea..70e42b13 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "2.2.3", + "version": "2.2.4", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1127,6 +1127,11 @@ "integrity": "sha512-LIVmqIrIWuiqTvn4RzcrwCOuHo2DD6tKmKBPXXlr4p4n4l6BZBkwFTIa3zu1XkX5MbZgro4a6BvPi+n2Mns5Gg==", "dev": true }, + "bc-bip68": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bc-bip68/-/bc-bip68-1.0.5.tgz", + "integrity": "sha512-GzaMlN7pNthrY5BhReVhnfr4Ixx+GUSfyNRHYh0QiMUF0d0+0YaD8MpEdv6AjFBksg/zlqL1fVCBBm6PpTt2Rg==" + }, "bch-wallet-bridge-provider-interface": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/bch-wallet-bridge-provider-interface/-/bch-wallet-bridge-provider-interface-0.1.1.tgz", @@ -1247,9 +1252,6 @@ "safe-buffer": "5.1.2" } }, - "bip68": { - "version": "github:Bitcoin-com/bip68#aeac5a8c5c1e01dfba79ff3eb824171be004a28c" - }, "bitcoin-ops": { "version": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646" }, diff --git a/package.json b/package.json index d0478ccd..534b3e49 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "2.2.3", + "version": "2.2.4", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", @@ -37,7 +37,7 @@ "bip38": "^2.0.2", "bip39": "^2.5.0", "bip66": "^1.1.5", - "bip68": "Bitcoin-com/bip68#1.0.5", + "bc-bip68": "^1.0.5", "bitcoin-ops": "Bitcoin-com/bitcoincash-ops#1.5.0", "bitcoin-txdecoder": "0.0.3", "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib#3.3.4", diff --git a/src/TransactionBuilder.js b/src/TransactionBuilder.js index b1164825..fa557205 100644 --- a/src/TransactionBuilder.js +++ b/src/TransactionBuilder.js @@ -1,7 +1,7 @@ import Bitcoin from "bitcoincashjs-lib" import coininfo from "coininfo" import bip66 from "bip66" -import bip68 from "bip68" +import bip68 from "bc-bip68" class TransactionBuilder { static setAddress(address) { From b49ed2a9ca984b3d5055259e7a857c9025a6abf9 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Wed, 28 Nov 2018 08:58:22 -0800 Subject: [PATCH 139/480] Fixing double mocha entry --- package-lock.json | 7346 +++++++++++++++++++++++++-------------------- package.json | 3 +- 2 files changed, 4171 insertions(+), 3178 deletions(-) diff --git a/package-lock.json b/package-lock.json index 70e42b13..4802de26 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,6 +4,144 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/generator": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.1.6.tgz", + "integrity": "sha512-brwPBtVvdYdGxtenbQgfCdDPmtkmUBZPjUoK5SXJEBuHaA5BCubh9ly65fzXz7R6o5rA76Rs22ES8Z+HCc0YIQ==", + "requires": { + "@babel/types": "^7.1.6", + "jsesc": "^2.5.1", + "lodash": "^4.17.10", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + }, + "dependencies": { + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + } + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", + "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + } + } + }, + "@babel/parser": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.1.6.tgz", + "integrity": "sha512-dWP6LJm9nKT6ALaa+bnL247GHHMWir3vSlZ2+IHgHgktZQx0L3Uvq2uAWcuzIe+fujRsYWBW2q622C5UvGK9iQ==" + }, + "@babel/template": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.1.2.tgz", + "integrity": "sha512-SY1MmplssORfFiLDcOETrW7fCLl+PavlwMh92rrGcikQaRq4iWPVH0MpwPpY3etVMx6RnDjXtr6VZYr/IbP/Ag==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.1.2", + "@babel/types": "^7.1.2" + } + }, + "@babel/traverse": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.1.6.tgz", + "integrity": "sha512-CXedit6GpISz3sC2k2FsGCUpOhUqKdyL0lqNrImQojagnUMXf8hex4AxYFRuMkNGcvJX5QAFGzB5WJQmSv8SiQ==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.1.6", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.1.6", + "@babel/types": "^7.1.6", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.10" + }, + "dependencies": { + "debug": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", + "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", + "requires": { + "ms": "^2.1.1" + } + }, + "globals": { + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz", + "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==" + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "@babel/types": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.1.6.tgz", + "integrity": "sha512-DMiUzlY9DSjVsOylJssxLHSgj6tWM9PRFJOGW/RaOglVOK9nzTxoOMfTfRQXGUCUQ/HmlG2efwC+XqUEJ5ay4w==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } + } + }, "@sindresorhus/is": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", @@ -25,13 +163,13 @@ "integrity": "sha512-5x2kFgJYupaF1ns/RmharQ90lQkd2ELS8A9X0ymkAAdemYHGtI2KiUHG8nX2WU0T1qgnOU5YMqnBM2V7NUanNw==", "dev": true, "requires": { - "array-from": "2.1.1" + "array-from": "^2.1.1" } }, "@types/node": { - "version": "10.11.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.11.6.tgz", - "integrity": "sha512-fnA7yvqg3oKQDb3skBif9w5RRKVKAaeKeNuLzZL37XcSiWL4IoSXQnnbchR3UnBu2EMLHBip7ZVEkqoIVBP8QQ==", + "version": "10.12.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.10.tgz", + "integrity": "sha512-8xZEYckCbUVgK8Eg7lf5Iy4COKJ5uXlnIOnePN0WUwSQggy9tolM+tDJf7wMOnT/JT/W9xDYIaYggt3mRV2O5w==", "dev": true }, "abbrev": { @@ -44,7 +182,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "requires": { - "mime-types": "2.1.20", + "mime-types": "~2.1.18", "negotiator": "0.6.1" } }, @@ -58,7 +196,7 @@ "resolved": "http://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "requires": { - "acorn": "3.3.0" + "acorn": "^3.0.4" }, "dependencies": { "acorn": { @@ -79,8 +217,8 @@ "integrity": "sha1-iINE2tAiCnLjr1CQYRf0h3GSX6w=", "dev": true, "requires": { - "clean-stack": "1.3.0", - "indent-string": "3.2.0" + "clean-stack": "^1.0.0", + "indent-string": "^3.0.0" } }, "ajv": { @@ -88,10 +226,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "ajv-keywords": { @@ -101,7 +239,7 @@ }, "ansi-escapes": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", + "resolved": "http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==" }, "ansi-regex": { @@ -120,8 +258,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "optional": true, "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" } }, "argparse": { @@ -129,7 +267,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "arr-diff": { @@ -138,7 +276,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "optional": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { @@ -162,23 +300,10 @@ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.12.0" - } - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "requires": { - "array-uniq": "1.0.3" + "define-properties": "^1.1.2", + "es-abstract": "^1.7.0" } }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" - }, "array-unique": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", @@ -190,18 +315,13 @@ "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" - }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "~2.1.0" } }, "assert": { @@ -274,8 +394,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=", "requires": { - "follow-redirects": "1.5.9", - "is-buffer": "1.1.6" + "follow-redirects": "^1.2.5", + "is-buffer": "^1.1.5" } }, "babel-cli": { @@ -283,21 +403,21 @@ "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", "requires": { - "babel-core": "6.26.3", - "babel-polyfill": "6.26.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "chokidar": "1.7.0", - "commander": "2.19.0", - "convert-source-map": "1.6.0", - "fs-readdir-recursive": "1.1.0", - "glob": "7.1.3", - "lodash": "4.17.11", - "output-file-sync": "1.1.2", - "path-is-absolute": "1.0.1", - "slash": "1.0.0", - "source-map": "0.5.7", - "v8flags": "2.1.1" + "babel-core": "^6.26.0", + "babel-polyfill": "^6.26.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "chokidar": "^1.6.1", + "commander": "^2.11.0", + "convert-source-map": "^1.5.0", + "fs-readdir-recursive": "^1.0.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "output-file-sync": "^1.1.2", + "path-is-absolute": "^1.0.1", + "slash": "^1.0.0", + "source-map": "^0.5.6", + "v8flags": "^2.1.1" } }, "babel-code-frame": { @@ -305,9 +425,9 @@ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" }, "dependencies": { "chalk": { @@ -315,11 +435,11 @@ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "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" } } } @@ -329,25 +449,25 @@ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.1", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.6.0", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" }, "dependencies": { "debug": { @@ -365,14 +485,14 @@ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.11", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" } }, "babel-helper-builder-binary-assignment-operator-visitor": { @@ -380,9 +500,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "requires": { - "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-builder-react-jsx": { @@ -390,9 +510,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "esutils": "2.0.2" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "esutils": "^2.0.2" } }, "babel-helper-call-delegate": { @@ -400,10 +520,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-define-map": { @@ -411,10 +531,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.11" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-explode-assignable-expression": { @@ -422,9 +542,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-function-name": { @@ -432,11 +552,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-get-function-arity": { @@ -444,8 +564,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-hoist-variables": { @@ -453,8 +573,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-optimise-call-expression": { @@ -462,8 +582,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-regex": { @@ -471,9 +591,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.11" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-remap-async-to-generator": { @@ -481,11 +601,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-replace-supers": { @@ -493,12 +613,12 @@ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "requires": { - "babel-helper-optimise-call-expression": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helpers": { @@ -506,8 +626,8 @@ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-messages": { @@ -515,7 +635,7 @@ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-check-es2015-constants": { @@ -523,7 +643,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-syntax-async-functions": { @@ -556,9 +676,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-arrow-functions": { @@ -566,7 +686,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -574,7 +694,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -582,11 +702,11 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.11" + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-plugin-transform-es2015-classes": { @@ -594,15 +714,15 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "requires": { - "babel-helper-define-map": "6.26.0", - "babel-helper-function-name": "6.24.1", - "babel-helper-optimise-call-expression": "6.24.1", - "babel-helper-replace-supers": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-computed-properties": { @@ -610,8 +730,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-destructuring": { @@ -619,7 +739,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -627,8 +747,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-for-of": { @@ -636,7 +756,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -644,9 +764,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-literals": { @@ -654,7 +774,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -662,9 +782,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -672,10 +792,10 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" } }, "babel-plugin-transform-es2015-modules-systemjs": { @@ -683,9 +803,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-umd": { @@ -693,9 +813,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "requires": { - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-object-super": { @@ -703,8 +823,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "requires": { - "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.26.0" + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -712,12 +832,12 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-shorthand-properties": { @@ -725,8 +845,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-spread": { @@ -734,7 +854,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -742,9 +862,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-template-literals": { @@ -752,7 +872,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -760,7 +880,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -768,9 +888,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -778,9 +898,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", - "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-flow-strip-types": { @@ -788,8 +908,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", "requires": { - "babel-plugin-syntax-flow": "6.18.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-flow": "^6.18.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-display-name": { @@ -797,7 +917,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx": { @@ -805,9 +925,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", "requires": { - "babel-helper-builder-react-jsx": "6.26.0", - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-react-jsx": "^6.24.1", + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx-self": { @@ -815,8 +935,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx-source": { @@ -824,8 +944,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-regenerator": { @@ -833,7 +953,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "requires": { - "regenerator-transform": "0.10.1" + "regenerator-transform": "^0.10.0" } }, "babel-plugin-transform-strict-mode": { @@ -841,8 +961,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-polyfill": { @@ -850,9 +970,9 @@ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "requires": { - "babel-runtime": "6.26.0", - "core-js": "2.5.7", - "regenerator-runtime": "0.10.5" + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" }, "dependencies": { "regenerator-runtime": { @@ -867,36 +987,36 @@ "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0", - "browserslist": "3.2.8", - "invariant": "2.2.4", - "semver": "5.5.1" + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" } }, "babel-preset-es2015": { @@ -904,30 +1024,30 @@ "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0" + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.24.1", + "babel-plugin-transform-es2015-classes": "^6.24.1", + "babel-plugin-transform-es2015-computed-properties": "^6.24.1", + "babel-plugin-transform-es2015-destructuring": "^6.22.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", + "babel-plugin-transform-es2015-for-of": "^6.22.0", + "babel-plugin-transform-es2015-function-name": "^6.24.1", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-umd": "^6.24.1", + "babel-plugin-transform-es2015-object-super": "^6.24.1", + "babel-plugin-transform-es2015-parameters": "^6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", + "babel-plugin-transform-regenerator": "^6.24.1" } }, "babel-preset-flow": { @@ -935,7 +1055,7 @@ "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", "requires": { - "babel-plugin-transform-flow-strip-types": "6.22.0" + "babel-plugin-transform-flow-strip-types": "^6.22.0" } }, "babel-preset-react": { @@ -943,12 +1063,12 @@ "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-plugin-transform-react-display-name": "6.25.0", - "babel-plugin-transform-react-jsx": "6.24.1", - "babel-plugin-transform-react-jsx-self": "6.22.0", - "babel-plugin-transform-react-jsx-source": "6.22.0", - "babel-preset-flow": "6.23.0" + "babel-plugin-syntax-jsx": "^6.3.13", + "babel-plugin-transform-react-display-name": "^6.23.0", + "babel-plugin-transform-react-jsx": "^6.24.1", + "babel-plugin-transform-react-jsx-self": "^6.22.0", + "babel-plugin-transform-react-jsx-source": "^6.22.0", + "babel-preset-flow": "^6.23.0" } }, "babel-register": { @@ -956,13 +1076,13 @@ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "requires": { - "babel-core": "6.26.3", - "babel-runtime": "6.26.0", - "core-js": "2.5.7", - "home-or-tmp": "2.0.0", - "lodash": "4.17.11", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" } }, "babel-runtime": { @@ -970,8 +1090,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "2.5.7", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -979,11 +1099,11 @@ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.11" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { @@ -991,15 +1111,15 @@ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.11" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" }, "dependencies": { "debug": { @@ -1017,10 +1137,10 @@ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.11", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -1043,13 +1163,13 @@ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "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" }, "dependencies": { "define-property": { @@ -1057,7 +1177,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -1065,7 +1185,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -1073,7 +1193,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -1081,155 +1201,1146 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "base-x": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.5.tgz", + "integrity": "sha512-C3picSgzPSLE+jW3tcBzJoGwitOtazb5B+5YmAxZm2ybmTi9LNgAtDO/jjVEBZwHoXmDBZ9m/IELj3elJVRBcA==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" + }, + "base64-js": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" + }, + "base64id": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=" + }, + "base64url": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz", + "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==", + "dev": true + }, + "bc-bip68": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bc-bip68/-/bc-bip68-1.0.5.tgz", + "integrity": "sha512-GzaMlN7pNthrY5BhReVhnfr4Ixx+GUSfyNRHYh0QiMUF0d0+0YaD8MpEdv6AjFBksg/zlqL1fVCBBm6PpTt2Rg==" + }, + "bch-wallet-bridge-provider-interface": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/bch-wallet-bridge-provider-interface/-/bch-wallet-bridge-provider-interface-0.1.1.tgz", + "integrity": "sha512-m8Mq/aJhZN11aoa91YyYs/B1GxWfpT5IIp64IU5VRgNxGXBuUiIfvybk4XQR+zrHaMW4SLrD1tI9n59ogmEw/A==" + }, + "bch-wallet-bridge.js": { + "version": "github:web3bch/bch-wallet-bridge.js#f73558eaf3a98ba2a23de3c9cbbd582b30ff19eb", + "from": "github:web3bch/bch-wallet-bridge.js#master", + "requires": { + "bch-wallet-bridge-provider-interface": "^0.1.1", + "bchaddrjs": "^0.2.2", + "bitcoincashjs": "^0.1.10" + } + }, + "bchaddrjs": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.3.tgz", + "integrity": "sha512-0DVW8q3UFQFhrvt8Fowpkk+WvkYTZTSD1vGCQHrtMHZjRL6G/SoW0mgrREmgO1F/8TJ+Julri4UBWA8Gr7C5Yw==", + "requires": { + "bs58check": "^2.1.2", + "cashaddrjs": "^0.2.9" + } + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bech32": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.3.tgz", + "integrity": "sha512-yuVFUvrNcoJi0sv5phmqc6P+Fl1HjRDRNOOkHY2X/3LBy2bIGNSFx4fZ95HMaXHupuS7cZR15AsvtmCIF4UEyg==" + }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "requires": { + "callsite": "1.0.0" + } + }, + "big-integer": { + "version": "1.6.36", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", + "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==" + }, + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" + }, + "bigi": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz", + "integrity": "sha1-nGZalfiLiwj8Bc/XMfVhhZ1yWCU=" + }, + "binary-extensions": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", + "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==", + "optional": true + }, + "bindings": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.1.tgz", + "integrity": "sha512-i47mqjF9UbjxJhxGf+pZ6kSxrnI3wBLlnGI2ArWJ4r0VrvDS7ZYXkprq/pLaBWYq4GM0r4zdHY+NNRqEMU7uew==" + }, + "bip21": { + "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", + "from": "github:Bitcoin-com/bip21", + "requires": { + "qs": "^6.3.0" + } + }, + "bip32-utils": { + "version": "github:Bitcoin-com/bip32-utils#966fb8f0e0d4c667e4ee89adfa20c2078d66887c", + "from": "github:Bitcoin-com/bip32-utils#0.13.0", + "requires": { + "keccak": "^1.3.0", + "nyc": "*", + "standard": "^11.0.1", + "tape": "*" + }, + "dependencies": { + "nyc": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-13.1.0.tgz", + "integrity": "sha512-3GyY6TpQ58z9Frpv4GMExE1SV2tAgYqC7HSy2omEhNiCT3mhT9NyiOvIE8zkbuJVFzmvvNTnE4h/7/wQae7xLg==", + "requires": { + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^2.0.0", + "convert-source-map": "^1.6.0", + "debug-log": "^1.0.1", + "find-cache-dir": "^2.0.0", + "find-up": "^3.0.0", + "foreground-child": "^1.5.6", + "glob": "^7.1.3", + "istanbul-lib-coverage": "^2.0.1", + "istanbul-lib-hook": "^2.0.1", + "istanbul-lib-instrument": "^3.0.0", + "istanbul-lib-report": "^2.0.2", + "istanbul-lib-source-maps": "^2.0.1", + "istanbul-reports": "^2.0.1", + "make-dir": "^1.3.0", + "merge-source-map": "^1.1.0", + "resolve-from": "^4.0.0", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "spawn-wrap": "^1.4.2", + "test-exclude": "^5.0.0", + "uuid": "^3.3.2", + "yargs": "11.1.0", + "yargs-parser": "^9.0.2" + }, + "dependencies": { + "align-text": { + "version": "0.1.4", + "bundled": true, + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + } + }, + "amdefine": { + "version": "1.0.1", + "bundled": true + }, + "ansi-regex": { + "version": "3.0.0", + "bundled": true + }, + "append-transform": { + "version": "1.0.0", + "bundled": true, + "requires": { + "default-require-extensions": "^2.0.0" + } + }, + "archy": { + "version": "1.0.0", + "bundled": true + }, + "arrify": { + "version": "1.0.1", + "bundled": true + }, + "async": { + "version": "1.5.2", + "bundled": true + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "builtin-modules": { + "version": "1.1.1", + "bundled": true + }, + "caching-transform": { + "version": "2.0.0", + "bundled": true, + "requires": { + "make-dir": "^1.0.0", + "md5-hex": "^2.0.0", + "package-hash": "^2.0.0", + "write-file-atomic": "^2.0.0" + } + }, + "camelcase": { + "version": "1.2.1", + "bundled": true, + "optional": true + }, + "center-align": { + "version": "0.1.3", + "bundled": true, + "optional": true, + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "cliui": { + "version": "2.1.0", + "bundled": true, + "optional": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "bundled": true, + "optional": true + } + } + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "commondir": { + "version": "1.0.1", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "convert-source-map": { + "version": "1.6.0", + "bundled": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cross-spawn": { + "version": "4.0.2", + "bundled": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "debug": { + "version": "3.1.0", + "bundled": true, + "requires": { + "ms": "2.0.0" + } + }, + "debug-log": { + "version": "1.0.1", + "bundled": true + }, + "decamelize": { + "version": "1.2.0", + "bundled": true + }, + "default-require-extensions": { + "version": "2.0.0", + "bundled": true, + "requires": { + "strip-bom": "^3.0.0" + } + }, + "error-ex": { + "version": "1.3.2", + "bundled": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es6-error": { + "version": "4.1.1", + "bundled": true + }, + "execa": { + "version": "0.7.0", + "bundled": true, + "requires": { + "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" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "bundled": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + } + } + }, + "find-cache-dir": { + "version": "2.0.0", + "bundled": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "bundled": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "foreground-child": { + "version": "1.5.6", + "bundled": true, + "requires": { + "cross-spawn": "^4", + "signal-exit": "^3.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "get-caller-file": { + "version": "1.0.3", + "bundled": true + }, + "get-stream": { + "version": "3.0.0", + "bundled": true + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "requires": { + "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": { + "version": "4.1.11", + "bundled": true + }, + "handlebars": { + "version": "4.0.11", + "bundled": true, + "requires": { + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "bundled": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "has-flag": { + "version": "3.0.0", + "bundled": true + }, + "hosted-git-info": { + "version": "2.7.1", + "bundled": true + }, + "imurmurhash": { + "version": "0.1.4", + "bundled": true + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "invert-kv": { + "version": "1.0.0", + "bundled": true + }, + "is-arrayish": { + "version": "0.2.1", + "bundled": true + }, + "is-buffer": { + "version": "1.1.6", + "bundled": true + }, + "is-builtin-module": { + "version": "1.0.0", + "bundled": true, + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true + }, + "is-stream": { + "version": "1.1.0", + "bundled": true + }, + "isexe": { + "version": "2.0.0", + "bundled": true + }, + "istanbul-lib-coverage": { + "version": "2.0.1", + "bundled": true + }, + "istanbul-lib-hook": { + "version": "2.0.1", + "bundled": true, + "requires": { + "append-transform": "^1.0.0" + } + }, + "istanbul-lib-report": { + "version": "2.0.2", + "bundled": true, + "requires": { + "istanbul-lib-coverage": "^2.0.1", + "make-dir": "^1.3.0", + "supports-color": "^5.4.0" + } + }, + "istanbul-lib-source-maps": { + "version": "2.0.1", + "bundled": true, + "requires": { + "debug": "^3.1.0", + "istanbul-lib-coverage": "^2.0.1", + "make-dir": "^1.3.0", + "rimraf": "^2.6.2", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "bundled": true + } + } + }, + "istanbul-reports": { + "version": "2.0.1", + "bundled": true, + "requires": { + "handlebars": "^4.0.11" + } + }, + "json-parse-better-errors": { + "version": "1.0.2", + "bundled": true + }, + "kind-of": { + "version": "3.2.2", + "bundled": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "lazy-cache": { + "version": "1.0.4", + "bundled": true, + "optional": true + }, + "lcid": { + "version": "1.0.0", + "bundled": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "load-json-file": { + "version": "4.0.0", + "bundled": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "bundled": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash.flattendeep": { + "version": "4.4.0", + "bundled": true + }, + "longest": { + "version": "1.0.1", + "bundled": true + }, + "lru-cache": { + "version": "4.1.3", + "bundled": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "bundled": true, + "requires": { + "pify": "^3.0.0" + } + }, + "md5-hex": { + "version": "2.0.0", + "bundled": true, + "requires": { + "md5-o-matic": "^0.1.1" + } + }, + "md5-o-matic": { + "version": "0.1.1", + "bundled": true + }, + "mem": { + "version": "1.1.0", + "bundled": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "merge-source-map": { + "version": "1.1.0", + "bundled": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "bundled": true + } + } + }, + "mimic-fn": { + "version": "1.2.0", + "bundled": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.10", + "bundled": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "bundled": true + } + } + }, + "ms": { + "version": "2.0.0", + "bundled": true + }, + "normalize-package-data": { + "version": "2.4.0", + "bundled": true, + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "npm-run-path": { + "version": "2.0.2", + "bundled": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1" + } + }, + "optimist": { + "version": "0.6.1", + "bundled": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true + }, + "os-locale": { + "version": "2.1.0", + "bundled": true, + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "p-finally": { + "version": "1.0.0", + "bundled": true + }, + "p-limit": { + "version": "2.0.0", + "bundled": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "bundled": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.0.0", + "bundled": true + }, + "package-hash": { + "version": "2.0.0", + "bundled": true, + "requires": { + "graceful-fs": "^4.1.11", + "lodash.flattendeep": "^4.4.0", + "md5-hex": "^2.0.0", + "release-zalgo": "^1.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "bundled": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "path-exists": { + "version": "3.0.0", + "bundled": true + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true + }, + "path-key": { + "version": "2.0.1", + "bundled": true + }, + "path-type": { + "version": "3.0.0", + "bundled": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "bundled": true + }, + "pkg-dir": { + "version": "3.0.0", + "bundled": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "pseudomap": { + "version": "1.0.2", + "bundled": true + }, + "read-pkg": { + "version": "3.0.0", + "bundled": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "4.0.0", + "bundled": true, + "requires": { + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" + } + }, + "release-zalgo": { + "version": "1.0.0", + "bundled": true, + "requires": { + "es6-error": "^4.0.1" + } + }, + "repeat-string": { + "version": "1.6.1", + "bundled": true + }, + "require-directory": { + "version": "2.1.1", + "bundled": true + }, + "require-main-filename": { + "version": "1.0.1", + "bundled": true + }, + "resolve-from": { + "version": "4.0.0", + "bundled": true + }, + "right-align": { + "version": "0.1.3", + "bundled": true, + "optional": true, + "requires": { + "align-text": "^0.1.1" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true + }, + "semver": { + "version": "5.5.0", + "bundled": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true + }, + "shebang-command": { + "version": "1.2.0", + "bundled": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "bundled": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true + }, + "source-map": { + "version": "0.5.7", + "bundled": true, + "optional": true + }, + "spawn-wrap": { + "version": "1.4.2", + "bundled": true, + "requires": { + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" + } + }, + "spdx-correct": { + "version": "3.0.0", + "bundled": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "bundled": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "bundled": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.0", + "bundled": true + }, + "string-width": { + "version": "2.1.1", + "bundled": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "bundled": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "bundled": true + }, + "strip-eof": { + "version": "1.0.0", + "bundled": true + }, + "supports-color": { + "version": "5.4.0", + "bundled": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "test-exclude": { + "version": "5.0.0", + "bundled": true, + "requires": { + "arrify": "^1.0.1", + "minimatch": "^3.0.4", + "read-pkg-up": "^4.0.0", + "require-main-filename": "^1.0.1" + } + }, + "uglify-js": { + "version": "2.8.29", + "bundled": true, + "optional": true, + "requires": { + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "dependencies": { + "yargs": { + "version": "3.10.0", + "bundled": true, + "optional": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "uuid": { + "version": "3.3.2", + "bundled": true + }, + "validate-npm-package-license": { + "version": "3.0.3", + "bundled": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "bundled": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "bundled": true + }, + "window-size": { + "version": "0.1.0", + "bundled": true, + "optional": true + }, + "wordwrap": { + "version": "0.0.3", + "bundled": true + }, + "wrap-ansi": { + "version": "2.1.0", + "bundled": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + }, + "write-file-atomic": { + "version": "2.3.0", + "bundled": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "y18n": { + "version": "3.2.1", + "bundled": true + }, + "yallist": { + "version": "2.1.2", + "bundled": true + }, + "yargs": { + "version": "11.1.0", + "bundled": true, + "requires": { + "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": "^9.0.2" + }, + "dependencies": { + "cliui": { + "version": "4.1.0", + "bundled": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "bundled": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "bundled": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "bundled": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "bundled": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "bundled": true + } + } + }, + "yargs-parser": { + "version": "9.0.2", + "bundled": true, + "requires": { + "camelcase": "^4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "bundled": true + } + } + } } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, - "base-x": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.4.tgz", - "integrity": "sha512-UYOadoSIkEI/VrRGSG6qp93rp2WdokiAiNYDfGW5qURAY8GiAQkvMbwNNSDYiVJopqv4gCna7xqf4rrNGp+5AA==", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" - }, - "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" - }, - "base64id": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", - "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=" - }, - "base64url": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.0.tgz", - "integrity": "sha512-LIVmqIrIWuiqTvn4RzcrwCOuHo2DD6tKmKBPXXlr4p4n4l6BZBkwFTIa3zu1XkX5MbZgro4a6BvPi+n2Mns5Gg==", - "dev": true - }, - "bc-bip68": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bc-bip68/-/bc-bip68-1.0.5.tgz", - "integrity": "sha512-GzaMlN7pNthrY5BhReVhnfr4Ixx+GUSfyNRHYh0QiMUF0d0+0YaD8MpEdv6AjFBksg/zlqL1fVCBBm6PpTt2Rg==" - }, - "bch-wallet-bridge-provider-interface": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/bch-wallet-bridge-provider-interface/-/bch-wallet-bridge-provider-interface-0.1.1.tgz", - "integrity": "sha512-m8Mq/aJhZN11aoa91YyYs/B1GxWfpT5IIp64IU5VRgNxGXBuUiIfvybk4XQR+zrHaMW4SLrD1tI9n59ogmEw/A==" - }, - "bch-wallet-bridge.js": { - "version": "github:web3bch/bch-wallet-bridge.js#f73558eaf3a98ba2a23de3c9cbbd582b30ff19eb", - "requires": { - "bch-wallet-bridge-provider-interface": "0.1.1", - "bchaddrjs": "0.2.2", - "bitcoincashjs": "0.1.10" - } - }, - "bchaddrjs": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.2.tgz", - "integrity": "sha512-W06sUpprptb65JHbu2yFdv8Tg7o2OWpD5n2pMUIhuLOXC5c64eMW7y9Pg0IHd/Qe31e1KwnHT9H1w6Pf9r4Fkg==", - "requires": { - "bs58check": "2.1.2", - "cashaddrjs": "0.2.9" - } - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "bech32": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.3.tgz", - "integrity": "sha512-yuVFUvrNcoJi0sv5phmqc6P+Fl1HjRDRNOOkHY2X/3LBy2bIGNSFx4fZ95HMaXHupuS7cZR15AsvtmCIF4UEyg==" - }, - "better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", - "requires": { - "callsite": "1.0.0" - } - }, - "big-integer": { - "version": "1.6.36", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", - "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==" - }, - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" - }, - "bigi": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz", - "integrity": "sha1-nGZalfiLiwj8Bc/XMfVhhZ1yWCU=" - }, - "binary-extensions": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", - "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==", - "optional": true - }, - "bindings": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz", - "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==" - }, - "bip21": { - "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "requires": { - "qs": "6.5.2" - } - }, - "bip32-utils": { - "version": "github:Bitcoin-com/bip32-utils#966fb8f0e0d4c667e4ee89adfa20c2078d66887c", - "requires": { - "keccak": "1.4.0", - "nyc": "11.9.0", - "standard": "11.0.1", - "tape": "4.9.1" - } - }, "bip38": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", "integrity": "sha512-22KDak0RDyghFbR0Si7wyq9IgY423YzGYzWLpGeofH3DaolOQqjD3mNN08eFoubKlbyclOQKFwtONMv2SD9V3A==", "requires": { - "bigi": "1.4.2", - "browserify-aes": "1.2.0", - "bs58check": "2.1.2", - "buffer-xor": "1.0.3", - "create-hash": "1.2.0", - "ecurve": "1.0.6", - "scryptsy": "2.0.0" + "bigi": "^1.2.0", + "browserify-aes": "^1.0.1", + "bs58check": "<3.0.0", + "buffer-xor": "^1.0.2", + "create-hash": "^1.1.1", + "ecurve": "^1.0.0", + "scryptsy": "^2.0.0" } }, "bip39": { @@ -1237,11 +2348,11 @@ "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", "requires": { - "create-hash": "1.2.0", - "pbkdf2": "3.0.17", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "unorm": "1.4.1" + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "unorm": "^1.3.3" } }, "bip66": { @@ -1249,77 +2360,45 @@ "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "bitcoin-ops": { - "version": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646" + "version": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646", + "from": "github:Bitcoin-com/bitcoincash-ops#1.5.0" }, "bitcoin-txdecoder": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/bitcoin-txdecoder/-/bitcoin-txdecoder-0.0.3.tgz", "integrity": "sha512-pH/eF5hQ65y54U23mzuF42wEj9YWj4WKHAIj2il6b1+oRoi/oyM4Ti3e8nMD8ajippICmyquqbyCZKGq3i4W+A==", "requires": { - "bitcoinjs-lib": "3.3.2" + "bitcoinjs-lib": "3.3.*" } }, "bitcoincashjs": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/bitcoincashjs/-/bitcoincashjs-0.1.10.tgz", - "integrity": "sha512-M4SiYYZEWUqWyp2ZE+imxP6Pgm15B4GIU+PvRo1ISvlgnxrwUANEVWAIW5+tam5MD3sO+XqnfK14ymRw14nCFQ==", - "requires": { - "big-integer": "1.6.36", - "bn.js": "2.0.4", - "bs58": "2.0.0", - "buffer-compare": "1.0.0", - "cashaddrjs": "0.2.9", - "elliptic": "3.0.3", - "inherits": "2.0.1", - "lodash": "4.17.11", - "unorm": "1.4.1" - }, - "dependencies": { - "bn.js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-2.0.4.tgz", - "integrity": "sha1-Igp81nf38b+pNif/QZN3b+eBlIA=" - }, - "bs58": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-2.0.0.tgz", - "integrity": "sha1-crcTvtIjoKxRi72g484/SBfznrU=" - }, - "elliptic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-3.0.3.tgz", - "integrity": "sha1-hlybQgv75VAGuflp+XoNLESWZZU=", - "requires": { - "bn.js": "2.0.4", - "brorand": "1.1.0", - "hash.js": "1.1.5", - "inherits": "2.0.1" - } - } - } + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/bitcoincashjs/-/bitcoincashjs-0.1.14.tgz", + "integrity": "sha512-x0wMVSCZ56ZQnSQ+Xim7XfS0IYiOyOwo0pdMCmR+cDNB7zRhICFuH5i3lNdLSgUw1e7Pc3FmUlC9wruQNlYMnA==" }, "bitcoincashjs-lib": { "version": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", - "requires": { - "bech32": "1.1.3", - "bigi": "1.4.2", - "bip66": "1.1.5", - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646", - "bs58check": "2.1.2", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ecurve": "1.0.6", - "merkle-lib": "2.0.10", - "pushdata-bitcoin": "1.0.1", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "typeforce": "1.13.2", - "varuint-bitcoin": "1.1.0", - "wif": "2.0.6" + "from": "github:Bitcoin-com/bitcoincashjs-lib#3.3.4", + "requires": { + "bech32": "^1.1.2", + "bigi": "^1.4.0", + "bip66": "^1.1.0", + "bitcoin-ops": "^1.3.0", + "bs58check": "^2.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.3", + "ecurve": "^1.0.0", + "merkle-lib": "^2.0.10", + "pushdata-bitcoin": "^1.0.1", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "typeforce": "^1.11.3", + "varuint-bitcoin": "^1.0.4", + "wif": "^2.0.1" } }, "bitcoinjs-lib": { @@ -1327,28 +2406,21 @@ "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-3.3.2.tgz", "integrity": "sha512-l5qqvbaK8wwtANPf6oEffykycg4383XgEYdia1rI7/JpGf1jfRWlOUCvx5TiTZS7kyIvY4j/UhIQ2urLsvGkzw==", "requires": { - "bech32": "1.1.3", - "bigi": "1.4.2", - "bip66": "1.1.5", - "bitcoin-ops": "1.4.1", - "bs58check": "2.1.2", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ecurve": "1.0.6", - "merkle-lib": "2.0.10", - "pushdata-bitcoin": "1.0.1", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "typeforce": "1.13.2", - "varuint-bitcoin": "1.1.0", - "wif": "2.0.6" - }, - "dependencies": { - "bitcoin-ops": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz", - "integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow==" - } + "bech32": "^1.1.2", + "bigi": "^1.4.0", + "bip66": "^1.1.0", + "bitcoin-ops": "^1.3.0", + "bs58check": "^2.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.3", + "ecurve": "^1.0.0", + "merkle-lib": "^2.0.10", + "pushdata-bitcoin": "^1.0.1", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "typeforce": "^1.11.3", + "varuint-bitcoin": "^1.0.4", + "wif": "^2.0.1" } }, "bitcoinjs-message": { @@ -1356,17 +2428,17 @@ "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", "requires": { - "bs58check": "2.1.2", - "buffer-equals": "1.0.4", - "create-hash": "1.2.0", - "secp256k1": "3.5.2", - "varuint-bitcoin": "1.1.0" + "bs58check": "^2.0.2", + "buffer-equals": "^1.0.3", + "create-hash": "^1.1.2", + "secp256k1": "^3.0.1", + "varuint-bitcoin": "^1.0.1" } }, "blob": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", - "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=" + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" }, "bn.js": { "version": "4.11.8", @@ -1378,7 +2450,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -1388,9 +2460,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "optional": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.3" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "brorand": { @@ -1401,19 +2473,20 @@ "browser-stdout": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true }, "browserify-aes": { "version": "1.2.0", "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "browserslist": { @@ -1421,8 +2494,8 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "requires": { - "caniuse-lite": "1.0.30000890", - "electron-to-chromium": "1.3.75" + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" } }, "bs58": { @@ -1430,7 +2503,7 @@ "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", "requires": { - "base-x": "3.0.4" + "base-x": "^3.0.2" } }, "bs58check": { @@ -1438,9 +2511,9 @@ "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", "requires": { - "bs58": "4.0.1", - "create-hash": "1.2.0", - "safe-buffer": "5.1.2" + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" } }, "buffer": { @@ -1448,15 +2521,10 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.12" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" } }, - "buffer-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-compare/-/buffer-compare-1.0.0.tgz", - "integrity": "sha1-rKp6lm6Y7un64Usxw5pfFY+zxKI=" - }, "buffer-equals": { "version": "1.0.4", "resolved": "http://registry.npmjs.org/buffer-equals/-/buffer-equals-1.0.4.tgz", @@ -1482,15 +2550,15 @@ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "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" }, "dependencies": { "isobject": { @@ -1528,7 +2596,7 @@ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "requires": { - "callsites": "0.2.0" + "callsites": "^0.2.0" } }, "callsite": { @@ -1538,7 +2606,7 @@ }, "callsites": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "resolved": "http://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=" }, "camelcase": { @@ -1551,13 +2619,13 @@ "resolved": "https://registry.npmjs.org/can-promise/-/can-promise-0.0.1.tgz", "integrity": "sha512-gzVrHyyrvgt0YpDm7pn04MQt8gjh0ZAhN4ZDyCRtGl6YnuuK6b4aiUTD7G52r9l4YNmxfTtEscb92vxtAlL6XQ==", "requires": { - "window-or-global": "1.0.1" + "window-or-global": "^1.0.1" } }, "caniuse-lite": { - "version": "1.0.30000890", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000890.tgz", - "integrity": "sha512-4NI3s4Y6ROm+SgZN5sLUG4k7nVWQnedis3c/RWkynV5G6cHSY7+a8fwFyn2yoBDE3E6VswhTNNwR3PvzGqlTkg==" + "version": "1.0.30000912", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000912.tgz", + "integrity": "sha512-M3zAtV36U+xw5mMROlTXpAHClmPAor6GPKAMD5Yi7glCB5sbMPFtnQ3rGpk4XqPdUrrTIaVYSJZxREZWNy8QJg==" }, "caseless": { "version": "0.12.0", @@ -1570,7 +2638,7 @@ "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.2.9.tgz", "integrity": "sha512-DhJF4iAH0/RM3UjHDHKRxzs09YGL9px+oTyizzydanhC7jTyM2aJ+aLKA96vZGTTWayvvr2iDF2l13lpqXiRFg==", "requires": { - "big-integer": "1.6.36" + "big-integer": "^1.6.34" } }, "chai": { @@ -1579,12 +2647,12 @@ "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", "dev": true, "requires": { - "assertion-error": "1.1.0", - "check-error": "1.0.2", - "deep-eql": "3.0.1", - "get-func-name": "2.0.0", - "pathval": "1.1.0", - "type-detect": "4.0.8" + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" } }, "chalk": { @@ -1592,9 +2660,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "ansi-styles": { @@ -1602,7 +2670,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "color-convert": "1.9.3" + "color-convert": "^1.9.0" } }, "supports-color": { @@ -1610,7 +2678,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -1632,15 +2700,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "optional": true, "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.2.4", - "glob-parent": "2.0.0", - "inherits": "2.0.1", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1" + "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" } }, "cipher-base": { @@ -1648,8 +2716,8 @@ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "circular-json": { @@ -1662,10 +2730,10 @@ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -1673,7 +2741,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "isobject": { @@ -1699,7 +2767,7 @@ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-width": { @@ -1712,19 +2780,27 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "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" }, "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, "string-width": { "version": "1.0.2", "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" } } } @@ -1735,7 +2811,7 @@ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "dev": true, "requires": { - "mimic-response": "1.0.1" + "mimic-response": "^1.0.0" } }, "co": { @@ -1750,8 +2826,9 @@ }, "coininfo": { "version": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", + "from": "github:Bitcoin-com/coininfo", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.1" } }, "collection-visit": { @@ -1759,8 +2836,8 @@ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "color-convert": { @@ -1782,7 +2859,7 @@ "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", "dev": true, "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -1815,10 +2892,10 @@ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "requires": { - "buffer-from": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" }, "dependencies": { "inherits": { @@ -1838,7 +2915,7 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.1" } }, "cookie": { @@ -1873,12 +2950,12 @@ "integrity": "sha512-Tv0LKe/MkBOilH2v7WBiTBdudg2ChfGbdXafc/s330djpF3zKOmuehTeRwjXWc7pzfj9FrDUTA7tEx6Div8NFw==", "dev": true, "requires": { - "growl": "1.10.5", - "js-yaml": "3.12.0", - "lcov-parse": "0.0.10", - "log-driver": "1.2.7", - "minimist": "1.2.0", - "request": "2.88.0" + "growl": "~> 1.10.0", + "js-yaml": "^3.11.0", + "lcov-parse": "^0.0.10", + "log-driver": "^1.2.7", + "minimist": "^1.2.0", + "request": "^2.85.0" }, "dependencies": { "minimist": { @@ -1894,11 +2971,18 @@ "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-5.0.0.tgz", "integrity": "sha1-vHAP0wyjLSTUbH+wK5kuQ1/FqXg=", "requires": { - "graceful-fs": "4.1.11", - "make-dir": "1.3.0", - "nested-error-stacks": "2.1.0", - "pify": "3.0.0", - "safe-buffer": "5.1.2" + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "nested-error-stacks": "^2.0.0", + "pify": "^3.0.0", + "safe-buffer": "^5.0.1" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } } }, "create-hash": { @@ -1906,11 +2990,11 @@ "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.1", - "md5.js": "1.3.5", - "ripemd160": "2.0.2", - "sha.js": "2.4.11" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, "create-hmac": { @@ -1918,12 +3002,12 @@ "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "inherits": "2.0.1", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "cross-spawn": { @@ -1931,9 +3015,9 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "dashdash": { @@ -1942,7 +3026,7 @@ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "debug": { @@ -1955,7 +3039,7 @@ }, "debug-log": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", + "resolved": "http://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=" }, "decamelize": { @@ -1974,7 +3058,7 @@ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "dev": true, "requires": { - "mimic-response": "1.0.1" + "mimic-response": "^1.0.0" } }, "deep-eql": { @@ -1983,7 +3067,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "4.0.8" + "type-detect": "^4.0.0" } }, "deep-equal": { @@ -1996,12 +3080,18 @@ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, + "deepmerge": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", + "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==", + "dev": true + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "requires": { - "object-keys": "1.0.12" + "object-keys": "^1.0.12" } }, "define-property": { @@ -2009,8 +3099,8 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -2018,7 +3108,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -2026,7 +3116,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -2034,9 +3124,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -2061,33 +3151,12 @@ "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.1.tgz", "integrity": "sha512-2kjwuGGonL7gWE1XU4Fv79+vVzpoQCl0V+boMwWtOQJV2AGDabCwez++nB1Nli/8BabAfZQ/UuHPlp6AymKdWw==", "requires": { - "find-root": "1.1.0", - "glob": "7.1.3", - "ignore": "3.3.10", - "pkg-config": "1.1.1", - "run-parallel": "1.1.9", - "uniq": "1.0.1" - } - }, - "del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", - "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.2" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } + "find-root": "^1.0.0", + "glob": "^7.0.5", + "ignore": "^3.0.9", + "pkg-config": "^1.1.0", + "run-parallel": "^1.1.2", + "uniq": "^1.0.1" } }, "delayed-stream": { @@ -2107,13 +3176,14 @@ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "diff": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true }, "dijkstrajs": { "version": "1.0.1", @@ -2125,7 +3195,7 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "requires": { - "esutils": "2.0.2" + "esutils": "^2.0.2" } }, "drbg.js": { @@ -2133,9 +3203,9 @@ "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", "requires": { - "browserify-aes": "1.2.0", - "create-hash": "1.2.0", - "create-hmac": "1.1.7" + "browserify-aes": "^1.0.6", + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4" } }, "duplexer3": { @@ -2149,10 +3219,9 @@ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, - "optional": true, "requires": { - "jsbn": "0.1.1", - "safer-buffer": "2.1.2" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, "ecurve": { @@ -2160,70 +3229,70 @@ "resolved": "https://registry.npmjs.org/ecurve/-/ecurve-1.0.6.tgz", "integrity": "sha512-/BzEjNfiSuB7jIWKcS/z8FK9jNjmEWvUV2YZ4RLSmcDtP7Lq0m6FvDuSnJpBlDpGRpfRQeTLGLBI8H+kEv0r+w==", "requires": { - "bigi": "1.4.2", - "safe-buffer": "5.1.2" + "bigi": "^1.1.0", + "safe-buffer": "^5.0.1" } }, "electron-to-chromium": { - "version": "1.3.75", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.75.tgz", - "integrity": "sha512-nLo03Qpw++8R6BxDZL/B1c8SQvUe/htdgc5LWYHe5YotV2jVvRUMP5AlOmxOsyeOzgMiXrNln2mC05Ixz6vuUQ==" + "version": "1.3.85", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.85.tgz", + "integrity": "sha512-kWSDVVF9t3mft2OHVZy4K85X2beP6c6mFm3teFS/mLSDJpQwuFIWHrULCX+w6H1E55ZYmFRlT+ATAFRwhrYzsw==" }, "elliptic": { "version": "6.4.1", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.5", - "hmac-drbg": "1.0.1", - "inherits": "2.0.1", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" } }, "engine.io": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.0.tgz", - "integrity": "sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz", + "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==", "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.4", "base64id": "1.0.0", "cookie": "0.3.1", - "debug": "3.1.0", - "engine.io-parser": "2.1.2", - "ws": "3.3.3" + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "ws": "~3.3.1" } }, "engine.io-client": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", + "resolved": "http://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", "requires": { "component-emitter": "1.2.1", "component-inherit": "0.0.3", - "debug": "3.1.0", - "engine.io-parser": "2.1.2", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", "has-cors": "1.1.0", "indexof": "0.0.1", "parseqs": "0.0.5", "parseuri": "0.0.5", - "ws": "3.3.3", - "xmlhttprequest-ssl": "1.5.5", + "ws": "~3.3.1", + "xmlhttprequest-ssl": "~1.5.4", "yeast": "0.1.2" } }, "engine.io-parser": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.2.tgz", - "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz", + "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", "requires": { "after": "0.8.2", - "arraybuffer.slice": "0.0.7", + "arraybuffer.slice": "~0.0.7", "base64-arraybuffer": "0.1.5", - "blob": "0.0.4", - "has-binary2": "1.0.3" + "blob": "0.0.5", + "has-binary2": "~1.0.2" } }, "error-ex": { @@ -2231,7 +3300,7 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "es-abstract": { @@ -2239,11 +3308,11 @@ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", "requires": { - "es-to-primitive": "1.2.0", - "function-bind": "1.1.1", - "has": "1.0.3", - "is-callable": "1.1.4", - "is-regex": "1.0.4" + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" } }, "es-to-primitive": { @@ -2251,9 +3320,9 @@ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", "requires": { - "is-callable": "1.1.4", - "is-date-object": "1.0.1", - "is-symbol": "1.0.2" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" } }, "es6-promise": { @@ -2268,98 +3337,75 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "eslint": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.6.1.tgz", - "integrity": "sha512-hgrDtGWz368b7Wqf+v1Z69O3ZebNR0+GA7PtDdbmuz4rInFVUV9uw7whjZEiWyLzCjVb5Rs5WRN1TAS6eo7AYA==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.9.0.tgz", + "integrity": "sha512-g4KWpPdqN0nth+goDNICNXGfJF7nNnepthp46CAlJoJtC5K/cLu3NgCM3AHu1CkJ5Hzt9V0Y0PBAO6Ay/gGb+w==", "dev": true, "requires": { - "@babel/code-frame": "7.0.0", - "ajv": "6.5.4", - "chalk": "2.4.1", - "cross-spawn": "6.0.5", - "debug": "4.1.0", - "doctrine": "2.1.0", - "eslint-scope": "4.0.0", - "eslint-utils": "1.3.1", - "eslint-visitor-keys": "1.0.0", - "espree": "4.0.0", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.3", - "globals": "11.8.0", - "ignore": "4.0.6", - "imurmurhash": "0.1.4", - "inquirer": "6.2.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.12.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.0", - "regexpp": "2.0.1", - "require-uncached": "1.0.3", - "semver": "5.5.1", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", - "table": "4.0.3", - "text-table": "0.2.0" + "@babel/code-frame": "^7.0.0", + "ajv": "^6.5.3", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^2.1.0", + "eslint-scope": "^4.0.0", + "eslint-utils": "^1.3.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^4.0.0", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.7.0", + "ignore": "^4.0.6", + "imurmurhash": "^0.1.4", + "inquirer": "^6.1.0", + "is-resolvable": "^1.1.0", + "js-yaml": "^3.12.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.5", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.5.1", + "strip-ansi": "^4.0.0", + "strip-json-comments": "^2.0.1", + "table": "^5.0.2", + "text-table": "^0.2.0" }, "dependencies": { - "@babel/code-frame": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", - "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", - "dev": true, - "requires": { - "@babel/highlight": "7.0.0" - } - }, - "@babel/highlight": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", - "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "esutils": "2.0.2", - "js-tokens": "4.0.0" - } + "acorn": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.4.tgz", + "integrity": "sha512-VY4i5EKSKkofY2I+6QLTbTTN/UvEQPCo6eiwzzSaSWfpaDhOmStMCMod6wmuPciNq+XS0faCglFu2lHZpdHUtg==", + "dev": true }, "acorn-jsx": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-4.1.1.tgz", - "integrity": "sha512-JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw==", - "dev": true, - "requires": { - "acorn": "5.7.3" - } + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz", + "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==", + "dev": true }, "ajv": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.4.tgz", - "integrity": "sha512-4Wyjt8+t6YszqaXnLDfMmG/8AlO5Zbcsy3ATHncCzjW/NoPzAId8AK6749Ybjmdt+kUY1gP60fCu46oDxPv/mg==", + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz", + "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==", "dev": true, "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", - "dev": true - }, "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", @@ -2378,11 +3424,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.5.1", - "shebang-command": "1.2.0", - "which": "1.3.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "debug": { @@ -2391,7 +3437,7 @@ "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", "dev": true, "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "eslint-scope": { @@ -2400,18 +3446,19 @@ "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", "dev": true, "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "espree": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-4.0.0.tgz", - "integrity": "sha512-kapdTCt1bjmspxStVKX6huolXVV5ZfyZguY1lcfhVVZstce3bqxH9mcLzNn3/mlgW6wQ732+0fuG9v7h0ZQoKg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-4.1.0.tgz", + "integrity": "sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w==", "dev": true, "requires": { - "acorn": "5.7.3", - "acorn-jsx": "4.1.1" + "acorn": "^6.0.2", + "acorn-jsx": "^5.0.0", + "eslint-visitor-keys": "^1.0.0" } }, "external-editor": { @@ -2420,9 +3467,9 @@ "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", "dev": true, "requires": { - "chardet": "0.7.0", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" } }, "fast-deep-equal": { @@ -2432,9 +3479,9 @@ "dev": true }, "globals": { - "version": "11.8.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.8.0.tgz", - "integrity": "sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA==", + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz", + "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==", "dev": true }, "ignore": { @@ -2449,27 +3496,21 @@ "integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==", "dev": true, "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "3.0.3", - "figures": "2.0.0", - "lodash": "4.17.11", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.0", + "figures": "^2.0.0", + "lodash": "^4.17.10", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rxjs": "6.3.3", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rxjs": "^6.1.0", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" } }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -2488,32 +3529,30 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "table": { - "version": "4.0.3", - "resolved": "http://registry.npmjs.org/table/-/table-4.0.3.tgz", - "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/table/-/table-5.1.0.tgz", + "integrity": "sha512-e542in22ZLhD/fOIuXs/8yDZ9W61ltF8daM88rkRNtgTIct+vI2fTnAyu/Db2TCfEcI8i7mjZz6meLq0nW7TYg==", "dev": true, "requires": { - "ajv": "6.5.4", - "ajv-keywords": "3.2.0", - "chalk": "2.4.1", - "lodash": "4.17.11", + "ajv": "^6.5.3", + "lodash": "^4.17.10", "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "string-width": "^2.1.1" } } } }, "eslint-config-prettier": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-3.1.0.tgz", - "integrity": "sha512-QYGfmzuc4q4J6XIhlp8vRKdI/fI0tQfQPy1dME3UOLprE+v4ssH/3W9LM2Q7h5qBcy5m0ehCrBDU2YF8q6OY8w==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-3.3.0.tgz", + "integrity": "sha512-Bc3bh5bAcKNvs3HOpSi6EfGA2IIp7EzWcg2tS4vP7stnXu/J1opihHDM7jI9JCIckyIDTgZLSWn7J3HY0j2JfA==", "dev": true, "requires": { - "get-stdin": "6.0.0" + "get-stdin": "^6.0.0" } }, "eslint-config-standard": { @@ -2531,8 +3570,8 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", "requires": { - "debug": "2.6.9", - "resolve": "1.8.1" + "debug": "^2.6.9", + "resolve": "^1.5.0" }, "dependencies": { "debug": { @@ -2550,8 +3589,8 @@ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", "requires": { - "debug": "2.6.9", - "pkg-dir": "1.0.0" + "debug": "^2.6.8", + "pkg-dir": "^1.0.0" }, "dependencies": { "debug": { @@ -2565,13 +3604,13 @@ } }, "eslint-plugin-es": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-1.3.1.tgz", - "integrity": "sha512-9XcVyZiQRVeFjqHw8qHNDAZcQLqaHlOGGpeYqzYh8S4JYCWTCO3yzyen8yVmA5PratfzTRWDwCOFphtDEG+w/w==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-1.4.0.tgz", + "integrity": "sha512-XfFmgFdIUDgvaRAlaXUkxrRg5JSADoRC8IkKLc/cISeR3yHVMefFHQZpcyXXEUUPHfy5DwviBcrfqlyqEwlQVw==", "dev": true, "requires": { - "eslint-utils": "1.3.1", - "regexpp": "2.0.1" + "eslint-utils": "^1.3.0", + "regexpp": "^2.0.1" } }, "eslint-plugin-import": { @@ -2579,16 +3618,16 @@ "resolved": "http://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz", "integrity": "sha1-JgAu+/ylmJtyiKwEdQi9JPIXsWk=", "requires": { - "builtin-modules": "1.1.1", - "contains-path": "0.1.0", - "debug": "2.6.9", + "builtin-modules": "^1.1.1", + "contains-path": "^0.1.0", + "debug": "^2.6.8", "doctrine": "1.5.0", - "eslint-import-resolver-node": "0.3.2", - "eslint-module-utils": "2.2.0", - "has": "1.0.3", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "read-pkg-up": "2.0.0" + "eslint-import-resolver-node": "^0.3.1", + "eslint-module-utils": "^2.1.1", + "has": "^1.0.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.3", + "read-pkg-up": "^2.0.0" }, "dependencies": { "debug": { @@ -2601,11 +3640,11 @@ }, "doctrine": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "resolved": "http://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" + "esutils": "^2.0.2", + "isarray": "^1.0.0" } } } @@ -2616,12 +3655,12 @@ "integrity": "sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw==", "dev": true, "requires": { - "eslint-plugin-es": "1.3.1", - "eslint-utils": "1.3.1", - "ignore": "4.0.6", - "minimatch": "3.0.4", - "resolve": "1.8.1", - "semver": "5.5.1" + "eslint-plugin-es": "^1.3.1", + "eslint-utils": "^1.3.1", + "ignore": "^4.0.2", + "minimatch": "^3.0.4", + "resolve": "^1.8.1", + "semver": "^5.5.0" }, "dependencies": { "ignore": { @@ -2638,8 +3677,8 @@ "integrity": "sha512-CStQYJgALoQBw3FsBzH0VOVDRnJ/ZimUlpLm226U8qgqYJfPOY/CPK6wyRInMxh73HSKg5wyRwdS4BVYYHwokA==", "dev": true, "requires": { - "fast-diff": "1.2.0", - "jest-docblock": "21.2.0" + "fast-diff": "^1.1.1", + "jest-docblock": "^21.0.0" } }, "eslint-plugin-promise": { @@ -2652,10 +3691,10 @@ "resolved": "http://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz", "integrity": "sha512-KC7Snr4YsWZD5flu6A5c0AcIZidzW3Exbqp7OT67OaD2AppJtlBr/GuPrW/vaQM/yfZotEvKAdrxrO+v8vwYJA==", "requires": { - "doctrine": "2.1.0", - "has": "1.0.3", - "jsx-ast-utils": "2.0.1", - "prop-types": "15.6.2" + "doctrine": "^2.0.2", + "has": "^1.0.1", + "jsx-ast-utils": "^2.0.1", + "prop-types": "^15.6.0" } }, "eslint-plugin-standard": { @@ -2668,8 +3707,8 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint-utils": { @@ -2688,8 +3727,8 @@ "resolved": "http://registry.npmjs.org/espree/-/espree-3.5.4.tgz", "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "requires": { - "acorn": "5.7.3", - "acorn-jsx": "3.0.1" + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" } }, "esprima": { @@ -2702,7 +3741,7 @@ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "esrecurse": { @@ -2710,7 +3749,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.1.0" } }, "estraverse": { @@ -2728,8 +3767,8 @@ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "requires": { - "md5.js": "1.3.5", - "safe-buffer": "5.1.2" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, "execa": { @@ -2737,13 +3776,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "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" } }, "expand-brackets": { @@ -2752,16 +3791,16 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "optional": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "resolved": "http://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "optional": true, "requires": { - "fill-range": "2.2.4" + "fill-range": "^2.1.0" } }, "extend": { @@ -2775,8 +3814,8 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -2784,7 +3823,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -2794,9 +3833,9 @@ "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" } }, "extglob": { @@ -2805,7 +3844,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "optional": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "extsprintf": { @@ -2816,7 +3855,7 @@ }, "fast-deep-equal": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" }, "fast-diff": { @@ -2836,16 +3875,16 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, "figlet": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.2.0.tgz", - "integrity": "sha1-bEZTc3j6tkkUa1phQ92gGbQwtBA=" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.2.1.tgz", + "integrity": "sha512-qc8gycfnnfOmfvPl7Fi3JeTbcvdmbZkckyUVGGAM02je7Ookvu+bBfKy1I4FKqTsQHCs3ARJ76ip/k98r+OQuQ==" }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { @@ -2853,8 +3892,8 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" } }, "filename-regex": { @@ -2869,11 +3908,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "optional": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.1.0", - "repeat-element": "1.1.3", - "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" } }, "find-root": { @@ -2882,22 +3921,23 @@ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" }, "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "requires": { - "locate-path": "2.0.0" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "flat-cache": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", - "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", + "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", "requires": { - "circular-json": "0.3.3", - "del": "2.2.2", - "graceful-fs": "4.1.11", - "write": "0.2.1" + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" } }, "flow-bin": { @@ -2907,20 +3947,20 @@ "dev": true }, "fluent-openapi": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/fluent-openapi/-/fluent-openapi-0.1.1.tgz", - "integrity": "sha512-JTnCiuaAm66gGuizv4g46MqN1QVldPxySn9DxZ+hCjMaEGFx6ciJhz0iMfS5iv1YKqZo5pBW6qFJ9Zu0jaqvaw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fluent-openapi/-/fluent-openapi-1.0.0.tgz", + "integrity": "sha512-Q0drDENt875UTMpWY5nAJi7/0BaqQ0riXVNnhAwaDlpcXFLGos/jW/IuSGLdoStw10BZ3RpkJghG2gkR3XASPA==", "dev": true, "requires": { - "lodash.merge": "4.6.1" + "lodash.merge": "^4.6.1" } }, "follow-redirects": { - "version": "1.5.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.9.tgz", - "integrity": "sha512-Bh65EZI/RU8nx0wbYF9shkFZlqLP+6WT/5FnA3cE/djNSuKNHJEinGGZgu/cQEkeeb2GdFOgenAmn8qaqYke2w==", + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", "requires": { - "debug": "3.1.0" + "debug": "=3.1.0" } }, "for-each": { @@ -2928,7 +3968,7 @@ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "requires": { - "is-callable": "1.1.4" + "is-callable": "^1.1.3" } }, "for-in": { @@ -2942,7 +3982,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "optional": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "forever-agent": { @@ -2952,25 +3992,14 @@ "dev": true }, "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.6", - "mime-types": "2.1.20" - }, - "dependencies": { - "combined-stream": { - "version": "1.0.6", - "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "dev": true, - "requires": { - "delayed-stream": "1.0.0" - } - } + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" } }, "formidable": { @@ -2984,7 +4013,7 @@ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fresh": { @@ -2999,8 +4028,8 @@ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "requires": { - "inherits": "2.0.1", - "readable-stream": "2.3.6" + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" } }, "fs-readdir-recursive": { @@ -3019,82 +4048,70 @@ "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", "optional": true, "requires": { - "nan": "2.11.1", - "node-pre-gyp": "0.10.0" + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" }, "dependencies": { "abbrev": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "bundled": true, "optional": true }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "bundled": true }, "aproba": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "bundled": true, "optional": true }, "are-we-there-yet": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "bundled": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "bundled": true }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "bundled": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "chownr": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", + "bundled": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "bundled": true }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "bundled": true }, "console-control-strings": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "bundled": true }, "core-util-is": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "bundled": true, "optional": true }, "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "bundled": true, "optional": true, "requires": { "ms": "2.0.0" @@ -3102,442 +4119,388 @@ }, "deep-extend": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", + "bundled": true, "optional": true }, "delegates": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "bundled": true, "optional": true }, "detect-libc": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "bundled": true, "optional": true }, "fs-minipass": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", - "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", + "bundled": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "bundled": true, "optional": true }, "gauge": { "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "bundled": true, "optional": 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" } }, "glob": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "bundled": true, "optional": 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" } }, "has-unicode": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "bundled": true, "optional": true }, "iconv-lite": { "version": "0.4.21", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.21.tgz", - "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", + "bundled": true, "optional": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "^2.1.0" } }, "ignore-walk": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", - "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", + "bundled": true, "optional": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "bundled": true }, "ini": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "bundled": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "bundled": true, "optional": true }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "bundled": true }, "minipass": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.4.tgz", - "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", + "bundled": true, "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" } }, "minizlib": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", - "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", + "bundled": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "bundled": true, "optional": true }, "needle": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.2.0.tgz", - "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", + "bundled": true, "optional": true, "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, "node-pre-gyp": { "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.10.0.tgz", - "integrity": "sha512-G7kEonQLRbcA/mOoFoxvlMrw6Q6dPf92+t/l0DFSMuSlDoWaI9JWIyPwK0jyE1bph//CUEL65/Fz1m2vJbmjQQ==", + "bundled": true, "optional": true, "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.7", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" + "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": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "bundled": true, "optional": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npm-bundled": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.3.tgz", - "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", + "bundled": true, "optional": true }, "npm-packlist": { "version": "1.1.10", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.10.tgz", - "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", + "bundled": true, "optional": true, "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, "npmlog": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "bundled": 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" + "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": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "bundled": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "bundled": true, "optional": true }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "bundled": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "bundled": true, "optional": true }, "osenv": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "bundled": 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", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "bundled": true, "optional": true }, "process-nextick-args": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "bundled": true, "optional": true }, "rc": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz", - "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", + "bundled": true, "optional": true, "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "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": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "bundled": true, "optional": true } } }, "readable-stream": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "bundled": true, "optional": true, "requires": { - "core-util-is": "1.0.2", - "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.2" + "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.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "bundled": true, "optional": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + "bundled": true }, "safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "bundled": true, "optional": true }, "sax": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "bundled": true, "optional": true }, "semver": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "bundled": true, "optional": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "bundled": true, "optional": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "bundled": true, "optional": true }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "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.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "bundled": true, "optional": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "bundled": true, "optional": true }, "tar": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.1.tgz", - "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", + "bundled": true, "optional": true, "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "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" } }, "util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "bundled": true, "optional": true }, "wide-align": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "bundled": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "bundled": true }, "yallist": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" + "bundled": true } } }, @@ -3583,7 +4546,7 @@ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "git-clone": { @@ -3596,12 +4559,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.1", - "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": { @@ -3610,8 +4573,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "optional": true, "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -3619,7 +4582,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "globals": { @@ -3627,60 +4590,49 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" }, - "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.3", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } - } - }, "got": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", "dev": true, "requires": { - "@sindresorhus/is": "0.7.0", - "cacheable-request": "2.1.4", - "decompress-response": "3.3.0", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "into-stream": "3.1.0", - "is-retry-allowed": "1.1.0", - "isurl": "1.0.0", - "lowercase-keys": "1.0.1", - "mimic-response": "1.0.1", - "p-cancelable": "0.4.1", - "p-timeout": "2.0.1", - "pify": "3.0.0", - "safe-buffer": "5.1.2", - "timed-out": "4.0.1", - "url-parse-lax": "3.0.0", - "url-to-options": "1.0.1" + "@sindresorhus/is": "^0.7.0", + "cacheable-request": "^2.1.1", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "into-stream": "^3.1.0", + "is-retry-allowed": "^1.1.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "mimic-response": "^1.0.0", + "p-cancelable": "^0.4.0", + "p-timeout": "^2.0.1", + "pify": "^3.0.0", + "safe-buffer": "^5.1.1", + "timed-out": "^4.0.1", + "url-parse-lax": "^3.0.0", + "url-to-options": "^1.0.1" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } } }, "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" }, "growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==" + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true }, "har-schema": { "version": "2.0.0", @@ -3689,13 +4641,39 @@ "dev": true }, "har-validator": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", - "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "dev": true, "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz", + "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + } } }, "has": { @@ -3703,7 +4681,7 @@ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.1.1" } }, "has-ansi": { @@ -3711,7 +4689,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-binary2": { @@ -3756,7 +4734,7 @@ "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", "dev": true, "requires": { - "has-symbol-support-x": "1.4.2" + "has-symbol-support-x": "^1.4.1" } }, "has-value": { @@ -3764,9 +4742,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "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" }, "dependencies": { "isobject": { @@ -3781,8 +4759,8 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { @@ -3790,7 +4768,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -3798,7 +4776,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -3808,7 +4786,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -3818,8 +4796,8 @@ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "hash.js": { @@ -3827,8 +4805,8 @@ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" }, "dependencies": { "inherits": { @@ -3841,16 +4819,17 @@ "he": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=" + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true }, "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { - "hash.js": "1.1.5", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, "home-or-tmp": { @@ -3858,8 +4837,8 @@ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" } }, "hosted-git-info": { @@ -3879,9 +4858,9 @@ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.14.2" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "iconv-lite": { @@ -3889,7 +4868,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "ieee754": { @@ -3923,8 +4902,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -3942,20 +4921,20 @@ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.11", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" }, "dependencies": { "ansi-regex": { @@ -3968,19 +4947,19 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } }, "into-stream": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", + "resolved": "http://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", "dev": true, "requires": { - "from2": "2.3.0", - "p-is-promise": "1.1.0" + "from2": "^2.1.1", + "p-is-promise": "^1.1.0" } }, "invariant": { @@ -3988,7 +4967,7 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -4001,7 +4980,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-arrayish": { @@ -4015,7 +4994,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "optional": true, "requires": { - "binary-extensions": "1.12.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -4028,7 +5007,7 @@ "resolved": "http://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-callable": { @@ -4041,7 +5020,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-date-object": { @@ -4054,9 +5033,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "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": { @@ -4078,7 +5057,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "optional": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -4096,23 +5075,20 @@ "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-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "1.0.1" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "is-glob": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-number": { @@ -4121,7 +5097,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-object": { @@ -4130,27 +5106,6 @@ "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", "dev": true }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=" - }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", - "requires": { - "is-path-inside": "1.0.1" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "requires": { - "path-is-inside": "1.0.2" - } - }, "is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", @@ -4162,7 +5117,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -4194,7 +5149,7 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "requires": { - "has": "1.0.3" + "has": "^1.0.1" } }, "is-resolvable": { @@ -4218,7 +5173,7 @@ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", "requires": { - "has-symbols": "1.0.0" + "has-symbols": "^1.0.0" } }, "is-typedarray": { @@ -4258,14 +5213,33 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, + "istanbul-lib-coverage": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", + "integrity": "sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA==" + }, + "istanbul-lib-instrument": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.0.0.tgz", + "integrity": "sha512-eQY9vN9elYjdgN9Iv6NS/00bptm02EBBk70lRMaVjeA6QYocQgenVrSgC28TJurdnZa80AGO3ASdFN+w/njGiQ==", + "requires": { + "@babel/generator": "^7.0.0", + "@babel/parser": "^7.0.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "istanbul-lib-coverage": "^2.0.1", + "semver": "^5.5.0" + } + }, "isurl": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", "dev": true, "requires": { - "has-to-string-tag-x": "1.4.1", - "is-object": "1.0.1" + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" } }, "jest-docblock": { @@ -4284,20 +5258,19 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "optional": true + "dev": true }, "jsesc": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" }, "json-buffer": { @@ -4355,7 +5328,7 @@ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", "requires": { - "array-includes": "3.0.3" + "array-includes": "^3.0.3" } }, "just-extend": { @@ -4369,10 +5342,10 @@ "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", "requires": { - "bindings": "1.3.0", - "inherits": "2.0.3", - "nan": "2.11.1", - "safe-buffer": "5.1.2" + "bindings": "^1.2.1", + "inherits": "^2.0.3", + "nan": "^2.2.1", + "safe-buffer": "^5.1.0" }, "dependencies": { "inherits": { @@ -4396,19 +5369,33 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "kubernetes-client": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/kubernetes-client/-/kubernetes-client-6.1.0.tgz", - "integrity": "sha512-H4Phnw7zWV3nYzvMqc84DDexr1Da8sRokPWoDLxLuVJSTPnqVuXpAPAWPqNcZzZdm4kWddTfKTjpg8iOYHiDDQ==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/kubernetes-client/-/kubernetes-client-6.4.1.tgz", + "integrity": "sha512-aOIje6oZOcftt2EWJHRMUD+Dao8e3SudEAlanR25Y81wU7QnSfAvwoIWLIgp/ox0CWnu/A3NBv19Qnbx00ztMQ==", "dev": true, "requires": { - "fluent-openapi": "0.1.1", - "js-yaml": "3.12.0", - "openid-client": "2.4.2", - "request": "2.88.0" + "deepmerge": "^2.1.1", + "fluent-openapi": "^1.0.0", + "js-yaml": "^3.10.0", + "openid-client": "^2.4.4", + "qs": "^6.5.2", + "request": "^2.88.0", + "ws": "^6.0.0" + }, + "dependencies": { + "ws": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.2.tgz", + "integrity": "sha512-rfUqzvz0WxmSXtJpPMX2EeASXabOrSMk1ruMOV3JBTBjo4ac2lDjGGsbQSyxj8Odhw5fBib8ZKEjDNvgouNKYw==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + } } }, "lcid": { @@ -4416,7 +5403,7 @@ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "lcov-parse": { @@ -4430,8 +5417,8 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "load-json-file": { @@ -4439,17 +5426,10 @@ "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" } }, "locate-path": { @@ -4457,8 +5437,15 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } } }, "lodash": { @@ -4560,7 +5547,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0 || ^4.0.0" } }, "lowercase-keys": { @@ -4570,12 +5557,12 @@ "dev": true }, "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.4.tgz", + "integrity": "sha512-EPstzZ23znHUVLKj+lcXO1KvZkrlw+ZirdwvOmnAnA/1PB4ggyXJ77LRkCqkff+ShQ+cqoxCxLQOh4cKITO5iA==", "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^3.0.2" } }, "make-dir": { @@ -4583,7 +5570,14 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } } }, "map-cache": { @@ -4596,7 +5590,7 @@ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "math-random": { @@ -4610,14 +5604,14 @@ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, "media-typer": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "resolved": "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true }, @@ -4626,7 +5620,7 @@ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "merge-descriptors": { @@ -4652,19 +5646,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "optional": 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" } }, "mime": { @@ -4674,16 +5668,16 @@ "dev": true }, "mime-db": { - "version": "1.36.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", - "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==" + "version": "1.37.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", + "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==" }, "mime-types": { - "version": "2.1.20", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", - "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", + "version": "2.1.21", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", + "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", "requires": { - "mime-db": "1.36.0" + "mime-db": "~1.37.0" } }, "mimic-fn": { @@ -4712,7 +5706,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -4725,8 +5719,8 @@ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -4734,7 +5728,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -4751,6 +5745,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", + "dev": true, "requires": { "browser-stdout": "1.3.1", "commander": "2.15.1", @@ -4768,27 +5763,30 @@ "commander": { "version": "2.15.1", "resolved": "http://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "dev": true }, "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.1", - "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" } }, "supports-color": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -4814,17 +5812,17 @@ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "optional": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "arr-diff": { @@ -4875,16 +5873,16 @@ "dev": true }, "nise": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.5.tgz", - "integrity": "sha512-OHRVvdxKgwZELf2DTgsJEIA4MOq8XWvpSUzoOXyxJ2mY0mMENWC66+70AShLR2z05B1dzrzWlUQJmJERlOUpZw==", + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.6.tgz", + "integrity": "sha512-1GedetLKzmqmgwabuMSqPsT7oumdR77SBpDfNNJhADRIeA3LN/2RVqR4fFqwvzhAqcTef6PPCzQwITE/YQ8S8A==", "dev": true, "requires": { "@sinonjs/formatio": "3.0.0", - "just-extend": "3.0.0", - "lolex": "2.7.5", - "path-to-regexp": "1.7.0", - "text-encoding": "0.6.4" + "just-extend": "^3.0.0", + "lolex": "^2.3.2", + "path-to-regexp": "^1.7.0", + "text-encoding": "^0.6.4" }, "dependencies": { "@sinonjs/formatio": { @@ -4908,7 +5906,7 @@ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", "requires": { - "lodash.toarray": "4.4.0" + "lodash.toarray": "^4.4.0" } }, "node-forge": { @@ -4918,44 +5916,44 @@ "dev": true }, "node-jose": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-jose/-/node-jose-1.0.0.tgz", - "integrity": "sha512-RE3P8l60Rj9ELrpPmvw6sOQ1hSyYfmQdNUMCa4EN7nCE1ux5JVX+GfXv+mfUTEMhZwNMwxBtI0+X1CKKeukSVQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/node-jose/-/node-jose-1.1.0.tgz", + "integrity": "sha512-Ux5MDElyiAlBQyOdFcwznK2TWMJbG8ZUfIZ28UtBvTB/VUz5HA/1WJV7s+YCah5NilPhkMkNi6xjnFRI+MQAVg==", "dev": true, "requires": { - "base64url": "3.0.0", - "es6-promise": "4.2.5", - "lodash.assign": "4.2.0", - "lodash.clone": "4.5.0", - "lodash.fill": "3.4.0", - "lodash.flatten": "4.4.0", - "lodash.intersection": "4.4.0", - "lodash.merge": "4.6.1", - "lodash.omit": "4.5.0", - "lodash.partialright": "4.2.1", - "lodash.pick": "4.4.0", - "lodash.uniq": "4.5.0", - "long": "4.0.0", - "node-forge": "0.7.6", - "uuid": "3.3.2" + "base64url": "^3.0.0", + "es6-promise": "^4.2.5", + "lodash.assign": "^4.2.0", + "lodash.clone": "^4.5.0", + "lodash.fill": "^3.4.0", + "lodash.flatten": "^4.4.0", + "lodash.intersection": "^4.4.0", + "lodash.merge": "^4.6.1", + "lodash.omit": "^4.5.0", + "lodash.partialright": "^4.2.1", + "lodash.pick": "^4.4.0", + "lodash.uniq": "^4.5.0", + "long": "^4.0.0", + "node-forge": "^0.7.6", + "uuid": "^3.3.2" } }, "node-mocks-http": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/node-mocks-http/-/node-mocks-http-1.7.2.tgz", - "integrity": "sha512-n7fj7BzRNjhQuWU/xcoRH/aOOPeLg3qMJx3mUDjwheoEmZGkThhhGMTxJZ5nnSUcXmEU1uS3gFq3VdBMhS5ZxQ==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-mocks-http/-/node-mocks-http-1.7.3.tgz", + "integrity": "sha512-wayzLNhEroH3lJj113pFKQ1cd1GKG1mXoZR1HcKp/o9a9lTGGgVY/hYeLajiIFr/z4tXFKOdfJickqqihBtn9g==", "dev": true, "requires": { - "accepts": "1.3.5", - "depd": "1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "mime": "1.6.0", - "net": "1.0.2", - "parseurl": "1.3.2", - "range-parser": "1.2.0", - "type-is": "1.6.16" + "accepts": "^1.3.5", + "depd": "^1.1.0", + "fresh": "^0.5.2", + "merge-descriptors": "^1.0.1", + "methods": "^1.1.2", + "mime": "^1.3.4", + "net": "^1.0.2", + "parseurl": "^1.3.1", + "range-parser": "^1.2.0", + "type-is": "^1.6.16" } }, "nopt": { @@ -4963,7 +5961,7 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } }, "normalize-package-data": { @@ -4971,10 +5969,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.7.1", - "is-builtin-module": "1.0.0", - "semver": "5.5.1", - "validate-npm-package-license": "3.0.4" + "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": { @@ -4982,7 +5980,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "normalize-url": { @@ -4991,9 +5989,9 @@ "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", "dev": true, "requires": { - "prepend-http": "2.0.0", - "query-string": "5.1.1", - "sort-keys": "2.0.0" + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" } }, "npm-run-path": { @@ -5001,7 +5999,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -5013,1140 +6011,1141 @@ "version": "11.9.0", "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.9.0.tgz", "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", + "dev": true, "requires": { - "archy": "1.0.0", - "arrify": "1.0.1", - "caching-transform": "1.0.1", - "convert-source-map": "1.5.1", - "debug-log": "1.0.1", - "default-require-extensions": "1.0.0", - "find-cache-dir": "0.1.1", - "find-up": "2.1.0", - "foreground-child": "1.5.6", - "glob": "7.1.2", - "istanbul-lib-coverage": "1.2.0", - "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "1.10.1", - "istanbul-lib-report": "1.1.3", - "istanbul-lib-source-maps": "1.2.3", - "istanbul-reports": "1.4.0", - "md5-hex": "1.3.0", - "merge-source-map": "1.1.0", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "resolve-from": "2.0.0", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "spawn-wrap": "1.4.2", - "test-exclude": "4.2.1", + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^1.0.0", + "convert-source-map": "^1.5.1", + "debug-log": "^1.0.1", + "default-require-extensions": "^1.0.0", + "find-cache-dir": "^0.1.1", + "find-up": "^2.1.0", + "foreground-child": "^1.5.3", + "glob": "^7.0.6", + "istanbul-lib-coverage": "^1.1.2", + "istanbul-lib-hook": "^1.1.0", + "istanbul-lib-instrument": "^1.10.0", + "istanbul-lib-report": "^1.1.3", + "istanbul-lib-source-maps": "^1.2.3", + "istanbul-reports": "^1.4.0", + "md5-hex": "^1.2.0", + "merge-source-map": "^1.1.0", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.0", + "resolve-from": "^2.0.0", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.1", + "spawn-wrap": "^1.4.2", + "test-exclude": "^4.2.0", "yargs": "11.1.0", - "yargs-parser": "8.1.0" + "yargs-parser": "^8.0.0" }, "dependencies": { "align-text": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "bundled": true, + "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" } }, "amdefine": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" + "bundled": true, + "dev": true }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "bundled": true, + "dev": true }, "ansi-styles": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + "bundled": true, + "dev": true }, "append-transform": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", - "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "bundled": true, + "dev": true, "requires": { - "default-require-extensions": "1.0.0" + "default-require-extensions": "^1.0.0" } }, "archy": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" + "bundled": true, + "dev": true }, "arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + "bundled": true, + "dev": true }, "arr-flatten": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + "bundled": true, + "dev": true }, "arr-union": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + "bundled": true, + "dev": true }, "array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + "bundled": true, + "dev": true }, "arrify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + "bundled": true, + "dev": true }, "assign-symbols": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + "bundled": true, + "dev": true }, "async": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + "bundled": true, + "dev": true }, "atob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", - "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=" + "bundled": true, + "dev": true }, "babel-code-frame": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "bundled": true, + "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" } }, "babel-generator": { "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "bundled": true, + "dev": true, "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" } }, "babel-messages": { "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "bundled": true, + "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-runtime": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "bundled": true, + "dev": true, "requires": { - "core-js": "2.5.6", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "bundled": true, + "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.10" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "bundled": true, + "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.10" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" } }, "babel-types": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "bundled": true, + "dev": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" + "bundled": true, + "dev": true }, "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "bundled": true, + "dev": true }, "base": { "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" + "bundled": true, + "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.2.0", + "pascalcase": "^0.1.1" }, "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, + "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, + "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "bundled": true, + "dev": true } } }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "bundled": true, + "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "braces": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "bundled": true, + "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "builtin-modules": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + "bundled": true, + "dev": true }, "cache-base": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "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" + "bundled": true, + "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" }, "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true } } }, "caching-transform": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", - "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", + "bundled": true, + "dev": true, "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" } }, "camelcase": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "bundled": true, + "dev": true, "optional": true }, "center-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "bundled": true, + "dev": true, "optional": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chalk": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "bundled": true, + "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" } }, "class-utils": { "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "bundled": true, + "dev": true, "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, + "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true } } }, "cliui": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "bundled": true, + "dev": true, "optional": 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" }, "dependencies": { "wordwrap": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "bundled": true, + "dev": true, "optional": true } } }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "bundled": true, + "dev": true }, "collection-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "bundled": true, + "dev": true, "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + "bundled": true, + "dev": true }, "component-emitter": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + "bundled": true, + "dev": true }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "bundled": true, + "dev": true }, "convert-source-map": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=" + "bundled": true, + "dev": true }, "copy-descriptor": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + "bundled": true, + "dev": true }, "core-js": { "version": "2.5.6", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.6.tgz", - "integrity": "sha512-lQUVfQi0aLix2xpyjrrJEvfuYCqPc/HwmTKsC/VNf8q0zsjX7SQZtp4+oRONN5Tsur9GDETPjj+Ub2iDiGZfSQ==" + "bundled": true, + "dev": true }, "cross-spawn": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "bundled": true, + "dev": true, "requires": { - "lru-cache": "4.1.3", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } }, "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "bundled": true, + "dev": true, "requires": { "ms": "2.0.0" } }, "debug-log": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", - "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=" + "bundled": true, + "dev": true }, "decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "bundled": true, + "dev": true }, "decode-uri-component": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + "bundled": true, + "dev": true }, "default-require-extensions": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", - "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "bundled": true, + "dev": true, "requires": { - "strip-bom": "2.0.0" + "strip-bom": "^2.0.0" } }, "define-property": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "bundled": true, + "dev": true, "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, + "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "bundled": true, + "dev": true } } }, "detect-indent": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "bundled": true, + "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "error-ex": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "bundled": true, + "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "bundled": true, + "dev": true }, "esutils": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + "bundled": true, + "dev": true }, "execa": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "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" + "bundled": true, + "dev": true, + "requires": { + "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" }, "dependencies": { "cross-spawn": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "bundled": true, + "dev": true, "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } } } }, "expand-brackets": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "bundled": true, + "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, + "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "extend-shallow": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "bundled": true, + "dev": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "bundled": true, + "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } }, "extglob": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "bundled": true, + "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, + "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, + "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "bundled": true, + "dev": true } } }, "fill-range": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "bundled": true, + "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" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "find-cache-dir": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "bundled": true, + "dev": true, "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" } }, "find-up": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "bundled": true, + "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "for-in": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + "bundled": true, + "dev": true }, "foreground-child": { "version": "1.5.6", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", - "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "bundled": true, + "dev": true, "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" + "cross-spawn": "^4", + "signal-exit": "^3.0.0" } }, "fragment-cache": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "bundled": true, + "dev": true, "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "bundled": true, + "dev": true }, "get-caller-file": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" + "bundled": true, + "dev": true }, "get-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + "bundled": true, + "dev": true }, "get-value": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + "bundled": true, + "dev": true }, "glob": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "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" + "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" } }, "globals": { "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" + "bundled": true, + "dev": true }, "graceful-fs": { "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "bundled": true, + "dev": true }, "handlebars": { "version": "4.0.11", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", - "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "bundled": true, + "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": { "source-map": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "bundled": true, + "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } }, "has-ansi": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "bundled": true, + "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "bundled": true, + "dev": true }, "has-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "bundled": true, + "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" }, "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true } } }, "has-values": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "bundled": true, + "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, + "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "kind-of": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "bundled": true, + "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "hosted-git-info": { "version": "2.6.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", - "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==" + "bundled": true, + "dev": true }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + "bundled": true, + "dev": true }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, + "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "bundled": true, + "dev": true }, "invariant": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "bundled": true, + "dev": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + "bundled": true, + "dev": true }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "bundled": true, + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "bundled": true, + "dev": true }, "is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "bundled": true, + "dev": true }, "is-builtin-module": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "bundled": true, + "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "bundled": true, + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "bundled": true, + "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": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + "bundled": true, + "dev": true } } }, "is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "bundled": true, + "dev": true }, "is-finite": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "bundled": true, + "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "bundled": true, + "dev": true }, "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-odd": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", - "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "bundled": true, + "dev": true, "requires": { - "is-number": "4.0.0" + "is-number": "^4.0.0" }, "dependencies": { "is-number": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" + "bundled": true, + "dev": true } } }, "is-plain-object": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "bundled": true, + "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true } } }, "is-stream": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "bundled": true, + "dev": true }, "is-utf8": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + "bundled": true, + "dev": true }, "is-windows": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + "bundled": true, + "dev": true }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "bundled": true, + "dev": true }, "isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "bundled": true, + "dev": true }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true }, "istanbul-lib-coverage": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", - "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==" + "bundled": true, + "dev": true }, "istanbul-lib-hook": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", - "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", + "bundled": true, + "dev": true, "requires": { - "append-transform": "0.4.0" + "append-transform": "^0.4.0" } }, "istanbul-lib-instrument": { "version": "1.10.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", - "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", + "bundled": true, + "dev": true, "requires": { - "babel-generator": "6.26.1", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.2.0", - "semver": "5.5.0" + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.0", + "semver": "^5.3.0" } }, "istanbul-lib-report": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz", - "integrity": "sha512-D4jVbMDtT2dPmloPJS/rmeP626N5Pr3Rp+SovrPn1+zPChGHcggd/0sL29jnbm4oK9W0wHjCRsdch9oLd7cm6g==", + "bundled": true, + "dev": true, "requires": { - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" }, "dependencies": { "supports-color": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "bundled": true, + "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } }, "istanbul-lib-source-maps": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz", - "integrity": "sha512-fDa0hwU/5sDXwAklXgAoCJCOsFsBplVQ6WBldz5UwaqOzmDhUK4nfuR7/G//G2lERlblUNJB8P6e8cXq3a7MlA==", - "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" + "bundled": true, + "dev": true, + "requires": { + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" }, "dependencies": { "debug": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "bundled": true, + "dev": true, "requires": { "ms": "2.0.0" } @@ -6155,1224 +7154,1224 @@ }, "istanbul-reports": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.4.0.tgz", - "integrity": "sha512-OPzVo1fPZ2H+owr8q/LYKLD+vquv9Pj4F+dj808MdHbuQLD7S4ACRjcX+0Tne5Vxt2lxXvdZaL7v+FOOAV281w==", + "bundled": true, + "dev": true, "requires": { - "handlebars": "4.0.11" + "handlebars": "^4.0.3" } }, "js-tokens": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + "bundled": true, + "dev": true }, "jsesc": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" + "bundled": true, + "dev": true }, "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, + "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lazy-cache": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "bundled": true, + "dev": true, "optional": true }, "lcid": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "bundled": true, + "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "load-json-file": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "bundled": true, + "dev": true, "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": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "bundled": true, + "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": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "bundled": true, + "dev": true } } }, "lodash": { "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" + "bundled": true, + "dev": true }, "longest": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" + "bundled": true, + "dev": true }, "loose-envify": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "bundled": true, + "dev": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "lru-cache": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "bundled": true, + "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "map-cache": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + "bundled": true, + "dev": true }, "map-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "bundled": true, + "dev": true, "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "md5-hex": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", - "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", + "bundled": true, + "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", - "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=" + "bundled": true, + "dev": true }, "mem": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "bundled": true, + "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "merge-source-map": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "bundled": true, + "dev": true, "requires": { - "source-map": "0.6.1" + "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==" + "bundled": true, + "dev": true } } }, "micromatch": { "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "bundled": true, + "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "bundled": true, + "dev": true } } }, "mimic-fn": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + "bundled": true, + "dev": true }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, + "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "bundled": true, + "dev": true }, "mixin-deep": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "bundled": true, + "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": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "bundled": true, + "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, + "dev": true, "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "bundled": true, + "dev": true }, "nanomatch": { "version": "1.2.9", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", - "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "bundled": true, + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-odd": "^2.0.0", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + "bundled": true, + "dev": true }, "array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "bundled": true, + "dev": true } } }, "normalize-package-data": { "version": "2.4.0", - "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==", + "bundled": true, + "dev": true, "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "npm-run-path": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "bundled": true, + "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "bundled": true, + "dev": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "bundled": true, + "dev": true }, "object-copy": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "bundled": true, + "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": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, + "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } }, "object-visit": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "bundled": true, + "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" }, "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true } } }, "object.pick": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "bundled": true, + "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true } } }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, + "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "optimist": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "bundled": true, + "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + "bundled": true, + "dev": true }, "os-locale": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "bundled": true, + "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" } }, "p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + "bundled": true, + "dev": true }, "p-limit": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "bundled": true, + "dev": true, "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "bundled": true, + "dev": true, "requires": { - "p-limit": "1.2.0" + "p-limit": "^1.1.0" } }, "p-try": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + "bundled": true, + "dev": true }, "parse-json": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "bundled": true, + "dev": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "pascalcase": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + "bundled": true, + "dev": true }, "path-exists": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "bundled": true, + "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "bundled": true, + "dev": true }, "path-key": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + "bundled": true, + "dev": true }, "path-parse": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" + "bundled": true, + "dev": true }, "path-type": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "bundled": true, + "dev": true, "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" } }, "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + "bundled": true, + "dev": true }, "pinkie": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + "bundled": true, + "dev": true }, "pinkie-promise": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "bundled": true, + "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "bundled": true, + "dev": true, "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" }, "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "bundled": true, + "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } }, "posix-character-classes": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + "bundled": true, + "dev": true }, "pseudomap": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + "bundled": true, + "dev": true }, "read-pkg": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "bundled": true, + "dev": true, "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": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "bundled": true, + "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" }, "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "bundled": true, + "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } }, "regenerator-runtime": { "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + "bundled": true, + "dev": true }, "regex-not": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "bundled": true, + "dev": true, "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "repeat-element": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" + "bundled": true, + "dev": true }, "repeat-string": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + "bundled": true, + "dev": true }, "repeating": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "bundled": true, + "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "bundled": true, + "dev": true }, "require-main-filename": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + "bundled": true, + "dev": true }, "resolve-from": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" + "bundled": true, + "dev": true }, "resolve-url": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + "bundled": true, + "dev": true }, "ret": { "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + "bundled": true, + "dev": true }, "right-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "bundled": true, + "dev": true, "optional": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "bundled": true, + "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-regex": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "bundled": true, + "dev": true, "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "semver": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + "bundled": true, + "dev": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "bundled": true, + "dev": true }, "set-value": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "bundled": true, + "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" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "shebang-command": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "bundled": true, + "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + "bundled": true, + "dev": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + "bundled": true, + "dev": true }, "slide": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" + "bundled": true, + "dev": true }, "snapdragon": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "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": "3.1.0" + "bundled": true, + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, + "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "snapdragon-node": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "bundled": true, + "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" }, "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, + "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, + "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "bundled": true, + "dev": true } } }, "snapdragon-util": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "bundled": true, + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "bundled": true, + "dev": true }, "source-map-resolve": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", - "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "bundled": true, + "dev": true, "requires": { - "atob": "2.1.1", - "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": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + "bundled": true, + "dev": true }, "spawn-wrap": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", - "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", + "bundled": true, + "dev": true, "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.0" + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" } }, "spdx-correct": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "bundled": true, + "dev": true, "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==" + "bundled": true, + "dev": true }, "spdx-expression-parse": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "bundled": true, + "dev": true, "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==" + "bundled": true, + "dev": true }, "split-string": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "bundled": true, + "dev": true, "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "static-extend": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "bundled": true, + "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": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, + "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } }, "string-width": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "bundled": true, + "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" }, "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "bundled": true, + "dev": true }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "bundled": true, + "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, + "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "bundled": true, + "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + "bundled": true, + "dev": true }, "supports-color": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "bundled": true, + "dev": true }, "test-exclude": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", - "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", - "requires": { - "arrify": "1.0.1", - "micromatch": "3.1.10", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" + "bundled": true, + "dev": true, + "requires": { + "arrify": "^1.0.1", + "micromatch": "^3.1.8", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" }, "dependencies": { "arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + "bundled": true, + "dev": true }, "array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + "bundled": true, + "dev": true }, "braces": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "bundled": true, + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "expand-brackets": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "bundled": true, + "dev": true, + "requires": { + "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": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, + "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "bundled": true, + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, + "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "bundled": true, + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, + "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "is-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "bundled": true, + "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": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + "bundled": true, + "dev": true } } }, "extglob": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "bundled": true, + "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" }, "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, + "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "fill-range": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "bundled": true, + "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" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, + "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, + "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "bundled": true, + "dev": true }, "micromatch": { "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "bundled": true, + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } }, "to-fast-properties": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" + "bundled": true, + "dev": true }, "to-object-path": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "bundled": true, + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "bundled": true, + "dev": true, "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "bundled": true, + "dev": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "dependencies": { "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } } } }, "trim-right": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" + "bundled": true, + "dev": true }, "uglify-js": { "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "bundled": true, + "dev": true, "optional": 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" }, "dependencies": { "yargs": { "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "bundled": true, + "dev": true, "optional": 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" } } @@ -7380,65 +8379,65 @@ }, "uglify-to-browserify": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "bundled": true, + "dev": true, "optional": true }, "union-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "bundled": true, + "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": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "bundled": true, + "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" } } } }, "unset-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "bundled": true, + "dev": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "bundled": true, + "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": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "bundled": true, + "dev": true, "requires": { "isarray": "1.0.0" } @@ -7447,192 +8446,192 @@ }, "has-values": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + "bundled": true, + "dev": true }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true } } }, "urix": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + "bundled": true, + "dev": true }, "use": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", - "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "bundled": true, + "dev": true } } }, "validate-npm-package-license": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", - "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", + "bundled": true, + "dev": true, "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "which": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "bundled": true, + "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + "bundled": true, + "dev": true }, "window-size": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "bundled": true, + "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" + "bundled": true, + "dev": true }, "wrap-ansi": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "bundled": true, + "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, + "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "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" } } } }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "bundled": true, + "dev": true }, "write-file-atomic": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", - "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", + "bundled": true, + "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } }, "y18n": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + "bundled": true, + "dev": true }, "yallist": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + "bundled": true, + "dev": true }, "yargs": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", - "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", - "requires": { - "cliui": "4.1.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": "9.0.2" + "bundled": true, + "dev": true, + "requires": { + "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": "^9.0.2" }, "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "bundled": true, + "dev": true }, "camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + "bundled": true, + "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==", + "bundled": true, + "dev": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" } }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "bundled": true, + "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "yargs-parser": { "version": "9.0.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "bundled": true, + "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } }, "yargs-parser": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", - "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", + "bundled": true, + "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + "bundled": true, + "dev": true } } } @@ -7659,9 +8658,9 @@ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "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": { @@ -7669,7 +8668,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -7689,7 +8688,7 @@ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" }, "dependencies": { "isobject": { @@ -7705,8 +8704,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "optional": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "object.pick": { @@ -7714,7 +8713,7 @@ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -7730,7 +8729,7 @@ "integrity": "sha512-oLnVSEcNZkw01sB5aFR+2iJmW4oyC1PIMJmd3FMBGDuPTy5ZtEuX5WNhKMRarJIMOq8NiOwIB6eJB9AhgYwBTg==", "dev": true, "requires": { - "base64url": "3.0.0" + "base64url": "^3.0.0" } }, "once": { @@ -7738,7 +8737,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -7746,23 +8745,22 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "openid-client": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-2.4.2.tgz", - "integrity": "sha512-8HP7SCamsQKC8JGosk0Hs+qXfDyO5lojRW+gE6uW8Tjh4h/B8HzZeppyzo27p1Au0ziTKbI+umHuyZST/t6jXQ==", + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-2.4.5.tgz", + "integrity": "sha512-TmQQF7mOiYZsxX4kaQbrN06SXZ31UR5m4ur6sjM+VhaIuF79lqHe7uLmmt/NGVBIQojox6a4eilQ8DQDEQv31Q==", "dev": true, "requires": { - "base64url": "3.0.0", - "got": "8.3.2", - "lodash": "4.17.11", - "lru-cache": "4.1.3", - "node-jose": "1.0.0", - "oidc-token-hash": "3.0.1", - "p-any": "1.1.0", - "uuid": "3.3.2" + "base64url": "^3.0.0", + "got": "^8.3.2", + "lodash": "^4.17.11", + "lru-cache": "^4.1.3", + "node-jose": "^1.1.0", + "oidc-token-hash": "^3.0.1", + "p-any": "^1.1.0" } }, "optionator": { @@ -7770,17 +8768,17 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" } }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "resolved": "http://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-locale": { @@ -7788,14 +8786,14 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "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" } }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "resolved": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "output-file-sync": { @@ -7803,9 +8801,9 @@ "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", "requires": { - "graceful-fs": "4.1.11", - "mkdirp": "0.5.1", - "object-assign": "4.1.1" + "graceful-fs": "^4.1.4", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.0" } }, "p-any": { @@ -7814,7 +8812,7 @@ "integrity": "sha512-Ef0tVa4CZ5pTAmKn+Cg3w8ABBXh+hHO1aV8281dKOoUHfX+3tjG2EaFcC+aZyagg9b4EYGsHEjz21DnEE8Og2g==", "dev": true, "requires": { - "p-some": "2.0.1" + "p-some": "^2.0.0" } }, "p-cancelable": { @@ -7839,7 +8837,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -7847,7 +8845,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { - "p-limit": "1.3.0" + "p-limit": "^1.1.0" } }, "p-some": { @@ -7856,7 +8854,7 @@ "integrity": "sha1-Zdh8ixVO289SIdFnd4ttLhUPbwY=", "dev": true, "requires": { - "aggregate-error": "1.0.0" + "aggregate-error": "^1.0.0" } }, "p-timeout": { @@ -7865,7 +8863,7 @@ "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", "dev": true, "requires": { - "p-finally": "1.0.0" + "p-finally": "^1.0.0" } }, "p-try": { @@ -7879,10 +8877,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "optional": 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" } }, "parse-json": { @@ -7890,7 +8888,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "1.3.2" + "error-ex": "^1.2.0" } }, "parseqs": { @@ -7898,7 +8896,7 @@ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseuri": { @@ -7906,7 +8904,7 @@ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseurl": { @@ -7921,13 +8919,16 @@ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" }, "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "^2.0.0" + } }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-is-inside": { @@ -7967,14 +8968,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { - "pify": "2.3.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } + "pify": "^2.0.0" } }, "pathval": { @@ -7988,11 +8982,11 @@ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", "requires": { - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "performance-now": { @@ -8002,9 +8996,9 @@ "dev": true }, "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "version": "2.3.0", + "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, "pinkie": { "version": "2.0.4", @@ -8016,7 +9010,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" } }, "pkg-conf": { @@ -8024,19 +9018,27 @@ "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", "requires": { - "find-up": "2.1.0", - "load-json-file": "4.0.0" + "find-up": "^2.0.0", + "load-json-file": "^4.0.0" }, "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, "load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "requires": { - "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "parse-json": { @@ -8044,9 +9046,14 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" } } }, @@ -8055,9 +9062,9 @@ "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=", "requires": { - "debug-log": "1.0.1", - "find-root": "1.1.0", - "xtend": "4.0.1" + "debug-log": "^1.0.0", + "find-root": "^1.0.0", + "xtend": "^4.0.1" } }, "pkg-dir": { @@ -8065,26 +9072,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "requires": { - "find-up": "1.1.2" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "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": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "2.0.1" - } - } + "find-up": "^1.0.0" } }, "pluralize": { @@ -8121,9 +9109,9 @@ "optional": true }, "prettier": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.14.3.tgz", - "integrity": "sha512-qZDVnCrnpsRJJq5nSsiHCE3BYMED2OtsI+cmzIzF1QIfqm5ALf8tEJcO27zV1gKNKRPdhjO0dNWnrzssDQ1tFg==", + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.15.2.tgz", + "integrity": "sha512-YgPLFFA0CdKL4Eg2IHtUSjzj/BWgszDHiNQAe0VAIBse34148whfdzLagRL+QiKS+YfK5ftB6X4v/MBw8yCoug==", "dev": true }, "private": { @@ -8137,17 +9125,17 @@ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" }, "progress": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", - "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz", + "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==" }, "prop-types": { "version": "15.6.2", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", "requires": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1" + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" } }, "pseudomap": { @@ -8162,36 +9150,29 @@ "dev": true }, "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, "pushdata-bitcoin": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", + "resolved": "http://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", "integrity": "sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=", "requires": { - "bitcoin-ops": "1.4.1" - }, - "dependencies": { - "bitcoin-ops": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz", - "integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow==" - } + "bitcoin-ops": "^1.3.0" } }, "qrcode": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.3.0.tgz", - "integrity": "sha512-HFE7drEGhVoPxL1Ilm/zV+wkNJzUa8zL2nXP30vzo78EXAnHPStVOt2iZUIOfgmELtAbSkw/Z8igqu/TbNDGrQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.3.2.tgz", + "integrity": "sha512-sYo+Tf7nx14YZSNPqnyEWefVrjUEpM4/NxOrxOk+jcQ9NhM2LCNuzGmQctDhGTQdO2YJorKY55dypx+hvVo5jw==", "requires": { "can-promise": "0.0.1", - "dijkstrajs": "1.0.1", - "isarray": "2.0.4", - "pngjs": "3.3.3", - "yargs": "8.0.2" + "dijkstrajs": "^1.0.1", + "isarray": "^2.0.1", + "pngjs": "^3.3.0", + "yargs": "^8.0.2" }, "dependencies": { "isarray": { @@ -8202,9 +9183,9 @@ } }, "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.6.0.tgz", + "integrity": "sha512-KIJqT9jQJDQx5h5uAVPimw6yVg2SekOKu959OCtktD3FjzbpvaPr8i4zzg07DOMz+igA4W/aNM7OV8H37pFYfA==" }, "query-string": { "version": "5.1.1", @@ -8212,20 +9193,20 @@ "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", "dev": true, "requires": { - "decode-uri-component": "0.2.0", - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" } }, "randomatic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz", - "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", "optional": true, "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.1" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "dependencies": { "is-number": { @@ -8247,7 +9228,7 @@ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.0" } }, "range-parser": { @@ -8261,9 +9242,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "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": { @@ -8271,8 +9252,18 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + } } }, "readable-stream": { @@ -8280,13 +9271,13 @@ "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "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" }, "dependencies": { "inherits": { @@ -8302,9 +9293,9 @@ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "optional": true, "requires": { - "graceful-fs": "4.1.11", - "micromatch": "3.1.10", - "readable-stream": "2.3.6" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" }, "dependencies": { "arr-diff": { @@ -8324,16 +9315,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "optional": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -8342,7 +9333,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "optional": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -8362,13 +9353,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "optional": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -8377,7 +9368,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "optional": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -8386,7 +9377,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "optional": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -8395,7 +9386,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -8404,7 +9395,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "optional": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -8415,7 +9406,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -8424,7 +9415,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "optional": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -8435,9 +9426,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "optional": 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": { @@ -8454,14 +9445,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "optional": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { @@ -8470,7 +9461,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "optional": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -8479,7 +9470,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "optional": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -8490,10 +9481,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "optional": 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" }, "dependencies": { "extend-shallow": { @@ -8502,7 +9493,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "optional": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -8513,7 +9504,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "optional": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -8522,7 +9513,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "optional": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -8531,9 +9522,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "optional": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-number": { @@ -8542,7 +9533,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -8551,7 +9542,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "optional": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -8573,19 +9564,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "optional": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } @@ -8605,9 +9596,9 @@ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.8" + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" } }, "regex-cache": { @@ -8616,7 +9607,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "optional": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "regex-not": { @@ -8624,8 +9615,8 @@ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "regexpp": { @@ -8639,27 +9630,27 @@ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "requires": { - "regenerate": "1.4.0", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "regjsgen": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "resolved": "http://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" }, "regjsparser": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "resolved": "http://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" } } @@ -8684,7 +9675,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" } }, "repl.history": { @@ -8698,26 +9689,34 @@ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "dev": true, "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.8.0", - "caseless": "0.12.0", - "combined-stream": "1.0.7", - "extend": "3.0.2", - "forever-agent": "0.6.1", - "form-data": "2.3.2", - "har-validator": "5.1.0", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.20", - "oauth-sign": "0.9.0", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.4.3", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + } } }, "require-directory": { @@ -8732,11 +9731,11 @@ }, "require-uncached": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "resolved": "http://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" } }, "resolve": { @@ -8744,7 +9743,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "requires": { - "path-parse": "1.0.6" + "path-parse": "^1.0.5" } }, "resolve-from": { @@ -8763,7 +9762,7 @@ "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", "dev": true, "requires": { - "lowercase-keys": "1.0.1" + "lowercase-keys": "^1.0.0" } }, "restore-cursor": { @@ -8771,8 +9770,8 @@ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "resumer": { @@ -8780,7 +9779,7 @@ "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", "requires": { - "through": "2.3.8" + "through": "~2.3.4" } }, "ret": { @@ -8793,7 +9792,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "glob": "7.1.3" + "glob": "^7.0.5" } }, "ripemd160": { @@ -8801,8 +9800,8 @@ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.1" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, "run-async": { @@ -8810,7 +9809,7 @@ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, "run-parallel": { @@ -8828,7 +9827,7 @@ "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "requires": { - "rx-lite": "4.0.8" + "rx-lite": "*" } }, "rxjs": { @@ -8837,7 +9836,7 @@ "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", "dev": true, "requires": { - "tslib": "1.9.3" + "tslib": "^1.9.0" } }, "safe-buffer": { @@ -8847,10 +9846,10 @@ }, "safe-regex": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "safer-buffer": { @@ -8869,7 +9868,7 @@ "resolved": "https://registry.npmjs.org/satoshi-bitcoin/-/satoshi-bitcoin-1.0.4.tgz", "integrity": "sha1-0AK2dwddXLvywhGo3zJUvN9QseQ=", "requires": { - "big.js": "3.2.0" + "big.js": "^3.1.3" } }, "scryptsy": { @@ -8882,20 +9881,20 @@ "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.5.2.tgz", "integrity": "sha512-iin3kojdybY6NArd+UFsoTuapOF7bnJNf2UbcWXaY3z+E1sJDipl60vtzB5hbO/uquBu7z0fd4VC4Irp+xoFVQ==", "requires": { - "bindings": "1.3.0", - "bip66": "1.1.5", - "bn.js": "4.11.8", - "create-hash": "1.2.0", - "drbg.js": "1.0.1", - "elliptic": "6.4.1", - "nan": "2.11.1", - "safe-buffer": "5.1.2" + "bindings": "^1.2.1", + "bip66": "^1.1.3", + "bn.js": "^4.11.3", + "create-hash": "^1.1.2", + "drbg.js": "^1.0.1", + "elliptic": "^6.2.3", + "nan": "^2.2.1", + "safe-buffer": "^5.1.0" } }, "semver": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", - "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==" + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==" }, "set-blocking": { "version": "2.0.0", @@ -8907,10 +9906,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "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" }, "dependencies": { "extend-shallow": { @@ -8918,7 +9917,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -8928,8 +9927,8 @@ "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "shebang-command": { @@ -8937,7 +9936,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -8956,13 +9955,13 @@ "integrity": "sha512-trdx+mB0VBBgoYucy6a9L7/jfQOmvGeaKZT4OOJ+lPAtI8623xyGr8wLiE4eojzBS8G9yXbhx42GHUOVLr4X2w==", "dev": true, "requires": { - "@sinonjs/formatio": "2.0.0", - "diff": "3.5.0", - "lodash.get": "4.4.2", - "lolex": "2.7.5", - "nise": "1.4.5", - "supports-color": "5.5.0", - "type-detect": "4.0.8" + "@sinonjs/formatio": "^2.0.0", + "diff": "^3.1.0", + "lodash.get": "^4.4.2", + "lolex": "^2.2.0", + "nise": "^1.2.0", + "supports-color": "^5.1.0", + "type-detect": "^4.0.5" }, "dependencies": { "supports-color": { @@ -8971,7 +9970,7 @@ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -8986,14 +9985,7 @@ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "requires": { - "is-fullwidth-code-point": "2.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - } + "is-fullwidth-code-point": "^2.0.0" } }, "snapdragon": { @@ -9001,14 +9993,14 @@ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "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.2", - "use": "3.1.1" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "debug": { @@ -9024,7 +10016,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -9032,7 +10024,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -9043,9 +10035,9 @@ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "optional": 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" }, "dependencies": { "define-property": { @@ -9054,7 +10046,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "optional": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -9063,7 +10055,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "optional": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -9072,7 +10064,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "optional": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -9081,9 +10073,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "optional": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -9105,7 +10097,7 @@ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "socket.io": { @@ -9113,12 +10105,12 @@ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", "requires": { - "debug": "3.1.0", - "engine.io": "3.2.0", - "has-binary2": "1.0.3", - "socket.io-adapter": "1.1.1", + "debug": "~3.1.0", + "engine.io": "~3.2.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", "socket.io-client": "2.1.1", - "socket.io-parser": "3.2.0" + "socket.io-parser": "~3.2.0" } }, "socket.io-adapter": { @@ -9135,25 +10127,25 @@ "base64-arraybuffer": "0.1.5", "component-bind": "1.0.0", "component-emitter": "1.2.1", - "debug": "3.1.0", - "engine.io-client": "3.2.1", - "has-binary2": "1.0.3", + "debug": "~3.1.0", + "engine.io-client": "~3.2.0", + "has-binary2": "~1.0.2", "has-cors": "1.1.0", "indexof": "0.0.1", "object-component": "0.0.3", "parseqs": "0.0.5", "parseuri": "0.0.5", - "socket.io-parser": "3.2.0", + "socket.io-parser": "~3.2.0", "to-array": "0.1.4" } }, "socket.io-parser": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", + "resolved": "http://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", "requires": { "component-emitter": "1.2.1", - "debug": "3.1.0", + "debug": "~3.1.0", "isarray": "2.0.1" }, "dependencies": { @@ -9170,7 +10162,7 @@ "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", "dev": true, "requires": { - "is-plain-obj": "1.1.0" + "is-plain-obj": "^1.0.0" } }, "source-map": { @@ -9183,11 +10175,11 @@ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "requires": { - "atob": "2.1.2", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -9195,7 +10187,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } }, "source-map-url": { @@ -9208,8 +10200,8 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz", "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==", "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.1" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -9222,21 +10214,21 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "2.2.0", - "spdx-license-ids": "3.0.1" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz", - "integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w==" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.2.tgz", + "integrity": "sha512-qky9CVt0lVIECkEsYbNILVnPvycuEBkXoMFLRWsREkomQLevYhtRKC+R91a5TOAQ3bCMjikRwhyaRqj1VYatYg==" }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "sprintf-js": { @@ -9245,20 +10237,20 @@ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, "sshpk": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", - "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.2.tgz", + "integrity": "sha512-Ra/OXQtuh0/enyl4ETZAfTaeksa6BXks5ZcjpSUNrjBr0DvrJKX+1fsKDPpT9TBXgHAFsa4510aNVgI8g/+SzA==", "dev": true, "requires": { - "asn1": "0.2.4", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.2", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.2", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "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", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" } }, "standard": { @@ -9266,15 +10258,15 @@ "resolved": "http://registry.npmjs.org/standard/-/standard-11.0.1.tgz", "integrity": "sha512-nu0jAcHiSc8H+gJCXeiziMVZNDYi8MuqrYJKxTgjP4xKXZMKm311boqQIzDrYI/ktosltxt2CbDjYQs9ANC8IA==", "requires": { - "eslint": "4.18.2", + "eslint": "~4.18.0", "eslint-config-standard": "11.0.0", "eslint-config-standard-jsx": "5.0.0", - "eslint-plugin-import": "2.9.0", - "eslint-plugin-node": "6.0.1", - "eslint-plugin-promise": "3.7.0", - "eslint-plugin-react": "7.7.0", - "eslint-plugin-standard": "3.0.1", - "standard-engine": "8.0.1" + "eslint-plugin-import": "~2.9.0", + "eslint-plugin-node": "~6.0.0", + "eslint-plugin-promise": "~3.7.0", + "eslint-plugin-react": "~7.7.0", + "eslint-plugin-standard": "~3.0.1", + "standard-engine": "~8.0.0" }, "dependencies": { "ansi-regex": { @@ -9287,43 +10279,43 @@ "resolved": "http://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", "requires": { - "ajv": "5.5.2", - "babel-code-frame": "6.26.0", - "chalk": "2.4.1", - "concat-stream": "1.6.2", - "cross-spawn": "5.1.0", - "debug": "3.1.0", - "doctrine": "2.1.0", - "eslint-scope": "3.7.3", - "eslint-visitor-keys": "1.0.0", - "espree": "3.5.4", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.3", - "globals": "11.8.0", - "ignore": "3.3.10", - "imurmurhash": "0.1.4", - "inquirer": "3.3.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.12.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.0", - "require-uncached": "1.0.3", - "semver": "5.5.1", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.2", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", "table": "4.0.2", - "text-table": "0.2.0" + "text-table": "~0.2.0" } }, "eslint-plugin-node": { @@ -9331,23 +10323,23 @@ "resolved": "http://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz", "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", "requires": { - "ignore": "3.3.10", - "minimatch": "3.0.4", - "resolve": "1.8.1", - "semver": "5.5.1" + "ignore": "^3.3.6", + "minimatch": "^3.0.4", + "resolve": "^1.3.3", + "semver": "^5.4.1" } }, "globals": { - "version": "11.8.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.8.0.tgz", - "integrity": "sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA==" + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz", + "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==" }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -9357,10 +10349,10 @@ "resolved": "http://registry.npmjs.org/standard-engine/-/standard-engine-8.0.1.tgz", "integrity": "sha512-LA531C3+nljom/XRvdW/hGPXwmilRkaRkENhO3FAGF1Vtq/WtCXzgmnc5S6vUHHsgv534MRy02C1ikMwZXC+tw==", "requires": { - "deglob": "2.1.1", - "get-stdin": "6.0.0", - "minimist": "1.2.0", - "pkg-conf": "2.1.0" + "deglob": "^2.1.0", + "get-stdin": "^6.0.0", + "minimist": "^1.1.0", + "pkg-conf": "^2.0.0" }, "dependencies": { "minimist": { @@ -9375,8 +10367,8 @@ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { @@ -9384,7 +10376,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -9400,8 +10392,8 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "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" }, "dependencies": { "ansi-regex": { @@ -9409,17 +10401,12 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -9429,17 +10416,17 @@ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.12.0", - "function-bind": "1.1.1" + "define-properties": "^1.1.2", + "es-abstract": "^1.5.0", + "function-bind": "^1.0.2" } }, "string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -9447,7 +10434,7 @@ "resolved": "http://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": { @@ -9457,7 +10444,7 @@ }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, "strip-json-comments": { @@ -9471,16 +10458,16 @@ "integrity": "sha1-cDUpoHFOV+EjlZ3e+84ZOy5Q0RU=", "dev": true, "requires": { - "component-emitter": "1.2.1", - "cookiejar": "2.1.2", - "debug": "2.6.9", - "extend": "3.0.2", + "component-emitter": "^1.2.0", + "cookiejar": "^2.0.6", + "debug": "^2.2.0", + "extend": "^3.0.0", "form-data": "1.0.0-rc4", - "formidable": "1.2.1", - "methods": "1.1.2", - "mime": "1.6.0", - "qs": "6.5.2", - "readable-stream": "2.3.6" + "formidable": "^1.0.17", + "methods": "^1.1.1", + "mime": "^1.3.4", + "qs": "^6.1.0", + "readable-stream": "^2.0.5" }, "dependencies": { "debug": { @@ -9494,13 +10481,13 @@ }, "form-data": { "version": "1.0.0-rc4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc4.tgz", + "resolved": "http://registry.npmjs.org/form-data/-/form-data-1.0.0-rc4.tgz", "integrity": "sha1-BaxrwiIntD5EYfSIFhVUaZ1Pi14=", "dev": true, "requires": { - "async": "1.5.2", - "combined-stream": "1.0.7", - "mime-types": "2.1.20" + "async": "^1.5.2", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.10" } } } @@ -9511,8 +10498,8 @@ "integrity": "sha1-oFgIHXiPFRXUcA11Aogea3WeRM0=", "dev": true, "requires": { - "methods": "1.1.2", - "superagent": "2.3.0" + "methods": "1.x", + "superagent": "^2.0.0" } }, "supports-color": { @@ -9525,12 +10512,12 @@ "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "chalk": "2.4.1", - "lodash": "4.17.11", + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "string-width": "^2.1.1" } }, "tape": { @@ -9538,19 +10525,19 @@ "resolved": "https://registry.npmjs.org/tape/-/tape-4.9.1.tgz", "integrity": "sha512-6fKIXknLpoe/Jp4rzHKFPpJUHDHDqn8jus99IfPnHIjyz78HYlefTGD3b5EkbQzuLfaEvmfPK3IolLgq2xT3kw==", "requires": { - "deep-equal": "1.0.1", - "defined": "1.0.0", - "for-each": "0.3.3", - "function-bind": "1.1.1", - "glob": "7.1.3", - "has": "1.0.3", - "inherits": "2.0.3", - "minimist": "1.2.0", - "object-inspect": "1.6.0", - "resolve": "1.7.1", - "resumer": "0.0.0", - "string.prototype.trim": "1.1.2", - "through": "2.3.8" + "deep-equal": "~1.0.1", + "defined": "~1.0.0", + "for-each": "~0.3.3", + "function-bind": "~1.1.1", + "glob": "~7.1.2", + "has": "~1.0.3", + "inherits": "~2.0.3", + "minimist": "~1.2.0", + "object-inspect": "~1.6.0", + "resolve": "~1.7.1", + "resumer": "~0.0.0", + "string.prototype.trim": "~1.1.2", + "through": "~2.3.8" }, "dependencies": { "inherits": { @@ -9568,7 +10555,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", "requires": { - "path-parse": "1.0.6" + "path-parse": "^1.0.5" } } } @@ -9600,7 +10587,7 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "to-array": { @@ -9618,7 +10605,7 @@ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { @@ -9626,10 +10613,10 @@ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { @@ -9638,8 +10625,8 @@ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "optional": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "dependencies": { "is-number": { @@ -9648,7 +10635,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } } } @@ -9658,7 +10645,7 @@ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", "requires": { - "nopt": "1.0.10" + "nopt": "~1.0.10" } }, "tough-cookie": { @@ -9667,8 +10654,16 @@ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "dev": true, "requires": { - "psl": "1.1.29", - "punycode": "1.4.1" + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } } }, "trim-right": { @@ -9688,22 +10683,21 @@ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true, - "optional": true + "dev": true }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-detect": { @@ -9719,7 +10713,7 @@ "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.20" + "mime-types": "~2.1.18" } }, "typedarray": { @@ -9728,9 +10722,9 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "typeforce": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.13.2.tgz", - "integrity": "sha512-NBEHFw7hWhzFtr/D73xffwlk7l6QjExtSrS9nhg9VeU5U94tJIeNLgN74bm6V+pUaN8RF14QhL+wXItZJBMJBA==" + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.16.0.tgz", + "integrity": "sha512-V60F7OHPH7vPlgIU73vYyeebKxWjQqCTlge+MvKlVn09PIhCOi/ZotowYdgREHB5S1dyHOr906ui6NheYXjlVQ==" }, "ultron": { "version": "1.1.1", @@ -9742,10 +10736,10 @@ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "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": { "extend-shallow": { @@ -9753,7 +10747,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { @@ -9761,10 +10755,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "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" } } } @@ -9784,8 +10778,8 @@ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -9793,9 +10787,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "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": { @@ -9826,15 +10820,7 @@ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "requires": { - "punycode": "2.1.1" - }, - "dependencies": { - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - } + "punycode": "^2.1.0" } }, "urix": { @@ -9848,7 +10834,7 @@ "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "dev": true, "requires": { - "prepend-http": "2.0.0" + "prepend-http": "^2.0.0" } }, "url-to-options": { @@ -9869,7 +10855,7 @@ }, "util": { "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "resolved": "http://registry.npmjs.org/util/-/util-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "requires": { "inherits": "2.0.1" @@ -9891,7 +10877,7 @@ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "requires": { - "user-home": "1.1.1" + "user-home": "^1.1.1" } }, "validate-npm-package-license": { @@ -9899,8 +10885,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "requires": { - "spdx-correct": "3.0.2", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "varuint-bitcoin": { @@ -9908,7 +10894,7 @@ "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz", "integrity": "sha512-jCEPG+COU/1Rp84neKTyDJQr478/hAfVp5xxYn09QEH0yBjbmPeMfuuQIrp+BUD83hybtYZKhr5elV3bvdV1bA==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.1" } }, "verror": { @@ -9917,9 +10903,9 @@ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": 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" } }, "which": { @@ -9927,7 +10913,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -9940,7 +10926,7 @@ "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", "requires": { - "bs58check": "2.1.2" + "bs58check": "<3.0.0" } }, "window-or-global": { @@ -9958,18 +10944,26 @@ "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, "string-width": { "version": "1.0.2", "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" } } } @@ -9984,7 +10978,7 @@ "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "ws": { @@ -9992,9 +10986,9 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.2", - "ultron": "1.1.1" + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" } }, "xmlhttprequest-ssl": { @@ -10013,28 +11007,28 @@ "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" }, "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==" }, "yargs": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.3", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.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": "7.0.0" + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^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": "^7.0.0" } }, "yargs-parser": { @@ -10042,7 +11036,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } }, "yeast": { diff --git a/package.json b/package.json index 534b3e49..ea170fc4 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,6 @@ "git-clone": "^0.1.0", "ini": "^1.3.5", "mkdirp": "^0.5.1", - "mocha": "^5.0.1", "node-cmd": "^3.0.0", "node-emoji": "^1.8.1", "qrcode": "^1.2.0", @@ -79,7 +78,7 @@ "eslint-plugin-prettier": "^2.6.2", "flow-bin": "^0.64.0", "kubernetes-client": "^6.1.0", - "mocha": "^3.5.3", + "mocha": "^5.0.1", "node-mocks-http": "^1.7.0", "nyc": "^11.6.0", "prettier": "^1.14.2", From fce911ff40ad19c216d736846a06bf5561842e87 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Wed, 28 Nov 2018 09:02:12 -0800 Subject: [PATCH 140/480] Increasing version from 2.2.4 to 2.2.5 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ea170fc4..4ac7ac8b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "2.2.4", + "version": "2.2.5", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", From 890bd5f283bef16f7921070902df4da0e59bcbe2 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 30 Nov 2018 10:52:33 +0900 Subject: [PATCH 141/480] Bump patch v. --- index.js | 2 +- package-lock.json | 4184 ++++++++++++++++++++++----------------------- 2 files changed, 2090 insertions(+), 2096 deletions(-) diff --git a/index.js b/index.js index c0b292df..ea579807 100755 --- a/index.js +++ b/index.js @@ -18,7 +18,7 @@ const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") const cmd = require("node-cmd") -program.version("2.2.4 ", "-v, --version") +program.version("2.2.5 ", "-v, --version") program .command("new ") diff --git a/package-lock.json b/package-lock.json index 4802de26..da16364f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "2.2.4", + "version": "2.2.5", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -9,7 +9,7 @@ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", "requires": { - "@babel/highlight": "^7.0.0" + "@babel/highlight": "7.0.0" } }, "@babel/generator": { @@ -17,11 +17,11 @@ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.1.6.tgz", "integrity": "sha512-brwPBtVvdYdGxtenbQgfCdDPmtkmUBZPjUoK5SXJEBuHaA5BCubh9ly65fzXz7R6o5rA76Rs22ES8Z+HCc0YIQ==", "requires": { - "@babel/types": "^7.1.6", - "jsesc": "^2.5.1", - "lodash": "^4.17.10", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" + "@babel/types": "7.1.6", + "jsesc": "2.5.2", + "lodash": "4.17.11", + "source-map": "0.5.7", + "trim-right": "1.0.1" }, "dependencies": { "jsesc": { @@ -36,9 +36,9 @@ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", "requires": { - "@babel/helper-get-function-arity": "^7.0.0", - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0" + "@babel/helper-get-function-arity": "7.0.0", + "@babel/template": "7.1.2", + "@babel/types": "7.1.6" } }, "@babel/helper-get-function-arity": { @@ -46,7 +46,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", "requires": { - "@babel/types": "^7.0.0" + "@babel/types": "7.1.6" } }, "@babel/helper-split-export-declaration": { @@ -54,7 +54,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", "requires": { - "@babel/types": "^7.0.0" + "@babel/types": "7.1.6" } }, "@babel/highlight": { @@ -62,9 +62,9 @@ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" + "chalk": "2.4.1", + "esutils": "2.0.2", + "js-tokens": "4.0.0" }, "dependencies": { "js-tokens": { @@ -84,9 +84,9 @@ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.1.2.tgz", "integrity": "sha512-SY1MmplssORfFiLDcOETrW7fCLl+PavlwMh92rrGcikQaRq4iWPVH0MpwPpY3etVMx6RnDjXtr6VZYr/IbP/Ag==", "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.1.2", - "@babel/types": "^7.1.2" + "@babel/code-frame": "7.0.0", + "@babel/parser": "7.1.6", + "@babel/types": "7.1.6" } }, "@babel/traverse": { @@ -94,15 +94,15 @@ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.1.6.tgz", "integrity": "sha512-CXedit6GpISz3sC2k2FsGCUpOhUqKdyL0lqNrImQojagnUMXf8hex4AxYFRuMkNGcvJX5QAFGzB5WJQmSv8SiQ==", "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.1.6", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.0.0", - "@babel/parser": "^7.1.6", - "@babel/types": "^7.1.6", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.10" + "@babel/code-frame": "7.0.0", + "@babel/generator": "7.1.6", + "@babel/helper-function-name": "7.1.0", + "@babel/helper-split-export-declaration": "7.0.0", + "@babel/parser": "7.1.6", + "@babel/types": "7.1.6", + "debug": "4.1.0", + "globals": "11.9.0", + "lodash": "4.17.11" }, "dependencies": { "debug": { @@ -110,7 +110,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", "requires": { - "ms": "^2.1.1" + "ms": "2.1.1" } }, "globals": { @@ -130,9 +130,9 @@ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.1.6.tgz", "integrity": "sha512-DMiUzlY9DSjVsOylJssxLHSgj6tWM9PRFJOGW/RaOglVOK9nzTxoOMfTfRQXGUCUQ/HmlG2efwC+XqUEJ5ay4w==", "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.10", - "to-fast-properties": "^2.0.0" + "esutils": "2.0.2", + "lodash": "4.17.11", + "to-fast-properties": "2.0.0" }, "dependencies": { "to-fast-properties": { @@ -163,7 +163,7 @@ "integrity": "sha512-5x2kFgJYupaF1ns/RmharQ90lQkd2ELS8A9X0ymkAAdemYHGtI2KiUHG8nX2WU0T1qgnOU5YMqnBM2V7NUanNw==", "dev": true, "requires": { - "array-from": "^2.1.1" + "array-from": "2.1.1" } }, "@types/node": { @@ -182,7 +182,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "requires": { - "mime-types": "~2.1.18", + "mime-types": "2.1.21", "negotiator": "0.6.1" } }, @@ -196,7 +196,7 @@ "resolved": "http://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "requires": { - "acorn": "^3.0.4" + "acorn": "3.3.0" }, "dependencies": { "acorn": { @@ -217,8 +217,8 @@ "integrity": "sha1-iINE2tAiCnLjr1CQYRf0h3GSX6w=", "dev": true, "requires": { - "clean-stack": "^1.0.0", - "indent-string": "^3.0.0" + "clean-stack": "1.3.0", + "indent-string": "3.2.0" } }, "ajv": { @@ -226,10 +226,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" } }, "ajv-keywords": { @@ -239,7 +239,7 @@ }, "ansi-escapes": { "version": "3.1.0", - "resolved": "http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==" }, "ansi-regex": { @@ -258,8 +258,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "optional": true, "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" + "micromatch": "2.3.11", + "normalize-path": "2.1.1" } }, "argparse": { @@ -267,7 +267,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "~1.0.2" + "sprintf-js": "1.0.3" } }, "arr-diff": { @@ -276,7 +276,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "optional": true, "requires": { - "arr-flatten": "^1.0.1" + "arr-flatten": "1.1.0" } }, "arr-flatten": { @@ -300,8 +300,8 @@ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.7.0" + "define-properties": "1.1.3", + "es-abstract": "1.12.0" } }, "array-unique": { @@ -321,7 +321,7 @@ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, "requires": { - "safer-buffer": "~2.1.0" + "safer-buffer": "2.1.2" } }, "assert": { @@ -394,8 +394,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=", "requires": { - "follow-redirects": "^1.2.5", - "is-buffer": "^1.1.5" + "follow-redirects": "1.5.10", + "is-buffer": "1.1.6" } }, "babel-cli": { @@ -403,21 +403,21 @@ "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", "requires": { - "babel-core": "^6.26.0", - "babel-polyfill": "^6.26.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "chokidar": "^1.6.1", - "commander": "^2.11.0", - "convert-source-map": "^1.5.0", - "fs-readdir-recursive": "^1.0.0", - "glob": "^7.1.2", - "lodash": "^4.17.4", - "output-file-sync": "^1.1.2", - "path-is-absolute": "^1.0.1", - "slash": "^1.0.0", - "source-map": "^0.5.6", - "v8flags": "^2.1.1" + "babel-core": "6.26.3", + "babel-polyfill": "6.26.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "chokidar": "1.7.0", + "commander": "2.19.0", + "convert-source-map": "1.6.0", + "fs-readdir-recursive": "1.1.0", + "glob": "7.1.3", + "lodash": "4.17.11", + "output-file-sync": "1.1.2", + "path-is-absolute": "1.0.1", + "slash": "1.0.0", + "source-map": "0.5.7", + "v8flags": "2.1.1" } }, "babel-code-frame": { @@ -425,9 +425,9 @@ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" }, "dependencies": { "chalk": { @@ -435,11 +435,11 @@ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { - "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" + "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" } } } @@ -449,25 +449,25 @@ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.1", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.6.0", + "debug": "2.6.9", + "json5": "0.5.1", + "lodash": "4.17.11", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "slash": "1.0.0", + "source-map": "0.5.7" }, "dependencies": { "debug": { @@ -485,14 +485,14 @@ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.11", + "source-map": "0.5.7", + "trim-right": "1.0.1" } }, "babel-helper-builder-binary-assignment-operator-visitor": { @@ -500,9 +500,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "requires": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-explode-assignable-expression": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-builder-react-jsx": { @@ -510,9 +510,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "esutils": "^2.0.2" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "esutils": "2.0.2" } }, "babel-helper-call-delegate": { @@ -520,10 +520,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-define-map": { @@ -531,10 +531,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.11" } }, "babel-helper-explode-assignable-expression": { @@ -542,9 +542,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-function-name": { @@ -552,11 +552,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "requires": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-get-function-arity": { @@ -564,8 +564,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-hoist-variables": { @@ -573,8 +573,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-optimise-call-expression": { @@ -582,8 +582,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-regex": { @@ -591,9 +591,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.11" } }, "babel-helper-remap-async-to-generator": { @@ -601,11 +601,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-replace-supers": { @@ -613,12 +613,12 @@ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "requires": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-optimise-call-expression": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helpers": { @@ -626,8 +626,8 @@ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-messages": { @@ -635,7 +635,7 @@ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-check-es2015-constants": { @@ -643,7 +643,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-syntax-async-functions": { @@ -676,9 +676,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-functions": "6.13.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-arrow-functions": { @@ -686,7 +686,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -694,7 +694,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -702,11 +702,11 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "requires": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.11" } }, "babel-plugin-transform-es2015-classes": { @@ -714,15 +714,15 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "requires": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-define-map": "6.26.0", + "babel-helper-function-name": "6.24.1", + "babel-helper-optimise-call-expression": "6.24.1", + "babel-helper-replace-supers": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-computed-properties": { @@ -730,8 +730,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-destructuring": { @@ -739,7 +739,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -747,8 +747,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-for-of": { @@ -756,7 +756,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -764,9 +764,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-literals": { @@ -774,7 +774,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -782,9 +782,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -792,10 +792,10 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-modules-systemjs": { @@ -803,9 +803,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-modules-umd": { @@ -813,9 +813,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "requires": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-object-super": { @@ -823,8 +823,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "requires": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" + "babel-helper-replace-supers": "6.24.1", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -832,12 +832,12 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "requires": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-call-delegate": "6.24.1", + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-shorthand-properties": { @@ -845,8 +845,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-spread": { @@ -854,7 +854,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -862,9 +862,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-template-literals": { @@ -872,7 +872,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -880,7 +880,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -888,9 +888,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "regexpu-core": "2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -898,9 +898,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", + "babel-plugin-syntax-exponentiation-operator": "6.13.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-flow-strip-types": { @@ -908,8 +908,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", "requires": { - "babel-plugin-syntax-flow": "^6.18.0", - "babel-runtime": "^6.22.0" + "babel-plugin-syntax-flow": "6.18.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-react-display-name": { @@ -917,7 +917,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-react-jsx": { @@ -925,9 +925,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", "requires": { - "babel-helper-builder-react-jsx": "^6.24.1", - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-builder-react-jsx": "6.26.0", + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-react-jsx-self": { @@ -935,8 +935,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", "requires": { - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-react-jsx-source": { @@ -944,8 +944,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", "requires": { - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-regenerator": { @@ -953,7 +953,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "requires": { - "regenerator-transform": "^0.10.0" + "regenerator-transform": "0.10.1" } }, "babel-plugin-transform-strict-mode": { @@ -961,8 +961,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-polyfill": { @@ -970,9 +970,9 @@ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "requires": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" + "babel-runtime": "6.26.0", + "core-js": "2.5.7", + "regenerator-runtime": "0.10.5" }, "dependencies": { "regenerator-runtime": { @@ -987,36 +987,36 @@ "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-to-generator": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.23.0", - "babel-plugin-transform-es2015-classes": "^6.23.0", - "babel-plugin-transform-es2015-computed-properties": "^6.22.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", - "babel-plugin-transform-es2015-for-of": "^6.23.0", - "babel-plugin-transform-es2015-function-name": "^6.22.0", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.22.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-umd": "^6.23.0", - "babel-plugin-transform-es2015-object-super": "^6.22.0", - "babel-plugin-transform-es2015-parameters": "^6.23.0", - "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", - "babel-plugin-transform-exponentiation-operator": "^6.22.0", - "babel-plugin-transform-regenerator": "^6.22.0", - "browserslist": "^3.2.6", - "invariant": "^2.2.2", - "semver": "^5.3.0" + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-async-to-generator": "6.24.1", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-exponentiation-operator": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0", + "browserslist": "3.2.8", + "invariant": "2.2.4", + "semver": "5.6.0" } }, "babel-preset-es2015": { @@ -1024,30 +1024,30 @@ "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.24.1", - "babel-plugin-transform-es2015-classes": "^6.24.1", - "babel-plugin-transform-es2015-computed-properties": "^6.24.1", - "babel-plugin-transform-es2015-destructuring": "^6.22.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", - "babel-plugin-transform-es2015-for-of": "^6.22.0", - "babel-plugin-transform-es2015-function-name": "^6.24.1", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-umd": "^6.24.1", - "babel-plugin-transform-es2015-object-super": "^6.24.1", - "babel-plugin-transform-es2015-parameters": "^6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", - "babel-plugin-transform-regenerator": "^6.24.1" + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0" } }, "babel-preset-flow": { @@ -1055,7 +1055,7 @@ "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", "requires": { - "babel-plugin-transform-flow-strip-types": "^6.22.0" + "babel-plugin-transform-flow-strip-types": "6.22.0" } }, "babel-preset-react": { @@ -1063,12 +1063,12 @@ "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", "requires": { - "babel-plugin-syntax-jsx": "^6.3.13", - "babel-plugin-transform-react-display-name": "^6.23.0", - "babel-plugin-transform-react-jsx": "^6.24.1", - "babel-plugin-transform-react-jsx-self": "^6.22.0", - "babel-plugin-transform-react-jsx-source": "^6.22.0", - "babel-preset-flow": "^6.23.0" + "babel-plugin-syntax-jsx": "6.18.0", + "babel-plugin-transform-react-display-name": "6.25.0", + "babel-plugin-transform-react-jsx": "6.24.1", + "babel-plugin-transform-react-jsx-self": "6.22.0", + "babel-plugin-transform-react-jsx-source": "6.22.0", + "babel-preset-flow": "6.23.0" } }, "babel-register": { @@ -1076,13 +1076,13 @@ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" + "babel-core": "6.26.3", + "babel-runtime": "6.26.0", + "core-js": "2.5.7", + "home-or-tmp": "2.0.0", + "lodash": "4.17.11", + "mkdirp": "0.5.1", + "source-map-support": "0.4.18" } }, "babel-runtime": { @@ -1090,8 +1090,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "babel-template": { @@ -1099,11 +1099,11 @@ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.11" } }, "babel-traverse": { @@ -1111,15 +1111,15 @@ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.4", + "lodash": "4.17.11" }, "dependencies": { "debug": { @@ -1137,10 +1137,10 @@ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.11", + "to-fast-properties": "1.0.3" } }, "babylon": { @@ -1163,13 +1163,13 @@ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "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.2.0", - "pascalcase": "^0.1.1" + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" }, "dependencies": { "define-property": { @@ -1177,7 +1177,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -1185,7 +1185,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -1193,7 +1193,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -1201,9 +1201,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -1223,7 +1223,7 @@ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.5.tgz", "integrity": "sha512-C3picSgzPSLE+jW3tcBzJoGwitOtazb5B+5YmAxZm2ybmTi9LNgAtDO/jjVEBZwHoXmDBZ9m/IELj3elJVRBcA==", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "base64-arraybuffer": { @@ -1259,11 +1259,10 @@ }, "bch-wallet-bridge.js": { "version": "github:web3bch/bch-wallet-bridge.js#f73558eaf3a98ba2a23de3c9cbbd582b30ff19eb", - "from": "github:web3bch/bch-wallet-bridge.js#master", "requires": { - "bch-wallet-bridge-provider-interface": "^0.1.1", - "bchaddrjs": "^0.2.2", - "bitcoincashjs": "^0.1.10" + "bch-wallet-bridge-provider-interface": "0.1.1", + "bchaddrjs": "0.2.3", + "bitcoincashjs": "0.1.14" } }, "bchaddrjs": { @@ -1271,8 +1270,8 @@ "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.3.tgz", "integrity": "sha512-0DVW8q3UFQFhrvt8Fowpkk+WvkYTZTSD1vGCQHrtMHZjRL6G/SoW0mgrREmgO1F/8TJ+Julri4UBWA8Gr7C5Yw==", "requires": { - "bs58check": "^2.1.2", - "cashaddrjs": "^0.2.9" + "bs58check": "2.1.2", + "cashaddrjs": "0.2.9" } }, "bcrypt-pbkdf": { @@ -1281,7 +1280,7 @@ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, "requires": { - "tweetnacl": "^0.14.3" + "tweetnacl": "0.14.5" } }, "bech32": { @@ -1325,19 +1324,17 @@ }, "bip21": { "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "from": "github:Bitcoin-com/bip21", "requires": { - "qs": "^6.3.0" + "qs": "6.6.0" } }, "bip32-utils": { "version": "github:Bitcoin-com/bip32-utils#966fb8f0e0d4c667e4ee89adfa20c2078d66887c", - "from": "github:Bitcoin-com/bip32-utils#0.13.0", "requires": { - "keccak": "^1.3.0", - "nyc": "*", - "standard": "^11.0.1", - "tape": "*" + "keccak": "1.4.0", + "nyc": "13.1.0", + "standard": "11.0.1", + "tape": "4.9.1" }, "dependencies": { "nyc": { @@ -1345,40 +1342,40 @@ "resolved": "https://registry.npmjs.org/nyc/-/nyc-13.1.0.tgz", "integrity": "sha512-3GyY6TpQ58z9Frpv4GMExE1SV2tAgYqC7HSy2omEhNiCT3mhT9NyiOvIE8zkbuJVFzmvvNTnE4h/7/wQae7xLg==", "requires": { - "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^2.0.0", - "convert-source-map": "^1.6.0", - "debug-log": "^1.0.1", - "find-cache-dir": "^2.0.0", - "find-up": "^3.0.0", - "foreground-child": "^1.5.6", - "glob": "^7.1.3", - "istanbul-lib-coverage": "^2.0.1", - "istanbul-lib-hook": "^2.0.1", - "istanbul-lib-instrument": "^3.0.0", - "istanbul-lib-report": "^2.0.2", - "istanbul-lib-source-maps": "^2.0.1", - "istanbul-reports": "^2.0.1", - "make-dir": "^1.3.0", - "merge-source-map": "^1.1.0", - "resolve-from": "^4.0.0", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "spawn-wrap": "^1.4.2", - "test-exclude": "^5.0.0", - "uuid": "^3.3.2", + "archy": "1.0.0", + "arrify": "1.0.1", + "caching-transform": "2.0.0", + "convert-source-map": "1.6.0", + "debug-log": "1.0.1", + "find-cache-dir": "2.0.0", + "find-up": "3.0.0", + "foreground-child": "1.5.6", + "glob": "7.1.3", + "istanbul-lib-coverage": "2.0.1", + "istanbul-lib-hook": "2.0.1", + "istanbul-lib-instrument": "3.0.0", + "istanbul-lib-report": "2.0.2", + "istanbul-lib-source-maps": "2.0.1", + "istanbul-reports": "2.0.1", + "make-dir": "1.3.0", + "merge-source-map": "1.1.0", + "resolve-from": "4.0.0", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "spawn-wrap": "1.4.2", + "test-exclude": "5.0.0", + "uuid": "3.3.2", "yargs": "11.1.0", - "yargs-parser": "^9.0.2" + "yargs-parser": "9.0.2" }, "dependencies": { "align-text": { "version": "0.1.4", "bundled": true, "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" } }, "amdefine": { @@ -1393,7 +1390,7 @@ "version": "1.0.0", "bundled": true, "requires": { - "default-require-extensions": "^2.0.0" + "default-require-extensions": "2.0.0" } }, "archy": { @@ -1416,7 +1413,7 @@ "version": "1.1.11", "bundled": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -1428,10 +1425,10 @@ "version": "2.0.0", "bundled": true, "requires": { - "make-dir": "^1.0.0", - "md5-hex": "^2.0.0", - "package-hash": "^2.0.0", - "write-file-atomic": "^2.0.0" + "make-dir": "1.3.0", + "md5-hex": "2.0.0", + "package-hash": "2.0.0", + "write-file-atomic": "2.3.0" } }, "camelcase": { @@ -1444,8 +1441,8 @@ "bundled": true, "optional": true, "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" + "align-text": "0.1.4", + "lazy-cache": "1.0.4" } }, "cliui": { @@ -1453,8 +1450,8 @@ "bundled": true, "optional": true, "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", + "center-align": "0.1.3", + "right-align": "0.1.3", "wordwrap": "0.0.2" }, "dependencies": { @@ -1481,15 +1478,15 @@ "version": "1.6.0", "bundled": true, "requires": { - "safe-buffer": "~5.1.1" + "safe-buffer": "5.1.2" } }, "cross-spawn": { "version": "4.0.2", "bundled": true, "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "which": "1.3.1" } }, "debug": { @@ -1511,14 +1508,14 @@ "version": "2.0.0", "bundled": true, "requires": { - "strip-bom": "^3.0.0" + "strip-bom": "3.0.0" } }, "error-ex": { "version": "1.3.2", "bundled": true, "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "es6-error": { @@ -1529,22 +1526,22 @@ "version": "0.7.0", "bundled": true, "requires": { - "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" + "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" }, "dependencies": { "cross-spawn": { "version": "5.1.0", "bundled": true, "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.1" } } } @@ -1553,24 +1550,24 @@ "version": "2.0.0", "bundled": true, "requires": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^3.0.0" + "commondir": "1.0.1", + "make-dir": "1.3.0", + "pkg-dir": "3.0.0" } }, "find-up": { "version": "3.0.0", "bundled": true, "requires": { - "locate-path": "^3.0.0" + "locate-path": "3.0.0" } }, "foreground-child": { "version": "1.5.6", "bundled": true, "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" + "cross-spawn": "4.0.2", + "signal-exit": "3.0.2" } }, "fs.realpath": { @@ -1589,12 +1586,12 @@ "version": "7.1.3", "bundled": true, "requires": { - "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" + "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": { @@ -1605,17 +1602,17 @@ "version": "4.0.11", "bundled": true, "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" }, "dependencies": { "source-map": { "version": "0.4.4", "bundled": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } @@ -1636,8 +1633,8 @@ "version": "1.0.6", "bundled": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -1660,7 +1657,7 @@ "version": "1.0.0", "bundled": true, "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-fullwidth-code-point": { @@ -1683,27 +1680,27 @@ "version": "2.0.1", "bundled": true, "requires": { - "append-transform": "^1.0.0" + "append-transform": "1.0.0" } }, "istanbul-lib-report": { "version": "2.0.2", "bundled": true, "requires": { - "istanbul-lib-coverage": "^2.0.1", - "make-dir": "^1.3.0", - "supports-color": "^5.4.0" + "istanbul-lib-coverage": "2.0.1", + "make-dir": "1.3.0", + "supports-color": "5.4.0" } }, "istanbul-lib-source-maps": { "version": "2.0.1", "bundled": true, "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^2.0.1", - "make-dir": "^1.3.0", - "rimraf": "^2.6.2", - "source-map": "^0.6.1" + "debug": "3.1.0", + "istanbul-lib-coverage": "2.0.1", + "make-dir": "1.3.0", + "rimraf": "2.6.2", + "source-map": "0.6.1" }, "dependencies": { "source-map": { @@ -1716,7 +1713,7 @@ "version": "2.0.1", "bundled": true, "requires": { - "handlebars": "^4.0.11" + "handlebars": "4.0.11" } }, "json-parse-better-errors": { @@ -1727,7 +1724,7 @@ "version": "3.2.2", "bundled": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "lazy-cache": { @@ -1739,25 +1736,25 @@ "version": "1.0.0", "bundled": true, "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "load-json-file": { "version": "4.0.0", "bundled": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.11", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" } }, "locate-path": { "version": "3.0.0", "bundled": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "3.0.0", + "path-exists": "3.0.0" } }, "lodash.flattendeep": { @@ -1772,22 +1769,22 @@ "version": "4.1.3", "bundled": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "make-dir": { "version": "1.3.0", "bundled": true, "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "md5-hex": { "version": "2.0.0", "bundled": true, "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "md5-o-matic": { @@ -1798,14 +1795,14 @@ "version": "1.1.0", "bundled": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "merge-source-map": { "version": "1.1.0", "bundled": true, "requires": { - "source-map": "^0.6.1" + "source-map": "0.6.1" }, "dependencies": { "source-map": { @@ -1822,7 +1819,7 @@ "version": "3.0.4", "bundled": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -1850,17 +1847,17 @@ "version": "2.4.0", "bundled": true, "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.7.1", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" } }, "npm-run-path": { "version": "2.0.2", "bundled": true, "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { @@ -1871,15 +1868,15 @@ "version": "1.4.0", "bundled": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "optimist": { "version": "0.6.1", "bundled": true, "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" + "minimist": "0.0.10", + "wordwrap": "0.0.3" } }, "os-homedir": { @@ -1890,9 +1887,9 @@ "version": "2.1.0", "bundled": 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" } }, "p-finally": { @@ -1903,14 +1900,14 @@ "version": "2.0.0", "bundled": true, "requires": { - "p-try": "^2.0.0" + "p-try": "2.0.0" } }, "p-locate": { "version": "3.0.0", "bundled": true, "requires": { - "p-limit": "^2.0.0" + "p-limit": "2.0.0" } }, "p-try": { @@ -1921,18 +1918,18 @@ "version": "2.0.0", "bundled": true, "requires": { - "graceful-fs": "^4.1.11", - "lodash.flattendeep": "^4.4.0", - "md5-hex": "^2.0.0", - "release-zalgo": "^1.0.0" + "graceful-fs": "4.1.11", + "lodash.flattendeep": "4.4.0", + "md5-hex": "2.0.0", + "release-zalgo": "1.0.0" } }, "parse-json": { "version": "4.0.0", "bundled": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" } }, "path-exists": { @@ -1951,7 +1948,7 @@ "version": "3.0.0", "bundled": true, "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "pify": { @@ -1962,7 +1959,7 @@ "version": "3.0.0", "bundled": true, "requires": { - "find-up": "^3.0.0" + "find-up": "3.0.0" } }, "pseudomap": { @@ -1973,24 +1970,24 @@ "version": "3.0.0", "bundled": true, "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" + "load-json-file": "4.0.0", + "normalize-package-data": "2.4.0", + "path-type": "3.0.0" } }, "read-pkg-up": { "version": "4.0.0", "bundled": true, "requires": { - "find-up": "^3.0.0", - "read-pkg": "^3.0.0" + "find-up": "3.0.0", + "read-pkg": "3.0.0" } }, "release-zalgo": { "version": "1.0.0", "bundled": true, "requires": { - "es6-error": "^4.0.1" + "es6-error": "4.1.1" } }, "repeat-string": { @@ -2014,14 +2011,14 @@ "bundled": true, "optional": true, "requires": { - "align-text": "^0.1.1" + "align-text": "0.1.4" } }, "rimraf": { "version": "2.6.2", "bundled": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.3" } }, "safe-buffer": { @@ -2040,7 +2037,7 @@ "version": "1.2.0", "bundled": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -2060,20 +2057,20 @@ "version": "1.4.2", "bundled": true, "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" + "foreground-child": "1.5.6", + "mkdirp": "0.5.1", + "os-homedir": "1.0.2", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "which": "1.3.1" } }, "spdx-correct": { "version": "3.0.0", "bundled": true, "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, "spdx-exceptions": { @@ -2084,8 +2081,8 @@ "version": "3.0.0", "bundled": true, "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" } }, "spdx-license-ids": { @@ -2096,15 +2093,15 @@ "version": "2.1.1", "bundled": 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": { "version": "4.0.0", "bundled": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } }, "strip-bom": { @@ -2119,17 +2116,17 @@ "version": "5.4.0", "bundled": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } }, "test-exclude": { "version": "5.0.0", "bundled": true, "requires": { - "arrify": "^1.0.1", - "minimatch": "^3.0.4", - "read-pkg-up": "^4.0.0", - "require-main-filename": "^1.0.1" + "arrify": "1.0.1", + "minimatch": "3.0.4", + "read-pkg-up": "4.0.0", + "require-main-filename": "1.0.1" } }, "uglify-js": { @@ -2137,9 +2134,9 @@ "bundled": true, "optional": true, "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" }, "dependencies": { "yargs": { @@ -2147,9 +2144,9 @@ "bundled": true, "optional": true, "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", "window-size": "0.1.0" } } @@ -2168,15 +2165,15 @@ "version": "3.0.3", "bundled": true, "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "which": { "version": "1.3.1", "bundled": true, "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -2196,8 +2193,8 @@ "version": "2.1.0", "bundled": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "ansi-regex": { @@ -2208,23 +2205,23 @@ "version": "1.0.0", "bundled": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "string-width": { "version": "1.0.2", "bundled": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "strip-ansi": { "version": "3.0.1", "bundled": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } } } @@ -2237,9 +2234,9 @@ "version": "2.3.0", "bundled": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "signal-exit": "3.0.2" } }, "y18n": { @@ -2254,56 +2251,56 @@ "version": "11.1.0", "bundled": true, "requires": { - "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": "^9.0.2" + "cliui": "4.1.0", + "decamelize": "1.2.0", + "find-up": "2.1.0", + "get-caller-file": "1.0.3", + "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": "9.0.2" }, "dependencies": { "cliui": { "version": "4.1.0", "bundled": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" } }, "find-up": { "version": "2.1.0", "bundled": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "locate-path": { "version": "2.0.0", "bundled": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "2.0.0", + "path-exists": "3.0.0" } }, "p-limit": { "version": "1.3.0", "bundled": true, "requires": { - "p-try": "^1.0.0" + "p-try": "1.0.0" } }, "p-locate": { "version": "2.0.0", "bundled": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.3.0" } }, "p-try": { @@ -2316,7 +2313,7 @@ "version": "9.0.2", "bundled": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" }, "dependencies": { "camelcase": { @@ -2334,13 +2331,13 @@ "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", "integrity": "sha512-22KDak0RDyghFbR0Si7wyq9IgY423YzGYzWLpGeofH3DaolOQqjD3mNN08eFoubKlbyclOQKFwtONMv2SD9V3A==", "requires": { - "bigi": "^1.2.0", - "browserify-aes": "^1.0.1", - "bs58check": "<3.0.0", - "buffer-xor": "^1.0.2", - "create-hash": "^1.1.1", - "ecurve": "^1.0.0", - "scryptsy": "^2.0.0" + "bigi": "1.4.2", + "browserify-aes": "1.2.0", + "bs58check": "2.1.2", + "buffer-xor": "1.0.3", + "create-hash": "1.2.0", + "ecurve": "1.0.6", + "scryptsy": "2.0.0" } }, "bip39": { @@ -2348,11 +2345,11 @@ "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", "requires": { - "create-hash": "^1.1.0", - "pbkdf2": "^3.0.9", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "unorm": "^1.3.3" + "create-hash": "1.2.0", + "pbkdf2": "3.0.17", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2", + "unorm": "1.4.1" } }, "bip66": { @@ -2360,19 +2357,18 @@ "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "bitcoin-ops": { - "version": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646", - "from": "github:Bitcoin-com/bitcoincash-ops#1.5.0" + "version": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646" }, "bitcoin-txdecoder": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/bitcoin-txdecoder/-/bitcoin-txdecoder-0.0.3.tgz", "integrity": "sha512-pH/eF5hQ65y54U23mzuF42wEj9YWj4WKHAIj2il6b1+oRoi/oyM4Ti3e8nMD8ajippICmyquqbyCZKGq3i4W+A==", "requires": { - "bitcoinjs-lib": "3.3.*" + "bitcoinjs-lib": "3.3.2" } }, "bitcoincashjs": { @@ -2382,23 +2378,22 @@ }, "bitcoincashjs-lib": { "version": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", - "from": "github:Bitcoin-com/bitcoincashjs-lib#3.3.4", - "requires": { - "bech32": "^1.1.2", - "bigi": "^1.4.0", - "bip66": "^1.1.0", - "bitcoin-ops": "^1.3.0", - "bs58check": "^2.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.3", - "ecurve": "^1.0.0", - "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "^1.0.1", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "typeforce": "^1.11.3", - "varuint-bitcoin": "^1.0.4", - "wif": "^2.0.1" + "requires": { + "bech32": "1.1.3", + "bigi": "1.4.2", + "bip66": "1.1.5", + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646", + "bs58check": "2.1.2", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ecurve": "1.0.6", + "merkle-lib": "2.0.10", + "pushdata-bitcoin": "1.0.1", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2", + "typeforce": "1.16.0", + "varuint-bitcoin": "1.1.0", + "wif": "2.0.6" } }, "bitcoinjs-lib": { @@ -2406,21 +2401,21 @@ "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-3.3.2.tgz", "integrity": "sha512-l5qqvbaK8wwtANPf6oEffykycg4383XgEYdia1rI7/JpGf1jfRWlOUCvx5TiTZS7kyIvY4j/UhIQ2urLsvGkzw==", "requires": { - "bech32": "^1.1.2", - "bigi": "^1.4.0", - "bip66": "^1.1.0", - "bitcoin-ops": "^1.3.0", - "bs58check": "^2.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.3", - "ecurve": "^1.0.0", - "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "^1.0.1", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "typeforce": "^1.11.3", - "varuint-bitcoin": "^1.0.4", - "wif": "^2.0.1" + "bech32": "1.1.3", + "bigi": "1.4.2", + "bip66": "1.1.5", + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646", + "bs58check": "2.1.2", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ecurve": "1.0.6", + "merkle-lib": "2.0.10", + "pushdata-bitcoin": "1.0.1", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2", + "typeforce": "1.16.0", + "varuint-bitcoin": "1.1.0", + "wif": "2.0.6" } }, "bitcoinjs-message": { @@ -2428,11 +2423,11 @@ "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", "requires": { - "bs58check": "^2.0.2", - "buffer-equals": "^1.0.3", - "create-hash": "^1.1.2", - "secp256k1": "^3.0.1", - "varuint-bitcoin": "^1.0.1" + "bs58check": "2.1.2", + "buffer-equals": "1.0.4", + "create-hash": "1.2.0", + "secp256k1": "3.5.2", + "varuint-bitcoin": "1.1.0" } }, "blob": { @@ -2450,7 +2445,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -2460,9 +2455,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "optional": true, "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.3" } }, "brorand": { @@ -2481,12 +2476,12 @@ "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "buffer-xor": "1.0.3", + "cipher-base": "1.0.4", + "create-hash": "1.2.0", + "evp_bytestokey": "1.0.3", + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "browserslist": { @@ -2494,8 +2489,8 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "requires": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" + "caniuse-lite": "1.0.30000912", + "electron-to-chromium": "1.3.85" } }, "bs58": { @@ -2503,7 +2498,7 @@ "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", "requires": { - "base-x": "^3.0.2" + "base-x": "3.0.5" } }, "bs58check": { @@ -2511,9 +2506,9 @@ "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" + "bs58": "4.0.1", + "create-hash": "1.2.0", + "safe-buffer": "5.1.2" } }, "buffer": { @@ -2521,8 +2516,8 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" + "base64-js": "1.3.0", + "ieee754": "1.1.12" } }, "buffer-equals": { @@ -2550,15 +2545,15 @@ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "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" }, "dependencies": { "isobject": { @@ -2596,7 +2591,7 @@ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "requires": { - "callsites": "^0.2.0" + "callsites": "0.2.0" } }, "callsite": { @@ -2606,7 +2601,7 @@ }, "callsites": { "version": "0.2.0", - "resolved": "http://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=" }, "camelcase": { @@ -2619,7 +2614,7 @@ "resolved": "https://registry.npmjs.org/can-promise/-/can-promise-0.0.1.tgz", "integrity": "sha512-gzVrHyyrvgt0YpDm7pn04MQt8gjh0ZAhN4ZDyCRtGl6YnuuK6b4aiUTD7G52r9l4YNmxfTtEscb92vxtAlL6XQ==", "requires": { - "window-or-global": "^1.0.1" + "window-or-global": "1.0.1" } }, "caniuse-lite": { @@ -2638,7 +2633,7 @@ "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.2.9.tgz", "integrity": "sha512-DhJF4iAH0/RM3UjHDHKRxzs09YGL9px+oTyizzydanhC7jTyM2aJ+aLKA96vZGTTWayvvr2iDF2l13lpqXiRFg==", "requires": { - "big-integer": "^1.6.34" + "big-integer": "1.6.36" } }, "chai": { @@ -2647,12 +2642,12 @@ "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", "dev": true, "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.0", - "type-detect": "^4.0.5" + "assertion-error": "1.1.0", + "check-error": "1.0.2", + "deep-eql": "3.0.1", + "get-func-name": "2.0.0", + "pathval": "1.1.0", + "type-detect": "4.0.8" } }, "chalk": { @@ -2660,9 +2655,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" }, "dependencies": { "ansi-styles": { @@ -2670,7 +2665,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "color-convert": "^1.9.0" + "color-convert": "1.9.3" } }, "supports-color": { @@ -2678,7 +2673,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -2700,15 +2695,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "optional": true, "requires": { - "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" + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.2.4", + "glob-parent": "2.0.0", + "inherits": "2.0.1", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.2.1" } }, "cipher-base": { @@ -2716,8 +2711,8 @@ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "circular-json": { @@ -2730,10 +2725,10 @@ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" }, "dependencies": { "define-property": { @@ -2741,7 +2736,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "isobject": { @@ -2767,7 +2762,7 @@ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { - "restore-cursor": "^2.0.0" + "restore-cursor": "2.0.0" } }, "cli-width": { @@ -2780,9 +2775,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" }, "dependencies": { "is-fullwidth-code-point": { @@ -2790,7 +2785,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.0" + "number-is-nan": "1.0.1" } }, "string-width": { @@ -2798,9 +2793,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -2811,7 +2806,7 @@ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "dev": true, "requires": { - "mimic-response": "^1.0.0" + "mimic-response": "1.0.1" } }, "co": { @@ -2826,9 +2821,8 @@ }, "coininfo": { "version": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", - "from": "github:Bitcoin-com/coininfo", "requires": { - "safe-buffer": "^5.1.1" + "safe-buffer": "5.1.2" } }, "collection-visit": { @@ -2836,8 +2830,8 @@ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "map-visit": "1.0.0", + "object-visit": "1.0.1" } }, "color-convert": { @@ -2859,7 +2853,7 @@ "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", "dev": true, "requires": { - "delayed-stream": "~1.0.0" + "delayed-stream": "1.0.0" } }, "commander": { @@ -2892,10 +2886,10 @@ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "buffer-from": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "typedarray": "0.0.6" }, "dependencies": { "inherits": { @@ -2915,7 +2909,7 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", "requires": { - "safe-buffer": "~5.1.1" + "safe-buffer": "5.1.2" } }, "cookie": { @@ -2950,12 +2944,12 @@ "integrity": "sha512-Tv0LKe/MkBOilH2v7WBiTBdudg2ChfGbdXafc/s330djpF3zKOmuehTeRwjXWc7pzfj9FrDUTA7tEx6Div8NFw==", "dev": true, "requires": { - "growl": "~> 1.10.0", - "js-yaml": "^3.11.0", - "lcov-parse": "^0.0.10", - "log-driver": "^1.2.7", - "minimist": "^1.2.0", - "request": "^2.85.0" + "growl": "1.10.5", + "js-yaml": "3.12.0", + "lcov-parse": "0.0.10", + "log-driver": "1.2.7", + "minimist": "1.2.0", + "request": "2.88.0" }, "dependencies": { "minimist": { @@ -2971,11 +2965,11 @@ "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-5.0.0.tgz", "integrity": "sha1-vHAP0wyjLSTUbH+wK5kuQ1/FqXg=", "requires": { - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "nested-error-stacks": "^2.0.0", - "pify": "^3.0.0", - "safe-buffer": "^5.0.1" + "graceful-fs": "4.1.15", + "make-dir": "1.3.0", + "nested-error-stacks": "2.1.0", + "pify": "3.0.0", + "safe-buffer": "5.1.2" }, "dependencies": { "pify": { @@ -2990,11 +2984,11 @@ "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" + "cipher-base": "1.0.4", + "inherits": "2.0.1", + "md5.js": "1.3.5", + "ripemd160": "2.0.2", + "sha.js": "2.4.11" } }, "create-hmac": { @@ -3002,12 +2996,12 @@ "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "cipher-base": "1.0.4", + "create-hash": "1.2.0", + "inherits": "2.0.1", + "ripemd160": "2.0.2", + "safe-buffer": "5.1.2", + "sha.js": "2.4.11" } }, "cross-spawn": { @@ -3015,9 +3009,9 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.4", + "shebang-command": "1.2.0", + "which": "1.3.1" } }, "dashdash": { @@ -3026,7 +3020,7 @@ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "debug": { @@ -3039,7 +3033,7 @@ }, "debug-log": { "version": "1.0.1", - "resolved": "http://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=" }, "decamelize": { @@ -3058,7 +3052,7 @@ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "dev": true, "requires": { - "mimic-response": "^1.0.0" + "mimic-response": "1.0.1" } }, "deep-eql": { @@ -3067,7 +3061,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "^4.0.0" + "type-detect": "4.0.8" } }, "deep-equal": { @@ -3091,7 +3085,7 @@ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "requires": { - "object-keys": "^1.0.12" + "object-keys": "1.0.12" } }, "define-property": { @@ -3099,8 +3093,8 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "is-descriptor": "1.0.2", + "isobject": "3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -3108,7 +3102,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -3116,7 +3110,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -3124,9 +3118,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -3151,12 +3145,12 @@ "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.1.tgz", "integrity": "sha512-2kjwuGGonL7gWE1XU4Fv79+vVzpoQCl0V+boMwWtOQJV2AGDabCwez++nB1Nli/8BabAfZQ/UuHPlp6AymKdWw==", "requires": { - "find-root": "^1.0.0", - "glob": "^7.0.5", - "ignore": "^3.0.9", - "pkg-config": "^1.1.0", - "run-parallel": "^1.1.2", - "uniq": "^1.0.1" + "find-root": "1.1.0", + "glob": "7.1.3", + "ignore": "3.3.10", + "pkg-config": "1.1.1", + "run-parallel": "1.1.9", + "uniq": "1.0.1" } }, "delayed-stream": { @@ -3176,7 +3170,7 @@ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "diff": { @@ -3195,7 +3189,7 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "requires": { - "esutils": "^2.0.2" + "esutils": "2.0.2" } }, "drbg.js": { @@ -3203,9 +3197,9 @@ "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", "requires": { - "browserify-aes": "^1.0.6", - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4" + "browserify-aes": "1.2.0", + "create-hash": "1.2.0", + "create-hmac": "1.1.7" } }, "duplexer3": { @@ -3220,8 +3214,8 @@ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "jsbn": "0.1.1", + "safer-buffer": "2.1.2" } }, "ecurve": { @@ -3229,8 +3223,8 @@ "resolved": "https://registry.npmjs.org/ecurve/-/ecurve-1.0.6.tgz", "integrity": "sha512-/BzEjNfiSuB7jIWKcS/z8FK9jNjmEWvUV2YZ4RLSmcDtP7Lq0m6FvDuSnJpBlDpGRpfRQeTLGLBI8H+kEv0r+w==", "requires": { - "bigi": "^1.1.0", - "safe-buffer": "^5.0.1" + "bigi": "1.4.2", + "safe-buffer": "5.1.2" } }, "electron-to-chromium": { @@ -3243,13 +3237,13 @@ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" + "bn.js": "4.11.8", + "brorand": "1.1.0", + "hash.js": "1.1.5", + "hmac-drbg": "1.0.1", + "inherits": "2.0.1", + "minimalistic-assert": "1.0.1", + "minimalistic-crypto-utils": "1.0.1" } }, "engine.io": { @@ -3257,29 +3251,29 @@ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz", "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==", "requires": { - "accepts": "~1.3.4", + "accepts": "1.3.5", "base64id": "1.0.0", "cookie": "0.3.1", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.0", - "ws": "~3.3.1" + "debug": "3.1.0", + "engine.io-parser": "2.1.3", + "ws": "3.3.3" } }, "engine.io-client": { "version": "3.2.1", - "resolved": "http://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", "requires": { "component-emitter": "1.2.1", "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.1", + "debug": "3.1.0", + "engine.io-parser": "2.1.3", "has-cors": "1.1.0", "indexof": "0.0.1", "parseqs": "0.0.5", "parseuri": "0.0.5", - "ws": "~3.3.1", - "xmlhttprequest-ssl": "~1.5.4", + "ws": "3.3.3", + "xmlhttprequest-ssl": "1.5.5", "yeast": "0.1.2" } }, @@ -3289,10 +3283,10 @@ "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", "requires": { "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", + "arraybuffer.slice": "0.0.7", "base64-arraybuffer": "0.1.5", "blob": "0.0.5", - "has-binary2": "~1.0.2" + "has-binary2": "1.0.3" } }, "error-ex": { @@ -3300,7 +3294,7 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "es-abstract": { @@ -3308,11 +3302,11 @@ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", "requires": { - "es-to-primitive": "^1.1.1", - "function-bind": "^1.1.1", - "has": "^1.0.1", - "is-callable": "^1.1.3", - "is-regex": "^1.0.4" + "es-to-primitive": "1.2.0", + "function-bind": "1.1.1", + "has": "1.0.3", + "is-callable": "1.1.4", + "is-regex": "1.0.4" } }, "es-to-primitive": { @@ -3320,9 +3314,9 @@ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "is-callable": "1.1.4", + "is-date-object": "1.0.1", + "is-symbol": "1.0.2" } }, "es6-promise": { @@ -3342,44 +3336,44 @@ "integrity": "sha512-g4KWpPdqN0nth+goDNICNXGfJF7nNnepthp46CAlJoJtC5K/cLu3NgCM3AHu1CkJ5Hzt9V0Y0PBAO6Ay/gGb+w==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.5.3", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^2.1.0", - "eslint-scope": "^4.0.0", - "eslint-utils": "^1.3.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^4.0.0", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.7.0", - "ignore": "^4.0.6", - "imurmurhash": "^0.1.4", - "inquirer": "^6.1.0", - "is-resolvable": "^1.1.0", - "js-yaml": "^3.12.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.5", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "require-uncached": "^1.0.3", - "semver": "^5.5.1", - "strip-ansi": "^4.0.0", - "strip-json-comments": "^2.0.1", - "table": "^5.0.2", - "text-table": "^0.2.0" + "@babel/code-frame": "7.0.0", + "ajv": "6.5.5", + "chalk": "2.4.1", + "cross-spawn": "6.0.5", + "debug": "4.1.0", + "doctrine": "2.1.0", + "eslint-scope": "4.0.0", + "eslint-utils": "1.3.1", + "eslint-visitor-keys": "1.0.0", + "espree": "4.1.0", + "esquery": "1.0.1", + "esutils": "2.0.2", + "file-entry-cache": "2.0.0", + "functional-red-black-tree": "1.0.1", + "glob": "7.1.3", + "globals": "11.9.0", + "ignore": "4.0.6", + "imurmurhash": "0.1.4", + "inquirer": "6.2.0", + "is-resolvable": "1.1.0", + "js-yaml": "3.12.0", + "json-stable-stringify-without-jsonify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.11", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "7.0.0", + "progress": "2.0.1", + "regexpp": "2.0.1", + "require-uncached": "1.0.3", + "semver": "5.6.0", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", + "table": "5.1.0", + "text-table": "0.2.0" }, "dependencies": { "acorn": { @@ -3400,10 +3394,10 @@ "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "fast-deep-equal": "2.0.1", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" } }, "ansi-regex": { @@ -3456,9 +3450,9 @@ "integrity": "sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w==", "dev": true, "requires": { - "acorn": "^6.0.2", - "acorn-jsx": "^5.0.0", - "eslint-visitor-keys": "^1.0.0" + "acorn": "6.0.4", + "acorn-jsx": "5.0.1", + "eslint-visitor-keys": "1.0.0" } }, "external-editor": { @@ -3538,10 +3532,10 @@ "integrity": "sha512-e542in22ZLhD/fOIuXs/8yDZ9W61ltF8daM88rkRNtgTIct+vI2fTnAyu/Db2TCfEcI8i7mjZz6meLq0nW7TYg==", "dev": true, "requires": { - "ajv": "^6.5.3", - "lodash": "^4.17.10", + "ajv": "6.5.5", + "lodash": "4.17.11", "slice-ansi": "1.0.0", - "string-width": "^2.1.1" + "string-width": "2.1.1" } } } @@ -3552,7 +3546,7 @@ "integrity": "sha512-Bc3bh5bAcKNvs3HOpSi6EfGA2IIp7EzWcg2tS4vP7stnXu/J1opihHDM7jI9JCIckyIDTgZLSWn7J3HY0j2JfA==", "dev": true, "requires": { - "get-stdin": "^6.0.0" + "get-stdin": "6.0.0" } }, "eslint-config-standard": { @@ -3570,8 +3564,8 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", "requires": { - "debug": "^2.6.9", - "resolve": "^1.5.0" + "debug": "2.6.9", + "resolve": "1.8.1" }, "dependencies": { "debug": { @@ -3589,8 +3583,8 @@ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", "requires": { - "debug": "^2.6.8", - "pkg-dir": "^1.0.0" + "debug": "2.6.9", + "pkg-dir": "1.0.0" }, "dependencies": { "debug": { @@ -3609,8 +3603,8 @@ "integrity": "sha512-XfFmgFdIUDgvaRAlaXUkxrRg5JSADoRC8IkKLc/cISeR3yHVMefFHQZpcyXXEUUPHfy5DwviBcrfqlyqEwlQVw==", "dev": true, "requires": { - "eslint-utils": "^1.3.0", - "regexpp": "^2.0.1" + "eslint-utils": "1.3.1", + "regexpp": "2.0.1" } }, "eslint-plugin-import": { @@ -3618,16 +3612,16 @@ "resolved": "http://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz", "integrity": "sha1-JgAu+/ylmJtyiKwEdQi9JPIXsWk=", "requires": { - "builtin-modules": "^1.1.1", - "contains-path": "^0.1.0", - "debug": "^2.6.8", + "builtin-modules": "1.1.1", + "contains-path": "0.1.0", + "debug": "2.6.9", "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.1", - "eslint-module-utils": "^2.1.1", - "has": "^1.0.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.3", - "read-pkg-up": "^2.0.0" + "eslint-import-resolver-node": "0.3.2", + "eslint-module-utils": "2.2.0", + "has": "1.0.3", + "lodash": "4.17.11", + "minimatch": "3.0.4", + "read-pkg-up": "2.0.0" }, "dependencies": { "debug": { @@ -3640,11 +3634,11 @@ }, "doctrine": { "version": "1.5.0", - "resolved": "http://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" + "esutils": "2.0.2", + "isarray": "1.0.0" } } } @@ -3655,12 +3649,12 @@ "integrity": "sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw==", "dev": true, "requires": { - "eslint-plugin-es": "^1.3.1", - "eslint-utils": "^1.3.1", - "ignore": "^4.0.2", - "minimatch": "^3.0.4", - "resolve": "^1.8.1", - "semver": "^5.5.0" + "eslint-plugin-es": "1.4.0", + "eslint-utils": "1.3.1", + "ignore": "4.0.6", + "minimatch": "3.0.4", + "resolve": "1.8.1", + "semver": "5.6.0" }, "dependencies": { "ignore": { @@ -3677,8 +3671,8 @@ "integrity": "sha512-CStQYJgALoQBw3FsBzH0VOVDRnJ/ZimUlpLm226U8qgqYJfPOY/CPK6wyRInMxh73HSKg5wyRwdS4BVYYHwokA==", "dev": true, "requires": { - "fast-diff": "^1.1.1", - "jest-docblock": "^21.0.0" + "fast-diff": "1.2.0", + "jest-docblock": "21.2.0" } }, "eslint-plugin-promise": { @@ -3691,10 +3685,10 @@ "resolved": "http://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz", "integrity": "sha512-KC7Snr4YsWZD5flu6A5c0AcIZidzW3Exbqp7OT67OaD2AppJtlBr/GuPrW/vaQM/yfZotEvKAdrxrO+v8vwYJA==", "requires": { - "doctrine": "^2.0.2", - "has": "^1.0.1", - "jsx-ast-utils": "^2.0.1", - "prop-types": "^15.6.0" + "doctrine": "2.1.0", + "has": "1.0.3", + "jsx-ast-utils": "2.0.1", + "prop-types": "15.6.2" } }, "eslint-plugin-standard": { @@ -3707,8 +3701,8 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "esrecurse": "4.2.1", + "estraverse": "4.2.0" } }, "eslint-utils": { @@ -3727,8 +3721,8 @@ "resolved": "http://registry.npmjs.org/espree/-/espree-3.5.4.tgz", "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" + "acorn": "5.7.3", + "acorn-jsx": "3.0.1" } }, "esprima": { @@ -3741,7 +3735,7 @@ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "requires": { - "estraverse": "^4.0.0" + "estraverse": "4.2.0" } }, "esrecurse": { @@ -3749,7 +3743,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "requires": { - "estraverse": "^4.1.0" + "estraverse": "4.2.0" } }, "estraverse": { @@ -3767,8 +3761,8 @@ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "md5.js": "1.3.5", + "safe-buffer": "5.1.2" } }, "execa": { @@ -3776,13 +3770,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "requires": { - "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" + "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" } }, "expand-brackets": { @@ -3791,16 +3785,16 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "optional": true, "requires": { - "is-posix-bracket": "^0.1.0" + "is-posix-bracket": "0.1.1" } }, "expand-range": { "version": "1.8.2", - "resolved": "http://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "optional": true, "requires": { - "fill-range": "^2.1.0" + "fill-range": "2.2.4" } }, "extend": { @@ -3814,8 +3808,8 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -3823,7 +3817,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -3833,9 +3827,9 @@ "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" + "chardet": "0.4.2", + "iconv-lite": "0.4.24", + "tmp": "0.0.33" } }, "extglob": { @@ -3844,7 +3838,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "optional": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "extsprintf": { @@ -3855,7 +3849,7 @@ }, "fast-deep-equal": { "version": "1.1.0", - "resolved": "http://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" }, "fast-diff": { @@ -3884,7 +3878,7 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "requires": { - "escape-string-regexp": "^1.0.5" + "escape-string-regexp": "1.0.5" } }, "file-entry-cache": { @@ -3892,8 +3886,8 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" + "flat-cache": "1.3.4", + "object-assign": "4.1.1" } }, "filename-regex": { @@ -3908,11 +3902,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "optional": true, "requires": { - "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": "2.1.0", + "isobject": "2.1.0", + "randomatic": "3.1.1", + "repeat-element": "1.1.3", + "repeat-string": "1.6.1" } }, "find-root": { @@ -3925,8 +3919,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } }, "flat-cache": { @@ -3934,10 +3928,10 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", "requires": { - "circular-json": "^0.3.1", - "graceful-fs": "^4.1.2", - "rimraf": "~2.6.2", - "write": "^0.2.1" + "circular-json": "0.3.3", + "graceful-fs": "4.1.15", + "rimraf": "2.6.2", + "write": "0.2.1" } }, "flow-bin": { @@ -3952,7 +3946,7 @@ "integrity": "sha512-Q0drDENt875UTMpWY5nAJi7/0BaqQ0riXVNnhAwaDlpcXFLGos/jW/IuSGLdoStw10BZ3RpkJghG2gkR3XASPA==", "dev": true, "requires": { - "lodash.merge": "^4.6.1" + "lodash.merge": "4.6.1" } }, "follow-redirects": { @@ -3960,7 +3954,7 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", "requires": { - "debug": "=3.1.0" + "debug": "3.1.0" } }, "for-each": { @@ -3968,7 +3962,7 @@ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "requires": { - "is-callable": "^1.1.3" + "is-callable": "1.1.4" } }, "for-in": { @@ -3982,7 +3976,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "optional": true, "requires": { - "for-in": "^1.0.1" + "for-in": "1.0.2" } }, "forever-agent": { @@ -3997,9 +3991,9 @@ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "asynckit": "0.4.0", + "combined-stream": "1.0.7", + "mime-types": "2.1.21" } }, "formidable": { @@ -4013,7 +4007,7 @@ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { - "map-cache": "^0.2.2" + "map-cache": "0.2.2" } }, "fresh": { @@ -4028,8 +4022,8 @@ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "inherits": "2.0.1", + "readable-stream": "2.3.6" } }, "fs-readdir-recursive": { @@ -4048,8 +4042,8 @@ "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", "optional": true, "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" + "nan": "2.11.1", + "node-pre-gyp": "0.10.0" }, "dependencies": { "abbrev": { @@ -4071,8 +4065,8 @@ "bundled": true, "optional": true, "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "delegates": "1.0.0", + "readable-stream": "2.3.6" } }, "balanced-match": { @@ -4083,7 +4077,7 @@ "version": "1.1.11", "bundled": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -4137,7 +4131,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.2.4" } }, "fs.realpath": { @@ -4150,14 +4144,14 @@ "bundled": true, "optional": true, "requires": { - "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" + "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" } }, "glob": { @@ -4165,12 +4159,12 @@ "bundled": true, "optional": true, "requires": { - "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" + "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" } }, "has-unicode": { @@ -4183,7 +4177,7 @@ "bundled": true, "optional": true, "requires": { - "safer-buffer": "^2.1.0" + "safer-buffer": "2.1.2" } }, "ignore-walk": { @@ -4191,7 +4185,7 @@ "bundled": true, "optional": true, "requires": { - "minimatch": "^3.0.4" + "minimatch": "3.0.4" } }, "inflight": { @@ -4199,8 +4193,8 @@ "bundled": true, "optional": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -4216,7 +4210,7 @@ "version": "1.0.0", "bundled": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "isarray": { @@ -4228,7 +4222,7 @@ "version": "3.0.4", "bundled": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -4239,8 +4233,8 @@ "version": "2.2.4", "bundled": true, "requires": { - "safe-buffer": "^5.1.1", - "yallist": "^3.0.0" + "safe-buffer": "5.1.1", + "yallist": "3.0.2" } }, "minizlib": { @@ -4248,7 +4242,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.2.4" } }, "mkdirp": { @@ -4268,9 +4262,9 @@ "bundled": true, "optional": true, "requires": { - "debug": "^2.1.2", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" + "debug": "2.6.9", + "iconv-lite": "0.4.21", + "sax": "1.2.4" } }, "node-pre-gyp": { @@ -4278,16 +4272,16 @@ "bundled": 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" + "detect-libc": "1.0.3", + "mkdirp": "0.5.1", + "needle": "2.2.0", + "nopt": "4.0.1", + "npm-packlist": "1.1.10", + "npmlog": "4.1.2", + "rc": "1.2.7", + "rimraf": "2.6.2", + "semver": "5.5.0", + "tar": "4.4.1" } }, "nopt": { @@ -4295,8 +4289,8 @@ "bundled": true, "optional": true, "requires": { - "abbrev": "1", - "osenv": "^0.1.4" + "abbrev": "1.1.1", + "osenv": "0.1.5" } }, "npm-bundled": { @@ -4309,8 +4303,8 @@ "bundled": true, "optional": true, "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" + "ignore-walk": "3.0.1", + "npm-bundled": "1.0.3" } }, "npmlog": { @@ -4318,10 +4312,10 @@ "bundled": 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" + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" } }, "number-is-nan": { @@ -4337,7 +4331,7 @@ "version": "1.4.0", "bundled": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "os-homedir": { @@ -4355,8 +4349,8 @@ "bundled": true, "optional": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "path-is-absolute": { @@ -4374,10 +4368,10 @@ "bundled": true, "optional": true, "requires": { - "deep-extend": "^0.5.1", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" + "deep-extend": "0.5.1", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" }, "dependencies": { "minimist": { @@ -4392,13 +4386,13 @@ "bundled": true, "optional": true, "requires": { - "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" + "core-util-is": "1.0.2", + "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.2" } }, "rimraf": { @@ -4406,7 +4400,7 @@ "bundled": true, "optional": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "safe-buffer": { @@ -4442,9 +4436,9 @@ "version": "1.0.2", "bundled": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "string_decoder": { @@ -4452,14 +4446,14 @@ "bundled": true, "optional": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.1" } }, "strip-ansi": { "version": "3.0.1", "bundled": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-json-comments": { @@ -4472,13 +4466,13 @@ "bundled": true, "optional": true, "requires": { - "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" + "chownr": "1.0.1", + "fs-minipass": "1.2.5", + "minipass": "2.2.4", + "minizlib": "1.1.0", + "mkdirp": "0.5.1", + "safe-buffer": "5.1.1", + "yallist": "3.0.2" } }, "util-deprecate": { @@ -4491,7 +4485,7 @@ "bundled": true, "optional": true, "requires": { - "string-width": "^1.0.2" + "string-width": "1.0.2" } }, "wrappy": { @@ -4546,7 +4540,7 @@ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "git-clone": { @@ -4559,12 +4553,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "requires": { - "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" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.1", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "glob-base": { @@ -4573,8 +4567,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "optional": true, "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" + "glob-parent": "2.0.0", + "is-glob": "2.0.1" } }, "glob-parent": { @@ -4582,7 +4576,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "requires": { - "is-glob": "^2.0.0" + "is-glob": "2.0.1" } }, "globals": { @@ -4596,23 +4590,23 @@ "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", "dev": true, "requires": { - "@sindresorhus/is": "^0.7.0", - "cacheable-request": "^2.1.1", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "into-stream": "^3.1.0", - "is-retry-allowed": "^1.1.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "mimic-response": "^1.0.0", - "p-cancelable": "^0.4.0", - "p-timeout": "^2.0.1", - "pify": "^3.0.0", - "safe-buffer": "^5.1.1", - "timed-out": "^4.0.1", - "url-parse-lax": "^3.0.0", - "url-to-options": "^1.0.1" + "@sindresorhus/is": "0.7.0", + "cacheable-request": "2.1.4", + "decompress-response": "3.3.0", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "into-stream": "3.1.0", + "is-retry-allowed": "1.1.0", + "isurl": "1.0.0", + "lowercase-keys": "1.0.1", + "mimic-response": "1.0.1", + "p-cancelable": "0.4.1", + "p-timeout": "2.0.1", + "pify": "3.0.0", + "safe-buffer": "5.1.2", + "timed-out": "4.0.1", + "url-parse-lax": "3.0.0", + "url-to-options": "1.0.1" }, "dependencies": { "pify": { @@ -4646,8 +4640,8 @@ "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "dev": true, "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" + "ajv": "6.5.5", + "har-schema": "2.0.0" }, "dependencies": { "ajv": { @@ -4656,10 +4650,10 @@ "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "fast-deep-equal": "2.0.1", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" } }, "fast-deep-equal": { @@ -4681,7 +4675,7 @@ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "requires": { - "function-bind": "^1.1.1" + "function-bind": "1.1.1" } }, "has-ansi": { @@ -4689,7 +4683,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "has-binary2": { @@ -4734,7 +4728,7 @@ "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", "dev": true, "requires": { - "has-symbol-support-x": "^1.4.1" + "has-symbol-support-x": "1.4.2" } }, "has-value": { @@ -4742,9 +4736,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -4759,8 +4753,8 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { "is-number": { @@ -4768,7 +4762,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -4776,7 +4770,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -4786,7 +4780,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -4796,8 +4790,8 @@ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "hash.js": { @@ -4805,8 +4799,8 @@ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1" }, "dependencies": { "inherits": { @@ -4827,9 +4821,9 @@ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "hash.js": "1.1.5", + "minimalistic-assert": "1.0.1", + "minimalistic-crypto-utils": "1.0.1" } }, "home-or-tmp": { @@ -4837,8 +4831,8 @@ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "hosted-git-info": { @@ -4858,9 +4852,9 @@ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.15.2" } }, "iconv-lite": { @@ -4868,7 +4862,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": "2.1.2" } }, "ieee754": { @@ -4902,8 +4896,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -4921,20 +4915,20 @@ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", + "ansi-escapes": "3.1.0", + "chalk": "2.4.1", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.2.0", + "figures": "2.0.0", + "lodash": "4.17.11", "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" + "run-async": "2.3.0", + "rx-lite": "4.0.8", + "rx-lite-aggregates": "4.0.8", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" }, "dependencies": { "ansi-regex": { @@ -4947,19 +4941,19 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } }, "into-stream": { "version": "3.1.0", - "resolved": "http://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", "dev": true, "requires": { - "from2": "^2.1.1", - "p-is-promise": "^1.1.0" + "from2": "2.3.0", + "p-is-promise": "1.1.0" } }, "invariant": { @@ -4967,7 +4961,7 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "loose-envify": "^1.0.0" + "loose-envify": "1.4.0" } }, "invert-kv": { @@ -4980,7 +4974,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-arrayish": { @@ -4994,7 +4988,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "optional": true, "requires": { - "binary-extensions": "^1.0.0" + "binary-extensions": "1.12.0" } }, "is-buffer": { @@ -5007,7 +5001,7 @@ "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-callable": { @@ -5020,7 +5014,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-date-object": { @@ -5033,9 +5027,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" }, "dependencies": { "kind-of": { @@ -5057,7 +5051,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "optional": true, "requires": { - "is-primitive": "^2.0.0" + "is-primitive": "2.0.0" } }, "is-extendable": { @@ -5075,7 +5069,7 @@ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { @@ -5088,7 +5082,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "is-number": { @@ -5097,7 +5091,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "optional": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-object": { @@ -5117,7 +5111,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -5149,7 +5143,7 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "requires": { - "has": "^1.0.1" + "has": "1.0.3" } }, "is-resolvable": { @@ -5173,7 +5167,7 @@ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", "requires": { - "has-symbols": "^1.0.0" + "has-symbols": "1.0.0" } }, "is-typedarray": { @@ -5223,13 +5217,13 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.0.0.tgz", "integrity": "sha512-eQY9vN9elYjdgN9Iv6NS/00bptm02EBBk70lRMaVjeA6QYocQgenVrSgC28TJurdnZa80AGO3ASdFN+w/njGiQ==", "requires": { - "@babel/generator": "^7.0.0", - "@babel/parser": "^7.0.0", - "@babel/template": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", - "istanbul-lib-coverage": "^2.0.1", - "semver": "^5.5.0" + "@babel/generator": "7.1.6", + "@babel/parser": "7.1.6", + "@babel/template": "7.1.2", + "@babel/traverse": "7.1.6", + "@babel/types": "7.1.6", + "istanbul-lib-coverage": "2.0.1", + "semver": "5.6.0" } }, "isurl": { @@ -5238,8 +5232,8 @@ "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", "dev": true, "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" + "has-to-string-tag-x": "1.4.1", + "is-object": "1.0.1" } }, "jest-docblock": { @@ -5258,8 +5252,8 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "1.0.10", + "esprima": "4.0.1" } }, "jsbn": { @@ -5270,7 +5264,7 @@ }, "jsesc": { "version": "1.3.0", - "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" }, "json-buffer": { @@ -5328,7 +5322,7 @@ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", "requires": { - "array-includes": "^3.0.3" + "array-includes": "3.0.3" } }, "just-extend": { @@ -5342,10 +5336,10 @@ "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", "requires": { - "bindings": "^1.2.1", - "inherits": "^2.0.3", - "nan": "^2.2.1", - "safe-buffer": "^5.1.0" + "bindings": "1.3.1", + "inherits": "2.0.3", + "nan": "2.11.1", + "safe-buffer": "5.1.2" }, "dependencies": { "inherits": { @@ -5369,7 +5363,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "kubernetes-client": { @@ -5378,13 +5372,13 @@ "integrity": "sha512-aOIje6oZOcftt2EWJHRMUD+Dao8e3SudEAlanR25Y81wU7QnSfAvwoIWLIgp/ox0CWnu/A3NBv19Qnbx00ztMQ==", "dev": true, "requires": { - "deepmerge": "^2.1.1", - "fluent-openapi": "^1.0.0", - "js-yaml": "^3.10.0", - "openid-client": "^2.4.4", - "qs": "^6.5.2", - "request": "^2.88.0", - "ws": "^6.0.0" + "deepmerge": "2.2.1", + "fluent-openapi": "1.0.0", + "js-yaml": "3.12.0", + "openid-client": "2.4.5", + "qs": "6.6.0", + "request": "2.88.0", + "ws": "6.1.2" }, "dependencies": { "ws": { @@ -5393,7 +5387,7 @@ "integrity": "sha512-rfUqzvz0WxmSXtJpPMX2EeASXabOrSMk1ruMOV3JBTBjo4ac2lDjGGsbQSyxj8Odhw5fBib8ZKEjDNvgouNKYw==", "dev": true, "requires": { - "async-limiter": "~1.0.0" + "async-limiter": "1.0.0" } } } @@ -5403,7 +5397,7 @@ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "lcov-parse": { @@ -5417,8 +5411,8 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "1.1.2", + "type-check": "0.3.2" } }, "load-json-file": { @@ -5426,10 +5420,10 @@ "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.15", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" } }, "locate-path": { @@ -5437,8 +5431,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "2.0.0", + "path-exists": "3.0.0" }, "dependencies": { "path-exists": { @@ -5547,7 +5541,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" + "js-tokens": "3.0.2" } }, "lowercase-keys": { @@ -5561,8 +5555,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.4.tgz", "integrity": "sha512-EPstzZ23znHUVLKj+lcXO1KvZkrlw+ZirdwvOmnAnA/1PB4ggyXJ77LRkCqkff+ShQ+cqoxCxLQOh4cKITO5iA==", "requires": { - "pseudomap": "^1.0.2", - "yallist": "^3.0.2" + "pseudomap": "1.0.2", + "yallist": "3.0.3" } }, "make-dir": { @@ -5570,7 +5564,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" }, "dependencies": { "pify": { @@ -5590,7 +5584,7 @@ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { - "object-visit": "^1.0.0" + "object-visit": "1.0.1" } }, "math-random": { @@ -5604,14 +5598,14 @@ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "hash-base": "3.0.4", + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "media-typer": { "version": "0.3.0", - "resolved": "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true }, @@ -5620,7 +5614,7 @@ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "merge-descriptors": { @@ -5646,19 +5640,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "optional": true, "requires": { - "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" + "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" } }, "mime": { @@ -5677,7 +5671,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", "requires": { - "mime-db": "~1.37.0" + "mime-db": "1.37.0" } }, "mimic-fn": { @@ -5706,7 +5700,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -5719,8 +5713,8 @@ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" + "for-in": "1.0.2", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -5728,7 +5722,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -5772,12 +5766,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "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" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.1", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "supports-color": { @@ -5786,7 +5780,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -5812,17 +5806,17 @@ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "optional": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "arr-diff": { @@ -5879,10 +5873,10 @@ "dev": true, "requires": { "@sinonjs/formatio": "3.0.0", - "just-extend": "^3.0.0", - "lolex": "^2.3.2", - "path-to-regexp": "^1.7.0", - "text-encoding": "^0.6.4" + "just-extend": "3.0.0", + "lolex": "2.7.5", + "path-to-regexp": "1.7.0", + "text-encoding": "0.6.4" }, "dependencies": { "@sinonjs/formatio": { @@ -5906,7 +5900,7 @@ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", "requires": { - "lodash.toarray": "^4.4.0" + "lodash.toarray": "4.4.0" } }, "node-forge": { @@ -5921,21 +5915,21 @@ "integrity": "sha512-Ux5MDElyiAlBQyOdFcwznK2TWMJbG8ZUfIZ28UtBvTB/VUz5HA/1WJV7s+YCah5NilPhkMkNi6xjnFRI+MQAVg==", "dev": true, "requires": { - "base64url": "^3.0.0", - "es6-promise": "^4.2.5", - "lodash.assign": "^4.2.0", - "lodash.clone": "^4.5.0", - "lodash.fill": "^3.4.0", - "lodash.flatten": "^4.4.0", - "lodash.intersection": "^4.4.0", - "lodash.merge": "^4.6.1", - "lodash.omit": "^4.5.0", - "lodash.partialright": "^4.2.1", - "lodash.pick": "^4.4.0", - "lodash.uniq": "^4.5.0", - "long": "^4.0.0", - "node-forge": "^0.7.6", - "uuid": "^3.3.2" + "base64url": "3.0.1", + "es6-promise": "4.2.5", + "lodash.assign": "4.2.0", + "lodash.clone": "4.5.0", + "lodash.fill": "3.4.0", + "lodash.flatten": "4.4.0", + "lodash.intersection": "4.4.0", + "lodash.merge": "4.6.1", + "lodash.omit": "4.5.0", + "lodash.partialright": "4.2.1", + "lodash.pick": "4.4.0", + "lodash.uniq": "4.5.0", + "long": "4.0.0", + "node-forge": "0.7.6", + "uuid": "3.3.2" } }, "node-mocks-http": { @@ -5944,16 +5938,16 @@ "integrity": "sha512-wayzLNhEroH3lJj113pFKQ1cd1GKG1mXoZR1HcKp/o9a9lTGGgVY/hYeLajiIFr/z4tXFKOdfJickqqihBtn9g==", "dev": true, "requires": { - "accepts": "^1.3.5", - "depd": "^1.1.0", - "fresh": "^0.5.2", - "merge-descriptors": "^1.0.1", - "methods": "^1.1.2", - "mime": "^1.3.4", - "net": "^1.0.2", - "parseurl": "^1.3.1", - "range-parser": "^1.2.0", - "type-is": "^1.6.16" + "accepts": "1.3.5", + "depd": "1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "1.1.2", + "mime": "1.6.0", + "net": "1.0.2", + "parseurl": "1.3.2", + "range-parser": "1.2.0", + "type-is": "1.6.16" } }, "nopt": { @@ -5961,7 +5955,7 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "requires": { - "abbrev": "1" + "abbrev": "1.1.1" } }, "normalize-package-data": { @@ -5969,10 +5963,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.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.7.1", + "is-builtin-module": "1.0.0", + "semver": "5.6.0", + "validate-npm-package-license": "3.0.4" } }, "normalize-path": { @@ -5980,7 +5974,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { - "remove-trailing-separator": "^1.0.1" + "remove-trailing-separator": "1.1.0" } }, "normalize-url": { @@ -5989,9 +5983,9 @@ "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", "dev": true, "requires": { - "prepend-http": "^2.0.0", - "query-string": "^5.0.1", - "sort-keys": "^2.0.0" + "prepend-http": "2.0.0", + "query-string": "5.1.1", + "sort-keys": "2.0.0" } }, "npm-run-path": { @@ -5999,7 +5993,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { @@ -6013,33 +6007,33 @@ "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", "dev": true, "requires": { - "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^1.0.0", - "convert-source-map": "^1.5.1", - "debug-log": "^1.0.1", - "default-require-extensions": "^1.0.0", - "find-cache-dir": "^0.1.1", - "find-up": "^2.1.0", - "foreground-child": "^1.5.3", - "glob": "^7.0.6", - "istanbul-lib-coverage": "^1.1.2", - "istanbul-lib-hook": "^1.1.0", - "istanbul-lib-instrument": "^1.10.0", - "istanbul-lib-report": "^1.1.3", - "istanbul-lib-source-maps": "^1.2.3", - "istanbul-reports": "^1.4.0", - "md5-hex": "^1.2.0", - "merge-source-map": "^1.1.0", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.0", - "resolve-from": "^2.0.0", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.1", - "spawn-wrap": "^1.4.2", - "test-exclude": "^4.2.0", + "archy": "1.0.0", + "arrify": "1.0.1", + "caching-transform": "1.0.1", + "convert-source-map": "1.5.1", + "debug-log": "1.0.1", + "default-require-extensions": "1.0.0", + "find-cache-dir": "0.1.1", + "find-up": "2.1.0", + "foreground-child": "1.5.6", + "glob": "7.1.2", + "istanbul-lib-coverage": "1.2.0", + "istanbul-lib-hook": "1.1.0", + "istanbul-lib-instrument": "1.10.1", + "istanbul-lib-report": "1.1.3", + "istanbul-lib-source-maps": "1.2.3", + "istanbul-reports": "1.4.0", + "md5-hex": "1.3.0", + "merge-source-map": "1.1.0", + "micromatch": "3.1.10", + "mkdirp": "0.5.1", + "resolve-from": "2.0.0", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "spawn-wrap": "1.4.2", + "test-exclude": "4.2.1", "yargs": "11.1.0", - "yargs-parser": "^8.0.0" + "yargs-parser": "8.1.0" }, "dependencies": { "align-text": { @@ -6047,9 +6041,9 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" } }, "amdefine": { @@ -6072,7 +6066,7 @@ "bundled": true, "dev": true, "requires": { - "default-require-extensions": "^1.0.0" + "default-require-extensions": "1.0.0" } }, "archy": { @@ -6125,9 +6119,9 @@ "bundled": true, "dev": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" } }, "babel-generator": { @@ -6135,14 +6129,14 @@ "bundled": true, "dev": true, "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.10", + "source-map": "0.5.7", + "trim-right": "1.0.1" } }, "babel-messages": { @@ -6150,7 +6144,7 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-runtime": { @@ -6158,8 +6152,8 @@ "bundled": true, "dev": true, "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "core-js": "2.5.6", + "regenerator-runtime": "0.11.1" } }, "babel-template": { @@ -6167,11 +6161,11 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.10" } }, "babel-traverse": { @@ -6179,15 +6173,15 @@ "bundled": true, "dev": true, "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.4", + "lodash": "4.17.10" } }, "babel-types": { @@ -6195,10 +6189,10 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.10", + "to-fast-properties": "1.0.3" } }, "babylon": { @@ -6216,13 +6210,13 @@ "bundled": true, "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.2.0", - "pascalcase": "^0.1.1" + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" }, "dependencies": { "define-property": { @@ -6230,7 +6224,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -6238,7 +6232,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -6246,7 +6240,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -6254,9 +6248,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -6276,7 +6270,7 @@ "bundled": true, "dev": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -6285,16 +6279,16 @@ "bundled": true, "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -6302,7 +6296,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -6317,15 +6311,15 @@ "bundled": true, "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" }, "dependencies": { "isobject": { @@ -6340,9 +6334,9 @@ "bundled": true, "dev": true, "requires": { - "md5-hex": "^1.2.0", - "mkdirp": "^0.5.1", - "write-file-atomic": "^1.1.4" + "md5-hex": "1.3.0", + "mkdirp": "0.5.1", + "write-file-atomic": "1.3.4" } }, "camelcase": { @@ -6357,8 +6351,8 @@ "dev": true, "optional": true, "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" + "align-text": "0.1.4", + "lazy-cache": "1.0.4" } }, "chalk": { @@ -6366,11 +6360,11 @@ "bundled": true, "dev": true, "requires": { - "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" + "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" } }, "class-utils": { @@ -6378,10 +6372,10 @@ "bundled": true, "dev": true, "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" }, "dependencies": { "define-property": { @@ -6389,7 +6383,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "isobject": { @@ -6405,8 +6399,8 @@ "dev": true, "optional": true, "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", + "center-align": "0.1.3", + "right-align": "0.1.3", "wordwrap": "0.0.2" }, "dependencies": { @@ -6428,8 +6422,8 @@ "bundled": true, "dev": true, "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "map-visit": "1.0.0", + "object-visit": "1.0.1" } }, "commondir": { @@ -6467,8 +6461,8 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "which": "1.3.0" } }, "debug": { @@ -6499,7 +6493,7 @@ "bundled": true, "dev": true, "requires": { - "strip-bom": "^2.0.0" + "strip-bom": "2.0.0" } }, "define-property": { @@ -6507,8 +6501,8 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "is-descriptor": "1.0.2", + "isobject": "3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -6516,7 +6510,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -6524,7 +6518,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -6532,9 +6526,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -6554,7 +6548,7 @@ "bundled": true, "dev": true, "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "error-ex": { @@ -6562,7 +6556,7 @@ "bundled": true, "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "escape-string-regexp": { @@ -6580,13 +6574,13 @@ "bundled": true, "dev": true, "requires": { - "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" + "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" }, "dependencies": { "cross-spawn": { @@ -6594,9 +6588,9 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.0" } } } @@ -6606,13 +6600,13 @@ "bundled": true, "dev": true, "requires": { - "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" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -6620,7 +6614,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -6628,7 +6622,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -6638,8 +6632,8 @@ "bundled": true, "dev": true, "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -6647,7 +6641,7 @@ "bundled": true, "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -6657,14 +6651,14 @@ "bundled": true, "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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -6672,7 +6666,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -6680,7 +6674,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -6688,7 +6682,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -6696,7 +6690,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -6704,9 +6698,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "kind-of": { @@ -6721,10 +6715,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -6732,7 +6726,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -6742,9 +6736,9 @@ "bundled": true, "dev": true, "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" + "commondir": "1.0.1", + "mkdirp": "0.5.1", + "pkg-dir": "1.0.0" } }, "find-up": { @@ -6752,7 +6746,7 @@ "bundled": true, "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "for-in": { @@ -6765,8 +6759,8 @@ "bundled": true, "dev": true, "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" + "cross-spawn": "4.0.2", + "signal-exit": "3.0.2" } }, "fragment-cache": { @@ -6774,7 +6768,7 @@ "bundled": true, "dev": true, "requires": { - "map-cache": "^0.2.2" + "map-cache": "0.2.2" } }, "fs.realpath": { @@ -6802,12 +6796,12 @@ "bundled": true, "dev": true, "requires": { - "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" + "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" } }, "globals": { @@ -6825,10 +6819,10 @@ "bundled": true, "dev": true, "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" }, "dependencies": { "source-map": { @@ -6836,7 +6830,7 @@ "bundled": true, "dev": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } @@ -6846,7 +6840,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "has-flag": { @@ -6859,9 +6853,9 @@ "bundled": true, "dev": true, "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -6876,8 +6870,8 @@ "bundled": true, "dev": true, "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { "is-number": { @@ -6885,7 +6879,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -6893,7 +6887,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -6903,7 +6897,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -6923,8 +6917,8 @@ "bundled": true, "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -6937,7 +6931,7 @@ "bundled": true, "dev": true, "requires": { - "loose-envify": "^1.0.0" + "loose-envify": "1.3.1" } }, "invert-kv": { @@ -6950,7 +6944,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-arrayish": { @@ -6968,7 +6962,7 @@ "bundled": true, "dev": true, "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-data-descriptor": { @@ -6976,7 +6970,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-descriptor": { @@ -6984,9 +6978,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" }, "dependencies": { "kind-of": { @@ -7006,7 +7000,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { @@ -7019,7 +7013,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-odd": { @@ -7027,7 +7021,7 @@ "bundled": true, "dev": true, "requires": { - "is-number": "^4.0.0" + "is-number": "4.0.0" }, "dependencies": { "is-number": { @@ -7042,7 +7036,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -7092,7 +7086,7 @@ "bundled": true, "dev": true, "requires": { - "append-transform": "^0.4.0" + "append-transform": "0.4.0" } }, "istanbul-lib-instrument": { @@ -7100,13 +7094,13 @@ "bundled": true, "dev": true, "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.2.0", - "semver": "^5.3.0" + "babel-generator": "6.26.1", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "istanbul-lib-coverage": "1.2.0", + "semver": "5.5.0" } }, "istanbul-lib-report": { @@ -7114,10 +7108,10 @@ "bundled": true, "dev": true, "requires": { - "istanbul-lib-coverage": "^1.1.2", - "mkdirp": "^0.5.1", - "path-parse": "^1.0.5", - "supports-color": "^3.1.2" + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" }, "dependencies": { "supports-color": { @@ -7125,7 +7119,7 @@ "bundled": true, "dev": true, "requires": { - "has-flag": "^1.0.0" + "has-flag": "1.0.0" } } } @@ -7135,11 +7129,11 @@ "bundled": true, "dev": true, "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^1.1.2", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.1", - "source-map": "^0.5.3" + "debug": "3.1.0", + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" }, "dependencies": { "debug": { @@ -7157,7 +7151,7 @@ "bundled": true, "dev": true, "requires": { - "handlebars": "^4.0.3" + "handlebars": "4.0.11" } }, "js-tokens": { @@ -7175,7 +7169,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "lazy-cache": { @@ -7189,7 +7183,7 @@ "bundled": true, "dev": true, "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "load-json-file": { @@ -7197,11 +7191,11 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" } }, "locate-path": { @@ -7209,8 +7203,8 @@ "bundled": true, "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": { @@ -7235,7 +7229,7 @@ "bundled": true, "dev": true, "requires": { - "js-tokens": "^3.0.0" + "js-tokens": "3.0.2" } }, "lru-cache": { @@ -7243,8 +7237,8 @@ "bundled": true, "dev": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "map-cache": { @@ -7257,7 +7251,7 @@ "bundled": true, "dev": true, "requires": { - "object-visit": "^1.0.0" + "object-visit": "1.0.1" } }, "md5-hex": { @@ -7265,7 +7259,7 @@ "bundled": true, "dev": true, "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "md5-o-matic": { @@ -7278,7 +7272,7 @@ "bundled": true, "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "merge-source-map": { @@ -7286,7 +7280,7 @@ "bundled": true, "dev": true, "requires": { - "source-map": "^0.6.1" + "source-map": "0.6.1" }, "dependencies": { "source-map": { @@ -7301,19 +7295,19 @@ "bundled": true, "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "kind-of": { @@ -7333,7 +7327,7 @@ "bundled": true, "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -7346,8 +7340,8 @@ "bundled": true, "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": { @@ -7355,7 +7349,7 @@ "bundled": true, "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -7378,18 +7372,18 @@ "bundled": true, "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-odd": "^2.0.0", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-odd": "2.0.0", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "arr-diff": { @@ -7414,10 +7408,10 @@ "bundled": true, "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.6.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" } }, "npm-run-path": { @@ -7425,7 +7419,7 @@ "bundled": true, "dev": true, "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { @@ -7443,9 +7437,9 @@ "bundled": true, "dev": true, "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" }, "dependencies": { "define-property": { @@ -7453,7 +7447,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -7463,7 +7457,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "^3.0.0" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -7478,7 +7472,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -7493,7 +7487,7 @@ "bundled": true, "dev": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "optimist": { @@ -7501,8 +7495,8 @@ "bundled": true, "dev": true, "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" + "minimist": "0.0.8", + "wordwrap": "0.0.3" } }, "os-homedir": { @@ -7515,9 +7509,9 @@ "bundled": true, "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" } }, "p-finally": { @@ -7530,7 +7524,7 @@ "bundled": true, "dev": true, "requires": { - "p-try": "^1.0.0" + "p-try": "1.0.0" } }, "p-locate": { @@ -7538,7 +7532,7 @@ "bundled": true, "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.2.0" } }, "p-try": { @@ -7551,7 +7545,7 @@ "bundled": true, "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.1" } }, "pascalcase": { @@ -7564,7 +7558,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie-promise": "^2.0.0" + "pinkie-promise": "2.0.1" } }, "path-is-absolute": { @@ -7587,9 +7581,9 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "pify": { @@ -7607,7 +7601,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "pkg-dir": { @@ -7615,7 +7609,7 @@ "bundled": true, "dev": true, "requires": { - "find-up": "^1.0.0" + "find-up": "1.1.2" }, "dependencies": { "find-up": { @@ -7623,8 +7617,8 @@ "bundled": true, "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } @@ -7644,9 +7638,9 @@ "bundled": true, "dev": true, "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" } }, "read-pkg-up": { @@ -7654,8 +7648,8 @@ "bundled": true, "dev": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "find-up": "1.1.2", + "read-pkg": "1.1.0" }, "dependencies": { "find-up": { @@ -7663,8 +7657,8 @@ "bundled": true, "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } @@ -7679,8 +7673,8 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" } }, "repeat-element": { @@ -7698,7 +7692,7 @@ "bundled": true, "dev": true, "requires": { - "is-finite": "^1.0.0" + "is-finite": "1.0.2" } }, "require-directory": { @@ -7732,7 +7726,7 @@ "dev": true, "optional": true, "requires": { - "align-text": "^0.1.1" + "align-text": "0.1.4" } }, "rimraf": { @@ -7740,7 +7734,7 @@ "bundled": true, "dev": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "safe-regex": { @@ -7748,7 +7742,7 @@ "bundled": true, "dev": true, "requires": { - "ret": "~0.1.10" + "ret": "0.1.15" } }, "semver": { @@ -7766,10 +7760,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" }, "dependencies": { "extend-shallow": { @@ -7777,7 +7771,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -7787,7 +7781,7 @@ "bundled": true, "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -7810,14 +7804,14 @@ "bundled": true, "dev": true, "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "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": "3.1.0" }, "dependencies": { "define-property": { @@ -7825,7 +7819,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -7833,7 +7827,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -7843,9 +7837,9 @@ "bundled": true, "dev": true, "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" }, "dependencies": { "define-property": { @@ -7853,7 +7847,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -7861,7 +7855,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -7869,7 +7863,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -7877,9 +7871,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -7899,7 +7893,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.2.0" + "kind-of": "3.2.2" } }, "source-map": { @@ -7912,11 +7906,11 @@ "bundled": true, "dev": true, "requires": { - "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" + "atob": "2.1.1", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" } }, "source-map-url": { @@ -7929,12 +7923,12 @@ "bundled": true, "dev": true, "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" + "foreground-child": "1.5.6", + "mkdirp": "0.5.1", + "os-homedir": "1.0.2", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "which": "1.3.0" } }, "spdx-correct": { @@ -7942,8 +7936,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, "spdx-exceptions": { @@ -7956,8 +7950,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" } }, "spdx-license-ids": { @@ -7970,7 +7964,7 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^3.0.0" + "extend-shallow": "3.0.2" } }, "static-extend": { @@ -7978,8 +7972,8 @@ "bundled": true, "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": { @@ -7987,7 +7981,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -7997,8 +7991,8 @@ "bundled": true, "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" }, "dependencies": { "ansi-regex": { @@ -8011,7 +8005,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -8021,7 +8015,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-bom": { @@ -8029,7 +8023,7 @@ "bundled": true, "dev": true, "requires": { - "is-utf8": "^0.2.0" + "is-utf8": "0.2.1" } }, "strip-eof": { @@ -8047,11 +8041,11 @@ "bundled": true, "dev": true, "requires": { - "arrify": "^1.0.1", - "micromatch": "^3.1.8", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" + "arrify": "1.0.1", + "micromatch": "3.1.10", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" }, "dependencies": { "arr-diff": { @@ -8069,16 +8063,16 @@ "bundled": true, "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -8086,7 +8080,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -8096,13 +8090,13 @@ "bundled": true, "dev": true, "requires": { - "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" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -8110,7 +8104,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -8118,7 +8112,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -8126,7 +8120,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -8134,7 +8128,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -8144,7 +8138,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -8152,7 +8146,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -8162,9 +8156,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { @@ -8179,14 +8173,14 @@ "bundled": true, "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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -8194,7 +8188,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -8202,7 +8196,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -8212,10 +8206,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -8223,7 +8217,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -8233,7 +8227,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -8241,7 +8235,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -8249,9 +8243,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-number": { @@ -8259,7 +8253,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -8267,7 +8261,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -8287,19 +8281,19 @@ "bundled": true, "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } } } @@ -8314,7 +8308,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "to-regex": { @@ -8322,10 +8316,10 @@ "bundled": true, "dev": true, "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" } }, "to-regex-range": { @@ -8333,8 +8327,8 @@ "bundled": true, "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "3.0.0", + "repeat-string": "1.6.1" }, "dependencies": { "is-number": { @@ -8342,7 +8336,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } } } @@ -8358,9 +8352,9 @@ "dev": true, "optional": true, "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" }, "dependencies": { "yargs": { @@ -8369,9 +8363,9 @@ "dev": true, "optional": true, "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", "window-size": "0.1.0" } } @@ -8388,10 +8382,10 @@ "bundled": true, "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": { "extend-shallow": { @@ -8399,7 +8393,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "set-value": { @@ -8407,10 +8401,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" } } } @@ -8420,8 +8414,8 @@ "bundled": true, "dev": true, "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "has-value": "0.3.1", + "isobject": "3.0.1" }, "dependencies": { "has-value": { @@ -8429,9 +8423,9 @@ "bundled": true, "dev": true, "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" }, "dependencies": { "isobject": { @@ -8466,7 +8460,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.2" + "kind-of": "6.0.2" }, "dependencies": { "kind-of": { @@ -8481,8 +8475,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "which": { @@ -8490,7 +8484,7 @@ "bundled": true, "dev": true, "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -8514,8 +8508,8 @@ "bundled": true, "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -8523,7 +8517,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "string-width": { @@ -8531,9 +8525,9 @@ "bundled": true, "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -8548,9 +8542,9 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" } }, "y18n": { @@ -8568,18 +8562,18 @@ "bundled": true, "dev": true, "requires": { - "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": "^9.0.2" + "cliui": "4.1.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": "9.0.2" }, "dependencies": { "ansi-regex": { @@ -8597,9 +8591,9 @@ "bundled": true, "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" } }, "strip-ansi": { @@ -8607,7 +8601,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } }, "yargs-parser": { @@ -8615,7 +8609,7 @@ "bundled": true, "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" } } } @@ -8625,7 +8619,7 @@ "bundled": true, "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" }, "dependencies": { "camelcase": { @@ -8658,9 +8652,9 @@ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" }, "dependencies": { "define-property": { @@ -8668,7 +8662,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -8688,7 +8682,7 @@ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { - "isobject": "^3.0.0" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -8704,8 +8698,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "optional": true, "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" + "for-own": "0.1.5", + "is-extendable": "0.1.1" } }, "object.pick": { @@ -8713,7 +8707,7 @@ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -8729,7 +8723,7 @@ "integrity": "sha512-oLnVSEcNZkw01sB5aFR+2iJmW4oyC1PIMJmd3FMBGDuPTy5ZtEuX5WNhKMRarJIMOq8NiOwIB6eJB9AhgYwBTg==", "dev": true, "requires": { - "base64url": "^3.0.0" + "base64url": "3.0.1" } }, "once": { @@ -8737,7 +8731,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "onetime": { @@ -8745,7 +8739,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "openid-client": { @@ -8754,13 +8748,13 @@ "integrity": "sha512-TmQQF7mOiYZsxX4kaQbrN06SXZ31UR5m4ur6sjM+VhaIuF79lqHe7uLmmt/NGVBIQojox6a4eilQ8DQDEQv31Q==", "dev": true, "requires": { - "base64url": "^3.0.0", - "got": "^8.3.2", - "lodash": "^4.17.11", - "lru-cache": "^4.1.3", - "node-jose": "^1.1.0", - "oidc-token-hash": "^3.0.1", - "p-any": "^1.1.0" + "base64url": "3.0.1", + "got": "8.3.2", + "lodash": "4.17.11", + "lru-cache": "4.1.4", + "node-jose": "1.1.0", + "oidc-token-hash": "3.0.1", + "p-any": "1.1.0" } }, "optionator": { @@ -8768,17 +8762,17 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" } }, "os-homedir": { "version": "1.0.2", - "resolved": "http://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-locale": { @@ -8786,14 +8780,14 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "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" } }, "os-tmpdir": { "version": "1.0.2", - "resolved": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "output-file-sync": { @@ -8801,9 +8795,9 @@ "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", "requires": { - "graceful-fs": "^4.1.4", - "mkdirp": "^0.5.1", - "object-assign": "^4.1.0" + "graceful-fs": "4.1.15", + "mkdirp": "0.5.1", + "object-assign": "4.1.1" } }, "p-any": { @@ -8812,7 +8806,7 @@ "integrity": "sha512-Ef0tVa4CZ5pTAmKn+Cg3w8ABBXh+hHO1aV8281dKOoUHfX+3tjG2EaFcC+aZyagg9b4EYGsHEjz21DnEE8Og2g==", "dev": true, "requires": { - "p-some": "^2.0.0" + "p-some": "2.0.1" } }, "p-cancelable": { @@ -8837,7 +8831,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "requires": { - "p-try": "^1.0.0" + "p-try": "1.0.0" } }, "p-locate": { @@ -8845,7 +8839,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.3.0" } }, "p-some": { @@ -8854,7 +8848,7 @@ "integrity": "sha1-Zdh8ixVO289SIdFnd4ttLhUPbwY=", "dev": true, "requires": { - "aggregate-error": "^1.0.0" + "aggregate-error": "1.0.0" } }, "p-timeout": { @@ -8863,7 +8857,7 @@ "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", "dev": true, "requires": { - "p-finally": "^1.0.0" + "p-finally": "1.0.0" } }, "p-try": { @@ -8877,10 +8871,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "optional": true, "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" } }, "parse-json": { @@ -8888,7 +8882,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.2" } }, "parseqs": { @@ -8896,7 +8890,7 @@ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "requires": { - "better-assert": "~1.0.0" + "better-assert": "1.0.2" } }, "parseuri": { @@ -8904,7 +8898,7 @@ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "requires": { - "better-assert": "~1.0.0" + "better-assert": "1.0.2" } }, "parseurl": { @@ -8923,12 +8917,12 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "requires": { - "pinkie-promise": "^2.0.0" + "pinkie-promise": "2.0.1" } }, "path-is-absolute": { "version": "1.0.1", - "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-is-inside": { @@ -8968,7 +8962,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { - "pify": "^2.0.0" + "pify": "2.3.0" } }, "pathval": { @@ -8982,11 +8976,11 @@ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ripemd160": "2.0.2", + "safe-buffer": "5.1.2", + "sha.js": "2.4.11" } }, "performance-now": { @@ -9010,7 +9004,7 @@ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "pkg-conf": { @@ -9018,8 +9012,8 @@ "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", "requires": { - "find-up": "^2.0.0", - "load-json-file": "^4.0.0" + "find-up": "2.1.0", + "load-json-file": "4.0.0" }, "dependencies": { "find-up": { @@ -9027,7 +9021,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "load-json-file": { @@ -9035,10 +9029,10 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.15", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" } }, "parse-json": { @@ -9046,8 +9040,8 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" } }, "pify": { @@ -9062,9 +9056,9 @@ "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=", "requires": { - "debug-log": "^1.0.0", - "find-root": "^1.0.0", - "xtend": "^4.0.1" + "debug-log": "1.0.1", + "find-root": "1.1.0", + "xtend": "4.0.1" } }, "pkg-dir": { @@ -9072,7 +9066,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "requires": { - "find-up": "^1.0.0" + "find-up": "1.1.2" } }, "pluralize": { @@ -9134,8 +9128,8 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" + "loose-envify": "1.4.0", + "object-assign": "4.1.1" } }, "pseudomap": { @@ -9157,10 +9151,10 @@ }, "pushdata-bitcoin": { "version": "1.0.1", - "resolved": "http://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", "integrity": "sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=", "requires": { - "bitcoin-ops": "^1.3.0" + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646" } }, "qrcode": { @@ -9169,10 +9163,10 @@ "integrity": "sha512-sYo+Tf7nx14YZSNPqnyEWefVrjUEpM4/NxOrxOk+jcQ9NhM2LCNuzGmQctDhGTQdO2YJorKY55dypx+hvVo5jw==", "requires": { "can-promise": "0.0.1", - "dijkstrajs": "^1.0.1", - "isarray": "^2.0.1", - "pngjs": "^3.3.0", - "yargs": "^8.0.2" + "dijkstrajs": "1.0.1", + "isarray": "2.0.4", + "pngjs": "3.3.3", + "yargs": "8.0.2" }, "dependencies": { "isarray": { @@ -9193,9 +9187,9 @@ "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", "dev": true, "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" + "decode-uri-component": "0.2.0", + "object-assign": "4.1.1", + "strict-uri-encode": "1.1.0" } }, "randomatic": { @@ -9204,9 +9198,9 @@ "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", "optional": true, "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" + "is-number": "4.0.0", + "kind-of": "6.0.2", + "math-random": "1.0.1" }, "dependencies": { "is-number": { @@ -9228,7 +9222,7 @@ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "requires": { - "safe-buffer": "^5.1.0" + "safe-buffer": "5.1.2" } }, "range-parser": { @@ -9242,9 +9236,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" } }, "read-pkg-up": { @@ -9252,8 +9246,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" + "find-up": "2.1.0", + "read-pkg": "2.0.0" }, "dependencies": { "find-up": { @@ -9261,7 +9255,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } } } @@ -9271,13 +9265,13 @@ "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "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" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.2", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" }, "dependencies": { "inherits": { @@ -9293,9 +9287,9 @@ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "optional": true, "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" + "graceful-fs": "4.1.15", + "micromatch": "3.1.10", + "readable-stream": "2.3.6" }, "dependencies": { "arr-diff": { @@ -9315,16 +9309,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "optional": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.3", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -9333,7 +9327,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "optional": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -9353,13 +9347,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "optional": true, "requires": { - "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" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -9368,7 +9362,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "optional": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -9377,7 +9371,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "optional": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -9386,7 +9380,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "optional": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -9395,7 +9389,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "optional": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -9406,7 +9400,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "optional": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -9415,7 +9409,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "optional": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -9426,9 +9420,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "optional": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { @@ -9445,14 +9439,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "optional": 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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -9461,7 +9455,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "optional": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -9470,7 +9464,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "optional": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -9481,10 +9475,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "optional": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -9493,7 +9487,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "optional": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -9504,7 +9498,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "optional": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -9513,7 +9507,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "optional": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -9522,9 +9516,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "optional": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-number": { @@ -9533,7 +9527,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "optional": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -9542,7 +9536,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "optional": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -9564,19 +9558,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "optional": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.13", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } } } @@ -9596,9 +9590,9 @@ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "requires": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "private": "0.1.8" } }, "regex-cache": { @@ -9607,7 +9601,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "optional": true, "requires": { - "is-equal-shallow": "^0.1.3" + "is-equal-shallow": "0.1.3" } }, "regex-not": { @@ -9615,8 +9609,8 @@ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" } }, "regexpp": { @@ -9630,27 +9624,27 @@ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" + "regenerate": "1.4.0", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" } }, "regjsgen": { "version": "0.2.0", - "resolved": "http://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" }, "regjsparser": { "version": "0.1.5", - "resolved": "http://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "requires": { - "jsesc": "~0.5.0" + "jsesc": "0.5.0" }, "dependencies": { "jsesc": { "version": "0.5.0", - "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" } } @@ -9675,7 +9669,7 @@ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "requires": { - "is-finite": "^1.0.0" + "is-finite": "1.0.2" } }, "repl.history": { @@ -9689,26 +9683,26 @@ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "dev": true, "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" + "aws-sign2": "0.7.0", + "aws4": "1.8.0", + "caseless": "0.12.0", + "combined-stream": "1.0.7", + "extend": "3.0.2", + "forever-agent": "0.6.1", + "form-data": "2.3.3", + "har-validator": "5.1.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.21", + "oauth-sign": "0.9.0", + "performance-now": "2.1.0", + "qs": "6.5.2", + "safe-buffer": "5.1.2", + "tough-cookie": "2.4.3", + "tunnel-agent": "0.6.0", + "uuid": "3.3.2" }, "dependencies": { "qs": { @@ -9731,11 +9725,11 @@ }, "require-uncached": { "version": "1.0.3", - "resolved": "http://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" + "caller-path": "0.1.0", + "resolve-from": "1.0.1" } }, "resolve": { @@ -9743,7 +9737,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "requires": { - "path-parse": "^1.0.5" + "path-parse": "1.0.6" } }, "resolve-from": { @@ -9762,7 +9756,7 @@ "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", "dev": true, "requires": { - "lowercase-keys": "^1.0.0" + "lowercase-keys": "1.0.1" } }, "restore-cursor": { @@ -9770,8 +9764,8 @@ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "onetime": "2.0.1", + "signal-exit": "3.0.2" } }, "resumer": { @@ -9779,7 +9773,7 @@ "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", "requires": { - "through": "~2.3.4" + "through": "2.3.8" } }, "ret": { @@ -9792,7 +9786,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "glob": "^7.0.5" + "glob": "7.1.3" } }, "ripemd160": { @@ -9800,8 +9794,8 @@ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "hash-base": "3.0.4", + "inherits": "2.0.1" } }, "run-async": { @@ -9809,7 +9803,7 @@ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "requires": { - "is-promise": "^2.1.0" + "is-promise": "2.1.0" } }, "run-parallel": { @@ -9827,7 +9821,7 @@ "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "requires": { - "rx-lite": "*" + "rx-lite": "4.0.8" } }, "rxjs": { @@ -9836,7 +9830,7 @@ "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", "dev": true, "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.3" } }, "safe-buffer": { @@ -9846,10 +9840,10 @@ }, "safe-regex": { "version": "1.1.0", - "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { - "ret": "~0.1.10" + "ret": "0.1.15" } }, "safer-buffer": { @@ -9868,7 +9862,7 @@ "resolved": "https://registry.npmjs.org/satoshi-bitcoin/-/satoshi-bitcoin-1.0.4.tgz", "integrity": "sha1-0AK2dwddXLvywhGo3zJUvN9QseQ=", "requires": { - "big.js": "^3.1.3" + "big.js": "3.2.0" } }, "scryptsy": { @@ -9881,14 +9875,14 @@ "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.5.2.tgz", "integrity": "sha512-iin3kojdybY6NArd+UFsoTuapOF7bnJNf2UbcWXaY3z+E1sJDipl60vtzB5hbO/uquBu7z0fd4VC4Irp+xoFVQ==", "requires": { - "bindings": "^1.2.1", - "bip66": "^1.1.3", - "bn.js": "^4.11.3", - "create-hash": "^1.1.2", - "drbg.js": "^1.0.1", - "elliptic": "^6.2.3", - "nan": "^2.2.1", - "safe-buffer": "^5.1.0" + "bindings": "1.3.1", + "bip66": "1.1.5", + "bn.js": "4.11.8", + "create-hash": "1.2.0", + "drbg.js": "1.0.1", + "elliptic": "6.4.1", + "nan": "2.11.1", + "safe-buffer": "5.1.2" } }, "semver": { @@ -9906,10 +9900,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" }, "dependencies": { "extend-shallow": { @@ -9917,7 +9911,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -9927,8 +9921,8 @@ "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "shebang-command": { @@ -9936,7 +9930,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -9955,13 +9949,13 @@ "integrity": "sha512-trdx+mB0VBBgoYucy6a9L7/jfQOmvGeaKZT4OOJ+lPAtI8623xyGr8wLiE4eojzBS8G9yXbhx42GHUOVLr4X2w==", "dev": true, "requires": { - "@sinonjs/formatio": "^2.0.0", - "diff": "^3.1.0", - "lodash.get": "^4.4.2", - "lolex": "^2.2.0", - "nise": "^1.2.0", - "supports-color": "^5.1.0", - "type-detect": "^4.0.5" + "@sinonjs/formatio": "2.0.0", + "diff": "3.5.0", + "lodash.get": "4.4.2", + "lolex": "2.7.5", + "nise": "1.4.6", + "supports-color": "5.5.0", + "type-detect": "4.0.8" }, "dependencies": { "supports-color": { @@ -9970,7 +9964,7 @@ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -9985,7 +9979,7 @@ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "requires": { - "is-fullwidth-code-point": "^2.0.0" + "is-fullwidth-code-point": "2.0.0" } }, "snapdragon": { @@ -9993,14 +9987,14 @@ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "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.2", + "use": "3.1.1" }, "dependencies": { "debug": { @@ -10016,7 +10010,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -10024,7 +10018,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -10035,9 +10029,9 @@ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "optional": true, "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" }, "dependencies": { "define-property": { @@ -10046,7 +10040,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "optional": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -10055,7 +10049,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "optional": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -10064,7 +10058,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "optional": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -10073,9 +10067,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "optional": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -10097,7 +10091,7 @@ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "optional": true, "requires": { - "kind-of": "^3.2.0" + "kind-of": "3.2.2" } }, "socket.io": { @@ -10105,12 +10099,12 @@ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", "requires": { - "debug": "~3.1.0", - "engine.io": "~3.2.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", + "debug": "3.1.0", + "engine.io": "3.2.1", + "has-binary2": "1.0.3", + "socket.io-adapter": "1.1.1", "socket.io-client": "2.1.1", - "socket.io-parser": "~3.2.0" + "socket.io-parser": "3.2.0" } }, "socket.io-adapter": { @@ -10127,25 +10121,25 @@ "base64-arraybuffer": "0.1.5", "component-bind": "1.0.0", "component-emitter": "1.2.1", - "debug": "~3.1.0", - "engine.io-client": "~3.2.0", - "has-binary2": "~1.0.2", + "debug": "3.1.0", + "engine.io-client": "3.2.1", + "has-binary2": "1.0.3", "has-cors": "1.1.0", "indexof": "0.0.1", "object-component": "0.0.3", "parseqs": "0.0.5", "parseuri": "0.0.5", - "socket.io-parser": "~3.2.0", + "socket.io-parser": "3.2.0", "to-array": "0.1.4" } }, "socket.io-parser": { "version": "3.2.0", - "resolved": "http://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", "requires": { "component-emitter": "1.2.1", - "debug": "~3.1.0", + "debug": "3.1.0", "isarray": "2.0.1" }, "dependencies": { @@ -10162,7 +10156,7 @@ "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", "dev": true, "requires": { - "is-plain-obj": "^1.0.0" + "is-plain-obj": "1.1.0" } }, "source-map": { @@ -10175,11 +10169,11 @@ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "atob": "2.1.2", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" } }, "source-map-support": { @@ -10187,7 +10181,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "requires": { - "source-map": "^0.5.6" + "source-map": "0.5.7" } }, "source-map-url": { @@ -10200,8 +10194,8 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz", "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==", "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.2" } }, "spdx-exceptions": { @@ -10214,8 +10208,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.2.0", + "spdx-license-ids": "3.0.2" } }, "spdx-license-ids": { @@ -10228,7 +10222,7 @@ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "requires": { - "extend-shallow": "^3.0.0" + "extend-shallow": "3.0.2" } }, "sprintf-js": { @@ -10242,15 +10236,15 @@ "integrity": "sha512-Ra/OXQtuh0/enyl4ETZAfTaeksa6BXks5ZcjpSUNrjBr0DvrJKX+1fsKDPpT9TBXgHAFsa4510aNVgI8g/+SzA==", "dev": true, "requires": { - "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" + "asn1": "0.2.4", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.2", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.2", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "safer-buffer": "2.1.2", + "tweetnacl": "0.14.5" } }, "standard": { @@ -10258,15 +10252,15 @@ "resolved": "http://registry.npmjs.org/standard/-/standard-11.0.1.tgz", "integrity": "sha512-nu0jAcHiSc8H+gJCXeiziMVZNDYi8MuqrYJKxTgjP4xKXZMKm311boqQIzDrYI/ktosltxt2CbDjYQs9ANC8IA==", "requires": { - "eslint": "~4.18.0", + "eslint": "4.18.2", "eslint-config-standard": "11.0.0", "eslint-config-standard-jsx": "5.0.0", - "eslint-plugin-import": "~2.9.0", - "eslint-plugin-node": "~6.0.0", - "eslint-plugin-promise": "~3.7.0", - "eslint-plugin-react": "~7.7.0", - "eslint-plugin-standard": "~3.0.1", - "standard-engine": "~8.0.0" + "eslint-plugin-import": "2.9.0", + "eslint-plugin-node": "6.0.1", + "eslint-plugin-promise": "3.7.0", + "eslint-plugin-react": "7.7.0", + "eslint-plugin-standard": "3.0.1", + "standard-engine": "8.0.1" }, "dependencies": { "ansi-regex": { @@ -10279,43 +10273,43 @@ "resolved": "http://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", "requires": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", - "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.2", - "esquery": "^1.0.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.0.1", - "ignore": "^3.3.3", - "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "require-uncached": "^1.0.3", - "semver": "^5.3.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", + "ajv": "5.5.2", + "babel-code-frame": "6.26.0", + "chalk": "2.4.1", + "concat-stream": "1.6.2", + "cross-spawn": "5.1.0", + "debug": "3.1.0", + "doctrine": "2.1.0", + "eslint-scope": "3.7.3", + "eslint-visitor-keys": "1.0.0", + "espree": "3.5.4", + "esquery": "1.0.1", + "esutils": "2.0.2", + "file-entry-cache": "2.0.0", + "functional-red-black-tree": "1.0.1", + "glob": "7.1.3", + "globals": "11.9.0", + "ignore": "3.3.10", + "imurmurhash": "0.1.4", + "inquirer": "3.3.0", + "is-resolvable": "1.1.0", + "js-yaml": "3.12.0", + "json-stable-stringify-without-jsonify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.11", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "7.0.0", + "progress": "2.0.1", + "require-uncached": "1.0.3", + "semver": "5.6.0", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", "table": "4.0.2", - "text-table": "~0.2.0" + "text-table": "0.2.0" } }, "eslint-plugin-node": { @@ -10323,10 +10317,10 @@ "resolved": "http://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz", "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", "requires": { - "ignore": "^3.3.6", - "minimatch": "^3.0.4", - "resolve": "^1.3.3", - "semver": "^5.4.1" + "ignore": "3.3.10", + "minimatch": "3.0.4", + "resolve": "1.8.1", + "semver": "5.6.0" } }, "globals": { @@ -10339,7 +10333,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -10349,10 +10343,10 @@ "resolved": "http://registry.npmjs.org/standard-engine/-/standard-engine-8.0.1.tgz", "integrity": "sha512-LA531C3+nljom/XRvdW/hGPXwmilRkaRkENhO3FAGF1Vtq/WtCXzgmnc5S6vUHHsgv534MRy02C1ikMwZXC+tw==", "requires": { - "deglob": "^2.1.0", - "get-stdin": "^6.0.0", - "minimist": "^1.1.0", - "pkg-conf": "^2.0.0" + "deglob": "2.1.1", + "get-stdin": "6.0.0", + "minimist": "1.2.0", + "pkg-conf": "2.1.0" }, "dependencies": { "minimist": { @@ -10367,8 +10361,8 @@ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" + "define-property": "0.2.5", + "object-copy": "0.1.0" }, "dependencies": { "define-property": { @@ -10376,7 +10370,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -10392,8 +10386,8 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "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" }, "dependencies": { "ansi-regex": { @@ -10406,7 +10400,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -10416,17 +10410,17 @@ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.0", - "function-bind": "^1.0.2" + "define-properties": "1.1.3", + "es-abstract": "1.12.0", + "function-bind": "1.1.1" } }, "string_decoder": { "version": "1.1.1", - "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.2" } }, "strip-ansi": { @@ -10434,7 +10428,7 @@ "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-bom": { @@ -10444,7 +10438,7 @@ }, "strip-eof": { "version": "1.0.0", - "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, "strip-json-comments": { @@ -10458,16 +10452,16 @@ "integrity": "sha1-cDUpoHFOV+EjlZ3e+84ZOy5Q0RU=", "dev": true, "requires": { - "component-emitter": "^1.2.0", - "cookiejar": "^2.0.6", - "debug": "^2.2.0", - "extend": "^3.0.0", + "component-emitter": "1.2.1", + "cookiejar": "2.1.2", + "debug": "2.6.9", + "extend": "3.0.2", "form-data": "1.0.0-rc4", - "formidable": "^1.0.17", - "methods": "^1.1.1", - "mime": "^1.3.4", - "qs": "^6.1.0", - "readable-stream": "^2.0.5" + "formidable": "1.2.1", + "methods": "1.1.2", + "mime": "1.6.0", + "qs": "6.6.0", + "readable-stream": "2.3.6" }, "dependencies": { "debug": { @@ -10481,13 +10475,13 @@ }, "form-data": { "version": "1.0.0-rc4", - "resolved": "http://registry.npmjs.org/form-data/-/form-data-1.0.0-rc4.tgz", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc4.tgz", "integrity": "sha1-BaxrwiIntD5EYfSIFhVUaZ1Pi14=", "dev": true, "requires": { - "async": "^1.5.2", - "combined-stream": "^1.0.5", - "mime-types": "^2.1.10" + "async": "1.5.2", + "combined-stream": "1.0.7", + "mime-types": "2.1.21" } } } @@ -10498,8 +10492,8 @@ "integrity": "sha1-oFgIHXiPFRXUcA11Aogea3WeRM0=", "dev": true, "requires": { - "methods": "1.x", - "superagent": "^2.0.0" + "methods": "1.1.2", + "superagent": "2.3.0" } }, "supports-color": { @@ -10512,12 +10506,12 @@ "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "requires": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", + "ajv": "5.5.2", + "ajv-keywords": "2.1.1", + "chalk": "2.4.1", + "lodash": "4.17.11", "slice-ansi": "1.0.0", - "string-width": "^2.1.1" + "string-width": "2.1.1" } }, "tape": { @@ -10525,19 +10519,19 @@ "resolved": "https://registry.npmjs.org/tape/-/tape-4.9.1.tgz", "integrity": "sha512-6fKIXknLpoe/Jp4rzHKFPpJUHDHDqn8jus99IfPnHIjyz78HYlefTGD3b5EkbQzuLfaEvmfPK3IolLgq2xT3kw==", "requires": { - "deep-equal": "~1.0.1", - "defined": "~1.0.0", - "for-each": "~0.3.3", - "function-bind": "~1.1.1", - "glob": "~7.1.2", - "has": "~1.0.3", - "inherits": "~2.0.3", - "minimist": "~1.2.0", - "object-inspect": "~1.6.0", - "resolve": "~1.7.1", - "resumer": "~0.0.0", - "string.prototype.trim": "~1.1.2", - "through": "~2.3.8" + "deep-equal": "1.0.1", + "defined": "1.0.0", + "for-each": "0.3.3", + "function-bind": "1.1.1", + "glob": "7.1.3", + "has": "1.0.3", + "inherits": "2.0.3", + "minimist": "1.2.0", + "object-inspect": "1.6.0", + "resolve": "1.7.1", + "resumer": "0.0.0", + "string.prototype.trim": "1.1.2", + "through": "2.3.8" }, "dependencies": { "inherits": { @@ -10555,7 +10549,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", "requires": { - "path-parse": "^1.0.5" + "path-parse": "1.0.6" } } } @@ -10587,7 +10581,7 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "requires": { - "os-tmpdir": "~1.0.2" + "os-tmpdir": "1.0.2" } }, "to-array": { @@ -10605,7 +10599,7 @@ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "to-regex": { @@ -10613,10 +10607,10 @@ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" } }, "to-regex-range": { @@ -10625,8 +10619,8 @@ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "optional": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "3.0.0", + "repeat-string": "1.6.1" }, "dependencies": { "is-number": { @@ -10635,7 +10629,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "optional": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } } } @@ -10645,7 +10639,7 @@ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", "requires": { - "nopt": "~1.0.10" + "nopt": "1.0.10" } }, "tough-cookie": { @@ -10654,8 +10648,8 @@ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "dev": true, "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" + "psl": "1.1.29", + "punycode": "1.4.1" }, "dependencies": { "punycode": { @@ -10683,7 +10677,7 @@ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "tweetnacl": { @@ -10697,7 +10691,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { - "prelude-ls": "~1.1.2" + "prelude-ls": "1.1.2" } }, "type-detect": { @@ -10713,7 +10707,7 @@ "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "~2.1.18" + "mime-types": "2.1.21" } }, "typedarray": { @@ -10736,10 +10730,10 @@ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "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": { "extend-shallow": { @@ -10747,7 +10741,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "set-value": { @@ -10755,10 +10749,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" } } } @@ -10778,8 +10772,8 @@ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "has-value": "0.3.1", + "isobject": "3.0.1" }, "dependencies": { "has-value": { @@ -10787,9 +10781,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" }, "dependencies": { "isobject": { @@ -10820,7 +10814,7 @@ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "requires": { - "punycode": "^2.1.0" + "punycode": "2.1.1" } }, "urix": { @@ -10834,7 +10828,7 @@ "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "dev": true, "requires": { - "prepend-http": "^2.0.0" + "prepend-http": "2.0.0" } }, "url-to-options": { @@ -10855,7 +10849,7 @@ }, "util": { "version": "0.10.3", - "resolved": "http://registry.npmjs.org/util/-/util-0.10.3.tgz", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "requires": { "inherits": "2.0.1" @@ -10877,7 +10871,7 @@ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "requires": { - "user-home": "^1.1.1" + "user-home": "1.1.1" } }, "validate-npm-package-license": { @@ -10885,8 +10879,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.2", + "spdx-expression-parse": "3.0.0" } }, "varuint-bitcoin": { @@ -10894,7 +10888,7 @@ "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz", "integrity": "sha512-jCEPG+COU/1Rp84neKTyDJQr478/hAfVp5xxYn09QEH0yBjbmPeMfuuQIrp+BUD83hybtYZKhr5elV3bvdV1bA==", "requires": { - "safe-buffer": "^5.1.1" + "safe-buffer": "5.1.2" } }, "verror": { @@ -10903,9 +10897,9 @@ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": true, "requires": { - "assert-plus": "^1.0.0", + "assert-plus": "1.0.0", "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "extsprintf": "1.3.0" } }, "which": { @@ -10913,7 +10907,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -10926,7 +10920,7 @@ "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", "requires": { - "bs58check": "<3.0.0" + "bs58check": "2.1.2" } }, "window-or-global": { @@ -10944,8 +10938,8 @@ "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -10953,7 +10947,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.0" + "number-is-nan": "1.0.1" } }, "string-width": { @@ -10961,9 +10955,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -10978,7 +10972,7 @@ "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "requires": { - "mkdirp": "^0.5.1" + "mkdirp": "0.5.1" } }, "ws": { @@ -10986,9 +10980,9 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" + "async-limiter": "1.0.0", + "safe-buffer": "5.1.2", + "ultron": "1.1.1" } }, "xmlhttprequest-ssl": { @@ -11016,19 +11010,19 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", "requires": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^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": "^7.0.0" + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.3", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.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": "7.0.0" } }, "yargs-parser": { @@ -11036,7 +11030,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" } }, "yeast": { From 09c805cfe63a49aa21e19a8b8bd75550d323bb72 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 30 Nov 2018 11:18:02 +0900 Subject: [PATCH 142/480] Remove unused deps. --- .babelrc | 2 +- README.md | 1 - index.js | 2 +- package-lock.json | 2433 ++++----------------------------------------- package.json | 13 +- 5 files changed, 172 insertions(+), 2279 deletions(-) diff --git a/.babelrc b/.babelrc index f65644ac..c13c5f62 100644 --- a/.babelrc +++ b/.babelrc @@ -1,3 +1,3 @@ { - "presets": ["flow", "es2015"] + "presets": ["es2015"] } diff --git a/README.md b/README.md index a2ce8355..a8b227d1 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,6 @@ Open Source / Creative Commons Listings - [cp-file](https://www.npmjs.com/package/cp-file) - MIT - [ecurve](https://www.npmjs.com/package/ecurve) - MIT - [figlet](https://www.npmjs.com/package/figlet) - MIT -- [flow-bin](https://www.npmjs.com/package/flow-bin) - MIT - [git-clone](https://www.npmjs.com/package/git-clone) - ICS - [ini](https://www.npmjs.com/package/ini) - ICS - [mkdirp](https://www.npmjs.com/package/mkdirp) - MIT diff --git a/index.js b/index.js index ea579807..87d17e09 100755 --- a/index.js +++ b/index.js @@ -18,7 +18,7 @@ const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") const cmd = require("node-cmd") -program.version("2.2.5 ", "-v, --version") +program.version("2.2.6 ", "-v, --version") program .command("new ") diff --git a/package-lock.json b/package-lock.json index da16364f..e0304894 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "2.2.5", + "version": "2.2.6", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -8,59 +8,16 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, "requires": { "@babel/highlight": "7.0.0" } }, - "@babel/generator": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.1.6.tgz", - "integrity": "sha512-brwPBtVvdYdGxtenbQgfCdDPmtkmUBZPjUoK5SXJEBuHaA5BCubh9ly65fzXz7R6o5rA76Rs22ES8Z+HCc0YIQ==", - "requires": { - "@babel/types": "7.1.6", - "jsesc": "2.5.2", - "lodash": "4.17.11", - "source-map": "0.5.7", - "trim-right": "1.0.1" - }, - "dependencies": { - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - } - } - }, - "@babel/helper-function-name": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", - "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", - "requires": { - "@babel/helper-get-function-arity": "7.0.0", - "@babel/template": "7.1.2", - "@babel/types": "7.1.6" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", - "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", - "requires": { - "@babel/types": "7.1.6" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", - "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", - "requires": { - "@babel/types": "7.1.6" - } - }, "@babel/highlight": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "dev": true, "requires": { "chalk": "2.4.1", "esutils": "2.0.2", @@ -70,84 +27,11 @@ "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - } - } - }, - "@babel/parser": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.1.6.tgz", - "integrity": "sha512-dWP6LJm9nKT6ALaa+bnL247GHHMWir3vSlZ2+IHgHgktZQx0L3Uvq2uAWcuzIe+fujRsYWBW2q622C5UvGK9iQ==" - }, - "@babel/template": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.1.2.tgz", - "integrity": "sha512-SY1MmplssORfFiLDcOETrW7fCLl+PavlwMh92rrGcikQaRq4iWPVH0MpwPpY3etVMx6RnDjXtr6VZYr/IbP/Ag==", - "requires": { - "@babel/code-frame": "7.0.0", - "@babel/parser": "7.1.6", - "@babel/types": "7.1.6" - } - }, - "@babel/traverse": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.1.6.tgz", - "integrity": "sha512-CXedit6GpISz3sC2k2FsGCUpOhUqKdyL0lqNrImQojagnUMXf8hex4AxYFRuMkNGcvJX5QAFGzB5WJQmSv8SiQ==", - "requires": { - "@babel/code-frame": "7.0.0", - "@babel/generator": "7.1.6", - "@babel/helper-function-name": "7.1.0", - "@babel/helper-split-export-declaration": "7.0.0", - "@babel/parser": "7.1.6", - "@babel/types": "7.1.6", - "debug": "4.1.0", - "globals": "11.9.0", - "lodash": "4.17.11" - }, - "dependencies": { - "debug": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", - "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", - "requires": { - "ms": "2.1.1" - } - }, - "globals": { - "version": "11.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz", - "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==" - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } - } - }, - "@babel/types": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.1.6.tgz", - "integrity": "sha512-DMiUzlY9DSjVsOylJssxLHSgj6tWM9PRFJOGW/RaOglVOK9nzTxoOMfTfRQXGUCUQ/HmlG2efwC+XqUEJ5ay4w==", - "requires": { - "esutils": "2.0.2", - "lodash": "4.17.11", - "to-fast-properties": "2.0.0" - }, - "dependencies": { - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true } } }, - "@sindresorhus/is": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", - "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==", - "dev": true - }, "@sinonjs/formatio": { "version": "2.0.0", "resolved": "http://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", @@ -166,12 +50,6 @@ "array-from": "2.1.1" } }, - "@types/node": { - "version": "10.12.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.10.tgz", - "integrity": "sha512-8xZEYckCbUVgK8Eg7lf5Iy4COKJ5uXlnIOnePN0WUwSQggy9tolM+tDJf7wMOnT/JT/W9xDYIaYggt3mRV2O5w==", - "dev": true - }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -211,16 +89,6 @@ "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" }, - "aggregate-error": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-1.0.0.tgz", - "integrity": "sha1-iINE2tAiCnLjr1CQYRf0h3GSX6w=", - "dev": true, - "requires": { - "clean-stack": "1.3.0", - "indent-string": "3.2.0" - } - }, "ajv": { "version": "5.5.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", @@ -349,12 +217,6 @@ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, - "async": { - "version": "1.5.2", - "resolved": "http://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, "async-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", @@ -505,16 +367,6 @@ "babel-types": "6.26.0" } }, - "babel-helper-builder-react-jsx": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", - "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "esutils": "2.0.2" - } - }, "babel-helper-call-delegate": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", @@ -656,16 +508,6 @@ "resolved": "http://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" }, - "babel-plugin-syntax-flow": { - "version": "6.18.0", - "resolved": "http://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", - "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=" - }, - "babel-plugin-syntax-jsx": { - "version": "6.18.0", - "resolved": "http://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" - }, "babel-plugin-syntax-trailing-function-commas": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", @@ -903,51 +745,6 @@ "babel-runtime": "6.26.0" } }, - "babel-plugin-transform-flow-strip-types": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", - "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", - "requires": { - "babel-plugin-syntax-flow": "6.18.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-react-display-name": { - "version": "6.25.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", - "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-react-jsx": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", - "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", - "requires": { - "babel-helper-builder-react-jsx": "6.26.0", - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-react-jsx-self": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", - "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", - "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-react-jsx-source": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", - "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", - "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" - } - }, "babel-plugin-transform-regenerator": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", @@ -1050,27 +847,6 @@ "babel-plugin-transform-regenerator": "6.26.0" } }, - "babel-preset-flow": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", - "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", - "requires": { - "babel-plugin-transform-flow-strip-types": "6.22.0" - } - }, - "babel-preset-react": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", - "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", - "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-plugin-transform-react-display-name": "6.25.0", - "babel-plugin-transform-react-jsx": "6.24.1", - "babel-plugin-transform-react-jsx-self": "6.22.0", - "babel-plugin-transform-react-jsx-source": "6.22.0", - "babel-preset-flow": "6.23.0" - } - }, "babel-register": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", @@ -1241,12 +1017,6 @@ "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=" }, - "base64url": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz", - "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==", - "dev": true - }, "bc-bip68": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/bc-bip68/-/bc-bip68-1.0.5.tgz", @@ -1332,998 +1102,9 @@ "version": "github:Bitcoin-com/bip32-utils#966fb8f0e0d4c667e4ee89adfa20c2078d66887c", "requires": { "keccak": "1.4.0", - "nyc": "13.1.0", + "nyc": "11.9.0", "standard": "11.0.1", "tape": "4.9.1" - }, - "dependencies": { - "nyc": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-13.1.0.tgz", - "integrity": "sha512-3GyY6TpQ58z9Frpv4GMExE1SV2tAgYqC7HSy2omEhNiCT3mhT9NyiOvIE8zkbuJVFzmvvNTnE4h/7/wQae7xLg==", - "requires": { - "archy": "1.0.0", - "arrify": "1.0.1", - "caching-transform": "2.0.0", - "convert-source-map": "1.6.0", - "debug-log": "1.0.1", - "find-cache-dir": "2.0.0", - "find-up": "3.0.0", - "foreground-child": "1.5.6", - "glob": "7.1.3", - "istanbul-lib-coverage": "2.0.1", - "istanbul-lib-hook": "2.0.1", - "istanbul-lib-instrument": "3.0.0", - "istanbul-lib-report": "2.0.2", - "istanbul-lib-source-maps": "2.0.1", - "istanbul-reports": "2.0.1", - "make-dir": "1.3.0", - "merge-source-map": "1.1.0", - "resolve-from": "4.0.0", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "spawn-wrap": "1.4.2", - "test-exclude": "5.0.0", - "uuid": "3.3.2", - "yargs": "11.1.0", - "yargs-parser": "9.0.2" - }, - "dependencies": { - "align-text": { - "version": "0.1.4", - "bundled": true, - "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" - } - }, - "amdefine": { - "version": "1.0.1", - "bundled": true - }, - "ansi-regex": { - "version": "3.0.0", - "bundled": true - }, - "append-transform": { - "version": "1.0.0", - "bundled": true, - "requires": { - "default-require-extensions": "2.0.0" - } - }, - "archy": { - "version": "1.0.0", - "bundled": true - }, - "arrify": { - "version": "1.0.1", - "bundled": true - }, - "async": { - "version": "1.5.2", - "bundled": true - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "builtin-modules": { - "version": "1.1.1", - "bundled": true - }, - "caching-transform": { - "version": "2.0.0", - "bundled": true, - "requires": { - "make-dir": "1.3.0", - "md5-hex": "2.0.0", - "package-hash": "2.0.0", - "write-file-atomic": "2.3.0" - } - }, - "camelcase": { - "version": "1.2.1", - "bundled": true, - "optional": true - }, - "center-align": { - "version": "0.1.3", - "bundled": true, - "optional": true, - "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" - } - }, - "cliui": { - "version": "2.1.0", - "bundled": true, - "optional": true, - "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "bundled": true, - "optional": true - } - } - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true - }, - "commondir": { - "version": "1.0.1", - "bundled": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true - }, - "convert-source-map": { - "version": "1.6.0", - "bundled": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "cross-spawn": { - "version": "4.0.2", - "bundled": true, - "requires": { - "lru-cache": "4.1.3", - "which": "1.3.1" - } - }, - "debug": { - "version": "3.1.0", - "bundled": true, - "requires": { - "ms": "2.0.0" - } - }, - "debug-log": { - "version": "1.0.1", - "bundled": true - }, - "decamelize": { - "version": "1.2.0", - "bundled": true - }, - "default-require-extensions": { - "version": "2.0.0", - "bundled": true, - "requires": { - "strip-bom": "3.0.0" - } - }, - "error-ex": { - "version": "1.3.2", - "bundled": true, - "requires": { - "is-arrayish": "0.2.1" - } - }, - "es6-error": { - "version": "4.1.1", - "bundled": true - }, - "execa": { - "version": "0.7.0", - "bundled": 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" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "bundled": true, - "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" - } - } - } - }, - "find-cache-dir": { - "version": "2.0.0", - "bundled": true, - "requires": { - "commondir": "1.0.1", - "make-dir": "1.3.0", - "pkg-dir": "3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "bundled": true, - "requires": { - "locate-path": "3.0.0" - } - }, - "foreground-child": { - "version": "1.5.6", - "bundled": true, - "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true - }, - "get-caller-file": { - "version": "1.0.3", - "bundled": true - }, - "get-stream": { - "version": "3.0.0", - "bundled": true - }, - "glob": { - "version": "7.1.3", - "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" - } - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true - }, - "handlebars": { - "version": "4.0.11", - "bundled": true, - "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "bundled": true, - "requires": { - "amdefine": "1.0.1" - } - } - } - }, - "has-flag": { - "version": "3.0.0", - "bundled": true - }, - "hosted-git-info": { - "version": "2.7.1", - "bundled": true - }, - "imurmurhash": { - "version": "0.1.4", - "bundled": true - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true - }, - "invert-kv": { - "version": "1.0.0", - "bundled": true - }, - "is-arrayish": { - "version": "0.2.1", - "bundled": true - }, - "is-buffer": { - "version": "1.1.6", - "bundled": true - }, - "is-builtin-module": { - "version": "1.0.0", - "bundled": true, - "requires": { - "builtin-modules": "1.1.1" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "bundled": true - }, - "is-stream": { - "version": "1.1.0", - "bundled": true - }, - "isexe": { - "version": "2.0.0", - "bundled": true - }, - "istanbul-lib-coverage": { - "version": "2.0.1", - "bundled": true - }, - "istanbul-lib-hook": { - "version": "2.0.1", - "bundled": true, - "requires": { - "append-transform": "1.0.0" - } - }, - "istanbul-lib-report": { - "version": "2.0.2", - "bundled": true, - "requires": { - "istanbul-lib-coverage": "2.0.1", - "make-dir": "1.3.0", - "supports-color": "5.4.0" - } - }, - "istanbul-lib-source-maps": { - "version": "2.0.1", - "bundled": true, - "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "2.0.1", - "make-dir": "1.3.0", - "rimraf": "2.6.2", - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true - } - } - }, - "istanbul-reports": { - "version": "2.0.1", - "bundled": true, - "requires": { - "handlebars": "4.0.11" - } - }, - "json-parse-better-errors": { - "version": "1.0.2", - "bundled": true - }, - "kind-of": { - "version": "3.2.2", - "bundled": true, - "requires": { - "is-buffer": "1.1.6" - } - }, - "lazy-cache": { - "version": "1.0.4", - "bundled": true, - "optional": true - }, - "lcid": { - "version": "1.0.0", - "bundled": true, - "requires": { - "invert-kv": "1.0.0" - } - }, - "load-json-file": { - "version": "4.0.0", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "bundled": true, - "requires": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" - } - }, - "lodash.flattendeep": { - "version": "4.4.0", - "bundled": true - }, - "longest": { - "version": "1.0.1", - "bundled": true - }, - "lru-cache": { - "version": "4.1.3", - "bundled": true, - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } - }, - "make-dir": { - "version": "1.3.0", - "bundled": true, - "requires": { - "pify": "3.0.0" - } - }, - "md5-hex": { - "version": "2.0.0", - "bundled": true, - "requires": { - "md5-o-matic": "0.1.1" - } - }, - "md5-o-matic": { - "version": "0.1.1", - "bundled": true - }, - "mem": { - "version": "1.1.0", - "bundled": true, - "requires": { - "mimic-fn": "1.2.0" - } - }, - "merge-source-map": { - "version": "1.1.0", - "bundled": true, - "requires": { - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true - } - } - }, - "mimic-fn": { - "version": "1.2.0", - "bundled": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "0.0.10", - "bundled": true - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "bundled": true - } - } - }, - "ms": { - "version": "2.0.0", - "bundled": true - }, - "normalize-package-data": { - "version": "2.4.0", - "bundled": true, - "requires": { - "hosted-git-info": "2.7.1", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" - } - }, - "npm-run-path": { - "version": "2.0.2", - "bundled": true, - "requires": { - "path-key": "2.0.1" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "optimist": { - "version": "0.6.1", - "bundled": true, - "requires": { - "minimist": "0.0.10", - "wordwrap": "0.0.3" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true - }, - "os-locale": { - "version": "2.1.0", - "bundled": true, - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - } - }, - "p-finally": { - "version": "1.0.0", - "bundled": true - }, - "p-limit": { - "version": "2.0.0", - "bundled": true, - "requires": { - "p-try": "2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "bundled": true, - "requires": { - "p-limit": "2.0.0" - } - }, - "p-try": { - "version": "2.0.0", - "bundled": true - }, - "package-hash": { - "version": "2.0.0", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "lodash.flattendeep": "4.4.0", - "md5-hex": "2.0.0", - "release-zalgo": "1.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "bundled": true, - "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" - } - }, - "path-exists": { - "version": "3.0.0", - "bundled": true - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true - }, - "path-key": { - "version": "2.0.1", - "bundled": true - }, - "path-type": { - "version": "3.0.0", - "bundled": true, - "requires": { - "pify": "3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "bundled": true - }, - "pkg-dir": { - "version": "3.0.0", - "bundled": true, - "requires": { - "find-up": "3.0.0" - } - }, - "pseudomap": { - "version": "1.0.2", - "bundled": true - }, - "read-pkg": { - "version": "3.0.0", - "bundled": true, - "requires": { - "load-json-file": "4.0.0", - "normalize-package-data": "2.4.0", - "path-type": "3.0.0" - } - }, - "read-pkg-up": { - "version": "4.0.0", - "bundled": true, - "requires": { - "find-up": "3.0.0", - "read-pkg": "3.0.0" - } - }, - "release-zalgo": { - "version": "1.0.0", - "bundled": true, - "requires": { - "es6-error": "4.1.1" - } - }, - "repeat-string": { - "version": "1.6.1", - "bundled": true - }, - "require-directory": { - "version": "2.1.1", - "bundled": true - }, - "require-main-filename": { - "version": "1.0.1", - "bundled": true - }, - "resolve-from": { - "version": "4.0.0", - "bundled": true - }, - "right-align": { - "version": "0.1.3", - "bundled": true, - "optional": true, - "requires": { - "align-text": "0.1.4" - } - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "requires": { - "glob": "7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true - }, - "semver": { - "version": "5.5.0", - "bundled": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true - }, - "shebang-command": { - "version": "1.2.0", - "bundled": true, - "requires": { - "shebang-regex": "1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "bundled": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true - }, - "source-map": { - "version": "0.5.7", - "bundled": true, - "optional": true - }, - "spawn-wrap": { - "version": "1.4.2", - "bundled": true, - "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.1" - } - }, - "spdx-correct": { - "version": "3.0.0", - "bundled": true, - "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "bundled": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "bundled": true, - "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "bundled": true - }, - "string-width": { - "version": "2.1.1", - "bundled": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "requires": { - "ansi-regex": "3.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "bundled": true - }, - "strip-eof": { - "version": "1.0.0", - "bundled": true - }, - "supports-color": { - "version": "5.4.0", - "bundled": true, - "requires": { - "has-flag": "3.0.0" - } - }, - "test-exclude": { - "version": "5.0.0", - "bundled": true, - "requires": { - "arrify": "1.0.1", - "minimatch": "3.0.4", - "read-pkg-up": "4.0.0", - "require-main-filename": "1.0.1" - } - }, - "uglify-js": { - "version": "2.8.29", - "bundled": true, - "optional": true, - "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" - }, - "dependencies": { - "yargs": { - "version": "3.10.0", - "bundled": true, - "optional": true, - "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" - } - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "uuid": { - "version": "3.3.2", - "bundled": true - }, - "validate-npm-package-license": { - "version": "3.0.3", - "bundled": true, - "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" - } - }, - "which": { - "version": "1.3.1", - "bundled": true, - "requires": { - "isexe": "2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "bundled": true - }, - "window-size": { - "version": "0.1.0", - "bundled": true, - "optional": true - }, - "wordwrap": { - "version": "0.0.3", - "bundled": true - }, - "wrap-ansi": { - "version": "2.1.0", - "bundled": true, - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "bundled": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "string-width": { - "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" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "requires": { - "ansi-regex": "2.1.1" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true - }, - "write-file-atomic": { - "version": "2.3.0", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "signal-exit": "3.0.2" - } - }, - "y18n": { - "version": "3.2.1", - "bundled": true - }, - "yallist": { - "version": "2.1.2", - "bundled": true - }, - "yargs": { - "version": "11.1.0", - "bundled": true, - "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.3", - "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": "9.0.2" - }, - "dependencies": { - "cliui": { - "version": "4.1.0", - "bundled": true, - "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" - } - }, - "find-up": { - "version": "2.1.0", - "bundled": true, - "requires": { - "locate-path": "2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "bundled": true, - "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "bundled": true, - "requires": { - "p-try": "1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "bundled": true, - "requires": { - "p-limit": "1.3.0" - } - }, - "p-try": { - "version": "1.0.0", - "bundled": true - } - } - }, - "yargs-parser": { - "version": "9.0.2", - "bundled": true, - "requires": { - "camelcase": "4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "bundled": true - } - } - } - } - } } }, "bip38": { @@ -2563,29 +1344,6 @@ } } }, - "cacheable-request": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", - "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=", - "dev": true, - "requires": { - "clone-response": "1.0.2", - "get-stream": "3.0.0", - "http-cache-semantics": "3.8.1", - "keyv": "3.0.0", - "lowercase-keys": "1.0.0", - "normalize-url": "2.0.1", - "responselike": "1.0.2" - }, - "dependencies": { - "lowercase-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", - "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", - "dev": true - } - } - }, "caller-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", @@ -2746,12 +1504,6 @@ } } }, - "clean-stack": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-1.3.0.tgz", - "integrity": "sha1-noIVAa6XmYbEax1m0tQy2y/UrjE=", - "dev": true - }, "clear": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/clear/-/clear-0.0.1.tgz", @@ -2800,15 +1552,6 @@ } } }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "requires": { - "mimic-response": "1.0.1" - } - }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -2917,12 +1660,6 @@ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" }, - "cookiejar": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", - "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==", - "dev": true - }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", @@ -3046,15 +1783,6 @@ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "requires": { - "mimic-response": "1.0.1" - } - }, "deep-eql": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", @@ -3074,12 +1802,6 @@ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, - "deepmerge": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", - "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==", - "dev": true - }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -3202,12 +1924,6 @@ "create-hmac": "1.1.7" } }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -3319,12 +2035,6 @@ "is-symbol": "1.0.2" } }, - "es6-promise": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz", - "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==", - "dev": true - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -3418,11 +2128,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "nice-try": "1.0.5", + "path-key": "2.0.1", + "semver": "5.6.0", + "shebang-command": "1.2.0", + "which": "1.3.1" } }, "debug": { @@ -3431,7 +2141,7 @@ "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.1" } }, "eslint-scope": { @@ -3440,8 +2150,8 @@ "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", "dev": true, "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "esrecurse": "4.2.1", + "estraverse": "4.2.0" } }, "espree": { @@ -3461,9 +2171,9 @@ "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", "dev": true, "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" + "chardet": "0.7.0", + "iconv-lite": "0.4.24", + "tmp": "0.0.33" } }, "fast-deep-equal": { @@ -3490,19 +2200,19 @@ "integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==", "dev": true, "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.0", - "figures": "^2.0.0", - "lodash": "^4.17.10", + "ansi-escapes": "3.1.0", + "chalk": "2.4.1", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "3.0.3", + "figures": "2.0.0", + "lodash": "4.17.11", "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.1.0", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" + "run-async": "2.3.0", + "rxjs": "6.3.3", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" } }, "json-schema-traverse": { @@ -3523,7 +2233,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } }, "table": { @@ -3790,7 +2500,7 @@ }, "expand-range": { "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "resolved": "http://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "optional": true, "requires": { @@ -3934,21 +2644,6 @@ "write": "0.2.1" } }, - "flow-bin": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.64.0.tgz", - "integrity": "sha1-3dP7Oxg6sas1pdXeycr167ze0Wc=", - "dev": true - }, - "fluent-openapi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fluent-openapi/-/fluent-openapi-1.0.0.tgz", - "integrity": "sha512-Q0drDENt875UTMpWY5nAJi7/0BaqQ0riXVNnhAwaDlpcXFLGos/jW/IuSGLdoStw10BZ3RpkJghG2gkR3XASPA==", - "dev": true, - "requires": { - "lodash.merge": "4.6.1" - } - }, "follow-redirects": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", @@ -3996,12 +2691,6 @@ "mime-types": "2.1.21" } }, - "formidable": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz", - "integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg==", - "dev": true - }, "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", @@ -4016,16 +2705,6 @@ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", "dev": true }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "requires": { - "inherits": "2.0.1", - "readable-stream": "2.3.6" - } - }, "fs-readdir-recursive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", @@ -4584,39 +3263,6 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" }, - "got": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", - "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", - "dev": true, - "requires": { - "@sindresorhus/is": "0.7.0", - "cacheable-request": "2.1.4", - "decompress-response": "3.3.0", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "into-stream": "3.1.0", - "is-retry-allowed": "1.1.0", - "isurl": "1.0.0", - "lowercase-keys": "1.0.1", - "mimic-response": "1.0.1", - "p-cancelable": "0.4.1", - "p-timeout": "2.0.1", - "pify": "3.0.0", - "safe-buffer": "5.1.2", - "timed-out": "4.0.1", - "url-parse-lax": "3.0.0", - "url-to-options": "1.0.1" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, "graceful-fs": { "version": "4.1.15", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", @@ -4711,26 +3357,11 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, - "has-symbol-support-x": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", - "dev": true - }, "has-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" }, - "has-to-string-tag-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "dev": true, - "requires": { - "has-symbol-support-x": "1.4.2" - } - }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -4840,12 +3471,6 @@ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" }, - "http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", - "dev": true - }, "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", @@ -4880,12 +3505,6 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true - }, "indexof": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", @@ -4946,16 +3565,6 @@ } } }, - "into-stream": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", - "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", - "dev": true, - "requires": { - "from2": "2.3.0", - "p-is-promise": "1.1.0" - } - }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -5094,18 +3703,6 @@ "kind-of": "3.2.2" } }, - "is-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", - "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", - "dev": true - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -5151,12 +3748,6 @@ "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" }, - "is-retry-allowed": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", - "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", - "dev": true - }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", @@ -5207,35 +3798,6 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, - "istanbul-lib-coverage": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", - "integrity": "sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA==" - }, - "istanbul-lib-instrument": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.0.0.tgz", - "integrity": "sha512-eQY9vN9elYjdgN9Iv6NS/00bptm02EBBk70lRMaVjeA6QYocQgenVrSgC28TJurdnZa80AGO3ASdFN+w/njGiQ==", - "requires": { - "@babel/generator": "7.1.6", - "@babel/parser": "7.1.6", - "@babel/template": "7.1.2", - "@babel/traverse": "7.1.6", - "@babel/types": "7.1.6", - "istanbul-lib-coverage": "2.0.1", - "semver": "5.6.0" - } - }, - "isurl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "dev": true, - "requires": { - "has-to-string-tag-x": "1.4.1", - "is-object": "1.0.1" - } - }, "jest-docblock": { "version": "21.2.0", "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz", @@ -5267,12 +3829,6 @@ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true - }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -5349,15 +3905,6 @@ } } }, - "keyv": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", - "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", - "dev": true, - "requires": { - "json-buffer": "3.0.0" - } - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -5366,32 +3913,6 @@ "is-buffer": "1.1.6" } }, - "kubernetes-client": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/kubernetes-client/-/kubernetes-client-6.4.1.tgz", - "integrity": "sha512-aOIje6oZOcftt2EWJHRMUD+Dao8e3SudEAlanR25Y81wU7QnSfAvwoIWLIgp/ox0CWnu/A3NBv19Qnbx00ztMQ==", - "dev": true, - "requires": { - "deepmerge": "2.2.1", - "fluent-openapi": "1.0.0", - "js-yaml": "3.12.0", - "openid-client": "2.4.5", - "qs": "6.6.0", - "request": "2.88.0", - "ws": "6.1.2" - }, - "dependencies": { - "ws": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.2.tgz", - "integrity": "sha512-rfUqzvz0WxmSXtJpPMX2EeASXabOrSMk1ruMOV3JBTBjo4ac2lDjGGsbQSyxj8Odhw5fBib8ZKEjDNvgouNKYw==", - "dev": true, - "requires": { - "async-limiter": "1.0.0" - } - } - } - }, "lcid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", @@ -5447,77 +3968,17 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" }, - "lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", - "dev": true - }, - "lodash.clone": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz", - "integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y=", - "dev": true - }, - "lodash.fill": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/lodash.fill/-/lodash.fill-3.4.0.tgz", - "integrity": "sha1-o8dK5kDQU63w3CB5+HIHiOi/74U=", - "dev": true - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", - "dev": true - }, "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", "dev": true }, - "lodash.intersection": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.intersection/-/lodash.intersection-4.4.0.tgz", - "integrity": "sha1-ChG6Yx0OlcI8fy9Mu5ppLtF45wU=", - "dev": true - }, - "lodash.merge": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.1.tgz", - "integrity": "sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ==", - "dev": true - }, - "lodash.omit": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", - "integrity": "sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=", - "dev": true - }, - "lodash.partialright": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/lodash.partialright/-/lodash.partialright-4.2.1.tgz", - "integrity": "sha1-ATDYDoM2MmTUAHTzKbij56ihzEs=", - "dev": true - }, - "lodash.pick": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", - "dev": true - }, "lodash.toarray": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=" }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, "log-driver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", @@ -5530,12 +3991,6 @@ "integrity": "sha512-l9x0+1offnKKIzYVjyXU2SiwhXDLekRzKyhnbyldPHvC7BvLPVpdNUNR2KeMAiCN2D/kLNttZgQD5WjSxuBx3Q==", "dev": true }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", - "dev": true - }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -5544,12 +3999,6 @@ "js-tokens": "3.0.2" } }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true - }, "lru-cache": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.4.tgz", @@ -5679,12 +4128,6 @@ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true - }, "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -5903,35 +4346,6 @@ "lodash.toarray": "4.4.0" } }, - "node-forge": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.6.tgz", - "integrity": "sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw==", - "dev": true - }, - "node-jose": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/node-jose/-/node-jose-1.1.0.tgz", - "integrity": "sha512-Ux5MDElyiAlBQyOdFcwznK2TWMJbG8ZUfIZ28UtBvTB/VUz5HA/1WJV7s+YCah5NilPhkMkNi6xjnFRI+MQAVg==", - "dev": true, - "requires": { - "base64url": "3.0.1", - "es6-promise": "4.2.5", - "lodash.assign": "4.2.0", - "lodash.clone": "4.5.0", - "lodash.fill": "3.4.0", - "lodash.flatten": "4.4.0", - "lodash.intersection": "4.4.0", - "lodash.merge": "4.6.1", - "lodash.omit": "4.5.0", - "lodash.partialright": "4.2.1", - "lodash.pick": "4.4.0", - "lodash.uniq": "4.5.0", - "long": "4.0.0", - "node-forge": "0.7.6", - "uuid": "3.3.2" - } - }, "node-mocks-http": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/node-mocks-http/-/node-mocks-http-1.7.3.tgz", @@ -5977,17 +4391,6 @@ "remove-trailing-separator": "1.1.0" } }, - "normalize-url": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", - "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", - "dev": true, - "requires": { - "prepend-http": "2.0.0", - "query-string": "5.1.1", - "sort-keys": "2.0.0" - } - }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -6005,7 +4408,6 @@ "version": "11.9.0", "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.9.0.tgz", "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", - "dev": true, "requires": { "archy": "1.0.0", "arrify": "1.0.1", @@ -6039,7 +4441,6 @@ "align-text": { "version": "0.1.4", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2", "longest": "1.0.1", @@ -6048,76 +4449,62 @@ }, "amdefine": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true, - "dev": true + "bundled": true }, "ansi-styles": { "version": "2.2.1", - "bundled": true, - "dev": true + "bundled": true }, "append-transform": { "version": "0.4.0", "bundled": true, - "dev": true, "requires": { "default-require-extensions": "1.0.0" } }, "archy": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "arr-diff": { "version": "4.0.0", - "bundled": true, - "dev": true + "bundled": true }, "arr-flatten": { "version": "1.1.0", - "bundled": true, - "dev": true + "bundled": true }, "arr-union": { "version": "3.1.0", - "bundled": true, - "dev": true + "bundled": true }, "array-unique": { "version": "0.3.2", - "bundled": true, - "dev": true + "bundled": true }, "arrify": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "assign-symbols": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "async": { "version": "1.5.2", - "bundled": true, - "dev": true + "bundled": true }, "atob": { "version": "2.1.1", - "bundled": true, - "dev": true + "bundled": true }, "babel-code-frame": { "version": "6.26.0", "bundled": true, - "dev": true, "requires": { "chalk": "1.1.3", "esutils": "2.0.2", @@ -6127,7 +4514,6 @@ "babel-generator": { "version": "6.26.1", "bundled": true, - "dev": true, "requires": { "babel-messages": "6.23.0", "babel-runtime": "6.26.0", @@ -6142,7 +4528,6 @@ "babel-messages": { "version": "6.23.0", "bundled": true, - "dev": true, "requires": { "babel-runtime": "6.26.0" } @@ -6150,7 +4535,6 @@ "babel-runtime": { "version": "6.26.0", "bundled": true, - "dev": true, "requires": { "core-js": "2.5.6", "regenerator-runtime": "0.11.1" @@ -6159,7 +4543,6 @@ "babel-template": { "version": "6.26.0", "bundled": true, - "dev": true, "requires": { "babel-runtime": "6.26.0", "babel-traverse": "6.26.0", @@ -6171,7 +4554,6 @@ "babel-traverse": { "version": "6.26.0", "bundled": true, - "dev": true, "requires": { "babel-code-frame": "6.26.0", "babel-messages": "6.23.0", @@ -6187,7 +4569,6 @@ "babel-types": { "version": "6.26.0", "bundled": true, - "dev": true, "requires": { "babel-runtime": "6.26.0", "esutils": "2.0.2", @@ -6197,18 +4578,15 @@ }, "babylon": { "version": "6.18.0", - "bundled": true, - "dev": true + "bundled": true }, "balanced-match": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "base": { "version": "0.11.2", "bundled": true, - "dev": true, "requires": { "cache-base": "1.0.1", "class-utils": "0.3.6", @@ -6222,7 +4600,6 @@ "define-property": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "is-descriptor": "1.0.2" } @@ -6230,7 +4607,6 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -6238,7 +4614,6 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -6246,7 +4621,6 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -6255,20 +4629,17 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "brace-expansion": { "version": "1.1.11", "bundled": true, - "dev": true, "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -6277,7 +4648,6 @@ "braces": { "version": "2.3.2", "bundled": true, - "dev": true, "requires": { "arr-flatten": "1.1.0", "array-unique": "0.3.2", @@ -6294,7 +4664,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -6303,13 +4672,11 @@ }, "builtin-modules": { "version": "1.1.1", - "bundled": true, - "dev": true + "bundled": true }, "cache-base": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "collection-visit": "1.0.0", "component-emitter": "1.2.1", @@ -6324,15 +4691,13 @@ "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "caching-transform": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "md5-hex": "1.3.0", "mkdirp": "0.5.1", @@ -6342,13 +4707,11 @@ "camelcase": { "version": "1.2.1", "bundled": true, - "dev": true, "optional": true }, "center-align": { "version": "0.1.3", "bundled": true, - "dev": true, "optional": true, "requires": { "align-text": "0.1.4", @@ -6358,7 +4721,6 @@ "chalk": { "version": "1.1.3", "bundled": true, - "dev": true, "requires": { "ansi-styles": "2.2.1", "escape-string-regexp": "1.0.5", @@ -6370,7 +4732,6 @@ "class-utils": { "version": "0.3.6", "bundled": true, - "dev": true, "requires": { "arr-union": "3.1.0", "define-property": "0.2.5", @@ -6381,22 +4742,19 @@ "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { "is-descriptor": "0.1.6" } }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "cliui": { "version": "2.1.0", "bundled": true, - "dev": true, "optional": true, "requires": { "center-align": "0.1.3", @@ -6407,20 +4765,17 @@ "wordwrap": { "version": "0.0.2", "bundled": true, - "dev": true, "optional": true } } }, "code-point-at": { "version": "1.1.0", - "bundled": true, - "dev": true + "bundled": true }, "collection-visit": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "map-visit": "1.0.0", "object-visit": "1.0.1" @@ -6428,38 +4783,31 @@ }, "commondir": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "component-emitter": { "version": "1.2.1", - "bundled": true, - "dev": true + "bundled": true }, "concat-map": { "version": "0.0.1", - "bundled": true, - "dev": true + "bundled": true }, "convert-source-map": { "version": "1.5.1", - "bundled": true, - "dev": true + "bundled": true }, "copy-descriptor": { "version": "0.1.1", - "bundled": true, - "dev": true + "bundled": true }, "core-js": { "version": "2.5.6", - "bundled": true, - "dev": true + "bundled": true }, "cross-spawn": { "version": "4.0.2", "bundled": true, - "dev": true, "requires": { "lru-cache": "4.1.3", "which": "1.3.0" @@ -6468,30 +4816,25 @@ "debug": { "version": "2.6.9", "bundled": true, - "dev": true, "requires": { "ms": "2.0.0" } }, "debug-log": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "decamelize": { "version": "1.2.0", - "bundled": true, - "dev": true + "bundled": true }, "decode-uri-component": { "version": "0.2.0", - "bundled": true, - "dev": true + "bundled": true }, "default-require-extensions": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "strip-bom": "2.0.0" } @@ -6499,7 +4842,6 @@ "define-property": { "version": "2.0.2", "bundled": true, - "dev": true, "requires": { "is-descriptor": "1.0.2", "isobject": "3.0.1" @@ -6508,7 +4850,6 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -6516,7 +4857,6 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -6524,7 +4864,6 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -6533,20 +4872,17 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "detect-indent": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "repeating": "2.0.1" } @@ -6554,25 +4890,21 @@ "error-ex": { "version": "1.3.1", "bundled": true, - "dev": true, "requires": { "is-arrayish": "0.2.1" } }, "escape-string-regexp": { "version": "1.0.5", - "bundled": true, - "dev": true + "bundled": true }, "esutils": { "version": "2.0.2", - "bundled": true, - "dev": true + "bundled": true }, "execa": { "version": "0.7.0", "bundled": true, - "dev": true, "requires": { "cross-spawn": "5.1.0", "get-stream": "3.0.0", @@ -6586,7 +4918,6 @@ "cross-spawn": { "version": "5.1.0", "bundled": true, - "dev": true, "requires": { "lru-cache": "4.1.3", "shebang-command": "1.2.0", @@ -6598,7 +4929,6 @@ "expand-brackets": { "version": "2.1.4", "bundled": true, - "dev": true, "requires": { "debug": "2.6.9", "define-property": "0.2.5", @@ -6612,7 +4942,6 @@ "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -6620,7 +4949,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -6630,7 +4958,6 @@ "extend-shallow": { "version": "3.0.2", "bundled": true, - "dev": true, "requires": { "assign-symbols": "1.0.0", "is-extendable": "1.0.1" @@ -6639,7 +4966,6 @@ "is-extendable": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "is-plain-object": "2.0.4" } @@ -6649,7 +4975,6 @@ "extglob": { "version": "2.0.4", "bundled": true, - "dev": true, "requires": { "array-unique": "0.3.2", "define-property": "1.0.0", @@ -6664,7 +4989,6 @@ "define-property": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "is-descriptor": "1.0.2" } @@ -6672,7 +4996,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -6680,7 +5003,6 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -6688,7 +5010,6 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -6696,7 +5017,6 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -6705,15 +5025,13 @@ }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "fill-range": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "extend-shallow": "2.0.1", "is-number": "3.0.0", @@ -6724,7 +5042,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -6734,7 +5051,6 @@ "find-cache-dir": { "version": "0.1.1", "bundled": true, - "dev": true, "requires": { "commondir": "1.0.1", "mkdirp": "0.5.1", @@ -6744,20 +5060,17 @@ "find-up": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { "locate-path": "2.0.0" } }, "for-in": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "foreground-child": { "version": "1.5.6", "bundled": true, - "dev": true, "requires": { "cross-spawn": "4.0.2", "signal-exit": "3.0.2" @@ -6766,35 +5079,29 @@ "fragment-cache": { "version": "0.2.1", "bundled": true, - "dev": true, "requires": { "map-cache": "0.2.2" } }, "fs.realpath": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "get-caller-file": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "get-stream": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true }, "get-value": { "version": "2.0.6", - "bundled": true, - "dev": true + "bundled": true }, "glob": { "version": "7.1.2", "bundled": true, - "dev": true, "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -6806,18 +5113,15 @@ }, "globals": { "version": "9.18.0", - "bundled": true, - "dev": true + "bundled": true }, "graceful-fs": { "version": "4.1.11", - "bundled": true, - "dev": true + "bundled": true }, "handlebars": { "version": "4.0.11", "bundled": true, - "dev": true, "requires": { "async": "1.5.2", "optimist": "0.6.1", @@ -6828,7 +5132,6 @@ "source-map": { "version": "0.4.4", "bundled": true, - "dev": true, "requires": { "amdefine": "1.0.1" } @@ -6838,20 +5141,17 @@ "has-ansi": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "ansi-regex": "2.1.1" } }, "has-flag": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "has-value": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "get-value": "2.0.6", "has-values": "1.0.0", @@ -6860,15 +5160,13 @@ "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "has-values": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "is-number": "3.0.0", "kind-of": "4.0.0" @@ -6877,7 +5175,6 @@ "is-number": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" }, @@ -6885,7 +5182,6 @@ "kind-of": { "version": "3.2.2", "bundled": true, - "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -6895,7 +5191,6 @@ "kind-of": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -6904,18 +5199,15 @@ }, "hosted-git-info": { "version": "2.6.0", - "bundled": true, - "dev": true + "bundled": true }, "imurmurhash": { "version": "0.1.4", - "bundled": true, - "dev": true + "bundled": true }, "inflight": { "version": "1.0.6", "bundled": true, - "dev": true, "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -6923,44 +5215,37 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, - "dev": true + "bundled": true }, "invariant": { "version": "2.2.4", "bundled": true, - "dev": true, "requires": { "loose-envify": "1.3.1" } }, "invert-kv": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "is-accessor-descriptor": { "version": "0.1.6", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" } }, "is-arrayish": { "version": "0.2.1", - "bundled": true, - "dev": true + "bundled": true }, "is-buffer": { "version": "1.1.6", - "bundled": true, - "dev": true + "bundled": true }, "is-builtin-module": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "builtin-modules": "1.1.1" } @@ -6968,7 +5253,6 @@ "is-data-descriptor": { "version": "0.1.4", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" } @@ -6976,7 +5260,6 @@ "is-descriptor": { "version": "0.1.6", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "0.1.6", "is-data-descriptor": "0.1.4", @@ -6985,33 +5268,28 @@ "dependencies": { "kind-of": { "version": "5.1.0", - "bundled": true, - "dev": true + "bundled": true } } }, "is-extendable": { "version": "0.1.1", - "bundled": true, - "dev": true + "bundled": true }, "is-finite": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "is-number": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" } @@ -7019,72 +5297,60 @@ "is-odd": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "is-number": "4.0.0" }, "dependencies": { "is-number": { "version": "4.0.0", - "bundled": true, - "dev": true + "bundled": true } } }, "is-plain-object": { "version": "2.0.4", "bundled": true, - "dev": true, "requires": { "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "is-stream": { "version": "1.1.0", - "bundled": true, - "dev": true + "bundled": true }, "is-utf8": { "version": "0.2.1", - "bundled": true, - "dev": true + "bundled": true }, "is-windows": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "isarray": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "isexe": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true }, "istanbul-lib-coverage": { "version": "1.2.0", - "bundled": true, - "dev": true + "bundled": true }, "istanbul-lib-hook": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "append-transform": "0.4.0" } @@ -7092,7 +5358,6 @@ "istanbul-lib-instrument": { "version": "1.10.1", "bundled": true, - "dev": true, "requires": { "babel-generator": "6.26.1", "babel-template": "6.26.0", @@ -7106,7 +5371,6 @@ "istanbul-lib-report": { "version": "1.1.3", "bundled": true, - "dev": true, "requires": { "istanbul-lib-coverage": "1.2.0", "mkdirp": "0.5.1", @@ -7117,7 +5381,6 @@ "supports-color": { "version": "3.2.3", "bundled": true, - "dev": true, "requires": { "has-flag": "1.0.0" } @@ -7127,7 +5390,6 @@ "istanbul-lib-source-maps": { "version": "1.2.3", "bundled": true, - "dev": true, "requires": { "debug": "3.1.0", "istanbul-lib-coverage": "1.2.0", @@ -7139,7 +5401,6 @@ "debug": { "version": "3.1.0", "bundled": true, - "dev": true, "requires": { "ms": "2.0.0" } @@ -7149,25 +5410,21 @@ "istanbul-reports": { "version": "1.4.0", "bundled": true, - "dev": true, "requires": { "handlebars": "4.0.11" } }, "js-tokens": { "version": "3.0.2", - "bundled": true, - "dev": true + "bundled": true }, "jsesc": { "version": "1.3.0", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "3.2.2", "bundled": true, - "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -7175,13 +5432,11 @@ "lazy-cache": { "version": "1.0.4", "bundled": true, - "dev": true, "optional": true }, "lcid": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "invert-kv": "1.0.0" } @@ -7189,7 +5444,6 @@ "load-json-file": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "graceful-fs": "4.1.11", "parse-json": "2.2.0", @@ -7201,7 +5455,6 @@ "locate-path": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "p-locate": "2.0.0", "path-exists": "3.0.0" @@ -7209,25 +5462,21 @@ "dependencies": { "path-exists": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true } } }, "lodash": { "version": "4.17.10", - "bundled": true, - "dev": true + "bundled": true }, "longest": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "loose-envify": { "version": "1.3.1", "bundled": true, - "dev": true, "requires": { "js-tokens": "3.0.2" } @@ -7235,7 +5484,6 @@ "lru-cache": { "version": "4.1.3", "bundled": true, - "dev": true, "requires": { "pseudomap": "1.0.2", "yallist": "2.1.2" @@ -7243,13 +5491,11 @@ }, "map-cache": { "version": "0.2.2", - "bundled": true, - "dev": true + "bundled": true }, "map-visit": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "object-visit": "1.0.1" } @@ -7257,20 +5503,17 @@ "md5-hex": { "version": "1.3.0", "bundled": true, - "dev": true, "requires": { "md5-o-matic": "0.1.1" } }, "md5-o-matic": { "version": "0.1.1", - "bundled": true, - "dev": true + "bundled": true }, "mem": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "mimic-fn": "1.2.0" } @@ -7278,22 +5521,19 @@ "merge-source-map": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "source-map": "0.6.1" }, "dependencies": { "source-map": { "version": "0.6.1", - "bundled": true, - "dev": true + "bundled": true } } }, "micromatch": { "version": "3.1.10", "bundled": true, - "dev": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -7312,33 +5552,28 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "mimic-fn": { "version": "1.2.0", - "bundled": true, - "dev": true + "bundled": true }, "minimatch": { "version": "3.0.4", "bundled": true, - "dev": true, "requires": { "brace-expansion": "1.1.11" } }, "minimist": { "version": "0.0.8", - "bundled": true, - "dev": true + "bundled": true }, "mixin-deep": { "version": "1.3.1", "bundled": true, - "dev": true, "requires": { "for-in": "1.0.2", "is-extendable": "1.0.1" @@ -7347,7 +5582,6 @@ "is-extendable": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "is-plain-object": "2.0.4" } @@ -7357,20 +5591,17 @@ "mkdirp": { "version": "0.5.1", "bundled": true, - "dev": true, "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "nanomatch": { "version": "1.2.9", "bundled": true, - "dev": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -7388,25 +5619,21 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true, - "dev": true + "bundled": true }, "array-unique": { "version": "0.3.2", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "normalize-package-data": { "version": "2.4.0", "bundled": true, - "dev": true, "requires": { "hosted-git-info": "2.6.0", "is-builtin-module": "1.0.0", @@ -7417,25 +5644,21 @@ "npm-run-path": { "version": "2.0.2", "bundled": true, - "dev": true, "requires": { "path-key": "2.0.1" } }, "number-is-nan": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "object-assign": { "version": "4.1.1", - "bundled": true, - "dev": true + "bundled": true }, "object-copy": { "version": "0.1.0", "bundled": true, - "dev": true, "requires": { "copy-descriptor": "0.1.1", "define-property": "0.2.5", @@ -7445,7 +5668,6 @@ "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -7455,37 +5677,32 @@ "object-visit": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "object.pick": { "version": "1.3.0", "bundled": true, - "dev": true, "requires": { "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "once": { "version": "1.4.0", "bundled": true, - "dev": true, "requires": { "wrappy": "1.0.2" } @@ -7493,7 +5710,6 @@ "optimist": { "version": "0.6.1", "bundled": true, - "dev": true, "requires": { "minimist": "0.0.8", "wordwrap": "0.0.3" @@ -7501,13 +5717,11 @@ }, "os-homedir": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "os-locale": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { "execa": "0.7.0", "lcid": "1.0.0", @@ -7516,13 +5730,11 @@ }, "p-finally": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "p-limit": { "version": "1.2.0", "bundled": true, - "dev": true, "requires": { "p-try": "1.0.0" } @@ -7530,56 +5742,47 @@ "p-locate": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "p-limit": "1.2.0" } }, "p-try": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "parse-json": { "version": "2.2.0", "bundled": true, - "dev": true, "requires": { "error-ex": "1.3.1" } }, "pascalcase": { "version": "0.1.1", - "bundled": true, - "dev": true + "bundled": true }, "path-exists": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { "pinkie-promise": "2.0.1" } }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "path-key": { "version": "2.0.1", - "bundled": true, - "dev": true + "bundled": true }, "path-parse": { "version": "1.0.5", - "bundled": true, - "dev": true + "bundled": true }, "path-type": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "graceful-fs": "4.1.11", "pify": "2.3.0", @@ -7588,18 +5791,15 @@ }, "pify": { "version": "2.3.0", - "bundled": true, - "dev": true + "bundled": true }, "pinkie": { "version": "2.0.4", - "bundled": true, - "dev": true + "bundled": true }, "pinkie-promise": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "pinkie": "2.0.4" } @@ -7607,7 +5807,6 @@ "pkg-dir": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "find-up": "1.1.2" }, @@ -7615,7 +5814,6 @@ "find-up": { "version": "1.1.2", "bundled": true, - "dev": true, "requires": { "path-exists": "2.1.0", "pinkie-promise": "2.0.1" @@ -7625,18 +5823,15 @@ }, "posix-character-classes": { "version": "0.1.1", - "bundled": true, - "dev": true + "bundled": true }, "pseudomap": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "read-pkg": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "load-json-file": "1.1.0", "normalize-package-data": "2.4.0", @@ -7646,7 +5841,6 @@ "read-pkg-up": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "find-up": "1.1.2", "read-pkg": "1.1.0" @@ -7655,7 +5849,6 @@ "find-up": { "version": "1.1.2", "bundled": true, - "dev": true, "requires": { "path-exists": "2.1.0", "pinkie-promise": "2.0.1" @@ -7665,13 +5858,11 @@ }, "regenerator-runtime": { "version": "0.11.1", - "bundled": true, - "dev": true + "bundled": true }, "regex-not": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "extend-shallow": "3.0.2", "safe-regex": "1.1.0" @@ -7679,51 +5870,42 @@ }, "repeat-element": { "version": "1.1.2", - "bundled": true, - "dev": true + "bundled": true }, "repeat-string": { "version": "1.6.1", - "bundled": true, - "dev": true + "bundled": true }, "repeating": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-finite": "1.0.2" } }, "require-directory": { "version": "2.1.1", - "bundled": true, - "dev": true + "bundled": true }, "require-main-filename": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "resolve-from": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "resolve-url": { "version": "0.2.1", - "bundled": true, - "dev": true + "bundled": true }, "ret": { "version": "0.1.15", - "bundled": true, - "dev": true + "bundled": true }, "right-align": { "version": "0.1.3", "bundled": true, - "dev": true, "optional": true, "requires": { "align-text": "0.1.4" @@ -7732,7 +5914,6 @@ "rimraf": { "version": "2.6.2", "bundled": true, - "dev": true, "requires": { "glob": "7.1.2" } @@ -7740,25 +5921,21 @@ "safe-regex": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "ret": "0.1.15" } }, "semver": { "version": "5.5.0", - "bundled": true, - "dev": true + "bundled": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "set-value": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "extend-shallow": "2.0.1", "is-extendable": "0.1.1", @@ -7769,7 +5946,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -7779,30 +5955,25 @@ "shebang-command": { "version": "1.2.0", "bundled": true, - "dev": true, "requires": { "shebang-regex": "1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, - "dev": true + "bundled": true }, "slide": { "version": "1.1.6", - "bundled": true, - "dev": true + "bundled": true }, "snapdragon": { "version": "0.8.2", "bundled": true, - "dev": true, "requires": { "base": "0.11.2", "debug": "2.6.9", @@ -7817,7 +5988,6 @@ "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -7825,7 +5995,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -7835,7 +6004,6 @@ "snapdragon-node": { "version": "2.1.1", "bundled": true, - "dev": true, "requires": { "define-property": "1.0.0", "isobject": "3.0.1", @@ -7845,7 +6013,6 @@ "define-property": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "is-descriptor": "1.0.2" } @@ -7853,7 +6020,6 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -7861,7 +6027,6 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -7869,7 +6034,6 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -7878,33 +6042,28 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "snapdragon-util": { "version": "3.0.1", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" } }, "source-map": { "version": "0.5.7", - "bundled": true, - "dev": true + "bundled": true }, "source-map-resolve": { "version": "0.5.1", "bundled": true, - "dev": true, "requires": { "atob": "2.1.1", "decode-uri-component": "0.2.0", @@ -7915,13 +6074,11 @@ }, "source-map-url": { "version": "0.4.0", - "bundled": true, - "dev": true + "bundled": true }, "spawn-wrap": { "version": "1.4.2", "bundled": true, - "dev": true, "requires": { "foreground-child": "1.5.6", "mkdirp": "0.5.1", @@ -7934,7 +6091,6 @@ "spdx-correct": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "spdx-expression-parse": "3.0.0", "spdx-license-ids": "3.0.0" @@ -7942,13 +6098,11 @@ }, "spdx-exceptions": { "version": "2.1.0", - "bundled": true, - "dev": true + "bundled": true }, "spdx-expression-parse": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "spdx-exceptions": "2.1.0", "spdx-license-ids": "3.0.0" @@ -7956,13 +6110,11 @@ }, "spdx-license-ids": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true }, "split-string": { "version": "3.1.0", "bundled": true, - "dev": true, "requires": { "extend-shallow": "3.0.2" } @@ -7970,7 +6122,6 @@ "static-extend": { "version": "0.1.2", "bundled": true, - "dev": true, "requires": { "define-property": "0.2.5", "object-copy": "0.1.0" @@ -7979,7 +6130,6 @@ "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -7989,7 +6139,6 @@ "string-width": { "version": "2.1.1", "bundled": true, - "dev": true, "requires": { "is-fullwidth-code-point": "2.0.0", "strip-ansi": "4.0.0" @@ -7997,13 +6146,11 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true }, "strip-ansi": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "ansi-regex": "3.0.0" } @@ -8013,7 +6160,6 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, - "dev": true, "requires": { "ansi-regex": "2.1.1" } @@ -8021,25 +6167,21 @@ "strip-bom": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "is-utf8": "0.2.1" } }, "strip-eof": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "supports-color": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "test-exclude": { "version": "4.2.1", "bundled": true, - "dev": true, "requires": { "arrify": "1.0.1", "micromatch": "3.1.10", @@ -8050,18 +6192,15 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true, - "dev": true + "bundled": true }, "array-unique": { "version": "0.3.2", - "bundled": true, - "dev": true + "bundled": true }, "braces": { "version": "2.3.2", "bundled": true, - "dev": true, "requires": { "arr-flatten": "1.1.0", "array-unique": "0.3.2", @@ -8078,7 +6217,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -8088,7 +6226,6 @@ "expand-brackets": { "version": "2.1.4", "bundled": true, - "dev": true, "requires": { "debug": "2.6.9", "define-property": "0.2.5", @@ -8102,7 +6239,6 @@ "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -8110,7 +6246,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -8118,7 +6253,6 @@ "is-accessor-descriptor": { "version": "0.1.6", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" }, @@ -8126,7 +6260,6 @@ "kind-of": { "version": "3.2.2", "bundled": true, - "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -8136,7 +6269,6 @@ "is-data-descriptor": { "version": "0.1.4", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" }, @@ -8144,7 +6276,6 @@ "kind-of": { "version": "3.2.2", "bundled": true, - "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -8154,7 +6285,6 @@ "is-descriptor": { "version": "0.1.6", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "0.1.6", "is-data-descriptor": "0.1.4", @@ -8163,15 +6293,13 @@ }, "kind-of": { "version": "5.1.0", - "bundled": true, - "dev": true + "bundled": true } } }, "extglob": { "version": "2.0.4", "bundled": true, - "dev": true, "requires": { "array-unique": "0.3.2", "define-property": "1.0.0", @@ -8186,7 +6314,6 @@ "define-property": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "is-descriptor": "1.0.2" } @@ -8194,7 +6321,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -8204,7 +6330,6 @@ "fill-range": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "extend-shallow": "2.0.1", "is-number": "3.0.0", @@ -8215,7 +6340,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -8225,7 +6349,6 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -8233,7 +6356,6 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -8241,7 +6363,6 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -8251,7 +6372,6 @@ "is-number": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" }, @@ -8259,7 +6379,6 @@ "kind-of": { "version": "3.2.2", "bundled": true, - "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -8268,18 +6387,15 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true }, "micromatch": { "version": "3.1.10", "bundled": true, - "dev": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -8300,13 +6416,11 @@ }, "to-fast-properties": { "version": "1.0.3", - "bundled": true, - "dev": true + "bundled": true }, "to-object-path": { "version": "0.3.0", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" } @@ -8314,7 +6428,6 @@ "to-regex": { "version": "3.0.2", "bundled": true, - "dev": true, "requires": { "define-property": "2.0.2", "extend-shallow": "3.0.2", @@ -8325,7 +6438,6 @@ "to-regex-range": { "version": "2.1.1", "bundled": true, - "dev": true, "requires": { "is-number": "3.0.0", "repeat-string": "1.6.1" @@ -8334,7 +6446,6 @@ "is-number": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "3.2.2" } @@ -8343,13 +6454,11 @@ }, "trim-right": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "uglify-js": { "version": "2.8.29", "bundled": true, - "dev": true, "optional": true, "requires": { "source-map": "0.5.7", @@ -8360,7 +6469,6 @@ "yargs": { "version": "3.10.0", "bundled": true, - "dev": true, "optional": true, "requires": { "camelcase": "1.2.1", @@ -8374,13 +6482,11 @@ "uglify-to-browserify": { "version": "1.0.2", "bundled": true, - "dev": true, "optional": true }, "union-value": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "arr-union": "3.1.0", "get-value": "2.0.6", @@ -8391,7 +6497,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -8399,7 +6504,6 @@ "set-value": { "version": "0.4.3", "bundled": true, - "dev": true, "requires": { "extend-shallow": "2.0.1", "is-extendable": "0.1.1", @@ -8412,7 +6516,6 @@ "unset-value": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "has-value": "0.3.1", "isobject": "3.0.1" @@ -8421,7 +6524,6 @@ "has-value": { "version": "0.3.1", "bundled": true, - "dev": true, "requires": { "get-value": "2.0.6", "has-values": "0.1.4", @@ -8431,7 +6533,6 @@ "isobject": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { "isarray": "1.0.0" } @@ -8440,40 +6541,34 @@ }, "has-values": { "version": "0.1.4", - "bundled": true, - "dev": true + "bundled": true }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "urix": { "version": "0.1.0", - "bundled": true, - "dev": true + "bundled": true }, "use": { "version": "3.1.0", "bundled": true, - "dev": true, "requires": { "kind-of": "6.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "validate-npm-package-license": { "version": "3.0.3", "bundled": true, - "dev": true, "requires": { "spdx-correct": "3.0.0", "spdx-expression-parse": "3.0.0" @@ -8482,31 +6577,26 @@ "which": { "version": "1.3.0", "bundled": true, - "dev": true, "requires": { "isexe": "2.0.0" } }, "which-module": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "window-size": { "version": "0.1.0", "bundled": true, - "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "bundled": true, - "dev": true + "bundled": true }, "wrap-ansi": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { "string-width": "1.0.2", "strip-ansi": "3.0.1" @@ -8515,7 +6605,6 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "number-is-nan": "1.0.1" } @@ -8523,7 +6612,6 @@ "string-width": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -8534,13 +6622,11 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "write-file-atomic": { "version": "1.3.4", "bundled": true, - "dev": true, "requires": { "graceful-fs": "4.1.11", "imurmurhash": "0.1.4", @@ -8549,18 +6635,15 @@ }, "y18n": { "version": "3.2.1", - "bundled": true, - "dev": true + "bundled": true }, "yallist": { "version": "2.1.2", - "bundled": true, - "dev": true + "bundled": true }, "yargs": { "version": "11.1.0", "bundled": true, - "dev": true, "requires": { "cliui": "4.1.0", "decamelize": "1.2.0", @@ -8578,18 +6661,15 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true }, "camelcase": { "version": "4.1.0", - "bundled": true, - "dev": true + "bundled": true }, "cliui": { "version": "4.1.0", "bundled": true, - "dev": true, "requires": { "string-width": "2.1.1", "strip-ansi": "4.0.0", @@ -8599,7 +6679,6 @@ "strip-ansi": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "ansi-regex": "3.0.0" } @@ -8607,7 +6686,6 @@ "yargs-parser": { "version": "9.0.2", "bundled": true, - "dev": true, "requires": { "camelcase": "4.1.0" } @@ -8617,15 +6695,13 @@ "yargs-parser": { "version": "8.1.0", "bundled": true, - "dev": true, "requires": { "camelcase": "4.1.0" }, "dependencies": { "camelcase": { "version": "4.1.0", - "bundled": true, - "dev": true + "bundled": true } } } @@ -8717,15 +6793,6 @@ } } }, - "oidc-token-hash": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-3.0.1.tgz", - "integrity": "sha512-oLnVSEcNZkw01sB5aFR+2iJmW4oyC1PIMJmd3FMBGDuPTy5ZtEuX5WNhKMRarJIMOq8NiOwIB6eJB9AhgYwBTg==", - "dev": true, - "requires": { - "base64url": "3.0.1" - } - }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -8742,21 +6809,6 @@ "mimic-fn": "1.2.0" } }, - "openid-client": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-2.4.5.tgz", - "integrity": "sha512-TmQQF7mOiYZsxX4kaQbrN06SXZ31UR5m4ur6sjM+VhaIuF79lqHe7uLmmt/NGVBIQojox6a4eilQ8DQDEQv31Q==", - "dev": true, - "requires": { - "base64url": "3.0.1", - "got": "8.3.2", - "lodash": "4.17.11", - "lru-cache": "4.1.4", - "node-jose": "1.1.0", - "oidc-token-hash": "3.0.1", - "p-any": "1.1.0" - } - }, "optionator": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", @@ -8800,32 +6852,11 @@ "object-assign": "4.1.1" } }, - "p-any": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-any/-/p-any-1.1.0.tgz", - "integrity": "sha512-Ef0tVa4CZ5pTAmKn+Cg3w8ABBXh+hHO1aV8281dKOoUHfX+3tjG2EaFcC+aZyagg9b4EYGsHEjz21DnEE8Og2g==", - "dev": true, - "requires": { - "p-some": "2.0.1" - } - }, - "p-cancelable": { - "version": "0.4.1", - "resolved": "http://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", - "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==", - "dev": true - }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, - "p-is-promise": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", - "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", - "dev": true - }, "p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", @@ -8842,24 +6873,6 @@ "p-limit": "1.3.0" } }, - "p-some": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-some/-/p-some-2.0.1.tgz", - "integrity": "sha1-Zdh8ixVO289SIdFnd4ttLhUPbwY=", - "dev": true, - "requires": { - "aggregate-error": "1.0.0" - } - }, - "p-timeout": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", - "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", - "dev": true, - "requires": { - "p-finally": "1.0.0" - } - }, "p-try": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", @@ -9090,12 +7103,6 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true - }, "preserve": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", @@ -9181,17 +7188,6 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-6.6.0.tgz", "integrity": "sha512-KIJqT9jQJDQx5h5uAVPimw6yVg2SekOKu959OCtktD3FjzbpvaPr8i4zzg07DOMz+igA4W/aNM7OV8H37pFYfA==" }, - "query-string": { - "version": "5.1.1", - "resolved": "http://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "dev": true, - "requires": { - "decode-uri-component": "0.2.0", - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" - } - }, "randomatic": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", @@ -9631,12 +7627,12 @@ }, "regjsgen": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "resolved": "http://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" }, "regjsparser": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "resolved": "http://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "requires": { "jsesc": "0.5.0" @@ -9644,7 +7640,7 @@ "dependencies": { "jsesc": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" } } @@ -9750,15 +7746,6 @@ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "requires": { - "lowercase-keys": "1.0.1" - } - }, "restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", @@ -9840,7 +7827,7 @@ }, "safe-regex": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { "ret": "0.1.15" @@ -10150,15 +8137,6 @@ } } }, - "sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", - "dev": true, - "requires": { - "is-plain-obj": "1.1.0" - } - }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -10375,12 +8353,6 @@ } } }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true - }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -10446,56 +8418,6 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, - "superagent": { - "version": "2.3.0", - "resolved": "http://registry.npmjs.org/superagent/-/superagent-2.3.0.tgz", - "integrity": "sha1-cDUpoHFOV+EjlZ3e+84ZOy5Q0RU=", - "dev": true, - "requires": { - "component-emitter": "1.2.1", - "cookiejar": "2.1.2", - "debug": "2.6.9", - "extend": "3.0.2", - "form-data": "1.0.0-rc4", - "formidable": "1.2.1", - "methods": "1.1.2", - "mime": "1.6.0", - "qs": "6.6.0", - "readable-stream": "2.3.6" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "form-data": { - "version": "1.0.0-rc4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc4.tgz", - "integrity": "sha1-BaxrwiIntD5EYfSIFhVUaZ1Pi14=", - "dev": true, - "requires": { - "async": "1.5.2", - "combined-stream": "1.0.7", - "mime-types": "2.1.21" - } - } - } - }, - "supertest": { - "version": "2.0.1", - "resolved": "http://registry.npmjs.org/supertest/-/supertest-2.0.1.tgz", - "integrity": "sha1-oFgIHXiPFRXUcA11Aogea3WeRM0=", - "dev": true, - "requires": { - "methods": "1.1.2", - "superagent": "2.3.0" - } - }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", @@ -10570,12 +8492,6 @@ "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "dev": true - }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -10822,21 +8738,6 @@ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, - "requires": { - "prepend-http": "2.0.0" - } - }, - "url-to-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", - "dev": true - }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", diff --git a/package.json b/package.json index 4ac7ac8b..cf2ec706 100644 --- a/package.json +++ b/package.json @@ -1,14 +1,13 @@ { "name": "bitbox-sdk", - "version": "2.2.5", + "version": "2.2.6", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "main": "index.js", "scripts": { "test": "nyc mocha --timeout 30000 --require babel-core/register", "build": "babel src/ -d lib/", - "postbuild": "cp -R typings/* lib", - "flow": "flow" + "postbuild": "cp -R typings/* lib" }, "license": "MIT", "engines": { @@ -28,8 +27,6 @@ "babel-cli": "^6.26.0", "babel-preset-env": "^1.6.1", "babel-preset-es2015": "^6.24.1", - "babel-preset-flow": "^6.23.0", - "babel-preset-react": "^6.24.1", "babel-register": "^6.26.0", "bigi": "^1.4.2", "bip21": "Bitcoin-com/bip21", @@ -69,20 +66,16 @@ "wif": "^2.0.6" }, "devDependencies": { - "@types/node": "^10.5.2", "chai": "^4.1.2", "coveralls": "^3.0.2", "eslint": "^5.5.0", "eslint-config-prettier": "^3.0.1", "eslint-plugin-node": "7.0.1", "eslint-plugin-prettier": "^2.6.2", - "flow-bin": "^0.64.0", - "kubernetes-client": "^6.1.0", "mocha": "^5.0.1", "node-mocks-http": "^1.7.0", "nyc": "^11.6.0", "prettier": "^1.14.2", - "sinon": "^4.5.0", - "supertest": "^2.0.0" + "sinon": "^4.5.0" } } From c7b850ca0b6f9210e46fac50b4f5cb2a0dde1d25 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Wed, 26 Dec 2018 10:58:29 -0800 Subject: [PATCH 143/480] linting address.js --- test/Address.js | 808 ++++++++++++++++++++++++------------------------ 1 file changed, 404 insertions(+), 404 deletions(-) diff --git a/test/Address.js b/test/Address.js index 6c026507..3095a115 100644 --- a/test/Address.js +++ b/test/Address.js @@ -1,69 +1,69 @@ -"use strict"; -const fixtures = require("./fixtures/Address.json"); -const chai = require("chai"); -const assert = require("assert"); -const BITBOXSDK = require("./../lib/bitbox-sdk").default; -const BITBOX = new BITBOXSDK(); -const axios = require("axios"); -const sinon = require("sinon"); -const Bitcoin = require("bitcoincashjs-lib"); +"use strict" +const fixtures = require("./fixtures/Address.json") +const chai = require("chai") +const assert = require("assert") +const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() +const axios = require("axios") +const sinon = require("sinon") +const Bitcoin = require("bitcoincashjs-lib") function flatten(arrays) { - return [].concat.apply([], arrays); + return [].concat.apply([], arrays) } -const XPUBS = flatten([fixtures.mainnetXPub, fixtures.testnetXPub]); +const XPUBS = flatten([fixtures.mainnetXPub, fixtures.testnetXPub]) const LEGACY_ADDRESSES = flatten([ fixtures.legacyMainnetP2PKH, fixtures.legacyMainnetP2SH, fixtures.legacyTestnetP2PKH -]); +]) -const mainnet_xpubs = []; +const mainnet_xpubs = [] fixtures.mainnetXPub.forEach((f, i) => { - mainnet_xpubs.push(f.xpub); -}); + mainnet_xpubs.push(f.xpub) +}) const MAINNET_ADDRESSES = flatten([ mainnet_xpubs, fixtures.legacyMainnetP2PKH, fixtures.legacyMainnetP2SH, fixtures.cashaddrMainnetP2PKH -]); +]) -const testnet_xpubs = []; +const testnet_xpubs = [] fixtures.testnetXPub.forEach((f, i) => { - testnet_xpubs.push(f.xpub); -}); + testnet_xpubs.push(f.xpub) +}) const TESTNET_ADDRESSES = flatten([ testnet_xpubs, fixtures.legacyTestnetP2PKH, fixtures.cashaddrTestnetP2PKH -]); +]) const CASHADDR_ADDRESSES = flatten([ fixtures.cashaddrMainnetP2PKH, fixtures.cashaddrMainnetP2SH, fixtures.cashaddrTestnetP2PKH -]); +]) const CASHADDR_ADDRESSES_NO_PREFIX = CASHADDR_ADDRESSES.map(address => { - const parts = address.split(":"); - return parts[1]; -}); + const parts = address.split(":") + return parts[1] +}) -const REGTEST_ADDRESSES = fixtures.cashaddrRegTestP2PKH; +const REGTEST_ADDRESSES = fixtures.cashaddrRegTestP2PKH const REGTEST_ADDRESSES_NO_PREFIX = REGTEST_ADDRESSES.map(address => { - const parts = address.split(":"); - return parts[1]; -}); + const parts = address.split(":") + return parts[1] +}) const HASH160_HASHES = flatten([ fixtures.hash160MainnetP2PKH, fixtures.hash160MainnetP2SH, fixtures.hash160TestnetP2PKH -]); +]) const P2PKH_ADDRESSES = flatten([ fixtures.legacyMainnetP2PKH, @@ -71,12 +71,12 @@ const P2PKH_ADDRESSES = flatten([ fixtures.cashaddrMainnetP2PKH, fixtures.cashaddrTestnetP2PKH, fixtures.cashaddrRegTestP2PKH -]); +]) const P2SH_ADDRESSES = flatten([ fixtures.legacyMainnetP2SH, fixtures.cashaddrMainnetP2SH -]); +]) describe("#addressConversion", () => { describe("#toLegacyAddress", () => { @@ -86,8 +86,8 @@ describe("#addressConversion", () => { BITBOX.Address.toLegacyAddress(address) ), LEGACY_ADDRESSES - ); - }); + ) + }) it("should convert cashaddr address to legacy base58Check", () => { assert.deepEqual( @@ -95,8 +95,8 @@ describe("#addressConversion", () => { BITBOX.Address.toLegacyAddress(address) ), LEGACY_ADDRESSES - ); - }); + ) + }) it("should convert cashaddr regtest address to legacy base58Check", () => { assert.deepEqual( @@ -104,20 +104,20 @@ describe("#addressConversion", () => { BITBOX.Address.toLegacyAddress(address) ), fixtures.legacyTestnetP2PKH - ); - }); + ) + }) describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.toLegacyAddress(); - }, BITBOX.BitcoinCash.InvalidAddressError); + BITBOX.Address.toLegacyAddress() + }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.toLegacyAddress("some invalid address"); - }, BITBOX.BitcoinCash.InvalidAddressError); - }); - }); - }); + BITBOX.Address.toLegacyAddress("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) + }) describe("#toCashAddress", () => { it("should convert legacy base58Check address to cashaddr", () => { @@ -126,8 +126,8 @@ describe("#addressConversion", () => { BITBOX.Address.toCashAddress(address, true) ), CASHADDR_ADDRESSES - ); - }); + ) + }) it("should convert legacy base58Check address to regtest cashaddr", () => { assert.deepEqual( @@ -135,8 +135,8 @@ describe("#addressConversion", () => { BITBOX.Address.toCashAddress(address, true, true) ), REGTEST_ADDRESSES - ); - }); + ) + }) it("should translate cashaddr address format to itself correctly", () => { assert.deepEqual( @@ -144,8 +144,8 @@ describe("#addressConversion", () => { BITBOX.Address.toCashAddress(address, true) ), CASHADDR_ADDRESSES - ); - }); + ) + }) it("should translate regtest cashaddr address format to itself correctly", () => { assert.deepEqual( @@ -153,8 +153,8 @@ describe("#addressConversion", () => { BITBOX.Address.toCashAddress(address, true, true) ), REGTEST_ADDRESSES - ); - }); + ) + }) it("should translate no-prefix cashaddr address format to itself correctly", () => { assert.deepEqual( @@ -162,8 +162,8 @@ describe("#addressConversion", () => { BITBOX.Address.toCashAddress(address, true) ), CASHADDR_ADDRESSES - ); - }); + ) + }) it("should translate no-prefix regtest cashaddr address format to itself correctly", () => { assert.deepEqual( @@ -171,67 +171,67 @@ describe("#addressConversion", () => { BITBOX.Address.toCashAddress(address, true, true) ), REGTEST_ADDRESSES - ); - }); + ) + }) it("should translate cashaddr address format to itself of no-prefix correctly", () => { CASHADDR_ADDRESSES.forEach(address => { - const noPrefix = BITBOX.Address.toCashAddress(address, false); - assert.equal(address.split(":")[1], noPrefix); - }); - }); + const noPrefix = BITBOX.Address.toCashAddress(address, false) + assert.equal(address.split(":")[1], noPrefix) + }) + }) it("should translate regtest cashaddr address format to itself of no-prefix correctly", () => { REGTEST_ADDRESSES.forEach(address => { - const noPrefix = BITBOX.Address.toCashAddress(address, false, true); - assert.equal(address.split(":")[1], noPrefix); - }); - }); + const noPrefix = BITBOX.Address.toCashAddress(address, false, true) + assert.equal(address.split(":")[1], noPrefix) + }) + }) describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.BitcoinCash.Address.toCashAddress(); - }, BITBOX.BitcoinCash.InvalidAddressError); + BITBOX.BitcoinCash.Address.toCashAddress() + }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.BitcoinCash.Address.toCashAddress("some invalid address"); - }, BITBOX.BitcoinCash.InvalidAddressError); - }); - }); - }); + BITBOX.BitcoinCash.Address.toCashAddress("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) + }) describe("#toHash160", () => { it("should convert legacy base58check address to hash160", () => { assert.deepEqual( LEGACY_ADDRESSES.map(address => BITBOX.Address.toHash160(address)), HASH160_HASHES - ); - }); + ) + }) it("should convert cashaddr address to hash160", () => { assert.deepEqual( CASHADDR_ADDRESSES.map(address => BITBOX.Address.toHash160(address)), HASH160_HASHES - ); - }); + ) + }) it("should convert regtest cashaddr address to hash160", () => { assert.deepEqual( REGTEST_ADDRESSES.map(address => BITBOX.Address.toHash160(address)), fixtures.hash160TestnetP2PKH - ); - }); + ) + }) describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.toHash160(); - }, BITBOX.BitcoinCash.InvalidAddressError); + BITBOX.Address.toHash160() + }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.toHash160("some invalid address"); - }, BITBOX.BitcoinCash.InvalidAddressError); - }); - }); - }); + BITBOX.Address.toHash160("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) + }) describe("#fromHash160", () => { it("should convert hash160 to mainnet P2PKH legacy base58check address", () => { assert.deepEqual( @@ -239,8 +239,8 @@ describe("#addressConversion", () => { BITBOX.Address.hash160ToLegacy(hash160) ), fixtures.legacyMainnetP2PKH - ); - }); + ) + }) it("should convert hash160 to mainnet P2SH legacy base58check address", () => { assert.deepEqual( @@ -251,8 +251,8 @@ describe("#addressConversion", () => { ) ), fixtures.legacyMainnetP2SH - ); - }); + ) + }) it("should convert hash160 to testnet P2PKH legacy base58check address", () => { assert.deepEqual( @@ -263,8 +263,8 @@ describe("#addressConversion", () => { ) ), fixtures.legacyTestnetP2PKH - ); - }); + ) + }) it("should convert hash160 to mainnet P2PKH cash address", () => { assert.deepEqual( @@ -272,8 +272,8 @@ describe("#addressConversion", () => { BITBOX.Address.hash160ToCash(hash160) ), fixtures.cashaddrMainnetP2PKH - ); - }); + ) + }) it("should convert hash160 to mainnet P2SH cash address", () => { assert.deepEqual( @@ -284,8 +284,8 @@ describe("#addressConversion", () => { ) ), fixtures.cashaddrMainnetP2SH - ); - }); + ) + }) it("should convert hash160 to testnet P2PKH cash address", () => { assert.deepEqual( @@ -296,8 +296,8 @@ describe("#addressConversion", () => { ) ), fixtures.cashaddrTestnetP2PKH - ); - }); + ) + }) it("should convert hash160 to regtest P2PKH cash address", () => { assert.deepEqual( @@ -309,327 +309,327 @@ describe("#addressConversion", () => { ) ), REGTEST_ADDRESSES - ); - }); + ) + }) describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.hash160ToLegacy(); - }, BITBOX.BitcoinCash.InvalidAddressError); + BITBOX.Address.hash160ToLegacy() + }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.hash160ToLegacy("some invalid address"); - }, BITBOX.BitcoinCash.InvalidAddressError); + BITBOX.Address.hash160ToLegacy("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.hash160ToCash(); - }, BITBOX.BitcoinCash.InvalidAddressError); + BITBOX.Address.hash160ToCash() + }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.hash160ToCash("some invalid address"); - }, BITBOX.BitcoinCash.InvalidAddressError); - }); - }); - }); -}); + BITBOX.Address.hash160ToCash("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) + }) +}) describe("address format detection", () => { describe("#isLegacyAddress", () => { describe("is legacy", () => { LEGACY_ADDRESSES.forEach(address => { it(`should detect ${address} is a legacy base58Check address`, () => { - const isBase58Check = BITBOX.Address.isLegacyAddress(address); - assert.equal(isBase58Check, true); - }); - }); - }); + const isBase58Check = BITBOX.Address.isLegacyAddress(address) + assert.equal(isBase58Check, true) + }) + }) + }) describe("is not legacy", () => { CASHADDR_ADDRESSES.forEach(address => { it(`should detect ${address} is not a legacy address`, () => { - const isBase58Check = BITBOX.Address.isLegacyAddress(address); - assert.equal(isBase58Check, false); - }); - }); + const isBase58Check = BITBOX.Address.isLegacyAddress(address) + assert.equal(isBase58Check, false) + }) + }) REGTEST_ADDRESSES.forEach(address => { it(`should detect ${address} is not a legacy address`, () => { - const isBase58Check = BITBOX.Address.isLegacyAddress(address); - assert.equal(isBase58Check, false); - }); - }); - }); + const isBase58Check = BITBOX.Address.isLegacyAddress(address) + assert.equal(isBase58Check, false) + }) + }) + }) describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.isLegacyAddress(); - }, BITBOX.BitcoinCash.InvalidAddressError); + BITBOX.Address.isLegacyAddress() + }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.isLegacyAddress("some invalid address"); - }, BITBOX.BitcoinCash.InvalidAddressError); - }); - }); - }); + BITBOX.Address.isLegacyAddress("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) + }) describe("#isCashAddress", () => { describe("is cashaddr", () => { CASHADDR_ADDRESSES.forEach(address => { it(`should detect ${address} is a cashaddr address`, () => { - const isCashaddr = BITBOX.Address.isCashAddress(address); - assert.equal(isCashaddr, true); - }); - }); + const isCashaddr = BITBOX.Address.isCashAddress(address) + assert.equal(isCashaddr, true) + }) + }) REGTEST_ADDRESSES.forEach(address => { it(`should detect ${address} is a cashaddr address`, () => { - const isCashaddr = BITBOX.Address.isCashAddress(address); - assert.equal(isCashaddr, true); - }); - }); - }); + const isCashaddr = BITBOX.Address.isCashAddress(address) + assert.equal(isCashaddr, true) + }) + }) + }) describe("is not cashaddr", () => { LEGACY_ADDRESSES.forEach(address => { it(`should detect ${address} is not a cashaddr address`, () => { - const isCashaddr = BITBOX.Address.isCashAddress(address); - assert.equal(isCashaddr, false); - }); - }); - }); + const isCashaddr = BITBOX.Address.isCashAddress(address) + assert.equal(isCashaddr, false) + }) + }) + }) describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.isCashAddress(); - }, BITBOX.BitcoinCash.InvalidAddressError); + BITBOX.Address.isCashAddress() + }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.isCashAddress("some invalid address"); - }, BITBOX.BitcoinCash.InvalidAddressError); - }); - }); - }); + BITBOX.Address.isCashAddress("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) + }) describe("#isHash160", () => { describe("is hash160", () => { HASH160_HASHES.forEach(address => { it(`should detect ${address} is a hash160 hash`, () => { - const isHash160 = BITBOX.Address.isHash160(address); - assert.equal(isHash160, true); - }); - }); - }); + const isHash160 = BITBOX.Address.isHash160(address) + assert.equal(isHash160, true) + }) + }) + }) describe("is not hash160", () => { LEGACY_ADDRESSES.forEach(address => { it(`should detect ${address} is not a hash160 hash`, () => { - const isHash160 = BITBOX.Address.isHash160(address); - assert.equal(isHash160, false); - }); - }); + const isHash160 = BITBOX.Address.isHash160(address) + assert.equal(isHash160, false) + }) + }) CASHADDR_ADDRESSES.forEach(address => { it(`should detect ${address} is not a hash160 hash`, () => { - const isHash160 = BITBOX.Address.isHash160(address); - assert.equal(isHash160, false); - }); - }); + const isHash160 = BITBOX.Address.isHash160(address) + assert.equal(isHash160, false) + }) + }) REGTEST_ADDRESSES.forEach(address => { it(`should detect ${address} is not a legacy address`, () => { - const isHash160 = BITBOX.Address.isHash160(address); - assert.equal(isHash160, false); - }); - }); - }); + const isHash160 = BITBOX.Address.isHash160(address) + assert.equal(isHash160, false) + }) + }) + }) describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.isHash160(); - }, BITBOX.BitcoinCash.InvalidAddressError); + BITBOX.Address.isHash160() + }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.isHash160("some invalid address"); - }, BITBOX.BitcoinCash.InvalidAddressError); - }); - }); - }); -}); + BITBOX.Address.isHash160("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) + }) +}) describe("network detection", () => { describe("#isMainnetAddress", () => { describe("is mainnet", () => { MAINNET_ADDRESSES.forEach(address => { it(`should detect ${address} is a mainnet address`, () => { - const isMainnet = BITBOX.Address.isMainnetAddress(address); - assert.equal(isMainnet, true); - }); - }); - }); + const isMainnet = BITBOX.Address.isMainnetAddress(address) + assert.equal(isMainnet, true) + }) + }) + }) describe("is not mainnet", () => { TESTNET_ADDRESSES.forEach(address => { it(`should detect ${address} is not a mainnet address`, () => { - const isMainnet = BITBOX.Address.isMainnetAddress(address); - assert.equal(isMainnet, false); - }); - }); + const isMainnet = BITBOX.Address.isMainnetAddress(address) + assert.equal(isMainnet, false) + }) + }) REGTEST_ADDRESSES.forEach(address => { it(`should detect ${address} is not a mainnet address`, () => { - const isMainnet = BITBOX.Address.isMainnetAddress(address); - assert.equal(isMainnet, false); - }); - }); - }); + const isMainnet = BITBOX.Address.isMainnetAddress(address) + assert.equal(isMainnet, false) + }) + }) + }) describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.isMainnetAddress(); - }, BITBOX.BitcoinCash.InvalidAddressError); + BITBOX.Address.isMainnetAddress() + }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.isMainnetAddress("some invalid address"); - }, BITBOX.BitcoinCash.InvalidAddressError); - }); - }); - }); + BITBOX.Address.isMainnetAddress("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) + }) describe("#isTestnetAddress", () => { describe("is testnet", () => { TESTNET_ADDRESSES.forEach(address => { it(`should detect ${address} is a testnet address`, () => { - const isTestnet = BITBOX.Address.isTestnetAddress(address); - assert.equal(isTestnet, true); - }); - }); - }); + const isTestnet = BITBOX.Address.isTestnetAddress(address) + assert.equal(isTestnet, true) + }) + }) + }) describe("is not testnet", () => { MAINNET_ADDRESSES.forEach(address => { it(`should detect ${address} is not a testnet address`, () => { - const isTestnet = BITBOX.Address.isTestnetAddress(address); - assert.equal(isTestnet, false); - }); - }); + const isTestnet = BITBOX.Address.isTestnetAddress(address) + assert.equal(isTestnet, false) + }) + }) REGTEST_ADDRESSES.forEach(address => { it(`should detect ${address} is not a testnet address`, () => { - const isTestnet = BITBOX.Address.isTestnetAddress(address); - assert.equal(isTestnet, false); - }); - }); - }); + const isTestnet = BITBOX.Address.isTestnetAddress(address) + assert.equal(isTestnet, false) + }) + }) + }) describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.isTestnetAddress(); - }, BITBOX.BitcoinCash.InvalidAddressError); + BITBOX.Address.isTestnetAddress() + }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.isTestnetAddress("some invalid address"); - }, BITBOX.BitcoinCash.InvalidAddressError); - }); - }); - }); + BITBOX.Address.isTestnetAddress("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) + }) describe("#isRegTestAddress", () => { describe("is testnet", () => { REGTEST_ADDRESSES.forEach(address => { it(`should detect ${address} is a regtest address`, () => { - const isRegTest = BITBOX.Address.isRegTestAddress(address); - assert.equal(isRegTest, true); - }); - }); - }); + const isRegTest = BITBOX.Address.isRegTestAddress(address) + assert.equal(isRegTest, true) + }) + }) + }) describe("is not testnet", () => { MAINNET_ADDRESSES.forEach(address => { it(`should detect ${address} is not a regtest address`, () => { - const isRegTest = BITBOX.Address.isRegTestAddress(address); - assert.equal(isRegTest, false); - }); - }); + const isRegTest = BITBOX.Address.isRegTestAddress(address) + assert.equal(isRegTest, false) + }) + }) TESTNET_ADDRESSES.forEach(address => { it(`should detect ${address} is not a regtest address`, () => { - const isRegTest = BITBOX.Address.isRegTestAddress(address); - assert.equal(isRegTest, false); - }); - }); - }); + const isRegTest = BITBOX.Address.isRegTestAddress(address) + assert.equal(isRegTest, false) + }) + }) + }) describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.isRegTestAddress(); - }, BITBOX.BitcoinCash.InvalidAddressError); + BITBOX.Address.isRegTestAddress() + }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.isRegTestAddress("some invalid address"); - }, BITBOX.BitcoinCash.InvalidAddressError); - }); - }); - }); -}); + BITBOX.Address.isRegTestAddress("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) + }) +}) describe("address type detection", () => { describe("#isP2PKHAddress", () => { describe("is P2PKH", () => { P2PKH_ADDRESSES.forEach(address => { it(`should detect ${address} is a P2PKH address`, () => { - const isP2PKH = BITBOX.Address.isP2PKHAddress(address); - assert.equal(isP2PKH, true); - }); - }); - }); + const isP2PKH = BITBOX.Address.isP2PKHAddress(address) + assert.equal(isP2PKH, true) + }) + }) + }) describe("is not P2PKH", () => { P2SH_ADDRESSES.forEach(address => { it(`should detect ${address} is not a P2PKH address`, () => { - const isP2PKH = BITBOX.Address.isP2PKHAddress(address); - assert.equal(isP2PKH, false); - }); - }); - }); + const isP2PKH = BITBOX.Address.isP2PKHAddress(address) + assert.equal(isP2PKH, false) + }) + }) + }) describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.isP2PKHAddress(); - }, BITBOX.BitcoinCash.InvalidAddressError); + BITBOX.Address.isP2PKHAddress() + }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.isP2PKHAddress("some invalid address"); - }, BITBOX.BitcoinCash.InvalidAddressError); - }); - }); - }); + BITBOX.Address.isP2PKHAddress("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) + }) describe("#isP2SHAddress", () => { describe("is P2SH", () => { P2SH_ADDRESSES.forEach(address => { it(`should detect ${address} is a P2SH address`, () => { - const isP2SH = BITBOX.Address.isP2SHAddress(address); - assert.equal(isP2SH, true); - }); - }); - }); + const isP2SH = BITBOX.Address.isP2SHAddress(address) + assert.equal(isP2SH, true) + }) + }) + }) describe("is not P2SH", () => { P2PKH_ADDRESSES.forEach(address => { it(`should detect ${address} is not a P2SH address`, () => { - const isP2SH = BITBOX.Address.isP2SHAddress(address); - assert.equal(isP2SH, false); - }); - }); - }); + const isP2SH = BITBOX.Address.isP2SHAddress(address) + assert.equal(isP2SH, false) + }) + }) + }) describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.isP2SHAddress(); - }, BITBOX.BitcoinCash.InvalidAddressError); + BITBOX.Address.isP2SHAddress() + }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.isP2SHAddress("some invalid address"); - }, BITBOX.BitcoinCash.InvalidAddressError); - }); - }); - }); -}); + BITBOX.Address.isP2SHAddress("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) + }) +}) describe("cashaddr prefix detection", () => { it("should return the same result for detectAddressFormat", () => { @@ -640,7 +640,7 @@ describe("cashaddr prefix detection", () => { CASHADDR_ADDRESSES.map(address => BITBOX.Address.detectAddressFormat(address) ) - ); + ) assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.detectAddressFormat(address) @@ -648,8 +648,8 @@ describe("cashaddr prefix detection", () => { REGTEST_ADDRESSES.map(address => BITBOX.Address.detectAddressFormat(address) ) - ); - }); + ) + }) it("should return the same result for detectAddressNetwork", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(address => @@ -658,7 +658,7 @@ describe("cashaddr prefix detection", () => { CASHADDR_ADDRESSES.map(address => BITBOX.Address.detectAddressNetwork(address) ) - ); + ) assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.detectAddressNetwork(address) @@ -666,8 +666,8 @@ describe("cashaddr prefix detection", () => { REGTEST_ADDRESSES.map(address => BITBOX.Address.detectAddressNetwork(address) ) - ); - }); + ) + }) it("should return the same result for detectAddressType", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(address => @@ -676,7 +676,7 @@ describe("cashaddr prefix detection", () => { CASHADDR_ADDRESSES.map(address => BITBOX.Address.detectAddressType(address) ) - ); + ) assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.detectAddressType(address) @@ -684,50 +684,50 @@ describe("cashaddr prefix detection", () => { REGTEST_ADDRESSES.map(address => BITBOX.Address.detectAddressType(address) ) - ); - }); + ) + }) it("should return the same result for toLegacyAddress", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.toLegacyAddress(address) ), CASHADDR_ADDRESSES.map(address => BITBOX.Address.toLegacyAddress(address)) - ); + ) assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.toLegacyAddress(address) ), REGTEST_ADDRESSES.map(address => BITBOX.Address.toLegacyAddress(address)) - ); - }); + ) + }) it("should return the same result for isLegacyAddress", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.isLegacyAddress(address) ), CASHADDR_ADDRESSES.map(address => BITBOX.Address.isLegacyAddress(address)) - ); + ) assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.isLegacyAddress(address) ), REGTEST_ADDRESSES.map(address => BITBOX.Address.isLegacyAddress(address)) - ); - }); + ) + }) it("should return the same result for isCashAddress", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.isCashAddress(address) ), CASHADDR_ADDRESSES.map(address => BITBOX.Address.isCashAddress(address)) - ); + ) assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.isCashAddress(address) ), REGTEST_ADDRESSES.map(address => BITBOX.Address.isCashAddress(address)) - ); - }); + ) + }) it("should return the same result for isMainnetAddress", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(address => @@ -736,14 +736,14 @@ describe("cashaddr prefix detection", () => { CASHADDR_ADDRESSES.map(address => BITBOX.Address.isMainnetAddress(address) ) - ); + ) assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.isMainnetAddress(address) ), REGTEST_ADDRESSES.map(address => BITBOX.Address.isMainnetAddress(address)) - ); - }); + ) + }) it("should return the same result for isTestnetAddress", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(address => @@ -752,138 +752,138 @@ describe("cashaddr prefix detection", () => { CASHADDR_ADDRESSES.map(address => BITBOX.Address.isTestnetAddress(address) ) - ); + ) assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.isTestnetAddress(address) ), REGTEST_ADDRESSES.map(address => BITBOX.Address.isTestnetAddress(address)) - ); - }); + ) + }) it("should return the same result for isP2PKHAddress", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.isP2PKHAddress(address) ), CASHADDR_ADDRESSES.map(address => BITBOX.Address.isP2PKHAddress(address)) - ); + ) assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.isP2PKHAddress(address) ), REGTEST_ADDRESSES.map(address => BITBOX.Address.isP2PKHAddress(address)) - ); - }); + ) + }) it("should return the same result for isP2SHAddress", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.isP2SHAddress(address) ), CASHADDR_ADDRESSES.map(address => BITBOX.Address.isP2SHAddress(address)) - ); + ) assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => BITBOX.Address.isP2SHAddress(address) ), REGTEST_ADDRESSES.map(address => BITBOX.Address.isP2SHAddress(address)) - ); - }); -}); + ) + }) +}) describe("#detectAddressFormat", () => { LEGACY_ADDRESSES.forEach(address => { it(`should detect ${address} is a legacy base58Check address`, () => { - const isBase58Check = BITBOX.Address.detectAddressFormat(address); - assert.equal(isBase58Check, "legacy"); - }); - }); + const isBase58Check = BITBOX.Address.detectAddressFormat(address) + assert.equal(isBase58Check, "legacy") + }) + }) CASHADDR_ADDRESSES.forEach(address => { it(`should detect ${address} is a legacy cashaddr address`, () => { - const isCashaddr = BITBOX.Address.detectAddressFormat(address); - assert.equal(isCashaddr, "cashaddr"); - }); - }); + const isCashaddr = BITBOX.Address.detectAddressFormat(address) + assert.equal(isCashaddr, "cashaddr") + }) + }) REGTEST_ADDRESSES.forEach(address => { it(`should detect ${address} is a legacy cashaddr address`, () => { - const isCashaddr = BITBOX.Address.detectAddressFormat(address); - assert.equal(isCashaddr, "cashaddr"); - }); - }); + const isCashaddr = BITBOX.Address.detectAddressFormat(address) + assert.equal(isCashaddr, "cashaddr") + }) + }) describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.detectAddressFormat(); - }, BITBOX.BitcoinCash.InvalidAddressError); + BITBOX.Address.detectAddressFormat() + }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.detectAddressFormat("some invalid address"); - }, BITBOX.BitcoinCash.InvalidAddressError); - }); - }); -}); + BITBOX.Address.detectAddressFormat("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) +}) describe("#detectAddressNetwork", () => { MAINNET_ADDRESSES.forEach(address => { it(`should detect ${address} is a mainnet address`, () => { - const isMainnet = BITBOX.Address.detectAddressNetwork(address); - assert.equal(isMainnet, "mainnet"); - }); - }); + const isMainnet = BITBOX.Address.detectAddressNetwork(address) + assert.equal(isMainnet, "mainnet") + }) + }) TESTNET_ADDRESSES.forEach(address => { it(`should detect ${address} is a testnet address`, () => { - const isTestnet = BITBOX.Address.detectAddressNetwork(address); - assert.equal(isTestnet, "testnet"); - }); - }); + const isTestnet = BITBOX.Address.detectAddressNetwork(address) + assert.equal(isTestnet, "testnet") + }) + }) REGTEST_ADDRESSES.forEach(address => { it(`should detect ${address} is a testnet address`, () => { - const isTestnet = BITBOX.Address.detectAddressNetwork(address); - assert.equal(isTestnet, "regtest"); - }); - }); + const isTestnet = BITBOX.Address.detectAddressNetwork(address) + assert.equal(isTestnet, "regtest") + }) + }) describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.detectAddressNetwork(); - }, BITBOX.BitcoinCash.InvalidAddressError); + BITBOX.Address.detectAddressNetwork() + }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.detectAddressNetwork("some invalid address"); - }, BITBOX.BitcoinCash.InvalidAddressError); - }); - }); -}); + BITBOX.Address.detectAddressNetwork("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) +}) describe("#detectAddressType", () => { P2PKH_ADDRESSES.forEach(address => { it(`should detect ${address} is a P2PKH address`, () => { - const isP2PKH = BITBOX.Address.detectAddressType(address); - assert.equal(isP2PKH, "p2pkh"); - }); - }); + const isP2PKH = BITBOX.Address.detectAddressType(address) + assert.equal(isP2PKH, "p2pkh") + }) + }) P2SH_ADDRESSES.forEach(address => { it(`should detect ${address} is a P2SH address`, () => { - const isP2SH = BITBOX.Address.detectAddressType(address); - assert.equal(isP2SH, "p2sh"); - }); - }); + const isP2SH = BITBOX.Address.detectAddressType(address) + assert.equal(isP2SH, "p2sh") + }) + }) describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.detectAddressType(); - }, BITBOX.BitcoinCash.InvalidAddressError); + BITBOX.Address.detectAddressType() + }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.detectAddressType("some invalid address"); - }, BITBOX.BitcoinCash.InvalidAddressError); - }); - }); -}); + BITBOX.Address.detectAddressType("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) +}) describe("#fromXPub", () => { XPUBS.forEach((xpub, i) => { @@ -891,11 +891,11 @@ describe("#fromXPub", () => { it(`generate public external change address ${j} for ${ xpub.xpub }`, () => { - assert.equal(BITBOX.Address.fromXPub(xpub.xpub, `0/${j}`), address); - }); - }); - }); -}); + assert.equal(BITBOX.Address.fromXPub(xpub.xpub, `0/${j}`), address) + }) + }) + }) +}) describe("#fromOutputScript", () => { const script = BITBOX.Script.encode([ @@ -903,25 +903,25 @@ describe("#fromOutputScript", () => { BITBOX.Script.opcodes.OP_CAT, Buffer.from("BITBOX", "ascii"), BITBOX.Script.opcodes.OP_EQUAL - ]); + ]) // hash160 script buffer - const p2sh_hash160 = BITBOX.Crypto.hash160(script); + const p2sh_hash160 = BITBOX.Crypto.hash160(script) // encode hash160 as P2SH output - const scriptPubKey = BITBOX.Script.scriptHash.output.encode(p2sh_hash160); - const p2shAddress = BITBOX.Address.fromOutputScript(scriptPubKey); + const scriptPubKey = BITBOX.Script.scriptHash.output.encode(p2sh_hash160) + const p2shAddress = BITBOX.Address.fromOutputScript(scriptPubKey) fixtures.p2shMainnet.forEach((address, i) => { it(`generate address from output script`, () => { - assert.equal(p2shAddress, address); - }); - }); -}); + assert.equal(p2shAddress, address) + }) + }) +}) describe("#details", () => { - let sandbox; - beforeEach(() => (sandbox = sinon.sandbox.create())); - afterEach(() => sandbox.restore()); + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) it("should get details", done => { const data = { @@ -940,25 +940,25 @@ describe("#details", () => { transactions: [ "b29425a876f62e114508e67e66b5eb1ab0d320d7c9a57fb0ece086a36e2b7309" ] - }; + } - const resolved = new Promise(r => r({ data: data })); - sandbox.stub(axios, "get").returns(resolved); + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) BITBOX.Address.details( "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" ) .then(result => { - assert.deepEqual(data, result); + assert.deepEqual(data, result) }) - .then(done, done); - }); -}); + .then(done, done) + }) +}) describe("#utxo", () => { - let sandbox; - beforeEach(() => (sandbox = sinon.sandbox.create())); - afterEach(() => sandbox.restore()); + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) it("should get utxo", done => { const data = [ @@ -986,24 +986,24 @@ describe("#utxo", () => { height: 528744, confirmations: 18 } - ]; - const resolved = new Promise(r => r({ data: data })); - sandbox.stub(axios, "get").returns(resolved); + ] + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) BITBOX.Address.utxo( "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l" ) .then(result => { - assert.deepEqual(data, result); + assert.deepEqual(data, result) }) - .then(done, done); - }); -}); + .then(done, done) + }) +}) describe("#unconfirmed", () => { - let sandbox; - beforeEach(() => (sandbox = sinon.sandbox.create())); - afterEach(() => sandbox.restore()); + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) it("should get unconfirmed transactions", done => { const data = [ @@ -1019,16 +1019,16 @@ describe("#unconfirmed", () => { legacyAddress: "1Fg4r9iDrEkCcDmHTy2T79EusNfhyQpu7W", cashAddress: "bitcoincash:qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c" } - ]; - const resolved = new Promise(r => r({ data: data })); - sandbox.stub(axios, "get").returns(resolved); + ] + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) BITBOX.Address.unconfirmed( "bitcoincash:qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c" ) .then(result => { - assert.deepEqual(data, result); + assert.deepEqual(data, result) }) - .then(done, done); - }); -}); + .then(done, done) + }) +}) From 9bb4c89aaa10f92887627013c80af83f82d6a9b6 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Wed, 26 Dec 2018 11:07:55 -0800 Subject: [PATCH 144/480] fixed address-details example --- examples/README.md | 4 +- .../address-details/address-details.js | 7 +- package-lock.json | 3572 +++++++++-------- 3 files changed, 1794 insertions(+), 1789 deletions(-) diff --git a/examples/README.md b/examples/README.md index a2b5668e..88583397 100644 --- a/examples/README.md +++ b/examples/README.md @@ -13,8 +13,8 @@ Prior to running these examples, you need to setup this code repository. In the root directory run these commands: ``` npm install -npm build -npm postbuild +npm run build +npm run postbuild ``` ## Running Examples diff --git a/examples/low-level/address-details/address-details.js b/examples/low-level/address-details/address-details.js index 160ddc6f..7a85ae1f 100644 --- a/examples/low-level/address-details/address-details.js +++ b/examples/low-level/address-details/address-details.js @@ -8,15 +8,14 @@ // Instantiate BITBOX. const bitboxLib = "../../../lib/bitbox-sdk" const BITBOXSDK = require(bitboxLib).default -//const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v1/" }) -const BITBOX = new BITBOXSDK({ restURL: "htts://localhost:3000/v1/" }) +const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v2/" }) -const ADDR = `mqKgHerAkpvKpSyFawhEKVWZpDPmxHZuLG` +const ADDR = `bchtest:qr45kxqda7yw8atztvkc4ckqnrlhmp0kvsep4p345q` async function addressDetails() { try { // first get BCH balance - const balance = await BITBOX.Address.details([ADDR]) + const balance = await BITBOX.Address.details(ADDR) console.log(`BCH Balance information:`) console.log(balance) diff --git a/package-lock.json b/package-lock.json index e0304894..af3622e1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", "dev": true, "requires": { - "@babel/highlight": "7.0.0" + "@babel/highlight": "^7.0.0" } }, "@babel/highlight": { @@ -19,9 +19,9 @@ "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", "dev": true, "requires": { - "chalk": "2.4.1", - "esutils": "2.0.2", - "js-tokens": "4.0.0" + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" }, "dependencies": { "js-tokens": { @@ -47,7 +47,7 @@ "integrity": "sha512-5x2kFgJYupaF1ns/RmharQ90lQkd2ELS8A9X0ymkAAdemYHGtI2KiUHG8nX2WU0T1qgnOU5YMqnBM2V7NUanNw==", "dev": true, "requires": { - "array-from": "2.1.1" + "array-from": "^2.1.1" } }, "abbrev": { @@ -60,7 +60,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "requires": { - "mime-types": "2.1.21", + "mime-types": "~2.1.18", "negotiator": "0.6.1" } }, @@ -74,7 +74,7 @@ "resolved": "http://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "requires": { - "acorn": "3.3.0" + "acorn": "^3.0.4" }, "dependencies": { "acorn": { @@ -94,10 +94,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "ajv-keywords": { @@ -107,7 +107,7 @@ }, "ansi-escapes": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", + "resolved": "http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==" }, "ansi-regex": { @@ -126,8 +126,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "optional": true, "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" } }, "argparse": { @@ -135,7 +135,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "arr-diff": { @@ -144,7 +144,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "optional": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { @@ -168,8 +168,8 @@ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.12.0" + "define-properties": "^1.1.2", + "es-abstract": "^1.7.0" } }, "array-unique": { @@ -189,7 +189,7 @@ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "~2.1.0" } }, "assert": { @@ -256,8 +256,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=", "requires": { - "follow-redirects": "1.5.10", - "is-buffer": "1.1.6" + "follow-redirects": "^1.2.5", + "is-buffer": "^1.1.5" } }, "babel-cli": { @@ -265,21 +265,21 @@ "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", "requires": { - "babel-core": "6.26.3", - "babel-polyfill": "6.26.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "chokidar": "1.7.0", - "commander": "2.19.0", - "convert-source-map": "1.6.0", - "fs-readdir-recursive": "1.1.0", - "glob": "7.1.3", - "lodash": "4.17.11", - "output-file-sync": "1.1.2", - "path-is-absolute": "1.0.1", - "slash": "1.0.0", - "source-map": "0.5.7", - "v8flags": "2.1.1" + "babel-core": "^6.26.0", + "babel-polyfill": "^6.26.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "chokidar": "^1.6.1", + "commander": "^2.11.0", + "convert-source-map": "^1.5.0", + "fs-readdir-recursive": "^1.0.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "output-file-sync": "^1.1.2", + "path-is-absolute": "^1.0.1", + "slash": "^1.0.0", + "source-map": "^0.5.6", + "v8flags": "^2.1.1" } }, "babel-code-frame": { @@ -287,9 +287,9 @@ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" }, "dependencies": { "chalk": { @@ -297,11 +297,11 @@ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "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" } } } @@ -311,25 +311,25 @@ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.1", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.6.0", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" }, "dependencies": { "debug": { @@ -347,14 +347,14 @@ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.11", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" } }, "babel-helper-builder-binary-assignment-operator-visitor": { @@ -362,9 +362,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "requires": { - "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-call-delegate": { @@ -372,10 +372,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-define-map": { @@ -383,10 +383,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.11" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-explode-assignable-expression": { @@ -394,9 +394,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-function-name": { @@ -404,11 +404,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-get-function-arity": { @@ -416,8 +416,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-hoist-variables": { @@ -425,8 +425,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-optimise-call-expression": { @@ -434,8 +434,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-regex": { @@ -443,9 +443,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.11" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-remap-async-to-generator": { @@ -453,11 +453,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-replace-supers": { @@ -465,12 +465,12 @@ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "requires": { - "babel-helper-optimise-call-expression": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helpers": { @@ -478,8 +478,8 @@ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-messages": { @@ -487,7 +487,7 @@ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-check-es2015-constants": { @@ -495,7 +495,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-syntax-async-functions": { @@ -518,9 +518,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-arrow-functions": { @@ -528,7 +528,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -536,7 +536,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -544,11 +544,11 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.11" + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-plugin-transform-es2015-classes": { @@ -556,15 +556,15 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "requires": { - "babel-helper-define-map": "6.26.0", - "babel-helper-function-name": "6.24.1", - "babel-helper-optimise-call-expression": "6.24.1", - "babel-helper-replace-supers": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-computed-properties": { @@ -572,8 +572,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-destructuring": { @@ -581,7 +581,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -589,8 +589,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-for-of": { @@ -598,7 +598,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -606,9 +606,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-literals": { @@ -616,7 +616,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -624,9 +624,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -634,10 +634,10 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" } }, "babel-plugin-transform-es2015-modules-systemjs": { @@ -645,9 +645,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-umd": { @@ -655,9 +655,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "requires": { - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-object-super": { @@ -665,8 +665,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "requires": { - "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.26.0" + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -674,12 +674,12 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-shorthand-properties": { @@ -687,8 +687,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-spread": { @@ -696,7 +696,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -704,9 +704,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-template-literals": { @@ -714,7 +714,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -722,7 +722,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -730,9 +730,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -740,9 +740,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", - "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-regenerator": { @@ -750,7 +750,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "requires": { - "regenerator-transform": "0.10.1" + "regenerator-transform": "^0.10.0" } }, "babel-plugin-transform-strict-mode": { @@ -758,8 +758,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-polyfill": { @@ -767,9 +767,9 @@ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "requires": { - "babel-runtime": "6.26.0", - "core-js": "2.5.7", - "regenerator-runtime": "0.10.5" + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" }, "dependencies": { "regenerator-runtime": { @@ -784,36 +784,36 @@ "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0", - "browserslist": "3.2.8", - "invariant": "2.2.4", - "semver": "5.6.0" + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" } }, "babel-preset-es2015": { @@ -821,30 +821,30 @@ "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0" + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.24.1", + "babel-plugin-transform-es2015-classes": "^6.24.1", + "babel-plugin-transform-es2015-computed-properties": "^6.24.1", + "babel-plugin-transform-es2015-destructuring": "^6.22.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", + "babel-plugin-transform-es2015-for-of": "^6.22.0", + "babel-plugin-transform-es2015-function-name": "^6.24.1", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-umd": "^6.24.1", + "babel-plugin-transform-es2015-object-super": "^6.24.1", + "babel-plugin-transform-es2015-parameters": "^6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", + "babel-plugin-transform-regenerator": "^6.24.1" } }, "babel-register": { @@ -852,13 +852,13 @@ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "requires": { - "babel-core": "6.26.3", - "babel-runtime": "6.26.0", - "core-js": "2.5.7", - "home-or-tmp": "2.0.0", - "lodash": "4.17.11", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" } }, "babel-runtime": { @@ -866,8 +866,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "2.5.7", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -875,11 +875,11 @@ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.11" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { @@ -887,15 +887,15 @@ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.11" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" }, "dependencies": { "debug": { @@ -913,10 +913,10 @@ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.11", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -939,13 +939,13 @@ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "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" }, "dependencies": { "define-property": { @@ -953,7 +953,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -961,7 +961,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -969,7 +969,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -977,9 +977,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -999,7 +999,7 @@ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.5.tgz", "integrity": "sha512-C3picSgzPSLE+jW3tcBzJoGwitOtazb5B+5YmAxZm2ybmTi9LNgAtDO/jjVEBZwHoXmDBZ9m/IELj3elJVRBcA==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "base64-arraybuffer": { @@ -1029,10 +1029,11 @@ }, "bch-wallet-bridge.js": { "version": "github:web3bch/bch-wallet-bridge.js#f73558eaf3a98ba2a23de3c9cbbd582b30ff19eb", + "from": "github:web3bch/bch-wallet-bridge.js#master", "requires": { - "bch-wallet-bridge-provider-interface": "0.1.1", - "bchaddrjs": "0.2.3", - "bitcoincashjs": "0.1.14" + "bch-wallet-bridge-provider-interface": "^0.1.1", + "bchaddrjs": "^0.2.2", + "bitcoincashjs": "^0.1.10" } }, "bchaddrjs": { @@ -1040,8 +1041,8 @@ "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.3.tgz", "integrity": "sha512-0DVW8q3UFQFhrvt8Fowpkk+WvkYTZTSD1vGCQHrtMHZjRL6G/SoW0mgrREmgO1F/8TJ+Julri4UBWA8Gr7C5Yw==", "requires": { - "bs58check": "2.1.2", - "cashaddrjs": "0.2.9" + "bs58check": "^2.1.2", + "cashaddrjs": "^0.2.9" } }, "bcrypt-pbkdf": { @@ -1050,7 +1051,7 @@ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "bech32": { @@ -1094,17 +1095,19 @@ }, "bip21": { "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", + "from": "github:Bitcoin-com/bip21", "requires": { - "qs": "6.6.0" + "qs": "^6.3.0" } }, "bip32-utils": { "version": "github:Bitcoin-com/bip32-utils#966fb8f0e0d4c667e4ee89adfa20c2078d66887c", + "from": "github:Bitcoin-com/bip32-utils#0.13.0", "requires": { - "keccak": "1.4.0", - "nyc": "11.9.0", - "standard": "11.0.1", - "tape": "4.9.1" + "keccak": "^1.3.0", + "nyc": "*", + "standard": "^11.0.1", + "tape": "*" } }, "bip38": { @@ -1112,13 +1115,13 @@ "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", "integrity": "sha512-22KDak0RDyghFbR0Si7wyq9IgY423YzGYzWLpGeofH3DaolOQqjD3mNN08eFoubKlbyclOQKFwtONMv2SD9V3A==", "requires": { - "bigi": "1.4.2", - "browserify-aes": "1.2.0", - "bs58check": "2.1.2", - "buffer-xor": "1.0.3", - "create-hash": "1.2.0", - "ecurve": "1.0.6", - "scryptsy": "2.0.0" + "bigi": "^1.2.0", + "browserify-aes": "^1.0.1", + "bs58check": "<3.0.0", + "buffer-xor": "^1.0.2", + "create-hash": "^1.1.1", + "ecurve": "^1.0.0", + "scryptsy": "^2.0.0" } }, "bip39": { @@ -1126,11 +1129,11 @@ "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", "requires": { - "create-hash": "1.2.0", - "pbkdf2": "3.0.17", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "unorm": "1.4.1" + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "unorm": "^1.3.3" } }, "bip66": { @@ -1138,18 +1141,19 @@ "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "bitcoin-ops": { - "version": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646" + "version": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646", + "from": "github:Bitcoin-com/bitcoincash-ops#1.5.0" }, "bitcoin-txdecoder": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/bitcoin-txdecoder/-/bitcoin-txdecoder-0.0.3.tgz", "integrity": "sha512-pH/eF5hQ65y54U23mzuF42wEj9YWj4WKHAIj2il6b1+oRoi/oyM4Ti3e8nMD8ajippICmyquqbyCZKGq3i4W+A==", "requires": { - "bitcoinjs-lib": "3.3.2" + "bitcoinjs-lib": "3.3.*" } }, "bitcoincashjs": { @@ -1159,22 +1163,23 @@ }, "bitcoincashjs-lib": { "version": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", - "requires": { - "bech32": "1.1.3", - "bigi": "1.4.2", - "bip66": "1.1.5", - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646", - "bs58check": "2.1.2", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ecurve": "1.0.6", - "merkle-lib": "2.0.10", - "pushdata-bitcoin": "1.0.1", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "typeforce": "1.16.0", - "varuint-bitcoin": "1.1.0", - "wif": "2.0.6" + "from": "github:Bitcoin-com/bitcoincashjs-lib#3.3.4", + "requires": { + "bech32": "^1.1.2", + "bigi": "^1.4.0", + "bip66": "^1.1.0", + "bitcoin-ops": "^1.3.0", + "bs58check": "^2.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.3", + "ecurve": "^1.0.0", + "merkle-lib": "^2.0.10", + "pushdata-bitcoin": "^1.0.1", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "typeforce": "^1.11.3", + "varuint-bitcoin": "^1.0.4", + "wif": "^2.0.1" } }, "bitcoinjs-lib": { @@ -1182,21 +1187,21 @@ "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-3.3.2.tgz", "integrity": "sha512-l5qqvbaK8wwtANPf6oEffykycg4383XgEYdia1rI7/JpGf1jfRWlOUCvx5TiTZS7kyIvY4j/UhIQ2urLsvGkzw==", "requires": { - "bech32": "1.1.3", - "bigi": "1.4.2", - "bip66": "1.1.5", - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646", - "bs58check": "2.1.2", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ecurve": "1.0.6", - "merkle-lib": "2.0.10", - "pushdata-bitcoin": "1.0.1", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "typeforce": "1.16.0", - "varuint-bitcoin": "1.1.0", - "wif": "2.0.6" + "bech32": "^1.1.2", + "bigi": "^1.4.0", + "bip66": "^1.1.0", + "bitcoin-ops": "^1.3.0", + "bs58check": "^2.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.3", + "ecurve": "^1.0.0", + "merkle-lib": "^2.0.10", + "pushdata-bitcoin": "^1.0.1", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "typeforce": "^1.11.3", + "varuint-bitcoin": "^1.0.4", + "wif": "^2.0.1" } }, "bitcoinjs-message": { @@ -1204,11 +1209,11 @@ "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", "requires": { - "bs58check": "2.1.2", - "buffer-equals": "1.0.4", - "create-hash": "1.2.0", - "secp256k1": "3.5.2", - "varuint-bitcoin": "1.1.0" + "bs58check": "^2.0.2", + "buffer-equals": "^1.0.3", + "create-hash": "^1.1.2", + "secp256k1": "^3.0.1", + "varuint-bitcoin": "^1.0.1" } }, "blob": { @@ -1226,7 +1231,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -1236,9 +1241,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "optional": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.3" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "brorand": { @@ -1257,12 +1262,12 @@ "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "browserslist": { @@ -1270,8 +1275,8 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "requires": { - "caniuse-lite": "1.0.30000912", - "electron-to-chromium": "1.3.85" + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" } }, "bs58": { @@ -1279,7 +1284,7 @@ "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", "requires": { - "base-x": "3.0.5" + "base-x": "^3.0.2" } }, "bs58check": { @@ -1287,9 +1292,9 @@ "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", "requires": { - "bs58": "4.0.1", - "create-hash": "1.2.0", - "safe-buffer": "5.1.2" + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" } }, "buffer": { @@ -1297,8 +1302,8 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.12" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" } }, "buffer-equals": { @@ -1326,15 +1331,15 @@ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "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" }, "dependencies": { "isobject": { @@ -1349,7 +1354,7 @@ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "requires": { - "callsites": "0.2.0" + "callsites": "^0.2.0" } }, "callsite": { @@ -1359,7 +1364,7 @@ }, "callsites": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "resolved": "http://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=" }, "camelcase": { @@ -1372,7 +1377,7 @@ "resolved": "https://registry.npmjs.org/can-promise/-/can-promise-0.0.1.tgz", "integrity": "sha512-gzVrHyyrvgt0YpDm7pn04MQt8gjh0ZAhN4ZDyCRtGl6YnuuK6b4aiUTD7G52r9l4YNmxfTtEscb92vxtAlL6XQ==", "requires": { - "window-or-global": "1.0.1" + "window-or-global": "^1.0.1" } }, "caniuse-lite": { @@ -1391,7 +1396,7 @@ "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.2.9.tgz", "integrity": "sha512-DhJF4iAH0/RM3UjHDHKRxzs09YGL9px+oTyizzydanhC7jTyM2aJ+aLKA96vZGTTWayvvr2iDF2l13lpqXiRFg==", "requires": { - "big-integer": "1.6.36" + "big-integer": "^1.6.34" } }, "chai": { @@ -1400,12 +1405,12 @@ "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", "dev": true, "requires": { - "assertion-error": "1.1.0", - "check-error": "1.0.2", - "deep-eql": "3.0.1", - "get-func-name": "2.0.0", - "pathval": "1.1.0", - "type-detect": "4.0.8" + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" } }, "chalk": { @@ -1413,9 +1418,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "ansi-styles": { @@ -1423,7 +1428,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "color-convert": "1.9.3" + "color-convert": "^1.9.0" } }, "supports-color": { @@ -1431,7 +1436,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -1453,15 +1458,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "optional": true, "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.2.4", - "glob-parent": "2.0.0", - "inherits": "2.0.1", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1" + "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" } }, "cipher-base": { @@ -1469,8 +1474,8 @@ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "circular-json": { @@ -1483,10 +1488,10 @@ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -1494,7 +1499,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "isobject": { @@ -1514,7 +1519,7 @@ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-width": { @@ -1527,9 +1532,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "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" }, "dependencies": { "is-fullwidth-code-point": { @@ -1537,7 +1542,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" } }, "string-width": { @@ -1545,9 +1550,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" } } } @@ -1564,8 +1569,9 @@ }, "coininfo": { "version": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", + "from": "github:Bitcoin-com/coininfo", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.1" } }, "collection-visit": { @@ -1573,8 +1579,8 @@ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "color-convert": { @@ -1596,7 +1602,7 @@ "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", "dev": true, "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -1626,13 +1632,13 @@ }, "concat-stream": { "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "resolved": "http://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "requires": { - "buffer-from": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" }, "dependencies": { "inherits": { @@ -1652,7 +1658,7 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.1" } }, "cookie": { @@ -1681,12 +1687,12 @@ "integrity": "sha512-Tv0LKe/MkBOilH2v7WBiTBdudg2ChfGbdXafc/s330djpF3zKOmuehTeRwjXWc7pzfj9FrDUTA7tEx6Div8NFw==", "dev": true, "requires": { - "growl": "1.10.5", - "js-yaml": "3.12.0", - "lcov-parse": "0.0.10", - "log-driver": "1.2.7", - "minimist": "1.2.0", - "request": "2.88.0" + "growl": "~> 1.10.0", + "js-yaml": "^3.11.0", + "lcov-parse": "^0.0.10", + "log-driver": "^1.2.7", + "minimist": "^1.2.0", + "request": "^2.85.0" }, "dependencies": { "minimist": { @@ -1702,11 +1708,11 @@ "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-5.0.0.tgz", "integrity": "sha1-vHAP0wyjLSTUbH+wK5kuQ1/FqXg=", "requires": { - "graceful-fs": "4.1.15", - "make-dir": "1.3.0", - "nested-error-stacks": "2.1.0", - "pify": "3.0.0", - "safe-buffer": "5.1.2" + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "nested-error-stacks": "^2.0.0", + "pify": "^3.0.0", + "safe-buffer": "^5.0.1" }, "dependencies": { "pify": { @@ -1721,11 +1727,11 @@ "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.1", - "md5.js": "1.3.5", - "ripemd160": "2.0.2", - "sha.js": "2.4.11" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, "create-hmac": { @@ -1733,12 +1739,12 @@ "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "inherits": "2.0.1", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "cross-spawn": { @@ -1746,9 +1752,9 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "lru-cache": "4.1.4", - "shebang-command": "1.2.0", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "dashdash": { @@ -1757,7 +1763,7 @@ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "debug": { @@ -1770,7 +1776,7 @@ }, "debug-log": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", + "resolved": "http://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=" }, "decamelize": { @@ -1789,7 +1795,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "4.0.8" + "type-detect": "^4.0.0" } }, "deep-equal": { @@ -1807,7 +1813,7 @@ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "requires": { - "object-keys": "1.0.12" + "object-keys": "^1.0.12" } }, "define-property": { @@ -1815,8 +1821,8 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -1824,7 +1830,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -1832,7 +1838,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -1840,9 +1846,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -1867,12 +1873,12 @@ "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.1.tgz", "integrity": "sha512-2kjwuGGonL7gWE1XU4Fv79+vVzpoQCl0V+boMwWtOQJV2AGDabCwez++nB1Nli/8BabAfZQ/UuHPlp6AymKdWw==", "requires": { - "find-root": "1.1.0", - "glob": "7.1.3", - "ignore": "3.3.10", - "pkg-config": "1.1.1", - "run-parallel": "1.1.9", - "uniq": "1.0.1" + "find-root": "^1.0.0", + "glob": "^7.0.5", + "ignore": "^3.0.9", + "pkg-config": "^1.1.0", + "run-parallel": "^1.1.2", + "uniq": "^1.0.1" } }, "delayed-stream": { @@ -1892,7 +1898,7 @@ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "diff": { @@ -1911,7 +1917,7 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "requires": { - "esutils": "2.0.2" + "esutils": "^2.0.2" } }, "drbg.js": { @@ -1919,9 +1925,9 @@ "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", "requires": { - "browserify-aes": "1.2.0", - "create-hash": "1.2.0", - "create-hmac": "1.1.7" + "browserify-aes": "^1.0.6", + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4" } }, "ecc-jsbn": { @@ -1930,8 +1936,8 @@ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, "requires": { - "jsbn": "0.1.1", - "safer-buffer": "2.1.2" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, "ecurve": { @@ -1939,8 +1945,8 @@ "resolved": "https://registry.npmjs.org/ecurve/-/ecurve-1.0.6.tgz", "integrity": "sha512-/BzEjNfiSuB7jIWKcS/z8FK9jNjmEWvUV2YZ4RLSmcDtP7Lq0m6FvDuSnJpBlDpGRpfRQeTLGLBI8H+kEv0r+w==", "requires": { - "bigi": "1.4.2", - "safe-buffer": "5.1.2" + "bigi": "^1.1.0", + "safe-buffer": "^5.0.1" } }, "electron-to-chromium": { @@ -1953,13 +1959,13 @@ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.5", - "hmac-drbg": "1.0.1", - "inherits": "2.0.1", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" } }, "engine.io": { @@ -1967,29 +1973,29 @@ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz", "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==", "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.4", "base64id": "1.0.0", "cookie": "0.3.1", - "debug": "3.1.0", - "engine.io-parser": "2.1.3", - "ws": "3.3.3" + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "ws": "~3.3.1" } }, "engine.io-client": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", + "resolved": "http://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", "requires": { "component-emitter": "1.2.1", "component-inherit": "0.0.3", - "debug": "3.1.0", - "engine.io-parser": "2.1.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", "has-cors": "1.1.0", "indexof": "0.0.1", "parseqs": "0.0.5", "parseuri": "0.0.5", - "ws": "3.3.3", - "xmlhttprequest-ssl": "1.5.5", + "ws": "~3.3.1", + "xmlhttprequest-ssl": "~1.5.4", "yeast": "0.1.2" } }, @@ -1999,10 +2005,10 @@ "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", "requires": { "after": "0.8.2", - "arraybuffer.slice": "0.0.7", + "arraybuffer.slice": "~0.0.7", "base64-arraybuffer": "0.1.5", "blob": "0.0.5", - "has-binary2": "1.0.3" + "has-binary2": "~1.0.2" } }, "error-ex": { @@ -2010,7 +2016,7 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "es-abstract": { @@ -2018,11 +2024,11 @@ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", "requires": { - "es-to-primitive": "1.2.0", - "function-bind": "1.1.1", - "has": "1.0.3", - "is-callable": "1.1.4", - "is-regex": "1.0.4" + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" } }, "es-to-primitive": { @@ -2030,9 +2036,9 @@ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", "requires": { - "is-callable": "1.1.4", - "is-date-object": "1.0.1", - "is-symbol": "1.0.2" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" } }, "escape-string-regexp": { @@ -2046,44 +2052,44 @@ "integrity": "sha512-g4KWpPdqN0nth+goDNICNXGfJF7nNnepthp46CAlJoJtC5K/cLu3NgCM3AHu1CkJ5Hzt9V0Y0PBAO6Ay/gGb+w==", "dev": true, "requires": { - "@babel/code-frame": "7.0.0", - "ajv": "6.5.5", - "chalk": "2.4.1", - "cross-spawn": "6.0.5", - "debug": "4.1.0", - "doctrine": "2.1.0", - "eslint-scope": "4.0.0", - "eslint-utils": "1.3.1", - "eslint-visitor-keys": "1.0.0", - "espree": "4.1.0", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.3", - "globals": "11.9.0", - "ignore": "4.0.6", - "imurmurhash": "0.1.4", - "inquirer": "6.2.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.12.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.1", - "regexpp": "2.0.1", - "require-uncached": "1.0.3", - "semver": "5.6.0", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", - "table": "5.1.0", - "text-table": "0.2.0" + "@babel/code-frame": "^7.0.0", + "ajv": "^6.5.3", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^2.1.0", + "eslint-scope": "^4.0.0", + "eslint-utils": "^1.3.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^4.0.0", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.7.0", + "ignore": "^4.0.6", + "imurmurhash": "^0.1.4", + "inquirer": "^6.1.0", + "is-resolvable": "^1.1.0", + "js-yaml": "^3.12.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.5", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.5.1", + "strip-ansi": "^4.0.0", + "strip-json-comments": "^2.0.1", + "table": "^5.0.2", + "text-table": "^0.2.0" }, "dependencies": { "acorn": { @@ -2104,10 +2110,10 @@ "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==", "dev": true, "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, "ansi-regex": { @@ -2128,11 +2134,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.6.0", - "shebang-command": "1.2.0", - "which": "1.3.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "debug": { @@ -2141,7 +2147,7 @@ "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", "dev": true, "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "eslint-scope": { @@ -2150,8 +2156,8 @@ "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", "dev": true, "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "espree": { @@ -2160,9 +2166,9 @@ "integrity": "sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w==", "dev": true, "requires": { - "acorn": "6.0.4", - "acorn-jsx": "5.0.1", - "eslint-visitor-keys": "1.0.0" + "acorn": "^6.0.2", + "acorn-jsx": "^5.0.0", + "eslint-visitor-keys": "^1.0.0" } }, "external-editor": { @@ -2171,9 +2177,9 @@ "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", "dev": true, "requires": { - "chardet": "0.7.0", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" } }, "fast-deep-equal": { @@ -2200,19 +2206,19 @@ "integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==", "dev": true, "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "3.0.3", - "figures": "2.0.0", - "lodash": "4.17.11", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.0", + "figures": "^2.0.0", + "lodash": "^4.17.10", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rxjs": "6.3.3", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rxjs": "^6.1.0", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" } }, "json-schema-traverse": { @@ -2233,7 +2239,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "table": { @@ -2242,10 +2248,10 @@ "integrity": "sha512-e542in22ZLhD/fOIuXs/8yDZ9W61ltF8daM88rkRNtgTIct+vI2fTnAyu/Db2TCfEcI8i7mjZz6meLq0nW7TYg==", "dev": true, "requires": { - "ajv": "6.5.5", - "lodash": "4.17.11", + "ajv": "^6.5.3", + "lodash": "^4.17.10", "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "string-width": "^2.1.1" } } } @@ -2256,7 +2262,7 @@ "integrity": "sha512-Bc3bh5bAcKNvs3HOpSi6EfGA2IIp7EzWcg2tS4vP7stnXu/J1opihHDM7jI9JCIckyIDTgZLSWn7J3HY0j2JfA==", "dev": true, "requires": { - "get-stdin": "6.0.0" + "get-stdin": "^6.0.0" } }, "eslint-config-standard": { @@ -2274,8 +2280,8 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", "requires": { - "debug": "2.6.9", - "resolve": "1.8.1" + "debug": "^2.6.9", + "resolve": "^1.5.0" }, "dependencies": { "debug": { @@ -2293,8 +2299,8 @@ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", "requires": { - "debug": "2.6.9", - "pkg-dir": "1.0.0" + "debug": "^2.6.8", + "pkg-dir": "^1.0.0" }, "dependencies": { "debug": { @@ -2313,8 +2319,8 @@ "integrity": "sha512-XfFmgFdIUDgvaRAlaXUkxrRg5JSADoRC8IkKLc/cISeR3yHVMefFHQZpcyXXEUUPHfy5DwviBcrfqlyqEwlQVw==", "dev": true, "requires": { - "eslint-utils": "1.3.1", - "regexpp": "2.0.1" + "eslint-utils": "^1.3.0", + "regexpp": "^2.0.1" } }, "eslint-plugin-import": { @@ -2322,16 +2328,16 @@ "resolved": "http://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz", "integrity": "sha1-JgAu+/ylmJtyiKwEdQi9JPIXsWk=", "requires": { - "builtin-modules": "1.1.1", - "contains-path": "0.1.0", - "debug": "2.6.9", + "builtin-modules": "^1.1.1", + "contains-path": "^0.1.0", + "debug": "^2.6.8", "doctrine": "1.5.0", - "eslint-import-resolver-node": "0.3.2", - "eslint-module-utils": "2.2.0", - "has": "1.0.3", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "read-pkg-up": "2.0.0" + "eslint-import-resolver-node": "^0.3.1", + "eslint-module-utils": "^2.1.1", + "has": "^1.0.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.3", + "read-pkg-up": "^2.0.0" }, "dependencies": { "debug": { @@ -2344,11 +2350,11 @@ }, "doctrine": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "resolved": "http://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" + "esutils": "^2.0.2", + "isarray": "^1.0.0" } } } @@ -2359,12 +2365,12 @@ "integrity": "sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw==", "dev": true, "requires": { - "eslint-plugin-es": "1.4.0", - "eslint-utils": "1.3.1", - "ignore": "4.0.6", - "minimatch": "3.0.4", - "resolve": "1.8.1", - "semver": "5.6.0" + "eslint-plugin-es": "^1.3.1", + "eslint-utils": "^1.3.1", + "ignore": "^4.0.2", + "minimatch": "^3.0.4", + "resolve": "^1.8.1", + "semver": "^5.5.0" }, "dependencies": { "ignore": { @@ -2381,8 +2387,8 @@ "integrity": "sha512-CStQYJgALoQBw3FsBzH0VOVDRnJ/ZimUlpLm226U8qgqYJfPOY/CPK6wyRInMxh73HSKg5wyRwdS4BVYYHwokA==", "dev": true, "requires": { - "fast-diff": "1.2.0", - "jest-docblock": "21.2.0" + "fast-diff": "^1.1.1", + "jest-docblock": "^21.0.0" } }, "eslint-plugin-promise": { @@ -2395,10 +2401,10 @@ "resolved": "http://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz", "integrity": "sha512-KC7Snr4YsWZD5flu6A5c0AcIZidzW3Exbqp7OT67OaD2AppJtlBr/GuPrW/vaQM/yfZotEvKAdrxrO+v8vwYJA==", "requires": { - "doctrine": "2.1.0", - "has": "1.0.3", - "jsx-ast-utils": "2.0.1", - "prop-types": "15.6.2" + "doctrine": "^2.0.2", + "has": "^1.0.1", + "jsx-ast-utils": "^2.0.1", + "prop-types": "^15.6.0" } }, "eslint-plugin-standard": { @@ -2411,8 +2417,8 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint-utils": { @@ -2431,8 +2437,8 @@ "resolved": "http://registry.npmjs.org/espree/-/espree-3.5.4.tgz", "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "requires": { - "acorn": "5.7.3", - "acorn-jsx": "3.0.1" + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" } }, "esprima": { @@ -2445,7 +2451,7 @@ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "esrecurse": { @@ -2453,7 +2459,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.1.0" } }, "estraverse": { @@ -2471,8 +2477,8 @@ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "requires": { - "md5.js": "1.3.5", - "safe-buffer": "5.1.2" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, "execa": { @@ -2480,13 +2486,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "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" } }, "expand-brackets": { @@ -2495,7 +2501,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "optional": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -2504,7 +2510,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "optional": true, "requires": { - "fill-range": "2.2.4" + "fill-range": "^2.1.0" } }, "extend": { @@ -2518,8 +2524,8 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -2527,7 +2533,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -2537,9 +2543,9 @@ "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" } }, "extglob": { @@ -2548,7 +2554,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "optional": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "extsprintf": { @@ -2559,7 +2565,7 @@ }, "fast-deep-equal": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" }, "fast-diff": { @@ -2588,7 +2594,7 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { @@ -2596,8 +2602,8 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "requires": { - "flat-cache": "1.3.4", - "object-assign": "4.1.1" + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" } }, "filename-regex": { @@ -2612,11 +2618,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "optional": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.1.1", - "repeat-element": "1.1.3", - "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" } }, "find-root": { @@ -2629,8 +2635,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" } }, "flat-cache": { @@ -2638,10 +2644,10 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", "requires": { - "circular-json": "0.3.3", - "graceful-fs": "4.1.15", - "rimraf": "2.6.2", - "write": "0.2.1" + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" } }, "follow-redirects": { @@ -2649,7 +2655,7 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", "requires": { - "debug": "3.1.0" + "debug": "=3.1.0" } }, "for-each": { @@ -2657,7 +2663,7 @@ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "requires": { - "is-callable": "1.1.4" + "is-callable": "^1.1.3" } }, "for-in": { @@ -2671,7 +2677,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "optional": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "forever-agent": { @@ -2686,9 +2692,9 @@ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.7", - "mime-types": "2.1.21" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" } }, "fragment-cache": { @@ -2696,7 +2702,7 @@ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fresh": { @@ -2721,8 +2727,8 @@ "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", "optional": true, "requires": { - "nan": "2.11.1", - "node-pre-gyp": "0.10.0" + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" }, "dependencies": { "abbrev": { @@ -2744,8 +2750,8 @@ "bundled": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "balanced-match": { @@ -2756,7 +2762,7 @@ "version": "1.1.11", "bundled": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -2810,7 +2816,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "fs.realpath": { @@ -2823,14 +2829,14 @@ "bundled": true, "optional": 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" } }, "glob": { @@ -2838,12 +2844,12 @@ "bundled": true, "optional": 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" } }, "has-unicode": { @@ -2856,7 +2862,7 @@ "bundled": true, "optional": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "^2.1.0" } }, "ignore-walk": { @@ -2864,7 +2870,7 @@ "bundled": true, "optional": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "inflight": { @@ -2872,8 +2878,8 @@ "bundled": true, "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -2889,7 +2895,7 @@ "version": "1.0.0", "bundled": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "isarray": { @@ -2901,7 +2907,7 @@ "version": "3.0.4", "bundled": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -2912,8 +2918,8 @@ "version": "2.2.4", "bundled": true, "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" } }, "minizlib": { @@ -2921,7 +2927,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "mkdirp": { @@ -2941,9 +2947,9 @@ "bundled": true, "optional": true, "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, "node-pre-gyp": { @@ -2951,16 +2957,16 @@ "bundled": true, "optional": true, "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.7", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" + "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": { @@ -2968,8 +2974,8 @@ "bundled": true, "optional": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npm-bundled": { @@ -2982,8 +2988,8 @@ "bundled": true, "optional": true, "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, "npmlog": { @@ -2991,10 +2997,10 @@ "bundled": 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" + "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": { @@ -3010,7 +3016,7 @@ "version": "1.4.0", "bundled": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -3028,8 +3034,8 @@ "bundled": 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": { @@ -3047,10 +3053,10 @@ "bundled": true, "optional": true, "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "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": { @@ -3065,13 +3071,13 @@ "bundled": true, "optional": true, "requires": { - "core-util-is": "1.0.2", - "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.2" + "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": { @@ -3079,7 +3085,7 @@ "bundled": true, "optional": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { @@ -3115,9 +3121,9 @@ "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": { @@ -3125,14 +3131,14 @@ "bundled": true, "optional": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { "version": "3.0.1", "bundled": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -3145,13 +3151,13 @@ "bundled": true, "optional": true, "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "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" } }, "util-deprecate": { @@ -3164,7 +3170,7 @@ "bundled": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { @@ -3219,7 +3225,7 @@ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "git-clone": { @@ -3232,12 +3238,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.1", - "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": { @@ -3246,8 +3252,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "optional": true, "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -3255,7 +3261,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "globals": { @@ -3286,8 +3292,8 @@ "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "dev": true, "requires": { - "ajv": "6.5.5", - "har-schema": "2.0.0" + "ajv": "^6.5.5", + "har-schema": "^2.0.0" }, "dependencies": { "ajv": { @@ -3296,10 +3302,10 @@ "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==", "dev": true, "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, "fast-deep-equal": { @@ -3321,7 +3327,7 @@ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.1.1" } }, "has-ansi": { @@ -3329,7 +3335,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-binary2": { @@ -3367,9 +3373,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "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" }, "dependencies": { "isobject": { @@ -3384,8 +3390,8 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { @@ -3393,7 +3399,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -3401,7 +3407,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -3411,7 +3417,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -3421,8 +3427,8 @@ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "hash.js": { @@ -3430,8 +3436,8 @@ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" }, "dependencies": { "inherits": { @@ -3452,9 +3458,9 @@ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { - "hash.js": "1.1.5", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, "home-or-tmp": { @@ -3462,8 +3468,8 @@ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" } }, "hosted-git-info": { @@ -3477,9 +3483,9 @@ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.15.2" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "iconv-lite": { @@ -3487,7 +3493,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "ieee754": { @@ -3515,8 +3521,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -3534,20 +3540,20 @@ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.11", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" }, "dependencies": { "ansi-regex": { @@ -3560,7 +3566,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -3570,7 +3576,7 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -3583,7 +3589,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-arrayish": { @@ -3597,7 +3603,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "optional": true, "requires": { - "binary-extensions": "1.12.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -3610,7 +3616,7 @@ "resolved": "http://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-callable": { @@ -3623,7 +3629,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-date-object": { @@ -3636,9 +3642,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "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": { @@ -3660,7 +3666,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "optional": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -3678,7 +3684,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-fullwidth-code-point": { @@ -3691,7 +3697,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-number": { @@ -3700,7 +3706,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-plain-object": { @@ -3708,7 +3714,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -3740,7 +3746,7 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "requires": { - "has": "1.0.3" + "has": "^1.0.1" } }, "is-resolvable": { @@ -3758,7 +3764,7 @@ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", "requires": { - "has-symbols": "1.0.0" + "has-symbols": "^1.0.0" } }, "is-typedarray": { @@ -3814,8 +3820,8 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsbn": { @@ -3826,7 +3832,7 @@ }, "jsesc": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" }, "json-parse-better-errors": { @@ -3878,7 +3884,7 @@ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", "requires": { - "array-includes": "3.0.3" + "array-includes": "^3.0.3" } }, "just-extend": { @@ -3892,10 +3898,10 @@ "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", "requires": { - "bindings": "1.3.1", - "inherits": "2.0.3", - "nan": "2.11.1", - "safe-buffer": "5.1.2" + "bindings": "^1.2.1", + "inherits": "^2.0.3", + "nan": "^2.2.1", + "safe-buffer": "^5.1.0" }, "dependencies": { "inherits": { @@ -3910,7 +3916,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lcid": { @@ -3918,7 +3924,7 @@ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "lcov-parse": { @@ -3932,8 +3938,8 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "load-json-file": { @@ -3941,10 +3947,10 @@ "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "requires": { - "graceful-fs": "4.1.15", - "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" } }, "locate-path": { @@ -3952,8 +3958,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" }, "dependencies": { "path-exists": { @@ -3996,7 +4002,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0 || ^4.0.0" } }, "lru-cache": { @@ -4004,8 +4010,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.4.tgz", "integrity": "sha512-EPstzZ23znHUVLKj+lcXO1KvZkrlw+ZirdwvOmnAnA/1PB4ggyXJ77LRkCqkff+ShQ+cqoxCxLQOh4cKITO5iA==", "requires": { - "pseudomap": "1.0.2", - "yallist": "3.0.3" + "pseudomap": "^1.0.2", + "yallist": "^3.0.2" } }, "make-dir": { @@ -4013,7 +4019,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" }, "dependencies": { "pify": { @@ -4033,7 +4039,7 @@ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "math-random": { @@ -4047,14 +4053,14 @@ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, "media-typer": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "resolved": "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true }, @@ -4063,7 +4069,7 @@ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "merge-descriptors": { @@ -4089,19 +4095,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "optional": 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" } }, "mime": { @@ -4120,7 +4126,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", "requires": { - "mime-db": "1.37.0" + "mime-db": "~1.37.0" } }, "mimic-fn": { @@ -4143,7 +4149,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -4156,8 +4162,8 @@ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -4165,7 +4171,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -4209,12 +4215,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.1", - "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" } }, "supports-color": { @@ -4223,7 +4229,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -4249,17 +4255,17 @@ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "optional": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "arr-diff": { @@ -4316,10 +4322,10 @@ "dev": true, "requires": { "@sinonjs/formatio": "3.0.0", - "just-extend": "3.0.0", - "lolex": "2.7.5", - "path-to-regexp": "1.7.0", - "text-encoding": "0.6.4" + "just-extend": "^3.0.0", + "lolex": "^2.3.2", + "path-to-regexp": "^1.7.0", + "text-encoding": "^0.6.4" }, "dependencies": { "@sinonjs/formatio": { @@ -4343,7 +4349,7 @@ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", "requires": { - "lodash.toarray": "4.4.0" + "lodash.toarray": "^4.4.0" } }, "node-mocks-http": { @@ -4352,16 +4358,16 @@ "integrity": "sha512-wayzLNhEroH3lJj113pFKQ1cd1GKG1mXoZR1HcKp/o9a9lTGGgVY/hYeLajiIFr/z4tXFKOdfJickqqihBtn9g==", "dev": true, "requires": { - "accepts": "1.3.5", - "depd": "1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "mime": "1.6.0", - "net": "1.0.2", - "parseurl": "1.3.2", - "range-parser": "1.2.0", - "type-is": "1.6.16" + "accepts": "^1.3.5", + "depd": "^1.1.0", + "fresh": "^0.5.2", + "merge-descriptors": "^1.0.1", + "methods": "^1.1.2", + "mime": "^1.3.4", + "net": "^1.0.2", + "parseurl": "^1.3.1", + "range-parser": "^1.2.0", + "type-is": "^1.6.16" } }, "nopt": { @@ -4369,7 +4375,7 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } }, "normalize-package-data": { @@ -4377,10 +4383,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.7.1", - "is-builtin-module": "1.0.0", - "semver": "5.6.0", - "validate-npm-package-license": "3.0.4" + "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": { @@ -4388,7 +4394,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "npm-run-path": { @@ -4396,7 +4402,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -4409,42 +4415,42 @@ "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.9.0.tgz", "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", "requires": { - "archy": "1.0.0", - "arrify": "1.0.1", - "caching-transform": "1.0.1", - "convert-source-map": "1.5.1", - "debug-log": "1.0.1", - "default-require-extensions": "1.0.0", - "find-cache-dir": "0.1.1", - "find-up": "2.1.0", - "foreground-child": "1.5.6", - "glob": "7.1.2", - "istanbul-lib-coverage": "1.2.0", - "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "1.10.1", - "istanbul-lib-report": "1.1.3", - "istanbul-lib-source-maps": "1.2.3", - "istanbul-reports": "1.4.0", - "md5-hex": "1.3.0", - "merge-source-map": "1.1.0", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "resolve-from": "2.0.0", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "spawn-wrap": "1.4.2", - "test-exclude": "4.2.1", + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^1.0.0", + "convert-source-map": "^1.5.1", + "debug-log": "^1.0.1", + "default-require-extensions": "^1.0.0", + "find-cache-dir": "^0.1.1", + "find-up": "^2.1.0", + "foreground-child": "^1.5.3", + "glob": "^7.0.6", + "istanbul-lib-coverage": "^1.1.2", + "istanbul-lib-hook": "^1.1.0", + "istanbul-lib-instrument": "^1.10.0", + "istanbul-lib-report": "^1.1.3", + "istanbul-lib-source-maps": "^1.2.3", + "istanbul-reports": "^1.4.0", + "md5-hex": "^1.2.0", + "merge-source-map": "^1.1.0", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.0", + "resolve-from": "^2.0.0", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.1", + "spawn-wrap": "^1.4.2", + "test-exclude": "^4.2.0", "yargs": "11.1.0", - "yargs-parser": "8.1.0" + "yargs-parser": "^8.0.0" }, "dependencies": { "align-text": { "version": "0.1.4", "bundled": 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" } }, "amdefine": { @@ -4463,7 +4469,7 @@ "version": "0.4.0", "bundled": true, "requires": { - "default-require-extensions": "1.0.0" + "default-require-extensions": "^1.0.0" } }, "archy": { @@ -4506,74 +4512,74 @@ "version": "6.26.0", "bundled": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" } }, "babel-generator": { "version": "6.26.1", "bundled": true, "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" } }, "babel-messages": { "version": "6.23.0", "bundled": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-runtime": { "version": "6.26.0", "bundled": true, "requires": { - "core-js": "2.5.6", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { "version": "6.26.0", "bundled": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.10" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { "version": "6.26.0", "bundled": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.10" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" } }, "babel-types": { "version": "6.26.0", "bundled": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -4588,43 +4594,43 @@ "version": "0.11.2", "bundled": true, "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "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" }, "dependencies": { "define-property": { "version": "1.0.0", "bundled": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -4641,7 +4647,7 @@ "version": "1.1.11", "bundled": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -4649,23 +4655,23 @@ "version": "2.3.2", "bundled": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -4678,15 +4684,15 @@ "version": "1.0.1", "bundled": 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" }, "dependencies": { "isobject": { @@ -4699,9 +4705,9 @@ "version": "1.0.1", "bundled": true, "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" } }, "camelcase": { @@ -4714,36 +4720,36 @@ "bundled": true, "optional": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chalk": { "version": "1.1.3", "bundled": 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" } }, "class-utils": { "version": "0.3.6", "bundled": true, "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { "version": "0.2.5", "bundled": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "isobject": { @@ -4757,8 +4763,8 @@ "bundled": true, "optional": 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" }, "dependencies": { @@ -4777,8 +4783,8 @@ "version": "1.0.0", "bundled": true, "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "commondir": { @@ -4809,8 +4815,8 @@ "version": "4.0.2", "bundled": true, "requires": { - "lru-cache": "4.1.3", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } }, "debug": { @@ -4836,38 +4842,38 @@ "version": "1.0.0", "bundled": true, "requires": { - "strip-bom": "2.0.0" + "strip-bom": "^2.0.0" } }, "define-property": { "version": "2.0.2", "bundled": true, "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -4884,14 +4890,14 @@ "version": "4.0.0", "bundled": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "error-ex": { "version": "1.3.1", "bundled": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "escape-string-regexp": { @@ -4906,22 +4912,22 @@ "version": "0.7.0", "bundled": 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" }, "dependencies": { "cross-spawn": { "version": "5.1.0", "bundled": true, "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } } } @@ -4930,27 +4936,27 @@ "version": "2.1.4", "bundled": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { "version": "0.2.5", "bundled": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -4959,15 +4965,15 @@ "version": "3.0.2", "bundled": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { "version": "1.0.1", "bundled": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -4976,51 +4982,51 @@ "version": "2.0.4", "bundled": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { "version": "1.0.0", "bundled": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { @@ -5033,17 +5039,17 @@ "version": "4.0.0", "bundled": 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" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5052,16 +5058,16 @@ "version": "0.1.1", "bundled": true, "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" } }, "find-up": { "version": "2.1.0", "bundled": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "for-in": { @@ -5072,15 +5078,15 @@ "version": "1.5.6", "bundled": true, "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" + "cross-spawn": "^4", + "signal-exit": "^3.0.0" } }, "fragment-cache": { "version": "0.2.1", "bundled": true, "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fs.realpath": { @@ -5103,12 +5109,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" } }, "globals": { @@ -5123,17 +5129,17 @@ "version": "4.0.11", "bundled": 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": { "source-map": { "version": "0.4.4", "bundled": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -5142,7 +5148,7 @@ "version": "2.0.0", "bundled": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { @@ -5153,9 +5159,9 @@ "version": "1.0.0", "bundled": 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" }, "dependencies": { "isobject": { @@ -5168,22 +5174,22 @@ "version": "1.0.0", "bundled": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { "version": "3.0.0", "bundled": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "bundled": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5192,7 +5198,7 @@ "version": "4.0.0", "bundled": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5209,8 +5215,8 @@ "version": "1.0.6", "bundled": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -5221,7 +5227,7 @@ "version": "2.2.4", "bundled": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -5232,7 +5238,7 @@ "version": "0.1.6", "bundled": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-arrayish": { @@ -5247,23 +5253,23 @@ "version": "1.0.0", "bundled": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-data-descriptor": { "version": "0.1.4", "bundled": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-descriptor": { "version": "0.1.6", "bundled": 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": { @@ -5280,7 +5286,7 @@ "version": "1.0.2", "bundled": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -5291,14 +5297,14 @@ "version": "3.0.0", "bundled": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-odd": { "version": "2.0.0", "bundled": true, "requires": { - "is-number": "4.0.0" + "is-number": "^4.0.0" }, "dependencies": { "is-number": { @@ -5311,7 +5317,7 @@ "version": "2.0.4", "bundled": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -5352,37 +5358,37 @@ "version": "1.1.0", "bundled": true, "requires": { - "append-transform": "0.4.0" + "append-transform": "^0.4.0" } }, "istanbul-lib-instrument": { "version": "1.10.1", "bundled": true, "requires": { - "babel-generator": "6.26.1", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.2.0", - "semver": "5.5.0" + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.0", + "semver": "^5.3.0" } }, "istanbul-lib-report": { "version": "1.1.3", "bundled": true, "requires": { - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" }, "dependencies": { "supports-color": { "version": "3.2.3", "bundled": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5391,11 +5397,11 @@ "version": "1.2.3", "bundled": true, "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" }, "dependencies": { "debug": { @@ -5411,7 +5417,7 @@ "version": "1.4.0", "bundled": true, "requires": { - "handlebars": "4.0.11" + "handlebars": "^4.0.3" } }, "js-tokens": { @@ -5426,7 +5432,7 @@ "version": "3.2.2", "bundled": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lazy-cache": { @@ -5438,26 +5444,26 @@ "version": "1.0.0", "bundled": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "load-json-file": { "version": "1.1.0", "bundled": true, "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": { "version": "2.0.0", "bundled": 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": { @@ -5478,15 +5484,15 @@ "version": "1.3.1", "bundled": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "lru-cache": { "version": "4.1.3", "bundled": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "map-cache": { @@ -5497,14 +5503,14 @@ "version": "1.0.0", "bundled": true, "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "md5-hex": { "version": "1.3.0", "bundled": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { @@ -5515,14 +5521,14 @@ "version": "1.1.0", "bundled": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "merge-source-map": { "version": "1.1.0", "bundled": true, "requires": { - "source-map": "0.6.1" + "source-map": "^0.6.1" }, "dependencies": { "source-map": { @@ -5535,19 +5541,19 @@ "version": "3.1.10", "bundled": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "dependencies": { "kind-of": { @@ -5564,7 +5570,7 @@ "version": "3.0.4", "bundled": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -5575,15 +5581,15 @@ "version": "1.3.1", "bundled": 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": { "version": "1.0.1", "bundled": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -5603,18 +5609,18 @@ "version": "1.2.9", "bundled": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-odd": "^2.0.0", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "arr-diff": { @@ -5635,17 +5641,17 @@ "version": "2.4.0", "bundled": true, "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "npm-run-path": { "version": "2.0.2", "bundled": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -5660,16 +5666,16 @@ "version": "0.1.0", "bundled": 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": { "version": "0.2.5", "bundled": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -5678,7 +5684,7 @@ "version": "1.0.1", "bundled": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" }, "dependencies": { "isobject": { @@ -5691,7 +5697,7 @@ "version": "1.3.0", "bundled": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -5704,15 +5710,15 @@ "version": "1.4.0", "bundled": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "optimist": { "version": "0.6.1", "bundled": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "os-homedir": { @@ -5723,9 +5729,9 @@ "version": "2.1.0", "bundled": 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" } }, "p-finally": { @@ -5736,14 +5742,14 @@ "version": "1.2.0", "bundled": true, "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { "version": "2.0.0", "bundled": true, "requires": { - "p-limit": "1.2.0" + "p-limit": "^1.1.0" } }, "p-try": { @@ -5754,7 +5760,7 @@ "version": "2.2.0", "bundled": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "pascalcase": { @@ -5765,7 +5771,7 @@ "version": "2.1.0", "bundled": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { @@ -5784,9 +5790,9 @@ "version": "1.1.0", "bundled": true, "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" } }, "pify": { @@ -5801,22 +5807,22 @@ "version": "2.0.1", "bundled": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { "version": "1.0.0", "bundled": true, "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" }, "dependencies": { "find-up": { "version": "1.1.2", "bundled": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } @@ -5833,25 +5839,25 @@ "version": "1.1.0", "bundled": true, "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": { "version": "1.0.1", "bundled": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" }, "dependencies": { "find-up": { "version": "1.1.2", "bundled": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } @@ -5864,8 +5870,8 @@ "version": "1.0.2", "bundled": true, "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "repeat-element": { @@ -5880,7 +5886,7 @@ "version": "2.0.1", "bundled": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "require-directory": { @@ -5908,21 +5914,21 @@ "bundled": true, "optional": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { "version": "2.6.2", "bundled": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-regex": { "version": "1.1.0", "bundled": true, "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "semver": { @@ -5937,17 +5943,17 @@ "version": "2.0.0", "bundled": 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" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5956,7 +5962,7 @@ "version": "1.2.0", "bundled": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -5975,28 +5981,28 @@ "version": "0.8.2", "bundled": 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": "3.1.0" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "define-property": { "version": "0.2.5", "bundled": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -6005,39 +6011,39 @@ "version": "2.1.1", "bundled": 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" }, "dependencies": { "define-property": { "version": "1.0.0", "bundled": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -6054,7 +6060,7 @@ "version": "3.0.1", "bundled": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "source-map": { @@ -6065,11 +6071,11 @@ "version": "0.5.1", "bundled": true, "requires": { - "atob": "2.1.1", - "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": { @@ -6080,20 +6086,20 @@ "version": "1.4.2", "bundled": true, "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.0" + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" } }, "spdx-correct": { "version": "3.0.0", "bundled": true, "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -6104,8 +6110,8 @@ "version": "3.0.0", "bundled": true, "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -6116,22 +6122,22 @@ "version": "3.1.0", "bundled": true, "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "static-extend": { "version": "0.1.2", "bundled": 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": { "version": "0.2.5", "bundled": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -6140,8 +6146,8 @@ "version": "2.1.1", "bundled": 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" }, "dependencies": { "ansi-regex": { @@ -6152,7 +6158,7 @@ "version": "4.0.0", "bundled": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -6161,14 +6167,14 @@ "version": "3.0.1", "bundled": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { "version": "2.0.0", "bundled": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-eof": { @@ -6183,11 +6189,11 @@ "version": "4.2.1", "bundled": true, "requires": { - "arrify": "1.0.1", - "micromatch": "3.1.10", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" + "arrify": "^1.0.1", + "micromatch": "^3.1.8", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" }, "dependencies": { "arr-diff": { @@ -6202,23 +6208,23 @@ "version": "2.3.2", "bundled": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -6227,41 +6233,41 @@ "version": "2.1.4", "bundled": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { "version": "0.2.5", "bundled": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { "version": "0.1.6", "bundled": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "bundled": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -6270,14 +6276,14 @@ "version": "0.1.4", "bundled": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "bundled": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -6286,9 +6292,9 @@ "version": "0.1.6", "bundled": 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": { @@ -6301,28 +6307,28 @@ "version": "2.0.4", "bundled": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { "version": "1.0.0", "bundled": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -6331,17 +6337,17 @@ "version": "4.0.0", "bundled": 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" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -6350,37 +6356,37 @@ "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-number": { "version": "3.0.0", "bundled": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "bundled": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -6397,19 +6403,19 @@ "version": "3.1.10", "bundled": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } @@ -6422,32 +6428,32 @@ "version": "0.3.0", "bundled": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { "version": "3.0.2", "bundled": true, "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { "version": "2.1.1", "bundled": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "dependencies": { "is-number": { "version": "3.0.0", "bundled": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } } } @@ -6461,9 +6467,9 @@ "bundled": true, "optional": 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" }, "dependencies": { "yargs": { @@ -6471,9 +6477,9 @@ "bundled": true, "optional": 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" } } @@ -6488,27 +6494,27 @@ "version": "1.0.0", "bundled": 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": { "extend-shallow": { "version": "2.0.1", "bundled": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { "version": "0.4.3", "bundled": 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" } } } @@ -6517,17 +6523,17 @@ "version": "1.0.0", "bundled": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { "version": "0.3.1", "bundled": 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": { @@ -6557,7 +6563,7 @@ "version": "3.1.0", "bundled": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.2" }, "dependencies": { "kind-of": { @@ -6570,15 +6576,15 @@ "version": "3.0.3", "bundled": true, "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "which": { "version": "1.3.0", "bundled": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -6598,24 +6604,24 @@ "version": "2.1.0", "bundled": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { "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" } } } @@ -6628,9 +6634,9 @@ "version": "1.3.4", "bundled": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } }, "y18n": { @@ -6645,18 +6651,18 @@ "version": "11.1.0", "bundled": true, "requires": { - "cliui": "4.1.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": "9.0.2" + "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": "^9.0.2" }, "dependencies": { "ansi-regex": { @@ -6671,23 +6677,23 @@ "version": "4.1.0", "bundled": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" } }, "strip-ansi": { "version": "4.0.0", "bundled": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "yargs-parser": { "version": "9.0.2", "bundled": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } @@ -6696,7 +6702,7 @@ "version": "8.1.0", "bundled": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { @@ -6728,9 +6734,9 @@ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "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": { @@ -6738,7 +6744,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -6758,7 +6764,7 @@ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" }, "dependencies": { "isobject": { @@ -6774,8 +6780,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "optional": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "object.pick": { @@ -6783,7 +6789,7 @@ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -6798,7 +6804,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -6806,7 +6812,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "optionator": { @@ -6814,17 +6820,17 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" } }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "resolved": "http://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-locale": { @@ -6832,14 +6838,14 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "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" } }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "resolved": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "output-file-sync": { @@ -6847,9 +6853,9 @@ "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", "requires": { - "graceful-fs": "4.1.15", - "mkdirp": "0.5.1", - "object-assign": "4.1.1" + "graceful-fs": "^4.1.4", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.0" } }, "p-finally": { @@ -6862,7 +6868,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -6870,7 +6876,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { - "p-limit": "1.3.0" + "p-limit": "^1.1.0" } }, "p-try": { @@ -6884,10 +6890,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "optional": 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" } }, "parse-json": { @@ -6895,7 +6901,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "1.3.2" + "error-ex": "^1.2.0" } }, "parseqs": { @@ -6903,7 +6909,7 @@ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseuri": { @@ -6911,7 +6917,7 @@ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseurl": { @@ -6930,12 +6936,12 @@ "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": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-is-inside": { @@ -6975,7 +6981,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { - "pify": "2.3.0" + "pify": "^2.0.0" } }, "pathval": { @@ -6989,11 +6995,11 @@ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", "requires": { - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "performance-now": { @@ -7017,7 +7023,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" } }, "pkg-conf": { @@ -7025,8 +7031,8 @@ "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", "requires": { - "find-up": "2.1.0", - "load-json-file": "4.0.0" + "find-up": "^2.0.0", + "load-json-file": "^4.0.0" }, "dependencies": { "find-up": { @@ -7034,7 +7040,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "load-json-file": { @@ -7042,10 +7048,10 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "requires": { - "graceful-fs": "4.1.15", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "parse-json": { @@ -7053,8 +7059,8 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "pify": { @@ -7069,9 +7075,9 @@ "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=", "requires": { - "debug-log": "1.0.1", - "find-root": "1.1.0", - "xtend": "4.0.1" + "debug-log": "^1.0.0", + "find-root": "^1.0.0", + "xtend": "^4.0.1" } }, "pkg-dir": { @@ -7079,7 +7085,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" } }, "pluralize": { @@ -7135,8 +7141,8 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", "requires": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1" + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" } }, "pseudomap": { @@ -7158,10 +7164,10 @@ }, "pushdata-bitcoin": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", + "resolved": "http://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", "integrity": "sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=", "requires": { - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646" + "bitcoin-ops": "^1.3.0" } }, "qrcode": { @@ -7170,10 +7176,10 @@ "integrity": "sha512-sYo+Tf7nx14YZSNPqnyEWefVrjUEpM4/NxOrxOk+jcQ9NhM2LCNuzGmQctDhGTQdO2YJorKY55dypx+hvVo5jw==", "requires": { "can-promise": "0.0.1", - "dijkstrajs": "1.0.1", - "isarray": "2.0.4", - "pngjs": "3.3.3", - "yargs": "8.0.2" + "dijkstrajs": "^1.0.1", + "isarray": "^2.0.1", + "pngjs": "^3.3.0", + "yargs": "^8.0.2" }, "dependencies": { "isarray": { @@ -7194,9 +7200,9 @@ "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", "optional": true, "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.1" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "dependencies": { "is-number": { @@ -7218,7 +7224,7 @@ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.0" } }, "range-parser": { @@ -7232,9 +7238,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "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": { @@ -7242,8 +7248,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" }, "dependencies": { "find-up": { @@ -7251,7 +7257,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } } } @@ -7261,13 +7267,13 @@ "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "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" }, "dependencies": { "inherits": { @@ -7283,9 +7289,9 @@ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "optional": true, "requires": { - "graceful-fs": "4.1.15", - "micromatch": "3.1.10", - "readable-stream": "2.3.6" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" }, "dependencies": { "arr-diff": { @@ -7305,16 +7311,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "optional": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -7323,7 +7329,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "optional": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -7343,13 +7349,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "optional": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -7358,7 +7364,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "optional": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -7367,7 +7373,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "optional": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -7376,7 +7382,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -7385,7 +7391,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "optional": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7396,7 +7402,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -7405,7 +7411,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "optional": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7416,9 +7422,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "optional": 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": { @@ -7435,14 +7441,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "optional": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { @@ -7451,7 +7457,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "optional": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -7460,7 +7466,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "optional": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -7471,10 +7477,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "optional": 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" }, "dependencies": { "extend-shallow": { @@ -7483,7 +7489,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "optional": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -7494,7 +7500,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "optional": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -7503,7 +7509,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "optional": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -7512,9 +7518,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "optional": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-number": { @@ -7523,7 +7529,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -7532,7 +7538,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "optional": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7554,19 +7560,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "optional": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } @@ -7586,9 +7592,9 @@ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.8" + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" } }, "regex-cache": { @@ -7597,7 +7603,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "optional": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "regex-not": { @@ -7605,8 +7611,8 @@ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "regexpp": { @@ -7620,9 +7626,9 @@ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "requires": { - "regenerate": "1.4.0", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "regjsgen": { @@ -7635,7 +7641,7 @@ "resolved": "http://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { @@ -7665,7 +7671,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" } }, "repl.history": { @@ -7679,26 +7685,26 @@ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "dev": true, "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.8.0", - "caseless": "0.12.0", - "combined-stream": "1.0.7", - "extend": "3.0.2", - "forever-agent": "0.6.1", - "form-data": "2.3.3", - "har-validator": "5.1.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.21", - "oauth-sign": "0.9.0", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.4.3", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" }, "dependencies": { "qs": { @@ -7721,11 +7727,11 @@ }, "require-uncached": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "resolved": "http://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" } }, "resolve": { @@ -7733,7 +7739,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "requires": { - "path-parse": "1.0.6" + "path-parse": "^1.0.5" } }, "resolve-from": { @@ -7751,8 +7757,8 @@ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "resumer": { @@ -7760,7 +7766,7 @@ "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", "requires": { - "through": "2.3.8" + "through": "~2.3.4" } }, "ret": { @@ -7773,7 +7779,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "glob": "7.1.3" + "glob": "^7.0.5" } }, "ripemd160": { @@ -7781,8 +7787,8 @@ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.1" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, "run-async": { @@ -7790,7 +7796,7 @@ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, "run-parallel": { @@ -7808,7 +7814,7 @@ "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "requires": { - "rx-lite": "4.0.8" + "rx-lite": "*" } }, "rxjs": { @@ -7817,7 +7823,7 @@ "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", "dev": true, "requires": { - "tslib": "1.9.3" + "tslib": "^1.9.0" } }, "safe-buffer": { @@ -7830,7 +7836,7 @@ "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "safer-buffer": { @@ -7849,7 +7855,7 @@ "resolved": "https://registry.npmjs.org/satoshi-bitcoin/-/satoshi-bitcoin-1.0.4.tgz", "integrity": "sha1-0AK2dwddXLvywhGo3zJUvN9QseQ=", "requires": { - "big.js": "3.2.0" + "big.js": "^3.1.3" } }, "scryptsy": { @@ -7862,14 +7868,14 @@ "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.5.2.tgz", "integrity": "sha512-iin3kojdybY6NArd+UFsoTuapOF7bnJNf2UbcWXaY3z+E1sJDipl60vtzB5hbO/uquBu7z0fd4VC4Irp+xoFVQ==", "requires": { - "bindings": "1.3.1", - "bip66": "1.1.5", - "bn.js": "4.11.8", - "create-hash": "1.2.0", - "drbg.js": "1.0.1", - "elliptic": "6.4.1", - "nan": "2.11.1", - "safe-buffer": "5.1.2" + "bindings": "^1.2.1", + "bip66": "^1.1.3", + "bn.js": "^4.11.3", + "create-hash": "^1.1.2", + "drbg.js": "^1.0.1", + "elliptic": "^6.2.3", + "nan": "^2.2.1", + "safe-buffer": "^5.1.0" } }, "semver": { @@ -7887,10 +7893,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "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" }, "dependencies": { "extend-shallow": { @@ -7898,7 +7904,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -7908,8 +7914,8 @@ "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "shebang-command": { @@ -7917,7 +7923,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -7936,13 +7942,13 @@ "integrity": "sha512-trdx+mB0VBBgoYucy6a9L7/jfQOmvGeaKZT4OOJ+lPAtI8623xyGr8wLiE4eojzBS8G9yXbhx42GHUOVLr4X2w==", "dev": true, "requires": { - "@sinonjs/formatio": "2.0.0", - "diff": "3.5.0", - "lodash.get": "4.4.2", - "lolex": "2.7.5", - "nise": "1.4.6", - "supports-color": "5.5.0", - "type-detect": "4.0.8" + "@sinonjs/formatio": "^2.0.0", + "diff": "^3.1.0", + "lodash.get": "^4.4.2", + "lolex": "^2.2.0", + "nise": "^1.2.0", + "supports-color": "^5.1.0", + "type-detect": "^4.0.5" }, "dependencies": { "supports-color": { @@ -7951,7 +7957,7 @@ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -7966,7 +7972,7 @@ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "requires": { - "is-fullwidth-code-point": "2.0.0" + "is-fullwidth-code-point": "^2.0.0" } }, "snapdragon": { @@ -7974,14 +7980,14 @@ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "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.2", - "use": "3.1.1" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "debug": { @@ -7997,7 +8003,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -8005,7 +8011,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -8016,9 +8022,9 @@ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "optional": 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" }, "dependencies": { "define-property": { @@ -8027,7 +8033,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "optional": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -8036,7 +8042,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "optional": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -8045,7 +8051,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "optional": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -8054,9 +8060,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "optional": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -8078,7 +8084,7 @@ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "socket.io": { @@ -8086,12 +8092,12 @@ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", "requires": { - "debug": "3.1.0", - "engine.io": "3.2.1", - "has-binary2": "1.0.3", - "socket.io-adapter": "1.1.1", + "debug": "~3.1.0", + "engine.io": "~3.2.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", "socket.io-client": "2.1.1", - "socket.io-parser": "3.2.0" + "socket.io-parser": "~3.2.0" } }, "socket.io-adapter": { @@ -8108,25 +8114,25 @@ "base64-arraybuffer": "0.1.5", "component-bind": "1.0.0", "component-emitter": "1.2.1", - "debug": "3.1.0", - "engine.io-client": "3.2.1", - "has-binary2": "1.0.3", + "debug": "~3.1.0", + "engine.io-client": "~3.2.0", + "has-binary2": "~1.0.2", "has-cors": "1.1.0", "indexof": "0.0.1", "object-component": "0.0.3", "parseqs": "0.0.5", "parseuri": "0.0.5", - "socket.io-parser": "3.2.0", + "socket.io-parser": "~3.2.0", "to-array": "0.1.4" } }, "socket.io-parser": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", + "resolved": "http://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", "requires": { "component-emitter": "1.2.1", - "debug": "3.1.0", + "debug": "~3.1.0", "isarray": "2.0.1" }, "dependencies": { @@ -8147,11 +8153,11 @@ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "requires": { - "atob": "2.1.2", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -8159,7 +8165,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } }, "source-map-url": { @@ -8172,8 +8178,8 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz", "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==", "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.2" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -8186,8 +8192,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "2.2.0", - "spdx-license-ids": "3.0.2" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -8200,7 +8206,7 @@ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "sprintf-js": { @@ -8214,15 +8220,15 @@ "integrity": "sha512-Ra/OXQtuh0/enyl4ETZAfTaeksa6BXks5ZcjpSUNrjBr0DvrJKX+1fsKDPpT9TBXgHAFsa4510aNVgI8g/+SzA==", "dev": true, "requires": { - "asn1": "0.2.4", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.2", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.2", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "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", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" } }, "standard": { @@ -8230,15 +8236,15 @@ "resolved": "http://registry.npmjs.org/standard/-/standard-11.0.1.tgz", "integrity": "sha512-nu0jAcHiSc8H+gJCXeiziMVZNDYi8MuqrYJKxTgjP4xKXZMKm311boqQIzDrYI/ktosltxt2CbDjYQs9ANC8IA==", "requires": { - "eslint": "4.18.2", + "eslint": "~4.18.0", "eslint-config-standard": "11.0.0", "eslint-config-standard-jsx": "5.0.0", - "eslint-plugin-import": "2.9.0", - "eslint-plugin-node": "6.0.1", - "eslint-plugin-promise": "3.7.0", - "eslint-plugin-react": "7.7.0", - "eslint-plugin-standard": "3.0.1", - "standard-engine": "8.0.1" + "eslint-plugin-import": "~2.9.0", + "eslint-plugin-node": "~6.0.0", + "eslint-plugin-promise": "~3.7.0", + "eslint-plugin-react": "~7.7.0", + "eslint-plugin-standard": "~3.0.1", + "standard-engine": "~8.0.0" }, "dependencies": { "ansi-regex": { @@ -8251,43 +8257,43 @@ "resolved": "http://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", "requires": { - "ajv": "5.5.2", - "babel-code-frame": "6.26.0", - "chalk": "2.4.1", - "concat-stream": "1.6.2", - "cross-spawn": "5.1.0", - "debug": "3.1.0", - "doctrine": "2.1.0", - "eslint-scope": "3.7.3", - "eslint-visitor-keys": "1.0.0", - "espree": "3.5.4", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.3", - "globals": "11.9.0", - "ignore": "3.3.10", - "imurmurhash": "0.1.4", - "inquirer": "3.3.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.12.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.1", - "require-uncached": "1.0.3", - "semver": "5.6.0", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.2", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", "table": "4.0.2", - "text-table": "0.2.0" + "text-table": "~0.2.0" } }, "eslint-plugin-node": { @@ -8295,10 +8301,10 @@ "resolved": "http://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz", "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", "requires": { - "ignore": "3.3.10", - "minimatch": "3.0.4", - "resolve": "1.8.1", - "semver": "5.6.0" + "ignore": "^3.3.6", + "minimatch": "^3.0.4", + "resolve": "^1.3.3", + "semver": "^5.4.1" } }, "globals": { @@ -8311,7 +8317,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -8321,10 +8327,10 @@ "resolved": "http://registry.npmjs.org/standard-engine/-/standard-engine-8.0.1.tgz", "integrity": "sha512-LA531C3+nljom/XRvdW/hGPXwmilRkaRkENhO3FAGF1Vtq/WtCXzgmnc5S6vUHHsgv534MRy02C1ikMwZXC+tw==", "requires": { - "deglob": "2.1.1", - "get-stdin": "6.0.0", - "minimist": "1.2.0", - "pkg-conf": "2.1.0" + "deglob": "^2.1.0", + "get-stdin": "^6.0.0", + "minimist": "^1.1.0", + "pkg-conf": "^2.0.0" }, "dependencies": { "minimist": { @@ -8339,8 +8345,8 @@ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { @@ -8348,7 +8354,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -8358,8 +8364,8 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "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" }, "dependencies": { "ansi-regex": { @@ -8372,7 +8378,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -8382,17 +8388,17 @@ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.12.0", - "function-bind": "1.1.1" + "define-properties": "^1.1.2", + "es-abstract": "^1.5.0", + "function-bind": "^1.0.2" } }, "string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -8400,7 +8406,7 @@ "resolved": "http://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": { @@ -8410,7 +8416,7 @@ }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, "strip-json-comments": { @@ -8428,12 +8434,12 @@ "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "chalk": "2.4.1", - "lodash": "4.17.11", + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "string-width": "^2.1.1" } }, "tape": { @@ -8441,19 +8447,19 @@ "resolved": "https://registry.npmjs.org/tape/-/tape-4.9.1.tgz", "integrity": "sha512-6fKIXknLpoe/Jp4rzHKFPpJUHDHDqn8jus99IfPnHIjyz78HYlefTGD3b5EkbQzuLfaEvmfPK3IolLgq2xT3kw==", "requires": { - "deep-equal": "1.0.1", - "defined": "1.0.0", - "for-each": "0.3.3", - "function-bind": "1.1.1", - "glob": "7.1.3", - "has": "1.0.3", - "inherits": "2.0.3", - "minimist": "1.2.0", - "object-inspect": "1.6.0", - "resolve": "1.7.1", - "resumer": "0.0.0", - "string.prototype.trim": "1.1.2", - "through": "2.3.8" + "deep-equal": "~1.0.1", + "defined": "~1.0.0", + "for-each": "~0.3.3", + "function-bind": "~1.1.1", + "glob": "~7.1.2", + "has": "~1.0.3", + "inherits": "~2.0.3", + "minimist": "~1.2.0", + "object-inspect": "~1.6.0", + "resolve": "~1.7.1", + "resumer": "~0.0.0", + "string.prototype.trim": "~1.1.2", + "through": "~2.3.8" }, "dependencies": { "inherits": { @@ -8468,10 +8474,10 @@ }, "resolve": { "version": "1.7.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", + "resolved": "http://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", "requires": { - "path-parse": "1.0.6" + "path-parse": "^1.0.5" } } } @@ -8497,7 +8503,7 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "to-array": { @@ -8515,7 +8521,7 @@ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { @@ -8523,10 +8529,10 @@ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { @@ -8535,8 +8541,8 @@ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "optional": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "dependencies": { "is-number": { @@ -8545,7 +8551,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } } } @@ -8555,7 +8561,7 @@ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", "requires": { - "nopt": "1.0.10" + "nopt": "~1.0.10" } }, "tough-cookie": { @@ -8564,8 +8570,8 @@ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "dev": true, "requires": { - "psl": "1.1.29", - "punycode": "1.4.1" + "psl": "^1.1.24", + "punycode": "^1.4.1" }, "dependencies": { "punycode": { @@ -8593,7 +8599,7 @@ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -8607,7 +8613,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-detect": { @@ -8623,7 +8629,7 @@ "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.21" + "mime-types": "~2.1.18" } }, "typedarray": { @@ -8646,10 +8652,10 @@ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "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": { "extend-shallow": { @@ -8657,7 +8663,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { @@ -8665,10 +8671,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "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" } } } @@ -8688,8 +8694,8 @@ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -8697,9 +8703,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "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": { @@ -8730,7 +8736,7 @@ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "requires": { - "punycode": "2.1.1" + "punycode": "^2.1.0" } }, "urix": { @@ -8750,7 +8756,7 @@ }, "util": { "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "resolved": "http://registry.npmjs.org/util/-/util-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "requires": { "inherits": "2.0.1" @@ -8772,7 +8778,7 @@ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "requires": { - "user-home": "1.1.1" + "user-home": "^1.1.1" } }, "validate-npm-package-license": { @@ -8780,8 +8786,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "requires": { - "spdx-correct": "3.0.2", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "varuint-bitcoin": { @@ -8789,7 +8795,7 @@ "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz", "integrity": "sha512-jCEPG+COU/1Rp84neKTyDJQr478/hAfVp5xxYn09QEH0yBjbmPeMfuuQIrp+BUD83hybtYZKhr5elV3bvdV1bA==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.1" } }, "verror": { @@ -8798,9 +8804,9 @@ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": 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" } }, "which": { @@ -8808,7 +8814,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -8821,7 +8827,7 @@ "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", "requires": { - "bs58check": "2.1.2" + "bs58check": "<3.0.0" } }, "window-or-global": { @@ -8839,8 +8845,8 @@ "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -8848,7 +8854,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" } }, "string-width": { @@ -8856,9 +8862,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" } } } @@ -8873,7 +8879,7 @@ "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "ws": { @@ -8881,9 +8887,9 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.2", - "ultron": "1.1.1" + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" } }, "xmlhttprequest-ssl": { @@ -8911,19 +8917,19 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.3", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.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": "7.0.0" + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^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": "^7.0.0" } }, "yargs-parser": { @@ -8931,7 +8937,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } }, "yeast": { From 95202c28e4e03ed8190963c4f20043643104575c Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Wed, 26 Dec 2018 11:14:27 -0800 Subject: [PATCH 145/480] Fixing utxo example and faucet links in readme --- examples/README.md | 4 ++-- examples/low-level/utxo-address/get-utxos.js | 7 +++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/examples/README.md b/examples/README.md index 88583397..09645d7b 100644 --- a/examples/README.md +++ b/examples/README.md @@ -29,8 +29,8 @@ the other examples. * `create-wallet` Create a BCH compatible HD Node wallet on the BCH testnet. Send test BCH using a testnet faucet (like -[this one](https://testnet.manu.backend.hamburg/bitcoin-cash-faucet) or -[this one](http://www.wormhole.cash/test/)) to the address saved in the +[this one](https://developer.bitcoin.com/faucets) or +[this one](https://testnet.wormhole.cash/faucet/)) to the address saved in the wallet.json file generated by this app. * `check-balance` Check the balance of your BCH wallet. This displays both BCH diff --git a/examples/low-level/utxo-address/get-utxos.js b/examples/low-level/utxo-address/get-utxos.js index bd81e058..539d2f6d 100644 --- a/examples/low-level/utxo-address/get-utxos.js +++ b/examples/low-level/utxo-address/get-utxos.js @@ -8,15 +8,14 @@ // Instantiate BITBOX. const bitboxLib = "../../../lib/bitbox-sdk" const BITBOXSDK = require(bitboxLib).default -//const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v1/" }) -const BITBOX = new BITBOXSDK({ restURL: "htts://localhost:3000/v1/" }) +const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v2/" }) -const ADDR = `mqKgHerAkpvKpSyFawhEKVWZpDPmxHZuLG` +const ADDR = `bchtest:qr45kxqda7yw8atztvkc4ckqnrlhmp0kvsep4p345q` async function getUtxos() { try { // first get BCH balance - const utxos = await BITBOX.Address.utxo([ADDR]) + const utxos = await BITBOX.Address.utxo(ADDR) console.log(`UTXO information for address ${ADDR}:`) console.log(utxos) From 741e4eb69787faa5c23d80ca08514dc1136027b7 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Wed, 26 Dec 2018 11:55:36 -0800 Subject: [PATCH 146/480] Updating sendRawTransaction to use v2 --- .eslintrc.json | 3 +- .../wallet/check-balance/check-balance.js | 6 +- .../wallet/create-wallet/create-wallet.js | 2 +- .../applications/wallet/send-bch/send-bch.js | 183 ++++++++++-------- lib/RawTransactions.js | 10 +- src/RawTransactions.js | 15 +- 6 files changed, 127 insertions(+), 92 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 2ce7cac6..84d89281 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,7 +1,8 @@ { "root": true, "parserOptions": { - "ecmaVersion": 2018 + "ecmaVersion": 2018, + "sourceType": "module" }, "plugins": ["prettier"], "rules": { diff --git a/examples/applications/wallet/check-balance/check-balance.js b/examples/applications/wallet/check-balance/check-balance.js index 0734fc34..40eef79c 100644 --- a/examples/applications/wallet/check-balance/check-balance.js +++ b/examples/applications/wallet/check-balance/check-balance.js @@ -3,10 +3,12 @@ with the create-wallet example. */ +"use strict" + // Instantiate BITBOX. const bitboxLib = "../../../../lib/bitbox-sdk" const BITBOXSDK = require(bitboxLib).default -const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v1/" }) +const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v2/" }) // Open the wallet generated with create-wallet. try { @@ -22,7 +24,7 @@ try { async function getBalance() { try { // first get BCH balance - const balance = await BITBOX.Address.details([walletInfo.cashAddress]) + const balance = await BITBOX.Address.details(walletInfo.cashAddress) console.log(`BCH Balance information:`) console.log(balance) diff --git a/examples/applications/wallet/create-wallet/create-wallet.js b/examples/applications/wallet/create-wallet/create-wallet.js index 1fb05935..17859cbc 100644 --- a/examples/applications/wallet/create-wallet/create-wallet.js +++ b/examples/applications/wallet/create-wallet/create-wallet.js @@ -8,7 +8,7 @@ // Instantiate BITBOX. const bitboxLib = "../../../../lib/bitbox-sdk" const BITBOXSDK = require(bitboxLib).default -const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v1/" }) +const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v2/" }) const fs = require("fs") diff --git a/examples/applications/wallet/send-bch/send-bch.js b/examples/applications/wallet/send-bch/send-bch.js index 596606f5..745e64ef 100644 --- a/examples/applications/wallet/send-bch/send-bch.js +++ b/examples/applications/wallet/send-bch/send-bch.js @@ -2,16 +2,15 @@ Send 1000 satoshis to RECV_ADDR. */ -"use strict" - // Instantiate BITBOX. const bitboxLib = "../../../../lib/bitbox-sdk" const BITBOXSDK = require(bitboxLib).default -//const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v1/" }) -const BITBOX = new BITBOXSDK({ restURL: "htts://localhost:3000/v1/" }) +const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v2/" }) // Replace the address below with the address you want to send the BCH to. -const RECV_ADDR = `bchtest:qpytyr39fsr80emqh2ukftkpdqvdddcnfg9s6wjtfa` +const RECV_ADDR = `bchtest:qr45kxqda7yw8atztvkc4ckqnrlhmp0kvsep4p345q` + +const SATOSHIS_TO_SEND = 1000 // Open the wallet generated with create-wallet. try { @@ -27,78 +26,89 @@ const SEND_ADDR = walletInfo.cashAddress const SEND_MNEMONIC = walletInfo.mnemonic async function sendBch() { - // Get the balance of the sending address. - const balance = await getBCHBalance(SEND_ADDR, false) - console.log(`balance: ${JSON.stringify(balance, null, 2)}`) - console.log(`Balance of sending address ${SEND_ADDR} is ${balance} BCH.`) - - // Exit if the balance is zero. - if (balance <= 0.0) { - console.log(`Balance of sending address is zero. Exiting.`) - process.exit(0) + try { + // Get the balance of the sending address. + const balance = await getBCHBalance(SEND_ADDR, false) + console.log(`balance: ${JSON.stringify(balance, null, 2)}`) + console.log(`Balance of sending address ${SEND_ADDR} is ${balance} BCH.`) + + // Exit if the balance is zero. + if (balance <= 0.0) { + console.log(`Balance of sending address is zero. Exiting.`) + process.exit(0) + } + + const SEND_ADDR_LEGACY = BITBOX.Address.toLegacyAddress(SEND_ADDR) + const RECV_ADDR_LEGACY = BITBOX.Address.toLegacyAddress(RECV_ADDR) + console.log(`Sender Legacy Address: ${SEND_ADDR_LEGACY}`) + console.log(`Receiver Legacy Address: ${RECV_ADDR_LEGACY}`) + + const balance2 = await getBCHBalance(RECV_ADDR, false) + console.log(`Balance of recieving address ${RECV_ADDR} is ${balance2} BCH.`) + + const u = await BITBOX.Address.utxo(SEND_ADDR) + //console.log(`u: ${JSON.stringify(u, null, 2)}`) + const utxo = findBiggestUtxo(u.utxos) + console.log(`utxo: ${JSON.stringify(utxo, null, 2)}`) + + // instance of transaction builder + const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + + const satoshisToSend = SATOSHIS_TO_SEND + const originalAmount = utxo.satoshis + const vout = utxo.vout + const txid = utxo.txid + + // add input with txid and index of vout + transactionBuilder.addInput(txid, vout) + + // get byte count to calculate fee. paying 1.2 sat/byte + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 2 } + ) + console.log(`byteCount: ${byteCount}`) + const satoshisPerByte = 1.0 + const txFee = Math.floor(satoshisPerByte * byteCount) + console.log(`txFee: ${txFee}`) + + // amount to send back to the sending address. + // It's the original amount - 1 sat/byte for tx size + const remainder = originalAmount - satoshisToSend - txFee + + // add output w/ address and amount to send + transactionBuilder.addOutput(RECV_ADDR, satoshisToSend) + transactionBuilder.addOutput(SEND_ADDR, remainder) + + // Generate a change address from a Mnemonic of a private key. + const change = changeAddrFromMnemonic(SEND_MNEMONIC) + + // Generate a keypair from the change address. + const keyPair = BITBOX.HDNode.toKeyPair(change) + + // Sign the transaction with the HD node. + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + + // build tx + const tx = transactionBuilder.build() + // output rawhex + const hex = tx.toHex() + console.log(`TX hex: ${hex}`) + console.log(` `) + + // Broadcast transation to the network + const broadcast = await BITBOX.RawTransactions.sendRawTransaction([hex]) + console.log(`Transaction ID: ${broadcast}`) + } catch (err) { + console.log(`error: `, err) } - - const SEND_ADDR_LEGACY = BITBOX.Address.toLegacyAddress(SEND_ADDR) - const RECV_ADDR_LEGACY = BITBOX.Address.toLegacyAddress(RECV_ADDR) - console.log(`Sender Legacy Address: ${SEND_ADDR_LEGACY}`) - console.log(`Receiver Legacy Address: ${RECV_ADDR_LEGACY}`) - - const balance2 = await getBCHBalance(RECV_ADDR, false) - console.log(`Balance of recieving address ${RECV_ADDR} is ${balance2} BCH.`) - - const utxo = await BITBOX.Address.utxo(SEND_ADDR) - console.log(`utxo: ${JSON.stringify(utxo, null, 2)}`) - - // instance of transaction builder - const transactionBuilder = new BITBOX.TransactionBuilder("testnet") - - const satoshisToSend = 1000 // <--- This is where you set the amount to send. - const originalAmount = utxo[0].satoshis - const vout = utxo[0].vout - const txid = utxo[0].txid - - // add input with txid and index of vout - transactionBuilder.addInput(txid, vout) - - // get byte count to calculate fee. paying 1.2 sat/byte - const byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 2 }) - console.log(`byteCount: ${byteCount}`) - const satoshisPerByte = 1.2 - const txFee = Math.floor(satoshisPerByte * byteCount) - console.log(`txFee: ${txFee}`) - - // amount to send back to the sending address. - // It's the original amount - 1 sat/byte for tx size - const remainder = originalAmount - satoshisToSend - txFee - - // add output w/ address and amount to send - transactionBuilder.addOutput(RECV_ADDR, satoshisToSend) - transactionBuilder.addOutput(SEND_ADDR, remainder) - - // Generate a change address from a Mnemonic of a private key. - const change = changeAddrFromMnemonic(SEND_MNEMONIC) - - // Generate a keypair from the change address. - const keyPair = BITBOX.HDNode.toKeyPair(change) - - // Sign the transaction with the HD node. - let redeemScript - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount - ) - - // build tx - const tx = transactionBuilder.build() - // output rawhex - const hex = tx.toHex() - - // Broadcast transation to the network - const broadcast = await BITBOX.RawTransactions.sendRawTransaction(hex) - console.log(`Transaction ID: ${broadcast}`) } sendBch() @@ -122,11 +132,11 @@ function changeAddrFromMnemonic(mnemonic) { // Get the balance in BCH of a BCH address. async function getBCHBalance(addr, verbose) { try { - const result = await BITBOX.Address.details([addr]) + const result = await BITBOX.Address.details(addr) if (verbose) console.log(result) - const bchBalance = result[0] + const bchBalance = result return bchBalance.balance } catch (err) { @@ -135,3 +145,20 @@ async function getBCHBalance(addr, verbose) { throw err } } + +// Returns the utxo with the biggest balance from an array of utxos. +function findBiggestUtxo(utxos) { + let largestAmount = 0 + let largestIndex = 0 + + for (var i = 0; i < utxos.length; i++) { + const thisUtxo = utxos[i] + + if (thisUtxo.satoshis > largestAmount) { + largestAmount = thisUtxo.satoshis + largestIndex = i + } + } + + return utxos[largestIndex] +} diff --git a/lib/RawTransactions.js b/lib/RawTransactions.js index 3b26d86c..8d64cde4 100644 --- a/lib/RawTransactions.js +++ b/lib/RawTransactions.js @@ -64,13 +64,15 @@ var RawTransactions = function () { value: async function sendRawTransaction(hex) { var allowhighfees = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - if (typeof hex !== "string") hex = JSON.stringify(hex); + //if (typeof hex !== "string") hex = JSON.stringify(hex) try { - var response = await _axios2.default.post(this.restURL + "rawtransactions/sendRawTransaction/" + hex + "?allowhighfees=" + allowhighfees); + var response = await _axios2.default.post(this.restURL + "rawtransactions/sendRawTransaction/" + hex + "?allowhighfees=" + allowhighfees, { + hex: hex + }); - if (response.data == '66: insufficient priority') { - console.warn("WARN: Insufficient Priority! This is likely due to a fee that is too low, or insufficient funds. \n Please ensure that there is BCH in the given wallet. If you are running on the testnet, get some\n BCH from the testnet faucet at https://developer.bitcoin.com/faucets/bch"); + if (response.data === "66: insufficient priority") { + console.warn("WARN: Insufficient Priority! This is likely due to a fee that is too low, or insufficient funds.\n Please ensure that there is BCH in the given wallet. If you are running on the testnet, get some\n BCH from the testnet faucet at https://developer.bitcoin.com/faucets/bch"); } return response.data; diff --git a/src/RawTransactions.js b/src/RawTransactions.js index fedcd317..4e952099 100644 --- a/src/RawTransactions.js +++ b/src/RawTransactions.js @@ -49,23 +49,26 @@ class RawTransactions { } async sendRawTransaction(hex, allowhighfees = false) { - if (typeof hex !== "string") hex = JSON.stringify(hex) + //if (typeof hex !== "string") hex = JSON.stringify(hex) try { const response = await axios.post( `${ this.restURL - }rawtransactions/sendRawTransaction/${hex}?allowhighfees=${allowhighfees}` + }rawtransactions/sendRawTransaction/${hex}?allowhighfees=${allowhighfees}`, + { + hex: hex + } ) - - if (response.data == '66: insufficient priority') { + + if (response.data === "66: insufficient priority") { console.warn( - `WARN: Insufficient Priority! This is likely due to a fee that is too low, or insufficient funds. + `WARN: Insufficient Priority! This is likely due to a fee that is too low, or insufficient funds. Please ensure that there is BCH in the given wallet. If you are running on the testnet, get some BCH from the testnet faucet at https://developer.bitcoin.com/faucets/bch` ) } - + return response.data } catch (error) { if (error.response && error.response.data) throw error.response.data From f6ad3e0d6d8f1855603b42dc6fdb16728c6815b9 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Wed, 26 Dec 2018 12:13:20 -0800 Subject: [PATCH 147/480] Updating constructor default URL to v2 --- src/bitbox-sdk.js | 2 +- test/RawTransactions.js | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/bitbox-sdk.js b/src/bitbox-sdk.js index 4bba1310..3bc5b06b 100644 --- a/src/bitbox-sdk.js +++ b/src/bitbox-sdk.js @@ -24,7 +24,7 @@ class BITBOXSDK { constructor(config) { if (config && config.restURL && config.restURL !== "") this.restURL = config.restURL - else this.restURL = "https://rest.bitcoin.com/v1/" + else this.restURL = "https://rest.bitcoin.com/v2/" this.Address = new Address(this.restURL) this.BitcoinCash = new BitcoinCash(this.Address) diff --git a/test/RawTransactions.js b/test/RawTransactions.js index ac0a1fda..50a9f26a 100644 --- a/test/RawTransactions.js +++ b/test/RawTransactions.js @@ -1,4 +1,3 @@ -"use strict" const chai = require("chai") const assert = require("assert") const axios = require("axios") From 8ee91f6dfe38ca671341af1a760a7ac28f3038b6 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Thu, 27 Dec 2018 05:48:09 -0800 Subject: [PATCH 148/480] Added integration tests for Address library --- package.json | 6 +- src/bitbox-sdk.js | 2 +- test/integration/address.js | 111 ++++++++++++++++++ test/{ => unit}/Address.js | 3 +- test/{ => unit}/BitcoinCash.js | 3 +- test/{ => unit}/Block.js | 3 +- test/{ => unit}/Blockchain.js | 3 +- test/{ => unit}/Control.js | 3 +- test/{ => unit}/Crypto.js | 3 +- test/{ => unit}/ECPair.js | 3 +- test/{ => unit}/Generating.js | 3 +- test/{ => unit}/HDNode.js | 3 +- test/{ => unit}/Mining.js | 3 +- test/{ => unit}/Mnemonic.js | 2 +- test/{ => unit}/Network.js | 3 +- test/{ => unit}/Price.js | 3 +- test/{ => unit}/RawTransactions.js | 2 +- test/{ => unit}/Script.js | 21 ++-- test/{ => unit}/Transaction.js | 3 +- test/{ => unit}/TransactionBuilder.js | 3 +- test/{ => unit}/Util.js | 3 +- test/{ => unit}/fixtures/Address.json | 0 test/{ => unit}/fixtures/BitcoinCash.json | 0 test/{ => unit}/fixtures/Blockchain.json | 0 test/{ => unit}/fixtures/Crypto.json | 0 test/{ => unit}/fixtures/ECPair.json | 0 test/{ => unit}/fixtures/HDNode.json | 0 test/{ => unit}/fixtures/Mnemonic.json | 0 test/{ => unit}/fixtures/Script.json | 0 .../fixtures/TransactionBuilder.json | 0 30 files changed, 143 insertions(+), 46 deletions(-) create mode 100644 test/integration/address.js rename test/{ => unit}/Address.js (99%) rename test/{ => unit}/BitcoinCash.js (99%) rename test/{ => unit}/Block.js (95%) rename test/{ => unit}/Blockchain.js (99%) rename test/{ => unit}/Control.js (95%) rename test/{ => unit}/Crypto.js (98%) rename test/{ => unit}/ECPair.js (98%) rename test/{ => unit}/Generating.js (91%) rename test/{ => unit}/HDNode.js (99%) rename test/{ => unit}/Mining.js (97%) rename test/{ => unit}/Mnemonic.js (99%) rename test/{ => unit}/Network.js (98%) rename test/{ => unit}/Price.js (96%) rename test/{ => unit}/RawTransactions.js (98%) rename test/{ => unit}/Script.js (97%) rename test/{ => unit}/Transaction.js (95%) rename test/{ => unit}/TransactionBuilder.js (99%) rename test/{ => unit}/Util.js (93%) rename test/{ => unit}/fixtures/Address.json (100%) rename test/{ => unit}/fixtures/BitcoinCash.json (100%) rename test/{ => unit}/fixtures/Blockchain.json (100%) rename test/{ => unit}/fixtures/Crypto.json (100%) rename test/{ => unit}/fixtures/ECPair.json (100%) rename test/{ => unit}/fixtures/HDNode.json (100%) rename test/{ => unit}/fixtures/Mnemonic.json (100%) rename test/{ => unit}/fixtures/Script.json (100%) rename test/{ => unit}/fixtures/TransactionBuilder.json (100%) diff --git a/package.json b/package.json index cf2ec706..2caa3a0f 100644 --- a/package.json +++ b/package.json @@ -3,9 +3,13 @@ "version": "2.2.6", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", + "contributors": [ + "Chris Troutner " + ], "main": "index.js", "scripts": { - "test": "nyc mocha --timeout 30000 --require babel-core/register", + "test": "nyc mocha --timeout 30000 --require babel-core/register test/unit", + "test:integration": "mocha --timeout 30000 --require babel-core/register test/integration", "build": "babel src/ -d lib/", "postbuild": "cp -R typings/* lib" }, diff --git a/src/bitbox-sdk.js b/src/bitbox-sdk.js index 3bc5b06b..6abfa615 100644 --- a/src/bitbox-sdk.js +++ b/src/bitbox-sdk.js @@ -24,7 +24,7 @@ class BITBOXSDK { constructor(config) { if (config && config.restURL && config.restURL !== "") this.restURL = config.restURL - else this.restURL = "https://rest.bitcoin.com/v2/" + else this.restURL = "https://rest.btctest.net/v2/" this.Address = new Address(this.restURL) this.BitcoinCash = new BitcoinCash(this.Address) diff --git a/test/integration/address.js b/test/integration/address.js new file mode 100644 index 00000000..05ce7f4a --- /dev/null +++ b/test/integration/address.js @@ -0,0 +1,111 @@ +/* + Integration tests for the BITBOX.Address library. Only covers calls made to + rest.bitcoin.com. + + TODO: + -Address.unconfirmed: + --Retrieves transient 0-conf UTXOs. Needs an E2E test to be effectively tested. +*/ + +const chai = require("chai") +const assert = chai.assert +const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() +const axios = require("axios") + +// Inspect utility used for debugging. +const util = require("util") +util.inspect.defaultOptions = { + showHidden: true, + colors: true, + depth: 3 +} + +describe(`#address`, () => { + describe(`#details`, () => { + it(`should GET address details`, async () => { + const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + + const result = await BITBOX.Address.details(addr) + // console.log(`result: ${util.inspect(result)}`) + + assert.hasAllKeys(result, [ + "balance", + "balanceSat", + "totalReceived", + "totalReceivedSat", + "totalSent", + "totalSentSat", + "unconfirmedBalance", + "unconfirmedBalanceSat", + "unconfirmedTxApperances", + "txApperances", + "transactions", + "legacyAddress", + "cashAddress" + ]) + assert.isArray(result.transactions) + }) + }) + + describe(`#utxo`, () => { + it(`should GET utxos for a single address`, async () => { + const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + + const result = await BITBOX.Address.utxo(addr) + //console.log(`result: ${util.inspect(result)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "txid", + "vout", + "scriptPubKey", + "amount", + "satoshis", + "height", + "confirmations", + "legacyAddress", + "cashAddress" + ]) + }) + }) + + describe(`#unconfirmed`, () => { + it(`should GET unconfirmed details on a single address`, async () => { + const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + + const result = await BITBOX.Address.unconfirmed(addr) + //console.log(`result: ${util.inspect(result)}`) + + assert.isArray(result) + }) + }) + + describe(`#transactions`, () => { + it(`should GET transactions for a single address`, async () => { + const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + + const result = await BITBOX.Address.transactions(addr) + //console.log(`result: ${util.inspect(result)}`) + + assert.hasAllKeys(result, ["txs", "pagesTotal"]) + assert.isArray(result.txs) + assert.hasAllKeys(result.txs[0], [ + "txid", + "version", + "locktime", + "vin", + "vout", + "blockhash", + "blockheight", + "confirmations", + "time", + "blocktime", + "valueOut", + "size", + "valueIn", + "fees" + ]) + }) + }) +}) diff --git a/test/Address.js b/test/unit/Address.js similarity index 99% rename from test/Address.js rename to test/unit/Address.js index 3095a115..a5d8a100 100644 --- a/test/Address.js +++ b/test/unit/Address.js @@ -1,8 +1,7 @@ -"use strict" const fixtures = require("./fixtures/Address.json") const chai = require("chai") const assert = require("assert") -const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/bitbox-sdk").default const BITBOX = new BITBOXSDK() const axios = require("axios") const sinon = require("sinon") diff --git a/test/BitcoinCash.js b/test/unit/BitcoinCash.js similarity index 99% rename from test/BitcoinCash.js rename to test/unit/BitcoinCash.js index 75a450cd..9059d332 100644 --- a/test/BitcoinCash.js +++ b/test/unit/BitcoinCash.js @@ -1,8 +1,7 @@ -"use strict" const fixtures = require("./fixtures/BitcoinCash.json") const chai = require("chai") const assert = require("assert") -const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/bitbox-sdk").default const BITBOX = new BITBOXSDK() // TODO diff --git a/test/Block.js b/test/unit/Block.js similarity index 95% rename from test/Block.js rename to test/unit/Block.js index f9e40b6f..8bc07e41 100644 --- a/test/Block.js +++ b/test/unit/Block.js @@ -1,7 +1,6 @@ -"use strict" const chai = require("chai") const assert = require("assert") -const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/bitbox-sdk").default const BITBOX = new BITBOXSDK() const axios = require("axios") const sinon = require("sinon") diff --git a/test/Blockchain.js b/test/unit/Blockchain.js similarity index 99% rename from test/Blockchain.js rename to test/unit/Blockchain.js index b04df44a..478cce68 100644 --- a/test/Blockchain.js +++ b/test/unit/Blockchain.js @@ -1,8 +1,7 @@ -"use strict" const chai = require("chai") const assert = require("assert") const axios = require("axios") -const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/bitbox-sdk").default const BITBOX = new BITBOXSDK() const sinon = require("sinon") diff --git a/test/Control.js b/test/unit/Control.js similarity index 95% rename from test/Control.js rename to test/unit/Control.js index 7171d208..309abddb 100644 --- a/test/Control.js +++ b/test/unit/Control.js @@ -1,8 +1,7 @@ -"use strict" const chai = require("chai") const assert = require("assert") const axios = require("axios") -const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/bitbox-sdk").default const BITBOX = new BITBOXSDK() const sinon = require("sinon") diff --git a/test/Crypto.js b/test/unit/Crypto.js similarity index 98% rename from test/Crypto.js rename to test/unit/Crypto.js index 8eb1a1e5..ec8c1de1 100644 --- a/test/Crypto.js +++ b/test/unit/Crypto.js @@ -1,8 +1,7 @@ -"use strict" const fixtures = require("./fixtures/Crypto.json") const chai = require("chai") const assert = require("assert") -const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/bitbox-sdk").default const BITBOX = new BITBOXSDK() const Buffer = require("safe-buffer").Buffer diff --git a/test/ECPair.js b/test/unit/ECPair.js similarity index 98% rename from test/ECPair.js rename to test/unit/ECPair.js index bfb21f41..68973c5e 100644 --- a/test/ECPair.js +++ b/test/unit/ECPair.js @@ -1,8 +1,7 @@ -"use strict" const fixtures = require("./fixtures/ECPair.json") const chai = require("chai") const assert = require("assert") -const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/bitbox-sdk").default const BITBOX = new BITBOXSDK() const script = BITBOX.Script const Buffer = require("safe-buffer").Buffer diff --git a/test/Generating.js b/test/unit/Generating.js similarity index 91% rename from test/Generating.js rename to test/unit/Generating.js index 7ad4834c..8a67bb4a 100644 --- a/test/Generating.js +++ b/test/unit/Generating.js @@ -1,8 +1,7 @@ -"use strict" const chai = require("chai") const assert = require("assert") const axios = require("axios") -const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/bitbox-sdk").default const BITBOX = new BITBOXSDK() const sinon = require("sinon") diff --git a/test/HDNode.js b/test/unit/HDNode.js similarity index 99% rename from test/HDNode.js rename to test/unit/HDNode.js index 1e6cca3a..3558d882 100644 --- a/test/HDNode.js +++ b/test/unit/HDNode.js @@ -1,8 +1,7 @@ -"use strict" const fixtures = require("./fixtures/HDNode.json") const chai = require("chai") const assert = require("assert") -const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/bitbox-sdk").default const BITBOX = new BITBOXSDK() const Buffer = require("safe-buffer").Buffer diff --git a/test/Mining.js b/test/unit/Mining.js similarity index 97% rename from test/Mining.js rename to test/unit/Mining.js index 98871fa5..0090e547 100644 --- a/test/Mining.js +++ b/test/unit/Mining.js @@ -1,8 +1,7 @@ -"use strict" const chai = require("chai") const assert = require("assert") const axios = require("axios") -const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/bitbox-sdk").default const BITBOX = new BITBOXSDK() const sinon = require("sinon") diff --git a/test/Mnemonic.js b/test/unit/Mnemonic.js similarity index 99% rename from test/Mnemonic.js rename to test/unit/Mnemonic.js index 4bdb9f9b..9d7f1a45 100644 --- a/test/Mnemonic.js +++ b/test/unit/Mnemonic.js @@ -1,7 +1,7 @@ const fixtures = require("./fixtures/Mnemonic.json") const chai = require("chai") const assert = require("assert") -const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/bitbox-sdk").default const BITBOX = new BITBOXSDK() const Buffer = require("safe-buffer").Buffer diff --git a/test/Network.js b/test/unit/Network.js similarity index 98% rename from test/Network.js rename to test/unit/Network.js index 66ec3433..0e3a8439 100644 --- a/test/Network.js +++ b/test/unit/Network.js @@ -1,8 +1,7 @@ -"use strict" const chai = require("chai") const assert = require("assert") const axios = require("axios") -const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/bitbox-sdk").default const BITBOX = new BITBOXSDK() const sinon = require("sinon") diff --git a/test/Price.js b/test/unit/Price.js similarity index 96% rename from test/Price.js rename to test/unit/Price.js index 6d996d4a..0763c3ce 100644 --- a/test/Price.js +++ b/test/unit/Price.js @@ -1,7 +1,6 @@ -"use strict" const chai = require("chai") const assert = require("assert") -const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/bitbox-sdk").default const BITBOX = new BITBOXSDK() const axios = require("axios") const sinon = require("sinon") diff --git a/test/RawTransactions.js b/test/unit/RawTransactions.js similarity index 98% rename from test/RawTransactions.js rename to test/unit/RawTransactions.js index 50a9f26a..1b16cfab 100644 --- a/test/RawTransactions.js +++ b/test/unit/RawTransactions.js @@ -1,7 +1,7 @@ const chai = require("chai") const assert = require("assert") const axios = require("axios") -const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/bitbox-sdk").default const BITBOX = new BITBOXSDK() const sinon = require("sinon") diff --git a/test/Script.js b/test/unit/Script.js similarity index 97% rename from test/Script.js rename to test/unit/Script.js index f3649bb5..c70e35f1 100644 --- a/test/Script.js +++ b/test/unit/Script.js @@ -1,8 +1,7 @@ -"use strict" const fixtures = require("./fixtures/Script.json") const chai = require("chai") const assert = require("assert") -const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/bitbox-sdk").default const BITBOX = new BITBOXSDK() const Buffer = require("safe-buffer").Buffer @@ -316,11 +315,10 @@ describe("#Script", () => { describe("#multisigInputTemplate", () => { fixtures.multisigInputTemplate.forEach(fixture => { it(`should encode multisig input`, () => { - const signatures = fixture.signatures.map( - signature => - signature - ? Buffer.from(signature, "hex") - : BITBOX.Script.opcodes.OP_0 + const signatures = fixture.signatures.map(signature => + signature + ? Buffer.from(signature, "hex") + : BITBOX.Script.opcodes.OP_0 ) const buf = BITBOX.Script.multisig.input.encode(signatures) @@ -335,11 +333,10 @@ describe("#Script", () => { }) it(`should confirm correctly formatted multisig input`, () => { - const signatures = fixture.signatures.map( - signature => - signature - ? Buffer.from(signature, "hex") - : BITBOX.Script.opcodes.OP_0 + const signatures = fixture.signatures.map(signature => + signature + ? Buffer.from(signature, "hex") + : BITBOX.Script.opcodes.OP_0 ) const buf = BITBOX.Script.multisig.input.encode(signatures) diff --git a/test/Transaction.js b/test/unit/Transaction.js similarity index 95% rename from test/Transaction.js rename to test/unit/Transaction.js index 169e3c33..4e527b87 100644 --- a/test/Transaction.js +++ b/test/unit/Transaction.js @@ -1,7 +1,6 @@ -"use strict" const chai = require("chai") const assert = require("assert") -const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/bitbox-sdk").default const BITBOX = new BITBOXSDK() const axios = require("axios") const sinon = require("sinon") diff --git a/test/TransactionBuilder.js b/test/unit/TransactionBuilder.js similarity index 99% rename from test/TransactionBuilder.js rename to test/unit/TransactionBuilder.js index 8591c594..6ae9c18e 100644 --- a/test/TransactionBuilder.js +++ b/test/unit/TransactionBuilder.js @@ -1,8 +1,7 @@ -"use strict" const fixtures = require("./fixtures/TransactionBuilder.json") const chai = require("chai") const assert = require("assert") -const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/bitbox-sdk").default const BITBOX = new BITBOXSDK() const Buffer = require("safe-buffer").Buffer diff --git a/test/Util.js b/test/unit/Util.js similarity index 93% rename from test/Util.js rename to test/unit/Util.js index b5ea2792..862c34e7 100644 --- a/test/Util.js +++ b/test/unit/Util.js @@ -1,8 +1,7 @@ -"use strict" const chai = require("chai") const assert = require("assert") const axios = require("axios") -const BITBOXSDK = require("./../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/bitbox-sdk").default const BITBOX = new BITBOXSDK() const sinon = require("sinon") diff --git a/test/fixtures/Address.json b/test/unit/fixtures/Address.json similarity index 100% rename from test/fixtures/Address.json rename to test/unit/fixtures/Address.json diff --git a/test/fixtures/BitcoinCash.json b/test/unit/fixtures/BitcoinCash.json similarity index 100% rename from test/fixtures/BitcoinCash.json rename to test/unit/fixtures/BitcoinCash.json diff --git a/test/fixtures/Blockchain.json b/test/unit/fixtures/Blockchain.json similarity index 100% rename from test/fixtures/Blockchain.json rename to test/unit/fixtures/Blockchain.json diff --git a/test/fixtures/Crypto.json b/test/unit/fixtures/Crypto.json similarity index 100% rename from test/fixtures/Crypto.json rename to test/unit/fixtures/Crypto.json diff --git a/test/fixtures/ECPair.json b/test/unit/fixtures/ECPair.json similarity index 100% rename from test/fixtures/ECPair.json rename to test/unit/fixtures/ECPair.json diff --git a/test/fixtures/HDNode.json b/test/unit/fixtures/HDNode.json similarity index 100% rename from test/fixtures/HDNode.json rename to test/unit/fixtures/HDNode.json diff --git a/test/fixtures/Mnemonic.json b/test/unit/fixtures/Mnemonic.json similarity index 100% rename from test/fixtures/Mnemonic.json rename to test/unit/fixtures/Mnemonic.json diff --git a/test/fixtures/Script.json b/test/unit/fixtures/Script.json similarity index 100% rename from test/fixtures/Script.json rename to test/unit/fixtures/Script.json diff --git a/test/fixtures/TransactionBuilder.json b/test/unit/fixtures/TransactionBuilder.json similarity index 100% rename from test/fixtures/TransactionBuilder.json rename to test/unit/fixtures/TransactionBuilder.json From a9edaf660a3c0926ac0e8267770e5baf875472cd Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Thu, 27 Dec 2018 08:01:40 -0800 Subject: [PATCH 149/480] Updating package-lock.json --- package-lock.json | 5822 ++++++++++++++++++++++++++++----------------- 1 file changed, 3668 insertions(+), 2154 deletions(-) diff --git a/package-lock.json b/package-lock.json index e0304894..27dfe5e2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,30 +8,149 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", - "dev": true, "requires": { - "@babel/highlight": "7.0.0" + "@babel/highlight": "^7.0.0" + } + }, + "@babel/generator": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.2.2.tgz", + "integrity": "sha512-I4o675J/iS8k+P38dvJ3IBGqObLXyQLTxtrR4u9cSUJOURvafeEWb/pFMOTwtNrmq73mJzyF6ueTbO1BtN0Zeg==", + "requires": { + "@babel/types": "^7.2.2", + "jsesc": "^2.5.1", + "lodash": "^4.17.10", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + }, + "dependencies": { + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + } + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", + "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", + "requires": { + "@babel/types": "^7.0.0" } }, "@babel/highlight": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", - "dev": true, "requires": { - "chalk": "2.4.1", - "esutils": "2.0.2", - "js-tokens": "4.0.0" + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" }, "dependencies": { "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + } + } + }, + "@babel/parser": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.2.3.tgz", + "integrity": "sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA==" + }, + "@babel/template": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", + "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.2.2", + "@babel/types": "^7.2.2" + } + }, + "@babel/traverse": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz", + "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.2.2", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.2.3", + "@babel/types": "^7.2.2", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.10" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "globals": { + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz", + "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==" + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "@babel/types": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz", + "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" } } }, + "@sinonjs/commons": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.3.0.tgz", + "integrity": "sha512-j4ZwhaHmwsCb4DlDOIWnI5YyKDNMoNThsmwEpfHx6a1EpsGZ9qYLxP++LMlmBRjtGptGHFsGItJ768snllFWpA==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, "@sinonjs/formatio": { "version": "2.0.0", "resolved": "http://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", @@ -42,12 +161,14 @@ } }, "@sinonjs/samsam": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-2.1.0.tgz", - "integrity": "sha512-5x2kFgJYupaF1ns/RmharQ90lQkd2ELS8A9X0ymkAAdemYHGtI2KiUHG8nX2WU0T1qgnOU5YMqnBM2V7NUanNw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.0.2.tgz", + "integrity": "sha512-m08g4CS3J6lwRQk1pj1EO+KEVWbrbXsmi9Pw0ySmrIbcVxVaedoFgLvFsV8wHLwh01EpROVz3KvVcD1Jmks9FQ==", "dev": true, "requires": { - "array-from": "2.1.1" + "@sinonjs/commons": "^1.0.2", + "array-from": "^2.1.1", + "lodash.get": "^4.4.2" } }, "abbrev": { @@ -60,7 +181,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "requires": { - "mime-types": "2.1.21", + "mime-types": "~2.1.18", "negotiator": "0.6.1" } }, @@ -74,7 +195,7 @@ "resolved": "http://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "requires": { - "acorn": "3.3.0" + "acorn": "^3.0.4" }, "dependencies": { "acorn": { @@ -94,10 +215,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "ajv-keywords": { @@ -107,7 +228,7 @@ }, "ansi-escapes": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", + "resolved": "http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==" }, "ansi-regex": { @@ -126,8 +247,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "optional": true, "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" } }, "argparse": { @@ -135,7 +256,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "arr-diff": { @@ -144,7 +265,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "optional": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { @@ -168,8 +289,8 @@ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.12.0" + "define-properties": "^1.1.2", + "es-abstract": "^1.7.0" } }, "array-unique": { @@ -189,7 +310,7 @@ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "~2.1.0" } }, "assert": { @@ -217,6 +338,12 @@ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, "async-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", @@ -256,8 +383,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=", "requires": { - "follow-redirects": "1.5.10", - "is-buffer": "1.1.6" + "follow-redirects": "^1.2.5", + "is-buffer": "^1.1.5" } }, "babel-cli": { @@ -265,21 +392,21 @@ "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", "requires": { - "babel-core": "6.26.3", - "babel-polyfill": "6.26.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "chokidar": "1.7.0", - "commander": "2.19.0", - "convert-source-map": "1.6.0", - "fs-readdir-recursive": "1.1.0", - "glob": "7.1.3", - "lodash": "4.17.11", - "output-file-sync": "1.1.2", - "path-is-absolute": "1.0.1", - "slash": "1.0.0", - "source-map": "0.5.7", - "v8flags": "2.1.1" + "babel-core": "^6.26.0", + "babel-polyfill": "^6.26.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "chokidar": "^1.6.1", + "commander": "^2.11.0", + "convert-source-map": "^1.5.0", + "fs-readdir-recursive": "^1.0.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "output-file-sync": "^1.1.2", + "path-is-absolute": "^1.0.1", + "slash": "^1.0.0", + "source-map": "^0.5.6", + "v8flags": "^2.1.1" } }, "babel-code-frame": { @@ -287,9 +414,9 @@ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" }, "dependencies": { "chalk": { @@ -297,11 +424,11 @@ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "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" } } } @@ -311,25 +438,25 @@ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.1", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.6.0", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" }, "dependencies": { "debug": { @@ -347,14 +474,14 @@ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.11", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" } }, "babel-helper-builder-binary-assignment-operator-visitor": { @@ -362,9 +489,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "requires": { - "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-call-delegate": { @@ -372,10 +499,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-define-map": { @@ -383,10 +510,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.11" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-explode-assignable-expression": { @@ -394,9 +521,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-function-name": { @@ -404,11 +531,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-get-function-arity": { @@ -416,8 +543,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-hoist-variables": { @@ -425,8 +552,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-optimise-call-expression": { @@ -434,8 +561,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-regex": { @@ -443,9 +570,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.11" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-remap-async-to-generator": { @@ -453,11 +580,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-replace-supers": { @@ -465,12 +592,12 @@ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "requires": { - "babel-helper-optimise-call-expression": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helpers": { @@ -478,8 +605,8 @@ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-messages": { @@ -487,7 +614,7 @@ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-check-es2015-constants": { @@ -495,7 +622,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-syntax-async-functions": { @@ -518,9 +645,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-arrow-functions": { @@ -528,7 +655,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -536,7 +663,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -544,11 +671,11 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.11" + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-plugin-transform-es2015-classes": { @@ -556,15 +683,15 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "requires": { - "babel-helper-define-map": "6.26.0", - "babel-helper-function-name": "6.24.1", - "babel-helper-optimise-call-expression": "6.24.1", - "babel-helper-replace-supers": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-computed-properties": { @@ -572,8 +699,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-destructuring": { @@ -581,7 +708,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -589,8 +716,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-for-of": { @@ -598,7 +725,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -606,9 +733,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-literals": { @@ -616,7 +743,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -624,9 +751,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -634,10 +761,10 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" } }, "babel-plugin-transform-es2015-modules-systemjs": { @@ -645,9 +772,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-umd": { @@ -655,9 +782,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "requires": { - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-object-super": { @@ -665,8 +792,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "requires": { - "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.26.0" + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -674,12 +801,12 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-shorthand-properties": { @@ -687,8 +814,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-spread": { @@ -696,7 +823,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -704,9 +831,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-template-literals": { @@ -714,7 +841,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -722,7 +849,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -730,9 +857,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -740,9 +867,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", - "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-regenerator": { @@ -750,7 +877,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "requires": { - "regenerator-transform": "0.10.1" + "regenerator-transform": "^0.10.0" } }, "babel-plugin-transform-strict-mode": { @@ -758,8 +885,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-polyfill": { @@ -767,9 +894,9 @@ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "requires": { - "babel-runtime": "6.26.0", - "core-js": "2.5.7", - "regenerator-runtime": "0.10.5" + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" }, "dependencies": { "regenerator-runtime": { @@ -784,36 +911,36 @@ "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0", - "browserslist": "3.2.8", - "invariant": "2.2.4", - "semver": "5.6.0" + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" } }, "babel-preset-es2015": { @@ -821,30 +948,30 @@ "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0" + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.24.1", + "babel-plugin-transform-es2015-classes": "^6.24.1", + "babel-plugin-transform-es2015-computed-properties": "^6.24.1", + "babel-plugin-transform-es2015-destructuring": "^6.22.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", + "babel-plugin-transform-es2015-for-of": "^6.22.0", + "babel-plugin-transform-es2015-function-name": "^6.24.1", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-umd": "^6.24.1", + "babel-plugin-transform-es2015-object-super": "^6.24.1", + "babel-plugin-transform-es2015-parameters": "^6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", + "babel-plugin-transform-regenerator": "^6.24.1" } }, "babel-register": { @@ -852,13 +979,13 @@ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "requires": { - "babel-core": "6.26.3", - "babel-runtime": "6.26.0", - "core-js": "2.5.7", - "home-or-tmp": "2.0.0", - "lodash": "4.17.11", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" } }, "babel-runtime": { @@ -866,8 +993,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "2.5.7", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -875,11 +1002,11 @@ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.11" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { @@ -887,15 +1014,15 @@ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.11" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" }, "dependencies": { "debug": { @@ -913,10 +1040,10 @@ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.11", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -939,13 +1066,13 @@ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "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" }, "dependencies": { "define-property": { @@ -953,7 +1080,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -961,7 +1088,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -969,7 +1096,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -977,148 +1104,1140 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "base-x": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.5.tgz", + "integrity": "sha512-C3picSgzPSLE+jW3tcBzJoGwitOtazb5B+5YmAxZm2ybmTi9LNgAtDO/jjVEBZwHoXmDBZ9m/IELj3elJVRBcA==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" + }, + "base64-js": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" + }, + "base64id": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=" + }, + "bc-bip68": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bc-bip68/-/bc-bip68-1.0.5.tgz", + "integrity": "sha512-GzaMlN7pNthrY5BhReVhnfr4Ixx+GUSfyNRHYh0QiMUF0d0+0YaD8MpEdv6AjFBksg/zlqL1fVCBBm6PpTt2Rg==" + }, + "bch-wallet-bridge-provider-interface": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/bch-wallet-bridge-provider-interface/-/bch-wallet-bridge-provider-interface-0.1.1.tgz", + "integrity": "sha512-m8Mq/aJhZN11aoa91YyYs/B1GxWfpT5IIp64IU5VRgNxGXBuUiIfvybk4XQR+zrHaMW4SLrD1tI9n59ogmEw/A==" + }, + "bch-wallet-bridge.js": { + "version": "github:web3bch/bch-wallet-bridge.js#f73558eaf3a98ba2a23de3c9cbbd582b30ff19eb", + "from": "github:web3bch/bch-wallet-bridge.js#master", + "requires": { + "bch-wallet-bridge-provider-interface": "^0.1.1", + "bchaddrjs": "^0.2.2", + "bitcoincashjs": "^0.1.10" + } + }, + "bchaddrjs": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.3.tgz", + "integrity": "sha512-0DVW8q3UFQFhrvt8Fowpkk+WvkYTZTSD1vGCQHrtMHZjRL6G/SoW0mgrREmgO1F/8TJ+Julri4UBWA8Gr7C5Yw==", + "requires": { + "bs58check": "^2.1.2", + "cashaddrjs": "^0.2.9" + } + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bech32": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.3.tgz", + "integrity": "sha512-yuVFUvrNcoJi0sv5phmqc6P+Fl1HjRDRNOOkHY2X/3LBy2bIGNSFx4fZ95HMaXHupuS7cZR15AsvtmCIF4UEyg==" + }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "requires": { + "callsite": "1.0.0" + } + }, + "big-integer": { + "version": "1.6.40", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.40.tgz", + "integrity": "sha512-CjhtJp0BViLzP1ZkEnoywjgtFQXS2pomKjAJtIISTCnuHILkLcAXLdFLG/nxsHc4s9kJfc+82Xpg8WNyhfACzQ==" + }, + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" + }, + "bigi": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz", + "integrity": "sha1-nGZalfiLiwj8Bc/XMfVhhZ1yWCU=" + }, + "binary-extensions": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", + "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==", + "optional": true + }, + "bindings": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.1.tgz", + "integrity": "sha512-i47mqjF9UbjxJhxGf+pZ6kSxrnI3wBLlnGI2ArWJ4r0VrvDS7ZYXkprq/pLaBWYq4GM0r4zdHY+NNRqEMU7uew==" + }, + "bip21": { + "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", + "from": "github:Bitcoin-com/bip21", + "requires": { + "qs": "^6.3.0" + } + }, + "bip32-utils": { + "version": "github:Bitcoin-com/bip32-utils#966fb8f0e0d4c667e4ee89adfa20c2078d66887c", + "from": "github:Bitcoin-com/bip32-utils#0.13.0", + "requires": { + "keccak": "^1.3.0", + "nyc": "*", + "standard": "^11.0.1", + "tape": "*" + }, + "dependencies": { + "nyc": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-13.1.0.tgz", + "integrity": "sha512-3GyY6TpQ58z9Frpv4GMExE1SV2tAgYqC7HSy2omEhNiCT3mhT9NyiOvIE8zkbuJVFzmvvNTnE4h/7/wQae7xLg==", + "requires": { + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^2.0.0", + "convert-source-map": "^1.6.0", + "debug-log": "^1.0.1", + "find-cache-dir": "^2.0.0", + "find-up": "^3.0.0", + "foreground-child": "^1.5.6", + "glob": "^7.1.3", + "istanbul-lib-coverage": "^2.0.1", + "istanbul-lib-hook": "^2.0.1", + "istanbul-lib-instrument": "^3.0.0", + "istanbul-lib-report": "^2.0.2", + "istanbul-lib-source-maps": "^2.0.1", + "istanbul-reports": "^2.0.1", + "make-dir": "^1.3.0", + "merge-source-map": "^1.1.0", + "resolve-from": "^4.0.0", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "spawn-wrap": "^1.4.2", + "test-exclude": "^5.0.0", + "uuid": "^3.3.2", + "yargs": "11.1.0", + "yargs-parser": "^9.0.2" + }, + "dependencies": { + "align-text": { + "version": "0.1.4", + "bundled": true, + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + } + }, + "amdefine": { + "version": "1.0.1", + "bundled": true + }, + "ansi-regex": { + "version": "3.0.0", + "bundled": true + }, + "append-transform": { + "version": "1.0.0", + "bundled": true, + "requires": { + "default-require-extensions": "^2.0.0" + } + }, + "archy": { + "version": "1.0.0", + "bundled": true + }, + "arrify": { + "version": "1.0.1", + "bundled": true + }, + "async": { + "version": "1.5.2", + "bundled": true + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "builtin-modules": { + "version": "1.1.1", + "bundled": true + }, + "caching-transform": { + "version": "2.0.0", + "bundled": true, + "requires": { + "make-dir": "^1.0.0", + "md5-hex": "^2.0.0", + "package-hash": "^2.0.0", + "write-file-atomic": "^2.0.0" + } + }, + "camelcase": { + "version": "1.2.1", + "bundled": true, + "optional": true + }, + "center-align": { + "version": "0.1.3", + "bundled": true, + "optional": true, + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "cliui": { + "version": "2.1.0", + "bundled": true, + "optional": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "bundled": true, + "optional": true + } + } + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "commondir": { + "version": "1.0.1", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "convert-source-map": { + "version": "1.6.0", + "bundled": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cross-spawn": { + "version": "4.0.2", + "bundled": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "debug": { + "version": "3.1.0", + "bundled": true, + "requires": { + "ms": "2.0.0" + } + }, + "debug-log": { + "version": "1.0.1", + "bundled": true + }, + "decamelize": { + "version": "1.2.0", + "bundled": true + }, + "default-require-extensions": { + "version": "2.0.0", + "bundled": true, + "requires": { + "strip-bom": "^3.0.0" + } + }, + "error-ex": { + "version": "1.3.2", + "bundled": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es6-error": { + "version": "4.1.1", + "bundled": true + }, + "execa": { + "version": "0.7.0", + "bundled": true, + "requires": { + "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" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "bundled": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + } + } + }, + "find-cache-dir": { + "version": "2.0.0", + "bundled": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "bundled": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "foreground-child": { + "version": "1.5.6", + "bundled": true, + "requires": { + "cross-spawn": "^4", + "signal-exit": "^3.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "get-caller-file": { + "version": "1.0.3", + "bundled": true + }, + "get-stream": { + "version": "3.0.0", + "bundled": true + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "requires": { + "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": { + "version": "4.1.11", + "bundled": true + }, + "handlebars": { + "version": "4.0.11", + "bundled": true, + "requires": { + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "bundled": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "has-flag": { + "version": "3.0.0", + "bundled": true + }, + "hosted-git-info": { + "version": "2.7.1", + "bundled": true + }, + "imurmurhash": { + "version": "0.1.4", + "bundled": true + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "invert-kv": { + "version": "1.0.0", + "bundled": true + }, + "is-arrayish": { + "version": "0.2.1", + "bundled": true + }, + "is-buffer": { + "version": "1.1.6", + "bundled": true + }, + "is-builtin-module": { + "version": "1.0.0", + "bundled": true, + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true + }, + "is-stream": { + "version": "1.1.0", + "bundled": true + }, + "isexe": { + "version": "2.0.0", + "bundled": true + }, + "istanbul-lib-coverage": { + "version": "2.0.1", + "bundled": true + }, + "istanbul-lib-hook": { + "version": "2.0.1", + "bundled": true, + "requires": { + "append-transform": "^1.0.0" + } + }, + "istanbul-lib-report": { + "version": "2.0.2", + "bundled": true, + "requires": { + "istanbul-lib-coverage": "^2.0.1", + "make-dir": "^1.3.0", + "supports-color": "^5.4.0" + } + }, + "istanbul-lib-source-maps": { + "version": "2.0.1", + "bundled": true, + "requires": { + "debug": "^3.1.0", + "istanbul-lib-coverage": "^2.0.1", + "make-dir": "^1.3.0", + "rimraf": "^2.6.2", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "bundled": true + } + } + }, + "istanbul-reports": { + "version": "2.0.1", + "bundled": true, + "requires": { + "handlebars": "^4.0.11" + } + }, + "json-parse-better-errors": { + "version": "1.0.2", + "bundled": true + }, + "kind-of": { + "version": "3.2.2", + "bundled": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "lazy-cache": { + "version": "1.0.4", + "bundled": true, + "optional": true + }, + "lcid": { + "version": "1.0.0", + "bundled": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "load-json-file": { + "version": "4.0.0", + "bundled": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "bundled": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash.flattendeep": { + "version": "4.4.0", + "bundled": true + }, + "longest": { + "version": "1.0.1", + "bundled": true + }, + "lru-cache": { + "version": "4.1.3", + "bundled": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "bundled": true, + "requires": { + "pify": "^3.0.0" + } + }, + "md5-hex": { + "version": "2.0.0", + "bundled": true, + "requires": { + "md5-o-matic": "^0.1.1" + } + }, + "md5-o-matic": { + "version": "0.1.1", + "bundled": true + }, + "mem": { + "version": "1.1.0", + "bundled": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "merge-source-map": { + "version": "1.1.0", + "bundled": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "bundled": true + } + } + }, + "mimic-fn": { + "version": "1.2.0", + "bundled": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.10", + "bundled": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "bundled": true + } + } + }, + "ms": { + "version": "2.0.0", + "bundled": true + }, + "normalize-package-data": { + "version": "2.4.0", + "bundled": true, + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "npm-run-path": { + "version": "2.0.2", + "bundled": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1" + } + }, + "optimist": { + "version": "0.6.1", + "bundled": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true + }, + "os-locale": { + "version": "2.1.0", + "bundled": true, + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "p-finally": { + "version": "1.0.0", + "bundled": true + }, + "p-limit": { + "version": "2.0.0", + "bundled": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "bundled": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.0.0", + "bundled": true + }, + "package-hash": { + "version": "2.0.0", + "bundled": true, + "requires": { + "graceful-fs": "^4.1.11", + "lodash.flattendeep": "^4.4.0", + "md5-hex": "^2.0.0", + "release-zalgo": "^1.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "bundled": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "path-exists": { + "version": "3.0.0", + "bundled": true + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true + }, + "path-key": { + "version": "2.0.1", + "bundled": true + }, + "path-type": { + "version": "3.0.0", + "bundled": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "bundled": true + }, + "pkg-dir": { + "version": "3.0.0", + "bundled": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "pseudomap": { + "version": "1.0.2", + "bundled": true + }, + "read-pkg": { + "version": "3.0.0", + "bundled": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "4.0.0", + "bundled": true, + "requires": { + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" + } + }, + "release-zalgo": { + "version": "1.0.0", + "bundled": true, + "requires": { + "es6-error": "^4.0.1" + } + }, + "repeat-string": { + "version": "1.6.1", + "bundled": true + }, + "require-directory": { + "version": "2.1.1", + "bundled": true + }, + "require-main-filename": { + "version": "1.0.1", + "bundled": true + }, + "resolve-from": { + "version": "4.0.0", + "bundled": true + }, + "right-align": { + "version": "0.1.3", + "bundled": true, + "optional": true, + "requires": { + "align-text": "^0.1.1" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true + }, + "semver": { + "version": "5.5.0", + "bundled": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true + }, + "shebang-command": { + "version": "1.2.0", + "bundled": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "bundled": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true + }, + "source-map": { + "version": "0.5.7", + "bundled": true, + "optional": true + }, + "spawn-wrap": { + "version": "1.4.2", + "bundled": true, + "requires": { + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" + } + }, + "spdx-correct": { + "version": "3.0.0", + "bundled": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "bundled": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "bundled": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.0", + "bundled": true + }, + "string-width": { + "version": "2.1.1", + "bundled": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "bundled": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "bundled": true + }, + "strip-eof": { + "version": "1.0.0", + "bundled": true + }, + "supports-color": { + "version": "5.4.0", + "bundled": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "test-exclude": { + "version": "5.0.0", + "bundled": true, + "requires": { + "arrify": "^1.0.1", + "minimatch": "^3.0.4", + "read-pkg-up": "^4.0.0", + "require-main-filename": "^1.0.1" + } + }, + "uglify-js": { + "version": "2.8.29", + "bundled": true, + "optional": true, + "requires": { + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "dependencies": { + "yargs": { + "version": "3.10.0", + "bundled": true, + "optional": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "uuid": { + "version": "3.3.2", + "bundled": true + }, + "validate-npm-package-license": { + "version": "3.0.3", + "bundled": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "bundled": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "bundled": true + }, + "window-size": { + "version": "0.1.0", + "bundled": true, + "optional": true + }, + "wordwrap": { + "version": "0.0.3", + "bundled": true + }, + "wrap-ansi": { + "version": "2.1.0", + "bundled": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + }, + "write-file-atomic": { + "version": "2.3.0", + "bundled": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "y18n": { + "version": "3.2.1", + "bundled": true + }, + "yallist": { + "version": "2.1.2", + "bundled": true + }, + "yargs": { + "version": "11.1.0", + "bundled": true, + "requires": { + "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": "^9.0.2" + }, + "dependencies": { + "cliui": { + "version": "4.1.0", + "bundled": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "bundled": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "bundled": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "bundled": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "bundled": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "bundled": true + } + } + }, + "yargs-parser": { + "version": "9.0.2", + "bundled": true, + "requires": { + "camelcase": "^4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "bundled": true + } + } + } } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, - "base-x": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.5.tgz", - "integrity": "sha512-C3picSgzPSLE+jW3tcBzJoGwitOtazb5B+5YmAxZm2ybmTi9LNgAtDO/jjVEBZwHoXmDBZ9m/IELj3elJVRBcA==", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" - }, - "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" - }, - "base64id": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", - "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=" - }, - "bc-bip68": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bc-bip68/-/bc-bip68-1.0.5.tgz", - "integrity": "sha512-GzaMlN7pNthrY5BhReVhnfr4Ixx+GUSfyNRHYh0QiMUF0d0+0YaD8MpEdv6AjFBksg/zlqL1fVCBBm6PpTt2Rg==" - }, - "bch-wallet-bridge-provider-interface": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/bch-wallet-bridge-provider-interface/-/bch-wallet-bridge-provider-interface-0.1.1.tgz", - "integrity": "sha512-m8Mq/aJhZN11aoa91YyYs/B1GxWfpT5IIp64IU5VRgNxGXBuUiIfvybk4XQR+zrHaMW4SLrD1tI9n59ogmEw/A==" - }, - "bch-wallet-bridge.js": { - "version": "github:web3bch/bch-wallet-bridge.js#f73558eaf3a98ba2a23de3c9cbbd582b30ff19eb", - "requires": { - "bch-wallet-bridge-provider-interface": "0.1.1", - "bchaddrjs": "0.2.3", - "bitcoincashjs": "0.1.14" - } - }, - "bchaddrjs": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.3.tgz", - "integrity": "sha512-0DVW8q3UFQFhrvt8Fowpkk+WvkYTZTSD1vGCQHrtMHZjRL6G/SoW0mgrREmgO1F/8TJ+Julri4UBWA8Gr7C5Yw==", - "requires": { - "bs58check": "2.1.2", - "cashaddrjs": "0.2.9" - } - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "bech32": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.3.tgz", - "integrity": "sha512-yuVFUvrNcoJi0sv5phmqc6P+Fl1HjRDRNOOkHY2X/3LBy2bIGNSFx4fZ95HMaXHupuS7cZR15AsvtmCIF4UEyg==" - }, - "better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", - "requires": { - "callsite": "1.0.0" - } - }, - "big-integer": { - "version": "1.6.36", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", - "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==" - }, - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" - }, - "bigi": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz", - "integrity": "sha1-nGZalfiLiwj8Bc/XMfVhhZ1yWCU=" - }, - "binary-extensions": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", - "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==", - "optional": true - }, - "bindings": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.1.tgz", - "integrity": "sha512-i47mqjF9UbjxJhxGf+pZ6kSxrnI3wBLlnGI2ArWJ4r0VrvDS7ZYXkprq/pLaBWYq4GM0r4zdHY+NNRqEMU7uew==" - }, - "bip21": { - "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "requires": { - "qs": "6.6.0" - } - }, - "bip32-utils": { - "version": "github:Bitcoin-com/bip32-utils#966fb8f0e0d4c667e4ee89adfa20c2078d66887c", - "requires": { - "keccak": "1.4.0", - "nyc": "11.9.0", - "standard": "11.0.1", - "tape": "4.9.1" - } - }, "bip38": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", "integrity": "sha512-22KDak0RDyghFbR0Si7wyq9IgY423YzGYzWLpGeofH3DaolOQqjD3mNN08eFoubKlbyclOQKFwtONMv2SD9V3A==", "requires": { - "bigi": "1.4.2", - "browserify-aes": "1.2.0", - "bs58check": "2.1.2", - "buffer-xor": "1.0.3", - "create-hash": "1.2.0", - "ecurve": "1.0.6", - "scryptsy": "2.0.0" + "bigi": "^1.2.0", + "browserify-aes": "^1.0.1", + "bs58check": "<3.0.0", + "buffer-xor": "^1.0.2", + "create-hash": "^1.1.1", + "ecurve": "^1.0.0", + "scryptsy": "^2.0.0" } }, "bip39": { @@ -1126,11 +2245,11 @@ "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", "requires": { - "create-hash": "1.2.0", - "pbkdf2": "3.0.17", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "unorm": "1.4.1" + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "unorm": "^1.3.3" } }, "bip66": { @@ -1138,18 +2257,19 @@ "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "bitcoin-ops": { - "version": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646" + "version": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646", + "from": "github:Bitcoin-com/bitcoincash-ops#1.5.0" }, "bitcoin-txdecoder": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/bitcoin-txdecoder/-/bitcoin-txdecoder-0.0.3.tgz", "integrity": "sha512-pH/eF5hQ65y54U23mzuF42wEj9YWj4WKHAIj2il6b1+oRoi/oyM4Ti3e8nMD8ajippICmyquqbyCZKGq3i4W+A==", "requires": { - "bitcoinjs-lib": "3.3.2" + "bitcoinjs-lib": "3.3.*" } }, "bitcoincashjs": { @@ -1159,22 +2279,23 @@ }, "bitcoincashjs-lib": { "version": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", - "requires": { - "bech32": "1.1.3", - "bigi": "1.4.2", - "bip66": "1.1.5", - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646", - "bs58check": "2.1.2", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ecurve": "1.0.6", - "merkle-lib": "2.0.10", - "pushdata-bitcoin": "1.0.1", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "typeforce": "1.16.0", - "varuint-bitcoin": "1.1.0", - "wif": "2.0.6" + "from": "github:Bitcoin-com/bitcoincashjs-lib#3.3.4", + "requires": { + "bech32": "^1.1.2", + "bigi": "^1.4.0", + "bip66": "^1.1.0", + "bitcoin-ops": "^1.3.0", + "bs58check": "^2.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.3", + "ecurve": "^1.0.0", + "merkle-lib": "^2.0.10", + "pushdata-bitcoin": "^1.0.1", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "typeforce": "^1.11.3", + "varuint-bitcoin": "^1.0.4", + "wif": "^2.0.1" } }, "bitcoinjs-lib": { @@ -1182,21 +2303,21 @@ "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-3.3.2.tgz", "integrity": "sha512-l5qqvbaK8wwtANPf6oEffykycg4383XgEYdia1rI7/JpGf1jfRWlOUCvx5TiTZS7kyIvY4j/UhIQ2urLsvGkzw==", "requires": { - "bech32": "1.1.3", - "bigi": "1.4.2", - "bip66": "1.1.5", - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646", - "bs58check": "2.1.2", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ecurve": "1.0.6", - "merkle-lib": "2.0.10", - "pushdata-bitcoin": "1.0.1", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "typeforce": "1.16.0", - "varuint-bitcoin": "1.1.0", - "wif": "2.0.6" + "bech32": "^1.1.2", + "bigi": "^1.4.0", + "bip66": "^1.1.0", + "bitcoin-ops": "^1.3.0", + "bs58check": "^2.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.3", + "ecurve": "^1.0.0", + "merkle-lib": "^2.0.10", + "pushdata-bitcoin": "^1.0.1", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "typeforce": "^1.11.3", + "varuint-bitcoin": "^1.0.4", + "wif": "^2.0.1" } }, "bitcoinjs-message": { @@ -1204,11 +2325,11 @@ "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", "requires": { - "bs58check": "2.1.2", - "buffer-equals": "1.0.4", - "create-hash": "1.2.0", - "secp256k1": "3.5.2", - "varuint-bitcoin": "1.1.0" + "bs58check": "^2.0.2", + "buffer-equals": "^1.0.3", + "create-hash": "^1.1.2", + "secp256k1": "^3.0.1", + "varuint-bitcoin": "^1.0.1" } }, "blob": { @@ -1226,7 +2347,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -1236,9 +2357,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "optional": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.3" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "brorand": { @@ -1257,12 +2378,12 @@ "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "browserslist": { @@ -1270,8 +2391,8 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "requires": { - "caniuse-lite": "1.0.30000912", - "electron-to-chromium": "1.3.85" + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" } }, "bs58": { @@ -1279,7 +2400,7 @@ "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", "requires": { - "base-x": "3.0.5" + "base-x": "^3.0.2" } }, "bs58check": { @@ -1287,9 +2408,9 @@ "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", "requires": { - "bs58": "4.0.1", - "create-hash": "1.2.0", - "safe-buffer": "5.1.2" + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" } }, "buffer": { @@ -1297,8 +2418,8 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.12" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" } }, "buffer-equals": { @@ -1326,15 +2447,15 @@ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "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" }, "dependencies": { "isobject": { @@ -1349,7 +2470,7 @@ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "requires": { - "callsites": "0.2.0" + "callsites": "^0.2.0" } }, "callsite": { @@ -1359,7 +2480,7 @@ }, "callsites": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "resolved": "http://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=" }, "camelcase": { @@ -1372,13 +2493,13 @@ "resolved": "https://registry.npmjs.org/can-promise/-/can-promise-0.0.1.tgz", "integrity": "sha512-gzVrHyyrvgt0YpDm7pn04MQt8gjh0ZAhN4ZDyCRtGl6YnuuK6b4aiUTD7G52r9l4YNmxfTtEscb92vxtAlL6XQ==", "requires": { - "window-or-global": "1.0.1" + "window-or-global": "^1.0.1" } }, "caniuse-lite": { - "version": "1.0.30000912", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000912.tgz", - "integrity": "sha512-M3zAtV36U+xw5mMROlTXpAHClmPAor6GPKAMD5Yi7glCB5sbMPFtnQ3rGpk4XqPdUrrTIaVYSJZxREZWNy8QJg==" + "version": "1.0.30000923", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000923.tgz", + "integrity": "sha512-j5ur7eeluOFjjPUkydtXP4KFAsmH3XaQNch5tvWSO+dLHYt5PE+VgJZLWtbVOodfWij6m6zas28T4gB/cLYq1w==" }, "caseless": { "version": "0.12.0", @@ -1391,7 +2512,7 @@ "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.2.9.tgz", "integrity": "sha512-DhJF4iAH0/RM3UjHDHKRxzs09YGL9px+oTyizzydanhC7jTyM2aJ+aLKA96vZGTTWayvvr2iDF2l13lpqXiRFg==", "requires": { - "big-integer": "1.6.36" + "big-integer": "^1.6.34" } }, "chai": { @@ -1400,12 +2521,12 @@ "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", "dev": true, "requires": { - "assertion-error": "1.1.0", - "check-error": "1.0.2", - "deep-eql": "3.0.1", - "get-func-name": "2.0.0", - "pathval": "1.1.0", - "type-detect": "4.0.8" + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" } }, "chalk": { @@ -1413,9 +2534,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "ansi-styles": { @@ -1423,7 +2544,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "color-convert": "1.9.3" + "color-convert": "^1.9.0" } }, "supports-color": { @@ -1431,7 +2552,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -1453,15 +2574,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "optional": true, "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.2.4", - "glob-parent": "2.0.0", - "inherits": "2.0.1", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1" + "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" } }, "cipher-base": { @@ -1469,8 +2590,8 @@ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "circular-json": { @@ -1483,10 +2604,10 @@ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -1494,7 +2615,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "isobject": { @@ -1514,7 +2635,7 @@ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-width": { @@ -1527,9 +2648,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "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" }, "dependencies": { "is-fullwidth-code-point": { @@ -1537,17 +2658,17 @@ "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" } }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "resolved": "http://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" } } } @@ -1564,8 +2685,9 @@ }, "coininfo": { "version": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", + "from": "github:Bitcoin-com/coininfo", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.1" } }, "collection-visit": { @@ -1573,8 +2695,8 @@ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "color-convert": { @@ -1596,7 +2718,7 @@ "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", "dev": true, "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -1626,13 +2748,13 @@ }, "concat-stream": { "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "resolved": "http://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "requires": { - "buffer-from": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" }, "dependencies": { "inherits": { @@ -1652,7 +2774,7 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.1" } }, "cookie": { @@ -1666,9 +2788,9 @@ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "core-js": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==" + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.1.tgz", + "integrity": "sha512-L72mmmEayPJBejKIWe2pYtGis5r0tQ5NaJekdhyXgeMQTpJoBsH0NL4ElY2LfSoV15xeQWKQ+XTTOZdyero5Xg==" }, "core-util-is": { "version": "1.0.2", @@ -1681,12 +2803,12 @@ "integrity": "sha512-Tv0LKe/MkBOilH2v7WBiTBdudg2ChfGbdXafc/s330djpF3zKOmuehTeRwjXWc7pzfj9FrDUTA7tEx6Div8NFw==", "dev": true, "requires": { - "growl": "1.10.5", - "js-yaml": "3.12.0", - "lcov-parse": "0.0.10", - "log-driver": "1.2.7", - "minimist": "1.2.0", - "request": "2.88.0" + "growl": "~> 1.10.0", + "js-yaml": "^3.11.0", + "lcov-parse": "^0.0.10", + "log-driver": "^1.2.7", + "minimist": "^1.2.0", + "request": "^2.85.0" }, "dependencies": { "minimist": { @@ -1702,11 +2824,11 @@ "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-5.0.0.tgz", "integrity": "sha1-vHAP0wyjLSTUbH+wK5kuQ1/FqXg=", "requires": { - "graceful-fs": "4.1.15", - "make-dir": "1.3.0", - "nested-error-stacks": "2.1.0", - "pify": "3.0.0", - "safe-buffer": "5.1.2" + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "nested-error-stacks": "^2.0.0", + "pify": "^3.0.0", + "safe-buffer": "^5.0.1" }, "dependencies": { "pify": { @@ -1721,11 +2843,11 @@ "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.1", - "md5.js": "1.3.5", - "ripemd160": "2.0.2", - "sha.js": "2.4.11" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, "create-hmac": { @@ -1733,12 +2855,12 @@ "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "inherits": "2.0.1", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "cross-spawn": { @@ -1746,9 +2868,9 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "lru-cache": "4.1.4", - "shebang-command": "1.2.0", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "dashdash": { @@ -1757,7 +2879,7 @@ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "debug": { @@ -1770,7 +2892,7 @@ }, "debug-log": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", + "resolved": "http://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=" }, "decamelize": { @@ -1789,7 +2911,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "4.0.8" + "type-detect": "^4.0.0" } }, "deep-equal": { @@ -1807,7 +2929,7 @@ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "requires": { - "object-keys": "1.0.12" + "object-keys": "^1.0.12" } }, "define-property": { @@ -1815,8 +2937,8 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -1824,7 +2946,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -1832,7 +2954,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -1840,9 +2962,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -1867,12 +2989,12 @@ "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.1.tgz", "integrity": "sha512-2kjwuGGonL7gWE1XU4Fv79+vVzpoQCl0V+boMwWtOQJV2AGDabCwez++nB1Nli/8BabAfZQ/UuHPlp6AymKdWw==", "requires": { - "find-root": "1.1.0", - "glob": "7.1.3", - "ignore": "3.3.10", - "pkg-config": "1.1.1", - "run-parallel": "1.1.9", - "uniq": "1.0.1" + "find-root": "^1.0.0", + "glob": "^7.0.5", + "ignore": "^3.0.9", + "pkg-config": "^1.1.0", + "run-parallel": "^1.1.2", + "uniq": "^1.0.1" } }, "delayed-stream": { @@ -1892,7 +3014,7 @@ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "diff": { @@ -1911,7 +3033,7 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "requires": { - "esutils": "2.0.2" + "esutils": "^2.0.2" } }, "drbg.js": { @@ -1919,9 +3041,9 @@ "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", "requires": { - "browserify-aes": "1.2.0", - "create-hash": "1.2.0", - "create-hmac": "1.1.7" + "browserify-aes": "^1.0.6", + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4" } }, "ecc-jsbn": { @@ -1930,8 +3052,8 @@ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, "requires": { - "jsbn": "0.1.1", - "safer-buffer": "2.1.2" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, "ecurve": { @@ -1939,57 +3061,57 @@ "resolved": "https://registry.npmjs.org/ecurve/-/ecurve-1.0.6.tgz", "integrity": "sha512-/BzEjNfiSuB7jIWKcS/z8FK9jNjmEWvUV2YZ4RLSmcDtP7Lq0m6FvDuSnJpBlDpGRpfRQeTLGLBI8H+kEv0r+w==", "requires": { - "bigi": "1.4.2", - "safe-buffer": "5.1.2" + "bigi": "^1.1.0", + "safe-buffer": "^5.0.1" } }, "electron-to-chromium": { - "version": "1.3.85", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.85.tgz", - "integrity": "sha512-kWSDVVF9t3mft2OHVZy4K85X2beP6c6mFm3teFS/mLSDJpQwuFIWHrULCX+w6H1E55ZYmFRlT+ATAFRwhrYzsw==" + "version": "1.3.96", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.96.tgz", + "integrity": "sha512-ZUXBUyGLeoJxp4Nt6G/GjBRLnyz8IKQGexZ2ndWaoegThgMGFO1tdDYID5gBV32/1S83osjJHyfzvanE/8HY4Q==" }, "elliptic": { "version": "6.4.1", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.5", - "hmac-drbg": "1.0.1", - "inherits": "2.0.1", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" } }, "engine.io": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz", - "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.3.2.tgz", + "integrity": "sha512-AsaA9KG7cWPXWHp5FvHdDWY3AMWeZ8x+2pUVLcn71qE5AtAzgGbxuclOytygskw8XGmiQafTmnI9Bix3uihu2w==", "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.4", "base64id": "1.0.0", "cookie": "0.3.1", - "debug": "3.1.0", - "engine.io-parser": "2.1.3", - "ws": "3.3.3" + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "ws": "~6.1.0" } }, "engine.io-client": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", - "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.3.1.tgz", + "integrity": "sha512-q66JBFuQcy7CSlfAz9L3jH+v7DTT3i6ZEadYcVj2pOs8/0uJHLxKX3WBkGTvULJMdz0tUCyJag0aKT/dpXL9BQ==", "requires": { "component-emitter": "1.2.1", "component-inherit": "0.0.3", - "debug": "3.1.0", - "engine.io-parser": "2.1.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", "has-cors": "1.1.0", "indexof": "0.0.1", "parseqs": "0.0.5", "parseuri": "0.0.5", - "ws": "3.3.3", - "xmlhttprequest-ssl": "1.5.5", + "ws": "~6.1.0", + "xmlhttprequest-ssl": "~1.5.4", "yeast": "0.1.2" } }, @@ -1999,10 +3121,10 @@ "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", "requires": { "after": "0.8.2", - "arraybuffer.slice": "0.0.7", + "arraybuffer.slice": "~0.0.7", "base64-arraybuffer": "0.1.5", "blob": "0.0.5", - "has-binary2": "1.0.3" + "has-binary2": "~1.0.2" } }, "error-ex": { @@ -2010,7 +3132,7 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "es-abstract": { @@ -2018,11 +3140,11 @@ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", "requires": { - "es-to-primitive": "1.2.0", - "function-bind": "1.1.1", - "has": "1.0.3", - "is-callable": "1.1.4", - "is-regex": "1.0.4" + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" } }, "es-to-primitive": { @@ -2030,9 +3152,9 @@ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", "requires": { - "is-callable": "1.1.4", - "is-date-object": "1.0.1", - "is-symbol": "1.0.2" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" } }, "escape-string-regexp": { @@ -2041,49 +3163,48 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "eslint": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.9.0.tgz", - "integrity": "sha512-g4KWpPdqN0nth+goDNICNXGfJF7nNnepthp46CAlJoJtC5K/cLu3NgCM3AHu1CkJ5Hzt9V0Y0PBAO6Ay/gGb+w==", + "version": "5.11.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.11.1.tgz", + "integrity": "sha512-gOKhM8JwlFOc2acbOrkYR05NW8M6DCMSvfcJiBB5NDxRE1gv8kbvxKaC9u69e6ZGEMWXcswA/7eKR229cEIpvg==", "dev": true, "requires": { - "@babel/code-frame": "7.0.0", - "ajv": "6.5.5", - "chalk": "2.4.1", - "cross-spawn": "6.0.5", - "debug": "4.1.0", - "doctrine": "2.1.0", - "eslint-scope": "4.0.0", - "eslint-utils": "1.3.1", - "eslint-visitor-keys": "1.0.0", - "espree": "4.1.0", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.3", - "globals": "11.9.0", - "ignore": "4.0.6", - "imurmurhash": "0.1.4", - "inquirer": "6.2.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.12.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.1", - "regexpp": "2.0.1", - "require-uncached": "1.0.3", - "semver": "5.6.0", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", - "table": "5.1.0", - "text-table": "0.2.0" + "@babel/code-frame": "^7.0.0", + "ajv": "^6.5.3", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^2.1.0", + "eslint-scope": "^4.0.0", + "eslint-utils": "^1.3.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^5.0.0", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.7.0", + "ignore": "^4.0.6", + "imurmurhash": "^0.1.4", + "inquirer": "^6.1.0", + "js-yaml": "^3.12.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.5", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.5.1", + "strip-ansi": "^4.0.0", + "strip-json-comments": "^2.0.1", + "table": "^5.0.2", + "text-table": "^0.2.0" }, "dependencies": { "acorn": { @@ -2099,23 +3220,32 @@ "dev": true }, "ajv": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz", - "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz", + "integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==", "dev": true, "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.0.0.tgz", + "integrity": "sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w==", "dev": true }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", @@ -2128,20 +3258,20 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.6.0", - "shebang-command": "1.2.0", - "which": "1.3.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "debug": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", - "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "eslint-scope": { @@ -2150,19 +3280,19 @@ "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", "dev": true, "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "espree": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-4.1.0.tgz", - "integrity": "sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.0.tgz", + "integrity": "sha512-1MpUfwsdS9MMoN7ZXqAr9e9UKdVHDcvrJpyx7mm1WuQlx/ygErEQBzgi5Nh5qBHIoYweprhtMkTCb9GhcAIcsA==", "dev": true, "requires": { - "acorn": "6.0.4", - "acorn-jsx": "5.0.1", - "eslint-visitor-keys": "1.0.0" + "acorn": "^6.0.2", + "acorn-jsx": "^5.0.0", + "eslint-visitor-keys": "^1.0.0" } }, "external-editor": { @@ -2171,9 +3301,9 @@ "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", "dev": true, "requires": { - "chardet": "0.7.0", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" } }, "fast-deep-equal": { @@ -2195,24 +3325,35 @@ "dev": true }, "inquirer": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.0.tgz", - "integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==", - "dev": true, - "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "3.0.3", - "figures": "2.0.0", - "lodash": "4.17.11", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.1.tgz", + "integrity": "sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.0", + "figures": "^2.0.0", + "lodash": "^4.17.10", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rxjs": "6.3.3", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rxjs": "^6.1.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "strip-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.0.0.tgz", + "integrity": "sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==", + "dev": true, + "requires": { + "ansi-regex": "^4.0.0" + } + } } }, "json-schema-traverse": { @@ -2227,25 +3368,44 @@ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true }, + "slice-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.0.0.tgz", + "integrity": "sha512-4j2WTWjp3GsZ+AOagyzVbzp4vWGtZ0hEZ/gDY/uTvm6MTxUfTUIsnMIFb1bn8o0RuXiqUw15H1bue8f22Vw2oQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + } + }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + } } }, "table": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/table/-/table-5.1.0.tgz", - "integrity": "sha512-e542in22ZLhD/fOIuXs/8yDZ9W61ltF8daM88rkRNtgTIct+vI2fTnAyu/Db2TCfEcI8i7mjZz6meLq0nW7TYg==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/table/-/table-5.1.1.tgz", + "integrity": "sha512-NUjapYb/qd4PeFW03HnAuOJ7OMcBkJlqeClWxeNlQ0lXGSb52oZXGzkO0/I0ARegQ2eUT1g2VDJH0eUxDRcHmw==", "dev": true, "requires": { - "ajv": "6.5.5", - "lodash": "4.17.11", - "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "ajv": "^6.6.1", + "lodash": "^4.17.11", + "slice-ansi": "2.0.0", + "string-width": "^2.1.1" } } } @@ -2256,7 +3416,7 @@ "integrity": "sha512-Bc3bh5bAcKNvs3HOpSi6EfGA2IIp7EzWcg2tS4vP7stnXu/J1opihHDM7jI9JCIckyIDTgZLSWn7J3HY0j2JfA==", "dev": true, "requires": { - "get-stdin": "6.0.0" + "get-stdin": "^6.0.0" } }, "eslint-config-standard": { @@ -2274,8 +3434,8 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", "requires": { - "debug": "2.6.9", - "resolve": "1.8.1" + "debug": "^2.6.9", + "resolve": "^1.5.0" }, "dependencies": { "debug": { @@ -2293,8 +3453,8 @@ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", "requires": { - "debug": "2.6.9", - "pkg-dir": "1.0.0" + "debug": "^2.6.8", + "pkg-dir": "^1.0.0" }, "dependencies": { "debug": { @@ -2313,8 +3473,8 @@ "integrity": "sha512-XfFmgFdIUDgvaRAlaXUkxrRg5JSADoRC8IkKLc/cISeR3yHVMefFHQZpcyXXEUUPHfy5DwviBcrfqlyqEwlQVw==", "dev": true, "requires": { - "eslint-utils": "1.3.1", - "regexpp": "2.0.1" + "eslint-utils": "^1.3.0", + "regexpp": "^2.0.1" } }, "eslint-plugin-import": { @@ -2322,16 +3482,16 @@ "resolved": "http://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz", "integrity": "sha1-JgAu+/ylmJtyiKwEdQi9JPIXsWk=", "requires": { - "builtin-modules": "1.1.1", - "contains-path": "0.1.0", - "debug": "2.6.9", + "builtin-modules": "^1.1.1", + "contains-path": "^0.1.0", + "debug": "^2.6.8", "doctrine": "1.5.0", - "eslint-import-resolver-node": "0.3.2", - "eslint-module-utils": "2.2.0", - "has": "1.0.3", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "read-pkg-up": "2.0.0" + "eslint-import-resolver-node": "^0.3.1", + "eslint-module-utils": "^2.1.1", + "has": "^1.0.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.3", + "read-pkg-up": "^2.0.0" }, "dependencies": { "debug": { @@ -2344,11 +3504,11 @@ }, "doctrine": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "resolved": "http://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" + "esutils": "^2.0.2", + "isarray": "^1.0.0" } } } @@ -2359,12 +3519,12 @@ "integrity": "sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw==", "dev": true, "requires": { - "eslint-plugin-es": "1.4.0", - "eslint-utils": "1.3.1", - "ignore": "4.0.6", - "minimatch": "3.0.4", - "resolve": "1.8.1", - "semver": "5.6.0" + "eslint-plugin-es": "^1.3.1", + "eslint-utils": "^1.3.1", + "ignore": "^4.0.2", + "minimatch": "^3.0.4", + "resolve": "^1.8.1", + "semver": "^5.5.0" }, "dependencies": { "ignore": { @@ -2381,8 +3541,8 @@ "integrity": "sha512-CStQYJgALoQBw3FsBzH0VOVDRnJ/ZimUlpLm226U8qgqYJfPOY/CPK6wyRInMxh73HSKg5wyRwdS4BVYYHwokA==", "dev": true, "requires": { - "fast-diff": "1.2.0", - "jest-docblock": "21.2.0" + "fast-diff": "^1.1.1", + "jest-docblock": "^21.0.0" } }, "eslint-plugin-promise": { @@ -2395,10 +3555,10 @@ "resolved": "http://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz", "integrity": "sha512-KC7Snr4YsWZD5flu6A5c0AcIZidzW3Exbqp7OT67OaD2AppJtlBr/GuPrW/vaQM/yfZotEvKAdrxrO+v8vwYJA==", "requires": { - "doctrine": "2.1.0", - "has": "1.0.3", - "jsx-ast-utils": "2.0.1", - "prop-types": "15.6.2" + "doctrine": "^2.0.2", + "has": "^1.0.1", + "jsx-ast-utils": "^2.0.1", + "prop-types": "^15.6.0" } }, "eslint-plugin-standard": { @@ -2411,8 +3571,8 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint-utils": { @@ -2431,8 +3591,8 @@ "resolved": "http://registry.npmjs.org/espree/-/espree-3.5.4.tgz", "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "requires": { - "acorn": "5.7.3", - "acorn-jsx": "3.0.1" + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" } }, "esprima": { @@ -2445,7 +3605,7 @@ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "esrecurse": { @@ -2453,7 +3613,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.1.0" } }, "estraverse": { @@ -2471,8 +3631,8 @@ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "requires": { - "md5.js": "1.3.5", - "safe-buffer": "5.1.2" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, "execa": { @@ -2480,13 +3640,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "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" } }, "expand-brackets": { @@ -2495,7 +3655,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "optional": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -2504,7 +3664,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "optional": true, "requires": { - "fill-range": "2.2.4" + "fill-range": "^2.1.0" } }, "extend": { @@ -2518,8 +3678,8 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -2527,7 +3687,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -2537,9 +3697,9 @@ "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" } }, "extglob": { @@ -2548,7 +3708,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "optional": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "extsprintf": { @@ -2559,7 +3719,7 @@ }, "fast-deep-equal": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" }, "fast-diff": { @@ -2588,7 +3748,7 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { @@ -2596,8 +3756,8 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "requires": { - "flat-cache": "1.3.4", - "object-assign": "4.1.1" + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" } }, "filename-regex": { @@ -2612,11 +3772,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "optional": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.1.1", - "repeat-element": "1.1.3", - "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" } }, "find-root": { @@ -2629,8 +3789,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" } }, "flat-cache": { @@ -2638,18 +3798,18 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", "requires": { - "circular-json": "0.3.3", - "graceful-fs": "4.1.15", - "rimraf": "2.6.2", - "write": "0.2.1" + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" } }, "follow-redirects": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", - "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.6.0.tgz", + "integrity": "sha512-4Oh4eI3S9OueVV41AgJ1oLjpaJUhbJ7JDGOMhe0AFqoSejl5Q2nn3eGglAzRUKVKZE8jG5MNn66TjCJMAnpsWA==", "requires": { - "debug": "3.1.0" + "debug": "=3.1.0" } }, "for-each": { @@ -2657,7 +3817,7 @@ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "requires": { - "is-callable": "1.1.4" + "is-callable": "^1.1.3" } }, "for-in": { @@ -2671,7 +3831,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "optional": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "forever-agent": { @@ -2686,9 +3846,9 @@ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.7", - "mime-types": "2.1.21" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" } }, "fragment-cache": { @@ -2696,7 +3856,7 @@ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fresh": { @@ -2721,8 +3881,8 @@ "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", "optional": true, "requires": { - "nan": "2.11.1", - "node-pre-gyp": "0.10.0" + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" }, "dependencies": { "abbrev": { @@ -2744,8 +3904,8 @@ "bundled": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "balanced-match": { @@ -2756,7 +3916,7 @@ "version": "1.1.11", "bundled": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -2810,7 +3970,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "fs.realpath": { @@ -2823,14 +3983,14 @@ "bundled": true, "optional": 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" } }, "glob": { @@ -2838,12 +3998,12 @@ "bundled": true, "optional": 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" } }, "has-unicode": { @@ -2856,7 +4016,7 @@ "bundled": true, "optional": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "^2.1.0" } }, "ignore-walk": { @@ -2864,7 +4024,7 @@ "bundled": true, "optional": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "inflight": { @@ -2872,8 +4032,8 @@ "bundled": true, "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -2889,7 +4049,7 @@ "version": "1.0.0", "bundled": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "isarray": { @@ -2901,7 +4061,7 @@ "version": "3.0.4", "bundled": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -2912,8 +4072,8 @@ "version": "2.2.4", "bundled": true, "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" } }, "minizlib": { @@ -2921,7 +4081,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "mkdirp": { @@ -2941,9 +4101,9 @@ "bundled": true, "optional": true, "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, "node-pre-gyp": { @@ -2951,16 +4111,16 @@ "bundled": true, "optional": true, "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.7", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" + "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": { @@ -2968,8 +4128,8 @@ "bundled": true, "optional": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npm-bundled": { @@ -2982,8 +4142,8 @@ "bundled": true, "optional": true, "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, "npmlog": { @@ -2991,10 +4151,10 @@ "bundled": 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" + "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": { @@ -3010,7 +4170,7 @@ "version": "1.4.0", "bundled": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -3028,8 +4188,8 @@ "bundled": 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": { @@ -3047,10 +4207,10 @@ "bundled": true, "optional": true, "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "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": { @@ -3065,13 +4225,13 @@ "bundled": true, "optional": true, "requires": { - "core-util-is": "1.0.2", - "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.2" + "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": { @@ -3079,7 +4239,7 @@ "bundled": true, "optional": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { @@ -3115,9 +4275,9 @@ "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": { @@ -3125,14 +4285,14 @@ "bundled": true, "optional": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { "version": "3.0.1", "bundled": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -3145,13 +4305,13 @@ "bundled": true, "optional": true, "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "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" } }, "util-deprecate": { @@ -3164,7 +4324,7 @@ "bundled": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { @@ -3219,7 +4379,7 @@ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "git-clone": { @@ -3232,12 +4392,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.1", - "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": { @@ -3246,8 +4406,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "optional": true, "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -3255,7 +4415,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "globals": { @@ -3286,20 +4446,20 @@ "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "dev": true, "requires": { - "ajv": "6.5.5", - "har-schema": "2.0.0" + "ajv": "^6.5.5", + "har-schema": "^2.0.0" }, "dependencies": { "ajv": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz", - "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz", + "integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==", "dev": true, "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, "fast-deep-equal": { @@ -3321,7 +4481,7 @@ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.1.1" } }, "has-ansi": { @@ -3329,7 +4489,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-binary2": { @@ -3367,9 +4527,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "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" }, "dependencies": { "isobject": { @@ -3384,8 +4544,8 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { @@ -3393,7 +4553,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -3401,7 +4561,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -3411,7 +4571,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -3421,17 +4581,17 @@ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "hash.js": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", - "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" }, "dependencies": { "inherits": { @@ -3452,9 +4612,9 @@ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { - "hash.js": "1.1.5", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, "home-or-tmp": { @@ -3462,8 +4622,8 @@ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" } }, "hosted-git-info": { @@ -3477,9 +4637,9 @@ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.15.2" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "iconv-lite": { @@ -3487,7 +4647,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "ieee754": { @@ -3515,8 +4675,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -3534,20 +4694,20 @@ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.11", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" }, "dependencies": { "ansi-regex": { @@ -3560,7 +4720,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -3570,7 +4730,7 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -3580,10 +4740,10 @@ }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "resolved": "http://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-arrayish": { @@ -3597,7 +4757,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "optional": true, "requires": { - "binary-extensions": "1.12.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -3610,7 +4770,7 @@ "resolved": "http://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-callable": { @@ -3620,10 +4780,10 @@ }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "resolved": "http://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-date-object": { @@ -3636,9 +4796,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "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": { @@ -3660,7 +4820,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "optional": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -3678,7 +4838,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-fullwidth-code-point": { @@ -3691,7 +4851,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-number": { @@ -3700,7 +4860,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-plain-object": { @@ -3708,7 +4868,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -3740,7 +4900,7 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "requires": { - "has": "1.0.3" + "has": "^1.0.1" } }, "is-resolvable": { @@ -3758,7 +4918,7 @@ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", "requires": { - "has-symbols": "1.0.0" + "has-symbols": "^1.0.0" } }, "is-typedarray": { @@ -3798,6 +4958,25 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, + "istanbul-lib-coverage": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", + "integrity": "sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA==" + }, + "istanbul-lib-instrument": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.0.0.tgz", + "integrity": "sha512-eQY9vN9elYjdgN9Iv6NS/00bptm02EBBk70lRMaVjeA6QYocQgenVrSgC28TJurdnZa80AGO3ASdFN+w/njGiQ==", + "requires": { + "@babel/generator": "^7.0.0", + "@babel/parser": "^7.0.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "istanbul-lib-coverage": "^2.0.1", + "semver": "^5.5.0" + } + }, "jest-docblock": { "version": "21.2.0", "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz", @@ -3814,8 +4993,8 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsbn": { @@ -3826,7 +5005,7 @@ }, "jsesc": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" }, "json-parse-better-errors": { @@ -3878,13 +5057,13 @@ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", "requires": { - "array-includes": "3.0.3" + "array-includes": "^3.0.3" } }, "just-extend": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-3.0.0.tgz", - "integrity": "sha512-Fu3T6pKBuxjWT/p4DkqGHFRsysc8OauWr4ZRTY9dIx07Y9O0RkoR5jcv28aeD1vuAwhm3nLkDurwLXoALp4DpQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.0.2.tgz", + "integrity": "sha512-FrLwOgm+iXrPV+5zDU6Jqu4gCRXbWEQg2O3SKONsWE4w7AXFRkryS53bpWdaL9cNol+AmR3AEYz6kn+o0fCPnw==", "dev": true }, "keccak": { @@ -3892,10 +5071,10 @@ "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", "requires": { - "bindings": "1.3.1", - "inherits": "2.0.3", - "nan": "2.11.1", - "safe-buffer": "5.1.2" + "bindings": "^1.2.1", + "inherits": "^2.0.3", + "nan": "^2.2.1", + "safe-buffer": "^5.1.0" }, "dependencies": { "inherits": { @@ -3910,7 +5089,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lcid": { @@ -3918,7 +5097,7 @@ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "lcov-parse": { @@ -3932,8 +5111,8 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "load-json-file": { @@ -3941,10 +5120,10 @@ "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "requires": { - "graceful-fs": "4.1.15", - "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" } }, "locate-path": { @@ -3952,8 +5131,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" }, "dependencies": { "path-exists": { @@ -3996,16 +5175,16 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0 || ^4.0.0" } }, "lru-cache": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.4.tgz", - "integrity": "sha512-EPstzZ23znHUVLKj+lcXO1KvZkrlw+ZirdwvOmnAnA/1PB4ggyXJ77LRkCqkff+ShQ+cqoxCxLQOh4cKITO5iA==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "requires": { - "pseudomap": "1.0.2", - "yallist": "3.0.3" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "make-dir": { @@ -4013,7 +5192,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" }, "dependencies": { "pify": { @@ -4033,7 +5212,7 @@ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "math-random": { @@ -4047,14 +5226,14 @@ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, "media-typer": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "resolved": "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true }, @@ -4063,7 +5242,7 @@ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "merge-descriptors": { @@ -4089,19 +5268,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "optional": 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" } }, "mime": { @@ -4120,7 +5299,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", "requires": { - "mime-db": "1.37.0" + "mime-db": "~1.37.0" } }, "mimic-fn": { @@ -4143,7 +5322,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -4156,8 +5335,8 @@ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -4165,7 +5344,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -4209,12 +5388,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.1", - "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" } }, "supports-color": { @@ -4223,7 +5402,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -4239,9 +5418,9 @@ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" }, "nan": { - "version": "2.11.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz", - "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==" + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz", + "integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==" }, "nanomatch": { "version": "1.2.13", @@ -4249,17 +5428,17 @@ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "optional": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "arr-diff": { @@ -4310,25 +5489,25 @@ "dev": true }, "nise": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.6.tgz", - "integrity": "sha512-1GedetLKzmqmgwabuMSqPsT7oumdR77SBpDfNNJhADRIeA3LN/2RVqR4fFqwvzhAqcTef6PPCzQwITE/YQ8S8A==", + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.8.tgz", + "integrity": "sha512-kGASVhuL4tlAV0tvA34yJYZIVihrUt/5bDwpp4tTluigxUr2bBlJeDXmivb6NuEdFkqvdv/Ybb9dm16PSKUhtw==", "dev": true, "requires": { - "@sinonjs/formatio": "3.0.0", - "just-extend": "3.0.0", - "lolex": "2.7.5", - "path-to-regexp": "1.7.0", - "text-encoding": "0.6.4" + "@sinonjs/formatio": "^3.1.0", + "just-extend": "^4.0.2", + "lolex": "^2.3.2", + "path-to-regexp": "^1.7.0", + "text-encoding": "^0.6.4" }, "dependencies": { "@sinonjs/formatio": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.0.0.tgz", - "integrity": "sha512-vdjoYLDptCgvtJs57ULshak3iJe4NW3sJ3g36xVDGff5AE8P30S6A093EIEPjdi2noGhfuNOEkbxt3J3awFW1w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.1.0.tgz", + "integrity": "sha512-ZAR2bPHOl4Xg6eklUGpsdiIJ4+J1SNag1DHHrG/73Uz/nVwXqjgUtRPLoS+aVyieN9cSbc0E4LsU984tWcDyNg==", "dev": true, "requires": { - "@sinonjs/samsam": "2.1.0" + "@sinonjs/samsam": "^2 || ^3" } } } @@ -4343,7 +5522,7 @@ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", "requires": { - "lodash.toarray": "4.4.0" + "lodash.toarray": "^4.4.0" } }, "node-mocks-http": { @@ -4352,16 +5531,16 @@ "integrity": "sha512-wayzLNhEroH3lJj113pFKQ1cd1GKG1mXoZR1HcKp/o9a9lTGGgVY/hYeLajiIFr/z4tXFKOdfJickqqihBtn9g==", "dev": true, "requires": { - "accepts": "1.3.5", - "depd": "1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "mime": "1.6.0", - "net": "1.0.2", - "parseurl": "1.3.2", - "range-parser": "1.2.0", - "type-is": "1.6.16" + "accepts": "^1.3.5", + "depd": "^1.1.0", + "fresh": "^0.5.2", + "merge-descriptors": "^1.0.1", + "methods": "^1.1.2", + "mime": "^1.3.4", + "net": "^1.0.2", + "parseurl": "^1.3.1", + "range-parser": "^1.2.0", + "type-is": "^1.6.16" } }, "nopt": { @@ -4369,7 +5548,7 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } }, "normalize-package-data": { @@ -4377,10 +5556,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.7.1", - "is-builtin-module": "1.0.0", - "semver": "5.6.0", - "validate-npm-package-license": "3.0.4" + "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": { @@ -4388,7 +5567,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "npm-run-path": { @@ -4396,7 +5575,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -4408,520 +5587,592 @@ "version": "11.9.0", "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.9.0.tgz", "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", + "dev": true, "requires": { - "archy": "1.0.0", - "arrify": "1.0.1", - "caching-transform": "1.0.1", - "convert-source-map": "1.5.1", - "debug-log": "1.0.1", - "default-require-extensions": "1.0.0", - "find-cache-dir": "0.1.1", - "find-up": "2.1.0", - "foreground-child": "1.5.6", - "glob": "7.1.2", - "istanbul-lib-coverage": "1.2.0", - "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "1.10.1", - "istanbul-lib-report": "1.1.3", - "istanbul-lib-source-maps": "1.2.3", - "istanbul-reports": "1.4.0", - "md5-hex": "1.3.0", - "merge-source-map": "1.1.0", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "resolve-from": "2.0.0", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "spawn-wrap": "1.4.2", - "test-exclude": "4.2.1", + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^1.0.0", + "convert-source-map": "^1.5.1", + "debug-log": "^1.0.1", + "default-require-extensions": "^1.0.0", + "find-cache-dir": "^0.1.1", + "find-up": "^2.1.0", + "foreground-child": "^1.5.3", + "glob": "^7.0.6", + "istanbul-lib-coverage": "^1.1.2", + "istanbul-lib-hook": "^1.1.0", + "istanbul-lib-instrument": "^1.10.0", + "istanbul-lib-report": "^1.1.3", + "istanbul-lib-source-maps": "^1.2.3", + "istanbul-reports": "^1.4.0", + "md5-hex": "^1.2.0", + "merge-source-map": "^1.1.0", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.0", + "resolve-from": "^2.0.0", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.1", + "spawn-wrap": "^1.4.2", + "test-exclude": "^4.2.0", "yargs": "11.1.0", - "yargs-parser": "8.1.0" + "yargs-parser": "^8.0.0" }, "dependencies": { "align-text": { "version": "0.1.4", "bundled": true, + "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" } }, "amdefine": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "bundled": true, + "dev": true }, "ansi-styles": { "version": "2.2.1", - "bundled": true + "bundled": true, + "dev": true }, "append-transform": { "version": "0.4.0", "bundled": true, + "dev": true, "requires": { - "default-require-extensions": "1.0.0" + "default-require-extensions": "^1.0.0" } }, "archy": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "arr-diff": { "version": "4.0.0", - "bundled": true + "bundled": true, + "dev": true }, "arr-flatten": { "version": "1.1.0", - "bundled": true + "bundled": true, + "dev": true }, "arr-union": { "version": "3.1.0", - "bundled": true + "bundled": true, + "dev": true }, "array-unique": { "version": "0.3.2", - "bundled": true + "bundled": true, + "dev": true }, "arrify": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "assign-symbols": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "async": { "version": "1.5.2", - "bundled": true + "bundled": true, + "dev": true }, "atob": { "version": "2.1.1", - "bundled": true + "bundled": true, + "dev": true }, "babel-code-frame": { "version": "6.26.0", "bundled": true, + "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" } }, "babel-generator": { "version": "6.26.1", "bundled": true, + "dev": true, "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" } }, "babel-messages": { "version": "6.23.0", "bundled": true, + "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-runtime": { "version": "6.26.0", "bundled": true, + "dev": true, "requires": { - "core-js": "2.5.6", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { "version": "6.26.0", "bundled": true, + "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.10" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { "version": "6.26.0", "bundled": true, + "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.10" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" } }, "babel-types": { "version": "6.26.0", "bundled": true, + "dev": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { "version": "6.18.0", - "bundled": true + "bundled": true, + "dev": true }, "balanced-match": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "base": { "version": "0.11.2", "bundled": true, + "dev": true, "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "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" }, "dependencies": { "define-property": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "brace-expansion": { "version": "1.1.11", "bundled": true, + "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "braces": { "version": "2.3.2", "bundled": true, + "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "builtin-modules": { "version": "1.1.1", - "bundled": true + "bundled": true, + "dev": true }, "cache-base": { "version": "1.0.1", "bundled": true, + "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" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "caching-transform": { "version": "1.0.1", "bundled": true, + "dev": true, "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" } }, "camelcase": { "version": "1.2.1", "bundled": true, + "dev": true, "optional": true }, "center-align": { "version": "0.1.3", "bundled": true, + "dev": true, "optional": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chalk": { "version": "1.1.3", "bundled": true, + "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" } }, "class-utils": { "version": "0.3.6", "bundled": true, + "dev": true, "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { "version": "0.2.5", "bundled": true, + "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "cliui": { "version": "2.1.0", "bundled": true, + "dev": true, "optional": 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" }, "dependencies": { "wordwrap": { "version": "0.0.2", "bundled": true, + "dev": true, "optional": true } } }, "code-point-at": { "version": "1.1.0", - "bundled": true + "bundled": true, + "dev": true }, "collection-visit": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "commondir": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "component-emitter": { "version": "1.2.1", - "bundled": true + "bundled": true, + "dev": true }, "concat-map": { "version": "0.0.1", - "bundled": true + "bundled": true, + "dev": true }, "convert-source-map": { "version": "1.5.1", - "bundled": true + "bundled": true, + "dev": true }, "copy-descriptor": { "version": "0.1.1", - "bundled": true + "bundled": true, + "dev": true }, "core-js": { "version": "2.5.6", - "bundled": true + "bundled": true, + "dev": true }, "cross-spawn": { "version": "4.0.2", "bundled": true, + "dev": true, "requires": { - "lru-cache": "4.1.3", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } }, "debug": { "version": "2.6.9", "bundled": true, + "dev": true, "requires": { "ms": "2.0.0" } }, "debug-log": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "decamelize": { "version": "1.2.0", - "bundled": true + "bundled": true, + "dev": true }, "decode-uri-component": { "version": "0.2.0", - "bundled": true + "bundled": true, + "dev": true }, "default-require-extensions": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "strip-bom": "2.0.0" + "strip-bom": "^2.0.0" } }, "define-property": { "version": "2.0.2", "bundled": true, + "dev": true, "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "detect-indent": { "version": "4.0.0", "bundled": true, + "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "error-ex": { "version": "1.3.1", "bundled": true, + "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "escape-string-regexp": { "version": "1.0.5", - "bundled": true + "bundled": true, + "dev": true }, "esutils": { "version": "2.0.2", - "bundled": true + "bundled": true, + "dev": true }, "execa": { "version": "0.7.0", "bundled": true, + "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" }, "dependencies": { "cross-spawn": { "version": "5.1.0", "bundled": true, + "dev": true, "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } } } @@ -4929,28 +6180,31 @@ "expand-brackets": { "version": "2.1.4", "bundled": true, + "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { "version": "0.2.5", "bundled": true, + "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -4958,16 +6212,18 @@ "extend-shallow": { "version": "3.0.2", "bundled": true, + "dev": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { "version": "1.0.1", "bundled": true, + "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -4975,75 +6231,84 @@ "extglob": { "version": "2.0.4", "bundled": true, + "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "fill-range": { "version": "4.0.0", "bundled": true, + "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" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5051,89 +6316,103 @@ "find-cache-dir": { "version": "0.1.1", "bundled": true, + "dev": true, "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" } }, "find-up": { "version": "2.1.0", "bundled": true, + "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "for-in": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true }, "foreground-child": { "version": "1.5.6", "bundled": true, + "dev": true, "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" + "cross-spawn": "^4", + "signal-exit": "^3.0.0" } }, "fragment-cache": { "version": "0.2.1", "bundled": true, + "dev": true, "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fs.realpath": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "get-caller-file": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true }, "get-stream": { "version": "3.0.0", - "bundled": true + "bundled": true, + "dev": true }, "get-value": { "version": "2.0.6", - "bundled": true + "bundled": true, + "dev": true }, "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" + "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" } }, "globals": { "version": "9.18.0", - "bundled": true + "bundled": true, + "dev": true }, "graceful-fs": { "version": "4.1.11", - "bundled": true + "bundled": true, + "dev": true }, "handlebars": { "version": "4.0.11", "bundled": true, + "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": { "source-map": { "version": "0.4.4", "bundled": true, + "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -5141,49 +6420,56 @@ "has-ansi": { "version": "2.0.0", "bundled": true, + "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "has-value": { "version": "1.0.0", "bundled": true, + "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" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "has-values": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { "version": "3.0.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "bundled": true, + "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5191,198 +6477,231 @@ "kind-of": { "version": "4.0.0", "bundled": true, + "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "hosted-git-info": { "version": "2.6.0", - "bundled": true + "bundled": true, + "dev": true }, "imurmurhash": { "version": "0.1.4", - "bundled": true + "bundled": true, + "dev": true }, "inflight": { "version": "1.0.6", "bundled": true, + "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { "version": "2.0.3", - "bundled": true + "bundled": true, + "dev": true }, "invariant": { "version": "2.2.4", "bundled": true, + "dev": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "is-accessor-descriptor": { "version": "0.1.6", "bundled": true, + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-arrayish": { "version": "0.2.1", - "bundled": true + "bundled": true, + "dev": true }, "is-buffer": { "version": "1.1.6", - "bundled": true + "bundled": true, + "dev": true }, "is-builtin-module": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-data-descriptor": { "version": "0.1.4", "bundled": true, + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-descriptor": { "version": "0.1.6", "bundled": true, + "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": { "version": "5.1.0", - "bundled": true + "bundled": true, + "dev": true } } }, "is-extendable": { "version": "0.1.1", - "bundled": true + "bundled": true, + "dev": true }, "is-finite": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "is-number": { "version": "3.0.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-odd": { "version": "2.0.0", "bundled": true, + "dev": true, "requires": { - "is-number": "4.0.0" + "is-number": "^4.0.0" }, "dependencies": { "is-number": { "version": "4.0.0", - "bundled": true + "bundled": true, + "dev": true } } }, "is-plain-object": { "version": "2.0.4", "bundled": true, + "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "is-stream": { "version": "1.1.0", - "bundled": true + "bundled": true, + "dev": true }, "is-utf8": { "version": "0.2.1", - "bundled": true + "bundled": true, + "dev": true }, "is-windows": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true }, "isarray": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "isexe": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true }, "istanbul-lib-coverage": { "version": "1.2.0", - "bundled": true + "bundled": true, + "dev": true }, "istanbul-lib-hook": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { - "append-transform": "0.4.0" + "append-transform": "^0.4.0" } }, "istanbul-lib-instrument": { "version": "1.10.1", "bundled": true, + "dev": true, "requires": { - "babel-generator": "6.26.1", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.2.0", - "semver": "5.5.0" + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.0", + "semver": "^5.3.0" } }, "istanbul-lib-report": { "version": "1.1.3", "bundled": true, + "dev": true, "requires": { - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" }, "dependencies": { "supports-color": { "version": "3.2.3", "bundled": true, + "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5390,17 +6709,19 @@ "istanbul-lib-source-maps": { "version": "1.2.3", "bundled": true, + "dev": true, "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" }, "dependencies": { "debug": { "version": "3.1.0", "bundled": true, + "dev": true, "requires": { "ms": "2.0.0" } @@ -5410,180 +6731,207 @@ "istanbul-reports": { "version": "1.4.0", "bundled": true, + "dev": true, "requires": { - "handlebars": "4.0.11" + "handlebars": "^4.0.3" } }, "js-tokens": { "version": "3.0.2", - "bundled": true + "bundled": true, + "dev": true }, "jsesc": { "version": "1.3.0", - "bundled": true + "bundled": true, + "dev": true }, "kind-of": { "version": "3.2.2", "bundled": true, + "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lazy-cache": { "version": "1.0.4", "bundled": true, + "dev": true, "optional": true }, "lcid": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "load-json-file": { "version": "1.1.0", "bundled": true, + "dev": true, "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": { "version": "2.0.0", "bundled": true, + "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": { "version": "3.0.0", - "bundled": true + "bundled": true, + "dev": true } } }, "lodash": { "version": "4.17.10", - "bundled": true + "bundled": true, + "dev": true }, "longest": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "loose-envify": { "version": "1.3.1", "bundled": true, + "dev": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "lru-cache": { "version": "4.1.3", "bundled": true, + "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "map-cache": { "version": "0.2.2", - "bundled": true + "bundled": true, + "dev": true }, "map-visit": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "md5-hex": { "version": "1.3.0", "bundled": true, + "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { "version": "0.1.1", - "bundled": true + "bundled": true, + "dev": true }, "mem": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "merge-source-map": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { - "source-map": "0.6.1" + "source-map": "^0.6.1" }, "dependencies": { "source-map": { "version": "0.6.1", - "bundled": true + "bundled": true, + "dev": true } } }, "micromatch": { "version": "3.1.10", "bundled": true, + "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "mimic-fn": { "version": "1.2.0", - "bundled": true + "bundled": true, + "dev": true }, "minimatch": { "version": "3.0.4", "bundled": true, + "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true + "bundled": true, + "dev": true }, "mixin-deep": { "version": "1.3.1", "bundled": true, + "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": { "version": "1.0.1", "bundled": true, + "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -5591,85 +6939,97 @@ "mkdirp": { "version": "0.5.1", "bundled": true, + "dev": true, "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "nanomatch": { "version": "1.2.9", "bundled": true, + "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-odd": "^2.0.0", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true + "bundled": true, + "dev": true }, "array-unique": { "version": "0.3.2", - "bundled": true + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "normalize-package-data": { "version": "2.4.0", "bundled": true, + "dev": true, "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "npm-run-path": { "version": "2.0.2", "bundled": true, + "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "object-assign": { "version": "4.1.1", - "bundled": true + "bundled": true, + "dev": true }, "object-copy": { "version": "0.1.0", "bundled": true, + "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": { "version": "0.2.5", "bundled": true, + "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -5677,277 +7037,323 @@ "object-visit": { "version": "1.0.1", "bundled": true, + "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "object.pick": { "version": "1.3.0", "bundled": true, + "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "once": { "version": "1.4.0", "bundled": true, + "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "optimist": { "version": "0.6.1", "bundled": true, + "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "os-homedir": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true }, "os-locale": { "version": "2.1.0", "bundled": true, + "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" } }, "p-finally": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "p-limit": { "version": "1.2.0", "bundled": true, + "dev": true, "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { "version": "2.0.0", "bundled": true, + "dev": true, "requires": { - "p-limit": "1.2.0" + "p-limit": "^1.1.0" } }, "p-try": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "parse-json": { "version": "2.2.0", "bundled": true, + "dev": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "pascalcase": { "version": "0.1.1", - "bundled": true + "bundled": true, + "dev": true }, "path-exists": { "version": "2.1.0", "bundled": true, + "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "path-key": { "version": "2.0.1", - "bundled": true + "bundled": true, + "dev": true }, "path-parse": { "version": "1.0.5", - "bundled": true + "bundled": true, + "dev": true }, "path-type": { "version": "1.1.0", "bundled": true, + "dev": true, "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" } }, "pify": { "version": "2.3.0", - "bundled": true + "bundled": true, + "dev": true }, "pinkie": { "version": "2.0.4", - "bundled": true + "bundled": true, + "dev": true }, "pinkie-promise": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" }, "dependencies": { "find-up": { "version": "1.1.2", "bundled": true, + "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } }, "posix-character-classes": { "version": "0.1.1", - "bundled": true + "bundled": true, + "dev": true }, "pseudomap": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true }, "read-pkg": { "version": "1.1.0", "bundled": true, + "dev": true, "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": { "version": "1.0.1", "bundled": true, + "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" }, "dependencies": { "find-up": { "version": "1.1.2", "bundled": true, + "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } }, "regenerator-runtime": { "version": "0.11.1", - "bundled": true + "bundled": true, + "dev": true }, "regex-not": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "repeat-element": { "version": "1.1.2", - "bundled": true + "bundled": true, + "dev": true }, "repeat-string": { "version": "1.6.1", - "bundled": true + "bundled": true, + "dev": true }, "repeating": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "require-directory": { "version": "2.1.1", - "bundled": true + "bundled": true, + "dev": true }, "require-main-filename": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "resolve-from": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "resolve-url": { "version": "0.2.1", - "bundled": true + "bundled": true, + "dev": true }, "ret": { "version": "0.1.15", - "bundled": true + "bundled": true, + "dev": true }, "right-align": { "version": "0.1.3", "bundled": true, + "dev": true, "optional": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { "version": "2.6.2", "bundled": true, + "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-regex": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "semver": { "version": "5.5.0", - "bundled": true + "bundled": true, + "dev": true }, "set-blocking": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "set-value": { "version": "2.0.0", "bundled": true, + "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" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5955,48 +7361,55 @@ "shebang-command": { "version": "1.2.0", "bundled": true, + "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "signal-exit": { "version": "3.0.2", - "bundled": true + "bundled": true, + "dev": true }, "slide": { "version": "1.1.6", - "bundled": true + "bundled": true, + "dev": true }, "snapdragon": { "version": "0.8.2", "bundled": true, + "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": "3.1.0" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "define-property": { "version": "0.2.5", "bundled": true, + "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -6004,134 +7417,153 @@ "snapdragon-node": { "version": "2.1.1", "bundled": true, + "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" }, "dependencies": { "define-property": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "snapdragon-util": { "version": "3.0.1", "bundled": true, + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "source-map": { "version": "0.5.7", - "bundled": true + "bundled": true, + "dev": true }, "source-map-resolve": { "version": "0.5.1", "bundled": true, + "dev": true, "requires": { - "atob": "2.1.1", - "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": { "version": "0.4.0", - "bundled": true + "bundled": true, + "dev": true }, "spawn-wrap": { "version": "1.4.2", "bundled": true, + "dev": true, "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.0" + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" } }, "spdx-correct": { "version": "3.0.0", "bundled": true, + "dev": true, "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { "version": "2.1.0", - "bundled": true + "bundled": true, + "dev": true }, "spdx-expression-parse": { "version": "3.0.0", "bundled": true, + "dev": true, "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { "version": "3.0.0", - "bundled": true + "bundled": true, + "dev": true }, "split-string": { "version": "3.1.0", "bundled": true, + "dev": true, "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "static-extend": { "version": "0.1.2", "bundled": true, + "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": { "version": "0.2.5", "bundled": true, + "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -6139,20 +7571,23 @@ "string-width": { "version": "2.1.1", "bundled": true, + "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" }, "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true + "bundled": true, + "dev": true }, "strip-ansi": { "version": "4.0.0", "bundled": true, + "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -6160,65 +7595,74 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, + "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { "version": "2.0.0", "bundled": true, + "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-eof": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "supports-color": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "test-exclude": { "version": "4.2.1", "bundled": true, + "dev": true, "requires": { - "arrify": "1.0.1", - "micromatch": "3.1.10", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" + "arrify": "^1.0.1", + "micromatch": "^3.1.8", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" }, "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true + "bundled": true, + "dev": true }, "array-unique": { "version": "0.3.2", - "bundled": true + "bundled": true, + "dev": true }, "braces": { "version": "2.3.2", "bundled": true, + "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -6226,42 +7670,47 @@ "expand-brackets": { "version": "2.1.4", "bundled": true, + "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { "version": "0.2.5", "bundled": true, + "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { "version": "0.1.6", "bundled": true, + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "bundled": true, + "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -6269,15 +7718,17 @@ "is-data-descriptor": { "version": "0.1.4", "bundled": true, + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "bundled": true, + "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -6285,44 +7736,49 @@ "is-descriptor": { "version": "0.1.6", "bundled": true, + "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": { "version": "5.1.0", - "bundled": true + "bundled": true, + "dev": true } } }, "extglob": { "version": "2.0.4", "bundled": true, + "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -6330,18 +7786,20 @@ "fill-range": { "version": "4.0.0", "bundled": true, + "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" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -6349,131 +7807,147 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-number": { "version": "3.0.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "bundled": true, + "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true }, "micromatch": { "version": "3.1.10", "bundled": true, + "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } }, "to-fast-properties": { "version": "1.0.3", - "bundled": true + "bundled": true, + "dev": true }, "to-object-path": { "version": "0.3.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { "version": "3.0.2", "bundled": true, + "dev": true, "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { "version": "2.1.1", "bundled": true, + "dev": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "dependencies": { "is-number": { "version": "3.0.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } } } }, "trim-right": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "uglify-js": { "version": "2.8.29", "bundled": true, + "dev": true, "optional": 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" }, "dependencies": { "yargs": { "version": "3.10.0", "bundled": true, + "dev": true, "optional": 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" } } @@ -6482,33 +7956,37 @@ "uglify-to-browserify": { "version": "1.0.2", "bundled": true, + "dev": true, "optional": true }, "union-value": { "version": "1.0.0", "bundled": true, + "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": { "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { "version": "0.4.3", "bundled": true, + "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" } } } @@ -6516,23 +7994,26 @@ "unset-value": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { "version": "0.3.1", "bundled": true, + "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": { "version": "2.1.0", "bundled": true, + "dev": true, "requires": { "isarray": "1.0.0" } @@ -6541,153 +8022,176 @@ }, "has-values": { "version": "0.1.4", - "bundled": true + "bundled": true, + "dev": true }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "urix": { "version": "0.1.0", - "bundled": true + "bundled": true, + "dev": true }, "use": { "version": "3.1.0", "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "validate-npm-package-license": { "version": "3.0.3", "bundled": true, + "dev": true, "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "which": { "version": "1.3.0", "bundled": true, + "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "window-size": { "version": "0.1.0", "bundled": true, + "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "bundled": true + "bundled": true, + "dev": true }, "wrap-ansi": { "version": "2.1.0", "bundled": true, + "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "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" } } } }, "wrappy": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true }, "write-file-atomic": { "version": "1.3.4", "bundled": true, + "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } }, "y18n": { "version": "3.2.1", - "bundled": true + "bundled": true, + "dev": true }, "yallist": { "version": "2.1.2", - "bundled": true + "bundled": true, + "dev": true }, "yargs": { "version": "11.1.0", "bundled": true, + "dev": true, "requires": { - "cliui": "4.1.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": "9.0.2" + "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": "^9.0.2" }, "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true + "bundled": true, + "dev": true }, "camelcase": { "version": "4.1.0", - "bundled": true + "bundled": true, + "dev": true }, "cliui": { "version": "4.1.0", "bundled": true, + "dev": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" } }, "strip-ansi": { "version": "4.0.0", "bundled": true, + "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "yargs-parser": { "version": "9.0.2", "bundled": true, + "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } @@ -6695,13 +8199,15 @@ "yargs-parser": { "version": "8.1.0", "bundled": true, + "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { "version": "4.1.0", - "bundled": true + "bundled": true, + "dev": true } } } @@ -6728,9 +8234,9 @@ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "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": { @@ -6738,7 +8244,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -6758,7 +8264,7 @@ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" }, "dependencies": { "isobject": { @@ -6774,8 +8280,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "optional": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "object.pick": { @@ -6783,7 +8289,7 @@ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -6798,7 +8304,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -6806,7 +8312,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "optionator": { @@ -6814,17 +8320,17 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" } }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "resolved": "http://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-locale": { @@ -6832,14 +8338,14 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "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" } }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "resolved": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "output-file-sync": { @@ -6847,9 +8353,9 @@ "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", "requires": { - "graceful-fs": "4.1.15", - "mkdirp": "0.5.1", - "object-assign": "4.1.1" + "graceful-fs": "^4.1.4", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.0" } }, "p-finally": { @@ -6862,7 +8368,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -6870,7 +8376,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { - "p-limit": "1.3.0" + "p-limit": "^1.1.0" } }, "p-try": { @@ -6884,10 +8390,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "optional": 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" } }, "parse-json": { @@ -6895,7 +8401,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "1.3.2" + "error-ex": "^1.2.0" } }, "parseqs": { @@ -6903,7 +8409,7 @@ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseuri": { @@ -6911,7 +8417,7 @@ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseurl": { @@ -6930,12 +8436,12 @@ "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": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-is-inside": { @@ -6975,7 +8481,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { - "pify": "2.3.0" + "pify": "^2.0.0" } }, "pathval": { @@ -6989,11 +8495,11 @@ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", "requires": { - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "performance-now": { @@ -7017,7 +8523,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" } }, "pkg-conf": { @@ -7025,8 +8531,8 @@ "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", "requires": { - "find-up": "2.1.0", - "load-json-file": "4.0.0" + "find-up": "^2.0.0", + "load-json-file": "^4.0.0" }, "dependencies": { "find-up": { @@ -7034,7 +8540,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "load-json-file": { @@ -7042,10 +8548,10 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "requires": { - "graceful-fs": "4.1.15", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "parse-json": { @@ -7053,8 +8559,8 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "pify": { @@ -7069,9 +8575,9 @@ "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=", "requires": { - "debug-log": "1.0.1", - "find-root": "1.1.0", - "xtend": "4.0.1" + "debug-log": "^1.0.0", + "find-root": "^1.0.0", + "xtend": "^4.0.1" } }, "pkg-dir": { @@ -7079,7 +8585,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" } }, "pluralize": { @@ -7110,9 +8616,9 @@ "optional": true }, "prettier": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.15.2.tgz", - "integrity": "sha512-YgPLFFA0CdKL4Eg2IHtUSjzj/BWgszDHiNQAe0VAIBse34148whfdzLagRL+QiKS+YfK5ftB6X4v/MBw8yCoug==", + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.15.3.tgz", + "integrity": "sha512-gAU9AGAPMaKb3NNSUUuhhFAS7SCO4ALTN4nRIn6PJ075Qd28Yn2Ig2ahEJWdJwJmlEBTUfC7mMUSFy8MwsOCfg==", "dev": true }, "private": { @@ -7126,17 +8632,17 @@ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" }, "progress": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz", - "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, "prop-types": { "version": "15.6.2", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", "requires": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1" + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" } }, "pseudomap": { @@ -7145,9 +8651,9 @@ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, "psl": { - "version": "1.1.29", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", - "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==", + "version": "1.1.31", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", + "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==", "dev": true }, "punycode": { @@ -7158,10 +8664,10 @@ }, "pushdata-bitcoin": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", + "resolved": "http://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", "integrity": "sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=", "requires": { - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646" + "bitcoin-ops": "^1.3.0" } }, "qrcode": { @@ -7170,10 +8676,10 @@ "integrity": "sha512-sYo+Tf7nx14YZSNPqnyEWefVrjUEpM4/NxOrxOk+jcQ9NhM2LCNuzGmQctDhGTQdO2YJorKY55dypx+hvVo5jw==", "requires": { "can-promise": "0.0.1", - "dijkstrajs": "1.0.1", - "isarray": "2.0.4", - "pngjs": "3.3.3", - "yargs": "8.0.2" + "dijkstrajs": "^1.0.1", + "isarray": "^2.0.1", + "pngjs": "^3.3.0", + "yargs": "^8.0.2" }, "dependencies": { "isarray": { @@ -7194,9 +8700,9 @@ "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", "optional": true, "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.1" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "dependencies": { "is-number": { @@ -7218,7 +8724,7 @@ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.0" } }, "range-parser": { @@ -7232,9 +8738,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "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": { @@ -7242,8 +8748,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" }, "dependencies": { "find-up": { @@ -7251,7 +8757,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } } } @@ -7261,13 +8767,13 @@ "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "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" }, "dependencies": { "inherits": { @@ -7283,9 +8789,9 @@ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "optional": true, "requires": { - "graceful-fs": "4.1.15", - "micromatch": "3.1.10", - "readable-stream": "2.3.6" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" }, "dependencies": { "arr-diff": { @@ -7305,16 +8811,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "optional": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -7323,7 +8829,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "optional": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -7343,13 +8849,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "optional": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -7358,7 +8864,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "optional": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -7367,16 +8873,16 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "optional": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "resolved": "http://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -7385,18 +8891,18 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "optional": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "resolved": "http://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -7405,7 +8911,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "optional": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7416,9 +8922,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "optional": 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": { @@ -7435,14 +8941,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "optional": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { @@ -7451,7 +8957,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "optional": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -7460,7 +8966,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "optional": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -7471,10 +8977,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "optional": 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" }, "dependencies": { "extend-shallow": { @@ -7483,7 +8989,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "optional": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -7494,7 +9000,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "optional": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -7503,7 +9009,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "optional": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -7512,9 +9018,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "optional": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-number": { @@ -7523,7 +9029,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -7532,7 +9038,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "optional": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7554,19 +9060,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "optional": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } @@ -7586,9 +9092,9 @@ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.8" + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" } }, "regex-cache": { @@ -7597,7 +9103,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "optional": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "regex-not": { @@ -7605,8 +9111,8 @@ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "regexpp": { @@ -7617,12 +9123,12 @@ }, "regexpu-core": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "resolved": "http://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "requires": { - "regenerate": "1.4.0", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "regjsgen": { @@ -7635,7 +9141,7 @@ "resolved": "http://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { @@ -7665,7 +9171,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" } }, "repl.history": { @@ -7679,26 +9185,26 @@ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "dev": true, "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.8.0", - "caseless": "0.12.0", - "combined-stream": "1.0.7", - "extend": "3.0.2", - "forever-agent": "0.6.1", - "form-data": "2.3.3", - "har-validator": "5.1.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.21", - "oauth-sign": "0.9.0", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.4.3", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" }, "dependencies": { "qs": { @@ -7721,19 +9227,19 @@ }, "require-uncached": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "resolved": "http://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" } }, "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.9.0.tgz", + "integrity": "sha512-TZNye00tI67lwYvzxCxHGjwTNlUV70io54/Ed4j6PscB8xVfuBJpRenI/o6dVk0cY0PYTY27AgCoGGxRnYuItQ==", "requires": { - "path-parse": "1.0.6" + "path-parse": "^1.0.6" } }, "resolve-from": { @@ -7751,8 +9257,8 @@ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "resumer": { @@ -7760,7 +9266,7 @@ "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", "requires": { - "through": "2.3.8" + "through": "~2.3.4" } }, "ret": { @@ -7773,7 +9279,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "glob": "7.1.3" + "glob": "^7.0.5" } }, "ripemd160": { @@ -7781,8 +9287,8 @@ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.1" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, "run-async": { @@ -7790,7 +9296,7 @@ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, "run-parallel": { @@ -7808,7 +9314,7 @@ "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "requires": { - "rx-lite": "4.0.8" + "rx-lite": "*" } }, "rxjs": { @@ -7817,7 +9323,7 @@ "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", "dev": true, "requires": { - "tslib": "1.9.3" + "tslib": "^1.9.0" } }, "safe-buffer": { @@ -7830,7 +9336,7 @@ "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "safer-buffer": { @@ -7849,7 +9355,7 @@ "resolved": "https://registry.npmjs.org/satoshi-bitcoin/-/satoshi-bitcoin-1.0.4.tgz", "integrity": "sha1-0AK2dwddXLvywhGo3zJUvN9QseQ=", "requires": { - "big.js": "3.2.0" + "big.js": "^3.1.3" } }, "scryptsy": { @@ -7858,18 +9364,18 @@ "integrity": "sha1-Jiw28CMc+nZU4jY/o5TNLexm83g=" }, "secp256k1": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.5.2.tgz", - "integrity": "sha512-iin3kojdybY6NArd+UFsoTuapOF7bnJNf2UbcWXaY3z+E1sJDipl60vtzB5hbO/uquBu7z0fd4VC4Irp+xoFVQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.6.0.tgz", + "integrity": "sha512-a+oKfu2XWhq6Zzj7TexlYpwdnCEtJUUdLaujUclplPkV+INdMaV9D+81wYldm/g4/2PTFoNYZf/+0rHhTPgzjQ==", "requires": { - "bindings": "1.3.1", - "bip66": "1.1.5", - "bn.js": "4.11.8", - "create-hash": "1.2.0", - "drbg.js": "1.0.1", - "elliptic": "6.4.1", - "nan": "2.11.1", - "safe-buffer": "5.1.2" + "bindings": "^1.2.1", + "bip66": "^1.1.3", + "bn.js": "^4.11.3", + "create-hash": "^1.1.2", + "drbg.js": "^1.0.1", + "elliptic": "^6.2.3", + "nan": "^2.2.1", + "safe-buffer": "^5.1.0" } }, "semver": { @@ -7887,10 +9393,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "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" }, "dependencies": { "extend-shallow": { @@ -7898,7 +9404,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -7908,8 +9414,8 @@ "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "shebang-command": { @@ -7917,7 +9423,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -7936,13 +9442,13 @@ "integrity": "sha512-trdx+mB0VBBgoYucy6a9L7/jfQOmvGeaKZT4OOJ+lPAtI8623xyGr8wLiE4eojzBS8G9yXbhx42GHUOVLr4X2w==", "dev": true, "requires": { - "@sinonjs/formatio": "2.0.0", - "diff": "3.5.0", - "lodash.get": "4.4.2", - "lolex": "2.7.5", - "nise": "1.4.6", - "supports-color": "5.5.0", - "type-detect": "4.0.8" + "@sinonjs/formatio": "^2.0.0", + "diff": "^3.1.0", + "lodash.get": "^4.4.2", + "lolex": "^2.2.0", + "nise": "^1.2.0", + "supports-color": "^5.1.0", + "type-detect": "^4.0.5" }, "dependencies": { "supports-color": { @@ -7951,7 +9457,7 @@ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -7966,7 +9472,7 @@ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "requires": { - "is-fullwidth-code-point": "2.0.0" + "is-fullwidth-code-point": "^2.0.0" } }, "snapdragon": { @@ -7974,14 +9480,14 @@ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "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.2", - "use": "3.1.1" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "debug": { @@ -7997,7 +9503,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -8005,7 +9511,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -8016,9 +9522,9 @@ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "optional": 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" }, "dependencies": { "define-property": { @@ -8027,7 +9533,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "optional": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -8036,7 +9542,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "optional": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -8045,7 +9551,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "optional": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -8054,9 +9560,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "optional": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -8078,20 +9584,35 @@ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "socket.io": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", - "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", - "requires": { - "debug": "3.1.0", - "engine.io": "3.2.1", - "has-binary2": "1.0.3", - "socket.io-adapter": "1.1.1", - "socket.io-client": "2.1.1", - "socket.io-parser": "3.2.0" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.2.0.tgz", + "integrity": "sha512-wxXrIuZ8AILcn+f1B4ez4hJTPG24iNgxBBDaJfT6MsyOhVYiTXWexGoPkd87ktJG8kQEcL/NBvRi64+9k4Kc0w==", + "requires": { + "debug": "~4.1.0", + "engine.io": "~3.3.1", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.2.0", + "socket.io-parser": "~3.3.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } } }, "socket.io-adapter": { @@ -8100,33 +9621,33 @@ "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=" }, "socket.io-client": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz", - "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.2.0.tgz", + "integrity": "sha512-56ZrkTDbdTLmBIyfFYesgOxsjcLnwAKoN4CiPyTVkMQj3zTUh0QAx3GbvIvLpFEOvQWu92yyWICxB0u7wkVbYA==", "requires": { "backo2": "1.0.2", "base64-arraybuffer": "0.1.5", "component-bind": "1.0.0", "component-emitter": "1.2.1", - "debug": "3.1.0", - "engine.io-client": "3.2.1", - "has-binary2": "1.0.3", + "debug": "~3.1.0", + "engine.io-client": "~3.3.1", + "has-binary2": "~1.0.2", "has-cors": "1.1.0", "indexof": "0.0.1", "object-component": "0.0.3", "parseqs": "0.0.5", "parseuri": "0.0.5", - "socket.io-parser": "3.2.0", + "socket.io-parser": "~3.3.0", "to-array": "0.1.4" } }, "socket.io-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", - "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz", + "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==", "requires": { "component-emitter": "1.2.1", - "debug": "3.1.0", + "debug": "~3.1.0", "isarray": "2.0.1" }, "dependencies": { @@ -8147,11 +9668,11 @@ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "requires": { - "atob": "2.1.2", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -8159,7 +9680,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } }, "source-map-url": { @@ -8168,12 +9689,12 @@ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, "spdx-correct": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz", - "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.2" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -8186,43 +9707,43 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "2.2.0", - "spdx-license-ids": "3.0.2" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.2.tgz", - "integrity": "sha512-qky9CVt0lVIECkEsYbNILVnPvycuEBkXoMFLRWsREkomQLevYhtRKC+R91a5TOAQ3bCMjikRwhyaRqj1VYatYg==" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz", + "integrity": "sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g==" }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "resolved": "http://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, "sshpk": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.2.tgz", - "integrity": "sha512-Ra/OXQtuh0/enyl4ETZAfTaeksa6BXks5ZcjpSUNrjBr0DvrJKX+1fsKDPpT9TBXgHAFsa4510aNVgI8g/+SzA==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.0.tgz", + "integrity": "sha512-Zhev35/y7hRMcID/upReIvRse+I9SVhyVre/KTJSJQWMz3C3+G+HpO7m1wK/yckEtujKZ7dS4hkVxAnmHaIGVQ==", "dev": true, "requires": { - "asn1": "0.2.4", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.2", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.2", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "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", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" } }, "standard": { @@ -8230,15 +9751,15 @@ "resolved": "http://registry.npmjs.org/standard/-/standard-11.0.1.tgz", "integrity": "sha512-nu0jAcHiSc8H+gJCXeiziMVZNDYi8MuqrYJKxTgjP4xKXZMKm311boqQIzDrYI/ktosltxt2CbDjYQs9ANC8IA==", "requires": { - "eslint": "4.18.2", + "eslint": "~4.18.0", "eslint-config-standard": "11.0.0", "eslint-config-standard-jsx": "5.0.0", - "eslint-plugin-import": "2.9.0", - "eslint-plugin-node": "6.0.1", - "eslint-plugin-promise": "3.7.0", - "eslint-plugin-react": "7.7.0", - "eslint-plugin-standard": "3.0.1", - "standard-engine": "8.0.1" + "eslint-plugin-import": "~2.9.0", + "eslint-plugin-node": "~6.0.0", + "eslint-plugin-promise": "~3.7.0", + "eslint-plugin-react": "~7.7.0", + "eslint-plugin-standard": "~3.0.1", + "standard-engine": "~8.0.0" }, "dependencies": { "ansi-regex": { @@ -8251,43 +9772,43 @@ "resolved": "http://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", "requires": { - "ajv": "5.5.2", - "babel-code-frame": "6.26.0", - "chalk": "2.4.1", - "concat-stream": "1.6.2", - "cross-spawn": "5.1.0", - "debug": "3.1.0", - "doctrine": "2.1.0", - "eslint-scope": "3.7.3", - "eslint-visitor-keys": "1.0.0", - "espree": "3.5.4", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.3", - "globals": "11.9.0", - "ignore": "3.3.10", - "imurmurhash": "0.1.4", - "inquirer": "3.3.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.12.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.1", - "require-uncached": "1.0.3", - "semver": "5.6.0", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.2", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", "table": "4.0.2", - "text-table": "0.2.0" + "text-table": "~0.2.0" } }, "eslint-plugin-node": { @@ -8295,10 +9816,10 @@ "resolved": "http://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz", "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", "requires": { - "ignore": "3.3.10", - "minimatch": "3.0.4", - "resolve": "1.8.1", - "semver": "5.6.0" + "ignore": "^3.3.6", + "minimatch": "^3.0.4", + "resolve": "^1.3.3", + "semver": "^5.4.1" } }, "globals": { @@ -8311,7 +9832,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -8321,10 +9842,10 @@ "resolved": "http://registry.npmjs.org/standard-engine/-/standard-engine-8.0.1.tgz", "integrity": "sha512-LA531C3+nljom/XRvdW/hGPXwmilRkaRkENhO3FAGF1Vtq/WtCXzgmnc5S6vUHHsgv534MRy02C1ikMwZXC+tw==", "requires": { - "deglob": "2.1.1", - "get-stdin": "6.0.0", - "minimist": "1.2.0", - "pkg-conf": "2.1.0" + "deglob": "^2.1.0", + "get-stdin": "^6.0.0", + "minimist": "^1.1.0", + "pkg-conf": "^2.0.0" }, "dependencies": { "minimist": { @@ -8339,8 +9860,8 @@ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { @@ -8348,7 +9869,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -8358,8 +9879,8 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "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" }, "dependencies": { "ansi-regex": { @@ -8372,7 +9893,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -8382,17 +9903,17 @@ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.12.0", - "function-bind": "1.1.1" + "define-properties": "^1.1.2", + "es-abstract": "^1.5.0", + "function-bind": "^1.0.2" } }, "string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -8400,7 +9921,7 @@ "resolved": "http://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": { @@ -8410,7 +9931,7 @@ }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, "strip-json-comments": { @@ -8420,7 +9941,7 @@ }, "supports-color": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "resolved": "http://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" }, "table": { @@ -8428,12 +9949,12 @@ "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "chalk": "2.4.1", - "lodash": "4.17.11", + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "string-width": "^2.1.1" } }, "tape": { @@ -8441,19 +9962,19 @@ "resolved": "https://registry.npmjs.org/tape/-/tape-4.9.1.tgz", "integrity": "sha512-6fKIXknLpoe/Jp4rzHKFPpJUHDHDqn8jus99IfPnHIjyz78HYlefTGD3b5EkbQzuLfaEvmfPK3IolLgq2xT3kw==", "requires": { - "deep-equal": "1.0.1", - "defined": "1.0.0", - "for-each": "0.3.3", - "function-bind": "1.1.1", - "glob": "7.1.3", - "has": "1.0.3", - "inherits": "2.0.3", - "minimist": "1.2.0", - "object-inspect": "1.6.0", - "resolve": "1.7.1", - "resumer": "0.0.0", - "string.prototype.trim": "1.1.2", - "through": "2.3.8" + "deep-equal": "~1.0.1", + "defined": "~1.0.0", + "for-each": "~0.3.3", + "function-bind": "~1.1.1", + "glob": "~7.1.2", + "has": "~1.0.3", + "inherits": "~2.0.3", + "minimist": "~1.2.0", + "object-inspect": "~1.6.0", + "resolve": "~1.7.1", + "resumer": "~0.0.0", + "string.prototype.trim": "~1.1.2", + "through": "~2.3.8" }, "dependencies": { "inherits": { @@ -8468,10 +9989,10 @@ }, "resolve": { "version": "1.7.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", + "resolved": "http://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", "requires": { - "path-parse": "1.0.6" + "path-parse": "^1.0.5" } } } @@ -8497,7 +10018,7 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "to-array": { @@ -8515,7 +10036,7 @@ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { @@ -8523,10 +10044,10 @@ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { @@ -8535,8 +10056,8 @@ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "optional": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "dependencies": { "is-number": { @@ -8545,7 +10066,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } } } @@ -8555,7 +10076,7 @@ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", "requires": { - "nopt": "1.0.10" + "nopt": "~1.0.10" } }, "tough-cookie": { @@ -8564,8 +10085,8 @@ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "dev": true, "requires": { - "psl": "1.1.29", - "punycode": "1.4.1" + "psl": "^1.1.24", + "punycode": "^1.4.1" }, "dependencies": { "punycode": { @@ -8593,7 +10114,7 @@ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -8607,7 +10128,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-detect": { @@ -8623,7 +10144,7 @@ "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.21" + "mime-types": "~2.1.18" } }, "typedarray": { @@ -8632,24 +10153,19 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "typeforce": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.16.0.tgz", - "integrity": "sha512-V60F7OHPH7vPlgIU73vYyeebKxWjQqCTlge+MvKlVn09PIhCOi/ZotowYdgREHB5S1dyHOr906ui6NheYXjlVQ==" - }, - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz", + "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==" }, "union-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "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": { "extend-shallow": { @@ -8657,7 +10173,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { @@ -8665,10 +10181,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "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" } } } @@ -8688,8 +10204,8 @@ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -8697,9 +10213,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "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": { @@ -8730,7 +10246,7 @@ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "requires": { - "punycode": "2.1.1" + "punycode": "^2.1.0" } }, "urix": { @@ -8750,7 +10266,7 @@ }, "util": { "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "resolved": "http://registry.npmjs.org/util/-/util-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "requires": { "inherits": "2.0.1" @@ -8772,7 +10288,7 @@ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "requires": { - "user-home": "1.1.1" + "user-home": "^1.1.1" } }, "validate-npm-package-license": { @@ -8780,8 +10296,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "requires": { - "spdx-correct": "3.0.2", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "varuint-bitcoin": { @@ -8789,7 +10305,7 @@ "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz", "integrity": "sha512-jCEPG+COU/1Rp84neKTyDJQr478/hAfVp5xxYn09QEH0yBjbmPeMfuuQIrp+BUD83hybtYZKhr5elV3bvdV1bA==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.1" } }, "verror": { @@ -8798,9 +10314,9 @@ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": 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" } }, "which": { @@ -8808,7 +10324,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -8821,7 +10337,7 @@ "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", "requires": { - "bs58check": "2.1.2" + "bs58check": "<3.0.0" } }, "window-or-global": { @@ -8839,8 +10355,8 @@ "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -8848,17 +10364,17 @@ "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" } }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "resolved": "http://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" } } } @@ -8873,17 +10389,15 @@ "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.2.tgz", + "integrity": "sha512-rfUqzvz0WxmSXtJpPMX2EeASXabOrSMk1ruMOV3JBTBjo4ac2lDjGGsbQSyxj8Odhw5fBib8ZKEjDNvgouNKYw==", "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.2", - "ultron": "1.1.1" + "async-limiter": "~1.0.0" } }, "xmlhttprequest-ssl": { @@ -8902,28 +10416,28 @@ "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" }, "yallist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" }, "yargs": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.3", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.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": "7.0.0" + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^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": "^7.0.0" } }, "yargs-parser": { @@ -8931,7 +10445,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } }, "yeast": { From 80b188bc2461c0ce85527232ac60ef91acecf1f3 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Thu, 27 Dec 2018 08:12:10 -0800 Subject: [PATCH 150/480] Adding travis yml file --- .travis.yml | 27 +++++++++++++++++++++++++++ package.json | 4 ++++ 2 files changed, 31 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..db14fbf7 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,27 @@ +# This is a node.js v8+ JavaScript project +language: node_js +node_js: + - "10" + +# Build on Ubuntu Xenial (16.04) +# https://docs.travis-ci.com/user/reference/trusty/#javascript-and-nodejs-images +dist: xenial +sudo: required + +# Use Docker +services: + - docker + +before_install: + #- ./install-mongo + #- npm install -g mocha + +# Send coverage data to Coveralls +after_success: + - npm run coverage + +deploy: + provider: script + skip_cleanup: true + script: + # - npx semantic-release diff --git a/package.json b/package.json index cf2ec706..10e36dcd 100644 --- a/package.json +++ b/package.json @@ -3,9 +3,13 @@ "version": "2.2.6", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", + "contributors": [ + "Chris Troutner " + ], "main": "index.js", "scripts": { "test": "nyc mocha --timeout 30000 --require babel-core/register", + "coverage": "nyc report --reporter=text-lcov | coveralls", "build": "babel src/ -d lib/", "postbuild": "cp -R typings/* lib" }, From bd0e03619359a88c1376c36f703f68ea3decc572 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Thu, 27 Dec 2018 09:50:43 -0800 Subject: [PATCH 151/480] fix(semantic-release): adding semantic release --- .travis.yml | 2 +- package-lock.json | 6411 +++++++++++++++++++++++++++++++++++++++++---- package.json | 1 + 3 files changed, 5845 insertions(+), 569 deletions(-) diff --git a/.travis.yml b/.travis.yml index db14fbf7..2b0a2eaa 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,4 +24,4 @@ deploy: provider: script skip_cleanup: true script: - # - npx semantic-release + - npx semantic-release diff --git a/package-lock.json b/package-lock.json index 27dfe5e2..7e95b3a2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -142,6 +142,277 @@ } } }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "dev": true + }, + "@octokit/endpoint": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-3.1.1.tgz", + "integrity": "sha512-KPkoTvKwCTetu/UqonLs1pfwFO5HAqTv/Ksp9y4NAg//ZgUCpvJsT4Hrst85uEzJvkB8+LxKyR4Bfv2X8O4cmQ==", + "dev": true, + "requires": { + "deepmerge": "3.0.0", + "is-plain-object": "^2.0.4", + "universal-user-agent": "^2.0.1", + "url-template": "^2.0.8" + } + }, + "@octokit/request": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-2.2.0.tgz", + "integrity": "sha512-4P9EbwKZ4xfyupVMb3KVuHmM+aO2fye3nufjGKz/qDssvdJj9Rlx44O0FdFvUp4kIzToy3AHLTOulEIDAL+dpg==", + "dev": true, + "requires": { + "@octokit/endpoint": "^3.0.0", + "is-plain-object": "^2.0.4", + "node-fetch": "^2.3.0", + "universal-user-agent": "^2.0.1" + } + }, + "@octokit/rest": { + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.3.0.tgz", + "integrity": "sha512-u0HkROLB0nOSfJhkF5FKMg6I12m6cN5S3S73Lwtfgrs9u4LhgUCZN2hC2KDyIaT7nhvNe9Kx0PgxhhD6li6QsA==", + "dev": true, + "requires": { + "@octokit/request": "2.2.0", + "before-after-hook": "^1.2.0", + "btoa-lite": "^1.0.0", + "lodash.get": "^4.4.2", + "lodash.pick": "^4.4.0", + "lodash.set": "^4.3.2", + "lodash.uniq": "^4.5.0", + "octokit-pagination-methods": "^1.1.0", + "universal-user-agent": "^2.0.0", + "url-template": "^2.0.8" + } + }, + "@semantic-release/commit-analyzer": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-6.1.0.tgz", + "integrity": "sha512-2lb+t6muGenI86mYGpZYOgITx9L3oZYF697tJoqXeQEk0uw0fm+OkkOuDTBA3Oax9ftoNIrCKv9bwgYvxrbM6w==", + "dev": true, + "requires": { + "conventional-changelog-angular": "^5.0.0", + "conventional-commits-filter": "^2.0.0", + "conventional-commits-parser": "^3.0.0", + "debug": "^4.0.0", + "import-from": "^2.1.0", + "lodash": "^4.17.4" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "@semantic-release/error": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-2.2.0.tgz", + "integrity": "sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg==", + "dev": true + }, + "@semantic-release/github": { + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-5.2.7.tgz", + "integrity": "sha512-cWQhM9bdBv8KAwClmwM64Mo3vsOHVM2aJAGI6K3qbJfJ3GsLJLh1hTi+rMd5EkZ2DA8zUUHCiAJZ3ujMvUB0yg==", + "dev": true, + "requires": { + "@octokit/rest": "^16.0.1", + "@semantic-release/error": "^2.2.0", + "aggregate-error": "^1.0.0", + "bottleneck": "^2.0.1", + "debug": "^4.0.0", + "dir-glob": "^2.0.0", + "fs-extra": "^7.0.0", + "globby": "^8.0.0", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "issue-parser": "^3.0.0", + "lodash": "^4.17.4", + "mime": "^2.0.3", + "p-filter": "^1.0.0", + "p-retry": "^3.0.0", + "parse-github-url": "^1.0.1", + "url-join": "^4.0.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "mime": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz", + "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "@semantic-release/npm": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-5.1.2.tgz", + "integrity": "sha512-hAt8Q86jjp0AiykihhZ7vuCFKYz0j8v3W6Jae8b+RCLi8IUofrPF1ZImx3oY0rRu8ZZSb4aU9uxtFmeOYZebjg==", + "dev": true, + "requires": { + "@semantic-release/error": "^2.2.0", + "aggregate-error": "^1.0.0", + "execa": "^1.0.0", + "fs-extra": "^7.0.0", + "lodash": "^4.17.4", + "nerf-dart": "^1.0.0", + "normalize-url": "^4.0.0", + "npm": "^6.3.0", + "rc": "^1.2.8", + "read-pkg": "^4.0.0", + "registry-auth-token": "^3.3.1" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.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" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "read-pkg": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz", + "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=", + "dev": true, + "requires": { + "normalize-package-data": "^2.3.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0" + } + } + } + }, + "@semantic-release/release-notes-generator": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-7.1.4.tgz", + "integrity": "sha512-pWPouZujddgb6t61t9iA9G3yIfp3TeQ7bPbV1ixYSeP6L7gI1+Du82fY/OHfEwyifpymLUQW0XnIKgKct5IMMw==", + "dev": true, + "requires": { + "conventional-changelog-angular": "^5.0.0", + "conventional-changelog-writer": "^4.0.0", + "conventional-commits-filter": "^2.0.0", + "conventional-commits-parser": "^3.0.0", + "debug": "^4.0.0", + "get-stream": "^4.0.0", + "import-from": "^2.1.0", + "into-stream": "^4.0.0", + "lodash": "^4.17.4" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, "@sinonjs/commons": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.3.0.tgz", @@ -171,6 +442,16 @@ "lodash.get": "^4.4.2" } }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -210,6 +491,25 @@ "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" }, + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "aggregate-error": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-1.0.0.tgz", + "integrity": "sha1-iINE2tAiCnLjr1CQYRf0h3GSX6w=", + "dev": true, + "requires": { + "clean-stack": "^1.0.0", + "indent-string": "^3.0.0" + } + }, "ajv": { "version": "5.5.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", @@ -241,6 +541,12 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, + "ansicolors": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", + "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=", + "dev": true + }, "anymatch": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", @@ -259,6 +565,12 @@ "sprintf-js": "~1.0.2" } }, + "argv-formatter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/argv-formatter/-/argv-formatter-1.0.0.tgz", + "integrity": "sha1-oMoMvCmltz6Dbuvhy/bF4OTrgvk=", + "dev": true + }, "arr-diff": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", @@ -278,12 +590,24 @@ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, "array-from": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=", "dev": true }, + "array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", + "dev": true + }, "array-includes": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", @@ -293,6 +617,21 @@ "es-abstract": "^1.7.0" } }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, "array-unique": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", @@ -304,6 +643,12 @@ "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", @@ -344,6 +689,15 @@ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", "dev": true }, + "async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + } + }, "async-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", @@ -1186,6 +1540,12 @@ "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.3.tgz", "integrity": "sha512-yuVFUvrNcoJi0sv5phmqc6P+Fl1HjRDRNOOkHY2X/3LBy2bIGNSFx4fZ95HMaXHupuS7cZR15AsvtmCIF4UEyg==" }, + "before-after-hook": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-1.3.0.tgz", + "integrity": "sha512-cKJpHP2JckjiWgJCSASD7np08Et+wA+rFVvdwNfCciDHd9IWfa9C2hcwY8o2i5yCFc9E+jhAcKUN9KFgPqi3zA==", + "dev": true + }, "better-assert": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", @@ -2342,6 +2702,12 @@ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" }, + "bottleneck": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.14.1.tgz", + "integrity": "sha512-FAZr9OekUbx/lCGY/Sok2QOFOy3exRWRcjVJfmHrh3J9UoIaLHT0E+TwhXTIPmKS8JHuX6i/eH/kmhhHBEx7DQ==", + "dev": true + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -2413,6 +2779,12 @@ "safe-buffer": "^5.1.2" } }, + "btoa-lite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", + "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=", + "dev": true + }, "buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", @@ -2465,6 +2837,29 @@ } } }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "requires": { + "callsites": "^2.0.0" + }, + "dependencies": { + "callsites": { + "version": "2.0.0", + "resolved": "http://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + } + } + }, "caller-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", @@ -2488,6 +2883,17 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, + "camelcase-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", + "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", + "dev": true, + "requires": { + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.0.0" + } + }, "can-promise": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/can-promise/-/can-promise-0.0.1.tgz", @@ -2501,6 +2907,16 @@ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000923.tgz", "integrity": "sha512-j5ur7eeluOFjjPUkydtXP4KFAsmH3XaQNch5tvWSO+dLHYt5PE+VgJZLWtbVOodfWij6m6zas28T4gB/cLYq1w==" }, + "cardinal": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", + "integrity": "sha1-fMEFXYItISlU0HsIXeolHMe8VQU=", + "dev": true, + "requires": { + "ansicolors": "~0.3.2", + "redeyed": "~2.1.0" + } + }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", @@ -2625,6 +3041,12 @@ } } }, + "clean-stack": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-1.3.0.tgz", + "integrity": "sha1-noIVAa6XmYbEax1m0tQy2y/UrjE=", + "dev": true + }, "clear": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/clear/-/clear-0.0.1.tgz", @@ -2638,6 +3060,15 @@ "restore-cursor": "^2.0.0" } }, + "cli-table": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", + "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", + "dev": true, + "requires": { + "colors": "1.0.3" + } + }, "cli-width": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", @@ -2712,6 +3143,12 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, + "colors": { + "version": "1.0.3", + "resolved": "http://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, "combined-stream": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", @@ -2726,6 +3163,16 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==" }, + "compare-func": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz", + "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=", + "dev": true, + "requires": { + "array-ify": "^1.0.0", + "dot-prop": "^3.0.0" + } + }, "component-bind": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", @@ -2769,12 +3216,65 @@ "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=" }, - "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "conventional-changelog-angular": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.2.tgz", + "integrity": "sha512-yx7m7lVrXmt4nKWQgWZqxSALEiAKZhOAcbxdUaU9575mB0CzXVbgrgpfSnSP7OqWDUTYGD0YVJ0MSRdyOPgAwA==", + "dev": true, "requires": { - "safe-buffer": "~5.1.1" + "compare-func": "^1.3.1", + "q": "^1.5.1" + } + }, + "conventional-changelog-writer": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.2.tgz", + "integrity": "sha512-d8/FQY/fix2xXEBUhOo8u3DCbyEw3UOQgYHxLsPDw+wHUDma/GQGAGsGtoH876WyNs32fViHmTOUrgRKVLvBug==", + "dev": true, + "requires": { + "compare-func": "^1.3.1", + "conventional-commits-filter": "^2.0.1", + "dateformat": "^3.0.0", + "handlebars": "^4.0.2", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.2.1", + "meow": "^4.0.0", + "semver": "^5.5.0", + "split": "^1.0.0", + "through2": "^2.0.0" + } + }, + "conventional-commits-filter": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.1.tgz", + "integrity": "sha512-92OU8pz/977udhBjgPEbg3sbYzIxMDFTlQT97w7KdhR9igNqdJvy8smmedAAgn4tPiqseFloKkrVfbXCVd+E7A==", + "dev": true, + "requires": { + "is-subset": "^0.1.1", + "modify-values": "^1.0.0" + } + }, + "conventional-commits-parser": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.0.1.tgz", + "integrity": "sha512-P6U5UOvDeidUJ8ebHVDIoXzI7gMlQ1OF/id6oUvp8cnZvOXMt1n8nYl74Ey9YMn0uVQtxmCtjPQawpsssBWtGg==", + "dev": true, + "requires": { + "JSONStream": "^1.0.4", + "is-text-path": "^1.0.0", + "lodash": "^4.2.1", + "meow": "^4.0.0", + "split2": "^2.0.0", + "through2": "^2.0.0", + "trim-off-newlines": "^1.0.0" + } + }, + "convert-source-map": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "requires": { + "safe-buffer": "~5.1.1" } }, "cookie": { @@ -2797,6 +3297,30 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, + "cosmiconfig": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.7.tgz", + "integrity": "sha512-PcLqxTKiDmNT6pSpy4N6KtuPwb53W+2tzNvwOZw0WH9N6O0vLIBq0x8aj8Oj75ere4YcGi48bDFCL+3fRJdlNA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.9.0", + "parse-json": "^4.0.0" + }, + "dependencies": { + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + } + } + }, "coveralls": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.0.2.tgz", @@ -2873,6 +3397,15 @@ "which": "^1.2.9" } }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -2882,6 +3415,12 @@ "assert-plus": "^1.0.0" } }, + "dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "dev": true + }, "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", @@ -2900,6 +3439,24 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, + "decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "dev": true, + "requires": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + } + } + }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", @@ -2919,11 +3476,23 @@ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" }, + "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==", + "dev": true + }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, + "deepmerge": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.0.0.tgz", + "integrity": "sha512-a8z8bkgHsAML+uHLqmMS83HHlpy3PvZOOuiTQqaa3wu8ZVg3h0hqHk6aCsGdOnZV2XMM/FRimNGjUh0KCcmHBw==", + "dev": true + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -3028,6 +3597,33 @@ "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.1.tgz", "integrity": "sha1-082BIh4+pAdCz83lVtTpnpjdxxs=" }, + "dir-glob": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "path-type": "^3.0.0" + }, + "dependencies": { + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, "doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", @@ -3036,6 +3632,15 @@ "esutils": "^2.0.2" } }, + "dot-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", + "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=", + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, "drbg.js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", @@ -3046,6 +3651,15 @@ "create-hmac": "^1.1.4" } }, + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "dev": true, + "requires": { + "readable-stream": "^2.0.2" + } + }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -3084,6 +3698,15 @@ "minimalistic-crypto-utils": "^1.0.0" } }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, "engine.io": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.3.2.tgz", @@ -3127,6 +3750,55 @@ "has-binary2": "~1.0.2" } }, + "env-ci": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-3.1.3.tgz", + "integrity": "sha512-4NudFu3oUCNprsGkt/LmvqAwJlzX9QT8289AavXiDH1pBJuEd4n0ty98yUOWN3uFtjOhOGrmt1/FDKFxCewejw==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "java-properties": "^0.2.9" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.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" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + } + } + }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -3157,6 +3829,21 @@ "is-symbol": "^1.0.2" } }, + "es6-promise": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz", + "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==", + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "http://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -3728,619 +4415,1004 @@ "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", "dev": true }, - "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=" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "figlet": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.2.1.tgz", - "integrity": "sha512-qc8gycfnnfOmfvPl7Fi3JeTbcvdmbZkckyUVGGAM02je7Ookvu+bBfKy1I4FKqTsQHCs3ARJ76ip/k98r+OQuQ==" - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", - "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" - } - }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "optional": true - }, - "fill-range": { + "fast-glob": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", - "optional": true, - "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" - } - }, - "find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "flat-cache": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", - "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", - "requires": { - "circular-json": "^0.3.1", - "graceful-fs": "^4.1.2", - "rimraf": "~2.6.2", - "write": "^0.2.1" - } - }, - "follow-redirects": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.6.0.tgz", - "integrity": "sha512-4Oh4eI3S9OueVV41AgJ1oLjpaJUhbJ7JDGOMhe0AFqoSejl5Q2nn3eGglAzRUKVKZE8jG5MNn66TjCJMAnpsWA==", - "requires": { - "debug": "=3.1.0" - } - }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "requires": { - "is-callable": "^1.1.3" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "optional": true, - "requires": { - "for-in": "^1.0.1" - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.4.tgz", + "integrity": "sha512-FjK2nCGI/McyzgNtTESqaWP3trPvHyRyoyY70hxjc3oKPNmDe8taohLZpoVKoUjW85tbU5txaYUZCNtVzygl1g==", "dev": true, "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", - "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", - "optional": true, - "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" }, "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "bundled": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true }, - "balanced-match": { - "version": "1.0.0", - "bundled": true + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "chownr": { - "version": "1.0.1", - "bundled": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, "debug": { "version": "2.6.9", - "bundled": true, - "optional": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "requires": { "ms": "2.0.0" } }, - "deep-extend": { - "version": "0.5.1", - "bundled": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "optional": true, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, "requires": { - "minipass": "^2.2.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": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "http://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "http://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } } }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "optional": true, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, "requires": { - "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, - "optional": true, - "requires": { - "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": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.21", - "bundled": true, - "optional": true, - "requires": { - "safer-buffer": "^2.1.0" + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "optional": true, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, "requires": { - "minimatch": "^3.0.4" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "optional": true, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } } }, - "inherits": { - "version": "2.0.3", - "bundled": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "optional": true - }, - "is-fullwidth-code-point": { + "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "kind-of": "^6.0.0" } }, - "isarray": { + "is-data-descriptor": { "version": "1.0.0", - "bundled": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true - }, - "minipass": { - "version": "2.2.4", - "bundled": true, - "requires": { - "safe-buffer": "^5.1.1", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.1.0", - "bundled": true, - "optional": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, "requires": { - "minipass": "^2.2.1" + "kind-of": "^6.0.0" } }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, "requires": { - "minimist": "0.0.8" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, - "ms": { - "version": "2.0.0", - "bundled": true, - "optional": true + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true }, - "needle": { - "version": "2.2.0", - "bundled": true, - "optional": true, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, "requires": { - "debug": "^2.1.2", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" + "is-extglob": "^2.1.1" } }, - "node-pre-gyp": { - "version": "0.10.0", - "bundled": true, - "optional": true, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": 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" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true }, - "npm-bundled": { - "version": "1.0.3", - "bundled": true, - "optional": true + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true }, - "npm-packlist": { - "version": "1.1.10", - "bundled": true, - "optional": true, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": 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" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } + } + } + }, + "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=" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "figlet": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.2.1.tgz", + "integrity": "sha512-qc8gycfnnfOmfvPl7Fi3JeTbcvdmbZkckyUVGGAM02je7Ookvu+bBfKy1I4FKqTsQHCs3ARJ76ip/k98r+OQuQ==" + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "requires": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "optional": true + }, + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "optional": true, + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "find-versions": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.0.0.tgz", + "integrity": "sha512-IUvtItVFNmTtKoB0PRfbkR0zR9XMG5rWNO3qI1S8L0zdv+v2gqzM0pAunloxqbqAfT8w7bg8n/5gHzTXte8H5A==", + "dev": true, + "requires": { + "array-uniq": "^2.0.0", + "semver-regex": "^2.0.0" + }, + "dependencies": { + "array-uniq": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-2.0.0.tgz", + "integrity": "sha512-O3QZEr+3wDj7otzF7PjNGs6CA3qmYMLvt5xGkjY/V0VxS+ovvqVo/5wKM/OVOAyuX4DTh9H31zE/yKtO66hTkg==", + "dev": true + } + } + }, + "flat-cache": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", + "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", + "requires": { + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" + } + }, + "follow-redirects": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.6.0.tgz", + "integrity": "sha512-4Oh4eI3S9OueVV41AgJ1oLjpaJUhbJ7JDGOMhe0AFqoSejl5Q2nn3eGglAzRUKVKZE8jG5MNn66TjCJMAnpsWA==", + "requires": { + "debug": "=3.1.0" + } + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "requires": { + "is-callable": "^1.1.3" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "optional": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "optional": true, + "requires": { + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "optional": true }, - "number-is-nan": { - "version": "1.0.1", + "ansi-regex": { + "version": "2.1.1", "bundled": true }, - "object-assign": { - "version": "4.1.1", + "aproba": { + "version": "1.2.0", "bundled": true, "optional": true }, - "once": { - "version": "1.4.0", + "are-we-there-yet": { + "version": "1.1.4", "bundled": true, + "optional": true, "requires": { - "wrappy": "1" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", + "balanced-match": { + "version": "1.0.0", "bundled": true, "optional": true }, - "osenv": { - "version": "0.1.5", + "brace-expansion": { + "version": "1.1.11", "bundled": true, "optional": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "path-is-absolute": { + "chownr": { "version": "1.0.1", "bundled": true, "optional": true }, - "process-nextick-args": { - "version": "2.0.0", + "code-point-at": { + "version": "1.1.0", "bundled": true, "optional": true }, - "rc": { - "version": "1.2.7", + "concat-map": { + "version": "0.0.1", "bundled": true, - "optional": true, - "requires": { - "deep-extend": "^0.5.1", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "optional": true - } - } + "optional": true }, - "readable-stream": { - "version": "2.3.6", + "console-control-strings": { + "version": "1.1.0", "bundled": true, - "optional": true, - "requires": { - "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" + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "optional": true, + "requires": { + "ms": "2.0.0" } }, - "rimraf": { - "version": "2.6.2", + "deep-extend": { + "version": "0.5.1", + "bundled": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", "bundled": true, "optional": true, "requires": { - "glob": "^7.0.5" + "minipass": "^2.2.1" } }, - "safe-buffer": { - "version": "5.1.1", - "bundled": true + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "optional": true }, - "safer-buffer": { - "version": "2.1.2", + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": true, + "requires": { + "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, + "optional": true, + "requires": { + "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": { + "version": "2.0.1", "bundled": true, "optional": true }, - "sax": { - "version": "1.2.4", + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "optional": true, + "requires": { + "safer-buffer": "^2.1.0" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", "bundled": true, "optional": true }, - "semver": { - "version": "5.5.0", + "ini": { + "version": "1.3.5", "bundled": true, "optional": true }, - "set-blocking": { - "version": "2.0.0", + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", "bundled": true, "optional": true }, - "signal-exit": { - "version": "3.0.2", + "minimatch": { + "version": "3.0.4", + "bundled": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "requires": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", "bundled": true, "optional": true }, - "string-width": { - "version": "1.0.2", + "needle": { + "version": "2.2.0", "bundled": true, + "optional": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, - "string_decoder": { - "version": "1.1.1", + "node-pre-gyp": { + "version": "0.10.0", "bundled": true, "optional": true, "requires": { - "safe-buffer": "~5.1.0" + "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" } }, - "strip-ansi": { - "version": "3.0.1", + "nopt": { + "version": "4.0.1", "bundled": true, + "optional": true, "requires": { - "ansi-regex": "^2.0.0" + "abbrev": "1", + "osenv": "^0.1.4" } }, - "strip-json-comments": { - "version": "2.0.1", + "npm-bundled": { + "version": "1.0.3", "bundled": true, "optional": true }, - "tar": { - "version": "4.4.1", + "npm-packlist": { + "version": "1.1.10", "bundled": true, "optional": true, "requires": { - "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" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, - "util-deprecate": { - "version": "1.0.2", + "npmlog": { + "version": "4.1.2", + "bundled": 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": { + "version": "1.0.1", "bundled": true, "optional": true }, - "wide-align": { - "version": "1.1.2", + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", "bundled": true, "optional": true, "requires": { - "string-width": "^1.0.2" + "wrappy": "1" } }, - "wrappy": { + "os-homedir": { "version": "1.0.2", - "bundled": true + "bundled": true, + "optional": true }, - "yallist": { - "version": "3.0.2", - "bundled": true - } - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.7", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "optional": true, + "requires": { + "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.2", + "bundled": true, + "optional": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "optional": true + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "optional": true, + "requires": { + "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" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "optional": true, + "requires": { + "string-width": "^1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true + } + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "functional-red-black-tree": { "version": "1.0.1", @@ -4387,6 +5459,31 @@ "resolved": "https://registry.npmjs.org/git-clone/-/git-clone-0.1.0.tgz", "integrity": "sha1-DXYWN3gJOu9/HDAjjyqe8/B6Lrk=" }, + "git-log-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.0.tgz", + "integrity": "sha1-LmpMGxP8AAKCB7p5WnrDFme5/Uo=", + "dev": true, + "requires": { + "argv-formatter": "~1.0.0", + "spawn-error-forwarder": "~1.0.0", + "split2": "~1.0.0", + "stream-combiner2": "~1.1.1", + "through2": "~2.0.0", + "traverse": "~0.6.6" + }, + "dependencies": { + "split2": { + "version": "1.0.0", + "resolved": "http://registry.npmjs.org/split2/-/split2-1.0.0.tgz", + "integrity": "sha1-UuLiIdiMdfmnP5BVbiY/+WdysxQ=", + "dev": true, + "requires": { + "through2": "~2.0.0" + } + } + } + }, "glob": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", @@ -4418,11 +5515,40 @@ "is-glob": "^2.0.0" } }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, "globals": { "version": "9.18.0", "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" }, + "globby": { + "version": "8.0.1", + "resolved": "http://registry.npmjs.org/globby/-/globby-8.0.1.tgz", + "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, "graceful-fs": { "version": "4.1.15", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", @@ -4434,6 +5560,26 @@ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, + "handlebars": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.12.tgz", + "integrity": "sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA==", + "dev": true, + "requires": { + "async": "^2.5.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" + }, + "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 + } + } + }, "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", @@ -4626,11 +5772,27 @@ "os-tmpdir": "^1.0.1" } }, + "hook-std": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hook-std/-/hook-std-1.2.0.tgz", + "integrity": "sha512-yntre2dbOAjgQ5yoRykyON0D9T96BfshR8IuiL/r3celeHD8I/76w4qo8m3z99houR4Z678jakV3uXrQdSvW/w==", + "dev": true + }, "hosted-git-info": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" }, + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "dev": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + } + }, "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", @@ -4642,6 +5804,16 @@ "sshpk": "^1.7.0" } }, + "https-proxy-agent": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", + "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", + "dev": true, + "requires": { + "agent-base": "^4.1.0", + "debug": "^3.1.0" + } + }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -4660,11 +5832,61 @@ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "dependencies": { + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true + }, "indexof": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", @@ -4725,6 +5947,16 @@ } } }, + "into-stream": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-4.0.0.tgz", + "integrity": "sha512-i29KNyE5r0Y/UQzcQ0IbZO1MYJ53Jn0EcFRZPj5FzWKYH17kDFEOwuA+3jroymOI06SW1dEDnly9A1CAreC5dg==", + "dev": true, + "requires": { + "from2": "^2.1.1", + "p-is-promise": "^2.0.0" + } + }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -4808,6 +6040,12 @@ } } }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, "is-dotfile": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", @@ -4863,8 +6101,20 @@ "kind-of": "^3.0.2" } }, - "is-plain-object": { - "version": "2.0.4", + "is-obj": { + "version": "1.0.1", + "resolved": "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { @@ -4913,6 +6163,12 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, + "is-subset": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", + "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=", + "dev": true + }, "is-symbol": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", @@ -4921,6 +6177,15 @@ "has-symbols": "^1.0.0" } }, + "is-text-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", + "dev": true, + "requires": { + "text-extensions": "^1.0.0" + } + }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -4930,8 +6195,7 @@ "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "optional": true + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" }, "isarray": { "version": "1.0.0", @@ -4958,6 +6222,19 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, + "issue-parser": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-3.0.1.tgz", + "integrity": "sha512-5wdT3EE8Kq38x/hJD8QZCJ9scGoOZ5QnzwXyClkviSWTS+xOCE6hJ0qco3H5n5jCsFqpbofZCcMWqlXJzF72VQ==", + "dev": true, + "requires": { + "lodash.capitalize": "^4.2.1", + "lodash.escaperegexp": "^4.1.2", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.uniqby": "^4.7.0" + } + }, "istanbul-lib-coverage": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", @@ -4977,6 +6254,12 @@ "semver": "^5.5.0" } }, + "java-properties": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-0.2.10.tgz", + "integrity": "sha512-CpKJh9VRNhS+XqZtg1UMejETGEiqwCGDC/uwPEEQwc2nfdbSm73SIE29TplG2gLYuBOOTNDqxzG6A9NtEPLt0w==", + "dev": true + }, "jest-docblock": { "version": "21.2.0", "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz", @@ -5040,6 +6323,21 @@ "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true + }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -5147,17 +6445,71 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" }, + "lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", + "dev": true + }, + "lodash.capitalize": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz", + "integrity": "sha1-+CbJtOKoUR2E46yinbBeGk87cqk=", + "dev": true + }, + "lodash.escaperegexp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", + "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=", + "dev": true + }, "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", "dev": true }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", + "dev": true + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", + "dev": true + }, + "lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", + "dev": true + }, + "lodash.set": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", + "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", + "dev": true + }, "lodash.toarray": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=" }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "lodash.uniqby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", + "integrity": "sha1-2ZwHpmnp5tJOE2Lf4mbGdhavEwI=", + "dev": true + }, "log-driver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", @@ -5178,6 +6530,16 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, "lru-cache": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", @@ -5187,6 +6549,12 @@ "yallist": "^2.1.2" } }, + "macos-release": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.0.0.tgz", + "integrity": "sha512-iCM3ZGeqIzlrH7KxYK+fphlJpCCczyHXc+HhRVbEu9uNTCrzYJjvvtefzeKTCVHd5AP/aD/fzC80JZ4ZP+dQ/A==", + "dev": true + }, "make-dir": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", @@ -5202,11 +6570,26 @@ } } }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, + "map-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", + "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", + "dev": true + }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", @@ -5215,6 +6598,25 @@ "object-visit": "^1.0.0" } }, + "marked": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.5.2.tgz", + "integrity": "sha512-fdZvBa7/vSQIZCi4uuwo2N3q+7jJURpMVCcbaX0S1Mg65WZ5ilXvC67MviJAsdjqqgD+CEq4RKo5AYGgINkVAA==", + "dev": true + }, + "marked-terminal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-3.1.1.tgz", + "integrity": "sha512-7UBFww1rdx0w9HehLMCVYa8/AxXaiDigDfMsJcj82/wgLQG9cj+oiMAVlJpeWD57VFJY2OYY+bKeEVIjIlxi+w==", + "dev": true, + "requires": { + "cardinal": "^2.1.1", + "chalk": "^2.4.1", + "cli-table": "^0.3.1", + "lodash.assign": "^4.2.0", + "node-emoji": "^1.4.1" + } + }, "math-random": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", @@ -5245,12 +6647,110 @@ "mimic-fn": "^1.0.0" } }, + "meow": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", + "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", + "dev": true, + "requires": { + "camelcase-keys": "^4.0.0", + "decamelize-keys": "^1.0.0", + "loud-rejection": "^1.0.0", + "minimist": "^1.1.3", + "minimist-options": "^3.0.1", + "normalize-package-data": "^2.3.4", + "read-pkg-up": "^3.0.0", + "redent": "^2.0.0", + "trim-newlines": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + } + } + } + }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", "dev": true }, + "merge2": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz", + "integrity": "sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==", + "dev": true + }, "merkle-lib": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/merkle-lib/-/merkle-lib-2.0.10.tgz", @@ -5330,6 +6830,16 @@ "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, + "minimist-options": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", + "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0" + } + }, "mixin-deep": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", @@ -5407,6 +6917,12 @@ } } }, + "modify-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", + "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", + "dev": true + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -5426,7 +6942,6 @@ "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "optional": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -5444,20 +6959,17 @@ "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "optional": true + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "optional": true + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "optional": true + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, @@ -5471,6 +6983,12 @@ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" }, + "nerf-dart": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/nerf-dart/-/nerf-dart-1.0.0.tgz", + "integrity": "sha1-5tq3/r9a2Bbqgc9cYpxaDr3nLBo=", + "dev": true + }, "nested-error-stacks": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", @@ -5507,69 +7025,3181 @@ "integrity": "sha512-ZAR2bPHOl4Xg6eklUGpsdiIJ4+J1SNag1DHHrG/73Uz/nVwXqjgUtRPLoS+aVyieN9cSbc0E4LsU984tWcDyNg==", "dev": true, "requires": { - "@sinonjs/samsam": "^2 || ^3" + "@sinonjs/samsam": "^2 || ^3" + } + } + } + }, + "node-cmd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/node-cmd/-/node-cmd-3.0.0.tgz", + "integrity": "sha1-OP/3CkqqT2WdID61eGJzcBjiT28=" + }, + "node-emoji": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", + "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", + "requires": { + "lodash.toarray": "^4.4.0" + } + }, + "node-fetch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.3.0.tgz", + "integrity": "sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA==", + "dev": true + }, + "node-mocks-http": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-mocks-http/-/node-mocks-http-1.7.3.tgz", + "integrity": "sha512-wayzLNhEroH3lJj113pFKQ1cd1GKG1mXoZR1HcKp/o9a9lTGGgVY/hYeLajiIFr/z4tXFKOdfJickqqihBtn9g==", + "dev": true, + "requires": { + "accepts": "^1.3.5", + "depd": "^1.1.0", + "fresh": "^0.5.2", + "merge-descriptors": "^1.0.1", + "methods": "^1.1.2", + "mime": "^1.3.4", + "net": "^1.0.2", + "parseurl": "^1.3.1", + "range-parser": "^1.2.0", + "type-is": "^1.6.16" + } + }, + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "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.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "normalize-url": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.1.0.tgz", + "integrity": "sha512-X781mkWeK6PDMAZJfGn/wnwil4dV6pIdF9euiNqtA89uJvZuNDJO2YyJxiwpPhTQcF5pYUU1v+kcOxzYV6rZlA==", + "dev": true + }, + "npm": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/npm/-/npm-6.5.0.tgz", + "integrity": "sha512-SPq8zG2Kto+Xrq55E97O14Jla13PmQT5kSnvwBj88BmJZ5Nvw++OmlWfhjkB67pcgP5UEXljEtnGFKZtOgt6MQ==", + "dev": true, + "requires": { + "JSONStream": "^1.3.4", + "abbrev": "~1.1.1", + "ansicolors": "~0.3.2", + "ansistyles": "~0.1.3", + "aproba": "~1.2.0", + "archy": "~1.0.0", + "bin-links": "^1.1.2", + "bluebird": "^3.5.3", + "byte-size": "^4.0.3", + "cacache": "^11.2.0", + "call-limit": "~1.1.0", + "chownr": "~1.0.1", + "ci-info": "^1.6.0", + "cli-columns": "^3.1.2", + "cli-table3": "^0.5.0", + "cmd-shim": "~2.0.2", + "columnify": "~1.5.4", + "config-chain": "^1.1.12", + "debuglog": "*", + "detect-indent": "~5.0.0", + "detect-newline": "^2.1.0", + "dezalgo": "~1.0.3", + "editor": "~1.0.0", + "figgy-pudding": "^3.5.1", + "find-npm-prefix": "^1.0.2", + "fs-vacuum": "~1.2.10", + "fs-write-stream-atomic": "~1.0.10", + "gentle-fs": "^2.0.1", + "glob": "^7.1.3", + "graceful-fs": "^4.1.15", + "has-unicode": "~2.0.1", + "hosted-git-info": "^2.7.1", + "iferr": "^1.0.2", + "imurmurhash": "*", + "inflight": "~1.0.6", + "inherits": "~2.0.3", + "ini": "^1.3.5", + "init-package-json": "^1.10.3", + "is-cidr": "^2.0.6", + "json-parse-better-errors": "^1.0.2", + "lazy-property": "~1.0.0", + "libcipm": "^2.0.2", + "libnpmhook": "^4.0.1", + "libnpx": "^10.2.0", + "lock-verify": "^2.0.2", + "lockfile": "^1.0.4", + "lodash._baseindexof": "*", + "lodash._baseuniq": "~4.6.0", + "lodash._bindcallback": "*", + "lodash._cacheindexof": "*", + "lodash._createcache": "*", + "lodash._getnative": "*", + "lodash.clonedeep": "~4.5.0", + "lodash.restparam": "*", + "lodash.union": "~4.6.0", + "lodash.uniq": "~4.5.0", + "lodash.without": "~4.4.0", + "lru-cache": "^4.1.3", + "meant": "~1.0.1", + "mississippi": "^3.0.0", + "mkdirp": "~0.5.1", + "move-concurrently": "^1.0.1", + "node-gyp": "^3.8.0", + "nopt": "~4.0.1", + "normalize-package-data": "~2.4.0", + "npm-audit-report": "^1.3.1", + "npm-cache-filename": "~1.0.2", + "npm-install-checks": "~3.0.0", + "npm-lifecycle": "^2.1.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.12", + "npm-pick-manifest": "^2.1.0", + "npm-profile": "^3.0.2", + "npm-registry-client": "^8.6.0", + "npm-registry-fetch": "^1.1.0", + "npm-user-validate": "~1.0.0", + "npmlog": "~4.1.2", + "once": "~1.4.0", + "opener": "^1.5.1", + "osenv": "^0.1.5", + "pacote": "^8.1.6", + "path-is-inside": "~1.0.2", + "promise-inflight": "~1.0.1", + "qrcode-terminal": "^0.12.0", + "query-string": "^6.1.0", + "qw": "~1.0.1", + "read": "~1.0.7", + "read-cmd-shim": "~1.0.1", + "read-installed": "~4.0.3", + "read-package-json": "^2.0.13", + "read-package-tree": "^5.2.1", + "readable-stream": "^2.3.6", + "readdir-scoped-modules": "*", + "request": "^2.88.0", + "retry": "^0.12.0", + "rimraf": "~2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.5.1", + "sha": "~2.0.1", + "slide": "~1.1.6", + "sorted-object": "~2.0.1", + "sorted-union-stream": "~2.1.3", + "ssri": "^6.0.1", + "stringify-package": "^1.0.0", + "tar": "^4.4.8", + "text-table": "~0.2.0", + "tiny-relative-date": "^1.3.0", + "uid-number": "0.0.6", + "umask": "~1.1.0", + "unique-filename": "~1.1.0", + "unpipe": "~1.0.0", + "update-notifier": "^2.5.0", + "uuid": "^3.3.2", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "~3.0.0", + "which": "^1.3.1", + "worker-farm": "^1.6.0", + "write-file-atomic": "^2.3.0" + }, + "dependencies": { + "JSONStream": { + "version": "1.3.4", + "bundled": true, + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true + }, + "agent-base": { + "version": "4.2.0", + "bundled": true, + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "agentkeepalive": { + "version": "3.4.1", + "bundled": true, + "dev": true, + "requires": { + "humanize-ms": "^1.2.1" + } + }, + "ajv": { + "version": "5.5.2", + "bundled": true, + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ansi-align": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^2.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "bundled": true, + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "ansicolors": { + "version": "0.3.2", + "bundled": true, + "dev": true + }, + "ansistyles": { + "version": "0.1.3", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "archy": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "asap": { + "version": "2.0.6", + "bundled": true, + "dev": true + }, + "asn1": { + "version": "0.2.4", + "bundled": true, + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "bundled": true, + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "bundled": true, + "dev": true + }, + "aws4": { + "version": "1.8.0", + "bundled": true, + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bin-links": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "requires": { + "bluebird": "^3.5.0", + "cmd-shim": "^2.0.2", + "gentle-fs": "^2.0.0", + "graceful-fs": "^4.1.11", + "write-file-atomic": "^2.3.0" + } + }, + "block-stream": { + "version": "0.0.9", + "bundled": true, + "dev": true, + "requires": { + "inherits": "~2.0.0" + } + }, + "bluebird": { + "version": "3.5.3", + "bundled": true, + "dev": true + }, + "boxen": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer-from": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "bundled": true, + "dev": true + }, + "builtins": { + "version": "1.0.3", + "bundled": true, + "dev": true + }, + "byline": { + "version": "5.0.0", + "bundled": true, + "dev": true + }, + "byte-size": { + "version": "4.0.3", + "bundled": true, + "dev": true + }, + "cacache": { + "version": "11.2.0", + "bundled": true, + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "figgy-pudding": "^3.1.0", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.3", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^6.0.0", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" + } + }, + "call-limit": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "bundled": true, + "dev": true + }, + "capture-stack-trace": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true, + "dev": true + }, + "chalk": { + "version": "2.4.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "ci-info": { + "version": "1.6.0", + "bundled": true, + "dev": true + }, + "cidr-regex": { + "version": "2.0.9", + "bundled": true, + "dev": true, + "requires": { + "ip-regex": "^2.1.0" + } + }, + "cli-boxes": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "cli-columns": { + "version": "3.1.2", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^2.0.0", + "strip-ansi": "^3.0.1" + } + }, + "cli-table3": { + "version": "0.5.0", + "bundled": true, + "dev": true, + "requires": { + "colors": "^1.1.2", + "object-assign": "^4.1.0", + "string-width": "^2.1.1" + } + }, + "cliui": { + "version": "4.1.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "clone": { + "version": "1.0.4", + "bundled": true, + "dev": true + }, + "cmd-shim": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "mkdirp": "~0.5.0" + } + }, + "co": { + "version": "4.6.0", + "bundled": true, + "dev": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "color-convert": { + "version": "1.9.1", + "bundled": true, + "dev": true, + "requires": { + "color-name": "^1.1.1" + } + }, + "color-name": { + "version": "1.1.3", + "bundled": true, + "dev": true + }, + "colors": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "columnify": { + "version": "1.5.4", + "bundled": true, + "dev": true, + "requires": { + "strip-ansi": "^3.0.0", + "wcwidth": "^1.0.0" + } + }, + "combined-stream": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "bundled": true, + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "config-chain": { + "version": "1.1.12", + "bundled": true, + "dev": true, + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "configstore": { + "version": "3.1.2", + "bundled": true, + "dev": true, + "requires": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + }, + "dependencies": { + "iferr": { + "version": "0.1.5", + "bundled": true, + "dev": true + } + } + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "create-error-class": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "capture-stack-trace": "^1.0.0" + } + }, + "cross-spawn": { + "version": "5.1.0", + "bundled": true, + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypto-random-string": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "cyclist": { + "version": "0.2.2", + "bundled": true, + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "debug": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true + } + } + }, + "debuglog": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "decamelize": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "bundled": true, + "dev": true + }, + "deep-extend": { + "version": "0.5.1", + "bundled": true, + "dev": true + }, + "defaults": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "delayed-stream": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "detect-indent": { + "version": "5.0.0", + "bundled": true, + "dev": true + }, + "detect-newline": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "dezalgo": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "dot-prop": { + "version": "4.2.0", + "bundled": true, + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "dotenv": { + "version": "5.0.1", + "bundled": true, + "dev": true + }, + "duplexer3": { + "version": "0.1.4", + "bundled": true, + "dev": true + }, + "duplexify": { + "version": "3.6.0", + "bundled": true, + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "editor": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "encoding": { + "version": "0.1.12", + "bundled": true, + "dev": true, + "requires": { + "iconv-lite": "~0.4.13" + } + }, + "end-of-stream": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "err-code": { + "version": "1.1.2", + "bundled": true, + "dev": true + }, + "errno": { + "version": "0.1.7", + "bundled": true, + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "es6-promise": { + "version": "4.2.4", + "bundled": true, + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "bundled": true, + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, + "execa": { + "version": "0.7.0", + "bundled": true, + "dev": true, + "requires": { + "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" + } + }, + "extend": { + "version": "3.0.2", + "bundled": true, + "dev": true + }, + "extsprintf": { + "version": "1.3.0", + "bundled": true, + "dev": true + }, + "fast-deep-equal": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "figgy-pudding": { + "version": "3.5.1", + "bundled": true, + "dev": true + }, + "find-npm-prefix": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "find-up": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "flush-write-stream": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.4" + } + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true, + "dev": true + }, + "form-data": { + "version": "2.3.2", + "bundled": true, + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" + } + }, + "from2": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs-vacuum": { + "version": "1.2.10", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "path-is-inside": "^1.0.1", + "rimraf": "^2.5.2" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + }, + "dependencies": { + "iferr": { + "version": "0.1.5", + "bundled": true, + "dev": true + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "fstream": { + "version": "1.0.11", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "genfun": { + "version": "4.0.1", + "bundled": true, + "dev": true + }, + "gentle-fs": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.1.2", + "fs-vacuum": "^1.2.10", + "graceful-fs": "^4.1.11", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "path-is-inside": "^1.0.2", + "read-cmd-shim": "^1.0.1", + "slide": "^1.1.6" + }, + "dependencies": { + "iferr": { + "version": "0.1.5", + "bundled": true, + "dev": true + } + } + }, + "get-caller-file": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "dev": true, + "requires": { + "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" + } + }, + "global-dirs": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "requires": { + "ini": "^1.3.4" + } + }, + "got": { + "version": "6.7.1", + "bundled": true, + "dev": true, + "requires": { + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.1.15", + "bundled": true, + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "har-validator": { + "version": "5.1.0", + "bundled": true, + "dev": true, + "requires": { + "ajv": "^5.3.0", + "har-schema": "^2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "hosted-git-info": { + "version": "2.7.1", + "bundled": true, + "dev": true + }, + "http-cache-semantics": { + "version": "3.8.1", + "bundled": true, + "dev": true + }, + "http-proxy-agent": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + } + }, + "http-signature": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-proxy-agent": { + "version": "2.2.1", + "bundled": true, + "dev": true, + "requires": { + "agent-base": "^4.1.0", + "debug": "^3.1.0" + } + }, + "humanize-ms": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.23", + "bundled": true, + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "iferr": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "import-lazy": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "bundled": true, + "dev": true + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true + }, + "init-package-json": { + "version": "1.10.3", + "bundled": true, + "dev": true, + "requires": { + "glob": "^7.1.1", + "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0", + "promzard": "^0.3.0", + "read": "~1.0.1", + "read-package-json": "1 || 2", + "semver": "2.x || 3.x || 4 || 5", + "validate-npm-package-license": "^3.0.1", + "validate-npm-package-name": "^3.0.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "ip": { + "version": "1.1.5", + "bundled": true, + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-ci": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "ci-info": "^1.0.0" + } + }, + "is-cidr": { + "version": "2.0.6", + "bundled": true, + "dev": true, + "requires": { + "cidr-regex": "^2.0.8" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-installed-globally": { + "version": "0.1.0", + "bundled": true, + "dev": true, + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-npm": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "is-obj": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "is-path-inside": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-redirect": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "is-retry-allowed": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "isexe": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true, + "dev": true + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true, + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "bundled": true, + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "dev": true + }, + "jsonparse": { + "version": "1.3.1", + "bundled": true, + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "latest-version": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "package-json": "^4.0.0" + } + }, + "lazy-property": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "lcid": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "libcipm": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "bin-links": "^1.1.2", + "bluebird": "^3.5.1", + "find-npm-prefix": "^1.0.2", + "graceful-fs": "^4.1.11", + "lock-verify": "^2.0.2", + "mkdirp": "^0.5.1", + "npm-lifecycle": "^2.0.3", + "npm-logical-tree": "^1.2.1", + "npm-package-arg": "^6.1.0", + "pacote": "^8.1.6", + "protoduck": "^5.0.0", + "read-package-json": "^2.0.13", + "rimraf": "^2.6.2", + "worker-farm": "^1.6.0" + } + }, + "libnpmhook": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "requires": { + "figgy-pudding": "^3.1.0", + "npm-registry-fetch": "^3.0.0" + }, + "dependencies": { + "npm-registry-fetch": { + "version": "3.1.1", + "bundled": true, + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "figgy-pudding": "^3.1.0", + "lru-cache": "^4.1.2", + "make-fetch-happen": "^4.0.0", + "npm-package-arg": "^6.0.0" + } + } + } + }, + "libnpx": { + "version": "10.2.0", + "bundled": true, + "dev": true, + "requires": { + "dotenv": "^5.0.1", + "npm-package-arg": "^6.0.0", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.0", + "update-notifier": "^2.3.0", + "which": "^1.3.0", + "y18n": "^4.0.0", + "yargs": "^11.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lock-verify": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "npm-package-arg": "^5.1.2 || 6", + "semver": "^5.4.1" + } + }, + "lockfile": { + "version": "1.0.4", + "bundled": true, + "dev": true, + "requires": { + "signal-exit": "^3.0.2" + } + }, + "lodash._baseindexof": { + "version": "3.1.0", + "bundled": true, + "dev": true + }, + "lodash._baseuniq": { + "version": "4.6.0", + "bundled": true, + "dev": true, + "requires": { + "lodash._createset": "~4.0.0", + "lodash._root": "~3.0.0" + } + }, + "lodash._bindcallback": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "lodash._cacheindexof": { + "version": "3.0.2", + "bundled": true, + "dev": true + }, + "lodash._createcache": { + "version": "3.1.2", + "bundled": true, + "dev": true, + "requires": { + "lodash._getnative": "^3.0.0" + } + }, + "lodash._createset": { + "version": "4.0.3", + "bundled": true, + "dev": true + }, + "lodash._getnative": { + "version": "3.9.1", + "bundled": true, + "dev": true + }, + "lodash._root": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "bundled": true, + "dev": true + }, + "lodash.restparam": { + "version": "3.6.1", + "bundled": true, + "dev": true + }, + "lodash.union": { + "version": "4.6.0", + "bundled": true, + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "bundled": true, + "dev": true + }, + "lodash.without": { + "version": "4.4.0", + "bundled": true, + "dev": true + }, + "lowercase-keys": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "lru-cache": { + "version": "4.1.3", + "bundled": true, + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "make-fetch-happen": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "requires": { + "agentkeepalive": "^3.4.1", + "cacache": "^11.0.1", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "lru-cache": "^4.1.2", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" + } + }, + "meant": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "mem": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "mime-db": { + "version": "1.35.0", + "bundled": true, + "dev": true + }, + "mime-types": { + "version": "2.1.19", + "bundled": true, + "dev": true, + "requires": { + "mime-db": "~1.35.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "minipass": { + "version": "2.3.3", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + }, + "dependencies": { + "yallist": { + "version": "3.0.2", + "bundled": true, + "dev": true + } + } + }, + "minizlib": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mississippi": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "move-concurrently": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "bundled": true, + "dev": true + }, + "node-fetch-npm": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node-gyp": { + "version": "3.8.0", + "bundled": true, + "dev": true, + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "nopt": { + "version": "3.0.6", + "bundled": true, + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "semver": { + "version": "5.3.0", + "bundled": true, + "dev": true + }, + "tar": { + "version": "2.2.1", + "bundled": true, + "dev": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" + } + } + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "bundled": true, + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "npm-audit-report": { + "version": "1.3.1", + "bundled": true, + "dev": true, + "requires": { + "cli-table3": "^0.5.0", + "console-control-strings": "^1.1.0" + } + }, + "npm-bundled": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, + "npm-cache-filename": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "npm-install-checks": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "semver": "^2.3.0 || 3.x || 4 || 5" + } + }, + "npm-lifecycle": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "byline": "^5.0.0", + "graceful-fs": "^4.1.11", + "node-gyp": "^3.8.0", + "resolve-from": "^4.0.0", + "slide": "^1.1.6", + "uid-number": "0.0.6", + "umask": "^1.1.0", + "which": "^1.3.1" + } + }, + "npm-logical-tree": { + "version": "1.2.1", + "bundled": true, + "dev": true + }, + "npm-package-arg": { + "version": "6.1.0", + "bundled": true, + "dev": true, + "requires": { + "hosted-git-info": "^2.6.0", + "osenv": "^0.1.5", + "semver": "^5.5.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "npm-packlist": { + "version": "1.1.12", + "bundled": true, + "dev": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npm-pick-manifest": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + } + }, + "npm-profile": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.1.2 || 2", + "make-fetch-happen": "^2.5.0 || 3 || 4" + } + }, + "npm-registry-client": { + "version": "8.6.0", + "bundled": true, + "dev": true, + "requires": { + "concat-stream": "^1.5.2", + "graceful-fs": "^4.1.6", + "normalize-package-data": "~1.0.1 || ^2.0.0", + "npm-package-arg": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0", + "npmlog": "2 || ^3.1.0 || ^4.0.0", + "once": "^1.3.3", + "request": "^2.74.0", + "retry": "^0.10.0", + "safe-buffer": "^5.1.1", + "semver": "2 >=2.2.1 || 3.x || 4 || 5", + "slide": "^1.1.3", + "ssri": "^5.2.4" + }, + "dependencies": { + "retry": { + "version": "0.10.1", + "bundled": true, + "dev": true + }, + "ssri": { + "version": "5.3.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.1" + } + } + } + }, + "npm-registry-fetch": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "figgy-pudding": "^2.0.1", + "lru-cache": "^4.1.2", + "make-fetch-happen": "^3.0.0", + "npm-package-arg": "^6.0.0", + "safe-buffer": "^5.1.1" + }, + "dependencies": { + "cacache": { + "version": "10.0.4", + "bundled": true, + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.1", + "mississippi": "^2.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^5.2.4", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" + }, + "dependencies": { + "mississippi": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^2.0.1", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + } + } + }, + "figgy-pudding": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "make-fetch-happen": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "agentkeepalive": "^3.4.1", + "cacache": "^10.0.4", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.0", + "lru-cache": "^4.1.2", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^3.0.1", + "ssri": "^5.2.4" + } + }, + "pump": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "smart-buffer": { + "version": "1.1.15", + "bundled": true, + "dev": true + }, + "socks": { + "version": "1.1.10", + "bundled": true, + "dev": true, + "requires": { + "ip": "^1.1.4", + "smart-buffer": "^1.0.13" + } + }, + "socks-proxy-agent": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "agent-base": "^4.1.0", + "socks": "^1.1.10" + } + }, + "ssri": { + "version": "5.3.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.1" + } + } + } + }, + "npm-run-path": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "npm-user-validate": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": 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": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "opener": { + "version": "1.5.1", + "bundled": true, + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "os-locale": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "p-limit": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "package-json": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "requires": { + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" + } + }, + "pacote": { + "version": "8.1.6", + "bundled": true, + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "cacache": "^11.0.2", + "get-stream": "^3.0.0", + "glob": "^7.1.2", + "lru-cache": "^4.1.3", + "make-fetch-happen": "^4.0.1", + "minimatch": "^3.0.4", + "minipass": "^2.3.3", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "normalize-package-data": "^2.4.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.10", + "npm-pick-manifest": "^2.1.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^5.0.0", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.5.0", + "ssri": "^6.0.0", + "tar": "^4.4.3", + "unique-filename": "^1.1.0", + "which": "^1.3.0" + } + }, + "parallel-transform": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "path-exists": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "path-key": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "pify": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "bundled": true, + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "promise-retry": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + }, + "dependencies": { + "retry": { + "version": "0.10.1", + "bundled": true, + "dev": true + } + } + }, + "promzard": { + "version": "0.3.0", + "bundled": true, + "dev": true, + "requires": { + "read": "1" + } + }, + "proto-list": { + "version": "1.2.4", + "bundled": true, + "dev": true + }, + "protoduck": { + "version": "5.0.0", + "bundled": true, + "dev": true, + "requires": { + "genfun": "^4.0.1" + } + }, + "prr": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "psl": { + "version": "1.1.29", + "bundled": true, + "dev": true + }, + "pump": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "bundled": true, + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "1.4.1", + "bundled": true, + "dev": true + }, + "qrcode-terminal": { + "version": "0.12.0", + "bundled": true, + "dev": true + }, + "qs": { + "version": "6.5.2", + "bundled": true, + "dev": true + }, + "query-string": { + "version": "6.1.0", + "bundled": true, + "dev": true, + "requires": { + "decode-uri-component": "^0.2.0", + "strict-uri-encode": "^2.0.0" + } + }, + "qw": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "rc": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "requires": { + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true + } + } + }, + "read": { + "version": "1.0.7", + "bundled": true, + "dev": true, + "requires": { + "mute-stream": "~0.0.4" + } + }, + "read-cmd-shim": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2" + } + }, + "read-installed": { + "version": "4.0.3", + "bundled": true, + "dev": true, + "requires": { + "debuglog": "^1.0.1", + "graceful-fs": "^4.1.2", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "slide": "~1.1.3", + "util-extend": "^1.0.1" + } + }, + "read-package-json": { + "version": "2.0.13", + "bundled": true, + "dev": true, + "requires": { + "glob": "^7.1.1", + "graceful-fs": "^4.1.2", + "json-parse-better-errors": "^1.0.1", + "normalize-package-data": "^2.0.0", + "slash": "^1.0.0" + } + }, + "read-package-tree": { + "version": "5.2.1", + "bundled": true, + "dev": true, + "requires": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "once": "^1.3.0", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0" + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "requires": { + "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" + } + }, + "readdir-scoped-modules": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "registry-auth-token": { + "version": "3.3.2", + "bundled": true, + "dev": true, + "requires": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "registry-url": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "rc": "^1.0.1" + } + }, + "request": { + "version": "2.88.0", + "bundled": true, + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "require-directory": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "resolve-from": { + "version": "4.0.0", + "bundled": true, + "dev": true + }, + "retry": { + "version": "0.12.0", + "bundled": true, + "dev": true + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "dev": true, + "requires": { + "glob": "^7.0.5" + } + }, + "run-queue": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true + }, + "semver": { + "version": "5.5.1", + "bundled": true, + "dev": true + }, + "semver-diff": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "semver": "^5.0.3" + } + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "sha": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "readable-stream": "^2.0.2" + } + }, + "shebang-command": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true + }, + "slash": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "slide": { + "version": "1.1.6", + "bundled": true, + "dev": true + }, + "smart-buffer": { + "version": "4.0.1", + "bundled": true, + "dev": true + }, + "socks": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "requires": { + "ip": "^1.1.5", + "smart-buffer": "^4.0.1" + } + }, + "socks-proxy-agent": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "requires": { + "agent-base": "~4.2.0", + "socks": "~2.2.0" + } + }, + "sorted-object": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "sorted-union-stream": { + "version": "2.1.3", + "bundled": true, + "dev": true, + "requires": { + "from2": "^1.3.0", + "stream-iterate": "^1.1.0" + }, + "dependencies": { + "from2": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "~1.1.10" + } + }, + "isarray": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "bundled": true, + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "bundled": true, + "dev": true + } + } + }, + "spdx-correct": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "sshpk": { + "version": "1.14.2", + "bundled": true, + "dev": true, + "requires": { + "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" + } + }, + "ssri": { + "version": "6.0.1", + "bundled": true, + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "stream-each": { + "version": "1.2.2", + "bundled": true, + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-iterate": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "readable-stream": "^2.1.5", + "stream-shift": "^1.0.0" + } + }, + "stream-shift": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "strict-uri-encode": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "string-width": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "stringify-package": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "bundled": true, + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "dev": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + }, + "dependencies": { + "chownr": { + "version": "1.1.1", + "bundled": true, + "dev": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true + } + } + }, + "term-size": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "execa": "^0.7.0" + } + }, + "text-table": { + "version": "0.2.0", + "bundled": true, + "dev": true + }, + "through": { + "version": "2.3.8", + "bundled": true, + "dev": true + }, + "through2": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "requires": { + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" + } + }, + "timed-out": { + "version": "4.0.1", + "bundled": true, + "dev": true + }, + "tiny-relative-date": { + "version": "1.3.0", + "bundled": true, + "dev": true + }, + "tough-cookie": { + "version": "2.4.3", + "bundled": true, + "dev": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "dev": true, + "optional": true + }, + "typedarray": { + "version": "0.0.6", + "bundled": true, + "dev": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "dev": true + }, + "umask": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "unique-filename": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unique-string": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "unpipe": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "unzip-response": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "update-notifier": { + "version": "2.5.0", + "bundled": true, + "dev": true, + "requires": { + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "url-parse-lax": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "prepend-http": "^1.0.1" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "util-extend": { + "version": "1.0.3", + "bundled": true, + "dev": true + }, + "uuid": { + "version": "3.3.2", + "bundled": true, + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "validate-npm-package-name": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "builtins": "^1.0.3" + } + }, + "verror": { + "version": "1.10.0", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "which": { + "version": "1.3.1", + "bundled": true, + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^1.0.2" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "widest-line": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^2.1.1" + } + }, + "worker-farm": { + "version": "1.6.0", + "bundled": true, + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "write-file-atomic": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "xdg-basedir": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "xtend": { + "version": "4.0.1", + "bundled": true, + "dev": true + }, + "y18n": { + "version": "4.0.0", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "2.1.2", + "bundled": true, + "dev": true + }, + "yargs": { + "version": "11.0.0", + "bundled": true, + "dev": true, + "requires": { + "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": "^9.0.2" + }, + "dependencies": { + "y18n": { + "version": "3.2.1", + "bundled": true, + "dev": true + } + } + }, + "yargs-parser": { + "version": "9.0.2", + "bundled": true, + "dev": true, + "requires": { + "camelcase": "^4.1.0" } } } }, - "node-cmd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/node-cmd/-/node-cmd-3.0.0.tgz", - "integrity": "sha1-OP/3CkqqT2WdID61eGJzcBjiT28=" - }, - "node-emoji": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", - "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", - "requires": { - "lodash.toarray": "^4.4.0" - } - }, - "node-mocks-http": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-mocks-http/-/node-mocks-http-1.7.3.tgz", - "integrity": "sha512-wayzLNhEroH3lJj113pFKQ1cd1GKG1mXoZR1HcKp/o9a9lTGGgVY/hYeLajiIFr/z4tXFKOdfJickqqihBtn9g==", - "dev": true, - "requires": { - "accepts": "^1.3.5", - "depd": "^1.1.0", - "fresh": "^0.5.2", - "merge-descriptors": "^1.0.1", - "methods": "^1.1.2", - "mime": "^1.3.4", - "net": "^1.0.2", - "parseurl": "^1.3.1", - "range-parser": "^1.2.0", - "type-is": "^1.6.16" - } - }, - "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "requires": { - "abbrev": "1" - } - }, - "normalize-package-data": { - "version": "2.4.0", - "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.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -8299,6 +12929,12 @@ } } }, + "octokit-pagination-methods": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz", + "integrity": "sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==", + "dev": true + }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -8315,6 +12951,24 @@ "mimic-fn": "^1.0.0" } }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + } + } + }, "optionator": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", @@ -8343,6 +12997,16 @@ "mem": "^1.1.0" } }, + "os-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.0.0.tgz", + "integrity": "sha512-7c74tib2FsdFbQ3W+qj8Tyd1R3Z6tuVRNNxXjJcZ4NgjIEQU9N/prVMqcW29XZPXGACqaXN3jq58/6hoaoXH6g==", + "dev": true, + "requires": { + "macos-release": "^2.0.0", + "windows-release": "^3.1.0" + } + }, "os-tmpdir": { "version": "1.0.2", "resolved": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -8358,11 +13022,32 @@ "object-assign": "^4.1.0" } }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true + }, + "p-filter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-1.0.0.tgz", + "integrity": "sha1-Yp0xcVAgnI/VCLoTdxPvS7kg6ds=", + "dev": true, + "requires": { + "p-map": "^1.0.0" + } + }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, + "p-is-promise": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.0.0.tgz", + "integrity": "sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg==", + "dev": true + }, "p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", @@ -8379,11 +13064,38 @@ "p-limit": "^1.1.0" } }, + "p-map": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", + "dev": true + }, + "p-reduce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", + "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=", + "dev": true + }, + "p-retry": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.0.tgz", + "integrity": "sha512-fAB7bebxaj8nylNAsxPNkwPZ/48bXFdFnWrz0v2sV+H5BsGfVL7Ap7KgONqy7rOK4ZI1I+SU+lmettO3hM+2HQ==", + "dev": true, + "requires": { + "retry": "^0.12.0" + } + }, "p-try": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" }, + "parse-github-url": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-github-url/-/parse-github-url-1.0.2.tgz", + "integrity": "sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==", + "dev": true + }, "parse-glob": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", @@ -8431,6 +13143,12 @@ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, "path-exists": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", @@ -8601,8 +13319,7 @@ "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "optional": true + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "prelude-ls": { "version": "1.1.2", @@ -8656,6 +13373,16 @@ "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==", "dev": true }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", @@ -8670,6 +13397,12 @@ "bitcoin-ops": "^1.3.0" } }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, "qrcode": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.3.2.tgz", @@ -8694,6 +13427,12 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-6.6.0.tgz", "integrity": "sha512-KIJqT9jQJDQx5h5uAVPimw6yVg2SekOKu959OCtktD3FjzbpvaPr8i4zzg07DOMz+igA4W/aNM7OV8H37pFYfA==" }, + "quick-lru": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", + "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", + "dev": true + }, "randomatic": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", @@ -8733,6 +13472,26 @@ "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", "dev": true }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, "read-pkg": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", @@ -9077,6 +13836,25 @@ } } }, + "redent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", + "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", + "dev": true, + "requires": { + "indent-string": "^3.0.0", + "strip-indent": "^2.0.0" + } + }, + "redeyed": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", + "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=", + "dev": true, + "requires": { + "esprima": "~4.0.0" + } + }, "regenerate": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", @@ -9131,6 +13909,16 @@ "regjsparser": "^0.1.4" } }, + "registry-auth-token": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", + "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "dev": true, + "requires": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, "regjsgen": { "version": "0.2.0", "resolved": "http://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", @@ -9274,6 +14062,12 @@ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true + }, "rimraf": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", @@ -9378,11 +14172,323 @@ "safe-buffer": "^5.1.0" } }, + "semantic-release": { + "version": "15.13.1", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-15.13.1.tgz", + "integrity": "sha512-bkrfQ10BhbJRMeq/Ih9DZ9FO4ffDwFYsRR134JP9JvQSf8GVX4sg3SnFFd7Q10C6pKwjKqMZ4+ZNB5uQYMLPEg==", + "dev": true, + "requires": { + "@semantic-release/commit-analyzer": "^6.1.0", + "@semantic-release/error": "^2.2.0", + "@semantic-release/github": "^5.1.0", + "@semantic-release/npm": "^5.0.5", + "@semantic-release/release-notes-generator": "^7.1.2", + "aggregate-error": "^1.0.0", + "cosmiconfig": "^5.0.1", + "debug": "^4.0.0", + "env-ci": "^3.0.0", + "execa": "^1.0.0", + "figures": "^2.0.0", + "find-versions": "^3.0.0", + "get-stream": "^4.0.0", + "git-log-parser": "^1.2.0", + "hook-std": "^1.1.0", + "hosted-git-info": "^2.7.1", + "lodash": "^4.17.4", + "marked": "^0.5.0", + "marked-terminal": "^3.0.0", + "p-locate": "^3.0.0", + "p-reduce": "^1.0.0", + "read-pkg-up": "^4.0.0", + "resolve-from": "^4.0.0", + "semver": "^5.4.1", + "signale": "^1.2.1", + "yargs": "^12.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "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" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.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": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "mem": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.0.0.tgz", + "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^1.0.0", + "p-is-promise": "^1.1.0" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "p-is-promise": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", + "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", + "dev": true + }, + "p-limit": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz", + "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", + "dev": true + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", + "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", + "dev": true, + "requires": { + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.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 || ^4.0.0", + "yargs-parser": "^11.1.1" + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, "semver": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==" }, + "semver-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz", + "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==", + "dev": true + }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -9436,6 +14542,17 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, + "signale": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/signale/-/signale-1.3.0.tgz", + "integrity": "sha512-TyFhsQ9wZDYDfsPqWMyjCxsDoMwfpsT0130Mce7wDiVCSDdtWSg83dOqoj8aGpGCs3n1YPcam6sT1OFPuGT/OQ==", + "dev": true, + "requires": { + "chalk": "^2.3.2", + "figures": "^2.0.0", + "pkg-conf": "^2.1.0" + } + }, "sinon": { "version": "4.5.0", "resolved": "http://registry.npmjs.org/sinon/-/sinon-4.5.0.tgz", @@ -9520,7 +14637,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "optional": true, "requires": { "define-property": "^1.0.0", "isobject": "^3.0.0", @@ -9531,7 +14647,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "optional": true, "requires": { "is-descriptor": "^1.0.0" } @@ -9540,7 +14655,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "optional": true, "requires": { "kind-of": "^6.0.0" } @@ -9549,7 +14663,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "optional": true, "requires": { "kind-of": "^6.0.0" } @@ -9558,7 +14671,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "optional": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -9568,8 +14680,7 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "optional": true + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "kind-of": { "version": "6.0.2", @@ -9582,7 +14693,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "optional": true, "requires": { "kind-of": "^3.2.0" } @@ -9688,6 +14798,12 @@ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, + "spawn-error-forwarder": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz", + "integrity": "sha1-Gv2Uc46ZmwNG17n8NzvlXgdXcCk=", + "dev": true + }, "spdx-correct": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", @@ -9716,6 +14832,15 @@ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz", "integrity": "sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g==" }, + "split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "dev": true, + "requires": { + "through": "2" + } + }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -9724,6 +14849,15 @@ "extend-shallow": "^3.0.0" } }, + "split2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz", + "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", + "dev": true, + "requires": { + "through2": "^2.0.2" + } + }, "sprintf-js": { "version": "1.0.3", "resolved": "http://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -9874,6 +15008,16 @@ } } }, + "stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "dev": true, + "requires": { + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" + } + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -9934,6 +15078,12 @@ "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", @@ -10003,6 +15153,12 @@ "integrity": "sha1-45mpgiV6J22uQou5KEXLcb3CbRk=", "dev": true }, + "text-extensions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", + "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", + "dev": true + }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -10013,6 +15169,16 @@ "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -10054,7 +15220,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "optional": true, "requires": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" @@ -10064,7 +15229,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "optional": true, "requires": { "kind-of": "^3.0.2" } @@ -10097,6 +15261,24 @@ } } }, + "traverse": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", + "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", + "dev": true + }, + "trim-newlines": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", + "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", + "dev": true + }, + "trim-off-newlines": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz", + "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=", + "dev": true + }, "trim-right": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", @@ -10157,6 +15339,33 @@ "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz", "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==" }, + "uglify-js": { + "version": "3.4.9", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", + "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", + "dev": true, + "optional": true, + "requires": { + "commander": "~2.17.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true, + "optional": true + }, + "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, + "optional": true + } + } + }, "union-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", @@ -10194,6 +15403,21 @@ "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" }, + "universal-user-agent": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-2.0.2.tgz", + "integrity": "sha512-nOwvHWLH3dBazyuzbECPA5uVFNd7AlgviXRHgR4yf48QqitIvpdncRrxMbZNMpPPEfgz30I9ubd1XmiJiqsTrg==", + "dev": true, + "requires": { + "os-name": "^3.0.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, "unorm": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.4.1.tgz", @@ -10254,6 +15478,18 @@ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" }, + "url-join": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz", + "integrity": "sha1-TTNA6AfTdzvamZH4MFrNzCpmXSo=", + "dev": true + }, + "url-template": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", + "integrity": "sha1-/FZaPMy/93MMd19WQflVV5FDnyE=", + "dev": true + }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -10345,6 +15581,45 @@ "resolved": "https://registry.npmjs.org/window-or-global/-/window-or-global-1.0.1.tgz", "integrity": "sha1-2+RboqKRqrxW1iz2bEW3+jIpRt4=" }, + "windows-release": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.1.0.tgz", + "integrity": "sha512-hBb7m7acFgQPQc222uEQTmdcGLeBmQLNLFIh0rDk3CwFOBrfjefLzEfEfmpMq8Af/n/GnFf3eYf203FY1PmudA==", + "dev": true, + "requires": { + "execa": "^0.10.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", + "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^3.0.0", + "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" + } + } + } + }, "wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", diff --git a/package.json b/package.json index 10e36dcd..4842e851 100644 --- a/package.json +++ b/package.json @@ -80,6 +80,7 @@ "node-mocks-http": "^1.7.0", "nyc": "^11.6.0", "prettier": "^1.14.2", + "semantic-release": "^15.13.1", "sinon": "^4.5.0" } } From 6842763d603eb496d821ad149fa6c9bed225887d Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Thu, 27 Dec 2018 13:32:38 -0800 Subject: [PATCH 152/480] Adding integration tests for block.details --- test/integration/block.js | 49 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 test/integration/block.js diff --git a/test/integration/block.js b/test/integration/block.js new file mode 100644 index 00000000..e48b9d98 --- /dev/null +++ b/test/integration/block.js @@ -0,0 +1,49 @@ +/* + Integration tests for the BITBOX. Only covers calls made to + rest.bitcoin.com. +*/ + +const chai = require("chai") +const assert = chai.assert +const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() +const axios = require("axios") + +// Inspect utility used for debugging. +const util = require("util") +util.inspect.defaultOptions = { + showHidden: true, + colors: true, + depth: 3 +} + +describe(`#block`, () => { + describe(`#details`, () => { + it(`should GET address details`, async () => { + const block = 500000 + + const result = await BITBOX.Block.details(block) + //console.log(`result: ${util.inspect(result)}`) + + assert.hasAllKeys(result, [ + "hash", + "size", + "height", + "version", + "merkleroot", + "tx", + "time", + "nonce", + "bits", + "difficulty", + "chainwork", + "confirmations", + "previousblockhash", + "nextblockhash", + "reward", + "isMainChain", + "poolInfo" + ]) + }) + }) +}) From 3f30c0bf51597d02c93d72b482e69ceec32526c7 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Thu, 27 Dec 2018 13:40:14 -0800 Subject: [PATCH 153/480] Added first couple tests in blockchain lib --- test/integration/block.js | 2 +- test/integration/blockchain.js | 57 ++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 test/integration/blockchain.js diff --git a/test/integration/block.js b/test/integration/block.js index e48b9d98..7e1e3f5e 100644 --- a/test/integration/block.js +++ b/test/integration/block.js @@ -19,7 +19,7 @@ util.inspect.defaultOptions = { describe(`#block`, () => { describe(`#details`, () => { - it(`should GET address details`, async () => { + it(`should GET block details`, async () => { const block = 500000 const result = await BITBOX.Block.details(block) diff --git a/test/integration/blockchain.js b/test/integration/blockchain.js new file mode 100644 index 00000000..87a9e479 --- /dev/null +++ b/test/integration/blockchain.js @@ -0,0 +1,57 @@ +/* + Integration tests for the BITBOX. Only covers calls made to + rest.bitcoin.com. +*/ + +const chai = require("chai") +const assert = chai.assert +const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() +const axios = require("axios") + +// Inspect utility used for debugging. +const util = require("util") +util.inspect.defaultOptions = { + showHidden: true, + colors: true, + depth: 3 +} + +describe(`#blockchain`, () => { + describe(`#getBestBlockHash`, () => { + it(`should GET best block hash`, async () => { + const result = await BITBOX.Blockchain.getBestBlockHash() + //console.log(`result: ${util.inspect(result)}`) + + assert.isString(result) + }) + }) + + describe(`#getBlock`, () => { + it(`should GET best block`, async () => { + const hash = + "00000000000000000308b4bbb26ae1a9197ffcac424f53625830249249857459" + + const result = await BITBOX.Blockchain.getBlock(hash) + //console.log(`result: ${util.inspect(result)}`) + + assert.hasAllKeys(result, [ + "hash", + "size", + "height", + "version", + "merkleroot", + "tx", + "time", + "nonce", + "bits", + "difficulty", + "chainwork", + "confirmations", + "previousblockhash", + "mediantime", + "versionHex" + ]) + }) + }) +}) From d0ae56f03c84b2e22a2c99ef9bfc3cbc13cb34c3 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 28 Dec 2018 08:02:19 -0800 Subject: [PATCH 154/480] Fixed address tests --- lib/Block.js | 16 +++++++++++++--- lib/bitbox-sdk.js | 2 +- src/Block.js | 18 ++++++++++++++++-- test/integration/address.js | 28 +++++++++++++++++++--------- test/integration/block.js | 2 +- test/integration/blockchain.js | 3 ++- 6 files changed, 52 insertions(+), 17 deletions(-) diff --git a/lib/Block.js b/lib/Block.js index 7d4d04bb..db77c8e9 100644 --- a/lib/Block.js +++ b/lib/Block.js @@ -22,10 +22,20 @@ var Block = function () { } _createClass(Block, [{ - key: "details", - value: async function details(id) { + key: "detailsByHeight", + value: async function detailsByHeight(id) { try { - var response = await _axios2.default.get(this.restURL + "block/details/" + id); + var response = await _axios2.default.get(this.restURL + "block/detailsByHeight/" + id); + return response.data; + } catch (error) { + if (error.response && error.response.data) throw error.response.data;else throw error; + } + } + }, { + key: "detailsByHash", + value: async function detailsByHash(hash) { + try { + var response = await _axios2.default.get(this.restURL + "block/detailsByHash/" + hash); return response.data; } catch (error) { if (error.response && error.response.data) throw error.response.data;else throw error; diff --git a/lib/bitbox-sdk.js b/lib/bitbox-sdk.js index 3bb1d2c4..902b3538 100644 --- a/lib/bitbox-sdk.js +++ b/lib/bitbox-sdk.js @@ -92,7 +92,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons var BITBOXSDK = function BITBOXSDK(config) { _classCallCheck(this, BITBOXSDK); - if (config && config.restURL && config.restURL !== "") this.restURL = config.restURL;else this.restURL = "https://rest.bitcoin.com/v1/"; + if (config && config.restURL && config.restURL !== "") this.restURL = config.restURL;else this.restURL = "https://rest.btctest.net/v2/"; this.Address = new _Address2.default(this.restURL); this.BitcoinCash = new _BitcoinCash2.default(this.Address); diff --git a/src/Block.js b/src/Block.js index 161e4e42..c5d174f8 100644 --- a/src/Block.js +++ b/src/Block.js @@ -4,9 +4,23 @@ class Block { this.restURL = restURL } - async details(id) { + async detailsByHeight(id) { try { - const response = await axios.get(`${this.restURL}block/details/${id}`) + const response = await axios.get( + `${this.restURL}block/detailsByHeight/${id}` + ) + return response.data + } catch (error) { + if (error.response && error.response.data) throw error.response.data + else throw error + } + } + + async detailsByHash(hash) { + try { + const response = await axios.get( + `${this.restURL}block/detailsByHash/${hash}` + ) return response.data } catch (error) { if (error.response && error.response.data) throw error.response.data diff --git a/test/integration/address.js b/test/integration/address.js index 05ce7f4a..7ffadf55 100644 --- a/test/integration/address.js +++ b/test/integration/address.js @@ -27,7 +27,7 @@ describe(`#address`, () => { const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" const result = await BITBOX.Address.details(addr) - // console.log(`result: ${util.inspect(result)}`) + //console.log(`result: ${util.inspect(result)}`) assert.hasAllKeys(result, [ "balance", @@ -42,7 +42,10 @@ describe(`#address`, () => { "txApperances", "transactions", "legacyAddress", - "cashAddress" + "cashAddress", + "addrStr", + "currentPage", + "pagesTotal" ]) assert.isArray(result.transactions) }) @@ -55,17 +58,17 @@ describe(`#address`, () => { const result = await BITBOX.Address.utxo(addr) //console.log(`result: ${util.inspect(result)}`) - assert.isArray(result) - assert.hasAllKeys(result[0], [ + assert.hasAllKeys(result, ["utxos", "legacyAddress", "cashAddress"]) + assert.isArray(result.utxos) + assert.hasAllKeys(result.utxos[0], [ + "address", "txid", "vout", "scriptPubKey", "amount", "satoshis", "height", - "confirmations", - "legacyAddress", - "cashAddress" + "confirmations" ]) }) }) @@ -77,7 +80,8 @@ describe(`#address`, () => { const result = await BITBOX.Address.unconfirmed(addr) //console.log(`result: ${util.inspect(result)}`) - assert.isArray(result) + assert.hasAllKeys(result, ["utxos", "legacyAddress", "cashAddress"]) + assert.isArray(result.utxos) }) }) @@ -88,7 +92,13 @@ describe(`#address`, () => { const result = await BITBOX.Address.transactions(addr) //console.log(`result: ${util.inspect(result)}`) - assert.hasAllKeys(result, ["txs", "pagesTotal"]) + assert.hasAllKeys(result, [ + "txs", + "pagesTotal", + "cashAddress", + "currentPage", + "legacyAddress" + ]) assert.isArray(result.txs) assert.hasAllKeys(result.txs[0], [ "txid", diff --git a/test/integration/block.js b/test/integration/block.js index 7e1e3f5e..125c7152 100644 --- a/test/integration/block.js +++ b/test/integration/block.js @@ -22,7 +22,7 @@ describe(`#block`, () => { it(`should GET block details`, async () => { const block = 500000 - const result = await BITBOX.Block.details(block) + const result = await BITBOX.Block.detailsByHeight(block) //console.log(`result: ${util.inspect(result)}`) assert.hasAllKeys(result, [ diff --git a/test/integration/blockchain.js b/test/integration/blockchain.js index 87a9e479..aa120a69 100644 --- a/test/integration/blockchain.js +++ b/test/integration/blockchain.js @@ -50,7 +50,8 @@ describe(`#blockchain`, () => { "confirmations", "previousblockhash", "mediantime", - "versionHex" + "versionHex", + "nextblockhash" ]) }) }) From 5d3eea71faa09dbea465eec715cfd054c9e453f5 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 28 Dec 2018 08:03:29 -0800 Subject: [PATCH 155/480] Fixed blockchain tests --- test/integration/blockchain.js | 29 ----------------------------- 1 file changed, 29 deletions(-) diff --git a/test/integration/blockchain.js b/test/integration/blockchain.js index aa120a69..621bd707 100644 --- a/test/integration/blockchain.js +++ b/test/integration/blockchain.js @@ -26,33 +26,4 @@ describe(`#blockchain`, () => { assert.isString(result) }) }) - - describe(`#getBlock`, () => { - it(`should GET best block`, async () => { - const hash = - "00000000000000000308b4bbb26ae1a9197ffcac424f53625830249249857459" - - const result = await BITBOX.Blockchain.getBlock(hash) - //console.log(`result: ${util.inspect(result)}`) - - assert.hasAllKeys(result, [ - "hash", - "size", - "height", - "version", - "merkleroot", - "tx", - "time", - "nonce", - "bits", - "difficulty", - "chainwork", - "confirmations", - "previousblockhash", - "mediantime", - "versionHex", - "nextblockhash" - ]) - }) - }) }) From b3f3fe210d4f3d3310db7092e0c466a4d389f62f Mon Sep 17 00:00:00 2001 From: Ross Cawston Date: Mon, 7 Jan 2019 17:11:58 -0800 Subject: [PATCH 156/480] Add setLockTime to TransactionBuilder --- lib/TransactionBuilder.d.ts | 1 + lib/TransactionBuilder.js | 5 +++++ src/TransactionBuilder.js | 4 ++++ 3 files changed, 10 insertions(+) diff --git a/lib/TransactionBuilder.d.ts b/lib/TransactionBuilder.d.ts index e7bd864c..6ec477fb 100644 --- a/lib/TransactionBuilder.d.ts +++ b/lib/TransactionBuilder.d.ts @@ -19,6 +19,7 @@ export declare interface TransactionBuilder { addInput(txHash: string|Buffer, vout: number, sequence?: number, prevOutScript?: string): void; addInputScript(vout: number, script: Buffer): void; addOutput(scriptPubKey: string|Buffer, amount: number): void; + setLockTime(locktime: number): void; sign(vin: number, keyPair: ECPair, redeemScript: Buffer | undefined, hashType: number, value: number): ECSignature; build(): any; } diff --git a/lib/TransactionBuilder.js b/lib/TransactionBuilder.js index 5c84a894..48807268 100644 --- a/lib/TransactionBuilder.js +++ b/lib/TransactionBuilder.js @@ -84,6 +84,11 @@ var TransactionBuilder = function () { this.transaction.addOutput(scriptPubKey, amount); } } + }, { + key: 'setLockTime', + value: function setLockTime(locktime) { + this.transaction.setLockTime(locktime); + } }, { key: "sign", value: function sign(vin, keyPair, redeemScript) { diff --git a/src/TransactionBuilder.js b/src/TransactionBuilder.js index fa557205..40d00c04 100644 --- a/src/TransactionBuilder.js +++ b/src/TransactionBuilder.js @@ -52,6 +52,10 @@ class TransactionBuilder { } } + setLockTime(locktime) { + this.transaction.setLockTime(locktime); + } + sign( vin, keyPair, From b6ddce9b723b6a2835c4f784ec1aef0326477c2c Mon Sep 17 00:00:00 2001 From: Ross Cawston Date: Tue, 8 Jan 2019 09:42:13 -0800 Subject: [PATCH 157/480] add setLockTime test cases --- test/TransactionBuilder.js | 35 +++++++++++++++++++++++++++ test/fixtures/TransactionBuilder.json | 20 +++++++++++++++ 2 files changed, 55 insertions(+) diff --git a/test/TransactionBuilder.js b/test/TransactionBuilder.js index 8591c594..4be22a91 100644 --- a/test/TransactionBuilder.js +++ b/test/TransactionBuilder.js @@ -1998,4 +1998,39 @@ describe("#TransactionBuilder", () => { }) }) }) + + describe("#LockTime", () => { + describe("#Mainnet", () => { + fixtures.locktime.mainnet.forEach(fixture => { + it(`should create transaction with nLockTime on mainnet`, () => { + const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new BITBOX.TransactionBuilder() + + const txHash = fixture.txHash + const originalAmount = fixture.amount + transactionBuilder.addInput(txHash, 0) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 1 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(fixture.output, sendAmount, 1) + const lockTime = fixture.lockTime + transactionBuilder.setLockTime(lockTime) + const keyPair = BITBOX.HDNode.toKeyPair(node) + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amount + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) }) diff --git a/test/fixtures/TransactionBuilder.json b/test/fixtures/TransactionBuilder.json index e40e1903..f3c8da41 100644 --- a/test/fixtures/TransactionBuilder.json +++ b/test/fixtures/TransactionBuilder.json @@ -1817,5 +1817,25 @@ "result": "0x0100fffe" } ] + }, + "locktime": { + "mainnet": [ + { + "xpriv": "xprvA3oFxxSXJZ5bcURHc3Mk6bdF8fiqtyruYJkUAZjcAjPdhd4jogpKZNZRhqLMFYu4VyJmcetjDxaW34igaNfGYRvSNZQBdM7VkABsLnNP5Dd", + "txHash": "021eb6dcbfa33979ccb45fcf59c1c9e3805505d50418c2108c9d83fdaf6393f3", + "lockTime": 500000, + "amount": 8821, + "output": "bitcoincash:qzvpzzj8yylqy6amtk7xs9pfksdx3dc0nu3k8eqax5", + "hex": "0200000001f39363affd839d8c10c21804d5055580e3c9c159cf5fb4cc7939a3bfdcb61e02000000006a4730440220588a14faadd7f4c38ef63a87578e5484b57415acbbeafe692cae36384c3fde9c02201d6e52c3d7010faaca3d9ca89a1091a63aaf5ebbdbb9d5c822fa62f4380bd87341210351cedb293c6aef49e3e5fa4bb554a6a4833fc83702eb4e027a09e018392777000100000001b5210000000000001976a91498110a47213e026bbb5dbc681429b41a68b70f9f88ac20a10700" + }, + { + "xpriv": "xprvA3oFxxSXJZ5bcURHc3Mk6bdF8fiqtyruYJkUAZjcAjPdhd4jogpKZNZRhqLMFYu4VyJmcetjDxaW34igaNfGYRvSNZQBdM7VkABsLnNP5Dd", + "txHash": "24c196f28b5ad1c08c2b68e4dd3294fa307354267f028600c3001a0dea6e175f", + "lockTime": 600000, + "amount": 8493, + "output": "bitcoincash:qzvpzzj8yylqy6amtk7xs9pfksdx3dc0nu3k8eqax5", + "hex": "02000000015f176eea0d1a00c30086027f26547330fa9432dde4682b8cc0d15a8bf296c124000000006a473044022050e94b156df6dee0af24593a60f7be5ea29986f8d7ac19d64da6b75dd311a9af022028a07ddd56d3ddc85bf0aaec5bc7b088e1ffdf5f63048d25c5e90a41e21dd51e41210351cedb293c6aef49e3e5fa4bb554a6a4833fc83702eb4e027a09e0183927770001000000016d200000000000001976a91498110a47213e026bbb5dbc681429b41a68b70f9f88acc0270900" + } + ] } } From 8911054ee34459c2b33e0407e7cdf1e1deee55c6 Mon Sep 17 00:00:00 2001 From: Ross Cawston Date: Tue, 8 Jan 2019 09:54:19 -0800 Subject: [PATCH 158/480] fix setLockTime test - sequence should have been set on input --- test/TransactionBuilder.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/TransactionBuilder.js b/test/TransactionBuilder.js index 4be22a91..b4a42aae 100644 --- a/test/TransactionBuilder.js +++ b/test/TransactionBuilder.js @@ -2008,13 +2008,13 @@ describe("#TransactionBuilder", () => { const txHash = fixture.txHash const originalAmount = fixture.amount - transactionBuilder.addInput(txHash, 0) + transactionBuilder.addInput(txHash, 0, 1) const byteCount = BITBOX.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 1 } ) const sendAmount = originalAmount - byteCount - transactionBuilder.addOutput(fixture.output, sendAmount, 1) + transactionBuilder.addOutput(fixture.output, sendAmount) const lockTime = fixture.lockTime transactionBuilder.setLockTime(lockTime) const keyPair = BITBOX.HDNode.toKeyPair(node) From a20225afce76dfbcc018e72d148182fac59cdc84 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 8 Jan 2019 10:20:46 -0800 Subject: [PATCH 159/480] Add setLockTime typing and bump minor version. --- index.js | 2 +- lib/TransactionBuilder.d.ts | 55 ++++++++++++++++++++------------- lib/TransactionBuilder.js | 2 +- package-lock.json | 25 +++++---------- package.json | 2 +- typings/TransactionBuilder.d.ts | 54 +++++++++++++++++++------------- 6 files changed, 76 insertions(+), 64 deletions(-) diff --git a/index.js b/index.js index 87d17e09..493ffb3b 100755 --- a/index.js +++ b/index.js @@ -18,7 +18,7 @@ const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") const cmd = require("node-cmd") -program.version("2.2.6 ", "-v, --version") +program.version("2.3.0 ", "-v, --version") program .command("new ") diff --git a/lib/TransactionBuilder.d.ts b/lib/TransactionBuilder.d.ts index 6ec477fb..78545620 100644 --- a/lib/TransactionBuilder.d.ts +++ b/lib/TransactionBuilder.d.ts @@ -1,33 +1,44 @@ -import {Buffer} from 'buffer'; +import { Buffer } from "buffer" -import { Transaction } from './Transaction'; -import { ECPair } from './ECPair'; +import { Transaction } from "./Transaction" +import { ECPair } from "./ECPair" -declare type ECSignature = any; +declare type ECSignature = any export declare interface TransactionBuilder { // bitcoincash: coininfo.bitcoincash.main; // bitcoincashBitcoinJSLib: Bitcoin.toBitcoinJS; - transaction: any; - DEFAULT_SEQUENCE: number; - hashTypes: HashTypes; - bip66 : any; - bip68 : any; + transaction: any + DEFAULT_SEQUENCE: number + hashTypes: HashTypes + bip66: any + bip68: any - new(network?: string): TransactionBuilder; + new (network?: string): TransactionBuilder - addInput(txHash: string|Buffer, vout: number, sequence?: number, prevOutScript?: string): void; - addInputScript(vout: number, script: Buffer): void; - addOutput(scriptPubKey: string|Buffer, amount: number): void; - setLockTime(locktime: number): void; - sign(vin: number, keyPair: ECPair, redeemScript: Buffer | undefined, hashType: number, value: number): ECSignature; - build(): any; + addInput( + txHash: string | Buffer, + vout: number, + sequence?: number, + prevOutScript?: string + ): void + addInputScript(vout: number, script: Buffer): void + addOutput(scriptPubKey: string | Buffer, amount: number): void + setLockTime(locktime: number): void + sign( + vin: number, + keyPair: ECPair, + redeemScript: Buffer | undefined, + hashType: number, + value: number + ): ECSignature + build(): any } declare interface HashTypes { - SIGHASH_ALL: number; - SIGHASH_NONE: number; - SIGHASH_SINGLE: number; - SIGHASH_ANYONECANPAY: number; - SIGHASH_BITCOINCASH_BIP143: number; -} \ No newline at end of file + SIGHASH_ALL: number + SIGHASH_NONE: number + SIGHASH_SINGLE: number + SIGHASH_ANYONECANPAY: number + SIGHASH_BITCOINCASH_BIP143: number +} diff --git a/lib/TransactionBuilder.js b/lib/TransactionBuilder.js index 48807268..40eaa928 100644 --- a/lib/TransactionBuilder.js +++ b/lib/TransactionBuilder.js @@ -85,7 +85,7 @@ var TransactionBuilder = function () { } } }, { - key: 'setLockTime', + key: "setLockTime", value: function setLockTime(locktime) { this.transaction.setLockTime(locktime); } diff --git a/package-lock.json b/package-lock.json index 7e95b3a2..888a26ae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "2.2.6", + "version": "2.3.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -4971,13 +4971,11 @@ }, "balanced-match": { "version": "1.0.0", - "bundled": true, - "optional": true + "bundled": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4990,18 +4988,15 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true, - "optional": true + "bundled": true }, "concat-map": { "version": "0.0.1", - "bundled": true, - "optional": true + "bundled": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true, - "optional": true + "bundled": true }, "core-util-is": { "version": "1.0.2", @@ -5104,8 +5099,7 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, - "optional": true + "bundled": true }, "ini": { "version": "1.3.5", @@ -5115,7 +5109,6 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -5128,7 +5121,6 @@ "minimatch": { "version": "3.0.4", "bundled": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -5228,8 +5220,7 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true, - "optional": true + "bundled": true }, "object-assign": { "version": "4.1.1", @@ -5239,7 +5230,6 @@ "once": { "version": "1.4.0", "bundled": true, - "optional": true, "requires": { "wrappy": "1" } @@ -5345,7 +5335,6 @@ "string-width": { "version": "1.0.2", "bundled": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", diff --git a/package.json b/package.json index 4842e851..0296887d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "2.2.6", + "version": "2.3.0", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "contributors": [ diff --git a/typings/TransactionBuilder.d.ts b/typings/TransactionBuilder.d.ts index e7bd864c..78545620 100644 --- a/typings/TransactionBuilder.d.ts +++ b/typings/TransactionBuilder.d.ts @@ -1,32 +1,44 @@ -import {Buffer} from 'buffer'; +import { Buffer } from "buffer" -import { Transaction } from './Transaction'; -import { ECPair } from './ECPair'; +import { Transaction } from "./Transaction" +import { ECPair } from "./ECPair" -declare type ECSignature = any; +declare type ECSignature = any export declare interface TransactionBuilder { // bitcoincash: coininfo.bitcoincash.main; // bitcoincashBitcoinJSLib: Bitcoin.toBitcoinJS; - transaction: any; - DEFAULT_SEQUENCE: number; - hashTypes: HashTypes; - bip66 : any; - bip68 : any; + transaction: any + DEFAULT_SEQUENCE: number + hashTypes: HashTypes + bip66: any + bip68: any - new(network?: string): TransactionBuilder; + new (network?: string): TransactionBuilder - addInput(txHash: string|Buffer, vout: number, sequence?: number, prevOutScript?: string): void; - addInputScript(vout: number, script: Buffer): void; - addOutput(scriptPubKey: string|Buffer, amount: number): void; - sign(vin: number, keyPair: ECPair, redeemScript: Buffer | undefined, hashType: number, value: number): ECSignature; - build(): any; + addInput( + txHash: string | Buffer, + vout: number, + sequence?: number, + prevOutScript?: string + ): void + addInputScript(vout: number, script: Buffer): void + addOutput(scriptPubKey: string | Buffer, amount: number): void + setLockTime(locktime: number): void + sign( + vin: number, + keyPair: ECPair, + redeemScript: Buffer | undefined, + hashType: number, + value: number + ): ECSignature + build(): any } declare interface HashTypes { - SIGHASH_ALL: number; - SIGHASH_NONE: number; - SIGHASH_SINGLE: number; - SIGHASH_ANYONECANPAY: number; - SIGHASH_BITCOINCASH_BIP143: number; -} \ No newline at end of file + SIGHASH_ALL: number + SIGHASH_NONE: number + SIGHASH_SINGLE: number + SIGHASH_ANYONECANPAY: number + SIGHASH_BITCOINCASH_BIP143: number +} From 6119c0fd1aa9323dd47ab982b93bd5adf63ed26c Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Thu, 10 Jan 2019 07:55:49 -0800 Subject: [PATCH 160/480] Adding unit test script back in --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index aab2b280..ee7da272 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ ], "main": "index.js", "scripts": { + "test": "mocha --timeout 30000 --require babel-core/register test/unit", "test:integration": "mocha --timeout 30000 --require babel-core/register test/integration", "coverage": "nyc report --reporter=text-lcov | coveralls", "build": "babel src/ -d lib/", From 49bd3b261a50e8910d97746dd8c5b7bf742667c6 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Thu, 10 Jan 2019 09:08:46 -0800 Subject: [PATCH 161/480] Updated address.details with detection for GET and POST calls --- lib/Address.js | 25 +++++++++++++++--- src/Address.js | 29 ++++++++++++++++----- test/integration/address.js | 52 ++++++++++++++++++++++++++++++++++--- 3 files changed, 92 insertions(+), 14 deletions(-) diff --git a/lib/Address.js b/lib/Address.js index ce5a7172..b747ccd6 100644 --- a/lib/Address.js +++ b/lib/Address.js @@ -335,11 +335,28 @@ var Address = function () { }, { key: "details", value: async function details(address) { - if (typeof address !== "string") address = JSON.stringify(address); - try { - var response = await _axios2.default.get(this.restURL + "address/details/" + address); - return response.data; + // Handle single address. + if (typeof address === "string") { + var response = await _axios2.default.get(this.restURL + "address/details/" + address); + + return response.data; + + // Handle array of addresses. + } else if (Array.isArray(address)) { + var options = { + method: "POST", + url: this.restURL + "address/details", + data: { + addresses: address + } + }; + var _response = await (0, _axios2.default)(options); + + return _response.data; + } + + throw new Error("Input address must be a string or array of strings."); } catch (error) { if (error.response && error.response.data) throw error.response.data;else throw error; } diff --git a/src/Address.js b/src/Address.js index 3a171ed3..bedd15a9 100644 --- a/src/Address.js +++ b/src/Address.js @@ -267,13 +267,30 @@ class Address { } async details(address) { - if (typeof address !== "string") address = JSON.stringify(address) - try { - const response = await axios.get( - `${this.restURL}address/details/${address}` - ) - return response.data + // Handle single address. + if (typeof address === "string") { + const response = await axios.get( + `${this.restURL}address/details/${address}` + ) + + return response.data + + // Handle array of addresses. + } else if (Array.isArray(address)) { + const options = { + method: "POST", + url: `${this.restURL}address/details`, + data: { + addresses: address + } + } + const response = await axios(options) + + return response.data + } + + throw new Error(`Input address must be a string or array of strings.`) } catch (error) { if (error.response && error.response.data) throw error.response.data else throw error diff --git a/test/integration/address.js b/test/integration/address.js index 7ffadf55..f1d64e2a 100644 --- a/test/integration/address.js +++ b/test/integration/address.js @@ -9,9 +9,9 @@ const chai = require("chai") const assert = chai.assert -const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOXSDK = require("../../src/bitbox-sdk").default const BITBOX = new BITBOXSDK() -const axios = require("axios") +//const axios = require("axios") // Inspect utility used for debugging. const util = require("util") @@ -23,7 +23,7 @@ util.inspect.defaultOptions = { describe(`#address`, () => { describe(`#details`, () => { - it(`should GET address details`, async () => { + it(`should GET address details for a single address`, async () => { const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" const result = await BITBOX.Address.details(addr) @@ -43,12 +43,56 @@ describe(`#address`, () => { "transactions", "legacyAddress", "cashAddress", - "addrStr", "currentPage", "pagesTotal" ]) assert.isArray(result.transactions) }) + + it(`should GET address details for an array of addresses`, async () => { + const addr = [ + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" + ] + + const result = await BITBOX.Address.details(addr) + //console.log(`result: ${util.inspect(result)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "balance", + "balanceSat", + "totalReceived", + "totalReceivedSat", + "totalSent", + "totalSentSat", + "unconfirmedBalance", + "unconfirmedBalanceSat", + "unconfirmedTxApperances", + "txApperances", + "transactions", + "legacyAddress", + "cashAddress", + "currentPage", + "pagesTotal" + ]) + assert.isArray(result[0].transactions) + }) + + it(`should throw an error for inproper input`, async () => { + try { + const addr = 12345 + + await BITBOX.Address.details(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } + }) }) describe(`#utxo`, () => { From 8cd091adf105e10cd0cc4aa0f1b40e02f452de86 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 11 Jan 2019 11:44:38 -0800 Subject: [PATCH 162/480] Updating unit test --- test/unit/Block.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/test/unit/Block.js b/test/unit/Block.js index 8bc07e41..42e4c28d 100644 --- a/test/unit/Block.js +++ b/test/unit/Block.js @@ -11,7 +11,7 @@ describe("#Block", () => { beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) - it("should get block details", done => { + it("should get block details", async () => { const data = { hash: "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", @@ -41,13 +41,17 @@ describe("#Block", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.Block.details( + const result = await BITBOX.Block.detailsByHash( "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0" ) + + assert.deepEqual(result, data) + /* .then(result => { assert.deepEqual(data, result) }) .then(done, done) + */ }) }) }) From b59c2b4400dd40604394c70d01c56605ad7f8082 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 11 Jan 2019 11:47:35 -0800 Subject: [PATCH 163/480] Adding unit test for detailsByHeight --- test/unit/Address.js | 1033 ---------------- test/unit/BitcoinCash.js | 333 ----- test/unit/Block.js | 49 +- test/unit/Blockchain.js | 442 ------- test/unit/Control.js | 65 - test/unit/Crypto.js | 109 -- test/unit/ECPair.js | 151 --- test/unit/Generating.js | 29 - test/unit/HDNode.js | 347 ------ test/unit/Mining.js | 105 -- test/unit/Mnemonic.js | 344 ------ test/unit/Network.js | 196 --- test/unit/Price.js | 79 -- test/unit/RawTransactions.js | 106 -- test/unit/Script.js | 442 ------- test/unit/Transaction.js | 53 - test/unit/TransactionBuilder.js | 2035 ------------------------------- test/unit/Util.js | 36 - 18 files changed, 42 insertions(+), 5912 deletions(-) delete mode 100644 test/unit/Address.js delete mode 100644 test/unit/BitcoinCash.js delete mode 100644 test/unit/Blockchain.js delete mode 100644 test/unit/Control.js delete mode 100644 test/unit/Crypto.js delete mode 100644 test/unit/ECPair.js delete mode 100644 test/unit/Generating.js delete mode 100644 test/unit/HDNode.js delete mode 100644 test/unit/Mining.js delete mode 100644 test/unit/Mnemonic.js delete mode 100644 test/unit/Network.js delete mode 100644 test/unit/Price.js delete mode 100644 test/unit/RawTransactions.js delete mode 100644 test/unit/Script.js delete mode 100644 test/unit/Transaction.js delete mode 100644 test/unit/TransactionBuilder.js delete mode 100644 test/unit/Util.js diff --git a/test/unit/Address.js b/test/unit/Address.js deleted file mode 100644 index a5d8a100..00000000 --- a/test/unit/Address.js +++ /dev/null @@ -1,1033 +0,0 @@ -const fixtures = require("./fixtures/Address.json") -const chai = require("chai") -const assert = require("assert") -const BITBOXSDK = require("../../lib/bitbox-sdk").default -const BITBOX = new BITBOXSDK() -const axios = require("axios") -const sinon = require("sinon") -const Bitcoin = require("bitcoincashjs-lib") - -function flatten(arrays) { - return [].concat.apply([], arrays) -} - -const XPUBS = flatten([fixtures.mainnetXPub, fixtures.testnetXPub]) - -const LEGACY_ADDRESSES = flatten([ - fixtures.legacyMainnetP2PKH, - fixtures.legacyMainnetP2SH, - fixtures.legacyTestnetP2PKH -]) - -const mainnet_xpubs = [] -fixtures.mainnetXPub.forEach((f, i) => { - mainnet_xpubs.push(f.xpub) -}) -const MAINNET_ADDRESSES = flatten([ - mainnet_xpubs, - fixtures.legacyMainnetP2PKH, - fixtures.legacyMainnetP2SH, - fixtures.cashaddrMainnetP2PKH -]) - -const testnet_xpubs = [] -fixtures.testnetXPub.forEach((f, i) => { - testnet_xpubs.push(f.xpub) -}) -const TESTNET_ADDRESSES = flatten([ - testnet_xpubs, - fixtures.legacyTestnetP2PKH, - fixtures.cashaddrTestnetP2PKH -]) - -const CASHADDR_ADDRESSES = flatten([ - fixtures.cashaddrMainnetP2PKH, - fixtures.cashaddrMainnetP2SH, - fixtures.cashaddrTestnetP2PKH -]) - -const CASHADDR_ADDRESSES_NO_PREFIX = CASHADDR_ADDRESSES.map(address => { - const parts = address.split(":") - return parts[1] -}) - -const REGTEST_ADDRESSES = fixtures.cashaddrRegTestP2PKH - -const REGTEST_ADDRESSES_NO_PREFIX = REGTEST_ADDRESSES.map(address => { - const parts = address.split(":") - return parts[1] -}) - -const HASH160_HASHES = flatten([ - fixtures.hash160MainnetP2PKH, - fixtures.hash160MainnetP2SH, - fixtures.hash160TestnetP2PKH -]) - -const P2PKH_ADDRESSES = flatten([ - fixtures.legacyMainnetP2PKH, - fixtures.legacyTestnetP2PKH, - fixtures.cashaddrMainnetP2PKH, - fixtures.cashaddrTestnetP2PKH, - fixtures.cashaddrRegTestP2PKH -]) - -const P2SH_ADDRESSES = flatten([ - fixtures.legacyMainnetP2SH, - fixtures.cashaddrMainnetP2SH -]) - -describe("#addressConversion", () => { - describe("#toLegacyAddress", () => { - it("should translate legacy address format to itself correctly", () => { - assert.deepEqual( - LEGACY_ADDRESSES.map(address => - BITBOX.Address.toLegacyAddress(address) - ), - LEGACY_ADDRESSES - ) - }) - - it("should convert cashaddr address to legacy base58Check", () => { - assert.deepEqual( - CASHADDR_ADDRESSES.map(address => - BITBOX.Address.toLegacyAddress(address) - ), - LEGACY_ADDRESSES - ) - }) - - it("should convert cashaddr regtest address to legacy base58Check", () => { - assert.deepEqual( - REGTEST_ADDRESSES.map(address => - BITBOX.Address.toLegacyAddress(address) - ), - fixtures.legacyTestnetP2PKH - ) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - BITBOX.Address.toLegacyAddress() - }, BITBOX.BitcoinCash.InvalidAddressError) - assert.throws(() => { - BITBOX.Address.toLegacyAddress("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) - }) - }) - }) - - describe("#toCashAddress", () => { - it("should convert legacy base58Check address to cashaddr", () => { - assert.deepEqual( - LEGACY_ADDRESSES.map(address => - BITBOX.Address.toCashAddress(address, true) - ), - CASHADDR_ADDRESSES - ) - }) - - it("should convert legacy base58Check address to regtest cashaddr", () => { - assert.deepEqual( - fixtures.legacyTestnetP2PKH.map(address => - BITBOX.Address.toCashAddress(address, true, true) - ), - REGTEST_ADDRESSES - ) - }) - - it("should translate cashaddr address format to itself correctly", () => { - assert.deepEqual( - CASHADDR_ADDRESSES.map(address => - BITBOX.Address.toCashAddress(address, true) - ), - CASHADDR_ADDRESSES - ) - }) - - it("should translate regtest cashaddr address format to itself correctly", () => { - assert.deepEqual( - REGTEST_ADDRESSES.map(address => - BITBOX.Address.toCashAddress(address, true, true) - ), - REGTEST_ADDRESSES - ) - }) - - it("should translate no-prefix cashaddr address format to itself correctly", () => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.toCashAddress(address, true) - ), - CASHADDR_ADDRESSES - ) - }) - - it("should translate no-prefix regtest cashaddr address format to itself correctly", () => { - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.toCashAddress(address, true, true) - ), - REGTEST_ADDRESSES - ) - }) - - it("should translate cashaddr address format to itself of no-prefix correctly", () => { - CASHADDR_ADDRESSES.forEach(address => { - const noPrefix = BITBOX.Address.toCashAddress(address, false) - assert.equal(address.split(":")[1], noPrefix) - }) - }) - - it("should translate regtest cashaddr address format to itself of no-prefix correctly", () => { - REGTEST_ADDRESSES.forEach(address => { - const noPrefix = BITBOX.Address.toCashAddress(address, false, true) - assert.equal(address.split(":")[1], noPrefix) - }) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - BITBOX.BitcoinCash.Address.toCashAddress() - }, BITBOX.BitcoinCash.InvalidAddressError) - assert.throws(() => { - BITBOX.BitcoinCash.Address.toCashAddress("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) - }) - }) - }) - describe("#toHash160", () => { - it("should convert legacy base58check address to hash160", () => { - assert.deepEqual( - LEGACY_ADDRESSES.map(address => BITBOX.Address.toHash160(address)), - HASH160_HASHES - ) - }) - - it("should convert cashaddr address to hash160", () => { - assert.deepEqual( - CASHADDR_ADDRESSES.map(address => BITBOX.Address.toHash160(address)), - HASH160_HASHES - ) - }) - - it("should convert regtest cashaddr address to hash160", () => { - assert.deepEqual( - REGTEST_ADDRESSES.map(address => BITBOX.Address.toHash160(address)), - fixtures.hash160TestnetP2PKH - ) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - BITBOX.Address.toHash160() - }, BITBOX.BitcoinCash.InvalidAddressError) - assert.throws(() => { - BITBOX.Address.toHash160("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) - }) - }) - }) - describe("#fromHash160", () => { - it("should convert hash160 to mainnet P2PKH legacy base58check address", () => { - assert.deepEqual( - fixtures.hash160MainnetP2PKH.map(hash160 => - BITBOX.Address.hash160ToLegacy(hash160) - ), - fixtures.legacyMainnetP2PKH - ) - }) - - it("should convert hash160 to mainnet P2SH legacy base58check address", () => { - assert.deepEqual( - fixtures.hash160MainnetP2SH.map(hash160 => - BITBOX.Address.hash160ToLegacy( - hash160, - Bitcoin.networks.bitcoin.scriptHash - ) - ), - fixtures.legacyMainnetP2SH - ) - }) - - it("should convert hash160 to testnet P2PKH legacy base58check address", () => { - assert.deepEqual( - fixtures.hash160TestnetP2PKH.map(hash160 => - BITBOX.Address.hash160ToLegacy( - hash160, - Bitcoin.networks.testnet.pubKeyHash - ) - ), - fixtures.legacyTestnetP2PKH - ) - }) - - it("should convert hash160 to mainnet P2PKH cash address", () => { - assert.deepEqual( - fixtures.hash160MainnetP2PKH.map(hash160 => - BITBOX.Address.hash160ToCash(hash160) - ), - fixtures.cashaddrMainnetP2PKH - ) - }) - - it("should convert hash160 to mainnet P2SH cash address", () => { - assert.deepEqual( - fixtures.hash160MainnetP2SH.map(hash160 => - BITBOX.Address.hash160ToCash( - hash160, - Bitcoin.networks.bitcoin.scriptHash - ) - ), - fixtures.cashaddrMainnetP2SH - ) - }) - - it("should convert hash160 to testnet P2PKH cash address", () => { - assert.deepEqual( - fixtures.hash160TestnetP2PKH.map(hash160 => - BITBOX.Address.hash160ToCash( - hash160, - Bitcoin.networks.testnet.pubKeyHash - ) - ), - fixtures.cashaddrTestnetP2PKH - ) - }) - - it("should convert hash160 to regtest P2PKH cash address", () => { - assert.deepEqual( - fixtures.hash160TestnetP2PKH.map(hash160 => - BITBOX.Address.hash160ToCash( - hash160, - Bitcoin.networks.testnet.pubKeyHash, - true - ) - ), - REGTEST_ADDRESSES - ) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - BITBOX.Address.hash160ToLegacy() - }, BITBOX.BitcoinCash.InvalidAddressError) - assert.throws(() => { - BITBOX.Address.hash160ToLegacy("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) - assert.throws(() => { - BITBOX.Address.hash160ToCash() - }, BITBOX.BitcoinCash.InvalidAddressError) - assert.throws(() => { - BITBOX.Address.hash160ToCash("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) - }) - }) - }) -}) - -describe("address format detection", () => { - describe("#isLegacyAddress", () => { - describe("is legacy", () => { - LEGACY_ADDRESSES.forEach(address => { - it(`should detect ${address} is a legacy base58Check address`, () => { - const isBase58Check = BITBOX.Address.isLegacyAddress(address) - assert.equal(isBase58Check, true) - }) - }) - }) - describe("is not legacy", () => { - CASHADDR_ADDRESSES.forEach(address => { - it(`should detect ${address} is not a legacy address`, () => { - const isBase58Check = BITBOX.Address.isLegacyAddress(address) - assert.equal(isBase58Check, false) - }) - }) - - REGTEST_ADDRESSES.forEach(address => { - it(`should detect ${address} is not a legacy address`, () => { - const isBase58Check = BITBOX.Address.isLegacyAddress(address) - assert.equal(isBase58Check, false) - }) - }) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - BITBOX.Address.isLegacyAddress() - }, BITBOX.BitcoinCash.InvalidAddressError) - assert.throws(() => { - BITBOX.Address.isLegacyAddress("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) - }) - }) - }) - - describe("#isCashAddress", () => { - describe("is cashaddr", () => { - CASHADDR_ADDRESSES.forEach(address => { - it(`should detect ${address} is a cashaddr address`, () => { - const isCashaddr = BITBOX.Address.isCashAddress(address) - assert.equal(isCashaddr, true) - }) - }) - - REGTEST_ADDRESSES.forEach(address => { - it(`should detect ${address} is a cashaddr address`, () => { - const isCashaddr = BITBOX.Address.isCashAddress(address) - assert.equal(isCashaddr, true) - }) - }) - }) - - describe("is not cashaddr", () => { - LEGACY_ADDRESSES.forEach(address => { - it(`should detect ${address} is not a cashaddr address`, () => { - const isCashaddr = BITBOX.Address.isCashAddress(address) - assert.equal(isCashaddr, false) - }) - }) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - BITBOX.Address.isCashAddress() - }, BITBOX.BitcoinCash.InvalidAddressError) - assert.throws(() => { - BITBOX.Address.isCashAddress("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) - }) - }) - }) - describe("#isHash160", () => { - describe("is hash160", () => { - HASH160_HASHES.forEach(address => { - it(`should detect ${address} is a hash160 hash`, () => { - const isHash160 = BITBOX.Address.isHash160(address) - assert.equal(isHash160, true) - }) - }) - }) - describe("is not hash160", () => { - LEGACY_ADDRESSES.forEach(address => { - it(`should detect ${address} is not a hash160 hash`, () => { - const isHash160 = BITBOX.Address.isHash160(address) - assert.equal(isHash160, false) - }) - }) - - CASHADDR_ADDRESSES.forEach(address => { - it(`should detect ${address} is not a hash160 hash`, () => { - const isHash160 = BITBOX.Address.isHash160(address) - assert.equal(isHash160, false) - }) - }) - - REGTEST_ADDRESSES.forEach(address => { - it(`should detect ${address} is not a legacy address`, () => { - const isHash160 = BITBOX.Address.isHash160(address) - assert.equal(isHash160, false) - }) - }) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - BITBOX.Address.isHash160() - }, BITBOX.BitcoinCash.InvalidAddressError) - assert.throws(() => { - BITBOX.Address.isHash160("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) - }) - }) - }) -}) - -describe("network detection", () => { - describe("#isMainnetAddress", () => { - describe("is mainnet", () => { - MAINNET_ADDRESSES.forEach(address => { - it(`should detect ${address} is a mainnet address`, () => { - const isMainnet = BITBOX.Address.isMainnetAddress(address) - assert.equal(isMainnet, true) - }) - }) - }) - - describe("is not mainnet", () => { - TESTNET_ADDRESSES.forEach(address => { - it(`should detect ${address} is not a mainnet address`, () => { - const isMainnet = BITBOX.Address.isMainnetAddress(address) - assert.equal(isMainnet, false) - }) - }) - - REGTEST_ADDRESSES.forEach(address => { - it(`should detect ${address} is not a mainnet address`, () => { - const isMainnet = BITBOX.Address.isMainnetAddress(address) - assert.equal(isMainnet, false) - }) - }) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - BITBOX.Address.isMainnetAddress() - }, BITBOX.BitcoinCash.InvalidAddressError) - assert.throws(() => { - BITBOX.Address.isMainnetAddress("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) - }) - }) - }) - - describe("#isTestnetAddress", () => { - describe("is testnet", () => { - TESTNET_ADDRESSES.forEach(address => { - it(`should detect ${address} is a testnet address`, () => { - const isTestnet = BITBOX.Address.isTestnetAddress(address) - assert.equal(isTestnet, true) - }) - }) - }) - - describe("is not testnet", () => { - MAINNET_ADDRESSES.forEach(address => { - it(`should detect ${address} is not a testnet address`, () => { - const isTestnet = BITBOX.Address.isTestnetAddress(address) - assert.equal(isTestnet, false) - }) - }) - - REGTEST_ADDRESSES.forEach(address => { - it(`should detect ${address} is not a testnet address`, () => { - const isTestnet = BITBOX.Address.isTestnetAddress(address) - assert.equal(isTestnet, false) - }) - }) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - BITBOX.Address.isTestnetAddress() - }, BITBOX.BitcoinCash.InvalidAddressError) - assert.throws(() => { - BITBOX.Address.isTestnetAddress("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) - }) - }) - }) - - describe("#isRegTestAddress", () => { - describe("is testnet", () => { - REGTEST_ADDRESSES.forEach(address => { - it(`should detect ${address} is a regtest address`, () => { - const isRegTest = BITBOX.Address.isRegTestAddress(address) - assert.equal(isRegTest, true) - }) - }) - }) - - describe("is not testnet", () => { - MAINNET_ADDRESSES.forEach(address => { - it(`should detect ${address} is not a regtest address`, () => { - const isRegTest = BITBOX.Address.isRegTestAddress(address) - assert.equal(isRegTest, false) - }) - }) - - TESTNET_ADDRESSES.forEach(address => { - it(`should detect ${address} is not a regtest address`, () => { - const isRegTest = BITBOX.Address.isRegTestAddress(address) - assert.equal(isRegTest, false) - }) - }) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - BITBOX.Address.isRegTestAddress() - }, BITBOX.BitcoinCash.InvalidAddressError) - assert.throws(() => { - BITBOX.Address.isRegTestAddress("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) - }) - }) - }) -}) - -describe("address type detection", () => { - describe("#isP2PKHAddress", () => { - describe("is P2PKH", () => { - P2PKH_ADDRESSES.forEach(address => { - it(`should detect ${address} is a P2PKH address`, () => { - const isP2PKH = BITBOX.Address.isP2PKHAddress(address) - assert.equal(isP2PKH, true) - }) - }) - }) - - describe("is not P2PKH", () => { - P2SH_ADDRESSES.forEach(address => { - it(`should detect ${address} is not a P2PKH address`, () => { - const isP2PKH = BITBOX.Address.isP2PKHAddress(address) - assert.equal(isP2PKH, false) - }) - }) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - BITBOX.Address.isP2PKHAddress() - }, BITBOX.BitcoinCash.InvalidAddressError) - assert.throws(() => { - BITBOX.Address.isP2PKHAddress("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) - }) - }) - }) - - describe("#isP2SHAddress", () => { - describe("is P2SH", () => { - P2SH_ADDRESSES.forEach(address => { - it(`should detect ${address} is a P2SH address`, () => { - const isP2SH = BITBOX.Address.isP2SHAddress(address) - assert.equal(isP2SH, true) - }) - }) - }) - - describe("is not P2SH", () => { - P2PKH_ADDRESSES.forEach(address => { - it(`should detect ${address} is not a P2SH address`, () => { - const isP2SH = BITBOX.Address.isP2SHAddress(address) - assert.equal(isP2SH, false) - }) - }) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - BITBOX.Address.isP2SHAddress() - }, BITBOX.BitcoinCash.InvalidAddressError) - assert.throws(() => { - BITBOX.Address.isP2SHAddress("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) - }) - }) - }) -}) - -describe("cashaddr prefix detection", () => { - it("should return the same result for detectAddressFormat", () => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.detectAddressFormat(address) - ), - CASHADDR_ADDRESSES.map(address => - BITBOX.Address.detectAddressFormat(address) - ) - ) - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.detectAddressFormat(address) - ), - REGTEST_ADDRESSES.map(address => - BITBOX.Address.detectAddressFormat(address) - ) - ) - }) - it("should return the same result for detectAddressNetwork", () => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.detectAddressNetwork(address) - ), - CASHADDR_ADDRESSES.map(address => - BITBOX.Address.detectAddressNetwork(address) - ) - ) - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.detectAddressNetwork(address) - ), - REGTEST_ADDRESSES.map(address => - BITBOX.Address.detectAddressNetwork(address) - ) - ) - }) - it("should return the same result for detectAddressType", () => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.detectAddressType(address) - ), - CASHADDR_ADDRESSES.map(address => - BITBOX.Address.detectAddressType(address) - ) - ) - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.detectAddressType(address) - ), - REGTEST_ADDRESSES.map(address => - BITBOX.Address.detectAddressType(address) - ) - ) - }) - it("should return the same result for toLegacyAddress", () => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.toLegacyAddress(address) - ), - CASHADDR_ADDRESSES.map(address => BITBOX.Address.toLegacyAddress(address)) - ) - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.toLegacyAddress(address) - ), - REGTEST_ADDRESSES.map(address => BITBOX.Address.toLegacyAddress(address)) - ) - }) - it("should return the same result for isLegacyAddress", () => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.isLegacyAddress(address) - ), - CASHADDR_ADDRESSES.map(address => BITBOX.Address.isLegacyAddress(address)) - ) - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.isLegacyAddress(address) - ), - REGTEST_ADDRESSES.map(address => BITBOX.Address.isLegacyAddress(address)) - ) - }) - it("should return the same result for isCashAddress", () => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.isCashAddress(address) - ), - CASHADDR_ADDRESSES.map(address => BITBOX.Address.isCashAddress(address)) - ) - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.isCashAddress(address) - ), - REGTEST_ADDRESSES.map(address => BITBOX.Address.isCashAddress(address)) - ) - }) - it("should return the same result for isMainnetAddress", () => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.isMainnetAddress(address) - ), - CASHADDR_ADDRESSES.map(address => - BITBOX.Address.isMainnetAddress(address) - ) - ) - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.isMainnetAddress(address) - ), - REGTEST_ADDRESSES.map(address => BITBOX.Address.isMainnetAddress(address)) - ) - }) - it("should return the same result for isTestnetAddress", () => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.isTestnetAddress(address) - ), - CASHADDR_ADDRESSES.map(address => - BITBOX.Address.isTestnetAddress(address) - ) - ) - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.isTestnetAddress(address) - ), - REGTEST_ADDRESSES.map(address => BITBOX.Address.isTestnetAddress(address)) - ) - }) - it("should return the same result for isP2PKHAddress", () => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.isP2PKHAddress(address) - ), - CASHADDR_ADDRESSES.map(address => BITBOX.Address.isP2PKHAddress(address)) - ) - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.isP2PKHAddress(address) - ), - REGTEST_ADDRESSES.map(address => BITBOX.Address.isP2PKHAddress(address)) - ) - }) - it("should return the same result for isP2SHAddress", () => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.isP2SHAddress(address) - ), - CASHADDR_ADDRESSES.map(address => BITBOX.Address.isP2SHAddress(address)) - ) - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.isP2SHAddress(address) - ), - REGTEST_ADDRESSES.map(address => BITBOX.Address.isP2SHAddress(address)) - ) - }) -}) - -describe("#detectAddressFormat", () => { - LEGACY_ADDRESSES.forEach(address => { - it(`should detect ${address} is a legacy base58Check address`, () => { - const isBase58Check = BITBOX.Address.detectAddressFormat(address) - assert.equal(isBase58Check, "legacy") - }) - }) - - CASHADDR_ADDRESSES.forEach(address => { - it(`should detect ${address} is a legacy cashaddr address`, () => { - const isCashaddr = BITBOX.Address.detectAddressFormat(address) - assert.equal(isCashaddr, "cashaddr") - }) - }) - - REGTEST_ADDRESSES.forEach(address => { - it(`should detect ${address} is a legacy cashaddr address`, () => { - const isCashaddr = BITBOX.Address.detectAddressFormat(address) - assert.equal(isCashaddr, "cashaddr") - }) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - BITBOX.Address.detectAddressFormat() - }, BITBOX.BitcoinCash.InvalidAddressError) - assert.throws(() => { - BITBOX.Address.detectAddressFormat("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) - }) - }) -}) - -describe("#detectAddressNetwork", () => { - MAINNET_ADDRESSES.forEach(address => { - it(`should detect ${address} is a mainnet address`, () => { - const isMainnet = BITBOX.Address.detectAddressNetwork(address) - assert.equal(isMainnet, "mainnet") - }) - }) - - TESTNET_ADDRESSES.forEach(address => { - it(`should detect ${address} is a testnet address`, () => { - const isTestnet = BITBOX.Address.detectAddressNetwork(address) - assert.equal(isTestnet, "testnet") - }) - }) - - REGTEST_ADDRESSES.forEach(address => { - it(`should detect ${address} is a testnet address`, () => { - const isTestnet = BITBOX.Address.detectAddressNetwork(address) - assert.equal(isTestnet, "regtest") - }) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - BITBOX.Address.detectAddressNetwork() - }, BITBOX.BitcoinCash.InvalidAddressError) - assert.throws(() => { - BITBOX.Address.detectAddressNetwork("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) - }) - }) -}) - -describe("#detectAddressType", () => { - P2PKH_ADDRESSES.forEach(address => { - it(`should detect ${address} is a P2PKH address`, () => { - const isP2PKH = BITBOX.Address.detectAddressType(address) - assert.equal(isP2PKH, "p2pkh") - }) - }) - - P2SH_ADDRESSES.forEach(address => { - it(`should detect ${address} is a P2SH address`, () => { - const isP2SH = BITBOX.Address.detectAddressType(address) - assert.equal(isP2SH, "p2sh") - }) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - BITBOX.Address.detectAddressType() - }, BITBOX.BitcoinCash.InvalidAddressError) - assert.throws(() => { - BITBOX.Address.detectAddressType("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) - }) - }) -}) - -describe("#fromXPub", () => { - XPUBS.forEach((xpub, i) => { - xpub.addresses.forEach((address, j) => { - it(`generate public external change address ${j} for ${ - xpub.xpub - }`, () => { - assert.equal(BITBOX.Address.fromXPub(xpub.xpub, `0/${j}`), address) - }) - }) - }) -}) - -describe("#fromOutputScript", () => { - const script = BITBOX.Script.encode([ - Buffer.from("BOX", "ascii"), - BITBOX.Script.opcodes.OP_CAT, - Buffer.from("BITBOX", "ascii"), - BITBOX.Script.opcodes.OP_EQUAL - ]) - - // hash160 script buffer - const p2sh_hash160 = BITBOX.Crypto.hash160(script) - - // encode hash160 as P2SH output - const scriptPubKey = BITBOX.Script.scriptHash.output.encode(p2sh_hash160) - const p2shAddress = BITBOX.Address.fromOutputScript(scriptPubKey) - fixtures.p2shMainnet.forEach((address, i) => { - it(`generate address from output script`, () => { - assert.equal(p2shAddress, address) - }) - }) -}) - -describe("#details", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get details", done => { - const data = { - legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", - cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", - balance: 300.0828874, - balanceSat: 30008288740, - totalReceived: 12945.45174649, - totalReceivedSat: 1294545174649, - totalSent: 12645.36885909, - totalSentSat: 1264536885909, - unconfirmedBalance: 0, - unconfirmedBalanceSat: 0, - unconfirmedTxApperances: 0, - txApperances: 1042, - transactions: [ - "b29425a876f62e114508e67e66b5eb1ab0d320d7c9a57fb0ece086a36e2b7309" - ] - } - - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Address.details( - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - ) - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) -}) - -describe("#utxo", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get utxo", done => { - const data = [ - { - legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", - cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", - txid: - "6f56254424378d6914cebd097579c70664843e5876ca86f0bf412ba7f3928326", - vout: 0, - scriptPubKey: "a91479cb06a5986baf588237de9b7fb1a8f68c35b76687", - amount: 12.5002911, - satoshis: 1250029110, - height: 528745, - confirmations: 17 - }, - { - legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", - cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", - txid: - "b29425a876f62e114508e67e66b5eb1ab0d320d7c9a57fb0ece086a36e2b7309", - vout: 0, - scriptPubKey: "a91479cb06a5986baf588237de9b7fb1a8f68c35b76687", - amount: 12.50069247, - satoshis: 1250069247, - height: 528744, - confirmations: 18 - } - ] - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Address.utxo( - "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l" - ) - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) -}) - -describe("#unconfirmed", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get unconfirmed transactions", done => { - const data = [ - { - txid: - "e0aadd861a06993e39af932bb0b9ad69e7b37ef5843a13c6724789e1c94f3513", - vout: 1, - scriptPubKey: "76a914a0f531f4ff810a415580c12e54a7072946bb927e88ac", - amount: 0.00008273, - satoshis: 8273, - confirmations: 0, - ts: 1526680569, - legacyAddress: "1Fg4r9iDrEkCcDmHTy2T79EusNfhyQpu7W", - cashAddress: "bitcoincash:qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c" - } - ] - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Address.unconfirmed( - "bitcoincash:qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c" - ) - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) -}) diff --git a/test/unit/BitcoinCash.js b/test/unit/BitcoinCash.js deleted file mode 100644 index 9059d332..00000000 --- a/test/unit/BitcoinCash.js +++ /dev/null @@ -1,333 +0,0 @@ -const fixtures = require("./fixtures/BitcoinCash.json") -const chai = require("chai") -const assert = require("assert") -const BITBOXSDK = require("../../lib/bitbox-sdk").default -const BITBOX = new BITBOXSDK() - -// TODO -// 1. generate testnet p2sh -// 2. generate cashaddr mainnet p2sh -// 3. generate cashaddr testnet p2sh -// 4. create BITBOX fromBase58 method -// * confirm xpub cannot generate WIF -// * confirm xpriv can generate WIF -// 5. create fromXPriv method w/ tests and docs -// 1. mainnet -// * confirm xpriv generates address -// * confirm xpriv generates WIF -// 2. testnet -// * confirm xpriv generates address -// * confirm xpriv generates WIF -// 6. More error test cases. - -describe("#BitcoinCash", () => { - describe("price conversion", () => { - describe("#toBitcoinCash", () => { - fixtures.conversion.toBCH.satoshis.forEach(satoshi => { - it(`should convert ${satoshi[0]} Satoshis to ${ - satoshi[1] - } $BCH`, () => { - assert.equal(BITBOX.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]) - }) - }) - - fixtures.conversion.toBCH.strings.forEach(satoshi => { - it(`should convert "${satoshi[0]}" Satoshis as a string to ${ - satoshi[1] - } $BCH`, () => { - assert.equal(BITBOX.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]) - }) - }) - - fixtures.conversion.toBCH.not.forEach(bch => { - it(`converts ${bch[0]} to Bitcoin Cash, not to ${ - bch[1] - } Satoshi`, () => { - assert.notEqual(BITBOX.BitcoinCash.toBitcoinCash(bch[0]), bch[1]) - }) - }) - - fixtures.conversion.toBCH.rounding.forEach(satoshi => { - it(`rounding ${satoshi[0]} to ${satoshi[1]} $BCH`, () => { - assert.equal(BITBOX.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]) - }) - }) - }) - - describe("#toSatoshi", () => { - fixtures.conversion.toSatoshi.bch.forEach(bch => { - it(`should convert ${bch[0]} $BCH to ${bch[1]} Satoshis`, () => { - assert.equal(BITBOX.BitcoinCash.toSatoshi(bch[0]), bch[1]) - }) - }) - - fixtures.conversion.toSatoshi.strings.forEach(bch => { - it(`should convert "${bch[0]}" $BCH as a string to ${ - bch[1] - } Satoshis`, () => { - assert.equal(BITBOX.BitcoinCash.toSatoshi(bch[0]), bch[1]) - }) - }) - - fixtures.conversion.toSatoshi.not.forEach(satoshi => { - it(`converts ${satoshi[0]} to Satoshi, not to ${ - satoshi[1] - } Bitcoin Cash`, () => { - assert.notEqual(BITBOX.BitcoinCash.toSatoshi(satoshi[0]), satoshi[1]) - }) - }) - - fixtures.conversion.toSatoshi.rounding.forEach(bch => { - it(`rounding ${bch[0]} to ${bch[1]} Satoshi`, () => { - assert.equal(BITBOX.BitcoinCash.toSatoshi(bch[0]), bch[1]) - }) - }) - }) - - describe("#satsToBits", () => { - fixtures.conversion.satsToBits.bch.forEach(bch => { - it(`should convert ${bch[0]} BCH to ${bch[1]} bits`, () => { - assert.equal( - BITBOX.BitcoinCash.satsToBits(BITBOX.BitcoinCash.toSatoshi(bch[0])), - bch[1] - ) - }) - }) - - fixtures.conversion.satsToBits.strings.forEach(bch => { - it(`should convert "${bch[0]}" BCH as a string to ${ - bch[1] - } bits`, () => { - assert.equal( - BITBOX.BitcoinCash.satsToBits(BITBOX.BitcoinCash.toSatoshi(bch[0])), - bch[1] - ) - }) - }) - }) - // - // describe('#satsFromBits', () => { - // fixtures.conversion.satsFromBits.bch.forEach((bch) => { - // it(`should convert ${bch[1]} bits to ${bch[0]} satoshis`, () => { - // assert.equal(BITBOX.BitcoinCash.satsFromBits(bch[1]), bch[0]); - // }); - // }); - // - // fixtures.conversion.satsFromBits.strings.forEach((bch) => { - // it(`should convert "${bch[1]}" bits as a string to ${bch[0]} satoshis`, () => { - // assert.equal(BITBOX.BitcoinCash.satsFromBits(bch[1]), bch[0]); - // }); - // }); - // }); - }) - - describe("sign and verify messages", () => { - describe("#signMessageWithPrivKey", () => { - fixtures.signatures.sign.forEach(sign => { - it(`should sign a message w/ ${sign.network} ${ - sign.privateKeyWIF - }`, () => { - const privateKeyWIF = sign.privateKeyWIF - const message = sign.message - const signature = BITBOX.BitcoinCash.signMessageWithPrivKey( - privateKeyWIF, - message - ) - assert.equal(signature, sign.signature) - }) - }) - }) - - describe("#verifyMessage", () => { - fixtures.signatures.verify.forEach(sign => { - it(`should verify a valid signed message from ${ - sign.network - } cashaddr address ${sign.address}`, () => { - assert.equal( - BITBOX.BitcoinCash.verifyMessage( - sign.address, - sign.signature, - sign.message - ), - true - ) - }) - }) - - fixtures.signatures.verify.forEach(sign => { - const legacyAddress = BITBOX.Address.toLegacyAddress(sign.address) - it(`should verify a valid signed message from ${ - sign.network - } legacy address ${legacyAddress}`, () => { - assert.equal( - BITBOX.BitcoinCash.verifyMessage( - legacyAddress, - sign.signature, - sign.message - ), - true - ) - }) - }) - - fixtures.signatures.verify.forEach(sign => { - const legacyAddress = BITBOX.Address.toLegacyAddress(sign.address) - it(`should not verify an invalid signed message from ${ - sign.network - } cashaddr address ${sign.address}`, () => { - assert.equal( - BITBOX.BitcoinCash.verifyMessage( - sign.address, - sign.signature, - "nope" - ), - false - ) - }) - }) - }) - }) - - describe("encode and decode to base58Check", () => { - describe("#encodeBase58Check", () => { - fixtures.encodeBase58Check.forEach((base58Check, i) => { - it(`encode ${base58Check.hex} as base58Check ${ - base58Check.base58Check - }`, () => { - assert.equal( - BITBOX.BitcoinCash.encodeBase58Check(base58Check.hex), - base58Check.base58Check - ) - }) - }) - }) - - describe("#decodeBase58Check", () => { - fixtures.encodeBase58Check.forEach((base58Check, i) => { - it(`decode ${base58Check.base58Check} as ${base58Check.hex}`, () => { - assert.equal( - BITBOX.BitcoinCash.decodeBase58Check(base58Check.base58Check), - base58Check.hex - ) - }) - }) - }) - }) - - describe("encode and decode BIP21 urls", () => { - describe("#encodeBIP21", () => { - fixtures.bip21.valid.forEach((bip21, i) => { - it(`encode ${bip21.address} as url`, () => { - const url = BITBOX.BitcoinCash.encodeBIP21( - bip21.address, - bip21.options - ) - assert.equal(url, bip21.url) - }) - }) - fixtures.bip21.valid_regtest.forEach((bip21, i) => { - it(`encode ${bip21.address} as url`, () => { - const url = BITBOX.BitcoinCash.encodeBIP21( - bip21.address, - bip21.options, - true - ) - assert.equal(url, bip21.url) - }) - }) - }) - - describe("#decodeBIP21", () => { - fixtures.bip21.valid.forEach((bip21, i) => { - it(`decodes ${bip21.url}`, () => { - const decoded = BITBOX.BitcoinCash.decodeBIP21(bip21.url) - assert.equal(decoded.options.amount, bip21.options.amount) - assert.equal(decoded.options.label, bip21.options.label) - assert.equal( - BITBOX.Address.toCashAddress(decoded.address), - BITBOX.Address.toCashAddress(bip21.address) - ) - }) - }) - // fixtures.bip21.valid_regtest.forEach((bip21, i) => { - // it(`decodes ${bip21.url}`, () => { - // const decoded = BITBOX.BitcoinCash.decodeBIP21(bip21.url) - // assert.equal(decoded.options.amount, bip21.options.amount) - // assert.equal(decoded.options.label, bip21.options.label) - // assert.equal( - // BITBOX.Address.toCashAddress(decoded.address, true, true), - // BITBOX.Address.toCashAddress(bip21.address, true, true) - // ) - // }) - // }) - }) - }) - - describe("#getByteCount", () => { - fixtures.getByteCount.forEach(fixture => { - it(`get byte count`, () => { - const byteCount = BITBOX.BitcoinCash.getByteCount( - fixture.inputs, - fixture.outputs - ) - assert.equal(byteCount, fixture.byteCount) - }) - }) - }) - - describe("#bip38", () => { - describe("#encryptBIP38", () => { - fixtures.bip38.encrypt.mainnet.forEach(fixture => { - it(`BIP 38 encrypt wif ${fixture.wif} with password ${ - fixture.password - } on mainnet`, () => { - const encryptedKey = BITBOX.BitcoinCash.encryptBIP38( - fixture.wif, - fixture.password - ) - assert.equal(encryptedKey, fixture.encryptedKey) - }) - }) - - fixtures.bip38.encrypt.testnet.forEach(fixture => { - it(`BIP 38 encrypt wif ${fixture.wif} with password ${ - fixture.password - } on testnet`, () => { - const encryptedKey = BITBOX.BitcoinCash.encryptBIP38( - fixture.wif, - fixture.password - ) - assert.equal(encryptedKey, fixture.encryptedKey) - }) - }) - }) - - describe("#decryptBIP38", () => { - fixtures.bip38.decrypt.mainnet.forEach(fixture => { - it(`BIP 38 decrypt encrypted key ${ - fixture.encryptedKey - } on mainnet`, () => { - const wif = BITBOX.BitcoinCash.decryptBIP38( - fixture.encryptedKey, - fixture.password, - "mainnet" - ) - assert.equal(wif, fixture.wif) - }) - }) - - fixtures.bip38.decrypt.testnet.forEach(fixture => { - it(`BIP 38 decrypt encrypted key ${ - fixture.encryptedKey - } on testnet`, () => { - const wif = BITBOX.BitcoinCash.decryptBIP38( - fixture.encryptedKey, - fixture.password, - "testnet" - ) - assert.equal(wif, fixture.wif) - }) - }) - }) - }) -}) diff --git a/test/unit/Block.js b/test/unit/Block.js index 42e4c28d..cce25a10 100644 --- a/test/unit/Block.js +++ b/test/unit/Block.js @@ -6,7 +6,7 @@ const axios = require("axios") const sinon = require("sinon") describe("#Block", () => { - describe("#details", () => { + describe("#detailsByHash", () => { let sandbox beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) @@ -46,12 +46,47 @@ describe("#Block", () => { ) assert.deepEqual(result, data) - /* - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - */ + }) + }) + + describe("#detailsByHeight", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get block details", async () => { + const data = { + hash: + "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", + size: 216, + height: 507, + version: 1, + merkleroot: + "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8", + tx: [ + "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8" + ], + time: 1231973656, + nonce: 330467862, + bits: "1d00ffff", + difficulty: 1, + chainwork: + "000000000000000000000000000000000000000000000000000001fc01fc01fc", + confirmations: 528402, + previousblockhash: + "00000000a99525c043fd7e323414b60add43c254c44860094048f9c01e9a5fdd", + nextblockhash: + "000000000d550f4161f2702165fdd782ec72ff9c541f864ebb8256b662b7e51a", + reward: 50, + isMainChain: true, + poolInfo: {} + } + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + const result = await BITBOX.Block.detailsByHeight("507") + + assert.deepEqual(result, data) }) }) }) diff --git a/test/unit/Blockchain.js b/test/unit/Blockchain.js deleted file mode 100644 index 478cce68..00000000 --- a/test/unit/Blockchain.js +++ /dev/null @@ -1,442 +0,0 @@ -const chai = require("chai") -const assert = require("assert") -const axios = require("axios") -const BITBOXSDK = require("../../lib/bitbox-sdk").default -const BITBOX = new BITBOXSDK() -const sinon = require("sinon") - -describe("#Blockchain", () => { - describe("#getBestBlockHash", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get best block hash", done => { - const resolved = new Promise(r => - r({ - data: - "0000000000000000005f1f550d3d8b142b684277016ebd00fa29c668606ae52d" - }) - ) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Blockchain.getBestBlockHash() - .then(result => { - const hash = - "0000000000000000005f1f550d3d8b142b684277016ebd00fa29c668606ae52d" - assert.equal(hash, result) - }) - .then(done, done) - }) - }) - - describe("#getBlock", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = { - hash: "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09", - confirmations: 526807, - size: 216, - height: 1000, - version: 1, - versionHex: "00000001", - merkleroot: - "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33", - tx: ["fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33"], - time: 1232346882, - mediantime: 1232344831, - nonce: 2595206198, - bits: "1d00ffff", - difficulty: 1, - chainwork: - "000000000000000000000000000000000000000000000000000003e903e903e9", - previousblockhash: - "0000000008e647742775a230787d66fdf92c46a48c896bfbc85cdc8acc67e87d", - nextblockhash: - "00000000a2887344f8db859e372e7e4bc26b23b9de340f725afbf2edb265b4c6" - } - - it("should get block by hash", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Blockchain.getBlock( - "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09" - ) - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getBlockchainInfo", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = { - chain: "main", - blocks: 527810, - headers: 527810, - bestblockhash: - "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0", - difficulty: 576023394804.6666, - mediantime: 1524878499, - verificationprogress: 0.9999990106793685, - chainwork: - "00000000000000000000000000000000000000000096da5b040913fa09249b4e", - pruned: false, - softforks: [ - { id: "bip34", version: 2, reject: [Object] }, - { id: "bip66", version: 3, reject: [Object] }, - { id: "bip65", version: 4, reject: [Object] } - ], - bip9_softforks: { - csv: { - status: "active", - startTime: 1462060800, - timeout: 1493596800, - since: 419328 - } - } - } - - it("should get blockchain info", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Blockchain.getBlockchainInfo() - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getBlockCount", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = 527810 - - it("should get block count", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Blockchain.getBlockCount() - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getBlockHash", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = - "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0" - - it("should get block hash by height", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Blockchain.getBlockHash(527810) - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getBlockHeader", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = { - hash: "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0", - confirmations: 1, - height: 527810, - version: 536870912, - versionHex: "20000000", - merkleroot: - "9298432bbebe4638456aa19cb7ef91639da87668a285d88d0ecd6080424d223b", - time: 1524881438, - mediantime: 1524878499, - nonce: 3326843941, - bits: "1801e8a5", - difficulty: 576023394804.6666, - chainwork: - "00000000000000000000000000000000000000000096da5b040913fa09249b4e", - previousblockhash: - "000000000000000000b33251708bc7a7b4540e61880d8c376e8e2db6a19a4789" - } - - it("should get block header by hash", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Blockchain.getBlockHeader( - "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0", - true - ) - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getDifficulty", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = "577528469277.1339" - - it("should get difficulty", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Blockchain.getDifficulty() - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getMempoolAncestors", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = "Transaction not in mempool" - - it("should get mempool ancestors", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Blockchain.getMempoolAncestors( - "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", - true - ) - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getMempoolDescendants", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = { - result: "Transaction not in mempool" - } - - it("should get mempool descendants", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Blockchain.getMempoolDescendants( - "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", - true - ) - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getMempoolEntry", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = { - result: "Transaction not in mempool" - } - - it("should get mempool entry", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Blockchain.getMempoolEntry( - "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88" - ) - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getMempoolInfo", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = { - result: { - size: 317, - bytes: 208583, - usage: 554944, - maxmempool: 300000000, - mempoolminfee: 0 - } - } - - it("should get mempool info", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Blockchain.getMempoolInfo() - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getRawMempool", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = { - result: { - transactions: [ - { - txid: - "ab36d68dd0a618592fe34e4a898e8beeeb4049133547dbb16f9338384084af96", - size: 191, - fee: 0.00047703, - modifiedfee: 0.00047703, - time: 1524883317, - height: 527811, - startingpriority: 5287822727.272727, - currentpriority: 5287822727.272727, - descendantcount: 1, - descendantsize: 191, - descendantfees: 47703, - ancestorcount: 1, - ancestorsize: 191, - ancestorfees: 47703, - depends: [] - } - ] - } - } - - it("should get mempool info", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Blockchain.getRawMempool() - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getTxOut", () => { - // TODO finish this test - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = { - result: {} - } - - it("should get TODO", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Blockchain.getTxOut( - "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", - 0, - true - ) - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#preciousBlock", () => { - // TODO finish this test - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = { - result: {} - } - - it("should get TODO", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Blockchain.preciousBlock() - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#pruneBlockchain", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = "Cannot prune blocks because node is not in prune mode." - - it("should prune blockchain", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "post").returns(resolved) - - BITBOX.Blockchain.pruneBlockchain(507) - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#verifyChain", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = true - - it("should verify blockchain", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Blockchain.verifyChain(3, 6) - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#verifyTxOutProof", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = "proof must be hexadecimal string (not '')" - - it("should verify utxo proof", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Blockchain.verifyTxOutProof(3, 6) - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) -}) diff --git a/test/unit/Control.js b/test/unit/Control.js deleted file mode 100644 index 309abddb..00000000 --- a/test/unit/Control.js +++ /dev/null @@ -1,65 +0,0 @@ -const chai = require("chai") -const assert = require("assert") -const axios = require("axios") -const BITBOXSDK = require("../../lib/bitbox-sdk").default -const BITBOX = new BITBOXSDK() -const sinon = require("sinon") - -describe("#Control", () => { - describe("#getInfo", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get info", done => { - const data = { - version: 170000, - protocolversion: 70015, - blocks: 527813, - timeoffset: 0, - connections: 21, - proxy: "", - difficulty: 581086703759.5878, - testnet: false, - paytxfee: 0, - relayfee: 0.00001, - errors: "" - } - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Control.getInfo() - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getMemoryInfo", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get memory info", done => { - const data = { - locked: { - used: 0, - free: 65536, - total: 65536, - locked: 65536, - chunks_used: 0, - chunks_free: 1 - } - } - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Control.getMemoryInfo() - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) -}) diff --git a/test/unit/Crypto.js b/test/unit/Crypto.js deleted file mode 100644 index ec8c1de1..00000000 --- a/test/unit/Crypto.js +++ /dev/null @@ -1,109 +0,0 @@ -const fixtures = require("./fixtures/Crypto.json") -const chai = require("chai") -const assert = require("assert") -const BITBOXSDK = require("../../lib/bitbox-sdk").default -const BITBOX = new BITBOXSDK() -const Buffer = require("safe-buffer").Buffer - -describe("#Crypto", () => { - describe("#sha256", () => { - fixtures.sha256.forEach(fixture => { - it(`should create SHA256Hash hex encoded ${fixture.hash} from ${ - fixture.hex - }`, () => { - const data = Buffer.from(fixture.hex, "hex") - const sha256Hash = BITBOX.Crypto.sha256(data).toString("hex") - assert.equal(sha256Hash, fixture.hash) - }) - - it(`should create 64 character SHA256Hash hex encoded`, () => { - const data = Buffer.from(fixture.hex, "hex") - const sha256Hash = BITBOX.Crypto.sha256(data).toString("hex") - assert.equal(sha256Hash.length, 64) - }) - }) - }) - - describe("#ripemd160", () => { - fixtures.ripemd160.forEach(fixture => { - it(`should create RIPEMD160Hash hex encoded ${fixture.hash} from ${ - fixture.hex - }`, () => { - const data = Buffer.from(fixture.hex, "hex") - const ripemd160 = BITBOX.Crypto.ripemd160(data).toString("hex") - assert.equal(ripemd160, fixture.hash) - }) - - it(`should create 64 character RIPEMD160Hash hex encoded`, () => { - const data = Buffer.from(fixture.hex, "hex") - const ripemd160 = BITBOX.Crypto.ripemd160(data).toString("hex") - assert.equal(ripemd160.length, 40) - }) - }) - }) - - describe("#hash256", () => { - fixtures.hash256.forEach(fixture => { - it(`should create double SHA256 Hash hex encoded ${fixture.hash} from ${ - fixture.hex - }`, () => { - const data = Buffer.from(fixture.hex, "hex") - const hash256 = BITBOX.Crypto.hash256(data).toString("hex") - assert.equal(hash256, fixture.hash) - }) - - it(`should create 64 character SHA256 Hash hex encoded`, () => { - const data = Buffer.from(fixture.hex, "hex") - const hash256 = BITBOX.Crypto.hash256(data).toString("hex") - assert.equal(hash256.length, 64) - }) - }) - }) - - describe("#hash160", () => { - fixtures.hash160.forEach(fixture => { - it(`should create RIPEMD160(SHA256()) hex encoded ${fixture.hash} from ${ - fixture.hex - }`, () => { - const data = Buffer.from(fixture.hex, "hex") - const hash160 = BITBOX.Crypto.hash160(data).toString("hex") - assert.equal(hash160, fixture.hash) - }) - - it(`should create 64 character SHA256Hash hex encoded`, () => { - const data = Buffer.from(fixture.hex, "hex") - const hash160 = BITBOX.Crypto.hash160(data).toString("hex") - assert.equal(hash160.length, 40) - }) - }) - }) - - describe("#randomBytes", () => { - for (let i = 0; i < 6; i++) { - it("should return 16 bytes of entropy hex encoded", () => { - const entropy = BITBOX.Crypto.randomBytes(16) - assert.equal(Buffer.byteLength(entropy), 16) - }) - - it("should return 20 bytes of entropy hex encoded", () => { - const entropy = BITBOX.Crypto.randomBytes(20) - assert.equal(Buffer.byteLength(entropy), 20) - }) - - it("should return 24 bytes of entropy hex encoded", () => { - const entropy = BITBOX.Crypto.randomBytes(24) - assert.equal(Buffer.byteLength(entropy), 24) - }) - - it("should return 28 bytes of entropy hex encoded", () => { - const entropy = BITBOX.Crypto.randomBytes(28) - assert.equal(Buffer.byteLength(entropy), 28) - }) - - it("should return 32 bytes of entropy hex encoded", () => { - const entropy = BITBOX.Crypto.randomBytes(32) - assert.equal(Buffer.byteLength(entropy), 32) - }) - } - }) -}) diff --git a/test/unit/ECPair.js b/test/unit/ECPair.js deleted file mode 100644 index 68973c5e..00000000 --- a/test/unit/ECPair.js +++ /dev/null @@ -1,151 +0,0 @@ -const fixtures = require("./fixtures/ECPair.json") -const chai = require("chai") -const assert = require("assert") -const BITBOXSDK = require("../../lib/bitbox-sdk").default -const BITBOX = new BITBOXSDK() -const script = BITBOX.Script -const Buffer = require("safe-buffer").Buffer - -describe("#ECPair", () => { - describe("#fromWIF", () => { - fixtures.fromWIF.forEach(fixture => { - it(`should create ECPair from WIF ${fixture.privateKeyWIF}`, () => { - const ecpair = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) - assert.equal(typeof ecpair, "object") - }) - - it(`should get ${fixture.legacy} legacy address`, () => { - const legacy = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) - assert.equal(BITBOX.HDNode.toLegacyAddress(legacy), fixture.legacy) - }) - - it(`should get ${fixture.cashAddr} cash address`, () => { - const cashAddr = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) - assert.equal(BITBOX.HDNode.toCashAddress(cashAddr), fixture.cashAddr) - }) - - it(`should get ${fixture.regtestAddr} cash address`, () => { - const cashAddr = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) - assert.equal( - BITBOX.HDNode.toCashAddress(cashAddr, true), - fixture.regtestAddr - ) - }) - }) - }) - - describe("#toWIF", () => { - fixtures.toWIF.forEach(fixture => { - it(`should get WIF ${fixture.privateKeyWIF} from ECPair`, () => { - const ecpair = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) - const wif = BITBOX.ECPair.toWIF(ecpair) - assert.equal(wif, fixture.privateKeyWIF) - }) - }) - }) - - describe("#fromPublicKey", () => { - fixtures.fromPublicKey.forEach(fixture => { - it(`should create ECPair from public key buffer`, () => { - const ecpair = BITBOX.ECPair.fromPublicKey( - Buffer.from(fixture.pubkeyHex, "hex") - ) - assert.equal(typeof ecpair, "object") - }) - - it(`should get ${fixture.legacy} legacy address`, () => { - const ecpair = BITBOX.ECPair.fromPublicKey( - Buffer.from(fixture.pubkeyHex, "hex") - ) - assert.equal(BITBOX.HDNode.toLegacyAddress(ecpair), fixture.legacy) - }) - - it(`should get ${fixture.cashAddr} cash address`, () => { - const ecpair = BITBOX.ECPair.fromPublicKey( - Buffer.from(fixture.pubkeyHex, "hex") - ) - assert.equal(BITBOX.HDNode.toCashAddress(ecpair), fixture.cashAddr) - }) - - it(`should get ${fixture.regtestAddr} cash address`, () => { - const ecpair = BITBOX.ECPair.fromPublicKey( - Buffer.from(fixture.pubkeyHex, "hex") - ) - assert.equal( - BITBOX.HDNode.toCashAddress(ecpair, true), - fixture.regtestAddr - ) - }) - }) - }) - - describe("#toPublicKey", () => { - fixtures.toPublicKey.forEach(fixture => { - it(`should create a public key buffer from an ECPair`, () => { - const ecpair = BITBOX.ECPair.fromPublicKey( - Buffer.from(fixture.pubkeyHex, "hex") - ) - const pubkeyBuffer = BITBOX.ECPair.toPublicKey(ecpair) - assert.equal(typeof pubkeyBuffer, "object") - }) - }) - }) - - describe("#toLegacyAddress", () => { - fixtures.toLegacyAddress.forEach(fixture => { - it(`should create legacy address ${ - fixture.legacy - } from an ECPair`, () => { - const ecpair = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) - const legacyAddress = BITBOX.ECPair.toLegacyAddress(ecpair) - assert.equal(legacyAddress, fixture.legacy) - }) - }) - }) - - describe("#toCashAddress", () => { - fixtures.toCashAddress.forEach(fixture => { - it(`should create cash address ${ - fixture.cashAddr - } from an ECPair`, () => { - const ecpair = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) - const cashAddr = BITBOX.ECPair.toCashAddress(ecpair) - assert.equal(cashAddr, fixture.cashAddr) - }) - }) - - fixtures.toCashAddress.forEach(fixture => { - it(`should create regtest cash address ${ - fixture.regtestAddr - } from an ECPair`, () => { - const ecpair = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) - const regtestAddr = BITBOX.ECPair.toCashAddress(ecpair, true) - assert.equal(regtestAddr, fixture.regtestAddr) - }) - }) - }) - - describe("#sign", () => { - fixtures.sign.forEach(fixture => { - it(`should sign 32 byte hash buffer`, () => { - const ecpair = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) - const buf = Buffer.from(BITBOX.Crypto.sha256(fixture.data), "hex") - const signatureBuf = BITBOX.ECPair.sign(ecpair, buf) - assert.equal(typeof signatureBuf, "object") - }) - }) - }) - - describe("#verify", () => { - fixtures.verify.forEach(fixture => { - it(`should verify signed 32 byte hash buffer`, () => { - const ecpair1 = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF1) - const ecpair2 = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF2) - const buf = Buffer.from(BITBOX.Crypto.sha256(fixture.data), "hex") - const signature = BITBOX.ECPair.sign(ecpair1, buf) - const verify = BITBOX.ECPair.verify(ecpair1, buf, signature) - assert.equal(verify, true) - }) - }) - }) -}) diff --git a/test/unit/Generating.js b/test/unit/Generating.js deleted file mode 100644 index 8a67bb4a..00000000 --- a/test/unit/Generating.js +++ /dev/null @@ -1,29 +0,0 @@ -const chai = require("chai") -const assert = require("assert") -const axios = require("axios") -const BITBOXSDK = require("../../lib/bitbox-sdk").default -const BITBOX = new BITBOXSDK() -const sinon = require("sinon") - -describe("#Generating", () => { - describe("#generateToAddress", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should generate", done => { - const data = [] - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "post").returns(resolved) - - BITBOX.Generating.generateToAddress( - 1, - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - ) - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) -}) diff --git a/test/unit/HDNode.js b/test/unit/HDNode.js deleted file mode 100644 index 3558d882..00000000 --- a/test/unit/HDNode.js +++ /dev/null @@ -1,347 +0,0 @@ -const fixtures = require("./fixtures/HDNode.json") -const chai = require("chai") -const assert = require("assert") -const BITBOXSDK = require("../../lib/bitbox-sdk").default -const BITBOX = new BITBOXSDK() -const Buffer = require("safe-buffer").Buffer - -describe("#HDNode", () => { - describe("#fromSeed", () => { - fixtures.fromSeed.forEach(mnemonic => { - it(`should create an HDNode from root seed buffer`, () => { - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(mnemonic) - const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) - assert.notEqual(hdNode, null) - }) - }) - }) - - describe("#derive", () => { - fixtures.derive.forEach(derive => { - it(`should derive non hardened child HDNode`, () => { - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(derive.mnemonic) - const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) - const childHDNode = BITBOX.HDNode.derive(hdNode, 0) - assert.equal(BITBOX.HDNode.toXPub(childHDNode), derive.xpub) - assert.equal(BITBOX.HDNode.toXPriv(childHDNode), derive.xpriv) - }) - }) - }) - - describe("#deriveHardened", () => { - fixtures.deriveHardened.forEach(derive => { - it(`should derive hardened child HDNode`, () => { - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(derive.mnemonic) - const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) - const childHDNode = BITBOX.HDNode.deriveHardened(hdNode, 0) - assert.equal(BITBOX.HDNode.toXPub(childHDNode), derive.xpub) - assert.equal(BITBOX.HDNode.toXPriv(childHDNode), derive.xpriv) - }) - }) - - describe("derive BIP44 $BCH account", () => { - fixtures.deriveBIP44.forEach(derive => { - it(`should derive BIP44 $BCH account`, () => { - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(derive.mnemonic) - const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) - const purpose = BITBOX.HDNode.deriveHardened(hdNode, 44) - const coin = BITBOX.HDNode.deriveHardened(purpose, 145) - const childHDNode = BITBOX.HDNode.deriveHardened(coin, 0) - assert.equal(BITBOX.HDNode.toXPub(childHDNode), derive.xpub) - assert.equal(BITBOX.HDNode.toXPriv(childHDNode), derive.xpriv) - }) - }) - }) - }) - - describe("#derivePath", () => { - describe("derive non hardened Path", () => { - fixtures.derivePath.forEach(derive => { - it(`should derive non hardened child HDNode from path`, () => { - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(derive.mnemonic) - const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) - const childHDNode = BITBOX.HDNode.derivePath(hdNode, "0") - assert.equal(BITBOX.HDNode.toXPub(childHDNode), derive.xpub) - assert.equal(BITBOX.HDNode.toXPriv(childHDNode), derive.xpriv) - }) - }) - }) - - describe("derive hardened Path", () => { - fixtures.deriveHardenedPath.forEach(derive => { - it(`should derive hardened child HDNode from path`, () => { - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(derive.mnemonic) - const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) - const childHDNode = BITBOX.HDNode.derivePath(hdNode, "0'") - assert.equal(BITBOX.HDNode.toXPub(childHDNode), derive.xpub) - assert.equal(BITBOX.HDNode.toXPriv(childHDNode), derive.xpriv) - }) - }) - }) - - describe("derive BIP44 $BCH account", () => { - fixtures.deriveBIP44.forEach(derive => { - it(`should derive BIP44 $BCH account`, () => { - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(derive.mnemonic) - const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) - const childHDNode = BITBOX.HDNode.derivePath(hdNode, "44'/145'/0'") - assert.equal(BITBOX.HDNode.toXPub(childHDNode), derive.xpub) - assert.equal(BITBOX.HDNode.toXPriv(childHDNode), derive.xpriv) - }) - }) - }) - }) - - describe("#toLegacyAddress", () => { - fixtures.toLegacyAddress.forEach(fixture => { - it(`should get address ${fixture.address} from HDNode`, () => { - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) - const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) - const childHDNode = BITBOX.HDNode.derivePath(hdNode, "0") - const addy = BITBOX.HDNode.toLegacyAddress(childHDNode) - assert.equal(addy, fixture.address) - }) - }) - }) - - describe("#toCashAddress", () => { - fixtures.toCashAddress.forEach(fixture => { - it(`should get address ${fixture.address} from HDNode`, () => { - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) - const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) - const childHDNode = BITBOX.HDNode.derivePath(hdNode, "0") - const addy = BITBOX.HDNode.toCashAddress(childHDNode) - assert.equal(addy, fixture.address) - }) - - it(`should get address ${fixture.regtestAddress} from HDNode`, () => { - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) - const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) - const childHDNode = BITBOX.HDNode.derivePath(hdNode, "0") - const addr = BITBOX.HDNode.toCashAddress(childHDNode, true) - assert.equal(addr, fixture.regtestAddress) - }) - }) - }) - - describe("#toWIF", () => { - fixtures.toWIF.forEach(fixture => { - it(`should get privateKeyWIF ${ - fixture.privateKeyWIF - } from HDNode`, () => { - const hdNode = BITBOX.HDNode.fromXPriv(fixture.xpriv) - assert.equal(BITBOX.HDNode.toWIF(hdNode), fixture.privateKeyWIF) - }) - }) - }) - - describe("#toXPub", () => { - fixtures.toXPub.forEach(fixture => { - it(`should create xpub ${fixture.xpub} from an HDNode`, () => { - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) - const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) - const xpub = BITBOX.HDNode.toXPub(hdNode) - assert.equal(xpub, fixture.xpub) - }) - }) - }) - - describe("#toXPriv", () => { - fixtures.toXPriv.forEach(fixture => { - it(`should create xpriv ${fixture.xpriv} from an HDNode`, () => { - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) - const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) - const xpriv = BITBOX.HDNode.toXPriv(hdNode) - assert.equal(xpriv, fixture.xpriv) - }) - }) - }) - - describe("#toKeyPair", () => { - fixtures.toKeyPair.forEach(fixture => { - it(`should get ECPair from an HDNode`, () => { - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) - const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) - const keyPair = BITBOX.HDNode.toKeyPair(hdNode) - assert.equal(typeof keyPair, "object") - }) - }) - }) - - describe("#toPublicKey", () => { - fixtures.toPublicKey.forEach(fixture => { - it(`should create public key buffer from an HDNode`, () => { - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) - const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) - const publicKeyBuffer = BITBOX.HDNode.toPublicKey(hdNode) - assert.equal(typeof publicKeyBuffer, "object") - }) - }) - }) - - describe("#fromXPriv", () => { - fixtures.fromXPriv.forEach(fixture => { - const hdNode = BITBOX.HDNode.fromXPriv(fixture.xpriv) - it(`should create HDNode from xpriv ${fixture.xpriv}`, () => { - assert.notEqual(hdNode, null) - }) - - it(`should export xpriv ${fixture.xpriv}`, () => { - assert.equal(BITBOX.HDNode.toXPriv(hdNode), fixture.xpriv) - }) - - it(`should export xpub ${fixture.xpub}`, () => { - assert.equal(BITBOX.HDNode.toXPub(hdNode), fixture.xpub) - }) - - it(`should export legacy address ${fixture.legacy}`, () => { - assert.equal(BITBOX.HDNode.toLegacyAddress(hdNode), fixture.legacy) - }) - - it(`should export cashaddress ${fixture.cashaddress}`, () => { - assert.equal(BITBOX.HDNode.toCashAddress(hdNode), fixture.cashaddress) - }) - - it(`should export regtest cashaddress ${fixture.regtestaddress}`, () => { - assert.equal( - BITBOX.HDNode.toCashAddress(hdNode, true), - fixture.regtestaddress - ) - }) - - it(`should export privateKeyWIF ${fixture.privateKeyWIF}`, () => { - assert.equal(BITBOX.HDNode.toWIF(hdNode), fixture.privateKeyWIF) - }) - }) - }) - - describe("#fromXPub", () => { - fixtures.fromXPub.forEach(fixture => { - const hdNode = BITBOX.HDNode.fromXPub(fixture.xpub) - it(`should create HDNode from xpub ${fixture.xpub}`, () => { - assert.notEqual(hdNode, null) - }) - - it(`should export xpub ${fixture.xpub}`, () => { - assert.equal(BITBOX.HDNode.toXPub(hdNode), fixture.xpub) - }) - - it(`should export legacy address ${fixture.legacy}`, () => { - assert.equal(BITBOX.HDNode.toLegacyAddress(hdNode), fixture.legacy) - }) - - it(`should export cashaddress ${fixture.cashaddress}`, () => { - assert.equal(BITBOX.HDNode.toCashAddress(hdNode), fixture.cashaddress) - }) - - it(`should export regtest cashaddress ${fixture.regtestaddress}`, () => { - assert.equal( - BITBOX.HDNode.toCashAddress(hdNode, true), - fixture.regtestaddress - ) - }) - }) - }) - - describe("#bip32", () => { - describe("create accounts and addresses", () => { - fixtures.accounts.forEach(fixture => { - const seedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) - const hdNode = BITBOX.HDNode.fromSeed(seedBuffer) - const a = BITBOX.HDNode.derivePath(hdNode, "0'") - const external = BITBOX.HDNode.derivePath(a, "0") - const account = BITBOX.HDNode.createAccount([external]) - - it(`#createAccount`, () => { - assert.notEqual(account, null) - }) - - describe("#getChainAddress", () => { - const external1 = BITBOX.Address.toCashAddress( - account.getChainAddress(0) - ) - it(`should create external change address ${external1}`, () => { - assert.equal(external1, fixture.externals[0]) - }) - }) - - describe("#nextChainAddress", () => { - for (let i = 0; i < 4; i++) { - const ex = BITBOX.Address.toCashAddress(account.nextChainAddress(0)) - it(`should create external change address ${ex}`, () => { - assert.equal(ex, fixture.externals[i + 1]) - }) - } - }) - }) - }) - }) - - describe("#sign", () => { - fixtures.sign.forEach(fixture => { - it(`should sign 32 byte hash buffer`, () => { - const hdnode = BITBOX.HDNode.fromXPriv(fixture.privateKeyWIF) - const buf = Buffer.from(BITBOX.Crypto.sha256(fixture.data), "hex") - const signatureBuf = BITBOX.HDNode.sign(hdnode, buf) - assert.equal(typeof signatureBuf, "object") - }) - }) - }) - - describe("#verify", () => { - fixtures.verify.forEach(fixture => { - it(`should verify signed 32 byte hash buffer`, () => { - const hdnode1 = BITBOX.HDNode.fromXPriv(fixture.privateKeyWIF1) - const hdnode2 = BITBOX.HDNode.fromXPriv(fixture.privateKeyWIF2) - const buf = Buffer.from(BITBOX.Crypto.sha256(fixture.data), "hex") - const signature = BITBOX.HDNode.sign(hdnode1, buf) - const verify = BITBOX.HDNode.verify(hdnode1, buf, signature) - assert.equal(verify, true) - }) - }) - }) - - describe("#isPublic", () => { - fixtures.isPublic.forEach(fixture => { - it(`should verify hdnode is public`, () => { - const node = BITBOX.HDNode.fromXPub(fixture.xpub) - assert.equal(BITBOX.HDNode.isPublic(node), true) - }) - }) - - fixtures.isPublic.forEach(fixture => { - it(`should verify hdnode is not public`, () => { - const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) - assert.equal(BITBOX.HDNode.isPublic(node), false) - }) - }) - }) - - describe("#isPrivate", () => { - fixtures.isPrivate.forEach(fixture => { - it(`should verify hdnode is not private`, () => { - const node = BITBOX.HDNode.fromXPub(fixture.xpub) - assert.equal(BITBOX.HDNode.isPrivate(node), false) - }) - }) - - fixtures.isPrivate.forEach(fixture => { - it(`should verify hdnode is private`, () => { - const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) - assert.equal(BITBOX.HDNode.isPrivate(node), true) - }) - }) - }) - - describe("#toIdentifier", () => { - fixtures.toIdentifier.forEach(fixture => { - it(`should get identifier of hdnode`, () => { - const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const publicKeyBuffer = BITBOX.HDNode.toPublicKey(node) - const hash160 = BITBOX.Crypto.hash160(publicKeyBuffer) - const identifier = BITBOX.HDNode.toIdentifier(node) - assert.equal(identifier.toString("hex"), hash160.toString("hex")) - }) - }) - }) -}) diff --git a/test/unit/Mining.js b/test/unit/Mining.js deleted file mode 100644 index 0090e547..00000000 --- a/test/unit/Mining.js +++ /dev/null @@ -1,105 +0,0 @@ -const chai = require("chai") -const assert = require("assert") -const axios = require("axios") -const BITBOXSDK = require("../../lib/bitbox-sdk").default -const BITBOX = new BITBOXSDK() -const sinon = require("sinon") - -describe("#Mining", () => { - describe("#getBlockTemplate", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get block template", done => { - const data = { - data: - "01000000017f6305e3b0b05f5b57a82f4e6d4187e148bbe56a947208390e488bad36472368000000006a47304402203b0079ff5b896187feb02e2679c87ac2fb8d483b60e0721ed33601e2c0eecc700220590f8a0e1a51b53b368294861fd5fc99db3a6607d0f4e543f6217108e208c1834121024c93c841d7f576584ffbf513b7abd8283e6562669905f6554f788fce4cc67a34ffffffff0228100000000000001976a914af78709a76abc8a28e568c9210c8247dd10cff2c88ac22020000000000001976a914f339927678803f451b41400737e7dc83c6a8682188ac00000000", - txid: - "7f462d71c649a0d8cfbaa2d20d8ff86677966b308f0ac9906ee015bf4453f97a", - hash: - "7f462d71c649a0d8cfbaa2d20d8ff86677966b308f0ac9906ee015bf4453f97a", - depends: [], - fee: 226, - sigops: 2 - } - - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Mining.getBlockTemplate("") - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getMiningInfo", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get mining info", done => { - const data = { - blocks: 527816, - currentblocksize: 89408, - currentblocktx: 156, - difficulty: 568757800682.7649, - blockprioritypercentage: 5, - errors: "", - networkhashps: 4347259225696976000, - pooledtx: 184, - chain: "main" - } - - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Mining.getMiningInfo() - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getNetworkHashps", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get network hashps", done => { - const data = 3586365937646890000 - - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Mining.getNetworkHashps() - .then(result => { - assert.equal(data, result) - }) - .then(done, done) - }) - }) - - describe("#submitBlock", () => { - // TODO finish - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should TODO", done => { - const data = {} - - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "post").returns(resolved) - - BITBOX.Mining.submitBlock() - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) -}) diff --git a/test/unit/Mnemonic.js b/test/unit/Mnemonic.js deleted file mode 100644 index 9d7f1a45..00000000 --- a/test/unit/Mnemonic.js +++ /dev/null @@ -1,344 +0,0 @@ -const fixtures = require("./fixtures/Mnemonic.json") -const chai = require("chai") -const assert = require("assert") -const BITBOXSDK = require("../../lib/bitbox-sdk").default -const BITBOX = new BITBOXSDK() -const Buffer = require("safe-buffer").Buffer - -describe("#Mnemonic", () => { - describe("#generate", () => { - it("should generate a 12 word mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate(128) - assert.equal(mnemonic.split(" ").length, 12) - }) - - it("should generate a 15 word mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate(160) - assert.equal(mnemonic.split(" ").length, 15) - }) - - it("should generate a 18 word mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate(192) - assert.equal(mnemonic.split(" ").length, 18) - }) - - it("should generate an 21 word mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate(224) - assert.equal(mnemonic.split(" ").length, 21) - }) - - it("should generate an 24 word mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate(256) - assert.equal(mnemonic.split(" ").length, 24) - }) - - it("should generate an 24 word italian mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate( - 256, - BITBOX.Mnemonic.wordLists().italian - ) - assert.equal(mnemonic.split(" ").length, 24) - }) - }) - - describe("#fromEntropy", () => { - it("should generate a 12 word mnemonic from 16 bytes of entropy", () => { - const rand = BITBOX.Crypto.randomBytes(16) - const mnemonic = BITBOX.Mnemonic.fromEntropy(rand.toString("hex")) - assert.equal(mnemonic.split(" ").length, 12) - }) - - it("should generate a 15 word mnemonic from 20 bytes of entropy", () => { - const rand = BITBOX.Crypto.randomBytes(20) - const mnemonic = BITBOX.Mnemonic.fromEntropy(rand.toString("hex")) - assert.equal(mnemonic.split(" ").length, 15) - }) - - it("should generate an 18 word mnemonic from 24 bytes of entropy", () => { - const rand = BITBOX.Crypto.randomBytes(24) - const mnemonic = BITBOX.Mnemonic.fromEntropy(rand.toString("hex")) - assert.equal(mnemonic.split(" ").length, 18) - }) - - it("should generate an 21 word mnemonic from 28 bytes of entropy", () => { - const rand = BITBOX.Crypto.randomBytes(28) - const mnemonic = BITBOX.Mnemonic.fromEntropy(rand.toString("hex")) - assert.equal(mnemonic.split(" ").length, 21) - }) - - it("should generate an 24 word mnemonic from 32 bytes of entropy", () => { - const rand = BITBOX.Crypto.randomBytes(32) - const mnemonic = BITBOX.Mnemonic.fromEntropy(rand.toString("hex")) - assert.equal(mnemonic.split(" ").length, 24) - }) - - it("should generate an 24 french word mnemonic 32 bytes of entropy", () => { - const rand = BITBOX.Crypto.randomBytes(32) - const mnemonic = BITBOX.Mnemonic.fromEntropy( - rand.toString("hex"), - BITBOX.Mnemonic.wordLists().french - ) - assert.equal(mnemonic.split(" ").length, 24) - }) - - fixtures.fromEntropy.forEach(entropy => { - const mnemonic = BITBOX.Mnemonic.fromEntropy(entropy.entropy) - it(`should convert ${entropy.entropy} to ${entropy.mnemonic}`, () => { - assert.equal(mnemonic, entropy.mnemonic) - }) - }) - }) - - describe("#toEntropy", () => { - it("should turn a 12 word mnemonic to entropy", () => { - const mnemonic = BITBOX.Mnemonic.generate(128) - const entropy = BITBOX.Mnemonic.toEntropy(mnemonic) - assert.equal(entropy.length, 16) - }) - - it("should turn a 15 word mnemonic to entropy", () => { - const mnemonic = BITBOX.Mnemonic.generate(160) - const entropy = BITBOX.Mnemonic.toEntropy(mnemonic) - assert.equal(entropy.length, 20) - }) - - it("should turn a 18 word mnemonic to entropy", () => { - const mnemonic = BITBOX.Mnemonic.generate(192) - const entropy = BITBOX.Mnemonic.toEntropy(mnemonic) - assert.equal(entropy.length, 24) - }) - - it("should turn a 21 word mnemonic to entropy", () => { - const mnemonic = BITBOX.Mnemonic.generate(224) - const entropy = BITBOX.Mnemonic.toEntropy(mnemonic) - assert.equal(entropy.length, 28) - }) - - it("should turn a 24 word mnemonic to entropy", () => { - const mnemonic = BITBOX.Mnemonic.generate(256) - const entropy = BITBOX.Mnemonic.toEntropy(mnemonic) - assert.equal(entropy.length, 32) - }) - - it("should turn a 24 word spanish mnemonic to entropy", () => { - const mnemonic = BITBOX.Mnemonic.generate( - 256, - BITBOX.Mnemonic.wordLists().spanish - ) - const entropy = BITBOX.Mnemonic.toEntropy( - mnemonic, - BITBOX.Mnemonic.wordLists().spanish - ) - assert.equal(entropy.length, 32) - }) - - fixtures.fromEntropy.forEach(fixture => { - const entropy = BITBOX.Mnemonic.toEntropy(fixture.mnemonic) - it(`should convert ${fixture.mnemonic} to ${fixture.entropy}`, () => { - assert.equal(entropy.toString("hex"), fixture.entropy) - }) - }) - }) - - describe("#validate", () => { - it("fails for a mnemonic that is too short", () => { - assert.equal( - BITBOX.Mnemonic.validate( - "mixed winner", - BITBOX.Mnemonic.wordLists().english - ), - "Invalid mnemonic" - ) - }) - - it("fails for a mnemonic that is too long", () => { - assert.equal( - BITBOX.Mnemonic.validate( - "mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake", - BITBOX.Mnemonic.wordLists().english - ), - "Invalid mnemonic" - ) - }) - - it("fails if mnemonic words are not in the word list", () => { - assert.equal( - BITBOX.Mnemonic.validate( - "failsauce one two three four five six seven eight nine ten eleven", - BITBOX.Mnemonic.wordLists().english - ), - "failsauce is not in wordlist, did you mean balance?" - ) - }) - - it("validate a 128 bit mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate(128) - assert.equal( - BITBOX.Mnemonic.validate(mnemonic, BITBOX.Mnemonic.wordLists().english), - "Valid mnemonic" - ) - }) - - it("validate a 160 bit mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate(160) - assert.equal( - BITBOX.Mnemonic.validate(mnemonic, BITBOX.Mnemonic.wordLists().english), - "Valid mnemonic" - ) - }) - - it("validate a 192 bit mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate(192) - assert.equal( - BITBOX.Mnemonic.validate(mnemonic, BITBOX.Mnemonic.wordLists().english), - "Valid mnemonic" - ) - }) - - it("validate a 224 bit mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate(224) - assert.equal( - BITBOX.Mnemonic.validate(mnemonic, BITBOX.Mnemonic.wordLists().english), - "Valid mnemonic" - ) - }) - - it("validate a 256 bit mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate(256) - assert.equal( - BITBOX.Mnemonic.validate(mnemonic, BITBOX.Mnemonic.wordLists().english), - "Valid mnemonic" - ) - }) - - it("validate a 256 bit chinese simplified mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate( - 256, - BITBOX.Mnemonic.wordLists().chinese_simplified - ) - assert.equal( - BITBOX.Mnemonic.validate( - mnemonic, - BITBOX.Mnemonic.wordLists().chinese_simplified - ), - "Valid mnemonic" - ) - }) - }) - - describe("#toSeed", () => { - it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 128 bit mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate(128) - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(mnemonic, "") - assert.equal(rootSeedBuffer.byteLength, 64) - }) - - it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 160 bit mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate(160) - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(mnemonic, "") - assert.equal(rootSeedBuffer.byteLength, 64) - }) - - it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 192 bit mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate(192) - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(mnemonic, "") - assert.equal(rootSeedBuffer.byteLength, 64) - }) - - it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 224 bit mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate(224) - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(mnemonic, "") - assert.equal(rootSeedBuffer.byteLength, 64) - }) - - it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 256 bit mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate(256) - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(mnemonic, "") - assert.equal(rootSeedBuffer.byteLength, 64) - }) - }) - - describe("#wordLists", () => { - it("return a list of 2048 english words", () => { - assert.equal(BITBOX.Mnemonic.wordLists().english.length, 2048) - }) - - it("return a list of 2048 japanese words", () => { - assert.equal(BITBOX.Mnemonic.wordLists().japanese.length, 2048) - }) - - it("return a list of 2048 chinese simplified words", () => { - assert.equal(BITBOX.Mnemonic.wordLists().chinese_simplified.length, 2048) - }) - - it("return a list of 2048 chinese traditional words", () => { - assert.equal(BITBOX.Mnemonic.wordLists().chinese_traditional.length, 2048) - }) - - it("return a list of 2048 french words", () => { - assert.equal(BITBOX.Mnemonic.wordLists().french.length, 2048) - }) - - it("return a list of 2048 italian words", () => { - assert.equal(BITBOX.Mnemonic.wordLists().italian.length, 2048) - }) - - it("return a list of 2048 korean words", () => { - assert.equal(BITBOX.Mnemonic.wordLists().korean.length, 2048) - }) - - it("return a list of 2048 spanish words", () => { - assert.equal(BITBOX.Mnemonic.wordLists().spanish.length, 2048) - }) - }) - - describe("#toKeypairs", () => { - fixtures.toKeypairs.forEach((fixture, i) => { - const keypairs = BITBOX.Mnemonic.toKeypairs(fixture.mnemonic, 5) - keypairs.forEach((keypair, j) => { - it(`Generate keypair from mnemonic`, () => { - assert.equal( - keypair.privateKeyWIF, - fixtures.toKeypairs[i].output[j].privateKeyWIF - ) - // assert.equal( - // keypair.address, - // fixtures.toKeypairs[i].output[j].address - // ) - }) - }) - - const regtestKeypairs = BITBOX.Mnemonic.toKeypairs( - fixture.mnemonic, - 5, - true - ) - regtestKeypairs.forEach((keypair, j) => { - it(`Generate keypair from mnemonic`, () => { - assert.equal( - keypair.privateKeyWIF, - fixtures.toKeypairs[i].output[j].privateKeyWIFRegTest - ) - // assert.equal( - // keypair.address, - // fixtures.toKeypairs[i].output[j].regtestAddress - // ) - }) - }) - }) - }) - - describe("#findNearestWord", () => { - fixtures.findNearestWord.forEach((fixture, i) => { - const word = BITBOX.Mnemonic.findNearestWord( - fixture.word, - BITBOX.Mnemonic.wordLists()[fixture.language] - ) - it(`find word ${fixture.foundWord} near ${fixture.word} in ${ - fixture.language - }`, () => { - assert.equal(word, fixture.foundWord) - }) - }) - }) -}) diff --git a/test/unit/Network.js b/test/unit/Network.js deleted file mode 100644 index 0e3a8439..00000000 --- a/test/unit/Network.js +++ /dev/null @@ -1,196 +0,0 @@ -const chai = require("chai") -const assert = require("assert") -const axios = require("axios") -const BITBOXSDK = require("../../lib/bitbox-sdk").default -const BITBOX = new BITBOXSDK() -const sinon = require("sinon") - -describe("#Network", () => { - describe("#getConnectionCount", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get connection count", done => { - const data = 13 - - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Network.getConnectionCount() - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getNetTotals", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get net totals", done => { - const data = { - totalbytesrecv: 9348169, - totalbytessent: 246903958, - timemillis: 1524922367067, - uploadtarget: { - timeframe: 86400, - target: 0, - target_reached: false, - serve_historical_blocks: true, - bytes_left_in_cycle: 0, - time_left_in_cycle: 0 - } - } - - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Network.getNetTotals() - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getNetworkInfo", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get network info", done => { - const data = { - version: 170000, - subversion: "/Bitcoin ABC:0.17.0(EB32.0)/", - protocolversion: 70015, - localservices: "0000000000000025", - localrelay: true, - timeoffset: 0, - networkactive: true, - connections: 11, - networks: [ - { - name: "ipv4", - limited: false, - reachable: true, - proxy: "", - proxy_randomize_credentials: false - }, - { - name: "ipv6", - limited: false, - reachable: true, - proxy: "", - proxy_randomize_credentials: false - }, - { - name: "onion", - limited: true, - reachable: false, - proxy: "", - proxy_randomize_credentials: false - } - ], - relayfee: 0.00001, - incrementalfee: 0.00001, - localaddresses: [{ address: "138.68.54.100", port: 8333, score: 584 }], - warnings: "" - } - - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Network.getNetworkInfo() - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getPeerInfo", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get peer info", done => { - const data = [ - { - id: 99, - addr: "54.39.17.74:47990", - addrlocal: "138.68.54.100:8333", - services: "0000000000000000", - relaytxes: true, - lastsend: 1524922628, - lastrecv: 1524922616, - bytessent: 310482, - bytesrecv: 10637, - conntime: 1524890802, - timeoffset: 0, - pingtime: 0.066598, - minping: 0.066502, - version: 70015, - subver: "/bitnodes.ping.com:0.1/", - inbound: true, - addnode: false, - startingheight: 527808, - banscore: 0, - synced_headers: 527872, - synced_blocks: -1, - inflight: [], - whitelisted: false, - bytessent_per_msg: { - addr: 14975, - feefilter: 32, - inv: 286552, - ping: 8512, - pong: 192, - sendcmpct: 33, - sendheaders: 24, - verack: 24, - version: 138 - }, - bytesrecv_per_msg: { - addr: 1410, - inv: 366, - ping: 192, - pong: 8512, - verack: 24, - version: 133 - } - } - ] - - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Network.getPeerInfo() - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#ping", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should ping", done => { - const data = null - - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Network.ping() - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) -}) diff --git a/test/unit/Price.js b/test/unit/Price.js deleted file mode 100644 index 0763c3ce..00000000 --- a/test/unit/Price.js +++ /dev/null @@ -1,79 +0,0 @@ -const chai = require("chai") -const assert = require("assert") -const BITBOXSDK = require("../../lib/bitbox-sdk").default -const BITBOX = new BITBOXSDK() -const axios = require("axios") -const sinon = require("sinon") - -describe("#Price", () => { - describe("#current", () => { - describe("#all currencies", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get current price for all currencies", done => { - const data = { - USD: 872.31, - GBP: 665.3, - EUR: 748.34, - CNY: 5848.32, - PAB: 872.31, - ARS: 24005.97, - BOB: 6060.11, - CLP: 570141.82, - PEN: 2851.32, - PYG: 4986964.67, - UYU: 27300.76, - VEF: 69697569, - CRC: 494264.3, - MXN: 16476.28, - NGN: 314903.91, - INR: 59620.88, - RUB: 54650.83, - AUD: 1180.92, - BRL: 3347.57, - CAD: 1151.44, - ZAR: 11579.24, - GHS: 4177.25, - JPY: 98519.56, - ILS: 3165.36, - SAR: 3271.21, - KRW: 984345.13, - COP: 2521500.32, - PHP: 46612.32, - PLN: 3215.41 - } - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Price.current() - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#single currency", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get current price for single currency", done => { - const data = { - price: 46347, - stamp: 1539620880 - } - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Price.current("usd") - .then(result => { - assert.deepEqual(data.price / 100.0, result) - }) - .then(done, done) - }) - }) - }) -}) diff --git a/test/unit/RawTransactions.js b/test/unit/RawTransactions.js deleted file mode 100644 index 1b16cfab..00000000 --- a/test/unit/RawTransactions.js +++ /dev/null @@ -1,106 +0,0 @@ -const chai = require("chai") -const assert = require("assert") -const axios = require("axios") -const BITBOXSDK = require("../../lib/bitbox-sdk").default -const BITBOX = new BITBOXSDK() - -const sinon = require("sinon") - -describe("#RawTransactions", () => { - describe("#decodeRawTransaction", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should decode raw transaction", done => { - const data = { - txid: - "4ebd325a4b394cff8c57e8317ccf5a8d0e2bdf1b8526f8aad6c8e43d8240621a", - hash: - "4ebd325a4b394cff8c57e8317ccf5a8d0e2bdf1b8526f8aad6c8e43d8240621a", - size: 10, - version: 2, - locktime: 0, - vin: [], - vout: [] - } - - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.RawTransactions.decodeRawTransaction(["02000000000000000000"]) - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#decodeScript", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should decode script", done => { - const data = { - asm: "OP_RETURN 5361746f736869204e616b616d6f746f", - type: "nulldata", - p2sh: "bitcoincash:prswx5965nfumux9qng5kj8hw603vcne7q08t8c6jp" - } - - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.RawTransactions.decodeScript([ - "6a105361746f736869204e616b616d6f746f" - ]) - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getRawTransaction", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get raw transaction", done => { - const data = - "020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000" - - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.RawTransactions.getRawTransaction([ - "808d617eccaad4f1397fe07a06ec5ed15a0821cf22a3e0931c0c92aef9e572b6" - ]) - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#sendRawTransaction", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should send raw transaction", done => { - const data = "Error: transaction already in block chain" - - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "post").returns(resolved) - - BITBOX.RawTransactions.sendRawTransaction([ - "020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000" - ]) - .then(result => { - assert.equal(data, result) - }) - .then(done, done) - }) - }) -}) diff --git a/test/unit/Script.js b/test/unit/Script.js deleted file mode 100644 index c70e35f1..00000000 --- a/test/unit/Script.js +++ /dev/null @@ -1,442 +0,0 @@ -const fixtures = require("./fixtures/Script.json") -const chai = require("chai") -const assert = require("assert") -const BITBOXSDK = require("../../lib/bitbox-sdk").default -const BITBOX = new BITBOXSDK() -const Buffer = require("safe-buffer").Buffer - -describe("#Script", () => { - describe("#decode", () => { - describe("P2PKH scriptSig", () => { - fixtures.decodeScriptSig.forEach(fixture => { - it(`should decode scriptSig buffer`, () => { - const decodedScriptSig = BITBOX.Script.decode( - Buffer.from(fixture.scriptSigHex, "hex") - ) - assert.equal(typeof decodedScriptSig, "object") - }) - - it(`should decode scriptSig buffer to cash address ${ - fixture.cashAddress - }`, () => { - const decodedScriptSig = BITBOX.Script.decode( - Buffer.from(fixture.scriptSigHex, "hex") - ) - const address = BITBOX.HDNode.toCashAddress( - BITBOX.ECPair.fromPublicKey(decodedScriptSig[1]) - ) - assert.equal(address, fixture.cashAddress) - }) - - it(`should decode scriptSig buffer to legacy address ${ - fixture.legacyAddress - }`, () => { - const decodedScriptSig = BITBOX.Script.decode( - Buffer.from(fixture.scriptSigHex, "hex") - ) - const address = BITBOX.HDNode.toLegacyAddress( - BITBOX.ECPair.fromPublicKey(decodedScriptSig[1]) - ) - assert.equal(address, fixture.legacyAddress) - }) - }) - }) - - describe("P2PKH scriptPubKey", () => { - fixtures.decodeScriptPubKey.forEach(fixture => { - it(`should decode scriptSig buffer`, () => { - const decodedScriptPubKey = BITBOX.Script.decode( - Buffer.from(fixture.scriptPubKeyHex, "hex") - ) - assert.equal(decodedScriptPubKey.length, 5) - }) - - it(`should match hashed pubKey ${fixture.pubKeyHex}`, () => { - const decodedScriptPubKey = BITBOX.Script.decode( - Buffer.from(fixture.scriptPubKeyHex, "hex") - ) - const data = Buffer.from(fixture.pubKeyHex, "hex") - const hash160 = BITBOX.Crypto.hash160(data).toString("hex") - assert.equal(decodedScriptPubKey[2].toString("hex"), hash160) - }) - }) - }) - }) - - describe("#encode", () => { - describe("P2PKH scriptSig", () => { - fixtures.encodeScriptSig.forEach(fixture => { - it(`should encode scriptSig chunks to buffer`, () => { - const arr = [ - Buffer.from(fixture.scriptSigChunks[0], "hex"), - Buffer.from(fixture.scriptSigChunks[1], "hex") - ] - const encodedScriptSig = BITBOX.Script.encode(arr) - assert.equal(typeof encodedScriptSig, "object") - }) - }) - }) - - describe("P2PKH scriptPubKey", () => { - fixtures.encodeScriptPubKey.forEach(fixture => { - it(`should encode scriptPubKey buffer`, () => { - const decodedScriptPubKey = BITBOX.Script.decode( - Buffer.from(fixture.scriptPubKeyHex, "hex") - ) - const compiledScriptPubKey = BITBOX.Script.encode(decodedScriptPubKey) - assert.equal( - compiledScriptPubKey.toString("hex"), - fixture.scriptPubKeyHex - ) - }) - }) - }) - }) - - describe("#toASM", () => { - describe("P2PKH scriptSig", () => { - fixtures.scriptSigToASM.forEach(fixture => { - it(`should encode scriptSig buffer to ${fixture.asm}`, () => { - const arr = [ - Buffer.from(fixture.scriptSigChunks[0], "hex"), - Buffer.from(fixture.scriptSigChunks[1], "hex") - ] - const compiledScriptSig = BITBOX.Script.encode(arr) - const asm = BITBOX.Script.toASM(compiledScriptSig) - assert.equal(asm, fixture.asm) - }) - }) - }) - - describe("P2PKH scriptPubKey", () => { - fixtures.scriptPubKeyToASM.forEach(fixture => { - it(`should compile scriptPubKey buffer to ${fixture.asm}`, () => { - const asm = BITBOX.Script.toASM( - Buffer.from(fixture.scriptPubKeyHex, "hex") - ) - assert.equal(asm, fixture.asm) - }) - }) - }) - }) - - describe("#fromASM", () => { - describe("P2PKH scriptSig", () => { - fixtures.scriptSigFromASM.forEach(fixture => { - it(`should decode scriptSig asm to buffer`, () => { - const buf = BITBOX.Script.fromASM(fixture.asm) - assert.equal(typeof buf, "object") - }) - }) - }) - - describe("P2PKH scriptPubKey", () => { - fixtures.scriptPubKeyFromASM.forEach(fixture => { - it(`should decode scriptPubKey asm to buffer`, () => { - const buf = BITBOX.Script.fromASM(fixture.asm) - assert.equal(typeof buf, "object") - }) - }) - }) - }) - - describe("#OPCodes", () => { - for (const opcode in fixtures.opcodes) { - it(`should have OP Code ${opcode}`, () => { - assert.equal(BITBOX.Script.opcodes[opcode], fixtures.opcodes[opcode]) - }) - } - }) - - describe("#classifyInput", () => { - fixtures.classifyInput.forEach(fixture => { - it(`should classify input type ${fixture.type}`, () => { - const type = BITBOX.Script.classifyInput( - BITBOX.Script.fromASM(fixture.script) - ) - assert.equal(type, fixture.type) - }) - }) - }) - - describe("#classifyOutput", () => { - fixtures.classifyOutput.forEach(fixture => { - it(`should classify ouput type ${fixture.type}`, () => { - const type = BITBOX.Script.classifyOutput( - BITBOX.Script.fromASM(fixture.script) - ) - assert.equal(type, fixture.type) - }) - }) - }) - - describe("#nullDataTemplate", () => { - fixtures.nullDataTemplate.forEach(fixture => { - it(`should encode nulldata output`, () => { - const buf = BITBOX.Script.nullData.output.encode( - Buffer.from(`${fixture.data}`, "ascii") - ) - assert.equal(buf.toString("hex"), fixture.hex) - }) - - it(`should decode nulldata output`, () => { - const buf = BITBOX.Script.nullData.output.decode( - Buffer.from(`${fixture.hex}`, "hex") - ) - assert.equal(buf.toString("ascii"), fixture.data) - }) - - it(`should confirm correctly formatted nulldata output`, () => { - const buf = BITBOX.Script.nullData.output.encode( - Buffer.from(`${fixture.data}`, "ascii") - ) - const valid = BITBOX.Script.nullData.output.check(buf) - assert.equal(valid, true) - }) - }) - }) - - describe("#pubKeyTemplate", () => { - describe("#pubKeyInputTemplate", () => { - fixtures.pubKeyInputTemplate.forEach(fixture => { - it(`should encode pubKey input`, () => { - const buf = BITBOX.Script.pubKey.input.encode( - Buffer.from(fixture.signature, "hex") - ) - assert.equal(buf.toString("hex"), fixture.hex) - }) - - it(`should decode pubKey input`, () => { - const buf = BITBOX.Script.pubKey.input.decode( - Buffer.from(fixture.hex, "hex") - ) - assert.equal(buf.toString("hex"), fixture.signature) - }) - - it(`should confirm correctly formatted pubKeyHash input`, () => { - const buf = BITBOX.Script.pubKey.input.encode( - Buffer.from(fixture.signature, "hex") - ) - const valid = BITBOX.Script.pubKey.input.check(buf) - assert.equal(valid, true) - }) - }) - }) - - describe("#pubKeyOutputTemplate", () => { - fixtures.pubKeyOutputTemplate.forEach(fixture => { - it(`should encode pubKey output`, () => { - const buf = BITBOX.Script.pubKey.output.encode( - Buffer.from(fixture.pubKey, "hex") - ) - assert.equal(buf.toString("hex"), fixture.hex) - }) - - it(`should decode pubKey output`, () => { - const buf = BITBOX.Script.pubKey.output.decode( - Buffer.from(`${fixture.hex}`, "hex") - ) - assert.equal(buf.toString("hex"), fixture.pubKey) - }) - - it(`should confirm correctly formatted pubKey output`, () => { - const buf = BITBOX.Script.pubKey.output.encode( - Buffer.from(fixture.pubKey, "hex") - ) - const valid = BITBOX.Script.pubKey.output.check(buf) - assert.equal(valid, true) - }) - }) - }) - }) - - describe("#pubKeyHashTemplate", () => { - describe("#pubKeyHashInputTemplate", () => { - fixtures.pubKeyHashInputTemplate.forEach(fixture => { - it(`should encode pubKeyHash input`, () => { - const buf = BITBOX.Script.pubKeyHash.input.encode( - Buffer.from(fixture.signature, "hex"), - Buffer.from(fixture.pubKey, "hex") - ) - assert.equal(buf.toString("hex"), fixture.hex) - }) - - it(`should decode pubKeyHash input signature`, () => { - const buf = BITBOX.Script.pubKeyHash.input.decode( - Buffer.from(fixture.hex, "hex") - ) - assert.equal(buf.signature.toString("hex"), fixture.signature) - }) - - it(`should decode pubKeyHash input pubkey`, () => { - const buf = BITBOX.Script.pubKeyHash.input.decode( - Buffer.from(fixture.hex, "hex") - ) - assert.equal(buf.pubKey.toString("hex"), fixture.pubKey) - }) - - it(`should confirm correctly formatted pubKeyHash input`, () => { - const buf = BITBOX.Script.pubKeyHash.input.encode( - Buffer.from(fixture.signature, "hex"), - Buffer.from(fixture.pubKey, "hex") - ) - const valid = BITBOX.Script.pubKeyHash.input.check(buf) - assert.equal(valid, true) - }) - }) - }) - - describe("#pubKeyHashOutputTemplate", () => { - fixtures.pubKeyHashOutputTemplate.forEach(fixture => { - const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const identifier = BITBOX.HDNode.toIdentifier(node) - it(`should encode pubKeyHash output`, () => { - const buf = BITBOX.Script.pubKeyHash.output.encode(identifier) - assert.equal(buf.toString("hex"), fixture.hex) - }) - - it(`should decode pubKeyHash output`, () => { - const buf = BITBOX.Script.pubKeyHash.output.decode( - Buffer.from(`${fixture.hex}`, "hex") - ) - assert.equal(buf.toString("hex"), identifier.toString("hex")) - }) - - it(`should confirm correctly formatted pubKeyHash output`, () => { - const buf = BITBOX.Script.pubKeyHash.output.encode(identifier) - const valid = BITBOX.Script.pubKeyHash.output.check(buf) - assert.equal(valid, true) - }) - }) - }) - }) - - describe("#multisigTemplate", () => { - describe("#multisigInputTemplate", () => { - fixtures.multisigInputTemplate.forEach(fixture => { - it(`should encode multisig input`, () => { - const signatures = fixture.signatures.map(signature => - signature - ? Buffer.from(signature, "hex") - : BITBOX.Script.opcodes.OP_0 - ) - - const buf = BITBOX.Script.multisig.input.encode(signatures) - assert.equal(buf.toString("hex"), fixture.hex) - }) - - it(`should decode multisig input`, () => { - const buf = BITBOX.Script.multisig.input.decode( - Buffer.from(fixture.hex, "hex") - ) - assert.equal(buf[0].toString("hex"), fixture.signatures[0]) - }) - - it(`should confirm correctly formatted multisig input`, () => { - const signatures = fixture.signatures.map(signature => - signature - ? Buffer.from(signature, "hex") - : BITBOX.Script.opcodes.OP_0 - ) - - const buf = BITBOX.Script.multisig.input.encode(signatures) - const valid = BITBOX.Script.multisig.input.check(buf) - assert.equal(valid, true) - }) - }) - }) - - describe("#multisigOutputTemplate", () => { - fixtures.multisigOutputTemplate.forEach(fixture => { - it(`should encode multisig output`, () => { - const pubKeys = fixture.pubKeys.map(p => Buffer.from(p, "hex")) - const m = pubKeys.length - const buf = BITBOX.Script.multisig.output.encode(m, pubKeys) - - assert.equal(buf.toString("hex"), fixture.hex) - }) - - it(`should decode multisig output`, () => { - const output = BITBOX.Script.multisig.output.decode( - Buffer.from(`${fixture.hex}`, "hex") - ) - assert.equal(output.m, fixture.pubKeys.length) - }) - - it(`should confirm correctly formatted multisig output`, () => { - const pubKeys = fixture.pubKeys.map(p => Buffer.from(p, "hex")) - const m = pubKeys.length - const buf = BITBOX.Script.multisig.output.encode(m, pubKeys) - const valid = BITBOX.Script.multisig.output.check(buf) - assert.equal(valid, true) - }) - }) - }) - }) - - describe("#scriptHashTemplate", () => { - describe("#scriptHashInputTemplate", () => { - fixtures.scriptHashInputTemplate.forEach(fixture => { - it(`should encode scriptHash input`, () => { - const buf = BITBOX.Script.scriptHash.input.encode( - BITBOX.Script.fromASM(fixture.redeemScriptSig), - BITBOX.Script.fromASM(fixture.redeemScript) - ) - assert.equal(buf.toString("hex"), fixture.hex) - }) - - it(`should decode scriptHash input`, () => { - const redeemScriptSig = BITBOX.Script.fromASM(fixture.redeemScriptSig) - const redeemScript = BITBOX.Script.fromASM(fixture.redeemScript) - assert.deepEqual( - BITBOX.Script.scriptHash.input.decode( - Buffer.from(fixture.hex, "hex") - ), - { - redeemScriptSig: redeemScriptSig, - redeemScript: redeemScript - } - ) - }) - - it(`should confirm correctly formatted scriptHash input`, () => { - const buf = BITBOX.Script.scriptHash.input.encode( - BITBOX.Script.fromASM(fixture.redeemScriptSig), - BITBOX.Script.fromASM(fixture.redeemScript) - ) - const valid = BITBOX.Script.scriptHash.input.check(buf) - assert.equal(valid, true) - }) - }) - }) - - describe("#scriptHashOutputTemplate", () => { - fixtures.scriptHashOutputTemplate.forEach(fixture => { - it(`should encode scriptHash output`, () => { - const redeemScript = BITBOX.Script.fromASM(fixture.output) - const scriptHash = BITBOX.Crypto.hash160(redeemScript) - const buf = BITBOX.Script.scriptHash.output.encode(scriptHash) - - assert.equal(buf.toString("hex"), fixture.hex) - }) - - it(`should decode scriptHash output`, () => { - const redeemScript = BITBOX.Script.fromASM(fixture.output) - const scriptHash = BITBOX.Crypto.hash160(redeemScript) - const buf = BITBOX.Script.scriptHash.output.decode( - Buffer.from(`${fixture.hex}`, "hex") - ) - assert.deepEqual(buf, scriptHash) - }) - - it(`should confirm correctly formatted scriptHash output`, () => { - const redeemScript = BITBOX.Script.fromASM(fixture.output) - const scriptHash = BITBOX.Crypto.hash160(redeemScript) - const buf = BITBOX.Script.scriptHash.output.encode(scriptHash) - const valid = BITBOX.Script.scriptHash.output.check(buf) - assert.equal(valid, true) - }) - }) - }) - }) -}) diff --git a/test/unit/Transaction.js b/test/unit/Transaction.js deleted file mode 100644 index 4e527b87..00000000 --- a/test/unit/Transaction.js +++ /dev/null @@ -1,53 +0,0 @@ -const chai = require("chai") -const assert = require("assert") -const BITBOXSDK = require("../../lib/bitbox-sdk").default -const BITBOX = new BITBOXSDK() -const axios = require("axios") -const sinon = require("sinon") - -describe("#Transaction", () => { - describe("#details", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get transaction details", done => { - const data = { - txid: - "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8", - version: 1, - locktime: 0, - vin: [{ coinbase: "04ffff001d029804", sequence: 4294967295, n: 0 }], - vout: [ - { - value: "50.00000000", - n: 0, - scriptPubKey: [Object], - spentTxId: null, - spentIndex: null, - spentHeight: null - } - ], - blockhash: - "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", - blockheight: 507, - confirmations: 528399, - time: 1231973656, - blocktime: 1231973656, - isCoinBase: true, - valueOut: 50, - size: 135 - } - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Transaction.details( - "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8" - ) - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) -}) diff --git a/test/unit/TransactionBuilder.js b/test/unit/TransactionBuilder.js deleted file mode 100644 index 37d7d218..00000000 --- a/test/unit/TransactionBuilder.js +++ /dev/null @@ -1,2035 +0,0 @@ -const fixtures = require("./fixtures/TransactionBuilder.json") -const chai = require("chai") -const assert = require("assert") -const BITBOXSDK = require("../../lib/bitbox-sdk").default -const BITBOX = new BITBOXSDK() -const Buffer = require("safe-buffer").Buffer - -describe("#TransactionBuilder", () => { - describe("#hashTypes", () => { - const transactionBuilder = new BITBOX.TransactionBuilder("bitcoincash") - fixtures.hashTypes.forEach(fixture => { - it(`should match hash type`, () => { - assert.equal( - fixture[Object.keys(fixture)[0]], - transactionBuilder.hashTypes[Object.keys(fixture)[0]] - ) - }) - }) - }) - - describe("#P2PK", () => { - describe("#toOne", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2pk.toOne.mainnet.forEach(fixture => { - it(`should create 1-to-1 P2PK transaction on mainnet`, () => { - const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new BITBOX.TransactionBuilder() - const originalAmount = fixture.amount - const txid = fixture.txHash - const pubKey = BITBOX.HDNode.toPublicKey(node) - const buf = BITBOX.Script.pubKey.output.encode(pubKey) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - buf - ) - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 1 }, - { P2PKH: 3 } - ) - const sendAmount = originalAmount - byteCount - transactionBuilder.addOutput(buf, sendAmount) - const keyPair = BITBOX.HDNode.toKeyPair(node) - let redeemScript - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount - ) - const tx = transactionBuilder.build() - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#Testnet", () => { - fixtures.scripts.p2pk.toOne.testnet.forEach(fixture => { - it(`should create 1-to-1 P2PK transaction on testnet`, () => { - const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new BITBOX.TransactionBuilder("testnet") - const originalAmount = fixture.amount - const txid = fixture.txHash - const pubKey = BITBOX.HDNode.toPublicKey(node) - const buf = BITBOX.Script.pubKey.output.encode(pubKey) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - buf - ) - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 3 }, - { P2PKH: 3 } - ) - const sendAmount = originalAmount - byteCount - transactionBuilder.addOutput(buf, sendAmount) - const keyPair = BITBOX.HDNode.toKeyPair(node) - let redeemScript - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount - ) - const tx = transactionBuilder.build() - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - }) - - describe("#toMany", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2pk.toMany.mainnet.forEach(fixture => { - it(`should create 1-to-many P2PK transaction on mainnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) - const transactionBuilder = new BITBOX.TransactionBuilder() - const originalAmount = fixture.amount - const txid = fixture.txHash - const pubKey1 = BITBOX.HDNode.toPublicKey(node1) - const pubKey2 = BITBOX.HDNode.toPublicKey(node2) - const pubKey3 = BITBOX.HDNode.toPublicKey(node3) - const buf1 = BITBOX.Script.pubKey.output.encode(pubKey1) - const buf2 = BITBOX.Script.pubKey.output.encode(pubKey2) - const buf3 = BITBOX.Script.pubKey.output.encode(pubKey3) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - buf1 - ) - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 1 }, - { P2PKH: 3 } - ) - const sendAmount = originalAmount - byteCount - transactionBuilder.addOutput(buf2, Math.floor(sendAmount / 2)) - transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) - const keyPair = BITBOX.HDNode.toKeyPair(node1) - let redeemScript - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount - ) - const tx = transactionBuilder.build() - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#Testnet", () => { - fixtures.scripts.p2pk.toMany.testnet.forEach(fixture => { - it(`should create 1-to-many P2PK transaction on testnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) - const transactionBuilder = new BITBOX.TransactionBuilder("testnet") - const originalAmount = fixture.amount - const txid = fixture.txHash - const pubKey1 = BITBOX.HDNode.toPublicKey(node1) - const pubKey2 = BITBOX.HDNode.toPublicKey(node2) - const pubKey3 = BITBOX.HDNode.toPublicKey(node3) - const buf1 = BITBOX.Script.pubKey.output.encode(pubKey1) - const buf2 = BITBOX.Script.pubKey.output.encode(pubKey2) - const buf3 = BITBOX.Script.pubKey.output.encode(pubKey3) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - buf1 - ) - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 3 }, - { P2PKH: 3 } - ) - const sendAmount = originalAmount - byteCount - transactionBuilder.addOutput(buf2, Math.floor(sendAmount / 2)) - transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) - const keyPair = BITBOX.HDNode.toKeyPair(node1) - let redeemScript - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount - ) - const tx = transactionBuilder.build() - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - }) - - describe("#manyToMany", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2pk.manyToMany.mainnet.forEach(fixture => { - it(`should create many-to-many P2PK transaction on mainnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) - const node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]) - const transactionBuilder = new BITBOX.TransactionBuilder() - const originalAmount = fixture.amount - const txid = fixture.txHash - const pubKey1 = BITBOX.HDNode.toPublicKey(node1) - const pubKey2 = BITBOX.HDNode.toPublicKey(node2) - const pubKey3 = BITBOX.HDNode.toPublicKey(node3) - const pubKey4 = BITBOX.HDNode.toPublicKey(node4) - const buf1 = BITBOX.Script.pubKey.output.encode(pubKey1) - const buf2 = BITBOX.Script.pubKey.output.encode(pubKey2) - const buf3 = BITBOX.Script.pubKey.output.encode(pubKey3) - const buf4 = BITBOX.Script.pubKey.output.encode(pubKey4) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - buf1 - ) - transactionBuilder.addInput( - txid, - 1, - transactionBuilder.DEFAULT_SEQUENCE, - buf2 - ) - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 3 }, - { P2PKH: 3 } - ) - const sendAmount = originalAmount - byteCount - transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) - transactionBuilder.addOutput(buf4, Math.floor(sendAmount / 2)) - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) - const keyPair2 = BITBOX.HDNode.toKeyPair(node2) - let redeemScript - transactionBuilder.sign( - 0, - keyPair1, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - transactionBuilder.sign( - 1, - keyPair2, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - const tx = transactionBuilder.build() - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#Testnet", () => { - fixtures.scripts.p2pk.manyToMany.testnet.forEach(fixture => { - it(`should create many-to-many P2PK transaction on testnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) - const node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]) - const transactionBuilder = new BITBOX.TransactionBuilder("testnet") - const originalAmount = fixture.amount - const txid = fixture.txHash - const pubKey1 = BITBOX.HDNode.toPublicKey(node1) - const pubKey2 = BITBOX.HDNode.toPublicKey(node2) - const pubKey3 = BITBOX.HDNode.toPublicKey(node3) - const pubKey4 = BITBOX.HDNode.toPublicKey(node4) - const buf1 = BITBOX.Script.pubKey.output.encode(pubKey1) - const buf2 = BITBOX.Script.pubKey.output.encode(pubKey2) - const buf3 = BITBOX.Script.pubKey.output.encode(pubKey3) - const buf4 = BITBOX.Script.pubKey.output.encode(pubKey4) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - buf1 - ) - transactionBuilder.addInput( - txid, - 1, - transactionBuilder.DEFAULT_SEQUENCE, - buf2 - ) - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 3 }, - { P2PKH: 3 } - ) - const sendAmount = originalAmount - byteCount - transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) - transactionBuilder.addOutput(buf4, Math.floor(sendAmount / 2)) - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) - const keyPair2 = BITBOX.HDNode.toKeyPair(node2) - let redeemScript - transactionBuilder.sign( - 0, - keyPair1, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - transactionBuilder.sign( - 1, - keyPair2, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - const tx = transactionBuilder.build() - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - }) - - describe("#fromMany", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2pk.fromMany.mainnet.forEach(fixture => { - it(`should create many-to-1 P2PK transaction on mainnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) - const transactionBuilder = new BITBOX.TransactionBuilder() - const originalAmount = fixture.amount - const txid = fixture.txHash - const pubKey1 = BITBOX.HDNode.toPublicKey(node1) - const pubKey2 = BITBOX.HDNode.toPublicKey(node2) - const pubKey3 = BITBOX.HDNode.toPublicKey(node3) - const buf1 = BITBOX.Script.pubKey.output.encode(pubKey1) - const buf2 = BITBOX.Script.pubKey.output.encode(pubKey2) - const buf3 = BITBOX.Script.pubKey.output.encode(pubKey3) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - buf1 - ) - transactionBuilder.addInput( - txid, - 1, - transactionBuilder.DEFAULT_SEQUENCE, - buf2 - ) - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 3 }, - { P2PKH: 3 } - ) - const sendAmount = originalAmount - byteCount - transactionBuilder.addOutput(buf3, sendAmount) - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) - const keyPair2 = BITBOX.HDNode.toKeyPair(node2) - let redeemScript - transactionBuilder.sign( - 0, - keyPair1, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - transactionBuilder.sign( - 1, - keyPair2, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - const tx = transactionBuilder.build() - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#Testnet", () => { - fixtures.scripts.p2pk.fromMany.testnet.forEach(fixture => { - it(`should create many-to-1 P2PK transaction on testnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) - const transactionBuilder = new BITBOX.TransactionBuilder("testnet") - const originalAmount = fixture.amount - const txid = fixture.txHash - const pubKey1 = BITBOX.HDNode.toPublicKey(node1) - const pubKey2 = BITBOX.HDNode.toPublicKey(node2) - const pubKey3 = BITBOX.HDNode.toPublicKey(node3) - const buf1 = BITBOX.Script.pubKey.output.encode(pubKey1) - const buf2 = BITBOX.Script.pubKey.output.encode(pubKey2) - const buf3 = BITBOX.Script.pubKey.output.encode(pubKey3) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - buf1 - ) - transactionBuilder.addInput( - txid, - 1, - transactionBuilder.DEFAULT_SEQUENCE, - buf2 - ) - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 3 }, - { P2PKH: 3 } - ) - const sendAmount = originalAmount - byteCount - transactionBuilder.addOutput(buf3, sendAmount) - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) - const keyPair2 = BITBOX.HDNode.toKeyPair(node2) - let redeemScript - transactionBuilder.sign( - 0, - keyPair1, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - transactionBuilder.sign( - 1, - keyPair2, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - const tx = transactionBuilder.build() - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - }) - }) - - describe("#P2PKH", () => { - describe("#toOne", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2pkh.toOne.mainnet.forEach(fixture => { - it(`should create 1-to-1 P2PKH transaction on mainnet`, () => { - const hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new BITBOX.TransactionBuilder() - const keyPair = BITBOX.HDNode.toKeyPair(hdnode) - const txHash = fixture.txHash - // original amount of satoshis in vin - const originalAmount = fixture.amount - transactionBuilder.addInput(txHash, fixture.vout) - // get byte count to calculate fee. paying 1 sat/byte - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 1 }, - { P2PKH: 1 } - ) - // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - const sendAmount = originalAmount - byteCount - // add output w/ address and amount to send - let redeemScript - transactionBuilder.addOutput(fixture.outputs[0], sendAmount) - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount - ) - - // build tx - const tx = transactionBuilder.build() - // output rawhex - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#Testnet", () => { - fixtures.scripts.p2pkh.toOne.testnet.forEach(fixture => { - it(`should create 1-to-1 P2PKH transaction on testnet`, () => { - const hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv, "testnet") - const transactionBuilder = new BITBOX.TransactionBuilder("testnet") - const keyPair = BITBOX.HDNode.toKeyPair(hdnode) - const txHash = fixture.txHash - // original amount of satoshis in vin - const originalAmount = fixture.amount - transactionBuilder.addInput(txHash, fixture.vout) - // get byte count to calculate fee. paying 1 sat/byte - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 1 }, - { P2PKH: 1 } - ) - // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - const sendAmount = originalAmount - byteCount * 15 - // add output w/ address and amount to send - let redeemScript - transactionBuilder.addOutput(fixture.outputs[0], sendAmount) - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount - ) - - // build tx - const tx = transactionBuilder.build() - // output rawhex - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#RegTest", () => { - fixtures.scripts.p2pkh.toOne.regtest.forEach(fixture => { - it(`should create 1-to-1 P2PKH transaction on regtest`, () => { - const hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new BITBOX.TransactionBuilder("regtest") - const keyPair = BITBOX.HDNode.toKeyPair(hdnode) - const txHash = fixture.txHash - // original amount of satoshis in vin - const originalAmount = fixture.amount - transactionBuilder.addInput(txHash, fixture.vout) - // get byte count to calculate fee. paying 1 sat/byte - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 1 }, - { P2PKH: 1 } - ) - // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - const sendAmount = originalAmount - byteCount * 15 - // add output w/ address and amount to send - let redeemScript - transactionBuilder.addOutput(fixture.outputs[0], sendAmount) - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount - ) - - // build tx - const tx = transactionBuilder.build() - // output rawhex - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - }) - - describe("#toMany", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2pkh.toMany.mainnet.forEach(fixture => { - it(`should create 1-to-2 P2PKH transaction on mainnet`, () => { - const hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new BITBOX.TransactionBuilder() - const keyPair = BITBOX.HDNode.toKeyPair(hdnode) - const txHash = fixture.txHash - // original amount of satoshis in vin - const originalAmount = fixture.amount - transactionBuilder.addInput(txHash, fixture.vout) - // get byte count to calculate fee. paying 1 sat/byte - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 1 }, - { P2PKH: 2 } - ) - // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - const sendAmount = originalAmount - byteCount - // add output w/ address and amount to send - transactionBuilder.addOutput( - fixture.outputs[0], - Math.floor(sendAmount / 2) - ) - transactionBuilder.addOutput( - fixture.outputs[1], - Math.floor(sendAmount / 2) - ) - let redeemScript - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount - ) - // build tx - const tx = transactionBuilder.build() - // output rawhex - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#Testnet", () => { - fixtures.scripts.p2pkh.toMany.testnet.forEach(fixture => { - // TODO pass in tesnet network config - it(`should create 1-to-2 P2PKH transaction on testnet`, () => { - const hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new BITBOX.TransactionBuilder("testnet") - const keyPair = BITBOX.HDNode.toKeyPair(hdnode) - const txHash = fixture.txHash - // original amount of satoshis in vin - const originalAmount = fixture.amount - transactionBuilder.addInput(txHash, fixture.vout) - // get byte count to calculate fee. paying 1 sat/byte - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 1 }, - { P2PKH: 2 } - ) - // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - const sendAmount = originalAmount - byteCount * 15 - // add output w/ address and amount to send - transactionBuilder.addOutput( - fixture.outputs[0], - Math.floor(sendAmount / 2) - ) - transactionBuilder.addOutput( - fixture.outputs[1], - Math.floor(sendAmount / 2) - ) - let redeemScript - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount - ) - // build tx - const tx = transactionBuilder.build() - // output rawhex - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#RegTest", () => { - fixtures.scripts.p2pkh.toMany.regtest.forEach(fixture => { - // TODO pass in tesnet network config - it(`should create 1-to-2 P2PKH transaction on regtest`, () => { - const hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new BITBOX.TransactionBuilder("regtest") - const keyPair = BITBOX.HDNode.toKeyPair(hdnode) - const txHash = fixture.txHash - // original amount of satoshis in vin - const originalAmount = fixture.amount - transactionBuilder.addInput(txHash, fixture.vout) - // get byte count to calculate fee. paying 1 sat/byte - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 1 }, - { P2PKH: 2 } - ) - // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - const sendAmount = originalAmount - byteCount * 15 - // add output w/ address and amount to send - transactionBuilder.addOutput( - fixture.outputs[0], - Math.floor(sendAmount / 2) - ) - transactionBuilder.addOutput( - fixture.outputs[1], - Math.floor(sendAmount / 2) - ) - let redeemScript - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount - ) - // build tx - const tx = transactionBuilder.build() - // output rawhex - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - }) - - describe("#manyToMany", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2pkh.manyToMany.mainnet.forEach(fixture => { - it(`should create 2-to-2 P2PKH transaction on mainnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const transactionBuilder = new BITBOX.TransactionBuilder() - const txHash = fixture.txHash - const originalAmount = fixture.amounts[0] + fixture.amounts[1] - transactionBuilder.addInput(txHash, 0) - transactionBuilder.addInput(txHash, 1) - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 2 }, - { P2PKH: 2 } - ) - const sendAmount = originalAmount - byteCount - transactionBuilder.addOutput( - fixture.outputs[0], - Math.floor(sendAmount / 2) - ) - transactionBuilder.addOutput( - fixture.outputs[1], - Math.floor(sendAmount / 2) - ) - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) - const keyPair2 = BITBOX.HDNode.toKeyPair(node2) - let redeemScript - transactionBuilder.sign( - 0, - keyPair1, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amounts[0] - ) - transactionBuilder.sign( - 1, - keyPair2, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amounts[1] - ) - const tx = transactionBuilder.build() - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#Testnet", () => { - fixtures.scripts.p2pkh.manyToMany.testnet.forEach(fixture => { - it(`should create 2-to-2 P2PKH transaction on testnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const transactionBuilder = new BITBOX.TransactionBuilder("testnet") - const txHash = fixture.txHash - const originalAmount = fixture.amounts[0] + fixture.amounts[1] - transactionBuilder.addInput(txHash, 0) - transactionBuilder.addInput(txHash, 1) - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 2 }, - { P2PKH: 2 } - ) - const sendAmount = originalAmount - byteCount * 15 - transactionBuilder.addOutput( - fixture.outputs[0], - Math.floor(sendAmount / 2) - ) - transactionBuilder.addOutput( - fixture.outputs[1], - Math.floor(sendAmount / 2) - ) - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) - const keyPair2 = BITBOX.HDNode.toKeyPair(node2) - let redeemScript - transactionBuilder.sign( - 0, - keyPair1, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amounts[0] - ) - transactionBuilder.sign( - 1, - keyPair2, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amounts[1] - ) - const tx = transactionBuilder.build() - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#RegTest", () => { - fixtures.scripts.p2pkh.manyToMany.regtest.forEach(fixture => { - it(`should create 2-to-2 P2PKH transaction on regtest`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const transactionBuilder = new BITBOX.TransactionBuilder("regtest") - const txHash = fixture.txHash - const originalAmount = fixture.amounts[0] + fixture.amounts[1] - transactionBuilder.addInput(txHash, 0) - transactionBuilder.addInput(txHash, 1) - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 2 }, - { P2PKH: 2 } - ) - const sendAmount = originalAmount - byteCount * 15 - transactionBuilder.addOutput( - fixture.outputs[0], - Math.floor(sendAmount / 2) - ) - transactionBuilder.addOutput( - fixture.outputs[1], - Math.floor(sendAmount / 2) - ) - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) - const keyPair2 = BITBOX.HDNode.toKeyPair(node2) - let redeemScript - transactionBuilder.sign( - 0, - keyPair1, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amounts[0] - ) - transactionBuilder.sign( - 1, - keyPair2, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amounts[1] - ) - const tx = transactionBuilder.build() - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - }) - - describe("#fromMany", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2pkh.fromMany.mainnet.forEach(fixture => { - it(`should create 2-to-1 P2PKH transaction on mainnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const transactionBuilder = new BITBOX.TransactionBuilder() - const txHash = fixture.txHash - const originalAmount = fixture.amounts[0] + fixture.amounts[1] - transactionBuilder.addInput(txHash, 0) - transactionBuilder.addInput(txHash, 1) - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 2 }, - { P2PKH: 1 } - ) - const sendAmount = originalAmount - byteCount - transactionBuilder.addOutput(fixture.outputs[0], sendAmount) - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) - const keyPair2 = BITBOX.HDNode.toKeyPair(node2) - let redeemScript - transactionBuilder.sign( - 0, - keyPair1, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amounts[0] - ) - transactionBuilder.sign( - 1, - keyPair2, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amounts[1] - ) - const tx = transactionBuilder.build() - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#Testnet", () => { - fixtures.scripts.p2pkh.fromMany.testnet.forEach(fixture => { - it(`should create 2-to-1 P2PKH transaction on testnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const transactionBuilder = new BITBOX.TransactionBuilder("testnet") - const txHash = fixture.txHash - const originalAmount = fixture.amounts[0] + fixture.amounts[1] - transactionBuilder.addInput(txHash, 0) - transactionBuilder.addInput(txHash, 1) - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 2 }, - { P2PKH: 1 } - ) - const sendAmount = originalAmount - byteCount * 15 - transactionBuilder.addOutput(fixture.outputs[0], sendAmount) - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) - const keyPair2 = BITBOX.HDNode.toKeyPair(node2) - let redeemScript - transactionBuilder.sign( - 0, - keyPair1, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amounts[0] - ) - transactionBuilder.sign( - 1, - keyPair2, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amounts[1] - ) - const tx = transactionBuilder.build() - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#RegTest", () => { - fixtures.scripts.p2pkh.fromMany.regtest.forEach(fixture => { - it(`should create 2-to-1 P2PKH transaction on regtest`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const transactionBuilder = new BITBOX.TransactionBuilder("regtest") - const txHash = fixture.txHash - const originalAmount = fixture.amounts[0] + fixture.amounts[1] - transactionBuilder.addInput(txHash, 0) - transactionBuilder.addInput(txHash, 1) - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 2 }, - { P2PKH: 1 } - ) - const sendAmount = originalAmount - byteCount * 15 - transactionBuilder.addOutput(fixture.outputs[0], sendAmount) - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) - const keyPair2 = BITBOX.HDNode.toKeyPair(node2) - let redeemScript - transactionBuilder.sign( - 0, - keyPair1, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amounts[0] - ) - transactionBuilder.sign( - 1, - keyPair2, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amounts[1] - ) - const tx = transactionBuilder.build() - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - }) - }) - - describe("#op_return", () => { - describe("#Mainnet", () => { - fixtures.nulldata.mainnet.forEach(fixture => { - it(`should create transaction w/ OP_RETURN output on mainnet`, () => { - const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new BITBOX.TransactionBuilder() - const txHash = fixture.txHash - const originalAmount = fixture.amount - transactionBuilder.addInput(txHash, 0) - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 1 }, - { P2PKH: 5 } - ) - const sendAmount = originalAmount - byteCount - transactionBuilder.addOutput(fixture.output, sendAmount) - const data = fixture.data - const buf = BITBOX.Script.nullData.output.encode( - Buffer.from(data, "ascii") - ) - transactionBuilder.addOutput(buf, 0) - const keyPair = BITBOX.HDNode.toKeyPair(node) - let redeemScript - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amount - ) - const tx = transactionBuilder.build() - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#Testnet", () => { - fixtures.nulldata.testnet.forEach(fixture => { - it(`should create transaction w/ OP_RETURN output on testnet`, () => { - const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new BITBOX.TransactionBuilder("testnet") - const txHash = fixture.txHash - const originalAmount = fixture.amount - transactionBuilder.addInput(txHash, 0) - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 1 }, - { P2PKH: 5 } - ) - const sendAmount = originalAmount - byteCount - transactionBuilder.addOutput(fixture.output, sendAmount) - const data = fixture.data - const buf = BITBOX.Script.nullData.output.encode( - Buffer.from(data, "ascii") - ) - transactionBuilder.addOutput(buf, 0) - const keyPair = BITBOX.HDNode.toKeyPair(node) - let redeemScript - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amount - ) - const tx = transactionBuilder.build() - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#RegTest", () => { - fixtures.nulldata.regtest.forEach(fixture => { - it(`should create transaction w/ OP_RETURN output on regtest`, () => { - const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new BITBOX.TransactionBuilder("regtest") - const txHash = fixture.txHash - const originalAmount = fixture.amount - transactionBuilder.addInput(txHash, 0) - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 1 }, - { P2PKH: 5 } - ) - const sendAmount = originalAmount - byteCount - transactionBuilder.addOutput(fixture.output, sendAmount) - const data = fixture.data - const buf = BITBOX.Script.nullData.output.encode( - Buffer.from(data, "ascii") - ) - transactionBuilder.addOutput(buf, 0) - const keyPair = BITBOX.HDNode.toKeyPair(node) - let redeemScript - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amount - ) - const tx = transactionBuilder.build() - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - }) - - describe("#P2PMS", () => { - describe("#toOne", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2ms.toOne.mainnet.forEach(fixture => { - it(`should create 1-to-1 1-of-2 P2MS transaction on mainnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) - const node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]) - const transactionBuilder = new BITBOX.TransactionBuilder() - const txid = fixture.txHash - const originalAmount = fixture.amount - const pubKey1 = BITBOX.HDNode.toPublicKey(node1) - const pubKey2 = BITBOX.HDNode.toPublicKey(node2) - const buf1 = BITBOX.Script.multisig.output.encode(1, [ - pubKey1, - pubKey2 - ]) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - buf1 - ) - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 3 }, - { P2PKH: 3 } - ) - const pubKey3 = BITBOX.HDNode.toPublicKey(node3) - const pubKey4 = BITBOX.HDNode.toPublicKey(node4) - const buf2 = BITBOX.Script.multisig.output.encode(1, [ - pubKey3, - pubKey4 - ]) - const sendAmount = originalAmount - byteCount - transactionBuilder.addOutput(buf2, sendAmount) - let redeemScript - const keyPair = BITBOX.HDNode.toKeyPair(node1) - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount - ) - const tx = transactionBuilder.build() - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - // describe('#Testnet', () => { - // fixtures.scripts.p2ms.toOne.testnet.forEach((fixture) => { - // it(`should create 1-to-1 P2MS transaction on testnet`, () => { - // let hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv, 'testnet'); - // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); - // let keyPair = BITBOX.HDNode.toKeyPair(hdnode); - // let txHash = fixture.txHash; - // // original amount of satoshis in vin - // let originalAmount = fixture.amount; - // transactionBuilder.addInput(txHash, fixture.vout); - // // get byte count to calculate fee. paying 1 sat/byte - // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 1 }); - // // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - // let sendAmount = originalAmount - (byteCount * 15); - // // add output w/ address and amount to send - // let redeemScript - // transactionBuilder.addOutput(fixture.outputs[0], sendAmount); - // transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); - // - // // build tx - // let tx = transactionBuilder.build(); - // // output rawhex - // let hex = tx.toHex(); - // assert.equal(hex, fixture.hex); - // }); - // }); - // }); - }) - - describe("#toMany", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2ms.toMany.mainnet.forEach(fixture => { - it(`should create 1-to-2 P2MS transaction on mainnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) - const node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]) - const node5 = BITBOX.HDNode.fromXPriv(fixture.xprivs[4]) - const node6 = BITBOX.HDNode.fromXPriv(fixture.xprivs[5]) - const transactionBuilder = new BITBOX.TransactionBuilder() - const txid = fixture.txHash - const originalAmount = fixture.amount - const pubKey1 = BITBOX.HDNode.toPublicKey(node1) - const pubKey2 = BITBOX.HDNode.toPublicKey(node2) - const buf1 = BITBOX.Script.multisig.output.encode(1, [ - pubKey1, - pubKey2 - ]) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - buf1 - ) - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 3 }, - { P2PKH: 3 } - ) - const sendAmount = originalAmount - byteCount - const pubKey3 = BITBOX.HDNode.toPublicKey(node3) - const pubKey4 = BITBOX.HDNode.toPublicKey(node4) - const buf2 = BITBOX.Script.multisig.output.encode(1, [ - pubKey3, - pubKey4 - ]) - transactionBuilder.addOutput(buf2, Math.floor(sendAmount / 2)) - const pubKey5 = BITBOX.HDNode.toPublicKey(node5) - const pubKey6 = BITBOX.HDNode.toPublicKey(node6) - const buf3 = BITBOX.Script.multisig.output.encode(1, [ - pubKey5, - pubKey6 - ]) - transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) - let redeemScript - const keyPair = BITBOX.HDNode.toKeyPair(node1) - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount - ) - const tx = transactionBuilder.build() - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - // describe('#Testnet', () => { - // fixtures.scripts.p2ms.toMany.testnet.forEach((fixture) => { - // // TODO pass in tesnet network config - // it(`should create 1-to-2 P2MS transaction on testnet`, () => { - // let hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv); - // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); - // let keyPair = BITBOX.HDNode.toKeyPair(hdnode); - // let txHash = fixture.txHash; - // // original amount of satoshis in vin - // let originalAmount = fixture.amount; - // transactionBuilder.addInput(txHash, fixture.vout); - // // get byte count to calculate fee. paying 1 sat/byte - // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 2 }); - // // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - // let sendAmount = originalAmount - (byteCount * 15); - // // add output w/ address and amount to send - // transactionBuilder.addOutput(fixture.outputs[0], Math.floor(sendAmount / 2)); - // transactionBuilder.addOutput(fixture.outputs[1], Math.floor(sendAmount / 2)); - // let redeemScript - // transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); - // // build tx - // let tx = transactionBuilder.build(); - // // output rawhex - // let hex = tx.toHex(); - // assert.equal(hex, fixture.hex); - // }); - // }); - // }); - }) - - describe("#manyToMany", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2ms.manyToMany.mainnet.forEach(fixture => { - it(`should create 2-to-2 P2MS transaction on mainnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) - const node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]) - const node5 = BITBOX.HDNode.fromXPriv(fixture.xprivs[4]) - const node6 = BITBOX.HDNode.fromXPriv(fixture.xprivs[5]) - const node7 = BITBOX.HDNode.fromXPriv(fixture.xprivs[6]) - const node8 = BITBOX.HDNode.fromXPriv(fixture.xprivs[7]) - const transactionBuilder = new BITBOX.TransactionBuilder() - const txid = fixture.txHash - const originalAmount = fixture.amount - const pubKey1 = BITBOX.HDNode.toPublicKey(node1) - const pubKey2 = BITBOX.HDNode.toPublicKey(node2) - const buf1 = BITBOX.Script.multisig.output.encode(1, [ - pubKey1, - pubKey2 - ]) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - buf1 - ) - const pubKey3 = BITBOX.HDNode.toPublicKey(node3) - const pubKey4 = BITBOX.HDNode.toPublicKey(node4) - const buf2 = BITBOX.Script.multisig.output.encode(1, [ - pubKey3, - pubKey4 - ]) - transactionBuilder.addInput( - txid, - 1, - transactionBuilder.DEFAULT_SEQUENCE, - buf2 - ) - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 3 }, - { P2PKH: 3 } - ) - const sendAmount = originalAmount - byteCount - const pubKey5 = BITBOX.HDNode.toPublicKey(node5) - const pubKey6 = BITBOX.HDNode.toPublicKey(node6) - const buf3 = BITBOX.Script.multisig.output.encode(1, [ - pubKey5, - pubKey6 - ]) - transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) - const pubKey7 = BITBOX.HDNode.toPublicKey(node7) - const pubKey8 = BITBOX.HDNode.toPublicKey(node8) - const buf4 = BITBOX.Script.multisig.output.encode(1, [ - pubKey7, - pubKey8 - ]) - transactionBuilder.addOutput(buf4, Math.floor(sendAmount / 2)) - let redeemScript - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) - const keyPair2 = BITBOX.HDNode.toKeyPair(node3) - transactionBuilder.sign( - 0, - keyPair1, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - transactionBuilder.sign( - 1, - keyPair2, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - const tx = transactionBuilder.build() - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - // describe('#Testnet', () => { - // fixtures.scripts.p2ms.manyToMany.testnet.forEach((fixture) => { - // it(`should create 2-to-2 P2MS transaction on testnet`, () => { - // let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); - // let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); - // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); - // let txHash = fixture.txHash; - // let originalAmount = fixture.amounts[0] + fixture.amounts[1]; - // transactionBuilder.addInput(txHash, 0); - // transactionBuilder.addInput(txHash, 1); - // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 2 }); - // let sendAmount = originalAmount - (byteCount * 15); - // transactionBuilder.addOutput(fixture.outputs[0], Math.floor(sendAmount / 2)); - // transactionBuilder.addOutput(fixture.outputs[1], Math.floor(sendAmount / 2)); - // let keyPair1 = BITBOX.HDNode.toKeyPair(node1); - // let keyPair2 = BITBOX.HDNode.toKeyPair(node2); - // let redeemScript; - // transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); - // transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); - // let tx = transactionBuilder.build(); - // let hex = tx.toHex(); - // assert.equal(hex, fixture.hex); - // }); - // }); - // }); - }) - - describe("#fromMany", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2ms.fromMany.mainnet.forEach(fixture => { - it(`should create 2-to-1 P2MS transaction on mainnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) - const node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]) - const node5 = BITBOX.HDNode.fromXPriv(fixture.xprivs[4]) - const node6 = BITBOX.HDNode.fromXPriv(fixture.xprivs[5]) - const transactionBuilder = new BITBOX.TransactionBuilder() - const txid = fixture.txHash - const originalAmount = fixture.amount - const pubKey1 = BITBOX.HDNode.toPublicKey(node1) - const pubKey2 = BITBOX.HDNode.toPublicKey(node2) - const buf1 = BITBOX.Script.multisig.output.encode(1, [ - pubKey1, - pubKey2 - ]) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - buf1 - ) - const pubKey3 = BITBOX.HDNode.toPublicKey(node3) - const pubKey4 = BITBOX.HDNode.toPublicKey(node4) - const buf2 = BITBOX.Script.multisig.output.encode(1, [ - pubKey3, - pubKey4 - ]) - transactionBuilder.addInput( - txid, - 1, - transactionBuilder.DEFAULT_SEQUENCE, - buf2 - ) - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 3 }, - { P2PKH: 3 } - ) - const sendAmount = originalAmount - byteCount - const pubKey5 = BITBOX.HDNode.toPublicKey(node5) - const pubKey6 = BITBOX.HDNode.toPublicKey(node6) - const buf3 = BITBOX.Script.multisig.output.encode(1, [ - pubKey5, - pubKey6 - ]) - transactionBuilder.addOutput(buf3, sendAmount) - let redeemScript - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) - const keyPair2 = BITBOX.HDNode.toKeyPair(node3) - transactionBuilder.sign( - 0, - keyPair1, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - transactionBuilder.sign( - 1, - keyPair2, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - const tx = transactionBuilder.build() - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - // describe('#Testnet', () => { - // fixtures.scripts.p2ms.fromMany.testnet.forEach((fixture) => { - // it(`should create 2-to-1 P2MS transaction on testnet`, () => { - // let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); - // let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); - // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); - // let txHash = fixture.txHash; - // let originalAmount = fixture.amounts[0] + fixture.amounts[1]; - // transactionBuilder.addInput(txHash, 0); - // transactionBuilder.addInput(txHash, 1); - // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 1 }); - // let sendAmount = originalAmount - (byteCount * 15); - // transactionBuilder.addOutput(fixture.outputs[0], sendAmount); - // let keyPair1 = BITBOX.HDNode.toKeyPair(node1); - // let keyPair2 = BITBOX.HDNode.toKeyPair(node2); - // let redeemScript; - // transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); - // transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); - // let tx = transactionBuilder.build(); - // let hex = tx.toHex(); - // assert.equal(hex, fixture.hex); - // }); - // }); - // }); - }) - }) - - describe("#P2SH", () => { - describe("#toOne", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2sh.toOne.mainnet.forEach(fixture => { - it(`should create 1-to-1 P2SH transaction on mainnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const transactionBuilder = new BITBOX.TransactionBuilder() - const txid = fixture.txHash - const originalAmount = fixture.amount - const identifier1 = BITBOX.HDNode.toIdentifier(node1) - const buf1 = BITBOX.Script.encode([ - BITBOX.Script.opcodes.OP_DUP, - BITBOX.Script.opcodes.OP_HASH160, - identifier1, - BITBOX.Script.opcodes.OP_EQUALVERIFY, - BITBOX.Script.opcodes.OP_CHECKSIG - ]) - const scriptHash1 = BITBOX.Crypto.hash160(buf1) - const data1 = BITBOX.Script.scriptHash.output.encode(scriptHash1) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - data1 - ) - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 2 }, - { P2PKH: 1 } - ) - const sendAmount = originalAmount - byteCount - const identifier2 = BITBOX.HDNode.toIdentifier(node2) - const buf2 = BITBOX.Script.encode([ - BITBOX.Script.opcodes.OP_DUP, - BITBOX.Script.opcodes.OP_HASH160, - identifier2, - BITBOX.Script.opcodes.OP_EQUALVERIFY, - BITBOX.Script.opcodes.OP_CHECKSIG - ]) - - const scriptHash2 = BITBOX.Crypto.hash160(buf2) - const data2 = BITBOX.Script.scriptHash.output.encode(scriptHash2) - transactionBuilder.addOutput(data2, sendAmount) - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) - transactionBuilder.sign( - 0, - keyPair1, - buf1, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount - ) - const tx = transactionBuilder.build() - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - // describe('#Testnet', () => { - // fixtures.scripts.p2sh.toOne.testnet.forEach((fixture) => { - // it(`should create 1-to-1 P2SH transaction on testnet`, () => { - // let hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv, 'testnet'); - // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); - // let keyPair = BITBOX.HDNode.toKeyPair(hdnode); - // let txHash = fixture.txHash; - // // original amount of satoshis in vin - // let originalAmount = fixture.amount; - // transactionBuilder.addInput(txHash, fixture.vout); - // // get byte count to calculate fee. paying 1 sat/byte - // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 1 }); - // // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - // let sendAmount = originalAmount - (byteCount * 15); - // // add output w/ address and amount to send - // let redeemScript - // transactionBuilder.addOutput(fixture.outputs[0], sendAmount); - // transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); - // - // // build tx - // let tx = transactionBuilder.build(); - // // output rawhex - // let hex = tx.toHex(); - // assert.equal(hex, fixture.hex); - // }); - // }); - // }); - }) - - describe("#toMany", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2sh.toMany.mainnet.forEach(fixture => { - it(`should create 1-to-2 P2SH transaction on mainnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) - const transactionBuilder = new BITBOX.TransactionBuilder() - const txid = fixture.txHash - const originalAmount = fixture.amount - const identifier1 = BITBOX.HDNode.toIdentifier(node1) - const buf1 = BITBOX.Script.encode([ - BITBOX.Script.opcodes.OP_DUP, - BITBOX.Script.opcodes.OP_HASH160, - identifier1, - BITBOX.Script.opcodes.OP_EQUALVERIFY, - BITBOX.Script.opcodes.OP_CHECKSIG - ]) - const scriptHash1 = BITBOX.Crypto.hash160(buf1) - const data1 = BITBOX.Script.scriptHash.output.encode(scriptHash1) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - data1 - ) - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 3 }, - { P2PKH: 2 } - ) - const sendAmount = originalAmount - byteCount - const identifier2 = BITBOX.HDNode.toIdentifier(node2) - const buf2 = BITBOX.Script.encode([ - BITBOX.Script.opcodes.OP_DUP, - BITBOX.Script.opcodes.OP_HASH160, - identifier2, - BITBOX.Script.opcodes.OP_EQUALVERIFY, - BITBOX.Script.opcodes.OP_CHECKSIG - ]) - const scriptHash2 = BITBOX.Crypto.hash160(buf2) - const data2 = BITBOX.Script.scriptHash.output.encode(scriptHash2) - transactionBuilder.addOutput(data2, Math.floor(sendAmount / 2)) - const identifier3 = BITBOX.HDNode.toIdentifier(node3) - const buf3 = BITBOX.Script.encode([ - BITBOX.Script.opcodes.OP_DUP, - BITBOX.Script.opcodes.OP_HASH160, - identifier3, - BITBOX.Script.opcodes.OP_EQUALVERIFY, - BITBOX.Script.opcodes.OP_CHECKSIG - ]) - const scriptHash3 = BITBOX.Crypto.hash160(buf3) - const data3 = BITBOX.Script.scriptHash.output.encode(scriptHash3) - transactionBuilder.addOutput(data3, Math.floor(sendAmount / 2)) - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) - transactionBuilder.sign( - 0, - keyPair1, - buf1, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount - ) - const tx = transactionBuilder.build() - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - // describe('#Testnet', () => { - // fixtures.scripts.p2sh.toMany.testnet.forEach((fixture) => { - // // TODO pass in tesnet network config - // it(`should create 1-to-2 P2SH transaction on testnet`, () => { - // let hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv); - // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); - // let keyPair = BITBOX.HDNode.toKeyPair(hdnode); - // let txHash = fixture.txHash; - // // original amount of satoshis in vin - // let originalAmount = fixture.amount; - // transactionBuilder.addInput(txHash, fixture.vout); - // // get byte count to calculate fee. paying 1 sat/byte - // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 2 }); - // // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - // let sendAmount = originalAmount - (byteCount * 15); - // // add output w/ address and amount to send - // transactionBuilder.addOutput(fixture.outputs[0], Math.floor(sendAmount / 2)); - // transactionBuilder.addOutput(fixture.outputs[1], Math.floor(sendAmount / 2)); - // let redeemScript - // transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); - // // build tx - // let tx = transactionBuilder.build(); - // // output rawhex - // let hex = tx.toHex(); - // assert.equal(hex, fixture.hex); - // }); - // }); - // }); - }) - - describe("#manyToMany", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2sh.manyToMany.mainnet.forEach(fixture => { - it(`should create 2-to-2 P2SH transaction on mainnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) - const node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]) - const transactionBuilder = new BITBOX.TransactionBuilder() - const txid = fixture.txHash - const originalAmount = fixture.amount - const identifier1 = BITBOX.HDNode.toIdentifier(node1) - const buf1 = BITBOX.Script.encode([ - BITBOX.Script.opcodes.OP_DUP, - BITBOX.Script.opcodes.OP_HASH160, - identifier1, - BITBOX.Script.opcodes.OP_EQUALVERIFY, - BITBOX.Script.opcodes.OP_CHECKSIG - ]) - const scriptHash1 = BITBOX.Crypto.hash160(buf1) - const data1 = BITBOX.Script.scriptHash.output.encode(scriptHash1) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - data1 - ) - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 5 }, - { P2PKH: 5 } - ) - const sendAmount = originalAmount - byteCount - const identifier2 = BITBOX.HDNode.toIdentifier(node2) - const buf2 = BITBOX.Script.encode([ - BITBOX.Script.opcodes.OP_DUP, - BITBOX.Script.opcodes.OP_HASH160, - identifier2, - BITBOX.Script.opcodes.OP_EQUALVERIFY, - BITBOX.Script.opcodes.OP_CHECKSIG - ]) - const scriptHash2 = BITBOX.Crypto.hash160(buf2) - const data2 = BITBOX.Script.scriptHash.output.encode(scriptHash2) - transactionBuilder.addInput( - txid, - 1, - transactionBuilder.DEFAULT_SEQUENCE, - data2 - ) - const identifier3 = BITBOX.HDNode.toIdentifier(node3) - const buf3 = BITBOX.Script.encode([ - BITBOX.Script.opcodes.OP_DUP, - BITBOX.Script.opcodes.OP_HASH160, - identifier3, - BITBOX.Script.opcodes.OP_EQUALVERIFY, - BITBOX.Script.opcodes.OP_CHECKSIG - ]) - const scriptHash3 = BITBOX.Crypto.hash160(buf3) - const data3 = BITBOX.Script.scriptHash.output.encode(scriptHash3) - transactionBuilder.addOutput(data3, Math.floor(sendAmount / 2)) - const identifier4 = BITBOX.HDNode.toIdentifier(node4) - const buf4 = BITBOX.Script.encode([ - BITBOX.Script.opcodes.OP_DUP, - BITBOX.Script.opcodes.OP_HASH160, - identifier4, - BITBOX.Script.opcodes.OP_EQUALVERIFY, - BITBOX.Script.opcodes.OP_CHECKSIG - ]) - const scriptHash4 = BITBOX.Crypto.hash160(buf4) - const data4 = BITBOX.Script.scriptHash.output.encode(scriptHash4) - transactionBuilder.addOutput(data4, Math.floor(sendAmount / 2)) - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) - const keyPair2 = BITBOX.HDNode.toKeyPair(node2) - transactionBuilder.sign( - 0, - keyPair1, - buf1, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - transactionBuilder.sign( - 1, - keyPair2, - buf2, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - const tx = transactionBuilder.build() - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - // describe('#Testnet', () => { - // fixtures.scripts.p2sh.manyToMany.testnet.forEach((fixture) => { - // it(`should create 2-to-2 P2SH transaction on testnet`, () => { - // let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); - // let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); - // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); - // let txHash = fixture.txHash; - // let originalAmount = fixture.amounts[0] + fixture.amounts[1]; - // transactionBuilder.addInput(txHash, 0); - // transactionBuilder.addInput(txHash, 1); - // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 2 }); - // let sendAmount = originalAmount - (byteCount * 15); - // transactionBuilder.addOutput(fixture.outputs[0], Math.floor(sendAmount / 2)); - // transactionBuilder.addOutput(fixture.outputs[1], Math.floor(sendAmount / 2)); - // let keyPair1 = BITBOX.HDNode.toKeyPair(node1); - // let keyPair2 = BITBOX.HDNode.toKeyPair(node2); - // let redeemScript; - // transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); - // transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); - // let tx = transactionBuilder.build(); - // let hex = tx.toHex(); - // assert.equal(hex, fixture.hex); - // }); - // }); - // }); - }) - - describe("#fromMany", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2sh.fromMany.mainnet.forEach(fixture => { - it(`should create 2-to-1 P2SH transaction on mainnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) - const transactionBuilder = new BITBOX.TransactionBuilder() - const txid = fixture.txHash - const originalAmount = fixture.amount - const identifier1 = BITBOX.HDNode.toIdentifier(node1) - const buf1 = BITBOX.Script.encode([ - BITBOX.Script.opcodes.OP_DUP, - BITBOX.Script.opcodes.OP_HASH160, - identifier1, - BITBOX.Script.opcodes.OP_EQUALVERIFY, - BITBOX.Script.opcodes.OP_CHECKSIG - ]) - const scriptHash1 = BITBOX.Crypto.hash160(buf1) - const data1 = BITBOX.Script.scriptHash.output.encode(scriptHash1) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - data1 - ) - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 3 }, - { P2PKH: 2 } - ) - const sendAmount = originalAmount - byteCount - const identifier2 = BITBOX.HDNode.toIdentifier(node2) - const buf2 = BITBOX.Script.encode([ - BITBOX.Script.opcodes.OP_DUP, - BITBOX.Script.opcodes.OP_HASH160, - identifier2, - BITBOX.Script.opcodes.OP_EQUALVERIFY, - BITBOX.Script.opcodes.OP_CHECKSIG - ]) - const scriptHash2 = BITBOX.Crypto.hash160(buf2) - const data2 = BITBOX.Script.scriptHash.output.encode(scriptHash2) - transactionBuilder.addInput( - txid, - 1, - transactionBuilder.DEFAULT_SEQUENCE, - data2 - ) - const identifier3 = BITBOX.HDNode.toIdentifier(node3) - const buf3 = BITBOX.Script.encode([ - BITBOX.Script.opcodes.OP_DUP, - BITBOX.Script.opcodes.OP_HASH160, - identifier3, - BITBOX.Script.opcodes.OP_EQUALVERIFY, - BITBOX.Script.opcodes.OP_CHECKSIG - ]) - const scriptHash3 = BITBOX.Crypto.hash160(buf3) - const data3 = BITBOX.Script.scriptHash.output.encode(scriptHash3) - transactionBuilder.addOutput(data3, sendAmount) - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) - const keyPair2 = BITBOX.HDNode.toKeyPair(node2) - transactionBuilder.sign( - 0, - keyPair1, - buf1, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - transactionBuilder.sign( - 1, - keyPair2, - buf2, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - const tx = transactionBuilder.build() - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - // describe('#Testnet', () => { - // fixtures.scripts.p2sh.fromMany.testnet.forEach((fixture) => { - // it(`should create 2-to-1 P2SH transaction on testnet`, () => { - // let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); - // let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); - // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); - // let txHash = fixture.txHash; - // let originalAmount = fixture.amounts[0] + fixture.amounts[1]; - // transactionBuilder.addInput(txHash, 0); - // transactionBuilder.addInput(txHash, 1); - // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 1 }); - // let sendAmount = originalAmount - (byteCount * 15); - // transactionBuilder.addOutput(fixture.outputs[0], sendAmount); - // let keyPair1 = BITBOX.HDNode.toKeyPair(node1); - // let keyPair2 = BITBOX.HDNode.toKeyPair(node2); - // let redeemScript; - // transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); - // transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); - // let tx = transactionBuilder.build(); - // let hex = tx.toHex(); - // assert.equal(hex, fixture.hex); - // }); - // }); - // }); - }) - }) - - describe("#op_return", () => { - describe("#Mainnet", () => { - fixtures.nulldata.mainnet.forEach(fixture => { - it(`should create transaction w/ OP_RETURN output on mainnet`, () => { - const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new BITBOX.TransactionBuilder() - const txHash = fixture.txHash - const originalAmount = fixture.amount - transactionBuilder.addInput(txHash, 0) - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 1 }, - { P2PKH: 5 } - ) - const sendAmount = originalAmount - byteCount - transactionBuilder.addOutput(fixture.output, sendAmount) - const data = fixture.data - const buf = BITBOX.Script.nullData.output.encode( - Buffer.from(data, "ascii") - ) - transactionBuilder.addOutput(buf, 0) - const keyPair = BITBOX.HDNode.toKeyPair(node) - let redeemScript - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amount - ) - const tx = transactionBuilder.build() - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#Testnet", () => { - fixtures.nulldata.testnet.forEach(fixture => { - it(`should create transaction w/ OP_RETURN output on testnet`, () => { - const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new BITBOX.TransactionBuilder("testnet") - const txHash = fixture.txHash - const originalAmount = fixture.amount - transactionBuilder.addInput(txHash, 0) - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 1 }, - { P2PKH: 5 } - ) - const sendAmount = originalAmount - byteCount - transactionBuilder.addOutput(fixture.output, sendAmount) - const data = fixture.data - const buf = BITBOX.Script.nullData.output.encode( - Buffer.from(data, "ascii") - ) - transactionBuilder.addOutput(buf, 0) - const keyPair = BITBOX.HDNode.toKeyPair(node) - let redeemScript - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amount - ) - const tx = transactionBuilder.build() - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#RegTest", () => { - fixtures.nulldata.regtest.forEach(fixture => { - it(`should create transaction w/ OP_RETURN output on regtest`, () => { - const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new BITBOX.TransactionBuilder("regtest") - const txHash = fixture.txHash - const originalAmount = fixture.amount - transactionBuilder.addInput(txHash, 0) - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 1 }, - { P2PKH: 5 } - ) - const sendAmount = originalAmount - byteCount - transactionBuilder.addOutput(fixture.output, sendAmount) - const data = fixture.data - const buf = BITBOX.Script.nullData.output.encode( - Buffer.from(data, "ascii") - ) - transactionBuilder.addOutput(buf, 0) - const keyPair = BITBOX.HDNode.toKeyPair(node) - let redeemScript - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amount - ) - const tx = transactionBuilder.build() - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - }) - - describe("#bip66", () => { - fixtures.bip66.forEach(fixture => { - it(`should bip66 encode as ${fixture.DER}`, () => { - const transactionBuilder = new BITBOX.TransactionBuilder() - const r = Buffer.from(fixture.r, "hex") - const s = Buffer.from(fixture.s, "hex") - const DER = transactionBuilder.bip66.encode(r, s) - assert.equal(DER.toString("hex"), fixture.DER) - }) - }) - - fixtures.bip66.forEach(fixture => { - it(`should bip66 decode ${fixture.DER}`, () => { - const transactionBuilder = new BITBOX.TransactionBuilder() - const buffer = Buffer.from(fixture.DER, "hex") - const signature = transactionBuilder.bip66.decode(buffer) - assert.equal(signature.r.toString("hex"), fixture.r) - assert.equal(signature.s.toString("hex"), fixture.s) - }) - }) - - fixtures.bip66.forEach(fixture => { - it(`should bip66 check ${fixture.DER}`, () => { - const transactionBuilder = new BITBOX.TransactionBuilder() - const buffer = Buffer.from(fixture.DER, "hex") - assert.equal(transactionBuilder.bip66.check(buffer), true) - }) - }) - }) - - describe("#bip68", () => { - fixtures.bip68.encode.forEach(fixture => { - it(`should bip68 encode as ${fixture.result}`, () => { - const transactionBuilder = new BITBOX.TransactionBuilder() - const obj = {} - obj[fixture.type] = fixture.value - const encode = transactionBuilder.bip68.encode(obj) - assert.equal(encode, fixture.result) - }) - }) - - fixtures.bip68.decode.forEach(fixture => { - it(`should bip68 decode ${fixture.result}`, () => { - const transactionBuilder = new BITBOX.TransactionBuilder() - const obj = {} - const decode = transactionBuilder.bip68.decode(fixture.result) - assert.equal(Object.keys(decode)[0], fixture.type) - assert.deepEqual(decode[Object.keys(decode)[0]], fixture.value) - }) - }) - }) - - describe("#LockTime", () => { - describe("#Mainnet", () => { - fixtures.locktime.mainnet.forEach(fixture => { - it(`should create transaction with nLockTime on mainnet`, () => { - const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new BITBOX.TransactionBuilder() - - const txHash = fixture.txHash - const originalAmount = fixture.amount - transactionBuilder.addInput(txHash, 0, 1) - const byteCount = BITBOX.BitcoinCash.getByteCount( - { P2PKH: 1 }, - { P2PKH: 1 } - ) - const sendAmount = originalAmount - byteCount - transactionBuilder.addOutput(fixture.output, sendAmount) - const lockTime = fixture.lockTime - transactionBuilder.setLockTime(lockTime) - const keyPair = BITBOX.HDNode.toKeyPair(node) - let redeemScript - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amount - ) - const tx = transactionBuilder.build() - const hex = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - }) -}) diff --git a/test/unit/Util.js b/test/unit/Util.js deleted file mode 100644 index 862c34e7..00000000 --- a/test/unit/Util.js +++ /dev/null @@ -1,36 +0,0 @@ -const chai = require("chai") -const assert = require("assert") -const axios = require("axios") -const BITBOXSDK = require("../../lib/bitbox-sdk").default -const BITBOX = new BITBOXSDK() -const sinon = require("sinon") - -describe("#Util", () => { - describe("#validateAddress", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should validate address", done => { - const data = { - isvalid: true, - address: "bitcoincash:qpz7qtkuyhrsz4qmnnrvf8gz9zd0u9v7eqsewyk4w5", - scriptPubKey: "76a91445e02edc25c701541b9cc6c49d02289afe159ec888ac", - ismine: false, - iswatchonly: false, - isscript: false - } - - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Util.validateAddress( - "bitcoincash:qpz7qtkuyhrsz4qmnnrvf8gz9zd0u9v7eqsewyk4w5" - ) - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) -}) From a671e9efc19afc2a24ce17e7a6030c25f11e3760 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 11 Jan 2019 11:47:57 -0800 Subject: [PATCH 164/480] Adding other unit tests back in --- test/unit/Address.js | 1033 ++++++++++++++++ test/unit/BitcoinCash.js | 333 +++++ test/unit/Blockchain.js | 442 +++++++ test/unit/Control.js | 65 + test/unit/Crypto.js | 109 ++ test/unit/ECPair.js | 151 +++ test/unit/Generating.js | 29 + test/unit/HDNode.js | 347 ++++++ test/unit/Mining.js | 105 ++ test/unit/Mnemonic.js | 344 ++++++ test/unit/Network.js | 196 +++ test/unit/Price.js | 79 ++ test/unit/RawTransactions.js | 106 ++ test/unit/Script.js | 442 +++++++ test/unit/Transaction.js | 53 + test/unit/TransactionBuilder.js | 2035 +++++++++++++++++++++++++++++++ test/unit/Util.js | 36 + 17 files changed, 5905 insertions(+) create mode 100644 test/unit/Address.js create mode 100644 test/unit/BitcoinCash.js create mode 100644 test/unit/Blockchain.js create mode 100644 test/unit/Control.js create mode 100644 test/unit/Crypto.js create mode 100644 test/unit/ECPair.js create mode 100644 test/unit/Generating.js create mode 100644 test/unit/HDNode.js create mode 100644 test/unit/Mining.js create mode 100644 test/unit/Mnemonic.js create mode 100644 test/unit/Network.js create mode 100644 test/unit/Price.js create mode 100644 test/unit/RawTransactions.js create mode 100644 test/unit/Script.js create mode 100644 test/unit/Transaction.js create mode 100644 test/unit/TransactionBuilder.js create mode 100644 test/unit/Util.js diff --git a/test/unit/Address.js b/test/unit/Address.js new file mode 100644 index 00000000..a5d8a100 --- /dev/null +++ b/test/unit/Address.js @@ -0,0 +1,1033 @@ +const fixtures = require("./fixtures/Address.json") +const chai = require("chai") +const assert = require("assert") +const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() +const axios = require("axios") +const sinon = require("sinon") +const Bitcoin = require("bitcoincashjs-lib") + +function flatten(arrays) { + return [].concat.apply([], arrays) +} + +const XPUBS = flatten([fixtures.mainnetXPub, fixtures.testnetXPub]) + +const LEGACY_ADDRESSES = flatten([ + fixtures.legacyMainnetP2PKH, + fixtures.legacyMainnetP2SH, + fixtures.legacyTestnetP2PKH +]) + +const mainnet_xpubs = [] +fixtures.mainnetXPub.forEach((f, i) => { + mainnet_xpubs.push(f.xpub) +}) +const MAINNET_ADDRESSES = flatten([ + mainnet_xpubs, + fixtures.legacyMainnetP2PKH, + fixtures.legacyMainnetP2SH, + fixtures.cashaddrMainnetP2PKH +]) + +const testnet_xpubs = [] +fixtures.testnetXPub.forEach((f, i) => { + testnet_xpubs.push(f.xpub) +}) +const TESTNET_ADDRESSES = flatten([ + testnet_xpubs, + fixtures.legacyTestnetP2PKH, + fixtures.cashaddrTestnetP2PKH +]) + +const CASHADDR_ADDRESSES = flatten([ + fixtures.cashaddrMainnetP2PKH, + fixtures.cashaddrMainnetP2SH, + fixtures.cashaddrTestnetP2PKH +]) + +const CASHADDR_ADDRESSES_NO_PREFIX = CASHADDR_ADDRESSES.map(address => { + const parts = address.split(":") + return parts[1] +}) + +const REGTEST_ADDRESSES = fixtures.cashaddrRegTestP2PKH + +const REGTEST_ADDRESSES_NO_PREFIX = REGTEST_ADDRESSES.map(address => { + const parts = address.split(":") + return parts[1] +}) + +const HASH160_HASHES = flatten([ + fixtures.hash160MainnetP2PKH, + fixtures.hash160MainnetP2SH, + fixtures.hash160TestnetP2PKH +]) + +const P2PKH_ADDRESSES = flatten([ + fixtures.legacyMainnetP2PKH, + fixtures.legacyTestnetP2PKH, + fixtures.cashaddrMainnetP2PKH, + fixtures.cashaddrTestnetP2PKH, + fixtures.cashaddrRegTestP2PKH +]) + +const P2SH_ADDRESSES = flatten([ + fixtures.legacyMainnetP2SH, + fixtures.cashaddrMainnetP2SH +]) + +describe("#addressConversion", () => { + describe("#toLegacyAddress", () => { + it("should translate legacy address format to itself correctly", () => { + assert.deepEqual( + LEGACY_ADDRESSES.map(address => + BITBOX.Address.toLegacyAddress(address) + ), + LEGACY_ADDRESSES + ) + }) + + it("should convert cashaddr address to legacy base58Check", () => { + assert.deepEqual( + CASHADDR_ADDRESSES.map(address => + BITBOX.Address.toLegacyAddress(address) + ), + LEGACY_ADDRESSES + ) + }) + + it("should convert cashaddr regtest address to legacy base58Check", () => { + assert.deepEqual( + REGTEST_ADDRESSES.map(address => + BITBOX.Address.toLegacyAddress(address) + ), + fixtures.legacyTestnetP2PKH + ) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + BITBOX.Address.toLegacyAddress() + }, BITBOX.BitcoinCash.InvalidAddressError) + assert.throws(() => { + BITBOX.Address.toLegacyAddress("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) + }) + + describe("#toCashAddress", () => { + it("should convert legacy base58Check address to cashaddr", () => { + assert.deepEqual( + LEGACY_ADDRESSES.map(address => + BITBOX.Address.toCashAddress(address, true) + ), + CASHADDR_ADDRESSES + ) + }) + + it("should convert legacy base58Check address to regtest cashaddr", () => { + assert.deepEqual( + fixtures.legacyTestnetP2PKH.map(address => + BITBOX.Address.toCashAddress(address, true, true) + ), + REGTEST_ADDRESSES + ) + }) + + it("should translate cashaddr address format to itself correctly", () => { + assert.deepEqual( + CASHADDR_ADDRESSES.map(address => + BITBOX.Address.toCashAddress(address, true) + ), + CASHADDR_ADDRESSES + ) + }) + + it("should translate regtest cashaddr address format to itself correctly", () => { + assert.deepEqual( + REGTEST_ADDRESSES.map(address => + BITBOX.Address.toCashAddress(address, true, true) + ), + REGTEST_ADDRESSES + ) + }) + + it("should translate no-prefix cashaddr address format to itself correctly", () => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.toCashAddress(address, true) + ), + CASHADDR_ADDRESSES + ) + }) + + it("should translate no-prefix regtest cashaddr address format to itself correctly", () => { + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.toCashAddress(address, true, true) + ), + REGTEST_ADDRESSES + ) + }) + + it("should translate cashaddr address format to itself of no-prefix correctly", () => { + CASHADDR_ADDRESSES.forEach(address => { + const noPrefix = BITBOX.Address.toCashAddress(address, false) + assert.equal(address.split(":")[1], noPrefix) + }) + }) + + it("should translate regtest cashaddr address format to itself of no-prefix correctly", () => { + REGTEST_ADDRESSES.forEach(address => { + const noPrefix = BITBOX.Address.toCashAddress(address, false, true) + assert.equal(address.split(":")[1], noPrefix) + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + BITBOX.BitcoinCash.Address.toCashAddress() + }, BITBOX.BitcoinCash.InvalidAddressError) + assert.throws(() => { + BITBOX.BitcoinCash.Address.toCashAddress("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) + }) + describe("#toHash160", () => { + it("should convert legacy base58check address to hash160", () => { + assert.deepEqual( + LEGACY_ADDRESSES.map(address => BITBOX.Address.toHash160(address)), + HASH160_HASHES + ) + }) + + it("should convert cashaddr address to hash160", () => { + assert.deepEqual( + CASHADDR_ADDRESSES.map(address => BITBOX.Address.toHash160(address)), + HASH160_HASHES + ) + }) + + it("should convert regtest cashaddr address to hash160", () => { + assert.deepEqual( + REGTEST_ADDRESSES.map(address => BITBOX.Address.toHash160(address)), + fixtures.hash160TestnetP2PKH + ) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + BITBOX.Address.toHash160() + }, BITBOX.BitcoinCash.InvalidAddressError) + assert.throws(() => { + BITBOX.Address.toHash160("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) + }) + describe("#fromHash160", () => { + it("should convert hash160 to mainnet P2PKH legacy base58check address", () => { + assert.deepEqual( + fixtures.hash160MainnetP2PKH.map(hash160 => + BITBOX.Address.hash160ToLegacy(hash160) + ), + fixtures.legacyMainnetP2PKH + ) + }) + + it("should convert hash160 to mainnet P2SH legacy base58check address", () => { + assert.deepEqual( + fixtures.hash160MainnetP2SH.map(hash160 => + BITBOX.Address.hash160ToLegacy( + hash160, + Bitcoin.networks.bitcoin.scriptHash + ) + ), + fixtures.legacyMainnetP2SH + ) + }) + + it("should convert hash160 to testnet P2PKH legacy base58check address", () => { + assert.deepEqual( + fixtures.hash160TestnetP2PKH.map(hash160 => + BITBOX.Address.hash160ToLegacy( + hash160, + Bitcoin.networks.testnet.pubKeyHash + ) + ), + fixtures.legacyTestnetP2PKH + ) + }) + + it("should convert hash160 to mainnet P2PKH cash address", () => { + assert.deepEqual( + fixtures.hash160MainnetP2PKH.map(hash160 => + BITBOX.Address.hash160ToCash(hash160) + ), + fixtures.cashaddrMainnetP2PKH + ) + }) + + it("should convert hash160 to mainnet P2SH cash address", () => { + assert.deepEqual( + fixtures.hash160MainnetP2SH.map(hash160 => + BITBOX.Address.hash160ToCash( + hash160, + Bitcoin.networks.bitcoin.scriptHash + ) + ), + fixtures.cashaddrMainnetP2SH + ) + }) + + it("should convert hash160 to testnet P2PKH cash address", () => { + assert.deepEqual( + fixtures.hash160TestnetP2PKH.map(hash160 => + BITBOX.Address.hash160ToCash( + hash160, + Bitcoin.networks.testnet.pubKeyHash + ) + ), + fixtures.cashaddrTestnetP2PKH + ) + }) + + it("should convert hash160 to regtest P2PKH cash address", () => { + assert.deepEqual( + fixtures.hash160TestnetP2PKH.map(hash160 => + BITBOX.Address.hash160ToCash( + hash160, + Bitcoin.networks.testnet.pubKeyHash, + true + ) + ), + REGTEST_ADDRESSES + ) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + BITBOX.Address.hash160ToLegacy() + }, BITBOX.BitcoinCash.InvalidAddressError) + assert.throws(() => { + BITBOX.Address.hash160ToLegacy("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + assert.throws(() => { + BITBOX.Address.hash160ToCash() + }, BITBOX.BitcoinCash.InvalidAddressError) + assert.throws(() => { + BITBOX.Address.hash160ToCash("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) + }) +}) + +describe("address format detection", () => { + describe("#isLegacyAddress", () => { + describe("is legacy", () => { + LEGACY_ADDRESSES.forEach(address => { + it(`should detect ${address} is a legacy base58Check address`, () => { + const isBase58Check = BITBOX.Address.isLegacyAddress(address) + assert.equal(isBase58Check, true) + }) + }) + }) + describe("is not legacy", () => { + CASHADDR_ADDRESSES.forEach(address => { + it(`should detect ${address} is not a legacy address`, () => { + const isBase58Check = BITBOX.Address.isLegacyAddress(address) + assert.equal(isBase58Check, false) + }) + }) + + REGTEST_ADDRESSES.forEach(address => { + it(`should detect ${address} is not a legacy address`, () => { + const isBase58Check = BITBOX.Address.isLegacyAddress(address) + assert.equal(isBase58Check, false) + }) + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + BITBOX.Address.isLegacyAddress() + }, BITBOX.BitcoinCash.InvalidAddressError) + assert.throws(() => { + BITBOX.Address.isLegacyAddress("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) + }) + + describe("#isCashAddress", () => { + describe("is cashaddr", () => { + CASHADDR_ADDRESSES.forEach(address => { + it(`should detect ${address} is a cashaddr address`, () => { + const isCashaddr = BITBOX.Address.isCashAddress(address) + assert.equal(isCashaddr, true) + }) + }) + + REGTEST_ADDRESSES.forEach(address => { + it(`should detect ${address} is a cashaddr address`, () => { + const isCashaddr = BITBOX.Address.isCashAddress(address) + assert.equal(isCashaddr, true) + }) + }) + }) + + describe("is not cashaddr", () => { + LEGACY_ADDRESSES.forEach(address => { + it(`should detect ${address} is not a cashaddr address`, () => { + const isCashaddr = BITBOX.Address.isCashAddress(address) + assert.equal(isCashaddr, false) + }) + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + BITBOX.Address.isCashAddress() + }, BITBOX.BitcoinCash.InvalidAddressError) + assert.throws(() => { + BITBOX.Address.isCashAddress("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) + }) + describe("#isHash160", () => { + describe("is hash160", () => { + HASH160_HASHES.forEach(address => { + it(`should detect ${address} is a hash160 hash`, () => { + const isHash160 = BITBOX.Address.isHash160(address) + assert.equal(isHash160, true) + }) + }) + }) + describe("is not hash160", () => { + LEGACY_ADDRESSES.forEach(address => { + it(`should detect ${address} is not a hash160 hash`, () => { + const isHash160 = BITBOX.Address.isHash160(address) + assert.equal(isHash160, false) + }) + }) + + CASHADDR_ADDRESSES.forEach(address => { + it(`should detect ${address} is not a hash160 hash`, () => { + const isHash160 = BITBOX.Address.isHash160(address) + assert.equal(isHash160, false) + }) + }) + + REGTEST_ADDRESSES.forEach(address => { + it(`should detect ${address} is not a legacy address`, () => { + const isHash160 = BITBOX.Address.isHash160(address) + assert.equal(isHash160, false) + }) + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + BITBOX.Address.isHash160() + }, BITBOX.BitcoinCash.InvalidAddressError) + assert.throws(() => { + BITBOX.Address.isHash160("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) + }) +}) + +describe("network detection", () => { + describe("#isMainnetAddress", () => { + describe("is mainnet", () => { + MAINNET_ADDRESSES.forEach(address => { + it(`should detect ${address} is a mainnet address`, () => { + const isMainnet = BITBOX.Address.isMainnetAddress(address) + assert.equal(isMainnet, true) + }) + }) + }) + + describe("is not mainnet", () => { + TESTNET_ADDRESSES.forEach(address => { + it(`should detect ${address} is not a mainnet address`, () => { + const isMainnet = BITBOX.Address.isMainnetAddress(address) + assert.equal(isMainnet, false) + }) + }) + + REGTEST_ADDRESSES.forEach(address => { + it(`should detect ${address} is not a mainnet address`, () => { + const isMainnet = BITBOX.Address.isMainnetAddress(address) + assert.equal(isMainnet, false) + }) + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + BITBOX.Address.isMainnetAddress() + }, BITBOX.BitcoinCash.InvalidAddressError) + assert.throws(() => { + BITBOX.Address.isMainnetAddress("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) + }) + + describe("#isTestnetAddress", () => { + describe("is testnet", () => { + TESTNET_ADDRESSES.forEach(address => { + it(`should detect ${address} is a testnet address`, () => { + const isTestnet = BITBOX.Address.isTestnetAddress(address) + assert.equal(isTestnet, true) + }) + }) + }) + + describe("is not testnet", () => { + MAINNET_ADDRESSES.forEach(address => { + it(`should detect ${address} is not a testnet address`, () => { + const isTestnet = BITBOX.Address.isTestnetAddress(address) + assert.equal(isTestnet, false) + }) + }) + + REGTEST_ADDRESSES.forEach(address => { + it(`should detect ${address} is not a testnet address`, () => { + const isTestnet = BITBOX.Address.isTestnetAddress(address) + assert.equal(isTestnet, false) + }) + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + BITBOX.Address.isTestnetAddress() + }, BITBOX.BitcoinCash.InvalidAddressError) + assert.throws(() => { + BITBOX.Address.isTestnetAddress("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) + }) + + describe("#isRegTestAddress", () => { + describe("is testnet", () => { + REGTEST_ADDRESSES.forEach(address => { + it(`should detect ${address} is a regtest address`, () => { + const isRegTest = BITBOX.Address.isRegTestAddress(address) + assert.equal(isRegTest, true) + }) + }) + }) + + describe("is not testnet", () => { + MAINNET_ADDRESSES.forEach(address => { + it(`should detect ${address} is not a regtest address`, () => { + const isRegTest = BITBOX.Address.isRegTestAddress(address) + assert.equal(isRegTest, false) + }) + }) + + TESTNET_ADDRESSES.forEach(address => { + it(`should detect ${address} is not a regtest address`, () => { + const isRegTest = BITBOX.Address.isRegTestAddress(address) + assert.equal(isRegTest, false) + }) + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + BITBOX.Address.isRegTestAddress() + }, BITBOX.BitcoinCash.InvalidAddressError) + assert.throws(() => { + BITBOX.Address.isRegTestAddress("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) + }) +}) + +describe("address type detection", () => { + describe("#isP2PKHAddress", () => { + describe("is P2PKH", () => { + P2PKH_ADDRESSES.forEach(address => { + it(`should detect ${address} is a P2PKH address`, () => { + const isP2PKH = BITBOX.Address.isP2PKHAddress(address) + assert.equal(isP2PKH, true) + }) + }) + }) + + describe("is not P2PKH", () => { + P2SH_ADDRESSES.forEach(address => { + it(`should detect ${address} is not a P2PKH address`, () => { + const isP2PKH = BITBOX.Address.isP2PKHAddress(address) + assert.equal(isP2PKH, false) + }) + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + BITBOX.Address.isP2PKHAddress() + }, BITBOX.BitcoinCash.InvalidAddressError) + assert.throws(() => { + BITBOX.Address.isP2PKHAddress("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) + }) + + describe("#isP2SHAddress", () => { + describe("is P2SH", () => { + P2SH_ADDRESSES.forEach(address => { + it(`should detect ${address} is a P2SH address`, () => { + const isP2SH = BITBOX.Address.isP2SHAddress(address) + assert.equal(isP2SH, true) + }) + }) + }) + + describe("is not P2SH", () => { + P2PKH_ADDRESSES.forEach(address => { + it(`should detect ${address} is not a P2SH address`, () => { + const isP2SH = BITBOX.Address.isP2SHAddress(address) + assert.equal(isP2SH, false) + }) + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + BITBOX.Address.isP2SHAddress() + }, BITBOX.BitcoinCash.InvalidAddressError) + assert.throws(() => { + BITBOX.Address.isP2SHAddress("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) + }) +}) + +describe("cashaddr prefix detection", () => { + it("should return the same result for detectAddressFormat", () => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.detectAddressFormat(address) + ), + CASHADDR_ADDRESSES.map(address => + BITBOX.Address.detectAddressFormat(address) + ) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.detectAddressFormat(address) + ), + REGTEST_ADDRESSES.map(address => + BITBOX.Address.detectAddressFormat(address) + ) + ) + }) + it("should return the same result for detectAddressNetwork", () => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.detectAddressNetwork(address) + ), + CASHADDR_ADDRESSES.map(address => + BITBOX.Address.detectAddressNetwork(address) + ) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.detectAddressNetwork(address) + ), + REGTEST_ADDRESSES.map(address => + BITBOX.Address.detectAddressNetwork(address) + ) + ) + }) + it("should return the same result for detectAddressType", () => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.detectAddressType(address) + ), + CASHADDR_ADDRESSES.map(address => + BITBOX.Address.detectAddressType(address) + ) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.detectAddressType(address) + ), + REGTEST_ADDRESSES.map(address => + BITBOX.Address.detectAddressType(address) + ) + ) + }) + it("should return the same result for toLegacyAddress", () => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.toLegacyAddress(address) + ), + CASHADDR_ADDRESSES.map(address => BITBOX.Address.toLegacyAddress(address)) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.toLegacyAddress(address) + ), + REGTEST_ADDRESSES.map(address => BITBOX.Address.toLegacyAddress(address)) + ) + }) + it("should return the same result for isLegacyAddress", () => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.isLegacyAddress(address) + ), + CASHADDR_ADDRESSES.map(address => BITBOX.Address.isLegacyAddress(address)) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.isLegacyAddress(address) + ), + REGTEST_ADDRESSES.map(address => BITBOX.Address.isLegacyAddress(address)) + ) + }) + it("should return the same result for isCashAddress", () => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.isCashAddress(address) + ), + CASHADDR_ADDRESSES.map(address => BITBOX.Address.isCashAddress(address)) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.isCashAddress(address) + ), + REGTEST_ADDRESSES.map(address => BITBOX.Address.isCashAddress(address)) + ) + }) + it("should return the same result for isMainnetAddress", () => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.isMainnetAddress(address) + ), + CASHADDR_ADDRESSES.map(address => + BITBOX.Address.isMainnetAddress(address) + ) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.isMainnetAddress(address) + ), + REGTEST_ADDRESSES.map(address => BITBOX.Address.isMainnetAddress(address)) + ) + }) + it("should return the same result for isTestnetAddress", () => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.isTestnetAddress(address) + ), + CASHADDR_ADDRESSES.map(address => + BITBOX.Address.isTestnetAddress(address) + ) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.isTestnetAddress(address) + ), + REGTEST_ADDRESSES.map(address => BITBOX.Address.isTestnetAddress(address)) + ) + }) + it("should return the same result for isP2PKHAddress", () => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.isP2PKHAddress(address) + ), + CASHADDR_ADDRESSES.map(address => BITBOX.Address.isP2PKHAddress(address)) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.isP2PKHAddress(address) + ), + REGTEST_ADDRESSES.map(address => BITBOX.Address.isP2PKHAddress(address)) + ) + }) + it("should return the same result for isP2SHAddress", () => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.isP2SHAddress(address) + ), + CASHADDR_ADDRESSES.map(address => BITBOX.Address.isP2SHAddress(address)) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map(address => + BITBOX.Address.isP2SHAddress(address) + ), + REGTEST_ADDRESSES.map(address => BITBOX.Address.isP2SHAddress(address)) + ) + }) +}) + +describe("#detectAddressFormat", () => { + LEGACY_ADDRESSES.forEach(address => { + it(`should detect ${address} is a legacy base58Check address`, () => { + const isBase58Check = BITBOX.Address.detectAddressFormat(address) + assert.equal(isBase58Check, "legacy") + }) + }) + + CASHADDR_ADDRESSES.forEach(address => { + it(`should detect ${address} is a legacy cashaddr address`, () => { + const isCashaddr = BITBOX.Address.detectAddressFormat(address) + assert.equal(isCashaddr, "cashaddr") + }) + }) + + REGTEST_ADDRESSES.forEach(address => { + it(`should detect ${address} is a legacy cashaddr address`, () => { + const isCashaddr = BITBOX.Address.detectAddressFormat(address) + assert.equal(isCashaddr, "cashaddr") + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + BITBOX.Address.detectAddressFormat() + }, BITBOX.BitcoinCash.InvalidAddressError) + assert.throws(() => { + BITBOX.Address.detectAddressFormat("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) +}) + +describe("#detectAddressNetwork", () => { + MAINNET_ADDRESSES.forEach(address => { + it(`should detect ${address} is a mainnet address`, () => { + const isMainnet = BITBOX.Address.detectAddressNetwork(address) + assert.equal(isMainnet, "mainnet") + }) + }) + + TESTNET_ADDRESSES.forEach(address => { + it(`should detect ${address} is a testnet address`, () => { + const isTestnet = BITBOX.Address.detectAddressNetwork(address) + assert.equal(isTestnet, "testnet") + }) + }) + + REGTEST_ADDRESSES.forEach(address => { + it(`should detect ${address} is a testnet address`, () => { + const isTestnet = BITBOX.Address.detectAddressNetwork(address) + assert.equal(isTestnet, "regtest") + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + BITBOX.Address.detectAddressNetwork() + }, BITBOX.BitcoinCash.InvalidAddressError) + assert.throws(() => { + BITBOX.Address.detectAddressNetwork("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) +}) + +describe("#detectAddressType", () => { + P2PKH_ADDRESSES.forEach(address => { + it(`should detect ${address} is a P2PKH address`, () => { + const isP2PKH = BITBOX.Address.detectAddressType(address) + assert.equal(isP2PKH, "p2pkh") + }) + }) + + P2SH_ADDRESSES.forEach(address => { + it(`should detect ${address} is a P2SH address`, () => { + const isP2SH = BITBOX.Address.detectAddressType(address) + assert.equal(isP2SH, "p2sh") + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + BITBOX.Address.detectAddressType() + }, BITBOX.BitcoinCash.InvalidAddressError) + assert.throws(() => { + BITBOX.Address.detectAddressType("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) +}) + +describe("#fromXPub", () => { + XPUBS.forEach((xpub, i) => { + xpub.addresses.forEach((address, j) => { + it(`generate public external change address ${j} for ${ + xpub.xpub + }`, () => { + assert.equal(BITBOX.Address.fromXPub(xpub.xpub, `0/${j}`), address) + }) + }) + }) +}) + +describe("#fromOutputScript", () => { + const script = BITBOX.Script.encode([ + Buffer.from("BOX", "ascii"), + BITBOX.Script.opcodes.OP_CAT, + Buffer.from("BITBOX", "ascii"), + BITBOX.Script.opcodes.OP_EQUAL + ]) + + // hash160 script buffer + const p2sh_hash160 = BITBOX.Crypto.hash160(script) + + // encode hash160 as P2SH output + const scriptPubKey = BITBOX.Script.scriptHash.output.encode(p2sh_hash160) + const p2shAddress = BITBOX.Address.fromOutputScript(scriptPubKey) + fixtures.p2shMainnet.forEach((address, i) => { + it(`generate address from output script`, () => { + assert.equal(p2shAddress, address) + }) + }) +}) + +describe("#details", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get details", done => { + const data = { + legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", + cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", + balance: 300.0828874, + balanceSat: 30008288740, + totalReceived: 12945.45174649, + totalReceivedSat: 1294545174649, + totalSent: 12645.36885909, + totalSentSat: 1264536885909, + unconfirmedBalance: 0, + unconfirmedBalanceSat: 0, + unconfirmedTxApperances: 0, + txApperances: 1042, + transactions: [ + "b29425a876f62e114508e67e66b5eb1ab0d320d7c9a57fb0ece086a36e2b7309" + ] + } + + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Address.details( + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + ) + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) +}) + +describe("#utxo", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get utxo", done => { + const data = [ + { + legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", + cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", + txid: + "6f56254424378d6914cebd097579c70664843e5876ca86f0bf412ba7f3928326", + vout: 0, + scriptPubKey: "a91479cb06a5986baf588237de9b7fb1a8f68c35b76687", + amount: 12.5002911, + satoshis: 1250029110, + height: 528745, + confirmations: 17 + }, + { + legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", + cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", + txid: + "b29425a876f62e114508e67e66b5eb1ab0d320d7c9a57fb0ece086a36e2b7309", + vout: 0, + scriptPubKey: "a91479cb06a5986baf588237de9b7fb1a8f68c35b76687", + amount: 12.50069247, + satoshis: 1250069247, + height: 528744, + confirmations: 18 + } + ] + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Address.utxo( + "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l" + ) + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) +}) + +describe("#unconfirmed", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get unconfirmed transactions", done => { + const data = [ + { + txid: + "e0aadd861a06993e39af932bb0b9ad69e7b37ef5843a13c6724789e1c94f3513", + vout: 1, + scriptPubKey: "76a914a0f531f4ff810a415580c12e54a7072946bb927e88ac", + amount: 0.00008273, + satoshis: 8273, + confirmations: 0, + ts: 1526680569, + legacyAddress: "1Fg4r9iDrEkCcDmHTy2T79EusNfhyQpu7W", + cashAddress: "bitcoincash:qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c" + } + ] + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Address.unconfirmed( + "bitcoincash:qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c" + ) + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) +}) diff --git a/test/unit/BitcoinCash.js b/test/unit/BitcoinCash.js new file mode 100644 index 00000000..9059d332 --- /dev/null +++ b/test/unit/BitcoinCash.js @@ -0,0 +1,333 @@ +const fixtures = require("./fixtures/BitcoinCash.json") +const chai = require("chai") +const assert = require("assert") +const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() + +// TODO +// 1. generate testnet p2sh +// 2. generate cashaddr mainnet p2sh +// 3. generate cashaddr testnet p2sh +// 4. create BITBOX fromBase58 method +// * confirm xpub cannot generate WIF +// * confirm xpriv can generate WIF +// 5. create fromXPriv method w/ tests and docs +// 1. mainnet +// * confirm xpriv generates address +// * confirm xpriv generates WIF +// 2. testnet +// * confirm xpriv generates address +// * confirm xpriv generates WIF +// 6. More error test cases. + +describe("#BitcoinCash", () => { + describe("price conversion", () => { + describe("#toBitcoinCash", () => { + fixtures.conversion.toBCH.satoshis.forEach(satoshi => { + it(`should convert ${satoshi[0]} Satoshis to ${ + satoshi[1] + } $BCH`, () => { + assert.equal(BITBOX.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]) + }) + }) + + fixtures.conversion.toBCH.strings.forEach(satoshi => { + it(`should convert "${satoshi[0]}" Satoshis as a string to ${ + satoshi[1] + } $BCH`, () => { + assert.equal(BITBOX.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]) + }) + }) + + fixtures.conversion.toBCH.not.forEach(bch => { + it(`converts ${bch[0]} to Bitcoin Cash, not to ${ + bch[1] + } Satoshi`, () => { + assert.notEqual(BITBOX.BitcoinCash.toBitcoinCash(bch[0]), bch[1]) + }) + }) + + fixtures.conversion.toBCH.rounding.forEach(satoshi => { + it(`rounding ${satoshi[0]} to ${satoshi[1]} $BCH`, () => { + assert.equal(BITBOX.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]) + }) + }) + }) + + describe("#toSatoshi", () => { + fixtures.conversion.toSatoshi.bch.forEach(bch => { + it(`should convert ${bch[0]} $BCH to ${bch[1]} Satoshis`, () => { + assert.equal(BITBOX.BitcoinCash.toSatoshi(bch[0]), bch[1]) + }) + }) + + fixtures.conversion.toSatoshi.strings.forEach(bch => { + it(`should convert "${bch[0]}" $BCH as a string to ${ + bch[1] + } Satoshis`, () => { + assert.equal(BITBOX.BitcoinCash.toSatoshi(bch[0]), bch[1]) + }) + }) + + fixtures.conversion.toSatoshi.not.forEach(satoshi => { + it(`converts ${satoshi[0]} to Satoshi, not to ${ + satoshi[1] + } Bitcoin Cash`, () => { + assert.notEqual(BITBOX.BitcoinCash.toSatoshi(satoshi[0]), satoshi[1]) + }) + }) + + fixtures.conversion.toSatoshi.rounding.forEach(bch => { + it(`rounding ${bch[0]} to ${bch[1]} Satoshi`, () => { + assert.equal(BITBOX.BitcoinCash.toSatoshi(bch[0]), bch[1]) + }) + }) + }) + + describe("#satsToBits", () => { + fixtures.conversion.satsToBits.bch.forEach(bch => { + it(`should convert ${bch[0]} BCH to ${bch[1]} bits`, () => { + assert.equal( + BITBOX.BitcoinCash.satsToBits(BITBOX.BitcoinCash.toSatoshi(bch[0])), + bch[1] + ) + }) + }) + + fixtures.conversion.satsToBits.strings.forEach(bch => { + it(`should convert "${bch[0]}" BCH as a string to ${ + bch[1] + } bits`, () => { + assert.equal( + BITBOX.BitcoinCash.satsToBits(BITBOX.BitcoinCash.toSatoshi(bch[0])), + bch[1] + ) + }) + }) + }) + // + // describe('#satsFromBits', () => { + // fixtures.conversion.satsFromBits.bch.forEach((bch) => { + // it(`should convert ${bch[1]} bits to ${bch[0]} satoshis`, () => { + // assert.equal(BITBOX.BitcoinCash.satsFromBits(bch[1]), bch[0]); + // }); + // }); + // + // fixtures.conversion.satsFromBits.strings.forEach((bch) => { + // it(`should convert "${bch[1]}" bits as a string to ${bch[0]} satoshis`, () => { + // assert.equal(BITBOX.BitcoinCash.satsFromBits(bch[1]), bch[0]); + // }); + // }); + // }); + }) + + describe("sign and verify messages", () => { + describe("#signMessageWithPrivKey", () => { + fixtures.signatures.sign.forEach(sign => { + it(`should sign a message w/ ${sign.network} ${ + sign.privateKeyWIF + }`, () => { + const privateKeyWIF = sign.privateKeyWIF + const message = sign.message + const signature = BITBOX.BitcoinCash.signMessageWithPrivKey( + privateKeyWIF, + message + ) + assert.equal(signature, sign.signature) + }) + }) + }) + + describe("#verifyMessage", () => { + fixtures.signatures.verify.forEach(sign => { + it(`should verify a valid signed message from ${ + sign.network + } cashaddr address ${sign.address}`, () => { + assert.equal( + BITBOX.BitcoinCash.verifyMessage( + sign.address, + sign.signature, + sign.message + ), + true + ) + }) + }) + + fixtures.signatures.verify.forEach(sign => { + const legacyAddress = BITBOX.Address.toLegacyAddress(sign.address) + it(`should verify a valid signed message from ${ + sign.network + } legacy address ${legacyAddress}`, () => { + assert.equal( + BITBOX.BitcoinCash.verifyMessage( + legacyAddress, + sign.signature, + sign.message + ), + true + ) + }) + }) + + fixtures.signatures.verify.forEach(sign => { + const legacyAddress = BITBOX.Address.toLegacyAddress(sign.address) + it(`should not verify an invalid signed message from ${ + sign.network + } cashaddr address ${sign.address}`, () => { + assert.equal( + BITBOX.BitcoinCash.verifyMessage( + sign.address, + sign.signature, + "nope" + ), + false + ) + }) + }) + }) + }) + + describe("encode and decode to base58Check", () => { + describe("#encodeBase58Check", () => { + fixtures.encodeBase58Check.forEach((base58Check, i) => { + it(`encode ${base58Check.hex} as base58Check ${ + base58Check.base58Check + }`, () => { + assert.equal( + BITBOX.BitcoinCash.encodeBase58Check(base58Check.hex), + base58Check.base58Check + ) + }) + }) + }) + + describe("#decodeBase58Check", () => { + fixtures.encodeBase58Check.forEach((base58Check, i) => { + it(`decode ${base58Check.base58Check} as ${base58Check.hex}`, () => { + assert.equal( + BITBOX.BitcoinCash.decodeBase58Check(base58Check.base58Check), + base58Check.hex + ) + }) + }) + }) + }) + + describe("encode and decode BIP21 urls", () => { + describe("#encodeBIP21", () => { + fixtures.bip21.valid.forEach((bip21, i) => { + it(`encode ${bip21.address} as url`, () => { + const url = BITBOX.BitcoinCash.encodeBIP21( + bip21.address, + bip21.options + ) + assert.equal(url, bip21.url) + }) + }) + fixtures.bip21.valid_regtest.forEach((bip21, i) => { + it(`encode ${bip21.address} as url`, () => { + const url = BITBOX.BitcoinCash.encodeBIP21( + bip21.address, + bip21.options, + true + ) + assert.equal(url, bip21.url) + }) + }) + }) + + describe("#decodeBIP21", () => { + fixtures.bip21.valid.forEach((bip21, i) => { + it(`decodes ${bip21.url}`, () => { + const decoded = BITBOX.BitcoinCash.decodeBIP21(bip21.url) + assert.equal(decoded.options.amount, bip21.options.amount) + assert.equal(decoded.options.label, bip21.options.label) + assert.equal( + BITBOX.Address.toCashAddress(decoded.address), + BITBOX.Address.toCashAddress(bip21.address) + ) + }) + }) + // fixtures.bip21.valid_regtest.forEach((bip21, i) => { + // it(`decodes ${bip21.url}`, () => { + // const decoded = BITBOX.BitcoinCash.decodeBIP21(bip21.url) + // assert.equal(decoded.options.amount, bip21.options.amount) + // assert.equal(decoded.options.label, bip21.options.label) + // assert.equal( + // BITBOX.Address.toCashAddress(decoded.address, true, true), + // BITBOX.Address.toCashAddress(bip21.address, true, true) + // ) + // }) + // }) + }) + }) + + describe("#getByteCount", () => { + fixtures.getByteCount.forEach(fixture => { + it(`get byte count`, () => { + const byteCount = BITBOX.BitcoinCash.getByteCount( + fixture.inputs, + fixture.outputs + ) + assert.equal(byteCount, fixture.byteCount) + }) + }) + }) + + describe("#bip38", () => { + describe("#encryptBIP38", () => { + fixtures.bip38.encrypt.mainnet.forEach(fixture => { + it(`BIP 38 encrypt wif ${fixture.wif} with password ${ + fixture.password + } on mainnet`, () => { + const encryptedKey = BITBOX.BitcoinCash.encryptBIP38( + fixture.wif, + fixture.password + ) + assert.equal(encryptedKey, fixture.encryptedKey) + }) + }) + + fixtures.bip38.encrypt.testnet.forEach(fixture => { + it(`BIP 38 encrypt wif ${fixture.wif} with password ${ + fixture.password + } on testnet`, () => { + const encryptedKey = BITBOX.BitcoinCash.encryptBIP38( + fixture.wif, + fixture.password + ) + assert.equal(encryptedKey, fixture.encryptedKey) + }) + }) + }) + + describe("#decryptBIP38", () => { + fixtures.bip38.decrypt.mainnet.forEach(fixture => { + it(`BIP 38 decrypt encrypted key ${ + fixture.encryptedKey + } on mainnet`, () => { + const wif = BITBOX.BitcoinCash.decryptBIP38( + fixture.encryptedKey, + fixture.password, + "mainnet" + ) + assert.equal(wif, fixture.wif) + }) + }) + + fixtures.bip38.decrypt.testnet.forEach(fixture => { + it(`BIP 38 decrypt encrypted key ${ + fixture.encryptedKey + } on testnet`, () => { + const wif = BITBOX.BitcoinCash.decryptBIP38( + fixture.encryptedKey, + fixture.password, + "testnet" + ) + assert.equal(wif, fixture.wif) + }) + }) + }) + }) +}) diff --git a/test/unit/Blockchain.js b/test/unit/Blockchain.js new file mode 100644 index 00000000..478cce68 --- /dev/null +++ b/test/unit/Blockchain.js @@ -0,0 +1,442 @@ +const chai = require("chai") +const assert = require("assert") +const axios = require("axios") +const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() +const sinon = require("sinon") + +describe("#Blockchain", () => { + describe("#getBestBlockHash", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get best block hash", done => { + const resolved = new Promise(r => + r({ + data: + "0000000000000000005f1f550d3d8b142b684277016ebd00fa29c668606ae52d" + }) + ) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Blockchain.getBestBlockHash() + .then(result => { + const hash = + "0000000000000000005f1f550d3d8b142b684277016ebd00fa29c668606ae52d" + assert.equal(hash, result) + }) + .then(done, done) + }) + }) + + describe("#getBlock", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + hash: "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09", + confirmations: 526807, + size: 216, + height: 1000, + version: 1, + versionHex: "00000001", + merkleroot: + "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33", + tx: ["fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33"], + time: 1232346882, + mediantime: 1232344831, + nonce: 2595206198, + bits: "1d00ffff", + difficulty: 1, + chainwork: + "000000000000000000000000000000000000000000000000000003e903e903e9", + previousblockhash: + "0000000008e647742775a230787d66fdf92c46a48c896bfbc85cdc8acc67e87d", + nextblockhash: + "00000000a2887344f8db859e372e7e4bc26b23b9de340f725afbf2edb265b4c6" + } + + it("should get block by hash", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Blockchain.getBlock( + "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09" + ) + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getBlockchainInfo", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + chain: "main", + blocks: 527810, + headers: 527810, + bestblockhash: + "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0", + difficulty: 576023394804.6666, + mediantime: 1524878499, + verificationprogress: 0.9999990106793685, + chainwork: + "00000000000000000000000000000000000000000096da5b040913fa09249b4e", + pruned: false, + softforks: [ + { id: "bip34", version: 2, reject: [Object] }, + { id: "bip66", version: 3, reject: [Object] }, + { id: "bip65", version: 4, reject: [Object] } + ], + bip9_softforks: { + csv: { + status: "active", + startTime: 1462060800, + timeout: 1493596800, + since: 419328 + } + } + } + + it("should get blockchain info", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Blockchain.getBlockchainInfo() + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getBlockCount", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = 527810 + + it("should get block count", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Blockchain.getBlockCount() + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getBlockHash", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = + "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0" + + it("should get block hash by height", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Blockchain.getBlockHash(527810) + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getBlockHeader", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + hash: "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0", + confirmations: 1, + height: 527810, + version: 536870912, + versionHex: "20000000", + merkleroot: + "9298432bbebe4638456aa19cb7ef91639da87668a285d88d0ecd6080424d223b", + time: 1524881438, + mediantime: 1524878499, + nonce: 3326843941, + bits: "1801e8a5", + difficulty: 576023394804.6666, + chainwork: + "00000000000000000000000000000000000000000096da5b040913fa09249b4e", + previousblockhash: + "000000000000000000b33251708bc7a7b4540e61880d8c376e8e2db6a19a4789" + } + + it("should get block header by hash", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Blockchain.getBlockHeader( + "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0", + true + ) + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getDifficulty", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = "577528469277.1339" + + it("should get difficulty", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Blockchain.getDifficulty() + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getMempoolAncestors", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = "Transaction not in mempool" + + it("should get mempool ancestors", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Blockchain.getMempoolAncestors( + "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", + true + ) + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getMempoolDescendants", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + result: "Transaction not in mempool" + } + + it("should get mempool descendants", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Blockchain.getMempoolDescendants( + "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", + true + ) + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getMempoolEntry", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + result: "Transaction not in mempool" + } + + it("should get mempool entry", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Blockchain.getMempoolEntry( + "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88" + ) + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getMempoolInfo", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + result: { + size: 317, + bytes: 208583, + usage: 554944, + maxmempool: 300000000, + mempoolminfee: 0 + } + } + + it("should get mempool info", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Blockchain.getMempoolInfo() + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getRawMempool", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + result: { + transactions: [ + { + txid: + "ab36d68dd0a618592fe34e4a898e8beeeb4049133547dbb16f9338384084af96", + size: 191, + fee: 0.00047703, + modifiedfee: 0.00047703, + time: 1524883317, + height: 527811, + startingpriority: 5287822727.272727, + currentpriority: 5287822727.272727, + descendantcount: 1, + descendantsize: 191, + descendantfees: 47703, + ancestorcount: 1, + ancestorsize: 191, + ancestorfees: 47703, + depends: [] + } + ] + } + } + + it("should get mempool info", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Blockchain.getRawMempool() + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getTxOut", () => { + // TODO finish this test + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + result: {} + } + + it("should get TODO", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Blockchain.getTxOut( + "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", + 0, + true + ) + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#preciousBlock", () => { + // TODO finish this test + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + result: {} + } + + it("should get TODO", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Blockchain.preciousBlock() + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#pruneBlockchain", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = "Cannot prune blocks because node is not in prune mode." + + it("should prune blockchain", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "post").returns(resolved) + + BITBOX.Blockchain.pruneBlockchain(507) + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#verifyChain", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = true + + it("should verify blockchain", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Blockchain.verifyChain(3, 6) + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#verifyTxOutProof", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = "proof must be hexadecimal string (not '')" + + it("should verify utxo proof", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Blockchain.verifyTxOutProof(3, 6) + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) +}) diff --git a/test/unit/Control.js b/test/unit/Control.js new file mode 100644 index 00000000..309abddb --- /dev/null +++ b/test/unit/Control.js @@ -0,0 +1,65 @@ +const chai = require("chai") +const assert = require("assert") +const axios = require("axios") +const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() +const sinon = require("sinon") + +describe("#Control", () => { + describe("#getInfo", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get info", done => { + const data = { + version: 170000, + protocolversion: 70015, + blocks: 527813, + timeoffset: 0, + connections: 21, + proxy: "", + difficulty: 581086703759.5878, + testnet: false, + paytxfee: 0, + relayfee: 0.00001, + errors: "" + } + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Control.getInfo() + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getMemoryInfo", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get memory info", done => { + const data = { + locked: { + used: 0, + free: 65536, + total: 65536, + locked: 65536, + chunks_used: 0, + chunks_free: 1 + } + } + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Control.getMemoryInfo() + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) +}) diff --git a/test/unit/Crypto.js b/test/unit/Crypto.js new file mode 100644 index 00000000..ec8c1de1 --- /dev/null +++ b/test/unit/Crypto.js @@ -0,0 +1,109 @@ +const fixtures = require("./fixtures/Crypto.json") +const chai = require("chai") +const assert = require("assert") +const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() +const Buffer = require("safe-buffer").Buffer + +describe("#Crypto", () => { + describe("#sha256", () => { + fixtures.sha256.forEach(fixture => { + it(`should create SHA256Hash hex encoded ${fixture.hash} from ${ + fixture.hex + }`, () => { + const data = Buffer.from(fixture.hex, "hex") + const sha256Hash = BITBOX.Crypto.sha256(data).toString("hex") + assert.equal(sha256Hash, fixture.hash) + }) + + it(`should create 64 character SHA256Hash hex encoded`, () => { + const data = Buffer.from(fixture.hex, "hex") + const sha256Hash = BITBOX.Crypto.sha256(data).toString("hex") + assert.equal(sha256Hash.length, 64) + }) + }) + }) + + describe("#ripemd160", () => { + fixtures.ripemd160.forEach(fixture => { + it(`should create RIPEMD160Hash hex encoded ${fixture.hash} from ${ + fixture.hex + }`, () => { + const data = Buffer.from(fixture.hex, "hex") + const ripemd160 = BITBOX.Crypto.ripemd160(data).toString("hex") + assert.equal(ripemd160, fixture.hash) + }) + + it(`should create 64 character RIPEMD160Hash hex encoded`, () => { + const data = Buffer.from(fixture.hex, "hex") + const ripemd160 = BITBOX.Crypto.ripemd160(data).toString("hex") + assert.equal(ripemd160.length, 40) + }) + }) + }) + + describe("#hash256", () => { + fixtures.hash256.forEach(fixture => { + it(`should create double SHA256 Hash hex encoded ${fixture.hash} from ${ + fixture.hex + }`, () => { + const data = Buffer.from(fixture.hex, "hex") + const hash256 = BITBOX.Crypto.hash256(data).toString("hex") + assert.equal(hash256, fixture.hash) + }) + + it(`should create 64 character SHA256 Hash hex encoded`, () => { + const data = Buffer.from(fixture.hex, "hex") + const hash256 = BITBOX.Crypto.hash256(data).toString("hex") + assert.equal(hash256.length, 64) + }) + }) + }) + + describe("#hash160", () => { + fixtures.hash160.forEach(fixture => { + it(`should create RIPEMD160(SHA256()) hex encoded ${fixture.hash} from ${ + fixture.hex + }`, () => { + const data = Buffer.from(fixture.hex, "hex") + const hash160 = BITBOX.Crypto.hash160(data).toString("hex") + assert.equal(hash160, fixture.hash) + }) + + it(`should create 64 character SHA256Hash hex encoded`, () => { + const data = Buffer.from(fixture.hex, "hex") + const hash160 = BITBOX.Crypto.hash160(data).toString("hex") + assert.equal(hash160.length, 40) + }) + }) + }) + + describe("#randomBytes", () => { + for (let i = 0; i < 6; i++) { + it("should return 16 bytes of entropy hex encoded", () => { + const entropy = BITBOX.Crypto.randomBytes(16) + assert.equal(Buffer.byteLength(entropy), 16) + }) + + it("should return 20 bytes of entropy hex encoded", () => { + const entropy = BITBOX.Crypto.randomBytes(20) + assert.equal(Buffer.byteLength(entropy), 20) + }) + + it("should return 24 bytes of entropy hex encoded", () => { + const entropy = BITBOX.Crypto.randomBytes(24) + assert.equal(Buffer.byteLength(entropy), 24) + }) + + it("should return 28 bytes of entropy hex encoded", () => { + const entropy = BITBOX.Crypto.randomBytes(28) + assert.equal(Buffer.byteLength(entropy), 28) + }) + + it("should return 32 bytes of entropy hex encoded", () => { + const entropy = BITBOX.Crypto.randomBytes(32) + assert.equal(Buffer.byteLength(entropy), 32) + }) + } + }) +}) diff --git a/test/unit/ECPair.js b/test/unit/ECPair.js new file mode 100644 index 00000000..68973c5e --- /dev/null +++ b/test/unit/ECPair.js @@ -0,0 +1,151 @@ +const fixtures = require("./fixtures/ECPair.json") +const chai = require("chai") +const assert = require("assert") +const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() +const script = BITBOX.Script +const Buffer = require("safe-buffer").Buffer + +describe("#ECPair", () => { + describe("#fromWIF", () => { + fixtures.fromWIF.forEach(fixture => { + it(`should create ECPair from WIF ${fixture.privateKeyWIF}`, () => { + const ecpair = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) + assert.equal(typeof ecpair, "object") + }) + + it(`should get ${fixture.legacy} legacy address`, () => { + const legacy = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) + assert.equal(BITBOX.HDNode.toLegacyAddress(legacy), fixture.legacy) + }) + + it(`should get ${fixture.cashAddr} cash address`, () => { + const cashAddr = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) + assert.equal(BITBOX.HDNode.toCashAddress(cashAddr), fixture.cashAddr) + }) + + it(`should get ${fixture.regtestAddr} cash address`, () => { + const cashAddr = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) + assert.equal( + BITBOX.HDNode.toCashAddress(cashAddr, true), + fixture.regtestAddr + ) + }) + }) + }) + + describe("#toWIF", () => { + fixtures.toWIF.forEach(fixture => { + it(`should get WIF ${fixture.privateKeyWIF} from ECPair`, () => { + const ecpair = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) + const wif = BITBOX.ECPair.toWIF(ecpair) + assert.equal(wif, fixture.privateKeyWIF) + }) + }) + }) + + describe("#fromPublicKey", () => { + fixtures.fromPublicKey.forEach(fixture => { + it(`should create ECPair from public key buffer`, () => { + const ecpair = BITBOX.ECPair.fromPublicKey( + Buffer.from(fixture.pubkeyHex, "hex") + ) + assert.equal(typeof ecpair, "object") + }) + + it(`should get ${fixture.legacy} legacy address`, () => { + const ecpair = BITBOX.ECPair.fromPublicKey( + Buffer.from(fixture.pubkeyHex, "hex") + ) + assert.equal(BITBOX.HDNode.toLegacyAddress(ecpair), fixture.legacy) + }) + + it(`should get ${fixture.cashAddr} cash address`, () => { + const ecpair = BITBOX.ECPair.fromPublicKey( + Buffer.from(fixture.pubkeyHex, "hex") + ) + assert.equal(BITBOX.HDNode.toCashAddress(ecpair), fixture.cashAddr) + }) + + it(`should get ${fixture.regtestAddr} cash address`, () => { + const ecpair = BITBOX.ECPair.fromPublicKey( + Buffer.from(fixture.pubkeyHex, "hex") + ) + assert.equal( + BITBOX.HDNode.toCashAddress(ecpair, true), + fixture.regtestAddr + ) + }) + }) + }) + + describe("#toPublicKey", () => { + fixtures.toPublicKey.forEach(fixture => { + it(`should create a public key buffer from an ECPair`, () => { + const ecpair = BITBOX.ECPair.fromPublicKey( + Buffer.from(fixture.pubkeyHex, "hex") + ) + const pubkeyBuffer = BITBOX.ECPair.toPublicKey(ecpair) + assert.equal(typeof pubkeyBuffer, "object") + }) + }) + }) + + describe("#toLegacyAddress", () => { + fixtures.toLegacyAddress.forEach(fixture => { + it(`should create legacy address ${ + fixture.legacy + } from an ECPair`, () => { + const ecpair = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) + const legacyAddress = BITBOX.ECPair.toLegacyAddress(ecpair) + assert.equal(legacyAddress, fixture.legacy) + }) + }) + }) + + describe("#toCashAddress", () => { + fixtures.toCashAddress.forEach(fixture => { + it(`should create cash address ${ + fixture.cashAddr + } from an ECPair`, () => { + const ecpair = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) + const cashAddr = BITBOX.ECPair.toCashAddress(ecpair) + assert.equal(cashAddr, fixture.cashAddr) + }) + }) + + fixtures.toCashAddress.forEach(fixture => { + it(`should create regtest cash address ${ + fixture.regtestAddr + } from an ECPair`, () => { + const ecpair = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) + const regtestAddr = BITBOX.ECPair.toCashAddress(ecpair, true) + assert.equal(regtestAddr, fixture.regtestAddr) + }) + }) + }) + + describe("#sign", () => { + fixtures.sign.forEach(fixture => { + it(`should sign 32 byte hash buffer`, () => { + const ecpair = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) + const buf = Buffer.from(BITBOX.Crypto.sha256(fixture.data), "hex") + const signatureBuf = BITBOX.ECPair.sign(ecpair, buf) + assert.equal(typeof signatureBuf, "object") + }) + }) + }) + + describe("#verify", () => { + fixtures.verify.forEach(fixture => { + it(`should verify signed 32 byte hash buffer`, () => { + const ecpair1 = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF1) + const ecpair2 = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF2) + const buf = Buffer.from(BITBOX.Crypto.sha256(fixture.data), "hex") + const signature = BITBOX.ECPair.sign(ecpair1, buf) + const verify = BITBOX.ECPair.verify(ecpair1, buf, signature) + assert.equal(verify, true) + }) + }) + }) +}) diff --git a/test/unit/Generating.js b/test/unit/Generating.js new file mode 100644 index 00000000..8a67bb4a --- /dev/null +++ b/test/unit/Generating.js @@ -0,0 +1,29 @@ +const chai = require("chai") +const assert = require("assert") +const axios = require("axios") +const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() +const sinon = require("sinon") + +describe("#Generating", () => { + describe("#generateToAddress", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should generate", done => { + const data = [] + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "post").returns(resolved) + + BITBOX.Generating.generateToAddress( + 1, + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + ) + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) +}) diff --git a/test/unit/HDNode.js b/test/unit/HDNode.js new file mode 100644 index 00000000..3558d882 --- /dev/null +++ b/test/unit/HDNode.js @@ -0,0 +1,347 @@ +const fixtures = require("./fixtures/HDNode.json") +const chai = require("chai") +const assert = require("assert") +const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() +const Buffer = require("safe-buffer").Buffer + +describe("#HDNode", () => { + describe("#fromSeed", () => { + fixtures.fromSeed.forEach(mnemonic => { + it(`should create an HDNode from root seed buffer`, () => { + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(mnemonic) + const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) + assert.notEqual(hdNode, null) + }) + }) + }) + + describe("#derive", () => { + fixtures.derive.forEach(derive => { + it(`should derive non hardened child HDNode`, () => { + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(derive.mnemonic) + const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) + const childHDNode = BITBOX.HDNode.derive(hdNode, 0) + assert.equal(BITBOX.HDNode.toXPub(childHDNode), derive.xpub) + assert.equal(BITBOX.HDNode.toXPriv(childHDNode), derive.xpriv) + }) + }) + }) + + describe("#deriveHardened", () => { + fixtures.deriveHardened.forEach(derive => { + it(`should derive hardened child HDNode`, () => { + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(derive.mnemonic) + const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) + const childHDNode = BITBOX.HDNode.deriveHardened(hdNode, 0) + assert.equal(BITBOX.HDNode.toXPub(childHDNode), derive.xpub) + assert.equal(BITBOX.HDNode.toXPriv(childHDNode), derive.xpriv) + }) + }) + + describe("derive BIP44 $BCH account", () => { + fixtures.deriveBIP44.forEach(derive => { + it(`should derive BIP44 $BCH account`, () => { + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(derive.mnemonic) + const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) + const purpose = BITBOX.HDNode.deriveHardened(hdNode, 44) + const coin = BITBOX.HDNode.deriveHardened(purpose, 145) + const childHDNode = BITBOX.HDNode.deriveHardened(coin, 0) + assert.equal(BITBOX.HDNode.toXPub(childHDNode), derive.xpub) + assert.equal(BITBOX.HDNode.toXPriv(childHDNode), derive.xpriv) + }) + }) + }) + }) + + describe("#derivePath", () => { + describe("derive non hardened Path", () => { + fixtures.derivePath.forEach(derive => { + it(`should derive non hardened child HDNode from path`, () => { + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(derive.mnemonic) + const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) + const childHDNode = BITBOX.HDNode.derivePath(hdNode, "0") + assert.equal(BITBOX.HDNode.toXPub(childHDNode), derive.xpub) + assert.equal(BITBOX.HDNode.toXPriv(childHDNode), derive.xpriv) + }) + }) + }) + + describe("derive hardened Path", () => { + fixtures.deriveHardenedPath.forEach(derive => { + it(`should derive hardened child HDNode from path`, () => { + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(derive.mnemonic) + const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) + const childHDNode = BITBOX.HDNode.derivePath(hdNode, "0'") + assert.equal(BITBOX.HDNode.toXPub(childHDNode), derive.xpub) + assert.equal(BITBOX.HDNode.toXPriv(childHDNode), derive.xpriv) + }) + }) + }) + + describe("derive BIP44 $BCH account", () => { + fixtures.deriveBIP44.forEach(derive => { + it(`should derive BIP44 $BCH account`, () => { + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(derive.mnemonic) + const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) + const childHDNode = BITBOX.HDNode.derivePath(hdNode, "44'/145'/0'") + assert.equal(BITBOX.HDNode.toXPub(childHDNode), derive.xpub) + assert.equal(BITBOX.HDNode.toXPriv(childHDNode), derive.xpriv) + }) + }) + }) + }) + + describe("#toLegacyAddress", () => { + fixtures.toLegacyAddress.forEach(fixture => { + it(`should get address ${fixture.address} from HDNode`, () => { + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) + const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) + const childHDNode = BITBOX.HDNode.derivePath(hdNode, "0") + const addy = BITBOX.HDNode.toLegacyAddress(childHDNode) + assert.equal(addy, fixture.address) + }) + }) + }) + + describe("#toCashAddress", () => { + fixtures.toCashAddress.forEach(fixture => { + it(`should get address ${fixture.address} from HDNode`, () => { + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) + const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) + const childHDNode = BITBOX.HDNode.derivePath(hdNode, "0") + const addy = BITBOX.HDNode.toCashAddress(childHDNode) + assert.equal(addy, fixture.address) + }) + + it(`should get address ${fixture.regtestAddress} from HDNode`, () => { + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) + const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) + const childHDNode = BITBOX.HDNode.derivePath(hdNode, "0") + const addr = BITBOX.HDNode.toCashAddress(childHDNode, true) + assert.equal(addr, fixture.regtestAddress) + }) + }) + }) + + describe("#toWIF", () => { + fixtures.toWIF.forEach(fixture => { + it(`should get privateKeyWIF ${ + fixture.privateKeyWIF + } from HDNode`, () => { + const hdNode = BITBOX.HDNode.fromXPriv(fixture.xpriv) + assert.equal(BITBOX.HDNode.toWIF(hdNode), fixture.privateKeyWIF) + }) + }) + }) + + describe("#toXPub", () => { + fixtures.toXPub.forEach(fixture => { + it(`should create xpub ${fixture.xpub} from an HDNode`, () => { + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) + const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) + const xpub = BITBOX.HDNode.toXPub(hdNode) + assert.equal(xpub, fixture.xpub) + }) + }) + }) + + describe("#toXPriv", () => { + fixtures.toXPriv.forEach(fixture => { + it(`should create xpriv ${fixture.xpriv} from an HDNode`, () => { + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) + const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) + const xpriv = BITBOX.HDNode.toXPriv(hdNode) + assert.equal(xpriv, fixture.xpriv) + }) + }) + }) + + describe("#toKeyPair", () => { + fixtures.toKeyPair.forEach(fixture => { + it(`should get ECPair from an HDNode`, () => { + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) + const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) + const keyPair = BITBOX.HDNode.toKeyPair(hdNode) + assert.equal(typeof keyPair, "object") + }) + }) + }) + + describe("#toPublicKey", () => { + fixtures.toPublicKey.forEach(fixture => { + it(`should create public key buffer from an HDNode`, () => { + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) + const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) + const publicKeyBuffer = BITBOX.HDNode.toPublicKey(hdNode) + assert.equal(typeof publicKeyBuffer, "object") + }) + }) + }) + + describe("#fromXPriv", () => { + fixtures.fromXPriv.forEach(fixture => { + const hdNode = BITBOX.HDNode.fromXPriv(fixture.xpriv) + it(`should create HDNode from xpriv ${fixture.xpriv}`, () => { + assert.notEqual(hdNode, null) + }) + + it(`should export xpriv ${fixture.xpriv}`, () => { + assert.equal(BITBOX.HDNode.toXPriv(hdNode), fixture.xpriv) + }) + + it(`should export xpub ${fixture.xpub}`, () => { + assert.equal(BITBOX.HDNode.toXPub(hdNode), fixture.xpub) + }) + + it(`should export legacy address ${fixture.legacy}`, () => { + assert.equal(BITBOX.HDNode.toLegacyAddress(hdNode), fixture.legacy) + }) + + it(`should export cashaddress ${fixture.cashaddress}`, () => { + assert.equal(BITBOX.HDNode.toCashAddress(hdNode), fixture.cashaddress) + }) + + it(`should export regtest cashaddress ${fixture.regtestaddress}`, () => { + assert.equal( + BITBOX.HDNode.toCashAddress(hdNode, true), + fixture.regtestaddress + ) + }) + + it(`should export privateKeyWIF ${fixture.privateKeyWIF}`, () => { + assert.equal(BITBOX.HDNode.toWIF(hdNode), fixture.privateKeyWIF) + }) + }) + }) + + describe("#fromXPub", () => { + fixtures.fromXPub.forEach(fixture => { + const hdNode = BITBOX.HDNode.fromXPub(fixture.xpub) + it(`should create HDNode from xpub ${fixture.xpub}`, () => { + assert.notEqual(hdNode, null) + }) + + it(`should export xpub ${fixture.xpub}`, () => { + assert.equal(BITBOX.HDNode.toXPub(hdNode), fixture.xpub) + }) + + it(`should export legacy address ${fixture.legacy}`, () => { + assert.equal(BITBOX.HDNode.toLegacyAddress(hdNode), fixture.legacy) + }) + + it(`should export cashaddress ${fixture.cashaddress}`, () => { + assert.equal(BITBOX.HDNode.toCashAddress(hdNode), fixture.cashaddress) + }) + + it(`should export regtest cashaddress ${fixture.regtestaddress}`, () => { + assert.equal( + BITBOX.HDNode.toCashAddress(hdNode, true), + fixture.regtestaddress + ) + }) + }) + }) + + describe("#bip32", () => { + describe("create accounts and addresses", () => { + fixtures.accounts.forEach(fixture => { + const seedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) + const hdNode = BITBOX.HDNode.fromSeed(seedBuffer) + const a = BITBOX.HDNode.derivePath(hdNode, "0'") + const external = BITBOX.HDNode.derivePath(a, "0") + const account = BITBOX.HDNode.createAccount([external]) + + it(`#createAccount`, () => { + assert.notEqual(account, null) + }) + + describe("#getChainAddress", () => { + const external1 = BITBOX.Address.toCashAddress( + account.getChainAddress(0) + ) + it(`should create external change address ${external1}`, () => { + assert.equal(external1, fixture.externals[0]) + }) + }) + + describe("#nextChainAddress", () => { + for (let i = 0; i < 4; i++) { + const ex = BITBOX.Address.toCashAddress(account.nextChainAddress(0)) + it(`should create external change address ${ex}`, () => { + assert.equal(ex, fixture.externals[i + 1]) + }) + } + }) + }) + }) + }) + + describe("#sign", () => { + fixtures.sign.forEach(fixture => { + it(`should sign 32 byte hash buffer`, () => { + const hdnode = BITBOX.HDNode.fromXPriv(fixture.privateKeyWIF) + const buf = Buffer.from(BITBOX.Crypto.sha256(fixture.data), "hex") + const signatureBuf = BITBOX.HDNode.sign(hdnode, buf) + assert.equal(typeof signatureBuf, "object") + }) + }) + }) + + describe("#verify", () => { + fixtures.verify.forEach(fixture => { + it(`should verify signed 32 byte hash buffer`, () => { + const hdnode1 = BITBOX.HDNode.fromXPriv(fixture.privateKeyWIF1) + const hdnode2 = BITBOX.HDNode.fromXPriv(fixture.privateKeyWIF2) + const buf = Buffer.from(BITBOX.Crypto.sha256(fixture.data), "hex") + const signature = BITBOX.HDNode.sign(hdnode1, buf) + const verify = BITBOX.HDNode.verify(hdnode1, buf, signature) + assert.equal(verify, true) + }) + }) + }) + + describe("#isPublic", () => { + fixtures.isPublic.forEach(fixture => { + it(`should verify hdnode is public`, () => { + const node = BITBOX.HDNode.fromXPub(fixture.xpub) + assert.equal(BITBOX.HDNode.isPublic(node), true) + }) + }) + + fixtures.isPublic.forEach(fixture => { + it(`should verify hdnode is not public`, () => { + const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) + assert.equal(BITBOX.HDNode.isPublic(node), false) + }) + }) + }) + + describe("#isPrivate", () => { + fixtures.isPrivate.forEach(fixture => { + it(`should verify hdnode is not private`, () => { + const node = BITBOX.HDNode.fromXPub(fixture.xpub) + assert.equal(BITBOX.HDNode.isPrivate(node), false) + }) + }) + + fixtures.isPrivate.forEach(fixture => { + it(`should verify hdnode is private`, () => { + const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) + assert.equal(BITBOX.HDNode.isPrivate(node), true) + }) + }) + }) + + describe("#toIdentifier", () => { + fixtures.toIdentifier.forEach(fixture => { + it(`should get identifier of hdnode`, () => { + const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const publicKeyBuffer = BITBOX.HDNode.toPublicKey(node) + const hash160 = BITBOX.Crypto.hash160(publicKeyBuffer) + const identifier = BITBOX.HDNode.toIdentifier(node) + assert.equal(identifier.toString("hex"), hash160.toString("hex")) + }) + }) + }) +}) diff --git a/test/unit/Mining.js b/test/unit/Mining.js new file mode 100644 index 00000000..0090e547 --- /dev/null +++ b/test/unit/Mining.js @@ -0,0 +1,105 @@ +const chai = require("chai") +const assert = require("assert") +const axios = require("axios") +const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() +const sinon = require("sinon") + +describe("#Mining", () => { + describe("#getBlockTemplate", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get block template", done => { + const data = { + data: + "01000000017f6305e3b0b05f5b57a82f4e6d4187e148bbe56a947208390e488bad36472368000000006a47304402203b0079ff5b896187feb02e2679c87ac2fb8d483b60e0721ed33601e2c0eecc700220590f8a0e1a51b53b368294861fd5fc99db3a6607d0f4e543f6217108e208c1834121024c93c841d7f576584ffbf513b7abd8283e6562669905f6554f788fce4cc67a34ffffffff0228100000000000001976a914af78709a76abc8a28e568c9210c8247dd10cff2c88ac22020000000000001976a914f339927678803f451b41400737e7dc83c6a8682188ac00000000", + txid: + "7f462d71c649a0d8cfbaa2d20d8ff86677966b308f0ac9906ee015bf4453f97a", + hash: + "7f462d71c649a0d8cfbaa2d20d8ff86677966b308f0ac9906ee015bf4453f97a", + depends: [], + fee: 226, + sigops: 2 + } + + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Mining.getBlockTemplate("") + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getMiningInfo", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get mining info", done => { + const data = { + blocks: 527816, + currentblocksize: 89408, + currentblocktx: 156, + difficulty: 568757800682.7649, + blockprioritypercentage: 5, + errors: "", + networkhashps: 4347259225696976000, + pooledtx: 184, + chain: "main" + } + + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Mining.getMiningInfo() + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getNetworkHashps", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get network hashps", done => { + const data = 3586365937646890000 + + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Mining.getNetworkHashps() + .then(result => { + assert.equal(data, result) + }) + .then(done, done) + }) + }) + + describe("#submitBlock", () => { + // TODO finish + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should TODO", done => { + const data = {} + + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "post").returns(resolved) + + BITBOX.Mining.submitBlock() + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) +}) diff --git a/test/unit/Mnemonic.js b/test/unit/Mnemonic.js new file mode 100644 index 00000000..9d7f1a45 --- /dev/null +++ b/test/unit/Mnemonic.js @@ -0,0 +1,344 @@ +const fixtures = require("./fixtures/Mnemonic.json") +const chai = require("chai") +const assert = require("assert") +const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() +const Buffer = require("safe-buffer").Buffer + +describe("#Mnemonic", () => { + describe("#generate", () => { + it("should generate a 12 word mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate(128) + assert.equal(mnemonic.split(" ").length, 12) + }) + + it("should generate a 15 word mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate(160) + assert.equal(mnemonic.split(" ").length, 15) + }) + + it("should generate a 18 word mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate(192) + assert.equal(mnemonic.split(" ").length, 18) + }) + + it("should generate an 21 word mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate(224) + assert.equal(mnemonic.split(" ").length, 21) + }) + + it("should generate an 24 word mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate(256) + assert.equal(mnemonic.split(" ").length, 24) + }) + + it("should generate an 24 word italian mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate( + 256, + BITBOX.Mnemonic.wordLists().italian + ) + assert.equal(mnemonic.split(" ").length, 24) + }) + }) + + describe("#fromEntropy", () => { + it("should generate a 12 word mnemonic from 16 bytes of entropy", () => { + const rand = BITBOX.Crypto.randomBytes(16) + const mnemonic = BITBOX.Mnemonic.fromEntropy(rand.toString("hex")) + assert.equal(mnemonic.split(" ").length, 12) + }) + + it("should generate a 15 word mnemonic from 20 bytes of entropy", () => { + const rand = BITBOX.Crypto.randomBytes(20) + const mnemonic = BITBOX.Mnemonic.fromEntropy(rand.toString("hex")) + assert.equal(mnemonic.split(" ").length, 15) + }) + + it("should generate an 18 word mnemonic from 24 bytes of entropy", () => { + const rand = BITBOX.Crypto.randomBytes(24) + const mnemonic = BITBOX.Mnemonic.fromEntropy(rand.toString("hex")) + assert.equal(mnemonic.split(" ").length, 18) + }) + + it("should generate an 21 word mnemonic from 28 bytes of entropy", () => { + const rand = BITBOX.Crypto.randomBytes(28) + const mnemonic = BITBOX.Mnemonic.fromEntropy(rand.toString("hex")) + assert.equal(mnemonic.split(" ").length, 21) + }) + + it("should generate an 24 word mnemonic from 32 bytes of entropy", () => { + const rand = BITBOX.Crypto.randomBytes(32) + const mnemonic = BITBOX.Mnemonic.fromEntropy(rand.toString("hex")) + assert.equal(mnemonic.split(" ").length, 24) + }) + + it("should generate an 24 french word mnemonic 32 bytes of entropy", () => { + const rand = BITBOX.Crypto.randomBytes(32) + const mnemonic = BITBOX.Mnemonic.fromEntropy( + rand.toString("hex"), + BITBOX.Mnemonic.wordLists().french + ) + assert.equal(mnemonic.split(" ").length, 24) + }) + + fixtures.fromEntropy.forEach(entropy => { + const mnemonic = BITBOX.Mnemonic.fromEntropy(entropy.entropy) + it(`should convert ${entropy.entropy} to ${entropy.mnemonic}`, () => { + assert.equal(mnemonic, entropy.mnemonic) + }) + }) + }) + + describe("#toEntropy", () => { + it("should turn a 12 word mnemonic to entropy", () => { + const mnemonic = BITBOX.Mnemonic.generate(128) + const entropy = BITBOX.Mnemonic.toEntropy(mnemonic) + assert.equal(entropy.length, 16) + }) + + it("should turn a 15 word mnemonic to entropy", () => { + const mnemonic = BITBOX.Mnemonic.generate(160) + const entropy = BITBOX.Mnemonic.toEntropy(mnemonic) + assert.equal(entropy.length, 20) + }) + + it("should turn a 18 word mnemonic to entropy", () => { + const mnemonic = BITBOX.Mnemonic.generate(192) + const entropy = BITBOX.Mnemonic.toEntropy(mnemonic) + assert.equal(entropy.length, 24) + }) + + it("should turn a 21 word mnemonic to entropy", () => { + const mnemonic = BITBOX.Mnemonic.generate(224) + const entropy = BITBOX.Mnemonic.toEntropy(mnemonic) + assert.equal(entropy.length, 28) + }) + + it("should turn a 24 word mnemonic to entropy", () => { + const mnemonic = BITBOX.Mnemonic.generate(256) + const entropy = BITBOX.Mnemonic.toEntropy(mnemonic) + assert.equal(entropy.length, 32) + }) + + it("should turn a 24 word spanish mnemonic to entropy", () => { + const mnemonic = BITBOX.Mnemonic.generate( + 256, + BITBOX.Mnemonic.wordLists().spanish + ) + const entropy = BITBOX.Mnemonic.toEntropy( + mnemonic, + BITBOX.Mnemonic.wordLists().spanish + ) + assert.equal(entropy.length, 32) + }) + + fixtures.fromEntropy.forEach(fixture => { + const entropy = BITBOX.Mnemonic.toEntropy(fixture.mnemonic) + it(`should convert ${fixture.mnemonic} to ${fixture.entropy}`, () => { + assert.equal(entropy.toString("hex"), fixture.entropy) + }) + }) + }) + + describe("#validate", () => { + it("fails for a mnemonic that is too short", () => { + assert.equal( + BITBOX.Mnemonic.validate( + "mixed winner", + BITBOX.Mnemonic.wordLists().english + ), + "Invalid mnemonic" + ) + }) + + it("fails for a mnemonic that is too long", () => { + assert.equal( + BITBOX.Mnemonic.validate( + "mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake", + BITBOX.Mnemonic.wordLists().english + ), + "Invalid mnemonic" + ) + }) + + it("fails if mnemonic words are not in the word list", () => { + assert.equal( + BITBOX.Mnemonic.validate( + "failsauce one two three four five six seven eight nine ten eleven", + BITBOX.Mnemonic.wordLists().english + ), + "failsauce is not in wordlist, did you mean balance?" + ) + }) + + it("validate a 128 bit mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate(128) + assert.equal( + BITBOX.Mnemonic.validate(mnemonic, BITBOX.Mnemonic.wordLists().english), + "Valid mnemonic" + ) + }) + + it("validate a 160 bit mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate(160) + assert.equal( + BITBOX.Mnemonic.validate(mnemonic, BITBOX.Mnemonic.wordLists().english), + "Valid mnemonic" + ) + }) + + it("validate a 192 bit mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate(192) + assert.equal( + BITBOX.Mnemonic.validate(mnemonic, BITBOX.Mnemonic.wordLists().english), + "Valid mnemonic" + ) + }) + + it("validate a 224 bit mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate(224) + assert.equal( + BITBOX.Mnemonic.validate(mnemonic, BITBOX.Mnemonic.wordLists().english), + "Valid mnemonic" + ) + }) + + it("validate a 256 bit mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate(256) + assert.equal( + BITBOX.Mnemonic.validate(mnemonic, BITBOX.Mnemonic.wordLists().english), + "Valid mnemonic" + ) + }) + + it("validate a 256 bit chinese simplified mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate( + 256, + BITBOX.Mnemonic.wordLists().chinese_simplified + ) + assert.equal( + BITBOX.Mnemonic.validate( + mnemonic, + BITBOX.Mnemonic.wordLists().chinese_simplified + ), + "Valid mnemonic" + ) + }) + }) + + describe("#toSeed", () => { + it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 128 bit mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate(128) + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(mnemonic, "") + assert.equal(rootSeedBuffer.byteLength, 64) + }) + + it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 160 bit mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate(160) + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(mnemonic, "") + assert.equal(rootSeedBuffer.byteLength, 64) + }) + + it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 192 bit mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate(192) + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(mnemonic, "") + assert.equal(rootSeedBuffer.byteLength, 64) + }) + + it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 224 bit mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate(224) + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(mnemonic, "") + assert.equal(rootSeedBuffer.byteLength, 64) + }) + + it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 256 bit mnemonic", () => { + const mnemonic = BITBOX.Mnemonic.generate(256) + const rootSeedBuffer = BITBOX.Mnemonic.toSeed(mnemonic, "") + assert.equal(rootSeedBuffer.byteLength, 64) + }) + }) + + describe("#wordLists", () => { + it("return a list of 2048 english words", () => { + assert.equal(BITBOX.Mnemonic.wordLists().english.length, 2048) + }) + + it("return a list of 2048 japanese words", () => { + assert.equal(BITBOX.Mnemonic.wordLists().japanese.length, 2048) + }) + + it("return a list of 2048 chinese simplified words", () => { + assert.equal(BITBOX.Mnemonic.wordLists().chinese_simplified.length, 2048) + }) + + it("return a list of 2048 chinese traditional words", () => { + assert.equal(BITBOX.Mnemonic.wordLists().chinese_traditional.length, 2048) + }) + + it("return a list of 2048 french words", () => { + assert.equal(BITBOX.Mnemonic.wordLists().french.length, 2048) + }) + + it("return a list of 2048 italian words", () => { + assert.equal(BITBOX.Mnemonic.wordLists().italian.length, 2048) + }) + + it("return a list of 2048 korean words", () => { + assert.equal(BITBOX.Mnemonic.wordLists().korean.length, 2048) + }) + + it("return a list of 2048 spanish words", () => { + assert.equal(BITBOX.Mnemonic.wordLists().spanish.length, 2048) + }) + }) + + describe("#toKeypairs", () => { + fixtures.toKeypairs.forEach((fixture, i) => { + const keypairs = BITBOX.Mnemonic.toKeypairs(fixture.mnemonic, 5) + keypairs.forEach((keypair, j) => { + it(`Generate keypair from mnemonic`, () => { + assert.equal( + keypair.privateKeyWIF, + fixtures.toKeypairs[i].output[j].privateKeyWIF + ) + // assert.equal( + // keypair.address, + // fixtures.toKeypairs[i].output[j].address + // ) + }) + }) + + const regtestKeypairs = BITBOX.Mnemonic.toKeypairs( + fixture.mnemonic, + 5, + true + ) + regtestKeypairs.forEach((keypair, j) => { + it(`Generate keypair from mnemonic`, () => { + assert.equal( + keypair.privateKeyWIF, + fixtures.toKeypairs[i].output[j].privateKeyWIFRegTest + ) + // assert.equal( + // keypair.address, + // fixtures.toKeypairs[i].output[j].regtestAddress + // ) + }) + }) + }) + }) + + describe("#findNearestWord", () => { + fixtures.findNearestWord.forEach((fixture, i) => { + const word = BITBOX.Mnemonic.findNearestWord( + fixture.word, + BITBOX.Mnemonic.wordLists()[fixture.language] + ) + it(`find word ${fixture.foundWord} near ${fixture.word} in ${ + fixture.language + }`, () => { + assert.equal(word, fixture.foundWord) + }) + }) + }) +}) diff --git a/test/unit/Network.js b/test/unit/Network.js new file mode 100644 index 00000000..0e3a8439 --- /dev/null +++ b/test/unit/Network.js @@ -0,0 +1,196 @@ +const chai = require("chai") +const assert = require("assert") +const axios = require("axios") +const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() +const sinon = require("sinon") + +describe("#Network", () => { + describe("#getConnectionCount", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get connection count", done => { + const data = 13 + + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Network.getConnectionCount() + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getNetTotals", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get net totals", done => { + const data = { + totalbytesrecv: 9348169, + totalbytessent: 246903958, + timemillis: 1524922367067, + uploadtarget: { + timeframe: 86400, + target: 0, + target_reached: false, + serve_historical_blocks: true, + bytes_left_in_cycle: 0, + time_left_in_cycle: 0 + } + } + + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Network.getNetTotals() + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getNetworkInfo", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get network info", done => { + const data = { + version: 170000, + subversion: "/Bitcoin ABC:0.17.0(EB32.0)/", + protocolversion: 70015, + localservices: "0000000000000025", + localrelay: true, + timeoffset: 0, + networkactive: true, + connections: 11, + networks: [ + { + name: "ipv4", + limited: false, + reachable: true, + proxy: "", + proxy_randomize_credentials: false + }, + { + name: "ipv6", + limited: false, + reachable: true, + proxy: "", + proxy_randomize_credentials: false + }, + { + name: "onion", + limited: true, + reachable: false, + proxy: "", + proxy_randomize_credentials: false + } + ], + relayfee: 0.00001, + incrementalfee: 0.00001, + localaddresses: [{ address: "138.68.54.100", port: 8333, score: 584 }], + warnings: "" + } + + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Network.getNetworkInfo() + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getPeerInfo", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get peer info", done => { + const data = [ + { + id: 99, + addr: "54.39.17.74:47990", + addrlocal: "138.68.54.100:8333", + services: "0000000000000000", + relaytxes: true, + lastsend: 1524922628, + lastrecv: 1524922616, + bytessent: 310482, + bytesrecv: 10637, + conntime: 1524890802, + timeoffset: 0, + pingtime: 0.066598, + minping: 0.066502, + version: 70015, + subver: "/bitnodes.ping.com:0.1/", + inbound: true, + addnode: false, + startingheight: 527808, + banscore: 0, + synced_headers: 527872, + synced_blocks: -1, + inflight: [], + whitelisted: false, + bytessent_per_msg: { + addr: 14975, + feefilter: 32, + inv: 286552, + ping: 8512, + pong: 192, + sendcmpct: 33, + sendheaders: 24, + verack: 24, + version: 138 + }, + bytesrecv_per_msg: { + addr: 1410, + inv: 366, + ping: 192, + pong: 8512, + verack: 24, + version: 133 + } + } + ] + + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Network.getPeerInfo() + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#ping", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should ping", done => { + const data = null + + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Network.ping() + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) +}) diff --git a/test/unit/Price.js b/test/unit/Price.js new file mode 100644 index 00000000..0763c3ce --- /dev/null +++ b/test/unit/Price.js @@ -0,0 +1,79 @@ +const chai = require("chai") +const assert = require("assert") +const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() +const axios = require("axios") +const sinon = require("sinon") + +describe("#Price", () => { + describe("#current", () => { + describe("#all currencies", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get current price for all currencies", done => { + const data = { + USD: 872.31, + GBP: 665.3, + EUR: 748.34, + CNY: 5848.32, + PAB: 872.31, + ARS: 24005.97, + BOB: 6060.11, + CLP: 570141.82, + PEN: 2851.32, + PYG: 4986964.67, + UYU: 27300.76, + VEF: 69697569, + CRC: 494264.3, + MXN: 16476.28, + NGN: 314903.91, + INR: 59620.88, + RUB: 54650.83, + AUD: 1180.92, + BRL: 3347.57, + CAD: 1151.44, + ZAR: 11579.24, + GHS: 4177.25, + JPY: 98519.56, + ILS: 3165.36, + SAR: 3271.21, + KRW: 984345.13, + COP: 2521500.32, + PHP: 46612.32, + PLN: 3215.41 + } + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Price.current() + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#single currency", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get current price for single currency", done => { + const data = { + price: 46347, + stamp: 1539620880 + } + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Price.current("usd") + .then(result => { + assert.deepEqual(data.price / 100.0, result) + }) + .then(done, done) + }) + }) + }) +}) diff --git a/test/unit/RawTransactions.js b/test/unit/RawTransactions.js new file mode 100644 index 00000000..1b16cfab --- /dev/null +++ b/test/unit/RawTransactions.js @@ -0,0 +1,106 @@ +const chai = require("chai") +const assert = require("assert") +const axios = require("axios") +const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() + +const sinon = require("sinon") + +describe("#RawTransactions", () => { + describe("#decodeRawTransaction", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should decode raw transaction", done => { + const data = { + txid: + "4ebd325a4b394cff8c57e8317ccf5a8d0e2bdf1b8526f8aad6c8e43d8240621a", + hash: + "4ebd325a4b394cff8c57e8317ccf5a8d0e2bdf1b8526f8aad6c8e43d8240621a", + size: 10, + version: 2, + locktime: 0, + vin: [], + vout: [] + } + + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.RawTransactions.decodeRawTransaction(["02000000000000000000"]) + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#decodeScript", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should decode script", done => { + const data = { + asm: "OP_RETURN 5361746f736869204e616b616d6f746f", + type: "nulldata", + p2sh: "bitcoincash:prswx5965nfumux9qng5kj8hw603vcne7q08t8c6jp" + } + + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.RawTransactions.decodeScript([ + "6a105361746f736869204e616b616d6f746f" + ]) + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getRawTransaction", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get raw transaction", done => { + const data = + "020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000" + + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.RawTransactions.getRawTransaction([ + "808d617eccaad4f1397fe07a06ec5ed15a0821cf22a3e0931c0c92aef9e572b6" + ]) + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#sendRawTransaction", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should send raw transaction", done => { + const data = "Error: transaction already in block chain" + + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "post").returns(resolved) + + BITBOX.RawTransactions.sendRawTransaction([ + "020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000" + ]) + .then(result => { + assert.equal(data, result) + }) + .then(done, done) + }) + }) +}) diff --git a/test/unit/Script.js b/test/unit/Script.js new file mode 100644 index 00000000..c70e35f1 --- /dev/null +++ b/test/unit/Script.js @@ -0,0 +1,442 @@ +const fixtures = require("./fixtures/Script.json") +const chai = require("chai") +const assert = require("assert") +const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() +const Buffer = require("safe-buffer").Buffer + +describe("#Script", () => { + describe("#decode", () => { + describe("P2PKH scriptSig", () => { + fixtures.decodeScriptSig.forEach(fixture => { + it(`should decode scriptSig buffer`, () => { + const decodedScriptSig = BITBOX.Script.decode( + Buffer.from(fixture.scriptSigHex, "hex") + ) + assert.equal(typeof decodedScriptSig, "object") + }) + + it(`should decode scriptSig buffer to cash address ${ + fixture.cashAddress + }`, () => { + const decodedScriptSig = BITBOX.Script.decode( + Buffer.from(fixture.scriptSigHex, "hex") + ) + const address = BITBOX.HDNode.toCashAddress( + BITBOX.ECPair.fromPublicKey(decodedScriptSig[1]) + ) + assert.equal(address, fixture.cashAddress) + }) + + it(`should decode scriptSig buffer to legacy address ${ + fixture.legacyAddress + }`, () => { + const decodedScriptSig = BITBOX.Script.decode( + Buffer.from(fixture.scriptSigHex, "hex") + ) + const address = BITBOX.HDNode.toLegacyAddress( + BITBOX.ECPair.fromPublicKey(decodedScriptSig[1]) + ) + assert.equal(address, fixture.legacyAddress) + }) + }) + }) + + describe("P2PKH scriptPubKey", () => { + fixtures.decodeScriptPubKey.forEach(fixture => { + it(`should decode scriptSig buffer`, () => { + const decodedScriptPubKey = BITBOX.Script.decode( + Buffer.from(fixture.scriptPubKeyHex, "hex") + ) + assert.equal(decodedScriptPubKey.length, 5) + }) + + it(`should match hashed pubKey ${fixture.pubKeyHex}`, () => { + const decodedScriptPubKey = BITBOX.Script.decode( + Buffer.from(fixture.scriptPubKeyHex, "hex") + ) + const data = Buffer.from(fixture.pubKeyHex, "hex") + const hash160 = BITBOX.Crypto.hash160(data).toString("hex") + assert.equal(decodedScriptPubKey[2].toString("hex"), hash160) + }) + }) + }) + }) + + describe("#encode", () => { + describe("P2PKH scriptSig", () => { + fixtures.encodeScriptSig.forEach(fixture => { + it(`should encode scriptSig chunks to buffer`, () => { + const arr = [ + Buffer.from(fixture.scriptSigChunks[0], "hex"), + Buffer.from(fixture.scriptSigChunks[1], "hex") + ] + const encodedScriptSig = BITBOX.Script.encode(arr) + assert.equal(typeof encodedScriptSig, "object") + }) + }) + }) + + describe("P2PKH scriptPubKey", () => { + fixtures.encodeScriptPubKey.forEach(fixture => { + it(`should encode scriptPubKey buffer`, () => { + const decodedScriptPubKey = BITBOX.Script.decode( + Buffer.from(fixture.scriptPubKeyHex, "hex") + ) + const compiledScriptPubKey = BITBOX.Script.encode(decodedScriptPubKey) + assert.equal( + compiledScriptPubKey.toString("hex"), + fixture.scriptPubKeyHex + ) + }) + }) + }) + }) + + describe("#toASM", () => { + describe("P2PKH scriptSig", () => { + fixtures.scriptSigToASM.forEach(fixture => { + it(`should encode scriptSig buffer to ${fixture.asm}`, () => { + const arr = [ + Buffer.from(fixture.scriptSigChunks[0], "hex"), + Buffer.from(fixture.scriptSigChunks[1], "hex") + ] + const compiledScriptSig = BITBOX.Script.encode(arr) + const asm = BITBOX.Script.toASM(compiledScriptSig) + assert.equal(asm, fixture.asm) + }) + }) + }) + + describe("P2PKH scriptPubKey", () => { + fixtures.scriptPubKeyToASM.forEach(fixture => { + it(`should compile scriptPubKey buffer to ${fixture.asm}`, () => { + const asm = BITBOX.Script.toASM( + Buffer.from(fixture.scriptPubKeyHex, "hex") + ) + assert.equal(asm, fixture.asm) + }) + }) + }) + }) + + describe("#fromASM", () => { + describe("P2PKH scriptSig", () => { + fixtures.scriptSigFromASM.forEach(fixture => { + it(`should decode scriptSig asm to buffer`, () => { + const buf = BITBOX.Script.fromASM(fixture.asm) + assert.equal(typeof buf, "object") + }) + }) + }) + + describe("P2PKH scriptPubKey", () => { + fixtures.scriptPubKeyFromASM.forEach(fixture => { + it(`should decode scriptPubKey asm to buffer`, () => { + const buf = BITBOX.Script.fromASM(fixture.asm) + assert.equal(typeof buf, "object") + }) + }) + }) + }) + + describe("#OPCodes", () => { + for (const opcode in fixtures.opcodes) { + it(`should have OP Code ${opcode}`, () => { + assert.equal(BITBOX.Script.opcodes[opcode], fixtures.opcodes[opcode]) + }) + } + }) + + describe("#classifyInput", () => { + fixtures.classifyInput.forEach(fixture => { + it(`should classify input type ${fixture.type}`, () => { + const type = BITBOX.Script.classifyInput( + BITBOX.Script.fromASM(fixture.script) + ) + assert.equal(type, fixture.type) + }) + }) + }) + + describe("#classifyOutput", () => { + fixtures.classifyOutput.forEach(fixture => { + it(`should classify ouput type ${fixture.type}`, () => { + const type = BITBOX.Script.classifyOutput( + BITBOX.Script.fromASM(fixture.script) + ) + assert.equal(type, fixture.type) + }) + }) + }) + + describe("#nullDataTemplate", () => { + fixtures.nullDataTemplate.forEach(fixture => { + it(`should encode nulldata output`, () => { + const buf = BITBOX.Script.nullData.output.encode( + Buffer.from(`${fixture.data}`, "ascii") + ) + assert.equal(buf.toString("hex"), fixture.hex) + }) + + it(`should decode nulldata output`, () => { + const buf = BITBOX.Script.nullData.output.decode( + Buffer.from(`${fixture.hex}`, "hex") + ) + assert.equal(buf.toString("ascii"), fixture.data) + }) + + it(`should confirm correctly formatted nulldata output`, () => { + const buf = BITBOX.Script.nullData.output.encode( + Buffer.from(`${fixture.data}`, "ascii") + ) + const valid = BITBOX.Script.nullData.output.check(buf) + assert.equal(valid, true) + }) + }) + }) + + describe("#pubKeyTemplate", () => { + describe("#pubKeyInputTemplate", () => { + fixtures.pubKeyInputTemplate.forEach(fixture => { + it(`should encode pubKey input`, () => { + const buf = BITBOX.Script.pubKey.input.encode( + Buffer.from(fixture.signature, "hex") + ) + assert.equal(buf.toString("hex"), fixture.hex) + }) + + it(`should decode pubKey input`, () => { + const buf = BITBOX.Script.pubKey.input.decode( + Buffer.from(fixture.hex, "hex") + ) + assert.equal(buf.toString("hex"), fixture.signature) + }) + + it(`should confirm correctly formatted pubKeyHash input`, () => { + const buf = BITBOX.Script.pubKey.input.encode( + Buffer.from(fixture.signature, "hex") + ) + const valid = BITBOX.Script.pubKey.input.check(buf) + assert.equal(valid, true) + }) + }) + }) + + describe("#pubKeyOutputTemplate", () => { + fixtures.pubKeyOutputTemplate.forEach(fixture => { + it(`should encode pubKey output`, () => { + const buf = BITBOX.Script.pubKey.output.encode( + Buffer.from(fixture.pubKey, "hex") + ) + assert.equal(buf.toString("hex"), fixture.hex) + }) + + it(`should decode pubKey output`, () => { + const buf = BITBOX.Script.pubKey.output.decode( + Buffer.from(`${fixture.hex}`, "hex") + ) + assert.equal(buf.toString("hex"), fixture.pubKey) + }) + + it(`should confirm correctly formatted pubKey output`, () => { + const buf = BITBOX.Script.pubKey.output.encode( + Buffer.from(fixture.pubKey, "hex") + ) + const valid = BITBOX.Script.pubKey.output.check(buf) + assert.equal(valid, true) + }) + }) + }) + }) + + describe("#pubKeyHashTemplate", () => { + describe("#pubKeyHashInputTemplate", () => { + fixtures.pubKeyHashInputTemplate.forEach(fixture => { + it(`should encode pubKeyHash input`, () => { + const buf = BITBOX.Script.pubKeyHash.input.encode( + Buffer.from(fixture.signature, "hex"), + Buffer.from(fixture.pubKey, "hex") + ) + assert.equal(buf.toString("hex"), fixture.hex) + }) + + it(`should decode pubKeyHash input signature`, () => { + const buf = BITBOX.Script.pubKeyHash.input.decode( + Buffer.from(fixture.hex, "hex") + ) + assert.equal(buf.signature.toString("hex"), fixture.signature) + }) + + it(`should decode pubKeyHash input pubkey`, () => { + const buf = BITBOX.Script.pubKeyHash.input.decode( + Buffer.from(fixture.hex, "hex") + ) + assert.equal(buf.pubKey.toString("hex"), fixture.pubKey) + }) + + it(`should confirm correctly formatted pubKeyHash input`, () => { + const buf = BITBOX.Script.pubKeyHash.input.encode( + Buffer.from(fixture.signature, "hex"), + Buffer.from(fixture.pubKey, "hex") + ) + const valid = BITBOX.Script.pubKeyHash.input.check(buf) + assert.equal(valid, true) + }) + }) + }) + + describe("#pubKeyHashOutputTemplate", () => { + fixtures.pubKeyHashOutputTemplate.forEach(fixture => { + const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const identifier = BITBOX.HDNode.toIdentifier(node) + it(`should encode pubKeyHash output`, () => { + const buf = BITBOX.Script.pubKeyHash.output.encode(identifier) + assert.equal(buf.toString("hex"), fixture.hex) + }) + + it(`should decode pubKeyHash output`, () => { + const buf = BITBOX.Script.pubKeyHash.output.decode( + Buffer.from(`${fixture.hex}`, "hex") + ) + assert.equal(buf.toString("hex"), identifier.toString("hex")) + }) + + it(`should confirm correctly formatted pubKeyHash output`, () => { + const buf = BITBOX.Script.pubKeyHash.output.encode(identifier) + const valid = BITBOX.Script.pubKeyHash.output.check(buf) + assert.equal(valid, true) + }) + }) + }) + }) + + describe("#multisigTemplate", () => { + describe("#multisigInputTemplate", () => { + fixtures.multisigInputTemplate.forEach(fixture => { + it(`should encode multisig input`, () => { + const signatures = fixture.signatures.map(signature => + signature + ? Buffer.from(signature, "hex") + : BITBOX.Script.opcodes.OP_0 + ) + + const buf = BITBOX.Script.multisig.input.encode(signatures) + assert.equal(buf.toString("hex"), fixture.hex) + }) + + it(`should decode multisig input`, () => { + const buf = BITBOX.Script.multisig.input.decode( + Buffer.from(fixture.hex, "hex") + ) + assert.equal(buf[0].toString("hex"), fixture.signatures[0]) + }) + + it(`should confirm correctly formatted multisig input`, () => { + const signatures = fixture.signatures.map(signature => + signature + ? Buffer.from(signature, "hex") + : BITBOX.Script.opcodes.OP_0 + ) + + const buf = BITBOX.Script.multisig.input.encode(signatures) + const valid = BITBOX.Script.multisig.input.check(buf) + assert.equal(valid, true) + }) + }) + }) + + describe("#multisigOutputTemplate", () => { + fixtures.multisigOutputTemplate.forEach(fixture => { + it(`should encode multisig output`, () => { + const pubKeys = fixture.pubKeys.map(p => Buffer.from(p, "hex")) + const m = pubKeys.length + const buf = BITBOX.Script.multisig.output.encode(m, pubKeys) + + assert.equal(buf.toString("hex"), fixture.hex) + }) + + it(`should decode multisig output`, () => { + const output = BITBOX.Script.multisig.output.decode( + Buffer.from(`${fixture.hex}`, "hex") + ) + assert.equal(output.m, fixture.pubKeys.length) + }) + + it(`should confirm correctly formatted multisig output`, () => { + const pubKeys = fixture.pubKeys.map(p => Buffer.from(p, "hex")) + const m = pubKeys.length + const buf = BITBOX.Script.multisig.output.encode(m, pubKeys) + const valid = BITBOX.Script.multisig.output.check(buf) + assert.equal(valid, true) + }) + }) + }) + }) + + describe("#scriptHashTemplate", () => { + describe("#scriptHashInputTemplate", () => { + fixtures.scriptHashInputTemplate.forEach(fixture => { + it(`should encode scriptHash input`, () => { + const buf = BITBOX.Script.scriptHash.input.encode( + BITBOX.Script.fromASM(fixture.redeemScriptSig), + BITBOX.Script.fromASM(fixture.redeemScript) + ) + assert.equal(buf.toString("hex"), fixture.hex) + }) + + it(`should decode scriptHash input`, () => { + const redeemScriptSig = BITBOX.Script.fromASM(fixture.redeemScriptSig) + const redeemScript = BITBOX.Script.fromASM(fixture.redeemScript) + assert.deepEqual( + BITBOX.Script.scriptHash.input.decode( + Buffer.from(fixture.hex, "hex") + ), + { + redeemScriptSig: redeemScriptSig, + redeemScript: redeemScript + } + ) + }) + + it(`should confirm correctly formatted scriptHash input`, () => { + const buf = BITBOX.Script.scriptHash.input.encode( + BITBOX.Script.fromASM(fixture.redeemScriptSig), + BITBOX.Script.fromASM(fixture.redeemScript) + ) + const valid = BITBOX.Script.scriptHash.input.check(buf) + assert.equal(valid, true) + }) + }) + }) + + describe("#scriptHashOutputTemplate", () => { + fixtures.scriptHashOutputTemplate.forEach(fixture => { + it(`should encode scriptHash output`, () => { + const redeemScript = BITBOX.Script.fromASM(fixture.output) + const scriptHash = BITBOX.Crypto.hash160(redeemScript) + const buf = BITBOX.Script.scriptHash.output.encode(scriptHash) + + assert.equal(buf.toString("hex"), fixture.hex) + }) + + it(`should decode scriptHash output`, () => { + const redeemScript = BITBOX.Script.fromASM(fixture.output) + const scriptHash = BITBOX.Crypto.hash160(redeemScript) + const buf = BITBOX.Script.scriptHash.output.decode( + Buffer.from(`${fixture.hex}`, "hex") + ) + assert.deepEqual(buf, scriptHash) + }) + + it(`should confirm correctly formatted scriptHash output`, () => { + const redeemScript = BITBOX.Script.fromASM(fixture.output) + const scriptHash = BITBOX.Crypto.hash160(redeemScript) + const buf = BITBOX.Script.scriptHash.output.encode(scriptHash) + const valid = BITBOX.Script.scriptHash.output.check(buf) + assert.equal(valid, true) + }) + }) + }) + }) +}) diff --git a/test/unit/Transaction.js b/test/unit/Transaction.js new file mode 100644 index 00000000..4e527b87 --- /dev/null +++ b/test/unit/Transaction.js @@ -0,0 +1,53 @@ +const chai = require("chai") +const assert = require("assert") +const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() +const axios = require("axios") +const sinon = require("sinon") + +describe("#Transaction", () => { + describe("#details", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get transaction details", done => { + const data = { + txid: + "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8", + version: 1, + locktime: 0, + vin: [{ coinbase: "04ffff001d029804", sequence: 4294967295, n: 0 }], + vout: [ + { + value: "50.00000000", + n: 0, + scriptPubKey: [Object], + spentTxId: null, + spentIndex: null, + spentHeight: null + } + ], + blockhash: + "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", + blockheight: 507, + confirmations: 528399, + time: 1231973656, + blocktime: 1231973656, + isCoinBase: true, + valueOut: 50, + size: 135 + } + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Transaction.details( + "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8" + ) + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) +}) diff --git a/test/unit/TransactionBuilder.js b/test/unit/TransactionBuilder.js new file mode 100644 index 00000000..37d7d218 --- /dev/null +++ b/test/unit/TransactionBuilder.js @@ -0,0 +1,2035 @@ +const fixtures = require("./fixtures/TransactionBuilder.json") +const chai = require("chai") +const assert = require("assert") +const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() +const Buffer = require("safe-buffer").Buffer + +describe("#TransactionBuilder", () => { + describe("#hashTypes", () => { + const transactionBuilder = new BITBOX.TransactionBuilder("bitcoincash") + fixtures.hashTypes.forEach(fixture => { + it(`should match hash type`, () => { + assert.equal( + fixture[Object.keys(fixture)[0]], + transactionBuilder.hashTypes[Object.keys(fixture)[0]] + ) + }) + }) + }) + + describe("#P2PK", () => { + describe("#toOne", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2pk.toOne.mainnet.forEach(fixture => { + it(`should create 1-to-1 P2PK transaction on mainnet`, () => { + const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new BITBOX.TransactionBuilder() + const originalAmount = fixture.amount + const txid = fixture.txHash + const pubKey = BITBOX.HDNode.toPublicKey(node) + const buf = BITBOX.Script.pubKey.output.encode(pubKey) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + buf + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 3 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(buf, sendAmount) + const keyPair = BITBOX.HDNode.toKeyPair(node) + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#Testnet", () => { + fixtures.scripts.p2pk.toOne.testnet.forEach(fixture => { + it(`should create 1-to-1 P2PK transaction on testnet`, () => { + const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const originalAmount = fixture.amount + const txid = fixture.txHash + const pubKey = BITBOX.HDNode.toPublicKey(node) + const buf = BITBOX.Script.pubKey.output.encode(pubKey) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + buf + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 3 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(buf, sendAmount) + const keyPair = BITBOX.HDNode.toKeyPair(node) + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) + + describe("#toMany", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2pk.toMany.mainnet.forEach(fixture => { + it(`should create 1-to-many P2PK transaction on mainnet`, () => { + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) + const transactionBuilder = new BITBOX.TransactionBuilder() + const originalAmount = fixture.amount + const txid = fixture.txHash + const pubKey1 = BITBOX.HDNode.toPublicKey(node1) + const pubKey2 = BITBOX.HDNode.toPublicKey(node2) + const pubKey3 = BITBOX.HDNode.toPublicKey(node3) + const buf1 = BITBOX.Script.pubKey.output.encode(pubKey1) + const buf2 = BITBOX.Script.pubKey.output.encode(pubKey2) + const buf3 = BITBOX.Script.pubKey.output.encode(pubKey3) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + buf1 + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 3 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(buf2, Math.floor(sendAmount / 2)) + transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) + const keyPair = BITBOX.HDNode.toKeyPair(node1) + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#Testnet", () => { + fixtures.scripts.p2pk.toMany.testnet.forEach(fixture => { + it(`should create 1-to-many P2PK transaction on testnet`, () => { + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) + const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const originalAmount = fixture.amount + const txid = fixture.txHash + const pubKey1 = BITBOX.HDNode.toPublicKey(node1) + const pubKey2 = BITBOX.HDNode.toPublicKey(node2) + const pubKey3 = BITBOX.HDNode.toPublicKey(node3) + const buf1 = BITBOX.Script.pubKey.output.encode(pubKey1) + const buf2 = BITBOX.Script.pubKey.output.encode(pubKey2) + const buf3 = BITBOX.Script.pubKey.output.encode(pubKey3) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + buf1 + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 3 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(buf2, Math.floor(sendAmount / 2)) + transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) + const keyPair = BITBOX.HDNode.toKeyPair(node1) + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) + + describe("#manyToMany", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2pk.manyToMany.mainnet.forEach(fixture => { + it(`should create many-to-many P2PK transaction on mainnet`, () => { + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) + const node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]) + const transactionBuilder = new BITBOX.TransactionBuilder() + const originalAmount = fixture.amount + const txid = fixture.txHash + const pubKey1 = BITBOX.HDNode.toPublicKey(node1) + const pubKey2 = BITBOX.HDNode.toPublicKey(node2) + const pubKey3 = BITBOX.HDNode.toPublicKey(node3) + const pubKey4 = BITBOX.HDNode.toPublicKey(node4) + const buf1 = BITBOX.Script.pubKey.output.encode(pubKey1) + const buf2 = BITBOX.Script.pubKey.output.encode(pubKey2) + const buf3 = BITBOX.Script.pubKey.output.encode(pubKey3) + const buf4 = BITBOX.Script.pubKey.output.encode(pubKey4) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + buf1 + ) + transactionBuilder.addInput( + txid, + 1, + transactionBuilder.DEFAULT_SEQUENCE, + buf2 + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 3 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) + transactionBuilder.addOutput(buf4, Math.floor(sendAmount / 2)) + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + let redeemScript + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#Testnet", () => { + fixtures.scripts.p2pk.manyToMany.testnet.forEach(fixture => { + it(`should create many-to-many P2PK transaction on testnet`, () => { + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) + const node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]) + const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const originalAmount = fixture.amount + const txid = fixture.txHash + const pubKey1 = BITBOX.HDNode.toPublicKey(node1) + const pubKey2 = BITBOX.HDNode.toPublicKey(node2) + const pubKey3 = BITBOX.HDNode.toPublicKey(node3) + const pubKey4 = BITBOX.HDNode.toPublicKey(node4) + const buf1 = BITBOX.Script.pubKey.output.encode(pubKey1) + const buf2 = BITBOX.Script.pubKey.output.encode(pubKey2) + const buf3 = BITBOX.Script.pubKey.output.encode(pubKey3) + const buf4 = BITBOX.Script.pubKey.output.encode(pubKey4) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + buf1 + ) + transactionBuilder.addInput( + txid, + 1, + transactionBuilder.DEFAULT_SEQUENCE, + buf2 + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 3 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) + transactionBuilder.addOutput(buf4, Math.floor(sendAmount / 2)) + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + let redeemScript + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) + + describe("#fromMany", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2pk.fromMany.mainnet.forEach(fixture => { + it(`should create many-to-1 P2PK transaction on mainnet`, () => { + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) + const transactionBuilder = new BITBOX.TransactionBuilder() + const originalAmount = fixture.amount + const txid = fixture.txHash + const pubKey1 = BITBOX.HDNode.toPublicKey(node1) + const pubKey2 = BITBOX.HDNode.toPublicKey(node2) + const pubKey3 = BITBOX.HDNode.toPublicKey(node3) + const buf1 = BITBOX.Script.pubKey.output.encode(pubKey1) + const buf2 = BITBOX.Script.pubKey.output.encode(pubKey2) + const buf3 = BITBOX.Script.pubKey.output.encode(pubKey3) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + buf1 + ) + transactionBuilder.addInput( + txid, + 1, + transactionBuilder.DEFAULT_SEQUENCE, + buf2 + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 3 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(buf3, sendAmount) + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + let redeemScript + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#Testnet", () => { + fixtures.scripts.p2pk.fromMany.testnet.forEach(fixture => { + it(`should create many-to-1 P2PK transaction on testnet`, () => { + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) + const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const originalAmount = fixture.amount + const txid = fixture.txHash + const pubKey1 = BITBOX.HDNode.toPublicKey(node1) + const pubKey2 = BITBOX.HDNode.toPublicKey(node2) + const pubKey3 = BITBOX.HDNode.toPublicKey(node3) + const buf1 = BITBOX.Script.pubKey.output.encode(pubKey1) + const buf2 = BITBOX.Script.pubKey.output.encode(pubKey2) + const buf3 = BITBOX.Script.pubKey.output.encode(pubKey3) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + buf1 + ) + transactionBuilder.addInput( + txid, + 1, + transactionBuilder.DEFAULT_SEQUENCE, + buf2 + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 3 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(buf3, sendAmount) + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + let redeemScript + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) + }) + + describe("#P2PKH", () => { + describe("#toOne", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2pkh.toOne.mainnet.forEach(fixture => { + it(`should create 1-to-1 P2PKH transaction on mainnet`, () => { + const hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new BITBOX.TransactionBuilder() + const keyPair = BITBOX.HDNode.toKeyPair(hdnode) + const txHash = fixture.txHash + // original amount of satoshis in vin + const originalAmount = fixture.amount + transactionBuilder.addInput(txHash, fixture.vout) + // get byte count to calculate fee. paying 1 sat/byte + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 1 } + ) + // amount to send to receiver. It's the original amount - 1 sat/byte for tx size + const sendAmount = originalAmount - byteCount + // add output w/ address and amount to send + let redeemScript + transactionBuilder.addOutput(fixture.outputs[0], sendAmount) + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + + // build tx + const tx = transactionBuilder.build() + // output rawhex + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#Testnet", () => { + fixtures.scripts.p2pkh.toOne.testnet.forEach(fixture => { + it(`should create 1-to-1 P2PKH transaction on testnet`, () => { + const hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv, "testnet") + const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const keyPair = BITBOX.HDNode.toKeyPair(hdnode) + const txHash = fixture.txHash + // original amount of satoshis in vin + const originalAmount = fixture.amount + transactionBuilder.addInput(txHash, fixture.vout) + // get byte count to calculate fee. paying 1 sat/byte + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 1 } + ) + // amount to send to receiver. It's the original amount - 1 sat/byte for tx size + const sendAmount = originalAmount - byteCount * 15 + // add output w/ address and amount to send + let redeemScript + transactionBuilder.addOutput(fixture.outputs[0], sendAmount) + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + + // build tx + const tx = transactionBuilder.build() + // output rawhex + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#RegTest", () => { + fixtures.scripts.p2pkh.toOne.regtest.forEach(fixture => { + it(`should create 1-to-1 P2PKH transaction on regtest`, () => { + const hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new BITBOX.TransactionBuilder("regtest") + const keyPair = BITBOX.HDNode.toKeyPair(hdnode) + const txHash = fixture.txHash + // original amount of satoshis in vin + const originalAmount = fixture.amount + transactionBuilder.addInput(txHash, fixture.vout) + // get byte count to calculate fee. paying 1 sat/byte + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 1 } + ) + // amount to send to receiver. It's the original amount - 1 sat/byte for tx size + const sendAmount = originalAmount - byteCount * 15 + // add output w/ address and amount to send + let redeemScript + transactionBuilder.addOutput(fixture.outputs[0], sendAmount) + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + + // build tx + const tx = transactionBuilder.build() + // output rawhex + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) + + describe("#toMany", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2pkh.toMany.mainnet.forEach(fixture => { + it(`should create 1-to-2 P2PKH transaction on mainnet`, () => { + const hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new BITBOX.TransactionBuilder() + const keyPair = BITBOX.HDNode.toKeyPair(hdnode) + const txHash = fixture.txHash + // original amount of satoshis in vin + const originalAmount = fixture.amount + transactionBuilder.addInput(txHash, fixture.vout) + // get byte count to calculate fee. paying 1 sat/byte + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 2 } + ) + // amount to send to receiver. It's the original amount - 1 sat/byte for tx size + const sendAmount = originalAmount - byteCount + // add output w/ address and amount to send + transactionBuilder.addOutput( + fixture.outputs[0], + Math.floor(sendAmount / 2) + ) + transactionBuilder.addOutput( + fixture.outputs[1], + Math.floor(sendAmount / 2) + ) + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + // build tx + const tx = transactionBuilder.build() + // output rawhex + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#Testnet", () => { + fixtures.scripts.p2pkh.toMany.testnet.forEach(fixture => { + // TODO pass in tesnet network config + it(`should create 1-to-2 P2PKH transaction on testnet`, () => { + const hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const keyPair = BITBOX.HDNode.toKeyPair(hdnode) + const txHash = fixture.txHash + // original amount of satoshis in vin + const originalAmount = fixture.amount + transactionBuilder.addInput(txHash, fixture.vout) + // get byte count to calculate fee. paying 1 sat/byte + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 2 } + ) + // amount to send to receiver. It's the original amount - 1 sat/byte for tx size + const sendAmount = originalAmount - byteCount * 15 + // add output w/ address and amount to send + transactionBuilder.addOutput( + fixture.outputs[0], + Math.floor(sendAmount / 2) + ) + transactionBuilder.addOutput( + fixture.outputs[1], + Math.floor(sendAmount / 2) + ) + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + // build tx + const tx = transactionBuilder.build() + // output rawhex + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#RegTest", () => { + fixtures.scripts.p2pkh.toMany.regtest.forEach(fixture => { + // TODO pass in tesnet network config + it(`should create 1-to-2 P2PKH transaction on regtest`, () => { + const hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new BITBOX.TransactionBuilder("regtest") + const keyPair = BITBOX.HDNode.toKeyPair(hdnode) + const txHash = fixture.txHash + // original amount of satoshis in vin + const originalAmount = fixture.amount + transactionBuilder.addInput(txHash, fixture.vout) + // get byte count to calculate fee. paying 1 sat/byte + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 2 } + ) + // amount to send to receiver. It's the original amount - 1 sat/byte for tx size + const sendAmount = originalAmount - byteCount * 15 + // add output w/ address and amount to send + transactionBuilder.addOutput( + fixture.outputs[0], + Math.floor(sendAmount / 2) + ) + transactionBuilder.addOutput( + fixture.outputs[1], + Math.floor(sendAmount / 2) + ) + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + // build tx + const tx = transactionBuilder.build() + // output rawhex + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) + + describe("#manyToMany", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2pkh.manyToMany.mainnet.forEach(fixture => { + it(`should create 2-to-2 P2PKH transaction on mainnet`, () => { + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder = new BITBOX.TransactionBuilder() + const txHash = fixture.txHash + const originalAmount = fixture.amounts[0] + fixture.amounts[1] + transactionBuilder.addInput(txHash, 0) + transactionBuilder.addInput(txHash, 1) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 2 }, + { P2PKH: 2 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput( + fixture.outputs[0], + Math.floor(sendAmount / 2) + ) + transactionBuilder.addOutput( + fixture.outputs[1], + Math.floor(sendAmount / 2) + ) + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + let redeemScript + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[0] + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[1] + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#Testnet", () => { + fixtures.scripts.p2pkh.manyToMany.testnet.forEach(fixture => { + it(`should create 2-to-2 P2PKH transaction on testnet`, () => { + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const txHash = fixture.txHash + const originalAmount = fixture.amounts[0] + fixture.amounts[1] + transactionBuilder.addInput(txHash, 0) + transactionBuilder.addInput(txHash, 1) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 2 }, + { P2PKH: 2 } + ) + const sendAmount = originalAmount - byteCount * 15 + transactionBuilder.addOutput( + fixture.outputs[0], + Math.floor(sendAmount / 2) + ) + transactionBuilder.addOutput( + fixture.outputs[1], + Math.floor(sendAmount / 2) + ) + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + let redeemScript + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[0] + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[1] + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#RegTest", () => { + fixtures.scripts.p2pkh.manyToMany.regtest.forEach(fixture => { + it(`should create 2-to-2 P2PKH transaction on regtest`, () => { + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder = new BITBOX.TransactionBuilder("regtest") + const txHash = fixture.txHash + const originalAmount = fixture.amounts[0] + fixture.amounts[1] + transactionBuilder.addInput(txHash, 0) + transactionBuilder.addInput(txHash, 1) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 2 }, + { P2PKH: 2 } + ) + const sendAmount = originalAmount - byteCount * 15 + transactionBuilder.addOutput( + fixture.outputs[0], + Math.floor(sendAmount / 2) + ) + transactionBuilder.addOutput( + fixture.outputs[1], + Math.floor(sendAmount / 2) + ) + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + let redeemScript + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[0] + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[1] + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) + + describe("#fromMany", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2pkh.fromMany.mainnet.forEach(fixture => { + it(`should create 2-to-1 P2PKH transaction on mainnet`, () => { + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder = new BITBOX.TransactionBuilder() + const txHash = fixture.txHash + const originalAmount = fixture.amounts[0] + fixture.amounts[1] + transactionBuilder.addInput(txHash, 0) + transactionBuilder.addInput(txHash, 1) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 2 }, + { P2PKH: 1 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(fixture.outputs[0], sendAmount) + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + let redeemScript + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[0] + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[1] + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#Testnet", () => { + fixtures.scripts.p2pkh.fromMany.testnet.forEach(fixture => { + it(`should create 2-to-1 P2PKH transaction on testnet`, () => { + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const txHash = fixture.txHash + const originalAmount = fixture.amounts[0] + fixture.amounts[1] + transactionBuilder.addInput(txHash, 0) + transactionBuilder.addInput(txHash, 1) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 2 }, + { P2PKH: 1 } + ) + const sendAmount = originalAmount - byteCount * 15 + transactionBuilder.addOutput(fixture.outputs[0], sendAmount) + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + let redeemScript + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[0] + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[1] + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#RegTest", () => { + fixtures.scripts.p2pkh.fromMany.regtest.forEach(fixture => { + it(`should create 2-to-1 P2PKH transaction on regtest`, () => { + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder = new BITBOX.TransactionBuilder("regtest") + const txHash = fixture.txHash + const originalAmount = fixture.amounts[0] + fixture.amounts[1] + transactionBuilder.addInput(txHash, 0) + transactionBuilder.addInput(txHash, 1) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 2 }, + { P2PKH: 1 } + ) + const sendAmount = originalAmount - byteCount * 15 + transactionBuilder.addOutput(fixture.outputs[0], sendAmount) + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + let redeemScript + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[0] + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[1] + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) + }) + + describe("#op_return", () => { + describe("#Mainnet", () => { + fixtures.nulldata.mainnet.forEach(fixture => { + it(`should create transaction w/ OP_RETURN output on mainnet`, () => { + const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new BITBOX.TransactionBuilder() + const txHash = fixture.txHash + const originalAmount = fixture.amount + transactionBuilder.addInput(txHash, 0) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 5 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(fixture.output, sendAmount) + const data = fixture.data + const buf = BITBOX.Script.nullData.output.encode( + Buffer.from(data, "ascii") + ) + transactionBuilder.addOutput(buf, 0) + const keyPair = BITBOX.HDNode.toKeyPair(node) + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amount + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#Testnet", () => { + fixtures.nulldata.testnet.forEach(fixture => { + it(`should create transaction w/ OP_RETURN output on testnet`, () => { + const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const txHash = fixture.txHash + const originalAmount = fixture.amount + transactionBuilder.addInput(txHash, 0) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 5 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(fixture.output, sendAmount) + const data = fixture.data + const buf = BITBOX.Script.nullData.output.encode( + Buffer.from(data, "ascii") + ) + transactionBuilder.addOutput(buf, 0) + const keyPair = BITBOX.HDNode.toKeyPair(node) + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amount + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#RegTest", () => { + fixtures.nulldata.regtest.forEach(fixture => { + it(`should create transaction w/ OP_RETURN output on regtest`, () => { + const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new BITBOX.TransactionBuilder("regtest") + const txHash = fixture.txHash + const originalAmount = fixture.amount + transactionBuilder.addInput(txHash, 0) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 5 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(fixture.output, sendAmount) + const data = fixture.data + const buf = BITBOX.Script.nullData.output.encode( + Buffer.from(data, "ascii") + ) + transactionBuilder.addOutput(buf, 0) + const keyPair = BITBOX.HDNode.toKeyPair(node) + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amount + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) + + describe("#P2PMS", () => { + describe("#toOne", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2ms.toOne.mainnet.forEach(fixture => { + it(`should create 1-to-1 1-of-2 P2MS transaction on mainnet`, () => { + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) + const node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]) + const transactionBuilder = new BITBOX.TransactionBuilder() + const txid = fixture.txHash + const originalAmount = fixture.amount + const pubKey1 = BITBOX.HDNode.toPublicKey(node1) + const pubKey2 = BITBOX.HDNode.toPublicKey(node2) + const buf1 = BITBOX.Script.multisig.output.encode(1, [ + pubKey1, + pubKey2 + ]) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + buf1 + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 3 } + ) + const pubKey3 = BITBOX.HDNode.toPublicKey(node3) + const pubKey4 = BITBOX.HDNode.toPublicKey(node4) + const buf2 = BITBOX.Script.multisig.output.encode(1, [ + pubKey3, + pubKey4 + ]) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(buf2, sendAmount) + let redeemScript + const keyPair = BITBOX.HDNode.toKeyPair(node1) + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + // describe('#Testnet', () => { + // fixtures.scripts.p2ms.toOne.testnet.forEach((fixture) => { + // it(`should create 1-to-1 P2MS transaction on testnet`, () => { + // let hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv, 'testnet'); + // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); + // let keyPair = BITBOX.HDNode.toKeyPair(hdnode); + // let txHash = fixture.txHash; + // // original amount of satoshis in vin + // let originalAmount = fixture.amount; + // transactionBuilder.addInput(txHash, fixture.vout); + // // get byte count to calculate fee. paying 1 sat/byte + // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 1 }); + // // amount to send to receiver. It's the original amount - 1 sat/byte for tx size + // let sendAmount = originalAmount - (byteCount * 15); + // // add output w/ address and amount to send + // let redeemScript + // transactionBuilder.addOutput(fixture.outputs[0], sendAmount); + // transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); + // + // // build tx + // let tx = transactionBuilder.build(); + // // output rawhex + // let hex = tx.toHex(); + // assert.equal(hex, fixture.hex); + // }); + // }); + // }); + }) + + describe("#toMany", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2ms.toMany.mainnet.forEach(fixture => { + it(`should create 1-to-2 P2MS transaction on mainnet`, () => { + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) + const node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]) + const node5 = BITBOX.HDNode.fromXPriv(fixture.xprivs[4]) + const node6 = BITBOX.HDNode.fromXPriv(fixture.xprivs[5]) + const transactionBuilder = new BITBOX.TransactionBuilder() + const txid = fixture.txHash + const originalAmount = fixture.amount + const pubKey1 = BITBOX.HDNode.toPublicKey(node1) + const pubKey2 = BITBOX.HDNode.toPublicKey(node2) + const buf1 = BITBOX.Script.multisig.output.encode(1, [ + pubKey1, + pubKey2 + ]) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + buf1 + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 3 } + ) + const sendAmount = originalAmount - byteCount + const pubKey3 = BITBOX.HDNode.toPublicKey(node3) + const pubKey4 = BITBOX.HDNode.toPublicKey(node4) + const buf2 = BITBOX.Script.multisig.output.encode(1, [ + pubKey3, + pubKey4 + ]) + transactionBuilder.addOutput(buf2, Math.floor(sendAmount / 2)) + const pubKey5 = BITBOX.HDNode.toPublicKey(node5) + const pubKey6 = BITBOX.HDNode.toPublicKey(node6) + const buf3 = BITBOX.Script.multisig.output.encode(1, [ + pubKey5, + pubKey6 + ]) + transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) + let redeemScript + const keyPair = BITBOX.HDNode.toKeyPair(node1) + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + // describe('#Testnet', () => { + // fixtures.scripts.p2ms.toMany.testnet.forEach((fixture) => { + // // TODO pass in tesnet network config + // it(`should create 1-to-2 P2MS transaction on testnet`, () => { + // let hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv); + // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); + // let keyPair = BITBOX.HDNode.toKeyPair(hdnode); + // let txHash = fixture.txHash; + // // original amount of satoshis in vin + // let originalAmount = fixture.amount; + // transactionBuilder.addInput(txHash, fixture.vout); + // // get byte count to calculate fee. paying 1 sat/byte + // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 2 }); + // // amount to send to receiver. It's the original amount - 1 sat/byte for tx size + // let sendAmount = originalAmount - (byteCount * 15); + // // add output w/ address and amount to send + // transactionBuilder.addOutput(fixture.outputs[0], Math.floor(sendAmount / 2)); + // transactionBuilder.addOutput(fixture.outputs[1], Math.floor(sendAmount / 2)); + // let redeemScript + // transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); + // // build tx + // let tx = transactionBuilder.build(); + // // output rawhex + // let hex = tx.toHex(); + // assert.equal(hex, fixture.hex); + // }); + // }); + // }); + }) + + describe("#manyToMany", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2ms.manyToMany.mainnet.forEach(fixture => { + it(`should create 2-to-2 P2MS transaction on mainnet`, () => { + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) + const node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]) + const node5 = BITBOX.HDNode.fromXPriv(fixture.xprivs[4]) + const node6 = BITBOX.HDNode.fromXPriv(fixture.xprivs[5]) + const node7 = BITBOX.HDNode.fromXPriv(fixture.xprivs[6]) + const node8 = BITBOX.HDNode.fromXPriv(fixture.xprivs[7]) + const transactionBuilder = new BITBOX.TransactionBuilder() + const txid = fixture.txHash + const originalAmount = fixture.amount + const pubKey1 = BITBOX.HDNode.toPublicKey(node1) + const pubKey2 = BITBOX.HDNode.toPublicKey(node2) + const buf1 = BITBOX.Script.multisig.output.encode(1, [ + pubKey1, + pubKey2 + ]) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + buf1 + ) + const pubKey3 = BITBOX.HDNode.toPublicKey(node3) + const pubKey4 = BITBOX.HDNode.toPublicKey(node4) + const buf2 = BITBOX.Script.multisig.output.encode(1, [ + pubKey3, + pubKey4 + ]) + transactionBuilder.addInput( + txid, + 1, + transactionBuilder.DEFAULT_SEQUENCE, + buf2 + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 3 } + ) + const sendAmount = originalAmount - byteCount + const pubKey5 = BITBOX.HDNode.toPublicKey(node5) + const pubKey6 = BITBOX.HDNode.toPublicKey(node6) + const buf3 = BITBOX.Script.multisig.output.encode(1, [ + pubKey5, + pubKey6 + ]) + transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) + const pubKey7 = BITBOX.HDNode.toPublicKey(node7) + const pubKey8 = BITBOX.HDNode.toPublicKey(node8) + const buf4 = BITBOX.Script.multisig.output.encode(1, [ + pubKey7, + pubKey8 + ]) + transactionBuilder.addOutput(buf4, Math.floor(sendAmount / 2)) + let redeemScript + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + const keyPair2 = BITBOX.HDNode.toKeyPair(node3) + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + // describe('#Testnet', () => { + // fixtures.scripts.p2ms.manyToMany.testnet.forEach((fixture) => { + // it(`should create 2-to-2 P2MS transaction on testnet`, () => { + // let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); + // let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); + // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); + // let txHash = fixture.txHash; + // let originalAmount = fixture.amounts[0] + fixture.amounts[1]; + // transactionBuilder.addInput(txHash, 0); + // transactionBuilder.addInput(txHash, 1); + // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 2 }); + // let sendAmount = originalAmount - (byteCount * 15); + // transactionBuilder.addOutput(fixture.outputs[0], Math.floor(sendAmount / 2)); + // transactionBuilder.addOutput(fixture.outputs[1], Math.floor(sendAmount / 2)); + // let keyPair1 = BITBOX.HDNode.toKeyPair(node1); + // let keyPair2 = BITBOX.HDNode.toKeyPair(node2); + // let redeemScript; + // transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); + // transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); + // let tx = transactionBuilder.build(); + // let hex = tx.toHex(); + // assert.equal(hex, fixture.hex); + // }); + // }); + // }); + }) + + describe("#fromMany", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2ms.fromMany.mainnet.forEach(fixture => { + it(`should create 2-to-1 P2MS transaction on mainnet`, () => { + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) + const node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]) + const node5 = BITBOX.HDNode.fromXPriv(fixture.xprivs[4]) + const node6 = BITBOX.HDNode.fromXPriv(fixture.xprivs[5]) + const transactionBuilder = new BITBOX.TransactionBuilder() + const txid = fixture.txHash + const originalAmount = fixture.amount + const pubKey1 = BITBOX.HDNode.toPublicKey(node1) + const pubKey2 = BITBOX.HDNode.toPublicKey(node2) + const buf1 = BITBOX.Script.multisig.output.encode(1, [ + pubKey1, + pubKey2 + ]) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + buf1 + ) + const pubKey3 = BITBOX.HDNode.toPublicKey(node3) + const pubKey4 = BITBOX.HDNode.toPublicKey(node4) + const buf2 = BITBOX.Script.multisig.output.encode(1, [ + pubKey3, + pubKey4 + ]) + transactionBuilder.addInput( + txid, + 1, + transactionBuilder.DEFAULT_SEQUENCE, + buf2 + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 3 } + ) + const sendAmount = originalAmount - byteCount + const pubKey5 = BITBOX.HDNode.toPublicKey(node5) + const pubKey6 = BITBOX.HDNode.toPublicKey(node6) + const buf3 = BITBOX.Script.multisig.output.encode(1, [ + pubKey5, + pubKey6 + ]) + transactionBuilder.addOutput(buf3, sendAmount) + let redeemScript + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + const keyPair2 = BITBOX.HDNode.toKeyPair(node3) + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + // describe('#Testnet', () => { + // fixtures.scripts.p2ms.fromMany.testnet.forEach((fixture) => { + // it(`should create 2-to-1 P2MS transaction on testnet`, () => { + // let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); + // let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); + // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); + // let txHash = fixture.txHash; + // let originalAmount = fixture.amounts[0] + fixture.amounts[1]; + // transactionBuilder.addInput(txHash, 0); + // transactionBuilder.addInput(txHash, 1); + // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 1 }); + // let sendAmount = originalAmount - (byteCount * 15); + // transactionBuilder.addOutput(fixture.outputs[0], sendAmount); + // let keyPair1 = BITBOX.HDNode.toKeyPair(node1); + // let keyPair2 = BITBOX.HDNode.toKeyPair(node2); + // let redeemScript; + // transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); + // transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); + // let tx = transactionBuilder.build(); + // let hex = tx.toHex(); + // assert.equal(hex, fixture.hex); + // }); + // }); + // }); + }) + }) + + describe("#P2SH", () => { + describe("#toOne", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2sh.toOne.mainnet.forEach(fixture => { + it(`should create 1-to-1 P2SH transaction on mainnet`, () => { + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder = new BITBOX.TransactionBuilder() + const txid = fixture.txHash + const originalAmount = fixture.amount + const identifier1 = BITBOX.HDNode.toIdentifier(node1) + const buf1 = BITBOX.Script.encode([ + BITBOX.Script.opcodes.OP_DUP, + BITBOX.Script.opcodes.OP_HASH160, + identifier1, + BITBOX.Script.opcodes.OP_EQUALVERIFY, + BITBOX.Script.opcodes.OP_CHECKSIG + ]) + const scriptHash1 = BITBOX.Crypto.hash160(buf1) + const data1 = BITBOX.Script.scriptHash.output.encode(scriptHash1) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + data1 + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 2 }, + { P2PKH: 1 } + ) + const sendAmount = originalAmount - byteCount + const identifier2 = BITBOX.HDNode.toIdentifier(node2) + const buf2 = BITBOX.Script.encode([ + BITBOX.Script.opcodes.OP_DUP, + BITBOX.Script.opcodes.OP_HASH160, + identifier2, + BITBOX.Script.opcodes.OP_EQUALVERIFY, + BITBOX.Script.opcodes.OP_CHECKSIG + ]) + + const scriptHash2 = BITBOX.Crypto.hash160(buf2) + const data2 = BITBOX.Script.scriptHash.output.encode(scriptHash2) + transactionBuilder.addOutput(data2, sendAmount) + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + transactionBuilder.sign( + 0, + keyPair1, + buf1, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + // describe('#Testnet', () => { + // fixtures.scripts.p2sh.toOne.testnet.forEach((fixture) => { + // it(`should create 1-to-1 P2SH transaction on testnet`, () => { + // let hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv, 'testnet'); + // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); + // let keyPair = BITBOX.HDNode.toKeyPair(hdnode); + // let txHash = fixture.txHash; + // // original amount of satoshis in vin + // let originalAmount = fixture.amount; + // transactionBuilder.addInput(txHash, fixture.vout); + // // get byte count to calculate fee. paying 1 sat/byte + // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 1 }); + // // amount to send to receiver. It's the original amount - 1 sat/byte for tx size + // let sendAmount = originalAmount - (byteCount * 15); + // // add output w/ address and amount to send + // let redeemScript + // transactionBuilder.addOutput(fixture.outputs[0], sendAmount); + // transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); + // + // // build tx + // let tx = transactionBuilder.build(); + // // output rawhex + // let hex = tx.toHex(); + // assert.equal(hex, fixture.hex); + // }); + // }); + // }); + }) + + describe("#toMany", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2sh.toMany.mainnet.forEach(fixture => { + it(`should create 1-to-2 P2SH transaction on mainnet`, () => { + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) + const transactionBuilder = new BITBOX.TransactionBuilder() + const txid = fixture.txHash + const originalAmount = fixture.amount + const identifier1 = BITBOX.HDNode.toIdentifier(node1) + const buf1 = BITBOX.Script.encode([ + BITBOX.Script.opcodes.OP_DUP, + BITBOX.Script.opcodes.OP_HASH160, + identifier1, + BITBOX.Script.opcodes.OP_EQUALVERIFY, + BITBOX.Script.opcodes.OP_CHECKSIG + ]) + const scriptHash1 = BITBOX.Crypto.hash160(buf1) + const data1 = BITBOX.Script.scriptHash.output.encode(scriptHash1) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + data1 + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 2 } + ) + const sendAmount = originalAmount - byteCount + const identifier2 = BITBOX.HDNode.toIdentifier(node2) + const buf2 = BITBOX.Script.encode([ + BITBOX.Script.opcodes.OP_DUP, + BITBOX.Script.opcodes.OP_HASH160, + identifier2, + BITBOX.Script.opcodes.OP_EQUALVERIFY, + BITBOX.Script.opcodes.OP_CHECKSIG + ]) + const scriptHash2 = BITBOX.Crypto.hash160(buf2) + const data2 = BITBOX.Script.scriptHash.output.encode(scriptHash2) + transactionBuilder.addOutput(data2, Math.floor(sendAmount / 2)) + const identifier3 = BITBOX.HDNode.toIdentifier(node3) + const buf3 = BITBOX.Script.encode([ + BITBOX.Script.opcodes.OP_DUP, + BITBOX.Script.opcodes.OP_HASH160, + identifier3, + BITBOX.Script.opcodes.OP_EQUALVERIFY, + BITBOX.Script.opcodes.OP_CHECKSIG + ]) + const scriptHash3 = BITBOX.Crypto.hash160(buf3) + const data3 = BITBOX.Script.scriptHash.output.encode(scriptHash3) + transactionBuilder.addOutput(data3, Math.floor(sendAmount / 2)) + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + transactionBuilder.sign( + 0, + keyPair1, + buf1, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + // describe('#Testnet', () => { + // fixtures.scripts.p2sh.toMany.testnet.forEach((fixture) => { + // // TODO pass in tesnet network config + // it(`should create 1-to-2 P2SH transaction on testnet`, () => { + // let hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv); + // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); + // let keyPair = BITBOX.HDNode.toKeyPair(hdnode); + // let txHash = fixture.txHash; + // // original amount of satoshis in vin + // let originalAmount = fixture.amount; + // transactionBuilder.addInput(txHash, fixture.vout); + // // get byte count to calculate fee. paying 1 sat/byte + // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 2 }); + // // amount to send to receiver. It's the original amount - 1 sat/byte for tx size + // let sendAmount = originalAmount - (byteCount * 15); + // // add output w/ address and amount to send + // transactionBuilder.addOutput(fixture.outputs[0], Math.floor(sendAmount / 2)); + // transactionBuilder.addOutput(fixture.outputs[1], Math.floor(sendAmount / 2)); + // let redeemScript + // transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); + // // build tx + // let tx = transactionBuilder.build(); + // // output rawhex + // let hex = tx.toHex(); + // assert.equal(hex, fixture.hex); + // }); + // }); + // }); + }) + + describe("#manyToMany", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2sh.manyToMany.mainnet.forEach(fixture => { + it(`should create 2-to-2 P2SH transaction on mainnet`, () => { + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) + const node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]) + const transactionBuilder = new BITBOX.TransactionBuilder() + const txid = fixture.txHash + const originalAmount = fixture.amount + const identifier1 = BITBOX.HDNode.toIdentifier(node1) + const buf1 = BITBOX.Script.encode([ + BITBOX.Script.opcodes.OP_DUP, + BITBOX.Script.opcodes.OP_HASH160, + identifier1, + BITBOX.Script.opcodes.OP_EQUALVERIFY, + BITBOX.Script.opcodes.OP_CHECKSIG + ]) + const scriptHash1 = BITBOX.Crypto.hash160(buf1) + const data1 = BITBOX.Script.scriptHash.output.encode(scriptHash1) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + data1 + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 5 }, + { P2PKH: 5 } + ) + const sendAmount = originalAmount - byteCount + const identifier2 = BITBOX.HDNode.toIdentifier(node2) + const buf2 = BITBOX.Script.encode([ + BITBOX.Script.opcodes.OP_DUP, + BITBOX.Script.opcodes.OP_HASH160, + identifier2, + BITBOX.Script.opcodes.OP_EQUALVERIFY, + BITBOX.Script.opcodes.OP_CHECKSIG + ]) + const scriptHash2 = BITBOX.Crypto.hash160(buf2) + const data2 = BITBOX.Script.scriptHash.output.encode(scriptHash2) + transactionBuilder.addInput( + txid, + 1, + transactionBuilder.DEFAULT_SEQUENCE, + data2 + ) + const identifier3 = BITBOX.HDNode.toIdentifier(node3) + const buf3 = BITBOX.Script.encode([ + BITBOX.Script.opcodes.OP_DUP, + BITBOX.Script.opcodes.OP_HASH160, + identifier3, + BITBOX.Script.opcodes.OP_EQUALVERIFY, + BITBOX.Script.opcodes.OP_CHECKSIG + ]) + const scriptHash3 = BITBOX.Crypto.hash160(buf3) + const data3 = BITBOX.Script.scriptHash.output.encode(scriptHash3) + transactionBuilder.addOutput(data3, Math.floor(sendAmount / 2)) + const identifier4 = BITBOX.HDNode.toIdentifier(node4) + const buf4 = BITBOX.Script.encode([ + BITBOX.Script.opcodes.OP_DUP, + BITBOX.Script.opcodes.OP_HASH160, + identifier4, + BITBOX.Script.opcodes.OP_EQUALVERIFY, + BITBOX.Script.opcodes.OP_CHECKSIG + ]) + const scriptHash4 = BITBOX.Crypto.hash160(buf4) + const data4 = BITBOX.Script.scriptHash.output.encode(scriptHash4) + transactionBuilder.addOutput(data4, Math.floor(sendAmount / 2)) + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + transactionBuilder.sign( + 0, + keyPair1, + buf1, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + transactionBuilder.sign( + 1, + keyPair2, + buf2, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + // describe('#Testnet', () => { + // fixtures.scripts.p2sh.manyToMany.testnet.forEach((fixture) => { + // it(`should create 2-to-2 P2SH transaction on testnet`, () => { + // let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); + // let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); + // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); + // let txHash = fixture.txHash; + // let originalAmount = fixture.amounts[0] + fixture.amounts[1]; + // transactionBuilder.addInput(txHash, 0); + // transactionBuilder.addInput(txHash, 1); + // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 2 }); + // let sendAmount = originalAmount - (byteCount * 15); + // transactionBuilder.addOutput(fixture.outputs[0], Math.floor(sendAmount / 2)); + // transactionBuilder.addOutput(fixture.outputs[1], Math.floor(sendAmount / 2)); + // let keyPair1 = BITBOX.HDNode.toKeyPair(node1); + // let keyPair2 = BITBOX.HDNode.toKeyPair(node2); + // let redeemScript; + // transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); + // transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); + // let tx = transactionBuilder.build(); + // let hex = tx.toHex(); + // assert.equal(hex, fixture.hex); + // }); + // }); + // }); + }) + + describe("#fromMany", () => { + describe("#Mainnet", () => { + fixtures.scripts.p2sh.fromMany.mainnet.forEach(fixture => { + it(`should create 2-to-1 P2SH transaction on mainnet`, () => { + const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) + const transactionBuilder = new BITBOX.TransactionBuilder() + const txid = fixture.txHash + const originalAmount = fixture.amount + const identifier1 = BITBOX.HDNode.toIdentifier(node1) + const buf1 = BITBOX.Script.encode([ + BITBOX.Script.opcodes.OP_DUP, + BITBOX.Script.opcodes.OP_HASH160, + identifier1, + BITBOX.Script.opcodes.OP_EQUALVERIFY, + BITBOX.Script.opcodes.OP_CHECKSIG + ]) + const scriptHash1 = BITBOX.Crypto.hash160(buf1) + const data1 = BITBOX.Script.scriptHash.output.encode(scriptHash1) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + data1 + ) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 2 } + ) + const sendAmount = originalAmount - byteCount + const identifier2 = BITBOX.HDNode.toIdentifier(node2) + const buf2 = BITBOX.Script.encode([ + BITBOX.Script.opcodes.OP_DUP, + BITBOX.Script.opcodes.OP_HASH160, + identifier2, + BITBOX.Script.opcodes.OP_EQUALVERIFY, + BITBOX.Script.opcodes.OP_CHECKSIG + ]) + const scriptHash2 = BITBOX.Crypto.hash160(buf2) + const data2 = BITBOX.Script.scriptHash.output.encode(scriptHash2) + transactionBuilder.addInput( + txid, + 1, + transactionBuilder.DEFAULT_SEQUENCE, + data2 + ) + const identifier3 = BITBOX.HDNode.toIdentifier(node3) + const buf3 = BITBOX.Script.encode([ + BITBOX.Script.opcodes.OP_DUP, + BITBOX.Script.opcodes.OP_HASH160, + identifier3, + BITBOX.Script.opcodes.OP_EQUALVERIFY, + BITBOX.Script.opcodes.OP_CHECKSIG + ]) + const scriptHash3 = BITBOX.Crypto.hash160(buf3) + const data3 = BITBOX.Script.scriptHash.output.encode(scriptHash3) + transactionBuilder.addOutput(data3, sendAmount) + const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + transactionBuilder.sign( + 0, + keyPair1, + buf1, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + transactionBuilder.sign( + 1, + keyPair2, + buf2, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + // describe('#Testnet', () => { + // fixtures.scripts.p2sh.fromMany.testnet.forEach((fixture) => { + // it(`should create 2-to-1 P2SH transaction on testnet`, () => { + // let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); + // let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); + // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); + // let txHash = fixture.txHash; + // let originalAmount = fixture.amounts[0] + fixture.amounts[1]; + // transactionBuilder.addInput(txHash, 0); + // transactionBuilder.addInput(txHash, 1); + // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 1 }); + // let sendAmount = originalAmount - (byteCount * 15); + // transactionBuilder.addOutput(fixture.outputs[0], sendAmount); + // let keyPair1 = BITBOX.HDNode.toKeyPair(node1); + // let keyPair2 = BITBOX.HDNode.toKeyPair(node2); + // let redeemScript; + // transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); + // transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); + // let tx = transactionBuilder.build(); + // let hex = tx.toHex(); + // assert.equal(hex, fixture.hex); + // }); + // }); + // }); + }) + }) + + describe("#op_return", () => { + describe("#Mainnet", () => { + fixtures.nulldata.mainnet.forEach(fixture => { + it(`should create transaction w/ OP_RETURN output on mainnet`, () => { + const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new BITBOX.TransactionBuilder() + const txHash = fixture.txHash + const originalAmount = fixture.amount + transactionBuilder.addInput(txHash, 0) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 5 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(fixture.output, sendAmount) + const data = fixture.data + const buf = BITBOX.Script.nullData.output.encode( + Buffer.from(data, "ascii") + ) + transactionBuilder.addOutput(buf, 0) + const keyPair = BITBOX.HDNode.toKeyPair(node) + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amount + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#Testnet", () => { + fixtures.nulldata.testnet.forEach(fixture => { + it(`should create transaction w/ OP_RETURN output on testnet`, () => { + const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const txHash = fixture.txHash + const originalAmount = fixture.amount + transactionBuilder.addInput(txHash, 0) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 5 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(fixture.output, sendAmount) + const data = fixture.data + const buf = BITBOX.Script.nullData.output.encode( + Buffer.from(data, "ascii") + ) + transactionBuilder.addOutput(buf, 0) + const keyPair = BITBOX.HDNode.toKeyPair(node) + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amount + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#RegTest", () => { + fixtures.nulldata.regtest.forEach(fixture => { + it(`should create transaction w/ OP_RETURN output on regtest`, () => { + const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new BITBOX.TransactionBuilder("regtest") + const txHash = fixture.txHash + const originalAmount = fixture.amount + transactionBuilder.addInput(txHash, 0) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 5 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(fixture.output, sendAmount) + const data = fixture.data + const buf = BITBOX.Script.nullData.output.encode( + Buffer.from(data, "ascii") + ) + transactionBuilder.addOutput(buf, 0) + const keyPair = BITBOX.HDNode.toKeyPair(node) + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amount + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) + + describe("#bip66", () => { + fixtures.bip66.forEach(fixture => { + it(`should bip66 encode as ${fixture.DER}`, () => { + const transactionBuilder = new BITBOX.TransactionBuilder() + const r = Buffer.from(fixture.r, "hex") + const s = Buffer.from(fixture.s, "hex") + const DER = transactionBuilder.bip66.encode(r, s) + assert.equal(DER.toString("hex"), fixture.DER) + }) + }) + + fixtures.bip66.forEach(fixture => { + it(`should bip66 decode ${fixture.DER}`, () => { + const transactionBuilder = new BITBOX.TransactionBuilder() + const buffer = Buffer.from(fixture.DER, "hex") + const signature = transactionBuilder.bip66.decode(buffer) + assert.equal(signature.r.toString("hex"), fixture.r) + assert.equal(signature.s.toString("hex"), fixture.s) + }) + }) + + fixtures.bip66.forEach(fixture => { + it(`should bip66 check ${fixture.DER}`, () => { + const transactionBuilder = new BITBOX.TransactionBuilder() + const buffer = Buffer.from(fixture.DER, "hex") + assert.equal(transactionBuilder.bip66.check(buffer), true) + }) + }) + }) + + describe("#bip68", () => { + fixtures.bip68.encode.forEach(fixture => { + it(`should bip68 encode as ${fixture.result}`, () => { + const transactionBuilder = new BITBOX.TransactionBuilder() + const obj = {} + obj[fixture.type] = fixture.value + const encode = transactionBuilder.bip68.encode(obj) + assert.equal(encode, fixture.result) + }) + }) + + fixtures.bip68.decode.forEach(fixture => { + it(`should bip68 decode ${fixture.result}`, () => { + const transactionBuilder = new BITBOX.TransactionBuilder() + const obj = {} + const decode = transactionBuilder.bip68.decode(fixture.result) + assert.equal(Object.keys(decode)[0], fixture.type) + assert.deepEqual(decode[Object.keys(decode)[0]], fixture.value) + }) + }) + }) + + describe("#LockTime", () => { + describe("#Mainnet", () => { + fixtures.locktime.mainnet.forEach(fixture => { + it(`should create transaction with nLockTime on mainnet`, () => { + const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new BITBOX.TransactionBuilder() + + const txHash = fixture.txHash + const originalAmount = fixture.amount + transactionBuilder.addInput(txHash, 0, 1) + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 1 } + ) + const sendAmount = originalAmount - byteCount + transactionBuilder.addOutput(fixture.output, sendAmount) + const lockTime = fixture.lockTime + transactionBuilder.setLockTime(lockTime) + const keyPair = BITBOX.HDNode.toKeyPair(node) + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amount + ) + const tx = transactionBuilder.build() + const hex = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) +}) diff --git a/test/unit/Util.js b/test/unit/Util.js new file mode 100644 index 00000000..862c34e7 --- /dev/null +++ b/test/unit/Util.js @@ -0,0 +1,36 @@ +const chai = require("chai") +const assert = require("assert") +const axios = require("axios") +const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOX = new BITBOXSDK() +const sinon = require("sinon") + +describe("#Util", () => { + describe("#validateAddress", () => { + let sandbox + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should validate address", done => { + const data = { + isvalid: true, + address: "bitcoincash:qpz7qtkuyhrsz4qmnnrvf8gz9zd0u9v7eqsewyk4w5", + scriptPubKey: "76a91445e02edc25c701541b9cc6c49d02289afe159ec888ac", + ismine: false, + iswatchonly: false, + isscript: false + } + + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + BITBOX.Util.validateAddress( + "bitcoincash:qpz7qtkuyhrsz4qmnnrvf8gz9zd0u9v7eqsewyk4w5" + ) + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) +}) From ed5aab6ec3371486e99152d23f4603fa423a14d9 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 11 Jan 2019 12:09:35 -0800 Subject: [PATCH 165/480] Refactored Address.utxo, added integration tests --- src/Address.js | 22 ++++++++++++++++++--- test/integration/address.js | 39 +++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 3 deletions(-) diff --git a/src/Address.js b/src/Address.js index bedd15a9..664c2da6 100644 --- a/src/Address.js +++ b/src/Address.js @@ -298,11 +298,27 @@ class Address { } async utxo(address) { - if (typeof address !== "string") address = JSON.stringify(address) + //if (typeof address !== "string") address = JSON.stringify(address) try { - const response = await axios.get(`${this.restURL}address/utxo/${address}`) - return response.data + // Handle single address. + if(typeof address === "string") { + const response = await axios.get(`${this.restURL}address/utxo/${address}`) + return response.data + } else if(Array.isArray(address)) { + const options = { + method: "POST", + url: `${this.restURL}address/utxo`, + data: { + addresses: address + } + } + const response = await axios(options) + + return response.data + } + + throw new Error(`Input address must be a string or array of strings.`) } catch (error) { if (error.response && error.response.data) throw error.response.data else throw error diff --git a/test/integration/address.js b/test/integration/address.js index f1d64e2a..0f17244f 100644 --- a/test/integration/address.js +++ b/test/integration/address.js @@ -115,6 +115,45 @@ describe(`#address`, () => { "confirmations" ]) }) + + it(`should GET utxo details for an array of addresses`, async () => { + const addr = [ + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" + ] + + const result = await BITBOX.Address.utxo(addr) + //console.log(`result: ${util.inspect(result)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], ["utxos", "legacyAddress", "cashAddress"]) + assert.isArray(result[0].utxos) + assert.hasAllKeys(result[0].utxos[0], [ + "address", + "txid", + "vout", + "scriptPubKey", + "amount", + "satoshis", + "height", + "confirmations" + ]) + }) + + it(`should throw an error for inproper input`, async () => { + try { + const addr = 12345 + + await BITBOX.Address.utxo(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } + }) }) describe(`#unconfirmed`, () => { From 206026ea8c82554bc5674c6c0334aaf7b05a9bd6 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Mon, 14 Jan 2019 14:29:56 -0800 Subject: [PATCH 166/480] Finished integration tests for Address v2 endpoints --- src/Address.js | 69 ++++++++++++++++++++++++++++++++++--- test/integration/address.js | 69 +++++++++++++++++++++++++++++++++++-- 2 files changed, 131 insertions(+), 7 deletions(-) diff --git a/src/Address.js b/src/Address.js index 664c2da6..1070e431 100644 --- a/src/Address.js +++ b/src/Address.js @@ -298,14 +298,14 @@ class Address { } async utxo(address) { - //if (typeof address !== "string") address = JSON.stringify(address) - try { // Handle single address. - if(typeof address === "string") { - const response = await axios.get(`${this.restURL}address/utxo/${address}`) + if (typeof address === "string") { + const response = await axios.get( + `${this.restURL}address/utxo/${address}` + ) return response.data - } else if(Array.isArray(address)) { + } else if (Array.isArray(address)) { const options = { method: "POST", url: `${this.restURL}address/utxo`, @@ -326,6 +326,34 @@ class Address { } async unconfirmed(address) { + try { + // Handle single address. + if (typeof address === "string") { + const response = await axios.get( + `${this.restURL}address/unconfirmed/${address}` + ) + return response.data + + // Handle an array of addresses + } else if (Array.isArray(address)) { + const options = { + method: "POST", + url: `${this.restURL}address/unconfirmed`, + data: { + addresses: address + } + } + const response = await axios(options) + + return response.data + } + + throw new Error(`Input address must be a string or array of strings.`) + } catch (err) { + if (error.response && error.response.data) throw error.response.data + else throw error + } + /* if (typeof address !== "string") address = JSON.stringify(address) try { @@ -337,9 +365,39 @@ class Address { if (error.response && error.response.data) throw error.response.data else throw error } + */ } async transactions(address) { + try { + // Handle single address. + if (typeof address === "string") { + const response = await axios.get( + `${this.restURL}address/transactions/${address}` + ) + return response.data + + // Handle an array of addresses + } else if (Array.isArray(address)) { + const options = { + method: "POST", + url: `${this.restURL}address/transactions`, + data: { + addresses: address + } + } + const response = await axios(options) + + return response.data + } + + throw new Error(`Input address must be a string or array of strings.`) + } catch (err) { + if (error.response && error.response.data) throw error.response.data + else throw error + } + + /* if (typeof address !== "string") address = JSON.stringify(address) try { @@ -351,6 +409,7 @@ class Address { if (error.response && error.response.data) throw error.response.data else throw error } + */ } } diff --git a/test/integration/address.js b/test/integration/address.js index 0f17244f..7d54aa28 100644 --- a/test/integration/address.js +++ b/test/integration/address.js @@ -79,7 +79,7 @@ describe(`#address`, () => { assert.isArray(result[0].transactions) }) - it(`should throw an error for inproper input`, async () => { + it(`should throw an error for improper input`, async () => { try { const addr = 12345 @@ -140,7 +140,7 @@ describe(`#address`, () => { ]) }) - it(`should throw an error for inproper input`, async () => { + it(`should throw an error for improper input`, async () => { try { const addr = 12345 @@ -166,6 +166,35 @@ describe(`#address`, () => { assert.hasAllKeys(result, ["utxos", "legacyAddress", "cashAddress"]) assert.isArray(result.utxos) }) + + it(`should GET unconfirmed details on multiple addresses`, async () => { + const addr = [ + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + ] + + const result = await BITBOX.Address.unconfirmed(addr) + //console.log(`result: ${util.inspect(result)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], ["utxos", "legacyAddress", "cashAddress"]) + assert.isArray(result[0].utxos) + }) + + it(`should throw an error for improper input`, async () => { + try { + const addr = 12345 + + await BITBOX.Address.details(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } + }) }) describe(`#transactions`, () => { @@ -200,5 +229,41 @@ describe(`#address`, () => { "fees" ]) }) + + it(`should get transactions on multiple addresses`, async () => { + const addr = [ + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + ] + + const result = await BITBOX.Address.transactions(addr) + //console.log(`result: ${util.inspect(result)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "txs", + "pagesTotal", + "cashAddress", + "currentPage", + "legacyAddress" + ]) + assert.isArray(result[0].txs) + assert.hasAllKeys(result[0].txs[0], [ + "txid", + "version", + "locktime", + "vin", + "vout", + "blockhash", + "blockheight", + "confirmations", + "time", + "blocktime", + "valueOut", + "size", + "valueIn", + "fees" + ]) + }) }) }) From 0b428f3d23f65490ee9489ea392985157e3a0295 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Mon, 14 Jan 2019 14:52:01 -0800 Subject: [PATCH 167/480] Adding detailsByHash integration test --- test/integration/block.js | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/test/integration/block.js b/test/integration/block.js index 125c7152..97dfa9fa 100644 --- a/test/integration/block.js +++ b/test/integration/block.js @@ -7,7 +7,6 @@ const chai = require("chai") const assert = chai.assert const BITBOXSDK = require("../../lib/bitbox-sdk").default const BITBOX = new BITBOXSDK() -const axios = require("axios") // Inspect utility used for debugging. const util = require("util") @@ -18,8 +17,8 @@ util.inspect.defaultOptions = { } describe(`#block`, () => { - describe(`#details`, () => { - it(`should GET block details`, async () => { + describe(`#detailsByHeight`, () => { + it(`should GET block details for a given Height`, async () => { const block = 500000 const result = await BITBOX.Block.detailsByHeight(block) @@ -46,4 +45,34 @@ describe(`#block`, () => { ]) }) }) + + describe("#detailsByHash", () => { + it(`should GET block details for a given hash`, async () => { + const hash = + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + + const result = await BITBOX.Block.detailsByHash(hash) + //console.log(`result: ${util.inspect(result)}`) + + assert.hasAllKeys(result, [ + "hash", + "size", + "height", + "version", + "merkleroot", + "tx", + "time", + "nonce", + "bits", + "difficulty", + "chainwork", + "confirmations", + "previousblockhash", + "nextblockhash", + "reward", + "isMainChain", + "poolInfo" + ]) + }) + }) }) From 34d98a1f2dc1733652e1e4a03b58f93276af923f Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 15 Jan 2019 09:10:37 -0800 Subject: [PATCH 168/480] Added unit tests for block by hash --- lib/Address.js | 99 +++++++++++++++++++++++++++++++------ lib/Block.js | 3 ++ src/Address.js | 27 ---------- src/Block.js | 52 ++++++++++++++++--- src/bitbox-sdk.js | 3 +- test/integration/address.js | 19 ++++++- test/integration/block.js | 91 +++++++++++++++++++++++++++++++++- 7 files changed, 242 insertions(+), 52 deletions(-) diff --git a/lib/Address.js b/lib/Address.js index b747ccd6..6e29456e 100644 --- a/lib/Address.js +++ b/lib/Address.js @@ -364,11 +364,25 @@ var Address = function () { }, { key: "utxo", value: async function utxo(address) { - if (typeof address !== "string") address = JSON.stringify(address); - try { - var response = await _axios2.default.get(this.restURL + "address/utxo/" + address); - return response.data; + // Handle single address. + if (typeof address === "string") { + var response = await _axios2.default.get(this.restURL + "address/utxo/" + address); + return response.data; + } else if (Array.isArray(address)) { + var options = { + method: "POST", + url: this.restURL + "address/utxo", + data: { + addresses: address + } + }; + var _response2 = await (0, _axios2.default)(options); + + return _response2.data; + } + + throw new Error("Input address must be a string or array of strings."); } catch (error) { if (error.response && error.response.data) throw error.response.data;else throw error; } @@ -376,26 +390,83 @@ var Address = function () { }, { key: "unconfirmed", value: async function unconfirmed(address) { - if (typeof address !== "string") address = JSON.stringify(address); - try { - var response = await _axios2.default.get(this.restURL + "address/unconfirmed/" + address); - return response.data; - } catch (error) { + // Handle single address. + if (typeof address === "string") { + var response = await _axios2.default.get(this.restURL + "address/unconfirmed/" + address); + return response.data; + + // Handle an array of addresses + } else if (Array.isArray(address)) { + var options = { + method: "POST", + url: this.restURL + "address/unconfirmed", + data: { + addresses: address + } + }; + var _response3 = await (0, _axios2.default)(options); + + return _response3.data; + } + + throw new Error("Input address must be a string or array of strings."); + } catch (err) { if (error.response && error.response.data) throw error.response.data;else throw error; } + /* + if (typeof address !== "string") address = JSON.stringify(address) + try { + const response = await axios.get( + `${this.restURL}address/unconfirmed/${address}` + ) + return response.data + } catch (error) { + if (error.response && error.response.data) throw error.response.data + else throw error + } + */ } }, { key: "transactions", value: async function transactions(address) { - if (typeof address !== "string") address = JSON.stringify(address); - try { - var response = await _axios2.default.get(this.restURL + "address/transactions/" + address); - return response.data; - } catch (error) { + // Handle single address. + if (typeof address === "string") { + var response = await _axios2.default.get(this.restURL + "address/transactions/" + address); + return response.data; + + // Handle an array of addresses + } else if (Array.isArray(address)) { + var options = { + method: "POST", + url: this.restURL + "address/transactions", + data: { + addresses: address + } + }; + var _response4 = await (0, _axios2.default)(options); + + return _response4.data; + } + + throw new Error("Input address must be a string or array of strings."); + } catch (err) { if (error.response && error.response.data) throw error.response.data;else throw error; } + + /* + if (typeof address !== "string") address = JSON.stringify(address) + try { + const response = await axios.get( + `${this.restURL}address/transactions/${address}` + ) + return response.data + } catch (error) { + if (error.response && error.response.data) throw error.response.data + else throw error + } + */ } }]); diff --git a/lib/Block.js b/lib/Block.js index db77c8e9..6028d8e4 100644 --- a/lib/Block.js +++ b/lib/Block.js @@ -4,6 +4,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _axios = require("axios"); @@ -24,6 +26,7 @@ var Block = function () { _createClass(Block, [{ key: "detailsByHeight", value: async function detailsByHeight(id) { + console.log("typeof: " + (typeof id === "undefined" ? "undefined" : _typeof(id))); try { var response = await _axios2.default.get(this.restURL + "block/detailsByHeight/" + id); return response.data; diff --git a/src/Address.js b/src/Address.js index 1070e431..72be8617 100644 --- a/src/Address.js +++ b/src/Address.js @@ -349,23 +349,10 @@ class Address { } throw new Error(`Input address must be a string or array of strings.`) - } catch (err) { - if (error.response && error.response.data) throw error.response.data - else throw error - } - /* - if (typeof address !== "string") address = JSON.stringify(address) - - try { - const response = await axios.get( - `${this.restURL}address/unconfirmed/${address}` - ) - return response.data } catch (error) { if (error.response && error.response.data) throw error.response.data else throw error } - */ } async transactions(address) { @@ -392,24 +379,10 @@ class Address { } throw new Error(`Input address must be a string or array of strings.`) - } catch (err) { - if (error.response && error.response.data) throw error.response.data - else throw error - } - - /* - if (typeof address !== "string") address = JSON.stringify(address) - - try { - const response = await axios.get( - `${this.restURL}address/transactions/${address}` - ) - return response.data } catch (error) { if (error.response && error.response.data) throw error.response.data else throw error } - */ } } diff --git a/src/Block.js b/src/Block.js index c5d174f8..d7a1501f 100644 --- a/src/Block.js +++ b/src/Block.js @@ -6,10 +6,28 @@ class Block { async detailsByHeight(id) { try { - const response = await axios.get( - `${this.restURL}block/detailsByHeight/${id}` - ) - return response.data + // Single block + if (typeof id === "number") { + const response = await axios.get( + `${this.restURL}block/detailsByHeight/${id}` + ) + return response.data + + // Array of blocks. + } else if (Array.isArray(id)) { + const options = { + method: "POST", + url: `${this.restURL}block/detailsByHeight`, + data: { + heights: id + } + } + const response = await axios(options) + + return response.data + } + + throw new Error(`Input must be a number or array of numbers.`) } catch (error) { if (error.response && error.response.data) throw error.response.data else throw error @@ -18,10 +36,28 @@ class Block { async detailsByHash(hash) { try { - const response = await axios.get( - `${this.restURL}block/detailsByHash/${hash}` - ) - return response.data + // Single block + if (typeof hash === "string") { + const response = await axios.get( + `${this.restURL}block/detailsByHash/${hash}` + ) + return response.data + + // Array of hashes. + } else if (Array.isArray(hash)) { + const options = { + method: "POST", + url: `${this.restURL}block/detailsByHash`, + data: { + hashes: hash + } + } + const response = await axios(options) + + return response.data + } + + throw new Error(`Input must be a string or array of strings.`) } catch (error) { if (error.response && error.response.data) throw error.response.data else throw error diff --git a/src/bitbox-sdk.js b/src/bitbox-sdk.js index 6abfa615..5503b842 100644 --- a/src/bitbox-sdk.js +++ b/src/bitbox-sdk.js @@ -24,7 +24,8 @@ class BITBOXSDK { constructor(config) { if (config && config.restURL && config.restURL !== "") this.restURL = config.restURL - else this.restURL = "https://rest.btctest.net/v2/" + //else this.restURL = "https://rest.btctest.net/v2/" + else this.restURL = "http://localhost:3000/v2/" this.Address = new Address(this.restURL) this.BitcoinCash = new BitcoinCash(this.Address) diff --git a/test/integration/address.js b/test/integration/address.js index 7d54aa28..f8a82e89 100644 --- a/test/integration/address.js +++ b/test/integration/address.js @@ -185,7 +185,7 @@ describe(`#address`, () => { try { const addr = 12345 - await BITBOX.Address.details(addr) + await BITBOX.Address.unconfirmed(addr) assert.equal(true, false, "Unexpected result!") } catch (err) { //console.log(`err: `, err) @@ -265,5 +265,22 @@ describe(`#address`, () => { "fees" ]) }) + + it(`should throw an error for improper input`, async () => { + try { + const addr = 12345 + + await BITBOX.Address.transactions(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } + }) }) + + }) diff --git a/test/integration/block.js b/test/integration/block.js index 97dfa9fa..8dbabdf3 100644 --- a/test/integration/block.js +++ b/test/integration/block.js @@ -5,7 +5,7 @@ const chai = require("chai") const assert = chai.assert -const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOXSDK = require("../../src/bitbox-sdk").default const BITBOX = new BITBOXSDK() // Inspect utility used for debugging. @@ -44,6 +44,49 @@ describe(`#block`, () => { "poolInfo" ]) }) + + it(`should GET block details for an array of blocks`, async () => { + const blocks = [500000, 500001] + + const result = await BITBOX.Block.detailsByHeight(blocks) + //console.log(`result: ${util.inspect(result)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "hash", + "size", + "height", + "version", + "merkleroot", + "tx", + "time", + "nonce", + "bits", + "difficulty", + "chainwork", + "confirmations", + "previousblockhash", + "nextblockhash", + "reward", + "isMainChain", + "poolInfo" + ]) + }) + + it(`should throw an error for improper single input`, async () => { + try { + const addr = "asdf" + + await BITBOX.Block.detailsByHeight(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input must be a number or array of numbers.` + ) + } + }) }) describe("#detailsByHash", () => { @@ -74,5 +117,51 @@ describe(`#block`, () => { "poolInfo" ]) }) + + it(`should GET block details for an array of hashes`, async () => { + const hash = [ + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + ] + + const result = await BITBOX.Block.detailsByHash(hash) + //console.log(`result: ${util.inspect(result)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "hash", + "size", + "height", + "version", + "merkleroot", + "tx", + "time", + "nonce", + "bits", + "difficulty", + "chainwork", + "confirmations", + "previousblockhash", + "nextblockhash", + "reward", + "isMainChain", + "poolInfo" + ]) + }) + + it(`should throw an error for improper single input`, async () => { + try { + const hash = 12345 + + await BITBOX.Block.detailsByHash(hash) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input must be a string or array of strings` + ) + } + }) }) }) From 09b3838b557b70e9a2255ff1242f9f2d47815e05 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 15 Jan 2019 11:57:10 -0800 Subject: [PATCH 169/480] Refactored getMempoolEntry --- src/Blockchain.js | 26 +++++++++--- test/integration/blockchain.js | 73 +++++++++++++++++++++++++++++++++- 2 files changed, 93 insertions(+), 6 deletions(-) diff --git a/src/Blockchain.js b/src/Blockchain.js index dc8a05dc..4e1c4699 100644 --- a/src/Blockchain.js +++ b/src/Blockchain.js @@ -135,13 +135,29 @@ class Blockchain { } async getMempoolEntry(txid) { - if (typeof txid !== "string") txid = JSON.stringify(txid) + //if (typeof txid !== "string") txid = JSON.stringify(txid) try { - const response = await axios.get( - `${this.restURL}blockchain/getMempoolEntry/${txid}` - ) - return response.data + if (typeof txid === "string") { + const response = await axios.get( + `${this.restURL}blockchain/getMempoolEntry/${txid}` + ) + + return response.data + } else if (Array.isArray(txid)) { + const options = { + method: "POST", + url: `${this.restURL}blockchain/getMempoolEntry`, + data: { + txids: txid + } + } + const response = await axios(options) + + return response.data + } + + throw new Error(`Input must be a string or array of strings.`) } catch (error) { if (error.response && error.response.data) throw error.response.data else throw error diff --git a/test/integration/blockchain.js b/test/integration/blockchain.js index 621bd707..5e36bae1 100644 --- a/test/integration/blockchain.js +++ b/test/integration/blockchain.js @@ -1,11 +1,15 @@ /* Integration tests for the BITBOX. Only covers calls made to rest.bitcoin.com. + + TODO + - getMempoolEntry() only works on TXs in the mempool, so it needs to be part + of an e2e test to be properly tested. */ const chai = require("chai") const assert = chai.assert -const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOXSDK = require("../../src/bitbox-sdk").default const BITBOX = new BITBOXSDK() const axios = require("axios") @@ -24,6 +28,73 @@ describe(`#blockchain`, () => { //console.log(`result: ${util.inspect(result)}`) assert.isString(result) + assert.equal(result.length, 64, "Specific hash length") + }) + }) + + describe("#getMempoolEntry", () => { + /* + // To run this test, the txid must be unconfirmed. + const txid = + "8be69f3ba6bde8152ae11789aa4ba292a4d2cea40bef3d7cb9f69adde150b9fd" + + it(`should GET single mempool entry`, async () => { + const result = await BITBOX.Blockchain.getMempoolEntry(txid) + + assert.hasAnyKeys(result, [ + "size", + "fee", + "modifiedfee", + "time", + "height", + "startingpriority", + "currentpriority", + "descendantcount", + "descendantsize", + "descendantfees", + "ancestorcount", + "ancestorsize", + "ancestorfees", + "depends" + ]) + }) + + it(`should get an array of mempool entries`, async () => { + const result = await BITBOX.Blockchain.getMempoolEntry([txid, txid]) + + assert.isArray(result) + assert.hasAnyKeys(result[0], [ + "size", + "fee", + "modifiedfee", + "time", + "height", + "startingpriority", + "currentpriority", + "descendantcount", + "descendantsize", + "descendantfees", + "ancestorcount", + "ancestorsize", + "ancestorfees", + "depends" + ]) + }) + */ + + it(`should throw an error if txid is not in mempool`, async () => { + try { + const txid = + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + + await BITBOX.Blockchain.getMempoolEntry(txid) + + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: ${util.inspect(err)}`) + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, `Transaction not in mempool`) + } }) }) }) From 9cf2af2391542d380f48656e5c926f3e5e43d5d1 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 15 Jan 2019 14:25:23 -0800 Subject: [PATCH 170/480] Refactored getTxOutProof --- src/Blockchain.js | 55 ++++++- test/integration/address.js | 286 --------------------------------- test/integration/block.js | 167 ------------------- test/integration/blockchain.js | 27 +++- 4 files changed, 74 insertions(+), 461 deletions(-) delete mode 100644 test/integration/address.js delete mode 100644 test/integration/block.js diff --git a/src/Blockchain.js b/src/Blockchain.js index 4e1c4699..e1402d06 100644 --- a/src/Blockchain.js +++ b/src/Blockchain.js @@ -1,3 +1,8 @@ +/* + TODO + - Add blockhash functionality back into getTxOutProof +*/ + import axios from "axios" class Blockchain { constructor(restURL) { @@ -202,13 +207,31 @@ class Blockchain { } } - async getTxOutProof(txids, blockhash) { - let path = `${this.restURL}blockchain/getTxOutProof/${txids}` - if (blockhash) path = `${path}?blockhash=${blockhash}` - + async getTxOutProof(txids) { try { - const response = await axios.get(path) - return response.data + // Single txid. + if (typeof txids === "string") { + const path = `${this.restURL}blockchain/getTxOutProof/${txids}` + //if (blockhash) path = `${path}?blockhash=${blockhash}` + + const response = await axios.get(path) + return response.data + + // Array of txids. + } else if (Array.isArray(txids)) { + const options = { + method: "POST", + url: `${this.restURL}blockchain/getTxOutProof`, + data: { + txids: txids + } + } + const response = await axios(options) + + return response.data + } + + throw new Error(`Input must be a string or array of strings.`) } catch (error) { if (error.response && error.response.data) throw error.response.data else throw error @@ -255,10 +278,28 @@ class Blockchain { async verifyTxOutProof(proof) { try { + // Single block + if (typeof proof === "string") { const response = await axios.get( - `${this.restURL}blockchain/verifyTxOutProof/proof` + `${this.restURL}blockchain/verifyTxOutProof/${proof}` ) return response.data + + // Array of hashes. + } else if (Array.isArray(proof)) { + const options = { + method: "POST", + url: `${this.restURL}block/detailsByHash`, + data: { + hashes: hash + } + } + const response = await axios(options) + + return response.data + } + + throw new Error(`Input must be a string or array of strings.`) } catch (error) { if (error.response && error.response.data) throw error.response.data else throw error diff --git a/test/integration/address.js b/test/integration/address.js deleted file mode 100644 index f8a82e89..00000000 --- a/test/integration/address.js +++ /dev/null @@ -1,286 +0,0 @@ -/* - Integration tests for the BITBOX.Address library. Only covers calls made to - rest.bitcoin.com. - - TODO: - -Address.unconfirmed: - --Retrieves transient 0-conf UTXOs. Needs an E2E test to be effectively tested. -*/ - -const chai = require("chai") -const assert = chai.assert -const BITBOXSDK = require("../../src/bitbox-sdk").default -const BITBOX = new BITBOXSDK() -//const axios = require("axios") - -// Inspect utility used for debugging. -const util = require("util") -util.inspect.defaultOptions = { - showHidden: true, - colors: true, - depth: 3 -} - -describe(`#address`, () => { - describe(`#details`, () => { - it(`should GET address details for a single address`, async () => { - const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - - const result = await BITBOX.Address.details(addr) - //console.log(`result: ${util.inspect(result)}`) - - assert.hasAllKeys(result, [ - "balance", - "balanceSat", - "totalReceived", - "totalReceivedSat", - "totalSent", - "totalSentSat", - "unconfirmedBalance", - "unconfirmedBalanceSat", - "unconfirmedTxApperances", - "txApperances", - "transactions", - "legacyAddress", - "cashAddress", - "currentPage", - "pagesTotal" - ]) - assert.isArray(result.transactions) - }) - - it(`should GET address details for an array of addresses`, async () => { - const addr = [ - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", - "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" - ] - - const result = await BITBOX.Address.details(addr) - //console.log(`result: ${util.inspect(result)}`) - - assert.isArray(result) - assert.hasAllKeys(result[0], [ - "balance", - "balanceSat", - "totalReceived", - "totalReceivedSat", - "totalSent", - "totalSentSat", - "unconfirmedBalance", - "unconfirmedBalanceSat", - "unconfirmedTxApperances", - "txApperances", - "transactions", - "legacyAddress", - "cashAddress", - "currentPage", - "pagesTotal" - ]) - assert.isArray(result[0].transactions) - }) - - it(`should throw an error for improper input`, async () => { - try { - const addr = 12345 - - await BITBOX.Address.details(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input address must be a string or array of strings` - ) - } - }) - }) - - describe(`#utxo`, () => { - it(`should GET utxos for a single address`, async () => { - const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - - const result = await BITBOX.Address.utxo(addr) - //console.log(`result: ${util.inspect(result)}`) - - assert.hasAllKeys(result, ["utxos", "legacyAddress", "cashAddress"]) - assert.isArray(result.utxos) - assert.hasAllKeys(result.utxos[0], [ - "address", - "txid", - "vout", - "scriptPubKey", - "amount", - "satoshis", - "height", - "confirmations" - ]) - }) - - it(`should GET utxo details for an array of addresses`, async () => { - const addr = [ - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", - "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" - ] - - const result = await BITBOX.Address.utxo(addr) - //console.log(`result: ${util.inspect(result)}`) - - assert.isArray(result) - assert.hasAllKeys(result[0], ["utxos", "legacyAddress", "cashAddress"]) - assert.isArray(result[0].utxos) - assert.hasAllKeys(result[0].utxos[0], [ - "address", - "txid", - "vout", - "scriptPubKey", - "amount", - "satoshis", - "height", - "confirmations" - ]) - }) - - it(`should throw an error for improper input`, async () => { - try { - const addr = 12345 - - await BITBOX.Address.utxo(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input address must be a string or array of strings` - ) - } - }) - }) - - describe(`#unconfirmed`, () => { - it(`should GET unconfirmed details on a single address`, async () => { - const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - - const result = await BITBOX.Address.unconfirmed(addr) - //console.log(`result: ${util.inspect(result)}`) - - assert.hasAllKeys(result, ["utxos", "legacyAddress", "cashAddress"]) - assert.isArray(result.utxos) - }) - - it(`should GET unconfirmed details on multiple addresses`, async () => { - const addr = [ - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - ] - - const result = await BITBOX.Address.unconfirmed(addr) - //console.log(`result: ${util.inspect(result)}`) - - assert.isArray(result) - assert.hasAllKeys(result[0], ["utxos", "legacyAddress", "cashAddress"]) - assert.isArray(result[0].utxos) - }) - - it(`should throw an error for improper input`, async () => { - try { - const addr = 12345 - - await BITBOX.Address.unconfirmed(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input address must be a string or array of strings` - ) - } - }) - }) - - describe(`#transactions`, () => { - it(`should GET transactions for a single address`, async () => { - const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - - const result = await BITBOX.Address.transactions(addr) - //console.log(`result: ${util.inspect(result)}`) - - assert.hasAllKeys(result, [ - "txs", - "pagesTotal", - "cashAddress", - "currentPage", - "legacyAddress" - ]) - assert.isArray(result.txs) - assert.hasAllKeys(result.txs[0], [ - "txid", - "version", - "locktime", - "vin", - "vout", - "blockhash", - "blockheight", - "confirmations", - "time", - "blocktime", - "valueOut", - "size", - "valueIn", - "fees" - ]) - }) - - it(`should get transactions on multiple addresses`, async () => { - const addr = [ - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - ] - - const result = await BITBOX.Address.transactions(addr) - //console.log(`result: ${util.inspect(result)}`) - - assert.isArray(result) - assert.hasAllKeys(result[0], [ - "txs", - "pagesTotal", - "cashAddress", - "currentPage", - "legacyAddress" - ]) - assert.isArray(result[0].txs) - assert.hasAllKeys(result[0].txs[0], [ - "txid", - "version", - "locktime", - "vin", - "vout", - "blockhash", - "blockheight", - "confirmations", - "time", - "blocktime", - "valueOut", - "size", - "valueIn", - "fees" - ]) - }) - - it(`should throw an error for improper input`, async () => { - try { - const addr = 12345 - - await BITBOX.Address.transactions(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input address must be a string or array of strings` - ) - } - }) - }) - - -}) diff --git a/test/integration/block.js b/test/integration/block.js deleted file mode 100644 index 8dbabdf3..00000000 --- a/test/integration/block.js +++ /dev/null @@ -1,167 +0,0 @@ -/* - Integration tests for the BITBOX. Only covers calls made to - rest.bitcoin.com. -*/ - -const chai = require("chai") -const assert = chai.assert -const BITBOXSDK = require("../../src/bitbox-sdk").default -const BITBOX = new BITBOXSDK() - -// Inspect utility used for debugging. -const util = require("util") -util.inspect.defaultOptions = { - showHidden: true, - colors: true, - depth: 3 -} - -describe(`#block`, () => { - describe(`#detailsByHeight`, () => { - it(`should GET block details for a given Height`, async () => { - const block = 500000 - - const result = await BITBOX.Block.detailsByHeight(block) - //console.log(`result: ${util.inspect(result)}`) - - assert.hasAllKeys(result, [ - "hash", - "size", - "height", - "version", - "merkleroot", - "tx", - "time", - "nonce", - "bits", - "difficulty", - "chainwork", - "confirmations", - "previousblockhash", - "nextblockhash", - "reward", - "isMainChain", - "poolInfo" - ]) - }) - - it(`should GET block details for an array of blocks`, async () => { - const blocks = [500000, 500001] - - const result = await BITBOX.Block.detailsByHeight(blocks) - //console.log(`result: ${util.inspect(result)}`) - - assert.isArray(result) - assert.hasAllKeys(result[0], [ - "hash", - "size", - "height", - "version", - "merkleroot", - "tx", - "time", - "nonce", - "bits", - "difficulty", - "chainwork", - "confirmations", - "previousblockhash", - "nextblockhash", - "reward", - "isMainChain", - "poolInfo" - ]) - }) - - it(`should throw an error for improper single input`, async () => { - try { - const addr = "asdf" - - await BITBOX.Block.detailsByHeight(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input must be a number or array of numbers.` - ) - } - }) - }) - - describe("#detailsByHash", () => { - it(`should GET block details for a given hash`, async () => { - const hash = - "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - - const result = await BITBOX.Block.detailsByHash(hash) - //console.log(`result: ${util.inspect(result)}`) - - assert.hasAllKeys(result, [ - "hash", - "size", - "height", - "version", - "merkleroot", - "tx", - "time", - "nonce", - "bits", - "difficulty", - "chainwork", - "confirmations", - "previousblockhash", - "nextblockhash", - "reward", - "isMainChain", - "poolInfo" - ]) - }) - - it(`should GET block details for an array of hashes`, async () => { - const hash = [ - "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", - "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - ] - - const result = await BITBOX.Block.detailsByHash(hash) - //console.log(`result: ${util.inspect(result)}`) - - assert.isArray(result) - assert.hasAllKeys(result[0], [ - "hash", - "size", - "height", - "version", - "merkleroot", - "tx", - "time", - "nonce", - "bits", - "difficulty", - "chainwork", - "confirmations", - "previousblockhash", - "nextblockhash", - "reward", - "isMainChain", - "poolInfo" - ]) - }) - - it(`should throw an error for improper single input`, async () => { - try { - const hash = 12345 - - await BITBOX.Block.detailsByHash(hash) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input must be a string or array of strings` - ) - } - }) - }) -}) diff --git a/test/integration/blockchain.js b/test/integration/blockchain.js index 5e36bae1..b72d4908 100644 --- a/test/integration/blockchain.js +++ b/test/integration/blockchain.js @@ -81,7 +81,7 @@ describe(`#blockchain`, () => { ]) }) */ - + it(`should throw an error if txid is not in mempool`, async () => { try { const txid = @@ -97,4 +97,29 @@ describe(`#blockchain`, () => { } }) }) + + describe(`#getTxOutProof`, () => { + it(`should get single tx out proof`, async () => { + const txid = + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + + const result = await BITBOX.Blockchain.getTxOutProof(txid) + //console.log(`result: ${util.inspect(result)}`) + + assert.isString(result) + }) + + it(`should get an array of tx out proofs`, async () => { + const txid = [ + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7", + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + ] + + const result = await BITBOX.Blockchain.getTxOutProof(txid) + //console.log(`result: ${util.inspect(result)}`) + + assert.isArray(result) + assert.isString(result[0]) + }) + }) }) From 510db69ece33fc491aff59de53d89b5c0b582722 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 15 Jan 2019 14:37:06 -0800 Subject: [PATCH 171/480] Finished refactoring blockchain lib for rest v2 --- src/Blockchain.js | 32 ++-- test/integration/address.js | 286 +++++++++++++++++++++++++++++++++ test/integration/block.js | 167 +++++++++++++++++++ test/integration/blockchain.js | 72 +++++++++ 4 files changed, 541 insertions(+), 16 deletions(-) create mode 100644 test/integration/address.js create mode 100644 test/integration/block.js diff --git a/src/Blockchain.js b/src/Blockchain.js index e1402d06..4f1aab06 100644 --- a/src/Blockchain.js +++ b/src/Blockchain.js @@ -280,26 +280,26 @@ class Blockchain { try { // Single block if (typeof proof === "string") { - const response = await axios.get( - `${this.restURL}blockchain/verifyTxOutProof/${proof}` - ) - return response.data + const response = await axios.get( + `${this.restURL}blockchain/verifyTxOutProof/${proof}` + ) + return response.data - // Array of hashes. - } else if (Array.isArray(proof)) { - const options = { - method: "POST", - url: `${this.restURL}block/detailsByHash`, - data: { - hashes: hash + // Array of hashes. + } else if (Array.isArray(proof)) { + const options = { + method: "POST", + url: `${this.restURL}blockchain/verifyTxOutProof`, + data: { + proofs: proof + } } - } - const response = await axios(options) + const response = await axios(options) - return response.data - } + return response.data + } - throw new Error(`Input must be a string or array of strings.`) + throw new Error(`Input must be a string or array of strings.`) } catch (error) { if (error.response && error.response.data) throw error.response.data else throw error diff --git a/test/integration/address.js b/test/integration/address.js new file mode 100644 index 00000000..f8a82e89 --- /dev/null +++ b/test/integration/address.js @@ -0,0 +1,286 @@ +/* + Integration tests for the BITBOX.Address library. Only covers calls made to + rest.bitcoin.com. + + TODO: + -Address.unconfirmed: + --Retrieves transient 0-conf UTXOs. Needs an E2E test to be effectively tested. +*/ + +const chai = require("chai") +const assert = chai.assert +const BITBOXSDK = require("../../src/bitbox-sdk").default +const BITBOX = new BITBOXSDK() +//const axios = require("axios") + +// Inspect utility used for debugging. +const util = require("util") +util.inspect.defaultOptions = { + showHidden: true, + colors: true, + depth: 3 +} + +describe(`#address`, () => { + describe(`#details`, () => { + it(`should GET address details for a single address`, async () => { + const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + + const result = await BITBOX.Address.details(addr) + //console.log(`result: ${util.inspect(result)}`) + + assert.hasAllKeys(result, [ + "balance", + "balanceSat", + "totalReceived", + "totalReceivedSat", + "totalSent", + "totalSentSat", + "unconfirmedBalance", + "unconfirmedBalanceSat", + "unconfirmedTxApperances", + "txApperances", + "transactions", + "legacyAddress", + "cashAddress", + "currentPage", + "pagesTotal" + ]) + assert.isArray(result.transactions) + }) + + it(`should GET address details for an array of addresses`, async () => { + const addr = [ + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" + ] + + const result = await BITBOX.Address.details(addr) + //console.log(`result: ${util.inspect(result)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "balance", + "balanceSat", + "totalReceived", + "totalReceivedSat", + "totalSent", + "totalSentSat", + "unconfirmedBalance", + "unconfirmedBalanceSat", + "unconfirmedTxApperances", + "txApperances", + "transactions", + "legacyAddress", + "cashAddress", + "currentPage", + "pagesTotal" + ]) + assert.isArray(result[0].transactions) + }) + + it(`should throw an error for improper input`, async () => { + try { + const addr = 12345 + + await BITBOX.Address.details(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } + }) + }) + + describe(`#utxo`, () => { + it(`should GET utxos for a single address`, async () => { + const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + + const result = await BITBOX.Address.utxo(addr) + //console.log(`result: ${util.inspect(result)}`) + + assert.hasAllKeys(result, ["utxos", "legacyAddress", "cashAddress"]) + assert.isArray(result.utxos) + assert.hasAllKeys(result.utxos[0], [ + "address", + "txid", + "vout", + "scriptPubKey", + "amount", + "satoshis", + "height", + "confirmations" + ]) + }) + + it(`should GET utxo details for an array of addresses`, async () => { + const addr = [ + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" + ] + + const result = await BITBOX.Address.utxo(addr) + //console.log(`result: ${util.inspect(result)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], ["utxos", "legacyAddress", "cashAddress"]) + assert.isArray(result[0].utxos) + assert.hasAllKeys(result[0].utxos[0], [ + "address", + "txid", + "vout", + "scriptPubKey", + "amount", + "satoshis", + "height", + "confirmations" + ]) + }) + + it(`should throw an error for improper input`, async () => { + try { + const addr = 12345 + + await BITBOX.Address.utxo(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } + }) + }) + + describe(`#unconfirmed`, () => { + it(`should GET unconfirmed details on a single address`, async () => { + const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + + const result = await BITBOX.Address.unconfirmed(addr) + //console.log(`result: ${util.inspect(result)}`) + + assert.hasAllKeys(result, ["utxos", "legacyAddress", "cashAddress"]) + assert.isArray(result.utxos) + }) + + it(`should GET unconfirmed details on multiple addresses`, async () => { + const addr = [ + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + ] + + const result = await BITBOX.Address.unconfirmed(addr) + //console.log(`result: ${util.inspect(result)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], ["utxos", "legacyAddress", "cashAddress"]) + assert.isArray(result[0].utxos) + }) + + it(`should throw an error for improper input`, async () => { + try { + const addr = 12345 + + await BITBOX.Address.unconfirmed(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } + }) + }) + + describe(`#transactions`, () => { + it(`should GET transactions for a single address`, async () => { + const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + + const result = await BITBOX.Address.transactions(addr) + //console.log(`result: ${util.inspect(result)}`) + + assert.hasAllKeys(result, [ + "txs", + "pagesTotal", + "cashAddress", + "currentPage", + "legacyAddress" + ]) + assert.isArray(result.txs) + assert.hasAllKeys(result.txs[0], [ + "txid", + "version", + "locktime", + "vin", + "vout", + "blockhash", + "blockheight", + "confirmations", + "time", + "blocktime", + "valueOut", + "size", + "valueIn", + "fees" + ]) + }) + + it(`should get transactions on multiple addresses`, async () => { + const addr = [ + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + ] + + const result = await BITBOX.Address.transactions(addr) + //console.log(`result: ${util.inspect(result)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "txs", + "pagesTotal", + "cashAddress", + "currentPage", + "legacyAddress" + ]) + assert.isArray(result[0].txs) + assert.hasAllKeys(result[0].txs[0], [ + "txid", + "version", + "locktime", + "vin", + "vout", + "blockhash", + "blockheight", + "confirmations", + "time", + "blocktime", + "valueOut", + "size", + "valueIn", + "fees" + ]) + }) + + it(`should throw an error for improper input`, async () => { + try { + const addr = 12345 + + await BITBOX.Address.transactions(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } + }) + }) + + +}) diff --git a/test/integration/block.js b/test/integration/block.js new file mode 100644 index 00000000..8dbabdf3 --- /dev/null +++ b/test/integration/block.js @@ -0,0 +1,167 @@ +/* + Integration tests for the BITBOX. Only covers calls made to + rest.bitcoin.com. +*/ + +const chai = require("chai") +const assert = chai.assert +const BITBOXSDK = require("../../src/bitbox-sdk").default +const BITBOX = new BITBOXSDK() + +// Inspect utility used for debugging. +const util = require("util") +util.inspect.defaultOptions = { + showHidden: true, + colors: true, + depth: 3 +} + +describe(`#block`, () => { + describe(`#detailsByHeight`, () => { + it(`should GET block details for a given Height`, async () => { + const block = 500000 + + const result = await BITBOX.Block.detailsByHeight(block) + //console.log(`result: ${util.inspect(result)}`) + + assert.hasAllKeys(result, [ + "hash", + "size", + "height", + "version", + "merkleroot", + "tx", + "time", + "nonce", + "bits", + "difficulty", + "chainwork", + "confirmations", + "previousblockhash", + "nextblockhash", + "reward", + "isMainChain", + "poolInfo" + ]) + }) + + it(`should GET block details for an array of blocks`, async () => { + const blocks = [500000, 500001] + + const result = await BITBOX.Block.detailsByHeight(blocks) + //console.log(`result: ${util.inspect(result)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "hash", + "size", + "height", + "version", + "merkleroot", + "tx", + "time", + "nonce", + "bits", + "difficulty", + "chainwork", + "confirmations", + "previousblockhash", + "nextblockhash", + "reward", + "isMainChain", + "poolInfo" + ]) + }) + + it(`should throw an error for improper single input`, async () => { + try { + const addr = "asdf" + + await BITBOX.Block.detailsByHeight(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input must be a number or array of numbers.` + ) + } + }) + }) + + describe("#detailsByHash", () => { + it(`should GET block details for a given hash`, async () => { + const hash = + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + + const result = await BITBOX.Block.detailsByHash(hash) + //console.log(`result: ${util.inspect(result)}`) + + assert.hasAllKeys(result, [ + "hash", + "size", + "height", + "version", + "merkleroot", + "tx", + "time", + "nonce", + "bits", + "difficulty", + "chainwork", + "confirmations", + "previousblockhash", + "nextblockhash", + "reward", + "isMainChain", + "poolInfo" + ]) + }) + + it(`should GET block details for an array of hashes`, async () => { + const hash = [ + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + ] + + const result = await BITBOX.Block.detailsByHash(hash) + //console.log(`result: ${util.inspect(result)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "hash", + "size", + "height", + "version", + "merkleroot", + "tx", + "time", + "nonce", + "bits", + "difficulty", + "chainwork", + "confirmations", + "previousblockhash", + "nextblockhash", + "reward", + "isMainChain", + "poolInfo" + ]) + }) + + it(`should throw an error for improper single input`, async () => { + try { + const hash = 12345 + + await BITBOX.Block.detailsByHash(hash) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input must be a string or array of strings` + ) + } + }) + }) +}) diff --git a/test/integration/blockchain.js b/test/integration/blockchain.js index b72d4908..d5e84fe7 100644 --- a/test/integration/blockchain.js +++ b/test/integration/blockchain.js @@ -96,6 +96,20 @@ describe(`#blockchain`, () => { assert.include(err.error, `Transaction not in mempool`) } }) + + it(`should throw an error for improper single input`, async () => { + try { + const txid = 12345 + + await BITBOX.Blockchain.getMempoolEntry(txid) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.include( + err.message, + `Input must be a string or array of strings` + ) + } + }) }) describe(`#getTxOutProof`, () => { @@ -121,5 +135,63 @@ describe(`#blockchain`, () => { assert.isArray(result) assert.isString(result[0]) }) + + it(`should throw an error for improper single input`, async () => { + try { + const txid = 12345 + + await BITBOX.Blockchain.getTxOutProof(txid) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.include( + err.message, + `Input must be a string or array of strings` + ) + } + }) + }) + + describe(`#verifyTxOutProof`, () => { + const mockTxOutProof = + "0000002086a4a3161f9ba2174883ec0b93acceac3b2f37b36ed1f90000000000000000009cb02406d1094ecf3e0b4c0ca7c585125e721147c39daf6b48c90b512741e13a12333e5cb38705180f441d8c7100000008fee9b60f1edb57e5712839186277ed39e0a004a32be9096ee47472efde8eae62f789f9d7a9f59d0ea7093dea1e0c65ff0b953f1d8cf3d47f92e732ca0295f603c272d5f4a63509f7a887f2549d78af7444aa0ecbb4f66d9cbe13bc6a89f59e05a199df8325d490818ffefe6b6321d32d7496a68580459836c0183f89082fc1b491cc91b23ecdcaa4c347bf599a62904d61f1c15b400ebbd5c90149010c139d9c1e31b774b796977393a238080ab477e1d240d0c4f155d36f519668f49bae6bd8cd5b8e40522edf76faa09cca6188d83ff13af6967cc6a569d1a5e9aeb1fdb7f531ddd2d0cbb81879741d5f38166ac1932136264366a4065cc96a42e41f96294f02df01" + + it(`should verify a single proof`, async () => { + const result = await BITBOX.Blockchain.verifyTxOutProof(mockTxOutProof) + //console.log(`result: ${util.inspect(result)}`) + + assert.isArray(result) + assert.isString(result[0]) + assert.equal( + result[0], + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + ) + }) + + it(`should verify an array of proofs`, async () => { + const proofs = [mockTxOutProof, mockTxOutProof] + const result = await BITBOX.Blockchain.verifyTxOutProof(proofs) + //console.log(`result: ${util.inspect(result)}`) + + assert.isArray(result) + assert.isString(result[0]) + assert.equal( + result[0], + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + ) + }) + + it(`should throw an error for improper single input`, async () => { + try { + const txid = 12345 + + await BITBOX.Blockchain.verifyTxOutProof(txid) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.include( + err.message, + `Input must be a string or array of strings` + ) + } + }) }) }) From 2fa8d6e09b1dee1a2c4e68ec8d6936a4b367459a Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Wed, 16 Jan 2019 11:27:49 -0800 Subject: [PATCH 172/480] Bumping major version of the SDK --- index.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 493ffb3b..2bea4b82 100755 --- a/index.js +++ b/index.js @@ -18,7 +18,7 @@ const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") const cmd = require("node-cmd") -program.version("2.3.0 ", "-v, --version") +program.version("3.0.0 ", "-v, --version") program .command("new ") diff --git a/package.json b/package.json index eb1177d9..1db74d35 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "2.3.0", + "version": "3.0.0", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "contributors": [ From 404d56aa1a72f7b7a29141d4d58bbdeab888c2b9 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Thu, 17 Jan 2019 10:38:12 -0800 Subject: [PATCH 173/480] Updated tests for address, block, and blockchain --- lib/Address.js | 29 +---------- lib/Block.js | 47 +++++++++++++++--- lib/Blockchain.js | 79 +++++++++++++++++++++++++----- lib/bitbox-sdk.js | 1 + test/integration/address.js | 34 ++++++------- test/integration/block.js | 4 +- test/integration/blockchain.js | 15 +++--- test/integration/rawtransaction.js | 0 8 files changed, 134 insertions(+), 75 deletions(-) create mode 100644 test/integration/rawtransaction.js diff --git a/lib/Address.js b/lib/Address.js index 6e29456e..46d321be 100644 --- a/lib/Address.js +++ b/lib/Address.js @@ -411,21 +411,9 @@ var Address = function () { } throw new Error("Input address must be a string or array of strings."); - } catch (err) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - /* - if (typeof address !== "string") address = JSON.stringify(address) - try { - const response = await axios.get( - `${this.restURL}address/unconfirmed/${address}` - ) - return response.data } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error + if (error.response && error.response.data) throw error.response.data;else throw error; } - */ } }, { key: "transactions", @@ -451,22 +439,9 @@ var Address = function () { } throw new Error("Input address must be a string or array of strings."); - } catch (err) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - - /* - if (typeof address !== "string") address = JSON.stringify(address) - try { - const response = await axios.get( - `${this.restURL}address/transactions/${address}` - ) - return response.data } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error + if (error.response && error.response.data) throw error.response.data;else throw error; } - */ } }]); diff --git a/lib/Block.js b/lib/Block.js index 6028d8e4..121cc054 100644 --- a/lib/Block.js +++ b/lib/Block.js @@ -4,8 +4,6 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _axios = require("axios"); @@ -26,10 +24,27 @@ var Block = function () { _createClass(Block, [{ key: "detailsByHeight", value: async function detailsByHeight(id) { - console.log("typeof: " + (typeof id === "undefined" ? "undefined" : _typeof(id))); try { - var response = await _axios2.default.get(this.restURL + "block/detailsByHeight/" + id); - return response.data; + // Single block + if (typeof id === "number") { + var response = await _axios2.default.get(this.restURL + "block/detailsByHeight/" + id); + return response.data; + + // Array of blocks. + } else if (Array.isArray(id)) { + var options = { + method: "POST", + url: this.restURL + "block/detailsByHeight", + data: { + heights: id + } + }; + var _response = await (0, _axios2.default)(options); + + return _response.data; + } + + throw new Error("Input must be a number or array of numbers."); } catch (error) { if (error.response && error.response.data) throw error.response.data;else throw error; } @@ -38,8 +53,26 @@ var Block = function () { key: "detailsByHash", value: async function detailsByHash(hash) { try { - var response = await _axios2.default.get(this.restURL + "block/detailsByHash/" + hash); - return response.data; + // Single block + if (typeof hash === "string") { + var response = await _axios2.default.get(this.restURL + "block/detailsByHash/" + hash); + return response.data; + + // Array of hashes. + } else if (Array.isArray(hash)) { + var options = { + method: "POST", + url: this.restURL + "block/detailsByHash", + data: { + hashes: hash + } + }; + var _response2 = await (0, _axios2.default)(options); + + return _response2.data; + } + + throw new Error("Input must be a string or array of strings."); } catch (error) { if (error.response && error.response.data) throw error.response.data;else throw error; } diff --git a/lib/Blockchain.js b/lib/Blockchain.js index 73141435..f1a5d920 100644 --- a/lib/Blockchain.js +++ b/lib/Blockchain.js @@ -4,7 +4,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /* + TODO + - Add blockhash functionality back into getTxOutProof + */ var _axios = require("axios"); @@ -142,11 +145,27 @@ var Blockchain = function () { }, { key: "getMempoolEntry", value: async function getMempoolEntry(txid) { - if (typeof txid !== "string") txid = JSON.stringify(txid); + //if (typeof txid !== "string") txid = JSON.stringify(txid) try { - var response = await _axios2.default.get(this.restURL + "blockchain/getMempoolEntry/" + txid); - return response.data; + if (typeof txid === "string") { + var response = await _axios2.default.get(this.restURL + "blockchain/getMempoolEntry/" + txid); + + return response.data; + } else if (Array.isArray(txid)) { + var options = { + method: "POST", + url: this.restURL + "blockchain/getMempoolEntry", + data: { + txids: txid + } + }; + var _response = await (0, _axios2.default)(options); + + return _response.data; + } + + throw new Error("Input must be a string or array of strings."); } catch (error) { if (error.response && error.response.data) throw error.response.data;else throw error; } @@ -187,13 +206,31 @@ var Blockchain = function () { } }, { key: "getTxOutProof", - value: async function getTxOutProof(txids, blockhash) { - var path = this.restURL + "blockchain/getTxOutProof/" + txids; - if (blockhash) path = path + "?blockhash=" + blockhash; - + value: async function getTxOutProof(txids) { try { - var response = await _axios2.default.get(path); - return response.data; + // Single txid. + if (typeof txids === "string") { + var path = this.restURL + "blockchain/getTxOutProof/" + txids; + //if (blockhash) path = `${path}?blockhash=${blockhash}` + + var response = await _axios2.default.get(path); + return response.data; + + // Array of txids. + } else if (Array.isArray(txids)) { + var options = { + method: "POST", + url: this.restURL + "blockchain/getTxOutProof", + data: { + txids: txids + } + }; + var _response2 = await (0, _axios2.default)(options); + + return _response2.data; + } + + throw new Error("Input must be a string or array of strings."); } catch (error) { if (error.response && error.response.data) throw error.response.data;else throw error; } @@ -235,8 +272,26 @@ var Blockchain = function () { key: "verifyTxOutProof", value: async function verifyTxOutProof(proof) { try { - var response = await _axios2.default.get(this.restURL + "blockchain/verifyTxOutProof/proof"); - return response.data; + // Single block + if (typeof proof === "string") { + var response = await _axios2.default.get(this.restURL + "blockchain/verifyTxOutProof/" + proof); + return response.data; + + // Array of hashes. + } else if (Array.isArray(proof)) { + var options = { + method: "POST", + url: this.restURL + "blockchain/verifyTxOutProof", + data: { + proofs: proof + } + }; + var _response3 = await (0, _axios2.default)(options); + + return _response3.data; + } + + throw new Error("Input must be a string or array of strings."); } catch (error) { if (error.response && error.response.data) throw error.response.data;else throw error; } diff --git a/lib/bitbox-sdk.js b/lib/bitbox-sdk.js index 902b3538..cd4fdd6c 100644 --- a/lib/bitbox-sdk.js +++ b/lib/bitbox-sdk.js @@ -93,6 +93,7 @@ var BITBOXSDK = function BITBOXSDK(config) { _classCallCheck(this, BITBOXSDK); if (config && config.restURL && config.restURL !== "") this.restURL = config.restURL;else this.restURL = "https://rest.btctest.net/v2/"; + //else this.restURL = "http://localhost:3000/v2/" this.Address = new _Address2.default(this.restURL); this.BitcoinCash = new _BitcoinCash2.default(this.Address); diff --git a/test/integration/address.js b/test/integration/address.js index f8a82e89..25633f68 100644 --- a/test/integration/address.js +++ b/test/integration/address.js @@ -100,7 +100,7 @@ describe(`#address`, () => { const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" const result = await BITBOX.Address.utxo(addr) - //console.log(`result: ${util.inspect(result)}`) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.hasAllKeys(result, ["utxos", "legacyAddress", "cashAddress"]) assert.isArray(result.utxos) @@ -123,7 +123,7 @@ describe(`#address`, () => { ] const result = await BITBOX.Address.utxo(addr) - //console.log(`result: ${util.inspect(result)}`) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) assert.hasAllKeys(result[0], ["utxos", "legacyAddress", "cashAddress"]) @@ -158,10 +158,10 @@ describe(`#address`, () => { describe(`#unconfirmed`, () => { it(`should GET unconfirmed details on a single address`, async () => { - const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + const addr = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" const result = await BITBOX.Address.unconfirmed(addr) - //console.log(`result: ${util.inspect(result)}`) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.hasAllKeys(result, ["utxos", "legacyAddress", "cashAddress"]) assert.isArray(result.utxos) @@ -169,12 +169,12 @@ describe(`#address`, () => { it(`should GET unconfirmed details on multiple addresses`, async () => { const addr = [ - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", + "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" ] const result = await BITBOX.Address.unconfirmed(addr) - //console.log(`result: ${util.inspect(result)}`) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) assert.hasAllKeys(result[0], ["utxos", "legacyAddress", "cashAddress"]) @@ -199,10 +199,10 @@ describe(`#address`, () => { describe(`#transactions`, () => { it(`should GET transactions for a single address`, async () => { - const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + const addr = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" const result = await BITBOX.Address.transactions(addr) - //console.log(`result: ${util.inspect(result)}`) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.hasAllKeys(result, [ "txs", @@ -212,14 +212,12 @@ describe(`#address`, () => { "legacyAddress" ]) assert.isArray(result.txs) - assert.hasAllKeys(result.txs[0], [ + assert.hasAnyKeys(result.txs[0], [ "txid", "version", "locktime", "vin", "vout", - "blockhash", - "blockheight", "confirmations", "time", "blocktime", @@ -232,12 +230,12 @@ describe(`#address`, () => { it(`should get transactions on multiple addresses`, async () => { const addr = [ - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", + "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" ] const result = await BITBOX.Address.transactions(addr) - //console.log(`result: ${util.inspect(result)}`) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) assert.hasAllKeys(result[0], [ @@ -248,14 +246,12 @@ describe(`#address`, () => { "legacyAddress" ]) assert.isArray(result[0].txs) - assert.hasAllKeys(result[0].txs[0], [ + assert.hasAnyKeys(result[0].txs[0], [ "txid", "version", "locktime", "vin", "vout", - "blockhash", - "blockheight", "confirmations", "time", "blocktime", @@ -281,6 +277,4 @@ describe(`#address`, () => { } }) }) - - }) diff --git a/test/integration/block.js b/test/integration/block.js index 8dbabdf3..1f8718af 100644 --- a/test/integration/block.js +++ b/test/integration/block.js @@ -22,7 +22,7 @@ describe(`#block`, () => { const block = 500000 const result = await BITBOX.Block.detailsByHeight(block) - //console.log(`result: ${util.inspect(result)}`) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.hasAllKeys(result, [ "hash", @@ -49,7 +49,7 @@ describe(`#block`, () => { const blocks = [500000, 500001] const result = await BITBOX.Block.detailsByHeight(blocks) - //console.log(`result: ${util.inspect(result)}`) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) assert.hasAllKeys(result[0], [ diff --git a/test/integration/blockchain.js b/test/integration/blockchain.js index d5e84fe7..bc623785 100644 --- a/test/integration/blockchain.js +++ b/test/integration/blockchain.js @@ -11,7 +11,6 @@ const chai = require("chai") const assert = chai.assert const BITBOXSDK = require("../../src/bitbox-sdk").default const BITBOX = new BITBOXSDK() -const axios = require("axios") // Inspect utility used for debugging. const util = require("util") @@ -36,10 +35,11 @@ describe(`#blockchain`, () => { /* // To run this test, the txid must be unconfirmed. const txid = - "8be69f3ba6bde8152ae11789aa4ba292a4d2cea40bef3d7cb9f69adde150b9fd" + "defea04c38ee00cf73ad402984714ed22dc0dd99b2ae5cb50d791d94343ba79b" it(`should GET single mempool entry`, async () => { const result = await BITBOX.Blockchain.getMempoolEntry(txid) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.hasAnyKeys(result, [ "size", @@ -61,6 +61,7 @@ describe(`#blockchain`, () => { it(`should get an array of mempool entries`, async () => { const result = await BITBOX.Blockchain.getMempoolEntry([txid, txid]) + console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) assert.hasAnyKeys(result[0], [ @@ -118,7 +119,7 @@ describe(`#blockchain`, () => { "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" const result = await BITBOX.Blockchain.getTxOutProof(txid) - //console.log(`result: ${util.inspect(result)}`) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isString(result) }) @@ -126,11 +127,11 @@ describe(`#blockchain`, () => { it(`should get an array of tx out proofs`, async () => { const txid = [ "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7", - "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" ] const result = await BITBOX.Blockchain.getTxOutProof(txid) - //console.log(`result: ${util.inspect(result)}`) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) assert.isString(result[0]) @@ -157,7 +158,7 @@ describe(`#blockchain`, () => { it(`should verify a single proof`, async () => { const result = await BITBOX.Blockchain.verifyTxOutProof(mockTxOutProof) - //console.log(`result: ${util.inspect(result)}`) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) assert.isString(result[0]) @@ -170,7 +171,7 @@ describe(`#blockchain`, () => { it(`should verify an array of proofs`, async () => { const proofs = [mockTxOutProof, mockTxOutProof] const result = await BITBOX.Blockchain.verifyTxOutProof(proofs) - //console.log(`result: ${util.inspect(result)}`) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) assert.isString(result[0]) diff --git a/test/integration/rawtransaction.js b/test/integration/rawtransaction.js new file mode 100644 index 00000000..e69de29b From b8341075b844d65639c77c54ae6307f5a67177f0 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Thu, 17 Jan 2019 10:51:46 -0800 Subject: [PATCH 174/480] Added integration tests for decodeRawTransaction --- src/RawTransactions.js | 29 ++- test/integration/address.js | 280 ----------------------------- test/integration/block.js | 167 ----------------- test/integration/blockchain.js | 198 -------------------- test/integration/rawtransaction.js | 81 +++++++++ 5 files changed, 105 insertions(+), 650 deletions(-) delete mode 100644 test/integration/address.js delete mode 100644 test/integration/block.js delete mode 100644 test/integration/blockchain.js diff --git a/src/RawTransactions.js b/src/RawTransactions.js index 4e952099..7aa7d29b 100644 --- a/src/RawTransactions.js +++ b/src/RawTransactions.js @@ -5,13 +5,32 @@ class RawTransactions { } async decodeRawTransaction(hex) { - if (typeof hex !== "string") hex = JSON.stringify(hex) + //if (typeof hex !== "string") hex = JSON.stringify(hex) try { - const response = await axios.get( - `${this.restURL}rawtransactions/decodeRawTransaction/${hex}` - ) - return response.data + // Single hex + if(typeof hex === "string") { + const response = await axios.get( + `${this.restURL}rawtransactions/decodeRawTransaction/${hex}` + ) + + return response.data + + // Array of hexes + } else if(Array.isArray(hex)) { + const options = { + method: "POST", + url: `${this.restURL}rawtransactions/decodeRawTransaction`, + data: { + hexes: hex + } + } + const response = await axios(options) + + return response.data + } + + throw new Error(`Input must be a string or array of strings.`) } catch (error) { if (error.response && error.response.data) throw error.response.data else throw error diff --git a/test/integration/address.js b/test/integration/address.js deleted file mode 100644 index 25633f68..00000000 --- a/test/integration/address.js +++ /dev/null @@ -1,280 +0,0 @@ -/* - Integration tests for the BITBOX.Address library. Only covers calls made to - rest.bitcoin.com. - - TODO: - -Address.unconfirmed: - --Retrieves transient 0-conf UTXOs. Needs an E2E test to be effectively tested. -*/ - -const chai = require("chai") -const assert = chai.assert -const BITBOXSDK = require("../../src/bitbox-sdk").default -const BITBOX = new BITBOXSDK() -//const axios = require("axios") - -// Inspect utility used for debugging. -const util = require("util") -util.inspect.defaultOptions = { - showHidden: true, - colors: true, - depth: 3 -} - -describe(`#address`, () => { - describe(`#details`, () => { - it(`should GET address details for a single address`, async () => { - const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - - const result = await BITBOX.Address.details(addr) - //console.log(`result: ${util.inspect(result)}`) - - assert.hasAllKeys(result, [ - "balance", - "balanceSat", - "totalReceived", - "totalReceivedSat", - "totalSent", - "totalSentSat", - "unconfirmedBalance", - "unconfirmedBalanceSat", - "unconfirmedTxApperances", - "txApperances", - "transactions", - "legacyAddress", - "cashAddress", - "currentPage", - "pagesTotal" - ]) - assert.isArray(result.transactions) - }) - - it(`should GET address details for an array of addresses`, async () => { - const addr = [ - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", - "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" - ] - - const result = await BITBOX.Address.details(addr) - //console.log(`result: ${util.inspect(result)}`) - - assert.isArray(result) - assert.hasAllKeys(result[0], [ - "balance", - "balanceSat", - "totalReceived", - "totalReceivedSat", - "totalSent", - "totalSentSat", - "unconfirmedBalance", - "unconfirmedBalanceSat", - "unconfirmedTxApperances", - "txApperances", - "transactions", - "legacyAddress", - "cashAddress", - "currentPage", - "pagesTotal" - ]) - assert.isArray(result[0].transactions) - }) - - it(`should throw an error for improper input`, async () => { - try { - const addr = 12345 - - await BITBOX.Address.details(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input address must be a string or array of strings` - ) - } - }) - }) - - describe(`#utxo`, () => { - it(`should GET utxos for a single address`, async () => { - const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - - const result = await BITBOX.Address.utxo(addr) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.hasAllKeys(result, ["utxos", "legacyAddress", "cashAddress"]) - assert.isArray(result.utxos) - assert.hasAllKeys(result.utxos[0], [ - "address", - "txid", - "vout", - "scriptPubKey", - "amount", - "satoshis", - "height", - "confirmations" - ]) - }) - - it(`should GET utxo details for an array of addresses`, async () => { - const addr = [ - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", - "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" - ] - - const result = await BITBOX.Address.utxo(addr) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.isArray(result) - assert.hasAllKeys(result[0], ["utxos", "legacyAddress", "cashAddress"]) - assert.isArray(result[0].utxos) - assert.hasAllKeys(result[0].utxos[0], [ - "address", - "txid", - "vout", - "scriptPubKey", - "amount", - "satoshis", - "height", - "confirmations" - ]) - }) - - it(`should throw an error for improper input`, async () => { - try { - const addr = 12345 - - await BITBOX.Address.utxo(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input address must be a string or array of strings` - ) - } - }) - }) - - describe(`#unconfirmed`, () => { - it(`should GET unconfirmed details on a single address`, async () => { - const addr = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" - - const result = await BITBOX.Address.unconfirmed(addr) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.hasAllKeys(result, ["utxos", "legacyAddress", "cashAddress"]) - assert.isArray(result.utxos) - }) - - it(`should GET unconfirmed details on multiple addresses`, async () => { - const addr = [ - "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", - "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" - ] - - const result = await BITBOX.Address.unconfirmed(addr) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.isArray(result) - assert.hasAllKeys(result[0], ["utxos", "legacyAddress", "cashAddress"]) - assert.isArray(result[0].utxos) - }) - - it(`should throw an error for improper input`, async () => { - try { - const addr = 12345 - - await BITBOX.Address.unconfirmed(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input address must be a string or array of strings` - ) - } - }) - }) - - describe(`#transactions`, () => { - it(`should GET transactions for a single address`, async () => { - const addr = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" - - const result = await BITBOX.Address.transactions(addr) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.hasAllKeys(result, [ - "txs", - "pagesTotal", - "cashAddress", - "currentPage", - "legacyAddress" - ]) - assert.isArray(result.txs) - assert.hasAnyKeys(result.txs[0], [ - "txid", - "version", - "locktime", - "vin", - "vout", - "confirmations", - "time", - "blocktime", - "valueOut", - "size", - "valueIn", - "fees" - ]) - }) - - it(`should get transactions on multiple addresses`, async () => { - const addr = [ - "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", - "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" - ] - - const result = await BITBOX.Address.transactions(addr) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.isArray(result) - assert.hasAllKeys(result[0], [ - "txs", - "pagesTotal", - "cashAddress", - "currentPage", - "legacyAddress" - ]) - assert.isArray(result[0].txs) - assert.hasAnyKeys(result[0].txs[0], [ - "txid", - "version", - "locktime", - "vin", - "vout", - "confirmations", - "time", - "blocktime", - "valueOut", - "size", - "valueIn", - "fees" - ]) - }) - - it(`should throw an error for improper input`, async () => { - try { - const addr = 12345 - - await BITBOX.Address.transactions(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input address must be a string or array of strings` - ) - } - }) - }) -}) diff --git a/test/integration/block.js b/test/integration/block.js deleted file mode 100644 index 1f8718af..00000000 --- a/test/integration/block.js +++ /dev/null @@ -1,167 +0,0 @@ -/* - Integration tests for the BITBOX. Only covers calls made to - rest.bitcoin.com. -*/ - -const chai = require("chai") -const assert = chai.assert -const BITBOXSDK = require("../../src/bitbox-sdk").default -const BITBOX = new BITBOXSDK() - -// Inspect utility used for debugging. -const util = require("util") -util.inspect.defaultOptions = { - showHidden: true, - colors: true, - depth: 3 -} - -describe(`#block`, () => { - describe(`#detailsByHeight`, () => { - it(`should GET block details for a given Height`, async () => { - const block = 500000 - - const result = await BITBOX.Block.detailsByHeight(block) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.hasAllKeys(result, [ - "hash", - "size", - "height", - "version", - "merkleroot", - "tx", - "time", - "nonce", - "bits", - "difficulty", - "chainwork", - "confirmations", - "previousblockhash", - "nextblockhash", - "reward", - "isMainChain", - "poolInfo" - ]) - }) - - it(`should GET block details for an array of blocks`, async () => { - const blocks = [500000, 500001] - - const result = await BITBOX.Block.detailsByHeight(blocks) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.isArray(result) - assert.hasAllKeys(result[0], [ - "hash", - "size", - "height", - "version", - "merkleroot", - "tx", - "time", - "nonce", - "bits", - "difficulty", - "chainwork", - "confirmations", - "previousblockhash", - "nextblockhash", - "reward", - "isMainChain", - "poolInfo" - ]) - }) - - it(`should throw an error for improper single input`, async () => { - try { - const addr = "asdf" - - await BITBOX.Block.detailsByHeight(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input must be a number or array of numbers.` - ) - } - }) - }) - - describe("#detailsByHash", () => { - it(`should GET block details for a given hash`, async () => { - const hash = - "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - - const result = await BITBOX.Block.detailsByHash(hash) - //console.log(`result: ${util.inspect(result)}`) - - assert.hasAllKeys(result, [ - "hash", - "size", - "height", - "version", - "merkleroot", - "tx", - "time", - "nonce", - "bits", - "difficulty", - "chainwork", - "confirmations", - "previousblockhash", - "nextblockhash", - "reward", - "isMainChain", - "poolInfo" - ]) - }) - - it(`should GET block details for an array of hashes`, async () => { - const hash = [ - "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", - "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - ] - - const result = await BITBOX.Block.detailsByHash(hash) - //console.log(`result: ${util.inspect(result)}`) - - assert.isArray(result) - assert.hasAllKeys(result[0], [ - "hash", - "size", - "height", - "version", - "merkleroot", - "tx", - "time", - "nonce", - "bits", - "difficulty", - "chainwork", - "confirmations", - "previousblockhash", - "nextblockhash", - "reward", - "isMainChain", - "poolInfo" - ]) - }) - - it(`should throw an error for improper single input`, async () => { - try { - const hash = 12345 - - await BITBOX.Block.detailsByHash(hash) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input must be a string or array of strings` - ) - } - }) - }) -}) diff --git a/test/integration/blockchain.js b/test/integration/blockchain.js deleted file mode 100644 index bc623785..00000000 --- a/test/integration/blockchain.js +++ /dev/null @@ -1,198 +0,0 @@ -/* - Integration tests for the BITBOX. Only covers calls made to - rest.bitcoin.com. - - TODO - - getMempoolEntry() only works on TXs in the mempool, so it needs to be part - of an e2e test to be properly tested. -*/ - -const chai = require("chai") -const assert = chai.assert -const BITBOXSDK = require("../../src/bitbox-sdk").default -const BITBOX = new BITBOXSDK() - -// Inspect utility used for debugging. -const util = require("util") -util.inspect.defaultOptions = { - showHidden: true, - colors: true, - depth: 3 -} - -describe(`#blockchain`, () => { - describe(`#getBestBlockHash`, () => { - it(`should GET best block hash`, async () => { - const result = await BITBOX.Blockchain.getBestBlockHash() - //console.log(`result: ${util.inspect(result)}`) - - assert.isString(result) - assert.equal(result.length, 64, "Specific hash length") - }) - }) - - describe("#getMempoolEntry", () => { - /* - // To run this test, the txid must be unconfirmed. - const txid = - "defea04c38ee00cf73ad402984714ed22dc0dd99b2ae5cb50d791d94343ba79b" - - it(`should GET single mempool entry`, async () => { - const result = await BITBOX.Blockchain.getMempoolEntry(txid) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.hasAnyKeys(result, [ - "size", - "fee", - "modifiedfee", - "time", - "height", - "startingpriority", - "currentpriority", - "descendantcount", - "descendantsize", - "descendantfees", - "ancestorcount", - "ancestorsize", - "ancestorfees", - "depends" - ]) - }) - - it(`should get an array of mempool entries`, async () => { - const result = await BITBOX.Blockchain.getMempoolEntry([txid, txid]) - console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.isArray(result) - assert.hasAnyKeys(result[0], [ - "size", - "fee", - "modifiedfee", - "time", - "height", - "startingpriority", - "currentpriority", - "descendantcount", - "descendantsize", - "descendantfees", - "ancestorcount", - "ancestorsize", - "ancestorfees", - "depends" - ]) - }) - */ - - it(`should throw an error if txid is not in mempool`, async () => { - try { - const txid = - "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" - - await BITBOX.Blockchain.getMempoolEntry(txid) - - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: ${util.inspect(err)}`) - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, `Transaction not in mempool`) - } - }) - - it(`should throw an error for improper single input`, async () => { - try { - const txid = 12345 - - await BITBOX.Blockchain.getMempoolEntry(txid) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.include( - err.message, - `Input must be a string or array of strings` - ) - } - }) - }) - - describe(`#getTxOutProof`, () => { - it(`should get single tx out proof`, async () => { - const txid = - "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" - - const result = await BITBOX.Blockchain.getTxOutProof(txid) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.isString(result) - }) - - it(`should get an array of tx out proofs`, async () => { - const txid = [ - "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7", - "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" - ] - - const result = await BITBOX.Blockchain.getTxOutProof(txid) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.isArray(result) - assert.isString(result[0]) - }) - - it(`should throw an error for improper single input`, async () => { - try { - const txid = 12345 - - await BITBOX.Blockchain.getTxOutProof(txid) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.include( - err.message, - `Input must be a string or array of strings` - ) - } - }) - }) - - describe(`#verifyTxOutProof`, () => { - const mockTxOutProof = - "0000002086a4a3161f9ba2174883ec0b93acceac3b2f37b36ed1f90000000000000000009cb02406d1094ecf3e0b4c0ca7c585125e721147c39daf6b48c90b512741e13a12333e5cb38705180f441d8c7100000008fee9b60f1edb57e5712839186277ed39e0a004a32be9096ee47472efde8eae62f789f9d7a9f59d0ea7093dea1e0c65ff0b953f1d8cf3d47f92e732ca0295f603c272d5f4a63509f7a887f2549d78af7444aa0ecbb4f66d9cbe13bc6a89f59e05a199df8325d490818ffefe6b6321d32d7496a68580459836c0183f89082fc1b491cc91b23ecdcaa4c347bf599a62904d61f1c15b400ebbd5c90149010c139d9c1e31b774b796977393a238080ab477e1d240d0c4f155d36f519668f49bae6bd8cd5b8e40522edf76faa09cca6188d83ff13af6967cc6a569d1a5e9aeb1fdb7f531ddd2d0cbb81879741d5f38166ac1932136264366a4065cc96a42e41f96294f02df01" - - it(`should verify a single proof`, async () => { - const result = await BITBOX.Blockchain.verifyTxOutProof(mockTxOutProof) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.isArray(result) - assert.isString(result[0]) - assert.equal( - result[0], - "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" - ) - }) - - it(`should verify an array of proofs`, async () => { - const proofs = [mockTxOutProof, mockTxOutProof] - const result = await BITBOX.Blockchain.verifyTxOutProof(proofs) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.isArray(result) - assert.isString(result[0]) - assert.equal( - result[0], - "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" - ) - }) - - it(`should throw an error for improper single input`, async () => { - try { - const txid = 12345 - - await BITBOX.Blockchain.verifyTxOutProof(txid) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.include( - err.message, - `Input must be a string or array of strings` - ) - } - }) - }) -}) diff --git a/test/integration/rawtransaction.js b/test/integration/rawtransaction.js index e69de29b..b3009c30 100644 --- a/test/integration/rawtransaction.js +++ b/test/integration/rawtransaction.js @@ -0,0 +1,81 @@ +/* + Integration tests for the BITBOX. Only covers calls made to + rest.bitcoin.com. + + TODO +*/ + +const chai = require("chai") +const assert = chai.assert +const BITBOXSDK = require("../../src/bitbox-sdk").default +const BITBOX = new BITBOXSDK() + +// Inspect utility used for debugging. +const util = require("util") +util.inspect.defaultOptions = { + showHidden: true, + colors: true, + depth: 3 +} + +describe("#rawtransaction", () => { + describe("#decodeRawTransaction", () => { + it("should decode tx for a single hex", async () => { + const hex = + "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" + + const result = await BITBOX.RawTransactions.decodeRawTransaction(hex) + //console.log(`result ${JSON.stringify(result, null, 2)}`) + + assert.hasAnyKeys(result, [ + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout" + ]) + assert.isArray(result.vin) + assert.isArray(result.vout) + }) + + it("should decode an array of tx hexes", async () => { + const hexes = [ + "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000", + "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" + ] + + const result = await BITBOX.RawTransactions.decodeRawTransaction(hexes) + //console.log(`result ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAnyKeys(result[0], [ + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout" + ]) + assert.isArray(result[0].vin) + assert.isArray(result[0].vout) + }) + + it(`should throw an error for improper single input`, async () => { + try { + const addr = 12345 + + await BITBOX.RawTransactions.decodeRawTransaction(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input must be a string or array of strings.` + ) + } + }) + }) +}) From 3b31c309a5413a094c7f7d9803161ee9bfd1293f Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Thu, 17 Jan 2019 12:37:47 -0800 Subject: [PATCH 175/480] Refactored getRawTransactions. Added integration tests --- src/RawTransactions.js | 39 ++-- test/integration/address.js | 280 +++++++++++++++++++++++++++++ test/integration/block.js | 167 +++++++++++++++++ test/integration/blockchain.js | 198 ++++++++++++++++++++ test/integration/rawtransaction.js | 94 ++++++++++ 5 files changed, 765 insertions(+), 13 deletions(-) create mode 100644 test/integration/address.js create mode 100644 test/integration/block.js create mode 100644 test/integration/blockchain.js diff --git a/src/RawTransactions.js b/src/RawTransactions.js index 7aa7d29b..4ab24741 100644 --- a/src/RawTransactions.js +++ b/src/RawTransactions.js @@ -5,19 +5,17 @@ class RawTransactions { } async decodeRawTransaction(hex) { - //if (typeof hex !== "string") hex = JSON.stringify(hex) - try { // Single hex - if(typeof hex === "string") { + if (typeof hex === "string") { const response = await axios.get( `${this.restURL}rawtransactions/decodeRawTransaction/${hex}` ) return response.data - // Array of hexes - } else if(Array.isArray(hex)) { + // Array of hexes + } else if (Array.isArray(hex)) { const options = { method: "POST", url: `${this.restURL}rawtransactions/decodeRawTransaction`, @@ -52,15 +50,30 @@ class RawTransactions { } async getRawTransaction(txid, verbose = false) { - if (typeof txid !== "string") txid = JSON.stringify(txid) - try { - const response = await axios.get( - `${ - this.restURL - }rawtransactions/getRawTransaction/${txid}?verbose=${verbose}` - ) - return response.data + if (typeof txid === "string") { + const response = await axios.get( + `${ + this.restURL + }rawtransactions/getRawTransaction/${txid}?verbose=${verbose}` + ) + + return response.data + } else if (Array.isArray(txid)) { + const options = { + method: "POST", + url: `${this.restURL}rawtransactions/getRawTransaction`, + data: { + txids: txid, + verbose: verbose + } + } + const response = await axios(options) + + return response.data + } + + throw new Error(`Input must be a string or array of strings.`) } catch (error) { if (error.response && error.response.data) throw error.response.data else throw error diff --git a/test/integration/address.js b/test/integration/address.js new file mode 100644 index 00000000..25633f68 --- /dev/null +++ b/test/integration/address.js @@ -0,0 +1,280 @@ +/* + Integration tests for the BITBOX.Address library. Only covers calls made to + rest.bitcoin.com. + + TODO: + -Address.unconfirmed: + --Retrieves transient 0-conf UTXOs. Needs an E2E test to be effectively tested. +*/ + +const chai = require("chai") +const assert = chai.assert +const BITBOXSDK = require("../../src/bitbox-sdk").default +const BITBOX = new BITBOXSDK() +//const axios = require("axios") + +// Inspect utility used for debugging. +const util = require("util") +util.inspect.defaultOptions = { + showHidden: true, + colors: true, + depth: 3 +} + +describe(`#address`, () => { + describe(`#details`, () => { + it(`should GET address details for a single address`, async () => { + const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + + const result = await BITBOX.Address.details(addr) + //console.log(`result: ${util.inspect(result)}`) + + assert.hasAllKeys(result, [ + "balance", + "balanceSat", + "totalReceived", + "totalReceivedSat", + "totalSent", + "totalSentSat", + "unconfirmedBalance", + "unconfirmedBalanceSat", + "unconfirmedTxApperances", + "txApperances", + "transactions", + "legacyAddress", + "cashAddress", + "currentPage", + "pagesTotal" + ]) + assert.isArray(result.transactions) + }) + + it(`should GET address details for an array of addresses`, async () => { + const addr = [ + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" + ] + + const result = await BITBOX.Address.details(addr) + //console.log(`result: ${util.inspect(result)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "balance", + "balanceSat", + "totalReceived", + "totalReceivedSat", + "totalSent", + "totalSentSat", + "unconfirmedBalance", + "unconfirmedBalanceSat", + "unconfirmedTxApperances", + "txApperances", + "transactions", + "legacyAddress", + "cashAddress", + "currentPage", + "pagesTotal" + ]) + assert.isArray(result[0].transactions) + }) + + it(`should throw an error for improper input`, async () => { + try { + const addr = 12345 + + await BITBOX.Address.details(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } + }) + }) + + describe(`#utxo`, () => { + it(`should GET utxos for a single address`, async () => { + const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + + const result = await BITBOX.Address.utxo(addr) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAllKeys(result, ["utxos", "legacyAddress", "cashAddress"]) + assert.isArray(result.utxos) + assert.hasAllKeys(result.utxos[0], [ + "address", + "txid", + "vout", + "scriptPubKey", + "amount", + "satoshis", + "height", + "confirmations" + ]) + }) + + it(`should GET utxo details for an array of addresses`, async () => { + const addr = [ + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" + ] + + const result = await BITBOX.Address.utxo(addr) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], ["utxos", "legacyAddress", "cashAddress"]) + assert.isArray(result[0].utxos) + assert.hasAllKeys(result[0].utxos[0], [ + "address", + "txid", + "vout", + "scriptPubKey", + "amount", + "satoshis", + "height", + "confirmations" + ]) + }) + + it(`should throw an error for improper input`, async () => { + try { + const addr = 12345 + + await BITBOX.Address.utxo(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } + }) + }) + + describe(`#unconfirmed`, () => { + it(`should GET unconfirmed details on a single address`, async () => { + const addr = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" + + const result = await BITBOX.Address.unconfirmed(addr) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAllKeys(result, ["utxos", "legacyAddress", "cashAddress"]) + assert.isArray(result.utxos) + }) + + it(`should GET unconfirmed details on multiple addresses`, async () => { + const addr = [ + "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", + "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" + ] + + const result = await BITBOX.Address.unconfirmed(addr) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], ["utxos", "legacyAddress", "cashAddress"]) + assert.isArray(result[0].utxos) + }) + + it(`should throw an error for improper input`, async () => { + try { + const addr = 12345 + + await BITBOX.Address.unconfirmed(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } + }) + }) + + describe(`#transactions`, () => { + it(`should GET transactions for a single address`, async () => { + const addr = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" + + const result = await BITBOX.Address.transactions(addr) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAllKeys(result, [ + "txs", + "pagesTotal", + "cashAddress", + "currentPage", + "legacyAddress" + ]) + assert.isArray(result.txs) + assert.hasAnyKeys(result.txs[0], [ + "txid", + "version", + "locktime", + "vin", + "vout", + "confirmations", + "time", + "blocktime", + "valueOut", + "size", + "valueIn", + "fees" + ]) + }) + + it(`should get transactions on multiple addresses`, async () => { + const addr = [ + "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", + "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" + ] + + const result = await BITBOX.Address.transactions(addr) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "txs", + "pagesTotal", + "cashAddress", + "currentPage", + "legacyAddress" + ]) + assert.isArray(result[0].txs) + assert.hasAnyKeys(result[0].txs[0], [ + "txid", + "version", + "locktime", + "vin", + "vout", + "confirmations", + "time", + "blocktime", + "valueOut", + "size", + "valueIn", + "fees" + ]) + }) + + it(`should throw an error for improper input`, async () => { + try { + const addr = 12345 + + await BITBOX.Address.transactions(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } + }) + }) +}) diff --git a/test/integration/block.js b/test/integration/block.js new file mode 100644 index 00000000..1f8718af --- /dev/null +++ b/test/integration/block.js @@ -0,0 +1,167 @@ +/* + Integration tests for the BITBOX. Only covers calls made to + rest.bitcoin.com. +*/ + +const chai = require("chai") +const assert = chai.assert +const BITBOXSDK = require("../../src/bitbox-sdk").default +const BITBOX = new BITBOXSDK() + +// Inspect utility used for debugging. +const util = require("util") +util.inspect.defaultOptions = { + showHidden: true, + colors: true, + depth: 3 +} + +describe(`#block`, () => { + describe(`#detailsByHeight`, () => { + it(`should GET block details for a given Height`, async () => { + const block = 500000 + + const result = await BITBOX.Block.detailsByHeight(block) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAllKeys(result, [ + "hash", + "size", + "height", + "version", + "merkleroot", + "tx", + "time", + "nonce", + "bits", + "difficulty", + "chainwork", + "confirmations", + "previousblockhash", + "nextblockhash", + "reward", + "isMainChain", + "poolInfo" + ]) + }) + + it(`should GET block details for an array of blocks`, async () => { + const blocks = [500000, 500001] + + const result = await BITBOX.Block.detailsByHeight(blocks) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "hash", + "size", + "height", + "version", + "merkleroot", + "tx", + "time", + "nonce", + "bits", + "difficulty", + "chainwork", + "confirmations", + "previousblockhash", + "nextblockhash", + "reward", + "isMainChain", + "poolInfo" + ]) + }) + + it(`should throw an error for improper single input`, async () => { + try { + const addr = "asdf" + + await BITBOX.Block.detailsByHeight(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input must be a number or array of numbers.` + ) + } + }) + }) + + describe("#detailsByHash", () => { + it(`should GET block details for a given hash`, async () => { + const hash = + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + + const result = await BITBOX.Block.detailsByHash(hash) + //console.log(`result: ${util.inspect(result)}`) + + assert.hasAllKeys(result, [ + "hash", + "size", + "height", + "version", + "merkleroot", + "tx", + "time", + "nonce", + "bits", + "difficulty", + "chainwork", + "confirmations", + "previousblockhash", + "nextblockhash", + "reward", + "isMainChain", + "poolInfo" + ]) + }) + + it(`should GET block details for an array of hashes`, async () => { + const hash = [ + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + ] + + const result = await BITBOX.Block.detailsByHash(hash) + //console.log(`result: ${util.inspect(result)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "hash", + "size", + "height", + "version", + "merkleroot", + "tx", + "time", + "nonce", + "bits", + "difficulty", + "chainwork", + "confirmations", + "previousblockhash", + "nextblockhash", + "reward", + "isMainChain", + "poolInfo" + ]) + }) + + it(`should throw an error for improper single input`, async () => { + try { + const hash = 12345 + + await BITBOX.Block.detailsByHash(hash) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input must be a string or array of strings` + ) + } + }) + }) +}) diff --git a/test/integration/blockchain.js b/test/integration/blockchain.js new file mode 100644 index 00000000..bc623785 --- /dev/null +++ b/test/integration/blockchain.js @@ -0,0 +1,198 @@ +/* + Integration tests for the BITBOX. Only covers calls made to + rest.bitcoin.com. + + TODO + - getMempoolEntry() only works on TXs in the mempool, so it needs to be part + of an e2e test to be properly tested. +*/ + +const chai = require("chai") +const assert = chai.assert +const BITBOXSDK = require("../../src/bitbox-sdk").default +const BITBOX = new BITBOXSDK() + +// Inspect utility used for debugging. +const util = require("util") +util.inspect.defaultOptions = { + showHidden: true, + colors: true, + depth: 3 +} + +describe(`#blockchain`, () => { + describe(`#getBestBlockHash`, () => { + it(`should GET best block hash`, async () => { + const result = await BITBOX.Blockchain.getBestBlockHash() + //console.log(`result: ${util.inspect(result)}`) + + assert.isString(result) + assert.equal(result.length, 64, "Specific hash length") + }) + }) + + describe("#getMempoolEntry", () => { + /* + // To run this test, the txid must be unconfirmed. + const txid = + "defea04c38ee00cf73ad402984714ed22dc0dd99b2ae5cb50d791d94343ba79b" + + it(`should GET single mempool entry`, async () => { + const result = await BITBOX.Blockchain.getMempoolEntry(txid) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAnyKeys(result, [ + "size", + "fee", + "modifiedfee", + "time", + "height", + "startingpriority", + "currentpriority", + "descendantcount", + "descendantsize", + "descendantfees", + "ancestorcount", + "ancestorsize", + "ancestorfees", + "depends" + ]) + }) + + it(`should get an array of mempool entries`, async () => { + const result = await BITBOX.Blockchain.getMempoolEntry([txid, txid]) + console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAnyKeys(result[0], [ + "size", + "fee", + "modifiedfee", + "time", + "height", + "startingpriority", + "currentpriority", + "descendantcount", + "descendantsize", + "descendantfees", + "ancestorcount", + "ancestorsize", + "ancestorfees", + "depends" + ]) + }) + */ + + it(`should throw an error if txid is not in mempool`, async () => { + try { + const txid = + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + + await BITBOX.Blockchain.getMempoolEntry(txid) + + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: ${util.inspect(err)}`) + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, `Transaction not in mempool`) + } + }) + + it(`should throw an error for improper single input`, async () => { + try { + const txid = 12345 + + await BITBOX.Blockchain.getMempoolEntry(txid) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.include( + err.message, + `Input must be a string or array of strings` + ) + } + }) + }) + + describe(`#getTxOutProof`, () => { + it(`should get single tx out proof`, async () => { + const txid = + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + + const result = await BITBOX.Blockchain.getTxOutProof(txid) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isString(result) + }) + + it(`should get an array of tx out proofs`, async () => { + const txid = [ + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7", + "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" + ] + + const result = await BITBOX.Blockchain.getTxOutProof(txid) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.isString(result[0]) + }) + + it(`should throw an error for improper single input`, async () => { + try { + const txid = 12345 + + await BITBOX.Blockchain.getTxOutProof(txid) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.include( + err.message, + `Input must be a string or array of strings` + ) + } + }) + }) + + describe(`#verifyTxOutProof`, () => { + const mockTxOutProof = + "0000002086a4a3161f9ba2174883ec0b93acceac3b2f37b36ed1f90000000000000000009cb02406d1094ecf3e0b4c0ca7c585125e721147c39daf6b48c90b512741e13a12333e5cb38705180f441d8c7100000008fee9b60f1edb57e5712839186277ed39e0a004a32be9096ee47472efde8eae62f789f9d7a9f59d0ea7093dea1e0c65ff0b953f1d8cf3d47f92e732ca0295f603c272d5f4a63509f7a887f2549d78af7444aa0ecbb4f66d9cbe13bc6a89f59e05a199df8325d490818ffefe6b6321d32d7496a68580459836c0183f89082fc1b491cc91b23ecdcaa4c347bf599a62904d61f1c15b400ebbd5c90149010c139d9c1e31b774b796977393a238080ab477e1d240d0c4f155d36f519668f49bae6bd8cd5b8e40522edf76faa09cca6188d83ff13af6967cc6a569d1a5e9aeb1fdb7f531ddd2d0cbb81879741d5f38166ac1932136264366a4065cc96a42e41f96294f02df01" + + it(`should verify a single proof`, async () => { + const result = await BITBOX.Blockchain.verifyTxOutProof(mockTxOutProof) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.isString(result[0]) + assert.equal( + result[0], + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + ) + }) + + it(`should verify an array of proofs`, async () => { + const proofs = [mockTxOutProof, mockTxOutProof] + const result = await BITBOX.Blockchain.verifyTxOutProof(proofs) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.isString(result[0]) + assert.equal( + result[0], + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + ) + }) + + it(`should throw an error for improper single input`, async () => { + try { + const txid = 12345 + + await BITBOX.Blockchain.verifyTxOutProof(txid) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.include( + err.message, + `Input must be a string or array of strings` + ) + } + }) + }) +}) diff --git a/test/integration/rawtransaction.js b/test/integration/rawtransaction.js index b3009c30..c44ae005 100644 --- a/test/integration/rawtransaction.js +++ b/test/integration/rawtransaction.js @@ -78,4 +78,98 @@ describe("#rawtransaction", () => { } }) }) + + describe("#getRawTransaction", () => { + it("should decode a single txid, with concise output", async () => { + const txid = + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" + const verbose = false + + const result = await BITBOX.RawTransactions.getRawTransaction( + txid, + verbose + ) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isString(result) + }) + + it("should decode a single txid, with verbose output", async () => { + const txid = + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" + const verbose = true + + const result = await BITBOX.RawTransactions.getRawTransaction( + txid, + verbose + ) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAnyKeys(result, [ + "hex", + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout", + "blockhash", + "confirmations", + "time", + "blocktime" + ]) + assert.isArray(result.vin) + assert.isArray(result.vout) + }) + + it("should decode an array of txids, with a concise output", async () => { + const txid = [ + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", + "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" + ] + const verbose = false + + const result = await BITBOX.RawTransactions.getRawTransaction( + txid, + verbose + ) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.isString(result[0]) + }) + + it("should decode an array of txids, with a verbose output", async () => { + const txid = [ + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", + "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" + ] + const verbose = true + + const result = await BITBOX.RawTransactions.getRawTransaction( + txid, + verbose + ) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAnyKeys(result[0], [ + "hex", + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout", + "blockhash", + "confirmations", + "time", + "blocktime" + ]) + assert.isArray(result[0].vin) + assert.isArray(result[0].vout) + }) + }) }) From 740346b32d15e4ad0ebb7ad681c52e4b930cf093 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Thu, 17 Jan 2019 12:48:14 -0800 Subject: [PATCH 176/480] Fixing unit tests --- test/unit/Block.js | 2 +- test/unit/Blockchain.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/unit/Block.js b/test/unit/Block.js index cce25a10..f8d99b1a 100644 --- a/test/unit/Block.js +++ b/test/unit/Block.js @@ -84,7 +84,7 @@ describe("#Block", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - const result = await BITBOX.Block.detailsByHeight("507") + const result = await BITBOX.Block.detailsByHeight(500007) assert.deepEqual(result, data) }) diff --git a/test/unit/Blockchain.js b/test/unit/Blockchain.js index 478cce68..fc818af1 100644 --- a/test/unit/Blockchain.js +++ b/test/unit/Blockchain.js @@ -432,7 +432,7 @@ describe("#Blockchain", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.Blockchain.verifyTxOutProof(3, 6) + BITBOX.Blockchain.verifyTxOutProof("3") .then(result => { assert.deepEqual(data, result) }) From 85001f3f7c68be7759aeb8a52ba28ed74f9a2af1 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Thu, 17 Jan 2019 13:54:51 -0800 Subject: [PATCH 177/480] Re-checked integration tests --- lib/Address.js | 29 +---- lib/Block.js | 47 ++++++-- lib/Blockchain.js | 79 +++++++++++-- lib/bitbox-sdk.js | 1 + src/RawTransactions.js | 61 +++++++--- src/bitbox-sdk.js | 4 +- test/integration/rawtransaction.js | 175 +++++++++++++++++++++++++++++ 7 files changed, 334 insertions(+), 62 deletions(-) create mode 100644 test/integration/rawtransaction.js diff --git a/lib/Address.js b/lib/Address.js index 6e29456e..46d321be 100644 --- a/lib/Address.js +++ b/lib/Address.js @@ -411,21 +411,9 @@ var Address = function () { } throw new Error("Input address must be a string or array of strings."); - } catch (err) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - /* - if (typeof address !== "string") address = JSON.stringify(address) - try { - const response = await axios.get( - `${this.restURL}address/unconfirmed/${address}` - ) - return response.data } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error + if (error.response && error.response.data) throw error.response.data;else throw error; } - */ } }, { key: "transactions", @@ -451,22 +439,9 @@ var Address = function () { } throw new Error("Input address must be a string or array of strings."); - } catch (err) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - - /* - if (typeof address !== "string") address = JSON.stringify(address) - try { - const response = await axios.get( - `${this.restURL}address/transactions/${address}` - ) - return response.data } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error + if (error.response && error.response.data) throw error.response.data;else throw error; } - */ } }]); diff --git a/lib/Block.js b/lib/Block.js index 6028d8e4..121cc054 100644 --- a/lib/Block.js +++ b/lib/Block.js @@ -4,8 +4,6 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _axios = require("axios"); @@ -26,10 +24,27 @@ var Block = function () { _createClass(Block, [{ key: "detailsByHeight", value: async function detailsByHeight(id) { - console.log("typeof: " + (typeof id === "undefined" ? "undefined" : _typeof(id))); try { - var response = await _axios2.default.get(this.restURL + "block/detailsByHeight/" + id); - return response.data; + // Single block + if (typeof id === "number") { + var response = await _axios2.default.get(this.restURL + "block/detailsByHeight/" + id); + return response.data; + + // Array of blocks. + } else if (Array.isArray(id)) { + var options = { + method: "POST", + url: this.restURL + "block/detailsByHeight", + data: { + heights: id + } + }; + var _response = await (0, _axios2.default)(options); + + return _response.data; + } + + throw new Error("Input must be a number or array of numbers."); } catch (error) { if (error.response && error.response.data) throw error.response.data;else throw error; } @@ -38,8 +53,26 @@ var Block = function () { key: "detailsByHash", value: async function detailsByHash(hash) { try { - var response = await _axios2.default.get(this.restURL + "block/detailsByHash/" + hash); - return response.data; + // Single block + if (typeof hash === "string") { + var response = await _axios2.default.get(this.restURL + "block/detailsByHash/" + hash); + return response.data; + + // Array of hashes. + } else if (Array.isArray(hash)) { + var options = { + method: "POST", + url: this.restURL + "block/detailsByHash", + data: { + hashes: hash + } + }; + var _response2 = await (0, _axios2.default)(options); + + return _response2.data; + } + + throw new Error("Input must be a string or array of strings."); } catch (error) { if (error.response && error.response.data) throw error.response.data;else throw error; } diff --git a/lib/Blockchain.js b/lib/Blockchain.js index 73141435..f1a5d920 100644 --- a/lib/Blockchain.js +++ b/lib/Blockchain.js @@ -4,7 +4,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /* + TODO + - Add blockhash functionality back into getTxOutProof + */ var _axios = require("axios"); @@ -142,11 +145,27 @@ var Blockchain = function () { }, { key: "getMempoolEntry", value: async function getMempoolEntry(txid) { - if (typeof txid !== "string") txid = JSON.stringify(txid); + //if (typeof txid !== "string") txid = JSON.stringify(txid) try { - var response = await _axios2.default.get(this.restURL + "blockchain/getMempoolEntry/" + txid); - return response.data; + if (typeof txid === "string") { + var response = await _axios2.default.get(this.restURL + "blockchain/getMempoolEntry/" + txid); + + return response.data; + } else if (Array.isArray(txid)) { + var options = { + method: "POST", + url: this.restURL + "blockchain/getMempoolEntry", + data: { + txids: txid + } + }; + var _response = await (0, _axios2.default)(options); + + return _response.data; + } + + throw new Error("Input must be a string or array of strings."); } catch (error) { if (error.response && error.response.data) throw error.response.data;else throw error; } @@ -187,13 +206,31 @@ var Blockchain = function () { } }, { key: "getTxOutProof", - value: async function getTxOutProof(txids, blockhash) { - var path = this.restURL + "blockchain/getTxOutProof/" + txids; - if (blockhash) path = path + "?blockhash=" + blockhash; - + value: async function getTxOutProof(txids) { try { - var response = await _axios2.default.get(path); - return response.data; + // Single txid. + if (typeof txids === "string") { + var path = this.restURL + "blockchain/getTxOutProof/" + txids; + //if (blockhash) path = `${path}?blockhash=${blockhash}` + + var response = await _axios2.default.get(path); + return response.data; + + // Array of txids. + } else if (Array.isArray(txids)) { + var options = { + method: "POST", + url: this.restURL + "blockchain/getTxOutProof", + data: { + txids: txids + } + }; + var _response2 = await (0, _axios2.default)(options); + + return _response2.data; + } + + throw new Error("Input must be a string or array of strings."); } catch (error) { if (error.response && error.response.data) throw error.response.data;else throw error; } @@ -235,8 +272,26 @@ var Blockchain = function () { key: "verifyTxOutProof", value: async function verifyTxOutProof(proof) { try { - var response = await _axios2.default.get(this.restURL + "blockchain/verifyTxOutProof/proof"); - return response.data; + // Single block + if (typeof proof === "string") { + var response = await _axios2.default.get(this.restURL + "blockchain/verifyTxOutProof/" + proof); + return response.data; + + // Array of hashes. + } else if (Array.isArray(proof)) { + var options = { + method: "POST", + url: this.restURL + "blockchain/verifyTxOutProof", + data: { + proofs: proof + } + }; + var _response3 = await (0, _axios2.default)(options); + + return _response3.data; + } + + throw new Error("Input must be a string or array of strings."); } catch (error) { if (error.response && error.response.data) throw error.response.data;else throw error; } diff --git a/lib/bitbox-sdk.js b/lib/bitbox-sdk.js index 902b3538..cd4fdd6c 100644 --- a/lib/bitbox-sdk.js +++ b/lib/bitbox-sdk.js @@ -93,6 +93,7 @@ var BITBOXSDK = function BITBOXSDK(config) { _classCallCheck(this, BITBOXSDK); if (config && config.restURL && config.restURL !== "") this.restURL = config.restURL;else this.restURL = "https://rest.btctest.net/v2/"; + //else this.restURL = "http://localhost:3000/v2/" this.Address = new _Address2.default(this.restURL); this.BitcoinCash = new _BitcoinCash2.default(this.Address); diff --git a/src/RawTransactions.js b/src/RawTransactions.js index 4e952099..d367cca6 100644 --- a/src/RawTransactions.js +++ b/src/RawTransactions.js @@ -5,13 +5,31 @@ class RawTransactions { } async decodeRawTransaction(hex) { - if (typeof hex !== "string") hex = JSON.stringify(hex) - try { - const response = await axios.get( - `${this.restURL}rawtransactions/decodeRawTransaction/${hex}` - ) - return response.data + // Single hex + if (typeof hex === "string") { + const response = await axios.get( + `${this.restURL}rawtransactions/decodeRawTransaction/${hex}` + ) + + return response.data + + // Array of hexes + } else if (Array.isArray(hex)) { + const options = { + method: "POST", + url: `${this.restURL}rawtransactions/decodeRawTransaction`, + data: { + hexes: hex + } + } + //console.log(`options: ${JSON.stringify(options, null, 2)}`) + const response = await axios(options) + + return response.data + } + + throw new Error(`Input must be a string or array of strings.`) } catch (error) { if (error.response && error.response.data) throw error.response.data else throw error @@ -33,15 +51,30 @@ class RawTransactions { } async getRawTransaction(txid, verbose = false) { - if (typeof txid !== "string") txid = JSON.stringify(txid) - try { - const response = await axios.get( - `${ - this.restURL - }rawtransactions/getRawTransaction/${txid}?verbose=${verbose}` - ) - return response.data + if (typeof txid === "string") { + const response = await axios.get( + `${ + this.restURL + }rawtransactions/getRawTransaction/${txid}?verbose=${verbose}` + ) + + return response.data + } else if (Array.isArray(txid)) { + const options = { + method: "POST", + url: `${this.restURL}rawtransactions/getRawTransaction`, + data: { + txids: txid, + verbose: verbose + } + } + const response = await axios(options) + + return response.data + } + + throw new Error(`Input must be a string or array of strings.`) } catch (error) { if (error.response && error.response.data) throw error.response.data else throw error diff --git a/src/bitbox-sdk.js b/src/bitbox-sdk.js index 5503b842..be572575 100644 --- a/src/bitbox-sdk.js +++ b/src/bitbox-sdk.js @@ -24,8 +24,8 @@ class BITBOXSDK { constructor(config) { if (config && config.restURL && config.restURL !== "") this.restURL = config.restURL - //else this.restURL = "https://rest.btctest.net/v2/" - else this.restURL = "http://localhost:3000/v2/" + else this.restURL = "https://rest.btctest.net/v2/" + //else this.restURL = "http://localhost:3000/v2/" this.Address = new Address(this.restURL) this.BitcoinCash = new BitcoinCash(this.Address) diff --git a/test/integration/rawtransaction.js b/test/integration/rawtransaction.js new file mode 100644 index 00000000..c44ae005 --- /dev/null +++ b/test/integration/rawtransaction.js @@ -0,0 +1,175 @@ +/* + Integration tests for the BITBOX. Only covers calls made to + rest.bitcoin.com. + + TODO +*/ + +const chai = require("chai") +const assert = chai.assert +const BITBOXSDK = require("../../src/bitbox-sdk").default +const BITBOX = new BITBOXSDK() + +// Inspect utility used for debugging. +const util = require("util") +util.inspect.defaultOptions = { + showHidden: true, + colors: true, + depth: 3 +} + +describe("#rawtransaction", () => { + describe("#decodeRawTransaction", () => { + it("should decode tx for a single hex", async () => { + const hex = + "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" + + const result = await BITBOX.RawTransactions.decodeRawTransaction(hex) + //console.log(`result ${JSON.stringify(result, null, 2)}`) + + assert.hasAnyKeys(result, [ + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout" + ]) + assert.isArray(result.vin) + assert.isArray(result.vout) + }) + + it("should decode an array of tx hexes", async () => { + const hexes = [ + "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000", + "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" + ] + + const result = await BITBOX.RawTransactions.decodeRawTransaction(hexes) + //console.log(`result ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAnyKeys(result[0], [ + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout" + ]) + assert.isArray(result[0].vin) + assert.isArray(result[0].vout) + }) + + it(`should throw an error for improper single input`, async () => { + try { + const addr = 12345 + + await BITBOX.RawTransactions.decodeRawTransaction(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input must be a string or array of strings.` + ) + } + }) + }) + + describe("#getRawTransaction", () => { + it("should decode a single txid, with concise output", async () => { + const txid = + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" + const verbose = false + + const result = await BITBOX.RawTransactions.getRawTransaction( + txid, + verbose + ) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isString(result) + }) + + it("should decode a single txid, with verbose output", async () => { + const txid = + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" + const verbose = true + + const result = await BITBOX.RawTransactions.getRawTransaction( + txid, + verbose + ) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAnyKeys(result, [ + "hex", + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout", + "blockhash", + "confirmations", + "time", + "blocktime" + ]) + assert.isArray(result.vin) + assert.isArray(result.vout) + }) + + it("should decode an array of txids, with a concise output", async () => { + const txid = [ + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", + "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" + ] + const verbose = false + + const result = await BITBOX.RawTransactions.getRawTransaction( + txid, + verbose + ) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.isString(result[0]) + }) + + it("should decode an array of txids, with a verbose output", async () => { + const txid = [ + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", + "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" + ] + const verbose = true + + const result = await BITBOX.RawTransactions.getRawTransaction( + txid, + verbose + ) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAnyKeys(result[0], [ + "hex", + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout", + "blockhash", + "confirmations", + "time", + "blocktime" + ]) + assert.isArray(result[0].vin) + assert.isArray(result[0].vout) + }) + }) +}) From cde4c939d8cd0f99ef71acfec4519aae3494dfb2 Mon Sep 17 00:00:00 2001 From: Ankit Goel Date: Tue, 22 Jan 2019 08:14:24 +0000 Subject: [PATCH 178/480] Refactor Blockchain.getBlockHeader --- lib/Blockchain.js | 38 ++++++++++++++------ src/Blockchain.js | 30 ++++++++++++---- test/integration/blockchain.js | 64 ++++++++++++++++++++++++++++++++++ 3 files changed, 116 insertions(+), 16 deletions(-) diff --git a/lib/Blockchain.js b/lib/Blockchain.js index f1a5d920..aa36d5e3 100644 --- a/lib/Blockchain.js +++ b/lib/Blockchain.js @@ -85,11 +85,29 @@ var Blockchain = function () { value: async function getBlockHeader(hash) { var verbose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - if (typeof hash !== "string") hash = JSON.stringify(hash); - try { - var response = await _axios2.default.get(this.restURL + "blockchain/getBlockHeader/" + hash + "?verbose=" + verbose); - return response.data; + // Handle single hash. + if (typeof hash === "string") { + var response = await _axios2.default.get(this.restURL + "blockchain/getBlockHeader/" + hash + "?verbose=" + verbose); + + return response.data; + + // Handle array of hashes. + } else if (Array.isArray(hash)) { + var options = { + method: "POST", + url: this.restURL + "blockchain/getBlockHeader", + data: { + hashes: hash, + verbose: verbose + } + }; + var _response = await (0, _axios2.default)(options); + + return _response.data; + } + + throw new Error("Input hash must be a string or array of strings."); } catch (error) { if (error.response && error.response.data) throw error.response.data;else throw error; } @@ -160,9 +178,9 @@ var Blockchain = function () { txids: txid } }; - var _response = await (0, _axios2.default)(options); + var _response2 = await (0, _axios2.default)(options); - return _response.data; + return _response2.data; } throw new Error("Input must be a string or array of strings."); @@ -225,9 +243,9 @@ var Blockchain = function () { txids: txids } }; - var _response2 = await (0, _axios2.default)(options); + var _response3 = await (0, _axios2.default)(options); - return _response2.data; + return _response3.data; } throw new Error("Input must be a string or array of strings."); @@ -286,9 +304,9 @@ var Blockchain = function () { proofs: proof } }; - var _response3 = await (0, _axios2.default)(options); + var _response4 = await (0, _axios2.default)(options); - return _response3.data; + return _response4.data; } throw new Error("Input must be a string or array of strings."); diff --git a/src/Blockchain.js b/src/Blockchain.js index 4f1aab06..54d0d45e 100644 --- a/src/Blockchain.js +++ b/src/Blockchain.js @@ -72,13 +72,31 @@ class Blockchain { } async getBlockHeader(hash, verbose = true) { - if (typeof hash !== "string") hash = JSON.stringify(hash) - try { - const response = await axios.get( - `${this.restURL}blockchain/getBlockHeader/${hash}?verbose=${verbose}` - ) - return response.data + // Handle single hash. + if (typeof hash === "string") { + const response = await axios.get( + `${this.restURL}blockchain/getBlockHeader/${hash}?verbose=${verbose}` + ) + + return response.data + + // Handle array of hashes. + } else if (Array.isArray(hash)) { + const options = { + method: "POST", + url: `${this.restURL}blockchain/getBlockHeader`, + data: { + hashes: hash, + verbose: verbose + } + } + const response = await axios(options) + + return response.data + } + + throw new Error(`Input hash must be a string or array of strings.`) } catch (error) { if (error.response && error.response.data) throw error.response.data else throw error diff --git a/test/integration/blockchain.js b/test/integration/blockchain.js index bc623785..d00a355f 100644 --- a/test/integration/blockchain.js +++ b/test/integration/blockchain.js @@ -31,6 +31,70 @@ describe(`#blockchain`, () => { }) }) + describe("#getBlockHeader", () => { + it(`should GET block header for a single hash`, async () => { + const hash = "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + + const result = await BITBOX.Blockchain.getBlockHeader(hash) + + assert.hasAllKeys(result, [ + "hash", + "confirmations", + "height", + "version", + "versionHex", + "merkleroot", + "time", + "mediantime", + "nonce", + "bits", + "difficulty", + "chainwork", + "previousblockhash", + "nextblockhash" + ]) + }) + + it(`should GET block headers for an array of hashes`, async () => { + const hash = [ "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", "00000000000000000568f0a96bf4348847bc84e455cbfec389f27311037a20f3" + ] + + const result = await BITBOX.Blockchain.getBlockHeader(hash) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "hash", + "confirmations", + "height", + "version", + "versionHex", + "merkleroot", + "time", + "mediantime", + "nonce", + "bits", + "difficulty", + "chainwork", + "previousblockhash", + "nextblockhash" + ]) + }) + + it(`should throw an error for improper input`, async () => { + try { + const hash = 12345 + + await BITBOX.Blockchain.getBlockHeader(hash) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.include( + err.message, + `Input hash must be a string or array of strings` + ) + } + }) + }) + describe("#getMempoolEntry", () => { /* // To run this test, the txid must be unconfirmed. From 9927a75a480da44c0423b464fd70a664ff6dc3dc Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 29 Jan 2019 08:10:10 -0800 Subject: [PATCH 179/480] Point at production for tests --- src/bitbox-sdk.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bitbox-sdk.js b/src/bitbox-sdk.js index be572575..9983dd0d 100644 --- a/src/bitbox-sdk.js +++ b/src/bitbox-sdk.js @@ -24,7 +24,8 @@ class BITBOXSDK { constructor(config) { if (config && config.restURL && config.restURL !== "") this.restURL = config.restURL - else this.restURL = "https://rest.btctest.net/v2/" + else this.restURL = "https://rest.bitcoin.com/v2/" + //else this.restURL = "https://rest.btctest.net/v2/" //else this.restURL = "http://localhost:3000/v2/" this.Address = new Address(this.restURL) From 9ae7e34d20e6a4597aa80a1765d18c4fb31e9dac Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 29 Jan 2019 11:21:12 -0800 Subject: [PATCH 180/480] Refactored util.js --- src/Util.js | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/Util.js b/src/Util.js index fbf3a16f..59152750 100644 --- a/src/Util.js +++ b/src/Util.js @@ -6,10 +6,28 @@ class Util { async validateAddress(address) { try { - const response = await axios.get( - `${this.restURL}util/validateAddress/${address}` - ) - return response.data + // Single block + if (typeof address === "string") { + const response = await axios.get( + `${this.restURL}util/validateAddress/${address}` + ) + return response.data + + // Array of blocks. + } else if (Array.isArray(id)) { + const options = { + method: "POST", + url: `${this.restURL}util/validateAddress`, + data: { + addresses: address + } + } + const response = await axios(options) + + return response.data + } + + throw new Error(`Input must be a string or array of strings.`) } catch (error) { if (error.response && error.response.data) throw error.response.data else throw error From 41caf9d483dbb7e742cabe07fe0da29496d0ef39 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 29 Jan 2019 11:55:51 -0800 Subject: [PATCH 181/480] Added integration tests --- src/Util.js | 2 +- src/bitbox-sdk.js | 4 +- test/integration/util.js | 93 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 96 insertions(+), 3 deletions(-) create mode 100644 test/integration/util.js diff --git a/src/Util.js b/src/Util.js index 59152750..6799dc17 100644 --- a/src/Util.js +++ b/src/Util.js @@ -14,7 +14,7 @@ class Util { return response.data // Array of blocks. - } else if (Array.isArray(id)) { + } else if (Array.isArray(address)) { const options = { method: "POST", url: `${this.restURL}util/validateAddress`, diff --git a/src/bitbox-sdk.js b/src/bitbox-sdk.js index 9983dd0d..050ddbdc 100644 --- a/src/bitbox-sdk.js +++ b/src/bitbox-sdk.js @@ -24,8 +24,8 @@ class BITBOXSDK { constructor(config) { if (config && config.restURL && config.restURL !== "") this.restURL = config.restURL - else this.restURL = "https://rest.bitcoin.com/v2/" - //else this.restURL = "https://rest.btctest.net/v2/" + //else this.restURL = "https://rest.bitcoin.com/v2/" + else this.restURL = "https://rest.btctest.net/v2/" //else this.restURL = "http://localhost:3000/v2/" this.Address = new Address(this.restURL) diff --git a/test/integration/util.js b/test/integration/util.js new file mode 100644 index 00000000..c6b2ed98 --- /dev/null +++ b/test/integration/util.js @@ -0,0 +1,93 @@ +/* + Integration tests for the BITBOX. Only covers calls made to + rest.bitcoin.com. +*/ + +const chai = require("chai") +const assert = chai.assert +const BITBOXSDK = require("../../src/bitbox-sdk").default +const BITBOX = new BITBOXSDK() + +// Inspect utility used for debugging. +const util = require("util") +util.inspect.defaultOptions = { + showHidden: true, + colors: true, + depth: 3 +} + +describe(`#util`, () => { + describe(`#validateAddress`, () => { + it(`should return false for testnet addr on mainnet`, async () => { + const address = `bchtest:qqqk4y6lsl5da64sg5qc3xezmplyu5kmpyz2ysaa5y` + + const result = await BITBOX.Util.validateAddress(address) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAllKeys(result, ["isvalid"]) + assert.equal(result.isvalid, false) + }) + + it(`should return false for bad address`, async () => { + const address = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peu` + + const result = await BITBOX.Util.validateAddress(address) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAllKeys(result, ["isvalid"]) + assert.equal(result.isvalid, false) + }) + + it(`should return validate valid address`, async () => { + const address = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` + + const result = await BITBOX.Util.validateAddress(address) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAllKeys(result, [ + "isvalid", + "address", + "scriptPubKey", + "ismine", + "iswatchonly", + "isscript" + ]) + assert.equal(result.isvalid, true) + }) + + it(`should GET block details for an array of blocks`, async () => { + const address = [ + `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z`, + `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` + ] + + const result = await BITBOX.Util.validateAddress(address) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "isvalid", + "address", + "scriptPubKey", + "ismine", + "iswatchonly", + "isscript" + ]) + }) + + it(`should throw an error for improper single input`, async () => { + try { + const address = 15432 + + await BITBOX.Util.validateAddress(address) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input must be a string or array of strings.` + ) + } + }) + }) +}) From ab96039b57fd6e75f90f18dd25ef5a18e30e6500 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 29 Jan 2019 12:34:38 -0800 Subject: [PATCH 182/480] Fixing default init value to rest.bitcoin.com --- src/bitbox-sdk.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/bitbox-sdk.js b/src/bitbox-sdk.js index 050ddbdc..3bc5b06b 100644 --- a/src/bitbox-sdk.js +++ b/src/bitbox-sdk.js @@ -24,9 +24,7 @@ class BITBOXSDK { constructor(config) { if (config && config.restURL && config.restURL !== "") this.restURL = config.restURL - //else this.restURL = "https://rest.bitcoin.com/v2/" - else this.restURL = "https://rest.btctest.net/v2/" - //else this.restURL = "http://localhost:3000/v2/" + else this.restURL = "https://rest.bitcoin.com/v2/" this.Address = new Address(this.restURL) this.BitcoinCash = new BitcoinCash(this.Address) From 694f3182758e935430fafccdc3d8fa551ff62a25 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Thu, 31 Jan 2019 06:53:39 +0900 Subject: [PATCH 183/480] Fix broken tests. --- lib/RawTransactions.js | 48 +- lib/Util.js | 22 +- lib/bitbox-sdk.js | 3 +- package-lock.json | 5866 +++++++++++++++++----------------- test/unit/RawTransactions.js | 4 +- 5 files changed, 2993 insertions(+), 2950 deletions(-) diff --git a/lib/RawTransactions.js b/lib/RawTransactions.js index 8d64cde4..24a2d899 100644 --- a/lib/RawTransactions.js +++ b/lib/RawTransactions.js @@ -24,11 +24,28 @@ var RawTransactions = function () { _createClass(RawTransactions, [{ key: "decodeRawTransaction", value: async function decodeRawTransaction(hex) { - if (typeof hex !== "string") hex = JSON.stringify(hex); - try { - var response = await _axios2.default.get(this.restURL + "rawtransactions/decodeRawTransaction/" + hex); - return response.data; + // Single hex + if (typeof hex === "string") { + var response = await _axios2.default.get(this.restURL + "rawtransactions/decodeRawTransaction/" + hex); + + return response.data; + + // Array of hexes + } else if (Array.isArray(hex)) { + var options = { + method: "POST", + url: this.restURL + "rawtransactions/decodeRawTransaction", + data: { + hexes: hex + } + }; + var _response = await (0, _axios2.default)(options); + + return _response.data; + } + + throw new Error("Input must be a string or array of strings."); } catch (error) { if (error.response && error.response.data) throw error.response.data;else throw error; } @@ -50,11 +67,26 @@ var RawTransactions = function () { value: async function getRawTransaction(txid) { var verbose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - if (typeof txid !== "string") txid = JSON.stringify(txid); - try { - var response = await _axios2.default.get(this.restURL + "rawtransactions/getRawTransaction/" + txid + "?verbose=" + verbose); - return response.data; + if (typeof txid === "string") { + var response = await _axios2.default.get(this.restURL + "rawtransactions/getRawTransaction/" + txid + "?verbose=" + verbose); + + return response.data; + } else if (Array.isArray(txid)) { + var options = { + method: "POST", + url: this.restURL + "rawtransactions/getRawTransaction", + data: { + txids: txid, + verbose: verbose + } + }; + var _response2 = await (0, _axios2.default)(options); + + return _response2.data; + } + + throw new Error("Input must be a string or array of strings."); } catch (error) { if (error.response && error.response.data) throw error.response.data;else throw error; } diff --git a/lib/Util.js b/lib/Util.js index 92af94b4..3e8dd31f 100644 --- a/lib/Util.js +++ b/lib/Util.js @@ -25,8 +25,26 @@ var Util = function () { key: "validateAddress", value: async function validateAddress(address) { try { - var response = await _axios2.default.get(this.restURL + "util/validateAddress/" + address); - return response.data; + // Single block + if (typeof address === "string") { + var response = await _axios2.default.get(this.restURL + "util/validateAddress/" + address); + return response.data; + + // Array of blocks. + } else if (Array.isArray(address)) { + var options = { + method: "POST", + url: this.restURL + "util/validateAddress", + data: { + addresses: address + } + }; + var _response = await (0, _axios2.default)(options); + + return _response.data; + } + + throw new Error("Input must be a string or array of strings."); } catch (error) { if (error.response && error.response.data) throw error.response.data;else throw error; } diff --git a/lib/bitbox-sdk.js b/lib/bitbox-sdk.js index cd4fdd6c..adc4c4bc 100644 --- a/lib/bitbox-sdk.js +++ b/lib/bitbox-sdk.js @@ -92,8 +92,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons var BITBOXSDK = function BITBOXSDK(config) { _classCallCheck(this, BITBOXSDK); - if (config && config.restURL && config.restURL !== "") this.restURL = config.restURL;else this.restURL = "https://rest.btctest.net/v2/"; - //else this.restURL = "http://localhost:3000/v2/" + if (config && config.restURL && config.restURL !== "") this.restURL = config.restURL;else this.restURL = "https://rest.bitcoin.com/v2/"; this.Address = new _Address2.default(this.restURL); this.BitcoinCash = new _BitcoinCash2.default(this.Address); diff --git a/package-lock.json b/package-lock.json index 13b058b4..9e389424 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "2.3.0", + "version": "3.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -9,7 +9,7 @@ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", "requires": { - "@babel/highlight": "^7.0.0" + "@babel/highlight": "7.0.0" } }, "@babel/generator": { @@ -17,11 +17,11 @@ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.2.2.tgz", "integrity": "sha512-I4o675J/iS8k+P38dvJ3IBGqObLXyQLTxtrR4u9cSUJOURvafeEWb/pFMOTwtNrmq73mJzyF6ueTbO1BtN0Zeg==", "requires": { - "@babel/types": "^7.2.2", - "jsesc": "^2.5.1", - "lodash": "^4.17.10", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" + "@babel/types": "7.2.2", + "jsesc": "2.5.2", + "lodash": "4.17.11", + "source-map": "0.5.7", + "trim-right": "1.0.1" }, "dependencies": { "jsesc": { @@ -36,9 +36,9 @@ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", "requires": { - "@babel/helper-get-function-arity": "^7.0.0", - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0" + "@babel/helper-get-function-arity": "7.0.0", + "@babel/template": "7.2.2", + "@babel/types": "7.2.2" } }, "@babel/helper-get-function-arity": { @@ -46,7 +46,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", "requires": { - "@babel/types": "^7.0.0" + "@babel/types": "7.2.2" } }, "@babel/helper-split-export-declaration": { @@ -54,7 +54,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", "requires": { - "@babel/types": "^7.0.0" + "@babel/types": "7.2.2" } }, "@babel/highlight": { @@ -62,9 +62,9 @@ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" + "chalk": "2.4.1", + "esutils": "2.0.2", + "js-tokens": "4.0.0" }, "dependencies": { "js-tokens": { @@ -84,9 +84,9 @@ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.2.2", - "@babel/types": "^7.2.2" + "@babel/code-frame": "7.0.0", + "@babel/parser": "7.2.3", + "@babel/types": "7.2.2" } }, "@babel/traverse": { @@ -94,15 +94,15 @@ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz", "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==", "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.2.2", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.0.0", - "@babel/parser": "^7.2.3", - "@babel/types": "^7.2.2", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.10" + "@babel/code-frame": "7.0.0", + "@babel/generator": "7.2.2", + "@babel/helper-function-name": "7.1.0", + "@babel/helper-split-export-declaration": "7.0.0", + "@babel/parser": "7.2.3", + "@babel/types": "7.2.2", + "debug": "4.1.1", + "globals": "11.9.0", + "lodash": "4.17.11" }, "dependencies": { "debug": { @@ -110,7 +110,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "requires": { - "ms": "^2.1.1" + "ms": "2.1.1" } }, "globals": { @@ -130,9 +130,9 @@ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz", "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==", "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.10", - "to-fast-properties": "^2.0.0" + "esutils": "2.0.2", + "lodash": "4.17.11", + "to-fast-properties": "2.0.0" }, "dependencies": { "to-fast-properties": { @@ -148,8 +148,8 @@ "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", "dev": true, "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" + "call-me-maybe": "1.0.1", + "glob-to-regexp": "0.3.0" } }, "@nodelib/fs.stat": { @@ -165,9 +165,9 @@ "dev": true, "requires": { "deepmerge": "3.0.0", - "is-plain-object": "^2.0.4", - "universal-user-agent": "^2.0.1", - "url-template": "^2.0.8" + "is-plain-object": "2.0.4", + "universal-user-agent": "2.0.2", + "url-template": "2.0.8" } }, "@octokit/request": { @@ -176,10 +176,10 @@ "integrity": "sha512-4P9EbwKZ4xfyupVMb3KVuHmM+aO2fye3nufjGKz/qDssvdJj9Rlx44O0FdFvUp4kIzToy3AHLTOulEIDAL+dpg==", "dev": true, "requires": { - "@octokit/endpoint": "^3.0.0", - "is-plain-object": "^2.0.4", - "node-fetch": "^2.3.0", - "universal-user-agent": "^2.0.1" + "@octokit/endpoint": "3.1.1", + "is-plain-object": "2.0.4", + "node-fetch": "2.3.0", + "universal-user-agent": "2.0.2" } }, "@octokit/rest": { @@ -189,15 +189,15 @@ "dev": true, "requires": { "@octokit/request": "2.2.0", - "before-after-hook": "^1.2.0", - "btoa-lite": "^1.0.0", - "lodash.get": "^4.4.2", - "lodash.pick": "^4.4.0", - "lodash.set": "^4.3.2", - "lodash.uniq": "^4.5.0", - "octokit-pagination-methods": "^1.1.0", - "universal-user-agent": "^2.0.0", - "url-template": "^2.0.8" + "before-after-hook": "1.3.0", + "btoa-lite": "1.0.0", + "lodash.get": "4.4.2", + "lodash.pick": "4.4.0", + "lodash.set": "4.3.2", + "lodash.uniq": "4.5.0", + "octokit-pagination-methods": "1.1.0", + "universal-user-agent": "2.0.2", + "url-template": "2.0.8" } }, "@semantic-release/commit-analyzer": { @@ -206,12 +206,12 @@ "integrity": "sha512-2lb+t6muGenI86mYGpZYOgITx9L3oZYF697tJoqXeQEk0uw0fm+OkkOuDTBA3Oax9ftoNIrCKv9bwgYvxrbM6w==", "dev": true, "requires": { - "conventional-changelog-angular": "^5.0.0", - "conventional-commits-filter": "^2.0.0", - "conventional-commits-parser": "^3.0.0", - "debug": "^4.0.0", - "import-from": "^2.1.0", - "lodash": "^4.17.4" + "conventional-changelog-angular": "5.0.2", + "conventional-commits-filter": "2.0.1", + "conventional-commits-parser": "3.0.1", + "debug": "4.1.1", + "import-from": "2.1.0", + "lodash": "4.17.11" }, "dependencies": { "debug": { @@ -220,7 +220,7 @@ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.1" } }, "ms": { @@ -243,23 +243,23 @@ "integrity": "sha512-cWQhM9bdBv8KAwClmwM64Mo3vsOHVM2aJAGI6K3qbJfJ3GsLJLh1hTi+rMd5EkZ2DA8zUUHCiAJZ3ujMvUB0yg==", "dev": true, "requires": { - "@octokit/rest": "^16.0.1", - "@semantic-release/error": "^2.2.0", - "aggregate-error": "^1.0.0", - "bottleneck": "^2.0.1", - "debug": "^4.0.0", - "dir-glob": "^2.0.0", - "fs-extra": "^7.0.0", - "globby": "^8.0.0", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.1", - "issue-parser": "^3.0.0", - "lodash": "^4.17.4", - "mime": "^2.0.3", - "p-filter": "^1.0.0", - "p-retry": "^3.0.0", - "parse-github-url": "^1.0.1", - "url-join": "^4.0.0" + "@octokit/rest": "16.3.0", + "@semantic-release/error": "2.2.0", + "aggregate-error": "1.0.0", + "bottleneck": "2.14.1", + "debug": "4.1.1", + "dir-glob": "2.0.0", + "fs-extra": "7.0.1", + "globby": "8.0.1", + "http-proxy-agent": "2.1.0", + "https-proxy-agent": "2.2.1", + "issue-parser": "3.0.1", + "lodash": "4.17.11", + "mime": "2.4.0", + "p-filter": "1.0.0", + "p-retry": "3.0.0", + "parse-github-url": "1.0.2", + "url-join": "4.0.0" }, "dependencies": { "debug": { @@ -268,7 +268,7 @@ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.1" } }, "mime": { @@ -291,17 +291,17 @@ "integrity": "sha512-hAt8Q86jjp0AiykihhZ7vuCFKYz0j8v3W6Jae8b+RCLi8IUofrPF1ZImx3oY0rRu8ZZSb4aU9uxtFmeOYZebjg==", "dev": true, "requires": { - "@semantic-release/error": "^2.2.0", - "aggregate-error": "^1.0.0", - "execa": "^1.0.0", - "fs-extra": "^7.0.0", - "lodash": "^4.17.4", - "nerf-dart": "^1.0.0", - "normalize-url": "^4.0.0", - "npm": "^6.3.0", - "rc": "^1.2.8", - "read-pkg": "^4.0.0", - "registry-auth-token": "^3.3.1" + "@semantic-release/error": "2.2.0", + "aggregate-error": "1.0.0", + "execa": "1.0.0", + "fs-extra": "7.0.1", + "lodash": "4.17.11", + "nerf-dart": "1.0.0", + "normalize-url": "4.1.0", + "npm": "6.5.0", + "rc": "1.2.8", + "read-pkg": "4.0.1", + "registry-auth-token": "3.3.2" }, "dependencies": { "cross-spawn": { @@ -310,11 +310,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "nice-try": "1.0.5", + "path-key": "2.0.1", + "semver": "5.6.0", + "shebang-command": "1.2.0", + "which": "1.3.1" } }, "execa": { @@ -323,13 +323,13 @@ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.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" + "cross-spawn": "6.0.5", + "get-stream": "4.1.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" } }, "get-stream": { @@ -338,7 +338,7 @@ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { - "pump": "^3.0.0" + "pump": "3.0.0" } }, "parse-json": { @@ -347,8 +347,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" } }, "pify": { @@ -363,9 +363,9 @@ "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=", "dev": true, "requires": { - "normalize-package-data": "^2.3.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0" + "normalize-package-data": "2.4.0", + "parse-json": "4.0.0", + "pify": "3.0.0" } } } @@ -376,15 +376,15 @@ "integrity": "sha512-pWPouZujddgb6t61t9iA9G3yIfp3TeQ7bPbV1ixYSeP6L7gI1+Du82fY/OHfEwyifpymLUQW0XnIKgKct5IMMw==", "dev": true, "requires": { - "conventional-changelog-angular": "^5.0.0", - "conventional-changelog-writer": "^4.0.0", - "conventional-commits-filter": "^2.0.0", - "conventional-commits-parser": "^3.0.0", - "debug": "^4.0.0", - "get-stream": "^4.0.0", - "import-from": "^2.1.0", - "into-stream": "^4.0.0", - "lodash": "^4.17.4" + "conventional-changelog-angular": "5.0.2", + "conventional-changelog-writer": "4.0.2", + "conventional-commits-filter": "2.0.1", + "conventional-commits-parser": "3.0.1", + "debug": "4.1.1", + "get-stream": "4.1.0", + "import-from": "2.1.0", + "into-stream": "4.0.0", + "lodash": "4.17.11" }, "dependencies": { "debug": { @@ -393,7 +393,7 @@ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.1" } }, "get-stream": { @@ -402,7 +402,7 @@ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { - "pump": "^3.0.0" + "pump": "3.0.0" } }, "ms": { @@ -437,9 +437,9 @@ "integrity": "sha512-m08g4CS3J6lwRQk1pj1EO+KEVWbrbXsmi9Pw0ySmrIbcVxVaedoFgLvFsV8wHLwh01EpROVz3KvVcD1Jmks9FQ==", "dev": true, "requires": { - "@sinonjs/commons": "^1.0.2", - "array-from": "^2.1.1", - "lodash.get": "^4.4.2" + "@sinonjs/commons": "1.3.0", + "array-from": "2.1.1", + "lodash.get": "4.4.2" } }, "JSONStream": { @@ -448,8 +448,8 @@ "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "dev": true, "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" + "jsonparse": "1.3.1", + "through": "2.3.8" } }, "abbrev": { @@ -462,7 +462,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "requires": { - "mime-types": "~2.1.18", + "mime-types": "2.1.21", "negotiator": "0.6.1" } }, @@ -476,7 +476,7 @@ "resolved": "http://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "requires": { - "acorn": "^3.0.4" + "acorn": "3.3.0" }, "dependencies": { "acorn": { @@ -497,7 +497,7 @@ "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", "dev": true, "requires": { - "es6-promisify": "^5.0.0" + "es6-promisify": "5.0.0" } }, "aggregate-error": { @@ -506,8 +506,8 @@ "integrity": "sha1-iINE2tAiCnLjr1CQYRf0h3GSX6w=", "dev": true, "requires": { - "clean-stack": "^1.0.0", - "indent-string": "^3.0.0" + "clean-stack": "1.3.0", + "indent-string": "3.2.0" } }, "ajv": { @@ -515,10 +515,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" } }, "ajv-keywords": { @@ -553,8 +553,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "optional": true, "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" + "micromatch": "2.3.11", + "normalize-path": "2.1.1" } }, "argparse": { @@ -562,7 +562,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "~1.0.2" + "sprintf-js": "1.0.3" } }, "argv-formatter": { @@ -577,7 +577,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "optional": true, "requires": { - "arr-flatten": "^1.0.1" + "arr-flatten": "1.1.0" } }, "arr-flatten": { @@ -613,8 +613,8 @@ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.7.0" + "define-properties": "1.1.3", + "es-abstract": "1.12.0" } }, "array-union": { @@ -623,7 +623,7 @@ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "array-uniq": "^1.0.1" + "array-uniq": "1.0.3" } }, "array-uniq": { @@ -655,7 +655,7 @@ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, "requires": { - "safer-buffer": "~2.1.0" + "safer-buffer": "2.1.2" } }, "assert": { @@ -695,7 +695,7 @@ "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", "dev": true, "requires": { - "lodash": "^4.17.10" + "lodash": "4.17.11" } }, "async-each": { @@ -737,8 +737,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=", "requires": { - "follow-redirects": "^1.2.5", - "is-buffer": "^1.1.5" + "follow-redirects": "1.6.0", + "is-buffer": "1.1.6" } }, "babel-cli": { @@ -746,21 +746,21 @@ "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", "requires": { - "babel-core": "^6.26.0", - "babel-polyfill": "^6.26.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "chokidar": "^1.6.1", - "commander": "^2.11.0", - "convert-source-map": "^1.5.0", - "fs-readdir-recursive": "^1.0.0", - "glob": "^7.1.2", - "lodash": "^4.17.4", - "output-file-sync": "^1.1.2", - "path-is-absolute": "^1.0.1", - "slash": "^1.0.0", - "source-map": "^0.5.6", - "v8flags": "^2.1.1" + "babel-core": "6.26.3", + "babel-polyfill": "6.26.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "chokidar": "1.7.0", + "commander": "2.19.0", + "convert-source-map": "1.6.0", + "fs-readdir-recursive": "1.1.0", + "glob": "7.1.3", + "lodash": "4.17.11", + "output-file-sync": "1.1.2", + "path-is-absolute": "1.0.1", + "slash": "1.0.0", + "source-map": "0.5.7", + "v8flags": "2.1.1" } }, "babel-code-frame": { @@ -768,9 +768,9 @@ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" }, "dependencies": { "chalk": { @@ -778,11 +778,11 @@ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { - "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" + "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" } } } @@ -792,25 +792,25 @@ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.1", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.6.0", + "debug": "2.6.9", + "json5": "0.5.1", + "lodash": "4.17.11", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "slash": "1.0.0", + "source-map": "0.5.7" }, "dependencies": { "debug": { @@ -828,14 +828,14 @@ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.11", + "source-map": "0.5.7", + "trim-right": "1.0.1" } }, "babel-helper-builder-binary-assignment-operator-visitor": { @@ -843,9 +843,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "requires": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-explode-assignable-expression": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-call-delegate": { @@ -853,10 +853,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-define-map": { @@ -864,10 +864,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.11" } }, "babel-helper-explode-assignable-expression": { @@ -875,9 +875,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-function-name": { @@ -885,11 +885,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "requires": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-get-function-arity": { @@ -897,8 +897,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-hoist-variables": { @@ -906,8 +906,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-optimise-call-expression": { @@ -915,8 +915,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-regex": { @@ -924,9 +924,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.11" } }, "babel-helper-remap-async-to-generator": { @@ -934,11 +934,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-replace-supers": { @@ -946,12 +946,12 @@ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "requires": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-optimise-call-expression": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helpers": { @@ -959,8 +959,8 @@ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-messages": { @@ -968,7 +968,7 @@ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-check-es2015-constants": { @@ -976,7 +976,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-syntax-async-functions": { @@ -999,9 +999,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-functions": "6.13.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-arrow-functions": { @@ -1009,7 +1009,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -1017,7 +1017,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -1025,11 +1025,11 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "requires": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.11" } }, "babel-plugin-transform-es2015-classes": { @@ -1037,15 +1037,15 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "requires": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-define-map": "6.26.0", + "babel-helper-function-name": "6.24.1", + "babel-helper-optimise-call-expression": "6.24.1", + "babel-helper-replace-supers": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-computed-properties": { @@ -1053,8 +1053,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-destructuring": { @@ -1062,7 +1062,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -1070,8 +1070,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-for-of": { @@ -1079,7 +1079,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -1087,9 +1087,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-literals": { @@ -1097,7 +1097,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -1105,9 +1105,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -1115,10 +1115,10 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-modules-systemjs": { @@ -1126,9 +1126,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-modules-umd": { @@ -1136,9 +1136,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "requires": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-object-super": { @@ -1146,8 +1146,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "requires": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" + "babel-helper-replace-supers": "6.24.1", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -1155,12 +1155,12 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "requires": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-call-delegate": "6.24.1", + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-shorthand-properties": { @@ -1168,8 +1168,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-spread": { @@ -1177,7 +1177,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -1185,9 +1185,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-template-literals": { @@ -1195,7 +1195,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -1203,7 +1203,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -1211,9 +1211,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "regexpu-core": "2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -1221,9 +1221,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", + "babel-plugin-syntax-exponentiation-operator": "6.13.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-regenerator": { @@ -1231,7 +1231,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "requires": { - "regenerator-transform": "^0.10.0" + "regenerator-transform": "0.10.1" } }, "babel-plugin-transform-strict-mode": { @@ -1239,8 +1239,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-polyfill": { @@ -1248,9 +1248,9 @@ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "requires": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" + "babel-runtime": "6.26.0", + "core-js": "2.6.1", + "regenerator-runtime": "0.10.5" }, "dependencies": { "regenerator-runtime": { @@ -1265,36 +1265,36 @@ "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-to-generator": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.23.0", - "babel-plugin-transform-es2015-classes": "^6.23.0", - "babel-plugin-transform-es2015-computed-properties": "^6.22.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", - "babel-plugin-transform-es2015-for-of": "^6.23.0", - "babel-plugin-transform-es2015-function-name": "^6.22.0", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.22.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-umd": "^6.23.0", - "babel-plugin-transform-es2015-object-super": "^6.22.0", - "babel-plugin-transform-es2015-parameters": "^6.23.0", - "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", - "babel-plugin-transform-exponentiation-operator": "^6.22.0", - "babel-plugin-transform-regenerator": "^6.22.0", - "browserslist": "^3.2.6", - "invariant": "^2.2.2", - "semver": "^5.3.0" + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-async-to-generator": "6.24.1", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-exponentiation-operator": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0", + "browserslist": "3.2.8", + "invariant": "2.2.4", + "semver": "5.6.0" } }, "babel-preset-es2015": { @@ -1302,30 +1302,30 @@ "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.24.1", - "babel-plugin-transform-es2015-classes": "^6.24.1", - "babel-plugin-transform-es2015-computed-properties": "^6.24.1", - "babel-plugin-transform-es2015-destructuring": "^6.22.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", - "babel-plugin-transform-es2015-for-of": "^6.22.0", - "babel-plugin-transform-es2015-function-name": "^6.24.1", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-umd": "^6.24.1", - "babel-plugin-transform-es2015-object-super": "^6.24.1", - "babel-plugin-transform-es2015-parameters": "^6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", - "babel-plugin-transform-regenerator": "^6.24.1" + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0" } }, "babel-register": { @@ -1333,13 +1333,13 @@ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" + "babel-core": "6.26.3", + "babel-runtime": "6.26.0", + "core-js": "2.6.1", + "home-or-tmp": "2.0.0", + "lodash": "4.17.11", + "mkdirp": "0.5.1", + "source-map-support": "0.4.18" } }, "babel-runtime": { @@ -1347,8 +1347,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "core-js": "2.6.1", + "regenerator-runtime": "0.11.1" } }, "babel-template": { @@ -1356,11 +1356,11 @@ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.11" } }, "babel-traverse": { @@ -1368,15 +1368,15 @@ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.4", + "lodash": "4.17.11" }, "dependencies": { "debug": { @@ -1394,10 +1394,10 @@ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.11", + "to-fast-properties": "1.0.3" } }, "babylon": { @@ -1420,13 +1420,13 @@ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "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.2.0", - "pascalcase": "^0.1.1" + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" }, "dependencies": { "define-property": { @@ -1434,7 +1434,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -1442,7 +1442,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -1450,7 +1450,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -1458,9 +1458,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -1480,7 +1480,7 @@ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.5.tgz", "integrity": "sha512-C3picSgzPSLE+jW3tcBzJoGwitOtazb5B+5YmAxZm2ybmTi9LNgAtDO/jjVEBZwHoXmDBZ9m/IELj3elJVRBcA==", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "base64-arraybuffer": { @@ -1510,11 +1510,10 @@ }, "bch-wallet-bridge.js": { "version": "github:web3bch/bch-wallet-bridge.js#f73558eaf3a98ba2a23de3c9cbbd582b30ff19eb", - "from": "github:web3bch/bch-wallet-bridge.js#master", "requires": { - "bch-wallet-bridge-provider-interface": "^0.1.1", - "bchaddrjs": "^0.2.2", - "bitcoincashjs": "^0.1.10" + "bch-wallet-bridge-provider-interface": "0.1.1", + "bchaddrjs": "0.2.3", + "bitcoincashjs": "0.1.14" } }, "bchaddrjs": { @@ -1522,8 +1521,8 @@ "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.3.tgz", "integrity": "sha512-0DVW8q3UFQFhrvt8Fowpkk+WvkYTZTSD1vGCQHrtMHZjRL6G/SoW0mgrREmgO1F/8TJ+Julri4UBWA8Gr7C5Yw==", "requires": { - "bs58check": "^2.1.2", - "cashaddrjs": "^0.2.9" + "bs58check": "2.1.2", + "cashaddrjs": "0.2.9" } }, "bcrypt-pbkdf": { @@ -1532,7 +1531,7 @@ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, "requires": { - "tweetnacl": "^0.14.3" + "tweetnacl": "0.14.5" } }, "bech32": { @@ -1582,19 +1581,17 @@ }, "bip21": { "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "from": "github:Bitcoin-com/bip21", "requires": { - "qs": "^6.3.0" + "qs": "6.6.0" } }, "bip32-utils": { "version": "github:Bitcoin-com/bip32-utils#966fb8f0e0d4c667e4ee89adfa20c2078d66887c", - "from": "github:Bitcoin-com/bip32-utils#0.13.0", "requires": { - "keccak": "^1.3.0", - "nyc": "*", - "standard": "^11.0.1", - "tape": "*" + "keccak": "1.4.0", + "nyc": "13.1.0", + "standard": "11.0.1", + "tape": "4.9.1" }, "dependencies": { "nyc": { @@ -2742,13 +2739,13 @@ "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", "integrity": "sha512-22KDak0RDyghFbR0Si7wyq9IgY423YzGYzWLpGeofH3DaolOQqjD3mNN08eFoubKlbyclOQKFwtONMv2SD9V3A==", "requires": { - "bigi": "^1.2.0", - "browserify-aes": "^1.0.1", - "bs58check": "<3.0.0", - "buffer-xor": "^1.0.2", - "create-hash": "^1.1.1", - "ecurve": "^1.0.0", - "scryptsy": "^2.0.0" + "bigi": "1.4.2", + "browserify-aes": "1.2.0", + "bs58check": "2.1.2", + "buffer-xor": "1.0.3", + "create-hash": "1.2.0", + "ecurve": "1.0.6", + "scryptsy": "2.0.0" } }, "bip39": { @@ -2756,11 +2753,11 @@ "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", "requires": { - "create-hash": "^1.1.0", - "pbkdf2": "^3.0.9", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "unorm": "^1.3.3" + "create-hash": "1.2.0", + "pbkdf2": "3.0.17", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2", + "unorm": "1.4.1" } }, "bip66": { @@ -2768,19 +2765,18 @@ "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "bitcoin-ops": { - "version": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646", - "from": "github:Bitcoin-com/bitcoincash-ops#1.5.0" + "version": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646" }, "bitcoin-txdecoder": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/bitcoin-txdecoder/-/bitcoin-txdecoder-0.0.3.tgz", "integrity": "sha512-pH/eF5hQ65y54U23mzuF42wEj9YWj4WKHAIj2il6b1+oRoi/oyM4Ti3e8nMD8ajippICmyquqbyCZKGq3i4W+A==", "requires": { - "bitcoinjs-lib": "3.3.*" + "bitcoinjs-lib": "3.3.2" } }, "bitcoincashjs": { @@ -2790,23 +2786,22 @@ }, "bitcoincashjs-lib": { "version": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", - "from": "github:Bitcoin-com/bitcoincashjs-lib#3.3.4", - "requires": { - "bech32": "^1.1.2", - "bigi": "^1.4.0", - "bip66": "^1.1.0", - "bitcoin-ops": "^1.3.0", - "bs58check": "^2.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.3", - "ecurve": "^1.0.0", - "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "^1.0.1", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "typeforce": "^1.11.3", - "varuint-bitcoin": "^1.0.4", - "wif": "^2.0.1" + "requires": { + "bech32": "1.1.3", + "bigi": "1.4.2", + "bip66": "1.1.5", + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646", + "bs58check": "2.1.2", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ecurve": "1.0.6", + "merkle-lib": "2.0.10", + "pushdata-bitcoin": "1.0.1", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2", + "typeforce": "1.18.0", + "varuint-bitcoin": "1.1.0", + "wif": "2.0.6" } }, "bitcoinjs-lib": { @@ -2814,21 +2809,21 @@ "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-3.3.2.tgz", "integrity": "sha512-l5qqvbaK8wwtANPf6oEffykycg4383XgEYdia1rI7/JpGf1jfRWlOUCvx5TiTZS7kyIvY4j/UhIQ2urLsvGkzw==", "requires": { - "bech32": "^1.1.2", - "bigi": "^1.4.0", - "bip66": "^1.1.0", - "bitcoin-ops": "^1.3.0", - "bs58check": "^2.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.3", - "ecurve": "^1.0.0", - "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "^1.0.1", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "typeforce": "^1.11.3", - "varuint-bitcoin": "^1.0.4", - "wif": "^2.0.1" + "bech32": "1.1.3", + "bigi": "1.4.2", + "bip66": "1.1.5", + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646", + "bs58check": "2.1.2", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ecurve": "1.0.6", + "merkle-lib": "2.0.10", + "pushdata-bitcoin": "1.0.1", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2", + "typeforce": "1.18.0", + "varuint-bitcoin": "1.1.0", + "wif": "2.0.6" } }, "bitcoinjs-message": { @@ -2836,11 +2831,11 @@ "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", "requires": { - "bs58check": "^2.0.2", - "buffer-equals": "^1.0.3", - "create-hash": "^1.1.2", - "secp256k1": "^3.0.1", - "varuint-bitcoin": "^1.0.1" + "bs58check": "2.1.2", + "buffer-equals": "1.0.4", + "create-hash": "1.2.0", + "secp256k1": "3.6.0", + "varuint-bitcoin": "1.1.0" } }, "blob": { @@ -2864,7 +2859,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -2874,9 +2869,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "optional": true, "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.3" } }, "brorand": { @@ -2895,12 +2890,12 @@ "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "buffer-xor": "1.0.3", + "cipher-base": "1.0.4", + "create-hash": "1.2.0", + "evp_bytestokey": "1.0.3", + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "browserslist": { @@ -2908,8 +2903,8 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "requires": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" + "caniuse-lite": "1.0.30000923", + "electron-to-chromium": "1.3.96" } }, "bs58": { @@ -2917,7 +2912,7 @@ "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", "requires": { - "base-x": "^3.0.2" + "base-x": "3.0.5" } }, "bs58check": { @@ -2925,9 +2920,9 @@ "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" + "bs58": "4.0.1", + "create-hash": "1.2.0", + "safe-buffer": "5.1.2" } }, "btoa-lite": { @@ -2941,8 +2936,8 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" + "base64-js": "1.3.0", + "ieee754": "1.1.12" } }, "buffer-equals": { @@ -2970,15 +2965,15 @@ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "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" }, "dependencies": { "isobject": { @@ -3000,7 +2995,7 @@ "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", "dev": true, "requires": { - "callsites": "^2.0.0" + "callsites": "2.0.0" }, "dependencies": { "callsites": { @@ -3016,7 +3011,7 @@ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "requires": { - "callsites": "^0.2.0" + "callsites": "0.2.0" } }, "callsite": { @@ -3040,9 +3035,9 @@ "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", "dev": true, "requires": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" + "camelcase": "4.1.0", + "map-obj": "2.0.0", + "quick-lru": "1.1.0" } }, "can-promise": { @@ -3050,7 +3045,7 @@ "resolved": "https://registry.npmjs.org/can-promise/-/can-promise-0.0.1.tgz", "integrity": "sha512-gzVrHyyrvgt0YpDm7pn04MQt8gjh0ZAhN4ZDyCRtGl6YnuuK6b4aiUTD7G52r9l4YNmxfTtEscb92vxtAlL6XQ==", "requires": { - "window-or-global": "^1.0.1" + "window-or-global": "1.0.1" } }, "caniuse-lite": { @@ -3064,8 +3059,8 @@ "integrity": "sha1-fMEFXYItISlU0HsIXeolHMe8VQU=", "dev": true, "requires": { - "ansicolors": "~0.3.2", - "redeyed": "~2.1.0" + "ansicolors": "0.3.2", + "redeyed": "2.1.1" } }, "caseless": { @@ -3079,7 +3074,7 @@ "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.2.9.tgz", "integrity": "sha512-DhJF4iAH0/RM3UjHDHKRxzs09YGL9px+oTyizzydanhC7jTyM2aJ+aLKA96vZGTTWayvvr2iDF2l13lpqXiRFg==", "requires": { - "big-integer": "^1.6.34" + "big-integer": "1.6.40" } }, "chai": { @@ -3088,12 +3083,12 @@ "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", "dev": true, "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.0", - "type-detect": "^4.0.5" + "assertion-error": "1.1.0", + "check-error": "1.0.2", + "deep-eql": "3.0.1", + "get-func-name": "2.0.0", + "pathval": "1.1.0", + "type-detect": "4.0.8" } }, "chalk": { @@ -3101,9 +3096,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" }, "dependencies": { "ansi-styles": { @@ -3111,7 +3106,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "color-convert": "^1.9.0" + "color-convert": "1.9.3" } }, "supports-color": { @@ -3119,7 +3114,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -3141,15 +3136,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "optional": true, "requires": { - "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" + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.2.4", + "glob-parent": "2.0.0", + "inherits": "2.0.1", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.2.1" } }, "cipher-base": { @@ -3157,8 +3152,8 @@ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "circular-json": { @@ -3171,10 +3166,10 @@ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" }, "dependencies": { "define-property": { @@ -3182,7 +3177,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "isobject": { @@ -3208,7 +3203,7 @@ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { - "restore-cursor": "^2.0.0" + "restore-cursor": "2.0.0" } }, "cli-table": { @@ -3230,9 +3225,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" }, "dependencies": { "is-fullwidth-code-point": { @@ -3240,7 +3235,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.0" + "number-is-nan": "1.0.1" } }, "string-width": { @@ -3248,9 +3243,9 @@ "resolved": "http://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -3267,9 +3262,8 @@ }, "coininfo": { "version": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", - "from": "github:Bitcoin-com/coininfo", "requires": { - "safe-buffer": "^5.1.1" + "safe-buffer": "5.1.2" } }, "collection-visit": { @@ -3277,8 +3271,8 @@ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "map-visit": "1.0.0", + "object-visit": "1.0.1" } }, "color-convert": { @@ -3306,7 +3300,7 @@ "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", "dev": true, "requires": { - "delayed-stream": "~1.0.0" + "delayed-stream": "1.0.0" } }, "commander": { @@ -3320,8 +3314,8 @@ "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=", "dev": true, "requires": { - "array-ify": "^1.0.0", - "dot-prop": "^3.0.0" + "array-ify": "1.0.0", + "dot-prop": "3.0.0" } }, "component-bind": { @@ -3349,10 +3343,10 @@ "resolved": "http://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "buffer-from": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "typedarray": "0.0.6" }, "dependencies": { "inherits": { @@ -3373,8 +3367,8 @@ "integrity": "sha512-yx7m7lVrXmt4nKWQgWZqxSALEiAKZhOAcbxdUaU9575mB0CzXVbgrgpfSnSP7OqWDUTYGD0YVJ0MSRdyOPgAwA==", "dev": true, "requires": { - "compare-func": "^1.3.1", - "q": "^1.5.1" + "compare-func": "1.3.2", + "q": "1.5.1" } }, "conventional-changelog-writer": { @@ -3383,16 +3377,16 @@ "integrity": "sha512-d8/FQY/fix2xXEBUhOo8u3DCbyEw3UOQgYHxLsPDw+wHUDma/GQGAGsGtoH876WyNs32fViHmTOUrgRKVLvBug==", "dev": true, "requires": { - "compare-func": "^1.3.1", - "conventional-commits-filter": "^2.0.1", - "dateformat": "^3.0.0", - "handlebars": "^4.0.2", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.2.1", - "meow": "^4.0.0", - "semver": "^5.5.0", - "split": "^1.0.0", - "through2": "^2.0.0" + "compare-func": "1.3.2", + "conventional-commits-filter": "2.0.1", + "dateformat": "3.0.3", + "handlebars": "4.0.12", + "json-stringify-safe": "5.0.1", + "lodash": "4.17.11", + "meow": "4.0.1", + "semver": "5.6.0", + "split": "1.0.1", + "through2": "2.0.5" } }, "conventional-commits-filter": { @@ -3401,8 +3395,8 @@ "integrity": "sha512-92OU8pz/977udhBjgPEbg3sbYzIxMDFTlQT97w7KdhR9igNqdJvy8smmedAAgn4tPiqseFloKkrVfbXCVd+E7A==", "dev": true, "requires": { - "is-subset": "^0.1.1", - "modify-values": "^1.0.0" + "is-subset": "0.1.1", + "modify-values": "1.0.1" } }, "conventional-commits-parser": { @@ -3411,13 +3405,13 @@ "integrity": "sha512-P6U5UOvDeidUJ8ebHVDIoXzI7gMlQ1OF/id6oUvp8cnZvOXMt1n8nYl74Ey9YMn0uVQtxmCtjPQawpsssBWtGg==", "dev": true, "requires": { - "JSONStream": "^1.0.4", - "is-text-path": "^1.0.0", - "lodash": "^4.2.1", - "meow": "^4.0.0", - "split2": "^2.0.0", - "through2": "^2.0.0", - "trim-off-newlines": "^1.0.0" + "JSONStream": "1.3.5", + "is-text-path": "1.0.1", + "lodash": "4.17.11", + "meow": "4.0.1", + "split2": "2.2.0", + "through2": "2.0.5", + "trim-off-newlines": "1.0.1" } }, "convert-source-map": { @@ -3425,7 +3419,7 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", "requires": { - "safe-buffer": "~5.1.1" + "safe-buffer": "5.1.2" } }, "cookie": { @@ -3454,10 +3448,10 @@ "integrity": "sha512-PcLqxTKiDmNT6pSpy4N6KtuPwb53W+2tzNvwOZw0WH9N6O0vLIBq0x8aj8Oj75ere4YcGi48bDFCL+3fRJdlNA==", "dev": true, "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.9.0", - "parse-json": "^4.0.0" + "import-fresh": "2.0.0", + "is-directory": "0.3.1", + "js-yaml": "3.12.0", + "parse-json": "4.0.0" }, "dependencies": { "parse-json": { @@ -3466,8 +3460,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" } } } @@ -3478,12 +3472,12 @@ "integrity": "sha512-Tv0LKe/MkBOilH2v7WBiTBdudg2ChfGbdXafc/s330djpF3zKOmuehTeRwjXWc7pzfj9FrDUTA7tEx6Div8NFw==", "dev": true, "requires": { - "growl": "~> 1.10.0", - "js-yaml": "^3.11.0", - "lcov-parse": "^0.0.10", - "log-driver": "^1.2.7", - "minimist": "^1.2.0", - "request": "^2.85.0" + "growl": "1.10.5", + "js-yaml": "3.12.0", + "lcov-parse": "0.0.10", + "log-driver": "1.2.7", + "minimist": "1.2.0", + "request": "2.88.0" }, "dependencies": { "minimist": { @@ -3499,11 +3493,11 @@ "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-5.0.0.tgz", "integrity": "sha1-vHAP0wyjLSTUbH+wK5kuQ1/FqXg=", "requires": { - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "nested-error-stacks": "^2.0.0", - "pify": "^3.0.0", - "safe-buffer": "^5.0.1" + "graceful-fs": "4.1.15", + "make-dir": "1.3.0", + "nested-error-stacks": "2.1.0", + "pify": "3.0.0", + "safe-buffer": "5.1.2" }, "dependencies": { "pify": { @@ -3518,11 +3512,11 @@ "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" + "cipher-base": "1.0.4", + "inherits": "2.0.1", + "md5.js": "1.3.5", + "ripemd160": "2.0.2", + "sha.js": "2.4.11" } }, "create-hmac": { @@ -3530,12 +3524,12 @@ "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "cipher-base": "1.0.4", + "create-hash": "1.2.0", + "inherits": "2.0.1", + "ripemd160": "2.0.2", + "safe-buffer": "5.1.2", + "sha.js": "2.4.11" } }, "cross-spawn": { @@ -3543,9 +3537,9 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.5", + "shebang-command": "1.2.0", + "which": "1.3.1" } }, "currently-unhandled": { @@ -3554,7 +3548,7 @@ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { - "array-find-index": "^1.0.1" + "array-find-index": "1.0.2" } }, "dashdash": { @@ -3563,7 +3557,7 @@ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "dateformat": { @@ -3596,8 +3590,8 @@ "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", "dev": true, "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" + "decamelize": "1.2.0", + "map-obj": "1.0.1" }, "dependencies": { "map-obj": { @@ -3619,7 +3613,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "^4.0.0" + "type-detect": "4.0.8" } }, "deep-equal": { @@ -3649,7 +3643,7 @@ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "requires": { - "object-keys": "^1.0.12" + "object-keys": "1.0.12" } }, "define-property": { @@ -3657,8 +3651,8 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "is-descriptor": "1.0.2", + "isobject": "3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -3666,7 +3660,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -3674,7 +3668,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -3682,9 +3676,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -3709,12 +3703,12 @@ "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.1.tgz", "integrity": "sha512-2kjwuGGonL7gWE1XU4Fv79+vVzpoQCl0V+boMwWtOQJV2AGDabCwez++nB1Nli/8BabAfZQ/UuHPlp6AymKdWw==", "requires": { - "find-root": "^1.0.0", - "glob": "^7.0.5", - "ignore": "^3.0.9", - "pkg-config": "^1.1.0", - "run-parallel": "^1.1.2", - "uniq": "^1.0.1" + "find-root": "1.1.0", + "glob": "7.1.3", + "ignore": "3.3.10", + "pkg-config": "1.1.1", + "run-parallel": "1.1.9", + "uniq": "1.0.1" } }, "delayed-stream": { @@ -3734,7 +3728,7 @@ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "diff": { @@ -3754,8 +3748,8 @@ "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", "dev": true, "requires": { - "arrify": "^1.0.1", - "path-type": "^3.0.0" + "arrify": "1.0.1", + "path-type": "3.0.0" }, "dependencies": { "path-type": { @@ -3764,7 +3758,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "pify": { @@ -3780,7 +3774,7 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "requires": { - "esutils": "^2.0.2" + "esutils": "2.0.2" } }, "dot-prop": { @@ -3789,7 +3783,7 @@ "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=", "dev": true, "requires": { - "is-obj": "^1.0.0" + "is-obj": "1.0.1" } }, "drbg.js": { @@ -3797,9 +3791,9 @@ "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", "requires": { - "browserify-aes": "^1.0.6", - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4" + "browserify-aes": "1.2.0", + "create-hash": "1.2.0", + "create-hmac": "1.1.7" } }, "duplexer2": { @@ -3808,7 +3802,7 @@ "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", "dev": true, "requires": { - "readable-stream": "^2.0.2" + "readable-stream": "2.3.6" } }, "ecc-jsbn": { @@ -3817,8 +3811,8 @@ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "jsbn": "0.1.1", + "safer-buffer": "2.1.2" } }, "ecurve": { @@ -3826,8 +3820,8 @@ "resolved": "https://registry.npmjs.org/ecurve/-/ecurve-1.0.6.tgz", "integrity": "sha512-/BzEjNfiSuB7jIWKcS/z8FK9jNjmEWvUV2YZ4RLSmcDtP7Lq0m6FvDuSnJpBlDpGRpfRQeTLGLBI8H+kEv0r+w==", "requires": { - "bigi": "^1.1.0", - "safe-buffer": "^5.0.1" + "bigi": "1.4.2", + "safe-buffer": "5.1.2" } }, "electron-to-chromium": { @@ -3840,13 +3834,13 @@ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" + "bn.js": "4.11.8", + "brorand": "1.1.0", + "hash.js": "1.1.7", + "hmac-drbg": "1.0.1", + "inherits": "2.0.1", + "minimalistic-assert": "1.0.1", + "minimalistic-crypto-utils": "1.0.1" } }, "end-of-stream": { @@ -3855,7 +3849,7 @@ "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "dev": true, "requires": { - "once": "^1.4.0" + "once": "1.4.0" } }, "engine.io": { @@ -3863,12 +3857,12 @@ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.3.2.tgz", "integrity": "sha512-AsaA9KG7cWPXWHp5FvHdDWY3AMWeZ8x+2pUVLcn71qE5AtAzgGbxuclOytygskw8XGmiQafTmnI9Bix3uihu2w==", "requires": { - "accepts": "~1.3.4", + "accepts": "1.3.5", "base64id": "1.0.0", "cookie": "0.3.1", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.0", - "ws": "~6.1.0" + "debug": "3.1.0", + "engine.io-parser": "2.1.3", + "ws": "6.1.2" } }, "engine.io-client": { @@ -3878,14 +3872,14 @@ "requires": { "component-emitter": "1.2.1", "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.1", + "debug": "3.1.0", + "engine.io-parser": "2.1.3", "has-cors": "1.1.0", "indexof": "0.0.1", "parseqs": "0.0.5", "parseuri": "0.0.5", - "ws": "~6.1.0", - "xmlhttprequest-ssl": "~1.5.4", + "ws": "6.1.2", + "xmlhttprequest-ssl": "1.5.5", "yeast": "0.1.2" } }, @@ -3895,10 +3889,10 @@ "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", "requires": { "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", + "arraybuffer.slice": "0.0.7", "base64-arraybuffer": "0.1.5", "blob": "0.0.5", - "has-binary2": "~1.0.2" + "has-binary2": "1.0.3" } }, "env-ci": { @@ -3907,8 +3901,8 @@ "integrity": "sha512-4NudFu3oUCNprsGkt/LmvqAwJlzX9QT8289AavXiDH1pBJuEd4n0ty98yUOWN3uFtjOhOGrmt1/FDKFxCewejw==", "dev": true, "requires": { - "execa": "^1.0.0", - "java-properties": "^0.2.9" + "execa": "1.0.0", + "java-properties": "0.2.10" }, "dependencies": { "cross-spawn": { @@ -3917,11 +3911,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "nice-try": "1.0.5", + "path-key": "2.0.1", + "semver": "5.6.0", + "shebang-command": "1.2.0", + "which": "1.3.1" } }, "execa": { @@ -3930,13 +3924,13 @@ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.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" + "cross-spawn": "6.0.5", + "get-stream": "4.1.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" } }, "get-stream": { @@ -3945,7 +3939,7 @@ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { - "pump": "^3.0.0" + "pump": "3.0.0" } } } @@ -3955,7 +3949,7 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "es-abstract": { @@ -3963,11 +3957,11 @@ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", "requires": { - "es-to-primitive": "^1.1.1", - "function-bind": "^1.1.1", - "has": "^1.0.1", - "is-callable": "^1.1.3", - "is-regex": "^1.0.4" + "es-to-primitive": "1.2.0", + "function-bind": "1.1.1", + "has": "1.0.3", + "is-callable": "1.1.4", + "is-regex": "1.0.4" } }, "es-to-primitive": { @@ -3975,9 +3969,9 @@ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "is-callable": "1.1.4", + "is-date-object": "1.0.1", + "is-symbol": "1.0.2" } }, "es6-promise": { @@ -3992,7 +3986,7 @@ "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "dev": true, "requires": { - "es6-promise": "^4.0.3" + "es6-promise": "4.2.5" } }, "escape-string-regexp": { @@ -4006,43 +4000,43 @@ "integrity": "sha512-gOKhM8JwlFOc2acbOrkYR05NW8M6DCMSvfcJiBB5NDxRE1gv8kbvxKaC9u69e6ZGEMWXcswA/7eKR229cEIpvg==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.5.3", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^2.1.0", - "eslint-scope": "^4.0.0", - "eslint-utils": "^1.3.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^5.0.0", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.7.0", - "ignore": "^4.0.6", - "imurmurhash": "^0.1.4", - "inquirer": "^6.1.0", - "js-yaml": "^3.12.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.5", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "require-uncached": "^1.0.3", - "semver": "^5.5.1", - "strip-ansi": "^4.0.0", - "strip-json-comments": "^2.0.1", - "table": "^5.0.2", - "text-table": "^0.2.0" + "@babel/code-frame": "7.0.0", + "ajv": "6.6.2", + "chalk": "2.4.1", + "cross-spawn": "6.0.5", + "debug": "4.1.1", + "doctrine": "2.1.0", + "eslint-scope": "4.0.0", + "eslint-utils": "1.3.1", + "eslint-visitor-keys": "1.0.0", + "espree": "5.0.0", + "esquery": "1.0.1", + "esutils": "2.0.2", + "file-entry-cache": "2.0.0", + "functional-red-black-tree": "1.0.1", + "glob": "7.1.3", + "globals": "11.9.0", + "ignore": "4.0.6", + "imurmurhash": "0.1.4", + "inquirer": "6.2.1", + "js-yaml": "3.12.0", + "json-stable-stringify-without-jsonify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.11", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "7.0.0", + "progress": "2.0.3", + "regexpp": "2.0.1", + "require-uncached": "1.0.3", + "semver": "5.6.0", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", + "table": "5.1.1", + "text-table": "0.2.0" }, "dependencies": { "acorn": { @@ -4063,10 +4057,10 @@ "integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "fast-deep-equal": "2.0.1", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" } }, "ansi-regex": { @@ -4081,7 +4075,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "color-convert": "1.9.3" } }, "chardet": { @@ -4096,11 +4090,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "nice-try": "1.0.5", + "path-key": "2.0.1", + "semver": "5.6.0", + "shebang-command": "1.2.0", + "which": "1.3.1" } }, "debug": { @@ -4109,7 +4103,7 @@ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.1" } }, "eslint-scope": { @@ -4118,8 +4112,8 @@ "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", "dev": true, "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "esrecurse": "4.2.1", + "estraverse": "4.2.0" } }, "espree": { @@ -4128,9 +4122,9 @@ "integrity": "sha512-1MpUfwsdS9MMoN7ZXqAr9e9UKdVHDcvrJpyx7mm1WuQlx/ygErEQBzgi5Nh5qBHIoYweprhtMkTCb9GhcAIcsA==", "dev": true, "requires": { - "acorn": "^6.0.2", - "acorn-jsx": "^5.0.0", - "eslint-visitor-keys": "^1.0.0" + "acorn": "6.0.4", + "acorn-jsx": "5.0.1", + "eslint-visitor-keys": "1.0.0" } }, "external-editor": { @@ -4139,9 +4133,9 @@ "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", "dev": true, "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" + "chardet": "0.7.0", + "iconv-lite": "0.4.24", + "tmp": "0.0.33" } }, "fast-deep-equal": { @@ -4168,19 +4162,19 @@ "integrity": "sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg==", "dev": true, "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.0", - "figures": "^2.0.0", - "lodash": "^4.17.10", + "ansi-escapes": "3.1.0", + "chalk": "2.4.1", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "3.0.3", + "figures": "2.0.0", + "lodash": "4.17.11", "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.1.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.0.0", - "through": "^2.3.6" + "run-async": "2.3.0", + "rxjs": "6.3.3", + "string-width": "2.1.1", + "strip-ansi": "5.0.0", + "through": "2.3.8" }, "dependencies": { "strip-ansi": { @@ -4189,7 +4183,7 @@ "integrity": "sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==", "dev": true, "requires": { - "ansi-regex": "^4.0.0" + "ansi-regex": "4.0.0" } } } @@ -4212,9 +4206,9 @@ "integrity": "sha512-4j2WTWjp3GsZ+AOagyzVbzp4vWGtZ0hEZ/gDY/uTvm6MTxUfTUIsnMIFb1bn8o0RuXiqUw15H1bue8f22Vw2oQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "3.2.1", + "astral-regex": "1.0.0", + "is-fullwidth-code-point": "2.0.0" } }, "strip-ansi": { @@ -4223,7 +4217,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" }, "dependencies": { "ansi-regex": { @@ -4240,10 +4234,10 @@ "integrity": "sha512-NUjapYb/qd4PeFW03HnAuOJ7OMcBkJlqeClWxeNlQ0lXGSb52oZXGzkO0/I0ARegQ2eUT1g2VDJH0eUxDRcHmw==", "dev": true, "requires": { - "ajv": "^6.6.1", - "lodash": "^4.17.11", + "ajv": "6.6.2", + "lodash": "4.17.11", "slice-ansi": "2.0.0", - "string-width": "^2.1.1" + "string-width": "2.1.1" } } } @@ -4254,7 +4248,7 @@ "integrity": "sha512-Bc3bh5bAcKNvs3HOpSi6EfGA2IIp7EzWcg2tS4vP7stnXu/J1opihHDM7jI9JCIckyIDTgZLSWn7J3HY0j2JfA==", "dev": true, "requires": { - "get-stdin": "^6.0.0" + "get-stdin": "6.0.0" } }, "eslint-config-standard": { @@ -4272,8 +4266,8 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", "requires": { - "debug": "^2.6.9", - "resolve": "^1.5.0" + "debug": "2.6.9", + "resolve": "1.9.0" }, "dependencies": { "debug": { @@ -4291,8 +4285,8 @@ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", "requires": { - "debug": "^2.6.8", - "pkg-dir": "^1.0.0" + "debug": "2.6.9", + "pkg-dir": "1.0.0" }, "dependencies": { "debug": { @@ -4311,8 +4305,8 @@ "integrity": "sha512-XfFmgFdIUDgvaRAlaXUkxrRg5JSADoRC8IkKLc/cISeR3yHVMefFHQZpcyXXEUUPHfy5DwviBcrfqlyqEwlQVw==", "dev": true, "requires": { - "eslint-utils": "^1.3.0", - "regexpp": "^2.0.1" + "eslint-utils": "1.3.1", + "regexpp": "2.0.1" } }, "eslint-plugin-import": { @@ -4320,16 +4314,16 @@ "resolved": "http://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz", "integrity": "sha1-JgAu+/ylmJtyiKwEdQi9JPIXsWk=", "requires": { - "builtin-modules": "^1.1.1", - "contains-path": "^0.1.0", - "debug": "^2.6.8", + "builtin-modules": "1.1.1", + "contains-path": "0.1.0", + "debug": "2.6.9", "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.1", - "eslint-module-utils": "^2.1.1", - "has": "^1.0.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.3", - "read-pkg-up": "^2.0.0" + "eslint-import-resolver-node": "0.3.2", + "eslint-module-utils": "2.2.0", + "has": "1.0.3", + "lodash": "4.17.11", + "minimatch": "3.0.4", + "read-pkg-up": "2.0.0" }, "dependencies": { "debug": { @@ -4345,8 +4339,8 @@ "resolved": "http://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" + "esutils": "2.0.2", + "isarray": "1.0.0" } } } @@ -4357,12 +4351,12 @@ "integrity": "sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw==", "dev": true, "requires": { - "eslint-plugin-es": "^1.3.1", - "eslint-utils": "^1.3.1", - "ignore": "^4.0.2", - "minimatch": "^3.0.4", - "resolve": "^1.8.1", - "semver": "^5.5.0" + "eslint-plugin-es": "1.4.0", + "eslint-utils": "1.3.1", + "ignore": "4.0.6", + "minimatch": "3.0.4", + "resolve": "1.9.0", + "semver": "5.6.0" }, "dependencies": { "ignore": { @@ -4379,8 +4373,8 @@ "integrity": "sha512-CStQYJgALoQBw3FsBzH0VOVDRnJ/ZimUlpLm226U8qgqYJfPOY/CPK6wyRInMxh73HSKg5wyRwdS4BVYYHwokA==", "dev": true, "requires": { - "fast-diff": "^1.1.1", - "jest-docblock": "^21.0.0" + "fast-diff": "1.2.0", + "jest-docblock": "21.2.0" } }, "eslint-plugin-promise": { @@ -4393,10 +4387,10 @@ "resolved": "http://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz", "integrity": "sha512-KC7Snr4YsWZD5flu6A5c0AcIZidzW3Exbqp7OT67OaD2AppJtlBr/GuPrW/vaQM/yfZotEvKAdrxrO+v8vwYJA==", "requires": { - "doctrine": "^2.0.2", - "has": "^1.0.1", - "jsx-ast-utils": "^2.0.1", - "prop-types": "^15.6.0" + "doctrine": "2.1.0", + "has": "1.0.3", + "jsx-ast-utils": "2.0.1", + "prop-types": "15.6.2" } }, "eslint-plugin-standard": { @@ -4409,8 +4403,8 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "esrecurse": "4.2.1", + "estraverse": "4.2.0" } }, "eslint-utils": { @@ -4429,8 +4423,8 @@ "resolved": "http://registry.npmjs.org/espree/-/espree-3.5.4.tgz", "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" + "acorn": "5.7.3", + "acorn-jsx": "3.0.1" } }, "esprima": { @@ -4443,7 +4437,7 @@ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "requires": { - "estraverse": "^4.0.0" + "estraverse": "4.2.0" } }, "esrecurse": { @@ -4451,7 +4445,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "requires": { - "estraverse": "^4.1.0" + "estraverse": "4.2.0" } }, "estraverse": { @@ -4469,8 +4463,8 @@ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "md5.js": "1.3.5", + "safe-buffer": "5.1.2" } }, "execa": { @@ -4478,13 +4472,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "requires": { - "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" + "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" } }, "expand-brackets": { @@ -4493,7 +4487,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "optional": true, "requires": { - "is-posix-bracket": "^0.1.0" + "is-posix-bracket": "0.1.1" } }, "expand-range": { @@ -4502,7 +4496,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "optional": true, "requires": { - "fill-range": "^2.1.0" + "fill-range": "2.2.4" } }, "extend": { @@ -4516,8 +4510,8 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -4525,7 +4519,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -4535,9 +4529,9 @@ "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" + "chardet": "0.4.2", + "iconv-lite": "0.4.24", + "tmp": "0.0.33" } }, "extglob": { @@ -4546,7 +4540,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "optional": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "extsprintf": { @@ -4572,12 +4566,12 @@ "integrity": "sha512-FjK2nCGI/McyzgNtTESqaWP3trPvHyRyoyY70hxjc3oKPNmDe8taohLZpoVKoUjW85tbU5txaYUZCNtVzygl1g==", "dev": true, "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" + "@mrmlnc/readdir-enhanced": "2.2.1", + "@nodelib/fs.stat": "1.1.3", + "glob-parent": "3.1.0", + "is-glob": "4.0.0", + "merge2": "1.2.3", + "micromatch": "3.1.10" }, "dependencies": { "arr-diff": { @@ -4598,16 +4592,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.3", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -4616,7 +4610,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -4636,13 +4630,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "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" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -4651,7 +4645,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -4660,7 +4654,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -4669,7 +4663,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -4678,7 +4672,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -4689,7 +4683,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -4698,7 +4692,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -4709,9 +4703,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { @@ -4728,14 +4722,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -4744,7 +4738,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -4753,7 +4747,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -4764,10 +4758,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.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -4776,7 +4770,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -4787,8 +4781,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" + "is-glob": "3.1.0", + "path-dirname": "1.0.2" }, "dependencies": { "is-glob": { @@ -4797,7 +4791,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "^2.1.0" + "is-extglob": "2.1.1" } } } @@ -4808,7 +4802,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -4817,7 +4811,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -4826,9 +4820,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-extglob": { @@ -4843,7 +4837,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "^2.1.1" + "is-extglob": "2.1.1" } }, "is-number": { @@ -4852,7 +4846,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -4861,7 +4855,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -4884,19 +4878,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.13", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } } } @@ -4921,7 +4915,7 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "requires": { - "escape-string-regexp": "^1.0.5" + "escape-string-regexp": "1.0.5" } }, "file-entry-cache": { @@ -4929,8 +4923,8 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" + "flat-cache": "1.3.4", + "object-assign": "4.1.1" } }, "filename-regex": { @@ -4945,11 +4939,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "optional": true, "requires": { - "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": "2.1.0", + "isobject": "2.1.0", + "randomatic": "3.1.1", + "repeat-element": "1.1.3", + "repeat-string": "1.6.1" } }, "find-root": { @@ -4962,8 +4956,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } }, "find-versions": { @@ -4972,8 +4966,8 @@ "integrity": "sha512-IUvtItVFNmTtKoB0PRfbkR0zR9XMG5rWNO3qI1S8L0zdv+v2gqzM0pAunloxqbqAfT8w7bg8n/5gHzTXte8H5A==", "dev": true, "requires": { - "array-uniq": "^2.0.0", - "semver-regex": "^2.0.0" + "array-uniq": "2.0.0", + "semver-regex": "2.0.0" }, "dependencies": { "array-uniq": { @@ -4989,10 +4983,10 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", "requires": { - "circular-json": "^0.3.1", - "graceful-fs": "^4.1.2", - "rimraf": "~2.6.2", - "write": "^0.2.1" + "circular-json": "0.3.3", + "graceful-fs": "4.1.15", + "rimraf": "2.6.2", + "write": "0.2.1" } }, "follow-redirects": { @@ -5000,7 +4994,7 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.6.0.tgz", "integrity": "sha512-4Oh4eI3S9OueVV41AgJ1oLjpaJUhbJ7JDGOMhe0AFqoSejl5Q2nn3eGglAzRUKVKZE8jG5MNn66TjCJMAnpsWA==", "requires": { - "debug": "=3.1.0" + "debug": "3.1.0" } }, "for-each": { @@ -5008,7 +5002,7 @@ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "requires": { - "is-callable": "^1.1.3" + "is-callable": "1.1.4" } }, "for-in": { @@ -5022,7 +5016,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "optional": true, "requires": { - "for-in": "^1.0.1" + "for-in": "1.0.2" } }, "forever-agent": { @@ -5037,9 +5031,9 @@ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "asynckit": "0.4.0", + "combined-stream": "1.0.7", + "mime-types": "2.1.21" } }, "fragment-cache": { @@ -5047,7 +5041,7 @@ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { - "map-cache": "^0.2.2" + "map-cache": "0.2.2" } }, "fresh": { @@ -5062,8 +5056,8 @@ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "inherits": "2.0.1", + "readable-stream": "2.3.6" } }, "fs-extra": { @@ -5072,9 +5066,9 @@ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "graceful-fs": "4.1.15", + "jsonfile": "4.0.0", + "universalify": "0.1.2" } }, "fs-readdir-recursive": { @@ -5093,8 +5087,8 @@ "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", "optional": true, "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" + "nan": "2.12.1", + "node-pre-gyp": "0.10.0" }, "dependencies": { "abbrev": { @@ -5116,8 +5110,8 @@ "bundled": true, "optional": true, "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "delegates": "1.0.0", + "readable-stream": "2.3.6" } }, "balanced-match": { @@ -5128,7 +5122,7 @@ "version": "1.1.11", "bundled": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -5182,7 +5176,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.2.4" } }, "fs.realpath": { @@ -5195,14 +5189,14 @@ "bundled": true, "optional": true, "requires": { - "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" + "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" } }, "glob": { @@ -5210,12 +5204,12 @@ "bundled": true, "optional": true, "requires": { - "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" + "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" } }, "has-unicode": { @@ -5228,7 +5222,7 @@ "bundled": true, "optional": true, "requires": { - "safer-buffer": "^2.1.0" + "safer-buffer": "2.1.2" } }, "ignore-walk": { @@ -5236,7 +5230,7 @@ "bundled": true, "optional": true, "requires": { - "minimatch": "^3.0.4" + "minimatch": "3.0.4" } }, "inflight": { @@ -5244,8 +5238,8 @@ "bundled": true, "optional": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -5261,7 +5255,7 @@ "version": "1.0.0", "bundled": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "isarray": { @@ -5273,7 +5267,7 @@ "version": "3.0.4", "bundled": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -5284,8 +5278,8 @@ "version": "2.2.4", "bundled": true, "requires": { - "safe-buffer": "^5.1.1", - "yallist": "^3.0.0" + "safe-buffer": "5.1.1", + "yallist": "3.0.2" } }, "minizlib": { @@ -5293,7 +5287,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.2.4" } }, "mkdirp": { @@ -5313,9 +5307,9 @@ "bundled": true, "optional": true, "requires": { - "debug": "^2.1.2", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" + "debug": "2.6.9", + "iconv-lite": "0.4.21", + "sax": "1.2.4" } }, "node-pre-gyp": { @@ -5323,16 +5317,16 @@ "bundled": 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" + "detect-libc": "1.0.3", + "mkdirp": "0.5.1", + "needle": "2.2.0", + "nopt": "4.0.1", + "npm-packlist": "1.1.10", + "npmlog": "4.1.2", + "rc": "1.2.7", + "rimraf": "2.6.2", + "semver": "5.5.0", + "tar": "4.4.1" } }, "nopt": { @@ -5340,8 +5334,8 @@ "bundled": true, "optional": true, "requires": { - "abbrev": "1", - "osenv": "^0.1.4" + "abbrev": "1.1.1", + "osenv": "0.1.5" } }, "npm-bundled": { @@ -5354,8 +5348,8 @@ "bundled": true, "optional": true, "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" + "ignore-walk": "3.0.1", + "npm-bundled": "1.0.3" } }, "npmlog": { @@ -5363,10 +5357,10 @@ "bundled": 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" + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" } }, "number-is-nan": { @@ -5382,7 +5376,7 @@ "version": "1.4.0", "bundled": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "os-homedir": { @@ -5400,8 +5394,8 @@ "bundled": true, "optional": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "path-is-absolute": { @@ -5419,10 +5413,10 @@ "bundled": true, "optional": true, "requires": { - "deep-extend": "^0.5.1", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" + "deep-extend": "0.5.1", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" }, "dependencies": { "minimist": { @@ -5437,13 +5431,13 @@ "bundled": true, "optional": true, "requires": { - "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" + "core-util-is": "1.0.2", + "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.2" } }, "rimraf": { @@ -5451,7 +5445,7 @@ "bundled": true, "optional": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "safe-buffer": { @@ -5487,9 +5481,9 @@ "version": "1.0.2", "bundled": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "string_decoder": { @@ -5497,14 +5491,14 @@ "bundled": true, "optional": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.1" } }, "strip-ansi": { "version": "3.0.1", "bundled": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-json-comments": { @@ -5517,13 +5511,13 @@ "bundled": true, "optional": true, "requires": { - "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" + "chownr": "1.0.1", + "fs-minipass": "1.2.5", + "minipass": "2.2.4", + "minizlib": "1.1.0", + "mkdirp": "0.5.1", + "safe-buffer": "5.1.1", + "yallist": "3.0.2" } }, "util-deprecate": { @@ -5536,7 +5530,7 @@ "bundled": true, "optional": true, "requires": { - "string-width": "^1.0.2" + "string-width": "1.0.2" } }, "wrappy": { @@ -5591,7 +5585,7 @@ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "git-clone": { @@ -5605,12 +5599,12 @@ "integrity": "sha1-LmpMGxP8AAKCB7p5WnrDFme5/Uo=", "dev": true, "requires": { - "argv-formatter": "~1.0.0", - "spawn-error-forwarder": "~1.0.0", - "split2": "~1.0.0", - "stream-combiner2": "~1.1.1", - "through2": "~2.0.0", - "traverse": "~0.6.6" + "argv-formatter": "1.0.0", + "spawn-error-forwarder": "1.0.0", + "split2": "1.0.0", + "stream-combiner2": "1.1.1", + "through2": "2.0.5", + "traverse": "0.6.6" }, "dependencies": { "split2": { @@ -5619,7 +5613,7 @@ "integrity": "sha1-UuLiIdiMdfmnP5BVbiY/+WdysxQ=", "dev": true, "requires": { - "through2": "~2.0.0" + "through2": "2.0.5" } } } @@ -5629,12 +5623,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "requires": { - "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" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.1", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "glob-base": { @@ -5643,8 +5637,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "optional": true, "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" + "glob-parent": "2.0.0", + "is-glob": "2.0.1" } }, "glob-parent": { @@ -5652,7 +5646,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "requires": { - "is-glob": "^2.0.0" + "is-glob": "2.0.1" } }, "glob-to-regexp": { @@ -5672,13 +5666,13 @@ "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", "dev": true, "requires": { - "array-union": "^1.0.1", - "dir-glob": "^2.0.0", - "fast-glob": "^2.0.2", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" + "array-union": "1.0.2", + "dir-glob": "2.0.0", + "fast-glob": "2.2.4", + "glob": "7.1.3", + "ignore": "3.3.10", + "pify": "3.0.0", + "slash": "1.0.0" }, "dependencies": { "pify": { @@ -5706,10 +5700,10 @@ "integrity": "sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA==", "dev": true, "requires": { - "async": "^2.5.0", - "optimist": "^0.6.1", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4" + "async": "2.6.1", + "optimist": "0.6.1", + "source-map": "0.6.1", + "uglify-js": "3.4.9" }, "dependencies": { "source-map": { @@ -5732,8 +5726,8 @@ "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "dev": true, "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" + "ajv": "6.6.2", + "har-schema": "2.0.0" }, "dependencies": { "ajv": { @@ -5742,10 +5736,10 @@ "integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "fast-deep-equal": "2.0.1", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" } }, "fast-deep-equal": { @@ -5767,7 +5761,7 @@ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "requires": { - "function-bind": "^1.1.1" + "function-bind": "1.1.1" } }, "has-ansi": { @@ -5775,7 +5769,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "has-binary2": { @@ -5813,9 +5807,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -5830,8 +5824,8 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { "is-number": { @@ -5839,7 +5833,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -5847,7 +5841,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -5857,7 +5851,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -5867,8 +5861,8 @@ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "hash.js": { @@ -5876,8 +5870,8 @@ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1" }, "dependencies": { "inherits": { @@ -5898,9 +5892,9 @@ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "hash.js": "1.1.7", + "minimalistic-assert": "1.0.1", + "minimalistic-crypto-utils": "1.0.1" } }, "home-or-tmp": { @@ -5908,8 +5902,8 @@ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "hook-std": { @@ -5929,7 +5923,7 @@ "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", "dev": true, "requires": { - "agent-base": "4", + "agent-base": "4.2.1", "debug": "3.1.0" } }, @@ -5939,9 +5933,9 @@ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.16.0" } }, "https-proxy-agent": { @@ -5950,8 +5944,8 @@ "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", "dev": true, "requires": { - "agent-base": "^4.1.0", - "debug": "^3.1.0" + "agent-base": "4.2.1", + "debug": "3.1.0" } }, "iconv-lite": { @@ -5959,7 +5953,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": "2.1.2" } }, "ieee754": { @@ -5978,8 +5972,8 @@ "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", "dev": true, "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" + "caller-path": "2.0.0", + "resolve-from": "3.0.0" }, "dependencies": { "caller-path": { @@ -5988,7 +5982,7 @@ "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", "dev": true, "requires": { - "caller-callsite": "^2.0.0" + "caller-callsite": "2.0.0" } }, "resolve-from": { @@ -6005,7 +5999,7 @@ "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", "dev": true, "requires": { - "resolve-from": "^3.0.0" + "resolve-from": "3.0.0" }, "dependencies": { "resolve-from": { @@ -6037,8 +6031,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -6056,20 +6050,20 @@ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", + "ansi-escapes": "3.1.0", + "chalk": "2.4.1", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.2.0", + "figures": "2.0.0", + "lodash": "4.17.11", "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" + "run-async": "2.3.0", + "rx-lite": "4.0.8", + "rx-lite-aggregates": "4.0.8", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" }, "dependencies": { "ansi-regex": { @@ -6082,7 +6076,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -6093,8 +6087,8 @@ "integrity": "sha512-i29KNyE5r0Y/UQzcQ0IbZO1MYJ53Jn0EcFRZPj5FzWKYH17kDFEOwuA+3jroymOI06SW1dEDnly9A1CAreC5dg==", "dev": true, "requires": { - "from2": "^2.1.1", - "p-is-promise": "^2.0.0" + "from2": "2.3.0", + "p-is-promise": "2.0.0" } }, "invariant": { @@ -6102,7 +6096,7 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "loose-envify": "^1.0.0" + "loose-envify": "1.4.0" } }, "invert-kv": { @@ -6115,7 +6109,7 @@ "resolved": "http://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-arrayish": { @@ -6129,7 +6123,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "optional": true, "requires": { - "binary-extensions": "^1.0.0" + "binary-extensions": "1.12.0" } }, "is-buffer": { @@ -6142,7 +6136,7 @@ "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-callable": { @@ -6155,7 +6149,7 @@ "resolved": "http://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-date-object": { @@ -6168,9 +6162,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" }, "dependencies": { "kind-of": { @@ -6198,7 +6192,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "optional": true, "requires": { - "is-primitive": "^2.0.0" + "is-primitive": "2.0.0" } }, "is-extendable": { @@ -6216,7 +6210,7 @@ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { @@ -6229,7 +6223,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "is-number": { @@ -6238,7 +6232,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "optional": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-obj": { @@ -6258,7 +6252,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -6290,7 +6284,7 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "requires": { - "has": "^1.0.1" + "has": "1.0.3" } }, "is-resolvable": { @@ -6314,7 +6308,7 @@ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", "requires": { - "has-symbols": "^1.0.0" + "has-symbols": "1.0.0" } }, "is-text-path": { @@ -6323,7 +6317,7 @@ "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", "dev": true, "requires": { - "text-extensions": "^1.0.0" + "text-extensions": "1.9.0" } }, "is-typedarray": { @@ -6368,11 +6362,11 @@ "integrity": "sha512-5wdT3EE8Kq38x/hJD8QZCJ9scGoOZ5QnzwXyClkviSWTS+xOCE6hJ0qco3H5n5jCsFqpbofZCcMWqlXJzF72VQ==", "dev": true, "requires": { - "lodash.capitalize": "^4.2.1", - "lodash.escaperegexp": "^4.1.2", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.uniqby": "^4.7.0" + "lodash.capitalize": "4.2.1", + "lodash.escaperegexp": "4.1.2", + "lodash.isplainobject": "4.0.6", + "lodash.isstring": "4.0.1", + "lodash.uniqby": "4.7.0" } }, "istanbul-lib-coverage": { @@ -6385,13 +6379,13 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.0.0.tgz", "integrity": "sha512-eQY9vN9elYjdgN9Iv6NS/00bptm02EBBk70lRMaVjeA6QYocQgenVrSgC28TJurdnZa80AGO3ASdFN+w/njGiQ==", "requires": { - "@babel/generator": "^7.0.0", - "@babel/parser": "^7.0.0", - "@babel/template": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", - "istanbul-lib-coverage": "^2.0.1", - "semver": "^5.5.0" + "@babel/generator": "7.2.2", + "@babel/parser": "7.2.3", + "@babel/template": "7.2.2", + "@babel/traverse": "7.2.3", + "@babel/types": "7.2.2", + "istanbul-lib-coverage": "2.0.1", + "semver": "5.6.0" } }, "java-properties": { @@ -6416,8 +6410,8 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "1.0.10", + "esprima": "4.0.1" } }, "jsbn": { @@ -6469,7 +6463,7 @@ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { - "graceful-fs": "^4.1.6" + "graceful-fs": "4.1.15" } }, "jsonparse": { @@ -6495,7 +6489,7 @@ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", "requires": { - "array-includes": "^3.0.3" + "array-includes": "3.0.3" } }, "just-extend": { @@ -6509,10 +6503,10 @@ "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", "requires": { - "bindings": "^1.2.1", - "inherits": "^2.0.3", - "nan": "^2.2.1", - "safe-buffer": "^5.1.0" + "bindings": "1.3.1", + "inherits": "2.0.3", + "nan": "2.12.1", + "safe-buffer": "5.1.2" }, "dependencies": { "inherits": { @@ -6527,7 +6521,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "lcid": { @@ -6535,7 +6529,7 @@ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "lcov-parse": { @@ -6549,8 +6543,8 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "1.1.2", + "type-check": "0.3.2" } }, "load-json-file": { @@ -6558,10 +6552,10 @@ "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.15", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" } }, "locate-path": { @@ -6569,8 +6563,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "2.0.0", + "path-exists": "3.0.0" }, "dependencies": { "path-exists": { @@ -6667,7 +6661,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" + "js-tokens": "3.0.2" } }, "loud-rejection": { @@ -6676,8 +6670,8 @@ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" + "currently-unhandled": "0.4.1", + "signal-exit": "3.0.2" } }, "lru-cache": { @@ -6685,8 +6679,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "macos-release": { @@ -6700,7 +6694,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" }, "dependencies": { "pify": { @@ -6716,7 +6710,7 @@ "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", "dev": true, "requires": { - "p-defer": "^1.0.0" + "p-defer": "1.0.0" } }, "map-cache": { @@ -6735,7 +6729,7 @@ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { - "object-visit": "^1.0.0" + "object-visit": "1.0.1" } }, "marked": { @@ -6750,11 +6744,11 @@ "integrity": "sha512-7UBFww1rdx0w9HehLMCVYa8/AxXaiDigDfMsJcj82/wgLQG9cj+oiMAVlJpeWD57VFJY2OYY+bKeEVIjIlxi+w==", "dev": true, "requires": { - "cardinal": "^2.1.1", - "chalk": "^2.4.1", - "cli-table": "^0.3.1", - "lodash.assign": "^4.2.0", - "node-emoji": "^1.4.1" + "cardinal": "2.1.1", + "chalk": "2.4.1", + "cli-table": "0.3.1", + "lodash.assign": "4.2.0", + "node-emoji": "1.8.1" } }, "math-random": { @@ -6768,9 +6762,9 @@ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "hash-base": "3.0.4", + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "media-typer": { @@ -6784,7 +6778,7 @@ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "meow": { @@ -6793,15 +6787,15 @@ "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", "dev": true, "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist": "^1.1.3", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0" + "camelcase-keys": "4.2.0", + "decamelize-keys": "1.1.0", + "loud-rejection": "1.6.0", + "minimist": "1.2.0", + "minimist-options": "3.0.2", + "normalize-package-data": "2.4.0", + "read-pkg-up": "3.0.0", + "redent": "2.0.0", + "trim-newlines": "2.0.0" }, "dependencies": { "find-up": { @@ -6810,7 +6804,7 @@ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "load-json-file": { @@ -6819,10 +6813,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.15", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" } }, "minimist": { @@ -6837,8 +6831,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" } }, "path-type": { @@ -6847,7 +6841,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "pify": { @@ -6862,9 +6856,9 @@ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" + "load-json-file": "4.0.0", + "normalize-package-data": "2.4.0", + "path-type": "3.0.0" } }, "read-pkg-up": { @@ -6873,8 +6867,8 @@ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" + "find-up": "2.1.0", + "read-pkg": "3.0.0" } } } @@ -6908,19 +6902,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "optional": true, "requires": { - "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" + "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" } }, "mime": { @@ -6939,7 +6933,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", "requires": { - "mime-db": "~1.37.0" + "mime-db": "1.37.0" } }, "mimic-fn": { @@ -6962,7 +6956,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -6976,8 +6970,8 @@ "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", "dev": true, "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0" + "arrify": "1.0.1", + "is-plain-obj": "1.1.0" } }, "mixin-deep": { @@ -6985,8 +6979,8 @@ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" + "for-in": "1.0.2", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -6994,7 +6988,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -7038,12 +7032,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "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" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.1", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "supports-color": { @@ -7052,7 +7046,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -7083,17 +7077,17 @@ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "arr-diff": { @@ -7152,11 +7146,11 @@ "integrity": "sha512-kGASVhuL4tlAV0tvA34yJYZIVihrUt/5bDwpp4tTluigxUr2bBlJeDXmivb6NuEdFkqvdv/Ybb9dm16PSKUhtw==", "dev": true, "requires": { - "@sinonjs/formatio": "^3.1.0", - "just-extend": "^4.0.2", - "lolex": "^2.3.2", - "path-to-regexp": "^1.7.0", - "text-encoding": "^0.6.4" + "@sinonjs/formatio": "3.1.0", + "just-extend": "4.0.2", + "lolex": "2.7.5", + "path-to-regexp": "1.7.0", + "text-encoding": "0.6.4" }, "dependencies": { "@sinonjs/formatio": { @@ -7165,7 +7159,7 @@ "integrity": "sha512-ZAR2bPHOl4Xg6eklUGpsdiIJ4+J1SNag1DHHrG/73Uz/nVwXqjgUtRPLoS+aVyieN9cSbc0E4LsU984tWcDyNg==", "dev": true, "requires": { - "@sinonjs/samsam": "^2 || ^3" + "@sinonjs/samsam": "3.0.2" } } } @@ -7180,7 +7174,7 @@ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", "requires": { - "lodash.toarray": "^4.4.0" + "lodash.toarray": "4.4.0" } }, "node-fetch": { @@ -7195,16 +7189,16 @@ "integrity": "sha512-wayzLNhEroH3lJj113pFKQ1cd1GKG1mXoZR1HcKp/o9a9lTGGgVY/hYeLajiIFr/z4tXFKOdfJickqqihBtn9g==", "dev": true, "requires": { - "accepts": "^1.3.5", - "depd": "^1.1.0", - "fresh": "^0.5.2", - "merge-descriptors": "^1.0.1", - "methods": "^1.1.2", - "mime": "^1.3.4", - "net": "^1.0.2", - "parseurl": "^1.3.1", - "range-parser": "^1.2.0", - "type-is": "^1.6.16" + "accepts": "1.3.5", + "depd": "1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "1.1.2", + "mime": "1.6.0", + "net": "1.0.2", + "parseurl": "1.3.2", + "range-parser": "1.2.0", + "type-is": "1.6.16" } }, "nopt": { @@ -7212,7 +7206,7 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "requires": { - "abbrev": "1" + "abbrev": "1.1.1" } }, "normalize-package-data": { @@ -7220,10 +7214,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.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.7.1", + "is-builtin-module": "1.0.0", + "semver": "5.6.0", + "validate-npm-package-license": "3.0.4" } }, "normalize-path": { @@ -7231,7 +7225,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { - "remove-trailing-separator": "^1.0.1" + "remove-trailing-separator": "1.1.0" } }, "normalize-url": { @@ -7246,124 +7240,124 @@ "integrity": "sha512-SPq8zG2Kto+Xrq55E97O14Jla13PmQT5kSnvwBj88BmJZ5Nvw++OmlWfhjkB67pcgP5UEXljEtnGFKZtOgt6MQ==", "dev": true, "requires": { - "JSONStream": "^1.3.4", - "abbrev": "~1.1.1", - "ansicolors": "~0.3.2", - "ansistyles": "~0.1.3", - "aproba": "~1.2.0", - "archy": "~1.0.0", - "bin-links": "^1.1.2", - "bluebird": "^3.5.3", - "byte-size": "^4.0.3", - "cacache": "^11.2.0", - "call-limit": "~1.1.0", - "chownr": "~1.0.1", - "ci-info": "^1.6.0", - "cli-columns": "^3.1.2", - "cli-table3": "^0.5.0", - "cmd-shim": "~2.0.2", - "columnify": "~1.5.4", - "config-chain": "^1.1.12", - "debuglog": "*", - "detect-indent": "~5.0.0", - "detect-newline": "^2.1.0", - "dezalgo": "~1.0.3", - "editor": "~1.0.0", - "figgy-pudding": "^3.5.1", - "find-npm-prefix": "^1.0.2", - "fs-vacuum": "~1.2.10", - "fs-write-stream-atomic": "~1.0.10", - "gentle-fs": "^2.0.1", - "glob": "^7.1.3", - "graceful-fs": "^4.1.15", - "has-unicode": "~2.0.1", - "hosted-git-info": "^2.7.1", - "iferr": "^1.0.2", - "imurmurhash": "*", - "inflight": "~1.0.6", - "inherits": "~2.0.3", - "ini": "^1.3.5", - "init-package-json": "^1.10.3", - "is-cidr": "^2.0.6", - "json-parse-better-errors": "^1.0.2", - "lazy-property": "~1.0.0", - "libcipm": "^2.0.2", - "libnpmhook": "^4.0.1", - "libnpx": "^10.2.0", - "lock-verify": "^2.0.2", - "lockfile": "^1.0.4", - "lodash._baseindexof": "*", - "lodash._baseuniq": "~4.6.0", - "lodash._bindcallback": "*", - "lodash._cacheindexof": "*", - "lodash._createcache": "*", - "lodash._getnative": "*", - "lodash.clonedeep": "~4.5.0", - "lodash.restparam": "*", - "lodash.union": "~4.6.0", - "lodash.uniq": "~4.5.0", - "lodash.without": "~4.4.0", - "lru-cache": "^4.1.3", - "meant": "~1.0.1", - "mississippi": "^3.0.0", - "mkdirp": "~0.5.1", - "move-concurrently": "^1.0.1", - "node-gyp": "^3.8.0", - "nopt": "~4.0.1", - "normalize-package-data": "~2.4.0", - "npm-audit-report": "^1.3.1", - "npm-cache-filename": "~1.0.2", - "npm-install-checks": "~3.0.0", - "npm-lifecycle": "^2.1.0", - "npm-package-arg": "^6.1.0", - "npm-packlist": "^1.1.12", - "npm-pick-manifest": "^2.1.0", - "npm-profile": "^3.0.2", - "npm-registry-client": "^8.6.0", - "npm-registry-fetch": "^1.1.0", - "npm-user-validate": "~1.0.0", - "npmlog": "~4.1.2", - "once": "~1.4.0", - "opener": "^1.5.1", - "osenv": "^0.1.5", - "pacote": "^8.1.6", - "path-is-inside": "~1.0.2", - "promise-inflight": "~1.0.1", - "qrcode-terminal": "^0.12.0", - "query-string": "^6.1.0", - "qw": "~1.0.1", - "read": "~1.0.7", - "read-cmd-shim": "~1.0.1", - "read-installed": "~4.0.3", - "read-package-json": "^2.0.13", - "read-package-tree": "^5.2.1", - "readable-stream": "^2.3.6", - "readdir-scoped-modules": "*", - "request": "^2.88.0", - "retry": "^0.12.0", - "rimraf": "~2.6.2", - "safe-buffer": "^5.1.2", - "semver": "^5.5.1", - "sha": "~2.0.1", - "slide": "~1.1.6", - "sorted-object": "~2.0.1", - "sorted-union-stream": "~2.1.3", - "ssri": "^6.0.1", - "stringify-package": "^1.0.0", - "tar": "^4.4.8", - "text-table": "~0.2.0", - "tiny-relative-date": "^1.3.0", + "JSONStream": "1.3.4", + "abbrev": "1.1.1", + "ansicolors": "0.3.2", + "ansistyles": "0.1.3", + "aproba": "1.2.0", + "archy": "1.0.0", + "bin-links": "1.1.2", + "bluebird": "3.5.3", + "byte-size": "4.0.3", + "cacache": "11.2.0", + "call-limit": "1.1.0", + "chownr": "1.0.1", + "ci-info": "1.6.0", + "cli-columns": "3.1.2", + "cli-table3": "0.5.0", + "cmd-shim": "2.0.2", + "columnify": "1.5.4", + "config-chain": "1.1.12", + "debuglog": "1.0.1", + "detect-indent": "5.0.0", + "detect-newline": "2.1.0", + "dezalgo": "1.0.3", + "editor": "1.0.0", + "figgy-pudding": "3.5.1", + "find-npm-prefix": "1.0.2", + "fs-vacuum": "1.2.10", + "fs-write-stream-atomic": "1.0.10", + "gentle-fs": "2.0.1", + "glob": "7.1.3", + "graceful-fs": "4.1.15", + "has-unicode": "2.0.1", + "hosted-git-info": "2.7.1", + "iferr": "1.0.2", + "imurmurhash": "0.1.4", + "inflight": "1.0.6", + "inherits": "2.0.3", + "ini": "1.3.5", + "init-package-json": "1.10.3", + "is-cidr": "2.0.6", + "json-parse-better-errors": "1.0.2", + "lazy-property": "1.0.0", + "libcipm": "2.0.2", + "libnpmhook": "4.0.1", + "libnpx": "10.2.0", + "lock-verify": "2.0.2", + "lockfile": "1.0.4", + "lodash._baseindexof": "3.1.0", + "lodash._baseuniq": "4.6.0", + "lodash._bindcallback": "3.0.1", + "lodash._cacheindexof": "3.0.2", + "lodash._createcache": "3.1.2", + "lodash._getnative": "3.9.1", + "lodash.clonedeep": "4.5.0", + "lodash.restparam": "3.6.1", + "lodash.union": "4.6.0", + "lodash.uniq": "4.5.0", + "lodash.without": "4.4.0", + "lru-cache": "4.1.3", + "meant": "1.0.1", + "mississippi": "3.0.0", + "mkdirp": "0.5.1", + "move-concurrently": "1.0.1", + "node-gyp": "3.8.0", + "nopt": "4.0.1", + "normalize-package-data": "2.4.0", + "npm-audit-report": "1.3.1", + "npm-cache-filename": "1.0.2", + "npm-install-checks": "3.0.0", + "npm-lifecycle": "2.1.0", + "npm-package-arg": "6.1.0", + "npm-packlist": "1.1.12", + "npm-pick-manifest": "2.1.0", + "npm-profile": "3.0.2", + "npm-registry-client": "8.6.0", + "npm-registry-fetch": "1.1.0", + "npm-user-validate": "1.0.0", + "npmlog": "4.1.2", + "once": "1.4.0", + "opener": "1.5.1", + "osenv": "0.1.5", + "pacote": "8.1.6", + "path-is-inside": "1.0.2", + "promise-inflight": "1.0.1", + "qrcode-terminal": "0.12.0", + "query-string": "6.1.0", + "qw": "1.0.1", + "read": "1.0.7", + "read-cmd-shim": "1.0.1", + "read-installed": "4.0.3", + "read-package-json": "2.0.13", + "read-package-tree": "5.2.1", + "readable-stream": "2.3.6", + "readdir-scoped-modules": "1.0.2", + "request": "2.88.0", + "retry": "0.12.0", + "rimraf": "2.6.2", + "safe-buffer": "5.1.2", + "semver": "5.5.1", + "sha": "2.0.1", + "slide": "1.1.6", + "sorted-object": "2.0.1", + "sorted-union-stream": "2.1.3", + "ssri": "6.0.1", + "stringify-package": "1.0.0", + "tar": "4.4.8", + "text-table": "0.2.0", + "tiny-relative-date": "1.3.0", "uid-number": "0.0.6", - "umask": "~1.1.0", - "unique-filename": "~1.1.0", - "unpipe": "~1.0.0", - "update-notifier": "^2.5.0", - "uuid": "^3.3.2", - "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "~3.0.0", - "which": "^1.3.1", - "worker-farm": "^1.6.0", - "write-file-atomic": "^2.3.0" + "umask": "1.1.0", + "unique-filename": "1.1.0", + "unpipe": "1.0.0", + "update-notifier": "2.5.0", + "uuid": "3.3.2", + "validate-npm-package-license": "3.0.4", + "validate-npm-package-name": "3.0.0", + "which": "1.3.1", + "worker-farm": "1.6.0", + "write-file-atomic": "2.3.0" }, "dependencies": { "JSONStream": { @@ -7372,8 +7366,8 @@ "integrity": "sha512-Y7vfi3I5oMOYIr+WxV8NZxDSwcbNgzdKYsTNInmycOq9bUYwGg9ryu57Wg5NLmCjqdFPNUmpMBo3kSJN9tCbXg==", "dev": true, "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" + "jsonparse": "1.3.1", + "through": "2.3.8" } }, "abbrev": { @@ -7388,7 +7382,7 @@ "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", "dev": true, "requires": { - "es6-promisify": "^5.0.0" + "es6-promisify": "5.0.0" } }, "agentkeepalive": { @@ -7397,7 +7391,7 @@ "integrity": "sha512-MPIwsZU9PP9kOrZpyu2042kYA8Fdt/AedQYkYXucHgF9QoD9dXVp0ypuGnHXSR0hTstBxdt85Xkh4JolYfK5wg==", "dev": true, "requires": { - "humanize-ms": "^1.2.1" + "humanize-ms": "1.2.1" } }, "ajv": { @@ -7406,10 +7400,10 @@ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" } }, "ansi-align": { @@ -7418,7 +7412,7 @@ "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "dev": true, "requires": { - "string-width": "^2.0.0" + "string-width": "2.1.1" } }, "ansi-regex": { @@ -7433,7 +7427,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "color-convert": "1.9.1" } }, "ansicolors": { @@ -7466,8 +7460,8 @@ "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "dev": true, "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "delegates": "1.0.0", + "readable-stream": "2.3.6" } }, "asap": { @@ -7482,7 +7476,7 @@ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, "requires": { - "safer-buffer": "~2.1.0" + "safer-buffer": "2.1.2" } }, "assert-plus": { @@ -7522,7 +7516,7 @@ "dev": true, "optional": true, "requires": { - "tweetnacl": "^0.14.3" + "tweetnacl": "0.14.5" } }, "bin-links": { @@ -7531,11 +7525,11 @@ "integrity": "sha512-8eEHVgYP03nILphilltWjeIjMbKyJo3wvp9K816pHbhP301ismzw15mxAAEVQ/USUwcP++1uNrbERbp8lOA6Fg==", "dev": true, "requires": { - "bluebird": "^3.5.0", - "cmd-shim": "^2.0.2", - "gentle-fs": "^2.0.0", - "graceful-fs": "^4.1.11", - "write-file-atomic": "^2.3.0" + "bluebird": "3.5.3", + "cmd-shim": "2.0.2", + "gentle-fs": "2.0.1", + "graceful-fs": "4.1.15", + "write-file-atomic": "2.3.0" } }, "block-stream": { @@ -7544,7 +7538,7 @@ "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "dev": true, "requires": { - "inherits": "~2.0.0" + "inherits": "2.0.3" } }, "bluebird": { @@ -7559,13 +7553,13 @@ "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", "dev": true, "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" + "ansi-align": "2.0.0", + "camelcase": "4.1.0", + "chalk": "2.4.1", + "cli-boxes": "1.0.0", + "string-width": "2.1.1", + "term-size": "1.2.0", + "widest-line": "2.0.0" } }, "brace-expansion": { @@ -7574,7 +7568,7 @@ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -7614,20 +7608,20 @@ "integrity": "sha512-IFWl6lfK6wSeYCHUXh+N1lY72UDrpyrYQJNIVQf48paDuWbv5RbAtJYf/4gUQFObTCHZwdZ5sI8Iw7nqwP6nlQ==", "dev": true, "requires": { - "bluebird": "^3.5.1", - "chownr": "^1.0.1", - "figgy-pudding": "^3.1.0", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "lru-cache": "^4.1.3", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", - "ssri": "^6.0.0", - "unique-filename": "^1.1.0", - "y18n": "^4.0.0" + "bluebird": "3.5.3", + "chownr": "1.0.1", + "figgy-pudding": "3.5.1", + "glob": "7.1.3", + "graceful-fs": "4.1.15", + "lru-cache": "4.1.3", + "mississippi": "3.0.0", + "mkdirp": "0.5.1", + "move-concurrently": "1.0.1", + "promise-inflight": "1.0.1", + "rimraf": "2.6.2", + "ssri": "6.0.1", + "unique-filename": "1.1.0", + "y18n": "4.0.0" } }, "call-limit": { @@ -7660,9 +7654,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.4.0" } }, "chownr": { @@ -7683,7 +7677,7 @@ "integrity": "sha512-F7/fBRUU45FnvSPjXdpIrc++WRSBdCiSTlyq4ZNhLKOlHFNWgtzZ0Fd+zrqI/J1j0wmlx/f5ZQDmD2GcbrNcmw==", "dev": true, "requires": { - "ip-regex": "^2.1.0" + "ip-regex": "2.1.0" } }, "cli-boxes": { @@ -7698,8 +7692,8 @@ "integrity": "sha1-ZzLZcpee/CrkRKHwjgj6E5yWoY4=", "dev": true, "requires": { - "string-width": "^2.0.0", - "strip-ansi": "^3.0.1" + "string-width": "2.1.1", + "strip-ansi": "3.0.1" } }, "cli-table3": { @@ -7708,9 +7702,9 @@ "integrity": "sha512-c7YHpUyO1SaKaO7kYtxd5NZ8FjAmSK3LpKkuzdwn+2CwpFxBpdoQLm+OAnnCfoEl7onKhN9PKQi1lsHuAIUqGQ==", "dev": true, "requires": { - "colors": "^1.1.2", - "object-assign": "^4.1.0", - "string-width": "^2.1.1" + "colors": "1.1.2", + "object-assign": "4.1.1", + "string-width": "2.1.1" } }, "cliui": { @@ -7719,9 +7713,9 @@ "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" + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" }, "dependencies": { "ansi-regex": { @@ -7736,7 +7730,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -7753,8 +7747,8 @@ "integrity": "sha1-b8vamUg6j9FdfTChlspp1oii79s=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "mkdirp": "~0.5.0" + "graceful-fs": "4.1.15", + "mkdirp": "0.5.1" } }, "co": { @@ -7775,7 +7769,7 @@ "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", "dev": true, "requires": { - "color-name": "^1.1.1" + "color-name": "1.1.3" } }, "color-name": { @@ -7797,8 +7791,8 @@ "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=", "dev": true, "requires": { - "strip-ansi": "^3.0.0", - "wcwidth": "^1.0.0" + "strip-ansi": "3.0.1", + "wcwidth": "1.0.1" } }, "combined-stream": { @@ -7807,7 +7801,7 @@ "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "dev": true, "requires": { - "delayed-stream": "~1.0.0" + "delayed-stream": "1.0.0" } }, "concat-map": { @@ -7822,10 +7816,10 @@ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "buffer-from": "1.0.0", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "typedarray": "0.0.6" } }, "config-chain": { @@ -7834,8 +7828,8 @@ "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", "dev": true, "requires": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" + "ini": "1.3.5", + "proto-list": "1.2.4" } }, "configstore": { @@ -7844,12 +7838,12 @@ "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", "dev": true, "requires": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" + "dot-prop": "4.2.0", + "graceful-fs": "4.1.15", + "make-dir": "1.3.0", + "unique-string": "1.0.0", + "write-file-atomic": "2.3.0", + "xdg-basedir": "3.0.0" } }, "console-control-strings": { @@ -7864,12 +7858,12 @@ "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", "dev": true, "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" + "aproba": "1.2.0", + "fs-write-stream-atomic": "1.0.10", + "iferr": "0.1.5", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "run-queue": "1.0.3" }, "dependencies": { "iferr": { @@ -7892,7 +7886,7 @@ "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "dev": true, "requires": { - "capture-stack-trace": "^1.0.0" + "capture-stack-trace": "1.0.0" } }, "cross-spawn": { @@ -7901,9 +7895,9 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.1" } }, "crypto-random-string": { @@ -7924,7 +7918,7 @@ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "debug": { @@ -7974,7 +7968,7 @@ "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "dev": true, "requires": { - "clone": "^1.0.2" + "clone": "1.0.4" } }, "delayed-stream": { @@ -8007,8 +8001,8 @@ "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", "dev": true, "requires": { - "asap": "^2.0.0", - "wrappy": "1" + "asap": "2.0.6", + "wrappy": "1.0.2" } }, "dot-prop": { @@ -8017,7 +8011,7 @@ "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", "dev": true, "requires": { - "is-obj": "^1.0.0" + "is-obj": "1.0.1" } }, "dotenv": { @@ -8038,10 +8032,10 @@ "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", "dev": true, "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" + "end-of-stream": "1.4.1", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "stream-shift": "1.0.0" } }, "ecc-jsbn": { @@ -8051,8 +8045,8 @@ "dev": true, "optional": true, "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "jsbn": "0.1.1", + "safer-buffer": "2.1.2" } }, "editor": { @@ -8067,7 +8061,7 @@ "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "dev": true, "requires": { - "iconv-lite": "~0.4.13" + "iconv-lite": "0.4.23" } }, "end-of-stream": { @@ -8076,7 +8070,7 @@ "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "dev": true, "requires": { - "once": "^1.4.0" + "once": "1.4.0" } }, "err-code": { @@ -8091,7 +8085,7 @@ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "dev": true, "requires": { - "prr": "~1.0.1" + "prr": "1.0.1" } }, "es6-promise": { @@ -8106,7 +8100,7 @@ "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "dev": true, "requires": { - "es6-promise": "^4.0.3" + "es6-promise": "4.2.4" } }, "escape-string-regexp": { @@ -8121,13 +8115,13 @@ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { - "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" + "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" } }, "extend": { @@ -8172,7 +8166,7 @@ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "flush-write-stream": { @@ -8181,8 +8175,8 @@ "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", "dev": true, "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.4" + "inherits": "2.0.3", + "readable-stream": "2.3.6" } }, "forever-agent": { @@ -8197,9 +8191,9 @@ "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "dev": true, "requires": { - "asynckit": "^0.4.0", + "asynckit": "0.4.0", "combined-stream": "1.0.6", - "mime-types": "^2.1.12" + "mime-types": "2.1.19" } }, "from2": { @@ -8208,8 +8202,8 @@ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "inherits": "2.0.3", + "readable-stream": "2.3.6" } }, "fs-minipass": { @@ -8218,7 +8212,7 @@ "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", "dev": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.3.3" } }, "fs-vacuum": { @@ -8227,9 +8221,9 @@ "integrity": "sha1-t2Kb7AekAxolSP35n17PHMizHjY=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "path-is-inside": "^1.0.1", - "rimraf": "^2.5.2" + "graceful-fs": "4.1.15", + "path-is-inside": "1.0.2", + "rimraf": "2.6.2" } }, "fs-write-stream-atomic": { @@ -8238,10 +8232,10 @@ "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" + "graceful-fs": "4.1.15", + "iferr": "0.1.5", + "imurmurhash": "0.1.4", + "readable-stream": "2.3.6" }, "dependencies": { "iferr": { @@ -8264,10 +8258,10 @@ "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" + "graceful-fs": "4.1.15", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.2" } }, "gauge": { @@ -8276,14 +8270,14 @@ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "requires": { - "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" + "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" }, "dependencies": { "string-width": { @@ -8292,9 +8286,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -8311,14 +8305,14 @@ "integrity": "sha512-cEng5+3fuARewXktTEGbwsktcldA+YsnUEaXZwcK/3pjSE1X9ObnTs+/8rYf8s+RnIcQm2D5x3rwpN7Zom8Bew==", "dev": true, "requires": { - "aproba": "^1.1.2", - "fs-vacuum": "^1.2.10", - "graceful-fs": "^4.1.11", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "path-is-inside": "^1.0.2", - "read-cmd-shim": "^1.0.1", - "slide": "^1.1.6" + "aproba": "1.2.0", + "fs-vacuum": "1.2.10", + "graceful-fs": "4.1.15", + "iferr": "0.1.5", + "mkdirp": "0.5.1", + "path-is-inside": "1.0.2", + "read-cmd-shim": "1.0.1", + "slide": "1.1.6" }, "dependencies": { "iferr": { @@ -8347,7 +8341,7 @@ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "glob": { @@ -8356,12 +8350,12 @@ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "dev": true, "requires": { - "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" + "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" } }, "global-dirs": { @@ -8370,7 +8364,7 @@ "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "dev": true, "requires": { - "ini": "^1.3.4" + "ini": "1.3.5" } }, "got": { @@ -8379,17 +8373,17 @@ "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "dev": true, "requires": { - "create-error-class": "^3.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" + "create-error-class": "3.0.2", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "is-redirect": "1.0.0", + "is-retry-allowed": "1.1.0", + "is-stream": "1.1.0", + "lowercase-keys": "1.0.1", + "safe-buffer": "5.1.2", + "timed-out": "4.0.1", + "unzip-response": "2.0.1", + "url-parse-lax": "1.0.0" } }, "graceful-fs": { @@ -8410,8 +8404,8 @@ "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", "dev": true, "requires": { - "ajv": "^5.3.0", - "har-schema": "^2.0.0" + "ajv": "5.5.2", + "har-schema": "2.0.0" } }, "has-flag": { @@ -8444,7 +8438,7 @@ "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", "dev": true, "requires": { - "agent-base": "4", + "agent-base": "4.2.0", "debug": "3.1.0" } }, @@ -8454,9 +8448,9 @@ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.14.2" } }, "https-proxy-agent": { @@ -8465,8 +8459,8 @@ "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", "dev": true, "requires": { - "agent-base": "^4.1.0", - "debug": "^3.1.0" + "agent-base": "4.2.0", + "debug": "3.1.0" } }, "humanize-ms": { @@ -8475,7 +8469,7 @@ "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", "dev": true, "requires": { - "ms": "^2.0.0" + "ms": "2.1.1" } }, "iconv-lite": { @@ -8484,7 +8478,7 @@ "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "dev": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": "2.1.2" } }, "iferr": { @@ -8499,7 +8493,7 @@ "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "dev": true, "requires": { - "minimatch": "^3.0.4" + "minimatch": "3.0.4" } }, "import-lazy": { @@ -8520,8 +8514,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -8542,14 +8536,14 @@ "integrity": "sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==", "dev": true, "requires": { - "glob": "^7.1.1", - "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0", - "promzard": "^0.3.0", - "read": "~1.0.1", - "read-package-json": "1 || 2", - "semver": "2.x || 3.x || 4 || 5", - "validate-npm-package-license": "^3.0.1", - "validate-npm-package-name": "^3.0.0" + "glob": "7.1.3", + "npm-package-arg": "6.1.0", + "promzard": "0.3.0", + "read": "1.0.7", + "read-package-json": "2.0.13", + "semver": "5.5.1", + "validate-npm-package-license": "3.0.4", + "validate-npm-package-name": "3.0.0" } }, "invert-kv": { @@ -8576,7 +8570,7 @@ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-ci": { @@ -8585,7 +8579,7 @@ "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", "dev": true, "requires": { - "ci-info": "^1.0.0" + "ci-info": "1.6.0" } }, "is-cidr": { @@ -8594,7 +8588,7 @@ "integrity": "sha512-A578p1dV22TgPXn6NCaDAPj6vJvYsBgAzUrAd28a4oldeXJjWqEUuSZOLIW3im51mazOKsoyVp8NU/OItlWacw==", "dev": true, "requires": { - "cidr-regex": "^2.0.8" + "cidr-regex": "2.0.9" } }, "is-fullwidth-code-point": { @@ -8603,7 +8597,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-installed-globally": { @@ -8612,8 +8606,8 @@ "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "dev": true, "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" + "global-dirs": "0.1.1", + "is-path-inside": "1.0.1" } }, "is-npm": { @@ -8634,7 +8628,7 @@ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "requires": { - "path-is-inside": "^1.0.1" + "path-is-inside": "1.0.2" } }, "is-redirect": { @@ -8734,7 +8728,7 @@ "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", "dev": true, "requires": { - "package-json": "^4.0.0" + "package-json": "4.0.1" } }, "lazy-property": { @@ -8749,7 +8743,7 @@ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "libcipm": { @@ -8758,20 +8752,20 @@ "integrity": "sha512-9uZ6/LAflVEijksTRq/RX0e+pGA4mr8tND9Cmk2JMg7j2fFUBrs8PpFX2DOAJR/XoxPzz+5h8bkWmtIYLunKAg==", "dev": true, "requires": { - "bin-links": "^1.1.2", - "bluebird": "^3.5.1", - "find-npm-prefix": "^1.0.2", - "graceful-fs": "^4.1.11", - "lock-verify": "^2.0.2", - "mkdirp": "^0.5.1", - "npm-lifecycle": "^2.0.3", - "npm-logical-tree": "^1.2.1", - "npm-package-arg": "^6.1.0", - "pacote": "^8.1.6", - "protoduck": "^5.0.0", - "read-package-json": "^2.0.13", - "rimraf": "^2.6.2", - "worker-farm": "^1.6.0" + "bin-links": "1.1.2", + "bluebird": "3.5.3", + "find-npm-prefix": "1.0.2", + "graceful-fs": "4.1.15", + "lock-verify": "2.0.2", + "mkdirp": "0.5.1", + "npm-lifecycle": "2.1.0", + "npm-logical-tree": "1.2.1", + "npm-package-arg": "6.1.0", + "pacote": "8.1.6", + "protoduck": "5.0.0", + "read-package-json": "2.0.13", + "rimraf": "2.6.2", + "worker-farm": "1.6.0" } }, "libnpmhook": { @@ -8780,8 +8774,8 @@ "integrity": "sha512-3qqpfqvBD1712WA6iGe0stkG40WwAeoWcujA6BlC0Be1JArQbqwabnEnZ0CRcD05Tf1fPYJYdCbSfcfedEJCOg==", "dev": true, "requires": { - "figgy-pudding": "^3.1.0", - "npm-registry-fetch": "^3.0.0" + "figgy-pudding": "3.5.1", + "npm-registry-fetch": "3.1.1" }, "dependencies": { "npm-registry-fetch": { @@ -8790,11 +8784,11 @@ "integrity": "sha512-xBobENeenvjIG8PgQ1dy77AXTI25IbYhmA3DusMIfw/4EL5BaQ5e1V9trkPrqHvyjR3/T0cnH6o0Wt/IzcI5Ag==", "dev": true, "requires": { - "bluebird": "^3.5.1", - "figgy-pudding": "^3.1.0", - "lru-cache": "^4.1.2", - "make-fetch-happen": "^4.0.0", - "npm-package-arg": "^6.0.0" + "bluebird": "3.5.3", + "figgy-pudding": "3.5.1", + "lru-cache": "4.1.3", + "make-fetch-happen": "4.0.1", + "npm-package-arg": "6.1.0" } } } @@ -8805,14 +8799,14 @@ "integrity": "sha512-X28coei8/XRCt15cYStbLBph+KGhFra4VQhRBPuH/HHMkC5dxM8v24RVgUsvODKCrUZ0eTgiTqJp6zbl0sskQQ==", "dev": true, "requires": { - "dotenv": "^5.0.1", - "npm-package-arg": "^6.0.0", - "rimraf": "^2.6.2", - "safe-buffer": "^5.1.0", - "update-notifier": "^2.3.0", - "which": "^1.3.0", - "y18n": "^4.0.0", - "yargs": "^11.0.0" + "dotenv": "5.0.1", + "npm-package-arg": "6.1.0", + "rimraf": "2.6.2", + "safe-buffer": "5.1.2", + "update-notifier": "2.5.0", + "which": "1.3.1", + "y18n": "4.0.0", + "yargs": "11.0.0" } }, "locate-path": { @@ -8821,8 +8815,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" } }, "lock-verify": { @@ -8831,8 +8825,8 @@ "integrity": "sha512-QNVwK0EGZBS4R3YQ7F1Ox8p41Po9VGl2QG/2GsuvTbkJZYSsPeWHKMbbH6iZMCHWSMww5nrJroZYnGzI4cePuw==", "dev": true, "requires": { - "npm-package-arg": "^5.1.2 || 6", - "semver": "^5.4.1" + "npm-package-arg": "6.1.0", + "semver": "5.5.1" } }, "lockfile": { @@ -8841,7 +8835,7 @@ "integrity": "sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==", "dev": true, "requires": { - "signal-exit": "^3.0.2" + "signal-exit": "3.0.2" } }, "lodash._baseindexof": { @@ -8856,8 +8850,8 @@ "integrity": "sha1-DrtE5FaBSveQXGIS+iybLVG4Qeg=", "dev": true, "requires": { - "lodash._createset": "~4.0.0", - "lodash._root": "~3.0.0" + "lodash._createset": "4.0.3", + "lodash._root": "3.0.1" } }, "lodash._bindcallback": { @@ -8878,7 +8872,7 @@ "integrity": "sha1-VtagZAF2JeeevKa4AY4XRAvc8JM=", "dev": true, "requires": { - "lodash._getnative": "^3.0.0" + "lodash._getnative": "3.9.1" } }, "lodash._createset": { @@ -8941,8 +8935,8 @@ "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "dev": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "make-dir": { @@ -8951,7 +8945,7 @@ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "dev": true, "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "make-fetch-happen": { @@ -8960,17 +8954,17 @@ "integrity": "sha512-7R5ivfy9ilRJ1EMKIOziwrns9fGeAD4bAha8EB7BIiBBLHm2KeTUGCrICFt2rbHfzheTLynv50GnNTK1zDTrcQ==", "dev": true, "requires": { - "agentkeepalive": "^3.4.1", - "cacache": "^11.0.1", - "http-cache-semantics": "^3.8.1", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.1", - "lru-cache": "^4.1.2", - "mississippi": "^3.0.0", - "node-fetch-npm": "^2.0.2", - "promise-retry": "^1.1.1", - "socks-proxy-agent": "^4.0.0", - "ssri": "^6.0.0" + "agentkeepalive": "3.4.1", + "cacache": "11.2.0", + "http-cache-semantics": "3.8.1", + "http-proxy-agent": "2.1.0", + "https-proxy-agent": "2.2.1", + "lru-cache": "4.1.3", + "mississippi": "3.0.0", + "node-fetch-npm": "2.0.2", + "promise-retry": "1.1.1", + "socks-proxy-agent": "4.0.1", + "ssri": "6.0.1" } }, "meant": { @@ -8985,7 +8979,7 @@ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "mime-db": { @@ -9000,7 +8994,7 @@ "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", "dev": true, "requires": { - "mime-db": "~1.35.0" + "mime-db": "1.35.0" } }, "mimic-fn": { @@ -9015,7 +9009,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -9030,8 +9024,8 @@ "integrity": "sha512-/jAn9/tEX4gnpyRATxgHEOV6xbcyxgT7iUnxo9Y3+OB0zX00TgKIv/2FZCf5brBbICcwbLqVv2ImjvWWrQMSYw==", "dev": true, "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" + "safe-buffer": "5.1.2", + "yallist": "3.0.2" }, "dependencies": { "yallist": { @@ -9048,7 +9042,7 @@ "integrity": "sha512-TrfjCjk4jLhcJyGMYymBH6oTXcWjYbUAXTHDbtnWHjZC25h0cdajHuPE1zxb4DVmu8crfh+HwH/WMuyLG0nHBg==", "dev": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.3.3" } }, "mississippi": { @@ -9057,16 +9051,16 @@ "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", "dev": true, "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" + "concat-stream": "1.6.2", + "duplexify": "3.6.0", + "end-of-stream": "1.4.1", + "flush-write-stream": "1.0.3", + "from2": "2.3.0", + "parallel-transform": "1.1.0", + "pump": "3.0.0", + "pumpify": "1.5.1", + "stream-each": "1.2.2", + "through2": "2.0.3" } }, "mkdirp": { @@ -9084,12 +9078,12 @@ "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", "dev": true, "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" + "aproba": "1.2.0", + "copy-concurrently": "1.0.5", + "fs-write-stream-atomic": "1.0.10", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "run-queue": "1.0.3" } }, "ms": { @@ -9110,9 +9104,9 @@ "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", "dev": true, "requires": { - "encoding": "^0.1.11", - "json-parse-better-errors": "^1.0.0", - "safe-buffer": "^5.1.1" + "encoding": "0.1.12", + "json-parse-better-errors": "1.0.2", + "safe-buffer": "5.1.2" } }, "node-gyp": { @@ -9121,18 +9115,18 @@ "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", "dev": true, "requires": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" + "fstream": "1.0.11", + "glob": "7.1.3", + "graceful-fs": "4.1.15", + "mkdirp": "0.5.1", + "nopt": "3.0.6", + "npmlog": "4.1.2", + "osenv": "0.1.5", + "request": "2.88.0", + "rimraf": "2.6.2", + "semver": "5.3.0", + "tar": "2.2.1", + "which": "1.3.1" }, "dependencies": { "nopt": { @@ -9141,7 +9135,7 @@ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "dev": true, "requires": { - "abbrev": "1" + "abbrev": "1.1.1" } }, "semver": { @@ -9156,9 +9150,9 @@ "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "dev": true, "requires": { - "block-stream": "*", - "fstream": "^1.0.2", - "inherits": "2" + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" } } } @@ -9169,8 +9163,8 @@ "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "dev": true, "requires": { - "abbrev": "1", - "osenv": "^0.1.4" + "abbrev": "1.1.1", + "osenv": "0.1.5" } }, "normalize-package-data": { @@ -9179,10 +9173,10 @@ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.7.1", + "is-builtin-module": "1.0.0", + "semver": "5.5.1", + "validate-npm-package-license": "3.0.4" } }, "npm-audit-report": { @@ -9191,8 +9185,8 @@ "integrity": "sha512-SjTF8ZP4rOu3JiFrTMi4M1CmVo2tni2sP4TzhyCMHwnMGf6XkdGLZKt9cdZ12esKf0mbQqFyU9LtY0SoeahL7g==", "dev": true, "requires": { - "cli-table3": "^0.5.0", - "console-control-strings": "^1.1.0" + "cli-table3": "0.5.0", + "console-control-strings": "1.1.0" } }, "npm-bundled": { @@ -9213,7 +9207,7 @@ "integrity": "sha1-1K7N/VGlPjcjt7L5Oy7ijjB7wNc=", "dev": true, "requires": { - "semver": "^2.3.0 || 3.x || 4 || 5" + "semver": "5.5.1" } }, "npm-lifecycle": { @@ -9222,14 +9216,14 @@ "integrity": "sha512-QbBfLlGBKsktwBZLj6AviHC6Q9Y3R/AY4a2PYSIRhSKSS0/CxRyD/PfxEX6tPeOCXQgMSNdwGeECacstgptc+g==", "dev": true, "requires": { - "byline": "^5.0.0", - "graceful-fs": "^4.1.11", - "node-gyp": "^3.8.0", - "resolve-from": "^4.0.0", - "slide": "^1.1.6", + "byline": "5.0.0", + "graceful-fs": "4.1.15", + "node-gyp": "3.8.0", + "resolve-from": "4.0.0", + "slide": "1.1.6", "uid-number": "0.0.6", - "umask": "^1.1.0", - "which": "^1.3.1" + "umask": "1.1.0", + "which": "1.3.1" } }, "npm-logical-tree": { @@ -9244,10 +9238,10 @@ "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", "dev": true, "requires": { - "hosted-git-info": "^2.6.0", - "osenv": "^0.1.5", - "semver": "^5.5.0", - "validate-npm-package-name": "^3.0.0" + "hosted-git-info": "2.7.1", + "osenv": "0.1.5", + "semver": "5.5.1", + "validate-npm-package-name": "3.0.0" } }, "npm-packlist": { @@ -9256,8 +9250,8 @@ "integrity": "sha512-WJKFOVMeAlsU/pjXuqVdzU0WfgtIBCupkEVwn+1Y0ERAbUfWw8R4GjgVbaKnUjRoD2FoQbHOCbOyT5Mbs9Lw4g==", "dev": true, "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" + "ignore-walk": "3.0.1", + "npm-bundled": "1.0.5" } }, "npm-pick-manifest": { @@ -9266,8 +9260,8 @@ "integrity": "sha512-q9zLP8cTr8xKPmMZN3naxp1k/NxVFsjxN6uWuO1tiw9gxg7wZWQ/b5UTfzD0ANw2q1lQxdLKTeCCksq+bPSgbQ==", "dev": true, "requires": { - "npm-package-arg": "^6.0.0", - "semver": "^5.4.1" + "npm-package-arg": "6.1.0", + "semver": "5.5.1" } }, "npm-profile": { @@ -9276,8 +9270,8 @@ "integrity": "sha512-rEJOFR6PbwOvvhGa2YTNOJQKNuc6RovJ6T50xPU7pS9h/zKPNCJ+VHZY2OFXyZvEi+UQYtHRTp8O/YM3tUD20A==", "dev": true, "requires": { - "aproba": "^1.1.2 || 2", - "make-fetch-happen": "^2.5.0 || 3 || 4" + "aproba": "1.2.0", + "make-fetch-happen": "4.0.1" } }, "npm-registry-client": { @@ -9286,18 +9280,18 @@ "integrity": "sha512-Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg==", "dev": true, "requires": { - "concat-stream": "^1.5.2", - "graceful-fs": "^4.1.6", - "normalize-package-data": "~1.0.1 || ^2.0.0", - "npm-package-arg": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0", - "npmlog": "2 || ^3.1.0 || ^4.0.0", - "once": "^1.3.3", - "request": "^2.74.0", - "retry": "^0.10.0", - "safe-buffer": "^5.1.1", - "semver": "2 >=2.2.1 || 3.x || 4 || 5", - "slide": "^1.1.3", - "ssri": "^5.2.4" + "concat-stream": "1.6.2", + "graceful-fs": "4.1.15", + "normalize-package-data": "2.4.0", + "npm-package-arg": "6.1.0", + "npmlog": "4.1.2", + "once": "1.4.0", + "request": "2.88.0", + "retry": "0.10.1", + "safe-buffer": "5.1.2", + "semver": "5.5.1", + "slide": "1.1.6", + "ssri": "5.3.0" }, "dependencies": { "retry": { @@ -9312,7 +9306,7 @@ "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", "dev": true, "requires": { - "safe-buffer": "^5.1.1" + "safe-buffer": "5.1.2" } } } @@ -9323,12 +9317,12 @@ "integrity": "sha512-XJPIBfMtgaooRtZmuA42xCeLf3tkxdIX0xqRsGWwNrcVvJ9UYFccD7Ho7QWCzvkM3i/QrkUC37Hu0a+vDBmt5g==", "dev": true, "requires": { - "bluebird": "^3.5.1", - "figgy-pudding": "^2.0.1", - "lru-cache": "^4.1.2", - "make-fetch-happen": "^3.0.0", - "npm-package-arg": "^6.0.0", - "safe-buffer": "^5.1.1" + "bluebird": "3.5.3", + "figgy-pudding": "2.0.1", + "lru-cache": "4.1.3", + "make-fetch-happen": "3.0.0", + "npm-package-arg": "6.1.0", + "safe-buffer": "5.1.2" }, "dependencies": { "cacache": { @@ -9337,19 +9331,19 @@ "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", "dev": true, "requires": { - "bluebird": "^3.5.1", - "chownr": "^1.0.1", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "lru-cache": "^4.1.1", - "mississippi": "^2.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", - "ssri": "^5.2.4", - "unique-filename": "^1.1.0", - "y18n": "^4.0.0" + "bluebird": "3.5.3", + "chownr": "1.0.1", + "glob": "7.1.3", + "graceful-fs": "4.1.15", + "lru-cache": "4.1.3", + "mississippi": "2.0.0", + "mkdirp": "0.5.1", + "move-concurrently": "1.0.1", + "promise-inflight": "1.0.1", + "rimraf": "2.6.2", + "ssri": "5.3.0", + "unique-filename": "1.1.0", + "y18n": "4.0.0" }, "dependencies": { "mississippi": { @@ -9358,16 +9352,16 @@ "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", "dev": true, "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^2.0.1", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" + "concat-stream": "1.6.2", + "duplexify": "3.6.0", + "end-of-stream": "1.4.1", + "flush-write-stream": "1.0.3", + "from2": "2.3.0", + "parallel-transform": "1.1.0", + "pump": "2.0.1", + "pumpify": "1.5.1", + "stream-each": "1.2.2", + "through2": "2.0.3" } } } @@ -9384,17 +9378,17 @@ "integrity": "sha512-FmWY7gC0mL6Z4N86vE14+m719JKE4H0A+pyiOH18B025gF/C113pyfb4gHDDYP5cqnRMHOz06JGdmffC/SES+w==", "dev": true, "requires": { - "agentkeepalive": "^3.4.1", - "cacache": "^10.0.4", - "http-cache-semantics": "^3.8.1", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.0", - "lru-cache": "^4.1.2", - "mississippi": "^3.0.0", - "node-fetch-npm": "^2.0.2", - "promise-retry": "^1.1.1", - "socks-proxy-agent": "^3.0.1", - "ssri": "^5.2.4" + "agentkeepalive": "3.4.1", + "cacache": "10.0.4", + "http-cache-semantics": "3.8.1", + "http-proxy-agent": "2.1.0", + "https-proxy-agent": "2.2.1", + "lru-cache": "4.1.3", + "mississippi": "3.0.0", + "node-fetch-npm": "2.0.2", + "promise-retry": "1.1.1", + "socks-proxy-agent": "3.0.1", + "ssri": "5.3.0" } }, "pump": { @@ -9403,8 +9397,8 @@ "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "dev": true, "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "end-of-stream": "1.4.1", + "once": "1.4.0" } }, "smart-buffer": { @@ -9419,8 +9413,8 @@ "integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=", "dev": true, "requires": { - "ip": "^1.1.4", - "smart-buffer": "^1.0.13" + "ip": "1.1.5", + "smart-buffer": "1.1.15" } }, "socks-proxy-agent": { @@ -9429,8 +9423,8 @@ "integrity": "sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==", "dev": true, "requires": { - "agent-base": "^4.1.0", - "socks": "^1.1.10" + "agent-base": "4.2.0", + "socks": "1.1.10" } }, "ssri": { @@ -9439,7 +9433,7 @@ "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", "dev": true, "requires": { - "safe-buffer": "^5.1.1" + "safe-buffer": "5.1.2" } } } @@ -9450,7 +9444,7 @@ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "npm-user-validate": { @@ -9465,10 +9459,10 @@ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" } }, "number-is-nan": { @@ -9495,7 +9489,7 @@ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "opener": { @@ -9516,9 +9510,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" } }, "os-tmpdir": { @@ -9533,8 +9527,8 @@ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "p-finally": { @@ -9549,7 +9543,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": { @@ -9558,7 +9552,7 @@ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.2.0" } }, "p-try": { @@ -9573,10 +9567,10 @@ "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", "dev": true, "requires": { - "got": "^6.7.1", - "registry-auth-token": "^3.0.1", - "registry-url": "^3.0.3", - "semver": "^5.1.0" + "got": "6.7.1", + "registry-auth-token": "3.3.2", + "registry-url": "3.1.0", + "semver": "5.5.1" } }, "pacote": { @@ -9585,31 +9579,31 @@ "integrity": "sha512-wTOOfpaAQNEQNtPEx92x9Y9kRWVu45v583XT8x2oEV2xRB74+xdqMZIeGW4uFvAyZdmSBtye+wKdyyLaT8pcmw==", "dev": true, "requires": { - "bluebird": "^3.5.1", - "cacache": "^11.0.2", - "get-stream": "^3.0.0", - "glob": "^7.1.2", - "lru-cache": "^4.1.3", - "make-fetch-happen": "^4.0.1", - "minimatch": "^3.0.4", - "minipass": "^2.3.3", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "normalize-package-data": "^2.4.0", - "npm-package-arg": "^6.1.0", - "npm-packlist": "^1.1.10", - "npm-pick-manifest": "^2.1.0", - "osenv": "^0.1.5", - "promise-inflight": "^1.0.1", - "promise-retry": "^1.1.1", - "protoduck": "^5.0.0", - "rimraf": "^2.6.2", - "safe-buffer": "^5.1.2", - "semver": "^5.5.0", - "ssri": "^6.0.0", - "tar": "^4.4.3", - "unique-filename": "^1.1.0", - "which": "^1.3.0" + "bluebird": "3.5.3", + "cacache": "11.2.0", + "get-stream": "3.0.0", + "glob": "7.1.3", + "lru-cache": "4.1.3", + "make-fetch-happen": "4.0.1", + "minimatch": "3.0.4", + "minipass": "2.3.3", + "mississippi": "3.0.0", + "mkdirp": "0.5.1", + "normalize-package-data": "2.4.0", + "npm-package-arg": "6.1.0", + "npm-packlist": "1.1.12", + "npm-pick-manifest": "2.1.0", + "osenv": "0.1.5", + "promise-inflight": "1.0.1", + "promise-retry": "1.1.1", + "protoduck": "5.0.0", + "rimraf": "2.6.2", + "safe-buffer": "5.1.2", + "semver": "5.5.1", + "ssri": "6.0.1", + "tar": "4.4.8", + "unique-filename": "1.1.0", + "which": "1.3.1" } }, "parallel-transform": { @@ -9618,9 +9612,9 @@ "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", "dev": true, "requires": { - "cyclist": "~0.2.2", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" + "cyclist": "0.2.2", + "inherits": "2.0.3", + "readable-stream": "2.3.6" } }, "path-exists": { @@ -9683,8 +9677,8 @@ "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", "dev": true, "requires": { - "err-code": "^1.0.0", - "retry": "^0.10.0" + "err-code": "1.1.2", + "retry": "0.10.1" }, "dependencies": { "retry": { @@ -9701,7 +9695,7 @@ "integrity": "sha1-JqXW7ox97kyxIggwWs+5O6OCqe4=", "dev": true, "requires": { - "read": "1" + "read": "1.0.7" } }, "proto-list": { @@ -9716,7 +9710,7 @@ "integrity": "sha512-agsGWD8/RZrS4ga6v82Fxb0RHIS2RZnbsSue6A9/MBRhB/jcqOANAMNrqM9900b8duj+Gx+T/JMy5IowDoO/hQ==", "dev": true, "requires": { - "genfun": "^4.0.1" + "genfun": "4.0.1" } }, "prr": { @@ -9743,8 +9737,8 @@ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "end-of-stream": "1.4.1", + "once": "1.4.0" } }, "pumpify": { @@ -9753,9 +9747,9 @@ "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "dev": true, "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" + "duplexify": "3.6.0", + "inherits": "2.0.3", + "pump": "2.0.1" }, "dependencies": { "pump": { @@ -9764,8 +9758,8 @@ "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "dev": true, "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "end-of-stream": "1.4.1", + "once": "1.4.0" } } } @@ -9794,8 +9788,8 @@ "integrity": "sha512-pNB/Gr8SA8ff8KpUFM36o/WFAlthgaThka5bV19AD9PNTH20Pwq5Zxodif2YyHwrctp6SkL4GqlOot0qR/wGaw==", "dev": true, "requires": { - "decode-uri-component": "^0.2.0", - "strict-uri-encode": "^2.0.0" + "decode-uri-component": "0.2.0", + "strict-uri-encode": "2.0.0" } }, "qw": { @@ -9810,10 +9804,10 @@ "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", "dev": true, "requires": { - "deep-extend": "^0.5.1", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" + "deep-extend": "0.5.1", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" }, "dependencies": { "minimist": { @@ -9830,7 +9824,7 @@ "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", "dev": true, "requires": { - "mute-stream": "~0.0.4" + "mute-stream": "0.0.7" } }, "read-cmd-shim": { @@ -9839,7 +9833,7 @@ "integrity": "sha1-LV0Vd4ajfAVdIgd8MsU/gynpHHs=", "dev": true, "requires": { - "graceful-fs": "^4.1.2" + "graceful-fs": "4.1.15" } }, "read-installed": { @@ -9848,13 +9842,13 @@ "integrity": "sha1-/5uLZ/GH0eTCm5/rMfayI6zRkGc=", "dev": true, "requires": { - "debuglog": "^1.0.1", - "graceful-fs": "^4.1.2", - "read-package-json": "^2.0.0", - "readdir-scoped-modules": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "slide": "~1.1.3", - "util-extend": "^1.0.1" + "debuglog": "1.0.1", + "graceful-fs": "4.1.15", + "read-package-json": "2.0.13", + "readdir-scoped-modules": "1.0.2", + "semver": "5.5.1", + "slide": "1.1.6", + "util-extend": "1.0.3" } }, "read-package-json": { @@ -9863,11 +9857,11 @@ "integrity": "sha512-/1dZ7TRZvGrYqE0UAfN6qQb5GYBsNcqS1C0tNK601CFOJmtHI7NIGXwetEPU/OtoFHZL3hDxm4rolFFVE9Bnmg==", "dev": true, "requires": { - "glob": "^7.1.1", - "graceful-fs": "^4.1.2", - "json-parse-better-errors": "^1.0.1", - "normalize-package-data": "^2.0.0", - "slash": "^1.0.0" + "glob": "7.1.3", + "graceful-fs": "4.1.15", + "json-parse-better-errors": "1.0.2", + "normalize-package-data": "2.4.0", + "slash": "1.0.0" } }, "read-package-tree": { @@ -9876,11 +9870,11 @@ "integrity": "sha512-2CNoRoh95LxY47LvqrehIAfUVda2JbuFE/HaGYs42bNrGG+ojbw1h3zOcPcQ+1GQ3+rkzNndZn85u1XyZ3UsIA==", "dev": true, "requires": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "once": "^1.3.0", - "read-package-json": "^2.0.0", - "readdir-scoped-modules": "^1.0.0" + "debuglog": "1.0.1", + "dezalgo": "1.0.3", + "once": "1.4.0", + "read-package-json": "2.0.13", + "readdir-scoped-modules": "1.0.2" } }, "readable-stream": { @@ -9889,13 +9883,13 @@ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { - "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" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.2", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" } }, "readdir-scoped-modules": { @@ -9904,10 +9898,10 @@ "integrity": "sha1-n6+jfShr5dksuuve4DDcm19AZ0c=", "dev": true, "requires": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" + "debuglog": "1.0.1", + "dezalgo": "1.0.3", + "graceful-fs": "4.1.15", + "once": "1.4.0" } }, "registry-auth-token": { @@ -9916,8 +9910,8 @@ "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", "dev": true, "requires": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" + "rc": "1.2.7", + "safe-buffer": "5.1.2" } }, "registry-url": { @@ -9926,7 +9920,7 @@ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "dev": true, "requires": { - "rc": "^1.0.1" + "rc": "1.2.7" } }, "request": { @@ -9935,26 +9929,26 @@ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "dev": true, "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" + "aws-sign2": "0.7.0", + "aws4": "1.8.0", + "caseless": "0.12.0", + "combined-stream": "1.0.6", + "extend": "3.0.2", + "forever-agent": "0.6.1", + "form-data": "2.3.2", + "har-validator": "5.1.0", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.19", + "oauth-sign": "0.9.0", + "performance-now": "2.1.0", + "qs": "6.5.2", + "safe-buffer": "5.1.2", + "tough-cookie": "2.4.3", + "tunnel-agent": "0.6.0", + "uuid": "3.3.2" } }, "require-directory": { @@ -9987,7 +9981,7 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.3" } }, "run-queue": { @@ -9996,7 +9990,7 @@ "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", "dev": true, "requires": { - "aproba": "^1.1.1" + "aproba": "1.2.0" } }, "safe-buffer": { @@ -10023,7 +10017,7 @@ "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "dev": true, "requires": { - "semver": "^5.0.3" + "semver": "5.5.1" } }, "set-blocking": { @@ -10038,8 +10032,8 @@ "integrity": "sha1-YDCCL70smCOUn49y7WQR7lzyWq4=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "readable-stream": "^2.0.2" + "graceful-fs": "4.1.15", + "readable-stream": "2.3.6" } }, "shebang-command": { @@ -10048,7 +10042,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -10087,8 +10081,8 @@ "integrity": "sha512-uRKV9uXQ9ytMbGm2+DilS1jB7N3AC0mmusmW5TVWjNuBZjxS8+lX38fasKVY9I4opv/bY/iqTbcpFFaTwpfwRg==", "dev": true, "requires": { - "ip": "^1.1.5", - "smart-buffer": "^4.0.1" + "ip": "1.1.5", + "smart-buffer": "4.0.1" } }, "socks-proxy-agent": { @@ -10097,8 +10091,8 @@ "integrity": "sha512-Kezx6/VBguXOsEe5oU3lXYyKMi4+gva72TwJ7pQY5JfqUx2nMk7NXA6z/mpNqIlfQjWYVfeuNvQjexiTaTn6Nw==", "dev": true, "requires": { - "agent-base": "~4.2.0", - "socks": "~2.2.0" + "agent-base": "4.2.0", + "socks": "2.2.0" } }, "sorted-object": { @@ -10113,8 +10107,8 @@ "integrity": "sha1-x3lMfgd4gAUv9xqNSi27Sppjisc=", "dev": true, "requires": { - "from2": "^1.3.0", - "stream-iterate": "^1.1.0" + "from2": "1.3.0", + "stream-iterate": "1.2.0" }, "dependencies": { "from2": { @@ -10123,8 +10117,8 @@ "integrity": "sha1-iEE7qqX5pZfP3pIh2GmGzTwGHf0=", "dev": true, "requires": { - "inherits": "~2.0.1", - "readable-stream": "~1.1.10" + "inherits": "2.0.3", + "readable-stream": "1.1.14" } }, "isarray": { @@ -10139,10 +10133,10 @@ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "dev": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", + "core-util-is": "1.0.2", + "inherits": "2.0.3", "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "string_decoder": "0.10.31" } }, "string_decoder": { @@ -10159,8 +10153,8 @@ "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "dev": true, "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, "spdx-exceptions": { @@ -10175,8 +10169,8 @@ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" } }, "spdx-license-ids": { @@ -10191,15 +10185,15 @@ "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", "dev": true, "requires": { - "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" + "asn1": "0.2.4", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.2", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.2", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "safer-buffer": "2.1.2", + "tweetnacl": "0.14.5" } }, "ssri": { @@ -10208,7 +10202,7 @@ "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", "dev": true, "requires": { - "figgy-pudding": "^3.5.1" + "figgy-pudding": "3.5.1" } }, "stream-each": { @@ -10217,8 +10211,8 @@ "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", "dev": true, "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" + "end-of-stream": "1.4.1", + "stream-shift": "1.0.0" } }, "stream-iterate": { @@ -10227,8 +10221,8 @@ "integrity": "sha1-K9fHcpbBcCpGSIuK1B95hl7s1OE=", "dev": true, "requires": { - "readable-stream": "^2.1.5", - "stream-shift": "^1.0.0" + "readable-stream": "2.3.6", + "stream-shift": "1.0.0" } }, "stream-shift": { @@ -10249,8 +10243,8 @@ "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" }, "dependencies": { "ansi-regex": { @@ -10271,7 +10265,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -10282,7 +10276,7 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.2" } }, "stringify-package": { @@ -10297,7 +10291,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-eof": { @@ -10318,7 +10312,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } }, "tar": { @@ -10327,13 +10321,13 @@ "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", "dev": true, "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" + "chownr": "1.1.1", + "fs-minipass": "1.2.5", + "minipass": "2.3.5", + "minizlib": "1.1.1", + "mkdirp": "0.5.1", + "safe-buffer": "5.1.2", + "yallist": "3.0.3" }, "dependencies": { "chownr": { @@ -10348,8 +10342,8 @@ "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", "dev": true, "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" + "safe-buffer": "5.1.2", + "yallist": "3.0.3" } }, "yallist": { @@ -10366,7 +10360,7 @@ "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "dev": true, "requires": { - "execa": "^0.7.0" + "execa": "0.7.0" } }, "text-table": { @@ -10387,8 +10381,8 @@ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "dev": true, "requires": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" + "readable-stream": "2.3.6", + "xtend": "4.0.1" } }, "timed-out": { @@ -10409,8 +10403,8 @@ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "dev": true, "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" + "psl": "1.1.29", + "punycode": "1.4.1" } }, "tunnel-agent": { @@ -10419,7 +10413,7 @@ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "tweetnacl": { @@ -10453,7 +10447,7 @@ "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", "dev": true, "requires": { - "unique-slug": "^2.0.0" + "unique-slug": "2.0.0" } }, "unique-slug": { @@ -10462,7 +10456,7 @@ "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", "dev": true, "requires": { - "imurmurhash": "^0.1.4" + "imurmurhash": "0.1.4" } }, "unique-string": { @@ -10471,7 +10465,7 @@ "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", "dev": true, "requires": { - "crypto-random-string": "^1.0.0" + "crypto-random-string": "1.0.0" } }, "unpipe": { @@ -10492,16 +10486,16 @@ "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", "dev": true, "requires": { - "boxen": "^1.2.1", - "chalk": "^2.0.1", - "configstore": "^3.0.0", - "import-lazy": "^2.1.0", - "is-ci": "^1.0.10", - "is-installed-globally": "^0.1.0", - "is-npm": "^1.0.0", - "latest-version": "^3.0.0", - "semver-diff": "^2.0.0", - "xdg-basedir": "^3.0.0" + "boxen": "1.3.0", + "chalk": "2.4.1", + "configstore": "3.1.2", + "import-lazy": "2.1.0", + "is-ci": "1.1.0", + "is-installed-globally": "0.1.0", + "is-npm": "1.0.0", + "latest-version": "3.1.0", + "semver-diff": "2.1.0", + "xdg-basedir": "3.0.0" } }, "url-parse-lax": { @@ -10510,7 +10504,7 @@ "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "dev": true, "requires": { - "prepend-http": "^1.0.1" + "prepend-http": "1.0.4" } }, "util-deprecate": { @@ -10537,8 +10531,8 @@ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "validate-npm-package-name": { @@ -10547,7 +10541,7 @@ "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "dev": true, "requires": { - "builtins": "^1.0.3" + "builtins": "1.0.3" } }, "verror": { @@ -10556,9 +10550,9 @@ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": true, "requires": { - "assert-plus": "^1.0.0", + "assert-plus": "1.0.0", "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "extsprintf": "1.3.0" } }, "wcwidth": { @@ -10567,7 +10561,7 @@ "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "dev": true, "requires": { - "defaults": "^1.0.3" + "defaults": "1.0.3" } }, "which": { @@ -10576,7 +10570,7 @@ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -10591,7 +10585,7 @@ "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "dev": true, "requires": { - "string-width": "^1.0.2" + "string-width": "1.0.2" }, "dependencies": { "string-width": { @@ -10600,9 +10594,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -10613,7 +10607,7 @@ "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", "dev": true, "requires": { - "string-width": "^2.1.1" + "string-width": "2.1.1" } }, "worker-farm": { @@ -10622,7 +10616,7 @@ "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", "dev": true, "requires": { - "errno": "~0.1.7" + "errno": "0.1.7" } }, "wrap-ansi": { @@ -10631,8 +10625,8 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "string-width": { @@ -10641,9 +10635,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -10660,9 +10654,9 @@ "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" + "graceful-fs": "4.1.15", + "imurmurhash": "0.1.4", + "signal-exit": "3.0.2" } }, "xdg-basedir": { @@ -10695,18 +10689,18 @@ "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", "dev": true, "requires": { - "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": "^9.0.2" + "cliui": "4.1.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": "9.0.2" }, "dependencies": { "y18n": { @@ -10723,7 +10717,7 @@ "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" } } } @@ -10733,7 +10727,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { @@ -10747,33 +10741,33 @@ "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", "dev": true, "requires": { - "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^1.0.0", - "convert-source-map": "^1.5.1", - "debug-log": "^1.0.1", - "default-require-extensions": "^1.0.0", - "find-cache-dir": "^0.1.1", - "find-up": "^2.1.0", - "foreground-child": "^1.5.3", - "glob": "^7.0.6", - "istanbul-lib-coverage": "^1.1.2", - "istanbul-lib-hook": "^1.1.0", - "istanbul-lib-instrument": "^1.10.0", - "istanbul-lib-report": "^1.1.3", - "istanbul-lib-source-maps": "^1.2.3", - "istanbul-reports": "^1.4.0", - "md5-hex": "^1.2.0", - "merge-source-map": "^1.1.0", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.0", - "resolve-from": "^2.0.0", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.1", - "spawn-wrap": "^1.4.2", - "test-exclude": "^4.2.0", + "archy": "1.0.0", + "arrify": "1.0.1", + "caching-transform": "1.0.1", + "convert-source-map": "1.5.1", + "debug-log": "1.0.1", + "default-require-extensions": "1.0.0", + "find-cache-dir": "0.1.1", + "find-up": "2.1.0", + "foreground-child": "1.5.6", + "glob": "7.1.2", + "istanbul-lib-coverage": "1.2.0", + "istanbul-lib-hook": "1.1.0", + "istanbul-lib-instrument": "1.10.1", + "istanbul-lib-report": "1.1.3", + "istanbul-lib-source-maps": "1.2.3", + "istanbul-reports": "1.4.0", + "md5-hex": "1.3.0", + "merge-source-map": "1.1.0", + "micromatch": "3.1.10", + "mkdirp": "0.5.1", + "resolve-from": "2.0.0", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "spawn-wrap": "1.4.2", + "test-exclude": "4.2.1", "yargs": "11.1.0", - "yargs-parser": "^8.0.0" + "yargs-parser": "8.1.0" }, "dependencies": { "align-text": { @@ -10782,9 +10776,9 @@ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" } }, "amdefine": { @@ -10811,7 +10805,7 @@ "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", "dev": true, "requires": { - "default-require-extensions": "^1.0.0" + "default-require-extensions": "1.0.0" } }, "archy": { @@ -10874,9 +10868,9 @@ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" } }, "babel-generator": { @@ -10885,14 +10879,14 @@ "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "dev": true, "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.10", + "source-map": "0.5.7", + "trim-right": "1.0.1" } }, "babel-messages": { @@ -10901,7 +10895,7 @@ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-runtime": { @@ -10910,8 +10904,8 @@ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "core-js": "2.5.6", + "regenerator-runtime": "0.11.1" } }, "babel-template": { @@ -10920,11 +10914,11 @@ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.10" } }, "babel-traverse": { @@ -10933,15 +10927,15 @@ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.4", + "lodash": "4.17.10" } }, "babel-types": { @@ -10950,10 +10944,10 @@ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.10", + "to-fast-properties": "1.0.3" } }, "babylon": { @@ -10974,13 +10968,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.2.0", - "pascalcase": "^0.1.1" + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" }, "dependencies": { "define-property": { @@ -10989,7 +10983,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -10998,7 +10992,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -11007,7 +11001,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -11016,9 +11010,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -11041,7 +11035,7 @@ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -11051,16 +11045,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -11069,7 +11063,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -11086,15 +11080,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" }, "dependencies": { "isobject": { @@ -11111,9 +11105,9 @@ "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", "dev": true, "requires": { - "md5-hex": "^1.2.0", - "mkdirp": "^0.5.1", - "write-file-atomic": "^1.1.4" + "md5-hex": "1.3.0", + "mkdirp": "0.5.1", + "write-file-atomic": "1.3.4" } }, "camelcase": { @@ -11130,8 +11124,8 @@ "dev": true, "optional": true, "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" + "align-text": "0.1.4", + "lazy-cache": "1.0.4" } }, "chalk": { @@ -11140,11 +11134,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "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" + "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" } }, "class-utils": { @@ -11153,10 +11147,10 @@ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" }, "dependencies": { "define-property": { @@ -11165,7 +11159,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "isobject": { @@ -11183,8 +11177,8 @@ "dev": true, "optional": true, "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", + "center-align": "0.1.3", + "right-align": "0.1.3", "wordwrap": "0.0.2" }, "dependencies": { @@ -11209,8 +11203,8 @@ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "map-visit": "1.0.0", + "object-visit": "1.0.1" } }, "commondir": { @@ -11255,8 +11249,8 @@ "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", "dev": true, "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "which": "1.3.0" } }, "debug": { @@ -11292,7 +11286,7 @@ "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", "dev": true, "requires": { - "strip-bom": "^2.0.0" + "strip-bom": "2.0.0" } }, "define-property": { @@ -11301,8 +11295,8 @@ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "is-descriptor": "1.0.2", + "isobject": "3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -11311,7 +11305,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -11320,7 +11314,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -11329,9 +11323,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -11354,7 +11348,7 @@ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "error-ex": { @@ -11363,7 +11357,7 @@ "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "escape-string-regexp": { @@ -11384,13 +11378,13 @@ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { - "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" + "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" }, "dependencies": { "cross-spawn": { @@ -11399,9 +11393,9 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.0" } } } @@ -11412,13 +11406,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "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" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -11427,7 +11421,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -11436,7 +11430,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -11447,8 +11441,8 @@ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -11457,7 +11451,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -11468,14 +11462,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -11484,7 +11478,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -11493,7 +11487,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -11502,7 +11496,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -11511,7 +11505,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -11520,9 +11514,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "kind-of": { @@ -11539,10 +11533,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.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -11551,7 +11545,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -11562,9 +11556,9 @@ "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", "dev": true, "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" + "commondir": "1.0.1", + "mkdirp": "0.5.1", + "pkg-dir": "1.0.0" } }, "find-up": { @@ -11573,7 +11567,7 @@ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "for-in": { @@ -11588,8 +11582,8 @@ "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", "dev": true, "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" + "cross-spawn": "4.0.2", + "signal-exit": "3.0.2" } }, "fragment-cache": { @@ -11598,7 +11592,7 @@ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { - "map-cache": "^0.2.2" + "map-cache": "0.2.2" } }, "fs.realpath": { @@ -11631,12 +11625,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "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" + "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" } }, "globals": { @@ -11657,10 +11651,10 @@ "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" }, "dependencies": { "source-map": { @@ -11669,7 +11663,7 @@ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } @@ -11680,7 +11674,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "has-flag": { @@ -11695,9 +11689,9 @@ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -11714,8 +11708,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": { "is-number": { @@ -11724,7 +11718,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -11733,7 +11727,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -11744,7 +11738,7 @@ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -11767,8 +11761,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -11783,7 +11777,7 @@ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, "requires": { - "loose-envify": "^1.0.0" + "loose-envify": "1.3.1" } }, "invert-kv": { @@ -11798,7 +11792,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-arrayish": { @@ -11819,7 +11813,7 @@ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-data-descriptor": { @@ -11828,7 +11822,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-descriptor": { @@ -11837,9 +11831,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" }, "dependencies": { "kind-of": { @@ -11862,7 +11856,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { @@ -11877,7 +11871,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-odd": { @@ -11886,7 +11880,7 @@ "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", "dev": true, "requires": { - "is-number": "^4.0.0" + "is-number": "4.0.0" }, "dependencies": { "is-number": { @@ -11903,7 +11897,7 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -11962,7 +11956,7 @@ "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", "dev": true, "requires": { - "append-transform": "^0.4.0" + "append-transform": "0.4.0" } }, "istanbul-lib-instrument": { @@ -11971,13 +11965,13 @@ "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", "dev": true, "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.2.0", - "semver": "^5.3.0" + "babel-generator": "6.26.1", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "istanbul-lib-coverage": "1.2.0", + "semver": "5.5.0" } }, "istanbul-lib-report": { @@ -11986,10 +11980,10 @@ "integrity": "sha512-D4jVbMDtT2dPmloPJS/rmeP626N5Pr3Rp+SovrPn1+zPChGHcggd/0sL29jnbm4oK9W0wHjCRsdch9oLd7cm6g==", "dev": true, "requires": { - "istanbul-lib-coverage": "^1.1.2", - "mkdirp": "^0.5.1", - "path-parse": "^1.0.5", - "supports-color": "^3.1.2" + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" }, "dependencies": { "supports-color": { @@ -11998,7 +11992,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "^1.0.0" + "has-flag": "1.0.0" } } } @@ -12009,11 +12003,11 @@ "integrity": "sha512-fDa0hwU/5sDXwAklXgAoCJCOsFsBplVQ6WBldz5UwaqOzmDhUK4nfuR7/G//G2lERlblUNJB8P6e8cXq3a7MlA==", "dev": true, "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^1.1.2", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.1", - "source-map": "^0.5.3" + "debug": "3.1.0", + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" }, "dependencies": { "debug": { @@ -12033,7 +12027,7 @@ "integrity": "sha512-OPzVo1fPZ2H+owr8q/LYKLD+vquv9Pj4F+dj808MdHbuQLD7S4ACRjcX+0Tne5Vxt2lxXvdZaL7v+FOOAV281w==", "dev": true, "requires": { - "handlebars": "^4.0.3" + "handlebars": "4.0.11" } }, "js-tokens": { @@ -12054,7 +12048,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "lazy-cache": { @@ -12070,7 +12064,7 @@ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "load-json-file": { @@ -12079,11 +12073,11 @@ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" } }, "locate-path": { @@ -12092,8 +12086,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": { @@ -12122,7 +12116,7 @@ "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "dev": true, "requires": { - "js-tokens": "^3.0.0" + "js-tokens": "3.0.2" } }, "lru-cache": { @@ -12131,8 +12125,8 @@ "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "dev": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "map-cache": { @@ -12147,7 +12141,7 @@ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { - "object-visit": "^1.0.0" + "object-visit": "1.0.1" } }, "md5-hex": { @@ -12156,7 +12150,7 @@ "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "dev": true, "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "md5-o-matic": { @@ -12171,7 +12165,7 @@ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "merge-source-map": { @@ -12180,7 +12174,7 @@ "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", "dev": true, "requires": { - "source-map": "^0.6.1" + "source-map": "0.6.1" }, "dependencies": { "source-map": { @@ -12197,19 +12191,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "kind-of": { @@ -12232,7 +12226,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -12247,8 +12241,8 @@ "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "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": { @@ -12257,7 +12251,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -12283,18 +12277,18 @@ "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-odd": "^2.0.0", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-odd": "2.0.0", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "arr-diff": { @@ -12323,10 +12317,10 @@ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.6.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" } }, "npm-run-path": { @@ -12335,7 +12329,7 @@ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { @@ -12356,9 +12350,9 @@ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" }, "dependencies": { "define-property": { @@ -12367,7 +12361,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -12378,7 +12372,7 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { - "isobject": "^3.0.0" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -12395,7 +12389,7 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -12412,7 +12406,7 @@ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "optimist": { @@ -12421,8 +12415,8 @@ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" + "minimist": "0.0.8", + "wordwrap": "0.0.3" } }, "os-homedir": { @@ -12437,9 +12431,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" } }, "p-finally": { @@ -12454,7 +12448,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": { @@ -12463,7 +12457,7 @@ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.2.0" } }, "p-try": { @@ -12478,7 +12472,7 @@ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.1" } }, "pascalcase": { @@ -12493,7 +12487,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "^2.0.0" + "pinkie-promise": "2.0.1" } }, "path-is-absolute": { @@ -12520,9 +12514,9 @@ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "pify": { @@ -12543,7 +12537,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "pkg-dir": { @@ -12552,7 +12546,7 @@ "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "dev": true, "requires": { - "find-up": "^1.0.0" + "find-up": "1.1.2" }, "dependencies": { "find-up": { @@ -12561,8 +12555,8 @@ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } @@ -12585,9 +12579,9 @@ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" } }, "read-pkg-up": { @@ -12596,8 +12590,8 @@ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "find-up": "1.1.2", + "read-pkg": "1.1.0" }, "dependencies": { "find-up": { @@ -12606,8 +12600,8 @@ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } @@ -12624,8 +12618,8 @@ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" } }, "repeat-element": { @@ -12646,7 +12640,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "^1.0.0" + "is-finite": "1.0.2" } }, "require-directory": { @@ -12686,7 +12680,7 @@ "dev": true, "optional": true, "requires": { - "align-text": "^0.1.1" + "align-text": "0.1.4" } }, "rimraf": { @@ -12695,7 +12689,7 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "safe-regex": { @@ -12704,7 +12698,7 @@ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { - "ret": "~0.1.10" + "ret": "0.1.15" } }, "semver": { @@ -12725,10 +12719,10 @@ "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" }, "dependencies": { "extend-shallow": { @@ -12737,7 +12731,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -12748,7 +12742,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -12775,14 +12769,14 @@ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "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": "3.1.0" }, "dependencies": { "define-property": { @@ -12791,7 +12785,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -12800,7 +12794,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -12811,9 +12805,9 @@ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" }, "dependencies": { "define-property": { @@ -12822,7 +12816,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -12831,7 +12825,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -12840,7 +12834,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -12849,9 +12843,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -12874,7 +12868,7 @@ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { - "kind-of": "^3.2.0" + "kind-of": "3.2.2" } }, "source-map": { @@ -12889,11 +12883,11 @@ "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", "dev": true, "requires": { - "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" + "atob": "2.1.1", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" } }, "source-map-url": { @@ -12908,12 +12902,12 @@ "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", "dev": true, "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" + "foreground-child": "1.5.6", + "mkdirp": "0.5.1", + "os-homedir": "1.0.2", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "which": "1.3.0" } }, "spdx-correct": { @@ -12922,8 +12916,8 @@ "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "dev": true, "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, "spdx-exceptions": { @@ -12938,8 +12932,8 @@ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" } }, "spdx-license-ids": { @@ -12954,7 +12948,7 @@ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { - "extend-shallow": "^3.0.0" + "extend-shallow": "3.0.2" } }, "static-extend": { @@ -12963,8 +12957,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": { @@ -12973,7 +12967,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -12984,8 +12978,8 @@ "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" }, "dependencies": { "ansi-regex": { @@ -13000,7 +12994,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -13011,7 +13005,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-bom": { @@ -13020,7 +13014,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "^0.2.0" + "is-utf8": "0.2.1" } }, "strip-eof": { @@ -13041,11 +13035,11 @@ "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", "dev": true, "requires": { - "arrify": "^1.0.1", - "micromatch": "^3.1.8", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" + "arrify": "1.0.1", + "micromatch": "3.1.10", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" }, "dependencies": { "arr-diff": { @@ -13066,16 +13060,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -13084,7 +13078,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -13095,13 +13089,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "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" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -13110,7 +13104,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -13119,7 +13113,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -13128,7 +13122,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -13137,7 +13131,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -13148,7 +13142,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -13157,7 +13151,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -13168,9 +13162,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { @@ -13187,14 +13181,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -13203,7 +13197,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -13212,7 +13206,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -13223,10 +13217,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.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -13235,7 +13229,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -13246,7 +13240,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -13255,7 +13249,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -13264,9 +13258,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-number": { @@ -13275,7 +13269,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -13284,7 +13278,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -13307,19 +13301,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } } } @@ -13336,7 +13330,7 @@ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "to-regex": { @@ -13345,10 +13339,10 @@ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" } }, "to-regex-range": { @@ -13357,8 +13351,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" }, "dependencies": { "is-number": { @@ -13367,7 +13361,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } } } @@ -13385,9 +13379,9 @@ "dev": true, "optional": true, "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" }, "dependencies": { "yargs": { @@ -13397,9 +13391,9 @@ "dev": true, "optional": true, "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", "window-size": "0.1.0" } } @@ -13418,10 +13412,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": { "extend-shallow": { @@ -13430,7 +13424,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "set-value": { @@ -13439,10 +13433,10 @@ "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" } } } @@ -13453,8 +13447,8 @@ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "has-value": "0.3.1", + "isobject": "3.0.1" }, "dependencies": { "has-value": { @@ -13463,9 +13457,9 @@ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" }, "dependencies": { "isobject": { @@ -13505,7 +13499,7 @@ "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", "dev": true, "requires": { - "kind-of": "^6.0.2" + "kind-of": "6.0.2" }, "dependencies": { "kind-of": { @@ -13522,8 +13516,8 @@ "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "dev": true, "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "which": { @@ -13532,7 +13526,7 @@ "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "dev": true, "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -13560,8 +13554,8 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -13570,7 +13564,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "string-width": { @@ -13579,9 +13573,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -13598,9 +13592,9 @@ "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" } }, "y18n": { @@ -13621,18 +13615,18 @@ "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", "dev": true, "requires": { - "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": "^9.0.2" + "cliui": "4.1.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": "9.0.2" }, "dependencies": { "ansi-regex": { @@ -13653,9 +13647,9 @@ "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" + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" } }, "strip-ansi": { @@ -13664,7 +13658,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } }, "yargs-parser": { @@ -13673,7 +13667,7 @@ "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" } } } @@ -13684,7 +13678,7 @@ "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" }, "dependencies": { "camelcase": { @@ -13718,9 +13712,9 @@ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" }, "dependencies": { "define-property": { @@ -13728,7 +13722,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -13748,7 +13742,7 @@ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { - "isobject": "^3.0.0" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -13764,8 +13758,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "optional": true, "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" + "for-own": "0.1.5", + "is-extendable": "0.1.1" } }, "object.pick": { @@ -13773,7 +13767,7 @@ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -13794,7 +13788,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "onetime": { @@ -13802,7 +13796,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "optimist": { @@ -13811,8 +13805,8 @@ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" + "minimist": "0.0.8", + "wordwrap": "0.0.3" }, "dependencies": { "wordwrap": { @@ -13828,12 +13822,12 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" } }, "os-homedir": { @@ -13846,9 +13840,9 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "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" } }, "os-name": { @@ -13857,8 +13851,8 @@ "integrity": "sha512-7c74tib2FsdFbQ3W+qj8Tyd1R3Z6tuVRNNxXjJcZ4NgjIEQU9N/prVMqcW29XZPXGACqaXN3jq58/6hoaoXH6g==", "dev": true, "requires": { - "macos-release": "^2.0.0", - "windows-release": "^3.1.0" + "macos-release": "2.0.0", + "windows-release": "3.1.0" } }, "os-tmpdir": { @@ -13871,9 +13865,9 @@ "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", "requires": { - "graceful-fs": "^4.1.4", - "mkdirp": "^0.5.1", - "object-assign": "^4.1.0" + "graceful-fs": "4.1.15", + "mkdirp": "0.5.1", + "object-assign": "4.1.1" } }, "p-defer": { @@ -13888,7 +13882,7 @@ "integrity": "sha1-Yp0xcVAgnI/VCLoTdxPvS7kg6ds=", "dev": true, "requires": { - "p-map": "^1.0.0" + "p-map": "1.2.0" } }, "p-finally": { @@ -13907,7 +13901,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "requires": { - "p-try": "^1.0.0" + "p-try": "1.0.0" } }, "p-locate": { @@ -13915,7 +13909,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.3.0" } }, "p-map": { @@ -13936,7 +13930,7 @@ "integrity": "sha512-fAB7bebxaj8nylNAsxPNkwPZ/48bXFdFnWrz0v2sV+H5BsGfVL7Ap7KgONqy7rOK4ZI1I+SU+lmettO3hM+2HQ==", "dev": true, "requires": { - "retry": "^0.12.0" + "retry": "0.12.0" } }, "p-try": { @@ -13956,10 +13950,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "optional": true, "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" } }, "parse-json": { @@ -13967,7 +13961,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.2" } }, "parseqs": { @@ -13975,7 +13969,7 @@ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "requires": { - "better-assert": "~1.0.0" + "better-assert": "1.0.2" } }, "parseuri": { @@ -13983,7 +13977,7 @@ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "requires": { - "better-assert": "~1.0.0" + "better-assert": "1.0.2" } }, "parseurl": { @@ -14008,7 +14002,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "requires": { - "pinkie-promise": "^2.0.0" + "pinkie-promise": "2.0.1" } }, "path-is-absolute": { @@ -14053,7 +14047,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { - "pify": "^2.0.0" + "pify": "2.3.0" } }, "pathval": { @@ -14067,11 +14061,11 @@ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ripemd160": "2.0.2", + "safe-buffer": "5.1.2", + "sha.js": "2.4.11" } }, "performance-now": { @@ -14095,7 +14089,7 @@ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "pkg-conf": { @@ -14103,8 +14097,8 @@ "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", "requires": { - "find-up": "^2.0.0", - "load-json-file": "^4.0.0" + "find-up": "2.1.0", + "load-json-file": "4.0.0" }, "dependencies": { "find-up": { @@ -14112,7 +14106,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "load-json-file": { @@ -14120,10 +14114,10 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.15", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" } }, "parse-json": { @@ -14131,8 +14125,8 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" } }, "pify": { @@ -14147,9 +14141,9 @@ "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=", "requires": { - "debug-log": "^1.0.0", - "find-root": "^1.0.0", - "xtend": "^4.0.1" + "debug-log": "1.0.1", + "find-root": "1.1.0", + "xtend": "4.0.1" } }, "pkg-dir": { @@ -14157,7 +14151,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "requires": { - "find-up": "^1.0.0" + "find-up": "1.1.2" } }, "pluralize": { @@ -14212,8 +14206,8 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" + "loose-envify": "1.4.0", + "object-assign": "4.1.1" } }, "pseudomap": { @@ -14233,8 +14227,8 @@ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "end-of-stream": "1.4.1", + "once": "1.4.0" } }, "punycode": { @@ -14248,7 +14242,7 @@ "resolved": "http://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", "integrity": "sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=", "requires": { - "bitcoin-ops": "^1.3.0" + "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646" } }, "q": { @@ -14263,10 +14257,10 @@ "integrity": "sha512-sYo+Tf7nx14YZSNPqnyEWefVrjUEpM4/NxOrxOk+jcQ9NhM2LCNuzGmQctDhGTQdO2YJorKY55dypx+hvVo5jw==", "requires": { "can-promise": "0.0.1", - "dijkstrajs": "^1.0.1", - "isarray": "^2.0.1", - "pngjs": "^3.3.0", - "yargs": "^8.0.2" + "dijkstrajs": "1.0.1", + "isarray": "2.0.4", + "pngjs": "3.3.3", + "yargs": "8.0.2" }, "dependencies": { "isarray": { @@ -14293,9 +14287,9 @@ "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", "optional": true, "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" + "is-number": "4.0.0", + "kind-of": "6.0.2", + "math-random": "1.0.1" }, "dependencies": { "is-number": { @@ -14317,7 +14311,7 @@ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "requires": { - "safe-buffer": "^5.1.0" + "safe-buffer": "5.1.2" } }, "range-parser": { @@ -14332,10 +14326,10 @@ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" + "deep-extend": "0.6.0", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" }, "dependencies": { "minimist": { @@ -14351,9 +14345,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" } }, "read-pkg-up": { @@ -14361,8 +14355,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" + "find-up": "2.1.0", + "read-pkg": "2.0.0" }, "dependencies": { "find-up": { @@ -14370,7 +14364,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } } } @@ -14380,13 +14374,13 @@ "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "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" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.2", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" }, "dependencies": { "inherits": { @@ -14402,9 +14396,9 @@ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "optional": true, "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" + "graceful-fs": "4.1.15", + "micromatch": "3.1.10", + "readable-stream": "2.3.6" }, "dependencies": { "arr-diff": { @@ -14424,16 +14418,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "optional": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.3", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -14442,7 +14436,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "optional": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -14462,13 +14456,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "optional": true, "requires": { - "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" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -14477,7 +14471,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "optional": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -14486,7 +14480,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "optional": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -14495,7 +14489,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "optional": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -14504,7 +14498,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "optional": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -14515,7 +14509,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "optional": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -14524,7 +14518,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "optional": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -14535,9 +14529,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "optional": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { @@ -14554,14 +14548,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "optional": 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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -14570,7 +14564,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "optional": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -14579,7 +14573,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "optional": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -14590,10 +14584,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "optional": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -14602,7 +14596,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "optional": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -14613,7 +14607,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "optional": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -14622,7 +14616,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "optional": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -14631,9 +14625,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "optional": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-number": { @@ -14642,7 +14636,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "optional": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -14651,7 +14645,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "optional": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -14673,19 +14667,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "optional": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.13", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } } } @@ -14696,8 +14690,8 @@ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", "dev": true, "requires": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" + "indent-string": "3.2.0", + "strip-indent": "2.0.0" } }, "redeyed": { @@ -14706,7 +14700,7 @@ "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=", "dev": true, "requires": { - "esprima": "~4.0.0" + "esprima": "4.0.1" } }, "regenerate": { @@ -14724,9 +14718,9 @@ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "requires": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "private": "0.1.8" } }, "regex-cache": { @@ -14735,7 +14729,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "optional": true, "requires": { - "is-equal-shallow": "^0.1.3" + "is-equal-shallow": "0.1.3" } }, "regex-not": { @@ -14743,8 +14737,8 @@ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" } }, "regexpp": { @@ -14758,9 +14752,9 @@ "resolved": "http://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" + "regenerate": "1.4.0", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" } }, "registry-auth-token": { @@ -14769,8 +14763,8 @@ "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", "dev": true, "requires": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" + "rc": "1.2.8", + "safe-buffer": "5.1.2" } }, "regjsgen": { @@ -14783,7 +14777,7 @@ "resolved": "http://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "requires": { - "jsesc": "~0.5.0" + "jsesc": "0.5.0" }, "dependencies": { "jsesc": { @@ -14813,7 +14807,7 @@ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "requires": { - "is-finite": "^1.0.0" + "is-finite": "1.0.2" } }, "repl.history": { @@ -14827,26 +14821,26 @@ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "dev": true, "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" + "aws-sign2": "0.7.0", + "aws4": "1.8.0", + "caseless": "0.12.0", + "combined-stream": "1.0.7", + "extend": "3.0.2", + "forever-agent": "0.6.1", + "form-data": "2.3.3", + "har-validator": "5.1.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.21", + "oauth-sign": "0.9.0", + "performance-now": "2.1.0", + "qs": "6.5.2", + "safe-buffer": "5.1.2", + "tough-cookie": "2.4.3", + "tunnel-agent": "0.6.0", + "uuid": "3.3.2" }, "dependencies": { "qs": { @@ -14872,8 +14866,8 @@ "resolved": "http://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" + "caller-path": "0.1.0", + "resolve-from": "1.0.1" } }, "resolve": { @@ -14881,7 +14875,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.9.0.tgz", "integrity": "sha512-TZNye00tI67lwYvzxCxHGjwTNlUV70io54/Ed4j6PscB8xVfuBJpRenI/o6dVk0cY0PYTY27AgCoGGxRnYuItQ==", "requires": { - "path-parse": "^1.0.6" + "path-parse": "1.0.6" } }, "resolve-from": { @@ -14899,8 +14893,8 @@ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "onetime": "2.0.1", + "signal-exit": "3.0.2" } }, "resumer": { @@ -14908,7 +14902,7 @@ "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", "requires": { - "through": "~2.3.4" + "through": "2.3.8" } }, "ret": { @@ -14927,7 +14921,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "glob": "^7.0.5" + "glob": "7.1.3" } }, "ripemd160": { @@ -14935,8 +14929,8 @@ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "hash-base": "3.0.4", + "inherits": "2.0.1" } }, "run-async": { @@ -14944,7 +14938,7 @@ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "requires": { - "is-promise": "^2.1.0" + "is-promise": "2.1.0" } }, "run-parallel": { @@ -14962,7 +14956,7 @@ "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "requires": { - "rx-lite": "*" + "rx-lite": "4.0.8" } }, "rxjs": { @@ -14971,7 +14965,7 @@ "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", "dev": true, "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.3" } }, "safe-buffer": { @@ -14984,7 +14978,7 @@ "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { - "ret": "~0.1.10" + "ret": "0.1.15" } }, "safer-buffer": { @@ -15003,7 +14997,7 @@ "resolved": "https://registry.npmjs.org/satoshi-bitcoin/-/satoshi-bitcoin-1.0.4.tgz", "integrity": "sha1-0AK2dwddXLvywhGo3zJUvN9QseQ=", "requires": { - "big.js": "^3.1.3" + "big.js": "3.2.0" } }, "scryptsy": { @@ -15016,14 +15010,14 @@ "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.6.0.tgz", "integrity": "sha512-a+oKfu2XWhq6Zzj7TexlYpwdnCEtJUUdLaujUclplPkV+INdMaV9D+81wYldm/g4/2PTFoNYZf/+0rHhTPgzjQ==", "requires": { - "bindings": "^1.2.1", - "bip66": "^1.1.3", - "bn.js": "^4.11.3", - "create-hash": "^1.1.2", - "drbg.js": "^1.0.1", - "elliptic": "^6.2.3", - "nan": "^2.2.1", - "safe-buffer": "^5.1.0" + "bindings": "1.3.1", + "bip66": "1.1.5", + "bn.js": "4.11.8", + "create-hash": "1.2.0", + "drbg.js": "1.0.1", + "elliptic": "6.4.1", + "nan": "2.12.1", + "safe-buffer": "5.1.2" } }, "semantic-release": { @@ -15032,32 +15026,32 @@ "integrity": "sha512-bkrfQ10BhbJRMeq/Ih9DZ9FO4ffDwFYsRR134JP9JvQSf8GVX4sg3SnFFd7Q10C6pKwjKqMZ4+ZNB5uQYMLPEg==", "dev": true, "requires": { - "@semantic-release/commit-analyzer": "^6.1.0", - "@semantic-release/error": "^2.2.0", - "@semantic-release/github": "^5.1.0", - "@semantic-release/npm": "^5.0.5", - "@semantic-release/release-notes-generator": "^7.1.2", - "aggregate-error": "^1.0.0", - "cosmiconfig": "^5.0.1", - "debug": "^4.0.0", - "env-ci": "^3.0.0", - "execa": "^1.0.0", - "figures": "^2.0.0", - "find-versions": "^3.0.0", - "get-stream": "^4.0.0", - "git-log-parser": "^1.2.0", - "hook-std": "^1.1.0", - "hosted-git-info": "^2.7.1", - "lodash": "^4.17.4", - "marked": "^0.5.0", - "marked-terminal": "^3.0.0", - "p-locate": "^3.0.0", - "p-reduce": "^1.0.0", - "read-pkg-up": "^4.0.0", - "resolve-from": "^4.0.0", - "semver": "^5.4.1", - "signale": "^1.2.1", - "yargs": "^12.0.0" + "@semantic-release/commit-analyzer": "6.1.0", + "@semantic-release/error": "2.2.0", + "@semantic-release/github": "5.2.7", + "@semantic-release/npm": "5.1.2", + "@semantic-release/release-notes-generator": "7.1.4", + "aggregate-error": "1.0.0", + "cosmiconfig": "5.0.7", + "debug": "4.1.1", + "env-ci": "3.1.3", + "execa": "1.0.0", + "figures": "2.0.0", + "find-versions": "3.0.0", + "get-stream": "4.1.0", + "git-log-parser": "1.2.0", + "hook-std": "1.2.0", + "hosted-git-info": "2.7.1", + "lodash": "4.17.11", + "marked": "0.5.2", + "marked-terminal": "3.1.1", + "p-locate": "3.0.0", + "p-reduce": "1.0.0", + "read-pkg-up": "4.0.0", + "resolve-from": "4.0.0", + "semver": "5.6.0", + "signale": "1.3.0", + "yargs": "12.0.5" }, "dependencies": { "ansi-regex": { @@ -15078,9 +15072,9 @@ "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" + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" } }, "cross-spawn": { @@ -15089,11 +15083,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "nice-try": "1.0.5", + "path-key": "2.0.1", + "semver": "5.6.0", + "shebang-command": "1.2.0", + "which": "1.3.1" } }, "debug": { @@ -15102,7 +15096,7 @@ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.1" } }, "execa": { @@ -15111,13 +15105,13 @@ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.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" + "cross-spawn": "6.0.5", + "get-stream": "4.1.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" } }, "find-up": { @@ -15126,7 +15120,7 @@ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { - "locate-path": "^3.0.0" + "locate-path": "3.0.0" } }, "get-stream": { @@ -15135,7 +15129,7 @@ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { - "pump": "^3.0.0" + "pump": "3.0.0" } }, "invert-kv": { @@ -15150,7 +15144,7 @@ "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", "dev": true, "requires": { - "invert-kv": "^2.0.0" + "invert-kv": "2.0.0" } }, "load-json-file": { @@ -15159,10 +15153,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.15", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" } }, "locate-path": { @@ -15171,8 +15165,8 @@ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "3.0.0", + "path-exists": "3.0.0" } }, "mem": { @@ -15181,9 +15175,9 @@ "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==", "dev": true, "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^1.0.0", - "p-is-promise": "^1.1.0" + "map-age-cleaner": "0.1.3", + "mimic-fn": "1.2.0", + "p-is-promise": "1.1.0" } }, "ms": { @@ -15198,9 +15192,9 @@ "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", "dev": true, "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" + "execa": "1.0.0", + "lcid": "2.0.0", + "mem": "4.0.0" } }, "p-is-promise": { @@ -15215,7 +15209,7 @@ "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==", "dev": true, "requires": { - "p-try": "^2.0.0" + "p-try": "2.0.0" } }, "p-locate": { @@ -15224,7 +15218,7 @@ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { - "p-limit": "^2.0.0" + "p-limit": "2.1.0" } }, "p-try": { @@ -15239,8 +15233,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" } }, "path-exists": { @@ -15255,7 +15249,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "pify": { @@ -15270,9 +15264,9 @@ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" + "load-json-file": "4.0.0", + "normalize-package-data": "2.4.0", + "path-type": "3.0.0" } }, "read-pkg-up": { @@ -15281,8 +15275,8 @@ "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", "dev": true, "requires": { - "find-up": "^3.0.0", - "read-pkg": "^3.0.0" + "find-up": "3.0.0", + "read-pkg": "3.0.0" } }, "resolve-from": { @@ -15297,7 +15291,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } }, "yargs": { @@ -15306,18 +15300,18 @@ "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", "dev": true, "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.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 || ^4.0.0", - "yargs-parser": "^11.1.1" + "cliui": "4.1.0", + "decamelize": "1.2.0", + "find-up": "3.0.0", + "get-caller-file": "1.0.3", + "os-locale": "3.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": "11.1.1" } }, "yargs-parser": { @@ -15326,8 +15320,8 @@ "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", "dev": true, "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "camelcase": "5.0.0", + "decamelize": "1.2.0" } } } @@ -15353,10 +15347,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" }, "dependencies": { "extend-shallow": { @@ -15364,7 +15358,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -15374,8 +15368,8 @@ "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.1", + "safe-buffer": "5.1.2" } }, "shebang-command": { @@ -15383,7 +15377,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -15402,9 +15396,9 @@ "integrity": "sha512-TyFhsQ9wZDYDfsPqWMyjCxsDoMwfpsT0130Mce7wDiVCSDdtWSg83dOqoj8aGpGCs3n1YPcam6sT1OFPuGT/OQ==", "dev": true, "requires": { - "chalk": "^2.3.2", - "figures": "^2.0.0", - "pkg-conf": "^2.1.0" + "chalk": "2.4.1", + "figures": "2.0.0", + "pkg-conf": "2.1.0" } }, "sinon": { @@ -15413,13 +15407,13 @@ "integrity": "sha512-trdx+mB0VBBgoYucy6a9L7/jfQOmvGeaKZT4OOJ+lPAtI8623xyGr8wLiE4eojzBS8G9yXbhx42GHUOVLr4X2w==", "dev": true, "requires": { - "@sinonjs/formatio": "^2.0.0", - "diff": "^3.1.0", - "lodash.get": "^4.4.2", - "lolex": "^2.2.0", - "nise": "^1.2.0", - "supports-color": "^5.1.0", - "type-detect": "^4.0.5" + "@sinonjs/formatio": "2.0.0", + "diff": "3.5.0", + "lodash.get": "4.4.2", + "lolex": "2.7.5", + "nise": "1.4.8", + "supports-color": "5.5.0", + "type-detect": "4.0.8" }, "dependencies": { "supports-color": { @@ -15428,7 +15422,7 @@ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -15443,7 +15437,7 @@ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "requires": { - "is-fullwidth-code-point": "^2.0.0" + "is-fullwidth-code-point": "2.0.0" } }, "snapdragon": { @@ -15451,14 +15445,14 @@ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "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.2", + "use": "3.1.1" }, "dependencies": { "debug": { @@ -15474,7 +15468,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -15482,7 +15476,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -15492,9 +15486,9 @@ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" }, "dependencies": { "define-property": { @@ -15502,7 +15496,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -15510,7 +15504,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -15518,7 +15512,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -15526,9 +15520,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -15548,7 +15542,7 @@ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "requires": { - "kind-of": "^3.2.0" + "kind-of": "3.2.2" } }, "socket.io": { @@ -15556,12 +15550,12 @@ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.2.0.tgz", "integrity": "sha512-wxXrIuZ8AILcn+f1B4ez4hJTPG24iNgxBBDaJfT6MsyOhVYiTXWexGoPkd87ktJG8kQEcL/NBvRi64+9k4Kc0w==", "requires": { - "debug": "~4.1.0", - "engine.io": "~3.3.1", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", + "debug": "4.1.1", + "engine.io": "3.3.2", + "has-binary2": "1.0.3", + "socket.io-adapter": "1.1.1", "socket.io-client": "2.2.0", - "socket.io-parser": "~3.3.0" + "socket.io-parser": "3.3.0" }, "dependencies": { "debug": { @@ -15569,7 +15563,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "requires": { - "ms": "^2.1.1" + "ms": "2.1.1" } }, "ms": { @@ -15593,15 +15587,15 @@ "base64-arraybuffer": "0.1.5", "component-bind": "1.0.0", "component-emitter": "1.2.1", - "debug": "~3.1.0", - "engine.io-client": "~3.3.1", - "has-binary2": "~1.0.2", + "debug": "3.1.0", + "engine.io-client": "3.3.1", + "has-binary2": "1.0.3", "has-cors": "1.1.0", "indexof": "0.0.1", "object-component": "0.0.3", "parseqs": "0.0.5", "parseuri": "0.0.5", - "socket.io-parser": "~3.3.0", + "socket.io-parser": "3.3.0", "to-array": "0.1.4" } }, @@ -15611,7 +15605,7 @@ "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==", "requires": { "component-emitter": "1.2.1", - "debug": "~3.1.0", + "debug": "3.1.0", "isarray": "2.0.1" }, "dependencies": { @@ -15632,11 +15626,11 @@ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "atob": "2.1.2", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" } }, "source-map-support": { @@ -15644,7 +15638,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "requires": { - "source-map": "^0.5.6" + "source-map": "0.5.7" } }, "source-map-url": { @@ -15663,8 +15657,8 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.3" } }, "spdx-exceptions": { @@ -15677,8 +15671,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.2.0", + "spdx-license-ids": "3.0.3" } }, "spdx-license-ids": { @@ -15692,7 +15686,7 @@ "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dev": true, "requires": { - "through": "2" + "through": "2.3.8" } }, "split-string": { @@ -15700,7 +15694,7 @@ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "requires": { - "extend-shallow": "^3.0.0" + "extend-shallow": "3.0.2" } }, "split2": { @@ -15709,7 +15703,7 @@ "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", "dev": true, "requires": { - "through2": "^2.0.2" + "through2": "2.0.5" } }, "sprintf-js": { @@ -15723,15 +15717,15 @@ "integrity": "sha512-Zhev35/y7hRMcID/upReIvRse+I9SVhyVre/KTJSJQWMz3C3+G+HpO7m1wK/yckEtujKZ7dS4hkVxAnmHaIGVQ==", "dev": true, "requires": { - "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" + "asn1": "0.2.4", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.2", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.2", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "safer-buffer": "2.1.2", + "tweetnacl": "0.14.5" } }, "standard": { @@ -15739,15 +15733,15 @@ "resolved": "http://registry.npmjs.org/standard/-/standard-11.0.1.tgz", "integrity": "sha512-nu0jAcHiSc8H+gJCXeiziMVZNDYi8MuqrYJKxTgjP4xKXZMKm311boqQIzDrYI/ktosltxt2CbDjYQs9ANC8IA==", "requires": { - "eslint": "~4.18.0", + "eslint": "4.18.2", "eslint-config-standard": "11.0.0", "eslint-config-standard-jsx": "5.0.0", - "eslint-plugin-import": "~2.9.0", - "eslint-plugin-node": "~6.0.0", - "eslint-plugin-promise": "~3.7.0", - "eslint-plugin-react": "~7.7.0", - "eslint-plugin-standard": "~3.0.1", - "standard-engine": "~8.0.0" + "eslint-plugin-import": "2.9.0", + "eslint-plugin-node": "6.0.1", + "eslint-plugin-promise": "3.7.0", + "eslint-plugin-react": "7.7.0", + "eslint-plugin-standard": "3.0.1", + "standard-engine": "8.0.1" }, "dependencies": { "ansi-regex": { @@ -15760,43 +15754,43 @@ "resolved": "http://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", "requires": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", - "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.2", - "esquery": "^1.0.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.0.1", - "ignore": "^3.3.3", - "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "require-uncached": "^1.0.3", - "semver": "^5.3.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", + "ajv": "5.5.2", + "babel-code-frame": "6.26.0", + "chalk": "2.4.1", + "concat-stream": "1.6.2", + "cross-spawn": "5.1.0", + "debug": "3.1.0", + "doctrine": "2.1.0", + "eslint-scope": "3.7.3", + "eslint-visitor-keys": "1.0.0", + "espree": "3.5.4", + "esquery": "1.0.1", + "esutils": "2.0.2", + "file-entry-cache": "2.0.0", + "functional-red-black-tree": "1.0.1", + "glob": "7.1.3", + "globals": "11.9.0", + "ignore": "3.3.10", + "imurmurhash": "0.1.4", + "inquirer": "3.3.0", + "is-resolvable": "1.1.0", + "js-yaml": "3.12.0", + "json-stable-stringify-without-jsonify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.11", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "7.0.0", + "progress": "2.0.3", + "require-uncached": "1.0.3", + "semver": "5.6.0", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", "table": "4.0.2", - "text-table": "~0.2.0" + "text-table": "0.2.0" } }, "eslint-plugin-node": { @@ -15804,10 +15798,10 @@ "resolved": "http://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz", "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", "requires": { - "ignore": "^3.3.6", - "minimatch": "^3.0.4", - "resolve": "^1.3.3", - "semver": "^5.4.1" + "ignore": "3.3.10", + "minimatch": "3.0.4", + "resolve": "1.9.0", + "semver": "5.6.0" } }, "globals": { @@ -15820,7 +15814,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -15830,10 +15824,10 @@ "resolved": "http://registry.npmjs.org/standard-engine/-/standard-engine-8.0.1.tgz", "integrity": "sha512-LA531C3+nljom/XRvdW/hGPXwmilRkaRkENhO3FAGF1Vtq/WtCXzgmnc5S6vUHHsgv534MRy02C1ikMwZXC+tw==", "requires": { - "deglob": "^2.1.0", - "get-stdin": "^6.0.0", - "minimist": "^1.1.0", - "pkg-conf": "^2.0.0" + "deglob": "2.1.1", + "get-stdin": "6.0.0", + "minimist": "1.2.0", + "pkg-conf": "2.1.0" }, "dependencies": { "minimist": { @@ -15848,8 +15842,8 @@ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" + "define-property": "0.2.5", + "object-copy": "0.1.0" }, "dependencies": { "define-property": { @@ -15857,7 +15851,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -15868,8 +15862,8 @@ "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", "dev": true, "requires": { - "duplexer2": "~0.1.0", - "readable-stream": "^2.0.2" + "duplexer2": "0.1.4", + "readable-stream": "2.3.6" } }, "string-width": { @@ -15877,8 +15871,8 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "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" }, "dependencies": { "ansi-regex": { @@ -15891,7 +15885,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -15901,9 +15895,9 @@ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.0", - "function-bind": "^1.0.2" + "define-properties": "1.1.3", + "es-abstract": "1.12.0", + "function-bind": "1.1.1" } }, "string_decoder": { @@ -15911,7 +15905,7 @@ "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.2" } }, "strip-ansi": { @@ -15919,7 +15913,7 @@ "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-bom": { @@ -15953,12 +15947,12 @@ "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "requires": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", + "ajv": "5.5.2", + "ajv-keywords": "2.1.1", + "chalk": "2.4.1", + "lodash": "4.17.11", "slice-ansi": "1.0.0", - "string-width": "^2.1.1" + "string-width": "2.1.1" } }, "tape": { @@ -15966,19 +15960,19 @@ "resolved": "https://registry.npmjs.org/tape/-/tape-4.9.1.tgz", "integrity": "sha512-6fKIXknLpoe/Jp4rzHKFPpJUHDHDqn8jus99IfPnHIjyz78HYlefTGD3b5EkbQzuLfaEvmfPK3IolLgq2xT3kw==", "requires": { - "deep-equal": "~1.0.1", - "defined": "~1.0.0", - "for-each": "~0.3.3", - "function-bind": "~1.1.1", - "glob": "~7.1.2", - "has": "~1.0.3", - "inherits": "~2.0.3", - "minimist": "~1.2.0", - "object-inspect": "~1.6.0", - "resolve": "~1.7.1", - "resumer": "~0.0.0", - "string.prototype.trim": "~1.1.2", - "through": "~2.3.8" + "deep-equal": "1.0.1", + "defined": "1.0.0", + "for-each": "0.3.3", + "function-bind": "1.1.1", + "glob": "7.1.3", + "has": "1.0.3", + "inherits": "2.0.3", + "minimist": "1.2.0", + "object-inspect": "1.6.0", + "resolve": "1.7.1", + "resumer": "0.0.0", + "string.prototype.trim": "1.1.2", + "through": "2.3.8" }, "dependencies": { "inherits": { @@ -15996,7 +15990,7 @@ "resolved": "http://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", "requires": { - "path-parse": "^1.0.5" + "path-parse": "1.0.6" } } } @@ -16029,8 +16023,8 @@ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "readable-stream": "2.3.6", + "xtend": "4.0.1" } }, "tmp": { @@ -16038,7 +16032,7 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "requires": { - "os-tmpdir": "~1.0.2" + "os-tmpdir": "1.0.2" } }, "to-array": { @@ -16056,7 +16050,7 @@ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "to-regex": { @@ -16064,10 +16058,10 @@ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" } }, "to-regex-range": { @@ -16075,8 +16069,8 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "3.0.0", + "repeat-string": "1.6.1" }, "dependencies": { "is-number": { @@ -16084,7 +16078,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } } } @@ -16094,7 +16088,7 @@ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", "requires": { - "nopt": "~1.0.10" + "nopt": "1.0.10" } }, "tough-cookie": { @@ -16103,8 +16097,8 @@ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "dev": true, "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" + "psl": "1.1.31", + "punycode": "1.4.1" }, "dependencies": { "punycode": { @@ -16150,7 +16144,7 @@ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "tweetnacl": { @@ -16164,7 +16158,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { - "prelude-ls": "~1.1.2" + "prelude-ls": "1.1.2" } }, "type-detect": { @@ -16180,7 +16174,7 @@ "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "~2.1.18" + "mime-types": "2.1.21" } }, "typedarray": { @@ -16200,8 +16194,8 @@ "dev": true, "optional": true, "requires": { - "commander": "~2.17.1", - "source-map": "~0.6.1" + "commander": "2.17.1", + "source-map": "0.6.1" }, "dependencies": { "commander": { @@ -16225,10 +16219,10 @@ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "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": { "extend-shallow": { @@ -16236,7 +16230,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "set-value": { @@ -16244,10 +16238,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" } } } @@ -16263,7 +16257,7 @@ "integrity": "sha512-nOwvHWLH3dBazyuzbECPA5uVFNd7AlgviXRHgR4yf48QqitIvpdncRrxMbZNMpPPEfgz30I9ubd1XmiJiqsTrg==", "dev": true, "requires": { - "os-name": "^3.0.0" + "os-name": "3.0.0" } }, "universalify": { @@ -16282,8 +16276,8 @@ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "has-value": "0.3.1", + "isobject": "3.0.1" }, "dependencies": { "has-value": { @@ -16291,9 +16285,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" }, "dependencies": { "isobject": { @@ -16324,7 +16318,7 @@ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "requires": { - "punycode": "^2.1.0" + "punycode": "2.1.1" } }, "urix": { @@ -16378,7 +16372,7 @@ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "requires": { - "user-home": "^1.1.1" + "user-home": "1.1.1" } }, "validate-npm-package-license": { @@ -16386,8 +16380,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.1.0", + "spdx-expression-parse": "3.0.0" } }, "varuint-bitcoin": { @@ -16395,7 +16389,7 @@ "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz", "integrity": "sha512-jCEPG+COU/1Rp84neKTyDJQr478/hAfVp5xxYn09QEH0yBjbmPeMfuuQIrp+BUD83hybtYZKhr5elV3bvdV1bA==", "requires": { - "safe-buffer": "^5.1.1" + "safe-buffer": "5.1.2" } }, "verror": { @@ -16404,9 +16398,9 @@ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": true, "requires": { - "assert-plus": "^1.0.0", + "assert-plus": "1.0.0", "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "extsprintf": "1.3.0" } }, "which": { @@ -16414,7 +16408,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -16427,7 +16421,7 @@ "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", "requires": { - "bs58check": "<3.0.0" + "bs58check": "2.1.2" } }, "window-or-global": { @@ -16441,7 +16435,7 @@ "integrity": "sha512-hBb7m7acFgQPQc222uEQTmdcGLeBmQLNLFIh0rDk3CwFOBrfjefLzEfEfmpMq8Af/n/GnFf3eYf203FY1PmudA==", "dev": true, "requires": { - "execa": "^0.10.0" + "execa": "0.10.0" }, "dependencies": { "cross-spawn": { @@ -16450,11 +16444,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "nice-try": "1.0.5", + "path-key": "2.0.1", + "semver": "5.6.0", + "shebang-command": "1.2.0", + "which": "1.3.1" } }, "execa": { @@ -16463,13 +16457,13 @@ "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", "dev": true, "requires": { - "cross-spawn": "^6.0.0", - "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" + "cross-spawn": "6.0.5", + "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" } } } @@ -16484,8 +16478,8 @@ "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -16493,7 +16487,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.0" + "number-is-nan": "1.0.1" } }, "string-width": { @@ -16501,9 +16495,9 @@ "resolved": "http://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -16518,7 +16512,7 @@ "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "requires": { - "mkdirp": "^0.5.1" + "mkdirp": "0.5.1" } }, "ws": { @@ -16526,7 +16520,7 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.2.tgz", "integrity": "sha512-rfUqzvz0WxmSXtJpPMX2EeASXabOrSMk1ruMOV3JBTBjo4ac2lDjGGsbQSyxj8Odhw5fBib8ZKEjDNvgouNKYw==", "requires": { - "async-limiter": "~1.0.0" + "async-limiter": "1.0.0" } }, "xmlhttprequest-ssl": { @@ -16554,19 +16548,19 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", "requires": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^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": "^7.0.0" + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.3", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.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": "7.0.0" } }, "yargs-parser": { @@ -16574,7 +16568,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" } }, "yeast": { diff --git a/test/unit/RawTransactions.js b/test/unit/RawTransactions.js index 1b16cfab..e3e4364a 100644 --- a/test/unit/RawTransactions.js +++ b/test/unit/RawTransactions.js @@ -30,7 +30,7 @@ describe("#RawTransactions", () => { BITBOX.RawTransactions.decodeRawTransaction(["02000000000000000000"]) .then(result => { - assert.deepEqual(data, result) + assert.deepEqual(data, result[0]) }) .then(done, done) }) @@ -77,7 +77,7 @@ describe("#RawTransactions", () => { "808d617eccaad4f1397fe07a06ec5ed15a0821cf22a3e0931c0c92aef9e572b6" ]) .then(result => { - assert.deepEqual(data, result) + assert.deepEqual(data, result[0]) }) .then(done, done) }) From 9ae365d49c7149b99e92722538fbb9f57601a1c3 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Thu, 31 Jan 2019 07:25:26 +0900 Subject: [PATCH 184/480] Pass in hexes. --- lib/RawTransactions.js | 4 +- package-lock.json | 2126 +++++----------------------------------- src/RawTransactions.js | 6 +- 3 files changed, 269 insertions(+), 1867 deletions(-) diff --git a/lib/RawTransactions.js b/lib/RawTransactions.js index 24a2d899..1ca2a62a 100644 --- a/lib/RawTransactions.js +++ b/lib/RawTransactions.js @@ -99,8 +99,8 @@ var RawTransactions = function () { //if (typeof hex !== "string") hex = JSON.stringify(hex) try { - var response = await _axios2.default.post(this.restURL + "rawtransactions/sendRawTransaction/" + hex + "?allowhighfees=" + allowhighfees, { - hex: hex + var response = await _axios2.default.post(this.restURL + "rawtransactions/sendRawTransaction", { + hexes: [hex] }); if (response.data === "66: insufficient priority") { diff --git a/package-lock.json b/package-lock.json index 9e389424..623ab75d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,59 +8,16 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, "requires": { "@babel/highlight": "7.0.0" } }, - "@babel/generator": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.2.2.tgz", - "integrity": "sha512-I4o675J/iS8k+P38dvJ3IBGqObLXyQLTxtrR4u9cSUJOURvafeEWb/pFMOTwtNrmq73mJzyF6ueTbO1BtN0Zeg==", - "requires": { - "@babel/types": "7.2.2", - "jsesc": "2.5.2", - "lodash": "4.17.11", - "source-map": "0.5.7", - "trim-right": "1.0.1" - }, - "dependencies": { - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - } - } - }, - "@babel/helper-function-name": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", - "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", - "requires": { - "@babel/helper-get-function-arity": "7.0.0", - "@babel/template": "7.2.2", - "@babel/types": "7.2.2" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", - "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", - "requires": { - "@babel/types": "7.2.2" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", - "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", - "requires": { - "@babel/types": "7.2.2" - } - }, "@babel/highlight": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "dev": true, "requires": { "chalk": "2.4.1", "esutils": "2.0.2", @@ -70,75 +27,8 @@ "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - } - } - }, - "@babel/parser": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.2.3.tgz", - "integrity": "sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA==" - }, - "@babel/template": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", - "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", - "requires": { - "@babel/code-frame": "7.0.0", - "@babel/parser": "7.2.3", - "@babel/types": "7.2.2" - } - }, - "@babel/traverse": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz", - "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==", - "requires": { - "@babel/code-frame": "7.0.0", - "@babel/generator": "7.2.2", - "@babel/helper-function-name": "7.1.0", - "@babel/helper-split-export-declaration": "7.0.0", - "@babel/parser": "7.2.3", - "@babel/types": "7.2.2", - "debug": "4.1.1", - "globals": "11.9.0", - "lodash": "4.17.11" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "2.1.1" - } - }, - "globals": { - "version": "11.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz", - "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==" - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } - } - }, - "@babel/types": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz", - "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==", - "requires": { - "esutils": "2.0.2", - "lodash": "4.17.11", - "to-fast-properties": "2.0.0" - }, - "dependencies": { - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true } } }, @@ -1462,1278 +1352,138 @@ "is-data-descriptor": "1.0.0", "kind-of": "6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "base-x": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.5.tgz", - "integrity": "sha512-C3picSgzPSLE+jW3tcBzJoGwitOtazb5B+5YmAxZm2ybmTi9LNgAtDO/jjVEBZwHoXmDBZ9m/IELj3elJVRBcA==", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" - }, - "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" - }, - "base64id": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", - "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=" - }, - "bc-bip68": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bc-bip68/-/bc-bip68-1.0.5.tgz", - "integrity": "sha512-GzaMlN7pNthrY5BhReVhnfr4Ixx+GUSfyNRHYh0QiMUF0d0+0YaD8MpEdv6AjFBksg/zlqL1fVCBBm6PpTt2Rg==" - }, - "bch-wallet-bridge-provider-interface": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/bch-wallet-bridge-provider-interface/-/bch-wallet-bridge-provider-interface-0.1.1.tgz", - "integrity": "sha512-m8Mq/aJhZN11aoa91YyYs/B1GxWfpT5IIp64IU5VRgNxGXBuUiIfvybk4XQR+zrHaMW4SLrD1tI9n59ogmEw/A==" - }, - "bch-wallet-bridge.js": { - "version": "github:web3bch/bch-wallet-bridge.js#f73558eaf3a98ba2a23de3c9cbbd582b30ff19eb", - "requires": { - "bch-wallet-bridge-provider-interface": "0.1.1", - "bchaddrjs": "0.2.3", - "bitcoincashjs": "0.1.14" - } - }, - "bchaddrjs": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.3.tgz", - "integrity": "sha512-0DVW8q3UFQFhrvt8Fowpkk+WvkYTZTSD1vGCQHrtMHZjRL6G/SoW0mgrREmgO1F/8TJ+Julri4UBWA8Gr7C5Yw==", - "requires": { - "bs58check": "2.1.2", - "cashaddrjs": "0.2.9" - } - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "bech32": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.3.tgz", - "integrity": "sha512-yuVFUvrNcoJi0sv5phmqc6P+Fl1HjRDRNOOkHY2X/3LBy2bIGNSFx4fZ95HMaXHupuS7cZR15AsvtmCIF4UEyg==" - }, - "before-after-hook": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-1.3.0.tgz", - "integrity": "sha512-cKJpHP2JckjiWgJCSASD7np08Et+wA+rFVvdwNfCciDHd9IWfa9C2hcwY8o2i5yCFc9E+jhAcKUN9KFgPqi3zA==", - "dev": true - }, - "better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", - "requires": { - "callsite": "1.0.0" - } - }, - "big-integer": { - "version": "1.6.40", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.40.tgz", - "integrity": "sha512-CjhtJp0BViLzP1ZkEnoywjgtFQXS2pomKjAJtIISTCnuHILkLcAXLdFLG/nxsHc4s9kJfc+82Xpg8WNyhfACzQ==" - }, - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" - }, - "bigi": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz", - "integrity": "sha1-nGZalfiLiwj8Bc/XMfVhhZ1yWCU=" - }, - "binary-extensions": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", - "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==", - "optional": true - }, - "bindings": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.1.tgz", - "integrity": "sha512-i47mqjF9UbjxJhxGf+pZ6kSxrnI3wBLlnGI2ArWJ4r0VrvDS7ZYXkprq/pLaBWYq4GM0r4zdHY+NNRqEMU7uew==" - }, - "bip21": { - "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "requires": { - "qs": "6.6.0" - } - }, - "bip32-utils": { - "version": "github:Bitcoin-com/bip32-utils#966fb8f0e0d4c667e4ee89adfa20c2078d66887c", - "requires": { - "keccak": "1.4.0", - "nyc": "13.1.0", - "standard": "11.0.1", - "tape": "4.9.1" - }, - "dependencies": { - "nyc": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-13.1.0.tgz", - "integrity": "sha512-3GyY6TpQ58z9Frpv4GMExE1SV2tAgYqC7HSy2omEhNiCT3mhT9NyiOvIE8zkbuJVFzmvvNTnE4h/7/wQae7xLg==", - "requires": { - "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^2.0.0", - "convert-source-map": "^1.6.0", - "debug-log": "^1.0.1", - "find-cache-dir": "^2.0.0", - "find-up": "^3.0.0", - "foreground-child": "^1.5.6", - "glob": "^7.1.3", - "istanbul-lib-coverage": "^2.0.1", - "istanbul-lib-hook": "^2.0.1", - "istanbul-lib-instrument": "^3.0.0", - "istanbul-lib-report": "^2.0.2", - "istanbul-lib-source-maps": "^2.0.1", - "istanbul-reports": "^2.0.1", - "make-dir": "^1.3.0", - "merge-source-map": "^1.1.0", - "resolve-from": "^4.0.0", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "spawn-wrap": "^1.4.2", - "test-exclude": "^5.0.0", - "uuid": "^3.3.2", - "yargs": "11.1.0", - "yargs-parser": "^9.0.2" - }, - "dependencies": { - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - } - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "append-transform": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", - "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", - "requires": { - "default-require-extensions": "^2.0.0" - } - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" - }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" - }, - "caching-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-2.0.0.tgz", - "integrity": "sha512-tTfemGmFWe7KZ3KN6VsSgQZbd9Bgo7A40wlp4PTsJJvFu4YAnEC5YnfdiKq6Vh2i9XJLnA9n8OXD46orVpnPMw==", - "requires": { - "make-dir": "^1.0.0", - "md5-hex": "^2.0.0", - "package-hash": "^2.0.0", - "write-file-atomic": "^2.0.0" - } - }, - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "optional": true - }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "optional": true, - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - } - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "optional": true, - "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "optional": true - } - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cross-spawn": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", - "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "debug-log": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", - "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=" - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "default-require-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz", - "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", - "requires": { - "strip-bom": "^3.0.0" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==" - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "requires": { - "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" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - } - } - }, - "find-cache-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.0.0.tgz", - "integrity": "sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA==", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "foreground-child": { - "version": "1.5.6", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", - "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", - "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "requires": { - "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": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" - }, - "handlebars": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", - "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", - "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "requires": { - "amdefine": ">=0.0.4" - } - } - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "requires": { - "builtin-modules": "^1.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "istanbul-lib-coverage": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", - "integrity": "sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA==" - }, - "istanbul-lib-hook": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.1.tgz", - "integrity": "sha512-ufiZoiJ8CxY577JJWEeFuxXZoMqiKpq/RqZtOAYuQLvlkbJWscq9n3gc4xrCGH9n4pW0qnTxOz1oyMmVtk8E1w==", - "requires": { - "append-transform": "^1.0.0" - } - }, - "istanbul-lib-report": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.2.tgz", - "integrity": "sha512-rJ8uR3peeIrwAxoDEbK4dJ7cqqtxBisZKCuwkMtMv0xYzaAnsAi3AHrHPAAtNXzG/bcCgZZ3OJVqm1DTi9ap2Q==", - "requires": { - "istanbul-lib-coverage": "^2.0.1", - "make-dir": "^1.3.0", - "supports-color": "^5.4.0" - } - }, - "istanbul-lib-source-maps": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-2.0.1.tgz", - "integrity": "sha512-30l40ySg+gvBLcxTrLzR4Z2XTRj3HgRCA/p2rnbs/3OiTaoj054gAbuP5DcLOtwqmy4XW8qXBHzrmP2/bQ9i3A==", - "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^2.0.1", - "make-dir": "^1.3.0", - "rimraf": "^2.6.2", - "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==" - } - } - }, - "istanbul-reports": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.0.1.tgz", - "integrity": "sha512-CT0QgMBJqs6NJLF678ZHcquUAZIoBIUNzdJrRJfpkI9OnzG6MkUfHxbJC3ln981dMswC7/B1mfX3LNkhgJxsuw==", - "requires": { - "handlebars": "^4.0.11" - } - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "optional": true - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "requires": { - "invert-kv": "^1.0.0" - } - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=" - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" - }, - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "requires": { - "pify": "^3.0.0" - } - }, - "md5-hex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-2.0.0.tgz", - "integrity": "sha1-0FiOnxx0lUSS7NJKwKxs6ZfZLjM=", - "requires": { - "md5-o-matic": "^0.1.1" - } - }, - "md5-o-matic": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", - "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=" - }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "merge-source-map": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", - "requires": { - "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==" - } - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=" - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - } - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "normalize-package-data": { - "version": "2.4.0", - "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.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "^2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-limit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", - "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", - "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==" - }, - "package-hash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-2.0.0.tgz", - "integrity": "sha1-eK4ybIngWk2BO2hgGXevBcANKg0=", - "requires": { - "graceful-fs": "^4.1.11", - "lodash.flattendeep": "^4.4.0", - "md5-hex": "^2.0.0", - "release-zalgo": "^1.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "requires": { - "find-up": "^3.0.0" - } - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", - "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", - "requires": { - "find-up": "^3.0.0", - "read-pkg": "^3.0.0" - } - }, - "release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", - "requires": { - "es6-error": "^4.0.1" - } - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" - }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "optional": true, - "requires": { - "align-text": "^0.1.1" - } - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "requires": { - "glob": "^7.0.5" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "optional": true - }, - "spawn-wrap": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", - "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", - "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" - } - }, - "spdx-correct": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==" - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==" - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "test-exclude": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.0.0.tgz", - "integrity": "sha512-bO3Lj5+qFa9YLfYW2ZcXMOV1pmQvw+KS/DpjqhyX6Y6UZ8zstpZJ+mA2ERkXfpOqhxsJlQiLeVXD3Smsrs6oLw==", - "requires": { - "arrify": "^1.0.1", - "minimatch": "^3.0.4", - "read-pkg-up": "^4.0.0", - "require-main-filename": "^1.0.1" - } - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "optional": true, - "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - }, - "dependencies": { - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "optional": true, - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "optional": true - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" - }, - "validate-npm-package-license": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", - "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "optional": true - }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "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.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write-file-atomic": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", - "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - }, - "yargs": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", - "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", - "requires": { - "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": "^9.0.2" - }, - "dependencies": { - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - } - } - }, - "yargs-parser": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", - "requires": { - "camelcase": "^4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - } - } - } - } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, + "base-x": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.5.tgz", + "integrity": "sha512-C3picSgzPSLE+jW3tcBzJoGwitOtazb5B+5YmAxZm2ybmTi9LNgAtDO/jjVEBZwHoXmDBZ9m/IELj3elJVRBcA==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" + }, + "base64-js": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" + }, + "base64id": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=" + }, + "bc-bip68": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bc-bip68/-/bc-bip68-1.0.5.tgz", + "integrity": "sha512-GzaMlN7pNthrY5BhReVhnfr4Ixx+GUSfyNRHYh0QiMUF0d0+0YaD8MpEdv6AjFBksg/zlqL1fVCBBm6PpTt2Rg==" + }, + "bch-wallet-bridge-provider-interface": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/bch-wallet-bridge-provider-interface/-/bch-wallet-bridge-provider-interface-0.1.1.tgz", + "integrity": "sha512-m8Mq/aJhZN11aoa91YyYs/B1GxWfpT5IIp64IU5VRgNxGXBuUiIfvybk4XQR+zrHaMW4SLrD1tI9n59ogmEw/A==" + }, + "bch-wallet-bridge.js": { + "version": "github:web3bch/bch-wallet-bridge.js#f73558eaf3a98ba2a23de3c9cbbd582b30ff19eb", + "requires": { + "bch-wallet-bridge-provider-interface": "0.1.1", + "bchaddrjs": "0.2.3", + "bitcoincashjs": "0.1.14" + } + }, + "bchaddrjs": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.3.tgz", + "integrity": "sha512-0DVW8q3UFQFhrvt8Fowpkk+WvkYTZTSD1vGCQHrtMHZjRL6G/SoW0mgrREmgO1F/8TJ+Julri4UBWA8Gr7C5Yw==", + "requires": { + "bs58check": "2.1.2", + "cashaddrjs": "0.2.9" + } + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "bech32": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.3.tgz", + "integrity": "sha512-yuVFUvrNcoJi0sv5phmqc6P+Fl1HjRDRNOOkHY2X/3LBy2bIGNSFx4fZ95HMaXHupuS7cZR15AsvtmCIF4UEyg==" + }, + "before-after-hook": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-1.3.0.tgz", + "integrity": "sha512-cKJpHP2JckjiWgJCSASD7np08Et+wA+rFVvdwNfCciDHd9IWfa9C2hcwY8o2i5yCFc9E+jhAcKUN9KFgPqi3zA==", + "dev": true + }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "requires": { + "callsite": "1.0.0" + } + }, + "big-integer": { + "version": "1.6.40", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.40.tgz", + "integrity": "sha512-CjhtJp0BViLzP1ZkEnoywjgtFQXS2pomKjAJtIISTCnuHILkLcAXLdFLG/nxsHc4s9kJfc+82Xpg8WNyhfACzQ==" + }, + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" + }, + "bigi": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz", + "integrity": "sha1-nGZalfiLiwj8Bc/XMfVhhZ1yWCU=" + }, + "binary-extensions": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", + "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==", + "optional": true + }, + "bindings": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.1.tgz", + "integrity": "sha512-i47mqjF9UbjxJhxGf+pZ6kSxrnI3wBLlnGI2ArWJ4r0VrvDS7ZYXkprq/pLaBWYq4GM0r4zdHY+NNRqEMU7uew==" + }, + "bip21": { + "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", + "requires": { + "qs": "6.6.0" + } + }, + "bip32-utils": { + "version": "github:Bitcoin-com/bip32-utils#966fb8f0e0d4c667e4ee89adfa20c2078d66887c", + "requires": { + "keccak": "1.4.0", + "nyc": "11.9.0", + "standard": "11.0.1", + "tape": "4.9.1" + } + }, "bip38": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", @@ -6369,25 +5119,6 @@ "lodash.uniqby": "4.7.0" } }, - "istanbul-lib-coverage": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", - "integrity": "sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA==" - }, - "istanbul-lib-instrument": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.0.0.tgz", - "integrity": "sha512-eQY9vN9elYjdgN9Iv6NS/00bptm02EBBk70lRMaVjeA6QYocQgenVrSgC28TJurdnZa80AGO3ASdFN+w/njGiQ==", - "requires": { - "@babel/generator": "7.2.2", - "@babel/parser": "7.2.3", - "@babel/template": "7.2.2", - "@babel/traverse": "7.2.3", - "@babel/types": "7.2.2", - "istanbul-lib-coverage": "2.0.1", - "semver": "5.6.0" - } - }, "java-properties": { "version": "0.2.10", "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-0.2.10.tgz", @@ -10739,7 +9470,6 @@ "version": "11.9.0", "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.9.0.tgz", "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", - "dev": true, "requires": { "archy": "1.0.0", "arrify": "1.0.1", @@ -10774,7 +9504,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "dev": true, "requires": { "kind-of": "3.2.2", "longest": "1.0.1", @@ -10784,26 +9513,22 @@ "amdefine": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" }, "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, "append-transform": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", - "dev": true, "requires": { "default-require-extensions": "1.0.0" } @@ -10811,62 +9536,52 @@ "archy": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" }, "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" }, "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" }, "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, "async": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" }, "atob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", - "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=", - "dev": true + "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=" }, "babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, "requires": { "chalk": "1.1.3", "esutils": "2.0.2", @@ -10877,7 +9592,6 @@ "version": "6.26.1", "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "dev": true, "requires": { "babel-messages": "6.23.0", "babel-runtime": "6.26.0", @@ -10893,7 +9607,6 @@ "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, "requires": { "babel-runtime": "6.26.0" } @@ -10902,7 +9615,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, "requires": { "core-js": "2.5.6", "regenerator-runtime": "0.11.1" @@ -10912,7 +9624,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, "requires": { "babel-runtime": "6.26.0", "babel-traverse": "6.26.0", @@ -10925,7 +9636,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, "requires": { "babel-code-frame": "6.26.0", "babel-messages": "6.23.0", @@ -10942,7 +9652,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, "requires": { "babel-runtime": "6.26.0", "esutils": "2.0.2", @@ -10953,20 +9662,17 @@ "babylon": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, "requires": { "cache-base": "1.0.1", "class-utils": "0.3.6", @@ -10981,7 +9687,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, "requires": { "is-descriptor": "1.0.2" } @@ -10990,7 +9695,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -10999,7 +9703,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -11008,7 +9711,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -11018,14 +9720,12 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, @@ -11033,7 +9733,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -11043,7 +9742,6 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, "requires": { "arr-flatten": "1.1.0", "array-unique": "0.3.2", @@ -11061,7 +9759,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -11071,14 +9768,12 @@ "builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, "requires": { "collection-visit": "1.0.0", "component-emitter": "1.2.1", @@ -11094,8 +9789,7 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -11103,7 +9797,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", - "dev": true, "requires": { "md5-hex": "1.3.0", "mkdirp": "0.5.1", @@ -11114,14 +9807,12 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true, "optional": true }, "center-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "dev": true, "optional": true, "requires": { "align-text": "0.1.4", @@ -11132,7 +9823,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, "requires": { "ansi-styles": "2.2.1", "escape-string-regexp": "1.0.5", @@ -11145,7 +9835,6 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, "requires": { "arr-union": "3.1.0", "define-property": "0.2.5", @@ -11157,7 +9846,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -11165,8 +9853,7 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -11174,7 +9861,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, "optional": true, "requires": { "center-align": "0.1.3", @@ -11186,7 +9872,6 @@ "version": "0.0.2", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true, "optional": true } } @@ -11194,14 +9879,12 @@ "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, "requires": { "map-visit": "1.0.0", "object-visit": "1.0.1" @@ -11210,44 +9893,37 @@ "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" }, "component-emitter": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "convert-source-map": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", - "dev": true + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=" }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "core-js": { "version": "2.5.6", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.6.tgz", - "integrity": "sha512-lQUVfQi0aLix2xpyjrrJEvfuYCqPc/HwmTKsC/VNf8q0zsjX7SQZtp4+oRONN5Tsur9GDETPjj+Ub2iDiGZfSQ==", - "dev": true + "integrity": "sha512-lQUVfQi0aLix2xpyjrrJEvfuYCqPc/HwmTKsC/VNf8q0zsjX7SQZtp4+oRONN5Tsur9GDETPjj+Ub2iDiGZfSQ==" }, "cross-spawn": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", - "dev": true, "requires": { "lru-cache": "4.1.3", "which": "1.3.0" @@ -11257,7 +9933,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -11265,26 +9940,22 @@ "debug-log": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", - "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", - "dev": true + "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=" }, "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, "default-require-extensions": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", - "dev": true, "requires": { "strip-bom": "2.0.0" } @@ -11293,7 +9964,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, "requires": { "is-descriptor": "1.0.2", "isobject": "3.0.1" @@ -11303,7 +9973,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -11312,7 +9981,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -11321,7 +9989,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -11331,14 +9998,12 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, @@ -11346,7 +10011,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, "requires": { "repeating": "2.0.1" } @@ -11355,7 +10019,6 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", - "dev": true, "requires": { "is-arrayish": "0.2.1" } @@ -11363,20 +10026,17 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "esutils": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" }, "execa": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, "requires": { "cross-spawn": "5.1.0", "get-stream": "3.0.0", @@ -11391,7 +10051,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, "requires": { "lru-cache": "4.1.3", "shebang-command": "1.2.0", @@ -11404,7 +10063,6 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, "requires": { "debug": "2.6.9", "define-property": "0.2.5", @@ -11419,7 +10077,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -11428,7 +10085,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -11439,7 +10095,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, "requires": { "assign-symbols": "1.0.0", "is-extendable": "1.0.1" @@ -11449,7 +10104,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, "requires": { "is-plain-object": "2.0.4" } @@ -11460,7 +10114,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, "requires": { "array-unique": "0.3.2", "define-property": "1.0.0", @@ -11476,7 +10129,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, "requires": { "is-descriptor": "1.0.2" } @@ -11485,7 +10137,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -11494,7 +10145,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -11503,7 +10153,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -11512,7 +10161,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -11522,8 +10170,7 @@ "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, @@ -11531,7 +10178,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, "requires": { "extend-shallow": "2.0.1", "is-number": "3.0.0", @@ -11543,7 +10189,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -11554,7 +10199,6 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", - "dev": true, "requires": { "commondir": "1.0.1", "mkdirp": "0.5.1", @@ -11565,7 +10209,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, "requires": { "locate-path": "2.0.0" } @@ -11573,14 +10216,12 @@ "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" }, "foreground-child": { "version": "1.5.6", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", - "dev": true, "requires": { "cross-spawn": "4.0.2", "signal-exit": "3.0.2" @@ -11590,7 +10231,6 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, "requires": { "map-cache": "0.2.2" } @@ -11598,32 +10238,27 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "get-caller-file": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", - "dev": true + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" }, "get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" }, "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", @@ -11636,20 +10271,17 @@ "globals": { "version": "9.18.0", "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" }, "graceful-fs": { "version": "4.1.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" }, "handlebars": { "version": "4.0.11", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", - "dev": true, "requires": { "async": "1.5.2", "optimist": "0.6.1", @@ -11661,7 +10293,6 @@ "version": "0.4.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, "requires": { "amdefine": "1.0.1" } @@ -11672,7 +10303,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, "requires": { "ansi-regex": "2.1.1" } @@ -11680,14 +10310,12 @@ "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, "requires": { "get-value": "2.0.6", "has-values": "1.0.0", @@ -11697,8 +10325,7 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -11706,7 +10333,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, "requires": { "is-number": "3.0.0", "kind-of": "4.0.0" @@ -11716,7 +10342,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, "requires": { "kind-of": "3.2.2" }, @@ -11725,7 +10350,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -11736,7 +10360,6 @@ "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" } @@ -11746,20 +10369,17 @@ "hosted-git-info": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", - "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", - "dev": true + "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==" }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -11768,14 +10388,12 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, "requires": { "loose-envify": "1.3.1" } @@ -11783,14 +10401,12 @@ "invert-kv": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, "requires": { "kind-of": "3.2.2" } @@ -11798,20 +10414,17 @@ "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-builtin-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true, "requires": { "builtin-modules": "1.1.1" } @@ -11820,7 +10433,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, "requires": { "kind-of": "3.2.2" } @@ -11829,7 +10441,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, "requires": { "is-accessor-descriptor": "0.1.6", "is-data-descriptor": "0.1.4", @@ -11839,22 +10450,19 @@ "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" }, "is-finite": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, "requires": { "number-is-nan": "1.0.1" } @@ -11862,14 +10470,12 @@ "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, "requires": { "kind-of": "3.2.2" } @@ -11878,7 +10484,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", - "dev": true, "requires": { "is-number": "4.0.0" }, @@ -11886,8 +10491,7 @@ "is-number": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" } } }, @@ -11895,7 +10499,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, "requires": { "isobject": "3.0.1" }, @@ -11903,58 +10506,49 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "istanbul-lib-coverage": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", - "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==", - "dev": true + "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==" }, "istanbul-lib-hook": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", - "dev": true, "requires": { "append-transform": "0.4.0" } @@ -11963,7 +10557,6 @@ "version": "1.10.1", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", - "dev": true, "requires": { "babel-generator": "6.26.1", "babel-template": "6.26.0", @@ -11978,7 +10571,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz", "integrity": "sha512-D4jVbMDtT2dPmloPJS/rmeP626N5Pr3Rp+SovrPn1+zPChGHcggd/0sL29jnbm4oK9W0wHjCRsdch9oLd7cm6g==", - "dev": true, "requires": { "istanbul-lib-coverage": "1.2.0", "mkdirp": "0.5.1", @@ -11990,7 +10582,6 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, "requires": { "has-flag": "1.0.0" } @@ -12001,7 +10592,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz", "integrity": "sha512-fDa0hwU/5sDXwAklXgAoCJCOsFsBplVQ6WBldz5UwaqOzmDhUK4nfuR7/G//G2lERlblUNJB8P6e8cXq3a7MlA==", - "dev": true, "requires": { "debug": "3.1.0", "istanbul-lib-coverage": "1.2.0", @@ -12014,7 +10604,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -12025,7 +10614,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.4.0.tgz", "integrity": "sha512-OPzVo1fPZ2H+owr8q/LYKLD+vquv9Pj4F+dj808MdHbuQLD7S4ACRjcX+0Tne5Vxt2lxXvdZaL7v+FOOAV281w==", - "dev": true, "requires": { "handlebars": "4.0.11" } @@ -12033,20 +10621,17 @@ "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" }, "jsesc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -12055,14 +10640,12 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true, "optional": true }, "lcid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, "requires": { "invert-kv": "1.0.0" } @@ -12071,7 +10654,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, "requires": { "graceful-fs": "4.1.11", "parse-json": "2.2.0", @@ -12084,7 +10666,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, "requires": { "p-locate": "2.0.0", "path-exists": "3.0.0" @@ -12093,28 +10674,24 @@ "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" } } }, "lodash": { "version": "4.17.10", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" }, "longest": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" }, "loose-envify": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", - "dev": true, "requires": { "js-tokens": "3.0.2" } @@ -12123,7 +10700,6 @@ "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" @@ -12132,14 +10708,12 @@ "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, "requires": { "object-visit": "1.0.1" } @@ -12148,7 +10722,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", - "dev": true, "requires": { "md5-o-matic": "0.1.1" } @@ -12156,14 +10729,12 @@ "md5-o-matic": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", - "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=", - "dev": true + "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=" }, "mem": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "dev": true, "requires": { "mimic-fn": "1.2.0" } @@ -12172,7 +10743,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", - "dev": true, "requires": { "source-map": "0.6.1" }, @@ -12180,8 +10750,7 @@ "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 + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, @@ -12189,7 +10758,6 @@ "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -12209,22 +10777,19 @@ "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, "mimic-fn": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, "requires": { "brace-expansion": "1.1.11" } @@ -12232,14 +10797,12 @@ "minimist": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, "mixin-deep": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", - "dev": true, "requires": { "for-in": "1.0.2", "is-extendable": "1.0.1" @@ -12249,7 +10812,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, "requires": { "is-plain-object": "2.0.4" } @@ -12260,7 +10822,6 @@ "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, "requires": { "minimist": "0.0.8" } @@ -12268,14 +10829,12 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "nanomatch": { "version": "1.2.9", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", - "dev": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -12294,20 +10853,17 @@ "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, @@ -12315,7 +10871,6 @@ "version": "2.4.0", "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==", - "dev": true, "requires": { "hosted-git-info": "2.6.0", "is-builtin-module": "1.0.0", @@ -12327,7 +10882,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, "requires": { "path-key": "2.0.1" } @@ -12335,20 +10889,17 @@ "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, "requires": { "copy-descriptor": "0.1.1", "define-property": "0.2.5", @@ -12359,7 +10910,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -12370,7 +10920,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, "requires": { "isobject": "3.0.1" }, @@ -12378,8 +10927,7 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -12387,7 +10935,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, "requires": { "isobject": "3.0.1" }, @@ -12395,8 +10942,7 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -12404,7 +10950,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1.0.2" } @@ -12413,7 +10958,6 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, "requires": { "minimist": "0.0.8", "wordwrap": "0.0.3" @@ -12422,14 +10966,12 @@ "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-locale": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true, "requires": { "execa": "0.7.0", "lcid": "1.0.0", @@ -12439,14 +10981,12 @@ "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "p-limit": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", - "dev": true, "requires": { "p-try": "1.0.0" } @@ -12455,7 +10995,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, "requires": { "p-limit": "1.2.0" } @@ -12463,14 +11002,12 @@ "p-try": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" }, "parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, "requires": { "error-ex": "1.3.1" } @@ -12478,14 +11015,12 @@ "pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" }, "path-exists": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, "requires": { "pinkie-promise": "2.0.1" } @@ -12493,26 +11028,22 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, "path-parse": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", - "dev": true + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" }, "path-type": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, "requires": { "graceful-fs": "4.1.11", "pify": "2.3.0", @@ -12522,20 +11053,17 @@ "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, "pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" }, "pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, "requires": { "pinkie": "2.0.4" } @@ -12544,7 +11072,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", - "dev": true, "requires": { "find-up": "1.1.2" }, @@ -12553,7 +11080,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, "requires": { "path-exists": "2.1.0", "pinkie-promise": "2.0.1" @@ -12564,20 +11090,17 @@ "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, "read-pkg": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, "requires": { "load-json-file": "1.1.0", "normalize-package-data": "2.4.0", @@ -12588,7 +11111,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, "requires": { "find-up": "1.1.2", "read-pkg": "1.1.0" @@ -12598,7 +11120,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, "requires": { "path-exists": "2.1.0", "pinkie-promise": "2.0.1" @@ -12609,14 +11130,12 @@ "regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" }, "regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, "requires": { "extend-shallow": "3.0.2", "safe-regex": "1.1.0" @@ -12625,20 +11144,17 @@ "repeat-element": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", - "dev": true + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" }, "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, "repeating": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, "requires": { "is-finite": "1.0.2" } @@ -12646,38 +11162,32 @@ "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, "require-main-filename": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" }, "resolve-from": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", - "dev": true + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" }, "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" }, "right-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "dev": true, "optional": true, "requires": { "align-text": "0.1.4" @@ -12687,7 +11197,6 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, "requires": { "glob": "7.1.2" } @@ -12696,7 +11205,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, "requires": { "ret": "0.1.15" } @@ -12704,20 +11212,17 @@ "semver": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "dev": true + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "set-value": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", - "dev": true, "requires": { "extend-shallow": "2.0.1", "is-extendable": "0.1.1", @@ -12729,7 +11234,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -12740,7 +11244,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, "requires": { "shebang-regex": "1.0.0" } @@ -12748,26 +11251,22 @@ "shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "slide": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", - "dev": true + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, "requires": { "base": "0.11.2", "debug": "2.6.9", @@ -12783,7 +11282,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -12792,7 +11290,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -12803,7 +11300,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, "requires": { "define-property": "1.0.0", "isobject": "3.0.1", @@ -12814,7 +11310,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, "requires": { "is-descriptor": "1.0.2" } @@ -12823,7 +11318,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -12832,7 +11326,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -12841,7 +11334,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -12851,14 +11343,12 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, @@ -12866,7 +11356,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, "requires": { "kind-of": "3.2.2" } @@ -12874,14 +11363,12 @@ "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "source-map-resolve": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", - "dev": true, "requires": { "atob": "2.1.1", "decode-uri-component": "0.2.0", @@ -12893,14 +11380,12 @@ "source-map-url": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, "spawn-wrap": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", - "dev": true, "requires": { "foreground-child": "1.5.6", "mkdirp": "0.5.1", @@ -12914,7 +11399,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", - "dev": true, "requires": { "spdx-expression-parse": "3.0.0", "spdx-license-ids": "3.0.0" @@ -12923,14 +11407,12 @@ "spdx-exceptions": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", - "dev": true + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==" }, "spdx-expression-parse": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, "requires": { "spdx-exceptions": "2.1.0", "spdx-license-ids": "3.0.0" @@ -12939,14 +11421,12 @@ "spdx-license-ids": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", - "dev": true + "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==" }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, "requires": { "extend-shallow": "3.0.2" } @@ -12955,7 +11435,6 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, "requires": { "define-property": "0.2.5", "object-copy": "0.1.0" @@ -12965,7 +11444,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -12976,7 +11454,6 @@ "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" @@ -12985,14 +11462,12 @@ "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, "requires": { "ansi-regex": "3.0.0" } @@ -13003,7 +11478,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, "requires": { "ansi-regex": "2.1.1" } @@ -13012,7 +11486,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, "requires": { "is-utf8": "0.2.1" } @@ -13020,20 +11493,17 @@ "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" }, "test-exclude": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", - "dev": true, "requires": { "arrify": "1.0.1", "micromatch": "3.1.10", @@ -13045,20 +11515,17 @@ "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "braces": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, "requires": { "arr-flatten": "1.1.0", "array-unique": "0.3.2", @@ -13076,7 +11543,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -13087,7 +11553,6 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, "requires": { "debug": "2.6.9", "define-property": "0.2.5", @@ -13102,7 +11567,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "0.1.6" } @@ -13111,7 +11575,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -13120,7 +11583,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, "requires": { "kind-of": "3.2.2" }, @@ -13129,7 +11591,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -13140,7 +11601,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, "requires": { "kind-of": "3.2.2" }, @@ -13149,7 +11609,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -13160,7 +11619,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, "requires": { "is-accessor-descriptor": "0.1.6", "is-data-descriptor": "0.1.4", @@ -13170,8 +11628,7 @@ "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, @@ -13179,7 +11636,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, "requires": { "array-unique": "0.3.2", "define-property": "1.0.0", @@ -13195,7 +11651,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, "requires": { "is-descriptor": "1.0.2" } @@ -13204,7 +11659,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -13215,7 +11669,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, "requires": { "extend-shallow": "2.0.1", "is-number": "3.0.0", @@ -13227,7 +11680,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -13238,7 +11690,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -13247,7 +11698,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, "requires": { "kind-of": "6.0.2" } @@ -13256,7 +11706,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", @@ -13267,7 +11716,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, "requires": { "kind-of": "3.2.2" }, @@ -13276,7 +11724,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -13286,20 +11733,17 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -13321,14 +11765,12 @@ "to-fast-properties": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" }, "to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, "requires": { "kind-of": "3.2.2" } @@ -13337,7 +11779,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, "requires": { "define-property": "2.0.2", "extend-shallow": "3.0.2", @@ -13349,7 +11790,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, "requires": { "is-number": "3.0.0", "repeat-string": "1.6.1" @@ -13359,7 +11799,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, "requires": { "kind-of": "3.2.2" } @@ -13369,14 +11808,12 @@ "trim-right": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" }, "uglify-js": { "version": "2.8.29", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, "optional": true, "requires": { "source-map": "0.5.7", @@ -13388,7 +11825,6 @@ "version": "3.10.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, "optional": true, "requires": { "camelcase": "1.2.1", @@ -13403,14 +11839,12 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "dev": true, "optional": true }, "union-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", - "dev": true, "requires": { "arr-union": "3.1.0", "get-value": "2.0.6", @@ -13422,7 +11856,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "0.1.1" } @@ -13431,7 +11864,6 @@ "version": "0.4.3", "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "dev": true, "requires": { "extend-shallow": "2.0.1", "is-extendable": "0.1.1", @@ -13445,7 +11877,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, "requires": { "has-value": "0.3.1", "isobject": "3.0.1" @@ -13455,7 +11886,6 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, "requires": { "get-value": "2.0.6", "has-values": "0.1.4", @@ -13466,7 +11896,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, "requires": { "isarray": "1.0.0" } @@ -13476,28 +11905,24 @@ "has-values": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" }, "use": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", - "dev": true, "requires": { "kind-of": "6.0.2" }, @@ -13505,8 +11930,7 @@ "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, @@ -13514,7 +11938,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", - "dev": true, "requires": { "spdx-correct": "3.0.0", "spdx-expression-parse": "3.0.0" @@ -13524,7 +11947,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", - "dev": true, "requires": { "isexe": "2.0.0" } @@ -13532,27 +11954,23 @@ "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, "window-size": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" }, "wrap-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, "requires": { "string-width": "1.0.2", "strip-ansi": "3.0.1" @@ -13562,7 +11980,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, "requires": { "number-is-nan": "1.0.1" } @@ -13571,7 +11988,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -13583,14 +11999,12 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write-file-atomic": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", - "dev": true, "requires": { "graceful-fs": "4.1.11", "imurmurhash": "0.1.4", @@ -13600,20 +12014,17 @@ "y18n": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" }, "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" }, "yargs": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", - "dev": true, "requires": { "cliui": "4.1.0", "decamelize": "1.2.0", @@ -13632,20 +12043,17 @@ "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "camelcase": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, "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", @@ -13656,7 +12064,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, "requires": { "ansi-regex": "3.0.0" } @@ -13665,7 +12072,6 @@ "version": "9.0.2", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", - "dev": true, "requires": { "camelcase": "4.1.0" } @@ -13676,7 +12082,6 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", - "dev": true, "requires": { "camelcase": "4.1.0" }, @@ -13684,8 +12089,7 @@ "camelcase": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" } } } diff --git a/src/RawTransactions.js b/src/RawTransactions.js index 4ab24741..87eba8f3 100644 --- a/src/RawTransactions.js +++ b/src/RawTransactions.js @@ -85,11 +85,9 @@ class RawTransactions { try { const response = await axios.post( - `${ - this.restURL - }rawtransactions/sendRawTransaction/${hex}?allowhighfees=${allowhighfees}`, + `${this.restURL}rawtransactions/sendRawTransaction`, { - hex: hex + hexes: [hex] } ) From 480afde4bf7270ed2ff4a34249d2adbcecadbfc2 Mon Sep 17 00:00:00 2001 From: "James S. Cramer" Date: Wed, 30 Jan 2019 22:53:23 -0500 Subject: [PATCH 185/480] typings update --- lib/Address.d.ts | 27 +++++++++++++++------------ typings/Address.d.ts | 27 +++++++++++++++------------ 2 files changed, 30 insertions(+), 24 deletions(-) diff --git a/lib/Address.d.ts b/lib/Address.d.ts index b9e59f69..6b3f4a04 100644 --- a/lib/Address.d.ts +++ b/lib/Address.d.ts @@ -1,4 +1,4 @@ -export declare interface Address { +export interface Address { restURL: string; //constructor(restURL: string); toLegacyAddress(address: string): string; @@ -19,11 +19,11 @@ export declare interface Address { fromXPub(xpub: string, path?: string): string; fromOutputScript(scriptPubKey:string, network?: string): string; details(address: string[]): Promise; - utxo(address: string[]): Promise; + utxo(address: string[]): Promise; unconfirmed(address: string[]): Promise; } -export declare interface AddressDetailsResult { +export interface AddressDetailsResult { balance: number; balanceSat: number; totalReceived: number; @@ -39,19 +39,22 @@ export declare interface AddressDetailsResult { cashAddress: string; } -export declare interface AddressUtxoResult { - txid: string; - vout: number; - scriptPubKey: string; - amount: number; - satoshis: number; - height: number; - confirmations: number; +export interface AddressUtxoResult { legacyAddress: string; cashAddress: string; + scriptPubKey: string; + utxos: + [{ + txid: string; + vout: number; + amount: number; + satoshis: number; + height: number; + confirmations: number; + }] } -export declare interface AddressUnconfirmedResult { +export interface AddressUnconfirmedResult { txid: string; vout: number; scriptPubKey: string; diff --git a/typings/Address.d.ts b/typings/Address.d.ts index b9e59f69..6b3f4a04 100644 --- a/typings/Address.d.ts +++ b/typings/Address.d.ts @@ -1,4 +1,4 @@ -export declare interface Address { +export interface Address { restURL: string; //constructor(restURL: string); toLegacyAddress(address: string): string; @@ -19,11 +19,11 @@ export declare interface Address { fromXPub(xpub: string, path?: string): string; fromOutputScript(scriptPubKey:string, network?: string): string; details(address: string[]): Promise; - utxo(address: string[]): Promise; + utxo(address: string[]): Promise; unconfirmed(address: string[]): Promise; } -export declare interface AddressDetailsResult { +export interface AddressDetailsResult { balance: number; balanceSat: number; totalReceived: number; @@ -39,19 +39,22 @@ export declare interface AddressDetailsResult { cashAddress: string; } -export declare interface AddressUtxoResult { - txid: string; - vout: number; - scriptPubKey: string; - amount: number; - satoshis: number; - height: number; - confirmations: number; +export interface AddressUtxoResult { legacyAddress: string; cashAddress: string; + scriptPubKey: string; + utxos: + [{ + txid: string; + vout: number; + amount: number; + satoshis: number; + height: number; + confirmations: number; + }] } -export declare interface AddressUnconfirmedResult { +export interface AddressUnconfirmedResult { txid: string; vout: number; scriptPubKey: string; From b2441c360d805d2753daf2cb0021f98652e3d476 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Thu, 31 Jan 2019 14:25:28 +0900 Subject: [PATCH 186/480] bump v --- index.js | 2 +- package-lock.json | 2 +- package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 2bea4b82..ce29d74b 100755 --- a/index.js +++ b/index.js @@ -18,7 +18,7 @@ const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") const cmd = require("node-cmd") -program.version("3.0.0 ", "-v, --version") +program.version("3.0.1 ", "-v, --version") program .command("new ") diff --git a/package-lock.json b/package-lock.json index 623ab75d..4e037511 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "3.0.0", + "version": "3.0.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 1db74d35..132e3550 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "3.0.0", + "version": "3.0.1", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "contributors": [ From 16df228ad3b52aa93a2b714fcd122b63c4df2808 Mon Sep 17 00:00:00 2001 From: "James S. Cramer" Date: Thu, 31 Jan 2019 09:37:14 -0500 Subject: [PATCH 187/480] added transaction/details bulk POST --- lib/Transaction.js | 22 ++++++++++++++++++---- src/Transaction.js | 26 ++++++++++++++++++++------ 2 files changed, 38 insertions(+), 10 deletions(-) diff --git a/lib/Transaction.js b/lib/Transaction.js index eceb072c..f1b3763a 100644 --- a/lib/Transaction.js +++ b/lib/Transaction.js @@ -50,11 +50,25 @@ var Transaction = function () { }, { key: "details", value: async function details(txid) { - if (typeof txid !== "string") txid = JSON.stringify(txid); - try { - var response = await _axios2.default.get(this.restURL + "transaction/details/" + txid); - return response.data; + // Handle single address. + if (typeof txid === "string") { + var response = await _axios2.default.get(this.restURL + "transaction/details/" + txid); + return response.data; + } else if (Array.isArray(txid)) { + var options = { + method: "POST", + url: this.restURL + "transaction/details", + data: { + txids: txid + } + }; + var _response = await (0, _axios2.default)(options); + + return _response.data; + } + + throw new Error("Input txid must be a string or array of strings."); } catch (error) { if (error.response && error.response.data) throw error.response.data;else throw error; } diff --git a/src/Transaction.js b/src/Transaction.js index 26b30800..e46b99a9 100644 --- a/src/Transaction.js +++ b/src/Transaction.js @@ -23,13 +23,27 @@ class Transaction { } async details(txid) { - if (typeof txid !== "string") txid = JSON.stringify(txid) - try { - const response = await axios.get( - `${this.restURL}transaction/details/${txid}` - ) - return response.data + // Handle single address. + if (typeof txid === "string") { + const response = await axios.get( + `${this.restURL}transaction/details/${txid}` + ) + return response.data + } else if (Array.isArray(txid)) { + const options = { + method: "POST", + url: `${this.restURL}transaction/details`, + data: { + txids: txid + } + } + const response = await axios(options) + + return response.data + } + + throw new Error(`Input txid must be a string or array of strings.`) } catch (error) { if (error.response && error.response.data) throw error.response.data else throw error From ac988f78ce1812c8495e3499cf8296c54a93b200 Mon Sep 17 00:00:00 2001 From: "James S. Cramer" Date: Thu, 31 Jan 2019 09:38:08 -0500 Subject: [PATCH 188/480] transaction/details typings assumes users will want to use POST method --- lib/Transaction.d.ts | 2 +- typings/Transaction.d.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/Transaction.d.ts b/lib/Transaction.d.ts index b42a881e..c47bad91 100644 --- a/lib/Transaction.d.ts +++ b/lib/Transaction.d.ts @@ -7,7 +7,7 @@ export declare interface Transaction { fromHex(hex: string): any; transactionBuilder(network: string): any; fromTransaction(tx: any): any; - details(txid: string| string[]): Promise; + details(txids: string[]): Promise; } declare interface TxnDetails{ diff --git a/typings/Transaction.d.ts b/typings/Transaction.d.ts index b42a881e..c47bad91 100644 --- a/typings/Transaction.d.ts +++ b/typings/Transaction.d.ts @@ -7,7 +7,7 @@ export declare interface Transaction { fromHex(hex: string): any; transactionBuilder(network: string): any; fromTransaction(tx: any): any; - details(txid: string| string[]): Promise; + details(txids: string[]): Promise; } declare interface TxnDetails{ From 916287d1463dbf67f29da53361ffb1b755a02a8d Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Thu, 31 Jan 2019 11:23:28 -0800 Subject: [PATCH 189/480] checking in changes before messing with examples --- lib/RawTransactions.js | 28 +- lib/Transaction.js | 2 + package-lock.json | 10804 ++++++++-------- src/RawTransactions.js | 40 +- src/Transaction.js | 2 + test/e2e/sendrawtransaction/package.json | 28 + .../sendrawtransaction/sendrawtransaction.js | 195 + 7 files changed, 5991 insertions(+), 5108 deletions(-) create mode 100644 test/e2e/sendrawtransaction/package.json create mode 100644 test/e2e/sendrawtransaction/sendrawtransaction.js diff --git a/lib/RawTransactions.js b/lib/RawTransactions.js index 1ca2a62a..d0239874 100644 --- a/lib/RawTransactions.js +++ b/lib/RawTransactions.js @@ -99,15 +99,31 @@ var RawTransactions = function () { //if (typeof hex !== "string") hex = JSON.stringify(hex) try { - var response = await _axios2.default.post(this.restURL + "rawtransactions/sendRawTransaction", { - hexes: [hex] - }); + // Single tx hex. + if (typeof hex === "string") { + var response = await _axios2.default.post(this.restURL + "rawtransactions/sendRawTransaction", { + hexes: [hex] + }); + + if (response.data === "66: insufficient priority") { + console.warn("WARN: Insufficient Priority! This is likely due to a fee that is too low, or insufficient funds.\n Please ensure that there is BCH in the given wallet. If you are running on the testnet, get some\n BCH from the testnet faucet at https://developer.bitcoin.com/faucets/bch"); + } + + return response.data; + } else if (Array.isArray(hex)) { + var options = { + method: "POST", + url: this.restURL + "rawtransactions/sendRawTransaction", + data: { + hexes: hex + } + }; + var _response3 = await (0, _axios2.default)(options); - if (response.data === "66: insufficient priority") { - console.warn("WARN: Insufficient Priority! This is likely due to a fee that is too low, or insufficient funds.\n Please ensure that there is BCH in the given wallet. If you are running on the testnet, get some\n BCH from the testnet faucet at https://developer.bitcoin.com/faucets/bch"); + return _response3.data; } - return response.data; + throw new Error("Input hex must be a string or array of strings."); } catch (error) { if (error.response && error.response.data) throw error.response.data;else throw error; } diff --git a/lib/Transaction.js b/lib/Transaction.js index f1b3763a..ed93ac8a 100644 --- a/lib/Transaction.js +++ b/lib/Transaction.js @@ -55,6 +55,8 @@ var Transaction = function () { if (typeof txid === "string") { var response = await _axios2.default.get(this.restURL + "transaction/details/" + txid); return response.data; + + // Array of addresses } else if (Array.isArray(txid)) { var options = { method: "POST", diff --git a/package-lock.json b/package-lock.json index 623ab75d..e81ca61b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,27 +8,137 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", - "dev": true, "requires": { - "@babel/highlight": "7.0.0" + "@babel/highlight": "^7.0.0" + } + }, + "@babel/generator": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.0.tgz", + "integrity": "sha512-dZTwMvTgWfhmibq4V9X+LMf6Bgl7zAodRn9PvcPdhlzFMbvUutx74dbEv7Atz3ToeEpevYEJtAwfxq/bDCzHWg==", + "requires": { + "@babel/types": "^7.3.0", + "jsesc": "^2.5.1", + "lodash": "^4.17.10", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + }, + "dependencies": { + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + } + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", + "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", + "requires": { + "@babel/types": "^7.0.0" } }, "@babel/highlight": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", - "dev": true, "requires": { - "chalk": "2.4.1", - "esutils": "2.0.2", - "js-tokens": "4.0.0" + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" }, "dependencies": { "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + } + } + }, + "@babel/parser": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.1.tgz", + "integrity": "sha512-ATz6yX/L8LEnC3dtLQnIx4ydcPxhLcoy9Vl6re00zb2w5lG6itY6Vhnr1KFRPq/FHNsgl/gh2mjNN20f9iJTTA==" + }, + "@babel/template": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", + "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.2.2", + "@babel/types": "^7.2.2" + } + }, + "@babel/traverse": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz", + "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.2.2", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.2.3", + "@babel/types": "^7.2.2", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.10" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "globals": { + "version": "11.10.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.10.0.tgz", + "integrity": "sha512-0GZF1RiPKU97IHUO5TORo9w1PwrH/NBPl+fS7oMLdaTRiYmYbwK4NWoZWrAdd0/abG9R2BU+OiwyQpTpE6pdfQ==" + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "@babel/types": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.0.tgz", + "integrity": "sha512-QkFPw68QqWU1/RVPyBe8SO7lXbPfjtqAxRYQKpFpaB8yMq7X2qAqfwK5LKoQufEkSmO5NQ70O6Kc3Afk03RwXw==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" } } }, @@ -38,8 +148,8 @@ "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", "dev": true, "requires": { - "call-me-maybe": "1.0.1", - "glob-to-regexp": "0.3.0" + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" } }, "@nodelib/fs.stat": { @@ -55,39 +165,38 @@ "dev": true, "requires": { "deepmerge": "3.0.0", - "is-plain-object": "2.0.4", - "universal-user-agent": "2.0.2", - "url-template": "2.0.8" + "is-plain-object": "^2.0.4", + "universal-user-agent": "^2.0.1", + "url-template": "^2.0.8" } }, "@octokit/request": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-2.2.0.tgz", - "integrity": "sha512-4P9EbwKZ4xfyupVMb3KVuHmM+aO2fye3nufjGKz/qDssvdJj9Rlx44O0FdFvUp4kIzToy3AHLTOulEIDAL+dpg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-2.3.0.tgz", + "integrity": "sha512-5YRqYNZOAaL7+nt7w3Scp6Sz4P2g7wKFP9npx1xdExMomk8/M/ICXVLYVam2wzxeY0cIc6wcKpjC5KI4jiNbGw==", "dev": true, "requires": { - "@octokit/endpoint": "3.1.1", - "is-plain-object": "2.0.4", - "node-fetch": "2.3.0", - "universal-user-agent": "2.0.2" + "@octokit/endpoint": "^3.1.1", + "is-plain-object": "^2.0.4", + "node-fetch": "^2.3.0", + "universal-user-agent": "^2.0.1" } }, "@octokit/rest": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.3.0.tgz", - "integrity": "sha512-u0HkROLB0nOSfJhkF5FKMg6I12m6cN5S3S73Lwtfgrs9u4LhgUCZN2hC2KDyIaT7nhvNe9Kx0PgxhhD6li6QsA==", + "version": "16.13.4", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.13.4.tgz", + "integrity": "sha512-9G7C9n/2sujHQ0uXytvRDRu/iDhVVPALiF/YojfIOv5AUrzTKPSqdSUb8AUQ9xvuJ0X9sY5/tVXBbE2eF8geaQ==", "dev": true, "requires": { - "@octokit/request": "2.2.0", - "before-after-hook": "1.3.0", - "btoa-lite": "1.0.0", - "lodash.get": "4.4.2", - "lodash.pick": "4.4.0", - "lodash.set": "4.3.2", - "lodash.uniq": "4.5.0", - "octokit-pagination-methods": "1.1.0", - "universal-user-agent": "2.0.2", - "url-template": "2.0.8" + "@octokit/request": "2.3.0", + "before-after-hook": "^1.2.0", + "btoa-lite": "^1.0.0", + "lodash.get": "^4.4.2", + "lodash.set": "^4.3.2", + "lodash.uniq": "^4.5.0", + "octokit-pagination-methods": "^1.1.0", + "universal-user-agent": "^2.0.0", + "url-template": "^2.0.8" } }, "@semantic-release/commit-analyzer": { @@ -96,12 +205,12 @@ "integrity": "sha512-2lb+t6muGenI86mYGpZYOgITx9L3oZYF697tJoqXeQEk0uw0fm+OkkOuDTBA3Oax9ftoNIrCKv9bwgYvxrbM6w==", "dev": true, "requires": { - "conventional-changelog-angular": "5.0.2", - "conventional-commits-filter": "2.0.1", - "conventional-commits-parser": "3.0.1", - "debug": "4.1.1", - "import-from": "2.1.0", - "lodash": "4.17.11" + "conventional-changelog-angular": "^5.0.0", + "conventional-commits-filter": "^2.0.0", + "conventional-commits-parser": "^3.0.0", + "debug": "^4.0.0", + "import-from": "^2.1.0", + "lodash": "^4.17.4" }, "dependencies": { "debug": { @@ -110,7 +219,7 @@ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "ms": { @@ -128,28 +237,28 @@ "dev": true }, "@semantic-release/github": { - "version": "5.2.7", - "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-5.2.7.tgz", - "integrity": "sha512-cWQhM9bdBv8KAwClmwM64Mo3vsOHVM2aJAGI6K3qbJfJ3GsLJLh1hTi+rMd5EkZ2DA8zUUHCiAJZ3ujMvUB0yg==", + "version": "5.2.10", + "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-5.2.10.tgz", + "integrity": "sha512-z/UwIxKb+EMiJDIy/57MBzJ80ar5H9GJQRyML/ILQ8dlrPwXs7cTyTvC7AesrF7t1mJZtg3ht9Qf9RdtR/LGzw==", "dev": true, "requires": { - "@octokit/rest": "16.3.0", - "@semantic-release/error": "2.2.0", - "aggregate-error": "1.0.0", - "bottleneck": "2.14.1", - "debug": "4.1.1", - "dir-glob": "2.0.0", - "fs-extra": "7.0.1", - "globby": "8.0.1", - "http-proxy-agent": "2.1.0", - "https-proxy-agent": "2.2.1", - "issue-parser": "3.0.1", - "lodash": "4.17.11", - "mime": "2.4.0", - "p-filter": "1.0.0", - "p-retry": "3.0.0", - "parse-github-url": "1.0.2", - "url-join": "4.0.0" + "@octokit/rest": "^16.13.1", + "@semantic-release/error": "^2.2.0", + "aggregate-error": "^2.0.0", + "bottleneck": "^2.0.1", + "debug": "^4.0.0", + "dir-glob": "^2.0.0", + "fs-extra": "^7.0.0", + "globby": "^9.0.0", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "issue-parser": "^3.0.0", + "lodash": "^4.17.4", + "mime": "^2.0.3", + "p-filter": "^1.0.0", + "p-retry": "^3.0.0", + "parse-github-url": "^1.0.1", + "url-join": "^4.0.0" }, "dependencies": { "debug": { @@ -158,7 +267,7 @@ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "mime": { @@ -176,69 +285,32 @@ } }, "@semantic-release/npm": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-5.1.2.tgz", - "integrity": "sha512-hAt8Q86jjp0AiykihhZ7vuCFKYz0j8v3W6Jae8b+RCLi8IUofrPF1ZImx3oY0rRu8ZZSb4aU9uxtFmeOYZebjg==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-5.1.4.tgz", + "integrity": "sha512-YRl8VTVwnRTl/sVRvTXs1ncYcuvuGrqPEXYy+lUK1YRLq25hkrhIdv3Ju0u1zGLqVCA8qRlF3NzWl7pULJXVog==", "dev": true, "requires": { - "@semantic-release/error": "2.2.0", - "aggregate-error": "1.0.0", - "execa": "1.0.0", - "fs-extra": "7.0.1", - "lodash": "4.17.11", - "nerf-dart": "1.0.0", - "normalize-url": "4.1.0", + "@semantic-release/error": "^2.2.0", + "aggregate-error": "^2.0.0", + "execa": "^1.0.0", + "fs-extra": "^7.0.0", + "lodash": "^4.17.4", + "nerf-dart": "^1.0.0", + "normalize-url": "^4.0.0", "npm": "6.5.0", - "rc": "1.2.8", - "read-pkg": "4.0.1", - "registry-auth-token": "3.3.2" + "rc": "^1.2.8", + "read-pkg": "^4.0.0", + "registry-auth-token": "^3.3.1" }, "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.6.0", - "shebang-command": "1.2.0", - "which": "1.3.1" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "6.0.5", - "get-stream": "4.1.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" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "3.0.0" - } - }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "pify": { @@ -253,9 +325,9 @@ "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=", "dev": true, "requires": { - "normalize-package-data": "2.4.0", - "parse-json": "4.0.0", - "pify": "3.0.0" + "normalize-package-data": "^2.3.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0" } } } @@ -266,15 +338,15 @@ "integrity": "sha512-pWPouZujddgb6t61t9iA9G3yIfp3TeQ7bPbV1ixYSeP6L7gI1+Du82fY/OHfEwyifpymLUQW0XnIKgKct5IMMw==", "dev": true, "requires": { - "conventional-changelog-angular": "5.0.2", - "conventional-changelog-writer": "4.0.2", - "conventional-commits-filter": "2.0.1", - "conventional-commits-parser": "3.0.1", - "debug": "4.1.1", - "get-stream": "4.1.0", - "import-from": "2.1.0", - "into-stream": "4.0.0", - "lodash": "4.17.11" + "conventional-changelog-angular": "^5.0.0", + "conventional-changelog-writer": "^4.0.0", + "conventional-commits-filter": "^2.0.0", + "conventional-commits-parser": "^3.0.0", + "debug": "^4.0.0", + "get-stream": "^4.0.0", + "import-from": "^2.1.0", + "into-stream": "^4.0.0", + "lodash": "^4.17.4" }, "dependencies": { "debug": { @@ -283,16 +355,7 @@ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "ms": "2.1.1" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "3.0.0" + "ms": "^2.1.1" } }, "ms": { @@ -314,7 +377,7 @@ }, "@sinonjs/formatio": { "version": "2.0.0", - "resolved": "http://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", "integrity": "sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg==", "dev": true, "requires": { @@ -327,9 +390,9 @@ "integrity": "sha512-m08g4CS3J6lwRQk1pj1EO+KEVWbrbXsmi9Pw0ySmrIbcVxVaedoFgLvFsV8wHLwh01EpROVz3KvVcD1Jmks9FQ==", "dev": true, "requires": { - "@sinonjs/commons": "1.3.0", - "array-from": "2.1.1", - "lodash.get": "4.4.2" + "@sinonjs/commons": "^1.0.2", + "array-from": "^2.1.1", + "lodash.get": "^4.4.2" } }, "JSONStream": { @@ -338,8 +401,8 @@ "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "dev": true, "requires": { - "jsonparse": "1.3.1", - "through": "2.3.8" + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" } }, "abbrev": { @@ -352,7 +415,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "requires": { - "mime-types": "2.1.21", + "mime-types": "~2.1.18", "negotiator": "0.6.1" } }, @@ -363,15 +426,15 @@ }, "acorn-jsx": { "version": "3.0.1", - "resolved": "http://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "requires": { - "acorn": "3.3.0" + "acorn": "^3.0.4" }, "dependencies": { "acorn": { "version": "3.3.0", - "resolved": "http://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=" } } @@ -387,17 +450,17 @@ "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", "dev": true, "requires": { - "es6-promisify": "5.0.0" + "es6-promisify": "^5.0.0" } }, "aggregate-error": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-1.0.0.tgz", - "integrity": "sha1-iINE2tAiCnLjr1CQYRf0h3GSX6w=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-2.0.0.tgz", + "integrity": "sha512-xA1VQPApQdDehIIpS3gBFkMGDRb9pDYwZPVUOoX8A0lU3GB0mjiACqsa9ByBurU53erhjamf5I4VNRitCfXhjg==", "dev": true, "requires": { - "clean-stack": "1.3.0", - "indent-string": "3.2.0" + "clean-stack": "^2.0.0", + "indent-string": "^3.0.0" } }, "ajv": { @@ -405,10 +468,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "ajv-keywords": { @@ -417,9 +480,9 @@ "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=" }, "ansi-escapes": { - "version": "3.1.0", - "resolved": "http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", - "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==" + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" }, "ansi-regex": { "version": "2.1.1", @@ -443,8 +506,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "optional": true, "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" } }, "argparse": { @@ -452,7 +515,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "argv-formatter": { @@ -467,7 +530,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "optional": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { @@ -503,8 +566,8 @@ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.12.0" + "define-properties": "^1.1.2", + "es-abstract": "^1.7.0" } }, "array-union": { @@ -513,7 +576,7 @@ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -545,7 +608,7 @@ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "~2.1.0" } }, "assert": { @@ -585,7 +648,7 @@ "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", "dev": true, "requires": { - "lodash": "4.17.11" + "lodash": "^4.17.10" } }, "async-each": { @@ -627,8 +690,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=", "requires": { - "follow-redirects": "1.6.0", - "is-buffer": "1.1.6" + "follow-redirects": "^1.2.5", + "is-buffer": "^1.1.5" } }, "babel-cli": { @@ -636,21 +699,21 @@ "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", "requires": { - "babel-core": "6.26.3", - "babel-polyfill": "6.26.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "chokidar": "1.7.0", - "commander": "2.19.0", - "convert-source-map": "1.6.0", - "fs-readdir-recursive": "1.1.0", - "glob": "7.1.3", - "lodash": "4.17.11", - "output-file-sync": "1.1.2", - "path-is-absolute": "1.0.1", - "slash": "1.0.0", - "source-map": "0.5.7", - "v8flags": "2.1.1" + "babel-core": "^6.26.0", + "babel-polyfill": "^6.26.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "chokidar": "^1.6.1", + "commander": "^2.11.0", + "convert-source-map": "^1.5.0", + "fs-readdir-recursive": "^1.0.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "output-file-sync": "^1.1.2", + "path-is-absolute": "^1.0.1", + "slash": "^1.0.0", + "source-map": "^0.5.6", + "v8flags": "^2.1.1" } }, "babel-code-frame": { @@ -658,21 +721,21 @@ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" }, "dependencies": { "chalk": { "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "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" } } } @@ -682,25 +745,25 @@ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.1", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.6.0", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" }, "dependencies": { "debug": { @@ -718,14 +781,14 @@ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.11", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" } }, "babel-helper-builder-binary-assignment-operator-visitor": { @@ -733,9 +796,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "requires": { - "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-call-delegate": { @@ -743,10 +806,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-define-map": { @@ -754,10 +817,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.11" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-explode-assignable-expression": { @@ -765,9 +828,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-function-name": { @@ -775,11 +838,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-get-function-arity": { @@ -787,8 +850,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-hoist-variables": { @@ -796,8 +859,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-optimise-call-expression": { @@ -805,8 +868,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-regex": { @@ -814,9 +877,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.11" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-remap-async-to-generator": { @@ -824,11 +887,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-replace-supers": { @@ -836,12 +899,12 @@ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "requires": { - "babel-helper-optimise-call-expression": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helpers": { @@ -849,8 +912,8 @@ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-messages": { @@ -858,7 +921,7 @@ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-check-es2015-constants": { @@ -866,17 +929,17 @@ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-syntax-async-functions": { "version": "6.13.0", - "resolved": "http://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" }, "babel-plugin-syntax-exponentiation-operator": { "version": "6.13.0", - "resolved": "http://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" }, "babel-plugin-syntax-trailing-function-commas": { @@ -889,9 +952,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-arrow-functions": { @@ -899,7 +962,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -907,7 +970,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -915,11 +978,11 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.11" + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-plugin-transform-es2015-classes": { @@ -927,15 +990,15 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "requires": { - "babel-helper-define-map": "6.26.0", - "babel-helper-function-name": "6.24.1", - "babel-helper-optimise-call-expression": "6.24.1", - "babel-helper-replace-supers": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-computed-properties": { @@ -943,8 +1006,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-destructuring": { @@ -952,7 +1015,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -960,8 +1023,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-for-of": { @@ -969,7 +1032,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -977,9 +1040,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-literals": { @@ -987,7 +1050,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -995,9 +1058,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -1005,10 +1068,10 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" } }, "babel-plugin-transform-es2015-modules-systemjs": { @@ -1016,9 +1079,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-umd": { @@ -1026,9 +1089,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "requires": { - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-object-super": { @@ -1036,8 +1099,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "requires": { - "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.26.0" + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -1045,12 +1108,12 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-shorthand-properties": { @@ -1058,8 +1121,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-spread": { @@ -1067,7 +1130,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -1075,9 +1138,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-template-literals": { @@ -1085,7 +1148,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -1093,7 +1156,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -1101,9 +1164,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -1111,9 +1174,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", - "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-regenerator": { @@ -1121,7 +1184,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "requires": { - "regenerator-transform": "0.10.1" + "regenerator-transform": "^0.10.0" } }, "babel-plugin-transform-strict-mode": { @@ -1129,8 +1192,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-polyfill": { @@ -1138,9 +1201,9 @@ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "requires": { - "babel-runtime": "6.26.0", - "core-js": "2.6.1", - "regenerator-runtime": "0.10.5" + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" }, "dependencies": { "regenerator-runtime": { @@ -1155,36 +1218,36 @@ "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0", - "browserslist": "3.2.8", - "invariant": "2.2.4", - "semver": "5.6.0" + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" } }, "babel-preset-es2015": { @@ -1192,30 +1255,30 @@ "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0" + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.24.1", + "babel-plugin-transform-es2015-classes": "^6.24.1", + "babel-plugin-transform-es2015-computed-properties": "^6.24.1", + "babel-plugin-transform-es2015-destructuring": "^6.22.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", + "babel-plugin-transform-es2015-for-of": "^6.22.0", + "babel-plugin-transform-es2015-function-name": "^6.24.1", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-umd": "^6.24.1", + "babel-plugin-transform-es2015-object-super": "^6.24.1", + "babel-plugin-transform-es2015-parameters": "^6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", + "babel-plugin-transform-regenerator": "^6.24.1" } }, "babel-register": { @@ -1223,13 +1286,13 @@ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "requires": { - "babel-core": "6.26.3", - "babel-runtime": "6.26.0", - "core-js": "2.6.1", - "home-or-tmp": "2.0.0", - "lodash": "4.17.11", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" } }, "babel-runtime": { @@ -1237,8 +1300,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "2.6.1", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -1246,11 +1309,11 @@ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.11" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { @@ -1258,15 +1321,15 @@ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.11" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" }, "dependencies": { "debug": { @@ -1284,10 +1347,10 @@ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.11", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -1310,13 +1373,13 @@ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "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" }, "dependencies": { "define-property": { @@ -1324,7 +1387,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -1332,7 +1395,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -1340,7 +1403,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -1348,9 +1411,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -1370,7 +1433,7 @@ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.5.tgz", "integrity": "sha512-C3picSgzPSLE+jW3tcBzJoGwitOtazb5B+5YmAxZm2ybmTi9LNgAtDO/jjVEBZwHoXmDBZ9m/IELj3elJVRBcA==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "base64-arraybuffer": { @@ -1400,10 +1463,11 @@ }, "bch-wallet-bridge.js": { "version": "github:web3bch/bch-wallet-bridge.js#f73558eaf3a98ba2a23de3c9cbbd582b30ff19eb", + "from": "github:web3bch/bch-wallet-bridge.js#master", "requires": { - "bch-wallet-bridge-provider-interface": "0.1.1", - "bchaddrjs": "0.2.3", - "bitcoincashjs": "0.1.14" + "bch-wallet-bridge-provider-interface": "^0.1.1", + "bchaddrjs": "^0.2.2", + "bitcoincashjs": "^0.1.10" } }, "bchaddrjs": { @@ -1411,8 +1475,8 @@ "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.3.tgz", "integrity": "sha512-0DVW8q3UFQFhrvt8Fowpkk+WvkYTZTSD1vGCQHrtMHZjRL6G/SoW0mgrREmgO1F/8TJ+Julri4UBWA8Gr7C5Yw==", "requires": { - "bs58check": "2.1.2", - "cashaddrjs": "0.2.9" + "bs58check": "^2.1.2", + "cashaddrjs": "^0.2.9" } }, "bcrypt-pbkdf": { @@ -1421,7 +1485,7 @@ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "bech32": { @@ -1430,9 +1494,9 @@ "integrity": "sha512-yuVFUvrNcoJi0sv5phmqc6P+Fl1HjRDRNOOkHY2X/3LBy2bIGNSFx4fZ95HMaXHupuS7cZR15AsvtmCIF4UEyg==" }, "before-after-hook": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-1.3.0.tgz", - "integrity": "sha512-cKJpHP2JckjiWgJCSASD7np08Et+wA+rFVvdwNfCciDHd9IWfa9C2hcwY8o2i5yCFc9E+jhAcKUN9KFgPqi3zA==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-1.3.2.tgz", + "integrity": "sha512-zyPgY5dgbf99c0uGUjhY4w+mxqEGxPKg9RQDl34VvrVh2bM31lFN+mwR1ZHepq/KA3VCPk1gwJZL6IIJqjLy2w==", "dev": true }, "better-assert": { @@ -1444,9 +1508,9 @@ } }, "big-integer": { - "version": "1.6.40", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.40.tgz", - "integrity": "sha512-CjhtJp0BViLzP1ZkEnoywjgtFQXS2pomKjAJtIISTCnuHILkLcAXLdFLG/nxsHc4s9kJfc+82Xpg8WNyhfACzQ==" + "version": "1.6.41", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.41.tgz", + "integrity": "sha512-d5AT9lMTYJ/ZE/4gzxb+5ttPcRWljVsvv7lF1w9KzkPhVUhBtHrjDo1J8swfZKepfLsliDhYa31zRYwcD0Yg9w==" }, "big.js": { "version": "3.2.0", @@ -1465,265 +1529,1266 @@ "optional": true }, "bindings": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.1.tgz", - "integrity": "sha512-i47mqjF9UbjxJhxGf+pZ6kSxrnI3wBLlnGI2ArWJ4r0VrvDS7ZYXkprq/pLaBWYq4GM0r4zdHY+NNRqEMU7uew==" + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.4.0.tgz", + "integrity": "sha512-7znEVX22Djn+nYjxCWKDne0RRloa9XfYa84yk3s+HkE3LpDYZmhArYr9O9huBoHY3/oXispx5LorIX7Sl2CgSQ==", + "requires": { + "file-uri-to-path": "1.0.0" + } }, "bip21": { "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", + "from": "github:Bitcoin-com/bip21", "requires": { - "qs": "6.6.0" + "qs": "^6.3.0" } }, "bip32-utils": { "version": "github:Bitcoin-com/bip32-utils#966fb8f0e0d4c667e4ee89adfa20c2078d66887c", + "from": "github:Bitcoin-com/bip32-utils#0.13.0", "requires": { - "keccak": "1.4.0", - "nyc": "11.9.0", - "standard": "11.0.1", - "tape": "4.9.1" - } - }, - "bip38": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", - "integrity": "sha512-22KDak0RDyghFbR0Si7wyq9IgY423YzGYzWLpGeofH3DaolOQqjD3mNN08eFoubKlbyclOQKFwtONMv2SD9V3A==", - "requires": { - "bigi": "1.4.2", - "browserify-aes": "1.2.0", - "bs58check": "2.1.2", - "buffer-xor": "1.0.3", - "create-hash": "1.2.0", - "ecurve": "1.0.6", - "scryptsy": "2.0.0" - } - }, - "bip39": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", - "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", - "requires": { - "create-hash": "1.2.0", - "pbkdf2": "3.0.17", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "unorm": "1.4.1" - } - }, - "bip66": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", - "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "bitcoin-ops": { - "version": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646" - }, - "bitcoin-txdecoder": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/bitcoin-txdecoder/-/bitcoin-txdecoder-0.0.3.tgz", - "integrity": "sha512-pH/eF5hQ65y54U23mzuF42wEj9YWj4WKHAIj2il6b1+oRoi/oyM4Ti3e8nMD8ajippICmyquqbyCZKGq3i4W+A==", - "requires": { - "bitcoinjs-lib": "3.3.2" - } - }, - "bitcoincashjs": { - "version": "0.1.14", - "resolved": "https://registry.npmjs.org/bitcoincashjs/-/bitcoincashjs-0.1.14.tgz", - "integrity": "sha512-x0wMVSCZ56ZQnSQ+Xim7XfS0IYiOyOwo0pdMCmR+cDNB7zRhICFuH5i3lNdLSgUw1e7Pc3FmUlC9wruQNlYMnA==" - }, - "bitcoincashjs-lib": { - "version": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", - "requires": { - "bech32": "1.1.3", - "bigi": "1.4.2", - "bip66": "1.1.5", - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646", - "bs58check": "2.1.2", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ecurve": "1.0.6", - "merkle-lib": "2.0.10", - "pushdata-bitcoin": "1.0.1", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "typeforce": "1.18.0", - "varuint-bitcoin": "1.1.0", - "wif": "2.0.6" - } - }, - "bitcoinjs-lib": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-3.3.2.tgz", - "integrity": "sha512-l5qqvbaK8wwtANPf6oEffykycg4383XgEYdia1rI7/JpGf1jfRWlOUCvx5TiTZS7kyIvY4j/UhIQ2urLsvGkzw==", - "requires": { - "bech32": "1.1.3", - "bigi": "1.4.2", - "bip66": "1.1.5", - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646", - "bs58check": "2.1.2", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ecurve": "1.0.6", - "merkle-lib": "2.0.10", - "pushdata-bitcoin": "1.0.1", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "typeforce": "1.18.0", - "varuint-bitcoin": "1.1.0", - "wif": "2.0.6" - } - }, - "bitcoinjs-message": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", - "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", - "requires": { - "bs58check": "2.1.2", - "buffer-equals": "1.0.4", - "create-hash": "1.2.0", - "secp256k1": "3.6.0", - "varuint-bitcoin": "1.1.0" - } - }, - "blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" - }, - "bottleneck": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.14.1.tgz", - "integrity": "sha512-FAZr9OekUbx/lCGY/Sok2QOFOy3exRWRcjVJfmHrh3J9UoIaLHT0E+TwhXTIPmKS8JHuX6i/eH/kmhhHBEx7DQ==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "optional": true, - "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.3" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.1", - "safe-buffer": "5.1.2" - } - }, - "browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", - "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", - "requires": { - "caniuse-lite": "1.0.30000923", - "electron-to-chromium": "1.3.96" - } - }, - "bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "requires": { - "base-x": "3.0.5" - } - }, - "bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "requires": { - "bs58": "4.0.1", - "create-hash": "1.2.0", - "safe-buffer": "5.1.2" - } - }, - "btoa-lite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", - "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=", - "dev": true - }, - "buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", - "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", - "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.12" - } - }, - "buffer-equals": { - "version": "1.0.4", - "resolved": "http://registry.npmjs.org/buffer-equals/-/buffer-equals-1.0.4.tgz", - "integrity": "sha1-A1O1T9B/2VZBcGca5vZrnPENJ/U=" - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "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" + "keccak": "^1.3.0", + "nyc": "*", + "standard": "^11.0.1", + "tape": "*" + }, + "dependencies": { + "nyc": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-13.1.0.tgz", + "integrity": "sha512-3GyY6TpQ58z9Frpv4GMExE1SV2tAgYqC7HSy2omEhNiCT3mhT9NyiOvIE8zkbuJVFzmvvNTnE4h/7/wQae7xLg==", + "requires": { + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^2.0.0", + "convert-source-map": "^1.6.0", + "debug-log": "^1.0.1", + "find-cache-dir": "^2.0.0", + "find-up": "^3.0.0", + "foreground-child": "^1.5.6", + "glob": "^7.1.3", + "istanbul-lib-coverage": "^2.0.1", + "istanbul-lib-hook": "^2.0.1", + "istanbul-lib-instrument": "^3.0.0", + "istanbul-lib-report": "^2.0.2", + "istanbul-lib-source-maps": "^2.0.1", + "istanbul-reports": "^2.0.1", + "make-dir": "^1.3.0", + "merge-source-map": "^1.1.0", + "resolve-from": "^4.0.0", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "spawn-wrap": "^1.4.2", + "test-exclude": "^5.0.0", + "uuid": "^3.3.2", + "yargs": "11.1.0", + "yargs-parser": "^9.0.2" + }, + "dependencies": { + "align-text": { + "version": "0.1.4", + "bundled": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + } + }, + "amdefine": { + "version": "1.0.1", + "bundled": true + }, + "ansi-regex": { + "version": "3.0.0", + "bundled": true + }, + "append-transform": { + "version": "1.0.0", + "bundled": true, + "requires": { + "default-require-extensions": "^2.0.0" + } + }, + "archy": { + "version": "1.0.0", + "bundled": true + }, + "arrify": { + "version": "1.0.1", + "bundled": true + }, + "async": { + "version": "1.5.2", + "bundled": true + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "builtin-modules": { + "version": "1.1.1", + "bundled": true + }, + "caching-transform": { + "version": "2.0.0", + "bundled": true, + "requires": { + "make-dir": "^1.0.0", + "md5-hex": "^2.0.0", + "package-hash": "^2.0.0", + "write-file-atomic": "^2.0.0" + } + }, + "camelcase": { + "version": "1.2.1", + "bundled": true, + "optional": true + }, + "center-align": { + "version": "0.1.3", + "bundled": true, + "optional": true, + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "cliui": { + "version": "2.1.0", + "bundled": true, + "optional": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "bundled": true, + "optional": true + } + } + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "commondir": { + "version": "1.0.1", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "convert-source-map": { + "version": "1.6.0", + "bundled": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cross-spawn": { + "version": "4.0.2", + "bundled": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "debug": { + "version": "3.1.0", + "bundled": true, + "requires": { + "ms": "2.0.0" + } + }, + "debug-log": { + "version": "1.0.1", + "bundled": true + }, + "decamelize": { + "version": "1.2.0", + "bundled": true + }, + "default-require-extensions": { + "version": "2.0.0", + "bundled": true, + "requires": { + "strip-bom": "^3.0.0" + } + }, + "error-ex": { + "version": "1.3.2", + "bundled": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es6-error": { + "version": "4.1.1", + "bundled": true + }, + "execa": { + "version": "0.7.0", + "bundled": true, + "requires": { + "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" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "bundled": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + } + } + }, + "find-cache-dir": { + "version": "2.0.0", + "bundled": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "bundled": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "foreground-child": { + "version": "1.5.6", + "bundled": true, + "requires": { + "cross-spawn": "^4", + "signal-exit": "^3.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "get-caller-file": { + "version": "1.0.3", + "bundled": true + }, + "get-stream": { + "version": "3.0.0", + "bundled": true + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "requires": { + "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": { + "version": "4.1.11", + "bundled": true + }, + "handlebars": { + "version": "4.0.11", + "bundled": true, + "requires": { + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "bundled": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "has-flag": { + "version": "3.0.0", + "bundled": true + }, + "hosted-git-info": { + "version": "2.7.1", + "bundled": true + }, + "imurmurhash": { + "version": "0.1.4", + "bundled": true + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "invert-kv": { + "version": "1.0.0", + "bundled": true + }, + "is-arrayish": { + "version": "0.2.1", + "bundled": true + }, + "is-buffer": { + "version": "1.1.6", + "bundled": true, + "optional": true + }, + "is-builtin-module": { + "version": "1.0.0", + "bundled": true, + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true + }, + "is-stream": { + "version": "1.1.0", + "bundled": true + }, + "isexe": { + "version": "2.0.0", + "bundled": true + }, + "istanbul-lib-coverage": { + "version": "2.0.1", + "bundled": true + }, + "istanbul-lib-hook": { + "version": "2.0.1", + "bundled": true, + "requires": { + "append-transform": "^1.0.0" + } + }, + "istanbul-lib-report": { + "version": "2.0.2", + "bundled": true, + "requires": { + "istanbul-lib-coverage": "^2.0.1", + "make-dir": "^1.3.0", + "supports-color": "^5.4.0" + } + }, + "istanbul-lib-source-maps": { + "version": "2.0.1", + "bundled": true, + "requires": { + "debug": "^3.1.0", + "istanbul-lib-coverage": "^2.0.1", + "make-dir": "^1.3.0", + "rimraf": "^2.6.2", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "bundled": true + } + } + }, + "istanbul-reports": { + "version": "2.0.1", + "bundled": true, + "requires": { + "handlebars": "^4.0.11" + } + }, + "json-parse-better-errors": { + "version": "1.0.2", + "bundled": true + }, + "kind-of": { + "version": "3.2.2", + "bundled": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "lazy-cache": { + "version": "1.0.4", + "bundled": true, + "optional": true + }, + "lcid": { + "version": "1.0.0", + "bundled": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "load-json-file": { + "version": "4.0.0", + "bundled": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "bundled": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash.flattendeep": { + "version": "4.4.0", + "bundled": true + }, + "longest": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "lru-cache": { + "version": "4.1.3", + "bundled": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "bundled": true, + "requires": { + "pify": "^3.0.0" + } + }, + "md5-hex": { + "version": "2.0.0", + "bundled": true, + "requires": { + "md5-o-matic": "^0.1.1" + } + }, + "md5-o-matic": { + "version": "0.1.1", + "bundled": true + }, + "mem": { + "version": "1.1.0", + "bundled": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "merge-source-map": { + "version": "1.1.0", + "bundled": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "bundled": true + } + } + }, + "mimic-fn": { + "version": "1.2.0", + "bundled": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.10", + "bundled": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "bundled": true + } + } + }, + "ms": { + "version": "2.0.0", + "bundled": true + }, + "normalize-package-data": { + "version": "2.4.0", + "bundled": true, + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "npm-run-path": { + "version": "2.0.2", + "bundled": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1" + } + }, + "optimist": { + "version": "0.6.1", + "bundled": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true + }, + "os-locale": { + "version": "2.1.0", + "bundled": true, + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "p-finally": { + "version": "1.0.0", + "bundled": true + }, + "p-limit": { + "version": "2.0.0", + "bundled": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "bundled": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.0.0", + "bundled": true + }, + "package-hash": { + "version": "2.0.0", + "bundled": true, + "requires": { + "graceful-fs": "^4.1.11", + "lodash.flattendeep": "^4.4.0", + "md5-hex": "^2.0.0", + "release-zalgo": "^1.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "bundled": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "path-exists": { + "version": "3.0.0", + "bundled": true + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true + }, + "path-key": { + "version": "2.0.1", + "bundled": true + }, + "path-type": { + "version": "3.0.0", + "bundled": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "bundled": true + }, + "pkg-dir": { + "version": "3.0.0", + "bundled": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "pseudomap": { + "version": "1.0.2", + "bundled": true + }, + "read-pkg": { + "version": "3.0.0", + "bundled": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "4.0.0", + "bundled": true, + "requires": { + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" + } + }, + "release-zalgo": { + "version": "1.0.0", + "bundled": true, + "requires": { + "es6-error": "^4.0.1" + } + }, + "repeat-string": { + "version": "1.6.1", + "bundled": true, + "optional": true + }, + "require-directory": { + "version": "2.1.1", + "bundled": true + }, + "require-main-filename": { + "version": "1.0.1", + "bundled": true + }, + "resolve-from": { + "version": "4.0.0", + "bundled": true + }, + "right-align": { + "version": "0.1.3", + "bundled": true, + "optional": true, + "requires": { + "align-text": "^0.1.1" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true + }, + "semver": { + "version": "5.5.0", + "bundled": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true + }, + "shebang-command": { + "version": "1.2.0", + "bundled": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "bundled": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true + }, + "source-map": { + "version": "0.5.7", + "bundled": true, + "optional": true + }, + "spawn-wrap": { + "version": "1.4.2", + "bundled": true, + "requires": { + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" + } + }, + "spdx-correct": { + "version": "3.0.0", + "bundled": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "bundled": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "bundled": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.0", + "bundled": true + }, + "string-width": { + "version": "2.1.1", + "bundled": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "bundled": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "bundled": true + }, + "strip-eof": { + "version": "1.0.0", + "bundled": true + }, + "supports-color": { + "version": "5.4.0", + "bundled": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "test-exclude": { + "version": "5.0.0", + "bundled": true, + "requires": { + "arrify": "^1.0.1", + "minimatch": "^3.0.4", + "read-pkg-up": "^4.0.0", + "require-main-filename": "^1.0.1" + } + }, + "uglify-js": { + "version": "2.8.29", + "bundled": true, + "optional": true, + "requires": { + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "dependencies": { + "yargs": { + "version": "3.10.0", + "bundled": true, + "optional": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "uuid": { + "version": "3.3.2", + "bundled": true + }, + "validate-npm-package-license": { + "version": "3.0.3", + "bundled": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "bundled": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "bundled": true + }, + "window-size": { + "version": "0.1.0", + "bundled": true, + "optional": true + }, + "wordwrap": { + "version": "0.0.3", + "bundled": true + }, + "wrap-ansi": { + "version": "2.1.0", + "bundled": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + }, + "write-file-atomic": { + "version": "2.3.0", + "bundled": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "y18n": { + "version": "3.2.1", + "bundled": true + }, + "yallist": { + "version": "2.1.2", + "bundled": true + }, + "yargs": { + "version": "11.1.0", + "bundled": true, + "requires": { + "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": "^9.0.2" + }, + "dependencies": { + "cliui": { + "version": "4.1.0", + "bundled": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "bundled": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "bundled": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "bundled": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "bundled": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "bundled": true + } + } + }, + "yargs-parser": { + "version": "9.0.2", + "bundled": true, + "requires": { + "camelcase": "^4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "bundled": true + } + } + } + } + } + } + }, + "bip38": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", + "integrity": "sha512-22KDak0RDyghFbR0Si7wyq9IgY423YzGYzWLpGeofH3DaolOQqjD3mNN08eFoubKlbyclOQKFwtONMv2SD9V3A==", + "requires": { + "bigi": "^1.2.0", + "browserify-aes": "^1.0.1", + "bs58check": "<3.0.0", + "buffer-xor": "^1.0.2", + "create-hash": "^1.1.1", + "ecurve": "^1.0.0", + "scryptsy": "^2.0.0" + } + }, + "bip39": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", + "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", + "requires": { + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "unorm": "^1.3.3" + } + }, + "bip66": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", + "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "bitcoin-ops": { + "version": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646", + "from": "github:Bitcoin-com/bitcoincash-ops#1.5.0" + }, + "bitcoin-txdecoder": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/bitcoin-txdecoder/-/bitcoin-txdecoder-0.0.3.tgz", + "integrity": "sha512-pH/eF5hQ65y54U23mzuF42wEj9YWj4WKHAIj2il6b1+oRoi/oyM4Ti3e8nMD8ajippICmyquqbyCZKGq3i4W+A==", + "requires": { + "bitcoinjs-lib": "3.3.*" + } + }, + "bitcoincashjs": { + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/bitcoincashjs/-/bitcoincashjs-0.1.14.tgz", + "integrity": "sha512-x0wMVSCZ56ZQnSQ+Xim7XfS0IYiOyOwo0pdMCmR+cDNB7zRhICFuH5i3lNdLSgUw1e7Pc3FmUlC9wruQNlYMnA==" + }, + "bitcoincashjs-lib": { + "version": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", + "from": "github:Bitcoin-com/bitcoincashjs-lib#3.3.4", + "requires": { + "bech32": "^1.1.2", + "bigi": "^1.4.0", + "bip66": "^1.1.0", + "bitcoin-ops": "^1.3.0", + "bs58check": "^2.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.3", + "ecurve": "^1.0.0", + "merkle-lib": "^2.0.10", + "pushdata-bitcoin": "^1.0.1", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "typeforce": "^1.11.3", + "varuint-bitcoin": "^1.0.4", + "wif": "^2.0.1" + } + }, + "bitcoinjs-lib": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-3.3.2.tgz", + "integrity": "sha512-l5qqvbaK8wwtANPf6oEffykycg4383XgEYdia1rI7/JpGf1jfRWlOUCvx5TiTZS7kyIvY4j/UhIQ2urLsvGkzw==", + "requires": { + "bech32": "^1.1.2", + "bigi": "^1.4.0", + "bip66": "^1.1.0", + "bitcoin-ops": "^1.3.0", + "bs58check": "^2.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.3", + "ecurve": "^1.0.0", + "merkle-lib": "^2.0.10", + "pushdata-bitcoin": "^1.0.1", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "typeforce": "^1.11.3", + "varuint-bitcoin": "^1.0.4", + "wif": "^2.0.1" + } + }, + "bitcoinjs-message": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", + "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", + "requires": { + "bs58check": "^2.0.2", + "buffer-equals": "^1.0.3", + "create-hash": "^1.1.2", + "secp256k1": "^3.0.1", + "varuint-bitcoin": "^1.0.1" + } + }, + "blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, + "bottleneck": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.15.3.tgz", + "integrity": "sha512-2sHF/gMwTshF//gQninQBEHDNBXuvDLfSczPHpDc2U/9SC+P/97Zt01hy7UTEV0atSZ9BQBIHsdju/6wn7m4+w==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "optional": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "requires": { + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" + } + }, + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "requires": { + "base-x": "^3.0.2" + } + }, + "bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "requires": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "btoa-lite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", + "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=", + "dev": true + }, + "buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", + "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "buffer-equals": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/buffer-equals/-/buffer-equals-1.0.4.tgz", + "integrity": "sha1-A1O1T9B/2VZBcGca5vZrnPENJ/U=" + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "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" }, "dependencies": { "isobject": { @@ -1745,12 +2810,12 @@ "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", "dev": true, "requires": { - "callsites": "2.0.0" + "callsites": "^2.0.0" }, "dependencies": { "callsites": { "version": "2.0.0", - "resolved": "http://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", "dev": true } @@ -1761,7 +2826,7 @@ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "requires": { - "callsites": "0.2.0" + "callsites": "^0.2.0" } }, "callsite": { @@ -1771,13 +2836,13 @@ }, "callsites": { "version": "0.2.0", - "resolved": "http://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=" }, "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==" }, "camelcase-keys": { "version": "4.2.0", @@ -1785,9 +2850,17 @@ "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", "dev": true, "requires": { - "camelcase": "4.1.0", - "map-obj": "2.0.0", - "quick-lru": "1.1.0" + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + } } }, "can-promise": { @@ -1795,13 +2868,13 @@ "resolved": "https://registry.npmjs.org/can-promise/-/can-promise-0.0.1.tgz", "integrity": "sha512-gzVrHyyrvgt0YpDm7pn04MQt8gjh0ZAhN4ZDyCRtGl6YnuuK6b4aiUTD7G52r9l4YNmxfTtEscb92vxtAlL6XQ==", "requires": { - "window-or-global": "1.0.1" + "window-or-global": "^1.0.1" } }, "caniuse-lite": { - "version": "1.0.30000923", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000923.tgz", - "integrity": "sha512-j5ur7eeluOFjjPUkydtXP4KFAsmH3XaQNch5tvWSO+dLHYt5PE+VgJZLWtbVOodfWij6m6zas28T4gB/cLYq1w==" + "version": "1.0.30000933", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000933.tgz", + "integrity": "sha512-d3QXv7eFTU40DSedSP81dV/ajcGSKpT+GW+uhtWmLvQm9bPk0KK++7i1e2NSW/CXGZhWFt2mFbFtCJ5I5bMuVA==" }, "cardinal": { "version": "2.1.1", @@ -1809,8 +2882,8 @@ "integrity": "sha1-fMEFXYItISlU0HsIXeolHMe8VQU=", "dev": true, "requires": { - "ansicolors": "0.3.2", - "redeyed": "2.1.1" + "ansicolors": "~0.3.2", + "redeyed": "~2.1.0" } }, "caseless": { @@ -1824,7 +2897,7 @@ "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.2.9.tgz", "integrity": "sha512-DhJF4iAH0/RM3UjHDHKRxzs09YGL9px+oTyizzydanhC7jTyM2aJ+aLKA96vZGTTWayvvr2iDF2l13lpqXiRFg==", "requires": { - "big-integer": "1.6.40" + "big-integer": "^1.6.34" } }, "chai": { @@ -1833,22 +2906,22 @@ "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", "dev": true, "requires": { - "assertion-error": "1.1.0", - "check-error": "1.0.2", - "deep-eql": "3.0.1", - "get-func-name": "2.0.0", - "pathval": "1.1.0", - "type-detect": "4.0.8" + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" } }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "ansi-styles": { @@ -1856,7 +2929,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "color-convert": "1.9.3" + "color-convert": "^1.9.0" } }, "supports-color": { @@ -1864,7 +2937,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -1886,15 +2959,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "optional": true, "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.2.4", - "glob-parent": "2.0.0", - "inherits": "2.0.1", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1" + "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" } }, "cipher-base": { @@ -1902,8 +2975,8 @@ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "circular-json": { @@ -1916,10 +2989,10 @@ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -1927,7 +3000,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "isobject": { @@ -1938,9 +3011,9 @@ } }, "clean-stack": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-1.3.0.tgz", - "integrity": "sha1-noIVAa6XmYbEax1m0tQy2y/UrjE=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.0.0.tgz", + "integrity": "sha512-VEoL9Qh7I8s8iHnV53DaeWSt8NJ0g3khMfK6NiCPB7H657juhro+cSw2O88uo3bo0c0X5usamtXk0/Of0wXa5A==", "dev": true }, "clear": { @@ -1953,7 +3026,7 @@ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-table": { @@ -1971,31 +3044,26 @@ "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" }, "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" }, "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "1.0.1" - } + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, - "string-width": { - "version": "1.0.2", - "resolved": "http://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "ansi-regex": "^3.0.0" } } } @@ -2012,8 +3080,9 @@ }, "coininfo": { "version": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", + "from": "github:Bitcoin-com/coininfo", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.1" } }, "collection-visit": { @@ -2021,8 +3090,8 @@ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "color-convert": { @@ -2040,7 +3109,7 @@ }, "colors": { "version": "1.0.3", - "resolved": "http://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", "dev": true }, @@ -2050,7 +3119,7 @@ "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", "dev": true, "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -2064,8 +3133,8 @@ "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=", "dev": true, "requires": { - "array-ify": "1.0.0", - "dot-prop": "3.0.0" + "array-ify": "^1.0.0", + "dot-prop": "^3.0.0" } }, "component-bind": { @@ -2090,13 +3159,13 @@ }, "concat-stream": { "version": "1.6.2", - "resolved": "http://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "requires": { - "buffer-from": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" }, "dependencies": { "inherits": { @@ -2117,8 +3186,8 @@ "integrity": "sha512-yx7m7lVrXmt4nKWQgWZqxSALEiAKZhOAcbxdUaU9575mB0CzXVbgrgpfSnSP7OqWDUTYGD0YVJ0MSRdyOPgAwA==", "dev": true, "requires": { - "compare-func": "1.3.2", - "q": "1.5.1" + "compare-func": "^1.3.1", + "q": "^1.5.1" } }, "conventional-changelog-writer": { @@ -2127,16 +3196,16 @@ "integrity": "sha512-d8/FQY/fix2xXEBUhOo8u3DCbyEw3UOQgYHxLsPDw+wHUDma/GQGAGsGtoH876WyNs32fViHmTOUrgRKVLvBug==", "dev": true, "requires": { - "compare-func": "1.3.2", - "conventional-commits-filter": "2.0.1", - "dateformat": "3.0.3", - "handlebars": "4.0.12", - "json-stringify-safe": "5.0.1", - "lodash": "4.17.11", - "meow": "4.0.1", - "semver": "5.6.0", - "split": "1.0.1", - "through2": "2.0.5" + "compare-func": "^1.3.1", + "conventional-commits-filter": "^2.0.1", + "dateformat": "^3.0.0", + "handlebars": "^4.0.2", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.2.1", + "meow": "^4.0.0", + "semver": "^5.5.0", + "split": "^1.0.0", + "through2": "^2.0.0" } }, "conventional-commits-filter": { @@ -2145,8 +3214,8 @@ "integrity": "sha512-92OU8pz/977udhBjgPEbg3sbYzIxMDFTlQT97w7KdhR9igNqdJvy8smmedAAgn4tPiqseFloKkrVfbXCVd+E7A==", "dev": true, "requires": { - "is-subset": "0.1.1", - "modify-values": "1.0.1" + "is-subset": "^0.1.1", + "modify-values": "^1.0.0" } }, "conventional-commits-parser": { @@ -2155,13 +3224,13 @@ "integrity": "sha512-P6U5UOvDeidUJ8ebHVDIoXzI7gMlQ1OF/id6oUvp8cnZvOXMt1n8nYl74Ey9YMn0uVQtxmCtjPQawpsssBWtGg==", "dev": true, "requires": { - "JSONStream": "1.3.5", - "is-text-path": "1.0.1", - "lodash": "4.17.11", - "meow": "4.0.1", - "split2": "2.2.0", - "through2": "2.0.5", - "trim-off-newlines": "1.0.1" + "JSONStream": "^1.0.4", + "is-text-path": "^1.0.0", + "lodash": "^4.2.1", + "meow": "^4.0.0", + "split2": "^2.0.0", + "through2": "^2.0.0", + "trim-off-newlines": "^1.0.0" } }, "convert-source-map": { @@ -2169,7 +3238,7 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.1" } }, "cookie": { @@ -2183,9 +3252,9 @@ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "core-js": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.1.tgz", - "integrity": "sha512-L72mmmEayPJBejKIWe2pYtGis5r0tQ5NaJekdhyXgeMQTpJoBsH0NL4ElY2LfSoV15xeQWKQ+XTTOZdyero5Xg==" + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.3.tgz", + "integrity": "sha512-l00tmFFZOBHtYhN4Cz7k32VM7vTn3rE2ANjQDxdEN6zmXZ/xq1jQuutnmHvMG1ZJ7xd72+TA5YpUK8wz3rWsfQ==" }, "core-util-is": { "version": "1.0.2", @@ -2198,21 +3267,46 @@ "integrity": "sha512-PcLqxTKiDmNT6pSpy4N6KtuPwb53W+2tzNvwOZw0WH9N6O0vLIBq0x8aj8Oj75ere4YcGi48bDFCL+3fRJdlNA==", "dev": true, "requires": { - "import-fresh": "2.0.0", - "is-directory": "0.3.1", - "js-yaml": "3.12.0", - "parse-json": "4.0.0" + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.9.0", + "parse-json": "^4.0.0" }, "dependencies": { + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true } } }, @@ -2222,17 +3316,17 @@ "integrity": "sha512-Tv0LKe/MkBOilH2v7WBiTBdudg2ChfGbdXafc/s330djpF3zKOmuehTeRwjXWc7pzfj9FrDUTA7tEx6Div8NFw==", "dev": true, "requires": { - "growl": "1.10.5", - "js-yaml": "3.12.0", - "lcov-parse": "0.0.10", - "log-driver": "1.2.7", - "minimist": "1.2.0", - "request": "2.88.0" + "growl": "~> 1.10.0", + "js-yaml": "^3.11.0", + "lcov-parse": "^0.0.10", + "log-driver": "^1.2.7", + "minimist": "^1.2.0", + "request": "^2.85.0" }, "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true } @@ -2243,11 +3337,11 @@ "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-5.0.0.tgz", "integrity": "sha1-vHAP0wyjLSTUbH+wK5kuQ1/FqXg=", "requires": { - "graceful-fs": "4.1.15", - "make-dir": "1.3.0", - "nested-error-stacks": "2.1.0", - "pify": "3.0.0", - "safe-buffer": "5.1.2" + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "nested-error-stacks": "^2.0.0", + "pify": "^3.0.0", + "safe-buffer": "^5.0.1" }, "dependencies": { "pify": { @@ -2259,27 +3353,27 @@ }, "create-hash": { "version": "1.2.0", - "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.1", - "md5.js": "1.3.5", - "ripemd160": "2.0.2", - "sha.js": "2.4.11" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, "create-hmac": { "version": "1.1.7", - "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "inherits": "2.0.1", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "cross-spawn": { @@ -2287,9 +3381,9 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "lru-cache": "4.1.5", - "shebang-command": "1.2.0", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "currently-unhandled": { @@ -2298,7 +3392,7 @@ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { - "array-find-index": "1.0.2" + "array-find-index": "^1.0.1" } }, "dashdash": { @@ -2307,7 +3401,7 @@ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "dateformat": { @@ -2326,7 +3420,7 @@ }, "debug-log": { "version": "1.0.1", - "resolved": "http://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=" }, "decamelize": { @@ -2340,8 +3434,8 @@ "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", "dev": true, "requires": { - "decamelize": "1.2.0", - "map-obj": "1.0.1" + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" }, "dependencies": { "map-obj": { @@ -2363,7 +3457,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "4.0.8" + "type-detect": "^4.0.0" } }, "deep-equal": { @@ -2393,7 +3487,7 @@ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "requires": { - "object-keys": "1.0.12" + "object-keys": "^1.0.12" } }, "define-property": { @@ -2401,8 +3495,8 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -2410,7 +3504,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -2418,7 +3512,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -2426,9 +3520,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -2453,12 +3547,12 @@ "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.1.tgz", "integrity": "sha512-2kjwuGGonL7gWE1XU4Fv79+vVzpoQCl0V+boMwWtOQJV2AGDabCwez++nB1Nli/8BabAfZQ/UuHPlp6AymKdWw==", "requires": { - "find-root": "1.1.0", - "glob": "7.1.3", - "ignore": "3.3.10", - "pkg-config": "1.1.1", - "run-parallel": "1.1.9", - "uniq": "1.0.1" + "find-root": "^1.0.0", + "glob": "^7.0.5", + "ignore": "^3.0.9", + "pkg-config": "^1.1.0", + "run-parallel": "^1.1.2", + "uniq": "^1.0.1" } }, "delayed-stream": { @@ -2478,7 +3572,7 @@ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "diff": { @@ -2493,13 +3587,12 @@ "integrity": "sha1-082BIh4+pAdCz83lVtTpnpjdxxs=" }, "dir-glob": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", + "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", "dev": true, "requires": { - "arrify": "1.0.1", - "path-type": "3.0.0" + "path-type": "^3.0.0" }, "dependencies": { "path-type": { @@ -2508,7 +3601,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "pify": { @@ -2524,7 +3617,7 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "requires": { - "esutils": "2.0.2" + "esutils": "^2.0.2" } }, "dot-prop": { @@ -2533,7 +3626,7 @@ "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=", "dev": true, "requires": { - "is-obj": "1.0.1" + "is-obj": "^1.0.0" } }, "drbg.js": { @@ -2541,9 +3634,9 @@ "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", "requires": { - "browserify-aes": "1.2.0", - "create-hash": "1.2.0", - "create-hmac": "1.1.7" + "browserify-aes": "^1.0.6", + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4" } }, "duplexer2": { @@ -2552,7 +3645,7 @@ "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", "dev": true, "requires": { - "readable-stream": "2.3.6" + "readable-stream": "^2.0.2" } }, "ecc-jsbn": { @@ -2561,8 +3654,8 @@ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, "requires": { - "jsbn": "0.1.1", - "safer-buffer": "2.1.2" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, "ecurve": { @@ -2570,36 +3663,35 @@ "resolved": "https://registry.npmjs.org/ecurve/-/ecurve-1.0.6.tgz", "integrity": "sha512-/BzEjNfiSuB7jIWKcS/z8FK9jNjmEWvUV2YZ4RLSmcDtP7Lq0m6FvDuSnJpBlDpGRpfRQeTLGLBI8H+kEv0r+w==", "requires": { - "bigi": "1.4.2", - "safe-buffer": "5.1.2" + "bigi": "^1.1.0", + "safe-buffer": "^5.0.1" } }, "electron-to-chromium": { - "version": "1.3.96", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.96.tgz", - "integrity": "sha512-ZUXBUyGLeoJxp4Nt6G/GjBRLnyz8IKQGexZ2ndWaoegThgMGFO1tdDYID5gBV32/1S83osjJHyfzvanE/8HY4Q==" + "version": "1.3.109", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.109.tgz", + "integrity": "sha512-1qhgVZD9KIULMyeBkbjU/dWmm30zpPUfdWZfVO3nPhbtqMHJqHr4Ua5wBcWtAymVFrUCuAJxjMF1OhG+bR21Ow==" }, "elliptic": { "version": "6.4.1", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.7", - "hmac-drbg": "1.0.1", - "inherits": "2.0.1", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" } }, "end-of-stream": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, "requires": { - "once": "1.4.0" + "once": "^1.4.0" } }, "engine.io": { @@ -2607,29 +3699,29 @@ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.3.2.tgz", "integrity": "sha512-AsaA9KG7cWPXWHp5FvHdDWY3AMWeZ8x+2pUVLcn71qE5AtAzgGbxuclOytygskw8XGmiQafTmnI9Bix3uihu2w==", "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.4", "base64id": "1.0.0", "cookie": "0.3.1", - "debug": "3.1.0", - "engine.io-parser": "2.1.3", - "ws": "6.1.2" + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "ws": "~6.1.0" } }, "engine.io-client": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.3.1.tgz", - "integrity": "sha512-q66JBFuQcy7CSlfAz9L3jH+v7DTT3i6ZEadYcVj2pOs8/0uJHLxKX3WBkGTvULJMdz0tUCyJag0aKT/dpXL9BQ==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.3.2.tgz", + "integrity": "sha512-y0CPINnhMvPuwtqXfsGuWE8BB66+B6wTtCofQDRecMQPYX3MYUZXFNKDhdrSe3EVjgOu4V3rxdeqN/Tr91IgbQ==", "requires": { "component-emitter": "1.2.1", "component-inherit": "0.0.3", - "debug": "3.1.0", - "engine.io-parser": "2.1.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", "has-cors": "1.1.0", "indexof": "0.0.1", "parseqs": "0.0.5", "parseuri": "0.0.5", - "ws": "6.1.2", - "xmlhttprequest-ssl": "1.5.5", + "ws": "~6.1.0", + "xmlhttprequest-ssl": "~1.5.4", "yeast": "0.1.2" } }, @@ -2639,59 +3731,20 @@ "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", "requires": { "after": "0.8.2", - "arraybuffer.slice": "0.0.7", + "arraybuffer.slice": "~0.0.7", "base64-arraybuffer": "0.1.5", "blob": "0.0.5", - "has-binary2": "1.0.3" + "has-binary2": "~1.0.2" } - }, - "env-ci": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-3.1.3.tgz", - "integrity": "sha512-4NudFu3oUCNprsGkt/LmvqAwJlzX9QT8289AavXiDH1pBJuEd4n0ty98yUOWN3uFtjOhOGrmt1/FDKFxCewejw==", - "dev": true, - "requires": { - "execa": "1.0.0", - "java-properties": "0.2.10" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.6.0", - "shebang-command": "1.2.0", - "which": "1.3.1" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "6.0.5", - "get-stream": "4.1.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" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "3.0.0" - } - } + }, + "env-ci": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-3.2.0.tgz", + "integrity": "sha512-TFjNiDlXrL8/pfHswdvJGEZzJcq3aBPb8Eka83hlGLwuNw9F9BC9S9ETlkfkItLRT9k5JgpGgeP+rL6/3cEbcw==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "java-properties": "^0.2.9" } }, "error-ex": { @@ -2699,19 +3752,20 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "es-abstract": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", - "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", + "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", "requires": { - "es-to-primitive": "1.2.0", - "function-bind": "1.1.1", - "has": "1.0.3", - "is-callable": "1.1.4", - "is-regex": "1.0.4" + "es-to-primitive": "^1.2.0", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-keys": "^1.0.12" } }, "es-to-primitive": { @@ -2719,9 +3773,9 @@ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", "requires": { - "is-callable": "1.1.4", - "is-date-object": "1.0.1", - "is-symbol": "1.0.2" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" } }, "es6-promise": { @@ -2732,11 +3786,11 @@ }, "es6-promisify": { "version": "5.0.0", - "resolved": "http://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "dev": true, "requires": { - "es6-promise": "4.2.5" + "es6-promise": "^4.0.3" } }, "escape-string-regexp": { @@ -2745,54 +3799,54 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "eslint": { - "version": "5.11.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.11.1.tgz", - "integrity": "sha512-gOKhM8JwlFOc2acbOrkYR05NW8M6DCMSvfcJiBB5NDxRE1gv8kbvxKaC9u69e6ZGEMWXcswA/7eKR229cEIpvg==", + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.12.1.tgz", + "integrity": "sha512-54NV+JkTpTu0d8+UYSA8mMKAG4XAsaOrozA9rCW7tgneg1mevcL7wIotPC+fZ0SkWwdhNqoXoxnQCTBp7UvTsg==", "dev": true, "requires": { - "@babel/code-frame": "7.0.0", - "ajv": "6.6.2", - "chalk": "2.4.1", - "cross-spawn": "6.0.5", - "debug": "4.1.1", - "doctrine": "2.1.0", - "eslint-scope": "4.0.0", - "eslint-utils": "1.3.1", - "eslint-visitor-keys": "1.0.0", - "espree": "5.0.0", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.3", - "globals": "11.9.0", - "ignore": "4.0.6", - "imurmurhash": "0.1.4", - "inquirer": "6.2.1", - "js-yaml": "3.12.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.3", - "regexpp": "2.0.1", - "require-uncached": "1.0.3", - "semver": "5.6.0", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", - "table": "5.1.1", - "text-table": "0.2.0" + "@babel/code-frame": "^7.0.0", + "ajv": "^6.5.3", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^2.1.0", + "eslint-scope": "^4.0.0", + "eslint-utils": "^1.3.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^5.0.0", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.7.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^6.1.0", + "js-yaml": "^3.12.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.5", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^5.5.1", + "strip-ansi": "^4.0.0", + "strip-json-comments": "^2.0.1", + "table": "^5.0.2", + "text-table": "^0.2.0" }, "dependencies": { "acorn": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.4.tgz", - "integrity": "sha512-VY4i5EKSKkofY2I+6QLTbTTN/UvEQPCo6eiwzzSaSWfpaDhOmStMCMod6wmuPciNq+XS0faCglFu2lHZpdHUtg==", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.6.tgz", + "integrity": "sha512-5M3G/A4uBSMIlfJ+h9W125vJvPFH/zirISsW5qfxF5YzEvXJCtolLoQvM5yZft0DvMcUrPGKPOlgEu55I6iUtA==", "dev": true }, "acorn-jsx": { @@ -2802,15 +3856,15 @@ "dev": true }, "ajv": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz", - "integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.7.0.tgz", + "integrity": "sha512-RZXPviBTtfmtka9n9sy1N5M5b82CbxWIR6HIis4s3WQTXDJamc/0gpCWNGz6EWdWp4DOfjzJfhz/AS9zVPjjWg==", "dev": true, "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, "ansi-regex": { @@ -2825,7 +3879,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.3" + "color-convert": "^1.9.0" } }, "chardet": { @@ -2840,11 +3894,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.6.0", - "shebang-command": "1.2.0", - "which": "1.3.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "debug": { @@ -2853,7 +3907,7 @@ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "eslint-scope": { @@ -2862,8 +3916,8 @@ "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", "dev": true, "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "espree": { @@ -2872,9 +3926,9 @@ "integrity": "sha512-1MpUfwsdS9MMoN7ZXqAr9e9UKdVHDcvrJpyx7mm1WuQlx/ygErEQBzgi5Nh5qBHIoYweprhtMkTCb9GhcAIcsA==", "dev": true, "requires": { - "acorn": "6.0.4", - "acorn-jsx": "5.0.1", - "eslint-visitor-keys": "1.0.0" + "acorn": "^6.0.2", + "acorn-jsx": "^5.0.0", + "eslint-visitor-keys": "^1.0.0" } }, "external-editor": { @@ -2883,9 +3937,9 @@ "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", "dev": true, "requires": { - "chardet": "0.7.0", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" } }, "fast-deep-equal": { @@ -2895,9 +3949,9 @@ "dev": true }, "globals": { - "version": "11.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz", - "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==", + "version": "11.10.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.10.0.tgz", + "integrity": "sha512-0GZF1RiPKU97IHUO5TORo9w1PwrH/NBPl+fS7oMLdaTRiYmYbwK4NWoZWrAdd0/abG9R2BU+OiwyQpTpE6pdfQ==", "dev": true }, "ignore": { @@ -2907,24 +3961,24 @@ "dev": true }, "inquirer": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.1.tgz", - "integrity": "sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg==", - "dev": true, - "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "3.0.3", - "figures": "2.0.0", - "lodash": "4.17.11", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.2.tgz", + "integrity": "sha512-Z2rREiXA6cHRR9KBOarR3WuLlFzlIfAEIiB45ll5SSadMg7WqOh1MKEjjndfuH5ewXdixWCxqnVfGOQzPeiztA==", + "dev": true, + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.11", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rxjs": "6.3.3", - "string-width": "2.1.1", - "strip-ansi": "5.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.0.0", + "through": "^2.3.6" }, "dependencies": { "strip-ansi": { @@ -2933,7 +3987,7 @@ "integrity": "sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==", "dev": true, "requires": { - "ansi-regex": "4.0.0" + "ansi-regex": "^4.0.0" } } } @@ -2951,14 +4005,14 @@ "dev": true }, "slice-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.0.0.tgz", - "integrity": "sha512-4j2WTWjp3GsZ+AOagyzVbzp4vWGtZ0hEZ/gDY/uTvm6MTxUfTUIsnMIFb1bn8o0RuXiqUw15H1bue8f22Vw2oQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "astral-regex": "1.0.0", - "is-fullwidth-code-point": "2.0.0" + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" } }, "strip-ansi": { @@ -2967,7 +4021,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" }, "dependencies": { "ansi-regex": { @@ -2979,36 +4033,36 @@ } }, "table": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/table/-/table-5.1.1.tgz", - "integrity": "sha512-NUjapYb/qd4PeFW03HnAuOJ7OMcBkJlqeClWxeNlQ0lXGSb52oZXGzkO0/I0ARegQ2eUT1g2VDJH0eUxDRcHmw==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/table/-/table-5.2.2.tgz", + "integrity": "sha512-f8mJmuu9beQEDkKHLzOv4VxVYlU68NpdzjbGPl69i4Hx0sTopJuNxuzJd17iV2h24dAfa93u794OnDA5jqXvfQ==", "dev": true, "requires": { - "ajv": "6.6.2", - "lodash": "4.17.11", - "slice-ansi": "2.0.0", - "string-width": "2.1.1" + "ajv": "^6.6.1", + "lodash": "^4.17.11", + "slice-ansi": "^2.0.0", + "string-width": "^2.1.1" } } } }, "eslint-config-prettier": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-3.3.0.tgz", - "integrity": "sha512-Bc3bh5bAcKNvs3HOpSi6EfGA2IIp7EzWcg2tS4vP7stnXu/J1opihHDM7jI9JCIckyIDTgZLSWn7J3HY0j2JfA==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-3.6.0.tgz", + "integrity": "sha512-ixJ4U3uTLXwJts4rmSVW/lMXjlGwCijhBJHk8iVqKKSifeI0qgFEfWl8L63isfc8Od7EiBALF6BX3jKLluf/jQ==", "dev": true, "requires": { - "get-stdin": "6.0.0" + "get-stdin": "^6.0.0" } }, "eslint-config-standard": { "version": "11.0.0", - "resolved": "http://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-11.0.0.tgz", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-11.0.0.tgz", "integrity": "sha512-oDdENzpViEe5fwuRCWla7AXQd++/oyIp8zP+iP9jiUPG6NBj3SHgdgtl/kTn00AjeN+1HNvavTKmYbMo+xMOlw==" }, "eslint-config-standard-jsx": { "version": "5.0.0", - "resolved": "http://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-5.0.0.tgz", "integrity": "sha512-rLToPAEqLMPBfWnYTu6xRhm2OWziS2n40QFqJ8jAM8NSVzeVKTa3nclhsU4DpPJQRY60F34Oo1wi/71PN/eITg==" }, "eslint-import-resolver-node": { @@ -3016,8 +4070,8 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", "requires": { - "debug": "2.6.9", - "resolve": "1.9.0" + "debug": "^2.6.9", + "resolve": "^1.5.0" }, "dependencies": { "debug": { @@ -3031,12 +4085,12 @@ } }, "eslint-module-utils": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", - "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.3.0.tgz", + "integrity": "sha512-lmDJgeOOjk8hObTysjqH7wyMi+nsHwwvfBykwfhjR1LNdd7C2uFJBvx4OpWYpXOw4df1yE1cDEVd1yLHitk34w==", "requires": { - "debug": "2.6.9", - "pkg-dir": "1.0.0" + "debug": "^2.6.8", + "pkg-dir": "^2.0.0" }, "dependencies": { "debug": { @@ -3055,25 +4109,25 @@ "integrity": "sha512-XfFmgFdIUDgvaRAlaXUkxrRg5JSADoRC8IkKLc/cISeR3yHVMefFHQZpcyXXEUUPHfy5DwviBcrfqlyqEwlQVw==", "dev": true, "requires": { - "eslint-utils": "1.3.1", - "regexpp": "2.0.1" + "eslint-utils": "^1.3.0", + "regexpp": "^2.0.1" } }, "eslint-plugin-import": { "version": "2.9.0", - "resolved": "http://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz", "integrity": "sha1-JgAu+/ylmJtyiKwEdQi9JPIXsWk=", "requires": { - "builtin-modules": "1.1.1", - "contains-path": "0.1.0", - "debug": "2.6.9", + "builtin-modules": "^1.1.1", + "contains-path": "^0.1.0", + "debug": "^2.6.8", "doctrine": "1.5.0", - "eslint-import-resolver-node": "0.3.2", - "eslint-module-utils": "2.2.0", - "has": "1.0.3", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "read-pkg-up": "2.0.0" + "eslint-import-resolver-node": "^0.3.1", + "eslint-module-utils": "^2.1.1", + "has": "^1.0.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.3", + "read-pkg-up": "^2.0.0" }, "dependencies": { "debug": { @@ -3086,11 +4140,11 @@ }, "doctrine": { "version": "1.5.0", - "resolved": "http://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" + "esutils": "^2.0.2", + "isarray": "^1.0.0" } } } @@ -3101,12 +4155,12 @@ "integrity": "sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw==", "dev": true, "requires": { - "eslint-plugin-es": "1.4.0", - "eslint-utils": "1.3.1", - "ignore": "4.0.6", - "minimatch": "3.0.4", - "resolve": "1.9.0", - "semver": "5.6.0" + "eslint-plugin-es": "^1.3.1", + "eslint-utils": "^1.3.1", + "ignore": "^4.0.2", + "minimatch": "^3.0.4", + "resolve": "^1.8.1", + "semver": "^5.5.0" }, "dependencies": { "ignore": { @@ -3123,24 +4177,24 @@ "integrity": "sha512-CStQYJgALoQBw3FsBzH0VOVDRnJ/ZimUlpLm226U8qgqYJfPOY/CPK6wyRInMxh73HSKg5wyRwdS4BVYYHwokA==", "dev": true, "requires": { - "fast-diff": "1.2.0", - "jest-docblock": "21.2.0" + "fast-diff": "^1.1.1", + "jest-docblock": "^21.0.0" } }, "eslint-plugin-promise": { "version": "3.7.0", - "resolved": "http://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.7.0.tgz", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.7.0.tgz", "integrity": "sha512-2WO+ZFh7vxUKRfR0cOIMrWgYKdR6S1AlOezw6pC52B6oYpd5WFghN+QHxvrRdZMtbo8h3dfUZ2o1rWb0UPbKtg==" }, "eslint-plugin-react": { "version": "7.7.0", - "resolved": "http://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz", "integrity": "sha512-KC7Snr4YsWZD5flu6A5c0AcIZidzW3Exbqp7OT67OaD2AppJtlBr/GuPrW/vaQM/yfZotEvKAdrxrO+v8vwYJA==", "requires": { - "doctrine": "2.1.0", - "has": "1.0.3", - "jsx-ast-utils": "2.0.1", - "prop-types": "15.6.2" + "doctrine": "^2.0.2", + "has": "^1.0.1", + "jsx-ast-utils": "^2.0.1", + "prop-types": "^15.6.0" } }, "eslint-plugin-standard": { @@ -3153,8 +4207,8 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint-utils": { @@ -3170,11 +4224,11 @@ }, "espree": { "version": "3.5.4", - "resolved": "http://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "requires": { - "acorn": "5.7.3", - "acorn-jsx": "3.0.1" + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" } }, "esprima": { @@ -3187,7 +4241,7 @@ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "esrecurse": { @@ -3195,7 +4249,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.1.0" } }, "estraverse": { @@ -3213,22 +4267,36 @@ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "requires": { - "md5.js": "1.3.5", - "safe-buffer": "5.1.2" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "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" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.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" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + } } }, "expand-brackets": { @@ -3237,16 +4305,16 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "optional": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { "version": "1.8.2", - "resolved": "http://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "optional": true, "requires": { - "fill-range": "2.2.4" + "fill-range": "^2.1.0" } }, "extend": { @@ -3260,8 +4328,8 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -3269,19 +4337,19 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } }, "external-editor": { "version": "2.2.0", - "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" } }, "extglob": { @@ -3290,7 +4358,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "optional": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "extsprintf": { @@ -3301,7 +4369,7 @@ }, "fast-deep-equal": { "version": "1.1.0", - "resolved": "http://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" }, "fast-diff": { @@ -3311,17 +4379,17 @@ "dev": true }, "fast-glob": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.4.tgz", - "integrity": "sha512-FjK2nCGI/McyzgNtTESqaWP3trPvHyRyoyY70hxjc3oKPNmDe8taohLZpoVKoUjW85tbU5txaYUZCNtVzygl1g==", + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.6.tgz", + "integrity": "sha512-0BvMaZc1k9F+MeWWMe8pL6YltFzZYcJsYU7D4JyDA6PAczaXvxqQQ/z+mDF7/4Mw01DeUc+i3CTKajnkANkV4w==", "dev": true, "requires": { - "@mrmlnc/readdir-enhanced": "2.2.1", - "@nodelib/fs.stat": "1.1.3", - "glob-parent": "3.1.0", - "is-glob": "4.0.0", - "merge2": "1.2.3", - "micromatch": "3.1.10" + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" }, "dependencies": { "arr-diff": { @@ -3342,16 +4410,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -3360,7 +4428,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -3380,13 +4448,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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -3395,7 +4463,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -3404,16 +4472,16 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "http://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -3422,18 +4490,18 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "http://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -3442,7 +4510,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -3453,9 +4521,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": { @@ -3472,14 +4540,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { @@ -3488,7 +4556,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -3497,7 +4565,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -3508,10 +4576,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" }, "dependencies": { "extend-shallow": { @@ -3520,7 +4588,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -3531,8 +4599,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { @@ -3541,7 +4609,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -3552,7 +4620,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -3561,7 +4629,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -3570,9 +4638,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-extglob": { @@ -3587,7 +4655,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } }, "is-number": { @@ -3596,7 +4664,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -3605,7 +4673,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -3628,19 +4696,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } @@ -3665,7 +4733,7 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { @@ -3673,10 +4741,15 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "requires": { - "flat-cache": "1.3.4", - "object-assign": "4.1.1" + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" } }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, "filename-regex": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", @@ -3689,11 +4762,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "optional": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.1.1", - "repeat-element": "1.1.3", - "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" } }, "find-root": { @@ -3702,12 +4775,11 @@ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" }, "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "locate-path": "^2.0.0" } }, "find-versions": { @@ -3716,8 +4788,8 @@ "integrity": "sha512-IUvtItVFNmTtKoB0PRfbkR0zR9XMG5rWNO3qI1S8L0zdv+v2gqzM0pAunloxqbqAfT8w7bg8n/5gHzTXte8H5A==", "dev": true, "requires": { - "array-uniq": "2.0.0", - "semver-regex": "2.0.0" + "array-uniq": "^2.0.0", + "semver-regex": "^2.0.0" }, "dependencies": { "array-uniq": { @@ -3733,18 +4805,18 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", "requires": { - "circular-json": "0.3.3", - "graceful-fs": "4.1.15", - "rimraf": "2.6.2", - "write": "0.2.1" + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" } }, "follow-redirects": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.6.0.tgz", - "integrity": "sha512-4Oh4eI3S9OueVV41AgJ1oLjpaJUhbJ7JDGOMhe0AFqoSejl5Q2nn3eGglAzRUKVKZE8jG5MNn66TjCJMAnpsWA==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.6.1.tgz", + "integrity": "sha512-t2JCjbzxQpWvbhts3l6SH1DKzSrx8a+SsaVf4h6bG4kOXUuPYS/kg2Lr4gQSb7eemaHqJkOThF1BGyjlUkO1GQ==", "requires": { - "debug": "3.1.0" + "debug": "=3.1.0" } }, "for-each": { @@ -3752,7 +4824,7 @@ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "requires": { - "is-callable": "1.1.4" + "is-callable": "^1.1.3" } }, "for-in": { @@ -3766,7 +4838,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "optional": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "forever-agent": { @@ -3781,9 +4853,9 @@ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.7", - "mime-types": "2.1.21" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" } }, "fragment-cache": { @@ -3791,7 +4863,7 @@ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fresh": { @@ -3806,8 +4878,8 @@ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "requires": { - "inherits": "2.0.1", - "readable-stream": "2.3.6" + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" } }, "fs-extra": { @@ -3816,9 +4888,9 @@ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "jsonfile": "4.0.0", - "universalify": "0.1.2" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, "fs-readdir-recursive": { @@ -3832,13 +4904,13 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", - "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.7.tgz", + "integrity": "sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw==", "optional": true, "requires": { - "nan": "2.12.1", - "node-pre-gyp": "0.10.0" + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" }, "dependencies": { "abbrev": { @@ -3848,7 +4920,8 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "bundled": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -3856,42 +4929,47 @@ "optional": true }, "are-we-there-yet": { - "version": "1.1.4", + "version": "1.1.5", "bundled": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "balanced-match": { "version": "1.0.0", - "bundled": true + "bundled": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, + "optional": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "chownr": { - "version": "1.0.1", + "version": "1.1.1", "bundled": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "concat-map": { "version": "0.0.1", - "bundled": true + "bundled": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -3907,7 +4985,7 @@ } }, "deep-extend": { - "version": "0.5.1", + "version": "0.6.0", "bundled": true, "optional": true }, @@ -3926,7 +5004,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "fs.realpath": { @@ -3939,27 +5017,27 @@ "bundled": true, "optional": 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" } }, "glob": { - "version": "7.1.2", + "version": "7.1.3", "bundled": true, "optional": 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" } }, "has-unicode": { @@ -3968,11 +5046,11 @@ "optional": true }, "iconv-lite": { - "version": "0.4.21", + "version": "0.4.24", "bundled": true, "optional": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "ignore-walk": { @@ -3980,7 +5058,7 @@ "bundled": true, "optional": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "inflight": { @@ -3988,13 +5066,14 @@ "bundled": true, "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { "version": "2.0.3", - "bundled": true + "bundled": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -4004,8 +5083,9 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, + "optional": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "isarray": { @@ -4016,33 +5096,37 @@ "minimatch": { "version": "3.0.4", "bundled": true, + "optional": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true + "bundled": true, + "optional": true }, "minipass": { - "version": "2.2.4", + "version": "2.3.5", "bundled": true, + "optional": true, "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" } }, "minizlib": { - "version": "1.1.0", + "version": "1.2.1", "bundled": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "mkdirp": { "version": "0.5.1", "bundled": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -4053,30 +5137,30 @@ "optional": true }, "needle": { - "version": "2.2.0", + "version": "2.2.4", "bundled": true, "optional": true, "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, "node-pre-gyp": { - "version": "0.10.0", + "version": "0.10.3", "bundled": true, "optional": true, "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.7", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" } }, "nopt": { @@ -4084,22 +5168,22 @@ "bundled": true, "optional": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npm-bundled": { - "version": "1.0.3", + "version": "1.0.5", "bundled": true, "optional": true }, "npm-packlist": { - "version": "1.1.10", + "version": "1.2.0", "bundled": true, "optional": true, "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, "npmlog": { @@ -4107,15 +5191,16 @@ "bundled": 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" + "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": { "version": "1.0.1", - "bundled": true + "bundled": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -4125,8 +5210,9 @@ "once": { "version": "1.4.0", "bundled": true, + "optional": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -4144,8 +5230,8 @@ "bundled": 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": { @@ -4159,14 +5245,14 @@ "optional": true }, "rc": { - "version": "1.2.7", + "version": "1.2.8", "bundled": true, "optional": true, "requires": { - "deep-extend": "0.5.1", - "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": { "minimist": { @@ -4181,26 +5267,27 @@ "bundled": true, "optional": true, "requires": { - "core-util-is": "1.0.2", - "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.2" + "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.2", + "version": "2.6.3", "bundled": true, "optional": true, "requires": { - "glob": "7.1.2" + "glob": "^7.1.3" } }, "safe-buffer": { - "version": "5.1.1", - "bundled": true + "version": "5.1.2", + "bundled": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -4213,7 +5300,7 @@ "optional": true }, "semver": { - "version": "5.5.0", + "version": "5.6.0", "bundled": true, "optional": true }, @@ -4230,10 +5317,11 @@ "string-width": { "version": "1.0.2", "bundled": true, + "optional": 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": { @@ -4241,14 +5329,15 @@ "bundled": true, "optional": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { "version": "3.0.1", "bundled": true, + "optional": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -4257,17 +5346,17 @@ "optional": true }, "tar": { - "version": "4.4.1", + "version": "4.4.8", "bundled": true, "optional": true, "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" } }, "util-deprecate": { @@ -4276,20 +5365,22 @@ "optional": true }, "wide-align": { - "version": "1.1.2", + "version": "1.1.3", "bundled": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2 || 2" } }, "wrappy": { "version": "1.0.2", - "bundled": true + "bundled": true, + "optional": true }, "yallist": { - "version": "3.0.2", - "bundled": true + "version": "3.0.3", + "bundled": true, + "optional": true } } }, @@ -4320,9 +5411,12 @@ "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==" }, "get-stream": { - "version": "3.0.0", - "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } }, "get-value": { "version": "2.0.6", @@ -4335,7 +5429,7 @@ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "git-clone": { @@ -4349,21 +5443,21 @@ "integrity": "sha1-LmpMGxP8AAKCB7p5WnrDFme5/Uo=", "dev": true, "requires": { - "argv-formatter": "1.0.0", - "spawn-error-forwarder": "1.0.0", - "split2": "1.0.0", - "stream-combiner2": "1.1.1", - "through2": "2.0.5", - "traverse": "0.6.6" + "argv-formatter": "~1.0.0", + "spawn-error-forwarder": "~1.0.0", + "split2": "~1.0.0", + "stream-combiner2": "~1.1.1", + "through2": "~2.0.0", + "traverse": "~0.6.6" }, "dependencies": { "split2": { "version": "1.0.0", - "resolved": "http://registry.npmjs.org/split2/-/split2-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/split2/-/split2-1.0.0.tgz", "integrity": "sha1-UuLiIdiMdfmnP5BVbiY/+WdysxQ=", "dev": true, "requires": { - "through2": "2.0.5" + "through2": "~2.0.0" } } } @@ -4373,12 +5467,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.1", - "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": { @@ -4387,16 +5481,17 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "optional": true, "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "optional": true, "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "glob-to-regexp": { @@ -4411,24 +5506,36 @@ "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" }, "globby": { - "version": "8.0.1", - "resolved": "http://registry.npmjs.org/globby/-/globby-8.0.1.tgz", - "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-9.0.0.tgz", + "integrity": "sha512-q0qiO/p1w/yJ0hk8V9x1UXlgsXUxlGd0AHUOXZVXBO6aznDtpx7M8D1kBrCAItoPm+4l8r6ATXV1JpjY2SBQOw==", "dev": true, "requires": { - "array-union": "1.0.2", - "dir-glob": "2.0.0", - "fast-glob": "2.2.4", - "glob": "7.1.3", - "ignore": "3.3.10", - "pify": "3.0.0", - "slash": "1.0.0" + "array-union": "^1.0.2", + "dir-glob": "^2.2.1", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" }, "dependencies": { + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", "dev": true } } @@ -4450,10 +5557,10 @@ "integrity": "sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA==", "dev": true, "requires": { - "async": "2.6.1", - "optimist": "0.6.1", - "source-map": "0.6.1", - "uglify-js": "3.4.9" + "async": "^2.5.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" }, "dependencies": { "source-map": { @@ -4476,20 +5583,20 @@ "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "dev": true, "requires": { - "ajv": "6.6.2", - "har-schema": "2.0.0" + "ajv": "^6.5.5", + "har-schema": "^2.0.0" }, "dependencies": { "ajv": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz", - "integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.7.0.tgz", + "integrity": "sha512-RZXPviBTtfmtka9n9sy1N5M5b82CbxWIR6HIis4s3WQTXDJamc/0gpCWNGz6EWdWp4DOfjzJfhz/AS9zVPjjWg==", "dev": true, "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, "fast-deep-equal": { @@ -4511,7 +5618,7 @@ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.1.1" } }, "has-ansi": { @@ -4519,7 +5626,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-binary2": { @@ -4557,9 +5664,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "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" }, "dependencies": { "isobject": { @@ -4574,8 +5681,8 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { @@ -4583,7 +5690,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -4591,7 +5698,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -4601,7 +5708,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -4611,8 +5718,8 @@ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "hash.js": { @@ -4620,8 +5727,8 @@ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" }, "dependencies": { "inherits": { @@ -4642,9 +5749,9 @@ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { - "hash.js": "1.1.7", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, "home-or-tmp": { @@ -4652,8 +5759,8 @@ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" } }, "hook-std": { @@ -4673,7 +5780,7 @@ "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", "dev": true, "requires": { - "agent-base": "4.2.1", + "agent-base": "4", "debug": "3.1.0" } }, @@ -4683,9 +5790,9 @@ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.16.0" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "https-proxy-agent": { @@ -4694,8 +5801,8 @@ "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", "dev": true, "requires": { - "agent-base": "4.2.1", - "debug": "3.1.0" + "agent-base": "^4.1.0", + "debug": "^3.1.0" } }, "iconv-lite": { @@ -4703,7 +5810,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "ieee754": { @@ -4717,28 +5824,19 @@ "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" }, "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.0.0.tgz", + "integrity": "sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ==", "dev": true, "requires": { - "caller-path": "2.0.0", - "resolve-from": "3.0.0" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "dependencies": { - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "dev": true, - "requires": { - "caller-callsite": "2.0.0" - } - }, "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true } } @@ -4749,7 +5847,7 @@ "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", "dev": true, "requires": { - "resolve-from": "3.0.0" + "resolve-from": "^3.0.0" }, "dependencies": { "resolve-from": { @@ -4781,8 +5879,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -4800,20 +5898,20 @@ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.11", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" }, "dependencies": { "ansi-regex": { @@ -4826,7 +5924,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -4837,8 +5935,8 @@ "integrity": "sha512-i29KNyE5r0Y/UQzcQ0IbZO1MYJ53Jn0EcFRZPj5FzWKYH17kDFEOwuA+3jroymOI06SW1dEDnly9A1CAreC5dg==", "dev": true, "requires": { - "from2": "2.3.0", - "p-is-promise": "2.0.0" + "from2": "^2.1.1", + "p-is-promise": "^2.0.0" } }, "invariant": { @@ -4846,20 +5944,20 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } }, "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "http://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-arrayish": { @@ -4873,7 +5971,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "optional": true, "requires": { - "binary-extensions": "1.12.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -4883,10 +5981,10 @@ }, "is-builtin-module": { "version": "1.0.0", - "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "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-callable": { @@ -4896,10 +5994,10 @@ }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "http://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-date-object": { @@ -4912,9 +6010,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "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": { @@ -4942,7 +6040,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "optional": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -4953,14 +6051,15 @@ "is-extglob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "optional": true }, "is-finite": { "version": "1.0.2", "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-fullwidth-code-point": { @@ -4972,8 +6071,9 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "optional": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-number": { @@ -4982,12 +6082,12 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-obj": { "version": "1.0.1", - "resolved": "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", "dev": true }, @@ -5002,7 +6102,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -5034,7 +6134,7 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "requires": { - "has": "1.0.3" + "has": "^1.0.1" } }, "is-resolvable": { @@ -5058,7 +6158,7 @@ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", "requires": { - "has-symbols": "1.0.0" + "has-symbols": "^1.0.0" } }, "is-text-path": { @@ -5067,7 +6167,7 @@ "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", "dev": true, "requires": { - "text-extensions": "1.9.0" + "text-extensions": "^1.0.0" } }, "is-typedarray": { @@ -5112,11 +6212,30 @@ "integrity": "sha512-5wdT3EE8Kq38x/hJD8QZCJ9scGoOZ5QnzwXyClkviSWTS+xOCE6hJ0qco3H5n5jCsFqpbofZCcMWqlXJzF72VQ==", "dev": true, "requires": { - "lodash.capitalize": "4.2.1", - "lodash.escaperegexp": "4.1.2", - "lodash.isplainobject": "4.0.6", - "lodash.isstring": "4.0.1", - "lodash.uniqby": "4.7.0" + "lodash.capitalize": "^4.2.1", + "lodash.escaperegexp": "^4.1.2", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.uniqby": "^4.7.0" + } + }, + "istanbul-lib-coverage": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", + "integrity": "sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA==" + }, + "istanbul-lib-instrument": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.0.0.tgz", + "integrity": "sha512-eQY9vN9elYjdgN9Iv6NS/00bptm02EBBk70lRMaVjeA6QYocQgenVrSgC28TJurdnZa80AGO3ASdFN+w/njGiQ==", + "requires": { + "@babel/generator": "^7.0.0", + "@babel/parser": "^7.0.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "istanbul-lib-coverage": "^2.0.1", + "semver": "^5.5.0" } }, "java-properties": { @@ -5137,12 +6256,12 @@ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" }, "js-yaml": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.1.tgz", + "integrity": "sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA==", "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsbn": { @@ -5153,7 +6272,7 @@ }, "jsesc": { "version": "1.3.0", - "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" }, "json-parse-better-errors": { @@ -5185,7 +6304,7 @@ }, "json5": { "version": "0.5.1", - "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" }, "jsonfile": { @@ -5194,7 +6313,7 @@ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { - "graceful-fs": "4.1.15" + "graceful-fs": "^4.1.6" } }, "jsonparse": { @@ -5220,7 +6339,7 @@ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", "requires": { - "array-includes": "3.0.3" + "array-includes": "^3.0.3" } }, "just-extend": { @@ -5234,10 +6353,10 @@ "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", "requires": { - "bindings": "1.3.1", - "inherits": "2.0.3", - "nan": "2.12.1", - "safe-buffer": "5.1.2" + "bindings": "^1.2.1", + "inherits": "^2.0.3", + "nan": "^2.2.1", + "safe-buffer": "^5.1.0" }, "dependencies": { "inherits": { @@ -5252,15 +6371,15 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^2.0.0" } }, "lcov-parse": { @@ -5274,19 +6393,19 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "load-json-file": { "version": "2.0.0", - "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "requires": { - "graceful-fs": "4.1.15", - "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" } }, "locate-path": { @@ -5294,15 +6413,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "lodash": { @@ -5310,12 +6422,6 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" }, - "lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", - "dev": true - }, "lodash.capitalize": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz", @@ -5346,12 +6452,6 @@ "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", "dev": true }, - "lodash.pick": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", - "dev": true - }, "lodash.set": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", @@ -5392,7 +6492,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0 || ^4.0.0" } }, "loud-rejection": { @@ -5401,8 +6501,8 @@ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" } }, "lru-cache": { @@ -5410,8 +6510,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "macos-release": { @@ -5425,7 +6525,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" }, "dependencies": { "pify": { @@ -5439,9 +6539,8 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, "requires": { - "p-defer": "1.0.0" + "p-defer": "^1.0.0" } }, "map-cache": { @@ -5460,32 +6559,33 @@ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "marked": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.5.2.tgz", - "integrity": "sha512-fdZvBa7/vSQIZCi4uuwo2N3q+7jJURpMVCcbaX0S1Mg65WZ5ilXvC67MviJAsdjqqgD+CEq4RKo5AYGgINkVAA==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.6.0.tgz", + "integrity": "sha512-HduzIW2xApSXKXJSpCipSxKyvMbwRRa/TwMbepmlZziKdH8548WSoDP4SxzulEKjlo8BE39l+2fwJZuRKOln6g==", "dev": true }, "marked-terminal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-3.1.1.tgz", - "integrity": "sha512-7UBFww1rdx0w9HehLMCVYa8/AxXaiDigDfMsJcj82/wgLQG9cj+oiMAVlJpeWD57VFJY2OYY+bKeEVIjIlxi+w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-3.2.0.tgz", + "integrity": "sha512-Yr1yVS0BbDG55vx7be1D0mdv+jGs9AW563o/Tt/7FTsId2J0yqhrTeXAqq/Q0DyyXltIn6CSxzesQuFqXgafjQ==", "dev": true, "requires": { - "cardinal": "2.1.1", - "chalk": "2.4.1", - "cli-table": "0.3.1", - "lodash.assign": "4.2.0", - "node-emoji": "1.8.1" + "ansi-escapes": "^3.1.0", + "cardinal": "^2.1.1", + "chalk": "^2.4.1", + "cli-table": "^0.3.1", + "node-emoji": "^1.4.1", + "supports-hyperlinks": "^1.0.1" } }, "math-random": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", - "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", + "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", "optional": true }, "md5.js": { @@ -5493,23 +6593,25 @@ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, "media-typer": { "version": "0.3.0", - "resolved": "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true }, "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.1.0.tgz", + "integrity": "sha512-I5u6Q1x7wxO0kdOpYBB28xueHADYps5uty/zg936CiG8NTe5sJL8EjrCuLneuDW3PlMdZBGDIn8BirEVdovZvg==", "requires": { - "mimic-fn": "1.2.0" + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^1.0.0", + "p-is-promise": "^2.0.0" } }, "meow": { @@ -5518,41 +6620,32 @@ "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", "dev": true, "requires": { - "camelcase-keys": "4.2.0", - "decamelize-keys": "1.1.0", - "loud-rejection": "1.6.0", - "minimist": "1.2.0", - "minimist-options": "3.0.2", - "normalize-package-data": "2.4.0", - "read-pkg-up": "3.0.0", - "redent": "2.0.0", - "trim-newlines": "2.0.0" + "camelcase-keys": "^4.0.0", + "decamelize-keys": "^1.0.0", + "loud-rejection": "^1.0.0", + "minimist": "^1.1.3", + "minimist-options": "^3.0.1", + "normalize-package-data": "^2.3.4", + "read-pkg-up": "^3.0.0", + "redent": "^2.0.0", + "trim-newlines": "^2.0.0" }, "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "2.0.0" - } - }, "load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "minimist": { "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, @@ -5562,8 +6655,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "path-type": { @@ -5572,7 +6665,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "pify": { @@ -5587,9 +6680,9 @@ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "4.0.0", - "normalize-package-data": "2.4.0", - "path-type": "3.0.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" } }, "read-pkg-up": { @@ -5598,8 +6691,8 @@ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { - "find-up": "2.1.0", - "read-pkg": "3.0.0" + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" } } } @@ -5633,19 +6726,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "optional": 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" } }, "mime": { @@ -5664,7 +6757,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", "requires": { - "mime-db": "1.37.0" + "mime-db": "~1.37.0" } }, "mimic-fn": { @@ -5687,12 +6780,12 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, "minimist-options": { @@ -5701,8 +6794,8 @@ "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", "dev": true, "requires": { - "arrify": "1.0.1", - "is-plain-obj": "1.1.0" + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0" } }, "mixin-deep": { @@ -5710,8 +6803,8 @@ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -5719,14 +6812,14 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } }, "mkdirp": { "version": "0.5.1", - "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "requires": { "minimist": "0.0.8" @@ -5753,7 +6846,7 @@ "dependencies": { "commander": { "version": "2.15.1", - "resolved": "http://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", "dev": true }, @@ -5763,12 +6856,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.1", - "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" } }, "supports-color": { @@ -5777,7 +6870,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -5808,17 +6901,17 @@ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "arr-diff": { @@ -5868,8 +6961,7 @@ "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, "nise": { "version": "1.4.8", @@ -5877,11 +6969,11 @@ "integrity": "sha512-kGASVhuL4tlAV0tvA34yJYZIVihrUt/5bDwpp4tTluigxUr2bBlJeDXmivb6NuEdFkqvdv/Ybb9dm16PSKUhtw==", "dev": true, "requires": { - "@sinonjs/formatio": "3.1.0", - "just-extend": "4.0.2", - "lolex": "2.7.5", - "path-to-regexp": "1.7.0", - "text-encoding": "0.6.4" + "@sinonjs/formatio": "^3.1.0", + "just-extend": "^4.0.2", + "lolex": "^2.3.2", + "path-to-regexp": "^1.7.0", + "text-encoding": "^0.6.4" }, "dependencies": { "@sinonjs/formatio": { @@ -5890,7 +6982,7 @@ "integrity": "sha512-ZAR2bPHOl4Xg6eklUGpsdiIJ4+J1SNag1DHHrG/73Uz/nVwXqjgUtRPLoS+aVyieN9cSbc0E4LsU984tWcDyNg==", "dev": true, "requires": { - "@sinonjs/samsam": "3.0.2" + "@sinonjs/samsam": "^2 || ^3" } } } @@ -5905,7 +6997,7 @@ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", "requires": { - "lodash.toarray": "4.4.0" + "lodash.toarray": "^4.4.0" } }, "node-fetch": { @@ -5920,16 +7012,16 @@ "integrity": "sha512-wayzLNhEroH3lJj113pFKQ1cd1GKG1mXoZR1HcKp/o9a9lTGGgVY/hYeLajiIFr/z4tXFKOdfJickqqihBtn9g==", "dev": true, "requires": { - "accepts": "1.3.5", - "depd": "1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "mime": "1.6.0", - "net": "1.0.2", - "parseurl": "1.3.2", - "range-parser": "1.2.0", - "type-is": "1.6.16" + "accepts": "^1.3.5", + "depd": "^1.1.0", + "fresh": "^0.5.2", + "merge-descriptors": "^1.0.1", + "methods": "^1.1.2", + "mime": "^1.3.4", + "net": "^1.0.2", + "parseurl": "^1.3.1", + "range-parser": "^1.2.0", + "type-is": "^1.6.16" } }, "nopt": { @@ -5937,26 +7029,27 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } }, "normalize-package-data": { - "version": "2.4.0", - "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==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.2.tgz", + "integrity": "sha512-YcMnjqeoUckXTPKZSAsPjUPLxH85XotbpqK3w4RyCwdFQSU5FxxBys8buehkSfg0j9fKvV1hn7O0+8reEgkAiw==", "requires": { - "hosted-git-info": "2.7.1", - "is-builtin-module": "1.0.0", - "semver": "5.6.0", - "validate-npm-package-license": "3.0.4" + "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": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "optional": true, "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "normalize-url": { @@ -5971,691 +7064,622 @@ "integrity": "sha512-SPq8zG2Kto+Xrq55E97O14Jla13PmQT5kSnvwBj88BmJZ5Nvw++OmlWfhjkB67pcgP5UEXljEtnGFKZtOgt6MQ==", "dev": true, "requires": { - "JSONStream": "1.3.4", - "abbrev": "1.1.1", - "ansicolors": "0.3.2", - "ansistyles": "0.1.3", - "aproba": "1.2.0", - "archy": "1.0.0", - "bin-links": "1.1.2", - "bluebird": "3.5.3", - "byte-size": "4.0.3", - "cacache": "11.2.0", - "call-limit": "1.1.0", - "chownr": "1.0.1", - "ci-info": "1.6.0", - "cli-columns": "3.1.2", - "cli-table3": "0.5.0", - "cmd-shim": "2.0.2", - "columnify": "1.5.4", - "config-chain": "1.1.12", - "debuglog": "1.0.1", - "detect-indent": "5.0.0", - "detect-newline": "2.1.0", - "dezalgo": "1.0.3", - "editor": "1.0.0", - "figgy-pudding": "3.5.1", - "find-npm-prefix": "1.0.2", - "fs-vacuum": "1.2.10", - "fs-write-stream-atomic": "1.0.10", - "gentle-fs": "2.0.1", - "glob": "7.1.3", - "graceful-fs": "4.1.15", - "has-unicode": "2.0.1", - "hosted-git-info": "2.7.1", - "iferr": "1.0.2", - "imurmurhash": "0.1.4", - "inflight": "1.0.6", - "inherits": "2.0.3", - "ini": "1.3.5", - "init-package-json": "1.10.3", - "is-cidr": "2.0.6", - "json-parse-better-errors": "1.0.2", - "lazy-property": "1.0.0", - "libcipm": "2.0.2", - "libnpmhook": "4.0.1", - "libnpx": "10.2.0", - "lock-verify": "2.0.2", - "lockfile": "1.0.4", - "lodash._baseindexof": "3.1.0", - "lodash._baseuniq": "4.6.0", - "lodash._bindcallback": "3.0.1", - "lodash._cacheindexof": "3.0.2", - "lodash._createcache": "3.1.2", - "lodash._getnative": "3.9.1", - "lodash.clonedeep": "4.5.0", - "lodash.restparam": "3.6.1", - "lodash.union": "4.6.0", - "lodash.uniq": "4.5.0", - "lodash.without": "4.4.0", - "lru-cache": "4.1.3", - "meant": "1.0.1", - "mississippi": "3.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "node-gyp": "3.8.0", - "nopt": "4.0.1", - "normalize-package-data": "2.4.0", - "npm-audit-report": "1.3.1", - "npm-cache-filename": "1.0.2", - "npm-install-checks": "3.0.0", - "npm-lifecycle": "2.1.0", - "npm-package-arg": "6.1.0", - "npm-packlist": "1.1.12", - "npm-pick-manifest": "2.1.0", - "npm-profile": "3.0.2", - "npm-registry-client": "8.6.0", - "npm-registry-fetch": "1.1.0", - "npm-user-validate": "1.0.0", - "npmlog": "4.1.2", - "once": "1.4.0", - "opener": "1.5.1", - "osenv": "0.1.5", - "pacote": "8.1.6", - "path-is-inside": "1.0.2", - "promise-inflight": "1.0.1", - "qrcode-terminal": "0.12.0", - "query-string": "6.1.0", - "qw": "1.0.1", - "read": "1.0.7", - "read-cmd-shim": "1.0.1", - "read-installed": "4.0.3", - "read-package-json": "2.0.13", - "read-package-tree": "5.2.1", - "readable-stream": "2.3.6", - "readdir-scoped-modules": "1.0.2", - "request": "2.88.0", - "retry": "0.12.0", - "rimraf": "2.6.2", - "safe-buffer": "5.1.2", - "semver": "5.5.1", - "sha": "2.0.1", - "slide": "1.1.6", - "sorted-object": "2.0.1", - "sorted-union-stream": "2.1.3", - "ssri": "6.0.1", - "stringify-package": "1.0.0", - "tar": "4.4.8", - "text-table": "0.2.0", - "tiny-relative-date": "1.3.0", + "JSONStream": "^1.3.4", + "abbrev": "~1.1.1", + "ansicolors": "~0.3.2", + "ansistyles": "~0.1.3", + "aproba": "~1.2.0", + "archy": "~1.0.0", + "bin-links": "^1.1.2", + "bluebird": "^3.5.3", + "byte-size": "^4.0.3", + "cacache": "^11.2.0", + "call-limit": "~1.1.0", + "chownr": "~1.0.1", + "ci-info": "^1.6.0", + "cli-columns": "^3.1.2", + "cli-table3": "^0.5.0", + "cmd-shim": "~2.0.2", + "columnify": "~1.5.4", + "config-chain": "^1.1.12", + "debuglog": "*", + "detect-indent": "~5.0.0", + "detect-newline": "^2.1.0", + "dezalgo": "~1.0.3", + "editor": "~1.0.0", + "figgy-pudding": "^3.5.1", + "find-npm-prefix": "^1.0.2", + "fs-vacuum": "~1.2.10", + "fs-write-stream-atomic": "~1.0.10", + "gentle-fs": "^2.0.1", + "glob": "^7.1.3", + "graceful-fs": "^4.1.15", + "has-unicode": "~2.0.1", + "hosted-git-info": "^2.7.1", + "iferr": "^1.0.2", + "imurmurhash": "*", + "inflight": "~1.0.6", + "inherits": "~2.0.3", + "ini": "^1.3.5", + "init-package-json": "^1.10.3", + "is-cidr": "^2.0.6", + "json-parse-better-errors": "^1.0.2", + "lazy-property": "~1.0.0", + "libcipm": "^2.0.2", + "libnpmhook": "^4.0.1", + "libnpx": "^10.2.0", + "lock-verify": "^2.0.2", + "lockfile": "^1.0.4", + "lodash._baseindexof": "*", + "lodash._baseuniq": "~4.6.0", + "lodash._bindcallback": "*", + "lodash._cacheindexof": "*", + "lodash._createcache": "*", + "lodash._getnative": "*", + "lodash.clonedeep": "~4.5.0", + "lodash.restparam": "*", + "lodash.union": "~4.6.0", + "lodash.uniq": "~4.5.0", + "lodash.without": "~4.4.0", + "lru-cache": "^4.1.3", + "meant": "~1.0.1", + "mississippi": "^3.0.0", + "mkdirp": "~0.5.1", + "move-concurrently": "^1.0.1", + "node-gyp": "^3.8.0", + "nopt": "~4.0.1", + "normalize-package-data": "~2.4.0", + "npm-audit-report": "^1.3.1", + "npm-cache-filename": "~1.0.2", + "npm-install-checks": "~3.0.0", + "npm-lifecycle": "^2.1.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.12", + "npm-pick-manifest": "^2.1.0", + "npm-profile": "^3.0.2", + "npm-registry-client": "^8.6.0", + "npm-registry-fetch": "^1.1.0", + "npm-user-validate": "~1.0.0", + "npmlog": "~4.1.2", + "once": "~1.4.0", + "opener": "^1.5.1", + "osenv": "^0.1.5", + "pacote": "^8.1.6", + "path-is-inside": "~1.0.2", + "promise-inflight": "~1.0.1", + "qrcode-terminal": "^0.12.0", + "query-string": "^6.1.0", + "qw": "~1.0.1", + "read": "~1.0.7", + "read-cmd-shim": "~1.0.1", + "read-installed": "~4.0.3", + "read-package-json": "^2.0.13", + "read-package-tree": "^5.2.1", + "readable-stream": "^2.3.6", + "readdir-scoped-modules": "*", + "request": "^2.88.0", + "retry": "^0.12.0", + "rimraf": "~2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.5.1", + "sha": "~2.0.1", + "slide": "~1.1.6", + "sorted-object": "~2.0.1", + "sorted-union-stream": "~2.1.3", + "ssri": "^6.0.1", + "stringify-package": "^1.0.0", + "tar": "^4.4.8", + "text-table": "~0.2.0", + "tiny-relative-date": "^1.3.0", "uid-number": "0.0.6", - "umask": "1.1.0", - "unique-filename": "1.1.0", - "unpipe": "1.0.0", - "update-notifier": "2.5.0", - "uuid": "3.3.2", - "validate-npm-package-license": "3.0.4", - "validate-npm-package-name": "3.0.0", - "which": "1.3.1", - "worker-farm": "1.6.0", - "write-file-atomic": "2.3.0" + "umask": "~1.1.0", + "unique-filename": "~1.1.0", + "unpipe": "~1.0.0", + "update-notifier": "^2.5.0", + "uuid": "^3.3.2", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "~3.0.0", + "which": "^1.3.1", + "worker-farm": "^1.6.0", + "write-file-atomic": "^2.3.0" }, "dependencies": { "JSONStream": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.4.tgz", - "integrity": "sha512-Y7vfi3I5oMOYIr+WxV8NZxDSwcbNgzdKYsTNInmycOq9bUYwGg9ryu57Wg5NLmCjqdFPNUmpMBo3kSJN9tCbXg==", + "bundled": true, "dev": true, "requires": { - "jsonparse": "1.3.1", - "through": "2.3.8" + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" } }, "abbrev": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "bundled": true, "dev": true }, "agent-base": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz", - "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", + "bundled": true, "dev": true, "requires": { - "es6-promisify": "5.0.0" + "es6-promisify": "^5.0.0" } }, "agentkeepalive": { "version": "3.4.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.4.1.tgz", - "integrity": "sha512-MPIwsZU9PP9kOrZpyu2042kYA8Fdt/AedQYkYXucHgF9QoD9dXVp0ypuGnHXSR0hTstBxdt85Xkh4JolYfK5wg==", + "bundled": true, "dev": true, "requires": { - "humanize-ms": "1.2.1" + "humanize-ms": "^1.2.1" } }, "ajv": { "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "bundled": true, "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "ansi-align": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "bundled": true, "dev": true, "requires": { - "string-width": "2.1.1" + "string-width": "^2.0.0" } }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "bundled": true, "dev": true }, "ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "bundled": true, "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "^1.9.0" } }, "ansicolors": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=", + "bundled": true, "dev": true }, "ansistyles": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ansistyles/-/ansistyles-0.1.3.tgz", - "integrity": "sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk=", + "bundled": true, "dev": true }, "aproba": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "bundled": true, "dev": true }, "archy": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "bundled": true, "dev": true }, "are-we-there-yet": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "bundled": true, "dev": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "asap": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "bundled": true, "dev": true }, "asn1": { "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "bundled": true, "dev": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "~2.1.0" } }, "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "dev": true }, "asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "bundled": true, "dev": true }, "aws-sign2": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "bundled": true, "dev": true }, "aws4": { "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "bundled": true, "dev": true }, "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "bundled": true, "dev": true }, "bcrypt-pbkdf": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "bundled": true, "dev": true, "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "bin-links": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-1.1.2.tgz", - "integrity": "sha512-8eEHVgYP03nILphilltWjeIjMbKyJo3wvp9K816pHbhP301ismzw15mxAAEVQ/USUwcP++1uNrbERbp8lOA6Fg==", + "bundled": true, "dev": true, "requires": { - "bluebird": "3.5.3", - "cmd-shim": "2.0.2", - "gentle-fs": "2.0.1", - "graceful-fs": "4.1.15", - "write-file-atomic": "2.3.0" + "bluebird": "^3.5.0", + "cmd-shim": "^2.0.2", + "gentle-fs": "^2.0.0", + "graceful-fs": "^4.1.11", + "write-file-atomic": "^2.3.0" } }, "block-stream": { "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "bundled": true, "dev": true, "requires": { - "inherits": "2.0.3" + "inherits": "~2.0.0" } }, "bluebird": { "version": "3.5.3", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz", - "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==", + "bundled": true, "dev": true }, "boxen": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "bundled": true, "dev": true, "requires": { - "ansi-align": "2.0.0", - "camelcase": "4.1.0", - "chalk": "2.4.1", - "cli-boxes": "1.0.0", - "string-width": "2.1.1", - "term-size": "1.2.0", - "widest-line": "2.0.0" + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" } }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "bundled": true, "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "buffer-from": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz", - "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==", + "bundled": true, "dev": true }, "builtin-modules": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "bundled": true, "dev": true }, "builtins": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "bundled": true, "dev": true }, "byline": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", - "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=", + "bundled": true, "dev": true }, "byte-size": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-4.0.3.tgz", - "integrity": "sha512-JGC3EV2bCzJH/ENSh3afyJrH4vwxbHTuO5ljLoI5+2iJOcEpMgP8T782jH9b5qGxf2mSUIp1lfGnfKNrRHpvVg==", + "bundled": true, "dev": true }, "cacache": { "version": "11.2.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.2.0.tgz", - "integrity": "sha512-IFWl6lfK6wSeYCHUXh+N1lY72UDrpyrYQJNIVQf48paDuWbv5RbAtJYf/4gUQFObTCHZwdZ5sI8Iw7nqwP6nlQ==", - "dev": true, - "requires": { - "bluebird": "3.5.3", - "chownr": "1.0.1", - "figgy-pudding": "3.5.1", - "glob": "7.1.3", - "graceful-fs": "4.1.15", - "lru-cache": "4.1.3", - "mississippi": "3.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.2", - "ssri": "6.0.1", - "unique-filename": "1.1.0", - "y18n": "4.0.0" + "bundled": true, + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "figgy-pudding": "^3.1.0", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.3", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^6.0.0", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" } }, "call-limit": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/call-limit/-/call-limit-1.1.0.tgz", - "integrity": "sha1-b9YbA/PaQqLNDsK2DwK9DnGZH+o=", + "bundled": true, "dev": true }, "camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "bundled": true, "dev": true }, "capture-stack-trace": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", - "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=", + "bundled": true, "dev": true }, "caseless": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "bundled": true, "dev": true }, "chalk": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "bundled": true, "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "chownr": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", + "bundled": true, "dev": true }, "ci-info": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", - "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "bundled": true, "dev": true }, "cidr-regex": { "version": "2.0.9", - "resolved": "https://registry.npmjs.org/cidr-regex/-/cidr-regex-2.0.9.tgz", - "integrity": "sha512-F7/fBRUU45FnvSPjXdpIrc++WRSBdCiSTlyq4ZNhLKOlHFNWgtzZ0Fd+zrqI/J1j0wmlx/f5ZQDmD2GcbrNcmw==", + "bundled": true, "dev": true, "requires": { - "ip-regex": "2.1.0" + "ip-regex": "^2.1.0" } }, "cli-boxes": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", + "bundled": true, "dev": true }, "cli-columns": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/cli-columns/-/cli-columns-3.1.2.tgz", - "integrity": "sha1-ZzLZcpee/CrkRKHwjgj6E5yWoY4=", + "bundled": true, "dev": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "3.0.1" + "string-width": "^2.0.0", + "strip-ansi": "^3.0.1" } }, "cli-table3": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.0.tgz", - "integrity": "sha512-c7YHpUyO1SaKaO7kYtxd5NZ8FjAmSK3LpKkuzdwn+2CwpFxBpdoQLm+OAnnCfoEl7onKhN9PKQi1lsHuAIUqGQ==", + "bundled": true, "dev": true, "requires": { - "colors": "1.1.2", - "object-assign": "4.1.1", - "string-width": "2.1.1" + "colors": "^1.1.2", + "object-assign": "^4.1.0", + "string-width": "^2.1.1" } }, "cliui": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "bundled": true, "dev": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" }, "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "bundled": true, "dev": true }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "bundled": true, "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } }, "clone": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "bundled": true, "dev": true }, "cmd-shim": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-2.0.2.tgz", - "integrity": "sha1-b8vamUg6j9FdfTChlspp1oii79s=", + "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.15", - "mkdirp": "0.5.1" + "graceful-fs": "^4.1.2", + "mkdirp": "~0.5.0" } }, "co": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "bundled": true, "dev": true }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "bundled": true, "dev": true }, "color-convert": { "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", - "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "bundled": true, "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "^1.1.1" } }, "color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "bundled": true, "dev": true }, "colors": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "bundled": true, "dev": true, "optional": true }, "columnify": { "version": "1.5.4", - "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz", - "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=", + "bundled": true, "dev": true, "requires": { - "strip-ansi": "3.0.1", - "wcwidth": "1.0.1" + "strip-ansi": "^3.0.0", + "wcwidth": "^1.0.0" } }, "combined-stream": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "bundled": true, "dev": true, "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "bundled": true, "dev": true }, "concat-stream": { "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "bundled": true, "dev": true, "requires": { - "buffer-from": "1.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, "config-chain": { "version": "1.1.12", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", - "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "bundled": true, "dev": true, "requires": { - "ini": "1.3.5", - "proto-list": "1.2.4" + "ini": "^1.3.4", + "proto-list": "~1.2.1" } }, "configstore": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", - "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "bundled": true, "dev": true, "requires": { - "dot-prop": "4.2.0", - "graceful-fs": "4.1.15", - "make-dir": "1.3.0", - "unique-string": "1.0.0", - "write-file-atomic": "2.3.0", - "xdg-basedir": "3.0.0" + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" } }, "console-control-strings": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "bundled": true, "dev": true }, "copy-concurrently": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "bundled": true, "dev": true, "requires": { - "aproba": "1.2.0", - "fs-write-stream-atomic": "1.0.10", - "iferr": "0.1.5", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "run-queue": "1.0.3" + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" }, "dependencies": { "iferr": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "bundled": true, "dev": true } } }, "core-util-is": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "bundled": true, "dev": true }, "create-error-class": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", - "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "bundled": true, "dev": true, "requires": { - "capture-stack-trace": "1.0.0" + "capture-stack-trace": "^1.0.0" } }, "cross-spawn": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "bundled": true, "dev": true, "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "crypto-random-string": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", + "bundled": true, "dev": true }, "cyclist": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", + "bundled": true, "dev": true }, "dashdash": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "bundled": true, "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "debug": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "bundled": true, "dev": true, "requires": { "ms": "2.0.0" @@ -6663,788 +7687,690 @@ "dependencies": { "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "bundled": true, "dev": true } } }, "debuglog": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", - "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", + "bundled": true, "dev": true }, "decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "bundled": true, "dev": true }, "decode-uri-component": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "bundled": true, "dev": true }, "deep-extend": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", + "bundled": true, "dev": true }, "defaults": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "bundled": true, "dev": true, "requires": { - "clone": "1.0.4" + "clone": "^1.0.2" } }, "delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "bundled": true, "dev": true }, "delegates": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "bundled": true, "dev": true }, "detect-indent": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", - "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=", + "bundled": true, "dev": true }, "detect-newline": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", - "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", + "bundled": true, "dev": true }, "dezalgo": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", - "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "bundled": true, "dev": true, "requires": { - "asap": "2.0.6", - "wrappy": "1.0.2" + "asap": "^2.0.0", + "wrappy": "1" } }, "dot-prop": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "bundled": true, "dev": true, "requires": { - "is-obj": "1.0.1" + "is-obj": "^1.0.0" } }, "dotenv": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-5.0.1.tgz", - "integrity": "sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==", + "bundled": true, "dev": true }, "duplexer3": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "bundled": true, "dev": true }, "duplexify": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", - "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", + "bundled": true, "dev": true, "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" } }, "ecc-jsbn": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "bundled": true, "dev": true, "optional": true, "requires": { - "jsbn": "0.1.1", - "safer-buffer": "2.1.2" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, "editor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/editor/-/editor-1.0.0.tgz", - "integrity": "sha1-YMf4e9YrzGqJT6jM1q+3gjok90I=", + "bundled": true, "dev": true }, "encoding": { "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "bundled": true, "dev": true, "requires": { - "iconv-lite": "0.4.23" + "iconv-lite": "~0.4.13" } }, "end-of-stream": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "bundled": true, "dev": true, "requires": { - "once": "1.4.0" + "once": "^1.4.0" } }, "err-code": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "bundled": true, "dev": true }, "errno": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "bundled": true, "dev": true, "requires": { - "prr": "1.0.1" + "prr": "~1.0.1" } }, "es6-promise": { "version": "4.2.4", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", - "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==", + "bundled": true, "dev": true }, "es6-promisify": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "bundled": true, "dev": true, "requires": { - "es6-promise": "4.2.4" + "es6-promise": "^4.0.3" } }, "escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "bundled": true, "dev": true }, "execa": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "bundled": true, "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" } }, "extend": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "bundled": true, "dev": true }, "extsprintf": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "bundled": true, "dev": true }, "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=", + "bundled": true, "dev": true }, "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=", + "bundled": true, "dev": true }, "figgy-pudding": { "version": "3.5.1", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", - "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", + "bundled": true, "dev": true }, "find-npm-prefix": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/find-npm-prefix/-/find-npm-prefix-1.0.2.tgz", - "integrity": "sha512-KEftzJ+H90x6pcKtdXZEPsQse8/y/UnvzRKrOSQFprnrGaFuJ62fVkP34Iu2IYuMvyauCyoLTNkJZgrrGA2wkA==", + "bundled": true, "dev": true }, "find-up": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "bundled": true, "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "flush-write-stream": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", - "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", + "bundled": true, "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "inherits": "^2.0.1", + "readable-stream": "^2.0.4" } }, "forever-agent": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "bundled": true, "dev": true }, "form-data": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "bundled": true, "dev": true, "requires": { - "asynckit": "0.4.0", + "asynckit": "^0.4.0", "combined-stream": "1.0.6", - "mime-types": "2.1.19" + "mime-types": "^2.1.12" } }, "from2": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "bundled": true, "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" } }, "fs-minipass": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", - "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", + "bundled": true, "dev": true, "requires": { - "minipass": "2.3.3" + "minipass": "^2.2.1" } }, "fs-vacuum": { "version": "1.2.10", - "resolved": "https://registry.npmjs.org/fs-vacuum/-/fs-vacuum-1.2.10.tgz", - "integrity": "sha1-t2Kb7AekAxolSP35n17PHMizHjY=", + "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.15", - "path-is-inside": "1.0.2", - "rimraf": "2.6.2" + "graceful-fs": "^4.1.2", + "path-is-inside": "^1.0.1", + "rimraf": "^2.5.2" } }, "fs-write-stream-atomic": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.15", - "iferr": "0.1.5", - "imurmurhash": "0.1.4", - "readable-stream": "2.3.6" + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" }, "dependencies": { "iferr": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "bundled": true, "dev": true } } }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "bundled": true, "dev": true }, "fstream": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.15", - "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" } }, "gauge": { "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": 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" + "bundled": true, + "dev": true, + "requires": { + "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" }, "dependencies": { "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "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" } } } }, "genfun": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/genfun/-/genfun-4.0.1.tgz", - "integrity": "sha1-7RAEHy5KfxsKOEZtF6XD4n3x38E=", + "bundled": true, "dev": true }, "gentle-fs": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/gentle-fs/-/gentle-fs-2.0.1.tgz", - "integrity": "sha512-cEng5+3fuARewXktTEGbwsktcldA+YsnUEaXZwcK/3pjSE1X9ObnTs+/8rYf8s+RnIcQm2D5x3rwpN7Zom8Bew==", - "dev": true, - "requires": { - "aproba": "1.2.0", - "fs-vacuum": "1.2.10", - "graceful-fs": "4.1.15", - "iferr": "0.1.5", - "mkdirp": "0.5.1", - "path-is-inside": "1.0.2", - "read-cmd-shim": "1.0.1", - "slide": "1.1.6" + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.1.2", + "fs-vacuum": "^1.2.10", + "graceful-fs": "^4.1.11", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "path-is-inside": "^1.0.2", + "read-cmd-shim": "^1.0.1", + "slide": "^1.1.6" }, "dependencies": { "iferr": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "bundled": true, "dev": true } } }, "get-caller-file": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "bundled": true, "dev": true }, "get-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "bundled": true, "dev": true }, "getpass": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "bundled": true, "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "glob": { "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "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" + "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" } }, "global-dirs": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "bundled": true, "dev": true, "requires": { - "ini": "1.3.5" + "ini": "^1.3.4" } }, "got": { "version": "6.7.1", - "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", - "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "bundled": true, "dev": true, "requires": { - "create-error-class": "3.0.2", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "is-redirect": "1.0.0", - "is-retry-allowed": "1.1.0", - "is-stream": "1.1.0", - "lowercase-keys": "1.0.1", - "safe-buffer": "5.1.2", - "timed-out": "4.0.1", - "unzip-response": "2.0.1", - "url-parse-lax": "1.0.0" + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" } }, "graceful-fs": { "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "bundled": true, "dev": true }, "har-schema": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "bundled": true, "dev": true }, "har-validator": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", - "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", + "bundled": true, "dev": true, "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" + "ajv": "^5.3.0", + "har-schema": "^2.0.0" } }, "has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "bundled": true, "dev": true }, "has-unicode": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "bundled": true, "dev": true }, "hosted-git-info": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "bundled": true, "dev": true }, "http-cache-semantics": { "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "bundled": true, "dev": true }, "http-proxy-agent": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "bundled": true, "dev": true, "requires": { - "agent-base": "4.2.0", + "agent-base": "4", "debug": "3.1.0" } }, "http-signature": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "bundled": true, "dev": true, "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.14.2" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "https-proxy-agent": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", - "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", + "bundled": true, "dev": true, "requires": { - "agent-base": "4.2.0", - "debug": "3.1.0" + "agent-base": "^4.1.0", + "debug": "^3.1.0" } }, "humanize-ms": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "bundled": true, "dev": true, "requires": { - "ms": "2.1.1" + "ms": "^2.0.0" } }, "iconv-lite": { "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "bundled": true, "dev": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "iferr": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-1.0.2.tgz", - "integrity": "sha512-9AfeLfji44r5TKInjhz3W9DyZI1zR1JAf2hVBMGhddAKPqBsupb89jGfbCTHIGZd6fGZl9WlHdn4AObygyMKwg==", + "bundled": true, "dev": true }, "ignore-walk": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", - "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", + "bundled": true, "dev": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "import-lazy": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "bundled": true, "dev": true }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "bundled": true, "dev": true }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "bundled": true, "dev": true }, "ini": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "bundled": true, "dev": true }, "init-package-json": { "version": "1.10.3", - "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.10.3.tgz", - "integrity": "sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==", + "bundled": true, "dev": true, "requires": { - "glob": "7.1.3", - "npm-package-arg": "6.1.0", - "promzard": "0.3.0", - "read": "1.0.7", - "read-package-json": "2.0.13", - "semver": "5.5.1", - "validate-npm-package-license": "3.0.4", - "validate-npm-package-name": "3.0.0" + "glob": "^7.1.1", + "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0", + "promzard": "^0.3.0", + "read": "~1.0.1", + "read-package-json": "1 || 2", + "semver": "2.x || 3.x || 4 || 5", + "validate-npm-package-license": "^3.0.1", + "validate-npm-package-name": "^3.0.0" } }, "invert-kv": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "bundled": true, "dev": true }, "ip": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "bundled": true, "dev": true }, "ip-regex": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "bundled": true, "dev": true }, "is-builtin-module": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "bundled": true, "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-ci": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz", - "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", + "bundled": true, "dev": true, "requires": { - "ci-info": "1.6.0" + "ci-info": "^1.0.0" } }, "is-cidr": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/is-cidr/-/is-cidr-2.0.6.tgz", - "integrity": "sha512-A578p1dV22TgPXn6NCaDAPj6vJvYsBgAzUrAd28a4oldeXJjWqEUuSZOLIW3im51mazOKsoyVp8NU/OItlWacw==", + "bundled": true, "dev": true, "requires": { - "cidr-regex": "2.0.9" + "cidr-regex": "^2.0.8" } }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-installed-globally": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "bundled": true, "dev": true, "requires": { - "global-dirs": "0.1.1", - "is-path-inside": "1.0.1" + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" } }, "is-npm": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", + "bundled": true, "dev": true }, "is-obj": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "bundled": true, "dev": true }, "is-path-inside": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "bundled": true, "dev": true, "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.1" } }, "is-redirect": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", + "bundled": true, "dev": true }, "is-retry-allowed": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", - "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", + "bundled": true, "dev": true }, "is-stream": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "bundled": true, "dev": true }, "is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "bundled": true, "dev": true }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "bundled": true, "dev": true }, "isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "bundled": true, "dev": true }, "isstream": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "bundled": true, "dev": true }, "jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "bundled": true, "dev": true, "optional": true }, "json-parse-better-errors": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "bundled": true, "dev": true }, "json-schema": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "bundled": true, "dev": true }, "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=", + "bundled": true, "dev": true }, "json-stringify-safe": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "bundled": true, "dev": true }, "jsonparse": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "bundled": true, "dev": true }, "jsprim": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "bundled": true, "dev": true, "requires": { "assert-plus": "1.0.0", @@ -7455,349 +8381,310 @@ }, "latest-version": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", - "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "bundled": true, "dev": true, "requires": { - "package-json": "4.0.1" + "package-json": "^4.0.0" } }, "lazy-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazy-property/-/lazy-property-1.0.0.tgz", - "integrity": "sha1-hN3Es3Bnm6i9TNz6TAa0PVcREUc=", + "bundled": true, "dev": true }, "lcid": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "bundled": true, "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "libcipm": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/libcipm/-/libcipm-2.0.2.tgz", - "integrity": "sha512-9uZ6/LAflVEijksTRq/RX0e+pGA4mr8tND9Cmk2JMg7j2fFUBrs8PpFX2DOAJR/XoxPzz+5h8bkWmtIYLunKAg==", - "dev": true, - "requires": { - "bin-links": "1.1.2", - "bluebird": "3.5.3", - "find-npm-prefix": "1.0.2", - "graceful-fs": "4.1.15", - "lock-verify": "2.0.2", - "mkdirp": "0.5.1", - "npm-lifecycle": "2.1.0", - "npm-logical-tree": "1.2.1", - "npm-package-arg": "6.1.0", - "pacote": "8.1.6", - "protoduck": "5.0.0", - "read-package-json": "2.0.13", - "rimraf": "2.6.2", - "worker-farm": "1.6.0" + "bundled": true, + "dev": true, + "requires": { + "bin-links": "^1.1.2", + "bluebird": "^3.5.1", + "find-npm-prefix": "^1.0.2", + "graceful-fs": "^4.1.11", + "lock-verify": "^2.0.2", + "mkdirp": "^0.5.1", + "npm-lifecycle": "^2.0.3", + "npm-logical-tree": "^1.2.1", + "npm-package-arg": "^6.1.0", + "pacote": "^8.1.6", + "protoduck": "^5.0.0", + "read-package-json": "^2.0.13", + "rimraf": "^2.6.2", + "worker-farm": "^1.6.0" } }, "libnpmhook": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/libnpmhook/-/libnpmhook-4.0.1.tgz", - "integrity": "sha512-3qqpfqvBD1712WA6iGe0stkG40WwAeoWcujA6BlC0Be1JArQbqwabnEnZ0CRcD05Tf1fPYJYdCbSfcfedEJCOg==", + "bundled": true, "dev": true, "requires": { - "figgy-pudding": "3.5.1", - "npm-registry-fetch": "3.1.1" + "figgy-pudding": "^3.1.0", + "npm-registry-fetch": "^3.0.0" }, "dependencies": { "npm-registry-fetch": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-3.1.1.tgz", - "integrity": "sha512-xBobENeenvjIG8PgQ1dy77AXTI25IbYhmA3DusMIfw/4EL5BaQ5e1V9trkPrqHvyjR3/T0cnH6o0Wt/IzcI5Ag==", + "bundled": true, "dev": true, "requires": { - "bluebird": "3.5.3", - "figgy-pudding": "3.5.1", - "lru-cache": "4.1.3", - "make-fetch-happen": "4.0.1", - "npm-package-arg": "6.1.0" + "bluebird": "^3.5.1", + "figgy-pudding": "^3.1.0", + "lru-cache": "^4.1.2", + "make-fetch-happen": "^4.0.0", + "npm-package-arg": "^6.0.0" } } } }, "libnpx": { "version": "10.2.0", - "resolved": "https://registry.npmjs.org/libnpx/-/libnpx-10.2.0.tgz", - "integrity": "sha512-X28coei8/XRCt15cYStbLBph+KGhFra4VQhRBPuH/HHMkC5dxM8v24RVgUsvODKCrUZ0eTgiTqJp6zbl0sskQQ==", + "bundled": true, "dev": true, "requires": { - "dotenv": "5.0.1", - "npm-package-arg": "6.1.0", - "rimraf": "2.6.2", - "safe-buffer": "5.1.2", - "update-notifier": "2.5.0", - "which": "1.3.1", - "y18n": "4.0.0", - "yargs": "11.0.0" + "dotenv": "^5.0.1", + "npm-package-arg": "^6.0.0", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.0", + "update-notifier": "^2.3.0", + "which": "^1.3.0", + "y18n": "^4.0.0", + "yargs": "^11.0.0" } }, "locate-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "bundled": true, "dev": true, "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "lock-verify": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lock-verify/-/lock-verify-2.0.2.tgz", - "integrity": "sha512-QNVwK0EGZBS4R3YQ7F1Ox8p41Po9VGl2QG/2GsuvTbkJZYSsPeWHKMbbH6iZMCHWSMww5nrJroZYnGzI4cePuw==", + "bundled": true, "dev": true, "requires": { - "npm-package-arg": "6.1.0", - "semver": "5.5.1" + "npm-package-arg": "^5.1.2 || 6", + "semver": "^5.4.1" } }, "lockfile": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.4.tgz", - "integrity": "sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==", + "bundled": true, "dev": true, "requires": { - "signal-exit": "3.0.2" + "signal-exit": "^3.0.2" } }, "lodash._baseindexof": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz", - "integrity": "sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw=", + "bundled": true, "dev": true }, "lodash._baseuniq": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz", - "integrity": "sha1-DrtE5FaBSveQXGIS+iybLVG4Qeg=", + "bundled": true, "dev": true, "requires": { - "lodash._createset": "4.0.3", - "lodash._root": "3.0.1" + "lodash._createset": "~4.0.0", + "lodash._root": "~3.0.0" } }, "lodash._bindcallback": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", - "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=", + "bundled": true, "dev": true }, "lodash._cacheindexof": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz", - "integrity": "sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI=", + "bundled": true, "dev": true }, "lodash._createcache": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash._createcache/-/lodash._createcache-3.1.2.tgz", - "integrity": "sha1-VtagZAF2JeeevKa4AY4XRAvc8JM=", + "bundled": true, "dev": true, "requires": { - "lodash._getnative": "3.9.1" + "lodash._getnative": "^3.0.0" } }, "lodash._createset": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/lodash._createset/-/lodash._createset-4.0.3.tgz", - "integrity": "sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY=", + "bundled": true, "dev": true }, "lodash._getnative": { "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", + "bundled": true, "dev": true }, "lodash._root": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", + "bundled": true, "dev": true }, "lodash.clonedeep": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "bundled": true, "dev": true }, "lodash.restparam": { "version": "3.6.1", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", + "bundled": true, "dev": true }, "lodash.union": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=", + "bundled": true, "dev": true }, "lodash.uniq": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "bundled": true, "dev": true }, "lodash.without": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.without/-/lodash.without-4.4.0.tgz", - "integrity": "sha1-PNRXSgC2e643OpS3SHcmQFB7eqw=", + "bundled": true, "dev": true }, "lowercase-keys": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "bundled": true, "dev": true }, "lru-cache": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "bundled": true, "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "make-dir": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "bundled": true, "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "make-fetch-happen": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz", - "integrity": "sha512-7R5ivfy9ilRJ1EMKIOziwrns9fGeAD4bAha8EB7BIiBBLHm2KeTUGCrICFt2rbHfzheTLynv50GnNTK1zDTrcQ==", + "bundled": true, "dev": true, "requires": { - "agentkeepalive": "3.4.1", - "cacache": "11.2.0", - "http-cache-semantics": "3.8.1", - "http-proxy-agent": "2.1.0", - "https-proxy-agent": "2.2.1", - "lru-cache": "4.1.3", - "mississippi": "3.0.0", - "node-fetch-npm": "2.0.2", - "promise-retry": "1.1.1", - "socks-proxy-agent": "4.0.1", - "ssri": "6.0.1" + "agentkeepalive": "^3.4.1", + "cacache": "^11.0.1", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "lru-cache": "^4.1.2", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" } }, "meant": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/meant/-/meant-1.0.1.tgz", - "integrity": "sha512-UakVLFjKkbbUwNWJ2frVLnnAtbb7D7DsloxRd3s/gDpI8rdv8W5Hp3NaDb+POBI1fQdeussER6NB8vpcRURvlg==", + "bundled": true, "dev": true }, "mem": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "bundled": true, "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "mime-db": { "version": "1.35.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz", - "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==", + "bundled": true, "dev": true }, "mime-types": { "version": "2.1.19", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", - "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", + "bundled": true, "dev": true, "requires": { - "mime-db": "1.35.0" + "mime-db": "~1.35.0" } }, "mimic-fn": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "bundled": true, "dev": true }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "bundled": true, "dev": true }, "minipass": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.3.tgz", - "integrity": "sha512-/jAn9/tEX4gnpyRATxgHEOV6xbcyxgT7iUnxo9Y3+OB0zX00TgKIv/2FZCf5brBbICcwbLqVv2ImjvWWrQMSYw==", + "bundled": true, "dev": true, "requires": { - "safe-buffer": "5.1.2", - "yallist": "3.0.2" + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" }, "dependencies": { "yallist": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", + "bundled": true, "dev": true } } }, "minizlib": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.1.tgz", - "integrity": "sha512-TrfjCjk4jLhcJyGMYymBH6oTXcWjYbUAXTHDbtnWHjZC25h0cdajHuPE1zxb4DVmu8crfh+HwH/WMuyLG0nHBg==", + "bundled": true, "dev": true, "requires": { - "minipass": "2.3.3" + "minipass": "^2.2.1" } }, "mississippi": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "bundled": true, "dev": true, "requires": { - "concat-stream": "1.6.2", - "duplexify": "3.6.0", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.0.3", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "3.0.0", - "pumpify": "1.5.1", - "stream-each": "1.2.2", - "through2": "2.0.3" + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" } }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, "dev": true, "requires": { "minimist": "0.0.8" @@ -7805,1650 +8692,1468 @@ }, "move-concurrently": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "bundled": true, "dev": true, "requires": { - "aproba": "1.2.0", - "copy-concurrently": "1.0.5", - "fs-write-stream-atomic": "1.0.10", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "run-queue": "1.0.3" + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" } }, "ms": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "bundled": true, "dev": true }, "mute-stream": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "bundled": true, "dev": true }, "node-fetch-npm": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", - "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", + "bundled": true, "dev": true, "requires": { - "encoding": "0.1.12", - "json-parse-better-errors": "1.0.2", - "safe-buffer": "5.1.2" + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" } }, "node-gyp": { "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", - "dev": true, - "requires": { - "fstream": "1.0.11", - "glob": "7.1.3", - "graceful-fs": "4.1.15", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "npmlog": "4.1.2", - "osenv": "0.1.5", - "request": "2.88.0", - "rimraf": "2.6.2", - "semver": "5.3.0", - "tar": "2.2.1", - "which": "1.3.1" + "bundled": true, + "dev": true, + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" }, "dependencies": { "nopt": { "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "bundled": true, "dev": true, "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } }, "semver": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "bundled": true, "dev": true }, "tar": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "bundled": true, "dev": true, "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" } } } }, "nopt": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "bundled": true, "dev": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "abbrev": "1", + "osenv": "^0.1.4" } }, "normalize-package-data": { "version": "2.4.0", - "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==", + "bundled": true, "dev": true, "requires": { - "hosted-git-info": "2.7.1", - "is-builtin-module": "1.0.0", - "semver": "5.5.1", - "validate-npm-package-license": "3.0.4" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "npm-audit-report": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/npm-audit-report/-/npm-audit-report-1.3.1.tgz", - "integrity": "sha512-SjTF8ZP4rOu3JiFrTMi4M1CmVo2tni2sP4TzhyCMHwnMGf6XkdGLZKt9cdZ12esKf0mbQqFyU9LtY0SoeahL7g==", + "bundled": true, "dev": true, "requires": { - "cli-table3": "0.5.0", - "console-control-strings": "1.1.0" + "cli-table3": "^0.5.0", + "console-control-strings": "^1.1.0" } }, "npm-bundled": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.5.tgz", - "integrity": "sha512-m/e6jgWu8/v5niCUKQi9qQl8QdeEduFA96xHDDzFGqly0OOjI7c+60KM/2sppfnUU9JJagf+zs+yGhqSOFj71g==", + "bundled": true, "dev": true }, "npm-cache-filename": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/npm-cache-filename/-/npm-cache-filename-1.0.2.tgz", - "integrity": "sha1-3tMGxbC/yHCp6fr4I7xfKD4FrhE=", + "bundled": true, "dev": true }, "npm-install-checks": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-3.0.0.tgz", - "integrity": "sha1-1K7N/VGlPjcjt7L5Oy7ijjB7wNc=", + "bundled": true, "dev": true, "requires": { - "semver": "5.5.1" + "semver": "^2.3.0 || 3.x || 4 || 5" } }, "npm-lifecycle": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/npm-lifecycle/-/npm-lifecycle-2.1.0.tgz", - "integrity": "sha512-QbBfLlGBKsktwBZLj6AviHC6Q9Y3R/AY4a2PYSIRhSKSS0/CxRyD/PfxEX6tPeOCXQgMSNdwGeECacstgptc+g==", + "bundled": true, "dev": true, "requires": { - "byline": "5.0.0", - "graceful-fs": "4.1.15", - "node-gyp": "3.8.0", - "resolve-from": "4.0.0", - "slide": "1.1.6", + "byline": "^5.0.0", + "graceful-fs": "^4.1.11", + "node-gyp": "^3.8.0", + "resolve-from": "^4.0.0", + "slide": "^1.1.6", "uid-number": "0.0.6", - "umask": "1.1.0", - "which": "1.3.1" + "umask": "^1.1.0", + "which": "^1.3.1" } }, "npm-logical-tree": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/npm-logical-tree/-/npm-logical-tree-1.2.1.tgz", - "integrity": "sha512-AJI/qxDB2PWI4LG1CYN579AY1vCiNyWfkiquCsJWqntRu/WwimVrC8yXeILBFHDwxfOejxewlmnvW9XXjMlYIg==", + "bundled": true, "dev": true }, "npm-package-arg": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.0.tgz", - "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", + "bundled": true, "dev": true, "requires": { - "hosted-git-info": "2.7.1", - "osenv": "0.1.5", - "semver": "5.5.1", - "validate-npm-package-name": "3.0.0" + "hosted-git-info": "^2.6.0", + "osenv": "^0.1.5", + "semver": "^5.5.0", + "validate-npm-package-name": "^3.0.0" } }, "npm-packlist": { "version": "1.1.12", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.12.tgz", - "integrity": "sha512-WJKFOVMeAlsU/pjXuqVdzU0WfgtIBCupkEVwn+1Y0ERAbUfWw8R4GjgVbaKnUjRoD2FoQbHOCbOyT5Mbs9Lw4g==", + "bundled": true, "dev": true, "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.5" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, "npm-pick-manifest": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-2.1.0.tgz", - "integrity": "sha512-q9zLP8cTr8xKPmMZN3naxp1k/NxVFsjxN6uWuO1tiw9gxg7wZWQ/b5UTfzD0ANw2q1lQxdLKTeCCksq+bPSgbQ==", + "bundled": true, "dev": true, "requires": { - "npm-package-arg": "6.1.0", - "semver": "5.5.1" + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" } }, "npm-profile": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/npm-profile/-/npm-profile-3.0.2.tgz", - "integrity": "sha512-rEJOFR6PbwOvvhGa2YTNOJQKNuc6RovJ6T50xPU7pS9h/zKPNCJ+VHZY2OFXyZvEi+UQYtHRTp8O/YM3tUD20A==", + "bundled": true, "dev": true, "requires": { - "aproba": "1.2.0", - "make-fetch-happen": "4.0.1" + "aproba": "^1.1.2 || 2", + "make-fetch-happen": "^2.5.0 || 3 || 4" } }, "npm-registry-client": { "version": "8.6.0", - "resolved": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-8.6.0.tgz", - "integrity": "sha512-Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg==", - "dev": true, - "requires": { - "concat-stream": "1.6.2", - "graceful-fs": "4.1.15", - "normalize-package-data": "2.4.0", - "npm-package-arg": "6.1.0", - "npmlog": "4.1.2", - "once": "1.4.0", - "request": "2.88.0", - "retry": "0.10.1", - "safe-buffer": "5.1.2", - "semver": "5.5.1", - "slide": "1.1.6", - "ssri": "5.3.0" + "bundled": true, + "dev": true, + "requires": { + "concat-stream": "^1.5.2", + "graceful-fs": "^4.1.6", + "normalize-package-data": "~1.0.1 || ^2.0.0", + "npm-package-arg": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0", + "npmlog": "2 || ^3.1.0 || ^4.0.0", + "once": "^1.3.3", + "request": "^2.74.0", + "retry": "^0.10.0", + "safe-buffer": "^5.1.1", + "semver": "2 >=2.2.1 || 3.x || 4 || 5", + "slide": "^1.1.3", + "ssri": "^5.2.4" }, "dependencies": { "retry": { "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "bundled": true, "dev": true }, "ssri": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "bundled": true, "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.1" } } } }, "npm-registry-fetch": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-1.1.0.tgz", - "integrity": "sha512-XJPIBfMtgaooRtZmuA42xCeLf3tkxdIX0xqRsGWwNrcVvJ9UYFccD7Ho7QWCzvkM3i/QrkUC37Hu0a+vDBmt5g==", + "bundled": true, "dev": true, "requires": { - "bluebird": "3.5.3", - "figgy-pudding": "2.0.1", - "lru-cache": "4.1.3", - "make-fetch-happen": "3.0.0", - "npm-package-arg": "6.1.0", - "safe-buffer": "5.1.2" + "bluebird": "^3.5.1", + "figgy-pudding": "^2.0.1", + "lru-cache": "^4.1.2", + "make-fetch-happen": "^3.0.0", + "npm-package-arg": "^6.0.0", + "safe-buffer": "^5.1.1" }, "dependencies": { "cacache": { "version": "10.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", - "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", + "bundled": true, "dev": true, "requires": { - "bluebird": "3.5.3", - "chownr": "1.0.1", - "glob": "7.1.3", - "graceful-fs": "4.1.15", - "lru-cache": "4.1.3", - "mississippi": "2.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.2", - "ssri": "5.3.0", - "unique-filename": "1.1.0", - "y18n": "4.0.0" + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.1", + "mississippi": "^2.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^5.2.4", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" }, "dependencies": { "mississippi": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", - "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", + "bundled": true, "dev": true, "requires": { - "concat-stream": "1.6.2", - "duplexify": "3.6.0", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.0.3", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "2.0.1", - "pumpify": "1.5.1", - "stream-each": "1.2.2", - "through2": "2.0.3" + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^2.0.1", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" } } } }, "figgy-pudding": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-2.0.1.tgz", - "integrity": "sha512-yIJPhIBi/oFdU/P+GSXjmk/rmGjuZkm7A5LTXZxNrEprXJXRK012FiI1BR1Pga+0d/d6taWWD+B5d2ozqaxHig==", + "bundled": true, "dev": true }, "make-fetch-happen": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-3.0.0.tgz", - "integrity": "sha512-FmWY7gC0mL6Z4N86vE14+m719JKE4H0A+pyiOH18B025gF/C113pyfb4gHDDYP5cqnRMHOz06JGdmffC/SES+w==", + "bundled": true, "dev": true, "requires": { - "agentkeepalive": "3.4.1", - "cacache": "10.0.4", - "http-cache-semantics": "3.8.1", - "http-proxy-agent": "2.1.0", - "https-proxy-agent": "2.2.1", - "lru-cache": "4.1.3", - "mississippi": "3.0.0", - "node-fetch-npm": "2.0.2", - "promise-retry": "1.1.1", - "socks-proxy-agent": "3.0.1", - "ssri": "5.3.0" + "agentkeepalive": "^3.4.1", + "cacache": "^10.0.4", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.0", + "lru-cache": "^4.1.2", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^3.0.1", + "ssri": "^5.2.4" } }, "pump": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "bundled": true, "dev": true, "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, "smart-buffer": { "version": "1.1.15", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz", - "integrity": "sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY=", + "bundled": true, "dev": true }, "socks": { "version": "1.1.10", - "resolved": "https://registry.npmjs.org/socks/-/socks-1.1.10.tgz", - "integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=", + "bundled": true, "dev": true, "requires": { - "ip": "1.1.5", - "smart-buffer": "1.1.15" + "ip": "^1.1.4", + "smart-buffer": "^1.0.13" } }, "socks-proxy-agent": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz", - "integrity": "sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==", + "bundled": true, "dev": true, "requires": { - "agent-base": "4.2.0", - "socks": "1.1.10" + "agent-base": "^4.1.0", + "socks": "^1.1.10" } }, "ssri": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "bundled": true, "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.1" } } } }, "npm-run-path": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "bundled": true, "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "npm-user-validate": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/npm-user-validate/-/npm-user-validate-1.0.0.tgz", - "integrity": "sha1-jOyg9c6gTU6TUZ73LQVXp1Ei6VE=", + "bundled": true, "dev": true }, "npmlog": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "bundled": true, "dev": 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": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "bundled": true, "dev": true }, "oauth-sign": { "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "bundled": true, "dev": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "bundled": true, "dev": true }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "opener": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz", - "integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==", + "bundled": true, "dev": true }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "bundled": true, "dev": true }, "os-locale": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "bundled": true, "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" } }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "bundled": true, "dev": true }, "osenv": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "bundled": true, "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": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "bundled": true, "dev": true }, "p-limit": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "bundled": true, "dev": true, "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "bundled": true, "dev": true, "requires": { - "p-limit": "1.2.0" + "p-limit": "^1.1.0" } }, "p-try": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "bundled": true, "dev": true }, "package-json": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", - "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "bundled": true, "dev": true, "requires": { - "got": "6.7.1", - "registry-auth-token": "3.3.2", - "registry-url": "3.1.0", - "semver": "5.5.1" + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" } }, "pacote": { "version": "8.1.6", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-8.1.6.tgz", - "integrity": "sha512-wTOOfpaAQNEQNtPEx92x9Y9kRWVu45v583XT8x2oEV2xRB74+xdqMZIeGW4uFvAyZdmSBtye+wKdyyLaT8pcmw==", - "dev": true, - "requires": { - "bluebird": "3.5.3", - "cacache": "11.2.0", - "get-stream": "3.0.0", - "glob": "7.1.3", - "lru-cache": "4.1.3", - "make-fetch-happen": "4.0.1", - "minimatch": "3.0.4", - "minipass": "2.3.3", - "mississippi": "3.0.0", - "mkdirp": "0.5.1", - "normalize-package-data": "2.4.0", - "npm-package-arg": "6.1.0", - "npm-packlist": "1.1.12", - "npm-pick-manifest": "2.1.0", - "osenv": "0.1.5", - "promise-inflight": "1.0.1", - "promise-retry": "1.1.1", - "protoduck": "5.0.0", - "rimraf": "2.6.2", - "safe-buffer": "5.1.2", - "semver": "5.5.1", - "ssri": "6.0.1", - "tar": "4.4.8", - "unique-filename": "1.1.0", - "which": "1.3.1" + "bundled": true, + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "cacache": "^11.0.2", + "get-stream": "^3.0.0", + "glob": "^7.1.2", + "lru-cache": "^4.1.3", + "make-fetch-happen": "^4.0.1", + "minimatch": "^3.0.4", + "minipass": "^2.3.3", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "normalize-package-data": "^2.4.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.10", + "npm-pick-manifest": "^2.1.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^5.0.0", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.5.0", + "ssri": "^6.0.0", + "tar": "^4.4.3", + "unique-filename": "^1.1.0", + "which": "^1.3.0" } }, "parallel-transform": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "bundled": true, "dev": true, "requires": { - "cyclist": "0.2.2", - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" } }, "path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "bundled": true, "dev": true }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "bundled": true, "dev": true }, "path-is-inside": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "bundled": true, "dev": true }, "path-key": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "bundled": true, "dev": true }, "performance-now": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "bundled": true, "dev": true }, "pify": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "bundled": true, "dev": true }, "prepend-http": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "bundled": true, "dev": true }, "process-nextick-args": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "bundled": true, "dev": true }, "promise-inflight": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "bundled": true, "dev": true }, "promise-retry": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", - "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "bundled": true, "dev": true, "requires": { - "err-code": "1.1.2", - "retry": "0.10.1" + "err-code": "^1.0.0", + "retry": "^0.10.0" }, "dependencies": { "retry": { "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "bundled": true, "dev": true } } }, "promzard": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz", - "integrity": "sha1-JqXW7ox97kyxIggwWs+5O6OCqe4=", + "bundled": true, "dev": true, "requires": { - "read": "1.0.7" + "read": "1" } }, "proto-list": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "bundled": true, "dev": true }, "protoduck": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.0.tgz", - "integrity": "sha512-agsGWD8/RZrS4ga6v82Fxb0RHIS2RZnbsSue6A9/MBRhB/jcqOANAMNrqM9900b8duj+Gx+T/JMy5IowDoO/hQ==", + "bundled": true, "dev": true, "requires": { - "genfun": "4.0.1" + "genfun": "^4.0.1" } }, "prr": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "bundled": true, "dev": true }, "pseudomap": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "bundled": true, "dev": true }, "psl": { "version": "1.1.29", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", - "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==", + "bundled": true, "dev": true }, "pump": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "bundled": true, "dev": true, "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, "pumpify": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "bundled": true, "dev": true, "requires": { - "duplexify": "3.6.0", - "inherits": "2.0.3", - "pump": "2.0.1" + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" }, "dependencies": { "pump": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "bundled": true, "dev": true, "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } } } }, "punycode": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "bundled": true, "dev": true }, "qrcode-terminal": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz", - "integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==", + "bundled": true, "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==", + "bundled": true, "dev": true }, "query-string": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.1.0.tgz", - "integrity": "sha512-pNB/Gr8SA8ff8KpUFM36o/WFAlthgaThka5bV19AD9PNTH20Pwq5Zxodif2YyHwrctp6SkL4GqlOot0qR/wGaw==", + "bundled": true, "dev": true, "requires": { - "decode-uri-component": "0.2.0", - "strict-uri-encode": "2.0.0" + "decode-uri-component": "^0.2.0", + "strict-uri-encode": "^2.0.0" } }, "qw": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/qw/-/qw-1.0.1.tgz", - "integrity": "sha1-77/cdA+a0FQwRCassYNBLMi5ltQ=", + "bundled": true, "dev": true }, "rc": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz", - "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", + "bundled": true, "dev": true, "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "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": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "bundled": true, "dev": true } } }, "read": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "bundled": true, "dev": true, "requires": { - "mute-stream": "0.0.7" + "mute-stream": "~0.0.4" } }, "read-cmd-shim": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz", - "integrity": "sha1-LV0Vd4ajfAVdIgd8MsU/gynpHHs=", + "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.15" + "graceful-fs": "^4.1.2" } }, "read-installed": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/read-installed/-/read-installed-4.0.3.tgz", - "integrity": "sha1-/5uLZ/GH0eTCm5/rMfayI6zRkGc=", + "bundled": true, "dev": true, "requires": { - "debuglog": "1.0.1", - "graceful-fs": "4.1.15", - "read-package-json": "2.0.13", - "readdir-scoped-modules": "1.0.2", - "semver": "5.5.1", - "slide": "1.1.6", - "util-extend": "1.0.3" + "debuglog": "^1.0.1", + "graceful-fs": "^4.1.2", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "slide": "~1.1.3", + "util-extend": "^1.0.1" } }, "read-package-json": { "version": "2.0.13", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.13.tgz", - "integrity": "sha512-/1dZ7TRZvGrYqE0UAfN6qQb5GYBsNcqS1C0tNK601CFOJmtHI7NIGXwetEPU/OtoFHZL3hDxm4rolFFVE9Bnmg==", + "bundled": true, "dev": true, "requires": { - "glob": "7.1.3", - "graceful-fs": "4.1.15", - "json-parse-better-errors": "1.0.2", - "normalize-package-data": "2.4.0", - "slash": "1.0.0" + "glob": "^7.1.1", + "graceful-fs": "^4.1.2", + "json-parse-better-errors": "^1.0.1", + "normalize-package-data": "^2.0.0", + "slash": "^1.0.0" } }, "read-package-tree": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.2.1.tgz", - "integrity": "sha512-2CNoRoh95LxY47LvqrehIAfUVda2JbuFE/HaGYs42bNrGG+ojbw1h3zOcPcQ+1GQ3+rkzNndZn85u1XyZ3UsIA==", + "bundled": true, "dev": true, "requires": { - "debuglog": "1.0.1", - "dezalgo": "1.0.3", - "once": "1.4.0", - "read-package-json": "2.0.13", - "readdir-scoped-modules": "1.0.2" + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "once": "^1.3.0", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0" } }, "readable-stream": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "bundled": true, "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "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" } }, "readdir-scoped-modules": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz", - "integrity": "sha1-n6+jfShr5dksuuve4DDcm19AZ0c=", + "bundled": true, "dev": true, "requires": { - "debuglog": "1.0.1", - "dezalgo": "1.0.3", - "graceful-fs": "4.1.15", - "once": "1.4.0" + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" } }, "registry-auth-token": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", - "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "bundled": true, "dev": true, "requires": { - "rc": "1.2.7", - "safe-buffer": "5.1.2" + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" } }, "registry-url": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "bundled": true, "dev": true, "requires": { - "rc": "1.2.7" + "rc": "^1.0.1" } }, "request": { "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "bundled": true, "dev": true, "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.8.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.2", - "forever-agent": "0.6.1", - "form-data": "2.3.2", - "har-validator": "5.1.0", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.19", - "oauth-sign": "0.9.0", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.4.3", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" } }, "require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "bundled": true, "dev": true }, "require-main-filename": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "bundled": true, "dev": true }, "resolve-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "bundled": true, "dev": true }, "retry": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "bundled": true, "dev": true }, "rimraf": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "bundled": true, "dev": true, "requires": { - "glob": "7.1.3" + "glob": "^7.0.5" } }, "run-queue": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "bundled": true, "dev": true, "requires": { - "aproba": "1.2.0" + "aproba": "^1.1.1" } }, "safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "bundled": true, "dev": true }, "safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "bundled": true, "dev": true }, "semver": { "version": "5.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", - "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", + "bundled": true, "dev": true }, "semver-diff": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", - "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "bundled": true, "dev": true, "requires": { - "semver": "5.5.1" + "semver": "^5.0.3" } }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "bundled": true, "dev": true }, "sha": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/sha/-/sha-2.0.1.tgz", - "integrity": "sha1-YDCCL70smCOUn49y7WQR7lzyWq4=", + "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.15", - "readable-stream": "2.3.6" + "graceful-fs": "^4.1.2", + "readable-stream": "^2.0.2" } }, "shebang-command": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "bundled": true, "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "bundled": true, "dev": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "bundled": true, "dev": true }, "slash": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "bundled": true, "dev": true }, "slide": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "bundled": true, "dev": true }, "smart-buffer": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.1.tgz", - "integrity": "sha512-RFqinRVJVcCAL9Uh1oVqE6FZkqsyLiVOYEZ20TqIOjuX7iFVJ+zsbs4RIghnw/pTs7mZvt8ZHhvm1ZUrR4fykg==", + "bundled": true, "dev": true }, "socks": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.2.0.tgz", - "integrity": "sha512-uRKV9uXQ9ytMbGm2+DilS1jB7N3AC0mmusmW5TVWjNuBZjxS8+lX38fasKVY9I4opv/bY/iqTbcpFFaTwpfwRg==", + "bundled": true, "dev": true, "requires": { - "ip": "1.1.5", - "smart-buffer": "4.0.1" + "ip": "^1.1.5", + "smart-buffer": "^4.0.1" } }, "socks-proxy-agent": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz", - "integrity": "sha512-Kezx6/VBguXOsEe5oU3lXYyKMi4+gva72TwJ7pQY5JfqUx2nMk7NXA6z/mpNqIlfQjWYVfeuNvQjexiTaTn6Nw==", + "bundled": true, "dev": true, "requires": { - "agent-base": "4.2.0", - "socks": "2.2.0" + "agent-base": "~4.2.0", + "socks": "~2.2.0" } }, "sorted-object": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/sorted-object/-/sorted-object-2.0.1.tgz", - "integrity": "sha1-fWMfS9OnmKJK8d/8+/6DM3pd9fw=", + "bundled": true, "dev": true }, "sorted-union-stream": { "version": "2.1.3", - "resolved": "https://registry.npmjs.org/sorted-union-stream/-/sorted-union-stream-2.1.3.tgz", - "integrity": "sha1-x3lMfgd4gAUv9xqNSi27Sppjisc=", + "bundled": true, "dev": true, "requires": { - "from2": "1.3.0", - "stream-iterate": "1.2.0" + "from2": "^1.3.0", + "stream-iterate": "^1.1.0" }, "dependencies": { "from2": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-1.3.0.tgz", - "integrity": "sha1-iEE7qqX5pZfP3pIh2GmGzTwGHf0=", + "bundled": true, "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "1.1.14" + "inherits": "~2.0.1", + "readable-stream": "~1.1.10" } }, "isarray": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "bundled": true, "dev": true }, "readable-stream": { "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "bundled": true, "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": { "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "bundled": true, "dev": true } } }, "spdx-correct": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "bundled": true, "dev": true, "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", + "bundled": true, "dev": true }, "spdx-expression-parse": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "bundled": true, "dev": true, "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", + "bundled": true, "dev": true }, "sshpk": { "version": "1.14.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", - "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "bundled": true, "dev": true, "requires": { - "asn1": "0.2.4", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.2", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.2", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "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", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" } }, "ssri": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "bundled": true, "dev": true, "requires": { - "figgy-pudding": "3.5.1" + "figgy-pudding": "^3.5.1" } }, "stream-each": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", - "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", + "bundled": true, "dev": true, "requires": { - "end-of-stream": "1.4.1", - "stream-shift": "1.0.0" + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" } }, "stream-iterate": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/stream-iterate/-/stream-iterate-1.2.0.tgz", - "integrity": "sha1-K9fHcpbBcCpGSIuK1B95hl7s1OE=", + "bundled": true, "dev": true, "requires": { - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" + "readable-stream": "^2.1.5", + "stream-shift": "^1.0.0" } }, "stream-shift": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "bundled": true, "dev": true }, "strict-uri-encode": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=", + "bundled": true, "dev": true }, "string-width": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "bundled": true, "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" }, "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "bundled": true, "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "bundled": true, "dev": true }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "bundled": true, "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } }, "string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "bundled": true, "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "stringify-package": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.0.tgz", - "integrity": "sha512-JIQqiWmLiEozOC0b0BtxZ/AOUtdUZHCBPgqIZ2kSJJqGwgb9neo44XdTHUC4HZSGqi03hOeB7W/E8rAlKnGe9g==", + "bundled": true, "dev": true }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "bundled": true, "dev": true }, "strip-json-comments": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "bundled": true, "dev": true }, "supports-color": { "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "bundled": true, "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } }, "tar": { "version": "4.4.8", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz", - "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", + "bundled": true, "dev": true, "requires": { - "chownr": "1.1.1", - "fs-minipass": "1.2.5", - "minipass": "2.3.5", - "minizlib": "1.1.1", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.2", - "yallist": "3.0.3" + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" }, "dependencies": { "chownr": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", - "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", + "bundled": true, "dev": true }, "minipass": { "version": "2.3.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz", - "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", + "bundled": true, "dev": true, "requires": { - "safe-buffer": "5.1.2", - "yallist": "3.0.3" + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" } }, "yallist": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "bundled": true, "dev": true } } }, "term-size": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "bundled": true, "dev": true, "requires": { - "execa": "0.7.0" + "execa": "^0.7.0" } }, "text-table": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "bundled": true, "dev": true }, "through": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "bundled": true, "dev": true }, "through2": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "bundled": true, "dev": true, "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" } }, "timed-out": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", + "bundled": true, "dev": true }, "tiny-relative-date": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz", - "integrity": "sha512-MOQHpzllWxDCHHaDno30hhLfbouoYlOI8YlMNtvKe1zXbjEVhbcEovQxvZrPvtiYW630GQDoMMarCnjfyfHA+A==", + "bundled": true, "dev": true }, "tough-cookie": { "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "bundled": true, "dev": true, "requires": { - "psl": "1.1.29", - "punycode": "1.4.1" + "psl": "^1.1.24", + "punycode": "^1.4.1" } }, "tunnel-agent": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "bundled": true, "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "bundled": true, "dev": true, "optional": true }, "typedarray": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "bundled": true, "dev": true }, "uid-number": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", + "bundled": true, "dev": true }, "umask": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz", - "integrity": "sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0=", + "bundled": true, "dev": true }, "unique-filename": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", - "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", + "bundled": true, "dev": true, "requires": { - "unique-slug": "2.0.0" + "unique-slug": "^2.0.0" } }, "unique-slug": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz", - "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", + "bundled": true, "dev": true, "requires": { - "imurmurhash": "0.1.4" + "imurmurhash": "^0.1.4" } }, "unique-string": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "bundled": true, "dev": true, "requires": { - "crypto-random-string": "1.0.0" + "crypto-random-string": "^1.0.0" } }, "unpipe": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "bundled": true, "dev": true }, "unzip-response": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", - "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", + "bundled": true, "dev": true }, "update-notifier": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", - "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", + "bundled": true, "dev": true, "requires": { - "boxen": "1.3.0", - "chalk": "2.4.1", - "configstore": "3.1.2", - "import-lazy": "2.1.0", - "is-ci": "1.1.0", - "is-installed-globally": "0.1.0", - "is-npm": "1.0.0", - "latest-version": "3.1.0", - "semver-diff": "2.1.0", - "xdg-basedir": "3.0.0" + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" } }, "url-parse-lax": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "bundled": true, "dev": true, "requires": { - "prepend-http": "1.0.4" + "prepend-http": "^1.0.1" } }, "util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "bundled": true, "dev": true }, "util-extend": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz", - "integrity": "sha1-p8IW0mdUUWljeztu3GypEZ4v+T8=", + "bundled": true, "dev": true }, "uuid": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "bundled": true, "dev": true }, "validate-npm-package-license": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "bundled": true, "dev": true, "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "validate-npm-package-name": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "bundled": true, "dev": true, "requires": { - "builtins": "1.0.3" + "builtins": "^1.0.3" } }, "verror": { "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "bundled": true, "dev": 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" } }, "wcwidth": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "bundled": true, "dev": true, "requires": { - "defaults": "1.0.3" + "defaults": "^1.0.3" } }, "which": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "bundled": true, "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "bundled": true, "dev": true }, "wide-align": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "bundled": true, "dev": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" }, "dependencies": { "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "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" } } } }, "widest-line": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz", - "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", + "bundled": true, "dev": true, "requires": { - "string-width": "2.1.1" + "string-width": "^2.1.1" } }, "worker-farm": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", - "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", + "bundled": true, "dev": true, "requires": { - "errno": "0.1.7" + "errno": "~0.1.7" } }, "wrap-ansi": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "bundled": true, "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "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" } } } }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "bundled": true, "dev": true }, "write-file-atomic": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", - "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", + "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.15", - "imurmurhash": "0.1.4", - "signal-exit": "3.0.2" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" } }, "xdg-basedir": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", + "bundled": true, "dev": true }, "xtend": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "bundled": true, "dev": true }, "y18n": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "bundled": true, "dev": true }, "yallist": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "bundled": true, "dev": true }, "yargs": { "version": "11.0.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.0.0.tgz", - "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", - "dev": true, - "requires": { - "cliui": "4.1.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": "9.0.2" + "bundled": true, + "dev": true, + "requires": { + "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": "^9.0.2" }, "dependencies": { "y18n": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "bundled": true, "dev": true } } }, "yargs-parser": { "version": "9.0.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "bundled": true, "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } @@ -9458,7 +10163,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -9470,1140 +10175,1142 @@ "version": "11.9.0", "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.9.0.tgz", "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", + "dev": true, "requires": { - "archy": "1.0.0", - "arrify": "1.0.1", - "caching-transform": "1.0.1", - "convert-source-map": "1.5.1", - "debug-log": "1.0.1", - "default-require-extensions": "1.0.0", - "find-cache-dir": "0.1.1", - "find-up": "2.1.0", - "foreground-child": "1.5.6", - "glob": "7.1.2", - "istanbul-lib-coverage": "1.2.0", - "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "1.10.1", - "istanbul-lib-report": "1.1.3", - "istanbul-lib-source-maps": "1.2.3", - "istanbul-reports": "1.4.0", - "md5-hex": "1.3.0", - "merge-source-map": "1.1.0", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "resolve-from": "2.0.0", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "spawn-wrap": "1.4.2", - "test-exclude": "4.2.1", + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^1.0.0", + "convert-source-map": "^1.5.1", + "debug-log": "^1.0.1", + "default-require-extensions": "^1.0.0", + "find-cache-dir": "^0.1.1", + "find-up": "^2.1.0", + "foreground-child": "^1.5.3", + "glob": "^7.0.6", + "istanbul-lib-coverage": "^1.1.2", + "istanbul-lib-hook": "^1.1.0", + "istanbul-lib-instrument": "^1.10.0", + "istanbul-lib-report": "^1.1.3", + "istanbul-lib-source-maps": "^1.2.3", + "istanbul-reports": "^1.4.0", + "md5-hex": "^1.2.0", + "merge-source-map": "^1.1.0", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.0", + "resolve-from": "^2.0.0", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.1", + "spawn-wrap": "^1.4.2", + "test-exclude": "^4.2.0", "yargs": "11.1.0", - "yargs-parser": "8.1.0" + "yargs-parser": "^8.0.0" }, "dependencies": { "align-text": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "bundled": true, + "dev": true, + "optional": 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" } }, "amdefine": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" + "bundled": true, + "dev": true }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "bundled": true, + "dev": true }, "ansi-styles": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + "bundled": true, + "dev": true }, "append-transform": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", - "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "bundled": true, + "dev": true, "requires": { - "default-require-extensions": "1.0.0" + "default-require-extensions": "^1.0.0" } }, "archy": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" + "bundled": true, + "dev": true }, "arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + "bundled": true, + "dev": true }, "arr-flatten": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + "bundled": true, + "dev": true }, "arr-union": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + "bundled": true, + "dev": true }, "array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + "bundled": true, + "dev": true }, "arrify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + "bundled": true, + "dev": true }, "assign-symbols": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + "bundled": true, + "dev": true }, "async": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + "bundled": true, + "dev": true }, "atob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", - "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=" + "bundled": true, + "dev": true }, "babel-code-frame": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "bundled": true, + "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" } }, "babel-generator": { "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "bundled": true, + "dev": true, "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" } }, "babel-messages": { "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "bundled": true, + "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-runtime": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "bundled": true, + "dev": true, "requires": { - "core-js": "2.5.6", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "bundled": true, + "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.10" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "bundled": true, + "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.10" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" } }, "babel-types": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "bundled": true, + "dev": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" + "bundled": true, + "dev": true }, "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "bundled": true, + "dev": true }, "base": { "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" + "bundled": true, + "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.2.0", + "pascalcase": "^0.1.1" }, "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, + "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, + "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "bundled": true, + "dev": true } } }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "bundled": true, + "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "braces": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "bundled": true, + "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "builtin-modules": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + "bundled": true, + "dev": true }, "cache-base": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "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" + "bundled": true, + "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" }, "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true } } }, "caching-transform": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", - "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", + "bundled": true, + "dev": true, "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" } }, "camelcase": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "bundled": true, + "dev": true, "optional": true }, "center-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "bundled": true, + "dev": true, "optional": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chalk": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "bundled": true, + "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" } }, "class-utils": { "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "bundled": true, + "dev": true, "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, + "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true } } }, "cliui": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "bundled": true, + "dev": true, "optional": 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" }, "dependencies": { "wordwrap": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "bundled": true, + "dev": true, "optional": true } } }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "bundled": true, + "dev": true }, "collection-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "bundled": true, + "dev": true, "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + "bundled": true, + "dev": true }, "component-emitter": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + "bundled": true, + "dev": true }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "bundled": true, + "dev": true }, "convert-source-map": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=" + "bundled": true, + "dev": true }, "copy-descriptor": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + "bundled": true, + "dev": true }, "core-js": { "version": "2.5.6", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.6.tgz", - "integrity": "sha512-lQUVfQi0aLix2xpyjrrJEvfuYCqPc/HwmTKsC/VNf8q0zsjX7SQZtp4+oRONN5Tsur9GDETPjj+Ub2iDiGZfSQ==" + "bundled": true, + "dev": true }, "cross-spawn": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "bundled": true, + "dev": true, "requires": { - "lru-cache": "4.1.3", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } }, "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "bundled": true, + "dev": true, "requires": { "ms": "2.0.0" } }, "debug-log": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", - "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=" + "bundled": true, + "dev": true }, "decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "bundled": true, + "dev": true }, "decode-uri-component": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + "bundled": true, + "dev": true }, "default-require-extensions": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", - "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "bundled": true, + "dev": true, "requires": { - "strip-bom": "2.0.0" + "strip-bom": "^2.0.0" } }, "define-property": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "bundled": true, + "dev": true, "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, + "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "bundled": true, + "dev": true } } }, "detect-indent": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "bundled": true, + "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "error-ex": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "bundled": true, + "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "bundled": true, + "dev": true }, "esutils": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + "bundled": true, + "dev": true }, "execa": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "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" + "bundled": true, + "dev": true, + "requires": { + "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" }, "dependencies": { "cross-spawn": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "bundled": true, + "dev": true, "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } } } }, "expand-brackets": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "bundled": true, + "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, + "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "extend-shallow": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "bundled": true, + "dev": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "bundled": true, + "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } }, "extglob": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "bundled": true, + "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, + "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, + "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "bundled": true, + "dev": true } } }, "fill-range": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "bundled": true, + "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" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "find-cache-dir": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "bundled": true, + "dev": true, "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" } }, "find-up": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "bundled": true, + "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "for-in": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + "bundled": true, + "dev": true }, "foreground-child": { "version": "1.5.6", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", - "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "bundled": true, + "dev": true, "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" + "cross-spawn": "^4", + "signal-exit": "^3.0.0" } }, "fragment-cache": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "bundled": true, + "dev": true, "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "bundled": true, + "dev": true }, "get-caller-file": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" + "bundled": true, + "dev": true }, "get-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + "bundled": true, + "dev": true }, "get-value": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + "bundled": true, + "dev": true }, "glob": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "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" + "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" } }, "globals": { "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" + "bundled": true, + "dev": true }, "graceful-fs": { "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "bundled": true, + "dev": true }, "handlebars": { "version": "4.0.11", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", - "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "bundled": true, + "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": { "source-map": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "bundled": true, + "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } }, "has-ansi": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "bundled": true, + "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "bundled": true, + "dev": true }, "has-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "bundled": true, + "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" }, "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true } } }, "has-values": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "bundled": true, + "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, + "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "kind-of": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "bundled": true, + "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "hosted-git-info": { "version": "2.6.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", - "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==" + "bundled": true, + "dev": true }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + "bundled": true, + "dev": true }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, + "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "bundled": true, + "dev": true }, "invariant": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "bundled": true, + "dev": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + "bundled": true, + "dev": true }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "bundled": true, + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "bundled": true, + "dev": true }, "is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "bundled": true, + "dev": true }, "is-builtin-module": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "bundled": true, + "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "bundled": true, + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "bundled": true, + "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": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + "bundled": true, + "dev": true } } }, "is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "bundled": true, + "dev": true }, "is-finite": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "bundled": true, + "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "bundled": true, + "dev": true }, "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-odd": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", - "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "bundled": true, + "dev": true, "requires": { - "is-number": "4.0.0" + "is-number": "^4.0.0" }, "dependencies": { "is-number": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" + "bundled": true, + "dev": true } } }, "is-plain-object": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "bundled": true, + "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true } } }, "is-stream": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "bundled": true, + "dev": true }, "is-utf8": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + "bundled": true, + "dev": true }, "is-windows": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + "bundled": true, + "dev": true }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "bundled": true, + "dev": true }, "isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "bundled": true, + "dev": true }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true }, "istanbul-lib-coverage": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", - "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==" + "bundled": true, + "dev": true }, "istanbul-lib-hook": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", - "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", + "bundled": true, + "dev": true, "requires": { - "append-transform": "0.4.0" + "append-transform": "^0.4.0" } }, "istanbul-lib-instrument": { "version": "1.10.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", - "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", + "bundled": true, + "dev": true, "requires": { - "babel-generator": "6.26.1", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.2.0", - "semver": "5.5.0" + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.0", + "semver": "^5.3.0" } }, "istanbul-lib-report": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz", - "integrity": "sha512-D4jVbMDtT2dPmloPJS/rmeP626N5Pr3Rp+SovrPn1+zPChGHcggd/0sL29jnbm4oK9W0wHjCRsdch9oLd7cm6g==", + "bundled": true, + "dev": true, "requires": { - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" }, "dependencies": { "supports-color": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "bundled": true, + "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } }, "istanbul-lib-source-maps": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz", - "integrity": "sha512-fDa0hwU/5sDXwAklXgAoCJCOsFsBplVQ6WBldz5UwaqOzmDhUK4nfuR7/G//G2lERlblUNJB8P6e8cXq3a7MlA==", - "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" + "bundled": true, + "dev": true, + "requires": { + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" }, "dependencies": { "debug": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "bundled": true, + "dev": true, "requires": { "ms": "2.0.0" } @@ -10612,1224 +11319,1225 @@ }, "istanbul-reports": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.4.0.tgz", - "integrity": "sha512-OPzVo1fPZ2H+owr8q/LYKLD+vquv9Pj4F+dj808MdHbuQLD7S4ACRjcX+0Tne5Vxt2lxXvdZaL7v+FOOAV281w==", + "bundled": true, + "dev": true, "requires": { - "handlebars": "4.0.11" + "handlebars": "^4.0.3" } }, "js-tokens": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + "bundled": true, + "dev": true }, "jsesc": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" + "bundled": true, + "dev": true }, "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, + "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lazy-cache": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "bundled": true, + "dev": true, "optional": true }, "lcid": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "bundled": true, + "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "load-json-file": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "bundled": true, + "dev": true, "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": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "bundled": true, + "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": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "bundled": true, + "dev": true } } }, "lodash": { "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" + "bundled": true, + "dev": true }, "longest": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" + "bundled": true, + "dev": true, + "optional": true }, "loose-envify": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "bundled": true, + "dev": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "lru-cache": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "bundled": true, + "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "map-cache": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + "bundled": true, + "dev": true }, "map-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "bundled": true, + "dev": true, "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "md5-hex": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", - "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", + "bundled": true, + "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", - "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=" + "bundled": true, + "dev": true }, "mem": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "bundled": true, + "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "merge-source-map": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "bundled": true, + "dev": true, "requires": { - "source-map": "0.6.1" + "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==" + "bundled": true, + "dev": true } } }, "micromatch": { "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "bundled": true, + "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "bundled": true, + "dev": true } } }, "mimic-fn": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + "bundled": true, + "dev": true }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, + "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "bundled": true, + "dev": true }, "mixin-deep": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "bundled": true, + "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": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "bundled": true, + "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, + "dev": true, "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "bundled": true, + "dev": true }, "nanomatch": { "version": "1.2.9", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", - "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "bundled": true, + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-odd": "^2.0.0", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + "bundled": true, + "dev": true }, "array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "bundled": true, + "dev": true } } }, "normalize-package-data": { "version": "2.4.0", - "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==", + "bundled": true, + "dev": true, "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "npm-run-path": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "bundled": true, + "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "bundled": true, + "dev": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "bundled": true, + "dev": true }, "object-copy": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "bundled": true, + "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": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, + "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } }, "object-visit": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "bundled": true, + "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" }, "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true } } }, "object.pick": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "bundled": true, + "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true } } }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, + "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "optimist": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "bundled": true, + "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + "bundled": true, + "dev": true }, "os-locale": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "bundled": true, + "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" } }, "p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + "bundled": true, + "dev": true }, "p-limit": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "bundled": true, + "dev": true, "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "bundled": true, + "dev": true, "requires": { - "p-limit": "1.2.0" + "p-limit": "^1.1.0" } }, "p-try": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + "bundled": true, + "dev": true }, "parse-json": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "bundled": true, + "dev": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "pascalcase": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + "bundled": true, + "dev": true }, "path-exists": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "bundled": true, + "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "bundled": true, + "dev": true }, "path-key": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + "bundled": true, + "dev": true }, "path-parse": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" + "bundled": true, + "dev": true }, "path-type": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "bundled": true, + "dev": true, "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" } }, "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + "bundled": true, + "dev": true }, "pinkie": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + "bundled": true, + "dev": true }, "pinkie-promise": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "bundled": true, + "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "bundled": true, + "dev": true, "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" }, "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "bundled": true, + "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } }, "posix-character-classes": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + "bundled": true, + "dev": true }, "pseudomap": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + "bundled": true, + "dev": true }, "read-pkg": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "bundled": true, + "dev": true, "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": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "bundled": true, + "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" }, "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "bundled": true, + "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } }, "regenerator-runtime": { "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + "bundled": true, + "dev": true }, "regex-not": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "bundled": true, + "dev": true, "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "repeat-element": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" + "bundled": true, + "dev": true }, "repeat-string": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + "bundled": true, + "dev": true }, "repeating": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "bundled": true, + "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "bundled": true, + "dev": true }, "require-main-filename": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + "bundled": true, + "dev": true }, "resolve-from": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" + "bundled": true, + "dev": true }, "resolve-url": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + "bundled": true, + "dev": true }, "ret": { "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + "bundled": true, + "dev": true }, "right-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "bundled": true, + "dev": true, "optional": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "bundled": true, + "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-regex": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "bundled": true, + "dev": true, "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "semver": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + "bundled": true, + "dev": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "bundled": true, + "dev": true }, "set-value": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "bundled": true, + "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" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "shebang-command": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "bundled": true, + "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + "bundled": true, + "dev": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + "bundled": true, + "dev": true }, "slide": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" + "bundled": true, + "dev": true }, "snapdragon": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "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": "3.1.0" + "bundled": true, + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, + "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "snapdragon-node": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "bundled": true, + "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" }, "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, + "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, + "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "bundled": true, + "dev": true } } }, "snapdragon-util": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "bundled": true, + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "bundled": true, + "dev": true }, "source-map-resolve": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", - "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "bundled": true, + "dev": true, "requires": { - "atob": "2.1.1", - "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": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + "bundled": true, + "dev": true }, "spawn-wrap": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", - "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", + "bundled": true, + "dev": true, "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.0" + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" } }, "spdx-correct": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "bundled": true, + "dev": true, "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==" + "bundled": true, + "dev": true }, "spdx-expression-parse": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "bundled": true, + "dev": true, "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==" + "bundled": true, + "dev": true }, "split-string": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "bundled": true, + "dev": true, "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "static-extend": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "bundled": true, + "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": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, + "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } }, "string-width": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "bundled": true, + "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" }, "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "bundled": true, + "dev": true }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "bundled": true, + "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, + "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "bundled": true, + "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + "bundled": true, + "dev": true }, "supports-color": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "bundled": true, + "dev": true }, "test-exclude": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", - "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", - "requires": { - "arrify": "1.0.1", - "micromatch": "3.1.10", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" + "bundled": true, + "dev": true, + "requires": { + "arrify": "^1.0.1", + "micromatch": "^3.1.8", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" }, "dependencies": { "arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + "bundled": true, + "dev": true }, "array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + "bundled": true, + "dev": true }, "braces": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "bundled": true, + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "expand-brackets": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "bundled": true, + "dev": true, + "requires": { + "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": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, + "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "bundled": true, + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, + "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "bundled": true, + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, + "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "is-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "bundled": true, + "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": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + "bundled": true, + "dev": true } } }, "extglob": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "bundled": true, + "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" }, "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, + "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "fill-range": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "bundled": true, + "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" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, + "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, + "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "bundled": true, + "dev": true }, "micromatch": { "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "bundled": true, + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } }, "to-fast-properties": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" + "bundled": true, + "dev": true }, "to-object-path": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "bundled": true, + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "bundled": true, + "dev": true, "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "bundled": true, + "dev": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "dependencies": { "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } } } }, "trim-right": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" + "bundled": true, + "dev": true }, "uglify-js": { "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "bundled": true, + "dev": true, "optional": 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" }, "dependencies": { "yargs": { "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "bundled": true, + "dev": true, "optional": 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" } } @@ -11837,65 +12545,65 @@ }, "uglify-to-browserify": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "bundled": true, + "dev": true, "optional": true }, "union-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "bundled": true, + "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": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, + "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "bundled": true, + "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" } } } }, "unset-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "bundled": true, + "dev": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "bundled": true, + "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": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "bundled": true, + "dev": true, "requires": { "isarray": "1.0.0" } @@ -11904,192 +12612,192 @@ }, "has-values": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + "bundled": true, + "dev": true }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "bundled": true, + "dev": true } } }, "urix": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + "bundled": true, + "dev": true }, "use": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", - "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "bundled": true, + "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "bundled": true, + "dev": true } } }, "validate-npm-package-license": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", - "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", + "bundled": true, + "dev": true, "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "which": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "bundled": true, + "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + "bundled": true, + "dev": true }, "window-size": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "bundled": true, + "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" + "bundled": true, + "dev": true }, "wrap-ansi": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "bundled": true, + "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, + "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "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" } } } }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "bundled": true, + "dev": true }, "write-file-atomic": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", - "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", + "bundled": true, + "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } }, "y18n": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + "bundled": true, + "dev": true }, "yallist": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + "bundled": true, + "dev": true }, "yargs": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", - "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", - "requires": { - "cliui": "4.1.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": "9.0.2" + "bundled": true, + "dev": true, + "requires": { + "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": "^9.0.2" }, "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "bundled": true, + "dev": true }, "camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + "bundled": true, + "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==", + "bundled": true, + "dev": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" } }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "bundled": true, + "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "yargs-parser": { "version": "9.0.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "bundled": true, + "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } }, "yargs-parser": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", - "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", + "bundled": true, + "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + "bundled": true, + "dev": true } } } @@ -12116,9 +12824,9 @@ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "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": { @@ -12126,7 +12834,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -12146,7 +12854,7 @@ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" }, "dependencies": { "isobject": { @@ -12162,8 +12870,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "optional": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "object.pick": { @@ -12171,7 +12879,7 @@ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -12192,7 +12900,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -12200,7 +12908,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "optimist": { @@ -12209,8 +12917,8 @@ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" }, "dependencies": { "wordwrap": { @@ -12226,27 +12934,27 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" } }, "os-homedir": { "version": "1.0.2", - "resolved": "http://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" } }, "os-name": { @@ -12255,13 +12963,13 @@ "integrity": "sha512-7c74tib2FsdFbQ3W+qj8Tyd1R3Z6tuVRNNxXjJcZ4NgjIEQU9N/prVMqcW29XZPXGACqaXN3jq58/6hoaoXH6g==", "dev": true, "requires": { - "macos-release": "2.0.0", - "windows-release": "3.1.0" + "macos-release": "^2.0.0", + "windows-release": "^3.1.0" } }, "os-tmpdir": { "version": "1.0.2", - "resolved": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "output-file-sync": { @@ -12269,16 +12977,15 @@ "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", "requires": { - "graceful-fs": "4.1.15", - "mkdirp": "0.5.1", - "object-assign": "4.1.1" + "graceful-fs": "^4.1.4", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.0" } }, "p-defer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" }, "p-filter": { "version": "1.0.0", @@ -12286,7 +12993,7 @@ "integrity": "sha1-Yp0xcVAgnI/VCLoTdxPvS7kg6ds=", "dev": true, "requires": { - "p-map": "1.2.0" + "p-map": "^1.0.0" } }, "p-finally": { @@ -12297,15 +13004,14 @@ "p-is-promise": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.0.0.tgz", - "integrity": "sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg==", - "dev": true + "integrity": "sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg==" }, "p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -12313,7 +13019,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { - "p-limit": "1.3.0" + "p-limit": "^1.1.0" } }, "p-map": { @@ -12329,12 +13035,12 @@ "dev": true }, "p-retry": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.0.tgz", - "integrity": "sha512-fAB7bebxaj8nylNAsxPNkwPZ/48bXFdFnWrz0v2sV+H5BsGfVL7Ap7KgONqy7rOK4ZI1I+SU+lmettO3hM+2HQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", "dev": true, "requires": { - "retry": "0.12.0" + "retry": "^0.12.0" } }, "p-try": { @@ -12342,6 +13048,23 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" }, + "parent-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.0.tgz", + "integrity": "sha512-8Mf5juOMmiE4FcmzYc4IaiS9L3+9paz2KOiXzkRviCP6aDmN49Hz6EMWz0lGNp9pX80GvvAuLADtyGfW/Em3TA==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + }, + "dependencies": { + "callsites": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.0.0.tgz", + "integrity": "sha512-tWnkwu9YEq2uzlBDI4RcLn8jrFvF9AOi8PxDNU3hZZjJcjkcRAq3vCI+vZcg1SuxISDYe86k9VZFwAxDiJGoAw==", + "dev": true + } + } + }, "parse-github-url": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-github-url/-/parse-github-url-1.0.2.tgz", @@ -12354,10 +13077,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "optional": 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" } }, "parse-json": { @@ -12365,7 +13088,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "1.3.2" + "error-ex": "^1.2.0" } }, "parseqs": { @@ -12373,7 +13096,7 @@ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseuri": { @@ -12381,7 +13104,7 @@ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseurl": { @@ -12402,16 +13125,13 @@ "dev": true }, "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "2.0.1" - } + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" }, "path-is-absolute": { "version": "1.0.1", - "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-is-inside": { @@ -12451,7 +13171,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { - "pify": "2.3.0" + "pify": "^2.0.0" } }, "pathval": { @@ -12465,11 +13185,11 @@ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", "requires": { - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "performance-now": { @@ -12480,48 +13200,27 @@ }, "pify": { "version": "2.3.0", - "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "2.0.4" - } - }, "pkg-conf": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", "requires": { - "find-up": "2.1.0", - "load-json-file": "4.0.0" + "find-up": "^2.0.0", + "load-json-file": "^4.0.0" }, "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "2.0.0" - } - }, "load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "requires": { - "graceful-fs": "4.1.15", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "parse-json": { @@ -12529,8 +13228,8 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "pify": { @@ -12545,17 +13244,17 @@ "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=", "requires": { - "debug-log": "1.0.1", - "find-root": "1.1.0", - "xtend": "4.0.1" + "debug-log": "^1.0.0", + "find-root": "^1.0.0", + "xtend": "^4.0.1" } }, "pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "requires": { - "find-up": "1.1.2" + "find-up": "^2.1.0" } }, "pluralize": { @@ -12585,9 +13284,9 @@ "optional": true }, "prettier": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.15.3.tgz", - "integrity": "sha512-gAU9AGAPMaKb3NNSUUuhhFAS7SCO4ALTN4nRIn6PJ075Qd28Yn2Ig2ahEJWdJwJmlEBTUfC7mMUSFy8MwsOCfg==", + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.16.3.tgz", + "integrity": "sha512-kn/GU6SMRYPxUakNXhpP0EedT/KmaPzr0H5lIsDogrykbaxOpOfAFfk5XA7DZrJyMAv1wlMV3CPcZruGXVVUZw==", "dev": true }, "private": { @@ -12610,8 +13309,8 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", "requires": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1" + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" } }, "pseudomap": { @@ -12629,10 +13328,9 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, "punycode": { @@ -12643,10 +13341,10 @@ }, "pushdata-bitcoin": { "version": "1.0.1", - "resolved": "http://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", "integrity": "sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=", "requires": { - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646" + "bitcoin-ops": "^1.3.0" } }, "q": { @@ -12656,15 +13354,15 @@ "dev": true }, "qrcode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.3.2.tgz", - "integrity": "sha512-sYo+Tf7nx14YZSNPqnyEWefVrjUEpM4/NxOrxOk+jcQ9NhM2LCNuzGmQctDhGTQdO2YJorKY55dypx+hvVo5jw==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.3.3.tgz", + "integrity": "sha512-SH7V13AcJusH3GT8bMNOGz4w0L+LjcpNOU/NiOgtBhT/5DoWeZE6D5ntMJnJ84AMkoaM4kjJJoHoh9g++8lWFg==", "requires": { "can-promise": "0.0.1", - "dijkstrajs": "1.0.1", - "isarray": "2.0.4", - "pngjs": "3.3.3", - "yargs": "8.0.2" + "dijkstrajs": "^1.0.1", + "isarray": "^2.0.1", + "pngjs": "^3.3.0", + "yargs": "^12.0.5" }, "dependencies": { "isarray": { @@ -12691,9 +13389,9 @@ "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", "optional": true, "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.1" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "dependencies": { "is-number": { @@ -12715,7 +13413,7 @@ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.0" } }, "range-parser": { @@ -12730,15 +13428,15 @@ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "requires": { - "deep-extend": "0.6.0", - "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": { "minimist": { "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true } @@ -12749,9 +13447,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "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": { @@ -12759,32 +13457,22 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "2.0.0" - } - } + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" } }, "readable-stream": { "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "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" }, "dependencies": { "inherits": { @@ -12800,9 +13488,9 @@ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "optional": true, "requires": { - "graceful-fs": "4.1.15", - "micromatch": "3.1.10", - "readable-stream": "2.3.6" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" }, "dependencies": { "arr-diff": { @@ -12814,7 +13502,8 @@ "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "optional": true }, "braces": { "version": "2.3.2", @@ -12822,16 +13511,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "optional": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -12840,7 +13529,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "optional": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -12860,13 +13549,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "optional": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -12875,7 +13564,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "optional": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -12884,16 +13573,16 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "optional": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "http://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -12902,18 +13591,18 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "optional": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "http://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -12922,7 +13611,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "optional": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -12933,9 +13622,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "optional": 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": { @@ -12952,14 +13641,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "optional": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { @@ -12968,7 +13657,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "optional": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -12977,7 +13666,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "optional": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -12988,10 +13677,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "optional": 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" }, "dependencies": { "extend-shallow": { @@ -13000,7 +13689,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "optional": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -13011,7 +13700,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "optional": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -13020,7 +13709,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "optional": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -13029,9 +13718,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "optional": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-number": { @@ -13040,7 +13729,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -13049,7 +13738,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "optional": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -13063,7 +13752,8 @@ "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "optional": true }, "micromatch": { "version": "3.1.10", @@ -13071,19 +13761,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "optional": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } @@ -13094,8 +13784,8 @@ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", "dev": true, "requires": { - "indent-string": "3.2.0", - "strip-indent": "2.0.0" + "indent-string": "^3.0.0", + "strip-indent": "^2.0.0" } }, "redeyed": { @@ -13104,7 +13794,7 @@ "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=", "dev": true, "requires": { - "esprima": "4.0.1" + "esprima": "~4.0.0" } }, "regenerate": { @@ -13122,9 +13812,9 @@ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.8" + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" } }, "regex-cache": { @@ -13133,7 +13823,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "optional": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "regex-not": { @@ -13141,8 +13831,8 @@ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "regexpp": { @@ -13153,12 +13843,12 @@ }, "regexpu-core": { "version": "2.0.0", - "resolved": "http://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "requires": { - "regenerate": "1.4.0", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "registry-auth-token": { @@ -13167,26 +13857,26 @@ "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", "dev": true, "requires": { - "rc": "1.2.8", - "safe-buffer": "5.1.2" + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" } }, "regjsgen": { "version": "0.2.0", - "resolved": "http://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" }, "regjsparser": { "version": "0.1.5", - "resolved": "http://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { "version": "0.5.0", - "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" } } @@ -13194,7 +13884,8 @@ "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "optional": true }, "repeat-element": { "version": "1.1.3", @@ -13211,7 +13902,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" } }, "repl.history": { @@ -13225,26 +13916,26 @@ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "dev": true, "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.8.0", - "caseless": "0.12.0", - "combined-stream": "1.0.7", - "extend": "3.0.2", - "forever-agent": "0.6.1", - "form-data": "2.3.3", - "har-validator": "5.1.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.21", - "oauth-sign": "0.9.0", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.4.3", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" }, "dependencies": { "qs": { @@ -13267,19 +13958,19 @@ }, "require-uncached": { "version": "1.0.3", - "resolved": "http://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" } }, "resolve": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.9.0.tgz", - "integrity": "sha512-TZNye00tI67lwYvzxCxHGjwTNlUV70io54/Ed4j6PscB8xVfuBJpRenI/o6dVk0cY0PYTY27AgCoGGxRnYuItQ==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", + "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", "requires": { - "path-parse": "1.0.6" + "path-parse": "^1.0.6" } }, "resolve-from": { @@ -13297,8 +13988,8 @@ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "resumer": { @@ -13306,7 +13997,7 @@ "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", "requires": { - "through": "2.3.8" + "through": "~2.3.4" } }, "ret": { @@ -13321,11 +14012,11 @@ "dev": true }, "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "requires": { - "glob": "7.1.3" + "glob": "^7.1.3" } }, "ripemd160": { @@ -13333,8 +14024,8 @@ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.1" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, "run-async": { @@ -13342,7 +14033,7 @@ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, "run-parallel": { @@ -13360,16 +14051,16 @@ "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "requires": { - "rx-lite": "4.0.8" + "rx-lite": "*" } }, "rxjs": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", - "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", "dev": true, "requires": { - "tslib": "1.9.3" + "tslib": "^1.9.0" } }, "safe-buffer": { @@ -13379,10 +14070,10 @@ }, "safe-regex": { "version": "1.1.0", - "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "safer-buffer": { @@ -13401,7 +14092,7 @@ "resolved": "https://registry.npmjs.org/satoshi-bitcoin/-/satoshi-bitcoin-1.0.4.tgz", "integrity": "sha1-0AK2dwddXLvywhGo3zJUvN9QseQ=", "requires": { - "big.js": "3.2.0" + "big.js": "^3.1.3" } }, "scryptsy": { @@ -13410,112 +14101,61 @@ "integrity": "sha1-Jiw28CMc+nZU4jY/o5TNLexm83g=" }, "secp256k1": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.6.0.tgz", - "integrity": "sha512-a+oKfu2XWhq6Zzj7TexlYpwdnCEtJUUdLaujUclplPkV+INdMaV9D+81wYldm/g4/2PTFoNYZf/+0rHhTPgzjQ==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.6.2.tgz", + "integrity": "sha512-90nYt7yb0LmI4A2jJs1grglkTAXrBwxYAjP9bpeKjvJKOjG2fOeH/YI/lchDMIvjrOasd5QXwvV2jwN168xNng==", "requires": { - "bindings": "1.3.1", - "bip66": "1.1.5", - "bn.js": "4.11.8", - "create-hash": "1.2.0", - "drbg.js": "1.0.1", - "elliptic": "6.4.1", - "nan": "2.12.1", - "safe-buffer": "5.1.2" + "bindings": "^1.2.1", + "bip66": "^1.1.3", + "bn.js": "^4.11.3", + "create-hash": "^1.1.2", + "drbg.js": "^1.0.1", + "elliptic": "^6.2.3", + "nan": "^2.2.1", + "safe-buffer": "^5.1.0" } }, "semantic-release": { - "version": "15.13.1", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-15.13.1.tgz", - "integrity": "sha512-bkrfQ10BhbJRMeq/Ih9DZ9FO4ffDwFYsRR134JP9JvQSf8GVX4sg3SnFFd7Q10C6pKwjKqMZ4+ZNB5uQYMLPEg==", + "version": "15.13.3", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-15.13.3.tgz", + "integrity": "sha512-cax0xPPTtsxHlrty2HxhPql2TTvS74Ni2O8BzwFHxNY/mviVKEhI4OxHzBYJkpVxx1fMVj36+oH7IlP+SJtPNA==", "dev": true, "requires": { - "@semantic-release/commit-analyzer": "6.1.0", - "@semantic-release/error": "2.2.0", - "@semantic-release/github": "5.2.7", - "@semantic-release/npm": "5.1.2", - "@semantic-release/release-notes-generator": "7.1.4", - "aggregate-error": "1.0.0", - "cosmiconfig": "5.0.7", - "debug": "4.1.1", - "env-ci": "3.1.3", - "execa": "1.0.0", - "figures": "2.0.0", - "find-versions": "3.0.0", - "get-stream": "4.1.0", - "git-log-parser": "1.2.0", - "hook-std": "1.2.0", - "hosted-git-info": "2.7.1", - "lodash": "4.17.11", - "marked": "0.5.2", - "marked-terminal": "3.1.1", - "p-locate": "3.0.0", - "p-reduce": "1.0.0", - "read-pkg-up": "4.0.0", - "resolve-from": "4.0.0", - "semver": "5.6.0", - "signale": "1.3.0", - "yargs": "12.0.5" + "@semantic-release/commit-analyzer": "^6.1.0", + "@semantic-release/error": "^2.2.0", + "@semantic-release/github": "^5.1.0", + "@semantic-release/npm": "^5.0.5", + "@semantic-release/release-notes-generator": "^7.1.2", + "aggregate-error": "^2.0.0", + "cosmiconfig": "^5.0.1", + "debug": "^4.0.0", + "env-ci": "^3.0.0", + "execa": "^1.0.0", + "figures": "^2.0.0", + "find-versions": "^3.0.0", + "get-stream": "^4.0.0", + "git-log-parser": "^1.2.0", + "hook-std": "^1.1.0", + "hosted-git-info": "^2.7.1", + "lodash": "^4.17.4", + "marked": "^0.6.0", + "marked-terminal": "^3.2.0", + "p-locate": "^3.0.0", + "p-reduce": "^1.0.0", + "read-pkg-up": "^4.0.0", + "resolve-from": "^4.0.0", + "semver": "^5.4.1", + "signale": "^1.2.1", + "yargs": "^12.0.0" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "camelcase": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", - "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", - "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.1.0" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.6.0", - "shebang-command": "1.2.0", - "which": "1.3.1" - } - }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "ms": "2.1.1" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "6.0.5", - "get-stream": "4.1.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" + "ms": "^2.1.1" } }, "find-up": { @@ -13524,31 +14164,7 @@ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { - "locate-path": "3.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "3.0.0" - } - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "2.0.0" + "locate-path": "^3.0.0" } }, "load-json-file": { @@ -13557,10 +14173,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "locate-path": { @@ -13569,19 +14185,8 @@ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" - } - }, - "mem": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.0.0.tgz", - "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==", - "dev": true, - "requires": { - "map-age-cleaner": "0.1.3", - "mimic-fn": "1.2.0", - "p-is-promise": "1.1.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, "ms": { @@ -13590,30 +14195,13 @@ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "requires": { - "execa": "1.0.0", - "lcid": "2.0.0", - "mem": "4.0.0" - } - }, - "p-is-promise": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", - "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", - "dev": true - }, "p-limit": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz", "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==", "dev": true, "requires": { - "p-try": "2.0.0" + "p-try": "^2.0.0" } }, "p-locate": { @@ -13622,7 +14210,7 @@ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { - "p-limit": "2.1.0" + "p-limit": "^2.0.0" } }, "p-try": { @@ -13637,23 +14225,17 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, "path-type": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "pify": { @@ -13668,9 +14250,9 @@ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "4.0.0", - "normalize-package-data": "2.4.0", - "path-type": "3.0.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" } }, "read-pkg-up": { @@ -13679,8 +14261,8 @@ "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", "dev": true, "requires": { - "find-up": "3.0.0", - "read-pkg": "3.0.0" + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" } }, "resolve-from": { @@ -13688,45 +14270,6 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - }, - "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "dev": true, - "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "3.0.0", - "get-caller-file": "1.0.3", - "os-locale": "3.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": "11.1.1" - } - }, - "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "dev": true, - "requires": { - "camelcase": "5.0.0", - "decamelize": "1.2.0" - } } } }, @@ -13751,10 +14294,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "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" }, "dependencies": { "extend-shallow": { @@ -13762,18 +14305,18 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "sha.js": { "version": "2.4.11", - "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "shebang-command": { @@ -13781,7 +14324,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -13800,24 +14343,24 @@ "integrity": "sha512-TyFhsQ9wZDYDfsPqWMyjCxsDoMwfpsT0130Mce7wDiVCSDdtWSg83dOqoj8aGpGCs3n1YPcam6sT1OFPuGT/OQ==", "dev": true, "requires": { - "chalk": "2.4.1", - "figures": "2.0.0", - "pkg-conf": "2.1.0" + "chalk": "^2.3.2", + "figures": "^2.0.0", + "pkg-conf": "^2.1.0" } }, "sinon": { "version": "4.5.0", - "resolved": "http://registry.npmjs.org/sinon/-/sinon-4.5.0.tgz", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-4.5.0.tgz", "integrity": "sha512-trdx+mB0VBBgoYucy6a9L7/jfQOmvGeaKZT4OOJ+lPAtI8623xyGr8wLiE4eojzBS8G9yXbhx42GHUOVLr4X2w==", "dev": true, "requires": { - "@sinonjs/formatio": "2.0.0", - "diff": "3.5.0", - "lodash.get": "4.4.2", - "lolex": "2.7.5", - "nise": "1.4.8", - "supports-color": "5.5.0", - "type-detect": "4.0.8" + "@sinonjs/formatio": "^2.0.0", + "diff": "^3.1.0", + "lodash.get": "^4.4.2", + "lolex": "^2.2.0", + "nise": "^1.2.0", + "supports-color": "^5.1.0", + "type-detect": "^4.0.5" }, "dependencies": { "supports-color": { @@ -13826,7 +14369,7 @@ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -13841,7 +14384,7 @@ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "requires": { - "is-fullwidth-code-point": "2.0.0" + "is-fullwidth-code-point": "^2.0.0" } }, "snapdragon": { @@ -13849,14 +14392,14 @@ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "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.2", - "use": "3.1.1" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "debug": { @@ -13872,7 +14415,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -13880,7 +14423,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -13890,9 +14433,9 @@ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "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" }, "dependencies": { "define-property": { @@ -13900,7 +14443,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -13908,7 +14451,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -13916,7 +14459,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -13924,9 +14467,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -13946,7 +14489,7 @@ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "socket.io": { @@ -13954,12 +14497,12 @@ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.2.0.tgz", "integrity": "sha512-wxXrIuZ8AILcn+f1B4ez4hJTPG24iNgxBBDaJfT6MsyOhVYiTXWexGoPkd87ktJG8kQEcL/NBvRi64+9k4Kc0w==", "requires": { - "debug": "4.1.1", - "engine.io": "3.3.2", - "has-binary2": "1.0.3", - "socket.io-adapter": "1.1.1", + "debug": "~4.1.0", + "engine.io": "~3.3.1", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", "socket.io-client": "2.2.0", - "socket.io-parser": "3.3.0" + "socket.io-parser": "~3.3.0" }, "dependencies": { "debug": { @@ -13967,7 +14510,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "ms": { @@ -13991,15 +14534,15 @@ "base64-arraybuffer": "0.1.5", "component-bind": "1.0.0", "component-emitter": "1.2.1", - "debug": "3.1.0", - "engine.io-client": "3.3.1", - "has-binary2": "1.0.3", + "debug": "~3.1.0", + "engine.io-client": "~3.3.1", + "has-binary2": "~1.0.2", "has-cors": "1.1.0", "indexof": "0.0.1", "object-component": "0.0.3", "parseqs": "0.0.5", "parseuri": "0.0.5", - "socket.io-parser": "3.3.0", + "socket.io-parser": "~3.3.0", "to-array": "0.1.4" } }, @@ -14009,7 +14552,7 @@ "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==", "requires": { "component-emitter": "1.2.1", - "debug": "3.1.0", + "debug": "~3.1.0", "isarray": "2.0.1" }, "dependencies": { @@ -14030,11 +14573,11 @@ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "requires": { - "atob": "2.1.2", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -14042,7 +14585,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } }, "source-map-url": { @@ -14061,8 +14604,8 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.3" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -14075,8 +14618,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "2.2.0", - "spdx-license-ids": "3.0.3" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -14090,7 +14633,7 @@ "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dev": true, "requires": { - "through": "2.3.8" + "through": "2" } }, "split-string": { @@ -14098,7 +14641,7 @@ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "split2": { @@ -14107,45 +14650,45 @@ "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", "dev": true, "requires": { - "through2": "2.0.5" + "through2": "^2.0.2" } }, "sprintf-js": { "version": "1.0.3", - "resolved": "http://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, "sshpk": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.0.tgz", - "integrity": "sha512-Zhev35/y7hRMcID/upReIvRse+I9SVhyVre/KTJSJQWMz3C3+G+HpO7m1wK/yckEtujKZ7dS4hkVxAnmHaIGVQ==", + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "dev": true, "requires": { - "asn1": "0.2.4", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.2", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.2", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "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", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" } }, "standard": { "version": "11.0.1", - "resolved": "http://registry.npmjs.org/standard/-/standard-11.0.1.tgz", + "resolved": "https://registry.npmjs.org/standard/-/standard-11.0.1.tgz", "integrity": "sha512-nu0jAcHiSc8H+gJCXeiziMVZNDYi8MuqrYJKxTgjP4xKXZMKm311boqQIzDrYI/ktosltxt2CbDjYQs9ANC8IA==", "requires": { - "eslint": "4.18.2", + "eslint": "~4.18.0", "eslint-config-standard": "11.0.0", "eslint-config-standard-jsx": "5.0.0", - "eslint-plugin-import": "2.9.0", - "eslint-plugin-node": "6.0.1", - "eslint-plugin-promise": "3.7.0", - "eslint-plugin-react": "7.7.0", - "eslint-plugin-standard": "3.0.1", - "standard-engine": "8.0.1" + "eslint-plugin-import": "~2.9.0", + "eslint-plugin-node": "~6.0.0", + "eslint-plugin-promise": "~3.7.0", + "eslint-plugin-react": "~7.7.0", + "eslint-plugin-standard": "~3.0.1", + "standard-engine": "~8.0.0" }, "dependencies": { "ansi-regex": { @@ -14155,88 +14698,88 @@ }, "eslint": { "version": "4.18.2", - "resolved": "http://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", "requires": { - "ajv": "5.5.2", - "babel-code-frame": "6.26.0", - "chalk": "2.4.1", - "concat-stream": "1.6.2", - "cross-spawn": "5.1.0", - "debug": "3.1.0", - "doctrine": "2.1.0", - "eslint-scope": "3.7.3", - "eslint-visitor-keys": "1.0.0", - "espree": "3.5.4", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.3", - "globals": "11.9.0", - "ignore": "3.3.10", - "imurmurhash": "0.1.4", - "inquirer": "3.3.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.12.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.3", - "require-uncached": "1.0.3", - "semver": "5.6.0", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.2", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", "table": "4.0.2", - "text-table": "0.2.0" + "text-table": "~0.2.0" } }, "eslint-plugin-node": { "version": "6.0.1", - "resolved": "http://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz", "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", "requires": { - "ignore": "3.3.10", - "minimatch": "3.0.4", - "resolve": "1.9.0", - "semver": "5.6.0" + "ignore": "^3.3.6", + "minimatch": "^3.0.4", + "resolve": "^1.3.3", + "semver": "^5.4.1" } }, "globals": { - "version": "11.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz", - "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==" + "version": "11.10.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.10.0.tgz", + "integrity": "sha512-0GZF1RiPKU97IHUO5TORo9w1PwrH/NBPl+fS7oMLdaTRiYmYbwK4NWoZWrAdd0/abG9R2BU+OiwyQpTpE6pdfQ==" }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } }, "standard-engine": { "version": "8.0.1", - "resolved": "http://registry.npmjs.org/standard-engine/-/standard-engine-8.0.1.tgz", + "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-8.0.1.tgz", "integrity": "sha512-LA531C3+nljom/XRvdW/hGPXwmilRkaRkENhO3FAGF1Vtq/WtCXzgmnc5S6vUHHsgv534MRy02C1ikMwZXC+tw==", "requires": { - "deglob": "2.1.1", - "get-stdin": "6.0.0", - "minimist": "1.2.0", - "pkg-conf": "2.1.0" + "deglob": "^2.1.0", + "get-stdin": "^6.0.0", + "minimist": "^1.1.0", + "pkg-conf": "^2.0.0" }, "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" } } @@ -14246,8 +14789,8 @@ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { @@ -14255,7 +14798,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -14266,8 +14809,8 @@ "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", "dev": true, "requires": { - "duplexer2": "0.1.4", - "readable-stream": "2.3.6" + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" } }, "string-width": { @@ -14275,8 +14818,8 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "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" }, "dependencies": { "ansi-regex": { @@ -14289,7 +14832,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -14299,25 +14842,25 @@ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.12.0", - "function-bind": "1.1.1" + "define-properties": "^1.1.2", + "es-abstract": "^1.5.0", + "function-bind": "^1.0.2" } }, "string_decoder": { "version": "1.1.1", - "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { "version": "3.0.1", - "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "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": { @@ -14327,7 +14870,7 @@ }, "strip-eof": { "version": "1.0.0", - "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, "strip-indent": { @@ -14343,40 +14886,75 @@ }, "supports-color": { "version": "2.0.0", - "resolved": "http://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" }, + "supports-hyperlinks": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz", + "integrity": "sha512-HHi5kVSefKaJkGYXbDuKbUGRVxqnWGn3J2e39CYcNJEfWciGq2zYtOhXLTlvrOZW1QU7VX67w7fMmWafHX9Pfw==", + "dev": true, + "requires": { + "has-flag": "^2.0.0", + "supports-color": "^5.0.0" + }, + "dependencies": { + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + }, + "dependencies": { + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + } + } + } + } + }, "table": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "chalk": "2.4.1", - "lodash": "4.17.11", + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "string-width": "^2.1.1" } }, "tape": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/tape/-/tape-4.9.1.tgz", - "integrity": "sha512-6fKIXknLpoe/Jp4rzHKFPpJUHDHDqn8jus99IfPnHIjyz78HYlefTGD3b5EkbQzuLfaEvmfPK3IolLgq2xT3kw==", - "requires": { - "deep-equal": "1.0.1", - "defined": "1.0.0", - "for-each": "0.3.3", - "function-bind": "1.1.1", - "glob": "7.1.3", - "has": "1.0.3", - "inherits": "2.0.3", - "minimist": "1.2.0", - "object-inspect": "1.6.0", - "resolve": "1.7.1", - "resumer": "0.0.0", - "string.prototype.trim": "1.1.2", - "through": "2.3.8" + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/tape/-/tape-4.9.2.tgz", + "integrity": "sha512-lPXKRKILZ1kZaUy5ynWKs8ATGSUO7HAFHCFnBam6FaGSqPdOwMWbxXHq4EXFLE8WRTleo/YOMXkaUTRmTB1Fiw==", + "requires": { + "deep-equal": "~1.0.1", + "defined": "~1.0.0", + "for-each": "~0.3.3", + "function-bind": "~1.1.1", + "glob": "~7.1.2", + "has": "~1.0.3", + "inherits": "~2.0.3", + "minimist": "~1.2.0", + "object-inspect": "~1.6.0", + "resolve": "~1.7.1", + "resumer": "~0.0.0", + "string.prototype.trim": "~1.1.2", + "through": "~2.3.8" }, "dependencies": { "inherits": { @@ -14386,22 +14964,22 @@ }, "minimist": { "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, "resolve": { "version": "1.7.1", - "resolved": "http://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", "requires": { - "path-parse": "1.0.6" + "path-parse": "^1.0.5" } } } }, "text-encoding": { "version": "0.6.4", - "resolved": "http://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", + "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", "integrity": "sha1-45mpgiV6J22uQou5KEXLcb3CbRk=", "dev": true }, @@ -14418,7 +14996,7 @@ }, "through": { "version": "2.3.8", - "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "through2": { @@ -14427,8 +15005,8 @@ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, "tmp": { @@ -14436,7 +15014,7 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "to-array": { @@ -14454,7 +15032,7 @@ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { @@ -14462,10 +15040,10 @@ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { @@ -14473,8 +15051,8 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "dependencies": { "is-number": { @@ -14482,7 +15060,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } } } @@ -14492,7 +15070,7 @@ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", "requires": { - "nopt": "1.0.10" + "nopt": "~1.0.10" } }, "tough-cookie": { @@ -14501,8 +15079,8 @@ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "dev": true, "requires": { - "psl": "1.1.31", - "punycode": "1.4.1" + "psl": "^1.1.24", + "punycode": "^1.4.1" }, "dependencies": { "punycode": { @@ -14548,7 +15126,7 @@ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -14562,7 +15140,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-detect": { @@ -14578,7 +15156,7 @@ "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.21" + "mime-types": "~2.1.18" } }, "typedarray": { @@ -14598,8 +15176,8 @@ "dev": true, "optional": true, "requires": { - "commander": "2.17.1", - "source-map": "0.6.1" + "commander": "~2.17.1", + "source-map": "~0.6.1" }, "dependencies": { "commander": { @@ -14623,10 +15201,10 @@ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "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": { "extend-shallow": { @@ -14634,7 +15212,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { @@ -14642,10 +15220,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "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" } } } @@ -14656,12 +15234,12 @@ "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" }, "universal-user-agent": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-2.0.2.tgz", - "integrity": "sha512-nOwvHWLH3dBazyuzbECPA5uVFNd7AlgviXRHgR4yf48QqitIvpdncRrxMbZNMpPPEfgz30I9ubd1XmiJiqsTrg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-2.0.3.tgz", + "integrity": "sha512-eRHEHhChCBHrZsA4WEhdgiOKgdvgrMIHwnwnqD0r5C6AO8kwKcG7qSku3iXdhvHL3YvsS9ZkSGN8h/hIpoFC8g==", "dev": true, "requires": { - "os-name": "3.0.0" + "os-name": "^3.0.0" } }, "universalify": { @@ -14680,8 +15258,8 @@ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -14689,9 +15267,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "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": { @@ -14722,7 +15300,7 @@ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "requires": { - "punycode": "2.1.1" + "punycode": "^2.1.0" } }, "urix": { @@ -14754,7 +15332,7 @@ }, "util": { "version": "0.10.3", - "resolved": "http://registry.npmjs.org/util/-/util-0.10.3.tgz", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "requires": { "inherits": "2.0.1" @@ -14776,7 +15354,7 @@ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "requires": { - "user-home": "1.1.1" + "user-home": "^1.1.1" } }, "validate-npm-package-license": { @@ -14784,8 +15362,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "requires": { - "spdx-correct": "3.1.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "varuint-bitcoin": { @@ -14793,7 +15371,7 @@ "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz", "integrity": "sha512-jCEPG+COU/1Rp84neKTyDJQr478/hAfVp5xxYn09QEH0yBjbmPeMfuuQIrp+BUD83hybtYZKhr5elV3bvdV1bA==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.1" } }, "verror": { @@ -14802,9 +15380,9 @@ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": 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" } }, "which": { @@ -14812,7 +15390,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -14825,7 +15403,7 @@ "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", "requires": { - "bs58check": "2.1.2" + "bs58check": "<3.0.0" } }, "window-or-global": { @@ -14839,7 +15417,7 @@ "integrity": "sha512-hBb7m7acFgQPQc222uEQTmdcGLeBmQLNLFIh0rDk3CwFOBrfjefLzEfEfmpMq8Af/n/GnFf3eYf203FY1PmudA==", "dev": true, "requires": { - "execa": "0.10.0" + "execa": "^0.10.0" }, "dependencies": { "cross-spawn": { @@ -14848,11 +15426,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.6.0", - "shebang-command": "1.2.0", - "which": "1.3.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "execa": { @@ -14861,14 +15439,20 @@ "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", "dev": true, "requires": { - "cross-spawn": "6.0.5", - "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": "^6.0.0", + "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" } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true } } }, @@ -14879,11 +15463,11 @@ }, "wrap-ansi": { "version": "2.1.0", - "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -14891,17 +15475,17 @@ "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" } }, "string-width": { "version": "1.0.2", - "resolved": "http://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "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" } } } @@ -14916,15 +15500,15 @@ "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "ws": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.2.tgz", - "integrity": "sha512-rfUqzvz0WxmSXtJpPMX2EeASXabOrSMk1ruMOV3JBTBjo4ac2lDjGGsbQSyxj8Odhw5fBib8ZKEjDNvgouNKYw==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.3.tgz", + "integrity": "sha512-tbSxiT+qJI223AP4iLfQbkbxkwdFcneYinM2+x46Gx2wgvbaOMO36czfdfVUBRTHvzAMRhDd98sA5d/BuWbQdg==", "requires": { - "async-limiter": "1.0.0" + "async-limiter": "~1.0.0" } }, "xmlhttprequest-ssl": { @@ -14938,9 +15522,9 @@ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" }, "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" }, "yallist": { "version": "2.1.2", @@ -14948,31 +15532,71 @@ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" }, "yargs": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", - "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", - "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.3", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.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": "7.0.0" + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.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 || ^4.0.0", + "yargs-parser": "^11.1.1" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz", + "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==" + } } }, "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", "requires": { - "camelcase": "4.1.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } }, "yeast": { diff --git a/src/RawTransactions.js b/src/RawTransactions.js index 87eba8f3..02bdf325 100644 --- a/src/RawTransactions.js +++ b/src/RawTransactions.js @@ -84,22 +84,38 @@ class RawTransactions { //if (typeof hex !== "string") hex = JSON.stringify(hex) try { - const response = await axios.post( - `${this.restURL}rawtransactions/sendRawTransaction`, - { - hexes: [hex] + // Single tx hex. + if (typeof hex === "string") { + const response = await axios.post( + `${this.restURL}rawtransactions/sendRawTransaction`, + { + hexes: [hex] + } + ) + + if (response.data === "66: insufficient priority") { + console.warn( + `WARN: Insufficient Priority! This is likely due to a fee that is too low, or insufficient funds. + Please ensure that there is BCH in the given wallet. If you are running on the testnet, get some + BCH from the testnet faucet at https://developer.bitcoin.com/faucets/bch` + ) } - ) - if (response.data === "66: insufficient priority") { - console.warn( - `WARN: Insufficient Priority! This is likely due to a fee that is too low, or insufficient funds. - Please ensure that there is BCH in the given wallet. If you are running on the testnet, get some - BCH from the testnet faucet at https://developer.bitcoin.com/faucets/bch` - ) + return response.data + } else if (Array.isArray(hex)) { + const options = { + method: "POST", + url: `${this.restURL}rawtransactions/sendRawTransaction`, + data: { + hexes: hex + } + } + const response = await axios(options) + + return response.data } - return response.data + throw new Error(`Input hex must be a string or array of strings.`) } catch (error) { if (error.response && error.response.data) throw error.response.data else throw error diff --git a/src/Transaction.js b/src/Transaction.js index e46b99a9..94eb04d9 100644 --- a/src/Transaction.js +++ b/src/Transaction.js @@ -30,6 +30,8 @@ class Transaction { `${this.restURL}transaction/details/${txid}` ) return response.data + + // Array of addresses } else if (Array.isArray(txid)) { const options = { method: "POST", diff --git a/test/e2e/sendrawtransaction/package.json b/test/e2e/sendrawtransaction/package.json new file mode 100644 index 00000000..6f2b009f --- /dev/null +++ b/test/e2e/sendrawtransaction/package.json @@ -0,0 +1,28 @@ +{ + "name": "sendrawtransaction", + "version": "1.0.0", + "description": "e2e test - Send two transactions in parallel.", + "main": "sendrawtransaction.js", + "scripts": { + "test": "echo no tests yet", + "start": "node sendrawtransaction.js" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/Bitcoin-com/bitbox-javascript-sdk.git" + }, + "keywords": [ + "bitbox", + "bch", + "bitcoin", + "bitcoin cash", + "bitcoin.com", + "javascript" + ], + "author": "Chris Troutner ", + "license": "MIT", + "bugs": { + "url": "https://github.com/Bitcoin-com/bitbox-javascript-sdk/issues" + }, + "homepage": "https://github.com/Bitcoin-com/bitbox-javascript-sdk/blob/master/README.md" +} diff --git a/test/e2e/sendrawtransaction/sendrawtransaction.js b/test/e2e/sendrawtransaction/sendrawtransaction.js new file mode 100644 index 00000000..c580915f --- /dev/null +++ b/test/e2e/sendrawtransaction/sendrawtransaction.js @@ -0,0 +1,195 @@ +/* + This is an end-to-end test adapted from the send-bch example. It's purpose + is to test the sendRawTransaction endpoint. Since the single call is tested + all the time, this test focuses on testing the bulk endpoint by sending + two transactions at once. + + Instructions: + - Ensure the address in the wallet.json file has some tBCH. +*/ + +// Replace the address below with the address you want to send the BCH to. +const RECV_ADDR1 = `bchtest:qzfn2mly05t6fjsh5kjj0dqq0jjtct27ng089dgg05` +const RECV_ADDR2 = `bchtest:qz6yw0kqgfkknfy6jh2jvlfnkzmre3lt2u0pgcckdk` +const SATOSHIS_TO_SEND = 1000 + +// Instantiate BITBOX. +const bitboxLib = "../../../lib/bitbox-sdk" +const BITBOXSDK = require(bitboxLib).default +//const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v2/" }) +const BITBOX = new BITBOXSDK({ restURL: "http://localhost:3000/v2/" }) + +// Open the wallet generated with create-wallet. +try { + var walletInfo = require(`./wallet.json`) +} catch (err) { + console.log( + `Could not open wallet.json. Generate a wallet with create-wallet first.` + ) + process.exit(0) +} + +const SEND_ADDR = walletInfo.cashAddress +const SEND_MNEMONIC = walletInfo.mnemonic + +async function testSend() { + try { + const hex1 = await buildTx(RECV_ADDR1) + const hex2 = await buildTx(RECV_ADDR2) + + console.log(`hex1: ${hex1}\n\n`) + console.log(`hex2: ${hex2}\n\n`) + + const broadcast = await BITBOX.RawTransactions.sendRawTransaction([ + hex1, + hex2 + ]) + console.log(`Transaction IDs: ${JSON.stringify(broadcast, null, 2)}`) + } catch (err) { + console.log(`Error in testSend: `, err) + } +} +testSend() + +// Build a TX hex that is ready to broadcast to the network. +async function buildTx(recAddr) { + try { + // Get the balance of the sending address. + const balance = await getBCHBalance(SEND_ADDR, false) + console.log(`balance: ${JSON.stringify(balance, null, 2)}`) + console.log(`Balance of sending address ${SEND_ADDR} is ${balance} BCH.`) + + // Exit if the balance is zero. + if (balance <= 0.0) { + console.log(`Balance of sending address is zero. Exiting.`) + process.exit(0) + } + + const SEND_ADDR_LEGACY = BITBOX.Address.toLegacyAddress(SEND_ADDR) + const RECV_ADDR_LEGACY = BITBOX.Address.toLegacyAddress(recAddr) + console.log(`Sender Legacy Address: ${SEND_ADDR_LEGACY}`) + console.log(`Receiver Legacy Address: ${RECV_ADDR_LEGACY}`) + + const balance2 = await getBCHBalance(recAddr, false) + //console.log(`Balance of recieving address ${recAddr} is ${balance2} BCH.`) + + const u = await BITBOX.Address.utxo(SEND_ADDR) + //console.log(`u: ${JSON.stringify(u, null, 2)}`) + const utxo = findBiggestUtxo(u.utxos) + console.log(`utxo: ${JSON.stringify(utxo, null, 2)}`) + + // instance of transaction builder + const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + + const satoshisToSend = SATOSHIS_TO_SEND + const originalAmount = utxo.satoshis + const vout = utxo.vout + const txid = utxo.txid + + // add input with txid and index of vout + transactionBuilder.addInput(txid, vout) + + // get byte count to calculate fee. paying 1.2 sat/byte + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 2 } + ) + console.log(`byteCount: ${byteCount}`) + const satoshisPerByte = 1.0 + const txFee = Math.floor(satoshisPerByte * byteCount) + console.log(`txFee: ${txFee}`) + + // amount to send back to the sending address. + // It's the original amount - 1 sat/byte for tx size + const remainder = originalAmount - satoshisToSend - txFee + + // add output w/ address and amount to send + transactionBuilder.addOutput(recAddr, satoshisToSend) + transactionBuilder.addOutput(SEND_ADDR, remainder) + + // Generate a change address from a Mnemonic of a private key. + const change = changeAddrFromMnemonic(SEND_MNEMONIC) + + // Generate a keypair from the change address. + const keyPair = BITBOX.HDNode.toKeyPair(change) + + // Sign the transaction with the HD node. + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + + // build tx + const tx = transactionBuilder.build() + // output rawhex + const hex = tx.toHex() + + return hex + /* + console.log(`TX hex: ${hex}`) + console.log(` `) + + // Broadcast transation to the network + const broadcast = await BITBOX.RawTransactions.sendRawTransaction([hex]) + console.log(`Transaction ID: ${broadcast}`) + */ + } catch (err) { + console.log(`Error in buildTx().`) + throw err + } +} + +// Generate a change address from a Mnemonic of a private key. +function changeAddrFromMnemonic(mnemonic) { + // root seed buffer + const rootSeed = BITBOX.Mnemonic.toSeed(mnemonic) + + // master HDNode + const masterHDNode = BITBOX.HDNode.fromSeed(rootSeed, "testnet") + + // HDNode of BIP44 account + const account = BITBOX.HDNode.derivePath(masterHDNode, "m/44'/145'/0'") + + // derive the first external change address HDNode which is going to spend utxo + const change = BITBOX.HDNode.derivePath(account, "0/0") + + return change +} + +// Get the balance in BCH of a BCH address. +async function getBCHBalance(addr, verbose) { + try { + const result = await BITBOX.Address.details(addr) + + if (verbose) console.log(result) + + const bchBalance = result + + return bchBalance.balance + } catch (err) { + console.error(`Error in getBCHBalance: `, err) + console.log(`addr: ${addr}`) + throw err + } +} + +// Returns the utxo with the biggest balance from an array of utxos. +function findBiggestUtxo(utxos) { + let largestAmount = 0 + let largestIndex = 0 + + for (var i = 0; i < utxos.length; i++) { + const thisUtxo = utxos[i] + + if (thisUtxo.satoshis > largestAmount) { + largestAmount = thisUtxo.satoshis + largestIndex = i + } + } + + return utxos[largestIndex] +} From adea7305eefc2742845edb093de7e4b4ed569801 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Thu, 31 Jan 2019 12:05:38 -0800 Subject: [PATCH 190/480] fix(sendrawtransaction): Added e2e test for sendratransaction bulk endpoint --- .../sendrawtransaction/sendrawtransaction.js | 129 +++++++++++++++--- 1 file changed, 107 insertions(+), 22 deletions(-) diff --git a/test/e2e/sendrawtransaction/sendrawtransaction.js b/test/e2e/sendrawtransaction/sendrawtransaction.js index c580915f..87d51d99 100644 --- a/test/e2e/sendrawtransaction/sendrawtransaction.js +++ b/test/e2e/sendrawtransaction/sendrawtransaction.js @@ -6,6 +6,10 @@ Instructions: - Ensure the address in the wallet.json file has some tBCH. + - Ensure the address in the wallet.json file has two UTXOs between 0.1 and + 0.001 tBCH + - This test will generate two transactions from two UTXOs and broadcast them + using the sendrawtransaction bulk endpoint. */ // Replace the address below with the address you want to send the BCH to. @@ -19,6 +23,8 @@ const BITBOXSDK = require(bitboxLib).default //const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v2/" }) const BITBOX = new BITBOXSDK({ restURL: "http://localhost:3000/v2/" }) +const util = require("util") + // Open the wallet generated with create-wallet. try { var walletInfo = require(`./wallet.json`) @@ -34,8 +40,8 @@ const SEND_MNEMONIC = walletInfo.mnemonic async function testSend() { try { - const hex1 = await buildTx(RECV_ADDR1) - const hex2 = await buildTx(RECV_ADDR2) + const hex1 = await buildTx1(RECV_ADDR1) + const hex2 = await buildTx2(RECV_ADDR2) console.log(`hex1: ${hex1}\n\n`) console.log(`hex2: ${hex2}\n\n`) @@ -51,8 +57,8 @@ async function testSend() { } testSend() -// Build a TX hex that is ready to broadcast to the network. -async function buildTx(recAddr) { +// Build a TX hex with the largest UTXO. +async function buildTx1(recAddr) { try { // Get the balance of the sending address. const balance = await getBCHBalance(SEND_ADDR, false) @@ -129,14 +135,90 @@ async function buildTx(recAddr) { const hex = tx.toHex() return hex - /* - console.log(`TX hex: ${hex}`) - console.log(` `) - - // Broadcast transation to the network - const broadcast = await BITBOX.RawTransactions.sendRawTransaction([hex]) - console.log(`Transaction ID: ${broadcast}`) - */ + } catch (err) { + console.log(`Error in buildTx().`) + throw err + } +} + +// Build a TX hex with the SECOND largest UTXO. +async function buildTx2(recAddr) { + try { + // Get the balance of the sending address. + const balance = await getBCHBalance(SEND_ADDR, false) + console.log(`balance: ${JSON.stringify(balance, null, 2)}`) + console.log(`Balance of sending address ${SEND_ADDR} is ${balance} BCH.`) + + // Exit if the balance is zero. + if (balance <= 0.0) { + console.log(`Balance of sending address is zero. Exiting.`) + process.exit(0) + } + + const SEND_ADDR_LEGACY = BITBOX.Address.toLegacyAddress(SEND_ADDR) + const RECV_ADDR_LEGACY = BITBOX.Address.toLegacyAddress(recAddr) + console.log(`Sender Legacy Address: ${SEND_ADDR_LEGACY}`) + console.log(`Receiver Legacy Address: ${RECV_ADDR_LEGACY}`) + + const balance2 = await getBCHBalance(recAddr, false) + //console.log(`Balance of recieving address ${recAddr} is ${balance2} BCH.`) + + const u = await BITBOX.Address.utxo(SEND_ADDR) + //console.log(`u: ${JSON.stringify(u, null, 2)}`) + const utxo = findNextBiggestUtxo(u.utxos) + console.log(`utxo: ${JSON.stringify(utxo, null, 2)}`) + + // instance of transaction builder + const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + + const satoshisToSend = SATOSHIS_TO_SEND + const originalAmount = utxo.satoshis + const vout = utxo.vout + const txid = utxo.txid + + // add input with txid and index of vout + transactionBuilder.addInput(txid, vout) + + // get byte count to calculate fee. paying 1.2 sat/byte + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 2 } + ) + console.log(`byteCount: ${byteCount}`) + const satoshisPerByte = 1.0 + const txFee = Math.floor(satoshisPerByte * byteCount) + console.log(`txFee: ${txFee}`) + + // amount to send back to the sending address. + // It's the original amount - 1 sat/byte for tx size + const remainder = originalAmount - satoshisToSend - txFee + + // add output w/ address and amount to send + transactionBuilder.addOutput(recAddr, satoshisToSend) + transactionBuilder.addOutput(SEND_ADDR, remainder) + + // Generate a change address from a Mnemonic of a private key. + const change = changeAddrFromMnemonic(SEND_MNEMONIC) + + // Generate a keypair from the change address. + const keyPair = BITBOX.HDNode.toKeyPair(change) + + // Sign the transaction with the HD node. + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + + // build tx + const tx = transactionBuilder.build() + // output rawhex + const hex = tx.toHex() + + return hex } catch (err) { console.log(`Error in buildTx().`) throw err @@ -179,17 +261,20 @@ async function getBCHBalance(addr, verbose) { // Returns the utxo with the biggest balance from an array of utxos. function findBiggestUtxo(utxos) { - let largestAmount = 0 - let largestIndex = 0 + // Sort the utxos by the amount of satoshis, largest first. + utxos.sort(function(a, b) { + return b.satoshis - a.satoshis + }) - for (var i = 0; i < utxos.length; i++) { - const thisUtxo = utxos[i] + return utxos[0] +} - if (thisUtxo.satoshis > largestAmount) { - largestAmount = thisUtxo.satoshis - largestIndex = i - } - } +// Returns the utxo with the 2nd biggest balance from an array of utxos. +function findNextBiggestUtxo(utxos) { + // Sort the utxos by the amount of satoshis, largest first. + utxos.sort(function(a, b) { + return b.satoshis - a.satoshis + }) - return utxos[largestIndex] + return utxos[1] } From 177d3ea548c76744db39fc11aef44a96772de09c Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 1 Feb 2019 05:21:48 +0900 Subject: [PATCH 191/480] Bump v --- index.js | 2 +- package-lock.json | 5800 +++++++++++++++++++++++---------------------- package.json | 2 +- 3 files changed, 2905 insertions(+), 2899 deletions(-) diff --git a/index.js b/index.js index ce29d74b..8ac49d1d 100755 --- a/index.js +++ b/index.js @@ -18,7 +18,7 @@ const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") const cmd = require("node-cmd") -program.version("3.0.1 ", "-v, --version") +program.version("3.0.2 ", "-v, --version") program .command("new ") diff --git a/package-lock.json b/package-lock.json index 4e037511..901e6587 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "3.0.1", + "version": "3.0.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -10,7 +10,7 @@ "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", "dev": true, "requires": { - "@babel/highlight": "7.0.0" + "@babel/highlight": "^7.0.0" } }, "@babel/highlight": { @@ -19,9 +19,9 @@ "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", "dev": true, "requires": { - "chalk": "2.4.1", - "esutils": "2.0.2", - "js-tokens": "4.0.0" + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" }, "dependencies": { "js-tokens": { @@ -38,8 +38,8 @@ "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", "dev": true, "requires": { - "call-me-maybe": "1.0.1", - "glob-to-regexp": "0.3.0" + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" } }, "@nodelib/fs.stat": { @@ -55,9 +55,9 @@ "dev": true, "requires": { "deepmerge": "3.0.0", - "is-plain-object": "2.0.4", - "universal-user-agent": "2.0.2", - "url-template": "2.0.8" + "is-plain-object": "^2.0.4", + "universal-user-agent": "^2.0.1", + "url-template": "^2.0.8" } }, "@octokit/request": { @@ -66,10 +66,10 @@ "integrity": "sha512-4P9EbwKZ4xfyupVMb3KVuHmM+aO2fye3nufjGKz/qDssvdJj9Rlx44O0FdFvUp4kIzToy3AHLTOulEIDAL+dpg==", "dev": true, "requires": { - "@octokit/endpoint": "3.1.1", - "is-plain-object": "2.0.4", - "node-fetch": "2.3.0", - "universal-user-agent": "2.0.2" + "@octokit/endpoint": "^3.0.0", + "is-plain-object": "^2.0.4", + "node-fetch": "^2.3.0", + "universal-user-agent": "^2.0.1" } }, "@octokit/rest": { @@ -79,15 +79,15 @@ "dev": true, "requires": { "@octokit/request": "2.2.0", - "before-after-hook": "1.3.0", - "btoa-lite": "1.0.0", - "lodash.get": "4.4.2", - "lodash.pick": "4.4.0", - "lodash.set": "4.3.2", - "lodash.uniq": "4.5.0", - "octokit-pagination-methods": "1.1.0", - "universal-user-agent": "2.0.2", - "url-template": "2.0.8" + "before-after-hook": "^1.2.0", + "btoa-lite": "^1.0.0", + "lodash.get": "^4.4.2", + "lodash.pick": "^4.4.0", + "lodash.set": "^4.3.2", + "lodash.uniq": "^4.5.0", + "octokit-pagination-methods": "^1.1.0", + "universal-user-agent": "^2.0.0", + "url-template": "^2.0.8" } }, "@semantic-release/commit-analyzer": { @@ -96,12 +96,12 @@ "integrity": "sha512-2lb+t6muGenI86mYGpZYOgITx9L3oZYF697tJoqXeQEk0uw0fm+OkkOuDTBA3Oax9ftoNIrCKv9bwgYvxrbM6w==", "dev": true, "requires": { - "conventional-changelog-angular": "5.0.2", - "conventional-commits-filter": "2.0.1", - "conventional-commits-parser": "3.0.1", - "debug": "4.1.1", - "import-from": "2.1.0", - "lodash": "4.17.11" + "conventional-changelog-angular": "^5.0.0", + "conventional-commits-filter": "^2.0.0", + "conventional-commits-parser": "^3.0.0", + "debug": "^4.0.0", + "import-from": "^2.1.0", + "lodash": "^4.17.4" }, "dependencies": { "debug": { @@ -110,7 +110,7 @@ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "ms": { @@ -133,23 +133,23 @@ "integrity": "sha512-cWQhM9bdBv8KAwClmwM64Mo3vsOHVM2aJAGI6K3qbJfJ3GsLJLh1hTi+rMd5EkZ2DA8zUUHCiAJZ3ujMvUB0yg==", "dev": true, "requires": { - "@octokit/rest": "16.3.0", - "@semantic-release/error": "2.2.0", - "aggregate-error": "1.0.0", - "bottleneck": "2.14.1", - "debug": "4.1.1", - "dir-glob": "2.0.0", - "fs-extra": "7.0.1", - "globby": "8.0.1", - "http-proxy-agent": "2.1.0", - "https-proxy-agent": "2.2.1", - "issue-parser": "3.0.1", - "lodash": "4.17.11", - "mime": "2.4.0", - "p-filter": "1.0.0", - "p-retry": "3.0.0", - "parse-github-url": "1.0.2", - "url-join": "4.0.0" + "@octokit/rest": "^16.0.1", + "@semantic-release/error": "^2.2.0", + "aggregate-error": "^1.0.0", + "bottleneck": "^2.0.1", + "debug": "^4.0.0", + "dir-glob": "^2.0.0", + "fs-extra": "^7.0.0", + "globby": "^8.0.0", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "issue-parser": "^3.0.0", + "lodash": "^4.17.4", + "mime": "^2.0.3", + "p-filter": "^1.0.0", + "p-retry": "^3.0.0", + "parse-github-url": "^1.0.1", + "url-join": "^4.0.0" }, "dependencies": { "debug": { @@ -158,7 +158,7 @@ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "mime": { @@ -181,17 +181,17 @@ "integrity": "sha512-hAt8Q86jjp0AiykihhZ7vuCFKYz0j8v3W6Jae8b+RCLi8IUofrPF1ZImx3oY0rRu8ZZSb4aU9uxtFmeOYZebjg==", "dev": true, "requires": { - "@semantic-release/error": "2.2.0", - "aggregate-error": "1.0.0", - "execa": "1.0.0", - "fs-extra": "7.0.1", - "lodash": "4.17.11", - "nerf-dart": "1.0.0", - "normalize-url": "4.1.0", - "npm": "6.5.0", - "rc": "1.2.8", - "read-pkg": "4.0.1", - "registry-auth-token": "3.3.2" + "@semantic-release/error": "^2.2.0", + "aggregate-error": "^1.0.0", + "execa": "^1.0.0", + "fs-extra": "^7.0.0", + "lodash": "^4.17.4", + "nerf-dart": "^1.0.0", + "normalize-url": "^4.0.0", + "npm": "^6.3.0", + "rc": "^1.2.8", + "read-pkg": "^4.0.0", + "registry-auth-token": "^3.3.1" }, "dependencies": { "cross-spawn": { @@ -200,11 +200,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.6.0", - "shebang-command": "1.2.0", - "which": "1.3.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "execa": { @@ -213,13 +213,13 @@ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { - "cross-spawn": "6.0.5", - "get-stream": "4.1.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": "^6.0.0", + "get-stream": "^4.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" } }, "get-stream": { @@ -228,7 +228,7 @@ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { - "pump": "3.0.0" + "pump": "^3.0.0" } }, "parse-json": { @@ -237,8 +237,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "pify": { @@ -253,9 +253,9 @@ "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=", "dev": true, "requires": { - "normalize-package-data": "2.4.0", - "parse-json": "4.0.0", - "pify": "3.0.0" + "normalize-package-data": "^2.3.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0" } } } @@ -266,15 +266,15 @@ "integrity": "sha512-pWPouZujddgb6t61t9iA9G3yIfp3TeQ7bPbV1ixYSeP6L7gI1+Du82fY/OHfEwyifpymLUQW0XnIKgKct5IMMw==", "dev": true, "requires": { - "conventional-changelog-angular": "5.0.2", - "conventional-changelog-writer": "4.0.2", - "conventional-commits-filter": "2.0.1", - "conventional-commits-parser": "3.0.1", - "debug": "4.1.1", - "get-stream": "4.1.0", - "import-from": "2.1.0", - "into-stream": "4.0.0", - "lodash": "4.17.11" + "conventional-changelog-angular": "^5.0.0", + "conventional-changelog-writer": "^4.0.0", + "conventional-commits-filter": "^2.0.0", + "conventional-commits-parser": "^3.0.0", + "debug": "^4.0.0", + "get-stream": "^4.0.0", + "import-from": "^2.1.0", + "into-stream": "^4.0.0", + "lodash": "^4.17.4" }, "dependencies": { "debug": { @@ -283,7 +283,7 @@ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "get-stream": { @@ -292,7 +292,7 @@ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { - "pump": "3.0.0" + "pump": "^3.0.0" } }, "ms": { @@ -327,9 +327,9 @@ "integrity": "sha512-m08g4CS3J6lwRQk1pj1EO+KEVWbrbXsmi9Pw0ySmrIbcVxVaedoFgLvFsV8wHLwh01EpROVz3KvVcD1Jmks9FQ==", "dev": true, "requires": { - "@sinonjs/commons": "1.3.0", - "array-from": "2.1.1", - "lodash.get": "4.4.2" + "@sinonjs/commons": "^1.0.2", + "array-from": "^2.1.1", + "lodash.get": "^4.4.2" } }, "JSONStream": { @@ -338,8 +338,8 @@ "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "dev": true, "requires": { - "jsonparse": "1.3.1", - "through": "2.3.8" + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" } }, "abbrev": { @@ -352,7 +352,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "requires": { - "mime-types": "2.1.21", + "mime-types": "~2.1.18", "negotiator": "0.6.1" } }, @@ -366,7 +366,7 @@ "resolved": "http://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "requires": { - "acorn": "3.3.0" + "acorn": "^3.0.4" }, "dependencies": { "acorn": { @@ -387,7 +387,7 @@ "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", "dev": true, "requires": { - "es6-promisify": "5.0.0" + "es6-promisify": "^5.0.0" } }, "aggregate-error": { @@ -396,8 +396,8 @@ "integrity": "sha1-iINE2tAiCnLjr1CQYRf0h3GSX6w=", "dev": true, "requires": { - "clean-stack": "1.3.0", - "indent-string": "3.2.0" + "clean-stack": "^1.0.0", + "indent-string": "^3.0.0" } }, "ajv": { @@ -405,10 +405,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "ajv-keywords": { @@ -443,8 +443,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "optional": true, "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" } }, "argparse": { @@ -452,7 +452,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "argv-formatter": { @@ -467,7 +467,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "optional": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { @@ -503,8 +503,8 @@ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.12.0" + "define-properties": "^1.1.2", + "es-abstract": "^1.7.0" } }, "array-union": { @@ -513,7 +513,7 @@ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -545,7 +545,7 @@ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "~2.1.0" } }, "assert": { @@ -585,7 +585,7 @@ "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", "dev": true, "requires": { - "lodash": "4.17.11" + "lodash": "^4.17.10" } }, "async-each": { @@ -627,8 +627,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=", "requires": { - "follow-redirects": "1.6.0", - "is-buffer": "1.1.6" + "follow-redirects": "^1.2.5", + "is-buffer": "^1.1.5" } }, "babel-cli": { @@ -636,21 +636,21 @@ "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", "requires": { - "babel-core": "6.26.3", - "babel-polyfill": "6.26.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "chokidar": "1.7.0", - "commander": "2.19.0", - "convert-source-map": "1.6.0", - "fs-readdir-recursive": "1.1.0", - "glob": "7.1.3", - "lodash": "4.17.11", - "output-file-sync": "1.1.2", - "path-is-absolute": "1.0.1", - "slash": "1.0.0", - "source-map": "0.5.7", - "v8flags": "2.1.1" + "babel-core": "^6.26.0", + "babel-polyfill": "^6.26.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "chokidar": "^1.6.1", + "commander": "^2.11.0", + "convert-source-map": "^1.5.0", + "fs-readdir-recursive": "^1.0.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "output-file-sync": "^1.1.2", + "path-is-absolute": "^1.0.1", + "slash": "^1.0.0", + "source-map": "^0.5.6", + "v8flags": "^2.1.1" } }, "babel-code-frame": { @@ -658,9 +658,9 @@ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" }, "dependencies": { "chalk": { @@ -668,11 +668,11 @@ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "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" } } } @@ -682,25 +682,25 @@ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.1", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.6.0", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" }, "dependencies": { "debug": { @@ -718,14 +718,14 @@ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.11", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" } }, "babel-helper-builder-binary-assignment-operator-visitor": { @@ -733,9 +733,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "requires": { - "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-call-delegate": { @@ -743,10 +743,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-define-map": { @@ -754,10 +754,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.11" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-explode-assignable-expression": { @@ -765,9 +765,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-function-name": { @@ -775,11 +775,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-get-function-arity": { @@ -787,8 +787,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-hoist-variables": { @@ -796,8 +796,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-optimise-call-expression": { @@ -805,8 +805,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-regex": { @@ -814,9 +814,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.11" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-remap-async-to-generator": { @@ -824,11 +824,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-replace-supers": { @@ -836,12 +836,12 @@ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "requires": { - "babel-helper-optimise-call-expression": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helpers": { @@ -849,8 +849,8 @@ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-messages": { @@ -858,7 +858,7 @@ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-check-es2015-constants": { @@ -866,7 +866,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-syntax-async-functions": { @@ -889,9 +889,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-arrow-functions": { @@ -899,7 +899,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -907,7 +907,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -915,11 +915,11 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.11" + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-plugin-transform-es2015-classes": { @@ -927,15 +927,15 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "requires": { - "babel-helper-define-map": "6.26.0", - "babel-helper-function-name": "6.24.1", - "babel-helper-optimise-call-expression": "6.24.1", - "babel-helper-replace-supers": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-computed-properties": { @@ -943,8 +943,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-destructuring": { @@ -952,7 +952,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -960,8 +960,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-for-of": { @@ -969,7 +969,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -977,9 +977,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-literals": { @@ -987,7 +987,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -995,9 +995,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -1005,10 +1005,10 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" } }, "babel-plugin-transform-es2015-modules-systemjs": { @@ -1016,9 +1016,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-umd": { @@ -1026,9 +1026,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "requires": { - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-object-super": { @@ -1036,8 +1036,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "requires": { - "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.26.0" + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -1045,12 +1045,12 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-shorthand-properties": { @@ -1058,8 +1058,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-spread": { @@ -1067,7 +1067,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -1075,9 +1075,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-template-literals": { @@ -1085,7 +1085,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -1093,7 +1093,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -1101,9 +1101,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -1111,9 +1111,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", - "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-regenerator": { @@ -1121,7 +1121,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "requires": { - "regenerator-transform": "0.10.1" + "regenerator-transform": "^0.10.0" } }, "babel-plugin-transform-strict-mode": { @@ -1129,8 +1129,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-polyfill": { @@ -1138,9 +1138,9 @@ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "requires": { - "babel-runtime": "6.26.0", - "core-js": "2.6.1", - "regenerator-runtime": "0.10.5" + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" }, "dependencies": { "regenerator-runtime": { @@ -1155,36 +1155,36 @@ "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0", - "browserslist": "3.2.8", - "invariant": "2.2.4", - "semver": "5.6.0" + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" } }, "babel-preset-es2015": { @@ -1192,30 +1192,30 @@ "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0" + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.24.1", + "babel-plugin-transform-es2015-classes": "^6.24.1", + "babel-plugin-transform-es2015-computed-properties": "^6.24.1", + "babel-plugin-transform-es2015-destructuring": "^6.22.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", + "babel-plugin-transform-es2015-for-of": "^6.22.0", + "babel-plugin-transform-es2015-function-name": "^6.24.1", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-umd": "^6.24.1", + "babel-plugin-transform-es2015-object-super": "^6.24.1", + "babel-plugin-transform-es2015-parameters": "^6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", + "babel-plugin-transform-regenerator": "^6.24.1" } }, "babel-register": { @@ -1223,13 +1223,13 @@ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "requires": { - "babel-core": "6.26.3", - "babel-runtime": "6.26.0", - "core-js": "2.6.1", - "home-or-tmp": "2.0.0", - "lodash": "4.17.11", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" } }, "babel-runtime": { @@ -1237,8 +1237,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "2.6.1", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -1246,11 +1246,11 @@ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.11" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { @@ -1258,15 +1258,15 @@ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.11" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" }, "dependencies": { "debug": { @@ -1284,10 +1284,10 @@ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.11", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -1310,13 +1310,13 @@ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "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" }, "dependencies": { "define-property": { @@ -1324,7 +1324,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -1332,7 +1332,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -1340,7 +1340,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -1348,9 +1348,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -1370,7 +1370,7 @@ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.5.tgz", "integrity": "sha512-C3picSgzPSLE+jW3tcBzJoGwitOtazb5B+5YmAxZm2ybmTi9LNgAtDO/jjVEBZwHoXmDBZ9m/IELj3elJVRBcA==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "base64-arraybuffer": { @@ -1400,10 +1400,11 @@ }, "bch-wallet-bridge.js": { "version": "github:web3bch/bch-wallet-bridge.js#f73558eaf3a98ba2a23de3c9cbbd582b30ff19eb", + "from": "github:web3bch/bch-wallet-bridge.js#master", "requires": { - "bch-wallet-bridge-provider-interface": "0.1.1", - "bchaddrjs": "0.2.3", - "bitcoincashjs": "0.1.14" + "bch-wallet-bridge-provider-interface": "^0.1.1", + "bchaddrjs": "^0.2.2", + "bitcoincashjs": "^0.1.10" } }, "bchaddrjs": { @@ -1411,8 +1412,8 @@ "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.3.tgz", "integrity": "sha512-0DVW8q3UFQFhrvt8Fowpkk+WvkYTZTSD1vGCQHrtMHZjRL6G/SoW0mgrREmgO1F/8TJ+Julri4UBWA8Gr7C5Yw==", "requires": { - "bs58check": "2.1.2", - "cashaddrjs": "0.2.9" + "bs58check": "^2.1.2", + "cashaddrjs": "^0.2.9" } }, "bcrypt-pbkdf": { @@ -1421,7 +1422,7 @@ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "bech32": { @@ -1471,17 +1472,19 @@ }, "bip21": { "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", + "from": "github:Bitcoin-com/bip21", "requires": { - "qs": "6.6.0" + "qs": "^6.3.0" } }, "bip32-utils": { "version": "github:Bitcoin-com/bip32-utils#966fb8f0e0d4c667e4ee89adfa20c2078d66887c", + "from": "github:Bitcoin-com/bip32-utils#0.13.0", "requires": { - "keccak": "1.4.0", - "nyc": "11.9.0", - "standard": "11.0.1", - "tape": "4.9.1" + "keccak": "^1.3.0", + "nyc": "*", + "standard": "^11.0.1", + "tape": "*" } }, "bip38": { @@ -1489,13 +1492,13 @@ "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", "integrity": "sha512-22KDak0RDyghFbR0Si7wyq9IgY423YzGYzWLpGeofH3DaolOQqjD3mNN08eFoubKlbyclOQKFwtONMv2SD9V3A==", "requires": { - "bigi": "1.4.2", - "browserify-aes": "1.2.0", - "bs58check": "2.1.2", - "buffer-xor": "1.0.3", - "create-hash": "1.2.0", - "ecurve": "1.0.6", - "scryptsy": "2.0.0" + "bigi": "^1.2.0", + "browserify-aes": "^1.0.1", + "bs58check": "<3.0.0", + "buffer-xor": "^1.0.2", + "create-hash": "^1.1.1", + "ecurve": "^1.0.0", + "scryptsy": "^2.0.0" } }, "bip39": { @@ -1503,11 +1506,11 @@ "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", "requires": { - "create-hash": "1.2.0", - "pbkdf2": "3.0.17", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "unorm": "1.4.1" + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "unorm": "^1.3.3" } }, "bip66": { @@ -1515,18 +1518,19 @@ "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "bitcoin-ops": { - "version": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646" + "version": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646", + "from": "github:Bitcoin-com/bitcoincash-ops#1.5.0" }, "bitcoin-txdecoder": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/bitcoin-txdecoder/-/bitcoin-txdecoder-0.0.3.tgz", "integrity": "sha512-pH/eF5hQ65y54U23mzuF42wEj9YWj4WKHAIj2il6b1+oRoi/oyM4Ti3e8nMD8ajippICmyquqbyCZKGq3i4W+A==", "requires": { - "bitcoinjs-lib": "3.3.2" + "bitcoinjs-lib": "3.3.*" } }, "bitcoincashjs": { @@ -1536,22 +1540,23 @@ }, "bitcoincashjs-lib": { "version": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", - "requires": { - "bech32": "1.1.3", - "bigi": "1.4.2", - "bip66": "1.1.5", - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646", - "bs58check": "2.1.2", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ecurve": "1.0.6", - "merkle-lib": "2.0.10", - "pushdata-bitcoin": "1.0.1", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "typeforce": "1.18.0", - "varuint-bitcoin": "1.1.0", - "wif": "2.0.6" + "from": "github:Bitcoin-com/bitcoincashjs-lib#3.3.4", + "requires": { + "bech32": "^1.1.2", + "bigi": "^1.4.0", + "bip66": "^1.1.0", + "bitcoin-ops": "^1.3.0", + "bs58check": "^2.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.3", + "ecurve": "^1.0.0", + "merkle-lib": "^2.0.10", + "pushdata-bitcoin": "^1.0.1", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "typeforce": "^1.11.3", + "varuint-bitcoin": "^1.0.4", + "wif": "^2.0.1" } }, "bitcoinjs-lib": { @@ -1559,21 +1564,21 @@ "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-3.3.2.tgz", "integrity": "sha512-l5qqvbaK8wwtANPf6oEffykycg4383XgEYdia1rI7/JpGf1jfRWlOUCvx5TiTZS7kyIvY4j/UhIQ2urLsvGkzw==", "requires": { - "bech32": "1.1.3", - "bigi": "1.4.2", - "bip66": "1.1.5", - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646", - "bs58check": "2.1.2", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ecurve": "1.0.6", - "merkle-lib": "2.0.10", - "pushdata-bitcoin": "1.0.1", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2", - "typeforce": "1.18.0", - "varuint-bitcoin": "1.1.0", - "wif": "2.0.6" + "bech32": "^1.1.2", + "bigi": "^1.4.0", + "bip66": "^1.1.0", + "bitcoin-ops": "^1.3.0", + "bs58check": "^2.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.3", + "ecurve": "^1.0.0", + "merkle-lib": "^2.0.10", + "pushdata-bitcoin": "^1.0.1", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "typeforce": "^1.11.3", + "varuint-bitcoin": "^1.0.4", + "wif": "^2.0.1" } }, "bitcoinjs-message": { @@ -1581,11 +1586,11 @@ "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", "requires": { - "bs58check": "2.1.2", - "buffer-equals": "1.0.4", - "create-hash": "1.2.0", - "secp256k1": "3.6.0", - "varuint-bitcoin": "1.1.0" + "bs58check": "^2.0.2", + "buffer-equals": "^1.0.3", + "create-hash": "^1.1.2", + "secp256k1": "^3.0.1", + "varuint-bitcoin": "^1.0.1" } }, "blob": { @@ -1609,7 +1614,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -1619,9 +1624,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "optional": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.3" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "brorand": { @@ -1640,12 +1645,12 @@ "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "browserslist": { @@ -1653,8 +1658,8 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "requires": { - "caniuse-lite": "1.0.30000923", - "electron-to-chromium": "1.3.96" + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" } }, "bs58": { @@ -1662,7 +1667,7 @@ "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", "requires": { - "base-x": "3.0.5" + "base-x": "^3.0.2" } }, "bs58check": { @@ -1670,9 +1675,9 @@ "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", "requires": { - "bs58": "4.0.1", - "create-hash": "1.2.0", - "safe-buffer": "5.1.2" + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" } }, "btoa-lite": { @@ -1686,8 +1691,8 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.12" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" } }, "buffer-equals": { @@ -1715,15 +1720,15 @@ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "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" }, "dependencies": { "isobject": { @@ -1745,7 +1750,7 @@ "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", "dev": true, "requires": { - "callsites": "2.0.0" + "callsites": "^2.0.0" }, "dependencies": { "callsites": { @@ -1761,7 +1766,7 @@ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "requires": { - "callsites": "0.2.0" + "callsites": "^0.2.0" } }, "callsite": { @@ -1785,9 +1790,9 @@ "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", "dev": true, "requires": { - "camelcase": "4.1.0", - "map-obj": "2.0.0", - "quick-lru": "1.1.0" + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.0.0" } }, "can-promise": { @@ -1795,7 +1800,7 @@ "resolved": "https://registry.npmjs.org/can-promise/-/can-promise-0.0.1.tgz", "integrity": "sha512-gzVrHyyrvgt0YpDm7pn04MQt8gjh0ZAhN4ZDyCRtGl6YnuuK6b4aiUTD7G52r9l4YNmxfTtEscb92vxtAlL6XQ==", "requires": { - "window-or-global": "1.0.1" + "window-or-global": "^1.0.1" } }, "caniuse-lite": { @@ -1809,8 +1814,8 @@ "integrity": "sha1-fMEFXYItISlU0HsIXeolHMe8VQU=", "dev": true, "requires": { - "ansicolors": "0.3.2", - "redeyed": "2.1.1" + "ansicolors": "~0.3.2", + "redeyed": "~2.1.0" } }, "caseless": { @@ -1824,7 +1829,7 @@ "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.2.9.tgz", "integrity": "sha512-DhJF4iAH0/RM3UjHDHKRxzs09YGL9px+oTyizzydanhC7jTyM2aJ+aLKA96vZGTTWayvvr2iDF2l13lpqXiRFg==", "requires": { - "big-integer": "1.6.40" + "big-integer": "^1.6.34" } }, "chai": { @@ -1833,12 +1838,12 @@ "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", "dev": true, "requires": { - "assertion-error": "1.1.0", - "check-error": "1.0.2", - "deep-eql": "3.0.1", - "get-func-name": "2.0.0", - "pathval": "1.1.0", - "type-detect": "4.0.8" + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" } }, "chalk": { @@ -1846,9 +1851,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "ansi-styles": { @@ -1856,7 +1861,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "color-convert": "1.9.3" + "color-convert": "^1.9.0" } }, "supports-color": { @@ -1864,7 +1869,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -1886,15 +1891,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "optional": true, "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.2.4", - "glob-parent": "2.0.0", - "inherits": "2.0.1", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1" + "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" } }, "cipher-base": { @@ -1902,8 +1907,8 @@ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "circular-json": { @@ -1916,10 +1921,10 @@ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -1927,7 +1932,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "isobject": { @@ -1953,7 +1958,7 @@ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-table": { @@ -1975,9 +1980,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "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" }, "dependencies": { "is-fullwidth-code-point": { @@ -1985,7 +1990,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" } }, "string-width": { @@ -1993,9 +1998,9 @@ "resolved": "http://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" } } } @@ -2012,8 +2017,9 @@ }, "coininfo": { "version": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", + "from": "github:Bitcoin-com/coininfo", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.1" } }, "collection-visit": { @@ -2021,8 +2027,8 @@ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "color-convert": { @@ -2050,7 +2056,7 @@ "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", "dev": true, "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -2064,8 +2070,8 @@ "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=", "dev": true, "requires": { - "array-ify": "1.0.0", - "dot-prop": "3.0.0" + "array-ify": "^1.0.0", + "dot-prop": "^3.0.0" } }, "component-bind": { @@ -2093,10 +2099,10 @@ "resolved": "http://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "requires": { - "buffer-from": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" }, "dependencies": { "inherits": { @@ -2117,8 +2123,8 @@ "integrity": "sha512-yx7m7lVrXmt4nKWQgWZqxSALEiAKZhOAcbxdUaU9575mB0CzXVbgrgpfSnSP7OqWDUTYGD0YVJ0MSRdyOPgAwA==", "dev": true, "requires": { - "compare-func": "1.3.2", - "q": "1.5.1" + "compare-func": "^1.3.1", + "q": "^1.5.1" } }, "conventional-changelog-writer": { @@ -2127,16 +2133,16 @@ "integrity": "sha512-d8/FQY/fix2xXEBUhOo8u3DCbyEw3UOQgYHxLsPDw+wHUDma/GQGAGsGtoH876WyNs32fViHmTOUrgRKVLvBug==", "dev": true, "requires": { - "compare-func": "1.3.2", - "conventional-commits-filter": "2.0.1", - "dateformat": "3.0.3", - "handlebars": "4.0.12", - "json-stringify-safe": "5.0.1", - "lodash": "4.17.11", - "meow": "4.0.1", - "semver": "5.6.0", - "split": "1.0.1", - "through2": "2.0.5" + "compare-func": "^1.3.1", + "conventional-commits-filter": "^2.0.1", + "dateformat": "^3.0.0", + "handlebars": "^4.0.2", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.2.1", + "meow": "^4.0.0", + "semver": "^5.5.0", + "split": "^1.0.0", + "through2": "^2.0.0" } }, "conventional-commits-filter": { @@ -2145,8 +2151,8 @@ "integrity": "sha512-92OU8pz/977udhBjgPEbg3sbYzIxMDFTlQT97w7KdhR9igNqdJvy8smmedAAgn4tPiqseFloKkrVfbXCVd+E7A==", "dev": true, "requires": { - "is-subset": "0.1.1", - "modify-values": "1.0.1" + "is-subset": "^0.1.1", + "modify-values": "^1.0.0" } }, "conventional-commits-parser": { @@ -2155,13 +2161,13 @@ "integrity": "sha512-P6U5UOvDeidUJ8ebHVDIoXzI7gMlQ1OF/id6oUvp8cnZvOXMt1n8nYl74Ey9YMn0uVQtxmCtjPQawpsssBWtGg==", "dev": true, "requires": { - "JSONStream": "1.3.5", - "is-text-path": "1.0.1", - "lodash": "4.17.11", - "meow": "4.0.1", - "split2": "2.2.0", - "through2": "2.0.5", - "trim-off-newlines": "1.0.1" + "JSONStream": "^1.0.4", + "is-text-path": "^1.0.0", + "lodash": "^4.2.1", + "meow": "^4.0.0", + "split2": "^2.0.0", + "through2": "^2.0.0", + "trim-off-newlines": "^1.0.0" } }, "convert-source-map": { @@ -2169,7 +2175,7 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.1" } }, "cookie": { @@ -2198,10 +2204,10 @@ "integrity": "sha512-PcLqxTKiDmNT6pSpy4N6KtuPwb53W+2tzNvwOZw0WH9N6O0vLIBq0x8aj8Oj75ere4YcGi48bDFCL+3fRJdlNA==", "dev": true, "requires": { - "import-fresh": "2.0.0", - "is-directory": "0.3.1", - "js-yaml": "3.12.0", - "parse-json": "4.0.0" + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.9.0", + "parse-json": "^4.0.0" }, "dependencies": { "parse-json": { @@ -2210,8 +2216,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } } } @@ -2222,12 +2228,12 @@ "integrity": "sha512-Tv0LKe/MkBOilH2v7WBiTBdudg2ChfGbdXafc/s330djpF3zKOmuehTeRwjXWc7pzfj9FrDUTA7tEx6Div8NFw==", "dev": true, "requires": { - "growl": "1.10.5", - "js-yaml": "3.12.0", - "lcov-parse": "0.0.10", - "log-driver": "1.2.7", - "minimist": "1.2.0", - "request": "2.88.0" + "growl": "~> 1.10.0", + "js-yaml": "^3.11.0", + "lcov-parse": "^0.0.10", + "log-driver": "^1.2.7", + "minimist": "^1.2.0", + "request": "^2.85.0" }, "dependencies": { "minimist": { @@ -2243,11 +2249,11 @@ "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-5.0.0.tgz", "integrity": "sha1-vHAP0wyjLSTUbH+wK5kuQ1/FqXg=", "requires": { - "graceful-fs": "4.1.15", - "make-dir": "1.3.0", - "nested-error-stacks": "2.1.0", - "pify": "3.0.0", - "safe-buffer": "5.1.2" + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "nested-error-stacks": "^2.0.0", + "pify": "^3.0.0", + "safe-buffer": "^5.0.1" }, "dependencies": { "pify": { @@ -2262,11 +2268,11 @@ "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.1", - "md5.js": "1.3.5", - "ripemd160": "2.0.2", - "sha.js": "2.4.11" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, "create-hmac": { @@ -2274,12 +2280,12 @@ "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "inherits": "2.0.1", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "cross-spawn": { @@ -2287,9 +2293,9 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "lru-cache": "4.1.5", - "shebang-command": "1.2.0", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "currently-unhandled": { @@ -2298,7 +2304,7 @@ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { - "array-find-index": "1.0.2" + "array-find-index": "^1.0.1" } }, "dashdash": { @@ -2307,7 +2313,7 @@ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "dateformat": { @@ -2340,8 +2346,8 @@ "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", "dev": true, "requires": { - "decamelize": "1.2.0", - "map-obj": "1.0.1" + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" }, "dependencies": { "map-obj": { @@ -2363,7 +2369,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "4.0.8" + "type-detect": "^4.0.0" } }, "deep-equal": { @@ -2393,7 +2399,7 @@ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "requires": { - "object-keys": "1.0.12" + "object-keys": "^1.0.12" } }, "define-property": { @@ -2401,8 +2407,8 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -2410,7 +2416,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -2418,7 +2424,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -2426,9 +2432,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -2453,12 +2459,12 @@ "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.1.tgz", "integrity": "sha512-2kjwuGGonL7gWE1XU4Fv79+vVzpoQCl0V+boMwWtOQJV2AGDabCwez++nB1Nli/8BabAfZQ/UuHPlp6AymKdWw==", "requires": { - "find-root": "1.1.0", - "glob": "7.1.3", - "ignore": "3.3.10", - "pkg-config": "1.1.1", - "run-parallel": "1.1.9", - "uniq": "1.0.1" + "find-root": "^1.0.0", + "glob": "^7.0.5", + "ignore": "^3.0.9", + "pkg-config": "^1.1.0", + "run-parallel": "^1.1.2", + "uniq": "^1.0.1" } }, "delayed-stream": { @@ -2478,7 +2484,7 @@ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "diff": { @@ -2498,8 +2504,8 @@ "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", "dev": true, "requires": { - "arrify": "1.0.1", - "path-type": "3.0.0" + "arrify": "^1.0.1", + "path-type": "^3.0.0" }, "dependencies": { "path-type": { @@ -2508,7 +2514,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "pify": { @@ -2524,7 +2530,7 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "requires": { - "esutils": "2.0.2" + "esutils": "^2.0.2" } }, "dot-prop": { @@ -2533,7 +2539,7 @@ "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=", "dev": true, "requires": { - "is-obj": "1.0.1" + "is-obj": "^1.0.0" } }, "drbg.js": { @@ -2541,9 +2547,9 @@ "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", "requires": { - "browserify-aes": "1.2.0", - "create-hash": "1.2.0", - "create-hmac": "1.1.7" + "browserify-aes": "^1.0.6", + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4" } }, "duplexer2": { @@ -2552,7 +2558,7 @@ "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", "dev": true, "requires": { - "readable-stream": "2.3.6" + "readable-stream": "^2.0.2" } }, "ecc-jsbn": { @@ -2561,8 +2567,8 @@ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, "requires": { - "jsbn": "0.1.1", - "safer-buffer": "2.1.2" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, "ecurve": { @@ -2570,8 +2576,8 @@ "resolved": "https://registry.npmjs.org/ecurve/-/ecurve-1.0.6.tgz", "integrity": "sha512-/BzEjNfiSuB7jIWKcS/z8FK9jNjmEWvUV2YZ4RLSmcDtP7Lq0m6FvDuSnJpBlDpGRpfRQeTLGLBI8H+kEv0r+w==", "requires": { - "bigi": "1.4.2", - "safe-buffer": "5.1.2" + "bigi": "^1.1.0", + "safe-buffer": "^5.0.1" } }, "electron-to-chromium": { @@ -2584,13 +2590,13 @@ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.7", - "hmac-drbg": "1.0.1", - "inherits": "2.0.1", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" } }, "end-of-stream": { @@ -2599,7 +2605,7 @@ "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "dev": true, "requires": { - "once": "1.4.0" + "once": "^1.4.0" } }, "engine.io": { @@ -2607,12 +2613,12 @@ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.3.2.tgz", "integrity": "sha512-AsaA9KG7cWPXWHp5FvHdDWY3AMWeZ8x+2pUVLcn71qE5AtAzgGbxuclOytygskw8XGmiQafTmnI9Bix3uihu2w==", "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.4", "base64id": "1.0.0", "cookie": "0.3.1", - "debug": "3.1.0", - "engine.io-parser": "2.1.3", - "ws": "6.1.2" + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "ws": "~6.1.0" } }, "engine.io-client": { @@ -2622,14 +2628,14 @@ "requires": { "component-emitter": "1.2.1", "component-inherit": "0.0.3", - "debug": "3.1.0", - "engine.io-parser": "2.1.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", "has-cors": "1.1.0", "indexof": "0.0.1", "parseqs": "0.0.5", "parseuri": "0.0.5", - "ws": "6.1.2", - "xmlhttprequest-ssl": "1.5.5", + "ws": "~6.1.0", + "xmlhttprequest-ssl": "~1.5.4", "yeast": "0.1.2" } }, @@ -2639,10 +2645,10 @@ "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", "requires": { "after": "0.8.2", - "arraybuffer.slice": "0.0.7", + "arraybuffer.slice": "~0.0.7", "base64-arraybuffer": "0.1.5", "blob": "0.0.5", - "has-binary2": "1.0.3" + "has-binary2": "~1.0.2" } }, "env-ci": { @@ -2651,8 +2657,8 @@ "integrity": "sha512-4NudFu3oUCNprsGkt/LmvqAwJlzX9QT8289AavXiDH1pBJuEd4n0ty98yUOWN3uFtjOhOGrmt1/FDKFxCewejw==", "dev": true, "requires": { - "execa": "1.0.0", - "java-properties": "0.2.10" + "execa": "^1.0.0", + "java-properties": "^0.2.9" }, "dependencies": { "cross-spawn": { @@ -2661,11 +2667,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.6.0", - "shebang-command": "1.2.0", - "which": "1.3.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "execa": { @@ -2674,13 +2680,13 @@ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { - "cross-spawn": "6.0.5", - "get-stream": "4.1.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": "^6.0.0", + "get-stream": "^4.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" } }, "get-stream": { @@ -2689,7 +2695,7 @@ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { - "pump": "3.0.0" + "pump": "^3.0.0" } } } @@ -2699,7 +2705,7 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "es-abstract": { @@ -2707,11 +2713,11 @@ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", "requires": { - "es-to-primitive": "1.2.0", - "function-bind": "1.1.1", - "has": "1.0.3", - "is-callable": "1.1.4", - "is-regex": "1.0.4" + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" } }, "es-to-primitive": { @@ -2719,9 +2725,9 @@ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", "requires": { - "is-callable": "1.1.4", - "is-date-object": "1.0.1", - "is-symbol": "1.0.2" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" } }, "es6-promise": { @@ -2736,7 +2742,7 @@ "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "dev": true, "requires": { - "es6-promise": "4.2.5" + "es6-promise": "^4.0.3" } }, "escape-string-regexp": { @@ -2750,43 +2756,43 @@ "integrity": "sha512-gOKhM8JwlFOc2acbOrkYR05NW8M6DCMSvfcJiBB5NDxRE1gv8kbvxKaC9u69e6ZGEMWXcswA/7eKR229cEIpvg==", "dev": true, "requires": { - "@babel/code-frame": "7.0.0", - "ajv": "6.6.2", - "chalk": "2.4.1", - "cross-spawn": "6.0.5", - "debug": "4.1.1", - "doctrine": "2.1.0", - "eslint-scope": "4.0.0", - "eslint-utils": "1.3.1", - "eslint-visitor-keys": "1.0.0", - "espree": "5.0.0", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.3", - "globals": "11.9.0", - "ignore": "4.0.6", - "imurmurhash": "0.1.4", - "inquirer": "6.2.1", - "js-yaml": "3.12.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.3", - "regexpp": "2.0.1", - "require-uncached": "1.0.3", - "semver": "5.6.0", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", - "table": "5.1.1", - "text-table": "0.2.0" + "@babel/code-frame": "^7.0.0", + "ajv": "^6.5.3", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^2.1.0", + "eslint-scope": "^4.0.0", + "eslint-utils": "^1.3.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^5.0.0", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.7.0", + "ignore": "^4.0.6", + "imurmurhash": "^0.1.4", + "inquirer": "^6.1.0", + "js-yaml": "^3.12.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.5", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.5.1", + "strip-ansi": "^4.0.0", + "strip-json-comments": "^2.0.1", + "table": "^5.0.2", + "text-table": "^0.2.0" }, "dependencies": { "acorn": { @@ -2807,10 +2813,10 @@ "integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==", "dev": true, "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, "ansi-regex": { @@ -2825,7 +2831,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.3" + "color-convert": "^1.9.0" } }, "chardet": { @@ -2840,11 +2846,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.6.0", - "shebang-command": "1.2.0", - "which": "1.3.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "debug": { @@ -2853,7 +2859,7 @@ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "eslint-scope": { @@ -2862,8 +2868,8 @@ "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", "dev": true, "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "espree": { @@ -2872,9 +2878,9 @@ "integrity": "sha512-1MpUfwsdS9MMoN7ZXqAr9e9UKdVHDcvrJpyx7mm1WuQlx/ygErEQBzgi5Nh5qBHIoYweprhtMkTCb9GhcAIcsA==", "dev": true, "requires": { - "acorn": "6.0.4", - "acorn-jsx": "5.0.1", - "eslint-visitor-keys": "1.0.0" + "acorn": "^6.0.2", + "acorn-jsx": "^5.0.0", + "eslint-visitor-keys": "^1.0.0" } }, "external-editor": { @@ -2883,9 +2889,9 @@ "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", "dev": true, "requires": { - "chardet": "0.7.0", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" } }, "fast-deep-equal": { @@ -2912,19 +2918,19 @@ "integrity": "sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg==", "dev": true, "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "3.0.3", - "figures": "2.0.0", - "lodash": "4.17.11", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.0", + "figures": "^2.0.0", + "lodash": "^4.17.10", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rxjs": "6.3.3", - "string-width": "2.1.1", - "strip-ansi": "5.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rxjs": "^6.1.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.0.0", + "through": "^2.3.6" }, "dependencies": { "strip-ansi": { @@ -2933,7 +2939,7 @@ "integrity": "sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==", "dev": true, "requires": { - "ansi-regex": "4.0.0" + "ansi-regex": "^4.0.0" } } } @@ -2956,9 +2962,9 @@ "integrity": "sha512-4j2WTWjp3GsZ+AOagyzVbzp4vWGtZ0hEZ/gDY/uTvm6MTxUfTUIsnMIFb1bn8o0RuXiqUw15H1bue8f22Vw2oQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "astral-regex": "1.0.0", - "is-fullwidth-code-point": "2.0.0" + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" } }, "strip-ansi": { @@ -2967,7 +2973,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" }, "dependencies": { "ansi-regex": { @@ -2984,10 +2990,10 @@ "integrity": "sha512-NUjapYb/qd4PeFW03HnAuOJ7OMcBkJlqeClWxeNlQ0lXGSb52oZXGzkO0/I0ARegQ2eUT1g2VDJH0eUxDRcHmw==", "dev": true, "requires": { - "ajv": "6.6.2", - "lodash": "4.17.11", + "ajv": "^6.6.1", + "lodash": "^4.17.11", "slice-ansi": "2.0.0", - "string-width": "2.1.1" + "string-width": "^2.1.1" } } } @@ -2998,7 +3004,7 @@ "integrity": "sha512-Bc3bh5bAcKNvs3HOpSi6EfGA2IIp7EzWcg2tS4vP7stnXu/J1opihHDM7jI9JCIckyIDTgZLSWn7J3HY0j2JfA==", "dev": true, "requires": { - "get-stdin": "6.0.0" + "get-stdin": "^6.0.0" } }, "eslint-config-standard": { @@ -3016,8 +3022,8 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", "requires": { - "debug": "2.6.9", - "resolve": "1.9.0" + "debug": "^2.6.9", + "resolve": "^1.5.0" }, "dependencies": { "debug": { @@ -3035,8 +3041,8 @@ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", "requires": { - "debug": "2.6.9", - "pkg-dir": "1.0.0" + "debug": "^2.6.8", + "pkg-dir": "^1.0.0" }, "dependencies": { "debug": { @@ -3055,8 +3061,8 @@ "integrity": "sha512-XfFmgFdIUDgvaRAlaXUkxrRg5JSADoRC8IkKLc/cISeR3yHVMefFHQZpcyXXEUUPHfy5DwviBcrfqlyqEwlQVw==", "dev": true, "requires": { - "eslint-utils": "1.3.1", - "regexpp": "2.0.1" + "eslint-utils": "^1.3.0", + "regexpp": "^2.0.1" } }, "eslint-plugin-import": { @@ -3064,16 +3070,16 @@ "resolved": "http://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz", "integrity": "sha1-JgAu+/ylmJtyiKwEdQi9JPIXsWk=", "requires": { - "builtin-modules": "1.1.1", - "contains-path": "0.1.0", - "debug": "2.6.9", + "builtin-modules": "^1.1.1", + "contains-path": "^0.1.0", + "debug": "^2.6.8", "doctrine": "1.5.0", - "eslint-import-resolver-node": "0.3.2", - "eslint-module-utils": "2.2.0", - "has": "1.0.3", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "read-pkg-up": "2.0.0" + "eslint-import-resolver-node": "^0.3.1", + "eslint-module-utils": "^2.1.1", + "has": "^1.0.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.3", + "read-pkg-up": "^2.0.0" }, "dependencies": { "debug": { @@ -3089,8 +3095,8 @@ "resolved": "http://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" + "esutils": "^2.0.2", + "isarray": "^1.0.0" } } } @@ -3101,12 +3107,12 @@ "integrity": "sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw==", "dev": true, "requires": { - "eslint-plugin-es": "1.4.0", - "eslint-utils": "1.3.1", - "ignore": "4.0.6", - "minimatch": "3.0.4", - "resolve": "1.9.0", - "semver": "5.6.0" + "eslint-plugin-es": "^1.3.1", + "eslint-utils": "^1.3.1", + "ignore": "^4.0.2", + "minimatch": "^3.0.4", + "resolve": "^1.8.1", + "semver": "^5.5.0" }, "dependencies": { "ignore": { @@ -3123,8 +3129,8 @@ "integrity": "sha512-CStQYJgALoQBw3FsBzH0VOVDRnJ/ZimUlpLm226U8qgqYJfPOY/CPK6wyRInMxh73HSKg5wyRwdS4BVYYHwokA==", "dev": true, "requires": { - "fast-diff": "1.2.0", - "jest-docblock": "21.2.0" + "fast-diff": "^1.1.1", + "jest-docblock": "^21.0.0" } }, "eslint-plugin-promise": { @@ -3137,10 +3143,10 @@ "resolved": "http://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz", "integrity": "sha512-KC7Snr4YsWZD5flu6A5c0AcIZidzW3Exbqp7OT67OaD2AppJtlBr/GuPrW/vaQM/yfZotEvKAdrxrO+v8vwYJA==", "requires": { - "doctrine": "2.1.0", - "has": "1.0.3", - "jsx-ast-utils": "2.0.1", - "prop-types": "15.6.2" + "doctrine": "^2.0.2", + "has": "^1.0.1", + "jsx-ast-utils": "^2.0.1", + "prop-types": "^15.6.0" } }, "eslint-plugin-standard": { @@ -3153,8 +3159,8 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint-utils": { @@ -3173,8 +3179,8 @@ "resolved": "http://registry.npmjs.org/espree/-/espree-3.5.4.tgz", "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "requires": { - "acorn": "5.7.3", - "acorn-jsx": "3.0.1" + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" } }, "esprima": { @@ -3187,7 +3193,7 @@ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "esrecurse": { @@ -3195,7 +3201,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.1.0" } }, "estraverse": { @@ -3213,8 +3219,8 @@ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "requires": { - "md5.js": "1.3.5", - "safe-buffer": "5.1.2" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, "execa": { @@ -3222,13 +3228,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "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" } }, "expand-brackets": { @@ -3237,7 +3243,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "optional": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -3246,7 +3252,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "optional": true, "requires": { - "fill-range": "2.2.4" + "fill-range": "^2.1.0" } }, "extend": { @@ -3260,8 +3266,8 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -3269,7 +3275,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -3279,9 +3285,9 @@ "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" } }, "extglob": { @@ -3290,7 +3296,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "optional": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "extsprintf": { @@ -3316,12 +3322,12 @@ "integrity": "sha512-FjK2nCGI/McyzgNtTESqaWP3trPvHyRyoyY70hxjc3oKPNmDe8taohLZpoVKoUjW85tbU5txaYUZCNtVzygl1g==", "dev": true, "requires": { - "@mrmlnc/readdir-enhanced": "2.2.1", - "@nodelib/fs.stat": "1.1.3", - "glob-parent": "3.1.0", - "is-glob": "4.0.0", - "merge2": "1.2.3", - "micromatch": "3.1.10" + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" }, "dependencies": { "arr-diff": { @@ -3342,16 +3348,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -3360,7 +3366,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -3380,13 +3386,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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -3395,7 +3401,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -3404,7 +3410,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -3413,7 +3419,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -3422,7 +3428,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -3433,7 +3439,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -3442,7 +3448,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -3453,9 +3459,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": { @@ -3472,14 +3478,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { @@ -3488,7 +3494,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -3497,7 +3503,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -3508,10 +3514,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" }, "dependencies": { "extend-shallow": { @@ -3520,7 +3526,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -3531,8 +3537,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { @@ -3541,7 +3547,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -3552,7 +3558,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -3561,7 +3567,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -3570,9 +3576,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-extglob": { @@ -3587,7 +3593,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } }, "is-number": { @@ -3596,7 +3602,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -3605,7 +3611,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -3628,19 +3634,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } @@ -3665,7 +3671,7 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { @@ -3673,8 +3679,8 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "requires": { - "flat-cache": "1.3.4", - "object-assign": "4.1.1" + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" } }, "filename-regex": { @@ -3689,11 +3695,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "optional": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.1.1", - "repeat-element": "1.1.3", - "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" } }, "find-root": { @@ -3706,8 +3712,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" } }, "find-versions": { @@ -3716,8 +3722,8 @@ "integrity": "sha512-IUvtItVFNmTtKoB0PRfbkR0zR9XMG5rWNO3qI1S8L0zdv+v2gqzM0pAunloxqbqAfT8w7bg8n/5gHzTXte8H5A==", "dev": true, "requires": { - "array-uniq": "2.0.0", - "semver-regex": "2.0.0" + "array-uniq": "^2.0.0", + "semver-regex": "^2.0.0" }, "dependencies": { "array-uniq": { @@ -3733,10 +3739,10 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", "requires": { - "circular-json": "0.3.3", - "graceful-fs": "4.1.15", - "rimraf": "2.6.2", - "write": "0.2.1" + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" } }, "follow-redirects": { @@ -3744,7 +3750,7 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.6.0.tgz", "integrity": "sha512-4Oh4eI3S9OueVV41AgJ1oLjpaJUhbJ7JDGOMhe0AFqoSejl5Q2nn3eGglAzRUKVKZE8jG5MNn66TjCJMAnpsWA==", "requires": { - "debug": "3.1.0" + "debug": "=3.1.0" } }, "for-each": { @@ -3752,7 +3758,7 @@ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "requires": { - "is-callable": "1.1.4" + "is-callable": "^1.1.3" } }, "for-in": { @@ -3766,7 +3772,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "optional": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "forever-agent": { @@ -3781,9 +3787,9 @@ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.7", - "mime-types": "2.1.21" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" } }, "fragment-cache": { @@ -3791,7 +3797,7 @@ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fresh": { @@ -3806,8 +3812,8 @@ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "requires": { - "inherits": "2.0.1", - "readable-stream": "2.3.6" + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" } }, "fs-extra": { @@ -3816,9 +3822,9 @@ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "jsonfile": "4.0.0", - "universalify": "0.1.2" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, "fs-readdir-recursive": { @@ -3837,8 +3843,8 @@ "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", "optional": true, "requires": { - "nan": "2.12.1", - "node-pre-gyp": "0.10.0" + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" }, "dependencies": { "abbrev": { @@ -3860,8 +3866,8 @@ "bundled": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "balanced-match": { @@ -3872,7 +3878,7 @@ "version": "1.1.11", "bundled": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -3926,7 +3932,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "fs.realpath": { @@ -3939,14 +3945,14 @@ "bundled": true, "optional": 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" } }, "glob": { @@ -3954,12 +3960,12 @@ "bundled": true, "optional": 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" } }, "has-unicode": { @@ -3972,7 +3978,7 @@ "bundled": true, "optional": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "^2.1.0" } }, "ignore-walk": { @@ -3980,7 +3986,7 @@ "bundled": true, "optional": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "inflight": { @@ -3988,8 +3994,8 @@ "bundled": true, "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -4005,7 +4011,7 @@ "version": "1.0.0", "bundled": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "isarray": { @@ -4017,7 +4023,7 @@ "version": "3.0.4", "bundled": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -4028,8 +4034,8 @@ "version": "2.2.4", "bundled": true, "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" } }, "minizlib": { @@ -4037,7 +4043,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "mkdirp": { @@ -4057,9 +4063,9 @@ "bundled": true, "optional": true, "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, "node-pre-gyp": { @@ -4067,16 +4073,16 @@ "bundled": true, "optional": true, "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.7", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" + "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": { @@ -4084,8 +4090,8 @@ "bundled": true, "optional": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npm-bundled": { @@ -4098,8 +4104,8 @@ "bundled": true, "optional": true, "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, "npmlog": { @@ -4107,10 +4113,10 @@ "bundled": 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" + "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": { @@ -4126,7 +4132,7 @@ "version": "1.4.0", "bundled": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -4144,8 +4150,8 @@ "bundled": 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": { @@ -4163,10 +4169,10 @@ "bundled": true, "optional": true, "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "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": { @@ -4181,13 +4187,13 @@ "bundled": true, "optional": true, "requires": { - "core-util-is": "1.0.2", - "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.2" + "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": { @@ -4195,7 +4201,7 @@ "bundled": true, "optional": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { @@ -4231,9 +4237,9 @@ "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": { @@ -4241,14 +4247,14 @@ "bundled": true, "optional": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { "version": "3.0.1", "bundled": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -4261,13 +4267,13 @@ "bundled": true, "optional": true, "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "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" } }, "util-deprecate": { @@ -4280,7 +4286,7 @@ "bundled": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { @@ -4335,7 +4341,7 @@ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "git-clone": { @@ -4349,12 +4355,12 @@ "integrity": "sha1-LmpMGxP8AAKCB7p5WnrDFme5/Uo=", "dev": true, "requires": { - "argv-formatter": "1.0.0", - "spawn-error-forwarder": "1.0.0", - "split2": "1.0.0", - "stream-combiner2": "1.1.1", - "through2": "2.0.5", - "traverse": "0.6.6" + "argv-formatter": "~1.0.0", + "spawn-error-forwarder": "~1.0.0", + "split2": "~1.0.0", + "stream-combiner2": "~1.1.1", + "through2": "~2.0.0", + "traverse": "~0.6.6" }, "dependencies": { "split2": { @@ -4363,7 +4369,7 @@ "integrity": "sha1-UuLiIdiMdfmnP5BVbiY/+WdysxQ=", "dev": true, "requires": { - "through2": "2.0.5" + "through2": "~2.0.0" } } } @@ -4373,12 +4379,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.1", - "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": { @@ -4387,8 +4393,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "optional": true, "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -4396,7 +4402,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "glob-to-regexp": { @@ -4416,13 +4422,13 @@ "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", "dev": true, "requires": { - "array-union": "1.0.2", - "dir-glob": "2.0.0", - "fast-glob": "2.2.4", - "glob": "7.1.3", - "ignore": "3.3.10", - "pify": "3.0.0", - "slash": "1.0.0" + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" }, "dependencies": { "pify": { @@ -4450,10 +4456,10 @@ "integrity": "sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA==", "dev": true, "requires": { - "async": "2.6.1", - "optimist": "0.6.1", - "source-map": "0.6.1", - "uglify-js": "3.4.9" + "async": "^2.5.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" }, "dependencies": { "source-map": { @@ -4476,8 +4482,8 @@ "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "dev": true, "requires": { - "ajv": "6.6.2", - "har-schema": "2.0.0" + "ajv": "^6.5.5", + "har-schema": "^2.0.0" }, "dependencies": { "ajv": { @@ -4486,10 +4492,10 @@ "integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==", "dev": true, "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, "fast-deep-equal": { @@ -4511,7 +4517,7 @@ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.1.1" } }, "has-ansi": { @@ -4519,7 +4525,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-binary2": { @@ -4557,9 +4563,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "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" }, "dependencies": { "isobject": { @@ -4574,8 +4580,8 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { @@ -4583,7 +4589,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -4591,7 +4597,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -4601,7 +4607,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -4611,8 +4617,8 @@ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "hash.js": { @@ -4620,8 +4626,8 @@ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" }, "dependencies": { "inherits": { @@ -4642,9 +4648,9 @@ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { - "hash.js": "1.1.7", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, "home-or-tmp": { @@ -4652,8 +4658,8 @@ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" } }, "hook-std": { @@ -4673,7 +4679,7 @@ "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", "dev": true, "requires": { - "agent-base": "4.2.1", + "agent-base": "4", "debug": "3.1.0" } }, @@ -4683,9 +4689,9 @@ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.16.0" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "https-proxy-agent": { @@ -4694,8 +4700,8 @@ "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", "dev": true, "requires": { - "agent-base": "4.2.1", - "debug": "3.1.0" + "agent-base": "^4.1.0", + "debug": "^3.1.0" } }, "iconv-lite": { @@ -4703,7 +4709,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "ieee754": { @@ -4722,8 +4728,8 @@ "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", "dev": true, "requires": { - "caller-path": "2.0.0", - "resolve-from": "3.0.0" + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" }, "dependencies": { "caller-path": { @@ -4732,7 +4738,7 @@ "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", "dev": true, "requires": { - "caller-callsite": "2.0.0" + "caller-callsite": "^2.0.0" } }, "resolve-from": { @@ -4749,7 +4755,7 @@ "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", "dev": true, "requires": { - "resolve-from": "3.0.0" + "resolve-from": "^3.0.0" }, "dependencies": { "resolve-from": { @@ -4781,8 +4787,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -4800,20 +4806,20 @@ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.11", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" }, "dependencies": { "ansi-regex": { @@ -4826,7 +4832,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -4837,8 +4843,8 @@ "integrity": "sha512-i29KNyE5r0Y/UQzcQ0IbZO1MYJ53Jn0EcFRZPj5FzWKYH17kDFEOwuA+3jroymOI06SW1dEDnly9A1CAreC5dg==", "dev": true, "requires": { - "from2": "2.3.0", - "p-is-promise": "2.0.0" + "from2": "^2.1.1", + "p-is-promise": "^2.0.0" } }, "invariant": { @@ -4846,7 +4852,7 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -4859,7 +4865,7 @@ "resolved": "http://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-arrayish": { @@ -4873,7 +4879,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "optional": true, "requires": { - "binary-extensions": "1.12.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -4886,7 +4892,7 @@ "resolved": "http://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-callable": { @@ -4899,7 +4905,7 @@ "resolved": "http://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-date-object": { @@ -4912,9 +4918,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "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": { @@ -4942,7 +4948,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "optional": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -4960,7 +4966,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-fullwidth-code-point": { @@ -4973,7 +4979,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-number": { @@ -4982,7 +4988,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-obj": { @@ -5002,7 +5008,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -5034,7 +5040,7 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "requires": { - "has": "1.0.3" + "has": "^1.0.1" } }, "is-resolvable": { @@ -5058,7 +5064,7 @@ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", "requires": { - "has-symbols": "1.0.0" + "has-symbols": "^1.0.0" } }, "is-text-path": { @@ -5067,7 +5073,7 @@ "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", "dev": true, "requires": { - "text-extensions": "1.9.0" + "text-extensions": "^1.0.0" } }, "is-typedarray": { @@ -5112,11 +5118,11 @@ "integrity": "sha512-5wdT3EE8Kq38x/hJD8QZCJ9scGoOZ5QnzwXyClkviSWTS+xOCE6hJ0qco3H5n5jCsFqpbofZCcMWqlXJzF72VQ==", "dev": true, "requires": { - "lodash.capitalize": "4.2.1", - "lodash.escaperegexp": "4.1.2", - "lodash.isplainobject": "4.0.6", - "lodash.isstring": "4.0.1", - "lodash.uniqby": "4.7.0" + "lodash.capitalize": "^4.2.1", + "lodash.escaperegexp": "^4.1.2", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.uniqby": "^4.7.0" } }, "java-properties": { @@ -5141,8 +5147,8 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsbn": { @@ -5194,7 +5200,7 @@ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { - "graceful-fs": "4.1.15" + "graceful-fs": "^4.1.6" } }, "jsonparse": { @@ -5220,7 +5226,7 @@ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", "requires": { - "array-includes": "3.0.3" + "array-includes": "^3.0.3" } }, "just-extend": { @@ -5234,10 +5240,10 @@ "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", "requires": { - "bindings": "1.3.1", - "inherits": "2.0.3", - "nan": "2.12.1", - "safe-buffer": "5.1.2" + "bindings": "^1.2.1", + "inherits": "^2.0.3", + "nan": "^2.2.1", + "safe-buffer": "^5.1.0" }, "dependencies": { "inherits": { @@ -5252,7 +5258,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lcid": { @@ -5260,7 +5266,7 @@ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "lcov-parse": { @@ -5274,8 +5280,8 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "load-json-file": { @@ -5283,10 +5289,10 @@ "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "requires": { - "graceful-fs": "4.1.15", - "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" } }, "locate-path": { @@ -5294,8 +5300,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" }, "dependencies": { "path-exists": { @@ -5392,7 +5398,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0 || ^4.0.0" } }, "loud-rejection": { @@ -5401,8 +5407,8 @@ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" } }, "lru-cache": { @@ -5410,8 +5416,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "macos-release": { @@ -5425,7 +5431,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" }, "dependencies": { "pify": { @@ -5441,7 +5447,7 @@ "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", "dev": true, "requires": { - "p-defer": "1.0.0" + "p-defer": "^1.0.0" } }, "map-cache": { @@ -5460,7 +5466,7 @@ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "marked": { @@ -5475,11 +5481,11 @@ "integrity": "sha512-7UBFww1rdx0w9HehLMCVYa8/AxXaiDigDfMsJcj82/wgLQG9cj+oiMAVlJpeWD57VFJY2OYY+bKeEVIjIlxi+w==", "dev": true, "requires": { - "cardinal": "2.1.1", - "chalk": "2.4.1", - "cli-table": "0.3.1", - "lodash.assign": "4.2.0", - "node-emoji": "1.8.1" + "cardinal": "^2.1.1", + "chalk": "^2.4.1", + "cli-table": "^0.3.1", + "lodash.assign": "^4.2.0", + "node-emoji": "^1.4.1" } }, "math-random": { @@ -5493,9 +5499,9 @@ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, "media-typer": { @@ -5509,7 +5515,7 @@ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "meow": { @@ -5518,15 +5524,15 @@ "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", "dev": true, "requires": { - "camelcase-keys": "4.2.0", - "decamelize-keys": "1.1.0", - "loud-rejection": "1.6.0", - "minimist": "1.2.0", - "minimist-options": "3.0.2", - "normalize-package-data": "2.4.0", - "read-pkg-up": "3.0.0", - "redent": "2.0.0", - "trim-newlines": "2.0.0" + "camelcase-keys": "^4.0.0", + "decamelize-keys": "^1.0.0", + "loud-rejection": "^1.0.0", + "minimist": "^1.1.3", + "minimist-options": "^3.0.1", + "normalize-package-data": "^2.3.4", + "read-pkg-up": "^3.0.0", + "redent": "^2.0.0", + "trim-newlines": "^2.0.0" }, "dependencies": { "find-up": { @@ -5535,7 +5541,7 @@ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "load-json-file": { @@ -5544,10 +5550,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "minimist": { @@ -5562,8 +5568,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "path-type": { @@ -5572,7 +5578,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "pify": { @@ -5587,9 +5593,9 @@ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "4.0.0", - "normalize-package-data": "2.4.0", - "path-type": "3.0.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" } }, "read-pkg-up": { @@ -5598,8 +5604,8 @@ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { - "find-up": "2.1.0", - "read-pkg": "3.0.0" + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" } } } @@ -5633,19 +5639,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "optional": 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" } }, "mime": { @@ -5664,7 +5670,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", "requires": { - "mime-db": "1.37.0" + "mime-db": "~1.37.0" } }, "mimic-fn": { @@ -5687,7 +5693,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -5701,8 +5707,8 @@ "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", "dev": true, "requires": { - "arrify": "1.0.1", - "is-plain-obj": "1.1.0" + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0" } }, "mixin-deep": { @@ -5710,8 +5716,8 @@ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -5719,7 +5725,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -5763,12 +5769,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.1", - "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" } }, "supports-color": { @@ -5777,7 +5783,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -5808,17 +5814,17 @@ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "arr-diff": { @@ -5877,11 +5883,11 @@ "integrity": "sha512-kGASVhuL4tlAV0tvA34yJYZIVihrUt/5bDwpp4tTluigxUr2bBlJeDXmivb6NuEdFkqvdv/Ybb9dm16PSKUhtw==", "dev": true, "requires": { - "@sinonjs/formatio": "3.1.0", - "just-extend": "4.0.2", - "lolex": "2.7.5", - "path-to-regexp": "1.7.0", - "text-encoding": "0.6.4" + "@sinonjs/formatio": "^3.1.0", + "just-extend": "^4.0.2", + "lolex": "^2.3.2", + "path-to-regexp": "^1.7.0", + "text-encoding": "^0.6.4" }, "dependencies": { "@sinonjs/formatio": { @@ -5890,7 +5896,7 @@ "integrity": "sha512-ZAR2bPHOl4Xg6eklUGpsdiIJ4+J1SNag1DHHrG/73Uz/nVwXqjgUtRPLoS+aVyieN9cSbc0E4LsU984tWcDyNg==", "dev": true, "requires": { - "@sinonjs/samsam": "3.0.2" + "@sinonjs/samsam": "^2 || ^3" } } } @@ -5905,7 +5911,7 @@ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", "requires": { - "lodash.toarray": "4.4.0" + "lodash.toarray": "^4.4.0" } }, "node-fetch": { @@ -5920,16 +5926,16 @@ "integrity": "sha512-wayzLNhEroH3lJj113pFKQ1cd1GKG1mXoZR1HcKp/o9a9lTGGgVY/hYeLajiIFr/z4tXFKOdfJickqqihBtn9g==", "dev": true, "requires": { - "accepts": "1.3.5", - "depd": "1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "mime": "1.6.0", - "net": "1.0.2", - "parseurl": "1.3.2", - "range-parser": "1.2.0", - "type-is": "1.6.16" + "accepts": "^1.3.5", + "depd": "^1.1.0", + "fresh": "^0.5.2", + "merge-descriptors": "^1.0.1", + "methods": "^1.1.2", + "mime": "^1.3.4", + "net": "^1.0.2", + "parseurl": "^1.3.1", + "range-parser": "^1.2.0", + "type-is": "^1.6.16" } }, "nopt": { @@ -5937,7 +5943,7 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } }, "normalize-package-data": { @@ -5945,10 +5951,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.7.1", - "is-builtin-module": "1.0.0", - "semver": "5.6.0", - "validate-npm-package-license": "3.0.4" + "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": { @@ -5956,7 +5962,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "normalize-url": { @@ -5971,124 +5977,124 @@ "integrity": "sha512-SPq8zG2Kto+Xrq55E97O14Jla13PmQT5kSnvwBj88BmJZ5Nvw++OmlWfhjkB67pcgP5UEXljEtnGFKZtOgt6MQ==", "dev": true, "requires": { - "JSONStream": "1.3.4", - "abbrev": "1.1.1", - "ansicolors": "0.3.2", - "ansistyles": "0.1.3", - "aproba": "1.2.0", - "archy": "1.0.0", - "bin-links": "1.1.2", - "bluebird": "3.5.3", - "byte-size": "4.0.3", - "cacache": "11.2.0", - "call-limit": "1.1.0", - "chownr": "1.0.1", - "ci-info": "1.6.0", - "cli-columns": "3.1.2", - "cli-table3": "0.5.0", - "cmd-shim": "2.0.2", - "columnify": "1.5.4", - "config-chain": "1.1.12", - "debuglog": "1.0.1", - "detect-indent": "5.0.0", - "detect-newline": "2.1.0", - "dezalgo": "1.0.3", - "editor": "1.0.0", - "figgy-pudding": "3.5.1", - "find-npm-prefix": "1.0.2", - "fs-vacuum": "1.2.10", - "fs-write-stream-atomic": "1.0.10", - "gentle-fs": "2.0.1", - "glob": "7.1.3", - "graceful-fs": "4.1.15", - "has-unicode": "2.0.1", - "hosted-git-info": "2.7.1", - "iferr": "1.0.2", - "imurmurhash": "0.1.4", - "inflight": "1.0.6", - "inherits": "2.0.3", - "ini": "1.3.5", - "init-package-json": "1.10.3", - "is-cidr": "2.0.6", - "json-parse-better-errors": "1.0.2", - "lazy-property": "1.0.0", - "libcipm": "2.0.2", - "libnpmhook": "4.0.1", - "libnpx": "10.2.0", - "lock-verify": "2.0.2", - "lockfile": "1.0.4", - "lodash._baseindexof": "3.1.0", - "lodash._baseuniq": "4.6.0", - "lodash._bindcallback": "3.0.1", - "lodash._cacheindexof": "3.0.2", - "lodash._createcache": "3.1.2", - "lodash._getnative": "3.9.1", - "lodash.clonedeep": "4.5.0", - "lodash.restparam": "3.6.1", - "lodash.union": "4.6.0", - "lodash.uniq": "4.5.0", - "lodash.without": "4.4.0", - "lru-cache": "4.1.3", - "meant": "1.0.1", - "mississippi": "3.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "node-gyp": "3.8.0", - "nopt": "4.0.1", - "normalize-package-data": "2.4.0", - "npm-audit-report": "1.3.1", - "npm-cache-filename": "1.0.2", - "npm-install-checks": "3.0.0", - "npm-lifecycle": "2.1.0", - "npm-package-arg": "6.1.0", - "npm-packlist": "1.1.12", - "npm-pick-manifest": "2.1.0", - "npm-profile": "3.0.2", - "npm-registry-client": "8.6.0", - "npm-registry-fetch": "1.1.0", - "npm-user-validate": "1.0.0", - "npmlog": "4.1.2", - "once": "1.4.0", - "opener": "1.5.1", - "osenv": "0.1.5", - "pacote": "8.1.6", - "path-is-inside": "1.0.2", - "promise-inflight": "1.0.1", - "qrcode-terminal": "0.12.0", - "query-string": "6.1.0", - "qw": "1.0.1", - "read": "1.0.7", - "read-cmd-shim": "1.0.1", - "read-installed": "4.0.3", - "read-package-json": "2.0.13", - "read-package-tree": "5.2.1", - "readable-stream": "2.3.6", - "readdir-scoped-modules": "1.0.2", - "request": "2.88.0", - "retry": "0.12.0", - "rimraf": "2.6.2", - "safe-buffer": "5.1.2", - "semver": "5.5.1", - "sha": "2.0.1", - "slide": "1.1.6", - "sorted-object": "2.0.1", - "sorted-union-stream": "2.1.3", - "ssri": "6.0.1", - "stringify-package": "1.0.0", - "tar": "4.4.8", - "text-table": "0.2.0", - "tiny-relative-date": "1.3.0", + "JSONStream": "^1.3.4", + "abbrev": "~1.1.1", + "ansicolors": "~0.3.2", + "ansistyles": "~0.1.3", + "aproba": "~1.2.0", + "archy": "~1.0.0", + "bin-links": "^1.1.2", + "bluebird": "^3.5.3", + "byte-size": "^4.0.3", + "cacache": "^11.2.0", + "call-limit": "~1.1.0", + "chownr": "~1.0.1", + "ci-info": "^1.6.0", + "cli-columns": "^3.1.2", + "cli-table3": "^0.5.0", + "cmd-shim": "~2.0.2", + "columnify": "~1.5.4", + "config-chain": "^1.1.12", + "debuglog": "*", + "detect-indent": "~5.0.0", + "detect-newline": "^2.1.0", + "dezalgo": "~1.0.3", + "editor": "~1.0.0", + "figgy-pudding": "^3.5.1", + "find-npm-prefix": "^1.0.2", + "fs-vacuum": "~1.2.10", + "fs-write-stream-atomic": "~1.0.10", + "gentle-fs": "^2.0.1", + "glob": "^7.1.3", + "graceful-fs": "^4.1.15", + "has-unicode": "~2.0.1", + "hosted-git-info": "^2.7.1", + "iferr": "^1.0.2", + "imurmurhash": "*", + "inflight": "~1.0.6", + "inherits": "~2.0.3", + "ini": "^1.3.5", + "init-package-json": "^1.10.3", + "is-cidr": "^2.0.6", + "json-parse-better-errors": "^1.0.2", + "lazy-property": "~1.0.0", + "libcipm": "^2.0.2", + "libnpmhook": "^4.0.1", + "libnpx": "^10.2.0", + "lock-verify": "^2.0.2", + "lockfile": "^1.0.4", + "lodash._baseindexof": "*", + "lodash._baseuniq": "~4.6.0", + "lodash._bindcallback": "*", + "lodash._cacheindexof": "*", + "lodash._createcache": "*", + "lodash._getnative": "*", + "lodash.clonedeep": "~4.5.0", + "lodash.restparam": "*", + "lodash.union": "~4.6.0", + "lodash.uniq": "~4.5.0", + "lodash.without": "~4.4.0", + "lru-cache": "^4.1.3", + "meant": "~1.0.1", + "mississippi": "^3.0.0", + "mkdirp": "~0.5.1", + "move-concurrently": "^1.0.1", + "node-gyp": "^3.8.0", + "nopt": "~4.0.1", + "normalize-package-data": "~2.4.0", + "npm-audit-report": "^1.3.1", + "npm-cache-filename": "~1.0.2", + "npm-install-checks": "~3.0.0", + "npm-lifecycle": "^2.1.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.12", + "npm-pick-manifest": "^2.1.0", + "npm-profile": "^3.0.2", + "npm-registry-client": "^8.6.0", + "npm-registry-fetch": "^1.1.0", + "npm-user-validate": "~1.0.0", + "npmlog": "~4.1.2", + "once": "~1.4.0", + "opener": "^1.5.1", + "osenv": "^0.1.5", + "pacote": "^8.1.6", + "path-is-inside": "~1.0.2", + "promise-inflight": "~1.0.1", + "qrcode-terminal": "^0.12.0", + "query-string": "^6.1.0", + "qw": "~1.0.1", + "read": "~1.0.7", + "read-cmd-shim": "~1.0.1", + "read-installed": "~4.0.3", + "read-package-json": "^2.0.13", + "read-package-tree": "^5.2.1", + "readable-stream": "^2.3.6", + "readdir-scoped-modules": "*", + "request": "^2.88.0", + "retry": "^0.12.0", + "rimraf": "~2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.5.1", + "sha": "~2.0.1", + "slide": "~1.1.6", + "sorted-object": "~2.0.1", + "sorted-union-stream": "~2.1.3", + "ssri": "^6.0.1", + "stringify-package": "^1.0.0", + "tar": "^4.4.8", + "text-table": "~0.2.0", + "tiny-relative-date": "^1.3.0", "uid-number": "0.0.6", - "umask": "1.1.0", - "unique-filename": "1.1.0", - "unpipe": "1.0.0", - "update-notifier": "2.5.0", - "uuid": "3.3.2", - "validate-npm-package-license": "3.0.4", - "validate-npm-package-name": "3.0.0", - "which": "1.3.1", - "worker-farm": "1.6.0", - "write-file-atomic": "2.3.0" + "umask": "~1.1.0", + "unique-filename": "~1.1.0", + "unpipe": "~1.0.0", + "update-notifier": "^2.5.0", + "uuid": "^3.3.2", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "~3.0.0", + "which": "^1.3.1", + "worker-farm": "^1.6.0", + "write-file-atomic": "^2.3.0" }, "dependencies": { "JSONStream": { @@ -6097,8 +6103,8 @@ "integrity": "sha512-Y7vfi3I5oMOYIr+WxV8NZxDSwcbNgzdKYsTNInmycOq9bUYwGg9ryu57Wg5NLmCjqdFPNUmpMBo3kSJN9tCbXg==", "dev": true, "requires": { - "jsonparse": "1.3.1", - "through": "2.3.8" + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" } }, "abbrev": { @@ -6113,7 +6119,7 @@ "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", "dev": true, "requires": { - "es6-promisify": "5.0.0" + "es6-promisify": "^5.0.0" } }, "agentkeepalive": { @@ -6122,7 +6128,7 @@ "integrity": "sha512-MPIwsZU9PP9kOrZpyu2042kYA8Fdt/AedQYkYXucHgF9QoD9dXVp0ypuGnHXSR0hTstBxdt85Xkh4JolYfK5wg==", "dev": true, "requires": { - "humanize-ms": "1.2.1" + "humanize-ms": "^1.2.1" } }, "ajv": { @@ -6131,10 +6137,10 @@ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "ansi-align": { @@ -6143,7 +6149,7 @@ "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "dev": true, "requires": { - "string-width": "2.1.1" + "string-width": "^2.0.0" } }, "ansi-regex": { @@ -6158,7 +6164,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "^1.9.0" } }, "ansicolors": { @@ -6191,8 +6197,8 @@ "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "dev": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "asap": { @@ -6207,7 +6213,7 @@ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "~2.1.0" } }, "assert-plus": { @@ -6247,7 +6253,7 @@ "dev": true, "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "bin-links": { @@ -6256,11 +6262,11 @@ "integrity": "sha512-8eEHVgYP03nILphilltWjeIjMbKyJo3wvp9K816pHbhP301ismzw15mxAAEVQ/USUwcP++1uNrbERbp8lOA6Fg==", "dev": true, "requires": { - "bluebird": "3.5.3", - "cmd-shim": "2.0.2", - "gentle-fs": "2.0.1", - "graceful-fs": "4.1.15", - "write-file-atomic": "2.3.0" + "bluebird": "^3.5.0", + "cmd-shim": "^2.0.2", + "gentle-fs": "^2.0.0", + "graceful-fs": "^4.1.11", + "write-file-atomic": "^2.3.0" } }, "block-stream": { @@ -6269,7 +6275,7 @@ "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "dev": true, "requires": { - "inherits": "2.0.3" + "inherits": "~2.0.0" } }, "bluebird": { @@ -6284,13 +6290,13 @@ "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", "dev": true, "requires": { - "ansi-align": "2.0.0", - "camelcase": "4.1.0", - "chalk": "2.4.1", - "cli-boxes": "1.0.0", - "string-width": "2.1.1", - "term-size": "1.2.0", - "widest-line": "2.0.0" + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" } }, "brace-expansion": { @@ -6299,7 +6305,7 @@ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -6339,20 +6345,20 @@ "integrity": "sha512-IFWl6lfK6wSeYCHUXh+N1lY72UDrpyrYQJNIVQf48paDuWbv5RbAtJYf/4gUQFObTCHZwdZ5sI8Iw7nqwP6nlQ==", "dev": true, "requires": { - "bluebird": "3.5.3", - "chownr": "1.0.1", - "figgy-pudding": "3.5.1", - "glob": "7.1.3", - "graceful-fs": "4.1.15", - "lru-cache": "4.1.3", - "mississippi": "3.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.2", - "ssri": "6.0.1", - "unique-filename": "1.1.0", - "y18n": "4.0.0" + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "figgy-pudding": "^3.1.0", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.3", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^6.0.0", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" } }, "call-limit": { @@ -6385,9 +6391,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "chownr": { @@ -6408,7 +6414,7 @@ "integrity": "sha512-F7/fBRUU45FnvSPjXdpIrc++WRSBdCiSTlyq4ZNhLKOlHFNWgtzZ0Fd+zrqI/J1j0wmlx/f5ZQDmD2GcbrNcmw==", "dev": true, "requires": { - "ip-regex": "2.1.0" + "ip-regex": "^2.1.0" } }, "cli-boxes": { @@ -6423,8 +6429,8 @@ "integrity": "sha1-ZzLZcpee/CrkRKHwjgj6E5yWoY4=", "dev": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "3.0.1" + "string-width": "^2.0.0", + "strip-ansi": "^3.0.1" } }, "cli-table3": { @@ -6433,9 +6439,9 @@ "integrity": "sha512-c7YHpUyO1SaKaO7kYtxd5NZ8FjAmSK3LpKkuzdwn+2CwpFxBpdoQLm+OAnnCfoEl7onKhN9PKQi1lsHuAIUqGQ==", "dev": true, "requires": { - "colors": "1.1.2", - "object-assign": "4.1.1", - "string-width": "2.1.1" + "colors": "^1.1.2", + "object-assign": "^4.1.0", + "string-width": "^2.1.1" } }, "cliui": { @@ -6444,9 +6450,9 @@ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" }, "dependencies": { "ansi-regex": { @@ -6461,7 +6467,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -6478,8 +6484,8 @@ "integrity": "sha1-b8vamUg6j9FdfTChlspp1oii79s=", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "mkdirp": "0.5.1" + "graceful-fs": "^4.1.2", + "mkdirp": "~0.5.0" } }, "co": { @@ -6500,7 +6506,7 @@ "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "^1.1.1" } }, "color-name": { @@ -6522,8 +6528,8 @@ "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=", "dev": true, "requires": { - "strip-ansi": "3.0.1", - "wcwidth": "1.0.1" + "strip-ansi": "^3.0.0", + "wcwidth": "^1.0.0" } }, "combined-stream": { @@ -6532,7 +6538,7 @@ "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "dev": true, "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "concat-map": { @@ -6547,10 +6553,10 @@ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { - "buffer-from": "1.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, "config-chain": { @@ -6559,8 +6565,8 @@ "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", "dev": true, "requires": { - "ini": "1.3.5", - "proto-list": "1.2.4" + "ini": "^1.3.4", + "proto-list": "~1.2.1" } }, "configstore": { @@ -6569,12 +6575,12 @@ "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", "dev": true, "requires": { - "dot-prop": "4.2.0", - "graceful-fs": "4.1.15", - "make-dir": "1.3.0", - "unique-string": "1.0.0", - "write-file-atomic": "2.3.0", - "xdg-basedir": "3.0.0" + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" } }, "console-control-strings": { @@ -6589,12 +6595,12 @@ "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", "dev": true, "requires": { - "aproba": "1.2.0", - "fs-write-stream-atomic": "1.0.10", - "iferr": "0.1.5", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "run-queue": "1.0.3" + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" }, "dependencies": { "iferr": { @@ -6617,7 +6623,7 @@ "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "dev": true, "requires": { - "capture-stack-trace": "1.0.0" + "capture-stack-trace": "^1.0.0" } }, "cross-spawn": { @@ -6626,9 +6632,9 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "crypto-random-string": { @@ -6649,7 +6655,7 @@ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "debug": { @@ -6699,7 +6705,7 @@ "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "dev": true, "requires": { - "clone": "1.0.4" + "clone": "^1.0.2" } }, "delayed-stream": { @@ -6732,8 +6738,8 @@ "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", "dev": true, "requires": { - "asap": "2.0.6", - "wrappy": "1.0.2" + "asap": "^2.0.0", + "wrappy": "1" } }, "dot-prop": { @@ -6742,7 +6748,7 @@ "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", "dev": true, "requires": { - "is-obj": "1.0.1" + "is-obj": "^1.0.0" } }, "dotenv": { @@ -6763,10 +6769,10 @@ "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", "dev": true, "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" } }, "ecc-jsbn": { @@ -6776,8 +6782,8 @@ "dev": true, "optional": true, "requires": { - "jsbn": "0.1.1", - "safer-buffer": "2.1.2" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, "editor": { @@ -6792,7 +6798,7 @@ "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "dev": true, "requires": { - "iconv-lite": "0.4.23" + "iconv-lite": "~0.4.13" } }, "end-of-stream": { @@ -6801,7 +6807,7 @@ "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "dev": true, "requires": { - "once": "1.4.0" + "once": "^1.4.0" } }, "err-code": { @@ -6816,7 +6822,7 @@ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "dev": true, "requires": { - "prr": "1.0.1" + "prr": "~1.0.1" } }, "es6-promise": { @@ -6831,7 +6837,7 @@ "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "dev": true, "requires": { - "es6-promise": "4.2.4" + "es6-promise": "^4.0.3" } }, "escape-string-regexp": { @@ -6846,13 +6852,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" } }, "extend": { @@ -6897,7 +6903,7 @@ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "flush-write-stream": { @@ -6906,8 +6912,8 @@ "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "inherits": "^2.0.1", + "readable-stream": "^2.0.4" } }, "forever-agent": { @@ -6922,9 +6928,9 @@ "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "dev": true, "requires": { - "asynckit": "0.4.0", + "asynckit": "^0.4.0", "combined-stream": "1.0.6", - "mime-types": "2.1.19" + "mime-types": "^2.1.12" } }, "from2": { @@ -6933,8 +6939,8 @@ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" } }, "fs-minipass": { @@ -6943,7 +6949,7 @@ "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", "dev": true, "requires": { - "minipass": "2.3.3" + "minipass": "^2.2.1" } }, "fs-vacuum": { @@ -6952,9 +6958,9 @@ "integrity": "sha1-t2Kb7AekAxolSP35n17PHMizHjY=", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "path-is-inside": "1.0.2", - "rimraf": "2.6.2" + "graceful-fs": "^4.1.2", + "path-is-inside": "^1.0.1", + "rimraf": "^2.5.2" } }, "fs-write-stream-atomic": { @@ -6963,10 +6969,10 @@ "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "iferr": "0.1.5", - "imurmurhash": "0.1.4", - "readable-stream": "2.3.6" + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" }, "dependencies": { "iferr": { @@ -6989,10 +6995,10 @@ "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "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" } }, "gauge": { @@ -7001,14 +7007,14 @@ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": 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" }, "dependencies": { "string-width": { @@ -7017,9 +7023,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "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" } } } @@ -7036,14 +7042,14 @@ "integrity": "sha512-cEng5+3fuARewXktTEGbwsktcldA+YsnUEaXZwcK/3pjSE1X9ObnTs+/8rYf8s+RnIcQm2D5x3rwpN7Zom8Bew==", "dev": true, "requires": { - "aproba": "1.2.0", - "fs-vacuum": "1.2.10", - "graceful-fs": "4.1.15", - "iferr": "0.1.5", - "mkdirp": "0.5.1", - "path-is-inside": "1.0.2", - "read-cmd-shim": "1.0.1", - "slide": "1.1.6" + "aproba": "^1.1.2", + "fs-vacuum": "^1.2.10", + "graceful-fs": "^4.1.11", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "path-is-inside": "^1.0.2", + "read-cmd-shim": "^1.0.1", + "slide": "^1.1.6" }, "dependencies": { "iferr": { @@ -7072,7 +7078,7 @@ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "glob": { @@ -7081,12 +7087,12 @@ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "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" } }, "global-dirs": { @@ -7095,7 +7101,7 @@ "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "dev": true, "requires": { - "ini": "1.3.5" + "ini": "^1.3.4" } }, "got": { @@ -7104,17 +7110,17 @@ "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "dev": true, "requires": { - "create-error-class": "3.0.2", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "is-redirect": "1.0.0", - "is-retry-allowed": "1.1.0", - "is-stream": "1.1.0", - "lowercase-keys": "1.0.1", - "safe-buffer": "5.1.2", - "timed-out": "4.0.1", - "unzip-response": "2.0.1", - "url-parse-lax": "1.0.0" + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" } }, "graceful-fs": { @@ -7135,8 +7141,8 @@ "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", "dev": true, "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" + "ajv": "^5.3.0", + "har-schema": "^2.0.0" } }, "has-flag": { @@ -7169,7 +7175,7 @@ "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", "dev": true, "requires": { - "agent-base": "4.2.0", + "agent-base": "4", "debug": "3.1.0" } }, @@ -7179,9 +7185,9 @@ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.14.2" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "https-proxy-agent": { @@ -7190,8 +7196,8 @@ "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", "dev": true, "requires": { - "agent-base": "4.2.0", - "debug": "3.1.0" + "agent-base": "^4.1.0", + "debug": "^3.1.0" } }, "humanize-ms": { @@ -7200,7 +7206,7 @@ "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", "dev": true, "requires": { - "ms": "2.1.1" + "ms": "^2.0.0" } }, "iconv-lite": { @@ -7209,7 +7215,7 @@ "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "dev": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "iferr": { @@ -7224,7 +7230,7 @@ "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "dev": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "import-lazy": { @@ -7245,8 +7251,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -7267,14 +7273,14 @@ "integrity": "sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==", "dev": true, "requires": { - "glob": "7.1.3", - "npm-package-arg": "6.1.0", - "promzard": "0.3.0", - "read": "1.0.7", - "read-package-json": "2.0.13", - "semver": "5.5.1", - "validate-npm-package-license": "3.0.4", - "validate-npm-package-name": "3.0.0" + "glob": "^7.1.1", + "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0", + "promzard": "^0.3.0", + "read": "~1.0.1", + "read-package-json": "1 || 2", + "semver": "2.x || 3.x || 4 || 5", + "validate-npm-package-license": "^3.0.1", + "validate-npm-package-name": "^3.0.0" } }, "invert-kv": { @@ -7301,7 +7307,7 @@ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-ci": { @@ -7310,7 +7316,7 @@ "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", "dev": true, "requires": { - "ci-info": "1.6.0" + "ci-info": "^1.0.0" } }, "is-cidr": { @@ -7319,7 +7325,7 @@ "integrity": "sha512-A578p1dV22TgPXn6NCaDAPj6vJvYsBgAzUrAd28a4oldeXJjWqEUuSZOLIW3im51mazOKsoyVp8NU/OItlWacw==", "dev": true, "requires": { - "cidr-regex": "2.0.9" + "cidr-regex": "^2.0.8" } }, "is-fullwidth-code-point": { @@ -7328,7 +7334,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-installed-globally": { @@ -7337,8 +7343,8 @@ "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "dev": true, "requires": { - "global-dirs": "0.1.1", - "is-path-inside": "1.0.1" + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" } }, "is-npm": { @@ -7359,7 +7365,7 @@ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.1" } }, "is-redirect": { @@ -7459,7 +7465,7 @@ "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", "dev": true, "requires": { - "package-json": "4.0.1" + "package-json": "^4.0.0" } }, "lazy-property": { @@ -7474,7 +7480,7 @@ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "libcipm": { @@ -7483,20 +7489,20 @@ "integrity": "sha512-9uZ6/LAflVEijksTRq/RX0e+pGA4mr8tND9Cmk2JMg7j2fFUBrs8PpFX2DOAJR/XoxPzz+5h8bkWmtIYLunKAg==", "dev": true, "requires": { - "bin-links": "1.1.2", - "bluebird": "3.5.3", - "find-npm-prefix": "1.0.2", - "graceful-fs": "4.1.15", - "lock-verify": "2.0.2", - "mkdirp": "0.5.1", - "npm-lifecycle": "2.1.0", - "npm-logical-tree": "1.2.1", - "npm-package-arg": "6.1.0", - "pacote": "8.1.6", - "protoduck": "5.0.0", - "read-package-json": "2.0.13", - "rimraf": "2.6.2", - "worker-farm": "1.6.0" + "bin-links": "^1.1.2", + "bluebird": "^3.5.1", + "find-npm-prefix": "^1.0.2", + "graceful-fs": "^4.1.11", + "lock-verify": "^2.0.2", + "mkdirp": "^0.5.1", + "npm-lifecycle": "^2.0.3", + "npm-logical-tree": "^1.2.1", + "npm-package-arg": "^6.1.0", + "pacote": "^8.1.6", + "protoduck": "^5.0.0", + "read-package-json": "^2.0.13", + "rimraf": "^2.6.2", + "worker-farm": "^1.6.0" } }, "libnpmhook": { @@ -7505,8 +7511,8 @@ "integrity": "sha512-3qqpfqvBD1712WA6iGe0stkG40WwAeoWcujA6BlC0Be1JArQbqwabnEnZ0CRcD05Tf1fPYJYdCbSfcfedEJCOg==", "dev": true, "requires": { - "figgy-pudding": "3.5.1", - "npm-registry-fetch": "3.1.1" + "figgy-pudding": "^3.1.0", + "npm-registry-fetch": "^3.0.0" }, "dependencies": { "npm-registry-fetch": { @@ -7515,11 +7521,11 @@ "integrity": "sha512-xBobENeenvjIG8PgQ1dy77AXTI25IbYhmA3DusMIfw/4EL5BaQ5e1V9trkPrqHvyjR3/T0cnH6o0Wt/IzcI5Ag==", "dev": true, "requires": { - "bluebird": "3.5.3", - "figgy-pudding": "3.5.1", - "lru-cache": "4.1.3", - "make-fetch-happen": "4.0.1", - "npm-package-arg": "6.1.0" + "bluebird": "^3.5.1", + "figgy-pudding": "^3.1.0", + "lru-cache": "^4.1.2", + "make-fetch-happen": "^4.0.0", + "npm-package-arg": "^6.0.0" } } } @@ -7530,14 +7536,14 @@ "integrity": "sha512-X28coei8/XRCt15cYStbLBph+KGhFra4VQhRBPuH/HHMkC5dxM8v24RVgUsvODKCrUZ0eTgiTqJp6zbl0sskQQ==", "dev": true, "requires": { - "dotenv": "5.0.1", - "npm-package-arg": "6.1.0", - "rimraf": "2.6.2", - "safe-buffer": "5.1.2", - "update-notifier": "2.5.0", - "which": "1.3.1", - "y18n": "4.0.0", - "yargs": "11.0.0" + "dotenv": "^5.0.1", + "npm-package-arg": "^6.0.0", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.0", + "update-notifier": "^2.3.0", + "which": "^1.3.0", + "y18n": "^4.0.0", + "yargs": "^11.0.0" } }, "locate-path": { @@ -7546,8 +7552,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" } }, "lock-verify": { @@ -7556,8 +7562,8 @@ "integrity": "sha512-QNVwK0EGZBS4R3YQ7F1Ox8p41Po9VGl2QG/2GsuvTbkJZYSsPeWHKMbbH6iZMCHWSMww5nrJroZYnGzI4cePuw==", "dev": true, "requires": { - "npm-package-arg": "6.1.0", - "semver": "5.5.1" + "npm-package-arg": "^5.1.2 || 6", + "semver": "^5.4.1" } }, "lockfile": { @@ -7566,7 +7572,7 @@ "integrity": "sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==", "dev": true, "requires": { - "signal-exit": "3.0.2" + "signal-exit": "^3.0.2" } }, "lodash._baseindexof": { @@ -7581,8 +7587,8 @@ "integrity": "sha1-DrtE5FaBSveQXGIS+iybLVG4Qeg=", "dev": true, "requires": { - "lodash._createset": "4.0.3", - "lodash._root": "3.0.1" + "lodash._createset": "~4.0.0", + "lodash._root": "~3.0.0" } }, "lodash._bindcallback": { @@ -7603,7 +7609,7 @@ "integrity": "sha1-VtagZAF2JeeevKa4AY4XRAvc8JM=", "dev": true, "requires": { - "lodash._getnative": "3.9.1" + "lodash._getnative": "^3.0.0" } }, "lodash._createset": { @@ -7666,8 +7672,8 @@ "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "make-dir": { @@ -7676,7 +7682,7 @@ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "make-fetch-happen": { @@ -7685,17 +7691,17 @@ "integrity": "sha512-7R5ivfy9ilRJ1EMKIOziwrns9fGeAD4bAha8EB7BIiBBLHm2KeTUGCrICFt2rbHfzheTLynv50GnNTK1zDTrcQ==", "dev": true, "requires": { - "agentkeepalive": "3.4.1", - "cacache": "11.2.0", - "http-cache-semantics": "3.8.1", - "http-proxy-agent": "2.1.0", - "https-proxy-agent": "2.2.1", - "lru-cache": "4.1.3", - "mississippi": "3.0.0", - "node-fetch-npm": "2.0.2", - "promise-retry": "1.1.1", - "socks-proxy-agent": "4.0.1", - "ssri": "6.0.1" + "agentkeepalive": "^3.4.1", + "cacache": "^11.0.1", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "lru-cache": "^4.1.2", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" } }, "meant": { @@ -7710,7 +7716,7 @@ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "mime-db": { @@ -7725,7 +7731,7 @@ "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", "dev": true, "requires": { - "mime-db": "1.35.0" + "mime-db": "~1.35.0" } }, "mimic-fn": { @@ -7740,7 +7746,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -7755,8 +7761,8 @@ "integrity": "sha512-/jAn9/tEX4gnpyRATxgHEOV6xbcyxgT7iUnxo9Y3+OB0zX00TgKIv/2FZCf5brBbICcwbLqVv2ImjvWWrQMSYw==", "dev": true, "requires": { - "safe-buffer": "5.1.2", - "yallist": "3.0.2" + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" }, "dependencies": { "yallist": { @@ -7773,7 +7779,7 @@ "integrity": "sha512-TrfjCjk4jLhcJyGMYymBH6oTXcWjYbUAXTHDbtnWHjZC25h0cdajHuPE1zxb4DVmu8crfh+HwH/WMuyLG0nHBg==", "dev": true, "requires": { - "minipass": "2.3.3" + "minipass": "^2.2.1" } }, "mississippi": { @@ -7782,16 +7788,16 @@ "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", "dev": true, "requires": { - "concat-stream": "1.6.2", - "duplexify": "3.6.0", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.0.3", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "3.0.0", - "pumpify": "1.5.1", - "stream-each": "1.2.2", - "through2": "2.0.3" + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" } }, "mkdirp": { @@ -7809,12 +7815,12 @@ "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", "dev": true, "requires": { - "aproba": "1.2.0", - "copy-concurrently": "1.0.5", - "fs-write-stream-atomic": "1.0.10", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "run-queue": "1.0.3" + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" } }, "ms": { @@ -7835,9 +7841,9 @@ "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", "dev": true, "requires": { - "encoding": "0.1.12", - "json-parse-better-errors": "1.0.2", - "safe-buffer": "5.1.2" + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" } }, "node-gyp": { @@ -7846,18 +7852,18 @@ "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", "dev": true, "requires": { - "fstream": "1.0.11", - "glob": "7.1.3", - "graceful-fs": "4.1.15", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "npmlog": "4.1.2", - "osenv": "0.1.5", - "request": "2.88.0", - "rimraf": "2.6.2", - "semver": "5.3.0", - "tar": "2.2.1", - "which": "1.3.1" + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" }, "dependencies": { "nopt": { @@ -7866,7 +7872,7 @@ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "dev": true, "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } }, "semver": { @@ -7881,9 +7887,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" } } } @@ -7894,8 +7900,8 @@ "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "dev": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "abbrev": "1", + "osenv": "^0.1.4" } }, "normalize-package-data": { @@ -7904,10 +7910,10 @@ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "2.7.1", - "is-builtin-module": "1.0.0", - "semver": "5.5.1", - "validate-npm-package-license": "3.0.4" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "npm-audit-report": { @@ -7916,8 +7922,8 @@ "integrity": "sha512-SjTF8ZP4rOu3JiFrTMi4M1CmVo2tni2sP4TzhyCMHwnMGf6XkdGLZKt9cdZ12esKf0mbQqFyU9LtY0SoeahL7g==", "dev": true, "requires": { - "cli-table3": "0.5.0", - "console-control-strings": "1.1.0" + "cli-table3": "^0.5.0", + "console-control-strings": "^1.1.0" } }, "npm-bundled": { @@ -7938,7 +7944,7 @@ "integrity": "sha1-1K7N/VGlPjcjt7L5Oy7ijjB7wNc=", "dev": true, "requires": { - "semver": "5.5.1" + "semver": "^2.3.0 || 3.x || 4 || 5" } }, "npm-lifecycle": { @@ -7947,14 +7953,14 @@ "integrity": "sha512-QbBfLlGBKsktwBZLj6AviHC6Q9Y3R/AY4a2PYSIRhSKSS0/CxRyD/PfxEX6tPeOCXQgMSNdwGeECacstgptc+g==", "dev": true, "requires": { - "byline": "5.0.0", - "graceful-fs": "4.1.15", - "node-gyp": "3.8.0", - "resolve-from": "4.0.0", - "slide": "1.1.6", + "byline": "^5.0.0", + "graceful-fs": "^4.1.11", + "node-gyp": "^3.8.0", + "resolve-from": "^4.0.0", + "slide": "^1.1.6", "uid-number": "0.0.6", - "umask": "1.1.0", - "which": "1.3.1" + "umask": "^1.1.0", + "which": "^1.3.1" } }, "npm-logical-tree": { @@ -7969,10 +7975,10 @@ "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", "dev": true, "requires": { - "hosted-git-info": "2.7.1", - "osenv": "0.1.5", - "semver": "5.5.1", - "validate-npm-package-name": "3.0.0" + "hosted-git-info": "^2.6.0", + "osenv": "^0.1.5", + "semver": "^5.5.0", + "validate-npm-package-name": "^3.0.0" } }, "npm-packlist": { @@ -7981,8 +7987,8 @@ "integrity": "sha512-WJKFOVMeAlsU/pjXuqVdzU0WfgtIBCupkEVwn+1Y0ERAbUfWw8R4GjgVbaKnUjRoD2FoQbHOCbOyT5Mbs9Lw4g==", "dev": true, "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.5" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, "npm-pick-manifest": { @@ -7991,8 +7997,8 @@ "integrity": "sha512-q9zLP8cTr8xKPmMZN3naxp1k/NxVFsjxN6uWuO1tiw9gxg7wZWQ/b5UTfzD0ANw2q1lQxdLKTeCCksq+bPSgbQ==", "dev": true, "requires": { - "npm-package-arg": "6.1.0", - "semver": "5.5.1" + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" } }, "npm-profile": { @@ -8001,8 +8007,8 @@ "integrity": "sha512-rEJOFR6PbwOvvhGa2YTNOJQKNuc6RovJ6T50xPU7pS9h/zKPNCJ+VHZY2OFXyZvEi+UQYtHRTp8O/YM3tUD20A==", "dev": true, "requires": { - "aproba": "1.2.0", - "make-fetch-happen": "4.0.1" + "aproba": "^1.1.2 || 2", + "make-fetch-happen": "^2.5.0 || 3 || 4" } }, "npm-registry-client": { @@ -8011,18 +8017,18 @@ "integrity": "sha512-Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg==", "dev": true, "requires": { - "concat-stream": "1.6.2", - "graceful-fs": "4.1.15", - "normalize-package-data": "2.4.0", - "npm-package-arg": "6.1.0", - "npmlog": "4.1.2", - "once": "1.4.0", - "request": "2.88.0", - "retry": "0.10.1", - "safe-buffer": "5.1.2", - "semver": "5.5.1", - "slide": "1.1.6", - "ssri": "5.3.0" + "concat-stream": "^1.5.2", + "graceful-fs": "^4.1.6", + "normalize-package-data": "~1.0.1 || ^2.0.0", + "npm-package-arg": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0", + "npmlog": "2 || ^3.1.0 || ^4.0.0", + "once": "^1.3.3", + "request": "^2.74.0", + "retry": "^0.10.0", + "safe-buffer": "^5.1.1", + "semver": "2 >=2.2.1 || 3.x || 4 || 5", + "slide": "^1.1.3", + "ssri": "^5.2.4" }, "dependencies": { "retry": { @@ -8037,7 +8043,7 @@ "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.1" } } } @@ -8048,12 +8054,12 @@ "integrity": "sha512-XJPIBfMtgaooRtZmuA42xCeLf3tkxdIX0xqRsGWwNrcVvJ9UYFccD7Ho7QWCzvkM3i/QrkUC37Hu0a+vDBmt5g==", "dev": true, "requires": { - "bluebird": "3.5.3", - "figgy-pudding": "2.0.1", - "lru-cache": "4.1.3", - "make-fetch-happen": "3.0.0", - "npm-package-arg": "6.1.0", - "safe-buffer": "5.1.2" + "bluebird": "^3.5.1", + "figgy-pudding": "^2.0.1", + "lru-cache": "^4.1.2", + "make-fetch-happen": "^3.0.0", + "npm-package-arg": "^6.0.0", + "safe-buffer": "^5.1.1" }, "dependencies": { "cacache": { @@ -8062,19 +8068,19 @@ "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", "dev": true, "requires": { - "bluebird": "3.5.3", - "chownr": "1.0.1", - "glob": "7.1.3", - "graceful-fs": "4.1.15", - "lru-cache": "4.1.3", - "mississippi": "2.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.2", - "ssri": "5.3.0", - "unique-filename": "1.1.0", - "y18n": "4.0.0" + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.1", + "mississippi": "^2.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^5.2.4", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" }, "dependencies": { "mississippi": { @@ -8083,16 +8089,16 @@ "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", "dev": true, "requires": { - "concat-stream": "1.6.2", - "duplexify": "3.6.0", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.0.3", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "2.0.1", - "pumpify": "1.5.1", - "stream-each": "1.2.2", - "through2": "2.0.3" + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^2.0.1", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" } } } @@ -8109,17 +8115,17 @@ "integrity": "sha512-FmWY7gC0mL6Z4N86vE14+m719JKE4H0A+pyiOH18B025gF/C113pyfb4gHDDYP5cqnRMHOz06JGdmffC/SES+w==", "dev": true, "requires": { - "agentkeepalive": "3.4.1", - "cacache": "10.0.4", - "http-cache-semantics": "3.8.1", - "http-proxy-agent": "2.1.0", - "https-proxy-agent": "2.2.1", - "lru-cache": "4.1.3", - "mississippi": "3.0.0", - "node-fetch-npm": "2.0.2", - "promise-retry": "1.1.1", - "socks-proxy-agent": "3.0.1", - "ssri": "5.3.0" + "agentkeepalive": "^3.4.1", + "cacache": "^10.0.4", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.0", + "lru-cache": "^4.1.2", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^3.0.1", + "ssri": "^5.2.4" } }, "pump": { @@ -8128,8 +8134,8 @@ "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "dev": true, "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, "smart-buffer": { @@ -8144,8 +8150,8 @@ "integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=", "dev": true, "requires": { - "ip": "1.1.5", - "smart-buffer": "1.1.15" + "ip": "^1.1.4", + "smart-buffer": "^1.0.13" } }, "socks-proxy-agent": { @@ -8154,8 +8160,8 @@ "integrity": "sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==", "dev": true, "requires": { - "agent-base": "4.2.0", - "socks": "1.1.10" + "agent-base": "^4.1.0", + "socks": "^1.1.10" } }, "ssri": { @@ -8164,7 +8170,7 @@ "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.1" } } } @@ -8175,7 +8181,7 @@ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "npm-user-validate": { @@ -8190,10 +8196,10 @@ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": 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": { @@ -8220,7 +8226,7 @@ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "opener": { @@ -8241,9 +8247,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" } }, "os-tmpdir": { @@ -8258,8 +8264,8 @@ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "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": { @@ -8274,7 +8280,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": { @@ -8283,7 +8289,7 @@ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "1.2.0" + "p-limit": "^1.1.0" } }, "p-try": { @@ -8298,10 +8304,10 @@ "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", "dev": true, "requires": { - "got": "6.7.1", - "registry-auth-token": "3.3.2", - "registry-url": "3.1.0", - "semver": "5.5.1" + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" } }, "pacote": { @@ -8310,31 +8316,31 @@ "integrity": "sha512-wTOOfpaAQNEQNtPEx92x9Y9kRWVu45v583XT8x2oEV2xRB74+xdqMZIeGW4uFvAyZdmSBtye+wKdyyLaT8pcmw==", "dev": true, "requires": { - "bluebird": "3.5.3", - "cacache": "11.2.0", - "get-stream": "3.0.0", - "glob": "7.1.3", - "lru-cache": "4.1.3", - "make-fetch-happen": "4.0.1", - "minimatch": "3.0.4", - "minipass": "2.3.3", - "mississippi": "3.0.0", - "mkdirp": "0.5.1", - "normalize-package-data": "2.4.0", - "npm-package-arg": "6.1.0", - "npm-packlist": "1.1.12", - "npm-pick-manifest": "2.1.0", - "osenv": "0.1.5", - "promise-inflight": "1.0.1", - "promise-retry": "1.1.1", - "protoduck": "5.0.0", - "rimraf": "2.6.2", - "safe-buffer": "5.1.2", - "semver": "5.5.1", - "ssri": "6.0.1", - "tar": "4.4.8", - "unique-filename": "1.1.0", - "which": "1.3.1" + "bluebird": "^3.5.1", + "cacache": "^11.0.2", + "get-stream": "^3.0.0", + "glob": "^7.1.2", + "lru-cache": "^4.1.3", + "make-fetch-happen": "^4.0.1", + "minimatch": "^3.0.4", + "minipass": "^2.3.3", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "normalize-package-data": "^2.4.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.10", + "npm-pick-manifest": "^2.1.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^5.0.0", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.5.0", + "ssri": "^6.0.0", + "tar": "^4.4.3", + "unique-filename": "^1.1.0", + "which": "^1.3.0" } }, "parallel-transform": { @@ -8343,9 +8349,9 @@ "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", "dev": true, "requires": { - "cyclist": "0.2.2", - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" } }, "path-exists": { @@ -8408,8 +8414,8 @@ "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", "dev": true, "requires": { - "err-code": "1.1.2", - "retry": "0.10.1" + "err-code": "^1.0.0", + "retry": "^0.10.0" }, "dependencies": { "retry": { @@ -8426,7 +8432,7 @@ "integrity": "sha1-JqXW7ox97kyxIggwWs+5O6OCqe4=", "dev": true, "requires": { - "read": "1.0.7" + "read": "1" } }, "proto-list": { @@ -8441,7 +8447,7 @@ "integrity": "sha512-agsGWD8/RZrS4ga6v82Fxb0RHIS2RZnbsSue6A9/MBRhB/jcqOANAMNrqM9900b8duj+Gx+T/JMy5IowDoO/hQ==", "dev": true, "requires": { - "genfun": "4.0.1" + "genfun": "^4.0.1" } }, "prr": { @@ -8468,8 +8474,8 @@ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, "pumpify": { @@ -8478,9 +8484,9 @@ "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "dev": true, "requires": { - "duplexify": "3.6.0", - "inherits": "2.0.3", - "pump": "2.0.1" + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" }, "dependencies": { "pump": { @@ -8489,8 +8495,8 @@ "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "dev": true, "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } } } @@ -8519,8 +8525,8 @@ "integrity": "sha512-pNB/Gr8SA8ff8KpUFM36o/WFAlthgaThka5bV19AD9PNTH20Pwq5Zxodif2YyHwrctp6SkL4GqlOot0qR/wGaw==", "dev": true, "requires": { - "decode-uri-component": "0.2.0", - "strict-uri-encode": "2.0.0" + "decode-uri-component": "^0.2.0", + "strict-uri-encode": "^2.0.0" } }, "qw": { @@ -8535,10 +8541,10 @@ "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", "dev": true, "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "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": { @@ -8555,7 +8561,7 @@ "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", "dev": true, "requires": { - "mute-stream": "0.0.7" + "mute-stream": "~0.0.4" } }, "read-cmd-shim": { @@ -8564,7 +8570,7 @@ "integrity": "sha1-LV0Vd4ajfAVdIgd8MsU/gynpHHs=", "dev": true, "requires": { - "graceful-fs": "4.1.15" + "graceful-fs": "^4.1.2" } }, "read-installed": { @@ -8573,13 +8579,13 @@ "integrity": "sha1-/5uLZ/GH0eTCm5/rMfayI6zRkGc=", "dev": true, "requires": { - "debuglog": "1.0.1", - "graceful-fs": "4.1.15", - "read-package-json": "2.0.13", - "readdir-scoped-modules": "1.0.2", - "semver": "5.5.1", - "slide": "1.1.6", - "util-extend": "1.0.3" + "debuglog": "^1.0.1", + "graceful-fs": "^4.1.2", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "slide": "~1.1.3", + "util-extend": "^1.0.1" } }, "read-package-json": { @@ -8588,11 +8594,11 @@ "integrity": "sha512-/1dZ7TRZvGrYqE0UAfN6qQb5GYBsNcqS1C0tNK601CFOJmtHI7NIGXwetEPU/OtoFHZL3hDxm4rolFFVE9Bnmg==", "dev": true, "requires": { - "glob": "7.1.3", - "graceful-fs": "4.1.15", - "json-parse-better-errors": "1.0.2", - "normalize-package-data": "2.4.0", - "slash": "1.0.0" + "glob": "^7.1.1", + "graceful-fs": "^4.1.2", + "json-parse-better-errors": "^1.0.1", + "normalize-package-data": "^2.0.0", + "slash": "^1.0.0" } }, "read-package-tree": { @@ -8601,11 +8607,11 @@ "integrity": "sha512-2CNoRoh95LxY47LvqrehIAfUVda2JbuFE/HaGYs42bNrGG+ojbw1h3zOcPcQ+1GQ3+rkzNndZn85u1XyZ3UsIA==", "dev": true, "requires": { - "debuglog": "1.0.1", - "dezalgo": "1.0.3", - "once": "1.4.0", - "read-package-json": "2.0.13", - "readdir-scoped-modules": "1.0.2" + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "once": "^1.3.0", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0" } }, "readable-stream": { @@ -8614,13 +8620,13 @@ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "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" } }, "readdir-scoped-modules": { @@ -8629,10 +8635,10 @@ "integrity": "sha1-n6+jfShr5dksuuve4DDcm19AZ0c=", "dev": true, "requires": { - "debuglog": "1.0.1", - "dezalgo": "1.0.3", - "graceful-fs": "4.1.15", - "once": "1.4.0" + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" } }, "registry-auth-token": { @@ -8641,8 +8647,8 @@ "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", "dev": true, "requires": { - "rc": "1.2.7", - "safe-buffer": "5.1.2" + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" } }, "registry-url": { @@ -8651,7 +8657,7 @@ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "dev": true, "requires": { - "rc": "1.2.7" + "rc": "^1.0.1" } }, "request": { @@ -8660,26 +8666,26 @@ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "dev": true, "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.8.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.2", - "forever-agent": "0.6.1", - "form-data": "2.3.2", - "har-validator": "5.1.0", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.19", - "oauth-sign": "0.9.0", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.4.3", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" } }, "require-directory": { @@ -8712,7 +8718,7 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "7.1.3" + "glob": "^7.0.5" } }, "run-queue": { @@ -8721,7 +8727,7 @@ "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", "dev": true, "requires": { - "aproba": "1.2.0" + "aproba": "^1.1.1" } }, "safe-buffer": { @@ -8748,7 +8754,7 @@ "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "dev": true, "requires": { - "semver": "5.5.1" + "semver": "^5.0.3" } }, "set-blocking": { @@ -8763,8 +8769,8 @@ "integrity": "sha1-YDCCL70smCOUn49y7WQR7lzyWq4=", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "readable-stream": "2.3.6" + "graceful-fs": "^4.1.2", + "readable-stream": "^2.0.2" } }, "shebang-command": { @@ -8773,7 +8779,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -8812,8 +8818,8 @@ "integrity": "sha512-uRKV9uXQ9ytMbGm2+DilS1jB7N3AC0mmusmW5TVWjNuBZjxS8+lX38fasKVY9I4opv/bY/iqTbcpFFaTwpfwRg==", "dev": true, "requires": { - "ip": "1.1.5", - "smart-buffer": "4.0.1" + "ip": "^1.1.5", + "smart-buffer": "^4.0.1" } }, "socks-proxy-agent": { @@ -8822,8 +8828,8 @@ "integrity": "sha512-Kezx6/VBguXOsEe5oU3lXYyKMi4+gva72TwJ7pQY5JfqUx2nMk7NXA6z/mpNqIlfQjWYVfeuNvQjexiTaTn6Nw==", "dev": true, "requires": { - "agent-base": "4.2.0", - "socks": "2.2.0" + "agent-base": "~4.2.0", + "socks": "~2.2.0" } }, "sorted-object": { @@ -8838,8 +8844,8 @@ "integrity": "sha1-x3lMfgd4gAUv9xqNSi27Sppjisc=", "dev": true, "requires": { - "from2": "1.3.0", - "stream-iterate": "1.2.0" + "from2": "^1.3.0", + "stream-iterate": "^1.1.0" }, "dependencies": { "from2": { @@ -8848,8 +8854,8 @@ "integrity": "sha1-iEE7qqX5pZfP3pIh2GmGzTwGHf0=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "1.1.14" + "inherits": "~2.0.1", + "readable-stream": "~1.1.10" } }, "isarray": { @@ -8864,10 +8870,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": { @@ -8884,8 +8890,8 @@ "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "dev": true, "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -8900,8 +8906,8 @@ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -8916,15 +8922,15 @@ "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", "dev": true, "requires": { - "asn1": "0.2.4", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.2", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.2", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "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", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" } }, "ssri": { @@ -8933,7 +8939,7 @@ "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", "dev": true, "requires": { - "figgy-pudding": "3.5.1" + "figgy-pudding": "^3.5.1" } }, "stream-each": { @@ -8942,8 +8948,8 @@ "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", "dev": true, "requires": { - "end-of-stream": "1.4.1", - "stream-shift": "1.0.0" + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" } }, "stream-iterate": { @@ -8952,8 +8958,8 @@ "integrity": "sha1-K9fHcpbBcCpGSIuK1B95hl7s1OE=", "dev": true, "requires": { - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" + "readable-stream": "^2.1.5", + "stream-shift": "^1.0.0" } }, "stream-shift": { @@ -8974,8 +8980,8 @@ "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" }, "dependencies": { "ansi-regex": { @@ -8996,7 +9002,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -9007,7 +9013,7 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "stringify-package": { @@ -9022,7 +9028,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-eof": { @@ -9043,7 +9049,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } }, "tar": { @@ -9052,13 +9058,13 @@ "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", "dev": true, "requires": { - "chownr": "1.1.1", - "fs-minipass": "1.2.5", - "minipass": "2.3.5", - "minizlib": "1.1.1", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.2", - "yallist": "3.0.3" + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" }, "dependencies": { "chownr": { @@ -9073,8 +9079,8 @@ "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", "dev": true, "requires": { - "safe-buffer": "5.1.2", - "yallist": "3.0.3" + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" } }, "yallist": { @@ -9091,7 +9097,7 @@ "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "dev": true, "requires": { - "execa": "0.7.0" + "execa": "^0.7.0" } }, "text-table": { @@ -9112,8 +9118,8 @@ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "dev": true, "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" } }, "timed-out": { @@ -9134,8 +9140,8 @@ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "dev": true, "requires": { - "psl": "1.1.29", - "punycode": "1.4.1" + "psl": "^1.1.24", + "punycode": "^1.4.1" } }, "tunnel-agent": { @@ -9144,7 +9150,7 @@ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -9178,7 +9184,7 @@ "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", "dev": true, "requires": { - "unique-slug": "2.0.0" + "unique-slug": "^2.0.0" } }, "unique-slug": { @@ -9187,7 +9193,7 @@ "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", "dev": true, "requires": { - "imurmurhash": "0.1.4" + "imurmurhash": "^0.1.4" } }, "unique-string": { @@ -9196,7 +9202,7 @@ "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", "dev": true, "requires": { - "crypto-random-string": "1.0.0" + "crypto-random-string": "^1.0.0" } }, "unpipe": { @@ -9217,16 +9223,16 @@ "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", "dev": true, "requires": { - "boxen": "1.3.0", - "chalk": "2.4.1", - "configstore": "3.1.2", - "import-lazy": "2.1.0", - "is-ci": "1.1.0", - "is-installed-globally": "0.1.0", - "is-npm": "1.0.0", - "latest-version": "3.1.0", - "semver-diff": "2.1.0", - "xdg-basedir": "3.0.0" + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" } }, "url-parse-lax": { @@ -9235,7 +9241,7 @@ "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "dev": true, "requires": { - "prepend-http": "1.0.4" + "prepend-http": "^1.0.1" } }, "util-deprecate": { @@ -9262,8 +9268,8 @@ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "validate-npm-package-name": { @@ -9272,7 +9278,7 @@ "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "dev": true, "requires": { - "builtins": "1.0.3" + "builtins": "^1.0.3" } }, "verror": { @@ -9281,9 +9287,9 @@ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": 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" } }, "wcwidth": { @@ -9292,7 +9298,7 @@ "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "dev": true, "requires": { - "defaults": "1.0.3" + "defaults": "^1.0.3" } }, "which": { @@ -9301,7 +9307,7 @@ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -9316,7 +9322,7 @@ "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "dev": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" }, "dependencies": { "string-width": { @@ -9325,9 +9331,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "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" } } } @@ -9338,7 +9344,7 @@ "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", "dev": true, "requires": { - "string-width": "2.1.1" + "string-width": "^2.1.1" } }, "worker-farm": { @@ -9347,7 +9353,7 @@ "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", "dev": true, "requires": { - "errno": "0.1.7" + "errno": "~0.1.7" } }, "wrap-ansi": { @@ -9356,8 +9362,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" }, "dependencies": { "string-width": { @@ -9366,9 +9372,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "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" } } } @@ -9385,9 +9391,9 @@ "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "imurmurhash": "0.1.4", - "signal-exit": "3.0.2" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" } }, "xdg-basedir": { @@ -9420,18 +9426,18 @@ "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", "dev": true, "requires": { - "cliui": "4.1.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": "9.0.2" + "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": "^9.0.2" }, "dependencies": { "y18n": { @@ -9448,7 +9454,7 @@ "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } @@ -9458,7 +9464,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -9471,33 +9477,33 @@ "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.9.0.tgz", "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", "requires": { - "archy": "1.0.0", - "arrify": "1.0.1", - "caching-transform": "1.0.1", - "convert-source-map": "1.5.1", - "debug-log": "1.0.1", - "default-require-extensions": "1.0.0", - "find-cache-dir": "0.1.1", - "find-up": "2.1.0", - "foreground-child": "1.5.6", - "glob": "7.1.2", - "istanbul-lib-coverage": "1.2.0", - "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "1.10.1", - "istanbul-lib-report": "1.1.3", - "istanbul-lib-source-maps": "1.2.3", - "istanbul-reports": "1.4.0", - "md5-hex": "1.3.0", - "merge-source-map": "1.1.0", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "resolve-from": "2.0.0", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "spawn-wrap": "1.4.2", - "test-exclude": "4.2.1", + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^1.0.0", + "convert-source-map": "^1.5.1", + "debug-log": "^1.0.1", + "default-require-extensions": "^1.0.0", + "find-cache-dir": "^0.1.1", + "find-up": "^2.1.0", + "foreground-child": "^1.5.3", + "glob": "^7.0.6", + "istanbul-lib-coverage": "^1.1.2", + "istanbul-lib-hook": "^1.1.0", + "istanbul-lib-instrument": "^1.10.0", + "istanbul-lib-report": "^1.1.3", + "istanbul-lib-source-maps": "^1.2.3", + "istanbul-reports": "^1.4.0", + "md5-hex": "^1.2.0", + "merge-source-map": "^1.1.0", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.0", + "resolve-from": "^2.0.0", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.1", + "spawn-wrap": "^1.4.2", + "test-exclude": "^4.2.0", "yargs": "11.1.0", - "yargs-parser": "8.1.0" + "yargs-parser": "^8.0.0" }, "dependencies": { "align-text": { @@ -9505,9 +9511,9 @@ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "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" } }, "amdefine": { @@ -9530,7 +9536,7 @@ "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", "requires": { - "default-require-extensions": "1.0.0" + "default-require-extensions": "^1.0.0" } }, "archy": { @@ -9583,9 +9589,9 @@ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" } }, "babel-generator": { @@ -9593,14 +9599,14 @@ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" } }, "babel-messages": { @@ -9608,7 +9614,7 @@ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-runtime": { @@ -9616,8 +9622,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "2.5.6", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -9625,11 +9631,11 @@ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.10" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { @@ -9637,15 +9643,15 @@ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.10" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" } }, "babel-types": { @@ -9653,10 +9659,10 @@ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -9674,13 +9680,13 @@ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "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" }, "dependencies": { "define-property": { @@ -9688,7 +9694,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -9696,7 +9702,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -9704,7 +9710,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -9712,9 +9718,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -9734,7 +9740,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -9743,16 +9749,16 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -9760,7 +9766,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -9775,15 +9781,15 @@ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "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" }, "dependencies": { "isobject": { @@ -9798,9 +9804,9 @@ "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" } }, "camelcase": { @@ -9815,8 +9821,8 @@ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "optional": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chalk": { @@ -9824,11 +9830,11 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "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" } }, "class-utils": { @@ -9836,10 +9842,10 @@ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -9847,7 +9853,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "isobject": { @@ -9863,8 +9869,8 @@ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "optional": 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" }, "dependencies": { @@ -9886,8 +9892,8 @@ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "commondir": { @@ -9925,8 +9931,8 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", "requires": { - "lru-cache": "4.1.3", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } }, "debug": { @@ -9957,7 +9963,7 @@ "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", "requires": { - "strip-bom": "2.0.0" + "strip-bom": "^2.0.0" } }, "define-property": { @@ -9965,8 +9971,8 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -9974,7 +9980,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -9982,7 +9988,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -9990,9 +9996,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -10012,7 +10018,7 @@ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "error-ex": { @@ -10020,7 +10026,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" } }, "escape-string-regexp": { @@ -10038,13 +10044,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "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" }, "dependencies": { "cross-spawn": { @@ -10052,9 +10058,9 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } } } @@ -10064,13 +10070,13 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -10078,7 +10084,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -10086,7 +10092,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -10096,8 +10102,8 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -10105,7 +10111,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -10115,14 +10121,14 @@ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { @@ -10130,7 +10136,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -10138,7 +10144,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -10146,7 +10152,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -10154,7 +10160,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -10162,9 +10168,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { @@ -10179,10 +10185,10 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "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" }, "dependencies": { "extend-shallow": { @@ -10190,7 +10196,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -10200,9 +10206,9 @@ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" } }, "find-up": { @@ -10210,7 +10216,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "for-in": { @@ -10223,8 +10229,8 @@ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" + "cross-spawn": "^4", + "signal-exit": "^3.0.0" } }, "fragment-cache": { @@ -10232,7 +10238,7 @@ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fs.realpath": { @@ -10260,12 +10266,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "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" } }, "globals": { @@ -10283,10 +10289,10 @@ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "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": { "source-map": { @@ -10294,7 +10300,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -10304,7 +10310,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { @@ -10317,9 +10323,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "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" }, "dependencies": { "isobject": { @@ -10334,8 +10340,8 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { @@ -10343,7 +10349,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -10351,7 +10357,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -10361,7 +10367,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -10381,8 +10387,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -10395,7 +10401,7 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -10408,7 +10414,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-arrayish": { @@ -10426,7 +10432,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": { @@ -10434,7 +10440,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-descriptor": { @@ -10442,9 +10448,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "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": { @@ -10464,7 +10470,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-fullwidth-code-point": { @@ -10477,7 +10483,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-odd": { @@ -10485,7 +10491,7 @@ "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", "requires": { - "is-number": "4.0.0" + "is-number": "^4.0.0" }, "dependencies": { "is-number": { @@ -10500,7 +10506,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -10550,7 +10556,7 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", "requires": { - "append-transform": "0.4.0" + "append-transform": "^0.4.0" } }, "istanbul-lib-instrument": { @@ -10558,13 +10564,13 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", "requires": { - "babel-generator": "6.26.1", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.2.0", - "semver": "5.5.0" + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.0", + "semver": "^5.3.0" } }, "istanbul-lib-report": { @@ -10572,10 +10578,10 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz", "integrity": "sha512-D4jVbMDtT2dPmloPJS/rmeP626N5Pr3Rp+SovrPn1+zPChGHcggd/0sL29jnbm4oK9W0wHjCRsdch9oLd7cm6g==", "requires": { - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" }, "dependencies": { "supports-color": { @@ -10583,7 +10589,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -10593,11 +10599,11 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz", "integrity": "sha512-fDa0hwU/5sDXwAklXgAoCJCOsFsBplVQ6WBldz5UwaqOzmDhUK4nfuR7/G//G2lERlblUNJB8P6e8cXq3a7MlA==", "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" }, "dependencies": { "debug": { @@ -10615,7 +10621,7 @@ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.4.0.tgz", "integrity": "sha512-OPzVo1fPZ2H+owr8q/LYKLD+vquv9Pj4F+dj808MdHbuQLD7S4ACRjcX+0Tne5Vxt2lxXvdZaL7v+FOOAV281w==", "requires": { - "handlebars": "4.0.11" + "handlebars": "^4.0.3" } }, "js-tokens": { @@ -10633,7 +10639,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lazy-cache": { @@ -10647,7 +10653,7 @@ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "load-json-file": { @@ -10655,11 +10661,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": { @@ -10667,8 +10673,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" }, "dependencies": { "path-exists": { @@ -10693,7 +10699,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "lru-cache": { @@ -10701,8 +10707,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "map-cache": { @@ -10715,7 +10721,7 @@ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "md5-hex": { @@ -10723,7 +10729,7 @@ "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { @@ -10736,7 +10742,7 @@ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "merge-source-map": { @@ -10744,7 +10750,7 @@ "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", "requires": { - "source-map": "0.6.1" + "source-map": "^0.6.1" }, "dependencies": { "source-map": { @@ -10759,19 +10765,19 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "dependencies": { "kind-of": { @@ -10791,7 +10797,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -10804,8 +10810,8 @@ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -10813,7 +10819,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -10836,18 +10842,18 @@ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-odd": "^2.0.0", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "arr-diff": { @@ -10872,10 +10878,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.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "npm-run-path": { @@ -10883,7 +10889,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -10901,9 +10907,9 @@ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "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": { @@ -10911,7 +10917,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -10921,7 +10927,7 @@ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" }, "dependencies": { "isobject": { @@ -10936,7 +10942,7 @@ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -10951,7 +10957,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "optimist": { @@ -10959,8 +10965,8 @@ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "os-homedir": { @@ -10973,9 +10979,9 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "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" } }, "p-finally": { @@ -10988,7 +10994,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -10996,7 +11002,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { - "p-limit": "1.2.0" + "p-limit": "^1.1.0" } }, "p-try": { @@ -11009,7 +11015,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" } }, "pascalcase": { @@ -11022,7 +11028,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": { @@ -11045,9 +11051,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" } }, "pify": { @@ -11065,7 +11071,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" } }, "pkg-dir": { @@ -11073,7 +11079,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" }, "dependencies": { "find-up": { @@ -11081,8 +11087,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" } } } @@ -11102,9 +11108,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": { @@ -11112,8 +11118,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" }, "dependencies": { "find-up": { @@ -11121,8 +11127,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" } } } @@ -11137,8 +11143,8 @@ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "repeat-element": { @@ -11156,7 +11162,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" } }, "require-directory": { @@ -11190,7 +11196,7 @@ "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "optional": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { @@ -11198,7 +11204,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-regex": { @@ -11206,7 +11212,7 @@ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "semver": { @@ -11224,10 +11230,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "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" }, "dependencies": { "extend-shallow": { @@ -11235,7 +11241,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -11245,7 +11251,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -11268,14 +11274,14 @@ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "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": "3.1.0" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "define-property": { @@ -11283,7 +11289,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -11291,7 +11297,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -11301,9 +11307,9 @@ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "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" }, "dependencies": { "define-property": { @@ -11311,7 +11317,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -11319,7 +11325,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -11327,7 +11333,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -11335,9 +11341,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -11357,7 +11363,7 @@ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "source-map": { @@ -11370,11 +11376,11 @@ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", "requires": { - "atob": "2.1.1", - "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": { @@ -11387,12 +11393,12 @@ "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.0" + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" } }, "spdx-correct": { @@ -11400,8 +11406,8 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -11414,8 +11420,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -11428,7 +11434,7 @@ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "static-extend": { @@ -11436,8 +11442,8 @@ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { @@ -11445,7 +11451,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -11455,8 +11461,8 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "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" }, "dependencies": { "ansi-regex": { @@ -11469,7 +11475,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -11479,7 +11485,7 @@ "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": { @@ -11487,7 +11493,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": { @@ -11505,11 +11511,11 @@ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", "requires": { - "arrify": "1.0.1", - "micromatch": "3.1.10", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" + "arrify": "^1.0.1", + "micromatch": "^3.1.8", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" }, "dependencies": { "arr-diff": { @@ -11527,16 +11533,16 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -11544,7 +11550,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -11554,13 +11560,13 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -11568,7 +11574,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -11576,7 +11582,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -11584,7 +11590,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -11592,7 +11598,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -11602,7 +11608,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -11610,7 +11616,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -11620,9 +11626,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "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": { @@ -11637,14 +11643,14 @@ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { @@ -11652,7 +11658,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -11660,7 +11666,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -11670,10 +11676,10 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "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" }, "dependencies": { "extend-shallow": { @@ -11681,7 +11687,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -11691,7 +11697,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -11699,7 +11705,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -11707,9 +11713,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-number": { @@ -11717,7 +11723,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -11725,7 +11731,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -11745,19 +11751,19 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } @@ -11772,7 +11778,7 @@ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { @@ -11780,10 +11786,10 @@ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { @@ -11791,8 +11797,8 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "dependencies": { "is-number": { @@ -11800,7 +11806,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } } } @@ -11816,9 +11822,9 @@ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "optional": 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" }, "dependencies": { "yargs": { @@ -11827,9 +11833,9 @@ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "optional": 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" } } @@ -11846,10 +11852,10 @@ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "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": { "extend-shallow": { @@ -11857,7 +11863,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { @@ -11865,10 +11871,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "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" } } } @@ -11878,8 +11884,8 @@ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -11887,9 +11893,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "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": { @@ -11924,7 +11930,7 @@ "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.2" }, "dependencies": { "kind-of": { @@ -11939,8 +11945,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "which": { @@ -11948,7 +11954,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": { @@ -11972,8 +11978,8 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -11981,7 +11987,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" } }, "string-width": { @@ -11989,9 +11995,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" } } } @@ -12006,9 +12012,9 @@ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } }, "y18n": { @@ -12026,18 +12032,18 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", "requires": { - "cliui": "4.1.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": "9.0.2" + "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": "^9.0.2" }, "dependencies": { "ansi-regex": { @@ -12055,9 +12061,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" } }, "strip-ansi": { @@ -12065,7 +12071,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "yargs-parser": { @@ -12073,7 +12079,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } @@ -12083,7 +12089,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { @@ -12116,9 +12122,9 @@ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "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": { @@ -12126,7 +12132,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -12146,7 +12152,7 @@ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" }, "dependencies": { "isobject": { @@ -12162,8 +12168,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "optional": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "object.pick": { @@ -12171,7 +12177,7 @@ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -12192,7 +12198,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -12200,7 +12206,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "optimist": { @@ -12209,8 +12215,8 @@ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" }, "dependencies": { "wordwrap": { @@ -12226,12 +12232,12 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" } }, "os-homedir": { @@ -12244,9 +12250,9 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "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" } }, "os-name": { @@ -12255,8 +12261,8 @@ "integrity": "sha512-7c74tib2FsdFbQ3W+qj8Tyd1R3Z6tuVRNNxXjJcZ4NgjIEQU9N/prVMqcW29XZPXGACqaXN3jq58/6hoaoXH6g==", "dev": true, "requires": { - "macos-release": "2.0.0", - "windows-release": "3.1.0" + "macos-release": "^2.0.0", + "windows-release": "^3.1.0" } }, "os-tmpdir": { @@ -12269,9 +12275,9 @@ "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", "requires": { - "graceful-fs": "4.1.15", - "mkdirp": "0.5.1", - "object-assign": "4.1.1" + "graceful-fs": "^4.1.4", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.0" } }, "p-defer": { @@ -12286,7 +12292,7 @@ "integrity": "sha1-Yp0xcVAgnI/VCLoTdxPvS7kg6ds=", "dev": true, "requires": { - "p-map": "1.2.0" + "p-map": "^1.0.0" } }, "p-finally": { @@ -12305,7 +12311,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -12313,7 +12319,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { - "p-limit": "1.3.0" + "p-limit": "^1.1.0" } }, "p-map": { @@ -12334,7 +12340,7 @@ "integrity": "sha512-fAB7bebxaj8nylNAsxPNkwPZ/48bXFdFnWrz0v2sV+H5BsGfVL7Ap7KgONqy7rOK4ZI1I+SU+lmettO3hM+2HQ==", "dev": true, "requires": { - "retry": "0.12.0" + "retry": "^0.12.0" } }, "p-try": { @@ -12354,10 +12360,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "optional": 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" } }, "parse-json": { @@ -12365,7 +12371,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "1.3.2" + "error-ex": "^1.2.0" } }, "parseqs": { @@ -12373,7 +12379,7 @@ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseuri": { @@ -12381,7 +12387,7 @@ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseurl": { @@ -12406,7 +12412,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": { @@ -12451,7 +12457,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { - "pify": "2.3.0" + "pify": "^2.0.0" } }, "pathval": { @@ -12465,11 +12471,11 @@ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", "requires": { - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "performance-now": { @@ -12493,7 +12499,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" } }, "pkg-conf": { @@ -12501,8 +12507,8 @@ "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", "requires": { - "find-up": "2.1.0", - "load-json-file": "4.0.0" + "find-up": "^2.0.0", + "load-json-file": "^4.0.0" }, "dependencies": { "find-up": { @@ -12510,7 +12516,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "load-json-file": { @@ -12518,10 +12524,10 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "requires": { - "graceful-fs": "4.1.15", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "parse-json": { @@ -12529,8 +12535,8 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "pify": { @@ -12545,9 +12551,9 @@ "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=", "requires": { - "debug-log": "1.0.1", - "find-root": "1.1.0", - "xtend": "4.0.1" + "debug-log": "^1.0.0", + "find-root": "^1.0.0", + "xtend": "^4.0.1" } }, "pkg-dir": { @@ -12555,7 +12561,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" } }, "pluralize": { @@ -12610,8 +12616,8 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", "requires": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1" + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" } }, "pseudomap": { @@ -12631,8 +12637,8 @@ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, "punycode": { @@ -12646,7 +12652,7 @@ "resolved": "http://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", "integrity": "sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=", "requires": { - "bitcoin-ops": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646" + "bitcoin-ops": "^1.3.0" } }, "q": { @@ -12661,10 +12667,10 @@ "integrity": "sha512-sYo+Tf7nx14YZSNPqnyEWefVrjUEpM4/NxOrxOk+jcQ9NhM2LCNuzGmQctDhGTQdO2YJorKY55dypx+hvVo5jw==", "requires": { "can-promise": "0.0.1", - "dijkstrajs": "1.0.1", - "isarray": "2.0.4", - "pngjs": "3.3.3", - "yargs": "8.0.2" + "dijkstrajs": "^1.0.1", + "isarray": "^2.0.1", + "pngjs": "^3.3.0", + "yargs": "^8.0.2" }, "dependencies": { "isarray": { @@ -12691,9 +12697,9 @@ "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", "optional": true, "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.1" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "dependencies": { "is-number": { @@ -12715,7 +12721,7 @@ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.0" } }, "range-parser": { @@ -12730,10 +12736,10 @@ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "requires": { - "deep-extend": "0.6.0", - "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": { "minimist": { @@ -12749,9 +12755,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "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": { @@ -12759,8 +12765,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" }, "dependencies": { "find-up": { @@ -12768,7 +12774,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } } } @@ -12778,13 +12784,13 @@ "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "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" }, "dependencies": { "inherits": { @@ -12800,9 +12806,9 @@ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "optional": true, "requires": { - "graceful-fs": "4.1.15", - "micromatch": "3.1.10", - "readable-stream": "2.3.6" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" }, "dependencies": { "arr-diff": { @@ -12822,16 +12828,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "optional": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -12840,7 +12846,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "optional": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -12860,13 +12866,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "optional": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -12875,7 +12881,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "optional": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -12884,7 +12890,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "optional": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -12893,7 +12899,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -12902,7 +12908,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "optional": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -12913,7 +12919,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -12922,7 +12928,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "optional": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -12933,9 +12939,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "optional": 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": { @@ -12952,14 +12958,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "optional": 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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" }, "dependencies": { "define-property": { @@ -12968,7 +12974,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "optional": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -12977,7 +12983,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "optional": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -12988,10 +12994,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "optional": 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" }, "dependencies": { "extend-shallow": { @@ -13000,7 +13006,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "optional": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -13011,7 +13017,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "optional": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -13020,7 +13026,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "optional": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -13029,9 +13035,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "optional": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-number": { @@ -13040,7 +13046,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -13049,7 +13055,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "optional": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -13071,19 +13077,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "optional": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } @@ -13094,8 +13100,8 @@ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", "dev": true, "requires": { - "indent-string": "3.2.0", - "strip-indent": "2.0.0" + "indent-string": "^3.0.0", + "strip-indent": "^2.0.0" } }, "redeyed": { @@ -13104,7 +13110,7 @@ "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=", "dev": true, "requires": { - "esprima": "4.0.1" + "esprima": "~4.0.0" } }, "regenerate": { @@ -13122,9 +13128,9 @@ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.8" + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" } }, "regex-cache": { @@ -13133,7 +13139,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "optional": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "regex-not": { @@ -13141,8 +13147,8 @@ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "regexpp": { @@ -13156,9 +13162,9 @@ "resolved": "http://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "requires": { - "regenerate": "1.4.0", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "registry-auth-token": { @@ -13167,8 +13173,8 @@ "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", "dev": true, "requires": { - "rc": "1.2.8", - "safe-buffer": "5.1.2" + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" } }, "regjsgen": { @@ -13181,7 +13187,7 @@ "resolved": "http://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { @@ -13211,7 +13217,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" } }, "repl.history": { @@ -13225,26 +13231,26 @@ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "dev": true, "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.8.0", - "caseless": "0.12.0", - "combined-stream": "1.0.7", - "extend": "3.0.2", - "forever-agent": "0.6.1", - "form-data": "2.3.3", - "har-validator": "5.1.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.21", - "oauth-sign": "0.9.0", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.4.3", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" }, "dependencies": { "qs": { @@ -13270,8 +13276,8 @@ "resolved": "http://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" } }, "resolve": { @@ -13279,7 +13285,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.9.0.tgz", "integrity": "sha512-TZNye00tI67lwYvzxCxHGjwTNlUV70io54/Ed4j6PscB8xVfuBJpRenI/o6dVk0cY0PYTY27AgCoGGxRnYuItQ==", "requires": { - "path-parse": "1.0.6" + "path-parse": "^1.0.6" } }, "resolve-from": { @@ -13297,8 +13303,8 @@ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "resumer": { @@ -13306,7 +13312,7 @@ "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", "requires": { - "through": "2.3.8" + "through": "~2.3.4" } }, "ret": { @@ -13325,7 +13331,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "glob": "7.1.3" + "glob": "^7.0.5" } }, "ripemd160": { @@ -13333,8 +13339,8 @@ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.1" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, "run-async": { @@ -13342,7 +13348,7 @@ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, "run-parallel": { @@ -13360,7 +13366,7 @@ "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "requires": { - "rx-lite": "4.0.8" + "rx-lite": "*" } }, "rxjs": { @@ -13369,7 +13375,7 @@ "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", "dev": true, "requires": { - "tslib": "1.9.3" + "tslib": "^1.9.0" } }, "safe-buffer": { @@ -13382,7 +13388,7 @@ "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "safer-buffer": { @@ -13401,7 +13407,7 @@ "resolved": "https://registry.npmjs.org/satoshi-bitcoin/-/satoshi-bitcoin-1.0.4.tgz", "integrity": "sha1-0AK2dwddXLvywhGo3zJUvN9QseQ=", "requires": { - "big.js": "3.2.0" + "big.js": "^3.1.3" } }, "scryptsy": { @@ -13414,14 +13420,14 @@ "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.6.0.tgz", "integrity": "sha512-a+oKfu2XWhq6Zzj7TexlYpwdnCEtJUUdLaujUclplPkV+INdMaV9D+81wYldm/g4/2PTFoNYZf/+0rHhTPgzjQ==", "requires": { - "bindings": "1.3.1", - "bip66": "1.1.5", - "bn.js": "4.11.8", - "create-hash": "1.2.0", - "drbg.js": "1.0.1", - "elliptic": "6.4.1", - "nan": "2.12.1", - "safe-buffer": "5.1.2" + "bindings": "^1.2.1", + "bip66": "^1.1.3", + "bn.js": "^4.11.3", + "create-hash": "^1.1.2", + "drbg.js": "^1.0.1", + "elliptic": "^6.2.3", + "nan": "^2.2.1", + "safe-buffer": "^5.1.0" } }, "semantic-release": { @@ -13430,32 +13436,32 @@ "integrity": "sha512-bkrfQ10BhbJRMeq/Ih9DZ9FO4ffDwFYsRR134JP9JvQSf8GVX4sg3SnFFd7Q10C6pKwjKqMZ4+ZNB5uQYMLPEg==", "dev": true, "requires": { - "@semantic-release/commit-analyzer": "6.1.0", - "@semantic-release/error": "2.2.0", - "@semantic-release/github": "5.2.7", - "@semantic-release/npm": "5.1.2", - "@semantic-release/release-notes-generator": "7.1.4", - "aggregate-error": "1.0.0", - "cosmiconfig": "5.0.7", - "debug": "4.1.1", - "env-ci": "3.1.3", - "execa": "1.0.0", - "figures": "2.0.0", - "find-versions": "3.0.0", - "get-stream": "4.1.0", - "git-log-parser": "1.2.0", - "hook-std": "1.2.0", - "hosted-git-info": "2.7.1", - "lodash": "4.17.11", - "marked": "0.5.2", - "marked-terminal": "3.1.1", - "p-locate": "3.0.0", - "p-reduce": "1.0.0", - "read-pkg-up": "4.0.0", - "resolve-from": "4.0.0", - "semver": "5.6.0", - "signale": "1.3.0", - "yargs": "12.0.5" + "@semantic-release/commit-analyzer": "^6.1.0", + "@semantic-release/error": "^2.2.0", + "@semantic-release/github": "^5.1.0", + "@semantic-release/npm": "^5.0.5", + "@semantic-release/release-notes-generator": "^7.1.2", + "aggregate-error": "^1.0.0", + "cosmiconfig": "^5.0.1", + "debug": "^4.0.0", + "env-ci": "^3.0.0", + "execa": "^1.0.0", + "figures": "^2.0.0", + "find-versions": "^3.0.0", + "get-stream": "^4.0.0", + "git-log-parser": "^1.2.0", + "hook-std": "^1.1.0", + "hosted-git-info": "^2.7.1", + "lodash": "^4.17.4", + "marked": "^0.5.0", + "marked-terminal": "^3.0.0", + "p-locate": "^3.0.0", + "p-reduce": "^1.0.0", + "read-pkg-up": "^4.0.0", + "resolve-from": "^4.0.0", + "semver": "^5.4.1", + "signale": "^1.2.1", + "yargs": "^12.0.0" }, "dependencies": { "ansi-regex": { @@ -13476,9 +13482,9 @@ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" } }, "cross-spawn": { @@ -13487,11 +13493,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.6.0", - "shebang-command": "1.2.0", - "which": "1.3.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "debug": { @@ -13500,7 +13506,7 @@ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "execa": { @@ -13509,13 +13515,13 @@ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { - "cross-spawn": "6.0.5", - "get-stream": "4.1.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": "^6.0.0", + "get-stream": "^4.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": { @@ -13524,7 +13530,7 @@ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { - "locate-path": "3.0.0" + "locate-path": "^3.0.0" } }, "get-stream": { @@ -13533,7 +13539,7 @@ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { - "pump": "3.0.0" + "pump": "^3.0.0" } }, "invert-kv": { @@ -13548,7 +13554,7 @@ "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", "dev": true, "requires": { - "invert-kv": "2.0.0" + "invert-kv": "^2.0.0" } }, "load-json-file": { @@ -13557,10 +13563,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "locate-path": { @@ -13569,8 +13575,8 @@ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, "mem": { @@ -13579,9 +13585,9 @@ "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==", "dev": true, "requires": { - "map-age-cleaner": "0.1.3", - "mimic-fn": "1.2.0", - "p-is-promise": "1.1.0" + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^1.0.0", + "p-is-promise": "^1.1.0" } }, "ms": { @@ -13596,9 +13602,9 @@ "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", "dev": true, "requires": { - "execa": "1.0.0", - "lcid": "2.0.0", - "mem": "4.0.0" + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" } }, "p-is-promise": { @@ -13613,7 +13619,7 @@ "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==", "dev": true, "requires": { - "p-try": "2.0.0" + "p-try": "^2.0.0" } }, "p-locate": { @@ -13622,7 +13628,7 @@ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { - "p-limit": "2.1.0" + "p-limit": "^2.0.0" } }, "p-try": { @@ -13637,8 +13643,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "path-exists": { @@ -13653,7 +13659,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "pify": { @@ -13668,9 +13674,9 @@ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "4.0.0", - "normalize-package-data": "2.4.0", - "path-type": "3.0.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" } }, "read-pkg-up": { @@ -13679,8 +13685,8 @@ "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", "dev": true, "requires": { - "find-up": "3.0.0", - "read-pkg": "3.0.0" + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" } }, "resolve-from": { @@ -13695,7 +13701,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "yargs": { @@ -13704,18 +13710,18 @@ "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", "dev": true, "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "3.0.0", - "get-caller-file": "1.0.3", - "os-locale": "3.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": "11.1.1" + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.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 || ^4.0.0", + "yargs-parser": "^11.1.1" } }, "yargs-parser": { @@ -13724,8 +13730,8 @@ "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", "dev": true, "requires": { - "camelcase": "5.0.0", - "decamelize": "1.2.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } @@ -13751,10 +13757,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "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" }, "dependencies": { "extend-shallow": { @@ -13762,7 +13768,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -13772,8 +13778,8 @@ "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "shebang-command": { @@ -13781,7 +13787,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -13800,9 +13806,9 @@ "integrity": "sha512-TyFhsQ9wZDYDfsPqWMyjCxsDoMwfpsT0130Mce7wDiVCSDdtWSg83dOqoj8aGpGCs3n1YPcam6sT1OFPuGT/OQ==", "dev": true, "requires": { - "chalk": "2.4.1", - "figures": "2.0.0", - "pkg-conf": "2.1.0" + "chalk": "^2.3.2", + "figures": "^2.0.0", + "pkg-conf": "^2.1.0" } }, "sinon": { @@ -13811,13 +13817,13 @@ "integrity": "sha512-trdx+mB0VBBgoYucy6a9L7/jfQOmvGeaKZT4OOJ+lPAtI8623xyGr8wLiE4eojzBS8G9yXbhx42GHUOVLr4X2w==", "dev": true, "requires": { - "@sinonjs/formatio": "2.0.0", - "diff": "3.5.0", - "lodash.get": "4.4.2", - "lolex": "2.7.5", - "nise": "1.4.8", - "supports-color": "5.5.0", - "type-detect": "4.0.8" + "@sinonjs/formatio": "^2.0.0", + "diff": "^3.1.0", + "lodash.get": "^4.4.2", + "lolex": "^2.2.0", + "nise": "^1.2.0", + "supports-color": "^5.1.0", + "type-detect": "^4.0.5" }, "dependencies": { "supports-color": { @@ -13826,7 +13832,7 @@ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -13841,7 +13847,7 @@ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "requires": { - "is-fullwidth-code-point": "2.0.0" + "is-fullwidth-code-point": "^2.0.0" } }, "snapdragon": { @@ -13849,14 +13855,14 @@ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "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.2", - "use": "3.1.1" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "debug": { @@ -13872,7 +13878,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -13880,7 +13886,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -13890,9 +13896,9 @@ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "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" }, "dependencies": { "define-property": { @@ -13900,7 +13906,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -13908,7 +13914,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -13916,7 +13922,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -13924,9 +13930,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -13946,7 +13952,7 @@ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "socket.io": { @@ -13954,12 +13960,12 @@ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.2.0.tgz", "integrity": "sha512-wxXrIuZ8AILcn+f1B4ez4hJTPG24iNgxBBDaJfT6MsyOhVYiTXWexGoPkd87ktJG8kQEcL/NBvRi64+9k4Kc0w==", "requires": { - "debug": "4.1.1", - "engine.io": "3.3.2", - "has-binary2": "1.0.3", - "socket.io-adapter": "1.1.1", + "debug": "~4.1.0", + "engine.io": "~3.3.1", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", "socket.io-client": "2.2.0", - "socket.io-parser": "3.3.0" + "socket.io-parser": "~3.3.0" }, "dependencies": { "debug": { @@ -13967,7 +13973,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "ms": { @@ -13991,15 +13997,15 @@ "base64-arraybuffer": "0.1.5", "component-bind": "1.0.0", "component-emitter": "1.2.1", - "debug": "3.1.0", - "engine.io-client": "3.3.1", - "has-binary2": "1.0.3", + "debug": "~3.1.0", + "engine.io-client": "~3.3.1", + "has-binary2": "~1.0.2", "has-cors": "1.1.0", "indexof": "0.0.1", "object-component": "0.0.3", "parseqs": "0.0.5", "parseuri": "0.0.5", - "socket.io-parser": "3.3.0", + "socket.io-parser": "~3.3.0", "to-array": "0.1.4" } }, @@ -14009,7 +14015,7 @@ "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==", "requires": { "component-emitter": "1.2.1", - "debug": "3.1.0", + "debug": "~3.1.0", "isarray": "2.0.1" }, "dependencies": { @@ -14030,11 +14036,11 @@ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "requires": { - "atob": "2.1.2", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -14042,7 +14048,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } }, "source-map-url": { @@ -14061,8 +14067,8 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.3" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -14075,8 +14081,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "2.2.0", - "spdx-license-ids": "3.0.3" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -14090,7 +14096,7 @@ "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dev": true, "requires": { - "through": "2.3.8" + "through": "2" } }, "split-string": { @@ -14098,7 +14104,7 @@ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "split2": { @@ -14107,7 +14113,7 @@ "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", "dev": true, "requires": { - "through2": "2.0.5" + "through2": "^2.0.2" } }, "sprintf-js": { @@ -14121,15 +14127,15 @@ "integrity": "sha512-Zhev35/y7hRMcID/upReIvRse+I9SVhyVre/KTJSJQWMz3C3+G+HpO7m1wK/yckEtujKZ7dS4hkVxAnmHaIGVQ==", "dev": true, "requires": { - "asn1": "0.2.4", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.2", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.2", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "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", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" } }, "standard": { @@ -14137,15 +14143,15 @@ "resolved": "http://registry.npmjs.org/standard/-/standard-11.0.1.tgz", "integrity": "sha512-nu0jAcHiSc8H+gJCXeiziMVZNDYi8MuqrYJKxTgjP4xKXZMKm311boqQIzDrYI/ktosltxt2CbDjYQs9ANC8IA==", "requires": { - "eslint": "4.18.2", + "eslint": "~4.18.0", "eslint-config-standard": "11.0.0", "eslint-config-standard-jsx": "5.0.0", - "eslint-plugin-import": "2.9.0", - "eslint-plugin-node": "6.0.1", - "eslint-plugin-promise": "3.7.0", - "eslint-plugin-react": "7.7.0", - "eslint-plugin-standard": "3.0.1", - "standard-engine": "8.0.1" + "eslint-plugin-import": "~2.9.0", + "eslint-plugin-node": "~6.0.0", + "eslint-plugin-promise": "~3.7.0", + "eslint-plugin-react": "~7.7.0", + "eslint-plugin-standard": "~3.0.1", + "standard-engine": "~8.0.0" }, "dependencies": { "ansi-regex": { @@ -14158,43 +14164,43 @@ "resolved": "http://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", "requires": { - "ajv": "5.5.2", - "babel-code-frame": "6.26.0", - "chalk": "2.4.1", - "concat-stream": "1.6.2", - "cross-spawn": "5.1.0", - "debug": "3.1.0", - "doctrine": "2.1.0", - "eslint-scope": "3.7.3", - "eslint-visitor-keys": "1.0.0", - "espree": "3.5.4", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.3", - "globals": "11.9.0", - "ignore": "3.3.10", - "imurmurhash": "0.1.4", - "inquirer": "3.3.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.12.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.3", - "require-uncached": "1.0.3", - "semver": "5.6.0", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.2", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", "table": "4.0.2", - "text-table": "0.2.0" + "text-table": "~0.2.0" } }, "eslint-plugin-node": { @@ -14202,10 +14208,10 @@ "resolved": "http://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz", "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", "requires": { - "ignore": "3.3.10", - "minimatch": "3.0.4", - "resolve": "1.9.0", - "semver": "5.6.0" + "ignore": "^3.3.6", + "minimatch": "^3.0.4", + "resolve": "^1.3.3", + "semver": "^5.4.1" } }, "globals": { @@ -14218,7 +14224,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -14228,10 +14234,10 @@ "resolved": "http://registry.npmjs.org/standard-engine/-/standard-engine-8.0.1.tgz", "integrity": "sha512-LA531C3+nljom/XRvdW/hGPXwmilRkaRkENhO3FAGF1Vtq/WtCXzgmnc5S6vUHHsgv534MRy02C1ikMwZXC+tw==", "requires": { - "deglob": "2.1.1", - "get-stdin": "6.0.0", - "minimist": "1.2.0", - "pkg-conf": "2.1.0" + "deglob": "^2.1.0", + "get-stdin": "^6.0.0", + "minimist": "^1.1.0", + "pkg-conf": "^2.0.0" }, "dependencies": { "minimist": { @@ -14246,8 +14252,8 @@ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { @@ -14255,7 +14261,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -14266,8 +14272,8 @@ "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", "dev": true, "requires": { - "duplexer2": "0.1.4", - "readable-stream": "2.3.6" + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" } }, "string-width": { @@ -14275,8 +14281,8 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "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" }, "dependencies": { "ansi-regex": { @@ -14289,7 +14295,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -14299,9 +14305,9 @@ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.12.0", - "function-bind": "1.1.1" + "define-properties": "^1.1.2", + "es-abstract": "^1.5.0", + "function-bind": "^1.0.2" } }, "string_decoder": { @@ -14309,7 +14315,7 @@ "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -14317,7 +14323,7 @@ "resolved": "http://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": { @@ -14351,12 +14357,12 @@ "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "chalk": "2.4.1", - "lodash": "4.17.11", + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "string-width": "^2.1.1" } }, "tape": { @@ -14364,19 +14370,19 @@ "resolved": "https://registry.npmjs.org/tape/-/tape-4.9.1.tgz", "integrity": "sha512-6fKIXknLpoe/Jp4rzHKFPpJUHDHDqn8jus99IfPnHIjyz78HYlefTGD3b5EkbQzuLfaEvmfPK3IolLgq2xT3kw==", "requires": { - "deep-equal": "1.0.1", - "defined": "1.0.0", - "for-each": "0.3.3", - "function-bind": "1.1.1", - "glob": "7.1.3", - "has": "1.0.3", - "inherits": "2.0.3", - "minimist": "1.2.0", - "object-inspect": "1.6.0", - "resolve": "1.7.1", - "resumer": "0.0.0", - "string.prototype.trim": "1.1.2", - "through": "2.3.8" + "deep-equal": "~1.0.1", + "defined": "~1.0.0", + "for-each": "~0.3.3", + "function-bind": "~1.1.1", + "glob": "~7.1.2", + "has": "~1.0.3", + "inherits": "~2.0.3", + "minimist": "~1.2.0", + "object-inspect": "~1.6.0", + "resolve": "~1.7.1", + "resumer": "~0.0.0", + "string.prototype.trim": "~1.1.2", + "through": "~2.3.8" }, "dependencies": { "inherits": { @@ -14394,7 +14400,7 @@ "resolved": "http://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", "requires": { - "path-parse": "1.0.6" + "path-parse": "^1.0.5" } } } @@ -14427,8 +14433,8 @@ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, "tmp": { @@ -14436,7 +14442,7 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "to-array": { @@ -14454,7 +14460,7 @@ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { @@ -14462,10 +14468,10 @@ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { @@ -14473,8 +14479,8 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "dependencies": { "is-number": { @@ -14482,7 +14488,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } } } @@ -14492,7 +14498,7 @@ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", "requires": { - "nopt": "1.0.10" + "nopt": "~1.0.10" } }, "tough-cookie": { @@ -14501,8 +14507,8 @@ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "dev": true, "requires": { - "psl": "1.1.31", - "punycode": "1.4.1" + "psl": "^1.1.24", + "punycode": "^1.4.1" }, "dependencies": { "punycode": { @@ -14548,7 +14554,7 @@ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -14562,7 +14568,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-detect": { @@ -14578,7 +14584,7 @@ "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.21" + "mime-types": "~2.1.18" } }, "typedarray": { @@ -14598,8 +14604,8 @@ "dev": true, "optional": true, "requires": { - "commander": "2.17.1", - "source-map": "0.6.1" + "commander": "~2.17.1", + "source-map": "~0.6.1" }, "dependencies": { "commander": { @@ -14623,10 +14629,10 @@ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "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": { "extend-shallow": { @@ -14634,7 +14640,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { @@ -14642,10 +14648,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "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" } } } @@ -14661,7 +14667,7 @@ "integrity": "sha512-nOwvHWLH3dBazyuzbECPA5uVFNd7AlgviXRHgR4yf48QqitIvpdncRrxMbZNMpPPEfgz30I9ubd1XmiJiqsTrg==", "dev": true, "requires": { - "os-name": "3.0.0" + "os-name": "^3.0.0" } }, "universalify": { @@ -14680,8 +14686,8 @@ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -14689,9 +14695,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "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": { @@ -14722,7 +14728,7 @@ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "requires": { - "punycode": "2.1.1" + "punycode": "^2.1.0" } }, "urix": { @@ -14776,7 +14782,7 @@ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "requires": { - "user-home": "1.1.1" + "user-home": "^1.1.1" } }, "validate-npm-package-license": { @@ -14784,8 +14790,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "requires": { - "spdx-correct": "3.1.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "varuint-bitcoin": { @@ -14793,7 +14799,7 @@ "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz", "integrity": "sha512-jCEPG+COU/1Rp84neKTyDJQr478/hAfVp5xxYn09QEH0yBjbmPeMfuuQIrp+BUD83hybtYZKhr5elV3bvdV1bA==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.1" } }, "verror": { @@ -14802,9 +14808,9 @@ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": 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" } }, "which": { @@ -14812,7 +14818,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -14825,7 +14831,7 @@ "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", "requires": { - "bs58check": "2.1.2" + "bs58check": "<3.0.0" } }, "window-or-global": { @@ -14839,7 +14845,7 @@ "integrity": "sha512-hBb7m7acFgQPQc222uEQTmdcGLeBmQLNLFIh0rDk3CwFOBrfjefLzEfEfmpMq8Af/n/GnFf3eYf203FY1PmudA==", "dev": true, "requires": { - "execa": "0.10.0" + "execa": "^0.10.0" }, "dependencies": { "cross-spawn": { @@ -14848,11 +14854,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.6.0", - "shebang-command": "1.2.0", - "which": "1.3.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "execa": { @@ -14861,13 +14867,13 @@ "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", "dev": true, "requires": { - "cross-spawn": "6.0.5", - "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": "^6.0.0", + "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" } } } @@ -14882,8 +14888,8 @@ "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -14891,7 +14897,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" } }, "string-width": { @@ -14899,9 +14905,9 @@ "resolved": "http://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" } } } @@ -14916,7 +14922,7 @@ "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "ws": { @@ -14924,7 +14930,7 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.2.tgz", "integrity": "sha512-rfUqzvz0WxmSXtJpPMX2EeASXabOrSMk1ruMOV3JBTBjo4ac2lDjGGsbQSyxj8Odhw5fBib8ZKEjDNvgouNKYw==", "requires": { - "async-limiter": "1.0.0" + "async-limiter": "~1.0.0" } }, "xmlhttprequest-ssl": { @@ -14952,19 +14958,19 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.3", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.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": "7.0.0" + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^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": "^7.0.0" } }, "yargs-parser": { @@ -14972,7 +14978,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } }, "yeast": { diff --git a/package.json b/package.json index 132e3550..a9665f4f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "3.0.1", + "version": "3.0.2", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "contributors": [ From 864eb0591f2811ea13ab272ea08502751c0e0525 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 1 Feb 2019 05:24:52 +0900 Subject: [PATCH 192/480] Update engines. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a9665f4f..6abfcc2d 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ }, "license": "MIT", "engines": { - "node": ">=8.11.0" + "node": ">=10.15.1" }, "bin": { "bitbox": "./index.js" From 65442dd7fc98d0a1725b7ffa715b97ad40d30955 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Thu, 31 Jan 2019 13:20:34 -0800 Subject: [PATCH 193/480] Fixed unit test --- lib/RawTransactions.js | 4 ++-- package-lock.json | 40 ++++++++++++++++++++++++++++++++++++ package.json | 1 + src/RawTransactions.js | 4 ++-- test/unit/RawTransactions.js | 37 +++++++++++++++++++++++++++------ 5 files changed, 76 insertions(+), 10 deletions(-) diff --git a/lib/RawTransactions.js b/lib/RawTransactions.js index d0239874..7e3e286f 100644 --- a/lib/RawTransactions.js +++ b/lib/RawTransactions.js @@ -96,8 +96,6 @@ var RawTransactions = function () { value: async function sendRawTransaction(hex) { var allowhighfees = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - //if (typeof hex !== "string") hex = JSON.stringify(hex) - try { // Single tx hex. if (typeof hex === "string") { @@ -110,6 +108,8 @@ var RawTransactions = function () { } return response.data; + + // Array input } else if (Array.isArray(hex)) { var options = { method: "POST", diff --git a/package-lock.json b/package-lock.json index e81ca61b..1c2b5811 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6987,6 +6987,40 @@ } } }, + "nock": { + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/nock/-/nock-10.0.6.tgz", + "integrity": "sha512-b47OWj1qf/LqSQYnmokNWM8D88KvUl2y7jT0567NB3ZBAZFz2bWp2PC81Xn7u8F2/vJxzkzNZybnemeFa7AZ2w==", + "dev": true, + "requires": { + "chai": "^4.1.2", + "debug": "^4.1.0", + "deep-equal": "^1.0.0", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.5", + "mkdirp": "^0.5.0", + "propagate": "^1.0.0", + "qs": "^6.5.1", + "semver": "^5.5.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, "node-cmd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/node-cmd/-/node-cmd-3.0.0.tgz", @@ -13313,6 +13347,12 @@ "object-assign": "^4.1.1" } }, + "propagate": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/propagate/-/propagate-1.0.0.tgz", + "integrity": "sha1-AMLa7t2iDofjeCs0Stuhzd1q1wk=", + "dev": true + }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", diff --git a/package.json b/package.json index 1db74d35..6428c98d 100644 --- a/package.json +++ b/package.json @@ -78,6 +78,7 @@ "eslint-plugin-node": "7.0.1", "eslint-plugin-prettier": "^2.6.2", "mocha": "^5.0.1", + "nock": "^10.0.6", "node-mocks-http": "^1.7.0", "nyc": "^11.6.0", "prettier": "^1.14.2", diff --git a/src/RawTransactions.js b/src/RawTransactions.js index 02bdf325..c000d5d7 100644 --- a/src/RawTransactions.js +++ b/src/RawTransactions.js @@ -81,8 +81,6 @@ class RawTransactions { } async sendRawTransaction(hex, allowhighfees = false) { - //if (typeof hex !== "string") hex = JSON.stringify(hex) - try { // Single tx hex. if (typeof hex === "string") { @@ -102,6 +100,8 @@ class RawTransactions { } return response.data + + // Array input } else if (Array.isArray(hex)) { const options = { method: "POST", diff --git a/test/unit/RawTransactions.js b/test/unit/RawTransactions.js index e3e4364a..d302c7c9 100644 --- a/test/unit/RawTransactions.js +++ b/test/unit/RawTransactions.js @@ -1,3 +1,10 @@ +/* + TODO: + -Replace old unit tests mocking axios with the more generalized nock library. + See the sendRawTransaction test for an example. + -Create a mocking library of data to compare unit and integration tests. +*/ + const chai = require("chai") const assert = require("assert") const axios = require("axios") @@ -5,6 +12,11 @@ const BITBOXSDK = require("../../lib/bitbox-sdk").default const BITBOX = new BITBOXSDK() const sinon = require("sinon") +const nock = require("nock") // HTTP mocking + +// Used for debugging +const util = require("util") +util.inspect.defaultOptions = { depth: 1 } describe("#RawTransactions", () => { describe("#decodeRawTransaction", () => { @@ -88,19 +100,32 @@ describe("#RawTransactions", () => { beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) - it("should send raw transaction", done => { + it("should send single raw transaction", async () => { const data = "Error: transaction already in block chain" const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "post").returns(resolved) - BITBOX.RawTransactions.sendRawTransaction([ + const result = await BITBOX.RawTransactions.sendRawTransaction( + "020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000" + ) + + assert.equal(data, result) + }) + + it("should send an array of raw transactions", async () => { + const data = "Error: transaction already in block chain" + + // Mock the http call to rest.bitcoin.com + nock(`${BITBOX.RawTransactions.restURL}`) + .post(uri => uri.includes(`/`)) + .reply(200, { data: data }) + + const result = await BITBOX.RawTransactions.sendRawTransaction([ "020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000" ]) - .then(result => { - assert.equal(data, result) - }) - .then(done, done) + + assert.equal(data, result.data) }) }) }) From 232c7459ded5f9f738e437725ca24b2e2fccf7f0 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 1 Feb 2019 06:32:53 +0900 Subject: [PATCH 194/480] Build new bitcoincash-opcodes --- README.md | 2 +- index.js | 2 +- lib/Script.js | 6 +++--- package-lock.json | 10 +++++++--- package.json | 4 ++-- src/Script.js | 2 +- 6 files changed, 15 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index a8b227d1..c779667c 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ Open Source / Creative Commons Listings - [bigi](https://www.npmjs.com/package/bigi) - none - [bip21](https://github.com/bigearth/bip21) - ISC - [bip39](https://github.com/bitcoinjs/bip39/blob/master/LICENSE) - ISC -- [bitcoin-ops](https://github.com/bigearth/bitcoin-ops) - MIT +- [bitcoincash-ops](https://github.com/bitcoin-com/bitcoincash-ops) - MIT - [bitcoinjs-lib](https://github.com/bigearth/bitcoinjs-lib) - MIT - [bitcoinjs-message](https://github.com/bitcoinjs/bitcoinjs-message) - MIT - [bs58](https://www.npmjs.com/package/bs58) - MIT diff --git a/index.js b/index.js index 8ac49d1d..060d2fda 100755 --- a/index.js +++ b/index.js @@ -18,7 +18,7 @@ const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") const cmd = require("node-cmd") -program.version("3.0.2 ", "-v, --version") +program.version("3.0.3 ", "-v, --version") program .command("new ") diff --git a/lib/Script.js b/lib/Script.js index f6e99654..8474a9ee 100644 --- a/lib/Script.js +++ b/lib/Script.js @@ -10,9 +10,9 @@ var _bitcoincashjsLib = require("bitcoincashjs-lib"); var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); -var _bitcoinOps = require("bitcoin-ops"); +var _bitcoincashOps = require("bitcoincash-ops"); -var _bitcoinOps2 = _interopRequireDefault(_bitcoinOps); +var _bitcoincashOps2 = _interopRequireDefault(_bitcoincashOps); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -22,7 +22,7 @@ var Script = function () { function Script() { _classCallCheck(this, Script); - this.opcodes = _bitcoinOps2.default; + this.opcodes = _bitcoincashOps2.default; this.nullData = _bitcoincashjsLib2.default.script.nullData; this.multisig = { input: { diff --git a/package-lock.json b/package-lock.json index 901e6587..37d4d416 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "3.0.2", + "version": "3.0.3", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1522,8 +1522,8 @@ } }, "bitcoin-ops": { - "version": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646", - "from": "github:Bitcoin-com/bitcoincash-ops#1.5.0" + "version": "1.5.0", + "resolved": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646" }, "bitcoin-txdecoder": { "version": "0.0.3", @@ -1533,6 +1533,10 @@ "bitcoinjs-lib": "3.3.*" } }, + "bitcoincash-ops": { + "version": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3", + "from": "github:Bitcoin-com/bitcoincash-ops#2.0.0" + }, "bitcoincashjs": { "version": "0.1.14", "resolved": "https://registry.npmjs.org/bitcoincashjs/-/bitcoincashjs-0.1.14.tgz", diff --git a/package.json b/package.json index 6abfcc2d..0f9c712f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "3.0.2", + "version": "3.0.3", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "contributors": [ @@ -40,7 +40,7 @@ "bip39": "^2.5.0", "bip66": "^1.1.5", "bc-bip68": "^1.0.5", - "bitcoin-ops": "Bitcoin-com/bitcoincash-ops#1.5.0", + "bitcoincash-ops": "Bitcoin-com/bitcoincash-ops#2.0.0", "bitcoin-txdecoder": "0.0.3", "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib#3.3.4", "bitcoinjs-message": "^2.0.0", diff --git a/src/Script.js b/src/Script.js index 7fb178e5..8aca3748 100644 --- a/src/Script.js +++ b/src/Script.js @@ -1,5 +1,5 @@ import Bitcoin from "bitcoincashjs-lib" -import opcodes from "bitcoin-ops" +import opcodes from "bitcoincash-ops" class Script { constructor() { From 841923074e4491269dd9943c899f3bb6f6e2a2e2 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 1 Feb 2019 06:39:33 +0900 Subject: [PATCH 195/480] Build. --- package-lock.json | 2671 +++++++++++++++------------------------------ 1 file changed, 887 insertions(+), 1784 deletions(-) diff --git a/package-lock.json b/package-lock.json index a1dacee8..a450bc21 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1587,9 +1587,7 @@ "dependencies": { "align-text": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "optional": true, + "bundled": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -1598,46 +1596,38 @@ }, "amdefine": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" + "bundled": true }, "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "bundled": true }, "append-transform": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", - "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", + "bundled": true, "requires": { "default-require-extensions": "^2.0.0" } }, "archy": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" + "bundled": true }, "arrify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + "bundled": true }, "async": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + "bundled": true }, "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "bundled": true }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "bundled": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1645,13 +1635,11 @@ }, "builtin-modules": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + "bundled": true }, "caching-transform": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-2.0.0.tgz", - "integrity": "sha512-tTfemGmFWe7KZ3KN6VsSgQZbd9Bgo7A40wlp4PTsJJvFu4YAnEC5YnfdiKq6Vh2i9XJLnA9n8OXD46orVpnPMw==", + "bundled": true, "requires": { "make-dir": "^1.0.0", "md5-hex": "^2.0.0", @@ -1661,14 +1649,12 @@ }, "camelcase": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "bundled": true, "optional": true }, "center-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "bundled": true, "optional": true, "requires": { "align-text": "^0.1.3", @@ -1677,8 +1663,7 @@ }, "cliui": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "bundled": true, "optional": true, "requires": { "center-align": "^0.1.1", @@ -1688,39 +1673,33 @@ "dependencies": { "wordwrap": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "bundled": true, "optional": true } } }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "bundled": true }, "commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + "bundled": true }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "bundled": true }, "convert-source-map": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "bundled": true, "requires": { "safe-buffer": "~5.1.1" } }, "cross-spawn": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "bundled": true, "requires": { "lru-cache": "^4.0.1", "which": "^1.2.9" @@ -1728,47 +1707,40 @@ }, "debug": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "bundled": true, "requires": { "ms": "2.0.0" } }, "debug-log": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", - "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=" + "bundled": true }, "decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "bundled": true }, "default-require-extensions": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz", - "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", + "bundled": true, "requires": { "strip-bom": "^3.0.0" } }, "error-ex": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "bundled": true, "requires": { "is-arrayish": "^0.2.1" } }, "es6-error": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==" + "bundled": true }, "execa": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "bundled": true, "requires": { "cross-spawn": "^5.0.1", "get-stream": "^3.0.0", @@ -1781,8 +1753,7 @@ "dependencies": { "cross-spawn": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "bundled": true, "requires": { "lru-cache": "^4.0.1", "shebang-command": "^1.2.0", @@ -1793,8 +1764,7 @@ }, "find-cache-dir": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.0.0.tgz", - "integrity": "sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA==", + "bundled": true, "requires": { "commondir": "^1.0.1", "make-dir": "^1.0.0", @@ -1803,16 +1773,14 @@ }, "find-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "bundled": true, "requires": { "locate-path": "^3.0.0" } }, "foreground-child": { "version": "1.5.6", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", - "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "bundled": true, "requires": { "cross-spawn": "^4", "signal-exit": "^3.0.0" @@ -1820,23 +1788,19 @@ }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "bundled": true }, "get-caller-file": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" + "bundled": true }, "get-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + "bundled": true }, "glob": { "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "bundled": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -1848,13 +1812,11 @@ }, "graceful-fs": { "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "bundled": true }, "handlebars": { "version": "4.0.11", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", - "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "bundled": true, "requires": { "async": "^1.4.0", "optimist": "^0.6.1", @@ -1864,8 +1826,7 @@ "dependencies": { "source-map": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "bundled": true, "requires": { "amdefine": ">=0.0.4" } @@ -1874,23 +1835,19 @@ }, "has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "bundled": true }, "hosted-git-info": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" + "bundled": true }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + "bundled": true }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -1898,65 +1855,53 @@ }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "bundled": true }, "invert-kv": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + "bundled": true }, "is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "bundled": true }, "is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "optional": true + "bundled": true }, "is-builtin-module": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "bundled": true, "requires": { "builtin-modules": "^1.0.0" } }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "bundled": true }, "is-stream": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "bundled": true }, "isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "bundled": true }, "istanbul-lib-coverage": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", - "integrity": "sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA==" + "bundled": true }, "istanbul-lib-hook": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.1.tgz", - "integrity": "sha512-ufiZoiJ8CxY577JJWEeFuxXZoMqiKpq/RqZtOAYuQLvlkbJWscq9n3gc4xrCGH9n4pW0qnTxOz1oyMmVtk8E1w==", + "bundled": true, "requires": { "append-transform": "^1.0.0" } }, "istanbul-lib-report": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.2.tgz", - "integrity": "sha512-rJ8uR3peeIrwAxoDEbK4dJ7cqqtxBisZKCuwkMtMv0xYzaAnsAi3AHrHPAAtNXzG/bcCgZZ3OJVqm1DTi9ap2Q==", + "bundled": true, "requires": { "istanbul-lib-coverage": "^2.0.1", "make-dir": "^1.3.0", @@ -1965,8 +1910,7 @@ }, "istanbul-lib-source-maps": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-2.0.1.tgz", - "integrity": "sha512-30l40ySg+gvBLcxTrLzR4Z2XTRj3HgRCA/p2rnbs/3OiTaoj054gAbuP5DcLOtwqmy4XW8qXBHzrmP2/bQ9i3A==", + "bundled": true, "requires": { "debug": "^3.1.0", "istanbul-lib-coverage": "^2.0.1", @@ -1977,51 +1921,43 @@ "dependencies": { "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "bundled": true } } }, "istanbul-reports": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.0.1.tgz", - "integrity": "sha512-CT0QgMBJqs6NJLF678ZHcquUAZIoBIUNzdJrRJfpkI9OnzG6MkUfHxbJC3ln981dMswC7/B1mfX3LNkhgJxsuw==", + "bundled": true, "requires": { "handlebars": "^4.0.11" } }, "json-parse-better-errors": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + "bundled": true }, "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "optional": true, + "bundled": true, "requires": { "is-buffer": "^1.1.5" } }, "lazy-cache": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "bundled": true, "optional": true }, "lcid": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "bundled": true, "requires": { "invert-kv": "^1.0.0" } }, "load-json-file": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "bundled": true, "requires": { "graceful-fs": "^4.1.2", "parse-json": "^4.0.0", @@ -2031,8 +1967,7 @@ }, "locate-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "bundled": true, "requires": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -2040,19 +1975,15 @@ }, "lodash.flattendeep": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=" + "bundled": true }, "longest": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "optional": true + "bundled": true }, "lru-cache": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "bundled": true, "requires": { "pseudomap": "^1.0.2", "yallist": "^2.1.2" @@ -2060,90 +1991,77 @@ }, "make-dir": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "bundled": true, "requires": { "pify": "^3.0.0" } }, "md5-hex": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-2.0.0.tgz", - "integrity": "sha1-0FiOnxx0lUSS7NJKwKxs6ZfZLjM=", + "bundled": true, "requires": { "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", - "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=" + "bundled": true }, "mem": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "bundled": true, "requires": { "mimic-fn": "^1.0.0" } }, "merge-source-map": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "bundled": true, "requires": { "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==" + "bundled": true } } }, "mimic-fn": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + "bundled": true }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=" + "bundled": true }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, "requires": { "minimist": "0.0.8" }, "dependencies": { "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "bundled": true } } }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "bundled": true }, "normalize-package-data": { "version": "2.4.0", - "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==", + "bundled": true, "requires": { "hosted-git-info": "^2.1.4", "is-builtin-module": "^1.0.0", @@ -2153,29 +2071,25 @@ }, "npm-run-path": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "bundled": true, "requires": { "path-key": "^2.0.0" } }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "bundled": true }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, "requires": { "wrappy": "1" } }, "optimist": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "bundled": true, "requires": { "minimist": "~0.0.1", "wordwrap": "~0.0.2" @@ -2183,13 +2097,11 @@ }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + "bundled": true }, "os-locale": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "bundled": true, "requires": { "execa": "^0.7.0", "lcid": "^1.0.0", @@ -2198,34 +2110,29 @@ }, "p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + "bundled": true }, "p-limit": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", - "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", + "bundled": true, "requires": { "p-try": "^2.0.0" } }, "p-locate": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "bundled": true, "requires": { "p-limit": "^2.0.0" } }, "p-try": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", - "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==" + "bundled": true }, "package-hash": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-2.0.0.tgz", - "integrity": "sha1-eK4ybIngWk2BO2hgGXevBcANKg0=", + "bundled": true, "requires": { "graceful-fs": "^4.1.11", "lodash.flattendeep": "^4.4.0", @@ -2235,8 +2142,7 @@ }, "parse-json": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "bundled": true, "requires": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" @@ -2244,49 +2150,41 @@ }, "path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "bundled": true }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "bundled": true }, "path-key": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + "bundled": true }, "path-type": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "bundled": true, "requires": { "pify": "^3.0.0" } }, "pify": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "bundled": true }, "pkg-dir": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "bundled": true, "requires": { "find-up": "^3.0.0" } }, "pseudomap": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + "bundled": true }, "read-pkg": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "bundled": true, "requires": { "load-json-file": "^4.0.0", "normalize-package-data": "^2.3.2", @@ -2295,8 +2193,7 @@ }, "read-pkg-up": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", - "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", + "bundled": true, "requires": { "find-up": "^3.0.0", "read-pkg": "^3.0.0" @@ -2304,37 +2201,30 @@ }, "release-zalgo": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", + "bundled": true, "requires": { "es6-error": "^4.0.1" } }, "repeat-string": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "optional": true + "bundled": true }, "require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "bundled": true }, "require-main-filename": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + "bundled": true }, "resolve-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + "bundled": true }, "right-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "bundled": true, "optional": true, "requires": { "align-text": "^0.1.1" @@ -2342,55 +2232,46 @@ }, "rimraf": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "bundled": true, "requires": { "glob": "^7.0.5" } }, "safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "bundled": true }, "semver": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + "bundled": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "bundled": true }, "shebang-command": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "bundled": true, "requires": { "shebang-regex": "^1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + "bundled": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + "bundled": true }, "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "bundled": true, "optional": true }, "spawn-wrap": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", - "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", + "bundled": true, "requires": { "foreground-child": "^1.5.6", "mkdirp": "^0.5.0", @@ -2402,8 +2283,7 @@ }, "spdx-correct": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "bundled": true, "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -2411,13 +2291,11 @@ }, "spdx-exceptions": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==" + "bundled": true }, "spdx-expression-parse": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "bundled": true, "requires": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" @@ -2425,13 +2303,11 @@ }, "spdx-license-ids": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==" + "bundled": true }, "string-width": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "bundled": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" @@ -2439,34 +2315,29 @@ }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "bundled": true, "requires": { "ansi-regex": "^3.0.0" } }, "strip-bom": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + "bundled": true }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + "bundled": true }, "supports-color": { "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "bundled": true, "requires": { "has-flag": "^3.0.0" } }, "test-exclude": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.0.0.tgz", - "integrity": "sha512-bO3Lj5+qFa9YLfYW2ZcXMOV1pmQvw+KS/DpjqhyX6Y6UZ8zstpZJ+mA2ERkXfpOqhxsJlQiLeVXD3Smsrs6oLw==", + "bundled": true, "requires": { "arrify": "^1.0.1", "minimatch": "^3.0.4", @@ -2476,8 +2347,7 @@ }, "uglify-js": { "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "bundled": true, "optional": true, "requires": { "source-map": "~0.5.1", @@ -2487,8 +2357,7 @@ "dependencies": { "yargs": { "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "bundled": true, "optional": true, "requires": { "camelcase": "^1.0.2", @@ -2501,19 +2370,16 @@ }, "uglify-to-browserify": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "bundled": true, "optional": true }, "uuid": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + "bundled": true }, "validate-npm-package-license": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", - "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", + "bundled": true, "requires": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -2521,32 +2387,27 @@ }, "which": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "bundled": true, "requires": { "isexe": "^2.0.0" } }, "which-module": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + "bundled": true }, "window-size": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "bundled": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" + "bundled": true }, "wrap-ansi": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "bundled": true, "requires": { "string-width": "^1.0.1", "strip-ansi": "^3.0.1" @@ -2554,21 +2415,18 @@ "dependencies": { "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "bundled": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, "requires": { "number-is-nan": "^1.0.0" } }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -2577,8 +2435,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, "requires": { "ansi-regex": "^2.0.0" } @@ -2587,13 +2444,11 @@ }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "bundled": true }, "write-file-atomic": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", - "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", + "bundled": true, "requires": { "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", @@ -2602,18 +2457,15 @@ }, "y18n": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + "bundled": true }, "yallist": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + "bundled": true }, "yargs": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", - "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", + "bundled": true, "requires": { "cliui": "^4.0.0", "decamelize": "^1.1.1", @@ -2631,8 +2483,7 @@ "dependencies": { "cliui": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "bundled": true, "requires": { "string-width": "^2.1.1", "strip-ansi": "^4.0.0", @@ -2641,16 +2492,14 @@ }, "find-up": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "bundled": true, "requires": { "locate-path": "^2.0.0" } }, "locate-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "bundled": true, "requires": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" @@ -2658,39 +2507,34 @@ }, "p-limit": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "bundled": true, "requires": { "p-try": "^1.0.0" } }, "p-locate": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "bundled": true, "requires": { "p-limit": "^1.1.0" } }, "p-try": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + "bundled": true } } }, "yargs-parser": { "version": "9.0.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "bundled": true, "requires": { "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + "bundled": true } } } @@ -2733,8 +2577,9 @@ } }, "bitcoin-ops": { - "version": "1.5.0", - "resolved": "github:Bitcoin-com/bitcoincash-ops#f1363d462fd044f35f94a220bf9568e25d985646" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz", + "integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow==" }, "bitcoin-txdecoder": { "version": "0.0.3", @@ -3823,9 +3668,9 @@ } }, "electron-to-chromium": { - "version": "1.3.109", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.109.tgz", - "integrity": "sha512-1qhgVZD9KIULMyeBkbjU/dWmm30zpPUfdWZfVO3nPhbtqMHJqHr4Ua5wBcWtAymVFrUCuAJxjMF1OhG+bR21Ow==" + "version": "1.3.110", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.110.tgz", + "integrity": "sha512-LS2Osf3ags8xVmcgRcH06fQjVbSEPhFtMfmjXDv5jHUzg73sNsEflv9rltZ33IAe0RLgU+7ln+1r+U7d6/k0KQ==" }, "elliptic": { "version": "6.4.1", @@ -5075,8 +4920,7 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true, - "optional": true + "bundled": true }, "aproba": { "version": "1.2.0", @@ -5094,13 +4938,11 @@ }, "balanced-match": { "version": "1.0.0", - "bundled": true, - "optional": true + "bundled": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -5113,18 +4955,15 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true, - "optional": true + "bundled": true }, "concat-map": { "version": "0.0.1", - "bundled": true, - "optional": true + "bundled": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true, - "optional": true + "bundled": true }, "core-util-is": { "version": "1.0.2", @@ -5227,8 +5066,7 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, - "optional": true + "bundled": true }, "ini": { "version": "1.3.5", @@ -5238,7 +5076,6 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -5251,20 +5088,17 @@ "minimatch": { "version": "3.0.4", "bundled": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true, - "optional": true + "bundled": true }, "minipass": { "version": "2.3.5", "bundled": true, - "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -5281,7 +5115,6 @@ "mkdirp": { "version": "0.5.1", "bundled": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -5354,8 +5187,7 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true, - "optional": true + "bundled": true }, "object-assign": { "version": "4.1.1", @@ -5365,7 +5197,6 @@ "once": { "version": "1.4.0", "bundled": true, - "optional": true, "requires": { "wrappy": "1" } @@ -5441,8 +5272,7 @@ }, "safe-buffer": { "version": "5.1.2", - "bundled": true, - "optional": true + "bundled": true }, "safer-buffer": { "version": "2.1.2", @@ -5472,7 +5302,6 @@ "string-width": { "version": "1.0.2", "bundled": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -5490,7 +5319,6 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, - "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -5529,13 +5357,11 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, - "optional": true + "bundled": true }, "yallist": { "version": "3.0.3", - "bundled": true, - "optional": true + "bundled": true } } }, @@ -5644,7 +5470,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "optional": true, "requires": { "is-glob": "^2.0.0" } @@ -6206,8 +6031,7 @@ "is-extglob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "optional": true + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" }, "is-finite": { "version": "1.0.2", @@ -6226,7 +6050,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "optional": true, "requires": { "is-extglob": "^1.0.0" } @@ -7236,7 +7059,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "optional": true, "requires": { "remove-trailing-separator": "^1.0.1" } @@ -7375,8 +7197,7 @@ "dependencies": { "JSONStream": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.4.tgz", - "integrity": "sha512-Y7vfi3I5oMOYIr+WxV8NZxDSwcbNgzdKYsTNInmycOq9bUYwGg9ryu57Wg5NLmCjqdFPNUmpMBo3kSJN9tCbXg==", + "bundled": true, "dev": true, "requires": { "jsonparse": "^1.2.0", @@ -7385,14 +7206,12 @@ }, "abbrev": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "bundled": true, "dev": true }, "agent-base": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz", - "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", + "bundled": true, "dev": true, "requires": { "es6-promisify": "^5.0.0" @@ -7400,8 +7219,7 @@ }, "agentkeepalive": { "version": "3.4.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.4.1.tgz", - "integrity": "sha512-MPIwsZU9PP9kOrZpyu2042kYA8Fdt/AedQYkYXucHgF9QoD9dXVp0ypuGnHXSR0hTstBxdt85Xkh4JolYfK5wg==", + "bundled": true, "dev": true, "requires": { "humanize-ms": "^1.2.1" @@ -7409,8 +7227,7 @@ }, "ajv": { "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "bundled": true, "dev": true, "requires": { "co": "^4.6.0", @@ -7421,8 +7238,7 @@ }, "ansi-align": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "bundled": true, "dev": true, "requires": { "string-width": "^2.0.0" @@ -7430,14 +7246,12 @@ }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "bundled": true, "dev": true }, "ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "bundled": true, "dev": true, "requires": { "color-convert": "^1.9.0" @@ -7445,32 +7259,27 @@ }, "ansicolors": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=", + "bundled": true, "dev": true }, "ansistyles": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ansistyles/-/ansistyles-0.1.3.tgz", - "integrity": "sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk=", + "bundled": true, "dev": true }, "aproba": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "bundled": true, "dev": true }, "archy": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "bundled": true, "dev": true }, "are-we-there-yet": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "bundled": true, "dev": true, "requires": { "delegates": "^1.0.0", @@ -7479,14 +7288,12 @@ }, "asap": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "bundled": true, "dev": true }, "asn1": { "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "bundled": true, "dev": true, "requires": { "safer-buffer": "~2.1.0" @@ -7494,38 +7301,32 @@ }, "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "dev": true }, "asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "bundled": true, "dev": true }, "aws-sign2": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "bundled": true, "dev": true }, "aws4": { "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "bundled": true, "dev": true }, "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "bundled": true, "dev": true }, "bcrypt-pbkdf": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -7534,8 +7335,7 @@ }, "bin-links": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-1.1.2.tgz", - "integrity": "sha512-8eEHVgYP03nILphilltWjeIjMbKyJo3wvp9K816pHbhP301ismzw15mxAAEVQ/USUwcP++1uNrbERbp8lOA6Fg==", + "bundled": true, "dev": true, "requires": { "bluebird": "^3.5.0", @@ -7547,8 +7347,7 @@ }, "block-stream": { "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "bundled": true, "dev": true, "requires": { "inherits": "~2.0.0" @@ -7556,14 +7355,12 @@ }, "bluebird": { "version": "3.5.3", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz", - "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==", + "bundled": true, "dev": true }, "boxen": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "bundled": true, "dev": true, "requires": { "ansi-align": "^2.0.0", @@ -7577,8 +7374,7 @@ }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "bundled": true, "dev": true, "requires": { "balanced-match": "^1.0.0", @@ -7587,38 +7383,32 @@ }, "buffer-from": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz", - "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==", + "bundled": true, "dev": true }, "builtin-modules": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "bundled": true, "dev": true }, "builtins": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "bundled": true, "dev": true }, "byline": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", - "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=", + "bundled": true, "dev": true }, "byte-size": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-4.0.3.tgz", - "integrity": "sha512-JGC3EV2bCzJH/ENSh3afyJrH4vwxbHTuO5ljLoI5+2iJOcEpMgP8T782jH9b5qGxf2mSUIp1lfGnfKNrRHpvVg==", + "bundled": true, "dev": true }, "cacache": { "version": "11.2.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.2.0.tgz", - "integrity": "sha512-IFWl6lfK6wSeYCHUXh+N1lY72UDrpyrYQJNIVQf48paDuWbv5RbAtJYf/4gUQFObTCHZwdZ5sI8Iw7nqwP6nlQ==", + "bundled": true, "dev": true, "requires": { "bluebird": "^3.5.1", @@ -7639,32 +7429,27 @@ }, "call-limit": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/call-limit/-/call-limit-1.1.0.tgz", - "integrity": "sha1-b9YbA/PaQqLNDsK2DwK9DnGZH+o=", + "bundled": true, "dev": true }, "camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "bundled": true, "dev": true }, "capture-stack-trace": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", - "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=", + "bundled": true, "dev": true }, "caseless": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "bundled": true, "dev": true }, "chalk": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "bundled": true, "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -7674,20 +7459,17 @@ }, "chownr": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", + "bundled": true, "dev": true }, "ci-info": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", - "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "bundled": true, "dev": true }, "cidr-regex": { "version": "2.0.9", - "resolved": "https://registry.npmjs.org/cidr-regex/-/cidr-regex-2.0.9.tgz", - "integrity": "sha512-F7/fBRUU45FnvSPjXdpIrc++WRSBdCiSTlyq4ZNhLKOlHFNWgtzZ0Fd+zrqI/J1j0wmlx/f5ZQDmD2GcbrNcmw==", + "bundled": true, "dev": true, "requires": { "ip-regex": "^2.1.0" @@ -7695,14 +7477,12 @@ }, "cli-boxes": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", + "bundled": true, "dev": true }, "cli-columns": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/cli-columns/-/cli-columns-3.1.2.tgz", - "integrity": "sha1-ZzLZcpee/CrkRKHwjgj6E5yWoY4=", + "bundled": true, "dev": true, "requires": { "string-width": "^2.0.0", @@ -7711,8 +7491,7 @@ }, "cli-table3": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.0.tgz", - "integrity": "sha512-c7YHpUyO1SaKaO7kYtxd5NZ8FjAmSK3LpKkuzdwn+2CwpFxBpdoQLm+OAnnCfoEl7onKhN9PKQi1lsHuAIUqGQ==", + "bundled": true, "dev": true, "requires": { "colors": "^1.1.2", @@ -7722,8 +7501,7 @@ }, "cliui": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "bundled": true, "dev": true, "requires": { "string-width": "^2.1.1", @@ -7733,14 +7511,12 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "bundled": true, "dev": true }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "^3.0.0" @@ -7750,14 +7526,12 @@ }, "clone": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "bundled": true, "dev": true }, "cmd-shim": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-2.0.2.tgz", - "integrity": "sha1-b8vamUg6j9FdfTChlspp1oii79s=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -7766,20 +7540,17 @@ }, "co": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "bundled": true, "dev": true }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "bundled": true, "dev": true }, "color-convert": { "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", - "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "bundled": true, "dev": true, "requires": { "color-name": "^1.1.1" @@ -7787,21 +7558,18 @@ }, "color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "bundled": true, "dev": true }, "colors": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "bundled": true, "dev": true, "optional": true }, "columnify": { "version": "1.5.4", - "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz", - "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=", + "bundled": true, "dev": true, "requires": { "strip-ansi": "^3.0.0", @@ -7810,8 +7578,7 @@ }, "combined-stream": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "bundled": true, "dev": true, "requires": { "delayed-stream": "~1.0.0" @@ -7819,14 +7586,12 @@ }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "bundled": true, "dev": true }, "concat-stream": { "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "bundled": true, "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -7837,8 +7602,7 @@ }, "config-chain": { "version": "1.1.12", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", - "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "bundled": true, "dev": true, "requires": { "ini": "^1.3.4", @@ -7847,8 +7611,7 @@ }, "configstore": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", - "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "bundled": true, "dev": true, "requires": { "dot-prop": "^4.1.0", @@ -7861,14 +7624,12 @@ }, "console-control-strings": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "bundled": true, "dev": true }, "copy-concurrently": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "bundled": true, "dev": true, "requires": { "aproba": "^1.1.1", @@ -7881,22 +7642,19 @@ "dependencies": { "iferr": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "bundled": true, "dev": true } } }, "core-util-is": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "bundled": true, "dev": true }, "create-error-class": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", - "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "bundled": true, "dev": true, "requires": { "capture-stack-trace": "^1.0.0" @@ -7904,8 +7662,7 @@ }, "cross-spawn": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "bundled": true, "dev": true, "requires": { "lru-cache": "^4.0.1", @@ -7915,20 +7672,17 @@ }, "crypto-random-string": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", + "bundled": true, "dev": true }, "cyclist": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", + "bundled": true, "dev": true }, "dashdash": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "bundled": true, "dev": true, "requires": { "assert-plus": "^1.0.0" @@ -7936,8 +7690,7 @@ }, "debug": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "bundled": true, "dev": true, "requires": { "ms": "2.0.0" @@ -7945,40 +7698,34 @@ "dependencies": { "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "bundled": true, "dev": true } } }, "debuglog": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", - "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", + "bundled": true, "dev": true }, "decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "bundled": true, "dev": true }, "decode-uri-component": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "bundled": true, "dev": true }, "deep-extend": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", + "bundled": true, "dev": true }, "defaults": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "bundled": true, "dev": true, "requires": { "clone": "^1.0.2" @@ -7986,32 +7733,27 @@ }, "delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "bundled": true, "dev": true }, "delegates": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "bundled": true, "dev": true }, "detect-indent": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", - "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=", + "bundled": true, "dev": true }, "detect-newline": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", - "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", + "bundled": true, "dev": true }, "dezalgo": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", - "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "bundled": true, "dev": true, "requires": { "asap": "^2.0.0", @@ -8020,8 +7762,7 @@ }, "dot-prop": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "bundled": true, "dev": true, "requires": { "is-obj": "^1.0.0" @@ -8029,20 +7770,17 @@ }, "dotenv": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-5.0.1.tgz", - "integrity": "sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==", + "bundled": true, "dev": true }, "duplexer3": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "bundled": true, "dev": true }, "duplexify": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", - "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", + "bundled": true, "dev": true, "requires": { "end-of-stream": "^1.0.0", @@ -8053,8 +7791,7 @@ }, "ecc-jsbn": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -8064,14 +7801,12 @@ }, "editor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/editor/-/editor-1.0.0.tgz", - "integrity": "sha1-YMf4e9YrzGqJT6jM1q+3gjok90I=", + "bundled": true, "dev": true }, "encoding": { "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "bundled": true, "dev": true, "requires": { "iconv-lite": "~0.4.13" @@ -8079,8 +7814,7 @@ }, "end-of-stream": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "bundled": true, "dev": true, "requires": { "once": "^1.4.0" @@ -8088,14 +7822,12 @@ }, "err-code": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "bundled": true, "dev": true }, "errno": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "bundled": true, "dev": true, "requires": { "prr": "~1.0.1" @@ -8103,14 +7835,12 @@ }, "es6-promise": { "version": "4.2.4", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", - "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==", + "bundled": true, "dev": true }, "es6-promisify": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "bundled": true, "dev": true, "requires": { "es6-promise": "^4.0.3" @@ -8118,14 +7848,12 @@ }, "escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "bundled": true, "dev": true }, "execa": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "bundled": true, "dev": true, "requires": { "cross-spawn": "^5.0.1", @@ -8139,44 +7867,37 @@ }, "extend": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "bundled": true, "dev": true }, "extsprintf": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "bundled": true, "dev": true }, "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=", + "bundled": true, "dev": true }, "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=", + "bundled": true, "dev": true }, "figgy-pudding": { "version": "3.5.1", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", - "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", + "bundled": true, "dev": true }, "find-npm-prefix": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/find-npm-prefix/-/find-npm-prefix-1.0.2.tgz", - "integrity": "sha512-KEftzJ+H90x6pcKtdXZEPsQse8/y/UnvzRKrOSQFprnrGaFuJ62fVkP34Iu2IYuMvyauCyoLTNkJZgrrGA2wkA==", + "bundled": true, "dev": true }, "find-up": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "bundled": true, "dev": true, "requires": { "locate-path": "^2.0.0" @@ -8184,8 +7905,7 @@ }, "flush-write-stream": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", - "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", + "bundled": true, "dev": true, "requires": { "inherits": "^2.0.1", @@ -8194,14 +7914,12 @@ }, "forever-agent": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "bundled": true, "dev": true }, "form-data": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "bundled": true, "dev": true, "requires": { "asynckit": "^0.4.0", @@ -8211,8 +7929,7 @@ }, "from2": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "bundled": true, "dev": true, "requires": { "inherits": "^2.0.1", @@ -8221,8 +7938,7 @@ }, "fs-minipass": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", - "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", + "bundled": true, "dev": true, "requires": { "minipass": "^2.2.1" @@ -8230,8 +7946,7 @@ }, "fs-vacuum": { "version": "1.2.10", - "resolved": "https://registry.npmjs.org/fs-vacuum/-/fs-vacuum-1.2.10.tgz", - "integrity": "sha1-t2Kb7AekAxolSP35n17PHMizHjY=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -8241,8 +7956,7 @@ }, "fs-write-stream-atomic": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -8253,22 +7967,19 @@ "dependencies": { "iferr": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "bundled": true, "dev": true } } }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "bundled": true, "dev": true }, "fstream": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -8279,8 +7990,7 @@ }, "gauge": { "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "bundled": true, "dev": true, "requires": { "aproba": "^1.0.3", @@ -8295,8 +8005,7 @@ "dependencies": { "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "dev": true, "requires": { "code-point-at": "^1.0.0", @@ -8308,14 +8017,12 @@ }, "genfun": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/genfun/-/genfun-4.0.1.tgz", - "integrity": "sha1-7RAEHy5KfxsKOEZtF6XD4n3x38E=", + "bundled": true, "dev": true }, "gentle-fs": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/gentle-fs/-/gentle-fs-2.0.1.tgz", - "integrity": "sha512-cEng5+3fuARewXktTEGbwsktcldA+YsnUEaXZwcK/3pjSE1X9ObnTs+/8rYf8s+RnIcQm2D5x3rwpN7Zom8Bew==", + "bundled": true, "dev": true, "requires": { "aproba": "^1.1.2", @@ -8330,28 +8037,24 @@ "dependencies": { "iferr": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "bundled": true, "dev": true } } }, "get-caller-file": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "bundled": true, "dev": true }, "get-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "bundled": true, "dev": true }, "getpass": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "bundled": true, "dev": true, "requires": { "assert-plus": "^1.0.0" @@ -8359,8 +8062,7 @@ }, "glob": { "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "bundled": true, "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -8373,8 +8075,7 @@ }, "global-dirs": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "bundled": true, "dev": true, "requires": { "ini": "^1.3.4" @@ -8382,8 +8083,7 @@ }, "got": { "version": "6.7.1", - "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", - "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "bundled": true, "dev": true, "requires": { "create-error-class": "^3.0.0", @@ -8401,20 +8101,17 @@ }, "graceful-fs": { "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "bundled": true, "dev": true }, "har-schema": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "bundled": true, "dev": true }, "har-validator": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", - "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", + "bundled": true, "dev": true, "requires": { "ajv": "^5.3.0", @@ -8423,32 +8120,27 @@ }, "has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "bundled": true, "dev": true }, "has-unicode": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "bundled": true, "dev": true }, "hosted-git-info": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "bundled": true, "dev": true }, "http-cache-semantics": { "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "bundled": true, "dev": true }, "http-proxy-agent": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "bundled": true, "dev": true, "requires": { "agent-base": "4", @@ -8457,8 +8149,7 @@ }, "http-signature": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "bundled": true, "dev": true, "requires": { "assert-plus": "^1.0.0", @@ -8468,8 +8159,7 @@ }, "https-proxy-agent": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", - "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", + "bundled": true, "dev": true, "requires": { "agent-base": "^4.1.0", @@ -8478,8 +8168,7 @@ }, "humanize-ms": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "bundled": true, "dev": true, "requires": { "ms": "^2.0.0" @@ -8487,8 +8176,7 @@ }, "iconv-lite": { "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "bundled": true, "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" @@ -8496,14 +8184,12 @@ }, "iferr": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-1.0.2.tgz", - "integrity": "sha512-9AfeLfji44r5TKInjhz3W9DyZI1zR1JAf2hVBMGhddAKPqBsupb89jGfbCTHIGZd6fGZl9WlHdn4AObygyMKwg==", + "bundled": true, "dev": true }, "ignore-walk": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", - "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", + "bundled": true, "dev": true, "requires": { "minimatch": "^3.0.4" @@ -8511,20 +8197,17 @@ }, "import-lazy": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "bundled": true, "dev": true }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "bundled": true, "dev": true }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, "dev": true, "requires": { "once": "^1.3.0", @@ -8533,20 +8216,17 @@ }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "bundled": true, "dev": true }, "ini": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "bundled": true, "dev": true }, "init-package-json": { "version": "1.10.3", - "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.10.3.tgz", - "integrity": "sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==", + "bundled": true, "dev": true, "requires": { "glob": "^7.1.1", @@ -8561,26 +8241,22 @@ }, "invert-kv": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "bundled": true, "dev": true }, "ip": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "bundled": true, "dev": true }, "ip-regex": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "bundled": true, "dev": true }, "is-builtin-module": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "bundled": true, "dev": true, "requires": { "builtin-modules": "^1.0.0" @@ -8588,8 +8264,7 @@ }, "is-ci": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz", - "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", + "bundled": true, "dev": true, "requires": { "ci-info": "^1.0.0" @@ -8597,8 +8272,7 @@ }, "is-cidr": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/is-cidr/-/is-cidr-2.0.6.tgz", - "integrity": "sha512-A578p1dV22TgPXn6NCaDAPj6vJvYsBgAzUrAd28a4oldeXJjWqEUuSZOLIW3im51mazOKsoyVp8NU/OItlWacw==", + "bundled": true, "dev": true, "requires": { "cidr-regex": "^2.0.8" @@ -8606,8 +8280,7 @@ }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, "dev": true, "requires": { "number-is-nan": "^1.0.0" @@ -8615,8 +8288,7 @@ }, "is-installed-globally": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "bundled": true, "dev": true, "requires": { "global-dirs": "^0.1.0", @@ -8625,20 +8297,17 @@ }, "is-npm": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", + "bundled": true, "dev": true }, "is-obj": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "bundled": true, "dev": true }, "is-path-inside": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "bundled": true, "dev": true, "requires": { "path-is-inside": "^1.0.1" @@ -8646,87 +8315,73 @@ }, "is-redirect": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", + "bundled": true, "dev": true }, "is-retry-allowed": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", - "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", + "bundled": true, "dev": true }, "is-stream": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "bundled": true, "dev": true }, "is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "bundled": true, "dev": true }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "bundled": true, "dev": true }, "isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "bundled": true, "dev": true }, "isstream": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "bundled": true, "dev": true }, "jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "bundled": true, "dev": true, "optional": true }, "json-parse-better-errors": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "bundled": true, "dev": true }, "json-schema": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "bundled": true, "dev": true }, "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=", + "bundled": true, "dev": true }, "json-stringify-safe": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "bundled": true, "dev": true }, "jsonparse": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "bundled": true, "dev": true }, "jsprim": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "bundled": true, "dev": true, "requires": { "assert-plus": "1.0.0", @@ -8737,8 +8392,7 @@ }, "latest-version": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", - "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "bundled": true, "dev": true, "requires": { "package-json": "^4.0.0" @@ -8746,14 +8400,12 @@ }, "lazy-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazy-property/-/lazy-property-1.0.0.tgz", - "integrity": "sha1-hN3Es3Bnm6i9TNz6TAa0PVcREUc=", + "bundled": true, "dev": true }, "lcid": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "bundled": true, "dev": true, "requires": { "invert-kv": "^1.0.0" @@ -8761,8 +8413,7 @@ }, "libcipm": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/libcipm/-/libcipm-2.0.2.tgz", - "integrity": "sha512-9uZ6/LAflVEijksTRq/RX0e+pGA4mr8tND9Cmk2JMg7j2fFUBrs8PpFX2DOAJR/XoxPzz+5h8bkWmtIYLunKAg==", + "bundled": true, "dev": true, "requires": { "bin-links": "^1.1.2", @@ -8783,8 +8434,7 @@ }, "libnpmhook": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/libnpmhook/-/libnpmhook-4.0.1.tgz", - "integrity": "sha512-3qqpfqvBD1712WA6iGe0stkG40WwAeoWcujA6BlC0Be1JArQbqwabnEnZ0CRcD05Tf1fPYJYdCbSfcfedEJCOg==", + "bundled": true, "dev": true, "requires": { "figgy-pudding": "^3.1.0", @@ -8793,8 +8443,7 @@ "dependencies": { "npm-registry-fetch": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-3.1.1.tgz", - "integrity": "sha512-xBobENeenvjIG8PgQ1dy77AXTI25IbYhmA3DusMIfw/4EL5BaQ5e1V9trkPrqHvyjR3/T0cnH6o0Wt/IzcI5Ag==", + "bundled": true, "dev": true, "requires": { "bluebird": "^3.5.1", @@ -8808,8 +8457,7 @@ }, "libnpx": { "version": "10.2.0", - "resolved": "https://registry.npmjs.org/libnpx/-/libnpx-10.2.0.tgz", - "integrity": "sha512-X28coei8/XRCt15cYStbLBph+KGhFra4VQhRBPuH/HHMkC5dxM8v24RVgUsvODKCrUZ0eTgiTqJp6zbl0sskQQ==", + "bundled": true, "dev": true, "requires": { "dotenv": "^5.0.1", @@ -8824,8 +8472,7 @@ }, "locate-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "bundled": true, "dev": true, "requires": { "p-locate": "^2.0.0", @@ -8834,8 +8481,7 @@ }, "lock-verify": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lock-verify/-/lock-verify-2.0.2.tgz", - "integrity": "sha512-QNVwK0EGZBS4R3YQ7F1Ox8p41Po9VGl2QG/2GsuvTbkJZYSsPeWHKMbbH6iZMCHWSMww5nrJroZYnGzI4cePuw==", + "bundled": true, "dev": true, "requires": { "npm-package-arg": "^5.1.2 || 6", @@ -8844,8 +8490,7 @@ }, "lockfile": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.4.tgz", - "integrity": "sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==", + "bundled": true, "dev": true, "requires": { "signal-exit": "^3.0.2" @@ -8853,14 +8498,12 @@ }, "lodash._baseindexof": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz", - "integrity": "sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw=", + "bundled": true, "dev": true }, "lodash._baseuniq": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz", - "integrity": "sha1-DrtE5FaBSveQXGIS+iybLVG4Qeg=", + "bundled": true, "dev": true, "requires": { "lodash._createset": "~4.0.0", @@ -8869,20 +8512,17 @@ }, "lodash._bindcallback": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", - "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=", + "bundled": true, "dev": true }, "lodash._cacheindexof": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz", - "integrity": "sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI=", + "bundled": true, "dev": true }, "lodash._createcache": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash._createcache/-/lodash._createcache-3.1.2.tgz", - "integrity": "sha1-VtagZAF2JeeevKa4AY4XRAvc8JM=", + "bundled": true, "dev": true, "requires": { "lodash._getnative": "^3.0.0" @@ -8890,62 +8530,52 @@ }, "lodash._createset": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/lodash._createset/-/lodash._createset-4.0.3.tgz", - "integrity": "sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY=", + "bundled": true, "dev": true }, "lodash._getnative": { "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", + "bundled": true, "dev": true }, "lodash._root": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", + "bundled": true, "dev": true }, "lodash.clonedeep": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "bundled": true, "dev": true }, "lodash.restparam": { "version": "3.6.1", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", + "bundled": true, "dev": true }, "lodash.union": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=", + "bundled": true, "dev": true }, "lodash.uniq": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "bundled": true, "dev": true }, "lodash.without": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.without/-/lodash.without-4.4.0.tgz", - "integrity": "sha1-PNRXSgC2e643OpS3SHcmQFB7eqw=", + "bundled": true, "dev": true }, "lowercase-keys": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "bundled": true, "dev": true }, "lru-cache": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "bundled": true, "dev": true, "requires": { "pseudomap": "^1.0.2", @@ -8954,8 +8584,7 @@ }, "make-dir": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "bundled": true, "dev": true, "requires": { "pify": "^3.0.0" @@ -8963,8 +8592,7 @@ }, "make-fetch-happen": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz", - "integrity": "sha512-7R5ivfy9ilRJ1EMKIOziwrns9fGeAD4bAha8EB7BIiBBLHm2KeTUGCrICFt2rbHfzheTLynv50GnNTK1zDTrcQ==", + "bundled": true, "dev": true, "requires": { "agentkeepalive": "^3.4.1", @@ -8982,14 +8610,12 @@ }, "meant": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/meant/-/meant-1.0.1.tgz", - "integrity": "sha512-UakVLFjKkbbUwNWJ2frVLnnAtbb7D7DsloxRd3s/gDpI8rdv8W5Hp3NaDb+POBI1fQdeussER6NB8vpcRURvlg==", + "bundled": true, "dev": true }, "mem": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "bundled": true, "dev": true, "requires": { "mimic-fn": "^1.0.0" @@ -8997,14 +8623,12 @@ }, "mime-db": { "version": "1.35.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz", - "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==", + "bundled": true, "dev": true }, "mime-types": { "version": "2.1.19", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", - "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", + "bundled": true, "dev": true, "requires": { "mime-db": "~1.35.0" @@ -9012,14 +8636,12 @@ }, "mimic-fn": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "bundled": true, "dev": true }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, "dev": true, "requires": { "brace-expansion": "^1.1.7" @@ -9027,14 +8649,12 @@ }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "bundled": true, "dev": true }, "minipass": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.3.tgz", - "integrity": "sha512-/jAn9/tEX4gnpyRATxgHEOV6xbcyxgT7iUnxo9Y3+OB0zX00TgKIv/2FZCf5brBbICcwbLqVv2ImjvWWrQMSYw==", + "bundled": true, "dev": true, "requires": { "safe-buffer": "^5.1.2", @@ -9043,16 +8663,14 @@ "dependencies": { "yallist": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", + "bundled": true, "dev": true } } }, "minizlib": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.1.tgz", - "integrity": "sha512-TrfjCjk4jLhcJyGMYymBH6oTXcWjYbUAXTHDbtnWHjZC25h0cdajHuPE1zxb4DVmu8crfh+HwH/WMuyLG0nHBg==", + "bundled": true, "dev": true, "requires": { "minipass": "^2.2.1" @@ -9060,8 +8678,7 @@ }, "mississippi": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "bundled": true, "dev": true, "requires": { "concat-stream": "^1.5.0", @@ -9078,8 +8695,7 @@ }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, "dev": true, "requires": { "minimist": "0.0.8" @@ -9087,8 +8703,7 @@ }, "move-concurrently": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "bundled": true, "dev": true, "requires": { "aproba": "^1.1.1", @@ -9101,20 +8716,17 @@ }, "ms": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "bundled": true, "dev": true }, "mute-stream": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "bundled": true, "dev": true }, "node-fetch-npm": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", - "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", + "bundled": true, "dev": true, "requires": { "encoding": "^0.1.11", @@ -9124,8 +8736,7 @@ }, "node-gyp": { "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "bundled": true, "dev": true, "requires": { "fstream": "^1.0.0", @@ -9144,8 +8755,7 @@ "dependencies": { "nopt": { "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "bundled": true, "dev": true, "requires": { "abbrev": "1" @@ -9153,14 +8763,12 @@ }, "semver": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "bundled": true, "dev": true }, "tar": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "bundled": true, "dev": true, "requires": { "block-stream": "*", @@ -9172,8 +8780,7 @@ }, "nopt": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "bundled": true, "dev": true, "requires": { "abbrev": "1", @@ -9182,8 +8789,7 @@ }, "normalize-package-data": { "version": "2.4.0", - "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==", + "bundled": true, "dev": true, "requires": { "hosted-git-info": "^2.1.4", @@ -9194,8 +8800,7 @@ }, "npm-audit-report": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/npm-audit-report/-/npm-audit-report-1.3.1.tgz", - "integrity": "sha512-SjTF8ZP4rOu3JiFrTMi4M1CmVo2tni2sP4TzhyCMHwnMGf6XkdGLZKt9cdZ12esKf0mbQqFyU9LtY0SoeahL7g==", + "bundled": true, "dev": true, "requires": { "cli-table3": "^0.5.0", @@ -9204,20 +8809,17 @@ }, "npm-bundled": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.5.tgz", - "integrity": "sha512-m/e6jgWu8/v5niCUKQi9qQl8QdeEduFA96xHDDzFGqly0OOjI7c+60KM/2sppfnUU9JJagf+zs+yGhqSOFj71g==", + "bundled": true, "dev": true }, "npm-cache-filename": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/npm-cache-filename/-/npm-cache-filename-1.0.2.tgz", - "integrity": "sha1-3tMGxbC/yHCp6fr4I7xfKD4FrhE=", + "bundled": true, "dev": true }, "npm-install-checks": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-3.0.0.tgz", - "integrity": "sha1-1K7N/VGlPjcjt7L5Oy7ijjB7wNc=", + "bundled": true, "dev": true, "requires": { "semver": "^2.3.0 || 3.x || 4 || 5" @@ -9225,8 +8827,7 @@ }, "npm-lifecycle": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/npm-lifecycle/-/npm-lifecycle-2.1.0.tgz", - "integrity": "sha512-QbBfLlGBKsktwBZLj6AviHC6Q9Y3R/AY4a2PYSIRhSKSS0/CxRyD/PfxEX6tPeOCXQgMSNdwGeECacstgptc+g==", + "bundled": true, "dev": true, "requires": { "byline": "^5.0.0", @@ -9241,14 +8842,12 @@ }, "npm-logical-tree": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/npm-logical-tree/-/npm-logical-tree-1.2.1.tgz", - "integrity": "sha512-AJI/qxDB2PWI4LG1CYN579AY1vCiNyWfkiquCsJWqntRu/WwimVrC8yXeILBFHDwxfOejxewlmnvW9XXjMlYIg==", + "bundled": true, "dev": true }, "npm-package-arg": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.0.tgz", - "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", + "bundled": true, "dev": true, "requires": { "hosted-git-info": "^2.6.0", @@ -9259,8 +8858,7 @@ }, "npm-packlist": { "version": "1.1.12", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.12.tgz", - "integrity": "sha512-WJKFOVMeAlsU/pjXuqVdzU0WfgtIBCupkEVwn+1Y0ERAbUfWw8R4GjgVbaKnUjRoD2FoQbHOCbOyT5Mbs9Lw4g==", + "bundled": true, "dev": true, "requires": { "ignore-walk": "^3.0.1", @@ -9269,8 +8867,7 @@ }, "npm-pick-manifest": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-2.1.0.tgz", - "integrity": "sha512-q9zLP8cTr8xKPmMZN3naxp1k/NxVFsjxN6uWuO1tiw9gxg7wZWQ/b5UTfzD0ANw2q1lQxdLKTeCCksq+bPSgbQ==", + "bundled": true, "dev": true, "requires": { "npm-package-arg": "^6.0.0", @@ -9279,8 +8876,7 @@ }, "npm-profile": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/npm-profile/-/npm-profile-3.0.2.tgz", - "integrity": "sha512-rEJOFR6PbwOvvhGa2YTNOJQKNuc6RovJ6T50xPU7pS9h/zKPNCJ+VHZY2OFXyZvEi+UQYtHRTp8O/YM3tUD20A==", + "bundled": true, "dev": true, "requires": { "aproba": "^1.1.2 || 2", @@ -9289,8 +8885,7 @@ }, "npm-registry-client": { "version": "8.6.0", - "resolved": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-8.6.0.tgz", - "integrity": "sha512-Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg==", + "bundled": true, "dev": true, "requires": { "concat-stream": "^1.5.2", @@ -9309,14 +8904,12 @@ "dependencies": { "retry": { "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "bundled": true, "dev": true }, "ssri": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "bundled": true, "dev": true, "requires": { "safe-buffer": "^5.1.1" @@ -9326,8 +8919,7 @@ }, "npm-registry-fetch": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-1.1.0.tgz", - "integrity": "sha512-XJPIBfMtgaooRtZmuA42xCeLf3tkxdIX0xqRsGWwNrcVvJ9UYFccD7Ho7QWCzvkM3i/QrkUC37Hu0a+vDBmt5g==", + "bundled": true, "dev": true, "requires": { "bluebird": "^3.5.1", @@ -9340,8 +8932,7 @@ "dependencies": { "cacache": { "version": "10.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", - "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", + "bundled": true, "dev": true, "requires": { "bluebird": "^3.5.1", @@ -9361,8 +8952,7 @@ "dependencies": { "mississippi": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", - "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", + "bundled": true, "dev": true, "requires": { "concat-stream": "^1.5.0", @@ -9381,14 +8971,12 @@ }, "figgy-pudding": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-2.0.1.tgz", - "integrity": "sha512-yIJPhIBi/oFdU/P+GSXjmk/rmGjuZkm7A5LTXZxNrEprXJXRK012FiI1BR1Pga+0d/d6taWWD+B5d2ozqaxHig==", + "bundled": true, "dev": true }, "make-fetch-happen": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-3.0.0.tgz", - "integrity": "sha512-FmWY7gC0mL6Z4N86vE14+m719JKE4H0A+pyiOH18B025gF/C113pyfb4gHDDYP5cqnRMHOz06JGdmffC/SES+w==", + "bundled": true, "dev": true, "requires": { "agentkeepalive": "^3.4.1", @@ -9406,8 +8994,7 @@ }, "pump": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "bundled": true, "dev": true, "requires": { "end-of-stream": "^1.1.0", @@ -9416,14 +9003,12 @@ }, "smart-buffer": { "version": "1.1.15", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz", - "integrity": "sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY=", + "bundled": true, "dev": true }, "socks": { "version": "1.1.10", - "resolved": "https://registry.npmjs.org/socks/-/socks-1.1.10.tgz", - "integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=", + "bundled": true, "dev": true, "requires": { "ip": "^1.1.4", @@ -9432,8 +9017,7 @@ }, "socks-proxy-agent": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz", - "integrity": "sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==", + "bundled": true, "dev": true, "requires": { "agent-base": "^4.1.0", @@ -9442,8 +9026,7 @@ }, "ssri": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "bundled": true, "dev": true, "requires": { "safe-buffer": "^5.1.1" @@ -9453,8 +9036,7 @@ }, "npm-run-path": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "bundled": true, "dev": true, "requires": { "path-key": "^2.0.0" @@ -9462,14 +9044,12 @@ }, "npm-user-validate": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/npm-user-validate/-/npm-user-validate-1.0.0.tgz", - "integrity": "sha1-jOyg9c6gTU6TUZ73LQVXp1Ei6VE=", + "bundled": true, "dev": true }, "npmlog": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "bundled": true, "dev": true, "requires": { "are-we-there-yet": "~1.1.2", @@ -9480,26 +9060,22 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "bundled": true, "dev": true }, "oauth-sign": { "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "bundled": true, "dev": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "bundled": true, "dev": true }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, "dev": true, "requires": { "wrappy": "1" @@ -9507,20 +9083,17 @@ }, "opener": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz", - "integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==", + "bundled": true, "dev": true }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "bundled": true, "dev": true }, "os-locale": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "bundled": true, "dev": true, "requires": { "execa": "^0.7.0", @@ -9530,14 +9103,12 @@ }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "bundled": true, "dev": true }, "osenv": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "bundled": true, "dev": true, "requires": { "os-homedir": "^1.0.0", @@ -9546,14 +9117,12 @@ }, "p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "bundled": true, "dev": true }, "p-limit": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "bundled": true, "dev": true, "requires": { "p-try": "^1.0.0" @@ -9561,8 +9130,7 @@ }, "p-locate": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "bundled": true, "dev": true, "requires": { "p-limit": "^1.1.0" @@ -9570,14 +9138,12 @@ }, "p-try": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "bundled": true, "dev": true }, "package-json": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", - "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "bundled": true, "dev": true, "requires": { "got": "^6.7.1", @@ -9588,8 +9154,7 @@ }, "pacote": { "version": "8.1.6", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-8.1.6.tgz", - "integrity": "sha512-wTOOfpaAQNEQNtPEx92x9Y9kRWVu45v583XT8x2oEV2xRB74+xdqMZIeGW4uFvAyZdmSBtye+wKdyyLaT8pcmw==", + "bundled": true, "dev": true, "requires": { "bluebird": "^3.5.1", @@ -9621,8 +9186,7 @@ }, "parallel-transform": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "bundled": true, "dev": true, "requires": { "cyclist": "~0.2.2", @@ -9632,62 +9196,52 @@ }, "path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "bundled": true, "dev": true }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "bundled": true, "dev": true }, "path-is-inside": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "bundled": true, "dev": true }, "path-key": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "bundled": true, "dev": true }, "performance-now": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "bundled": true, "dev": true }, "pify": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "bundled": true, "dev": true }, "prepend-http": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "bundled": true, "dev": true }, "process-nextick-args": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "bundled": true, "dev": true }, "promise-inflight": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "bundled": true, "dev": true }, "promise-retry": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", - "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "bundled": true, "dev": true, "requires": { "err-code": "^1.0.0", @@ -9696,16 +9250,14 @@ "dependencies": { "retry": { "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "bundled": true, "dev": true } } }, "promzard": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz", - "integrity": "sha1-JqXW7ox97kyxIggwWs+5O6OCqe4=", + "bundled": true, "dev": true, "requires": { "read": "1" @@ -9713,14 +9265,12 @@ }, "proto-list": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "bundled": true, "dev": true }, "protoduck": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.0.tgz", - "integrity": "sha512-agsGWD8/RZrS4ga6v82Fxb0RHIS2RZnbsSue6A9/MBRhB/jcqOANAMNrqM9900b8duj+Gx+T/JMy5IowDoO/hQ==", + "bundled": true, "dev": true, "requires": { "genfun": "^4.0.1" @@ -9728,26 +9278,22 @@ }, "prr": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "bundled": true, "dev": true }, "pseudomap": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "bundled": true, "dev": true }, "psl": { "version": "1.1.29", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", - "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==", + "bundled": true, "dev": true }, "pump": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "bundled": true, "dev": true, "requires": { "end-of-stream": "^1.1.0", @@ -9756,8 +9302,7 @@ }, "pumpify": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "bundled": true, "dev": true, "requires": { "duplexify": "^3.6.0", @@ -9767,8 +9312,7 @@ "dependencies": { "pump": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "bundled": true, "dev": true, "requires": { "end-of-stream": "^1.1.0", @@ -9779,26 +9323,22 @@ }, "punycode": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "bundled": true, "dev": true }, "qrcode-terminal": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz", - "integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==", + "bundled": true, "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==", + "bundled": true, "dev": true }, "query-string": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.1.0.tgz", - "integrity": "sha512-pNB/Gr8SA8ff8KpUFM36o/WFAlthgaThka5bV19AD9PNTH20Pwq5Zxodif2YyHwrctp6SkL4GqlOot0qR/wGaw==", + "bundled": true, "dev": true, "requires": { "decode-uri-component": "^0.2.0", @@ -9807,14 +9347,12 @@ }, "qw": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/qw/-/qw-1.0.1.tgz", - "integrity": "sha1-77/cdA+a0FQwRCassYNBLMi5ltQ=", + "bundled": true, "dev": true }, "rc": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz", - "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", + "bundled": true, "dev": true, "requires": { "deep-extend": "^0.5.1", @@ -9825,16 +9363,14 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "bundled": true, "dev": true } } }, "read": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "bundled": true, "dev": true, "requires": { "mute-stream": "~0.0.4" @@ -9842,8 +9378,7 @@ }, "read-cmd-shim": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz", - "integrity": "sha1-LV0Vd4ajfAVdIgd8MsU/gynpHHs=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "^4.1.2" @@ -9851,8 +9386,7 @@ }, "read-installed": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/read-installed/-/read-installed-4.0.3.tgz", - "integrity": "sha1-/5uLZ/GH0eTCm5/rMfayI6zRkGc=", + "bundled": true, "dev": true, "requires": { "debuglog": "^1.0.1", @@ -9866,8 +9400,7 @@ }, "read-package-json": { "version": "2.0.13", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.13.tgz", - "integrity": "sha512-/1dZ7TRZvGrYqE0UAfN6qQb5GYBsNcqS1C0tNK601CFOJmtHI7NIGXwetEPU/OtoFHZL3hDxm4rolFFVE9Bnmg==", + "bundled": true, "dev": true, "requires": { "glob": "^7.1.1", @@ -9879,8 +9412,7 @@ }, "read-package-tree": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.2.1.tgz", - "integrity": "sha512-2CNoRoh95LxY47LvqrehIAfUVda2JbuFE/HaGYs42bNrGG+ojbw1h3zOcPcQ+1GQ3+rkzNndZn85u1XyZ3UsIA==", + "bundled": true, "dev": true, "requires": { "debuglog": "^1.0.1", @@ -9892,8 +9424,7 @@ }, "readable-stream": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "bundled": true, "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -9907,8 +9438,7 @@ }, "readdir-scoped-modules": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz", - "integrity": "sha1-n6+jfShr5dksuuve4DDcm19AZ0c=", + "bundled": true, "dev": true, "requires": { "debuglog": "^1.0.1", @@ -9919,8 +9449,7 @@ }, "registry-auth-token": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", - "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "bundled": true, "dev": true, "requires": { "rc": "^1.1.6", @@ -9929,8 +9458,7 @@ }, "registry-url": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "bundled": true, "dev": true, "requires": { "rc": "^1.0.1" @@ -9938,8 +9466,7 @@ }, "request": { "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "bundled": true, "dev": true, "requires": { "aws-sign2": "~0.7.0", @@ -9966,32 +9493,27 @@ }, "require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "bundled": true, "dev": true }, "require-main-filename": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "bundled": true, "dev": true }, "resolve-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "bundled": true, "dev": true }, "retry": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "bundled": true, "dev": true }, "rimraf": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "bundled": true, "dev": true, "requires": { "glob": "^7.0.5" @@ -9999,8 +9521,7 @@ }, "run-queue": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "bundled": true, "dev": true, "requires": { "aproba": "^1.1.1" @@ -10008,26 +9529,22 @@ }, "safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "bundled": true, "dev": true }, "safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "bundled": true, "dev": true }, "semver": { "version": "5.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", - "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", + "bundled": true, "dev": true }, "semver-diff": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", - "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "bundled": true, "dev": true, "requires": { "semver": "^5.0.3" @@ -10035,14 +9552,12 @@ }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "bundled": true, "dev": true }, "sha": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/sha/-/sha-2.0.1.tgz", - "integrity": "sha1-YDCCL70smCOUn49y7WQR7lzyWq4=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -10051,8 +9566,7 @@ }, "shebang-command": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "bundled": true, "dev": true, "requires": { "shebang-regex": "^1.0.0" @@ -10060,38 +9574,32 @@ }, "shebang-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "bundled": true, "dev": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "bundled": true, "dev": true }, "slash": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "bundled": true, "dev": true }, "slide": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "bundled": true, "dev": true }, "smart-buffer": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.1.tgz", - "integrity": "sha512-RFqinRVJVcCAL9Uh1oVqE6FZkqsyLiVOYEZ20TqIOjuX7iFVJ+zsbs4RIghnw/pTs7mZvt8ZHhvm1ZUrR4fykg==", + "bundled": true, "dev": true }, "socks": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.2.0.tgz", - "integrity": "sha512-uRKV9uXQ9ytMbGm2+DilS1jB7N3AC0mmusmW5TVWjNuBZjxS8+lX38fasKVY9I4opv/bY/iqTbcpFFaTwpfwRg==", + "bundled": true, "dev": true, "requires": { "ip": "^1.1.5", @@ -10100,8 +9608,7 @@ }, "socks-proxy-agent": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz", - "integrity": "sha512-Kezx6/VBguXOsEe5oU3lXYyKMi4+gva72TwJ7pQY5JfqUx2nMk7NXA6z/mpNqIlfQjWYVfeuNvQjexiTaTn6Nw==", + "bundled": true, "dev": true, "requires": { "agent-base": "~4.2.0", @@ -10110,14 +9617,12 @@ }, "sorted-object": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/sorted-object/-/sorted-object-2.0.1.tgz", - "integrity": "sha1-fWMfS9OnmKJK8d/8+/6DM3pd9fw=", + "bundled": true, "dev": true }, "sorted-union-stream": { "version": "2.1.3", - "resolved": "https://registry.npmjs.org/sorted-union-stream/-/sorted-union-stream-2.1.3.tgz", - "integrity": "sha1-x3lMfgd4gAUv9xqNSi27Sppjisc=", + "bundled": true, "dev": true, "requires": { "from2": "^1.3.0", @@ -10126,8 +9631,7 @@ "dependencies": { "from2": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-1.3.0.tgz", - "integrity": "sha1-iEE7qqX5pZfP3pIh2GmGzTwGHf0=", + "bundled": true, "dev": true, "requires": { "inherits": "~2.0.1", @@ -10136,14 +9640,12 @@ }, "isarray": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "bundled": true, "dev": true }, "readable-stream": { "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "bundled": true, "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -10154,16 +9656,14 @@ }, "string_decoder": { "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "bundled": true, "dev": true } } }, "spdx-correct": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "bundled": true, "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -10172,14 +9672,12 @@ }, "spdx-exceptions": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", + "bundled": true, "dev": true }, "spdx-expression-parse": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "bundled": true, "dev": true, "requires": { "spdx-exceptions": "^2.1.0", @@ -10188,14 +9686,12 @@ }, "spdx-license-ids": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", + "bundled": true, "dev": true }, "sshpk": { "version": "1.14.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", - "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "bundled": true, "dev": true, "requires": { "asn1": "~0.2.3", @@ -10211,8 +9707,7 @@ }, "ssri": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "bundled": true, "dev": true, "requires": { "figgy-pudding": "^3.5.1" @@ -10220,8 +9715,7 @@ }, "stream-each": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", - "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", + "bundled": true, "dev": true, "requires": { "end-of-stream": "^1.1.0", @@ -10230,8 +9724,7 @@ }, "stream-iterate": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/stream-iterate/-/stream-iterate-1.2.0.tgz", - "integrity": "sha1-K9fHcpbBcCpGSIuK1B95hl7s1OE=", + "bundled": true, "dev": true, "requires": { "readable-stream": "^2.1.5", @@ -10240,20 +9733,17 @@ }, "stream-shift": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "bundled": true, "dev": true }, "strict-uri-encode": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=", + "bundled": true, "dev": true }, "string-width": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "bundled": true, "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", @@ -10262,20 +9752,17 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "bundled": true, "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "bundled": true, "dev": true }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "^3.0.0" @@ -10285,8 +9772,7 @@ }, "string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "bundled": true, "dev": true, "requires": { "safe-buffer": "~5.1.0" @@ -10294,14 +9780,12 @@ }, "stringify-package": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.0.tgz", - "integrity": "sha512-JIQqiWmLiEozOC0b0BtxZ/AOUtdUZHCBPgqIZ2kSJJqGwgb9neo44XdTHUC4HZSGqi03hOeB7W/E8rAlKnGe9g==", + "bundled": true, "dev": true }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "^2.0.0" @@ -10309,20 +9793,17 @@ }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "bundled": true, "dev": true }, "strip-json-comments": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "bundled": true, "dev": true }, "supports-color": { "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "bundled": true, "dev": true, "requires": { "has-flag": "^3.0.0" @@ -10330,8 +9811,7 @@ }, "tar": { "version": "4.4.8", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz", - "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", + "bundled": true, "dev": true, "requires": { "chownr": "^1.1.1", @@ -10345,14 +9825,12 @@ "dependencies": { "chownr": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", - "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", + "bundled": true, "dev": true }, "minipass": { "version": "2.3.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz", - "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", + "bundled": true, "dev": true, "requires": { "safe-buffer": "^5.1.2", @@ -10361,16 +9839,14 @@ }, "yallist": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "bundled": true, "dev": true } } }, "term-size": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "bundled": true, "dev": true, "requires": { "execa": "^0.7.0" @@ -10378,20 +9854,17 @@ }, "text-table": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "bundled": true, "dev": true }, "through": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "bundled": true, "dev": true }, "through2": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "bundled": true, "dev": true, "requires": { "readable-stream": "^2.1.5", @@ -10400,20 +9873,17 @@ }, "timed-out": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", + "bundled": true, "dev": true }, "tiny-relative-date": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz", - "integrity": "sha512-MOQHpzllWxDCHHaDno30hhLfbouoYlOI8YlMNtvKe1zXbjEVhbcEovQxvZrPvtiYW630GQDoMMarCnjfyfHA+A==", + "bundled": true, "dev": true }, "tough-cookie": { "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "bundled": true, "dev": true, "requires": { "psl": "^1.1.24", @@ -10422,8 +9892,7 @@ }, "tunnel-agent": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "bundled": true, "dev": true, "requires": { "safe-buffer": "^5.0.1" @@ -10431,33 +9900,28 @@ }, "tweetnacl": { "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "bundled": true, "dev": true, "optional": true }, "typedarray": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "bundled": true, "dev": true }, "uid-number": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", + "bundled": true, "dev": true }, "umask": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz", - "integrity": "sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0=", + "bundled": true, "dev": true }, "unique-filename": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", - "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", + "bundled": true, "dev": true, "requires": { "unique-slug": "^2.0.0" @@ -10465,8 +9929,7 @@ }, "unique-slug": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz", - "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", + "bundled": true, "dev": true, "requires": { "imurmurhash": "^0.1.4" @@ -10474,8 +9937,7 @@ }, "unique-string": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "bundled": true, "dev": true, "requires": { "crypto-random-string": "^1.0.0" @@ -10483,20 +9945,17 @@ }, "unpipe": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "bundled": true, "dev": true }, "unzip-response": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", - "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", + "bundled": true, "dev": true }, "update-notifier": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", - "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", + "bundled": true, "dev": true, "requires": { "boxen": "^1.2.1", @@ -10513,8 +9972,7 @@ }, "url-parse-lax": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "bundled": true, "dev": true, "requires": { "prepend-http": "^1.0.1" @@ -10522,26 +9980,22 @@ }, "util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "bundled": true, "dev": true }, "util-extend": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz", - "integrity": "sha1-p8IW0mdUUWljeztu3GypEZ4v+T8=", + "bundled": true, "dev": true }, "uuid": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "bundled": true, "dev": true }, "validate-npm-package-license": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "bundled": true, "dev": true, "requires": { "spdx-correct": "^3.0.0", @@ -10550,8 +10004,7 @@ }, "validate-npm-package-name": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "bundled": true, "dev": true, "requires": { "builtins": "^1.0.3" @@ -10559,8 +10012,7 @@ }, "verror": { "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "bundled": true, "dev": true, "requires": { "assert-plus": "^1.0.0", @@ -10570,8 +10022,7 @@ }, "wcwidth": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "bundled": true, "dev": true, "requires": { "defaults": "^1.0.3" @@ -10579,8 +10030,7 @@ }, "which": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "bundled": true, "dev": true, "requires": { "isexe": "^2.0.0" @@ -10588,14 +10038,12 @@ }, "which-module": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "bundled": true, "dev": true }, "wide-align": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "bundled": true, "dev": true, "requires": { "string-width": "^1.0.2" @@ -10603,8 +10051,7 @@ "dependencies": { "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "dev": true, "requires": { "code-point-at": "^1.0.0", @@ -10616,8 +10063,7 @@ }, "widest-line": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz", - "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", + "bundled": true, "dev": true, "requires": { "string-width": "^2.1.1" @@ -10625,8 +10071,7 @@ }, "worker-farm": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", - "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", + "bundled": true, "dev": true, "requires": { "errno": "~0.1.7" @@ -10634,8 +10079,7 @@ }, "wrap-ansi": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "bundled": true, "dev": true, "requires": { "string-width": "^1.0.1", @@ -10644,8 +10088,7 @@ "dependencies": { "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "dev": true, "requires": { "code-point-at": "^1.0.0", @@ -10657,14 +10100,12 @@ }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "bundled": true, "dev": true }, "write-file-atomic": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", - "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", + "bundled": true, "dev": true, "requires": { "graceful-fs": "^4.1.11", @@ -10674,32 +10115,27 @@ }, "xdg-basedir": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", + "bundled": true, "dev": true }, "xtend": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "bundled": true, "dev": true }, "y18n": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "bundled": true, "dev": true }, "yallist": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "bundled": true, "dev": true }, "yargs": { "version": "11.0.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.0.0.tgz", - "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", + "bundled": true, "dev": true, "requires": { "cliui": "^4.0.0", @@ -10718,16 +10154,14 @@ "dependencies": { "y18n": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "bundled": true, "dev": true } } }, "yargs-parser": { "version": "9.0.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "bundled": true, "dev": true, "requires": { "camelcase": "^4.1.0" @@ -10785,10 +10219,8 @@ "dependencies": { "align-text": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "bundled": true, "dev": true, - "optional": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -10797,26 +10229,22 @@ }, "amdefine": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "bundled": true, "dev": true }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "bundled": true, "dev": true }, "ansi-styles": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "bundled": true, "dev": true }, "append-transform": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", - "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "bundled": true, "dev": true, "requires": { "default-require-extensions": "^1.0.0" @@ -10824,62 +10252,52 @@ }, "archy": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "bundled": true, "dev": true }, "arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "bundled": true, "dev": true }, "arr-flatten": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "bundled": true, "dev": true }, "arr-union": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "bundled": true, "dev": true }, "array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "bundled": true, "dev": true }, "arrify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "bundled": true, "dev": true }, "assign-symbols": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "bundled": true, "dev": true }, "async": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "bundled": true, "dev": true }, "atob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", - "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=", + "bundled": true, "dev": true }, "babel-code-frame": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "bundled": true, "dev": true, "requires": { "chalk": "^1.1.3", @@ -10889,8 +10307,7 @@ }, "babel-generator": { "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "bundled": true, "dev": true, "requires": { "babel-messages": "^6.23.0", @@ -10905,8 +10322,7 @@ }, "babel-messages": { "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "bundled": true, "dev": true, "requires": { "babel-runtime": "^6.22.0" @@ -10914,8 +10330,7 @@ }, "babel-runtime": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "bundled": true, "dev": true, "requires": { "core-js": "^2.4.0", @@ -10924,8 +10339,7 @@ }, "babel-template": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "bundled": true, "dev": true, "requires": { "babel-runtime": "^6.26.0", @@ -10937,8 +10351,7 @@ }, "babel-traverse": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "bundled": true, "dev": true, "requires": { "babel-code-frame": "^6.26.0", @@ -10954,8 +10367,7 @@ }, "babel-types": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "bundled": true, "dev": true, "requires": { "babel-runtime": "^6.26.0", @@ -10966,20 +10378,17 @@ }, "babylon": { "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "bundled": true, "dev": true }, "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "bundled": true, "dev": true }, "base": { "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "bundled": true, "dev": true, "requires": { "cache-base": "^1.0.1", @@ -10993,8 +10402,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, "dev": true, "requires": { "is-descriptor": "^1.0.0" @@ -11002,8 +10410,7 @@ }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "bundled": true, "dev": true, "requires": { "kind-of": "^6.0.0" @@ -11011,8 +10418,7 @@ }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "bundled": true, "dev": true, "requires": { "kind-of": "^6.0.0" @@ -11020,8 +10426,7 @@ }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", @@ -11031,22 +10436,19 @@ }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "bundled": true, "dev": true } } }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "bundled": true, "dev": true, "requires": { "balanced-match": "^1.0.0", @@ -11055,8 +10457,7 @@ }, "braces": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "bundled": true, "dev": true, "requires": { "arr-flatten": "^1.1.0", @@ -11073,8 +10474,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -11084,14 +10484,12 @@ }, "builtin-modules": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "bundled": true, "dev": true }, "cache-base": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "bundled": true, "dev": true, "requires": { "collection-visit": "^1.0.0", @@ -11107,16 +10505,14 @@ "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true } } }, "caching-transform": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", - "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", + "bundled": true, "dev": true, "requires": { "md5-hex": "^1.2.0", @@ -11126,15 +10522,13 @@ }, "camelcase": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "bundled": true, "dev": true, "optional": true }, "center-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -11144,8 +10538,7 @@ }, "chalk": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "bundled": true, "dev": true, "requires": { "ansi-styles": "^2.2.1", @@ -11157,8 +10550,7 @@ }, "class-utils": { "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "bundled": true, "dev": true, "requires": { "arr-union": "^3.1.0", @@ -11169,8 +10561,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { "is-descriptor": "^0.1.0" @@ -11178,16 +10569,14 @@ }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true } } }, "cliui": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -11198,8 +10587,7 @@ "dependencies": { "wordwrap": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "bundled": true, "dev": true, "optional": true } @@ -11207,14 +10595,12 @@ }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "bundled": true, "dev": true }, "collection-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "bundled": true, "dev": true, "requires": { "map-visit": "^1.0.0", @@ -11223,44 +10609,37 @@ }, "commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "bundled": true, "dev": true }, "component-emitter": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "bundled": true, "dev": true }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "bundled": true, "dev": true }, "convert-source-map": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "bundled": true, "dev": true }, "copy-descriptor": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "bundled": true, "dev": true }, "core-js": { "version": "2.5.6", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.6.tgz", - "integrity": "sha512-lQUVfQi0aLix2xpyjrrJEvfuYCqPc/HwmTKsC/VNf8q0zsjX7SQZtp4+oRONN5Tsur9GDETPjj+Ub2iDiGZfSQ==", + "bundled": true, "dev": true }, "cross-spawn": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "bundled": true, "dev": true, "requires": { "lru-cache": "^4.0.1", @@ -11269,8 +10648,7 @@ }, "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "bundled": true, "dev": true, "requires": { "ms": "2.0.0" @@ -11278,26 +10656,22 @@ }, "debug-log": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", - "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", + "bundled": true, "dev": true }, "decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "bundled": true, "dev": true }, "decode-uri-component": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "bundled": true, "dev": true }, "default-require-extensions": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", - "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "bundled": true, "dev": true, "requires": { "strip-bom": "^2.0.0" @@ -11305,8 +10679,7 @@ }, "define-property": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "bundled": true, "dev": true, "requires": { "is-descriptor": "^1.0.2", @@ -11315,8 +10688,7 @@ "dependencies": { "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "bundled": true, "dev": true, "requires": { "kind-of": "^6.0.0" @@ -11324,8 +10696,7 @@ }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "bundled": true, "dev": true, "requires": { "kind-of": "^6.0.0" @@ -11333,8 +10704,7 @@ }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", @@ -11344,22 +10714,19 @@ }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "bundled": true, "dev": true } } }, "detect-indent": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "bundled": true, "dev": true, "requires": { "repeating": "^2.0.0" @@ -11367,8 +10734,7 @@ }, "error-ex": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "bundled": true, "dev": true, "requires": { "is-arrayish": "^0.2.1" @@ -11376,20 +10742,17 @@ }, "escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "bundled": true, "dev": true }, "esutils": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "bundled": true, "dev": true }, "execa": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "bundled": true, "dev": true, "requires": { "cross-spawn": "^5.0.1", @@ -11403,8 +10766,7 @@ "dependencies": { "cross-spawn": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "bundled": true, "dev": true, "requires": { "lru-cache": "^4.0.1", @@ -11416,8 +10778,7 @@ }, "expand-brackets": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "bundled": true, "dev": true, "requires": { "debug": "^2.3.3", @@ -11431,8 +10792,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { "is-descriptor": "^0.1.0" @@ -11440,8 +10800,7 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -11451,8 +10810,7 @@ }, "extend-shallow": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "bundled": true, "dev": true, "requires": { "assign-symbols": "^1.0.0", @@ -11461,8 +10819,7 @@ "dependencies": { "is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "bundled": true, "dev": true, "requires": { "is-plain-object": "^2.0.4" @@ -11472,8 +10829,7 @@ }, "extglob": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "bundled": true, "dev": true, "requires": { "array-unique": "^0.3.2", @@ -11488,8 +10844,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, "dev": true, "requires": { "is-descriptor": "^1.0.0" @@ -11497,8 +10852,7 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -11506,8 +10860,7 @@ }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "bundled": true, "dev": true, "requires": { "kind-of": "^6.0.0" @@ -11515,8 +10868,7 @@ }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "bundled": true, "dev": true, "requires": { "kind-of": "^6.0.0" @@ -11524,8 +10876,7 @@ }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", @@ -11535,16 +10886,14 @@ }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "bundled": true, "dev": true } } }, "fill-range": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "bundled": true, "dev": true, "requires": { "extend-shallow": "^2.0.1", @@ -11555,8 +10904,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -11566,8 +10914,7 @@ }, "find-cache-dir": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "bundled": true, "dev": true, "requires": { "commondir": "^1.0.1", @@ -11577,8 +10924,7 @@ }, "find-up": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "bundled": true, "dev": true, "requires": { "locate-path": "^2.0.0" @@ -11586,14 +10932,12 @@ }, "for-in": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "bundled": true, "dev": true }, "foreground-child": { "version": "1.5.6", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", - "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "bundled": true, "dev": true, "requires": { "cross-spawn": "^4", @@ -11602,8 +10946,7 @@ }, "fragment-cache": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "bundled": true, "dev": true, "requires": { "map-cache": "^0.2.2" @@ -11611,32 +10954,27 @@ }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "bundled": true, "dev": true }, "get-caller-file": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "bundled": true, "dev": true }, "get-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "bundled": true, "dev": true }, "get-value": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "bundled": true, "dev": true }, "glob": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "bundled": true, "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -11649,20 +10987,17 @@ }, "globals": { "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "bundled": true, "dev": true }, "graceful-fs": { "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "bundled": true, "dev": true }, "handlebars": { "version": "4.0.11", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", - "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "bundled": true, "dev": true, "requires": { "async": "^1.4.0", @@ -11673,8 +11008,7 @@ "dependencies": { "source-map": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "bundled": true, "dev": true, "requires": { "amdefine": ">=0.0.4" @@ -11684,8 +11018,7 @@ }, "has-ansi": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "^2.0.0" @@ -11693,14 +11026,12 @@ }, "has-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "bundled": true, "dev": true }, "has-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "bundled": true, "dev": true, "requires": { "get-value": "^2.0.6", @@ -11710,16 +11041,14 @@ "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true } } }, "has-values": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "bundled": true, "dev": true, "requires": { "is-number": "^3.0.0", @@ -11728,8 +11057,7 @@ "dependencies": { "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, "dev": true, "requires": { "kind-of": "^3.0.2" @@ -11737,8 +11065,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -11748,8 +11075,7 @@ }, "kind-of": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "bundled": true, "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -11759,20 +11085,17 @@ }, "hosted-git-info": { "version": "2.6.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", - "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", + "bundled": true, "dev": true }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "bundled": true, "dev": true }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, "dev": true, "requires": { "once": "^1.3.0", @@ -11781,14 +11104,12 @@ }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "bundled": true, "dev": true }, "invariant": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "bundled": true, "dev": true, "requires": { "loose-envify": "^1.0.0" @@ -11796,14 +11117,12 @@ }, "invert-kv": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "bundled": true, "dev": true }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "bundled": true, "dev": true, "requires": { "kind-of": "^3.0.2" @@ -11811,20 +11130,17 @@ }, "is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "bundled": true, "dev": true }, "is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "bundled": true, "dev": true }, "is-builtin-module": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "bundled": true, "dev": true, "requires": { "builtin-modules": "^1.0.0" @@ -11832,8 +11148,7 @@ }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "bundled": true, "dev": true, "requires": { "kind-of": "^3.0.2" @@ -11841,8 +11156,7 @@ }, "is-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "bundled": true, "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", @@ -11852,22 +11166,19 @@ "dependencies": { "kind-of": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "bundled": true, "dev": true } } }, "is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "bundled": true, "dev": true }, "is-finite": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "bundled": true, "dev": true, "requires": { "number-is-nan": "^1.0.0" @@ -11875,14 +11186,12 @@ }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "bundled": true, "dev": true }, "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, "dev": true, "requires": { "kind-of": "^3.0.2" @@ -11890,8 +11199,7 @@ }, "is-odd": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", - "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "bundled": true, "dev": true, "requires": { "is-number": "^4.0.0" @@ -11899,16 +11207,14 @@ "dependencies": { "is-number": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "bundled": true, "dev": true } } }, "is-plain-object": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "bundled": true, "dev": true, "requires": { "isobject": "^3.0.1" @@ -11916,58 +11222,49 @@ "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true } } }, "is-stream": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "bundled": true, "dev": true }, "is-utf8": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "bundled": true, "dev": true }, "is-windows": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "bundled": true, "dev": true }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "bundled": true, "dev": true }, "isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "bundled": true, "dev": true }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true }, "istanbul-lib-coverage": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", - "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==", + "bundled": true, "dev": true }, "istanbul-lib-hook": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", - "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", + "bundled": true, "dev": true, "requires": { "append-transform": "^0.4.0" @@ -11975,8 +11272,7 @@ }, "istanbul-lib-instrument": { "version": "1.10.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", - "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", + "bundled": true, "dev": true, "requires": { "babel-generator": "^6.18.0", @@ -11990,8 +11286,7 @@ }, "istanbul-lib-report": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz", - "integrity": "sha512-D4jVbMDtT2dPmloPJS/rmeP626N5Pr3Rp+SovrPn1+zPChGHcggd/0sL29jnbm4oK9W0wHjCRsdch9oLd7cm6g==", + "bundled": true, "dev": true, "requires": { "istanbul-lib-coverage": "^1.1.2", @@ -12002,8 +11297,7 @@ "dependencies": { "supports-color": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "bundled": true, "dev": true, "requires": { "has-flag": "^1.0.0" @@ -12013,8 +11307,7 @@ }, "istanbul-lib-source-maps": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz", - "integrity": "sha512-fDa0hwU/5sDXwAklXgAoCJCOsFsBplVQ6WBldz5UwaqOzmDhUK4nfuR7/G//G2lERlblUNJB8P6e8cXq3a7MlA==", + "bundled": true, "dev": true, "requires": { "debug": "^3.1.0", @@ -12026,8 +11319,7 @@ "dependencies": { "debug": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "bundled": true, "dev": true, "requires": { "ms": "2.0.0" @@ -12037,8 +11329,7 @@ }, "istanbul-reports": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.4.0.tgz", - "integrity": "sha512-OPzVo1fPZ2H+owr8q/LYKLD+vquv9Pj4F+dj808MdHbuQLD7S4ACRjcX+0Tne5Vxt2lxXvdZaL7v+FOOAV281w==", + "bundled": true, "dev": true, "requires": { "handlebars": "^4.0.3" @@ -12046,20 +11337,17 @@ }, "js-tokens": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "bundled": true, "dev": true }, "jsesc": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "bundled": true, "dev": true }, "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -12067,15 +11355,13 @@ }, "lazy-cache": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "bundled": true, "dev": true, "optional": true }, "lcid": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "bundled": true, "dev": true, "requires": { "invert-kv": "^1.0.0" @@ -12083,8 +11369,7 @@ }, "load-json-file": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -12096,8 +11381,7 @@ }, "locate-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "bundled": true, "dev": true, "requires": { "p-locate": "^2.0.0", @@ -12106,29 +11390,24 @@ "dependencies": { "path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "bundled": true, "dev": true } } }, "lodash": { "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", + "bundled": true, "dev": true }, "longest": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true, - "optional": true + "bundled": true, + "dev": true }, "loose-envify": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "bundled": true, "dev": true, "requires": { "js-tokens": "^3.0.0" @@ -12136,8 +11415,7 @@ }, "lru-cache": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "bundled": true, "dev": true, "requires": { "pseudomap": "^1.0.2", @@ -12146,14 +11424,12 @@ }, "map-cache": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "bundled": true, "dev": true }, "map-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "bundled": true, "dev": true, "requires": { "object-visit": "^1.0.0" @@ -12161,8 +11437,7 @@ }, "md5-hex": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", - "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", + "bundled": true, "dev": true, "requires": { "md5-o-matic": "^0.1.1" @@ -12170,14 +11445,12 @@ }, "md5-o-matic": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", - "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=", + "bundled": true, "dev": true }, "mem": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "bundled": true, "dev": true, "requires": { "mimic-fn": "^1.0.0" @@ -12185,8 +11458,7 @@ }, "merge-source-map": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "bundled": true, "dev": true, "requires": { "source-map": "^0.6.1" @@ -12194,16 +11466,14 @@ "dependencies": { "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "bundled": true, "dev": true } } }, "micromatch": { "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "bundled": true, "dev": true, "requires": { "arr-diff": "^4.0.0", @@ -12223,22 +11493,19 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "bundled": true, "dev": true } } }, "mimic-fn": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "bundled": true, "dev": true }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, "dev": true, "requires": { "brace-expansion": "^1.1.7" @@ -12246,14 +11513,12 @@ }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "bundled": true, "dev": true }, "mixin-deep": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "bundled": true, "dev": true, "requires": { "for-in": "^1.0.2", @@ -12262,8 +11527,7 @@ "dependencies": { "is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "bundled": true, "dev": true, "requires": { "is-plain-object": "^2.0.4" @@ -12273,8 +11537,7 @@ }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, "dev": true, "requires": { "minimist": "0.0.8" @@ -12282,14 +11545,12 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "bundled": true, "dev": true }, "nanomatch": { "version": "1.2.9", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", - "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", + "bundled": true, "dev": true, "requires": { "arr-diff": "^4.0.0", @@ -12308,28 +11569,24 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "bundled": true, "dev": true }, "array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "bundled": true, "dev": true }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "bundled": true, "dev": true } } }, "normalize-package-data": { "version": "2.4.0", - "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==", + "bundled": true, "dev": true, "requires": { "hosted-git-info": "^2.1.4", @@ -12340,8 +11597,7 @@ }, "npm-run-path": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "bundled": true, "dev": true, "requires": { "path-key": "^2.0.0" @@ -12349,20 +11605,17 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "bundled": true, "dev": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "bundled": true, "dev": true }, "object-copy": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "bundled": true, "dev": true, "requires": { "copy-descriptor": "^0.1.0", @@ -12372,8 +11625,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { "is-descriptor": "^0.1.0" @@ -12383,8 +11635,7 @@ }, "object-visit": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "bundled": true, "dev": true, "requires": { "isobject": "^3.0.0" @@ -12392,16 +11643,14 @@ "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true } } }, "object.pick": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "bundled": true, "dev": true, "requires": { "isobject": "^3.0.1" @@ -12409,16 +11658,14 @@ "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true } } }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, "dev": true, "requires": { "wrappy": "1" @@ -12426,8 +11673,7 @@ }, "optimist": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "bundled": true, "dev": true, "requires": { "minimist": "~0.0.1", @@ -12436,14 +11682,12 @@ }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "bundled": true, "dev": true }, "os-locale": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "bundled": true, "dev": true, "requires": { "execa": "^0.7.0", @@ -12453,14 +11697,12 @@ }, "p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "bundled": true, "dev": true }, "p-limit": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "bundled": true, "dev": true, "requires": { "p-try": "^1.0.0" @@ -12468,8 +11710,7 @@ }, "p-locate": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "bundled": true, "dev": true, "requires": { "p-limit": "^1.1.0" @@ -12477,14 +11718,12 @@ }, "p-try": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "bundled": true, "dev": true }, "parse-json": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "bundled": true, "dev": true, "requires": { "error-ex": "^1.2.0" @@ -12492,14 +11731,12 @@ }, "pascalcase": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "bundled": true, "dev": true }, "path-exists": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "bundled": true, "dev": true, "requires": { "pinkie-promise": "^2.0.0" @@ -12507,26 +11744,22 @@ }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "bundled": true, "dev": true }, "path-key": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "bundled": true, "dev": true }, "path-parse": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "bundled": true, "dev": true }, "path-type": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -12536,20 +11769,17 @@ }, "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "bundled": true, "dev": true }, "pinkie": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "bundled": true, "dev": true }, "pinkie-promise": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "bundled": true, "dev": true, "requires": { "pinkie": "^2.0.0" @@ -12557,8 +11787,7 @@ }, "pkg-dir": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "bundled": true, "dev": true, "requires": { "find-up": "^1.0.0" @@ -12566,8 +11795,7 @@ "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "bundled": true, "dev": true, "requires": { "path-exists": "^2.0.0", @@ -12578,20 +11806,17 @@ }, "posix-character-classes": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "bundled": true, "dev": true }, "pseudomap": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "bundled": true, "dev": true }, "read-pkg": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "bundled": true, "dev": true, "requires": { "load-json-file": "^1.0.0", @@ -12601,8 +11826,7 @@ }, "read-pkg-up": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "bundled": true, "dev": true, "requires": { "find-up": "^1.0.0", @@ -12611,8 +11835,7 @@ "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "bundled": true, "dev": true, "requires": { "path-exists": "^2.0.0", @@ -12623,14 +11846,12 @@ }, "regenerator-runtime": { "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "bundled": true, "dev": true }, "regex-not": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "bundled": true, "dev": true, "requires": { "extend-shallow": "^3.0.2", @@ -12639,20 +11860,17 @@ }, "repeat-element": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "bundled": true, "dev": true }, "repeat-string": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "bundled": true, "dev": true }, "repeating": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "bundled": true, "dev": true, "requires": { "is-finite": "^1.0.0" @@ -12660,38 +11878,32 @@ }, "require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "bundled": true, "dev": true }, "require-main-filename": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "bundled": true, "dev": true }, "resolve-from": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", + "bundled": true, "dev": true }, "resolve-url": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "bundled": true, "dev": true }, "ret": { "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "bundled": true, "dev": true }, "right-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -12700,8 +11912,7 @@ }, "rimraf": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "bundled": true, "dev": true, "requires": { "glob": "^7.0.5" @@ -12709,8 +11920,7 @@ }, "safe-regex": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "bundled": true, "dev": true, "requires": { "ret": "~0.1.10" @@ -12718,20 +11928,17 @@ }, "semver": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "bundled": true, "dev": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "bundled": true, "dev": true }, "set-value": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "bundled": true, "dev": true, "requires": { "extend-shallow": "^2.0.1", @@ -12742,8 +11949,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -12753,8 +11959,7 @@ }, "shebang-command": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "bundled": true, "dev": true, "requires": { "shebang-regex": "^1.0.0" @@ -12762,26 +11967,22 @@ }, "shebang-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "bundled": true, "dev": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "bundled": true, "dev": true }, "slide": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "bundled": true, "dev": true }, "snapdragon": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "bundled": true, "dev": true, "requires": { "base": "^0.11.1", @@ -12796,8 +11997,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { "is-descriptor": "^0.1.0" @@ -12805,8 +12005,7 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -12816,8 +12015,7 @@ }, "snapdragon-node": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "bundled": true, "dev": true, "requires": { "define-property": "^1.0.0", @@ -12827,8 +12025,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, "dev": true, "requires": { "is-descriptor": "^1.0.0" @@ -12836,8 +12033,7 @@ }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "bundled": true, "dev": true, "requires": { "kind-of": "^6.0.0" @@ -12845,8 +12041,7 @@ }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "bundled": true, "dev": true, "requires": { "kind-of": "^6.0.0" @@ -12854,8 +12049,7 @@ }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", @@ -12865,22 +12059,19 @@ }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "bundled": true, "dev": true } } }, "snapdragon-util": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "bundled": true, "dev": true, "requires": { "kind-of": "^3.2.0" @@ -12888,14 +12079,12 @@ }, "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "bundled": true, "dev": true }, "source-map-resolve": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", - "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "bundled": true, "dev": true, "requires": { "atob": "^2.0.0", @@ -12907,14 +12096,12 @@ }, "source-map-url": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "bundled": true, "dev": true }, "spawn-wrap": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", - "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", + "bundled": true, "dev": true, "requires": { "foreground-child": "^1.5.6", @@ -12927,8 +12114,7 @@ }, "spdx-correct": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "bundled": true, "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -12937,14 +12123,12 @@ }, "spdx-exceptions": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", + "bundled": true, "dev": true }, "spdx-expression-parse": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "bundled": true, "dev": true, "requires": { "spdx-exceptions": "^2.1.0", @@ -12953,14 +12137,12 @@ }, "spdx-license-ids": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", + "bundled": true, "dev": true }, "split-string": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "bundled": true, "dev": true, "requires": { "extend-shallow": "^3.0.0" @@ -12968,8 +12150,7 @@ }, "static-extend": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "bundled": true, "dev": true, "requires": { "define-property": "^0.2.5", @@ -12978,8 +12159,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { "is-descriptor": "^0.1.0" @@ -12989,8 +12169,7 @@ }, "string-width": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "bundled": true, "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", @@ -12999,14 +12178,12 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "bundled": true, "dev": true }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "^3.0.0" @@ -13016,8 +12193,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "^2.0.0" @@ -13025,8 +12201,7 @@ }, "strip-bom": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "bundled": true, "dev": true, "requires": { "is-utf8": "^0.2.0" @@ -13034,20 +12209,17 @@ }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "bundled": true, "dev": true }, "supports-color": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "bundled": true, "dev": true }, "test-exclude": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", - "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", + "bundled": true, "dev": true, "requires": { "arrify": "^1.0.1", @@ -13059,20 +12231,17 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "bundled": true, "dev": true }, "array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "bundled": true, "dev": true }, "braces": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "bundled": true, "dev": true, "requires": { "arr-flatten": "^1.1.0", @@ -13089,8 +12258,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -13100,8 +12268,7 @@ }, "expand-brackets": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "bundled": true, "dev": true, "requires": { "debug": "^2.3.3", @@ -13115,8 +12282,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { "is-descriptor": "^0.1.0" @@ -13124,8 +12290,7 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -13133,8 +12298,7 @@ }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "bundled": true, "dev": true, "requires": { "kind-of": "^3.0.2" @@ -13142,8 +12306,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -13153,8 +12316,7 @@ }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "bundled": true, "dev": true, "requires": { "kind-of": "^3.0.2" @@ -13162,8 +12324,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -13173,8 +12334,7 @@ }, "is-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "bundled": true, "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", @@ -13184,16 +12344,14 @@ }, "kind-of": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "bundled": true, "dev": true } } }, "extglob": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "bundled": true, "dev": true, "requires": { "array-unique": "^0.3.2", @@ -13208,8 +12366,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, "dev": true, "requires": { "is-descriptor": "^1.0.0" @@ -13217,8 +12374,7 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -13228,8 +12384,7 @@ }, "fill-range": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "bundled": true, "dev": true, "requires": { "extend-shallow": "^2.0.1", @@ -13240,8 +12395,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -13251,8 +12405,7 @@ }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "bundled": true, "dev": true, "requires": { "kind-of": "^6.0.0" @@ -13260,8 +12413,7 @@ }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "bundled": true, "dev": true, "requires": { "kind-of": "^6.0.0" @@ -13269,8 +12421,7 @@ }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", @@ -13280,8 +12431,7 @@ }, "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, "dev": true, "requires": { "kind-of": "^3.0.2" @@ -13289,8 +12439,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -13300,20 +12449,17 @@ }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "bundled": true, "dev": true }, "micromatch": { "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "bundled": true, "dev": true, "requires": { "arr-diff": "^4.0.0", @@ -13335,14 +12481,12 @@ }, "to-fast-properties": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "bundled": true, "dev": true }, "to-object-path": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "bundled": true, "dev": true, "requires": { "kind-of": "^3.0.2" @@ -13350,8 +12494,7 @@ }, "to-regex": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "bundled": true, "dev": true, "requires": { "define-property": "^2.0.2", @@ -13362,8 +12505,7 @@ }, "to-regex-range": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "bundled": true, "dev": true, "requires": { "is-number": "^3.0.0", @@ -13372,8 +12514,7 @@ "dependencies": { "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, "dev": true, "requires": { "kind-of": "^3.0.2" @@ -13383,14 +12524,12 @@ }, "trim-right": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "bundled": true, "dev": true }, "uglify-js": { "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -13401,8 +12540,7 @@ "dependencies": { "yargs": { "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -13416,15 +12554,13 @@ }, "uglify-to-browserify": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "bundled": true, "dev": true, "optional": true }, "union-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "bundled": true, "dev": true, "requires": { "arr-union": "^3.1.0", @@ -13435,8 +12571,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -13444,8 +12579,7 @@ }, "set-value": { "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "bundled": true, "dev": true, "requires": { "extend-shallow": "^2.0.1", @@ -13458,8 +12592,7 @@ }, "unset-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "bundled": true, "dev": true, "requires": { "has-value": "^0.3.1", @@ -13468,8 +12601,7 @@ "dependencies": { "has-value": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "bundled": true, "dev": true, "requires": { "get-value": "^2.0.3", @@ -13479,8 +12611,7 @@ "dependencies": { "isobject": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "bundled": true, "dev": true, "requires": { "isarray": "1.0.0" @@ -13490,28 +12621,24 @@ }, "has-values": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "bundled": true, "dev": true }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true } } }, "urix": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "bundled": true, "dev": true }, "use": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", - "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "bundled": true, "dev": true, "requires": { "kind-of": "^6.0.2" @@ -13519,16 +12646,14 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "bundled": true, "dev": true } } }, "validate-npm-package-license": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", - "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", + "bundled": true, "dev": true, "requires": { "spdx-correct": "^3.0.0", @@ -13537,8 +12662,7 @@ }, "which": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "bundled": true, "dev": true, "requires": { "isexe": "^2.0.0" @@ -13546,27 +12670,23 @@ }, "which-module": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "bundled": true, "dev": true }, "window-size": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "bundled": true, "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "bundled": true, "dev": true }, "wrap-ansi": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "bundled": true, "dev": true, "requires": { "string-width": "^1.0.1", @@ -13575,8 +12695,7 @@ "dependencies": { "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, "dev": true, "requires": { "number-is-nan": "^1.0.0" @@ -13584,8 +12703,7 @@ }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "dev": true, "requires": { "code-point-at": "^1.0.0", @@ -13597,14 +12715,12 @@ }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "bundled": true, "dev": true }, "write-file-atomic": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", - "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "^4.1.11", @@ -13614,20 +12730,17 @@ }, "y18n": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "bundled": true, "dev": true }, "yallist": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "bundled": true, "dev": true }, "yargs": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", - "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", + "bundled": true, "dev": true, "requires": { "cliui": "^4.0.0", @@ -13646,20 +12759,17 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "bundled": true, "dev": true }, "camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "bundled": true, "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==", + "bundled": true, "dev": true, "requires": { "string-width": "^2.1.1", @@ -13669,8 +12779,7 @@ }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "^3.0.0" @@ -13678,8 +12787,7 @@ }, "yargs-parser": { "version": "9.0.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "bundled": true, "dev": true, "requires": { "camelcase": "^4.1.0" @@ -13689,8 +12797,7 @@ }, "yargs-parser": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", - "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", + "bundled": true, "dev": true, "requires": { "camelcase": "^4.1.0" @@ -13698,8 +12805,7 @@ "dependencies": { "camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "bundled": true, "dev": true } } @@ -14411,8 +13517,7 @@ "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "optional": true + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "braces": { "version": "2.3.2", @@ -14661,8 +13766,7 @@ "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "optional": true + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" }, "micromatch": { "version": "3.1.10", @@ -14793,8 +13897,7 @@ "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "optional": true + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" }, "repeat-element": { "version": "1.1.3", From 0d5ba665737ae686a8b7ea3cd1aece8e02c7e733 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 1 Feb 2019 07:16:49 +0900 Subject: [PATCH 196/480] Update bitcoincashjs-lib dep. --- index.js | 2 +- package-lock.json | 8 ++++---- package.json | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/index.js b/index.js index 060d2fda..58635e88 100755 --- a/index.js +++ b/index.js @@ -18,7 +18,7 @@ const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") const cmd = require("node-cmd") -program.version("3.0.3 ", "-v, --version") +program.version("3.0.4 ", "-v, --version") program .command("new ") diff --git a/package-lock.json b/package-lock.json index a450bc21..34145bfb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "3.0.3", + "version": "3.0.4", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -2599,13 +2599,13 @@ "integrity": "sha512-x0wMVSCZ56ZQnSQ+Xim7XfS0IYiOyOwo0pdMCmR+cDNB7zRhICFuH5i3lNdLSgUw1e7Pc3FmUlC9wruQNlYMnA==" }, "bitcoincashjs-lib": { - "version": "github:Bitcoin-com/bitcoincashjs-lib#12fa5fe9b535816b54b9efedd6caf278d3e55b90", - "from": "github:Bitcoin-com/bitcoincashjs-lib#3.3.4", + "version": "github:Bitcoin-com/bitcoincashjs-lib#14fb44dcd7fa0df47d615780ed97bdc7919e8a87", + "from": "github:Bitcoin-com/bitcoincashjs-lib#3.4.0", "requires": { "bech32": "^1.1.2", "bigi": "^1.4.0", "bip66": "^1.1.0", - "bitcoin-ops": "^1.3.0", + "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3", "bs58check": "^2.0.0", "create-hash": "^1.1.0", "create-hmac": "^1.1.3", diff --git a/package.json b/package.json index 06daa9a5..24e8823a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "3.0.3", + "version": "3.0.4", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "contributors": [ @@ -42,7 +42,7 @@ "bc-bip68": "^1.0.5", "bitcoincash-ops": "Bitcoin-com/bitcoincash-ops#2.0.0", "bitcoin-txdecoder": "0.0.3", - "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib#3.3.4", + "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib#3.4.0", "bitcoinjs-message": "^2.0.0", "bs58": "^4.0.1", "buffer": "^5.1.0", From e63de66181cf677e196b93369d1cf375112d1137 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 1 Feb 2019 07:27:44 +0900 Subject: [PATCH 197/480] Update deps. --- index.js | 7 +------ package-lock.json | 32 +------------------------------- package.json | 3 +-- 3 files changed, 3 insertions(+), 39 deletions(-) diff --git a/index.js b/index.js index 58635e88..20d02682 100755 --- a/index.js +++ b/index.js @@ -1,24 +1,19 @@ #!/usr/bin/env node -"use strict" require("babel-register") const path = require("path") const program = require("commander") const chalk = require("chalk") const mkdirp = require("mkdirp") -const cpFile = require("cp-file") const figlet = require("figlet") const clear = require("clear") const fs = require("fs") -const os = require("os") const touch = require("touch") const emoji = require("node-emoji") const repl = require("repl") -const ini = require("ini") const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") -const cmd = require("node-cmd") -program.version("3.0.4 ", "-v, --version") +program.version("3.0.5 ", "-v, --version") program .command("new ") diff --git a/package-lock.json b/package-lock.json index 34145bfb..b7ed55a6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "3.0.4", + "version": "3.0.5", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -2581,14 +2581,6 @@ "resolved": "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz", "integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow==" }, - "bitcoin-txdecoder": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/bitcoin-txdecoder/-/bitcoin-txdecoder-0.0.3.tgz", - "integrity": "sha512-pH/eF5hQ65y54U23mzuF42wEj9YWj4WKHAIj2il6b1+oRoi/oyM4Ti3e8nMD8ajippICmyquqbyCZKGq3i4W+A==", - "requires": { - "bitcoinjs-lib": "3.3.*" - } - }, "bitcoincash-ops": { "version": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3", "from": "github:Bitcoin-com/bitcoincash-ops#2.0.0" @@ -2619,28 +2611,6 @@ "wif": "^2.0.1" } }, - "bitcoinjs-lib": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-3.3.2.tgz", - "integrity": "sha512-l5qqvbaK8wwtANPf6oEffykycg4383XgEYdia1rI7/JpGf1jfRWlOUCvx5TiTZS7kyIvY4j/UhIQ2urLsvGkzw==", - "requires": { - "bech32": "^1.1.2", - "bigi": "^1.4.0", - "bip66": "^1.1.0", - "bitcoin-ops": "^1.3.0", - "bs58check": "^2.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.3", - "ecurve": "^1.0.0", - "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "^1.0.1", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "typeforce": "^1.11.3", - "varuint-bitcoin": "^1.0.4", - "wif": "^2.0.1" - } - }, "bitcoinjs-message": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", diff --git a/package.json b/package.json index 24e8823a..fcdf2bdc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "3.0.4", + "version": "3.0.5", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "contributors": [ @@ -41,7 +41,6 @@ "bip66": "^1.1.5", "bc-bip68": "^1.0.5", "bitcoincash-ops": "Bitcoin-com/bitcoincash-ops#2.0.0", - "bitcoin-txdecoder": "0.0.3", "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib#3.4.0", "bitcoinjs-message": "^2.0.0", "bs58": "^4.0.1", From e5f8cd207329390d3c746e136d107e0ed5a1f4af Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 1 Feb 2019 07:46:54 +0900 Subject: [PATCH 198/480] Clean up deps. --- index.js | 2 +- package-lock.json | 20 +++++++------------- package.json | 4 ++-- 3 files changed, 10 insertions(+), 16 deletions(-) diff --git a/index.js b/index.js index 20d02682..55843047 100755 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") -program.version("3.0.5 ", "-v, --version") +program.version("3.0.6 ", "-v, --version") program .command("new ") diff --git a/package-lock.json b/package-lock.json index b7ed55a6..ff9696b9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "3.0.5", + "version": "3.0.6", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -2576,11 +2576,6 @@ "safe-buffer": "^5.0.1" } }, - "bitcoin-ops": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz", - "integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow==" - }, "bitcoincash-ops": { "version": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3", "from": "github:Bitcoin-com/bitcoincash-ops#2.0.0" @@ -2591,8 +2586,8 @@ "integrity": "sha512-x0wMVSCZ56ZQnSQ+Xim7XfS0IYiOyOwo0pdMCmR+cDNB7zRhICFuH5i3lNdLSgUw1e7Pc3FmUlC9wruQNlYMnA==" }, "bitcoincashjs-lib": { - "version": "github:Bitcoin-com/bitcoincashjs-lib#14fb44dcd7fa0df47d615780ed97bdc7919e8a87", - "from": "github:Bitcoin-com/bitcoincashjs-lib#3.4.0", + "version": "github:Bitcoin-com/bitcoincashjs-lib#d71168ea20cbc6e295d2b1d9a2f7e4fb9d85b2c1", + "from": "github:Bitcoin-com/bitcoincashjs-lib#3.4.1", "requires": { "bech32": "^1.1.2", "bigi": "^1.4.0", @@ -2603,7 +2598,7 @@ "create-hmac": "^1.1.3", "ecurve": "^1.0.0", "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "^1.0.1", + "pushdata-bitcoin": "github:Bitcoin-com/pushdata-bitcoin#495af0f89d6f510670fad3849dd6cab32726c1f0", "randombytes": "^2.0.1", "safe-buffer": "^5.0.1", "typeforce": "^1.11.3", @@ -13325,11 +13320,10 @@ "dev": true }, "pushdata-bitcoin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", - "integrity": "sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=", + "version": "github:Bitcoin-com/pushdata-bitcoin#495af0f89d6f510670fad3849dd6cab32726c1f0", + "from": "github:Bitcoin-com/pushdata-bitcoin#1.2.0", "requires": { - "bitcoin-ops": "^1.3.0" + "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3" } }, "q": { diff --git a/package.json b/package.json index fcdf2bdc..d7824cef 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "3.0.5", + "version": "3.0.6", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "contributors": [ @@ -41,7 +41,7 @@ "bip66": "^1.1.5", "bc-bip68": "^1.0.5", "bitcoincash-ops": "Bitcoin-com/bitcoincash-ops#2.0.0", - "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib#3.4.0", + "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib#3.4.1", "bitcoinjs-message": "^2.0.0", "bs58": "^4.0.1", "buffer": "^5.1.0", From 90d363949ba6427ad9dcba80b48f4bd2a7164830 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 1 Feb 2019 07:52:23 +0900 Subject: [PATCH 199/480] Fix deps. --- package-lock.json | 10 +++++----- package.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index ff9696b9..9855ef46 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2586,8 +2586,8 @@ "integrity": "sha512-x0wMVSCZ56ZQnSQ+Xim7XfS0IYiOyOwo0pdMCmR+cDNB7zRhICFuH5i3lNdLSgUw1e7Pc3FmUlC9wruQNlYMnA==" }, "bitcoincashjs-lib": { - "version": "github:Bitcoin-com/bitcoincashjs-lib#d71168ea20cbc6e295d2b1d9a2f7e4fb9d85b2c1", - "from": "github:Bitcoin-com/bitcoincashjs-lib#3.4.1", + "version": "github:Bitcoin-com/bitcoincashjs-lib#c6e6d786e7d6360eb6ff125823ecb5e3c0a2bcc1", + "from": "github:Bitcoin-com/bitcoincashjs-lib#3.4.2", "requires": { "bech32": "^1.1.2", "bigi": "^1.4.0", @@ -2598,7 +2598,7 @@ "create-hmac": "^1.1.3", "ecurve": "^1.0.0", "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "github:Bitcoin-com/pushdata-bitcoin#495af0f89d6f510670fad3849dd6cab32726c1f0", + "pushdata-bitcoin": "github:Bitcoin-com/pushdata-bitcoin#9b75eebe597853c6eeaec3e6c44b6d9c9cd7ee86", "randombytes": "^2.0.1", "safe-buffer": "^5.0.1", "typeforce": "^1.11.3", @@ -13320,8 +13320,8 @@ "dev": true }, "pushdata-bitcoin": { - "version": "github:Bitcoin-com/pushdata-bitcoin#495af0f89d6f510670fad3849dd6cab32726c1f0", - "from": "github:Bitcoin-com/pushdata-bitcoin#1.2.0", + "version": "github:Bitcoin-com/pushdata-bitcoin#9b75eebe597853c6eeaec3e6c44b6d9c9cd7ee86", + "from": "github:Bitcoin-com/pushdata-bitcoin#1.2.1", "requires": { "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3" } diff --git a/package.json b/package.json index d7824cef..b8366472 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "bip66": "^1.1.5", "bc-bip68": "^1.0.5", "bitcoincash-ops": "Bitcoin-com/bitcoincash-ops#2.0.0", - "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib#3.4.1", + "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib#3.4.2", "bitcoinjs-message": "^2.0.0", "bs58": "^4.0.1", "buffer": "^5.1.0", From f1b68026a70579ab39d16fb107ed7b69a7c46e27 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 1 Feb 2019 08:00:59 +0900 Subject: [PATCH 200/480] Clean up deps. --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9855ef46..f88dce03 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2586,8 +2586,8 @@ "integrity": "sha512-x0wMVSCZ56ZQnSQ+Xim7XfS0IYiOyOwo0pdMCmR+cDNB7zRhICFuH5i3lNdLSgUw1e7Pc3FmUlC9wruQNlYMnA==" }, "bitcoincashjs-lib": { - "version": "github:Bitcoin-com/bitcoincashjs-lib#c6e6d786e7d6360eb6ff125823ecb5e3c0a2bcc1", - "from": "github:Bitcoin-com/bitcoincashjs-lib#3.4.2", + "version": "github:Bitcoin-com/bitcoincashjs-lib#33de74e0380e739833e36abe923a55ed016126d1", + "from": "github:Bitcoin-com/bitcoincashjs-lib#3.4.3", "requires": { "bech32": "^1.1.2", "bigi": "^1.4.0", diff --git a/package.json b/package.json index b8366472..3105e9af 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "bip66": "^1.1.5", "bc-bip68": "^1.0.5", "bitcoincash-ops": "Bitcoin-com/bitcoincash-ops#2.0.0", - "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib#3.4.2", + "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib#3.4.3", "bitcoinjs-message": "^2.0.0", "bs58": "^4.0.1", "buffer": "^5.1.0", From 6d5095ec2f96f660a73b1c6b585cabfc42c6872d Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 1 Feb 2019 08:17:19 +0900 Subject: [PATCH 201/480] Update deps. --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index f88dce03..8ee9ec29 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2586,8 +2586,8 @@ "integrity": "sha512-x0wMVSCZ56ZQnSQ+Xim7XfS0IYiOyOwo0pdMCmR+cDNB7zRhICFuH5i3lNdLSgUw1e7Pc3FmUlC9wruQNlYMnA==" }, "bitcoincashjs-lib": { - "version": "github:Bitcoin-com/bitcoincashjs-lib#33de74e0380e739833e36abe923a55ed016126d1", - "from": "github:Bitcoin-com/bitcoincashjs-lib#3.4.3", + "version": "github:Bitcoin-com/bitcoincashjs-lib#61ffec3878fd959d2a8a62f570a122ff801d78b6", + "from": "github:Bitcoin-com/bitcoincashjs-lib#3.4.4", "requires": { "bech32": "^1.1.2", "bigi": "^1.4.0", diff --git a/package.json b/package.json index 3105e9af..01b86a73 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "bip66": "^1.1.5", "bc-bip68": "^1.0.5", "bitcoincash-ops": "Bitcoin-com/bitcoincash-ops#2.0.0", - "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib#3.4.3", + "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib#3.4.4", "bitcoinjs-message": "^2.0.0", "bs58": "^4.0.1", "buffer": "^5.1.0", From 16f5ae9077820d9bb5d0c785c931c7e82b308e11 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 1 Feb 2019 08:20:47 +0900 Subject: [PATCH 202/480] Version. --- index.js | 2 +- package-lock.json | 2 +- package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 55843047..d0e0ec56 100755 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") -program.version("3.0.6 ", "-v, --version") +program.version("3.0.7 ", "-v, --version") program .command("new ") diff --git a/package-lock.json b/package-lock.json index 8ee9ec29..9c25259a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "3.0.6", + "version": "3.0.7", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 01b86a73..0f4c2ad1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "3.0.6", + "version": "3.0.7", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "contributors": [ From c727d5b94cb28aaca68bb69a44db4961dcaaa963 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sat, 2 Feb 2019 10:15:37 +0900 Subject: [PATCH 203/480] Update default REST url when creating new BITBOX app. --- index.js | 10 +++++----- package-lock.json | 2 +- package.json | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/index.js b/index.js index d0e0ec56..1f8962d1 100755 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") -program.version("3.0.7 ", "-v, --version") +program.version("3.0.8 ", "-v, --version") program .command("new ") @@ -23,7 +23,7 @@ program ) .option( "-r, --restURL ", - "The rest URL to use. default: https://trest.bitcoin.com/v1/" + "The rest URL to use. default: https://trest.bitcoin.com/v2/" ) .option( "-e, --environment ", @@ -39,7 +39,7 @@ program let config const environment = fetchOption("environment=development", config, options) const restURL = fetchOption( - "restURL=https://trest.bitcoin.com/v1/", + "restURL=https://trest.bitcoin.com/v2/", config, options ) @@ -113,7 +113,7 @@ program fs.writeFileSync( `./${name}/bitbox.js`, `exports.config = { - networks: { + environments: { ${environment}: { restURL: "${restURL}" } @@ -154,7 +154,7 @@ program const environment = fetchOption("environment=development", config, options) - replServer.context.BITBOX = new BITBOXSDK(config.networks[environment]) + replServer.context.BITBOX = new BITBOXSDK(config.environments[environment]) }) function fetchOption(kv, config, options) { diff --git a/package-lock.json b/package-lock.json index 9c25259a..487d7aaa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "3.0.7", + "version": "3.0.8", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 0f4c2ad1..d32ffe6a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "3.0.7", + "version": "3.0.8", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "contributors": [ From 161a0c3fe0344df3619feeab81cb206818803058 Mon Sep 17 00:00:00 2001 From: "James S. Cramer" Date: Sat, 2 Feb 2019 10:45:03 -0500 Subject: [PATCH 204/480] Updated rawTransactions types for POST endpoint --- lib/RawTransactions.d.ts | 20 +++++++++++++++++--- typings/RawTransactions.d.ts | 20 +++++++++++++++++--- 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/lib/RawTransactions.d.ts b/lib/RawTransactions.d.ts index 8ded66c2..d5470a8d 100644 --- a/lib/RawTransactions.d.ts +++ b/lib/RawTransactions.d.ts @@ -1,7 +1,21 @@ -export declare interface RawTransactions { - //constructor(restURL:string); +export interface RawTransactions { decodeRawTransaction(hex:string):Promise; decodeScript(hex: string):Promise; - getRawTransaction(txid: string, verbose?:boolean): Promise; + getRawTransaction(txids: string[]): Promise; + getRawTransaction(txids: string[], verbose:boolean): Promise; // verbose must be set to true sendRawTransaction(hex: string, allowhighfees?:boolean): Promise; +} + +export interface VerboseRawTransaction { + hex: string; + txid: string; + size: number; + version: number; + locktime: number; + vin: [{ coinbase: string; sequence: number }] + vout: [{value: number; n: number; scriptPubKey: { asm: string; hex: string; reqSigs: number; type: string; addresses: string[] }}] + blockhash: string; + confirmations: number; + time: number; + blocktime: number; } \ No newline at end of file diff --git a/typings/RawTransactions.d.ts b/typings/RawTransactions.d.ts index 8ded66c2..d5470a8d 100644 --- a/typings/RawTransactions.d.ts +++ b/typings/RawTransactions.d.ts @@ -1,7 +1,21 @@ -export declare interface RawTransactions { - //constructor(restURL:string); +export interface RawTransactions { decodeRawTransaction(hex:string):Promise; decodeScript(hex: string):Promise; - getRawTransaction(txid: string, verbose?:boolean): Promise; + getRawTransaction(txids: string[]): Promise; + getRawTransaction(txids: string[], verbose:boolean): Promise; // verbose must be set to true sendRawTransaction(hex: string, allowhighfees?:boolean): Promise; +} + +export interface VerboseRawTransaction { + hex: string; + txid: string; + size: number; + version: number; + locktime: number; + vin: [{ coinbase: string; sequence: number }] + vout: [{value: number; n: number; scriptPubKey: { asm: string; hex: string; reqSigs: number; type: string; addresses: string[] }}] + blockhash: string; + confirmations: number; + time: number; + blocktime: number; } \ No newline at end of file From e99db37b9e265473cdf4636fe5330a90bb5580c3 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sun, 3 Feb 2019 08:37:13 +0900 Subject: [PATCH 205/480] Update typings and bump v. --- index.js | 2 +- package-lock.json | 2 +- package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 1f8962d1..1f63c4c2 100755 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") -program.version("3.0.8 ", "-v, --version") +program.version("3.0.9 ", "-v, --version") program .command("new ") diff --git a/package-lock.json b/package-lock.json index 487d7aaa..4ac70c87 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "3.0.8", + "version": "3.0.9", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index d32ffe6a..1b85f798 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "3.0.8", + "version": "3.0.9", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "contributors": [ From 5c4b6ae3d0708ddc69e1d6944642a1f2988e23b1 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 6 Feb 2019 09:43:57 +0900 Subject: [PATCH 206/480] Rebuild. --- index.js | 2 +- package-lock.json | 604 ++++++++++++++++++++-------------------------- package.json | 2 +- 3 files changed, 268 insertions(+), 340 deletions(-) diff --git a/index.js b/index.js index 1f63c4c2..c3be784a 100755 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") -program.version("3.0.9 ", "-v, --version") +program.version("3.0.10 ", "-v, --version") program .command("new ") diff --git a/package-lock.json b/package-lock.json index 4ac70c87..7b1c28f8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "3.0.9", + "version": "3.0.10", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -13,11 +13,11 @@ } }, "@babel/generator": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.0.tgz", - "integrity": "sha512-dZTwMvTgWfhmibq4V9X+LMf6Bgl7zAodRn9PvcPdhlzFMbvUutx74dbEv7Atz3ToeEpevYEJtAwfxq/bDCzHWg==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.2.tgz", + "integrity": "sha512-f3QCuPppXxtZOEm5GWPra/uYUjmNQlu9pbAD8D/9jze4pTY83rTtB1igTBSwvkeNlC5gR24zFFkz+2WHLFQhqQ==", "requires": { - "@babel/types": "^7.3.0", + "@babel/types": "^7.3.2", "jsesc": "^2.5.1", "lodash": "^4.17.10", "source-map": "^0.5.0", @@ -75,9 +75,9 @@ } }, "@babel/parser": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.1.tgz", - "integrity": "sha512-ATz6yX/L8LEnC3dtLQnIx4ydcPxhLcoy9Vl6re00zb2w5lG6itY6Vhnr1KFRPq/FHNsgl/gh2mjNN20f9iJTTA==" + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.2.tgz", + "integrity": "sha512-QzNUC2RO1gadg+fs21fi0Uu0OuGNzRKEmgCxoLNzbCdoprLwjfmZwzUrpUNfJPaVRwBpDY47A17yYEGWyRelnQ==" }, "@babel/template": { "version": "7.2.2", @@ -126,9 +126,9 @@ } }, "@babel/types": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.0.tgz", - "integrity": "sha512-QkFPw68QqWU1/RVPyBe8SO7lXbPfjtqAxRYQKpFpaB8yMq7X2qAqfwK5LKoQufEkSmO5NQ70O6Kc3Afk03RwXw==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.2.tgz", + "integrity": "sha512-3Y6H8xlUlpbGR+XvawiH0UXehqydTmNmEpozWcXymqwcrwYAl5KMvKtQ+TF6f6E08V6Jur7v/ykdDSF+WDEIXQ==", "requires": { "esutils": "^2.0.2", "lodash": "^4.17.10", @@ -159,12 +159,12 @@ "dev": true }, "@octokit/endpoint": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-3.1.1.tgz", - "integrity": "sha512-KPkoTvKwCTetu/UqonLs1pfwFO5HAqTv/Ksp9y4NAg//ZgUCpvJsT4Hrst85uEzJvkB8+LxKyR4Bfv2X8O4cmQ==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-3.1.2.tgz", + "integrity": "sha512-iRx4kDYybAv9tOrHDBE6HwlgiFi8qmbZl8SHliZWtxbUFuXLZXh2yv8DxGIK9wzD9J0wLDMZneO8vNYJNUSJ9Q==", "dev": true, "requires": { - "deepmerge": "3.0.0", + "deepmerge": "3.1.0", "is-plain-object": "^2.0.4", "universal-user-agent": "^2.0.1", "url-template": "^2.0.8" @@ -183,9 +183,9 @@ } }, "@octokit/rest": { - "version": "16.13.4", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.13.4.tgz", - "integrity": "sha512-9G7C9n/2sujHQ0uXytvRDRu/iDhVVPALiF/YojfIOv5AUrzTKPSqdSUb8AUQ9xvuJ0X9sY5/tVXBbE2eF8geaQ==", + "version": "16.15.0", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.15.0.tgz", + "integrity": "sha512-Un+e7rgh38RtPOTe453pT/KPM/p2KZICimBmuZCd2wEo8PacDa4h6RqTPZs+f2DPazTTqdM7QU4LKlUjgiBwWw==", "dev": true, "requires": { "@octokit/request": "2.3.0", @@ -385,9 +385,9 @@ } }, "@sinonjs/samsam": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.0.2.tgz", - "integrity": "sha512-m08g4CS3J6lwRQk1pj1EO+KEVWbrbXsmi9Pw0ySmrIbcVxVaedoFgLvFsV8wHLwh01EpROVz3KvVcD1Jmks9FQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.1.0.tgz", + "integrity": "sha512-IXio+GWY+Q8XUjHUOgK7wx8fpvr7IFffgyXb1bnJFfX3001KmHt35Zq4tp7MXZyjJPCLPuadesDYNk41LYtVjw==", "dev": true, "requires": { "@sinonjs/commons": "^1.0.2", @@ -1523,9 +1523,9 @@ "integrity": "sha1-nGZalfiLiwj8Bc/XMfVhhZ1yWCU=" }, "binary-extensions": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", - "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.0.tgz", + "integrity": "sha512-EgmjVLMn22z7eGGv3kcnHwSnJXmFHjISTY9E/S5lIcTD3Oxw05QTcBLNkJFzcb3cNueUdF/IN4U+d78V0zO8Hw==", "optional": true }, "bindings": { @@ -1554,50 +1554,36 @@ }, "dependencies": { "nyc": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-13.1.0.tgz", - "integrity": "sha512-3GyY6TpQ58z9Frpv4GMExE1SV2tAgYqC7HSy2omEhNiCT3mhT9NyiOvIE8zkbuJVFzmvvNTnE4h/7/wQae7xLg==", + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-13.2.0.tgz", + "integrity": "sha512-gQBlOqvfpYt9b2PZ7qElrHWt8x4y8ApNfbMBoDPdl3sY4/4RJwCxDGTSqhA9RnaguZjS5nW7taW8oToe86JLgQ==", "requires": { "archy": "^1.0.0", "arrify": "^1.0.1", - "caching-transform": "^2.0.0", + "caching-transform": "^3.0.1", "convert-source-map": "^1.6.0", - "debug-log": "^1.0.1", "find-cache-dir": "^2.0.0", "find-up": "^3.0.0", "foreground-child": "^1.5.6", "glob": "^7.1.3", - "istanbul-lib-coverage": "^2.0.1", - "istanbul-lib-hook": "^2.0.1", - "istanbul-lib-instrument": "^3.0.0", - "istanbul-lib-report": "^2.0.2", - "istanbul-lib-source-maps": "^2.0.1", - "istanbul-reports": "^2.0.1", + "istanbul-lib-coverage": "^2.0.3", + "istanbul-lib-hook": "^2.0.3", + "istanbul-lib-instrument": "^3.0.1", + "istanbul-lib-report": "^2.0.4", + "istanbul-lib-source-maps": "^3.0.2", + "istanbul-reports": "^2.1.0", "make-dir": "^1.3.0", "merge-source-map": "^1.1.0", "resolve-from": "^4.0.0", - "rimraf": "^2.6.2", + "rimraf": "^2.6.3", "signal-exit": "^3.0.2", "spawn-wrap": "^1.4.2", - "test-exclude": "^5.0.0", + "test-exclude": "^5.1.0", "uuid": "^3.3.2", - "yargs": "11.1.0", - "yargs-parser": "^9.0.2" + "yargs": "^12.0.5", + "yargs-parser": "^11.1.1" }, "dependencies": { - "align-text": { - "version": "0.1.4", - "bundled": true, - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - } - }, - "amdefine": { - "version": "1.0.1", - "bundled": true - }, "ansi-regex": { "version": "3.0.0", "bundled": true @@ -1618,8 +1604,11 @@ "bundled": true }, "async": { - "version": "1.5.2", - "bundled": true + "version": "2.6.1", + "bundled": true, + "requires": { + "lodash": "^4.17.10" + } }, "balanced-match": { "version": "1.0.0", @@ -1638,50 +1627,37 @@ "bundled": true }, "caching-transform": { - "version": "2.0.0", + "version": "3.0.1", "bundled": true, "requires": { - "make-dir": "^1.0.0", - "md5-hex": "^2.0.0", - "package-hash": "^2.0.0", - "write-file-atomic": "^2.0.0" + "hasha": "^3.0.0", + "make-dir": "^1.3.0", + "package-hash": "^3.0.0", + "write-file-atomic": "^2.3.0" } }, "camelcase": { - "version": "1.2.1", - "bundled": true, - "optional": true - }, - "center-align": { - "version": "0.1.3", - "bundled": true, - "optional": true, - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - } + "version": "5.0.0", + "bundled": true }, "cliui": { - "version": "2.1.0", + "version": "4.1.0", "bundled": true, - "optional": true, "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "bundled": true, - "optional": true - } + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" } }, "code-point-at": { "version": "1.1.0", "bundled": true }, + "commander": { + "version": "2.17.1", + "bundled": true, + "optional": true + }, "commondir": { "version": "1.0.1", "bundled": true @@ -1706,16 +1682,12 @@ } }, "debug": { - "version": "3.1.0", + "version": "4.1.1", "bundled": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, - "debug-log": { - "version": "1.0.1", - "bundled": true - }, "decamelize": { "version": "1.2.0", "bundled": true @@ -1727,6 +1699,13 @@ "strip-bom": "^3.0.0" } }, + "end-of-stream": { + "version": "1.4.1", + "bundled": true, + "requires": { + "once": "^1.4.0" + } + }, "error-ex": { "version": "1.3.2", "bundled": true, @@ -1739,11 +1718,11 @@ "bundled": true }, "execa": { - "version": "0.7.0", + "version": "1.0.0", "bundled": true, "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", "is-stream": "^1.1.0", "npm-run-path": "^2.0.0", "p-finally": "^1.0.0", @@ -1752,10 +1731,12 @@ }, "dependencies": { "cross-spawn": { - "version": "5.1.0", + "version": "6.0.5", "bundled": true, "requires": { - "lru-cache": "^4.0.1", + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", "shebang-command": "^1.2.0", "which": "^1.2.9" } @@ -1795,8 +1776,11 @@ "bundled": true }, "get-stream": { - "version": "3.0.0", - "bundled": true + "version": "4.1.0", + "bundled": true, + "requires": { + "pump": "^3.0.0" + } }, "glob": { "version": "7.1.3", @@ -1811,25 +1795,22 @@ } }, "graceful-fs": { - "version": "4.1.11", + "version": "4.1.15", "bundled": true }, "handlebars": { - "version": "4.0.11", + "version": "4.0.12", "bundled": true, "requires": { - "async": "^1.4.0", + "async": "^2.5.0", "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" }, "dependencies": { "source-map": { - "version": "0.4.4", - "bundled": true, - "requires": { - "amdefine": ">=0.0.4" - } + "version": "0.6.1", + "bundled": true } } }, @@ -1837,6 +1818,13 @@ "version": "3.0.0", "bundled": true }, + "hasha": { + "version": "3.0.0", + "bundled": true, + "requires": { + "is-stream": "^1.0.1" + } + }, "hosted-git-info": { "version": "2.7.1", "bundled": true @@ -1858,17 +1846,13 @@ "bundled": true }, "invert-kv": { - "version": "1.0.0", + "version": "2.0.0", "bundled": true }, "is-arrayish": { "version": "0.2.1", "bundled": true }, - "is-buffer": { - "version": "1.1.6", - "bundled": true - }, "is-builtin-module": { "version": "1.0.0", "bundled": true, @@ -1889,31 +1873,40 @@ "bundled": true }, "istanbul-lib-coverage": { - "version": "2.0.1", + "version": "2.0.3", "bundled": true }, "istanbul-lib-hook": { - "version": "2.0.1", + "version": "2.0.3", "bundled": true, "requires": { "append-transform": "^1.0.0" } }, "istanbul-lib-report": { - "version": "2.0.2", + "version": "2.0.4", "bundled": true, "requires": { - "istanbul-lib-coverage": "^2.0.1", + "istanbul-lib-coverage": "^2.0.3", "make-dir": "^1.3.0", - "supports-color": "^5.4.0" + "supports-color": "^6.0.0" + }, + "dependencies": { + "supports-color": { + "version": "6.1.0", + "bundled": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "istanbul-lib-source-maps": { - "version": "2.0.1", + "version": "3.0.2", "bundled": true, "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^2.0.1", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^2.0.3", "make-dir": "^1.3.0", "rimraf": "^2.6.2", "source-map": "^0.6.1" @@ -1926,7 +1919,7 @@ } }, "istanbul-reports": { - "version": "2.0.1", + "version": "2.1.0", "bundled": true, "requires": { "handlebars": "^4.0.11" @@ -1936,23 +1929,11 @@ "version": "1.0.2", "bundled": true }, - "kind-of": { - "version": "3.2.2", - "bundled": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "lazy-cache": { - "version": "1.0.4", - "bundled": true, - "optional": true - }, "lcid": { - "version": "1.0.0", + "version": "2.0.0", "bundled": true, "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "^2.0.0" } }, "load-json-file": { @@ -1973,16 +1954,16 @@ "path-exists": "^3.0.0" } }, - "lodash.flattendeep": { - "version": "4.4.0", + "lodash": { + "version": "4.17.11", "bundled": true }, - "longest": { - "version": "1.0.1", + "lodash.flattendeep": { + "version": "4.4.0", "bundled": true }, "lru-cache": { - "version": "4.1.3", + "version": "4.1.5", "bundled": true, "requires": { "pseudomap": "^1.0.2", @@ -1996,22 +1977,20 @@ "pify": "^3.0.0" } }, - "md5-hex": { - "version": "2.0.0", + "map-age-cleaner": { + "version": "0.1.3", "bundled": true, "requires": { - "md5-o-matic": "^0.1.1" + "p-defer": "^1.0.0" } }, - "md5-o-matic": { - "version": "0.1.1", - "bundled": true - }, "mem": { - "version": "1.1.0", + "version": "4.0.0", "bundled": true, "requires": { - "mimic-fn": "^1.0.0" + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^1.0.0", + "p-is-promise": "^1.1.0" } }, "merge-source-map": { @@ -2056,7 +2035,11 @@ } }, "ms": { - "version": "2.0.0", + "version": "2.1.1", + "bundled": true + }, + "nice-try": { + "version": "1.0.5", "bundled": true }, "normalize-package-data": { @@ -2100,20 +2083,28 @@ "bundled": true }, "os-locale": { - "version": "2.1.0", + "version": "3.1.0", "bundled": true, "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" } }, + "p-defer": { + "version": "1.0.0", + "bundled": true + }, "p-finally": { "version": "1.0.0", "bundled": true }, + "p-is-promise": { + "version": "1.1.0", + "bundled": true + }, "p-limit": { - "version": "2.0.0", + "version": "2.1.0", "bundled": true, "requires": { "p-try": "^2.0.0" @@ -2131,12 +2122,12 @@ "bundled": true }, "package-hash": { - "version": "2.0.0", + "version": "3.0.0", "bundled": true, "requires": { - "graceful-fs": "^4.1.11", + "graceful-fs": "^4.1.15", + "hasha": "^3.0.0", "lodash.flattendeep": "^4.4.0", - "md5-hex": "^2.0.0", "release-zalgo": "^1.0.0" } }, @@ -2182,6 +2173,14 @@ "version": "1.0.2", "bundled": true }, + "pump": { + "version": "3.0.0", + "bundled": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "read-pkg": { "version": "3.0.0", "bundled": true, @@ -2206,10 +2205,6 @@ "es6-error": "^4.0.1" } }, - "repeat-string": { - "version": "1.6.1", - "bundled": true - }, "require-directory": { "version": "2.1.1", "bundled": true @@ -2222,19 +2217,11 @@ "version": "4.0.0", "bundled": true }, - "right-align": { - "version": "0.1.3", - "bundled": true, - "optional": true, - "requires": { - "align-text": "^0.1.1" - } - }, "rimraf": { - "version": "2.6.2", + "version": "2.6.3", "bundled": true, "requires": { - "glob": "^7.0.5" + "glob": "^7.1.3" } }, "safe-buffer": { @@ -2242,7 +2229,7 @@ "bundled": true }, "semver": { - "version": "5.5.0", + "version": "5.6.0", "bundled": true }, "set-blocking": { @@ -2264,11 +2251,6 @@ "version": "3.0.2", "bundled": true }, - "source-map": { - "version": "0.5.7", - "bundled": true, - "optional": true - }, "spawn-wrap": { "version": "1.4.2", "bundled": true, @@ -2282,7 +2264,7 @@ } }, "spdx-correct": { - "version": "3.0.0", + "version": "3.1.0", "bundled": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -2290,7 +2272,7 @@ } }, "spdx-exceptions": { - "version": "2.1.0", + "version": "2.2.0", "bundled": true }, "spdx-expression-parse": { @@ -2302,7 +2284,7 @@ } }, "spdx-license-ids": { - "version": "3.0.0", + "version": "3.0.3", "bundled": true }, "string-width": { @@ -2328,15 +2310,8 @@ "version": "1.0.0", "bundled": true }, - "supports-color": { - "version": "5.4.0", - "bundled": true, - "requires": { - "has-flag": "^3.0.0" - } - }, "test-exclude": { - "version": "5.0.0", + "version": "5.1.0", "bundled": true, "requires": { "arrify": "^1.0.1", @@ -2346,39 +2321,27 @@ } }, "uglify-js": { - "version": "2.8.29", + "version": "3.4.9", "bundled": true, "optional": true, "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" + "commander": "~2.17.1", + "source-map": "~0.6.1" }, "dependencies": { - "yargs": { - "version": "3.10.0", + "source-map": { + "version": "0.6.1", "bundled": true, - "optional": true, - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } + "optional": true } } }, - "uglify-to-browserify": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, "uuid": { "version": "3.3.2", "bundled": true }, "validate-npm-package-license": { - "version": "3.0.3", + "version": "3.0.4", "bundled": true, "requires": { "spdx-correct": "^3.0.0", @@ -2396,11 +2359,6 @@ "version": "2.0.0", "bundled": true }, - "window-size": { - "version": "0.1.0", - "bundled": true, - "optional": true - }, "wordwrap": { "version": "0.0.3", "bundled": true @@ -2447,7 +2405,7 @@ "bundled": true }, "write-file-atomic": { - "version": "2.3.0", + "version": "2.4.2", "bundled": true, "requires": { "graceful-fs": "^4.1.11", @@ -2456,7 +2414,7 @@ } }, "y18n": { - "version": "3.2.1", + "version": "4.0.0", "bundled": true }, "yallist": { @@ -2464,78 +2422,29 @@ "bundled": true }, "yargs": { - "version": "11.1.0", + "version": "12.0.5", "bundled": true, "requires": { "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", + "os-locale": "^3.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": "^9.0.2" - }, - "dependencies": { - "cliui": { - "version": "4.1.0", - "bundled": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "bundled": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "bundled": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "bundled": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "bundled": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "bundled": true - } + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" } }, "yargs-parser": { - "version": "9.0.2", + "version": "11.1.1", "bundled": true, "requires": { - "camelcase": "^4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "bundled": true - } + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } @@ -2592,13 +2501,13 @@ "bech32": "^1.1.2", "bigi": "^1.4.0", "bip66": "^1.1.0", - "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3", + "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#2.0.0", "bs58check": "^2.0.0", "create-hash": "^1.1.0", "create-hmac": "^1.1.3", "ecurve": "^1.0.0", "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "github:Bitcoin-com/pushdata-bitcoin#9b75eebe597853c6eeaec3e6c44b6d9c9cd7ee86", + "pushdata-bitcoin": "github:Bitcoin-com/pushdata-bitcoin#1.2.1", "randombytes": "^2.0.1", "safe-buffer": "^5.0.1", "typeforce": "^1.11.3", @@ -2629,9 +2538,9 @@ "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" }, "bottleneck": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.15.3.tgz", - "integrity": "sha512-2sHF/gMwTshF//gQninQBEHDNBXuvDLfSczPHpDc2U/9SC+P/97Zt01hy7UTEV0atSZ9BQBIHsdju/6wn7m4+w==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.16.1.tgz", + "integrity": "sha512-OOHt4HXiMoXKUcQR/LBzwMYWCQxOU74c8zs6/VPCe6xO3kOAZBZqYKmrgsamVXa1wm9iztD1DAoV46KmGKLl5g==", "dev": true }, "brace-expansion": { @@ -2837,9 +2746,9 @@ } }, "caniuse-lite": { - "version": "1.0.30000933", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000933.tgz", - "integrity": "sha512-d3QXv7eFTU40DSedSP81dV/ajcGSKpT+GW+uhtWmLvQm9bPk0KK++7i1e2NSW/CXGZhWFt2mFbFtCJ5I5bMuVA==" + "version": "1.0.30000935", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000935.tgz", + "integrity": "sha512-1Y2uJ5y56qDt3jsDTdBHL1OqiImzjoQcBG6Yl3Qizq8mcc2SgCFpi+ZwLLqkztYnk9l87IYqRlNBnPSOTbFkXQ==" }, "cardinal": { "version": "2.1.1", @@ -3442,9 +3351,9 @@ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, "deepmerge": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.0.0.tgz", - "integrity": "sha512-a8z8bkgHsAML+uHLqmMS83HHlpy3PvZOOuiTQqaa3wu8ZVg3h0hqHk6aCsGdOnZV2XMM/FRimNGjUh0KCcmHBw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.1.0.tgz", + "integrity": "sha512-/TnecbwXEdycfbsM2++O3eGiatEFHjjNciHEwJclM+T5Kd94qD1AP+2elP/Mq0L5b9VZJao5znR01Mz6eX8Seg==", "dev": true }, "define-properties": { @@ -3633,9 +3542,9 @@ } }, "electron-to-chromium": { - "version": "1.3.110", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.110.tgz", - "integrity": "sha512-LS2Osf3ags8xVmcgRcH06fQjVbSEPhFtMfmjXDv5jHUzg73sNsEflv9rltZ33IAe0RLgU+7ln+1r+U7d6/k0KQ==" + "version": "1.3.113", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.113.tgz", + "integrity": "sha512-De+lPAxEcpxvqPTyZAXELNpRZXABRxf+uL/rSykstQhzj/B0l1150G/ExIIxKc16lI89Hgz81J0BHAcbTqK49g==" }, "elliptic": { "version": "6.4.1", @@ -3764,9 +3673,9 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "eslint": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.12.1.tgz", - "integrity": "sha512-54NV+JkTpTu0d8+UYSA8mMKAG4XAsaOrozA9rCW7tgneg1mevcL7wIotPC+fZ0SkWwdhNqoXoxnQCTBp7UvTsg==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.13.0.tgz", + "integrity": "sha512-nqD5WQMisciZC5EHZowejLKQjWGuFS5c70fxqSKlnDME+oz9zmE8KTlX+lHSg+/5wsC/kf9Q9eMkC8qS3oM2fg==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -3798,7 +3707,6 @@ "natural-compare": "^1.4.0", "optionator": "^0.8.2", "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", "progress": "^2.0.0", "regexpp": "^2.0.1", "semver": "^5.5.1", @@ -3809,9 +3717,9 @@ }, "dependencies": { "acorn": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.6.tgz", - "integrity": "sha512-5M3G/A4uBSMIlfJ+h9W125vJvPFH/zirISsW5qfxF5YzEvXJCtolLoQvM5yZft0DvMcUrPGKPOlgEu55I6iUtA==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.7.tgz", + "integrity": "sha512-HNJNgE60C9eOTgn974Tlp3dpLZdUr+SoxxDwPaY9J/kDNOLQTkaDgwBUXAF4SSsrAwD9RpdxuHK/EbuF+W9Ahw==", "dev": true }, "acorn-jsx": { @@ -3821,9 +3729,9 @@ "dev": true }, "ajv": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.7.0.tgz", - "integrity": "sha512-RZXPviBTtfmtka9n9sy1N5M5b82CbxWIR6HIis4s3WQTXDJamc/0gpCWNGz6EWdWp4DOfjzJfhz/AS9zVPjjWg==", + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.8.1.tgz", + "integrity": "sha512-eqxCp82P+JfqL683wwsL73XmFs1eG6qjw+RD3YHx+Jll1r0jNd4dh8QG9NYAeNGA/hnZjeEDgtTskgJULbxpWQ==", "dev": true, "requires": { "fast-deep-equal": "^2.0.1", @@ -4885,7 +4793,8 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "bundled": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -4903,11 +4812,13 @@ }, "balanced-match": { "version": "1.0.0", - "bundled": true + "bundled": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4920,15 +4831,18 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "concat-map": { "version": "0.0.1", - "bundled": true + "bundled": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -5031,7 +4945,8 @@ }, "inherits": { "version": "2.0.3", - "bundled": true + "bundled": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -5041,6 +4956,7 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -5053,17 +4969,20 @@ "minimatch": { "version": "3.0.4", "bundled": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true + "bundled": true, + "optional": true }, "minipass": { "version": "2.3.5", "bundled": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -5080,6 +4999,7 @@ "mkdirp": { "version": "0.5.1", "bundled": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -5152,7 +5072,8 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "bundled": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -5162,6 +5083,7 @@ "once": { "version": "1.4.0", "bundled": true, + "optional": true, "requires": { "wrappy": "1" } @@ -5237,7 +5159,8 @@ }, "safe-buffer": { "version": "5.1.2", - "bundled": true + "bundled": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -5267,6 +5190,7 @@ "string-width": { "version": "1.0.2", "bundled": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -5284,6 +5208,7 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -5322,11 +5247,13 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true + "bundled": true, + "optional": true }, "yallist": { "version": "3.0.3", - "bundled": true + "bundled": true, + "optional": true } } }, @@ -5435,6 +5362,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "optional": true, "requires": { "is-glob": "^2.0.0" } @@ -5533,9 +5461,9 @@ }, "dependencies": { "ajv": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.7.0.tgz", - "integrity": "sha512-RZXPviBTtfmtka9n9sy1N5M5b82CbxWIR6HIis4s3WQTXDJamc/0gpCWNGz6EWdWp4DOfjzJfhz/AS9zVPjjWg==", + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.8.1.tgz", + "integrity": "sha512-eqxCp82P+JfqL683wwsL73XmFs1eG6qjw+RD3YHx+Jll1r0jNd4dh8QG9NYAeNGA/hnZjeEDgtTskgJULbxpWQ==", "dev": true, "requires": { "fast-deep-equal": "^2.0.1", @@ -5924,14 +5852,6 @@ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "requires": { - "builtin-modules": "^1.0.0" - } - }, "is-callable": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", @@ -5996,7 +5916,8 @@ "is-extglob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "optional": true }, "is-finite": { "version": "1.0.2", @@ -6015,6 +5936,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "optional": true, "requires": { "is-extglob": "^1.0.0" } @@ -6163,21 +6085,21 @@ } }, "istanbul-lib-coverage": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", - "integrity": "sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-dKWuzRGCs4G+67VfW9pBFFz2Jpi4vSp/k7zBcJ888ofV5Mi1g5CUML5GvMvV6u9Cjybftu+E8Cgp+k0dI1E5lw==" }, "istanbul-lib-instrument": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.0.0.tgz", - "integrity": "sha512-eQY9vN9elYjdgN9Iv6NS/00bptm02EBBk70lRMaVjeA6QYocQgenVrSgC28TJurdnZa80AGO3ASdFN+w/njGiQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.1.0.tgz", + "integrity": "sha512-ooVllVGT38HIk8MxDj/OIHXSYvH+1tq/Vb38s8ixt9GoJadXska4WkGY+0wkmtYCZNYtaARniH/DixUGGLZ0uA==", "requires": { "@babel/generator": "^7.0.0", "@babel/parser": "^7.0.0", "@babel/template": "^7.0.0", "@babel/traverse": "^7.0.0", "@babel/types": "^7.0.0", - "istanbul-lib-coverage": "^2.0.1", + "istanbul-lib-coverage": "^2.0.3", "semver": "^5.5.0" } }, @@ -7010,12 +6932,12 @@ } }, "normalize-package-data": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.2.tgz", - "integrity": "sha512-YcMnjqeoUckXTPKZSAsPjUPLxH85XotbpqK3w4RyCwdFQSU5FxxBys8buehkSfg0j9fKvV1hn7O0+8reEgkAiw==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "requires": { "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", + "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" } @@ -7024,6 +6946,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "optional": true, "requires": { "remove-trailing-separator": "^1.0.1" } @@ -10186,6 +10109,7 @@ "version": "0.1.4", "bundled": true, "dev": true, + "optional": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -11368,7 +11292,8 @@ "longest": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "loose-envify": { "version": "1.3.1", @@ -13258,9 +13183,9 @@ "optional": true }, "prettier": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.16.3.tgz", - "integrity": "sha512-kn/GU6SMRYPxUakNXhpP0EedT/KmaPzr0H5lIsDogrykbaxOpOfAFfk5XA7DZrJyMAv1wlMV3CPcZruGXVVUZw==", + "version": "1.16.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.16.4.tgz", + "integrity": "sha512-ZzWuos7TI5CKUeQAtFd6Zhm2s6EpAD/ZLApIhsF9pRvRtM1RFo61dM/4MSRUA0SuLugA/zgrZD8m0BaY46Og7g==", "dev": true }, "private": { @@ -13323,7 +13248,7 @@ "version": "github:Bitcoin-com/pushdata-bitcoin#9b75eebe597853c6eeaec3e6c44b6d9c9cd7ee86", "from": "github:Bitcoin-com/pushdata-bitcoin#1.2.1", "requires": { - "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3" + "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#2.0.0" } }, "q": { @@ -13481,7 +13406,8 @@ "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "optional": true }, "braces": { "version": "2.3.2", @@ -13730,7 +13656,8 @@ "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "optional": true }, "micromatch": { "version": "3.1.10", @@ -13861,7 +13788,8 @@ "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "optional": true }, "repeat-element": { "version": "1.1.3", diff --git a/package.json b/package.json index 1b85f798..105f69a6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "3.0.9", + "version": "3.0.10", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "contributors": [ From bb40566d624ed96a6791ff3c39d3719411fc4777 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 6 Feb 2019 10:11:32 +0900 Subject: [PATCH 207/480] Update bip32-utils to node10 --- index.js | 2 +- package-lock.json | 1630 ++++----------------------------------------- package.json | 4 +- 3 files changed, 141 insertions(+), 1495 deletions(-) diff --git a/index.js b/index.js index c3be784a..fbad6f36 100755 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") -program.version("3.0.10 ", "-v, --version") +program.version("3.0.11 ", "-v, --version") program .command("new ") diff --git a/package-lock.json b/package-lock.json index 7b1c28f8..0b7d7da0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "3.0.10", + "version": "3.0.11", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -8,59 +8,16 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, "requires": { "@babel/highlight": "^7.0.0" } }, - "@babel/generator": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.2.tgz", - "integrity": "sha512-f3QCuPppXxtZOEm5GWPra/uYUjmNQlu9pbAD8D/9jze4pTY83rTtB1igTBSwvkeNlC5gR24zFFkz+2WHLFQhqQ==", - "requires": { - "@babel/types": "^7.3.2", - "jsesc": "^2.5.1", - "lodash": "^4.17.10", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" - }, - "dependencies": { - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - } - } - }, - "@babel/helper-function-name": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", - "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", - "requires": { - "@babel/helper-get-function-arity": "^7.0.0", - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", - "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", - "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", - "requires": { - "@babel/types": "^7.0.0" - } - }, "@babel/highlight": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "dev": true, "requires": { "chalk": "^2.0.0", "esutils": "^2.0.2", @@ -70,75 +27,8 @@ "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - } - } - }, - "@babel/parser": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.2.tgz", - "integrity": "sha512-QzNUC2RO1gadg+fs21fi0Uu0OuGNzRKEmgCxoLNzbCdoprLwjfmZwzUrpUNfJPaVRwBpDY47A17yYEGWyRelnQ==" - }, - "@babel/template": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", - "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.2.2", - "@babel/types": "^7.2.2" - } - }, - "@babel/traverse": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz", - "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.2.2", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.0.0", - "@babel/parser": "^7.2.3", - "@babel/types": "^7.2.2", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.10" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "globals": { - "version": "11.10.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.10.0.tgz", - "integrity": "sha512-0GZF1RiPKU97IHUO5TORo9w1PwrH/NBPl+fS7oMLdaTRiYmYbwK4NWoZWrAdd0/abG9R2BU+OiwyQpTpE6pdfQ==" - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } - } - }, - "@babel/types": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.2.tgz", - "integrity": "sha512-3Y6H8xlUlpbGR+XvawiH0UXehqydTmNmEpozWcXymqwcrwYAl5KMvKtQ+TF6f6E08V6Jur7v/ykdDSF+WDEIXQ==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.10", - "to-fast-properties": "^2.0.0" - }, - "dependencies": { - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true } } }, @@ -1544,911 +1434,13 @@ } }, "bip32-utils": { - "version": "github:Bitcoin-com/bip32-utils#966fb8f0e0d4c667e4ee89adfa20c2078d66887c", - "from": "github:Bitcoin-com/bip32-utils#0.13.0", + "version": "github:Bitcoin-com/bip32-utils#b8a33ebd0a0ac39de7cd987e5c3f77a8c5d84e58", + "from": "github:Bitcoin-com/bip32-utils#0.13.1", "requires": { "keccak": "^1.3.0", "nyc": "*", "standard": "^11.0.1", "tape": "*" - }, - "dependencies": { - "nyc": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-13.2.0.tgz", - "integrity": "sha512-gQBlOqvfpYt9b2PZ7qElrHWt8x4y8ApNfbMBoDPdl3sY4/4RJwCxDGTSqhA9RnaguZjS5nW7taW8oToe86JLgQ==", - "requires": { - "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^3.0.1", - "convert-source-map": "^1.6.0", - "find-cache-dir": "^2.0.0", - "find-up": "^3.0.0", - "foreground-child": "^1.5.6", - "glob": "^7.1.3", - "istanbul-lib-coverage": "^2.0.3", - "istanbul-lib-hook": "^2.0.3", - "istanbul-lib-instrument": "^3.0.1", - "istanbul-lib-report": "^2.0.4", - "istanbul-lib-source-maps": "^3.0.2", - "istanbul-reports": "^2.1.0", - "make-dir": "^1.3.0", - "merge-source-map": "^1.1.0", - "resolve-from": "^4.0.0", - "rimraf": "^2.6.3", - "signal-exit": "^3.0.2", - "spawn-wrap": "^1.4.2", - "test-exclude": "^5.1.0", - "uuid": "^3.3.2", - "yargs": "^12.0.5", - "yargs-parser": "^11.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "bundled": true - }, - "append-transform": { - "version": "1.0.0", - "bundled": true, - "requires": { - "default-require-extensions": "^2.0.0" - } - }, - "archy": { - "version": "1.0.0", - "bundled": true - }, - "arrify": { - "version": "1.0.1", - "bundled": true - }, - "async": { - "version": "2.6.1", - "bundled": true, - "requires": { - "lodash": "^4.17.10" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "builtin-modules": { - "version": "1.1.1", - "bundled": true - }, - "caching-transform": { - "version": "3.0.1", - "bundled": true, - "requires": { - "hasha": "^3.0.0", - "make-dir": "^1.3.0", - "package-hash": "^3.0.0", - "write-file-atomic": "^2.3.0" - } - }, - "camelcase": { - "version": "5.0.0", - "bundled": true - }, - "cliui": { - "version": "4.1.0", - "bundled": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true - }, - "commander": { - "version": "2.17.1", - "bundled": true, - "optional": true - }, - "commondir": { - "version": "1.0.1", - "bundled": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true - }, - "convert-source-map": { - "version": "1.6.0", - "bundled": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cross-spawn": { - "version": "4.0.2", - "bundled": true, - "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "debug": { - "version": "4.1.1", - "bundled": true, - "requires": { - "ms": "^2.1.1" - } - }, - "decamelize": { - "version": "1.2.0", - "bundled": true - }, - "default-require-extensions": { - "version": "2.0.0", - "bundled": true, - "requires": { - "strip-bom": "^3.0.0" - } - }, - "end-of-stream": { - "version": "1.4.1", - "bundled": true, - "requires": { - "once": "^1.4.0" - } - }, - "error-ex": { - "version": "1.3.2", - "bundled": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es6-error": { - "version": "4.1.1", - "bundled": true - }, - "execa": { - "version": "1.0.0", - "bundled": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.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" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "bundled": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - } - } - }, - "find-cache-dir": { - "version": "2.0.0", - "bundled": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "bundled": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "foreground-child": { - "version": "1.5.6", - "bundled": true, - "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true - }, - "get-caller-file": { - "version": "1.0.3", - "bundled": true - }, - "get-stream": { - "version": "4.1.0", - "bundled": true, - "requires": { - "pump": "^3.0.0" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "requires": { - "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": { - "version": "4.1.15", - "bundled": true - }, - "handlebars": { - "version": "4.0.12", - "bundled": true, - "requires": { - "async": "^2.5.0", - "optimist": "^0.6.1", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true - } - } - }, - "has-flag": { - "version": "3.0.0", - "bundled": true - }, - "hasha": { - "version": "3.0.0", - "bundled": true, - "requires": { - "is-stream": "^1.0.1" - } - }, - "hosted-git-info": { - "version": "2.7.1", - "bundled": true - }, - "imurmurhash": { - "version": "0.1.4", - "bundled": true - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true - }, - "invert-kv": { - "version": "2.0.0", - "bundled": true - }, - "is-arrayish": { - "version": "0.2.1", - "bundled": true - }, - "is-builtin-module": { - "version": "1.0.0", - "bundled": true, - "requires": { - "builtin-modules": "^1.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "bundled": true - }, - "is-stream": { - "version": "1.1.0", - "bundled": true - }, - "isexe": { - "version": "2.0.0", - "bundled": true - }, - "istanbul-lib-coverage": { - "version": "2.0.3", - "bundled": true - }, - "istanbul-lib-hook": { - "version": "2.0.3", - "bundled": true, - "requires": { - "append-transform": "^1.0.0" - } - }, - "istanbul-lib-report": { - "version": "2.0.4", - "bundled": true, - "requires": { - "istanbul-lib-coverage": "^2.0.3", - "make-dir": "^1.3.0", - "supports-color": "^6.0.0" - }, - "dependencies": { - "supports-color": { - "version": "6.1.0", - "bundled": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "3.0.2", - "bundled": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^2.0.3", - "make-dir": "^1.3.0", - "rimraf": "^2.6.2", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true - } - } - }, - "istanbul-reports": { - "version": "2.1.0", - "bundled": true, - "requires": { - "handlebars": "^4.0.11" - } - }, - "json-parse-better-errors": { - "version": "1.0.2", - "bundled": true - }, - "lcid": { - "version": "2.0.0", - "bundled": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, - "load-json-file": { - "version": "4.0.0", - "bundled": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "bundled": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.11", - "bundled": true - }, - "lodash.flattendeep": { - "version": "4.4.0", - "bundled": true - }, - "lru-cache": { - "version": "4.1.5", - "bundled": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "make-dir": { - "version": "1.3.0", - "bundled": true, - "requires": { - "pify": "^3.0.0" - } - }, - "map-age-cleaner": { - "version": "0.1.3", - "bundled": true, - "requires": { - "p-defer": "^1.0.0" - } - }, - "mem": { - "version": "4.0.0", - "bundled": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^1.0.0", - "p-is-promise": "^1.1.0" - } - }, - "merge-source-map": { - "version": "1.1.0", - "bundled": true, - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true - } - } - }, - "mimic-fn": { - "version": "1.2.0", - "bundled": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.10", - "bundled": true - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "bundled": true - } - } - }, - "ms": { - "version": "2.1.1", - "bundled": true - }, - "nice-try": { - "version": "1.0.5", - "bundled": true - }, - "normalize-package-data": { - "version": "2.4.0", - "bundled": true, - "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "npm-run-path": { - "version": "2.0.2", - "bundled": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "requires": { - "wrappy": "1" - } - }, - "optimist": { - "version": "0.6.1", - "bundled": true, - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true - }, - "os-locale": { - "version": "3.1.0", - "bundled": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, - "p-defer": { - "version": "1.0.0", - "bundled": true - }, - "p-finally": { - "version": "1.0.0", - "bundled": true - }, - "p-is-promise": { - "version": "1.1.0", - "bundled": true - }, - "p-limit": { - "version": "2.1.0", - "bundled": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "bundled": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.0.0", - "bundled": true - }, - "package-hash": { - "version": "3.0.0", - "bundled": true, - "requires": { - "graceful-fs": "^4.1.15", - "hasha": "^3.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "bundled": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "path-exists": { - "version": "3.0.0", - "bundled": true - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true - }, - "path-key": { - "version": "2.0.1", - "bundled": true - }, - "path-type": { - "version": "3.0.0", - "bundled": true, - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "bundled": true - }, - "pkg-dir": { - "version": "3.0.0", - "bundled": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "pseudomap": { - "version": "1.0.2", - "bundled": true - }, - "pump": { - "version": "3.0.0", - "bundled": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "read-pkg": { - "version": "3.0.0", - "bundled": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "4.0.0", - "bundled": true, - "requires": { - "find-up": "^3.0.0", - "read-pkg": "^3.0.0" - } - }, - "release-zalgo": { - "version": "1.0.0", - "bundled": true, - "requires": { - "es6-error": "^4.0.1" - } - }, - "require-directory": { - "version": "2.1.1", - "bundled": true - }, - "require-main-filename": { - "version": "1.0.1", - "bundled": true - }, - "resolve-from": { - "version": "4.0.0", - "bundled": true - }, - "rimraf": { - "version": "2.6.3", - "bundled": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true - }, - "semver": { - "version": "5.6.0", - "bundled": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true - }, - "shebang-command": { - "version": "1.2.0", - "bundled": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "bundled": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true - }, - "spawn-wrap": { - "version": "1.4.2", - "bundled": true, - "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" - } - }, - "spdx-correct": { - "version": "3.1.0", - "bundled": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.2.0", - "bundled": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "bundled": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.3", - "bundled": true - }, - "string-width": { - "version": "2.1.1", - "bundled": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "bundled": true - }, - "strip-eof": { - "version": "1.0.0", - "bundled": true - }, - "test-exclude": { - "version": "5.1.0", - "bundled": true, - "requires": { - "arrify": "^1.0.1", - "minimatch": "^3.0.4", - "read-pkg-up": "^4.0.0", - "require-main-filename": "^1.0.1" - } - }, - "uglify-js": { - "version": "3.4.9", - "bundled": true, - "optional": true, - "requires": { - "commander": "~2.17.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true, - "optional": true - } - } - }, - "uuid": { - "version": "3.3.2", - "bundled": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "bundled": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "bundled": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "bundled": true - }, - "wordwrap": { - "version": "0.0.3", - "bundled": true - }, - "wrap-ansi": { - "version": "2.1.0", - "bundled": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "bundled": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true - }, - "write-file-atomic": { - "version": "2.4.2", - "bundled": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "y18n": { - "version": "4.0.0", - "bundled": true - }, - "yallist": { - "version": "2.1.2", - "bundled": true - }, - "yargs": { - "version": "12.0.5", - "bundled": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.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 || ^4.0.0", - "yargs-parser": "^11.1.1" - } - }, - "yargs-parser": { - "version": "11.1.1", - "bundled": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - } } }, "bip38": { @@ -6084,25 +5076,6 @@ "lodash.uniqby": "^4.7.0" } }, - "istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-dKWuzRGCs4G+67VfW9pBFFz2Jpi4vSp/k7zBcJ888ofV5Mi1g5CUML5GvMvV6u9Cjybftu+E8Cgp+k0dI1E5lw==" - }, - "istanbul-lib-instrument": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.1.0.tgz", - "integrity": "sha512-ooVllVGT38HIk8MxDj/OIHXSYvH+1tq/Vb38s8ixt9GoJadXska4WkGY+0wkmtYCZNYtaARniH/DixUGGLZ0uA==", - "requires": { - "@babel/generator": "^7.0.0", - "@babel/parser": "^7.0.0", - "@babel/template": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", - "istanbul-lib-coverage": "^2.0.3", - "semver": "^5.5.0" - } - }, "java-properties": { "version": "0.2.10", "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-0.2.10.tgz", @@ -10074,7 +9047,6 @@ "version": "11.9.0", "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.9.0.tgz", "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", - "dev": true, "requires": { "archy": "^1.0.0", "arrify": "^1.0.1", @@ -10108,7 +9080,6 @@ "align-text": { "version": "0.1.4", "bundled": true, - "dev": true, "optional": true, "requires": { "kind-of": "^3.0.2", @@ -10118,76 +9089,62 @@ }, "amdefine": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true, - "dev": true + "bundled": true }, "ansi-styles": { "version": "2.2.1", - "bundled": true, - "dev": true + "bundled": true }, "append-transform": { "version": "0.4.0", "bundled": true, - "dev": true, "requires": { "default-require-extensions": "^1.0.0" } }, "archy": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "arr-diff": { "version": "4.0.0", - "bundled": true, - "dev": true + "bundled": true }, "arr-flatten": { "version": "1.1.0", - "bundled": true, - "dev": true + "bundled": true }, "arr-union": { "version": "3.1.0", - "bundled": true, - "dev": true + "bundled": true }, "array-unique": { "version": "0.3.2", - "bundled": true, - "dev": true + "bundled": true }, "arrify": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "assign-symbols": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "async": { "version": "1.5.2", - "bundled": true, - "dev": true + "bundled": true }, "atob": { "version": "2.1.1", - "bundled": true, - "dev": true + "bundled": true }, "babel-code-frame": { "version": "6.26.0", "bundled": true, - "dev": true, "requires": { "chalk": "^1.1.3", "esutils": "^2.0.2", @@ -10197,7 +9154,6 @@ "babel-generator": { "version": "6.26.1", "bundled": true, - "dev": true, "requires": { "babel-messages": "^6.23.0", "babel-runtime": "^6.26.0", @@ -10212,7 +9168,6 @@ "babel-messages": { "version": "6.23.0", "bundled": true, - "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -10220,7 +9175,6 @@ "babel-runtime": { "version": "6.26.0", "bundled": true, - "dev": true, "requires": { "core-js": "^2.4.0", "regenerator-runtime": "^0.11.0" @@ -10229,7 +9183,6 @@ "babel-template": { "version": "6.26.0", "bundled": true, - "dev": true, "requires": { "babel-runtime": "^6.26.0", "babel-traverse": "^6.26.0", @@ -10241,7 +9194,6 @@ "babel-traverse": { "version": "6.26.0", "bundled": true, - "dev": true, "requires": { "babel-code-frame": "^6.26.0", "babel-messages": "^6.23.0", @@ -10257,7 +9209,6 @@ "babel-types": { "version": "6.26.0", "bundled": true, - "dev": true, "requires": { "babel-runtime": "^6.26.0", "esutils": "^2.0.2", @@ -10267,18 +9218,15 @@ }, "babylon": { "version": "6.18.0", - "bundled": true, - "dev": true + "bundled": true }, "balanced-match": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "base": { "version": "0.11.2", "bundled": true, - "dev": true, "requires": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", @@ -10292,7 +9240,6 @@ "define-property": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -10300,7 +9247,6 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -10308,7 +9254,6 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -10316,7 +9261,6 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -10325,20 +9269,17 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "brace-expansion": { "version": "1.1.11", "bundled": true, - "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -10347,7 +9288,6 @@ "braces": { "version": "2.3.2", "bundled": true, - "dev": true, "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -10364,7 +9304,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -10373,13 +9312,11 @@ }, "builtin-modules": { "version": "1.1.1", - "bundled": true, - "dev": true + "bundled": true }, "cache-base": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", @@ -10394,15 +9331,13 @@ "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "caching-transform": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "md5-hex": "^1.2.0", "mkdirp": "^0.5.1", @@ -10412,13 +9347,11 @@ "camelcase": { "version": "1.2.1", "bundled": true, - "dev": true, "optional": true }, "center-align": { "version": "0.1.3", "bundled": true, - "dev": true, "optional": true, "requires": { "align-text": "^0.1.3", @@ -10428,7 +9361,6 @@ "chalk": { "version": "1.1.3", "bundled": true, - "dev": true, "requires": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -10440,7 +9372,6 @@ "class-utils": { "version": "0.3.6", "bundled": true, - "dev": true, "requires": { "arr-union": "^3.1.0", "define-property": "^0.2.5", @@ -10451,22 +9382,19 @@ "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { "is-descriptor": "^0.1.0" } }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "cliui": { "version": "2.1.0", "bundled": true, - "dev": true, "optional": true, "requires": { "center-align": "^0.1.1", @@ -10477,20 +9405,17 @@ "wordwrap": { "version": "0.0.2", "bundled": true, - "dev": true, "optional": true } } }, "code-point-at": { "version": "1.1.0", - "bundled": true, - "dev": true + "bundled": true }, "collection-visit": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" @@ -10498,38 +9423,31 @@ }, "commondir": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "component-emitter": { "version": "1.2.1", - "bundled": true, - "dev": true + "bundled": true }, "concat-map": { "version": "0.0.1", - "bundled": true, - "dev": true + "bundled": true }, "convert-source-map": { "version": "1.5.1", - "bundled": true, - "dev": true + "bundled": true }, "copy-descriptor": { "version": "0.1.1", - "bundled": true, - "dev": true + "bundled": true }, "core-js": { "version": "2.5.6", - "bundled": true, - "dev": true + "bundled": true }, "cross-spawn": { "version": "4.0.2", "bundled": true, - "dev": true, "requires": { "lru-cache": "^4.0.1", "which": "^1.2.9" @@ -10538,30 +9456,25 @@ "debug": { "version": "2.6.9", "bundled": true, - "dev": true, "requires": { "ms": "2.0.0" } }, "debug-log": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "decamelize": { "version": "1.2.0", - "bundled": true, - "dev": true + "bundled": true }, "decode-uri-component": { "version": "0.2.0", - "bundled": true, - "dev": true + "bundled": true }, "default-require-extensions": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "strip-bom": "^2.0.0" } @@ -10569,7 +9482,6 @@ "define-property": { "version": "2.0.2", "bundled": true, - "dev": true, "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" @@ -10578,7 +9490,6 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -10586,7 +9497,6 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -10594,7 +9504,6 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -10603,20 +9512,17 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "detect-indent": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "repeating": "^2.0.0" } @@ -10624,25 +9530,21 @@ "error-ex": { "version": "1.3.1", "bundled": true, - "dev": true, "requires": { "is-arrayish": "^0.2.1" } }, "escape-string-regexp": { "version": "1.0.5", - "bundled": true, - "dev": true + "bundled": true }, "esutils": { "version": "2.0.2", - "bundled": true, - "dev": true + "bundled": true }, "execa": { "version": "0.7.0", "bundled": true, - "dev": true, "requires": { "cross-spawn": "^5.0.1", "get-stream": "^3.0.0", @@ -10656,7 +9558,6 @@ "cross-spawn": { "version": "5.1.0", "bundled": true, - "dev": true, "requires": { "lru-cache": "^4.0.1", "shebang-command": "^1.2.0", @@ -10668,7 +9569,6 @@ "expand-brackets": { "version": "2.1.4", "bundled": true, - "dev": true, "requires": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -10682,7 +9582,6 @@ "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -10690,7 +9589,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -10700,7 +9598,6 @@ "extend-shallow": { "version": "3.0.2", "bundled": true, - "dev": true, "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" @@ -10709,7 +9606,6 @@ "is-extendable": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "is-plain-object": "^2.0.4" } @@ -10719,7 +9615,6 @@ "extglob": { "version": "2.0.4", "bundled": true, - "dev": true, "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -10734,7 +9629,6 @@ "define-property": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -10742,7 +9636,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -10750,7 +9643,6 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -10758,7 +9650,6 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -10766,7 +9657,6 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -10775,15 +9665,13 @@ }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "fill-range": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -10794,7 +9682,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -10804,7 +9691,6 @@ "find-cache-dir": { "version": "0.1.1", "bundled": true, - "dev": true, "requires": { "commondir": "^1.0.1", "mkdirp": "^0.5.1", @@ -10814,20 +9700,17 @@ "find-up": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { "locate-path": "^2.0.0" } }, "for-in": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "foreground-child": { "version": "1.5.6", "bundled": true, - "dev": true, "requires": { "cross-spawn": "^4", "signal-exit": "^3.0.0" @@ -10836,35 +9719,29 @@ "fragment-cache": { "version": "0.2.1", "bundled": true, - "dev": true, "requires": { "map-cache": "^0.2.2" } }, "fs.realpath": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "get-caller-file": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "get-stream": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true }, "get-value": { "version": "2.0.6", - "bundled": true, - "dev": true + "bundled": true }, "glob": { "version": "7.1.2", "bundled": true, - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -10876,18 +9753,15 @@ }, "globals": { "version": "9.18.0", - "bundled": true, - "dev": true + "bundled": true }, "graceful-fs": { "version": "4.1.11", - "bundled": true, - "dev": true + "bundled": true }, "handlebars": { "version": "4.0.11", "bundled": true, - "dev": true, "requires": { "async": "^1.4.0", "optimist": "^0.6.1", @@ -10898,7 +9772,6 @@ "source-map": { "version": "0.4.4", "bundled": true, - "dev": true, "requires": { "amdefine": ">=0.0.4" } @@ -10908,20 +9781,17 @@ "has-ansi": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "ansi-regex": "^2.0.0" } }, "has-flag": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "has-value": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "get-value": "^2.0.6", "has-values": "^1.0.0", @@ -10930,15 +9800,13 @@ "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "has-values": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "is-number": "^3.0.0", "kind-of": "^4.0.0" @@ -10947,7 +9815,6 @@ "is-number": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -10955,7 +9822,6 @@ "kind-of": { "version": "3.2.2", "bundled": true, - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -10965,7 +9831,6 @@ "kind-of": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -10974,18 +9839,15 @@ }, "hosted-git-info": { "version": "2.6.0", - "bundled": true, - "dev": true + "bundled": true }, "imurmurhash": { "version": "0.1.4", - "bundled": true, - "dev": true + "bundled": true }, "inflight": { "version": "1.0.6", "bundled": true, - "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -10993,44 +9855,37 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, - "dev": true + "bundled": true }, "invariant": { "version": "2.2.4", "bundled": true, - "dev": true, "requires": { "loose-envify": "^1.0.0" } }, "invert-kv": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "is-accessor-descriptor": { "version": "0.1.6", "bundled": true, - "dev": true, "requires": { "kind-of": "^3.0.2" } }, "is-arrayish": { "version": "0.2.1", - "bundled": true, - "dev": true + "bundled": true }, "is-buffer": { "version": "1.1.6", - "bundled": true, - "dev": true + "bundled": true }, "is-builtin-module": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "builtin-modules": "^1.0.0" } @@ -11038,7 +9893,6 @@ "is-data-descriptor": { "version": "0.1.4", "bundled": true, - "dev": true, "requires": { "kind-of": "^3.0.2" } @@ -11046,7 +9900,6 @@ "is-descriptor": { "version": "0.1.6", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -11055,33 +9908,28 @@ "dependencies": { "kind-of": { "version": "5.1.0", - "bundled": true, - "dev": true + "bundled": true } } }, "is-extendable": { "version": "0.1.1", - "bundled": true, - "dev": true + "bundled": true }, "is-finite": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "is-number": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "^3.0.2" } @@ -11089,72 +9937,60 @@ "is-odd": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "is-number": "^4.0.0" }, "dependencies": { "is-number": { "version": "4.0.0", - "bundled": true, - "dev": true + "bundled": true } } }, "is-plain-object": { "version": "2.0.4", "bundled": true, - "dev": true, "requires": { "isobject": "^3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "is-stream": { "version": "1.1.0", - "bundled": true, - "dev": true + "bundled": true }, "is-utf8": { "version": "0.2.1", - "bundled": true, - "dev": true + "bundled": true }, "is-windows": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "isarray": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "isexe": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true }, "istanbul-lib-coverage": { "version": "1.2.0", - "bundled": true, - "dev": true + "bundled": true }, "istanbul-lib-hook": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "append-transform": "^0.4.0" } @@ -11162,7 +9998,6 @@ "istanbul-lib-instrument": { "version": "1.10.1", "bundled": true, - "dev": true, "requires": { "babel-generator": "^6.18.0", "babel-template": "^6.16.0", @@ -11176,7 +10011,6 @@ "istanbul-lib-report": { "version": "1.1.3", "bundled": true, - "dev": true, "requires": { "istanbul-lib-coverage": "^1.1.2", "mkdirp": "^0.5.1", @@ -11187,7 +10021,6 @@ "supports-color": { "version": "3.2.3", "bundled": true, - "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -11197,7 +10030,6 @@ "istanbul-lib-source-maps": { "version": "1.2.3", "bundled": true, - "dev": true, "requires": { "debug": "^3.1.0", "istanbul-lib-coverage": "^1.1.2", @@ -11209,7 +10041,6 @@ "debug": { "version": "3.1.0", "bundled": true, - "dev": true, "requires": { "ms": "2.0.0" } @@ -11219,25 +10050,21 @@ "istanbul-reports": { "version": "1.4.0", "bundled": true, - "dev": true, "requires": { "handlebars": "^4.0.3" } }, "js-tokens": { "version": "3.0.2", - "bundled": true, - "dev": true + "bundled": true }, "jsesc": { "version": "1.3.0", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "3.2.2", "bundled": true, - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -11245,13 +10072,11 @@ "lazy-cache": { "version": "1.0.4", "bundled": true, - "dev": true, "optional": true }, "lcid": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "invert-kv": "^1.0.0" } @@ -11259,7 +10084,6 @@ "load-json-file": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "graceful-fs": "^4.1.2", "parse-json": "^2.2.0", @@ -11271,7 +10095,6 @@ "locate-path": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" @@ -11279,26 +10102,22 @@ "dependencies": { "path-exists": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true } } }, "lodash": { "version": "4.17.10", - "bundled": true, - "dev": true + "bundled": true }, "longest": { "version": "1.0.1", "bundled": true, - "dev": true, "optional": true }, "loose-envify": { "version": "1.3.1", "bundled": true, - "dev": true, "requires": { "js-tokens": "^3.0.0" } @@ -11306,7 +10125,6 @@ "lru-cache": { "version": "4.1.3", "bundled": true, - "dev": true, "requires": { "pseudomap": "^1.0.2", "yallist": "^2.1.2" @@ -11314,13 +10132,11 @@ }, "map-cache": { "version": "0.2.2", - "bundled": true, - "dev": true + "bundled": true }, "map-visit": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "object-visit": "^1.0.0" } @@ -11328,20 +10144,17 @@ "md5-hex": { "version": "1.3.0", "bundled": true, - "dev": true, "requires": { "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { "version": "0.1.1", - "bundled": true, - "dev": true + "bundled": true }, "mem": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "mimic-fn": "^1.0.0" } @@ -11349,22 +10162,19 @@ "merge-source-map": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "source-map": "^0.6.1" }, "dependencies": { "source-map": { "version": "0.6.1", - "bundled": true, - "dev": true + "bundled": true } } }, "micromatch": { "version": "3.1.10", "bundled": true, - "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -11383,33 +10193,28 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "mimic-fn": { "version": "1.2.0", - "bundled": true, - "dev": true + "bundled": true }, "minimatch": { "version": "3.0.4", "bundled": true, - "dev": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true, - "dev": true + "bundled": true }, "mixin-deep": { "version": "1.3.1", "bundled": true, - "dev": true, "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" @@ -11418,7 +10223,6 @@ "is-extendable": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "is-plain-object": "^2.0.4" } @@ -11428,20 +10232,17 @@ "mkdirp": { "version": "0.5.1", "bundled": true, - "dev": true, "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "nanomatch": { "version": "1.2.9", "bundled": true, - "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -11459,25 +10260,21 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true, - "dev": true + "bundled": true }, "array-unique": { "version": "0.3.2", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "normalize-package-data": { "version": "2.4.0", "bundled": true, - "dev": true, "requires": { "hosted-git-info": "^2.1.4", "is-builtin-module": "^1.0.0", @@ -11488,25 +10285,21 @@ "npm-run-path": { "version": "2.0.2", "bundled": true, - "dev": true, "requires": { "path-key": "^2.0.0" } }, "number-is-nan": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "object-assign": { "version": "4.1.1", - "bundled": true, - "dev": true + "bundled": true }, "object-copy": { "version": "0.1.0", "bundled": true, - "dev": true, "requires": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", @@ -11516,7 +10309,6 @@ "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -11526,37 +10318,32 @@ "object-visit": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "isobject": "^3.0.0" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "object.pick": { "version": "1.3.0", "bundled": true, - "dev": true, "requires": { "isobject": "^3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "once": { "version": "1.4.0", "bundled": true, - "dev": true, "requires": { "wrappy": "1" } @@ -11564,7 +10351,6 @@ "optimist": { "version": "0.6.1", "bundled": true, - "dev": true, "requires": { "minimist": "~0.0.1", "wordwrap": "~0.0.2" @@ -11572,13 +10358,11 @@ }, "os-homedir": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "os-locale": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { "execa": "^0.7.0", "lcid": "^1.0.0", @@ -11587,13 +10371,11 @@ }, "p-finally": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "p-limit": { "version": "1.2.0", "bundled": true, - "dev": true, "requires": { "p-try": "^1.0.0" } @@ -11601,56 +10383,47 @@ "p-locate": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "p-limit": "^1.1.0" } }, "p-try": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "parse-json": { "version": "2.2.0", "bundled": true, - "dev": true, "requires": { "error-ex": "^1.2.0" } }, "pascalcase": { "version": "0.1.1", - "bundled": true, - "dev": true + "bundled": true }, "path-exists": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "path-key": { "version": "2.0.1", - "bundled": true, - "dev": true + "bundled": true }, "path-parse": { "version": "1.0.5", - "bundled": true, - "dev": true + "bundled": true }, "path-type": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "graceful-fs": "^4.1.2", "pify": "^2.0.0", @@ -11659,18 +10432,15 @@ }, "pify": { "version": "2.3.0", - "bundled": true, - "dev": true + "bundled": true }, "pinkie": { "version": "2.0.4", - "bundled": true, - "dev": true + "bundled": true }, "pinkie-promise": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "pinkie": "^2.0.0" } @@ -11678,7 +10448,6 @@ "pkg-dir": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "find-up": "^1.0.0" }, @@ -11686,7 +10455,6 @@ "find-up": { "version": "1.1.2", "bundled": true, - "dev": true, "requires": { "path-exists": "^2.0.0", "pinkie-promise": "^2.0.0" @@ -11696,18 +10464,15 @@ }, "posix-character-classes": { "version": "0.1.1", - "bundled": true, - "dev": true + "bundled": true }, "pseudomap": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "read-pkg": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "load-json-file": "^1.0.0", "normalize-package-data": "^2.3.2", @@ -11717,7 +10482,6 @@ "read-pkg-up": { "version": "1.0.1", "bundled": true, - "dev": true, "requires": { "find-up": "^1.0.0", "read-pkg": "^1.0.0" @@ -11726,7 +10490,6 @@ "find-up": { "version": "1.1.2", "bundled": true, - "dev": true, "requires": { "path-exists": "^2.0.0", "pinkie-promise": "^2.0.0" @@ -11736,13 +10499,11 @@ }, "regenerator-runtime": { "version": "0.11.1", - "bundled": true, - "dev": true + "bundled": true }, "regex-not": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" @@ -11750,51 +10511,42 @@ }, "repeat-element": { "version": "1.1.2", - "bundled": true, - "dev": true + "bundled": true }, "repeat-string": { "version": "1.6.1", - "bundled": true, - "dev": true + "bundled": true }, "repeating": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-finite": "^1.0.0" } }, "require-directory": { "version": "2.1.1", - "bundled": true, - "dev": true + "bundled": true }, "require-main-filename": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "resolve-from": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "resolve-url": { "version": "0.2.1", - "bundled": true, - "dev": true + "bundled": true }, "ret": { "version": "0.1.15", - "bundled": true, - "dev": true + "bundled": true }, "right-align": { "version": "0.1.3", "bundled": true, - "dev": true, "optional": true, "requires": { "align-text": "^0.1.1" @@ -11803,7 +10555,6 @@ "rimraf": { "version": "2.6.2", "bundled": true, - "dev": true, "requires": { "glob": "^7.0.5" } @@ -11811,25 +10562,21 @@ "safe-regex": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "ret": "~0.1.10" } }, "semver": { "version": "5.5.0", - "bundled": true, - "dev": true + "bundled": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "set-value": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -11840,7 +10587,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -11850,30 +10596,25 @@ "shebang-command": { "version": "1.2.0", "bundled": true, - "dev": true, "requires": { "shebang-regex": "^1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, - "dev": true + "bundled": true }, "slide": { "version": "1.1.6", - "bundled": true, - "dev": true + "bundled": true }, "snapdragon": { "version": "0.8.2", "bundled": true, - "dev": true, "requires": { "base": "^0.11.1", "debug": "^2.2.0", @@ -11888,7 +10629,6 @@ "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -11896,7 +10636,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -11906,7 +10645,6 @@ "snapdragon-node": { "version": "2.1.1", "bundled": true, - "dev": true, "requires": { "define-property": "^1.0.0", "isobject": "^3.0.0", @@ -11916,7 +10654,6 @@ "define-property": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -11924,7 +10661,6 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -11932,7 +10668,6 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -11940,7 +10675,6 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -11949,33 +10683,28 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "snapdragon-util": { "version": "3.0.1", "bundled": true, - "dev": true, "requires": { "kind-of": "^3.2.0" } }, "source-map": { "version": "0.5.7", - "bundled": true, - "dev": true + "bundled": true }, "source-map-resolve": { "version": "0.5.1", "bundled": true, - "dev": true, "requires": { "atob": "^2.0.0", "decode-uri-component": "^0.2.0", @@ -11986,13 +10715,11 @@ }, "source-map-url": { "version": "0.4.0", - "bundled": true, - "dev": true + "bundled": true }, "spawn-wrap": { "version": "1.4.2", "bundled": true, - "dev": true, "requires": { "foreground-child": "^1.5.6", "mkdirp": "^0.5.0", @@ -12005,7 +10732,6 @@ "spdx-correct": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -12013,13 +10739,11 @@ }, "spdx-exceptions": { "version": "2.1.0", - "bundled": true, - "dev": true + "bundled": true }, "spdx-expression-parse": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" @@ -12027,13 +10751,11 @@ }, "spdx-license-ids": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true }, "split-string": { "version": "3.1.0", "bundled": true, - "dev": true, "requires": { "extend-shallow": "^3.0.0" } @@ -12041,7 +10763,6 @@ "static-extend": { "version": "0.1.2", "bundled": true, - "dev": true, "requires": { "define-property": "^0.2.5", "object-copy": "^0.1.0" @@ -12050,7 +10771,6 @@ "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -12060,7 +10780,6 @@ "string-width": { "version": "2.1.1", "bundled": true, - "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" @@ -12068,13 +10787,11 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true }, "strip-ansi": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "ansi-regex": "^3.0.0" } @@ -12084,7 +10801,6 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, - "dev": true, "requires": { "ansi-regex": "^2.0.0" } @@ -12092,25 +10808,21 @@ "strip-bom": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "is-utf8": "^0.2.0" } }, "strip-eof": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "supports-color": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "test-exclude": { "version": "4.2.1", "bundled": true, - "dev": true, "requires": { "arrify": "^1.0.1", "micromatch": "^3.1.8", @@ -12121,18 +10833,15 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true, - "dev": true + "bundled": true }, "array-unique": { "version": "0.3.2", - "bundled": true, - "dev": true + "bundled": true }, "braces": { "version": "2.3.2", "bundled": true, - "dev": true, "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -12149,7 +10858,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -12159,7 +10867,6 @@ "expand-brackets": { "version": "2.1.4", "bundled": true, - "dev": true, "requires": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -12173,7 +10880,6 @@ "define-property": { "version": "0.2.5", "bundled": true, - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -12181,7 +10887,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -12189,7 +10894,6 @@ "is-accessor-descriptor": { "version": "0.1.6", "bundled": true, - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -12197,7 +10901,6 @@ "kind-of": { "version": "3.2.2", "bundled": true, - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -12207,7 +10910,6 @@ "is-data-descriptor": { "version": "0.1.4", "bundled": true, - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -12215,7 +10917,6 @@ "kind-of": { "version": "3.2.2", "bundled": true, - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -12225,7 +10926,6 @@ "is-descriptor": { "version": "0.1.6", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -12234,15 +10934,13 @@ }, "kind-of": { "version": "5.1.0", - "bundled": true, - "dev": true + "bundled": true } } }, "extglob": { "version": "2.0.4", "bundled": true, - "dev": true, "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -12257,7 +10955,6 @@ "define-property": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -12265,7 +10962,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -12275,7 +10971,6 @@ "fill-range": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -12286,7 +10981,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -12296,7 +10990,6 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -12304,7 +10997,6 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -12312,7 +11004,6 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -12322,7 +11013,6 @@ "is-number": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -12330,7 +11020,6 @@ "kind-of": { "version": "3.2.2", "bundled": true, - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -12339,18 +11028,15 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true }, "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true }, "micromatch": { "version": "3.1.10", "bundled": true, - "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -12371,13 +11057,11 @@ }, "to-fast-properties": { "version": "1.0.3", - "bundled": true, - "dev": true + "bundled": true }, "to-object-path": { "version": "0.3.0", "bundled": true, - "dev": true, "requires": { "kind-of": "^3.0.2" } @@ -12385,7 +11069,6 @@ "to-regex": { "version": "3.0.2", "bundled": true, - "dev": true, "requires": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", @@ -12396,7 +11079,6 @@ "to-regex-range": { "version": "2.1.1", "bundled": true, - "dev": true, "requires": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" @@ -12405,7 +11087,6 @@ "is-number": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "kind-of": "^3.0.2" } @@ -12414,13 +11095,11 @@ }, "trim-right": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "uglify-js": { "version": "2.8.29", "bundled": true, - "dev": true, "optional": true, "requires": { "source-map": "~0.5.1", @@ -12431,7 +11110,6 @@ "yargs": { "version": "3.10.0", "bundled": true, - "dev": true, "optional": true, "requires": { "camelcase": "^1.0.2", @@ -12445,13 +11123,11 @@ "uglify-to-browserify": { "version": "1.0.2", "bundled": true, - "dev": true, "optional": true }, "union-value": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", @@ -12462,7 +11138,6 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -12470,7 +11145,6 @@ "set-value": { "version": "0.4.3", "bundled": true, - "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -12483,7 +11157,6 @@ "unset-value": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "has-value": "^0.3.1", "isobject": "^3.0.0" @@ -12492,7 +11165,6 @@ "has-value": { "version": "0.3.1", "bundled": true, - "dev": true, "requires": { "get-value": "^2.0.3", "has-values": "^0.1.4", @@ -12502,7 +11174,6 @@ "isobject": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { "isarray": "1.0.0" } @@ -12511,40 +11182,34 @@ }, "has-values": { "version": "0.1.4", - "bundled": true, - "dev": true + "bundled": true }, "isobject": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true } } }, "urix": { "version": "0.1.0", - "bundled": true, - "dev": true + "bundled": true }, "use": { "version": "3.1.0", "bundled": true, - "dev": true, "requires": { "kind-of": "^6.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, "validate-npm-package-license": { "version": "3.0.3", "bundled": true, - "dev": true, "requires": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -12553,31 +11218,26 @@ "which": { "version": "1.3.0", "bundled": true, - "dev": true, "requires": { "isexe": "^2.0.0" } }, "which-module": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "window-size": { "version": "0.1.0", "bundled": true, - "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "bundled": true, - "dev": true + "bundled": true }, "wrap-ansi": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { "string-width": "^1.0.1", "strip-ansi": "^3.0.1" @@ -12586,7 +11246,6 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "number-is-nan": "^1.0.0" } @@ -12594,7 +11253,6 @@ "string-width": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -12605,13 +11263,11 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "write-file-atomic": { "version": "1.3.4", "bundled": true, - "dev": true, "requires": { "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", @@ -12620,18 +11276,15 @@ }, "y18n": { "version": "3.2.1", - "bundled": true, - "dev": true + "bundled": true }, "yallist": { "version": "2.1.2", - "bundled": true, - "dev": true + "bundled": true }, "yargs": { "version": "11.1.0", "bundled": true, - "dev": true, "requires": { "cliui": "^4.0.0", "decamelize": "^1.1.1", @@ -12649,18 +11302,15 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true }, "camelcase": { "version": "4.1.0", - "bundled": true, - "dev": true + "bundled": true }, "cliui": { "version": "4.1.0", "bundled": true, - "dev": true, "requires": { "string-width": "^2.1.1", "strip-ansi": "^4.0.0", @@ -12670,7 +11320,6 @@ "strip-ansi": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "ansi-regex": "^3.0.0" } @@ -12678,7 +11327,6 @@ "yargs-parser": { "version": "9.0.2", "bundled": true, - "dev": true, "requires": { "camelcase": "^4.1.0" } @@ -12688,15 +11336,13 @@ "yargs-parser": { "version": "8.1.0", "bundled": true, - "dev": true, "requires": { "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { "version": "4.1.0", - "bundled": true, - "dev": true + "bundled": true } } } diff --git a/package.json b/package.json index 105f69a6..8f0176bb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "3.0.10", + "version": "3.0.11", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona @ Bitcoin.com", "contributors": [ @@ -35,7 +35,7 @@ "babel-register": "^6.26.0", "bigi": "^1.4.2", "bip21": "Bitcoin-com/bip21", - "bip32-utils": "Bitcoin-com/bip32-utils#0.13.0", + "bip32-utils": "Bitcoin-com/bip32-utils#0.13.1", "bip38": "^2.0.2", "bip39": "^2.5.0", "bip66": "^1.1.5", From 80b4778b375c8587377c86173685644e0471aea4 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 15 Feb 2019 07:51:51 +0900 Subject: [PATCH 208/480] Accept 'mainnet' as well as 'bitcoincash' for network configs. --- index.js | 2 +- lib/Address.js | 4 ++-- lib/BitcoinCash.js | 4 ++-- lib/ECPair.js | 4 ++-- lib/HDNode.js | 4 ++-- lib/Transaction.js | 22 ---------------------- lib/TransactionBuilder.js | 4 ++-- package.json | 4 ++-- src/Address.js | 5 +++-- src/BitcoinCash.js | 4 ++-- src/ECPair.js | 4 ++-- src/HDNode.js | 5 +++-- src/Transaction.js | 16 ---------------- src/TransactionBuilder.js | 7 ++++--- test/unit/TransactionBuilder.js | 2 +- 15 files changed, 28 insertions(+), 63 deletions(-) diff --git a/index.js b/index.js index fbad6f36..dba31909 100755 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") -program.version("3.0.11 ", "-v, --version") +program.version("3.1.0 ", "-v, --version") program .command("new ") diff --git a/lib/Address.js b/lib/Address.js index 46d321be..f42a00ca 100644 --- a/lib/Address.js +++ b/lib/Address.js @@ -323,10 +323,10 @@ var Address = function () { }, { key: "fromOutputScript", value: function fromOutputScript(scriptPubKey) { - var network = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "bitcoincash"; + var network = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "mainnet"; var netParam = void 0; - if (network !== "bitcoincash") netParam = _bitcoincashjsLib2.default.networks.testnet; + if (network !== "bitcoincash" && network !== "mainnet") netParam = _bitcoincashjsLib2.default.networks.testnet; var regtest = network === "bchreg"; diff --git a/lib/BitcoinCash.js b/lib/BitcoinCash.js index ee95f73c..4ce73fd9 100644 --- a/lib/BitcoinCash.js +++ b/lib/BitcoinCash.js @@ -107,9 +107,9 @@ var BitcoinCash = function () { }, { key: "signMessageWithPrivKey", value: function signMessageWithPrivKey(privateKeyWIF, message) { - var network = privateKeyWIF.charAt(0) === "c" ? "testnet" : "bitcoincash"; + var network = privateKeyWIF.charAt(0) === "c" ? "testnet" : "mainnet"; var bitcoincash = void 0; - if (network === "bitcoincash") bitcoincash = _coininfo2.default.bitcoincash.main;else bitcoincash = _coininfo2.default.bitcoincash.test; + if (network === "mainnet") bitcoincash = _coininfo2.default.bitcoincash.main;else bitcoincash = _coininfo2.default.bitcoincash.test; var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); var keyPair = _bitcoincashjsLib2.default.ECPair.fromWIF(privateKeyWIF, bitcoincashBitcoinJSLib); diff --git a/lib/ECPair.js b/lib/ECPair.js index 750f8120..20dc78ae 100644 --- a/lib/ECPair.js +++ b/lib/ECPair.js @@ -32,10 +32,10 @@ var ECPair = function () { key: "fromWIF", value: function fromWIF(privateKeyWIF) { var network = void 0; - if (privateKeyWIF[0] === "L" || privateKeyWIF[0] === "K") network = "bitcoincash";else if (privateKeyWIF[0] === "c") network = "testnet"; + if (privateKeyWIF[0] === "L" || privateKeyWIF[0] === "K") network = "mainnet";else if (privateKeyWIF[0] === "c") network = "testnet"; var bitcoincash = void 0; - if (network === "bitcoincash") bitcoincash = _coininfo2.default.bitcoincash.main;else bitcoincash = _coininfo2.default.bitcoincash.test; + if (network === "mainnet") bitcoincash = _coininfo2.default.bitcoincash.main;else bitcoincash = _coininfo2.default.bitcoincash.test; var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); diff --git a/lib/HDNode.js b/lib/HDNode.js index 85831de0..53a5d75a 100644 --- a/lib/HDNode.js +++ b/lib/HDNode.js @@ -32,10 +32,10 @@ var HDNode = function () { _createClass(HDNode, [{ key: "fromSeed", value: function fromSeed(rootSeedBuffer) { - var network = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "bitcoincash"; + var network = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "mainnet"; var bitcoincash = void 0; - if (network === "bitcoincash") bitcoincash = _coininfo2.default.bitcoincash.main;else bitcoincash = _coininfo2.default.bitcoincash.test; + if (network === "bitcoincash" || network === "mainnet") bitcoincash = _coininfo2.default.bitcoincash.main;else bitcoincash = _coininfo2.default.bitcoincash.test; var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); return _bitcoincashjsLib2.default.HDNode.fromSeedBuffer(rootSeedBuffer, bitcoincashBitcoinJSLib); diff --git a/lib/Transaction.js b/lib/Transaction.js index ed93ac8a..d9454f34 100644 --- a/lib/Transaction.js +++ b/lib/Transaction.js @@ -26,28 +26,6 @@ var Transaction = function () { } _createClass(Transaction, [{ - key: "transaction", - value: function transaction() { - return new _bitcoincashjsLib2.default.Transaction(); - } - }, { - key: "fromHex", - value: function fromHex(hex) { - return _bitcoincashjsLib2.default.Transaction.fromHex(hex); - } - }, { - key: "transactionBuilder", - value: function transactionBuilder() { - var network = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "bitcoin"; - - return new _bitcoincashjsLib2.default.TransactionBuilder(_bitcoincashjsLib2.default.networks[network]); - } - }, { - key: "fromTransaction", - value: function fromTransaction(tx) { - return _bitcoincashjsLib2.default.TransactionBuilder.fromTransaction(tx); - } - }, { key: "details", value: async function details(txid) { try { diff --git a/lib/TransactionBuilder.js b/lib/TransactionBuilder.js index 40eaa928..d1c226c2 100644 --- a/lib/TransactionBuilder.js +++ b/lib/TransactionBuilder.js @@ -35,12 +35,12 @@ var TransactionBuilder = function () { }]); function TransactionBuilder() { - var network = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "bitcoincash"; + var network = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "mainnet"; _classCallCheck(this, TransactionBuilder); var bitcoincash = void 0; - if (network === "bitcoincash") bitcoincash = _coininfo2.default.bitcoincash.main;else bitcoincash = _coininfo2.default.bitcoincash.test; + if (network === "bitcoincash" || network === "mainnet") bitcoincash = _coininfo2.default.bitcoincash.main;else bitcoincash = _coininfo2.default.bitcoincash.test; var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); this.transaction = new _bitcoincashjsLib2.default.TransactionBuilder(bitcoincashBitcoinJSLib); diff --git a/package.json b/package.json index 8f0176bb..93400718 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,8 @@ { "name": "bitbox-sdk", - "version": "3.0.11", + "version": "3.1.0", "description": "BITBOX Javascript SDK for Bitcoin Cash", - "author": "Gabriel Cardona @ Bitcoin.com", + "author": "Gabriel Cardona ", "contributors": [ "Chris Troutner " ], diff --git a/src/Address.js b/src/Address.js index 72be8617..25f129a3 100644 --- a/src/Address.js +++ b/src/Address.js @@ -253,9 +253,10 @@ class Address { return this.toCashAddress(address.getAddress()) } - fromOutputScript(scriptPubKey, network = "bitcoincash") { + fromOutputScript(scriptPubKey, network = "mainnet") { let netParam - if (network !== "bitcoincash") netParam = Bitcoin.networks.testnet + if (network !== "bitcoincash" && network !== "mainnet") + netParam = Bitcoin.networks.testnet const regtest = network === "bchreg" diff --git a/src/BitcoinCash.js b/src/BitcoinCash.js index 5921bc51..ef3dd7c5 100644 --- a/src/BitcoinCash.js +++ b/src/BitcoinCash.js @@ -54,9 +54,9 @@ class BitcoinCash { // sign message signMessageWithPrivKey(privateKeyWIF, message) { - const network = privateKeyWIF.charAt(0) === "c" ? "testnet" : "bitcoincash" + const network = privateKeyWIF.charAt(0) === "c" ? "testnet" : "mainnet" let bitcoincash - if (network === "bitcoincash") bitcoincash = coininfo.bitcoincash.main + if (network === "mainnet") bitcoincash = coininfo.bitcoincash.main else bitcoincash = coininfo.bitcoincash.test const bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS() diff --git a/src/ECPair.js b/src/ECPair.js index 02bb8457..74639164 100644 --- a/src/ECPair.js +++ b/src/ECPair.js @@ -9,11 +9,11 @@ class ECPair { static fromWIF(privateKeyWIF) { let network if (privateKeyWIF[0] === "L" || privateKeyWIF[0] === "K") - network = "bitcoincash" + network = "mainnet" else if (privateKeyWIF[0] === "c") network = "testnet" let bitcoincash - if (network === "bitcoincash") bitcoincash = coininfo.bitcoincash.main + if (network === "mainnet") bitcoincash = coininfo.bitcoincash.main else bitcoincash = coininfo.bitcoincash.test const bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS() diff --git a/src/HDNode.js b/src/HDNode.js index 6df0302a..4effe986 100644 --- a/src/HDNode.js +++ b/src/HDNode.js @@ -7,9 +7,10 @@ class HDNode { this._address = address } - fromSeed(rootSeedBuffer, network = "bitcoincash") { + fromSeed(rootSeedBuffer, network = "mainnet") { let bitcoincash - if (network === "bitcoincash") bitcoincash = coininfo.bitcoincash.main + if (network === "bitcoincash" || network === "mainnet") + bitcoincash = coininfo.bitcoincash.main else bitcoincash = coininfo.bitcoincash.test const bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS() diff --git a/src/Transaction.js b/src/Transaction.js index 94eb04d9..a3019549 100644 --- a/src/Transaction.js +++ b/src/Transaction.js @@ -6,22 +6,6 @@ class Transaction { this.restURL = restURL } - transaction() { - return new Bitcoin.Transaction() - } - - fromHex(hex) { - return Bitcoin.Transaction.fromHex(hex) - } - - transactionBuilder(network = "bitcoin") { - return new Bitcoin.TransactionBuilder(Bitcoin.networks[network]) - } - - fromTransaction(tx) { - return Bitcoin.TransactionBuilder.fromTransaction(tx) - } - async details(txid) { try { // Handle single address. diff --git a/src/TransactionBuilder.js b/src/TransactionBuilder.js index 40d00c04..6b4b58a1 100644 --- a/src/TransactionBuilder.js +++ b/src/TransactionBuilder.js @@ -8,9 +8,10 @@ class TransactionBuilder { TransactionBuilder._address = address } - constructor(network = "bitcoincash") { + constructor(network = "mainnet") { let bitcoincash - if (network === "bitcoincash") bitcoincash = coininfo.bitcoincash.main + if (network === "bitcoincash" || network === "mainnet") + bitcoincash = coininfo.bitcoincash.main else bitcoincash = coininfo.bitcoincash.test const bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS() @@ -53,7 +54,7 @@ class TransactionBuilder { } setLockTime(locktime) { - this.transaction.setLockTime(locktime); + this.transaction.setLockTime(locktime) } sign( diff --git a/test/unit/TransactionBuilder.js b/test/unit/TransactionBuilder.js index 37d7d218..9f3da342 100644 --- a/test/unit/TransactionBuilder.js +++ b/test/unit/TransactionBuilder.js @@ -7,7 +7,7 @@ const Buffer = require("safe-buffer").Buffer describe("#TransactionBuilder", () => { describe("#hashTypes", () => { - const transactionBuilder = new BITBOX.TransactionBuilder("bitcoincash") + const transactionBuilder = new BITBOX.TransactionBuilder("mainnet") fixtures.hashTypes.forEach(fixture => { it(`should match hash type`, () => { assert.equal( From 0bc401bc083414a9b55e56a0e4b54dec6f37bd88 Mon Sep 17 00:00:00 2001 From: p0o Date: Sun, 17 Feb 2019 18:17:03 +0800 Subject: [PATCH 209/480] introduce types in package.json --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 93400718..f1f8bc4f 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "Chris Troutner " ], "main": "index.js", + "types": "./typings/bitbox-sdk.d.ts", "scripts": { "test": "mocha --timeout 30000 --require babel-core/register test/unit", "test:integration": "mocha --timeout 30000 --require babel-core/register test/integration", From 0d95646e864190ee4122f990bc095461abe41f2b Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 20 Feb 2019 15:05:34 +0900 Subject: [PATCH 210/480] Fix typo in the tests. --- test/unit/TransactionBuilder.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/unit/TransactionBuilder.js b/test/unit/TransactionBuilder.js index 9f3da342..7f43a880 100644 --- a/test/unit/TransactionBuilder.js +++ b/test/unit/TransactionBuilder.js @@ -1046,7 +1046,7 @@ describe("#TransactionBuilder", () => { }) }) - describe("#P2PMS", () => { + describe("#P2MS", () => { describe("#toOne", () => { describe("#Mainnet", () => { fixtures.scripts.p2ms.toOne.mainnet.forEach(fixture => { From 2058c21f39dbe3b2e902ce4126f31c0287d1e3ce Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Wed, 20 Feb 2019 10:13:28 -0800 Subject: [PATCH 211/480] updated package-lock --- package-lock.json | 2509 ++++++++++++++++++++++++++++++++++++--------- 1 file changed, 2010 insertions(+), 499 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0b7d7da0..ab412a19 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "3.0.11", + "version": "3.1.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -8,16 +8,59 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", - "dev": true, "requires": { "@babel/highlight": "^7.0.0" } }, + "@babel/generator": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.3.tgz", + "integrity": "sha512-aEADYwRRZjJyMnKN7llGIlircxTCofm3dtV5pmY6ob18MSIuipHpA2yZWkPlycwu5HJcx/pADS3zssd8eY7/6A==", + "requires": { + "@babel/types": "^7.3.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.11", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + }, + "dependencies": { + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + } + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", + "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", + "requires": { + "@babel/types": "^7.0.0" + } + }, "@babel/highlight": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", - "dev": true, "requires": { "chalk": "^2.0.0", "esutils": "^2.0.2", @@ -27,8 +70,70 @@ "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + } + } + }, + "@babel/parser": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.3.tgz", + "integrity": "sha512-xsH1CJoln2r74hR+y7cg2B5JCPaTh+Hd+EbBRk9nWGSNspuo6krjhX0Om6RnRQuIvFq8wVXCLKH3kwKDYhanSg==" + }, + "@babel/template": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", + "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.2.2", + "@babel/types": "^7.2.2" + } + }, + "@babel/traverse": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz", + "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.2.2", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.2.3", + "@babel/types": "^7.2.2", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.10" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "globals": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", + "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==" + } + } + }, + "@babel/types": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.3.tgz", + "integrity": "sha512-2tACZ80Wg09UnPg5uGAOUvvInaqLk3l/IAhQzlxLQOIXacr6bMsra5SH6AWw/hIDRCSbCdHP2KzSOD+cT7TzMQ==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" } } }, @@ -49,12 +154,12 @@ "dev": true }, "@octokit/endpoint": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-3.1.2.tgz", - "integrity": "sha512-iRx4kDYybAv9tOrHDBE6HwlgiFi8qmbZl8SHliZWtxbUFuXLZXh2yv8DxGIK9wzD9J0wLDMZneO8vNYJNUSJ9Q==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-3.1.3.tgz", + "integrity": "sha512-vAWzeoj9Lzpl3V3YkWKhGzmDUoMfKpyxJhpq74/ohMvmLXDoEuAGnApy/7TRi3OmnjyX2Lr+e9UGGAD0919ohA==", "dev": true, "requires": { - "deepmerge": "3.1.0", + "deepmerge": "3.2.0", "is-plain-object": "^2.0.4", "universal-user-agent": "^2.0.1", "url-template": "^2.0.8" @@ -73,9 +178,9 @@ } }, "@octokit/rest": { - "version": "16.15.0", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.15.0.tgz", - "integrity": "sha512-Un+e7rgh38RtPOTe453pT/KPM/p2KZICimBmuZCd2wEo8PacDa4h6RqTPZs+f2DPazTTqdM7QU4LKlUjgiBwWw==", + "version": "16.16.0", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.16.0.tgz", + "integrity": "sha512-Q6L5OwQJrdJ188gLVmUHLKNXBoeCU0DynKPYW8iZQQoGNGws2hkP/CePVNlzzDgmjuv7o8dCrJgecvDcIHccTA==", "dev": true, "requires": { "@octokit/request": "2.3.0", @@ -111,12 +216,6 @@ "requires": { "ms": "^2.1.1" } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true } } }, @@ -165,12 +264,6 @@ "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz", "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==", "dev": true - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true } } }, @@ -247,12 +340,6 @@ "requires": { "ms": "^2.1.1" } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true } } }, @@ -275,16 +362,22 @@ } }, "@sinonjs/samsam": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.1.0.tgz", - "integrity": "sha512-IXio+GWY+Q8XUjHUOgK7wx8fpvr7IFffgyXb1bnJFfX3001KmHt35Zq4tp7MXZyjJPCLPuadesDYNk41LYtVjw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.1.1.tgz", + "integrity": "sha512-ILlwvQUwAiaVBzr3qz8oT1moM7AIUHqUc2UmEjQcH9lLe+E+BZPwUMuc9FFojMswRK4r96x5zDTTrowMLw/vuA==", "dev": true, "requires": { "@sinonjs/commons": "^1.0.2", "array-from": "^2.1.1", - "lodash.get": "^4.4.2" + "lodash": "^4.17.11" } }, + "@sinonjs/text-encoding": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", + "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", + "dev": true + }, "JSONStream": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", @@ -533,12 +626,12 @@ "dev": true }, "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", + "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", "dev": true, "requires": { - "lodash": "^4.17.10" + "lodash": "^4.17.11" } }, "async-each": { @@ -663,6 +756,11 @@ "requires": { "ms": "2.0.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -1229,6 +1327,11 @@ "requires": { "ms": "2.0.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -1441,188 +1544,1086 @@ "nyc": "*", "standard": "^11.0.1", "tape": "*" - } - }, - "bip38": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", - "integrity": "sha512-22KDak0RDyghFbR0Si7wyq9IgY423YzGYzWLpGeofH3DaolOQqjD3mNN08eFoubKlbyclOQKFwtONMv2SD9V3A==", - "requires": { - "bigi": "^1.2.0", - "browserify-aes": "^1.0.1", - "bs58check": "<3.0.0", - "buffer-xor": "^1.0.2", - "create-hash": "^1.1.1", - "ecurve": "^1.0.0", - "scryptsy": "^2.0.0" - } - }, - "bip39": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", - "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", - "requires": { - "create-hash": "^1.1.0", - "pbkdf2": "^3.0.9", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "unorm": "^1.3.3" - } - }, - "bip66": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", - "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "bitcoincash-ops": { - "version": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3", - "from": "github:Bitcoin-com/bitcoincash-ops#2.0.0" - }, - "bitcoincashjs": { - "version": "0.1.14", - "resolved": "https://registry.npmjs.org/bitcoincashjs/-/bitcoincashjs-0.1.14.tgz", - "integrity": "sha512-x0wMVSCZ56ZQnSQ+Xim7XfS0IYiOyOwo0pdMCmR+cDNB7zRhICFuH5i3lNdLSgUw1e7Pc3FmUlC9wruQNlYMnA==" - }, - "bitcoincashjs-lib": { - "version": "github:Bitcoin-com/bitcoincashjs-lib#61ffec3878fd959d2a8a62f570a122ff801d78b6", - "from": "github:Bitcoin-com/bitcoincashjs-lib#3.4.4", - "requires": { - "bech32": "^1.1.2", - "bigi": "^1.4.0", - "bip66": "^1.1.0", - "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#2.0.0", - "bs58check": "^2.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.3", - "ecurve": "^1.0.0", - "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "github:Bitcoin-com/pushdata-bitcoin#1.2.1", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "typeforce": "^1.11.3", - "varuint-bitcoin": "^1.0.4", - "wif": "^2.0.1" - } - }, - "bitcoinjs-message": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", - "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", - "requires": { - "bs58check": "^2.0.2", - "buffer-equals": "^1.0.3", - "create-hash": "^1.1.2", - "secp256k1": "^3.0.1", - "varuint-bitcoin": "^1.0.1" - } - }, - "blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" - }, - "bottleneck": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.16.1.tgz", - "integrity": "sha512-OOHt4HXiMoXKUcQR/LBzwMYWCQxOU74c8zs6/VPCe6xO3kOAZBZqYKmrgsamVXa1wm9iztD1DAoV46KmGKLl5g==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "optional": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", - "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", - "requires": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" - } - }, - "bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "requires": { - "base-x": "^3.0.2" - } - }, - "bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "btoa-lite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", - "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=", - "dev": true - }, - "buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", - "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "buffer-equals": { - "version": "1.0.4", + }, + "dependencies": { + "nyc": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-13.3.0.tgz", + "integrity": "sha512-P+FwIuro2aFG6B0Esd9ZDWUd51uZrAEoGutqZxzrVmYl3qSfkLgcQpBPBjtDFsUQLFY1dvTQJPOyeqr8S9GF8w==", + "requires": { + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^3.0.1", + "convert-source-map": "^1.6.0", + "find-cache-dir": "^2.0.0", + "find-up": "^3.0.0", + "foreground-child": "^1.5.6", + "glob": "^7.1.3", + "istanbul-lib-coverage": "^2.0.3", + "istanbul-lib-hook": "^2.0.3", + "istanbul-lib-instrument": "^3.1.0", + "istanbul-lib-report": "^2.0.4", + "istanbul-lib-source-maps": "^3.0.2", + "istanbul-reports": "^2.1.1", + "make-dir": "^1.3.0", + "merge-source-map": "^1.1.0", + "resolve-from": "^4.0.0", + "rimraf": "^2.6.3", + "signal-exit": "^3.0.2", + "spawn-wrap": "^1.4.2", + "test-exclude": "^5.1.0", + "uuid": "^3.3.2", + "yargs": "^12.0.5", + "yargs-parser": "^11.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "bundled": true + }, + "append-transform": { + "version": "1.0.0", + "bundled": true, + "requires": { + "default-require-extensions": "^2.0.0" + } + }, + "archy": { + "version": "1.0.0", + "bundled": true + }, + "arrify": { + "version": "1.0.1", + "bundled": true + }, + "async": { + "version": "2.6.2", + "bundled": true, + "requires": { + "lodash": "^4.17.11" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "caching-transform": { + "version": "3.0.1", + "bundled": true, + "requires": { + "hasha": "^3.0.0", + "make-dir": "^1.3.0", + "package-hash": "^3.0.0", + "write-file-atomic": "^2.3.0" + } + }, + "camelcase": { + "version": "5.0.0", + "bundled": true + }, + "cliui": { + "version": "4.1.0", + "bundled": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "commander": { + "version": "2.17.1", + "bundled": true, + "optional": true + }, + "commondir": { + "version": "1.0.1", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "convert-source-map": { + "version": "1.6.0", + "bundled": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cross-spawn": { + "version": "4.0.2", + "bundled": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "debug": { + "version": "4.1.1", + "bundled": true, + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "1.2.0", + "bundled": true + }, + "default-require-extensions": { + "version": "2.0.0", + "bundled": true, + "requires": { + "strip-bom": "^3.0.0" + } + }, + "end-of-stream": { + "version": "1.4.1", + "bundled": true, + "requires": { + "once": "^1.4.0" + } + }, + "error-ex": { + "version": "1.3.2", + "bundled": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es6-error": { + "version": "4.1.1", + "bundled": true + }, + "execa": { + "version": "1.0.0", + "bundled": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.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" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "bundled": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + } + } + }, + "find-cache-dir": { + "version": "2.0.0", + "bundled": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "bundled": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "foreground-child": { + "version": "1.5.6", + "bundled": true, + "requires": { + "cross-spawn": "^4", + "signal-exit": "^3.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "get-caller-file": { + "version": "1.0.3", + "bundled": true + }, + "get-stream": { + "version": "4.1.0", + "bundled": true, + "requires": { + "pump": "^3.0.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "requires": { + "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": { + "version": "4.1.15", + "bundled": true + }, + "handlebars": { + "version": "4.1.0", + "bundled": true, + "requires": { + "async": "^2.5.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "bundled": true + } + } + }, + "has-flag": { + "version": "3.0.0", + "bundled": true + }, + "hasha": { + "version": "3.0.0", + "bundled": true, + "requires": { + "is-stream": "^1.0.1" + } + }, + "hosted-git-info": { + "version": "2.7.1", + "bundled": true + }, + "imurmurhash": { + "version": "0.1.4", + "bundled": true + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "invert-kv": { + "version": "2.0.0", + "bundled": true + }, + "is-arrayish": { + "version": "0.2.1", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true + }, + "is-stream": { + "version": "1.1.0", + "bundled": true + }, + "isexe": { + "version": "2.0.0", + "bundled": true + }, + "istanbul-lib-coverage": { + "version": "2.0.3", + "bundled": true + }, + "istanbul-lib-hook": { + "version": "2.0.3", + "bundled": true, + "requires": { + "append-transform": "^1.0.0" + } + }, + "istanbul-lib-report": { + "version": "2.0.4", + "bundled": true, + "requires": { + "istanbul-lib-coverage": "^2.0.3", + "make-dir": "^1.3.0", + "supports-color": "^6.0.0" + }, + "dependencies": { + "supports-color": { + "version": "6.1.0", + "bundled": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "3.0.2", + "bundled": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^2.0.3", + "make-dir": "^1.3.0", + "rimraf": "^2.6.2", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "bundled": true + } + } + }, + "istanbul-reports": { + "version": "2.1.1", + "bundled": true, + "requires": { + "handlebars": "^4.1.0" + } + }, + "json-parse-better-errors": { + "version": "1.0.2", + "bundled": true + }, + "lcid": { + "version": "2.0.0", + "bundled": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, + "load-json-file": { + "version": "4.0.0", + "bundled": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "bundled": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.11", + "bundled": true + }, + "lodash.flattendeep": { + "version": "4.4.0", + "bundled": true + }, + "lru-cache": { + "version": "4.1.5", + "bundled": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "bundled": true, + "requires": { + "pify": "^3.0.0" + } + }, + "map-age-cleaner": { + "version": "0.1.3", + "bundled": true, + "requires": { + "p-defer": "^1.0.0" + } + }, + "mem": { + "version": "4.1.0", + "bundled": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^1.0.0", + "p-is-promise": "^2.0.0" + } + }, + "merge-source-map": { + "version": "1.1.0", + "bundled": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "bundled": true + } + } + }, + "mimic-fn": { + "version": "1.2.0", + "bundled": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.10", + "bundled": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "bundled": true + } + } + }, + "ms": { + "version": "2.1.1", + "bundled": true + }, + "nice-try": { + "version": "1.0.5", + "bundled": true + }, + "normalize-package-data": { + "version": "2.5.0", + "bundled": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "npm-run-path": { + "version": "2.0.2", + "bundled": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1" + } + }, + "optimist": { + "version": "0.6.1", + "bundled": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true + }, + "os-locale": { + "version": "3.1.0", + "bundled": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "p-defer": { + "version": "1.0.0", + "bundled": true + }, + "p-finally": { + "version": "1.0.0", + "bundled": true + }, + "p-is-promise": { + "version": "2.0.0", + "bundled": true + }, + "p-limit": { + "version": "2.1.0", + "bundled": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "bundled": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.0.0", + "bundled": true + }, + "package-hash": { + "version": "3.0.0", + "bundled": true, + "requires": { + "graceful-fs": "^4.1.15", + "hasha": "^3.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "bundled": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "path-exists": { + "version": "3.0.0", + "bundled": true + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true + }, + "path-key": { + "version": "2.0.1", + "bundled": true + }, + "path-parse": { + "version": "1.0.6", + "bundled": true + }, + "path-type": { + "version": "3.0.0", + "bundled": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "bundled": true + }, + "pkg-dir": { + "version": "3.0.0", + "bundled": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "pseudomap": { + "version": "1.0.2", + "bundled": true + }, + "pump": { + "version": "3.0.0", + "bundled": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "read-pkg": { + "version": "3.0.0", + "bundled": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "4.0.0", + "bundled": true, + "requires": { + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" + } + }, + "release-zalgo": { + "version": "1.0.0", + "bundled": true, + "requires": { + "es6-error": "^4.0.1" + } + }, + "require-directory": { + "version": "2.1.1", + "bundled": true + }, + "require-main-filename": { + "version": "1.0.1", + "bundled": true + }, + "resolve": { + "version": "1.10.0", + "bundled": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-from": { + "version": "4.0.0", + "bundled": true + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true + }, + "semver": { + "version": "5.6.0", + "bundled": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true + }, + "shebang-command": { + "version": "1.2.0", + "bundled": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "bundled": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true + }, + "spawn-wrap": { + "version": "1.4.2", + "bundled": true, + "requires": { + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" + } + }, + "spdx-correct": { + "version": "3.1.0", + "bundled": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "bundled": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "bundled": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.3", + "bundled": true + }, + "string-width": { + "version": "2.1.1", + "bundled": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "bundled": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "bundled": true + }, + "strip-eof": { + "version": "1.0.0", + "bundled": true + }, + "test-exclude": { + "version": "5.1.0", + "bundled": true, + "requires": { + "arrify": "^1.0.1", + "minimatch": "^3.0.4", + "read-pkg-up": "^4.0.0", + "require-main-filename": "^1.0.1" + } + }, + "uglify-js": { + "version": "3.4.9", + "bundled": true, + "optional": true, + "requires": { + "commander": "~2.17.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "bundled": true, + "optional": true + } + } + }, + "uuid": { + "version": "3.3.2", + "bundled": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "bundled": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "bundled": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "bundled": true + }, + "wordwrap": { + "version": "0.0.3", + "bundled": true + }, + "wrap-ansi": { + "version": "2.1.0", + "bundled": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + }, + "write-file-atomic": { + "version": "2.4.2", + "bundled": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "y18n": { + "version": "4.0.0", + "bundled": true + }, + "yallist": { + "version": "2.1.2", + "bundled": true + }, + "yargs": { + "version": "12.0.5", + "bundled": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.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 || ^4.0.0", + "yargs-parser": "^11.1.1" + } + }, + "yargs-parser": { + "version": "11.1.1", + "bundled": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + } + } + }, + "bip38": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", + "integrity": "sha512-22KDak0RDyghFbR0Si7wyq9IgY423YzGYzWLpGeofH3DaolOQqjD3mNN08eFoubKlbyclOQKFwtONMv2SD9V3A==", + "requires": { + "bigi": "^1.2.0", + "browserify-aes": "^1.0.1", + "bs58check": "<3.0.0", + "buffer-xor": "^1.0.2", + "create-hash": "^1.1.1", + "ecurve": "^1.0.0", + "scryptsy": "^2.0.0" + } + }, + "bip39": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", + "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", + "requires": { + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "unorm": "^1.3.3" + } + }, + "bip66": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", + "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "bitcoincash-ops": { + "version": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3", + "from": "github:Bitcoin-com/bitcoincash-ops#2.0.0" + }, + "bitcoincashjs": { + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/bitcoincashjs/-/bitcoincashjs-0.1.14.tgz", + "integrity": "sha512-x0wMVSCZ56ZQnSQ+Xim7XfS0IYiOyOwo0pdMCmR+cDNB7zRhICFuH5i3lNdLSgUw1e7Pc3FmUlC9wruQNlYMnA==" + }, + "bitcoincashjs-lib": { + "version": "github:Bitcoin-com/bitcoincashjs-lib#61ffec3878fd959d2a8a62f570a122ff801d78b6", + "from": "github:Bitcoin-com/bitcoincashjs-lib#3.4.4", + "requires": { + "bech32": "^1.1.2", + "bigi": "^1.4.0", + "bip66": "^1.1.0", + "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#2.0.0", + "bs58check": "^2.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.3", + "ecurve": "^1.0.0", + "merkle-lib": "^2.0.10", + "pushdata-bitcoin": "github:Bitcoin-com/pushdata-bitcoin#1.2.1", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "typeforce": "^1.11.3", + "varuint-bitcoin": "^1.0.4", + "wif": "^2.0.1" + } + }, + "bitcoinjs-message": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", + "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", + "requires": { + "bs58check": "^2.0.2", + "buffer-equals": "^1.0.3", + "create-hash": "^1.1.2", + "secp256k1": "^3.0.1", + "varuint-bitcoin": "^1.0.1" + } + }, + "blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, + "bottleneck": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.16.2.tgz", + "integrity": "sha512-671wkIKV9K3yO/nfGw8tB4ihJazmZyd6DYEWxF1fuE7gzobk4w4atepHuYXoUHk78xLknjAGko8dXRcFO7iCoA==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "optional": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "requires": { + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" + } + }, + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "requires": { + "base-x": "^3.0.2" + } + }, + "bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "requires": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "btoa-lite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", + "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=", + "dev": true + }, + "buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", + "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "buffer-equals": { + "version": "1.0.4", "resolved": "https://registry.npmjs.org/buffer-equals/-/buffer-equals-1.0.4.tgz", "integrity": "sha1-A1O1T9B/2VZBcGca5vZrnPENJ/U=" }, @@ -1738,9 +2739,9 @@ } }, "caniuse-lite": { - "version": "1.0.30000935", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000935.tgz", - "integrity": "sha512-1Y2uJ5y56qDt3jsDTdBHL1OqiImzjoQcBG6Yl3Qizq8mcc2SgCFpi+ZwLLqkztYnk9l87IYqRlNBnPSOTbFkXQ==" + "version": "1.0.30000938", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000938.tgz", + "integrity": "sha512-ekW8NQ3/FvokviDxhdKLZZAx7PptXNwxKgXtnR5y+PR3hckwuP3yJ1Ir+4/c97dsHNqtAyfKUGdw8P4EYzBNgw==" }, "cardinal": { "version": "2.1.1", @@ -2047,9 +3048,9 @@ "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=" }, "conventional-changelog-angular": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.2.tgz", - "integrity": "sha512-yx7m7lVrXmt4nKWQgWZqxSALEiAKZhOAcbxdUaU9575mB0CzXVbgrgpfSnSP7OqWDUTYGD0YVJ0MSRdyOPgAwA==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.3.tgz", + "integrity": "sha512-YD1xzH7r9yXQte/HF9JBuEDfvjxxwDGGwZU1+ndanbY0oFgA+Po1T9JDSpPLdP0pZT6MhCAsdvFKC4TJ4MTJTA==", "dev": true, "requires": { "compare-func": "^1.3.1", @@ -2057,15 +3058,15 @@ } }, "conventional-changelog-writer": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.2.tgz", - "integrity": "sha512-d8/FQY/fix2xXEBUhOo8u3DCbyEw3UOQgYHxLsPDw+wHUDma/GQGAGsGtoH876WyNs32fViHmTOUrgRKVLvBug==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.3.tgz", + "integrity": "sha512-bIlpSiQtQZ1+nDVHEEh798Erj2jhN/wEjyw9sfxY9es6h7pREE5BNJjfv0hXGH/FTrAsEpHUq4xzK99eePpwuA==", "dev": true, "requires": { "compare-func": "^1.3.1", "conventional-commits-filter": "^2.0.1", "dateformat": "^3.0.0", - "handlebars": "^4.0.2", + "handlebars": "^4.1.0", "json-stringify-safe": "^5.0.1", "lodash": "^4.2.1", "meow": "^4.0.0", @@ -2118,9 +3119,9 @@ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "core-js": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.3.tgz", - "integrity": "sha512-l00tmFFZOBHtYhN4Cz7k32VM7vTn3rE2ANjQDxdEN6zmXZ/xq1jQuutnmHvMG1ZJ7xd72+TA5YpUK8wz3rWsfQ==" + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz", + "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==" }, "core-util-is": { "version": "1.0.2", @@ -2128,14 +3129,15 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cosmiconfig": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.7.tgz", - "integrity": "sha512-PcLqxTKiDmNT6pSpy4N6KtuPwb53W+2tzNvwOZw0WH9N6O0vLIBq0x8aj8Oj75ere4YcGi48bDFCL+3fRJdlNA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.1.0.tgz", + "integrity": "sha512-kCNPvthka8gvLtzAxQXvWo4FxqRB+ftRZyPZNuab5ngvM9Y7yw7hbEysglptLgpkGX9nAOKTBVkHUAe8xtYR6Q==", "dev": true, "requires": { "import-fresh": "^2.0.0", "is-directory": "^0.3.1", "js-yaml": "^3.9.0", + "lodash.get": "^4.4.2", "parse-json": "^4.0.0" }, "dependencies": { @@ -2277,11 +3279,11 @@ "dev": true }, "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "debug-log": { @@ -2343,9 +3345,9 @@ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, "deepmerge": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.1.0.tgz", - "integrity": "sha512-/TnecbwXEdycfbsM2++O3eGiatEFHjjNciHEwJclM+T5Kd94qD1AP+2elP/Mq0L5b9VZJao5znR01Mz6eX8Seg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.2.0.tgz", + "integrity": "sha512-6+LuZGU7QCNUnAJyX8cIrlzoEgggTM6B7mm+znKOX4t5ltluT9KLjN6g61ECMS0LTsLW7yDpNoxhix5FZcrIow==", "dev": true }, "define-properties": { @@ -2552,6 +3554,12 @@ "minimalistic-crypto-utils": "^1.0.0" } }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, "end-of-stream": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", @@ -2571,6 +3579,21 @@ "debug": "~3.1.0", "engine.io-parser": "~2.1.0", "ws": "~6.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } } }, "engine.io-client": { @@ -2589,6 +3612,21 @@ "ws": "~6.1.0", "xmlhttprequest-ssl": "~1.5.4", "yeast": "0.1.2" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } } }, "engine.io-parser": { @@ -2645,9 +3683,9 @@ } }, "es6-promise": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz", - "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==", + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.6.tgz", + "integrity": "sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q==", "dev": true }, "es6-promisify": { @@ -2665,35 +3703,35 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "eslint": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.13.0.tgz", - "integrity": "sha512-nqD5WQMisciZC5EHZowejLKQjWGuFS5c70fxqSKlnDME+oz9zmE8KTlX+lHSg+/5wsC/kf9Q9eMkC8qS3oM2fg==", + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.14.1.tgz", + "integrity": "sha512-CyUMbmsjxedx8B0mr79mNOqetvkbij/zrXnFeK2zc3pGRn3/tibjiNAv/3UxFEyfMDjh+ZqTrJrEGBFiGfD5Og==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "ajv": "^6.5.3", + "ajv": "^6.9.1", "chalk": "^2.1.0", "cross-spawn": "^6.0.5", "debug": "^4.0.1", - "doctrine": "^2.1.0", + "doctrine": "^3.0.0", "eslint-scope": "^4.0.0", "eslint-utils": "^1.3.1", "eslint-visitor-keys": "^1.0.0", - "espree": "^5.0.0", + "espree": "^5.0.1", "esquery": "^1.0.1", "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", + "file-entry-cache": "^5.0.1", "functional-red-black-tree": "^1.0.1", "glob": "^7.1.2", "globals": "^11.7.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", - "inquirer": "^6.1.0", + "inquirer": "^6.2.2", "js-yaml": "^3.12.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.3.0", - "lodash": "^4.17.5", + "lodash": "^4.17.11", "minimatch": "^3.0.4", "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", @@ -2704,14 +3742,14 @@ "semver": "^5.5.1", "strip-ansi": "^4.0.0", "strip-json-comments": "^2.0.1", - "table": "^5.0.2", + "table": "^5.2.3", "text-table": "^0.2.0" }, "dependencies": { "acorn": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.7.tgz", - "integrity": "sha512-HNJNgE60C9eOTgn974Tlp3dpLZdUr+SoxxDwPaY9J/kDNOLQTkaDgwBUXAF4SSsrAwD9RpdxuHK/EbuF+W9Ahw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.0.tgz", + "integrity": "sha512-MW/FjM+IvU9CgBzjO3UIPCE2pyEwUsoFl+VGdczOPEdxfGFjuKny/gN54mOuX7Qxmb9Rg9MCn2oKiSUeW+pjrw==", "dev": true }, "acorn-jsx": { @@ -2721,9 +3759,9 @@ "dev": true }, "ajv": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.8.1.tgz", - "integrity": "sha512-eqxCp82P+JfqL683wwsL73XmFs1eG6qjw+RD3YHx+Jll1r0jNd4dh8QG9NYAeNGA/hnZjeEDgtTskgJULbxpWQ==", + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", + "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", "dev": true, "requires": { "fast-deep-equal": "^2.0.1", @@ -2775,6 +3813,15 @@ "ms": "^2.1.1" } }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, "eslint-scope": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", @@ -2786,12 +3833,12 @@ } }, "espree": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.0.tgz", - "integrity": "sha512-1MpUfwsdS9MMoN7ZXqAr9e9UKdVHDcvrJpyx7mm1WuQlx/ygErEQBzgi5Nh5qBHIoYweprhtMkTCb9GhcAIcsA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", + "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", "dev": true, "requires": { - "acorn": "^6.0.2", + "acorn": "^6.0.7", "acorn-jsx": "^5.0.0", "eslint-visitor-keys": "^1.0.0" } @@ -2813,10 +3860,30 @@ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", "dev": true }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "requires": { + "flat-cache": "^2.0.1" + } + }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + } + }, "globals": { - "version": "11.10.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.10.0.tgz", - "integrity": "sha512-0GZF1RiPKU97IHUO5TORo9w1PwrH/NBPl+fS7oMLdaTRiYmYbwK4NWoZWrAdd0/abG9R2BU+OiwyQpTpE6pdfQ==", + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", + "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==", "dev": true }, "ignore": { @@ -2863,12 +3930,6 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, "slice-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", @@ -2898,15 +3959,46 @@ } }, "table": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/table/-/table-5.2.2.tgz", - "integrity": "sha512-f8mJmuu9beQEDkKHLzOv4VxVYlU68NpdzjbGPl69i4Hx0sTopJuNxuzJd17iV2h24dAfa93u794OnDA5jqXvfQ==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/table/-/table-5.2.3.tgz", + "integrity": "sha512-N2RsDAMvDLvYwFcwbPyF3VmVSSkuF+G1e+8inhBLtHpvwXGw4QRPEZhihQNeEN0i1up6/f6ObCJXNdlRG3YVyQ==", "dev": true, "requires": { - "ajv": "^6.6.1", + "ajv": "^6.9.1", "lodash": "^4.17.11", - "slice-ansi": "^2.0.0", - "string-width": "^2.1.1" + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "string-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.0.0.tgz", + "integrity": "sha512-rr8CUxBbvOZDUvc5lNIJ+OC1nPVpz+Siw9VBtUjB9b6jZehZLFt0JMCZzShFHIsI8cbhm0EsNIfWJMFV3cu3Ew==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.0.0" + } + }, + "strip-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.0.0.tgz", + "integrity": "sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==", + "dev": true, + "requires": { + "ansi-regex": "^4.0.0" + } + } + } + }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" } } } @@ -2946,6 +4038,11 @@ "requires": { "ms": "2.0.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -2965,6 +4062,11 @@ "requires": { "ms": "2.0.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -3011,6 +4113,11 @@ "esutils": "^2.0.2", "isarray": "^1.0.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -3575,6 +4682,12 @@ "snapdragon": "^0.8.1", "to-regex": "^3.0.2" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, @@ -3676,12 +4789,18 @@ "write": "^0.2.1" } }, + "flatted": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.0.tgz", + "integrity": "sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg==", + "dev": true + }, "follow-redirects": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.6.1.tgz", - "integrity": "sha512-t2JCjbzxQpWvbhts3l6SH1DKzSrx8a+SsaVf4h6bG4kOXUuPYS/kg2Lr4gQSb7eemaHqJkOThF1BGyjlUkO1GQ==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz", + "integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==", "requires": { - "debug": "=3.1.0" + "debug": "^3.2.6" } }, "for-each": { @@ -4417,9 +5536,9 @@ "dev": true }, "handlebars": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.12.tgz", - "integrity": "sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.0.tgz", + "integrity": "sha512-l2jRuU1NAWK6AW5qqcTATWQJvNPEwkM7NEKSiv/gqOsoSQbVoWyqVEY5GS+XPQ88zLNmqASRpzfdm8d79hJS+w==", "dev": true, "requires": { "async": "^2.5.0", @@ -4453,9 +5572,9 @@ }, "dependencies": { "ajv": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.8.1.tgz", - "integrity": "sha512-eqxCp82P+JfqL683wwsL73XmFs1eG6qjw+RD3YHx+Jll1r0jNd4dh8QG9NYAeNGA/hnZjeEDgtTskgJULbxpWQ==", + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", + "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", "dev": true, "requires": { "fast-deep-equal": "^2.0.1", @@ -4647,6 +5766,23 @@ "requires": { "agent-base": "4", "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } } }, "http-signature": { @@ -5076,6 +6212,25 @@ "lodash.uniqby": "^4.7.0" } }, + "istanbul-lib-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-dKWuzRGCs4G+67VfW9pBFFz2Jpi4vSp/k7zBcJ888ofV5Mi1g5CUML5GvMvV6u9Cjybftu+E8Cgp+k0dI1E5lw==" + }, + "istanbul-lib-instrument": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.1.0.tgz", + "integrity": "sha512-ooVllVGT38HIk8MxDj/OIHXSYvH+1tq/Vb38s8ixt9GoJadXska4WkGY+0wkmtYCZNYtaARniH/DixUGGLZ0uA==", + "requires": { + "@babel/generator": "^7.0.0", + "@babel/parser": "^7.0.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "istanbul-lib-coverage": "^2.0.3", + "semver": "^5.5.0" + } + }, "java-properties": { "version": "0.2.10", "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-0.2.10.tgz", @@ -5401,9 +6556,9 @@ } }, "marked": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.6.0.tgz", - "integrity": "sha512-HduzIW2xApSXKXJSpCipSxKyvMbwRRa/TwMbepmlZziKdH8548WSoDP4SxzulEKjlo8BE39l+2fwJZuRKOln6g==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.6.1.tgz", + "integrity": "sha512-+H0L3ibcWhAZE02SKMqmvYsErLo4EAVJxu5h3bHBBDvvjeWXtl92rGUSBYHL2++5Y+RSNgl8dYOAXcYe7lp1fA==", "dev": true }, "marked-terminal": { @@ -5586,16 +6741,16 @@ "dev": true }, "mime-db": { - "version": "1.37.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", - "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==" + "version": "1.38.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz", + "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==" }, "mime-types": { - "version": "2.1.21", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", - "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", + "version": "2.1.22", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz", + "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==", "requires": { - "mime-db": "~1.37.0" + "mime-db": "~1.38.0" } }, "mimic-fn": { @@ -5688,6 +6843,15 @@ "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", "dev": true }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "glob": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", @@ -5702,6 +6866,12 @@ "path-is-absolute": "^1.0.0" } }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, "supports-color": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", @@ -5720,9 +6890,9 @@ "dev": true }, "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" }, "mute-stream": { "version": "0.0.7", @@ -5802,16 +6972,16 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, "nise": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.8.tgz", - "integrity": "sha512-kGASVhuL4tlAV0tvA34yJYZIVihrUt/5bDwpp4tTluigxUr2bBlJeDXmivb6NuEdFkqvdv/Ybb9dm16PSKUhtw==", + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.10.tgz", + "integrity": "sha512-sa0RRbj53dovjc7wombHmVli9ZihXbXCQ2uH3TNm03DyvOSIQbxg+pbqDKrk2oxMK1rtLGVlKxcB9rrc6X5YjA==", "dev": true, "requires": { "@sinonjs/formatio": "^3.1.0", + "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", "lolex": "^2.3.2", - "path-to-regexp": "^1.7.0", - "text-encoding": "^0.6.4" + "path-to-regexp": "^1.7.0" }, "dependencies": { "@sinonjs/formatio": { @@ -5850,12 +7020,6 @@ "requires": { "ms": "^2.1.1" } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true } } }, @@ -5865,9 +7029,9 @@ "integrity": "sha1-OP/3CkqqT2WdID61eGJzcBjiT28=" }, "node-emoji": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", - "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz", + "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==", "requires": { "lodash.toarray": "^4.4.0" } @@ -9047,6 +10211,7 @@ "version": "11.9.0", "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.9.0.tgz", "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", + "dev": true, "requires": { "archy": "^1.0.0", "arrify": "^1.0.1", @@ -9080,6 +10245,7 @@ "align-text": { "version": "0.1.4", "bundled": true, + "dev": true, "optional": true, "requires": { "kind-of": "^3.0.2", @@ -9089,62 +10255,76 @@ }, "amdefine": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "bundled": true, + "dev": true }, "ansi-styles": { "version": "2.2.1", - "bundled": true + "bundled": true, + "dev": true }, "append-transform": { "version": "0.4.0", "bundled": true, + "dev": true, "requires": { "default-require-extensions": "^1.0.0" } }, "archy": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "arr-diff": { "version": "4.0.0", - "bundled": true + "bundled": true, + "dev": true }, "arr-flatten": { "version": "1.1.0", - "bundled": true + "bundled": true, + "dev": true }, "arr-union": { "version": "3.1.0", - "bundled": true + "bundled": true, + "dev": true }, "array-unique": { "version": "0.3.2", - "bundled": true + "bundled": true, + "dev": true }, "arrify": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "assign-symbols": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "async": { "version": "1.5.2", - "bundled": true + "bundled": true, + "dev": true }, "atob": { "version": "2.1.1", - "bundled": true + "bundled": true, + "dev": true }, "babel-code-frame": { "version": "6.26.0", "bundled": true, + "dev": true, "requires": { "chalk": "^1.1.3", "esutils": "^2.0.2", @@ -9154,6 +10334,7 @@ "babel-generator": { "version": "6.26.1", "bundled": true, + "dev": true, "requires": { "babel-messages": "^6.23.0", "babel-runtime": "^6.26.0", @@ -9168,6 +10349,7 @@ "babel-messages": { "version": "6.23.0", "bundled": true, + "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -9175,6 +10357,7 @@ "babel-runtime": { "version": "6.26.0", "bundled": true, + "dev": true, "requires": { "core-js": "^2.4.0", "regenerator-runtime": "^0.11.0" @@ -9183,6 +10366,7 @@ "babel-template": { "version": "6.26.0", "bundled": true, + "dev": true, "requires": { "babel-runtime": "^6.26.0", "babel-traverse": "^6.26.0", @@ -9194,6 +10378,7 @@ "babel-traverse": { "version": "6.26.0", "bundled": true, + "dev": true, "requires": { "babel-code-frame": "^6.26.0", "babel-messages": "^6.23.0", @@ -9209,6 +10394,7 @@ "babel-types": { "version": "6.26.0", "bundled": true, + "dev": true, "requires": { "babel-runtime": "^6.26.0", "esutils": "^2.0.2", @@ -9218,15 +10404,18 @@ }, "babylon": { "version": "6.18.0", - "bundled": true + "bundled": true, + "dev": true }, "balanced-match": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "base": { "version": "0.11.2", "bundled": true, + "dev": true, "requires": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", @@ -9240,6 +10429,7 @@ "define-property": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -9247,6 +10437,7 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -9254,6 +10445,7 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -9261,6 +10453,7 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -9269,17 +10462,20 @@ }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "brace-expansion": { "version": "1.1.11", "bundled": true, + "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -9288,6 +10484,7 @@ "braces": { "version": "2.3.2", "bundled": true, + "dev": true, "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -9304,6 +10501,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -9312,11 +10510,13 @@ }, "builtin-modules": { "version": "1.1.1", - "bundled": true + "bundled": true, + "dev": true }, "cache-base": { "version": "1.0.1", "bundled": true, + "dev": true, "requires": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", @@ -9331,13 +10531,15 @@ "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "caching-transform": { "version": "1.0.1", "bundled": true, + "dev": true, "requires": { "md5-hex": "^1.2.0", "mkdirp": "^0.5.1", @@ -9347,11 +10549,13 @@ "camelcase": { "version": "1.2.1", "bundled": true, + "dev": true, "optional": true }, "center-align": { "version": "0.1.3", "bundled": true, + "dev": true, "optional": true, "requires": { "align-text": "^0.1.3", @@ -9361,6 +10565,7 @@ "chalk": { "version": "1.1.3", "bundled": true, + "dev": true, "requires": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -9372,6 +10577,7 @@ "class-utils": { "version": "0.3.6", "bundled": true, + "dev": true, "requires": { "arr-union": "^3.1.0", "define-property": "^0.2.5", @@ -9382,19 +10588,22 @@ "define-property": { "version": "0.2.5", "bundled": true, + "dev": true, "requires": { "is-descriptor": "^0.1.0" } }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "cliui": { "version": "2.1.0", "bundled": true, + "dev": true, "optional": true, "requires": { "center-align": "^0.1.1", @@ -9405,17 +10614,20 @@ "wordwrap": { "version": "0.0.2", "bundled": true, + "dev": true, "optional": true } } }, "code-point-at": { "version": "1.1.0", - "bundled": true + "bundled": true, + "dev": true }, "collection-visit": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" @@ -9423,31 +10635,38 @@ }, "commondir": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "component-emitter": { "version": "1.2.1", - "bundled": true + "bundled": true, + "dev": true }, "concat-map": { "version": "0.0.1", - "bundled": true + "bundled": true, + "dev": true }, "convert-source-map": { "version": "1.5.1", - "bundled": true + "bundled": true, + "dev": true }, "copy-descriptor": { "version": "0.1.1", - "bundled": true + "bundled": true, + "dev": true }, "core-js": { "version": "2.5.6", - "bundled": true + "bundled": true, + "dev": true }, "cross-spawn": { "version": "4.0.2", "bundled": true, + "dev": true, "requires": { "lru-cache": "^4.0.1", "which": "^1.2.9" @@ -9456,25 +10675,30 @@ "debug": { "version": "2.6.9", "bundled": true, + "dev": true, "requires": { "ms": "2.0.0" } }, "debug-log": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "decamelize": { "version": "1.2.0", - "bundled": true + "bundled": true, + "dev": true }, "decode-uri-component": { "version": "0.2.0", - "bundled": true + "bundled": true, + "dev": true }, "default-require-extensions": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "strip-bom": "^2.0.0" } @@ -9482,6 +10706,7 @@ "define-property": { "version": "2.0.2", "bundled": true, + "dev": true, "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" @@ -9490,6 +10715,7 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -9497,6 +10723,7 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -9504,6 +10731,7 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -9512,17 +10740,20 @@ }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "detect-indent": { "version": "4.0.0", "bundled": true, + "dev": true, "requires": { "repeating": "^2.0.0" } @@ -9530,21 +10761,25 @@ "error-ex": { "version": "1.3.1", "bundled": true, + "dev": true, "requires": { "is-arrayish": "^0.2.1" } }, "escape-string-regexp": { "version": "1.0.5", - "bundled": true + "bundled": true, + "dev": true }, "esutils": { "version": "2.0.2", - "bundled": true + "bundled": true, + "dev": true }, "execa": { "version": "0.7.0", "bundled": true, + "dev": true, "requires": { "cross-spawn": "^5.0.1", "get-stream": "^3.0.0", @@ -9558,6 +10793,7 @@ "cross-spawn": { "version": "5.1.0", "bundled": true, + "dev": true, "requires": { "lru-cache": "^4.0.1", "shebang-command": "^1.2.0", @@ -9569,6 +10805,7 @@ "expand-brackets": { "version": "2.1.4", "bundled": true, + "dev": true, "requires": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -9582,6 +10819,7 @@ "define-property": { "version": "0.2.5", "bundled": true, + "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -9589,6 +10827,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -9598,6 +10837,7 @@ "extend-shallow": { "version": "3.0.2", "bundled": true, + "dev": true, "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" @@ -9606,6 +10846,7 @@ "is-extendable": { "version": "1.0.1", "bundled": true, + "dev": true, "requires": { "is-plain-object": "^2.0.4" } @@ -9615,6 +10856,7 @@ "extglob": { "version": "2.0.4", "bundled": true, + "dev": true, "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -9629,6 +10871,7 @@ "define-property": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -9636,6 +10879,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -9643,6 +10887,7 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -9650,6 +10895,7 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -9657,6 +10903,7 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -9665,13 +10912,15 @@ }, "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "fill-range": { "version": "4.0.0", "bundled": true, + "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -9682,6 +10931,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -9691,6 +10941,7 @@ "find-cache-dir": { "version": "0.1.1", "bundled": true, + "dev": true, "requires": { "commondir": "^1.0.1", "mkdirp": "^0.5.1", @@ -9700,17 +10951,20 @@ "find-up": { "version": "2.1.0", "bundled": true, + "dev": true, "requires": { "locate-path": "^2.0.0" } }, "for-in": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true }, "foreground-child": { "version": "1.5.6", "bundled": true, + "dev": true, "requires": { "cross-spawn": "^4", "signal-exit": "^3.0.0" @@ -9719,29 +10973,35 @@ "fragment-cache": { "version": "0.2.1", "bundled": true, + "dev": true, "requires": { "map-cache": "^0.2.2" } }, "fs.realpath": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "get-caller-file": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true }, "get-stream": { "version": "3.0.0", - "bundled": true + "bundled": true, + "dev": true }, "get-value": { "version": "2.0.6", - "bundled": true + "bundled": true, + "dev": true }, "glob": { "version": "7.1.2", "bundled": true, + "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -9753,15 +11013,18 @@ }, "globals": { "version": "9.18.0", - "bundled": true + "bundled": true, + "dev": true }, "graceful-fs": { "version": "4.1.11", - "bundled": true + "bundled": true, + "dev": true }, "handlebars": { "version": "4.0.11", "bundled": true, + "dev": true, "requires": { "async": "^1.4.0", "optimist": "^0.6.1", @@ -9772,6 +11035,7 @@ "source-map": { "version": "0.4.4", "bundled": true, + "dev": true, "requires": { "amdefine": ">=0.0.4" } @@ -9781,17 +11045,20 @@ "has-ansi": { "version": "2.0.0", "bundled": true, + "dev": true, "requires": { "ansi-regex": "^2.0.0" } }, "has-flag": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "has-value": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "get-value": "^2.0.6", "has-values": "^1.0.0", @@ -9800,13 +11067,15 @@ "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "has-values": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "is-number": "^3.0.0", "kind-of": "^4.0.0" @@ -9815,6 +11084,7 @@ "is-number": { "version": "3.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -9822,6 +11092,7 @@ "kind-of": { "version": "3.2.2", "bundled": true, + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -9831,6 +11102,7 @@ "kind-of": { "version": "4.0.0", "bundled": true, + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -9839,15 +11111,18 @@ }, "hosted-git-info": { "version": "2.6.0", - "bundled": true + "bundled": true, + "dev": true }, "imurmurhash": { "version": "0.1.4", - "bundled": true + "bundled": true, + "dev": true }, "inflight": { "version": "1.0.6", "bundled": true, + "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -9855,37 +11130,44 @@ }, "inherits": { "version": "2.0.3", - "bundled": true + "bundled": true, + "dev": true }, "invariant": { "version": "2.2.4", "bundled": true, + "dev": true, "requires": { "loose-envify": "^1.0.0" } }, "invert-kv": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "is-accessor-descriptor": { "version": "0.1.6", "bundled": true, + "dev": true, "requires": { "kind-of": "^3.0.2" } }, "is-arrayish": { "version": "0.2.1", - "bundled": true + "bundled": true, + "dev": true }, "is-buffer": { "version": "1.1.6", - "bundled": true + "bundled": true, + "dev": true }, "is-builtin-module": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "builtin-modules": "^1.0.0" } @@ -9893,6 +11175,7 @@ "is-data-descriptor": { "version": "0.1.4", "bundled": true, + "dev": true, "requires": { "kind-of": "^3.0.2" } @@ -9900,6 +11183,7 @@ "is-descriptor": { "version": "0.1.6", "bundled": true, + "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -9908,28 +11192,33 @@ "dependencies": { "kind-of": { "version": "5.1.0", - "bundled": true + "bundled": true, + "dev": true } } }, "is-extendable": { "version": "0.1.1", - "bundled": true + "bundled": true, + "dev": true }, "is-finite": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "is-number": { "version": "3.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^3.0.2" } @@ -9937,60 +11226,72 @@ "is-odd": { "version": "2.0.0", "bundled": true, + "dev": true, "requires": { "is-number": "^4.0.0" }, "dependencies": { "is-number": { "version": "4.0.0", - "bundled": true + "bundled": true, + "dev": true } } }, "is-plain-object": { "version": "2.0.4", "bundled": true, + "dev": true, "requires": { "isobject": "^3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "is-stream": { "version": "1.1.0", - "bundled": true + "bundled": true, + "dev": true }, "is-utf8": { "version": "0.2.1", - "bundled": true + "bundled": true, + "dev": true }, "is-windows": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true }, "isarray": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "isexe": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true }, "istanbul-lib-coverage": { "version": "1.2.0", - "bundled": true + "bundled": true, + "dev": true }, "istanbul-lib-hook": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { "append-transform": "^0.4.0" } @@ -9998,6 +11299,7 @@ "istanbul-lib-instrument": { "version": "1.10.1", "bundled": true, + "dev": true, "requires": { "babel-generator": "^6.18.0", "babel-template": "^6.16.0", @@ -10011,6 +11313,7 @@ "istanbul-lib-report": { "version": "1.1.3", "bundled": true, + "dev": true, "requires": { "istanbul-lib-coverage": "^1.1.2", "mkdirp": "^0.5.1", @@ -10021,6 +11324,7 @@ "supports-color": { "version": "3.2.3", "bundled": true, + "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -10030,6 +11334,7 @@ "istanbul-lib-source-maps": { "version": "1.2.3", "bundled": true, + "dev": true, "requires": { "debug": "^3.1.0", "istanbul-lib-coverage": "^1.1.2", @@ -10041,6 +11346,7 @@ "debug": { "version": "3.1.0", "bundled": true, + "dev": true, "requires": { "ms": "2.0.0" } @@ -10050,21 +11356,25 @@ "istanbul-reports": { "version": "1.4.0", "bundled": true, + "dev": true, "requires": { "handlebars": "^4.0.3" } }, "js-tokens": { "version": "3.0.2", - "bundled": true + "bundled": true, + "dev": true }, "jsesc": { "version": "1.3.0", - "bundled": true + "bundled": true, + "dev": true }, "kind-of": { "version": "3.2.2", "bundled": true, + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -10072,11 +11382,13 @@ "lazy-cache": { "version": "1.0.4", "bundled": true, + "dev": true, "optional": true }, "lcid": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "invert-kv": "^1.0.0" } @@ -10084,6 +11396,7 @@ "load-json-file": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { "graceful-fs": "^4.1.2", "parse-json": "^2.2.0", @@ -10095,6 +11408,7 @@ "locate-path": { "version": "2.0.0", "bundled": true, + "dev": true, "requires": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" @@ -10102,22 +11416,26 @@ "dependencies": { "path-exists": { "version": "3.0.0", - "bundled": true + "bundled": true, + "dev": true } } }, "lodash": { "version": "4.17.10", - "bundled": true + "bundled": true, + "dev": true }, "longest": { "version": "1.0.1", "bundled": true, + "dev": true, "optional": true }, "loose-envify": { "version": "1.3.1", "bundled": true, + "dev": true, "requires": { "js-tokens": "^3.0.0" } @@ -10125,6 +11443,7 @@ "lru-cache": { "version": "4.1.3", "bundled": true, + "dev": true, "requires": { "pseudomap": "^1.0.2", "yallist": "^2.1.2" @@ -10132,11 +11451,13 @@ }, "map-cache": { "version": "0.2.2", - "bundled": true + "bundled": true, + "dev": true }, "map-visit": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "object-visit": "^1.0.0" } @@ -10144,17 +11465,20 @@ "md5-hex": { "version": "1.3.0", "bundled": true, + "dev": true, "requires": { "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { "version": "0.1.1", - "bundled": true + "bundled": true, + "dev": true }, "mem": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { "mimic-fn": "^1.0.0" } @@ -10162,19 +11486,22 @@ "merge-source-map": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { "source-map": "^0.6.1" }, "dependencies": { "source-map": { "version": "0.6.1", - "bundled": true + "bundled": true, + "dev": true } } }, "micromatch": { "version": "3.1.10", "bundled": true, + "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -10193,28 +11520,33 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "mimic-fn": { "version": "1.2.0", - "bundled": true + "bundled": true, + "dev": true }, "minimatch": { "version": "3.0.4", "bundled": true, + "dev": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true + "bundled": true, + "dev": true }, "mixin-deep": { "version": "1.3.1", "bundled": true, + "dev": true, "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" @@ -10223,6 +11555,7 @@ "is-extendable": { "version": "1.0.1", "bundled": true, + "dev": true, "requires": { "is-plain-object": "^2.0.4" } @@ -10232,17 +11565,20 @@ "mkdirp": { "version": "0.5.1", "bundled": true, + "dev": true, "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "nanomatch": { "version": "1.2.9", "bundled": true, + "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -10260,21 +11596,25 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true + "bundled": true, + "dev": true }, "array-unique": { "version": "0.3.2", - "bundled": true + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "normalize-package-data": { "version": "2.4.0", "bundled": true, + "dev": true, "requires": { "hosted-git-info": "^2.1.4", "is-builtin-module": "^1.0.0", @@ -10285,21 +11625,25 @@ "npm-run-path": { "version": "2.0.2", "bundled": true, + "dev": true, "requires": { "path-key": "^2.0.0" } }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "object-assign": { "version": "4.1.1", - "bundled": true + "bundled": true, + "dev": true }, "object-copy": { "version": "0.1.0", "bundled": true, + "dev": true, "requires": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", @@ -10309,6 +11653,7 @@ "define-property": { "version": "0.2.5", "bundled": true, + "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -10318,32 +11663,37 @@ "object-visit": { "version": "1.0.1", "bundled": true, + "dev": true, "requires": { "isobject": "^3.0.0" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "object.pick": { "version": "1.3.0", "bundled": true, + "dev": true, "requires": { "isobject": "^3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "once": { "version": "1.4.0", "bundled": true, + "dev": true, "requires": { "wrappy": "1" } @@ -10351,6 +11701,7 @@ "optimist": { "version": "0.6.1", "bundled": true, + "dev": true, "requires": { "minimist": "~0.0.1", "wordwrap": "~0.0.2" @@ -10358,11 +11709,13 @@ }, "os-homedir": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true }, "os-locale": { "version": "2.1.0", "bundled": true, + "dev": true, "requires": { "execa": "^0.7.0", "lcid": "^1.0.0", @@ -10371,11 +11724,13 @@ }, "p-finally": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "p-limit": { "version": "1.2.0", "bundled": true, + "dev": true, "requires": { "p-try": "^1.0.0" } @@ -10383,47 +11738,56 @@ "p-locate": { "version": "2.0.0", "bundled": true, + "dev": true, "requires": { "p-limit": "^1.1.0" } }, "p-try": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "parse-json": { "version": "2.2.0", "bundled": true, + "dev": true, "requires": { "error-ex": "^1.2.0" } }, "pascalcase": { "version": "0.1.1", - "bundled": true + "bundled": true, + "dev": true }, "path-exists": { "version": "2.1.0", "bundled": true, + "dev": true, "requires": { "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "path-key": { "version": "2.0.1", - "bundled": true + "bundled": true, + "dev": true }, "path-parse": { "version": "1.0.5", - "bundled": true + "bundled": true, + "dev": true }, "path-type": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { "graceful-fs": "^4.1.2", "pify": "^2.0.0", @@ -10432,15 +11796,18 @@ }, "pify": { "version": "2.3.0", - "bundled": true + "bundled": true, + "dev": true }, "pinkie": { "version": "2.0.4", - "bundled": true + "bundled": true, + "dev": true }, "pinkie-promise": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "pinkie": "^2.0.0" } @@ -10448,6 +11815,7 @@ "pkg-dir": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "find-up": "^1.0.0" }, @@ -10455,6 +11823,7 @@ "find-up": { "version": "1.1.2", "bundled": true, + "dev": true, "requires": { "path-exists": "^2.0.0", "pinkie-promise": "^2.0.0" @@ -10464,15 +11833,18 @@ }, "posix-character-classes": { "version": "0.1.1", - "bundled": true + "bundled": true, + "dev": true }, "pseudomap": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true }, "read-pkg": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { "load-json-file": "^1.0.0", "normalize-package-data": "^2.3.2", @@ -10482,6 +11854,7 @@ "read-pkg-up": { "version": "1.0.1", "bundled": true, + "dev": true, "requires": { "find-up": "^1.0.0", "read-pkg": "^1.0.0" @@ -10490,6 +11863,7 @@ "find-up": { "version": "1.1.2", "bundled": true, + "dev": true, "requires": { "path-exists": "^2.0.0", "pinkie-promise": "^2.0.0" @@ -10499,11 +11873,13 @@ }, "regenerator-runtime": { "version": "0.11.1", - "bundled": true + "bundled": true, + "dev": true }, "regex-not": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" @@ -10511,42 +11887,51 @@ }, "repeat-element": { "version": "1.1.2", - "bundled": true + "bundled": true, + "dev": true }, "repeat-string": { "version": "1.6.1", - "bundled": true + "bundled": true, + "dev": true }, "repeating": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-finite": "^1.0.0" } }, "require-directory": { "version": "2.1.1", - "bundled": true + "bundled": true, + "dev": true }, "require-main-filename": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "resolve-from": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "resolve-url": { "version": "0.2.1", - "bundled": true + "bundled": true, + "dev": true }, "ret": { "version": "0.1.15", - "bundled": true + "bundled": true, + "dev": true }, "right-align": { "version": "0.1.3", "bundled": true, + "dev": true, "optional": true, "requires": { "align-text": "^0.1.1" @@ -10555,6 +11940,7 @@ "rimraf": { "version": "2.6.2", "bundled": true, + "dev": true, "requires": { "glob": "^7.0.5" } @@ -10562,21 +11948,25 @@ "safe-regex": { "version": "1.1.0", "bundled": true, + "dev": true, "requires": { "ret": "~0.1.10" } }, "semver": { "version": "5.5.0", - "bundled": true + "bundled": true, + "dev": true }, "set-blocking": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "set-value": { "version": "2.0.0", "bundled": true, + "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -10587,6 +11977,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -10596,25 +11987,30 @@ "shebang-command": { "version": "1.2.0", "bundled": true, + "dev": true, "requires": { "shebang-regex": "^1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "signal-exit": { "version": "3.0.2", - "bundled": true + "bundled": true, + "dev": true }, "slide": { "version": "1.1.6", - "bundled": true + "bundled": true, + "dev": true }, "snapdragon": { "version": "0.8.2", "bundled": true, + "dev": true, "requires": { "base": "^0.11.1", "debug": "^2.2.0", @@ -10629,6 +12025,7 @@ "define-property": { "version": "0.2.5", "bundled": true, + "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -10636,6 +12033,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -10645,6 +12043,7 @@ "snapdragon-node": { "version": "2.1.1", "bundled": true, + "dev": true, "requires": { "define-property": "^1.0.0", "isobject": "^3.0.0", @@ -10654,6 +12053,7 @@ "define-property": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -10661,6 +12061,7 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -10668,6 +12069,7 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -10675,6 +12077,7 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -10683,28 +12086,33 @@ }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "snapdragon-util": { "version": "3.0.1", "bundled": true, + "dev": true, "requires": { "kind-of": "^3.2.0" } }, "source-map": { "version": "0.5.7", - "bundled": true + "bundled": true, + "dev": true }, "source-map-resolve": { "version": "0.5.1", "bundled": true, + "dev": true, "requires": { "atob": "^2.0.0", "decode-uri-component": "^0.2.0", @@ -10715,11 +12123,13 @@ }, "source-map-url": { "version": "0.4.0", - "bundled": true + "bundled": true, + "dev": true }, "spawn-wrap": { "version": "1.4.2", "bundled": true, + "dev": true, "requires": { "foreground-child": "^1.5.6", "mkdirp": "^0.5.0", @@ -10732,6 +12142,7 @@ "spdx-correct": { "version": "3.0.0", "bundled": true, + "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -10739,11 +12150,13 @@ }, "spdx-exceptions": { "version": "2.1.0", - "bundled": true + "bundled": true, + "dev": true }, "spdx-expression-parse": { "version": "3.0.0", "bundled": true, + "dev": true, "requires": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" @@ -10751,11 +12164,13 @@ }, "spdx-license-ids": { "version": "3.0.0", - "bundled": true + "bundled": true, + "dev": true }, "split-string": { "version": "3.1.0", "bundled": true, + "dev": true, "requires": { "extend-shallow": "^3.0.0" } @@ -10763,6 +12178,7 @@ "static-extend": { "version": "0.1.2", "bundled": true, + "dev": true, "requires": { "define-property": "^0.2.5", "object-copy": "^0.1.0" @@ -10771,6 +12187,7 @@ "define-property": { "version": "0.2.5", "bundled": true, + "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -10780,6 +12197,7 @@ "string-width": { "version": "2.1.1", "bundled": true, + "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" @@ -10787,11 +12205,13 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true + "bundled": true, + "dev": true }, "strip-ansi": { "version": "4.0.0", "bundled": true, + "dev": true, "requires": { "ansi-regex": "^3.0.0" } @@ -10801,6 +12221,7 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, + "dev": true, "requires": { "ansi-regex": "^2.0.0" } @@ -10808,21 +12229,25 @@ "strip-bom": { "version": "2.0.0", "bundled": true, + "dev": true, "requires": { "is-utf8": "^0.2.0" } }, "strip-eof": { "version": "1.0.0", - "bundled": true + "bundled": true, + "dev": true }, "supports-color": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "test-exclude": { "version": "4.2.1", "bundled": true, + "dev": true, "requires": { "arrify": "^1.0.1", "micromatch": "^3.1.8", @@ -10833,15 +12258,18 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true + "bundled": true, + "dev": true }, "array-unique": { "version": "0.3.2", - "bundled": true + "bundled": true, + "dev": true }, "braces": { "version": "2.3.2", "bundled": true, + "dev": true, "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -10858,6 +12286,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -10867,6 +12296,7 @@ "expand-brackets": { "version": "2.1.4", "bundled": true, + "dev": true, "requires": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -10880,6 +12310,7 @@ "define-property": { "version": "0.2.5", "bundled": true, + "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -10887,6 +12318,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -10894,6 +12326,7 @@ "is-accessor-descriptor": { "version": "0.1.6", "bundled": true, + "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -10901,6 +12334,7 @@ "kind-of": { "version": "3.2.2", "bundled": true, + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -10910,6 +12344,7 @@ "is-data-descriptor": { "version": "0.1.4", "bundled": true, + "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -10917,6 +12352,7 @@ "kind-of": { "version": "3.2.2", "bundled": true, + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -10926,6 +12362,7 @@ "is-descriptor": { "version": "0.1.6", "bundled": true, + "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -10934,13 +12371,15 @@ }, "kind-of": { "version": "5.1.0", - "bundled": true + "bundled": true, + "dev": true } } }, "extglob": { "version": "2.0.4", "bundled": true, + "dev": true, "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -10955,6 +12394,7 @@ "define-property": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -10962,6 +12402,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -10971,6 +12412,7 @@ "fill-range": { "version": "4.0.0", "bundled": true, + "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -10981,6 +12423,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -10990,6 +12433,7 @@ "is-accessor-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -10997,6 +12441,7 @@ "is-data-descriptor": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -11004,6 +12449,7 @@ "is-descriptor": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -11013,6 +12459,7 @@ "is-number": { "version": "3.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -11020,6 +12467,7 @@ "kind-of": { "version": "3.2.2", "bundled": true, + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -11028,15 +12476,18 @@ }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true }, "micromatch": { "version": "3.1.10", "bundled": true, + "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -11057,11 +12508,13 @@ }, "to-fast-properties": { "version": "1.0.3", - "bundled": true + "bundled": true, + "dev": true }, "to-object-path": { "version": "0.3.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^3.0.2" } @@ -11069,6 +12522,7 @@ "to-regex": { "version": "3.0.2", "bundled": true, + "dev": true, "requires": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", @@ -11079,6 +12533,7 @@ "to-regex-range": { "version": "2.1.1", "bundled": true, + "dev": true, "requires": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" @@ -11087,6 +12542,7 @@ "is-number": { "version": "3.0.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^3.0.2" } @@ -11095,11 +12551,13 @@ }, "trim-right": { "version": "1.0.1", - "bundled": true + "bundled": true, + "dev": true }, "uglify-js": { "version": "2.8.29", "bundled": true, + "dev": true, "optional": true, "requires": { "source-map": "~0.5.1", @@ -11110,6 +12568,7 @@ "yargs": { "version": "3.10.0", "bundled": true, + "dev": true, "optional": true, "requires": { "camelcase": "^1.0.2", @@ -11123,11 +12582,13 @@ "uglify-to-browserify": { "version": "1.0.2", "bundled": true, + "dev": true, "optional": true }, "union-value": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", @@ -11138,6 +12599,7 @@ "extend-shallow": { "version": "2.0.1", "bundled": true, + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -11145,6 +12607,7 @@ "set-value": { "version": "0.4.3", "bundled": true, + "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -11157,6 +12620,7 @@ "unset-value": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "has-value": "^0.3.1", "isobject": "^3.0.0" @@ -11165,6 +12629,7 @@ "has-value": { "version": "0.3.1", "bundled": true, + "dev": true, "requires": { "get-value": "^2.0.3", "has-values": "^0.1.4", @@ -11174,6 +12639,7 @@ "isobject": { "version": "2.1.0", "bundled": true, + "dev": true, "requires": { "isarray": "1.0.0" } @@ -11182,34 +12648,40 @@ }, "has-values": { "version": "0.1.4", - "bundled": true + "bundled": true, + "dev": true }, "isobject": { "version": "3.0.1", - "bundled": true + "bundled": true, + "dev": true } } }, "urix": { "version": "0.1.0", - "bundled": true + "bundled": true, + "dev": true }, "use": { "version": "3.1.0", "bundled": true, + "dev": true, "requires": { "kind-of": "^6.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true + "bundled": true, + "dev": true } } }, "validate-npm-package-license": { "version": "3.0.3", "bundled": true, + "dev": true, "requires": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -11218,26 +12690,31 @@ "which": { "version": "1.3.0", "bundled": true, + "dev": true, "requires": { "isexe": "^2.0.0" } }, "which-module": { "version": "2.0.0", - "bundled": true + "bundled": true, + "dev": true }, "window-size": { "version": "0.1.0", "bundled": true, + "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "bundled": true + "bundled": true, + "dev": true }, "wrap-ansi": { "version": "2.1.0", "bundled": true, + "dev": true, "requires": { "string-width": "^1.0.1", "strip-ansi": "^3.0.1" @@ -11246,6 +12723,7 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, + "dev": true, "requires": { "number-is-nan": "^1.0.0" } @@ -11253,6 +12731,7 @@ "string-width": { "version": "1.0.2", "bundled": true, + "dev": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -11263,11 +12742,13 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true }, "write-file-atomic": { "version": "1.3.4", "bundled": true, + "dev": true, "requires": { "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", @@ -11276,15 +12757,18 @@ }, "y18n": { "version": "3.2.1", - "bundled": true + "bundled": true, + "dev": true }, "yallist": { "version": "2.1.2", - "bundled": true + "bundled": true, + "dev": true }, "yargs": { "version": "11.1.0", "bundled": true, + "dev": true, "requires": { "cliui": "^4.0.0", "decamelize": "^1.1.1", @@ -11302,15 +12786,18 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true + "bundled": true, + "dev": true }, "camelcase": { "version": "4.1.0", - "bundled": true + "bundled": true, + "dev": true }, "cliui": { "version": "4.1.0", "bundled": true, + "dev": true, "requires": { "string-width": "^2.1.1", "strip-ansi": "^4.0.0", @@ -11320,6 +12807,7 @@ "strip-ansi": { "version": "4.0.0", "bundled": true, + "dev": true, "requires": { "ansi-regex": "^3.0.0" } @@ -11327,6 +12815,7 @@ "yargs-parser": { "version": "9.0.2", "bundled": true, + "dev": true, "requires": { "camelcase": "^4.1.0" } @@ -11336,13 +12825,15 @@ "yargs-parser": { "version": "8.1.0", "bundled": true, + "dev": true, "requires": { "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { "version": "4.1.0", - "bundled": true + "bundled": true, + "dev": true } } } @@ -11390,9 +12881,9 @@ "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==" }, "object-keys": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", - "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz", + "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg==" }, "object-visit": { "version": "1.0.1", @@ -11850,12 +13341,13 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, "prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" } }, "propagate": { @@ -11959,9 +13451,9 @@ } }, "randombytes": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", - "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "requires": { "safe-buffer": "^5.1.0" } @@ -11992,6 +13484,11 @@ } } }, + "react-is": { + "version": "16.8.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.2.tgz", + "integrity": "sha512-D+NxhSR2HUCjYky1q1DwpNUD44cDpUXzSmmFyC3ug1bClcU/iDNy0YNn1iwme28fn+NFhpA13IndOd42CrFb+Q==" + }, "read-pkg": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", @@ -12325,6 +13822,12 @@ "snapdragon": "^0.8.1", "to-regex": "^3.0.2" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "optional": true } } }, @@ -12739,12 +14242,6 @@ "path-exists": "^3.0.0" } }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, "p-limit": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz", @@ -12975,6 +14472,11 @@ "requires": { "is-extendable": "^0.1.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -13062,11 +14564,6 @@ "requires": { "ms": "^2.1.1" } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" } } }, @@ -13094,6 +14591,21 @@ "parseuri": "0.0.5", "socket.io-parser": "~3.3.0", "to-array": "0.1.4" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } } }, "socket.io-parser": { @@ -13106,10 +14618,23 @@ "isarray": "2.0.1" }, "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, "isarray": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -13302,9 +14827,9 @@ } }, "globals": { - "version": "11.10.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.10.0.tgz", - "integrity": "sha512-0GZF1RiPKU97IHUO5TORo9w1PwrH/NBPl+fS7oMLdaTRiYmYbwK4NWoZWrAdd0/abG9R2BU+OiwyQpTpE6pdfQ==" + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", + "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==" }, "strip-ansi": { "version": "4.0.0", @@ -13488,20 +15013,20 @@ } }, "tape": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/tape/-/tape-4.9.2.tgz", - "integrity": "sha512-lPXKRKILZ1kZaUy5ynWKs8ATGSUO7HAFHCFnBam6FaGSqPdOwMWbxXHq4EXFLE8WRTleo/YOMXkaUTRmTB1Fiw==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/tape/-/tape-4.10.1.tgz", + "integrity": "sha512-G0DywYV1jQeY3axeYnXUOt6ktnxS9OPJh97FGR3nrua8lhWi1zPflLxcAHavZ7Jf3qUfY7cxcVIVFa4mY2IY1w==", "requires": { "deep-equal": "~1.0.1", "defined": "~1.0.0", "for-each": "~0.3.3", "function-bind": "~1.1.1", - "glob": "~7.1.2", + "glob": "~7.1.3", "has": "~1.0.3", "inherits": "~2.0.3", "minimist": "~1.2.0", "object-inspect": "~1.6.0", - "resolve": "~1.7.1", + "resolve": "~1.10.0", "resumer": "~0.0.0", "string.prototype.trim": "~1.1.2", "through": "~2.3.8" @@ -13516,23 +15041,9 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "resolve": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", - "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", - "requires": { - "path-parse": "^1.0.5" - } } } }, - "text-encoding": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", - "integrity": "sha1-45mpgiV6J22uQou5KEXLcb3CbRk=", - "dev": true - }, "text-extensions": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", @@ -13799,9 +15310,9 @@ "dev": true }, "unorm": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.4.1.tgz", - "integrity": "sha1-NkIA1fE2RsqLzURJAnEzVhR5IwA=" + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.5.0.tgz", + "integrity": "sha512-sMfSWoiRaXXeDZSXC+YRZ23H4xchQpwxjpw1tmfR+kgbBCaOgln4NI0LXejJIhnBuKINrB3WRn+ZI8IWssirVw==" }, "unset-value": { "version": "1.0.0", @@ -14054,9 +15565,9 @@ } }, "ws": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.3.tgz", - "integrity": "sha512-tbSxiT+qJI223AP4iLfQbkbxkwdFcneYinM2+x46Gx2wgvbaOMO36czfdfVUBRTHvzAMRhDd98sA5d/BuWbQdg==", + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", + "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", "requires": { "async-limiter": "~1.0.0" } From 42e3eaeafbf8f6a9c25f954ca3201526dfe96275 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Wed, 20 Feb 2019 10:22:03 -0800 Subject: [PATCH 212/480] Fixed existing test --- test/integration/address.js | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/test/integration/address.js b/test/integration/address.js index 25633f68..d88a3fab 100644 --- a/test/integration/address.js +++ b/test/integration/address.js @@ -102,13 +102,16 @@ describe(`#address`, () => { const result = await BITBOX.Address.utxo(addr) //console.log(`result: ${JSON.stringify(result, null, 2)}`) - assert.hasAllKeys(result, ["utxos", "legacyAddress", "cashAddress"]) + assert.hasAllKeys(result, [ + "utxos", + "legacyAddress", + "cashAddress", + "scriptPubKey" + ]) assert.isArray(result.utxos) - assert.hasAllKeys(result.utxos[0], [ - "address", + assert.hasAnyKeys(result.utxos[0], [ "txid", "vout", - "scriptPubKey", "amount", "satoshis", "height", @@ -126,13 +129,16 @@ describe(`#address`, () => { //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) - assert.hasAllKeys(result[0], ["utxos", "legacyAddress", "cashAddress"]) + assert.hasAllKeys(result[0], [ + "utxos", + "legacyAddress", + "cashAddress", + "scriptPubKey" + ]) assert.isArray(result[0].utxos) - assert.hasAllKeys(result[0].utxos[0], [ - "address", + assert.hasAnyKeys(result[0].utxos[0], [ "txid", "vout", - "scriptPubKey", "amount", "satoshis", "height", From afe220be91ffd5e8f5641659dbd8039a03a35d01 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Wed, 20 Feb 2019 15:18:57 -0800 Subject: [PATCH 213/480] Refactored rawtransaction.decodeScript() --- lib/RawTransactions.js | 30 ++++++++++++++++----- src/RawTransactions.js | 26 ++++++++++++++---- test/integration/rawtransaction.js | 42 ++++++++++++++++++++++++++++++ 3 files changed, 86 insertions(+), 12 deletions(-) diff --git a/lib/RawTransactions.js b/lib/RawTransactions.js index 7e3e286f..62cf747a 100644 --- a/lib/RawTransactions.js +++ b/lib/RawTransactions.js @@ -53,11 +53,27 @@ var RawTransactions = function () { }, { key: "decodeScript", value: async function decodeScript(script) { - if (typeof script !== "string") script = JSON.stringify(script); + //if (typeof script !== "string") script = JSON.stringify(script) try { - var response = await _axios2.default.get(this.restURL + "rawtransactions/decodeScript/" + script); - return response.data; + if (typeof script === "string") { + var response = await _axios2.default.get(this.restURL + "rawtransactions/decodeScript/" + script); + + return response.data; + } else if (Array.isArray(script)) { + var options = { + method: "POST", + url: this.restURL + "rawtransactions/decodeScript", + data: { + hexes: script + } + }; + var _response2 = await (0, _axios2.default)(options); + + return _response2.data; + } + + throw new Error("Input must be a string or array of strings."); } catch (error) { if (error.response && error.response.data) throw error.response.data;else throw error; } @@ -81,9 +97,9 @@ var RawTransactions = function () { verbose: verbose } }; - var _response2 = await (0, _axios2.default)(options); + var _response3 = await (0, _axios2.default)(options); - return _response2.data; + return _response3.data; } throw new Error("Input must be a string or array of strings."); @@ -118,9 +134,9 @@ var RawTransactions = function () { hexes: hex } }; - var _response3 = await (0, _axios2.default)(options); + var _response4 = await (0, _axios2.default)(options); - return _response3.data; + return _response4.data; } throw new Error("Input hex must be a string or array of strings."); diff --git a/src/RawTransactions.js b/src/RawTransactions.js index c000d5d7..08d6613e 100644 --- a/src/RawTransactions.js +++ b/src/RawTransactions.js @@ -36,13 +36,29 @@ class RawTransactions { } async decodeScript(script) { - if (typeof script !== "string") script = JSON.stringify(script) + //if (typeof script !== "string") script = JSON.stringify(script) try { - const response = await axios.get( - `${this.restURL}rawtransactions/decodeScript/${script}` - ) - return response.data + if (typeof script === "string") { + const response = await axios.get( + `${this.restURL}rawtransactions/decodeScript/${script}` + ) + + return response.data + } else if (Array.isArray(script)) { + const options = { + method: "POST", + url: `${this.restURL}rawtransactions/decodeScript`, + data: { + hexes: script + } + } + const response = await axios(options) + + return response.data + } + + throw new Error(`Input must be a string or array of strings.`) } catch (error) { if (error.response && error.response.data) throw error.response.data else throw error diff --git a/test/integration/rawtransaction.js b/test/integration/rawtransaction.js index c44ae005..0cc4493a 100644 --- a/test/integration/rawtransaction.js +++ b/test/integration/rawtransaction.js @@ -172,4 +172,46 @@ describe("#rawtransaction", () => { assert.isArray(result[0].vout) }) }) + + describe("#decodeScript", () => { + it("should decode script for a single hex", async () => { + const hex = + "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" + + const result = await BITBOX.RawTransactions.decodeScript(hex) + //console.log(`result ${JSON.stringify(result, null, 2)}`) + + assert.hasAllKeys(result, ["asm", "type", "p2sh"]) + }) + + // CT 2/20/19 - Waiting for this PR to be merged complete the test: + // https://github.com/Bitcoin-com/rest.bitcoin.com/pull/312 + /* + it("should decode an array of tx hexes", async () => { + const hexes = [ + "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16", + "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" + ] + + const result = await BITBOX.RawTransactions.decodeScript(hexes) + console.log(`result ${JSON.stringify(result, null, 2)}`) + }) +*/ + /* + it(`should throw an error for improper single input`, async () => { + try { + const addr = 12345 + + await BITBOX.RawTransactions.decodeRawTransaction(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input must be a string or array of strings.` + ) + } + }) +*/ + }) }) From fb82960e58d43a2abb5bb31ebeb4050c8d820836 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Wed, 20 Feb 2019 15:22:05 -0800 Subject: [PATCH 214/480] Refactored sendRawTransaction() to use new single endpoint --- src/RawTransactions.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/RawTransactions.js b/src/RawTransactions.js index 08d6613e..9141fbe5 100644 --- a/src/RawTransactions.js +++ b/src/RawTransactions.js @@ -100,11 +100,8 @@ class RawTransactions { try { // Single tx hex. if (typeof hex === "string") { - const response = await axios.post( - `${this.restURL}rawtransactions/sendRawTransaction`, - { - hexes: [hex] - } + const response = await axios.get( + `${this.restURL}rawtransactions/sendRawTransaction/${hex}` ) if (response.data === "66: insufficient priority") { From e648690faabc7c8d784713f2b67ab196e029cb80 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Wed, 20 Feb 2019 16:50:49 -0800 Subject: [PATCH 215/480] Refactored decodeScript unit test --- lib/RawTransactions.js | 4 +--- test/unit/RawTransactions.js | 13 +++++++++---- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/lib/RawTransactions.js b/lib/RawTransactions.js index 62cf747a..a4b439c6 100644 --- a/lib/RawTransactions.js +++ b/lib/RawTransactions.js @@ -115,9 +115,7 @@ var RawTransactions = function () { try { // Single tx hex. if (typeof hex === "string") { - var response = await _axios2.default.post(this.restURL + "rawtransactions/sendRawTransaction", { - hexes: [hex] - }); + var response = await _axios2.default.get(this.restURL + "rawtransactions/sendRawTransaction/" + hex); if (response.data === "66: insufficient priority") { console.warn("WARN: Insufficient Priority! This is likely due to a fee that is too low, or insufficient funds.\n Please ensure that there is BCH in the given wallet. If you are running on the testnet, get some\n BCH from the testnet faucet at https://developer.bitcoin.com/faucets/bch"); diff --git a/test/unit/RawTransactions.js b/test/unit/RawTransactions.js index d302c7c9..d6ad6228 100644 --- a/test/unit/RawTransactions.js +++ b/test/unit/RawTransactions.js @@ -53,7 +53,7 @@ describe("#RawTransactions", () => { beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) - it("should decode script", done => { + it("should decode script", async () => { const data = { asm: "OP_RETURN 5361746f736869204e616b616d6f746f", type: "nulldata", @@ -63,13 +63,18 @@ describe("#RawTransactions", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.RawTransactions.decodeScript([ + const result = await BITBOX.RawTransactions.decodeScript( "6a105361746f736869204e616b616d6f746f" - ]) + ) + //console.log(`result: ${util.inspect(result)}`) + + assert.deepEqual(data, result) + /* .then(result => { assert.deepEqual(data, result) }) .then(done, done) + */ }) }) @@ -104,7 +109,7 @@ describe("#RawTransactions", () => { const data = "Error: transaction already in block chain" const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "post").returns(resolved) + sandbox.stub(axios, "get").returns(resolved) const result = await BITBOX.RawTransactions.sendRawTransaction( "020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000" From e8cb8faa66084ba64da20f632b439ccf0f31a9c2 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Wed, 20 Feb 2019 17:19:23 -0800 Subject: [PATCH 216/480] Added integration tests for senRawTransaction --- test/integration/rawtransaction.js | 57 ++++++++++++++++++++++++++++++ test/unit/RawTransactions.js | 6 ---- 2 files changed, 57 insertions(+), 6 deletions(-) diff --git a/test/integration/rawtransaction.js b/test/integration/rawtransaction.js index 0cc4493a..d756862c 100644 --- a/test/integration/rawtransaction.js +++ b/test/integration/rawtransaction.js @@ -214,4 +214,61 @@ describe("#rawtransaction", () => { }) */ }) + + /* + Testing sentRawTransaction isn't really possible with an integration test, + as the endpoint really needs an e2e test to be properly tested. The tests + below expect error messages returned from the server, but at least test + that the server is responding on those endpoints, and responds consistently. + */ + describe("sendRawTransaction", () => { + it("should send a single transaction hex", async () => { + try { + const hex = + "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" + + await BITBOX.RawTransactions.sendRawTransaction(hex) + //console.log(`result ${JSON.stringify(result, null, 2)}`) + + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: ${util.inspect(err)}`) + + assert.hasAllKeys(err, ["error"]) + assert.include(err.error, "Missing inputs") + } + }) + + it("should send an array of tx hexes", async () => { + try { + const hexes = [ + "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000", + "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" + ] + + const result = await BITBOX.RawTransactions.sendRawTransaction(hexes) + console.log(`result ${JSON.stringify(result, null, 2)}`) + } catch (err) { + // console.log(`err: ${util.inspect(err)}`) + + assert.hasAllKeys(err, ["error"]) + assert.include(err.error, "Missing inputs") + } + }) + + it(`should throw an error for improper single input`, async () => { + try { + const addr = 12345 + + await BITBOX.RawTransactions.sendRawTransaction(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input hex must be a string or array of strings` + ) + } + }) + }) }) diff --git a/test/unit/RawTransactions.js b/test/unit/RawTransactions.js index d6ad6228..900d5bbf 100644 --- a/test/unit/RawTransactions.js +++ b/test/unit/RawTransactions.js @@ -69,12 +69,6 @@ describe("#RawTransactions", () => { //console.log(`result: ${util.inspect(result)}`) assert.deepEqual(data, result) - /* - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - */ }) }) From 9ccbc21a5ad3f6eccaaf95f267f5ae39ffbea429 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Wed, 20 Feb 2019 17:33:27 -0800 Subject: [PATCH 217/480] perf(sendRawTransactions): single send returns txid string. bulk array returns array --- index.js | 2 +- package-lock.json | 2 +- package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index dba31909..d3eb43ae 100755 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") -program.version("3.1.0 ", "-v, --version") +program.version("4.0.0 ", "-v, --version") program .command("new ") diff --git a/package-lock.json b/package-lock.json index ab412a19..7d6f13fa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "3.1.0", + "version": "4.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 93400718..d02fd147 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "3.1.0", + "version": "4.0.0", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ From ede9b461a524d1f7c7d4069fe3e7e1f9bc5d993a Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Wed, 20 Feb 2019 17:41:45 -0800 Subject: [PATCH 218/480] Added e2e test for sendRawTransaction single call --- .../package.json | 0 .../sendrawtransaction.js | 5 +- .../send-raw-transaction-single/package.json | 28 +++ .../sendrawtransaction.js | 184 ++++++++++++++++++ 4 files changed, 215 insertions(+), 2 deletions(-) rename test/e2e/{sendrawtransaction => send-raw-transaction-bulk}/package.json (100%) rename test/e2e/{sendrawtransaction => send-raw-transaction-bulk}/sendrawtransaction.js (97%) create mode 100644 test/e2e/send-raw-transaction-single/package.json create mode 100644 test/e2e/send-raw-transaction-single/sendrawtransaction.js diff --git a/test/e2e/sendrawtransaction/package.json b/test/e2e/send-raw-transaction-bulk/package.json similarity index 100% rename from test/e2e/sendrawtransaction/package.json rename to test/e2e/send-raw-transaction-bulk/package.json diff --git a/test/e2e/sendrawtransaction/sendrawtransaction.js b/test/e2e/send-raw-transaction-bulk/sendrawtransaction.js similarity index 97% rename from test/e2e/sendrawtransaction/sendrawtransaction.js rename to test/e2e/send-raw-transaction-bulk/sendrawtransaction.js index 87d51d99..85261259 100644 --- a/test/e2e/sendrawtransaction/sendrawtransaction.js +++ b/test/e2e/send-raw-transaction-bulk/sendrawtransaction.js @@ -20,8 +20,8 @@ const SATOSHIS_TO_SEND = 1000 // Instantiate BITBOX. const bitboxLib = "../../../lib/bitbox-sdk" const BITBOXSDK = require(bitboxLib).default -//const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v2/" }) -const BITBOX = new BITBOXSDK({ restURL: "http://localhost:3000/v2/" }) +const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v2/" }) +//const BITBOX = new BITBOXSDK({ restURL: "http://localhost:3000/v2/" }) const util = require("util") @@ -51,6 +51,7 @@ async function testSend() { hex2 ]) console.log(`Transaction IDs: ${JSON.stringify(broadcast, null, 2)}`) + console.log(`Should return an array of TXID strings.`) } catch (err) { console.log(`Error in testSend: `, err) } diff --git a/test/e2e/send-raw-transaction-single/package.json b/test/e2e/send-raw-transaction-single/package.json new file mode 100644 index 00000000..6f2b009f --- /dev/null +++ b/test/e2e/send-raw-transaction-single/package.json @@ -0,0 +1,28 @@ +{ + "name": "sendrawtransaction", + "version": "1.0.0", + "description": "e2e test - Send two transactions in parallel.", + "main": "sendrawtransaction.js", + "scripts": { + "test": "echo no tests yet", + "start": "node sendrawtransaction.js" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/Bitcoin-com/bitbox-javascript-sdk.git" + }, + "keywords": [ + "bitbox", + "bch", + "bitcoin", + "bitcoin cash", + "bitcoin.com", + "javascript" + ], + "author": "Chris Troutner ", + "license": "MIT", + "bugs": { + "url": "https://github.com/Bitcoin-com/bitbox-javascript-sdk/issues" + }, + "homepage": "https://github.com/Bitcoin-com/bitbox-javascript-sdk/blob/master/README.md" +} diff --git a/test/e2e/send-raw-transaction-single/sendrawtransaction.js b/test/e2e/send-raw-transaction-single/sendrawtransaction.js new file mode 100644 index 00000000..f62f5ea0 --- /dev/null +++ b/test/e2e/send-raw-transaction-single/sendrawtransaction.js @@ -0,0 +1,184 @@ +/* + This is an end-to-end test adapted from the send-bch example. It's purpose + is to test the sendRawTransaction endpoint. + + This version tests the single send call. + + Instructions: + - Ensure the address in the wallet.json file has some tBCH. + - Ensure the address in the wallet.json file has a UTXOs between 0.1 and + 0.001 tBCH + - This test will generate a single transaction from a UTXOs and broadcast it + using the sendrawtransaction single GET endpoint. +*/ + +// Replace the address below with the address you want to send the BCH to. +const RECV_ADDR1 = `bchtest:qzfn2mly05t6fjsh5kjj0dqq0jjtct27ng089dgg05` +const SATOSHIS_TO_SEND = 1000 + +// Instantiate BITBOX. +const bitboxLib = "../../../lib/bitbox-sdk" +const BITBOXSDK = require(bitboxLib).default +const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v2/" }) +//const BITBOX = new BITBOXSDK({ restURL: "http://localhost:3000/v2/" }) + +const util = require("util") + +// Open the wallet generated with create-wallet. +try { + var walletInfo = require(`./wallet.json`) +} catch (err) { + console.log( + `Could not open wallet.json. Generate a wallet with create-wallet first.` + ) + process.exit(0) +} + +const SEND_ADDR = walletInfo.cashAddress +const SEND_MNEMONIC = walletInfo.mnemonic + +async function testSend() { + try { + const hex1 = await buildTx1(RECV_ADDR1) + //const hex2 = await buildTx2(RECV_ADDR2) + + console.log(`hex1: ${hex1}\n\n`) + //console.log(`hex2: ${hex2}\n\n`) + + const broadcast = await BITBOX.RawTransactions.sendRawTransaction(hex1) + + console.log(`Transaction IDs: ${JSON.stringify(broadcast, null, 2)}`) + console.log(`Should return a TXID string.`) + } catch (err) { + console.log(`Error in testSend: `, err) + } +} +testSend() + +// Build a TX hex with the largest UTXO. +async function buildTx1(recAddr) { + try { + // Get the balance of the sending address. + const balance = await getBCHBalance(SEND_ADDR, false) + console.log(`balance: ${JSON.stringify(balance, null, 2)}`) + console.log(`Balance of sending address ${SEND_ADDR} is ${balance} BCH.`) + + // Exit if the balance is zero. + if (balance <= 0.0) { + console.log(`Balance of sending address is zero. Exiting.`) + process.exit(0) + } + + const SEND_ADDR_LEGACY = BITBOX.Address.toLegacyAddress(SEND_ADDR) + const RECV_ADDR_LEGACY = BITBOX.Address.toLegacyAddress(recAddr) + console.log(`Sender Legacy Address: ${SEND_ADDR_LEGACY}`) + console.log(`Receiver Legacy Address: ${RECV_ADDR_LEGACY}`) + + const balance2 = await getBCHBalance(recAddr, false) + //console.log(`Balance of recieving address ${recAddr} is ${balance2} BCH.`) + + const u = await BITBOX.Address.utxo(SEND_ADDR) + //console.log(`u: ${JSON.stringify(u, null, 2)}`) + const utxo = findBiggestUtxo(u.utxos) + console.log(`utxo: ${JSON.stringify(utxo, null, 2)}`) + + // instance of transaction builder + const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + + const satoshisToSend = SATOSHIS_TO_SEND + const originalAmount = utxo.satoshis + const vout = utxo.vout + const txid = utxo.txid + + // add input with txid and index of vout + transactionBuilder.addInput(txid, vout) + + // get byte count to calculate fee. paying 1.2 sat/byte + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 2 } + ) + console.log(`byteCount: ${byteCount}`) + const satoshisPerByte = 1.0 + const txFee = Math.floor(satoshisPerByte * byteCount) + console.log(`txFee: ${txFee}`) + + // amount to send back to the sending address. + // It's the original amount - 1 sat/byte for tx size + const remainder = originalAmount - satoshisToSend - txFee + + // add output w/ address and amount to send + transactionBuilder.addOutput(recAddr, satoshisToSend) + transactionBuilder.addOutput(SEND_ADDR, remainder) + + // Generate a change address from a Mnemonic of a private key. + const change = changeAddrFromMnemonic(SEND_MNEMONIC) + + // Generate a keypair from the change address. + const keyPair = BITBOX.HDNode.toKeyPair(change) + + // Sign the transaction with the HD node. + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + + // build tx + const tx = transactionBuilder.build() + // output rawhex + const hex = tx.toHex() + + return hex + } catch (err) { + console.log(`Error in buildTx().`) + throw err + } +} + +// Generate a change address from a Mnemonic of a private key. +function changeAddrFromMnemonic(mnemonic) { + // root seed buffer + const rootSeed = BITBOX.Mnemonic.toSeed(mnemonic) + + // master HDNode + const masterHDNode = BITBOX.HDNode.fromSeed(rootSeed, "testnet") + + // HDNode of BIP44 account + const account = BITBOX.HDNode.derivePath(masterHDNode, "m/44'/145'/0'") + + // derive the first external change address HDNode which is going to spend utxo + const change = BITBOX.HDNode.derivePath(account, "0/0") + + return change +} + +// Get the balance in BCH of a BCH address. +async function getBCHBalance(addr, verbose) { + try { + const result = await BITBOX.Address.details(addr) + + if (verbose) console.log(result) + + const bchBalance = result + + return bchBalance.balance + } catch (err) { + console.error(`Error in getBCHBalance: `, err) + console.log(`addr: ${addr}`) + throw err + } +} + +// Returns the utxo with the biggest balance from an array of utxos. +function findBiggestUtxo(utxos) { + // Sort the utxos by the amount of satoshis, largest first. + utxos.sort(function(a, b) { + return b.satoshis - a.satoshis + }) + + return utxos[0] +} From 576c095187239724f8186e469922d7a895a63658 Mon Sep 17 00:00:00 2001 From: "James S. Cramer" Date: Fri, 22 Feb 2019 12:10:43 -0500 Subject: [PATCH 219/480] typings update --- lib/Address.d.ts | 2 +- typings/Address.d.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/Address.d.ts b/lib/Address.d.ts index 6b3f4a04..661eecae 100644 --- a/lib/Address.d.ts +++ b/lib/Address.d.ts @@ -17,7 +17,7 @@ export interface Address { detectAddressNetwork(address: string): string; detectAddressType(address: string): string; fromXPub(xpub: string, path?: string): string; - fromOutputScript(scriptPubKey:string, network?: string): string; + fromOutputScript(scriptPubKey:Buffer, network?: string): string; details(address: string[]): Promise; utxo(address: string[]): Promise; unconfirmed(address: string[]): Promise; diff --git a/typings/Address.d.ts b/typings/Address.d.ts index 6b3f4a04..661eecae 100644 --- a/typings/Address.d.ts +++ b/typings/Address.d.ts @@ -17,7 +17,7 @@ export interface Address { detectAddressNetwork(address: string): string; detectAddressType(address: string): string; fromXPub(xpub: string, path?: string): string; - fromOutputScript(scriptPubKey:string, network?: string): string; + fromOutputScript(scriptPubKey:Buffer, network?: string): string; details(address: string[]): Promise; utxo(address: string[]): Promise; unconfirmed(address: string[]): Promise; From 33500be3e646e659ce88d42f5b76acade8ace172 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 26 Feb 2019 08:36:21 +0900 Subject: [PATCH 220/480] Bump PATCH version. --- index.js | 2 +- package-lock.json | 2 +- package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index d3eb43ae..57f3a149 100755 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOXSDK = require("./lib/bitbox-sdk").default const clone = require("git-clone") -program.version("4.0.0 ", "-v, --version") +program.version("4.0.1 ", "-v, --version") program .command("new ") diff --git a/package-lock.json b/package-lock.json index 7d6f13fa..da8df838 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "4.0.0", + "version": "4.0.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 647f6f2b..b2286efa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "4.0.0", + "version": "4.0.1", "description": "BITBOX Javascript SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ From 4222a2688141413a6be05b07ae6dc4a4b11e2b76 Mon Sep 17 00:00:00 2001 From: "James S. Cramer" Date: Tue, 26 Feb 2019 12:47:20 -0500 Subject: [PATCH 221/480] update type definitions for getTxOut --- lib/Blockchain.d.ts | 27 +++++++++++++++++++++------ typings/Blockchain.d.ts | 27 +++++++++++++++++++++------ 2 files changed, 42 insertions(+), 12 deletions(-) diff --git a/lib/Blockchain.d.ts b/lib/Blockchain.d.ts index f5b9a975..8968e143 100644 --- a/lib/Blockchain.d.ts +++ b/lib/Blockchain.d.ts @@ -15,7 +15,7 @@ export declare interface Blockchain { getMempoolEntry(txid:string): Promise; getMempoolInfo(): Promise; getRawMempool(verbose?:boolean): Promise; - getTxOut(txid:string, n:number, include_mempool?: boolean): Promise; + getTxOut(txid:string, n:number, include_mempool?: boolean): Promise; getTxOutProof(txids:string, blockhash:string): Promise; preciousBlock(blockhash:string): Promise; pruneBlockchain(height:number): Promise; @@ -23,7 +23,7 @@ export declare interface Blockchain { verifyTxOutProof(proof:string): Promise; } -declare interface MempoolInfo { +export interface MempoolInfo { size: number; bytes: number; usage: number; @@ -31,7 +31,7 @@ declare interface MempoolInfo { mempoolminfee: number; } -declare interface BlockchainInfo { +export interface BlockchainInfo { chain: string; blocks: number; headers: number; @@ -45,7 +45,7 @@ declare interface BlockchainInfo { bip9_softforks: object; } -declare interface BlockHeader { +export interface BlockHeader { hash: string; confirmations: number; height: number; @@ -62,14 +62,29 @@ declare interface BlockHeader { nextblockhash: string; } -declare interface ChainTip { +export interface ChainTip { height:number; hash: string; branchlen: number; status: string; } -//declare interface RawMempoolTxn { +export interface TxOut { + bestblock: string, + confirmations: number, + value: number, + scriptPubKey: { + asm: string, + hex: string, + reqSigs: number, + type: string, + addresses: string[] + }, + version: number, + coinbase: boolean +} + +//export interface RawMempoolTxn { // [ {'2ae541af20db6f2b50410f418af56e349d08877d685f6cf54df54658e892db7a': // { size: 237, diff --git a/typings/Blockchain.d.ts b/typings/Blockchain.d.ts index f5b9a975..8968e143 100644 --- a/typings/Blockchain.d.ts +++ b/typings/Blockchain.d.ts @@ -15,7 +15,7 @@ export declare interface Blockchain { getMempoolEntry(txid:string): Promise; getMempoolInfo(): Promise; getRawMempool(verbose?:boolean): Promise; - getTxOut(txid:string, n:number, include_mempool?: boolean): Promise; + getTxOut(txid:string, n:number, include_mempool?: boolean): Promise; getTxOutProof(txids:string, blockhash:string): Promise; preciousBlock(blockhash:string): Promise; pruneBlockchain(height:number): Promise; @@ -23,7 +23,7 @@ export declare interface Blockchain { verifyTxOutProof(proof:string): Promise; } -declare interface MempoolInfo { +export interface MempoolInfo { size: number; bytes: number; usage: number; @@ -31,7 +31,7 @@ declare interface MempoolInfo { mempoolminfee: number; } -declare interface BlockchainInfo { +export interface BlockchainInfo { chain: string; blocks: number; headers: number; @@ -45,7 +45,7 @@ declare interface BlockchainInfo { bip9_softforks: object; } -declare interface BlockHeader { +export interface BlockHeader { hash: string; confirmations: number; height: number; @@ -62,14 +62,29 @@ declare interface BlockHeader { nextblockhash: string; } -declare interface ChainTip { +export interface ChainTip { height:number; hash: string; branchlen: number; status: string; } -//declare interface RawMempoolTxn { +export interface TxOut { + bestblock: string, + confirmations: number, + value: number, + scriptPubKey: { + asm: string, + hex: string, + reqSigs: number, + type: string, + addresses: string[] + }, + version: number, + coinbase: boolean +} + +//export interface RawMempoolTxn { // [ {'2ae541af20db6f2b50410f418af56e349d08877d685f6cf54df54658e892db7a': // { size: 237, From d769035f60f78e605f08752f0d3a63a09c421d6b Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sun, 3 Mar 2019 09:46:26 +0800 Subject: [PATCH 222/480] Update export syntax so devs can include BITBOX SDK via `require("bitbox-sdk");` --- .../wallet/check-balance/check-balance.js | 6 +-- .../wallet/create-wallet/create-wallet.js | 6 +-- .../applications/wallet/send-bch/send-bch.js | 4 +- .../address-details/address-details.js | 6 +-- examples/low-level/utxo-address/get-utxos.js | 4 +- index.js | 4 +- lib/BITBOX.d.ts | 47 ++++++++++++++++++ lib/{bitbox-sdk.js => BITBOX.js} | 10 ++-- package-lock.json | 2 +- package.json | 8 +-- src/{bitbox-sdk.js => BITBOX.js} | 4 +- .../sendrawtransaction.js | 4 +- .../sendrawtransaction.js | 4 +- test/integration/address.js | 2 +- test/integration/block.js | 2 +- test/integration/blockchain.js | 2 +- test/integration/rawtransaction.js | 2 +- test/integration/util.js | 2 +- test/unit/Address.js | 2 +- test/unit/BitcoinCash.js | 2 +- test/unit/Block.js | 2 +- test/unit/Blockchain.js | 2 +- test/unit/Control.js | 2 +- test/unit/Crypto.js | 2 +- test/unit/ECPair.js | 2 +- test/unit/Generating.js | 2 +- test/unit/HDNode.js | 2 +- test/unit/Mining.js | 2 +- test/unit/Mnemonic.js | 2 +- test/unit/Network.js | 2 +- test/unit/Price.js | 2 +- test/unit/RawTransactions.js | 2 +- test/unit/Script.js | 2 +- test/unit/Transaction.js | 2 +- test/unit/TransactionBuilder.js | 2 +- test/unit/Util.js | 2 +- typings/BITBOX.d.ts | 47 ++++++++++++++++++ typings/bitbox-sdk.d.ts | 49 ------------------- 38 files changed, 143 insertions(+), 108 deletions(-) create mode 100644 lib/BITBOX.d.ts rename lib/{bitbox-sdk.js => BITBOX.js} (95%) rename src/{bitbox-sdk.js => BITBOX.js} (97%) create mode 100644 typings/BITBOX.d.ts delete mode 100644 typings/bitbox-sdk.d.ts diff --git a/examples/applications/wallet/check-balance/check-balance.js b/examples/applications/wallet/check-balance/check-balance.js index 40eef79c..1bb43191 100644 --- a/examples/applications/wallet/check-balance/check-balance.js +++ b/examples/applications/wallet/check-balance/check-balance.js @@ -3,11 +3,9 @@ with the create-wallet example. */ -"use strict" - // Instantiate BITBOX. -const bitboxLib = "../../../../lib/bitbox-sdk" -const BITBOXSDK = require(bitboxLib).default +const bitboxLib = "../../../../lib/BITBOX" +const BITBOXSDK = require(bitboxLib) const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v2/" }) // Open the wallet generated with create-wallet. diff --git a/examples/applications/wallet/create-wallet/create-wallet.js b/examples/applications/wallet/create-wallet/create-wallet.js index 17859cbc..a6c48645 100644 --- a/examples/applications/wallet/create-wallet/create-wallet.js +++ b/examples/applications/wallet/create-wallet/create-wallet.js @@ -3,11 +3,9 @@ will be used in future examples. */ -"use strict" - // Instantiate BITBOX. -const bitboxLib = "../../../../lib/bitbox-sdk" -const BITBOXSDK = require(bitboxLib).default +const bitboxLib = "../../../../lib/BITBOX" +const BITBOXSDK = require(bitboxLib) const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v2/" }) const fs = require("fs") diff --git a/examples/applications/wallet/send-bch/send-bch.js b/examples/applications/wallet/send-bch/send-bch.js index 745e64ef..c4fbf748 100644 --- a/examples/applications/wallet/send-bch/send-bch.js +++ b/examples/applications/wallet/send-bch/send-bch.js @@ -3,8 +3,8 @@ */ // Instantiate BITBOX. -const bitboxLib = "../../../../lib/bitbox-sdk" -const BITBOXSDK = require(bitboxLib).default +const bitboxLib = "../../../../lib/BITBOX" +const BITBOXSDK = require(bitboxLib) const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v2/" }) // Replace the address below with the address you want to send the BCH to. diff --git a/examples/low-level/address-details/address-details.js b/examples/low-level/address-details/address-details.js index 7a85ae1f..200f5e71 100644 --- a/examples/low-level/address-details/address-details.js +++ b/examples/low-level/address-details/address-details.js @@ -3,11 +3,9 @@ with the create-wallet example. */ -"use strict" - // Instantiate BITBOX. -const bitboxLib = "../../../lib/bitbox-sdk" -const BITBOXSDK = require(bitboxLib).default +const bitboxLib = "../../../lib/BITBOX" +const BITBOXSDK = require(bitboxLib) const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v2/" }) const ADDR = `bchtest:qr45kxqda7yw8atztvkc4ckqnrlhmp0kvsep4p345q` diff --git a/examples/low-level/utxo-address/get-utxos.js b/examples/low-level/utxo-address/get-utxos.js index 539d2f6d..1c184c6a 100644 --- a/examples/low-level/utxo-address/get-utxos.js +++ b/examples/low-level/utxo-address/get-utxos.js @@ -6,8 +6,8 @@ "use strict" // Instantiate BITBOX. -const bitboxLib = "../../../lib/bitbox-sdk" -const BITBOXSDK = require(bitboxLib).default +const bitboxLib = "../../../lib/BITBOX" +const BITBOXSDK = require(bitboxLib) const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v2/" }) const ADDR = `bchtest:qr45kxqda7yw8atztvkc4ckqnrlhmp0kvsep4p345q` diff --git a/index.js b/index.js index 57f3a149..704a2866 100755 --- a/index.js +++ b/index.js @@ -10,10 +10,10 @@ const fs = require("fs") const touch = require("touch") const emoji = require("node-emoji") const repl = require("repl") -const BITBOXSDK = require("./lib/bitbox-sdk").default +const BITBOXSDK = require("./lib/BITBOX") const clone = require("git-clone") -program.version("4.0.1 ", "-v, --version") +program.version("5.0.0 ", "-v, --version") program .command("new ") diff --git a/lib/BITBOX.d.ts b/lib/BITBOX.d.ts new file mode 100644 index 00000000..cf7565eb --- /dev/null +++ b/lib/BITBOX.d.ts @@ -0,0 +1,47 @@ +// local deps +import { BitcoinCash } from "./BitcoinCash" +import { Crypto } from "./Crypto" +import { Util } from "./Util" +import { Block } from "./Block" +import { Blockchain } from "./Blockchain" +import { Control } from "./Control" +import { Generating } from "./Generating" +import { Mining } from "./Mining" +import { Network } from "./Network" +import { RawTransactions } from "./RawTransactions" +import { Mnemonic } from "./Mnemonic" +import { Address } from "./Address" +import { HDNode } from "./HDNode" +import { Transaction } from "./Transaction" +import { TransactionBuilder } from "./TransactionBuilder" +import { ECPair } from "./ECPair" +import { Script } from "./Script" +import Price from "./Price" +import Socket from "./Socket" + +declare class BITBOXSDK { + constructor(config?: any) + + restURL: string + Address: Address + BitcoinCash: BitcoinCash + Block: Block + Blockchain: Blockchain + Control: Control + Generating: Generating + Mining: Mining + Crypto: Crypto + ECPair: ECPair + HDNode: HDNode + Mnemonic: Mnemonic + Network: Network + Price: Price + RawTransactions: RawTransactions + Script: Script + Transaction: Transaction + TransactionBuilder: TransactionBuilder + Util: Util + Socket: Socket +} + +export default BITBOXSDK diff --git a/lib/bitbox-sdk.js b/lib/BITBOX.js similarity index 95% rename from lib/bitbox-sdk.js rename to lib/BITBOX.js index adc4c4bc..5e5c78ec 100644 --- a/lib/bitbox-sdk.js +++ b/lib/BITBOX.js @@ -1,9 +1,5 @@ "use strict"; -Object.defineProperty(exports, "__esModule", { - value: true -}); - var _BitcoinCash = require("./BitcoinCash"); var _BitcoinCash2 = _interopRequireDefault(_BitcoinCash); @@ -89,8 +85,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } // local deps -var BITBOXSDK = function BITBOXSDK(config) { - _classCallCheck(this, BITBOXSDK); +var BITBOX = function BITBOX(config) { + _classCallCheck(this, BITBOX); if (config && config.restURL && config.restURL !== "") this.restURL = config.restURL;else this.restURL = "https://rest.bitcoin.com/v2/"; @@ -118,4 +114,4 @@ var BITBOXSDK = function BITBOXSDK(config) { this.Wallet = _Wallet2.default; }; -exports.default = BITBOXSDK; \ No newline at end of file +module.exports = BITBOX; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index da8df838..d34f2527 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "4.0.1", + "version": "5.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index b2286efa..37fbd7a2 100644 --- a/package.json +++ b/package.json @@ -1,13 +1,13 @@ { "name": "bitbox-sdk", - "version": "4.0.1", - "description": "BITBOX Javascript SDK for Bitcoin Cash", + "version": "5.0.0", + "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ "Chris Troutner " ], - "main": "index.js", - "types": "./typings/bitbox-sdk.d.ts", + "main": "lib/BITBOX", + "types": "./typings/BITBOX.d.ts", "scripts": { "test": "mocha --timeout 30000 --require babel-core/register test/unit", "test:integration": "mocha --timeout 30000 --require babel-core/register test/integration", diff --git a/src/bitbox-sdk.js b/src/BITBOX.js similarity index 97% rename from src/bitbox-sdk.js rename to src/BITBOX.js index 3bc5b06b..53bd3fd6 100644 --- a/src/bitbox-sdk.js +++ b/src/BITBOX.js @@ -20,7 +20,7 @@ import Price from "./Price" import Socket from "./Socket" import Wallet from "./Wallet" -class BITBOXSDK { +class BITBOX { constructor(config) { if (config && config.restURL && config.restURL !== "") this.restURL = config.restURL @@ -51,4 +51,4 @@ class BITBOXSDK { } } -export default BITBOXSDK +module.exports = BITBOX diff --git a/test/e2e/send-raw-transaction-bulk/sendrawtransaction.js b/test/e2e/send-raw-transaction-bulk/sendrawtransaction.js index 85261259..6f45ecc7 100644 --- a/test/e2e/send-raw-transaction-bulk/sendrawtransaction.js +++ b/test/e2e/send-raw-transaction-bulk/sendrawtransaction.js @@ -18,8 +18,8 @@ const RECV_ADDR2 = `bchtest:qz6yw0kqgfkknfy6jh2jvlfnkzmre3lt2u0pgcckdk` const SATOSHIS_TO_SEND = 1000 // Instantiate BITBOX. -const bitboxLib = "../../../lib/bitbox-sdk" -const BITBOXSDK = require(bitboxLib).default +const bitboxLib = "../../../lib/BITBOX" +const BITBOXSDK = require(bitboxLib) const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v2/" }) //const BITBOX = new BITBOXSDK({ restURL: "http://localhost:3000/v2/" }) diff --git a/test/e2e/send-raw-transaction-single/sendrawtransaction.js b/test/e2e/send-raw-transaction-single/sendrawtransaction.js index f62f5ea0..372baeea 100644 --- a/test/e2e/send-raw-transaction-single/sendrawtransaction.js +++ b/test/e2e/send-raw-transaction-single/sendrawtransaction.js @@ -17,8 +17,8 @@ const RECV_ADDR1 = `bchtest:qzfn2mly05t6fjsh5kjj0dqq0jjtct27ng089dgg05` const SATOSHIS_TO_SEND = 1000 // Instantiate BITBOX. -const bitboxLib = "../../../lib/bitbox-sdk" -const BITBOXSDK = require(bitboxLib).default +const bitboxLib = "../../../lib/BITBOX" +const BITBOXSDK = require(bitboxLib) const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v2/" }) //const BITBOX = new BITBOXSDK({ restURL: "http://localhost:3000/v2/" }) diff --git a/test/integration/address.js b/test/integration/address.js index d88a3fab..4cd4423e 100644 --- a/test/integration/address.js +++ b/test/integration/address.js @@ -9,7 +9,7 @@ const chai = require("chai") const assert = chai.assert -const BITBOXSDK = require("../../src/bitbox-sdk").default +const BITBOXSDK = require("../../src/BITBOX") const BITBOX = new BITBOXSDK() //const axios = require("axios") diff --git a/test/integration/block.js b/test/integration/block.js index 1f8718af..ea0a9778 100644 --- a/test/integration/block.js +++ b/test/integration/block.js @@ -5,7 +5,7 @@ const chai = require("chai") const assert = chai.assert -const BITBOXSDK = require("../../src/bitbox-sdk").default +const BITBOXSDK = require("../../src/BITBOX") const BITBOX = new BITBOXSDK() // Inspect utility used for debugging. diff --git a/test/integration/blockchain.js b/test/integration/blockchain.js index d00a355f..7a9b3735 100644 --- a/test/integration/blockchain.js +++ b/test/integration/blockchain.js @@ -9,7 +9,7 @@ const chai = require("chai") const assert = chai.assert -const BITBOXSDK = require("../../src/bitbox-sdk").default +const BITBOXSDK = require("../../src/BITBOX") const BITBOX = new BITBOXSDK() // Inspect utility used for debugging. diff --git a/test/integration/rawtransaction.js b/test/integration/rawtransaction.js index d756862c..ba7878f9 100644 --- a/test/integration/rawtransaction.js +++ b/test/integration/rawtransaction.js @@ -7,7 +7,7 @@ const chai = require("chai") const assert = chai.assert -const BITBOXSDK = require("../../src/bitbox-sdk").default +const BITBOXSDK = require("../../src/BITBOX") const BITBOX = new BITBOXSDK() // Inspect utility used for debugging. diff --git a/test/integration/util.js b/test/integration/util.js index c6b2ed98..29bef481 100644 --- a/test/integration/util.js +++ b/test/integration/util.js @@ -5,7 +5,7 @@ const chai = require("chai") const assert = chai.assert -const BITBOXSDK = require("../../src/bitbox-sdk").default +const BITBOXSDK = require("../../src/BITBOX") const BITBOX = new BITBOXSDK() // Inspect utility used for debugging. diff --git a/test/unit/Address.js b/test/unit/Address.js index a5d8a100..df960fd8 100644 --- a/test/unit/Address.js +++ b/test/unit/Address.js @@ -1,7 +1,7 @@ const fixtures = require("./fixtures/Address.json") const chai = require("chai") const assert = require("assert") -const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/BITBOX") const BITBOX = new BITBOXSDK() const axios = require("axios") const sinon = require("sinon") diff --git a/test/unit/BitcoinCash.js b/test/unit/BitcoinCash.js index 9059d332..953b9d5c 100644 --- a/test/unit/BitcoinCash.js +++ b/test/unit/BitcoinCash.js @@ -1,7 +1,7 @@ const fixtures = require("./fixtures/BitcoinCash.json") const chai = require("chai") const assert = require("assert") -const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/BITBOX") const BITBOX = new BITBOXSDK() // TODO diff --git a/test/unit/Block.js b/test/unit/Block.js index f8d99b1a..7aacc18f 100644 --- a/test/unit/Block.js +++ b/test/unit/Block.js @@ -1,6 +1,6 @@ const chai = require("chai") const assert = require("assert") -const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/BITBOX") const BITBOX = new BITBOXSDK() const axios = require("axios") const sinon = require("sinon") diff --git a/test/unit/Blockchain.js b/test/unit/Blockchain.js index fc818af1..538c5a9e 100644 --- a/test/unit/Blockchain.js +++ b/test/unit/Blockchain.js @@ -1,7 +1,7 @@ const chai = require("chai") const assert = require("assert") const axios = require("axios") -const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/BITBOX") const BITBOX = new BITBOXSDK() const sinon = require("sinon") diff --git a/test/unit/Control.js b/test/unit/Control.js index 309abddb..19123a93 100644 --- a/test/unit/Control.js +++ b/test/unit/Control.js @@ -1,7 +1,7 @@ const chai = require("chai") const assert = require("assert") const axios = require("axios") -const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/BITBOX") const BITBOX = new BITBOXSDK() const sinon = require("sinon") diff --git a/test/unit/Crypto.js b/test/unit/Crypto.js index ec8c1de1..35fed04a 100644 --- a/test/unit/Crypto.js +++ b/test/unit/Crypto.js @@ -1,7 +1,7 @@ const fixtures = require("./fixtures/Crypto.json") const chai = require("chai") const assert = require("assert") -const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/BITBOX") const BITBOX = new BITBOXSDK() const Buffer = require("safe-buffer").Buffer diff --git a/test/unit/ECPair.js b/test/unit/ECPair.js index 68973c5e..1ee6b8d4 100644 --- a/test/unit/ECPair.js +++ b/test/unit/ECPair.js @@ -1,7 +1,7 @@ const fixtures = require("./fixtures/ECPair.json") const chai = require("chai") const assert = require("assert") -const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/BITBOX") const BITBOX = new BITBOXSDK() const script = BITBOX.Script const Buffer = require("safe-buffer").Buffer diff --git a/test/unit/Generating.js b/test/unit/Generating.js index 8a67bb4a..d58c4eab 100644 --- a/test/unit/Generating.js +++ b/test/unit/Generating.js @@ -1,7 +1,7 @@ const chai = require("chai") const assert = require("assert") const axios = require("axios") -const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/BITBOX") const BITBOX = new BITBOXSDK() const sinon = require("sinon") diff --git a/test/unit/HDNode.js b/test/unit/HDNode.js index 3558d882..d74a3679 100644 --- a/test/unit/HDNode.js +++ b/test/unit/HDNode.js @@ -1,7 +1,7 @@ const fixtures = require("./fixtures/HDNode.json") const chai = require("chai") const assert = require("assert") -const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/BITBOX") const BITBOX = new BITBOXSDK() const Buffer = require("safe-buffer").Buffer diff --git a/test/unit/Mining.js b/test/unit/Mining.js index 0090e547..03a71235 100644 --- a/test/unit/Mining.js +++ b/test/unit/Mining.js @@ -1,7 +1,7 @@ const chai = require("chai") const assert = require("assert") const axios = require("axios") -const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/BITBOX") const BITBOX = new BITBOXSDK() const sinon = require("sinon") diff --git a/test/unit/Mnemonic.js b/test/unit/Mnemonic.js index 9d7f1a45..e32853e8 100644 --- a/test/unit/Mnemonic.js +++ b/test/unit/Mnemonic.js @@ -1,7 +1,7 @@ const fixtures = require("./fixtures/Mnemonic.json") const chai = require("chai") const assert = require("assert") -const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/BITBOX") const BITBOX = new BITBOXSDK() const Buffer = require("safe-buffer").Buffer diff --git a/test/unit/Network.js b/test/unit/Network.js index 0e3a8439..958982c4 100644 --- a/test/unit/Network.js +++ b/test/unit/Network.js @@ -1,7 +1,7 @@ const chai = require("chai") const assert = require("assert") const axios = require("axios") -const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/BITBOX") const BITBOX = new BITBOXSDK() const sinon = require("sinon") diff --git a/test/unit/Price.js b/test/unit/Price.js index 0763c3ce..ecc50b8f 100644 --- a/test/unit/Price.js +++ b/test/unit/Price.js @@ -1,6 +1,6 @@ const chai = require("chai") const assert = require("assert") -const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/BITBOX") const BITBOX = new BITBOXSDK() const axios = require("axios") const sinon = require("sinon") diff --git a/test/unit/RawTransactions.js b/test/unit/RawTransactions.js index 900d5bbf..b0f115bf 100644 --- a/test/unit/RawTransactions.js +++ b/test/unit/RawTransactions.js @@ -8,7 +8,7 @@ const chai = require("chai") const assert = require("assert") const axios = require("axios") -const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/BITBOX") const BITBOX = new BITBOXSDK() const sinon = require("sinon") diff --git a/test/unit/Script.js b/test/unit/Script.js index c70e35f1..9b19a2d0 100644 --- a/test/unit/Script.js +++ b/test/unit/Script.js @@ -1,7 +1,7 @@ const fixtures = require("./fixtures/Script.json") const chai = require("chai") const assert = require("assert") -const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/BITBOX") const BITBOX = new BITBOXSDK() const Buffer = require("safe-buffer").Buffer diff --git a/test/unit/Transaction.js b/test/unit/Transaction.js index 4e527b87..e91b80da 100644 --- a/test/unit/Transaction.js +++ b/test/unit/Transaction.js @@ -1,6 +1,6 @@ const chai = require("chai") const assert = require("assert") -const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/BITBOX") const BITBOX = new BITBOXSDK() const axios = require("axios") const sinon = require("sinon") diff --git a/test/unit/TransactionBuilder.js b/test/unit/TransactionBuilder.js index 7f43a880..03cae2e1 100644 --- a/test/unit/TransactionBuilder.js +++ b/test/unit/TransactionBuilder.js @@ -1,7 +1,7 @@ const fixtures = require("./fixtures/TransactionBuilder.json") const chai = require("chai") const assert = require("assert") -const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/BITBOX") const BITBOX = new BITBOXSDK() const Buffer = require("safe-buffer").Buffer diff --git a/test/unit/Util.js b/test/unit/Util.js index 862c34e7..332b20b2 100644 --- a/test/unit/Util.js +++ b/test/unit/Util.js @@ -1,7 +1,7 @@ const chai = require("chai") const assert = require("assert") const axios = require("axios") -const BITBOXSDK = require("../../lib/bitbox-sdk").default +const BITBOXSDK = require("../../lib/BITBOX") const BITBOX = new BITBOXSDK() const sinon = require("sinon") diff --git a/typings/BITBOX.d.ts b/typings/BITBOX.d.ts new file mode 100644 index 00000000..cf7565eb --- /dev/null +++ b/typings/BITBOX.d.ts @@ -0,0 +1,47 @@ +// local deps +import { BitcoinCash } from "./BitcoinCash" +import { Crypto } from "./Crypto" +import { Util } from "./Util" +import { Block } from "./Block" +import { Blockchain } from "./Blockchain" +import { Control } from "./Control" +import { Generating } from "./Generating" +import { Mining } from "./Mining" +import { Network } from "./Network" +import { RawTransactions } from "./RawTransactions" +import { Mnemonic } from "./Mnemonic" +import { Address } from "./Address" +import { HDNode } from "./HDNode" +import { Transaction } from "./Transaction" +import { TransactionBuilder } from "./TransactionBuilder" +import { ECPair } from "./ECPair" +import { Script } from "./Script" +import Price from "./Price" +import Socket from "./Socket" + +declare class BITBOXSDK { + constructor(config?: any) + + restURL: string + Address: Address + BitcoinCash: BitcoinCash + Block: Block + Blockchain: Blockchain + Control: Control + Generating: Generating + Mining: Mining + Crypto: Crypto + ECPair: ECPair + HDNode: HDNode + Mnemonic: Mnemonic + Network: Network + Price: Price + RawTransactions: RawTransactions + Script: Script + Transaction: Transaction + TransactionBuilder: TransactionBuilder + Util: Util + Socket: Socket +} + +export default BITBOXSDK diff --git a/typings/bitbox-sdk.d.ts b/typings/bitbox-sdk.d.ts deleted file mode 100644 index 0ced11e4..00000000 --- a/typings/bitbox-sdk.d.ts +++ /dev/null @@ -1,49 +0,0 @@ -// local deps -import { BitcoinCash } from './BitcoinCash'; -import { Crypto } from './Crypto'; -import { Util } from './Util'; -import { Block } from './Block'; -import { Blockchain } from './Blockchain'; -import { Control } from './Control'; -import { Generating } from './Generating'; -import { Mining } from './Mining'; -import { Network } from './Network'; -import { RawTransactions } from './RawTransactions'; -import { Mnemonic } from './Mnemonic'; -import { Address } from './Address'; -import { HDNode } from './HDNode'; -import { Transaction } from './Transaction'; -import { TransactionBuilder } from './TransactionBuilder'; -import { ECPair } from './ECPair'; -import { Script } from './Script'; -import Price from './Price'; -import Socket from './Socket'; - - -declare class BITBOXSDK { - - constructor(config?: any); - - restURL: string; - Address: Address; - BitcoinCash: BitcoinCash; - Block: Block; - Blockchain: Blockchain; - Control: Control; - Generating: Generating; - Mining: Mining; - Crypto: Crypto; - ECPair: ECPair; - HDNode: HDNode; - Mnemonic: Mnemonic; - Network: Network; - Price: Price; - RawTransactions: RawTransactions; - Script: Script; - Transaction: Transaction; - TransactionBuilder: TransactionBuilder; - Util: Util; - Socket: Socket; -} - -export default BITBOXSDK; From 9b68f9a5adc7aea64918575242392dbccc32226a Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 5 Mar 2019 14:07:14 +0800 Subject: [PATCH 223/480] Bump v. --- index.js | 2 +- package-lock.json | 2 +- package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 704a2866..f28b603f 100755 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOXSDK = require("./lib/BITBOX") const clone = require("git-clone") -program.version("5.0.0 ", "-v, --version") +program.version("5.0.1 ", "-v, --version") program .command("new ") diff --git a/package-lock.json b/package-lock.json index d34f2527..a2e275e5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "5.0.0", + "version": "5.0.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 37fbd7a2..ffffa67a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "5.0.0", + "version": "5.0.1", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ From d62de161de3a15da12cc12c946b79262776f3dba Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 8 Mar 2019 06:32:44 -0800 Subject: [PATCH 224/480] Ran npm audit and fixed some dependencies --- package-lock.json | 2656 +++++++++------------------------------------ package.json | 2 +- 2 files changed, 530 insertions(+), 2128 deletions(-) diff --git a/package-lock.json b/package-lock.json index a2e275e5..292600f5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10208,2478 +10208,917 @@ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "nyc": { - "version": "11.9.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.9.0.tgz", - "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-13.3.0.tgz", + "integrity": "sha512-P+FwIuro2aFG6B0Esd9ZDWUd51uZrAEoGutqZxzrVmYl3qSfkLgcQpBPBjtDFsUQLFY1dvTQJPOyeqr8S9GF8w==", "dev": true, "requires": { "archy": "^1.0.0", "arrify": "^1.0.1", - "caching-transform": "^1.0.0", - "convert-source-map": "^1.5.1", - "debug-log": "^1.0.1", - "default-require-extensions": "^1.0.0", - "find-cache-dir": "^0.1.1", - "find-up": "^2.1.0", - "foreground-child": "^1.5.3", - "glob": "^7.0.6", - "istanbul-lib-coverage": "^1.1.2", - "istanbul-lib-hook": "^1.1.0", - "istanbul-lib-instrument": "^1.10.0", - "istanbul-lib-report": "^1.1.3", - "istanbul-lib-source-maps": "^1.2.3", - "istanbul-reports": "^1.4.0", - "md5-hex": "^1.2.0", + "caching-transform": "^3.0.1", + "convert-source-map": "^1.6.0", + "find-cache-dir": "^2.0.0", + "find-up": "^3.0.0", + "foreground-child": "^1.5.6", + "glob": "^7.1.3", + "istanbul-lib-coverage": "^2.0.3", + "istanbul-lib-hook": "^2.0.3", + "istanbul-lib-instrument": "^3.1.0", + "istanbul-lib-report": "^2.0.4", + "istanbul-lib-source-maps": "^3.0.2", + "istanbul-reports": "^2.1.1", + "make-dir": "^1.3.0", "merge-source-map": "^1.1.0", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.0", - "resolve-from": "^2.0.0", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.1", + "resolve-from": "^4.0.0", + "rimraf": "^2.6.3", + "signal-exit": "^3.0.2", "spawn-wrap": "^1.4.2", - "test-exclude": "^4.2.0", - "yargs": "11.1.0", - "yargs-parser": "^8.0.0" + "test-exclude": "^5.1.0", + "uuid": "^3.3.2", + "yargs": "^12.0.5", + "yargs-parser": "^11.1.1" }, "dependencies": { - "align-text": { - "version": "0.1.4", + "ansi-regex": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "append-transform": { + "version": "1.0.0", "bundled": true, "dev": true, - "optional": true, "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" + "default-require-extensions": "^2.0.0" } }, - "amdefine": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", + "archy": { + "version": "1.0.0", "bundled": true, "dev": true }, - "ansi-styles": { - "version": "2.2.1", + "arrify": { + "version": "1.0.1", "bundled": true, "dev": true }, - "append-transform": { - "version": "0.4.0", + "async": { + "version": "2.6.2", "bundled": true, "dev": true, "requires": { - "default-require-extensions": "^1.0.0" + "lodash": "^4.17.11" } }, - "archy": { + "balanced-match": { "version": "1.0.0", "bundled": true, "dev": true }, - "arr-diff": { - "version": "4.0.0", + "brace-expansion": { + "version": "1.1.11", "bundled": true, - "dev": true + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } }, - "arr-flatten": { - "version": "1.1.0", + "caching-transform": { + "version": "3.0.1", "bundled": true, - "dev": true + "dev": true, + "requires": { + "hasha": "^3.0.0", + "make-dir": "^1.3.0", + "package-hash": "^3.0.0", + "write-file-atomic": "^2.3.0" + } }, - "arr-union": { - "version": "3.1.0", + "camelcase": { + "version": "5.0.0", "bundled": true, "dev": true }, - "array-unique": { - "version": "0.3.2", + "cliui": { + "version": "4.1.0", "bundled": true, - "dev": true + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } }, - "arrify": { - "version": "1.0.1", + "code-point-at": { + "version": "1.1.0", "bundled": true, "dev": true }, - "assign-symbols": { - "version": "1.0.0", + "commander": { + "version": "2.17.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, - "async": { - "version": "1.5.2", + "commondir": { + "version": "1.0.1", "bundled": true, "dev": true }, - "atob": { - "version": "2.1.1", + "concat-map": { + "version": "0.0.1", "bundled": true, "dev": true }, - "babel-code-frame": { - "version": "6.26.0", + "convert-source-map": { + "version": "1.6.0", "bundled": true, "dev": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "safe-buffer": "~5.1.1" } }, - "babel-generator": { - "version": "6.26.1", + "cross-spawn": { + "version": "4.0.2", "bundled": true, "dev": true, "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } }, - "babel-messages": { - "version": "6.23.0", + "debug": { + "version": "4.1.1", "bundled": true, "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "ms": "^2.1.1" } }, - "babel-runtime": { - "version": "6.26.0", + "decamelize": { + "version": "1.2.0", "bundled": true, - "dev": true, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } + "dev": true }, - "babel-template": { - "version": "6.26.0", + "default-require-extensions": { + "version": "2.0.0", "bundled": true, "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "strip-bom": "^3.0.0" } }, - "babel-traverse": { - "version": "6.26.0", + "end-of-stream": { + "version": "1.4.1", "bundled": true, "dev": true, "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "once": "^1.4.0" } }, - "babel-types": { - "version": "6.26.0", + "error-ex": { + "version": "1.3.2", "bundled": true, "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "is-arrayish": "^0.2.1" } }, - "babylon": { - "version": "6.18.0", + "es6-error": { + "version": "4.1.1", "bundled": true, "dev": true }, - "balanced-match": { + "execa": { "version": "1.0.0", "bundled": true, - "dev": true - }, - "base": { - "version": "0.11.2", - "bundled": true, "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.2.0", - "pascalcase": "^0.1.1" + "cross-spawn": "^6.0.0", + "get-stream": "^4.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" }, "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", + "cross-spawn": { + "version": "6.0.5", "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } - }, - "isobject": { - "version": "3.0.1", - "bundled": true, - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true } } }, - "brace-expansion": { - "version": "1.1.11", + "find-cache-dir": { + "version": "2.0.0", "bundled": true, "dev": true, "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^3.0.0" } }, - "braces": { - "version": "2.3.2", + "find-up": { + "version": "3.0.0", "bundled": true, "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "locate-path": "^3.0.0" } }, - "builtin-modules": { - "version": "1.1.1", - "bundled": true, - "dev": true - }, - "cache-base": { - "version": "1.0.1", + "foreground-child": { + "version": "1.5.6", "bundled": true, "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" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "bundled": true, - "dev": true - } + "cross-spawn": "^4", + "signal-exit": "^3.0.0" } }, - "caching-transform": { - "version": "1.0.1", + "fs.realpath": { + "version": "1.0.0", "bundled": true, - "dev": true, - "requires": { - "md5-hex": "^1.2.0", - "mkdirp": "^0.5.1", - "write-file-atomic": "^1.1.4" - } + "dev": true }, - "camelcase": { - "version": "1.2.1", + "get-caller-file": { + "version": "1.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true }, - "center-align": { - "version": "0.1.3", + "get-stream": { + "version": "4.1.0", "bundled": true, "dev": true, - "optional": true, "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" + "pump": "^3.0.0" } }, - "chalk": { - "version": "1.1.3", + "glob": { + "version": "7.1.3", "bundled": true, "dev": true, "requires": { - "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" + "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" } }, - "class-utils": { - "version": "0.3.6", + "graceful-fs": { + "version": "4.1.15", + "bundled": true, + "dev": true + }, + "handlebars": { + "version": "4.1.0", "bundled": true, "dev": true, "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "async": "^2.5.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" }, "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "isobject": { - "version": "3.0.1", + "source-map": { + "version": "0.6.1", "bundled": true, "dev": true } } }, - "cliui": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "code-point-at": { - "version": "1.1.0", + "has-flag": { + "version": "3.0.0", "bundled": true, "dev": true }, - "collection-visit": { - "version": "1.0.0", + "hasha": { + "version": "3.0.0", "bundled": true, "dev": true, "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "is-stream": "^1.0.1" } }, - "commondir": { - "version": "1.0.1", + "hosted-git-info": { + "version": "2.7.1", "bundled": true, "dev": true }, - "component-emitter": { - "version": "1.2.1", + "imurmurhash": { + "version": "0.1.4", "bundled": true, "dev": true }, - "concat-map": { - "version": "0.0.1", + "inflight": { + "version": "1.0.6", "bundled": true, - "dev": true + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } }, - "convert-source-map": { - "version": "1.5.1", + "inherits": { + "version": "2.0.3", "bundled": true, "dev": true }, - "copy-descriptor": { - "version": "0.1.1", + "invert-kv": { + "version": "2.0.0", "bundled": true, "dev": true }, - "core-js": { - "version": "2.5.6", + "is-arrayish": { + "version": "0.2.1", "bundled": true, "dev": true }, - "cross-spawn": { - "version": "4.0.2", - "bundled": true, - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "debug": { - "version": "2.6.9", + "is-fullwidth-code-point": { + "version": "2.0.0", "bundled": true, - "dev": true, - "requires": { - "ms": "2.0.0" - } + "dev": true }, - "debug-log": { - "version": "1.0.1", + "is-stream": { + "version": "1.1.0", "bundled": true, "dev": true }, - "decamelize": { - "version": "1.2.0", + "isexe": { + "version": "2.0.0", "bundled": true, "dev": true }, - "decode-uri-component": { - "version": "0.2.0", + "istanbul-lib-coverage": { + "version": "2.0.3", "bundled": true, "dev": true }, - "default-require-extensions": { - "version": "1.0.0", + "istanbul-lib-hook": { + "version": "2.0.3", "bundled": true, "dev": true, "requires": { - "strip-bom": "^2.0.0" + "append-transform": "^1.0.0" } }, - "define-property": { - "version": "2.0.2", + "istanbul-lib-report": { + "version": "2.0.4", "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "istanbul-lib-coverage": "^2.0.3", + "make-dir": "^1.3.0", + "supports-color": "^6.0.0" }, "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", + "supports-color": { + "version": "6.1.0", "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "has-flag": "^3.0.0" } - }, - "isobject": { - "version": "3.0.1", - "bundled": true, - "dev": true - }, - "kind-of": { - "version": "6.0.2", + } + } + }, + "istanbul-lib-source-maps": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^2.0.3", + "make-dir": "^1.3.0", + "rimraf": "^2.6.2", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", "bundled": true, "dev": true } } }, - "detect-indent": { + "istanbul-reports": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "requires": { + "handlebars": "^4.1.0" + } + }, + "json-parse-better-errors": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "lcid": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, + "load-json-file": { "version": "4.0.0", "bundled": true, "dev": true, "requires": { - "repeating": "^2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, - "error-ex": { - "version": "1.3.1", + "locate-path": { + "version": "3.0.0", "bundled": true, "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, - "escape-string-regexp": { - "version": "1.0.5", + "lodash": { + "version": "4.17.11", "bundled": true, "dev": true }, - "esutils": { - "version": "2.0.2", + "lodash.flattendeep": { + "version": "4.4.0", "bundled": true, "dev": true }, - "execa": { - "version": "0.7.0", + "lru-cache": { + "version": "4.1.5", "bundled": true, "dev": true, "requires": { - "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" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "bundled": true, - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - } + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, - "expand-brackets": { - "version": "2.1.4", + "make-dir": { + "version": "1.3.0", "bundled": true, "dev": true, "requires": { - "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": { - "version": "0.2.5", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "pify": "^3.0.0" } }, - "extend-shallow": { - "version": "3.0.2", + "map-age-cleaner": { + "version": "0.1.3", + "bundled": true, + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, + "mem": { + "version": "4.1.0", "bundled": true, "dev": true, "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^1.0.0", + "p-is-promise": "^2.0.0" + } + }, + "merge-source-map": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "source-map": "^0.6.1" }, "dependencies": { - "is-extendable": { - "version": "1.0.1", + "source-map": { + "version": "0.6.1", "bundled": true, - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } + "dev": true } } }, - "extglob": { - "version": "2.0.4", + "mimic-fn": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "minimatch": { + "version": "3.0.4", "bundled": true, "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" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } + "brace-expansion": "^1.1.7" } }, - "fill-range": { - "version": "4.0.0", + "minimist": { + "version": "0.0.10", + "bundled": true, + "dev": true + }, + "mkdirp": { + "version": "0.5.1", "bundled": true, "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "minimist": "0.0.8" }, "dependencies": { - "extend-shallow": { - "version": "2.0.1", + "minimist": { + "version": "0.0.8", "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } + "dev": true } } }, - "find-cache-dir": { - "version": "0.1.1", + "ms": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", "bundled": true, "dev": true, "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "find-up": { - "version": "2.1.0", + "npm-run-path": { + "version": "2.0.2", "bundled": true, "dev": true, "requires": { - "locate-path": "^2.0.0" + "path-key": "^2.0.0" } }, - "for-in": { - "version": "1.0.2", + "number-is-nan": { + "version": "1.0.1", "bundled": true, "dev": true }, - "foreground-child": { - "version": "1.5.6", + "once": { + "version": "1.4.0", "bundled": true, "dev": true, "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" + "wrappy": "1" } }, - "fragment-cache": { - "version": "0.2.1", + "optimist": { + "version": "0.6.1", "bundled": true, "dev": true, "requires": { - "map-cache": "^0.2.2" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "get-caller-file": { + "os-homedir": { "version": "1.0.2", "bundled": true, "dev": true }, - "get-stream": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "get-value": { - "version": "2.0.6", - "bundled": true, - "dev": true - }, - "glob": { - "version": "7.1.2", + "os-locale": { + "version": "3.1.0", "bundled": true, "dev": true, "requires": { - "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" + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" } }, - "globals": { - "version": "9.18.0", + "p-defer": { + "version": "1.0.0", "bundled": true, "dev": true }, - "graceful-fs": { - "version": "4.1.11", + "p-finally": { + "version": "1.0.0", "bundled": true, "dev": true }, - "handlebars": { - "version": "4.0.11", + "p-is-promise": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "p-limit": { + "version": "2.1.0", "bundled": true, "dev": true, "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "bundled": true, - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - } + "p-try": "^2.0.0" } }, - "has-ansi": { - "version": "2.0.0", + "p-locate": { + "version": "3.0.0", "bundled": true, "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "p-limit": "^2.0.0" } }, - "has-flag": { - "version": "1.0.0", + "p-try": { + "version": "2.0.0", "bundled": true, "dev": true }, - "has-value": { - "version": "1.0.0", + "package-hash": { + "version": "3.0.0", "bundled": true, "dev": true, "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "bundled": true, - "dev": true - } + "graceful-fs": "^4.1.15", + "hasha": "^3.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" } }, - "has-values": { - "version": "1.0.0", + "parse-json": { + "version": "4.0.0", "bundled": true, "dev": true, "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "bundled": true, - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, - "hosted-git-info": { - "version": "2.6.0", + "path-exists": { + "version": "3.0.0", "bundled": true, "dev": true }, - "imurmurhash": { - "version": "0.1.4", + "path-is-absolute": { + "version": "1.0.1", "bundled": true, "dev": true }, - "inflight": { - "version": "1.0.6", + "path-key": { + "version": "2.0.1", "bundled": true, - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } + "dev": true }, - "inherits": { - "version": "2.0.3", + "path-parse": { + "version": "1.0.6", "bundled": true, "dev": true }, - "invariant": { - "version": "2.2.4", + "path-type": { + "version": "3.0.0", "bundled": true, "dev": true, "requires": { - "loose-envify": "^1.0.0" + "pify": "^3.0.0" } }, - "invert-kv": { - "version": "1.0.0", + "pify": { + "version": "3.0.0", "bundled": true, "dev": true }, - "is-accessor-descriptor": { - "version": "0.1.6", + "pkg-dir": { + "version": "3.0.0", "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "find-up": "^3.0.0" } }, - "is-arrayish": { - "version": "0.2.1", - "bundled": true, - "dev": true - }, - "is-buffer": { - "version": "1.1.6", - "bundled": true, - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "builtin-modules": "^1.0.0" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "bundled": true, - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "bundled": true, - "dev": true - } - } - }, - "is-extendable": { - "version": "0.1.1", - "bundled": true, - "dev": true - }, - "is-finite": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "is-number": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-odd": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "bundled": true, - "dev": true - } - } - }, - "is-plain-object": { - "version": "2.0.4", - "bundled": true, - "dev": true, - "requires": { - "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "bundled": true, - "dev": true - } - } - }, - "is-stream": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "is-utf8": { - "version": "0.2.1", - "bundled": true, - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "isexe": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "isobject": { - "version": "3.0.1", - "bundled": true, - "dev": true - }, - "istanbul-lib-coverage": { - "version": "1.2.0", - "bundled": true, - "dev": true - }, - "istanbul-lib-hook": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "append-transform": "^0.4.0" - } - }, - "istanbul-lib-instrument": { - "version": "1.10.1", - "bundled": true, - "dev": true, - "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.2.0", - "semver": "^5.3.0" - } - }, - "istanbul-lib-report": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "requires": { - "istanbul-lib-coverage": "^1.1.2", - "mkdirp": "^0.5.1", - "path-parse": "^1.0.5", - "supports-color": "^3.1.2" - }, - "dependencies": { - "supports-color": { - "version": "3.2.3", - "bundled": true, - "dev": true, - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "1.2.3", - "bundled": true, - "dev": true, - "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^1.1.2", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.1", - "source-map": "^0.5.3" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "bundled": true, - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "istanbul-reports": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "requires": { - "handlebars": "^4.0.3" - } - }, - "js-tokens": { - "version": "3.0.2", - "bundled": true, - "dev": true - }, - "jsesc": { - "version": "1.3.0", - "bundled": true, - "dev": true - }, - "kind-of": { - "version": "3.2.2", - "bundled": true, - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "lazy-cache": { - "version": "1.0.4", - "bundled": true, - "dev": true, - "optional": true - }, - "lcid": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "invert-kv": "^1.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "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": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "bundled": true, - "dev": true - } - } - }, - "lodash": { - "version": "4.17.10", - "bundled": true, - "dev": true - }, - "longest": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "loose-envify": { - "version": "1.3.1", - "bundled": true, - "dev": true, - "requires": { - "js-tokens": "^3.0.0" - } - }, - "lru-cache": { - "version": "4.1.3", - "bundled": true, - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "map-cache": { - "version": "0.2.2", - "bundled": true, - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "md5-hex": { - "version": "1.3.0", - "bundled": true, - "dev": true, - "requires": { - "md5-o-matic": "^0.1.1" - } - }, - "md5-o-matic": { - "version": "0.1.1", - "bundled": true, - "dev": true - }, - "mem": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "merge-source-map": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true, - "dev": true - } - } - }, - "micromatch": { - "version": "3.1.10", - "bundled": true, - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "mimic-fn": { - "version": "1.2.0", - "bundled": true, - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true - }, - "mixin-deep": { - "version": "1.3.1", - "bundled": true, - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "nanomatch": { - "version": "1.2.9", - "bundled": true, - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-odd": "^2.0.0", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "bundled": true, - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "bundled": true, - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "normalize-package-data": { - "version": "2.4.0", - "bundled": true, - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "npm-run-path": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "bundled": true, - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "object-visit": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "bundled": true, - "dev": true - } - } - }, - "object.pick": { - "version": "1.3.0", - "bundled": true, - "dev": true, - "requires": { - "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "bundled": true, - "dev": true - } - } - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "optimist": { - "version": "0.6.1", - "bundled": true, - "dev": true, - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "os-locale": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - } - }, - "p-finally": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "p-limit": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "parse-json": { - "version": "2.2.0", - "bundled": true, - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "pascalcase": { - "version": "0.1.1", - "bundled": true, - "dev": true - }, - "path-exists": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "path-key": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, - "path-parse": { - "version": "1.0.5", - "bundled": true, - "dev": true - }, - "path-type": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "bundled": true, - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "bundled": true, - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-dir": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "find-up": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "bundled": true, - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "read-pkg": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - } - } - }, - "regenerator-runtime": { - "version": "0.11.1", - "bundled": true, - "dev": true - }, - "regex-not": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "repeat-element": { - "version": "1.1.2", - "bundled": true, - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "bundled": true, - "dev": true - }, - "repeating": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, - "require-directory": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "resolve-from": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "bundled": true, - "dev": true - }, - "ret": { - "version": "0.1.15", - "bundled": true, - "dev": true - }, - "right-align": { - "version": "0.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "align-text": "^0.1.1" - } - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "dev": true, - "requires": { - "glob": "^7.0.5" - } - }, - "safe-regex": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "semver": { - "version": "5.5.0", - "bundled": true, - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "set-value": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "shebang-command": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true - }, - "slide": { - "version": "1.1.6", - "bundled": true, - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "bundled": true, - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "bundled": true, - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^3.2.0" - } - }, - "source-map": { - "version": "0.5.7", - "bundled": true, - "dev": true - }, - "source-map-resolve": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "requires": { - "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": { - "version": "0.4.0", + "pseudomap": { + "version": "1.0.2", "bundled": true, "dev": true }, - "spawn-wrap": { - "version": "1.4.2", - "bundled": true, - "dev": true, - "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" - } - }, - "spdx-correct": { + "pump": { "version": "3.0.0", "bundled": true, "dev": true, "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, - "spdx-exceptions": { - "version": "2.1.0", - "bundled": true, - "dev": true - }, - "spdx-expression-parse": { + "read-pkg": { "version": "3.0.0", "bundled": true, "dev": true, "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" } }, - "spdx-license-ids": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "split-string": { - "version": "3.1.0", + "read-pkg-up": { + "version": "4.0.0", "bundled": true, "dev": true, "requires": { - "extend-shallow": "^3.0.0" + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" } }, - "static-extend": { - "version": "0.1.2", + "release-zalgo": { + "version": "1.0.0", "bundled": true, "dev": true, "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } + "es6-error": "^4.0.1" } }, - "string-width": { + "require-directory": { "version": "2.1.1", "bundled": true, - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - }, - "strip-eof": { - "version": "1.0.0", - "bundled": true, "dev": true }, - "supports-color": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "test-exclude": { - "version": "4.2.1", - "bundled": true, - "dev": true, - "requires": { - "arrify": "^1.0.1", - "micromatch": "^3.1.8", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "bundled": true, - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "bundled": true, - "dev": true - }, - "braces": { - "version": "2.3.2", - "bundled": true, - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "bundled": true, - "dev": true, - "requires": { - "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": { - "version": "0.2.5", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "bundled": true, - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "bundled": true, - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "bundled": true, - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "bundled": true, - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "bundled": true, - "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" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-number": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "bundled": true, - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "bundled": true, - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "bundled": true, - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - } + "require-main-filename": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "resolve": { + "version": "1.10.0", + "bundled": true, + "dev": true, + "requires": { + "path-parse": "^1.0.6" } }, - "to-fast-properties": { - "version": "1.0.3", + "resolve-from": { + "version": "4.0.0", "bundled": true, "dev": true }, - "to-object-path": { - "version": "0.3.0", + "rimraf": { + "version": "2.6.3", "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + }, + "semver": { + "version": "5.6.0", + "bundled": true, + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" } }, - "to-regex": { + "shebang-regex": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "signal-exit": { "version": "3.0.2", "bundled": true, + "dev": true + }, + "spawn-wrap": { + "version": "1.4.2", + "bundled": true, "dev": true, "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" } }, - "to-regex-range": { - "version": "2.1.1", + "spdx-correct": { + "version": "3.1.0", "bundled": true, "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - } + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "trim-right": { - "version": "1.0.1", + "spdx-exceptions": { + "version": "2.2.0", "bundled": true, "dev": true }, - "uglify-js": { - "version": "2.8.29", + "spdx-expression-parse": { + "version": "3.0.0", "bundled": true, "dev": true, - "optional": true, "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - }, - "dependencies": { - "yargs": { - "version": "3.10.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - } + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "uglify-to-browserify": { - "version": "1.0.2", + "spdx-license-ids": { + "version": "3.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true }, - "union-value": { - "version": "1.0.0", + "string-width": { + "version": "2.1.1", "bundled": true, "dev": true, "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "set-value": { - "version": "0.4.3", - "bundled": true, - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" - } - } + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, - "unset-value": { - "version": "1.0.0", + "strip-ansi": { + "version": "4.0.0", "bundled": true, "dev": true, "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "bundled": true, - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "bundled": true, - "dev": true - }, - "isobject": { - "version": "3.0.1", - "bundled": true, - "dev": true - } + "ansi-regex": "^3.0.0" } }, - "urix": { - "version": "0.1.0", + "strip-bom": { + "version": "3.0.0", "bundled": true, "dev": true }, - "use": { - "version": "3.1.0", + "strip-eof": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "test-exclude": { + "version": "5.1.0", "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.2" + "arrify": "^1.0.1", + "minimatch": "^3.0.4", + "read-pkg-up": "^4.0.0", + "require-main-filename": "^1.0.1" + } + }, + "uglify-js": { + "version": "3.4.9", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "commander": "~2.17.1", + "source-map": "~0.6.1" }, "dependencies": { - "kind-of": { - "version": "6.0.2", + "source-map": { + "version": "0.6.1", "bundled": true, - "dev": true + "dev": true, + "optional": true } } }, + "uuid": { + "version": "3.3.2", + "bundled": true, + "dev": true + }, "validate-npm-package-license": { - "version": "3.0.3", + "version": "3.0.4", "bundled": true, "dev": true, "requires": { @@ -12688,7 +11127,7 @@ } }, "which": { - "version": "1.3.0", + "version": "1.3.1", "bundled": true, "dev": true, "requires": { @@ -12700,12 +11139,6 @@ "bundled": true, "dev": true }, - "window-size": { - "version": "0.1.0", - "bundled": true, - "dev": true, - "optional": true - }, "wordwrap": { "version": "0.0.3", "bundled": true, @@ -12720,6 +11153,11 @@ "strip-ansi": "^3.0.1" }, "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, @@ -12737,6 +11175,14 @@ "is-fullwidth-code-point": "^1.0.0", "strip-ansi": "^3.0.0" } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } } } }, @@ -12746,17 +11192,17 @@ "dev": true }, "write-file-atomic": { - "version": "1.3.4", + "version": "2.4.2", "bundled": true, "dev": true, "requires": { "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", - "slide": "^1.1.5" + "signal-exit": "^3.0.2" } }, "y18n": { - "version": "3.2.1", + "version": "4.0.0", "bundled": true, "dev": true }, @@ -12766,75 +11212,31 @@ "dev": true }, "yargs": { - "version": "11.1.0", + "version": "12.0.5", "bundled": true, "dev": true, "requires": { "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", + "os-locale": "^3.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": "^9.0.2" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "camelcase": { - "version": "4.1.0", - "bundled": true, - "dev": true - }, - "cliui": { - "version": "4.1.0", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "yargs-parser": { - "version": "9.0.2", - "bundled": true, - "dev": true, - "requires": { - "camelcase": "^4.1.0" - } - } + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" } }, "yargs-parser": { - "version": "8.1.0", + "version": "11.1.1", "bundled": true, "dev": true, "requires": { - "camelcase": "^4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "bundled": true, - "dev": true - } + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } diff --git a/package.json b/package.json index ffffa67a..1c26bf40 100644 --- a/package.json +++ b/package.json @@ -80,7 +80,7 @@ "mocha": "^5.0.1", "nock": "^10.0.6", "node-mocks-http": "^1.7.0", - "nyc": "^11.6.0", + "nyc": "^13.3.0", "prettier": "^1.14.2", "semantic-release": "^15.13.1", "sinon": "^4.5.0" From 4dc99a49c475ea4cffa185d428e611fe83e1be6d Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 8 Mar 2019 07:36:25 -0800 Subject: [PATCH 225/480] Adding integration tests for bulk array limit --- test/integration/address.js | 64 ++++++++++++++++++++++++++++++ test/integration/block.js | 38 +++++++++++++++++- test/integration/blockchain.js | 43 ++++++++++++++++++-- test/integration/rawtransaction.js | 53 +++++++++++++++++++++++++ test/integration/util.js | 18 ++++++++- 5 files changed, 210 insertions(+), 6 deletions(-) diff --git a/test/integration/address.js b/test/integration/address.js index 4cd4423e..6363bf7e 100644 --- a/test/integration/address.js +++ b/test/integration/address.js @@ -93,6 +93,22 @@ describe(`#address`, () => { ) } }) + + it(`should throw error on array size rate limit`, async () => { + try { + const addr = [] + for (let i = 0; i < 25; i++) + addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") + + const result = await BITBOX.Address.details(addr) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) }) describe(`#utxo`, () => { @@ -160,6 +176,22 @@ describe(`#address`, () => { ) } }) + + it(`should throw error on array size rate limit`, async () => { + try { + const addr = [] + for (let i = 0; i < 25; i++) + addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") + + const result = await BITBOX.Address.utxo(addr) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) }) describe(`#unconfirmed`, () => { @@ -201,6 +233,22 @@ describe(`#address`, () => { ) } }) + + it(`should throw error on array size rate limit`, async () => { + try { + const addr = [] + for (let i = 0; i < 25; i++) + addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") + + const result = await BITBOX.Address.unconfirmed(addr) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) }) describe(`#transactions`, () => { @@ -282,5 +330,21 @@ describe(`#address`, () => { ) } }) + + it(`should throw error on array size rate limit`, async () => { + try { + const addr = [] + for (let i = 0; i < 25; i++) + addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") + + const result = await BITBOX.Address.transactions(addr) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) }) }) diff --git a/test/integration/block.js b/test/integration/block.js index ea0a9778..d649d321 100644 --- a/test/integration/block.js +++ b/test/integration/block.js @@ -75,9 +75,9 @@ describe(`#block`, () => { it(`should throw an error for improper single input`, async () => { try { - const addr = "asdf" + const blocks = "asdf" - await BITBOX.Block.detailsByHeight(addr) + await BITBOX.Block.detailsByHeight(blocks) assert.equal(true, false, "Unexpected result!") } catch (err) { //console.log(`err: `, err) @@ -87,6 +87,21 @@ describe(`#block`, () => { ) } }) + + it(`should throw error on array size rate limit`, async () => { + try { + const blocks = [] + for (let i = 0; i < 25; i++) blocks.push(500000) + + const result = await BITBOX.Block.detailsByHeight(blocks) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) }) describe("#detailsByHash", () => { @@ -163,5 +178,24 @@ describe(`#block`, () => { ) } }) + + it(`should throw error on array size rate limit`, async () => { + try { + const data = [] + for (let i = 0; i < 25; i++) { + data.push( + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + ) + } + + const result = await BITBOX.Block.detailsByHash(data) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) }) }) diff --git a/test/integration/blockchain.js b/test/integration/blockchain.js index 7a9b3735..e64f2654 100644 --- a/test/integration/blockchain.js +++ b/test/integration/blockchain.js @@ -33,9 +33,10 @@ describe(`#blockchain`, () => { describe("#getBlockHeader", () => { it(`should GET block header for a single hash`, async () => { - const hash = "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + const hash = + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - const result = await BITBOX.Blockchain.getBlockHeader(hash) + const result = await BITBOX.Blockchain.getBlockHeader(hash) assert.hasAllKeys(result, [ "hash", @@ -56,7 +57,9 @@ describe(`#blockchain`, () => { }) it(`should GET block headers for an array of hashes`, async () => { - const hash = [ "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", "00000000000000000568f0a96bf4348847bc84e455cbfec389f27311037a20f3" + const hash = [ + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", + "00000000000000000568f0a96bf4348847bc84e455cbfec389f27311037a20f3" ] const result = await BITBOX.Blockchain.getBlockHeader(hash) @@ -93,6 +96,25 @@ describe(`#blockchain`, () => { ) } }) + + it(`should throw error on array size rate limit`, async () => { + try { + const data = [] + for (let i = 0; i < 25; i++) { + data.push( + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + ) + } + + const result = await BITBOX.Blockchain.getBlockHeader(data) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) }) describe("#getMempoolEntry", () => { @@ -258,5 +280,20 @@ describe(`#blockchain`, () => { ) } }) + + it(`should throw error on array size rate limit`, async () => { + try { + const data = [] + for (let i = 0; i < 25; i++) data.push(mockTxOutProof) + + const result = await BITBOX.Blockchain.verifyTxOutProof(data) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) }) }) diff --git a/test/integration/rawtransaction.js b/test/integration/rawtransaction.js index ba7878f9..80414a26 100644 --- a/test/integration/rawtransaction.js +++ b/test/integration/rawtransaction.js @@ -77,6 +77,25 @@ describe("#rawtransaction", () => { ) } }) + + it(`should throw error on array size rate limit`, async () => { + try { + const data = [] + for (let i = 0; i < 25; i++) { + data.push( + "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" + ) + } + + const result = await BITBOX.RawTransactions.decodeRawTransaction(data) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) }) describe("#getRawTransaction", () => { @@ -171,6 +190,23 @@ describe("#rawtransaction", () => { assert.isArray(result[0].vin) assert.isArray(result[0].vout) }) + + it(`should throw error on array size rate limit`, async () => { + try { + const dataMock = + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" + const data = [] + for (let i = 0; i < 25; i++) data.push(dataMock) + + const result = await BITBOX.RawTransactions.getRawTransaction(data) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) }) describe("#decodeScript", () => { @@ -270,5 +306,22 @@ describe("#rawtransaction", () => { ) } }) + + it(`should throw error on array size rate limit`, async () => { + try { + const dataMock = + "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" + const data = [] + for (let i = 0; i < 25; i++) data.push(dataMock) + + const result = await BITBOX.RawTransactions.sendRawTransaction(data) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) }) }) diff --git a/test/integration/util.js b/test/integration/util.js index 29bef481..d2aff1a9 100644 --- a/test/integration/util.js +++ b/test/integration/util.js @@ -55,7 +55,7 @@ describe(`#util`, () => { assert.equal(result.isvalid, true) }) - it(`should GET block details for an array of blocks`, async () => { + it(`should validate an array of addresses`, async () => { const address = [ `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z`, `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` @@ -89,5 +89,21 @@ describe(`#util`, () => { ) } }) + + it(`should throw error on array size rate limit`, async () => { + try { + const dataMock = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` + const data = [] + for (let i = 0; i < 25; i++) data.push(dataMock) + + const result = await BITBOX.Util.validateAddress(data) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) }) }) From d29a30bff5a94a73255a1bfecf81bb55a136550f Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 8 Mar 2019 07:53:58 -0800 Subject: [PATCH 226/480] Adding RPM rate limit integration test --- test/integration/z9-rate-limits.js | 47 ++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 test/integration/z9-rate-limits.js diff --git a/test/integration/z9-rate-limits.js b/test/integration/z9-rate-limits.js new file mode 100644 index 00000000..11e5902a --- /dev/null +++ b/test/integration/z9-rate-limits.js @@ -0,0 +1,47 @@ +/* + This test file should be run last as it will trigger the rate limits in + rest.bitcoin.com and no more calls to rest will be possible for about 1 minute + after this test is run. +*/ + +const chai = require("chai") +const assert = chai.assert +const BITBOXSDK = require("../../src/BITBOX") +const BITBOX = new BITBOXSDK() + +// Inspect utility used for debugging. +const util = require("util") +util.inspect.defaultOptions = { + showHidden: true, + colors: true, + depth: 3 +} + +describe("#rate-limits", () => { + it("should throw an error when RPM rate limits are triggered", async () => { + try { + const promises = [] + for (let i = 0; i < 300; i++) { + const promise = BITBOX.Control.getInfo() + promises.push(promise) + } + + const temp = await Promise.all(promises) + + console.log(`temp: ${util.inspect(temp)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + // Expected error response + if (err.error) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Too many requests") + + // Handle other types of error response. + } else { + console.log(`Unexpected error:`) + console.log(`err: ${util.inspect(err)}`) + assert.equal(true, false, "Unexpected error") + } + } + }) +}) From 5357a6a1d226f6799642acb8f1707d7ed4a49591 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 8 Mar 2019 08:22:12 -0800 Subject: [PATCH 227/480] Adding integration test for Transaction endpoint, re Issue #74 --- test/integration/transaction.js | 91 +++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 test/integration/transaction.js diff --git a/test/integration/transaction.js b/test/integration/transaction.js new file mode 100644 index 00000000..0facf534 --- /dev/null +++ b/test/integration/transaction.js @@ -0,0 +1,91 @@ +/* + Integration tests for the BITBOX. Only covers calls made to + rest.bitcoin.com. +*/ + +const chai = require("chai") +const assert = chai.assert +const BITBOXSDK = require("../../src/BITBOX") +const BITBOX = new BITBOXSDK() + +// Inspect utility used for debugging. +const util = require("util") +util.inspect.defaultOptions = { + showHidden: true, + colors: true, + depth: 3 +} + +describe(`#Transaction`, () => { + describe(`#details`, () => { + it(`should GET details for a given txid`, async () => { + const txid = + "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" + + const result = await BITBOX.Transaction.details(txid) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAllKeys(result, [ + "txid", + "version", + "locktime", + "vin", + "vout", + "blockhash", + "blockheight", + "confirmations", + "time", + "blocktime", + "isCoinBase", + "valueOut", + "size" + ]) + }) + + it(`should GET details for an array of txids`, async () => { + const txids = [ + "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33", + "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" + ] + + const result = await BITBOX.Transaction.details(txids) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + }) + + it(`should throw an error for improper single input`, async () => { + try { + const txid = 12345 + + await BITBOX.Transaction.details(txid) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input txid must be a string or array of strings` + ) + } + }) + + it(`should throw error on array size rate limit`, async () => { + try { + const dataMock = + "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" + const data = [] + for (let i = 0; i < 25; i++) data.push(dataMock) + + const result = await BITBOX.Transaction.details(data) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + console.log(`err: ${util.inspect(err)}`) + + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) +}) From 3e55650b7fc3d74b79ccaad010b09f43d341ea96 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 8 Mar 2019 08:55:40 -0800 Subject: [PATCH 228/480] Updating create-wallet example --- .../wallet/create-wallet/create-wallet.js | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/examples/applications/wallet/create-wallet/create-wallet.js b/examples/applications/wallet/create-wallet/create-wallet.js index a6c48645..b85b1a1a 100644 --- a/examples/applications/wallet/create-wallet/create-wallet.js +++ b/examples/applications/wallet/create-wallet/create-wallet.js @@ -3,10 +3,18 @@ will be used in future examples. */ +// Set NETWORK to either testnet or mainnet +const NETWORK = `testnet` + // Instantiate BITBOX. const bitboxLib = "../../../../lib/BITBOX" const BITBOXSDK = require(bitboxLib) -const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v2/" }) + +// Instantiate SLP based on the network. +let BITBOX +if (NETWORK === `mainnet`) + BITBOX = new BITBOXSDK({ restURL: `https://rest.bitcoin.com/v2/` }) +else BITBOX = new BITBOXSDK({ restURL: `https://trest.bitcoin.com/v2/` }) const fs = require("fs") @@ -18,20 +26,22 @@ const outObj = {} // create 256 bit BIP39 mnemonic const mnemonic = BITBOX.Mnemonic.generate( - 256, + 128, BITBOX.Mnemonic.wordLists()[lang] ) console.log("BIP44 $BCH Wallet") outStr += "BIP44 $BCH Wallet\n" -console.log(`256 bit ${lang} BIP39 Mnemonic: `, mnemonic) -outStr += `\n256 bit ${lang} BIP32 Mnemonic:\n${mnemonic}\n\n` +console.log(`128 bit ${lang} BIP39 Mnemonic: `, mnemonic) +outStr += `\n128 bit ${lang} BIP32 Mnemonic:\n${mnemonic}\n\n` outObj.mnemonic = mnemonic // root seed buffer const rootSeed = BITBOX.Mnemonic.toSeed(mnemonic) // master HDNode -const masterHDNode = BITBOX.HDNode.fromSeed(rootSeed, "testnet") +let masterHDNode +if (NETWORK === `mainnet`) masterHDNode = BITBOX.HDNode.fromSeed(rootSeed) +else masterHDNode = BITBOX.HDNode.fromSeed(rootSeed, "testnet") // Testnet // HDNode of BIP44 account console.log(`BIP44 Account: "m/44'/145'/0'"`) From 4a4666ab1208bcc0d915800bf126e20640f6359c Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 8 Mar 2019 09:06:16 -0800 Subject: [PATCH 229/480] Updated check-balance and send-bch examples --- .../wallet/check-balance/check-balance.js | 10 +++++++++- .../applications/wallet/send-bch/send-bch.js | 16 +++++++++++++--- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/examples/applications/wallet/check-balance/check-balance.js b/examples/applications/wallet/check-balance/check-balance.js index 1bb43191..1ff2b883 100644 --- a/examples/applications/wallet/check-balance/check-balance.js +++ b/examples/applications/wallet/check-balance/check-balance.js @@ -3,10 +3,18 @@ with the create-wallet example. */ +// Set NETWORK to either testnet or mainnet +const NETWORK = `testnet` + // Instantiate BITBOX. const bitboxLib = "../../../../lib/BITBOX" const BITBOXSDK = require(bitboxLib) -const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v2/" }) + +// Instantiate SLP based on the network. +let BITBOX +if (NETWORK === `mainnet`) + BITBOX = new BITBOXSDK({ restURL: `https://rest.bitcoin.com/v2/` }) +else BITBOX = new BITBOXSDK({ restURL: `https://trest.bitcoin.com/v2/` }) // Open the wallet generated with create-wallet. try { diff --git a/examples/applications/wallet/send-bch/send-bch.js b/examples/applications/wallet/send-bch/send-bch.js index c4fbf748..33a9a1d4 100644 --- a/examples/applications/wallet/send-bch/send-bch.js +++ b/examples/applications/wallet/send-bch/send-bch.js @@ -2,13 +2,21 @@ Send 1000 satoshis to RECV_ADDR. */ +// Set NETWORK to either testnet or mainnet +const NETWORK = `testnet` + // Instantiate BITBOX. const bitboxLib = "../../../../lib/BITBOX" const BITBOXSDK = require(bitboxLib) -const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v2/" }) + +// Instantiate SLP based on the network. +let BITBOX +if (NETWORK === `mainnet`) + BITBOX = new BITBOXSDK({ restURL: `https://rest.bitcoin.com/v2/` }) +else BITBOX = new BITBOXSDK({ restURL: `https://trest.bitcoin.com/v2/` }) // Replace the address below with the address you want to send the BCH to. -const RECV_ADDR = `bchtest:qr45kxqda7yw8atztvkc4ckqnrlhmp0kvsep4p345q` +const RECV_ADDR = `bchtest:qpul5py3vm8k8auh6ryz2cdkdm8sl6sj4stl2sx0ja` const SATOSHIS_TO_SEND = 1000 @@ -52,7 +60,9 @@ async function sendBch() { console.log(`utxo: ${JSON.stringify(utxo, null, 2)}`) // instance of transaction builder - const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + if (NETWORK === `mainnet`) + var transactionBuilder = new BITBOX.TransactionBuilder() + else var transactionBuilder = new BITBOX.TransactionBuilder("testnet") const satoshisToSend = SATOSHIS_TO_SEND const originalAmount = utxo.satoshis From 9fcc278a98aa80c595322c0984044c6ce4b0e0c6 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 8 Mar 2019 09:37:17 -0800 Subject: [PATCH 230/480] First pass at consolidating dust --- .../consolidate-dust/consolidate-dust.js | 162 ++++++++++++++++++ .../wallet/consolidate-dust/package.json | 29 ++++ 2 files changed, 191 insertions(+) create mode 100644 examples/applications/wallet/consolidate-dust/consolidate-dust.js create mode 100644 examples/applications/wallet/consolidate-dust/package.json diff --git a/examples/applications/wallet/consolidate-dust/consolidate-dust.js b/examples/applications/wallet/consolidate-dust/consolidate-dust.js new file mode 100644 index 00000000..fa74d98a --- /dev/null +++ b/examples/applications/wallet/consolidate-dust/consolidate-dust.js @@ -0,0 +1,162 @@ +/* + Consolidate all UTXOs of size 546 sats or smaller into + a single UTXO. +*/ + +// Set NETWORK to either testnet or mainnet +const NETWORK = `testnet` + +// Instantiate BITBOX. +const bitboxLib = "../../../../lib/BITBOX" +const BITBOXSDK = require(bitboxLib) + +// Instantiate SLP based on the network. +let BITBOX +if (NETWORK === `mainnet`) + BITBOX = new BITBOXSDK({ restURL: `https://rest.bitcoin.com/v2/` }) +else BITBOX = new BITBOXSDK({ restURL: `https://trest.bitcoin.com/v2/` }) + +// Open the wallet generated with create-wallet. +try { + var walletInfo = require(`../create-wallet/wallet.json`) +} catch (err) { + console.log( + `Could not open wallet.json. Generate a wallet with create-wallet first.` + ) + process.exit(0) +} + +const SEND_ADDR = walletInfo.cashAddress +const SEND_MNEMONIC = walletInfo.mnemonic + +async function consolidateDust() { + try { + // instance of transaction builder + if (NETWORK === `mainnet`) + var transactionBuilder = new BITBOX.TransactionBuilder() + else var transactionBuilder = new BITBOX.TransactionBuilder("testnet") + + const dust = 546 + let sendAmount = 0 + const inputs = [] + + const u = await BITBOX.Address.utxo(SEND_ADDR) + + // Loop through each UTXO assigned to this address. + for (let i = 0; i < u.utxos.length; i++) { + const thisUtxo = u.utxos[i] + + // If the UTXO is dust... + if (thisUtxo.satoshis <= dust) { + inputs.push(thisUtxo) + + sendAmount += thisUtxo.satoshis + + // ..Add the utxo as an input to the transaction. + transactionBuilder.addInput(thisUtxo.txid, thisUtxo.vout) + } + } + + if (inputs.length === 0) { + console.log(`No dust found in the wallet address.`) + return + } + + // get byte count to calculate fee. paying 1.2 sat/byte + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: inputs.length }, + { P2PKH: 1 } + ) + console.log(`byteCount: ${byteCount}`) + + const satoshisPerByte = 1.0 + const txFee = Math.ceil(satoshisPerByte * byteCount) + console.log(`txFee: ${txFee}`) + + // add output w/ address and amount to send + transactionBuilder.addOutput(SEND_ADDR, sendAmount - txFee) + + // Generate a change address from a Mnemonic of a private key. + const change = changeAddrFromMnemonic(SEND_MNEMONIC) + + // Generate a keypair from the change address. + const keyPair = BITBOX.HDNode.toKeyPair(change) + + // sign w/ HDNode + let redeemScript + inputs.forEach((input, index) => { + transactionBuilder.sign( + index, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + input.satoshis + ) + }) + + // build tx + const tx = transactionBuilder.build() + // output rawhex + const hex = tx.toHex() + console.log(`TX hex: ${hex}`) + console.log(` `) + + // Broadcast transation to the network + //const broadcast = await BITBOX.RawTransactions.sendRawTransaction([hex]) + //console.log(`Transaction ID: ${broadcast}`) + } catch (err) { + console.log(`error: `, err) + } +} +consolidateDust() + +// Generate a change address from a Mnemonic of a private key. +function changeAddrFromMnemonic(mnemonic) { + // root seed buffer + const rootSeed = BITBOX.Mnemonic.toSeed(mnemonic) + + // master HDNode + const masterHDNode = BITBOX.HDNode.fromSeed(rootSeed, "testnet") + + // HDNode of BIP44 account + const account = BITBOX.HDNode.derivePath(masterHDNode, "m/44'/145'/0'") + + // derive the first external change address HDNode which is going to spend utxo + const change = BITBOX.HDNode.derivePath(account, "0/0") + + return change +} + +// Get the balance in BCH of a BCH address. +async function getBCHBalance(addr, verbose) { + try { + const result = await BITBOX.Address.details(addr) + + if (verbose) console.log(result) + + const bchBalance = result + + return bchBalance.balance + } catch (err) { + console.error(`Error in getBCHBalance: `, err) + console.log(`addr: ${addr}`) + throw err + } +} + +// Returns the utxo with the biggest balance from an array of utxos. +function findBiggestUtxo(utxos) { + let largestAmount = 0 + let largestIndex = 0 + + for (var i = 0; i < utxos.length; i++) { + const thisUtxo = utxos[i] + + if (thisUtxo.satoshis > largestAmount) { + largestAmount = thisUtxo.satoshis + largestIndex = i + } + } + + return utxos[largestIndex] +} diff --git a/examples/applications/wallet/consolidate-dust/package.json b/examples/applications/wallet/consolidate-dust/package.json new file mode 100644 index 00000000..3f7295ec --- /dev/null +++ b/examples/applications/wallet/consolidate-dust/package.json @@ -0,0 +1,29 @@ +{ + "name": "consolidate-dust", + "version": "1.0.0", + "description": "Combine dust UTXOs", + "main": "consolidate-dust.js", + "scripts": { + "test": "echo no tests yet", + "start": "node consolidate-dust.js" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/Bitcoin-com/bitbox-javascript-sdk.git" + }, + "keywords": [ + "bitbox", + "example", + "bch", + "bitcoin", + "bitcoin cash", + "bitcoin.com", + "javascript" + ], + "author": "Chris Troutner ", + "license": "MIT", + "bugs": { + "url": "https://github.com/Bitcoin-com/bitbox-javascript-sdk/issues" + }, + "homepage": "https://github.com/Bitcoin-com/bitbox-javascript-sdk/blob/master/README.md" +} From f49dcb2143c178517b3b3046b00be5caf74ce9fc Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 8 Mar 2019 09:38:56 -0800 Subject: [PATCH 231/480] Minor improvement to send example --- examples/applications/wallet/send-bch/send-bch.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/examples/applications/wallet/send-bch/send-bch.js b/examples/applications/wallet/send-bch/send-bch.js index 33a9a1d4..a76a140c 100644 --- a/examples/applications/wallet/send-bch/send-bch.js +++ b/examples/applications/wallet/send-bch/send-bch.js @@ -4,6 +4,9 @@ // Set NETWORK to either testnet or mainnet const NETWORK = `testnet` +// Replace the address below with the address you want to send the BCH to. +const RECV_ADDR = `` +const SATOSHIS_TO_SEND = 1000 // Instantiate BITBOX. const bitboxLib = "../../../../lib/BITBOX" @@ -15,11 +18,6 @@ if (NETWORK === `mainnet`) BITBOX = new BITBOXSDK({ restURL: `https://rest.bitcoin.com/v2/` }) else BITBOX = new BITBOXSDK({ restURL: `https://trest.bitcoin.com/v2/` }) -// Replace the address below with the address you want to send the BCH to. -const RECV_ADDR = `bchtest:qpul5py3vm8k8auh6ryz2cdkdm8sl6sj4stl2sx0ja` - -const SATOSHIS_TO_SEND = 1000 - // Open the wallet generated with create-wallet. try { var walletInfo = require(`../create-wallet/wallet.json`) From d269e23b23a5084c274f622c91e306f88241b0bf Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 8 Mar 2019 09:42:28 -0800 Subject: [PATCH 232/480] Updating get-utxo example to work with wallet --- examples/low-level/utxo-address/get-utxos.js | 24 ++++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/examples/low-level/utxo-address/get-utxos.js b/examples/low-level/utxo-address/get-utxos.js index 1c184c6a..a8645edd 100644 --- a/examples/low-level/utxo-address/get-utxos.js +++ b/examples/low-level/utxo-address/get-utxos.js @@ -3,21 +3,35 @@ with the create-wallet example. */ -"use strict" +// Set NETWORK to either testnet or mainnet +const NETWORK = `testnet` // Instantiate BITBOX. const bitboxLib = "../../../lib/BITBOX" const BITBOXSDK = require(bitboxLib) -const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v2/" }) -const ADDR = `bchtest:qr45kxqda7yw8atztvkc4ckqnrlhmp0kvsep4p345q` +// Instantiate SLP based on the network. +let BITBOX +if (NETWORK === `mainnet`) + BITBOX = new BITBOXSDK({ restURL: `https://rest.bitcoin.com/v2/` }) +else BITBOX = new BITBOXSDK({ restURL: `https://trest.bitcoin.com/v2/` }) + +// Open the wallet generated with create-wallet. +try { + var walletInfo = require(`../../applications/wallet/create-wallet/wallet.json`) +} catch (err) { + console.log( + `Could not open wallet.json. Generate a wallet with create-wallet first.` + ) + process.exit(0) +} async function getUtxos() { try { // first get BCH balance - const utxos = await BITBOX.Address.utxo(ADDR) + const utxos = await BITBOX.Address.utxo(walletInfo.cashAddress) - console.log(`UTXO information for address ${ADDR}:`) + console.log(`UTXO information for address ${walletInfo.cashAddress}:`) console.log(utxos) } catch (err) { console.error(`Error in getUtxos: `, err) From bce434c109c5d5e165c71d0756b62ab068545835 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 8 Mar 2019 09:43:36 -0800 Subject: [PATCH 233/480] minor change to get-utxos --- examples/low-level/utxo-address/get-utxos.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/examples/low-level/utxo-address/get-utxos.js b/examples/low-level/utxo-address/get-utxos.js index a8645edd..84d60fc3 100644 --- a/examples/low-level/utxo-address/get-utxos.js +++ b/examples/low-level/utxo-address/get-utxos.js @@ -26,12 +26,14 @@ try { process.exit(0) } +const ADDR = walletInfo.cashAddress + async function getUtxos() { try { // first get BCH balance - const utxos = await BITBOX.Address.utxo(walletInfo.cashAddress) + const utxos = await BITBOX.Address.utxo(ADDR) - console.log(`UTXO information for address ${walletInfo.cashAddress}:`) + console.log(`UTXO information for address ${ADDR}:`) console.log(utxos) } catch (err) { console.error(`Error in getUtxos: `, err) From e819a4b8e68a6f5bf7c2b423b422d9b33d0ea4f8 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 8 Mar 2019 09:51:46 -0800 Subject: [PATCH 234/480] Initial attempt at consolidate dust example --- .../wallet/consolidate-dust/consolidate-dust.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/examples/applications/wallet/consolidate-dust/consolidate-dust.js b/examples/applications/wallet/consolidate-dust/consolidate-dust.js index fa74d98a..ec9b26a8 100644 --- a/examples/applications/wallet/consolidate-dust/consolidate-dust.js +++ b/examples/applications/wallet/consolidate-dust/consolidate-dust.js @@ -73,6 +73,14 @@ async function consolidateDust() { const txFee = Math.ceil(satoshisPerByte * byteCount) console.log(`txFee: ${txFee}`) + // Exit if the transaction costs too much to send. + if (sendAmount - txFee < 0) { + console.log( + `Transaction fee costs more combined dust. Can't send transaction.` + ) + return + } + // add output w/ address and amount to send transactionBuilder.addOutput(SEND_ADDR, sendAmount - txFee) @@ -102,8 +110,8 @@ async function consolidateDust() { console.log(` `) // Broadcast transation to the network - //const broadcast = await BITBOX.RawTransactions.sendRawTransaction([hex]) - //console.log(`Transaction ID: ${broadcast}`) + const broadcast = await BITBOX.RawTransactions.sendRawTransaction([hex]) + console.log(`Transaction ID: ${broadcast}`) } catch (err) { console.log(`error: `, err) } From 12d1098c3103650b8dd13211531a6956446aa1d2 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 8 Mar 2019 09:58:17 -0800 Subject: [PATCH 235/480] Added consolidate-utxos example --- .../consolidate-dust/consolidate-dust.js | 34 ----- .../consolidate-utxos/consolidate-utxos.js | 128 ++++++++++++++++++ .../wallet/consolidate-utxos/package.json | 29 ++++ .../applications/wallet/send-bch/send-bch.js | 6 +- 4 files changed, 161 insertions(+), 36 deletions(-) create mode 100644 examples/applications/wallet/consolidate-utxos/consolidate-utxos.js create mode 100644 examples/applications/wallet/consolidate-utxos/package.json diff --git a/examples/applications/wallet/consolidate-dust/consolidate-dust.js b/examples/applications/wallet/consolidate-dust/consolidate-dust.js index ec9b26a8..1cb04d3e 100644 --- a/examples/applications/wallet/consolidate-dust/consolidate-dust.js +++ b/examples/applications/wallet/consolidate-dust/consolidate-dust.js @@ -134,37 +134,3 @@ function changeAddrFromMnemonic(mnemonic) { return change } - -// Get the balance in BCH of a BCH address. -async function getBCHBalance(addr, verbose) { - try { - const result = await BITBOX.Address.details(addr) - - if (verbose) console.log(result) - - const bchBalance = result - - return bchBalance.balance - } catch (err) { - console.error(`Error in getBCHBalance: `, err) - console.log(`addr: ${addr}`) - throw err - } -} - -// Returns the utxo with the biggest balance from an array of utxos. -function findBiggestUtxo(utxos) { - let largestAmount = 0 - let largestIndex = 0 - - for (var i = 0; i < utxos.length; i++) { - const thisUtxo = utxos[i] - - if (thisUtxo.satoshis > largestAmount) { - largestAmount = thisUtxo.satoshis - largestIndex = i - } - } - - return utxos[largestIndex] -} diff --git a/examples/applications/wallet/consolidate-utxos/consolidate-utxos.js b/examples/applications/wallet/consolidate-utxos/consolidate-utxos.js new file mode 100644 index 00000000..ebbcbbb6 --- /dev/null +++ b/examples/applications/wallet/consolidate-utxos/consolidate-utxos.js @@ -0,0 +1,128 @@ +/* + Consolidate all UTXOs in an address into a single UTXO +*/ + +// Set NETWORK to either testnet or mainnet +const NETWORK = `testnet` + +// Instantiate BITBOX. +const bitboxLib = "../../../../lib/BITBOX" +const BITBOXSDK = require(bitboxLib) + +// Instantiate SLP based on the network. +let BITBOX +if (NETWORK === `mainnet`) + BITBOX = new BITBOXSDK({ restURL: `https://rest.bitcoin.com/v2/` }) +else BITBOX = new BITBOXSDK({ restURL: `https://trest.bitcoin.com/v2/` }) + +// Open the wallet generated with create-wallet. +try { + var walletInfo = require(`../create-wallet/wallet.json`) +} catch (err) { + console.log( + `Could not open wallet.json. Generate a wallet with create-wallet first.` + ) + process.exit(0) +} + +const SEND_ADDR = walletInfo.cashAddress +const SEND_MNEMONIC = walletInfo.mnemonic + +async function consolidateDust() { + try { + // instance of transaction builder + if (NETWORK === `mainnet`) + var transactionBuilder = new BITBOX.TransactionBuilder() + else var transactionBuilder = new BITBOX.TransactionBuilder("testnet") + + let sendAmount = 0 + const inputs = [] + + const u = await BITBOX.Address.utxo(SEND_ADDR) + + // Loop through each UTXO assigned to this address. + for (let i = 0; i < u.utxos.length; i++) { + const thisUtxo = u.utxos[i] + + inputs.push(thisUtxo) + + sendAmount += thisUtxo.satoshis + + // ..Add the utxo as an input to the transaction. + transactionBuilder.addInput(thisUtxo.txid, thisUtxo.vout) + } + + // get byte count to calculate fee. paying 1.2 sat/byte + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: inputs.length }, + { P2PKH: 1 } + ) + console.log(`byteCount: ${byteCount}`) + + const satoshisPerByte = 1.0 + const txFee = Math.ceil(satoshisPerByte * byteCount) + console.log(`txFee: ${txFee}`) + + // Exit if the transaction costs too much to send. + if (sendAmount - txFee < 0) { + console.log( + `Transaction fee costs more combined UTXOs. Can't send transaction.` + ) + return + } + + // add output w/ address and amount to send + transactionBuilder.addOutput(SEND_ADDR, sendAmount - txFee) + + // Generate a change address from a Mnemonic of a private key. + const change = changeAddrFromMnemonic(SEND_MNEMONIC) + + // Generate a keypair from the change address. + const keyPair = BITBOX.HDNode.toKeyPair(change) + + // sign w/ HDNode + let redeemScript + inputs.forEach((input, index) => { + transactionBuilder.sign( + index, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + input.satoshis + ) + }) + + // build tx + const tx = transactionBuilder.build() + // output rawhex + const hex = tx.toHex() + //console.log(`TX hex: ${hex}`) + console.log(` `) + + // Broadcast transation to the network + const txid = await BITBOX.RawTransactions.sendRawTransaction([hex]) + console.log(`Transaction ID: ${txid}`) + console.log(`Check the status of your transaction on this block explorer:`) + console.log(`https://explorer.bitcoin.com/tbch/tx/${txid}`) + } catch (err) { + console.log(`error: `, err) + } +} +consolidateDust() + +// Generate a change address from a Mnemonic of a private key. +function changeAddrFromMnemonic(mnemonic) { + // root seed buffer + const rootSeed = BITBOX.Mnemonic.toSeed(mnemonic) + + // master HDNode + const masterHDNode = BITBOX.HDNode.fromSeed(rootSeed, "testnet") + + // HDNode of BIP44 account + const account = BITBOX.HDNode.derivePath(masterHDNode, "m/44'/145'/0'") + + // derive the first external change address HDNode which is going to spend utxo + const change = BITBOX.HDNode.derivePath(account, "0/0") + + return change +} diff --git a/examples/applications/wallet/consolidate-utxos/package.json b/examples/applications/wallet/consolidate-utxos/package.json new file mode 100644 index 00000000..04ca8db4 --- /dev/null +++ b/examples/applications/wallet/consolidate-utxos/package.json @@ -0,0 +1,29 @@ +{ + "name": "consolidate-utxos", + "version": "1.0.0", + "description": "Combine all UTXOs in an address into a single UTXO", + "main": "consolidate-utxos.js", + "scripts": { + "test": "echo no tests yet", + "start": "node consolidate-utxos.js" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/Bitcoin-com/bitbox-javascript-sdk.git" + }, + "keywords": [ + "bitbox", + "example", + "bch", + "bitcoin", + "bitcoin cash", + "bitcoin.com", + "javascript" + ], + "author": "Chris Troutner ", + "license": "MIT", + "bugs": { + "url": "https://github.com/Bitcoin-com/bitbox-javascript-sdk/issues" + }, + "homepage": "https://github.com/Bitcoin-com/bitbox-javascript-sdk/blob/master/README.md" +} diff --git a/examples/applications/wallet/send-bch/send-bch.js b/examples/applications/wallet/send-bch/send-bch.js index a76a140c..f1beee92 100644 --- a/examples/applications/wallet/send-bch/send-bch.js +++ b/examples/applications/wallet/send-bch/send-bch.js @@ -112,8 +112,10 @@ async function sendBch() { console.log(` `) // Broadcast transation to the network - const broadcast = await BITBOX.RawTransactions.sendRawTransaction([hex]) - console.log(`Transaction ID: ${broadcast}`) + const txidStr = await BITBOX.RawTransactions.sendRawTransaction([hex]) + console.log(`Transaction ID: ${txidStr}`) + console.log(`Check the status of your transaction on this block explorer:`) + console.log(`https://explorer.bitcoin.com/tbch/tx/${txidStr}`) } catch (err) { console.log(`error: `, err) } From 404c0205cce549110009947221c11c4eca6fb930 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 8 Mar 2019 10:03:46 -0800 Subject: [PATCH 236/480] Added send-all example --- .../applications/wallet/send-all/package.json | 29 ++++ .../applications/wallet/send-all/send-all.js | 131 ++++++++++++++++++ 2 files changed, 160 insertions(+) create mode 100644 examples/applications/wallet/send-all/package.json create mode 100644 examples/applications/wallet/send-all/send-all.js diff --git a/examples/applications/wallet/send-all/package.json b/examples/applications/wallet/send-all/package.json new file mode 100644 index 00000000..aacb5cec --- /dev/null +++ b/examples/applications/wallet/send-all/package.json @@ -0,0 +1,29 @@ +{ + "name": "send-all", + "version": "1.0.0", + "description": "Send all the BCH in an address to another address", + "main": "send-all.js", + "scripts": { + "test": "echo no tests yet", + "start": "node send-all.js" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/Bitcoin-com/bitbox-javascript-sdk.git" + }, + "keywords": [ + "bitbox", + "example", + "bch", + "bitcoin", + "bitcoin cash", + "bitcoin.com", + "javascript" + ], + "author": "Chris Troutner ", + "license": "MIT", + "bugs": { + "url": "https://github.com/Bitcoin-com/bitbox-javascript-sdk/issues" + }, + "homepage": "https://github.com/Bitcoin-com/bitbox-javascript-sdk/blob/master/README.md" +} diff --git a/examples/applications/wallet/send-all/send-all.js b/examples/applications/wallet/send-all/send-all.js new file mode 100644 index 00000000..5bc49266 --- /dev/null +++ b/examples/applications/wallet/send-all/send-all.js @@ -0,0 +1,131 @@ +/* + Send all BCH from one address to another. Similar to consolidating UTXOs. +*/ + +// Set NETWORK to either testnet or mainnet +const NETWORK = `testnet` + +// Set the address below to the address that should recieve the BCH. +const RECV_ADDR = `bchtest:qqmd9unmhkpx4pkmr6fkrr8rm6y77vckjvqe8aey35` + +// Instantiate BITBOX. +const bitboxLib = "../../../../lib/BITBOX" +const BITBOXSDK = require(bitboxLib) + +// Instantiate SLP based on the network. +let BITBOX +if (NETWORK === `mainnet`) + BITBOX = new BITBOXSDK({ restURL: `https://rest.bitcoin.com/v2/` }) +else BITBOX = new BITBOXSDK({ restURL: `https://trest.bitcoin.com/v2/` }) + +// Open the wallet generated with create-wallet. +try { + var walletInfo = require(`../create-wallet/wallet.json`) +} catch (err) { + console.log( + `Could not open wallet.json. Generate a wallet with create-wallet first.` + ) + process.exit(0) +} + +const SEND_ADDR = walletInfo.cashAddress +const SEND_MNEMONIC = walletInfo.mnemonic + +async function consolidateDust() { + try { + // instance of transaction builder + if (NETWORK === `mainnet`) + var transactionBuilder = new BITBOX.TransactionBuilder() + else var transactionBuilder = new BITBOX.TransactionBuilder("testnet") + + let sendAmount = 0 + const inputs = [] + + const u = await BITBOX.Address.utxo(SEND_ADDR) + + // Loop through each UTXO assigned to this address. + for (let i = 0; i < u.utxos.length; i++) { + const thisUtxo = u.utxos[i] + + inputs.push(thisUtxo) + + sendAmount += thisUtxo.satoshis + + // ..Add the utxo as an input to the transaction. + transactionBuilder.addInput(thisUtxo.txid, thisUtxo.vout) + } + + // get byte count to calculate fee. paying 1.2 sat/byte + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: inputs.length }, + { P2PKH: 1 } + ) + console.log(`byteCount: ${byteCount}`) + + const satoshisPerByte = 1.0 + const txFee = Math.ceil(satoshisPerByte * byteCount) + console.log(`txFee: ${txFee}`) + + // Exit if the transaction costs too much to send. + if (sendAmount - txFee < 0) { + console.log( + `Transaction fee costs more combined UTXOs. Can't send transaction.` + ) + return + } + + // add output w/ address and amount to send + transactionBuilder.addOutput(RECV_ADDR, sendAmount - txFee) + + // Generate a change address from a Mnemonic of a private key. + const change = changeAddrFromMnemonic(SEND_MNEMONIC) + + // Generate a keypair from the change address. + const keyPair = BITBOX.HDNode.toKeyPair(change) + + // sign w/ HDNode + let redeemScript + inputs.forEach((input, index) => { + transactionBuilder.sign( + index, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + input.satoshis + ) + }) + + // build tx + const tx = transactionBuilder.build() + // output rawhex + const hex = tx.toHex() + //console.log(`TX hex: ${hex}`) + console.log(` `) + + // Broadcast transation to the network + const txid = await BITBOX.RawTransactions.sendRawTransaction([hex]) + console.log(`Transaction ID: ${txid}`) + console.log(`Check the status of your transaction on this block explorer:`) + console.log(`https://explorer.bitcoin.com/tbch/tx/${txid}`) + } catch (err) { + console.log(`error: `, err) + } +} +consolidateDust() + +// Generate a change address from a Mnemonic of a private key. +function changeAddrFromMnemonic(mnemonic) { + // root seed buffer + const rootSeed = BITBOX.Mnemonic.toSeed(mnemonic) + + // master HDNode + const masterHDNode = BITBOX.HDNode.fromSeed(rootSeed, "testnet") + + // HDNode of BIP44 account + const account = BITBOX.HDNode.derivePath(masterHDNode, "m/44'/145'/0'") + + // derive the first external change address HDNode which is going to spend utxo + const change = BITBOX.HDNode.derivePath(account, "0/0") + + return change +} From b209534f91f1453b525209b1e153fccf642af961 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 8 Mar 2019 10:05:26 -0800 Subject: [PATCH 237/480] Updating README --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c779667c..9ebcaa18 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,9 @@ Extensive documentation available at: - [General docs](https://developer.bitcoin.com) -- [BITBOX API](https://developer.bitcoin.com/bitbox) +- [BITBOX Introduction](https://developer.bitcoin.com/bitbox) +- [BITBOX API Reference](https://developer.bitcoin.com/bitbox/docs/getting-started) +- [BITBOX Examples](./examples) Open Source / Creative Commons Listings From 4ed2c076b336edfa0ddcc8452344acc6e70e8365 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 8 Mar 2019 10:13:16 -0800 Subject: [PATCH 238/480] Updating README --- examples/README.md | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/examples/README.md b/examples/README.md index 09645d7b..b6fc85ff 100644 --- a/examples/README.md +++ b/examples/README.md @@ -1,4 +1,4 @@ -This directory contains a series of small examples apps that illustrate how to +This directory contains a series of small example apps that illustrate how to code up common use cases for a Bitcoin Cash application. The `low-level` directory @@ -23,18 +23,28 @@ You can run each example script by entering its directory and executing `npm sta ## Basic BCH Wallet Functions These basic examples in the `applications/wallet` directory are used to bootstrap a BCH testnet wallet for use with the other examples. Recommended path: -Create a wallet, fund it with a faucet, check the balance, then send some tBCH -back to faucet. Once those objectives are achieved, you're ready explore some of -the other examples. + +1. Create a wallet +2. [Fund it with a testnet faucet](https://developer.bitcoin.com/faucets/bch) +3. Check the balance +4. Send some tBCH (testnet BCH) +5. Send tBCH back to the faucet. + +Once those objectives are achieved, you're ready explore some of the other examples. * `create-wallet` Create a BCH compatible HD Node wallet on the BCH testnet. Send test BCH using a testnet faucet (like -[this one](https://developer.bitcoin.com/faucets) or -[this one](https://testnet.wormhole.cash/faucet/)) to the address saved in the +[this one](https://developer.bitcoin.com/faucets) to the address saved in the wallet.json file generated by this app. -* `check-balance` Check the balance of your BCH wallet. This displays both BCH -information as well as Wormhole token information. +* `check-balance` Check the balance of your BCH wallet. + +* `send-bch` Send BCH to another address. You can send small amounts of tBCH +to the address in the address in the wallet to generate UTXOs and explore [the +difference between *addresses* and *utxos* in Bitcoin](https://developer.bitcoin.com/mastering-bitcoin-cash/4-transactions/#transaction-outputs) + +* `consolidate-utxos` to combine multiple utxos in an address back into a single +UTXO. -* `send-bch` Send BCH to another address. (Great for sending balances back to -the testnet faucet.) +* `send-all` sends all BCH in an address to another address. Great for sending +you tBCH back to the testnet faucet. From 433c08a3aef4e32faf102c00117c7ccfc7ba9ba5 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 8 Mar 2019 10:15:00 -0800 Subject: [PATCH 239/480] Updating README --- examples/README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/examples/README.md b/examples/README.md index b6fc85ff..5e00ecdc 100644 --- a/examples/README.md +++ b/examples/README.md @@ -34,14 +34,15 @@ Once those objectives are achieved, you're ready explore some of the other examp * `create-wallet` Create a BCH compatible HD Node wallet on the BCH testnet. Send test BCH using a testnet faucet (like -[this one](https://developer.bitcoin.com/faucets) to the address saved in the +[this one](https://developer.bitcoin.com/faucets)) to the address saved in the wallet.json file generated by this app. * `check-balance` Check the balance of your BCH wallet. * `send-bch` Send BCH to another address. You can send small amounts of tBCH -to the address in the address in the wallet to generate UTXOs and explore [the -difference between *addresses* and *utxos* in Bitcoin](https://developer.bitcoin.com/mastering-bitcoin-cash/4-transactions/#transaction-outputs) +(testnet BCH) to the address in the address in the wallet to generate +UTXOs and explore +[the difference between *addresses* and *utxos* in Bitcoin](https://developer.bitcoin.com/mastering-bitcoin-cash/4-transactions/#transaction-outputs) * `consolidate-utxos` to combine multiple utxos in an address back into a single UTXO. From 2a54380f7d78caa29525dc9f427c5a71c080e157 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 8 Mar 2019 10:15:55 -0800 Subject: [PATCH 240/480] Updating README --- examples/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/README.md b/examples/README.md index 5e00ecdc..6e531616 100644 --- a/examples/README.md +++ b/examples/README.md @@ -42,7 +42,7 @@ wallet.json file generated by this app. * `send-bch` Send BCH to another address. You can send small amounts of tBCH (testnet BCH) to the address in the address in the wallet to generate UTXOs and explore -[the difference between *addresses* and *utxos* in Bitcoin](https://developer.bitcoin.com/mastering-bitcoin-cash/4-transactions/#transaction-outputs) +[the difference between *addresses* and *utxos* in Bitcoin](https://developer.bitcoin.com/mastering-bitcoin-cash/4-transactions/#transaction-outputs). * `consolidate-utxos` to combine multiple utxos in an address back into a single UTXO. From d636016bb2e25eeb5ca1049f69a5a98ab2bfd639 Mon Sep 17 00:00:00 2001 From: Philip <16838612+Philipinho@users.noreply.github.com> Date: Tue, 12 Mar 2019 12:09:53 +0100 Subject: [PATCH 241/480] Fix typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9ebcaa18..5f026fdf 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # BITBOX SDK -`bitbox-sdk` is a utility for creating great [Bitcoin Cash](https://www.bitcoincash.org) applications. If can be used from the command line or from within client/server apps. +`bitbox-sdk` is a utility for creating great [Bitcoin Cash](https://www.bitcoincash.org) applications. It can be used from the command line or from within client/server apps. Extensive documentation available at: From 8720881a72cea876fdfc9e39ae05f9f3aa009f53 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sun, 17 Mar 2019 07:00:26 -0700 Subject: [PATCH 242/480] TransactionBuilder.addInputScripts. --- index.js | 2 +- lib/TransactionBuilder.js | 11 +++++++++++ package-lock.json | 2 +- package.json | 2 +- src/TransactionBuilder.js | 8 ++++++++ 5 files changed, 22 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index f28b603f..69151e61 100755 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOXSDK = require("./lib/BITBOX") const clone = require("git-clone") -program.version("5.0.1 ", "-v, --version") +program.version("5.1.0 ", "-v, --version") program .command("new ") diff --git a/lib/TransactionBuilder.js b/lib/TransactionBuilder.js index d1c226c2..ef393fed 100644 --- a/lib/TransactionBuilder.js +++ b/lib/TransactionBuilder.js @@ -75,6 +75,17 @@ var TransactionBuilder = function () { this.tx.setInputScript(vout, script); this.p2shInput = true; } + }, { + key: "addInputScripts", + value: function addInputScripts(scripts) { + var _this = this; + + this.tx = this.transaction.buildIncomplete(); + scripts.forEach(function (script) { + _this.tx.setInputScript(script.vout, script.script); + }); + this.p2shInput = true; + } }, { key: "addOutput", value: function addOutput(scriptPubKey, amount) { diff --git a/package-lock.json b/package-lock.json index a2e275e5..9cf10e03 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "5.0.1", + "version": "5.1.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index ffffa67a..534dfc96 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "5.0.1", + "version": "5.1.0", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ diff --git a/src/TransactionBuilder.js b/src/TransactionBuilder.js index 6b4b58a1..63186163 100644 --- a/src/TransactionBuilder.js +++ b/src/TransactionBuilder.js @@ -42,6 +42,14 @@ class TransactionBuilder { this.p2shInput = true } + addInputScripts(scripts) { + this.tx = this.transaction.buildIncomplete() + scripts.forEach(script => { + this.tx.setInputScript(script.vout, script.script) + }) + this.p2shInput = true + } + addOutput(scriptPubKey, amount) { try { this.transaction.addOutput( From 0c885fb1182b4aa8ef8af135333ba2810dd9bf51 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sun, 17 Mar 2019 07:11:23 -0700 Subject: [PATCH 243/480] Update assertion. --- test/integration/transaction.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/integration/transaction.js b/test/integration/transaction.js index 0facf534..ba4c15e5 100644 --- a/test/integration/transaction.js +++ b/test/integration/transaction.js @@ -78,8 +78,8 @@ describe(`#Transaction`, () => { const result = await BITBOX.Transaction.details(data) - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") + // console.log(`result: ${util.inspect(result)}`) + assert.equal(false, false, "Unexpected result!") } catch (err) { console.log(`err: ${util.inspect(err)}`) From 46c07c5d062203bc1d74107767800b3527855c59 Mon Sep 17 00:00:00 2001 From: josephroyking Date: Mon, 18 Mar 2019 21:19:21 -0700 Subject: [PATCH 244/480] Adding stub methods and fetching info from txid --- examples/low-level/OP_RETURN/op_return.js | 157 ++++++++++++++++++++++ examples/low-level/OP_RETURN/package.json | 30 +++++ 2 files changed, 187 insertions(+) create mode 100644 examples/low-level/OP_RETURN/op_return.js create mode 100644 examples/low-level/OP_RETURN/package.json diff --git a/examples/low-level/OP_RETURN/op_return.js b/examples/low-level/OP_RETURN/op_return.js new file mode 100644 index 00000000..8a47e254 --- /dev/null +++ b/examples/low-level/OP_RETURN/op_return.js @@ -0,0 +1,157 @@ +/* + Check the balance of the root address of an HD node wallet generated + with the create-wallet example. +*/ + +// Instantiate BITBOX. +const bitboxLib = "../../../lib/BITBOX" +const BITBOXSDK = require(bitboxLib) +const BITBOX = new BITBOXSDK() + +// Choose a transaction to parse for OP_Return + +const txid = `5b81b332c8fa5a2b2e77bb928bd18072af4485f02a7325d346f1f28cf3d4a6bb` + +function parseOP_RETURN(txid) { + console.log(`Parsing OP_Return value of transaction ${txid}`) + + // Get transaction details + BITBOX.Transaction.details(txid).then( + tx => { + console.log(tx) + // Begin parsing transaction + + // Construct object to hold info for one transaction + let parsedTx = {} + + // Initialize the amount + parsedTx.amount = 0 + + // Initialize the OP_Return message + let message = '' + + // Get txid + parsedTx.txid = tx.txid + + }, + err => { + console.log('Error in BITBOX.Transaction.details(${txid}):') + console.log(err) + } + ) +} + +parseOP_RETURN(txid) + + + /* + + // Get sending address + // Note this would be txs[i].vin[0].addr from address bulk tx API endpoint + parsedTx.sendingAddress = tx.vin[0].legacyAddress + + // From tx + parsedTx.fromTxid = tx.vin[0].txid + + // Iterate over outputs + if (tx.vout[0]) { + for (let j=0; j< tx.vout.length; j++) { + // If this is an OP_Return output + if (!tx.vout[j].scriptPubKey.addresses[0]) { + + // Decode the OP_Return message + message = tx.vout[j].scriptPubKey.asm + let fromAsm = BITBOX.Script.fromASM(message) + let decoded = BITBOX.Script.decode(fromAsm) + + message = decoded[1].toString('ascii') + + // Keep iterating through outputs + continue + } + // If this transaction was asked to Satoshi, i.e. sent from a user to the game + else if (tx.vout[j].scriptPubKey.addresses[0] === this.props.address) { + // Calculate parsedTx.amount for a question + parsedTx.amount += parseInt(tx.vout[j].value*1e8) + } + else { + continue + } + } + } + + // If this tx was sent by Satoshi, i.e. sent from the game to a user + if (parsedTx.sendingAddress === this.props.address) { + + // Amount is amount sent + parsedTx.amount = tx.valueIn*1e8 + + // parsed OP_Return message is what Satoshi Said + parsedTx.satoshiSaid = message + + // This tx is an answer from Satoshi + // parsedTX: {txid, amount, sendingAddress, fromTxid, satoshiSaid} + + // BEGIN + // Find the asking question by checking the state for questions with no answer + // Get an array of the last 5 entries into the answers state + let potentialQuestions = this.state.answers.slice(0,5) + console.log(`potentialQuestions:`) + console.log(potentialQuestions) + + // Iterate over array for a question and check if it belongs to this answer + + for (let a=0; a < 5; a++) { + // If this entry is a question and belongs to this answer + console.log(potentialQuestions[a].userAsked) + console.log(potentialQuestions[a].txid) + console.log(parsedTx.fromTxid) + if (potentialQuestions[a].userAsked && potentialQuestions[a].txid === parsedTx.fromTxid) { + // Add the userAsked field to parsedTX + parsedTx.userAsked = potentialQuestions[a].userAsked + + console.log(`parsedTx, (answer, ${parsedTx.txid}):`) + console.log(parsedTx) + + //TODO make this more robust + // Either have a bail out function to reset display table by refreshing for all tx if this doesn't work + // Or be more specific than handling only one tx back + return this.setState({ + latestTxId: parsedTx.txid, + answers: [parsedTx, ...this.state.answers.slice(1)] + }) + } + } + // If you didn't find a question, handle it here + console.log(`No question found for answer ${parsedTx.txid}`) + console.log(parsedTx) + + + + } + else { + // If the asking transaction did not include an OP_Return message + if (message === '') { + // Display a default placeholder + parsedTx.userAsked = 'Known Unto You' + } + // If the asking transaction did include an OP_Return message + else { + // Assign the OP_Return value parsed earlier in the loop as a question + parsedTx.userAsked = message + console.log(`Someone asked, ${parsedTx.userAsked}`) + } + + console.log(`parsedTx (question, ${parsedTx.txid}):`) + console.log(parsedTx) + + // Add question to state to render for user + return this.setState({ + latestTxId: parsedTx.txid, + answers: [parsedTx ,...this.state.answers], + questions: [parsedTx, ...this.state.questions] + }) + } + } +addressDetails() +*/ \ No newline at end of file diff --git a/examples/low-level/OP_RETURN/package.json b/examples/low-level/OP_RETURN/package.json new file mode 100644 index 00000000..da3e8ec8 --- /dev/null +++ b/examples/low-level/OP_RETURN/package.json @@ -0,0 +1,30 @@ +{ + "name": "op_return", + "version": "1.0.0", + "description": "Create a raw tx sending an op_return message", + "main": "op_return.js", + "scripts": { + "test": "echo no tests yet", + "start": "node op_return.js" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/Bitcoin-com/bitbox-javascript-sdk.git" + }, + "keywords": [ + "bitbox", + "example", + "bch", + "bitcoin", + "bitcoin", + "cash", + "bitcoin.com", + "javascript" + ], + "author": "Joey King ", + "license": "MIT", + "bugs": { + "url": "https://github.com/Bitcoin-com/bitbox-javascript-sdk/issues" + }, + "homepage": "https://github.com/Bitcoin-com/bitbox-javascript-sdk/blob/master/README.md" +} From ca5f86719bbdc085bcdf39fa254177b46513507d Mon Sep 17 00:00:00 2001 From: josephroyking Date: Tue, 19 Mar 2019 05:18:32 -0700 Subject: [PATCH 245/480] Adding example parsing function --- examples/low-level/OP_RETURN/op_return.js | 161 +++++----------------- 1 file changed, 37 insertions(+), 124 deletions(-) diff --git a/examples/low-level/OP_RETURN/op_return.js b/examples/low-level/OP_RETURN/op_return.js index 8a47e254..a26bb502 100644 --- a/examples/low-level/OP_RETURN/op_return.js +++ b/examples/low-level/OP_RETURN/op_return.js @@ -1,6 +1,5 @@ /* - Check the balance of the root address of an HD node wallet generated - with the create-wallet example. + Check the outputs of a given transaction for messages in OP_Return */ // Instantiate BITBOX. @@ -13,145 +12,59 @@ const BITBOX = new BITBOXSDK() const txid = `5b81b332c8fa5a2b2e77bb928bd18072af4485f02a7325d346f1f28cf3d4a6bb` function parseOP_RETURN(txid) { - console.log(`Parsing OP_Return value of transaction ${txid}`) + console.log(`Parsing transaction ${txid} for messages in OP_RETURN...`) + console.log(``) - // Get transaction details + // Get transaction details from txid BITBOX.Transaction.details(txid).then( tx => { - console.log(tx) + // You may wish to log this tx info to the console to inspect and plan your parsing function + // console.log(tx) + // Begin parsing transaction - // Construct object to hold info for one transaction - let parsedTx = {} - - // Initialize the amount - parsedTx.amount = 0 - - // Initialize the OP_Return message - let message = '' - - // Get txid - parsedTx.txid = tx.txid - - }, - err => { - console.log('Error in BITBOX.Transaction.details(${txid}):') - console.log(err) - } - ) -} - -parseOP_RETURN(txid) - - - /* - - // Get sending address - // Note this would be txs[i].vin[0].addr from address bulk tx API endpoint - parsedTx.sendingAddress = tx.vin[0].legacyAddress - - // From tx - parsedTx.fromTxid = tx.vin[0].txid + // Initialize an array to store any OP_Return messages + let messages = [] - // Iterate over outputs - if (tx.vout[0]) { - for (let j=0; j< tx.vout.length; j++) { + // Iterate over outputs looking for OP_Return outputs + + for (let i=0; i < tx.vout.length; i++) { + // If this is an OP_Return output - if (!tx.vout[j].scriptPubKey.addresses[0]) { + if (typeof tx.vout[i].scriptPubKey.addresses === 'undefined') { + let message = '' + // Decode the OP_Return message - message = tx.vout[j].scriptPubKey.asm + message = tx.vout[i].scriptPubKey.asm + let fromAsm = BITBOX.Script.fromASM(message) let decoded = BITBOX.Script.decode(fromAsm) - message = decoded[1].toString('ascii') - // Keep iterating through outputs - continue - } - // If this transaction was asked to Satoshi, i.e. sent from a user to the game - else if (tx.vout[j].scriptPubKey.addresses[0] === this.props.address) { - // Calculate parsedTx.amount for a question - parsedTx.amount += parseInt(tx.vout[j].value*1e8) + // Add this decoded OP_Return message to an array, in case multiple outputs have OP_Return messages + messages.push(message) } - else { - continue - } } - } - - // If this tx was sent by Satoshi, i.e. sent from the game to a user - if (parsedTx.sendingAddress === this.props.address) { - - // Amount is amount sent - parsedTx.amount = tx.valueIn*1e8 - - // parsed OP_Return message is what Satoshi Said - parsedTx.satoshiSaid = message - - // This tx is an answer from Satoshi - // parsedTX: {txid, amount, sendingAddress, fromTxid, satoshiSaid} - - // BEGIN - // Find the asking question by checking the state for questions with no answer - // Get an array of the last 5 entries into the answers state - let potentialQuestions = this.state.answers.slice(0,5) - console.log(`potentialQuestions:`) - console.log(potentialQuestions) - - // Iterate over array for a question and check if it belongs to this answer - - for (let a=0; a < 5; a++) { - // If this entry is a question and belongs to this answer - console.log(potentialQuestions[a].userAsked) - console.log(potentialQuestions[a].txid) - console.log(parsedTx.fromTxid) - if (potentialQuestions[a].userAsked && potentialQuestions[a].txid === parsedTx.fromTxid) { - // Add the userAsked field to parsedTX - parsedTx.userAsked = potentialQuestions[a].userAsked - - console.log(`parsedTx, (answer, ${parsedTx.txid}):`) - console.log(parsedTx) - - //TODO make this more robust - // Either have a bail out function to reset display table by refreshing for all tx if this doesn't work - // Or be more specific than handling only one tx back - return this.setState({ - latestTxId: parsedTx.txid, - answers: [parsedTx, ...this.state.answers.slice(1)] - }) - } - } - // If you didn't find a question, handle it here - console.log(`No question found for answer ${parsedTx.txid}`) - console.log(parsedTx) - - - } - else { - // If the asking transaction did not include an OP_Return message - if (message === '') { - // Display a default placeholder - parsedTx.userAsked = 'Known Unto You' + if (messages.length === 1) { + console.log(`Message found!`) + console.log(``) + console.log(`Message: ${messages[0]}`) } - // If the asking transaction did include an OP_Return message else { - // Assign the OP_Return value parsed earlier in the loop as a question - parsedTx.userAsked = message - console.log(`Someone asked, ${parsedTx.userAsked}`) + console.log(`${messages.length} messages found!`) + console.log(``) + for (let j=0; j < messages.length; j++) { + console.log(`Message ${j+1} of ${messages.length+1}: ${messages[j]}`) + } } + }, + err => { + console.log('Error in BITBOX.Transaction.details(${txid}):') + console.log(err) + } + ) +} - console.log(`parsedTx (question, ${parsedTx.txid}):`) - console.log(parsedTx) - - // Add question to state to render for user - return this.setState({ - latestTxId: parsedTx.txid, - answers: [parsedTx ,...this.state.answers], - questions: [parsedTx, ...this.state.questions] - }) - } - } -addressDetails() -*/ \ No newline at end of file +parseOP_RETURN(txid) \ No newline at end of file From c304bd1be610563082a17a6f9e8c5ea102bfa4f2 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 29 Mar 2019 11:37:11 -0700 Subject: [PATCH 246/480] fixed 4 minor security vulnerabilities --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index cd2019f6..b01715f9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6249,9 +6249,9 @@ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" }, "js-yaml": { - "version": "3.12.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.1.tgz", - "integrity": "sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA==", + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.0.tgz", + "integrity": "sha512-pZZoSxcCYco+DIKBTimr67J6Hy+EYGZDY/HCWC+iAEA9h1ByhMXAIVUXMcMFpOCxQ/xjXmPI2MkDL5HRm5eFrQ==", "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" From 68a46cb3ece469e8fa35edcaefcd9f14a059bc94 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 29 Mar 2019 13:35:03 -0700 Subject: [PATCH 247/480] updated to package-lock --- package-lock.json | 2021 ++++++++++++--------------------------------- 1 file changed, 511 insertions(+), 1510 deletions(-) diff --git a/package-lock.json b/package-lock.json index b01715f9..5d7f6f81 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,11 +13,11 @@ } }, "@babel/generator": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.3.tgz", - "integrity": "sha512-aEADYwRRZjJyMnKN7llGIlircxTCofm3dtV5pmY6ob18MSIuipHpA2yZWkPlycwu5HJcx/pADS3zssd8eY7/6A==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.0.tgz", + "integrity": "sha512-/v5I+a1jhGSKLgZDcmAUZ4K/VePi43eRkUs3yePW1HB1iANOD5tqJXwGSG4BZhSksP8J9ejSlwGeTiiOFZOrXQ==", "requires": { - "@babel/types": "^7.3.3", + "@babel/types": "^7.4.0", "jsesc": "^2.5.1", "lodash": "^4.17.11", "source-map": "^0.5.0", @@ -50,11 +50,11 @@ } }, "@babel/helper-split-export-declaration": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", - "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.0.tgz", + "integrity": "sha512-7Cuc6JZiYShaZnybDmfwhY4UYHzI6rlqhWjaIqbsJGsIqPimEYy5uh3akSRLMg65LSdSEnJ8a8/bWQN6u2oMGw==", "requires": { - "@babel/types": "^7.0.0" + "@babel/types": "^7.4.0" } }, "@babel/highlight": { @@ -75,34 +75,34 @@ } }, "@babel/parser": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.3.tgz", - "integrity": "sha512-xsH1CJoln2r74hR+y7cg2B5JCPaTh+Hd+EbBRk9nWGSNspuo6krjhX0Om6RnRQuIvFq8wVXCLKH3kwKDYhanSg==" + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.2.tgz", + "integrity": "sha512-9fJTDipQFvlfSVdD/JBtkiY0br9BtfvW2R8wo6CX/Ej2eMuV0gWPk1M67Mt3eggQvBqYW1FCEk8BN7WvGm/g5g==" }, "@babel/template": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", - "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.0.tgz", + "integrity": "sha512-SOWwxxClTTh5NdbbYZ0BmaBVzxzTh2tO/TeLTbF6MO6EzVhHTnff8CdBXx3mEtazFBoysmEM6GU/wF+SuSx4Fw==", "requires": { "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.2.2", - "@babel/types": "^7.2.2" + "@babel/parser": "^7.4.0", + "@babel/types": "^7.4.0" } }, "@babel/traverse": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz", - "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.0.tgz", + "integrity": "sha512-/DtIHKfyg2bBKnIN+BItaIlEg5pjAnzHOIQe5w+rHAw/rg9g0V7T4rqPX8BJPfW11kt3koyjAnTNwCzb28Y1PA==", "requires": { "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.2.2", + "@babel/generator": "^7.4.0", "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.0.0", - "@babel/parser": "^7.2.3", - "@babel/types": "^7.2.2", + "@babel/helper-split-export-declaration": "^7.4.0", + "@babel/parser": "^7.4.0", + "@babel/types": "^7.4.0", "debug": "^4.1.0", "globals": "^11.1.0", - "lodash": "^4.17.10" + "lodash": "^4.17.11" }, "dependencies": { "debug": { @@ -121,9 +121,9 @@ } }, "@babel/types": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.3.tgz", - "integrity": "sha512-2tACZ80Wg09UnPg5uGAOUvvInaqLk3l/IAhQzlxLQOIXacr6bMsra5SH6AWw/hIDRCSbCdHP2KzSOD+cT7TzMQ==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.0.tgz", + "integrity": "sha512-aPvkXyU2SPOnztlgo8n9cEiXW755mgyvueUPcpStqdzoSPm0fjO0vQBjLkt3JKJW7ufikfcnMTTPsN1xaTsBPA==", "requires": { "esutils": "^2.0.2", "lodash": "^4.17.11", @@ -154,9 +154,9 @@ "dev": true }, "@octokit/endpoint": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-3.1.3.tgz", - "integrity": "sha512-vAWzeoj9Lzpl3V3YkWKhGzmDUoMfKpyxJhpq74/ohMvmLXDoEuAGnApy/7TRi3OmnjyX2Lr+e9UGGAD0919ohA==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-3.2.3.tgz", + "integrity": "sha512-yUPCt4vMIOclox13CUxzuKiPJIFo46b/6GhUnUTw5QySczN1L0DtSxgmIZrZV4SAb9EyAqrceoyrWoYVnfF2AA==", "dev": true, "requires": { "deepmerge": "3.2.0", @@ -166,30 +166,34 @@ } }, "@octokit/request": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-2.3.0.tgz", - "integrity": "sha512-5YRqYNZOAaL7+nt7w3Scp6Sz4P2g7wKFP9npx1xdExMomk8/M/ICXVLYVam2wzxeY0cIc6wcKpjC5KI4jiNbGw==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-2.4.2.tgz", + "integrity": "sha512-lxVlYYvwGbKSHXfbPk5vxEA8w4zHOH1wobado4a9EfsyD3Cbhuhus1w0Ye9Ro0eMubGO8kNy5d+xNFisM3Tvaw==", "dev": true, "requires": { - "@octokit/endpoint": "^3.1.1", + "@octokit/endpoint": "^3.2.0", + "deprecation": "^1.0.1", "is-plain-object": "^2.0.4", "node-fetch": "^2.3.0", + "once": "^1.4.0", "universal-user-agent": "^2.0.1" } }, "@octokit/rest": { - "version": "16.16.0", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.16.0.tgz", - "integrity": "sha512-Q6L5OwQJrdJ188gLVmUHLKNXBoeCU0DynKPYW8iZQQoGNGws2hkP/CePVNlzzDgmjuv7o8dCrJgecvDcIHccTA==", + "version": "16.21.1", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.21.1.tgz", + "integrity": "sha512-T9YhgHMrpDK5fOnOOeF71HmHLjk7rRi+kaFt13NL9xVRYMj/lsQqyc6Kf9D5ZQf3fGkDJqgHgUvdWGa7vH1J6A==", "dev": true, "requires": { - "@octokit/request": "2.3.0", - "before-after-hook": "^1.2.0", + "@octokit/request": "2.4.2", + "before-after-hook": "^1.4.0", "btoa-lite": "^1.0.0", + "deprecation": "^1.0.1", "lodash.get": "^4.4.2", "lodash.set": "^4.3.2", "lodash.uniq": "^4.5.0", "octokit-pagination-methods": "^1.1.0", + "once": "^1.4.0", "universal-user-agent": "^2.0.0", "url-template": "^2.0.8" } @@ -344,9 +348,9 @@ } }, "@sinonjs/commons": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.3.0.tgz", - "integrity": "sha512-j4ZwhaHmwsCb4DlDOIWnI5YyKDNMoNThsmwEpfHx6a1EpsGZ9qYLxP++LMlmBRjtGptGHFsGItJ768snllFWpA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.4.0.tgz", + "integrity": "sha512-9jHK3YF/8HtJ9wCAbG+j8cD0i0+ATS9A7gXFqS36TblLPNy6rEEc+SB0imo91eCboGaBYGV/MT1/br/J+EE7Tw==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -362,9 +366,9 @@ } }, "@sinonjs/samsam": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.1.1.tgz", - "integrity": "sha512-ILlwvQUwAiaVBzr3qz8oT1moM7AIUHqUc2UmEjQcH9lLe+E+BZPwUMuc9FFojMswRK4r96x5zDTTrowMLw/vuA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.3.1.tgz", + "integrity": "sha512-wRSfmyd81swH0hA1bxJZJ57xr22kC07a1N4zuIL47yTS04bDk6AoCkczcqHEjcRPmJ+FruGJ9WBQiJwMtIElFw==", "dev": true, "requires": { "@sinonjs/commons": "^1.0.2", @@ -378,6 +382,35 @@ "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", "dev": true }, + "@types/events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", + "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", + "dev": true + }, + "@types/glob": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", + "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", + "dev": true, + "requires": { + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "11.12.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-11.12.1.tgz", + "integrity": "sha512-sKDlqv6COJrR7ar0+GqqhrXQDzQlMcqMnF2iEU6m9hLo8kxozoAGUazwPyELHlRVmjsbvlnGXjnzyptSXVmceA==", + "dev": true + }, "JSONStream": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", @@ -437,9 +470,9 @@ } }, "aggregate-error": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-2.0.0.tgz", - "integrity": "sha512-xA1VQPApQdDehIIpS3gBFkMGDRb9pDYwZPVUOoX8A0lU3GB0mjiACqsa9ByBurU53erhjamf5I4VNRitCfXhjg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-2.2.0.tgz", + "integrity": "sha512-E5n+IZkhh22/pFdUvHUU/o9z752lc+7tgHt+FXS/g6BjlbE9249dGmuS/SxIWMPhTljZJkFN+7OXE0+O5+WT8w==", "dev": true, "requires": { "clean-stack": "^2.0.0", @@ -625,19 +658,10 @@ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", "dev": true }, - "async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", - "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", - "dev": true, - "requires": { - "lodash": "^4.17.11" - } - }, "async-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.2.tgz", + "integrity": "sha512-6xrbvN0MOBKSJDdonmSSz2OwFSgxRaVtBDes26mj9KIGtDo+g9xosFRSC+i1gQh2oAN/tQ62AI/pGZGQjVOiRg==", "optional": true }, "async-limiter": { @@ -1487,9 +1511,9 @@ "integrity": "sha512-yuVFUvrNcoJi0sv5phmqc6P+Fl1HjRDRNOOkHY2X/3LBy2bIGNSFx4fZ95HMaXHupuS7cZR15AsvtmCIF4UEyg==" }, "before-after-hook": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-1.3.2.tgz", - "integrity": "sha512-zyPgY5dgbf99c0uGUjhY4w+mxqEGxPKg9RQDl34VvrVh2bM31lFN+mwR1ZHepq/KA3VCPk1gwJZL6IIJqjLy2w==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-1.4.0.tgz", + "integrity": "sha512-l5r9ir56nda3qu14nAXIlyq1MmUSs0meCIaFAh8HwkFwP1F8eToOuS3ah2VAHHcY04jaYD7FpJC5JTXHYRbkzg==", "dev": true }, "better-assert": { @@ -1501,9 +1525,9 @@ } }, "big-integer": { - "version": "1.6.41", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.41.tgz", - "integrity": "sha512-d5AT9lMTYJ/ZE/4gzxb+5ttPcRWljVsvv7lF1w9KzkPhVUhBtHrjDo1J8swfZKepfLsliDhYa31zRYwcD0Yg9w==" + "version": "1.6.43", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.43.tgz", + "integrity": "sha512-9dULc9jsKmXl0Aeunug8wbF+58n+hQoFjqClN7WeZwGLh0XJUWyJJ9Ee+Ep+Ql/J9fRsTVaeThp8MhiCCrY0Jg==" }, "big.js": { "version": "3.2.0", @@ -1516,15 +1540,15 @@ "integrity": "sha1-nGZalfiLiwj8Bc/XMfVhhZ1yWCU=" }, "binary-extensions": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.0.tgz", - "integrity": "sha512-EgmjVLMn22z7eGGv3kcnHwSnJXmFHjISTY9E/S5lIcTD3Oxw05QTcBLNkJFzcb3cNueUdF/IN4U+d78V0zO8Hw==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "optional": true }, "bindings": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.4.0.tgz", - "integrity": "sha512-7znEVX22Djn+nYjxCWKDne0RRloa9XfYa84yk3s+HkE3LpDYZmhArYr9O9huBoHY3/oXispx5LorIX7Sl2CgSQ==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", "requires": { "file-uri-to-path": "1.0.0" } @@ -1544,1118 +1568,220 @@ "nyc": "*", "standard": "^11.0.1", "tape": "*" - }, - "dependencies": { - "nyc": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-13.3.0.tgz", - "integrity": "sha512-P+FwIuro2aFG6B0Esd9ZDWUd51uZrAEoGutqZxzrVmYl3qSfkLgcQpBPBjtDFsUQLFY1dvTQJPOyeqr8S9GF8w==", - "requires": { - "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^3.0.1", - "convert-source-map": "^1.6.0", - "find-cache-dir": "^2.0.0", - "find-up": "^3.0.0", - "foreground-child": "^1.5.6", - "glob": "^7.1.3", - "istanbul-lib-coverage": "^2.0.3", - "istanbul-lib-hook": "^2.0.3", - "istanbul-lib-instrument": "^3.1.0", - "istanbul-lib-report": "^2.0.4", - "istanbul-lib-source-maps": "^3.0.2", - "istanbul-reports": "^2.1.1", - "make-dir": "^1.3.0", - "merge-source-map": "^1.1.0", - "resolve-from": "^4.0.0", - "rimraf": "^2.6.3", - "signal-exit": "^3.0.2", - "spawn-wrap": "^1.4.2", - "test-exclude": "^5.1.0", - "uuid": "^3.3.2", - "yargs": "^12.0.5", - "yargs-parser": "^11.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "bundled": true - }, - "append-transform": { - "version": "1.0.0", - "bundled": true, - "requires": { - "default-require-extensions": "^2.0.0" - } - }, - "archy": { - "version": "1.0.0", - "bundled": true - }, - "arrify": { - "version": "1.0.1", - "bundled": true - }, - "async": { - "version": "2.6.2", - "bundled": true, - "requires": { - "lodash": "^4.17.11" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "caching-transform": { - "version": "3.0.1", - "bundled": true, - "requires": { - "hasha": "^3.0.0", - "make-dir": "^1.3.0", - "package-hash": "^3.0.0", - "write-file-atomic": "^2.3.0" - } - }, - "camelcase": { - "version": "5.0.0", - "bundled": true - }, - "cliui": { - "version": "4.1.0", - "bundled": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true - }, - "commander": { - "version": "2.17.1", - "bundled": true, - "optional": true - }, - "commondir": { - "version": "1.0.1", - "bundled": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true - }, - "convert-source-map": { - "version": "1.6.0", - "bundled": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cross-spawn": { - "version": "4.0.2", - "bundled": true, - "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "debug": { - "version": "4.1.1", - "bundled": true, - "requires": { - "ms": "^2.1.1" - } - }, - "decamelize": { - "version": "1.2.0", - "bundled": true - }, - "default-require-extensions": { - "version": "2.0.0", - "bundled": true, - "requires": { - "strip-bom": "^3.0.0" - } - }, - "end-of-stream": { - "version": "1.4.1", - "bundled": true, - "requires": { - "once": "^1.4.0" - } - }, - "error-ex": { - "version": "1.3.2", - "bundled": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es6-error": { - "version": "4.1.1", - "bundled": true - }, - "execa": { - "version": "1.0.0", - "bundled": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.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" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "bundled": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - } - } - }, - "find-cache-dir": { - "version": "2.0.0", - "bundled": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "bundled": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "foreground-child": { - "version": "1.5.6", - "bundled": true, - "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true - }, - "get-caller-file": { - "version": "1.0.3", - "bundled": true - }, - "get-stream": { - "version": "4.1.0", - "bundled": true, - "requires": { - "pump": "^3.0.0" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "requires": { - "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": { - "version": "4.1.15", - "bundled": true - }, - "handlebars": { - "version": "4.1.0", - "bundled": true, - "requires": { - "async": "^2.5.0", - "optimist": "^0.6.1", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true - } - } - }, - "has-flag": { - "version": "3.0.0", - "bundled": true - }, - "hasha": { - "version": "3.0.0", - "bundled": true, - "requires": { - "is-stream": "^1.0.1" - } - }, - "hosted-git-info": { - "version": "2.7.1", - "bundled": true - }, - "imurmurhash": { - "version": "0.1.4", - "bundled": true - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true - }, - "invert-kv": { - "version": "2.0.0", - "bundled": true - }, - "is-arrayish": { - "version": "0.2.1", - "bundled": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "bundled": true - }, - "is-stream": { - "version": "1.1.0", - "bundled": true - }, - "isexe": { - "version": "2.0.0", - "bundled": true - }, - "istanbul-lib-coverage": { - "version": "2.0.3", - "bundled": true - }, - "istanbul-lib-hook": { - "version": "2.0.3", - "bundled": true, - "requires": { - "append-transform": "^1.0.0" - } - }, - "istanbul-lib-report": { - "version": "2.0.4", - "bundled": true, - "requires": { - "istanbul-lib-coverage": "^2.0.3", - "make-dir": "^1.3.0", - "supports-color": "^6.0.0" - }, - "dependencies": { - "supports-color": { - "version": "6.1.0", - "bundled": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "3.0.2", - "bundled": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^2.0.3", - "make-dir": "^1.3.0", - "rimraf": "^2.6.2", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true - } - } - }, - "istanbul-reports": { - "version": "2.1.1", - "bundled": true, - "requires": { - "handlebars": "^4.1.0" - } - }, - "json-parse-better-errors": { - "version": "1.0.2", - "bundled": true - }, - "lcid": { - "version": "2.0.0", - "bundled": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, - "load-json-file": { - "version": "4.0.0", - "bundled": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "bundled": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.11", - "bundled": true - }, - "lodash.flattendeep": { - "version": "4.4.0", - "bundled": true - }, - "lru-cache": { - "version": "4.1.5", - "bundled": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "make-dir": { - "version": "1.3.0", - "bundled": true, - "requires": { - "pify": "^3.0.0" - } - }, - "map-age-cleaner": { - "version": "0.1.3", - "bundled": true, - "requires": { - "p-defer": "^1.0.0" - } - }, - "mem": { - "version": "4.1.0", - "bundled": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^1.0.0", - "p-is-promise": "^2.0.0" - } - }, - "merge-source-map": { - "version": "1.1.0", - "bundled": true, - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true - } - } - }, - "mimic-fn": { - "version": "1.2.0", - "bundled": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.10", - "bundled": true - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "bundled": true - } - } - }, - "ms": { - "version": "2.1.1", - "bundled": true - }, - "nice-try": { - "version": "1.0.5", - "bundled": true - }, - "normalize-package-data": { - "version": "2.5.0", - "bundled": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "npm-run-path": { - "version": "2.0.2", - "bundled": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "requires": { - "wrappy": "1" - } - }, - "optimist": { - "version": "0.6.1", - "bundled": true, - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true - }, - "os-locale": { - "version": "3.1.0", - "bundled": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, - "p-defer": { - "version": "1.0.0", - "bundled": true - }, - "p-finally": { - "version": "1.0.0", - "bundled": true - }, - "p-is-promise": { - "version": "2.0.0", - "bundled": true - }, - "p-limit": { - "version": "2.1.0", - "bundled": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "bundled": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.0.0", - "bundled": true - }, - "package-hash": { - "version": "3.0.0", - "bundled": true, - "requires": { - "graceful-fs": "^4.1.15", - "hasha": "^3.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "bundled": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "path-exists": { - "version": "3.0.0", - "bundled": true - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true - }, - "path-key": { - "version": "2.0.1", - "bundled": true - }, - "path-parse": { - "version": "1.0.6", - "bundled": true - }, - "path-type": { - "version": "3.0.0", - "bundled": true, - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "bundled": true - }, - "pkg-dir": { - "version": "3.0.0", - "bundled": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "pseudomap": { - "version": "1.0.2", - "bundled": true - }, - "pump": { - "version": "3.0.0", - "bundled": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "read-pkg": { - "version": "3.0.0", - "bundled": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "4.0.0", - "bundled": true, - "requires": { - "find-up": "^3.0.0", - "read-pkg": "^3.0.0" - } - }, - "release-zalgo": { - "version": "1.0.0", - "bundled": true, - "requires": { - "es6-error": "^4.0.1" - } - }, - "require-directory": { - "version": "2.1.1", - "bundled": true - }, - "require-main-filename": { - "version": "1.0.1", - "bundled": true - }, - "resolve": { - "version": "1.10.0", - "bundled": true, - "requires": { - "path-parse": "^1.0.6" - } - }, - "resolve-from": { - "version": "4.0.0", - "bundled": true - }, - "rimraf": { - "version": "2.6.3", - "bundled": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true - }, - "semver": { - "version": "5.6.0", - "bundled": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true - }, - "shebang-command": { - "version": "1.2.0", - "bundled": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "bundled": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true - }, - "spawn-wrap": { - "version": "1.4.2", - "bundled": true, - "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" - } - }, - "spdx-correct": { - "version": "3.1.0", - "bundled": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.2.0", - "bundled": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "bundled": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.3", - "bundled": true - }, - "string-width": { - "version": "2.1.1", - "bundled": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "bundled": true - }, - "strip-eof": { - "version": "1.0.0", - "bundled": true - }, - "test-exclude": { - "version": "5.1.0", - "bundled": true, - "requires": { - "arrify": "^1.0.1", - "minimatch": "^3.0.4", - "read-pkg-up": "^4.0.0", - "require-main-filename": "^1.0.1" - } - }, - "uglify-js": { - "version": "3.4.9", - "bundled": true, - "optional": true, - "requires": { - "commander": "~2.17.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true, - "optional": true - } - } - }, - "uuid": { - "version": "3.3.2", - "bundled": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "bundled": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "bundled": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "bundled": true - }, - "wordwrap": { - "version": "0.0.3", - "bundled": true - }, - "wrap-ansi": { - "version": "2.1.0", - "bundled": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "bundled": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true - }, - "write-file-atomic": { - "version": "2.4.2", - "bundled": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "y18n": { - "version": "4.0.0", - "bundled": true - }, - "yallist": { - "version": "2.1.2", - "bundled": true - }, - "yargs": { - "version": "12.0.5", - "bundled": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.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 || ^4.0.0", - "yargs-parser": "^11.1.1" - } - }, - "yargs-parser": { - "version": "11.1.1", - "bundled": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - } - } - }, - "bip38": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", - "integrity": "sha512-22KDak0RDyghFbR0Si7wyq9IgY423YzGYzWLpGeofH3DaolOQqjD3mNN08eFoubKlbyclOQKFwtONMv2SD9V3A==", - "requires": { - "bigi": "^1.2.0", - "browserify-aes": "^1.0.1", - "bs58check": "<3.0.0", - "buffer-xor": "^1.0.2", - "create-hash": "^1.1.1", - "ecurve": "^1.0.0", - "scryptsy": "^2.0.0" - } - }, - "bip39": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", - "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", - "requires": { - "create-hash": "^1.1.0", - "pbkdf2": "^3.0.9", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "unorm": "^1.3.3" - } - }, - "bip66": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", - "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "bitcoincash-ops": { - "version": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3", - "from": "github:Bitcoin-com/bitcoincash-ops#2.0.0" - }, - "bitcoincashjs": { - "version": "0.1.14", - "resolved": "https://registry.npmjs.org/bitcoincashjs/-/bitcoincashjs-0.1.14.tgz", - "integrity": "sha512-x0wMVSCZ56ZQnSQ+Xim7XfS0IYiOyOwo0pdMCmR+cDNB7zRhICFuH5i3lNdLSgUw1e7Pc3FmUlC9wruQNlYMnA==" - }, - "bitcoincashjs-lib": { - "version": "github:Bitcoin-com/bitcoincashjs-lib#61ffec3878fd959d2a8a62f570a122ff801d78b6", - "from": "github:Bitcoin-com/bitcoincashjs-lib#3.4.4", - "requires": { - "bech32": "^1.1.2", - "bigi": "^1.4.0", - "bip66": "^1.1.0", - "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#2.0.0", - "bs58check": "^2.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.3", - "ecurve": "^1.0.0", - "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "github:Bitcoin-com/pushdata-bitcoin#1.2.1", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "typeforce": "^1.11.3", - "varuint-bitcoin": "^1.0.4", - "wif": "^2.0.1" - } - }, - "bitcoinjs-message": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", - "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", - "requires": { - "bs58check": "^2.0.2", - "buffer-equals": "^1.0.3", - "create-hash": "^1.1.2", - "secp256k1": "^3.0.1", - "varuint-bitcoin": "^1.0.1" - } - }, - "blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" - }, - "bottleneck": { - "version": "2.16.2", - "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.16.2.tgz", - "integrity": "sha512-671wkIKV9K3yO/nfGw8tB4ihJazmZyd6DYEWxF1fuE7gzobk4w4atepHuYXoUHk78xLknjAGko8dXRcFO7iCoA==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "optional": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", - "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", - "requires": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" - } - }, - "bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "requires": { - "base-x": "^3.0.2" - } - }, - "bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "btoa-lite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", - "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=", - "dev": true - }, - "buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", - "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "buffer-equals": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/buffer-equals/-/buffer-equals-1.0.4.tgz", - "integrity": "sha1-A1O1T9B/2VZBcGca5vZrnPENJ/U=" - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "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" + } + }, + "bip38": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", + "integrity": "sha512-22KDak0RDyghFbR0Si7wyq9IgY423YzGYzWLpGeofH3DaolOQqjD3mNN08eFoubKlbyclOQKFwtONMv2SD9V3A==", + "requires": { + "bigi": "^1.2.0", + "browserify-aes": "^1.0.1", + "bs58check": "<3.0.0", + "buffer-xor": "^1.0.2", + "create-hash": "^1.1.1", + "ecurve": "^1.0.0", + "scryptsy": "^2.0.0" + } + }, + "bip39": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", + "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", + "requires": { + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "unorm": "^1.3.3" + } + }, + "bip66": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", + "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "bitcoincash-ops": { + "version": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3", + "from": "github:Bitcoin-com/bitcoincash-ops#2.0.0" + }, + "bitcoincashjs": { + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/bitcoincashjs/-/bitcoincashjs-0.1.14.tgz", + "integrity": "sha512-x0wMVSCZ56ZQnSQ+Xim7XfS0IYiOyOwo0pdMCmR+cDNB7zRhICFuH5i3lNdLSgUw1e7Pc3FmUlC9wruQNlYMnA==" + }, + "bitcoincashjs-lib": { + "version": "github:Bitcoin-com/bitcoincashjs-lib#61ffec3878fd959d2a8a62f570a122ff801d78b6", + "from": "github:Bitcoin-com/bitcoincashjs-lib#3.4.4", + "requires": { + "bech32": "^1.1.2", + "bigi": "^1.4.0", + "bip66": "^1.1.0", + "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#2.0.0", + "bs58check": "^2.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.3", + "ecurve": "^1.0.0", + "merkle-lib": "^2.0.10", + "pushdata-bitcoin": "github:Bitcoin-com/pushdata-bitcoin#1.2.1", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "typeforce": "^1.11.3", + "varuint-bitcoin": "^1.0.4", + "wif": "^2.0.1" + } + }, + "bitcoinjs-message": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", + "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", + "requires": { + "bs58check": "^2.0.2", + "buffer-equals": "^1.0.3", + "create-hash": "^1.1.2", + "secp256k1": "^3.0.1", + "varuint-bitcoin": "^1.0.1" + } + }, + "blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, + "bottleneck": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.17.1.tgz", + "integrity": "sha512-ARJKJRNq6+W7BBYZnkqA1F4+HDclht7QyRJl2haAVtD7xBTG8Prpy6huO+canGLUxZaRrek8U/0NjTvoXACsaQ==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "optional": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "requires": { + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" + } + }, + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "requires": { + "base-x": "^3.0.2" + } + }, + "bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "requires": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "btoa-lite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", + "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=", + "dev": true + }, + "buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", + "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "buffer-equals": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/buffer-equals/-/buffer-equals-1.0.4.tgz", + "integrity": "sha1-A1O1T9B/2VZBcGca5vZrnPENJ/U=" + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "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" }, "dependencies": { "isobject": { @@ -2707,9 +1833,9 @@ "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=" }, "camelcase": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", - "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==" + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.2.0.tgz", + "integrity": "sha512-IXFsBS2pC+X0j0N/GE7Dm7j3bsEBp+oTpb7F50dwEVX7rf3IgwO9XatnegTsDtniKCUtEJH4fSU6Asw7uoVLfQ==" }, "camelcase-keys": { "version": "4.2.0", @@ -2739,9 +1865,9 @@ } }, "caniuse-lite": { - "version": "1.0.30000938", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000938.tgz", - "integrity": "sha512-ekW8NQ3/FvokviDxhdKLZZAx7PptXNwxKgXtnR5y+PR3hckwuP3yJ1Ir+4/c97dsHNqtAyfKUGdw8P4EYzBNgw==" + "version": "1.0.30000955", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000955.tgz", + "integrity": "sha512-6AwmIKgqCYfDWWadRkAuZSHMQP4Mmy96xAXEdRBlN/luQhlRYOKgwOlZ9plpCOsVbBuqbTmGqDK3JUM/nlr8CA==" }, "cardinal": { "version": "2.1.1", @@ -3129,15 +2255,14 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cosmiconfig": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.1.0.tgz", - "integrity": "sha512-kCNPvthka8gvLtzAxQXvWo4FxqRB+ftRZyPZNuab5ngvM9Y7yw7hbEysglptLgpkGX9nAOKTBVkHUAe8xtYR6Q==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.0.tgz", + "integrity": "sha512-nxt+Nfc3JAqf4WIWd0jXLjTJZmsPLrA9DDc4nRw2KFJQJK7DNooqSXrNI7tzLG50CF8axczly5UV929tBmh/7g==", "dev": true, "requires": { "import-fresh": "^2.0.0", "is-directory": "^0.3.1", - "js-yaml": "^3.9.0", - "lodash.get": "^4.4.2", + "js-yaml": "^3.13.0", "parse-json": "^4.0.0" }, "dependencies": { @@ -3179,9 +2304,9 @@ } }, "coveralls": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.0.2.tgz", - "integrity": "sha512-Tv0LKe/MkBOilH2v7WBiTBdudg2ChfGbdXafc/s330djpF3zKOmuehTeRwjXWc7pzfj9FrDUTA7tEx6Div8NFw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.0.3.tgz", + "integrity": "sha512-viNfeGlda2zJr8Gj1zqXpDMRjw9uM54p7wzZdvLRyOgnAfCe974Dq4veZkjJdxQXbmdppu6flEajFYseHYaUhg==", "dev": true, "requires": { "growl": "~> 1.10.0", @@ -3189,7 +2314,7 @@ "lcov-parse": "^0.0.10", "log-driver": "^1.2.7", "minimist": "^1.2.0", - "request": "^2.85.0" + "request": "^2.86.0" }, "dependencies": { "minimist": { @@ -3435,6 +2560,12 @@ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", "dev": true }, + "deprecation": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-1.0.1.tgz", + "integrity": "sha512-ccVHpE72+tcIKaGMql33x5MAjKQIZrk+3x2GbJ7TeraUCZWHoT+KSZpoC+JQFsUBlSTXUrBaGiF0j6zVTepPLg==", + "dev": true + }, "detect-indent": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", @@ -3536,9 +2667,9 @@ } }, "electron-to-chromium": { - "version": "1.3.113", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.113.tgz", - "integrity": "sha512-De+lPAxEcpxvqPTyZAXELNpRZXABRxf+uL/rSykstQhzj/B0l1150G/ExIIxKc16lI89Hgz81J0BHAcbTqK49g==" + "version": "1.3.121", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.121.tgz", + "integrity": "sha512-ALxUkgrnQ6zg2SN9zHnwDcDRy577haGT9dqsbq8lfeAgmEUPC+58SrrU8vIHpGRf7SEyyBYy4mlfonDnoKxONw==" }, "elliptic": { "version": "6.4.1", @@ -3703,9 +2834,9 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "eslint": { - "version": "5.14.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.14.1.tgz", - "integrity": "sha512-CyUMbmsjxedx8B0mr79mNOqetvkbij/zrXnFeK2zc3pGRn3/tibjiNAv/3UxFEyfMDjh+ZqTrJrEGBFiGfD5Og==", + "version": "5.15.3", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.15.3.tgz", + "integrity": "sha512-vMGi0PjCHSokZxE0NLp2VneGw5sio7SSiDNgIUn2tC0XkWJRNOIoHIg3CliLVfXnJsiHxGAYrkw0PieAu8+KYQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -3714,7 +2845,7 @@ "cross-spawn": "^6.0.5", "debug": "^4.0.1", "doctrine": "^3.0.0", - "eslint-scope": "^4.0.0", + "eslint-scope": "^4.0.3", "eslint-utils": "^1.3.1", "eslint-visitor-keys": "^1.0.0", "espree": "^5.0.1", @@ -3747,9 +2878,9 @@ }, "dependencies": { "acorn": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.0.tgz", - "integrity": "sha512-MW/FjM+IvU9CgBzjO3UIPCE2pyEwUsoFl+VGdczOPEdxfGFjuKny/gN54mOuX7Qxmb9Rg9MCn2oKiSUeW+pjrw==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz", + "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==", "dev": true }, "acorn-jsx": { @@ -3759,9 +2890,9 @@ "dev": true }, "ajv": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", - "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", + "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", "dev": true, "requires": { "fast-deep-equal": "^2.0.1", @@ -3771,9 +2902,9 @@ } }, "ansi-regex": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.0.0.tgz", - "integrity": "sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "ansi-styles": { @@ -3823,9 +2954,9 @@ } }, "eslint-scope": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", - "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", "dev": true, "requires": { "esrecurse": "^4.1.0", @@ -3914,12 +3045,12 @@ }, "dependencies": { "strip-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.0.0.tgz", - "integrity": "sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^4.0.0" + "ansi-regex": "^4.1.0" } } } @@ -3971,23 +3102,23 @@ }, "dependencies": { "string-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.0.0.tgz", - "integrity": "sha512-rr8CUxBbvOZDUvc5lNIJ+OC1nPVpz+Siw9VBtUjB9b6jZehZLFt0JMCZzShFHIsI8cbhm0EsNIfWJMFV3cu3Ew==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.0.0" + "strip-ansi": "^5.1.0" } }, "strip-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.0.0.tgz", - "integrity": "sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^4.0.0" + "ansi-regex": "^4.1.0" } } } @@ -4622,9 +3753,9 @@ "dev": true }, "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, "requires": { "is-extglob": "^2.1.1" @@ -5490,11 +4621,12 @@ "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" }, "globby": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-9.0.0.tgz", - "integrity": "sha512-q0qiO/p1w/yJ0hk8V9x1UXlgsXUxlGd0AHUOXZVXBO6aznDtpx7M8D1kBrCAItoPm+4l8r6ATXV1JpjY2SBQOw==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-9.1.0.tgz", + "integrity": "sha512-VtYjhHr7ncls724Of5W6Kaahz0ag7dB4G62/2HsN+xEKG6SrPzM1AJMerGxQTwJGnN9reeyxdvXbuZYpfssCvg==", "dev": true, "requires": { + "@types/glob": "^7.1.1", "array-union": "^1.0.2", "dir-glob": "^2.2.1", "fast-glob": "^2.2.6", @@ -5536,12 +4668,12 @@ "dev": true }, "handlebars": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.0.tgz", - "integrity": "sha512-l2jRuU1NAWK6AW5qqcTATWQJvNPEwkM7NEKSiv/gqOsoSQbVoWyqVEY5GS+XPQ88zLNmqASRpzfdm8d79hJS+w==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.1.tgz", + "integrity": "sha512-3Zhi6C0euYZL5sM0Zcy7lInLXKQ+YLcF/olbN010mzGQ4XVm50JeyBnMqofHh696GrciGruC7kCcApPDJvVgwA==", "dev": true, "requires": { - "async": "^2.5.0", + "neo-async": "^2.6.0", "optimist": "^0.6.1", "source-map": "^0.6.1", "uglify-js": "^3.1.4" @@ -5572,9 +4704,9 @@ }, "dependencies": { "ajv": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", - "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", + "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", "dev": true, "requires": { "fast-deep-equal": "^2.0.1", @@ -5815,9 +4947,9 @@ } }, "ieee754": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", - "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==" + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" }, "ignore": { "version": "3.3.10", @@ -6508,9 +5640,9 @@ } }, "macos-release": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.0.0.tgz", - "integrity": "sha512-iCM3ZGeqIzlrH7KxYK+fphlJpCCczyHXc+HhRVbEu9uNTCrzYJjvvtefzeKTCVHd5AP/aD/fzC80JZ4ZP+dQ/A==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.1.0.tgz", + "integrity": "sha512-8TCbwvN1mfNxbBv0yBtfyIFMo3m1QsNbKHv7PYIp/abRBKVQBXN7ecu3aeGGgT18VC/Tf397LBDGZF9KBGJFFw==", "dev": true }, "make-dir": { @@ -6598,13 +5730,20 @@ "dev": true }, "mem": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.1.0.tgz", - "integrity": "sha512-I5u6Q1x7wxO0kdOpYBB28xueHADYps5uty/zg936CiG8NTe5sJL8EjrCuLneuDW3PlMdZBGDIn8BirEVdovZvg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.2.0.tgz", + "integrity": "sha512-5fJxa68urlY0Ir8ijatKa3eRz5lwXnRCTvo9+TbTGAuTFJOwpGcY0X05moBd0nW45965Njt4CDI2GFQoG8DvqA==", "requires": { "map-age-cleaner": "^0.1.1", - "mimic-fn": "^1.0.0", + "mimic-fn": "^2.0.0", "p-is-promise": "^2.0.0" + }, + "dependencies": { + "mimic-fn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.0.0.tgz", + "integrity": "sha512-jbex9Yd/3lmICXwYT6gA/j2mNQGU48wCh/VzRd+/Y/PjYQtlg1gLMdZqvu9s/xH7qKvngxRObl56XZR609IMbA==" + } } }, "meow": { @@ -6900,9 +6039,9 @@ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" }, "nan": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz", - "integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==" + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", + "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==" }, "nanomatch": { "version": "1.2.13", @@ -6949,6 +6088,12 @@ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" }, + "neo-async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", + "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", + "dev": true + }, "nerf-dart": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/nerf-dart/-/nerf-dart-1.0.0.tgz", @@ -6985,12 +6130,13 @@ }, "dependencies": { "@sinonjs/formatio": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.1.0.tgz", - "integrity": "sha512-ZAR2bPHOl4Xg6eklUGpsdiIJ4+J1SNag1DHHrG/73Uz/nVwXqjgUtRPLoS+aVyieN9cSbc0E4LsU984tWcDyNg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.2.1.tgz", + "integrity": "sha512-tsHvOB24rvyvV2+zKMmPkZ7dXX6LSLKZ7aOtXY6Edklp0uRcgGpOsQTTGTcWViFyx4uhWc6GV8QdnALbIbIdeQ==", "dev": true, "requires": { - "@sinonjs/samsam": "^2 || ^3" + "@sinonjs/commons": "^1", + "@sinonjs/samsam": "^3.1.0" } } } @@ -7089,9 +6235,9 @@ } }, "normalize-url": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.1.0.tgz", - "integrity": "sha512-X781mkWeK6PDMAZJfGn/wnwil4dV6pIdF9euiNqtA89uJvZuNDJO2YyJxiwpPhTQcF5pYUU1v+kcOxzYV6rZlA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.2.0.tgz", + "integrity": "sha512-n69+KXI+kZApR+sPwSkoAXpGlNkaiYyoHHqKOFPjJWvwZpew/EjKvuPE4+tStNgb42z5yLtdakgZCQI+LalSPg==", "dev": true }, "npm": { @@ -10211,7 +9357,6 @@ "version": "13.3.0", "resolved": "https://registry.npmjs.org/nyc/-/nyc-13.3.0.tgz", "integrity": "sha512-P+FwIuro2aFG6B0Esd9ZDWUd51uZrAEoGutqZxzrVmYl3qSfkLgcQpBPBjtDFsUQLFY1dvTQJPOyeqr8S9GF8w==", - "dev": true, "requires": { "archy": "^1.0.0", "arrify": "^1.0.1", @@ -10241,44 +9386,37 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true }, "append-transform": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "default-require-extensions": "^2.0.0" } }, "archy": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "arrify": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "async": { "version": "2.6.2", "bundled": true, - "dev": true, "requires": { "lodash": "^4.17.11" } }, "balanced-match": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, - "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -10287,7 +9425,6 @@ "caching-transform": { "version": "3.0.1", "bundled": true, - "dev": true, "requires": { "hasha": "^3.0.0", "make-dir": "^1.3.0", @@ -10297,13 +9434,11 @@ }, "camelcase": { "version": "5.0.0", - "bundled": true, - "dev": true + "bundled": true }, "cliui": { "version": "4.1.0", "bundled": true, - "dev": true, "requires": { "string-width": "^2.1.1", "strip-ansi": "^4.0.0", @@ -10312,29 +9447,24 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true, - "dev": true + "bundled": true }, "commander": { "version": "2.17.1", "bundled": true, - "dev": true, "optional": true }, "commondir": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "concat-map": { "version": "0.0.1", - "bundled": true, - "dev": true + "bundled": true }, "convert-source-map": { "version": "1.6.0", "bundled": true, - "dev": true, "requires": { "safe-buffer": "~5.1.1" } @@ -10342,7 +9472,6 @@ "cross-spawn": { "version": "4.0.2", "bundled": true, - "dev": true, "requires": { "lru-cache": "^4.0.1", "which": "^1.2.9" @@ -10351,20 +9480,17 @@ "debug": { "version": "4.1.1", "bundled": true, - "dev": true, "requires": { "ms": "^2.1.1" } }, "decamelize": { "version": "1.2.0", - "bundled": true, - "dev": true + "bundled": true }, "default-require-extensions": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "strip-bom": "^3.0.0" } @@ -10372,7 +9498,6 @@ "end-of-stream": { "version": "1.4.1", "bundled": true, - "dev": true, "requires": { "once": "^1.4.0" } @@ -10380,20 +9505,17 @@ "error-ex": { "version": "1.3.2", "bundled": true, - "dev": true, "requires": { "is-arrayish": "^0.2.1" } }, "es6-error": { "version": "4.1.1", - "bundled": true, - "dev": true + "bundled": true }, "execa": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "cross-spawn": "^6.0.0", "get-stream": "^4.0.0", @@ -10407,7 +9529,6 @@ "cross-spawn": { "version": "6.0.5", "bundled": true, - "dev": true, "requires": { "nice-try": "^1.0.4", "path-key": "^2.0.1", @@ -10421,7 +9542,6 @@ "find-cache-dir": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "commondir": "^1.0.1", "make-dir": "^1.0.0", @@ -10431,7 +9551,6 @@ "find-up": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "locate-path": "^3.0.0" } @@ -10439,7 +9558,6 @@ "foreground-child": { "version": "1.5.6", "bundled": true, - "dev": true, "requires": { "cross-spawn": "^4", "signal-exit": "^3.0.0" @@ -10447,18 +9565,15 @@ }, "fs.realpath": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "get-caller-file": { "version": "1.0.3", - "bundled": true, - "dev": true + "bundled": true }, "get-stream": { "version": "4.1.0", "bundled": true, - "dev": true, "requires": { "pump": "^3.0.0" } @@ -10466,7 +9581,6 @@ "glob": { "version": "7.1.3", "bundled": true, - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -10478,13 +9592,11 @@ }, "graceful-fs": { "version": "4.1.15", - "bundled": true, - "dev": true + "bundled": true }, "handlebars": { "version": "4.1.0", "bundled": true, - "dev": true, "requires": { "async": "^2.5.0", "optimist": "^0.6.1", @@ -10494,38 +9606,32 @@ "dependencies": { "source-map": { "version": "0.6.1", - "bundled": true, - "dev": true + "bundled": true } } }, "has-flag": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true }, "hasha": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "is-stream": "^1.0.1" } }, "hosted-git-info": { "version": "2.7.1", - "bundled": true, - "dev": true + "bundled": true }, "imurmurhash": { "version": "0.1.4", - "bundled": true, - "dev": true + "bundled": true }, "inflight": { "version": "1.0.6", "bundled": true, - "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -10533,43 +9639,35 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, - "dev": true + "bundled": true }, "invert-kv": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "is-arrayish": { "version": "0.2.1", - "bundled": true, - "dev": true + "bundled": true }, "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "is-stream": { "version": "1.1.0", - "bundled": true, - "dev": true + "bundled": true }, "isexe": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "istanbul-lib-coverage": { "version": "2.0.3", - "bundled": true, - "dev": true + "bundled": true }, "istanbul-lib-hook": { "version": "2.0.3", "bundled": true, - "dev": true, "requires": { "append-transform": "^1.0.0" } @@ -10577,7 +9675,6 @@ "istanbul-lib-report": { "version": "2.0.4", "bundled": true, - "dev": true, "requires": { "istanbul-lib-coverage": "^2.0.3", "make-dir": "^1.3.0", @@ -10587,7 +9684,6 @@ "supports-color": { "version": "6.1.0", "bundled": true, - "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -10597,7 +9693,6 @@ "istanbul-lib-source-maps": { "version": "3.0.2", "bundled": true, - "dev": true, "requires": { "debug": "^4.1.1", "istanbul-lib-coverage": "^2.0.3", @@ -10608,28 +9703,24 @@ "dependencies": { "source-map": { "version": "0.6.1", - "bundled": true, - "dev": true + "bundled": true } } }, "istanbul-reports": { "version": "2.1.1", "bundled": true, - "dev": true, "requires": { "handlebars": "^4.1.0" } }, "json-parse-better-errors": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "lcid": { "version": "2.0.0", "bundled": true, - "dev": true, "requires": { "invert-kv": "^2.0.0" } @@ -10637,7 +9728,6 @@ "load-json-file": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "graceful-fs": "^4.1.2", "parse-json": "^4.0.0", @@ -10648,7 +9738,6 @@ "locate-path": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -10656,18 +9745,15 @@ }, "lodash": { "version": "4.17.11", - "bundled": true, - "dev": true + "bundled": true }, "lodash.flattendeep": { "version": "4.4.0", - "bundled": true, - "dev": true + "bundled": true }, "lru-cache": { "version": "4.1.5", "bundled": true, - "dev": true, "requires": { "pseudomap": "^1.0.2", "yallist": "^2.1.2" @@ -10676,7 +9762,6 @@ "make-dir": { "version": "1.3.0", "bundled": true, - "dev": true, "requires": { "pify": "^3.0.0" } @@ -10684,7 +9769,6 @@ "map-age-cleaner": { "version": "0.1.3", "bundled": true, - "dev": true, "requires": { "p-defer": "^1.0.0" } @@ -10692,7 +9776,6 @@ "mem": { "version": "4.1.0", "bundled": true, - "dev": true, "requires": { "map-age-cleaner": "^0.1.1", "mimic-fn": "^1.0.0", @@ -10702,65 +9785,55 @@ "merge-source-map": { "version": "1.1.0", "bundled": true, - "dev": true, "requires": { "source-map": "^0.6.1" }, "dependencies": { "source-map": { "version": "0.6.1", - "bundled": true, - "dev": true + "bundled": true } } }, "mimic-fn": { "version": "1.2.0", - "bundled": true, - "dev": true + "bundled": true }, "minimatch": { "version": "3.0.4", "bundled": true, - "dev": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.10", - "bundled": true, - "dev": true + "bundled": true }, "mkdirp": { "version": "0.5.1", "bundled": true, - "dev": true, "requires": { "minimist": "0.0.8" }, "dependencies": { "minimist": { "version": "0.0.8", - "bundled": true, - "dev": true + "bundled": true } } }, "ms": { "version": "2.1.1", - "bundled": true, - "dev": true + "bundled": true }, "nice-try": { "version": "1.0.5", - "bundled": true, - "dev": true + "bundled": true }, "normalize-package-data": { "version": "2.5.0", "bundled": true, - "dev": true, "requires": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", @@ -10771,20 +9844,17 @@ "npm-run-path": { "version": "2.0.2", "bundled": true, - "dev": true, "requires": { "path-key": "^2.0.0" } }, "number-is-nan": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "once": { "version": "1.4.0", "bundled": true, - "dev": true, "requires": { "wrappy": "1" } @@ -10792,7 +9862,6 @@ "optimist": { "version": "0.6.1", "bundled": true, - "dev": true, "requires": { "minimist": "~0.0.1", "wordwrap": "~0.0.2" @@ -10800,13 +9869,11 @@ }, "os-homedir": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "os-locale": { "version": "3.1.0", "bundled": true, - "dev": true, "requires": { "execa": "^1.0.0", "lcid": "^2.0.0", @@ -10815,23 +9882,19 @@ }, "p-defer": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "p-finally": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "p-is-promise": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "p-limit": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { "p-try": "^2.0.0" } @@ -10839,20 +9902,17 @@ "p-locate": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "p-limit": "^2.0.0" } }, "p-try": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "package-hash": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "graceful-fs": "^4.1.15", "hasha": "^3.0.0", @@ -10863,7 +9923,6 @@ "parse-json": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" @@ -10871,54 +9930,45 @@ }, "path-exists": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "path-key": { "version": "2.0.1", - "bundled": true, - "dev": true + "bundled": true }, "path-parse": { "version": "1.0.6", - "bundled": true, - "dev": true + "bundled": true }, "path-type": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "pify": "^3.0.0" } }, "pify": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true }, "pkg-dir": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "find-up": "^3.0.0" } }, "pseudomap": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "pump": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -10927,7 +9977,6 @@ "read-pkg": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "load-json-file": "^4.0.0", "normalize-package-data": "^2.3.2", @@ -10937,7 +9986,6 @@ "read-pkg-up": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "find-up": "^3.0.0", "read-pkg": "^3.0.0" @@ -10946,79 +9994,66 @@ "release-zalgo": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "es6-error": "^4.0.1" } }, "require-directory": { "version": "2.1.1", - "bundled": true, - "dev": true + "bundled": true }, "require-main-filename": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "resolve": { "version": "1.10.0", "bundled": true, - "dev": true, "requires": { "path-parse": "^1.0.6" } }, "resolve-from": { "version": "4.0.0", - "bundled": true, - "dev": true + "bundled": true }, "rimraf": { "version": "2.6.3", "bundled": true, - "dev": true, "requires": { "glob": "^7.1.3" } }, "safe-buffer": { "version": "5.1.2", - "bundled": true, - "dev": true + "bundled": true }, "semver": { "version": "5.6.0", - "bundled": true, - "dev": true + "bundled": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "shebang-command": { "version": "1.2.0", "bundled": true, - "dev": true, "requires": { "shebang-regex": "^1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, - "dev": true + "bundled": true }, "spawn-wrap": { "version": "1.4.2", "bundled": true, - "dev": true, "requires": { "foreground-child": "^1.5.6", "mkdirp": "^0.5.0", @@ -11031,7 +10066,6 @@ "spdx-correct": { "version": "3.1.0", "bundled": true, - "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -11039,13 +10073,11 @@ }, "spdx-exceptions": { "version": "2.2.0", - "bundled": true, - "dev": true + "bundled": true }, "spdx-expression-parse": { "version": "3.0.0", "bundled": true, - "dev": true, "requires": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" @@ -11053,13 +10085,11 @@ }, "spdx-license-ids": { "version": "3.0.3", - "bundled": true, - "dev": true + "bundled": true }, "string-width": { "version": "2.1.1", "bundled": true, - "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" @@ -11068,25 +10098,21 @@ "strip-ansi": { "version": "4.0.0", "bundled": true, - "dev": true, "requires": { "ansi-regex": "^3.0.0" } }, "strip-bom": { "version": "3.0.0", - "bundled": true, - "dev": true + "bundled": true }, "strip-eof": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "test-exclude": { "version": "5.1.0", "bundled": true, - "dev": true, "requires": { "arrify": "^1.0.1", "minimatch": "^3.0.4", @@ -11097,7 +10123,6 @@ "uglify-js": { "version": "3.4.9", "bundled": true, - "dev": true, "optional": true, "requires": { "commander": "~2.17.1", @@ -11107,20 +10132,17 @@ "source-map": { "version": "0.6.1", "bundled": true, - "dev": true, "optional": true } } }, "uuid": { "version": "3.3.2", - "bundled": true, - "dev": true + "bundled": true }, "validate-npm-package-license": { "version": "3.0.4", "bundled": true, - "dev": true, "requires": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -11129,25 +10151,21 @@ "which": { "version": "1.3.1", "bundled": true, - "dev": true, "requires": { "isexe": "^2.0.0" } }, "which-module": { "version": "2.0.0", - "bundled": true, - "dev": true + "bundled": true }, "wordwrap": { "version": "0.0.3", - "bundled": true, - "dev": true + "bundled": true }, "wrap-ansi": { "version": "2.1.0", "bundled": true, - "dev": true, "requires": { "string-width": "^1.0.1", "strip-ansi": "^3.0.1" @@ -11155,13 +10173,11 @@ "dependencies": { "ansi-regex": { "version": "2.1.1", - "bundled": true, - "dev": true + "bundled": true }, "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "number-is-nan": "^1.0.0" } @@ -11169,7 +10185,6 @@ "string-width": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -11179,7 +10194,6 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, - "dev": true, "requires": { "ansi-regex": "^2.0.0" } @@ -11188,13 +10202,11 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "write-file-atomic": { "version": "2.4.2", "bundled": true, - "dev": true, "requires": { "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", @@ -11203,18 +10215,15 @@ }, "y18n": { "version": "4.0.0", - "bundled": true, - "dev": true + "bundled": true }, "yallist": { "version": "2.1.2", - "bundled": true, - "dev": true + "bundled": true }, "yargs": { "version": "12.0.5", "bundled": true, - "dev": true, "requires": { "cliui": "^4.0.0", "decamelize": "^1.2.0", @@ -11233,7 +10242,6 @@ "yargs-parser": { "version": "11.1.1", "bundled": true, - "dev": true, "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -11487,9 +10495,9 @@ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" }, "parent-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.0.tgz", - "integrity": "sha512-8Mf5juOMmiE4FcmzYc4IaiS9L3+9paz2KOiXzkRviCP6aDmN49Hz6EMWz0lGNp9pX80GvvAuLADtyGfW/Em3TA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "requires": { "callsites": "^3.0.0" @@ -11701,9 +10709,9 @@ "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==" }, "pngjs": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.3.3.tgz", - "integrity": "sha512-1n3Z4p3IOxArEs1VRXnZ/RXdfEniAUS9jb68g58FIXMNkPJeZd+Qh4Uq7/e0LVxAQGos1eIUrqrt4FpjdnEd+Q==" + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" }, "posix-character-classes": { "version": "0.1.1", @@ -11817,9 +10825,9 @@ } }, "qs": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.6.0.tgz", - "integrity": "sha512-KIJqT9jQJDQx5h5uAVPimw6yVg2SekOKu959OCtktD3FjzbpvaPr8i4zzg07DOMz+igA4W/aNM7OV8H37pFYfA==" + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" }, "quick-lru": { "version": "1.1.0", @@ -11887,9 +10895,9 @@ } }, "react-is": { - "version": "16.8.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.2.tgz", - "integrity": "sha512-D+NxhSR2HUCjYky1q1DwpNUD44cDpUXzSmmFyC3ug1bClcU/iDNy0YNn1iwme28fn+NFhpA13IndOd42CrFb+Q==" + "version": "16.8.6", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz", + "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==" }, "read-pkg": { "version": "2.0.0", @@ -12307,9 +11315,9 @@ } }, "registry-auth-token": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", - "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", + "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==", "dev": true, "requires": { "rc": "^1.1.6", @@ -12645,9 +11653,9 @@ } }, "p-limit": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz", - "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", + "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -12663,9 +11671,9 @@ } }, "p-try": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", - "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.1.0.tgz", + "integrity": "sha512-H2RyIJ7+A3rjkwKC2l5GGtU4H1vkxKCAGsWasNVd0Set+6i4znxbWy6/j16YDPJDWxhsgZiKAstMEP8wCdSpjA==", "dev": true }, "parse-json": { @@ -12723,9 +11731,9 @@ } }, "semver": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==" + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" }, "semver-regex": { "version": "2.0.0", @@ -12787,9 +11795,9 @@ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "signale": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/signale/-/signale-1.3.0.tgz", - "integrity": "sha512-TyFhsQ9wZDYDfsPqWMyjCxsDoMwfpsT0130Mce7wDiVCSDdtWSg83dOqoj8aGpGCs3n1YPcam6sT1OFPuGT/OQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz", + "integrity": "sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==", "dev": true, "requires": { "chalk": "^2.3.2", @@ -13633,23 +12641,16 @@ "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==" }, "uglify-js": { - "version": "3.4.9", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", - "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.5.2.tgz", + "integrity": "sha512-imog1WIsi9Yb56yRt5TfYVxGmnWs3WSGU73ieSOlMVFwhJCA9W8fqFFMMj4kgDqiS/80LGdsYnWL7O9UcjEBlg==", "dev": true, "optional": true, "requires": { - "commander": "~2.17.1", + "commander": "~2.19.0", "source-map": "~0.6.1" }, "dependencies": { - "commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", - "dev": true, - "optional": true - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -14031,9 +13032,9 @@ } }, "p-limit": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz", - "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", + "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", "requires": { "p-try": "^2.0.0" } @@ -14047,9 +13048,9 @@ } }, "p-try": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", - "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.1.0.tgz", + "integrity": "sha512-H2RyIJ7+A3rjkwKC2l5GGtU4H1vkxKCAGsWasNVd0Set+6i4znxbWy6/j16YDPJDWxhsgZiKAstMEP8wCdSpjA==" } } }, From 75e2dfa87f996a3cfffb820a19a32fe817a8b4a6 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 29 Mar 2019 13:38:31 -0700 Subject: [PATCH 248/480] Updating semantic release version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7403987b..1c78c3c3 100644 --- a/package.json +++ b/package.json @@ -82,7 +82,7 @@ "node-mocks-http": "^1.7.0", "nyc": "^13.3.0", "prettier": "^1.14.2", - "semantic-release": "^15.13.1", + "semantic-release": "^15.13.3", "sinon": "^4.5.0" } } From 810e9f6a567a96fcbbfb8ff610a0028783b0b270 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 29 Mar 2019 13:39:33 -0700 Subject: [PATCH 249/480] adding greenkeeper handler to travis yaml --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index 2b0a2eaa..acfca19f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,6 +16,9 @@ before_install: #- ./install-mongo #- npm install -g mocha +# https://github.com/greenkeeperio/greenkeeper-lockfile/issues/156 +install: case $TRAVIS_BRANCH in greenkeeper*) npm i;; *) npm ci;; esac; + # Send coverage data to Coveralls after_success: - npm run coverage From 64fa0884e7d37ac7df5287132534aac5829c2204 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 29 Mar 2019 13:41:02 -0700 Subject: [PATCH 250/480] fix(semantic-release): Prepping for semantic release and greenkeeper --- LICENSE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE.md b/LICENSE.md index 3ddbf354..75dafe08 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -2,6 +2,6 @@ Copyright 2018 Carlos Gabriel Cardona Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. From f39768170a16ae1525ad2374b637c93f504067d5 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Mon, 15 Apr 2019 13:45:59 -0700 Subject: [PATCH 251/480] Having create-wallet generate WIF of root address --- examples/applications/wallet/create-wallet/create-wallet.js | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/applications/wallet/create-wallet/create-wallet.js b/examples/applications/wallet/create-wallet/create-wallet.js index b85b1a1a..aca5284f 100644 --- a/examples/applications/wallet/create-wallet/create-wallet.js +++ b/examples/applications/wallet/create-wallet/create-wallet.js @@ -57,6 +57,7 @@ for (let i = 0; i < 10; i++) { if (i === 0) { outObj.cashAddress = BITBOX.HDNode.toCashAddress(childNode) outObj.legacyAddress = BITBOX.HDNode.toLegacyAddress(childNode) + outObj.WIF = BITBOX.HDNode.toWIF(childNode) } } From 40765752b673171227e230bba28eea5332dc9a78 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Mon, 15 Apr 2019 20:50:48 -0700 Subject: [PATCH 252/480] Fixing bug in send-all and send-bch --- .../applications/wallet/send-WIF/package.json | 29 +++ .../applications/wallet/send-WIF/send-bch.js | 174 ++++++++++++++++++ .../applications/wallet/send-all/send-all.js | 4 +- .../applications/wallet/send-bch/send-bch.js | 4 +- 4 files changed, 209 insertions(+), 2 deletions(-) create mode 100644 examples/applications/wallet/send-WIF/package.json create mode 100644 examples/applications/wallet/send-WIF/send-bch.js diff --git a/examples/applications/wallet/send-WIF/package.json b/examples/applications/wallet/send-WIF/package.json new file mode 100644 index 00000000..bc08f0fe --- /dev/null +++ b/examples/applications/wallet/send-WIF/package.json @@ -0,0 +1,29 @@ +{ + "name": "send-bch", + "version": "1.0.0", + "description": "Send some tBCH to another address.", + "main": "send-bch.js", + "scripts": { + "test": "echo no tests yet", + "start": "node send-bch.js" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/Bitcoin-com/bitbox-javascript-sdk.git" + }, + "keywords": [ + "bitbox", + "example", + "bch", + "bitcoin", + "bitcoin cash", + "bitcoin.com", + "javascript" + ], + "author": "Chris Troutner ", + "license": "MIT", + "bugs": { + "url": "https://github.com/Bitcoin-com/bitbox-javascript-sdk/issues" + }, + "homepage": "https://github.com/Bitcoin-com/bitbox-javascript-sdk/blob/master/README.md" +} diff --git a/examples/applications/wallet/send-WIF/send-bch.js b/examples/applications/wallet/send-WIF/send-bch.js new file mode 100644 index 00000000..f1beee92 --- /dev/null +++ b/examples/applications/wallet/send-WIF/send-bch.js @@ -0,0 +1,174 @@ +/* + Send 1000 satoshis to RECV_ADDR. +*/ + +// Set NETWORK to either testnet or mainnet +const NETWORK = `testnet` +// Replace the address below with the address you want to send the BCH to. +const RECV_ADDR = `` +const SATOSHIS_TO_SEND = 1000 + +// Instantiate BITBOX. +const bitboxLib = "../../../../lib/BITBOX" +const BITBOXSDK = require(bitboxLib) + +// Instantiate SLP based on the network. +let BITBOX +if (NETWORK === `mainnet`) + BITBOX = new BITBOXSDK({ restURL: `https://rest.bitcoin.com/v2/` }) +else BITBOX = new BITBOXSDK({ restURL: `https://trest.bitcoin.com/v2/` }) + +// Open the wallet generated with create-wallet. +try { + var walletInfo = require(`../create-wallet/wallet.json`) +} catch (err) { + console.log( + `Could not open wallet.json. Generate a wallet with create-wallet first.` + ) + process.exit(0) +} + +const SEND_ADDR = walletInfo.cashAddress +const SEND_MNEMONIC = walletInfo.mnemonic + +async function sendBch() { + try { + // Get the balance of the sending address. + const balance = await getBCHBalance(SEND_ADDR, false) + console.log(`balance: ${JSON.stringify(balance, null, 2)}`) + console.log(`Balance of sending address ${SEND_ADDR} is ${balance} BCH.`) + + // Exit if the balance is zero. + if (balance <= 0.0) { + console.log(`Balance of sending address is zero. Exiting.`) + process.exit(0) + } + + const SEND_ADDR_LEGACY = BITBOX.Address.toLegacyAddress(SEND_ADDR) + const RECV_ADDR_LEGACY = BITBOX.Address.toLegacyAddress(RECV_ADDR) + console.log(`Sender Legacy Address: ${SEND_ADDR_LEGACY}`) + console.log(`Receiver Legacy Address: ${RECV_ADDR_LEGACY}`) + + const balance2 = await getBCHBalance(RECV_ADDR, false) + console.log(`Balance of recieving address ${RECV_ADDR} is ${balance2} BCH.`) + + const u = await BITBOX.Address.utxo(SEND_ADDR) + //console.log(`u: ${JSON.stringify(u, null, 2)}`) + const utxo = findBiggestUtxo(u.utxos) + console.log(`utxo: ${JSON.stringify(utxo, null, 2)}`) + + // instance of transaction builder + if (NETWORK === `mainnet`) + var transactionBuilder = new BITBOX.TransactionBuilder() + else var transactionBuilder = new BITBOX.TransactionBuilder("testnet") + + const satoshisToSend = SATOSHIS_TO_SEND + const originalAmount = utxo.satoshis + const vout = utxo.vout + const txid = utxo.txid + + // add input with txid and index of vout + transactionBuilder.addInput(txid, vout) + + // get byte count to calculate fee. paying 1.2 sat/byte + const byteCount = BITBOX.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 2 } + ) + console.log(`byteCount: ${byteCount}`) + const satoshisPerByte = 1.0 + const txFee = Math.floor(satoshisPerByte * byteCount) + console.log(`txFee: ${txFee}`) + + // amount to send back to the sending address. + // It's the original amount - 1 sat/byte for tx size + const remainder = originalAmount - satoshisToSend - txFee + + // add output w/ address and amount to send + transactionBuilder.addOutput(RECV_ADDR, satoshisToSend) + transactionBuilder.addOutput(SEND_ADDR, remainder) + + // Generate a change address from a Mnemonic of a private key. + const change = changeAddrFromMnemonic(SEND_MNEMONIC) + + // Generate a keypair from the change address. + const keyPair = BITBOX.HDNode.toKeyPair(change) + + // Sign the transaction with the HD node. + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + + // build tx + const tx = transactionBuilder.build() + // output rawhex + const hex = tx.toHex() + console.log(`TX hex: ${hex}`) + console.log(` `) + + // Broadcast transation to the network + const txidStr = await BITBOX.RawTransactions.sendRawTransaction([hex]) + console.log(`Transaction ID: ${txidStr}`) + console.log(`Check the status of your transaction on this block explorer:`) + console.log(`https://explorer.bitcoin.com/tbch/tx/${txidStr}`) + } catch (err) { + console.log(`error: `, err) + } +} +sendBch() + +// Generate a change address from a Mnemonic of a private key. +function changeAddrFromMnemonic(mnemonic) { + // root seed buffer + const rootSeed = BITBOX.Mnemonic.toSeed(mnemonic) + + // master HDNode + const masterHDNode = BITBOX.HDNode.fromSeed(rootSeed, "testnet") + + // HDNode of BIP44 account + const account = BITBOX.HDNode.derivePath(masterHDNode, "m/44'/145'/0'") + + // derive the first external change address HDNode which is going to spend utxo + const change = BITBOX.HDNode.derivePath(account, "0/0") + + return change +} + +// Get the balance in BCH of a BCH address. +async function getBCHBalance(addr, verbose) { + try { + const result = await BITBOX.Address.details(addr) + + if (verbose) console.log(result) + + const bchBalance = result + + return bchBalance.balance + } catch (err) { + console.error(`Error in getBCHBalance: `, err) + console.log(`addr: ${addr}`) + throw err + } +} + +// Returns the utxo with the biggest balance from an array of utxos. +function findBiggestUtxo(utxos) { + let largestAmount = 0 + let largestIndex = 0 + + for (var i = 0; i < utxos.length; i++) { + const thisUtxo = utxos[i] + + if (thisUtxo.satoshis > largestAmount) { + largestAmount = thisUtxo.satoshis + largestIndex = i + } + } + + return utxos[largestIndex] +} diff --git a/examples/applications/wallet/send-all/send-all.js b/examples/applications/wallet/send-all/send-all.js index 5bc49266..2d8064b9 100644 --- a/examples/applications/wallet/send-all/send-all.js +++ b/examples/applications/wallet/send-all/send-all.js @@ -119,7 +119,9 @@ function changeAddrFromMnemonic(mnemonic) { const rootSeed = BITBOX.Mnemonic.toSeed(mnemonic) // master HDNode - const masterHDNode = BITBOX.HDNode.fromSeed(rootSeed, "testnet") + let masterHDNode + if (NETWORK === `mainnet`) masterHDNode = BITBOX.HDNode.fromSeed(rootSeed) + else masterHDNode = BITBOX.HDNode.fromSeed(rootSeed, "testnet") // HDNode of BIP44 account const account = BITBOX.HDNode.derivePath(masterHDNode, "m/44'/145'/0'") diff --git a/examples/applications/wallet/send-bch/send-bch.js b/examples/applications/wallet/send-bch/send-bch.js index f1beee92..8e5b6471 100644 --- a/examples/applications/wallet/send-bch/send-bch.js +++ b/examples/applications/wallet/send-bch/send-bch.js @@ -128,7 +128,9 @@ function changeAddrFromMnemonic(mnemonic) { const rootSeed = BITBOX.Mnemonic.toSeed(mnemonic) // master HDNode - const masterHDNode = BITBOX.HDNode.fromSeed(rootSeed, "testnet") + let masterHDNode + if (NETWORK === `mainnet`) masterHDNode = BITBOX.HDNode.fromSeed(rootSeed) + else masterHDNode = BITBOX.HDNode.fromSeed(rootSeed, "testnet") // HDNode of BIP44 account const account = BITBOX.HDNode.derivePath(masterHDNode, "m/44'/145'/0'") From 8325ef7ab905845dc63d5fcef650c33879fba81a Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Mon, 15 Apr 2019 20:59:06 -0700 Subject: [PATCH 253/480] Adding send-wif example --- .../applications/wallet/send-WIF/package.json | 8 ++--- .../send-WIF/{send-bch.js => send-wif.js} | 34 +++++-------------- 2 files changed, 13 insertions(+), 29 deletions(-) rename examples/applications/wallet/send-WIF/{send-bch.js => send-wif.js} (84%) diff --git a/examples/applications/wallet/send-WIF/package.json b/examples/applications/wallet/send-WIF/package.json index bc08f0fe..be328d32 100644 --- a/examples/applications/wallet/send-WIF/package.json +++ b/examples/applications/wallet/send-WIF/package.json @@ -1,11 +1,11 @@ { - "name": "send-bch", + "name": "send-wif", "version": "1.0.0", - "description": "Send some tBCH to another address.", - "main": "send-bch.js", + "description": "Send some tBCH to another address using WIF as input.", + "main": "send-wif.js", "scripts": { "test": "echo no tests yet", - "start": "node send-bch.js" + "start": "node send-wif.js" }, "repository": { "type": "git", diff --git a/examples/applications/wallet/send-WIF/send-bch.js b/examples/applications/wallet/send-WIF/send-wif.js similarity index 84% rename from examples/applications/wallet/send-WIF/send-bch.js rename to examples/applications/wallet/send-WIF/send-wif.js index f1beee92..64e4b33b 100644 --- a/examples/applications/wallet/send-WIF/send-bch.js +++ b/examples/applications/wallet/send-WIF/send-wif.js @@ -1,11 +1,13 @@ /* + Same as send-bch example, except this uses a WIF instead of a mnemonic to + sign the transaction. Send 1000 satoshis to RECV_ADDR. */ // Set NETWORK to either testnet or mainnet const NETWORK = `testnet` // Replace the address below with the address you want to send the BCH to. -const RECV_ADDR = `` +let RECV_ADDR = `` const SATOSHIS_TO_SEND = 1000 // Instantiate BITBOX. @@ -29,10 +31,13 @@ try { } const SEND_ADDR = walletInfo.cashAddress -const SEND_MNEMONIC = walletInfo.mnemonic +const SEND_WIF = walletInfo.WIF async function sendBch() { try { + // Send the money back to yourself if the users hasn't specified a destination. + if (RECV_ADDR === "") RECV_ADDR = SEND_ADDR + // Get the balance of the sending address. const balance = await getBCHBalance(SEND_ADDR, false) console.log(`balance: ${JSON.stringify(balance, null, 2)}`) @@ -88,17 +93,13 @@ async function sendBch() { transactionBuilder.addOutput(RECV_ADDR, satoshisToSend) transactionBuilder.addOutput(SEND_ADDR, remainder) - // Generate a change address from a Mnemonic of a private key. - const change = changeAddrFromMnemonic(SEND_MNEMONIC) - - // Generate a keypair from the change address. - const keyPair = BITBOX.HDNode.toKeyPair(change) + const ecPair = BITBOX.ECPair.fromWIF(SEND_WIF) // Sign the transaction with the HD node. let redeemScript transactionBuilder.sign( 0, - keyPair, + ecPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount @@ -122,23 +123,6 @@ async function sendBch() { } sendBch() -// Generate a change address from a Mnemonic of a private key. -function changeAddrFromMnemonic(mnemonic) { - // root seed buffer - const rootSeed = BITBOX.Mnemonic.toSeed(mnemonic) - - // master HDNode - const masterHDNode = BITBOX.HDNode.fromSeed(rootSeed, "testnet") - - // HDNode of BIP44 account - const account = BITBOX.HDNode.derivePath(masterHDNode, "m/44'/145'/0'") - - // derive the first external change address HDNode which is going to spend utxo - const change = BITBOX.HDNode.derivePath(account, "0/0") - - return change -} - // Get the balance in BCH of a BCH address. async function getBCHBalance(addr, verbose) { try { From 053cf07af50ccc37db88222ac0cb7e4d74f48d5a Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 1 May 2019 13:40:06 +0900 Subject: [PATCH 254/480] Clean up test. --- test/unit/HDNode.js | 1 - 1 file changed, 1 deletion(-) diff --git a/test/unit/HDNode.js b/test/unit/HDNode.js index d74a3679..6bfac92d 100644 --- a/test/unit/HDNode.js +++ b/test/unit/HDNode.js @@ -292,7 +292,6 @@ describe("#HDNode", () => { fixtures.verify.forEach(fixture => { it(`should verify signed 32 byte hash buffer`, () => { const hdnode1 = BITBOX.HDNode.fromXPriv(fixture.privateKeyWIF1) - const hdnode2 = BITBOX.HDNode.fromXPriv(fixture.privateKeyWIF2) const buf = Buffer.from(BITBOX.Crypto.sha256(fixture.data), "hex") const signature = BITBOX.HDNode.sign(hdnode1, buf) const verify = BITBOX.HDNode.verify(hdnode1, buf, signature) From a03907221eded4409b03bd0a49a6c1e259e26d4a Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 1 May 2019 13:41:56 +0900 Subject: [PATCH 255/480] Bump v --- index.js | 2 +- package-lock.json | 2 +- package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 69151e61..b31877ef 100755 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOXSDK = require("./lib/BITBOX") const clone = require("git-clone") -program.version("5.1.0 ", "-v, --version") +program.version("5.1.1 ", "-v, --version") program .command("new ") diff --git a/package-lock.json b/package-lock.json index 5d7f6f81..6ca9baa1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "5.1.0", + "version": "5.1.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 1c78c3c3..154c2a02 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "5.1.0", + "version": "5.1.1", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ From 7abe010ea27780767e6a7f48af982bf5bba482d7 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 1 May 2019 13:47:05 +0900 Subject: [PATCH 256/480] Clean up test. --- test/integration/z9-rate-limits.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/integration/z9-rate-limits.js b/test/integration/z9-rate-limits.js index 11e5902a..89a98ec4 100644 --- a/test/integration/z9-rate-limits.js +++ b/test/integration/z9-rate-limits.js @@ -28,7 +28,7 @@ describe("#rate-limits", () => { const temp = await Promise.all(promises) - console.log(`temp: ${util.inspect(temp)}`) + // console.log(`temp: ${util.inspect(temp)}`) assert.equal(true, false, "Unexpected result!") } catch (err) { // Expected error response @@ -39,7 +39,7 @@ describe("#rate-limits", () => { // Handle other types of error response. } else { console.log(`Unexpected error:`) - console.log(`err: ${util.inspect(err)}`) + // console.log(`err: ${util.inspect(err)}`) assert.equal(true, false, "Unexpected error") } } From 32711ad92c63293b72642da40b400ccdbccbbb4b Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 1 May 2019 13:49:36 +0900 Subject: [PATCH 257/480] fix(semantic-release) bump patch v. --- index.js | 2 +- package-lock.json | 2 +- package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index b31877ef..3a59f652 100755 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOXSDK = require("./lib/BITBOX") const clone = require("git-clone") -program.version("5.1.1 ", "-v, --version") +program.version("5.1.2 ", "-v, --version") program .command("new ") diff --git a/package-lock.json b/package-lock.json index 6ca9baa1..9d874c43 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "5.1.1", + "version": "5.1.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 154c2a02..fa5c2783 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "5.1.1", + "version": "5.1.2", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ From 4c9ca532421a6705340acb4f96120204b16b4bd2 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 1 May 2019 15:25:38 +0900 Subject: [PATCH 258/480] fix(semantic-release) Remove Network class. Clean up dependencies. Update Price class and tests --- .eslintrc.json | 2 +- index.js | 2 +- lib/BITBOX.d.ts | 2 - lib/BITBOX.js | 5 - lib/Network.js | 168 --------------------------- lib/Price.js | 13 +-- lib/bitbox-sdk.d.ts | 82 +++++++------ package-lock.json | 2 +- package.json | 2 +- src/BITBOX.js | 2 - src/Network.js | 151 ------------------------ src/Price.js | 14 +-- test/integration/price.js | 14 +++ test/integration/transaction.js | 2 +- test/unit/Address.js | 1 - test/unit/BitcoinCash.js | 1 - test/unit/Block.js | 1 - test/unit/Blockchain.js | 3 +- test/unit/Control.js | 1 - test/unit/Crypto.js | 1 - test/unit/ECPair.js | 2 - test/unit/Generating.js | 1 - test/unit/HDNode.js | 1 - test/unit/Mining.js | 1 - test/unit/Mnemonic.js | 2 - test/unit/Network.js | 196 -------------------------------- test/unit/Price.js | 55 +-------- test/unit/RawTransactions.js | 1 - test/unit/Script.js | 1 - test/unit/Transaction.js | 1 - test/unit/TransactionBuilder.js | 1 - test/unit/Util.js | 1 - typings/BITBOX.d.ts | 2 - 33 files changed, 67 insertions(+), 667 deletions(-) delete mode 100644 lib/Network.js delete mode 100644 src/Network.js create mode 100644 test/integration/price.js delete mode 100644 test/unit/Network.js diff --git a/.eslintrc.json b/.eslintrc.json index 84d89281..9b0b426a 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -35,7 +35,7 @@ "no-useless-computed-key": ["error"], "no-useless-rename": ["error"], "no-var": ["off"], - "prefer-spread": ["error"], + "prefer-spread": ["off"], "prefer-template": ["error"], "rest-spread-spacing": ["error", "never"], "prefer-const": ["warn", { "destructuring": "all" }], diff --git a/index.js b/index.js index 3a59f652..cb56b4ca 100755 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOXSDK = require("./lib/BITBOX") const clone = require("git-clone") -program.version("5.1.2 ", "-v, --version") +program.version("5.1.3 ", "-v, --version") program .command("new ") diff --git a/lib/BITBOX.d.ts b/lib/BITBOX.d.ts index cf7565eb..5f58ad2f 100644 --- a/lib/BITBOX.d.ts +++ b/lib/BITBOX.d.ts @@ -7,7 +7,6 @@ import { Blockchain } from "./Blockchain" import { Control } from "./Control" import { Generating } from "./Generating" import { Mining } from "./Mining" -import { Network } from "./Network" import { RawTransactions } from "./RawTransactions" import { Mnemonic } from "./Mnemonic" import { Address } from "./Address" @@ -34,7 +33,6 @@ declare class BITBOXSDK { ECPair: ECPair HDNode: HDNode Mnemonic: Mnemonic - Network: Network Price: Price RawTransactions: RawTransactions Script: Script diff --git a/lib/BITBOX.js b/lib/BITBOX.js index 5e5c78ec..7d722b12 100644 --- a/lib/BITBOX.js +++ b/lib/BITBOX.js @@ -32,10 +32,6 @@ var _Mining = require("./Mining"); var _Mining2 = _interopRequireDefault(_Mining); -var _Network = require("./Network"); - -var _Network2 = _interopRequireDefault(_Network); - var _RawTransactions = require("./RawTransactions"); var _RawTransactions2 = _interopRequireDefault(_RawTransactions); @@ -102,7 +98,6 @@ var BITBOX = function BITBOX(config) { this.HDNode = new _HDNode2.default(this.Address); this.Mining = new _Mining2.default(this.restURL); this.Mnemonic = new _Mnemonic2.default(this.Address); - this.Network = new _Network2.default(this.restURL); this.Price = new _Price2.default(); this.RawTransactions = new _RawTransactions2.default(this.restURL); this.Script = new _Script2.default(); diff --git a/lib/Network.js b/lib/Network.js deleted file mode 100644 index 65de9d64..00000000 --- a/lib/Network.js +++ /dev/null @@ -1,168 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _axios = require("axios"); - -var _axios2 = _interopRequireDefault(_axios); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var Network = function () { - function Network(restURL) { - _classCallCheck(this, Network); - - this.restURL = restURL; - } - - _createClass(Network, [{ - key: "addNode", - value: async function addNode(node, command) { - try { - var response = await _axios2.default.post(this.restURL + "network/addNode/" + node + "/" + command); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }, { - key: "clearBanned", - value: async function clearBanned() { - try { - var response = await _axios2.default.post(this.restURL + "clearBanned"); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }, { - key: "disconnectNode", - value: async function disconnectNode(configuration) { - try { - var response = await _axios2.default.post(this.restURL + "disconnectNode/" + configuration); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }, { - key: "getAddedNodeInfo", - value: async function getAddedNodeInfo(node) { - var path = this.restURL + "network/getAddedNodeInfo"; - if (node) path = path + "?node=" + node; - - try { - var response = await _axios2.default.get(path); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }, { - key: "getConnectionCount", - value: async function getConnectionCount() { - try { - var response = await _axios2.default.get(this.restURL + "network/getConnectionCount"); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }, { - key: "getNetTotals", - value: async function getNetTotals() { - try { - var response = await _axios2.default.get(this.restURL + "network/getNetTotals"); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }, { - key: "getNetworkInfo", - value: async function getNetworkInfo() { - try { - var response = await _axios2.default.get(this.restURL + "network/getNetworkInfo"); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }, { - key: "getPeerInfo", - value: async function getPeerInfo() { - try { - var response = await _axios2.default.get(this.restURL + "network/getPeerInfo"); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - // - // listBanned() { - // // List all banned IPs/Subnets. - // return axios.get(`${this.restURL}network/listBanned`) - // .then((response) => { - // return response.data; - // }) - // .catch((error) => { - // return JSON.stringify(error.response.data.error.message); - // }); - // } - - }, { - key: "ping", - value: async function ping() { - try { - var response = await _axios2.default.get(this.restURL + "network/ping"); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - // - // setBan(subnet, command, bantime, absolute) { - // // Attempts add or remove a IP/Subnet from the banned list. - // // - // // Arguments: - // // 1. "subnet" (string, required) The IP/Subnet (see getpeerinfo for nodes ip) with a optional netmask (default is /32 = single ip) - // // 2. "command" (string, required) 'add' to add a IP/Subnet to the list, 'remove' to remove a IP/Subnet from the list - // // 3. "bantime" (numeric, optional) time in seconds how long (or until when if [absolute] is set) the ip is banned (0 or empty means using the default time of 24h which can also be overwritten by the -bantime startup argument) - // // 4. "absolute" (boolean, optional) If set, the bantime must be a absolute timestamp in seconds since epoch (Jan 1 1970 GMT) - // - // return axios.post(`${this.baseurl}network/setban/${subnet}/${command}`) - // .then((response) => { - // return response.data; - // }) - // .catch((error) => { - // return JSON.stringify(error.response.data.error.message); - // }); - // } - // - // setNetworkActive(state) { - // // Disable/enable all p2p network activity. - // // - // // Arguments: - // // 1. "state" (boolean, required) true to enable networking, false to disable - // - // return axios.post(`${this.baseurl}network/setNetworkActive/${state}`) - // .then((response) => { - // return response.data; - // }) - // .catch((error) => { - // return JSON.stringify(error.response.data.error.message); - // }); - // } - - }]); - - return Network; -}(); - -exports.default = Network; \ No newline at end of file diff --git a/lib/Price.js b/lib/Price.js index 0c560ae6..4c2a50d6 100644 --- a/lib/Price.js +++ b/lib/Price.js @@ -21,19 +21,12 @@ var Price = function () { _createClass(Price, [{ key: "current", - - // TODO: v3: Default currency to usd, always call index.bitcoin.com value: async function current() { - var currency = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "all"; + var currency = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "usd"; try { - if (currency === "all") { - var _response = await _axios2.default.get("https://www.blocktrail.com/BCC/json/blockchain/price"); - return _response.data; - } - - var response = await _axios2.default.get("https://index-api.bitcoin.com/api/v0/cash/price/" + currency); - return response.data.price / 100.0; + var response = await _axios2.default.get("https://index-api.bitcoin.com/api/v0/cash/price/" + currency.toLowerCase()); + return response.data.price; } catch (error) { if (error.response && error.response.data) throw error.response.data;else throw error; } diff --git a/lib/bitbox-sdk.d.ts b/lib/bitbox-sdk.d.ts index 0ced11e4..5f58ad2f 100644 --- a/lib/bitbox-sdk.d.ts +++ b/lib/bitbox-sdk.d.ts @@ -1,49 +1,45 @@ // local deps -import { BitcoinCash } from './BitcoinCash'; -import { Crypto } from './Crypto'; -import { Util } from './Util'; -import { Block } from './Block'; -import { Blockchain } from './Blockchain'; -import { Control } from './Control'; -import { Generating } from './Generating'; -import { Mining } from './Mining'; -import { Network } from './Network'; -import { RawTransactions } from './RawTransactions'; -import { Mnemonic } from './Mnemonic'; -import { Address } from './Address'; -import { HDNode } from './HDNode'; -import { Transaction } from './Transaction'; -import { TransactionBuilder } from './TransactionBuilder'; -import { ECPair } from './ECPair'; -import { Script } from './Script'; -import Price from './Price'; -import Socket from './Socket'; - +import { BitcoinCash } from "./BitcoinCash" +import { Crypto } from "./Crypto" +import { Util } from "./Util" +import { Block } from "./Block" +import { Blockchain } from "./Blockchain" +import { Control } from "./Control" +import { Generating } from "./Generating" +import { Mining } from "./Mining" +import { RawTransactions } from "./RawTransactions" +import { Mnemonic } from "./Mnemonic" +import { Address } from "./Address" +import { HDNode } from "./HDNode" +import { Transaction } from "./Transaction" +import { TransactionBuilder } from "./TransactionBuilder" +import { ECPair } from "./ECPair" +import { Script } from "./Script" +import Price from "./Price" +import Socket from "./Socket" declare class BITBOXSDK { + constructor(config?: any) - constructor(config?: any); - - restURL: string; - Address: Address; - BitcoinCash: BitcoinCash; - Block: Block; - Blockchain: Blockchain; - Control: Control; - Generating: Generating; - Mining: Mining; - Crypto: Crypto; - ECPair: ECPair; - HDNode: HDNode; - Mnemonic: Mnemonic; - Network: Network; - Price: Price; - RawTransactions: RawTransactions; - Script: Script; - Transaction: Transaction; - TransactionBuilder: TransactionBuilder; - Util: Util; - Socket: Socket; + restURL: string + Address: Address + BitcoinCash: BitcoinCash + Block: Block + Blockchain: Blockchain + Control: Control + Generating: Generating + Mining: Mining + Crypto: Crypto + ECPair: ECPair + HDNode: HDNode + Mnemonic: Mnemonic + Price: Price + RawTransactions: RawTransactions + Script: Script + Transaction: Transaction + TransactionBuilder: TransactionBuilder + Util: Util + Socket: Socket } -export default BITBOXSDK; +export default BITBOXSDK diff --git a/package-lock.json b/package-lock.json index 9d874c43..6c8ff02a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "5.1.2", + "version": "5.1.3", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index fa5c2783..bbca3504 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "5.1.2", + "version": "5.1.3", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ diff --git a/src/BITBOX.js b/src/BITBOX.js index 53bd3fd6..c8c4b9bb 100644 --- a/src/BITBOX.js +++ b/src/BITBOX.js @@ -7,7 +7,6 @@ import Blockchain from "./Blockchain" import Control from "./Control" import Generating from "./Generating" import Mining from "./Mining" -import Network from "./Network" import RawTransactions from "./RawTransactions" import Mnemonic from "./Mnemonic" import Address from "./Address" @@ -38,7 +37,6 @@ class BITBOX { this.HDNode = new HDNode(this.Address) this.Mining = new Mining(this.restURL) this.Mnemonic = new Mnemonic(this.Address) - this.Network = new Network(this.restURL) this.Price = new Price() this.RawTransactions = new RawTransactions(this.restURL) this.Script = new Script() diff --git a/src/Network.js b/src/Network.js deleted file mode 100644 index 523e1656..00000000 --- a/src/Network.js +++ /dev/null @@ -1,151 +0,0 @@ -import axios from "axios" -class Network { - constructor(restURL) { - this.restURL = restURL - } - - async addNode(node, command) { - try { - const response = await axios.post( - `${this.restURL}network/addNode/${node}/${command}` - ) - return response.data - } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error - } - } - - async clearBanned() { - try { - const response = await axios.post(`${this.restURL}clearBanned`) - return response.data - } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error - } - } - - async disconnectNode(configuration) { - try { - const response = await axios.post( - `${this.restURL}disconnectNode/${configuration}` - ) - return response.data - } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error - } - } - - async getAddedNodeInfo(node) { - let path = `${this.restURL}network/getAddedNodeInfo` - if (node) path = `${path}?node=${node}` - - try { - const response = await axios.get(path) - return response.data - } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error - } - } - - async getConnectionCount() { - try { - const response = await axios.get( - `${this.restURL}network/getConnectionCount` - ) - return response.data - } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error - } - } - - async getNetTotals() { - try { - const response = await axios.get(`${this.restURL}network/getNetTotals`) - return response.data - } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error - } - } - - async getNetworkInfo() { - try { - const response = await axios.get(`${this.restURL}network/getNetworkInfo`) - return response.data - } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error - } - } - - async getPeerInfo() { - try { - const response = await axios.get(`${this.restURL}network/getPeerInfo`) - return response.data - } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error - } - } - // - // listBanned() { - // // List all banned IPs/Subnets. - // return axios.get(`${this.restURL}network/listBanned`) - // .then((response) => { - // return response.data; - // }) - // .catch((error) => { - // return JSON.stringify(error.response.data.error.message); - // }); - // } - - async ping() { - try { - const response = await axios.get(`${this.restURL}network/ping`) - return response.data - } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error - } - } - // - // setBan(subnet, command, bantime, absolute) { - // // Attempts add or remove a IP/Subnet from the banned list. - // // - // // Arguments: - // // 1. "subnet" (string, required) The IP/Subnet (see getpeerinfo for nodes ip) with a optional netmask (default is /32 = single ip) - // // 2. "command" (string, required) 'add' to add a IP/Subnet to the list, 'remove' to remove a IP/Subnet from the list - // // 3. "bantime" (numeric, optional) time in seconds how long (or until when if [absolute] is set) the ip is banned (0 or empty means using the default time of 24h which can also be overwritten by the -bantime startup argument) - // // 4. "absolute" (boolean, optional) If set, the bantime must be a absolute timestamp in seconds since epoch (Jan 1 1970 GMT) - // - // return axios.post(`${this.baseurl}network/setban/${subnet}/${command}`) - // .then((response) => { - // return response.data; - // }) - // .catch((error) => { - // return JSON.stringify(error.response.data.error.message); - // }); - // } - // - // setNetworkActive(state) { - // // Disable/enable all p2p network activity. - // // - // // Arguments: - // // 1. "state" (boolean, required) true to enable networking, false to disable - // - // return axios.post(`${this.baseurl}network/setNetworkActive/${state}`) - // .then((response) => { - // return response.data; - // }) - // .catch((error) => { - // return JSON.stringify(error.response.data.error.message); - // }); - // } -} - -export default Network diff --git a/src/Price.js b/src/Price.js index 6fd81158..cf843f5d 100644 --- a/src/Price.js +++ b/src/Price.js @@ -1,19 +1,11 @@ import axios from "axios" class Price { - // TODO: v3: Default currency to usd, always call index.bitcoin.com - async current(currency = "all") { + async current(currency = "usd") { try { - if (currency === "all") { - const response = await axios.get( - `https://www.blocktrail.com/BCC/json/blockchain/price` - ) - return response.data - } - const response = await axios.get( - `https://index-api.bitcoin.com/api/v0/cash/price/${currency}` + `https://index-api.bitcoin.com/api/v0/cash/price/${currency.toLowerCase()}` ) - return response.data.price / 100.0 + return response.data.price } catch (error) { if (error.response && error.response.data) throw error.response.data else throw error diff --git a/test/integration/price.js b/test/integration/price.js new file mode 100644 index 00000000..3054f61b --- /dev/null +++ b/test/integration/price.js @@ -0,0 +1,14 @@ +const assert = require("assert") +const BITBOXSDK = require("../../lib/BITBOX") +const BITBOX = new BITBOXSDK() + +describe("#price", () => { + describe("#current", () => { + describe("#single currency", () => { + it("should get current price for single currency", async () => { + const result = await BITBOX.Price.current("usd") + assert.notEqual(0, result) + }) + }) + }) +}) diff --git a/test/integration/transaction.js b/test/integration/transaction.js index ba4c15e5..a5260d8c 100644 --- a/test/integration/transaction.js +++ b/test/integration/transaction.js @@ -81,7 +81,7 @@ describe(`#Transaction`, () => { // console.log(`result: ${util.inspect(result)}`) assert.equal(false, false, "Unexpected result!") } catch (err) { - console.log(`err: ${util.inspect(err)}`) + // console.log(`err: ${util.inspect(err)}`) assert.hasAnyKeys(err, ["error"]) assert.include(err.error, "Array too large") diff --git a/test/unit/Address.js b/test/unit/Address.js index df960fd8..b1bb13f3 100644 --- a/test/unit/Address.js +++ b/test/unit/Address.js @@ -1,5 +1,4 @@ const fixtures = require("./fixtures/Address.json") -const chai = require("chai") const assert = require("assert") const BITBOXSDK = require("../../lib/BITBOX") const BITBOX = new BITBOXSDK() diff --git a/test/unit/BitcoinCash.js b/test/unit/BitcoinCash.js index 953b9d5c..755c1f2c 100644 --- a/test/unit/BitcoinCash.js +++ b/test/unit/BitcoinCash.js @@ -1,5 +1,4 @@ const fixtures = require("./fixtures/BitcoinCash.json") -const chai = require("chai") const assert = require("assert") const BITBOXSDK = require("../../lib/BITBOX") const BITBOX = new BITBOXSDK() diff --git a/test/unit/Block.js b/test/unit/Block.js index 7aacc18f..558ed6b0 100644 --- a/test/unit/Block.js +++ b/test/unit/Block.js @@ -1,4 +1,3 @@ -const chai = require("chai") const assert = require("assert") const BITBOXSDK = require("../../lib/BITBOX") const BITBOX = new BITBOXSDK() diff --git a/test/unit/Blockchain.js b/test/unit/Blockchain.js index 538c5a9e..e928b417 100644 --- a/test/unit/Blockchain.js +++ b/test/unit/Blockchain.js @@ -1,4 +1,3 @@ -const chai = require("chai") const assert = require("assert") const axios = require("axios") const BITBOXSDK = require("../../lib/BITBOX") @@ -432,7 +431,7 @@ describe("#Blockchain", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.Blockchain.verifyTxOutProof("3") + BITBOX.Blockchain.verifyTxOutProof("3") .then(result => { assert.deepEqual(data, result) }) diff --git a/test/unit/Control.js b/test/unit/Control.js index 19123a93..a5cfd93d 100644 --- a/test/unit/Control.js +++ b/test/unit/Control.js @@ -1,4 +1,3 @@ -const chai = require("chai") const assert = require("assert") const axios = require("axios") const BITBOXSDK = require("../../lib/BITBOX") diff --git a/test/unit/Crypto.js b/test/unit/Crypto.js index 35fed04a..ef2256df 100644 --- a/test/unit/Crypto.js +++ b/test/unit/Crypto.js @@ -1,5 +1,4 @@ const fixtures = require("./fixtures/Crypto.json") -const chai = require("chai") const assert = require("assert") const BITBOXSDK = require("../../lib/BITBOX") const BITBOX = new BITBOXSDK() diff --git a/test/unit/ECPair.js b/test/unit/ECPair.js index 1ee6b8d4..1a5da7e4 100644 --- a/test/unit/ECPair.js +++ b/test/unit/ECPair.js @@ -1,9 +1,7 @@ const fixtures = require("./fixtures/ECPair.json") -const chai = require("chai") const assert = require("assert") const BITBOXSDK = require("../../lib/BITBOX") const BITBOX = new BITBOXSDK() -const script = BITBOX.Script const Buffer = require("safe-buffer").Buffer describe("#ECPair", () => { diff --git a/test/unit/Generating.js b/test/unit/Generating.js index d58c4eab..1a0650a1 100644 --- a/test/unit/Generating.js +++ b/test/unit/Generating.js @@ -1,4 +1,3 @@ -const chai = require("chai") const assert = require("assert") const axios = require("axios") const BITBOXSDK = require("../../lib/BITBOX") diff --git a/test/unit/HDNode.js b/test/unit/HDNode.js index 6bfac92d..5009e3fa 100644 --- a/test/unit/HDNode.js +++ b/test/unit/HDNode.js @@ -1,5 +1,4 @@ const fixtures = require("./fixtures/HDNode.json") -const chai = require("chai") const assert = require("assert") const BITBOXSDK = require("../../lib/BITBOX") const BITBOX = new BITBOXSDK() diff --git a/test/unit/Mining.js b/test/unit/Mining.js index 03a71235..00571f6a 100644 --- a/test/unit/Mining.js +++ b/test/unit/Mining.js @@ -1,4 +1,3 @@ -const chai = require("chai") const assert = require("assert") const axios = require("axios") const BITBOXSDK = require("../../lib/BITBOX") diff --git a/test/unit/Mnemonic.js b/test/unit/Mnemonic.js index e32853e8..9ee0bd50 100644 --- a/test/unit/Mnemonic.js +++ b/test/unit/Mnemonic.js @@ -1,9 +1,7 @@ const fixtures = require("./fixtures/Mnemonic.json") -const chai = require("chai") const assert = require("assert") const BITBOXSDK = require("../../lib/BITBOX") const BITBOX = new BITBOXSDK() -const Buffer = require("safe-buffer").Buffer describe("#Mnemonic", () => { describe("#generate", () => { diff --git a/test/unit/Network.js b/test/unit/Network.js deleted file mode 100644 index 958982c4..00000000 --- a/test/unit/Network.js +++ /dev/null @@ -1,196 +0,0 @@ -const chai = require("chai") -const assert = require("assert") -const axios = require("axios") -const BITBOXSDK = require("../../lib/BITBOX") -const BITBOX = new BITBOXSDK() -const sinon = require("sinon") - -describe("#Network", () => { - describe("#getConnectionCount", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get connection count", done => { - const data = 13 - - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Network.getConnectionCount() - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getNetTotals", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get net totals", done => { - const data = { - totalbytesrecv: 9348169, - totalbytessent: 246903958, - timemillis: 1524922367067, - uploadtarget: { - timeframe: 86400, - target: 0, - target_reached: false, - serve_historical_blocks: true, - bytes_left_in_cycle: 0, - time_left_in_cycle: 0 - } - } - - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Network.getNetTotals() - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getNetworkInfo", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get network info", done => { - const data = { - version: 170000, - subversion: "/Bitcoin ABC:0.17.0(EB32.0)/", - protocolversion: 70015, - localservices: "0000000000000025", - localrelay: true, - timeoffset: 0, - networkactive: true, - connections: 11, - networks: [ - { - name: "ipv4", - limited: false, - reachable: true, - proxy: "", - proxy_randomize_credentials: false - }, - { - name: "ipv6", - limited: false, - reachable: true, - proxy: "", - proxy_randomize_credentials: false - }, - { - name: "onion", - limited: true, - reachable: false, - proxy: "", - proxy_randomize_credentials: false - } - ], - relayfee: 0.00001, - incrementalfee: 0.00001, - localaddresses: [{ address: "138.68.54.100", port: 8333, score: 584 }], - warnings: "" - } - - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Network.getNetworkInfo() - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getPeerInfo", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get peer info", done => { - const data = [ - { - id: 99, - addr: "54.39.17.74:47990", - addrlocal: "138.68.54.100:8333", - services: "0000000000000000", - relaytxes: true, - lastsend: 1524922628, - lastrecv: 1524922616, - bytessent: 310482, - bytesrecv: 10637, - conntime: 1524890802, - timeoffset: 0, - pingtime: 0.066598, - minping: 0.066502, - version: 70015, - subver: "/bitnodes.ping.com:0.1/", - inbound: true, - addnode: false, - startingheight: 527808, - banscore: 0, - synced_headers: 527872, - synced_blocks: -1, - inflight: [], - whitelisted: false, - bytessent_per_msg: { - addr: 14975, - feefilter: 32, - inv: 286552, - ping: 8512, - pong: 192, - sendcmpct: 33, - sendheaders: 24, - verack: 24, - version: 138 - }, - bytesrecv_per_msg: { - addr: 1410, - inv: 366, - ping: 192, - pong: 8512, - verack: 24, - version: 133 - } - } - ] - - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Network.getPeerInfo() - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#ping", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should ping", done => { - const data = null - - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Network.ping() - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) -}) diff --git a/test/unit/Price.js b/test/unit/Price.js index ecc50b8f..54ca4b34 100644 --- a/test/unit/Price.js +++ b/test/unit/Price.js @@ -7,70 +7,19 @@ const sinon = require("sinon") describe("#Price", () => { describe("#current", () => { - describe("#all currencies", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get current price for all currencies", done => { - const data = { - USD: 872.31, - GBP: 665.3, - EUR: 748.34, - CNY: 5848.32, - PAB: 872.31, - ARS: 24005.97, - BOB: 6060.11, - CLP: 570141.82, - PEN: 2851.32, - PYG: 4986964.67, - UYU: 27300.76, - VEF: 69697569, - CRC: 494264.3, - MXN: 16476.28, - NGN: 314903.91, - INR: 59620.88, - RUB: 54650.83, - AUD: 1180.92, - BRL: 3347.57, - CAD: 1151.44, - ZAR: 11579.24, - GHS: 4177.25, - JPY: 98519.56, - ILS: 3165.36, - SAR: 3271.21, - KRW: 984345.13, - COP: 2521500.32, - PHP: 46612.32, - PLN: 3215.41 - } - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - BITBOX.Price.current() - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - describe("#single currency", () => { let sandbox beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) it("should get current price for single currency", done => { - const data = { - price: 46347, - stamp: 1539620880 - } + const data = 46347 const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) BITBOX.Price.current("usd") .then(result => { - assert.deepEqual(data.price / 100.0, result) + assert.deepEqual(data.price, result) }) .then(done, done) }) diff --git a/test/unit/RawTransactions.js b/test/unit/RawTransactions.js index b0f115bf..54cc1782 100644 --- a/test/unit/RawTransactions.js +++ b/test/unit/RawTransactions.js @@ -5,7 +5,6 @@ -Create a mocking library of data to compare unit and integration tests. */ -const chai = require("chai") const assert = require("assert") const axios = require("axios") const BITBOXSDK = require("../../lib/BITBOX") diff --git a/test/unit/Script.js b/test/unit/Script.js index 9b19a2d0..63794087 100644 --- a/test/unit/Script.js +++ b/test/unit/Script.js @@ -1,5 +1,4 @@ const fixtures = require("./fixtures/Script.json") -const chai = require("chai") const assert = require("assert") const BITBOXSDK = require("../../lib/BITBOX") const BITBOX = new BITBOXSDK() diff --git a/test/unit/Transaction.js b/test/unit/Transaction.js index e91b80da..8ba0ef7e 100644 --- a/test/unit/Transaction.js +++ b/test/unit/Transaction.js @@ -1,4 +1,3 @@ -const chai = require("chai") const assert = require("assert") const BITBOXSDK = require("../../lib/BITBOX") const BITBOX = new BITBOXSDK() diff --git a/test/unit/TransactionBuilder.js b/test/unit/TransactionBuilder.js index 03cae2e1..387abab1 100644 --- a/test/unit/TransactionBuilder.js +++ b/test/unit/TransactionBuilder.js @@ -1,5 +1,4 @@ const fixtures = require("./fixtures/TransactionBuilder.json") -const chai = require("chai") const assert = require("assert") const BITBOXSDK = require("../../lib/BITBOX") const BITBOX = new BITBOXSDK() diff --git a/test/unit/Util.js b/test/unit/Util.js index 332b20b2..2534659e 100644 --- a/test/unit/Util.js +++ b/test/unit/Util.js @@ -1,4 +1,3 @@ -const chai = require("chai") const assert = require("assert") const axios = require("axios") const BITBOXSDK = require("../../lib/BITBOX") diff --git a/typings/BITBOX.d.ts b/typings/BITBOX.d.ts index cf7565eb..5f58ad2f 100644 --- a/typings/BITBOX.d.ts +++ b/typings/BITBOX.d.ts @@ -7,7 +7,6 @@ import { Blockchain } from "./Blockchain" import { Control } from "./Control" import { Generating } from "./Generating" import { Mining } from "./Mining" -import { Network } from "./Network" import { RawTransactions } from "./RawTransactions" import { Mnemonic } from "./Mnemonic" import { Address } from "./Address" @@ -34,7 +33,6 @@ declare class BITBOXSDK { ECPair: ECPair HDNode: HDNode Mnemonic: Mnemonic - Network: Network Price: Price RawTransactions: RawTransactions Script: Script From d947ff37c2e89fa71831855c6069a9d8fe8a7b52 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sun, 5 May 2019 09:50:29 +0900 Subject: [PATCH 259/480] BITBOX.Schnorr class! --- index.js | 2 +- lib/BITBOX.js | 5 +++ lib/Schnorr.js | 109 ++++++++++++++++++++++++++++++++++++++++++++++ package-lock.json | 23 +++++++++- package.json | 7 +-- src/BITBOX.js | 2 + src/Schnorr.js | 92 ++++++++++++++++++++++++++++++++++++++ 7 files changed, 235 insertions(+), 5 deletions(-) create mode 100644 lib/Schnorr.js create mode 100644 src/Schnorr.js diff --git a/index.js b/index.js index cb56b4ca..1752d6d2 100755 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOXSDK = require("./lib/BITBOX") const clone = require("git-clone") -program.version("5.1.3 ", "-v, --version") +program.version("6.0.0 ", "-v, --version") program .command("new ") diff --git a/lib/BITBOX.js b/lib/BITBOX.js index 7d722b12..6da72f1e 100644 --- a/lib/BITBOX.js +++ b/lib/BITBOX.js @@ -76,6 +76,10 @@ var _Wallet = require("./Wallet"); var _Wallet2 = _interopRequireDefault(_Wallet); +var _Schnorr = require("./Schnorr"); + +var _Schnorr2 = _interopRequireDefault(_Schnorr); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } // local deps @@ -107,6 +111,7 @@ var BITBOX = function BITBOX(config) { this.Util = new _Util2.default(this.restURL); this.Socket = _Socket2.default; this.Wallet = _Wallet2.default; + this.Schnorr = new _Schnorr2.default(this.restURL); }; module.exports = BITBOX; \ No newline at end of file diff --git a/lib/Schnorr.js b/lib/Schnorr.js new file mode 100644 index 00000000..8843c98d --- /dev/null +++ b/lib/Schnorr.js @@ -0,0 +1,109 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _bipSchnorr = require("bip-schnorr"); + +var _bipSchnorr2 = _interopRequireDefault(_bipSchnorr); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var Schnorr = function () { + function Schnorr(restURL) { + _classCallCheck(this, Schnorr); + + this.restURL = restURL; + } + + _createClass(Schnorr, [{ + key: "sign", + value: function sign(privateKey, message) { + return _bipSchnorr2.default.sign(privateKey, message); + } + }, { + key: "verify", + value: function verify(publicKey, message, signatureToVerify) { + return _bipSchnorr2.default.verify(publicKey, message, signatureToVerify); + } + }, { + key: "batchVerify", + value: function batchVerify(publicKeys, messages, signaturesToVerify) { + return _bipSchnorr2.default.batchVerify(publicKeys, messages, signaturesToVerify); + } + }, { + key: "nonInteractive", + value: function nonInteractive(privateKeys, message) { + return _bipSchnorr2.default.muSig.nonInteractive(privateKeys, message); + } + }, { + key: "computeEll", + value: function computeEll(publicKeys) { + return _bipSchnorr2.default.muSig.computeEll(publicKeys); + } + }, { + key: "pubKeyCombine", + value: function pubKeyCombine(publicKeys, publicKeyHash) { + return _bipSchnorr2.default.muSig.pubKeyCombine(publicKeys, publicKeyHash); + } + }, { + key: "sessionInitialize", + value: function sessionInitialize(sessionId, privateKey, message, pubKeyCombined, ell, idx) { + return _bipSchnorr2.default.muSig.sessionInitialize(sessionId, privateKey, message, pubKeyCombined, ell, idx); + } + }, { + key: "sessionNonceCombine", + value: function sessionNonceCombine(session, nonces) { + return _bipSchnorr2.default.muSig.sessionNonceCombine(session, nonces); + } + }, { + key: "partialSign", + value: function partialSign(session, message, nonceCombined, pubKeyCombined) { + return _bipSchnorr2.default.muSig.partialSign(session, message, nonceCombined, pubKeyCombined); + } + }, { + key: "partialSigVerify", + value: function partialSigVerify(session, partialSig, nonceCombined, idx, pubKey, nonce) { + return _bipSchnorr2.default.muSig.partialSigVerify(session, partialSig, nonceCombined, idx, pubKey, nonce); + } + }, { + key: "partialSigCombine", + value: function partialSigCombine(nonceCombined, partialSigs) { + return _bipSchnorr2.default.muSig.partialSigCombine(nonceCombined, partialSigs); + } + }, { + key: "bufferToInt", + value: function bufferToInt(buffer) { + return _bipSchnorr2.default.convert.bufferToInt(buffer); + } + }, { + key: "intToBuffer", + value: function intToBuffer(bigInteger) { + return _bipSchnorr2.default.convert.intToBuffer(bigInteger); + } + }, { + key: "hash", + value: function hash(buffer) { + return _bipSchnorr2.default.convert.hash(buffer); + } + }, { + key: "pointToBuffer", + value: function pointToBuffer(point) { + return _bipSchnorr2.default.convert.pointToBuffer(point); + } + }, { + key: "pubKeyToPoint", + value: function pubKeyToPoint(publicKey) { + return _bipSchnorr2.default.convert.pubKeyToPoint(publicKey); + } + }]); + + return Schnorr; +}(); + +exports.default = Schnorr; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 6c8ff02a..ec633033 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "5.1.3", + "version": "6.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1553,6 +1553,17 @@ "file-uri-to-path": "1.0.0" } }, + "bip-schnorr": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/bip-schnorr/-/bip-schnorr-0.3.0.tgz", + "integrity": "sha512-Sc1Hn2+1n+okPEW8G+JLjeaM12dsUOwr+oFlMDSKR9wYwNGMw0alskeBIHTmXxBxMZSWKhCW7PwKQVDyGmnaVg==", + "requires": { + "ecurve": "^1.0.6", + "js-sha256": "^0.9.0", + "random-bytes": "^1.0.0", + "safe-buffer": "^5.0.1" + } + }, "bip21": { "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", "from": "github:Bitcoin-com/bip21", @@ -5375,6 +5386,11 @@ "integrity": "sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw==", "dev": true }, + "js-sha256": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", + "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" + }, "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", @@ -10835,6 +10851,11 @@ "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", "dev": true }, + "random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=" + }, "randomatic": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", diff --git a/package.json b/package.json index bbca3504..06274691 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "5.1.3", + "version": "6.0.0", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ @@ -34,13 +34,15 @@ "babel-preset-env": "^1.6.1", "babel-preset-es2015": "^6.24.1", "babel-register": "^6.26.0", + "bc-bip68": "^1.0.5", + "bch-wallet-bridge.js": "github:web3bch/bch-wallet-bridge.js#master", "bigi": "^1.4.2", + "bip-schnorr": "^0.3.0", "bip21": "Bitcoin-com/bip21", "bip32-utils": "Bitcoin-com/bip32-utils#0.13.1", "bip38": "^2.0.2", "bip39": "^2.5.0", "bip66": "^1.1.5", - "bc-bip68": "^1.0.5", "bitcoincash-ops": "Bitcoin-com/bitcoincash-ops#2.0.0", "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib#3.4.4", "bitcoinjs-message": "^2.0.0", @@ -67,7 +69,6 @@ "socket.io": "^2.1.1", "socket.io-client": "^2.1.1", "touch": "^3.1.0", - "bch-wallet-bridge.js": "github:web3bch/bch-wallet-bridge.js#master", "wif": "^2.0.6" }, "devDependencies": { diff --git a/src/BITBOX.js b/src/BITBOX.js index c8c4b9bb..2f62d2db 100644 --- a/src/BITBOX.js +++ b/src/BITBOX.js @@ -18,6 +18,7 @@ import Script from "./Script" import Price from "./Price" import Socket from "./Socket" import Wallet from "./Wallet" +import Schnorr from "./Schnorr" class BITBOX { constructor(config) { @@ -46,6 +47,7 @@ class BITBOX { this.Util = new Util(this.restURL) this.Socket = Socket this.Wallet = Wallet + this.Schnorr = new Schnorr(this.restURL) } } diff --git a/src/Schnorr.js b/src/Schnorr.js new file mode 100644 index 00000000..5442143c --- /dev/null +++ b/src/Schnorr.js @@ -0,0 +1,92 @@ +import schnorr from "bip-schnorr" + +class Schnorr { + constructor(restURL) { + this.restURL = restURL + } + + sign(privateKey, message) { + return schnorr.sign(privateKey, message) + } + + verify(publicKey, message, signatureToVerify) { + return schnorr.verify(publicKey, message, signatureToVerify) + } + + batchVerify(publicKeys, messages, signaturesToVerify) { + return schnorr.batchVerify(publicKeys, messages, signaturesToVerify) + } + + nonInteractive(privateKeys, message) { + return schnorr.muSig.nonInteractive(privateKeys, message) + } + + computeEll(publicKeys) { + return schnorr.muSig.computeEll(publicKeys) + } + + pubKeyCombine(publicKeys, publicKeyHash) { + return schnorr.muSig.pubKeyCombine(publicKeys, publicKeyHash) + } + + sessionInitialize(sessionId, privateKey, message, pubKeyCombined, ell, idx) { + return schnorr.muSig.sessionInitialize( + sessionId, + privateKey, + message, + pubKeyCombined, + ell, + idx + ) + } + + sessionNonceCombine(session, nonces) { + return schnorr.muSig.sessionNonceCombine(session, nonces) + } + + partialSign(session, message, nonceCombined, pubKeyCombined) { + return schnorr.muSig.partialSign( + session, + message, + nonceCombined, + pubKeyCombined + ) + } + + partialSigVerify(session, partialSig, nonceCombined, idx, pubKey, nonce) { + return schnorr.muSig.partialSigVerify( + session, + partialSig, + nonceCombined, + idx, + pubKey, + nonce + ) + } + + partialSigCombine(nonceCombined, partialSigs) { + return schnorr.muSig.partialSigCombine(nonceCombined, partialSigs) + } + + bufferToInt(buffer) { + return schnorr.convert.bufferToInt(buffer) + } + + intToBuffer(bigInteger) { + return schnorr.convert.intToBuffer(bigInteger) + } + + hash(buffer) { + return schnorr.convert.hash(buffer) + } + + pointToBuffer(point) { + return schnorr.convert.pointToBuffer(point) + } + + pubKeyToPoint(publicKey) { + return schnorr.convert.pubKeyToPoint(publicKey) + } +} + +export default Schnorr From beecaf7625f0df30d94d84daa3941b9452bdefd4 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sun, 5 May 2019 11:21:49 +0900 Subject: [PATCH 260/480] updates --- lib/Schnorr.js | 16 ++++++++-------- src/Schnorr.js | 17 ++++++++++++----- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/lib/Schnorr.js b/lib/Schnorr.js index 8843c98d..5cc626f7 100644 --- a/lib/Schnorr.js +++ b/lib/Schnorr.js @@ -47,8 +47,8 @@ var Schnorr = function () { return _bipSchnorr2.default.muSig.computeEll(publicKeys); } }, { - key: "pubKeyCombine", - value: function pubKeyCombine(publicKeys, publicKeyHash) { + key: "publicKeyCombine", + value: function publicKeyCombine(publicKeys, publicKeyHash) { return _bipSchnorr2.default.muSig.pubKeyCombine(publicKeys, publicKeyHash); } }, { @@ -67,14 +67,14 @@ var Schnorr = function () { return _bipSchnorr2.default.muSig.partialSign(session, message, nonceCombined, pubKeyCombined); } }, { - key: "partialSigVerify", - value: function partialSigVerify(session, partialSig, nonceCombined, idx, pubKey, nonce) { - return _bipSchnorr2.default.muSig.partialSigVerify(session, partialSig, nonceCombined, idx, pubKey, nonce); + key: "partialSignatureVerify", + value: function partialSignatureVerify(session, partialSignature, nonceCombined, idx, pubKey, nonce) { + return _bipSchnorr2.default.muSig.partialSigVerify(session, partialSignature, nonceCombined, idx, pubKey, nonce); } }, { - key: "partialSigCombine", - value: function partialSigCombine(nonceCombined, partialSigs) { - return _bipSchnorr2.default.muSig.partialSigCombine(nonceCombined, partialSigs); + key: "partialSignaturesCombine", + value: function partialSignaturesCombine(nonceCombined, partialSignatures) { + return _bipSchnorr2.default.muSig.partialSigCombine(nonceCombined, partialSignatures); } }, { key: "bufferToInt", diff --git a/src/Schnorr.js b/src/Schnorr.js index 5442143c..e8f8aa9e 100644 --- a/src/Schnorr.js +++ b/src/Schnorr.js @@ -25,7 +25,7 @@ class Schnorr { return schnorr.muSig.computeEll(publicKeys) } - pubKeyCombine(publicKeys, publicKeyHash) { + publicKeyCombine(publicKeys, publicKeyHash) { return schnorr.muSig.pubKeyCombine(publicKeys, publicKeyHash) } @@ -53,10 +53,17 @@ class Schnorr { ) } - partialSigVerify(session, partialSig, nonceCombined, idx, pubKey, nonce) { + partialSignatureVerify( + session, + partialSignature, + nonceCombined, + idx, + pubKey, + nonce + ) { return schnorr.muSig.partialSigVerify( session, - partialSig, + partialSignature, nonceCombined, idx, pubKey, @@ -64,8 +71,8 @@ class Schnorr { ) } - partialSigCombine(nonceCombined, partialSigs) { - return schnorr.muSig.partialSigCombine(nonceCombined, partialSigs) + partialSignaturesCombine(nonceCombined, partialSignatures) { + return schnorr.muSig.partialSigCombine(nonceCombined, partialSignatures) } bufferToInt(buffer) { From 4afd4d50a8f3df163c9ca1476432edfcee9103c0 Mon Sep 17 00:00:00 2001 From: Simon Hilchenbach Date: Sun, 5 May 2019 21:08:33 +0200 Subject: [PATCH 261/480] Added Schnorr to TransactionBuilder --- lib/TransactionBuilder.js | 7 ++++++- src/TransactionBuilder.js | 10 ++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/lib/TransactionBuilder.js b/lib/TransactionBuilder.js index ef393fed..ff4b6fd2 100644 --- a/lib/TransactionBuilder.js +++ b/lib/TransactionBuilder.js @@ -54,6 +54,10 @@ var TransactionBuilder = function () { ADVANCED_TRANSACTION_MARKER: 0x00, ADVANCED_TRANSACTION_FLAG: 0x01 }; + this.signatureAlgorithms = { + ECDSA: _bitcoincashjsLib2.default.ECSignature.ECDSA, + SCHNORR: _bitcoincashjsLib2.default.ECSignature.SCHNORR + }; this.bip66 = _bip2.default; this.bip68 = _bcBip2.default; this.p2shInput = false; @@ -105,10 +109,11 @@ var TransactionBuilder = function () { value: function sign(vin, keyPair, redeemScript) { var hashType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : this.hashTypes.SIGHASH_ALL; var value = arguments[4]; + var signatureAlgorithm = arguments[5]; var witnessScript = void 0; - this.transaction.sign(vin, keyPair, redeemScript, hashType, value, witnessScript); + this.transaction.sign(vin, keyPair, redeemScript, hashType, value, witnessScript, signatureAlgorithm); } }, { key: "build", diff --git a/src/TransactionBuilder.js b/src/TransactionBuilder.js index 63186163..01050cf2 100644 --- a/src/TransactionBuilder.js +++ b/src/TransactionBuilder.js @@ -26,6 +26,10 @@ class TransactionBuilder { ADVANCED_TRANSACTION_MARKER: 0x00, ADVANCED_TRANSACTION_FLAG: 0x01 } + this.signatureAlgorithms = { + ECDSA: Bitcoin.ECSignature.ECDSA, + SCHNORR: Bitcoin.ECSignature.SCHNORR + } this.bip66 = bip66 this.bip68 = bip68 this.p2shInput = false @@ -70,7 +74,8 @@ class TransactionBuilder { keyPair, redeemScript, hashType = this.hashTypes.SIGHASH_ALL, - value + value, + signatureAlgorithm ) { let witnessScript @@ -80,7 +85,8 @@ class TransactionBuilder { redeemScript, hashType, value, - witnessScript + witnessScript, + signatureAlgorithm ) } From d3d1591e1f7c2e0ac5be02324641b47066199e58 Mon Sep 17 00:00:00 2001 From: Simon Hilchenbach Date: Sun, 5 May 2019 21:38:56 +0200 Subject: [PATCH 262/480] Update bitcoincashjs-lib version to v4.0.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index ec633033..64d94a94 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1625,8 +1625,8 @@ "integrity": "sha512-x0wMVSCZ56ZQnSQ+Xim7XfS0IYiOyOwo0pdMCmR+cDNB7zRhICFuH5i3lNdLSgUw1e7Pc3FmUlC9wruQNlYMnA==" }, "bitcoincashjs-lib": { - "version": "github:Bitcoin-com/bitcoincashjs-lib#61ffec3878fd959d2a8a62f570a122ff801d78b6", - "from": "github:Bitcoin-com/bitcoincashjs-lib#3.4.4", + "version": "github:Bitcoin-com/bitcoincashjs-lib#3d360c780ec7df4a74aea93664c2b5ff8b08949a", + "from": "github:Bitcoin-com/bitcoincashjs-lib#v4.0.0", "requires": { "bech32": "^1.1.2", "bigi": "^1.4.0", diff --git a/package.json b/package.json index 06274691..aa9eee2d 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "bip39": "^2.5.0", "bip66": "^1.1.5", "bitcoincash-ops": "Bitcoin-com/bitcoincash-ops#2.0.0", - "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib#3.4.4", + "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib#v4.0.0", "bitcoinjs-message": "^2.0.0", "bs58": "^4.0.1", "buffer": "^5.1.0", From fc7db22348ee1b774865c8a71be7f830b7aaec72 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Mon, 6 May 2019 04:46:41 +0900 Subject: [PATCH 263/480] bump v --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index ec633033..64d94a94 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1625,8 +1625,8 @@ "integrity": "sha512-x0wMVSCZ56ZQnSQ+Xim7XfS0IYiOyOwo0pdMCmR+cDNB7zRhICFuH5i3lNdLSgUw1e7Pc3FmUlC9wruQNlYMnA==" }, "bitcoincashjs-lib": { - "version": "github:Bitcoin-com/bitcoincashjs-lib#61ffec3878fd959d2a8a62f570a122ff801d78b6", - "from": "github:Bitcoin-com/bitcoincashjs-lib#3.4.4", + "version": "github:Bitcoin-com/bitcoincashjs-lib#3d360c780ec7df4a74aea93664c2b5ff8b08949a", + "from": "github:Bitcoin-com/bitcoincashjs-lib#v4.0.0", "requires": { "bech32": "^1.1.2", "bigi": "^1.4.0", diff --git a/package.json b/package.json index 06274691..aa9eee2d 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "bip39": "^2.5.0", "bip66": "^1.1.5", "bitcoincash-ops": "Bitcoin-com/bitcoincash-ops#2.0.0", - "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib#3.4.4", + "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib#v4.0.0", "bitcoinjs-message": "^2.0.0", "bs58": "^4.0.1", "buffer": "^5.1.0", From 3ff7fcac48275189833495279838b675fcfad08f Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Mon, 6 May 2019 05:58:16 +0900 Subject: [PATCH 264/480] Bump MINOR v. --- index.js | 2 +- package-lock.json | 2 +- package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 1752d6d2..9a8138d5 100755 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOXSDK = require("./lib/BITBOX") const clone = require("git-clone") -program.version("6.0.0 ", "-v, --version") +program.version("6.1.0 ", "-v, --version") program .command("new ") diff --git a/package-lock.json b/package-lock.json index 64d94a94..52b83e8a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "6.0.0", + "version": "6.1.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index aa9eee2d..750916b1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "6.0.0", + "version": "6.1.0", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ From 0619b93aa4428e9085da043fe3e405d30e5347d6 Mon Sep 17 00:00:00 2001 From: James Cramer Date: Sun, 5 May 2019 22:00:13 -0400 Subject: [PATCH 265/480] typings update for signature algorithms --- lib/TransactionBuilder.d.ts | 9 ++++++++- typings/TransactionBuilder.d.ts | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/lib/TransactionBuilder.d.ts b/lib/TransactionBuilder.d.ts index 78545620..20e5d096 100644 --- a/lib/TransactionBuilder.d.ts +++ b/lib/TransactionBuilder.d.ts @@ -11,6 +11,7 @@ export declare interface TransactionBuilder { transaction: any DEFAULT_SEQUENCE: number hashTypes: HashTypes + signatureAlgorithms: SignatureAlgorithms bip66: any bip68: any @@ -30,11 +31,17 @@ export declare interface TransactionBuilder { keyPair: ECPair, redeemScript: Buffer | undefined, hashType: number, - value: number + value: number, + signatureAlgorithm: number ): ECSignature build(): any } +declare interface SignatureAlgorithms { + ECDSA: number + SCHNORR: number +} + declare interface HashTypes { SIGHASH_ALL: number SIGHASH_NONE: number diff --git a/typings/TransactionBuilder.d.ts b/typings/TransactionBuilder.d.ts index 78545620..20e5d096 100644 --- a/typings/TransactionBuilder.d.ts +++ b/typings/TransactionBuilder.d.ts @@ -11,6 +11,7 @@ export declare interface TransactionBuilder { transaction: any DEFAULT_SEQUENCE: number hashTypes: HashTypes + signatureAlgorithms: SignatureAlgorithms bip66: any bip68: any @@ -30,11 +31,17 @@ export declare interface TransactionBuilder { keyPair: ECPair, redeemScript: Buffer | undefined, hashType: number, - value: number + value: number, + signatureAlgorithm: number ): ECSignature build(): any } +declare interface SignatureAlgorithms { + ECDSA: number + SCHNORR: number +} + declare interface HashTypes { SIGHASH_ALL: number SIGHASH_NONE: number From ec8ae143e60edf222004171c637c6362bdf953ba Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Mon, 6 May 2019 17:38:47 +0900 Subject: [PATCH 266/480] Update typings and bump patch v --- index.js | 2 +- lib/TransactionBuilder.d.ts | 2 +- package-lock.json | 2 +- package.json | 2 +- typings/TransactionBuilder.d.ts | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/index.js b/index.js index 9a8138d5..1832d67a 100755 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOXSDK = require("./lib/BITBOX") const clone = require("git-clone") -program.version("6.1.0 ", "-v, --version") +program.version("6.1.1 ", "-v, --version") program .command("new ") diff --git a/lib/TransactionBuilder.d.ts b/lib/TransactionBuilder.d.ts index 20e5d096..6f23e15a 100644 --- a/lib/TransactionBuilder.d.ts +++ b/lib/TransactionBuilder.d.ts @@ -32,7 +32,7 @@ export declare interface TransactionBuilder { redeemScript: Buffer | undefined, hashType: number, value: number, - signatureAlgorithm: number + signatureAlgorithm?: number ): ECSignature build(): any } diff --git a/package-lock.json b/package-lock.json index 52b83e8a..25a4fae0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "6.1.0", + "version": "6.1.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 750916b1..0dee296f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "6.1.0", + "version": "6.1.1", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ diff --git a/typings/TransactionBuilder.d.ts b/typings/TransactionBuilder.d.ts index 20e5d096..6f23e15a 100644 --- a/typings/TransactionBuilder.d.ts +++ b/typings/TransactionBuilder.d.ts @@ -32,7 +32,7 @@ export declare interface TransactionBuilder { redeemScript: Buffer | undefined, hashType: number, value: number, - signatureAlgorithm: number + signatureAlgorithm?: number ): ECSignature build(): any } From 6b948ef89e8b7ef1f6b8f1cdadaaa0cf5f13f627 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 8 May 2019 08:13:25 +0900 Subject: [PATCH 267/480] Porting to .ts. --- .gitignore | 1 + gulpfile.js | 18 + index.js | 4 +- lib/Address.d.ts | 67 - lib/Address.js | 852 +- lib/BITBOX.d.ts | 45 - lib/BITBOX.js | 172 +- lib/BitcoinCash.d.ts | 35 - lib/BitcoinCash.js | 329 +- lib/Block.d.ts | 26 - lib/Block.js | 202 +- lib/Blockchain.d.ts | 105 - lib/Blockchain.js | 889 +- lib/Control.d.ts | 30 - lib/Control.js | 146 +- lib/Crypto.d.ts | 9 - lib/Crypto.js | 80 +- lib/ECPair.d.ts | 23 - lib/ECPair.js | 133 +- lib/Generating.d.ts | 4 - lib/Generating.js | 106 +- lib/HDNode.d.ts | 42 - lib/HDNode.js | 255 +- lib/Mining.d.ts | 7 - lib/Mining.js | 213 +- lib/Mnemonic.d.ts | 12 - lib/Mnemonic.js | 503 +- lib/Network.d.ts | 12 - lib/Price.d.ts | 5 - lib/Price.js | 103 +- lib/RawTransactions.d.ts | 21 - lib/RawTransactions.js | 349 +- lib/Schnorr.js | 165 +- lib/Script.d.ts | 190 - lib/Script.js | 152 +- lib/Socket.d.ts | 6 - lib/Socket.js | 82 +- lib/Transaction.d.ts | 27 - lib/Transaction.js | 140 +- lib/TransactionBuilder.d.ts | 51 - lib/TransactionBuilder.js | 201 +- lib/Util.d.ts | 16 - lib/Util.js | 136 +- lib/Wallet.js | 108 +- lib/bitbox-sdk.d.ts | 45 - lib/interfaces/BITBOXInterfaces.js | 2 + package-lock.json | 4607 ++++++---- package.json | 13 +- src/{Address.js => Address.ts} | 12 +- src/BITBOX.js | 54 - src/BITBOX.ts | 76 + src/{BitcoinCash.js => BitcoinCash.ts} | 20 +- src/{Block.js => Block.ts} | 9 +- src/{Blockchain.js => Blockchain.ts} | 7 +- src/{Control.js => Control.ts} | 7 +- src/{Crypto.js => Crypto.ts} | 8 +- src/{ECPair.js => ECPair.ts} | 8 +- src/{Generating.js => Generating.ts} | 7 +- src/{HDNode.js => HDNode.ts} | 10 +- src/{Mining.js => Mining.ts} | 6 +- src/{Mnemonic.js => Mnemonic.ts} | 10 +- src/{Price.js => Price.ts} | 6 +- ...{RawTransactions.js => RawTransactions.ts} | 7 +- src/{Schnorr.js => Schnorr.ts} | 6 +- src/{Script.js => Script.ts} | 8 +- src/{Socket.js => Socket.ts} | 6 +- src/{Transaction.js => Transaction.ts} | 8 +- ...actionBuilder.js => TransactionBuilder.ts} | 12 +- src/{Util.js => Util.ts} | 7 +- src/Wallet.js | 77 - src/Wallet.ts | 75 + src/interfaces/BITBOXInterfaces.ts | 3 + test/integration/address.js | 2 +- test/integration/block.js | 2 +- test/integration/blockchain.js | 2 +- test/integration/price.js | 2 +- test/integration/rawtransaction.js | 2 +- test/integration/transaction.js | 2 +- test/integration/util.js | 2 +- test/integration/z9-rate-limits.js | 2 +- test/unit/Address.js | 2 +- test/unit/BitcoinCash.js | 2 +- test/unit/Block.js | 2 +- test/unit/Blockchain.js | 2 +- test/unit/Control.js | 2 +- test/unit/Crypto.js | 2 +- test/unit/ECPair.js | 2 +- test/unit/Generating.js | 2 +- test/unit/HDNode.js | 2 +- test/unit/Mining.js | 2 +- test/unit/Mnemonic.js | 2 +- test/unit/Price.js | 2 +- test/unit/RawTransactions.js | 2 +- test/unit/Script.js | 2 +- test/unit/Transaction.js | 2 +- test/unit/TransactionBuilder.js | 2 +- test/unit/Util.js | 2 +- tsconfig.json | 14 + yarn.lock | 8145 +++++++++++++++++ 99 files changed, 13763 insertions(+), 5634 deletions(-) create mode 100644 gulpfile.js delete mode 100644 lib/Address.d.ts delete mode 100644 lib/BITBOX.d.ts delete mode 100644 lib/BitcoinCash.d.ts delete mode 100644 lib/Block.d.ts delete mode 100644 lib/Blockchain.d.ts delete mode 100644 lib/Control.d.ts delete mode 100644 lib/Crypto.d.ts delete mode 100644 lib/ECPair.d.ts delete mode 100644 lib/Generating.d.ts delete mode 100644 lib/HDNode.d.ts delete mode 100644 lib/Mining.d.ts delete mode 100644 lib/Mnemonic.d.ts delete mode 100644 lib/Network.d.ts delete mode 100644 lib/Price.d.ts delete mode 100644 lib/RawTransactions.d.ts delete mode 100644 lib/Script.d.ts delete mode 100644 lib/Socket.d.ts delete mode 100644 lib/Transaction.d.ts delete mode 100644 lib/TransactionBuilder.d.ts delete mode 100644 lib/Util.d.ts delete mode 100644 lib/bitbox-sdk.d.ts create mode 100644 lib/interfaces/BITBOXInterfaces.js rename src/{Address.js => Address.ts} (98%) delete mode 100644 src/BITBOX.js create mode 100644 src/BITBOX.ts rename src/{BitcoinCash.js => BitcoinCash.ts} (93%) rename src/{Block.js => Block.ts} (94%) rename src/{Blockchain.js => Blockchain.ts} (99%) rename src/{Control.js => Control.ts} (93%) rename src/{Crypto.js => Crypto.ts} (76%) rename src/{ECPair.js => ECPair.ts} (91%) rename src/{Generating.js => Generating.ts} (86%) rename src/{HDNode.js => HDNode.ts} (94%) rename src/{Mining.js => Mining.ts} (95%) rename src/{Mnemonic.js => Mnemonic.ts} (98%) rename src/{Price.js => Price.ts} (84%) rename src/{RawTransactions.js => RawTransactions.ts} (97%) rename src/{Schnorr.js => Schnorr.ts} (96%) rename src/{Script.js => Script.ts} (92%) rename src/{Socket.js => Socket.ts} (89%) rename src/{Transaction.js => Transaction.ts} (87%) rename src/{TransactionBuilder.js => TransactionBuilder.ts} (92%) rename src/{Util.js => Util.ts} (93%) delete mode 100644 src/Wallet.js create mode 100644 src/Wallet.ts create mode 100644 src/interfaces/BITBOXInterfaces.ts create mode 100644 tsconfig.json create mode 100644 yarn.lock diff --git a/.gitignore b/.gitignore index 2d6acf8b..6bfb8e49 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ node_modules/* wallet-info.txt wallet.json +package-lock.json diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 00000000..ec2e3ac1 --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,18 @@ +const gulp = require("gulp") +const fs = require("fs-extra") + +const ASSET_FILES = [ + "src/*.json", + "src/**/*.json", + "src/**/*.jade", + "src/**/*.css", + "src/**/*.png" +] + +gulp.task("build", done => { + fs.emptyDirSync("./lib") + fs.removeSync("./lib") + + gulp.src(ASSET_FILES).pipe(gulp.dest("lib")) + done() +}) diff --git a/index.js b/index.js index 1832d67a..706fdcba 100755 --- a/index.js +++ b/index.js @@ -10,7 +10,7 @@ const fs = require("fs") const touch = require("touch") const emoji = require("node-emoji") const repl = require("repl") -const BITBOXSDK = require("./lib/BITBOX") +const BITBOX = require("./lib/BITBOX").BITBOX const clone = require("git-clone") program.version("6.1.1 ", "-v, --version") @@ -154,7 +154,7 @@ program const environment = fetchOption("environment=development", config, options) - replServer.context.BITBOX = new BITBOXSDK(config.environments[environment]) + replServer.context.BITBOX = new BITBOX(config.environments[environment]) }) function fetchOption(kv, config, options) { diff --git a/lib/Address.d.ts b/lib/Address.d.ts deleted file mode 100644 index 661eecae..00000000 --- a/lib/Address.d.ts +++ /dev/null @@ -1,67 +0,0 @@ -export interface Address { - restURL: string; - //constructor(restURL: string); - toLegacyAddress(address: string): string; - toCashAddress(address: string, prefix?: boolean, regtest?: boolean): string; - toHash160(address: string): string; - hash160ToLegacy(hash160: string, network?: number): string; - hash160ToCash(hash160: string, network?: number, regtest?: boolean): string; - isLegacyAddress(address: string): boolean; - isCashAddress(address: string): boolean; - isMainnetAddress(address: string): boolean; - isTestnetAddress(address: string): boolean; - isRegTestAddress(address: string): boolean; - isP2PKHAddress(address: string): boolean; - isP2SHAddress(address: string): boolean; - detectAddressFormat(address: string): string; - detectAddressNetwork(address: string): string; - detectAddressType(address: string): string; - fromXPub(xpub: string, path?: string): string; - fromOutputScript(scriptPubKey:Buffer, network?: string): string; - details(address: string[]): Promise; - utxo(address: string[]): Promise; - unconfirmed(address: string[]): Promise; -} - -export interface AddressDetailsResult { - balance: number; - balanceSat: number; - totalReceived: number; - totalReceivedSat: number; - totalSent: number; - totalSentSat: number; - unconfirmedBalance: number; - unconfirmedBalanceSat: number; - unconfirmedTxApperances: number; - txApperances: number; - transactions: string[]; - legacyAddress: string; - cashAddress: string; -} - -export interface AddressUtxoResult { - legacyAddress: string; - cashAddress: string; - scriptPubKey: string; - utxos: - [{ - txid: string; - vout: number; - amount: number; - satoshis: number; - height: number; - confirmations: number; - }] -} - -export interface AddressUnconfirmedResult { - txid: string; - vout: number; - scriptPubKey: string; - amount: number; - satoshis: number; - confirmations: number; - ts: number; - legacyAddress: string; - cashAddress: string; -} \ No newline at end of file diff --git a/lib/Address.js b/lib/Address.js index f42a00ca..ec553141 100644 --- a/lib/Address.js +++ b/lib/Address.js @@ -1,451 +1,427 @@ "use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _axios = require("axios"); - -var _axios2 = _interopRequireDefault(_axios); - -var _bitcoincashjsLib = require("bitcoincashjs-lib"); - -var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); - -var _cashaddrjs = require("cashaddrjs"); - -var _cashaddrjs2 = _interopRequireDefault(_cashaddrjs); - -var _coininfo = require("coininfo"); - -var _coininfo2 = _interopRequireDefault(_coininfo); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var Address = function () { - function Address(restURL) { - _classCallCheck(this, Address); - - this.restURL = restURL; - } - - // Translate address from any address format into a specific format. - - - _createClass(Address, [{ - key: "toLegacyAddress", - value: function toLegacyAddress(address) { - var _decode2 = this._decode(address), - prefix = _decode2.prefix, - type = _decode2.type, - hash = _decode2.hash; - - var bitcoincash = void 0; - switch (prefix) { - case "bitcoincash": - bitcoincash = _coininfo2.default.bitcoincash.main; - break; - case "bchtest": - bitcoincash = _coininfo2.default.bitcoincash.test; - break; - case "bchreg": - bitcoincash = _coininfo2.default.bitcoincash.regtest; - break; - default: - throw "unsupported prefix : " + prefix; - } - - var version = void 0; - switch (type) { - case "P2PKH": - version = bitcoincash.versions.public; - break; - case "P2SH": - version = bitcoincash.versions.scripthash; - break; - default: - throw "unsupported address type : " + type; - } - - var hashBuf = Buffer.from(hash); - - return _bitcoincashjsLib2.default.address.toBase58Check(hashBuf, version); +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } - }, { - key: "toCashAddress", - value: function toCashAddress(address) { - var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - var regtest = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - var decoded = this._decode(address); - - var prefixString = void 0; - if (regtest) prefixString = "bchreg";else prefixString = decoded.prefix; - - var cashAddress = _cashaddrjs2.default.encode(prefixString, decoded.type, decoded.hash); - - if (prefix) return cashAddress; - return cashAddress.split(":")[1]; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var axios = require("axios"); +var Bitcoin = require("bitcoincashjs-lib"); +var cashaddr = require("cashaddrjs"); +var coininfo = require("coininfo"); +var Address = /** @class */ (function () { + function Address(restURL) { + this.restURL = restURL; } - + // Translate address from any address format into a specific format. + Address.prototype.toLegacyAddress = function (address) { + var _a = this._decode(address), prefix = _a.prefix, type = _a.type, hash = _a.hash; + var bitcoincash; + switch (prefix) { + case "bitcoincash": + bitcoincash = coininfo.bitcoincash.main; + break; + case "bchtest": + bitcoincash = coininfo.bitcoincash.test; + break; + case "bchreg": + bitcoincash = coininfo.bitcoincash.regtest; + break; + default: + throw "unsupported prefix : " + prefix; + } + var version; + switch (type) { + case "P2PKH": + version = bitcoincash.versions.public; + break; + case "P2SH": + version = bitcoincash.versions.scripthash; + break; + default: + throw "unsupported address type : " + type; + } + var hashBuf = Buffer.from(hash); + return Bitcoin.address.toBase58Check(hashBuf, version); + }; + Address.prototype.toCashAddress = function (address, prefix, regtest) { + if (prefix === void 0) { prefix = true; } + if (regtest === void 0) { regtest = false; } + var decoded = this._decode(address); + var prefixString; + if (regtest) + prefixString = "bchreg"; + else + prefixString = decoded.prefix; + var cashAddress = cashaddr.encode(prefixString, decoded.type, decoded.hash); + if (prefix) + return cashAddress; + return cashAddress.split(":")[1]; + }; // Converts any address format to hash160 - - }, { - key: "toHash160", - value: function toHash160(address) { - var legacyAddress = this.toLegacyAddress(address); - var bytes = _bitcoincashjsLib2.default.address.fromBase58Check(legacyAddress); - return bytes.hash.toString("hex"); - } - + Address.prototype.toHash160 = function (address) { + var legacyAddress = this.toLegacyAddress(address); + var bytes = Bitcoin.address.fromBase58Check(legacyAddress); + return bytes.hash.toString("hex"); + }; // Converts hash160 to Legacy Address - - }, { - key: "hash160ToLegacy", - value: function hash160ToLegacy(hash160) { - var network = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _bitcoincashjsLib2.default.networks.bitcoin.pubKeyHash; - - var buffer = Buffer.from(hash160, "hex"); - var legacyAddress = _bitcoincashjsLib2.default.address.toBase58Check(buffer, network); - return legacyAddress; - } - + Address.prototype.hash160ToLegacy = function (hash160, network) { + if (network === void 0) { network = Bitcoin.networks.bitcoin.pubKeyHash; } + var buffer = Buffer.from(hash160, "hex"); + var legacyAddress = Bitcoin.address.toBase58Check(buffer, network); + return legacyAddress; + }; // Converts hash160 to Cash Address - - }, { - key: "hash160ToCash", - value: function hash160ToCash(hash160) { - var network = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _bitcoincashjsLib2.default.networks.bitcoin.pubKeyHash; - var regtest = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - var legacyAddress = this.hash160ToLegacy(hash160, network); - return this.toCashAddress(legacyAddress, true, regtest); - } - }, { - key: "_decode", - value: function _decode(address) { - try { - return this._decodeLegacyAddress(address); - } catch (error) {} - - try { - return this._decodeCashAddress(address); - } catch (error) {} - - try { - return this._encodeAddressFromHash160(address); - } catch (error) {} - - throw new Error("Unsupported address format : " + address); - } - }, { - key: "_decodeLegacyAddress", - value: function _decodeLegacyAddress(address) { - var _Bitcoin$address$from = _bitcoincashjsLib2.default.address.fromBase58Check(address), - version = _Bitcoin$address$from.version, - hash = _Bitcoin$address$from.hash; - - var info = _coininfo2.default.bitcoincash; - - switch (version) { - case info.main.versions.public: - return { - prefix: "bitcoincash", - type: "P2PKH", - hash: hash, - format: "legacy" - }; - case info.main.versions.scripthash: - return { - prefix: "bitcoincash", - type: "P2SH", - hash: hash, - format: "legacy" - }; - case info.test.versions.public: - return { - prefix: "bchtest", - type: "P2PKH", - hash: hash, - format: "legacy" - }; - case info.test.versions.scripthash: - return { - prefix: "bchtest", - type: "P2SH", - hash: hash, - format: "legacy" - }; - default: - throw new Error("Invalid format : " + address); - } - } - }, { - key: "_decodeCashAddress", - value: function _decodeCashAddress(address) { - if (address.indexOf(":") !== -1) { - var decoded = _cashaddrjs2.default.decode(address); - decoded.format = "cashaddr"; - return decoded; - } - - var prefixes = ["bitcoincash", "bchtest", "bchreg"]; - for (var i = 0; i < prefixes.length; ++i) { + Address.prototype.hash160ToCash = function (hash160, network, regtest) { + if (network === void 0) { network = Bitcoin.networks.bitcoin.pubKeyHash; } + if (regtest === void 0) { regtest = false; } + var legacyAddress = this.hash160ToLegacy(hash160, network); + return this.toCashAddress(legacyAddress, true, regtest); + }; + Address.prototype._decode = function (address) { try { - var _decoded = _cashaddrjs2.default.decode(prefixes[i] + ":" + address); - _decoded.format = "cashaddr"; - return _decoded; - } catch (error) {} - } - - throw new Error("Invalid format : " + address); - } - }, { - key: "_encodeAddressFromHash160", - value: function _encodeAddressFromHash160(address) { - try { - return { - legacyAddress: this.hash160ToLegacy(address), - cashAddress: this.hash160ToCash(address), - format: "hash160" - }; - } catch (error) {} - - throw new Error("Invalid format : " + address); - } - + return this._decodeLegacyAddress(address); + } + catch (error) { } + try { + return this._decodeCashAddress(address); + } + catch (error) { } + try { + return this._encodeAddressFromHash160(address); + } + catch (error) { } + throw new Error("Unsupported address format : " + address); + }; + Address.prototype._decodeLegacyAddress = function (address) { + var _a = Bitcoin.address.fromBase58Check(address), version = _a.version, hash = _a.hash; + var info = coininfo.bitcoincash; + switch (version) { + case info.main.versions.public: + return { + prefix: "bitcoincash", + type: "P2PKH", + hash: hash, + format: "legacy" + }; + case info.main.versions.scripthash: + return { + prefix: "bitcoincash", + type: "P2SH", + hash: hash, + format: "legacy" + }; + case info.test.versions.public: + return { + prefix: "bchtest", + type: "P2PKH", + hash: hash, + format: "legacy" + }; + case info.test.versions.scripthash: + return { + prefix: "bchtest", + type: "P2SH", + hash: hash, + format: "legacy" + }; + default: + throw new Error("Invalid format : " + address); + } + }; + Address.prototype._decodeCashAddress = function (address) { + if (address.indexOf(":") !== -1) { + var decoded = cashaddr.decode(address); + decoded.format = "cashaddr"; + return decoded; + } + var prefixes = ["bitcoincash", "bchtest", "bchreg"]; + for (var i = 0; i < prefixes.length; ++i) { + try { + var decoded = cashaddr.decode(prefixes[i] + ":" + address); + decoded.format = "cashaddr"; + return decoded; + } + catch (error) { } + } + throw new Error("Invalid format : " + address); + }; + Address.prototype._encodeAddressFromHash160 = function (address) { + try { + return { + legacyAddress: this.hash160ToLegacy(address), + cashAddress: this.hash160ToCash(address), + format: "hash160" + }; + } + catch (error) { } + throw new Error("Invalid format : " + address); + }; // Test for address format. - - }, { - key: "isLegacyAddress", - value: function isLegacyAddress(address) { - return this.detectAddressFormat(address) === "legacy"; - } - }, { - key: "isCashAddress", - value: function isCashAddress(address) { - return this.detectAddressFormat(address) === "cashaddr"; - } - }, { - key: "isHash160", - value: function isHash160(address) { - return this.detectAddressFormat(address) === "hash160"; - } - + Address.prototype.isLegacyAddress = function (address) { + return this.detectAddressFormat(address) === "legacy"; + }; + Address.prototype.isCashAddress = function (address) { + return this.detectAddressFormat(address) === "cashaddr"; + }; + Address.prototype.isHash160 = function (address) { + return this.detectAddressFormat(address) === "hash160"; + }; // Test for address network. - - }, { - key: "isMainnetAddress", - value: function isMainnetAddress(address) { - if (address[0] === "x") return true;else if (address[0] === "t") return false; - - return this.detectAddressNetwork(address) === "mainnet"; - } - }, { - key: "isTestnetAddress", - value: function isTestnetAddress(address) { - if (address[0] === "x") return false;else if (address[0] === "t") return true; - - return this.detectAddressNetwork(address) === "testnet"; - } - }, { - key: "isRegTestAddress", - value: function isRegTestAddress(address) { - return this.detectAddressNetwork(address) === "regtest"; - } - + Address.prototype.isMainnetAddress = function (address) { + if (address[0] === "x") + return true; + else if (address[0] === "t") + return false; + return this.detectAddressNetwork(address) === "mainnet"; + }; + Address.prototype.isTestnetAddress = function (address) { + if (address[0] === "x") + return false; + else if (address[0] === "t") + return true; + return this.detectAddressNetwork(address) === "testnet"; + }; + Address.prototype.isRegTestAddress = function (address) { + return this.detectAddressNetwork(address) === "regtest"; + }; // Test for address type. - - }, { - key: "isP2PKHAddress", - value: function isP2PKHAddress(address) { - return this.detectAddressType(address) === "p2pkh"; - } - }, { - key: "isP2SHAddress", - value: function isP2SHAddress(address) { - return this.detectAddressType(address) === "p2sh"; - } - + Address.prototype.isP2PKHAddress = function (address) { + return this.detectAddressType(address) === "p2pkh"; + }; + Address.prototype.isP2SHAddress = function (address) { + return this.detectAddressType(address) === "p2sh"; + }; // Detect address format. - - }, { - key: "detectAddressFormat", - value: function detectAddressFormat(address) { - var decoded = this._decode(address); - - return decoded.format; - } - + Address.prototype.detectAddressFormat = function (address) { + var decoded = this._decode(address); + return decoded.format; + }; // Detect address network. - - }, { - key: "detectAddressNetwork", - value: function detectAddressNetwork(address) { - if (address[0] === "x") return "mainnet";else if (address[0] === "t") return "testnet"; - - var decoded = this._decode(address); - - switch (decoded.prefix) { - case "bitcoincash": - return "mainnet"; - case "bchtest": - return "testnet"; - case "bchreg": - return "regtest"; - default: - throw new Error("Invalid prefix : " + decoded.prefix); - } - } - - // Detect address type. - - }, { - key: "detectAddressType", - value: function detectAddressType(address) { - var decoded = this._decode(address); - - return decoded.type.toLowerCase(); - } - }, { - key: "fromXPub", - value: function fromXPub(xpub) { - var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "0/0"; - - var HDNode = _bitcoincashjsLib2.default.HDNode.fromBase58(xpub, _bitcoincashjsLib2.default.networks[this.detectAddressNetwork(xpub)]); - var address = HDNode.derivePath(path); - return this.toCashAddress(address.getAddress()); - } - }, { - key: "fromOutputScript", - value: function fromOutputScript(scriptPubKey) { - var network = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "mainnet"; - - var netParam = void 0; - if (network !== "bitcoincash" && network !== "mainnet") netParam = _bitcoincashjsLib2.default.networks.testnet; - - var regtest = network === "bchreg"; - - return this.toCashAddress(_bitcoincashjsLib2.default.address.fromOutputScript(scriptPubKey, netParam), true, regtest); - } - }, { - key: "details", - value: async function details(address) { - try { - // Handle single address. - if (typeof address === "string") { - var response = await _axios2.default.get(this.restURL + "address/details/" + address); - - return response.data; - - // Handle array of addresses. - } else if (Array.isArray(address)) { - var options = { - method: "POST", - url: this.restURL + "address/details", - data: { - addresses: address - } - }; - var _response = await (0, _axios2.default)(options); - - return _response.data; + Address.prototype.detectAddressNetwork = function (address) { + if (address[0] === "x") + return "mainnet"; + else if (address[0] === "t") + return "testnet"; + var decoded = this._decode(address); + switch (decoded.prefix) { + case "bitcoincash": + return "mainnet"; + case "bchtest": + return "testnet"; + case "bchreg": + return "regtest"; + default: + throw new Error("Invalid prefix : " + decoded.prefix); } - - throw new Error("Input address must be a string or array of strings."); - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }, { - key: "utxo", - value: async function utxo(address) { - try { - // Handle single address. - if (typeof address === "string") { - var response = await _axios2.default.get(this.restURL + "address/utxo/" + address); - return response.data; - } else if (Array.isArray(address)) { - var options = { - method: "POST", - url: this.restURL + "address/utxo", - data: { - addresses: address - } - }; - var _response2 = await (0, _axios2.default)(options); - - return _response2.data; - } - - throw new Error("Input address must be a string or array of strings."); - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }, { - key: "unconfirmed", - value: async function unconfirmed(address) { - try { - // Handle single address. - if (typeof address === "string") { - var response = await _axios2.default.get(this.restURL + "address/unconfirmed/" + address); - return response.data; - - // Handle an array of addresses - } else if (Array.isArray(address)) { - var options = { - method: "POST", - url: this.restURL + "address/unconfirmed", - data: { - addresses: address - } - }; - var _response3 = await (0, _axios2.default)(options); - - return _response3.data; - } - - throw new Error("Input address must be a string or array of strings."); - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }, { - key: "transactions", - value: async function transactions(address) { - try { - // Handle single address. - if (typeof address === "string") { - var response = await _axios2.default.get(this.restURL + "address/transactions/" + address); - return response.data; - - // Handle an array of addresses - } else if (Array.isArray(address)) { - var options = { - method: "POST", - url: this.restURL + "address/transactions", - data: { - addresses: address - } - }; - var _response4 = await (0, _axios2.default)(options); - - return _response4.data; - } - - throw new Error("Input address must be a string or array of strings."); - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }]); - - return Address; -}(); - -exports.default = Address; \ No newline at end of file + }; + // Detect address type. + Address.prototype.detectAddressType = function (address) { + var decoded = this._decode(address); + return decoded.type.toLowerCase(); + }; + Address.prototype.fromXPub = function (xpub, path) { + if (path === void 0) { path = "0/0"; } + var HDNode = Bitcoin.HDNode.fromBase58(xpub, Bitcoin.networks[this.detectAddressNetwork(xpub)]); + var address = HDNode.derivePath(path); + return this.toCashAddress(address.getAddress()); + }; + Address.prototype.fromOutputScript = function (scriptPubKey, network) { + if (network === void 0) { network = "mainnet"; } + var netParam; + if (network !== "bitcoincash" && network !== "mainnet") + netParam = Bitcoin.networks.testnet; + var regtest = network === "bchreg"; + return this.toCashAddress(Bitcoin.address.fromOutputScript(scriptPubKey, netParam), true, regtest); + }; + Address.prototype.details = function (address) { + return __awaiter(this, void 0, void 0, function () { + var response, options, response, error_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof address === "string")) return [3 /*break*/, 2]; + return [4 /*yield*/, axios.get(this.restURL + "address/details/" + address)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data + // Handle array of addresses. + ]; + case 2: + if (!Array.isArray(address)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "address/details", + data: { + addresses: address + } + }; + return [4 /*yield*/, axios(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input address must be a string or array of strings."); + case 5: + error_1 = _a.sent(); + if (error_1.response && error_1.response.data) + throw error_1.response.data; + else + throw error_1; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + Address.prototype.utxo = function (address) { + return __awaiter(this, void 0, void 0, function () { + var response, options, response, error_2; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof address === "string")) return [3 /*break*/, 2]; + return [4 /*yield*/, axios.get(this.restURL + "address/utxo/" + address)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + if (!Array.isArray(address)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "address/utxo", + data: { + addresses: address + } + }; + return [4 /*yield*/, axios(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input address must be a string or array of strings."); + case 5: + error_2 = _a.sent(); + if (error_2.response && error_2.response.data) + throw error_2.response.data; + else + throw error_2; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + Address.prototype.unconfirmed = function (address) { + return __awaiter(this, void 0, void 0, function () { + var response, options, response, error_3; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof address === "string")) return [3 /*break*/, 2]; + return [4 /*yield*/, axios.get(this.restURL + "address/unconfirmed/" + address)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data + // Handle an array of addresses + ]; + case 2: + if (!Array.isArray(address)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "address/unconfirmed", + data: { + addresses: address + } + }; + return [4 /*yield*/, axios(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input address must be a string or array of strings."); + case 5: + error_3 = _a.sent(); + if (error_3.response && error_3.response.data) + throw error_3.response.data; + else + throw error_3; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + Address.prototype.transactions = function (address) { + return __awaiter(this, void 0, void 0, function () { + var response, options, response, error_4; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof address === "string")) return [3 /*break*/, 2]; + return [4 /*yield*/, axios.get(this.restURL + "address/transactions/" + address)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data + // Handle an array of addresses + ]; + case 2: + if (!Array.isArray(address)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "address/transactions", + data: { + addresses: address + } + }; + return [4 /*yield*/, axios(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input address must be a string or array of strings."); + case 5: + error_4 = _a.sent(); + if (error_4.response && error_4.response.data) + throw error_4.response.data; + else + throw error_4; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + return Address; +}()); +exports.Address = Address; diff --git a/lib/BITBOX.d.ts b/lib/BITBOX.d.ts deleted file mode 100644 index 5f58ad2f..00000000 --- a/lib/BITBOX.d.ts +++ /dev/null @@ -1,45 +0,0 @@ -// local deps -import { BitcoinCash } from "./BitcoinCash" -import { Crypto } from "./Crypto" -import { Util } from "./Util" -import { Block } from "./Block" -import { Blockchain } from "./Blockchain" -import { Control } from "./Control" -import { Generating } from "./Generating" -import { Mining } from "./Mining" -import { RawTransactions } from "./RawTransactions" -import { Mnemonic } from "./Mnemonic" -import { Address } from "./Address" -import { HDNode } from "./HDNode" -import { Transaction } from "./Transaction" -import { TransactionBuilder } from "./TransactionBuilder" -import { ECPair } from "./ECPair" -import { Script } from "./Script" -import Price from "./Price" -import Socket from "./Socket" - -declare class BITBOXSDK { - constructor(config?: any) - - restURL: string - Address: Address - BitcoinCash: BitcoinCash - Block: Block - Blockchain: Blockchain - Control: Control - Generating: Generating - Mining: Mining - Crypto: Crypto - ECPair: ECPair - HDNode: HDNode - Mnemonic: Mnemonic - Price: Price - RawTransactions: RawTransactions - Script: Script - Transaction: Transaction - TransactionBuilder: TransactionBuilder - Util: Util - Socket: Socket -} - -export default BITBOXSDK diff --git a/lib/BITBOX.js b/lib/BITBOX.js index 6da72f1e..67235393 100644 --- a/lib/BITBOX.js +++ b/lib/BITBOX.js @@ -1,117 +1,57 @@ "use strict"; - -var _BitcoinCash = require("./BitcoinCash"); - -var _BitcoinCash2 = _interopRequireDefault(_BitcoinCash); - -var _Crypto = require("./Crypto"); - -var _Crypto2 = _interopRequireDefault(_Crypto); - -var _Util = require("./Util"); - -var _Util2 = _interopRequireDefault(_Util); - -var _Block = require("./Block"); - -var _Block2 = _interopRequireDefault(_Block); - -var _Blockchain = require("./Blockchain"); - -var _Blockchain2 = _interopRequireDefault(_Blockchain); - -var _Control = require("./Control"); - -var _Control2 = _interopRequireDefault(_Control); - -var _Generating = require("./Generating"); - -var _Generating2 = _interopRequireDefault(_Generating); - -var _Mining = require("./Mining"); - -var _Mining2 = _interopRequireDefault(_Mining); - -var _RawTransactions = require("./RawTransactions"); - -var _RawTransactions2 = _interopRequireDefault(_RawTransactions); - -var _Mnemonic = require("./Mnemonic"); - -var _Mnemonic2 = _interopRequireDefault(_Mnemonic); - -var _Address = require("./Address"); - -var _Address2 = _interopRequireDefault(_Address); - -var _HDNode = require("./HDNode"); - -var _HDNode2 = _interopRequireDefault(_HDNode); - -var _Transaction = require("./Transaction"); - -var _Transaction2 = _interopRequireDefault(_Transaction); - -var _TransactionBuilder = require("./TransactionBuilder"); - -var _TransactionBuilder2 = _interopRequireDefault(_TransactionBuilder); - -var _ECPair = require("./ECPair"); - -var _ECPair2 = _interopRequireDefault(_ECPair); - -var _Script = require("./Script"); - -var _Script2 = _interopRequireDefault(_Script); - -var _Price = require("./Price"); - -var _Price2 = _interopRequireDefault(_Price); - -var _Socket = require("./Socket"); - -var _Socket2 = _interopRequireDefault(_Socket); - -var _Wallet = require("./Wallet"); - -var _Wallet2 = _interopRequireDefault(_Wallet); - -var _Schnorr = require("./Schnorr"); - -var _Schnorr2 = _interopRequireDefault(_Schnorr); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } // local deps - - -var BITBOX = function BITBOX(config) { - _classCallCheck(this, BITBOX); - - if (config && config.restURL && config.restURL !== "") this.restURL = config.restURL;else this.restURL = "https://rest.bitcoin.com/v2/"; - - this.Address = new _Address2.default(this.restURL); - this.BitcoinCash = new _BitcoinCash2.default(this.Address); - this.Block = new _Block2.default(this.restURL); - this.Blockchain = new _Blockchain2.default(this.restURL); - this.Control = new _Control2.default(this.restURL); - this.Crypto = _Crypto2.default; - this.ECPair = _ECPair2.default; - this.ECPair.setAddress(this.Address); - this.Generating = new _Generating2.default(this.restURL); - this.HDNode = new _HDNode2.default(this.Address); - this.Mining = new _Mining2.default(this.restURL); - this.Mnemonic = new _Mnemonic2.default(this.Address); - this.Price = new _Price2.default(); - this.RawTransactions = new _RawTransactions2.default(this.restURL); - this.Script = new _Script2.default(); - this.Transaction = new _Transaction2.default(this.restURL); - this.TransactionBuilder = _TransactionBuilder2.default; - this.TransactionBuilder.setAddress(this.Address); - this.Util = new _Util2.default(this.restURL); - this.Socket = _Socket2.default; - this.Wallet = _Wallet2.default; - this.Schnorr = new _Schnorr2.default(this.restURL); -}; - -module.exports = BITBOX; \ No newline at end of file +Object.defineProperty(exports, "__esModule", { value: true }); +// local deps +var BitcoinCash_1 = require("./BitcoinCash"); +var Crypto_1 = require("./Crypto"); +var Util_1 = require("./Util"); +var Block_1 = require("./Block"); +var Blockchain_1 = require("./Blockchain"); +var Control_1 = require("./Control"); +var Generating_1 = require("./Generating"); +var Mining_1 = require("./Mining"); +var RawTransactions_1 = require("./RawTransactions"); +var Mnemonic_1 = require("./Mnemonic"); +var Address_1 = require("./Address"); +var HDNode_1 = require("./HDNode"); +var Transaction_1 = require("./Transaction"); +var TransactionBuilder_1 = require("./TransactionBuilder"); +var ECPair_1 = require("./ECPair"); +var Script_1 = require("./Script"); +var Price_1 = require("./Price"); +var Socket_1 = require("./Socket"); +var Wallet_1 = require("./Wallet"); +var Schnorr_1 = require("./Schnorr"); +var BITBOX = /** @class */ (function () { + function BITBOX(config) { + if (config === void 0) { config = {}; } + var restURL; + if (config && config.restURL && config.restURL !== "") + restURL = config.restURL; + else + restURL = "https://rest.bitcoin.com/v2/"; + this.Address = new Address_1.Address(restURL); + this.BitcoinCash = new BitcoinCash_1.BitcoinCash(this.Address); + this.Block = new Block_1.Block(restURL); + this.Blockchain = new Blockchain_1.Blockchain(restURL); + this.Control = new Control_1.Control(restURL); + this.Crypto = Crypto_1.Crypto; + this.ECPair = ECPair_1.ECPair; + this.ECPair.setAddress(this.Address); + this.Generating = new Generating_1.Generating(restURL); + this.HDNode = new HDNode_1.HDNode(this.Address); + this.Mining = new Mining_1.Mining(restURL); + this.Mnemonic = new Mnemonic_1.Mnemonic(this.Address); + this.Price = new Price_1.Price(); + this.RawTransactions = new RawTransactions_1.RawTransactions(restURL); + this.Script = new Script_1.Script(); + this.Transaction = new Transaction_1.Transaction(restURL); + this.TransactionBuilder = TransactionBuilder_1.TransactionBuilder; + this.TransactionBuilder.setAddress(this.Address); + this.Util = new Util_1.Util(restURL); + this.Socket = Socket_1.Socket; + this.Wallet = Wallet_1.Wallet; + this.Schnorr = new Schnorr_1.Schnorr(restURL); + } + return BITBOX; +}()); +exports.BITBOX = BITBOX; diff --git a/lib/BitcoinCash.d.ts b/lib/BitcoinCash.d.ts deleted file mode 100644 index 22fbaf5b..00000000 --- a/lib/BitcoinCash.d.ts +++ /dev/null @@ -1,35 +0,0 @@ -export declare interface BitcoinCash { - toSatoshi(coins: number): number; - toBitcoinCash(satoshis: number): number; - toBits(satoshis: number): number; - satsToBits(satoshis: number): number; - signMessageWithPrivKey(privateKeyWIF: string, message: string): string; - verifyMessage(address : string, signature: string, message: string): Boolean; - encodeBase58Check(hex: string): string; - decodeBase58Check(address: string): string; - encodeBIP21(address: string, options: EncodeBIP21Options, regtest?: boolean): string; - decodeBIP21(url: string): BIP21Object; - getByteCount(inputs: ByteCountInput|object, outputs: ByteCountOutput): number; - encryptBIP38(privKeyWIF: string, passphrase: string): string; - decryptBIP38(encryptedKey: string, passphrase: string, network?: string): string; -} - -declare interface EncodeBIP21Options { - amount?: number; - label?: string; - message?: string; -} - -declare interface BIP21Object { - address: string; - options?: EncodeBIP21Options -} - -declare interface ByteCountInput { - P2PKH?: number; -} - -declare interface ByteCountOutput { - P2PKH?: number; - P2SH?: number; -} \ No newline at end of file diff --git a/lib/BitcoinCash.js b/lib/BitcoinCash.js index 4ce73fd9..2e247035 100644 --- a/lib/BitcoinCash.js +++ b/lib/BitcoinCash.js @@ -1,90 +1,35 @@ "use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _bitcoincashjsLib = require("bitcoincashjs-lib"); - -var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); - -var _satoshiBitcoin = require("satoshi-bitcoin"); - -var _satoshiBitcoin2 = _interopRequireDefault(_satoshiBitcoin); - -var _bitcoinjsMessage = require("bitcoinjs-message"); - -var _bitcoinjsMessage2 = _interopRequireDefault(_bitcoinjsMessage); - -var _bs = require("bs58"); - -var _bs2 = _interopRequireDefault(_bs); - -var _bip = require("bip21"); - -var _bip2 = _interopRequireDefault(_bip); - -var _coininfo = require("coininfo"); - -var _coininfo2 = _interopRequireDefault(_coininfo); - -var _bip3 = require("bip38"); - -var _bip4 = _interopRequireDefault(_bip3); - -var _wif = require("wif"); - -var _wif2 = _interopRequireDefault(_wif); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - +Object.defineProperty(exports, "__esModule", { value: true }); +var Bitcoin = require("bitcoincashjs-lib"); +var sb = require("satoshi-bitcoin"); +var bitcoinMessage = require("bitcoinjs-message"); +var bs58 = require("bs58"); +var bip21 = require("bip21"); +var coininfo = require("coininfo"); +var bip38 = require("bip38"); +var wif = require("wif"); var Buffer = require("safe-buffer").Buffer; - -var BitcoinCash = function () { - function BitcoinCash(address) { - _classCallCheck(this, BitcoinCash); - - this._address = address; - } - - // Translate coins to satoshi value - - - _createClass(BitcoinCash, [{ - key: "toSatoshi", - value: function toSatoshi(coins) { - return _satoshiBitcoin2.default.toSatoshi(coins); +var BitcoinCash = /** @class */ (function () { + function BitcoinCash(address) { + this._address = address; } - + // Translate coins to satoshi value + BitcoinCash.prototype.toSatoshi = function (coins) { + return sb.toSatoshi(coins); + }; // Translate satoshi to coin value - - }, { - key: "toBitcoinCash", - value: function toBitcoinCash(satoshis) { - return _satoshiBitcoin2.default.toBitcoin(satoshis); - } - + BitcoinCash.prototype.toBitcoinCash = function (satoshis) { + return sb.toBitcoin(satoshis); + }; // Translate satoshi to bits denomination - - }, { - key: "toBits", - value: function toBits(satoshis) { - return parseFloat(satoshis) / 100; - } - + BitcoinCash.prototype.toBits = function (satoshis) { + return parseFloat(satoshis) / 100; + }; // Translate satoshi to bits denomination // TODO remove in 2.0 - - }, { - key: "satsToBits", - value: function satsToBits(satoshis) { - return parseFloat(satoshis) / 100; - } - + BitcoinCash.prototype.satsToBits = function (satoshis) { + return parseFloat(satoshis) / 100; + }; // Translate bits to satoshi denomination // TODO remove in 2.0 // fromBits(bits) { @@ -101,137 +46,105 @@ var BitcoinCash = function () { // Number(number) // type cast your input // ); // } - // sign message - - }, { - key: "signMessageWithPrivKey", - value: function signMessageWithPrivKey(privateKeyWIF, message) { - var network = privateKeyWIF.charAt(0) === "c" ? "testnet" : "mainnet"; - var bitcoincash = void 0; - if (network === "mainnet") bitcoincash = _coininfo2.default.bitcoincash.main;else bitcoincash = _coininfo2.default.bitcoincash.test; - - var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); - var keyPair = _bitcoincashjsLib2.default.ECPair.fromWIF(privateKeyWIF, bitcoincashBitcoinJSLib); - var privateKey = keyPair.d.toBuffer(32); - return _bitcoinjsMessage2.default.sign(message, privateKey, keyPair.compressed).toString("base64"); - } - + BitcoinCash.prototype.signMessageWithPrivKey = function (privateKeyWIF, message) { + var network = privateKeyWIF.charAt(0) === "c" ? "testnet" : "mainnet"; + var bitcoincash; + if (network === "mainnet") + bitcoincash = coininfo.bitcoincash.main; + else + bitcoincash = coininfo.bitcoincash.test; + var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); + var keyPair = Bitcoin.ECPair.fromWIF(privateKeyWIF, bitcoincashBitcoinJSLib); + var privateKey = keyPair.d.toBuffer(32); + return bitcoinMessage + .sign(message, privateKey, keyPair.compressed) + .toString("base64"); + }; // verify message - - }, { - key: "verifyMessage", - value: function verifyMessage(address, signature, message) { - return _bitcoinjsMessage2.default.verify(message, this._address.toLegacyAddress(address), signature); - } - + BitcoinCash.prototype.verifyMessage = function (address, signature, message) { + return bitcoinMessage.verify(message, this._address.toLegacyAddress(address), signature); + }; // encode base58Check - - }, { - key: "encodeBase58Check", - value: function encodeBase58Check(hex) { - return _bs2.default.encode(Buffer.from(hex, "hex")); - } - + BitcoinCash.prototype.encodeBase58Check = function (hex) { + return bs58.encode(Buffer.from(hex, "hex")); + }; // decode base58Check - - }, { - key: "decodeBase58Check", - value: function decodeBase58Check(address) { - return _bs2.default.decode(address).toString("hex"); - } - + BitcoinCash.prototype.decodeBase58Check = function (address) { + return bs58.decode(address).toString("hex"); + }; // encode bip21 url - - }, { - key: "encodeBIP21", - value: function encodeBIP21(address, options) { - var regtest = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - return _bip2.default.encode(this._address.toCashAddress(address, true, regtest), options); - } - + BitcoinCash.prototype.encodeBIP21 = function (address, options, regtest) { + if (regtest === void 0) { regtest = false; } + return bip21.encode(this._address.toCashAddress(address, true, regtest), options); + }; // decode bip21 url - - }, { - key: "decodeBIP21", - value: function decodeBIP21(url) { - return _bip2.default.decode(url); - } - }, { - key: "getByteCount", - value: function getByteCount(inputs, outputs) { - // from https://github.com/bitcoinjs/bitcoinjs-lib/issues/921#issuecomment-354394004 - var totalWeight = 0; - var hasWitness = false; - // assumes compressed pubkeys in all cases. - var types = { - inputs: { - "MULTISIG-P2SH": 49 * 4, - "MULTISIG-P2WSH": 6 + 41 * 4, - "MULTISIG-P2SH-P2WSH": 6 + 76 * 4, - P2PKH: 148 * 4, - P2WPKH: 108 + 41 * 4, - "P2SH-P2WPKH": 108 + 64 * 4 - }, - outputs: { - P2SH: 32 * 4, - P2PKH: 34 * 4, - P2WPKH: 31 * 4, - P2WSH: 43 * 4 - } - }; - - Object.keys(inputs).forEach(function (key) { - if (key.slice(0, 8) === "MULTISIG") { - // ex. "MULTISIG-P2SH:2-3" would mean 2 of 3 P2SH MULTISIG - var keyParts = key.split(":"); - if (keyParts.length !== 2) throw new Error("invalid input: " + key); - var newKey = keyParts[0]; - var mAndN = keyParts[1].split("-").map(function (item) { - return parseInt(item); - }); - - totalWeight += types.inputs[newKey] * inputs[key]; - var multiplyer = newKey === "MULTISIG-P2SH" ? 4 : 1; - totalWeight += (73 * mAndN[0] + 34 * mAndN[1]) * multiplyer; - } else { - totalWeight += types.inputs[key] * inputs[key]; - } - if (key.indexOf("W") >= 0) hasWitness = true; - }); - - Object.keys(outputs).forEach(function (key) { - totalWeight += types.outputs[key] * outputs[key]; - }); - - if (hasWitness) totalWeight += 2; - - totalWeight += 10 * 4; - - return Math.ceil(totalWeight / 4); - } - }, { - key: "encryptBIP38", - value: function encryptBIP38(privKeyWIF, passphrase) { - var decoded = _wif2.default.decode(privKeyWIF); - - return _bip4.default.encrypt(decoded.privateKey, decoded.compressed, passphrase); - } - }, { - key: "decryptBIP38", - value: function decryptBIP38(encryptedKey, passphrase) { - var network = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "mainnet"; - - var decryptedKey = _bip4.default.decrypt(encryptedKey, passphrase); - var prefix = void 0; - if (network === "testnet") prefix = 0xef;else prefix = 0x80; - - return _wif2.default.encode(prefix, decryptedKey.privateKey, decryptedKey.compressed); - } - }]); - - return BitcoinCash; -}(); - -exports.default = BitcoinCash; \ No newline at end of file + BitcoinCash.prototype.decodeBIP21 = function (url) { + return bip21.decode(url); + }; + BitcoinCash.prototype.getByteCount = function (inputs, outputs) { + // from https://github.com/bitcoinjs/bitcoinjs-lib/issues/921#issuecomment-354394004 + var totalWeight = 0; + var hasWitness = false; + // assumes compressed pubkeys in all cases. + var types = { + inputs: { + "MULTISIG-P2SH": 49 * 4, + "MULTISIG-P2WSH": 6 + 41 * 4, + "MULTISIG-P2SH-P2WSH": 6 + 76 * 4, + P2PKH: 148 * 4, + P2WPKH: 108 + 41 * 4, + "P2SH-P2WPKH": 108 + 64 * 4 + }, + outputs: { + P2SH: 32 * 4, + P2PKH: 34 * 4, + P2WPKH: 31 * 4, + P2WSH: 43 * 4 + } + }; + Object.keys(inputs).forEach(function (key) { + if (key.slice(0, 8) === "MULTISIG") { + // ex. "MULTISIG-P2SH:2-3" would mean 2 of 3 P2SH MULTISIG + var keyParts = key.split(":"); + if (keyParts.length !== 2) + throw new Error("invalid input: " + key); + var newKey = keyParts[0]; + var mAndN = keyParts[1].split("-").map(function (item) { + return parseInt(item); + }); + totalWeight += types.inputs[newKey] * inputs[key]; + var multiplyer = newKey === "MULTISIG-P2SH" ? 4 : 1; + totalWeight += (73 * mAndN[0] + 34 * mAndN[1]) * multiplyer; + } + else { + totalWeight += types.inputs[key] * inputs[key]; + } + if (key.indexOf("W") >= 0) + hasWitness = true; + }); + Object.keys(outputs).forEach(function (key) { + totalWeight += types.outputs[key] * outputs[key]; + }); + if (hasWitness) + totalWeight += 2; + totalWeight += 10 * 4; + return Math.ceil(totalWeight / 4); + }; + BitcoinCash.prototype.encryptBIP38 = function (privKeyWIF, passphrase) { + var decoded = wif.decode(privKeyWIF); + return bip38.encrypt(decoded.privateKey, decoded.compressed, passphrase); + }; + BitcoinCash.prototype.decryptBIP38 = function (encryptedKey, passphrase, network) { + if (network === void 0) { network = "mainnet"; } + var decryptedKey = bip38.decrypt(encryptedKey, passphrase); + var prefix; + if (network === "testnet") + prefix = 0xef; + else + prefix = 0x80; + return wif.encode(prefix, decryptedKey.privateKey, decryptedKey.compressed); + }; + return BitcoinCash; +}()); +exports.BitcoinCash = BitcoinCash; diff --git a/lib/Block.d.ts b/lib/Block.d.ts deleted file mode 100644 index a5e45062..00000000 --- a/lib/Block.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -export declare interface Block { - //constructor(restURL: string); - details(id: number): Promise; -} - -export declare interface BlockDetails { - hash: string; - size: number; - height: number; - version: number; - merkleroot: string; - tx: string[]; - time: number; - mediantime?: number; - nonce: number; - bits: string; - difficulty: number; - chainwork: string; - confirmations: number; - previousblockhash: string; - nextblockhash: string; - reward: number; - isMainChain: boolean; - poolInfo: object; -} - diff --git a/lib/Block.js b/lib/Block.js index 121cc054..9f4a1505 100644 --- a/lib/Block.js +++ b/lib/Block.js @@ -1,85 +1,125 @@ "use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _axios = require("axios"); - -var _axios2 = _interopRequireDefault(_axios); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var Block = function () { - function Block(restURL) { - _classCallCheck(this, Block); - - this.restURL = restURL; - } - - _createClass(Block, [{ - key: "detailsByHeight", - value: async function detailsByHeight(id) { - try { - // Single block - if (typeof id === "number") { - var response = await _axios2.default.get(this.restURL + "block/detailsByHeight/" + id); - return response.data; - - // Array of blocks. - } else if (Array.isArray(id)) { - var options = { - method: "POST", - url: this.restURL + "block/detailsByHeight", - data: { - heights: id +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; } - }; - var _response = await (0, _axios2.default)(options); - - return _response.data; - } - - throw new Error("Input must be a number or array of numbers."); - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } - }, { - key: "detailsByHash", - value: async function detailsByHash(hash) { - try { - // Single block - if (typeof hash === "string") { - var response = await _axios2.default.get(this.restURL + "block/detailsByHash/" + hash); - return response.data; - - // Array of hashes. - } else if (Array.isArray(hash)) { - var options = { - method: "POST", - url: this.restURL + "block/detailsByHash", - data: { - hashes: hash - } - }; - var _response2 = await (0, _axios2.default)(options); - - return _response2.data; - } - - throw new Error("Input must be a string or array of strings."); - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var axios = require("axios"); +var Block = /** @class */ (function () { + function Block(restURL) { + this.restURL = restURL; } - }]); - - return Block; -}(); - -exports.default = Block; \ No newline at end of file + Block.prototype.detailsByHeight = function (id) { + return __awaiter(this, void 0, void 0, function () { + var response, options, response, error_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof id === "number")) return [3 /*break*/, 2]; + return [4 /*yield*/, axios.get(this.restURL + "block/detailsByHeight/" + id)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data + // Array of blocks. + ]; + case 2: + if (!Array.isArray(id)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "block/detailsByHeight", + data: { + heights: id + } + }; + return [4 /*yield*/, axios(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input must be a number or array of numbers."); + case 5: + error_1 = _a.sent(); + if (error_1.response && error_1.response.data) + throw error_1.response.data; + else + throw error_1; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + Block.prototype.detailsByHash = function (hash) { + return __awaiter(this, void 0, void 0, function () { + var response, options, response, error_2; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof hash === "string")) return [3 /*break*/, 2]; + return [4 /*yield*/, axios.get(this.restURL + "block/detailsByHash/" + hash)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data + // Array of hashes. + ]; + case 2: + if (!Array.isArray(hash)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "block/detailsByHash", + data: { + hashes: hash + } + }; + return [4 /*yield*/, axios(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input must be a string or array of strings."); + case 5: + error_2 = _a.sent(); + if (error_2.response && error_2.response.data) + throw error_2.response.data; + else + throw error_2; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + return Block; +}()); +exports.Block = Block; diff --git a/lib/Blockchain.d.ts b/lib/Blockchain.d.ts deleted file mode 100644 index 8968e143..00000000 --- a/lib/Blockchain.d.ts +++ /dev/null @@ -1,105 +0,0 @@ -import { BlockDetails } from './Block'; - -export declare interface Blockchain { - //constructor(restURL:string); - getBestBlockHash(): Promise; - getBlock(blockhash: string, verbose?: boolean):Promise; - getBlockchainInfo(): Promise; - getBlockCount(): Promise; - getBlockHash(height: number): Promise; - getBlockHeader(hash: string, verbose?: boolean): Promise; - getChainTips(): Promise; - getDifficulty(): Promise; - getMempoolAncestors(txid: string, verbose?: boolean): Promise; - getMempoolDescendants(txid: string, verbose?: boolean): Promise; - getMempoolEntry(txid:string): Promise; - getMempoolInfo(): Promise; - getRawMempool(verbose?:boolean): Promise; - getTxOut(txid:string, n:number, include_mempool?: boolean): Promise; - getTxOutProof(txids:string, blockhash:string): Promise; - preciousBlock(blockhash:string): Promise; - pruneBlockchain(height:number): Promise; - verifyChain(checklevel?:number, nblocks?:number): Promise; - verifyTxOutProof(proof:string): Promise; -} - -export interface MempoolInfo { - size: number; - bytes: number; - usage: number; - maxmempool: number; - mempoolminfee: number; -} - -export interface BlockchainInfo { - chain: string; - blocks: number; - headers: number; - bestblockhash: string; - difficulty: number; - mediantime: number; - verificationprogress: number; - chainwork: string; - pruned: boolean; - softforks: object[] - bip9_softforks: object; -} - -export interface BlockHeader { - hash: string; - confirmations: number; - height: number; - version: number; - versionHex: string; - merkleroot: string; - time: number; - mediantime: number; - nonce: number; - bits: string; - difficulty: number; - chainwork: string; - previousblockhash: string; - nextblockhash: string; -} - -export interface ChainTip { - height:number; - hash: string; - branchlen: number; - status: string; -} - -export interface TxOut { - bestblock: string, - confirmations: number, - value: number, - scriptPubKey: { - asm: string, - hex: string, - reqSigs: number, - type: string, - addresses: string[] - }, - version: number, - coinbase: boolean -} - -//export interface RawMempoolTxn { - - // [ {'2ae541af20db6f2b50410f418af56e349d08877d685f6cf54df54658e892db7a': - // { size: 237, - // fee: 0.00000238, - // modifiedfee: 0.00000238, - // time: 1525732015, - // height: 529235, - // startingpriority: 0, - // currentpriority: 0, - // descendantcount: 10, - // descendantsize: 2376, - // descendantfees: 2380, - // ancestorcount: 3, - // ancestorsize: 712, - // ancestorfees: 714, - // depends: - // [ 'e25682caafc7000645d59f4c11d8d594b2943979b9d8fafb9f946e2b35c21b7e' ] },] -//} \ No newline at end of file diff --git a/lib/Blockchain.js b/lib/Blockchain.js index aa36d5e3..ff71214e 100644 --- a/lib/Blockchain.js +++ b/lib/Blockchain.js @@ -1,322 +1,575 @@ "use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /* - TODO - - Add blockhash functionality back into getTxOutProof - */ - -var _axios = require("axios"); - -var _axios2 = _interopRequireDefault(_axios); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var Blockchain = function () { - function Blockchain(restURL) { - _classCallCheck(this, Blockchain); - - this.restURL = restURL; - } - - _createClass(Blockchain, [{ - key: "getBestBlockHash", - value: async function getBestBlockHash() { - try { - var response = await _axios2.default.get(this.restURL + "blockchain/getBestBlockHash"); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }, { - key: "getBlock", - value: async function getBlock(blockhash) { - var verbose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - - try { - var response = await _axios2.default.get(this.restURL + "blockchain/getBlock/" + blockhash + "?verbose=" + verbose); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }, { - key: "getBlockchainInfo", - value: async function getBlockchainInfo() { - try { - var response = await _axios2.default.get(this.restURL + "blockchain/getBlockchainInfo"); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }, { - key: "getBlockCount", - value: async function getBlockCount() { - try { - var response = await _axios2.default.get(this.restURL + "blockchain/getBlockCount"); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }, { - key: "getBlockHash", - value: async function getBlockHash() { - var height = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; - - if (typeof height !== "string") height = JSON.stringify(height); - - try { - var response = await _axios2.default.get(this.restURL + "blockchain/getBlockHash/" + height); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }, { - key: "getBlockHeader", - value: async function getBlockHeader(hash) { - var verbose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - - try { - // Handle single hash. - if (typeof hash === "string") { - var response = await _axios2.default.get(this.restURL + "blockchain/getBlockHeader/" + hash + "?verbose=" + verbose); - - return response.data; - - // Handle array of hashes. - } else if (Array.isArray(hash)) { - var options = { - method: "POST", - url: this.restURL + "blockchain/getBlockHeader", - data: { - hashes: hash, - verbose: verbose - } - }; - var _response = await (0, _axios2.default)(options); - - return _response.data; - } - - throw new Error("Input hash must be a string or array of strings."); - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }, { - key: "getChainTips", - value: async function getChainTips() { - try { - var response = await _axios2.default.get(this.restURL + "blockchain/getChainTips"); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }, { - key: "getDifficulty", - value: async function getDifficulty() { - try { - var response = await _axios2.default.get(this.restURL + "blockchain/getDifficulty"); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }, { - key: "getMempoolAncestors", - value: async function getMempoolAncestors(txid) { - var verbose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - - if (typeof txid !== "string") txid = JSON.stringify(txid); - - try { - var response = await _axios2.default.get(this.restURL + "blockchain/getMempoolAncestors/" + txid + "?verbose=" + verbose); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }, { - key: "getMempoolDescendants", - value: async function getMempoolDescendants(txid) { - var verbose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - - if (typeof txid !== "string") txid = JSON.stringify(txid); - - try { - var response = await _axios2.default.get(this.restURL + "blockchain/getMempoolDescendants/" + txid + "?verbose=" + verbose); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }, { - key: "getMempoolEntry", - value: async function getMempoolEntry(txid) { - //if (typeof txid !== "string") txid = JSON.stringify(txid) - - try { - if (typeof txid === "string") { - var response = await _axios2.default.get(this.restURL + "blockchain/getMempoolEntry/" + txid); - - return response.data; - } else if (Array.isArray(txid)) { - var options = { - method: "POST", - url: this.restURL + "blockchain/getMempoolEntry", - data: { - txids: txid - } - }; - var _response2 = await (0, _axios2.default)(options); - - return _response2.data; - } - - throw new Error("Input must be a string or array of strings."); - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }, { - key: "getMempoolInfo", - value: async function getMempoolInfo() { - try { - var response = await _axios2.default.get(this.restURL + "blockchain/getMempoolInfo"); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }, { - key: "getRawMempool", - value: async function getRawMempool() { - var verbose = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - - try { - var response = await _axios2.default.get(this.restURL + "blockchain/getRawMempool?vebose=" + verbose); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }, { - key: "getTxOut", - value: async function getTxOut(txid, n) { - var include_mempool = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; - - try { - var response = await _axios2.default.get(this.restURL + "blockchain/getTxOut/" + txid + "/n?include_mempool=" + include_mempool); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }, { - key: "getTxOutProof", - value: async function getTxOutProof(txids) { - try { - // Single txid. - if (typeof txids === "string") { - var path = this.restURL + "blockchain/getTxOutProof/" + txids; - //if (blockhash) path = `${path}?blockhash=${blockhash}` - - var response = await _axios2.default.get(path); - return response.data; - - // Array of txids. - } else if (Array.isArray(txids)) { - var options = { - method: "POST", - url: this.restURL + "blockchain/getTxOutProof", - data: { - txids: txids +/* + TODO + - Add blockhash functionality back into getTxOutProof +*/ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; } - }; - var _response3 = await (0, _axios2.default)(options); - - return _response3.data; - } - - throw new Error("Input must be a string or array of strings."); - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }, { - key: "preciousBlock", - value: async function preciousBlock(blockhash) { - try { - var response = await _axios2.default.get(this.restURL + "blockchain/preciousBlock/" + blockhash); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }, { - key: "pruneBlockchain", - value: async function pruneBlockchain(height) { - try { - var response = await _axios2.default.post(this.restURL + "blockchain/pruneBlockchain/" + height); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } - }, { - key: "verifyChain", - value: async function verifyChain() { - var checklevel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 3; - var nblocks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6; - - try { - var response = await _axios2.default.get(this.restURL + "blockchain/verifyChain?checklevel=" + checklevel + "&nblocks=" + nblocks); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }, { - key: "verifyTxOutProof", - value: async function verifyTxOutProof(proof) { - try { - // Single block - if (typeof proof === "string") { - var response = await _axios2.default.get(this.restURL + "blockchain/verifyTxOutProof/" + proof); - return response.data; - - // Array of hashes. - } else if (Array.isArray(proof)) { - var options = { - method: "POST", - url: this.restURL + "blockchain/verifyTxOutProof", - data: { - proofs: proof - } - }; - var _response4 = await (0, _axios2.default)(options); - - return _response4.data; - } - - throw new Error("Input must be a string or array of strings."); - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var axios = require("axios"); +var Blockchain = /** @class */ (function () { + function Blockchain(restURL) { + this.restURL = restURL; } - }]); - - return Blockchain; -}(); - -exports.default = Blockchain; \ No newline at end of file + Blockchain.prototype.getBestBlockHash = function () { + return __awaiter(this, void 0, void 0, function () { + var response, error_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios.get(this.restURL + "blockchain/getBestBlockHash")]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_1 = _a.sent(); + if (error_1.response && error_1.response.data) + throw error_1.response.data; + else + throw error_1; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.getBlock = function (blockhash, verbose) { + if (verbose === void 0) { verbose = true; } + return __awaiter(this, void 0, void 0, function () { + var response, error_2; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios.get(this.restURL + "blockchain/getBlock/" + blockhash + "?verbose=" + verbose)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_2 = _a.sent(); + if (error_2.response && error_2.response.data) + throw error_2.response.data; + else + throw error_2; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.getBlockchainInfo = function () { + return __awaiter(this, void 0, void 0, function () { + var response, error_3; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios.get(this.restURL + "blockchain/getBlockchainInfo")]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_3 = _a.sent(); + if (error_3.response && error_3.response.data) + throw error_3.response.data; + else + throw error_3; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.getBlockCount = function () { + return __awaiter(this, void 0, void 0, function () { + var response, error_4; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios.get(this.restURL + "blockchain/getBlockCount")]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_4 = _a.sent(); + if (error_4.response && error_4.response.data) + throw error_4.response.data; + else + throw error_4; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.getBlockHash = function (height) { + if (height === void 0) { height = 1; } + return __awaiter(this, void 0, void 0, function () { + var response, error_5; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (typeof height !== "string") + height = JSON.stringify(height); + _a.label = 1; + case 1: + _a.trys.push([1, 3, , 4]); + return [4 /*yield*/, axios.get(this.restURL + "blockchain/getBlockHash/" + height)]; + case 2: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 3: + error_5 = _a.sent(); + if (error_5.response && error_5.response.data) + throw error_5.response.data; + else + throw error_5; + return [3 /*break*/, 4]; + case 4: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.getBlockHeader = function (hash, verbose) { + if (verbose === void 0) { verbose = true; } + return __awaiter(this, void 0, void 0, function () { + var response, options, response, error_6; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof hash === "string")) return [3 /*break*/, 2]; + return [4 /*yield*/, axios.get(this.restURL + "blockchain/getBlockHeader/" + hash + "?verbose=" + verbose)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data + // Handle array of hashes. + ]; + case 2: + if (!Array.isArray(hash)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "blockchain/getBlockHeader", + data: { + hashes: hash, + verbose: verbose + } + }; + return [4 /*yield*/, axios(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input hash must be a string or array of strings."); + case 5: + error_6 = _a.sent(); + if (error_6.response && error_6.response.data) + throw error_6.response.data; + else + throw error_6; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.getChainTips = function () { + return __awaiter(this, void 0, void 0, function () { + var response, error_7; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios.get(this.restURL + "blockchain/getChainTips")]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_7 = _a.sent(); + if (error_7.response && error_7.response.data) + throw error_7.response.data; + else + throw error_7; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.getDifficulty = function () { + return __awaiter(this, void 0, void 0, function () { + var response, error_8; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios.get(this.restURL + "blockchain/getDifficulty")]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_8 = _a.sent(); + if (error_8.response && error_8.response.data) + throw error_8.response.data; + else + throw error_8; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.getMempoolAncestors = function (txid, verbose) { + if (verbose === void 0) { verbose = false; } + return __awaiter(this, void 0, void 0, function () { + var response, error_9; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (typeof txid !== "string") + txid = JSON.stringify(txid); + _a.label = 1; + case 1: + _a.trys.push([1, 3, , 4]); + return [4 /*yield*/, axios.get(this.restURL + "blockchain/getMempoolAncestors/" + txid + "?verbose=" + verbose)]; + case 2: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 3: + error_9 = _a.sent(); + if (error_9.response && error_9.response.data) + throw error_9.response.data; + else + throw error_9; + return [3 /*break*/, 4]; + case 4: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.getMempoolDescendants = function (txid, verbose) { + if (verbose === void 0) { verbose = false; } + return __awaiter(this, void 0, void 0, function () { + var response, error_10; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (typeof txid !== "string") + txid = JSON.stringify(txid); + _a.label = 1; + case 1: + _a.trys.push([1, 3, , 4]); + return [4 /*yield*/, axios.get(this.restURL + "blockchain/getMempoolDescendants/" + txid + "?verbose=" + verbose)]; + case 2: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 3: + error_10 = _a.sent(); + if (error_10.response && error_10.response.data) + throw error_10.response.data; + else + throw error_10; + return [3 /*break*/, 4]; + case 4: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.getMempoolEntry = function (txid) { + return __awaiter(this, void 0, void 0, function () { + var response, options, response, error_11; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof txid === "string")) return [3 /*break*/, 2]; + return [4 /*yield*/, axios.get(this.restURL + "blockchain/getMempoolEntry/" + txid)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + if (!Array.isArray(txid)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "blockchain/getMempoolEntry", + data: { + txids: txid + } + }; + return [4 /*yield*/, axios(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input must be a string or array of strings."); + case 5: + error_11 = _a.sent(); + if (error_11.response && error_11.response.data) + throw error_11.response.data; + else + throw error_11; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.getMempoolInfo = function () { + return __awaiter(this, void 0, void 0, function () { + var response, error_12; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios.get(this.restURL + "blockchain/getMempoolInfo")]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_12 = _a.sent(); + if (error_12.response && error_12.response.data) + throw error_12.response.data; + else + throw error_12; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.getRawMempool = function (verbose) { + if (verbose === void 0) { verbose = false; } + return __awaiter(this, void 0, void 0, function () { + var response, error_13; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios.get(this.restURL + "blockchain/getRawMempool?vebose=" + verbose)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_13 = _a.sent(); + if (error_13.response && error_13.response.data) + throw error_13.response.data; + else + throw error_13; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.getTxOut = function (txid, n, include_mempool) { + if (include_mempool === void 0) { include_mempool = true; } + return __awaiter(this, void 0, void 0, function () { + var response, error_14; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios.get(this.restURL + "blockchain/getTxOut/" + txid + "/n?include_mempool=" + include_mempool)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_14 = _a.sent(); + if (error_14.response && error_14.response.data) + throw error_14.response.data; + else + throw error_14; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.getTxOutProof = function (txids) { + return __awaiter(this, void 0, void 0, function () { + var path, response, options, response, error_15; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof txids === "string")) return [3 /*break*/, 2]; + path = this.restURL + "blockchain/getTxOutProof/" + txids; + return [4 /*yield*/, axios.get(path)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data + // Array of txids. + ]; + case 2: + if (!Array.isArray(txids)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "blockchain/getTxOutProof", + data: { + txids: txids + } + }; + return [4 /*yield*/, axios(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input must be a string or array of strings."); + case 5: + error_15 = _a.sent(); + if (error_15.response && error_15.response.data) + throw error_15.response.data; + else + throw error_15; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.preciousBlock = function (blockhash) { + return __awaiter(this, void 0, void 0, function () { + var response, error_16; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios.get(this.restURL + "blockchain/preciousBlock/" + blockhash)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_16 = _a.sent(); + if (error_16.response && error_16.response.data) + throw error_16.response.data; + else + throw error_16; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.pruneBlockchain = function (height) { + return __awaiter(this, void 0, void 0, function () { + var response, error_17; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios.post(this.restURL + "blockchain/pruneBlockchain/" + height)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_17 = _a.sent(); + if (error_17.response && error_17.response.data) + throw error_17.response.data; + else + throw error_17; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.verifyChain = function (checklevel, nblocks) { + if (checklevel === void 0) { checklevel = 3; } + if (nblocks === void 0) { nblocks = 6; } + return __awaiter(this, void 0, void 0, function () { + var response, error_18; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios.get(this.restURL + "blockchain/verifyChain?checklevel=" + checklevel + "&nblocks=" + nblocks)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_18 = _a.sent(); + if (error_18.response && error_18.response.data) + throw error_18.response.data; + else + throw error_18; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.verifyTxOutProof = function (proof) { + return __awaiter(this, void 0, void 0, function () { + var response, options, response, error_19; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof proof === "string")) return [3 /*break*/, 2]; + return [4 /*yield*/, axios.get(this.restURL + "blockchain/verifyTxOutProof/" + proof)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data + // Array of hashes. + ]; + case 2: + if (!Array.isArray(proof)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "blockchain/verifyTxOutProof", + data: { + proofs: proof + } + }; + return [4 /*yield*/, axios(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input must be a string or array of strings."); + case 5: + error_19 = _a.sent(); + if (error_19.response && error_19.response.data) + throw error_19.response.data; + else + throw error_19; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + return Blockchain; +}()); +exports.Blockchain = Blockchain; diff --git a/lib/Control.d.ts b/lib/Control.d.ts deleted file mode 100644 index 3aa39ff8..00000000 --- a/lib/Control.d.ts +++ /dev/null @@ -1,30 +0,0 @@ -export declare interface Control { - //constructor(restURL:string); - getInfo(): Promise; - getMemoryInfo():Promise; -} - -declare interface NodeInfo { - version: number; - protocolversion: number; - blocks: number; - timeoffset: number; - connections: number; - proxy: string; - difficulty: number; - testnet: boolean; - paytxfee: number; - relayfee: number; - errors: string; -} - -declare interface NodeMemoryInfo { - locked: { - used: number, - free: number, - total: number, - locked: number, - chunks_used: number, - chunks_free: number - } -} \ No newline at end of file diff --git a/lib/Control.js b/lib/Control.js index 604cf5d6..81a9fcaf 100644 --- a/lib/Control.js +++ b/lib/Control.js @@ -1,61 +1,91 @@ "use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _axios = require("axios"); - -var _axios2 = _interopRequireDefault(_axios); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var Control = function () { - function Control(restURL) { - _classCallCheck(this, Control); - - this.restURL = restURL; - } - - _createClass(Control, [{ - key: "getInfo", - value: async function getInfo() { - try { - var response = await _axios2.default.get(this.restURL + "control/getInfo"); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } - }, { - key: "getMemoryInfo", - value: async function getMemoryInfo() { - try { - var response = await _axios2.default.get(this.restURL + "control/getMemoryInfo"); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var axios = require("axios"); +var Control = /** @class */ (function () { + function Control(restURL) { + this.restURL = restURL; } - // - // stop() { - // // Stop Bitcoin Cash server. - // return axios.post(`${this.restURL}control/stop`) - // .then((response) => { - // return response.data; - // }) - // .catch((error) => { - // return JSON.stringify(error.response.data.error.message); - // }); - // } - - }]); - - return Control; -}(); - -exports.default = Control; \ No newline at end of file + Control.prototype.getInfo = function () { + return __awaiter(this, void 0, void 0, function () { + var response, error_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios.get(this.restURL + "control/getInfo")]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_1 = _a.sent(); + if (error_1.response && error_1.response.data) + throw error_1.response.data; + else + throw error_1; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Control.prototype.getMemoryInfo = function () { + return __awaiter(this, void 0, void 0, function () { + var response, error_2; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios.get(this.restURL + "control/getMemoryInfo")]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_2 = _a.sent(); + if (error_2.response && error_2.response.data) + throw error_2.response.data; + else + throw error_2; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + return Control; +}()); +exports.Control = Control; diff --git a/lib/Crypto.d.ts b/lib/Crypto.d.ts deleted file mode 100644 index d181e9f5..00000000 --- a/lib/Crypto.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import {Buffer} from 'buffer'; - -export declare interface Crypto { - sha256(buffer: Buffer): Buffer; - ripemd160(buffer: Buffer): Buffer; - hash256(buffer: Buffer): Buffer; - hash160(buffer: Buffer): Buffer; - randomBytes(size: number): Buffer; -} \ No newline at end of file diff --git a/lib/Crypto.js b/lib/Crypto.js index c0b0210f..55cf96ad 100644 --- a/lib/Crypto.js +++ b/lib/Crypto.js @@ -1,58 +1,26 @@ "use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _randombytes = require("randombytes"); - -var _randombytes2 = _interopRequireDefault(_randombytes); - -var _bitcoincashjsLib = require("bitcoincashjs-lib"); - -var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var Crypto = function () { - function Crypto() { - _classCallCheck(this, Crypto); - } - - _createClass(Crypto, null, [{ - key: "sha256", - value: function sha256(buffer) { - return _bitcoincashjsLib2.default.crypto.sha256(buffer); +Object.defineProperty(exports, "__esModule", { value: true }); +var randomBytes = require("randombytes"); +var Bitcoin = require("bitcoincashjs-lib"); +var Crypto = /** @class */ (function () { + function Crypto() { } - }, { - key: "ripemd160", - value: function ripemd160(buffer) { - return _bitcoincashjsLib2.default.crypto.ripemd160(buffer); - } - }, { - key: "hash256", - value: function hash256(buffer) { - return _bitcoincashjsLib2.default.crypto.hash256(buffer); - } - }, { - key: "hash160", - value: function hash160(buffer) { - return _bitcoincashjsLib2.default.crypto.hash160(buffer); - } - }, { - key: "randomBytes", - value: function randomBytes() { - var size = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 16; - - return (0, _randombytes2.default)(size); - } - }]); - - return Crypto; -}(); - -exports.default = Crypto; \ No newline at end of file + Crypto.sha256 = function (buffer) { + return Bitcoin.crypto.sha256(buffer); + }; + Crypto.ripemd160 = function (buffer) { + return Bitcoin.crypto.ripemd160(buffer); + }; + Crypto.hash256 = function (buffer) { + return Bitcoin.crypto.hash256(buffer); + }; + Crypto.hash160 = function (buffer) { + return Bitcoin.crypto.hash160(buffer); + }; + Crypto.randomBytes = function (size) { + if (size === void 0) { size = 16; } + return randomBytes(size); + }; + return Crypto; +}()); +exports.Crypto = Crypto; diff --git a/lib/ECPair.d.ts b/lib/ECPair.d.ts deleted file mode 100644 index 9cbba8dd..00000000 --- a/lib/ECPair.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -import {Buffer} from 'buffer'; - -declare type ECSignature = any; - -export declare interface ECPair { - //constructor(); - fromWIF(privateKeyWIF: string): ECPair; - toWif(): string; - toWIF(ecpair: ECPair): string; - sign(sigHash: number): ECSignature; - sign(ecpair: ECPair, sigHash: number): ECSignature; - sign(buffer: Buffer): Boolean | ECSignature; - sign(ecpair: ECPair, buffer: Buffer): Boolean | ECSignature; - verify(buffer: Buffer, signature: ECSignature): boolean; - verify(ecpair: ECPair, buffer: Buffer, signature: ECSignature): boolean; - fromPublicKey(pubkeyBuffer: string): ECPair; - toPublicKey(): Buffer; - toPublicKey(ecpair: ECPair): Buffer; - toLegacyAddress(): string; - toLegacyAddress(ecpair: ECPair): string; - toCashAddress(): string; - toCashAddress(ecpair: ECPair, regtest?: boolean): string; -} \ No newline at end of file diff --git a/lib/ECPair.js b/lib/ECPair.js index 20dc78ae..d5a80038 100644 --- a/lib/ECPair.js +++ b/lib/ECPair.js @@ -1,86 +1,49 @@ "use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _bitcoincashjsLib = require("bitcoincashjs-lib"); - -var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); - -var _coininfo = require("coininfo"); - -var _coininfo2 = _interopRequireDefault(_coininfo); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var ECPair = function () { - function ECPair() { - _classCallCheck(this, ECPair); - } - - _createClass(ECPair, null, [{ - key: "setAddress", - value: function setAddress(address) { - ECPair._address = address; - } - }, { - key: "fromWIF", - value: function fromWIF(privateKeyWIF) { - var network = void 0; - if (privateKeyWIF[0] === "L" || privateKeyWIF[0] === "K") network = "mainnet";else if (privateKeyWIF[0] === "c") network = "testnet"; - - var bitcoincash = void 0; - if (network === "mainnet") bitcoincash = _coininfo2.default.bitcoincash.main;else bitcoincash = _coininfo2.default.bitcoincash.test; - - var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); - - return _bitcoincashjsLib2.default.ECPair.fromWIF(privateKeyWIF, bitcoincashBitcoinJSLib); - } - }, { - key: "toWIF", - value: function toWIF(ecpair) { - return ecpair.toWIF(); - } - }, { - key: "sign", - value: function sign(ecpair, buffer) { - return ecpair.sign(buffer); - } - }, { - key: "verify", - value: function verify(ecpair, buffer, signature) { - return ecpair.verify(buffer, signature); - } - }, { - key: "fromPublicKey", - value: function fromPublicKey(pubkeyBuffer) { - return _bitcoincashjsLib2.default.ECPair.fromPublicKeyBuffer(pubkeyBuffer); - } - }, { - key: "toPublicKey", - value: function toPublicKey(ecpair) { - return ecpair.getPublicKeyBuffer(); - } - }, { - key: "toLegacyAddress", - value: function toLegacyAddress(ecpair) { - return ecpair.getAddress(); - } - }, { - key: "toCashAddress", - value: function toCashAddress(ecpair) { - var regtest = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - - return ECPair._address.toCashAddress(ecpair.getAddress(), true, regtest); - } - }]); - - return ECPair; -}(); - -exports.default = ECPair; \ No newline at end of file +Object.defineProperty(exports, "__esModule", { value: true }); +var Bitcoin = require("bitcoincashjs-lib"); +var coininfo = require("coininfo"); +var ECPair = /** @class */ (function () { + function ECPair() { + } + ECPair.setAddress = function (address) { + ECPair._address = address; + }; + ECPair.fromWIF = function (privateKeyWIF) { + var network; + if (privateKeyWIF[0] === "L" || privateKeyWIF[0] === "K") + network = "mainnet"; + else if (privateKeyWIF[0] === "c") + network = "testnet"; + var bitcoincash; + if (network === "mainnet") + bitcoincash = coininfo.bitcoincash.main; + else + bitcoincash = coininfo.bitcoincash.test; + var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); + return Bitcoin.ECPair.fromWIF(privateKeyWIF, bitcoincashBitcoinJSLib); + }; + ECPair.toWIF = function (ecpair) { + return ecpair.toWIF(); + }; + ECPair.sign = function (ecpair, buffer) { + return ecpair.sign(buffer); + }; + ECPair.verify = function (ecpair, buffer, signature) { + return ecpair.verify(buffer, signature); + }; + ECPair.fromPublicKey = function (pubkeyBuffer) { + return Bitcoin.ECPair.fromPublicKeyBuffer(pubkeyBuffer); + }; + ECPair.toPublicKey = function (ecpair) { + return ecpair.getPublicKeyBuffer(); + }; + ECPair.toLegacyAddress = function (ecpair) { + return ecpair.getAddress(); + }; + ECPair.toCashAddress = function (ecpair, regtest) { + if (regtest === void 0) { regtest = false; } + return ECPair._address.toCashAddress(ecpair.getAddress(), true, regtest); + }; + return ECPair; +}()); +exports.ECPair = ECPair; diff --git a/lib/Generating.d.ts b/lib/Generating.d.ts deleted file mode 100644 index 0153cffd..00000000 --- a/lib/Generating.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export declare interface Generating { - //constructor(restURL:string); - generateToAddress(blocks:number, address:string, maxtries:number):Promise; -} \ No newline at end of file diff --git a/lib/Generating.js b/lib/Generating.js index 77e625c4..d0a1982a 100644 --- a/lib/Generating.js +++ b/lib/Generating.js @@ -1,41 +1,69 @@ "use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _axios = require("axios"); - -var _axios2 = _interopRequireDefault(_axios); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var Generating = function () { - function Generating(restURL) { - _classCallCheck(this, Generating); - - this.restURL = restURL; - } - - _createClass(Generating, [{ - key: "generateToAddress", - value: async function generateToAddress(blocks, address) { - var maxtries = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1000000; - - try { - var response = await _axios2.default.post(this.restURL + "generating/generateToAddress/" + blocks + "/" + address + "?maxtries=" + maxtries); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } - }]); - - return Generating; -}(); - -exports.default = Generating; \ No newline at end of file +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var axios = require("axios"); +var Generating = /** @class */ (function () { + function Generating(restURL) { + this.restURL = restURL; + } + Generating.prototype.generateToAddress = function (blocks, address, maxtries) { + if (maxtries === void 0) { maxtries = 1000000; } + return __awaiter(this, void 0, void 0, function () { + var response, error_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios.post(this.restURL + "generating/generateToAddress/" + blocks + "/" + address + "?maxtries=" + maxtries)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_1 = _a.sent(); + if (error_1.response && error_1.response.data) + throw error_1.response.data; + else + throw error_1; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + return Generating; +}()); +exports.Generating = Generating; diff --git a/lib/HDNode.d.ts b/lib/HDNode.d.ts deleted file mode 100644 index ecd9d293..00000000 --- a/lib/HDNode.d.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { Buffer } from "buffer" - -import { ECPair, ECSignature } from "./ECPair" - -export declare interface HDNode { - fromSeed(rootSeedBuffer: Buffer, network?: string): HDNode - toLegacyAddress(): string - toLegacyAddress(hdNode: HDNode): string - toCashAddress(): string - toCashAddress(hdNode: HDNode, regtest?: boolean): string - toWIF(): string - toWIF(hdNode: HDNode): string - toXPub(): string - toXPub(hdNode: HDNode): string - toXPriv(): string - toXPriv(hdNode: HDNode): string - toKeyPair(): ECPair - toKeyPair(hdNode: HDNode): ECPair - toPublicKey(): Buffer - toPublicKey(hdNode: HDNode): Buffer - fromXPriv(xpriv: string): HDNode - fromXPub(xpub: string): HDNode - derivePath(path: string): HDNode - derivePath(hdNode: HDNode, path: string): HDNode - derive(num: number): HDNode - derive(hdNode: HDNode, num: number): HDNode - deriveHardened(num: number): HDNode - deriveHardened(hdNode: HDNode, num: number): HDNode - sign(buffer: Buffer): ECSignature - sign(hdNode: HDNode, buffer: Buffer): ECSignature - verify(buffer: Buffer, signature: ECSignature): boolean - verify(hdNode: HDNode, buffer: Buffer, signature: ECSignature): boolean - isPublic(): boolean - isPublic(hdNode: HDNode): boolean - isPrivate(): boolean - isPrivate(hdNode: HDNode): boolean - toIdentifier(): string - toIdentifier(hdNode: HDNode): string - fromBase58(base58: string, network: string): string - createAccount(hdNodes: Array): object - createChain(hdNode: HDNode): object -} diff --git a/lib/HDNode.js b/lib/HDNode.js index 53a5d75a..c10a388f 100644 --- a/lib/HDNode.js +++ b/lib/HDNode.js @@ -1,161 +1,96 @@ "use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _bitcoincashjsLib = require("bitcoincashjs-lib"); - -var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); - -var _coininfo = require("coininfo"); - -var _coininfo2 = _interopRequireDefault(_coininfo); - -var _bip32Utils = require("bip32-utils"); - -var _bip32Utils2 = _interopRequireDefault(_bip32Utils); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var HDNode = function () { - function HDNode(address) { - _classCallCheck(this, HDNode); - - this._address = address; - } - - _createClass(HDNode, [{ - key: "fromSeed", - value: function fromSeed(rootSeedBuffer) { - var network = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "mainnet"; - - var bitcoincash = void 0; - if (network === "bitcoincash" || network === "mainnet") bitcoincash = _coininfo2.default.bitcoincash.main;else bitcoincash = _coininfo2.default.bitcoincash.test; - - var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); - return _bitcoincashjsLib2.default.HDNode.fromSeedBuffer(rootSeedBuffer, bitcoincashBitcoinJSLib); - } - }, { - key: "toLegacyAddress", - value: function toLegacyAddress(hdNode) { - return hdNode.getAddress(); - } - }, { - key: "toCashAddress", - value: function toCashAddress(hdNode) { - var regtest = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - - return this._address.toCashAddress(hdNode.getAddress(), true, regtest); - } - }, { - key: "toWIF", - value: function toWIF(hdNode) { - return hdNode.keyPair.toWIF(); - } - }, { - key: "toXPub", - value: function toXPub(hdNode) { - return hdNode.neutered().toBase58(); - } - }, { - key: "toXPriv", - value: function toXPriv(hdNode) { - return hdNode.toBase58(); - } - }, { - key: "toKeyPair", - value: function toKeyPair(hdNode) { - return hdNode.keyPair; - } - }, { - key: "toPublicKey", - value: function toPublicKey(hdNode) { - return hdNode.getPublicKeyBuffer(); - } - }, { - key: "fromXPriv", - value: function fromXPriv(xpriv) { - var bitcoincash = void 0; - if (xpriv[0] === "x") bitcoincash = _coininfo2.default.bitcoincash.main;else if (xpriv[0] === "t") bitcoincash = _coininfo2.default.bitcoincash.test; - - var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); - return _bitcoincashjsLib2.default.HDNode.fromBase58(xpriv, bitcoincashBitcoinJSLib); - } - }, { - key: "fromXPub", - value: function fromXPub(xpub) { - var bitcoincash = void 0; - if (xpub[0] === "x") bitcoincash = _coininfo2.default.bitcoincash.main;else if (xpub[0] === "t") bitcoincash = _coininfo2.default.bitcoincash.test; - - var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); - return _bitcoincashjsLib2.default.HDNode.fromBase58(xpub, bitcoincashBitcoinJSLib); - } - }, { - key: "derivePath", - value: function derivePath(hdnode, path) { - return hdnode.derivePath(path); - } - }, { - key: "derive", - value: function derive(hdnode, path) { - return hdnode.derive(path); - } - }, { - key: "deriveHardened", - value: function deriveHardened(hdnode, path) { - return hdnode.deriveHardened(path); - } - }, { - key: "sign", - value: function sign(hdnode, buffer) { - return hdnode.sign(buffer); - } - }, { - key: "verify", - value: function verify(hdnode, buffer, signature) { - return hdnode.verify(buffer, signature); - } - }, { - key: "isPublic", - value: function isPublic(hdnode) { - return hdnode.isNeutered(); - } - }, { - key: "isPrivate", - value: function isPrivate(hdnode) { - return !hdnode.isNeutered(); - } - }, { - key: "toIdentifier", - value: function toIdentifier(hdnode) { - return hdnode.getIdentifier(); - } - }, { - key: "fromBase58", - value: function fromBase58(base58, network) { - return _bitcoincashjsLib2.default.HDNode.fromBase58(base58, network); - } - }, { - key: "createAccount", - value: function createAccount(hdNodes) { - var arr = hdNodes.map(function (item, index) { - return new _bip32Utils2.default.Chain(item.neutered()); - }); - return new _bip32Utils2.default.Account(arr); - } - }, { - key: "createChain", - value: function createChain(hdNode) { - return new _bip32Utils2.default.Chain(hdNode); - } - }]); - - return HDNode; -}(); - -exports.default = HDNode; \ No newline at end of file +Object.defineProperty(exports, "__esModule", { value: true }); +var Bitcoin = require("bitcoincashjs-lib"); +var coininfo = require("coininfo"); +var bip32utils = require("bip32-utils"); +var HDNode = /** @class */ (function () { + function HDNode(address) { + this._address = address; + } + HDNode.prototype.fromSeed = function (rootSeedBuffer, network) { + if (network === void 0) { network = "mainnet"; } + var bitcoincash; + if (network === "bitcoincash" || network === "mainnet") + bitcoincash = coininfo.bitcoincash.main; + else + bitcoincash = coininfo.bitcoincash.test; + var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); + return Bitcoin.HDNode.fromSeedBuffer(rootSeedBuffer, bitcoincashBitcoinJSLib); + }; + HDNode.prototype.toLegacyAddress = function (hdNode) { + return hdNode.getAddress(); + }; + HDNode.prototype.toCashAddress = function (hdNode, regtest) { + if (regtest === void 0) { regtest = false; } + return this._address.toCashAddress(hdNode.getAddress(), true, regtest); + }; + HDNode.prototype.toWIF = function (hdNode) { + return hdNode.keyPair.toWIF(); + }; + HDNode.prototype.toXPub = function (hdNode) { + return hdNode.neutered().toBase58(); + }; + HDNode.prototype.toXPriv = function (hdNode) { + return hdNode.toBase58(); + }; + HDNode.prototype.toKeyPair = function (hdNode) { + return hdNode.keyPair; + }; + HDNode.prototype.toPublicKey = function (hdNode) { + return hdNode.getPublicKeyBuffer(); + }; + HDNode.prototype.fromXPriv = function (xpriv) { + var bitcoincash; + if (xpriv[0] === "x") + bitcoincash = coininfo.bitcoincash.main; + else if (xpriv[0] === "t") + bitcoincash = coininfo.bitcoincash.test; + var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); + return Bitcoin.HDNode.fromBase58(xpriv, bitcoincashBitcoinJSLib); + }; + HDNode.prototype.fromXPub = function (xpub) { + var bitcoincash; + if (xpub[0] === "x") + bitcoincash = coininfo.bitcoincash.main; + else if (xpub[0] === "t") + bitcoincash = coininfo.bitcoincash.test; + var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); + return Bitcoin.HDNode.fromBase58(xpub, bitcoincashBitcoinJSLib); + }; + HDNode.prototype.derivePath = function (hdnode, path) { + return hdnode.derivePath(path); + }; + HDNode.prototype.derive = function (hdnode, path) { + return hdnode.derive(path); + }; + HDNode.prototype.deriveHardened = function (hdnode, path) { + return hdnode.deriveHardened(path); + }; + HDNode.prototype.sign = function (hdnode, buffer) { + return hdnode.sign(buffer); + }; + HDNode.prototype.verify = function (hdnode, buffer, signature) { + return hdnode.verify(buffer, signature); + }; + HDNode.prototype.isPublic = function (hdnode) { + return hdnode.isNeutered(); + }; + HDNode.prototype.isPrivate = function (hdnode) { + return !hdnode.isNeutered(); + }; + HDNode.prototype.toIdentifier = function (hdnode) { + return hdnode.getIdentifier(); + }; + HDNode.prototype.fromBase58 = function (base58, network) { + return Bitcoin.HDNode.fromBase58(base58, network); + }; + HDNode.prototype.createAccount = function (hdNodes) { + var arr = hdNodes.map(function (item, index) { return new bip32utils.Chain(item.neutered()); }); + return new bip32utils.Account(arr); + }; + HDNode.prototype.createChain = function (hdNode) { + return new bip32utils.Chain(hdNode); + }; + return HDNode; +}()); +exports.HDNode = HDNode; diff --git a/lib/Mining.d.ts b/lib/Mining.d.ts deleted file mode 100644 index 76333f77..00000000 --- a/lib/Mining.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -export declare interface Mining { - //constructor(restURL:string); - getBlockTemplate(template_request?:any):Promise; - getMiningInfo():Promise; - getNetworkHashps(nblocks?:number, height?:number):Promise; - submitBlock(hex:string, parameters?:string):Promise; -} \ No newline at end of file diff --git a/lib/Mining.js b/lib/Mining.js index 68a95941..5228f21d 100644 --- a/lib/Mining.js +++ b/lib/Mining.js @@ -1,75 +1,144 @@ "use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _axios = require("axios"); - -var _axios2 = _interopRequireDefault(_axios); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var Mining = function () { - function Mining(restURL) { - _classCallCheck(this, Mining); - - this.restURL = restURL; - } - - _createClass(Mining, [{ - key: "getBlockTemplate", - value: async function getBlockTemplate(template_request) { - try { - var response = await _axios2.default.get(this.restURL + "mining/getBlockTemplate/" + template_request); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } - }, { - key: "getMiningInfo", - value: async function getMiningInfo() { - try { - var response = await _axios2.default.get(this.restURL + "mining/getMiningInfo"); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var axios = require("axios"); +var Mining = /** @class */ (function () { + function Mining(restURL) { + this.restURL = restURL; } - }, { - key: "getNetworkHashps", - value: async function getNetworkHashps() { - var nblocks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 120; - var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; - - try { - var response = await _axios2.default.get(this.restURL + "mining/getNetworkHashps?nblocks=" + nblocks + "&height=" + height); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }, { - key: "submitBlock", - value: async function submitBlock(hex, parameters) { - var path = this.restURL + "mining/submitBlock/" + hex; - if (parameters) path = path + "?parameters=" + parameters; - - try { - var response = await _axios2.default.post(path); - return response.data; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }]); - - return Mining; -}(); - -exports.default = Mining; \ No newline at end of file + Mining.prototype.getBlockTemplate = function (template_request) { + return __awaiter(this, void 0, void 0, function () { + var response, error_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios.get(this.restURL + "mining/getBlockTemplate/" + template_request)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_1 = _a.sent(); + if (error_1.response && error_1.response.data) + throw error_1.response.data; + else + throw error_1; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Mining.prototype.getMiningInfo = function () { + return __awaiter(this, void 0, void 0, function () { + var response, error_2; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios.get(this.restURL + "mining/getMiningInfo")]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_2 = _a.sent(); + if (error_2.response && error_2.response.data) + throw error_2.response.data; + else + throw error_2; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Mining.prototype.getNetworkHashps = function (nblocks, height) { + if (nblocks === void 0) { nblocks = 120; } + if (height === void 0) { height = 1; } + return __awaiter(this, void 0, void 0, function () { + var response, error_3; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios.get(this.restURL + "mining/getNetworkHashps?nblocks=" + nblocks + "&height=" + height)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_3 = _a.sent(); + if (error_3.response && error_3.response.data) + throw error_3.response.data; + else + throw error_3; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Mining.prototype.submitBlock = function (hex, parameters) { + return __awaiter(this, void 0, void 0, function () { + var path, response, error_4; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + path = this.restURL + "mining/submitBlock/" + hex; + if (parameters) + path = path + "?parameters=" + parameters; + _a.label = 1; + case 1: + _a.trys.push([1, 3, , 4]); + return [4 /*yield*/, axios.post(path)]; + case 2: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 3: + error_4 = _a.sent(); + if (error_4.response && error_4.response.data) + throw error_4.response.data; + else + throw error_4; + return [3 /*break*/, 4]; + case 4: return [2 /*return*/]; + } + }); + }); + }; + return Mining; +}()); +exports.Mining = Mining; diff --git a/lib/Mnemonic.d.ts b/lib/Mnemonic.d.ts deleted file mode 100644 index f839d318..00000000 --- a/lib/Mnemonic.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import {Buffer} from 'buffer'; - -export declare interface Mnemonic { - generate(bits: number, wordlist?: string[]): string; - fromEntropy(bytes: Buffer, wordlist?: string[]): string; - toEntropy(mnemonic: string, wordlist?: string[]): Buffer; - validate(mnemonic: string, wordlist?: string[]): boolean; - toSeed(mnemonic: string, passphrase?: string): Buffer; - wordLists(): any; - toKeypairs(mnemonic: string, numberOfKeypairs?: number, regtest?: boolean): { privateKeyWIF: string, address: string}[]; - findNearestWord(word: string, wordlist: string[]): string; -} \ No newline at end of file diff --git a/lib/Mnemonic.js b/lib/Mnemonic.js index 43977d2b..a5de8cb7 100644 --- a/lib/Mnemonic.js +++ b/lib/Mnemonic.js @@ -1,142 +1,91 @@ "use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _bip = require("bip39"); - -var _bip2 = _interopRequireDefault(_bip); - -var _randombytes = require("randombytes"); - -var _randombytes2 = _interopRequireDefault(_randombytes); - -var _bitcoincashjsLib = require("bitcoincashjs-lib"); - -var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - +Object.defineProperty(exports, "__esModule", { value: true }); +var BIP39 = require("bip39"); +var randomBytes = require("randombytes"); +var Bitcoin = require("bitcoincashjs-lib"); var Buffer = require("safe-buffer").Buffer; var wif = require("wif"); - -var Mnemonic = function () { - function Mnemonic(address) { - _classCallCheck(this, Mnemonic); - - this._address = address; - } - - _createClass(Mnemonic, [{ - key: "generate", - value: function generate() { - var bits = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 128; - var wordlist = arguments[1]; - - return _bip2.default.generateMnemonic(bits, _randombytes2.default, wordlist); +var Mnemonic = /** @class */ (function () { + function Mnemonic(address) { + this._address = address; } - }, { - key: "fromEntropy", - value: function fromEntropy(bytes, wordlist) { - return _bip2.default.entropyToMnemonic(bytes, wordlist); - } - }, { - key: "toEntropy", - value: function toEntropy(mnemonic, wordlist) { - return Buffer.from(_bip2.default.mnemonicToEntropy(mnemonic, wordlist), "hex"); - } - }, { - key: "validate", - value: function validate(mnemonic, wordlist) { - // Preprocess the words - var words = mnemonic.split(" "); - // Detect blank phrase - if (words.length === 0) return "Blank mnemonic"; - - // Check each word - for (var i = 0; i < words.length; i++) { - var word = words[i]; - if (wordlist.indexOf(word) == -1) { - // Finding closest match to word - var nearestWord = this.findNearestWord(word, wordlist); - return word + " is not in wordlist, did you mean " + nearestWord + "?"; + Mnemonic.prototype.generate = function (bits, wordlist) { + if (bits === void 0) { bits = 128; } + return BIP39.generateMnemonic(bits, randomBytes, wordlist); + }; + Mnemonic.prototype.fromEntropy = function (bytes, wordlist) { + return BIP39.entropyToMnemonic(bytes, wordlist); + }; + Mnemonic.prototype.toEntropy = function (mnemonic, wordlist) { + return Buffer.from(BIP39.mnemonicToEntropy(mnemonic, wordlist), "hex"); + }; + Mnemonic.prototype.validate = function (mnemonic, wordlist) { + // Preprocess the words + var words = mnemonic.split(" "); + // Detect blank phrase + if (words.length === 0) + return "Blank mnemonic"; + // Check each word + for (var i = 0; i < words.length; i++) { + var word = words[i]; + if (wordlist.indexOf(word) == -1) { + // Finding closest match to word + var nearestWord = this.findNearestWord(word, wordlist); + return word + " is not in wordlist, did you mean " + nearestWord + "?"; + } } - } - // Check the words are valid - var properPhrase = words.join(); - var isValid = _bip2.default.validateMnemonic(mnemonic, wordlist); - if (!isValid) return "Invalid mnemonic"; - - return "Valid mnemonic"; - } - }, { - key: "toSeed", - value: function toSeed(mnemonic) { - var password = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ""; - - return _bip2.default.mnemonicToSeed(mnemonic, password); - } - }, { - key: "wordLists", - value: function wordLists() { - return _bip2.default.wordlists; - } - }, { - key: "toKeypairs", - value: function toKeypairs(mnemonic) { - var numberOfKeypairs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; - var regtest = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - var rootSeedBuffer = this.toSeed(mnemonic, ""); - var hdNode = _bitcoincashjsLib2.default.HDNode.fromSeedBuffer(rootSeedBuffer); - var HDPath = "44'/145'/0'/0/"; - - var accounts = []; - - for (var i = 0; i < numberOfKeypairs; i++) { - var childHDNode = hdNode.derivePath("" + HDPath + i); - - var prefix = 128; - if (regtest === true) prefix = 239; - - accounts.push({ - privateKeyWIF: wif.encode(prefix, childHDNode.keyPair.d.toBuffer(32), true), - address: this._address.toCashAddress(childHDNode.getAddress(), true, regtest) - }); - } - return accounts; - } - }, { - key: "findNearestWord", - value: function findNearestWord(word, wordlist) { - var minDistance = 99; - var closestWord = wordlist[0]; - for (var i = 0; i < wordlist.length; i++) { - var comparedTo = wordlist[i]; - if (comparedTo.indexOf(word) == 0) return comparedTo; - - var distance = Levenshtein.get(word, comparedTo); - if (distance < minDistance) { - closestWord = comparedTo; - minDistance = distance; + // Check the words are valid + var properPhrase = words.join(); + var isValid = BIP39.validateMnemonic(mnemonic, wordlist); + if (!isValid) + return "Invalid mnemonic"; + return "Valid mnemonic"; + }; + Mnemonic.prototype.toSeed = function (mnemonic, password) { + if (password === void 0) { password = ""; } + return BIP39.mnemonicToSeed(mnemonic, password); + }; + Mnemonic.prototype.wordLists = function () { + return BIP39.wordlists; + }; + Mnemonic.prototype.toKeypairs = function (mnemonic, numberOfKeypairs, regtest) { + if (numberOfKeypairs === void 0) { numberOfKeypairs = 1; } + if (regtest === void 0) { regtest = false; } + var rootSeedBuffer = this.toSeed(mnemonic, ""); + var hdNode = Bitcoin.HDNode.fromSeedBuffer(rootSeedBuffer); + var HDPath = "44'/145'/0'/0/"; + var accounts = []; + for (var i = 0; i < numberOfKeypairs; i++) { + var childHDNode = hdNode.derivePath("" + HDPath + i); + var prefix = 128; + if (regtest === true) + prefix = 239; + accounts.push({ + privateKeyWIF: wif.encode(prefix, childHDNode.keyPair.d.toBuffer(32), true), + address: this._address.toCashAddress(childHDNode.getAddress(), true, regtest) + }); } - } - return closestWord; - } - }]); - - return Mnemonic; -}(); - -exports.default = Mnemonic; - + return accounts; + }; + Mnemonic.prototype.findNearestWord = function (word, wordlist) { + var minDistance = 99; + var closestWord = wordlist[0]; + for (var i = 0; i < wordlist.length; i++) { + var comparedTo = wordlist[i]; + if (comparedTo.indexOf(word) == 0) + return comparedTo; + var distance = Levenshtein.get(word, comparedTo); + if (distance < minDistance) { + closestWord = comparedTo; + minDistance = distance; + } + } + return closestWord; + }; + return Mnemonic; +}()); +exports.Mnemonic = Mnemonic; // The following code is from: https://raw.githubusercontent.com/iancoleman/bip39/7ff86d4c983f1e8c80b87b31acfd69fcf98c1b82/src/js/levenshtein.js - /** * Extend an Object with another Object's properties. * @@ -146,174 +95,146 @@ exports.default = Mnemonic; * * @return Object the final object. */ - -var _extend = function _extend(dst) { - var sources = Array.prototype.slice.call(arguments, 1); - for (var i = 0; i < sources.length; ++i) { - var src = sources[i]; - for (var p in src) { - if (src.hasOwnProperty(p)) dst[p] = src[p]; +var _extend = function (dst) { + var sources = Array.prototype.slice.call(arguments, 1); + for (var i = 0; i < sources.length; ++i) { + var src = sources[i]; + for (var p in src) + if (src.hasOwnProperty(p)) + dst[p] = src[p]; } - } - return dst; + return dst; }; - /** * Defer execution of given function. * @param {Function} func */ -var _defer = function _defer(func) { - if (typeof setImmediate === "function") return setImmediate(func); - - return setTimeout(func, 0); +var _defer = function (func) { + if (typeof setImmediate === "function") + return setImmediate(func); + return setTimeout(func, 0); }; - /** * Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance. */ var Levenshtein = { - /** - * Calculate levenshtein distance of the two strings. - * - * @param str1 String the first string. - * @param str2 String the second string. - * @return Integer the levenshtein distance (0 and above). - */ - get: function get(str1, str2) { - // base cases - if (str1 === str2) return 0; - if (str1.length === 0) return str2.length; - if (str2.length === 0) return str1.length; - - // two rows - var prevRow = new Array(str2.length + 1), - curCol = void 0, - nextCol = void 0, - i = void 0, - j = void 0, - tmp = void 0; - - // initialise previous row - for (i = 0; i < prevRow.length; ++i) { - prevRow[i] = i; - } // calculate current row distance from previous row - for (i = 0; i < str1.length; ++i) { - nextCol = i + 1; - - for (j = 0; j < str2.length; ++j) { - curCol = nextCol; - - // substution - nextCol = prevRow[j] + (str1.charAt(i) === str2.charAt(j) ? 0 : 1); - // insertion - tmp = curCol + 1; - if (nextCol > tmp) nextCol = tmp; - - // deletion - tmp = prevRow[j + 1] + 1; - if (nextCol > tmp) nextCol = tmp; - - // copy current col value into previous (in preparation for next iteration) - prevRow[j] = curCol; - } - - // copy last col value into previous (in preparation for next iteration) - prevRow[j] = nextCol; - } - - return nextCol; - }, - - /** - * Asynchronously calculate levenshtein distance of the two strings. - * - * @param str1 String the first string. - * @param str2 String the second string. - * @param cb Function callback function with signature: function(Error err, int distance) - * @param [options] Object additional options. - * @param [options.progress] Function progress callback with signature: function(percentComplete) - */ - getAsync: function getAsync(str1, str2, cb, options) { - options = _extend({}, { - progress: null - }, options); - - // base cases - if (str1 === str2) return cb(null, 0); - if (str1.length === 0) return cb(null, str2.length); - if (str2.length === 0) return cb(null, str1.length); - - // two rows - var prevRow = new Array(str2.length + 1), - curCol = void 0, - nextCol = void 0, - i = void 0, - j = void 0, - tmp = void 0, - startTime = void 0, - currentTime = void 0; - - // initialise previous row - for (i = 0; i < prevRow.length; ++i) { - prevRow[i] = i; - }nextCol = 1; - i = 0; - j = -1; - - var __calculate = function __calculate() { - // reset timer - startTime = new Date().valueOf(); - currentTime = startTime; - - // keep going until one second has elapsed - while (currentTime - startTime < 1000) { - // reached end of current row? - if (str2.length <= ++j) { - // copy current into previous (in preparation for next iteration) - prevRow[j] = nextCol; - - // if already done all chars - if (str1.length <= ++i) return cb(null, nextCol); - - // else if we have more left to do - - nextCol = i + 1; - j = 0; - } - - // calculation - curCol = nextCol; - - // substution - nextCol = prevRow[j] + (str1.charAt(i) === str2.charAt(j) ? 0 : 1); - // insertion - tmp = curCol + 1; - if (nextCol > tmp) nextCol = tmp; - - // deletion - tmp = prevRow[j + 1] + 1; - if (nextCol > tmp) nextCol = tmp; - - // copy current into previous (in preparation for next iteration) - prevRow[j] = curCol; - - // get current time - currentTime = new Date().valueOf(); - } - - // send a progress update? - if (null !== options.progress) { - try { - options.progress.call(null, i * 100.0 / str1.length); - } catch (err) { - return cb("Progress callback: " + err.toString()); + /** + * Calculate levenshtein distance of the two strings. + * + * @param str1 String the first string. + * @param str2 String the second string. + * @return Integer the levenshtein distance (0 and above). + */ + get: function (str1, str2) { + // base cases + if (str1 === str2) + return 0; + if (str1.length === 0) + return str2.length; + if (str2.length === 0) + return str1.length; + // two rows + var prevRow = new Array(str2.length + 1), curCol, nextCol, i, j, tmp; + // initialise previous row + for (i = 0; i < prevRow.length; ++i) + prevRow[i] = i; + // calculate current row distance from previous row + for (i = 0; i < str1.length; ++i) { + nextCol = i + 1; + for (j = 0; j < str2.length; ++j) { + curCol = nextCol; + // substution + nextCol = prevRow[j] + (str1.charAt(i) === str2.charAt(j) ? 0 : 1); + // insertion + tmp = curCol + 1; + if (nextCol > tmp) + nextCol = tmp; + // deletion + tmp = prevRow[j + 1] + 1; + if (nextCol > tmp) + nextCol = tmp; + // copy current col value into previous (in preparation for next iteration) + prevRow[j] = curCol; + } + // copy last col value into previous (in preparation for next iteration) + prevRow[j] = nextCol; } - } - - // next iteration - _defer(__calculate); - }; - - __calculate(); - } -}; \ No newline at end of file + return nextCol; + }, + /** + * Asynchronously calculate levenshtein distance of the two strings. + * + * @param str1 String the first string. + * @param str2 String the second string. + * @param cb Function callback function with signature: function(Error err, int distance) + * @param [options] Object additional options. + * @param [options.progress] Function progress callback with signature: function(percentComplete) + */ + getAsync: function (str1, str2, cb, options) { + options = _extend({}, { + progress: null + }, options); + // base cases + if (str1 === str2) + return cb(null, 0); + if (str1.length === 0) + return cb(null, str2.length); + if (str2.length === 0) + return cb(null, str1.length); + // two rows + var prevRow = new Array(str2.length + 1), curCol, nextCol, i, j, tmp, startTime, currentTime; + // initialise previous row + for (i = 0; i < prevRow.length; ++i) + prevRow[i] = i; + nextCol = 1; + i = 0; + j = -1; + var __calculate = function () { + // reset timer + startTime = new Date().valueOf(); + currentTime = startTime; + // keep going until one second has elapsed + while (currentTime - startTime < 1000) { + // reached end of current row? + if (str2.length <= ++j) { + // copy current into previous (in preparation for next iteration) + prevRow[j] = nextCol; + // if already done all chars + if (str1.length <= ++i) + return cb(null, nextCol); + // else if we have more left to do + nextCol = i + 1; + j = 0; + } + // calculation + curCol = nextCol; + // substution + nextCol = prevRow[j] + (str1.charAt(i) === str2.charAt(j) ? 0 : 1); + // insertion + tmp = curCol + 1; + if (nextCol > tmp) + nextCol = tmp; + // deletion + tmp = prevRow[j + 1] + 1; + if (nextCol > tmp) + nextCol = tmp; + // copy current into previous (in preparation for next iteration) + prevRow[j] = curCol; + // get current time + currentTime = new Date().valueOf(); + } + // send a progress update? + if (null !== options.progress) { + try { + options.progress.call(null, (i * 100.0) / str1.length); + } + catch (err) { + return cb("Progress callback: " + err.toString()); + } + } + // next iteration + _defer(__calculate); + }; + __calculate(); + } +}; diff --git a/lib/Network.d.ts b/lib/Network.d.ts deleted file mode 100644 index 43e07f95..00000000 --- a/lib/Network.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -export declare interface Network { - //constructor(restURL:string); - //addNode(node:string, command:string):any; - //clearBanned():any; - //disconnectNode(configuration:object):any; - //getAddedNodeInfo(node?:string):any; - getConnectionCount():Promise; - getNetTotals():Promise; - getNetworkInfo():Promise; - getPeerInfo():Promise; - ping():Promise; -} \ No newline at end of file diff --git a/lib/Price.d.ts b/lib/Price.d.ts deleted file mode 100644 index 5e4ddcf9..00000000 --- a/lib/Price.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare interface Price { - current(currency?: string): Promise; -} - -export default Price; \ No newline at end of file diff --git a/lib/Price.js b/lib/Price.js index 4c2a50d6..f6a70873 100644 --- a/lib/Price.js +++ b/lib/Price.js @@ -1,39 +1,68 @@ "use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _axios = require("axios"); - -var _axios2 = _interopRequireDefault(_axios); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var Price = function () { - function Price() { - _classCallCheck(this, Price); - } - - _createClass(Price, [{ - key: "current", - value: async function current() { - var currency = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "usd"; - - try { - var response = await _axios2.default.get("https://index-api.bitcoin.com/api/v0/cash/price/" + currency.toLowerCase()); - return response.data.price; - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } - }]); - - return Price; -}(); - -exports.default = Price; \ No newline at end of file +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var axios = require("axios"); +var Price = /** @class */ (function () { + function Price() { + } + Price.prototype.current = function (currency) { + if (currency === void 0) { currency = "usd"; } + return __awaiter(this, void 0, void 0, function () { + var response, error_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios.get("https://index-api.bitcoin.com/api/v0/cash/price/" + currency.toLowerCase())]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data.price]; + case 2: + error_1 = _a.sent(); + if (error_1.response && error_1.response.data) + throw error_1.response.data; + else + throw error_1; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + return Price; +}()); +exports.Price = Price; diff --git a/lib/RawTransactions.d.ts b/lib/RawTransactions.d.ts deleted file mode 100644 index d5470a8d..00000000 --- a/lib/RawTransactions.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -export interface RawTransactions { - decodeRawTransaction(hex:string):Promise; - decodeScript(hex: string):Promise; - getRawTransaction(txids: string[]): Promise; - getRawTransaction(txids: string[], verbose:boolean): Promise; // verbose must be set to true - sendRawTransaction(hex: string, allowhighfees?:boolean): Promise; -} - -export interface VerboseRawTransaction { - hex: string; - txid: string; - size: number; - version: number; - locktime: number; - vin: [{ coinbase: string; sequence: number }] - vout: [{value: number; n: number; scriptPubKey: { asm: string; hex: string; reqSigs: number; type: string; addresses: string[] }}] - blockhash: string; - confirmations: number; - time: number; - blocktime: number; -} \ No newline at end of file diff --git a/lib/RawTransactions.js b/lib/RawTransactions.js index a4b439c6..56058324 100644 --- a/lib/RawTransactions.js +++ b/lib/RawTransactions.js @@ -1,150 +1,207 @@ "use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _axios = require("axios"); - -var _axios2 = _interopRequireDefault(_axios); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var RawTransactions = function () { - function RawTransactions(restURL) { - _classCallCheck(this, RawTransactions); - - this.restURL = restURL; - } - - _createClass(RawTransactions, [{ - key: "decodeRawTransaction", - value: async function decodeRawTransaction(hex) { - try { - // Single hex - if (typeof hex === "string") { - var response = await _axios2.default.get(this.restURL + "rawtransactions/decodeRawTransaction/" + hex); - - return response.data; - - // Array of hexes - } else if (Array.isArray(hex)) { - var options = { - method: "POST", - url: this.restURL + "rawtransactions/decodeRawTransaction", - data: { - hexes: hex +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; } - }; - var _response = await (0, _axios2.default)(options); - - return _response.data; - } - - throw new Error("Input must be a string or array of strings."); - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } - }, { - key: "decodeScript", - value: async function decodeScript(script) { - //if (typeof script !== "string") script = JSON.stringify(script) - - try { - if (typeof script === "string") { - var response = await _axios2.default.get(this.restURL + "rawtransactions/decodeScript/" + script); - - return response.data; - } else if (Array.isArray(script)) { - var options = { - method: "POST", - url: this.restURL + "rawtransactions/decodeScript", - data: { - hexes: script - } - }; - var _response2 = await (0, _axios2.default)(options); - - return _response2.data; - } - - throw new Error("Input must be a string or array of strings."); - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }, { - key: "getRawTransaction", - value: async function getRawTransaction(txid) { - var verbose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - - try { - if (typeof txid === "string") { - var response = await _axios2.default.get(this.restURL + "rawtransactions/getRawTransaction/" + txid + "?verbose=" + verbose); - - return response.data; - } else if (Array.isArray(txid)) { - var options = { - method: "POST", - url: this.restURL + "rawtransactions/getRawTransaction", - data: { - txids: txid, - verbose: verbose - } - }; - var _response3 = await (0, _axios2.default)(options); - - return _response3.data; - } - - throw new Error("Input must be a string or array of strings."); - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } - } - }, { - key: "sendRawTransaction", - value: async function sendRawTransaction(hex) { - var allowhighfees = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - - try { - // Single tx hex. - if (typeof hex === "string") { - var response = await _axios2.default.get(this.restURL + "rawtransactions/sendRawTransaction/" + hex); - - if (response.data === "66: insufficient priority") { - console.warn("WARN: Insufficient Priority! This is likely due to a fee that is too low, or insufficient funds.\n Please ensure that there is BCH in the given wallet. If you are running on the testnet, get some\n BCH from the testnet faucet at https://developer.bitcoin.com/faucets/bch"); - } - - return response.data; - - // Array input - } else if (Array.isArray(hex)) { - var options = { - method: "POST", - url: this.restURL + "rawtransactions/sendRawTransaction", - data: { - hexes: hex - } - }; - var _response4 = await (0, _axios2.default)(options); - - return _response4.data; - } - - throw new Error("Input hex must be a string or array of strings."); - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var axios = require("axios"); +var RawTransactions = /** @class */ (function () { + function RawTransactions(restURL) { + this.restURL = restURL; } - }]); - - return RawTransactions; -}(); - -exports.default = RawTransactions; \ No newline at end of file + RawTransactions.prototype.decodeRawTransaction = function (hex) { + return __awaiter(this, void 0, void 0, function () { + var response, options, response, error_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof hex === "string")) return [3 /*break*/, 2]; + return [4 /*yield*/, axios.get(this.restURL + "rawtransactions/decodeRawTransaction/" + hex)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data + // Array of hexes + ]; + case 2: + if (!Array.isArray(hex)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "rawtransactions/decodeRawTransaction", + data: { + hexes: hex + } + }; + return [4 /*yield*/, axios(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input must be a string or array of strings."); + case 5: + error_1 = _a.sent(); + if (error_1.response && error_1.response.data) + throw error_1.response.data; + else + throw error_1; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + RawTransactions.prototype.decodeScript = function (script) { + return __awaiter(this, void 0, void 0, function () { + var response, options, response, error_2; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof script === "string")) return [3 /*break*/, 2]; + return [4 /*yield*/, axios.get(this.restURL + "rawtransactions/decodeScript/" + script)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + if (!Array.isArray(script)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "rawtransactions/decodeScript", + data: { + hexes: script + } + }; + return [4 /*yield*/, axios(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input must be a string or array of strings."); + case 5: + error_2 = _a.sent(); + if (error_2.response && error_2.response.data) + throw error_2.response.data; + else + throw error_2; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + RawTransactions.prototype.getRawTransaction = function (txid, verbose) { + if (verbose === void 0) { verbose = false; } + return __awaiter(this, void 0, void 0, function () { + var response, options, response, error_3; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof txid === "string")) return [3 /*break*/, 2]; + return [4 /*yield*/, axios.get(this.restURL + "rawtransactions/getRawTransaction/" + txid + "?verbose=" + verbose)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + if (!Array.isArray(txid)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "rawtransactions/getRawTransaction", + data: { + txids: txid, + verbose: verbose + } + }; + return [4 /*yield*/, axios(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input must be a string or array of strings."); + case 5: + error_3 = _a.sent(); + if (error_3.response && error_3.response.data) + throw error_3.response.data; + else + throw error_3; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + RawTransactions.prototype.sendRawTransaction = function (hex, allowhighfees) { + if (allowhighfees === void 0) { allowhighfees = false; } + return __awaiter(this, void 0, void 0, function () { + var response, options, response, error_4; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof hex === "string")) return [3 /*break*/, 2]; + return [4 /*yield*/, axios.get(this.restURL + "rawtransactions/sendRawTransaction/" + hex)]; + case 1: + response = _a.sent(); + if (response.data === "66: insufficient priority") { + console.warn("WARN: Insufficient Priority! This is likely due to a fee that is too low, or insufficient funds.\n Please ensure that there is BCH in the given wallet. If you are running on the testnet, get some\n BCH from the testnet faucet at https://developer.bitcoin.com/faucets/bch"); + } + return [2 /*return*/, response.data + // Array input + ]; + case 2: + if (!Array.isArray(hex)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "rawtransactions/sendRawTransaction", + data: { + hexes: hex + } + }; + return [4 /*yield*/, axios(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input hex must be a string or array of strings."); + case 5: + error_4 = _a.sent(); + if (error_4.response && error_4.response.data) + throw error_4.response.data; + else + throw error_4; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + return RawTransactions; +}()); +exports.RawTransactions = RawTransactions; diff --git a/lib/Schnorr.js b/lib/Schnorr.js index 5cc626f7..595e2e0d 100644 --- a/lib/Schnorr.js +++ b/lib/Schnorr.js @@ -1,109 +1,58 @@ "use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _bipSchnorr = require("bip-schnorr"); - -var _bipSchnorr2 = _interopRequireDefault(_bipSchnorr); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var Schnorr = function () { - function Schnorr(restURL) { - _classCallCheck(this, Schnorr); - - this.restURL = restURL; - } - - _createClass(Schnorr, [{ - key: "sign", - value: function sign(privateKey, message) { - return _bipSchnorr2.default.sign(privateKey, message); - } - }, { - key: "verify", - value: function verify(publicKey, message, signatureToVerify) { - return _bipSchnorr2.default.verify(publicKey, message, signatureToVerify); - } - }, { - key: "batchVerify", - value: function batchVerify(publicKeys, messages, signaturesToVerify) { - return _bipSchnorr2.default.batchVerify(publicKeys, messages, signaturesToVerify); - } - }, { - key: "nonInteractive", - value: function nonInteractive(privateKeys, message) { - return _bipSchnorr2.default.muSig.nonInteractive(privateKeys, message); - } - }, { - key: "computeEll", - value: function computeEll(publicKeys) { - return _bipSchnorr2.default.muSig.computeEll(publicKeys); - } - }, { - key: "publicKeyCombine", - value: function publicKeyCombine(publicKeys, publicKeyHash) { - return _bipSchnorr2.default.muSig.pubKeyCombine(publicKeys, publicKeyHash); - } - }, { - key: "sessionInitialize", - value: function sessionInitialize(sessionId, privateKey, message, pubKeyCombined, ell, idx) { - return _bipSchnorr2.default.muSig.sessionInitialize(sessionId, privateKey, message, pubKeyCombined, ell, idx); - } - }, { - key: "sessionNonceCombine", - value: function sessionNonceCombine(session, nonces) { - return _bipSchnorr2.default.muSig.sessionNonceCombine(session, nonces); - } - }, { - key: "partialSign", - value: function partialSign(session, message, nonceCombined, pubKeyCombined) { - return _bipSchnorr2.default.muSig.partialSign(session, message, nonceCombined, pubKeyCombined); - } - }, { - key: "partialSignatureVerify", - value: function partialSignatureVerify(session, partialSignature, nonceCombined, idx, pubKey, nonce) { - return _bipSchnorr2.default.muSig.partialSigVerify(session, partialSignature, nonceCombined, idx, pubKey, nonce); - } - }, { - key: "partialSignaturesCombine", - value: function partialSignaturesCombine(nonceCombined, partialSignatures) { - return _bipSchnorr2.default.muSig.partialSigCombine(nonceCombined, partialSignatures); - } - }, { - key: "bufferToInt", - value: function bufferToInt(buffer) { - return _bipSchnorr2.default.convert.bufferToInt(buffer); - } - }, { - key: "intToBuffer", - value: function intToBuffer(bigInteger) { - return _bipSchnorr2.default.convert.intToBuffer(bigInteger); - } - }, { - key: "hash", - value: function hash(buffer) { - return _bipSchnorr2.default.convert.hash(buffer); - } - }, { - key: "pointToBuffer", - value: function pointToBuffer(point) { - return _bipSchnorr2.default.convert.pointToBuffer(point); - } - }, { - key: "pubKeyToPoint", - value: function pubKeyToPoint(publicKey) { - return _bipSchnorr2.default.convert.pubKeyToPoint(publicKey); - } - }]); - - return Schnorr; -}(); - -exports.default = Schnorr; \ No newline at end of file +Object.defineProperty(exports, "__esModule", { value: true }); +var schnorr = require("bip-schnorr"); +var Schnorr = /** @class */ (function () { + function Schnorr(restURL) { + this.restURL = restURL; + } + Schnorr.prototype.sign = function (privateKey, message) { + return schnorr.sign(privateKey, message); + }; + Schnorr.prototype.verify = function (publicKey, message, signatureToVerify) { + return schnorr.verify(publicKey, message, signatureToVerify); + }; + Schnorr.prototype.batchVerify = function (publicKeys, messages, signaturesToVerify) { + return schnorr.batchVerify(publicKeys, messages, signaturesToVerify); + }; + Schnorr.prototype.nonInteractive = function (privateKeys, message) { + return schnorr.muSig.nonInteractive(privateKeys, message); + }; + Schnorr.prototype.computeEll = function (publicKeys) { + return schnorr.muSig.computeEll(publicKeys); + }; + Schnorr.prototype.publicKeyCombine = function (publicKeys, publicKeyHash) { + return schnorr.muSig.pubKeyCombine(publicKeys, publicKeyHash); + }; + Schnorr.prototype.sessionInitialize = function (sessionId, privateKey, message, pubKeyCombined, ell, idx) { + return schnorr.muSig.sessionInitialize(sessionId, privateKey, message, pubKeyCombined, ell, idx); + }; + Schnorr.prototype.sessionNonceCombine = function (session, nonces) { + return schnorr.muSig.sessionNonceCombine(session, nonces); + }; + Schnorr.prototype.partialSign = function (session, message, nonceCombined, pubKeyCombined) { + return schnorr.muSig.partialSign(session, message, nonceCombined, pubKeyCombined); + }; + Schnorr.prototype.partialSignatureVerify = function (session, partialSignature, nonceCombined, idx, pubKey, nonce) { + return schnorr.muSig.partialSigVerify(session, partialSignature, nonceCombined, idx, pubKey, nonce); + }; + Schnorr.prototype.partialSignaturesCombine = function (nonceCombined, partialSignatures) { + return schnorr.muSig.partialSigCombine(nonceCombined, partialSignatures); + }; + Schnorr.prototype.bufferToInt = function (buffer) { + return schnorr.convert.bufferToInt(buffer); + }; + Schnorr.prototype.intToBuffer = function (bigInteger) { + return schnorr.convert.intToBuffer(bigInteger); + }; + Schnorr.prototype.hash = function (buffer) { + return schnorr.convert.hash(buffer); + }; + Schnorr.prototype.pointToBuffer = function (point) { + return schnorr.convert.pointToBuffer(point); + }; + Schnorr.prototype.pubKeyToPoint = function (publicKey) { + return schnorr.convert.pubKeyToPoint(publicKey); + }; + return Schnorr; +}()); +exports.Schnorr = Schnorr; diff --git a/lib/Script.d.ts b/lib/Script.d.ts deleted file mode 100644 index 779c07fe..00000000 --- a/lib/Script.d.ts +++ /dev/null @@ -1,190 +0,0 @@ -import {Buffer} from 'buffer'; - -export declare interface Script { - opcodes: opcodes; - // nullData: null; - // multisig: string; - // pubKey: string; - // pubKeyHash: string; - scriptHash: any; - - //constructor(); - classifyInput(script:Buffer):any; - classifyOutput(script:Buffer):any; - decode(scriptBuffer:Buffer):any[]; - encode(scriptChunks:any[]):Buffer; - toASM(buffer: Buffer): string; - fromASM(asm: string): Buffer; - encodeNullDataOutput(data: Buffer): Buffer; - decodeNullDataOutput(output: Buffer): Buffer; - checkNullDataOutput(ouput: Buffer): Boolean; - encodeP2PKInput(signature: Buffer): Buffer; - decodeP2PKInput(input: Buffer): Buffer; - checkP2PKInput(input: Buffer): Boolean; - encodeP2PKOutput(pubKey: Buffer): Buffer; - decodeP2PKOutput(pubKey: Buffer): Buffer; - checkP2PKOutput(ouput: Buffer): Boolean; - encodeP2PKHInput(signature: Buffer, pubKey: Buffer): Buffer; - decodeP2PKHInput(signature: Buffer): Buffer; - checkP2PKHInput(input: Buffer): Boolean; - encodeP2PKHOutput(signature: Buffer, pubKey: Buffer): Buffer; - decodeP2PKHOutput(output: Buffer): Buffer; - checkP2PKHOutput(output: Buffer): Boolean; - encodeP2MSInput(signatures: Buffer[]): Buffer; - decodeP2MSInput(input: Buffer): Buffer; - checkP2MSInput(input: Buffer): Boolean; - encodeP2MSOutput(m: number, pubKeys: Buffer[]): Buffer; - decodeP2MSOutput(output: Buffer): Buffer; - checkP2MSOutput(input: Buffer): Boolean; - encodeP2SHInput(redeemScriptSig: Buffer, redeemScript: Buffer): Buffer; - decodeP2SHInput(input: Buffer): Buffer; - checkP2SHInput(input: Buffer): boolean; - encodeP2SHOutput(scriptHash: Buffer): Buffer; - decodeP2SHOutput(output: Buffer): Buffer; - checkP2SHOutput(output: Buffer): Boolean; - classifyInput(input: Buffer): string; - classifyOutput(output: Buffer): string; -} - -declare interface opcodes { - "OP_FALSE": 0, - "OP_0": 0, - "OP_PUSHDATA1": 76, - "OP_PUSHDATA2": 77, - "OP_PUSHDATA4": 78, - "OP_1NEGATE": 79, - "OP_RESERVED": 80, - "OP_TRUE": 81, - "OP_1": 81, - "OP_2": 82, - "OP_3": 83, - "OP_4": 84, - "OP_5": 85, - "OP_6": 86, - "OP_7": 87, - "OP_8": 88, - "OP_9": 89, - "OP_10": 90, - "OP_11": 91, - "OP_12": 92, - "OP_13": 93, - "OP_14": 94, - "OP_15": 95, - "OP_16": 96, - - "OP_NOP": 97, - "OP_VER": 98, - "OP_IF": 99, - "OP_NOTIF": 100, - "OP_VERIF": 101, - "OP_VERNOTIF": 102, - "OP_ELSE": 103, - "OP_ENDIF": 104, - "OP_VERIFY": 105, - "OP_RETURN": 106, - - "OP_TOALTSTACK": 107, - "OP_FROMALTSTACK": 108, - "OP_2DROP": 109, - "OP_2DUP": 110, - "OP_3DUP": 111, - "OP_2OVER": 112, - "OP_2ROT": 113, - "OP_2SWAP": 114, - "OP_IFDUP": 115, - "OP_DEPTH": 116, - "OP_DROP": 117, - "OP_DUP": 118, - "OP_NIP": 119, - "OP_OVER": 120, - "OP_PICK": 121, - "OP_ROLL": 122, - "OP_ROT": 123, - "OP_SWAP": 124, - "OP_TUCK": 125, - - "OP_CAT": 126, - //"OP_SUBSTR": 127, -- replaced w/ OP_SPLIT see below - //"OP_LEFT": 128, -- replaced w/ OP_SPLIT see below - //"OP_RIGHT": 129, -- replaced w/ OP_SPLIT see below - "OP_SIZE": 130, - - "OP_INVERT": 131, - "OP_AND": 132, // May 2018 reenabled - "OP_OR": 133, // May 2018 reenabled - "OP_XOR": 134, // May 2018 reenabled - "OP_EQUAL": 135, - "OP_EQUALVERIFY": 136, - "OP_RESERVED1": 137, - "OP_RESERVED2": 138, - - "OP_1ADD": 139, - "OP_1SUB": 140, - "OP_2MUL": 141, - "OP_2DIV": 142, - "OP_NEGATE": 143, - "OP_ABS": 144, - "OP_NOT": 145, - "OP_0NOTEQUAL": 146, - "OP_ADD": 147, - "OP_SUB": 148, - "OP_MUL": 149, - "OP_DIV": 150, // May 2018 reenabled - "OP_MOD": 151, // May 2018 reenabled - "OP_LSHIFT": 152, - "OP_RSHIFT": 153, - - "OP_BOOLAND": 154, - "OP_BOOLOR": 155, - "OP_NUMEQUAL": 156, - "OP_NUMEQUALVERIFY": 157, - "OP_NUMNOTEQUAL": 158, - "OP_LESSTHAN": 159, - "OP_GREATERTHAN": 160, - "OP_LESSTHANOREQUAL": 161, - "OP_GREATERTHANOREQUAL": 162, - "OP_MIN": 163, - "OP_MAX": 164, - - "OP_WITHIN": 165, - - "OP_RIPEMD160": 166, - "OP_SHA1": 167, - "OP_SHA256": 168, - "OP_HASH160": 169, - "OP_HASH256": 170, - "OP_CODESEPARATOR": 171, - "OP_CHECKSIG": 172, - "OP_CHECKSIGVERIFY": 173, - "OP_CHECKMULTISIG": 174, - "OP_CHECKMULTISIGVERIFY": 175, - - "OP_NOP1": 176, - - "OP_NOP2": 177, - "OP_CHECKLOCKTIMEVERIFY": 177, - - "OP_NOP3": 178, - "OP_CHECKSEQUENCEVERIFY": 178, - - "OP_NOP4": 179, - "OP_NOP5": 180, - "OP_NOP6": 181, - "OP_NOP7": 182, - "OP_NOP8": 183, - "OP_NOP9": 184, - "OP_NOP10": 185, - - "OP_PUBKEYHASH": 253, - "OP_PUBKEY": 254, - "OP_INVALIDOPCODE": 255 - - // May 2018 added opcodes - "OP_SPLIT": 127, - "OP_NUM2BIN": 128, - "OP_BIN2NUM": 129 - - // Nov 2018 enabled opcodes - // TBD -} - diff --git a/lib/Script.js b/lib/Script.js index 8474a9ee..4de33b6b 100644 --- a/lib/Script.js +++ b/lib/Script.js @@ -1,95 +1,61 @@ "use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _bitcoincashjsLib = require("bitcoincashjs-lib"); - -var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); - -var _bitcoincashOps = require("bitcoincash-ops"); - -var _bitcoincashOps2 = _interopRequireDefault(_bitcoincashOps); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var Script = function () { - function Script() { - _classCallCheck(this, Script); - - this.opcodes = _bitcoincashOps2.default; - this.nullData = _bitcoincashjsLib2.default.script.nullData; - this.multisig = { - input: { - encode: function encode(signatures) { - var sigs = []; - signatures.forEach(function (sig) { - sigs.push(sig); - }); - return _bitcoincashjsLib2.default.script.multisig.input.encode(sigs); - }, - decode: _bitcoincashjsLib2.default.script.multisig.input.decode, - check: _bitcoincashjsLib2.default.script.multisig.input.check - }, - output: { - encode: function encode(m, pubKeys) { - var pks = []; - pubKeys.forEach(function (pubKey) { - pks.push(pubKey); - }); - return _bitcoincashjsLib2.default.script.multisig.output.encode(m, pks); - }, - decode: _bitcoincashjsLib2.default.script.multisig.output.decode, - check: _bitcoincashjsLib2.default.script.multisig.output.check - } - }; - this.pubKey = _bitcoincashjsLib2.default.script.pubKey; - this.pubKeyHash = _bitcoincashjsLib2.default.script.pubKeyHash; - this.scriptHash = _bitcoincashjsLib2.default.script.scriptHash; - } - - _createClass(Script, [{ - key: "classifyInput", - value: function classifyInput(script) { - return _bitcoincashjsLib2.default.script.classifyInput(script); - } - }, { - key: "classifyOutput", - value: function classifyOutput(script) { - return _bitcoincashjsLib2.default.script.classifyOutput(script); - } - }, { - key: "decode", - value: function decode(scriptBuffer) { - return _bitcoincashjsLib2.default.script.decompile(scriptBuffer); - } - }, { - key: "encode", - value: function encode(scriptChunks) { - var arr = []; - scriptChunks.forEach(function (chunk) { - arr.push(chunk); - }); - return _bitcoincashjsLib2.default.script.compile(arr); - } - }, { - key: "toASM", - value: function toASM(buffer) { - return _bitcoincashjsLib2.default.script.toASM(buffer); - } - }, { - key: "fromASM", - value: function fromASM(asm) { - return _bitcoincashjsLib2.default.script.fromASM(asm); +Object.defineProperty(exports, "__esModule", { value: true }); +var Bitcoin = require("bitcoincashjs-lib"); +var opcodes = require("bitcoincash-ops"); +var Script = /** @class */ (function () { + function Script() { + this.opcodes = opcodes; + this.nullData = Bitcoin.script.nullData; + this.multisig = { + input: { + encode: function (signatures) { + var sigs = []; + signatures.forEach(function (sig) { + sigs.push(sig); + }); + return Bitcoin.script.multisig.input.encode(sigs); + }, + decode: Bitcoin.script.multisig.input.decode, + check: Bitcoin.script.multisig.input.check + }, + output: { + encode: function (m, pubKeys) { + var pks = []; + pubKeys.forEach(function (pubKey) { + pks.push(pubKey); + }); + return Bitcoin.script.multisig.output.encode(m, pks); + }, + decode: Bitcoin.script.multisig.output.decode, + check: Bitcoin.script.multisig.output.check + } + }; + this.pubKey = Bitcoin.script.pubKey; + this.pubKeyHash = Bitcoin.script.pubKeyHash; + this.scriptHash = Bitcoin.script.scriptHash; } - }]); - - return Script; -}(); - -exports.default = Script; \ No newline at end of file + Script.prototype.classifyInput = function (script) { + return Bitcoin.script.classifyInput(script); + }; + Script.prototype.classifyOutput = function (script) { + return Bitcoin.script.classifyOutput(script); + }; + Script.prototype.decode = function (scriptBuffer) { + return Bitcoin.script.decompile(scriptBuffer); + }; + Script.prototype.encode = function (scriptChunks) { + var arr = []; + scriptChunks.forEach(function (chunk) { + arr.push(chunk); + }); + return Bitcoin.script.compile(arr); + }; + Script.prototype.toASM = function (buffer) { + return Bitcoin.script.toASM(buffer); + }; + Script.prototype.fromASM = function (asm) { + return Bitcoin.script.fromASM(asm); + }; + return Script; +}()); +exports.Script = Script; diff --git a/lib/Socket.d.ts b/lib/Socket.d.ts deleted file mode 100644 index 9a6dfba6..00000000 --- a/lib/Socket.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -declare interface Socket { - new(restURL?: string): Socket - listen(endpoint: string, cb: any): void; -} - -export default Socket; diff --git a/lib/Socket.js b/lib/Socket.js index ece057b2..aaf17cd8 100644 --- a/lib/Socket.js +++ b/lib/Socket.js @@ -1,54 +1,32 @@ "use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _socket = require("socket.io-client"); - -var _socket2 = _interopRequireDefault(_socket); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var Socket = function () { - function Socket() { - var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - _classCallCheck(this, Socket); - - if (typeof config === "string") { - // TODO remove this check in v2.0 - this.socket = (0, _socket2.default)("" + config); - } else { - if (config.restURL) { - this.socket = (0, _socket2.default)("" + config.restURL); - } else { - var restURL = "https://rest.bitcoin.com"; - this.socket = (0, _socket2.default)("" + restURL); - } - - if (config.callback) config.callback(); +Object.defineProperty(exports, "__esModule", { value: true }); +var io = require("socket.io-client"); +var Socket = /** @class */ (function () { + function Socket(config) { + if (config === void 0) { config = {}; } + if (typeof config === "string") { + // TODO remove this check in v2.0 + this.socket = io("" + config); + } + else { + if (config.restURL) { + this.socket = io("" + config.restURL); + } + else { + var restURL = "https://rest.bitcoin.com"; + this.socket = io("" + restURL); + } + if (config.callback) + config.callback(); + } } - } - - _createClass(Socket, [{ - key: "listen", - value: function listen(endpoint, cb) { - this.socket.emit(endpoint); - - if (endpoint === "blocks") this.socket.on("blocks", function (msg) { - return cb(msg); - });else if (endpoint === "transactions") this.socket.on("transactions", function (msg) { - return cb(msg); - }); - } - }]); - - return Socket; -}(); - -exports.default = Socket; \ No newline at end of file + Socket.prototype.listen = function (endpoint, cb) { + this.socket.emit(endpoint); + if (endpoint === "blocks") + this.socket.on("blocks", function (msg) { return cb(msg); }); + else if (endpoint === "transactions") + this.socket.on("transactions", function (msg) { return cb(msg); }); + }; + return Socket; +}()); +exports.Socket = Socket; diff --git a/lib/Transaction.d.ts b/lib/Transaction.d.ts deleted file mode 100644 index c47bad91..00000000 --- a/lib/Transaction.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -import {Buffer} from 'buffer'; - -import { TransactionBuilder } from './TransactionBuilder'; -export declare interface Transaction { - //constructor(restURL: string); - transaction(): any; - fromHex(hex: string): any; - transactionBuilder(network: string): any; - fromTransaction(tx: any): any; - details(txids: string[]): Promise; -} - -declare interface TxnDetails{ - txid: string; - version: number; - locktime: number; - vin: object[]; - vout: object[]; - blockhash: string; - blockheight: number; - confirmations: number; - time: number; - blocktime: number; - isCoinBase: boolean; - valueOut: number; - size: number; -} \ No newline at end of file diff --git a/lib/Transaction.js b/lib/Transaction.js index d9454f34..d66d8fd2 100644 --- a/lib/Transaction.js +++ b/lib/Transaction.js @@ -1,61 +1,85 @@ "use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _bitcoincashjsLib = require("bitcoincashjs-lib"); - -var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); - -var _axios = require("axios"); - -var _axios2 = _interopRequireDefault(_axios); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var Transaction = function () { - function Transaction(restURL) { - _classCallCheck(this, Transaction); - - this.restURL = restURL; - } - - _createClass(Transaction, [{ - key: "details", - value: async function details(txid) { - try { - // Handle single address. - if (typeof txid === "string") { - var response = await _axios2.default.get(this.restURL + "transaction/details/" + txid); - return response.data; - - // Array of addresses - } else if (Array.isArray(txid)) { - var options = { - method: "POST", - url: this.restURL + "transaction/details", - data: { - txids: txid +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; } - }; - var _response = await (0, _axios2.default)(options); - - return _response.data; - } - - throw new Error("Input txid must be a string or array of strings."); - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } - }]); - - return Transaction; -}(); - -exports.default = Transaction; \ No newline at end of file +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var axios = require("axios"); +var Transaction = /** @class */ (function () { + function Transaction(restURL) { + this.restURL = restURL; + } + Transaction.prototype.details = function (txid) { + return __awaiter(this, void 0, void 0, function () { + var response, options, response, error_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof txid === "string")) return [3 /*break*/, 2]; + return [4 /*yield*/, axios.get(this.restURL + "transaction/details/" + txid)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data + // Array of addresses + ]; + case 2: + if (!Array.isArray(txid)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "transaction/details", + data: { + txids: txid + } + }; + return [4 /*yield*/, axios(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input txid must be a string or array of strings."); + case 5: + error_1 = _a.sent(); + if (error_1.response && error_1.response.data) + throw error_1.response.data; + else + throw error_1; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + return Transaction; +}()); +exports.Transaction = Transaction; diff --git a/lib/TransactionBuilder.d.ts b/lib/TransactionBuilder.d.ts deleted file mode 100644 index 6f23e15a..00000000 --- a/lib/TransactionBuilder.d.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { Buffer } from "buffer" - -import { Transaction } from "./Transaction" -import { ECPair } from "./ECPair" - -declare type ECSignature = any - -export declare interface TransactionBuilder { - // bitcoincash: coininfo.bitcoincash.main; - // bitcoincashBitcoinJSLib: Bitcoin.toBitcoinJS; - transaction: any - DEFAULT_SEQUENCE: number - hashTypes: HashTypes - signatureAlgorithms: SignatureAlgorithms - bip66: any - bip68: any - - new (network?: string): TransactionBuilder - - addInput( - txHash: string | Buffer, - vout: number, - sequence?: number, - prevOutScript?: string - ): void - addInputScript(vout: number, script: Buffer): void - addOutput(scriptPubKey: string | Buffer, amount: number): void - setLockTime(locktime: number): void - sign( - vin: number, - keyPair: ECPair, - redeemScript: Buffer | undefined, - hashType: number, - value: number, - signatureAlgorithm?: number - ): ECSignature - build(): any -} - -declare interface SignatureAlgorithms { - ECDSA: number - SCHNORR: number -} - -declare interface HashTypes { - SIGHASH_ALL: number - SIGHASH_NONE: number - SIGHASH_SINGLE: number - SIGHASH_ANYONECANPAY: number - SIGHASH_BITCOINCASH_BIP143: number -} diff --git a/lib/TransactionBuilder.js b/lib/TransactionBuilder.js index ff4b6fd2..76ad491e 100644 --- a/lib/TransactionBuilder.js +++ b/lib/TransactionBuilder.js @@ -1,130 +1,79 @@ "use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _bitcoincashjsLib = require("bitcoincashjs-lib"); - -var _bitcoincashjsLib2 = _interopRequireDefault(_bitcoincashjsLib); - -var _coininfo = require("coininfo"); - -var _coininfo2 = _interopRequireDefault(_coininfo); - -var _bip = require("bip66"); - -var _bip2 = _interopRequireDefault(_bip); - -var _bcBip = require("bc-bip68"); - -var _bcBip2 = _interopRequireDefault(_bcBip); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var TransactionBuilder = function () { - _createClass(TransactionBuilder, null, [{ - key: "setAddress", - value: function setAddress(address) { - TransactionBuilder._address = address; +Object.defineProperty(exports, "__esModule", { value: true }); +var Bitcoin = require("bitcoincashjs-lib"); +var coininfo = require("coininfo"); +var bip66 = require("bip66"); +var bip68 = require("bc-bip68"); +var TransactionBuilder = /** @class */ (function () { + function TransactionBuilder(network) { + if (network === void 0) { network = "mainnet"; } + var bitcoincash; + if (network === "bitcoincash" || network === "mainnet") + bitcoincash = coininfo.bitcoincash.main; + else + bitcoincash = coininfo.bitcoincash.test; + var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); + this.transaction = new Bitcoin.TransactionBuilder(bitcoincashBitcoinJSLib); + this.DEFAULT_SEQUENCE = 0xffffffff; + this.hashTypes = { + SIGHASH_ALL: 0x01, + SIGHASH_NONE: 0x02, + SIGHASH_SINGLE: 0x03, + SIGHASH_ANYONECANPAY: 0x80, + SIGHASH_BITCOINCASH_BIP143: 0x40, + ADVANCED_TRANSACTION_MARKER: 0x00, + ADVANCED_TRANSACTION_FLAG: 0x01 + }; + this.signatureAlgorithms = { + ECDSA: Bitcoin.ECSignature.ECDSA, + SCHNORR: Bitcoin.ECSignature.SCHNORR + }; + this.bip66 = bip66; + this.bip68 = bip68; + this.p2shInput = false; + this.tx; } - }]); - - function TransactionBuilder() { - var network = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "mainnet"; - - _classCallCheck(this, TransactionBuilder); - - var bitcoincash = void 0; - if (network === "bitcoincash" || network === "mainnet") bitcoincash = _coininfo2.default.bitcoincash.main;else bitcoincash = _coininfo2.default.bitcoincash.test; - - var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); - this.transaction = new _bitcoincashjsLib2.default.TransactionBuilder(bitcoincashBitcoinJSLib); - this.DEFAULT_SEQUENCE = 0xffffffff; - this.hashTypes = { - SIGHASH_ALL: 0x01, - SIGHASH_NONE: 0x02, - SIGHASH_SINGLE: 0x03, - SIGHASH_ANYONECANPAY: 0x80, - SIGHASH_BITCOINCASH_BIP143: 0x40, - ADVANCED_TRANSACTION_MARKER: 0x00, - ADVANCED_TRANSACTION_FLAG: 0x01 + TransactionBuilder.setAddress = function (address) { + TransactionBuilder._address = address; }; - this.signatureAlgorithms = { - ECDSA: _bitcoincashjsLib2.default.ECSignature.ECDSA, - SCHNORR: _bitcoincashjsLib2.default.ECSignature.SCHNORR + TransactionBuilder.prototype.addInput = function (txHash, vout, sequence, prevOutScript) { + if (sequence === void 0) { sequence = this.DEFAULT_SEQUENCE; } + this.transaction.addInput(txHash, vout, sequence, prevOutScript); }; - this.bip66 = _bip2.default; - this.bip68 = _bcBip2.default; - this.p2shInput = false; - this.tx; - } - - _createClass(TransactionBuilder, [{ - key: "addInput", - value: function addInput(txHash, vout) { - var sequence = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.DEFAULT_SEQUENCE; - var prevOutScript = arguments[3]; - - this.transaction.addInput(txHash, vout, sequence, prevOutScript); - } - }, { - key: "addInputScript", - value: function addInputScript(vout, script) { - this.tx = this.transaction.buildIncomplete(); - this.tx.setInputScript(vout, script); - this.p2shInput = true; - } - }, { - key: "addInputScripts", - value: function addInputScripts(scripts) { - var _this = this; - - this.tx = this.transaction.buildIncomplete(); - scripts.forEach(function (script) { - _this.tx.setInputScript(script.vout, script.script); - }); - this.p2shInput = true; - } - }, { - key: "addOutput", - value: function addOutput(scriptPubKey, amount) { - try { - this.transaction.addOutput(TransactionBuilder._address.toLegacyAddress(scriptPubKey), amount); - } catch (error) { - this.transaction.addOutput(scriptPubKey, amount); - } - } - }, { - key: "setLockTime", - value: function setLockTime(locktime) { - this.transaction.setLockTime(locktime); - } - }, { - key: "sign", - value: function sign(vin, keyPair, redeemScript) { - var hashType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : this.hashTypes.SIGHASH_ALL; - var value = arguments[4]; - var signatureAlgorithm = arguments[5]; - - var witnessScript = void 0; - - this.transaction.sign(vin, keyPair, redeemScript, hashType, value, witnessScript, signatureAlgorithm); - } - }, { - key: "build", - value: function build() { - if (this.p2shInput === true) return this.tx; - - return this.transaction.build(); - } - }]); - - return TransactionBuilder; -}(); - -exports.default = TransactionBuilder; \ No newline at end of file + TransactionBuilder.prototype.addInputScript = function (vout, script) { + this.tx = this.transaction.buildIncomplete(); + this.tx.setInputScript(vout, script); + this.p2shInput = true; + }; + TransactionBuilder.prototype.addInputScripts = function (scripts) { + var _this = this; + this.tx = this.transaction.buildIncomplete(); + scripts.forEach(function (script) { + _this.tx.setInputScript(script.vout, script.script); + }); + this.p2shInput = true; + }; + TransactionBuilder.prototype.addOutput = function (scriptPubKey, amount) { + try { + this.transaction.addOutput(TransactionBuilder._address.toLegacyAddress(scriptPubKey), amount); + } + catch (error) { + this.transaction.addOutput(scriptPubKey, amount); + } + }; + TransactionBuilder.prototype.setLockTime = function (locktime) { + this.transaction.setLockTime(locktime); + }; + TransactionBuilder.prototype.sign = function (vin, keyPair, redeemScript, hashType, value, signatureAlgorithm) { + if (hashType === void 0) { hashType = this.hashTypes.SIGHASH_ALL; } + var witnessScript; + this.transaction.sign(vin, keyPair, redeemScript, hashType, value, witnessScript, signatureAlgorithm); + }; + TransactionBuilder.prototype.build = function () { + if (this.p2shInput === true) + return this.tx; + return this.transaction.build(); + }; + return TransactionBuilder; +}()); +exports.TransactionBuilder = TransactionBuilder; diff --git a/lib/Util.d.ts b/lib/Util.d.ts deleted file mode 100644 index 756985f5..00000000 --- a/lib/Util.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -export declare interface Util { - //constructor(restURL:string); - validateAddress(address: string): Promise; -} - -declare interface AddressDetails { - isvalid: boolean; - address: string; - scriptPubKey: string; - ismine: boolean; - iswatchonly: boolean; - isscript: boolean; - pubkey: string; - iscompressed: boolean; - account: string; -} \ No newline at end of file diff --git a/lib/Util.js b/lib/Util.js index 3e8dd31f..a52348a1 100644 --- a/lib/Util.js +++ b/lib/Util.js @@ -1,57 +1,85 @@ "use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _axios = require("axios"); - -var _axios2 = _interopRequireDefault(_axios); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var Util = function () { - function Util(restURL) { - _classCallCheck(this, Util); - - this.restURL = restURL; - } - - _createClass(Util, [{ - key: "validateAddress", - value: async function validateAddress(address) { - try { - // Single block - if (typeof address === "string") { - var response = await _axios2.default.get(this.restURL + "util/validateAddress/" + address); - return response.data; - - // Array of blocks. - } else if (Array.isArray(address)) { - var options = { - method: "POST", - url: this.restURL + "util/validateAddress", - data: { - addresses: address +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; } - }; - var _response = await (0, _axios2.default)(options); - - return _response.data; - } - - throw new Error("Input must be a string or array of strings."); - } catch (error) { - if (error.response && error.response.data) throw error.response.data;else throw error; - } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } - }]); - - return Util; -}(); - -exports.default = Util; \ No newline at end of file +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var axios = require("axios"); +var Util = /** @class */ (function () { + function Util(restURL) { + this.restURL = restURL; + } + Util.prototype.validateAddress = function (address) { + return __awaiter(this, void 0, void 0, function () { + var response, options, response, error_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof address === "string")) return [3 /*break*/, 2]; + return [4 /*yield*/, axios.get(this.restURL + "util/validateAddress/" + address)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data + // Array of blocks. + ]; + case 2: + if (!Array.isArray(address)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "util/validateAddress", + data: { + addresses: address + } + }; + return [4 /*yield*/, axios(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input must be a string or array of strings."); + case 5: + error_1 = _a.sent(); + if (error_1.response && error_1.response.data) + throw error_1.response.data; + else + throw error_1; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + return Util; +}()); +exports.Util = Util; diff --git a/lib/Wallet.js b/lib/Wallet.js index e212cde8..fd62e387 100644 --- a/lib/Wallet.js +++ b/lib/Wallet.js @@ -1,104 +1,10 @@ "use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - +Object.defineProperty(exports, "__esModule", { value: true }); // import BCHWalletBridge from "bch-wallet-bridge.js" -var Wallet = function () { - function Wallet(walletProvider) { - // this.bchWalletBridge = new BCHWalletBridge(walletProvider) - - _classCallCheck(this, Wallet); - } - - _createClass(Wallet, [{ - key: "setWalletProvider", - value: function setWalletProvider(walletProvider) { - this.bchWalletBridge.walletProvider = walletProvider; +var Wallet = /** @class */ (function () { + function Wallet(walletProvider) { + // this.bchWalletBridge = new BCHWalletBridge(walletProvider) } - }, { - key: "getAddress", - value: function getAddress(changeType, index, dAppId) { - return this.bchWalletBridge.getAddress(changeType, index, dAppId); - } - }, { - key: "getAddressIndex", - value: function getAddressIndex(changeType, dAppId) { - return this.bchWalletBridge.getAddressIndex(changeType, dAppId); - } - }, { - key: "getAddresses", - value: function getAddresses(changeType, startIndex, size, dAppId) { - return this.bchWalletBridge.getAddresses(changeType, startIndex, size, dAppId); - } - }, { - key: "getRedeemScript", - value: function getRedeemScript(p2shAddress, dAppId) { - return this.bchWalletBridge.getRedeemScript(p2shAddress, dAppId); - } - }, { - key: "getRedeemScripts", - value: function getRedeemScripts(dAppId) { - return this.bchWalletBridge.getRedeemScripts(dAppId); - } - }, { - key: "addRedeemScript", - value: function addRedeemScript(redeemScript, dAppId) { - return this.bchWalletBridge.addRedeemScript(redeemScript, dAppId); - } - }, { - key: "getUtxos", - value: function getUtxos(dAppId) { - return this.bchWalletBridge.getUtxos(dAppId); - } - }, { - key: "getBalance", - value: function getBalance(dAppId) { - return this.bchWalletBridge.getBalance(dAppId); - } - }, { - key: "sign", - value: function sign(address, dataToSign) { - return this.bchWalletBridge.sign(address, dataToSign); - } - }, { - key: "buildTransaction", - value: function buildTransaction(outputs, dAppId) { - return this.bchWalletBridge.buildTransaction(outputs, dAppId); - } - }, { - key: "getProtocolVersion", - value: function getProtocolVersion() { - return this.bchWalletBridge.getProtocolVersion(); - } - }, { - key: "getNetwork", - value: function getNetwork() { - return this.bchWalletBridge.getNetwork(); - } - }, { - key: "getFeePerByte", - value: function getFeePerByte() { - return this.bchWalletBridge.getFeePerByte(); - } - }, { - key: "getDefaultDAppId", - value: function getDefaultDAppId() { - return this.bchWalletBridge.getDefaultDAppId(); - } - }, { - key: "setDefaultDAppId", - value: function setDefaultDAppId(dAppId) { - return this.bchWalletBridge.setDefaultDAppId(dAppId); - } - }]); - - return Wallet; -}(); - -exports.default = Wallet; \ No newline at end of file + return Wallet; +}()); +exports.Wallet = Wallet; diff --git a/lib/bitbox-sdk.d.ts b/lib/bitbox-sdk.d.ts deleted file mode 100644 index 5f58ad2f..00000000 --- a/lib/bitbox-sdk.d.ts +++ /dev/null @@ -1,45 +0,0 @@ -// local deps -import { BitcoinCash } from "./BitcoinCash" -import { Crypto } from "./Crypto" -import { Util } from "./Util" -import { Block } from "./Block" -import { Blockchain } from "./Blockchain" -import { Control } from "./Control" -import { Generating } from "./Generating" -import { Mining } from "./Mining" -import { RawTransactions } from "./RawTransactions" -import { Mnemonic } from "./Mnemonic" -import { Address } from "./Address" -import { HDNode } from "./HDNode" -import { Transaction } from "./Transaction" -import { TransactionBuilder } from "./TransactionBuilder" -import { ECPair } from "./ECPair" -import { Script } from "./Script" -import Price from "./Price" -import Socket from "./Socket" - -declare class BITBOXSDK { - constructor(config?: any) - - restURL: string - Address: Address - BitcoinCash: BitcoinCash - Block: Block - Blockchain: Blockchain - Control: Control - Generating: Generating - Mining: Mining - Crypto: Crypto - ECPair: ECPair - HDNode: HDNode - Mnemonic: Mnemonic - Price: Price - RawTransactions: RawTransactions - Script: Script - Transaction: Transaction - TransactionBuilder: TransactionBuilder - Util: Util - Socket: Socket -} - -export default BITBOXSDK diff --git a/lib/interfaces/BITBOXInterfaces.js b/lib/interfaces/BITBOXInterfaces.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/lib/interfaces/BITBOXInterfaces.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/package-lock.json b/package-lock.json index 25a4fae0..949ae345 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,11 +13,11 @@ } }, "@babel/generator": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.0.tgz", - "integrity": "sha512-/v5I+a1jhGSKLgZDcmAUZ4K/VePi43eRkUs3yePW1HB1iANOD5tqJXwGSG4BZhSksP8J9ejSlwGeTiiOFZOrXQ==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.4.tgz", + "integrity": "sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==", "requires": { - "@babel/types": "^7.4.0", + "@babel/types": "^7.4.4", "jsesc": "^2.5.1", "lodash": "^4.17.11", "source-map": "^0.5.0", @@ -50,11 +50,11 @@ } }, "@babel/helper-split-export-declaration": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.0.tgz", - "integrity": "sha512-7Cuc6JZiYShaZnybDmfwhY4UYHzI6rlqhWjaIqbsJGsIqPimEYy5uh3akSRLMg65LSdSEnJ8a8/bWQN6u2oMGw==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", + "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", "requires": { - "@babel/types": "^7.4.0" + "@babel/types": "^7.4.4" } }, "@babel/highlight": { @@ -65,65 +65,43 @@ "chalk": "^2.0.0", "esutils": "^2.0.2", "js-tokens": "^4.0.0" - }, - "dependencies": { - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - } } }, "@babel/parser": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.2.tgz", - "integrity": "sha512-9fJTDipQFvlfSVdD/JBtkiY0br9BtfvW2R8wo6CX/Ej2eMuV0gWPk1M67Mt3eggQvBqYW1FCEk8BN7WvGm/g5g==" + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.4.tgz", + "integrity": "sha512-5pCS4mOsL+ANsFZGdvNLybx4wtqAZJ0MJjMHxvzI3bvIsz6sQvzW8XX92EYIkiPtIvcfG3Aj+Ir5VNyjnZhP7w==" }, "@babel/template": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.0.tgz", - "integrity": "sha512-SOWwxxClTTh5NdbbYZ0BmaBVzxzTh2tO/TeLTbF6MO6EzVhHTnff8CdBXx3mEtazFBoysmEM6GU/wF+SuSx4Fw==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", + "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==", "requires": { "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.4.0", - "@babel/types": "^7.4.0" + "@babel/parser": "^7.4.4", + "@babel/types": "^7.4.4" } }, "@babel/traverse": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.0.tgz", - "integrity": "sha512-/DtIHKfyg2bBKnIN+BItaIlEg5pjAnzHOIQe5w+rHAw/rg9g0V7T4rqPX8BJPfW11kt3koyjAnTNwCzb28Y1PA==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.4.tgz", + "integrity": "sha512-Gw6qqkw/e6AGzlyj9KnkabJX7VcubqPtkUQVAwkc0wUMldr3A/hezNB3Rc5eIvId95iSGkGIOe5hh1kMKf951A==", "requires": { "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.4.0", + "@babel/generator": "^7.4.4", "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.4.0", - "@babel/parser": "^7.4.0", - "@babel/types": "^7.4.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/parser": "^7.4.4", + "@babel/types": "^7.4.4", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.11" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "globals": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", - "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==" - } } }, "@babel/types": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.0.tgz", - "integrity": "sha512-aPvkXyU2SPOnztlgo8n9cEiXW755mgyvueUPcpStqdzoSPm0fjO0vQBjLkt3JKJW7ufikfcnMTTPsN1xaTsBPA==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", + "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", "requires": { "esutils": "^2.0.2", "lodash": "^4.17.11", @@ -154,38 +132,73 @@ "dev": true }, "@octokit/endpoint": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-3.2.3.tgz", - "integrity": "sha512-yUPCt4vMIOclox13CUxzuKiPJIFo46b/6GhUnUTw5QySczN1L0DtSxgmIZrZV4SAb9EyAqrceoyrWoYVnfF2AA==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-4.2.2.tgz", + "integrity": "sha512-5IZjkUNhx5q0IRN7Juwf5A+Lu2qAso7ULST7C1P2mbGHePuCOk936Stcl/5GdJpB3ovD8M6/Lv3xra6Mn0IKNQ==", "dev": true, "requires": { "deepmerge": "3.2.0", - "is-plain-object": "^2.0.4", + "is-plain-object": "^3.0.0", "universal-user-agent": "^2.0.1", "url-template": "^2.0.8" + }, + "dependencies": { + "is-plain-object": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz", + "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==", + "dev": true, + "requires": { + "isobject": "^4.0.0" + } + }, + "isobject": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", + "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==", + "dev": true + } } }, "@octokit/request": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-2.4.2.tgz", - "integrity": "sha512-lxVlYYvwGbKSHXfbPk5vxEA8w4zHOH1wobado4a9EfsyD3Cbhuhus1w0Ye9Ro0eMubGO8kNy5d+xNFisM3Tvaw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-3.0.1.tgz", + "integrity": "sha512-aH61OVkMKMofGW/go2x4mJ44X4U/JF8xsiFFictwkZYtz0psE8OPKpsP2TZBZaJoCg2wmeTyEgqGfY+veg0hGQ==", "dev": true, "requires": { - "@octokit/endpoint": "^3.2.0", + "@octokit/endpoint": "^4.0.0", "deprecation": "^1.0.1", - "is-plain-object": "^2.0.4", + "is-plain-object": "^3.0.0", "node-fetch": "^2.3.0", "once": "^1.4.0", "universal-user-agent": "^2.0.1" + }, + "dependencies": { + "is-plain-object": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz", + "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==", + "dev": true, + "requires": { + "isobject": "^4.0.0" + } + }, + "isobject": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", + "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==", + "dev": true + } } }, "@octokit/rest": { - "version": "16.21.1", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.21.1.tgz", - "integrity": "sha512-T9YhgHMrpDK5fOnOOeF71HmHLjk7rRi+kaFt13NL9xVRYMj/lsQqyc6Kf9D5ZQf3fGkDJqgHgUvdWGa7vH1J6A==", + "version": "16.25.2", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.25.2.tgz", + "integrity": "sha512-aUSzvY33dz6RMLLmT+1aNc2OvvAmDfdXKaOzFEEBNJjsjckNjWkB2hgGa5plnnbuLPCloVldPuAdm+8REZGLcg==", "dev": true, "requires": { - "@octokit/request": "2.4.2", + "@octokit/request": "3.0.1", + "atob-lite": "^2.0.0", "before-after-hook": "^1.4.0", "btoa-lite": "^1.0.0", "deprecation": "^1.0.1", @@ -210,17 +223,6 @@ "debug": "^4.0.0", "import-from": "^2.1.0", "lodash": "^4.17.4" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } } }, "@semantic-release/error": { @@ -254,19 +256,10 @@ "url-join": "^4.0.0" }, "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, "mime": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz", - "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.2.tgz", + "integrity": "sha512-zJBfZDkwRu+j3Pdd2aHsR5GfH2jIWhmL1ZzBoc+X+3JEti2hbArWcyJ+1laC1D2/U/W1a/+Cegj0/OnEU2ybjg==", "dev": true } } @@ -290,22 +283,6 @@ "registry-auth-token": "^3.3.1" }, "dependencies": { - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, "read-pkg": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz", @@ -336,13 +313,23 @@ "lodash": "^4.17.4" }, "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { - "ms": "^2.1.1" + "pump": "^3.0.0" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } } } @@ -406,10 +393,9 @@ "dev": true }, "@types/node": { - "version": "11.12.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-11.12.1.tgz", - "integrity": "sha512-sKDlqv6COJrR7ar0+GqqhrXQDzQlMcqMnF2iEU6m9hLo8kxozoAGUazwPyELHlRVmjsbvlnGXjnzyptSXVmceA==", - "dev": true + "version": "10.14.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.6.tgz", + "integrity": "sha512-Fvm24+u85lGmV4hT5G++aht2C5I4Z4dYlWZIh62FAfFO/TfzXtPpoLI6I7AuBWkIFqZCnhFOoTT7RjjaIL5Fjg==" }, "JSONStream": { "version": "1.3.5", @@ -427,33 +413,25 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", "requires": { - "mime-types": "~2.1.18", - "negotiator": "0.6.1" + "mime-types": "~2.1.24", + "negotiator": "0.6.2" } }, "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==" + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz", + "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==", + "dev": true }, "acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", - "requires": { - "acorn": "^3.0.4" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=" - } - } + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz", + "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==", + "dev": true }, "after": { "version": "0.8.2", @@ -495,20 +473,47 @@ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=" }, + "ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "dev": true, + "requires": { + "ansi-wrap": "^0.1.0" + } + }, "ansi-escapes": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" }, + "ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "dev": true, + "requires": { + "ansi-wrap": "0.1.0" + } + }, "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", + "dev": true }, "ansicolors": { "version": "0.3.2", @@ -517,15 +522,30 @@ "dev": true }, "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", - "optional": true, + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "append-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", + "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", + "dev": true, "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" + "buffer-equal": "^1.0.0" } }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -541,12 +561,17 @@ "dev": true }, "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "optional": true, + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "arr-filter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", + "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", + "dev": true, "requires": { - "arr-flatten": "^1.0.1" + "make-iterator": "^1.0.0" } }, "arr-flatten": { @@ -554,11 +579,26 @@ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" }, + "arr-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", + "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", + "dev": true, + "requires": { + "make-iterator": "^1.0.0" + } + }, "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, + "array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "dev": true + }, "array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", @@ -586,6 +626,66 @@ "es-abstract": "^1.7.0" } }, + "array-initial": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", + "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", + "dev": true, + "requires": { + "array-slice": "^1.0.0", + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "array-last": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", + "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", + "dev": true, + "requires": { + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "dev": true + }, + "array-sort": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", + "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", + "dev": true, + "requires": { + "default-compare": "^1.0.0", + "get-value": "^2.0.6", + "kind-of": "^5.0.2" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, "array-union": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", @@ -602,10 +702,9 @@ "dev": true }, "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "optional": true + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "arraybuffer.slice": { "version": "0.0.7", @@ -658,17 +757,45 @@ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", "dev": true }, + "async-done": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.1.tgz", + "integrity": "sha512-R1BaUeJ4PMoLNJuk+0tLJgjmEqVsdN118+Z8O+alhnQDQgy0kmD5Mqi0DNEmMx2LM0Ed5yekKu+ZXYvIHceicg==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.2", + "process-nextick-args": "^1.0.7", + "stream-exhaust": "^1.0.1" + }, + "dependencies": { + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "dev": true + } + } + }, "async-each": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.2.tgz", - "integrity": "sha512-6xrbvN0MOBKSJDdonmSSz2OwFSgxRaVtBDes26mj9KIGtDo+g9xosFRSC+i1gQh2oAN/tQ62AI/pGZGQjVOiRg==", - "optional": true + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" }, "async-limiter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" }, + "async-settle": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", + "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", + "dev": true, + "requires": { + "async-done": "^1.2.2" + } + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -680,6 +807,12 @@ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, + "atob-lite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz", + "integrity": "sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY=", + "dev": true + }, "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", @@ -733,6 +866,11 @@ "js-tokens": "^3.0.2" }, "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", @@ -744,6 +882,16 @@ "strip-ansi": "^3.0.0", "supports-color": "^2.0.0" } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" } } }, @@ -1352,6 +1500,11 @@ "ms": "2.0.0" } }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -1375,6 +1528,23 @@ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" }, + "bach": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", + "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", + "dev": true, + "requires": { + "arr-filter": "^1.1.1", + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "array-each": "^1.0.0", + "array-initial": "^1.0.0", + "array-last": "^1.1.1", + "async-done": "^1.2.2", + "async-settle": "^1.0.0", + "now-and-later": "^2.0.0" + } + }, "backo2": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", @@ -1433,11 +1603,6 @@ "kind-of": "^6.0.2" } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", @@ -1542,8 +1707,7 @@ "binary-extensions": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "optional": true + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" }, "bindings": { "version": "1.5.0", @@ -1596,9 +1760,9 @@ } }, "bip39": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz", - "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.6.0.tgz", + "integrity": "sha512-RrnQRG2EgEoqO24ea+Q/fftuPUZLmrEM3qNhhGsA3PbaXaCW791LTzPuVyx/VprXQcTbPJ3K3UeTna8ZnVl2sg==", "requires": { "create-hash": "^1.1.0", "pbkdf2": "^3.0.9", @@ -1631,18 +1795,27 @@ "bech32": "^1.1.2", "bigi": "^1.4.0", "bip66": "^1.1.0", - "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#2.0.0", + "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3", "bs58check": "^2.0.0", "create-hash": "^1.1.0", "create-hmac": "^1.1.3", "ecurve": "^1.0.0", "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "github:Bitcoin-com/pushdata-bitcoin#1.2.1", + "pushdata-bitcoin": "github:Bitcoin-com/pushdata-bitcoin#9b75eebe597853c6eeaec3e6c44b6d9c9cd7ee86", "randombytes": "^2.0.1", "safe-buffer": "^5.0.1", "typeforce": "^1.11.3", "varuint-bitcoin": "^1.0.4", "wif": "^2.0.1" + }, + "dependencies": { + "pushdata-bitcoin": { + "version": "github:Bitcoin-com/pushdata-bitcoin#9b75eebe597853c6eeaec3e6c44b6d9c9cd7ee86", + "from": "github:Bitcoin-com/pushdata-bitcoin#1.2.1", + "requires": { + "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3" + } + } } }, "bitcoinjs-message": { @@ -1668,9 +1841,9 @@ "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" }, "bottleneck": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.17.1.tgz", - "integrity": "sha512-ARJKJRNq6+W7BBYZnkqA1F4+HDclht7QyRJl2haAVtD7xBTG8Prpy6huO+canGLUxZaRrek8U/0NjTvoXACsaQ==", + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.18.0.tgz", + "integrity": "sha512-U1xiBRaokw4yEguzikOl0VrnZp6uekjpmfrh6rKtr1D+/jFjYCL6J83ZXlGtlBDwVdTmJJ+4Lg5FpB3xmLSiyA==", "dev": true }, "brace-expansion": { @@ -1683,14 +1856,30 @@ } }, "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "optional": true, + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } } }, "brorand": { @@ -1759,6 +1948,12 @@ "ieee754": "^1.1.4" } }, + "buffer-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", + "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", + "dev": true + }, "buffer-equals": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/buffer-equals/-/buffer-equals-1.0.4.tgz", @@ -1793,13 +1988,6 @@ "to-object-path": "^0.3.0", "union-value": "^1.0.0", "unset-value": "^1.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "call-me-maybe": { @@ -1826,11 +2014,12 @@ } }, "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, "requires": { - "callsites": "^0.2.0" + "caller-callsite": "^2.0.0" } }, "callsite": { @@ -1839,14 +2028,16 @@ "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" }, "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true }, "camelcase": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.2.0.tgz", - "integrity": "sha512-IXFsBS2pC+X0j0N/GE7Dm7j3bsEBp+oTpb7F50dwEVX7rf3IgwO9XatnegTsDtniKCUtEJH4fSU6Asw7uoVLfQ==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true }, "camelcase-keys": { "version": "4.2.0", @@ -1876,9 +2067,9 @@ } }, "caniuse-lite": { - "version": "1.0.30000955", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000955.tgz", - "integrity": "sha512-6AwmIKgqCYfDWWadRkAuZSHMQP4Mmy96xAXEdRBlN/luQhlRYOKgwOlZ9plpCOsVbBuqbTmGqDK3JUM/nlr8CA==" + "version": "1.0.30000967", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000967.tgz", + "integrity": "sha512-rUBIbap+VJfxTzrM4akJ00lkvVb5/n5v3EGXfWzSH5zT8aJmGzjA8HWhJ4U6kCpzxozUSnB+yvAYDRPY6mRpgQ==" }, "cardinal": { "version": "2.1.1", @@ -1926,30 +2117,13 @@ "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } } }, "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=" + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true }, "check-error": { "version": "1.0.2", @@ -1972,6 +2146,92 @@ "is-glob": "^2.0.0", "path-is-absolute": "^1.0.0", "readdirp": "^2.0.0" + }, + "dependencies": { + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "optional": true, + "requires": { + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "optional": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "optional": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "optional": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "optional": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "optional": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "optional": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "optional": true, + "requires": { + "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" + } + } } }, "cipher-base": { @@ -2006,18 +2266,13 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, "clean-stack": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.0.0.tgz", - "integrity": "sha512-VEoL9Qh7I8s8iHnV53DaeWSt8NJ0g3khMfK6NiCPB7H657juhro+cSw2O88uo3bo0c0X5usamtXk0/Of0wXa5A==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.1.0.tgz", + "integrity": "sha512-uQWrpRm+iZZUCAp7ZZJQbd4Za9I3AjR/3YTjmcnAtkauaIm/T5CT6U8zVI6e60T6OANqBFAzuR9/HB3NzuZCRA==", "dev": true }, "clear": { @@ -2072,6 +2327,35 @@ } } }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", + "dev": true + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", + "dev": true + }, + "cloneable-readable": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz", + "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + } + }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -2089,6 +2373,17 @@ "safe-buffer": "^5.1.1" } }, + "collection-map": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", + "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", + "dev": true, + "requires": { + "arr-map": "^2.0.2", + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", @@ -2111,6 +2406,12 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true + }, "colors": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", @@ -2127,9 +2428,9 @@ } }, "commander": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==" + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==" }, "compare-func": { "version": "1.3.2", @@ -2147,9 +2448,9 @@ "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" }, "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" }, "component-inherit": { "version": "0.0.3", @@ -2170,13 +2471,6 @@ "inherits": "^2.0.3", "readable-stream": "^2.2.2", "typedarray": "^0.0.6" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } } }, "contains-path": { @@ -2255,6 +2549,16 @@ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, + "copy-props": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.4.tgz", + "integrity": "sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==", + "dev": true, + "requires": { + "each-props": "^1.3.0", + "is-plain-object": "^2.0.1" + } + }, "core-js": { "version": "2.6.5", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz", @@ -2277,15 +2581,6 @@ "parse-json": "^4.0.0" }, "dependencies": { - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "dev": true, - "requires": { - "caller-callsite": "^2.0.0" - } - }, "import-fresh": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", @@ -2296,16 +2591,6 @@ "resolve-from": "^3.0.0" } }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, "resolve-from": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", @@ -2326,14 +2611,6 @@ "log-driver": "^1.2.7", "minimist": "^1.2.0", "request": "^2.86.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } } }, "cp-file": { @@ -2346,13 +2623,6 @@ "nested-error-stacks": "^2.0.0", "pify": "^3.0.0", "safe-buffer": "^5.0.1" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } } }, "create-hash": { @@ -2399,6 +2669,15 @@ "array-find-index": "^1.0.1" } }, + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "dev": true, + "requires": { + "es5-ext": "^0.10.9" + } + }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -2415,9 +2694,9 @@ "dev": true }, "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "requires": { "ms": "^2.1.1" } @@ -2486,6 +2765,29 @@ "integrity": "sha512-6+LuZGU7QCNUnAJyX8cIrlzoEgggTM6B7mm+znKOX4t5ltluT9KLjN6g61ECMS0LTsLW7yDpNoxhix5FZcrIow==", "dev": true }, + "default-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", + "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", + "dev": true, + "requires": { + "kind-of": "^5.0.2" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "default-resolution": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", + "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", + "dev": true + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -2529,11 +2831,6 @@ "kind-of": "^6.0.2" } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", @@ -2577,6 +2874,12 @@ "integrity": "sha512-ccVHpE72+tcIKaGMql33x5MAjKQIZrk+3x2GbJ7TeraUCZWHoT+KSZpoC+JQFsUBlSTXUrBaGiF0j6zVTepPLg==", "dev": true }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true + }, "detect-indent": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", @@ -2613,12 +2916,6 @@ "requires": { "pify": "^3.0.0" } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true } } }, @@ -2658,6 +2955,28 @@ "readable-stream": "^2.0.2" } }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "each-props": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", + "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.1", + "object.defaults": "^1.1.0" + } + }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -2678,9 +2997,9 @@ } }, "electron-to-chromium": { - "version": "1.3.121", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.121.tgz", - "integrity": "sha512-ALxUkgrnQ6zg2SN9zHnwDcDRy577haGT9dqsbq8lfeAgmEUPC+58SrrU8vIHpGRf7SEyyBYy4mlfonDnoKxONw==" + "version": "1.3.131", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.131.tgz", + "integrity": "sha512-NSO4jLeyGLWrT4mzzfYX8vt1MYCoMI5LxSYAjt0H9+LF/14JyiKJSyyjA6AJTxflZlEM5v3QU33F0ohbPMCAPg==" }, "elliptic": { "version": "6.4.1", @@ -2756,6 +3075,11 @@ "yeast": "0.1.2" }, "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", @@ -2824,6 +3148,28 @@ "is-symbol": "^1.0.2" } }, + "es5-ext": { + "version": "0.10.50", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.50.tgz", + "integrity": "sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw==", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "^1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, "es6-promise": { "version": "4.2.6", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.6.tgz", @@ -2839,15 +3185,37 @@ "es6-promise": "^4.0.3" } }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "es6-weak-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.14", + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "eslint": { - "version": "5.15.3", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.15.3.tgz", - "integrity": "sha512-vMGi0PjCHSokZxE0NLp2VneGw5sio7SSiDNgIUn2tC0XkWJRNOIoHIg3CliLVfXnJsiHxGAYrkw0PieAu8+KYQ==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", + "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -2870,7 +3238,7 @@ "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "inquirer": "^6.2.2", - "js-yaml": "^3.12.0", + "js-yaml": "^3.13.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.3.0", "lodash": "^4.17.11", @@ -2888,18 +3256,6 @@ "text-table": "^0.2.0" }, "dependencies": { - "acorn": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz", - "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==", - "dev": true - }, - "acorn-jsx": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz", - "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==", - "dev": true - }, "ajv": { "version": "6.10.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", @@ -2913,24 +3269,9 @@ } }, "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "cross-spawn": { @@ -2946,15 +3287,6 @@ "which": "^1.2.9" } }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, "doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -2964,125 +3296,24 @@ "esutils": "^2.0.2" } }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "espree": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", - "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", - "dev": true, - "requires": { - "acorn": "^6.0.7", - "acorn-jsx": "^5.0.0", - "eslint-visitor-keys": "^1.0.0" - } - }, - "external-editor": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz", - "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, "fast-deep-equal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", "dev": true }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "dev": true, - "requires": { - "flat-cache": "^2.0.1" - } - }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, - "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - } - }, - "globals": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", - "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==", - "dev": true - }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, - "inquirer": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.2.tgz", - "integrity": "sha512-Z2rREiXA6cHRR9KBOarR3WuLlFzlIfAEIiB45ll5SSadMg7WqOh1MKEjjndfuH5ewXdixWCxqnVfGOQzPeiztA==", - "dev": true, - "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.11", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - } - }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", @@ -3090,57 +3321,6 @@ "dev": true, "requires": { "ansi-regex": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - } - } - }, - "table": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/table/-/table-5.2.3.tgz", - "integrity": "sha512-N2RsDAMvDLvYwFcwbPyF3VmVSSkuF+G1e+8inhBLtHpvwXGw4QRPEZhihQNeEN0i1up6/f6ObCJXNdlRG3YVyQ==", - "dev": true, - "requires": { - "ajv": "^6.9.1", - "lodash": "^4.17.11", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "dependencies": { - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" } } } @@ -3189,9 +3369,9 @@ } }, "eslint-module-utils": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.3.0.tgz", - "integrity": "sha512-lmDJgeOOjk8hObTysjqH7wyMi+nsHwwvfBykwfhjR1LNdd7C2uFJBvx4OpWYpXOw4df1yE1cDEVd1yLHitk34w==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz", + "integrity": "sha512-14tltLm38Eu3zS+mt0KvILC3q8jyIAH518MlG+HO0p+yK885Lb1UHTY/UgR91eOyGdmxAPb+OLoW4znqIT6Ndw==", "requires": { "debug": "^2.6.8", "pkg-dir": "^2.0.0" @@ -3256,10 +3436,99 @@ "isarray": "^1.0.0" } }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } } } }, @@ -3317,9 +3586,10 @@ "integrity": "sha1-NNDJFbRe3G8BA5PH7vOCOwhWXPI=" }, "eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, "requires": { "esrecurse": "^4.1.0", "estraverse": "^4.1.1" @@ -3337,12 +3607,14 @@ "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==" }, "espree": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", - "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", + "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", + "dev": true, "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" + "acorn": "^6.0.7", + "acorn-jsx": "^5.0.0", + "eslint-visitor-keys": "^1.0.0" } }, "esprima": { @@ -3410,16 +3682,69 @@ "shebang-command": "^1.2.0", "which": "^1.2.9" } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } } } }, "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "optional": true, + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { - "is-posix-bracket": "^0.1.0" + "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": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } } }, "expand-range": { @@ -3429,6 +3754,48 @@ "optional": true, "requires": { "fill-range": "^2.1.0" + }, + "dependencies": { + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "optional": true, + "requires": { + "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": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "optional": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "optional": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" } }, "extend": { @@ -3457,282 +3824,51 @@ } }, "external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz", + "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", + "dev": true, "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", "tmp": "^0.0.33" } }, "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "optional": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "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-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true - }, - "fast-glob": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.6.tgz", - "integrity": "sha512-0BvMaZc1k9F+MeWWMe8pL6YltFzZYcJsYU7D4JyDA6PAczaXvxqQQ/z+mDF7/4Mw01DeUc+i3CTKajnkANkV4w==", - "dev": true, + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "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" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "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": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "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" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "is-descriptor": "^1.0.0" } }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -3741,7 +3877,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -3750,13 +3885,62 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "dev": true, + "requires": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "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-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "fast-glob": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.6.tgz", + "integrity": "sha512-0BvMaZc1k9F+MeWWMe8pL6YltFzZYcJsYU7D4JyDA6PAczaXvxqQQ/z+mDF7/4Mw01DeUc+i3CTKajnkANkV4w==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + }, + "dependencies": { "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -3771,65 +3955,6 @@ "requires": { "is-extglob": "^2.1.1" } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true } } }, @@ -3857,12 +3982,12 @@ } }, "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" + "flat-cache": "^2.0.1" } }, "file-uri-to-path": { @@ -3877,16 +4002,24 @@ "optional": true }, "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", - "optional": true, + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } } }, "find-root": { @@ -3895,40 +4028,88 @@ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" }, "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "requires": { - "locate-path": "^2.0.0" + "locate-path": "^3.0.0" } }, "find-versions": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.0.0.tgz", - "integrity": "sha512-IUvtItVFNmTtKoB0PRfbkR0zR9XMG5rWNO3qI1S8L0zdv+v2gqzM0pAunloxqbqAfT8w7bg8n/5gHzTXte8H5A==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.1.0.tgz", + "integrity": "sha512-NCTfNiVzeE/xL+roNDffGuRbrWI6atI18lTJ22vKp7rs2OhYzMK3W1dIdO2TUndH/QMcacM4d1uWwgcZcHK69Q==", "dev": true, "requires": { - "array-uniq": "^2.0.0", + "array-uniq": "^2.1.0", "semver-regex": "^2.0.0" }, "dependencies": { "array-uniq": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-2.0.0.tgz", - "integrity": "sha512-O3QZEr+3wDj7otzF7PjNGs6CA3qmYMLvt5xGkjY/V0VxS+ovvqVo/5wKM/OVOAyuX4DTh9H31zE/yKtO66hTkg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-2.1.0.tgz", + "integrity": "sha512-bdHxtev7FN6+MXI1YFW0Q8mQ8dTJc2S8AMfju+ZR77pbg2yAdVyDlwkaUI7Har0LyOMRFPHrJ9lYdyjZZswdlQ==", "dev": true } } }, + "findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "dependencies": { + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + } + } + }, + "fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "dev": true, + "requires": { + "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" + } + }, + "flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true + }, "flat-cache": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", - "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, "requires": { - "circular-json": "^0.3.1", - "graceful-fs": "^4.1.2", - "rimraf": "~2.6.2", - "write": "^0.2.1" + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" } }, "flatted": { @@ -3937,12 +4118,32 @@ "integrity": "sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg==", "dev": true }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, "follow-redirects": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz", "integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==", "requires": { "debug": "^3.2.6" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + } } }, "for-each": { @@ -3959,10 +4160,10 @@ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" }, "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "optional": true, + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, "requires": { "for-in": "^1.0.1" } @@ -4019,6 +4220,16 @@ "universalify": "^0.1.0" } }, + "fs-mkdirp-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "through2": "^2.0.3" + } + }, "fs-readdir-recursive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", @@ -4030,13 +4241,13 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.7.tgz", - "integrity": "sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", "optional": true, "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" }, "dependencies": { "abbrev": { @@ -4046,8 +4257,7 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true, - "optional": true + "bundled": true }, "aproba": { "version": "1.2.0", @@ -4065,13 +4275,11 @@ }, "balanced-match": { "version": "1.0.0", - "bundled": true, - "optional": true + "bundled": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4084,18 +4292,15 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true, - "optional": true + "bundled": true }, "concat-map": { "version": "0.0.1", - "bundled": true, - "optional": true + "bundled": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true, - "optional": true + "bundled": true }, "core-util-is": { "version": "1.0.2", @@ -4103,11 +4308,11 @@ "optional": true }, "debug": { - "version": "2.6.9", + "version": "4.1.1", "bundled": true, "optional": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "deep-extend": { @@ -4198,8 +4403,7 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, - "optional": true + "bundled": true }, "ini": { "version": "1.3.5", @@ -4209,7 +4413,6 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -4222,20 +4425,17 @@ "minimatch": { "version": "3.0.4", "bundled": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true, - "optional": true + "bundled": true }, "minipass": { "version": "2.3.5", "bundled": true, - "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -4252,28 +4452,27 @@ "mkdirp": { "version": "0.5.1", "bundled": true, - "optional": true, "requires": { "minimist": "0.0.8" } }, "ms": { - "version": "2.0.0", + "version": "2.1.1", "bundled": true, "optional": true }, "needle": { - "version": "2.2.4", + "version": "2.3.0", "bundled": true, "optional": true, "requires": { - "debug": "^2.1.2", + "debug": "^4.1.0", "iconv-lite": "^0.4.4", "sax": "^1.2.4" } }, "node-pre-gyp": { - "version": "0.10.3", + "version": "0.12.0", "bundled": true, "optional": true, "requires": { @@ -4299,12 +4498,12 @@ } }, "npm-bundled": { - "version": "1.0.5", + "version": "1.0.6", "bundled": true, "optional": true }, "npm-packlist": { - "version": "1.2.0", + "version": "1.4.1", "bundled": true, "optional": true, "requires": { @@ -4325,8 +4524,7 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true, - "optional": true + "bundled": true }, "object-assign": { "version": "4.1.1", @@ -4336,7 +4534,6 @@ "once": { "version": "1.4.0", "bundled": true, - "optional": true, "requires": { "wrappy": "1" } @@ -4412,8 +4609,7 @@ }, "safe-buffer": { "version": "5.1.2", - "bundled": true, - "optional": true + "bundled": true }, "safer-buffer": { "version": "2.1.2", @@ -4426,7 +4622,7 @@ "optional": true }, "semver": { - "version": "5.6.0", + "version": "5.7.0", "bundled": true, "optional": true }, @@ -4443,7 +4639,6 @@ "string-width": { "version": "1.0.2", "bundled": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -4461,7 +4656,6 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, - "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -4500,13 +4694,11 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, - "optional": true + "bundled": true }, "yallist": { "version": "3.0.3", - "bundled": true, - "optional": true + "bundled": true } } }, @@ -4536,14 +4728,6 @@ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==" }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "^3.0.0" - } - }, "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", @@ -4609,15 +4793,62 @@ "requires": { "glob-parent": "^2.0.0", "is-glob": "^2.0.0" + }, + "dependencies": { + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "optional": true, + "requires": { + "is-glob": "^2.0.0" + } + } } }, "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "optional": true, + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, "requires": { - "is-glob": "^2.0.0" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", + "dev": true, + "requires": { + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" } }, "glob-to-regexp": { @@ -4626,20 +4857,101 @@ "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", "dev": true }, + "glob-watcher": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.3.tgz", + "integrity": "sha512-8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-done": "^1.2.0", + "chokidar": "^2.0.0", + "is-negated-glob": "^1.0.0", + "just-debounce": "^1.0.0", + "object.defaults": "^1.1.0" + }, + "dependencies": { + "chokidar": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.5.tgz", + "integrity": "sha512-i0TprVWp+Kj4WRPtInjexJ8Q+BqTE909VpH8xVhXrJkoc5QC8VO9TryGOqTr+2hljzc1sC62t22h5tZePodM/A==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + } + } + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + } + }, "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" }, "globby": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-9.1.0.tgz", - "integrity": "sha512-VtYjhHr7ncls724Of5W6Kaahz0ag7dB4G62/2HsN+xEKG6SrPzM1AJMerGxQTwJGnN9reeyxdvXbuZYpfssCvg==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", + "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", "dev": true, "requires": { "@types/glob": "^7.1.1", "array-union": "^1.0.2", - "dir-glob": "^2.2.1", + "dir-glob": "^2.2.2", "fast-glob": "^2.2.6", "glob": "^7.1.3", "ignore": "^4.0.3", @@ -4667,6 +4979,15 @@ } } }, + "glogg": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", + "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", + "dev": true, + "requires": { + "sparkles": "^1.0.0" + } + }, "graceful-fs": { "version": "4.1.15", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", @@ -4678,10 +4999,150 @@ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, + "gulp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", + "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", + "dev": true, + "requires": { + "glob-watcher": "^5.0.3", + "gulp-cli": "^2.2.0", + "undertaker": "^1.2.1", + "vinyl-fs": "^3.0.0" + }, + "dependencies": { + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "gulp-cli": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.2.0.tgz", + "integrity": "sha512-rGs3bVYHdyJpLqR0TUBnlcZ1O5O++Zs4bA0ajm+zr3WFCfiSLjGwoCBqFs18wzN+ZxahT9DkOK5nDf26iDsWjA==", + "dev": true, + "requires": { + "ansi-colors": "^1.0.1", + "archy": "^1.0.0", + "array-sort": "^1.0.0", + "color-support": "^1.1.3", + "concat-stream": "^1.6.0", + "copy-props": "^2.0.1", + "fancy-log": "^1.3.2", + "gulplog": "^1.0.0", + "interpret": "^1.1.0", + "isobject": "^3.0.1", + "liftoff": "^3.1.0", + "matchdep": "^2.0.0", + "mute-stdout": "^1.0.0", + "pretty-hrtime": "^1.0.0", + "replace-homedir": "^1.0.0", + "semver-greatest-satisfied-range": "^1.1.0", + "v8flags": "^3.0.1", + "yargs": "^7.1.0" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "v8flags": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.2.tgz", + "integrity": "sha512-MtivA7GF24yMPte9Rp/BWGCYQNaUj86zeYxV/x2RRJMKagImbbv3u8iJC57lNhWLPcGLJmHcHmFWkNsplbbLWw==", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "dev": true, + "requires": { + "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": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "dev": true, + "requires": { + "camelcase": "^3.0.0" + } + } + } + }, + "gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "dev": true, + "requires": { + "glogg": "^1.0.0" + } + }, "handlebars": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.1.tgz", - "integrity": "sha512-3Zhi6C0euYZL5sM0Zcy7lInLXKQ+YLcF/olbN010mzGQ4XVm50JeyBnMqofHh696GrciGruC7kCcApPDJvVgwA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz", + "integrity": "sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==", "dev": true, "requires": { "neo-async": "^2.6.0", @@ -4794,13 +5255,6 @@ "get-value": "^2.0.6", "has-values": "^1.0.0", "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "has-values": { @@ -4812,24 +5266,6 @@ "kind-of": "^4.0.0" }, "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", @@ -4856,13 +5292,6 @@ "requires": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } } }, "he": { @@ -4890,6 +5319,15 @@ "os-tmpdir": "^1.0.1" } }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, "hook-std": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/hook-std/-/hook-std-1.2.0.tgz", @@ -4947,6 +5385,17 @@ "requires": { "agent-base": "^4.1.0", "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } } }, "iconv-lite": { @@ -4975,14 +5424,6 @@ "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - } } }, "import-from": { @@ -5028,9 +5469,9 @@ } }, "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { "version": "1.3.5", @@ -5038,41 +5479,49 @@ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" }, "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.3.1.tgz", + "integrity": "sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA==", + "dev": true, "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", "cli-cursor": "^2.1.0", "cli-width": "^2.0.0", - "external-editor": "^2.0.4", + "external-editor": "^3.0.3", "figures": "^2.0.0", - "lodash": "^4.3.0", + "lodash": "^4.17.11", "mute-stream": "0.0.7", "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", + "rxjs": "^6.4.0", "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", + "strip-ansi": "^5.1.0", "through": "^2.3.6" }, "dependencies": { "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^4.1.0" } } } }, + "interpret": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", + "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", + "dev": true + }, "into-stream": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-4.0.0.tgz", @@ -5092,9 +5541,20 @@ } }, "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } }, "is-accessor-descriptor": { "version": "0.1.6", @@ -5113,7 +5573,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "optional": true, "requires": { "binary-extensions": "^1.0.0" } @@ -5187,8 +5646,7 @@ "is-extglob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "optional": true + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" }, "is-finite": { "version": "1.0.2", @@ -5207,16 +5665,20 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "optional": true, "requires": { "is-extglob": "^1.0.0" } }, + "is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "dev": true + }, "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "optional": true, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { "kind-of": "^3.0.2" } @@ -5239,13 +5701,6 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "is-posix-bracket": { @@ -5273,6 +5728,15 @@ "has": "^1.0.1" } }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "requires": { + "is-unc-path": "^1.0.0" + } + }, "is-resolvable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", @@ -5312,6 +5776,27 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "requires": { + "unc-path-regex": "^0.1.2" + } + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-valid-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", + "dev": true + }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -5328,13 +5813,9 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "optional": true, - "requires": { - "isarray": "1.0.0" - } + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "isstream": { "version": "0.1.2", @@ -5356,22 +5837,29 @@ } }, "istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-dKWuzRGCs4G+67VfW9pBFFz2Jpi4vSp/k7zBcJ888ofV5Mi1g5CUML5GvMvV6u9Cjybftu+E8Cgp+k0dI1E5lw==" + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==" }, "istanbul-lib-instrument": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.1.0.tgz", - "integrity": "sha512-ooVllVGT38HIk8MxDj/OIHXSYvH+1tq/Vb38s8ixt9GoJadXska4WkGY+0wkmtYCZNYtaARniH/DixUGGLZ0uA==", - "requires": { - "@babel/generator": "^7.0.0", - "@babel/parser": "^7.0.0", - "@babel/template": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", - "istanbul-lib-coverage": "^2.0.3", - "semver": "^5.5.0" + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", + "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", + "requires": { + "@babel/generator": "^7.4.0", + "@babel/parser": "^7.4.3", + "@babel/template": "^7.4.0", + "@babel/traverse": "^7.4.3", + "@babel/types": "^7.4.0", + "istanbul-lib-coverage": "^2.0.5", + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.0.0.tgz", + "integrity": "sha512-0UewU+9rFapKFnlbirLi3byoOuhrSsli/z/ihNnvM24vgF+8sNBiI1LZPBSH9wJKUwaUbw+s3hToDLCXkrghrQ==" + } } }, "java-properties": { @@ -5392,14 +5880,14 @@ "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" }, "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "js-yaml": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.0.tgz", - "integrity": "sha512-pZZoSxcCYco+DIKBTimr67J6Hy+EYGZDY/HCWC+iAEA9h1ByhMXAIVUXMcMFpOCxQ/xjXmPI2MkDL5HRm5eFrQ==", + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -5476,13 +5964,19 @@ } }, "jsx-ast-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", - "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.1.0.tgz", + "integrity": "sha512-yDGDG2DS4JcqhA6blsuYbtsT09xL8AoLuUR2Gb5exrw7UEM19sBcOTq+YBBhrNbl0PUC4R4LnFu+dHg2HKeVvA==", "requires": { "array-includes": "^3.0.3" } }, + "just-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz", + "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=", + "dev": true + }, "just-extend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.0.2.tgz", @@ -5498,13 +5992,6 @@ "inherits": "^2.0.3", "nan": "^2.2.1", "safe-buffer": "^5.1.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } } }, "kind-of": { @@ -5515,12 +6002,32 @@ "is-buffer": "^1.1.5" } }, + "last-run": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", + "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", + "dev": true, + "requires": { + "default-resolution": "^2.0.0", + "es6-weak-map": "^2.0.1" + } + }, + "lazystream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", + "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", + "dev": true, + "requires": { + "readable-stream": "^2.0.5" + } + }, "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, "requires": { - "invert-kv": "^2.0.0" + "invert-kv": "^1.0.0" } }, "lcov-parse": { @@ -5529,6 +6036,15 @@ "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=", "dev": true }, + "lead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", + "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", + "dev": true, + "requires": { + "flush-write-stream": "^1.0.2" + } + }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", @@ -5538,23 +6054,39 @@ "type-check": "~0.3.2" } }, + "liftoff": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", + "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", + "dev": true, + "requires": { + "extend": "^3.0.0", + "findup-sync": "^3.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + } + }, "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "requires": { "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", + "parse-json": "^4.0.0", + "pify": "^3.0.0", "strip-bom": "^3.0.0" } }, "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "requires": { - "p-locate": "^2.0.0", + "p-locate": "^3.0.0", "path-exists": "^3.0.0" } }, @@ -5653,12 +6185,19 @@ "requires": { "pseudomap": "^1.0.2", "yallist": "^2.1.2" + }, + "dependencies": { + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + } } }, "macos-release": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.1.0.tgz", - "integrity": "sha512-8TCbwvN1mfNxbBv0yBtfyIFMo3m1QsNbKHv7PYIp/abRBKVQBXN7ecu3aeGGgT18VC/Tf397LBDGZF9KBGJFFw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.2.0.tgz", + "integrity": "sha512-iV2IDxZaX8dIcM7fG6cI46uNmHUxHE4yN+Z8tKHAW1TBPMZDIKHf/3L+YnOuj/FK9il14UaVdHmiQ1tsi90ltA==", "dev": true }, "make-dir": { @@ -5667,12 +6206,22 @@ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "requires": { "pify": "^3.0.0" + } + }, + "make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" }, "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true } } }, @@ -5704,9 +6253,9 @@ } }, "marked": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.6.1.tgz", - "integrity": "sha512-+H0L3ibcWhAZE02SKMqmvYsErLo4EAVJxu5h3bHBBDvvjeWXtl92rGUSBYHL2++5Y+RSNgl8dYOAXcYe7lp1fA==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.6.2.tgz", + "integrity": "sha512-LqxwVH3P/rqKX4EKGz7+c2G9r98WeM/SW34ybhgNGhUQNKtf1GmmSkJ6cDGJ/t6tiyae49qRkpyTw2B9HOrgUA==", "dev": true }, "marked-terminal": { @@ -5723,6 +6272,47 @@ "supports-hyperlinks": "^1.0.1" } }, + "matchdep": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", + "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", + "dev": true, + "requires": { + "findup-sync": "^2.0.0", + "micromatch": "^3.0.4", + "resolve": "^1.4.0", + "stack-trace": "0.0.10" + }, + "dependencies": { + "findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, "math-random": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", @@ -5746,9 +6336,9 @@ "dev": true }, "mem": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.2.0.tgz", - "integrity": "sha512-5fJxa68urlY0Ir8ijatKa3eRz5lwXnRCTvo9+TbTGAuTFJOwpGcY0X05moBd0nW45965Njt4CDI2GFQoG8DvqA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", "requires": { "map-age-cleaner": "^0.1.1", "mimic-fn": "^2.0.0", @@ -5756,9 +6346,9 @@ }, "dependencies": { "mimic-fn": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.0.0.tgz", - "integrity": "sha512-jbex9Yd/3lmICXwYT6gA/j2mNQGU48wCh/VzRd+/Y/PjYQtlg1gLMdZqvu9s/xH7qKvngxRObl56XZR609IMbA==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" } } }, @@ -5779,34 +6369,49 @@ "trim-newlines": "^2.0.0" }, "dependencies": { - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "locate-path": "^2.0.0" } }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" } }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, "path-type": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", @@ -5816,12 +6421,6 @@ "pify": "^3.0.0" } }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, "read-pkg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", @@ -5869,24 +6468,30 @@ "dev": true }, "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "optional": true, + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "requires": { - "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" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } } }, "mime": { @@ -5896,16 +6501,16 @@ "dev": true }, "mime-db": { - "version": "1.38.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz", - "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==" + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" }, "mime-types": { - "version": "2.1.22", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz", - "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==", + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", "requires": { - "mime-db": "~1.38.0" + "mime-db": "1.40.0" } }, "mimic-fn": { @@ -5932,9 +6537,9 @@ } }, "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, "minimist-options": { "version": "3.0.2", @@ -5971,6 +6576,13 @@ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "requires": { "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + } } }, "mocha": { @@ -6049,6 +6661,12 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" }, + "mute-stdout": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", + "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", + "dev": true + }, "mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", @@ -6077,16 +6695,6 @@ "to-regex": "^3.0.1" }, "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", @@ -6100,9 +6708,9 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" }, "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" }, "neo-async": { "version": "2.6.0", @@ -6121,10 +6729,10 @@ "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==" }, - "net": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/net/-/net-1.0.2.tgz", - "integrity": "sha1-0XV+yaf7I3HYPPR1XOPifhCCk4g=", + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", "dev": true }, "nice-try": { @@ -6172,17 +6780,6 @@ "propagate": "^1.0.0", "qs": "^6.5.1", "semver": "^5.5.0" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } } }, "node-cmd": { @@ -6199,15 +6796,15 @@ } }, "node-fetch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.3.0.tgz", - "integrity": "sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.5.0.tgz", + "integrity": "sha512-YuZKluhWGJwCcUu4RlZstdAxr8bFfOVHakc1mplwHkk8J+tqM1Y5yraYvIUpeX8aY7+crCwiELJq7Vl0o0LWXw==", "dev": true }, "node-mocks-http": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-mocks-http/-/node-mocks-http-1.7.3.tgz", - "integrity": "sha512-wayzLNhEroH3lJj113pFKQ1cd1GKG1mXoZR1HcKp/o9a9lTGGgVY/hYeLajiIFr/z4tXFKOdfJickqqihBtn9g==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/node-mocks-http/-/node-mocks-http-1.7.5.tgz", + "integrity": "sha512-YRT95Y4FLoLTJGLZhZxZOsq6KuU4ykc5ChdbmLRzuYuFtdsI+nmLLrqn6gzZsk5nxiyx8DOnS+YgwMKGWY/uYw==", "dev": true, "requires": { "accepts": "^1.3.5", @@ -6216,20 +6813,11 @@ "merge-descriptors": "^1.0.1", "methods": "^1.1.2", "mime": "^1.3.4", - "net": "^1.0.2", "parseurl": "^1.3.1", "range-parser": "^1.2.0", "type-is": "^1.6.16" } }, - "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "requires": { - "abbrev": "1" - } - }, "normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -6245,17 +6833,25 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "optional": true, "requires": { "remove-trailing-separator": "^1.0.1" } }, "normalize-url": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.2.0.tgz", - "integrity": "sha512-n69+KXI+kZApR+sPwSkoAXpGlNkaiYyoHHqKOFPjJWvwZpew/EjKvuPE4+tStNgb42z5yLtdakgZCQI+LalSPg==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.3.0.tgz", + "integrity": "sha512-0NLtR71o4k6GLP+mr6Ty34c5GA6CMoEsncKJxvQd8NzPxaHRJNnb5gZE8R1XF4CPIS7QPHLJ74IFszwtNVAHVQ==", "dev": true }, + "now-and-later": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", + "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", + "dev": true, + "requires": { + "once": "^1.3.2" + } + }, "npm": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/npm/-/npm-6.5.0.tgz", @@ -10307,9 +10903,9 @@ "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==" }, "object-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz", - "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, "object-visit": { "version": "1.0.1", @@ -10317,13 +10913,40 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "dev": true, + "requires": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" } }, "object.omit": { @@ -10334,6 +10957,17 @@ "requires": { "for-own": "^0.1.4", "is-extendable": "^0.1.1" + }, + "dependencies": { + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "optional": true, + "requires": { + "for-in": "^1.0.1" + } + } } }, "object.pick": { @@ -10342,13 +10976,16 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } + } + }, + "object.reduce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", + "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" } }, "octokit-pagination-methods": { @@ -10383,6 +11020,12 @@ "wordwrap": "~0.0.2" }, "dependencies": { + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", + "dev": true + }, "wordwrap": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", @@ -10404,6 +11047,15 @@ "wordwrap": "~1.0.0" } }, + "ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + } + }, "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", @@ -10417,15 +11069,30 @@ "execa": "^1.0.0", "lcid": "^2.0.0", "mem": "^4.0.0" + }, + "dependencies": { + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "requires": { + "invert-kv": "^2.0.0" + } + } } }, "os-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.0.0.tgz", - "integrity": "sha512-7c74tib2FsdFbQ3W+qj8Tyd1R3Z6tuVRNNxXjJcZ4NgjIEQU9N/prVMqcW29XZPXGACqaXN3jq58/6hoaoXH6g==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", + "integrity": "sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==", "dev": true, "requires": { - "macos-release": "^2.0.0", + "macos-release": "^2.2.0", "windows-release": "^3.1.0" } }, @@ -10464,24 +11131,24 @@ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "p-is-promise": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.0.0.tgz", - "integrity": "sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==" }, "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", + "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", "requires": { - "p-try": "^1.0.0" + "p-try": "^2.0.0" } }, "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "requires": { - "p-limit": "^1.1.0" + "p-limit": "^2.0.0" } }, "p-map": { @@ -10503,12 +11170,20 @@ "dev": true, "requires": { "retry": "^0.12.0" + }, + "dependencies": { + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true + } } }, "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, "parent-module": { "version": "1.0.1", @@ -10517,14 +11192,17 @@ "dev": true, "requires": { "callsites": "^3.0.0" - }, - "dependencies": { - "callsites": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.0.0.tgz", - "integrity": "sha512-tWnkwu9YEq2uzlBDI4RcLn8jrFvF9AOi8PxDNU3hZZjJcjkcRAq3vCI+vZcg1SuxISDYe86k9VZFwAxDiJGoAw==", - "dev": true - } + } + }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "dev": true, + "requires": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" } }, "parse-github-url": { @@ -10546,13 +11224,26 @@ } }, "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "requires": { - "error-ex": "^1.2.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, "parseqs": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", @@ -10570,9 +11261,9 @@ } }, "parseurl": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true }, "pascalcase": { @@ -10611,6 +11302,21 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dev": true, + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "dev": true + }, "path-to-regexp": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", @@ -10629,11 +11335,22 @@ } }, "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, "requires": { - "pify": "^2.0.0" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } } }, "pathval": { @@ -10661,9 +11378,24 @@ "dev": true }, "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } }, "pkg-conf": { "version": "2.1.0", @@ -10674,51 +11406,104 @@ "load-json-file": "^4.0.0" }, "dependencies": { - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "locate-path": "^2.0.0" } }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + } + } + }, + "pkg-config": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", + "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=", + "requires": { + "debug-log": "^1.0.0", + "find-root": "^1.0.0", + "xtend": "^4.0.1" + } + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "requires": { + "find-up": "^2.1.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" } } }, - "pkg-config": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", - "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=", - "requires": { - "debug-log": "^1.0.0", - "find-root": "^1.0.0", - "xtend": "^4.0.1" - } - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "requires": { - "find-up": "^2.1.0" - } - }, "pluralize": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", @@ -10746,9 +11531,15 @@ "optional": true }, "prettier": { - "version": "1.16.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.16.4.tgz", - "integrity": "sha512-ZzWuos7TI5CKUeQAtFd6Zhm2s6EpAD/ZLApIhsF9pRvRtM1RFo61dM/4MSRUA0SuLugA/zgrZD8m0BaY46Og7g==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.17.0.tgz", + "integrity": "sha512-sXe5lSt2WQlCbydGETgfm1YBShgOX4HxQkFPvbxkcwgDvGDeqVau8h+12+lmSVlP3rHPz0oavfddSZg/q+Szjw==", + "dev": true + }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", "dev": true }, "private": { @@ -10794,27 +11585,32 @@ "dev": true }, "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, - "pushdata-bitcoin": { - "version": "github:Bitcoin-com/pushdata-bitcoin#9b75eebe597853c6eeaec3e6c44b6d9c9cd7ee86", - "from": "github:Bitcoin-com/pushdata-bitcoin#1.2.1", - "requires": { - "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#2.0.0" - } - }, "q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", @@ -10905,14 +11701,6 @@ "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } } }, "react-is": { @@ -10921,347 +11709,119 @@ "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==" }, "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, "requires": { - "load-json-file": "^2.0.0", + "load-json-file": "^1.0.0", "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "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" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "optional": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" + "path-type": "^1.0.0" }, "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "optional": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "optional": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "optional": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "optional": true, - "requires": { - "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": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "optional": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "optional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "optional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "optional": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "optional": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "optional": 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" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "optional": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "optional": true, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "optional": true, - "requires": { - "is-extendable": "^0.1.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" } }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "optional": true, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, "requires": { - "kind-of": "^6.0.0" + "error-ex": "^1.2.0" } }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "optional": true, - "requires": { - "kind-of": "^6.0.0" - } + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "optional": true, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-utf8": "^0.2.0" } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "optional": true, + } + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "optional": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "optional": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "optional": true, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "pinkie-promise": "^2.0.0" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "optional": true } } }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "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" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "^1.1.6" + } + }, "redent": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", @@ -11365,11 +11925,31 @@ } } }, + "remove-bom-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", + "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5", + "is-utf8": "^0.2.1" + } + }, + "remove-bom-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", + "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", + "dev": true, + "requires": { + "remove-bom-buffer": "^3.0.0", + "safe-buffer": "^5.1.0", + "through2": "^2.0.3" + } + }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "optional": true + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" }, "repeat-element": { "version": "1.1.3", @@ -11394,6 +11974,23 @@ "resolved": "https://registry.npmjs.org/repl.history/-/repl.history-0.1.4.tgz", "integrity": "sha1-gDZxcfN4HW5CmccXWMJTCX9dWDI=" }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "dev": true + }, + "replace-homedir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", + "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1", + "is-absolute": "^1.0.0", + "remove-trailing-separator": "^1.1.0" + } + }, "request": { "version": "2.88.0", "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", @@ -11447,20 +12044,60 @@ "requires": { "caller-path": "^0.1.0", "resolve-from": "^1.0.0" + }, + "dependencies": { + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "requires": { + "callsites": "^0.2.0" + } + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=" + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=" + } } }, "resolve": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", - "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.1.tgz", + "integrity": "sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA==", "requires": { "path-parse": "^1.0.6" } }, - "resolve-from": { + "resolve-dir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=" + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "resolve-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", + "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", + "dev": true, + "requires": { + "value-or-function": "^3.0.0" + } }, "resolve-url": { "version": "0.2.1", @@ -11489,12 +12126,6 @@ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true - }, "rimraf": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", @@ -11539,9 +12170,9 @@ } }, "rxjs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", - "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.1.tgz", + "integrity": "sha512-y0j31WJc83wPu31vS1VlAFW5JGrnGC+j+TtGAa1fRQphy48+fDYiDmX8tjGloToEsMkxnouOg/1IzXGKkJnZMg==", "dev": true, "requires": { "tslib": "^1.9.0" @@ -11633,78 +12264,13 @@ "yargs": "^12.0.0" }, "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.1.0.tgz", - "integrity": "sha512-H2RyIJ7+A3rjkwKC2l5GGtU4H1vkxKCAGsWasNVd0Set+6i4znxbWy6/j16YDPJDWxhsgZiKAstMEP8wCdSpjA==", - "dev": true - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "pump": "^3.0.0" } }, "path-type": { @@ -11716,11 +12282,15 @@ "pify": "^3.0.0" } }, - "pify": { + "pump": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } }, "read-pkg": { "version": "3.0.0", @@ -11742,12 +12312,6 @@ "find-up": "^3.0.0", "read-pkg": "^3.0.0" } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true } } }, @@ -11756,6 +12320,15 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" }, + "semver-greatest-satisfied-range": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", + "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", + "dev": true, + "requires": { + "sver-compat": "^1.5.0" + } + }, "semver-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz", @@ -11839,17 +12412,6 @@ "nise": "^1.2.0", "supports-color": "^5.1.0", "type-detect": "^4.0.5" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } } }, "slash": { @@ -11858,10 +12420,13 @@ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" }, "slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", "is-fullwidth-code-point": "^2.0.0" } }, @@ -11955,11 +12520,6 @@ "kind-of": "^6.0.2" } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", @@ -11986,16 +12546,6 @@ "socket.io-adapter": "~1.1.0", "socket.io-client": "2.2.0", "socket.io-parser": "~3.3.0" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - } } }, "socket.io-adapter": { @@ -12024,6 +12574,11 @@ "to-array": "0.1.4" }, "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", @@ -12049,6 +12604,11 @@ "isarray": "2.0.1" }, "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", @@ -12099,6 +12659,12 @@ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, + "sparkles": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", + "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", + "dev": true + }, "spawn-error-forwarder": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz", @@ -12129,9 +12695,9 @@ } }, "spdx-license-ids": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz", - "integrity": "sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g==" + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", + "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==" }, "split": { "version": "1.0.1", @@ -12181,6 +12747,12 @@ "tweetnacl": "~0.14.0" } }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, "standard": { "version": "11.0.1", "resolved": "https://registry.npmjs.org/standard/-/standard-11.0.1.tgz", @@ -12197,11 +12769,44 @@ "standard-engine": "~8.0.0" }, "dependencies": { + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==" + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "requires": { + "acorn": "^3.0.4" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=" + } + } + }, "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=" + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, "eslint": { "version": "4.18.2", "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", @@ -12257,17 +12862,110 @@ "semver": "^5.4.1" } }, - "globals": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", - "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==" - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "espree": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "requires": { + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "requires": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + } + }, + "flat-cache": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", + "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", + "requires": { + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" + } + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + } + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "requires": { + "is-fullwidth-code-point": "^2.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "table": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "requires": { + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", + "slice-ansi": "1.0.0", + "string-width": "^2.1.1" + } + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "requires": { - "ansi-regex": "^3.0.0" + "mkdirp": "^0.5.1" } } } @@ -12281,13 +12979,6 @@ "get-stdin": "^6.0.0", "minimist": "^1.1.0", "pkg-conf": "^2.0.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - } } }, "static-extend": { @@ -12319,6 +13010,18 @@ "readable-stream": "^2.0.2" } }, + "stream-exhaust": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", + "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", + "dev": true + }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "dev": true + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -12391,9 +13094,12 @@ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } }, "supports-hyperlinks": { "version": "1.0.1", @@ -12410,37 +13116,81 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - }, - "dependencies": { - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - } - } } } }, + "sver-compat": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", + "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", + "dev": true, + "requires": { + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, "table": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", - "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/table/-/table-5.2.3.tgz", + "integrity": "sha512-N2RsDAMvDLvYwFcwbPyF3VmVSSkuF+G1e+8inhBLtHpvwXGw4QRPEZhihQNeEN0i1up6/f6ObCJXNdlRG3YVyQ==", + "dev": true, "requires": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", - "slice-ansi": "1.0.0", - "string-width": "^2.1.1" + "ajv": "^6.9.1", + "lodash": "^4.17.11", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", + "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } } }, "tape": { @@ -12461,18 +13211,6 @@ "resumer": "~0.0.0", "string.prototype.trim": "~1.1.2", "through": "~2.3.8" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - } } }, "text-extensions": { @@ -12501,6 +13239,22 @@ "xtend": "~4.0.1" } }, + "through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "dev": true, + "requires": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + } + }, + "time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "dev": true + }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -12509,6 +13263,16 @@ "os-tmpdir": "~1.0.2" } }, + "to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", + "dev": true, + "requires": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + } + }, "to-array": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", @@ -12545,16 +13309,15 @@ "requires": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - } - } + } + }, + "to-through": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", + "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", + "dev": true, + "requires": { + "through2": "^2.0.3" } }, "touch": { @@ -12563,6 +13326,16 @@ "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", "requires": { "nopt": "~1.0.10" + }, + "dependencies": { + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "requires": { + "abbrev": "1" + } + } } }, "tough-cookie": { @@ -12642,13 +13415,13 @@ "dev": true }, "type-is": { - "version": "1.6.16", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", - "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "~2.1.18" + "mime-types": "~2.1.24" } }, "typedarray": { @@ -12661,14 +13434,20 @@ "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz", "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==" }, + "typescript": { + "version": "3.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.4.5.tgz", + "integrity": "sha512-YycBxUb49UUhdNMU5aJ7z5Ej2XGmaIBL0x34vZ82fn3hGvD+bgrMrVDpatgz2f7YxUMJxMkbWxJZeAvDxVe7Vw==", + "dev": true + }, "uglify-js": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.5.2.tgz", - "integrity": "sha512-imog1WIsi9Yb56yRt5TfYVxGmnWs3WSGU73ieSOlMVFwhJCA9W8fqFFMMj4kgDqiS/80LGdsYnWL7O9UcjEBlg==", + "version": "3.5.11", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.5.11.tgz", + "integrity": "sha512-izPJg8RsSyqxbdnqX36ExpbH3K7tDBsAU/VfNv89VkMFy3z39zFjunQGsSHOlGlyIfGLGprGeosgQno3bo2/Kg==", "dev": true, "optional": true, "requires": { - "commander": "~2.19.0", + "commander": "~2.20.0", "source-map": "~0.6.1" }, "dependencies": { @@ -12681,6 +13460,35 @@ } } }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "dev": true + }, + "undertaker": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.1.tgz", + "integrity": "sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA==", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "bach": "^1.0.0", + "collection-map": "^1.0.0", + "es6-weak-map": "^2.0.1", + "last-run": "^1.1.0", + "object.defaults": "^1.0.0", + "object.reduce": "^1.0.0", + "undertaker-registry": "^1.0.0" + } + }, + "undertaker-registry": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", + "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=", + "dev": true + }, "union-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", @@ -12718,6 +13526,16 @@ "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" }, + "unique-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", + "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", + "dev": true, + "requires": { + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "^3.0.0" + } + }, "universal-user-agent": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-2.0.3.tgz", @@ -12771,14 +13589,15 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, + "upath": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", + "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", + "dev": true + }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", @@ -12821,6 +13640,13 @@ "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "requires": { "inherits": "2.0.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + } } }, "util-deprecate": { @@ -12851,6 +13677,12 @@ "spdx-expression-parse": "^3.0.0" } }, + "value-or-function": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", + "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", + "dev": true + }, "varuint-bitcoin": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz", @@ -12870,6 +13702,60 @@ "extsprintf": "^1.2.0" } }, + "vinyl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", + "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", + "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.0.1", + "replace-ext": "^1.0.0" + } + }, + "vinyl-fs": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", + "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "dev": true, + "requires": { + "fs-mkdirp-stream": "^1.0.0", + "glob-stream": "^6.1.0", + "graceful-fs": "^4.0.0", + "is-valid-glob": "^1.0.0", + "lazystream": "^1.0.0", + "lead": "^1.0.0", + "object.assign": "^4.0.4", + "pumpify": "^1.3.5", + "readable-stream": "^2.3.3", + "remove-bom-buffer": "^3.0.0", + "remove-bom-stream": "^1.2.0", + "resolve-options": "^1.1.0", + "through2": "^2.0.0", + "to-through": "^2.0.0", + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" + } + }, + "vinyl-sourcemap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", + "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", + "dev": true, + "requires": { + "append-buffer": "^1.0.2", + "convert-source-map": "^1.5.0", + "graceful-fs": "^4.1.6", + "normalize-path": "^2.1.1", + "now-and-later": "^2.0.0", + "remove-bom-buffer": "^3.0.0", + "vinyl": "^2.0.0" + } + }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -12897,48 +13783,12 @@ "integrity": "sha1-2+RboqKRqrxW1iz2bEW3+jIpRt4=" }, "windows-release": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.1.0.tgz", - "integrity": "sha512-hBb7m7acFgQPQc222uEQTmdcGLeBmQLNLFIh0rDk3CwFOBrfjefLzEfEfmpMq8Af/n/GnFf3eYf203FY1PmudA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.2.0.tgz", + "integrity": "sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA==", "dev": true, "requires": { - "execa": "^0.10.0" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", - "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^3.0.0", - "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" - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - } + "execa": "^1.0.0" } }, "wordwrap": { @@ -12981,9 +13831,10 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, "requires": { "mkdirp": "^0.5.1" } @@ -13011,11 +13862,6 @@ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - }, "yargs": { "version": "12.0.5", "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", @@ -13033,46 +13879,6 @@ "which-module": "^2.0.0", "y18n": "^3.2.1 || ^4.0.0", "yargs-parser": "^11.1.1" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.1.0.tgz", - "integrity": "sha512-H2RyIJ7+A3rjkwKC2l5GGtU4H1vkxKCAGsWasNVd0Set+6i4znxbWy6/j16YDPJDWxhsgZiKAstMEP8wCdSpjA==" - } } }, "yargs-parser": { @@ -13082,6 +13888,13 @@ "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + } } }, "yeast": { diff --git a/package.json b/package.json index 0dee296f..55ef7b13 100644 --- a/package.json +++ b/package.json @@ -6,14 +6,12 @@ "contributors": [ "Chris Troutner " ], - "main": "lib/BITBOX", "types": "./typings/BITBOX.d.ts", "scripts": { - "test": "mocha --timeout 30000 --require babel-core/register test/unit", - "test:integration": "mocha --timeout 30000 --require babel-core/register test/integration", + "test": "TEST=unit nyc --reporter=text mocha --require babel-core/register --timeout 30000 test/unit", + "test:integration": "TEST=integration nyc --reporter=text mocha --require babel-core/register --timeout 10000 test/integration", "coverage": "nyc report --reporter=text-lcov | coveralls", - "build": "babel src/ -d lib/", - "postbuild": "cp -R typings/* lib" + "build": "node ./node_modules/gulp/bin/gulp.js build && ./node_modules/typescript/bin/tsc" }, "license": "MIT", "engines": { @@ -28,6 +26,7 @@ "url": "git+https://github.com/Bitcoin-com/bitbox-javascript-sdk.git" }, "dependencies": { + "@types/node": "^10.11.7", "assert": "^1.4.1", "axios": "^0.17.1", "babel-cli": "^6.26.0", @@ -78,12 +77,14 @@ "eslint-config-prettier": "^3.0.1", "eslint-plugin-node": "7.0.1", "eslint-plugin-prettier": "^2.6.2", + "gulp": "^4.0.0", "mocha": "^5.0.1", "nock": "^10.0.6", "node-mocks-http": "^1.7.0", "nyc": "^13.3.0", "prettier": "^1.14.2", "semantic-release": "^15.13.3", - "sinon": "^4.5.0" + "sinon": "^4.5.0", + "typescript": "^3.1.4" } } diff --git a/src/Address.js b/src/Address.ts similarity index 98% rename from src/Address.js rename to src/Address.ts index 25f129a3..ee3e6612 100644 --- a/src/Address.js +++ b/src/Address.ts @@ -1,9 +1,9 @@ -import axios from "axios" -import Bitcoin from "bitcoincashjs-lib" -import cashaddr from "cashaddrjs" -import coininfo from "coininfo" +import * as axios from "axios" +import * as Bitcoin from "bitcoincashjs-lib" +import * as cashaddr from "cashaddrjs" +import * as coininfo from "coininfo" -class Address { +export class Address { constructor(restURL) { this.restURL = restURL } @@ -386,5 +386,3 @@ class Address { } } } - -export default Address diff --git a/src/BITBOX.js b/src/BITBOX.js deleted file mode 100644 index 2f62d2db..00000000 --- a/src/BITBOX.js +++ /dev/null @@ -1,54 +0,0 @@ -// local deps -import BitcoinCash from "./BitcoinCash" -import Crypto from "./Crypto" -import Util from "./Util" -import Block from "./Block" -import Blockchain from "./Blockchain" -import Control from "./Control" -import Generating from "./Generating" -import Mining from "./Mining" -import RawTransactions from "./RawTransactions" -import Mnemonic from "./Mnemonic" -import Address from "./Address" -import HDNode from "./HDNode" -import Transaction from "./Transaction" -import TransactionBuilder from "./TransactionBuilder" -import ECPair from "./ECPair" -import Script from "./Script" -import Price from "./Price" -import Socket from "./Socket" -import Wallet from "./Wallet" -import Schnorr from "./Schnorr" - -class BITBOX { - constructor(config) { - if (config && config.restURL && config.restURL !== "") - this.restURL = config.restURL - else this.restURL = "https://rest.bitcoin.com/v2/" - - this.Address = new Address(this.restURL) - this.BitcoinCash = new BitcoinCash(this.Address) - this.Block = new Block(this.restURL) - this.Blockchain = new Blockchain(this.restURL) - this.Control = new Control(this.restURL) - this.Crypto = Crypto - this.ECPair = ECPair - this.ECPair.setAddress(this.Address) - this.Generating = new Generating(this.restURL) - this.HDNode = new HDNode(this.Address) - this.Mining = new Mining(this.restURL) - this.Mnemonic = new Mnemonic(this.Address) - this.Price = new Price() - this.RawTransactions = new RawTransactions(this.restURL) - this.Script = new Script() - this.Transaction = new Transaction(this.restURL) - this.TransactionBuilder = TransactionBuilder - this.TransactionBuilder.setAddress(this.Address) - this.Util = new Util(this.restURL) - this.Socket = Socket - this.Wallet = Wallet - this.Schnorr = new Schnorr(this.restURL) - } -} - -module.exports = BITBOX diff --git a/src/BITBOX.ts b/src/BITBOX.ts new file mode 100644 index 00000000..5e6daf6a --- /dev/null +++ b/src/BITBOX.ts @@ -0,0 +1,76 @@ +// import interfaces +import { IConfig } from "./interfaces/BITBOXInterfaces" + +// local deps +import { BitcoinCash } from "./BitcoinCash" +import { Crypto } from "./Crypto" +import { Util } from "./Util" +import { Block } from "./Block" +import { Blockchain } from "./Blockchain" +import { Control } from "./Control" +import { Generating } from "./Generating" +import { Mining } from "./Mining" +import { RawTransactions } from "./RawTransactions" +import { Mnemonic } from "./Mnemonic" +import { Address } from "./Address" +import { HDNode } from "./HDNode" +import { Transaction } from "./Transaction" +import { TransactionBuilder } from "./TransactionBuilder" +import { ECPair } from "./ECPair" +import { Script } from "./Script" +import { Price } from "./Price" +import { Socket } from "./Socket" +import { Wallet } from "./Wallet" +import { Schnorr } from "./Schnorr" + +export class BITBOX { + Address: any + BitcoinCash: any + Block: any + Blockchain: any + Control: any + Crypto: any + ECPair: any + Generating: any + HDNode: any + Mining: any + Mnemonic: any + Price: any + RawTransactions: any + Script: any + Transaction: any + TransactionBuilder: any + Util: any + Socket: any + Wallet: any + Schnorr: any + constructor(config: IConfig = {}) { + let restURL: string + if (config && config.restURL && config.restURL !== "") + restURL = config.restURL + else restURL = "https://rest.bitcoin.com/v2/" + + this.Address = new Address(restURL) + this.BitcoinCash = new BitcoinCash(this.Address) + this.Block = new Block(restURL) + this.Blockchain = new Blockchain(restURL) + this.Control = new Control(restURL) + this.Crypto = Crypto + this.ECPair = ECPair + this.ECPair.setAddress(this.Address) + this.Generating = new Generating(restURL) + this.HDNode = new HDNode(this.Address) + this.Mining = new Mining(restURL) + this.Mnemonic = new Mnemonic(this.Address) + this.Price = new Price() + this.RawTransactions = new RawTransactions(restURL) + this.Script = new Script() + this.Transaction = new Transaction(restURL) + this.TransactionBuilder = TransactionBuilder + this.TransactionBuilder.setAddress(this.Address) + this.Util = new Util(restURL) + this.Socket = Socket + this.Wallet = Wallet + this.Schnorr = new Schnorr(restURL) + } +} diff --git a/src/BitcoinCash.js b/src/BitcoinCash.ts similarity index 93% rename from src/BitcoinCash.js rename to src/BitcoinCash.ts index ef3dd7c5..d4bc23e0 100644 --- a/src/BitcoinCash.js +++ b/src/BitcoinCash.ts @@ -1,15 +1,15 @@ -import Bitcoin from "bitcoincashjs-lib" -import sb from "satoshi-bitcoin" -import bitcoinMessage from "bitcoinjs-message" -import bs58 from "bs58" -import bip21 from "bip21" -import coininfo from "coininfo" -import bip38 from "bip38" -import wif from "wif" +import * as Bitcoin from "bitcoincashjs-lib" +import * as sb from "satoshi-bitcoin" +import * as bitcoinMessage from "bitcoinjs-message" +import * as bs58 from "bs58" +import * as bip21 from "bip21" +import * as coininfo from "coininfo" +import * as bip38 from "bip38" +import * as wif from "wif" const Buffer = require("safe-buffer").Buffer -class BitcoinCash { +export class BitcoinCash { constructor(address) { this._address = address } @@ -169,5 +169,3 @@ class BitcoinCash { return wif.encode(prefix, decryptedKey.privateKey, decryptedKey.compressed) } } - -export default BitcoinCash diff --git a/src/Block.js b/src/Block.ts similarity index 94% rename from src/Block.js rename to src/Block.ts index d7a1501f..a04b690b 100644 --- a/src/Block.js +++ b/src/Block.ts @@ -1,5 +1,6 @@ -import axios from "axios" -class Block { +import * as axios from "axios" + +export class Block { constructor(restURL) { this.restURL = restURL } @@ -43,7 +44,7 @@ class Block { ) return response.data - // Array of hashes. + // Array of hashes. } else if (Array.isArray(hash)) { const options = { method: "POST", @@ -64,5 +65,3 @@ class Block { } } } - -export default Block diff --git a/src/Blockchain.js b/src/Blockchain.ts similarity index 99% rename from src/Blockchain.js rename to src/Blockchain.ts index 54d0d45e..43a26836 100644 --- a/src/Blockchain.js +++ b/src/Blockchain.ts @@ -3,8 +3,9 @@ - Add blockhash functionality back into getTxOutProof */ -import axios from "axios" -class Blockchain { +import * as axios from "axios" + +export class Blockchain { constructor(restURL) { this.restURL = restURL } @@ -324,5 +325,3 @@ class Blockchain { } } } - -export default Blockchain diff --git a/src/Control.js b/src/Control.ts similarity index 93% rename from src/Control.js rename to src/Control.ts index 2254b05d..39f80e95 100644 --- a/src/Control.js +++ b/src/Control.ts @@ -1,5 +1,6 @@ -import axios from "axios" -class Control { +import * as axios from "axios" + +export class Control { constructor(restURL) { this.restURL = restURL } @@ -35,5 +36,3 @@ class Control { // }); // } } - -export default Control diff --git a/src/Crypto.js b/src/Crypto.ts similarity index 76% rename from src/Crypto.js rename to src/Crypto.ts index 669ffaaa..b9c9be4e 100644 --- a/src/Crypto.js +++ b/src/Crypto.ts @@ -1,7 +1,7 @@ -import randomBytes from "randombytes" -import Bitcoin from "bitcoincashjs-lib" +import * as randomBytes from "randombytes" +import * as Bitcoin from "bitcoincashjs-lib" -class Crypto { +export class Crypto { static sha256(buffer) { return Bitcoin.crypto.sha256(buffer) } @@ -22,5 +22,3 @@ class Crypto { return randomBytes(size) } } - -export default Crypto diff --git a/src/ECPair.js b/src/ECPair.ts similarity index 91% rename from src/ECPair.js rename to src/ECPair.ts index 74639164..eae16c62 100644 --- a/src/ECPair.js +++ b/src/ECPair.ts @@ -1,7 +1,7 @@ -import Bitcoin from "bitcoincashjs-lib" -import coininfo from "coininfo" +import * as Bitcoin from "bitcoincashjs-lib" +import * as coininfo from "coininfo" -class ECPair { +export class ECPair { static setAddress(address) { ECPair._address = address } @@ -49,5 +49,3 @@ class ECPair { return ECPair._address.toCashAddress(ecpair.getAddress(), true, regtest) } } - -export default ECPair diff --git a/src/Generating.js b/src/Generating.ts similarity index 86% rename from src/Generating.js rename to src/Generating.ts index 719a2678..83235895 100644 --- a/src/Generating.js +++ b/src/Generating.ts @@ -1,5 +1,6 @@ -import axios from "axios" -class Generating { +import * as axios from "axios" + +export class Generating { constructor(restURL) { this.restURL = restURL } @@ -18,5 +19,3 @@ class Generating { } } } - -export default Generating diff --git a/src/HDNode.js b/src/HDNode.ts similarity index 94% rename from src/HDNode.js rename to src/HDNode.ts index 4effe986..e7948976 100644 --- a/src/HDNode.js +++ b/src/HDNode.ts @@ -1,8 +1,8 @@ -import Bitcoin from "bitcoincashjs-lib" -import coininfo from "coininfo" -import bip32utils from "bip32-utils" +import * as Bitcoin from "bitcoincashjs-lib" +import * as coininfo from "coininfo" +import * as bip32utils from "bip32-utils" -class HDNode { +export class HDNode { constructor(address) { this._address = address } @@ -113,5 +113,3 @@ class HDNode { return new bip32utils.Chain(hdNode) } } - -export default HDNode diff --git a/src/Mining.js b/src/Mining.ts similarity index 95% rename from src/Mining.js rename to src/Mining.ts index 40d110f7..c3a4f51a 100644 --- a/src/Mining.js +++ b/src/Mining.ts @@ -1,5 +1,5 @@ -import axios from "axios" -class Mining { +import * as axios from "axios" +export class Mining { constructor(restURL) { this.restURL = restURL } @@ -53,5 +53,3 @@ class Mining { } } } - -export default Mining diff --git a/src/Mnemonic.js b/src/Mnemonic.ts similarity index 98% rename from src/Mnemonic.js rename to src/Mnemonic.ts index 018656e5..d660b1a5 100644 --- a/src/Mnemonic.js +++ b/src/Mnemonic.ts @@ -1,10 +1,10 @@ -import BIP39 from "bip39" -import randomBytes from "randombytes" -import Bitcoin from "bitcoincashjs-lib" +import * as BIP39 from "bip39" +import * as randomBytes from "randombytes" +import * as Bitcoin from "bitcoincashjs-lib" const Buffer = require("safe-buffer").Buffer const wif = require("wif") -class Mnemonic { +export class Mnemonic { constructor(address) { this._address = address } @@ -98,8 +98,6 @@ class Mnemonic { } } -export default Mnemonic - // The following code is from: https://raw.githubusercontent.com/iancoleman/bip39/7ff86d4c983f1e8c80b87b31acfd69fcf98c1b82/src/js/levenshtein.js /** diff --git a/src/Price.js b/src/Price.ts similarity index 84% rename from src/Price.js rename to src/Price.ts index cf843f5d..f21803d3 100644 --- a/src/Price.js +++ b/src/Price.ts @@ -1,5 +1,5 @@ -import axios from "axios" -class Price { +import * as axios from "axios" +export class Price { async current(currency = "usd") { try { const response = await axios.get( @@ -12,5 +12,3 @@ class Price { } } } - -export default Price diff --git a/src/RawTransactions.js b/src/RawTransactions.ts similarity index 97% rename from src/RawTransactions.js rename to src/RawTransactions.ts index 9141fbe5..77ddc02d 100644 --- a/src/RawTransactions.js +++ b/src/RawTransactions.ts @@ -1,5 +1,6 @@ -import axios from "axios" -class RawTransactions { +import * as axios from "axios" + +export class RawTransactions { constructor(restURL) { this.restURL = restURL } @@ -135,5 +136,3 @@ class RawTransactions { } } } - -export default RawTransactions diff --git a/src/Schnorr.js b/src/Schnorr.ts similarity index 96% rename from src/Schnorr.js rename to src/Schnorr.ts index e8f8aa9e..c8db89a1 100644 --- a/src/Schnorr.js +++ b/src/Schnorr.ts @@ -1,6 +1,6 @@ -import schnorr from "bip-schnorr" +import * as schnorr from "bip-schnorr" -class Schnorr { +export class Schnorr { constructor(restURL) { this.restURL = restURL } @@ -95,5 +95,3 @@ class Schnorr { return schnorr.convert.pubKeyToPoint(publicKey) } } - -export default Schnorr diff --git a/src/Script.js b/src/Script.ts similarity index 92% rename from src/Script.js rename to src/Script.ts index 8aca3748..bfcdb4a3 100644 --- a/src/Script.js +++ b/src/Script.ts @@ -1,7 +1,7 @@ -import Bitcoin from "bitcoincashjs-lib" -import opcodes from "bitcoincash-ops" +import * as Bitcoin from "bitcoincashjs-lib" +import * as opcodes from "bitcoincash-ops" -class Script { +export class Script { constructor() { this.opcodes = opcodes this.nullData = Bitcoin.script.nullData @@ -62,5 +62,3 @@ class Script { return Bitcoin.script.fromASM(asm) } } - -export default Script diff --git a/src/Socket.js b/src/Socket.ts similarity index 89% rename from src/Socket.js rename to src/Socket.ts index afe31a88..0e5f8ebb 100644 --- a/src/Socket.js +++ b/src/Socket.ts @@ -1,6 +1,6 @@ -import io from "socket.io-client" +import * as io from "socket.io-client" -class Socket { +export class Socket { constructor(config = {}) { if (typeof config === "string") { // TODO remove this check in v2.0 @@ -25,5 +25,3 @@ class Socket { this.socket.on("transactions", msg => cb(msg)) } } - -export default Socket diff --git a/src/Transaction.js b/src/Transaction.ts similarity index 87% rename from src/Transaction.js rename to src/Transaction.ts index a3019549..d70db17e 100644 --- a/src/Transaction.js +++ b/src/Transaction.ts @@ -1,7 +1,7 @@ -import Bitcoin from "bitcoincashjs-lib" -import axios from "axios" +import * as Bitcoin from "bitcoincashjs-lib" +import * as axios from "axios" -class Transaction { +export class Transaction { constructor(restURL) { this.restURL = restURL } @@ -36,5 +36,3 @@ class Transaction { } } } - -export default Transaction diff --git a/src/TransactionBuilder.js b/src/TransactionBuilder.ts similarity index 92% rename from src/TransactionBuilder.js rename to src/TransactionBuilder.ts index 01050cf2..9ae22dbf 100644 --- a/src/TransactionBuilder.js +++ b/src/TransactionBuilder.ts @@ -1,9 +1,9 @@ -import Bitcoin from "bitcoincashjs-lib" -import coininfo from "coininfo" -import bip66 from "bip66" -import bip68 from "bc-bip68" +import * as Bitcoin from "bitcoincashjs-lib" +import * as coininfo from "coininfo" +import * as bip66 from "bip66" +import * as bip68 from "bc-bip68" -class TransactionBuilder { +export class TransactionBuilder { static setAddress(address) { TransactionBuilder._address = address } @@ -96,5 +96,3 @@ class TransactionBuilder { return this.transaction.build() } } - -export default TransactionBuilder diff --git a/src/Util.js b/src/Util.ts similarity index 93% rename from src/Util.js rename to src/Util.ts index 6799dc17..42f0c07a 100644 --- a/src/Util.js +++ b/src/Util.ts @@ -1,5 +1,6 @@ -import axios from "axios" -class Util { +import * as axios from "axios" + +export class Util { constructor(restURL) { this.restURL = restURL } @@ -34,5 +35,3 @@ class Util { } } } - -export default Util diff --git a/src/Wallet.js b/src/Wallet.js deleted file mode 100644 index de0e3839..00000000 --- a/src/Wallet.js +++ /dev/null @@ -1,77 +0,0 @@ -// import BCHWalletBridge from "bch-wallet-bridge.js" -class Wallet { - constructor(walletProvider) { - // this.bchWalletBridge = new BCHWalletBridge(walletProvider) - } - - setWalletProvider(walletProvider) { - this.bchWalletBridge.walletProvider = walletProvider - } - - getAddress(changeType, index, dAppId) { - return this.bchWalletBridge.getAddress(changeType, index, dAppId) - } - - getAddressIndex(changeType, dAppId) { - return this.bchWalletBridge.getAddressIndex(changeType, dAppId) - } - - getAddresses(changeType, startIndex, size, dAppId) { - return this.bchWalletBridge.getAddresses( - changeType, - startIndex, - size, - dAppId - ) - } - - getRedeemScript(p2shAddress, dAppId) { - return this.bchWalletBridge.getRedeemScript(p2shAddress, dAppId) - } - - getRedeemScripts(dAppId) { - return this.bchWalletBridge.getRedeemScripts(dAppId) - } - - addRedeemScript(redeemScript, dAppId) { - return this.bchWalletBridge.addRedeemScript(redeemScript, dAppId) - } - - getUtxos(dAppId) { - return this.bchWalletBridge.getUtxos(dAppId) - } - - getBalance(dAppId) { - return this.bchWalletBridge.getBalance(dAppId) - } - - sign(address, dataToSign) { - return this.bchWalletBridge.sign(address, dataToSign) - } - - buildTransaction(outputs, dAppId) { - return this.bchWalletBridge.buildTransaction(outputs, dAppId) - } - - getProtocolVersion() { - return this.bchWalletBridge.getProtocolVersion() - } - - getNetwork() { - return this.bchWalletBridge.getNetwork() - } - - getFeePerByte() { - return this.bchWalletBridge.getFeePerByte() - } - - getDefaultDAppId() { - return this.bchWalletBridge.getDefaultDAppId() - } - - setDefaultDAppId(dAppId) { - return this.bchWalletBridge.setDefaultDAppId(dAppId) - } -} - -export default Wallet diff --git a/src/Wallet.ts b/src/Wallet.ts new file mode 100644 index 00000000..47574d66 --- /dev/null +++ b/src/Wallet.ts @@ -0,0 +1,75 @@ +// import BCHWalletBridge from "bch-wallet-bridge.js" +export class Wallet { + constructor(walletProvider: any) { + // this.bchWalletBridge = new BCHWalletBridge(walletProvider) + } + + // setWalletProvider(walletProvider) { + // this.bchWalletBridge.walletProvider = walletProvider + // } + // + // getAddress(changeType, index, dAppId) { + // return this.bchWalletBridge.getAddress(changeType, index, dAppId) + // } + // + // getAddressIndex(changeType, dAppId) { + // return this.bchWalletBridge.getAddressIndex(changeType, dAppId) + // } + // + // getAddresses(changeType, startIndex, size, dAppId) { + // return this.bchWalletBridge.getAddresses( + // changeType, + // startIndex, + // size, + // dAppId + // ) + // } + // + // getRedeemScript(p2shAddress, dAppId) { + // return this.bchWalletBridge.getRedeemScript(p2shAddress, dAppId) + // } + // + // getRedeemScripts(dAppId) { + // return this.bchWalletBridge.getRedeemScripts(dAppId) + // } + // + // addRedeemScript(redeemScript, dAppId) { + // return this.bchWalletBridge.addRedeemScript(redeemScript, dAppId) + // } + // + // getUtxos(dAppId) { + // return this.bchWalletBridge.getUtxos(dAppId) + // } + // + // getBalance(dAppId) { + // return this.bchWalletBridge.getBalance(dAppId) + // } + // + // sign(address, dataToSign) { + // return this.bchWalletBridge.sign(address, dataToSign) + // } + // + // buildTransaction(outputs, dAppId) { + // return this.bchWalletBridge.buildTransaction(outputs, dAppId) + // } + // + // getProtocolVersion() { + // return this.bchWalletBridge.getProtocolVersion() + // } + // + // getNetwork() { + // return this.bchWalletBridge.getNetwork() + // } + // + // getFeePerByte() { + // return this.bchWalletBridge.getFeePerByte() + // } + // + // getDefaultDAppId() { + // return this.bchWalletBridge.getDefaultDAppId() + // } + // + // setDefaultDAppId(dAppId) { + // return this.bchWalletBridge.setDefaultDAppId(dAppId) + // } +} diff --git a/src/interfaces/BITBOXInterfaces.ts b/src/interfaces/BITBOXInterfaces.ts new file mode 100644 index 00000000..0e07f41c --- /dev/null +++ b/src/interfaces/BITBOXInterfaces.ts @@ -0,0 +1,3 @@ +export interface IConfig { + restURL?: string +} diff --git a/test/integration/address.js b/test/integration/address.js index 6363bf7e..d6662e19 100644 --- a/test/integration/address.js +++ b/test/integration/address.js @@ -9,7 +9,7 @@ const chai = require("chai") const assert = chai.assert -const BITBOXSDK = require("../../src/BITBOX") +const BITBOXSDK = require("../../lib/BITBOX").BITBOX const BITBOX = new BITBOXSDK() //const axios = require("axios") diff --git a/test/integration/block.js b/test/integration/block.js index d649d321..d8603a68 100644 --- a/test/integration/block.js +++ b/test/integration/block.js @@ -5,7 +5,7 @@ const chai = require("chai") const assert = chai.assert -const BITBOXSDK = require("../../src/BITBOX") +const BITBOXSDK = require("../../lib/BITBOX").BITBOX const BITBOX = new BITBOXSDK() // Inspect utility used for debugging. diff --git a/test/integration/blockchain.js b/test/integration/blockchain.js index e64f2654..b3b2c0c4 100644 --- a/test/integration/blockchain.js +++ b/test/integration/blockchain.js @@ -9,7 +9,7 @@ const chai = require("chai") const assert = chai.assert -const BITBOXSDK = require("../../src/BITBOX") +const BITBOXSDK = require("../../lib/BITBOX").BITBOX const BITBOX = new BITBOXSDK() // Inspect utility used for debugging. diff --git a/test/integration/price.js b/test/integration/price.js index 3054f61b..a27bc580 100644 --- a/test/integration/price.js +++ b/test/integration/price.js @@ -1,5 +1,5 @@ const assert = require("assert") -const BITBOXSDK = require("../../lib/BITBOX") +const BITBOXSDK = require("../../lib/BITBOX").BITBOX const BITBOX = new BITBOXSDK() describe("#price", () => { diff --git a/test/integration/rawtransaction.js b/test/integration/rawtransaction.js index 80414a26..a5573e40 100644 --- a/test/integration/rawtransaction.js +++ b/test/integration/rawtransaction.js @@ -7,7 +7,7 @@ const chai = require("chai") const assert = chai.assert -const BITBOXSDK = require("../../src/BITBOX") +const BITBOXSDK = require("../../lib/BITBOX").BITBOX const BITBOX = new BITBOXSDK() // Inspect utility used for debugging. diff --git a/test/integration/transaction.js b/test/integration/transaction.js index a5260d8c..c80c5843 100644 --- a/test/integration/transaction.js +++ b/test/integration/transaction.js @@ -5,7 +5,7 @@ const chai = require("chai") const assert = chai.assert -const BITBOXSDK = require("../../src/BITBOX") +const BITBOXSDK = require("../../lib/BITBOX").BITBOX const BITBOX = new BITBOXSDK() // Inspect utility used for debugging. diff --git a/test/integration/util.js b/test/integration/util.js index d2aff1a9..dc3ae029 100644 --- a/test/integration/util.js +++ b/test/integration/util.js @@ -5,7 +5,7 @@ const chai = require("chai") const assert = chai.assert -const BITBOXSDK = require("../../src/BITBOX") +const BITBOXSDK = require("../../lib/BITBOX").BITBOX const BITBOX = new BITBOXSDK() // Inspect utility used for debugging. diff --git a/test/integration/z9-rate-limits.js b/test/integration/z9-rate-limits.js index 89a98ec4..2c3bbd41 100644 --- a/test/integration/z9-rate-limits.js +++ b/test/integration/z9-rate-limits.js @@ -6,7 +6,7 @@ const chai = require("chai") const assert = chai.assert -const BITBOXSDK = require("../../src/BITBOX") +const BITBOXSDK = require("../../lib/BITBOX").BITBOX const BITBOX = new BITBOXSDK() // Inspect utility used for debugging. diff --git a/test/unit/Address.js b/test/unit/Address.js index b1bb13f3..672a5bd6 100644 --- a/test/unit/Address.js +++ b/test/unit/Address.js @@ -1,6 +1,6 @@ const fixtures = require("./fixtures/Address.json") const assert = require("assert") -const BITBOXSDK = require("../../lib/BITBOX") +const BITBOXSDK = require("../../lib/BITBOX").BITBOX const BITBOX = new BITBOXSDK() const axios = require("axios") const sinon = require("sinon") diff --git a/test/unit/BitcoinCash.js b/test/unit/BitcoinCash.js index 755c1f2c..b4f180a7 100644 --- a/test/unit/BitcoinCash.js +++ b/test/unit/BitcoinCash.js @@ -1,6 +1,6 @@ const fixtures = require("./fixtures/BitcoinCash.json") const assert = require("assert") -const BITBOXSDK = require("../../lib/BITBOX") +const BITBOXSDK = require("../../lib/BITBOX").BITBOX const BITBOX = new BITBOXSDK() // TODO diff --git a/test/unit/Block.js b/test/unit/Block.js index 558ed6b0..3365ccae 100644 --- a/test/unit/Block.js +++ b/test/unit/Block.js @@ -1,5 +1,5 @@ const assert = require("assert") -const BITBOXSDK = require("../../lib/BITBOX") +const BITBOXSDK = require("../../lib/BITBOX").BITBOX const BITBOX = new BITBOXSDK() const axios = require("axios") const sinon = require("sinon") diff --git a/test/unit/Blockchain.js b/test/unit/Blockchain.js index e928b417..8449c28f 100644 --- a/test/unit/Blockchain.js +++ b/test/unit/Blockchain.js @@ -1,6 +1,6 @@ const assert = require("assert") const axios = require("axios") -const BITBOXSDK = require("../../lib/BITBOX") +const BITBOXSDK = require("../../lib/BITBOX").BITBOX const BITBOX = new BITBOXSDK() const sinon = require("sinon") diff --git a/test/unit/Control.js b/test/unit/Control.js index a5cfd93d..ec3229da 100644 --- a/test/unit/Control.js +++ b/test/unit/Control.js @@ -1,6 +1,6 @@ const assert = require("assert") const axios = require("axios") -const BITBOXSDK = require("../../lib/BITBOX") +const BITBOXSDK = require("../../lib/BITBOX").BITBOX const BITBOX = new BITBOXSDK() const sinon = require("sinon") diff --git a/test/unit/Crypto.js b/test/unit/Crypto.js index ef2256df..55a8da7d 100644 --- a/test/unit/Crypto.js +++ b/test/unit/Crypto.js @@ -1,6 +1,6 @@ const fixtures = require("./fixtures/Crypto.json") const assert = require("assert") -const BITBOXSDK = require("../../lib/BITBOX") +const BITBOXSDK = require("../../lib/BITBOX").BITBOX const BITBOX = new BITBOXSDK() const Buffer = require("safe-buffer").Buffer diff --git a/test/unit/ECPair.js b/test/unit/ECPair.js index 1a5da7e4..03cd7aca 100644 --- a/test/unit/ECPair.js +++ b/test/unit/ECPair.js @@ -1,6 +1,6 @@ const fixtures = require("./fixtures/ECPair.json") const assert = require("assert") -const BITBOXSDK = require("../../lib/BITBOX") +const BITBOXSDK = require("../../lib/BITBOX").BITBOX const BITBOX = new BITBOXSDK() const Buffer = require("safe-buffer").Buffer diff --git a/test/unit/Generating.js b/test/unit/Generating.js index 1a0650a1..7d625f24 100644 --- a/test/unit/Generating.js +++ b/test/unit/Generating.js @@ -1,6 +1,6 @@ const assert = require("assert") const axios = require("axios") -const BITBOXSDK = require("../../lib/BITBOX") +const BITBOXSDK = require("../../lib/BITBOX").BITBOX const BITBOX = new BITBOXSDK() const sinon = require("sinon") diff --git a/test/unit/HDNode.js b/test/unit/HDNode.js index 5009e3fa..f1c2939b 100644 --- a/test/unit/HDNode.js +++ b/test/unit/HDNode.js @@ -1,6 +1,6 @@ const fixtures = require("./fixtures/HDNode.json") const assert = require("assert") -const BITBOXSDK = require("../../lib/BITBOX") +const BITBOXSDK = require("../../lib/BITBOX").BITBOX const BITBOX = new BITBOXSDK() const Buffer = require("safe-buffer").Buffer diff --git a/test/unit/Mining.js b/test/unit/Mining.js index 00571f6a..c199d15b 100644 --- a/test/unit/Mining.js +++ b/test/unit/Mining.js @@ -1,6 +1,6 @@ const assert = require("assert") const axios = require("axios") -const BITBOXSDK = require("../../lib/BITBOX") +const BITBOXSDK = require("../../lib/BITBOX").BITBOX const BITBOX = new BITBOXSDK() const sinon = require("sinon") diff --git a/test/unit/Mnemonic.js b/test/unit/Mnemonic.js index 9ee0bd50..39148ae3 100644 --- a/test/unit/Mnemonic.js +++ b/test/unit/Mnemonic.js @@ -1,6 +1,6 @@ const fixtures = require("./fixtures/Mnemonic.json") const assert = require("assert") -const BITBOXSDK = require("../../lib/BITBOX") +const BITBOXSDK = require("../../lib/BITBOX").BITBOX const BITBOX = new BITBOXSDK() describe("#Mnemonic", () => { diff --git a/test/unit/Price.js b/test/unit/Price.js index 54ca4b34..d3bd8daf 100644 --- a/test/unit/Price.js +++ b/test/unit/Price.js @@ -1,6 +1,6 @@ const chai = require("chai") const assert = require("assert") -const BITBOXSDK = require("../../lib/BITBOX") +const BITBOXSDK = require("../../lib/BITBOX").BITBOX const BITBOX = new BITBOXSDK() const axios = require("axios") const sinon = require("sinon") diff --git a/test/unit/RawTransactions.js b/test/unit/RawTransactions.js index 54cc1782..9d3cdb4d 100644 --- a/test/unit/RawTransactions.js +++ b/test/unit/RawTransactions.js @@ -7,7 +7,7 @@ const assert = require("assert") const axios = require("axios") -const BITBOXSDK = require("../../lib/BITBOX") +const BITBOXSDK = require("../../lib/BITBOX").BITBOX const BITBOX = new BITBOXSDK() const sinon = require("sinon") diff --git a/test/unit/Script.js b/test/unit/Script.js index 63794087..d2869507 100644 --- a/test/unit/Script.js +++ b/test/unit/Script.js @@ -1,6 +1,6 @@ const fixtures = require("./fixtures/Script.json") const assert = require("assert") -const BITBOXSDK = require("../../lib/BITBOX") +const BITBOXSDK = require("../../lib/BITBOX").BITBOX const BITBOX = new BITBOXSDK() const Buffer = require("safe-buffer").Buffer diff --git a/test/unit/Transaction.js b/test/unit/Transaction.js index 8ba0ef7e..2278f7d2 100644 --- a/test/unit/Transaction.js +++ b/test/unit/Transaction.js @@ -1,5 +1,5 @@ const assert = require("assert") -const BITBOXSDK = require("../../lib/BITBOX") +const BITBOXSDK = require("../../lib/BITBOX").BITBOX const BITBOX = new BITBOXSDK() const axios = require("axios") const sinon = require("sinon") diff --git a/test/unit/TransactionBuilder.js b/test/unit/TransactionBuilder.js index 387abab1..352929bb 100644 --- a/test/unit/TransactionBuilder.js +++ b/test/unit/TransactionBuilder.js @@ -1,6 +1,6 @@ const fixtures = require("./fixtures/TransactionBuilder.json") const assert = require("assert") -const BITBOXSDK = require("../../lib/BITBOX") +const BITBOXSDK = require("../../lib/BITBOX").BITBOX const BITBOX = new BITBOXSDK() const Buffer = require("safe-buffer").Buffer diff --git a/test/unit/Util.js b/test/unit/Util.js index 2534659e..2094d78a 100644 --- a/test/unit/Util.js +++ b/test/unit/Util.js @@ -1,6 +1,6 @@ const assert = require("assert") const axios = require("axios") -const BITBOXSDK = require("../../lib/BITBOX") +const BITBOXSDK = require("../../lib/BITBOX").BITBOX const BITBOX = new BITBOXSDK() const sinon = require("sinon") diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..cd08dfe0 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "outDir": "./lib/", + "noImplicitAny": true, + "baseUrl": ".", + "module": "commonjs", + "target": "es5", + "allowJs": true, + "lib": ["es2015", "es2015.symbol", "dom"], + "typeRoots": ["node_modules/@types/"] + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "test/**/*"] +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 00000000..6760127a --- /dev/null +++ b/yarn.lock @@ -0,0 +1,8145 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" + dependencies: + "@babel/highlight" "^7.0.0" + +"@babel/generator@^7.4.0", "@babel/generator@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.4.tgz#174a215eb843fc392c7edcaabeaa873de6e8f041" + dependencies: + "@babel/types" "^7.4.4" + jsesc "^2.5.1" + lodash "^4.17.11" + source-map "^0.5.0" + trim-right "^1.0.1" + +"@babel/helper-function-name@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" + dependencies: + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-get-function-arity@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-split-export-declaration@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677" + dependencies: + "@babel/types" "^7.4.4" + +"@babel/highlight@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.4.3", "@babel/parser@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.4.tgz#5977129431b8fe33471730d255ce8654ae1250b6" + +"@babel/template@^7.1.0", "@babel/template@^7.4.0": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.4.4" + "@babel/types" "^7.4.4" + +"@babel/traverse@^7.4.3": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.4.tgz#0776f038f6d78361860b6823887d4f3937133fe8" + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.4.4" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.4.4" + "@babel/parser" "^7.4.4" + "@babel/types" "^7.4.4" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.11" + +"@babel/types@^7.0.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.4.tgz#8db9e9a629bb7c29370009b4b779ed93fe57d5f0" + dependencies: + esutils "^2.0.2" + lodash "^4.17.11" + to-fast-properties "^2.0.0" + +"@mrmlnc/readdir-enhanced@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" + dependencies: + call-me-maybe "^1.0.1" + glob-to-regexp "^0.3.0" + +"@nodelib/fs.stat@^1.1.2": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" + +"@octokit/endpoint@^4.0.0": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-4.2.2.tgz#4ff11382bad89c7e01030a1e62d5e9d13c2402b0" + dependencies: + deepmerge "3.2.0" + is-plain-object "^3.0.0" + universal-user-agent "^2.0.1" + url-template "^2.0.8" + +"@octokit/request@3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-3.0.1.tgz#21e888c6dce80566ec69477360bab79f2f14861f" + dependencies: + "@octokit/endpoint" "^4.0.0" + deprecation "^1.0.1" + is-plain-object "^3.0.0" + node-fetch "^2.3.0" + once "^1.4.0" + universal-user-agent "^2.0.1" + +"@octokit/rest@^16.13.1": + version "16.25.2" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.25.2.tgz#51fede6d35af5ecc92f1e7feacad89abbcd2b0e8" + dependencies: + "@octokit/request" "3.0.1" + atob-lite "^2.0.0" + before-after-hook "^1.4.0" + btoa-lite "^1.0.0" + deprecation "^1.0.1" + lodash.get "^4.4.2" + lodash.set "^4.3.2" + lodash.uniq "^4.5.0" + octokit-pagination-methods "^1.1.0" + once "^1.4.0" + universal-user-agent "^2.0.0" + url-template "^2.0.8" + +"@semantic-release/commit-analyzer@^6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@semantic-release/commit-analyzer/-/commit-analyzer-6.1.0.tgz#32bbe3c23da86e23edf072fbb276fa2f383fcb17" + dependencies: + conventional-changelog-angular "^5.0.0" + conventional-commits-filter "^2.0.0" + conventional-commits-parser "^3.0.0" + debug "^4.0.0" + import-from "^2.1.0" + lodash "^4.17.4" + +"@semantic-release/error@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@semantic-release/error/-/error-2.2.0.tgz#ee9d5a09c9969eade1ec864776aeda5c5cddbbf0" + +"@semantic-release/github@^5.1.0": + version "5.2.10" + resolved "https://registry.yarnpkg.com/@semantic-release/github/-/github-5.2.10.tgz#bf325f11685d59b864c8946d7d30fcb749d89e37" + dependencies: + "@octokit/rest" "^16.13.1" + "@semantic-release/error" "^2.2.0" + aggregate-error "^2.0.0" + bottleneck "^2.0.1" + debug "^4.0.0" + dir-glob "^2.0.0" + fs-extra "^7.0.0" + globby "^9.0.0" + http-proxy-agent "^2.1.0" + https-proxy-agent "^2.2.1" + issue-parser "^3.0.0" + lodash "^4.17.4" + mime "^2.0.3" + p-filter "^1.0.0" + p-retry "^3.0.0" + parse-github-url "^1.0.1" + url-join "^4.0.0" + +"@semantic-release/npm@^5.0.5": + version "5.1.4" + resolved "https://registry.yarnpkg.com/@semantic-release/npm/-/npm-5.1.4.tgz#970b62765e6c5d51f94e1c14d3bc1f5a224e2ed0" + dependencies: + "@semantic-release/error" "^2.2.0" + aggregate-error "^2.0.0" + execa "^1.0.0" + fs-extra "^7.0.0" + lodash "^4.17.4" + nerf-dart "^1.0.0" + normalize-url "^4.0.0" + npm "6.5.0" + rc "^1.2.8" + read-pkg "^4.0.0" + registry-auth-token "^3.3.1" + +"@semantic-release/release-notes-generator@^7.1.2": + version "7.1.4" + resolved "https://registry.yarnpkg.com/@semantic-release/release-notes-generator/-/release-notes-generator-7.1.4.tgz#8f4f752c5a8385abdaac1256127cef05988bc2ad" + dependencies: + conventional-changelog-angular "^5.0.0" + conventional-changelog-writer "^4.0.0" + conventional-commits-filter "^2.0.0" + conventional-commits-parser "^3.0.0" + debug "^4.0.0" + get-stream "^4.0.0" + import-from "^2.1.0" + into-stream "^4.0.0" + lodash "^4.17.4" + +"@sinonjs/commons@^1", "@sinonjs/commons@^1.0.2": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.4.0.tgz#7b3ec2d96af481d7a0321252e7b1c94724ec5a78" + dependencies: + type-detect "4.0.8" + +"@sinonjs/formatio@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-2.0.0.tgz#84db7e9eb5531df18a8c5e0bfb6e449e55e654b2" + dependencies: + samsam "1.3.0" + +"@sinonjs/formatio@^3.1.0": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-3.2.1.tgz#52310f2f9bcbc67bdac18c94ad4901b95fde267e" + dependencies: + "@sinonjs/commons" "^1" + "@sinonjs/samsam" "^3.1.0" + +"@sinonjs/samsam@^3.1.0": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-3.3.1.tgz#e88c53fbd9d91ad9f0f2b0140c16c7c107fe0d07" + dependencies: + "@sinonjs/commons" "^1.0.2" + array-from "^2.1.1" + lodash "^4.17.11" + +"@sinonjs/text-encoding@^0.7.1": + version "0.7.1" + resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" + +"@types/events@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" + +"@types/glob@^7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" + dependencies: + "@types/events" "*" + "@types/minimatch" "*" + "@types/node" "*" + +"@types/minimatch@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + +"@types/node@*": + version "12.0.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.0.0.tgz#d11813b9c0ff8aaca29f04cbc12817f4c7d656e5" + +"@types/node@^10.11.7": + version "10.14.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.6.tgz#9cbfcb62c50947217f4d88d4d274cc40c22625a9" + +JSONStream@^1.0.4, JSONStream@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +abbrev@1, abbrev@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + +accepts@^1.3.5, accepts@~1.3.4: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + dependencies: + acorn "^3.0.4" + +acorn-jsx@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e" + +acorn@^3.0.4: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + +acorn@^5.5.0: + version "5.7.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" + +acorn@^6.0.7: + version "6.1.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f" + +after@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" + +agent-base@4, agent-base@^4.1.0, agent-base@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" + dependencies: + es6-promisify "^5.0.0" + +agentkeepalive@^3.4.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.5.2.tgz#a113924dd3fa24a0bc3b78108c450c2abee00f67" + dependencies: + humanize-ms "^1.2.1" + +aggregate-error@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-2.2.0.tgz#f54b464db18cc77c907ae084451f39134707134a" + dependencies: + clean-stack "^2.0.0" + indent-string "^3.0.0" + +ajv-keywords@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" + +ajv@^5.2.3, ajv@^5.3.0: + version "5.5.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.3.0" + +ajv@^6.5.5, ajv@^6.9.1: + version "6.10.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1" + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-align@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" + dependencies: + string-width "^2.0.0" + +ansi-colors@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-1.1.0.tgz#6374b4dd5d4718ff3ce27a671a3b1cad077132a9" + dependencies: + ansi-wrap "^0.1.0" + +ansi-escapes@^3.0.0, ansi-escapes@^3.1.0, ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + +ansi-gray@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" + dependencies: + ansi-wrap "0.1.0" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + dependencies: + color-convert "^1.9.0" + +ansi-wrap@0.1.0, ansi-wrap@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" + +ansicolors@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" + +ansistyles@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/ansistyles/-/ansistyles-0.1.3.tgz#5de60415bda071bb37127854c864f41b23254539" + +anymatch@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" + dependencies: + micromatch "^2.1.5" + normalize-path "^2.0.0" + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +append-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/append-buffer/-/append-buffer-1.0.2.tgz#d8220cf466081525efea50614f3de6514dfa58f1" + dependencies: + buffer-equal "^1.0.0" + +append-transform@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab" + dependencies: + default-require-extensions "^2.0.0" + +aproba@^1.0.3, aproba@^1.1.1, aproba@^1.1.2, aproba@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + +"aproba@^1.1.2 || 2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + +archy@^1.0.0, archy@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + dependencies: + sprintf-js "~1.0.2" + +argv-formatter@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/argv-formatter/-/argv-formatter-1.0.0.tgz#a0ca0cbc29a5b73e836eebe1cbf6c5e0e4eb82f9" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + +arr-filter@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/arr-filter/-/arr-filter-1.1.2.tgz#43fdddd091e8ef11aa4c45d9cdc18e2dff1711ee" + dependencies: + make-iterator "^1.0.0" + +arr-flatten@^1.0.1, arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + +arr-map@^2.0.0, arr-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/arr-map/-/arr-map-2.0.2.tgz#3a77345ffc1cf35e2a91825601f9e58f2e24cac4" + dependencies: + make-iterator "^1.0.0" + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + +array-each@^1.0.0, array-each@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" + +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + +array-from@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" + +array-ify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" + +array-includes@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.7.0" + +array-initial@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/array-initial/-/array-initial-1.1.0.tgz#2fa74b26739371c3947bd7a7adc73be334b3d795" + dependencies: + array-slice "^1.0.0" + is-number "^4.0.0" + +array-last@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/array-last/-/array-last-1.3.0.tgz#7aa77073fec565ddab2493f5f88185f404a9d336" + dependencies: + is-number "^4.0.0" + +array-slice@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" + +array-sort@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-sort/-/array-sort-1.0.0.tgz#e4c05356453f56f53512a7d1d6123f2c54c0a88a" + dependencies: + default-compare "^1.0.0" + get-value "^2.0.6" + kind-of "^5.0.2" + +array-union@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + +array-uniq@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-2.1.0.tgz#46603d5e28e79bfd02b046fcc1d77c6820bd8e98" + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + +arraybuffer.slice@~0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" + +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + +asap@^2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +assert@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + dependencies: + util "0.10.3" + +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + +async-done@^1.2.0, async-done@^1.2.2: + version "1.3.1" + resolved "https://registry.yarnpkg.com/async-done/-/async-done-1.3.1.tgz#14b7b73667b864c8f02b5b253fc9c6eddb777f3e" + dependencies: + end-of-stream "^1.1.0" + once "^1.3.2" + process-nextick-args "^1.0.7" + stream-exhaust "^1.0.1" + +async-each@^1.0.0, async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + +async-limiter@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" + +async-settle@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-settle/-/async-settle-1.0.0.tgz#1d0a914bb02575bec8a8f3a74e5080f72b2c0c6b" + dependencies: + async-done "^1.2.2" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +atob-lite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/atob-lite/-/atob-lite-2.0.0.tgz#0fef5ad46f1bd7a8502c65727f0367d5ee43d696" + +atob@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + +aws4@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" + +axios@^0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.17.1.tgz#2d8e3e5d0bdbd7327f91bc814f5c57660f81824d" + dependencies: + follow-redirects "^1.2.5" + is-buffer "^1.1.5" + +babel-cli@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" + dependencies: + babel-core "^6.26.0" + babel-polyfill "^6.26.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + commander "^2.11.0" + convert-source-map "^1.5.0" + fs-readdir-recursive "^1.0.0" + glob "^7.1.2" + lodash "^4.17.4" + output-file-sync "^1.1.2" + path-is-absolute "^1.0.1" + slash "^1.0.0" + source-map "^0.5.6" + v8flags "^2.1.1" + optionalDependencies: + chokidar "^1.6.1" + +babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@^6.26.0: + version "6.26.3" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.1" + debug "^2.6.9" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.8" + slash "^1.0.0" + source-map "^0.5.7" + +babel-generator@^6.26.0: + version "6.26.1" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" + +babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" + dependencies: + babel-helper-explode-assignable-expression "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-call-delegate@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-define-map@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-explode-assignable-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" + dependencies: + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-get-function-arity@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-hoist-variables@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-optimise-call-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-regex@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" + dependencies: + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-remap-async-to-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-replace-supers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" + dependencies: + babel-helper-optimise-call-expression "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-check-es2015-constants@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-syntax-async-functions@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" + +babel-plugin-syntax-exponentiation-operator@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" + +babel-plugin-syntax-trailing-function-commas@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" + +babel-plugin-transform-async-to-generator@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" + dependencies: + babel-helper-remap-async-to-generator "^6.24.1" + babel-plugin-syntax-async-functions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-arrow-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoping@^6.23.0, babel-plugin-transform-es2015-block-scoping@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" + dependencies: + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-plugin-transform-es2015-classes@^6.23.0, babel-plugin-transform-es2015-classes@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" + dependencies: + babel-helper-define-map "^6.24.1" + babel-helper-function-name "^6.24.1" + babel-helper-optimise-call-expression "^6.24.1" + babel-helper-replace-supers "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-computed-properties@^6.22.0, babel-plugin-transform-es2015-computed-properties@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-destructuring@^6.22.0, babel-plugin-transform-es2015-destructuring@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-duplicate-keys@^6.22.0, babel-plugin-transform-es2015-duplicate-keys@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-for-of@^6.22.0, babel-plugin-transform-es2015-for-of@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-function-name@^6.22.0, babel-plugin-transform-es2015-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" + dependencies: + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: + version "6.26.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" + dependencies: + babel-plugin-transform-strict-mode "^6.24.1" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-types "^6.26.0" + +babel-plugin-transform-es2015-modules-systemjs@^6.23.0, babel-plugin-transform-es2015-modules-systemjs@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-umd@^6.23.0, babel-plugin-transform-es2015-modules-umd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" + dependencies: + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-object-super@^6.22.0, babel-plugin-transform-es2015-object-super@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" + dependencies: + babel-helper-replace-supers "^6.24.1" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-parameters@^6.23.0, babel-plugin-transform-es2015-parameters@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" + dependencies: + babel-helper-call-delegate "^6.24.1" + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-shorthand-properties@^6.22.0, babel-plugin-transform-es2015-shorthand-properties@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-spread@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-sticky-regex@^6.22.0, babel-plugin-transform-es2015-sticky-regex@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-template-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-typeof-symbol@^6.22.0, babel-plugin-transform-es2015-typeof-symbol@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-unicode-regex@^6.22.0, babel-plugin-transform-es2015-unicode-regex@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + regexpu-core "^2.0.0" + +babel-plugin-transform-exponentiation-operator@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" + dependencies: + babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" + babel-plugin-syntax-exponentiation-operator "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-regenerator@^6.22.0, babel-plugin-transform-regenerator@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" + dependencies: + regenerator-transform "^0.10.0" + +babel-plugin-transform-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-polyfill@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" + dependencies: + babel-runtime "^6.26.0" + core-js "^2.5.0" + regenerator-runtime "^0.10.5" + +babel-preset-env@^1.6.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-syntax-trailing-function-commas "^6.22.0" + babel-plugin-transform-async-to-generator "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.23.0" + babel-plugin-transform-es2015-classes "^6.23.0" + babel-plugin-transform-es2015-computed-properties "^6.22.0" + babel-plugin-transform-es2015-destructuring "^6.23.0" + babel-plugin-transform-es2015-duplicate-keys "^6.22.0" + babel-plugin-transform-es2015-for-of "^6.23.0" + babel-plugin-transform-es2015-function-name "^6.22.0" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.22.0" + babel-plugin-transform-es2015-modules-commonjs "^6.23.0" + babel-plugin-transform-es2015-modules-systemjs "^6.23.0" + babel-plugin-transform-es2015-modules-umd "^6.23.0" + babel-plugin-transform-es2015-object-super "^6.22.0" + babel-plugin-transform-es2015-parameters "^6.23.0" + babel-plugin-transform-es2015-shorthand-properties "^6.22.0" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.22.0" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.23.0" + babel-plugin-transform-es2015-unicode-regex "^6.22.0" + babel-plugin-transform-exponentiation-operator "^6.22.0" + babel-plugin-transform-regenerator "^6.22.0" + browserslist "^3.2.6" + invariant "^2.2.2" + semver "^5.3.0" + +babel-preset-es2015@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.24.1" + babel-plugin-transform-es2015-classes "^6.24.1" + babel-plugin-transform-es2015-computed-properties "^6.24.1" + babel-plugin-transform-es2015-destructuring "^6.22.0" + babel-plugin-transform-es2015-duplicate-keys "^6.24.1" + babel-plugin-transform-es2015-for-of "^6.22.0" + babel-plugin-transform-es2015-function-name "^6.24.1" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-plugin-transform-es2015-modules-systemjs "^6.24.1" + babel-plugin-transform-es2015-modules-umd "^6.24.1" + babel-plugin-transform-es2015-object-super "^6.24.1" + babel-plugin-transform-es2015-parameters "^6.24.1" + babel-plugin-transform-es2015-shorthand-properties "^6.24.1" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.24.1" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.22.0" + babel-plugin-transform-es2015-unicode-regex "^6.24.1" + babel-plugin-transform-regenerator "^6.24.1" + +babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + +babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.24.1, babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.24.1, babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + +bach@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/bach/-/bach-1.2.0.tgz#4b3ce96bf27134f79a1b414a51c14e34c3bd9880" + dependencies: + arr-filter "^1.1.1" + arr-flatten "^1.0.1" + arr-map "^2.0.0" + array-each "^1.0.0" + array-initial "^1.0.0" + array-last "^1.1.1" + async-done "^1.2.2" + async-settle "^1.0.0" + now-and-later "^2.0.0" + +backo2@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + +base-x@^3.0.2: + version "3.0.5" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.5.tgz#d3ada59afed05b921ab581ec3112e6444ba0795a" + dependencies: + safe-buffer "^5.0.1" + +base64-arraybuffer@0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" + +base64-js@^1.0.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" + +base64id@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +bc-bip68@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/bc-bip68/-/bc-bip68-1.0.5.tgz#4d3774067d8c9e922e225f5f2c4178ee9ae8dc94" + +bch-wallet-bridge-provider-interface@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/bch-wallet-bridge-provider-interface/-/bch-wallet-bridge-provider-interface-0.1.1.tgz#5f1fb2a9738829611111c0ff9886228c3bd494aa" + +"bch-wallet-bridge.js@github:web3bch/bch-wallet-bridge.js#master": + version "0.1.1" + resolved "https://codeload.github.com/web3bch/bch-wallet-bridge.js/tar.gz/f73558eaf3a98ba2a23de3c9cbbd582b30ff19eb" + dependencies: + bch-wallet-bridge-provider-interface "^0.1.1" + bchaddrjs "^0.2.2" + bitcoincashjs "^0.1.10" + +bchaddrjs@^0.2.2: + version "0.2.3" + resolved "https://registry.yarnpkg.com/bchaddrjs/-/bchaddrjs-0.2.3.tgz#c3008ac85d7c7e583e83a30604c427b5bed26c68" + dependencies: + bs58check "^2.1.2" + cashaddrjs "^0.2.9" + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + dependencies: + tweetnacl "^0.14.3" + +bech32@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.3.tgz#bd47a8986bbb3eec34a56a097a84b8d3e9a2dfcd" + +before-after-hook@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-1.4.0.tgz#2b6bf23dca4f32e628fd2747c10a37c74a4b484d" + +better-assert@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + dependencies: + callsite "1.0.0" + +big-integer@^1.6.34: + version "1.6.43" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.43.tgz#8ac15bf13e93e509500859061233e19d8d0d99d1" + +big.js@^3.1.3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" + +bigi@^1.1.0, bigi@^1.2.0, bigi@^1.4.0, bigi@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/bigi/-/bigi-1.4.2.tgz#9c665a95f88b8b08fc05cfd731f561859d725825" + +bin-links@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-1.1.2.tgz#fb74bd54bae6b7befc6c6221f25322ac830d9757" + dependencies: + bluebird "^3.5.0" + cmd-shim "^2.0.2" + gentle-fs "^2.0.0" + graceful-fs "^4.1.11" + write-file-atomic "^2.3.0" + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + +bindings@^1.2.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + dependencies: + file-uri-to-path "1.0.0" + +bip-schnorr@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/bip-schnorr/-/bip-schnorr-0.3.0.tgz#e6490379603704e9dd123d874b41755aea4f352c" + dependencies: + ecurve "^1.0.6" + js-sha256 "^0.9.0" + random-bytes "^1.0.0" + safe-buffer "^5.0.1" + +bip21@Bitcoin-com/bip21: + version "2.0.1" + resolved "https://codeload.github.com/Bitcoin-com/bip21/tar.gz/28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f" + dependencies: + qs "^6.3.0" + +bip32-utils@Bitcoin-com/bip32-utils#0.13.1: + version "0.13.1" + resolved "https://codeload.github.com/Bitcoin-com/bip32-utils/tar.gz/b8a33ebd0a0ac39de7cd987e5c3f77a8c5d84e58" + dependencies: + keccak "^1.3.0" + nyc "*" + standard "^11.0.1" + tape "*" + +bip38@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/bip38/-/bip38-2.0.2.tgz#6f7762bc90b0bdf63b489ff95349354aecf9baee" + dependencies: + bigi "^1.2.0" + browserify-aes "^1.0.1" + bs58check "<3.0.0" + buffer-xor "^1.0.2" + create-hash "^1.1.1" + ecurve "^1.0.0" + scryptsy "^2.0.0" + +bip39@^2.5.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/bip39/-/bip39-2.6.0.tgz#9e3a720b42ec8b3fbe4038f1e445317b6a99321c" + dependencies: + create-hash "^1.1.0" + pbkdf2 "^3.0.9" + randombytes "^2.0.1" + safe-buffer "^5.0.1" + unorm "^1.3.3" + +bip66@^1.1.0, bip66@^1.1.3, bip66@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/bip66/-/bip66-1.1.5.tgz#01fa8748785ca70955d5011217d1b3139969ca22" + dependencies: + safe-buffer "^5.0.1" + +bitcoincash-ops@Bitcoin-com/bitcoincash-ops#2.0.0: + version "2.0.0" + resolved "https://codeload.github.com/Bitcoin-com/bitcoincash-ops/tar.gz/6ab82cc7326c67236f3b2d9d0457258ac2ef48e3" + +bitcoincashjs-lib@Bitcoin-com/bitcoincashjs-lib#v4.0.0: + version "4.0.0" + resolved "https://codeload.github.com/Bitcoin-com/bitcoincashjs-lib/tar.gz/3d360c780ec7df4a74aea93664c2b5ff8b08949a" + dependencies: + bech32 "^1.1.2" + bigi "^1.4.0" + bip66 "^1.1.0" + bitcoincash-ops Bitcoin-com/bitcoincash-ops#2.0.0 + bs58check "^2.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.3" + ecurve "^1.0.0" + merkle-lib "^2.0.10" + pushdata-bitcoin Bitcoin-com/pushdata-bitcoin#1.2.1 + randombytes "^2.0.1" + safe-buffer "^5.0.1" + typeforce "^1.11.3" + varuint-bitcoin "^1.0.4" + wif "^2.0.1" + +bitcoincashjs@^0.1.10: + version "0.1.14" + resolved "https://registry.yarnpkg.com/bitcoincashjs/-/bitcoincashjs-0.1.14.tgz#9da1efb762e05d608b6e04fadf1277eaa2201b48" + +bitcoinjs-message@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz#e285d223607dabf2b33a6ee486a223b59d1b1548" + dependencies: + bs58check "^2.0.2" + buffer-equals "^1.0.3" + create-hash "^1.1.2" + secp256k1 "^3.0.1" + varuint-bitcoin "^1.0.1" + +blob@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" + +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + dependencies: + inherits "~2.0.0" + +bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.5.3: + version "3.5.4" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.4.tgz#d6cc661595de30d5b3af5fcedd3c0b3ef6ec5714" + +bn.js@^4.11.3, bn.js@^4.4.0: + version "4.11.8" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + +bottleneck@^2.0.1: + version "2.18.0" + resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.18.0.tgz#41fa63ae185b65435d789d1700334bc48222dacf" + +boxen@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" + dependencies: + ansi-align "^2.0.0" + camelcase "^4.0.0" + chalk "^2.0.1" + cli-boxes "^1.0.0" + string-width "^2.0.0" + term-size "^1.2.0" + widest-line "^2.0.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + +browserify-aes@^1.0.1, browserify-aes@^1.0.6: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserslist@^3.2.6: + version "3.2.8" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" + dependencies: + caniuse-lite "^1.0.30000844" + electron-to-chromium "^1.3.47" + +bs58@^4.0.0, bs58@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" + dependencies: + base-x "^3.0.2" + +bs58check@<3.0.0, bs58check@^2.0.0, bs58check@^2.0.2, bs58check@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" + dependencies: + bs58 "^4.0.0" + create-hash "^1.1.0" + safe-buffer "^5.1.2" + +btoa-lite@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" + +buffer-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" + +buffer-equals@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/buffer-equals/-/buffer-equals-1.0.4.tgz#0353b54fd07fd9564170671ae6f66b9cf10d27f5" + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + +buffer-xor@^1.0.2, buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + +buffer@^5.1.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6" + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +builtin-modules@^1.0.0, builtin-modules@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + +builtins@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" + +byline@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1" + +byte-size@^4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-4.0.4.tgz#29d381709f41aae0d89c631f1c81aec88cd40b23" + +cacache@^10.0.4: + version "10.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" + dependencies: + bluebird "^3.5.1" + chownr "^1.0.1" + glob "^7.1.2" + graceful-fs "^4.1.11" + lru-cache "^4.1.1" + mississippi "^2.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.2" + ssri "^5.2.4" + unique-filename "^1.1.0" + y18n "^4.0.0" + +cacache@^11.0.1, cacache@^11.0.2, cacache@^11.2.0: + version "11.3.2" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.2.tgz#2d81e308e3d258ca38125b676b98b2ac9ce69bfa" + dependencies: + bluebird "^3.5.3" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.3" + graceful-fs "^4.1.15" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.2" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +caching-transform@^3.0.1, caching-transform@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-3.0.2.tgz#601d46b91eca87687a281e71cef99791b0efca70" + dependencies: + hasha "^3.0.0" + make-dir "^2.0.0" + package-hash "^3.0.0" + write-file-atomic "^2.4.2" + +call-limit@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/call-limit/-/call-limit-1.1.0.tgz#6fd61b03f3da42a2cd0ec2b60f02bd0e71991fea" + +call-me-maybe@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + dependencies: + callsites "^2.0.0" + +caller-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + dependencies: + callsites "^0.2.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + dependencies: + caller-callsite "^2.0.0" + +callsite@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + +callsites@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + +camelcase-keys@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" + dependencies: + camelcase "^4.1.0" + map-obj "^2.0.0" + quick-lru "^1.0.0" + +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + +camelcase@^4.0.0, camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + +camelcase@^5.0.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + +can-promise@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/can-promise/-/can-promise-0.0.1.tgz#7a7597ad801fb14c8b22341dfec314b6bd6ad8d3" + dependencies: + window-or-global "^1.0.1" + +caniuse-lite@^1.0.30000844: + version "1.0.30000967" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000967.tgz#a5039577806fccee80a04aaafb2c0890b1ee2f73" + +capture-stack-trace@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" + +cardinal@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/cardinal/-/cardinal-2.1.1.tgz#7cc1055d822d212954d07b085dea251cc7bc5505" + dependencies: + ansicolors "~0.3.2" + redeyed "~2.1.0" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + +cashaddrjs@^0.2.9: + version "0.2.9" + resolved "https://registry.yarnpkg.com/cashaddrjs/-/cashaddrjs-0.2.9.tgz#e38e323e11e0ab761767006b3938a36278dadec9" + dependencies: + big-integer "^1.6.34" + +chai@^4.1.2: + version "4.2.0" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5" + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.2" + deep-eql "^3.0.1" + get-func-name "^2.0.0" + pathval "^1.1.0" + type-detect "^4.0.5" + +chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + 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" + +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chardet@^0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + +check-error@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + +chokidar@^1.6.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" + dependencies: + anymatch "^1.3.0" + async-each "^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" + optionalDependencies: + fsevents "^1.0.0" + +chokidar@^2.0.0: + version "2.1.5" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.5.tgz#0ae8434d962281a5f56c72869e79cb6d9d86ad4d" + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chownr@^1.0.1, chownr@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" + +chownr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" + +ci-info@^1.5.0, ci-info@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" + +cidr-regex@^2.0.10: + version "2.0.10" + resolved "https://registry.yarnpkg.com/cidr-regex/-/cidr-regex-2.0.10.tgz#af13878bd4ad704de77d6dc800799358b3afa70d" + dependencies: + ip-regex "^2.1.0" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +circular-json@^0.3.1: + version "0.3.3" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +clean-stack@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.1.0.tgz#9e7fec7f3f8340a2ab4f127c80273085e8fbbdd0" + +clear@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/clear/-/clear-0.0.1.tgz#e5186e229d99448179c130311b6f9d30bff6b0ba" + +cli-boxes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" + +cli-columns@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/cli-columns/-/cli-columns-3.1.2.tgz#6732d972979efc2ae444a1f08e08fa139c96a18e" + dependencies: + string-width "^2.0.0" + strip-ansi "^3.0.1" + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + dependencies: + restore-cursor "^2.0.0" + +cli-table3@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" + dependencies: + object-assign "^4.1.0" + string-width "^2.1.1" + optionalDependencies: + colors "^1.1.2" + +cli-table@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23" + dependencies: + colors "1.0.3" + +cli-width@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + +cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + +cliui@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" + +clone-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" + +clone-stats@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + +clone@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + +cloneable-readable@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.2.tgz#d591dee4a8f8bc15da43ce97dceeba13d43e2a65" + dependencies: + inherits "^2.0.1" + process-nextick-args "^2.0.0" + readable-stream "^2.3.5" + +cmd-shim@^2.0.2, cmd-shim@~2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-2.0.2.tgz#6fcbda99483a8fd15d7d30a196ca69d688a2efdb" + dependencies: + graceful-fs "^4.1.2" + mkdirp "~0.5.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + +coininfo@Bitcoin-com/coininfo: + version "4.0.0" + resolved "https://codeload.github.com/Bitcoin-com/coininfo/tar.gz/eece2c6141d08c3e7783929f2a1e1e681aa1a82c" + dependencies: + safe-buffer "^5.1.1" + +collection-map@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-map/-/collection-map-1.0.0.tgz#aea0f06f8d26c780c2b75494385544b2255af18c" + dependencies: + arr-map "^2.0.2" + for-own "^1.0.0" + make-iterator "^1.0.0" + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + +color-support@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + +colors@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" + +colors@^1.1.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" + +columnify@~1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" + dependencies: + strip-ansi "^3.0.0" + wcwidth "^1.0.0" + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828" + dependencies: + delayed-stream "~1.0.0" + +commander@2.15.1: + version "2.15.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" + +commander@^2.11.0, commander@^2.13.0, commander@~2.20.0: + version "2.20.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + +compare-func@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-1.3.2.tgz#99dd0ba457e1f9bc722b12c08ec33eeab31fa648" + dependencies: + array-ify "^1.0.0" + dot-prop "^3.0.0" + +component-bind@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + +component-emitter@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + +component-inherit@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +concat-stream@^1.5.0, concat-stream@^1.5.2, concat-stream@^1.6.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +config-chain@^1.1.12: + version "1.1.12" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +configstore@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" + dependencies: + dot-prop "^4.1.0" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + unique-string "^1.0.0" + write-file-atomic "^2.0.0" + xdg-basedir "^3.0.0" + +console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + +contains-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + +conventional-changelog-angular@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.3.tgz#299fdd43df5a1f095283ac16aeedfb0a682ecab0" + dependencies: + compare-func "^1.3.1" + q "^1.5.1" + +conventional-changelog-writer@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.0.3.tgz#916a2b302d0bb5ef18efd236a034c13fb273cde1" + dependencies: + compare-func "^1.3.1" + conventional-commits-filter "^2.0.1" + dateformat "^3.0.0" + handlebars "^4.1.0" + json-stringify-safe "^5.0.1" + lodash "^4.2.1" + meow "^4.0.0" + semver "^5.5.0" + split "^1.0.0" + through2 "^2.0.0" + +conventional-commits-filter@^2.0.0, conventional-commits-filter@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.1.tgz#55a135de1802f6510b6758e0a6aa9e0b28618db3" + dependencies: + is-subset "^0.1.1" + modify-values "^1.0.0" + +conventional-commits-parser@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.0.1.tgz#fe1c49753df3f98edb2285a5e485e11ffa7f2e4c" + dependencies: + JSONStream "^1.0.4" + is-text-path "^1.0.0" + lodash "^4.2.1" + meow "^4.0.0" + split2 "^2.0.0" + through2 "^2.0.0" + trim-off-newlines "^1.0.0" + +convert-source-map@^1.5.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" + dependencies: + safe-buffer "~5.1.1" + +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + +copy-props@^2.0.1: + version "2.0.4" + resolved "https://registry.yarnpkg.com/copy-props/-/copy-props-2.0.4.tgz#93bb1cadfafd31da5bb8a9d4b41f471ec3a72dfe" + dependencies: + each-props "^1.3.0" + is-plain-object "^2.0.1" + +core-js@^2.4.0, core-js@^2.5.0: + version "2.6.5" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.5.tgz#44bc8d249e7fb2ff5d00e0341a7ffb94fbf67895" + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +cosmiconfig@^5.0.1: + version "5.2.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.0.tgz#45038e4d28a7fe787203aede9c25bca4a08b12c8" + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.0" + parse-json "^4.0.0" + +coveralls@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-3.0.3.tgz#83b1c64aea1c6afa69beaf50b55ac1bc4d13e2b8" + dependencies: + growl "~> 1.10.0" + js-yaml "^3.11.0" + lcov-parse "^0.0.10" + log-driver "^1.2.7" + minimist "^1.2.0" + request "^2.86.0" + +cp-file@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cp-file/-/cp-file-5.0.0.tgz#bc700fd30ca32d24d46c7fb02b992e435fc5a978" + dependencies: + graceful-fs "^4.1.2" + make-dir "^1.0.0" + nested-error-stacks "^2.0.0" + pify "^3.0.0" + safe-buffer "^5.0.1" + +cp-file@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/cp-file/-/cp-file-6.2.0.tgz#40d5ea4a1def2a9acdd07ba5c0b0246ef73dc10d" + dependencies: + graceful-fs "^4.1.2" + make-dir "^2.0.0" + nested-error-stacks "^2.0.0" + pify "^4.0.1" + safe-buffer "^5.0.1" + +create-error-class@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + dependencies: + capture-stack-trace "^1.0.0" + +create-hash@^1.1.0, create-hash@^1.1.1, create-hash@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.3, create-hmac@^1.1.4: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-spawn@^4: + version "4.0.2" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" + dependencies: + lru-cache "^4.0.1" + which "^1.2.9" + +cross-spawn@^5.0.1, cross-spawn@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +crypto-random-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + dependencies: + array-find-index "^1.0.1" + +cyclist@~0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" + +d@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + dependencies: + es5-ext "^0.10.9" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + dependencies: + assert-plus "^1.0.0" + +dateformat@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" + +debug-log@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" + +debug@3.1.0, debug@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + dependencies: + ms "2.0.0" + +debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + dependencies: + ms "2.0.0" + +debug@^3.1.0, debug@^3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + dependencies: + ms "^2.1.1" + +debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + dependencies: + ms "^2.1.1" + +debuglog@*, debuglog@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" + +decamelize-keys@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" + dependencies: + decamelize "^1.1.0" + map-obj "^1.0.0" + +decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + +deep-eql@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + dependencies: + type-detect "^4.0.0" + +deep-equal@^1.0.0, deep-equal@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + +deepmerge@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.2.0.tgz#58ef463a57c08d376547f8869fdc5bcee957f44e" + +default-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/default-compare/-/default-compare-1.0.0.tgz#cb61131844ad84d84788fb68fd01681ca7781a2f" + dependencies: + kind-of "^5.0.2" + +default-require-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-2.0.0.tgz#f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7" + dependencies: + strip-bom "^3.0.0" + +default-resolution@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/default-resolution/-/default-resolution-2.0.0.tgz#bcb82baa72ad79b426a76732f1a81ad6df26d684" + +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + dependencies: + clone "^1.0.2" + +define-properties@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +defined@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + +deglob@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/deglob/-/deglob-2.1.1.tgz#d268e168727799862e8eac07042e165957c1f3be" + dependencies: + find-root "^1.0.0" + glob "^7.0.5" + ignore "^3.0.9" + pkg-config "^1.1.0" + run-parallel "^1.1.2" + uniq "^1.0.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + +depd@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + +deprecation@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-1.0.1.tgz#2df79b79005752180816b7b6e079cbd80490d711" + +detect-file@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + dependencies: + repeating "^2.0.0" + +detect-indent@~5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" + +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + +detect-newline@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" + +dezalgo@^1.0.0, dezalgo@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" + dependencies: + asap "^2.0.0" + wrappy "1" + +diff@3.5.0, diff@^3.1.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + +dijkstrajs@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.1.tgz#d3cd81221e3ea40742cfcde556d4e99e98ddc71b" + +dir-glob@^2.0.0, dir-glob@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" + dependencies: + path-type "^3.0.0" + +doctrine@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctrine@^2.0.2, doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + dependencies: + esutils "^2.0.2" + +dot-prop@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" + dependencies: + is-obj "^1.0.0" + +dot-prop@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" + dependencies: + is-obj "^1.0.0" + +dotenv@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-5.0.1.tgz#a5317459bd3d79ab88cff6e44057a6a3fbb1fcef" + +drbg.js@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/drbg.js/-/drbg.js-1.0.1.tgz#3e36b6c42b37043823cdbc332d58f31e2445480b" + dependencies: + browserify-aes "^1.0.6" + create-hash "^1.1.2" + create-hmac "^1.1.4" + +duplexer2@~0.1.0: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" + dependencies: + readable-stream "^2.0.2" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +each-props@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/each-props/-/each-props-1.3.2.tgz#ea45a414d16dd5cfa419b1a81720d5ca06892333" + dependencies: + is-plain-object "^2.0.1" + object.defaults "^1.1.0" + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ecurve@^1.0.0, ecurve@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/ecurve/-/ecurve-1.0.6.tgz#dfdabbb7149f8d8b78816be5a7d5b83fcf6de797" + dependencies: + bigi "^1.1.0" + safe-buffer "^5.0.1" + +editor@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/editor/-/editor-1.0.0.tgz#60c7f87bd62bcc6a894fa8ccd6afb7823a24f742" + +electron-to-chromium@^1.3.47: + version "1.3.131" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.131.tgz#205a0b7a276b3f56bc056f19178909243054252a" + +elliptic@^6.2.3: + version "6.4.1" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + +encoding@^0.1.11: + version "0.1.12" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" + dependencies: + iconv-lite "~0.4.13" + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" + dependencies: + once "^1.4.0" + +engine.io-client@~3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.3.2.tgz#04e068798d75beda14375a264bb3d742d7bc33aa" + dependencies: + component-emitter "1.2.1" + component-inherit "0.0.3" + debug "~3.1.0" + engine.io-parser "~2.1.1" + has-cors "1.1.0" + indexof "0.0.1" + parseqs "0.0.5" + parseuri "0.0.5" + ws "~6.1.0" + xmlhttprequest-ssl "~1.5.4" + yeast "0.1.2" + +engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz#757ab970fbf2dfb32c7b74b033216d5739ef79a6" + dependencies: + after "0.8.2" + arraybuffer.slice "~0.0.7" + base64-arraybuffer "0.1.5" + blob "0.0.5" + has-binary2 "~1.0.2" + +engine.io@~3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.3.2.tgz#18cbc8b6f36e9461c5c0f81df2b830de16058a59" + dependencies: + accepts "~1.3.4" + base64id "1.0.0" + cookie "0.3.1" + debug "~3.1.0" + engine.io-parser "~2.1.0" + ws "~6.1.0" + +env-ci@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/env-ci/-/env-ci-3.2.0.tgz#982f02a0501ca8c43bf0765c5bd3d83ffb28b23a" + dependencies: + execa "^1.0.0" + java-properties "^0.2.9" + +err-code@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" + +errno@~0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.5.0, es-abstract@^1.7.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" + dependencies: + es-to-primitive "^1.2.0" + function-bind "^1.1.1" + has "^1.0.3" + is-callable "^1.1.4" + is-regex "^1.0.4" + object-keys "^1.0.12" + +es-to-primitive@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.50" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.50.tgz#6d0e23a0abdb27018e5ac4fd09b412bc5517a778" + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.1" + next-tick "^1.0.0" + +es6-error@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + +es6-iterator@^2.0.1, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-promise@^4.0.3: + version "4.2.6" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.6.tgz#b685edd8258886365ea62b57d30de28fadcd974f" + +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + dependencies: + es6-promise "^4.0.3" + +es6-symbol@^3.1.1, es6-symbol@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + dependencies: + d "1" + es5-ext "~0.10.14" + +es6-weak-map@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" + dependencies: + d "1" + es5-ext "^0.10.14" + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" + +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +eslint-config-prettier@^3.0.1: + version "3.6.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-3.6.0.tgz#8ca3ffac4bd6eeef623a0651f9d754900e3ec217" + dependencies: + get-stdin "^6.0.0" + +eslint-config-standard-jsx@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-5.0.0.tgz#4abfac554f38668e0078c664569e7b2384e5d2aa" + +eslint-config-standard@11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-11.0.0.tgz#87ee0d3c9d95382dc761958cbb23da9eea31e0ba" + +eslint-import-resolver-node@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" + dependencies: + debug "^2.6.9" + resolve "^1.5.0" + +eslint-module-utils@^2.1.1: + version "2.4.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz#8b93499e9b00eab80ccb6614e69f03678e84e09a" + dependencies: + debug "^2.6.8" + pkg-dir "^2.0.0" + +eslint-plugin-es@^1.3.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.0.tgz#475f65bb20c993fc10e8c8fe77d1d60068072da6" + dependencies: + eslint-utils "^1.3.0" + regexpp "^2.0.1" + +eslint-plugin-import@~2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz#26002efbfca5989b7288ac047508bd24f217b169" + dependencies: + builtin-modules "^1.1.1" + contains-path "^0.1.0" + debug "^2.6.8" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.1" + eslint-module-utils "^2.1.1" + has "^1.0.1" + lodash "^4.17.4" + minimatch "^3.0.3" + read-pkg-up "^2.0.0" + +eslint-plugin-node@7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-7.0.1.tgz#a6e054e50199b2edd85518b89b4e7b323c9f36db" + dependencies: + eslint-plugin-es "^1.3.1" + eslint-utils "^1.3.1" + ignore "^4.0.2" + minimatch "^3.0.4" + resolve "^1.8.1" + semver "^5.5.0" + +eslint-plugin-node@~6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz#bf19642298064379315d7a4b2a75937376fa05e4" + dependencies: + ignore "^3.3.6" + minimatch "^3.0.4" + resolve "^1.3.3" + semver "^5.4.1" + +eslint-plugin-prettier@^2.6.2: + version "2.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.7.0.tgz#b4312dcf2c1d965379d7f9d5b5f8aaadc6a45904" + dependencies: + fast-diff "^1.1.1" + jest-docblock "^21.0.0" + +eslint-plugin-promise@~3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-3.7.0.tgz#f4bde5c2c77cdd69557a8f69a24d1ad3cfc9e67e" + +eslint-plugin-react@~7.7.0: + version "7.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz#f606c719dbd8a1a2b3d25c16299813878cca0160" + dependencies: + doctrine "^2.0.2" + has "^1.0.1" + jsx-ast-utils "^2.0.1" + prop-types "^15.6.0" + +eslint-plugin-standard@~3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz#34d0c915b45edc6f010393c7eef3823b08565cf2" + +eslint-scope@^3.7.1: + version "3.7.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535" + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^1.3.0, eslint-utils@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512" + +eslint-visitor-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" + +eslint@^5.5.0: + version "5.16.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.9.1" + chalk "^2.1.0" + cross-spawn "^6.0.5" + debug "^4.0.1" + doctrine "^3.0.0" + eslint-scope "^4.0.3" + eslint-utils "^1.3.1" + eslint-visitor-keys "^1.0.0" + espree "^5.0.1" + esquery "^1.0.1" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob "^7.1.2" + globals "^11.7.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + inquirer "^6.2.2" + js-yaml "^3.13.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.11" + minimatch "^3.0.4" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.2" + progress "^2.0.0" + regexpp "^2.0.1" + semver "^5.5.1" + strip-ansi "^4.0.0" + strip-json-comments "^2.0.1" + table "^5.2.3" + text-table "^0.2.0" + +eslint@~4.18.0: + version "4.18.2" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.18.2.tgz#0f81267ad1012e7d2051e186a9004cc2267b8d45" + dependencies: + ajv "^5.3.0" + babel-code-frame "^6.22.0" + chalk "^2.1.0" + concat-stream "^1.6.0" + cross-spawn "^5.1.0" + debug "^3.1.0" + doctrine "^2.1.0" + eslint-scope "^3.7.1" + eslint-visitor-keys "^1.0.0" + espree "^3.5.2" + esquery "^1.0.0" + esutils "^2.0.2" + file-entry-cache "^2.0.0" + functional-red-black-tree "^1.0.1" + glob "^7.1.2" + globals "^11.0.1" + ignore "^3.3.3" + imurmurhash "^0.1.4" + inquirer "^3.0.6" + is-resolvable "^1.0.0" + js-yaml "^3.9.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.4" + minimatch "^3.0.2" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.2" + pluralize "^7.0.0" + progress "^2.0.0" + require-uncached "^1.0.3" + semver "^5.3.0" + strip-ansi "^4.0.0" + strip-json-comments "~2.0.1" + table "4.0.2" + text-table "~0.2.0" + +espree@^3.5.2: + version "3.5.4" + resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" + dependencies: + acorn "^5.5.0" + acorn-jsx "^3.0.0" + +espree@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" + dependencies: + acorn "^6.0.7" + acorn-jsx "^5.0.0" + eslint-visitor-keys "^1.0.0" + +esprima@^4.0.0, esprima@~4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + +esquery@^1.0.0, esquery@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" + dependencies: + estraverse "^4.0.0" + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + dependencies: + estraverse "^4.1.0" + +estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + +esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + dependencies: + 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" + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.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" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + +expand-tilde@^2.0.0, expand-tilde@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + dependencies: + homedir-polyfill "^1.0.1" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@^3.0.0, extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + +external-editor@^2.0.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" + dependencies: + chardet "^0.4.0" + iconv-lite "^0.4.17" + tmp "^0.0.33" + +external-editor@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + +fancy-log@^1.3.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7" + dependencies: + ansi-gray "^0.1.1" + color-support "^1.1.3" + parse-node-version "^1.0.0" + time-stamp "^1.0.0" + +fast-deep-equal@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" + +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + +fast-diff@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" + +fast-glob@^2.2.6: + version "2.2.6" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.6.tgz#a5d5b697ec8deda468d85a74035290a025a95295" + dependencies: + "@mrmlnc/readdir-enhanced" "^2.2.1" + "@nodelib/fs.stat" "^1.1.2" + glob-parent "^3.1.0" + is-glob "^4.0.0" + merge2 "^1.2.3" + micromatch "^3.1.10" + +fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + +figgy-pudding@^3.0.0, figgy-pudding@^3.1.0, figgy-pudding@^3.4.1, figgy-pudding@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" + +figlet@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/figlet/-/figlet-1.2.1.tgz#48d35df9d9b10b1b3888302e6e57904a0b00509c" + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + dependencies: + flat-cache "^2.0.1" + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + +fill-range@^2.1.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^3.0.0" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-npm-prefix@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/find-npm-prefix/-/find-npm-prefix-1.0.2.tgz#8d8ce2c78b3b4b9e66c8acc6a37c231eb841cfdf" + +find-root@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + dependencies: + locate-path "^2.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + dependencies: + locate-path "^3.0.0" + +find-versions@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.1.0.tgz#10161f29cf3eb4350dec10a29bdde75bff0df32d" + dependencies: + array-uniq "^2.1.0" + semver-regex "^2.0.0" + +findup-sync@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" + dependencies: + detect-file "^1.0.0" + is-glob "^3.1.0" + micromatch "^3.0.4" + resolve-dir "^1.0.1" + +findup-sync@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" + dependencies: + detect-file "^1.0.0" + is-glob "^4.0.0" + micromatch "^3.0.4" + resolve-dir "^1.0.1" + +fined@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fined/-/fined-1.2.0.tgz#d00beccf1aa2b475d16d423b0238b713a2c4a37b" + dependencies: + expand-tilde "^2.0.2" + is-plain-object "^2.0.3" + object.defaults "^1.1.0" + object.pick "^1.2.0" + parse-filepath "^1.0.1" + +flagged-respawn@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.1.tgz#e7de6f1279ddd9ca9aac8a5971d618606b3aab41" + +flat-cache@^1.2.1: + version "1.3.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f" + dependencies: + circular-json "^0.3.1" + graceful-fs "^4.1.2" + rimraf "~2.6.2" + write "^0.2.1" + +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flatted@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.0.tgz#55122b6536ea496b4b44893ee2608141d10d9916" + +flush-write-stream@^1.0.0, flush-write-stream@^1.0.2: + version "1.1.1" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +follow-redirects@^1.2.5: + version "1.7.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.7.0.tgz#489ebc198dc0e7f64167bd23b03c4c19b5784c76" + dependencies: + debug "^3.2.6" + +for-each@~0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + dependencies: + is-callable "^1.1.3" + +for-in@^1.0.1, for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + dependencies: + for-in "^1.0.1" + +for-own@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" + dependencies: + for-in "^1.0.1" + +foreground-child@^1.5.6: + version "1.5.6" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9" + dependencies: + cross-spawn "^4" + signal-exit "^3.0.0" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + dependencies: + map-cache "^0.2.2" + +fresh@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + +from2@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-1.3.0.tgz#88413baaa5f9a597cfde9221d86986cd3c061dfd" + dependencies: + inherits "~2.0.1" + readable-stream "~1.1.10" + +from2@^2.1.0, from2@^2.1.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-extra@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-minipass@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" + dependencies: + minipass "^2.2.1" + +fs-mkdirp-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb" + dependencies: + graceful-fs "^4.1.11" + through2 "^2.0.3" + +fs-readdir-recursive@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" + +fs-vacuum@^1.2.10, fs-vacuum@~1.2.10: + version "1.2.10" + resolved "https://registry.yarnpkg.com/fs-vacuum/-/fs-vacuum-1.2.10.tgz#b7629bec07a4031a2548fdf99f5ecf1cc8b31e36" + dependencies: + graceful-fs "^4.1.2" + path-is-inside "^1.0.1" + rimraf "^2.5.2" + +fs-write-stream-atomic@^1.0.8, fs-write-stream-atomic@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fsevents@^1.0.0, fsevents@^1.2.7: + version "1.2.9" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" + dependencies: + nan "^2.12.1" + node-pre-gyp "^0.12.0" + +fstream@^1.0.0, fstream@^1.0.2: + version "1.0.11" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +function-bind@^1.0.2, function-bind@^1.1.1, function-bind@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + dependencies: + 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" + +genfun@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/genfun/-/genfun-5.0.0.tgz#9dd9710a06900a5c4a5bf57aca5da4e52fe76537" + +gentle-fs@^2.0.0, gentle-fs@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/gentle-fs/-/gentle-fs-2.0.1.tgz#585cfd612bfc5cd52471fdb42537f016a5ce3687" + dependencies: + aproba "^1.1.2" + fs-vacuum "^1.2.10" + graceful-fs "^4.1.11" + iferr "^0.1.5" + mkdirp "^0.5.1" + path-is-inside "^1.0.2" + read-cmd-shim "^1.0.1" + slide "^1.1.6" + +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + +get-stdin@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + dependencies: + assert-plus "^1.0.0" + +git-clone@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/git-clone/-/git-clone-0.1.0.tgz#0d76163778093aef7f1c30238f2a9ef3f07a2eb9" + +git-log-parser@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/git-log-parser/-/git-log-parser-1.2.0.tgz#2e6a4c1b13fc00028207ba795a7ac31667b9fd4a" + dependencies: + argv-formatter "~1.0.0" + spawn-error-forwarder "~1.0.0" + split2 "~1.0.0" + stream-combiner2 "~1.1.1" + through2 "~2.0.0" + traverse "~0.6.6" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-stream@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4" + dependencies: + extend "^3.0.0" + glob "^7.1.1" + glob-parent "^3.1.0" + is-negated-glob "^1.0.0" + ordered-read-streams "^1.0.0" + pumpify "^1.3.5" + readable-stream "^2.1.5" + remove-trailing-separator "^1.0.1" + to-absolute-glob "^2.0.0" + unique-stream "^2.0.2" + +glob-to-regexp@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" + +glob-watcher@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-5.0.3.tgz#88a8abf1c4d131eb93928994bc4a593c2e5dd626" + dependencies: + anymatch "^2.0.0" + async-done "^1.2.0" + chokidar "^2.0.0" + is-negated-glob "^1.0.0" + just-debounce "^1.0.0" + object.defaults "^1.1.0" + +glob@7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@~7.1.3: + version "7.1.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-dirs@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" + dependencies: + ini "^1.3.4" + +global-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + dependencies: + global-prefix "^1.0.1" + is-windows "^1.0.1" + resolve-dir "^1.0.0" + +global-prefix@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + dependencies: + expand-tilde "^2.0.2" + homedir-polyfill "^1.0.1" + ini "^1.3.4" + is-windows "^1.0.1" + which "^1.2.14" + +globals@^11.0.1, globals@^11.1.0, globals@^11.7.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + +globby@^9.0.0: + version "9.2.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" + dependencies: + "@types/glob" "^7.1.1" + array-union "^1.0.2" + dir-glob "^2.2.2" + fast-glob "^2.2.6" + glob "^7.1.3" + ignore "^4.0.3" + pify "^4.0.1" + slash "^2.0.0" + +glogg@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.2.tgz#2d7dd702beda22eb3bffadf880696da6d846313f" + dependencies: + sparkles "^1.0.0" + +got@^6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" + dependencies: + create-error-class "^3.0.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + unzip-response "^2.0.1" + url-parse-lax "^1.0.0" + +graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6: + version "4.1.15" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" + +growl@1.10.5, "growl@~> 1.10.0": + version "1.10.5" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + +gulp-cli@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-2.2.0.tgz#5533126eeb7fe415a7e3e84a297d334d5cf70ebc" + dependencies: + ansi-colors "^1.0.1" + archy "^1.0.0" + array-sort "^1.0.0" + color-support "^1.1.3" + concat-stream "^1.6.0" + copy-props "^2.0.1" + fancy-log "^1.3.2" + gulplog "^1.0.0" + interpret "^1.1.0" + isobject "^3.0.1" + liftoff "^3.1.0" + matchdep "^2.0.0" + mute-stdout "^1.0.0" + pretty-hrtime "^1.0.0" + replace-homedir "^1.0.0" + semver-greatest-satisfied-range "^1.1.0" + v8flags "^3.0.1" + yargs "^7.1.0" + +gulp@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/gulp/-/gulp-4.0.2.tgz#543651070fd0f6ab0a0650c6a3e6ff5a7cb09caa" + dependencies: + glob-watcher "^5.0.3" + gulp-cli "^2.2.0" + undertaker "^1.2.1" + vinyl-fs "^3.0.0" + +gulplog@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" + dependencies: + glogg "^1.0.0" + +handlebars@^4.1.0, handlebars@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67" + dependencies: + neo-async "^2.6.0" + optimist "^0.6.1" + source-map "^0.6.1" + optionalDependencies: + uglify-js "^3.1.4" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + +har-validator@~5.1.0: + version "5.1.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + dependencies: + ajv "^6.5.5" + har-schema "^2.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +has-binary2@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" + dependencies: + isarray "2.0.1" + +has-cors@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + +has-flag@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + +has-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + +has-unicode@^2.0.0, has-unicode@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.1, has@^1.0.3, has@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +hasha@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/hasha/-/hasha-3.0.0.tgz#52a32fab8569d41ca69a61ff1a214f8eb7c8bd39" + dependencies: + is-stream "^1.0.1" + +he@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +homedir-polyfill@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + dependencies: + parse-passwd "^1.0.0" + +hook-std@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/hook-std/-/hook-std-1.2.0.tgz#b37d533ea5f40068fe368cb4d022ee1992588c27" + +hosted-git-info@^2.1.4, hosted-git-info@^2.6.0, hosted-git-info@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" + +http-cache-semantics@^3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" + +http-proxy-agent@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" + dependencies: + agent-base "4" + debug "3.1.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-proxy-agent@^2.2.0, https-proxy-agent@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0" + dependencies: + agent-base "^4.1.0" + debug "^3.1.0" + +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + dependencies: + ms "^2.0.0" + +iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ieee754@^1.1.4: + version "1.1.13" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + +iferr@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-1.0.2.tgz#e9fde49a9da06dc4a4194c6c9ed6d08305037a6d" + +ignore-walk@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" + dependencies: + minimatch "^3.0.4" + +ignore@^3.0.9, ignore@^3.3.3, ignore@^3.3.6: + version "3.3.10" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" + +ignore@^4.0.2, ignore@^4.0.3, ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390" + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-from@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" + dependencies: + resolve-from "^3.0.0" + +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + +imurmurhash@*, imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + +indent-string@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + +inflight@^1.0.4, inflight@~1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + +init-package-json@^1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-1.10.3.tgz#45ffe2f610a8ca134f2bd1db5637b235070f6cbe" + dependencies: + glob "^7.1.1" + npm-package-arg "^4.0.0 || ^5.0.0 || ^6.0.0" + promzard "^0.3.0" + read "~1.0.1" + read-package-json "1 || 2" + semver "2.x || 3.x || 4 || 5" + validate-npm-package-license "^3.0.1" + validate-npm-package-name "^3.0.0" + +inquirer@^3.0.6: + version "3.3.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^2.0.4" + figures "^2.0.0" + lodash "^4.3.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rx-lite "^4.0.8" + rx-lite-aggregates "^4.0.8" + string-width "^2.1.0" + strip-ansi "^4.0.0" + through "^2.3.6" + +inquirer@^6.2.2: + version "6.3.1" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.3.1.tgz#7a413b5e7950811013a3db491c61d1f3b776e8e7" + dependencies: + ansi-escapes "^3.2.0" + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^2.0.0" + lodash "^4.17.11" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^2.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + +interpret@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" + +into-stream@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-4.0.0.tgz#ef10ee2ffb6f78af34c93194bbdc36c35f7d8a9d" + dependencies: + from2 "^2.1.1" + p-is-promise "^2.0.0" + +invariant@^2.2.2: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + +invert-kv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + +ip@^1.1.4, ip@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + +is-absolute@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" + dependencies: + is-relative "^1.0.0" + is-windows "^1.0.1" + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + dependencies: + kind-of "^6.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + +is-builtin-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + dependencies: + builtin-modules "^1.0.0" + +is-callable@^1.1.3, is-callable@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" + +is-ci@^1.0.10: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" + dependencies: + ci-info "^1.5.0" + +is-cidr@^2.0.6: + version "2.0.7" + resolved "https://registry.yarnpkg.com/is-cidr/-/is-cidr-2.0.7.tgz#0fd4b863c26b2eb2d157ed21060c4f3f8dd356ce" + dependencies: + cidr-regex "^2.0.10" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + dependencies: + is-extglob "^2.1.1" + +is-installed-globally@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" + dependencies: + global-dirs "^0.1.0" + is-path-inside "^1.0.0" + +is-negated-glob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" + +is-npm@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" + +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + dependencies: + kind-of "^3.0.2" + +is-number@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + +is-path-inside@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" + dependencies: + path-is-inside "^1.0.1" + +is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + dependencies: + isobject "^3.0.1" + +is-plain-object@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-3.0.0.tgz#47bfc5da1b5d50d64110806c199359482e75a928" + dependencies: + isobject "^4.0.0" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + +is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + +is-redirect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + dependencies: + has "^1.0.1" + +is-relative@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" + dependencies: + is-unc-path "^1.0.0" + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + +is-retry-allowed@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" + +is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + +is-subset@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" + +is-symbol@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" + dependencies: + has-symbols "^1.0.0" + +is-text-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" + dependencies: + text-extensions "^1.0.0" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + +is-unc-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" + dependencies: + unc-path-regex "^0.1.2" + +is-utf8@^0.2.0, is-utf8@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + +is-valid-glob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" + +is-windows@^1.0.1, is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isarray@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" + +isarray@^2.0.1: + version "2.0.4" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.4.tgz#38e7bcbb0f3ba1b7933c86ba1894ddfc3781bbb7" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + +isobject@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +issue-parser@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/issue-parser/-/issue-parser-3.0.1.tgz#ee8dd677fdb5be64541f81fa5e7267baa271a7ee" + dependencies: + lodash.capitalize "^4.2.1" + lodash.escaperegexp "^4.1.2" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.uniqby "^4.7.0" + +istanbul-lib-coverage@^2.0.3, istanbul-lib-coverage@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49" + +istanbul-lib-hook@^2.0.3, istanbul-lib-hook@^2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz#c95695f383d4f8f60df1f04252a9550e15b5b133" + dependencies: + append-transform "^1.0.0" + +istanbul-lib-instrument@^3.1.0, istanbul-lib-instrument@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630" + dependencies: + "@babel/generator" "^7.4.0" + "@babel/parser" "^7.4.3" + "@babel/template" "^7.4.0" + "@babel/traverse" "^7.4.3" + "@babel/types" "^7.4.0" + istanbul-lib-coverage "^2.0.5" + semver "^6.0.0" + +istanbul-lib-report@^2.0.4, istanbul-lib-report@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz#5a8113cd746d43c4889eba36ab10e7d50c9b4f33" + dependencies: + istanbul-lib-coverage "^2.0.5" + make-dir "^2.1.0" + supports-color "^6.1.0" + +istanbul-lib-source-maps@^3.0.2, istanbul-lib-source-maps@^3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8" + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^2.0.5" + make-dir "^2.1.0" + rimraf "^2.6.3" + source-map "^0.6.1" + +istanbul-reports@^2.1.1, istanbul-reports@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.4.tgz#4e0d0ddf0f0ad5b49a314069d31b4f06afe49ad3" + dependencies: + handlebars "^4.1.2" + +java-properties@^0.2.9: + version "0.2.10" + resolved "https://registry.yarnpkg.com/java-properties/-/java-properties-0.2.10.tgz#2551560c25fa1ad94d998218178f233ad9b18f60" + +jest-docblock@^21.0.0: + version "21.2.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-21.2.0.tgz#51529c3b30d5fd159da60c27ceedc195faf8d414" + +js-sha256@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/js-sha256/-/js-sha256-0.9.0.tgz#0b89ac166583e91ef9123644bd3c5334ce9d0966" + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + +js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + +js-yaml@^3.11.0, js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.9.1: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + +json-parse-better-errors@^1.0.0, json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +jsx-ast-utils@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.1.0.tgz#0ee4e2c971fb9601c67b5641b71be80faecf0b36" + dependencies: + array-includes "^3.0.3" + +just-debounce@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/just-debounce/-/just-debounce-1.0.0.tgz#87fccfaeffc0b68cd19d55f6722943f929ea35ea" + +just-extend@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.0.2.tgz#f3f47f7dfca0f989c55410a7ebc8854b07108afc" + +keccak@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-1.4.0.tgz#572f8a6dbee8e7b3aa421550f9e6408ca2186f80" + dependencies: + bindings "^1.2.1" + inherits "^2.0.3" + nan "^2.2.1" + safe-buffer "^5.1.0" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0, kind-of@^5.0.2: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + +last-run@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/last-run/-/last-run-1.1.1.tgz#45b96942c17b1c79c772198259ba943bebf8ca5b" + dependencies: + default-resolution "^2.0.0" + es6-weak-map "^2.0.1" + +latest-version@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" + dependencies: + package-json "^4.0.0" + +lazy-property@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lazy-property/-/lazy-property-1.0.0.tgz#84ddc4b370679ba8bd4cdcfa4c06b43d57111147" + +lazystream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" + dependencies: + readable-stream "^2.0.5" + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + dependencies: + invert-kv "^1.0.0" + +lcid@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + dependencies: + invert-kv "^2.0.0" + +lcov-parse@^0.0.10: + version "0.0.10" + resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-0.0.10.tgz#1b0b8ff9ac9c7889250582b70b71315d9da6d9a3" + +lead@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lead/-/lead-1.0.0.tgz#6f14f99a37be3a9dd784f5495690e5903466ee42" + dependencies: + flush-write-stream "^1.0.2" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +libcipm@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/libcipm/-/libcipm-2.0.2.tgz#4f38c2b37acf2ec156936cef1cbf74636568fc7b" + dependencies: + bin-links "^1.1.2" + bluebird "^3.5.1" + find-npm-prefix "^1.0.2" + graceful-fs "^4.1.11" + lock-verify "^2.0.2" + mkdirp "^0.5.1" + npm-lifecycle "^2.0.3" + npm-logical-tree "^1.2.1" + npm-package-arg "^6.1.0" + pacote "^8.1.6" + protoduck "^5.0.0" + read-package-json "^2.0.13" + rimraf "^2.6.2" + worker-farm "^1.6.0" + +libnpmhook@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-4.0.1.tgz#63641654de772cbeb96a88527a7fd5456ec3c2d7" + dependencies: + figgy-pudding "^3.1.0" + npm-registry-fetch "^3.0.0" + +libnpx@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/libnpx/-/libnpx-10.2.0.tgz#1bf4a1c9f36081f64935eb014041da10855e3102" + dependencies: + dotenv "^5.0.1" + npm-package-arg "^6.0.0" + rimraf "^2.6.2" + safe-buffer "^5.1.0" + update-notifier "^2.3.0" + which "^1.3.0" + y18n "^4.0.0" + yargs "^11.0.0" + +liftoff@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-3.1.0.tgz#c9ba6081f908670607ee79062d700df062c52ed3" + dependencies: + extend "^3.0.0" + findup-sync "^3.0.0" + fined "^1.0.1" + flagged-respawn "^1.0.0" + is-plain-object "^2.0.4" + object.map "^1.0.0" + rechoir "^0.6.2" + resolve "^1.1.7" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +lock-verify@^2.0.2: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lock-verify/-/lock-verify-2.1.0.tgz#fff4c918b8db9497af0c5fa7f6d71555de3ceb47" + dependencies: + npm-package-arg "^6.1.0" + semver "^5.4.1" + +lockfile@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.4.tgz#07f819d25ae48f87e538e6578b6964a4981a5609" + dependencies: + signal-exit "^3.0.2" + +lodash._baseindexof@*: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c" + +lodash._baseuniq@~4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8" + dependencies: + lodash._createset "~4.0.0" + lodash._root "~3.0.0" + +lodash._bindcallback@*: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" + +lodash._cacheindexof@*: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92" + +lodash._createcache@*: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093" + dependencies: + lodash._getnative "^3.0.0" + +lodash._createset@~4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" + +lodash._getnative@*, lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + +lodash._root@~3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" + +lodash.capitalize@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz#f826c9b4e2a8511d84e3aca29db05e1a4f3b72a9" + +lodash.clonedeep@~4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + +lodash.escaperegexp@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347" + +lodash.flattendeep@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + +lodash.restparam@*: + version "3.6.1" + resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" + +lodash.set@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" + +lodash.toarray@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" + +lodash.union@~4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" + +lodash.uniq@^4.5.0, lodash.uniq@~4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + +lodash.uniqby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302" + +lodash.without@~4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" + +lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0: + version "4.17.11" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" + +log-driver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.7.tgz#63b95021f0702fedfa2c9bb0a24e7797d71871d8" + +lolex@^2.2.0, lolex@^2.3.2: + version "2.7.5" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.7.5.tgz#113001d56bfc7e02d56e36291cc5c413d1aa0733" + +loose-envify@^1.0.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lowercase-keys@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + +lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@^4.1.2, lru-cache@^4.1.3: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + dependencies: + yallist "^3.0.2" + +macos-release@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.2.0.tgz#ab58d55dd4714f0a05ad4b0e90f4370fef5cdea8" + +make-dir@^1.0.0, make-dir@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + dependencies: + pify "^3.0.0" + +make-dir@^2.0.0, make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +"make-fetch-happen@^2.5.0 || 3 || 4", make-fetch-happen@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz#141497cb878f243ba93136c83d8aba12c216c083" + dependencies: + agentkeepalive "^3.4.1" + cacache "^11.0.1" + http-cache-semantics "^3.8.1" + http-proxy-agent "^2.1.0" + https-proxy-agent "^2.2.1" + lru-cache "^4.1.2" + mississippi "^3.0.0" + node-fetch-npm "^2.0.2" + promise-retry "^1.1.1" + socks-proxy-agent "^4.0.0" + ssri "^6.0.0" + +make-fetch-happen@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-3.0.0.tgz#7b661d2372fc4710ab5cc8e1fa3c290eea69a961" + dependencies: + agentkeepalive "^3.4.1" + cacache "^10.0.4" + http-cache-semantics "^3.8.1" + http-proxy-agent "^2.1.0" + https-proxy-agent "^2.2.0" + lru-cache "^4.1.2" + mississippi "^3.0.0" + node-fetch-npm "^2.0.2" + promise-retry "^1.1.1" + socks-proxy-agent "^3.0.1" + ssri "^5.2.4" + +make-iterator@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.1.tgz#29b33f312aa8f547c4a5e490f56afcec99133ad6" + dependencies: + kind-of "^6.0.2" + +map-age-cleaner@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + dependencies: + p-defer "^1.0.0" + +map-cache@^0.2.0, map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + +map-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + +map-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + dependencies: + object-visit "^1.0.0" + +marked-terminal@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/marked-terminal/-/marked-terminal-3.2.0.tgz#3fc91d54569332bcf096292af178d82219000474" + dependencies: + ansi-escapes "^3.1.0" + cardinal "^2.1.1" + chalk "^2.4.1" + cli-table "^0.3.1" + node-emoji "^1.4.1" + supports-hyperlinks "^1.0.1" + +marked@^0.6.0: + version "0.6.2" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.6.2.tgz#c574be8b545a8b48641456ca1dbe0e37b6dccc1a" + +matchdep@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/matchdep/-/matchdep-2.0.0.tgz#c6f34834a0d8dbc3b37c27ee8bbcb27c7775582e" + dependencies: + findup-sync "^2.0.0" + micromatch "^3.0.4" + resolve "^1.4.0" + stack-trace "0.0.10" + +math-random@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +meant@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/meant/-/meant-1.0.1.tgz#66044fea2f23230ec806fb515efea29c44d2115d" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + +mem@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + dependencies: + mimic-fn "^1.0.0" + +mem@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^2.0.0" + p-is-promise "^2.0.0" + +meow@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-4.0.1.tgz#d48598f6f4b1472f35bf6317a95945ace347f975" + dependencies: + camelcase-keys "^4.0.0" + decamelize-keys "^1.0.0" + loud-rejection "^1.0.0" + minimist "^1.1.3" + minimist-options "^3.0.1" + normalize-package-data "^2.3.4" + read-pkg-up "^3.0.0" + redent "^2.0.0" + trim-newlines "^2.0.0" + +merge-descriptors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + +merge-source-map@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" + dependencies: + source-map "^0.6.1" + +merge2@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.3.tgz#7ee99dbd69bb6481689253f018488a1b902b0ed5" + +merkle-lib@^2.0.10: + version "2.0.10" + resolved "https://registry.yarnpkg.com/merkle-lib/-/merkle-lib-2.0.10.tgz#82b8dbae75e27a7785388b73f9d7725d0f6f3326" + +methods@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + +micromatch@^2.1.5: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + 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" + +micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +mime-db@1.40.0: + version "1.40.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" + +mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.24" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" + dependencies: + mime-db "1.40.0" + +mime@^1.3.4: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + +mime@^2.0.3: + version "2.4.2" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.2.tgz#ce5229a5e99ffc313abac806b482c10e7ba6ac78" + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + +mimic-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + +minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist-options@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0, minimist@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + +minipass@^2.2.1, minipass@^2.3.3, minipass@^2.3.4: + version "2.3.5" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" + dependencies: + minipass "^2.2.1" + +mississippi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f" + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^2.0.1" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +mocha@^5.0.1: + version "5.2.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz#6d8ae508f59167f940f2b5b3c4a612ae50c90ae6" + dependencies: + browser-stdout "1.3.1" + commander "2.15.1" + debug "3.1.0" + diff "3.5.0" + escape-string-regexp "1.0.5" + glob "7.1.2" + growl "1.10.5" + he "1.1.1" + minimatch "3.0.4" + mkdirp "0.5.1" + supports-color "5.4.0" + +modify-values@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + +ms@^2.0.0, ms@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + +mute-stdout@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mute-stdout/-/mute-stdout-1.0.1.tgz#acb0300eb4de23a7ddeec014e3e96044b3472331" + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + +mute-stream@~0.0.4: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + +nan@^2.12.1, nan@^2.2.1: + version "2.13.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.13.2.tgz#f51dc7ae66ba7d5d55e1e6d4d8092e802c9aefe7" + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + +needle@^2.2.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.3.1.tgz#d272f2f4034afb9c4c9ab1379aabc17fc85c9388" + dependencies: + debug "^4.1.0" + iconv-lite "^0.4.4" + sax "^1.2.4" + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + +neo-async@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835" + +nerf-dart@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/nerf-dart/-/nerf-dart-1.0.0.tgz#e6dab7febf5ad816ea81cf5c629c5a0ebde72c1a" + +nested-error-stacks@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz#0fbdcf3e13fe4994781280524f8b96b0cdff9c61" + +next-tick@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + +nise@^1.2.0: + version "1.4.10" + resolved "https://registry.yarnpkg.com/nise/-/nise-1.4.10.tgz#ae46a09a26436fae91a38a60919356ae6db143b6" + dependencies: + "@sinonjs/formatio" "^3.1.0" + "@sinonjs/text-encoding" "^0.7.1" + just-extend "^4.0.2" + lolex "^2.3.2" + path-to-regexp "^1.7.0" + +nock@^10.0.6: + version "10.0.6" + resolved "https://registry.yarnpkg.com/nock/-/nock-10.0.6.tgz#e6d90ee7a68b8cfc2ab7f6127e7d99aa7d13d111" + dependencies: + chai "^4.1.2" + debug "^4.1.0" + deep-equal "^1.0.0" + json-stringify-safe "^5.0.1" + lodash "^4.17.5" + mkdirp "^0.5.0" + propagate "^1.0.0" + qs "^6.5.1" + semver "^5.5.0" + +node-cmd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/node-cmd/-/node-cmd-3.0.0.tgz#38fff70a4aaa4f659d203eb57862737018e24f6f" + +node-emoji@^1.4.1, node-emoji@^1.8.1: + version "1.10.0" + resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da" + dependencies: + lodash.toarray "^4.4.0" + +node-fetch-npm@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz#7258c9046182dca345b4208eda918daf33697ff7" + dependencies: + encoding "^0.1.11" + json-parse-better-errors "^1.0.0" + safe-buffer "^5.1.1" + +node-fetch@^2.3.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.5.0.tgz#8028c49fc1191bba56a07adc6e2a954644a48501" + +node-gyp@^3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" + dependencies: + fstream "^1.0.0" + glob "^7.0.3" + graceful-fs "^4.1.2" + mkdirp "^0.5.0" + nopt "2 || 3" + npmlog "0 || 1 || 2 || 3 || 4" + osenv "0" + request "^2.87.0" + rimraf "2" + semver "~5.3.0" + tar "^2.0.0" + which "1" + +node-mocks-http@^1.7.0: + version "1.7.5" + resolved "https://registry.yarnpkg.com/node-mocks-http/-/node-mocks-http-1.7.5.tgz#ff1cc6ba8570f7def27d131403edcf86940829b6" + dependencies: + accepts "^1.3.5" + depd "^1.1.0" + fresh "^0.5.2" + merge-descriptors "^1.0.1" + methods "^1.1.2" + mime "^1.3.4" + parseurl "^1.3.1" + range-parser "^1.2.0" + type-is "^1.6.16" + +node-pre-gyp@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + +"nopt@2 || 3": + version "3.0.6" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + dependencies: + abbrev "1" + +nopt@^4.0.1, nopt@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + dependencies: + abbrev "1" + osenv "^0.1.4" + +nopt@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + dependencies: + abbrev "1" + +normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.4.0, "normalize-package-data@~1.0.1 || ^2.0.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-package-data@~2.4.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.2.tgz#6b2abd85774e51f7936f1395e45acb905dc849b2" + dependencies: + 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@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + +normalize-url@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.3.0.tgz#9c49e10fc1876aeb76dba88bf1b2b5d9fa57b2ee" + +now-and-later@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/now-and-later/-/now-and-later-2.0.1.tgz#8e579c8685764a7cc02cb680380e94f43ccb1f7c" + dependencies: + once "^1.3.2" + +npm-audit-report@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-1.3.2.tgz#303bc78cd9e4c226415076a4f7e528c89fc77018" + dependencies: + cli-table3 "^0.5.0" + console-control-strings "^1.1.0" + +npm-bundled@^1.0.1: + version "1.0.6" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" + +npm-cache-filename@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/npm-cache-filename/-/npm-cache-filename-1.0.2.tgz#ded306c5b0bfc870a9e9faf823bc5f283e05ae11" + +npm-install-checks@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-3.0.0.tgz#d4aecdfd51a53e3723b7b2f93b2ee28e307bc0d7" + dependencies: + semver "^2.3.0 || 3.x || 4 || 5" + +npm-lifecycle@^2.0.3, npm-lifecycle@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-2.1.0.tgz#1eda2eedb82db929e3a0c50341ab0aad140ed569" + dependencies: + byline "^5.0.0" + graceful-fs "^4.1.11" + node-gyp "^3.8.0" + resolve-from "^4.0.0" + slide "^1.1.6" + uid-number "0.0.6" + umask "^1.1.0" + which "^1.3.1" + +npm-logical-tree@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/npm-logical-tree/-/npm-logical-tree-1.2.1.tgz#44610141ca24664cad35d1e607176193fd8f5b88" + +"npm-package-arg@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0", "npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0", npm-package-arg@^6.0.0, npm-package-arg@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.0.tgz#15ae1e2758a5027efb4c250554b85a737db7fcc1" + dependencies: + hosted-git-info "^2.6.0" + osenv "^0.1.5" + semver "^5.5.0" + validate-npm-package-name "^3.0.0" + +npm-packlist@^1.1.10, npm-packlist@^1.1.12, npm-packlist@^1.1.6: + version "1.4.1" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.1.tgz#19064cdf988da80ea3cee45533879d90192bbfbc" + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + +npm-pick-manifest@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-2.2.3.tgz#32111d2a9562638bb2c8f2bf27f7f3092c8fae40" + dependencies: + figgy-pudding "^3.5.1" + npm-package-arg "^6.0.0" + semver "^5.4.1" + +npm-profile@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-3.0.2.tgz#58d568f1b56ef769602fd0aed8c43fa0e0de0f57" + dependencies: + aproba "^1.1.2 || 2" + make-fetch-happen "^2.5.0 || 3 || 4" + +npm-registry-client@^8.6.0: + version "8.6.0" + resolved "https://registry.yarnpkg.com/npm-registry-client/-/npm-registry-client-8.6.0.tgz#7f1529f91450732e89f8518e0f21459deea3e4c4" + dependencies: + concat-stream "^1.5.2" + graceful-fs "^4.1.6" + normalize-package-data "~1.0.1 || ^2.0.0" + npm-package-arg "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" + once "^1.3.3" + request "^2.74.0" + retry "^0.10.0" + safe-buffer "^5.1.1" + semver "2 >=2.2.1 || 3.x || 4 || 5" + slide "^1.1.3" + ssri "^5.2.4" + optionalDependencies: + npmlog "2 || ^3.1.0 || ^4.0.0" + +npm-registry-fetch@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-1.1.1.tgz#710bc5947d9ee2c549375072dab6d5d17baf2eb2" + dependencies: + bluebird "^3.5.1" + figgy-pudding "^3.0.0" + lru-cache "^4.1.2" + make-fetch-happen "^3.0.0" + npm-package-arg "^6.0.0" + safe-buffer "^5.1.1" + +npm-registry-fetch@^3.0.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-3.9.0.tgz#44d841780e2833f06accb34488f8c7450d1a6856" + dependencies: + JSONStream "^1.3.4" + bluebird "^3.5.1" + figgy-pudding "^3.4.1" + lru-cache "^4.1.3" + make-fetch-happen "^4.0.1" + npm-package-arg "^6.1.0" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + dependencies: + path-key "^2.0.0" + +npm-user-validate@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-1.0.0.tgz#8ceca0f5cea04d4e93519ef72d0557a75122e951" + +npm@6.5.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/npm/-/npm-6.5.0.tgz#30ed48d4cd4d17d68ee04a5fcf9fa2ca9167d819" + dependencies: + JSONStream "^1.3.4" + abbrev "~1.1.1" + ansicolors "~0.3.2" + ansistyles "~0.1.3" + aproba "~1.2.0" + archy "~1.0.0" + bin-links "^1.1.2" + bluebird "^3.5.3" + byte-size "^4.0.3" + cacache "^11.2.0" + call-limit "~1.1.0" + chownr "~1.0.1" + ci-info "^1.6.0" + cli-columns "^3.1.2" + cli-table3 "^0.5.0" + cmd-shim "~2.0.2" + columnify "~1.5.4" + config-chain "^1.1.12" + detect-indent "~5.0.0" + detect-newline "^2.1.0" + dezalgo "~1.0.3" + editor "~1.0.0" + figgy-pudding "^3.5.1" + find-npm-prefix "^1.0.2" + fs-vacuum "~1.2.10" + fs-write-stream-atomic "~1.0.10" + gentle-fs "^2.0.1" + glob "^7.1.3" + graceful-fs "^4.1.15" + has-unicode "~2.0.1" + hosted-git-info "^2.7.1" + iferr "^1.0.2" + inflight "~1.0.6" + inherits "~2.0.3" + ini "^1.3.5" + init-package-json "^1.10.3" + is-cidr "^2.0.6" + json-parse-better-errors "^1.0.2" + lazy-property "~1.0.0" + libcipm "^2.0.2" + libnpmhook "^4.0.1" + libnpx "^10.2.0" + lock-verify "^2.0.2" + lockfile "^1.0.4" + lodash._baseuniq "~4.6.0" + lodash.clonedeep "~4.5.0" + lodash.union "~4.6.0" + lodash.uniq "~4.5.0" + lodash.without "~4.4.0" + lru-cache "^4.1.3" + meant "~1.0.1" + mississippi "^3.0.0" + mkdirp "~0.5.1" + move-concurrently "^1.0.1" + node-gyp "^3.8.0" + nopt "~4.0.1" + normalize-package-data "~2.4.0" + npm-audit-report "^1.3.1" + npm-cache-filename "~1.0.2" + npm-install-checks "~3.0.0" + npm-lifecycle "^2.1.0" + npm-package-arg "^6.1.0" + npm-packlist "^1.1.12" + npm-pick-manifest "^2.1.0" + npm-profile "^3.0.2" + npm-registry-client "^8.6.0" + npm-registry-fetch "^1.1.0" + npm-user-validate "~1.0.0" + npmlog "~4.1.2" + once "~1.4.0" + opener "^1.5.1" + osenv "^0.1.5" + pacote "^8.1.6" + path-is-inside "~1.0.2" + promise-inflight "~1.0.1" + qrcode-terminal "^0.12.0" + query-string "^6.1.0" + qw "~1.0.1" + read "~1.0.7" + read-cmd-shim "~1.0.1" + read-installed "~4.0.3" + read-package-json "^2.0.13" + read-package-tree "^5.2.1" + readable-stream "^2.3.6" + request "^2.88.0" + retry "^0.12.0" + rimraf "~2.6.2" + safe-buffer "^5.1.2" + semver "^5.5.1" + sha "~2.0.1" + slide "~1.1.6" + sorted-object "~2.0.1" + sorted-union-stream "~2.1.3" + ssri "^6.0.1" + stringify-package "^1.0.0" + tar "^4.4.8" + text-table "~0.2.0" + tiny-relative-date "^1.3.0" + uid-number "0.0.6" + umask "~1.1.0" + unique-filename "~1.1.0" + unpipe "~1.0.0" + update-notifier "^2.5.0" + uuid "^3.3.2" + validate-npm-package-license "^3.0.4" + validate-npm-package-name "~3.0.0" + which "^1.3.1" + worker-farm "^1.6.0" + write-file-atomic "^2.3.0" + +"npmlog@0 || 1 || 2 || 3 || 4", "npmlog@2 || ^3.1.0 || ^4.0.0", npmlog@^4.0.2, npmlog@~4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + dependencies: + 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@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +nyc@*: + version "14.1.0" + resolved "https://registry.yarnpkg.com/nyc/-/nyc-14.1.0.tgz#ae864913a4c5a947bfaebeb66a488bdb1868c9a3" + dependencies: + archy "^1.0.0" + caching-transform "^3.0.2" + convert-source-map "^1.6.0" + cp-file "^6.2.0" + find-cache-dir "^2.1.0" + find-up "^3.0.0" + foreground-child "^1.5.6" + glob "^7.1.3" + istanbul-lib-coverage "^2.0.5" + istanbul-lib-hook "^2.0.7" + istanbul-lib-instrument "^3.3.0" + istanbul-lib-report "^2.0.8" + istanbul-lib-source-maps "^3.0.6" + istanbul-reports "^2.2.4" + js-yaml "^3.13.1" + make-dir "^2.1.0" + merge-source-map "^1.1.0" + resolve-from "^4.0.0" + rimraf "^2.6.3" + signal-exit "^3.0.2" + spawn-wrap "^1.4.2" + test-exclude "^5.2.3" + uuid "^3.3.2" + yargs "^13.2.2" + yargs-parser "^13.0.0" + +nyc@^13.3.0: + version "13.3.0" + resolved "https://registry.yarnpkg.com/nyc/-/nyc-13.3.0.tgz#da4dbe91a9c8b9ead3f4f3344c76f353e3c78c75" + dependencies: + archy "^1.0.0" + arrify "^1.0.1" + caching-transform "^3.0.1" + convert-source-map "^1.6.0" + find-cache-dir "^2.0.0" + find-up "^3.0.0" + foreground-child "^1.5.6" + glob "^7.1.3" + istanbul-lib-coverage "^2.0.3" + istanbul-lib-hook "^2.0.3" + istanbul-lib-instrument "^3.1.0" + istanbul-lib-report "^2.0.4" + istanbul-lib-source-maps "^3.0.2" + istanbul-reports "^2.1.1" + make-dir "^1.3.0" + merge-source-map "^1.1.0" + resolve-from "^4.0.0" + rimraf "^2.6.3" + signal-exit "^3.0.2" + spawn-wrap "^1.4.2" + test-exclude "^5.1.0" + uuid "^3.3.2" + yargs "^12.0.5" + yargs-parser "^11.1.1" + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +object-component@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-inspect@~1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" + +object-keys@^1.0.11, object-keys@^1.0.12: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + dependencies: + isobject "^3.0.0" + +object.assign@^4.0.4: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.defaults@^1.0.0, object.defaults@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" + dependencies: + array-each "^1.0.1" + array-slice "^1.0.0" + for-own "^1.0.0" + isobject "^3.0.0" + +object.map@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" + dependencies: + for-own "^1.0.0" + make-iterator "^1.0.0" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +object.pick@^1.2.0, object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + dependencies: + isobject "^3.0.1" + +object.reduce@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object.reduce/-/object.reduce-1.0.1.tgz#6fe348f2ac7fa0f95ca621226599096825bb03ad" + dependencies: + for-own "^1.0.0" + make-iterator "^1.0.0" + +octokit-pagination-methods@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4" + +once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.3.3, once@^1.4.0, once@~1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + dependencies: + mimic-fn "^1.0.0" + +opener@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed" + +optimist@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +optionator@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.4" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + wordwrap "~1.0.0" + +ordered-read-streams@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e" + dependencies: + readable-stream "^2.0.1" + +os-homedir@^1.0.0, os-homedir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +os-locale@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + dependencies: + lcid "^1.0.0" + +os-locale@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + +os-locale@^3.0.0, os-locale@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" + dependencies: + execa "^1.0.0" + lcid "^2.0.0" + mem "^4.0.0" + +os-name@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801" + dependencies: + macos-release "^2.2.0" + windows-release "^3.1.0" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + +osenv@0, osenv@^0.1.4, osenv@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +output-file-sync@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" + dependencies: + graceful-fs "^4.1.4" + mkdirp "^0.5.1" + object-assign "^4.1.0" + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + +p-filter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-filter/-/p-filter-1.0.0.tgz#629d317150209c8fd508ba137713ef4bb920e9db" + dependencies: + p-map "^1.0.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + +p-is-promise@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" + dependencies: + p-try "^2.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + dependencies: + p-limit "^2.0.0" + +p-map@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" + +p-reduce@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" + +p-retry@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" + dependencies: + retry "^0.12.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + +package-hash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-3.0.0.tgz#50183f2d36c9e3e528ea0a8605dff57ce976f88e" + dependencies: + graceful-fs "^4.1.15" + hasha "^3.0.0" + lodash.flattendeep "^4.4.0" + release-zalgo "^1.0.0" + +package-json@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" + dependencies: + got "^6.7.1" + registry-auth-token "^3.0.1" + registry-url "^3.0.3" + semver "^5.1.0" + +pacote@^8.1.6: + version "8.1.6" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-8.1.6.tgz#8e647564d38156367e7a9dc47a79ca1ab278d46e" + dependencies: + bluebird "^3.5.1" + cacache "^11.0.2" + get-stream "^3.0.0" + glob "^7.1.2" + lru-cache "^4.1.3" + make-fetch-happen "^4.0.1" + minimatch "^3.0.4" + minipass "^2.3.3" + mississippi "^3.0.0" + mkdirp "^0.5.1" + normalize-package-data "^2.4.0" + npm-package-arg "^6.1.0" + npm-packlist "^1.1.10" + npm-pick-manifest "^2.1.0" + osenv "^0.1.5" + promise-inflight "^1.0.1" + promise-retry "^1.1.1" + protoduck "^5.0.0" + rimraf "^2.6.2" + safe-buffer "^5.1.2" + semver "^5.5.0" + ssri "^6.0.0" + tar "^4.4.3" + unique-filename "^1.1.0" + which "^1.3.0" + +parallel-transform@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" + dependencies: + cyclist "~0.2.2" + inherits "^2.0.3" + readable-stream "^2.1.5" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + dependencies: + callsites "^3.0.0" + +parse-filepath@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" + dependencies: + is-absolute "^1.0.0" + map-cache "^0.2.0" + path-root "^0.1.1" + +parse-github-url@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/parse-github-url/-/parse-github-url-1.0.2.tgz#242d3b65cbcdda14bb50439e3242acf6971db395" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + dependencies: + error-ex "^1.2.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-node-version@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + +parseqs@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" + dependencies: + better-assert "~1.0.0" + +parseuri@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" + dependencies: + better-assert "~1.0.0" + +parseurl@^1.3.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-is-inside@^1.0.1, path-is-inside@^1.0.2, path-is-inside@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + +path-root-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + +path-root@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + dependencies: + path-root-regex "^0.1.0" + +path-to-regexp@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" + dependencies: + isarray "0.0.1" + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + dependencies: + pify "^2.0.0" + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + dependencies: + pify "^3.0.0" + +pathval@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" + +pbkdf2@^3.0.9: + version "3.0.17" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + +pkg-conf@^2.0.0, pkg-conf@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.1.0.tgz#2126514ca6f2abfebd168596df18ba57867f0058" + dependencies: + find-up "^2.0.0" + load-json-file "^4.0.0" + +pkg-config@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pkg-config/-/pkg-config-1.1.1.tgz#557ef22d73da3c8837107766c52eadabde298fe4" + dependencies: + debug-log "^1.0.0" + find-root "^1.0.0" + xtend "^4.0.1" + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + dependencies: + find-up "^2.1.0" + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + dependencies: + find-up "^3.0.0" + +pluralize@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" + +pngjs@^3.3.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + +prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +prettier@^1.14.2: + version "1.17.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.17.0.tgz#53b303676eed22cc14a9f0cec09b477b3026c008" + +pretty-hrtime@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" + +private@^0.1.6, private@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + +process-nextick-args@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + +process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + +promise-inflight@^1.0.1, promise-inflight@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + +promise-retry@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-1.1.1.tgz#6739e968e3051da20ce6497fb2b50f6911df3d6d" + dependencies: + err-code "^1.0.0" + retry "^0.10.0" + +promzard@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" + dependencies: + read "1" + +prop-types@^15.6.0: + version "15.7.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.8.1" + +propagate@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/propagate/-/propagate-1.0.0.tgz#00c2daeedda20e87e3782b344adba1cddd6ad709" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + +protoduck@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/protoduck/-/protoduck-5.0.1.tgz#03c3659ca18007b69a50fd82a7ebcc516261151f" + dependencies: + genfun "^5.0.0" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + +psl@^1.1.24: + version "1.1.31" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.31.tgz#e9aa86d0101b5b105cbe93ac6b784cd547276184" + +pump@^2.0.0, pump@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3, pumpify@^1.3.5: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + +pushdata-bitcoin@Bitcoin-com/pushdata-bitcoin#1.2.1: + version "1.2.1" + resolved "https://codeload.github.com/Bitcoin-com/pushdata-bitcoin/tar.gz/9b75eebe597853c6eeaec3e6c44b6d9c9cd7ee86" + dependencies: + bitcoincash-ops Bitcoin-com/bitcoincash-ops#2.0.0 + +q@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + +qrcode-terminal@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#bb5b699ef7f9f0505092a3748be4464fe71b5819" + +qrcode@^1.2.0: + version "1.3.3" + resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.3.3.tgz#5ef50c0c890cffa1897f452070f0f094936993de" + dependencies: + can-promise "0.0.1" + dijkstrajs "^1.0.1" + isarray "^2.0.1" + pngjs "^3.3.0" + yargs "^12.0.5" + +qs@^6.3.0, qs@^6.5.1: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + +query-string@^6.1.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.5.0.tgz#2e1a70125af01f6f04573692d02c09302a1d8bfc" + dependencies: + decode-uri-component "^0.2.0" + split-on-first "^1.0.0" + strict-uri-encode "^2.0.0" + +quick-lru@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" + +qw@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/qw/-/qw-1.0.1.tgz#efbfdc740f9ad054304426acb183412cc8b996d4" + +random-bytes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b" + +randomatic@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" + dependencies: + is-number "^4.0.0" + kind-of "^6.0.0" + math-random "^1.0.1" + +randombytes@^2.0.1, randombytes@^2.0.6: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + dependencies: + safe-buffer "^5.1.0" + +range-parser@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + +rc@^1.0.1, rc@^1.1.6, rc@^1.2.7, rc@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-is@^16.8.1: + version "16.8.6" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" + +read-cmd-shim@^1.0.1, read-cmd-shim@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz#2d5d157786a37c055d22077c32c53f8329e91c7b" + dependencies: + graceful-fs "^4.1.2" + +read-installed@~4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/read-installed/-/read-installed-4.0.3.tgz#ff9b8b67f187d1e4c29b9feb31f6b223acd19067" + dependencies: + debuglog "^1.0.1" + read-package-json "^2.0.0" + readdir-scoped-modules "^1.0.0" + semver "2 || 3 || 4 || 5" + slide "~1.1.3" + util-extend "^1.0.1" + optionalDependencies: + graceful-fs "^4.1.2" + +"read-package-json@1 || 2", read-package-json@^2.0.0, read-package-json@^2.0.13: + version "2.0.13" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.0.13.tgz#2e82ebd9f613baa6d2ebe3aa72cefe3f68e41f4a" + dependencies: + glob "^7.1.1" + json-parse-better-errors "^1.0.1" + normalize-package-data "^2.0.0" + slash "^1.0.0" + optionalDependencies: + graceful-fs "^4.1.2" + +read-package-tree@^5.2.1: + version "5.2.2" + resolved "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.2.2.tgz#4b6a0ef2d943c1ea36a578214c9a7f6b7424f7a8" + dependencies: + debuglog "^1.0.1" + dezalgo "^1.0.0" + once "^1.3.0" + read-package-json "^2.0.0" + readdir-scoped-modules "^1.0.0" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + dependencies: + find-up "^2.0.0" + read-pkg "^3.0.0" + +read-pkg-up@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" + dependencies: + find-up "^3.0.0" + read-pkg "^3.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +read-pkg@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-4.0.1.tgz#963625378f3e1c4d48c85872b5a6ec7d5d093237" + dependencies: + normalize-package-data "^2.3.2" + parse-json "^4.0.0" + pify "^3.0.0" + +read@1, read@~1.0.1, read@~1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" + dependencies: + mute-stream "~0.0.4" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@~1.1.10: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readdir-scoped-modules@*, readdir-scoped-modules@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747" + dependencies: + debuglog "^1.0.1" + dezalgo "^1.0.0" + graceful-fs "^4.1.2" + once "^1.3.0" + +readdirp@^2.0.0, readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + dependencies: + resolve "^1.1.6" + +redent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" + dependencies: + indent-string "^3.0.0" + strip-indent "^2.0.0" + +redeyed@~2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-2.1.1.tgz#8984b5815d99cb220469c99eeeffe38913e6cc0b" + dependencies: + esprima "~4.0.0" + +regenerate@^1.2.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" + +regenerator-runtime@^0.10.5: + version "0.10.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + +regenerator-transform@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" + dependencies: + babel-runtime "^6.18.0" + babel-types "^6.19.0" + private "^0.1.6" + +regex-cache@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + dependencies: + is-equal-shallow "^0.1.3" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexpp@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + +regexpu-core@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +registry-auth-token@^3.0.1, registry-auth-token@^3.3.1: + version "3.4.0" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" + dependencies: + rc "^1.1.6" + safe-buffer "^5.0.1" + +registry-url@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" + dependencies: + rc "^1.0.1" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + dependencies: + jsesc "~0.5.0" + +release-zalgo@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/release-zalgo/-/release-zalgo-1.0.0.tgz#09700b7e5074329739330e535c5a90fb67851730" + dependencies: + es6-error "^4.0.1" + +remove-bom-buffer@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz#c2bf1e377520d324f623892e33c10cac2c252b53" + dependencies: + is-buffer "^1.1.5" + is-utf8 "^0.2.1" + +remove-bom-stream@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz#05f1a593f16e42e1fb90ebf59de8e569525f9523" + dependencies: + remove-bom-buffer "^3.0.0" + safe-buffer "^5.1.0" + through2 "^2.0.3" + +remove-trailing-separator@^1.0.1, remove-trailing-separator@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + +repeat-string@^1.5.2, repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + dependencies: + is-finite "^1.0.0" + +repl.history@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/repl.history/-/repl.history-0.1.4.tgz#80367171f3781d6e4299c71758c253097f5d5832" + +replace-ext@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" + +replace-homedir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/replace-homedir/-/replace-homedir-1.0.0.tgz#e87f6d513b928dde808260c12be7fec6ff6e798c" + dependencies: + homedir-polyfill "^1.0.1" + is-absolute "^1.0.0" + remove-trailing-separator "^1.1.0" + +request@^2.74.0, request@^2.86.0, request@^2.87.0, request@^2.88.0: + version "2.88.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.0" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.4.3" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + +require-uncached@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + dependencies: + caller-path "^0.1.0" + resolve-from "^1.0.0" + +resolve-dir@^1.0.0, resolve-dir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + dependencies: + expand-tilde "^2.0.0" + global-modules "^1.0.0" + +resolve-from@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + +resolve-options@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/resolve-options/-/resolve-options-1.1.0.tgz#32bb9e39c06d67338dc9378c0d6d6074566ad131" + dependencies: + value-or-function "^3.0.0" + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.8.1, resolve@~1.10.0: + version "1.10.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.1.tgz#664842ac960795bbe758221cdccda61fb64b5f18" + dependencies: + path-parse "^1.0.6" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +resumer@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" + dependencies: + through "~2.3.4" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + +retry@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + +rimraf@2, rimraf@2.6.3, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@~2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +run-async@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + dependencies: + is-promise "^2.1.0" + +run-parallel@^1.1.2: + version "1.1.9" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + dependencies: + aproba "^1.1.1" + +rx-lite-aggregates@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" + dependencies: + rx-lite "*" + +rx-lite@*, rx-lite@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" + +rxjs@^6.4.0: + version "6.5.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.1.tgz#f7a005a9386361921b8524f38f54cbf80e5d08f4" + dependencies: + tslib "^1.9.0" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + +samsam@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.3.0.tgz#8d1d9350e25622da30de3e44ba692b5221ab7c50" + +satoshi-bitcoin@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/satoshi-bitcoin/-/satoshi-bitcoin-1.0.4.tgz#d002b677075d5cbbf2c211a8df3254bcdf50b1e4" + dependencies: + big.js "^3.1.3" + +sax@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + +scryptsy@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-2.0.0.tgz#262c36f0231cfa7654e2363fa394cd2dec66f378" + +secp256k1@^3.0.1: + version "3.6.2" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.6.2.tgz#da835061c833c74a12f75c73d2ec2e980f00dc1f" + dependencies: + bindings "^1.2.1" + bip66 "^1.1.3" + bn.js "^4.11.3" + create-hash "^1.1.2" + drbg.js "^1.0.1" + elliptic "^6.2.3" + nan "^2.2.1" + safe-buffer "^5.1.0" + +semantic-release@^15.13.3: + version "15.13.3" + resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-15.13.3.tgz#412720b9c09f39f04df67478fa409a914107e05b" + dependencies: + "@semantic-release/commit-analyzer" "^6.1.0" + "@semantic-release/error" "^2.2.0" + "@semantic-release/github" "^5.1.0" + "@semantic-release/npm" "^5.0.5" + "@semantic-release/release-notes-generator" "^7.1.2" + aggregate-error "^2.0.0" + cosmiconfig "^5.0.1" + debug "^4.0.0" + env-ci "^3.0.0" + execa "^1.0.0" + figures "^2.0.0" + find-versions "^3.0.0" + get-stream "^4.0.0" + git-log-parser "^1.2.0" + hook-std "^1.1.0" + hosted-git-info "^2.7.1" + lodash "^4.17.4" + marked "^0.6.0" + marked-terminal "^3.2.0" + p-locate "^3.0.0" + p-reduce "^1.0.0" + read-pkg-up "^4.0.0" + resolve-from "^4.0.0" + semver "^5.4.1" + signale "^1.2.1" + yargs "^12.0.0" + +semver-diff@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" + dependencies: + semver "^5.0.3" + +semver-greatest-satisfied-range@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz#13e8c2658ab9691cb0cd71093240280d36f77a5b" + dependencies: + sver-compat "^1.5.0" + +semver-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" + +"semver@2 >=2.2.1 || 3.x || 4 || 5", "semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" + +semver@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.0.0.tgz#05e359ee571e5ad7ed641a6eec1e547ba52dea65" + +semver@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + +set-value@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.1" + to-object-path "^0.3.0" + +set-value@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +sha@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/sha/-/sha-2.0.1.tgz#6030822fbd2c9823949f8f72ed6411ee5cf25aae" + dependencies: + graceful-fs "^4.1.2" + readable-stream "^2.0.2" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +signale@^1.2.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/signale/-/signale-1.4.0.tgz#c4be58302fb0262ac00fc3d886a7c113759042f1" + dependencies: + chalk "^2.3.2" + figures "^2.0.0" + pkg-conf "^2.1.0" + +sinon@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-4.5.0.tgz#427ae312a337d3c516804ce2754e8c0d5028cb04" + dependencies: + "@sinonjs/formatio" "^2.0.0" + diff "^3.1.0" + lodash.get "^4.4.2" + lolex "^2.2.0" + nise "^1.2.0" + supports-color "^5.1.0" + type-detect "^4.0.5" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + +slice-ansi@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" + dependencies: + is-fullwidth-code-point "^2.0.0" + +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +slide@^1.1.3, slide@^1.1.6, slide@~1.1.3, slide@~1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + +smart-buffer@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.0.2.tgz#5207858c3815cc69110703c6b94e46c15634395d" + +smart-buffer@^1.0.13: + version "1.1.15" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-1.1.15.tgz#7f114b5b65fab3e2a35aa775bb12f0d1c649bf16" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +socket.io-adapter@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b" + +socket.io-client@2.2.0, socket.io-client@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.2.0.tgz#84e73ee3c43d5020ccc1a258faeeb9aec2723af7" + dependencies: + backo2 "1.0.2" + base64-arraybuffer "0.1.5" + component-bind "1.0.0" + component-emitter "1.2.1" + debug "~3.1.0" + engine.io-client "~3.3.1" + has-binary2 "~1.0.2" + has-cors "1.1.0" + indexof "0.0.1" + object-component "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" + socket.io-parser "~3.3.0" + to-array "0.1.4" + +socket.io-parser@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.0.tgz#2b52a96a509fdf31440ba40fed6094c7d4f1262f" + dependencies: + component-emitter "1.2.1" + debug "~3.1.0" + isarray "2.0.1" + +socket.io@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.2.0.tgz#f0f633161ef6712c972b307598ecd08c9b1b4d5b" + dependencies: + debug "~4.1.0" + engine.io "~3.3.1" + has-binary2 "~1.0.2" + socket.io-adapter "~1.1.0" + socket.io-client "2.2.0" + socket.io-parser "~3.3.0" + +socks-proxy-agent@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz#2eae7cf8e2a82d34565761539a7f9718c5617659" + dependencies: + agent-base "^4.1.0" + socks "^1.1.10" + +socks-proxy-agent@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386" + dependencies: + agent-base "~4.2.1" + socks "~2.3.2" + +socks@^1.1.10: + version "1.1.10" + resolved "https://registry.yarnpkg.com/socks/-/socks-1.1.10.tgz#5b8b7fc7c8f341c53ed056e929b7bf4de8ba7b5a" + dependencies: + ip "^1.1.4" + smart-buffer "^1.0.13" + +socks@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.3.2.tgz#ade388e9e6d87fdb11649c15746c578922a5883e" + dependencies: + ip "^1.1.5" + smart-buffer "4.0.2" + +sorted-object@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/sorted-object/-/sorted-object-2.0.1.tgz#7d631f4bd3a798a24af1dffcfbfe83337a5df5fc" + +sorted-union-stream@~2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/sorted-union-stream/-/sorted-union-stream-2.1.3.tgz#c7794c7e077880052ff71a8d4a2dbb4a9a638ac7" + dependencies: + from2 "^1.3.0" + stream-iterate "^1.1.0" + +source-map-resolve@^0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" + dependencies: + atob "^2.1.1" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.4.15: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + dependencies: + source-map "^0.5.6" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + +source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + +source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + +sparkles@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.1.tgz#008db65edce6c50eec0c5e228e1945061dd0437c" + +spawn-error-forwarder@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz#1afd94738e999b0346d7b9fc373be55e07577029" + +spawn-wrap@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.4.2.tgz#cff58e73a8224617b6561abdc32586ea0c82248c" + dependencies: + foreground-child "^1.5.6" + mkdirp "^0.5.0" + os-homedir "^1.0.1" + rimraf "^2.6.2" + signal-exit "^3.0.2" + which "^1.3.0" + +spdx-correct@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" + +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz#75ecd1a88de8c184ef015eafb51b5b48bfd11bb1" + +split-on-first@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + dependencies: + extend-shallow "^3.0.0" + +split2@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-2.2.0.tgz#186b2575bcf83e85b7d18465756238ee4ee42493" + dependencies: + through2 "^2.0.2" + +split2@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-1.0.0.tgz#52e2e221d88c75f9a73f90556e263ff96772b314" + dependencies: + through2 "~2.0.0" + +split@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" + dependencies: + through "2" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + dependencies: + 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" + +ssri@^5.2.4: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" + dependencies: + safe-buffer "^5.1.1" + +ssri@^6.0.0, ssri@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" + dependencies: + figgy-pudding "^3.5.1" + +stack-trace@0.0.10: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + +standard-engine@~8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/standard-engine/-/standard-engine-8.0.1.tgz#0b77be8d7ab963675717dbeac1ef1d6675fb62f0" + dependencies: + deglob "^2.1.0" + get-stdin "^6.0.0" + minimist "^1.1.0" + pkg-conf "^2.0.0" + +standard@^11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/standard/-/standard-11.0.1.tgz#49be40c76f1d564964b22bbf7309929ad0335e29" + dependencies: + eslint "~4.18.0" + eslint-config-standard "11.0.0" + eslint-config-standard-jsx "5.0.0" + eslint-plugin-import "~2.9.0" + eslint-plugin-node "~6.0.0" + eslint-plugin-promise "~3.7.0" + eslint-plugin-react "~7.7.0" + eslint-plugin-standard "~3.0.1" + standard-engine "~8.0.0" + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +stream-combiner2@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" + dependencies: + duplexer2 "~0.1.0" + readable-stream "^2.0.2" + +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-exhaust@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/stream-exhaust/-/stream-exhaust-1.0.2.tgz#acdac8da59ef2bc1e17a2c0ccf6c320d120e555d" + +stream-iterate@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/stream-iterate/-/stream-iterate-1.2.0.tgz#2bd7c77296c1702a46488b8ad41f79865eecd4e1" + dependencies: + readable-stream "^2.1.5" + stream-shift "^1.0.0" + +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + +strict-uri-encode@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" + +string-width@^1.0.1, string-width@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string.prototype.trim@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz#d04de2c89e137f4d7d206f086b5ed2fae6be8cea" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.0" + function-bind "^1.0.2" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + dependencies: + safe-buffer "~5.1.0" + +stringify-package@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stringify-package/-/stringify-package-1.0.0.tgz#e02828089333d7d45cd8c287c30aa9a13375081b" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + dependencies: + ansi-regex "^4.1.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + dependencies: + is-utf8 "^0.2.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + +strip-indent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" + +strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + +supports-color@5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" + dependencies: + has-flag "^3.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +supports-color@^5.0.0, supports-color@^5.1.0, supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + dependencies: + has-flag "^3.0.0" + +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + dependencies: + has-flag "^3.0.0" + +supports-hyperlinks@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz#71daedf36cc1060ac5100c351bb3da48c29c0ef7" + dependencies: + has-flag "^2.0.0" + supports-color "^5.0.0" + +sver-compat@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/sver-compat/-/sver-compat-1.5.0.tgz#3cf87dfeb4d07b4a3f14827bc186b3fd0c645cd8" + dependencies: + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" + +table@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" + dependencies: + ajv "^5.2.3" + ajv-keywords "^2.1.0" + chalk "^2.1.0" + lodash "^4.17.4" + slice-ansi "1.0.0" + string-width "^2.1.1" + +table@^5.2.3: + version "5.2.3" + resolved "https://registry.yarnpkg.com/table/-/table-5.2.3.tgz#cde0cc6eb06751c009efab27e8c820ca5b67b7f2" + dependencies: + ajv "^6.9.1" + lodash "^4.17.11" + slice-ansi "^2.1.0" + string-width "^3.0.0" + +tape@*: + version "4.10.1" + resolved "https://registry.yarnpkg.com/tape/-/tape-4.10.1.tgz#f73be60888dcb120f08b57f947af65a829506a5f" + dependencies: + deep-equal "~1.0.1" + defined "~1.0.0" + for-each "~0.3.3" + function-bind "~1.1.1" + glob "~7.1.3" + has "~1.0.3" + inherits "~2.0.3" + minimist "~1.2.0" + object-inspect "~1.6.0" + resolve "~1.10.0" + resumer "~0.0.0" + string.prototype.trim "~1.1.2" + through "~2.3.8" + +tar@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + dependencies: + block-stream "*" + fstream "^1.0.2" + inherits "2" + +tar@^4, tar@^4.4.3, tar@^4.4.8: + version "4.4.8" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d" + dependencies: + chownr "^1.1.1" + fs-minipass "^1.2.5" + minipass "^2.3.4" + minizlib "^1.1.1" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.2" + +term-size@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" + dependencies: + execa "^0.7.0" + +test-exclude@^5.1.0, test-exclude@^5.2.3: + version "5.2.3" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" + dependencies: + glob "^7.1.3" + minimatch "^3.0.4" + read-pkg-up "^4.0.0" + require-main-filename "^2.0.0" + +text-extensions@^1.0.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" + +text-table@^0.2.0, text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + +through2-filter@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.0.0.tgz#700e786df2367c2c88cd8aa5be4cf9c1e7831254" + dependencies: + through2 "~2.0.0" + xtend "~4.0.0" + +through2@^2.0.0, through2@^2.0.2, through2@^2.0.3, through2@~2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through@2, "through@>=2.2.7 <3", through@^2.3.6, through@~2.3.4, through@~2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +time-stamp@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" + +timed-out@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + +tiny-relative-date@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz#fa08aad501ed730f31cc043181d995c39a935e07" + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + dependencies: + os-tmpdir "~1.0.2" + +to-absolute-glob@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1865f43d9e74b0822db9f145b78cff7d0f7c849b" + dependencies: + is-absolute "^1.0.0" + is-negated-glob "^1.0.0" + +to-array@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +to-through@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-through/-/to-through-2.0.0.tgz#fc92adaba072647bc0b67d6b03664aa195093af6" + dependencies: + through2 "^2.0.3" + +touch@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" + dependencies: + nopt "~1.0.10" + +tough-cookie@~2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + dependencies: + psl "^1.1.24" + punycode "^1.4.1" + +traverse@~0.6.6: + version "0.6.6" + resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" + +trim-newlines@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" + +trim-off-newlines@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + +tslib@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + +type-is@^1.6.16: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + +typeforce@^1.11.3: + version "1.18.0" + resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.18.0.tgz#d7416a2c5845e085034d70fcc5b6cc4a90edbfdc" + +typescript@^3.1.4: + version "3.4.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.4.5.tgz#2d2618d10bb566572b8d7aad5180d84257d70a99" + +uglify-js@^3.1.4: + version "3.5.11" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.5.11.tgz#833442c0aa29b3a7d34344c7c63adaa3f3504f6a" + dependencies: + commander "~2.20.0" + source-map "~0.6.1" + +uid-number@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + +umask@^1.1.0, umask@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" + +unc-path-regex@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + +undertaker-registry@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/undertaker-registry/-/undertaker-registry-1.0.1.tgz#5e4bda308e4a8a2ae584f9b9a4359a499825cc50" + +undertaker@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/undertaker/-/undertaker-1.2.1.tgz#701662ff8ce358715324dfd492a4f036055dfe4b" + dependencies: + arr-flatten "^1.0.1" + arr-map "^2.0.0" + bach "^1.0.0" + collection-map "^1.0.0" + es6-weak-map "^2.0.1" + last-run "^1.1.0" + object.defaults "^1.0.0" + object.reduce "^1.0.0" + undertaker-registry "^1.0.0" + +union-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^0.4.3" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + +unique-filename@^1.1.0, unique-filename@^1.1.1, unique-filename@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.1.tgz#5e9edc6d1ce8fb264db18a507ef9bd8544451ca6" + dependencies: + imurmurhash "^0.1.4" + +unique-stream@^2.0.2: + version "2.3.1" + resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.3.1.tgz#c65d110e9a4adf9a6c5948b28053d9a8d04cbeac" + dependencies: + json-stable-stringify-without-jsonify "^1.0.1" + through2-filter "^3.0.0" + +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + dependencies: + crypto-random-string "^1.0.0" + +universal-user-agent@^2.0.0, universal-user-agent@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-2.0.3.tgz#9f6f09f9cc33de867bb720d84c08069b14937c6c" + dependencies: + os-name "^3.0.0" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + +unorm@^1.3.3: + version "1.5.0" + resolved "https://registry.yarnpkg.com/unorm/-/unorm-1.5.0.tgz#01fa9b76f1c60f7916834605c032aa8962c3f00a" + +unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +unzip-response@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + +upath@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068" + +update-notifier@^2.3.0, update-notifier@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" + dependencies: + boxen "^1.2.1" + chalk "^2.0.1" + configstore "^3.0.0" + import-lazy "^2.1.0" + is-ci "^1.0.10" + is-installed-globally "^0.1.0" + is-npm "^1.0.0" + latest-version "^3.0.0" + semver-diff "^2.0.0" + xdg-basedir "^3.0.0" + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + +url-join@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.0.tgz#4d3340e807d3773bda9991f8305acdcc2a665d2a" + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + dependencies: + prepend-http "^1.0.1" + +url-template@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/url-template/-/url-template-2.0.8.tgz#fc565a3cccbff7730c775f5641f9555791439f21" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + +user-home@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +util-extend@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz#a7c216d267545169637b3b6edc6ca9119e2ff93f" + +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + dependencies: + inherits "2.0.1" + +uuid@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + +v8flags@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" + dependencies: + user-home "^1.1.1" + +v8flags@^3.0.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.1.2.tgz#fc5cd0c227428181e6c29b2992e4f8f1da5e0c9f" + dependencies: + homedir-polyfill "^1.0.1" + +validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +validate-npm-package-name@^3.0.0, validate-npm-package-name@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" + dependencies: + builtins "^1.0.3" + +value-or-function@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813" + +varuint-bitcoin@^1.0.1, varuint-bitcoin@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz#7a343f50537607af6a3059312b9782a170894540" + dependencies: + safe-buffer "^5.1.1" + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vinyl-fs@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-3.0.3.tgz#c85849405f67428feabbbd5c5dbdd64f47d31bc7" + dependencies: + fs-mkdirp-stream "^1.0.0" + glob-stream "^6.1.0" + graceful-fs "^4.0.0" + is-valid-glob "^1.0.0" + lazystream "^1.0.0" + lead "^1.0.0" + object.assign "^4.0.4" + pumpify "^1.3.5" + readable-stream "^2.3.3" + remove-bom-buffer "^3.0.0" + remove-bom-stream "^1.2.0" + resolve-options "^1.1.0" + through2 "^2.0.0" + to-through "^2.0.0" + value-or-function "^3.0.0" + vinyl "^2.0.0" + vinyl-sourcemap "^1.1.0" + +vinyl-sourcemap@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz#92a800593a38703a8cdb11d8b300ad4be63b3e16" + dependencies: + append-buffer "^1.0.2" + convert-source-map "^1.5.0" + graceful-fs "^4.1.6" + normalize-path "^2.1.1" + now-and-later "^2.0.0" + remove-bom-buffer "^3.0.0" + vinyl "^2.0.0" + +vinyl@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.0.tgz#d85b07da96e458d25b2ffe19fece9f2caa13ed86" + dependencies: + clone "^2.1.1" + clone-buffer "^1.0.0" + clone-stats "^1.0.0" + cloneable-readable "^1.0.0" + remove-trailing-separator "^1.0.1" + replace-ext "^1.0.0" + +wcwidth@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + dependencies: + defaults "^1.0.3" + +which-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + +which@1, which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + dependencies: + string-width "^1.0.2 || 2" + +widest-line@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" + dependencies: + string-width "^2.1.1" + +wif@^2.0.1, wif@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/wif/-/wif-2.0.6.tgz#08d3f52056c66679299726fade0d432ae74b4704" + dependencies: + bs58check "<3.0.0" + +window-or-global@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/window-or-global/-/window-or-global-1.0.1.tgz#dbe45ba2a291aabc56d62cf66c45b7fa322946de" + +windows-release@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.2.0.tgz#8122dad5afc303d833422380680a79cdfa91785f" + dependencies: + execa "^1.0.0" + +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + +worker-farm@^1.6.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + dependencies: + errno "~0.1.7" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +write-file-atomic@^2.0.0, write-file-atomic@^2.3.0, write-file-atomic@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.2.tgz#a7181706dfba17855d221140a9c06e15fcdd87b9" + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +write@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + dependencies: + mkdirp "^0.5.1" + +write@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + dependencies: + mkdirp "^0.5.1" + +ws@~6.1.0: + version "6.1.4" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" + dependencies: + async-limiter "~1.0.0" + +xdg-basedir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" + +xmlhttprequest-ssl@~1.5.4: + version "1.5.5" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" + +xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + +"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + +yallist@^3.0.0, yallist@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" + +yargs-parser@^11.1.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^13.0.0: + version "13.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.0.tgz#7016b6dd03e28e1418a510e258be4bff5a31138f" + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" + dependencies: + camelcase "^3.0.0" + +yargs-parser@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" + dependencies: + camelcase "^4.1.0" + +yargs@^11.0.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" + dependencies: + 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 "^9.0.2" + +yargs@^12.0.0, yargs@^12.0.5: + version "12.0.5" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" + dependencies: + cliui "^4.0.0" + decamelize "^1.2.0" + find-up "^3.0.0" + get-caller-file "^1.0.1" + os-locale "^3.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 || ^4.0.0" + yargs-parser "^11.1.1" + +yargs@^13.2.2: + version "13.2.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.2.tgz#0c101f580ae95cea7f39d927e7770e3fdc97f993" + dependencies: + cliui "^4.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + os-locale "^3.1.0" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.0.0" + +yargs@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" + dependencies: + camelcase "^3.0.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + y18n "^3.2.1" + yargs-parser "^5.0.0" + +yeast@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" From e4d1064dac1e5e216d8e1bae72516846376b94e8 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 8 May 2019 08:34:18 +0900 Subject: [PATCH 268/480] More porting to .ts. --- index.js | 6 ++++-- package.json | 3 +-- src/Address.ts | 1 + src/Block.ts | 1 + 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/index.js b/index.js index 706fdcba..51177067 100755 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOX = require("./lib/BITBOX").BITBOX const clone = require("git-clone") -program.version("6.1.1 ", "-v, --version") +program.version("6.1.2 ", "-v, --version") program .command("new ") @@ -170,4 +170,6 @@ function fetchOption(kv, config, options) { program.parse(process.argv) // print help if no command given -if (!process.argv.slice(2).length) program.outputHelp() +// if (!process.argv.slice(2).length) program.outputHelp() + +module.exports = BITBOX diff --git a/package.json b/package.json index 55ef7b13..d58e85f2 100644 --- a/package.json +++ b/package.json @@ -1,12 +1,11 @@ { "name": "bitbox-sdk", - "version": "6.1.1", + "version": "6.1.2", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ "Chris Troutner " ], - "types": "./typings/BITBOX.d.ts", "scripts": { "test": "TEST=unit nyc --reporter=text mocha --require babel-core/register --timeout 30000 test/unit", "test:integration": "TEST=integration nyc --reporter=text mocha --require babel-core/register --timeout 10000 test/integration", diff --git a/src/Address.ts b/src/Address.ts index ee3e6612..4c25211f 100644 --- a/src/Address.ts +++ b/src/Address.ts @@ -4,6 +4,7 @@ import * as cashaddr from "cashaddrjs" import * as coininfo from "coininfo" export class Address { + restURL: string constructor(restURL) { this.restURL = restURL } diff --git a/src/Block.ts b/src/Block.ts index a04b690b..43027b36 100644 --- a/src/Block.ts +++ b/src/Block.ts @@ -1,6 +1,7 @@ import * as axios from "axios" export class Block { + restURL: string constructor(restURL) { this.restURL = restURL } From 59e608561c35c602c52586bcd9129d611cf8dd59 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 8 May 2019 08:38:04 +0900 Subject: [PATCH 269/480] Adding properties to classes. --- lib/BITBOX.js | 2 +- lib/Schnorr.js | 3 +-- src/BITBOX.ts | 2 +- src/Blockchain.ts | 1 + src/Control.ts | 1 + src/Generating.ts | 1 + src/Mining.ts | 2 ++ src/Price.ts | 1 + src/RawTransactions.ts | 1 + src/Schnorr.ts | 4 ---- src/Transaction.ts | 1 + src/Util.ts | 1 + 12 files changed, 12 insertions(+), 8 deletions(-) diff --git a/lib/BITBOX.js b/lib/BITBOX.js index 67235393..c82c674d 100644 --- a/lib/BITBOX.js +++ b/lib/BITBOX.js @@ -50,7 +50,7 @@ var BITBOX = /** @class */ (function () { this.Util = new Util_1.Util(restURL); this.Socket = Socket_1.Socket; this.Wallet = Wallet_1.Wallet; - this.Schnorr = new Schnorr_1.Schnorr(restURL); + this.Schnorr = new Schnorr_1.Schnorr(); } return BITBOX; }()); diff --git a/lib/Schnorr.js b/lib/Schnorr.js index 595e2e0d..f9b85f7a 100644 --- a/lib/Schnorr.js +++ b/lib/Schnorr.js @@ -2,8 +2,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); var schnorr = require("bip-schnorr"); var Schnorr = /** @class */ (function () { - function Schnorr(restURL) { - this.restURL = restURL; + function Schnorr() { } Schnorr.prototype.sign = function (privateKey, message) { return schnorr.sign(privateKey, message); diff --git a/src/BITBOX.ts b/src/BITBOX.ts index 5e6daf6a..d8786468 100644 --- a/src/BITBOX.ts +++ b/src/BITBOX.ts @@ -71,6 +71,6 @@ export class BITBOX { this.Util = new Util(restURL) this.Socket = Socket this.Wallet = Wallet - this.Schnorr = new Schnorr(restURL) + this.Schnorr = new Schnorr() } } diff --git a/src/Blockchain.ts b/src/Blockchain.ts index 43a26836..6ffbb5b5 100644 --- a/src/Blockchain.ts +++ b/src/Blockchain.ts @@ -6,6 +6,7 @@ import * as axios from "axios" export class Blockchain { + restURL: string constructor(restURL) { this.restURL = restURL } diff --git a/src/Control.ts b/src/Control.ts index 39f80e95..94c2a7cd 100644 --- a/src/Control.ts +++ b/src/Control.ts @@ -1,6 +1,7 @@ import * as axios from "axios" export class Control { + restURL: string constructor(restURL) { this.restURL = restURL } diff --git a/src/Generating.ts b/src/Generating.ts index 83235895..62e3655b 100644 --- a/src/Generating.ts +++ b/src/Generating.ts @@ -1,6 +1,7 @@ import * as axios from "axios" export class Generating { + restURL: string constructor(restURL) { this.restURL = restURL } diff --git a/src/Mining.ts b/src/Mining.ts index c3a4f51a..29c10cea 100644 --- a/src/Mining.ts +++ b/src/Mining.ts @@ -1,5 +1,7 @@ import * as axios from "axios" + export class Mining { + restURL: string constructor(restURL) { this.restURL = restURL } diff --git a/src/Price.ts b/src/Price.ts index f21803d3..347abd0c 100644 --- a/src/Price.ts +++ b/src/Price.ts @@ -1,4 +1,5 @@ import * as axios from "axios" + export class Price { async current(currency = "usd") { try { diff --git a/src/RawTransactions.ts b/src/RawTransactions.ts index 77ddc02d..5beb99b8 100644 --- a/src/RawTransactions.ts +++ b/src/RawTransactions.ts @@ -1,6 +1,7 @@ import * as axios from "axios" export class RawTransactions { + restURL: string constructor(restURL) { this.restURL = restURL } diff --git a/src/Schnorr.ts b/src/Schnorr.ts index c8db89a1..5afb03f9 100644 --- a/src/Schnorr.ts +++ b/src/Schnorr.ts @@ -1,10 +1,6 @@ import * as schnorr from "bip-schnorr" export class Schnorr { - constructor(restURL) { - this.restURL = restURL - } - sign(privateKey, message) { return schnorr.sign(privateKey, message) } diff --git a/src/Transaction.ts b/src/Transaction.ts index d70db17e..25903de4 100644 --- a/src/Transaction.ts +++ b/src/Transaction.ts @@ -2,6 +2,7 @@ import * as Bitcoin from "bitcoincashjs-lib" import * as axios from "axios" export class Transaction { + restURL: string constructor(restURL) { this.restURL = restURL } diff --git a/src/Util.ts b/src/Util.ts index 42f0c07a..f9b7dd38 100644 --- a/src/Util.ts +++ b/src/Util.ts @@ -1,6 +1,7 @@ import * as axios from "axios" export class Util { + restURL: string constructor(restURL) { this.restURL = restURL } From 6dd7b63750802b172036b41932fcc435ea0cad5b Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 8 May 2019 08:43:06 +0900 Subject: [PATCH 270/480] more class properties. --- src/BitcoinCash.ts | 1 + src/HDNode.ts | 1 + src/Mnemonic.ts | 1 + src/Script.ts | 6 ++++++ src/Socket.ts | 1 + src/TransactionBuilder.ts | 9 +++++++++ 6 files changed, 19 insertions(+) diff --git a/src/BitcoinCash.ts b/src/BitcoinCash.ts index d4bc23e0..d3e35d42 100644 --- a/src/BitcoinCash.ts +++ b/src/BitcoinCash.ts @@ -10,6 +10,7 @@ import * as wif from "wif" const Buffer = require("safe-buffer").Buffer export class BitcoinCash { + _address: string constructor(address) { this._address = address } diff --git a/src/HDNode.ts b/src/HDNode.ts index e7948976..39d70be1 100644 --- a/src/HDNode.ts +++ b/src/HDNode.ts @@ -3,6 +3,7 @@ import * as coininfo from "coininfo" import * as bip32utils from "bip32-utils" export class HDNode { + _address: string constructor(address) { this._address = address } diff --git a/src/Mnemonic.ts b/src/Mnemonic.ts index d660b1a5..c19c34b6 100644 --- a/src/Mnemonic.ts +++ b/src/Mnemonic.ts @@ -5,6 +5,7 @@ const Buffer = require("safe-buffer").Buffer const wif = require("wif") export class Mnemonic { + _address: string constructor(address) { this._address = address } diff --git a/src/Script.ts b/src/Script.ts index bfcdb4a3..43cab46a 100644 --- a/src/Script.ts +++ b/src/Script.ts @@ -2,6 +2,12 @@ import * as Bitcoin from "bitcoincashjs-lib" import * as opcodes from "bitcoincash-ops" export class Script { + opcodes: any + nullData: any + multisig: any + pubKey: any + pubKeyHash: any + scriptHash: any constructor() { this.opcodes = opcodes this.nullData = Bitcoin.script.nullData diff --git a/src/Socket.ts b/src/Socket.ts index 0e5f8ebb..b8dca48c 100644 --- a/src/Socket.ts +++ b/src/Socket.ts @@ -1,6 +1,7 @@ import * as io from "socket.io-client" export class Socket { + socket: any constructor(config = {}) { if (typeof config === "string") { // TODO remove this check in v2.0 diff --git a/src/TransactionBuilder.ts b/src/TransactionBuilder.ts index 9ae22dbf..ef8f4799 100644 --- a/src/TransactionBuilder.ts +++ b/src/TransactionBuilder.ts @@ -4,6 +4,15 @@ import * as bip66 from "bip66" import * as bip68 from "bc-bip68" export class TransactionBuilder { + transaction: any + DEFAULT_SEQUENCE: any + hashTypes: any + signatureAlgorithms: any + bip66: any + bip68: any + p2shInput: any + tx: any + static setAddress(address) { TransactionBuilder._address = address } From dc36d3d668be8cd76123a97f9414b58281b4496c Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 8 May 2019 08:47:54 +0900 Subject: [PATCH 271/480] Adding types to fix .ts warnings/errors. --- src/TransactionBuilder.ts | 27 ++++++++++++++++----------- src/Util.ts | 4 ++-- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/src/TransactionBuilder.ts b/src/TransactionBuilder.ts index ef8f4799..4f1168bb 100644 --- a/src/TransactionBuilder.ts +++ b/src/TransactionBuilder.ts @@ -13,12 +13,12 @@ export class TransactionBuilder { p2shInput: any tx: any - static setAddress(address) { + static setAddress(address: string): void { TransactionBuilder._address = address } - constructor(network = "mainnet") { - let bitcoincash + constructor(network: string = "mainnet") { + let bitcoincash: any if (network === "bitcoincash" || network === "mainnet") bitcoincash = coininfo.bitcoincash.main else bitcoincash = coininfo.bitcoincash.test @@ -45,7 +45,12 @@ export class TransactionBuilder { this.tx } - addInput(txHash, vout, sequence = this.DEFAULT_SEQUENCE, prevOutScript) { + addInput( + txHash: string, + vout: number, + sequence: number = this.DEFAULT_SEQUENCE, + prevOutScript: string + ) { this.transaction.addInput(txHash, vout, sequence, prevOutScript) } @@ -79,13 +84,13 @@ export class TransactionBuilder { } sign( - vin, - keyPair, - redeemScript, - hashType = this.hashTypes.SIGHASH_ALL, - value, - signatureAlgorithm - ) { + vin: number, + keyPair: any, + redeemScript: any, + hashType: number = this.hashTypes.SIGHASH_ALL, + value: number, + signatureAlgorithm: number + ): void { let witnessScript this.transaction.sign( diff --git a/src/Util.ts b/src/Util.ts index f9b7dd38..86492bae 100644 --- a/src/Util.ts +++ b/src/Util.ts @@ -2,11 +2,11 @@ import * as axios from "axios" export class Util { restURL: string - constructor(restURL) { + constructor(restURL: string) { this.restURL = restURL } - async validateAddress(address) { + async validateAddress(address: string): Promise { try { // Single block if (typeof address === "string") { From 26a03d2d246d49d4e2e1a51a6629a43c3ccc9a5e Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 8 May 2019 08:53:34 +0900 Subject: [PATCH 272/480] More .ts --- src/Address.ts | 2 +- src/BitcoinCash.ts | 2 +- src/Block.ts | 2 +- src/Blockchain.ts | 2 +- src/Control.ts | 2 +- src/ECPair.ts | 2 +- src/Generating.ts | 2 +- src/HDNode.ts | 2 +- src/Mining.ts | 2 +- src/Mnemonic.ts | 4 ++-- src/Price.ts | 2 +- src/RawTransactions.ts | 2 +- src/Socket.ts | 2 +- src/Transaction.ts | 4 ++-- src/TransactionBuilder.ts | 11 ++++++----- 15 files changed, 22 insertions(+), 21 deletions(-) diff --git a/src/Address.ts b/src/Address.ts index 4c25211f..05cd5eb3 100644 --- a/src/Address.ts +++ b/src/Address.ts @@ -5,7 +5,7 @@ import * as coininfo from "coininfo" export class Address { restURL: string - constructor(restURL) { + constructor(restURL: string) { this.restURL = restURL } diff --git a/src/BitcoinCash.ts b/src/BitcoinCash.ts index d3e35d42..0fa0bc0b 100644 --- a/src/BitcoinCash.ts +++ b/src/BitcoinCash.ts @@ -11,7 +11,7 @@ const Buffer = require("safe-buffer").Buffer export class BitcoinCash { _address: string - constructor(address) { + constructor(address: any) { this._address = address } diff --git a/src/Block.ts b/src/Block.ts index 43027b36..b0ae8acd 100644 --- a/src/Block.ts +++ b/src/Block.ts @@ -2,7 +2,7 @@ import * as axios from "axios" export class Block { restURL: string - constructor(restURL) { + constructor(restURL: string) { this.restURL = restURL } diff --git a/src/Blockchain.ts b/src/Blockchain.ts index 6ffbb5b5..c0819e1e 100644 --- a/src/Blockchain.ts +++ b/src/Blockchain.ts @@ -7,7 +7,7 @@ import * as axios from "axios" export class Blockchain { restURL: string - constructor(restURL) { + constructor(restURL: string) { this.restURL = restURL } diff --git a/src/Control.ts b/src/Control.ts index 94c2a7cd..c525f25f 100644 --- a/src/Control.ts +++ b/src/Control.ts @@ -2,7 +2,7 @@ import * as axios from "axios" export class Control { restURL: string - constructor(restURL) { + constructor(restURL: string) { this.restURL = restURL } diff --git a/src/ECPair.ts b/src/ECPair.ts index eae16c62..dab92cb6 100644 --- a/src/ECPair.ts +++ b/src/ECPair.ts @@ -2,7 +2,7 @@ import * as Bitcoin from "bitcoincashjs-lib" import * as coininfo from "coininfo" export class ECPair { - static setAddress(address) { + static setAddress(address: any) { ECPair._address = address } diff --git a/src/Generating.ts b/src/Generating.ts index 62e3655b..72b988df 100644 --- a/src/Generating.ts +++ b/src/Generating.ts @@ -2,7 +2,7 @@ import * as axios from "axios" export class Generating { restURL: string - constructor(restURL) { + constructor(restURL: string) { this.restURL = restURL } diff --git a/src/HDNode.ts b/src/HDNode.ts index 39d70be1..4ff948dc 100644 --- a/src/HDNode.ts +++ b/src/HDNode.ts @@ -4,7 +4,7 @@ import * as bip32utils from "bip32-utils" export class HDNode { _address: string - constructor(address) { + constructor(address: any) { this._address = address } diff --git a/src/Mining.ts b/src/Mining.ts index 29c10cea..f9aebeb0 100644 --- a/src/Mining.ts +++ b/src/Mining.ts @@ -2,7 +2,7 @@ import * as axios from "axios" export class Mining { restURL: string - constructor(restURL) { + constructor(restURL: string) { this.restURL = restURL } diff --git a/src/Mnemonic.ts b/src/Mnemonic.ts index c19c34b6..f22e5652 100644 --- a/src/Mnemonic.ts +++ b/src/Mnemonic.ts @@ -5,8 +5,8 @@ const Buffer = require("safe-buffer").Buffer const wif = require("wif") export class Mnemonic { - _address: string - constructor(address) { + _address: any + constructor(address: any) { this._address = address } diff --git a/src/Price.ts b/src/Price.ts index 347abd0c..8b767a1a 100644 --- a/src/Price.ts +++ b/src/Price.ts @@ -1,7 +1,7 @@ import * as axios from "axios" export class Price { - async current(currency = "usd") { + async current(currency: string = "usd"): Promise { try { const response = await axios.get( `https://index-api.bitcoin.com/api/v0/cash/price/${currency.toLowerCase()}` diff --git a/src/RawTransactions.ts b/src/RawTransactions.ts index 5beb99b8..387694ac 100644 --- a/src/RawTransactions.ts +++ b/src/RawTransactions.ts @@ -2,7 +2,7 @@ import * as axios from "axios" export class RawTransactions { restURL: string - constructor(restURL) { + constructor(restURL: string) { this.restURL = restURL } diff --git a/src/Socket.ts b/src/Socket.ts index b8dca48c..91216970 100644 --- a/src/Socket.ts +++ b/src/Socket.ts @@ -2,7 +2,7 @@ import * as io from "socket.io-client" export class Socket { socket: any - constructor(config = {}) { + constructor(config: any = {}) { if (typeof config === "string") { // TODO remove this check in v2.0 this.socket = io(`${config}`) diff --git a/src/Transaction.ts b/src/Transaction.ts index 25903de4..265e444f 100644 --- a/src/Transaction.ts +++ b/src/Transaction.ts @@ -3,11 +3,11 @@ import * as axios from "axios" export class Transaction { restURL: string - constructor(restURL) { + constructor(restURL: string) { this.restURL = restURL } - async details(txid) { + async details(txid: string) { try { // Handle single address. if (typeof txid === "string") { diff --git a/src/TransactionBuilder.ts b/src/TransactionBuilder.ts index 4f1168bb..b5fbeb15 100644 --- a/src/TransactionBuilder.ts +++ b/src/TransactionBuilder.ts @@ -12,6 +12,7 @@ export class TransactionBuilder { bip68: any p2shInput: any tx: any + static _address: any static setAddress(address: string): void { TransactionBuilder._address = address @@ -54,21 +55,21 @@ export class TransactionBuilder { this.transaction.addInput(txHash, vout, sequence, prevOutScript) } - addInputScript(vout, script) { + addInputScript(vout: number, script: any): void { this.tx = this.transaction.buildIncomplete() this.tx.setInputScript(vout, script) this.p2shInput = true } - addInputScripts(scripts) { + addInputScripts(scripts: any): void { this.tx = this.transaction.buildIncomplete() - scripts.forEach(script => { + scripts.forEach((script: any) => { this.tx.setInputScript(script.vout, script.script) }) this.p2shInput = true } - addOutput(scriptPubKey, amount) { + addOutput(scriptPubKey: string, amount: number): void { try { this.transaction.addOutput( TransactionBuilder._address.toLegacyAddress(scriptPubKey), @@ -79,7 +80,7 @@ export class TransactionBuilder { } } - setLockTime(locktime) { + setLockTime(locktime: number): void { this.transaction.setLockTime(locktime) } From be1d7a8dccc1fdc34a05ab39db217e0d14390229 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 8 May 2019 10:05:11 +0900 Subject: [PATCH 273/480] .ts data types. --- src/Script.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Script.ts b/src/Script.ts index 43cab46a..88d5a202 100644 --- a/src/Script.ts +++ b/src/Script.ts @@ -13,9 +13,9 @@ export class Script { this.nullData = Bitcoin.script.nullData this.multisig = { input: { - encode: signatures => { + encode: (signatures: any) => { const sigs = [] - signatures.forEach(sig => { + signatures.forEach((sig: any) => { sigs.push(sig) }) return Bitcoin.script.multisig.input.encode(sigs) @@ -24,7 +24,7 @@ export class Script { check: Bitcoin.script.multisig.input.check }, output: { - encode: (m, pubKeys) => { + encode: (m: any, pubKeys: any) => { const pks = [] pubKeys.forEach(pubKey => { pks.push(pubKey) @@ -40,19 +40,19 @@ export class Script { this.scriptHash = Bitcoin.script.scriptHash } - classifyInput(script) { + classifyInput(script: any): string { return Bitcoin.script.classifyInput(script) } - classifyOutput(script) { + classifyOutput(script: any): string { return Bitcoin.script.classifyOutput(script) } - decode(scriptBuffer) { + decode(scriptBuffer: any): any[] { return Bitcoin.script.decompile(scriptBuffer) } - encode(scriptChunks) { + encode(scriptChunks: any): any { const arr = [] scriptChunks.forEach(chunk => { arr.push(chunk) @@ -60,11 +60,11 @@ export class Script { return Bitcoin.script.compile(arr) } - toASM(buffer) { + toASM(buffer: any): any { return Bitcoin.script.toASM(buffer) } - fromASM(asm) { + fromASM(asm: any): any { return Bitcoin.script.fromASM(asm) } } From ee23167f28cbe5a1f4d67d152c0c6ea142c3b17a Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 8 May 2019 10:07:07 +0900 Subject: [PATCH 274/480] more .ts data types. --- src/Schnorr.ts | 54 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 33 insertions(+), 21 deletions(-) diff --git a/src/Schnorr.ts b/src/Schnorr.ts index 5afb03f9..ff128b02 100644 --- a/src/Schnorr.ts +++ b/src/Schnorr.ts @@ -1,31 +1,38 @@ import * as schnorr from "bip-schnorr" export class Schnorr { - sign(privateKey, message) { + sign(privateKey: any, message: any): any { return schnorr.sign(privateKey, message) } - verify(publicKey, message, signatureToVerify) { + verify(publicKey: any, message: any, signatureToVerify: any): any { return schnorr.verify(publicKey, message, signatureToVerify) } - batchVerify(publicKeys, messages, signaturesToVerify) { + batchVerify(publicKeys: any, messages: any, signaturesToVerify: any): any { return schnorr.batchVerify(publicKeys, messages, signaturesToVerify) } - nonInteractive(privateKeys, message) { + nonInteractive(privateKeys: any, message: any): any { return schnorr.muSig.nonInteractive(privateKeys, message) } - computeEll(publicKeys) { + computeEll(publicKeys: any): any { return schnorr.muSig.computeEll(publicKeys) } - publicKeyCombine(publicKeys, publicKeyHash) { + publicKeyCombine(publicKeys: any, publicKeyHash: any): any { return schnorr.muSig.pubKeyCombine(publicKeys, publicKeyHash) } - sessionInitialize(sessionId, privateKey, message, pubKeyCombined, ell, idx) { + sessionInitialize( + sessionId: any, + privateKey: any, + message: any, + pubKeyCombined: any, + ell: any, + idx: any + ): any { return schnorr.muSig.sessionInitialize( sessionId, privateKey, @@ -36,11 +43,16 @@ export class Schnorr { ) } - sessionNonceCombine(session, nonces) { + sessionNonceCombine(session: any, nonces: any): any { return schnorr.muSig.sessionNonceCombine(session, nonces) } - partialSign(session, message, nonceCombined, pubKeyCombined) { + partialSign( + session: any, + message: any, + nonceCombined: any, + pubKeyCombined: any + ): any { return schnorr.muSig.partialSign( session, message, @@ -50,13 +62,13 @@ export class Schnorr { } partialSignatureVerify( - session, - partialSignature, + session: any, + partialSignature: any, nonceCombined, - idx, - pubKey, - nonce - ) { + idx: any, + pubKey: any, + nonce: any + ): any { return schnorr.muSig.partialSigVerify( session, partialSignature, @@ -67,27 +79,27 @@ export class Schnorr { ) } - partialSignaturesCombine(nonceCombined, partialSignatures) { + partialSignaturesCombine(nonceCombined: any, partialSignatures: any): any { return schnorr.muSig.partialSigCombine(nonceCombined, partialSignatures) } - bufferToInt(buffer) { + bufferToInt(buffer: any): any { return schnorr.convert.bufferToInt(buffer) } - intToBuffer(bigInteger) { + intToBuffer(bigInteger: any): any { return schnorr.convert.intToBuffer(bigInteger) } - hash(buffer) { + hash(buffer: any): any { return schnorr.convert.hash(buffer) } - pointToBuffer(point) { + pointToBuffer(point: any): any { return schnorr.convert.pointToBuffer(point) } - pubKeyToPoint(publicKey) { + pubKeyToPoint(publicKey: any): any { return schnorr.convert.pubKeyToPoint(publicKey) } } From f389bfea2a2d24c2c657cf56cd7c57092825e3cf Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 8 May 2019 10:14:01 +0900 Subject: [PATCH 275/480] .ts fixes. --- src/HDNode.ts | 48 +++++++++++++++++++++--------------------- src/RawTransactions.ts | 9 +++++--- src/Socket.ts | 4 ++-- 3 files changed, 32 insertions(+), 29 deletions(-) diff --git a/src/HDNode.ts b/src/HDNode.ts index 4ff948dc..f77a993b 100644 --- a/src/HDNode.ts +++ b/src/HDNode.ts @@ -8,8 +8,8 @@ export class HDNode { this._address = address } - fromSeed(rootSeedBuffer, network = "mainnet") { - let bitcoincash + fromSeed(rootSeedBuffer: any, network: string = "mainnet"): any { + let bitcoincash: any if (network === "bitcoincash" || network === "mainnet") bitcoincash = coininfo.bitcoincash.main else bitcoincash = coininfo.bitcoincash.test @@ -21,36 +21,36 @@ export class HDNode { ) } - toLegacyAddress(hdNode) { + toLegacyAddress(hdNode: any): string { return hdNode.getAddress() } - toCashAddress(hdNode, regtest = false) { + toCashAddress(hdNode: any, regtest: boolean = false): string { return this._address.toCashAddress(hdNode.getAddress(), true, regtest) } - toWIF(hdNode) { + toWIF(hdNode: any): string { return hdNode.keyPair.toWIF() } - toXPub(hdNode) { + toXPub(hdNode: any): string { return hdNode.neutered().toBase58() } - toXPriv(hdNode) { + toXPriv(hdNode: any): string { return hdNode.toBase58() } - toKeyPair(hdNode) { + toKeyPair(hdNode: any): any { return hdNode.keyPair } - toPublicKey(hdNode) { + toPublicKey(hdNode: any): any { return hdNode.getPublicKeyBuffer() } - fromXPriv(xpriv) { - let bitcoincash + fromXPriv(xpriv: string): any { + let bitcoincash: any if (xpriv[0] === "x") bitcoincash = coininfo.bitcoincash.main else if (xpriv[0] === "t") bitcoincash = coininfo.bitcoincash.test @@ -58,8 +58,8 @@ export class HDNode { return Bitcoin.HDNode.fromBase58(xpriv, bitcoincashBitcoinJSLib) } - fromXPub(xpub) { - let bitcoincash + fromXPub(xpub: string): any { + let bitcoincash: any if (xpub[0] === "x") bitcoincash = coininfo.bitcoincash.main else if (xpub[0] === "t") bitcoincash = coininfo.bitcoincash.test @@ -67,50 +67,50 @@ export class HDNode { return Bitcoin.HDNode.fromBase58(xpub, bitcoincashBitcoinJSLib) } - derivePath(hdnode, path) { + derivePath(hdnode: any, path: string): any { return hdnode.derivePath(path) } - derive(hdnode, path) { + derive(hdnode: any, path: string): any { return hdnode.derive(path) } - deriveHardened(hdnode, path) { + deriveHardened(hdnode: any, path: string): any { return hdnode.deriveHardened(path) } - sign(hdnode, buffer) { + sign(hdnode: any, buffer: any): any { return hdnode.sign(buffer) } - verify(hdnode, buffer, signature) { + verify(hdnode: any, buffer: any, signature: any): any { return hdnode.verify(buffer, signature) } - isPublic(hdnode) { + isPublic(hdnode: any): any { return hdnode.isNeutered() } - isPrivate(hdnode) { + isPrivate(hdnode: any): any { return !hdnode.isNeutered() } - toIdentifier(hdnode) { + toIdentifier(hdnode: any): any { return hdnode.getIdentifier() } - fromBase58(base58, network) { + fromBase58(base58: any, network: any): any { return Bitcoin.HDNode.fromBase58(base58, network) } - createAccount(hdNodes) { + createAccount(hdNodes: any): any { const arr = hdNodes.map( (item, index) => new bip32utils.Chain(item.neutered()) ) return new bip32utils.Account(arr) } - createChain(hdNode) { + createChain(hdNode: any): any { return new bip32utils.Chain(hdNode) } } diff --git a/src/RawTransactions.ts b/src/RawTransactions.ts index 387694ac..551c10ad 100644 --- a/src/RawTransactions.ts +++ b/src/RawTransactions.ts @@ -6,7 +6,7 @@ export class RawTransactions { this.restURL = restURL } - async decodeRawTransaction(hex) { + async decodeRawTransaction(hex: string): Promise { try { // Single hex if (typeof hex === "string") { @@ -37,7 +37,7 @@ export class RawTransactions { } } - async decodeScript(script) { + async decodeScript(script: string | string[]): Promise { //if (typeof script !== "string") script = JSON.stringify(script) try { @@ -67,7 +67,10 @@ export class RawTransactions { } } - async getRawTransaction(txid, verbose = false) { + async getRawTransaction( + txid: string, + verbose: boolean = false + ): Promise { try { if (typeof txid === "string") { const response = await axios.get( diff --git a/src/Socket.ts b/src/Socket.ts index 91216970..0a8089e5 100644 --- a/src/Socket.ts +++ b/src/Socket.ts @@ -18,10 +18,10 @@ export class Socket { } } - listen(endpoint, cb) { + listen(endpoint: any, cb: any): void { this.socket.emit(endpoint) - if (endpoint === "blocks") this.socket.on("blocks", msg => cb(msg)) + if (endpoint === "blocks") this.socket.on("blocks", (msg: any) => cb(msg)) else if (endpoint === "transactions") this.socket.on("transactions", msg => cb(msg)) } From 9be61f601699c633a7261b7b4a3a508121e6b7ee Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 8 May 2019 10:21:39 +0900 Subject: [PATCH 276/480] .ts --- src/Mnemonic.ts | 38 +++++++++++++++++++++----------------- src/RawTransactions.ts | 5 ++++- src/Schnorr.ts | 2 +- src/Script.ts | 10 +++++----- src/Socket.ts | 2 +- 5 files changed, 32 insertions(+), 25 deletions(-) diff --git a/src/Mnemonic.ts b/src/Mnemonic.ts index f22e5652..a2b106ac 100644 --- a/src/Mnemonic.ts +++ b/src/Mnemonic.ts @@ -10,19 +10,19 @@ export class Mnemonic { this._address = address } - generate(bits = 128, wordlist) { + generate(bits: number = 128, wordlist: string[]): string { return BIP39.generateMnemonic(bits, randomBytes, wordlist) } - fromEntropy(bytes, wordlist) { + fromEntropy(bytes: number, wordlist: string[]): string { return BIP39.entropyToMnemonic(bytes, wordlist) } - toEntropy(mnemonic, wordlist) { + toEntropy(mnemonic: string, wordlist: string[]): any { return Buffer.from(BIP39.mnemonicToEntropy(mnemonic, wordlist), "hex") } - validate(mnemonic, wordlist) { + validate(mnemonic: string, wordlist: string[]): string { // Preprocess the words const words = mnemonic.split(" ") // Detect blank phrase @@ -45,20 +45,24 @@ export class Mnemonic { return "Valid mnemonic" } - toSeed(mnemonic, password = "") { + toSeed(mnemonic: string, password: string = ""): any { return BIP39.mnemonicToSeed(mnemonic, password) } - wordLists() { + wordLists(): string[] { return BIP39.wordlists } - toKeypairs(mnemonic, numberOfKeypairs = 1, regtest = false) { - const rootSeedBuffer = this.toSeed(mnemonic, "") - const hdNode = Bitcoin.HDNode.fromSeedBuffer(rootSeedBuffer) - const HDPath = `44'/145'/0'/0/` + toKeypairs( + mnemonic: string, + numberOfKeypairs: number = 1, + regtest: boolean = false + ): any { + const rootSeedBuffer: any = this.toSeed(mnemonic, "") + const hdNode: any = Bitcoin.HDNode.fromSeedBuffer(rootSeedBuffer) + const HDPath: string = `44'/145'/0'/0/` - const accounts = [] + const accounts: any[] = [] for (let i = 0; i < numberOfKeypairs; i++) { const childHDNode = hdNode.derivePath(`${HDPath}${i}`) @@ -82,14 +86,14 @@ export class Mnemonic { return accounts } - findNearestWord(word, wordlist) { - let minDistance = 99 - let closestWord = wordlist[0] - for (let i = 0; i < wordlist.length; i++) { - const comparedTo = wordlist[i] + findNearestWord(word: string, wordlist: string[]): string { + let minDistance: number = 99 + let closestWord: string = wordlist[0] + for (let i: number = 0; i < wordlist.length; i++) { + const comparedTo: any = wordlist[i] if (comparedTo.indexOf(word) == 0) return comparedTo - const distance = Levenshtein.get(word, comparedTo) + const distance: any = Levenshtein.get(word, comparedTo) if (distance < minDistance) { closestWord = comparedTo minDistance = distance diff --git a/src/RawTransactions.ts b/src/RawTransactions.ts index 551c10ad..46f6938c 100644 --- a/src/RawTransactions.ts +++ b/src/RawTransactions.ts @@ -101,7 +101,10 @@ export class RawTransactions { } } - async sendRawTransaction(hex, allowhighfees = false) { + async sendRawTransaction( + hex: string | string[], + allowhighfees: boolean = false + ): Promise { try { // Single tx hex. if (typeof hex === "string") { diff --git a/src/Schnorr.ts b/src/Schnorr.ts index ff128b02..bb11d4b8 100644 --- a/src/Schnorr.ts +++ b/src/Schnorr.ts @@ -64,7 +64,7 @@ export class Schnorr { partialSignatureVerify( session: any, partialSignature: any, - nonceCombined, + nonceCombined: any, idx: any, pubKey: any, nonce: any diff --git a/src/Script.ts b/src/Script.ts index 88d5a202..d177654b 100644 --- a/src/Script.ts +++ b/src/Script.ts @@ -14,7 +14,7 @@ export class Script { this.multisig = { input: { encode: (signatures: any) => { - const sigs = [] + const sigs: any[] = [] signatures.forEach((sig: any) => { sigs.push(sig) }) @@ -25,8 +25,8 @@ export class Script { }, output: { encode: (m: any, pubKeys: any) => { - const pks = [] - pubKeys.forEach(pubKey => { + const pks: any[] = [] + pubKeys.forEach((pubKey: any) => { pks.push(pubKey) }) return Bitcoin.script.multisig.output.encode(m, pks) @@ -53,8 +53,8 @@ export class Script { } encode(scriptChunks: any): any { - const arr = [] - scriptChunks.forEach(chunk => { + const arr: any[] = [] + scriptChunks.forEach((chunk: any) => { arr.push(chunk) }) return Bitcoin.script.compile(arr) diff --git a/src/Socket.ts b/src/Socket.ts index 0a8089e5..4eb3ae40 100644 --- a/src/Socket.ts +++ b/src/Socket.ts @@ -23,6 +23,6 @@ export class Socket { if (endpoint === "blocks") this.socket.on("blocks", (msg: any) => cb(msg)) else if (endpoint === "transactions") - this.socket.on("transactions", msg => cb(msg)) + this.socket.on("transactions", (msg: any) => cb(msg)) } } From f9076f441ab86a1e01585d764e6f909da16b3e2c Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 8 May 2019 10:36:22 +0900 Subject: [PATCH 277/480] Axios typings. --- lib/Address.js | 18 ++++++++-------- lib/Block.js | 10 ++++----- lib/Blockchain.js | 48 +++++++++++++++++++++--------------------- lib/Control.js | 6 +++--- lib/Generating.js | 4 ++-- lib/Mining.js | 10 ++++----- lib/Mnemonic.js | 9 +++++++- lib/Price.js | 4 ++-- lib/RawTransactions.js | 18 ++++++++-------- lib/Transaction.js | 6 +++--- lib/Util.js | 6 +++--- src/Address.ts | 10 ++++----- src/Block.ts | 6 +++--- src/Blockchain.ts | 38 ++++++++++++++++----------------- src/Control.ts | 6 +++--- src/Generating.ts | 10 ++++++--- src/Mining.ts | 25 +++++++++++++--------- src/Mnemonic.ts | 32 ++++++++++++++-------------- src/Price.ts | 4 ++-- src/RawTransactions.ts | 10 ++++----- src/Transaction.ts | 4 ++-- src/Util.ts | 4 ++-- 22 files changed, 152 insertions(+), 136 deletions(-) diff --git a/lib/Address.js b/lib/Address.js index ec553141..54b8e774 100644 --- a/lib/Address.js +++ b/lib/Address.js @@ -35,7 +35,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { } }; Object.defineProperty(exports, "__esModule", { value: true }); -var axios = require("axios"); +var axios_1 = require("axios"); var Bitcoin = require("bitcoincashjs-lib"); var cashaddr = require("cashaddrjs"); var coininfo = require("coininfo"); @@ -272,7 +272,7 @@ var Address = /** @class */ (function () { case 0: _a.trys.push([0, 5, , 6]); if (!(typeof address === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios.get(this.restURL + "address/details/" + address)]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "address/details/" + address)]; case 1: response = _a.sent(); return [2 /*return*/, response.data @@ -287,7 +287,7 @@ var Address = /** @class */ (function () { addresses: address } }; - return [4 /*yield*/, axios(options)]; + return [4 /*yield*/, axios_1.default(options)]; case 3: response = _a.sent(); return [2 /*return*/, response.data]; @@ -312,7 +312,7 @@ var Address = /** @class */ (function () { case 0: _a.trys.push([0, 5, , 6]); if (!(typeof address === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios.get(this.restURL + "address/utxo/" + address)]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "address/utxo/" + address)]; case 1: response = _a.sent(); return [2 /*return*/, response.data]; @@ -325,7 +325,7 @@ var Address = /** @class */ (function () { addresses: address } }; - return [4 /*yield*/, axios(options)]; + return [4 /*yield*/, axios_1.default(options)]; case 3: response = _a.sent(); return [2 /*return*/, response.data]; @@ -350,7 +350,7 @@ var Address = /** @class */ (function () { case 0: _a.trys.push([0, 5, , 6]); if (!(typeof address === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios.get(this.restURL + "address/unconfirmed/" + address)]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "address/unconfirmed/" + address)]; case 1: response = _a.sent(); return [2 /*return*/, response.data @@ -365,7 +365,7 @@ var Address = /** @class */ (function () { addresses: address } }; - return [4 /*yield*/, axios(options)]; + return [4 /*yield*/, axios_1.default(options)]; case 3: response = _a.sent(); return [2 /*return*/, response.data]; @@ -390,7 +390,7 @@ var Address = /** @class */ (function () { case 0: _a.trys.push([0, 5, , 6]); if (!(typeof address === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios.get(this.restURL + "address/transactions/" + address)]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "address/transactions/" + address)]; case 1: response = _a.sent(); return [2 /*return*/, response.data @@ -405,7 +405,7 @@ var Address = /** @class */ (function () { addresses: address } }; - return [4 /*yield*/, axios(options)]; + return [4 /*yield*/, axios_1.default(options)]; case 3: response = _a.sent(); return [2 /*return*/, response.data]; diff --git a/lib/Block.js b/lib/Block.js index 9f4a1505..db8cae3c 100644 --- a/lib/Block.js +++ b/lib/Block.js @@ -35,7 +35,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { } }; Object.defineProperty(exports, "__esModule", { value: true }); -var axios = require("axios"); +var axios_1 = require("axios"); var Block = /** @class */ (function () { function Block(restURL) { this.restURL = restURL; @@ -48,7 +48,7 @@ var Block = /** @class */ (function () { case 0: _a.trys.push([0, 5, , 6]); if (!(typeof id === "number")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios.get(this.restURL + "block/detailsByHeight/" + id)]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "block/detailsByHeight/" + id)]; case 1: response = _a.sent(); return [2 /*return*/, response.data @@ -63,7 +63,7 @@ var Block = /** @class */ (function () { heights: id } }; - return [4 /*yield*/, axios(options)]; + return [4 /*yield*/, axios_1.default(options)]; case 3: response = _a.sent(); return [2 /*return*/, response.data]; @@ -88,7 +88,7 @@ var Block = /** @class */ (function () { case 0: _a.trys.push([0, 5, , 6]); if (!(typeof hash === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios.get(this.restURL + "block/detailsByHash/" + hash)]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "block/detailsByHash/" + hash)]; case 1: response = _a.sent(); return [2 /*return*/, response.data @@ -103,7 +103,7 @@ var Block = /** @class */ (function () { hashes: hash } }; - return [4 /*yield*/, axios(options)]; + return [4 /*yield*/, axios_1.default(options)]; case 3: response = _a.sent(); return [2 /*return*/, response.data]; diff --git a/lib/Blockchain.js b/lib/Blockchain.js index ff71214e..b534d555 100644 --- a/lib/Blockchain.js +++ b/lib/Blockchain.js @@ -39,7 +39,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { } }; Object.defineProperty(exports, "__esModule", { value: true }); -var axios = require("axios"); +var axios_1 = require("axios"); var Blockchain = /** @class */ (function () { function Blockchain(restURL) { this.restURL = restURL; @@ -51,7 +51,7 @@ var Blockchain = /** @class */ (function () { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios.get(this.restURL + "blockchain/getBestBlockHash")]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getBestBlockHash")]; case 1: response = _a.sent(); return [2 /*return*/, response.data]; @@ -75,7 +75,7 @@ var Blockchain = /** @class */ (function () { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios.get(this.restURL + "blockchain/getBlock/" + blockhash + "?verbose=" + verbose)]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getBlock/" + blockhash + "?verbose=" + verbose)]; case 1: response = _a.sent(); return [2 /*return*/, response.data]; @@ -98,7 +98,7 @@ var Blockchain = /** @class */ (function () { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios.get(this.restURL + "blockchain/getBlockchainInfo")]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getBlockchainInfo")]; case 1: response = _a.sent(); return [2 /*return*/, response.data]; @@ -121,7 +121,7 @@ var Blockchain = /** @class */ (function () { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios.get(this.restURL + "blockchain/getBlockCount")]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getBlockCount")]; case 1: response = _a.sent(); return [2 /*return*/, response.data]; @@ -149,7 +149,7 @@ var Blockchain = /** @class */ (function () { _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); - return [4 /*yield*/, axios.get(this.restURL + "blockchain/getBlockHash/" + height)]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getBlockHash/" + height)]; case 2: response = _a.sent(); return [2 /*return*/, response.data]; @@ -174,7 +174,7 @@ var Blockchain = /** @class */ (function () { case 0: _a.trys.push([0, 5, , 6]); if (!(typeof hash === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios.get(this.restURL + "blockchain/getBlockHeader/" + hash + "?verbose=" + verbose)]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getBlockHeader/" + hash + "?verbose=" + verbose)]; case 1: response = _a.sent(); return [2 /*return*/, response.data @@ -190,7 +190,7 @@ var Blockchain = /** @class */ (function () { verbose: verbose } }; - return [4 /*yield*/, axios(options)]; + return [4 /*yield*/, axios_1.default(options)]; case 3: response = _a.sent(); return [2 /*return*/, response.data]; @@ -214,7 +214,7 @@ var Blockchain = /** @class */ (function () { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios.get(this.restURL + "blockchain/getChainTips")]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getChainTips")]; case 1: response = _a.sent(); return [2 /*return*/, response.data]; @@ -237,7 +237,7 @@ var Blockchain = /** @class */ (function () { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios.get(this.restURL + "blockchain/getDifficulty")]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getDifficulty")]; case 1: response = _a.sent(); return [2 /*return*/, response.data]; @@ -265,7 +265,7 @@ var Blockchain = /** @class */ (function () { _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); - return [4 /*yield*/, axios.get(this.restURL + "blockchain/getMempoolAncestors/" + txid + "?verbose=" + verbose)]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getMempoolAncestors/" + txid + "?verbose=" + verbose)]; case 2: response = _a.sent(); return [2 /*return*/, response.data]; @@ -293,7 +293,7 @@ var Blockchain = /** @class */ (function () { _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); - return [4 /*yield*/, axios.get(this.restURL + "blockchain/getMempoolDescendants/" + txid + "?verbose=" + verbose)]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getMempoolDescendants/" + txid + "?verbose=" + verbose)]; case 2: response = _a.sent(); return [2 /*return*/, response.data]; @@ -317,7 +317,7 @@ var Blockchain = /** @class */ (function () { case 0: _a.trys.push([0, 5, , 6]); if (!(typeof txid === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios.get(this.restURL + "blockchain/getMempoolEntry/" + txid)]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getMempoolEntry/" + txid)]; case 1: response = _a.sent(); return [2 /*return*/, response.data]; @@ -330,7 +330,7 @@ var Blockchain = /** @class */ (function () { txids: txid } }; - return [4 /*yield*/, axios(options)]; + return [4 /*yield*/, axios_1.default(options)]; case 3: response = _a.sent(); return [2 /*return*/, response.data]; @@ -354,7 +354,7 @@ var Blockchain = /** @class */ (function () { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios.get(this.restURL + "blockchain/getMempoolInfo")]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getMempoolInfo")]; case 1: response = _a.sent(); return [2 /*return*/, response.data]; @@ -378,7 +378,7 @@ var Blockchain = /** @class */ (function () { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios.get(this.restURL + "blockchain/getRawMempool?vebose=" + verbose)]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getRawMempool?vebose=" + verbose)]; case 1: response = _a.sent(); return [2 /*return*/, response.data]; @@ -402,7 +402,7 @@ var Blockchain = /** @class */ (function () { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios.get(this.restURL + "blockchain/getTxOut/" + txid + "/n?include_mempool=" + include_mempool)]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getTxOut/" + txid + "/n?include_mempool=" + include_mempool)]; case 1: response = _a.sent(); return [2 /*return*/, response.data]; @@ -427,7 +427,7 @@ var Blockchain = /** @class */ (function () { _a.trys.push([0, 5, , 6]); if (!(typeof txids === "string")) return [3 /*break*/, 2]; path = this.restURL + "blockchain/getTxOutProof/" + txids; - return [4 /*yield*/, axios.get(path)]; + return [4 /*yield*/, axios_1.default.get(path)]; case 1: response = _a.sent(); return [2 /*return*/, response.data @@ -442,7 +442,7 @@ var Blockchain = /** @class */ (function () { txids: txids } }; - return [4 /*yield*/, axios(options)]; + return [4 /*yield*/, axios_1.default(options)]; case 3: response = _a.sent(); return [2 /*return*/, response.data]; @@ -466,7 +466,7 @@ var Blockchain = /** @class */ (function () { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios.get(this.restURL + "blockchain/preciousBlock/" + blockhash)]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/preciousBlock/" + blockhash)]; case 1: response = _a.sent(); return [2 /*return*/, response.data]; @@ -489,7 +489,7 @@ var Blockchain = /** @class */ (function () { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios.post(this.restURL + "blockchain/pruneBlockchain/" + height)]; + return [4 /*yield*/, axios_1.default.post(this.restURL + "blockchain/pruneBlockchain/" + height)]; case 1: response = _a.sent(); return [2 /*return*/, response.data]; @@ -514,7 +514,7 @@ var Blockchain = /** @class */ (function () { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios.get(this.restURL + "blockchain/verifyChain?checklevel=" + checklevel + "&nblocks=" + nblocks)]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/verifyChain?checklevel=" + checklevel + "&nblocks=" + nblocks)]; case 1: response = _a.sent(); return [2 /*return*/, response.data]; @@ -538,7 +538,7 @@ var Blockchain = /** @class */ (function () { case 0: _a.trys.push([0, 5, , 6]); if (!(typeof proof === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios.get(this.restURL + "blockchain/verifyTxOutProof/" + proof)]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/verifyTxOutProof/" + proof)]; case 1: response = _a.sent(); return [2 /*return*/, response.data @@ -553,7 +553,7 @@ var Blockchain = /** @class */ (function () { proofs: proof } }; - return [4 /*yield*/, axios(options)]; + return [4 /*yield*/, axios_1.default(options)]; case 3: response = _a.sent(); return [2 /*return*/, response.data]; diff --git a/lib/Control.js b/lib/Control.js index 81a9fcaf..e5fb9f53 100644 --- a/lib/Control.js +++ b/lib/Control.js @@ -35,7 +35,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { } }; Object.defineProperty(exports, "__esModule", { value: true }); -var axios = require("axios"); +var axios_1 = require("axios"); var Control = /** @class */ (function () { function Control(restURL) { this.restURL = restURL; @@ -47,7 +47,7 @@ var Control = /** @class */ (function () { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios.get(this.restURL + "control/getInfo")]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "control/getInfo")]; case 1: response = _a.sent(); return [2 /*return*/, response.data]; @@ -70,7 +70,7 @@ var Control = /** @class */ (function () { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios.get(this.restURL + "control/getMemoryInfo")]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "control/getMemoryInfo")]; case 1: response = _a.sent(); return [2 /*return*/, response.data]; diff --git a/lib/Generating.js b/lib/Generating.js index d0a1982a..0e21402a 100644 --- a/lib/Generating.js +++ b/lib/Generating.js @@ -35,7 +35,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { } }; Object.defineProperty(exports, "__esModule", { value: true }); -var axios = require("axios"); +var axios_1 = require("axios"); var Generating = /** @class */ (function () { function Generating(restURL) { this.restURL = restURL; @@ -48,7 +48,7 @@ var Generating = /** @class */ (function () { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios.post(this.restURL + "generating/generateToAddress/" + blocks + "/" + address + "?maxtries=" + maxtries)]; + return [4 /*yield*/, axios_1.default.post(this.restURL + "generating/generateToAddress/" + blocks + "/" + address + "?maxtries=" + maxtries)]; case 1: response = _a.sent(); return [2 /*return*/, response.data]; diff --git a/lib/Mining.js b/lib/Mining.js index 5228f21d..cfed1e15 100644 --- a/lib/Mining.js +++ b/lib/Mining.js @@ -35,7 +35,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { } }; Object.defineProperty(exports, "__esModule", { value: true }); -var axios = require("axios"); +var axios_1 = require("axios"); var Mining = /** @class */ (function () { function Mining(restURL) { this.restURL = restURL; @@ -47,7 +47,7 @@ var Mining = /** @class */ (function () { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios.get(this.restURL + "mining/getBlockTemplate/" + template_request)]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "mining/getBlockTemplate/" + template_request)]; case 1: response = _a.sent(); return [2 /*return*/, response.data]; @@ -70,7 +70,7 @@ var Mining = /** @class */ (function () { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios.get(this.restURL + "mining/getMiningInfo")]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "mining/getMiningInfo")]; case 1: response = _a.sent(); return [2 /*return*/, response.data]; @@ -95,7 +95,7 @@ var Mining = /** @class */ (function () { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios.get(this.restURL + "mining/getNetworkHashps?nblocks=" + nblocks + "&height=" + height)]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "mining/getNetworkHashps?nblocks=" + nblocks + "&height=" + height)]; case 1: response = _a.sent(); return [2 /*return*/, response.data]; @@ -123,7 +123,7 @@ var Mining = /** @class */ (function () { _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); - return [4 /*yield*/, axios.post(path)]; + return [4 /*yield*/, axios_1.default.post(path)]; case 2: response = _a.sent(); return [2 /*return*/, response.data]; diff --git a/lib/Mnemonic.js b/lib/Mnemonic.js index a5de8cb7..42953bf6 100644 --- a/lib/Mnemonic.js +++ b/lib/Mnemonic.js @@ -182,7 +182,14 @@ var Levenshtein = { if (str2.length === 0) return cb(null, str1.length); // two rows - var prevRow = new Array(str2.length + 1), curCol, nextCol, i, j, tmp, startTime, currentTime; + var prevRow = new Array(str2.length + 1); + var curCol; + var nextCol; + var i; + var j; + var tmp; + var startTime; + var currentTime; // initialise previous row for (i = 0; i < prevRow.length; ++i) prevRow[i] = i; diff --git a/lib/Price.js b/lib/Price.js index f6a70873..d67c4ec6 100644 --- a/lib/Price.js +++ b/lib/Price.js @@ -35,7 +35,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { } }; Object.defineProperty(exports, "__esModule", { value: true }); -var axios = require("axios"); +var axios_1 = require("axios"); var Price = /** @class */ (function () { function Price() { } @@ -47,7 +47,7 @@ var Price = /** @class */ (function () { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios.get("https://index-api.bitcoin.com/api/v0/cash/price/" + currency.toLowerCase())]; + return [4 /*yield*/, axios_1.default.get("https://index-api.bitcoin.com/api/v0/cash/price/" + currency.toLowerCase())]; case 1: response = _a.sent(); return [2 /*return*/, response.data.price]; diff --git a/lib/RawTransactions.js b/lib/RawTransactions.js index 56058324..d0a70bf2 100644 --- a/lib/RawTransactions.js +++ b/lib/RawTransactions.js @@ -35,7 +35,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { } }; Object.defineProperty(exports, "__esModule", { value: true }); -var axios = require("axios"); +var axios_1 = require("axios"); var RawTransactions = /** @class */ (function () { function RawTransactions(restURL) { this.restURL = restURL; @@ -48,7 +48,7 @@ var RawTransactions = /** @class */ (function () { case 0: _a.trys.push([0, 5, , 6]); if (!(typeof hex === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios.get(this.restURL + "rawtransactions/decodeRawTransaction/" + hex)]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "rawtransactions/decodeRawTransaction/" + hex)]; case 1: response = _a.sent(); return [2 /*return*/, response.data @@ -63,7 +63,7 @@ var RawTransactions = /** @class */ (function () { hexes: hex } }; - return [4 /*yield*/, axios(options)]; + return [4 /*yield*/, axios_1.default(options)]; case 3: response = _a.sent(); return [2 /*return*/, response.data]; @@ -88,7 +88,7 @@ var RawTransactions = /** @class */ (function () { case 0: _a.trys.push([0, 5, , 6]); if (!(typeof script === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios.get(this.restURL + "rawtransactions/decodeScript/" + script)]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "rawtransactions/decodeScript/" + script)]; case 1: response = _a.sent(); return [2 /*return*/, response.data]; @@ -101,7 +101,7 @@ var RawTransactions = /** @class */ (function () { hexes: script } }; - return [4 /*yield*/, axios(options)]; + return [4 /*yield*/, axios_1.default(options)]; case 3: response = _a.sent(); return [2 /*return*/, response.data]; @@ -127,7 +127,7 @@ var RawTransactions = /** @class */ (function () { case 0: _a.trys.push([0, 5, , 6]); if (!(typeof txid === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios.get(this.restURL + "rawtransactions/getRawTransaction/" + txid + "?verbose=" + verbose)]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "rawtransactions/getRawTransaction/" + txid + "?verbose=" + verbose)]; case 1: response = _a.sent(); return [2 /*return*/, response.data]; @@ -141,7 +141,7 @@ var RawTransactions = /** @class */ (function () { verbose: verbose } }; - return [4 /*yield*/, axios(options)]; + return [4 /*yield*/, axios_1.default(options)]; case 3: response = _a.sent(); return [2 /*return*/, response.data]; @@ -167,7 +167,7 @@ var RawTransactions = /** @class */ (function () { case 0: _a.trys.push([0, 5, , 6]); if (!(typeof hex === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios.get(this.restURL + "rawtransactions/sendRawTransaction/" + hex)]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "rawtransactions/sendRawTransaction/" + hex)]; case 1: response = _a.sent(); if (response.data === "66: insufficient priority") { @@ -185,7 +185,7 @@ var RawTransactions = /** @class */ (function () { hexes: hex } }; - return [4 /*yield*/, axios(options)]; + return [4 /*yield*/, axios_1.default(options)]; case 3: response = _a.sent(); return [2 /*return*/, response.data]; diff --git a/lib/Transaction.js b/lib/Transaction.js index d66d8fd2..17ba6990 100644 --- a/lib/Transaction.js +++ b/lib/Transaction.js @@ -35,7 +35,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { } }; Object.defineProperty(exports, "__esModule", { value: true }); -var axios = require("axios"); +var axios_1 = require("axios"); var Transaction = /** @class */ (function () { function Transaction(restURL) { this.restURL = restURL; @@ -48,7 +48,7 @@ var Transaction = /** @class */ (function () { case 0: _a.trys.push([0, 5, , 6]); if (!(typeof txid === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios.get(this.restURL + "transaction/details/" + txid)]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "transaction/details/" + txid)]; case 1: response = _a.sent(); return [2 /*return*/, response.data @@ -63,7 +63,7 @@ var Transaction = /** @class */ (function () { txids: txid } }; - return [4 /*yield*/, axios(options)]; + return [4 /*yield*/, axios_1.default(options)]; case 3: response = _a.sent(); return [2 /*return*/, response.data]; diff --git a/lib/Util.js b/lib/Util.js index a52348a1..8af8c142 100644 --- a/lib/Util.js +++ b/lib/Util.js @@ -35,7 +35,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) { } }; Object.defineProperty(exports, "__esModule", { value: true }); -var axios = require("axios"); +var axios_1 = require("axios"); var Util = /** @class */ (function () { function Util(restURL) { this.restURL = restURL; @@ -48,7 +48,7 @@ var Util = /** @class */ (function () { case 0: _a.trys.push([0, 5, , 6]); if (!(typeof address === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios.get(this.restURL + "util/validateAddress/" + address)]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "util/validateAddress/" + address)]; case 1: response = _a.sent(); return [2 /*return*/, response.data @@ -63,7 +63,7 @@ var Util = /** @class */ (function () { addresses: address } }; - return [4 /*yield*/, axios(options)]; + return [4 /*yield*/, axios_1.default(options)]; case 3: response = _a.sent(); return [2 /*return*/, response.data]; diff --git a/src/Address.ts b/src/Address.ts index 05cd5eb3..ebcd5ddb 100644 --- a/src/Address.ts +++ b/src/Address.ts @@ -1,4 +1,4 @@ -import * as axios from "axios" +import axios from "axios" import * as Bitcoin from "bitcoincashjs-lib" import * as cashaddr from "cashaddrjs" import * as coininfo from "coininfo" @@ -272,7 +272,7 @@ export class Address { try { // Handle single address. if (typeof address === "string") { - const response = await axios.get( + const response: any = await axios.get( `${this.restURL}address/details/${address}` ) @@ -303,7 +303,7 @@ export class Address { try { // Handle single address. if (typeof address === "string") { - const response = await axios.get( + const response: any = await axios.get( `${this.restURL}address/utxo/${address}` ) return response.data @@ -331,7 +331,7 @@ export class Address { try { // Handle single address. if (typeof address === "string") { - const response = await axios.get( + const response: any = await axios.get( `${this.restURL}address/unconfirmed/${address}` ) return response.data @@ -361,7 +361,7 @@ export class Address { try { // Handle single address. if (typeof address === "string") { - const response = await axios.get( + const response: any = await axios.get( `${this.restURL}address/transactions/${address}` ) return response.data diff --git a/src/Block.ts b/src/Block.ts index b0ae8acd..7cb1d8be 100644 --- a/src/Block.ts +++ b/src/Block.ts @@ -1,4 +1,4 @@ -import * as axios from "axios" +import axios from "axios" export class Block { restURL: string @@ -10,7 +10,7 @@ export class Block { try { // Single block if (typeof id === "number") { - const response = await axios.get( + const response: any = await axios.get( `${this.restURL}block/detailsByHeight/${id}` ) return response.data @@ -40,7 +40,7 @@ export class Block { try { // Single block if (typeof hash === "string") { - const response = await axios.get( + const response: any = await axios.get( `${this.restURL}block/detailsByHash/${hash}` ) return response.data diff --git a/src/Blockchain.ts b/src/Blockchain.ts index c0819e1e..0216cca1 100644 --- a/src/Blockchain.ts +++ b/src/Blockchain.ts @@ -3,7 +3,7 @@ - Add blockhash functionality back into getTxOutProof */ -import * as axios from "axios" +import axios from "axios" export class Blockchain { restURL: string @@ -13,7 +13,7 @@ export class Blockchain { async getBestBlockHash() { try { - const response = await axios.get( + const response: any = await axios.get( `${this.restURL}blockchain/getBestBlockHash` ) return response.data @@ -25,7 +25,7 @@ export class Blockchain { async getBlock(blockhash, verbose = true) { try { - const response = await axios.get( + const response: any = await axios.get( `${this.restURL}blockchain/getBlock/${blockhash}?verbose=${verbose}` ) return response.data @@ -37,7 +37,7 @@ export class Blockchain { async getBlockchainInfo() { try { - const response = await axios.get( + const response: any = await axios.get( `${this.restURL}blockchain/getBlockchainInfo` ) return response.data @@ -49,7 +49,7 @@ export class Blockchain { async getBlockCount() { try { - const response = await axios.get( + const response: any = await axios.get( `${this.restURL}blockchain/getBlockCount` ) return response.data @@ -63,7 +63,7 @@ export class Blockchain { if (typeof height !== "string") height = JSON.stringify(height) try { - const response = await axios.get( + const response: any = await axios.get( `${this.restURL}blockchain/getBlockHash/${height}` ) return response.data @@ -77,7 +77,7 @@ export class Blockchain { try { // Handle single hash. if (typeof hash === "string") { - const response = await axios.get( + const response: any = await axios.get( `${this.restURL}blockchain/getBlockHeader/${hash}?verbose=${verbose}` ) @@ -107,7 +107,7 @@ export class Blockchain { async getChainTips() { try { - const response = await axios.get(`${this.restURL}blockchain/getChainTips`) + const response: any = await axios.get(`${this.restURL}blockchain/getChainTips`) return response.data } catch (error) { if (error.response && error.response.data) throw error.response.data @@ -117,7 +117,7 @@ export class Blockchain { async getDifficulty() { try { - const response = await axios.get( + const response: any = await axios.get( `${this.restURL}blockchain/getDifficulty` ) return response.data @@ -131,7 +131,7 @@ export class Blockchain { if (typeof txid !== "string") txid = JSON.stringify(txid) try { - const response = await axios.get( + const response: any = await axios.get( `${ this.restURL }blockchain/getMempoolAncestors/${txid}?verbose=${verbose}` @@ -147,7 +147,7 @@ export class Blockchain { if (typeof txid !== "string") txid = JSON.stringify(txid) try { - const response = await axios.get( + const response: any = await axios.get( `${ this.restURL }blockchain/getMempoolDescendants/${txid}?verbose=${verbose}` @@ -164,7 +164,7 @@ export class Blockchain { try { if (typeof txid === "string") { - const response = await axios.get( + const response: any = await axios.get( `${this.restURL}blockchain/getMempoolEntry/${txid}` ) @@ -191,7 +191,7 @@ export class Blockchain { async getMempoolInfo() { try { - const response = await axios.get( + const response: any = await axios.get( `${this.restURL}blockchain/getMempoolInfo` ) return response.data @@ -203,7 +203,7 @@ export class Blockchain { async getRawMempool(verbose = false) { try { - const response = await axios.get( + const response: any = await axios.get( `${this.restURL}blockchain/getRawMempool?vebose=${verbose}` ) return response.data @@ -215,7 +215,7 @@ export class Blockchain { async getTxOut(txid, n, include_mempool = true) { try { - const response = await axios.get( + const response: any = await axios.get( `${ this.restURL }blockchain/getTxOut/${txid}/n?include_mempool=${include_mempool}` @@ -234,7 +234,7 @@ export class Blockchain { const path = `${this.restURL}blockchain/getTxOutProof/${txids}` //if (blockhash) path = `${path}?blockhash=${blockhash}` - const response = await axios.get(path) + const response: any = await axios.get(path) return response.data // Array of txids. @@ -260,7 +260,7 @@ export class Blockchain { async preciousBlock(blockhash) { try { - const response = await axios.get( + const response: any = await axios.get( `${this.restURL}blockchain/preciousBlock/${blockhash}` ) return response.data @@ -284,7 +284,7 @@ export class Blockchain { async verifyChain(checklevel = 3, nblocks = 6) { try { - const response = await axios.get( + const response: any = await axios.get( `${ this.restURL }blockchain/verifyChain?checklevel=${checklevel}&nblocks=${nblocks}` @@ -300,7 +300,7 @@ export class Blockchain { try { // Single block if (typeof proof === "string") { - const response = await axios.get( + const response: any = await axios.get( `${this.restURL}blockchain/verifyTxOutProof/${proof}` ) return response.data diff --git a/src/Control.ts b/src/Control.ts index c525f25f..3f4baa94 100644 --- a/src/Control.ts +++ b/src/Control.ts @@ -1,4 +1,4 @@ -import * as axios from "axios" +import axios from "axios" export class Control { restURL: string @@ -8,7 +8,7 @@ export class Control { async getInfo() { try { - const response = await axios.get(`${this.restURL}control/getInfo`) + const response: any = await axios.get(`${this.restURL}control/getInfo`) return response.data } catch (error) { if (error.response && error.response.data) throw error.response.data @@ -18,7 +18,7 @@ export class Control { async getMemoryInfo() { try { - const response = await axios.get(`${this.restURL}control/getMemoryInfo`) + const response: any = await axios.get(`${this.restURL}control/getMemoryInfo`) return response.data } catch (error) { if (error.response && error.response.data) throw error.response.data diff --git a/src/Generating.ts b/src/Generating.ts index 72b988df..a85dff40 100644 --- a/src/Generating.ts +++ b/src/Generating.ts @@ -1,4 +1,4 @@ -import * as axios from "axios" +import axios from "axios" export class Generating { restURL: string @@ -6,9 +6,13 @@ export class Generating { this.restURL = restURL } - async generateToAddress(blocks, address, maxtries = 1000000) { + async generateToAddress( + blocks: any, + address: any, + maxtries: number = 1000000 + ): Promise { try { - const response = await axios.post( + const response: any = await axios.post( `${ this.restURL }generating/generateToAddress/${blocks}/${address}?maxtries=${maxtries}` diff --git a/src/Mining.ts b/src/Mining.ts index f9aebeb0..a9e59a24 100644 --- a/src/Mining.ts +++ b/src/Mining.ts @@ -1,4 +1,4 @@ -import * as axios from "axios" +import axios from "axios" export class Mining { restURL: string @@ -6,9 +6,9 @@ export class Mining { this.restURL = restURL } - async getBlockTemplate(template_request) { + async getBlockTemplate(template_request: any): Promise { try { - const response = await axios.get( + const response: any = await axios.get( `${this.restURL}mining/getBlockTemplate/${template_request}` ) return response.data @@ -18,9 +18,11 @@ export class Mining { } } - async getMiningInfo() { + async getMiningInfo(): Promise { try { - const response = await axios.get(`${this.restURL}mining/getMiningInfo`) + const response: any = await axios.get( + `${this.restURL}mining/getMiningInfo` + ) return response.data } catch (error) { if (error.response && error.response.data) throw error.response.data @@ -28,9 +30,12 @@ export class Mining { } } - async getNetworkHashps(nblocks = 120, height = 1) { + async getNetworkHashps( + nblocks: number = 120, + height: number = 1 + ): Promise { try { - const response = await axios.get( + const response: any = await axios.get( `${ this.restURL }mining/getNetworkHashps?nblocks=${nblocks}&height=${height}` @@ -42,12 +47,12 @@ export class Mining { } } - async submitBlock(hex, parameters) { - let path = `${this.restURL}mining/submitBlock/${hex}` + async submitBlock(hex: string, parameters: any): Promise { + let path: string = `${this.restURL}mining/submitBlock/${hex}` if (parameters) path = `${path}?parameters=${parameters}` try { - const response = await axios.post(path) + const response: any = await axios.post(path) return response.data } catch (error) { if (error.response && error.response.data) throw error.response.data diff --git a/src/Mnemonic.ts b/src/Mnemonic.ts index a2b106ac..9ef22f84 100644 --- a/src/Mnemonic.ts +++ b/src/Mnemonic.ts @@ -115,9 +115,9 @@ export class Mnemonic { * @return Object the final object. */ -const _extend = function(dst) { - const sources = Array.prototype.slice.call(arguments, 1) - for (let i = 0; i < sources.length; ++i) { +const _extend: any = function(dst: any): any { + const sources: any = Array.prototype.slice.call(arguments, 1) + for (let i: number = 0; i < sources.length; ++i) { const src = sources[i] for (const p in src) if (src.hasOwnProperty(p)) dst[p] = src[p] } @@ -128,7 +128,7 @@ const _extend = function(dst) { * Defer execution of given function. * @param {Function} func */ -const _defer = function(func) { +const _defer: any = function(func: any): any { if (typeof setImmediate === "function") return setImmediate(func) return setTimeout(func, 0) @@ -137,7 +137,7 @@ const _defer = function(func) { /** * Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance. */ -var Levenshtein = { +var Levenshtein: any = { /** * Calculate levenshtein distance of the two strings. * @@ -145,14 +145,14 @@ var Levenshtein = { * @param str2 String the second string. * @return Integer the levenshtein distance (0 and above). */ - get: function(str1, str2) { + get: function(str1: any, str2: any) { // base cases if (str1 === str2) return 0 if (str1.length === 0) return str2.length if (str2.length === 0) return str1.length // two rows - let prevRow = new Array(str2.length + 1), + let prevRow: any[] = new Array(str2.length + 1), curCol, nextCol, i, @@ -199,7 +199,7 @@ var Levenshtein = { * @param [options] Object additional options. * @param [options.progress] Function progress callback with signature: function(percentComplete) */ - getAsync: function(str1, str2, cb, options) { + getAsync: function(str1: any, str2: any, cb: any, options: any) { options = _extend( {}, { @@ -214,14 +214,14 @@ var Levenshtein = { if (str2.length === 0) return cb(null, str1.length) // two rows - let prevRow = new Array(str2.length + 1), - curCol, - nextCol, - i, - j, - tmp, - startTime, - currentTime + const prevRow: any[] = new Array(str2.length + 1) + let curCol: any + let nextCol: any + let i: any + let j: any + let tmp: any + let startTime: any + let currentTime: any // initialise previous row for (i = 0; i < prevRow.length; ++i) prevRow[i] = i diff --git a/src/Price.ts b/src/Price.ts index 8b767a1a..1b9088d8 100644 --- a/src/Price.ts +++ b/src/Price.ts @@ -1,9 +1,9 @@ -import * as axios from "axios" +import axios from "axios" export class Price { async current(currency: string = "usd"): Promise { try { - const response = await axios.get( + const response: any = await axios.get( `https://index-api.bitcoin.com/api/v0/cash/price/${currency.toLowerCase()}` ) return response.data.price diff --git a/src/RawTransactions.ts b/src/RawTransactions.ts index 46f6938c..d42cda94 100644 --- a/src/RawTransactions.ts +++ b/src/RawTransactions.ts @@ -1,4 +1,4 @@ -import * as axios from "axios" +import axios from "axios" export class RawTransactions { restURL: string @@ -10,7 +10,7 @@ export class RawTransactions { try { // Single hex if (typeof hex === "string") { - const response = await axios.get( + const response: any = await axios.get( `${this.restURL}rawtransactions/decodeRawTransaction/${hex}` ) @@ -42,7 +42,7 @@ export class RawTransactions { try { if (typeof script === "string") { - const response = await axios.get( + const response: any = await axios.get( `${this.restURL}rawtransactions/decodeScript/${script}` ) @@ -73,7 +73,7 @@ export class RawTransactions { ): Promise { try { if (typeof txid === "string") { - const response = await axios.get( + const response: any = await axios.get( `${ this.restURL }rawtransactions/getRawTransaction/${txid}?verbose=${verbose}` @@ -108,7 +108,7 @@ export class RawTransactions { try { // Single tx hex. if (typeof hex === "string") { - const response = await axios.get( + const response: any = await axios.get( `${this.restURL}rawtransactions/sendRawTransaction/${hex}` ) diff --git a/src/Transaction.ts b/src/Transaction.ts index 265e444f..c372bbde 100644 --- a/src/Transaction.ts +++ b/src/Transaction.ts @@ -1,5 +1,5 @@ import * as Bitcoin from "bitcoincashjs-lib" -import * as axios from "axios" +import axios from "axios" export class Transaction { restURL: string @@ -11,7 +11,7 @@ export class Transaction { try { // Handle single address. if (typeof txid === "string") { - const response = await axios.get( + const response: any = await axios.get( `${this.restURL}transaction/details/${txid}` ) return response.data diff --git a/src/Util.ts b/src/Util.ts index 86492bae..e7c63ccc 100644 --- a/src/Util.ts +++ b/src/Util.ts @@ -1,4 +1,4 @@ -import * as axios from "axios" +import axios from "axios" export class Util { restURL: string @@ -10,7 +10,7 @@ export class Util { try { // Single block if (typeof address === "string") { - const response = await axios.get( + const response: any = await axios.get( `${this.restURL}util/validateAddress/${address}` ) return response.data From a9650c928cdcde9353b9a73a4c167acc1fde1ebc Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 8 May 2019 10:39:01 +0900 Subject: [PATCH 278/480] .ts --- src/ECPair.ts | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/ECPair.ts b/src/ECPair.ts index dab92cb6..083318a9 100644 --- a/src/ECPair.ts +++ b/src/ECPair.ts @@ -2,17 +2,17 @@ import * as Bitcoin from "bitcoincashjs-lib" import * as coininfo from "coininfo" export class ECPair { - static setAddress(address: any) { + static setAddress(address: any): void { ECPair._address = address } - static fromWIF(privateKeyWIF) { - let network + static fromWIF(privateKeyWIF: string): any { + let network: string if (privateKeyWIF[0] === "L" || privateKeyWIF[0] === "K") network = "mainnet" else if (privateKeyWIF[0] === "c") network = "testnet" - let bitcoincash + let bitcoincash: any if (network === "mainnet") bitcoincash = coininfo.bitcoincash.main else bitcoincash = coininfo.bitcoincash.test @@ -21,31 +21,31 @@ export class ECPair { return Bitcoin.ECPair.fromWIF(privateKeyWIF, bitcoincashBitcoinJSLib) } - static toWIF(ecpair) { + static toWIF(ecpair: any): string { return ecpair.toWIF() } - static sign(ecpair, buffer) { + static sign(ecpair: any, buffer: any): any { return ecpair.sign(buffer) } - static verify(ecpair, buffer, signature) { + static verify(ecpair: any, buffer: any, signature: any): any { return ecpair.verify(buffer, signature) } - static fromPublicKey(pubkeyBuffer) { + static fromPublicKey(pubkeyBuffer: any): any { return Bitcoin.ECPair.fromPublicKeyBuffer(pubkeyBuffer) } - static toPublicKey(ecpair) { + static toPublicKey(ecpair: any): any { return ecpair.getPublicKeyBuffer() } - static toLegacyAddress(ecpair) { + static toLegacyAddress(ecpair: any): string { return ecpair.getAddress() } - static toCashAddress(ecpair, regtest = false) { + static toCashAddress(ecpair: any, regtest: boolean = false): string { return ECPair._address.toCashAddress(ecpair.getAddress(), true, regtest) } } From cdda7e7174ec9a3a5e1dbd85b9e6843920acdfe0 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 8 May 2019 10:45:14 +0900 Subject: [PATCH 279/480] Fix dem .ts warning. --- src/Blockchain.ts | 57 ++++++++++++++++++++++++++++++----------------- src/ECPair.ts | 1 + src/HDNode.ts | 4 ++-- 3 files changed, 39 insertions(+), 23 deletions(-) diff --git a/src/Blockchain.ts b/src/Blockchain.ts index 0216cca1..067a5230 100644 --- a/src/Blockchain.ts +++ b/src/Blockchain.ts @@ -6,12 +6,12 @@ import axios from "axios" export class Blockchain { - restURL: string + restURL: any constructor(restURL: string) { this.restURL = restURL } - async getBestBlockHash() { + async getBestBlockHash(): Promise { try { const response: any = await axios.get( `${this.restURL}blockchain/getBestBlockHash` @@ -23,7 +23,7 @@ export class Blockchain { } } - async getBlock(blockhash, verbose = true) { + async getBlock(blockhash: string, verbose: boolean = true): Promise { try { const response: any = await axios.get( `${this.restURL}blockchain/getBlock/${blockhash}?verbose=${verbose}` @@ -35,7 +35,7 @@ export class Blockchain { } } - async getBlockchainInfo() { + async getBlockchainInfo(): Promise { try { const response: any = await axios.get( `${this.restURL}blockchain/getBlockchainInfo` @@ -47,7 +47,7 @@ export class Blockchain { } } - async getBlockCount() { + async getBlockCount(): Promise { try { const response: any = await axios.get( `${this.restURL}blockchain/getBlockCount` @@ -59,7 +59,7 @@ export class Blockchain { } } - async getBlockHash(height = 1) { + async getBlockHash(height: number = 1): Promise { if (typeof height !== "string") height = JSON.stringify(height) try { @@ -73,7 +73,10 @@ export class Blockchain { } } - async getBlockHeader(hash, verbose = true) { + async getBlockHeader( + hash: string | string[], + verbose: boolean = true + ): Promise { try { // Handle single hash. if (typeof hash === "string") { @@ -105,9 +108,11 @@ export class Blockchain { } } - async getChainTips() { + async getChainTips(): Promise { try { - const response: any = await axios.get(`${this.restURL}blockchain/getChainTips`) + const response: any = await axios.get( + `${this.restURL}blockchain/getChainTips` + ) return response.data } catch (error) { if (error.response && error.response.data) throw error.response.data @@ -115,7 +120,7 @@ export class Blockchain { } } - async getDifficulty() { + async getDifficulty(): Promise { try { const response: any = await axios.get( `${this.restURL}blockchain/getDifficulty` @@ -127,7 +132,10 @@ export class Blockchain { } } - async getMempoolAncestors(txid, verbose = false) { + async getMempoolAncestors( + txid: string, + verbose: boolean = false + ): Promise { if (typeof txid !== "string") txid = JSON.stringify(txid) try { @@ -143,7 +151,10 @@ export class Blockchain { } } - async getMempoolDescendants(txid, verbose = false) { + async getMempoolDescendants( + txid: string, + verbose: boolean = false + ): Promise { if (typeof txid !== "string") txid = JSON.stringify(txid) try { @@ -159,7 +170,7 @@ export class Blockchain { } } - async getMempoolEntry(txid) { + async getMempoolEntry(txid: string): Promise { //if (typeof txid !== "string") txid = JSON.stringify(txid) try { @@ -189,7 +200,7 @@ export class Blockchain { } } - async getMempoolInfo() { + async getMempoolInfo(): Promise { try { const response: any = await axios.get( `${this.restURL}blockchain/getMempoolInfo` @@ -201,7 +212,7 @@ export class Blockchain { } } - async getRawMempool(verbose = false) { + async getRawMempool(verbose: boolean = false): Promise { try { const response: any = await axios.get( `${this.restURL}blockchain/getRawMempool?vebose=${verbose}` @@ -213,7 +224,11 @@ export class Blockchain { } } - async getTxOut(txid, n, include_mempool = true) { + async getTxOut( + txid: string, + n: any, + include_mempool: boolean = true + ): Promise { try { const response: any = await axios.get( `${ @@ -227,7 +242,7 @@ export class Blockchain { } } - async getTxOutProof(txids) { + async getTxOutProof(txids: string | string[]): Promise { try { // Single txid. if (typeof txids === "string") { @@ -258,7 +273,7 @@ export class Blockchain { } } - async preciousBlock(blockhash) { + async preciousBlock(blockhash: string): Promise { try { const response: any = await axios.get( `${this.restURL}blockchain/preciousBlock/${blockhash}` @@ -270,7 +285,7 @@ export class Blockchain { } } - async pruneBlockchain(height) { + async pruneBlockchain(height: number): Promise { try { const response = await axios.post( `${this.restURL}blockchain/pruneBlockchain/${height}` @@ -282,7 +297,7 @@ export class Blockchain { } } - async verifyChain(checklevel = 3, nblocks = 6) { + async verifyChain(checklevel: number = 3, nblocks: number = 6): Promise { try { const response: any = await axios.get( `${ @@ -296,7 +311,7 @@ export class Blockchain { } } - async verifyTxOutProof(proof) { + async verifyTxOutProof(proof: any | any[]): Promise { try { // Single block if (typeof proof === "string") { diff --git a/src/ECPair.ts b/src/ECPair.ts index 083318a9..58878e3a 100644 --- a/src/ECPair.ts +++ b/src/ECPair.ts @@ -2,6 +2,7 @@ import * as Bitcoin from "bitcoincashjs-lib" import * as coininfo from "coininfo" export class ECPair { + _address: any static setAddress(address: any): void { ECPair._address = address } diff --git a/src/HDNode.ts b/src/HDNode.ts index f77a993b..8c6c90e3 100644 --- a/src/HDNode.ts +++ b/src/HDNode.ts @@ -3,7 +3,7 @@ import * as coininfo from "coininfo" import * as bip32utils from "bip32-utils" export class HDNode { - _address: string + _address: any constructor(address: any) { this._address = address } @@ -105,7 +105,7 @@ export class HDNode { createAccount(hdNodes: any): any { const arr = hdNodes.map( - (item, index) => new bip32utils.Chain(item.neutered()) + (item: any, index: number) => new bip32utils.Chain(item.neutered()) ) return new bip32utils.Account(arr) } From 8667dd747f40ca98103d874e044d67ac8c58943c Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 8 May 2019 10:56:01 +0900 Subject: [PATCH 280/480] typescript fixes. --- src/BitcoinCash.ts | 53 +++++++++++++++++++++++++--------------------- src/Block.ts | 4 ++-- src/Crypto.ts | 10 ++++----- 3 files changed, 36 insertions(+), 31 deletions(-) diff --git a/src/BitcoinCash.ts b/src/BitcoinCash.ts index 0fa0bc0b..72381109 100644 --- a/src/BitcoinCash.ts +++ b/src/BitcoinCash.ts @@ -16,23 +16,23 @@ export class BitcoinCash { } // Translate coins to satoshi value - toSatoshi(coins) { + toSatoshi(coins: number): number { return sb.toSatoshi(coins) } // Translate satoshi to coin value - toBitcoinCash(satoshis) { + toBitcoinCash(satoshis: number): number { return sb.toBitcoin(satoshis) } // Translate satoshi to bits denomination - toBits(satoshis) { + toBits(satoshis: number): number { return parseFloat(satoshis) / 100 } // Translate satoshi to bits denomination // TODO remove in 2.0 - satsToBits(satoshis) { + satsToBits(satoshis: number): number { return parseFloat(satoshis) / 100 } @@ -54,25 +54,26 @@ export class BitcoinCash { // } // sign message - signMessageWithPrivKey(privateKeyWIF, message) { - const network = privateKeyWIF.charAt(0) === "c" ? "testnet" : "mainnet" - let bitcoincash + signMessageWithPrivKey(privateKeyWIF: string, message: string): string { + const network: string = + privateKeyWIF.charAt(0) === "c" ? "testnet" : "mainnet" + let bitcoincash: any if (network === "mainnet") bitcoincash = coininfo.bitcoincash.main else bitcoincash = coininfo.bitcoincash.test - const bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS() - const keyPair = Bitcoin.ECPair.fromWIF( + const bitcoincashBitcoinJSLib: any = bitcoincash.toBitcoinJS() + const keyPair: any = Bitcoin.ECPair.fromWIF( privateKeyWIF, bitcoincashBitcoinJSLib ) - const privateKey = keyPair.d.toBuffer(32) + const privateKey: any = keyPair.d.toBuffer(32) return bitcoinMessage .sign(message, privateKey, keyPair.compressed) .toString("base64") } // verify message - verifyMessage(address, signature, message) { + verifyMessage(address: string, signature: string, message: string): boolean { return bitcoinMessage.verify( message, this._address.toLegacyAddress(address), @@ -81,17 +82,17 @@ export class BitcoinCash { } // encode base58Check - encodeBase58Check(hex) { + encodeBase58Check(hex: string): string { return bs58.encode(Buffer.from(hex, "hex")) } // decode base58Check - decodeBase58Check(address) { + decodeBase58Check(address: string): string { return bs58.decode(address).toString("hex") } // encode bip21 url - encodeBIP21(address, options, regtest = false) { + encodeBIP21(address: string, options: any, regtest: boolean = false): string { return bip21.encode( this._address.toCashAddress(address, true, regtest), options @@ -99,16 +100,16 @@ export class BitcoinCash { } // decode bip21 url - decodeBIP21(url) { + decodeBIP21(url: string): any { return bip21.decode(url) } - getByteCount(inputs, outputs) { + getByteCount(inputs: any, outputs: any): number { // from https://github.com/bitcoinjs/bitcoinjs-lib/issues/921#issuecomment-354394004 - let totalWeight = 0 - let hasWitness = false + let totalWeight: number = 0 + let hasWitness: boolean = false // assumes compressed pubkeys in all cases. - const types = { + const types: any = { inputs: { "MULTISIG-P2SH": 49 * 4, "MULTISIG-P2WSH": 6 + 41 * 4, @@ -155,15 +156,19 @@ export class BitcoinCash { return Math.ceil(totalWeight / 4) } - encryptBIP38(privKeyWIF, passphrase) { - const decoded = wif.decode(privKeyWIF) + encryptBIP38(privKeyWIF: string, passphrase: string): string { + const decoded: any = wif.decode(privKeyWIF) return bip38.encrypt(decoded.privateKey, decoded.compressed, passphrase) } - decryptBIP38(encryptedKey, passphrase, network = "mainnet") { - const decryptedKey = bip38.decrypt(encryptedKey, passphrase) - let prefix + decryptBIP38( + encryptedKey: string, + passphrase: string, + network: string = "mainnet" + ): string { + const decryptedKey: any = bip38.decrypt(encryptedKey, passphrase) + let prefix: any if (network === "testnet") prefix = 0xef else prefix = 0x80 diff --git a/src/Block.ts b/src/Block.ts index 7cb1d8be..f6d10440 100644 --- a/src/Block.ts +++ b/src/Block.ts @@ -6,7 +6,7 @@ export class Block { this.restURL = restURL } - async detailsByHeight(id) { + async detailsByHeight(id: number | number[]): Promise { try { // Single block if (typeof id === "number") { @@ -36,7 +36,7 @@ export class Block { } } - async detailsByHash(hash) { + async detailsByHash(hash: string | string[]): Promise { try { // Single block if (typeof hash === "string") { diff --git a/src/Crypto.ts b/src/Crypto.ts index b9c9be4e..f4d2961f 100644 --- a/src/Crypto.ts +++ b/src/Crypto.ts @@ -2,23 +2,23 @@ import * as randomBytes from "randombytes" import * as Bitcoin from "bitcoincashjs-lib" export class Crypto { - static sha256(buffer) { + static sha256(buffer: any): any { return Bitcoin.crypto.sha256(buffer) } - static ripemd160(buffer) { + static ripemd160(buffer: any): any { return Bitcoin.crypto.ripemd160(buffer) } - static hash256(buffer) { + static hash256(buffer: any): any { return Bitcoin.crypto.hash256(buffer) } - static hash160(buffer) { + static hash160(buffer: any): any { return Bitcoin.crypto.hash160(buffer) } - static randomBytes(size = 16) { + static randomBytes(size: number = 16): any { return randomBytes(size) } } From 3cd91dd20b0d5a7ad5f55f9a3550dc2650e770e4 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 8 May 2019 11:05:33 +0900 Subject: [PATCH 281/480] Fixing typescript warnings. --- src/Address.ts | 109 ++++++++++++++++++++++++--------------------- src/BitcoinCash.ts | 2 +- src/Blockchain.ts | 2 +- 3 files changed, 60 insertions(+), 53 deletions(-) diff --git a/src/Address.ts b/src/Address.ts index ebcd5ddb..e01bcb3b 100644 --- a/src/Address.ts +++ b/src/Address.ts @@ -10,10 +10,10 @@ export class Address { } // Translate address from any address format into a specific format. - toLegacyAddress(address) { + toLegacyAddress(address: string): string { const { prefix, type, hash } = this._decode(address) - let bitcoincash + let bitcoincash: any switch (prefix) { case "bitcoincash": bitcoincash = coininfo.bitcoincash.main @@ -28,7 +28,7 @@ export class Address { throw `unsupported prefix : ${prefix}` } - let version + let version: any switch (type) { case "P2PKH": version = bitcoincash.versions.public @@ -40,19 +40,23 @@ export class Address { throw `unsupported address type : ${type}` } - const hashBuf = Buffer.from(hash) + const hashBuf: any = Buffer.from(hash) return Bitcoin.address.toBase58Check(hashBuf, version) } - toCashAddress(address, prefix = true, regtest = false) { + toCashAddress( + address: string, + prefix: boolean = true, + regtest: boolean = false + ): string { const decoded = this._decode(address) - let prefixString + let prefixString: string if (regtest) prefixString = "bchreg" else prefixString = decoded.prefix - const cashAddress = cashaddr.encode( + const cashAddress: string = cashaddr.encode( prefixString, decoded.type, decoded.hash @@ -63,14 +67,17 @@ export class Address { } // Converts any address format to hash160 - toHash160(address) { + toHash160(address: string): string { const legacyAddress = this.toLegacyAddress(address) const bytes = Bitcoin.address.fromBase58Check(legacyAddress) return bytes.hash.toString("hex") } // Converts hash160 to Legacy Address - hash160ToLegacy(hash160, network = Bitcoin.networks.bitcoin.pubKeyHash) { + hash160ToLegacy( + hash160: any, + network: any = Bitcoin.networks.bitcoin.pubKeyHash + ): string { const buffer = Buffer.from(hash160, "hex") const legacyAddress = Bitcoin.address.toBase58Check(buffer, network) return legacyAddress @@ -78,15 +85,15 @@ export class Address { // Converts hash160 to Cash Address hash160ToCash( - hash160, - network = Bitcoin.networks.bitcoin.pubKeyHash, - regtest = false - ) { + hash160: any, + network: any = Bitcoin.networks.bitcoin.pubKeyHash, + regtest: boolean = false + ): string { const legacyAddress = this.hash160ToLegacy(hash160, network) return this.toCashAddress(legacyAddress, true, regtest) } - _decode(address) { + _decode(address: string): any { try { return this._decodeLegacyAddress(address) } catch (error) {} @@ -102,7 +109,7 @@ export class Address { throw new Error(`Unsupported address format : ${address}`) } - _decodeLegacyAddress(address) { + _decodeLegacyAddress(address: any): any { const { version, hash } = Bitcoin.address.fromBase58Check(address) const info = coininfo.bitcoincash @@ -140,17 +147,17 @@ export class Address { } } - _decodeCashAddress(address) { + _decodeCashAddress(address: string): any { if (address.indexOf(":") !== -1) { const decoded = cashaddr.decode(address) decoded.format = "cashaddr" return decoded } - const prefixes = ["bitcoincash", "bchtest", "bchreg"] - for (let i = 0; i < prefixes.length; ++i) { + const prefixes: string[] = ["bitcoincash", "bchtest", "bchreg"] + for (let i: number = 0; i < prefixes.length; ++i) { try { - const decoded = cashaddr.decode(`${prefixes[i]}:${address}`) + const decoded: any = cashaddr.decode(`${prefixes[i]}:${address}`) decoded.format = "cashaddr" return decoded } catch (error) {} @@ -159,7 +166,7 @@ export class Address { throw new Error(`Invalid format : ${address}`) } - _encodeAddressFromHash160(address) { + _encodeAddressFromHash160(address: string): any { try { return { legacyAddress: this.hash160ToLegacy(address), @@ -172,55 +179,55 @@ export class Address { } // Test for address format. - isLegacyAddress(address) { + isLegacyAddress(address: string): boolean { return this.detectAddressFormat(address) === "legacy" } - isCashAddress(address) { + isCashAddress(address: string): boolean { return this.detectAddressFormat(address) === "cashaddr" } - isHash160(address) { + isHash160(address: string): boolean { return this.detectAddressFormat(address) === "hash160" } // Test for address network. - isMainnetAddress(address) { + isMainnetAddress(address: string): boolean { if (address[0] === "x") return true else if (address[0] === "t") return false return this.detectAddressNetwork(address) === "mainnet" } - isTestnetAddress(address) { + isTestnetAddress(address: string): boolean { if (address[0] === "x") return false else if (address[0] === "t") return true return this.detectAddressNetwork(address) === "testnet" } - isRegTestAddress(address) { + isRegTestAddress(address: string): boolean { return this.detectAddressNetwork(address) === "regtest" } // Test for address type. - isP2PKHAddress(address) { + isP2PKHAddress(address: string): boolean { return this.detectAddressType(address) === "p2pkh" } - isP2SHAddress(address) { + isP2SHAddress(address: string): boolean { return this.detectAddressType(address) === "p2sh" } // Detect address format. - detectAddressFormat(address) { - const decoded = this._decode(address) + detectAddressFormat(address: string): string { + const decoded: any = this._decode(address) return decoded.format } // Detect address network. - detectAddressNetwork(address) { + detectAddressNetwork(address: string): string { if (address[0] === "x") return "mainnet" else if (address[0] === "t") return "testnet" @@ -239,27 +246,27 @@ export class Address { } // Detect address type. - detectAddressType(address) { - const decoded = this._decode(address) + detectAddressType(address: string): string { + const decoded: any = this._decode(address) return decoded.type.toLowerCase() } - fromXPub(xpub, path = "0/0") { - const HDNode = Bitcoin.HDNode.fromBase58( + fromXPub(xpub: string, path: string = "0/0"): string { + const HDNode: any = Bitcoin.HDNode.fromBase58( xpub, Bitcoin.networks[this.detectAddressNetwork(xpub)] ) - const address = HDNode.derivePath(path) + const address: any = HDNode.derivePath(path) return this.toCashAddress(address.getAddress()) } - fromOutputScript(scriptPubKey, network = "mainnet") { - let netParam + fromOutputScript(scriptPubKey: any, network: string = "mainnet"): string { + let netParam: any if (network !== "bitcoincash" && network !== "mainnet") netParam = Bitcoin.networks.testnet - const regtest = network === "bchreg" + const regtest: boolean = network === "bchreg" return this.toCashAddress( Bitcoin.address.fromOutputScript(scriptPubKey, netParam), @@ -268,7 +275,7 @@ export class Address { ) } - async details(address) { + async details(address: string | string[]): Promise { try { // Handle single address. if (typeof address === "string") { @@ -280,14 +287,14 @@ export class Address { // Handle array of addresses. } else if (Array.isArray(address)) { - const options = { + const options: any = { method: "POST", url: `${this.restURL}address/details`, data: { addresses: address } } - const response = await axios(options) + const response: any = await axios(options) return response.data } @@ -299,7 +306,7 @@ export class Address { } } - async utxo(address) { + async utxo(address: string | string[]): Promise { try { // Handle single address. if (typeof address === "string") { @@ -308,14 +315,14 @@ export class Address { ) return response.data } else if (Array.isArray(address)) { - const options = { + const options: any = { method: "POST", url: `${this.restURL}address/utxo`, data: { addresses: address } } - const response = await axios(options) + const response: any = await axios(options) return response.data } @@ -327,7 +334,7 @@ export class Address { } } - async unconfirmed(address) { + async unconfirmed(address: string | string[]) { try { // Handle single address. if (typeof address === "string") { @@ -338,14 +345,14 @@ export class Address { // Handle an array of addresses } else if (Array.isArray(address)) { - const options = { + const options: any = { method: "POST", url: `${this.restURL}address/unconfirmed`, data: { addresses: address } } - const response = await axios(options) + const response: any = await axios(options) return response.data } @@ -357,7 +364,7 @@ export class Address { } } - async transactions(address) { + async transactions(address: string | string[]) { try { // Handle single address. if (typeof address === "string") { @@ -368,14 +375,14 @@ export class Address { // Handle an array of addresses } else if (Array.isArray(address)) { - const options = { + const options: any = { method: "POST", url: `${this.restURL}address/transactions`, data: { addresses: address } } - const response = await axios(options) + const response: any = await axios(options) return response.data } diff --git a/src/BitcoinCash.ts b/src/BitcoinCash.ts index 72381109..22bef952 100644 --- a/src/BitcoinCash.ts +++ b/src/BitcoinCash.ts @@ -10,7 +10,7 @@ import * as wif from "wif" const Buffer = require("safe-buffer").Buffer export class BitcoinCash { - _address: string + _address: any constructor(address: any) { this._address = address } diff --git a/src/Blockchain.ts b/src/Blockchain.ts index 067a5230..8db750dd 100644 --- a/src/Blockchain.ts +++ b/src/Blockchain.ts @@ -59,7 +59,7 @@ export class Blockchain { } } - async getBlockHash(height: number = 1): Promise { + async getBlockHash(height: any = 1): Promise { if (typeof height !== "string") height = JSON.stringify(height) try { From 028f67d97097a8047d85e35e36dbd059f9dcef7e Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 8 May 2019 11:19:10 +0900 Subject: [PATCH 282/480] More .ts fixes. --- package.json | 2 +- src/BitcoinCash.ts | 4 ++-- src/ECPair.ts | 2 +- tsconfig.json | 2 +- yarn.lock | 27 ++++++++++++++------------- 5 files changed, 19 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index d58e85f2..edfa3d0e 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "bip38": "^2.0.2", "bip39": "^2.5.0", "bip66": "^1.1.5", - "bitcoincash-ops": "Bitcoin-com/bitcoincash-ops#2.0.0", + "bitcoincash-ops": "Bitcoin-com/bitcoincash-ops#v2.0.0", "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib#v4.0.0", "bitcoinjs-message": "^2.0.0", "bs58": "^4.0.1", diff --git a/src/BitcoinCash.ts b/src/BitcoinCash.ts index 22bef952..2148636e 100644 --- a/src/BitcoinCash.ts +++ b/src/BitcoinCash.ts @@ -26,13 +26,13 @@ export class BitcoinCash { } // Translate satoshi to bits denomination - toBits(satoshis: number): number { + toBits(satoshis: any): any { return parseFloat(satoshis) / 100 } // Translate satoshi to bits denomination // TODO remove in 2.0 - satsToBits(satoshis: number): number { + satsToBits(satoshis: any): any { return parseFloat(satoshis) / 100 } diff --git a/src/ECPair.ts b/src/ECPair.ts index 58878e3a..e16f0e6d 100644 --- a/src/ECPair.ts +++ b/src/ECPair.ts @@ -2,7 +2,7 @@ import * as Bitcoin from "bitcoincashjs-lib" import * as coininfo from "coininfo" export class ECPair { - _address: any + static _address: any static setAddress(address: any): void { ECPair._address = address } diff --git a/tsconfig.json b/tsconfig.json index cd08dfe0..84d4d555 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { "outDir": "./lib/", - "noImplicitAny": true, + "noImplicitAny": false, "baseUrl": ".", "module": "commonjs", "target": "es5", diff --git a/yarn.lock b/yarn.lock index 6760127a..8d9f1c89 100644 --- a/yarn.lock +++ b/yarn.lock @@ -91,20 +91,20 @@ version "1.1.3" resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" -"@octokit/endpoint@^4.0.0": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-4.2.2.tgz#4ff11382bad89c7e01030a1e62d5e9d13c2402b0" +"@octokit/endpoint@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-5.1.0.tgz#242e32e9d5e2aa9a3075a3de086f198f423d7e39" dependencies: deepmerge "3.2.0" is-plain-object "^3.0.0" universal-user-agent "^2.0.1" url-template "^2.0.8" -"@octokit/request@3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-3.0.1.tgz#21e888c6dce80566ec69477360bab79f2f14861f" +"@octokit/request@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-3.0.2.tgz#dd2424691f486d7ea332ec06e3de55b1ea13c5dc" dependencies: - "@octokit/endpoint" "^4.0.0" + "@octokit/endpoint" "^5.1.0" deprecation "^1.0.1" is-plain-object "^3.0.0" node-fetch "^2.3.0" @@ -112,10 +112,10 @@ universal-user-agent "^2.0.1" "@octokit/rest@^16.13.1": - version "16.25.2" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.25.2.tgz#51fede6d35af5ecc92f1e7feacad89abbcd2b0e8" + version "16.25.3" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.25.3.tgz#ce9e7a6230d20d58574ec929f622f2778ead7eb4" dependencies: - "@octokit/request" "3.0.1" + "@octokit/request" "3.0.2" atob-lite "^2.0.0" before-after-hook "^1.4.0" btoa-lite "^1.0.0" @@ -1331,8 +1331,9 @@ bip66@^1.1.0, bip66@^1.1.3, bip66@^1.1.5: dependencies: safe-buffer "^5.0.1" -bitcoincash-ops@Bitcoin-com/bitcoincash-ops#2.0.0: +bitcoincash-ops@Bitcoin-com/bitcoincash-ops#2.0.0, bitcoincash-ops@Bitcoin-com/bitcoincash-ops#v2.0.0: version "2.0.0" + uid "6ab82cc7326c67236f3b2d9d0457258ac2ef48e3" resolved "https://codeload.github.com/Bitcoin-com/bitcoincash-ops/tar.gz/6ab82cc7326c67236f3b2d9d0457258ac2ef48e3" bitcoincashjs-lib@Bitcoin-com/bitcoincashjs-lib#v4.0.0: @@ -3490,8 +3491,8 @@ glob@7.1.2: path-is-absolute "^1.0.0" glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@~7.1.3: - version "7.1.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" + version "7.1.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" From 9eeea031d447a4af3a279d2669de4bf22816d422 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 8 May 2019 11:28:15 +0900 Subject: [PATCH 283/480] use require syntex for opcodes. --- src/Script.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Script.ts b/src/Script.ts index d177654b..0aed3f58 100644 --- a/src/Script.ts +++ b/src/Script.ts @@ -1,5 +1,5 @@ import * as Bitcoin from "bitcoincashjs-lib" -import * as opcodes from "bitcoincash-ops" +const opcodes = require("bitcoincash-ops") export class Script { opcodes: any From ed5bc5696f067c541cdb20bc91851c2ab3ed3b9d Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 8 May 2019 11:32:16 +0900 Subject: [PATCH 284/480] Bump MAJOR version. --- index.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 51177067..ba5cb326 100755 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOX = require("./lib/BITBOX").BITBOX const clone = require("git-clone") -program.version("6.1.2 ", "-v, --version") +program.version("7.0.0 ", "-v, --version") program .command("new ") diff --git a/package.json b/package.json index edfa3d0e..2053fe20 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "6.1.2", + "version": "7.0.0", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ From a9e134cefebd9604976191d7748a98a64a1417c6 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 8 May 2019 11:38:01 +0900 Subject: [PATCH 285/480] gitignore. --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 6bfb8e49..7d55898e 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ wallet-info.txt wallet.json package-lock.json +lib/* From 94a820674431887f74f010cde069488fc6837e6b Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 8 May 2019 11:39:19 +0900 Subject: [PATCH 286/480] Clean up --- lib/Address.js | 427 --------------------- lib/BITBOX.js | 57 --- lib/BitcoinCash.js | 150 -------- lib/Block.js | 125 ------- lib/Blockchain.js | 575 ----------------------------- lib/Control.js | 91 ----- lib/Crypto.js | 26 -- lib/ECPair.js | 49 --- lib/Generating.js | 69 ---- lib/HDNode.js | 96 ----- lib/Mining.js | 144 -------- lib/Mnemonic.js | 247 ------------- lib/Price.js | 68 ---- lib/RawTransactions.js | 207 ----------- lib/Schnorr.js | 57 --- lib/Script.js | 61 --- lib/Socket.js | 32 -- lib/Transaction.js | 85 ----- lib/TransactionBuilder.js | 79 ---- lib/Util.js | 85 ----- lib/Wallet.js | 10 - lib/interfaces/BITBOXInterfaces.js | 2 - 22 files changed, 2742 deletions(-) delete mode 100644 lib/Address.js delete mode 100644 lib/BITBOX.js delete mode 100644 lib/BitcoinCash.js delete mode 100644 lib/Block.js delete mode 100644 lib/Blockchain.js delete mode 100644 lib/Control.js delete mode 100644 lib/Crypto.js delete mode 100644 lib/ECPair.js delete mode 100644 lib/Generating.js delete mode 100644 lib/HDNode.js delete mode 100644 lib/Mining.js delete mode 100644 lib/Mnemonic.js delete mode 100644 lib/Price.js delete mode 100644 lib/RawTransactions.js delete mode 100644 lib/Schnorr.js delete mode 100644 lib/Script.js delete mode 100644 lib/Socket.js delete mode 100644 lib/Transaction.js delete mode 100644 lib/TransactionBuilder.js delete mode 100644 lib/Util.js delete mode 100644 lib/Wallet.js delete mode 100644 lib/interfaces/BITBOXInterfaces.js diff --git a/lib/Address.js b/lib/Address.js deleted file mode 100644 index 54b8e774..00000000 --- a/lib/Address.js +++ /dev/null @@ -1,427 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var axios_1 = require("axios"); -var Bitcoin = require("bitcoincashjs-lib"); -var cashaddr = require("cashaddrjs"); -var coininfo = require("coininfo"); -var Address = /** @class */ (function () { - function Address(restURL) { - this.restURL = restURL; - } - // Translate address from any address format into a specific format. - Address.prototype.toLegacyAddress = function (address) { - var _a = this._decode(address), prefix = _a.prefix, type = _a.type, hash = _a.hash; - var bitcoincash; - switch (prefix) { - case "bitcoincash": - bitcoincash = coininfo.bitcoincash.main; - break; - case "bchtest": - bitcoincash = coininfo.bitcoincash.test; - break; - case "bchreg": - bitcoincash = coininfo.bitcoincash.regtest; - break; - default: - throw "unsupported prefix : " + prefix; - } - var version; - switch (type) { - case "P2PKH": - version = bitcoincash.versions.public; - break; - case "P2SH": - version = bitcoincash.versions.scripthash; - break; - default: - throw "unsupported address type : " + type; - } - var hashBuf = Buffer.from(hash); - return Bitcoin.address.toBase58Check(hashBuf, version); - }; - Address.prototype.toCashAddress = function (address, prefix, regtest) { - if (prefix === void 0) { prefix = true; } - if (regtest === void 0) { regtest = false; } - var decoded = this._decode(address); - var prefixString; - if (regtest) - prefixString = "bchreg"; - else - prefixString = decoded.prefix; - var cashAddress = cashaddr.encode(prefixString, decoded.type, decoded.hash); - if (prefix) - return cashAddress; - return cashAddress.split(":")[1]; - }; - // Converts any address format to hash160 - Address.prototype.toHash160 = function (address) { - var legacyAddress = this.toLegacyAddress(address); - var bytes = Bitcoin.address.fromBase58Check(legacyAddress); - return bytes.hash.toString("hex"); - }; - // Converts hash160 to Legacy Address - Address.prototype.hash160ToLegacy = function (hash160, network) { - if (network === void 0) { network = Bitcoin.networks.bitcoin.pubKeyHash; } - var buffer = Buffer.from(hash160, "hex"); - var legacyAddress = Bitcoin.address.toBase58Check(buffer, network); - return legacyAddress; - }; - // Converts hash160 to Cash Address - Address.prototype.hash160ToCash = function (hash160, network, regtest) { - if (network === void 0) { network = Bitcoin.networks.bitcoin.pubKeyHash; } - if (regtest === void 0) { regtest = false; } - var legacyAddress = this.hash160ToLegacy(hash160, network); - return this.toCashAddress(legacyAddress, true, regtest); - }; - Address.prototype._decode = function (address) { - try { - return this._decodeLegacyAddress(address); - } - catch (error) { } - try { - return this._decodeCashAddress(address); - } - catch (error) { } - try { - return this._encodeAddressFromHash160(address); - } - catch (error) { } - throw new Error("Unsupported address format : " + address); - }; - Address.prototype._decodeLegacyAddress = function (address) { - var _a = Bitcoin.address.fromBase58Check(address), version = _a.version, hash = _a.hash; - var info = coininfo.bitcoincash; - switch (version) { - case info.main.versions.public: - return { - prefix: "bitcoincash", - type: "P2PKH", - hash: hash, - format: "legacy" - }; - case info.main.versions.scripthash: - return { - prefix: "bitcoincash", - type: "P2SH", - hash: hash, - format: "legacy" - }; - case info.test.versions.public: - return { - prefix: "bchtest", - type: "P2PKH", - hash: hash, - format: "legacy" - }; - case info.test.versions.scripthash: - return { - prefix: "bchtest", - type: "P2SH", - hash: hash, - format: "legacy" - }; - default: - throw new Error("Invalid format : " + address); - } - }; - Address.prototype._decodeCashAddress = function (address) { - if (address.indexOf(":") !== -1) { - var decoded = cashaddr.decode(address); - decoded.format = "cashaddr"; - return decoded; - } - var prefixes = ["bitcoincash", "bchtest", "bchreg"]; - for (var i = 0; i < prefixes.length; ++i) { - try { - var decoded = cashaddr.decode(prefixes[i] + ":" + address); - decoded.format = "cashaddr"; - return decoded; - } - catch (error) { } - } - throw new Error("Invalid format : " + address); - }; - Address.prototype._encodeAddressFromHash160 = function (address) { - try { - return { - legacyAddress: this.hash160ToLegacy(address), - cashAddress: this.hash160ToCash(address), - format: "hash160" - }; - } - catch (error) { } - throw new Error("Invalid format : " + address); - }; - // Test for address format. - Address.prototype.isLegacyAddress = function (address) { - return this.detectAddressFormat(address) === "legacy"; - }; - Address.prototype.isCashAddress = function (address) { - return this.detectAddressFormat(address) === "cashaddr"; - }; - Address.prototype.isHash160 = function (address) { - return this.detectAddressFormat(address) === "hash160"; - }; - // Test for address network. - Address.prototype.isMainnetAddress = function (address) { - if (address[0] === "x") - return true; - else if (address[0] === "t") - return false; - return this.detectAddressNetwork(address) === "mainnet"; - }; - Address.prototype.isTestnetAddress = function (address) { - if (address[0] === "x") - return false; - else if (address[0] === "t") - return true; - return this.detectAddressNetwork(address) === "testnet"; - }; - Address.prototype.isRegTestAddress = function (address) { - return this.detectAddressNetwork(address) === "regtest"; - }; - // Test for address type. - Address.prototype.isP2PKHAddress = function (address) { - return this.detectAddressType(address) === "p2pkh"; - }; - Address.prototype.isP2SHAddress = function (address) { - return this.detectAddressType(address) === "p2sh"; - }; - // Detect address format. - Address.prototype.detectAddressFormat = function (address) { - var decoded = this._decode(address); - return decoded.format; - }; - // Detect address network. - Address.prototype.detectAddressNetwork = function (address) { - if (address[0] === "x") - return "mainnet"; - else if (address[0] === "t") - return "testnet"; - var decoded = this._decode(address); - switch (decoded.prefix) { - case "bitcoincash": - return "mainnet"; - case "bchtest": - return "testnet"; - case "bchreg": - return "regtest"; - default: - throw new Error("Invalid prefix : " + decoded.prefix); - } - }; - // Detect address type. - Address.prototype.detectAddressType = function (address) { - var decoded = this._decode(address); - return decoded.type.toLowerCase(); - }; - Address.prototype.fromXPub = function (xpub, path) { - if (path === void 0) { path = "0/0"; } - var HDNode = Bitcoin.HDNode.fromBase58(xpub, Bitcoin.networks[this.detectAddressNetwork(xpub)]); - var address = HDNode.derivePath(path); - return this.toCashAddress(address.getAddress()); - }; - Address.prototype.fromOutputScript = function (scriptPubKey, network) { - if (network === void 0) { network = "mainnet"; } - var netParam; - if (network !== "bitcoincash" && network !== "mainnet") - netParam = Bitcoin.networks.testnet; - var regtest = network === "bchreg"; - return this.toCashAddress(Bitcoin.address.fromOutputScript(scriptPubKey, netParam), true, regtest); - }; - Address.prototype.details = function (address) { - return __awaiter(this, void 0, void 0, function () { - var response, options, response, error_1; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof address === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios_1.default.get(this.restURL + "address/details/" + address)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data - // Handle array of addresses. - ]; - case 2: - if (!Array.isArray(address)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "address/details", - data: { - addresses: address - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input address must be a string or array of strings."); - case 5: - error_1 = _a.sent(); - if (error_1.response && error_1.response.data) - throw error_1.response.data; - else - throw error_1; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - Address.prototype.utxo = function (address) { - return __awaiter(this, void 0, void 0, function () { - var response, options, response, error_2; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof address === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios_1.default.get(this.restURL + "address/utxo/" + address)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - if (!Array.isArray(address)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "address/utxo", - data: { - addresses: address - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input address must be a string or array of strings."); - case 5: - error_2 = _a.sent(); - if (error_2.response && error_2.response.data) - throw error_2.response.data; - else - throw error_2; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - Address.prototype.unconfirmed = function (address) { - return __awaiter(this, void 0, void 0, function () { - var response, options, response, error_3; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof address === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios_1.default.get(this.restURL + "address/unconfirmed/" + address)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data - // Handle an array of addresses - ]; - case 2: - if (!Array.isArray(address)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "address/unconfirmed", - data: { - addresses: address - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input address must be a string or array of strings."); - case 5: - error_3 = _a.sent(); - if (error_3.response && error_3.response.data) - throw error_3.response.data; - else - throw error_3; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - Address.prototype.transactions = function (address) { - return __awaiter(this, void 0, void 0, function () { - var response, options, response, error_4; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof address === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios_1.default.get(this.restURL + "address/transactions/" + address)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data - // Handle an array of addresses - ]; - case 2: - if (!Array.isArray(address)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "address/transactions", - data: { - addresses: address - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input address must be a string or array of strings."); - case 5: - error_4 = _a.sent(); - if (error_4.response && error_4.response.data) - throw error_4.response.data; - else - throw error_4; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - return Address; -}()); -exports.Address = Address; diff --git a/lib/BITBOX.js b/lib/BITBOX.js deleted file mode 100644 index c82c674d..00000000 --- a/lib/BITBOX.js +++ /dev/null @@ -1,57 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -// local deps -var BitcoinCash_1 = require("./BitcoinCash"); -var Crypto_1 = require("./Crypto"); -var Util_1 = require("./Util"); -var Block_1 = require("./Block"); -var Blockchain_1 = require("./Blockchain"); -var Control_1 = require("./Control"); -var Generating_1 = require("./Generating"); -var Mining_1 = require("./Mining"); -var RawTransactions_1 = require("./RawTransactions"); -var Mnemonic_1 = require("./Mnemonic"); -var Address_1 = require("./Address"); -var HDNode_1 = require("./HDNode"); -var Transaction_1 = require("./Transaction"); -var TransactionBuilder_1 = require("./TransactionBuilder"); -var ECPair_1 = require("./ECPair"); -var Script_1 = require("./Script"); -var Price_1 = require("./Price"); -var Socket_1 = require("./Socket"); -var Wallet_1 = require("./Wallet"); -var Schnorr_1 = require("./Schnorr"); -var BITBOX = /** @class */ (function () { - function BITBOX(config) { - if (config === void 0) { config = {}; } - var restURL; - if (config && config.restURL && config.restURL !== "") - restURL = config.restURL; - else - restURL = "https://rest.bitcoin.com/v2/"; - this.Address = new Address_1.Address(restURL); - this.BitcoinCash = new BitcoinCash_1.BitcoinCash(this.Address); - this.Block = new Block_1.Block(restURL); - this.Blockchain = new Blockchain_1.Blockchain(restURL); - this.Control = new Control_1.Control(restURL); - this.Crypto = Crypto_1.Crypto; - this.ECPair = ECPair_1.ECPair; - this.ECPair.setAddress(this.Address); - this.Generating = new Generating_1.Generating(restURL); - this.HDNode = new HDNode_1.HDNode(this.Address); - this.Mining = new Mining_1.Mining(restURL); - this.Mnemonic = new Mnemonic_1.Mnemonic(this.Address); - this.Price = new Price_1.Price(); - this.RawTransactions = new RawTransactions_1.RawTransactions(restURL); - this.Script = new Script_1.Script(); - this.Transaction = new Transaction_1.Transaction(restURL); - this.TransactionBuilder = TransactionBuilder_1.TransactionBuilder; - this.TransactionBuilder.setAddress(this.Address); - this.Util = new Util_1.Util(restURL); - this.Socket = Socket_1.Socket; - this.Wallet = Wallet_1.Wallet; - this.Schnorr = new Schnorr_1.Schnorr(); - } - return BITBOX; -}()); -exports.BITBOX = BITBOX; diff --git a/lib/BitcoinCash.js b/lib/BitcoinCash.js deleted file mode 100644 index 2e247035..00000000 --- a/lib/BitcoinCash.js +++ /dev/null @@ -1,150 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var Bitcoin = require("bitcoincashjs-lib"); -var sb = require("satoshi-bitcoin"); -var bitcoinMessage = require("bitcoinjs-message"); -var bs58 = require("bs58"); -var bip21 = require("bip21"); -var coininfo = require("coininfo"); -var bip38 = require("bip38"); -var wif = require("wif"); -var Buffer = require("safe-buffer").Buffer; -var BitcoinCash = /** @class */ (function () { - function BitcoinCash(address) { - this._address = address; - } - // Translate coins to satoshi value - BitcoinCash.prototype.toSatoshi = function (coins) { - return sb.toSatoshi(coins); - }; - // Translate satoshi to coin value - BitcoinCash.prototype.toBitcoinCash = function (satoshis) { - return sb.toBitcoin(satoshis); - }; - // Translate satoshi to bits denomination - BitcoinCash.prototype.toBits = function (satoshis) { - return parseFloat(satoshis) / 100; - }; - // Translate satoshi to bits denomination - // TODO remove in 2.0 - BitcoinCash.prototype.satsToBits = function (satoshis) { - return parseFloat(satoshis) / 100; - }; - // Translate bits to satoshi denomination - // TODO remove in 2.0 - // fromBits(bits) { - // return this.toInteger(bits * 100); - // } - // - // // Translate bits to satoshi denomination - // satsFromBits(bits) { - // return this.toInteger(bits * 100); - // } - // - // toInteger(number){ - // return Math.round( // round to nearest integer - // Number(number) // type cast your input - // ); - // } - // sign message - BitcoinCash.prototype.signMessageWithPrivKey = function (privateKeyWIF, message) { - var network = privateKeyWIF.charAt(0) === "c" ? "testnet" : "mainnet"; - var bitcoincash; - if (network === "mainnet") - bitcoincash = coininfo.bitcoincash.main; - else - bitcoincash = coininfo.bitcoincash.test; - var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); - var keyPair = Bitcoin.ECPair.fromWIF(privateKeyWIF, bitcoincashBitcoinJSLib); - var privateKey = keyPair.d.toBuffer(32); - return bitcoinMessage - .sign(message, privateKey, keyPair.compressed) - .toString("base64"); - }; - // verify message - BitcoinCash.prototype.verifyMessage = function (address, signature, message) { - return bitcoinMessage.verify(message, this._address.toLegacyAddress(address), signature); - }; - // encode base58Check - BitcoinCash.prototype.encodeBase58Check = function (hex) { - return bs58.encode(Buffer.from(hex, "hex")); - }; - // decode base58Check - BitcoinCash.prototype.decodeBase58Check = function (address) { - return bs58.decode(address).toString("hex"); - }; - // encode bip21 url - BitcoinCash.prototype.encodeBIP21 = function (address, options, regtest) { - if (regtest === void 0) { regtest = false; } - return bip21.encode(this._address.toCashAddress(address, true, regtest), options); - }; - // decode bip21 url - BitcoinCash.prototype.decodeBIP21 = function (url) { - return bip21.decode(url); - }; - BitcoinCash.prototype.getByteCount = function (inputs, outputs) { - // from https://github.com/bitcoinjs/bitcoinjs-lib/issues/921#issuecomment-354394004 - var totalWeight = 0; - var hasWitness = false; - // assumes compressed pubkeys in all cases. - var types = { - inputs: { - "MULTISIG-P2SH": 49 * 4, - "MULTISIG-P2WSH": 6 + 41 * 4, - "MULTISIG-P2SH-P2WSH": 6 + 76 * 4, - P2PKH: 148 * 4, - P2WPKH: 108 + 41 * 4, - "P2SH-P2WPKH": 108 + 64 * 4 - }, - outputs: { - P2SH: 32 * 4, - P2PKH: 34 * 4, - P2WPKH: 31 * 4, - P2WSH: 43 * 4 - } - }; - Object.keys(inputs).forEach(function (key) { - if (key.slice(0, 8) === "MULTISIG") { - // ex. "MULTISIG-P2SH:2-3" would mean 2 of 3 P2SH MULTISIG - var keyParts = key.split(":"); - if (keyParts.length !== 2) - throw new Error("invalid input: " + key); - var newKey = keyParts[0]; - var mAndN = keyParts[1].split("-").map(function (item) { - return parseInt(item); - }); - totalWeight += types.inputs[newKey] * inputs[key]; - var multiplyer = newKey === "MULTISIG-P2SH" ? 4 : 1; - totalWeight += (73 * mAndN[0] + 34 * mAndN[1]) * multiplyer; - } - else { - totalWeight += types.inputs[key] * inputs[key]; - } - if (key.indexOf("W") >= 0) - hasWitness = true; - }); - Object.keys(outputs).forEach(function (key) { - totalWeight += types.outputs[key] * outputs[key]; - }); - if (hasWitness) - totalWeight += 2; - totalWeight += 10 * 4; - return Math.ceil(totalWeight / 4); - }; - BitcoinCash.prototype.encryptBIP38 = function (privKeyWIF, passphrase) { - var decoded = wif.decode(privKeyWIF); - return bip38.encrypt(decoded.privateKey, decoded.compressed, passphrase); - }; - BitcoinCash.prototype.decryptBIP38 = function (encryptedKey, passphrase, network) { - if (network === void 0) { network = "mainnet"; } - var decryptedKey = bip38.decrypt(encryptedKey, passphrase); - var prefix; - if (network === "testnet") - prefix = 0xef; - else - prefix = 0x80; - return wif.encode(prefix, decryptedKey.privateKey, decryptedKey.compressed); - }; - return BitcoinCash; -}()); -exports.BitcoinCash = BitcoinCash; diff --git a/lib/Block.js b/lib/Block.js deleted file mode 100644 index db8cae3c..00000000 --- a/lib/Block.js +++ /dev/null @@ -1,125 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var axios_1 = require("axios"); -var Block = /** @class */ (function () { - function Block(restURL) { - this.restURL = restURL; - } - Block.prototype.detailsByHeight = function (id) { - return __awaiter(this, void 0, void 0, function () { - var response, options, response, error_1; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof id === "number")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios_1.default.get(this.restURL + "block/detailsByHeight/" + id)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data - // Array of blocks. - ]; - case 2: - if (!Array.isArray(id)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "block/detailsByHeight", - data: { - heights: id - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input must be a number or array of numbers."); - case 5: - error_1 = _a.sent(); - if (error_1.response && error_1.response.data) - throw error_1.response.data; - else - throw error_1; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - Block.prototype.detailsByHash = function (hash) { - return __awaiter(this, void 0, void 0, function () { - var response, options, response, error_2; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof hash === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios_1.default.get(this.restURL + "block/detailsByHash/" + hash)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data - // Array of hashes. - ]; - case 2: - if (!Array.isArray(hash)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "block/detailsByHash", - data: { - hashes: hash - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input must be a string or array of strings."); - case 5: - error_2 = _a.sent(); - if (error_2.response && error_2.response.data) - throw error_2.response.data; - else - throw error_2; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - return Block; -}()); -exports.Block = Block; diff --git a/lib/Blockchain.js b/lib/Blockchain.js deleted file mode 100644 index b534d555..00000000 --- a/lib/Blockchain.js +++ /dev/null @@ -1,575 +0,0 @@ -"use strict"; -/* - TODO - - Add blockhash functionality back into getTxOutProof -*/ -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var axios_1 = require("axios"); -var Blockchain = /** @class */ (function () { - function Blockchain(restURL) { - this.restURL = restURL; - } - Blockchain.prototype.getBestBlockHash = function () { - return __awaiter(this, void 0, void 0, function () { - var response, error_1; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getBestBlockHash")]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_1 = _a.sent(); - if (error_1.response && error_1.response.data) - throw error_1.response.data; - else - throw error_1; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.getBlock = function (blockhash, verbose) { - if (verbose === void 0) { verbose = true; } - return __awaiter(this, void 0, void 0, function () { - var response, error_2; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getBlock/" + blockhash + "?verbose=" + verbose)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_2 = _a.sent(); - if (error_2.response && error_2.response.data) - throw error_2.response.data; - else - throw error_2; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.getBlockchainInfo = function () { - return __awaiter(this, void 0, void 0, function () { - var response, error_3; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getBlockchainInfo")]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_3 = _a.sent(); - if (error_3.response && error_3.response.data) - throw error_3.response.data; - else - throw error_3; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.getBlockCount = function () { - return __awaiter(this, void 0, void 0, function () { - var response, error_4; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getBlockCount")]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_4 = _a.sent(); - if (error_4.response && error_4.response.data) - throw error_4.response.data; - else - throw error_4; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.getBlockHash = function (height) { - if (height === void 0) { height = 1; } - return __awaiter(this, void 0, void 0, function () { - var response, error_5; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (typeof height !== "string") - height = JSON.stringify(height); - _a.label = 1; - case 1: - _a.trys.push([1, 3, , 4]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getBlockHash/" + height)]; - case 2: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 3: - error_5 = _a.sent(); - if (error_5.response && error_5.response.data) - throw error_5.response.data; - else - throw error_5; - return [3 /*break*/, 4]; - case 4: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.getBlockHeader = function (hash, verbose) { - if (verbose === void 0) { verbose = true; } - return __awaiter(this, void 0, void 0, function () { - var response, options, response, error_6; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof hash === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getBlockHeader/" + hash + "?verbose=" + verbose)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data - // Handle array of hashes. - ]; - case 2: - if (!Array.isArray(hash)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "blockchain/getBlockHeader", - data: { - hashes: hash, - verbose: verbose - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input hash must be a string or array of strings."); - case 5: - error_6 = _a.sent(); - if (error_6.response && error_6.response.data) - throw error_6.response.data; - else - throw error_6; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.getChainTips = function () { - return __awaiter(this, void 0, void 0, function () { - var response, error_7; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getChainTips")]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_7 = _a.sent(); - if (error_7.response && error_7.response.data) - throw error_7.response.data; - else - throw error_7; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.getDifficulty = function () { - return __awaiter(this, void 0, void 0, function () { - var response, error_8; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getDifficulty")]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_8 = _a.sent(); - if (error_8.response && error_8.response.data) - throw error_8.response.data; - else - throw error_8; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.getMempoolAncestors = function (txid, verbose) { - if (verbose === void 0) { verbose = false; } - return __awaiter(this, void 0, void 0, function () { - var response, error_9; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (typeof txid !== "string") - txid = JSON.stringify(txid); - _a.label = 1; - case 1: - _a.trys.push([1, 3, , 4]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getMempoolAncestors/" + txid + "?verbose=" + verbose)]; - case 2: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 3: - error_9 = _a.sent(); - if (error_9.response && error_9.response.data) - throw error_9.response.data; - else - throw error_9; - return [3 /*break*/, 4]; - case 4: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.getMempoolDescendants = function (txid, verbose) { - if (verbose === void 0) { verbose = false; } - return __awaiter(this, void 0, void 0, function () { - var response, error_10; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (typeof txid !== "string") - txid = JSON.stringify(txid); - _a.label = 1; - case 1: - _a.trys.push([1, 3, , 4]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getMempoolDescendants/" + txid + "?verbose=" + verbose)]; - case 2: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 3: - error_10 = _a.sent(); - if (error_10.response && error_10.response.data) - throw error_10.response.data; - else - throw error_10; - return [3 /*break*/, 4]; - case 4: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.getMempoolEntry = function (txid) { - return __awaiter(this, void 0, void 0, function () { - var response, options, response, error_11; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof txid === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getMempoolEntry/" + txid)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - if (!Array.isArray(txid)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "blockchain/getMempoolEntry", - data: { - txids: txid - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input must be a string or array of strings."); - case 5: - error_11 = _a.sent(); - if (error_11.response && error_11.response.data) - throw error_11.response.data; - else - throw error_11; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.getMempoolInfo = function () { - return __awaiter(this, void 0, void 0, function () { - var response, error_12; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getMempoolInfo")]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_12 = _a.sent(); - if (error_12.response && error_12.response.data) - throw error_12.response.data; - else - throw error_12; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.getRawMempool = function (verbose) { - if (verbose === void 0) { verbose = false; } - return __awaiter(this, void 0, void 0, function () { - var response, error_13; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getRawMempool?vebose=" + verbose)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_13 = _a.sent(); - if (error_13.response && error_13.response.data) - throw error_13.response.data; - else - throw error_13; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.getTxOut = function (txid, n, include_mempool) { - if (include_mempool === void 0) { include_mempool = true; } - return __awaiter(this, void 0, void 0, function () { - var response, error_14; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getTxOut/" + txid + "/n?include_mempool=" + include_mempool)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_14 = _a.sent(); - if (error_14.response && error_14.response.data) - throw error_14.response.data; - else - throw error_14; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.getTxOutProof = function (txids) { - return __awaiter(this, void 0, void 0, function () { - var path, response, options, response, error_15; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof txids === "string")) return [3 /*break*/, 2]; - path = this.restURL + "blockchain/getTxOutProof/" + txids; - return [4 /*yield*/, axios_1.default.get(path)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data - // Array of txids. - ]; - case 2: - if (!Array.isArray(txids)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "blockchain/getTxOutProof", - data: { - txids: txids - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input must be a string or array of strings."); - case 5: - error_15 = _a.sent(); - if (error_15.response && error_15.response.data) - throw error_15.response.data; - else - throw error_15; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.preciousBlock = function (blockhash) { - return __awaiter(this, void 0, void 0, function () { - var response, error_16; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/preciousBlock/" + blockhash)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_16 = _a.sent(); - if (error_16.response && error_16.response.data) - throw error_16.response.data; - else - throw error_16; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.pruneBlockchain = function (height) { - return __awaiter(this, void 0, void 0, function () { - var response, error_17; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.post(this.restURL + "blockchain/pruneBlockchain/" + height)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_17 = _a.sent(); - if (error_17.response && error_17.response.data) - throw error_17.response.data; - else - throw error_17; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.verifyChain = function (checklevel, nblocks) { - if (checklevel === void 0) { checklevel = 3; } - if (nblocks === void 0) { nblocks = 6; } - return __awaiter(this, void 0, void 0, function () { - var response, error_18; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/verifyChain?checklevel=" + checklevel + "&nblocks=" + nblocks)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_18 = _a.sent(); - if (error_18.response && error_18.response.data) - throw error_18.response.data; - else - throw error_18; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.verifyTxOutProof = function (proof) { - return __awaiter(this, void 0, void 0, function () { - var response, options, response, error_19; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof proof === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/verifyTxOutProof/" + proof)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data - // Array of hashes. - ]; - case 2: - if (!Array.isArray(proof)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "blockchain/verifyTxOutProof", - data: { - proofs: proof - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input must be a string or array of strings."); - case 5: - error_19 = _a.sent(); - if (error_19.response && error_19.response.data) - throw error_19.response.data; - else - throw error_19; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - return Blockchain; -}()); -exports.Blockchain = Blockchain; diff --git a/lib/Control.js b/lib/Control.js deleted file mode 100644 index e5fb9f53..00000000 --- a/lib/Control.js +++ /dev/null @@ -1,91 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var axios_1 = require("axios"); -var Control = /** @class */ (function () { - function Control(restURL) { - this.restURL = restURL; - } - Control.prototype.getInfo = function () { - return __awaiter(this, void 0, void 0, function () { - var response, error_1; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "control/getInfo")]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_1 = _a.sent(); - if (error_1.response && error_1.response.data) - throw error_1.response.data; - else - throw error_1; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Control.prototype.getMemoryInfo = function () { - return __awaiter(this, void 0, void 0, function () { - var response, error_2; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "control/getMemoryInfo")]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_2 = _a.sent(); - if (error_2.response && error_2.response.data) - throw error_2.response.data; - else - throw error_2; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - return Control; -}()); -exports.Control = Control; diff --git a/lib/Crypto.js b/lib/Crypto.js deleted file mode 100644 index 55cf96ad..00000000 --- a/lib/Crypto.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var randomBytes = require("randombytes"); -var Bitcoin = require("bitcoincashjs-lib"); -var Crypto = /** @class */ (function () { - function Crypto() { - } - Crypto.sha256 = function (buffer) { - return Bitcoin.crypto.sha256(buffer); - }; - Crypto.ripemd160 = function (buffer) { - return Bitcoin.crypto.ripemd160(buffer); - }; - Crypto.hash256 = function (buffer) { - return Bitcoin.crypto.hash256(buffer); - }; - Crypto.hash160 = function (buffer) { - return Bitcoin.crypto.hash160(buffer); - }; - Crypto.randomBytes = function (size) { - if (size === void 0) { size = 16; } - return randomBytes(size); - }; - return Crypto; -}()); -exports.Crypto = Crypto; diff --git a/lib/ECPair.js b/lib/ECPair.js deleted file mode 100644 index d5a80038..00000000 --- a/lib/ECPair.js +++ /dev/null @@ -1,49 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var Bitcoin = require("bitcoincashjs-lib"); -var coininfo = require("coininfo"); -var ECPair = /** @class */ (function () { - function ECPair() { - } - ECPair.setAddress = function (address) { - ECPair._address = address; - }; - ECPair.fromWIF = function (privateKeyWIF) { - var network; - if (privateKeyWIF[0] === "L" || privateKeyWIF[0] === "K") - network = "mainnet"; - else if (privateKeyWIF[0] === "c") - network = "testnet"; - var bitcoincash; - if (network === "mainnet") - bitcoincash = coininfo.bitcoincash.main; - else - bitcoincash = coininfo.bitcoincash.test; - var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); - return Bitcoin.ECPair.fromWIF(privateKeyWIF, bitcoincashBitcoinJSLib); - }; - ECPair.toWIF = function (ecpair) { - return ecpair.toWIF(); - }; - ECPair.sign = function (ecpair, buffer) { - return ecpair.sign(buffer); - }; - ECPair.verify = function (ecpair, buffer, signature) { - return ecpair.verify(buffer, signature); - }; - ECPair.fromPublicKey = function (pubkeyBuffer) { - return Bitcoin.ECPair.fromPublicKeyBuffer(pubkeyBuffer); - }; - ECPair.toPublicKey = function (ecpair) { - return ecpair.getPublicKeyBuffer(); - }; - ECPair.toLegacyAddress = function (ecpair) { - return ecpair.getAddress(); - }; - ECPair.toCashAddress = function (ecpair, regtest) { - if (regtest === void 0) { regtest = false; } - return ECPair._address.toCashAddress(ecpair.getAddress(), true, regtest); - }; - return ECPair; -}()); -exports.ECPair = ECPair; diff --git a/lib/Generating.js b/lib/Generating.js deleted file mode 100644 index 0e21402a..00000000 --- a/lib/Generating.js +++ /dev/null @@ -1,69 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var axios_1 = require("axios"); -var Generating = /** @class */ (function () { - function Generating(restURL) { - this.restURL = restURL; - } - Generating.prototype.generateToAddress = function (blocks, address, maxtries) { - if (maxtries === void 0) { maxtries = 1000000; } - return __awaiter(this, void 0, void 0, function () { - var response, error_1; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.post(this.restURL + "generating/generateToAddress/" + blocks + "/" + address + "?maxtries=" + maxtries)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_1 = _a.sent(); - if (error_1.response && error_1.response.data) - throw error_1.response.data; - else - throw error_1; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - return Generating; -}()); -exports.Generating = Generating; diff --git a/lib/HDNode.js b/lib/HDNode.js deleted file mode 100644 index c10a388f..00000000 --- a/lib/HDNode.js +++ /dev/null @@ -1,96 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var Bitcoin = require("bitcoincashjs-lib"); -var coininfo = require("coininfo"); -var bip32utils = require("bip32-utils"); -var HDNode = /** @class */ (function () { - function HDNode(address) { - this._address = address; - } - HDNode.prototype.fromSeed = function (rootSeedBuffer, network) { - if (network === void 0) { network = "mainnet"; } - var bitcoincash; - if (network === "bitcoincash" || network === "mainnet") - bitcoincash = coininfo.bitcoincash.main; - else - bitcoincash = coininfo.bitcoincash.test; - var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); - return Bitcoin.HDNode.fromSeedBuffer(rootSeedBuffer, bitcoincashBitcoinJSLib); - }; - HDNode.prototype.toLegacyAddress = function (hdNode) { - return hdNode.getAddress(); - }; - HDNode.prototype.toCashAddress = function (hdNode, regtest) { - if (regtest === void 0) { regtest = false; } - return this._address.toCashAddress(hdNode.getAddress(), true, regtest); - }; - HDNode.prototype.toWIF = function (hdNode) { - return hdNode.keyPair.toWIF(); - }; - HDNode.prototype.toXPub = function (hdNode) { - return hdNode.neutered().toBase58(); - }; - HDNode.prototype.toXPriv = function (hdNode) { - return hdNode.toBase58(); - }; - HDNode.prototype.toKeyPair = function (hdNode) { - return hdNode.keyPair; - }; - HDNode.prototype.toPublicKey = function (hdNode) { - return hdNode.getPublicKeyBuffer(); - }; - HDNode.prototype.fromXPriv = function (xpriv) { - var bitcoincash; - if (xpriv[0] === "x") - bitcoincash = coininfo.bitcoincash.main; - else if (xpriv[0] === "t") - bitcoincash = coininfo.bitcoincash.test; - var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); - return Bitcoin.HDNode.fromBase58(xpriv, bitcoincashBitcoinJSLib); - }; - HDNode.prototype.fromXPub = function (xpub) { - var bitcoincash; - if (xpub[0] === "x") - bitcoincash = coininfo.bitcoincash.main; - else if (xpub[0] === "t") - bitcoincash = coininfo.bitcoincash.test; - var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); - return Bitcoin.HDNode.fromBase58(xpub, bitcoincashBitcoinJSLib); - }; - HDNode.prototype.derivePath = function (hdnode, path) { - return hdnode.derivePath(path); - }; - HDNode.prototype.derive = function (hdnode, path) { - return hdnode.derive(path); - }; - HDNode.prototype.deriveHardened = function (hdnode, path) { - return hdnode.deriveHardened(path); - }; - HDNode.prototype.sign = function (hdnode, buffer) { - return hdnode.sign(buffer); - }; - HDNode.prototype.verify = function (hdnode, buffer, signature) { - return hdnode.verify(buffer, signature); - }; - HDNode.prototype.isPublic = function (hdnode) { - return hdnode.isNeutered(); - }; - HDNode.prototype.isPrivate = function (hdnode) { - return !hdnode.isNeutered(); - }; - HDNode.prototype.toIdentifier = function (hdnode) { - return hdnode.getIdentifier(); - }; - HDNode.prototype.fromBase58 = function (base58, network) { - return Bitcoin.HDNode.fromBase58(base58, network); - }; - HDNode.prototype.createAccount = function (hdNodes) { - var arr = hdNodes.map(function (item, index) { return new bip32utils.Chain(item.neutered()); }); - return new bip32utils.Account(arr); - }; - HDNode.prototype.createChain = function (hdNode) { - return new bip32utils.Chain(hdNode); - }; - return HDNode; -}()); -exports.HDNode = HDNode; diff --git a/lib/Mining.js b/lib/Mining.js deleted file mode 100644 index cfed1e15..00000000 --- a/lib/Mining.js +++ /dev/null @@ -1,144 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var axios_1 = require("axios"); -var Mining = /** @class */ (function () { - function Mining(restURL) { - this.restURL = restURL; - } - Mining.prototype.getBlockTemplate = function (template_request) { - return __awaiter(this, void 0, void 0, function () { - var response, error_1; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "mining/getBlockTemplate/" + template_request)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_1 = _a.sent(); - if (error_1.response && error_1.response.data) - throw error_1.response.data; - else - throw error_1; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Mining.prototype.getMiningInfo = function () { - return __awaiter(this, void 0, void 0, function () { - var response, error_2; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "mining/getMiningInfo")]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_2 = _a.sent(); - if (error_2.response && error_2.response.data) - throw error_2.response.data; - else - throw error_2; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Mining.prototype.getNetworkHashps = function (nblocks, height) { - if (nblocks === void 0) { nblocks = 120; } - if (height === void 0) { height = 1; } - return __awaiter(this, void 0, void 0, function () { - var response, error_3; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "mining/getNetworkHashps?nblocks=" + nblocks + "&height=" + height)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_3 = _a.sent(); - if (error_3.response && error_3.response.data) - throw error_3.response.data; - else - throw error_3; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Mining.prototype.submitBlock = function (hex, parameters) { - return __awaiter(this, void 0, void 0, function () { - var path, response, error_4; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - path = this.restURL + "mining/submitBlock/" + hex; - if (parameters) - path = path + "?parameters=" + parameters; - _a.label = 1; - case 1: - _a.trys.push([1, 3, , 4]); - return [4 /*yield*/, axios_1.default.post(path)]; - case 2: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 3: - error_4 = _a.sent(); - if (error_4.response && error_4.response.data) - throw error_4.response.data; - else - throw error_4; - return [3 /*break*/, 4]; - case 4: return [2 /*return*/]; - } - }); - }); - }; - return Mining; -}()); -exports.Mining = Mining; diff --git a/lib/Mnemonic.js b/lib/Mnemonic.js deleted file mode 100644 index 42953bf6..00000000 --- a/lib/Mnemonic.js +++ /dev/null @@ -1,247 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var BIP39 = require("bip39"); -var randomBytes = require("randombytes"); -var Bitcoin = require("bitcoincashjs-lib"); -var Buffer = require("safe-buffer").Buffer; -var wif = require("wif"); -var Mnemonic = /** @class */ (function () { - function Mnemonic(address) { - this._address = address; - } - Mnemonic.prototype.generate = function (bits, wordlist) { - if (bits === void 0) { bits = 128; } - return BIP39.generateMnemonic(bits, randomBytes, wordlist); - }; - Mnemonic.prototype.fromEntropy = function (bytes, wordlist) { - return BIP39.entropyToMnemonic(bytes, wordlist); - }; - Mnemonic.prototype.toEntropy = function (mnemonic, wordlist) { - return Buffer.from(BIP39.mnemonicToEntropy(mnemonic, wordlist), "hex"); - }; - Mnemonic.prototype.validate = function (mnemonic, wordlist) { - // Preprocess the words - var words = mnemonic.split(" "); - // Detect blank phrase - if (words.length === 0) - return "Blank mnemonic"; - // Check each word - for (var i = 0; i < words.length; i++) { - var word = words[i]; - if (wordlist.indexOf(word) == -1) { - // Finding closest match to word - var nearestWord = this.findNearestWord(word, wordlist); - return word + " is not in wordlist, did you mean " + nearestWord + "?"; - } - } - // Check the words are valid - var properPhrase = words.join(); - var isValid = BIP39.validateMnemonic(mnemonic, wordlist); - if (!isValid) - return "Invalid mnemonic"; - return "Valid mnemonic"; - }; - Mnemonic.prototype.toSeed = function (mnemonic, password) { - if (password === void 0) { password = ""; } - return BIP39.mnemonicToSeed(mnemonic, password); - }; - Mnemonic.prototype.wordLists = function () { - return BIP39.wordlists; - }; - Mnemonic.prototype.toKeypairs = function (mnemonic, numberOfKeypairs, regtest) { - if (numberOfKeypairs === void 0) { numberOfKeypairs = 1; } - if (regtest === void 0) { regtest = false; } - var rootSeedBuffer = this.toSeed(mnemonic, ""); - var hdNode = Bitcoin.HDNode.fromSeedBuffer(rootSeedBuffer); - var HDPath = "44'/145'/0'/0/"; - var accounts = []; - for (var i = 0; i < numberOfKeypairs; i++) { - var childHDNode = hdNode.derivePath("" + HDPath + i); - var prefix = 128; - if (regtest === true) - prefix = 239; - accounts.push({ - privateKeyWIF: wif.encode(prefix, childHDNode.keyPair.d.toBuffer(32), true), - address: this._address.toCashAddress(childHDNode.getAddress(), true, regtest) - }); - } - return accounts; - }; - Mnemonic.prototype.findNearestWord = function (word, wordlist) { - var minDistance = 99; - var closestWord = wordlist[0]; - for (var i = 0; i < wordlist.length; i++) { - var comparedTo = wordlist[i]; - if (comparedTo.indexOf(word) == 0) - return comparedTo; - var distance = Levenshtein.get(word, comparedTo); - if (distance < minDistance) { - closestWord = comparedTo; - minDistance = distance; - } - } - return closestWord; - }; - return Mnemonic; -}()); -exports.Mnemonic = Mnemonic; -// The following code is from: https://raw.githubusercontent.com/iancoleman/bip39/7ff86d4c983f1e8c80b87b31acfd69fcf98c1b82/src/js/levenshtein.js -/** - * Extend an Object with another Object's properties. - * - * The source objects are specified as additional arguments. - * - * @param dst Object the object to extend. - * - * @return Object the final object. - */ -var _extend = function (dst) { - var sources = Array.prototype.slice.call(arguments, 1); - for (var i = 0; i < sources.length; ++i) { - var src = sources[i]; - for (var p in src) - if (src.hasOwnProperty(p)) - dst[p] = src[p]; - } - return dst; -}; -/** - * Defer execution of given function. - * @param {Function} func - */ -var _defer = function (func) { - if (typeof setImmediate === "function") - return setImmediate(func); - return setTimeout(func, 0); -}; -/** - * Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance. - */ -var Levenshtein = { - /** - * Calculate levenshtein distance of the two strings. - * - * @param str1 String the first string. - * @param str2 String the second string. - * @return Integer the levenshtein distance (0 and above). - */ - get: function (str1, str2) { - // base cases - if (str1 === str2) - return 0; - if (str1.length === 0) - return str2.length; - if (str2.length === 0) - return str1.length; - // two rows - var prevRow = new Array(str2.length + 1), curCol, nextCol, i, j, tmp; - // initialise previous row - for (i = 0; i < prevRow.length; ++i) - prevRow[i] = i; - // calculate current row distance from previous row - for (i = 0; i < str1.length; ++i) { - nextCol = i + 1; - for (j = 0; j < str2.length; ++j) { - curCol = nextCol; - // substution - nextCol = prevRow[j] + (str1.charAt(i) === str2.charAt(j) ? 0 : 1); - // insertion - tmp = curCol + 1; - if (nextCol > tmp) - nextCol = tmp; - // deletion - tmp = prevRow[j + 1] + 1; - if (nextCol > tmp) - nextCol = tmp; - // copy current col value into previous (in preparation for next iteration) - prevRow[j] = curCol; - } - // copy last col value into previous (in preparation for next iteration) - prevRow[j] = nextCol; - } - return nextCol; - }, - /** - * Asynchronously calculate levenshtein distance of the two strings. - * - * @param str1 String the first string. - * @param str2 String the second string. - * @param cb Function callback function with signature: function(Error err, int distance) - * @param [options] Object additional options. - * @param [options.progress] Function progress callback with signature: function(percentComplete) - */ - getAsync: function (str1, str2, cb, options) { - options = _extend({}, { - progress: null - }, options); - // base cases - if (str1 === str2) - return cb(null, 0); - if (str1.length === 0) - return cb(null, str2.length); - if (str2.length === 0) - return cb(null, str1.length); - // two rows - var prevRow = new Array(str2.length + 1); - var curCol; - var nextCol; - var i; - var j; - var tmp; - var startTime; - var currentTime; - // initialise previous row - for (i = 0; i < prevRow.length; ++i) - prevRow[i] = i; - nextCol = 1; - i = 0; - j = -1; - var __calculate = function () { - // reset timer - startTime = new Date().valueOf(); - currentTime = startTime; - // keep going until one second has elapsed - while (currentTime - startTime < 1000) { - // reached end of current row? - if (str2.length <= ++j) { - // copy current into previous (in preparation for next iteration) - prevRow[j] = nextCol; - // if already done all chars - if (str1.length <= ++i) - return cb(null, nextCol); - // else if we have more left to do - nextCol = i + 1; - j = 0; - } - // calculation - curCol = nextCol; - // substution - nextCol = prevRow[j] + (str1.charAt(i) === str2.charAt(j) ? 0 : 1); - // insertion - tmp = curCol + 1; - if (nextCol > tmp) - nextCol = tmp; - // deletion - tmp = prevRow[j + 1] + 1; - if (nextCol > tmp) - nextCol = tmp; - // copy current into previous (in preparation for next iteration) - prevRow[j] = curCol; - // get current time - currentTime = new Date().valueOf(); - } - // send a progress update? - if (null !== options.progress) { - try { - options.progress.call(null, (i * 100.0) / str1.length); - } - catch (err) { - return cb("Progress callback: " + err.toString()); - } - } - // next iteration - _defer(__calculate); - }; - __calculate(); - } -}; diff --git a/lib/Price.js b/lib/Price.js deleted file mode 100644 index d67c4ec6..00000000 --- a/lib/Price.js +++ /dev/null @@ -1,68 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var axios_1 = require("axios"); -var Price = /** @class */ (function () { - function Price() { - } - Price.prototype.current = function (currency) { - if (currency === void 0) { currency = "usd"; } - return __awaiter(this, void 0, void 0, function () { - var response, error_1; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get("https://index-api.bitcoin.com/api/v0/cash/price/" + currency.toLowerCase())]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data.price]; - case 2: - error_1 = _a.sent(); - if (error_1.response && error_1.response.data) - throw error_1.response.data; - else - throw error_1; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - return Price; -}()); -exports.Price = Price; diff --git a/lib/RawTransactions.js b/lib/RawTransactions.js deleted file mode 100644 index d0a70bf2..00000000 --- a/lib/RawTransactions.js +++ /dev/null @@ -1,207 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var axios_1 = require("axios"); -var RawTransactions = /** @class */ (function () { - function RawTransactions(restURL) { - this.restURL = restURL; - } - RawTransactions.prototype.decodeRawTransaction = function (hex) { - return __awaiter(this, void 0, void 0, function () { - var response, options, response, error_1; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof hex === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios_1.default.get(this.restURL + "rawtransactions/decodeRawTransaction/" + hex)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data - // Array of hexes - ]; - case 2: - if (!Array.isArray(hex)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "rawtransactions/decodeRawTransaction", - data: { - hexes: hex - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input must be a string or array of strings."); - case 5: - error_1 = _a.sent(); - if (error_1.response && error_1.response.data) - throw error_1.response.data; - else - throw error_1; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - RawTransactions.prototype.decodeScript = function (script) { - return __awaiter(this, void 0, void 0, function () { - var response, options, response, error_2; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof script === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios_1.default.get(this.restURL + "rawtransactions/decodeScript/" + script)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - if (!Array.isArray(script)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "rawtransactions/decodeScript", - data: { - hexes: script - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input must be a string or array of strings."); - case 5: - error_2 = _a.sent(); - if (error_2.response && error_2.response.data) - throw error_2.response.data; - else - throw error_2; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - RawTransactions.prototype.getRawTransaction = function (txid, verbose) { - if (verbose === void 0) { verbose = false; } - return __awaiter(this, void 0, void 0, function () { - var response, options, response, error_3; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof txid === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios_1.default.get(this.restURL + "rawtransactions/getRawTransaction/" + txid + "?verbose=" + verbose)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - if (!Array.isArray(txid)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "rawtransactions/getRawTransaction", - data: { - txids: txid, - verbose: verbose - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input must be a string or array of strings."); - case 5: - error_3 = _a.sent(); - if (error_3.response && error_3.response.data) - throw error_3.response.data; - else - throw error_3; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - RawTransactions.prototype.sendRawTransaction = function (hex, allowhighfees) { - if (allowhighfees === void 0) { allowhighfees = false; } - return __awaiter(this, void 0, void 0, function () { - var response, options, response, error_4; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof hex === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios_1.default.get(this.restURL + "rawtransactions/sendRawTransaction/" + hex)]; - case 1: - response = _a.sent(); - if (response.data === "66: insufficient priority") { - console.warn("WARN: Insufficient Priority! This is likely due to a fee that is too low, or insufficient funds.\n Please ensure that there is BCH in the given wallet. If you are running on the testnet, get some\n BCH from the testnet faucet at https://developer.bitcoin.com/faucets/bch"); - } - return [2 /*return*/, response.data - // Array input - ]; - case 2: - if (!Array.isArray(hex)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "rawtransactions/sendRawTransaction", - data: { - hexes: hex - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input hex must be a string or array of strings."); - case 5: - error_4 = _a.sent(); - if (error_4.response && error_4.response.data) - throw error_4.response.data; - else - throw error_4; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - return RawTransactions; -}()); -exports.RawTransactions = RawTransactions; diff --git a/lib/Schnorr.js b/lib/Schnorr.js deleted file mode 100644 index f9b85f7a..00000000 --- a/lib/Schnorr.js +++ /dev/null @@ -1,57 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var schnorr = require("bip-schnorr"); -var Schnorr = /** @class */ (function () { - function Schnorr() { - } - Schnorr.prototype.sign = function (privateKey, message) { - return schnorr.sign(privateKey, message); - }; - Schnorr.prototype.verify = function (publicKey, message, signatureToVerify) { - return schnorr.verify(publicKey, message, signatureToVerify); - }; - Schnorr.prototype.batchVerify = function (publicKeys, messages, signaturesToVerify) { - return schnorr.batchVerify(publicKeys, messages, signaturesToVerify); - }; - Schnorr.prototype.nonInteractive = function (privateKeys, message) { - return schnorr.muSig.nonInteractive(privateKeys, message); - }; - Schnorr.prototype.computeEll = function (publicKeys) { - return schnorr.muSig.computeEll(publicKeys); - }; - Schnorr.prototype.publicKeyCombine = function (publicKeys, publicKeyHash) { - return schnorr.muSig.pubKeyCombine(publicKeys, publicKeyHash); - }; - Schnorr.prototype.sessionInitialize = function (sessionId, privateKey, message, pubKeyCombined, ell, idx) { - return schnorr.muSig.sessionInitialize(sessionId, privateKey, message, pubKeyCombined, ell, idx); - }; - Schnorr.prototype.sessionNonceCombine = function (session, nonces) { - return schnorr.muSig.sessionNonceCombine(session, nonces); - }; - Schnorr.prototype.partialSign = function (session, message, nonceCombined, pubKeyCombined) { - return schnorr.muSig.partialSign(session, message, nonceCombined, pubKeyCombined); - }; - Schnorr.prototype.partialSignatureVerify = function (session, partialSignature, nonceCombined, idx, pubKey, nonce) { - return schnorr.muSig.partialSigVerify(session, partialSignature, nonceCombined, idx, pubKey, nonce); - }; - Schnorr.prototype.partialSignaturesCombine = function (nonceCombined, partialSignatures) { - return schnorr.muSig.partialSigCombine(nonceCombined, partialSignatures); - }; - Schnorr.prototype.bufferToInt = function (buffer) { - return schnorr.convert.bufferToInt(buffer); - }; - Schnorr.prototype.intToBuffer = function (bigInteger) { - return schnorr.convert.intToBuffer(bigInteger); - }; - Schnorr.prototype.hash = function (buffer) { - return schnorr.convert.hash(buffer); - }; - Schnorr.prototype.pointToBuffer = function (point) { - return schnorr.convert.pointToBuffer(point); - }; - Schnorr.prototype.pubKeyToPoint = function (publicKey) { - return schnorr.convert.pubKeyToPoint(publicKey); - }; - return Schnorr; -}()); -exports.Schnorr = Schnorr; diff --git a/lib/Script.js b/lib/Script.js deleted file mode 100644 index 4de33b6b..00000000 --- a/lib/Script.js +++ /dev/null @@ -1,61 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var Bitcoin = require("bitcoincashjs-lib"); -var opcodes = require("bitcoincash-ops"); -var Script = /** @class */ (function () { - function Script() { - this.opcodes = opcodes; - this.nullData = Bitcoin.script.nullData; - this.multisig = { - input: { - encode: function (signatures) { - var sigs = []; - signatures.forEach(function (sig) { - sigs.push(sig); - }); - return Bitcoin.script.multisig.input.encode(sigs); - }, - decode: Bitcoin.script.multisig.input.decode, - check: Bitcoin.script.multisig.input.check - }, - output: { - encode: function (m, pubKeys) { - var pks = []; - pubKeys.forEach(function (pubKey) { - pks.push(pubKey); - }); - return Bitcoin.script.multisig.output.encode(m, pks); - }, - decode: Bitcoin.script.multisig.output.decode, - check: Bitcoin.script.multisig.output.check - } - }; - this.pubKey = Bitcoin.script.pubKey; - this.pubKeyHash = Bitcoin.script.pubKeyHash; - this.scriptHash = Bitcoin.script.scriptHash; - } - Script.prototype.classifyInput = function (script) { - return Bitcoin.script.classifyInput(script); - }; - Script.prototype.classifyOutput = function (script) { - return Bitcoin.script.classifyOutput(script); - }; - Script.prototype.decode = function (scriptBuffer) { - return Bitcoin.script.decompile(scriptBuffer); - }; - Script.prototype.encode = function (scriptChunks) { - var arr = []; - scriptChunks.forEach(function (chunk) { - arr.push(chunk); - }); - return Bitcoin.script.compile(arr); - }; - Script.prototype.toASM = function (buffer) { - return Bitcoin.script.toASM(buffer); - }; - Script.prototype.fromASM = function (asm) { - return Bitcoin.script.fromASM(asm); - }; - return Script; -}()); -exports.Script = Script; diff --git a/lib/Socket.js b/lib/Socket.js deleted file mode 100644 index aaf17cd8..00000000 --- a/lib/Socket.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var io = require("socket.io-client"); -var Socket = /** @class */ (function () { - function Socket(config) { - if (config === void 0) { config = {}; } - if (typeof config === "string") { - // TODO remove this check in v2.0 - this.socket = io("" + config); - } - else { - if (config.restURL) { - this.socket = io("" + config.restURL); - } - else { - var restURL = "https://rest.bitcoin.com"; - this.socket = io("" + restURL); - } - if (config.callback) - config.callback(); - } - } - Socket.prototype.listen = function (endpoint, cb) { - this.socket.emit(endpoint); - if (endpoint === "blocks") - this.socket.on("blocks", function (msg) { return cb(msg); }); - else if (endpoint === "transactions") - this.socket.on("transactions", function (msg) { return cb(msg); }); - }; - return Socket; -}()); -exports.Socket = Socket; diff --git a/lib/Transaction.js b/lib/Transaction.js deleted file mode 100644 index 17ba6990..00000000 --- a/lib/Transaction.js +++ /dev/null @@ -1,85 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var axios_1 = require("axios"); -var Transaction = /** @class */ (function () { - function Transaction(restURL) { - this.restURL = restURL; - } - Transaction.prototype.details = function (txid) { - return __awaiter(this, void 0, void 0, function () { - var response, options, response, error_1; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof txid === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios_1.default.get(this.restURL + "transaction/details/" + txid)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data - // Array of addresses - ]; - case 2: - if (!Array.isArray(txid)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "transaction/details", - data: { - txids: txid - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input txid must be a string or array of strings."); - case 5: - error_1 = _a.sent(); - if (error_1.response && error_1.response.data) - throw error_1.response.data; - else - throw error_1; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - return Transaction; -}()); -exports.Transaction = Transaction; diff --git a/lib/TransactionBuilder.js b/lib/TransactionBuilder.js deleted file mode 100644 index 76ad491e..00000000 --- a/lib/TransactionBuilder.js +++ /dev/null @@ -1,79 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var Bitcoin = require("bitcoincashjs-lib"); -var coininfo = require("coininfo"); -var bip66 = require("bip66"); -var bip68 = require("bc-bip68"); -var TransactionBuilder = /** @class */ (function () { - function TransactionBuilder(network) { - if (network === void 0) { network = "mainnet"; } - var bitcoincash; - if (network === "bitcoincash" || network === "mainnet") - bitcoincash = coininfo.bitcoincash.main; - else - bitcoincash = coininfo.bitcoincash.test; - var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); - this.transaction = new Bitcoin.TransactionBuilder(bitcoincashBitcoinJSLib); - this.DEFAULT_SEQUENCE = 0xffffffff; - this.hashTypes = { - SIGHASH_ALL: 0x01, - SIGHASH_NONE: 0x02, - SIGHASH_SINGLE: 0x03, - SIGHASH_ANYONECANPAY: 0x80, - SIGHASH_BITCOINCASH_BIP143: 0x40, - ADVANCED_TRANSACTION_MARKER: 0x00, - ADVANCED_TRANSACTION_FLAG: 0x01 - }; - this.signatureAlgorithms = { - ECDSA: Bitcoin.ECSignature.ECDSA, - SCHNORR: Bitcoin.ECSignature.SCHNORR - }; - this.bip66 = bip66; - this.bip68 = bip68; - this.p2shInput = false; - this.tx; - } - TransactionBuilder.setAddress = function (address) { - TransactionBuilder._address = address; - }; - TransactionBuilder.prototype.addInput = function (txHash, vout, sequence, prevOutScript) { - if (sequence === void 0) { sequence = this.DEFAULT_SEQUENCE; } - this.transaction.addInput(txHash, vout, sequence, prevOutScript); - }; - TransactionBuilder.prototype.addInputScript = function (vout, script) { - this.tx = this.transaction.buildIncomplete(); - this.tx.setInputScript(vout, script); - this.p2shInput = true; - }; - TransactionBuilder.prototype.addInputScripts = function (scripts) { - var _this = this; - this.tx = this.transaction.buildIncomplete(); - scripts.forEach(function (script) { - _this.tx.setInputScript(script.vout, script.script); - }); - this.p2shInput = true; - }; - TransactionBuilder.prototype.addOutput = function (scriptPubKey, amount) { - try { - this.transaction.addOutput(TransactionBuilder._address.toLegacyAddress(scriptPubKey), amount); - } - catch (error) { - this.transaction.addOutput(scriptPubKey, amount); - } - }; - TransactionBuilder.prototype.setLockTime = function (locktime) { - this.transaction.setLockTime(locktime); - }; - TransactionBuilder.prototype.sign = function (vin, keyPair, redeemScript, hashType, value, signatureAlgorithm) { - if (hashType === void 0) { hashType = this.hashTypes.SIGHASH_ALL; } - var witnessScript; - this.transaction.sign(vin, keyPair, redeemScript, hashType, value, witnessScript, signatureAlgorithm); - }; - TransactionBuilder.prototype.build = function () { - if (this.p2shInput === true) - return this.tx; - return this.transaction.build(); - }; - return TransactionBuilder; -}()); -exports.TransactionBuilder = TransactionBuilder; diff --git a/lib/Util.js b/lib/Util.js deleted file mode 100644 index 8af8c142..00000000 --- a/lib/Util.js +++ /dev/null @@ -1,85 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var axios_1 = require("axios"); -var Util = /** @class */ (function () { - function Util(restURL) { - this.restURL = restURL; - } - Util.prototype.validateAddress = function (address) { - return __awaiter(this, void 0, void 0, function () { - var response, options, response, error_1; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof address === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios_1.default.get(this.restURL + "util/validateAddress/" + address)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data - // Array of blocks. - ]; - case 2: - if (!Array.isArray(address)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "util/validateAddress", - data: { - addresses: address - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input must be a string or array of strings."); - case 5: - error_1 = _a.sent(); - if (error_1.response && error_1.response.data) - throw error_1.response.data; - else - throw error_1; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - return Util; -}()); -exports.Util = Util; diff --git a/lib/Wallet.js b/lib/Wallet.js deleted file mode 100644 index fd62e387..00000000 --- a/lib/Wallet.js +++ /dev/null @@ -1,10 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -// import BCHWalletBridge from "bch-wallet-bridge.js" -var Wallet = /** @class */ (function () { - function Wallet(walletProvider) { - // this.bchWalletBridge = new BCHWalletBridge(walletProvider) - } - return Wallet; -}()); -exports.Wallet = Wallet; diff --git a/lib/interfaces/BITBOXInterfaces.js b/lib/interfaces/BITBOXInterfaces.js deleted file mode 100644 index c8ad2e54..00000000 --- a/lib/interfaces/BITBOXInterfaces.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); From 11e2545676bdce1d87a8b1346e189aa0c02780f9 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 8 May 2019 12:25:32 +0900 Subject: [PATCH 287/480] Remove typings. --- package.json | 2 +- typings/Address.d.ts | 67 ----------- typings/BITBOX.d.ts | 45 -------- typings/BitcoinCash.d.ts | 35 ------ typings/Block.d.ts | 26 ----- typings/Blockchain.d.ts | 105 ------------------ typings/Control.d.ts | 30 ----- typings/Crypto.d.ts | 9 -- typings/ECPair.d.ts | 23 ---- typings/Generating.d.ts | 4 - typings/HDNode.d.ts | 42 ------- typings/Mining.d.ts | 7 -- typings/Mnemonic.d.ts | 12 -- typings/Network.d.ts | 12 -- typings/Price.d.ts | 5 - typings/RawTransactions.d.ts | 21 ---- typings/Script.d.ts | 190 -------------------------------- typings/Socket.d.ts | 6 - typings/Transaction.d.ts | 27 ----- typings/TransactionBuilder.d.ts | 51 --------- typings/Util.d.ts | 16 --- yarn.lock | 34 +----- 22 files changed, 5 insertions(+), 764 deletions(-) delete mode 100644 typings/Address.d.ts delete mode 100644 typings/BITBOX.d.ts delete mode 100644 typings/BitcoinCash.d.ts delete mode 100644 typings/Block.d.ts delete mode 100644 typings/Blockchain.d.ts delete mode 100644 typings/Control.d.ts delete mode 100644 typings/Crypto.d.ts delete mode 100644 typings/ECPair.d.ts delete mode 100644 typings/Generating.d.ts delete mode 100644 typings/HDNode.d.ts delete mode 100644 typings/Mining.d.ts delete mode 100644 typings/Mnemonic.d.ts delete mode 100644 typings/Network.d.ts delete mode 100644 typings/Price.d.ts delete mode 100644 typings/RawTransactions.d.ts delete mode 100644 typings/Script.d.ts delete mode 100644 typings/Socket.d.ts delete mode 100644 typings/Transaction.d.ts delete mode 100644 typings/TransactionBuilder.d.ts delete mode 100644 typings/Util.d.ts diff --git a/package.json b/package.json index 2053fe20..89af4208 100644 --- a/package.json +++ b/package.json @@ -84,6 +84,6 @@ "prettier": "^1.14.2", "semantic-release": "^15.13.3", "sinon": "^4.5.0", - "typescript": "^3.1.4" + "typescript": "^3.4.5" } } diff --git a/typings/Address.d.ts b/typings/Address.d.ts deleted file mode 100644 index 661eecae..00000000 --- a/typings/Address.d.ts +++ /dev/null @@ -1,67 +0,0 @@ -export interface Address { - restURL: string; - //constructor(restURL: string); - toLegacyAddress(address: string): string; - toCashAddress(address: string, prefix?: boolean, regtest?: boolean): string; - toHash160(address: string): string; - hash160ToLegacy(hash160: string, network?: number): string; - hash160ToCash(hash160: string, network?: number, regtest?: boolean): string; - isLegacyAddress(address: string): boolean; - isCashAddress(address: string): boolean; - isMainnetAddress(address: string): boolean; - isTestnetAddress(address: string): boolean; - isRegTestAddress(address: string): boolean; - isP2PKHAddress(address: string): boolean; - isP2SHAddress(address: string): boolean; - detectAddressFormat(address: string): string; - detectAddressNetwork(address: string): string; - detectAddressType(address: string): string; - fromXPub(xpub: string, path?: string): string; - fromOutputScript(scriptPubKey:Buffer, network?: string): string; - details(address: string[]): Promise; - utxo(address: string[]): Promise; - unconfirmed(address: string[]): Promise; -} - -export interface AddressDetailsResult { - balance: number; - balanceSat: number; - totalReceived: number; - totalReceivedSat: number; - totalSent: number; - totalSentSat: number; - unconfirmedBalance: number; - unconfirmedBalanceSat: number; - unconfirmedTxApperances: number; - txApperances: number; - transactions: string[]; - legacyAddress: string; - cashAddress: string; -} - -export interface AddressUtxoResult { - legacyAddress: string; - cashAddress: string; - scriptPubKey: string; - utxos: - [{ - txid: string; - vout: number; - amount: number; - satoshis: number; - height: number; - confirmations: number; - }] -} - -export interface AddressUnconfirmedResult { - txid: string; - vout: number; - scriptPubKey: string; - amount: number; - satoshis: number; - confirmations: number; - ts: number; - legacyAddress: string; - cashAddress: string; -} \ No newline at end of file diff --git a/typings/BITBOX.d.ts b/typings/BITBOX.d.ts deleted file mode 100644 index 5f58ad2f..00000000 --- a/typings/BITBOX.d.ts +++ /dev/null @@ -1,45 +0,0 @@ -// local deps -import { BitcoinCash } from "./BitcoinCash" -import { Crypto } from "./Crypto" -import { Util } from "./Util" -import { Block } from "./Block" -import { Blockchain } from "./Blockchain" -import { Control } from "./Control" -import { Generating } from "./Generating" -import { Mining } from "./Mining" -import { RawTransactions } from "./RawTransactions" -import { Mnemonic } from "./Mnemonic" -import { Address } from "./Address" -import { HDNode } from "./HDNode" -import { Transaction } from "./Transaction" -import { TransactionBuilder } from "./TransactionBuilder" -import { ECPair } from "./ECPair" -import { Script } from "./Script" -import Price from "./Price" -import Socket from "./Socket" - -declare class BITBOXSDK { - constructor(config?: any) - - restURL: string - Address: Address - BitcoinCash: BitcoinCash - Block: Block - Blockchain: Blockchain - Control: Control - Generating: Generating - Mining: Mining - Crypto: Crypto - ECPair: ECPair - HDNode: HDNode - Mnemonic: Mnemonic - Price: Price - RawTransactions: RawTransactions - Script: Script - Transaction: Transaction - TransactionBuilder: TransactionBuilder - Util: Util - Socket: Socket -} - -export default BITBOXSDK diff --git a/typings/BitcoinCash.d.ts b/typings/BitcoinCash.d.ts deleted file mode 100644 index 22fbaf5b..00000000 --- a/typings/BitcoinCash.d.ts +++ /dev/null @@ -1,35 +0,0 @@ -export declare interface BitcoinCash { - toSatoshi(coins: number): number; - toBitcoinCash(satoshis: number): number; - toBits(satoshis: number): number; - satsToBits(satoshis: number): number; - signMessageWithPrivKey(privateKeyWIF: string, message: string): string; - verifyMessage(address : string, signature: string, message: string): Boolean; - encodeBase58Check(hex: string): string; - decodeBase58Check(address: string): string; - encodeBIP21(address: string, options: EncodeBIP21Options, regtest?: boolean): string; - decodeBIP21(url: string): BIP21Object; - getByteCount(inputs: ByteCountInput|object, outputs: ByteCountOutput): number; - encryptBIP38(privKeyWIF: string, passphrase: string): string; - decryptBIP38(encryptedKey: string, passphrase: string, network?: string): string; -} - -declare interface EncodeBIP21Options { - amount?: number; - label?: string; - message?: string; -} - -declare interface BIP21Object { - address: string; - options?: EncodeBIP21Options -} - -declare interface ByteCountInput { - P2PKH?: number; -} - -declare interface ByteCountOutput { - P2PKH?: number; - P2SH?: number; -} \ No newline at end of file diff --git a/typings/Block.d.ts b/typings/Block.d.ts deleted file mode 100644 index a5e45062..00000000 --- a/typings/Block.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -export declare interface Block { - //constructor(restURL: string); - details(id: number): Promise; -} - -export declare interface BlockDetails { - hash: string; - size: number; - height: number; - version: number; - merkleroot: string; - tx: string[]; - time: number; - mediantime?: number; - nonce: number; - bits: string; - difficulty: number; - chainwork: string; - confirmations: number; - previousblockhash: string; - nextblockhash: string; - reward: number; - isMainChain: boolean; - poolInfo: object; -} - diff --git a/typings/Blockchain.d.ts b/typings/Blockchain.d.ts deleted file mode 100644 index 8968e143..00000000 --- a/typings/Blockchain.d.ts +++ /dev/null @@ -1,105 +0,0 @@ -import { BlockDetails } from './Block'; - -export declare interface Blockchain { - //constructor(restURL:string); - getBestBlockHash(): Promise; - getBlock(blockhash: string, verbose?: boolean):Promise; - getBlockchainInfo(): Promise; - getBlockCount(): Promise; - getBlockHash(height: number): Promise; - getBlockHeader(hash: string, verbose?: boolean): Promise; - getChainTips(): Promise; - getDifficulty(): Promise; - getMempoolAncestors(txid: string, verbose?: boolean): Promise; - getMempoolDescendants(txid: string, verbose?: boolean): Promise; - getMempoolEntry(txid:string): Promise; - getMempoolInfo(): Promise; - getRawMempool(verbose?:boolean): Promise; - getTxOut(txid:string, n:number, include_mempool?: boolean): Promise; - getTxOutProof(txids:string, blockhash:string): Promise; - preciousBlock(blockhash:string): Promise; - pruneBlockchain(height:number): Promise; - verifyChain(checklevel?:number, nblocks?:number): Promise; - verifyTxOutProof(proof:string): Promise; -} - -export interface MempoolInfo { - size: number; - bytes: number; - usage: number; - maxmempool: number; - mempoolminfee: number; -} - -export interface BlockchainInfo { - chain: string; - blocks: number; - headers: number; - bestblockhash: string; - difficulty: number; - mediantime: number; - verificationprogress: number; - chainwork: string; - pruned: boolean; - softforks: object[] - bip9_softforks: object; -} - -export interface BlockHeader { - hash: string; - confirmations: number; - height: number; - version: number; - versionHex: string; - merkleroot: string; - time: number; - mediantime: number; - nonce: number; - bits: string; - difficulty: number; - chainwork: string; - previousblockhash: string; - nextblockhash: string; -} - -export interface ChainTip { - height:number; - hash: string; - branchlen: number; - status: string; -} - -export interface TxOut { - bestblock: string, - confirmations: number, - value: number, - scriptPubKey: { - asm: string, - hex: string, - reqSigs: number, - type: string, - addresses: string[] - }, - version: number, - coinbase: boolean -} - -//export interface RawMempoolTxn { - - // [ {'2ae541af20db6f2b50410f418af56e349d08877d685f6cf54df54658e892db7a': - // { size: 237, - // fee: 0.00000238, - // modifiedfee: 0.00000238, - // time: 1525732015, - // height: 529235, - // startingpriority: 0, - // currentpriority: 0, - // descendantcount: 10, - // descendantsize: 2376, - // descendantfees: 2380, - // ancestorcount: 3, - // ancestorsize: 712, - // ancestorfees: 714, - // depends: - // [ 'e25682caafc7000645d59f4c11d8d594b2943979b9d8fafb9f946e2b35c21b7e' ] },] -//} \ No newline at end of file diff --git a/typings/Control.d.ts b/typings/Control.d.ts deleted file mode 100644 index 3aa39ff8..00000000 --- a/typings/Control.d.ts +++ /dev/null @@ -1,30 +0,0 @@ -export declare interface Control { - //constructor(restURL:string); - getInfo(): Promise; - getMemoryInfo():Promise; -} - -declare interface NodeInfo { - version: number; - protocolversion: number; - blocks: number; - timeoffset: number; - connections: number; - proxy: string; - difficulty: number; - testnet: boolean; - paytxfee: number; - relayfee: number; - errors: string; -} - -declare interface NodeMemoryInfo { - locked: { - used: number, - free: number, - total: number, - locked: number, - chunks_used: number, - chunks_free: number - } -} \ No newline at end of file diff --git a/typings/Crypto.d.ts b/typings/Crypto.d.ts deleted file mode 100644 index d181e9f5..00000000 --- a/typings/Crypto.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import {Buffer} from 'buffer'; - -export declare interface Crypto { - sha256(buffer: Buffer): Buffer; - ripemd160(buffer: Buffer): Buffer; - hash256(buffer: Buffer): Buffer; - hash160(buffer: Buffer): Buffer; - randomBytes(size: number): Buffer; -} \ No newline at end of file diff --git a/typings/ECPair.d.ts b/typings/ECPair.d.ts deleted file mode 100644 index 9cbba8dd..00000000 --- a/typings/ECPair.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -import {Buffer} from 'buffer'; - -declare type ECSignature = any; - -export declare interface ECPair { - //constructor(); - fromWIF(privateKeyWIF: string): ECPair; - toWif(): string; - toWIF(ecpair: ECPair): string; - sign(sigHash: number): ECSignature; - sign(ecpair: ECPair, sigHash: number): ECSignature; - sign(buffer: Buffer): Boolean | ECSignature; - sign(ecpair: ECPair, buffer: Buffer): Boolean | ECSignature; - verify(buffer: Buffer, signature: ECSignature): boolean; - verify(ecpair: ECPair, buffer: Buffer, signature: ECSignature): boolean; - fromPublicKey(pubkeyBuffer: string): ECPair; - toPublicKey(): Buffer; - toPublicKey(ecpair: ECPair): Buffer; - toLegacyAddress(): string; - toLegacyAddress(ecpair: ECPair): string; - toCashAddress(): string; - toCashAddress(ecpair: ECPair, regtest?: boolean): string; -} \ No newline at end of file diff --git a/typings/Generating.d.ts b/typings/Generating.d.ts deleted file mode 100644 index 0153cffd..00000000 --- a/typings/Generating.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export declare interface Generating { - //constructor(restURL:string); - generateToAddress(blocks:number, address:string, maxtries:number):Promise; -} \ No newline at end of file diff --git a/typings/HDNode.d.ts b/typings/HDNode.d.ts deleted file mode 100644 index ecd9d293..00000000 --- a/typings/HDNode.d.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { Buffer } from "buffer" - -import { ECPair, ECSignature } from "./ECPair" - -export declare interface HDNode { - fromSeed(rootSeedBuffer: Buffer, network?: string): HDNode - toLegacyAddress(): string - toLegacyAddress(hdNode: HDNode): string - toCashAddress(): string - toCashAddress(hdNode: HDNode, regtest?: boolean): string - toWIF(): string - toWIF(hdNode: HDNode): string - toXPub(): string - toXPub(hdNode: HDNode): string - toXPriv(): string - toXPriv(hdNode: HDNode): string - toKeyPair(): ECPair - toKeyPair(hdNode: HDNode): ECPair - toPublicKey(): Buffer - toPublicKey(hdNode: HDNode): Buffer - fromXPriv(xpriv: string): HDNode - fromXPub(xpub: string): HDNode - derivePath(path: string): HDNode - derivePath(hdNode: HDNode, path: string): HDNode - derive(num: number): HDNode - derive(hdNode: HDNode, num: number): HDNode - deriveHardened(num: number): HDNode - deriveHardened(hdNode: HDNode, num: number): HDNode - sign(buffer: Buffer): ECSignature - sign(hdNode: HDNode, buffer: Buffer): ECSignature - verify(buffer: Buffer, signature: ECSignature): boolean - verify(hdNode: HDNode, buffer: Buffer, signature: ECSignature): boolean - isPublic(): boolean - isPublic(hdNode: HDNode): boolean - isPrivate(): boolean - isPrivate(hdNode: HDNode): boolean - toIdentifier(): string - toIdentifier(hdNode: HDNode): string - fromBase58(base58: string, network: string): string - createAccount(hdNodes: Array): object - createChain(hdNode: HDNode): object -} diff --git a/typings/Mining.d.ts b/typings/Mining.d.ts deleted file mode 100644 index 76333f77..00000000 --- a/typings/Mining.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -export declare interface Mining { - //constructor(restURL:string); - getBlockTemplate(template_request?:any):Promise; - getMiningInfo():Promise; - getNetworkHashps(nblocks?:number, height?:number):Promise; - submitBlock(hex:string, parameters?:string):Promise; -} \ No newline at end of file diff --git a/typings/Mnemonic.d.ts b/typings/Mnemonic.d.ts deleted file mode 100644 index f839d318..00000000 --- a/typings/Mnemonic.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import {Buffer} from 'buffer'; - -export declare interface Mnemonic { - generate(bits: number, wordlist?: string[]): string; - fromEntropy(bytes: Buffer, wordlist?: string[]): string; - toEntropy(mnemonic: string, wordlist?: string[]): Buffer; - validate(mnemonic: string, wordlist?: string[]): boolean; - toSeed(mnemonic: string, passphrase?: string): Buffer; - wordLists(): any; - toKeypairs(mnemonic: string, numberOfKeypairs?: number, regtest?: boolean): { privateKeyWIF: string, address: string}[]; - findNearestWord(word: string, wordlist: string[]): string; -} \ No newline at end of file diff --git a/typings/Network.d.ts b/typings/Network.d.ts deleted file mode 100644 index 43e07f95..00000000 --- a/typings/Network.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -export declare interface Network { - //constructor(restURL:string); - //addNode(node:string, command:string):any; - //clearBanned():any; - //disconnectNode(configuration:object):any; - //getAddedNodeInfo(node?:string):any; - getConnectionCount():Promise; - getNetTotals():Promise; - getNetworkInfo():Promise; - getPeerInfo():Promise; - ping():Promise; -} \ No newline at end of file diff --git a/typings/Price.d.ts b/typings/Price.d.ts deleted file mode 100644 index 5e4ddcf9..00000000 --- a/typings/Price.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare interface Price { - current(currency?: string): Promise; -} - -export default Price; \ No newline at end of file diff --git a/typings/RawTransactions.d.ts b/typings/RawTransactions.d.ts deleted file mode 100644 index d5470a8d..00000000 --- a/typings/RawTransactions.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -export interface RawTransactions { - decodeRawTransaction(hex:string):Promise; - decodeScript(hex: string):Promise; - getRawTransaction(txids: string[]): Promise; - getRawTransaction(txids: string[], verbose:boolean): Promise; // verbose must be set to true - sendRawTransaction(hex: string, allowhighfees?:boolean): Promise; -} - -export interface VerboseRawTransaction { - hex: string; - txid: string; - size: number; - version: number; - locktime: number; - vin: [{ coinbase: string; sequence: number }] - vout: [{value: number; n: number; scriptPubKey: { asm: string; hex: string; reqSigs: number; type: string; addresses: string[] }}] - blockhash: string; - confirmations: number; - time: number; - blocktime: number; -} \ No newline at end of file diff --git a/typings/Script.d.ts b/typings/Script.d.ts deleted file mode 100644 index 779c07fe..00000000 --- a/typings/Script.d.ts +++ /dev/null @@ -1,190 +0,0 @@ -import {Buffer} from 'buffer'; - -export declare interface Script { - opcodes: opcodes; - // nullData: null; - // multisig: string; - // pubKey: string; - // pubKeyHash: string; - scriptHash: any; - - //constructor(); - classifyInput(script:Buffer):any; - classifyOutput(script:Buffer):any; - decode(scriptBuffer:Buffer):any[]; - encode(scriptChunks:any[]):Buffer; - toASM(buffer: Buffer): string; - fromASM(asm: string): Buffer; - encodeNullDataOutput(data: Buffer): Buffer; - decodeNullDataOutput(output: Buffer): Buffer; - checkNullDataOutput(ouput: Buffer): Boolean; - encodeP2PKInput(signature: Buffer): Buffer; - decodeP2PKInput(input: Buffer): Buffer; - checkP2PKInput(input: Buffer): Boolean; - encodeP2PKOutput(pubKey: Buffer): Buffer; - decodeP2PKOutput(pubKey: Buffer): Buffer; - checkP2PKOutput(ouput: Buffer): Boolean; - encodeP2PKHInput(signature: Buffer, pubKey: Buffer): Buffer; - decodeP2PKHInput(signature: Buffer): Buffer; - checkP2PKHInput(input: Buffer): Boolean; - encodeP2PKHOutput(signature: Buffer, pubKey: Buffer): Buffer; - decodeP2PKHOutput(output: Buffer): Buffer; - checkP2PKHOutput(output: Buffer): Boolean; - encodeP2MSInput(signatures: Buffer[]): Buffer; - decodeP2MSInput(input: Buffer): Buffer; - checkP2MSInput(input: Buffer): Boolean; - encodeP2MSOutput(m: number, pubKeys: Buffer[]): Buffer; - decodeP2MSOutput(output: Buffer): Buffer; - checkP2MSOutput(input: Buffer): Boolean; - encodeP2SHInput(redeemScriptSig: Buffer, redeemScript: Buffer): Buffer; - decodeP2SHInput(input: Buffer): Buffer; - checkP2SHInput(input: Buffer): boolean; - encodeP2SHOutput(scriptHash: Buffer): Buffer; - decodeP2SHOutput(output: Buffer): Buffer; - checkP2SHOutput(output: Buffer): Boolean; - classifyInput(input: Buffer): string; - classifyOutput(output: Buffer): string; -} - -declare interface opcodes { - "OP_FALSE": 0, - "OP_0": 0, - "OP_PUSHDATA1": 76, - "OP_PUSHDATA2": 77, - "OP_PUSHDATA4": 78, - "OP_1NEGATE": 79, - "OP_RESERVED": 80, - "OP_TRUE": 81, - "OP_1": 81, - "OP_2": 82, - "OP_3": 83, - "OP_4": 84, - "OP_5": 85, - "OP_6": 86, - "OP_7": 87, - "OP_8": 88, - "OP_9": 89, - "OP_10": 90, - "OP_11": 91, - "OP_12": 92, - "OP_13": 93, - "OP_14": 94, - "OP_15": 95, - "OP_16": 96, - - "OP_NOP": 97, - "OP_VER": 98, - "OP_IF": 99, - "OP_NOTIF": 100, - "OP_VERIF": 101, - "OP_VERNOTIF": 102, - "OP_ELSE": 103, - "OP_ENDIF": 104, - "OP_VERIFY": 105, - "OP_RETURN": 106, - - "OP_TOALTSTACK": 107, - "OP_FROMALTSTACK": 108, - "OP_2DROP": 109, - "OP_2DUP": 110, - "OP_3DUP": 111, - "OP_2OVER": 112, - "OP_2ROT": 113, - "OP_2SWAP": 114, - "OP_IFDUP": 115, - "OP_DEPTH": 116, - "OP_DROP": 117, - "OP_DUP": 118, - "OP_NIP": 119, - "OP_OVER": 120, - "OP_PICK": 121, - "OP_ROLL": 122, - "OP_ROT": 123, - "OP_SWAP": 124, - "OP_TUCK": 125, - - "OP_CAT": 126, - //"OP_SUBSTR": 127, -- replaced w/ OP_SPLIT see below - //"OP_LEFT": 128, -- replaced w/ OP_SPLIT see below - //"OP_RIGHT": 129, -- replaced w/ OP_SPLIT see below - "OP_SIZE": 130, - - "OP_INVERT": 131, - "OP_AND": 132, // May 2018 reenabled - "OP_OR": 133, // May 2018 reenabled - "OP_XOR": 134, // May 2018 reenabled - "OP_EQUAL": 135, - "OP_EQUALVERIFY": 136, - "OP_RESERVED1": 137, - "OP_RESERVED2": 138, - - "OP_1ADD": 139, - "OP_1SUB": 140, - "OP_2MUL": 141, - "OP_2DIV": 142, - "OP_NEGATE": 143, - "OP_ABS": 144, - "OP_NOT": 145, - "OP_0NOTEQUAL": 146, - "OP_ADD": 147, - "OP_SUB": 148, - "OP_MUL": 149, - "OP_DIV": 150, // May 2018 reenabled - "OP_MOD": 151, // May 2018 reenabled - "OP_LSHIFT": 152, - "OP_RSHIFT": 153, - - "OP_BOOLAND": 154, - "OP_BOOLOR": 155, - "OP_NUMEQUAL": 156, - "OP_NUMEQUALVERIFY": 157, - "OP_NUMNOTEQUAL": 158, - "OP_LESSTHAN": 159, - "OP_GREATERTHAN": 160, - "OP_LESSTHANOREQUAL": 161, - "OP_GREATERTHANOREQUAL": 162, - "OP_MIN": 163, - "OP_MAX": 164, - - "OP_WITHIN": 165, - - "OP_RIPEMD160": 166, - "OP_SHA1": 167, - "OP_SHA256": 168, - "OP_HASH160": 169, - "OP_HASH256": 170, - "OP_CODESEPARATOR": 171, - "OP_CHECKSIG": 172, - "OP_CHECKSIGVERIFY": 173, - "OP_CHECKMULTISIG": 174, - "OP_CHECKMULTISIGVERIFY": 175, - - "OP_NOP1": 176, - - "OP_NOP2": 177, - "OP_CHECKLOCKTIMEVERIFY": 177, - - "OP_NOP3": 178, - "OP_CHECKSEQUENCEVERIFY": 178, - - "OP_NOP4": 179, - "OP_NOP5": 180, - "OP_NOP6": 181, - "OP_NOP7": 182, - "OP_NOP8": 183, - "OP_NOP9": 184, - "OP_NOP10": 185, - - "OP_PUBKEYHASH": 253, - "OP_PUBKEY": 254, - "OP_INVALIDOPCODE": 255 - - // May 2018 added opcodes - "OP_SPLIT": 127, - "OP_NUM2BIN": 128, - "OP_BIN2NUM": 129 - - // Nov 2018 enabled opcodes - // TBD -} - diff --git a/typings/Socket.d.ts b/typings/Socket.d.ts deleted file mode 100644 index 9a6dfba6..00000000 --- a/typings/Socket.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -declare interface Socket { - new(restURL?: string): Socket - listen(endpoint: string, cb: any): void; -} - -export default Socket; diff --git a/typings/Transaction.d.ts b/typings/Transaction.d.ts deleted file mode 100644 index c47bad91..00000000 --- a/typings/Transaction.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -import {Buffer} from 'buffer'; - -import { TransactionBuilder } from './TransactionBuilder'; -export declare interface Transaction { - //constructor(restURL: string); - transaction(): any; - fromHex(hex: string): any; - transactionBuilder(network: string): any; - fromTransaction(tx: any): any; - details(txids: string[]): Promise; -} - -declare interface TxnDetails{ - txid: string; - version: number; - locktime: number; - vin: object[]; - vout: object[]; - blockhash: string; - blockheight: number; - confirmations: number; - time: number; - blocktime: number; - isCoinBase: boolean; - valueOut: number; - size: number; -} \ No newline at end of file diff --git a/typings/TransactionBuilder.d.ts b/typings/TransactionBuilder.d.ts deleted file mode 100644 index 6f23e15a..00000000 --- a/typings/TransactionBuilder.d.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { Buffer } from "buffer" - -import { Transaction } from "./Transaction" -import { ECPair } from "./ECPair" - -declare type ECSignature = any - -export declare interface TransactionBuilder { - // bitcoincash: coininfo.bitcoincash.main; - // bitcoincashBitcoinJSLib: Bitcoin.toBitcoinJS; - transaction: any - DEFAULT_SEQUENCE: number - hashTypes: HashTypes - signatureAlgorithms: SignatureAlgorithms - bip66: any - bip68: any - - new (network?: string): TransactionBuilder - - addInput( - txHash: string | Buffer, - vout: number, - sequence?: number, - prevOutScript?: string - ): void - addInputScript(vout: number, script: Buffer): void - addOutput(scriptPubKey: string | Buffer, amount: number): void - setLockTime(locktime: number): void - sign( - vin: number, - keyPair: ECPair, - redeemScript: Buffer | undefined, - hashType: number, - value: number, - signatureAlgorithm?: number - ): ECSignature - build(): any -} - -declare interface SignatureAlgorithms { - ECDSA: number - SCHNORR: number -} - -declare interface HashTypes { - SIGHASH_ALL: number - SIGHASH_NONE: number - SIGHASH_SINGLE: number - SIGHASH_ANYONECANPAY: number - SIGHASH_BITCOINCASH_BIP143: number -} diff --git a/typings/Util.d.ts b/typings/Util.d.ts deleted file mode 100644 index 756985f5..00000000 --- a/typings/Util.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -export declare interface Util { - //constructor(restURL:string); - validateAddress(address: string): Promise; -} - -declare interface AddressDetails { - isvalid: boolean; - address: string; - scriptPubKey: string; - ismine: boolean; - iswatchonly: boolean; - isscript: boolean; - pubkey: string; - iscompressed: boolean; - account: string; -} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 8d9f1c89..905cda70 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2242,7 +2242,7 @@ debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.0: dependencies: ms "^2.1.1" -debuglog@*, debuglog@^1.0.1: +debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" @@ -3841,7 +3841,7 @@ import-lazy@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" -imurmurhash@*, imurmurhash@^0.1.4: +imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -4629,10 +4629,6 @@ lockfile@^1.0.4: dependencies: signal-exit "^3.0.2" -lodash._baseindexof@*: - version "3.1.0" - resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c" - lodash._baseuniq@~4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8" @@ -4640,28 +4636,10 @@ lodash._baseuniq@~4.6.0: lodash._createset "~4.0.0" lodash._root "~3.0.0" -lodash._bindcallback@*: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" - -lodash._cacheindexof@*: - version "3.0.2" - resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92" - -lodash._createcache@*: - version "3.1.2" - resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093" - dependencies: - lodash._getnative "^3.0.0" - lodash._createset@~4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" -lodash._getnative@*, lodash._getnative@^3.0.0: - version "3.9.1" - resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" - lodash._root@~3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" @@ -4694,10 +4672,6 @@ lodash.isstring@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" -lodash.restparam@*: - version "3.6.1" - resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" - lodash.set@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" @@ -6484,7 +6458,7 @@ readable-stream@~1.1.10: isarray "0.0.1" string_decoder "~0.10.x" -readdir-scoped-modules@*, readdir-scoped-modules@^1.0.0: +readdir-scoped-modules@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747" dependencies: @@ -7655,7 +7629,7 @@ typeforce@^1.11.3: version "1.18.0" resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.18.0.tgz#d7416a2c5845e085034d70fcc5b6cc4a90edbfdc" -typescript@^3.1.4: +typescript@^3.4.5: version "3.4.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.4.5.tgz#2d2618d10bb566572b8d7aad5180d84257d70a99" From 3db6be59450cd6b2d23e42b9eef7a18363e89832 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Thu, 9 May 2019 10:35:45 +0900 Subject: [PATCH 288/480] Add main. --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 89af4208..f79692c4 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "bin": { "bitbox": "./index.js" }, + "main": "lib/BITBOX.js", "homepage": "https://developer.bitcoin.com/bitbox", "repository": { "type": "git", From 63d371d9d279c7d43b15bef4cf4bc1d56c363a5c Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Thu, 9 May 2019 11:06:02 +0900 Subject: [PATCH 289/480] Updates to match slpjs workflow. --- .gitignore | 8 +- gulpfile.js | 18 - index.js | 271 ++-- index.ts | 175 +++ {src => lib}/Address.ts | 0 {src => lib}/BITBOX.ts | 0 {src => lib}/BitcoinCash.ts | 0 {src => lib}/Block.ts | 0 {src => lib}/Blockchain.ts | 0 {src => lib}/Control.ts | 0 {src => lib}/Crypto.ts | 0 {src => lib}/ECPair.ts | 2 +- {src => lib}/Generating.ts | 0 {src => lib}/HDNode.ts | 0 {src => lib}/Mining.ts | 0 {src => lib}/Mnemonic.ts | 0 {src => lib}/Price.ts | 0 {src => lib}/RawTransactions.ts | 0 {src => lib}/Schnorr.ts | 0 {src => lib}/Script.ts | 0 {src => lib}/Socket.ts | 0 {src => lib}/Transaction.ts | 0 {src => lib}/TransactionBuilder.ts | 0 {src => lib}/Util.ts | 0 {src => lib}/Wallet.ts | 0 {src => lib}/interfaces/BITBOXInterfaces.ts | 0 package.json | 9 +- tsconfig.json | 14 +- yarn.lock | 1430 ++++++++----------- 29 files changed, 864 insertions(+), 1063 deletions(-) delete mode 100644 gulpfile.js mode change 100755 => 100644 index.js create mode 100755 index.ts rename {src => lib}/Address.ts (100%) rename {src => lib}/BITBOX.ts (100%) rename {src => lib}/BitcoinCash.ts (100%) rename {src => lib}/Block.ts (100%) rename {src => lib}/Blockchain.ts (100%) rename {src => lib}/Control.ts (100%) rename {src => lib}/Crypto.ts (100%) rename {src => lib}/ECPair.ts (97%) rename {src => lib}/Generating.ts (100%) rename {src => lib}/HDNode.ts (100%) rename {src => lib}/Mining.ts (100%) rename {src => lib}/Mnemonic.ts (100%) rename {src => lib}/Price.ts (100%) rename {src => lib}/RawTransactions.ts (100%) rename {src => lib}/Schnorr.ts (100%) rename {src => lib}/Script.ts (100%) rename {src => lib}/Socket.ts (100%) rename {src => lib}/Transaction.ts (100%) rename {src => lib}/TransactionBuilder.ts (100%) rename {src => lib}/Util.ts (100%) rename {src => lib}/Wallet.ts (100%) rename {src => lib}/interfaces/BITBOXInterfaces.ts (100%) diff --git a/.gitignore b/.gitignore index 7d55898e..abd27b1a 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,10 @@ wallet-info.txt wallet.json package-lock.json -lib/* + +# production +/dist + +*.js +index.js +*.js.map diff --git a/gulpfile.js b/gulpfile.js deleted file mode 100644 index ec2e3ac1..00000000 --- a/gulpfile.js +++ /dev/null @@ -1,18 +0,0 @@ -const gulp = require("gulp") -const fs = require("fs-extra") - -const ASSET_FILES = [ - "src/*.json", - "src/**/*.json", - "src/**/*.jade", - "src/**/*.css", - "src/**/*.png" -] - -gulp.task("build", done => { - fs.emptyDirSync("./lib") - fs.removeSync("./lib") - - gulp.src(ASSET_FILES).pipe(gulp.dest("lib")) - done() -}) diff --git a/index.js b/index.js old mode 100755 new mode 100644 index ba5cb326..b4bb9f11 --- a/index.js +++ b/index.js @@ -1,175 +1,124 @@ #!/usr/bin/env node -require("babel-register") -const path = require("path") -const program = require("commander") -const chalk = require("chalk") -const mkdirp = require("mkdirp") -const figlet = require("figlet") -const clear = require("clear") -const fs = require("fs") -const touch = require("touch") -const emoji = require("node-emoji") -const repl = require("repl") -const BITBOX = require("./lib/BITBOX").BITBOX -const clone = require("git-clone") - -program.version("7.0.0 ", "-v, --version") - +"use strict"; +require("babel-register"); +var path = require("path"); +var program = require("commander"); +var chalk = require("chalk"); +var mkdirp = require("mkdirp"); +var figlet = require("figlet"); +var clear = require("clear"); +var fs = require("fs"); +var touch = require("touch"); +var emoji = require("node-emoji"); +var repl = require("repl"); +var BITBOX = require("./lib/BITBOX").BITBOX; +var clone = require("git-clone"); +program.version("7.0.0 ", "-v, --version"); program - .command("new ") - .option( - "-s, --scaffold ", - "The framework to use. Options include react, angular, vuejs, nextjs, node and websockets." - ) - .option( - "-r, --restURL ", - "The rest URL to use. default: https://trest.bitcoin.com/v2/" - ) - .option( - "-e, --environment ", - "environment of running BITBOX instance. Ex: production, staging. (Default: development)" - ) - .description(`create a new BITBOX application`) - .action((name, options) => { - if (fs.existsSync(`./${name}`)) { - console.log(chalk.red(`Project ${name} already exists`)) - process.exit(1) + .command("new ") + .option("-s, --scaffold ", "The framework to use. Options include react, angular, vuejs, nextjs, node and websockets.") + .option("-r, --restURL ", "The rest URL to use. default: https://trest.bitcoin.com/v2/") + .option("-e, --environment ", "environment of running BITBOX instance. Ex: production, staging. (Default: development)") + .description("create a new BITBOX application") + .action(function (name, options) { + if (fs.existsSync("./" + name)) { + console.log(chalk.red("Project " + name + " already exists")); + process.exit(1); } - - let config - const environment = fetchOption("environment=development", config, options) - const restURL = fetchOption( - "restURL=https://trest.bitcoin.com/v2/", - config, - options - ) - + var config; + var environment = fetchOption("environment=development", config, options); + var restURL = fetchOption("restURL=https://trest.bitcoin.com/v2/", config, options); if (options && options.scaffold) { - let scaffold = options.scaffold.toLowerCase() - let repo - const conf = {} - if (scaffold === "node") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-node.git" - } else if (scaffold === "angular") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-angular.git" - } else if (scaffold === "next") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-next.git" - } else if (scaffold === "react") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-react.git" - } else if (scaffold === "vue") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-vue.git" - } else if (scaffold === "websockets") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-websockets.git" - } else { - console.log(chalk.red(`Scaffold ${scaffold} not supported`)) - process.exit(1) - } - - if (options && options.repo) { - scaffold = "custom repo" - repo = options.repo.toLowerCase() - } - - clear() - console.log( - chalk.blue( - figlet.textSync("BITBOX", { + var scaffold = options.scaffold.toLowerCase(); + var repo = void 0; + var conf = {}; + if (scaffold === "node") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-node.git"; + } + else if (scaffold === "angular") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-angular.git"; + } + else if (scaffold === "next") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-next.git"; + } + else if (scaffold === "react") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-react.git"; + } + else if (scaffold === "vue") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-vue.git"; + } + else if (scaffold === "websockets") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-websockets.git"; + } + else { + console.log(chalk.red("Scaffold " + scaffold + " not supported")); + process.exit(1); + } + if (options && options.repo) { + scaffold = "custom repo"; + repo = options.repo.toLowerCase(); + } + clear(); + console.log(chalk.blue(figlet.textSync("BITBOX", { font: "3-D", horizontalLayout: "full" - }) - ) - ) - - console.log(chalk.blue(`Scaffolding ${scaffold} app in ${name}`)) - clone(repo, `./${name}`, [conf], res => { - if (res === "Error: 'git clone' failed with status 128") { - console.log(chalk.red("Must create new app in to an empty directory")) - } else { - console.log(chalk.green("All done."), emoji.get(":white_check_mark:")) - console.log( - chalk.blue( - "Now `cd` in to your new project and run `npm install && npm start`" - ), - emoji.get(":rocket:") - ) - } - }) - return + }))); + console.log(chalk.blue("Scaffolding " + scaffold + " app in " + name)); + clone(repo, "./" + name, [conf], function (res) { + if (res === "Error: 'git clone' failed with status 128") { + console.log(chalk.red("Must create new app in to an empty directory")); + } + else { + console.log(chalk.green("All done."), emoji.get(":white_check_mark:")); + console.log(chalk.blue("Now `cd` in to your new project and run `npm install && npm start`"), emoji.get(":rocket:")); + } + }); + return; } - - console.log(chalk.green(`Creating ${name}/ directory`)) - console.log(chalk.green(`Creating src/ directory: ./${name}/src`)) - mkdirp(`./${name}/src`, err => {}) - - console.log(chalk.green(`Creating tests/ directory: ./${name}/tests`)) - mkdirp(`./${name}/tests`, err => {}) - - console.log( - chalk.green(`Creating bitbox.js configuration file: ./${name}/bitbox.js`) - ) - - mkdirp(`./${name}`, err => {}) - touch(`./${name}/bitbox.js`) - fs.writeFileSync( - `./${name}/bitbox.js`, - `exports.config = { - environments: { - ${environment}: { - restURL: "${restURL}" - } - } -}; -` - ) - fs.appendFileSync(`./${name}/.gitignore`, ".console_history") - console.log(chalk.blue("All done."), emoji.get(":white_check_mark:")) - console.log( - chalk.blue( - "Go get em! Remember--with great power comes great responsibility." - ), - emoji.get(":rocket:") - ) - }) - + console.log(chalk.green("Creating " + name + "/ directory")); + console.log(chalk.green("Creating src/ directory: ./" + name + "/src")); + mkdirp("./" + name + "/src", function (err) { }); + console.log(chalk.green("Creating tests/ directory: ./" + name + "/tests")); + mkdirp("./" + name + "/tests", function (err) { }); + console.log(chalk.green("Creating bitbox.js configuration file: ./" + name + "/bitbox.js")); + mkdirp("./" + name, function (err) { }); + touch("./" + name + "/bitbox.js"); + fs.writeFileSync("./" + name + "/bitbox.js", "exports.config = {\n environments: {\n " + environment + ": {\n restURL: \"" + restURL + "\"\n }\n }\n};\n"); + fs.appendFileSync("./" + name + "/.gitignore", ".console_history"); + console.log(chalk.blue("All done."), emoji.get(":white_check_mark:")); + console.log(chalk.blue("Go get em! Remember--with great power comes great responsibility."), emoji.get(":rocket:")); +}); program - .command("console") - .option( - "-e, --environment ", - "environment of running BITBOX instance. Ex: production, staging. (Default: development)" - ) - .description("Run a console with Bitcoin Cash RPC commands available") - .action(options => { - let config + .command("console") + .option("-e, --environment ", "environment of running BITBOX instance. Ex: production, staging. (Default: development)") + .description("Run a console with Bitcoin Cash RPC commands available") + .action(function (options) { + var config; try { - config = require(`${process.cwd()}/bitbox.js`).config - } catch (err) { - console.log( - chalk.red("Console command must be run inside a bitbox project") - ) - process.exit(1) + config = require(process.cwd() + "/bitbox.js").config; + } + catch (err) { + console.log(chalk.red("Console command must be run inside a bitbox project")); + process.exit(1); } - const replServer = repl.start("> ") - const historyFile = path.join(process.cwd(), ".console_history") - require("repl.history")(replServer, historyFile) - - const environment = fetchOption("environment=development", config, options) - - replServer.context.BITBOX = new BITBOX(config.environments[environment]) - }) - + var replServer = repl.start("> "); + var historyFile = path.join(process.cwd(), ".console_history"); + require("repl.history")(replServer, historyFile); + var environment = fetchOption("environment=development", config, options); + replServer.context.BITBOX = new BITBOX(config.environments[environment]); +}); function fetchOption(kv, config, options) { - const parts = kv.split("=") - const key = parts[0] - const defaultVal = parts[1] - if (options && options[key]) return options[key] - else if (config && config.new && config.new[key]) return config.new[key] - - return defaultVal + var parts = kv.split("="); + var key = parts[0]; + var defaultVal = parts[1]; + if (options && options[key]) + return options[key]; + else if (config && config.new && config.new[key]) + return config.new[key]; + return defaultVal; } - -program.parse(process.argv) - +program.parse(process.argv); // print help if no command given // if (!process.argv.slice(2).length) program.outputHelp() - -module.exports = BITBOX +module.exports = BITBOX; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/index.ts b/index.ts new file mode 100755 index 00000000..ba5cb326 --- /dev/null +++ b/index.ts @@ -0,0 +1,175 @@ +#!/usr/bin/env node +require("babel-register") +const path = require("path") +const program = require("commander") +const chalk = require("chalk") +const mkdirp = require("mkdirp") +const figlet = require("figlet") +const clear = require("clear") +const fs = require("fs") +const touch = require("touch") +const emoji = require("node-emoji") +const repl = require("repl") +const BITBOX = require("./lib/BITBOX").BITBOX +const clone = require("git-clone") + +program.version("7.0.0 ", "-v, --version") + +program + .command("new ") + .option( + "-s, --scaffold ", + "The framework to use. Options include react, angular, vuejs, nextjs, node and websockets." + ) + .option( + "-r, --restURL ", + "The rest URL to use. default: https://trest.bitcoin.com/v2/" + ) + .option( + "-e, --environment ", + "environment of running BITBOX instance. Ex: production, staging. (Default: development)" + ) + .description(`create a new BITBOX application`) + .action((name, options) => { + if (fs.existsSync(`./${name}`)) { + console.log(chalk.red(`Project ${name} already exists`)) + process.exit(1) + } + + let config + const environment = fetchOption("environment=development", config, options) + const restURL = fetchOption( + "restURL=https://trest.bitcoin.com/v2/", + config, + options + ) + + if (options && options.scaffold) { + let scaffold = options.scaffold.toLowerCase() + let repo + const conf = {} + if (scaffold === "node") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-node.git" + } else if (scaffold === "angular") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-angular.git" + } else if (scaffold === "next") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-next.git" + } else if (scaffold === "react") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-react.git" + } else if (scaffold === "vue") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-vue.git" + } else if (scaffold === "websockets") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-websockets.git" + } else { + console.log(chalk.red(`Scaffold ${scaffold} not supported`)) + process.exit(1) + } + + if (options && options.repo) { + scaffold = "custom repo" + repo = options.repo.toLowerCase() + } + + clear() + console.log( + chalk.blue( + figlet.textSync("BITBOX", { + font: "3-D", + horizontalLayout: "full" + }) + ) + ) + + console.log(chalk.blue(`Scaffolding ${scaffold} app in ${name}`)) + clone(repo, `./${name}`, [conf], res => { + if (res === "Error: 'git clone' failed with status 128") { + console.log(chalk.red("Must create new app in to an empty directory")) + } else { + console.log(chalk.green("All done."), emoji.get(":white_check_mark:")) + console.log( + chalk.blue( + "Now `cd` in to your new project and run `npm install && npm start`" + ), + emoji.get(":rocket:") + ) + } + }) + return + } + + console.log(chalk.green(`Creating ${name}/ directory`)) + console.log(chalk.green(`Creating src/ directory: ./${name}/src`)) + mkdirp(`./${name}/src`, err => {}) + + console.log(chalk.green(`Creating tests/ directory: ./${name}/tests`)) + mkdirp(`./${name}/tests`, err => {}) + + console.log( + chalk.green(`Creating bitbox.js configuration file: ./${name}/bitbox.js`) + ) + + mkdirp(`./${name}`, err => {}) + touch(`./${name}/bitbox.js`) + fs.writeFileSync( + `./${name}/bitbox.js`, + `exports.config = { + environments: { + ${environment}: { + restURL: "${restURL}" + } + } +}; +` + ) + fs.appendFileSync(`./${name}/.gitignore`, ".console_history") + console.log(chalk.blue("All done."), emoji.get(":white_check_mark:")) + console.log( + chalk.blue( + "Go get em! Remember--with great power comes great responsibility." + ), + emoji.get(":rocket:") + ) + }) + +program + .command("console") + .option( + "-e, --environment ", + "environment of running BITBOX instance. Ex: production, staging. (Default: development)" + ) + .description("Run a console with Bitcoin Cash RPC commands available") + .action(options => { + let config + try { + config = require(`${process.cwd()}/bitbox.js`).config + } catch (err) { + console.log( + chalk.red("Console command must be run inside a bitbox project") + ) + process.exit(1) + } + const replServer = repl.start("> ") + const historyFile = path.join(process.cwd(), ".console_history") + require("repl.history")(replServer, historyFile) + + const environment = fetchOption("environment=development", config, options) + + replServer.context.BITBOX = new BITBOX(config.environments[environment]) + }) + +function fetchOption(kv, config, options) { + const parts = kv.split("=") + const key = parts[0] + const defaultVal = parts[1] + if (options && options[key]) return options[key] + else if (config && config.new && config.new[key]) return config.new[key] + + return defaultVal +} + +program.parse(process.argv) + +// print help if no command given +// if (!process.argv.slice(2).length) program.outputHelp() + +module.exports = BITBOX diff --git a/src/Address.ts b/lib/Address.ts similarity index 100% rename from src/Address.ts rename to lib/Address.ts diff --git a/src/BITBOX.ts b/lib/BITBOX.ts similarity index 100% rename from src/BITBOX.ts rename to lib/BITBOX.ts diff --git a/src/BitcoinCash.ts b/lib/BitcoinCash.ts similarity index 100% rename from src/BitcoinCash.ts rename to lib/BitcoinCash.ts diff --git a/src/Block.ts b/lib/Block.ts similarity index 100% rename from src/Block.ts rename to lib/Block.ts diff --git a/src/Blockchain.ts b/lib/Blockchain.ts similarity index 100% rename from src/Blockchain.ts rename to lib/Blockchain.ts diff --git a/src/Control.ts b/lib/Control.ts similarity index 100% rename from src/Control.ts rename to lib/Control.ts diff --git a/src/Crypto.ts b/lib/Crypto.ts similarity index 100% rename from src/Crypto.ts rename to lib/Crypto.ts diff --git a/src/ECPair.ts b/lib/ECPair.ts similarity index 97% rename from src/ECPair.ts rename to lib/ECPair.ts index e16f0e6d..a20031d7 100644 --- a/src/ECPair.ts +++ b/lib/ECPair.ts @@ -8,7 +8,7 @@ export class ECPair { } static fromWIF(privateKeyWIF: string): any { - let network: string + let network: string = "mainnet" if (privateKeyWIF[0] === "L" || privateKeyWIF[0] === "K") network = "mainnet" else if (privateKeyWIF[0] === "c") network = "testnet" diff --git a/src/Generating.ts b/lib/Generating.ts similarity index 100% rename from src/Generating.ts rename to lib/Generating.ts diff --git a/src/HDNode.ts b/lib/HDNode.ts similarity index 100% rename from src/HDNode.ts rename to lib/HDNode.ts diff --git a/src/Mining.ts b/lib/Mining.ts similarity index 100% rename from src/Mining.ts rename to lib/Mining.ts diff --git a/src/Mnemonic.ts b/lib/Mnemonic.ts similarity index 100% rename from src/Mnemonic.ts rename to lib/Mnemonic.ts diff --git a/src/Price.ts b/lib/Price.ts similarity index 100% rename from src/Price.ts rename to lib/Price.ts diff --git a/src/RawTransactions.ts b/lib/RawTransactions.ts similarity index 100% rename from src/RawTransactions.ts rename to lib/RawTransactions.ts diff --git a/src/Schnorr.ts b/lib/Schnorr.ts similarity index 100% rename from src/Schnorr.ts rename to lib/Schnorr.ts diff --git a/src/Script.ts b/lib/Script.ts similarity index 100% rename from src/Script.ts rename to lib/Script.ts diff --git a/src/Socket.ts b/lib/Socket.ts similarity index 100% rename from src/Socket.ts rename to lib/Socket.ts diff --git a/src/Transaction.ts b/lib/Transaction.ts similarity index 100% rename from src/Transaction.ts rename to lib/Transaction.ts diff --git a/src/TransactionBuilder.ts b/lib/TransactionBuilder.ts similarity index 100% rename from src/TransactionBuilder.ts rename to lib/TransactionBuilder.ts diff --git a/src/Util.ts b/lib/Util.ts similarity index 100% rename from src/Util.ts rename to lib/Util.ts diff --git a/src/Wallet.ts b/lib/Wallet.ts similarity index 100% rename from src/Wallet.ts rename to lib/Wallet.ts diff --git a/src/interfaces/BITBOXInterfaces.ts b/lib/interfaces/BITBOXInterfaces.ts similarity index 100% rename from src/interfaces/BITBOXInterfaces.ts rename to lib/interfaces/BITBOXInterfaces.ts diff --git a/package.json b/package.json index f79692c4..6780d763 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "test": "TEST=unit nyc --reporter=text mocha --require babel-core/register --timeout 30000 test/unit", "test:integration": "TEST=integration nyc --reporter=text mocha --require babel-core/register --timeout 10000 test/integration", "coverage": "nyc report --reporter=text-lcov | coveralls", - "build": "node ./node_modules/gulp/bin/gulp.js build && ./node_modules/typescript/bin/tsc" + "build": "tsc && mkdirp dist && browserify index.js --standalone slpjs > dist/slpjs.js && uglifyjs dist/slpjs.js > dist/slpjs.min.js" }, "license": "MIT", "engines": { @@ -20,6 +20,11 @@ "bitbox": "./index.js" }, "main": "lib/BITBOX.js", + "files": [ + "index.ts", + "lib/", + "dist/" + ], "homepage": "https://developer.bitcoin.com/bitbox", "repository": { "type": "git", @@ -45,6 +50,7 @@ "bitcoincash-ops": "Bitcoin-com/bitcoincash-ops#v2.0.0", "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib#v4.0.0", "bitcoinjs-message": "^2.0.0", + "browserify": "^16.2.2", "bs58": "^4.0.1", "buffer": "^5.1.0", "cashaddrjs": "^0.2.9", @@ -77,7 +83,6 @@ "eslint-config-prettier": "^3.0.1", "eslint-plugin-node": "7.0.1", "eslint-plugin-prettier": "^2.6.2", - "gulp": "^4.0.0", "mocha": "^5.0.1", "nock": "^10.0.6", "node-mocks-http": "^1.7.0", diff --git a/tsconfig.json b/tsconfig.json index 84d4d555..58cc0f45 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,14 +1,14 @@ { "compilerOptions": { - "outDir": "./lib/", "noImplicitAny": false, - "baseUrl": ".", "module": "commonjs", + "strict": true, "target": "es5", - "allowJs": true, - "lib": ["es2015", "es2015.symbol", "dom"], - "typeRoots": ["node_modules/@types/"] + "downlevelIteration": true, + "moduleResolution": "node", + "lib": ["es2017"], + "sourceMap": true }, - "include": ["src/**/*"], - "exclude": ["node_modules", "test/**/*"] + "include": ["./lib", "./test"], + "files": ["index.ts"] } diff --git a/yarn.lock b/yarn.lock index 905cda70..9a39bdb6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -250,7 +250,7 @@ version "10.14.6" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.6.tgz#9cbfcb62c50947217f4d88d4d274cc40c22625a9" -JSONStream@^1.0.4, JSONStream@^1.3.4: +JSONStream@^1.0.3, JSONStream@^1.0.4, JSONStream@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" dependencies: @@ -268,6 +268,10 @@ accepts@^1.3.5, accepts@~1.3.4: mime-types "~2.1.24" negotiator "0.6.2" +acorn-dynamic-import@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948" + acorn-jsx@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" @@ -278,6 +282,19 @@ acorn-jsx@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e" +acorn-node@^1.2.0, acorn-node@^1.3.0, acorn-node@^1.5.2, acorn-node@^1.6.1: + version "1.6.2" + resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.6.2.tgz#b7d7ceca6f22e6417af933a62cad4de01048d5d2" + dependencies: + acorn "^6.0.2" + acorn-dynamic-import "^4.0.0" + acorn-walk "^6.1.0" + xtend "^4.0.1" + +acorn-walk@^6.1.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.1.tgz#d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913" + acorn@^3.0.4: version "3.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" @@ -286,7 +303,7 @@ acorn@^5.5.0: version "5.7.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" -acorn@^6.0.7: +acorn@^6.0.2, acorn@^6.0.7: version "6.1.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f" @@ -341,22 +358,10 @@ ansi-align@^2.0.0: dependencies: string-width "^2.0.0" -ansi-colors@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-1.1.0.tgz#6374b4dd5d4718ff3ce27a671a3b1cad077132a9" - dependencies: - ansi-wrap "^0.1.0" - ansi-escapes@^3.0.0, ansi-escapes@^3.1.0, ansi-escapes@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" -ansi-gray@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" - dependencies: - ansi-wrap "0.1.0" - ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -379,10 +384,6 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-wrap@0.1.0, ansi-wrap@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" - ansicolors@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" @@ -398,19 +399,6 @@ anymatch@^1.3.0: micromatch "^2.1.5" normalize-path "^2.0.0" -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -append-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/append-buffer/-/append-buffer-1.0.2.tgz#d8220cf466081525efea50614f3de6514dfa58f1" - dependencies: - buffer-equal "^1.0.0" - append-transform@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab" @@ -456,29 +444,17 @@ arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" -arr-filter@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/arr-filter/-/arr-filter-1.1.2.tgz#43fdddd091e8ef11aa4c45d9cdc18e2dff1711ee" - dependencies: - make-iterator "^1.0.0" - arr-flatten@^1.0.1, arr-flatten@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" -arr-map@^2.0.0, arr-map@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/arr-map/-/arr-map-2.0.2.tgz#3a77345ffc1cf35e2a91825601f9e58f2e24cac4" - dependencies: - make-iterator "^1.0.0" - arr-union@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" -array-each@^1.0.0, array-each@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" +array-filter@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" array-find-index@^1.0.1: version "1.0.2" @@ -499,30 +475,13 @@ array-includes@^3.0.3: define-properties "^1.1.2" es-abstract "^1.7.0" -array-initial@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/array-initial/-/array-initial-1.1.0.tgz#2fa74b26739371c3947bd7a7adc73be334b3d795" - dependencies: - array-slice "^1.0.0" - is-number "^4.0.0" - -array-last@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/array-last/-/array-last-1.3.0.tgz#7aa77073fec565ddab2493f5f88185f404a9d336" - dependencies: - is-number "^4.0.0" - -array-slice@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" +array-map@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" -array-sort@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-sort/-/array-sort-1.0.0.tgz#e4c05356453f56f53512a7d1d6123f2c54c0a88a" - dependencies: - default-compare "^1.0.0" - get-value "^2.0.6" - kind-of "^5.0.2" +array-reduce@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" array-union@^1.0.2: version "1.0.2" @@ -558,6 +517,14 @@ asap@^2.0.0: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" +asn1.js@^4.0.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + asn1@~0.2.3: version "0.2.4" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" @@ -568,6 +535,13 @@ assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" +assert@^1.4.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + dependencies: + object-assign "^4.1.1" + util "0.10.3" + assert@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" @@ -586,16 +560,7 @@ astral-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" -async-done@^1.2.0, async-done@^1.2.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/async-done/-/async-done-1.3.1.tgz#14b7b73667b864c8f02b5b253fc9c6eddb777f3e" - dependencies: - end-of-stream "^1.1.0" - once "^1.3.2" - process-nextick-args "^1.0.7" - stream-exhaust "^1.0.1" - -async-each@^1.0.0, async-each@^1.0.1: +async-each@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" @@ -603,12 +568,6 @@ async-limiter@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" -async-settle@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/async-settle/-/async-settle-1.0.0.tgz#1d0a914bb02575bec8a8f3a74e5080f72b2c0c6b" - dependencies: - async-done "^1.2.2" - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -1152,20 +1111,6 @@ babylon@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" -bach@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/bach/-/bach-1.2.0.tgz#4b3ce96bf27134f79a1b414a51c14e34c3bd9880" - dependencies: - arr-filter "^1.1.1" - arr-flatten "^1.0.1" - arr-map "^2.0.0" - array-each "^1.0.0" - array-initial "^1.0.0" - array-last "^1.1.1" - async-done "^1.2.2" - async-settle "^1.0.0" - now-and-later "^2.0.0" - backo2@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" @@ -1384,7 +1329,7 @@ bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.5.3: version "3.5.4" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.4.tgz#d6cc661595de30d5b3af5fcedd3c0b3ef6ec5714" -bn.js@^4.11.3, bn.js@^4.4.0: +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.11.3, bn.js@^4.4.0: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" @@ -1419,7 +1364,7 @@ braces@^1.8.2: preserve "^0.2.0" repeat-element "^1.1.2" -braces@^2.3.1, braces@^2.3.2: +braces@^2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" dependencies: @@ -1438,11 +1383,28 @@ brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" +browser-pack@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.1.0.tgz#c34ba10d0b9ce162b5af227c7131c92c2ecd5774" + dependencies: + JSONStream "^1.0.3" + combine-source-map "~0.8.0" + defined "^1.0.0" + safe-buffer "^5.1.1" + through2 "^2.0.0" + umd "^3.0.0" + +browser-resolve@^1.11.0, browser-resolve@^1.7.0: + version "1.11.3" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + dependencies: + resolve "1.1.7" + browser-stdout@1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" -browserify-aes@^1.0.1, browserify-aes@^1.0.6: +browserify-aes@^1.0.0, browserify-aes@^1.0.1, browserify-aes@^1.0.4, browserify-aes@^1.0.6: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" dependencies: @@ -1453,6 +1415,101 @@ browserify-aes@^1.0.1, browserify-aes@^1.0.6: inherits "^2.0.1" safe-buffer "^5.0.1" +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + +browserify-zlib@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + dependencies: + pako "~1.0.5" + +browserify@^16.2.2: + version "16.2.3" + resolved "https://registry.yarnpkg.com/browserify/-/browserify-16.2.3.tgz#7ee6e654ba4f92bce6ab3599c3485b1cc7a0ad0b" + dependencies: + JSONStream "^1.0.3" + assert "^1.4.0" + browser-pack "^6.0.1" + browser-resolve "^1.11.0" + browserify-zlib "~0.2.0" + buffer "^5.0.2" + cached-path-relative "^1.0.0" + concat-stream "^1.6.0" + console-browserify "^1.1.0" + constants-browserify "~1.0.0" + crypto-browserify "^3.0.0" + defined "^1.0.0" + deps-sort "^2.0.0" + domain-browser "^1.2.0" + duplexer2 "~0.1.2" + events "^2.0.0" + glob "^7.1.0" + has "^1.0.0" + htmlescape "^1.1.0" + https-browserify "^1.0.0" + inherits "~2.0.1" + insert-module-globals "^7.0.0" + labeled-stream-splicer "^2.0.0" + mkdirp "^0.5.0" + module-deps "^6.0.0" + os-browserify "~0.3.0" + parents "^1.0.1" + path-browserify "~0.0.0" + process "~0.11.0" + punycode "^1.3.2" + querystring-es3 "~0.2.0" + read-only-stream "^2.0.0" + readable-stream "^2.0.2" + resolve "^1.1.4" + shasum "^1.0.0" + shell-quote "^1.6.1" + stream-browserify "^2.0.0" + stream-http "^2.0.0" + string_decoder "^1.1.1" + subarg "^1.0.0" + syntax-error "^1.1.1" + through2 "^2.0.0" + timers-browserify "^1.0.1" + tty-browserify "0.0.1" + url "~0.11.0" + util "~0.10.1" + vm-browserify "^1.0.0" + xtend "^4.0.0" + browserslist@^3.2.6: version "3.2.8" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" @@ -1478,10 +1535,6 @@ btoa-lite@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" -buffer-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" - buffer-equals@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/buffer-equals/-/buffer-equals-1.0.4.tgz#0353b54fd07fd9564170671ae6f66b9cf10d27f5" @@ -1494,7 +1547,7 @@ buffer-xor@^1.0.2, buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" -buffer@^5.1.0: +buffer@^5.0.2, buffer@^5.1.0: version "5.2.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6" dependencies: @@ -1505,6 +1558,10 @@ builtin-modules@^1.0.0, builtin-modules@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + builtins@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" @@ -1568,6 +1625,10 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +cached-path-relative@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.2.tgz#a13df4196d26776220cc3356eb147a52dba2c6db" + caching-transform@^3.0.1, caching-transform@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-3.0.2.tgz#601d46b91eca87687a281e71cef99791b0efca70" @@ -1627,10 +1688,6 @@ camelcase-keys@^4.0.0: map-obj "^2.0.0" quick-lru "^1.0.0" -camelcase@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" - camelcase@^4.0.0, camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" @@ -1726,24 +1783,6 @@ chokidar@^1.6.1: optionalDependencies: fsevents "^1.0.0" -chokidar@^2.0.0: - version "2.1.5" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.5.tgz#0ae8434d962281a5f56c72869e79cb6d9d86ad4d" - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - chownr@^1.0.1, chownr@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" @@ -1826,14 +1865,6 @@ cli-width@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" -cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" - cliui@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" @@ -1842,30 +1873,10 @@ cliui@^4.0.0: strip-ansi "^4.0.0" wrap-ansi "^2.0.0" -clone-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" - -clone-stats@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" - clone@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" -clone@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - -cloneable-readable@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.2.tgz#d591dee4a8f8bc15da43ce97dceeba13d43e2a65" - dependencies: - inherits "^2.0.1" - process-nextick-args "^2.0.0" - readable-stream "^2.3.5" - cmd-shim@^2.0.2, cmd-shim@~2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-2.0.2.tgz#6fcbda99483a8fd15d7d30a196ca69d688a2efdb" @@ -1887,14 +1898,6 @@ coininfo@Bitcoin-com/coininfo: dependencies: safe-buffer "^5.1.1" -collection-map@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-map/-/collection-map-1.0.0.tgz#aea0f06f8d26c780c2b75494385544b2255af18c" - dependencies: - arr-map "^2.0.2" - for-own "^1.0.0" - make-iterator "^1.0.0" - collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" @@ -1912,10 +1915,6 @@ color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" -color-support@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" - colors@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" @@ -1931,6 +1930,15 @@ columnify@~1.5.4: strip-ansi "^3.0.0" wcwidth "^1.0.0" +combine-source-map@^0.8.0, combine-source-map@~0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.8.0.tgz#a58d0df042c186fcf822a8e8015f5450d2d79a8b" + dependencies: + convert-source-map "~1.1.0" + inline-source-map "~0.6.0" + lodash.memoize "~3.0.3" + source-map "~0.5.3" + combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828" @@ -1976,7 +1984,7 @@ concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -concat-stream@^1.5.0, concat-stream@^1.5.2, concat-stream@^1.6.0: +concat-stream@^1.5.0, concat-stream@^1.5.2, concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@~1.6.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" dependencies: @@ -2003,10 +2011,20 @@ configstore@^3.0.0: write-file-atomic "^2.0.0" xdg-basedir "^3.0.0" +console-browserify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + dependencies: + date-now "^0.1.4" + console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" +constants-browserify@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + contains-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" @@ -2058,6 +2076,10 @@ convert-source-map@^1.5.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0: dependencies: safe-buffer "~5.1.1" +convert-source-map@~1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860" + cookie@0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" @@ -2077,13 +2099,6 @@ copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" -copy-props@^2.0.1: - version "2.0.4" - resolved "https://registry.yarnpkg.com/copy-props/-/copy-props-2.0.4.tgz#93bb1cadfafd31da5bb8a9d4b41f471ec3a72dfe" - dependencies: - each-props "^1.3.0" - is-plain-object "^2.0.1" - core-js@^2.4.0, core-js@^2.5.0: version "2.6.5" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.5.tgz#44bc8d249e7fb2ff5d00e0341a7ffb94fbf67895" @@ -2132,6 +2147,13 @@ cp-file@^6.2.0: pify "^4.0.1" safe-buffer "^5.0.1" +create-ecdh@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + create-error-class@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" @@ -2148,7 +2170,7 @@ create-hash@^1.1.0, create-hash@^1.1.1, create-hash@^1.1.2: ripemd160 "^2.0.1" sha.js "^2.4.0" -create-hmac@^1.1.3, create-hmac@^1.1.4: +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.3, create-hmac@^1.1.4: version "1.1.7" resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" dependencies: @@ -2184,6 +2206,22 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" +crypto-browserify@^3.0.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + crypto-random-string@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" @@ -2198,11 +2236,9 @@ cyclist@~0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" -d@1: +dash-ast@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" - dependencies: - es5-ext "^0.10.9" + resolved "https://registry.yarnpkg.com/dash-ast/-/dash-ast-1.0.0.tgz#12029ba5fb2f8aa6f0a861795b23c1b4b6c27d37" dashdash@^1.12.0: version "1.14.1" @@ -2210,6 +2246,10 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + dateformat@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" @@ -2283,22 +2323,12 @@ deepmerge@3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.2.0.tgz#58ef463a57c08d376547f8869fdc5bcee957f44e" -default-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/default-compare/-/default-compare-1.0.0.tgz#cb61131844ad84d84788fb68fd01681ca7781a2f" - dependencies: - kind-of "^5.0.2" - default-require-extensions@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-2.0.0.tgz#f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7" dependencies: strip-bom "^3.0.0" -default-resolution@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/default-resolution/-/default-resolution-2.0.0.tgz#bcb82baa72ad79b426a76732f1a81ad6df26d684" - defaults@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" @@ -2330,7 +2360,7 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" -defined@~1.0.0: +defined@^1.0.0, defined@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" @@ -2361,9 +2391,21 @@ deprecation@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-1.0.1.tgz#2df79b79005752180816b7b6e079cbd80490d711" -detect-file@^1.0.0: +deps-sort@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.0.tgz#091724902e84658260eb910748cccd1af6e21fb5" + dependencies: + JSONStream "^1.0.3" + shasum "^1.0.0" + subarg "^1.0.0" + through2 "^2.0.0" + +des.js@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" detect-indent@^4.0.0: version "4.0.0" @@ -2383,6 +2425,14 @@ detect-newline@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" +detective@^5.0.2: + version "5.2.0" + resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b" + dependencies: + acorn-node "^1.6.1" + defined "^1.0.0" + minimist "^1.1.1" + dezalgo@^1.0.0, dezalgo@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" @@ -2394,6 +2444,14 @@ diff@3.5.0, diff@^3.1.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + dijkstrajs@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.1.tgz#d3cd81221e3ea40742cfcde556d4e99e98ddc71b" @@ -2423,6 +2481,10 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +domain-browser@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + dot-prop@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" @@ -2447,7 +2509,7 @@ drbg.js@^1.0.1: create-hash "^1.1.2" create-hmac "^1.1.4" -duplexer2@~0.1.0: +duplexer2@^0.1.2, duplexer2@~0.1.0, duplexer2@~0.1.2: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" dependencies: @@ -2466,13 +2528,6 @@ duplexify@^3.4.2, duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" -each-props@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/each-props/-/each-props-1.3.2.tgz#ea45a414d16dd5cfa419b1a81720d5ca06892333" - dependencies: - is-plain-object "^2.0.1" - object.defaults "^1.1.0" - ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -2495,7 +2550,7 @@ electron-to-chromium@^1.3.47: version "1.3.131" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.131.tgz#205a0b7a276b3f56bc056f19178909243054252a" -elliptic@^6.2.3: +elliptic@^6.0.0, elliptic@^6.2.3: version "6.4.1" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" dependencies: @@ -2602,26 +2657,10 @@ es-to-primitive@^1.2.0: is-date-object "^1.0.1" is-symbol "^1.0.2" -es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: - version "0.10.50" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.50.tgz#6d0e23a0abdb27018e5ac4fd09b412bc5517a778" - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.1" - next-tick "^1.0.0" - es6-error@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" -es6-iterator@^2.0.1, es6-iterator@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - es6-promise@^4.0.3: version "4.2.6" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.6.tgz#b685edd8258886365ea62b57d30de28fadcd974f" @@ -2632,22 +2671,6 @@ es6-promisify@^5.0.0: dependencies: es6-promise "^4.0.3" -es6-symbol@^3.1.1, es6-symbol@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" - dependencies: - d "1" - es5-ext "~0.10.14" - -es6-weak-map@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" - dependencies: - d "1" - es5-ext "^0.10.14" - es6-iterator "^2.0.1" - es6-symbol "^3.1.1" - escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -2890,7 +2913,11 @@ esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" -evp_bytestokey@^1.0.3: +events@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/events/-/events-2.1.0.tgz#2a9a1e18e6106e0e812aa9ebd4a819b3c29c0ba5" + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" dependencies: @@ -2945,12 +2972,6 @@ expand-range@^1.8.1: dependencies: fill-range "^2.1.0" -expand-tilde@^2.0.0, expand-tilde@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - dependencies: - homedir-polyfill "^1.0.1" - extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -2964,7 +2985,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@^3.0.0, extend@~3.0.2: +extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" @@ -3011,15 +3032,6 @@ extsprintf@^1.2.0: version "1.4.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" -fancy-log@^1.3.2: - version "1.3.3" - resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7" - dependencies: - ansi-gray "^0.1.1" - color-support "^1.1.3" - parse-node-version "^1.0.0" - time-stamp "^1.0.0" - fast-deep-equal@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" @@ -3121,13 +3133,6 @@ find-root@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - find-up@^2.0.0, find-up@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" @@ -3147,38 +3152,6 @@ find-versions@^3.0.0: array-uniq "^2.1.0" semver-regex "^2.0.0" -findup-sync@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" - dependencies: - detect-file "^1.0.0" - is-glob "^3.1.0" - micromatch "^3.0.4" - resolve-dir "^1.0.1" - -findup-sync@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" - dependencies: - detect-file "^1.0.0" - is-glob "^4.0.0" - micromatch "^3.0.4" - resolve-dir "^1.0.1" - -fined@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fined/-/fined-1.2.0.tgz#d00beccf1aa2b475d16d423b0238b713a2c4a37b" - dependencies: - expand-tilde "^2.0.2" - is-plain-object "^2.0.3" - object.defaults "^1.1.0" - object.pick "^1.2.0" - parse-filepath "^1.0.1" - -flagged-respawn@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.1.tgz#e7de6f1279ddd9ca9aac8a5971d618606b3aab41" - flat-cache@^1.2.1: version "1.3.4" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f" @@ -3200,7 +3173,7 @@ flatted@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.0.tgz#55122b6536ea496b4b44893ee2608141d10d9916" -flush-write-stream@^1.0.0, flush-write-stream@^1.0.2: +flush-write-stream@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" dependencies: @@ -3229,12 +3202,6 @@ for-own@^0.1.4: dependencies: for-in "^1.0.1" -for-own@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" - dependencies: - for-in "^1.0.1" - foreground-child@^1.5.6: version "1.5.6" resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9" @@ -3292,13 +3259,6 @@ fs-minipass@^1.2.5: dependencies: minipass "^2.2.1" -fs-mkdirp-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb" - dependencies: - graceful-fs "^4.1.11" - through2 "^2.0.3" - fs-readdir-recursive@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" @@ -3324,7 +3284,7 @@ fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" -fsevents@^1.0.0, fsevents@^1.2.7: +fsevents@^1.0.0: version "1.2.9" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" dependencies: @@ -3378,6 +3338,10 @@ gentle-fs@^2.0.0, gentle-fs@^2.0.1: read-cmd-shim "^1.0.1" slide "^1.1.6" +get-assigned-identifiers@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1" + get-caller-file@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" @@ -3449,36 +3413,10 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-stream@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4" - dependencies: - extend "^3.0.0" - glob "^7.1.1" - glob-parent "^3.1.0" - is-negated-glob "^1.0.0" - ordered-read-streams "^1.0.0" - pumpify "^1.3.5" - readable-stream "^2.1.5" - remove-trailing-separator "^1.0.1" - to-absolute-glob "^2.0.0" - unique-stream "^2.0.2" - glob-to-regexp@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" -glob-watcher@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-5.0.3.tgz#88a8abf1c4d131eb93928994bc4a593c2e5dd626" - dependencies: - anymatch "^2.0.0" - async-done "^1.2.0" - chokidar "^2.0.0" - is-negated-glob "^1.0.0" - just-debounce "^1.0.0" - object.defaults "^1.1.0" - glob@7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" @@ -3490,7 +3428,7 @@ glob@7.1.2: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@~7.1.3: +glob@^7.0.3, glob@^7.0.5, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@~7.1.3: version "7.1.4" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" dependencies: @@ -3507,24 +3445,6 @@ global-dirs@^0.1.0: dependencies: ini "^1.3.4" -global-modules@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" - dependencies: - global-prefix "^1.0.1" - is-windows "^1.0.1" - resolve-dir "^1.0.0" - -global-prefix@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" - dependencies: - expand-tilde "^2.0.2" - homedir-polyfill "^1.0.1" - ini "^1.3.4" - is-windows "^1.0.1" - which "^1.2.14" - globals@^11.0.1, globals@^11.1.0, globals@^11.7.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -3546,12 +3466,6 @@ globby@^9.0.0: pify "^4.0.1" slash "^2.0.0" -glogg@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.2.tgz#2d7dd702beda22eb3bffadf880696da6d846313f" - dependencies: - sparkles "^1.0.0" - got@^6.7.1: version "6.7.1" resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" @@ -3568,7 +3482,7 @@ got@^6.7.1: unzip-response "^2.0.1" url-parse-lax "^1.0.0" -graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6: version "4.1.15" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" @@ -3576,44 +3490,6 @@ growl@1.10.5, "growl@~> 1.10.0": version "1.10.5" resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" -gulp-cli@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-2.2.0.tgz#5533126eeb7fe415a7e3e84a297d334d5cf70ebc" - dependencies: - ansi-colors "^1.0.1" - archy "^1.0.0" - array-sort "^1.0.0" - color-support "^1.1.3" - concat-stream "^1.6.0" - copy-props "^2.0.1" - fancy-log "^1.3.2" - gulplog "^1.0.0" - interpret "^1.1.0" - isobject "^3.0.1" - liftoff "^3.1.0" - matchdep "^2.0.0" - mute-stdout "^1.0.0" - pretty-hrtime "^1.0.0" - replace-homedir "^1.0.0" - semver-greatest-satisfied-range "^1.1.0" - v8flags "^3.0.1" - yargs "^7.1.0" - -gulp@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/gulp/-/gulp-4.0.2.tgz#543651070fd0f6ab0a0650c6a3e6ff5a7cb09caa" - dependencies: - glob-watcher "^5.0.3" - gulp-cli "^2.2.0" - undertaker "^1.2.1" - vinyl-fs "^3.0.0" - -gulplog@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" - dependencies: - glogg "^1.0.0" - handlebars@^4.1.0, handlebars@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67" @@ -3694,7 +3570,7 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has@^1.0.1, has@^1.0.3, has@~1.0.3: +has@^1.0.0, has@^1.0.1, has@^1.0.3, has@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" dependencies: @@ -3739,12 +3615,6 @@ home-or-tmp@^2.0.0: os-homedir "^1.0.0" os-tmpdir "^1.0.1" -homedir-polyfill@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" - dependencies: - parse-passwd "^1.0.0" - hook-std@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/hook-std/-/hook-std-1.2.0.tgz#b37d533ea5f40068fe368cb4d022ee1992588c27" @@ -3753,6 +3623,10 @@ hosted-git-info@^2.1.4, hosted-git-info@^2.6.0, hosted-git-info@^2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" +htmlescape@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" + http-cache-semantics@^3.8.1: version "3.8.1" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" @@ -3772,6 +3646,10 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + https-proxy-agent@^2.2.0, https-proxy-agent@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0" @@ -3860,7 +3738,7 @@ inflight@^1.0.4, inflight@~1.0.6: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" @@ -3885,6 +3763,12 @@ init-package-json@^1.10.3: validate-npm-package-license "^3.0.1" validate-npm-package-name "^3.0.0" +inline-source-map@~0.6.0: + version "0.6.2" + resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5" + dependencies: + source-map "~0.5.3" + inquirer@^3.0.6: version "3.3.0" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" @@ -3922,9 +3806,20 @@ inquirer@^6.2.2: strip-ansi "^5.1.0" through "^2.3.6" -interpret@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" +insert-module-globals@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.2.0.tgz#ec87e5b42728479e327bd5c5c71611ddfb4752ba" + dependencies: + JSONStream "^1.0.3" + acorn-node "^1.5.2" + combine-source-map "^0.8.0" + concat-stream "^1.6.1" + is-buffer "^1.1.0" + path-is-absolute "^1.0.1" + process "~0.11.0" + through2 "^2.0.0" + undeclared-identifiers "^1.1.2" + xtend "^4.0.0" into-stream@^4.0.0: version "4.0.0" @@ -3955,13 +3850,6 @@ ip@^1.1.4, ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" -is-absolute@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" - dependencies: - is-relative "^1.0.0" - is-windows "^1.0.1" - is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" @@ -3984,7 +3872,7 @@ is-binary-path@^1.0.0: dependencies: binary-extensions "^1.0.0" -is-buffer@^1.1.5: +is-buffer@^1.1.0, is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" @@ -4115,10 +4003,6 @@ is-installed-globally@^0.1.0: global-dirs "^0.1.0" is-path-inside "^1.0.0" -is-negated-glob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" - is-npm@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" @@ -4187,12 +4071,6 @@ is-regex@^1.0.4: dependencies: has "^1.0.1" -is-relative@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" - dependencies: - is-unc-path "^1.0.0" - is-resolvable@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" @@ -4225,21 +4103,7 @@ is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" -is-unc-path@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" - dependencies: - unc-path-regex "^0.1.2" - -is-utf8@^0.2.0, is-utf8@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - -is-valid-glob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" - -is-windows@^1.0.1, is-windows@^1.0.2: +is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -4255,7 +4119,7 @@ isarray@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" -isarray@^2.0.1: +isarray@^2.0.1, isarray@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.4.tgz#38e7bcbb0f3ba1b7933c86ba1894ddfc3781bbb7" @@ -4400,6 +4264,12 @@ json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" +json-stable-stringify@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz#611c23e814db375527df851193db59dd2af27f45" + dependencies: + jsonify "~0.0.0" + json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -4414,6 +4284,10 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + jsonparse@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" @@ -4433,10 +4307,6 @@ jsx-ast-utils@^2.0.1: dependencies: array-includes "^3.0.3" -just-debounce@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/just-debounce/-/just-debounce-1.0.0.tgz#87fccfaeffc0b68cd19d55f6722943f929ea35ea" - just-extend@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.0.2.tgz#f3f47f7dfca0f989c55410a7ebc8854b07108afc" @@ -4462,7 +4332,7 @@ kind-of@^4.0.0: dependencies: is-buffer "^1.1.5" -kind-of@^5.0.0, kind-of@^5.0.2: +kind-of@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" @@ -4470,12 +4340,13 @@ kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" -last-run@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/last-run/-/last-run-1.1.1.tgz#45b96942c17b1c79c772198259ba943bebf8ca5b" +labeled-stream-splicer@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.1.tgz#9cffa32fd99e1612fd1d86a8db962416d5292926" dependencies: - default-resolution "^2.0.0" - es6-weak-map "^2.0.1" + inherits "^2.0.1" + isarray "^2.0.4" + stream-splicer "^2.0.0" latest-version@^3.0.0: version "3.1.0" @@ -4487,12 +4358,6 @@ lazy-property@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lazy-property/-/lazy-property-1.0.0.tgz#84ddc4b370679ba8bd4cdcfa4c06b43d57111147" -lazystream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" - dependencies: - readable-stream "^2.0.5" - lcid@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" @@ -4509,12 +4374,6 @@ lcov-parse@^0.0.10: version "0.0.10" resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-0.0.10.tgz#1b0b8ff9ac9c7889250582b70b71315d9da6d9a3" -lead@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lead/-/lead-1.0.0.tgz#6f14f99a37be3a9dd784f5495690e5903466ee42" - dependencies: - flush-write-stream "^1.0.2" - levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -4552,37 +4411,14 @@ libnpx@^10.2.0: version "10.2.0" resolved "https://registry.yarnpkg.com/libnpx/-/libnpx-10.2.0.tgz#1bf4a1c9f36081f64935eb014041da10855e3102" dependencies: - dotenv "^5.0.1" - npm-package-arg "^6.0.0" - rimraf "^2.6.2" - safe-buffer "^5.1.0" - update-notifier "^2.3.0" - which "^1.3.0" - y18n "^4.0.0" - yargs "^11.0.0" - -liftoff@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-3.1.0.tgz#c9ba6081f908670607ee79062d700df062c52ed3" - dependencies: - extend "^3.0.0" - findup-sync "^3.0.0" - fined "^1.0.1" - flagged-respawn "^1.0.0" - is-plain-object "^2.0.4" - object.map "^1.0.0" - rechoir "^0.6.2" - resolve "^1.1.7" - -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" + dotenv "^5.0.1" + npm-package-arg "^6.0.0" + rimraf "^2.6.2" + safe-buffer "^5.1.0" + update-notifier "^2.3.0" + which "^1.3.0" + y18n "^4.0.0" + yargs "^11.0.0" load-json-file@^2.0.0: version "2.0.0" @@ -4672,6 +4508,10 @@ lodash.isstring@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" +lodash.memoize@~3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" + lodash.set@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" @@ -4787,19 +4627,13 @@ make-fetch-happen@^3.0.0: socks-proxy-agent "^3.0.1" ssri "^5.2.4" -make-iterator@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.1.tgz#29b33f312aa8f547c4a5e490f56afcec99133ad6" - dependencies: - kind-of "^6.0.2" - map-age-cleaner@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" dependencies: p-defer "^1.0.0" -map-cache@^0.2.0, map-cache@^0.2.2: +map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -4832,15 +4666,6 @@ marked@^0.6.0: version "0.6.2" resolved "https://registry.yarnpkg.com/marked/-/marked-0.6.2.tgz#c574be8b545a8b48641456ca1dbe0e37b6dccc1a" -matchdep@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/matchdep/-/matchdep-2.0.0.tgz#c6f34834a0d8dbc3b37c27ee8bbcb27c7775582e" - dependencies: - findup-sync "^2.0.0" - micromatch "^3.0.4" - resolve "^1.4.0" - stack-trace "0.0.10" - math-random@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" @@ -4929,7 +4754,7 @@ micromatch@^2.1.5: parse-glob "^3.0.4" regex-cache "^0.4.2" -micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: +micromatch@^3.1.10: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" dependencies: @@ -4947,6 +4772,13 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + mime-db@1.40.0: version "1.40.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" @@ -4998,7 +4830,7 @@ minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" -minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0, minimist@~1.2.0: +minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" @@ -5082,6 +4914,26 @@ modify-values@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" +module-deps@^6.0.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.2.0.tgz#d41a2e790245ce319171e4e7c4d8c73993ba3cd5" + dependencies: + JSONStream "^1.0.3" + browser-resolve "^1.7.0" + cached-path-relative "^1.0.0" + concat-stream "~1.6.0" + defined "^1.0.0" + detective "^5.0.2" + duplexer2 "^0.1.2" + inherits "^2.0.1" + parents "^1.0.0" + readable-stream "^2.0.2" + resolve "^1.4.0" + stream-combiner2 "^1.1.1" + subarg "^1.0.0" + through2 "^2.0.0" + xtend "^4.0.0" + move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" @@ -5101,10 +4953,6 @@ ms@^2.0.0, ms@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" -mute-stdout@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mute-stdout/-/mute-stdout-1.0.1.tgz#acb0300eb4de23a7ddeec014e3e96044b3472331" - mute-stream@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" @@ -5161,10 +5009,6 @@ nested-error-stacks@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz#0fbdcf3e13fe4994781280524f8b96b0cdff9c61" -next-tick@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -5298,26 +5142,16 @@ normalize-package-data@~2.4.0: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1: +normalize-path@^2.0.0, normalize-path@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" dependencies: remove-trailing-separator "^1.0.1" -normalize-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - normalize-url@^4.0.0: version "4.3.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.3.0.tgz#9c49e10fc1876aeb76dba88bf1b2b5d9fa57b2ee" -now-and-later@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/now-and-later/-/now-and-later-2.0.1.tgz#8e579c8685764a7cc02cb680380e94f43ccb1f7c" - dependencies: - once "^1.3.2" - npm-audit-report@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-1.3.2.tgz#303bc78cd9e4c226415076a4f7e528c89fc77018" @@ -5647,7 +5481,7 @@ object-inspect@~1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" -object-keys@^1.0.11, object-keys@^1.0.12: +object-keys@^1.0.12: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" @@ -5657,31 +5491,6 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@^4.0.4: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.defaults@^1.0.0, object.defaults@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" - dependencies: - array-each "^1.0.1" - array-slice "^1.0.0" - for-own "^1.0.0" - isobject "^3.0.0" - -object.map@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" - dependencies: - for-own "^1.0.0" - make-iterator "^1.0.0" - object.omit@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" @@ -5689,24 +5498,17 @@ object.omit@^2.0.0: for-own "^0.1.4" is-extendable "^0.1.1" -object.pick@^1.2.0, object.pick@^1.3.0: +object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" dependencies: isobject "^3.0.1" -object.reduce@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object.reduce/-/object.reduce-1.0.1.tgz#6fe348f2ac7fa0f95ca621226599096825bb03ad" - dependencies: - for-own "^1.0.0" - make-iterator "^1.0.0" - octokit-pagination-methods@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4" -once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.3.3, once@^1.4.0, once@~1.4.0: +once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0, once@~1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: @@ -5740,22 +5542,14 @@ optionator@^0.8.2: type-check "~0.3.2" wordwrap "~1.0.0" -ordered-read-streams@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e" - dependencies: - readable-stream "^2.0.1" +os-browserify@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" os-homedir@^1.0.0, os-homedir@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" -os-locale@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" - dependencies: - lcid "^1.0.0" - os-locale@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" @@ -5910,6 +5704,10 @@ pacote@^8.1.6: unique-filename "^1.1.0" which "^1.3.0" +pako@~1.0.5: + version "1.0.10" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" + parallel-transform@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" @@ -5924,13 +5722,22 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-filepath@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" +parents@^1.0.0, parents@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751" dependencies: - is-absolute "^1.0.0" - map-cache "^0.2.0" - path-root "^0.1.1" + path-platform "~0.11.15" + +parse-asn1@^5.0.0: + version "5.1.4" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.4.tgz#37f6628f823fbdeb2273b4d540434a22f3ef1fcc" + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" parse-github-url@^1.0.1: version "1.0.2" @@ -5958,14 +5765,6 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" -parse-node-version@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" - -parse-passwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - parseqs@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" @@ -5986,16 +5785,14 @@ pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" +path-browserify@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + path-dirname@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - dependencies: - pinkie-promise "^2.0.0" - path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -6016,15 +5813,9 @@ path-parse@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" -path-root-regex@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" - -path-root@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" - dependencies: - path-root-regex "^0.1.0" +path-platform@~0.11.15: + version "0.11.15" + resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2" path-to-regexp@^1.7.0: version "1.7.0" @@ -6032,14 +5823,6 @@ path-to-regexp@^1.7.0: dependencies: isarray "0.0.1" -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" - path-type@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" @@ -6056,7 +5839,7 @@ pathval@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" -pbkdf2@^3.0.9: +pbkdf2@^3.0.3, pbkdf2@^3.0.9: version "3.0.17" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" dependencies: @@ -6082,16 +5865,6 @@ pify@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - pkg-conf@^2.0.0, pkg-conf@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.1.0.tgz#2126514ca6f2abfebd168596df18ba57867f0058" @@ -6147,22 +5920,18 @@ prettier@^1.14.2: version "1.17.0" resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.17.0.tgz#53b303676eed22cc14a9f0cec09b477b3026c008" -pretty-hrtime@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" - private@^0.1.6, private@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" -process-nextick-args@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" - -process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: +process-nextick-args@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" +process@~0.11.0: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + progress@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" @@ -6218,6 +5987,17 @@ psl@^1.1.24: version "1.1.31" resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.31.tgz#e9aa86d0101b5b105cbe93ac6b784cd547276184" +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + pump@^2.0.0, pump@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" @@ -6232,7 +6012,7 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -pumpify@^1.3.3, pumpify@^1.3.5: +pumpify@^1.3.3: version "1.5.1" resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" dependencies: @@ -6240,7 +6020,11 @@ pumpify@^1.3.3, pumpify@^1.3.5: inherits "^2.0.3" pump "^2.0.0" -punycode@^1.4.1: +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + +punycode@^1.3.2, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" @@ -6288,6 +6072,14 @@ query-string@^6.1.0: split-on-first "^1.0.0" strict-uri-encode "^2.0.0" +querystring-es3@~0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + quick-lru@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" @@ -6308,12 +6100,19 @@ randomatic@^3.0.0: kind-of "^6.0.0" math-random "^1.0.1" -randombytes@^2.0.1, randombytes@^2.0.6: +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.0.6: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" dependencies: safe-buffer "^5.1.0" +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + range-parser@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" @@ -6350,6 +6149,12 @@ read-installed@~4.0.3: optionalDependencies: graceful-fs "^4.1.2" +read-only-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0" + dependencies: + readable-stream "^2.0.2" + "read-package-json@1 || 2", read-package-json@^2.0.0, read-package-json@^2.0.13: version "2.0.13" resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.0.13.tgz#2e82ebd9f613baa6d2ebe3aa72cefe3f68e41f4a" @@ -6371,13 +6176,6 @@ read-package-tree@^5.2.1: read-package-json "^2.0.0" readdir-scoped-modules "^1.0.0" -read-pkg-up@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - read-pkg-up@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" @@ -6399,14 +6197,6 @@ read-pkg-up@^4.0.0: find-up "^3.0.0" read-pkg "^3.0.0" -read-pkg@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" - read-pkg@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" @@ -6437,7 +6227,7 @@ read@1, read@~1.0.1, read@~1.0.7: dependencies: mute-stream "~0.0.4" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" dependencies: @@ -6467,7 +6257,7 @@ readdir-scoped-modules@^1.0.0: graceful-fs "^4.1.2" once "^1.3.0" -readdirp@^2.0.0, readdirp@^2.2.1: +readdirp@^2.0.0: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" dependencies: @@ -6475,12 +6265,6 @@ readdirp@^2.0.0, readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - dependencies: - resolve "^1.1.6" - redent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" @@ -6568,22 +6352,7 @@ release-zalgo@^1.0.0: dependencies: es6-error "^4.0.1" -remove-bom-buffer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz#c2bf1e377520d324f623892e33c10cac2c252b53" - dependencies: - is-buffer "^1.1.5" - is-utf8 "^0.2.1" - -remove-bom-stream@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz#05f1a593f16e42e1fb90ebf59de8e569525f9523" - dependencies: - remove-bom-buffer "^3.0.0" - safe-buffer "^5.1.0" - through2 "^2.0.3" - -remove-trailing-separator@^1.0.1, remove-trailing-separator@^1.1.0: +remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" @@ -6605,18 +6374,6 @@ repl.history@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/repl.history/-/repl.history-0.1.4.tgz#80367171f3781d6e4299c71758c253097f5d5832" -replace-ext@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" - -replace-homedir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/replace-homedir/-/replace-homedir-1.0.0.tgz#e87f6d513b928dde808260c12be7fec6ff6e798c" - dependencies: - homedir-polyfill "^1.0.1" - is-absolute "^1.0.0" - remove-trailing-separator "^1.1.0" - request@^2.74.0, request@^2.86.0, request@^2.87.0, request@^2.88.0: version "2.88.0" resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" @@ -6661,13 +6418,6 @@ require-uncached@^1.0.3: caller-path "^0.1.0" resolve-from "^1.0.0" -resolve-dir@^1.0.0, resolve-dir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - dependencies: - expand-tilde "^2.0.0" - global-modules "^1.0.0" - resolve-from@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" @@ -6680,17 +6430,15 @@ resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" -resolve-options@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/resolve-options/-/resolve-options-1.1.0.tgz#32bb9e39c06d67338dc9378c0d6d6074566ad131" - dependencies: - value-or-function "^3.0.0" - resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.8.1, resolve@~1.10.0: +resolve@1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + +resolve@^1.1.4, resolve@^1.10.0, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.8.1, resolve@~1.10.0: version "1.10.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.1.tgz#664842ac960795bbe758221cdccda61fb64b5f18" dependencies: @@ -6848,12 +6596,6 @@ semver-diff@^2.0.0: dependencies: semver "^5.0.3" -semver-greatest-satisfied-range@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz#13e8c2658ab9691cb0cd71093240280d36f77a5b" - dependencies: - sver-compat "^1.5.0" - semver-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" @@ -6892,7 +6634,7 @@ set-value@^2.0.0: is-plain-object "^2.0.3" split-string "^3.0.1" -sha.js@^2.4.0, sha.js@^2.4.8: +sha.js@^2.4.0, sha.js@^2.4.8, sha.js@~2.4.4: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" dependencies: @@ -6906,6 +6648,13 @@ sha@~2.0.1: graceful-fs "^4.1.2" readable-stream "^2.0.2" +shasum@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz#e7012310d8f417f4deb5712150e5678b87ae565f" + dependencies: + json-stable-stringify "~0.0.0" + sha.js "~2.4.4" + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -6916,6 +6665,15 @@ shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" +shell-quote@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" + dependencies: + array-filter "~0.0.0" + array-map "~0.0.0" + array-reduce "~0.0.0" + jsonify "~0.0.0" + signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" @@ -6928,6 +6686,10 @@ signale@^1.2.1: figures "^2.0.0" pkg-conf "^2.1.0" +simple-concat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6" + sinon@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/sinon/-/sinon-4.5.0.tgz#427ae312a337d3c516804ce2754e8c0d5028cb04" @@ -7102,7 +6864,7 @@ source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" -source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7: +source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.3: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" @@ -7110,10 +6872,6 @@ source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" -sparkles@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.1.tgz#008db65edce6c50eec0c5e228e1945061dd0437c" - spawn-error-forwarder@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz#1afd94738e999b0346d7b9fc373be55e07577029" @@ -7209,10 +6967,6 @@ ssri@^6.0.0, ssri@^6.0.1: dependencies: figgy-pudding "^3.5.1" -stack-trace@0.0.10: - version "0.0.10" - resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" - standard-engine@~8.0.0: version "8.0.1" resolved "https://registry.yarnpkg.com/standard-engine/-/standard-engine-8.0.1.tgz#0b77be8d7ab963675717dbeac1ef1d6675fb62f0" @@ -7243,7 +6997,14 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -stream-combiner2@~1.1.1: +stream-browserify@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-combiner2@^1.1.1, stream-combiner2@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" dependencies: @@ -7257,9 +7018,15 @@ stream-each@^1.1.0: end-of-stream "^1.1.0" stream-shift "^1.0.0" -stream-exhaust@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/stream-exhaust/-/stream-exhaust-1.0.2.tgz#acdac8da59ef2bc1e17a2c0ccf6c320d120e555d" +stream-http@^2.0.0: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" stream-iterate@^1.1.0: version "1.2.0" @@ -7272,11 +7039,18 @@ stream-shift@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" +stream-splicer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.0.tgz#1b63be438a133e4b671cc1935197600175910d83" + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.2" + strict-uri-encode@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" -string-width@^1.0.1, string-width@^1.0.2: +string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" dependencies: @@ -7307,6 +7081,12 @@ string.prototype.trim@~1.1.2: es-abstract "^1.5.0" function-bind "^1.0.2" +string_decoder@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" + dependencies: + safe-buffer "~5.1.0" + string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" @@ -7339,12 +7119,6 @@ strip-ansi@^5.1.0: dependencies: ansi-regex "^4.1.0" -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - dependencies: - is-utf8 "^0.2.0" - strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -7361,6 +7135,12 @@ strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" +subarg@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" + dependencies: + minimist "^1.1.0" + supports-color@5.4.0: version "5.4.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" @@ -7390,12 +7170,11 @@ supports-hyperlinks@^1.0.1: has-flag "^2.0.0" supports-color "^5.0.0" -sver-compat@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/sver-compat/-/sver-compat-1.5.0.tgz#3cf87dfeb4d07b4a3f14827bc186b3fd0c645cd8" +syntax-error@^1.1.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.4.0.tgz#2d9d4ff5c064acb711594a3e3b95054ad51d907c" dependencies: - es6-iterator "^2.0.1" - es6-symbol "^3.1.1" + acorn-node "^1.2.0" table@4.0.2: version "4.0.2" @@ -7478,14 +7257,7 @@ text-table@^0.2.0, text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" -through2-filter@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.0.0.tgz#700e786df2367c2c88cd8aa5be4cf9c1e7831254" - dependencies: - through2 "~2.0.0" - xtend "~4.0.0" - -through2@^2.0.0, through2@^2.0.2, through2@^2.0.3, through2@~2.0.0: +through2@^2.0.0, through2@^2.0.2, through2@~2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" dependencies: @@ -7496,14 +7268,16 @@ through@2, "through@>=2.2.7 <3", through@^2.3.6, through@~2.3.4, through@~2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" -time-stamp@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" - timed-out@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" +timers-browserify@^1.0.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" + dependencies: + process "~0.11.0" + tiny-relative-date@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz#fa08aad501ed730f31cc043181d995c39a935e07" @@ -7514,17 +7288,14 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" -to-absolute-glob@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1865f43d9e74b0822db9f145b78cff7d0f7c849b" - dependencies: - is-absolute "^1.0.0" - is-negated-glob "^1.0.0" - to-array@0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + to-fast-properties@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" @@ -7555,12 +7326,6 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" -to-through@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-through/-/to-through-2.0.0.tgz#fc92adaba072647bc0b67d6b03664aa195093af6" - dependencies: - through2 "^2.0.3" - touch@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" @@ -7594,6 +7359,10 @@ tslib@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" +tty-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811" + tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -7648,27 +7417,19 @@ umask@^1.1.0, umask@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" -unc-path-regex@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" - -undertaker-registry@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/undertaker-registry/-/undertaker-registry-1.0.1.tgz#5e4bda308e4a8a2ae584f9b9a4359a499825cc50" +umd@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz#aa9fe653c42b9097678489c01000acb69f0b26cf" -undertaker@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/undertaker/-/undertaker-1.2.1.tgz#701662ff8ce358715324dfd492a4f036055dfe4b" +undeclared-identifiers@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz#9254c1d37bdac0ac2b52de4b6722792d2a91e30f" dependencies: - arr-flatten "^1.0.1" - arr-map "^2.0.0" - bach "^1.0.0" - collection-map "^1.0.0" - es6-weak-map "^2.0.1" - last-run "^1.1.0" - object.defaults "^1.0.0" - object.reduce "^1.0.0" - undertaker-registry "^1.0.0" + acorn-node "^1.3.0" + dash-ast "^1.0.0" + get-assigned-identifiers "^1.2.0" + simple-concat "^1.0.0" + xtend "^4.0.1" union-value@^1.0.0: version "1.0.0" @@ -7695,13 +7456,6 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" -unique-stream@^2.0.2: - version "2.3.1" - resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.3.1.tgz#c65d110e9a4adf9a6c5948b28053d9a8d04cbeac" - dependencies: - json-stable-stringify-without-jsonify "^1.0.1" - through2-filter "^3.0.0" - unique-string@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" @@ -7737,10 +7491,6 @@ unzip-response@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" -upath@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068" - update-notifier@^2.3.0, update-notifier@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" @@ -7780,6 +7530,13 @@ url-template@^2.0.8: version "2.0.8" resolved "https://registry.yarnpkg.com/url-template/-/url-template-2.0.8.tgz#fc565a3cccbff7730c775f5641f9555791439f21" +url@~0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + dependencies: + punycode "1.3.2" + querystring "0.2.0" + use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" @@ -7802,6 +7559,12 @@ util@0.10.3: dependencies: inherits "2.0.1" +util@~0.10.1: + version "0.10.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" + dependencies: + inherits "2.0.3" + uuid@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" @@ -7812,12 +7575,6 @@ v8flags@^2.1.1: dependencies: user-home "^1.1.1" -v8flags@^3.0.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.1.2.tgz#fc5cd0c227428181e6c29b2992e4f8f1da5e0c9f" - dependencies: - homedir-polyfill "^1.0.1" - validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -7831,10 +7588,6 @@ validate-npm-package-name@^3.0.0, validate-npm-package-name@~3.0.0: dependencies: builtins "^1.0.3" -value-or-function@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813" - varuint-bitcoin@^1.0.1, varuint-bitcoin@^1.0.4: version "1.1.0" resolved "https://registry.yarnpkg.com/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz#7a343f50537607af6a3059312b9782a170894540" @@ -7849,50 +7602,9 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -vinyl-fs@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-3.0.3.tgz#c85849405f67428feabbbd5c5dbdd64f47d31bc7" - dependencies: - fs-mkdirp-stream "^1.0.0" - glob-stream "^6.1.0" - graceful-fs "^4.0.0" - is-valid-glob "^1.0.0" - lazystream "^1.0.0" - lead "^1.0.0" - object.assign "^4.0.4" - pumpify "^1.3.5" - readable-stream "^2.3.3" - remove-bom-buffer "^3.0.0" - remove-bom-stream "^1.2.0" - resolve-options "^1.1.0" - through2 "^2.0.0" - to-through "^2.0.0" - value-or-function "^3.0.0" - vinyl "^2.0.0" - vinyl-sourcemap "^1.1.0" - -vinyl-sourcemap@^1.1.0: +vm-browserify@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz#92a800593a38703a8cdb11d8b300ad4be63b3e16" - dependencies: - append-buffer "^1.0.2" - convert-source-map "^1.5.0" - graceful-fs "^4.1.6" - normalize-path "^2.1.1" - now-and-later "^2.0.0" - remove-bom-buffer "^3.0.0" - vinyl "^2.0.0" - -vinyl@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.0.tgz#d85b07da96e458d25b2ffe19fece9f2caa13ed86" - dependencies: - clone "^2.1.1" - clone-buffer "^1.0.0" - clone-stats "^1.0.0" - cloneable-readable "^1.0.0" - remove-trailing-separator "^1.0.1" - replace-ext "^1.0.0" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" wcwidth@^1.0.0: version "1.0.1" @@ -7900,15 +7612,11 @@ wcwidth@^1.0.0: dependencies: defaults "^1.0.3" -which-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" - which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" -which@1, which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1: +which@1, which@^1.2.9, which@^1.3.0, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" dependencies: @@ -8001,7 +7709,7 @@ xmlhttprequest-ssl@~1.5.4: version "1.5.5" resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" -xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: +xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" @@ -8035,12 +7743,6 @@ yargs-parser@^13.0.0: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" - dependencies: - camelcase "^3.0.0" - yargs-parser@^9.0.2: version "9.0.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" @@ -8097,24 +7799,6 @@ yargs@^13.2.2: y18n "^4.0.0" yargs-parser "^13.0.0" -yargs@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" - dependencies: - camelcase "^3.0.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - y18n "^3.2.1" - yargs-parser "^5.0.0" - yeast@0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" From 74ec715dbf3f16749b75319ee4c17ae55e956423 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Thu, 9 May 2019 11:29:14 +0900 Subject: [PATCH 290/480] Fixing ts stuff. --- index.ts | 14 +++++++------- lib/Address.ts | 6 +++--- lib/BitcoinCash.ts | 16 ++++++++-------- lib/Crypto.ts | 4 ++-- lib/ECPair.ts | 4 ++-- lib/HDNode.ts | 6 +++--- lib/Mnemonic.ts | 6 +++--- lib/Schnorr.ts | 2 +- lib/Script.ts | 2 +- lib/Socket.ts | 2 +- lib/Transaction.ts | 2 +- lib/TransactionBuilder.ts | 8 ++++---- package.json | 2 +- tsconfig.json | 1 - yarn.lock | 3 +-- 15 files changed, 38 insertions(+), 40 deletions(-) diff --git a/index.ts b/index.ts index ba5cb326..836e88c5 100755 --- a/index.ts +++ b/index.ts @@ -30,7 +30,7 @@ program "environment of running BITBOX instance. Ex: production, staging. (Default: development)" ) .description(`create a new BITBOX application`) - .action((name, options) => { + .action((name: any, options: any) => { if (fs.existsSync(`./${name}`)) { console.log(chalk.red(`Project ${name} already exists`)) process.exit(1) @@ -81,7 +81,7 @@ program ) console.log(chalk.blue(`Scaffolding ${scaffold} app in ${name}`)) - clone(repo, `./${name}`, [conf], res => { + clone(repo, `./${name}`, [conf], (res: any) => { if (res === "Error: 'git clone' failed with status 128") { console.log(chalk.red("Must create new app in to an empty directory")) } else { @@ -99,16 +99,16 @@ program console.log(chalk.green(`Creating ${name}/ directory`)) console.log(chalk.green(`Creating src/ directory: ./${name}/src`)) - mkdirp(`./${name}/src`, err => {}) + mkdirp(`./${name}/src`, (err: any) => {}) console.log(chalk.green(`Creating tests/ directory: ./${name}/tests`)) - mkdirp(`./${name}/tests`, err => {}) + mkdirp(`./${name}/tests`, (err: any) => {}) console.log( chalk.green(`Creating bitbox.js configuration file: ./${name}/bitbox.js`) ) - mkdirp(`./${name}`, err => {}) + mkdirp(`./${name}`, (err: any) => {}) touch(`./${name}/bitbox.js`) fs.writeFileSync( `./${name}/bitbox.js`, @@ -138,7 +138,7 @@ program "environment of running BITBOX instance. Ex: production, staging. (Default: development)" ) .description("Run a console with Bitcoin Cash RPC commands available") - .action(options => { + .action((options: any) => { let config try { config = require(`${process.cwd()}/bitbox.js`).config @@ -157,7 +157,7 @@ program replServer.context.BITBOX = new BITBOX(config.environments[environment]) }) -function fetchOption(kv, config, options) { +function fetchOption(kv: any, config: any, options: any) { const parts = kv.split("=") const key = parts[0] const defaultVal = parts[1] diff --git a/lib/Address.ts b/lib/Address.ts index e01bcb3b..5a10cce2 100644 --- a/lib/Address.ts +++ b/lib/Address.ts @@ -1,7 +1,7 @@ import axios from "axios" -import * as Bitcoin from "bitcoincashjs-lib" -import * as cashaddr from "cashaddrjs" -import * as coininfo from "coininfo" +const Bitcoin = require("bitcoincashjs-lib") +const cashaddr = require("cashaddrjs") +const coininfo = require("coininfo") export class Address { restURL: string diff --git a/lib/BitcoinCash.ts b/lib/BitcoinCash.ts index 2148636e..ea27ec59 100644 --- a/lib/BitcoinCash.ts +++ b/lib/BitcoinCash.ts @@ -1,11 +1,11 @@ -import * as Bitcoin from "bitcoincashjs-lib" -import * as sb from "satoshi-bitcoin" -import * as bitcoinMessage from "bitcoinjs-message" -import * as bs58 from "bs58" -import * as bip21 from "bip21" -import * as coininfo from "coininfo" -import * as bip38 from "bip38" -import * as wif from "wif" +const Bitcoin = require("bitcoincashjs-lib") +const sb = require("satoshi-bitcoin") +const bitcoinMessage = require("bitcoinjs-message") +const bs58 = require("bs58") +const bip21 = require("bip21") +const coininfo = require("coininfo") +const bip38 = require("bip38") +const wif = require("wif") const Buffer = require("safe-buffer").Buffer diff --git a/lib/Crypto.ts b/lib/Crypto.ts index f4d2961f..9f063a7b 100644 --- a/lib/Crypto.ts +++ b/lib/Crypto.ts @@ -1,5 +1,5 @@ -import * as randomBytes from "randombytes" -import * as Bitcoin from "bitcoincashjs-lib" +const randomBytes = require("randomBytes") +const Bitcoin = require("bitcoincashjs-lib") export class Crypto { static sha256(buffer: any): any { diff --git a/lib/ECPair.ts b/lib/ECPair.ts index a20031d7..a500ab6c 100644 --- a/lib/ECPair.ts +++ b/lib/ECPair.ts @@ -1,5 +1,5 @@ -import * as Bitcoin from "bitcoincashjs-lib" -import * as coininfo from "coininfo" +const Bitcoin = require("bitcoincashjs-lib") +const coininfo = require("coininfo") export class ECPair { static _address: any diff --git a/lib/HDNode.ts b/lib/HDNode.ts index 8c6c90e3..dcab3f6e 100644 --- a/lib/HDNode.ts +++ b/lib/HDNode.ts @@ -1,6 +1,6 @@ -import * as Bitcoin from "bitcoincashjs-lib" -import * as coininfo from "coininfo" -import * as bip32utils from "bip32-utils" +const Bitcoin = require("bitcoincashjs-lib") +const coininfo = require("coininfo") +const bip32utils = require("bip32-utils") export class HDNode { _address: any diff --git a/lib/Mnemonic.ts b/lib/Mnemonic.ts index 9ef22f84..6a6fcd80 100644 --- a/lib/Mnemonic.ts +++ b/lib/Mnemonic.ts @@ -1,6 +1,6 @@ -import * as BIP39 from "bip39" -import * as randomBytes from "randombytes" -import * as Bitcoin from "bitcoincashjs-lib" +const BIP39 = require("bip39") +const randomBytes = require("randomBytes") +const Bitcoin = require("bitcoincashjs-lib") const Buffer = require("safe-buffer").Buffer const wif = require("wif") diff --git a/lib/Schnorr.ts b/lib/Schnorr.ts index bb11d4b8..420b5569 100644 --- a/lib/Schnorr.ts +++ b/lib/Schnorr.ts @@ -1,4 +1,4 @@ -import * as schnorr from "bip-schnorr" +const schnorr = require("bip-schnorr") export class Schnorr { sign(privateKey: any, message: any): any { diff --git a/lib/Script.ts b/lib/Script.ts index 0aed3f58..ece906a6 100644 --- a/lib/Script.ts +++ b/lib/Script.ts @@ -1,4 +1,4 @@ -import * as Bitcoin from "bitcoincashjs-lib" +const Bitcoin = require("bitcoincashjs-lib") const opcodes = require("bitcoincash-ops") export class Script { diff --git a/lib/Socket.ts b/lib/Socket.ts index 4eb3ae40..fa432e33 100644 --- a/lib/Socket.ts +++ b/lib/Socket.ts @@ -1,4 +1,4 @@ -import * as io from "socket.io-client" +const io = require("socket.io-client") export class Socket { socket: any diff --git a/lib/Transaction.ts b/lib/Transaction.ts index c372bbde..4ca1e161 100644 --- a/lib/Transaction.ts +++ b/lib/Transaction.ts @@ -1,4 +1,4 @@ -import * as Bitcoin from "bitcoincashjs-lib" +const Bitcoin = require("bitcoincashjs-lib") import axios from "axios" export class Transaction { diff --git a/lib/TransactionBuilder.ts b/lib/TransactionBuilder.ts index b5fbeb15..8d0b6a9c 100644 --- a/lib/TransactionBuilder.ts +++ b/lib/TransactionBuilder.ts @@ -1,7 +1,7 @@ -import * as Bitcoin from "bitcoincashjs-lib" -import * as coininfo from "coininfo" -import * as bip66 from "bip66" -import * as bip68 from "bc-bip68" +const Bitcoin = require("bitcoincashjs-lib") +const coininfo = require("coininfo") +const bip66 = require("bip66") +const bip68 = require("bc-bip68") export class TransactionBuilder { transaction: any diff --git a/package.json b/package.json index 6780d763..8489f075 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "bip38": "^2.0.2", "bip39": "^2.5.0", "bip66": "^1.1.5", - "bitcoincash-ops": "Bitcoin-com/bitcoincash-ops#v2.0.0", + "bitcoincash-ops": "Bitcoin-com/bitcoincash-ops#2.0.0", "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib#v4.0.0", "bitcoinjs-message": "^2.0.0", "browserify": "^16.2.2", diff --git a/tsconfig.json b/tsconfig.json index 58cc0f45..9cecd04a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,5 @@ { "compilerOptions": { - "noImplicitAny": false, "module": "commonjs", "strict": true, "target": "es5", diff --git a/yarn.lock b/yarn.lock index 9a39bdb6..894a4194 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1276,9 +1276,8 @@ bip66@^1.1.0, bip66@^1.1.3, bip66@^1.1.5: dependencies: safe-buffer "^5.0.1" -bitcoincash-ops@Bitcoin-com/bitcoincash-ops#2.0.0, bitcoincash-ops@Bitcoin-com/bitcoincash-ops#v2.0.0: +bitcoincash-ops@Bitcoin-com/bitcoincash-ops#2.0.0: version "2.0.0" - uid "6ab82cc7326c67236f3b2d9d0457258ac2ef48e3" resolved "https://codeload.github.com/Bitcoin-com/bitcoincash-ops/tar.gz/6ab82cc7326c67236f3b2d9d0457258ac2ef48e3" bitcoincashjs-lib@Bitcoin-com/bitcoincashjs-lib#v4.0.0: From 36a3e2a23618c4b706a3b19967801333d3a267cd Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Thu, 9 May 2019 11:32:31 +0900 Subject: [PATCH 291/480] Build. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8489f075..97c88d26 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "test": "TEST=unit nyc --reporter=text mocha --require babel-core/register --timeout 30000 test/unit", "test:integration": "TEST=integration nyc --reporter=text mocha --require babel-core/register --timeout 10000 test/integration", "coverage": "nyc report --reporter=text-lcov | coveralls", - "build": "tsc && mkdirp dist && browserify index.js --standalone slpjs > dist/slpjs.js && uglifyjs dist/slpjs.js > dist/slpjs.min.js" + "build": "tsc" }, "license": "MIT", "engines": { From 9c78c68f7d494ce6a40df01d51a05324eb56ec7a Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Thu, 9 May 2019 11:52:35 +0900 Subject: [PATCH 292/480] Address interface. --- lib/Address.ts | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/lib/Address.ts b/lib/Address.ts index 5a10cce2..540e1315 100644 --- a/lib/Address.ts +++ b/lib/Address.ts @@ -3,7 +3,32 @@ const Bitcoin = require("bitcoincashjs-lib") const cashaddr = require("cashaddrjs") const coininfo = require("coininfo") -export class Address { +export interface Address { + toLegacyAddress(address: string): string + toCashAddress(address: string, prefix: boolean, regtest: boolean): string + toHash160(address: string): string + hash160ToLegacy(hash160: any, network: any): string + hash160ToCash(hash160: any, network: any, regtest: boolean): string + isLegacyAddress(address: string): boolean + isCashAddress(address: string): boolean + isHash160(address: string): boolean + isMainnetAddress(address: string): boolean + isTestnetAddress(address: string): boolean + isRegTestAddress(address: string): boolean + isP2PKHAddress(address: string): boolean + isP2SHAddress(address: string): boolean + detectAddressFormat(address: string): string + detectAddressNetwork(address: string): string + detectAddressType(address: string): string + fromXPub(xpub: string, path: string): string + fromOutputScript(scriptPubKey: any, network: string): string + details(address: string | string[]): Promise + utxo(address: string | string[]): Promise + unconfirmed(address: string | string[]): Promise + transactions(address: string | string[]): Promise +} + +export class Address implements Address { restURL: string constructor(restURL: string) { this.restURL = restURL From 7b02678498689642305987453323b48fb22f7940 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Thu, 9 May 2019 12:28:03 +0900 Subject: [PATCH 293/480] Adding interfaces. --- lib/BitcoinCash.ts | 23 ++++++++++++++++++++++- lib/Block.ts | 8 +++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/lib/BitcoinCash.ts b/lib/BitcoinCash.ts index ea27ec59..491e9915 100644 --- a/lib/BitcoinCash.ts +++ b/lib/BitcoinCash.ts @@ -9,7 +9,28 @@ const wif = require("wif") const Buffer = require("safe-buffer").Buffer -export class BitcoinCash { +export interface BitcoinCash { + _address: any + toSatoshi(coins: number): number + toBitcoinCash(satoshis: number): number + toBits(satoshis: any): any + satsToBits(satoshis: any): any + signMessageWithPrivKey(privateKeyWIF: string, message: string): string + verifyMessage(address: string, signature: string, message: string): boolean + encodeBase58Check(hex: string): string + decodeBase58Check(address: string): string + encodeBIP21(address: string, options: any, regtest: boolean): string + decodeBIP21(url: string): any + getByteCount(inputs: any, outputs: any): number + encryptBIP38(privKeyWIF: string, passphrase: string): string + decryptBIP38( + encryptedKey: string, + passphrase: string, + network: string + ): string +} + +export class BitcoinCash implements BitcoinCash { _address: any constructor(address: any) { this._address = address diff --git a/lib/Block.ts b/lib/Block.ts index f6d10440..c42ee0dc 100644 --- a/lib/Block.ts +++ b/lib/Block.ts @@ -1,6 +1,12 @@ import axios from "axios" -export class Block { +export interface Block { + restURL: string + detailsByHeight(id: number | number[]): Promise + detailsByHash(hash: string | string[]): Promise +} + +export class Block implements Block { restURL: string constructor(restURL: string) { this.restURL = restURL From b1a345cac5e62790c03a1a5ffa349b3e2e5bf9d8 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Thu, 9 May 2019 12:53:01 +0900 Subject: [PATCH 294/480] Class interfaces. --- lib/Blockchain.ts | 27 +++++++++++++++++++++++++-- lib/Control.ts | 16 ++++++++++++---- lib/Crypto.ts | 10 +++++++++- lib/ECPair.ts | 15 ++++++++++++++- lib/Generating.ts | 7 ++++++- lib/HDNode.ts | 27 ++++++++++++++++++++++++++- lib/Mining.ts | 10 +++++++++- lib/Mnemonic.ts | 14 +++++++++++++- 8 files changed, 114 insertions(+), 12 deletions(-) diff --git a/lib/Blockchain.ts b/lib/Blockchain.ts index 8db750dd..2e5e7298 100644 --- a/lib/Blockchain.ts +++ b/lib/Blockchain.ts @@ -5,8 +5,31 @@ import axios from "axios" -export class Blockchain { - restURL: any +export interface Blockchain { + restURL: string + getBestBlockHash(): Promise + getBlock(blockhash: string, verbose: boolean): Promise + getBlockchainInfo(): Promise + getBlockCount(): Promise + getBlockHash(height: any): Promise + getBlockHeader(hash: string | string[], verbose: boolean): Promise + getChainTips(): Promise + getDifficulty(): Promise + getMempoolAncestors(txid: string, verbose: boolean): Promise + getMempoolDescendants(txid: string, verbose: boolean): Promise + getMempoolEntry(txid: string): Promise + getMempoolInfo(): Promise + getRawMempool(verbose: boolean): Promise + getTxOut(txid: string, n: any, include_mempool: boolean): Promise + getTxOutProof(txids: string | string[]): Promise + preciousBlock(blockhash: string): Promise + pruneBlockchain(height: number): Promise + verifyChain(checklevel: number, nblocks: number): Promise + verifyTxOutProof(proof: any | any[]): Promise +} + +export class Blockchain implements Blockchain { + restURL: string constructor(restURL: string) { this.restURL = restURL } diff --git a/lib/Control.ts b/lib/Control.ts index 3f4baa94..04d56605 100644 --- a/lib/Control.ts +++ b/lib/Control.ts @@ -1,12 +1,18 @@ import axios from "axios" -export class Control { +export interface Control { + restURL: string + getInfo(): Promise + getMemoryInfo(): Promise +} + +export class Control implements Control { restURL: string constructor(restURL: string) { this.restURL = restURL } - async getInfo() { + async getInfo(): Promise { try { const response: any = await axios.get(`${this.restURL}control/getInfo`) return response.data @@ -16,9 +22,11 @@ export class Control { } } - async getMemoryInfo() { + async getMemoryInfo(): Promise { try { - const response: any = await axios.get(`${this.restURL}control/getMemoryInfo`) + const response: any = await axios.get( + `${this.restURL}control/getMemoryInfo` + ) return response.data } catch (error) { if (error.response && error.response.data) throw error.response.data diff --git a/lib/Crypto.ts b/lib/Crypto.ts index 9f063a7b..b433b34b 100644 --- a/lib/Crypto.ts +++ b/lib/Crypto.ts @@ -1,7 +1,15 @@ const randomBytes = require("randomBytes") const Bitcoin = require("bitcoincashjs-lib") -export class Crypto { +export interface Crypto { + sha256(buffer: any): any + ripemd160(buffer: any): any + hash256(buffer: any): any + hash160(buffer: any): any + randomBytes(size: number): any +} + +export class Crypto implements Crypto { static sha256(buffer: any): any { return Bitcoin.crypto.sha256(buffer) } diff --git a/lib/ECPair.ts b/lib/ECPair.ts index a500ab6c..cc6eb879 100644 --- a/lib/ECPair.ts +++ b/lib/ECPair.ts @@ -1,7 +1,20 @@ const Bitcoin = require("bitcoincashjs-lib") const coininfo = require("coininfo") -export class ECPair { +export interface ECPair { + _address: any + setAddress(address: any): void + fromWIF(privateKeyWIF: string): any + toWIF(ecpair: any): string + sign(ecpair: any, buffer: any): any + verify(ecpair: any, buffer: any, signature: any): any + fromPublicKey(pubkeyBuffer: any): any + toPublicKey(ecpair: any): any + toLegacyAddress(ecpair: any): string + toCashAddress(ecpair: any, regtest: boolean): string +} + +export class ECPair implements ECPair { static _address: any static setAddress(address: any): void { ECPair._address = address diff --git a/lib/Generating.ts b/lib/Generating.ts index a85dff40..bf32744e 100644 --- a/lib/Generating.ts +++ b/lib/Generating.ts @@ -1,6 +1,11 @@ import axios from "axios" -export class Generating { +export interface Generating { + restURL: string + generateToAddress(blocks: any, address: any, maxtries: number): Promise +} + +export class Generating implements Generating { restURL: string constructor(restURL: string) { this.restURL = restURL diff --git a/lib/HDNode.ts b/lib/HDNode.ts index dcab3f6e..8296c026 100644 --- a/lib/HDNode.ts +++ b/lib/HDNode.ts @@ -2,7 +2,32 @@ const Bitcoin = require("bitcoincashjs-lib") const coininfo = require("coininfo") const bip32utils = require("bip32-utils") -export class HDNode { +export interface HDNode { + _address: any + fromSeed(rootSeedBuffer: any, network: string): any + toLegacyAddress(hdNode: any): string + toCashAddress(hdNode: any, regtest: boolean): string + toWIF(hdNode: any): string + toXPub(hdNode: any): string + toXPriv(hdNode: any): string + toKeyPair(hdNode: any): any + toPublicKey(hdNode: any): any + fromXPriv(xpriv: string): any + fromXPub(xpub: string): any + derivePath(hdnode: any, path: string): any + derive(hdnode: any, path: string): any + deriveHardened(hdnode: any, path: string): any + sign(hdnode: any, buffer: any): any + verify(hdnode: any, buffer: any, signature: any): any + isPublic(hdnode: any): any + isPrivate(hdnode: any): any + toIdentifier(hdnode: any): any + fromBase58(base58: any, network: any): any + createAccount(hdNodes: any): any + createChain(hdNode: any): any +} + +export class HDNode implements HDNode { _address: any constructor(address: any) { this._address = address diff --git a/lib/Mining.ts b/lib/Mining.ts index a9e59a24..49a2b3b2 100644 --- a/lib/Mining.ts +++ b/lib/Mining.ts @@ -1,6 +1,14 @@ import axios from "axios" -export class Mining { +export interface Mining { + restURL: string + getBlockTemplate(template_request: any): Promise + getMiningInfo(): Promise + getNetworkHashps(nblocks: number, height: number): Promise + submitBlock(hex: string, parameters: any): Promise +} + +export class Mining implements Mining { restURL: string constructor(restURL: string) { this.restURL = restURL diff --git a/lib/Mnemonic.ts b/lib/Mnemonic.ts index 6a6fcd80..ba474a6c 100644 --- a/lib/Mnemonic.ts +++ b/lib/Mnemonic.ts @@ -4,7 +4,19 @@ const Bitcoin = require("bitcoincashjs-lib") const Buffer = require("safe-buffer").Buffer const wif = require("wif") -export class Mnemonic { +export interface Mnemonic { + _address: any + generate(bits: number, wordlist: string[]): string + fromEntropy(bytes: number, wordlist: string[]): string + toEntropy(mnemonic: string, wordlist: string[]): any + validate(mnemonic: string, wordlist: string[]): string + toSeed(mnemonic: string, password: string): any + wordLists(): string[] + toKeypairs(mnemonic: string, numberOfKeypairs: number, regtest: boolean): any + findNearestWord(word: string, wordlist: string[]): string +} + +export class Mnemonic implements Mnemonic { _address: any constructor(address: any) { this._address = address From 64760b19f6191d7a8d93c0abdfc547e849be3bd1 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Thu, 9 May 2019 13:02:26 +0900 Subject: [PATCH 295/480] interfaces --- lib/Price.ts | 6 +++++- lib/RawTransactions.ts | 13 ++++++++++++- lib/Schnorr.ts | 40 ++++++++++++++++++++++++++++++++++++++- lib/Script.ts | 18 +++++++++++++++++- lib/Socket.ts | 7 ++++++- lib/Transaction.ts | 9 +++++++-- lib/TransactionBuilder.ts | 36 +++++++++++++++++++++++++++++++++-- lib/Util.ts | 7 ++++++- 8 files changed, 126 insertions(+), 10 deletions(-) diff --git a/lib/Price.ts b/lib/Price.ts index 1b9088d8..41350f14 100644 --- a/lib/Price.ts +++ b/lib/Price.ts @@ -1,6 +1,10 @@ import axios from "axios" -export class Price { +export interface Price { + current(currency: string): Promise +} + +export class Price implements Price { async current(currency: string = "usd"): Promise { try { const response: any = await axios.get( diff --git a/lib/RawTransactions.ts b/lib/RawTransactions.ts index d42cda94..9de80dff 100644 --- a/lib/RawTransactions.ts +++ b/lib/RawTransactions.ts @@ -1,6 +1,17 @@ import axios from "axios" -export class RawTransactions { +export interface RawTransactions { + restURL: string + decodeRawTransaction(hex: string): Promise + decodeScript(script: string | string[]): Promise + getRawTransaction(txid: string, verbose: boolean): Promise + sendRawTransaction( + hex: string | string[], + allowhighfees: boolean + ): Promise +} + +export class RawTransactions implements RawTransactions { restURL: string constructor(restURL: string) { this.restURL = restURL diff --git a/lib/Schnorr.ts b/lib/Schnorr.ts index 420b5569..8124019a 100644 --- a/lib/Schnorr.ts +++ b/lib/Schnorr.ts @@ -1,6 +1,44 @@ const schnorr = require("bip-schnorr") -export class Schnorr { +export interface Schnorr { + sign(privateKey: any, message: any): any + verify(publicKey: any, message: any, signatureToVerify: any): any + batchVerify(publicKeys: any, messages: any, signaturesToVerify: any): any + nonInteractive(privateKeys: any, message: any): any + computeEll(publicKeys: any): any + publicKeyCombine(publicKeys: any, publicKeyHash: any): any + sessionInitialize( + sessionId: any, + privateKey: any, + message: any, + pubKeyCombined: any, + ell: any, + idx: any + ): any + sessionNonceCombine(session: any, nonces: any): any + partialSign( + session: any, + message: any, + nonceCombined: any, + pubKeyCombined: any + ): any + partialSignatureVerify( + session: any, + partialSignature: any, + nonceCombined: any, + idx: any, + pubKey: any, + nonce: any + ): any + partialSignaturesCombine(nonceCombined: any, partialSignatures: any): any + bufferToInt(buffer: any): any + intToBuffer(bigInteger: any): any + hash(buffer: any): any + pointToBuffer(point: any): any + pubKeyToPoint(publicKey: any): any +} + +export class Schnorr implements Schnorr { sign(privateKey: any, message: any): any { return schnorr.sign(privateKey, message) } diff --git a/lib/Script.ts b/lib/Script.ts index ece906a6..8a087b53 100644 --- a/lib/Script.ts +++ b/lib/Script.ts @@ -1,13 +1,29 @@ const Bitcoin = require("bitcoincashjs-lib") const opcodes = require("bitcoincash-ops") -export class Script { +export interface Script { opcodes: any nullData: any multisig: any pubKey: any pubKeyHash: any scriptHash: any + classifyInput(script: any): string + classifyOutput(script: any): string + decode(scriptBuffer: any): any[] + encode(scriptChunks: any): any + toASM(buffer: any): any + fromASM(asm: any): any +} + +export class Script implements Script { + opcodes: any + nullData: any + multisig: any + pubKey: any + pubKeyHash: any + scriptHash: any + constructor() { this.opcodes = opcodes this.nullData = Bitcoin.script.nullData diff --git a/lib/Socket.ts b/lib/Socket.ts index fa432e33..fe649417 100644 --- a/lib/Socket.ts +++ b/lib/Socket.ts @@ -1,6 +1,11 @@ const io = require("socket.io-client") -export class Socket { +export interface Socket { + socket: any + listen(endpoint: any, cb: any): void +} + +export class Socket implements Socket { socket: any constructor(config: any = {}) { if (typeof config === "string") { diff --git a/lib/Transaction.ts b/lib/Transaction.ts index 4ca1e161..e5a4b595 100644 --- a/lib/Transaction.ts +++ b/lib/Transaction.ts @@ -1,13 +1,18 @@ const Bitcoin = require("bitcoincashjs-lib") import axios from "axios" -export class Transaction { +export interface Transaction { + restURL: string + details(txid: string): Promise +} + +export class Transaction implements Transaction { restURL: string constructor(restURL: string) { this.restURL = restURL } - async details(txid: string) { + async details(txid: string): Promise { try { // Handle single address. if (typeof txid === "string") { diff --git a/lib/TransactionBuilder.ts b/lib/TransactionBuilder.ts index 8d0b6a9c..ad47e02a 100644 --- a/lib/TransactionBuilder.ts +++ b/lib/TransactionBuilder.ts @@ -3,7 +3,39 @@ const coininfo = require("coininfo") const bip66 = require("bip66") const bip68 = require("bc-bip68") -export class TransactionBuilder { +export interface TransactionBuilder { + transaction: any + DEFAULT_SEQUENCE: any + hashTypes: any + signatureAlgorithms: any + bip66: any + bip68: any + p2shInput: any + tx: any + _address: any + setAddress(address: string): void + addInput( + txHash: string, + vout: number, + sequence: number, + prevOutScript: string + ): void + addInputScript(vout: number, script: any): void + addInputScripts(scripts: any): void + addOutput(scriptPubKey: string, amount: number): void + setLockTime(locktime: number): void + sign( + vin: number, + keyPair: any, + redeemScript: any, + hashType: number, + value: number, + signatureAlgorithm: number + ): void + build(): any +} + +export class TransactionBuilder implements TransactionBuilder { transaction: any DEFAULT_SEQUENCE: any hashTypes: any @@ -51,7 +83,7 @@ export class TransactionBuilder { vout: number, sequence: number = this.DEFAULT_SEQUENCE, prevOutScript: string - ) { + ): void { this.transaction.addInput(txHash, vout, sequence, prevOutScript) } diff --git a/lib/Util.ts b/lib/Util.ts index e7c63ccc..85f721a2 100644 --- a/lib/Util.ts +++ b/lib/Util.ts @@ -1,6 +1,11 @@ import axios from "axios" -export class Util { +export interface Util { + restURL: string + validateAddress(address: string): Promise +} + +export class Util implements Util { restURL: string constructor(restURL: string) { this.restURL = restURL From aa806c42dbaf21396f49d043bd13b3decc08f73c Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Thu, 9 May 2019 13:52:14 +0900 Subject: [PATCH 296/480] Adding interfaces --- lib/Address.ts | 75 ++++++++++++++++++++++++++++++++----- lib/BITBOX.ts | 25 ++++++++++++- lib/BitcoinCash.ts | 46 ++++++++++++++++++++--- lib/Block.ts | 33 +++++++++++++++-- lib/Blockchain.ts | 92 ++++++++++++++++++++++++++++++++++++++++------ 5 files changed, 239 insertions(+), 32 deletions(-) diff --git a/lib/Address.ts b/lib/Address.ts index 540e1315..139776b4 100644 --- a/lib/Address.ts +++ b/lib/Address.ts @@ -22,12 +22,63 @@ export interface Address { detectAddressType(address: string): string fromXPub(xpub: string, path: string): string fromOutputScript(scriptPubKey: any, network: string): string - details(address: string | string[]): Promise - utxo(address: string | string[]): Promise - unconfirmed(address: string | string[]): Promise + details( + address: string | string[] + ): Promise + utxo( + address: string | string[] + ): Promise + unconfirmed( + address: string | string[] + ): Promise + // TODO add interface for AddressTransactionsResult transactions(address: string | string[]): Promise } +export interface AddressDetailsResult { + balance: number + balanceSat: number + totalReceived: number + totalReceivedSat: number + totalSent: number + totalSentSat: number + unconfirmedBalance: number + unconfirmedBalanceSat: number + unconfirmedTxApperances: number + txApperances: number + transactions: string[] + legacyAddress: string + cashAddress: string +} + +export interface AddressUtxoResult { + legacyAddress: string + cashAddress: string + scriptPubKey: string + utxos: [ + { + txid: string + vout: number + amount: number + satoshis: number + height: number + confirmations: number + } + ] +} + +export interface AddressUnconfirmedResult { + txid: string + vout: number + scriptPubKey: string + amount: number + satoshis: number + confirmations: number + ts: number + legacyAddress: string + cashAddress: string +} + export class Address implements Address { restURL: string constructor(restURL: string) { @@ -300,7 +351,9 @@ export class Address implements Address { ) } - async details(address: string | string[]): Promise { + async details( + address: string | string[] + ): Promise { try { // Handle single address. if (typeof address === "string") { @@ -308,7 +361,7 @@ export class Address implements Address { `${this.restURL}address/details/${address}` ) - return response.data + return response.data // Handle array of addresses. } else if (Array.isArray(address)) { @@ -321,7 +374,7 @@ export class Address implements Address { } const response: any = await axios(options) - return response.data + return response.data } throw new Error(`Input address must be a string or array of strings.`) @@ -331,7 +384,9 @@ export class Address implements Address { } } - async utxo(address: string | string[]): Promise { + async utxo( + address: string | string[] + ): Promise { try { // Handle single address. if (typeof address === "string") { @@ -359,7 +414,9 @@ export class Address implements Address { } } - async unconfirmed(address: string | string[]) { + async unconfirmed( + address: string | string[] + ): Promise { try { // Handle single address. if (typeof address === "string") { @@ -389,7 +446,7 @@ export class Address implements Address { } } - async transactions(address: string | string[]) { + async transactions(address: string | string[]): Promise { try { // Handle single address. if (typeof address === "string") { diff --git a/lib/BITBOX.ts b/lib/BITBOX.ts index d8786468..e676521e 100644 --- a/lib/BITBOX.ts +++ b/lib/BITBOX.ts @@ -23,7 +23,30 @@ import { Socket } from "./Socket" import { Wallet } from "./Wallet" import { Schnorr } from "./Schnorr" -export class BITBOX { +export interface BITBOX { + Address: any + BitcoinCash: any + Block: any + Blockchain: any + Control: any + Crypto: any + ECPair: any + Generating: any + HDNode: any + Mining: any + Mnemonic: any + Price: any + RawTransactions: any + Script: any + Transaction: any + TransactionBuilder: any + Util: any + Socket: any + Wallet: any + Schnorr: any +} + +export class BITBOX implements BITBOX { Address: any BitcoinCash: any Block: any diff --git a/lib/BitcoinCash.ts b/lib/BitcoinCash.ts index 491e9915..06071bd1 100644 --- a/lib/BitcoinCash.ts +++ b/lib/BitcoinCash.ts @@ -19,9 +19,16 @@ export interface BitcoinCash { verifyMessage(address: string, signature: string, message: string): boolean encodeBase58Check(hex: string): string decodeBase58Check(address: string): string - encodeBIP21(address: string, options: any, regtest: boolean): string - decodeBIP21(url: string): any - getByteCount(inputs: any, outputs: any): number + encodeBIP21( + address: string, + options: EncodeBIP21Options, + regtest?: boolean + ): string + decodeBIP21(url: string): BIP21Object + getByteCount( + inputs: ByteCountInput | object, + outputs: ByteCountOutput + ): number encryptBIP38(privKeyWIF: string, passphrase: string): string decryptBIP38( encryptedKey: string, @@ -30,6 +37,26 @@ export interface BitcoinCash { ): string } +export interface EncodeBIP21Options { + amount?: number + label?: string + message?: string +} + +export interface BIP21Object { + address: string + options?: EncodeBIP21Options +} + +export interface ByteCountInput { + P2PKH?: number +} + +export interface ByteCountOutput { + P2PKH?: number + P2SH?: number +} + export class BitcoinCash implements BitcoinCash { _address: any constructor(address: any) { @@ -113,7 +140,11 @@ export class BitcoinCash implements BitcoinCash { } // encode bip21 url - encodeBIP21(address: string, options: any, regtest: boolean = false): string { + encodeBIP21( + address: string, + options: EncodeBIP21Options, + regtest: boolean = false + ): string { return bip21.encode( this._address.toCashAddress(address, true, regtest), options @@ -121,11 +152,14 @@ export class BitcoinCash implements BitcoinCash { } // decode bip21 url - decodeBIP21(url: string): any { + decodeBIP21(url: string): BIP21Object { return bip21.decode(url) } - getByteCount(inputs: any, outputs: any): number { + getByteCount( + inputs: ByteCountInput | object, + outputs: ByteCountOutput + ): number { // from https://github.com/bitcoinjs/bitcoinjs-lib/issues/921#issuecomment-354394004 let totalWeight: number = 0 let hasWitness: boolean = false diff --git a/lib/Block.ts b/lib/Block.ts index c42ee0dc..2fcb7290 100644 --- a/lib/Block.ts +++ b/lib/Block.ts @@ -2,8 +2,29 @@ import axios from "axios" export interface Block { restURL: string - detailsByHeight(id: number | number[]): Promise - detailsByHash(hash: string | string[]): Promise + detailsByHeight(id: number | number[]): Promise + detailsByHash(hash: string | string[]): Promise +} + +export interface BlockDetails { + hash: string + size: number + height: number + version: number + merkleroot: string + tx: string[] + time: number + mediantime?: number + nonce: number + bits: string + difficulty: number + chainwork: string + confirmations: number + previousblockhash: string + nextblockhash: string + reward: number + isMainChain: boolean + poolInfo: object } export class Block implements Block { @@ -12,7 +33,9 @@ export class Block implements Block { this.restURL = restURL } - async detailsByHeight(id: number | number[]): Promise { + async detailsByHeight( + id: number | number[] + ): Promise { try { // Single block if (typeof id === "number") { @@ -42,7 +65,9 @@ export class Block implements Block { } } - async detailsByHash(hash: string | string[]): Promise { + async detailsByHash( + hash: string | string[] + ): Promise { try { // Single block if (typeof hash === "string") { diff --git a/lib/Blockchain.ts b/lib/Blockchain.ts index 2e5e7298..0bd2dad8 100644 --- a/lib/Blockchain.ts +++ b/lib/Blockchain.ts @@ -4,23 +4,27 @@ */ import axios from "axios" +import { BlockDetails } from "./Block" export interface Blockchain { restURL: string getBestBlockHash(): Promise - getBlock(blockhash: string, verbose: boolean): Promise - getBlockchainInfo(): Promise + getBlock(blockhash: string, verbose: boolean): Promise + getBlockchainInfo(): Promise getBlockCount(): Promise getBlockHash(height: any): Promise - getBlockHeader(hash: string | string[], verbose: boolean): Promise - getChainTips(): Promise + getBlockHeader( + hash: string | string[], + verbose?: boolean + ): Promise + getChainTips(): Promise getDifficulty(): Promise getMempoolAncestors(txid: string, verbose: boolean): Promise getMempoolDescendants(txid: string, verbose: boolean): Promise getMempoolEntry(txid: string): Promise - getMempoolInfo(): Promise + getMempoolInfo(): Promise getRawMempool(verbose: boolean): Promise - getTxOut(txid: string, n: any, include_mempool: boolean): Promise + getTxOut(txid: string, n: any, include_mempool?: boolean): Promise getTxOutProof(txids: string | string[]): Promise preciousBlock(blockhash: string): Promise pruneBlockchain(height: number): Promise @@ -28,6 +32,67 @@ export interface Blockchain { verifyTxOutProof(proof: any | any[]): Promise } +export interface MempoolInfo { + size: number + bytes: number + usage: number + maxmempool: number + mempoolminfee: number +} + +export interface BlockchainInfo { + chain: string + blocks: number + headers: number + bestblockhash: string + difficulty: number + mediantime: number + verificationprogress: number + chainwork: string + pruned: boolean + softforks: object[] + bip9_softforks: object +} + +export interface BlockHeader { + hash: string + confirmations: number + height: number + version: number + versionHex: string + merkleroot: string + time: number + mediantime: number + nonce: number + bits: string + difficulty: number + chainwork: string + previousblockhash: string + nextblockhash: string +} + +export interface ChainTip { + height: number + hash: string + branchlen: number + status: string +} + +export interface TxOut { + bestblock: string + confirmations: number + value: number + scriptPubKey: { + asm: string + hex: string + reqSigs: number + type: string + addresses: string[] + } + version: number + coinbase: boolean +} + export class Blockchain implements Blockchain { restURL: string constructor(restURL: string) { @@ -46,7 +111,10 @@ export class Blockchain implements Blockchain { } } - async getBlock(blockhash: string, verbose: boolean = true): Promise { + async getBlock( + blockhash: string, + verbose: boolean = true + ): Promise { try { const response: any = await axios.get( `${this.restURL}blockchain/getBlock/${blockhash}?verbose=${verbose}` @@ -58,7 +126,7 @@ export class Blockchain implements Blockchain { } } - async getBlockchainInfo(): Promise { + async getBlockchainInfo(): Promise { try { const response: any = await axios.get( `${this.restURL}blockchain/getBlockchainInfo` @@ -99,7 +167,7 @@ export class Blockchain implements Blockchain { async getBlockHeader( hash: string | string[], verbose: boolean = true - ): Promise { + ): Promise { try { // Handle single hash. if (typeof hash === "string") { @@ -131,7 +199,7 @@ export class Blockchain implements Blockchain { } } - async getChainTips(): Promise { + async getChainTips(): Promise { try { const response: any = await axios.get( `${this.restURL}blockchain/getChainTips` @@ -223,7 +291,7 @@ export class Blockchain implements Blockchain { } } - async getMempoolInfo(): Promise { + async getMempoolInfo(): Promise { try { const response: any = await axios.get( `${this.restURL}blockchain/getMempoolInfo` @@ -251,7 +319,7 @@ export class Blockchain implements Blockchain { txid: string, n: any, include_mempool: boolean = true - ): Promise { + ): Promise { try { const response: any = await axios.get( `${ From 8052a944aee29530dbecb12fe2d1a0156d5ea1fb Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Thu, 9 May 2019 14:15:59 +0900 Subject: [PATCH 297/480] Cleaning up types and interfaces. --- lib/Address.ts | 10 +++++----- lib/Blockchain.ts | 49 +++++++++++++++++++++++++++-------------------- 2 files changed, 33 insertions(+), 26 deletions(-) diff --git a/lib/Address.ts b/lib/Address.ts index 139776b4..5175888f 100644 --- a/lib/Address.ts +++ b/lib/Address.ts @@ -5,10 +5,10 @@ const coininfo = require("coininfo") export interface Address { toLegacyAddress(address: string): string - toCashAddress(address: string, prefix: boolean, regtest: boolean): string + toCashAddress(address: string, prefix?: boolean, regtest?: boolean): string toHash160(address: string): string - hash160ToLegacy(hash160: any, network: any): string - hash160ToCash(hash160: any, network: any, regtest: boolean): string + hash160ToLegacy(hash160: any, network?: any): string + hash160ToCash(hash160: any, network?: any, regtest?: boolean): string isLegacyAddress(address: string): boolean isCashAddress(address: string): boolean isHash160(address: string): boolean @@ -20,8 +20,8 @@ export interface Address { detectAddressFormat(address: string): string detectAddressNetwork(address: string): string detectAddressType(address: string): string - fromXPub(xpub: string, path: string): string - fromOutputScript(scriptPubKey: any, network: string): string + fromXPub(xpub: string, path?: string): string + fromOutputScript(scriptPubKey: any, network?: string): string details( address: string | string[] ): Promise diff --git a/lib/Blockchain.ts b/lib/Blockchain.ts index 0bd2dad8..06b7137a 100644 --- a/lib/Blockchain.ts +++ b/lib/Blockchain.ts @@ -8,28 +8,32 @@ import { BlockDetails } from "./Block" export interface Blockchain { restURL: string - getBestBlockHash(): Promise - getBlock(blockhash: string, verbose: boolean): Promise + getBestBlockHash(): Promise + getBlock(blockhash: string, verbose?: boolean): Promise getBlockchainInfo(): Promise - getBlockCount(): Promise - getBlockHash(height: any): Promise + getBlockCount(): Promise + getBlockHash(height?: number): Promise getBlockHeader( hash: string | string[], verbose?: boolean ): Promise getChainTips(): Promise - getDifficulty(): Promise - getMempoolAncestors(txid: string, verbose: boolean): Promise - getMempoolDescendants(txid: string, verbose: boolean): Promise + getDifficulty(): Promise + getMempoolAncestors(txid: string, verbose?: boolean): Promise + getMempoolDescendants(txid: string, verbose?: boolean): Promise getMempoolEntry(txid: string): Promise getMempoolInfo(): Promise - getRawMempool(verbose: boolean): Promise - getTxOut(txid: string, n: any, include_mempool?: boolean): Promise - getTxOutProof(txids: string | string[]): Promise + getRawMempool(verbose?: boolean): Promise + getTxOut( + txid: string, + n: any, + include_mempool?: boolean + ): Promise + getTxOutProof(txids: string | string[]): Promise preciousBlock(blockhash: string): Promise - pruneBlockchain(height: number): Promise - verifyChain(checklevel: number, nblocks: number): Promise - verifyTxOutProof(proof: any | any[]): Promise + pruneBlockchain(height: number): Promise + verifyChain(checklevel?: number, nblocks?: number): Promise + verifyTxOutProof(proof: any | any[]): Promise } export interface MempoolInfo { @@ -99,7 +103,7 @@ export class Blockchain implements Blockchain { this.restURL = restURL } - async getBestBlockHash(): Promise { + async getBestBlockHash(): Promise { try { const response: any = await axios.get( `${this.restURL}blockchain/getBestBlockHash` @@ -138,7 +142,7 @@ export class Blockchain implements Blockchain { } } - async getBlockCount(): Promise { + async getBlockCount(): Promise { try { const response: any = await axios.get( `${this.restURL}blockchain/getBlockCount` @@ -150,7 +154,7 @@ export class Blockchain implements Blockchain { } } - async getBlockHash(height: any = 1): Promise { + async getBlockHash(height: any = 1): Promise { if (typeof height !== "string") height = JSON.stringify(height) try { @@ -211,7 +215,7 @@ export class Blockchain implements Blockchain { } } - async getDifficulty(): Promise { + async getDifficulty(): Promise { try { const response: any = await axios.get( `${this.restURL}blockchain/getDifficulty` @@ -333,7 +337,7 @@ export class Blockchain implements Blockchain { } } - async getTxOutProof(txids: string | string[]): Promise { + async getTxOutProof(txids: string | string[]): Promise { try { // Single txid. if (typeof txids === "string") { @@ -376,7 +380,7 @@ export class Blockchain implements Blockchain { } } - async pruneBlockchain(height: number): Promise { + async pruneBlockchain(height: number): Promise { try { const response = await axios.post( `${this.restURL}blockchain/pruneBlockchain/${height}` @@ -388,7 +392,10 @@ export class Blockchain implements Blockchain { } } - async verifyChain(checklevel: number = 3, nblocks: number = 6): Promise { + async verifyChain( + checklevel: number = 3, + nblocks: number = 6 + ): Promise { try { const response: any = await axios.get( `${ @@ -402,7 +409,7 @@ export class Blockchain implements Blockchain { } } - async verifyTxOutProof(proof: any | any[]): Promise { + async verifyTxOutProof(proof: any | any[]): Promise { try { // Single block if (typeof proof === "string") { From 36ced8f8591c5f6344ca66a64b4170f69510b11a Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Thu, 9 May 2019 14:25:03 +0900 Subject: [PATCH 298/480] More typescript --- lib/Control.ts | 33 +++++++++++++++++++++++++++++---- lib/Crypto.ts | 21 +++++++++++---------- lib/ECPair.ts | 42 ++++++++++++++++++++++++++---------------- 3 files changed, 66 insertions(+), 30 deletions(-) diff --git a/lib/Control.ts b/lib/Control.ts index 04d56605..f17f8fe8 100644 --- a/lib/Control.ts +++ b/lib/Control.ts @@ -2,8 +2,33 @@ import axios from "axios" export interface Control { restURL: string - getInfo(): Promise - getMemoryInfo(): Promise + getInfo(): Promise + getMemoryInfo(): Promise +} + +export interface NodeInfo { + version: number + protocolversion: number + blocks: number + timeoffset: number + connections: number + proxy: string + difficulty: number + testnet: boolean + paytxfee: number + relayfee: number + errors: string +} + +export interface NodeMemoryInfo { + locked: { + used: number + free: number + total: number + locked: number + chunks_used: number + chunks_free: number + } } export class Control implements Control { @@ -12,7 +37,7 @@ export class Control implements Control { this.restURL = restURL } - async getInfo(): Promise { + async getInfo(): Promise { try { const response: any = await axios.get(`${this.restURL}control/getInfo`) return response.data @@ -22,7 +47,7 @@ export class Control implements Control { } } - async getMemoryInfo(): Promise { + async getMemoryInfo(): Promise { try { const response: any = await axios.get( `${this.restURL}control/getMemoryInfo` diff --git a/lib/Crypto.ts b/lib/Crypto.ts index b433b34b..c8995bc5 100644 --- a/lib/Crypto.ts +++ b/lib/Crypto.ts @@ -1,32 +1,33 @@ const randomBytes = require("randomBytes") const Bitcoin = require("bitcoincashjs-lib") +import { Buffer } from "buffer" export interface Crypto { - sha256(buffer: any): any - ripemd160(buffer: any): any - hash256(buffer: any): any - hash160(buffer: any): any - randomBytes(size: number): any + sha256(buffer: Buffer): Buffer + ripemd160(buffer: Buffer): Buffer + hash256(buffer: Buffer): Buffer + hash160(buffer: Buffer): Buffer + randomBytes(size: number): Buffer } export class Crypto implements Crypto { - static sha256(buffer: any): any { + static sha256(buffer: Buffer): Buffer { return Bitcoin.crypto.sha256(buffer) } - static ripemd160(buffer: any): any { + static ripemd160(buffer: Buffer): Buffer { return Bitcoin.crypto.ripemd160(buffer) } - static hash256(buffer: any): any { + static hash256(buffer: Buffer): Buffer { return Bitcoin.crypto.hash256(buffer) } - static hash160(buffer: any): any { + static hash160(buffer: Buffer): Buffer { return Bitcoin.crypto.hash160(buffer) } - static randomBytes(size: number = 16): any { + static randomBytes(size: number = 16): Buffer { return randomBytes(size) } } diff --git a/lib/ECPair.ts b/lib/ECPair.ts index cc6eb879..ba850c0d 100644 --- a/lib/ECPair.ts +++ b/lib/ECPair.ts @@ -1,17 +1,27 @@ const Bitcoin = require("bitcoincashjs-lib") const coininfo = require("coininfo") +import { Buffer } from "buffer" +declare type ECSignature = any export interface ECPair { _address: any - setAddress(address: any): void - fromWIF(privateKeyWIF: string): any - toWIF(ecpair: any): string - sign(ecpair: any, buffer: any): any - verify(ecpair: any, buffer: any, signature: any): any - fromPublicKey(pubkeyBuffer: any): any - toPublicKey(ecpair: any): any - toLegacyAddress(ecpair: any): string - toCashAddress(ecpair: any, regtest: boolean): string + fromWIF(privateKeyWIF: string): ECPair + toWIF(ecpair?: ECPair): string + sign(sigHash: number): ECSignature + sign(ecpair: ECPair, sigHash: number): ECSignature + sign(buffer: Buffer): Boolean | ECSignature + sign(ecpair: ECPair, buffer: Buffer): Boolean | ECSignature + verify(buffer: Buffer, signature: ECSignature): boolean + verify(ecpair: ECPair, buffer: Buffer, signature: ECSignature): boolean + fromPublicKey(pubkeyBuffer: string): ECPair + toPublicKey(): Buffer + toPublicKey(ecpair: ECPair): Buffer + toLegacyAddress(): string + toLegacyAddress(ecpair: ECPair): string + toCashAddress(): string + toCashAddress(ecpair: ECPair, regtest?: boolean): string + getPublicKeyBuffer(): any + getAddress(): string } export class ECPair implements ECPair { @@ -35,31 +45,31 @@ export class ECPair implements ECPair { return Bitcoin.ECPair.fromWIF(privateKeyWIF, bitcoincashBitcoinJSLib) } - static toWIF(ecpair: any): string { + static toWIF(ecpair: ECPair): string { return ecpair.toWIF() } - static sign(ecpair: any, buffer: any): any { + static sign(ecpair: ECPair, buffer: Buffer): ECSignature { return ecpair.sign(buffer) } - static verify(ecpair: any, buffer: any, signature: any): any { + static verify(ecpair: ECPair, buffer: Buffer, signature: ECSignature): any { return ecpair.verify(buffer, signature) } - static fromPublicKey(pubkeyBuffer: any): any { + static fromPublicKey(pubkeyBuffer: Buffer): any { return Bitcoin.ECPair.fromPublicKeyBuffer(pubkeyBuffer) } - static toPublicKey(ecpair: any): any { + static toPublicKey(ecpair: ECPair): Buffer { return ecpair.getPublicKeyBuffer() } - static toLegacyAddress(ecpair: any): string { + static toLegacyAddress(ecpair: ECPair): string { return ecpair.getAddress() } - static toCashAddress(ecpair: any, regtest: boolean = false): string { + static toCashAddress(ecpair: ECPair, regtest: boolean = false): string { return ECPair._address.toCashAddress(ecpair.getAddress(), true, regtest) } } From 7fc0c4bdf6ce2fdfa0501cc8b08e778a2e937cad Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Thu, 9 May 2019 14:47:56 +0900 Subject: [PATCH 299/480] Typescript. --- lib/ECPair.ts | 2 +- lib/Generating.ts | 12 ++- lib/HDNode.ts | 101 +++++++++++++--------- lib/Mining.ts | 2 +- lib/Mnemonic.ts | 20 +++-- lib/Price.ts | 2 +- lib/RawTransactions.ts | 35 +++++++- lib/Script.ts | 188 +++++++++++++++++++++++++++++++++++++++-- lib/Socket.ts | 2 +- lib/Transaction.ts | 20 ++++- 10 files changed, 313 insertions(+), 71 deletions(-) diff --git a/lib/ECPair.ts b/lib/ECPair.ts index ba850c0d..1348a1e3 100644 --- a/lib/ECPair.ts +++ b/lib/ECPair.ts @@ -1,7 +1,7 @@ const Bitcoin = require("bitcoincashjs-lib") const coininfo = require("coininfo") import { Buffer } from "buffer" -declare type ECSignature = any +export type ECSignature = any export interface ECPair { _address: any diff --git a/lib/Generating.ts b/lib/Generating.ts index bf32744e..80e015ca 100644 --- a/lib/Generating.ts +++ b/lib/Generating.ts @@ -2,7 +2,11 @@ import axios from "axios" export interface Generating { restURL: string - generateToAddress(blocks: any, address: any, maxtries: number): Promise + generateToAddress( + blocks: number, + address: string, + maxtries?: number + ): Promise } export class Generating implements Generating { @@ -12,10 +16,10 @@ export class Generating implements Generating { } async generateToAddress( - blocks: any, - address: any, + blocks: number, + address: string, maxtries: number = 1000000 - ): Promise { + ): Promise { try { const response: any = await axios.post( `${ diff --git a/lib/HDNode.ts b/lib/HDNode.ts index 8296c026..f8f81cff 100644 --- a/lib/HDNode.ts +++ b/lib/HDNode.ts @@ -1,30 +1,47 @@ const Bitcoin = require("bitcoincashjs-lib") const coininfo = require("coininfo") const bip32utils = require("bip32-utils") +import { Buffer } from "buffer" +import { ECPair, ECSignature } from "./ECPair" export interface HDNode { _address: any - fromSeed(rootSeedBuffer: any, network: string): any - toLegacyAddress(hdNode: any): string - toCashAddress(hdNode: any, regtest: boolean): string - toWIF(hdNode: any): string - toXPub(hdNode: any): string - toXPriv(hdNode: any): string - toKeyPair(hdNode: any): any - toPublicKey(hdNode: any): any - fromXPriv(xpriv: string): any - fromXPub(xpub: string): any - derivePath(hdnode: any, path: string): any - derive(hdnode: any, path: string): any - deriveHardened(hdnode: any, path: string): any - sign(hdnode: any, buffer: any): any - verify(hdnode: any, buffer: any, signature: any): any - isPublic(hdnode: any): any - isPrivate(hdnode: any): any - toIdentifier(hdnode: any): any - fromBase58(base58: any, network: any): any - createAccount(hdNodes: any): any - createChain(hdNode: any): any + fromSeed(rootSeedBuffer: Buffer, network?: string): HDNode + toLegacyAddress(): string + toLegacyAddress(hdNode: HDNode): string + toCashAddress(): string + toCashAddress(hdNode: HDNode, regtest?: boolean): string + toWIF(): string + toWIF(hdNode: HDNode): string + toXPub(): string + toXPub(hdNode: HDNode): string + toXPriv(): string + toXPriv(hdNode: HDNode): string + toKeyPair(): ECPair + toKeyPair(hdNode: HDNode): ECPair + toPublicKey(): Buffer + toPublicKey(hdNode: HDNode): Buffer + fromXPriv(xpriv: string): HDNode + fromXPub(xpub: string): HDNode + derivePath(path: string): HDNode + derivePath(hdNode: HDNode, path: string): HDNode + derive(num: number): HDNode + derive(hdNode: HDNode, num: number): HDNode + deriveHardened(num: number): HDNode + deriveHardened(hdNode: HDNode, num: number): HDNode + sign(buffer: Buffer): ECSignature + sign(hdNode: HDNode, buffer: Buffer): ECSignature + verify(buffer: Buffer, signature: ECSignature): boolean + verify(hdNode: HDNode, buffer: Buffer, signature: ECSignature): boolean + isPublic(): boolean + isPublic(hdNode: HDNode): boolean + isPrivate(): boolean + isPrivate(hdNode: HDNode): boolean + toIdentifier(): string + toIdentifier(hdNode: HDNode): string + fromBase58(base58: string, network: string): string + createAccount(hdNodes: Array): object + createChain(hdNode: HDNode): object } export class HDNode implements HDNode { @@ -33,7 +50,7 @@ export class HDNode implements HDNode { this._address = address } - fromSeed(rootSeedBuffer: any, network: string = "mainnet"): any { + fromSeed(rootSeedBuffer: any, network: string = "mainnet"): HDNode { let bitcoincash: any if (network === "bitcoincash" || network === "mainnet") bitcoincash = coininfo.bitcoincash.main @@ -46,35 +63,35 @@ export class HDNode implements HDNode { ) } - toLegacyAddress(hdNode: any): string { + toLegacyAddress(hdNode: HDNode): string { return hdNode.getAddress() } - toCashAddress(hdNode: any, regtest: boolean = false): string { + toCashAddress(hdNode: HDNode, regtest: boolean = false): string { return this._address.toCashAddress(hdNode.getAddress(), true, regtest) } - toWIF(hdNode: any): string { + toWIF(hdNode: HDNode): string { return hdNode.keyPair.toWIF() } - toXPub(hdNode: any): string { + toXPub(hdNode: HDNode): string { return hdNode.neutered().toBase58() } - toXPriv(hdNode: any): string { + toXPriv(hdNode: HDNode): string { return hdNode.toBase58() } - toKeyPair(hdNode: any): any { + toKeyPair(hdNode: HDNode): ECPair { return hdNode.keyPair } - toPublicKey(hdNode: any): any { + toPublicKey(hdNode: HDNode): Buffer { return hdNode.getPublicKeyBuffer() } - fromXPriv(xpriv: string): any { + fromXPriv(xpriv: string): HDNode { let bitcoincash: any if (xpriv[0] === "x") bitcoincash = coininfo.bitcoincash.main else if (xpriv[0] === "t") bitcoincash = coininfo.bitcoincash.test @@ -83,7 +100,7 @@ export class HDNode implements HDNode { return Bitcoin.HDNode.fromBase58(xpriv, bitcoincashBitcoinJSLib) } - fromXPub(xpub: string): any { + fromXPub(xpub: string): HDNode { let bitcoincash: any if (xpub[0] === "x") bitcoincash = coininfo.bitcoincash.main else if (xpub[0] === "t") bitcoincash = coininfo.bitcoincash.test @@ -92,50 +109,50 @@ export class HDNode implements HDNode { return Bitcoin.HDNode.fromBase58(xpub, bitcoincashBitcoinJSLib) } - derivePath(hdnode: any, path: string): any { + derivePath(hdnode: HDNode, path: string): HDNode { return hdnode.derivePath(path) } - derive(hdnode: any, path: string): any { + derive(hdnode: HDNode, path: string): HDNode { return hdnode.derive(path) } - deriveHardened(hdnode: any, path: string): any { + deriveHardened(hdnode: HDNode, path: string): HDNode { return hdnode.deriveHardened(path) } - sign(hdnode: any, buffer: any): any { + sign(hdnode: HDNode, buffer: Buffer): ECSignature { return hdnode.sign(buffer) } - verify(hdnode: any, buffer: any, signature: any): any { + verify(hdnode: HDNode, buffer: Buffer, signature: ECSignature): boolean { return hdnode.verify(buffer, signature) } - isPublic(hdnode: any): any { + isPublic(hdnode: HDNode): boolean { return hdnode.isNeutered() } - isPrivate(hdnode: any): any { + isPrivate(hdnode: HDNode): boolean { return !hdnode.isNeutered() } - toIdentifier(hdnode: any): any { + toIdentifier(hdnode: HDNode): string { return hdnode.getIdentifier() } - fromBase58(base58: any, network: any): any { + fromBase58(base58: string, network: string): string { return Bitcoin.HDNode.fromBase58(base58, network) } - createAccount(hdNodes: any): any { + createAccount(hdNodes: HDNode[]): object { const arr = hdNodes.map( (item: any, index: number) => new bip32utils.Chain(item.neutered()) ) return new bip32utils.Account(arr) } - createChain(hdNode: any): any { + createChain(hdNode: HDNode): object { return new bip32utils.Chain(hdNode) } } diff --git a/lib/Mining.ts b/lib/Mining.ts index 49a2b3b2..33e664aa 100644 --- a/lib/Mining.ts +++ b/lib/Mining.ts @@ -4,7 +4,7 @@ export interface Mining { restURL: string getBlockTemplate(template_request: any): Promise getMiningInfo(): Promise - getNetworkHashps(nblocks: number, height: number): Promise + getNetworkHashps(nblocks?: number, height?: number): Promise submitBlock(hex: string, parameters: any): Promise } diff --git a/lib/Mnemonic.ts b/lib/Mnemonic.ts index ba474a6c..72ac23a6 100644 --- a/lib/Mnemonic.ts +++ b/lib/Mnemonic.ts @@ -1,18 +1,22 @@ const BIP39 = require("bip39") const randomBytes = require("randomBytes") const Bitcoin = require("bitcoincashjs-lib") -const Buffer = require("safe-buffer").Buffer +import { Buffer } from "buffer" const wif = require("wif") export interface Mnemonic { _address: any generate(bits: number, wordlist: string[]): string - fromEntropy(bytes: number, wordlist: string[]): string - toEntropy(mnemonic: string, wordlist: string[]): any + fromEntropy(bytes: Buffer, wordlist: string[]): string + toEntropy(mnemonic: string, wordlist: string[]): Buffer validate(mnemonic: string, wordlist: string[]): string - toSeed(mnemonic: string, password: string): any + toSeed(mnemonic: string, password: string): Buffer wordLists(): string[] - toKeypairs(mnemonic: string, numberOfKeypairs: number, regtest: boolean): any + toKeypairs( + mnemonic: string, + numberOfKeypairs?: number, + regtest?: boolean + ): { privateKeyWIF: string; address: string }[] findNearestWord(word: string, wordlist: string[]): string } @@ -26,11 +30,11 @@ export class Mnemonic implements Mnemonic { return BIP39.generateMnemonic(bits, randomBytes, wordlist) } - fromEntropy(bytes: number, wordlist: string[]): string { + fromEntropy(bytes: Buffer, wordlist: string[]): string { return BIP39.entropyToMnemonic(bytes, wordlist) } - toEntropy(mnemonic: string, wordlist: string[]): any { + toEntropy(mnemonic: string, wordlist: string[]): Buffer { return Buffer.from(BIP39.mnemonicToEntropy(mnemonic, wordlist), "hex") } @@ -57,7 +61,7 @@ export class Mnemonic implements Mnemonic { return "Valid mnemonic" } - toSeed(mnemonic: string, password: string = ""): any { + toSeed(mnemonic: string, password: string = ""): Buffer { return BIP39.mnemonicToSeed(mnemonic, password) } diff --git a/lib/Price.ts b/lib/Price.ts index 41350f14..1b818da4 100644 --- a/lib/Price.ts +++ b/lib/Price.ts @@ -1,7 +1,7 @@ import axios from "axios" export interface Price { - current(currency: string): Promise + current(currency?: string): Promise } export class Price implements Price { diff --git a/lib/RawTransactions.ts b/lib/RawTransactions.ts index 9de80dff..1f3461ff 100644 --- a/lib/RawTransactions.ts +++ b/lib/RawTransactions.ts @@ -4,13 +4,42 @@ export interface RawTransactions { restURL: string decodeRawTransaction(hex: string): Promise decodeScript(script: string | string[]): Promise - getRawTransaction(txid: string, verbose: boolean): Promise + getRawTransaction( + txid: string, + verbose?: boolean + ): Promise sendRawTransaction( hex: string | string[], - allowhighfees: boolean + allowhighfees?: boolean ): Promise } +export interface VerboseRawTransaction { + hex: string + txid: string + size: number + version: number + locktime: number + vin: [{ coinbase: string; sequence: number }] + vout: [ + { + value: number + n: number + scriptPubKey: { + asm: string + hex: string + reqSigs: number + type: string + addresses: string[] + } + } + ] + blockhash: string + confirmations: number + time: number + blocktime: number +} + export class RawTransactions implements RawTransactions { restURL: string constructor(restURL: string) { @@ -81,7 +110,7 @@ export class RawTransactions implements RawTransactions { async getRawTransaction( txid: string, verbose: boolean = false - ): Promise { + ): Promise { try { if (typeof txid === "string") { const response: any = await axios.get( diff --git a/lib/Script.ts b/lib/Script.ts index 8a087b53..2b392964 100644 --- a/lib/Script.ts +++ b/lib/Script.ts @@ -1,23 +1,195 @@ const Bitcoin = require("bitcoincashjs-lib") const opcodes = require("bitcoincash-ops") +import { Buffer } from "buffer" export interface Script { - opcodes: any + opcodes: opcodes nullData: any multisig: any pubKey: any pubKeyHash: any scriptHash: any - classifyInput(script: any): string - classifyOutput(script: any): string - decode(scriptBuffer: any): any[] - encode(scriptChunks: any): any - toASM(buffer: any): any - fromASM(asm: any): any + classifyInput(script: Buffer): any + classifyOutput(script: Buffer): any + decode(scriptBuffer: Buffer): any[] + encode(scriptChunks: any[]): Buffer + toASM(buffer: Buffer): string + fromASM(asm: string): Buffer + encodeNullDataOutput(data: Buffer): Buffer + decodeNullDataOutput(output: Buffer): Buffer + checkNullDataOutput(ouput: Buffer): Boolean + encodeP2PKInput(signature: Buffer): Buffer + decodeP2PKInput(input: Buffer): Buffer + checkP2PKInput(input: Buffer): Boolean + encodeP2PKOutput(pubKey: Buffer): Buffer + decodeP2PKOutput(pubKey: Buffer): Buffer + checkP2PKOutput(ouput: Buffer): Boolean + encodeP2PKHInput(signature: Buffer, pubKey: Buffer): Buffer + decodeP2PKHInput(signature: Buffer): Buffer + checkP2PKHInput(input: Buffer): Boolean + encodeP2PKHOutput(signature: Buffer, pubKey: Buffer): Buffer + decodeP2PKHOutput(output: Buffer): Buffer + checkP2PKHOutput(output: Buffer): Boolean + encodeP2MSInput(signatures: Buffer[]): Buffer + decodeP2MSInput(input: Buffer): Buffer + checkP2MSInput(input: Buffer): Boolean + encodeP2MSOutput(m: number, pubKeys: Buffer[]): Buffer + decodeP2MSOutput(output: Buffer): Buffer + checkP2MSOutput(input: Buffer): Boolean + encodeP2SHInput(redeemScriptSig: Buffer, redeemScript: Buffer): Buffer + decodeP2SHInput(input: Buffer): Buffer + checkP2SHInput(input: Buffer): boolean + encodeP2SHOutput(scriptHash: Buffer): Buffer + decodeP2SHOutput(output: Buffer): Buffer + checkP2SHOutput(output: Buffer): Boolean + classifyInput(input: Buffer): string + classifyOutput(output: Buffer): string +} + +export interface opcodes { + OP_FALSE: 0 + OP_0: 0 + OP_PUSHDATA1: 76 + OP_PUSHDATA2: 77 + OP_PUSHDATA4: 78 + OP_1NEGATE: 79 + OP_RESERVED: 80 + OP_TRUE: 81 + OP_1: 81 + OP_2: 82 + OP_3: 83 + OP_4: 84 + OP_5: 85 + OP_6: 86 + OP_7: 87 + OP_8: 88 + OP_9: 89 + OP_10: 90 + OP_11: 91 + OP_12: 92 + OP_13: 93 + OP_14: 94 + OP_15: 95 + OP_16: 96 + + OP_NOP: 97 + OP_VER: 98 + OP_IF: 99 + OP_NOTIF: 100 + OP_VERIF: 101 + OP_VERNOTIF: 102 + OP_ELSE: 103 + OP_ENDIF: 104 + OP_VERIFY: 105 + OP_RETURN: 106 + + OP_TOALTSTACK: 107 + OP_FROMALTSTACK: 108 + OP_2DROP: 109 + OP_2DUP: 110 + OP_3DUP: 111 + OP_2OVER: 112 + OP_2ROT: 113 + OP_2SWAP: 114 + OP_IFDUP: 115 + OP_DEPTH: 116 + OP_DROP: 117 + OP_DUP: 118 + OP_NIP: 119 + OP_OVER: 120 + OP_PICK: 121 + OP_ROLL: 122 + OP_ROT: 123 + OP_SWAP: 124 + OP_TUCK: 125 + + OP_CAT: 126 + //"OP_SUBSTR": 127, -- replaced w/ OP_SPLIT see below + //"OP_LEFT": 128, -- replaced w/ OP_SPLIT see below + //"OP_RIGHT": 129, -- replaced w/ OP_SPLIT see below + OP_SIZE: 130 + + OP_INVERT: 131 + OP_AND: 132 // May 2018 reenabled + OP_OR: 133 // May 2018 reenabled + OP_XOR: 134 // May 2018 reenabled + OP_EQUAL: 135 + OP_EQUALVERIFY: 136 + OP_RESERVED1: 137 + OP_RESERVED2: 138 + + OP_1ADD: 139 + OP_1SUB: 140 + OP_2MUL: 141 + OP_2DIV: 142 + OP_NEGATE: 143 + OP_ABS: 144 + OP_NOT: 145 + OP_0NOTEQUAL: 146 + OP_ADD: 147 + OP_SUB: 148 + OP_MUL: 149 + OP_DIV: 150 // May 2018 reenabled + OP_MOD: 151 // May 2018 reenabled + OP_LSHIFT: 152 + OP_RSHIFT: 153 + + OP_BOOLAND: 154 + OP_BOOLOR: 155 + OP_NUMEQUAL: 156 + OP_NUMEQUALVERIFY: 157 + OP_NUMNOTEQUAL: 158 + OP_LESSTHAN: 159 + OP_GREATERTHAN: 160 + OP_LESSTHANOREQUAL: 161 + OP_GREATERTHANOREQUAL: 162 + OP_MIN: 163 + OP_MAX: 164 + + OP_WITHIN: 165 + + OP_RIPEMD160: 166 + OP_SHA1: 167 + OP_SHA256: 168 + OP_HASH160: 169 + OP_HASH256: 170 + OP_CODESEPARATOR: 171 + OP_CHECKSIG: 172 + OP_CHECKSIGVERIFY: 173 + OP_CHECKMULTISIG: 174 + OP_CHECKMULTISIGVERIFY: 175 + + OP_NOP1: 176 + + OP_NOP2: 177 + OP_CHECKLOCKTIMEVERIFY: 177 + + OP_NOP3: 178 + OP_CHECKSEQUENCEVERIFY: 178 + + OP_NOP4: 179 + OP_NOP5: 180 + OP_NOP6: 181 + OP_NOP7: 182 + OP_NOP8: 183 + OP_NOP9: 184 + OP_NOP10: 185 + + OP_PUBKEYHASH: 253 + OP_PUBKEY: 254 + OP_INVALIDOPCODE: 255 + + // May 2018 added opcodes + OP_SPLIT: 127 + OP_NUM2BIN: 128 + OP_BIN2NUM: 129 + + // Nov 2018 enabled opcodes + // TBD } export class Script implements Script { - opcodes: any + opcodes: opcodes nullData: any multisig: any pubKey: any diff --git a/lib/Socket.ts b/lib/Socket.ts index fe649417..9b020d99 100644 --- a/lib/Socket.ts +++ b/lib/Socket.ts @@ -23,7 +23,7 @@ export class Socket implements Socket { } } - listen(endpoint: any, cb: any): void { + listen(endpoint: string, cb: any): void { this.socket.emit(endpoint) if (endpoint === "blocks") this.socket.on("blocks", (msg: any) => cb(msg)) diff --git a/lib/Transaction.ts b/lib/Transaction.ts index e5a4b595..abacd8d7 100644 --- a/lib/Transaction.ts +++ b/lib/Transaction.ts @@ -3,7 +3,23 @@ import axios from "axios" export interface Transaction { restURL: string - details(txid: string): Promise + details(txid: string): Promise +} + +export interface TxnDetails { + txid: string + version: number + locktime: number + vin: object[] + vout: object[] + blockhash: string + blockheight: number + confirmations: number + time: number + blocktime: number + isCoinBase: boolean + valueOut: number + size: number } export class Transaction implements Transaction { @@ -12,7 +28,7 @@ export class Transaction implements Transaction { this.restURL = restURL } - async details(txid: string): Promise { + async details(txid: string): Promise { try { // Handle single address. if (typeof txid === "string") { From 8064bd7bb227dd4cdc1ebb8f0b0d95d435ef0a10 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Thu, 9 May 2019 14:53:18 +0900 Subject: [PATCH 300/480] typescript. --- lib/ECPair.ts | 5 ++--- lib/TransactionBuilder.ts | 30 ++++++++++++++++++++++++++---- lib/Util.ts | 18 ++++++++++++++++-- 3 files changed, 44 insertions(+), 9 deletions(-) diff --git a/lib/ECPair.ts b/lib/ECPair.ts index 1348a1e3..dee2175f 100644 --- a/lib/ECPair.ts +++ b/lib/ECPair.ts @@ -6,7 +6,8 @@ export type ECSignature = any export interface ECPair { _address: any fromWIF(privateKeyWIF: string): ECPair - toWIF(ecpair?: ECPair): string + toWif(): string + toWIF(ecpair: ECPair): string sign(sigHash: number): ECSignature sign(ecpair: ECPair, sigHash: number): ECSignature sign(buffer: Buffer): Boolean | ECSignature @@ -20,8 +21,6 @@ export interface ECPair { toLegacyAddress(ecpair: ECPair): string toCashAddress(): string toCashAddress(ecpair: ECPair, regtest?: boolean): string - getPublicKeyBuffer(): any - getAddress(): string } export class ECPair implements ECPair { diff --git a/lib/TransactionBuilder.ts b/lib/TransactionBuilder.ts index ad47e02a..83f8a9ac 100644 --- a/lib/TransactionBuilder.ts +++ b/lib/TransactionBuilder.ts @@ -3,11 +3,18 @@ const coininfo = require("coininfo") const bip66 = require("bip66") const bip68 = require("bc-bip68") +import { Buffer } from "buffer" + +import { Transaction } from "./Transaction" +import { ECPair } from "./ECPair" + +declare type ECSignature = any + export interface TransactionBuilder { transaction: any DEFAULT_SEQUENCE: any - hashTypes: any - signatureAlgorithms: any + hashTypes: HashTypes + signatureAlgorithms: SignatureAlgorithms bip66: any bip68: any p2shInput: any @@ -35,11 +42,26 @@ export interface TransactionBuilder { build(): any } +declare interface SignatureAlgorithms { + ECDSA: number + SCHNORR: number +} + +declare interface HashTypes { + SIGHASH_ALL: number + SIGHASH_NONE: number + SIGHASH_SINGLE: number + SIGHASH_ANYONECANPAY: number + SIGHASH_BITCOINCASH_BIP143: number + ADVANCED_TRANSACTION_MARKER: number + ADVANCED_TRANSACTION_FLAG: number +} + export class TransactionBuilder implements TransactionBuilder { transaction: any DEFAULT_SEQUENCE: any - hashTypes: any - signatureAlgorithms: any + hashTypes: HashTypes + signatureAlgorithms: SignatureAlgorithms bip66: any bip68: any p2shInput: any diff --git a/lib/Util.ts b/lib/Util.ts index 85f721a2..a32437a1 100644 --- a/lib/Util.ts +++ b/lib/Util.ts @@ -2,7 +2,19 @@ import axios from "axios" export interface Util { restURL: string - validateAddress(address: string): Promise + validateAddress(address: string): Promise +} + +export interface AddressDetails { + isvalid: boolean + address: string + scriptPubKey: string + ismine: boolean + iswatchonly: boolean + isscript: boolean + pubkey: string + iscompressed: boolean + account: string } export class Util implements Util { @@ -11,7 +23,9 @@ export class Util implements Util { this.restURL = restURL } - async validateAddress(address: string): Promise { + async validateAddress( + address: string + ): Promise { try { // Single block if (typeof address === "string") { From 007a061fc7ef0bdd30d3feee313fe99fa90ba5d4 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 04:56:09 +0900 Subject: [PATCH 301/480] Updates to .travis.yml. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index acfca19f..efcf363f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,7 +17,7 @@ before_install: #- npm install -g mocha # https://github.com/greenkeeperio/greenkeeper-lockfile/issues/156 -install: case $TRAVIS_BRANCH in greenkeeper*) npm i;; *) npm ci;; esac; +# install: case $TRAVIS_BRANCH in greenkeeper*) npm i;; *) npm ci;; esac; # Send coverage data to Coveralls after_success: From 13edb221141ee68750edff1d241f900c9c66b2e0 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 04:59:06 +0900 Subject: [PATCH 302/480] npm run build. --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index efcf363f..10f801d5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,6 +13,7 @@ services: - docker before_install: + - npm run build #- ./install-mongo #- npm install -g mocha From eec15f661dcf8b14f4e7b7088ce342daecdbc630 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 05:00:53 +0900 Subject: [PATCH 303/480] install tsc --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 10f801d5..8c7219b0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,9 +13,9 @@ services: - docker before_install: + - npm install -g tsc - npm run build #- ./install-mongo - #- npm install -g mocha # https://github.com/greenkeeperio/greenkeeper-lockfile/issues/156 # install: case $TRAVIS_BRANCH in greenkeeper*) npm i;; *) npm ci;; esac; From 4c20202c185dca9c4602e163b20f4ef9718fda8a Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 05:04:15 +0900 Subject: [PATCH 304/480] before script. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 8c7219b0..1bcca6bf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,7 +12,7 @@ sudo: required services: - docker -before_install: +before_script: - npm install -g tsc - npm run build #- ./install-mongo From 3990a38cd8c39cc24f2f292e26072296755d212f Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 05:15:17 +0900 Subject: [PATCH 305/480] Use any data type --- lib/BitcoinCash.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/lib/BitcoinCash.ts b/lib/BitcoinCash.ts index 06071bd1..d7391403 100644 --- a/lib/BitcoinCash.ts +++ b/lib/BitcoinCash.ts @@ -156,10 +156,7 @@ export class BitcoinCash implements BitcoinCash { return bip21.decode(url) } - getByteCount( - inputs: ByteCountInput | object, - outputs: ByteCountOutput - ): number { + getByteCount(inputs: any, outputs: any): number { // from https://github.com/bitcoinjs/bitcoinjs-lib/issues/921#issuecomment-354394004 let totalWeight: number = 0 let hasWitness: boolean = false From 664af17498e274e1a5766beb5ecfdb83f641bb30 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 06:09:26 +0900 Subject: [PATCH 306/480] More methods. --- .gitignore | 5 ++-- lib/Address.ts | 23 +++++++++++++++---- test/unit/Address.js | 54 ++++++++++++++++++++++++++++++++++---------- 3 files changed, 64 insertions(+), 18 deletions(-) diff --git a/.gitignore b/.gitignore index abd27b1a..9b13f8e6 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ package-lock.json # production /dist -*.js +lib/**/*.js index.js -*.js.map +index.js.map +lib/**/*.js.map diff --git a/lib/Address.ts b/lib/Address.ts index 5175888f..be78f83f 100644 --- a/lib/Address.ts +++ b/lib/Address.ts @@ -6,12 +6,14 @@ const coininfo = require("coininfo") export interface Address { toLegacyAddress(address: string): string toCashAddress(address: string, prefix?: boolean, regtest?: boolean): string - toHash160(address: string): string + legacyToHash160(address: string): string + cashToHash160(address: string): string + // regtestToHash160(address: string): string + isHash160(address: string): boolean hash160ToLegacy(hash160: any, network?: any): string hash160ToCash(hash160: any, network?: any, regtest?: boolean): string isLegacyAddress(address: string): boolean isCashAddress(address: string): boolean - isHash160(address: string): boolean isMainnetAddress(address: string): boolean isTestnetAddress(address: string): boolean isRegTestAddress(address: string): boolean @@ -142,13 +144,26 @@ export class Address implements Address { return cashAddress.split(":")[1] } - // Converts any address format to hash160 - toHash160(address: string): string { + // Converts legacy address format to hash160 + legacyToHash160(address: string): string { + const bytes = Bitcoin.address.fromBase58Check(address) + return bytes.hash.toString("hex") + } + + // Converts cash address format to hash160 + cashToHash160(address: string): string { const legacyAddress = this.toLegacyAddress(address) const bytes = Bitcoin.address.fromBase58Check(legacyAddress) return bytes.hash.toString("hex") } + // Converts regtest address format to hash160 + // regtestToHash160(address: string): string { + // const legacyAddress = this.toLegacyAddress(address) + // const bytes = Bitcoin.address.fromBase58Check(legacyAddress) + // return bytes.hash.toString("hex") + // } + // Converts hash160 to Legacy Address hash160ToLegacy( hash160: any, diff --git a/test/unit/Address.js b/test/unit/Address.js index 672a5bd6..cee492c7 100644 --- a/test/unit/Address.js +++ b/test/unit/Address.js @@ -197,39 +197,69 @@ describe("#addressConversion", () => { }) }) }) - describe("#toHash160", () => { + describe("#legacyToHash160", () => { it("should convert legacy base58check address to hash160", () => { assert.deepEqual( - LEGACY_ADDRESSES.map(address => BITBOX.Address.toHash160(address)), + LEGACY_ADDRESSES.map(address => + BITBOX.Address.legacyToHash160(address) + ), HASH160_HASHES ) }) + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + BITBOX.Address.legacyToHash160() + }, BITBOX.BitcoinCash.InvalidAddressError) + assert.throws(() => { + BITBOX.Address.legacyToHash160("some invalid address") + }, BITBOX.BitcoinCash.InvalidAddressError) + }) + }) + }) + describe("#cashToHash160", () => { it("should convert cashaddr address to hash160", () => { assert.deepEqual( - CASHADDR_ADDRESSES.map(address => BITBOX.Address.toHash160(address)), + CASHADDR_ADDRESSES.map(address => + BITBOX.Address.cashToHash160(address) + ), HASH160_HASHES ) }) - it("should convert regtest cashaddr address to hash160", () => { - assert.deepEqual( - REGTEST_ADDRESSES.map(address => BITBOX.Address.toHash160(address)), - fixtures.hash160TestnetP2PKH - ) - }) - describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.toHash160() + BITBOX.Address.cashToHash160() }, BITBOX.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.toHash160("some invalid address") + BITBOX.Address.cashToHash160("some invalid address") }, BITBOX.BitcoinCash.InvalidAddressError) }) }) }) + // describe("#regtestToHash160", () => { + // it("should convert regtest address to hash160", () => { + // assert.deepEqual( + // REGTEST_ADDRESSES.map(address => + // BITBOX.Address.regtestToHash160(address) + // ), + // fixtures.hash160TestnetP2PKH + // ) + // }) + // + // describe("errors", () => { + // it("should fail when called with an invalid address", () => { + // assert.throws(() => { + // BITBOX.Address.regtestToHash160() + // }, BITBOX.BitcoinCash.InvalidAddressError) + // assert.throws(() => { + // BITBOX.Address.regtestToHash160("some invalid address") + // }, BITBOX.BitcoinCash.InvalidAddressError) + // }) + // }) + // }) describe("#fromHash160", () => { it("should convert hash160 to mainnet P2PKH legacy base58check address", () => { assert.deepEqual( From a76bfe3cb7eb48810ee0aeb9f5badd355456600a Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 07:59:54 +0900 Subject: [PATCH 307/480] Address.fromXPriv and tests. --- index.js | 0 lib/Address.ts | 21 +- package-lock.json | 1982 ++++++++++--------------------- test/unit/Address.js | 11 + test/unit/fixtures/Address.json | 66 +- 5 files changed, 708 insertions(+), 1372 deletions(-) mode change 100644 => 100755 index.js diff --git a/index.js b/index.js old mode 100644 new mode 100755 diff --git a/lib/Address.ts b/lib/Address.ts index be78f83f..4b667373 100644 --- a/lib/Address.ts +++ b/lib/Address.ts @@ -23,6 +23,7 @@ export interface Address { detectAddressNetwork(address: string): string detectAddressType(address: string): string fromXPub(xpub: string, path?: string): string + fromXPriv(xpriv: string, path?: string): string fromOutputScript(scriptPubKey: any, network?: string): string details( address: string | string[] @@ -344,9 +345,25 @@ export class Address implements Address { } fromXPub(xpub: string, path: string = "0/0"): string { + let bitcoincash: any + if (xpub[0] === "x") bitcoincash = coininfo.bitcoincash.main + else if (xpub[0] === "t") bitcoincash = coininfo.bitcoincash.test + + const bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS() + const HDNode: any = Bitcoin.HDNode.fromBase58(xpub, bitcoincashBitcoinJSLib) + const address: any = HDNode.derivePath(path) + return this.toCashAddress(address.getAddress()) + } + + fromXPriv(xpriv: string, path: string = "0'/0"): string { + let bitcoincash: any + if (xpriv[0] === "x") bitcoincash = coininfo.bitcoincash.main + else if (xpriv[0] === "t") bitcoincash = coininfo.bitcoincash.test + + const bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS() const HDNode: any = Bitcoin.HDNode.fromBase58( - xpub, - Bitcoin.networks[this.detectAddressNetwork(xpub)] + xpriv, + bitcoincashBitcoinJSLib ) const address: any = HDNode.derivePath(path) return this.toCashAddress(address.getAddress()) diff --git a/package-lock.json b/package-lock.json index 949ae345..63879c69 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "6.1.1", + "version": "7.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -401,7 +401,6 @@ "version": "1.3.5", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, "requires": { "jsonparse": "^1.2.0", "through": ">=2.2.7 <3" @@ -424,8 +423,12 @@ "acorn": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz", - "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==", - "dev": true + "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==" + }, + "acorn-dynamic-import": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", + "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==" }, "acorn-jsx": { "version": "5.0.1", @@ -433,6 +436,22 @@ "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==", "dev": true }, + "acorn-node": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.6.2.tgz", + "integrity": "sha512-rIhNEZuNI8ibQcL7ANm/mGyPukIaZsRNX9psFNQURyJW0nu6k8wjSDld20z6v2mDBWqX13pIEnk9gGZJHIlEXg==", + "requires": { + "acorn": "^6.0.2", + "acorn-dynamic-import": "^4.0.0", + "acorn-walk": "^6.1.0", + "xtend": "^4.0.1" + } + }, + "acorn-walk": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.1.tgz", + "integrity": "sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw==" + }, "after": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", @@ -473,29 +492,11 @@ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=" }, - "ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dev": true, - "requires": { - "ansi-wrap": "^0.1.0" - } - }, "ansi-escapes": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" }, - "ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", - "dev": true, - "requires": { - "ansi-wrap": "0.1.0" - } - }, "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", @@ -509,43 +510,12 @@ "color-convert": "^1.9.0" } }, - "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", - "dev": true - }, "ansicolors": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=", "dev": true }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "append-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", - "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", - "dev": true, - "requires": { - "buffer-equal": "^1.0.0" - } - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -565,39 +535,20 @@ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, - "arr-filter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", - "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", - "dev": true, - "requires": { - "make-iterator": "^1.0.0" - } - }, "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" }, - "arr-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", - "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", - "dev": true, - "requires": { - "make-iterator": "^1.0.0" - } - }, "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, - "array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", - "dev": true + "array-filter": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", + "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" }, "array-find-index": { "version": "1.0.2", @@ -626,65 +577,15 @@ "es-abstract": "^1.7.0" } }, - "array-initial": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", - "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", - "dev": true, - "requires": { - "array-slice": "^1.0.0", - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } - } - }, - "array-last": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", - "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", - "dev": true, - "requires": { - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } - } - }, - "array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", - "dev": true + "array-map": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", + "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=" }, - "array-sort": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", - "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", - "dev": true, - "requires": { - "default-compare": "^1.0.0", - "get-value": "^2.0.6", - "kind-of": "^5.0.2" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } + "array-reduce": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", + "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" }, "array-union": { "version": "1.0.2", @@ -726,6 +627,16 @@ "safer-buffer": "~2.1.0" } }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, "assert": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", @@ -757,45 +668,17 @@ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", "dev": true }, - "async-done": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.1.tgz", - "integrity": "sha512-R1BaUeJ4PMoLNJuk+0tLJgjmEqVsdN118+Z8O+alhnQDQgy0kmD5Mqi0DNEmMx2LM0Ed5yekKu+ZXYvIHceicg==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.2", - "process-nextick-args": "^1.0.7", - "stream-exhaust": "^1.0.1" - }, - "dependencies": { - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", - "dev": true - } - } - }, "async-each": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "optional": true }, "async-limiter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" }, - "async-settle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", - "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", - "dev": true, - "requires": { - "async-done": "^1.2.2" - } - }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -1528,23 +1411,6 @@ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" }, - "bach": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", - "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", - "dev": true, - "requires": { - "arr-filter": "^1.1.1", - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "array-each": "^1.0.0", - "array-initial": "^1.0.0", - "array-last": "^1.1.1", - "async-done": "^1.2.2", - "async-settle": "^1.0.0", - "now-and-later": "^2.0.0" - } - }, "backo2": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", @@ -1707,7 +1573,8 @@ "binary-extensions": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "optional": true }, "bindings": { "version": "1.5.0", @@ -1795,13 +1662,11 @@ "bech32": "^1.1.2", "bigi": "^1.4.0", "bip66": "^1.1.0", - "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3", "bs58check": "^2.0.0", "create-hash": "^1.1.0", "create-hmac": "^1.1.3", "ecurve": "^1.0.0", "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "github:Bitcoin-com/pushdata-bitcoin#9b75eebe597853c6eeaec3e6c44b6d9c9cd7ee86", "randombytes": "^2.0.1", "safe-buffer": "^5.0.1", "typeforce": "^1.11.3", @@ -1809,12 +1674,9 @@ "wif": "^2.0.1" }, "dependencies": { - "pushdata-bitcoin": { - "version": "github:Bitcoin-com/pushdata-bitcoin#9b75eebe597853c6eeaec3e6c44b6d9c9cd7ee86", - "from": "github:Bitcoin-com/pushdata-bitcoin#1.2.1", - "requires": { - "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3" - } + "bitcoincash-ops": { + "version": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3", + "from": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3" } } }, @@ -1887,12 +1749,102 @@ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" }, + "browser-pack": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", + "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", + "requires": { + "JSONStream": "^1.0.3", + "combine-source-map": "~0.8.0", + "defined": "^1.0.0", + "safe-buffer": "^5.1.1", + "through2": "^2.0.0", + "umd": "^3.0.0" + } + }, + "browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "requires": { + "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" + } + } + }, "browser-stdout": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, + "browserify": { + "version": "16.2.3", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.2.3.tgz", + "integrity": "sha512-zQt/Gd1+W+IY+h/xX2NYMW4orQWhqSwyV+xsblycTtpOuB27h1fZhhNQuipJ4t79ohw4P4mMem0jp/ZkISQtjQ==", + "requires": { + "JSONStream": "^1.0.3", + "assert": "^1.4.0", + "browser-pack": "^6.0.1", + "browser-resolve": "^1.11.0", + "browserify-zlib": "~0.2.0", + "buffer": "^5.0.2", + "cached-path-relative": "^1.0.0", + "concat-stream": "^1.6.0", + "console-browserify": "^1.1.0", + "constants-browserify": "~1.0.0", + "crypto-browserify": "^3.0.0", + "defined": "^1.0.0", + "deps-sort": "^2.0.0", + "domain-browser": "^1.2.0", + "duplexer2": "~0.1.2", + "events": "^2.0.0", + "glob": "^7.1.0", + "has": "^1.0.0", + "htmlescape": "^1.1.0", + "https-browserify": "^1.0.0", + "inherits": "~2.0.1", + "insert-module-globals": "^7.0.0", + "labeled-stream-splicer": "^2.0.0", + "mkdirp": "^0.5.0", + "module-deps": "^6.0.0", + "os-browserify": "~0.3.0", + "parents": "^1.0.1", + "path-browserify": "~0.0.0", + "process": "~0.11.0", + "punycode": "^1.3.2", + "querystring-es3": "~0.2.0", + "read-only-stream": "^2.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.4", + "shasum": "^1.0.0", + "shell-quote": "^1.6.1", + "stream-browserify": "^2.0.0", + "stream-http": "^2.0.0", + "string_decoder": "^1.1.1", + "subarg": "^1.0.0", + "syntax-error": "^1.1.1", + "through2": "^2.0.0", + "timers-browserify": "^1.0.1", + "tty-browserify": "0.0.1", + "url": "~0.11.0", + "util": "~0.10.1", + "vm-browserify": "^1.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + } + } + }, "browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", @@ -1906,6 +1858,58 @@ "safe-buffer": "^5.0.1" } }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "requires": { + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "requires": { + "pako": "~1.0.5" + } + }, "browserslist": { "version": "3.2.8", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", @@ -1948,12 +1952,6 @@ "ieee754": "^1.1.4" } }, - "buffer-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", - "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", - "dev": true - }, "buffer-equals": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/buffer-equals/-/buffer-equals-1.0.4.tgz", @@ -1974,6 +1972,11 @@ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -1990,6 +1993,11 @@ "unset-value": "^1.0.0" } }, + "cached-path-relative": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.2.tgz", + "integrity": "sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==" + }, "call-me-maybe": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", @@ -2033,12 +2041,6 @@ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - }, "camelcase-keys": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", @@ -2327,35 +2329,6 @@ } } }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true - }, - "clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", - "dev": true - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", - "dev": true - }, - "cloneable-readable": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz", - "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" - } - }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -2373,17 +2346,6 @@ "safe-buffer": "^5.1.1" } }, - "collection-map": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", - "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", - "dev": true, - "requires": { - "arr-map": "^2.0.2", - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", @@ -2406,18 +2368,30 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true - }, "colors": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", "dev": true }, + "combine-source-map": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", + "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", + "requires": { + "convert-source-map": "~1.1.0", + "inline-source-map": "~0.6.0", + "lodash.memoize": "~3.0.3", + "source-map": "~0.5.3" + }, + "dependencies": { + "convert-source-map": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", + "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=" + } + } + }, "combined-stream": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", @@ -2473,6 +2447,19 @@ "typedarray": "^0.0.6" } }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "requires": { + "date-now": "^0.1.4" + } + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, "contains-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", @@ -2549,16 +2536,6 @@ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, - "copy-props": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.4.tgz", - "integrity": "sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==", - "dev": true, - "requires": { - "each-props": "^1.3.0", - "is-plain-object": "^2.0.1" - } - }, "core-js": { "version": "2.6.5", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz", @@ -2625,6 +2602,15 @@ "safe-buffer": "^5.0.1" } }, + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + } + }, "create-hash": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", @@ -2660,6 +2646,24 @@ "which": "^1.2.9" } }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -2669,14 +2673,10 @@ "array-find-index": "^1.0.1" } }, - "d": { + "dash-ast": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", - "dev": true, - "requires": { - "es5-ext": "^0.10.9" - } + "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", + "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==" }, "dashdash": { "version": "1.14.1", @@ -2687,6 +2687,11 @@ "assert-plus": "^1.0.0" } }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=" + }, "dateformat": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", @@ -2765,29 +2770,6 @@ "integrity": "sha512-6+LuZGU7QCNUnAJyX8cIrlzoEgggTM6B7mm+znKOX4t5ltluT9KLjN6g61ECMS0LTsLW7yDpNoxhix5FZcrIow==", "dev": true }, - "default-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", - "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", - "dev": true, - "requires": { - "kind-of": "^5.0.2" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "default-resolution": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", - "dev": true - }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -2874,13 +2856,27 @@ "integrity": "sha512-ccVHpE72+tcIKaGMql33x5MAjKQIZrk+3x2GbJ7TeraUCZWHoT+KSZpoC+JQFsUBlSTXUrBaGiF0j6zVTepPLg==", "dev": true }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true + "deps-sort": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz", + "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=", + "requires": { + "JSONStream": "^1.0.3", + "shasum": "^1.0.0", + "subarg": "^1.0.0", + "through2": "^2.0.0" + } }, - "detect-indent": { + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "detect-indent": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", @@ -2888,12 +2884,32 @@ "repeating": "^2.0.0" } }, + "detective": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", + "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", + "requires": { + "acorn-node": "^1.6.1", + "defined": "^1.0.0", + "minimist": "^1.1.1" + } + }, "diff": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, "dijkstrajs": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.1.tgz", @@ -2927,6 +2943,11 @@ "esutils": "^2.0.2" } }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" + }, "dot-prop": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", @@ -2950,33 +2971,10 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "dev": true, "requires": { "readable-stream": "^2.0.2" } }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "each-props": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", - "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.1", - "object.defaults": "^1.1.0" - } - }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -3148,28 +3146,6 @@ "is-symbol": "^1.0.2" } }, - "es5-ext": { - "version": "0.10.50", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.50.tgz", - "integrity": "sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw==", - "dev": true, - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.1", - "next-tick": "^1.0.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, "es6-promise": { "version": "4.2.6", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.6.tgz", @@ -3185,28 +3161,6 @@ "es6-promise": "^4.0.3" } }, - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "es6-weak-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", - "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.14", - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -3648,6 +3602,11 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" }, + "events": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", + "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==" + }, "evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", @@ -3789,15 +3748,6 @@ } } }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -3904,18 +3854,6 @@ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", "dev": true }, - "fancy-log": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", - "dev": true, - "requires": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "parse-node-version": "^1.0.0", - "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", @@ -4053,54 +3991,6 @@ } } }, - "findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "dependencies": { - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - } - } - }, - "fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", - "dev": true, - "requires": { - "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" - } - }, - "flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", - "dev": true - }, "flat-cache": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", @@ -4118,16 +4008,6 @@ "integrity": "sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg==", "dev": true }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, "follow-redirects": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz", @@ -4159,15 +4039,6 @@ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" }, - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -4220,16 +4091,6 @@ "universalify": "^0.1.0" } }, - "fs-mkdirp-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "through2": "^2.0.3" - } - }, "fs-readdir-recursive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", @@ -4712,6 +4573,11 @@ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" }, + "get-assigned-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", + "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==" + }, "get-caller-file": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", @@ -4833,111 +4699,12 @@ } } }, - "glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", - "dev": true, - "requires": { - "extend": "^3.0.0", - "glob": "^7.1.1", - "glob-parent": "^3.1.0", - "is-negated-glob": "^1.0.0", - "ordered-read-streams": "^1.0.0", - "pumpify": "^1.3.5", - "readable-stream": "^2.1.5", - "remove-trailing-separator": "^1.0.1", - "to-absolute-glob": "^2.0.0", - "unique-stream": "^2.0.2" - } - }, "glob-to-regexp": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", "dev": true }, - "glob-watcher": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.3.tgz", - "integrity": "sha512-8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-done": "^1.2.0", - "chokidar": "^2.0.0", - "is-negated-glob": "^1.0.0", - "just-debounce": "^1.0.0", - "object.defaults": "^1.1.0" - }, - "dependencies": { - "chokidar": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.5.tgz", - "integrity": "sha512-i0TprVWp+Kj4WRPtInjexJ8Q+BqTE909VpH8xVhXrJkoc5QC8VO9TryGOqTr+2hljzc1sC62t22h5tZePodM/A==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - } - } - }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -4979,15 +4746,6 @@ } } }, - "glogg": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", - "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", - "dev": true, - "requires": { - "sparkles": "^1.0.0" - } - }, "graceful-fs": { "version": "4.1.15", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", @@ -4999,146 +4757,6 @@ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, - "gulp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", - "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", - "dev": true, - "requires": { - "glob-watcher": "^5.0.3", - "gulp-cli": "^2.2.0", - "undertaker": "^1.2.1", - "vinyl-fs": "^3.0.0" - }, - "dependencies": { - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "gulp-cli": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.2.0.tgz", - "integrity": "sha512-rGs3bVYHdyJpLqR0TUBnlcZ1O5O++Zs4bA0ajm+zr3WFCfiSLjGwoCBqFs18wzN+ZxahT9DkOK5nDf26iDsWjA==", - "dev": true, - "requires": { - "ansi-colors": "^1.0.1", - "archy": "^1.0.0", - "array-sort": "^1.0.0", - "color-support": "^1.1.3", - "concat-stream": "^1.6.0", - "copy-props": "^2.0.1", - "fancy-log": "^1.3.2", - "gulplog": "^1.0.0", - "interpret": "^1.1.0", - "isobject": "^3.0.1", - "liftoff": "^3.1.0", - "matchdep": "^2.0.0", - "mute-stdout": "^1.0.0", - "pretty-hrtime": "^1.0.0", - "replace-homedir": "^1.0.0", - "semver-greatest-satisfied-range": "^1.1.0", - "v8flags": "^3.0.1", - "yargs": "^7.1.0" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, - "requires": { - "lcid": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "v8flags": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.2.tgz", - "integrity": "sha512-MtivA7GF24yMPte9Rp/BWGCYQNaUj86zeYxV/x2RRJMKagImbbv3u8iJC57lNhWLPcGLJmHcHmFWkNsplbbLWw==", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true - }, - "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "dev": true, - "requires": { - "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": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", - "dev": true, - "requires": { - "camelcase": "^3.0.0" - } - } - } - }, - "gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", - "dev": true, - "requires": { - "glogg": "^1.0.0" - } - }, "handlebars": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz", @@ -5319,15 +4937,6 @@ "os-tmpdir": "^1.0.1" } }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" - } - }, "hook-std": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/hook-std/-/hook-std-1.2.0.tgz", @@ -5339,6 +4948,11 @@ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" }, + "htmlescape": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", + "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=" + }, "http-proxy-agent": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", @@ -5377,6 +4991,11 @@ "sshpk": "^1.7.0" } }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + }, "https-proxy-agent": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", @@ -5478,6 +5097,14 @@ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" }, + "inline-source-map": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", + "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", + "requires": { + "source-map": "~0.5.3" + } + }, "inquirer": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.3.1.tgz", @@ -5516,11 +5143,22 @@ } } }, - "interpret": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", - "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", - "dev": true + "insert-module-globals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.0.tgz", + "integrity": "sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw==", + "requires": { + "JSONStream": "^1.0.3", + "acorn-node": "^1.5.2", + "combine-source-map": "^0.8.0", + "concat-stream": "^1.6.1", + "is-buffer": "^1.1.0", + "path-is-absolute": "^1.0.1", + "process": "~0.11.0", + "through2": "^2.0.0", + "undeclared-identifiers": "^1.1.2", + "xtend": "^4.0.0" + } }, "into-stream": { "version": "4.0.0", @@ -5540,22 +5178,6 @@ "loose-envify": "^1.0.0" } }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true - }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "dev": true, - "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - } - }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", @@ -5573,6 +5195,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "optional": true, "requires": { "binary-extensions": "^1.0.0" } @@ -5669,12 +5292,6 @@ "is-extglob": "^1.0.0" } }, - "is-negated-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", - "dev": true - }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -5728,15 +5345,6 @@ "has": "^1.0.1" } }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "dev": true, - "requires": { - "is-unc-path": "^1.0.0" - } - }, "is-resolvable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", @@ -5776,27 +5384,6 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "dev": true, - "requires": { - "unc-path-regex": "^0.1.2" - } - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "is-valid-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", - "dev": true - }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -5920,6 +5507,14 @@ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" }, + "json-stable-stringify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", + "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", + "requires": { + "jsonify": "~0.0.0" + } + }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", @@ -5945,11 +5540,15 @@ "graceful-fs": "^4.1.6" } }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, "jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" }, "jsprim": { "version": "1.4.1", @@ -5971,12 +5570,6 @@ "array-includes": "^3.0.3" } }, - "just-debounce": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz", - "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=", - "dev": true - }, "just-extend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.0.2.tgz", @@ -6002,32 +5595,21 @@ "is-buffer": "^1.1.5" } }, - "last-run": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", - "dev": true, - "requires": { - "default-resolution": "^2.0.0", - "es6-weak-map": "^2.0.1" - } - }, - "lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "dev": true, - "requires": { - "readable-stream": "^2.0.5" - } - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, + "labeled-stream-splicer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.1.tgz", + "integrity": "sha512-MC94mHZRvJ3LfykJlTUipBqenZz1pacOZEMhhQ8dMGcDHs0SBE5GbsavUXV7YtP3icBW17W0Zy1I0lfASmo9Pg==", "requires": { - "invert-kv": "^1.0.0" + "inherits": "^2.0.1", + "isarray": "^2.0.4", + "stream-splicer": "^2.0.0" + }, + "dependencies": { + "isarray": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.4.tgz", + "integrity": "sha512-GMxXOiUirWg1xTKRipM0Ek07rX+ubx4nNVElTJdNLYmNO/2YrDkgJGw9CljXn+r4EWiDQg/8lsRdHyg2PJuUaA==" + } } }, "lcov-parse": { @@ -6036,15 +5618,6 @@ "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=", "dev": true }, - "lead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", - "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", - "dev": true, - "requires": { - "flush-write-stream": "^1.0.2" - } - }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", @@ -6054,22 +5627,6 @@ "type-check": "~0.3.2" } }, - "liftoff": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", - "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", - "dev": true, - "requires": { - "extend": "^3.0.0", - "findup-sync": "^3.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - } - }, "load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", @@ -6125,6 +5682,11 @@ "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", "dev": true }, + "lodash.memoize": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", + "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=" + }, "lodash.set": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", @@ -6208,23 +5770,6 @@ "pify": "^3.0.0" } }, - "make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, "map-age-cleaner": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", @@ -6272,47 +5817,6 @@ "supports-hyperlinks": "^1.0.1" } }, - "matchdep": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", - "dev": true, - "requires": { - "findup-sync": "^2.0.0", - "micromatch": "^3.0.4", - "resolve": "^1.4.0", - "stack-trace": "0.0.10" - }, - "dependencies": { - "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, "math-random": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", @@ -6494,6 +5998,15 @@ } } }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + } + }, "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -6656,17 +6169,33 @@ "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", "dev": true }, + "module-deps": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.0.tgz", + "integrity": "sha512-hKPmO06so6bL/ZvqVNVqdTVO8UAYsi3tQWlCa+z9KuWhoN4KDQtb5hcqQQv58qYiDE21wIvnttZEPiDgEbpwbA==", + "requires": { + "JSONStream": "^1.0.3", + "browser-resolve": "^1.7.0", + "cached-path-relative": "^1.0.0", + "concat-stream": "~1.6.0", + "defined": "^1.0.0", + "detective": "^5.0.2", + "duplexer2": "^0.1.2", + "inherits": "^2.0.1", + "parents": "^1.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.4.0", + "stream-combiner2": "^1.1.1", + "subarg": "^1.0.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + } + }, "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" }, - "mute-stdout": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", - "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", - "dev": true - }, "mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", @@ -6729,12 +6258,6 @@ "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==" }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true - }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", @@ -6843,15 +6366,6 @@ "integrity": "sha512-0NLtR71o4k6GLP+mr6Ty34c5GA6CMoEsncKJxvQd8NzPxaHRJNnb5gZE8R1XF4CPIS7QPHLJ74IFszwtNVAHVQ==", "dev": true }, - "now-and-later": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", - "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", - "dev": true, - "requires": { - "once": "^1.3.2" - } - }, "npm": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/npm/-/npm-6.5.0.tgz", @@ -10915,40 +10429,6 @@ "isobject": "^3.0.0" } }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "dev": true, - "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, "object.omit": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", @@ -10978,16 +10458,6 @@ "isobject": "^3.0.1" } }, - "object.reduce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, "octokit-pagination-methods": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz", @@ -11047,14 +10517,10 @@ "wordwrap": "~1.0.0" } }, - "ordered-read-streams": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", - "dev": true, - "requires": { - "readable-stream": "^2.0.1" - } + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" }, "os-homedir": { "version": "1.0.2", @@ -11185,6 +10651,11 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, + "pako": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", + "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==" + }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -11194,15 +10665,25 @@ "callsites": "^3.0.0" } }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "dev": true, + "parents": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", + "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", + "requires": { + "path-platform": "~0.11.15" + } + }, + "parse-asn1": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz", + "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==", "requires": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" } }, "parse-github-url": { @@ -11232,18 +10713,6 @@ "json-parse-better-errors": "^1.0.1" } }, - "parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "dev": true - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true - }, "parseqs": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", @@ -11271,6 +10740,11 @@ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" + }, "path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", @@ -11302,20 +10776,10 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" }, - "path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "dev": true, - "requires": { - "path-root-regex": "^0.1.0" - } - }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", - "dev": true + "path-platform": { + "version": "0.11.15", + "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", + "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=" }, "path-to-regexp": { "version": "1.7.0", @@ -11334,25 +10798,6 @@ } } }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, "pathval": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", @@ -11382,21 +10827,6 @@ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, "pkg-conf": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", @@ -11536,17 +10966,16 @@ "integrity": "sha512-sXe5lSt2WQlCbydGETgfm1YBShgOX4HxQkFPvbxkcwgDvGDeqVau8h+12+lmSVlP3rHPz0oavfddSZg/q+Szjw==", "dev": true }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", - "dev": true - }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, "process-nextick-args": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", @@ -11584,25 +11013,17 @@ "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==", "dev": true }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" } }, "punycode": { @@ -11641,6 +11062,16 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" + }, "quick-lru": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", @@ -11685,6 +11116,15 @@ "safe-buffer": "^5.1.0" } }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, "range-parser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", @@ -11708,85 +11148,12 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz", "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==" }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "dependencies": { - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - } - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, + "read-only-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", + "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - } + "readable-stream": "^2.0.2" } }, "readable-stream": { @@ -11807,21 +11174,13 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "optional": true, "requires": { "graceful-fs": "^4.1.11", "micromatch": "^3.1.10", "readable-stream": "^2.0.2" } }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - }, "redent": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", @@ -11925,27 +11284,6 @@ } } }, - "remove-bom-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", - "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5", - "is-utf8": "^0.2.1" - } - }, - "remove-bom-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", - "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", - "dev": true, - "requires": { - "remove-bom-buffer": "^3.0.0", - "safe-buffer": "^5.1.0", - "through2": "^2.0.3" - } - }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -11974,23 +11312,6 @@ "resolved": "https://registry.npmjs.org/repl.history/-/repl.history-0.1.4.tgz", "integrity": "sha1-gDZxcfN4HW5CmccXWMJTCX9dWDI=" }, - "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", - "dev": true - }, - "replace-homedir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", - "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1", - "is-absolute": "^1.0.0", - "remove-trailing-separator": "^1.1.0" - } - }, "request": { "version": "2.88.0", "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", @@ -12074,31 +11395,12 @@ "path-parse": "^1.0.6" } }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - } - }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, - "resolve-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", - "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", - "dev": true, - "requires": { - "value-or-function": "^3.0.0" - } - }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", @@ -12320,15 +11622,6 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" }, - "semver-greatest-satisfied-range": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", - "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", - "dev": true, - "requires": { - "sver-compat": "^1.5.0" - } - }, "semver-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz", @@ -12370,6 +11663,15 @@ "safe-buffer": "^5.0.1" } }, + "shasum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", + "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", + "requires": { + "json-stable-stringify": "~0.0.0", + "sha.js": "~2.4.4" + } + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", @@ -12383,6 +11685,17 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, + "shell-quote": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", + "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", + "requires": { + "array-filter": "~0.0.0", + "array-map": "~0.0.0", + "array-reduce": "~0.0.0", + "jsonify": "~0.0.0" + } + }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", @@ -12399,6 +11712,11 @@ "pkg-conf": "^2.1.0" } }, + "simple-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", + "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=" + }, "sinon": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/sinon/-/sinon-4.5.0.tgz", @@ -12659,12 +11977,6 @@ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, - "sparkles": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", - "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", - "dev": true - }, "spawn-error-forwarder": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz", @@ -12747,12 +12059,6 @@ "tweetnacl": "~0.14.0" } }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", - "dev": true - }, "standard": { "version": "11.0.1", "resolved": "https://registry.npmjs.org/standard/-/standard-11.0.1.tgz", @@ -13000,27 +12306,44 @@ } } }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, "stream-combiner2": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", - "dev": true, "requires": { "duplexer2": "~0.1.0", "readable-stream": "^2.0.2" } }, - "stream-exhaust": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", - "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", - "dev": true + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true + "stream-splicer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz", + "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" + } }, "string-width": { "version": "2.1.1", @@ -13093,6 +12416,14 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, + "subarg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", + "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", + "requires": { + "minimist": "^1.1.0" + } + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -13119,14 +12450,12 @@ } } }, - "sver-compat": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", - "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", - "dev": true, + "syntax-error": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", + "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", "requires": { - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" + "acorn-node": "^1.2.0" } }, "table": { @@ -13233,28 +12562,19 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, "requires": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" } }, - "through2-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", - "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", - "dev": true, + "timers-browserify": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", + "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", "requires": { - "through2": "~2.0.0", - "xtend": "~4.0.0" + "process": "~0.11.0" } }, - "time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", - "dev": true - }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -13263,21 +12583,16 @@ "os-tmpdir": "~1.0.2" } }, - "to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", - "dev": true, - "requires": { - "is-absolute": "^1.0.0", - "is-negated-glob": "^1.0.0" - } - }, "to-array": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + }, "to-fast-properties": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", @@ -13311,15 +12626,6 @@ "repeat-string": "^1.6.1" } }, - "to-through": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", - "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", - "dev": true, - "requires": { - "through2": "^2.0.3" - } - }, "touch": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", @@ -13385,6 +12691,11 @@ "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", "dev": true }, + "tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==" + }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -13460,35 +12771,23 @@ } } }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", - "dev": true + "umd": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", + "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==" }, - "undertaker": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.1.tgz", - "integrity": "sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA==", - "dev": true, + "undeclared-identifiers": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", + "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", "requires": { - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "bach": "^1.0.0", - "collection-map": "^1.0.0", - "es6-weak-map": "^2.0.1", - "last-run": "^1.1.0", - "object.defaults": "^1.0.0", - "object.reduce": "^1.0.0", - "undertaker-registry": "^1.0.0" + "acorn-node": "^1.3.0", + "dash-ast": "^1.0.0", + "get-assigned-identifiers": "^1.2.0", + "simple-concat": "^1.0.0", + "xtend": "^4.0.1" } }, - "undertaker-registry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=", - "dev": true - }, "union-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", @@ -13526,16 +12825,6 @@ "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" }, - "unique-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", - "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", - "dev": true, - "requires": { - "json-stable-stringify-without-jsonify": "^1.0.1", - "through2-filter": "^3.0.0" - } - }, "universal-user-agent": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-2.0.3.tgz", @@ -13592,12 +12881,6 @@ } } }, - "upath": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", - "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", - "dev": true - }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", @@ -13612,6 +12895,22 @@ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + } + } + }, "url-join": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz", @@ -13677,12 +12976,6 @@ "spdx-expression-parse": "^3.0.0" } }, - "value-or-function": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", - "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", - "dev": true - }, "varuint-bitcoin": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz", @@ -13702,59 +12995,10 @@ "extsprintf": "^1.2.0" } }, - "vinyl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", - "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", - "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.0.1", - "replace-ext": "^1.0.0" - } - }, - "vinyl-fs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", - "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", - "dev": true, - "requires": { - "fs-mkdirp-stream": "^1.0.0", - "glob-stream": "^6.1.0", - "graceful-fs": "^4.0.0", - "is-valid-glob": "^1.0.0", - "lazystream": "^1.0.0", - "lead": "^1.0.0", - "object.assign": "^4.0.4", - "pumpify": "^1.3.5", - "readable-stream": "^2.3.3", - "remove-bom-buffer": "^3.0.0", - "remove-bom-stream": "^1.2.0", - "resolve-options": "^1.1.0", - "through2": "^2.0.0", - "to-through": "^2.0.0", - "value-or-function": "^3.0.0", - "vinyl": "^2.0.0", - "vinyl-sourcemap": "^1.1.0" - } - }, - "vinyl-sourcemap": { + "vm-browserify": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", - "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", - "dev": true, - "requires": { - "append-buffer": "^1.0.2", - "convert-source-map": "^1.5.0", - "graceful-fs": "^4.1.6", - "normalize-path": "^2.1.1", - "now-and-later": "^2.0.0", - "remove-bom-buffer": "^3.0.0", - "vinyl": "^2.0.0" - } + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", + "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==" }, "which": { "version": "1.3.1", diff --git a/test/unit/Address.js b/test/unit/Address.js index cee492c7..3ae4375e 100644 --- a/test/unit/Address.js +++ b/test/unit/Address.js @@ -11,6 +11,7 @@ function flatten(arrays) { } const XPUBS = flatten([fixtures.mainnetXPub, fixtures.testnetXPub]) +const XPRIVS = flatten([fixtures.mainnetXPriv, fixtures.testnetXPriv]) const LEGACY_ADDRESSES = flatten([ fixtures.legacyMainnetP2PKH, @@ -925,6 +926,16 @@ describe("#fromXPub", () => { }) }) +describe("#fromXPriv", () => { + XPRIVS.forEach((xpriv, i) => { + xpriv.addresses.forEach((address, j) => { + it(`generate hardened address ${j} for ${xpriv.xpriv}`, () => { + assert.equal(BITBOX.Address.fromXPriv(xpriv.xpriv, `0'/${j}`), address) + }) + }) + }) +}) + describe("#fromOutputScript", () => { const script = BITBOX.Script.encode([ Buffer.from("BOX", "ascii"), diff --git a/test/unit/fixtures/Address.json b/test/unit/fixtures/Address.json index 02c11120..aff41bcf 100644 --- a/test/unit/fixtures/Address.json +++ b/test/unit/fixtures/Address.json @@ -183,5 +183,69 @@ ] } ], - "p2shMainnet": ["bitcoincash:pz0qcslrqn7hr44hsszwl4lw5r6udkg6zqncnufkrl"] + "p2shMainnet": ["bitcoincash:pz0qcslrqn7hr44hsszwl4lw5r6udkg6zqncnufkrl"], + "mainnetXPriv": [ + { + "xpriv": "xprvA2WwD9mk1Qd3rMjQ4ZRHvCWCj47jbXjY9Nf7npNRBmGUJngpRAvJzNpNgt7h2dDQ5huG7yFwYfz4PFJDPzkqfvBNPHnaio4yAbbUuv3EBnL", + "addresses": [ + "bitcoincash:qpmcs78tpfvfphhedcczydaddu5wmcx0xvrwf3fjph", + "bitcoincash:qppfr7fu4dzxguen85rjwa6ress3sl839qyudganxj", + "bitcoincash:qpuaaaseccxyjj04d2l3qv4vd2wxj6gtwvnfe3ckh8", + "bitcoincash:qp46n7a53jvkarp9ps595fjv8czfd045v5zk4xhspm", + "bitcoincash:qprjdqx7cnrac4uemp2fza08k875wsgzfcapk76n9n" + ] + }, + { + "xpriv": "xprvA2WwD9mk1Qd3uh37mpp8ARSm16SfFBBW8dkns7P16YHocvSPm3EY99LFRLo8YvVUuRmEY72a28SnjAtA4TrvQNVt9dmaHFGkHgddoxKKFvC", + "addresses": [ + "bitcoincash:qr5p7wn3yg3hm05r9l7hp5el9ydxpy2ta53eyypyth", + "bitcoincash:qqjr8tr6he0p5aktut3ltzc0z9j05umqnge98c4a9x", + "bitcoincash:qpuka8vzq8p6ejmv4a6z4thcge39p8f92gdakccmhh", + "bitcoincash:qr9nxah3jum93yxyhysrm97822vtlyvkrsw6ayp0fu", + "bitcoincash:qre22kwsrm0z8gzm4hh48nqgcsrd7ygf3sv8wwesmv" + ] + }, + { + "xpriv": "xprvA2WwD9mk1Qd3vbDhZ2wDcNeytiPVBQZSAANwH1NmKwmD29bEXXLPwREDPzzfp7ctAArHLMUr2U97L8gF9NjpaSQj4y2u58x2VBwzYjWo1Z9", + "addresses": [ + "bitcoincash:qquypq4yd8y77jn5dvffdxjy4zpjvpeewsm6p9ly6f", + "bitcoincash:qqy9pdfekyajmhh6hj0lw2fstefkf3ta6gm6g88tnu", + "bitcoincash:qqy37k7emj48yj2zpttcnsj2lkr0un0d5y92s2je0d", + "bitcoincash:qrn3vr8sckvj3vz9gawd0tjv04xp9h7fs5ewngp03q", + "bitcoincash:qq5r94w8kjnk8d84knyg2xa5qrddxy7myqe0gg6gsf" + ] + } + ], + "testnetXPriv": [ + { + "xpriv": "tprv8jBszV65QgT8TAxvj8Go5r8C3BXwq3mYUvaEfEnsfjkx6PRuQYG4W8Bpc4HM2zbiT9S384shi2Zrr6qxXD6nUySxuvztP9o25hLuMcDvMYD", + "addresses": [ + "bchtest:qpmcs78tpfvfphhedcczydaddu5wmcx0xv8udkt9xt", + "bchtest:qppfr7fu4dzxguen85rjwa6ress3sl839qqwf0lypw", + "bchtest:qpuaaaseccxyjj04d2l3qv4vd2wxj6gtwvhmak6psm", + "bchtest:qp46n7a53jvkarp9ps595fjv8czfd045v5xy3p48x8", + "bchtest:qprjdqx7cnrac4uemp2fza08k875wsgzfcenjecyz0" + ] + }, + { + "xpriv": "tprv8jBszV65QgT8WWGeSPfdL54kKDrsUhDWUBfujXoTaWnHQXBUkQaHethhLWxnZHsoGsJ1YCeLBV2bC2RuBgCsDRmUgGyswbzoCnP4Fe3yuLv", + "addresses": [ + "bchtest:qr5p7wn3yg3hm05r9l7hp5el9ydxpy2ta54tqrrnvt", + "bchtest:qqjr8tr6he0p5aktut3ltzc0z9j05umqngahrlh2z6", + "bchtest:qpuka8vzq8p6ejmv4a6z4thcge39p8f92gf0jl6vst", + "bchtest:qr9nxah3jum93yxyhysrm97822vtlyvkrs2gerrcwq", + "bchtest:qre22kwsrm0z8gzm4hh48nqgcsrd7ygf3sg42fm8us" + ] + }, + { + "xpriv": "tprv8jBszV65QgT8XQTEDbnin2GyCqohQvbSViJ49RoDovFgokLKWtg9TAbfKBAKpV1CXcP4LT6cBpiunzDzGb5mPVgKbcFCjVg5QHhQzPRPmLb", + "addresses": [ + "bchtest:qquypq4yd8y77jn5dvffdxjy4zpjvpeewslg9zana4", + "bchtest:qqy9pdfekyajmhh6hj0lw2fstefkf3ta6glgvq9u5q", + "bchtest:qqy37k7emj48yj2zpttcnsj2lkr0un0d5ypc5dswg3", + "bchtest:qrn3vr8sckvj3vz9gawd0tjv04xp9h7fs5auh0rcku", + "bchtest:qq5r94w8kjnk8d84knyg2xa5qrddxy7myqaav0clh4" + ] + } + ] } From 3a5e83c4450d0f8fb063587b9cfb17a378127ff1 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 08:20:24 +0900 Subject: [PATCH 308/480] Types. --- lib/BitcoinCash.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/BitcoinCash.ts b/lib/BitcoinCash.ts index d7391403..e8333d30 100644 --- a/lib/BitcoinCash.ts +++ b/lib/BitcoinCash.ts @@ -13,8 +13,8 @@ export interface BitcoinCash { _address: any toSatoshi(coins: number): number toBitcoinCash(satoshis: number): number - toBits(satoshis: any): any - satsToBits(satoshis: any): any + toBits(satoshis: number): number + satsToBits(satoshis: number): number signMessageWithPrivKey(privateKeyWIF: string, message: string): string verifyMessage(address: string, signature: string, message: string): boolean encodeBase58Check(hex: string): string @@ -74,13 +74,13 @@ export class BitcoinCash implements BitcoinCash { } // Translate satoshi to bits denomination - toBits(satoshis: any): any { + toBits(satoshis: number): number { return parseFloat(satoshis) / 100 } // Translate satoshi to bits denomination // TODO remove in 2.0 - satsToBits(satoshis: any): any { + satsToBits(satoshis: number): number { return parseFloat(satoshis) / 100 } From 7a32a2736139c7a4b264479946dad3e40cb8901d Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 09:13:32 +0900 Subject: [PATCH 309/480] ts changes. --- lib/Blockchain.ts | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/lib/Blockchain.ts b/lib/Blockchain.ts index 06b7137a..30e93a7c 100644 --- a/lib/Blockchain.ts +++ b/lib/Blockchain.ts @@ -21,7 +21,7 @@ export interface Blockchain { getDifficulty(): Promise getMempoolAncestors(txid: string, verbose?: boolean): Promise getMempoolDescendants(txid: string, verbose?: boolean): Promise - getMempoolEntry(txid: string): Promise + getMempoolEntry(txid: string | string[]): Promise getMempoolInfo(): Promise getRawMempool(verbose?: boolean): Promise getTxOut( @@ -29,7 +29,7 @@ export interface Blockchain { n: any, include_mempool?: boolean ): Promise - getTxOutProof(txids: string | string[]): Promise + getTxOutProof(txids: string | string[]): Promise preciousBlock(blockhash: string): Promise pruneBlockchain(height: number): Promise verifyChain(checklevel?: number, nblocks?: number): Promise @@ -154,7 +154,7 @@ export class Blockchain implements Blockchain { } } - async getBlockHash(height: any = 1): Promise { + async getBlockHash(height: number = 1): Promise { if (typeof height !== "string") height = JSON.stringify(height) try { @@ -227,6 +227,7 @@ export class Blockchain implements Blockchain { } } + // TODO: add back to REST async getMempoolAncestors( txid: string, verbose: boolean = false @@ -246,6 +247,7 @@ export class Blockchain implements Blockchain { } } + // TODO: add back to REST async getMempoolDescendants( txid: string, verbose: boolean = false @@ -265,7 +267,7 @@ export class Blockchain implements Blockchain { } } - async getMempoolEntry(txid: string): Promise { + async getMempoolEntry(txid: string | string[]): Promise { //if (typeof txid !== "string") txid = JSON.stringify(txid) try { @@ -308,6 +310,7 @@ export class Blockchain implements Blockchain { } async getRawMempool(verbose: boolean = false): Promise { + // TODO fix verbose try { const response: any = await axios.get( `${this.restURL}blockchain/getRawMempool?vebose=${verbose}` @@ -324,6 +327,7 @@ export class Blockchain implements Blockchain { n: any, include_mempool: boolean = true ): Promise { + // TODO confirm this works try { const response: any = await axios.get( `${ @@ -337,7 +341,7 @@ export class Blockchain implements Blockchain { } } - async getTxOutProof(txids: string | string[]): Promise { + async getTxOutProof(txids: string | string[]): Promise { try { // Single txid. if (typeof txids === "string") { @@ -369,6 +373,7 @@ export class Blockchain implements Blockchain { } async preciousBlock(blockhash: string): Promise { + // TODO bring this back to REST try { const response: any = await axios.get( `${this.restURL}blockchain/preciousBlock/${blockhash}` @@ -381,6 +386,7 @@ export class Blockchain implements Blockchain { } async pruneBlockchain(height: number): Promise { + // TODO bring this back to REST try { const response = await axios.post( `${this.restURL}blockchain/pruneBlockchain/${height}` From 5c8e5a31aaf62f2013e949929d87e23e85c06d53 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 09:18:53 +0900 Subject: [PATCH 310/480] ts --- lib/Control.ts | 1 + lib/ECPair.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/Control.ts b/lib/Control.ts index f17f8fe8..ce20ffb9 100644 --- a/lib/Control.ts +++ b/lib/Control.ts @@ -48,6 +48,7 @@ export class Control implements Control { } async getMemoryInfo(): Promise { + // TODO add back to REST try { const response: any = await axios.get( `${this.restURL}control/getMemoryInfo` diff --git a/lib/ECPair.ts b/lib/ECPair.ts index dee2175f..fa80c2a2 100644 --- a/lib/ECPair.ts +++ b/lib/ECPair.ts @@ -14,7 +14,7 @@ export interface ECPair { sign(ecpair: ECPair, buffer: Buffer): Boolean | ECSignature verify(buffer: Buffer, signature: ECSignature): boolean verify(ecpair: ECPair, buffer: Buffer, signature: ECSignature): boolean - fromPublicKey(pubkeyBuffer: string): ECPair + fromPublicKey(pubkeyBuffer: Buffer): ECPair toPublicKey(): Buffer toPublicKey(ecpair: ECPair): Buffer toLegacyAddress(): string From 208eebf0623e714176eda5000c157b581c3a7c42 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 09:31:21 +0900 Subject: [PATCH 311/480] Mining types. --- lib/Mining.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/Mining.ts b/lib/Mining.ts index 33e664aa..98e743b4 100644 --- a/lib/Mining.ts +++ b/lib/Mining.ts @@ -4,7 +4,7 @@ export interface Mining { restURL: string getBlockTemplate(template_request: any): Promise getMiningInfo(): Promise - getNetworkHashps(nblocks?: number, height?: number): Promise + getNetworkHashps(nblocks?: number, height?: number): Promise submitBlock(hex: string, parameters: any): Promise } @@ -41,7 +41,7 @@ export class Mining implements Mining { async getNetworkHashps( nblocks: number = 120, height: number = 1 - ): Promise { + ): Promise { try { const response: any = await axios.get( `${ From 8f673491d040e01c4c3dde4a8536d6ab02c9031c Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 10:08:07 +0900 Subject: [PATCH 312/480] More ts changes. --- lib/Mnemonic.ts | 6 +++--- lib/Price.ts | 4 ++-- lib/RawTransactions.ts | 20 ++++++++++---------- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/lib/Mnemonic.ts b/lib/Mnemonic.ts index 72ac23a6..d66ba9a6 100644 --- a/lib/Mnemonic.ts +++ b/lib/Mnemonic.ts @@ -6,12 +6,12 @@ const wif = require("wif") export interface Mnemonic { _address: any - generate(bits: number, wordlist: string[]): string + generate(bits?: number, wordlist?: string[]): string fromEntropy(bytes: Buffer, wordlist: string[]): string toEntropy(mnemonic: string, wordlist: string[]): Buffer validate(mnemonic: string, wordlist: string[]): string toSeed(mnemonic: string, password: string): Buffer - wordLists(): string[] + wordLists(): any toKeypairs( mnemonic: string, numberOfKeypairs?: number, @@ -65,7 +65,7 @@ export class Mnemonic implements Mnemonic { return BIP39.mnemonicToSeed(mnemonic, password) } - wordLists(): string[] { + wordLists(): any { return BIP39.wordlists } diff --git a/lib/Price.ts b/lib/Price.ts index 1b818da4..2c9f74e0 100644 --- a/lib/Price.ts +++ b/lib/Price.ts @@ -1,11 +1,11 @@ import axios from "axios" export interface Price { - current(currency?: string): Promise + current(currency?: string): Promise } export class Price implements Price { - async current(currency: string = "usd"): Promise { + async current(currency: string = "usd"): Promise { try { const response: any = await axios.get( `https://index-api.bitcoin.com/api/v0/cash/price/${currency.toLowerCase()}` diff --git a/lib/RawTransactions.ts b/lib/RawTransactions.ts index 1f3461ff..3cdef70b 100644 --- a/lib/RawTransactions.ts +++ b/lib/RawTransactions.ts @@ -2,16 +2,16 @@ import axios from "axios" export interface RawTransactions { restURL: string - decodeRawTransaction(hex: string): Promise - decodeScript(script: string | string[]): Promise + decodeRawTransaction(hex: string | string[]): Promise + decodeScript(script: string | string[]): Promise getRawTransaction( - txid: string, + txid: string | string, verbose?: boolean - ): Promise + ): Promise sendRawTransaction( hex: string | string[], allowhighfees?: boolean - ): Promise + ): Promise } export interface VerboseRawTransaction { @@ -46,7 +46,7 @@ export class RawTransactions implements RawTransactions { this.restURL = restURL } - async decodeRawTransaction(hex: string): Promise { + async decodeRawTransaction(hex: string | string[]): Promise { try { // Single hex if (typeof hex === "string") { @@ -77,7 +77,7 @@ export class RawTransactions implements RawTransactions { } } - async decodeScript(script: string | string[]): Promise { + async decodeScript(script: string | string[]): Promise { //if (typeof script !== "string") script = JSON.stringify(script) try { @@ -108,9 +108,9 @@ export class RawTransactions implements RawTransactions { } async getRawTransaction( - txid: string, + txid: string | string[], verbose: boolean = false - ): Promise { + ): Promise { try { if (typeof txid === "string") { const response: any = await axios.get( @@ -144,7 +144,7 @@ export class RawTransactions implements RawTransactions { async sendRawTransaction( hex: string | string[], allowhighfees: boolean = false - ): Promise { + ): Promise { try { // Single tx hex. if (typeof hex === "string") { From 02fddd8c53460b7872b89f6a1aa79305015fc15a Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 10:30:26 +0900 Subject: [PATCH 313/480] More ts --- lib/Schnorr.ts | 101 ++++++++++++++++++++++++++------------------- lib/Script.ts | 17 +++----- lib/Transaction.ts | 4 +- 3 files changed, 66 insertions(+), 56 deletions(-) diff --git a/lib/Schnorr.ts b/lib/Schnorr.ts index 8124019a..a872c6fa 100644 --- a/lib/Schnorr.ts +++ b/lib/Schnorr.ts @@ -1,36 +1,44 @@ const schnorr = require("bip-schnorr") +import { Buffer } from "buffer" export interface Schnorr { - sign(privateKey: any, message: any): any - verify(publicKey: any, message: any, signatureToVerify: any): any - batchVerify(publicKeys: any, messages: any, signaturesToVerify: any): any - nonInteractive(privateKeys: any, message: any): any - computeEll(publicKeys: any): any - publicKeyCombine(publicKeys: any, publicKeyHash: any): any + sign(privateKey: any, message: Buffer): Buffer + verify(publicKey: Buffer, message: Buffer, signatureToVerify: Buffer): void + batchVerify( + publicKeys: Buffer[], + messages: Buffer[], + signaturesToVerify: Buffer[] + ): void + nonInteractive(privateKeys: any, message: Buffer): Buffer + computeEll(publicKeys: any): Buffer + publicKeyCombine(publicKeys: Buffer[], publicKeyHash: Buffer): Buffer sessionInitialize( - sessionId: any, + sessionId: Buffer, privateKey: any, - message: any, - pubKeyCombined: any, - ell: any, - idx: any + message: Buffer, + pubKeyCombined: Buffer, + ell: Buffer, + idx: number ): any - sessionNonceCombine(session: any, nonces: any): any + sessionNonceCombine(session: any, nonces: Buffer[]): Buffer partialSign( session: any, - message: any, - nonceCombined: any, - pubKeyCombined: any - ): any + message: Buffer, + nonceCombined: Buffer, + pubKeyCombined: Buffer + ): void partialSignatureVerify( session: any, partialSignature: any, - nonceCombined: any, + nonceCombined: Buffer, idx: any, - pubKey: any, - nonce: any - ): any - partialSignaturesCombine(nonceCombined: any, partialSignatures: any): any + pubKey: Buffer, + nonce: Buffer + ): void + partialSignaturesCombine( + nonceCombined: Buffer, + partialSignatures: any + ): Buffer bufferToInt(buffer: any): any intToBuffer(bigInteger: any): any hash(buffer: any): any @@ -39,37 +47,41 @@ export interface Schnorr { } export class Schnorr implements Schnorr { - sign(privateKey: any, message: any): any { + sign(privateKey: any, message: Buffer): Buffer { return schnorr.sign(privateKey, message) } - verify(publicKey: any, message: any, signatureToVerify: any): any { + verify(publicKey: Buffer, message: Buffer, signatureToVerify: Buffer): void { return schnorr.verify(publicKey, message, signatureToVerify) } - batchVerify(publicKeys: any, messages: any, signaturesToVerify: any): any { + batchVerify( + publicKeys: Buffer[], + messages: Buffer[], + signaturesToVerify: Buffer[] + ): void { return schnorr.batchVerify(publicKeys, messages, signaturesToVerify) } - nonInteractive(privateKeys: any, message: any): any { + nonInteractive(privateKeys: any, message: Buffer): Buffer { return schnorr.muSig.nonInteractive(privateKeys, message) } - computeEll(publicKeys: any): any { + computeEll(publicKeys: any): Buffer { return schnorr.muSig.computeEll(publicKeys) } - publicKeyCombine(publicKeys: any, publicKeyHash: any): any { + publicKeyCombine(publicKeys: Buffer[], publicKeyHash: Buffer): Buffer { return schnorr.muSig.pubKeyCombine(publicKeys, publicKeyHash) } sessionInitialize( - sessionId: any, + sessionId: Buffer, privateKey: any, - message: any, - pubKeyCombined: any, - ell: any, - idx: any + message: Buffer, + pubKeyCombined: Buffer, + ell: Buffer, + idx: number ): any { return schnorr.muSig.sessionInitialize( sessionId, @@ -81,16 +93,16 @@ export class Schnorr implements Schnorr { ) } - sessionNonceCombine(session: any, nonces: any): any { + sessionNonceCombine(session: any, nonces: Buffer[]): Buffer { return schnorr.muSig.sessionNonceCombine(session, nonces) } partialSign( session: any, - message: any, - nonceCombined: any, - pubKeyCombined: any - ): any { + message: Buffer, + nonceCombined: Buffer, + pubKeyCombined: Buffer + ): void { return schnorr.muSig.partialSign( session, message, @@ -102,11 +114,11 @@ export class Schnorr implements Schnorr { partialSignatureVerify( session: any, partialSignature: any, - nonceCombined: any, - idx: any, - pubKey: any, - nonce: any - ): any { + nonceCombined: Buffer, + idx: number, + pubKey: Buffer, + nonce: Buffer + ): void { return schnorr.muSig.partialSigVerify( session, partialSignature, @@ -117,7 +129,10 @@ export class Schnorr implements Schnorr { ) } - partialSignaturesCombine(nonceCombined: any, partialSignatures: any): any { + partialSignaturesCombine( + nonceCombined: Buffer, + partialSignatures: any + ): Buffer { return schnorr.muSig.partialSigCombine(nonceCombined, partialSignatures) } diff --git a/lib/Script.ts b/lib/Script.ts index 2b392964..d1f0dc7c 100644 --- a/lib/Script.ts +++ b/lib/Script.ts @@ -104,9 +104,10 @@ export interface opcodes { OP_TUCK: 125 OP_CAT: 126 - //"OP_SUBSTR": 127, -- replaced w/ OP_SPLIT see below - //"OP_LEFT": 128, -- replaced w/ OP_SPLIT see below - //"OP_RIGHT": 129, -- replaced w/ OP_SPLIT see below + + OP_SPLIT: 127 + OP_NUM2BIN: 128 + OP_BIN2NUM: 129 OP_SIZE: 130 OP_INVERT: 131 @@ -174,18 +175,12 @@ export interface opcodes { OP_NOP8: 183 OP_NOP9: 184 OP_NOP10: 185 + OP_CHECKDATASIG: 186 + OP_CHECKDATASIGVERIFY: 187 OP_PUBKEYHASH: 253 OP_PUBKEY: 254 OP_INVALIDOPCODE: 255 - - // May 2018 added opcodes - OP_SPLIT: 127 - OP_NUM2BIN: 128 - OP_BIN2NUM: 129 - - // Nov 2018 enabled opcodes - // TBD } export class Script implements Script { diff --git a/lib/Transaction.ts b/lib/Transaction.ts index abacd8d7..0baebe49 100644 --- a/lib/Transaction.ts +++ b/lib/Transaction.ts @@ -3,7 +3,7 @@ import axios from "axios" export interface Transaction { restURL: string - details(txid: string): Promise + details(txid: string | string[]): Promise } export interface TxnDetails { @@ -28,7 +28,7 @@ export class Transaction implements Transaction { this.restURL = restURL } - async details(txid: string): Promise { + async details(txid: string | string[]): Promise { try { // Handle single address. if (typeof txid === "string") { From 58d1d9e0aadec7bfdb75d6c584053e311ba6b820 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 10:42:55 +0900 Subject: [PATCH 314/480] Removings stuff and adding types. --- lib/BitcoinCash.ts | 30 ------------------------------ lib/Blockchain.ts | 2 +- lib/TransactionBuilder.ts | 14 +++++++------- 3 files changed, 8 insertions(+), 38 deletions(-) diff --git a/lib/BitcoinCash.ts b/lib/BitcoinCash.ts index e8333d30..f8646674 100644 --- a/lib/BitcoinCash.ts +++ b/lib/BitcoinCash.ts @@ -13,8 +13,6 @@ export interface BitcoinCash { _address: any toSatoshi(coins: number): number toBitcoinCash(satoshis: number): number - toBits(satoshis: number): number - satsToBits(satoshis: number): number signMessageWithPrivKey(privateKeyWIF: string, message: string): string verifyMessage(address: string, signature: string, message: string): boolean encodeBase58Check(hex: string): string @@ -73,34 +71,6 @@ export class BitcoinCash implements BitcoinCash { return sb.toBitcoin(satoshis) } - // Translate satoshi to bits denomination - toBits(satoshis: number): number { - return parseFloat(satoshis) / 100 - } - - // Translate satoshi to bits denomination - // TODO remove in 2.0 - satsToBits(satoshis: number): number { - return parseFloat(satoshis) / 100 - } - - // Translate bits to satoshi denomination - // TODO remove in 2.0 - // fromBits(bits) { - // return this.toInteger(bits * 100); - // } - // - // // Translate bits to satoshi denomination - // satsFromBits(bits) { - // return this.toInteger(bits * 100); - // } - // - // toInteger(number){ - // return Math.round( // round to nearest integer - // Number(number) // type cast your input - // ); - // } - // sign message signMessageWithPrivKey(privateKeyWIF: string, message: string): string { const network: string = diff --git a/lib/Blockchain.ts b/lib/Blockchain.ts index 30e93a7c..45acaaf4 100644 --- a/lib/Blockchain.ts +++ b/lib/Blockchain.ts @@ -155,7 +155,7 @@ export class Blockchain implements Blockchain { } async getBlockHash(height: number = 1): Promise { - if (typeof height !== "string") height = JSON.stringify(height) + // if (typeof height !== "string") height = JSON.stringify(height) try { const response: any = await axios.get( diff --git a/lib/TransactionBuilder.ts b/lib/TransactionBuilder.ts index 83f8a9ac..823c077a 100644 --- a/lib/TransactionBuilder.ts +++ b/lib/TransactionBuilder.ts @@ -24,8 +24,8 @@ export interface TransactionBuilder { addInput( txHash: string, vout: number, - sequence: number, - prevOutScript: string + sequence?: number, + prevOutScript?: string ): void addInputScript(vout: number, script: any): void addInputScripts(scripts: any): void @@ -33,11 +33,11 @@ export interface TransactionBuilder { setLockTime(locktime: number): void sign( vin: number, - keyPair: any, - redeemScript: any, + keyPair: ECPair, + redeemScript: Buffer, hashType: number, value: number, - signatureAlgorithm: number + signatureAlgorithm?: number ): void build(): any } @@ -140,8 +140,8 @@ export class TransactionBuilder implements TransactionBuilder { sign( vin: number, - keyPair: any, - redeemScript: any, + keyPair: ECPair, + redeemScript: Buffer, hashType: number = this.hashTypes.SIGHASH_ALL, value: number, signatureAlgorithm: number From cf4a9427cfa48d44093fbf9bf34e1322a158c62a Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 12:00:44 +0900 Subject: [PATCH 315/480] Fixing ts errors. --- lib/ECPair.ts | 5 +++-- lib/HDNode.ts | 21 ++++++--------------- 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/lib/ECPair.ts b/lib/ECPair.ts index fa80c2a2..8d70da3f 100644 --- a/lib/ECPair.ts +++ b/lib/ECPair.ts @@ -6,7 +6,7 @@ export type ECSignature = any export interface ECPair { _address: any fromWIF(privateKeyWIF: string): ECPair - toWif(): string + toWIF(): string toWIF(ecpair: ECPair): string sign(sigHash: number): ECSignature sign(ecpair: ECPair, sigHash: number): ECSignature @@ -17,12 +17,13 @@ export interface ECPair { fromPublicKey(pubkeyBuffer: Buffer): ECPair toPublicKey(): Buffer toPublicKey(ecpair: ECPair): Buffer + getPublicKeyBuffer(): Buffer toLegacyAddress(): string toLegacyAddress(ecpair: ECPair): string toCashAddress(): string toCashAddress(ecpair: ECPair, regtest?: boolean): string + getAddress(): string } - export class ECPair implements ECPair { static _address: any static setAddress(address: any): void { diff --git a/lib/HDNode.ts b/lib/HDNode.ts index f8f81cff..43c297ed 100644 --- a/lib/HDNode.ts +++ b/lib/HDNode.ts @@ -6,42 +6,33 @@ import { ECPair, ECSignature } from "./ECPair" export interface HDNode { _address: any + keypair: any fromSeed(rootSeedBuffer: Buffer, network?: string): HDNode - toLegacyAddress(): string toLegacyAddress(hdNode: HDNode): string - toCashAddress(): string toCashAddress(hdNode: HDNode, regtest?: boolean): string - toWIF(): string toWIF(hdNode: HDNode): string - toXPub(): string toXPub(hdNode: HDNode): string - toXPriv(): string toXPriv(hdNode: HDNode): string - toKeyPair(): ECPair toKeyPair(hdNode: HDNode): ECPair - toPublicKey(): Buffer toPublicKey(hdNode: HDNode): Buffer fromXPriv(xpriv: string): HDNode fromXPub(xpub: string): HDNode - derivePath(path: string): HDNode derivePath(hdNode: HDNode, path: string): HDNode - derive(num: number): HDNode derive(hdNode: HDNode, num: number): HDNode - deriveHardened(num: number): HDNode deriveHardened(hdNode: HDNode, num: number): HDNode - sign(buffer: Buffer): ECSignature sign(hdNode: HDNode, buffer: Buffer): ECSignature - verify(buffer: Buffer, signature: ECSignature): boolean verify(hdNode: HDNode, buffer: Buffer, signature: ECSignature): boolean - isPublic(): boolean isPublic(hdNode: HDNode): boolean - isPrivate(): boolean isPrivate(hdNode: HDNode): boolean - toIdentifier(): string toIdentifier(hdNode: HDNode): string fromBase58(base58: string, network: string): string createAccount(hdNodes: Array): object createChain(hdNode: HDNode): object + getAddress(): any + getIdentifier(): string + isNeutered(): string + getPublicKeyBuffer(): string + toBase58(): string } export class HDNode implements HDNode { From 791e2219e6ed99543ad5adcc2edc126fb806e303 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 12:40:01 +0900 Subject: [PATCH 316/480] Fixes. --- lib/HDNode.ts | 84 +++++++++++++++++++++------------------------------ 1 file changed, 34 insertions(+), 50 deletions(-) diff --git a/lib/HDNode.ts b/lib/HDNode.ts index 43c297ed..93d01ddc 100644 --- a/lib/HDNode.ts +++ b/lib/HDNode.ts @@ -4,44 +4,28 @@ const bip32utils = require("bip32-utils") import { Buffer } from "buffer" import { ECPair, ECSignature } from "./ECPair" -export interface HDNode { - _address: any - keypair: any - fromSeed(rootSeedBuffer: Buffer, network?: string): HDNode - toLegacyAddress(hdNode: HDNode): string - toCashAddress(hdNode: HDNode, regtest?: boolean): string - toWIF(hdNode: HDNode): string - toXPub(hdNode: HDNode): string - toXPriv(hdNode: HDNode): string - toKeyPair(hdNode: HDNode): ECPair - toPublicKey(hdNode: HDNode): Buffer - fromXPriv(xpriv: string): HDNode - fromXPub(xpub: string): HDNode - derivePath(hdNode: HDNode, path: string): HDNode - derive(hdNode: HDNode, num: number): HDNode - deriveHardened(hdNode: HDNode, num: number): HDNode - sign(hdNode: HDNode, buffer: Buffer): ECSignature - verify(hdNode: HDNode, buffer: Buffer, signature: ECSignature): boolean - isPublic(hdNode: HDNode): boolean - isPrivate(hdNode: HDNode): boolean - toIdentifier(hdNode: HDNode): string - fromBase58(base58: string, network: string): string - createAccount(hdNodes: Array): object - createChain(hdNode: HDNode): object +export interface HDNodeBCL { + keyPair: any getAddress(): any - getIdentifier(): string - isNeutered(): string - getPublicKeyBuffer(): string - toBase58(): string + isNeutered(): any + getIdentifier(): any + verify(buffer: any, signature: any): any + deriveHardened(path: any): any + sign(buffer: any): any + toBase58(): any + neutered(): any + getPublicKeyBuffer(): any + derivePath(path: any): any + derive(path: any): any } -export class HDNode implements HDNode { +export class HDNode { _address: any constructor(address: any) { this._address = address } - fromSeed(rootSeedBuffer: any, network: string = "mainnet"): HDNode { + fromSeed(rootSeedBuffer: any, network: string = "mainnet"): HDNodeBCL { let bitcoincash: any if (network === "bitcoincash" || network === "mainnet") bitcoincash = coininfo.bitcoincash.main @@ -54,35 +38,35 @@ export class HDNode implements HDNode { ) } - toLegacyAddress(hdNode: HDNode): string { + toLegacyAddress(hdNode: HDNodeBCL): string { return hdNode.getAddress() } - toCashAddress(hdNode: HDNode, regtest: boolean = false): string { + toCashAddress(hdNode: HDNodeBCL, regtest: boolean = false): string { return this._address.toCashAddress(hdNode.getAddress(), true, regtest) } - toWIF(hdNode: HDNode): string { + toWIF(hdNode: HDNodeBCL): string { return hdNode.keyPair.toWIF() } - toXPub(hdNode: HDNode): string { + toXPub(hdNode: HDNodeBCL): string { return hdNode.neutered().toBase58() } - toXPriv(hdNode: HDNode): string { + toXPriv(hdNode: HDNodeBCL): string { return hdNode.toBase58() } - toKeyPair(hdNode: HDNode): ECPair { + toKeyPair(hdNode: HDNodeBCL): ECPair { return hdNode.keyPair } - toPublicKey(hdNode: HDNode): Buffer { + toPublicKey(hdNode: HDNodeBCL): Buffer { return hdNode.getPublicKeyBuffer() } - fromXPriv(xpriv: string): HDNode { + fromXPriv(xpriv: string): HDNodeBCL { let bitcoincash: any if (xpriv[0] === "x") bitcoincash = coininfo.bitcoincash.main else if (xpriv[0] === "t") bitcoincash = coininfo.bitcoincash.test @@ -91,7 +75,7 @@ export class HDNode implements HDNode { return Bitcoin.HDNode.fromBase58(xpriv, bitcoincashBitcoinJSLib) } - fromXPub(xpub: string): HDNode { + fromXPub(xpub: string): HDNodeBCL { let bitcoincash: any if (xpub[0] === "x") bitcoincash = coininfo.bitcoincash.main else if (xpub[0] === "t") bitcoincash = coininfo.bitcoincash.test @@ -100,35 +84,35 @@ export class HDNode implements HDNode { return Bitcoin.HDNode.fromBase58(xpub, bitcoincashBitcoinJSLib) } - derivePath(hdnode: HDNode, path: string): HDNode { + derivePath(hdnode: HDNodeBCL, path: string): HDNodeBCL { return hdnode.derivePath(path) } - derive(hdnode: HDNode, path: string): HDNode { + derive(hdnode: HDNodeBCL, path: string): HDNodeBCL { return hdnode.derive(path) } - deriveHardened(hdnode: HDNode, path: string): HDNode { + deriveHardened(hdnode: HDNodeBCL, path: string): HDNodeBCL { return hdnode.deriveHardened(path) } - sign(hdnode: HDNode, buffer: Buffer): ECSignature { + sign(hdnode: HDNodeBCL, buffer: Buffer): ECSignature { return hdnode.sign(buffer) } - verify(hdnode: HDNode, buffer: Buffer, signature: ECSignature): boolean { + verify(hdnode: HDNodeBCL, buffer: Buffer, signature: ECSignature): boolean { return hdnode.verify(buffer, signature) } - isPublic(hdnode: HDNode): boolean { - return hdnode.isNeutered() + isPublic(hdnode: HDNodeBCL): boolean { + return JSON.parse(hdnode.isNeutered()) } - isPrivate(hdnode: HDNode): boolean { + isPrivate(hdnode: HDNodeBCL): boolean { return !hdnode.isNeutered() } - toIdentifier(hdnode: HDNode): string { + toIdentifier(hdnode: HDNodeBCL): string { return hdnode.getIdentifier() } @@ -136,14 +120,14 @@ export class HDNode implements HDNode { return Bitcoin.HDNode.fromBase58(base58, network) } - createAccount(hdNodes: HDNode[]): object { + createAccount(hdNodes: HDNodeBCL[]): object { const arr = hdNodes.map( (item: any, index: number) => new bip32utils.Chain(item.neutered()) ) return new bip32utils.Account(arr) } - createChain(hdNode: HDNode): object { + createChain(hdNode: HDNodeBCL): object { return new bip32utils.Chain(hdNode) } } From 059062a5d81f07f732052cae37dccbe04fcefeb8 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 12:56:20 +0900 Subject: [PATCH 317/480] Fixes. --- lib/BITBOX.ts | 93 ++++++++++++++++++++-------------------- test/unit/BitcoinCash.js | 36 ---------------- 2 files changed, 47 insertions(+), 82 deletions(-) diff --git a/lib/BITBOX.ts b/lib/BITBOX.ts index e676521e..2f1f1ef4 100644 --- a/lib/BITBOX.ts +++ b/lib/BITBOX.ts @@ -24,74 +24,75 @@ import { Wallet } from "./Wallet" import { Schnorr } from "./Schnorr" export interface BITBOX { - Address: any - BitcoinCash: any - Block: any - Blockchain: any - Control: any - Crypto: any + restURL: string + Address: Address + BitcoinCash: BitcoinCash + Block: Block + Blockchain: Blockchain + Control: Control + Crypto: Crypto ECPair: any - Generating: any - HDNode: any - Mining: any - Mnemonic: any - Price: any - RawTransactions: any - Script: any - Transaction: any + Generating: Generating + HDNode: HDNode + Mining: Mining + Mnemonic: Mnemonic + Price: Price + RawTransactions: RawTransactions + Script: Script + Transaction: Transaction TransactionBuilder: any - Util: any + Util: Util Socket: any - Wallet: any - Schnorr: any + Wallet: Wallet + Schnorr: Schnorr } export class BITBOX implements BITBOX { - Address: any - BitcoinCash: any - Block: any - Blockchain: any - Control: any - Crypto: any + restURL: string + Address: Address + BitcoinCash: BitcoinCash + Block: Block + Blockchain: Blockchain + Control: Control + Crypto: Crypto ECPair: any - Generating: any - HDNode: any - Mining: any - Mnemonic: any - Price: any - RawTransactions: any - Script: any - Transaction: any + Generating: Generating + HDNode: HDNode + Mining: Mining + Mnemonic: Mnemonic + Price: Price + RawTransactions: RawTransactions + Script: Script + Transaction: Transaction TransactionBuilder: any - Util: any + Util: Util Socket: any - Wallet: any - Schnorr: any + Wallet: Wallet + Schnorr: Schnorr constructor(config: IConfig = {}) { - let restURL: string if (config && config.restURL && config.restURL !== "") - restURL = config.restURL - else restURL = "https://rest.bitcoin.com/v2/" + this.restURL = config.restURL + else this.restURL = "https://rest.bitcoin.com/v2/" - this.Address = new Address(restURL) + this.Address = new Address(this.restURL) this.BitcoinCash = new BitcoinCash(this.Address) - this.Block = new Block(restURL) - this.Blockchain = new Blockchain(restURL) - this.Control = new Control(restURL) + this.Block = new Block(this.restURL) + this.Blockchain = new Blockchain(this.restURL) + this.Control = new Control(this.restURL) this.Crypto = Crypto this.ECPair = ECPair this.ECPair.setAddress(this.Address) - this.Generating = new Generating(restURL) + this.Generating = new Generating(this.restURL) this.HDNode = new HDNode(this.Address) - this.Mining = new Mining(restURL) + this.Mining = new Mining(this.restURL) this.Mnemonic = new Mnemonic(this.Address) this.Price = new Price() - this.RawTransactions = new RawTransactions(restURL) + this.RawTransactions = new RawTransactions(this.restURL) this.Script = new Script() - this.Transaction = new Transaction(restURL) + this.Transaction = new Transaction(this.restURL) this.TransactionBuilder = TransactionBuilder this.TransactionBuilder.setAddress(this.Address) - this.Util = new Util(restURL) + this.Util = new Util(this.restURL) this.Socket = Socket this.Wallet = Wallet this.Schnorr = new Schnorr() diff --git a/test/unit/BitcoinCash.js b/test/unit/BitcoinCash.js index b4f180a7..8a5ad748 100644 --- a/test/unit/BitcoinCash.js +++ b/test/unit/BitcoinCash.js @@ -82,42 +82,6 @@ describe("#BitcoinCash", () => { }) }) }) - - describe("#satsToBits", () => { - fixtures.conversion.satsToBits.bch.forEach(bch => { - it(`should convert ${bch[0]} BCH to ${bch[1]} bits`, () => { - assert.equal( - BITBOX.BitcoinCash.satsToBits(BITBOX.BitcoinCash.toSatoshi(bch[0])), - bch[1] - ) - }) - }) - - fixtures.conversion.satsToBits.strings.forEach(bch => { - it(`should convert "${bch[0]}" BCH as a string to ${ - bch[1] - } bits`, () => { - assert.equal( - BITBOX.BitcoinCash.satsToBits(BITBOX.BitcoinCash.toSatoshi(bch[0])), - bch[1] - ) - }) - }) - }) - // - // describe('#satsFromBits', () => { - // fixtures.conversion.satsFromBits.bch.forEach((bch) => { - // it(`should convert ${bch[1]} bits to ${bch[0]} satoshis`, () => { - // assert.equal(BITBOX.BitcoinCash.satsFromBits(bch[1]), bch[0]); - // }); - // }); - // - // fixtures.conversion.satsFromBits.strings.forEach((bch) => { - // it(`should convert "${bch[1]}" bits as a string to ${bch[0]} satoshis`, () => { - // assert.equal(BITBOX.BitcoinCash.satsFromBits(bch[1]), bch[0]); - // }); - // }); - // }); }) describe("sign and verify messages", () => { From e8fec48b4f320df03abbc0a42ebda4a3b1985dd5 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 13:01:49 +0900 Subject: [PATCH 318/480] randombytes. --- lib/Crypto.ts | 2 +- lib/Mnemonic.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/Crypto.ts b/lib/Crypto.ts index c8995bc5..19c75e4d 100644 --- a/lib/Crypto.ts +++ b/lib/Crypto.ts @@ -1,4 +1,4 @@ -const randomBytes = require("randomBytes") +const randomBytes = require("randombytes") const Bitcoin = require("bitcoincashjs-lib") import { Buffer } from "buffer" diff --git a/lib/Mnemonic.ts b/lib/Mnemonic.ts index d66ba9a6..22501c47 100644 --- a/lib/Mnemonic.ts +++ b/lib/Mnemonic.ts @@ -1,5 +1,5 @@ const BIP39 = require("bip39") -const randomBytes = require("randomBytes") +const randomBytes = require("randombytes") const Bitcoin = require("bitcoincashjs-lib") import { Buffer } from "buffer" const wif = require("wif") From 765ce7834fb131e7231733da7bb5aa65214a9379 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 13:23:44 +0900 Subject: [PATCH 319/480] gitgnore. --- .gitignore | 2 -- index.js | 2 +- index.js.map | 1 + index.ts | 2 +- package.json | 2 +- 5 files changed, 4 insertions(+), 5 deletions(-) create mode 100644 index.js.map diff --git a/.gitignore b/.gitignore index 9b13f8e6..aaf9d33e 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,4 @@ package-lock.json /dist lib/**/*.js -index.js -index.js.map lib/**/*.js.map diff --git a/index.js b/index.js index b4bb9f11..67992642 100755 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ var emoji = require("node-emoji"); var repl = require("repl"); var BITBOX = require("./lib/BITBOX").BITBOX; var clone = require("git-clone"); -program.version("7.0.0 ", "-v, --version"); +program.version("7.0.1 ", "-v, --version"); program .command("new ") .option("-s, --scaffold ", "The framework to use. Options include react, angular, vuejs, nextjs, node and websockets.") diff --git a/index.js.map b/index.js.map new file mode 100644 index 00000000..17a3291d --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;AACA,OAAO,CAAC,gBAAgB,CAAC,CAAA;AACzB,IAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,IAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;AACpC,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAC9B,IAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;AAChC,IAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;AAChC,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAC9B,IAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AACxB,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAC9B,IAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;AACnC,IAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,IAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,CAAA;AAC7C,IAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;AAElC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAA;AAE1C,OAAO;KACJ,OAAO,CAAC,YAAY,CAAC;KACrB,MAAM,CACL,2BAA2B,EAC3B,2FAA2F,CAC5F;KACA,MAAM,CACL,yBAAyB,EACzB,6DAA6D,CAC9D;KACA,MAAM,CACL,iCAAiC,EACjC,yFAAyF,CAC1F;KACA,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,UAAC,IAAS,EAAE,OAAY;IAC9B,IAAI,EAAE,CAAC,UAAU,CAAC,OAAK,IAAM,CAAC,EAAE;QAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAW,IAAI,oBAAiB,CAAC,CAAC,CAAA;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAChB;IAED,IAAI,MAAM,CAAA;IACV,IAAM,WAAW,GAAG,WAAW,CAAC,yBAAyB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IAC3E,IAAM,OAAO,GAAG,WAAW,CACzB,uCAAuC,EACvC,MAAM,EACN,OAAO,CACR,CAAA;IAED,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE;QAC/B,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAA;QAC7C,IAAI,IAAI,SAAA,CAAA;QACR,IAAM,IAAI,GAAG,EAAE,CAAA;QACf,IAAI,QAAQ,KAAK,MAAM,EAAE;YACvB,IAAI,GAAG,yDAAyD,CAAA;SACjE;aAAM,IAAI,QAAQ,KAAK,SAAS,EAAE;YACjC,IAAI,GAAG,4DAA4D,CAAA;SACpE;aAAM,IAAI,QAAQ,KAAK,MAAM,EAAE;YAC9B,IAAI,GAAG,yDAAyD,CAAA;SACjE;aAAM,IAAI,QAAQ,KAAK,OAAO,EAAE;YAC/B,IAAI,GAAG,0DAA0D,CAAA;SAClE;aAAM,IAAI,QAAQ,KAAK,KAAK,EAAE;YAC7B,IAAI,GAAG,wDAAwD,CAAA;SAChE;aAAM,IAAI,QAAQ,KAAK,YAAY,EAAE;YACpC,IAAI,GAAG,+DAA+D,CAAA;SACvE;aAAM;YACL,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAY,QAAQ,mBAAgB,CAAC,CAAC,CAAA;YAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SAChB;QAED,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE;YAC3B,QAAQ,GAAG,aAAa,CAAA;YACxB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;SAClC;QAED,KAAK,EAAE,CAAA;QACP,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACxB,IAAI,EAAE,KAAK;YACX,gBAAgB,EAAE,MAAM;SACzB,CAAC,CACH,CACF,CAAA;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAe,QAAQ,gBAAW,IAAM,CAAC,CAAC,CAAA;QACjE,KAAK,CAAC,IAAI,EAAE,OAAK,IAAM,EAAE,CAAC,IAAI,CAAC,EAAE,UAAC,GAAQ;YACxC,IAAI,GAAG,KAAK,2CAA2C,EAAE;gBACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAA;aACvE;iBAAM;gBACL,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAA;gBACtE,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,oEAAoE,CACrE,EACD,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CACtB,CAAA;aACF;QACH,CAAC,CAAC,CAAA;QACF,OAAM;KACP;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,cAAY,IAAI,gBAAa,CAAC,CAAC,CAAA;IACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gCAA8B,IAAI,SAAM,CAAC,CAAC,CAAA;IAClE,MAAM,CAAC,OAAK,IAAI,SAAM,EAAE,UAAC,GAAQ,IAAM,CAAC,CAAC,CAAA;IAEzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,kCAAgC,IAAI,WAAQ,CAAC,CAAC,CAAA;IACtE,MAAM,CAAC,OAAK,IAAI,WAAQ,EAAE,UAAC,GAAQ,IAAM,CAAC,CAAC,CAAA;IAE3C,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,8CAA4C,IAAI,eAAY,CAAC,CAC1E,CAAA;IAED,MAAM,CAAC,OAAK,IAAM,EAAE,UAAC,GAAQ,IAAM,CAAC,CAAC,CAAA;IACrC,KAAK,CAAC,OAAK,IAAI,eAAY,CAAC,CAAA;IAC5B,EAAE,CAAC,aAAa,CACd,OAAK,IAAI,eAAY,EACrB,gDAEA,WAAW,8BACC,OAAO,yBAIxB,CACI,CAAA;IACD,EAAE,CAAC,cAAc,CAAC,OAAK,IAAI,gBAAa,EAAE,kBAAkB,CAAC,CAAA;IAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAA;IACrE,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,mEAAmE,CACpE,EACD,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CACtB,CAAA;AACH,CAAC,CAAC,CAAA;AAEJ,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,MAAM,CACL,iCAAiC,EACjC,yFAAyF,CAC1F;KACA,WAAW,CAAC,wDAAwD,CAAC;KACrE,MAAM,CAAC,UAAC,OAAY;IACnB,IAAI,MAAM,CAAA;IACV,IAAI;QACF,MAAM,GAAG,OAAO,CAAI,OAAO,CAAC,GAAG,EAAE,eAAY,CAAC,CAAC,MAAM,CAAA;KACtD;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,qDAAqD,CAAC,CACjE,CAAA;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAChB;IACD,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACnC,IAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,kBAAkB,CAAC,CAAA;IAChE,OAAO,CAAC,cAAc,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;IAEhD,IAAM,WAAW,GAAG,WAAW,CAAC,yBAAyB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IAE3E,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAA;AAC1E,CAAC,CAAC,CAAA;AAEJ,SAAS,WAAW,CAAC,EAAO,EAAE,MAAW,EAAE,OAAY;IACrD,IAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC3B,IAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IACpB,IAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IAC3B,IAAI,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAA;SAC3C,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAExE,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAE3B,iCAAiC;AACjC,0DAA0D;AAE1D,MAAM,CAAC,OAAO,GAAG,MAAM,CAAA"} \ No newline at end of file diff --git a/index.ts b/index.ts index 836e88c5..e360b633 100755 --- a/index.ts +++ b/index.ts @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOX = require("./lib/BITBOX").BITBOX const clone = require("git-clone") -program.version("7.0.0 ", "-v, --version") +program.version("7.0.1 ", "-v, --version") program .command("new ") diff --git a/package.json b/package.json index 97c88d26..2058f2a2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.0.0", + "version": "7.0.1", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ From 8eb71ea48d8e9b2f1ef55b795e4eef494dadebd0 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 13:35:51 +0900 Subject: [PATCH 320/480] fixes. --- index.ts | 2 +- package.json | 2 +- yarn.lock | 645 ++++++++++++++++++++++++++++----------------------- 3 files changed, 351 insertions(+), 298 deletions(-) diff --git a/index.ts b/index.ts index e360b633..0c28c799 100755 --- a/index.ts +++ b/index.ts @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOX = require("./lib/BITBOX").BITBOX const clone = require("git-clone") -program.version("7.0.1 ", "-v, --version") +program.version("7.0.2 ", "-v, --version") program .command("new ") diff --git a/package.json b/package.json index 2058f2a2..44cd4211 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.0.1", + "version": "7.0.2", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ diff --git a/yarn.lock b/yarn.lock index 894a4194..819b8363 100644 --- a/yarn.lock +++ b/yarn.lock @@ -92,8 +92,8 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" "@octokit/endpoint@^5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-5.1.0.tgz#242e32e9d5e2aa9a3075a3de086f198f423d7e39" + version "5.1.1" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-5.1.1.tgz#bd96a67d141bd897fd5357501fcea44791870925" dependencies: deepmerge "3.2.0" is-plain-object "^3.0.0" @@ -166,19 +166,19 @@ url-join "^4.0.0" "@semantic-release/npm@^5.0.5": - version "5.1.4" - resolved "https://registry.yarnpkg.com/@semantic-release/npm/-/npm-5.1.4.tgz#970b62765e6c5d51f94e1c14d3bc1f5a224e2ed0" + version "5.1.7" + resolved "https://registry.yarnpkg.com/@semantic-release/npm/-/npm-5.1.7.tgz#ed3bac977d46294bfd11df7621bb5a9b6d5523be" dependencies: "@semantic-release/error" "^2.2.0" - aggregate-error "^2.0.0" + aggregate-error "^3.0.0" execa "^1.0.0" fs-extra "^7.0.0" lodash "^4.17.4" nerf-dart "^1.0.0" normalize-url "^4.0.0" - npm "6.5.0" + npm "^6.8.0" rc "^1.2.8" - read-pkg "^4.0.0" + read-pkg "^5.0.0" registry-auth-token "^3.3.1" "@semantic-release/release-notes-generator@^7.1.2": @@ -250,7 +250,11 @@ version "10.14.6" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.6.tgz#9cbfcb62c50947217f4d88d4d274cc40c22625a9" -JSONStream@^1.0.3, JSONStream@^1.0.4, JSONStream@^1.3.4: +"@types/normalize-package-data@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" + +JSONStream@^1.0.3, JSONStream@^1.0.4, JSONStream@^1.3.4, JSONStream@^1.3.5: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" dependencies: @@ -330,6 +334,13 @@ aggregate-error@^2.0.0: clean-stack "^2.0.0" indent-string "^3.0.0" +aggregate-error@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.0.tgz#5b5a3c95e9095f311c9ab16c19fb4f3527cd3f79" + dependencies: + clean-stack "^2.0.0" + indent-string "^3.2.0" + ajv-keywords@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" @@ -405,11 +416,11 @@ append-transform@^1.0.0: dependencies: default-require-extensions "^2.0.0" -aproba@^1.0.3, aproba@^1.1.1, aproba@^1.1.2, aproba@~1.2.0: +aproba@^1.0.3, aproba@^1.1.1, aproba@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" -"aproba@^1.1.2 || 2": +"aproba@^1.1.2 || 2", aproba@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" @@ -535,19 +546,13 @@ assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" -assert@^1.4.0: +assert@^1.4.0, assert@^1.4.1: version "1.5.0" resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" dependencies: object-assign "^4.1.1" util "0.10.3" -assert@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" - dependencies: - util "0.10.3" - assertion-error@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" @@ -1218,7 +1223,7 @@ binary-extensions@^1.0.0: version "1.13.1" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" -bindings@^1.2.1: +bindings@^1.2.1, bindings@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" dependencies: @@ -1270,7 +1275,7 @@ bip39@^2.5.0: safe-buffer "^5.0.1" unorm "^1.3.3" -bip66@^1.1.0, bip66@^1.1.3, bip66@^1.1.5: +bip66@^1.1.0, bip66@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/bip66/-/bip66-1.1.5.tgz#01fa8748785ca70955d5011217d1b3139969ca22" dependencies: @@ -1328,7 +1333,7 @@ bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.5.3: version "3.5.4" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.4.tgz#d6cc661595de30d5b3af5fcedd3c0b3ef6ec5714" -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.11.3, bn.js@^4.4.0: +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.11.8, bn.js@^4.4.0: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" @@ -1553,7 +1558,7 @@ buffer@^5.0.2, buffer@^5.1.0: base64-js "^1.0.2" ieee754 "^1.1.4" -builtin-modules@^1.0.0, builtin-modules@^1.1.1: +builtin-modules@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" @@ -1569,29 +1574,11 @@ byline@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1" -byte-size@^4.0.3: - version "4.0.4" - resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-4.0.4.tgz#29d381709f41aae0d89c631f1c81aec88cd40b23" - -cacache@^10.0.4: - version "10.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" - dependencies: - bluebird "^3.5.1" - chownr "^1.0.1" - glob "^7.1.2" - graceful-fs "^4.1.11" - lru-cache "^4.1.1" - mississippi "^2.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.2" - ssri "^5.2.4" - unique-filename "^1.1.0" - y18n "^4.0.0" +byte-size@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-5.0.1.tgz#4b651039a5ecd96767e71a3d7ed380e48bed4191" -cacache@^11.0.1, cacache@^11.0.2, cacache@^11.2.0: +cacache@^11.0.1, cacache@^11.3.2: version "11.3.2" resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.2.tgz#2d81e308e3d258ca38125b676b98b2ac9ce69bfa" dependencies: @@ -1782,18 +1769,18 @@ chokidar@^1.6.1: optionalDependencies: fsevents "^1.0.0" -chownr@^1.0.1, chownr@^1.1.1: +chownr@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" -chownr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" - -ci-info@^1.5.0, ci-info@^1.6.0: +ci-info@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + cidr-regex@^2.0.10: version "2.0.10" resolved "https://registry.yarnpkg.com/cidr-regex/-/cidr-regex-2.0.10.tgz#af13878bd4ad704de77d6dc800799358b3afa70d" @@ -1845,7 +1832,7 @@ cli-cursor@^2.1.0: dependencies: restore-cursor "^2.0.0" -cli-table3@^0.5.0: +cli-table3@^0.5.0, cli-table3@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" dependencies: @@ -1983,7 +1970,7 @@ concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -concat-stream@^1.5.0, concat-stream@^1.5.2, concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@~1.6.0: +concat-stream@^1.5.0, concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@~1.6.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" dependencies: @@ -2159,7 +2146,7 @@ create-error-class@^3.0.0: dependencies: capture-stack-trace "^1.0.0" -create-hash@^1.1.0, create-hash@^1.1.1, create-hash@^1.1.2: +create-hash@^1.1.0, create-hash@^1.1.1, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" dependencies: @@ -2281,7 +2268,7 @@ debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.0: dependencies: ms "^2.1.1" -debuglog@^1.0.1: +debuglog@*, debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" @@ -2546,10 +2533,10 @@ editor@~1.0.0: resolved "https://registry.yarnpkg.com/editor/-/editor-1.0.0.tgz#60c7f87bd62bcc6a894fa8ccd6afb7823a24f742" electron-to-chromium@^1.3.47: - version "1.3.131" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.131.tgz#205a0b7a276b3f56bc056f19178909243054252a" + version "1.3.133" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.133.tgz#c47639c19b91feee3e22fad69f5556142007008c" -elliptic@^6.0.0, elliptic@^6.2.3: +elliptic@^6.0.0, elliptic@^6.4.1: version "6.4.1" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" dependencies: @@ -3062,7 +3049,7 @@ fast-levenshtein@~2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" -figgy-pudding@^3.0.0, figgy-pudding@^3.1.0, figgy-pudding@^3.4.1, figgy-pudding@^3.5.1: +figgy-pudding@^3.4.1, figgy-pudding@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" @@ -3361,12 +3348,18 @@ get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" -get-stream@^4.0.0: +get-stream@^4.0.0, get-stream@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" dependencies: pump "^3.0.0" +get-stream@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" + dependencies: + pump "^3.0.0" + get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -3614,9 +3607,9 @@ home-or-tmp@^2.0.0: os-homedir "^1.0.0" os-tmpdir "^1.0.1" -hook-std@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/hook-std/-/hook-std-1.2.0.tgz#b37d533ea5f40068fe368cb4d022ee1992588c27" +hook-std@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hook-std/-/hook-std-2.0.0.tgz#ff9aafdebb6a989a354f729bb6445cf4a3a7077c" hosted-git-info@^2.1.4, hosted-git-info@^2.6.0, hosted-git-info@^2.7.1: version "2.7.1" @@ -3649,7 +3642,7 @@ https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" -https-proxy-agent@^2.2.0, https-proxy-agent@^2.2.1: +https-proxy-agent@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0" dependencies: @@ -3718,11 +3711,11 @@ import-lazy@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" -imurmurhash@^0.1.4: +imurmurhash@*, imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" -indent-string@^3.0.0: +indent-string@^3.0.0, indent-string@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" @@ -3845,7 +3838,7 @@ ip-regex@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" -ip@^1.1.4, ip@^1.1.5: +ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" @@ -3875,12 +3868,6 @@ is-buffer@^1.1.0, is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" -is-builtin-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" - dependencies: - builtin-modules "^1.0.0" - is-callable@^1.1.3, is-callable@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" @@ -3891,9 +3878,9 @@ is-ci@^1.0.10: dependencies: ci-info "^1.5.0" -is-cidr@^2.0.6: - version "2.0.7" - resolved "https://registry.yarnpkg.com/is-cidr/-/is-cidr-2.0.7.tgz#0fd4b863c26b2eb2d157ed21060c4f3f8dd356ce" +is-cidr@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-cidr/-/is-cidr-3.0.0.tgz#1acf35c9e881063cd5f696d48959b30fed3eed56" dependencies: cidr-regex "^2.0.10" @@ -4380,31 +4367,116 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -libcipm@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/libcipm/-/libcipm-2.0.2.tgz#4f38c2b37acf2ec156936cef1cbf74636568fc7b" +libcipm@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/libcipm/-/libcipm-3.0.3.tgz#2e764effe0b90d458790dab3165794c804075ed3" dependencies: bin-links "^1.1.2" bluebird "^3.5.1" + figgy-pudding "^3.5.1" find-npm-prefix "^1.0.2" graceful-fs "^4.1.11" + ini "^1.3.5" lock-verify "^2.0.2" mkdirp "^0.5.1" npm-lifecycle "^2.0.3" npm-logical-tree "^1.2.1" npm-package-arg "^6.1.0" - pacote "^8.1.6" - protoduck "^5.0.0" + pacote "^9.1.0" read-package-json "^2.0.13" rimraf "^2.6.2" worker-farm "^1.6.0" -libnpmhook@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-4.0.1.tgz#63641654de772cbeb96a88527a7fd5456ec3c2d7" +libnpm@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/libnpm/-/libnpm-2.0.1.tgz#a48fcdee3c25e13c77eb7c60a0efe561d7fb0d8f" + dependencies: + bin-links "^1.1.2" + bluebird "^3.5.3" + find-npm-prefix "^1.0.2" + libnpmaccess "^3.0.1" + libnpmconfig "^1.2.1" + libnpmhook "^5.0.2" + libnpmorg "^1.0.0" + libnpmpublish "^1.1.0" + libnpmsearch "^2.0.0" + libnpmteam "^1.0.1" + lock-verify "^2.0.2" + npm-lifecycle "^2.1.0" + npm-logical-tree "^1.2.1" + npm-package-arg "^6.1.0" + npm-profile "^4.0.1" + npm-registry-fetch "^3.8.0" + npmlog "^4.1.2" + pacote "^9.2.3" + read-package-json "^2.0.13" + stringify-package "^1.0.0" + +libnpmaccess@*, libnpmaccess@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-3.0.1.tgz#5b3a9de621f293d425191aa2e779102f84167fa8" + dependencies: + aproba "^2.0.0" + get-stream "^4.0.0" + npm-package-arg "^6.1.0" + npm-registry-fetch "^3.8.0" + +libnpmconfig@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/libnpmconfig/-/libnpmconfig-1.2.1.tgz#c0c2f793a74e67d4825e5039e7a02a0044dfcbc0" + dependencies: + figgy-pudding "^3.5.1" + find-up "^3.0.0" + ini "^1.3.5" + +libnpmhook@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-5.0.2.tgz#d12817b0fb893f36f1d5be20017f2aea25825d94" + dependencies: + aproba "^2.0.0" + figgy-pudding "^3.4.1" + get-stream "^4.0.0" + npm-registry-fetch "^3.8.0" + +libnpmorg@*, libnpmorg@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-1.0.0.tgz#979b868c48ba28c5820e3bb9d9e73c883c16a232" + dependencies: + aproba "^2.0.0" + figgy-pudding "^3.4.1" + get-stream "^4.0.0" + npm-registry-fetch "^3.8.0" + +libnpmpublish@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-1.1.1.tgz#ff0c6bb0b4ad2bda2ad1f5fba6760a4af37125f0" dependencies: - figgy-pudding "^3.1.0" - npm-registry-fetch "^3.0.0" + aproba "^2.0.0" + figgy-pudding "^3.5.1" + get-stream "^4.0.0" + lodash.clonedeep "^4.5.0" + normalize-package-data "^2.4.0" + npm-package-arg "^6.1.0" + npm-registry-fetch "^3.8.0" + semver "^5.5.1" + ssri "^6.0.1" + +libnpmsearch@*, libnpmsearch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-2.0.0.tgz#de05af47ada81554a5f64276a69599070d4a5685" + dependencies: + figgy-pudding "^3.5.1" + get-stream "^4.0.0" + npm-registry-fetch "^3.8.0" + +libnpmteam@*, libnpmteam@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-1.0.1.tgz#ff704b1b6c06ea674b3b1101ac3e305f5114f213" + dependencies: + aproba "^2.0.0" + figgy-pudding "^3.4.1" + get-stream "^4.0.0" + npm-registry-fetch "^3.8.0" libnpx@^10.2.0: version "10.2.0" @@ -4451,7 +4523,7 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" -lock-verify@^2.0.2: +lock-verify@^2.0.2, lock-verify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/lock-verify/-/lock-verify-2.1.0.tgz#fff4c918b8db9497af0c5fa7f6d71555de3ceb47" dependencies: @@ -4464,6 +4536,10 @@ lockfile@^1.0.4: dependencies: signal-exit "^3.0.2" +lodash._baseindexof@*: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c" + lodash._baseuniq@~4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8" @@ -4471,10 +4547,28 @@ lodash._baseuniq@~4.6.0: lodash._createset "~4.0.0" lodash._root "~3.0.0" +lodash._bindcallback@*: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" + +lodash._cacheindexof@*: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92" + +lodash._createcache@*: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093" + dependencies: + lodash._getnative "^3.0.0" + lodash._createset@~4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" +lodash._getnative@*, lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + lodash._root@~3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" @@ -4483,7 +4577,7 @@ lodash.capitalize@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz#f826c9b4e2a8511d84e3aca29db05e1a4f3b72a9" -lodash.clonedeep@~4.5.0: +lodash.clonedeep@^4.5.0, lodash.clonedeep@~4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" @@ -4511,6 +4605,10 @@ lodash.memoize@~3.0.3: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" +lodash.restparam@*: + version "3.6.1" + resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" + lodash.set@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" @@ -4564,7 +4662,7 @@ lowercase-keys@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" -lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@^4.1.2, lru-cache@^4.1.3: +lru-cache@^4.0.1, lru-cache@^4.1.2, lru-cache@^4.1.3, lru-cache@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" dependencies: @@ -4594,7 +4692,7 @@ make-dir@^2.0.0, make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" -"make-fetch-happen@^2.5.0 || 3 || 4", make-fetch-happen@^4.0.1: +make-fetch-happen@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz#141497cb878f243ba93136c83d8aba12c216c083" dependencies: @@ -4610,22 +4708,6 @@ make-dir@^2.0.0, make-dir@^2.1.0: socks-proxy-agent "^4.0.0" ssri "^6.0.0" -make-fetch-happen@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-3.0.0.tgz#7b661d2372fc4710ab5cc8e1fa3c290eea69a961" - dependencies: - agentkeepalive "^3.4.1" - cacache "^10.0.4" - http-cache-semantics "^3.8.1" - http-proxy-agent "^2.1.0" - https-proxy-agent "^2.2.0" - lru-cache "^4.1.2" - mississippi "^3.0.0" - node-fetch-npm "^2.0.2" - promise-retry "^1.1.1" - socks-proxy-agent "^3.0.1" - ssri "^5.2.4" - map-age-cleaner@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" @@ -4837,7 +4919,7 @@ minimist@~0.0.1: version "0.0.10" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" -minipass@^2.2.1, minipass@^2.3.3, minipass@^2.3.4: +minipass@^2.2.1, minipass@^2.3.4, minipass@^2.3.5: version "2.3.5" resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" dependencies: @@ -4850,21 +4932,6 @@ minizlib@^1.1.1: dependencies: minipass "^2.2.1" -mississippi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f" - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^2.0.1" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - mississippi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" @@ -4960,7 +5027,7 @@ mute-stream@~0.0.4: version "0.0.8" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" -nan@^2.12.1, nan@^2.2.1: +nan@^2.12.1, nan@^2.13.2, nan@^2.2.1: version "2.13.2" resolved "https://registry.yarnpkg.com/nan/-/nan-2.13.2.tgz#f51dc7ae66ba7d5d55e1e6d4d8092e802c9aefe7" @@ -5075,6 +5142,22 @@ node-gyp@^3.8.0: tar "^2.0.0" which "1" +node-gyp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-4.0.0.tgz#972654af4e5dd0cd2a19081b4b46fe0442ba6f45" + dependencies: + glob "^7.0.3" + graceful-fs "^4.1.2" + mkdirp "^0.5.0" + nopt "2 || 3" + npmlog "0 || 1 || 2 || 3 || 4" + osenv "0" + request "^2.87.0" + rimraf "2" + semver "~5.3.0" + tar "^4.4.8" + which "1" + node-mocks-http@^1.7.0: version "1.7.5" resolved "https://registry.yarnpkg.com/node-mocks-http/-/node-mocks-http-1.7.5.tgz#ff1cc6ba8570f7def27d131403edcf86940829b6" @@ -5123,7 +5206,7 @@ nopt@~1.0.10: dependencies: abbrev "1" -normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.4.0, "normalize-package-data@~1.0.1 || ^2.0.0": +normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.4.0, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" dependencies: @@ -5132,15 +5215,6 @@ normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package- semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-package-data@~2.4.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.2.tgz#6b2abd85774e51f7936f1395e45acb905dc849b2" - dependencies: - 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@^2.0.0, normalize-path@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" @@ -5151,7 +5225,7 @@ normalize-url@^4.0.0: version "4.3.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.3.0.tgz#9c49e10fc1876aeb76dba88bf1b2b5d9fa57b2ee" -npm-audit-report@^1.3.1: +npm-audit-report@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-1.3.2.tgz#303bc78cd9e4c226415076a4f7e528c89fc77018" dependencies: @@ -5173,12 +5247,12 @@ npm-install-checks@~3.0.0: semver "^2.3.0 || 3.x || 4 || 5" npm-lifecycle@^2.0.3, npm-lifecycle@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-2.1.0.tgz#1eda2eedb82db929e3a0c50341ab0aad140ed569" + version "2.1.1" + resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-2.1.1.tgz#0027c09646f0fd346c5c93377bdaba59c6748fdf" dependencies: byline "^5.0.0" - graceful-fs "^4.1.11" - node-gyp "^3.8.0" + graceful-fs "^4.1.15" + node-gyp "^4.0.0" resolve-from "^4.0.0" slide "^1.1.6" uid-number "0.0.6" @@ -5189,7 +5263,7 @@ npm-logical-tree@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/npm-logical-tree/-/npm-logical-tree-1.2.1.tgz#44610141ca24664cad35d1e607176193fd8f5b88" -"npm-package-arg@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0", "npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0", npm-package-arg@^6.0.0, npm-package-arg@^6.1.0: +"npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0", npm-package-arg@^6.0.0, npm-package-arg@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.0.tgz#15ae1e2758a5027efb4c250554b85a737db7fcc1" dependencies: @@ -5198,14 +5272,14 @@ npm-logical-tree@^1.2.1: semver "^5.5.0" validate-npm-package-name "^3.0.0" -npm-packlist@^1.1.10, npm-packlist@^1.1.12, npm-packlist@^1.1.6: +npm-packlist@^1.1.12, npm-packlist@^1.1.6, npm-packlist@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.1.tgz#19064cdf988da80ea3cee45533879d90192bbfbc" dependencies: ignore-walk "^3.0.1" npm-bundled "^1.0.1" -npm-pick-manifest@^2.1.0: +npm-pick-manifest@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-2.2.3.tgz#32111d2a9562638bb2c8f2bf27f7f3092c8fae40" dependencies: @@ -5213,43 +5287,15 @@ npm-pick-manifest@^2.1.0: npm-package-arg "^6.0.0" semver "^5.4.1" -npm-profile@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-3.0.2.tgz#58d568f1b56ef769602fd0aed8c43fa0e0de0f57" +npm-profile@*, npm-profile@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-4.0.1.tgz#d350f7a5e6b60691c7168fbb8392c3603583f5aa" dependencies: aproba "^1.1.2 || 2" - make-fetch-happen "^2.5.0 || 3 || 4" - -npm-registry-client@^8.6.0: - version "8.6.0" - resolved "https://registry.yarnpkg.com/npm-registry-client/-/npm-registry-client-8.6.0.tgz#7f1529f91450732e89f8518e0f21459deea3e4c4" - dependencies: - concat-stream "^1.5.2" - graceful-fs "^4.1.6" - normalize-package-data "~1.0.1 || ^2.0.0" - npm-package-arg "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" - once "^1.3.3" - request "^2.74.0" - retry "^0.10.0" - safe-buffer "^5.1.1" - semver "2 >=2.2.1 || 3.x || 4 || 5" - slide "^1.1.3" - ssri "^5.2.4" - optionalDependencies: - npmlog "2 || ^3.1.0 || ^4.0.0" - -npm-registry-fetch@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-1.1.1.tgz#710bc5947d9ee2c549375072dab6d5d17baf2eb2" - dependencies: - bluebird "^3.5.1" - figgy-pudding "^3.0.0" - lru-cache "^4.1.2" - make-fetch-happen "^3.0.0" - npm-package-arg "^6.0.0" - safe-buffer "^5.1.1" + figgy-pudding "^3.4.1" + npm-registry-fetch "^3.8.0" -npm-registry-fetch@^3.0.0: +npm-registry-fetch@^3.8.0, npm-registry-fetch@^3.9.0: version "3.9.0" resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-3.9.0.tgz#44d841780e2833f06accb34488f8c7450d1a6856" dependencies: @@ -5270,25 +5316,25 @@ npm-user-validate@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-1.0.0.tgz#8ceca0f5cea04d4e93519ef72d0557a75122e951" -npm@6.5.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/npm/-/npm-6.5.0.tgz#30ed48d4cd4d17d68ee04a5fcf9fa2ca9167d819" +npm@^6.8.0: + version "6.9.0" + resolved "https://registry.yarnpkg.com/npm/-/npm-6.9.0.tgz#5296720486814a64a7fb082de00c4b5cfd11211f" dependencies: - JSONStream "^1.3.4" + JSONStream "^1.3.5" abbrev "~1.1.1" ansicolors "~0.3.2" ansistyles "~0.1.3" - aproba "~1.2.0" + aproba "^2.0.0" archy "~1.0.0" bin-links "^1.1.2" bluebird "^3.5.3" - byte-size "^4.0.3" - cacache "^11.2.0" + byte-size "^5.0.1" + cacache "^11.3.2" call-limit "~1.1.0" - chownr "~1.0.1" - ci-info "^1.6.0" + chownr "^1.1.1" + ci-info "^2.0.0" cli-columns "^3.1.2" - cli-table3 "^0.5.0" + cli-table3 "^0.5.1" cmd-shim "~2.0.2" columnify "~1.5.4" config-chain "^1.1.12" @@ -5310,59 +5356,58 @@ npm@6.5.0: inherits "~2.0.3" ini "^1.3.5" init-package-json "^1.10.3" - is-cidr "^2.0.6" + is-cidr "^3.0.0" json-parse-better-errors "^1.0.2" lazy-property "~1.0.0" - libcipm "^2.0.2" - libnpmhook "^4.0.1" + libcipm "^3.0.3" + libnpm "^2.0.1" + libnpmhook "^5.0.2" libnpx "^10.2.0" - lock-verify "^2.0.2" + lock-verify "^2.1.0" lockfile "^1.0.4" lodash._baseuniq "~4.6.0" lodash.clonedeep "~4.5.0" lodash.union "~4.6.0" lodash.uniq "~4.5.0" lodash.without "~4.4.0" - lru-cache "^4.1.3" + lru-cache "^4.1.5" meant "~1.0.1" mississippi "^3.0.0" mkdirp "~0.5.1" move-concurrently "^1.0.1" node-gyp "^3.8.0" nopt "~4.0.1" - normalize-package-data "~2.4.0" - npm-audit-report "^1.3.1" + normalize-package-data "^2.5.0" + npm-audit-report "^1.3.2" npm-cache-filename "~1.0.2" npm-install-checks "~3.0.0" npm-lifecycle "^2.1.0" npm-package-arg "^6.1.0" - npm-packlist "^1.1.12" - npm-pick-manifest "^2.1.0" - npm-profile "^3.0.2" - npm-registry-client "^8.6.0" - npm-registry-fetch "^1.1.0" + npm-packlist "^1.4.1" + npm-pick-manifest "^2.2.3" + npm-registry-fetch "^3.9.0" npm-user-validate "~1.0.0" npmlog "~4.1.2" once "~1.4.0" opener "^1.5.1" osenv "^0.1.5" - pacote "^8.1.6" + pacote "^9.5.0" path-is-inside "~1.0.2" promise-inflight "~1.0.1" qrcode-terminal "^0.12.0" - query-string "^6.1.0" + query-string "^6.2.0" qw "~1.0.1" read "~1.0.7" read-cmd-shim "~1.0.1" read-installed "~4.0.3" read-package-json "^2.0.13" - read-package-tree "^5.2.1" - readable-stream "^2.3.6" + read-package-tree "^5.2.2" + readable-stream "^3.1.1" request "^2.88.0" retry "^0.12.0" - rimraf "~2.6.2" + rimraf "^2.6.3" safe-buffer "^5.1.2" - semver "^5.5.1" + semver "^5.6.0" sha "~2.0.1" slide "~1.1.6" sorted-object "~2.0.1" @@ -5374,7 +5419,7 @@ npm@6.5.0: tiny-relative-date "^1.3.0" uid-number "0.0.6" umask "~1.1.0" - unique-filename "~1.1.0" + unique-filename "^1.1.1" unpipe "~1.0.0" update-notifier "^2.5.0" uuid "^3.3.2" @@ -5382,9 +5427,9 @@ npm@6.5.0: validate-npm-package-name "~3.0.0" which "^1.3.1" worker-farm "^1.6.0" - write-file-atomic "^2.3.0" + write-file-atomic "^2.4.2" -"npmlog@0 || 1 || 2 || 3 || 4", "npmlog@2 || ^3.1.0 || ^4.0.0", npmlog@^4.0.2, npmlog@~4.1.2: +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.2, npmlog@^4.1.2, npmlog@~4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" dependencies: @@ -5398,8 +5443,8 @@ number-is-nan@^1.0.0: resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" nyc@*: - version "14.1.0" - resolved "https://registry.yarnpkg.com/nyc/-/nyc-14.1.0.tgz#ae864913a4c5a947bfaebeb66a488bdb1868c9a3" + version "14.1.1" + resolved "https://registry.yarnpkg.com/nyc/-/nyc-14.1.1.tgz#151d64a6a9f9f5908a1b73233931e4a0a3075eeb" dependencies: archy "^1.0.0" caching-transform "^3.0.2" @@ -5507,7 +5552,7 @@ octokit-pagination-methods@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4" -once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0, once@~1.4.0: +once@^1.3.0, once@^1.3.1, once@^1.4.0, once@~1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: @@ -5615,7 +5660,7 @@ p-limit@^1.1.0: dependencies: p-try "^1.0.0" -p-limit@^2.0.0: +p-limit@^2.0.0, p-limit@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" dependencies: @@ -5633,13 +5678,19 @@ p-locate@^3.0.0: dependencies: p-limit "^2.0.0" +p-locate@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + dependencies: + p-limit "^2.2.0" + p-map@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" -p-reduce@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" +p-reduce@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-2.1.0.tgz#09408da49507c6c274faa31f28df334bc712b64a" p-retry@^3.0.0: version "3.0.1" @@ -5673,35 +5724,37 @@ package-json@^4.0.0: registry-url "^3.0.3" semver "^5.1.0" -pacote@^8.1.6: - version "8.1.6" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-8.1.6.tgz#8e647564d38156367e7a9dc47a79ca1ab278d46e" +pacote@^9.1.0, pacote@^9.2.3, pacote@^9.5.0: + version "9.5.0" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-9.5.0.tgz#85f3013a3f6dd51c108b0ccabd3de8102ddfaeda" dependencies: - bluebird "^3.5.1" - cacache "^11.0.2" - get-stream "^3.0.0" - glob "^7.1.2" - lru-cache "^4.1.3" + bluebird "^3.5.3" + cacache "^11.3.2" + figgy-pudding "^3.5.1" + get-stream "^4.1.0" + glob "^7.1.3" + lru-cache "^5.1.1" make-fetch-happen "^4.0.1" minimatch "^3.0.4" - minipass "^2.3.3" + minipass "^2.3.5" mississippi "^3.0.0" mkdirp "^0.5.1" normalize-package-data "^2.4.0" npm-package-arg "^6.1.0" - npm-packlist "^1.1.10" - npm-pick-manifest "^2.1.0" + npm-packlist "^1.1.12" + npm-pick-manifest "^2.2.3" + npm-registry-fetch "^3.8.0" osenv "^0.1.5" promise-inflight "^1.0.1" promise-retry "^1.1.1" - protoduck "^5.0.0" + protoduck "^5.0.1" rimraf "^2.6.2" safe-buffer "^5.1.2" - semver "^5.5.0" - ssri "^6.0.0" - tar "^4.4.3" - unique-filename "^1.1.0" - which "^1.3.0" + semver "^5.6.0" + ssri "^6.0.1" + tar "^4.4.8" + unique-filename "^1.1.1" + which "^1.3.1" pako@~1.0.5: version "1.0.10" @@ -5968,7 +6021,7 @@ proto-list@~1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" -protoduck@^5.0.0: +protoduck@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/protoduck/-/protoduck-5.0.1.tgz#03c3659ca18007b69a50fd82a7ebcc516261151f" dependencies: @@ -5997,7 +6050,7 @@ public-encrypt@^4.0.0: randombytes "^2.0.1" safe-buffer "^5.1.2" -pump@^2.0.0, pump@^2.0.1: +pump@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" dependencies: @@ -6063,7 +6116,7 @@ qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" -query-string@^6.1.0: +query-string@^6.2.0: version "6.5.0" resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.5.0.tgz#2e1a70125af01f6f04573692d02c09302a1d8bfc" dependencies: @@ -6165,7 +6218,7 @@ read-only-stream@^2.0.0: optionalDependencies: graceful-fs "^4.1.2" -read-package-tree@^5.2.1: +read-package-tree@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.2.2.tgz#4b6a0ef2d943c1ea36a578214c9a7f6b7424f7a8" dependencies: @@ -6196,6 +6249,13 @@ read-pkg-up@^4.0.0: find-up "^3.0.0" read-pkg "^3.0.0" +read-pkg-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-5.0.0.tgz#b6a6741cb144ed3610554f40162aa07a6db621b8" + dependencies: + find-up "^3.0.0" + read-pkg "^5.0.0" + read-pkg@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" @@ -6212,13 +6272,14 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" -read-pkg@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-4.0.1.tgz#963625378f3e1c4d48c85872b5a6ec7d5d093237" +read-pkg@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.1.1.tgz#5cf234dde7a405c90c88a519ab73c467e9cb83f5" dependencies: - normalize-package-data "^2.3.2" + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" parse-json "^4.0.0" - pify "^3.0.0" + type-fest "^0.4.1" read@1, read@~1.0.1, read@~1.0.7: version "1.0.7" @@ -6238,6 +6299,14 @@ read@1, read@~1.0.1, read@~1.0.7: string_decoder "~1.1.1" util-deprecate "~1.0.1" +readable-stream@^3.1.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.3.0.tgz#cb8011aad002eb717bf040291feba8569c986fb9" + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readable-stream@~1.1.10: version "1.1.14" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" @@ -6247,7 +6316,7 @@ readable-stream@~1.1.10: isarray "0.0.1" string_decoder "~0.10.x" -readdir-scoped-modules@^1.0.0: +readdir-scoped-modules@*, readdir-scoped-modules@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747" dependencies: @@ -6373,7 +6442,7 @@ repl.history@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/repl.history/-/repl.history-0.1.4.tgz#80367171f3781d6e4299c71758c253097f5d5832" -request@^2.74.0, request@^2.86.0, request@^2.87.0, request@^2.88.0: +request@^2.86.0, request@^2.87.0, request@^2.88.0: version "2.88.0" resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" dependencies: @@ -6429,6 +6498,10 @@ resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" @@ -6508,8 +6581,8 @@ rx-lite@*, rx-lite@^4.0.8: resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" rxjs@^6.4.0: - version "6.5.1" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.1.tgz#f7a005a9386361921b8524f38f54cbf80e5d08f4" + version "6.5.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" dependencies: tslib "^1.9.0" @@ -6546,48 +6619,48 @@ scryptsy@^2.0.0: resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-2.0.0.tgz#262c36f0231cfa7654e2363fa394cd2dec66f378" secp256k1@^3.0.1: - version "3.6.2" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.6.2.tgz#da835061c833c74a12f75c73d2ec2e980f00dc1f" + version "3.7.0" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.7.0.tgz#e85972f847b586cc4b2acd69497d3f80afaa7505" dependencies: - bindings "^1.2.1" - bip66 "^1.1.3" - bn.js "^4.11.3" - create-hash "^1.1.2" + bindings "^1.5.0" + bip66 "^1.1.5" + bn.js "^4.11.8" + create-hash "^1.2.0" drbg.js "^1.0.1" - elliptic "^6.2.3" - nan "^2.2.1" - safe-buffer "^5.1.0" + elliptic "^6.4.1" + nan "^2.13.2" + safe-buffer "^5.1.2" semantic-release@^15.13.3: - version "15.13.3" - resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-15.13.3.tgz#412720b9c09f39f04df67478fa409a914107e05b" + version "15.13.12" + resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-15.13.12.tgz#1128361fc36301ef3a1ea137dd277bdddf9f68c1" dependencies: "@semantic-release/commit-analyzer" "^6.1.0" "@semantic-release/error" "^2.2.0" "@semantic-release/github" "^5.1.0" "@semantic-release/npm" "^5.0.5" "@semantic-release/release-notes-generator" "^7.1.2" - aggregate-error "^2.0.0" + aggregate-error "^3.0.0" cosmiconfig "^5.0.1" debug "^4.0.0" env-ci "^3.0.0" execa "^1.0.0" figures "^2.0.0" find-versions "^3.0.0" - get-stream "^4.0.0" + get-stream "^5.0.0" git-log-parser "^1.2.0" - hook-std "^1.1.0" + hook-std "^2.0.0" hosted-git-info "^2.7.1" lodash "^4.17.4" marked "^0.6.0" marked-terminal "^3.2.0" - p-locate "^3.0.0" - p-reduce "^1.0.0" - read-pkg-up "^4.0.0" - resolve-from "^4.0.0" - semver "^5.4.1" + p-locate "^4.0.0" + p-reduce "^2.0.0" + read-pkg-up "^5.0.0" + resolve-from "^5.0.0" + semver "^6.0.0" signale "^1.2.1" - yargs "^12.0.0" + yargs "^13.1.0" semver-diff@^2.0.0: version "2.1.0" @@ -6599,7 +6672,7 @@ semver-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" -"semver@2 >=2.2.1 || 3.x || 4 || 5", "semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: version "5.7.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" @@ -6723,7 +6796,7 @@ slice-ansi@^2.1.0: astral-regex "^1.0.0" is-fullwidth-code-point "^2.0.0" -slide@^1.1.3, slide@^1.1.6, slide@~1.1.3, slide@~1.1.6: +slide@^1.1.6, slide@~1.1.3, slide@~1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" @@ -6731,10 +6804,6 @@ smart-buffer@4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.0.2.tgz#5207858c3815cc69110703c6b94e46c15634395d" -smart-buffer@^1.0.13: - version "1.1.15" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-1.1.15.tgz#7f114b5b65fab3e2a35aa775bb12f0d1c649bf16" - snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -6804,13 +6873,6 @@ socket.io@^2.1.1: socket.io-client "2.2.0" socket.io-parser "~3.3.0" -socks-proxy-agent@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz#2eae7cf8e2a82d34565761539a7f9718c5617659" - dependencies: - agent-base "^4.1.0" - socks "^1.1.10" - socks-proxy-agent@^4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386" @@ -6818,13 +6880,6 @@ socks-proxy-agent@^4.0.0: agent-base "~4.2.1" socks "~2.3.2" -socks@^1.1.10: - version "1.1.10" - resolved "https://registry.yarnpkg.com/socks/-/socks-1.1.10.tgz#5b8b7fc7c8f341c53ed056e929b7bf4de8ba7b5a" - dependencies: - ip "^1.1.4" - smart-buffer "^1.0.13" - socks@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/socks/-/socks-2.3.2.tgz#ade388e9e6d87fdb11649c15746c578922a5883e" @@ -6954,12 +7009,6 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" -ssri@^5.2.4: - version "5.3.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" - dependencies: - safe-buffer "^5.1.1" - ssri@^6.0.0, ssri@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" @@ -7187,8 +7236,8 @@ table@4.0.2: string-width "^2.1.1" table@^5.2.3: - version "5.2.3" - resolved "https://registry.yarnpkg.com/table/-/table-5.2.3.tgz#cde0cc6eb06751c009efab27e8c820ca5b67b7f2" + version "5.3.2" + resolved "https://registry.yarnpkg.com/table/-/table-5.3.2.tgz#3aab56a41b2905bf66a6a006bd716fa1e78d4702" dependencies: ajv "^6.9.1" lodash "^4.17.11" @@ -7221,7 +7270,7 @@ tar@^2.0.0: fstream "^1.0.2" inherits "2" -tar@^4, tar@^4.4.3, tar@^4.4.8: +tar@^4, tar@^4.4.8: version "4.4.8" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d" dependencies: @@ -7382,6 +7431,10 @@ type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" +type-fest@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.4.1.tgz#8bdf77743385d8a4f13ba95f610f5ccd68c728f8" + type-is@^1.6.16: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -7443,7 +7496,7 @@ uniq@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" -unique-filename@^1.1.0, unique-filename@^1.1.1, unique-filename@~1.1.0: +unique-filename@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" dependencies: @@ -7462,8 +7515,8 @@ unique-string@^1.0.0: crypto-random-string "^1.0.0" universal-user-agent@^2.0.0, universal-user-agent@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-2.0.3.tgz#9f6f09f9cc33de867bb720d84c08069b14937c6c" + version "2.1.0" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-2.1.0.tgz#5abfbcc036a1ba490cb941f8fd68c46d3669e8e4" dependencies: os-name "^3.0.0" @@ -7544,7 +7597,7 @@ user-home@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" -util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -7765,7 +7818,7 @@ yargs@^11.0.0: y18n "^3.2.1" yargs-parser "^9.0.2" -yargs@^12.0.0, yargs@^12.0.5: +yargs@^12.0.5: version "12.0.5" resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" dependencies: @@ -7782,7 +7835,7 @@ yargs@^12.0.0, yargs@^12.0.5: y18n "^3.2.1 || ^4.0.0" yargs-parser "^11.1.1" -yargs@^13.2.2: +yargs@^13.1.0, yargs@^13.2.2: version "13.2.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.2.tgz#0c101f580ae95cea7f39d927e7770e3fdc97f993" dependencies: From 3362879a00552f1f81b27daa002f80f05b4386db Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 13:41:12 +0900 Subject: [PATCH 321/480] Bump v. --- .gitignore | 3 +- index.ts | 2 +- package-lock.json | 2 +- package.json | 2 +- yarn.lock | 7856 --------------------------------------------- 5 files changed, 5 insertions(+), 7860 deletions(-) delete mode 100644 yarn.lock diff --git a/.gitignore b/.gitignore index aaf9d33e..dcdee63c 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,8 @@ node_modules/* wallet-info.txt wallet.json -package-lock.json +# package-lock.json +yarn-lock.json # production /dist diff --git a/index.ts b/index.ts index 0c28c799..1e58b076 100755 --- a/index.ts +++ b/index.ts @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOX = require("./lib/BITBOX").BITBOX const clone = require("git-clone") -program.version("7.0.2 ", "-v, --version") +program.version("7.0.3 ", "-v, --version") program .command("new ") diff --git a/package-lock.json b/package-lock.json index 63879c69..92fb7d3c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.0.0", + "version": "7.0.3", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 44cd4211..f1268b67 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.0.2", + "version": "7.0.3", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 819b8363..00000000 --- a/yarn.lock +++ /dev/null @@ -1,7856 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/code-frame@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" - dependencies: - "@babel/highlight" "^7.0.0" - -"@babel/generator@^7.4.0", "@babel/generator@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.4.tgz#174a215eb843fc392c7edcaabeaa873de6e8f041" - dependencies: - "@babel/types" "^7.4.4" - jsesc "^2.5.1" - lodash "^4.17.11" - source-map "^0.5.0" - trim-right "^1.0.1" - -"@babel/helper-function-name@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" - dependencies: - "@babel/helper-get-function-arity" "^7.0.0" - "@babel/template" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-get-function-arity@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-split-export-declaration@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677" - dependencies: - "@babel/types" "^7.4.4" - -"@babel/highlight@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" - dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^4.0.0" - -"@babel/parser@^7.4.3", "@babel/parser@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.4.tgz#5977129431b8fe33471730d255ce8654ae1250b6" - -"@babel/template@^7.1.0", "@babel/template@^7.4.0": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.4.4" - "@babel/types" "^7.4.4" - -"@babel/traverse@^7.4.3": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.4.tgz#0776f038f6d78361860b6823887d4f3937133fe8" - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.4.4" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.4.4" - "@babel/parser" "^7.4.4" - "@babel/types" "^7.4.4" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.11" - -"@babel/types@^7.0.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.4.tgz#8db9e9a629bb7c29370009b4b779ed93fe57d5f0" - dependencies: - esutils "^2.0.2" - lodash "^4.17.11" - to-fast-properties "^2.0.0" - -"@mrmlnc/readdir-enhanced@^2.2.1": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" - dependencies: - call-me-maybe "^1.0.1" - glob-to-regexp "^0.3.0" - -"@nodelib/fs.stat@^1.1.2": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" - -"@octokit/endpoint@^5.1.0": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-5.1.1.tgz#bd96a67d141bd897fd5357501fcea44791870925" - dependencies: - deepmerge "3.2.0" - is-plain-object "^3.0.0" - universal-user-agent "^2.0.1" - url-template "^2.0.8" - -"@octokit/request@3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-3.0.2.tgz#dd2424691f486d7ea332ec06e3de55b1ea13c5dc" - dependencies: - "@octokit/endpoint" "^5.1.0" - deprecation "^1.0.1" - is-plain-object "^3.0.0" - node-fetch "^2.3.0" - once "^1.4.0" - universal-user-agent "^2.0.1" - -"@octokit/rest@^16.13.1": - version "16.25.3" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.25.3.tgz#ce9e7a6230d20d58574ec929f622f2778ead7eb4" - dependencies: - "@octokit/request" "3.0.2" - atob-lite "^2.0.0" - before-after-hook "^1.4.0" - btoa-lite "^1.0.0" - deprecation "^1.0.1" - lodash.get "^4.4.2" - lodash.set "^4.3.2" - lodash.uniq "^4.5.0" - octokit-pagination-methods "^1.1.0" - once "^1.4.0" - universal-user-agent "^2.0.0" - url-template "^2.0.8" - -"@semantic-release/commit-analyzer@^6.1.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@semantic-release/commit-analyzer/-/commit-analyzer-6.1.0.tgz#32bbe3c23da86e23edf072fbb276fa2f383fcb17" - dependencies: - conventional-changelog-angular "^5.0.0" - conventional-commits-filter "^2.0.0" - conventional-commits-parser "^3.0.0" - debug "^4.0.0" - import-from "^2.1.0" - lodash "^4.17.4" - -"@semantic-release/error@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@semantic-release/error/-/error-2.2.0.tgz#ee9d5a09c9969eade1ec864776aeda5c5cddbbf0" - -"@semantic-release/github@^5.1.0": - version "5.2.10" - resolved "https://registry.yarnpkg.com/@semantic-release/github/-/github-5.2.10.tgz#bf325f11685d59b864c8946d7d30fcb749d89e37" - dependencies: - "@octokit/rest" "^16.13.1" - "@semantic-release/error" "^2.2.0" - aggregate-error "^2.0.0" - bottleneck "^2.0.1" - debug "^4.0.0" - dir-glob "^2.0.0" - fs-extra "^7.0.0" - globby "^9.0.0" - http-proxy-agent "^2.1.0" - https-proxy-agent "^2.2.1" - issue-parser "^3.0.0" - lodash "^4.17.4" - mime "^2.0.3" - p-filter "^1.0.0" - p-retry "^3.0.0" - parse-github-url "^1.0.1" - url-join "^4.0.0" - -"@semantic-release/npm@^5.0.5": - version "5.1.7" - resolved "https://registry.yarnpkg.com/@semantic-release/npm/-/npm-5.1.7.tgz#ed3bac977d46294bfd11df7621bb5a9b6d5523be" - dependencies: - "@semantic-release/error" "^2.2.0" - aggregate-error "^3.0.0" - execa "^1.0.0" - fs-extra "^7.0.0" - lodash "^4.17.4" - nerf-dart "^1.0.0" - normalize-url "^4.0.0" - npm "^6.8.0" - rc "^1.2.8" - read-pkg "^5.0.0" - registry-auth-token "^3.3.1" - -"@semantic-release/release-notes-generator@^7.1.2": - version "7.1.4" - resolved "https://registry.yarnpkg.com/@semantic-release/release-notes-generator/-/release-notes-generator-7.1.4.tgz#8f4f752c5a8385abdaac1256127cef05988bc2ad" - dependencies: - conventional-changelog-angular "^5.0.0" - conventional-changelog-writer "^4.0.0" - conventional-commits-filter "^2.0.0" - conventional-commits-parser "^3.0.0" - debug "^4.0.0" - get-stream "^4.0.0" - import-from "^2.1.0" - into-stream "^4.0.0" - lodash "^4.17.4" - -"@sinonjs/commons@^1", "@sinonjs/commons@^1.0.2": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.4.0.tgz#7b3ec2d96af481d7a0321252e7b1c94724ec5a78" - dependencies: - type-detect "4.0.8" - -"@sinonjs/formatio@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-2.0.0.tgz#84db7e9eb5531df18a8c5e0bfb6e449e55e654b2" - dependencies: - samsam "1.3.0" - -"@sinonjs/formatio@^3.1.0": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-3.2.1.tgz#52310f2f9bcbc67bdac18c94ad4901b95fde267e" - dependencies: - "@sinonjs/commons" "^1" - "@sinonjs/samsam" "^3.1.0" - -"@sinonjs/samsam@^3.1.0": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-3.3.1.tgz#e88c53fbd9d91ad9f0f2b0140c16c7c107fe0d07" - dependencies: - "@sinonjs/commons" "^1.0.2" - array-from "^2.1.1" - lodash "^4.17.11" - -"@sinonjs/text-encoding@^0.7.1": - version "0.7.1" - resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" - -"@types/events@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" - -"@types/glob@^7.1.1": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" - dependencies: - "@types/events" "*" - "@types/minimatch" "*" - "@types/node" "*" - -"@types/minimatch@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - -"@types/node@*": - version "12.0.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.0.0.tgz#d11813b9c0ff8aaca29f04cbc12817f4c7d656e5" - -"@types/node@^10.11.7": - version "10.14.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.6.tgz#9cbfcb62c50947217f4d88d4d274cc40c22625a9" - -"@types/normalize-package-data@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" - -JSONStream@^1.0.3, JSONStream@^1.0.4, JSONStream@^1.3.4, JSONStream@^1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - -abbrev@1, abbrev@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - -accepts@^1.3.5, accepts@~1.3.4: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - -acorn-dynamic-import@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948" - -acorn-jsx@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" - dependencies: - acorn "^3.0.4" - -acorn-jsx@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e" - -acorn-node@^1.2.0, acorn-node@^1.3.0, acorn-node@^1.5.2, acorn-node@^1.6.1: - version "1.6.2" - resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.6.2.tgz#b7d7ceca6f22e6417af933a62cad4de01048d5d2" - dependencies: - acorn "^6.0.2" - acorn-dynamic-import "^4.0.0" - acorn-walk "^6.1.0" - xtend "^4.0.1" - -acorn-walk@^6.1.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.1.tgz#d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913" - -acorn@^3.0.4: - version "3.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" - -acorn@^5.5.0: - version "5.7.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" - -acorn@^6.0.2, acorn@^6.0.7: - version "6.1.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f" - -after@0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" - -agent-base@4, agent-base@^4.1.0, agent-base@~4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" - dependencies: - es6-promisify "^5.0.0" - -agentkeepalive@^3.4.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.5.2.tgz#a113924dd3fa24a0bc3b78108c450c2abee00f67" - dependencies: - humanize-ms "^1.2.1" - -aggregate-error@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-2.2.0.tgz#f54b464db18cc77c907ae084451f39134707134a" - dependencies: - clean-stack "^2.0.0" - indent-string "^3.0.0" - -aggregate-error@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.0.tgz#5b5a3c95e9095f311c9ab16c19fb4f3527cd3f79" - dependencies: - clean-stack "^2.0.0" - indent-string "^3.2.0" - -ajv-keywords@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" - -ajv@^5.2.3, ajv@^5.3.0: - version "5.5.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" - dependencies: - co "^4.6.0" - fast-deep-equal "^1.0.0" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" - -ajv@^6.5.5, ajv@^6.9.1: - version "6.10.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1" - dependencies: - fast-deep-equal "^2.0.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-align@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" - dependencies: - string-width "^2.0.0" - -ansi-escapes@^3.0.0, ansi-escapes@^3.1.0, ansi-escapes@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - dependencies: - color-convert "^1.9.0" - -ansicolors@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" - -ansistyles@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/ansistyles/-/ansistyles-0.1.3.tgz#5de60415bda071bb37127854c864f41b23254539" - -anymatch@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" - dependencies: - micromatch "^2.1.5" - normalize-path "^2.0.0" - -append-transform@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab" - dependencies: - default-require-extensions "^2.0.0" - -aproba@^1.0.3, aproba@^1.1.1, aproba@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - -"aproba@^1.1.2 || 2", aproba@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" - -archy@^1.0.0, archy@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" - -are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - dependencies: - sprintf-js "~1.0.2" - -argv-formatter@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/argv-formatter/-/argv-formatter-1.0.0.tgz#a0ca0cbc29a5b73e836eebe1cbf6c5e0e4eb82f9" - -arr-diff@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - dependencies: - arr-flatten "^1.0.1" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - -arr-flatten@^1.0.1, arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - -array-filter@~0.0.0: - version "0.0.1" - resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" - -array-find-index@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" - -array-from@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" - -array-ify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" - -array-includes@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" - dependencies: - define-properties "^1.1.2" - es-abstract "^1.7.0" - -array-map@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" - -array-reduce@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" - -array-union@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - -array-uniq@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-2.1.0.tgz#46603d5e28e79bfd02b046fcc1d77c6820bd8e98" - -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - -arraybuffer.slice@~0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" - -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - -asap@^2.0.0: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - -assert@^1.4.0, assert@^1.4.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - dependencies: - object-assign "^4.1.1" - util "0.10.3" - -assertion-error@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - -async-each@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - -async-limiter@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - -atob-lite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/atob-lite/-/atob-lite-2.0.0.tgz#0fef5ad46f1bd7a8502c65727f0367d5ee43d696" - -atob@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - -aws4@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" - -axios@^0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.17.1.tgz#2d8e3e5d0bdbd7327f91bc814f5c57660f81824d" - dependencies: - follow-redirects "^1.2.5" - is-buffer "^1.1.5" - -babel-cli@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" - dependencies: - babel-core "^6.26.0" - babel-polyfill "^6.26.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - commander "^2.11.0" - convert-source-map "^1.5.0" - fs-readdir-recursive "^1.0.0" - glob "^7.1.2" - lodash "^4.17.4" - output-file-sync "^1.1.2" - path-is-absolute "^1.0.1" - slash "^1.0.0" - source-map "^0.5.6" - v8flags "^2.1.1" - optionalDependencies: - chokidar "^1.6.1" - -babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@^6.26.0: - version "6.26.3" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.1" - debug "^2.6.9" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.8" - slash "^1.0.0" - source-map "^0.5.7" - -babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" - dependencies: - babel-helper-explode-assignable-expression "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-define-map@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-explode-assignable-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-remap-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-replace-supers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" - dependencies: - babel-helper-optimise-call-expression "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-check-es2015-constants@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" - -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" - -babel-plugin-syntax-trailing-function-commas@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" - -babel-plugin-transform-async-to-generator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-arrow-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoping@^6.23.0, babel-plugin-transform-es2015-block-scoping@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" - dependencies: - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-plugin-transform-es2015-classes@^6.23.0, babel-plugin-transform-es2015-classes@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - dependencies: - babel-helper-define-map "^6.24.1" - babel-helper-function-name "^6.24.1" - babel-helper-optimise-call-expression "^6.24.1" - babel-helper-replace-supers "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-computed-properties@^6.22.0, babel-plugin-transform-es2015-computed-properties@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-destructuring@^6.22.0, babel-plugin-transform-es2015-destructuring@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-duplicate-keys@^6.22.0, babel-plugin-transform-es2015-duplicate-keys@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-for-of@^6.22.0, babel-plugin-transform-es2015-for-of@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-function-name@^6.22.0, babel-plugin-transform-es2015-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-es2015-modules-systemjs@^6.23.0, babel-plugin-transform-es2015-modules-systemjs@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-umd@^6.23.0, babel-plugin-transform-es2015-modules-umd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" - dependencies: - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-object-super@^6.22.0, babel-plugin-transform-es2015-object-super@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" - dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-parameters@^6.23.0, babel-plugin-transform-es2015-parameters@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" - dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-shorthand-properties@^6.22.0, babel-plugin-transform-es2015-shorthand-properties@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-sticky-regex@^6.22.0, babel-plugin-transform-es2015-sticky-regex@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-typeof-symbol@^6.22.0, babel-plugin-transform-es2015-typeof-symbol@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-unicode-regex@^6.22.0, babel-plugin-transform-es2015-unicode-regex@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" - -babel-plugin-transform-exponentiation-operator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" - dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" - babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-regenerator@^6.22.0, babel-plugin-transform-regenerator@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" - dependencies: - regenerator-transform "^0.10.0" - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-polyfill@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" - dependencies: - babel-runtime "^6.26.0" - core-js "^2.5.0" - regenerator-runtime "^0.10.5" - -babel-preset-env@^1.6.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-to-generator "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.23.0" - babel-plugin-transform-es2015-classes "^6.23.0" - babel-plugin-transform-es2015-computed-properties "^6.22.0" - babel-plugin-transform-es2015-destructuring "^6.23.0" - babel-plugin-transform-es2015-duplicate-keys "^6.22.0" - babel-plugin-transform-es2015-for-of "^6.23.0" - babel-plugin-transform-es2015-function-name "^6.22.0" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.22.0" - babel-plugin-transform-es2015-modules-commonjs "^6.23.0" - babel-plugin-transform-es2015-modules-systemjs "^6.23.0" - babel-plugin-transform-es2015-modules-umd "^6.23.0" - babel-plugin-transform-es2015-object-super "^6.22.0" - babel-plugin-transform-es2015-parameters "^6.23.0" - babel-plugin-transform-es2015-shorthand-properties "^6.22.0" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.22.0" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.23.0" - babel-plugin-transform-es2015-unicode-regex "^6.22.0" - babel-plugin-transform-exponentiation-operator "^6.22.0" - babel-plugin-transform-regenerator "^6.22.0" - browserslist "^3.2.6" - invariant "^2.2.2" - semver "^5.3.0" - -babel-preset-es2015@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.24.1" - babel-plugin-transform-es2015-classes "^6.24.1" - babel-plugin-transform-es2015-computed-properties "^6.24.1" - babel-plugin-transform-es2015-destructuring "^6.22.0" - babel-plugin-transform-es2015-duplicate-keys "^6.24.1" - babel-plugin-transform-es2015-for-of "^6.22.0" - babel-plugin-transform-es2015-function-name "^6.24.1" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-plugin-transform-es2015-modules-systemjs "^6.24.1" - babel-plugin-transform-es2015-modules-umd "^6.24.1" - babel-plugin-transform-es2015-object-super "^6.24.1" - babel-plugin-transform-es2015-parameters "^6.24.1" - babel-plugin-transform-es2015-shorthand-properties "^6.24.1" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.24.1" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.22.0" - babel-plugin-transform-es2015-unicode-regex "^6.24.1" - babel-plugin-transform-regenerator "^6.24.1" - -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - -babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.24.1, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - -backo2@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - -base-x@^3.0.2: - version "3.0.5" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.5.tgz#d3ada59afed05b921ab581ec3112e6444ba0795a" - dependencies: - safe-buffer "^5.0.1" - -base64-arraybuffer@0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" - -base64-js@^1.0.2: - version "1.3.0" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" - -base64id@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -bc-bip68@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/bc-bip68/-/bc-bip68-1.0.5.tgz#4d3774067d8c9e922e225f5f2c4178ee9ae8dc94" - -bch-wallet-bridge-provider-interface@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/bch-wallet-bridge-provider-interface/-/bch-wallet-bridge-provider-interface-0.1.1.tgz#5f1fb2a9738829611111c0ff9886228c3bd494aa" - -"bch-wallet-bridge.js@github:web3bch/bch-wallet-bridge.js#master": - version "0.1.1" - resolved "https://codeload.github.com/web3bch/bch-wallet-bridge.js/tar.gz/f73558eaf3a98ba2a23de3c9cbbd582b30ff19eb" - dependencies: - bch-wallet-bridge-provider-interface "^0.1.1" - bchaddrjs "^0.2.2" - bitcoincashjs "^0.1.10" - -bchaddrjs@^0.2.2: - version "0.2.3" - resolved "https://registry.yarnpkg.com/bchaddrjs/-/bchaddrjs-0.2.3.tgz#c3008ac85d7c7e583e83a30604c427b5bed26c68" - dependencies: - bs58check "^2.1.2" - cashaddrjs "^0.2.9" - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - dependencies: - tweetnacl "^0.14.3" - -bech32@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.3.tgz#bd47a8986bbb3eec34a56a097a84b8d3e9a2dfcd" - -before-after-hook@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-1.4.0.tgz#2b6bf23dca4f32e628fd2747c10a37c74a4b484d" - -better-assert@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" - dependencies: - callsite "1.0.0" - -big-integer@^1.6.34: - version "1.6.43" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.43.tgz#8ac15bf13e93e509500859061233e19d8d0d99d1" - -big.js@^3.1.3: - version "3.2.0" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" - -bigi@^1.1.0, bigi@^1.2.0, bigi@^1.4.0, bigi@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/bigi/-/bigi-1.4.2.tgz#9c665a95f88b8b08fc05cfd731f561859d725825" - -bin-links@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-1.1.2.tgz#fb74bd54bae6b7befc6c6221f25322ac830d9757" - dependencies: - bluebird "^3.5.0" - cmd-shim "^2.0.2" - gentle-fs "^2.0.0" - graceful-fs "^4.1.11" - write-file-atomic "^2.3.0" - -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - -bindings@^1.2.1, bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - dependencies: - file-uri-to-path "1.0.0" - -bip-schnorr@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/bip-schnorr/-/bip-schnorr-0.3.0.tgz#e6490379603704e9dd123d874b41755aea4f352c" - dependencies: - ecurve "^1.0.6" - js-sha256 "^0.9.0" - random-bytes "^1.0.0" - safe-buffer "^5.0.1" - -bip21@Bitcoin-com/bip21: - version "2.0.1" - resolved "https://codeload.github.com/Bitcoin-com/bip21/tar.gz/28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f" - dependencies: - qs "^6.3.0" - -bip32-utils@Bitcoin-com/bip32-utils#0.13.1: - version "0.13.1" - resolved "https://codeload.github.com/Bitcoin-com/bip32-utils/tar.gz/b8a33ebd0a0ac39de7cd987e5c3f77a8c5d84e58" - dependencies: - keccak "^1.3.0" - nyc "*" - standard "^11.0.1" - tape "*" - -bip38@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/bip38/-/bip38-2.0.2.tgz#6f7762bc90b0bdf63b489ff95349354aecf9baee" - dependencies: - bigi "^1.2.0" - browserify-aes "^1.0.1" - bs58check "<3.0.0" - buffer-xor "^1.0.2" - create-hash "^1.1.1" - ecurve "^1.0.0" - scryptsy "^2.0.0" - -bip39@^2.5.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/bip39/-/bip39-2.6.0.tgz#9e3a720b42ec8b3fbe4038f1e445317b6a99321c" - dependencies: - create-hash "^1.1.0" - pbkdf2 "^3.0.9" - randombytes "^2.0.1" - safe-buffer "^5.0.1" - unorm "^1.3.3" - -bip66@^1.1.0, bip66@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/bip66/-/bip66-1.1.5.tgz#01fa8748785ca70955d5011217d1b3139969ca22" - dependencies: - safe-buffer "^5.0.1" - -bitcoincash-ops@Bitcoin-com/bitcoincash-ops#2.0.0: - version "2.0.0" - resolved "https://codeload.github.com/Bitcoin-com/bitcoincash-ops/tar.gz/6ab82cc7326c67236f3b2d9d0457258ac2ef48e3" - -bitcoincashjs-lib@Bitcoin-com/bitcoincashjs-lib#v4.0.0: - version "4.0.0" - resolved "https://codeload.github.com/Bitcoin-com/bitcoincashjs-lib/tar.gz/3d360c780ec7df4a74aea93664c2b5ff8b08949a" - dependencies: - bech32 "^1.1.2" - bigi "^1.4.0" - bip66 "^1.1.0" - bitcoincash-ops Bitcoin-com/bitcoincash-ops#2.0.0 - bs58check "^2.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.3" - ecurve "^1.0.0" - merkle-lib "^2.0.10" - pushdata-bitcoin Bitcoin-com/pushdata-bitcoin#1.2.1 - randombytes "^2.0.1" - safe-buffer "^5.0.1" - typeforce "^1.11.3" - varuint-bitcoin "^1.0.4" - wif "^2.0.1" - -bitcoincashjs@^0.1.10: - version "0.1.14" - resolved "https://registry.yarnpkg.com/bitcoincashjs/-/bitcoincashjs-0.1.14.tgz#9da1efb762e05d608b6e04fadf1277eaa2201b48" - -bitcoinjs-message@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz#e285d223607dabf2b33a6ee486a223b59d1b1548" - dependencies: - bs58check "^2.0.2" - buffer-equals "^1.0.3" - create-hash "^1.1.2" - secp256k1 "^3.0.1" - varuint-bitcoin "^1.0.1" - -blob@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" - -block-stream@*: - version "0.0.9" - resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - dependencies: - inherits "~2.0.0" - -bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.5.3: - version "3.5.4" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.4.tgz#d6cc661595de30d5b3af5fcedd3c0b3ef6ec5714" - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.11.8, bn.js@^4.4.0: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - -bottleneck@^2.0.1: - version "2.18.0" - resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.18.0.tgz#41fa63ae185b65435d789d1700334bc48222dacf" - -boxen@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" - dependencies: - ansi-align "^2.0.0" - camelcase "^4.0.0" - chalk "^2.0.1" - cli-boxes "^1.0.0" - string-width "^2.0.0" - term-size "^1.2.0" - widest-line "^2.0.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^1.8.2: - version "1.8.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" - dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" - -braces@^2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - -browser-pack@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.1.0.tgz#c34ba10d0b9ce162b5af227c7131c92c2ecd5774" - dependencies: - JSONStream "^1.0.3" - combine-source-map "~0.8.0" - defined "^1.0.0" - safe-buffer "^5.1.1" - through2 "^2.0.0" - umd "^3.0.0" - -browser-resolve@^1.11.0, browser-resolve@^1.7.0: - version "1.11.3" - resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" - dependencies: - resolve "1.1.7" - -browser-stdout@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - -browserify-aes@^1.0.0, browserify-aes@^1.0.1, browserify-aes@^1.0.4, browserify-aes@^1.0.6: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - dependencies: - bn.js "^4.1.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" - dependencies: - bn.js "^4.1.1" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.2" - elliptic "^6.0.0" - inherits "^2.0.1" - parse-asn1 "^5.0.0" - -browserify-zlib@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - dependencies: - pako "~1.0.5" - -browserify@^16.2.2: - version "16.2.3" - resolved "https://registry.yarnpkg.com/browserify/-/browserify-16.2.3.tgz#7ee6e654ba4f92bce6ab3599c3485b1cc7a0ad0b" - dependencies: - JSONStream "^1.0.3" - assert "^1.4.0" - browser-pack "^6.0.1" - browser-resolve "^1.11.0" - browserify-zlib "~0.2.0" - buffer "^5.0.2" - cached-path-relative "^1.0.0" - concat-stream "^1.6.0" - console-browserify "^1.1.0" - constants-browserify "~1.0.0" - crypto-browserify "^3.0.0" - defined "^1.0.0" - deps-sort "^2.0.0" - domain-browser "^1.2.0" - duplexer2 "~0.1.2" - events "^2.0.0" - glob "^7.1.0" - has "^1.0.0" - htmlescape "^1.1.0" - https-browserify "^1.0.0" - inherits "~2.0.1" - insert-module-globals "^7.0.0" - labeled-stream-splicer "^2.0.0" - mkdirp "^0.5.0" - module-deps "^6.0.0" - os-browserify "~0.3.0" - parents "^1.0.1" - path-browserify "~0.0.0" - process "~0.11.0" - punycode "^1.3.2" - querystring-es3 "~0.2.0" - read-only-stream "^2.0.0" - readable-stream "^2.0.2" - resolve "^1.1.4" - shasum "^1.0.0" - shell-quote "^1.6.1" - stream-browserify "^2.0.0" - stream-http "^2.0.0" - string_decoder "^1.1.1" - subarg "^1.0.0" - syntax-error "^1.1.1" - through2 "^2.0.0" - timers-browserify "^1.0.1" - tty-browserify "0.0.1" - url "~0.11.0" - util "~0.10.1" - vm-browserify "^1.0.0" - xtend "^4.0.0" - -browserslist@^3.2.6: - version "3.2.8" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" - dependencies: - caniuse-lite "^1.0.30000844" - electron-to-chromium "^1.3.47" - -bs58@^4.0.0, bs58@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - dependencies: - base-x "^3.0.2" - -bs58check@<3.0.0, bs58check@^2.0.0, bs58check@^2.0.2, bs58check@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" - dependencies: - bs58 "^4.0.0" - create-hash "^1.1.0" - safe-buffer "^5.1.2" - -btoa-lite@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" - -buffer-equals@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/buffer-equals/-/buffer-equals-1.0.4.tgz#0353b54fd07fd9564170671ae6f66b9cf10d27f5" - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - -buffer-xor@^1.0.2, buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - -buffer@^5.0.2, buffer@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6" - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - -builtin-modules@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - -builtins@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" - -byline@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1" - -byte-size@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-5.0.1.tgz#4b651039a5ecd96767e71a3d7ed380e48bed4191" - -cacache@^11.0.1, cacache@^11.3.2: - version "11.3.2" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.2.tgz#2d81e308e3d258ca38125b676b98b2ac9ce69bfa" - dependencies: - bluebird "^3.5.3" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.3" - graceful-fs "^4.1.15" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.2" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -cached-path-relative@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.2.tgz#a13df4196d26776220cc3356eb147a52dba2c6db" - -caching-transform@^3.0.1, caching-transform@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-3.0.2.tgz#601d46b91eca87687a281e71cef99791b0efca70" - dependencies: - hasha "^3.0.0" - make-dir "^2.0.0" - package-hash "^3.0.0" - write-file-atomic "^2.4.2" - -call-limit@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/call-limit/-/call-limit-1.1.0.tgz#6fd61b03f3da42a2cd0ec2b60f02bd0e71991fea" - -call-me-maybe@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" - -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - dependencies: - callsites "^2.0.0" - -caller-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" - dependencies: - callsites "^0.2.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - dependencies: - caller-callsite "^2.0.0" - -callsite@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" - -callsites@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - -camelcase-keys@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" - dependencies: - camelcase "^4.1.0" - map-obj "^2.0.0" - quick-lru "^1.0.0" - -camelcase@^4.0.0, camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - -camelcase@^5.0.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - -can-promise@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/can-promise/-/can-promise-0.0.1.tgz#7a7597ad801fb14c8b22341dfec314b6bd6ad8d3" - dependencies: - window-or-global "^1.0.1" - -caniuse-lite@^1.0.30000844: - version "1.0.30000967" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000967.tgz#a5039577806fccee80a04aaafb2c0890b1ee2f73" - -capture-stack-trace@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" - -cardinal@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/cardinal/-/cardinal-2.1.1.tgz#7cc1055d822d212954d07b085dea251cc7bc5505" - dependencies: - ansicolors "~0.3.2" - redeyed "~2.1.0" - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - -cashaddrjs@^0.2.9: - version "0.2.9" - resolved "https://registry.yarnpkg.com/cashaddrjs/-/cashaddrjs-0.2.9.tgz#e38e323e11e0ab761767006b3938a36278dadec9" - dependencies: - big-integer "^1.6.34" - -chai@^4.1.2: - version "4.2.0" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5" - dependencies: - assertion-error "^1.1.0" - check-error "^1.0.2" - deep-eql "^3.0.1" - get-func-name "^2.0.0" - pathval "^1.1.0" - type-detect "^4.0.5" - -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - dependencies: - 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" - -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chardet@^0.4.0: - version "0.4.2" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - -check-error@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" - -chokidar@^1.6.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" - dependencies: - anymatch "^1.3.0" - async-each "^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" - optionalDependencies: - fsevents "^1.0.0" - -chownr@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" - -ci-info@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" - -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - -cidr-regex@^2.0.10: - version "2.0.10" - resolved "https://registry.yarnpkg.com/cidr-regex/-/cidr-regex-2.0.10.tgz#af13878bd4ad704de77d6dc800799358b3afa70d" - dependencies: - ip-regex "^2.1.0" - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -circular-json@^0.3.1: - version "0.3.3" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -clean-stack@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.1.0.tgz#9e7fec7f3f8340a2ab4f127c80273085e8fbbdd0" - -clear@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/clear/-/clear-0.0.1.tgz#e5186e229d99448179c130311b6f9d30bff6b0ba" - -cli-boxes@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" - -cli-columns@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/cli-columns/-/cli-columns-3.1.2.tgz#6732d972979efc2ae444a1f08e08fa139c96a18e" - dependencies: - string-width "^2.0.0" - strip-ansi "^3.0.1" - -cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - dependencies: - restore-cursor "^2.0.0" - -cli-table3@^0.5.0, cli-table3@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" - dependencies: - object-assign "^4.1.0" - string-width "^2.1.1" - optionalDependencies: - colors "^1.1.2" - -cli-table@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23" - dependencies: - colors "1.0.3" - -cli-width@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" - -cliui@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" - dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - wrap-ansi "^2.0.0" - -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - -cmd-shim@^2.0.2, cmd-shim@~2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-2.0.2.tgz#6fcbda99483a8fd15d7d30a196ca69d688a2efdb" - dependencies: - graceful-fs "^4.1.2" - mkdirp "~0.5.0" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - -coininfo@Bitcoin-com/coininfo: - version "4.0.0" - resolved "https://codeload.github.com/Bitcoin-com/coininfo/tar.gz/eece2c6141d08c3e7783929f2a1e1e681aa1a82c" - dependencies: - safe-buffer "^5.1.1" - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - dependencies: - color-name "1.1.3" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - -colors@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" - -colors@^1.1.2: - version "1.3.3" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" - -columnify@~1.5.4: - version "1.5.4" - resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" - dependencies: - strip-ansi "^3.0.0" - wcwidth "^1.0.0" - -combine-source-map@^0.8.0, combine-source-map@~0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.8.0.tgz#a58d0df042c186fcf822a8e8015f5450d2d79a8b" - dependencies: - convert-source-map "~1.1.0" - inline-source-map "~0.6.0" - lodash.memoize "~3.0.3" - source-map "~0.5.3" - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828" - dependencies: - delayed-stream "~1.0.0" - -commander@2.15.1: - version "2.15.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" - -commander@^2.11.0, commander@^2.13.0, commander@~2.20.0: - version "2.20.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - -compare-func@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-1.3.2.tgz#99dd0ba457e1f9bc722b12c08ec33eeab31fa648" - dependencies: - array-ify "^1.0.0" - dot-prop "^3.0.0" - -component-bind@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" - -component-emitter@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - -component-inherit@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - -concat-stream@^1.5.0, concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@~1.6.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -config-chain@^1.1.12: - version "1.1.12" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - -configstore@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" - dependencies: - dot-prop "^4.1.0" - graceful-fs "^4.1.2" - make-dir "^1.0.0" - unique-string "^1.0.0" - write-file-atomic "^2.0.0" - xdg-basedir "^3.0.0" - -console-browserify@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" - dependencies: - date-now "^0.1.4" - -console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - -constants-browserify@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - -contains-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" - -conventional-changelog-angular@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.3.tgz#299fdd43df5a1f095283ac16aeedfb0a682ecab0" - dependencies: - compare-func "^1.3.1" - q "^1.5.1" - -conventional-changelog-writer@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.0.3.tgz#916a2b302d0bb5ef18efd236a034c13fb273cde1" - dependencies: - compare-func "^1.3.1" - conventional-commits-filter "^2.0.1" - dateformat "^3.0.0" - handlebars "^4.1.0" - json-stringify-safe "^5.0.1" - lodash "^4.2.1" - meow "^4.0.0" - semver "^5.5.0" - split "^1.0.0" - through2 "^2.0.0" - -conventional-commits-filter@^2.0.0, conventional-commits-filter@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.1.tgz#55a135de1802f6510b6758e0a6aa9e0b28618db3" - dependencies: - is-subset "^0.1.1" - modify-values "^1.0.0" - -conventional-commits-parser@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.0.1.tgz#fe1c49753df3f98edb2285a5e485e11ffa7f2e4c" - dependencies: - JSONStream "^1.0.4" - is-text-path "^1.0.0" - lodash "^4.2.1" - meow "^4.0.0" - split2 "^2.0.0" - through2 "^2.0.0" - trim-off-newlines "^1.0.0" - -convert-source-map@^1.5.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" - dependencies: - safe-buffer "~5.1.1" - -convert-source-map@~1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860" - -cookie@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" - -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - -core-js@^2.4.0, core-js@^2.5.0: - version "2.6.5" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.5.tgz#44bc8d249e7fb2ff5d00e0341a7ffb94fbf67895" - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - -cosmiconfig@^5.0.1: - version "5.2.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.0.tgz#45038e4d28a7fe787203aede9c25bca4a08b12c8" - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.0" - parse-json "^4.0.0" - -coveralls@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-3.0.3.tgz#83b1c64aea1c6afa69beaf50b55ac1bc4d13e2b8" - dependencies: - growl "~> 1.10.0" - js-yaml "^3.11.0" - lcov-parse "^0.0.10" - log-driver "^1.2.7" - minimist "^1.2.0" - request "^2.86.0" - -cp-file@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cp-file/-/cp-file-5.0.0.tgz#bc700fd30ca32d24d46c7fb02b992e435fc5a978" - dependencies: - graceful-fs "^4.1.2" - make-dir "^1.0.0" - nested-error-stacks "^2.0.0" - pify "^3.0.0" - safe-buffer "^5.0.1" - -cp-file@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/cp-file/-/cp-file-6.2.0.tgz#40d5ea4a1def2a9acdd07ba5c0b0246ef73dc10d" - dependencies: - graceful-fs "^4.1.2" - make-dir "^2.0.0" - nested-error-stacks "^2.0.0" - pify "^4.0.1" - safe-buffer "^5.0.1" - -create-ecdh@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" - dependencies: - bn.js "^4.1.0" - elliptic "^6.0.0" - -create-error-class@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" - dependencies: - capture-stack-trace "^1.0.0" - -create-hash@^1.1.0, create-hash@^1.1.1, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.3, create-hmac@^1.1.4: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-spawn@^4: - version "4.0.2" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" - dependencies: - lru-cache "^4.0.1" - which "^1.2.9" - -cross-spawn@^5.0.1, cross-spawn@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^6.0.0, cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -crypto-browserify@^3.0.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -crypto-random-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" - -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - dependencies: - array-find-index "^1.0.1" - -cyclist@~0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" - -dash-ast@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dash-ast/-/dash-ast-1.0.0.tgz#12029ba5fb2f8aa6f0a861795b23c1b4b6c27d37" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - dependencies: - assert-plus "^1.0.0" - -date-now@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" - -dateformat@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" - -debug-log@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" - -debug@3.1.0, debug@~3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - dependencies: - ms "2.0.0" - -debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - dependencies: - ms "2.0.0" - -debug@^3.1.0, debug@^3.2.6: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - dependencies: - ms "^2.1.1" - -debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - dependencies: - ms "^2.1.1" - -debuglog@*, debuglog@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" - -decamelize-keys@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" - dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" - -decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - -deep-eql@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" - dependencies: - type-detect "^4.0.0" - -deep-equal@^1.0.0, deep-equal@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - -deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - -deepmerge@3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.2.0.tgz#58ef463a57c08d376547f8869fdc5bcee957f44e" - -default-require-extensions@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-2.0.0.tgz#f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7" - dependencies: - strip-bom "^3.0.0" - -defaults@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" - dependencies: - clone "^1.0.2" - -define-properties@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -defined@^1.0.0, defined@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - -deglob@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/deglob/-/deglob-2.1.1.tgz#d268e168727799862e8eac07042e165957c1f3be" - dependencies: - find-root "^1.0.0" - glob "^7.0.5" - ignore "^3.0.9" - pkg-config "^1.1.0" - run-parallel "^1.1.2" - uniq "^1.0.1" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - -depd@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - -deprecation@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-1.0.1.tgz#2df79b79005752180816b7b6e079cbd80490d711" - -deps-sort@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.0.tgz#091724902e84658260eb910748cccd1af6e21fb5" - dependencies: - JSONStream "^1.0.3" - shasum "^1.0.0" - subarg "^1.0.0" - through2 "^2.0.0" - -des.js@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - dependencies: - repeating "^2.0.0" - -detect-indent@~5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" - -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - -detect-newline@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" - -detective@^5.0.2: - version "5.2.0" - resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b" - dependencies: - acorn-node "^1.6.1" - defined "^1.0.0" - minimist "^1.1.1" - -dezalgo@^1.0.0, dezalgo@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" - dependencies: - asap "^2.0.0" - wrappy "1" - -diff@3.5.0, diff@^3.1.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dijkstrajs@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.1.tgz#d3cd81221e3ea40742cfcde556d4e99e98ddc71b" - -dir-glob@^2.0.0, dir-glob@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" - dependencies: - path-type "^3.0.0" - -doctrine@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" - dependencies: - esutils "^2.0.2" - isarray "^1.0.0" - -doctrine@^2.0.2, doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - dependencies: - esutils "^2.0.2" - -domain-browser@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - -dot-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" - dependencies: - is-obj "^1.0.0" - -dot-prop@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" - dependencies: - is-obj "^1.0.0" - -dotenv@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-5.0.1.tgz#a5317459bd3d79ab88cff6e44057a6a3fbb1fcef" - -drbg.js@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/drbg.js/-/drbg.js-1.0.1.tgz#3e36b6c42b37043823cdbc332d58f31e2445480b" - dependencies: - browserify-aes "^1.0.6" - create-hash "^1.1.2" - create-hmac "^1.1.4" - -duplexer2@^0.1.2, duplexer2@~0.1.0, duplexer2@~0.1.2: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" - dependencies: - readable-stream "^2.0.2" - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -ecurve@^1.0.0, ecurve@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/ecurve/-/ecurve-1.0.6.tgz#dfdabbb7149f8d8b78816be5a7d5b83fcf6de797" - dependencies: - bigi "^1.1.0" - safe-buffer "^5.0.1" - -editor@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/editor/-/editor-1.0.0.tgz#60c7f87bd62bcc6a894fa8ccd6afb7823a24f742" - -electron-to-chromium@^1.3.47: - version "1.3.133" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.133.tgz#c47639c19b91feee3e22fad69f5556142007008c" - -elliptic@^6.0.0, elliptic@^6.4.1: - version "6.4.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - -encoding@^0.1.11: - version "0.1.12" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" - dependencies: - iconv-lite "~0.4.13" - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" - dependencies: - once "^1.4.0" - -engine.io-client@~3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.3.2.tgz#04e068798d75beda14375a264bb3d742d7bc33aa" - dependencies: - component-emitter "1.2.1" - component-inherit "0.0.3" - debug "~3.1.0" - engine.io-parser "~2.1.1" - has-cors "1.1.0" - indexof "0.0.1" - parseqs "0.0.5" - parseuri "0.0.5" - ws "~6.1.0" - xmlhttprequest-ssl "~1.5.4" - yeast "0.1.2" - -engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz#757ab970fbf2dfb32c7b74b033216d5739ef79a6" - dependencies: - after "0.8.2" - arraybuffer.slice "~0.0.7" - base64-arraybuffer "0.1.5" - blob "0.0.5" - has-binary2 "~1.0.2" - -engine.io@~3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.3.2.tgz#18cbc8b6f36e9461c5c0f81df2b830de16058a59" - dependencies: - accepts "~1.3.4" - base64id "1.0.0" - cookie "0.3.1" - debug "~3.1.0" - engine.io-parser "~2.1.0" - ws "~6.1.0" - -env-ci@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/env-ci/-/env-ci-3.2.0.tgz#982f02a0501ca8c43bf0765c5bd3d83ffb28b23a" - dependencies: - execa "^1.0.0" - java-properties "^0.2.9" - -err-code@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" - -errno@~0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - dependencies: - prr "~1.0.1" - -error-ex@^1.2.0, error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.5.0, es-abstract@^1.7.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" - dependencies: - es-to-primitive "^1.2.0" - function-bind "^1.1.1" - has "^1.0.3" - is-callable "^1.1.4" - is-regex "^1.0.4" - object-keys "^1.0.12" - -es-to-primitive@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -es6-error@^4.0.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" - -es6-promise@^4.0.3: - version "4.2.6" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.6.tgz#b685edd8258886365ea62b57d30de28fadcd974f" - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - dependencies: - es6-promise "^4.0.3" - -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - -eslint-config-prettier@^3.0.1: - version "3.6.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-3.6.0.tgz#8ca3ffac4bd6eeef623a0651f9d754900e3ec217" - dependencies: - get-stdin "^6.0.0" - -eslint-config-standard-jsx@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-5.0.0.tgz#4abfac554f38668e0078c664569e7b2384e5d2aa" - -eslint-config-standard@11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-11.0.0.tgz#87ee0d3c9d95382dc761958cbb23da9eea31e0ba" - -eslint-import-resolver-node@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" - dependencies: - debug "^2.6.9" - resolve "^1.5.0" - -eslint-module-utils@^2.1.1: - version "2.4.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz#8b93499e9b00eab80ccb6614e69f03678e84e09a" - dependencies: - debug "^2.6.8" - pkg-dir "^2.0.0" - -eslint-plugin-es@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.0.tgz#475f65bb20c993fc10e8c8fe77d1d60068072da6" - dependencies: - eslint-utils "^1.3.0" - regexpp "^2.0.1" - -eslint-plugin-import@~2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz#26002efbfca5989b7288ac047508bd24f217b169" - dependencies: - builtin-modules "^1.1.1" - contains-path "^0.1.0" - debug "^2.6.8" - doctrine "1.5.0" - eslint-import-resolver-node "^0.3.1" - eslint-module-utils "^2.1.1" - has "^1.0.1" - lodash "^4.17.4" - minimatch "^3.0.3" - read-pkg-up "^2.0.0" - -eslint-plugin-node@7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-7.0.1.tgz#a6e054e50199b2edd85518b89b4e7b323c9f36db" - dependencies: - eslint-plugin-es "^1.3.1" - eslint-utils "^1.3.1" - ignore "^4.0.2" - minimatch "^3.0.4" - resolve "^1.8.1" - semver "^5.5.0" - -eslint-plugin-node@~6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz#bf19642298064379315d7a4b2a75937376fa05e4" - dependencies: - ignore "^3.3.6" - minimatch "^3.0.4" - resolve "^1.3.3" - semver "^5.4.1" - -eslint-plugin-prettier@^2.6.2: - version "2.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.7.0.tgz#b4312dcf2c1d965379d7f9d5b5f8aaadc6a45904" - dependencies: - fast-diff "^1.1.1" - jest-docblock "^21.0.0" - -eslint-plugin-promise@~3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-3.7.0.tgz#f4bde5c2c77cdd69557a8f69a24d1ad3cfc9e67e" - -eslint-plugin-react@~7.7.0: - version "7.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz#f606c719dbd8a1a2b3d25c16299813878cca0160" - dependencies: - doctrine "^2.0.2" - has "^1.0.1" - jsx-ast-utils "^2.0.1" - prop-types "^15.6.0" - -eslint-plugin-standard@~3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz#34d0c915b45edc6f010393c7eef3823b08565cf2" - -eslint-scope@^3.7.1: - version "3.7.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535" - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-utils@^1.3.0, eslint-utils@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512" - -eslint-visitor-keys@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" - -eslint@^5.5.0: - version "5.16.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" - dependencies: - "@babel/code-frame" "^7.0.0" - ajv "^6.9.1" - chalk "^2.1.0" - cross-spawn "^6.0.5" - debug "^4.0.1" - doctrine "^3.0.0" - eslint-scope "^4.0.3" - eslint-utils "^1.3.1" - eslint-visitor-keys "^1.0.0" - espree "^5.0.1" - esquery "^1.0.1" - esutils "^2.0.2" - file-entry-cache "^5.0.1" - functional-red-black-tree "^1.0.1" - glob "^7.1.2" - globals "^11.7.0" - ignore "^4.0.6" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - inquirer "^6.2.2" - js-yaml "^3.13.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.11" - minimatch "^3.0.4" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.2" - progress "^2.0.0" - regexpp "^2.0.1" - semver "^5.5.1" - strip-ansi "^4.0.0" - strip-json-comments "^2.0.1" - table "^5.2.3" - text-table "^0.2.0" - -eslint@~4.18.0: - version "4.18.2" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.18.2.tgz#0f81267ad1012e7d2051e186a9004cc2267b8d45" - dependencies: - ajv "^5.3.0" - babel-code-frame "^6.22.0" - chalk "^2.1.0" - concat-stream "^1.6.0" - cross-spawn "^5.1.0" - debug "^3.1.0" - doctrine "^2.1.0" - eslint-scope "^3.7.1" - eslint-visitor-keys "^1.0.0" - espree "^3.5.2" - esquery "^1.0.0" - esutils "^2.0.2" - file-entry-cache "^2.0.0" - functional-red-black-tree "^1.0.1" - glob "^7.1.2" - globals "^11.0.1" - ignore "^3.3.3" - imurmurhash "^0.1.4" - inquirer "^3.0.6" - is-resolvable "^1.0.0" - js-yaml "^3.9.1" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.4" - minimatch "^3.0.2" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.2" - pluralize "^7.0.0" - progress "^2.0.0" - require-uncached "^1.0.3" - semver "^5.3.0" - strip-ansi "^4.0.0" - strip-json-comments "~2.0.1" - table "4.0.2" - text-table "~0.2.0" - -espree@^3.5.2: - version "3.5.4" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" - dependencies: - acorn "^5.5.0" - acorn-jsx "^3.0.0" - -espree@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" - dependencies: - acorn "^6.0.7" - acorn-jsx "^5.0.0" - eslint-visitor-keys "^1.0.0" - -esprima@^4.0.0, esprima@~4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - -esquery@^1.0.0, esquery@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" - dependencies: - estraverse "^4.0.0" - -esrecurse@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - dependencies: - estraverse "^4.1.0" - -estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" - -esutils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" - -events@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/events/-/events-2.1.0.tgz#2a9a1e18e6106e0e812aa9ebd4a819b3c29c0ba5" - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - dependencies: - 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" - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.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" - -expand-brackets@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - dependencies: - is-posix-bracket "^0.1.0" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - dependencies: - fill-range "^2.1.0" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - -external-editor@^2.0.4: - version "2.2.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" - dependencies: - chardet "^0.4.0" - iconv-lite "^0.4.17" - tmp "^0.0.33" - -external-editor@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -extglob@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" - dependencies: - is-extglob "^1.0.0" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - -fast-deep-equal@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" - -fast-deep-equal@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" - -fast-diff@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" - -fast-glob@^2.2.6: - version "2.2.6" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.6.tgz#a5d5b697ec8deda468d85a74035290a025a95295" - dependencies: - "@mrmlnc/readdir-enhanced" "^2.2.1" - "@nodelib/fs.stat" "^1.1.2" - glob-parent "^3.1.0" - is-glob "^4.0.0" - merge2 "^1.2.3" - micromatch "^3.1.10" - -fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - -fast-levenshtein@~2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - -figgy-pudding@^3.4.1, figgy-pudding@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" - -figlet@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/figlet/-/figlet-1.2.1.tgz#48d35df9d9b10b1b3888302e6e57904a0b00509c" - -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - dependencies: - escape-string-regexp "^1.0.5" - -file-entry-cache@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" - dependencies: - flat-cache "^1.2.1" - object-assign "^4.0.1" - -file-entry-cache@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" - dependencies: - flat-cache "^2.0.1" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - -filename-regex@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" - -fill-range@^2.1.0: - version "2.2.4" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^3.0.0" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - -find-npm-prefix@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/find-npm-prefix/-/find-npm-prefix-1.0.2.tgz#8d8ce2c78b3b4b9e66c8acc6a37c231eb841cfdf" - -find-root@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" - -find-up@^2.0.0, find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - dependencies: - locate-path "^2.0.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - dependencies: - locate-path "^3.0.0" - -find-versions@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.1.0.tgz#10161f29cf3eb4350dec10a29bdde75bff0df32d" - dependencies: - array-uniq "^2.1.0" - semver-regex "^2.0.0" - -flat-cache@^1.2.1: - version "1.3.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f" - dependencies: - circular-json "^0.3.1" - graceful-fs "^4.1.2" - rimraf "~2.6.2" - write "^0.2.1" - -flat-cache@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" - dependencies: - flatted "^2.0.0" - rimraf "2.6.3" - write "1.0.3" - -flatted@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.0.tgz#55122b6536ea496b4b44893ee2608141d10d9916" - -flush-write-stream@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" - -follow-redirects@^1.2.5: - version "1.7.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.7.0.tgz#489ebc198dc0e7f64167bd23b03c4c19b5784c76" - dependencies: - debug "^3.2.6" - -for-each@~0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - dependencies: - is-callable "^1.1.3" - -for-in@^1.0.1, for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - -for-own@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" - dependencies: - for-in "^1.0.1" - -foreground-child@^1.5.6: - version "1.5.6" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9" - dependencies: - cross-spawn "^4" - signal-exit "^3.0.0" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - dependencies: - map-cache "^0.2.2" - -fresh@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - -from2@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-1.3.0.tgz#88413baaa5f9a597cfde9221d86986cd3c061dfd" - dependencies: - inherits "~2.0.1" - readable-stream "~1.1.10" - -from2@^2.1.0, from2@^2.1.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs-extra@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-minipass@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" - dependencies: - minipass "^2.2.1" - -fs-readdir-recursive@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" - -fs-vacuum@^1.2.10, fs-vacuum@~1.2.10: - version "1.2.10" - resolved "https://registry.yarnpkg.com/fs-vacuum/-/fs-vacuum-1.2.10.tgz#b7629bec07a4031a2548fdf99f5ecf1cc8b31e36" - dependencies: - graceful-fs "^4.1.2" - path-is-inside "^1.0.1" - rimraf "^2.5.2" - -fs-write-stream-atomic@^1.0.8, fs-write-stream-atomic@~1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - -fsevents@^1.0.0: - version "1.2.9" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" - dependencies: - nan "^2.12.1" - node-pre-gyp "^0.12.0" - -fstream@^1.0.0, fstream@^1.0.2: - version "1.0.11" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - -function-bind@^1.0.2, function-bind@^1.1.1, function-bind@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - dependencies: - 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" - -genfun@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/genfun/-/genfun-5.0.0.tgz#9dd9710a06900a5c4a5bf57aca5da4e52fe76537" - -gentle-fs@^2.0.0, gentle-fs@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/gentle-fs/-/gentle-fs-2.0.1.tgz#585cfd612bfc5cd52471fdb42537f016a5ce3687" - dependencies: - aproba "^1.1.2" - fs-vacuum "^1.2.10" - graceful-fs "^4.1.11" - iferr "^0.1.5" - mkdirp "^0.5.1" - path-is-inside "^1.0.2" - read-cmd-shim "^1.0.1" - slide "^1.1.6" - -get-assigned-identifiers@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1" - -get-caller-file@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" - -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - -get-func-name@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" - -get-stdin@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" - -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - -get-stream@^4.0.0, get-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - dependencies: - pump "^3.0.0" - -get-stream@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" - dependencies: - pump "^3.0.0" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - dependencies: - assert-plus "^1.0.0" - -git-clone@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/git-clone/-/git-clone-0.1.0.tgz#0d76163778093aef7f1c30238f2a9ef3f07a2eb9" - -git-log-parser@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/git-log-parser/-/git-log-parser-1.2.0.tgz#2e6a4c1b13fc00028207ba795a7ac31667b9fd4a" - dependencies: - argv-formatter "~1.0.0" - spawn-error-forwarder "~1.0.0" - split2 "~1.0.0" - stream-combiner2 "~1.1.1" - through2 "~2.0.0" - traverse "~0.6.6" - -glob-base@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" - -glob-parent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" - dependencies: - is-glob "^2.0.0" - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-to-regexp@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" - -glob@7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.0.3, glob@^7.0.5, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@~7.1.3: - version "7.1.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-dirs@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" - dependencies: - ini "^1.3.4" - -globals@^11.0.1, globals@^11.1.0, globals@^11.7.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - -globby@^9.0.0: - version "9.2.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" - dependencies: - "@types/glob" "^7.1.1" - array-union "^1.0.2" - dir-glob "^2.2.2" - fast-glob "^2.2.6" - glob "^7.1.3" - ignore "^4.0.3" - pify "^4.0.1" - slash "^2.0.0" - -got@^6.7.1: - version "6.7.1" - resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" - dependencies: - create-error-class "^3.0.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - is-redirect "^1.0.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - lowercase-keys "^1.0.0" - safe-buffer "^5.0.1" - timed-out "^4.0.0" - unzip-response "^2.0.1" - url-parse-lax "^1.0.0" - -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6: - version "4.1.15" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" - -growl@1.10.5, "growl@~> 1.10.0": - version "1.10.5" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" - -handlebars@^4.1.0, handlebars@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67" - dependencies: - neo-async "^2.6.0" - optimist "^0.6.1" - source-map "^0.6.1" - optionalDependencies: - uglify-js "^3.1.4" - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - -har-validator@~5.1.0: - version "5.1.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" - dependencies: - ajv "^6.5.5" - har-schema "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - dependencies: - ansi-regex "^2.0.0" - -has-binary2@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" - dependencies: - isarray "2.0.1" - -has-cors@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" - -has-flag@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - -has-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" - -has-unicode@^2.0.0, has-unicode@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.0, has@^1.0.1, has@^1.0.3, has@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hasha@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/hasha/-/hasha-3.0.0.tgz#52a32fab8569d41ca69a61ff1a214f8eb7c8bd39" - dependencies: - is-stream "^1.0.1" - -he@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - -hook-std@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/hook-std/-/hook-std-2.0.0.tgz#ff9aafdebb6a989a354f729bb6445cf4a3a7077c" - -hosted-git-info@^2.1.4, hosted-git-info@^2.6.0, hosted-git-info@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" - -htmlescape@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" - -http-cache-semantics@^3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" - -http-proxy-agent@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" - dependencies: - agent-base "4" - debug "3.1.0" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - -https-proxy-agent@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0" - dependencies: - agent-base "^4.1.0" - debug "^3.1.0" - -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - dependencies: - ms "^2.0.0" - -iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - -iferr@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-1.0.2.tgz#e9fde49a9da06dc4a4194c6c9ed6d08305037a6d" - -ignore-walk@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" - dependencies: - minimatch "^3.0.4" - -ignore@^3.0.9, ignore@^3.3.3, ignore@^3.3.6: - version "3.3.10" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" - -ignore@^4.0.2, ignore@^4.0.3, ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - -import-fresh@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390" - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - dependencies: - resolve-from "^3.0.0" - -import-lazy@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" - -imurmurhash@*, imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - -indent-string@^3.0.0, indent-string@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" - -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - -inflight@^1.0.4, inflight@~1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - -ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - -init-package-json@^1.10.3: - version "1.10.3" - resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-1.10.3.tgz#45ffe2f610a8ca134f2bd1db5637b235070f6cbe" - dependencies: - glob "^7.1.1" - npm-package-arg "^4.0.0 || ^5.0.0 || ^6.0.0" - promzard "^0.3.0" - read "~1.0.1" - read-package-json "1 || 2" - semver "2.x || 3.x || 4 || 5" - validate-npm-package-license "^3.0.1" - validate-npm-package-name "^3.0.0" - -inline-source-map@~0.6.0: - version "0.6.2" - resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5" - dependencies: - source-map "~0.5.3" - -inquirer@^3.0.6: - version "3.3.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" - dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.0" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^2.0.4" - figures "^2.0.0" - lodash "^4.3.0" - mute-stream "0.0.7" - run-async "^2.2.0" - rx-lite "^4.0.8" - rx-lite-aggregates "^4.0.8" - string-width "^2.1.0" - strip-ansi "^4.0.0" - through "^2.3.6" - -inquirer@^6.2.2: - version "6.3.1" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.3.1.tgz#7a413b5e7950811013a3db491c61d1f3b776e8e7" - dependencies: - ansi-escapes "^3.2.0" - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^2.0.0" - lodash "^4.17.11" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^6.4.0" - string-width "^2.1.0" - strip-ansi "^5.1.0" - through "^2.3.6" - -insert-module-globals@^7.0.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.2.0.tgz#ec87e5b42728479e327bd5c5c71611ddfb4752ba" - dependencies: - JSONStream "^1.0.3" - acorn-node "^1.5.2" - combine-source-map "^0.8.0" - concat-stream "^1.6.1" - is-buffer "^1.1.0" - path-is-absolute "^1.0.1" - process "~0.11.0" - through2 "^2.0.0" - undeclared-identifiers "^1.1.2" - xtend "^4.0.0" - -into-stream@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-4.0.0.tgz#ef10ee2ffb6f78af34c93194bbdc36c35f7d8a9d" - dependencies: - from2 "^2.1.1" - p-is-promise "^2.0.0" - -invariant@^2.2.2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - dependencies: - loose-envify "^1.0.0" - -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - -invert-kv@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" - -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - -ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - dependencies: - kind-of "^6.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - dependencies: - binary-extensions "^1.0.0" - -is-buffer@^1.1.0, is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - -is-callable@^1.1.3, is-callable@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" - -is-ci@^1.0.10: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" - dependencies: - ci-info "^1.5.0" - -is-cidr@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-cidr/-/is-cidr-3.0.0.tgz#1acf35c9e881063cd5f696d48959b30fed3eed56" - dependencies: - cidr-regex "^2.0.10" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - -is-dotfile@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" - -is-equal-shallow@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" - dependencies: - is-primitive "^2.0.0" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - -is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - -is-glob@^2.0.0, is-glob@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - dependencies: - is-extglob "^1.0.0" - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - dependencies: - is-extglob "^2.1.1" - -is-installed-globally@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" - dependencies: - global-dirs "^0.1.0" - is-path-inside "^1.0.0" - -is-npm@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" - -is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - dependencies: - kind-of "^3.0.2" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - dependencies: - kind-of "^3.0.2" - -is-number@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" - -is-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - dependencies: - path-is-inside "^1.0.1" - -is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - -is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - dependencies: - isobject "^3.0.1" - -is-plain-object@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-3.0.0.tgz#47bfc5da1b5d50d64110806c199359482e75a928" - dependencies: - isobject "^4.0.0" - -is-posix-bracket@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" - -is-primitive@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" - -is-promise@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" - -is-redirect@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" - -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" - dependencies: - has "^1.0.1" - -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - -is-retry-allowed@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" - -is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - -is-subset@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" - -is-symbol@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" - dependencies: - has-symbols "^1.0.0" - -is-text-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" - dependencies: - text-extensions "^1.0.0" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - -isarray@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" - -isarray@^2.0.1, isarray@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.4.tgz#38e7bcbb0f3ba1b7933c86ba1894ddfc3781bbb7" - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - -isobject@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0" - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - -issue-parser@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/issue-parser/-/issue-parser-3.0.1.tgz#ee8dd677fdb5be64541f81fa5e7267baa271a7ee" - dependencies: - lodash.capitalize "^4.2.1" - lodash.escaperegexp "^4.1.2" - lodash.isplainobject "^4.0.6" - lodash.isstring "^4.0.1" - lodash.uniqby "^4.7.0" - -istanbul-lib-coverage@^2.0.3, istanbul-lib-coverage@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49" - -istanbul-lib-hook@^2.0.3, istanbul-lib-hook@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz#c95695f383d4f8f60df1f04252a9550e15b5b133" - dependencies: - append-transform "^1.0.0" - -istanbul-lib-instrument@^3.1.0, istanbul-lib-instrument@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630" - dependencies: - "@babel/generator" "^7.4.0" - "@babel/parser" "^7.4.3" - "@babel/template" "^7.4.0" - "@babel/traverse" "^7.4.3" - "@babel/types" "^7.4.0" - istanbul-lib-coverage "^2.0.5" - semver "^6.0.0" - -istanbul-lib-report@^2.0.4, istanbul-lib-report@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz#5a8113cd746d43c4889eba36ab10e7d50c9b4f33" - dependencies: - istanbul-lib-coverage "^2.0.5" - make-dir "^2.1.0" - supports-color "^6.1.0" - -istanbul-lib-source-maps@^3.0.2, istanbul-lib-source-maps@^3.0.6: - version "3.0.6" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8" - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^2.0.5" - make-dir "^2.1.0" - rimraf "^2.6.3" - source-map "^0.6.1" - -istanbul-reports@^2.1.1, istanbul-reports@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.4.tgz#4e0d0ddf0f0ad5b49a314069d31b4f06afe49ad3" - dependencies: - handlebars "^4.1.2" - -java-properties@^0.2.9: - version "0.2.10" - resolved "https://registry.yarnpkg.com/java-properties/-/java-properties-0.2.10.tgz#2551560c25fa1ad94d998218178f233ad9b18f60" - -jest-docblock@^21.0.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-21.2.0.tgz#51529c3b30d5fd159da60c27ceedc195faf8d414" - -js-sha256@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/js-sha256/-/js-sha256-0.9.0.tgz#0b89ac166583e91ef9123644bd3c5334ce9d0966" - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - -js-yaml@^3.11.0, js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.9.1: - version "3.13.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - -json-parse-better-errors@^1.0.0, json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - -json-schema-traverse@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - -json-stable-stringify@~0.0.0: - version "0.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz#611c23e814db375527df851193db59dd2af27f45" - dependencies: - jsonify "~0.0.0" - -json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - -json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - -jsonparse@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -jsx-ast-utils@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.1.0.tgz#0ee4e2c971fb9601c67b5641b71be80faecf0b36" - dependencies: - array-includes "^3.0.3" - -just-extend@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.0.2.tgz#f3f47f7dfca0f989c55410a7ebc8854b07108afc" - -keccak@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-1.4.0.tgz#572f8a6dbee8e7b3aa421550f9e6408ca2186f80" - dependencies: - bindings "^1.2.1" - inherits "^2.0.3" - nan "^2.2.1" - safe-buffer "^5.1.0" - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" - -labeled-stream-splicer@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.1.tgz#9cffa32fd99e1612fd1d86a8db962416d5292926" - dependencies: - inherits "^2.0.1" - isarray "^2.0.4" - stream-splicer "^2.0.0" - -latest-version@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" - dependencies: - package-json "^4.0.0" - -lazy-property@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lazy-property/-/lazy-property-1.0.0.tgz#84ddc4b370679ba8bd4cdcfa4c06b43d57111147" - -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - dependencies: - invert-kv "^1.0.0" - -lcid@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" - dependencies: - invert-kv "^2.0.0" - -lcov-parse@^0.0.10: - version "0.0.10" - resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-0.0.10.tgz#1b0b8ff9ac9c7889250582b70b71315d9da6d9a3" - -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -libcipm@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/libcipm/-/libcipm-3.0.3.tgz#2e764effe0b90d458790dab3165794c804075ed3" - dependencies: - bin-links "^1.1.2" - bluebird "^3.5.1" - figgy-pudding "^3.5.1" - find-npm-prefix "^1.0.2" - graceful-fs "^4.1.11" - ini "^1.3.5" - lock-verify "^2.0.2" - mkdirp "^0.5.1" - npm-lifecycle "^2.0.3" - npm-logical-tree "^1.2.1" - npm-package-arg "^6.1.0" - pacote "^9.1.0" - read-package-json "^2.0.13" - rimraf "^2.6.2" - worker-farm "^1.6.0" - -libnpm@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/libnpm/-/libnpm-2.0.1.tgz#a48fcdee3c25e13c77eb7c60a0efe561d7fb0d8f" - dependencies: - bin-links "^1.1.2" - bluebird "^3.5.3" - find-npm-prefix "^1.0.2" - libnpmaccess "^3.0.1" - libnpmconfig "^1.2.1" - libnpmhook "^5.0.2" - libnpmorg "^1.0.0" - libnpmpublish "^1.1.0" - libnpmsearch "^2.0.0" - libnpmteam "^1.0.1" - lock-verify "^2.0.2" - npm-lifecycle "^2.1.0" - npm-logical-tree "^1.2.1" - npm-package-arg "^6.1.0" - npm-profile "^4.0.1" - npm-registry-fetch "^3.8.0" - npmlog "^4.1.2" - pacote "^9.2.3" - read-package-json "^2.0.13" - stringify-package "^1.0.0" - -libnpmaccess@*, libnpmaccess@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-3.0.1.tgz#5b3a9de621f293d425191aa2e779102f84167fa8" - dependencies: - aproba "^2.0.0" - get-stream "^4.0.0" - npm-package-arg "^6.1.0" - npm-registry-fetch "^3.8.0" - -libnpmconfig@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/libnpmconfig/-/libnpmconfig-1.2.1.tgz#c0c2f793a74e67d4825e5039e7a02a0044dfcbc0" - dependencies: - figgy-pudding "^3.5.1" - find-up "^3.0.0" - ini "^1.3.5" - -libnpmhook@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-5.0.2.tgz#d12817b0fb893f36f1d5be20017f2aea25825d94" - dependencies: - aproba "^2.0.0" - figgy-pudding "^3.4.1" - get-stream "^4.0.0" - npm-registry-fetch "^3.8.0" - -libnpmorg@*, libnpmorg@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-1.0.0.tgz#979b868c48ba28c5820e3bb9d9e73c883c16a232" - dependencies: - aproba "^2.0.0" - figgy-pudding "^3.4.1" - get-stream "^4.0.0" - npm-registry-fetch "^3.8.0" - -libnpmpublish@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-1.1.1.tgz#ff0c6bb0b4ad2bda2ad1f5fba6760a4af37125f0" - dependencies: - aproba "^2.0.0" - figgy-pudding "^3.5.1" - get-stream "^4.0.0" - lodash.clonedeep "^4.5.0" - normalize-package-data "^2.4.0" - npm-package-arg "^6.1.0" - npm-registry-fetch "^3.8.0" - semver "^5.5.1" - ssri "^6.0.1" - -libnpmsearch@*, libnpmsearch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-2.0.0.tgz#de05af47ada81554a5f64276a69599070d4a5685" - dependencies: - figgy-pudding "^3.5.1" - get-stream "^4.0.0" - npm-registry-fetch "^3.8.0" - -libnpmteam@*, libnpmteam@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-1.0.1.tgz#ff704b1b6c06ea674b3b1101ac3e305f5114f213" - dependencies: - aproba "^2.0.0" - figgy-pudding "^3.4.1" - get-stream "^4.0.0" - npm-registry-fetch "^3.8.0" - -libnpx@^10.2.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/libnpx/-/libnpx-10.2.0.tgz#1bf4a1c9f36081f64935eb014041da10855e3102" - dependencies: - dotenv "^5.0.1" - npm-package-arg "^6.0.0" - rimraf "^2.6.2" - safe-buffer "^5.1.0" - update-notifier "^2.3.0" - which "^1.3.0" - y18n "^4.0.0" - yargs "^11.0.0" - -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -lock-verify@^2.0.2, lock-verify@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/lock-verify/-/lock-verify-2.1.0.tgz#fff4c918b8db9497af0c5fa7f6d71555de3ceb47" - dependencies: - npm-package-arg "^6.1.0" - semver "^5.4.1" - -lockfile@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.4.tgz#07f819d25ae48f87e538e6578b6964a4981a5609" - dependencies: - signal-exit "^3.0.2" - -lodash._baseindexof@*: - version "3.1.0" - resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c" - -lodash._baseuniq@~4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8" - dependencies: - lodash._createset "~4.0.0" - lodash._root "~3.0.0" - -lodash._bindcallback@*: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" - -lodash._cacheindexof@*: - version "3.0.2" - resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92" - -lodash._createcache@*: - version "3.1.2" - resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093" - dependencies: - lodash._getnative "^3.0.0" - -lodash._createset@~4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" - -lodash._getnative@*, lodash._getnative@^3.0.0: - version "3.9.1" - resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" - -lodash._root@~3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" - -lodash.capitalize@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz#f826c9b4e2a8511d84e3aca29db05e1a4f3b72a9" - -lodash.clonedeep@^4.5.0, lodash.clonedeep@~4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" - -lodash.escaperegexp@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347" - -lodash.flattendeep@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" - -lodash.get@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - -lodash.isplainobject@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - -lodash.isstring@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" - -lodash.memoize@~3.0.3: - version "3.0.4" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" - -lodash.restparam@*: - version "3.6.1" - resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" - -lodash.set@^4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" - -lodash.toarray@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" - -lodash.union@~4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" - -lodash.uniq@^4.5.0, lodash.uniq@~4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - -lodash.uniqby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302" - -lodash.without@~4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" - -lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0: - version "4.17.11" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" - -log-driver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.7.tgz#63b95021f0702fedfa2c9bb0a24e7797d71871d8" - -lolex@^2.2.0, lolex@^2.3.2: - version "2.7.5" - resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.7.5.tgz#113001d56bfc7e02d56e36291cc5c413d1aa0733" - -loose-envify@^1.0.0, loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -loud-rejection@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" - -lowercase-keys@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - -lru-cache@^4.0.1, lru-cache@^4.1.2, lru-cache@^4.1.3, lru-cache@^4.1.5: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - dependencies: - yallist "^3.0.2" - -macos-release@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.2.0.tgz#ab58d55dd4714f0a05ad4b0e90f4370fef5cdea8" - -make-dir@^1.0.0, make-dir@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" - dependencies: - pify "^3.0.0" - -make-dir@^2.0.0, make-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -make-fetch-happen@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz#141497cb878f243ba93136c83d8aba12c216c083" - dependencies: - agentkeepalive "^3.4.1" - cacache "^11.0.1" - http-cache-semantics "^3.8.1" - http-proxy-agent "^2.1.0" - https-proxy-agent "^2.2.1" - lru-cache "^4.1.2" - mississippi "^3.0.0" - node-fetch-npm "^2.0.2" - promise-retry "^1.1.1" - socks-proxy-agent "^4.0.0" - ssri "^6.0.0" - -map-age-cleaner@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - dependencies: - p-defer "^1.0.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - -map-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - -map-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - dependencies: - object-visit "^1.0.0" - -marked-terminal@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/marked-terminal/-/marked-terminal-3.2.0.tgz#3fc91d54569332bcf096292af178d82219000474" - dependencies: - ansi-escapes "^3.1.0" - cardinal "^2.1.1" - chalk "^2.4.1" - cli-table "^0.3.1" - node-emoji "^1.4.1" - supports-hyperlinks "^1.0.1" - -marked@^0.6.0: - version "0.6.2" - resolved "https://registry.yarnpkg.com/marked/-/marked-0.6.2.tgz#c574be8b545a8b48641456ca1dbe0e37b6dccc1a" - -math-random@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -meant@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/meant/-/meant-1.0.1.tgz#66044fea2f23230ec806fb515efea29c44d2115d" - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - -mem@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" - dependencies: - mimic-fn "^1.0.0" - -mem@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" - dependencies: - map-age-cleaner "^0.1.1" - mimic-fn "^2.0.0" - p-is-promise "^2.0.0" - -meow@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/meow/-/meow-4.0.1.tgz#d48598f6f4b1472f35bf6317a95945ace347f975" - dependencies: - camelcase-keys "^4.0.0" - decamelize-keys "^1.0.0" - loud-rejection "^1.0.0" - minimist "^1.1.3" - minimist-options "^3.0.1" - normalize-package-data "^2.3.4" - read-pkg-up "^3.0.0" - redent "^2.0.0" - trim-newlines "^2.0.0" - -merge-descriptors@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - -merge-source-map@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" - dependencies: - source-map "^0.6.1" - -merge2@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.3.tgz#7ee99dbd69bb6481689253f018488a1b902b0ed5" - -merkle-lib@^2.0.10: - version "2.0.10" - resolved "https://registry.yarnpkg.com/merkle-lib/-/merkle-lib-2.0.10.tgz#82b8dbae75e27a7785388b73f9d7725d0f6f3326" - -methods@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - -micromatch@^2.1.5: - version "2.3.11" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - dependencies: - 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" - -micromatch@^3.1.10: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.40.0: - version "1.40.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" - -mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.24" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" - dependencies: - mime-db "1.40.0" - -mime@^1.3.4: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - -mime@^2.0.3: - version "2.4.2" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.2.tgz#ce5229a5e99ffc313abac806b482c10e7ba6ac78" - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - -mimic-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - -minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - dependencies: - brace-expansion "^1.1.7" - -minimist-options@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - -minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - -minipass@^2.2.1, minipass@^2.3.4, minipass@^2.3.5: - version "2.3.5" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minizlib@^1.1.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" - dependencies: - minipass "^2.2.1" - -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - -mixin-deep@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - dependencies: - minimist "0.0.8" - -mocha@^5.0.1: - version "5.2.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz#6d8ae508f59167f940f2b5b3c4a612ae50c90ae6" - dependencies: - browser-stdout "1.3.1" - commander "2.15.1" - debug "3.1.0" - diff "3.5.0" - escape-string-regexp "1.0.5" - glob "7.1.2" - growl "1.10.5" - he "1.1.1" - minimatch "3.0.4" - mkdirp "0.5.1" - supports-color "5.4.0" - -modify-values@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" - -module-deps@^6.0.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.2.0.tgz#d41a2e790245ce319171e4e7c4d8c73993ba3cd5" - dependencies: - JSONStream "^1.0.3" - browser-resolve "^1.7.0" - cached-path-relative "^1.0.0" - concat-stream "~1.6.0" - defined "^1.0.0" - detective "^5.0.2" - duplexer2 "^0.1.2" - inherits "^2.0.1" - parents "^1.0.0" - readable-stream "^2.0.2" - resolve "^1.4.0" - stream-combiner2 "^1.1.1" - subarg "^1.0.0" - through2 "^2.0.0" - xtend "^4.0.0" - -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - -ms@^2.0.0, ms@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - -mute-stream@~0.0.4: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - -nan@^2.12.1, nan@^2.13.2, nan@^2.2.1: - version "2.13.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.13.2.tgz#f51dc7ae66ba7d5d55e1e6d4d8092e802c9aefe7" - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - -needle@^2.2.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.3.1.tgz#d272f2f4034afb9c4c9ab1379aabc17fc85c9388" - dependencies: - debug "^4.1.0" - iconv-lite "^0.4.4" - sax "^1.2.4" - -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - -neo-async@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835" - -nerf-dart@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/nerf-dart/-/nerf-dart-1.0.0.tgz#e6dab7febf5ad816ea81cf5c629c5a0ebde72c1a" - -nested-error-stacks@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz#0fbdcf3e13fe4994781280524f8b96b0cdff9c61" - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - -nise@^1.2.0: - version "1.4.10" - resolved "https://registry.yarnpkg.com/nise/-/nise-1.4.10.tgz#ae46a09a26436fae91a38a60919356ae6db143b6" - dependencies: - "@sinonjs/formatio" "^3.1.0" - "@sinonjs/text-encoding" "^0.7.1" - just-extend "^4.0.2" - lolex "^2.3.2" - path-to-regexp "^1.7.0" - -nock@^10.0.6: - version "10.0.6" - resolved "https://registry.yarnpkg.com/nock/-/nock-10.0.6.tgz#e6d90ee7a68b8cfc2ab7f6127e7d99aa7d13d111" - dependencies: - chai "^4.1.2" - debug "^4.1.0" - deep-equal "^1.0.0" - json-stringify-safe "^5.0.1" - lodash "^4.17.5" - mkdirp "^0.5.0" - propagate "^1.0.0" - qs "^6.5.1" - semver "^5.5.0" - -node-cmd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/node-cmd/-/node-cmd-3.0.0.tgz#38fff70a4aaa4f659d203eb57862737018e24f6f" - -node-emoji@^1.4.1, node-emoji@^1.8.1: - version "1.10.0" - resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da" - dependencies: - lodash.toarray "^4.4.0" - -node-fetch-npm@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz#7258c9046182dca345b4208eda918daf33697ff7" - dependencies: - encoding "^0.1.11" - json-parse-better-errors "^1.0.0" - safe-buffer "^5.1.1" - -node-fetch@^2.3.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.5.0.tgz#8028c49fc1191bba56a07adc6e2a954644a48501" - -node-gyp@^3.8.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" - dependencies: - fstream "^1.0.0" - glob "^7.0.3" - graceful-fs "^4.1.2" - mkdirp "^0.5.0" - nopt "2 || 3" - npmlog "0 || 1 || 2 || 3 || 4" - osenv "0" - request "^2.87.0" - rimraf "2" - semver "~5.3.0" - tar "^2.0.0" - which "1" - -node-gyp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-4.0.0.tgz#972654af4e5dd0cd2a19081b4b46fe0442ba6f45" - dependencies: - glob "^7.0.3" - graceful-fs "^4.1.2" - mkdirp "^0.5.0" - nopt "2 || 3" - npmlog "0 || 1 || 2 || 3 || 4" - osenv "0" - request "^2.87.0" - rimraf "2" - semver "~5.3.0" - tar "^4.4.8" - which "1" - -node-mocks-http@^1.7.0: - version "1.7.5" - resolved "https://registry.yarnpkg.com/node-mocks-http/-/node-mocks-http-1.7.5.tgz#ff1cc6ba8570f7def27d131403edcf86940829b6" - dependencies: - accepts "^1.3.5" - depd "^1.1.0" - fresh "^0.5.2" - merge-descriptors "^1.0.1" - methods "^1.1.2" - mime "^1.3.4" - parseurl "^1.3.1" - range-parser "^1.2.0" - type-is "^1.6.16" - -node-pre-gyp@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - -"nopt@2 || 3": - version "3.0.6" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" - dependencies: - abbrev "1" - -nopt@^4.0.1, nopt@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - dependencies: - abbrev "1" - osenv "^0.1.4" - -nopt@~1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" - dependencies: - abbrev "1" - -normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.4.0, normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.0.0, normalize-path@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-url@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.3.0.tgz#9c49e10fc1876aeb76dba88bf1b2b5d9fa57b2ee" - -npm-audit-report@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-1.3.2.tgz#303bc78cd9e4c226415076a4f7e528c89fc77018" - dependencies: - cli-table3 "^0.5.0" - console-control-strings "^1.1.0" - -npm-bundled@^1.0.1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" - -npm-cache-filename@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/npm-cache-filename/-/npm-cache-filename-1.0.2.tgz#ded306c5b0bfc870a9e9faf823bc5f283e05ae11" - -npm-install-checks@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-3.0.0.tgz#d4aecdfd51a53e3723b7b2f93b2ee28e307bc0d7" - dependencies: - semver "^2.3.0 || 3.x || 4 || 5" - -npm-lifecycle@^2.0.3, npm-lifecycle@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-2.1.1.tgz#0027c09646f0fd346c5c93377bdaba59c6748fdf" - dependencies: - byline "^5.0.0" - graceful-fs "^4.1.15" - node-gyp "^4.0.0" - resolve-from "^4.0.0" - slide "^1.1.6" - uid-number "0.0.6" - umask "^1.1.0" - which "^1.3.1" - -npm-logical-tree@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/npm-logical-tree/-/npm-logical-tree-1.2.1.tgz#44610141ca24664cad35d1e607176193fd8f5b88" - -"npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0", npm-package-arg@^6.0.0, npm-package-arg@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.0.tgz#15ae1e2758a5027efb4c250554b85a737db7fcc1" - dependencies: - hosted-git-info "^2.6.0" - osenv "^0.1.5" - semver "^5.5.0" - validate-npm-package-name "^3.0.0" - -npm-packlist@^1.1.12, npm-packlist@^1.1.6, npm-packlist@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.1.tgz#19064cdf988da80ea3cee45533879d90192bbfbc" - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - -npm-pick-manifest@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-2.2.3.tgz#32111d2a9562638bb2c8f2bf27f7f3092c8fae40" - dependencies: - figgy-pudding "^3.5.1" - npm-package-arg "^6.0.0" - semver "^5.4.1" - -npm-profile@*, npm-profile@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-4.0.1.tgz#d350f7a5e6b60691c7168fbb8392c3603583f5aa" - dependencies: - aproba "^1.1.2 || 2" - figgy-pudding "^3.4.1" - npm-registry-fetch "^3.8.0" - -npm-registry-fetch@^3.8.0, npm-registry-fetch@^3.9.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-3.9.0.tgz#44d841780e2833f06accb34488f8c7450d1a6856" - dependencies: - JSONStream "^1.3.4" - bluebird "^3.5.1" - figgy-pudding "^3.4.1" - lru-cache "^4.1.3" - make-fetch-happen "^4.0.1" - npm-package-arg "^6.1.0" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - dependencies: - path-key "^2.0.0" - -npm-user-validate@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-1.0.0.tgz#8ceca0f5cea04d4e93519ef72d0557a75122e951" - -npm@^6.8.0: - version "6.9.0" - resolved "https://registry.yarnpkg.com/npm/-/npm-6.9.0.tgz#5296720486814a64a7fb082de00c4b5cfd11211f" - dependencies: - JSONStream "^1.3.5" - abbrev "~1.1.1" - ansicolors "~0.3.2" - ansistyles "~0.1.3" - aproba "^2.0.0" - archy "~1.0.0" - bin-links "^1.1.2" - bluebird "^3.5.3" - byte-size "^5.0.1" - cacache "^11.3.2" - call-limit "~1.1.0" - chownr "^1.1.1" - ci-info "^2.0.0" - cli-columns "^3.1.2" - cli-table3 "^0.5.1" - cmd-shim "~2.0.2" - columnify "~1.5.4" - config-chain "^1.1.12" - detect-indent "~5.0.0" - detect-newline "^2.1.0" - dezalgo "~1.0.3" - editor "~1.0.0" - figgy-pudding "^3.5.1" - find-npm-prefix "^1.0.2" - fs-vacuum "~1.2.10" - fs-write-stream-atomic "~1.0.10" - gentle-fs "^2.0.1" - glob "^7.1.3" - graceful-fs "^4.1.15" - has-unicode "~2.0.1" - hosted-git-info "^2.7.1" - iferr "^1.0.2" - inflight "~1.0.6" - inherits "~2.0.3" - ini "^1.3.5" - init-package-json "^1.10.3" - is-cidr "^3.0.0" - json-parse-better-errors "^1.0.2" - lazy-property "~1.0.0" - libcipm "^3.0.3" - libnpm "^2.0.1" - libnpmhook "^5.0.2" - libnpx "^10.2.0" - lock-verify "^2.1.0" - lockfile "^1.0.4" - lodash._baseuniq "~4.6.0" - lodash.clonedeep "~4.5.0" - lodash.union "~4.6.0" - lodash.uniq "~4.5.0" - lodash.without "~4.4.0" - lru-cache "^4.1.5" - meant "~1.0.1" - mississippi "^3.0.0" - mkdirp "~0.5.1" - move-concurrently "^1.0.1" - node-gyp "^3.8.0" - nopt "~4.0.1" - normalize-package-data "^2.5.0" - npm-audit-report "^1.3.2" - npm-cache-filename "~1.0.2" - npm-install-checks "~3.0.0" - npm-lifecycle "^2.1.0" - npm-package-arg "^6.1.0" - npm-packlist "^1.4.1" - npm-pick-manifest "^2.2.3" - npm-registry-fetch "^3.9.0" - npm-user-validate "~1.0.0" - npmlog "~4.1.2" - once "~1.4.0" - opener "^1.5.1" - osenv "^0.1.5" - pacote "^9.5.0" - path-is-inside "~1.0.2" - promise-inflight "~1.0.1" - qrcode-terminal "^0.12.0" - query-string "^6.2.0" - qw "~1.0.1" - read "~1.0.7" - read-cmd-shim "~1.0.1" - read-installed "~4.0.3" - read-package-json "^2.0.13" - read-package-tree "^5.2.2" - readable-stream "^3.1.1" - request "^2.88.0" - retry "^0.12.0" - rimraf "^2.6.3" - safe-buffer "^5.1.2" - semver "^5.6.0" - sha "~2.0.1" - slide "~1.1.6" - sorted-object "~2.0.1" - sorted-union-stream "~2.1.3" - ssri "^6.0.1" - stringify-package "^1.0.0" - tar "^4.4.8" - text-table "~0.2.0" - tiny-relative-date "^1.3.0" - uid-number "0.0.6" - umask "~1.1.0" - unique-filename "^1.1.1" - unpipe "~1.0.0" - update-notifier "^2.5.0" - uuid "^3.3.2" - validate-npm-package-license "^3.0.4" - validate-npm-package-name "~3.0.0" - which "^1.3.1" - worker-farm "^1.6.0" - write-file-atomic "^2.4.2" - -"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.2, npmlog@^4.1.2, npmlog@~4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - dependencies: - 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@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - -nyc@*: - version "14.1.1" - resolved "https://registry.yarnpkg.com/nyc/-/nyc-14.1.1.tgz#151d64a6a9f9f5908a1b73233931e4a0a3075eeb" - dependencies: - archy "^1.0.0" - caching-transform "^3.0.2" - convert-source-map "^1.6.0" - cp-file "^6.2.0" - find-cache-dir "^2.1.0" - find-up "^3.0.0" - foreground-child "^1.5.6" - glob "^7.1.3" - istanbul-lib-coverage "^2.0.5" - istanbul-lib-hook "^2.0.7" - istanbul-lib-instrument "^3.3.0" - istanbul-lib-report "^2.0.8" - istanbul-lib-source-maps "^3.0.6" - istanbul-reports "^2.2.4" - js-yaml "^3.13.1" - make-dir "^2.1.0" - merge-source-map "^1.1.0" - resolve-from "^4.0.0" - rimraf "^2.6.3" - signal-exit "^3.0.2" - spawn-wrap "^1.4.2" - test-exclude "^5.2.3" - uuid "^3.3.2" - yargs "^13.2.2" - yargs-parser "^13.0.0" - -nyc@^13.3.0: - version "13.3.0" - resolved "https://registry.yarnpkg.com/nyc/-/nyc-13.3.0.tgz#da4dbe91a9c8b9ead3f4f3344c76f353e3c78c75" - dependencies: - archy "^1.0.0" - arrify "^1.0.1" - caching-transform "^3.0.1" - convert-source-map "^1.6.0" - find-cache-dir "^2.0.0" - find-up "^3.0.0" - foreground-child "^1.5.6" - glob "^7.1.3" - istanbul-lib-coverage "^2.0.3" - istanbul-lib-hook "^2.0.3" - istanbul-lib-instrument "^3.1.0" - istanbul-lib-report "^2.0.4" - istanbul-lib-source-maps "^3.0.2" - istanbul-reports "^2.1.1" - make-dir "^1.3.0" - merge-source-map "^1.1.0" - resolve-from "^4.0.0" - rimraf "^2.6.3" - signal-exit "^3.0.2" - spawn-wrap "^1.4.2" - test-exclude "^5.1.0" - uuid "^3.3.2" - yargs "^12.0.5" - yargs-parser "^11.1.1" - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - -object-component@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-inspect@~1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" - -object-keys@^1.0.12: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - dependencies: - isobject "^3.0.0" - -object.omit@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" - dependencies: - for-own "^0.1.4" - is-extendable "^0.1.1" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - dependencies: - isobject "^3.0.1" - -octokit-pagination-methods@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4" - -once@^1.3.0, once@^1.3.1, once@^1.4.0, once@~1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - dependencies: - wrappy "1" - -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - dependencies: - mimic-fn "^1.0.0" - -opener@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed" - -optimist@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" - -optionator@^0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.4" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - wordwrap "~1.0.0" - -os-browserify@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - -os-homedir@^1.0.0, os-homedir@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - -os-locale@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" - dependencies: - execa "^0.7.0" - lcid "^1.0.0" - mem "^1.1.0" - -os-locale@^3.0.0, os-locale@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" - dependencies: - execa "^1.0.0" - lcid "^2.0.0" - mem "^4.0.0" - -os-name@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801" - dependencies: - macos-release "^2.2.0" - windows-release "^3.1.0" - -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - -osenv@0, osenv@^0.1.4, osenv@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -output-file-sync@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" - dependencies: - graceful-fs "^4.1.4" - mkdirp "^0.5.1" - object-assign "^4.1.0" - -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - -p-filter@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-filter/-/p-filter-1.0.0.tgz#629d317150209c8fd508ba137713ef4bb920e9db" - dependencies: - p-map "^1.0.0" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - -p-is-promise@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - dependencies: - p-try "^1.0.0" - -p-limit@^2.0.0, p-limit@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" - dependencies: - p-try "^2.0.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - dependencies: - p-limit "^1.1.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - dependencies: - p-limit "^2.0.0" - -p-locate@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - dependencies: - p-limit "^2.2.0" - -p-map@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" - -p-reduce@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-2.1.0.tgz#09408da49507c6c274faa31f28df334bc712b64a" - -p-retry@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" - dependencies: - retry "^0.12.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - -package-hash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-3.0.0.tgz#50183f2d36c9e3e528ea0a8605dff57ce976f88e" - dependencies: - graceful-fs "^4.1.15" - hasha "^3.0.0" - lodash.flattendeep "^4.4.0" - release-zalgo "^1.0.0" - -package-json@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" - dependencies: - got "^6.7.1" - registry-auth-token "^3.0.1" - registry-url "^3.0.3" - semver "^5.1.0" - -pacote@^9.1.0, pacote@^9.2.3, pacote@^9.5.0: - version "9.5.0" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-9.5.0.tgz#85f3013a3f6dd51c108b0ccabd3de8102ddfaeda" - dependencies: - bluebird "^3.5.3" - cacache "^11.3.2" - figgy-pudding "^3.5.1" - get-stream "^4.1.0" - glob "^7.1.3" - lru-cache "^5.1.1" - make-fetch-happen "^4.0.1" - minimatch "^3.0.4" - minipass "^2.3.5" - mississippi "^3.0.0" - mkdirp "^0.5.1" - normalize-package-data "^2.4.0" - npm-package-arg "^6.1.0" - npm-packlist "^1.1.12" - npm-pick-manifest "^2.2.3" - npm-registry-fetch "^3.8.0" - osenv "^0.1.5" - promise-inflight "^1.0.1" - promise-retry "^1.1.1" - protoduck "^5.0.1" - rimraf "^2.6.2" - safe-buffer "^5.1.2" - semver "^5.6.0" - ssri "^6.0.1" - tar "^4.4.8" - unique-filename "^1.1.1" - which "^1.3.1" - -pako@~1.0.5: - version "1.0.10" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" - -parallel-transform@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" - dependencies: - cyclist "~0.2.2" - inherits "^2.0.3" - readable-stream "^2.1.5" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - dependencies: - callsites "^3.0.0" - -parents@^1.0.0, parents@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751" - dependencies: - path-platform "~0.11.15" - -parse-asn1@^5.0.0: - version "5.1.4" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.4.tgz#37f6628f823fbdeb2273b4d540434a22f3ef1fcc" - dependencies: - asn1.js "^4.0.0" - browserify-aes "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-github-url@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/parse-github-url/-/parse-github-url-1.0.2.tgz#242d3b65cbcdda14bb50439e3242acf6971db395" - -parse-glob@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" - dependencies: - glob-base "^0.3.0" - is-dotfile "^1.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.0" - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - dependencies: - error-ex "^1.2.0" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parseqs@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" - dependencies: - better-assert "~1.0.0" - -parseuri@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" - dependencies: - better-assert "~1.0.0" - -parseurl@^1.3.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - -path-browserify@~0.0.0: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - -path-is-inside@^1.0.1, path-is-inside@^1.0.2, path-is-inside@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - -path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - -path-platform@~0.11.15: - version "0.11.15" - resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2" - -path-to-regexp@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" - dependencies: - isarray "0.0.1" - -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - dependencies: - pify "^2.0.0" - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - dependencies: - pify "^3.0.0" - -pathval@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" - -pbkdf2@^3.0.3, pbkdf2@^3.0.9: - version "3.0.17" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - -pify@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - -pkg-conf@^2.0.0, pkg-conf@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.1.0.tgz#2126514ca6f2abfebd168596df18ba57867f0058" - dependencies: - find-up "^2.0.0" - load-json-file "^4.0.0" - -pkg-config@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pkg-config/-/pkg-config-1.1.1.tgz#557ef22d73da3c8837107766c52eadabde298fe4" - dependencies: - debug-log "^1.0.0" - find-root "^1.0.0" - xtend "^4.0.1" - -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - dependencies: - find-up "^2.1.0" - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - dependencies: - find-up "^3.0.0" - -pluralize@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" - -pngjs@^3.3.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - -prepend-http@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - -preserve@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - -prettier@^1.14.2: - version "1.17.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.17.0.tgz#53b303676eed22cc14a9f0cec09b477b3026c008" - -private@^0.1.6, private@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - -process-nextick-args@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" - -process@~0.11.0: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - -promise-inflight@^1.0.1, promise-inflight@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - -promise-retry@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-1.1.1.tgz#6739e968e3051da20ce6497fb2b50f6911df3d6d" - dependencies: - err-code "^1.0.0" - retry "^0.10.0" - -promzard@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" - dependencies: - read "1" - -prop-types@^15.6.0: - version "15.7.2" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.8.1" - -propagate@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/propagate/-/propagate-1.0.0.tgz#00c2daeedda20e87e3782b344adba1cddd6ad709" - -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - -protoduck@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/protoduck/-/protoduck-5.0.1.tgz#03c3659ca18007b69a50fd82a7ebcc516261151f" - dependencies: - genfun "^5.0.0" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - -psl@^1.1.24: - version "1.1.31" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.31.tgz#e9aa86d0101b5b105cbe93ac6b784cd547276184" - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - -punycode@^1.3.2, punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - -pushdata-bitcoin@Bitcoin-com/pushdata-bitcoin#1.2.1: - version "1.2.1" - resolved "https://codeload.github.com/Bitcoin-com/pushdata-bitcoin/tar.gz/9b75eebe597853c6eeaec3e6c44b6d9c9cd7ee86" - dependencies: - bitcoincash-ops Bitcoin-com/bitcoincash-ops#2.0.0 - -q@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - -qrcode-terminal@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#bb5b699ef7f9f0505092a3748be4464fe71b5819" - -qrcode@^1.2.0: - version "1.3.3" - resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.3.3.tgz#5ef50c0c890cffa1897f452070f0f094936993de" - dependencies: - can-promise "0.0.1" - dijkstrajs "^1.0.1" - isarray "^2.0.1" - pngjs "^3.3.0" - yargs "^12.0.5" - -qs@^6.3.0, qs@^6.5.1: - version "6.7.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - -query-string@^6.2.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.5.0.tgz#2e1a70125af01f6f04573692d02c09302a1d8bfc" - dependencies: - decode-uri-component "^0.2.0" - split-on-first "^1.0.0" - strict-uri-encode "^2.0.0" - -querystring-es3@~0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - -quick-lru@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" - -qw@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/qw/-/qw-1.0.1.tgz#efbfdc740f9ad054304426acb183412cc8b996d4" - -random-bytes@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b" - -randomatic@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" - dependencies: - is-number "^4.0.0" - kind-of "^6.0.0" - math-random "^1.0.1" - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.0.6: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" - -rc@^1.0.1, rc@^1.1.6, rc@^1.2.7, rc@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -react-is@^16.8.1: - version "16.8.6" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" - -read-cmd-shim@^1.0.1, read-cmd-shim@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz#2d5d157786a37c055d22077c32c53f8329e91c7b" - dependencies: - graceful-fs "^4.1.2" - -read-installed@~4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/read-installed/-/read-installed-4.0.3.tgz#ff9b8b67f187d1e4c29b9feb31f6b223acd19067" - dependencies: - debuglog "^1.0.1" - read-package-json "^2.0.0" - readdir-scoped-modules "^1.0.0" - semver "2 || 3 || 4 || 5" - slide "~1.1.3" - util-extend "^1.0.1" - optionalDependencies: - graceful-fs "^4.1.2" - -read-only-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0" - dependencies: - readable-stream "^2.0.2" - -"read-package-json@1 || 2", read-package-json@^2.0.0, read-package-json@^2.0.13: - version "2.0.13" - resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.0.13.tgz#2e82ebd9f613baa6d2ebe3aa72cefe3f68e41f4a" - dependencies: - glob "^7.1.1" - json-parse-better-errors "^1.0.1" - normalize-package-data "^2.0.0" - slash "^1.0.0" - optionalDependencies: - graceful-fs "^4.1.2" - -read-package-tree@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.2.2.tgz#4b6a0ef2d943c1ea36a578214c9a7f6b7424f7a8" - dependencies: - debuglog "^1.0.1" - dezalgo "^1.0.0" - once "^1.3.0" - read-package-json "^2.0.0" - readdir-scoped-modules "^1.0.0" - -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - dependencies: - find-up "^2.0.0" - read-pkg "^2.0.0" - -read-pkg-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" - dependencies: - find-up "^2.0.0" - read-pkg "^3.0.0" - -read-pkg-up@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" - dependencies: - find-up "^3.0.0" - read-pkg "^3.0.0" - -read-pkg-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-5.0.0.tgz#b6a6741cb144ed3610554f40162aa07a6db621b8" - dependencies: - find-up "^3.0.0" - read-pkg "^5.0.0" - -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" - -read-pkg@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.1.1.tgz#5cf234dde7a405c90c88a519ab73c467e9cb83f5" - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^4.0.0" - type-fest "^0.4.1" - -read@1, read@~1.0.1, read@~1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" - dependencies: - mute-stream "~0.0.4" - -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.1.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.3.0.tgz#cb8011aad002eb717bf040291feba8569c986fb9" - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readable-stream@~1.1.10: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readdir-scoped-modules@*, readdir-scoped-modules@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747" - dependencies: - debuglog "^1.0.1" - dezalgo "^1.0.0" - graceful-fs "^4.1.2" - once "^1.3.0" - -readdirp@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -redent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" - dependencies: - indent-string "^3.0.0" - strip-indent "^2.0.0" - -redeyed@~2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-2.1.1.tgz#8984b5815d99cb220469c99eeeffe38913e6cc0b" - dependencies: - esprima "~4.0.0" - -regenerate@^1.2.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - -regenerator-runtime@^0.10.5: - version "0.10.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" - dependencies: - babel-runtime "^6.18.0" - babel-types "^6.19.0" - private "^0.1.6" - -regex-cache@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" - dependencies: - is-equal-shallow "^0.1.3" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexpp@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" - -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -registry-auth-token@^3.0.1, registry-auth-token@^3.3.1: - version "3.4.0" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" - dependencies: - rc "^1.1.6" - safe-buffer "^5.0.1" - -registry-url@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" - dependencies: - rc "^1.0.1" - -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - dependencies: - jsesc "~0.5.0" - -release-zalgo@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/release-zalgo/-/release-zalgo-1.0.0.tgz#09700b7e5074329739330e535c5a90fb67851730" - dependencies: - es6-error "^4.0.1" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - -repeat-string@^1.5.2, repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - dependencies: - is-finite "^1.0.0" - -repl.history@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/repl.history/-/repl.history-0.1.4.tgz#80367171f3781d6e4299c71758c253097f5d5832" - -request@^2.86.0, request@^2.87.0, request@^2.88.0: - version "2.88.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.0" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.4.3" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - -require-uncached@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" - dependencies: - caller-path "^0.1.0" - resolve-from "^1.0.0" - -resolve-from@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - -resolve@1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - -resolve@^1.1.4, resolve@^1.10.0, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.8.1, resolve@~1.10.0: - version "1.10.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.1.tgz#664842ac960795bbe758221cdccda61fb64b5f18" - dependencies: - path-parse "^1.0.6" - -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - -resumer@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" - dependencies: - through "~2.3.4" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - -retry@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - -rimraf@2, rimraf@2.6.3, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@~2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - dependencies: - glob "^7.1.3" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -run-async@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" - dependencies: - is-promise "^2.1.0" - -run-parallel@^1.1.2: - version "1.1.9" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" - -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - dependencies: - aproba "^1.1.1" - -rx-lite-aggregates@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" - dependencies: - rx-lite "*" - -rx-lite@*, rx-lite@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" - -rxjs@^6.4.0: - version "6.5.2" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" - dependencies: - tslib "^1.9.0" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - -samsam@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.3.0.tgz#8d1d9350e25622da30de3e44ba692b5221ab7c50" - -satoshi-bitcoin@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/satoshi-bitcoin/-/satoshi-bitcoin-1.0.4.tgz#d002b677075d5cbbf2c211a8df3254bcdf50b1e4" - dependencies: - big.js "^3.1.3" - -sax@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - -scryptsy@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-2.0.0.tgz#262c36f0231cfa7654e2363fa394cd2dec66f378" - -secp256k1@^3.0.1: - version "3.7.0" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.7.0.tgz#e85972f847b586cc4b2acd69497d3f80afaa7505" - dependencies: - bindings "^1.5.0" - bip66 "^1.1.5" - bn.js "^4.11.8" - create-hash "^1.2.0" - drbg.js "^1.0.1" - elliptic "^6.4.1" - nan "^2.13.2" - safe-buffer "^5.1.2" - -semantic-release@^15.13.3: - version "15.13.12" - resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-15.13.12.tgz#1128361fc36301ef3a1ea137dd277bdddf9f68c1" - dependencies: - "@semantic-release/commit-analyzer" "^6.1.0" - "@semantic-release/error" "^2.2.0" - "@semantic-release/github" "^5.1.0" - "@semantic-release/npm" "^5.0.5" - "@semantic-release/release-notes-generator" "^7.1.2" - aggregate-error "^3.0.0" - cosmiconfig "^5.0.1" - debug "^4.0.0" - env-ci "^3.0.0" - execa "^1.0.0" - figures "^2.0.0" - find-versions "^3.0.0" - get-stream "^5.0.0" - git-log-parser "^1.2.0" - hook-std "^2.0.0" - hosted-git-info "^2.7.1" - lodash "^4.17.4" - marked "^0.6.0" - marked-terminal "^3.2.0" - p-locate "^4.0.0" - p-reduce "^2.0.0" - read-pkg-up "^5.0.0" - resolve-from "^5.0.0" - semver "^6.0.0" - signale "^1.2.1" - yargs "^13.1.0" - -semver-diff@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" - dependencies: - semver "^5.0.3" - -semver-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" - -"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" - -semver@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.0.0.tgz#05e359ee571e5ad7ed641a6eec1e547ba52dea65" - -semver@~5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" - -set-blocking@^2.0.0, set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - -set-value@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.1" - to-object-path "^0.3.0" - -set-value@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -sha.js@^2.4.0, sha.js@^2.4.8, sha.js@~2.4.4: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -sha@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/sha/-/sha-2.0.1.tgz#6030822fbd2c9823949f8f72ed6411ee5cf25aae" - dependencies: - graceful-fs "^4.1.2" - readable-stream "^2.0.2" - -shasum@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz#e7012310d8f417f4deb5712150e5678b87ae565f" - dependencies: - json-stable-stringify "~0.0.0" - sha.js "~2.4.4" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - dependencies: - shebang-regex "^1.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - -shell-quote@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" - dependencies: - array-filter "~0.0.0" - array-map "~0.0.0" - array-reduce "~0.0.0" - jsonify "~0.0.0" - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - -signale@^1.2.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/signale/-/signale-1.4.0.tgz#c4be58302fb0262ac00fc3d886a7c113759042f1" - dependencies: - chalk "^2.3.2" - figures "^2.0.0" - pkg-conf "^2.1.0" - -simple-concat@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6" - -sinon@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-4.5.0.tgz#427ae312a337d3c516804ce2754e8c0d5028cb04" - dependencies: - "@sinonjs/formatio" "^2.0.0" - diff "^3.1.0" - lodash.get "^4.4.2" - lolex "^2.2.0" - nise "^1.2.0" - supports-color "^5.1.0" - type-detect "^4.0.5" - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" - -slice-ansi@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" - dependencies: - is-fullwidth-code-point "^2.0.0" - -slice-ansi@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" - dependencies: - ansi-styles "^3.2.0" - astral-regex "^1.0.0" - is-fullwidth-code-point "^2.0.0" - -slide@^1.1.6, slide@~1.1.3, slide@~1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" - -smart-buffer@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.0.2.tgz#5207858c3815cc69110703c6b94e46c15634395d" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -socket.io-adapter@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b" - -socket.io-client@2.2.0, socket.io-client@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.2.0.tgz#84e73ee3c43d5020ccc1a258faeeb9aec2723af7" - dependencies: - backo2 "1.0.2" - base64-arraybuffer "0.1.5" - component-bind "1.0.0" - component-emitter "1.2.1" - debug "~3.1.0" - engine.io-client "~3.3.1" - has-binary2 "~1.0.2" - has-cors "1.1.0" - indexof "0.0.1" - object-component "0.0.3" - parseqs "0.0.5" - parseuri "0.0.5" - socket.io-parser "~3.3.0" - to-array "0.1.4" - -socket.io-parser@~3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.0.tgz#2b52a96a509fdf31440ba40fed6094c7d4f1262f" - dependencies: - component-emitter "1.2.1" - debug "~3.1.0" - isarray "2.0.1" - -socket.io@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.2.0.tgz#f0f633161ef6712c972b307598ecd08c9b1b4d5b" - dependencies: - debug "~4.1.0" - engine.io "~3.3.1" - has-binary2 "~1.0.2" - socket.io-adapter "~1.1.0" - socket.io-client "2.2.0" - socket.io-parser "~3.3.0" - -socks-proxy-agent@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386" - dependencies: - agent-base "~4.2.1" - socks "~2.3.2" - -socks@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.3.2.tgz#ade388e9e6d87fdb11649c15746c578922a5883e" - dependencies: - ip "^1.1.5" - smart-buffer "4.0.2" - -sorted-object@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/sorted-object/-/sorted-object-2.0.1.tgz#7d631f4bd3a798a24af1dffcfbfe83337a5df5fc" - -sorted-union-stream@~2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/sorted-union-stream/-/sorted-union-stream-2.1.3.tgz#c7794c7e077880052ff71a8d4a2dbb4a9a638ac7" - dependencies: - from2 "^1.3.0" - stream-iterate "^1.1.0" - -source-map-resolve@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" - dependencies: - atob "^2.1.1" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - dependencies: - source-map "^0.5.6" - -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - -source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.3: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - -source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - -spawn-error-forwarder@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz#1afd94738e999b0346d7b9fc373be55e07577029" - -spawn-wrap@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.4.2.tgz#cff58e73a8224617b6561abdc32586ea0c82248c" - dependencies: - foreground-child "^1.5.6" - mkdirp "^0.5.0" - os-homedir "^1.0.1" - rimraf "^2.6.2" - signal-exit "^3.0.2" - which "^1.3.0" - -spdx-correct@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" - -spdx-expression-parse@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz#75ecd1a88de8c184ef015eafb51b5b48bfd11bb1" - -split-on-first@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - dependencies: - extend-shallow "^3.0.0" - -split2@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/split2/-/split2-2.2.0.tgz#186b2575bcf83e85b7d18465756238ee4ee42493" - dependencies: - through2 "^2.0.2" - -split2@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/split2/-/split2-1.0.0.tgz#52e2e221d88c75f9a73f90556e263ff96772b314" - dependencies: - through2 "~2.0.0" - -split@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" - dependencies: - through "2" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - dependencies: - 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" - -ssri@^6.0.0, ssri@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" - dependencies: - figgy-pudding "^3.5.1" - -standard-engine@~8.0.0: - version "8.0.1" - resolved "https://registry.yarnpkg.com/standard-engine/-/standard-engine-8.0.1.tgz#0b77be8d7ab963675717dbeac1ef1d6675fb62f0" - dependencies: - deglob "^2.1.0" - get-stdin "^6.0.0" - minimist "^1.1.0" - pkg-conf "^2.0.0" - -standard@^11.0.1: - version "11.0.1" - resolved "https://registry.yarnpkg.com/standard/-/standard-11.0.1.tgz#49be40c76f1d564964b22bbf7309929ad0335e29" - dependencies: - eslint "~4.18.0" - eslint-config-standard "11.0.0" - eslint-config-standard-jsx "5.0.0" - eslint-plugin-import "~2.9.0" - eslint-plugin-node "~6.0.0" - eslint-plugin-promise "~3.7.0" - eslint-plugin-react "~7.7.0" - eslint-plugin-standard "~3.0.1" - standard-engine "~8.0.0" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -stream-browserify@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-combiner2@^1.1.1, stream-combiner2@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" - dependencies: - duplexer2 "~0.1.0" - readable-stream "^2.0.2" - -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.0.0: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-iterate@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/stream-iterate/-/stream-iterate-1.2.0.tgz#2bd7c77296c1702a46488b8ad41f79865eecd4e1" - dependencies: - readable-stream "^2.1.5" - stream-shift "^1.0.0" - -stream-shift@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" - -stream-splicer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.0.tgz#1b63be438a133e4b671cc1935197600175910d83" - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.2" - -strict-uri-encode@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string.prototype.trim@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz#d04de2c89e137f4d7d206f086b5ed2fae6be8cea" - dependencies: - define-properties "^1.1.2" - es-abstract "^1.5.0" - function-bind "^1.0.2" - -string_decoder@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" - dependencies: - safe-buffer "~5.1.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - dependencies: - safe-buffer "~5.1.0" - -stringify-package@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stringify-package/-/stringify-package-1.0.0.tgz#e02828089333d7d45cd8c287c30aa9a13375081b" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - dependencies: - ansi-regex "^4.1.0" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - -strip-indent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" - -strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - -subarg@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" - dependencies: - minimist "^1.1.0" - -supports-color@5.4.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" - dependencies: - has-flag "^3.0.0" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - -supports-color@^5.0.0, supports-color@^5.1.0, supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - dependencies: - has-flag "^3.0.0" - -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - dependencies: - has-flag "^3.0.0" - -supports-hyperlinks@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz#71daedf36cc1060ac5100c351bb3da48c29c0ef7" - dependencies: - has-flag "^2.0.0" - supports-color "^5.0.0" - -syntax-error@^1.1.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.4.0.tgz#2d9d4ff5c064acb711594a3e3b95054ad51d907c" - dependencies: - acorn-node "^1.2.0" - -table@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" - dependencies: - ajv "^5.2.3" - ajv-keywords "^2.1.0" - chalk "^2.1.0" - lodash "^4.17.4" - slice-ansi "1.0.0" - string-width "^2.1.1" - -table@^5.2.3: - version "5.3.2" - resolved "https://registry.yarnpkg.com/table/-/table-5.3.2.tgz#3aab56a41b2905bf66a6a006bd716fa1e78d4702" - dependencies: - ajv "^6.9.1" - lodash "^4.17.11" - slice-ansi "^2.1.0" - string-width "^3.0.0" - -tape@*: - version "4.10.1" - resolved "https://registry.yarnpkg.com/tape/-/tape-4.10.1.tgz#f73be60888dcb120f08b57f947af65a829506a5f" - dependencies: - deep-equal "~1.0.1" - defined "~1.0.0" - for-each "~0.3.3" - function-bind "~1.1.1" - glob "~7.1.3" - has "~1.0.3" - inherits "~2.0.3" - minimist "~1.2.0" - object-inspect "~1.6.0" - resolve "~1.10.0" - resumer "~0.0.0" - string.prototype.trim "~1.1.2" - through "~2.3.8" - -tar@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" - dependencies: - block-stream "*" - fstream "^1.0.2" - inherits "2" - -tar@^4, tar@^4.4.8: - version "4.4.8" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d" - dependencies: - chownr "^1.1.1" - fs-minipass "^1.2.5" - minipass "^2.3.4" - minizlib "^1.1.1" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.2" - -term-size@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" - dependencies: - execa "^0.7.0" - -test-exclude@^5.1.0, test-exclude@^5.2.3: - version "5.2.3" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" - dependencies: - glob "^7.1.3" - minimatch "^3.0.4" - read-pkg-up "^4.0.0" - require-main-filename "^2.0.0" - -text-extensions@^1.0.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" - -text-table@^0.2.0, text-table@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - -through2@^2.0.0, through2@^2.0.2, through2@~2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through@2, "through@>=2.2.7 <3", through@^2.3.6, through@~2.3.4, through@~2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - -timed-out@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - -timers-browserify@^1.0.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" - dependencies: - process "~0.11.0" - -tiny-relative-date@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz#fa08aad501ed730f31cc043181d995c39a935e07" - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - dependencies: - os-tmpdir "~1.0.2" - -to-array@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -touch@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" - dependencies: - nopt "~1.0.10" - -tough-cookie@~2.4.3: - version "2.4.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" - dependencies: - psl "^1.1.24" - punycode "^1.4.1" - -traverse@~0.6.6: - version "0.6.6" - resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" - -trim-newlines@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" - -trim-off-newlines@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - -tslib@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" - -tty-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811" - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - dependencies: - prelude-ls "~1.1.2" - -type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - -type-fest@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.4.1.tgz#8bdf77743385d8a4f13ba95f610f5ccd68c728f8" - -type-is@^1.6.16: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - -typeforce@^1.11.3: - version "1.18.0" - resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.18.0.tgz#d7416a2c5845e085034d70fcc5b6cc4a90edbfdc" - -typescript@^3.4.5: - version "3.4.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.4.5.tgz#2d2618d10bb566572b8d7aad5180d84257d70a99" - -uglify-js@^3.1.4: - version "3.5.11" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.5.11.tgz#833442c0aa29b3a7d34344c7c63adaa3f3504f6a" - dependencies: - commander "~2.20.0" - source-map "~0.6.1" - -uid-number@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" - -umask@^1.1.0, umask@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" - -umd@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz#aa9fe653c42b9097678489c01000acb69f0b26cf" - -undeclared-identifiers@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz#9254c1d37bdac0ac2b52de4b6722792d2a91e30f" - dependencies: - acorn-node "^1.3.0" - dash-ast "^1.0.0" - get-assigned-identifiers "^1.2.0" - simple-concat "^1.0.0" - xtend "^4.0.1" - -union-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^0.4.3" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.1.tgz#5e9edc6d1ce8fb264db18a507ef9bd8544451ca6" - dependencies: - imurmurhash "^0.1.4" - -unique-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" - dependencies: - crypto-random-string "^1.0.0" - -universal-user-agent@^2.0.0, universal-user-agent@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-2.1.0.tgz#5abfbcc036a1ba490cb941f8fd68c46d3669e8e4" - dependencies: - os-name "^3.0.0" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - -unorm@^1.3.3: - version "1.5.0" - resolved "https://registry.yarnpkg.com/unorm/-/unorm-1.5.0.tgz#01fa9b76f1c60f7916834605c032aa8962c3f00a" - -unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -unzip-response@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" - -update-notifier@^2.3.0, update-notifier@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" - dependencies: - boxen "^1.2.1" - chalk "^2.0.1" - configstore "^3.0.0" - import-lazy "^2.1.0" - is-ci "^1.0.10" - is-installed-globally "^0.1.0" - is-npm "^1.0.0" - latest-version "^3.0.0" - semver-diff "^2.0.0" - xdg-basedir "^3.0.0" - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - -url-join@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.0.tgz#4d3340e807d3773bda9991f8305acdcc2a665d2a" - -url-parse-lax@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - dependencies: - prepend-http "^1.0.1" - -url-template@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/url-template/-/url-template-2.0.8.tgz#fc565a3cccbff7730c775f5641f9555791439f21" - -url@~0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - -user-home@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - -util-extend@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz#a7c216d267545169637b3b6edc6ca9119e2ff93f" - -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - dependencies: - inherits "2.0.1" - -util@~0.10.1: - version "0.10.4" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" - dependencies: - inherits "2.0.3" - -uuid@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" - -v8flags@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" - dependencies: - user-home "^1.1.1" - -validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -validate-npm-package-name@^3.0.0, validate-npm-package-name@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" - dependencies: - builtins "^1.0.3" - -varuint-bitcoin@^1.0.1, varuint-bitcoin@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz#7a343f50537607af6a3059312b9782a170894540" - dependencies: - safe-buffer "^5.1.1" - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vm-browserify@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" - -wcwidth@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - dependencies: - defaults "^1.0.3" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - -which@1, which@^1.2.9, which@^1.3.0, which@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - dependencies: - string-width "^1.0.2 || 2" - -widest-line@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" - dependencies: - string-width "^2.1.1" - -wif@^2.0.1, wif@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/wif/-/wif-2.0.6.tgz#08d3f52056c66679299726fade0d432ae74b4704" - dependencies: - bs58check "<3.0.0" - -window-or-global@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/window-or-global/-/window-or-global-1.0.1.tgz#dbe45ba2a291aabc56d62cf66c45b7fa322946de" - -windows-release@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.2.0.tgz#8122dad5afc303d833422380680a79cdfa91785f" - dependencies: - execa "^1.0.0" - -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - -wordwrap@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - -worker-farm@^1.6.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - dependencies: - errno "~0.1.7" - -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - -write-file-atomic@^2.0.0, write-file-atomic@^2.3.0, write-file-atomic@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.2.tgz#a7181706dfba17855d221140a9c06e15fcdd87b9" - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - -write@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" - dependencies: - mkdirp "^0.5.1" - -write@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" - dependencies: - mkdirp "^0.5.1" - -ws@~6.1.0: - version "6.1.4" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" - dependencies: - async-limiter "~1.0.0" - -xdg-basedir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" - -xmlhttprequest-ssl@~1.5.4: - version "1.5.5" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" - -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" - -y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - -"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - -yallist@^3.0.0, yallist@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" - -yargs-parser@^11.1.1: - version "11.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^13.0.0: - version "13.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.0.tgz#7016b6dd03e28e1418a510e258be4bff5a31138f" - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^9.0.2: - version "9.0.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" - dependencies: - camelcase "^4.1.0" - -yargs@^11.0.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" - dependencies: - 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 "^9.0.2" - -yargs@^12.0.5: - version "12.0.5" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" - dependencies: - cliui "^4.0.0" - decamelize "^1.2.0" - find-up "^3.0.0" - get-caller-file "^1.0.1" - os-locale "^3.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 || ^4.0.0" - yargs-parser "^11.1.1" - -yargs@^13.1.0, yargs@^13.2.2: - version "13.2.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.2.tgz#0c101f580ae95cea7f39d927e7770e3fdc97f993" - dependencies: - cliui "^4.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - os-locale "^3.1.0" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.0.0" - -yeast@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" From b6f5111c73cd2edb78ee1674698ac872b8f9528d Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 13:50:12 +0900 Subject: [PATCH 322/480] Updates. --- index.js | 4 +- index.js.map | 2 +- index.ts | 149 ++++++++++++++++++++++++---------------------- package-lock.json | 19 +++++- package.json | 2 +- 5 files changed, 98 insertions(+), 78 deletions(-) diff --git a/index.js b/index.js index 67992642..ae10fedd 100755 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ var emoji = require("node-emoji"); var repl = require("repl"); var BITBOX = require("./lib/BITBOX").BITBOX; var clone = require("git-clone"); -program.version("7.0.1 ", "-v, --version"); +program.version("7.0.4 ", "-v, --version"); program .command("new ") .option("-s, --scaffold ", "The framework to use. Options include react, angular, vuejs, nextjs, node and websockets.") @@ -120,5 +120,5 @@ function fetchOption(kv, config, options) { program.parse(process.argv); // print help if no command given // if (!process.argv.slice(2).length) program.outputHelp() -module.exports = BITBOX; +// module.exports = BITBOX //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/index.js.map b/index.js.map index 17a3291d..956a2fd3 100644 --- a/index.js.map +++ b/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;AACA,OAAO,CAAC,gBAAgB,CAAC,CAAA;AACzB,IAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,IAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;AACpC,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAC9B,IAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;AAChC,IAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;AAChC,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAC9B,IAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AACxB,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAC9B,IAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;AACnC,IAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,IAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,CAAA;AAC7C,IAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;AAElC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAA;AAE1C,OAAO;KACJ,OAAO,CAAC,YAAY,CAAC;KACrB,MAAM,CACL,2BAA2B,EAC3B,2FAA2F,CAC5F;KACA,MAAM,CACL,yBAAyB,EACzB,6DAA6D,CAC9D;KACA,MAAM,CACL,iCAAiC,EACjC,yFAAyF,CAC1F;KACA,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,UAAC,IAAS,EAAE,OAAY;IAC9B,IAAI,EAAE,CAAC,UAAU,CAAC,OAAK,IAAM,CAAC,EAAE;QAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAW,IAAI,oBAAiB,CAAC,CAAC,CAAA;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAChB;IAED,IAAI,MAAM,CAAA;IACV,IAAM,WAAW,GAAG,WAAW,CAAC,yBAAyB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IAC3E,IAAM,OAAO,GAAG,WAAW,CACzB,uCAAuC,EACvC,MAAM,EACN,OAAO,CACR,CAAA;IAED,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE;QAC/B,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAA;QAC7C,IAAI,IAAI,SAAA,CAAA;QACR,IAAM,IAAI,GAAG,EAAE,CAAA;QACf,IAAI,QAAQ,KAAK,MAAM,EAAE;YACvB,IAAI,GAAG,yDAAyD,CAAA;SACjE;aAAM,IAAI,QAAQ,KAAK,SAAS,EAAE;YACjC,IAAI,GAAG,4DAA4D,CAAA;SACpE;aAAM,IAAI,QAAQ,KAAK,MAAM,EAAE;YAC9B,IAAI,GAAG,yDAAyD,CAAA;SACjE;aAAM,IAAI,QAAQ,KAAK,OAAO,EAAE;YAC/B,IAAI,GAAG,0DAA0D,CAAA;SAClE;aAAM,IAAI,QAAQ,KAAK,KAAK,EAAE;YAC7B,IAAI,GAAG,wDAAwD,CAAA;SAChE;aAAM,IAAI,QAAQ,KAAK,YAAY,EAAE;YACpC,IAAI,GAAG,+DAA+D,CAAA;SACvE;aAAM;YACL,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAY,QAAQ,mBAAgB,CAAC,CAAC,CAAA;YAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SAChB;QAED,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE;YAC3B,QAAQ,GAAG,aAAa,CAAA;YACxB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;SAClC;QAED,KAAK,EAAE,CAAA;QACP,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACxB,IAAI,EAAE,KAAK;YACX,gBAAgB,EAAE,MAAM;SACzB,CAAC,CACH,CACF,CAAA;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAe,QAAQ,gBAAW,IAAM,CAAC,CAAC,CAAA;QACjE,KAAK,CAAC,IAAI,EAAE,OAAK,IAAM,EAAE,CAAC,IAAI,CAAC,EAAE,UAAC,GAAQ;YACxC,IAAI,GAAG,KAAK,2CAA2C,EAAE;gBACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAA;aACvE;iBAAM;gBACL,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAA;gBACtE,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,oEAAoE,CACrE,EACD,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CACtB,CAAA;aACF;QACH,CAAC,CAAC,CAAA;QACF,OAAM;KACP;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,cAAY,IAAI,gBAAa,CAAC,CAAC,CAAA;IACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gCAA8B,IAAI,SAAM,CAAC,CAAC,CAAA;IAClE,MAAM,CAAC,OAAK,IAAI,SAAM,EAAE,UAAC,GAAQ,IAAM,CAAC,CAAC,CAAA;IAEzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,kCAAgC,IAAI,WAAQ,CAAC,CAAC,CAAA;IACtE,MAAM,CAAC,OAAK,IAAI,WAAQ,EAAE,UAAC,GAAQ,IAAM,CAAC,CAAC,CAAA;IAE3C,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,8CAA4C,IAAI,eAAY,CAAC,CAC1E,CAAA;IAED,MAAM,CAAC,OAAK,IAAM,EAAE,UAAC,GAAQ,IAAM,CAAC,CAAC,CAAA;IACrC,KAAK,CAAC,OAAK,IAAI,eAAY,CAAC,CAAA;IAC5B,EAAE,CAAC,aAAa,CACd,OAAK,IAAI,eAAY,EACrB,gDAEA,WAAW,8BACC,OAAO,yBAIxB,CACI,CAAA;IACD,EAAE,CAAC,cAAc,CAAC,OAAK,IAAI,gBAAa,EAAE,kBAAkB,CAAC,CAAA;IAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAA;IACrE,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,mEAAmE,CACpE,EACD,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CACtB,CAAA;AACH,CAAC,CAAC,CAAA;AAEJ,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,MAAM,CACL,iCAAiC,EACjC,yFAAyF,CAC1F;KACA,WAAW,CAAC,wDAAwD,CAAC;KACrE,MAAM,CAAC,UAAC,OAAY;IACnB,IAAI,MAAM,CAAA;IACV,IAAI;QACF,MAAM,GAAG,OAAO,CAAI,OAAO,CAAC,GAAG,EAAE,eAAY,CAAC,CAAC,MAAM,CAAA;KACtD;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,qDAAqD,CAAC,CACjE,CAAA;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAChB;IACD,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACnC,IAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,kBAAkB,CAAC,CAAA;IAChE,OAAO,CAAC,cAAc,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;IAEhD,IAAM,WAAW,GAAG,WAAW,CAAC,yBAAyB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IAE3E,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAA;AAC1E,CAAC,CAAC,CAAA;AAEJ,SAAS,WAAW,CAAC,EAAO,EAAE,MAAW,EAAE,OAAY;IACrD,IAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC3B,IAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IACpB,IAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IAC3B,IAAI,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAA;SAC3C,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAExE,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAE3B,iCAAiC;AACjC,0DAA0D;AAE1D,MAAM,CAAC,OAAO,GAAG,MAAM,CAAA"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;AACA,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAC1B,IAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,IAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AACrC,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC/B,IAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,IAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC/B,IAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AACzB,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC/B,IAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AACpC,IAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,IAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC;AAC9C,IAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAEnC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;AAE3C,OAAO;KACJ,OAAO,CAAC,YAAY,CAAC;KACrB,MAAM,CACL,2BAA2B,EAC3B,2FAA2F,CAC5F;KACA,MAAM,CACL,yBAAyB,EACzB,6DAA6D,CAC9D;KACA,MAAM,CACL,iCAAiC,EACjC,yFAAyF,CAC1F;KACA,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,UAAC,IAAS,EAAE,OAAY;IAC9B,IAAI,EAAE,CAAC,UAAU,CAAC,OAAK,IAAM,CAAC,EAAE;QAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAW,IAAI,oBAAiB,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IAED,IAAI,MAAM,CAAC;IACX,IAAM,WAAW,GAAG,WAAW,CAAC,yBAAyB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5E,IAAM,OAAO,GAAG,WAAW,CACzB,uCAAuC,EACvC,MAAM,EACN,OAAO,CACR,CAAC;IAEF,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE;QAC/B,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC9C,IAAI,IAAI,SAAA,CAAC;QACT,IAAM,IAAI,GAAG,EAAE,CAAC;QAChB,IAAI,QAAQ,KAAK,MAAM,EAAE;YACvB,IAAI,GAAG,yDAAyD,CAAC;SAClE;aAAM,IAAI,QAAQ,KAAK,SAAS,EAAE;YACjC,IAAI,GAAG,4DAA4D,CAAC;SACrE;aAAM,IAAI,QAAQ,KAAK,MAAM,EAAE;YAC9B,IAAI,GAAG,yDAAyD,CAAC;SAClE;aAAM,IAAI,QAAQ,KAAK,OAAO,EAAE;YAC/B,IAAI,GAAG,0DAA0D,CAAC;SACnE;aAAM,IAAI,QAAQ,KAAK,KAAK,EAAE;YAC7B,IAAI,GAAG,wDAAwD,CAAC;SACjE;aAAM,IAAI,QAAQ,KAAK,YAAY,EAAE;YACpC,IAAI,GAAG,+DAA+D,CAAC;SACxE;aAAM;YACL,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAY,QAAQ,mBAAgB,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;QAED,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE;YAC3B,QAAQ,GAAG,aAAa,CAAC;YACzB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;SACnC;QAED,KAAK,EAAE,CAAC;QACR,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACxB,IAAI,EAAE,KAAK;YACX,gBAAgB,EAAE,MAAM;SACzB,CAAC,CACH,CACF,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAe,QAAQ,gBAAW,IAAM,CAAC,CAAC,CAAC;QAClE,KAAK,CAAC,IAAI,EAAE,OAAK,IAAM,EAAE,CAAC,IAAI,CAAC,EAAE,UAAC,GAAQ;YACxC,IAAI,GAAG,KAAK,2CAA2C,EAAE;gBACvD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAC1D,CAAC;aACH;iBAAM;gBACL,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EACxB,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAChC,CAAC;gBACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,oEAAoE,CACrE,EACD,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CACtB,CAAC;aACH;QACH,CAAC,CAAC,CAAC;QACH,OAAO;KACR;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,cAAY,IAAI,gBAAa,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gCAA8B,IAAI,SAAM,CAAC,CAAC,CAAC;IACnE,MAAM,CAAC,OAAK,IAAI,SAAM,EAAE,UAAC,GAAQ,IAAM,CAAC,CAAC,CAAC;IAE1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,kCAAgC,IAAI,WAAQ,CAAC,CAAC,CAAC;IACvE,MAAM,CAAC,OAAK,IAAI,WAAQ,EAAE,UAAC,GAAQ,IAAM,CAAC,CAAC,CAAC;IAE5C,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,8CAA4C,IAAI,eAAY,CAAC,CAC1E,CAAC;IAEF,MAAM,CAAC,OAAK,IAAM,EAAE,UAAC,GAAQ,IAAM,CAAC,CAAC,CAAC;IACtC,KAAK,CAAC,OAAK,IAAI,eAAY,CAAC,CAAC;IAC7B,EAAE,CAAC,aAAa,CACd,OAAK,IAAI,eAAY,EACrB,gDAEA,WAAW,8BACC,OAAO,yBAIxB,CACI,CAAC;IACF,EAAE,CAAC,cAAc,CAAC,OAAK,IAAI,gBAAa,EAAE,kBAAkB,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,mEAAmE,CACpE,EACD,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CACtB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,MAAM,CACL,iCAAiC,EACjC,yFAAyF,CAC1F;KACA,WAAW,CAAC,wDAAwD,CAAC;KACrE,MAAM,CAAC,UAAC,OAAY;IACnB,IAAI,MAAM,CAAC;IACX,IAAI;QACF,MAAM,GAAG,OAAO,CAAI,OAAO,CAAC,GAAG,EAAE,eAAY,CAAC,CAAC,MAAM,CAAC;KACvD;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,qDAAqD,CAAC,CACjE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IACD,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,IAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,kBAAkB,CAAC,CAAC;IACjE,OAAO,CAAC,cAAc,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAEjD,IAAM,WAAW,GAAG,WAAW,CAAC,yBAAyB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAE5E,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;AAC3E,CAAC,CAAC,CAAC;AAEL,SAAS,WAAW,CAAC,EAAO,EAAE,MAAW,EAAE,OAAY;IACrD,IAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACrB,IAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;SAC5C,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEzE,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,iCAAiC;AACjC,0DAA0D;AAE1D,0BAA0B"} \ No newline at end of file diff --git a/index.ts b/index.ts index 1e58b076..c83f4b1a 100755 --- a/index.ts +++ b/index.ts @@ -1,19 +1,19 @@ #!/usr/bin/env node -require("babel-register") -const path = require("path") -const program = require("commander") -const chalk = require("chalk") -const mkdirp = require("mkdirp") -const figlet = require("figlet") -const clear = require("clear") -const fs = require("fs") -const touch = require("touch") -const emoji = require("node-emoji") -const repl = require("repl") -const BITBOX = require("./lib/BITBOX").BITBOX -const clone = require("git-clone") - -program.version("7.0.3 ", "-v, --version") +require("babel-register"); +const path = require("path"); +const program = require("commander"); +const chalk = require("chalk"); +const mkdirp = require("mkdirp"); +const figlet = require("figlet"); +const clear = require("clear"); +const fs = require("fs"); +const touch = require("touch"); +const emoji = require("node-emoji"); +const repl = require("repl"); +const BITBOX = require("./lib/BITBOX").BITBOX; +const clone = require("git-clone"); + +program.version("7.0.4 ", "-v, --version"); program .command("new ") @@ -32,45 +32,45 @@ program .description(`create a new BITBOX application`) .action((name: any, options: any) => { if (fs.existsSync(`./${name}`)) { - console.log(chalk.red(`Project ${name} already exists`)) - process.exit(1) + console.log(chalk.red(`Project ${name} already exists`)); + process.exit(1); } - let config - const environment = fetchOption("environment=development", config, options) + let config; + const environment = fetchOption("environment=development", config, options); const restURL = fetchOption( "restURL=https://trest.bitcoin.com/v2/", config, options - ) + ); if (options && options.scaffold) { - let scaffold = options.scaffold.toLowerCase() - let repo - const conf = {} + let scaffold = options.scaffold.toLowerCase(); + let repo; + const conf = {}; if (scaffold === "node") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-node.git" + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-node.git"; } else if (scaffold === "angular") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-angular.git" + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-angular.git"; } else if (scaffold === "next") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-next.git" + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-next.git"; } else if (scaffold === "react") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-react.git" + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-react.git"; } else if (scaffold === "vue") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-vue.git" + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-vue.git"; } else if (scaffold === "websockets") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-websockets.git" + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-websockets.git"; } else { - console.log(chalk.red(`Scaffold ${scaffold} not supported`)) - process.exit(1) + console.log(chalk.red(`Scaffold ${scaffold} not supported`)); + process.exit(1); } if (options && options.repo) { - scaffold = "custom repo" - repo = options.repo.toLowerCase() + scaffold = "custom repo"; + repo = options.repo.toLowerCase(); } - clear() + clear(); console.log( chalk.blue( figlet.textSync("BITBOX", { @@ -78,38 +78,43 @@ program horizontalLayout: "full" }) ) - ) + ); - console.log(chalk.blue(`Scaffolding ${scaffold} app in ${name}`)) + console.log(chalk.blue(`Scaffolding ${scaffold} app in ${name}`)); clone(repo, `./${name}`, [conf], (res: any) => { if (res === "Error: 'git clone' failed with status 128") { - console.log(chalk.red("Must create new app in to an empty directory")) + console.log( + chalk.red("Must create new app in to an empty directory") + ); } else { - console.log(chalk.green("All done."), emoji.get(":white_check_mark:")) + console.log( + chalk.green("All done."), + emoji.get(":white_check_mark:") + ); console.log( chalk.blue( "Now `cd` in to your new project and run `npm install && npm start`" ), emoji.get(":rocket:") - ) + ); } - }) - return + }); + return; } - console.log(chalk.green(`Creating ${name}/ directory`)) - console.log(chalk.green(`Creating src/ directory: ./${name}/src`)) - mkdirp(`./${name}/src`, (err: any) => {}) + console.log(chalk.green(`Creating ${name}/ directory`)); + console.log(chalk.green(`Creating src/ directory: ./${name}/src`)); + mkdirp(`./${name}/src`, (err: any) => {}); - console.log(chalk.green(`Creating tests/ directory: ./${name}/tests`)) - mkdirp(`./${name}/tests`, (err: any) => {}) + console.log(chalk.green(`Creating tests/ directory: ./${name}/tests`)); + mkdirp(`./${name}/tests`, (err: any) => {}); console.log( chalk.green(`Creating bitbox.js configuration file: ./${name}/bitbox.js`) - ) + ); - mkdirp(`./${name}`, (err: any) => {}) - touch(`./${name}/bitbox.js`) + mkdirp(`./${name}`, (err: any) => {}); + touch(`./${name}/bitbox.js`); fs.writeFileSync( `./${name}/bitbox.js`, `exports.config = { @@ -120,16 +125,16 @@ program } }; ` - ) - fs.appendFileSync(`./${name}/.gitignore`, ".console_history") - console.log(chalk.blue("All done."), emoji.get(":white_check_mark:")) + ); + fs.appendFileSync(`./${name}/.gitignore`, ".console_history"); + console.log(chalk.blue("All done."), emoji.get(":white_check_mark:")); console.log( chalk.blue( "Go get em! Remember--with great power comes great responsibility." ), emoji.get(":rocket:") - ) - }) + ); + }); program .command("console") @@ -139,37 +144,37 @@ program ) .description("Run a console with Bitcoin Cash RPC commands available") .action((options: any) => { - let config + let config; try { - config = require(`${process.cwd()}/bitbox.js`).config + config = require(`${process.cwd()}/bitbox.js`).config; } catch (err) { console.log( chalk.red("Console command must be run inside a bitbox project") - ) - process.exit(1) + ); + process.exit(1); } - const replServer = repl.start("> ") - const historyFile = path.join(process.cwd(), ".console_history") - require("repl.history")(replServer, historyFile) + const replServer = repl.start("> "); + const historyFile = path.join(process.cwd(), ".console_history"); + require("repl.history")(replServer, historyFile); - const environment = fetchOption("environment=development", config, options) + const environment = fetchOption("environment=development", config, options); - replServer.context.BITBOX = new BITBOX(config.environments[environment]) - }) + replServer.context.BITBOX = new BITBOX(config.environments[environment]); + }); function fetchOption(kv: any, config: any, options: any) { - const parts = kv.split("=") - const key = parts[0] - const defaultVal = parts[1] - if (options && options[key]) return options[key] - else if (config && config.new && config.new[key]) return config.new[key] + const parts = kv.split("="); + const key = parts[0]; + const defaultVal = parts[1]; + if (options && options[key]) return options[key]; + else if (config && config.new && config.new[key]) return config.new[key]; - return defaultVal + return defaultVal; } -program.parse(process.argv) +program.parse(process.argv); // print help if no command given // if (!process.argv.slice(2).length) program.outputHelp() -module.exports = BITBOX +// module.exports = BITBOX diff --git a/package-lock.json b/package-lock.json index 92fb7d3c..beece09b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.0.3", + "version": "7.0.4", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1677,6 +1677,19 @@ "bitcoincash-ops": { "version": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3", "from": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3" + }, + "pushdata-bitcoin": { + "version": "github:Bitcoin-com/pushdata-bitcoin#9b75eebe597853c6eeaec3e6c44b6d9c9cd7ee86", + "from": "github:Bitcoin-com/pushdata-bitcoin#9b75eebe597853c6eeaec3e6c44b6d9c9cd7ee86", + "requires": { + "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3" + }, + "dependencies": { + "bitcoincash-ops": { + "version": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3", + "from": "github:Bitcoin-com/bitcoincash-ops#2.0.0" + } + } } } }, @@ -6356,6 +6369,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "optional": true, "requires": { "remove-trailing-separator": "^1.0.1" } @@ -11287,7 +11301,8 @@ "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "optional": true }, "repeat-element": { "version": "1.1.3", diff --git a/package.json b/package.json index f1268b67..5c2ca898 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.0.3", + "version": "7.0.4", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ From c5ad1d11b1cc4d3e8b3647df8b45b3bbd00f087c Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 13:53:11 +0900 Subject: [PATCH 323/480] Roll back index.ts --- index.js | 271 +++++++++++++++++++++++++++------------------- index.js.map | 1 - index.ts | 180 ------------------------------ package-lock.json | 28 ++--- package.json | 1 - tsconfig.json | 3 +- 6 files changed, 172 insertions(+), 312 deletions(-) delete mode 100644 index.js.map delete mode 100755 index.ts diff --git a/index.js b/index.js index ae10fedd..98fa5399 100755 --- a/index.js +++ b/index.js @@ -1,124 +1,173 @@ #!/usr/bin/env node -"use strict"; -require("babel-register"); -var path = require("path"); -var program = require("commander"); -var chalk = require("chalk"); -var mkdirp = require("mkdirp"); -var figlet = require("figlet"); -var clear = require("clear"); -var fs = require("fs"); -var touch = require("touch"); -var emoji = require("node-emoji"); -var repl = require("repl"); -var BITBOX = require("./lib/BITBOX").BITBOX; -var clone = require("git-clone"); -program.version("7.0.4 ", "-v, --version"); +require("babel-register") +const path = require("path") +const program = require("commander") +const chalk = require("chalk") +const mkdirp = require("mkdirp") +const figlet = require("figlet") +const clear = require("clear") +const fs = require("fs") +const touch = require("touch") +const emoji = require("node-emoji") +const repl = require("repl") +const BITBOXSDK = require("./lib/BITBOX") +const clone = require("git-clone") + +program.version("7.0.5 ", "-v, --version") + program - .command("new ") - .option("-s, --scaffold ", "The framework to use. Options include react, angular, vuejs, nextjs, node and websockets.") - .option("-r, --restURL ", "The rest URL to use. default: https://trest.bitcoin.com/v2/") - .option("-e, --environment ", "environment of running BITBOX instance. Ex: production, staging. (Default: development)") - .description("create a new BITBOX application") - .action(function (name, options) { - if (fs.existsSync("./" + name)) { - console.log(chalk.red("Project " + name + " already exists")); - process.exit(1); + .command("new ") + .option( + "-s, --scaffold ", + "The framework to use. Options include react, angular, vuejs, nextjs, node and websockets." + ) + .option( + "-r, --restURL ", + "The rest URL to use. default: https://trest.bitcoin.com/v2/" + ) + .option( + "-e, --environment ", + "environment of running BITBOX instance. Ex: production, staging. (Default: development)" + ) + .description(`create a new BITBOX application`) + .action((name, options) => { + if (fs.existsSync(`./${name}`)) { + console.log(chalk.red(`Project ${name} already exists`)) + process.exit(1) } - var config; - var environment = fetchOption("environment=development", config, options); - var restURL = fetchOption("restURL=https://trest.bitcoin.com/v2/", config, options); + + let config + const environment = fetchOption("environment=development", config, options) + const restURL = fetchOption( + "restURL=https://trest.bitcoin.com/v2/", + config, + options + ) + if (options && options.scaffold) { - var scaffold = options.scaffold.toLowerCase(); - var repo = void 0; - var conf = {}; - if (scaffold === "node") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-node.git"; - } - else if (scaffold === "angular") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-angular.git"; - } - else if (scaffold === "next") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-next.git"; - } - else if (scaffold === "react") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-react.git"; - } - else if (scaffold === "vue") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-vue.git"; - } - else if (scaffold === "websockets") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-websockets.git"; - } - else { - console.log(chalk.red("Scaffold " + scaffold + " not supported")); - process.exit(1); - } - if (options && options.repo) { - scaffold = "custom repo"; - repo = options.repo.toLowerCase(); - } - clear(); - console.log(chalk.blue(figlet.textSync("BITBOX", { + let scaffold = options.scaffold.toLowerCase() + let repo + const conf = {} + if (scaffold === "node") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-node.git" + } else if (scaffold === "angular") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-angular.git" + } else if (scaffold === "next") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-next.git" + } else if (scaffold === "react") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-react.git" + } else if (scaffold === "vue") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-vue.git" + } else if (scaffold === "websockets") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-websockets.git" + } else { + console.log(chalk.red(`Scaffold ${scaffold} not supported`)) + process.exit(1) + } + + if (options && options.repo) { + scaffold = "custom repo" + repo = options.repo.toLowerCase() + } + + clear() + console.log( + chalk.blue( + figlet.textSync("BITBOX", { font: "3-D", horizontalLayout: "full" - }))); - console.log(chalk.blue("Scaffolding " + scaffold + " app in " + name)); - clone(repo, "./" + name, [conf], function (res) { - if (res === "Error: 'git clone' failed with status 128") { - console.log(chalk.red("Must create new app in to an empty directory")); - } - else { - console.log(chalk.green("All done."), emoji.get(":white_check_mark:")); - console.log(chalk.blue("Now `cd` in to your new project and run `npm install && npm start`"), emoji.get(":rocket:")); - } - }); - return; + }) + ) + ) + + console.log(chalk.blue(`Scaffolding ${scaffold} app in ${name}`)) + clone(repo, `./${name}`, [conf], res => { + if (res === "Error: 'git clone' failed with status 128") { + console.log(chalk.red("Must create new app in to an empty directory")) + } else { + console.log(chalk.green("All done."), emoji.get(":white_check_mark:")) + console.log( + chalk.blue( + "Now `cd` in to your new project and run `npm install && npm start`" + ), + emoji.get(":rocket:") + ) + } + }) + return } - console.log(chalk.green("Creating " + name + "/ directory")); - console.log(chalk.green("Creating src/ directory: ./" + name + "/src")); - mkdirp("./" + name + "/src", function (err) { }); - console.log(chalk.green("Creating tests/ directory: ./" + name + "/tests")); - mkdirp("./" + name + "/tests", function (err) { }); - console.log(chalk.green("Creating bitbox.js configuration file: ./" + name + "/bitbox.js")); - mkdirp("./" + name, function (err) { }); - touch("./" + name + "/bitbox.js"); - fs.writeFileSync("./" + name + "/bitbox.js", "exports.config = {\n environments: {\n " + environment + ": {\n restURL: \"" + restURL + "\"\n }\n }\n};\n"); - fs.appendFileSync("./" + name + "/.gitignore", ".console_history"); - console.log(chalk.blue("All done."), emoji.get(":white_check_mark:")); - console.log(chalk.blue("Go get em! Remember--with great power comes great responsibility."), emoji.get(":rocket:")); -}); + + console.log(chalk.green(`Creating ${name}/ directory`)) + console.log(chalk.green(`Creating src/ directory: ./${name}/src`)) + mkdirp(`./${name}/src`, err => {}) + + console.log(chalk.green(`Creating tests/ directory: ./${name}/tests`)) + mkdirp(`./${name}/tests`, err => {}) + + console.log( + chalk.green(`Creating bitbox.js configuration file: ./${name}/bitbox.js`) + ) + + mkdirp(`./${name}`, err => {}) + touch(`./${name}/bitbox.js`) + fs.writeFileSync( + `./${name}/bitbox.js`, + `exports.config = { + environments: { + ${environment}: { + restURL: "${restURL}" + } + } +}; +` + ) + fs.appendFileSync(`./${name}/.gitignore`, ".console_history") + console.log(chalk.blue("All done."), emoji.get(":white_check_mark:")) + console.log( + chalk.blue( + "Go get em! Remember--with great power comes great responsibility." + ), + emoji.get(":rocket:") + ) + }) + program - .command("console") - .option("-e, --environment ", "environment of running BITBOX instance. Ex: production, staging. (Default: development)") - .description("Run a console with Bitcoin Cash RPC commands available") - .action(function (options) { - var config; + .command("console") + .option( + "-e, --environment ", + "environment of running BITBOX instance. Ex: production, staging. (Default: development)" + ) + .description("Run a console with Bitcoin Cash RPC commands available") + .action(options => { + let config try { - config = require(process.cwd() + "/bitbox.js").config; - } - catch (err) { - console.log(chalk.red("Console command must be run inside a bitbox project")); - process.exit(1); + config = require(`${process.cwd()}/bitbox.js`).config + } catch (err) { + console.log( + chalk.red("Console command must be run inside a bitbox project") + ) + process.exit(1) } - var replServer = repl.start("> "); - var historyFile = path.join(process.cwd(), ".console_history"); - require("repl.history")(replServer, historyFile); - var environment = fetchOption("environment=development", config, options); - replServer.context.BITBOX = new BITBOX(config.environments[environment]); -}); + const replServer = repl.start("> ") + const historyFile = path.join(process.cwd(), ".console_history") + require("repl.history")(replServer, historyFile) + + const environment = fetchOption("environment=development", config, options) + + replServer.context.BITBOX = new BITBOXSDK(config.environments[environment]) + }) + function fetchOption(kv, config, options) { - var parts = kv.split("="); - var key = parts[0]; - var defaultVal = parts[1]; - if (options && options[key]) - return options[key]; - else if (config && config.new && config.new[key]) - return config.new[key]; - return defaultVal; + const parts = kv.split("=") + const key = parts[0] + const defaultVal = parts[1] + if (options && options[key]) return options[key] + else if (config && config.new && config.new[key]) return config.new[key] + + return defaultVal } -program.parse(process.argv); + +program.parse(process.argv) + // print help if no command given -// if (!process.argv.slice(2).length) program.outputHelp() -// module.exports = BITBOX -//# sourceMappingURL=index.js.map \ No newline at end of file +if (!process.argv.slice(2).length) program.outputHelp() diff --git a/index.js.map b/index.js.map deleted file mode 100644 index 956a2fd3..00000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;AACA,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAC1B,IAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,IAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AACrC,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC/B,IAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,IAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC/B,IAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AACzB,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC/B,IAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AACpC,IAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,IAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC;AAC9C,IAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAEnC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;AAE3C,OAAO;KACJ,OAAO,CAAC,YAAY,CAAC;KACrB,MAAM,CACL,2BAA2B,EAC3B,2FAA2F,CAC5F;KACA,MAAM,CACL,yBAAyB,EACzB,6DAA6D,CAC9D;KACA,MAAM,CACL,iCAAiC,EACjC,yFAAyF,CAC1F;KACA,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,UAAC,IAAS,EAAE,OAAY;IAC9B,IAAI,EAAE,CAAC,UAAU,CAAC,OAAK,IAAM,CAAC,EAAE;QAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAW,IAAI,oBAAiB,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IAED,IAAI,MAAM,CAAC;IACX,IAAM,WAAW,GAAG,WAAW,CAAC,yBAAyB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5E,IAAM,OAAO,GAAG,WAAW,CACzB,uCAAuC,EACvC,MAAM,EACN,OAAO,CACR,CAAC;IAEF,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE;QAC/B,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC9C,IAAI,IAAI,SAAA,CAAC;QACT,IAAM,IAAI,GAAG,EAAE,CAAC;QAChB,IAAI,QAAQ,KAAK,MAAM,EAAE;YACvB,IAAI,GAAG,yDAAyD,CAAC;SAClE;aAAM,IAAI,QAAQ,KAAK,SAAS,EAAE;YACjC,IAAI,GAAG,4DAA4D,CAAC;SACrE;aAAM,IAAI,QAAQ,KAAK,MAAM,EAAE;YAC9B,IAAI,GAAG,yDAAyD,CAAC;SAClE;aAAM,IAAI,QAAQ,KAAK,OAAO,EAAE;YAC/B,IAAI,GAAG,0DAA0D,CAAC;SACnE;aAAM,IAAI,QAAQ,KAAK,KAAK,EAAE;YAC7B,IAAI,GAAG,wDAAwD,CAAC;SACjE;aAAM,IAAI,QAAQ,KAAK,YAAY,EAAE;YACpC,IAAI,GAAG,+DAA+D,CAAC;SACxE;aAAM;YACL,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAY,QAAQ,mBAAgB,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;QAED,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE;YAC3B,QAAQ,GAAG,aAAa,CAAC;YACzB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;SACnC;QAED,KAAK,EAAE,CAAC;QACR,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACxB,IAAI,EAAE,KAAK;YACX,gBAAgB,EAAE,MAAM;SACzB,CAAC,CACH,CACF,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAe,QAAQ,gBAAW,IAAM,CAAC,CAAC,CAAC;QAClE,KAAK,CAAC,IAAI,EAAE,OAAK,IAAM,EAAE,CAAC,IAAI,CAAC,EAAE,UAAC,GAAQ;YACxC,IAAI,GAAG,KAAK,2CAA2C,EAAE;gBACvD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAC1D,CAAC;aACH;iBAAM;gBACL,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EACxB,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAChC,CAAC;gBACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,oEAAoE,CACrE,EACD,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CACtB,CAAC;aACH;QACH,CAAC,CAAC,CAAC;QACH,OAAO;KACR;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,cAAY,IAAI,gBAAa,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gCAA8B,IAAI,SAAM,CAAC,CAAC,CAAC;IACnE,MAAM,CAAC,OAAK,IAAI,SAAM,EAAE,UAAC,GAAQ,IAAM,CAAC,CAAC,CAAC;IAE1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,kCAAgC,IAAI,WAAQ,CAAC,CAAC,CAAC;IACvE,MAAM,CAAC,OAAK,IAAI,WAAQ,EAAE,UAAC,GAAQ,IAAM,CAAC,CAAC,CAAC;IAE5C,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,8CAA4C,IAAI,eAAY,CAAC,CAC1E,CAAC;IAEF,MAAM,CAAC,OAAK,IAAM,EAAE,UAAC,GAAQ,IAAM,CAAC,CAAC,CAAC;IACtC,KAAK,CAAC,OAAK,IAAI,eAAY,CAAC,CAAC;IAC7B,EAAE,CAAC,aAAa,CACd,OAAK,IAAI,eAAY,EACrB,gDAEA,WAAW,8BACC,OAAO,yBAIxB,CACI,CAAC;IACF,EAAE,CAAC,cAAc,CAAC,OAAK,IAAI,gBAAa,EAAE,kBAAkB,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,mEAAmE,CACpE,EACD,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CACtB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,MAAM,CACL,iCAAiC,EACjC,yFAAyF,CAC1F;KACA,WAAW,CAAC,wDAAwD,CAAC;KACrE,MAAM,CAAC,UAAC,OAAY;IACnB,IAAI,MAAM,CAAC;IACX,IAAI;QACF,MAAM,GAAG,OAAO,CAAI,OAAO,CAAC,GAAG,EAAE,eAAY,CAAC,CAAC,MAAM,CAAC;KACvD;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,qDAAqD,CAAC,CACjE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IACD,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,IAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,kBAAkB,CAAC,CAAC;IACjE,OAAO,CAAC,cAAc,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAEjD,IAAM,WAAW,GAAG,WAAW,CAAC,yBAAyB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAE5E,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;AAC3E,CAAC,CAAC,CAAC;AAEL,SAAS,WAAW,CAAC,EAAO,EAAE,MAAW,EAAE,OAAY;IACrD,IAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACrB,IAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;SAC5C,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEzE,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,iCAAiC;AACjC,0DAA0D;AAE1D,0BAA0B"} \ No newline at end of file diff --git a/index.ts b/index.ts deleted file mode 100755 index c83f4b1a..00000000 --- a/index.ts +++ /dev/null @@ -1,180 +0,0 @@ -#!/usr/bin/env node -require("babel-register"); -const path = require("path"); -const program = require("commander"); -const chalk = require("chalk"); -const mkdirp = require("mkdirp"); -const figlet = require("figlet"); -const clear = require("clear"); -const fs = require("fs"); -const touch = require("touch"); -const emoji = require("node-emoji"); -const repl = require("repl"); -const BITBOX = require("./lib/BITBOX").BITBOX; -const clone = require("git-clone"); - -program.version("7.0.4 ", "-v, --version"); - -program - .command("new ") - .option( - "-s, --scaffold ", - "The framework to use. Options include react, angular, vuejs, nextjs, node and websockets." - ) - .option( - "-r, --restURL ", - "The rest URL to use. default: https://trest.bitcoin.com/v2/" - ) - .option( - "-e, --environment ", - "environment of running BITBOX instance. Ex: production, staging. (Default: development)" - ) - .description(`create a new BITBOX application`) - .action((name: any, options: any) => { - if (fs.existsSync(`./${name}`)) { - console.log(chalk.red(`Project ${name} already exists`)); - process.exit(1); - } - - let config; - const environment = fetchOption("environment=development", config, options); - const restURL = fetchOption( - "restURL=https://trest.bitcoin.com/v2/", - config, - options - ); - - if (options && options.scaffold) { - let scaffold = options.scaffold.toLowerCase(); - let repo; - const conf = {}; - if (scaffold === "node") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-node.git"; - } else if (scaffold === "angular") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-angular.git"; - } else if (scaffold === "next") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-next.git"; - } else if (scaffold === "react") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-react.git"; - } else if (scaffold === "vue") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-vue.git"; - } else if (scaffold === "websockets") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-websockets.git"; - } else { - console.log(chalk.red(`Scaffold ${scaffold} not supported`)); - process.exit(1); - } - - if (options && options.repo) { - scaffold = "custom repo"; - repo = options.repo.toLowerCase(); - } - - clear(); - console.log( - chalk.blue( - figlet.textSync("BITBOX", { - font: "3-D", - horizontalLayout: "full" - }) - ) - ); - - console.log(chalk.blue(`Scaffolding ${scaffold} app in ${name}`)); - clone(repo, `./${name}`, [conf], (res: any) => { - if (res === "Error: 'git clone' failed with status 128") { - console.log( - chalk.red("Must create new app in to an empty directory") - ); - } else { - console.log( - chalk.green("All done."), - emoji.get(":white_check_mark:") - ); - console.log( - chalk.blue( - "Now `cd` in to your new project and run `npm install && npm start`" - ), - emoji.get(":rocket:") - ); - } - }); - return; - } - - console.log(chalk.green(`Creating ${name}/ directory`)); - console.log(chalk.green(`Creating src/ directory: ./${name}/src`)); - mkdirp(`./${name}/src`, (err: any) => {}); - - console.log(chalk.green(`Creating tests/ directory: ./${name}/tests`)); - mkdirp(`./${name}/tests`, (err: any) => {}); - - console.log( - chalk.green(`Creating bitbox.js configuration file: ./${name}/bitbox.js`) - ); - - mkdirp(`./${name}`, (err: any) => {}); - touch(`./${name}/bitbox.js`); - fs.writeFileSync( - `./${name}/bitbox.js`, - `exports.config = { - environments: { - ${environment}: { - restURL: "${restURL}" - } - } -}; -` - ); - fs.appendFileSync(`./${name}/.gitignore`, ".console_history"); - console.log(chalk.blue("All done."), emoji.get(":white_check_mark:")); - console.log( - chalk.blue( - "Go get em! Remember--with great power comes great responsibility." - ), - emoji.get(":rocket:") - ); - }); - -program - .command("console") - .option( - "-e, --environment ", - "environment of running BITBOX instance. Ex: production, staging. (Default: development)" - ) - .description("Run a console with Bitcoin Cash RPC commands available") - .action((options: any) => { - let config; - try { - config = require(`${process.cwd()}/bitbox.js`).config; - } catch (err) { - console.log( - chalk.red("Console command must be run inside a bitbox project") - ); - process.exit(1); - } - const replServer = repl.start("> "); - const historyFile = path.join(process.cwd(), ".console_history"); - require("repl.history")(replServer, historyFile); - - const environment = fetchOption("environment=development", config, options); - - replServer.context.BITBOX = new BITBOX(config.environments[environment]); - }); - -function fetchOption(kv: any, config: any, options: any) { - const parts = kv.split("="); - const key = parts[0]; - const defaultVal = parts[1]; - if (options && options[key]) return options[key]; - else if (config && config.new && config.new[key]) return config.new[key]; - - return defaultVal; -} - -program.parse(process.argv); - -// print help if no command given -// if (!process.argv.slice(2).length) program.outputHelp() - -// module.exports = BITBOX diff --git a/package-lock.json b/package-lock.json index beece09b..855c16dc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1662,11 +1662,13 @@ "bech32": "^1.1.2", "bigi": "^1.4.0", "bip66": "^1.1.0", + "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3", "bs58check": "^2.0.0", "create-hash": "^1.1.0", "create-hmac": "^1.1.3", "ecurve": "^1.0.0", "merkle-lib": "^2.0.10", + "pushdata-bitcoin": "github:Bitcoin-com/pushdata-bitcoin#9b75eebe597853c6eeaec3e6c44b6d9c9cd7ee86", "randombytes": "^2.0.1", "safe-buffer": "^5.0.1", "typeforce": "^1.11.3", @@ -1676,20 +1678,7 @@ "dependencies": { "bitcoincash-ops": { "version": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3", - "from": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3" - }, - "pushdata-bitcoin": { - "version": "github:Bitcoin-com/pushdata-bitcoin#9b75eebe597853c6eeaec3e6c44b6d9c9cd7ee86", - "from": "github:Bitcoin-com/pushdata-bitcoin#9b75eebe597853c6eeaec3e6c44b6d9c9cd7ee86", - "requires": { - "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3" - }, - "dependencies": { - "bitcoincash-ops": { - "version": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3", - "from": "github:Bitcoin-com/bitcoincash-ops#2.0.0" - } - } + "from": "github:Bitcoin-com/bitcoincash-ops#2.0.0" } } }, @@ -6369,7 +6358,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "optional": true, "requires": { "remove-trailing-separator": "^1.0.1" } @@ -11046,6 +11034,13 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, + "pushdata-bitcoin": { + "version": "github:Bitcoin-com/pushdata-bitcoin#9b75eebe597853c6eeaec3e6c44b6d9c9cd7ee86", + "from": "github:Bitcoin-com/pushdata-bitcoin#1.2.1", + "requires": { + "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3" + } + }, "q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", @@ -11301,8 +11296,7 @@ "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "optional": true + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" }, "repeat-element": { "version": "1.1.3", diff --git a/package.json b/package.json index 5c2ca898..80b6e840 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,6 @@ }, "main": "lib/BITBOX.js", "files": [ - "index.ts", "lib/", "dist/" ], diff --git a/tsconfig.json b/tsconfig.json index 9cecd04a..a25e3173 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -8,6 +8,5 @@ "lib": ["es2017"], "sourceMap": true }, - "include": ["./lib", "./test"], - "files": ["index.ts"] + "include": ["./lib", "./test"] } From ad25ff1c25b4022032225b922dc8489476f272d7 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 13:53:52 +0900 Subject: [PATCH 324/480] v --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 855c16dc..81c76f4f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.0.4", + "version": "7.0.5", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 80b6e840..5edf09bc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.0.4", + "version": "7.0.5", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ From 0f2ea3b717186a253a6fb944a3003a1a4d78a600 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 13:55:55 +0900 Subject: [PATCH 325/480] npm ignore. --- .npmignore | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .npmignore diff --git a/.npmignore b/.npmignore new file mode 100644 index 00000000..e69de29b From b5199e1aae68c838fb4081894743b5f18362ac9a Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 13:56:59 +0900 Subject: [PATCH 326/480] v --- index.js | 2 +- package-lock.json | 2 +- package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 98fa5399..27b708ba 100755 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOXSDK = require("./lib/BITBOX") const clone = require("git-clone") -program.version("7.0.5 ", "-v, --version") +program.version("7.0.6 ", "-v, --version") program .command("new ") diff --git a/package-lock.json b/package-lock.json index 81c76f4f..5b8d62f3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.0.5", + "version": "7.0.6", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 5edf09bc..eaf118fd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.0.5", + "version": "7.0.6", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ From 6564ceffed713a1f3acee5c73df7a8ecc73bb9a6 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 13:59:18 +0900 Subject: [PATCH 327/480] Committing everything. --- .gitignore | 4 +- index.js | 2 +- lib/Address.js | 457 ++++++++++++++++++++ lib/Address.js.map | 1 + lib/BITBOX.js | 57 +++ lib/BITBOX.js.map | 1 + lib/BitcoinCash.js | 126 ++++++ lib/BitcoinCash.js.map | 1 + lib/Block.js | 126 ++++++ lib/Block.js.map | 1 + lib/Blockchain.js | 574 +++++++++++++++++++++++++ lib/Blockchain.js.map | 1 + lib/Control.js | 92 ++++ lib/Control.js.map | 1 + lib/Crypto.js | 27 ++ lib/Crypto.js.map | 1 + lib/ECPair.js | 50 +++ lib/ECPair.js.map | 1 + lib/Generating.js | 70 +++ lib/Generating.js.map | 1 + lib/HDNode.js | 97 +++++ lib/HDNode.js.map | 1 + lib/Mining.js | 145 +++++++ lib/Mining.js.map | 1 + lib/Mnemonic.js | 248 +++++++++++ lib/Mnemonic.js.map | 1 + lib/Price.js | 69 +++ lib/Price.js.map | 1 + lib/RawTransactions.js | 208 +++++++++ lib/RawTransactions.js.map | 1 + lib/Schnorr.js | 58 +++ lib/Schnorr.js.map | 1 + lib/Script.js | 62 +++ lib/Script.js.map | 1 + lib/Socket.js | 33 ++ lib/Socket.js.map | 1 + lib/Transaction.js | 87 ++++ lib/Transaction.js.map | 1 + lib/TransactionBuilder.js | 80 ++++ lib/TransactionBuilder.js.map | 1 + lib/Util.js | 86 ++++ lib/Util.js.map | 1 + lib/Wallet.js | 11 + lib/Wallet.js.map | 1 + lib/interfaces/BITBOXInterfaces.js | 3 + lib/interfaces/BITBOXInterfaces.js.map | 1 + package-lock.json | 2 +- package.json | 2 +- 48 files changed, 2793 insertions(+), 5 deletions(-) create mode 100644 lib/Address.js create mode 100644 lib/Address.js.map create mode 100644 lib/BITBOX.js create mode 100644 lib/BITBOX.js.map create mode 100644 lib/BitcoinCash.js create mode 100644 lib/BitcoinCash.js.map create mode 100644 lib/Block.js create mode 100644 lib/Block.js.map create mode 100644 lib/Blockchain.js create mode 100644 lib/Blockchain.js.map create mode 100644 lib/Control.js create mode 100644 lib/Control.js.map create mode 100644 lib/Crypto.js create mode 100644 lib/Crypto.js.map create mode 100644 lib/ECPair.js create mode 100644 lib/ECPair.js.map create mode 100644 lib/Generating.js create mode 100644 lib/Generating.js.map create mode 100644 lib/HDNode.js create mode 100644 lib/HDNode.js.map create mode 100644 lib/Mining.js create mode 100644 lib/Mining.js.map create mode 100644 lib/Mnemonic.js create mode 100644 lib/Mnemonic.js.map create mode 100644 lib/Price.js create mode 100644 lib/Price.js.map create mode 100644 lib/RawTransactions.js create mode 100644 lib/RawTransactions.js.map create mode 100644 lib/Schnorr.js create mode 100644 lib/Schnorr.js.map create mode 100644 lib/Script.js create mode 100644 lib/Script.js.map create mode 100644 lib/Socket.js create mode 100644 lib/Socket.js.map create mode 100644 lib/Transaction.js create mode 100644 lib/Transaction.js.map create mode 100644 lib/TransactionBuilder.js create mode 100644 lib/TransactionBuilder.js.map create mode 100644 lib/Util.js create mode 100644 lib/Util.js.map create mode 100644 lib/Wallet.js create mode 100644 lib/Wallet.js.map create mode 100644 lib/interfaces/BITBOXInterfaces.js create mode 100644 lib/interfaces/BITBOXInterfaces.js.map diff --git a/.gitignore b/.gitignore index dcdee63c..5c048043 100644 --- a/.gitignore +++ b/.gitignore @@ -9,5 +9,5 @@ yarn-lock.json # production /dist -lib/**/*.js -lib/**/*.js.map +#lib/**/*.js +#lib/**/*.js.map diff --git a/index.js b/index.js index 27b708ba..902d2f3b 100755 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOXSDK = require("./lib/BITBOX") const clone = require("git-clone") -program.version("7.0.6 ", "-v, --version") +program.version("7.0.7 ", "-v, --version") program .command("new ") diff --git a/lib/Address.js b/lib/Address.js new file mode 100644 index 00000000..a19d7099 --- /dev/null +++ b/lib/Address.js @@ -0,0 +1,457 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var axios_1 = require("axios"); +var Bitcoin = require("bitcoincashjs-lib"); +var cashaddr = require("cashaddrjs"); +var coininfo = require("coininfo"); +var Address = /** @class */ (function () { + function Address(restURL) { + this.restURL = restURL; + } + // Translate address from any address format into a specific format. + Address.prototype.toLegacyAddress = function (address) { + var _a = this._decode(address), prefix = _a.prefix, type = _a.type, hash = _a.hash; + var bitcoincash; + switch (prefix) { + case "bitcoincash": + bitcoincash = coininfo.bitcoincash.main; + break; + case "bchtest": + bitcoincash = coininfo.bitcoincash.test; + break; + case "bchreg": + bitcoincash = coininfo.bitcoincash.regtest; + break; + default: + throw "unsupported prefix : " + prefix; + } + var version; + switch (type) { + case "P2PKH": + version = bitcoincash.versions.public; + break; + case "P2SH": + version = bitcoincash.versions.scripthash; + break; + default: + throw "unsupported address type : " + type; + } + var hashBuf = Buffer.from(hash); + return Bitcoin.address.toBase58Check(hashBuf, version); + }; + Address.prototype.toCashAddress = function (address, prefix, regtest) { + if (prefix === void 0) { prefix = true; } + if (regtest === void 0) { regtest = false; } + var decoded = this._decode(address); + var prefixString; + if (regtest) + prefixString = "bchreg"; + else + prefixString = decoded.prefix; + var cashAddress = cashaddr.encode(prefixString, decoded.type, decoded.hash); + if (prefix) + return cashAddress; + return cashAddress.split(":")[1]; + }; + // Converts legacy address format to hash160 + Address.prototype.legacyToHash160 = function (address) { + var bytes = Bitcoin.address.fromBase58Check(address); + return bytes.hash.toString("hex"); + }; + // Converts cash address format to hash160 + Address.prototype.cashToHash160 = function (address) { + var legacyAddress = this.toLegacyAddress(address); + var bytes = Bitcoin.address.fromBase58Check(legacyAddress); + return bytes.hash.toString("hex"); + }; + // Converts regtest address format to hash160 + // regtestToHash160(address: string): string { + // const legacyAddress = this.toLegacyAddress(address) + // const bytes = Bitcoin.address.fromBase58Check(legacyAddress) + // return bytes.hash.toString("hex") + // } + // Converts hash160 to Legacy Address + Address.prototype.hash160ToLegacy = function (hash160, network) { + if (network === void 0) { network = Bitcoin.networks.bitcoin.pubKeyHash; } + var buffer = Buffer.from(hash160, "hex"); + var legacyAddress = Bitcoin.address.toBase58Check(buffer, network); + return legacyAddress; + }; + // Converts hash160 to Cash Address + Address.prototype.hash160ToCash = function (hash160, network, regtest) { + if (network === void 0) { network = Bitcoin.networks.bitcoin.pubKeyHash; } + if (regtest === void 0) { regtest = false; } + var legacyAddress = this.hash160ToLegacy(hash160, network); + return this.toCashAddress(legacyAddress, true, regtest); + }; + Address.prototype._decode = function (address) { + try { + return this._decodeLegacyAddress(address); + } + catch (error) { } + try { + return this._decodeCashAddress(address); + } + catch (error) { } + try { + return this._encodeAddressFromHash160(address); + } + catch (error) { } + throw new Error("Unsupported address format : " + address); + }; + Address.prototype._decodeLegacyAddress = function (address) { + var _a = Bitcoin.address.fromBase58Check(address), version = _a.version, hash = _a.hash; + var info = coininfo.bitcoincash; + switch (version) { + case info.main.versions.public: + return { + prefix: "bitcoincash", + type: "P2PKH", + hash: hash, + format: "legacy" + }; + case info.main.versions.scripthash: + return { + prefix: "bitcoincash", + type: "P2SH", + hash: hash, + format: "legacy" + }; + case info.test.versions.public: + return { + prefix: "bchtest", + type: "P2PKH", + hash: hash, + format: "legacy" + }; + case info.test.versions.scripthash: + return { + prefix: "bchtest", + type: "P2SH", + hash: hash, + format: "legacy" + }; + default: + throw new Error("Invalid format : " + address); + } + }; + Address.prototype._decodeCashAddress = function (address) { + if (address.indexOf(":") !== -1) { + var decoded = cashaddr.decode(address); + decoded.format = "cashaddr"; + return decoded; + } + var prefixes = ["bitcoincash", "bchtest", "bchreg"]; + for (var i = 0; i < prefixes.length; ++i) { + try { + var decoded = cashaddr.decode(prefixes[i] + ":" + address); + decoded.format = "cashaddr"; + return decoded; + } + catch (error) { } + } + throw new Error("Invalid format : " + address); + }; + Address.prototype._encodeAddressFromHash160 = function (address) { + try { + return { + legacyAddress: this.hash160ToLegacy(address), + cashAddress: this.hash160ToCash(address), + format: "hash160" + }; + } + catch (error) { } + throw new Error("Invalid format : " + address); + }; + // Test for address format. + Address.prototype.isLegacyAddress = function (address) { + return this.detectAddressFormat(address) === "legacy"; + }; + Address.prototype.isCashAddress = function (address) { + return this.detectAddressFormat(address) === "cashaddr"; + }; + Address.prototype.isHash160 = function (address) { + return this.detectAddressFormat(address) === "hash160"; + }; + // Test for address network. + Address.prototype.isMainnetAddress = function (address) { + if (address[0] === "x") + return true; + else if (address[0] === "t") + return false; + return this.detectAddressNetwork(address) === "mainnet"; + }; + Address.prototype.isTestnetAddress = function (address) { + if (address[0] === "x") + return false; + else if (address[0] === "t") + return true; + return this.detectAddressNetwork(address) === "testnet"; + }; + Address.prototype.isRegTestAddress = function (address) { + return this.detectAddressNetwork(address) === "regtest"; + }; + // Test for address type. + Address.prototype.isP2PKHAddress = function (address) { + return this.detectAddressType(address) === "p2pkh"; + }; + Address.prototype.isP2SHAddress = function (address) { + return this.detectAddressType(address) === "p2sh"; + }; + // Detect address format. + Address.prototype.detectAddressFormat = function (address) { + var decoded = this._decode(address); + return decoded.format; + }; + // Detect address network. + Address.prototype.detectAddressNetwork = function (address) { + if (address[0] === "x") + return "mainnet"; + else if (address[0] === "t") + return "testnet"; + var decoded = this._decode(address); + switch (decoded.prefix) { + case "bitcoincash": + return "mainnet"; + case "bchtest": + return "testnet"; + case "bchreg": + return "regtest"; + default: + throw new Error("Invalid prefix : " + decoded.prefix); + } + }; + // Detect address type. + Address.prototype.detectAddressType = function (address) { + var decoded = this._decode(address); + return decoded.type.toLowerCase(); + }; + Address.prototype.fromXPub = function (xpub, path) { + if (path === void 0) { path = "0/0"; } + var bitcoincash; + if (xpub[0] === "x") + bitcoincash = coininfo.bitcoincash.main; + else if (xpub[0] === "t") + bitcoincash = coininfo.bitcoincash.test; + var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); + var HDNode = Bitcoin.HDNode.fromBase58(xpub, bitcoincashBitcoinJSLib); + var address = HDNode.derivePath(path); + return this.toCashAddress(address.getAddress()); + }; + Address.prototype.fromXPriv = function (xpriv, path) { + if (path === void 0) { path = "0'/0"; } + var bitcoincash; + if (xpriv[0] === "x") + bitcoincash = coininfo.bitcoincash.main; + else if (xpriv[0] === "t") + bitcoincash = coininfo.bitcoincash.test; + var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); + var HDNode = Bitcoin.HDNode.fromBase58(xpriv, bitcoincashBitcoinJSLib); + var address = HDNode.derivePath(path); + return this.toCashAddress(address.getAddress()); + }; + Address.prototype.fromOutputScript = function (scriptPubKey, network) { + if (network === void 0) { network = "mainnet"; } + var netParam; + if (network !== "bitcoincash" && network !== "mainnet") + netParam = Bitcoin.networks.testnet; + var regtest = network === "bchreg"; + return this.toCashAddress(Bitcoin.address.fromOutputScript(scriptPubKey, netParam), true, regtest); + }; + Address.prototype.details = function (address) { + return __awaiter(this, void 0, void 0, function () { + var response, options, response, error_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof address === "string")) return [3 /*break*/, 2]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "address/details/" + address)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data + // Handle array of addresses. + ]; + case 2: + if (!Array.isArray(address)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "address/details", + data: { + addresses: address + } + }; + return [4 /*yield*/, axios_1.default(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input address must be a string or array of strings."); + case 5: + error_1 = _a.sent(); + if (error_1.response && error_1.response.data) + throw error_1.response.data; + else + throw error_1; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + Address.prototype.utxo = function (address) { + return __awaiter(this, void 0, void 0, function () { + var response, options, response, error_2; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof address === "string")) return [3 /*break*/, 2]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "address/utxo/" + address)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + if (!Array.isArray(address)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "address/utxo", + data: { + addresses: address + } + }; + return [4 /*yield*/, axios_1.default(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input address must be a string or array of strings."); + case 5: + error_2 = _a.sent(); + if (error_2.response && error_2.response.data) + throw error_2.response.data; + else + throw error_2; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + Address.prototype.unconfirmed = function (address) { + return __awaiter(this, void 0, void 0, function () { + var response, options, response, error_3; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof address === "string")) return [3 /*break*/, 2]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "address/unconfirmed/" + address)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data + // Handle an array of addresses + ]; + case 2: + if (!Array.isArray(address)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "address/unconfirmed", + data: { + addresses: address + } + }; + return [4 /*yield*/, axios_1.default(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input address must be a string or array of strings."); + case 5: + error_3 = _a.sent(); + if (error_3.response && error_3.response.data) + throw error_3.response.data; + else + throw error_3; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + Address.prototype.transactions = function (address) { + return __awaiter(this, void 0, void 0, function () { + var response, options, response, error_4; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof address === "string")) return [3 /*break*/, 2]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "address/transactions/" + address)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data + // Handle an array of addresses + ]; + case 2: + if (!Array.isArray(address)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "address/transactions", + data: { + addresses: address + } + }; + return [4 /*yield*/, axios_1.default(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input address must be a string or array of strings."); + case 5: + error_4 = _a.sent(); + if (error_4.response && error_4.response.data) + throw error_4.response.data; + else + throw error_4; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + return Address; +}()); +exports.Address = Address; +//# sourceMappingURL=Address.js.map \ No newline at end of file diff --git a/lib/Address.js.map b/lib/Address.js.map new file mode 100644 index 00000000..8cc18116 --- /dev/null +++ b/lib/Address.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Address.js","sourceRoot":"","sources":["Address.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAyB;AACzB,IAAM,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAC5C,IAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;AACtC,IAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAiFpC;IAEE,iBAAY,OAAe;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,oEAAoE;IACpE,iCAAe,GAAf,UAAgB,OAAe;QACvB,IAAA,0BAA8C,EAA5C,kBAAM,EAAE,cAAI,EAAE,cAA8B,CAAA;QAEpD,IAAI,WAAgB,CAAA;QACpB,QAAQ,MAAM,EAAE;YACd,KAAK,aAAa;gBAChB,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;gBACvC,MAAK;YACP,KAAK,SAAS;gBACZ,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;gBACvC,MAAK;YACP,KAAK,QAAQ;gBACX,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAA;gBAC1C,MAAK;YACP;gBACE,MAAM,0BAAwB,MAAQ,CAAA;SACzC;QAED,IAAI,OAAY,CAAA;QAChB,QAAQ,IAAI,EAAE;YACZ,KAAK,OAAO;gBACV,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAA;gBACrC,MAAK;YACP,KAAK,MAAM;gBACT,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAA;gBACzC,MAAK;YACP;gBACE,MAAM,gCAA8B,IAAM,CAAA;SAC7C;QAED,IAAM,OAAO,GAAQ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEtC,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACxD,CAAC;IAED,+BAAa,GAAb,UACE,OAAe,EACf,MAAsB,EACtB,OAAwB;QADxB,uBAAA,EAAA,aAAsB;QACtB,wBAAA,EAAA,eAAwB;QAExB,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAErC,IAAI,YAAoB,CAAA;QACxB,IAAI,OAAO;YAAE,YAAY,GAAG,QAAQ,CAAA;;YAC/B,YAAY,GAAG,OAAO,CAAC,MAAM,CAAA;QAElC,IAAM,WAAW,GAAW,QAAQ,CAAC,MAAM,CACzC,YAAY,EACZ,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,IAAI,CACb,CAAA;QAED,IAAI,MAAM;YAAE,OAAO,WAAW,CAAA;QAC9B,OAAO,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAClC,CAAC;IAED,4CAA4C;IAC5C,iCAAe,GAAf,UAAgB,OAAe;QAC7B,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QACtD,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC;IAED,0CAA0C;IAC1C,+BAAa,GAAb,UAAc,OAAe;QAC3B,IAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QACnD,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAA;QAC5D,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC;IAED,6CAA6C;IAC7C,8CAA8C;IAC9C,wDAAwD;IACxD,iEAAiE;IACjE,sCAAsC;IACtC,IAAI;IAEJ,qCAAqC;IACrC,iCAAe,GAAf,UACE,OAAY,EACZ,OAAkD;QAAlD,wBAAA,EAAA,UAAe,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU;QAElD,IAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAC1C,IAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACpE,OAAO,aAAa,CAAA;IACtB,CAAC;IAED,mCAAmC;IACnC,+BAAa,GAAb,UACE,OAAY,EACZ,OAAkD,EAClD,OAAwB;QADxB,wBAAA,EAAA,UAAe,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU;QAClD,wBAAA,EAAA,eAAwB;QAExB,IAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAC5D,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IACzD,CAAC;IAED,yBAAO,GAAP,UAAQ,OAAe;QACrB,IAAI;YACF,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAA;SAC1C;QAAC,OAAO,KAAK,EAAE,GAAE;QAElB,IAAI;YACF,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA;SACxC;QAAC,OAAO,KAAK,EAAE,GAAE;QAElB,IAAI;YACF,OAAO,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAA;SAC/C;QAAC,OAAO,KAAK,EAAE,GAAE;QAElB,MAAM,IAAI,KAAK,CAAC,kCAAgC,OAAS,CAAC,CAAA;IAC5D,CAAC;IAED,sCAAoB,GAApB,UAAqB,OAAY;QACzB,IAAA,6CAA4D,EAA1D,oBAAO,EAAE,cAAiD,CAAA;QAClE,IAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAA;QAEjC,QAAQ,OAAO,EAAE;YACf,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM;gBAC5B,OAAO;oBACL,MAAM,EAAE,aAAa;oBACrB,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,IAAI;oBACV,MAAM,EAAE,QAAQ;iBACjB,CAAA;YACH,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU;gBAChC,OAAO;oBACL,MAAM,EAAE,aAAa;oBACrB,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI;oBACV,MAAM,EAAE,QAAQ;iBACjB,CAAA;YACH,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM;gBAC5B,OAAO;oBACL,MAAM,EAAE,SAAS;oBACjB,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,IAAI;oBACV,MAAM,EAAE,QAAQ;iBACjB,CAAA;YACH,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU;gBAChC,OAAO;oBACL,MAAM,EAAE,SAAS;oBACjB,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI;oBACV,MAAM,EAAE,QAAQ;iBACjB,CAAA;YACH;gBACE,MAAM,IAAI,KAAK,CAAC,sBAAoB,OAAS,CAAC,CAAA;SACjD;IACH,CAAC;IAED,oCAAkB,GAAlB,UAAmB,OAAe;QAChC,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;YAC/B,IAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YACxC,OAAO,CAAC,MAAM,GAAG,UAAU,CAAA;YAC3B,OAAO,OAAO,CAAA;SACf;QAED,IAAM,QAAQ,GAAa,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;QAC/D,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YAChD,IAAI;gBACF,IAAM,OAAO,GAAQ,QAAQ,CAAC,MAAM,CAAI,QAAQ,CAAC,CAAC,CAAC,SAAI,OAAS,CAAC,CAAA;gBACjE,OAAO,CAAC,MAAM,GAAG,UAAU,CAAA;gBAC3B,OAAO,OAAO,CAAA;aACf;YAAC,OAAO,KAAK,EAAE,GAAE;SACnB;QAED,MAAM,IAAI,KAAK,CAAC,sBAAoB,OAAS,CAAC,CAAA;IAChD,CAAC;IAED,2CAAyB,GAAzB,UAA0B,OAAe;QACvC,IAAI;YACF,OAAO;gBACL,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;gBAC5C,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;gBACxC,MAAM,EAAE,SAAS;aAClB,CAAA;SACF;QAAC,OAAO,KAAK,EAAE,GAAE;QAElB,MAAM,IAAI,KAAK,CAAC,sBAAoB,OAAS,CAAC,CAAA;IAChD,CAAC;IAED,2BAA2B;IAC3B,iCAAe,GAAf,UAAgB,OAAe;QAC7B,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAA;IACvD,CAAC;IAED,+BAAa,GAAb,UAAc,OAAe;QAC3B,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,UAAU,CAAA;IACzD,CAAC;IAED,2BAAS,GAAT,UAAU,OAAe;QACvB,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,SAAS,CAAA;IACxD,CAAC;IAED,4BAA4B;IAC5B,kCAAgB,GAAhB,UAAiB,OAAe;QAC9B,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,OAAO,IAAI,CAAA;aAC9B,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,OAAO,KAAK,CAAA;QAEzC,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,KAAK,SAAS,CAAA;IACzD,CAAC;IAED,kCAAgB,GAAhB,UAAiB,OAAe;QAC9B,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,OAAO,KAAK,CAAA;aAC/B,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,OAAO,IAAI,CAAA;QAExC,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,KAAK,SAAS,CAAA;IACzD,CAAC;IAED,kCAAgB,GAAhB,UAAiB,OAAe;QAC9B,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,KAAK,SAAS,CAAA;IACzD,CAAC;IAED,yBAAyB;IACzB,gCAAc,GAAd,UAAe,OAAe;QAC5B,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,OAAO,CAAA;IACpD,CAAC;IAED,+BAAa,GAAb,UAAc,OAAe;QAC3B,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,MAAM,CAAA;IACnD,CAAC;IAED,yBAAyB;IACzB,qCAAmB,GAAnB,UAAoB,OAAe;QACjC,IAAM,OAAO,GAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAE1C,OAAO,OAAO,CAAC,MAAM,CAAA;IACvB,CAAC;IAED,0BAA0B;IAC1B,sCAAoB,GAApB,UAAqB,OAAe;QAClC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,OAAO,SAAS,CAAA;aACnC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,OAAO,SAAS,CAAA;QAE7C,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAErC,QAAQ,OAAO,CAAC,MAAM,EAAE;YACtB,KAAK,aAAa;gBAChB,OAAO,SAAS,CAAA;YAClB,KAAK,SAAS;gBACZ,OAAO,SAAS,CAAA;YAClB,KAAK,QAAQ;gBACX,OAAO,SAAS,CAAA;YAClB;gBACE,MAAM,IAAI,KAAK,CAAC,sBAAoB,OAAO,CAAC,MAAQ,CAAC,CAAA;SACxD;IACH,CAAC;IAED,uBAAuB;IACvB,mCAAiB,GAAjB,UAAkB,OAAe;QAC/B,IAAM,OAAO,GAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAE1C,OAAO,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;IACnC,CAAC;IAED,0BAAQ,GAAR,UAAS,IAAY,EAAE,IAAoB;QAApB,qBAAA,EAAA,YAAoB;QACzC,IAAI,WAAgB,CAAA;QACpB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;aACvD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;QAEjE,IAAM,uBAAuB,GAAG,WAAW,CAAC,WAAW,EAAE,CAAA;QACzD,IAAM,MAAM,GAAQ,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAA;QAC5E,IAAM,OAAO,GAAQ,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC5C,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;IACjD,CAAC;IAED,2BAAS,GAAT,UAAU,KAAa,EAAE,IAAqB;QAArB,qBAAA,EAAA,aAAqB;QAC5C,IAAI,WAAgB,CAAA;QACpB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;aACxD,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;QAElE,IAAM,uBAAuB,GAAG,WAAW,CAAC,WAAW,EAAE,CAAA;QACzD,IAAM,MAAM,GAAQ,OAAO,CAAC,MAAM,CAAC,UAAU,CAC3C,KAAK,EACL,uBAAuB,CACxB,CAAA;QACD,IAAM,OAAO,GAAQ,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC5C,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;IACjD,CAAC;IAED,kCAAgB,GAAhB,UAAiB,YAAiB,EAAE,OAA2B;QAA3B,wBAAA,EAAA,mBAA2B;QAC7D,IAAI,QAAa,CAAA;QACjB,IAAI,OAAO,KAAK,aAAa,IAAI,OAAO,KAAK,SAAS;YACpD,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAA;QAErC,IAAM,OAAO,GAAY,OAAO,KAAK,QAAQ,CAAA;QAE7C,OAAO,IAAI,CAAC,aAAa,CACvB,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,EAAE,QAAQ,CAAC,EACxD,IAAI,EACJ,OAAO,CACR,CAAA;IACH,CAAC;IAEK,yBAAO,GAAb,UACE,OAA0B;;;;;;;6BAIpB,CAAA,OAAO,OAAO,KAAK,QAAQ,CAAA,EAA3B,wBAA2B;wBACP,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,wBAAmB,OAAS,CAC5C,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBAED,sBAA6B,QAAQ,CAAC,IAAI;4BAE1C,6BAA6B;0BAFa;;6BAGjC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAtB,wBAAsB;wBACzB,OAAO,GAAQ;4BACnB,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,oBAAiB;4BACrC,IAAI,EAAE;gCACJ,SAAS,EAAE,OAAO;6BACnB;yBACF,CAAA;wBACqB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAApC,QAAQ,GAAQ,SAAoB;wBAE1C,sBAA6B,QAAQ,CAAC,IAAI,EAAA;4BAG5C,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;;;wBAEtE,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,sBAAI,GAAV,UACE,OAA0B;;;;;;;6BAIpB,CAAA,OAAO,OAAO,KAAK,QAAQ,CAAA,EAA3B,wBAA2B;wBACP,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,qBAAgB,OAAS,CACzC,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;6BACX,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAtB,wBAAsB;wBACzB,OAAO,GAAQ;4BACnB,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,iBAAc;4BAClC,IAAI,EAAE;gCACJ,SAAS,EAAE,OAAO;6BACnB;yBACF,CAAA;wBACqB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAApC,QAAQ,GAAQ,SAAoB;wBAE1C,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;;;wBAEtE,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,6BAAW,GAAjB,UACE,OAA0B;;;;;;;6BAIpB,CAAA,OAAO,OAAO,KAAK,QAAQ,CAAA,EAA3B,wBAA2B;wBACP,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,4BAAuB,OAAS,CAChD,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI;4BAEpB,+BAA+B;0BAFX;;6BAGX,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAtB,wBAAsB;wBACzB,OAAO,GAAQ;4BACnB,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,wBAAqB;4BACzC,IAAI,EAAE;gCACJ,SAAS,EAAE,OAAO;6BACnB;yBACF,CAAA;wBACqB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAApC,QAAQ,GAAQ,SAAoB;wBAE1C,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;;;wBAEtE,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,8BAAY,GAAlB,UAAmB,OAA0B;;;;;;;6BAGrC,CAAA,OAAO,OAAO,KAAK,QAAQ,CAAA,EAA3B,wBAA2B;wBACP,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,6BAAwB,OAAS,CACjD,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI;4BAEpB,+BAA+B;0BAFX;;6BAGX,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAtB,wBAAsB;wBACzB,OAAO,GAAQ;4BACnB,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,yBAAsB;4BAC1C,IAAI,EAAE;gCACJ,SAAS,EAAE,OAAO;6BACnB;yBACF,CAAA;wBACqB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAApC,QAAQ,GAAQ,SAAoB;wBAE1C,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;;;wBAEtE,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IACH,cAAC;AAAD,CAAC,AAzaD,IAyaC;AAzaY,0BAAO"} \ No newline at end of file diff --git a/lib/BITBOX.js b/lib/BITBOX.js new file mode 100644 index 00000000..7ec60bd2 --- /dev/null +++ b/lib/BITBOX.js @@ -0,0 +1,57 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// local deps +var BitcoinCash_1 = require("./BitcoinCash"); +var Crypto_1 = require("./Crypto"); +var Util_1 = require("./Util"); +var Block_1 = require("./Block"); +var Blockchain_1 = require("./Blockchain"); +var Control_1 = require("./Control"); +var Generating_1 = require("./Generating"); +var Mining_1 = require("./Mining"); +var RawTransactions_1 = require("./RawTransactions"); +var Mnemonic_1 = require("./Mnemonic"); +var Address_1 = require("./Address"); +var HDNode_1 = require("./HDNode"); +var Transaction_1 = require("./Transaction"); +var TransactionBuilder_1 = require("./TransactionBuilder"); +var ECPair_1 = require("./ECPair"); +var Script_1 = require("./Script"); +var Price_1 = require("./Price"); +var Socket_1 = require("./Socket"); +var Wallet_1 = require("./Wallet"); +var Schnorr_1 = require("./Schnorr"); +var BITBOX = /** @class */ (function () { + function BITBOX(config) { + if (config === void 0) { config = {}; } + if (config && config.restURL && config.restURL !== "") + this.restURL = config.restURL; + else + this.restURL = "https://rest.bitcoin.com/v2/"; + this.Address = new Address_1.Address(this.restURL); + this.BitcoinCash = new BitcoinCash_1.BitcoinCash(this.Address); + this.Block = new Block_1.Block(this.restURL); + this.Blockchain = new Blockchain_1.Blockchain(this.restURL); + this.Control = new Control_1.Control(this.restURL); + this.Crypto = Crypto_1.Crypto; + this.ECPair = ECPair_1.ECPair; + this.ECPair.setAddress(this.Address); + this.Generating = new Generating_1.Generating(this.restURL); + this.HDNode = new HDNode_1.HDNode(this.Address); + this.Mining = new Mining_1.Mining(this.restURL); + this.Mnemonic = new Mnemonic_1.Mnemonic(this.Address); + this.Price = new Price_1.Price(); + this.RawTransactions = new RawTransactions_1.RawTransactions(this.restURL); + this.Script = new Script_1.Script(); + this.Transaction = new Transaction_1.Transaction(this.restURL); + this.TransactionBuilder = TransactionBuilder_1.TransactionBuilder; + this.TransactionBuilder.setAddress(this.Address); + this.Util = new Util_1.Util(this.restURL); + this.Socket = Socket_1.Socket; + this.Wallet = Wallet_1.Wallet; + this.Schnorr = new Schnorr_1.Schnorr(); + } + return BITBOX; +}()); +exports.BITBOX = BITBOX; +//# sourceMappingURL=BITBOX.js.map \ No newline at end of file diff --git a/lib/BITBOX.js.map b/lib/BITBOX.js.map new file mode 100644 index 00000000..ed5ff630 --- /dev/null +++ b/lib/BITBOX.js.map @@ -0,0 +1 @@ +{"version":3,"file":"BITBOX.js","sourceRoot":"","sources":["BITBOX.ts"],"names":[],"mappings":";;AAGA,aAAa;AACb,6CAA2C;AAC3C,mCAAiC;AACjC,+BAA6B;AAC7B,iCAA+B;AAC/B,2CAAyC;AACzC,qCAAmC;AACnC,2CAAyC;AACzC,mCAAiC;AACjC,qDAAmD;AACnD,uCAAqC;AACrC,qCAAmC;AACnC,mCAAiC;AACjC,6CAA2C;AAC3C,2DAAyD;AACzD,mCAAiC;AACjC,mCAAiC;AACjC,iCAA+B;AAC/B,mCAAiC;AACjC,mCAAiC;AACjC,qCAAmC;AA0BnC;IAsBE,gBAAY,MAAoB;QAApB,uBAAA,EAAA,WAAoB;QAC9B,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,KAAK,EAAE;YACnD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;;YAC1B,IAAI,CAAC,OAAO,GAAG,8BAA8B,CAAA;QAElD,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACxC,IAAI,CAAC,WAAW,GAAG,IAAI,yBAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAChD,IAAI,CAAC,KAAK,GAAG,IAAI,aAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACpC,IAAI,CAAC,UAAU,GAAG,IAAI,uBAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC9C,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACxC,IAAI,CAAC,MAAM,GAAG,eAAM,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,eAAM,CAAA;QACpB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACpC,IAAI,CAAC,UAAU,GAAG,IAAI,uBAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC9C,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,aAAK,EAAE,CAAA;QACxB,IAAI,CAAC,eAAe,GAAG,IAAI,iCAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACxD,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,EAAE,CAAA;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,yBAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAChD,IAAI,CAAC,kBAAkB,GAAG,uCAAkB,CAAA;QAC5C,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAChD,IAAI,CAAC,IAAI,GAAG,IAAI,WAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAClC,IAAI,CAAC,MAAM,GAAG,eAAM,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,eAAM,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,EAAE,CAAA;IAC9B,CAAC;IACH,aAAC;AAAD,CAAC,AAlDD,IAkDC;AAlDY,wBAAM"} \ No newline at end of file diff --git a/lib/BitcoinCash.js b/lib/BitcoinCash.js new file mode 100644 index 00000000..8418eab4 --- /dev/null +++ b/lib/BitcoinCash.js @@ -0,0 +1,126 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Bitcoin = require("bitcoincashjs-lib"); +var sb = require("satoshi-bitcoin"); +var bitcoinMessage = require("bitcoinjs-message"); +var bs58 = require("bs58"); +var bip21 = require("bip21"); +var coininfo = require("coininfo"); +var bip38 = require("bip38"); +var wif = require("wif"); +var Buffer = require("safe-buffer").Buffer; +var BitcoinCash = /** @class */ (function () { + function BitcoinCash(address) { + this._address = address; + } + // Translate coins to satoshi value + BitcoinCash.prototype.toSatoshi = function (coins) { + return sb.toSatoshi(coins); + }; + // Translate satoshi to coin value + BitcoinCash.prototype.toBitcoinCash = function (satoshis) { + return sb.toBitcoin(satoshis); + }; + // sign message + BitcoinCash.prototype.signMessageWithPrivKey = function (privateKeyWIF, message) { + var network = privateKeyWIF.charAt(0) === "c" ? "testnet" : "mainnet"; + var bitcoincash; + if (network === "mainnet") + bitcoincash = coininfo.bitcoincash.main; + else + bitcoincash = coininfo.bitcoincash.test; + var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); + var keyPair = Bitcoin.ECPair.fromWIF(privateKeyWIF, bitcoincashBitcoinJSLib); + var privateKey = keyPair.d.toBuffer(32); + return bitcoinMessage + .sign(message, privateKey, keyPair.compressed) + .toString("base64"); + }; + // verify message + BitcoinCash.prototype.verifyMessage = function (address, signature, message) { + return bitcoinMessage.verify(message, this._address.toLegacyAddress(address), signature); + }; + // encode base58Check + BitcoinCash.prototype.encodeBase58Check = function (hex) { + return bs58.encode(Buffer.from(hex, "hex")); + }; + // decode base58Check + BitcoinCash.prototype.decodeBase58Check = function (address) { + return bs58.decode(address).toString("hex"); + }; + // encode bip21 url + BitcoinCash.prototype.encodeBIP21 = function (address, options, regtest) { + if (regtest === void 0) { regtest = false; } + return bip21.encode(this._address.toCashAddress(address, true, regtest), options); + }; + // decode bip21 url + BitcoinCash.prototype.decodeBIP21 = function (url) { + return bip21.decode(url); + }; + BitcoinCash.prototype.getByteCount = function (inputs, outputs) { + // from https://github.com/bitcoinjs/bitcoinjs-lib/issues/921#issuecomment-354394004 + var totalWeight = 0; + var hasWitness = false; + // assumes compressed pubkeys in all cases. + var types = { + inputs: { + "MULTISIG-P2SH": 49 * 4, + "MULTISIG-P2WSH": 6 + 41 * 4, + "MULTISIG-P2SH-P2WSH": 6 + 76 * 4, + P2PKH: 148 * 4, + P2WPKH: 108 + 41 * 4, + "P2SH-P2WPKH": 108 + 64 * 4 + }, + outputs: { + P2SH: 32 * 4, + P2PKH: 34 * 4, + P2WPKH: 31 * 4, + P2WSH: 43 * 4 + } + }; + Object.keys(inputs).forEach(function (key) { + if (key.slice(0, 8) === "MULTISIG") { + // ex. "MULTISIG-P2SH:2-3" would mean 2 of 3 P2SH MULTISIG + var keyParts = key.split(":"); + if (keyParts.length !== 2) + throw new Error("invalid input: " + key); + var newKey = keyParts[0]; + var mAndN = keyParts[1].split("-").map(function (item) { + return parseInt(item); + }); + totalWeight += types.inputs[newKey] * inputs[key]; + var multiplyer = newKey === "MULTISIG-P2SH" ? 4 : 1; + totalWeight += (73 * mAndN[0] + 34 * mAndN[1]) * multiplyer; + } + else { + totalWeight += types.inputs[key] * inputs[key]; + } + if (key.indexOf("W") >= 0) + hasWitness = true; + }); + Object.keys(outputs).forEach(function (key) { + totalWeight += types.outputs[key] * outputs[key]; + }); + if (hasWitness) + totalWeight += 2; + totalWeight += 10 * 4; + return Math.ceil(totalWeight / 4); + }; + BitcoinCash.prototype.encryptBIP38 = function (privKeyWIF, passphrase) { + var decoded = wif.decode(privKeyWIF); + return bip38.encrypt(decoded.privateKey, decoded.compressed, passphrase); + }; + BitcoinCash.prototype.decryptBIP38 = function (encryptedKey, passphrase, network) { + if (network === void 0) { network = "mainnet"; } + var decryptedKey = bip38.decrypt(encryptedKey, passphrase); + var prefix; + if (network === "testnet") + prefix = 0xef; + else + prefix = 0x80; + return wif.encode(prefix, decryptedKey.privateKey, decryptedKey.compressed); + }; + return BitcoinCash; +}()); +exports.BitcoinCash = BitcoinCash; +//# sourceMappingURL=BitcoinCash.js.map \ No newline at end of file diff --git a/lib/BitcoinCash.js.map b/lib/BitcoinCash.js.map new file mode 100644 index 00000000..2717dff9 --- /dev/null +++ b/lib/BitcoinCash.js.map @@ -0,0 +1 @@ +{"version":3,"file":"BitcoinCash.js","sourceRoot":"","sources":["BitcoinCash.ts"],"names":[],"mappings":";;AAAA,IAAM,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAC5C,IAAM,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;AACrC,IAAM,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AACnD,IAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAC9B,IAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AACpC,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAC9B,IAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;AAE1B,IAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,MAAM,CAAA;AAgD5C;IAEE,qBAAY,OAAY;QACtB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;IACzB,CAAC;IAED,mCAAmC;IACnC,+BAAS,GAAT,UAAU,KAAa;QACrB,OAAO,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC;IAED,kCAAkC;IAClC,mCAAa,GAAb,UAAc,QAAgB;QAC5B,OAAO,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IAC/B,CAAC;IAED,eAAe;IACf,4CAAsB,GAAtB,UAAuB,aAAqB,EAAE,OAAe;QAC3D,IAAM,OAAO,GACX,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;QACzD,IAAI,WAAgB,CAAA;QACpB,IAAI,OAAO,KAAK,SAAS;YAAE,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;;YAC7D,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;QAE5C,IAAM,uBAAuB,GAAQ,WAAW,CAAC,WAAW,EAAE,CAAA;QAC9D,IAAM,OAAO,GAAQ,OAAO,CAAC,MAAM,CAAC,OAAO,CACzC,aAAa,EACb,uBAAuB,CACxB,CAAA;QACD,IAAM,UAAU,GAAQ,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAC9C,OAAO,cAAc;aAClB,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC;aAC7C,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACvB,CAAC;IAED,iBAAiB;IACjB,mCAAa,GAAb,UAAc,OAAe,EAAE,SAAiB,EAAE,OAAe;QAC/D,OAAO,cAAc,CAAC,MAAM,CAC1B,OAAO,EACP,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,EACtC,SAAS,CACV,CAAA;IACH,CAAC;IAED,qBAAqB;IACrB,uCAAiB,GAAjB,UAAkB,GAAW;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;IAC7C,CAAC;IAED,qBAAqB;IACrB,uCAAiB,GAAjB,UAAkB,OAAe;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7C,CAAC;IAED,mBAAmB;IACnB,iCAAW,GAAX,UACE,OAAe,EACf,OAA2B,EAC3B,OAAwB;QAAxB,wBAAA,EAAA,eAAwB;QAExB,OAAO,KAAK,CAAC,MAAM,CACjB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,EACnD,OAAO,CACR,CAAA;IACH,CAAC;IAED,mBAAmB;IACnB,iCAAW,GAAX,UAAY,GAAW;QACrB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;IAED,kCAAY,GAAZ,UAAa,MAAW,EAAE,OAAY;QACpC,oFAAoF;QACpF,IAAI,WAAW,GAAW,CAAC,CAAA;QAC3B,IAAI,UAAU,GAAY,KAAK,CAAA;QAC/B,2CAA2C;QAC3C,IAAM,KAAK,GAAQ;YACjB,MAAM,EAAE;gBACN,eAAe,EAAE,EAAE,GAAG,CAAC;gBACvB,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;gBAC5B,qBAAqB,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;gBACjC,KAAK,EAAE,GAAG,GAAG,CAAC;gBACd,MAAM,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC;gBACpB,aAAa,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC;aAC5B;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,EAAE,GAAG,CAAC;gBACZ,KAAK,EAAE,EAAE,GAAG,CAAC;gBACb,MAAM,EAAE,EAAE,GAAG,CAAC;gBACd,KAAK,EAAE,EAAE,GAAG,CAAC;aACd;SACF,CAAA;QAED,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAS,GAAG;YACtC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU,EAAE;gBAClC,0DAA0D;gBAC1D,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAC/B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,oBAAkB,GAAK,CAAC,CAAA;gBACnE,IAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;gBAC1B,IAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAS,IAAI;oBACpD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAA;gBACvB,CAAC,CAAC,CAAA;gBAEF,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;gBACjD,IAAM,UAAU,GAAG,MAAM,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBACrD,WAAW,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAA;aAC5D;iBAAM;gBACL,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;aAC/C;YACD,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,UAAU,GAAG,IAAI,CAAA;QAC9C,CAAC,CAAC,CAAA;QAEF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAS,GAAG;YACvC,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAClD,CAAC,CAAC,CAAA;QAEF,IAAI,UAAU;YAAE,WAAW,IAAI,CAAC,CAAA;QAEhC,WAAW,IAAI,EAAE,GAAG,CAAC,CAAA;QAErB,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAA;IACnC,CAAC;IAED,kCAAY,GAAZ,UAAa,UAAkB,EAAE,UAAkB;QACjD,IAAM,OAAO,GAAQ,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAE3C,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;IAC1E,CAAC;IAED,kCAAY,GAAZ,UACE,YAAoB,EACpB,UAAkB,EAClB,OAA2B;QAA3B,wBAAA,EAAA,mBAA2B;QAE3B,IAAM,YAAY,GAAQ,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;QACjE,IAAI,MAAW,CAAA;QACf,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,GAAG,IAAI,CAAA;;YACnC,MAAM,GAAG,IAAI,CAAA;QAElB,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,CAAA;IAC7E,CAAC;IACH,kBAAC;AAAD,CAAC,AA7ID,IA6IC;AA7IY,kCAAW"} \ No newline at end of file diff --git a/lib/Block.js b/lib/Block.js new file mode 100644 index 00000000..d8895f1c --- /dev/null +++ b/lib/Block.js @@ -0,0 +1,126 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var axios_1 = require("axios"); +var Block = /** @class */ (function () { + function Block(restURL) { + this.restURL = restURL; + } + Block.prototype.detailsByHeight = function (id) { + return __awaiter(this, void 0, void 0, function () { + var response, options, response, error_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof id === "number")) return [3 /*break*/, 2]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "block/detailsByHeight/" + id)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data + // Array of blocks. + ]; + case 2: + if (!Array.isArray(id)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "block/detailsByHeight", + data: { + heights: id + } + }; + return [4 /*yield*/, axios_1.default(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input must be a number or array of numbers."); + case 5: + error_1 = _a.sent(); + if (error_1.response && error_1.response.data) + throw error_1.response.data; + else + throw error_1; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + Block.prototype.detailsByHash = function (hash) { + return __awaiter(this, void 0, void 0, function () { + var response, options, response, error_2; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof hash === "string")) return [3 /*break*/, 2]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "block/detailsByHash/" + hash)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data + // Array of hashes. + ]; + case 2: + if (!Array.isArray(hash)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "block/detailsByHash", + data: { + hashes: hash + } + }; + return [4 /*yield*/, axios_1.default(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input must be a string or array of strings."); + case 5: + error_2 = _a.sent(); + if (error_2.response && error_2.response.data) + throw error_2.response.data; + else + throw error_2; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + return Block; +}()); +exports.Block = Block; +//# sourceMappingURL=Block.js.map \ No newline at end of file diff --git a/lib/Block.js.map b/lib/Block.js.map new file mode 100644 index 00000000..ed2c26ba --- /dev/null +++ b/lib/Block.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Block.js","sourceRoot":"","sources":["Block.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAyB;AA6BzB;IAEE,eAAY,OAAe;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEK,+BAAe,GAArB,UACE,EAAqB;;;;;;;6BAIf,CAAA,OAAO,EAAE,KAAK,QAAQ,CAAA,EAAtB,wBAAsB;wBACF,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,8BAAyB,EAAI,CAC7C,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI;4BAEpB,mBAAmB;0BAFC;;6BAGX,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAjB,wBAAiB;wBACpB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,0BAAuB;4BAC3C,IAAI,EAAE;gCACJ,OAAO,EAAE,EAAE;6BACZ;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;;;wBAE9D,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,6BAAa,GAAnB,UACE,IAAuB;;;;;;;6BAIjB,CAAA,OAAO,IAAI,KAAK,QAAQ,CAAA,EAAxB,wBAAwB;wBACJ,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,4BAAuB,IAAM,CAC7C,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI;4BAEpB,mBAAmB;0BAFC;;6BAGX,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAnB,wBAAmB;wBACtB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,wBAAqB;4BACzC,IAAI,EAAE;gCACJ,MAAM,EAAE,IAAI;6BACb;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;;;wBAE9D,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IACH,YAAC;AAAD,CAAC,AArED,IAqEC;AArEY,sBAAK"} \ No newline at end of file diff --git a/lib/Blockchain.js b/lib/Blockchain.js new file mode 100644 index 00000000..7009bca3 --- /dev/null +++ b/lib/Blockchain.js @@ -0,0 +1,574 @@ +"use strict"; +/* + TODO + - Add blockhash functionality back into getTxOutProof +*/ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var axios_1 = require("axios"); +var Blockchain = /** @class */ (function () { + function Blockchain(restURL) { + this.restURL = restURL; + } + Blockchain.prototype.getBestBlockHash = function () { + return __awaiter(this, void 0, void 0, function () { + var response, error_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getBestBlockHash")]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_1 = _a.sent(); + if (error_1.response && error_1.response.data) + throw error_1.response.data; + else + throw error_1; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.getBlock = function (blockhash, verbose) { + if (verbose === void 0) { verbose = true; } + return __awaiter(this, void 0, void 0, function () { + var response, error_2; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getBlock/" + blockhash + "?verbose=" + verbose)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_2 = _a.sent(); + if (error_2.response && error_2.response.data) + throw error_2.response.data; + else + throw error_2; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.getBlockchainInfo = function () { + return __awaiter(this, void 0, void 0, function () { + var response, error_3; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getBlockchainInfo")]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_3 = _a.sent(); + if (error_3.response && error_3.response.data) + throw error_3.response.data; + else + throw error_3; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.getBlockCount = function () { + return __awaiter(this, void 0, void 0, function () { + var response, error_4; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getBlockCount")]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_4 = _a.sent(); + if (error_4.response && error_4.response.data) + throw error_4.response.data; + else + throw error_4; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.getBlockHash = function (height) { + if (height === void 0) { height = 1; } + return __awaiter(this, void 0, void 0, function () { + var response, error_5; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getBlockHash/" + height)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_5 = _a.sent(); + if (error_5.response && error_5.response.data) + throw error_5.response.data; + else + throw error_5; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.getBlockHeader = function (hash, verbose) { + if (verbose === void 0) { verbose = true; } + return __awaiter(this, void 0, void 0, function () { + var response, options, response, error_6; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof hash === "string")) return [3 /*break*/, 2]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getBlockHeader/" + hash + "?verbose=" + verbose)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data + // Handle array of hashes. + ]; + case 2: + if (!Array.isArray(hash)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "blockchain/getBlockHeader", + data: { + hashes: hash, + verbose: verbose + } + }; + return [4 /*yield*/, axios_1.default(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input hash must be a string or array of strings."); + case 5: + error_6 = _a.sent(); + if (error_6.response && error_6.response.data) + throw error_6.response.data; + else + throw error_6; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.getChainTips = function () { + return __awaiter(this, void 0, void 0, function () { + var response, error_7; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getChainTips")]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_7 = _a.sent(); + if (error_7.response && error_7.response.data) + throw error_7.response.data; + else + throw error_7; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.getDifficulty = function () { + return __awaiter(this, void 0, void 0, function () { + var response, error_8; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getDifficulty")]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_8 = _a.sent(); + if (error_8.response && error_8.response.data) + throw error_8.response.data; + else + throw error_8; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + // TODO: add back to REST + Blockchain.prototype.getMempoolAncestors = function (txid, verbose) { + if (verbose === void 0) { verbose = false; } + return __awaiter(this, void 0, void 0, function () { + var response, error_9; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (typeof txid !== "string") + txid = JSON.stringify(txid); + _a.label = 1; + case 1: + _a.trys.push([1, 3, , 4]); + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getMempoolAncestors/" + txid + "?verbose=" + verbose)]; + case 2: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 3: + error_9 = _a.sent(); + if (error_9.response && error_9.response.data) + throw error_9.response.data; + else + throw error_9; + return [3 /*break*/, 4]; + case 4: return [2 /*return*/]; + } + }); + }); + }; + // TODO: add back to REST + Blockchain.prototype.getMempoolDescendants = function (txid, verbose) { + if (verbose === void 0) { verbose = false; } + return __awaiter(this, void 0, void 0, function () { + var response, error_10; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (typeof txid !== "string") + txid = JSON.stringify(txid); + _a.label = 1; + case 1: + _a.trys.push([1, 3, , 4]); + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getMempoolDescendants/" + txid + "?verbose=" + verbose)]; + case 2: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 3: + error_10 = _a.sent(); + if (error_10.response && error_10.response.data) + throw error_10.response.data; + else + throw error_10; + return [3 /*break*/, 4]; + case 4: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.getMempoolEntry = function (txid) { + return __awaiter(this, void 0, void 0, function () { + var response, options, response, error_11; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof txid === "string")) return [3 /*break*/, 2]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getMempoolEntry/" + txid)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + if (!Array.isArray(txid)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "blockchain/getMempoolEntry", + data: { + txids: txid + } + }; + return [4 /*yield*/, axios_1.default(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input must be a string or array of strings."); + case 5: + error_11 = _a.sent(); + if (error_11.response && error_11.response.data) + throw error_11.response.data; + else + throw error_11; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.getMempoolInfo = function () { + return __awaiter(this, void 0, void 0, function () { + var response, error_12; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getMempoolInfo")]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_12 = _a.sent(); + if (error_12.response && error_12.response.data) + throw error_12.response.data; + else + throw error_12; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.getRawMempool = function (verbose) { + if (verbose === void 0) { verbose = false; } + return __awaiter(this, void 0, void 0, function () { + var response, error_13; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getRawMempool?vebose=" + verbose)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_13 = _a.sent(); + if (error_13.response && error_13.response.data) + throw error_13.response.data; + else + throw error_13; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.getTxOut = function (txid, n, include_mempool) { + if (include_mempool === void 0) { include_mempool = true; } + return __awaiter(this, void 0, void 0, function () { + var response, error_14; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getTxOut/" + txid + "/n?include_mempool=" + include_mempool)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_14 = _a.sent(); + if (error_14.response && error_14.response.data) + throw error_14.response.data; + else + throw error_14; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.getTxOutProof = function (txids) { + return __awaiter(this, void 0, void 0, function () { + var path, response, options, response, error_15; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof txids === "string")) return [3 /*break*/, 2]; + path = this.restURL + "blockchain/getTxOutProof/" + txids; + return [4 /*yield*/, axios_1.default.get(path)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data + // Array of txids. + ]; + case 2: + if (!Array.isArray(txids)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "blockchain/getTxOutProof", + data: { + txids: txids + } + }; + return [4 /*yield*/, axios_1.default(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input must be a string or array of strings."); + case 5: + error_15 = _a.sent(); + if (error_15.response && error_15.response.data) + throw error_15.response.data; + else + throw error_15; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.preciousBlock = function (blockhash) { + return __awaiter(this, void 0, void 0, function () { + var response, error_16; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/preciousBlock/" + blockhash)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_16 = _a.sent(); + if (error_16.response && error_16.response.data) + throw error_16.response.data; + else + throw error_16; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.pruneBlockchain = function (height) { + return __awaiter(this, void 0, void 0, function () { + var response, error_17; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios_1.default.post(this.restURL + "blockchain/pruneBlockchain/" + height)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_17 = _a.sent(); + if (error_17.response && error_17.response.data) + throw error_17.response.data; + else + throw error_17; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.verifyChain = function (checklevel, nblocks) { + if (checklevel === void 0) { checklevel = 3; } + if (nblocks === void 0) { nblocks = 6; } + return __awaiter(this, void 0, void 0, function () { + var response, error_18; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/verifyChain?checklevel=" + checklevel + "&nblocks=" + nblocks)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_18 = _a.sent(); + if (error_18.response && error_18.response.data) + throw error_18.response.data; + else + throw error_18; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Blockchain.prototype.verifyTxOutProof = function (proof) { + return __awaiter(this, void 0, void 0, function () { + var response, options, response, error_19; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof proof === "string")) return [3 /*break*/, 2]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/verifyTxOutProof/" + proof)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data + // Array of hashes. + ]; + case 2: + if (!Array.isArray(proof)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "blockchain/verifyTxOutProof", + data: { + proofs: proof + } + }; + return [4 /*yield*/, axios_1.default(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input must be a string or array of strings."); + case 5: + error_19 = _a.sent(); + if (error_19.response && error_19.response.data) + throw error_19.response.data; + else + throw error_19; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + return Blockchain; +}()); +exports.Blockchain = Blockchain; +//# sourceMappingURL=Blockchain.js.map \ No newline at end of file diff --git a/lib/Blockchain.js.map b/lib/Blockchain.js.map new file mode 100644 index 00000000..7e5c4e82 --- /dev/null +++ b/lib/Blockchain.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Blockchain.js","sourceRoot":"","sources":["Blockchain.ts"],"names":[],"mappings":";AAAA;;;EAGE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEF,+BAAyB;AA8FzB;IAEE,oBAAY,OAAe;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEK,qCAAgB,GAAtB;;;;;;;wBAE0B,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,gCAA6B,CAC7C,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,6BAAQ,GAAd,UACE,SAAiB,EACjB,OAAuB;QAAvB,wBAAA,EAAA,cAAuB;;;;;;;wBAGC,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,4BAAuB,SAAS,iBAAY,OAAS,CACrE,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,sCAAiB,GAAvB;;;;;;;wBAE0B,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,iCAA8B,CAC9C,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,kCAAa,GAAnB;;;;;;;wBAE0B,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,6BAA0B,CAC1C,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,iCAAY,GAAlB,UAAmB,MAAkB;QAAlB,uBAAA,EAAA,UAAkB;;;;;;;wBAIX,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,gCAA2B,MAAQ,CACnD,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,mCAAc,GAApB,UACE,IAAuB,EACvB,OAAuB;QAAvB,wBAAA,EAAA,cAAuB;;;;;;;6BAIjB,CAAA,OAAO,IAAI,KAAK,QAAQ,CAAA,EAAxB,wBAAwB;wBACJ,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,kCAA6B,IAAI,iBAAY,OAAS,CACtE,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBAED,sBAAO,QAAQ,CAAC,IAAI;4BAEpB,0BAA0B;0BAFN;;6BAGX,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAnB,wBAAmB;wBACtB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,8BAA2B;4BAC/C,IAAI,EAAE;gCACJ,MAAM,EAAE,IAAI;gCACZ,OAAO,EAAE,OAAO;6BACjB;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;;;wBAEnE,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,iCAAY,GAAlB;;;;;;;wBAE0B,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,4BAAyB,CACzC,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,kCAAa,GAAnB;;;;;;;wBAE0B,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,6BAA0B,CAC1C,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAED,yBAAyB;IACnB,wCAAmB,GAAzB,UACE,IAAY,EACZ,OAAwB;QAAxB,wBAAA,EAAA,eAAwB;;;;;;wBAExB,IAAI,OAAO,IAAI,KAAK,QAAQ;4BAAE,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;;;;wBAGjC,qBAAM,eAAK,CAAC,GAAG,CAEjC,IAAI,CAAC,OAAO,uCACoB,IAAI,iBAAY,OAAS,CAC5D,EAAA;;wBAJK,QAAQ,GAAQ,SAIrB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAED,yBAAyB;IACnB,0CAAqB,GAA3B,UACE,IAAY,EACZ,OAAwB;QAAxB,wBAAA,EAAA,eAAwB;;;;;;wBAExB,IAAI,OAAO,IAAI,KAAK,QAAQ;4BAAE,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;;;;wBAGjC,qBAAM,eAAK,CAAC,GAAG,CAEjC,IAAI,CAAC,OAAO,yCACsB,IAAI,iBAAY,OAAS,CAC9D,EAAA;;wBAJK,QAAQ,GAAQ,SAIrB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,oCAAe,GAArB,UAAsB,IAAuB;;;;;;;6BAIrC,CAAA,OAAO,IAAI,KAAK,QAAQ,CAAA,EAAxB,wBAAwB;wBACJ,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,mCAA8B,IAAM,CACpD,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBAED,sBAAO,QAAQ,CAAC,IAAI,EAAA;;6BACX,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAnB,wBAAmB;wBACtB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,+BAA4B;4BAChD,IAAI,EAAE;gCACJ,KAAK,EAAE,IAAI;6BACZ;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;;;wBAE9D,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,mCAAc,GAApB;;;;;;;wBAE0B,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,8BAA2B,CAC3C,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,kCAAa,GAAnB,UAAoB,OAAwB;QAAxB,wBAAA,EAAA,eAAwB;;;;;;;wBAGlB,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,wCAAmC,OAAS,CAC5D,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,6BAAQ,GAAd,UACE,IAAY,EACZ,CAAM,EACN,eAA+B;QAA/B,gCAAA,EAAA,sBAA+B;;;;;;;wBAIP,qBAAM,eAAK,CAAC,GAAG,CAEjC,IAAI,CAAC,OAAO,4BACS,IAAI,2BAAsB,eAAiB,CACnE,EAAA;;wBAJK,QAAQ,GAAQ,SAIrB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,kCAAa,GAAnB,UAAoB,KAAwB;;;;;;;6BAGpC,CAAA,OAAO,KAAK,KAAK,QAAQ,CAAA,EAAzB,wBAAyB;wBACrB,IAAI,GAAM,IAAI,CAAC,OAAO,iCAA4B,KAAO,CAAA;wBAGzC,qBAAM,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAA;;wBAArC,QAAQ,GAAQ,SAAqB;wBAC3C,sBAAO,QAAQ,CAAC,IAAI;4BAEpB,kBAAkB;0BAFE;;6BAGX,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAApB,wBAAoB;wBACvB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,6BAA0B;4BAC9C,IAAI,EAAE;gCACJ,KAAK,EAAE,KAAK;6BACb;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;;;wBAE9D,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,kCAAa,GAAnB,UAAoB,SAAiB;;;;;;;wBAGX,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,iCAA4B,SAAW,CACvD,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,oCAAe,GAArB,UAAsB,MAAc;;;;;;;wBAGf,qBAAM,eAAK,CAAC,IAAI,CAC5B,IAAI,CAAC,OAAO,mCAA8B,MAAQ,CACtD,EAAA;;wBAFK,QAAQ,GAAG,SAEhB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,gCAAW,GAAjB,UACE,UAAsB,EACtB,OAAmB;QADnB,2BAAA,EAAA,cAAsB;QACtB,wBAAA,EAAA,WAAmB;;;;;;;wBAGK,qBAAM,eAAK,CAAC,GAAG,CAEjC,IAAI,CAAC,OAAO,0CACuB,UAAU,iBAAY,OAAS,CACrE,EAAA;;wBAJK,QAAQ,GAAQ,SAIrB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,qCAAgB,GAAtB,UAAuB,KAAkB;;;;;;;6BAGjC,CAAA,OAAO,KAAK,KAAK,QAAQ,CAAA,EAAzB,wBAAyB;wBACL,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,oCAA+B,KAAO,CACtD,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI;4BAEpB,mBAAmB;0BAFC;;6BAGX,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAApB,wBAAoB;wBACvB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,gCAA6B;4BACjD,IAAI,EAAE;gCACJ,MAAM,EAAE,KAAK;6BACd;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;;;wBAE9D,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IACH,iBAAC;AAAD,CAAC,AA3VD,IA2VC;AA3VY,gCAAU"} \ No newline at end of file diff --git a/lib/Control.js b/lib/Control.js new file mode 100644 index 00000000..8aa790fe --- /dev/null +++ b/lib/Control.js @@ -0,0 +1,92 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var axios_1 = require("axios"); +var Control = /** @class */ (function () { + function Control(restURL) { + this.restURL = restURL; + } + Control.prototype.getInfo = function () { + return __awaiter(this, void 0, void 0, function () { + var response, error_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios_1.default.get(this.restURL + "control/getInfo")]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_1 = _a.sent(); + if (error_1.response && error_1.response.data) + throw error_1.response.data; + else + throw error_1; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Control.prototype.getMemoryInfo = function () { + return __awaiter(this, void 0, void 0, function () { + var response, error_2; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios_1.default.get(this.restURL + "control/getMemoryInfo")]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_2 = _a.sent(); + if (error_2.response && error_2.response.data) + throw error_2.response.data; + else + throw error_2; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + return Control; +}()); +exports.Control = Control; +//# sourceMappingURL=Control.js.map \ No newline at end of file diff --git a/lib/Control.js.map b/lib/Control.js.map new file mode 100644 index 00000000..974079ec --- /dev/null +++ b/lib/Control.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Control.js","sourceRoot":"","sources":["Control.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAyB;AAiCzB;IAEE,iBAAY,OAAe;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEK,yBAAO,GAAb;;;;;;;wBAE0B,qBAAM,eAAK,CAAC,GAAG,CAAI,IAAI,CAAC,OAAO,oBAAiB,CAAC,EAAA;;wBAAjE,QAAQ,GAAQ,SAAiD;wBACvE,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,+BAAa,GAAnB;;;;;;;wBAG0B,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,0BAAuB,CACvC,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAYH,cAAC;AAAD,CAAC,AAvCD,IAuCC;AAvCY,0BAAO"} \ No newline at end of file diff --git a/lib/Crypto.js b/lib/Crypto.js new file mode 100644 index 00000000..02d955f3 --- /dev/null +++ b/lib/Crypto.js @@ -0,0 +1,27 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var randomBytes = require("randombytes"); +var Bitcoin = require("bitcoincashjs-lib"); +var Crypto = /** @class */ (function () { + function Crypto() { + } + Crypto.sha256 = function (buffer) { + return Bitcoin.crypto.sha256(buffer); + }; + Crypto.ripemd160 = function (buffer) { + return Bitcoin.crypto.ripemd160(buffer); + }; + Crypto.hash256 = function (buffer) { + return Bitcoin.crypto.hash256(buffer); + }; + Crypto.hash160 = function (buffer) { + return Bitcoin.crypto.hash160(buffer); + }; + Crypto.randomBytes = function (size) { + if (size === void 0) { size = 16; } + return randomBytes(size); + }; + return Crypto; +}()); +exports.Crypto = Crypto; +//# sourceMappingURL=Crypto.js.map \ No newline at end of file diff --git a/lib/Crypto.js.map b/lib/Crypto.js.map new file mode 100644 index 00000000..00517edd --- /dev/null +++ b/lib/Crypto.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Crypto.js","sourceRoot":"","sources":["Crypto.ts"],"names":[],"mappings":";;AAAA,IAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;AAC1C,IAAM,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAW5C;IAAA;IAoBA,CAAC;IAnBQ,aAAM,GAAb,UAAc,MAAc;QAC1B,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACtC,CAAC;IAEM,gBAAS,GAAhB,UAAiB,MAAc;QAC7B,OAAO,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IACzC,CAAC;IAEM,cAAO,GAAd,UAAe,MAAc;QAC3B,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACvC,CAAC;IAEM,cAAO,GAAd,UAAe,MAAc;QAC3B,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACvC,CAAC;IAEM,kBAAW,GAAlB,UAAmB,IAAiB;QAAjB,qBAAA,EAAA,SAAiB;QAClC,OAAO,WAAW,CAAC,IAAI,CAAC,CAAA;IAC1B,CAAC;IACH,aAAC;AAAD,CAAC,AApBD,IAoBC;AApBY,wBAAM"} \ No newline at end of file diff --git a/lib/ECPair.js b/lib/ECPair.js new file mode 100644 index 00000000..196ae741 --- /dev/null +++ b/lib/ECPair.js @@ -0,0 +1,50 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Bitcoin = require("bitcoincashjs-lib"); +var coininfo = require("coininfo"); +var ECPair = /** @class */ (function () { + function ECPair() { + } + ECPair.setAddress = function (address) { + ECPair._address = address; + }; + ECPair.fromWIF = function (privateKeyWIF) { + var network = "mainnet"; + if (privateKeyWIF[0] === "L" || privateKeyWIF[0] === "K") + network = "mainnet"; + else if (privateKeyWIF[0] === "c") + network = "testnet"; + var bitcoincash; + if (network === "mainnet") + bitcoincash = coininfo.bitcoincash.main; + else + bitcoincash = coininfo.bitcoincash.test; + var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); + return Bitcoin.ECPair.fromWIF(privateKeyWIF, bitcoincashBitcoinJSLib); + }; + ECPair.toWIF = function (ecpair) { + return ecpair.toWIF(); + }; + ECPair.sign = function (ecpair, buffer) { + return ecpair.sign(buffer); + }; + ECPair.verify = function (ecpair, buffer, signature) { + return ecpair.verify(buffer, signature); + }; + ECPair.fromPublicKey = function (pubkeyBuffer) { + return Bitcoin.ECPair.fromPublicKeyBuffer(pubkeyBuffer); + }; + ECPair.toPublicKey = function (ecpair) { + return ecpair.getPublicKeyBuffer(); + }; + ECPair.toLegacyAddress = function (ecpair) { + return ecpair.getAddress(); + }; + ECPair.toCashAddress = function (ecpair, regtest) { + if (regtest === void 0) { regtest = false; } + return ECPair._address.toCashAddress(ecpair.getAddress(), true, regtest); + }; + return ECPair; +}()); +exports.ECPair = ECPair; +//# sourceMappingURL=ECPair.js.map \ No newline at end of file diff --git a/lib/ECPair.js.map b/lib/ECPair.js.map new file mode 100644 index 00000000..d6b6ccfc --- /dev/null +++ b/lib/ECPair.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ECPair.js","sourceRoot":"","sources":["ECPair.ts"],"names":[],"mappings":";;AAAA,IAAM,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAC5C,IAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAyBpC;IAAA;IAgDA,CAAC;IA9CQ,iBAAU,GAAjB,UAAkB,OAAY;QAC5B,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAA;IAC3B,CAAC;IAEM,cAAO,GAAd,UAAe,aAAqB;QAClC,IAAI,OAAO,GAAW,SAAS,CAAA;QAC/B,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,GAAG;YACtD,OAAO,GAAG,SAAS,CAAA;aAChB,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,OAAO,GAAG,SAAS,CAAA;QAEtD,IAAI,WAAgB,CAAA;QACpB,IAAI,OAAO,KAAK,SAAS;YAAE,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;;YAC7D,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;QAE5C,IAAM,uBAAuB,GAAG,WAAW,CAAC,WAAW,EAAE,CAAA;QAEzD,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAA;IACvE,CAAC;IAEM,YAAK,GAAZ,UAAa,MAAc;QACzB,OAAO,MAAM,CAAC,KAAK,EAAE,CAAA;IACvB,CAAC;IAEM,WAAI,GAAX,UAAY,MAAc,EAAE,MAAc;QACxC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC5B,CAAC;IAEM,aAAM,GAAb,UAAc,MAAc,EAAE,MAAc,EAAE,SAAsB;QAClE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACzC,CAAC;IAEM,oBAAa,GAApB,UAAqB,YAAoB;QACvC,OAAO,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAA;IACzD,CAAC;IAEM,kBAAW,GAAlB,UAAmB,MAAc;QAC/B,OAAO,MAAM,CAAC,kBAAkB,EAAE,CAAA;IACpC,CAAC;IAEM,sBAAe,GAAtB,UAAuB,MAAc;QACnC,OAAO,MAAM,CAAC,UAAU,EAAE,CAAA;IAC5B,CAAC;IAEM,oBAAa,GAApB,UAAqB,MAAc,EAAE,OAAwB;QAAxB,wBAAA,EAAA,eAAwB;QAC3D,OAAO,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAC1E,CAAC;IACH,aAAC;AAAD,CAAC,AAhDD,IAgDC;AAhDY,wBAAM"} \ No newline at end of file diff --git a/lib/Generating.js b/lib/Generating.js new file mode 100644 index 00000000..1584b34d --- /dev/null +++ b/lib/Generating.js @@ -0,0 +1,70 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var axios_1 = require("axios"); +var Generating = /** @class */ (function () { + function Generating(restURL) { + this.restURL = restURL; + } + Generating.prototype.generateToAddress = function (blocks, address, maxtries) { + if (maxtries === void 0) { maxtries = 1000000; } + return __awaiter(this, void 0, void 0, function () { + var response, error_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios_1.default.post(this.restURL + "generating/generateToAddress/" + blocks + "/" + address + "?maxtries=" + maxtries)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_1 = _a.sent(); + if (error_1.response && error_1.response.data) + throw error_1.response.data; + else + throw error_1; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + return Generating; +}()); +exports.Generating = Generating; +//# sourceMappingURL=Generating.js.map \ No newline at end of file diff --git a/lib/Generating.js.map b/lib/Generating.js.map new file mode 100644 index 00000000..c46bd6ce --- /dev/null +++ b/lib/Generating.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Generating.js","sourceRoot":"","sources":["Generating.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAyB;AAWzB;IAEE,oBAAY,OAAe;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEK,sCAAiB,GAAvB,UACE,MAAc,EACd,OAAe,EACf,QAA0B;QAA1B,yBAAA,EAAA,kBAA0B;;;;;;;wBAGF,qBAAM,eAAK,CAAC,IAAI,CAElC,IAAI,CAAC,OAAO,qCACkB,MAAM,SAAI,OAAO,kBAAa,QAAU,CACzE,EAAA;;wBAJK,QAAQ,GAAQ,SAIrB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IACH,iBAAC;AAAD,CAAC,AAvBD,IAuBC;AAvBY,gCAAU"} \ No newline at end of file diff --git a/lib/HDNode.js b/lib/HDNode.js new file mode 100644 index 00000000..38b81c2d --- /dev/null +++ b/lib/HDNode.js @@ -0,0 +1,97 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Bitcoin = require("bitcoincashjs-lib"); +var coininfo = require("coininfo"); +var bip32utils = require("bip32-utils"); +var HDNode = /** @class */ (function () { + function HDNode(address) { + this._address = address; + } + HDNode.prototype.fromSeed = function (rootSeedBuffer, network) { + if (network === void 0) { network = "mainnet"; } + var bitcoincash; + if (network === "bitcoincash" || network === "mainnet") + bitcoincash = coininfo.bitcoincash.main; + else + bitcoincash = coininfo.bitcoincash.test; + var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); + return Bitcoin.HDNode.fromSeedBuffer(rootSeedBuffer, bitcoincashBitcoinJSLib); + }; + HDNode.prototype.toLegacyAddress = function (hdNode) { + return hdNode.getAddress(); + }; + HDNode.prototype.toCashAddress = function (hdNode, regtest) { + if (regtest === void 0) { regtest = false; } + return this._address.toCashAddress(hdNode.getAddress(), true, regtest); + }; + HDNode.prototype.toWIF = function (hdNode) { + return hdNode.keyPair.toWIF(); + }; + HDNode.prototype.toXPub = function (hdNode) { + return hdNode.neutered().toBase58(); + }; + HDNode.prototype.toXPriv = function (hdNode) { + return hdNode.toBase58(); + }; + HDNode.prototype.toKeyPair = function (hdNode) { + return hdNode.keyPair; + }; + HDNode.prototype.toPublicKey = function (hdNode) { + return hdNode.getPublicKeyBuffer(); + }; + HDNode.prototype.fromXPriv = function (xpriv) { + var bitcoincash; + if (xpriv[0] === "x") + bitcoincash = coininfo.bitcoincash.main; + else if (xpriv[0] === "t") + bitcoincash = coininfo.bitcoincash.test; + var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); + return Bitcoin.HDNode.fromBase58(xpriv, bitcoincashBitcoinJSLib); + }; + HDNode.prototype.fromXPub = function (xpub) { + var bitcoincash; + if (xpub[0] === "x") + bitcoincash = coininfo.bitcoincash.main; + else if (xpub[0] === "t") + bitcoincash = coininfo.bitcoincash.test; + var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); + return Bitcoin.HDNode.fromBase58(xpub, bitcoincashBitcoinJSLib); + }; + HDNode.prototype.derivePath = function (hdnode, path) { + return hdnode.derivePath(path); + }; + HDNode.prototype.derive = function (hdnode, path) { + return hdnode.derive(path); + }; + HDNode.prototype.deriveHardened = function (hdnode, path) { + return hdnode.deriveHardened(path); + }; + HDNode.prototype.sign = function (hdnode, buffer) { + return hdnode.sign(buffer); + }; + HDNode.prototype.verify = function (hdnode, buffer, signature) { + return hdnode.verify(buffer, signature); + }; + HDNode.prototype.isPublic = function (hdnode) { + return JSON.parse(hdnode.isNeutered()); + }; + HDNode.prototype.isPrivate = function (hdnode) { + return !hdnode.isNeutered(); + }; + HDNode.prototype.toIdentifier = function (hdnode) { + return hdnode.getIdentifier(); + }; + HDNode.prototype.fromBase58 = function (base58, network) { + return Bitcoin.HDNode.fromBase58(base58, network); + }; + HDNode.prototype.createAccount = function (hdNodes) { + var arr = hdNodes.map(function (item, index) { return new bip32utils.Chain(item.neutered()); }); + return new bip32utils.Account(arr); + }; + HDNode.prototype.createChain = function (hdNode) { + return new bip32utils.Chain(hdNode); + }; + return HDNode; +}()); +exports.HDNode = HDNode; +//# sourceMappingURL=HDNode.js.map \ No newline at end of file diff --git a/lib/HDNode.js.map b/lib/HDNode.js.map new file mode 100644 index 00000000..e17b6646 --- /dev/null +++ b/lib/HDNode.js.map @@ -0,0 +1 @@ +{"version":3,"file":"HDNode.js","sourceRoot":"","sources":["HDNode.ts"],"names":[],"mappings":";;AAAA,IAAM,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAC5C,IAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AACpC,IAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;AAmBzC;IAEE,gBAAY,OAAY;QACtB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;IACzB,CAAC;IAED,yBAAQ,GAAR,UAAS,cAAmB,EAAE,OAA2B;QAA3B,wBAAA,EAAA,mBAA2B;QACvD,IAAI,WAAgB,CAAA;QACpB,IAAI,OAAO,KAAK,aAAa,IAAI,OAAO,KAAK,SAAS;YACpD,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;;YACpC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;QAE5C,IAAM,uBAAuB,GAAG,WAAW,CAAC,WAAW,EAAE,CAAA;QACzD,OAAO,OAAO,CAAC,MAAM,CAAC,cAAc,CAClC,cAAc,EACd,uBAAuB,CACxB,CAAA;IACH,CAAC;IAED,gCAAe,GAAf,UAAgB,MAAiB;QAC/B,OAAO,MAAM,CAAC,UAAU,EAAE,CAAA;IAC5B,CAAC;IAED,8BAAa,GAAb,UAAc,MAAiB,EAAE,OAAwB;QAAxB,wBAAA,EAAA,eAAwB;QACvD,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IACxE,CAAC;IAED,sBAAK,GAAL,UAAM,MAAiB;QACrB,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;IAC/B,CAAC;IAED,uBAAM,GAAN,UAAO,MAAiB;QACtB,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAA;IACrC,CAAC;IAED,wBAAO,GAAP,UAAQ,MAAiB;QACvB,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAA;IAC1B,CAAC;IAED,0BAAS,GAAT,UAAU,MAAiB;QACzB,OAAO,MAAM,CAAC,OAAO,CAAA;IACvB,CAAC;IAED,4BAAW,GAAX,UAAY,MAAiB;QAC3B,OAAO,MAAM,CAAC,kBAAkB,EAAE,CAAA;IACpC,CAAC;IAED,0BAAS,GAAT,UAAU,KAAa;QACrB,IAAI,WAAgB,CAAA;QACpB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;aACxD,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;QAElE,IAAM,uBAAuB,GAAG,WAAW,CAAC,WAAW,EAAE,CAAA;QACzD,OAAO,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAA;IAClE,CAAC;IAED,yBAAQ,GAAR,UAAS,IAAY;QACnB,IAAI,WAAgB,CAAA;QACpB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;aACvD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;QAEjE,IAAM,uBAAuB,GAAG,WAAW,CAAC,WAAW,EAAE,CAAA;QACzD,OAAO,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAA;IACjE,CAAC;IAED,2BAAU,GAAV,UAAW,MAAiB,EAAE,IAAY;QACxC,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED,uBAAM,GAAN,UAAO,MAAiB,EAAE,IAAY;QACpC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC5B,CAAC;IAED,+BAAc,GAAd,UAAe,MAAiB,EAAE,IAAY;QAC5C,OAAO,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC;IAED,qBAAI,GAAJ,UAAK,MAAiB,EAAE,MAAc;QACpC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC5B,CAAC;IAED,uBAAM,GAAN,UAAO,MAAiB,EAAE,MAAc,EAAE,SAAsB;QAC9D,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACzC,CAAC;IAED,yBAAQ,GAAR,UAAS,MAAiB;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAA;IACxC,CAAC;IAED,0BAAS,GAAT,UAAU,MAAiB;QACzB,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,CAAA;IAC7B,CAAC;IAED,6BAAY,GAAZ,UAAa,MAAiB;QAC5B,OAAO,MAAM,CAAC,aAAa,EAAE,CAAA;IAC/B,CAAC;IAED,2BAAU,GAAV,UAAW,MAAc,EAAE,OAAe;QACxC,OAAO,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnD,CAAC;IAED,8BAAa,GAAb,UAAc,OAAoB;QAChC,IAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CACrB,UAAC,IAAS,EAAE,KAAa,IAAK,OAAA,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAArC,CAAqC,CACpE,CAAA;QACD,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACpC,CAAC;IAED,4BAAW,GAAX,UAAY,MAAiB;QAC3B,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IACrC,CAAC;IACH,aAAC;AAAD,CAAC,AA/GD,IA+GC;AA/GY,wBAAM"} \ No newline at end of file diff --git a/lib/Mining.js b/lib/Mining.js new file mode 100644 index 00000000..ba0bd928 --- /dev/null +++ b/lib/Mining.js @@ -0,0 +1,145 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var axios_1 = require("axios"); +var Mining = /** @class */ (function () { + function Mining(restURL) { + this.restURL = restURL; + } + Mining.prototype.getBlockTemplate = function (template_request) { + return __awaiter(this, void 0, void 0, function () { + var response, error_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios_1.default.get(this.restURL + "mining/getBlockTemplate/" + template_request)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_1 = _a.sent(); + if (error_1.response && error_1.response.data) + throw error_1.response.data; + else + throw error_1; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Mining.prototype.getMiningInfo = function () { + return __awaiter(this, void 0, void 0, function () { + var response, error_2; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios_1.default.get(this.restURL + "mining/getMiningInfo")]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_2 = _a.sent(); + if (error_2.response && error_2.response.data) + throw error_2.response.data; + else + throw error_2; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Mining.prototype.getNetworkHashps = function (nblocks, height) { + if (nblocks === void 0) { nblocks = 120; } + if (height === void 0) { height = 1; } + return __awaiter(this, void 0, void 0, function () { + var response, error_3; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios_1.default.get(this.restURL + "mining/getNetworkHashps?nblocks=" + nblocks + "&height=" + height)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + error_3 = _a.sent(); + if (error_3.response && error_3.response.data) + throw error_3.response.data; + else + throw error_3; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + Mining.prototype.submitBlock = function (hex, parameters) { + return __awaiter(this, void 0, void 0, function () { + var path, response, error_4; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + path = this.restURL + "mining/submitBlock/" + hex; + if (parameters) + path = path + "?parameters=" + parameters; + _a.label = 1; + case 1: + _a.trys.push([1, 3, , 4]); + return [4 /*yield*/, axios_1.default.post(path)]; + case 2: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 3: + error_4 = _a.sent(); + if (error_4.response && error_4.response.data) + throw error_4.response.data; + else + throw error_4; + return [3 /*break*/, 4]; + case 4: return [2 /*return*/]; + } + }); + }); + }; + return Mining; +}()); +exports.Mining = Mining; +//# sourceMappingURL=Mining.js.map \ No newline at end of file diff --git a/lib/Mining.js.map b/lib/Mining.js.map new file mode 100644 index 00000000..55fb34ef --- /dev/null +++ b/lib/Mining.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Mining.js","sourceRoot":"","sources":["Mining.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAyB;AAUzB;IAEE,gBAAY,OAAe;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEK,iCAAgB,GAAtB,UAAuB,gBAAqB;;;;;;;wBAElB,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,gCAA2B,gBAAkB,CAC7D,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,8BAAa,GAAnB;;;;;;;wBAE0B,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,yBAAsB,CACtC,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,iCAAgB,GAAtB,UACE,OAAqB,EACrB,MAAkB;QADlB,wBAAA,EAAA,aAAqB;QACrB,uBAAA,EAAA,UAAkB;;;;;;;wBAGM,qBAAM,eAAK,CAAC,GAAG,CAEjC,IAAI,CAAC,OAAO,wCACqB,OAAO,gBAAW,MAAQ,CAC9D,EAAA;;wBAJK,QAAQ,GAAQ,SAIrB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,4BAAW,GAAjB,UAAkB,GAAW,EAAE,UAAe;;;;;;wBACxC,IAAI,GAAc,IAAI,CAAC,OAAO,2BAAsB,GAAK,CAAA;wBAC7D,IAAI,UAAU;4BAAE,IAAI,GAAM,IAAI,oBAAe,UAAY,CAAA;;;;wBAGjC,qBAAM,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAA;;wBAAtC,QAAQ,GAAQ,SAAsB;wBAC5C,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IACH,aAAC;AAAD,CAAC,AA3DD,IA2DC;AA3DY,wBAAM"} \ No newline at end of file diff --git a/lib/Mnemonic.js b/lib/Mnemonic.js new file mode 100644 index 00000000..324310b4 --- /dev/null +++ b/lib/Mnemonic.js @@ -0,0 +1,248 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var BIP39 = require("bip39"); +var randomBytes = require("randombytes"); +var Bitcoin = require("bitcoincashjs-lib"); +var buffer_1 = require("buffer"); +var wif = require("wif"); +var Mnemonic = /** @class */ (function () { + function Mnemonic(address) { + this._address = address; + } + Mnemonic.prototype.generate = function (bits, wordlist) { + if (bits === void 0) { bits = 128; } + return BIP39.generateMnemonic(bits, randomBytes, wordlist); + }; + Mnemonic.prototype.fromEntropy = function (bytes, wordlist) { + return BIP39.entropyToMnemonic(bytes, wordlist); + }; + Mnemonic.prototype.toEntropy = function (mnemonic, wordlist) { + return buffer_1.Buffer.from(BIP39.mnemonicToEntropy(mnemonic, wordlist), "hex"); + }; + Mnemonic.prototype.validate = function (mnemonic, wordlist) { + // Preprocess the words + var words = mnemonic.split(" "); + // Detect blank phrase + if (words.length === 0) + return "Blank mnemonic"; + // Check each word + for (var i = 0; i < words.length; i++) { + var word = words[i]; + if (wordlist.indexOf(word) == -1) { + // Finding closest match to word + var nearestWord = this.findNearestWord(word, wordlist); + return word + " is not in wordlist, did you mean " + nearestWord + "?"; + } + } + // Check the words are valid + var properPhrase = words.join(); + var isValid = BIP39.validateMnemonic(mnemonic, wordlist); + if (!isValid) + return "Invalid mnemonic"; + return "Valid mnemonic"; + }; + Mnemonic.prototype.toSeed = function (mnemonic, password) { + if (password === void 0) { password = ""; } + return BIP39.mnemonicToSeed(mnemonic, password); + }; + Mnemonic.prototype.wordLists = function () { + return BIP39.wordlists; + }; + Mnemonic.prototype.toKeypairs = function (mnemonic, numberOfKeypairs, regtest) { + if (numberOfKeypairs === void 0) { numberOfKeypairs = 1; } + if (regtest === void 0) { regtest = false; } + var rootSeedBuffer = this.toSeed(mnemonic, ""); + var hdNode = Bitcoin.HDNode.fromSeedBuffer(rootSeedBuffer); + var HDPath = "44'/145'/0'/0/"; + var accounts = []; + for (var i = 0; i < numberOfKeypairs; i++) { + var childHDNode = hdNode.derivePath("" + HDPath + i); + var prefix = 128; + if (regtest === true) + prefix = 239; + accounts.push({ + privateKeyWIF: wif.encode(prefix, childHDNode.keyPair.d.toBuffer(32), true), + address: this._address.toCashAddress(childHDNode.getAddress(), true, regtest) + }); + } + return accounts; + }; + Mnemonic.prototype.findNearestWord = function (word, wordlist) { + var minDistance = 99; + var closestWord = wordlist[0]; + for (var i = 0; i < wordlist.length; i++) { + var comparedTo = wordlist[i]; + if (comparedTo.indexOf(word) == 0) + return comparedTo; + var distance = Levenshtein.get(word, comparedTo); + if (distance < minDistance) { + closestWord = comparedTo; + minDistance = distance; + } + } + return closestWord; + }; + return Mnemonic; +}()); +exports.Mnemonic = Mnemonic; +// The following code is from: https://raw.githubusercontent.com/iancoleman/bip39/7ff86d4c983f1e8c80b87b31acfd69fcf98c1b82/src/js/levenshtein.js +/** + * Extend an Object with another Object's properties. + * + * The source objects are specified as additional arguments. + * + * @param dst Object the object to extend. + * + * @return Object the final object. + */ +var _extend = function (dst) { + var sources = Array.prototype.slice.call(arguments, 1); + for (var i = 0; i < sources.length; ++i) { + var src = sources[i]; + for (var p in src) + if (src.hasOwnProperty(p)) + dst[p] = src[p]; + } + return dst; +}; +/** + * Defer execution of given function. + * @param {Function} func + */ +var _defer = function (func) { + if (typeof setImmediate === "function") + return setImmediate(func); + return setTimeout(func, 0); +}; +/** + * Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance. + */ +var Levenshtein = { + /** + * Calculate levenshtein distance of the two strings. + * + * @param str1 String the first string. + * @param str2 String the second string. + * @return Integer the levenshtein distance (0 and above). + */ + get: function (str1, str2) { + // base cases + if (str1 === str2) + return 0; + if (str1.length === 0) + return str2.length; + if (str2.length === 0) + return str1.length; + // two rows + var prevRow = new Array(str2.length + 1), curCol, nextCol, i, j, tmp; + // initialise previous row + for (i = 0; i < prevRow.length; ++i) + prevRow[i] = i; + // calculate current row distance from previous row + for (i = 0; i < str1.length; ++i) { + nextCol = i + 1; + for (j = 0; j < str2.length; ++j) { + curCol = nextCol; + // substution + nextCol = prevRow[j] + (str1.charAt(i) === str2.charAt(j) ? 0 : 1); + // insertion + tmp = curCol + 1; + if (nextCol > tmp) + nextCol = tmp; + // deletion + tmp = prevRow[j + 1] + 1; + if (nextCol > tmp) + nextCol = tmp; + // copy current col value into previous (in preparation for next iteration) + prevRow[j] = curCol; + } + // copy last col value into previous (in preparation for next iteration) + prevRow[j] = nextCol; + } + return nextCol; + }, + /** + * Asynchronously calculate levenshtein distance of the two strings. + * + * @param str1 String the first string. + * @param str2 String the second string. + * @param cb Function callback function with signature: function(Error err, int distance) + * @param [options] Object additional options. + * @param [options.progress] Function progress callback with signature: function(percentComplete) + */ + getAsync: function (str1, str2, cb, options) { + options = _extend({}, { + progress: null + }, options); + // base cases + if (str1 === str2) + return cb(null, 0); + if (str1.length === 0) + return cb(null, str2.length); + if (str2.length === 0) + return cb(null, str1.length); + // two rows + var prevRow = new Array(str2.length + 1); + var curCol; + var nextCol; + var i; + var j; + var tmp; + var startTime; + var currentTime; + // initialise previous row + for (i = 0; i < prevRow.length; ++i) + prevRow[i] = i; + nextCol = 1; + i = 0; + j = -1; + var __calculate = function () { + // reset timer + startTime = new Date().valueOf(); + currentTime = startTime; + // keep going until one second has elapsed + while (currentTime - startTime < 1000) { + // reached end of current row? + if (str2.length <= ++j) { + // copy current into previous (in preparation for next iteration) + prevRow[j] = nextCol; + // if already done all chars + if (str1.length <= ++i) + return cb(null, nextCol); + // else if we have more left to do + nextCol = i + 1; + j = 0; + } + // calculation + curCol = nextCol; + // substution + nextCol = prevRow[j] + (str1.charAt(i) === str2.charAt(j) ? 0 : 1); + // insertion + tmp = curCol + 1; + if (nextCol > tmp) + nextCol = tmp; + // deletion + tmp = prevRow[j + 1] + 1; + if (nextCol > tmp) + nextCol = tmp; + // copy current into previous (in preparation for next iteration) + prevRow[j] = curCol; + // get current time + currentTime = new Date().valueOf(); + } + // send a progress update? + if (null !== options.progress) { + try { + options.progress.call(null, (i * 100.0) / str1.length); + } + catch (err) { + return cb("Progress callback: " + err.toString()); + } + } + // next iteration + _defer(__calculate); + }; + __calculate(); + } +}; +//# sourceMappingURL=Mnemonic.js.map \ No newline at end of file diff --git a/lib/Mnemonic.js.map b/lib/Mnemonic.js.map new file mode 100644 index 00000000..5a0aaeaa --- /dev/null +++ b/lib/Mnemonic.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Mnemonic.js","sourceRoot":"","sources":["Mnemonic.ts"],"names":[],"mappings":";;AAAA,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAC9B,IAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;AAC1C,IAAM,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAC5C,iCAA+B;AAC/B,IAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;AAkB1B;IAEE,kBAAY,OAAY;QACtB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;IACzB,CAAC;IAED,2BAAQ,GAAR,UAAS,IAAkB,EAAE,QAAkB;QAAtC,qBAAA,EAAA,UAAkB;QACzB,OAAO,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;IAC5D,CAAC;IAED,8BAAW,GAAX,UAAY,KAAa,EAAE,QAAkB;QAC3C,OAAO,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IACjD,CAAC;IAED,4BAAS,GAAT,UAAU,QAAgB,EAAE,QAAkB;QAC5C,OAAO,eAAM,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAA;IACxE,CAAC;IAED,2BAAQ,GAAR,UAAS,QAAgB,EAAE,QAAkB;QAC3C,uBAAuB;QACvB,IAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACjC,sBAAsB;QACtB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,gBAAgB,CAAA;QAE/C,kBAAkB;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,IAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YACrB,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;gBAChC,gCAAgC;gBAChC,IAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;gBACxD,OAAU,IAAI,0CAAqC,WAAW,MAAG,CAAA;aAClE;SACF;QACD,4BAA4B;QAC5B,IAAM,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;QACjC,IAAM,OAAO,GAAG,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAC1D,IAAI,CAAC,OAAO;YAAE,OAAO,kBAAkB,CAAA;QAEvC,OAAO,gBAAgB,CAAA;IACzB,CAAC;IAED,yBAAM,GAAN,UAAO,QAAgB,EAAE,QAAqB;QAArB,yBAAA,EAAA,aAAqB;QAC5C,OAAO,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IACjD,CAAC;IAED,4BAAS,GAAT;QACE,OAAO,KAAK,CAAC,SAAS,CAAA;IACxB,CAAC;IAED,6BAAU,GAAV,UACE,QAAgB,EAChB,gBAA4B,EAC5B,OAAwB;QADxB,iCAAA,EAAA,oBAA4B;QAC5B,wBAAA,EAAA,eAAwB;QAExB,IAAM,cAAc,GAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QACrD,IAAM,MAAM,GAAQ,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;QACjE,IAAM,MAAM,GAAW,gBAAgB,CAAA;QAEvC,IAAM,QAAQ,GAAU,EAAE,CAAA;QAE1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,EAAE,CAAC,EAAE,EAAE;YACzC,IAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,KAAG,MAAM,GAAG,CAAG,CAAC,CAAA;YAEtD,IAAI,MAAM,GAAG,GAAG,CAAA;YAChB,IAAI,OAAO,KAAK,IAAI;gBAAE,MAAM,GAAG,GAAG,CAAA;YAElC,QAAQ,CAAC,IAAI,CAAC;gBACZ,aAAa,EAAE,GAAG,CAAC,MAAM,CACvB,MAAM,EACN,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAClC,IAAI,CACL;gBACD,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAClC,WAAW,CAAC,UAAU,EAAE,EACxB,IAAI,EACJ,OAAO,CACR;aACF,CAAC,CAAA;SACH;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,kCAAe,GAAf,UAAgB,IAAY,EAAE,QAAkB;QAC9C,IAAI,WAAW,GAAW,EAAE,CAAA;QAC5B,IAAI,WAAW,GAAW,QAAQ,CAAC,CAAC,CAAC,CAAA;QACrC,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAChD,IAAM,UAAU,GAAQ,QAAQ,CAAC,CAAC,CAAC,CAAA;YACnC,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,UAAU,CAAA;YAEpD,IAAM,QAAQ,GAAQ,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;YACvD,IAAI,QAAQ,GAAG,WAAW,EAAE;gBAC1B,WAAW,GAAG,UAAU,CAAA;gBACxB,WAAW,GAAG,QAAQ,CAAA;aACvB;SACF;QACD,OAAO,WAAW,CAAA;IACpB,CAAC;IACH,eAAC;AAAD,CAAC,AAjGD,IAiGC;AAjGY,4BAAQ;AAmGrB,gJAAgJ;AAEhJ;;;;;;;;GAQG;AAEH,IAAM,OAAO,GAAQ,UAAS,GAAQ;IACpC,IAAM,OAAO,GAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;IAC7D,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;QAC/C,IAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QACtB,KAAK,IAAM,CAAC,IAAI,GAAG;YAAE,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;gBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;KAChE;IACD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED;;;GAGG;AACH,IAAM,MAAM,GAAQ,UAAS,IAAS;IACpC,IAAI,OAAO,YAAY,KAAK,UAAU;QAAE,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;IAEjE,OAAO,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AAC5B,CAAC,CAAA;AAED;;GAEG;AACH,IAAI,WAAW,GAAQ;IACrB;;;;;;OAMG;IACH,GAAG,EAAE,UAAS,IAAS,EAAE,IAAS;QAChC,aAAa;QACb,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,CAAC,CAAA;QAC3B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,MAAM,CAAA;QACzC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,MAAM,CAAA;QAEzC,WAAW;QACX,IAAI,OAAO,GAAU,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAC7C,MAAM,EACN,OAAO,EACP,CAAC,EACD,CAAC,EACD,GAAG,CAAA;QAEL,0BAA0B;QAC1B,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAEnD,mDAAmD;QACnD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YAChC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAA;YAEf,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;gBAChC,MAAM,GAAG,OAAO,CAAA;gBAEhB,aAAa;gBACb,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBAClE,YAAY;gBACZ,GAAG,GAAG,MAAM,GAAG,CAAC,CAAA;gBAChB,IAAI,OAAO,GAAG,GAAG;oBAAE,OAAO,GAAG,GAAG,CAAA;gBAEhC,WAAW;gBACX,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;gBACxB,IAAI,OAAO,GAAG,GAAG;oBAAE,OAAO,GAAG,GAAG,CAAA;gBAEhC,2EAA2E;gBAC3E,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAA;aACpB;YAED,wEAAwE;YACxE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAA;SACrB;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAED;;;;;;;;OAQG;IACH,QAAQ,EAAE,UAAS,IAAS,EAAE,IAAS,EAAE,EAAO,EAAE,OAAY;QAC5D,OAAO,GAAG,OAAO,CACf,EAAE,EACF;YACE,QAAQ,EAAE,IAAI;SACf,EACD,OAAO,CACR,CAAA;QAED,aAAa;QACb,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;QACrC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACnD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEnD,WAAW;QACX,IAAM,OAAO,GAAU,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACjD,IAAI,MAAW,CAAA;QACf,IAAI,OAAY,CAAA;QAChB,IAAI,CAAM,CAAA;QACV,IAAI,CAAM,CAAA;QACV,IAAI,GAAQ,CAAA;QACZ,IAAI,SAAc,CAAA;QAClB,IAAI,WAAgB,CAAA;QAEpB,0BAA0B;QAC1B,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAEnD,OAAO,GAAG,CAAC,CAAA;QACX,CAAC,GAAG,CAAC,CAAA;QACL,CAAC,GAAG,CAAC,CAAC,CAAA;QAEN,IAAI,WAAW,GAAG;YAChB,cAAc;YACd,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;YAChC,WAAW,GAAG,SAAS,CAAA;YAEvB,0CAA0C;YAC1C,OAAO,WAAW,GAAG,SAAS,GAAG,IAAI,EAAE;gBACrC,8BAA8B;gBAC9B,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE;oBACtB,iEAAiE;oBACjE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAA;oBAEpB,4BAA4B;oBAC5B,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;wBAAE,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;oBAEhD,kCAAkC;oBAElC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAA;oBACf,CAAC,GAAG,CAAC,CAAA;iBACN;gBAED,cAAc;gBACd,MAAM,GAAG,OAAO,CAAA;gBAEhB,aAAa;gBACb,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBAClE,YAAY;gBACZ,GAAG,GAAG,MAAM,GAAG,CAAC,CAAA;gBAChB,IAAI,OAAO,GAAG,GAAG;oBAAE,OAAO,GAAG,GAAG,CAAA;gBAEhC,WAAW;gBACX,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;gBACxB,IAAI,OAAO,GAAG,GAAG;oBAAE,OAAO,GAAG,GAAG,CAAA;gBAEhC,iEAAiE;gBACjE,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAA;gBAEnB,mBAAmB;gBACnB,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;aACnC;YAED,0BAA0B;YAC1B,IAAI,IAAI,KAAK,OAAO,CAAC,QAAQ,EAAE;gBAC7B,IAAI;oBACF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;iBACvD;gBAAC,OAAO,GAAG,EAAE;oBACZ,OAAO,EAAE,CAAC,wBAAsB,GAAG,CAAC,QAAQ,EAAI,CAAC,CAAA;iBAClD;aACF;YAED,iBAAiB;YACjB,MAAM,CAAC,WAAW,CAAC,CAAA;QACrB,CAAC,CAAA;QAED,WAAW,EAAE,CAAA;IACf,CAAC;CACF,CAAA"} \ No newline at end of file diff --git a/lib/Price.js b/lib/Price.js new file mode 100644 index 00000000..a6d44fad --- /dev/null +++ b/lib/Price.js @@ -0,0 +1,69 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var axios_1 = require("axios"); +var Price = /** @class */ (function () { + function Price() { + } + Price.prototype.current = function (currency) { + if (currency === void 0) { currency = "usd"; } + return __awaiter(this, void 0, void 0, function () { + var response, error_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + return [4 /*yield*/, axios_1.default.get("https://index-api.bitcoin.com/api/v0/cash/price/" + currency.toLowerCase())]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data.price]; + case 2: + error_1 = _a.sent(); + if (error_1.response && error_1.response.data) + throw error_1.response.data; + else + throw error_1; + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); + }; + return Price; +}()); +exports.Price = Price; +//# sourceMappingURL=Price.js.map \ No newline at end of file diff --git a/lib/Price.js.map b/lib/Price.js.map new file mode 100644 index 00000000..281c232a --- /dev/null +++ b/lib/Price.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Price.js","sourceRoot":"","sources":["Price.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAyB;AAMzB;IAAA;IAYA,CAAC;IAXO,uBAAO,GAAb,UAAc,QAAwB;QAAxB,yBAAA,EAAA,gBAAwB;;;;;;;wBAEZ,qBAAM,eAAK,CAAC,GAAG,CACnC,qDAAmD,QAAQ,CAAC,WAAW,EAAI,CAC5E,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAA;;;wBAE1B,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IACH,YAAC;AAAD,CAAC,AAZD,IAYC;AAZY,sBAAK"} \ No newline at end of file diff --git a/lib/RawTransactions.js b/lib/RawTransactions.js new file mode 100644 index 00000000..ca070b1b --- /dev/null +++ b/lib/RawTransactions.js @@ -0,0 +1,208 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var axios_1 = require("axios"); +var RawTransactions = /** @class */ (function () { + function RawTransactions(restURL) { + this.restURL = restURL; + } + RawTransactions.prototype.decodeRawTransaction = function (hex) { + return __awaiter(this, void 0, void 0, function () { + var response, options, response, error_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof hex === "string")) return [3 /*break*/, 2]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "rawtransactions/decodeRawTransaction/" + hex)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data + // Array of hexes + ]; + case 2: + if (!Array.isArray(hex)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "rawtransactions/decodeRawTransaction", + data: { + hexes: hex + } + }; + return [4 /*yield*/, axios_1.default(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input must be a string or array of strings."); + case 5: + error_1 = _a.sent(); + if (error_1.response && error_1.response.data) + throw error_1.response.data; + else + throw error_1; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + RawTransactions.prototype.decodeScript = function (script) { + return __awaiter(this, void 0, void 0, function () { + var response, options, response, error_2; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof script === "string")) return [3 /*break*/, 2]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "rawtransactions/decodeScript/" + script)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + if (!Array.isArray(script)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "rawtransactions/decodeScript", + data: { + hexes: script + } + }; + return [4 /*yield*/, axios_1.default(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input must be a string or array of strings."); + case 5: + error_2 = _a.sent(); + if (error_2.response && error_2.response.data) + throw error_2.response.data; + else + throw error_2; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + RawTransactions.prototype.getRawTransaction = function (txid, verbose) { + if (verbose === void 0) { verbose = false; } + return __awaiter(this, void 0, void 0, function () { + var response, options, response, error_3; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof txid === "string")) return [3 /*break*/, 2]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "rawtransactions/getRawTransaction/" + txid + "?verbose=" + verbose)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 2: + if (!Array.isArray(txid)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "rawtransactions/getRawTransaction", + data: { + txids: txid, + verbose: verbose + } + }; + return [4 /*yield*/, axios_1.default(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input must be a string or array of strings."); + case 5: + error_3 = _a.sent(); + if (error_3.response && error_3.response.data) + throw error_3.response.data; + else + throw error_3; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + RawTransactions.prototype.sendRawTransaction = function (hex, allowhighfees) { + if (allowhighfees === void 0) { allowhighfees = false; } + return __awaiter(this, void 0, void 0, function () { + var response, options, response, error_4; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof hex === "string")) return [3 /*break*/, 2]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "rawtransactions/sendRawTransaction/" + hex)]; + case 1: + response = _a.sent(); + if (response.data === "66: insufficient priority") { + console.warn("WARN: Insufficient Priority! This is likely due to a fee that is too low, or insufficient funds.\n Please ensure that there is BCH in the given wallet. If you are running on the testnet, get some\n BCH from the testnet faucet at https://developer.bitcoin.com/faucets/bch"); + } + return [2 /*return*/, response.data + // Array input + ]; + case 2: + if (!Array.isArray(hex)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "rawtransactions/sendRawTransaction", + data: { + hexes: hex + } + }; + return [4 /*yield*/, axios_1.default(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input hex must be a string or array of strings."); + case 5: + error_4 = _a.sent(); + if (error_4.response && error_4.response.data) + throw error_4.response.data; + else + throw error_4; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + return RawTransactions; +}()); +exports.RawTransactions = RawTransactions; +//# sourceMappingURL=RawTransactions.js.map \ No newline at end of file diff --git a/lib/RawTransactions.js.map b/lib/RawTransactions.js.map new file mode 100644 index 00000000..925c5655 --- /dev/null +++ b/lib/RawTransactions.js.map @@ -0,0 +1 @@ +{"version":3,"file":"RawTransactions.js","sourceRoot":"","sources":["RawTransactions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAyB;AA0CzB;IAEE,yBAAY,OAAe;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEK,8CAAoB,GAA1B,UAA2B,GAAsB;;;;;;;6BAGzC,CAAA,OAAO,GAAG,KAAK,QAAQ,CAAA,EAAvB,wBAAuB;wBACH,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,6CAAwC,GAAK,CAC7D,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBAED,sBAAO,QAAQ,CAAC,IAAI;4BAEpB,iBAAiB;0BAFG;;6BAGX,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAlB,wBAAkB;wBACrB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,yCAAsC;4BAC1D,IAAI,EAAE;gCACJ,KAAK,EAAE,GAAG;6BACX;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;;;wBAE9D,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,sCAAY,GAAlB,UAAmB,MAAyB;;;;;;;6BAIpC,CAAA,OAAO,MAAM,KAAK,QAAQ,CAAA,EAA1B,wBAA0B;wBACN,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,qCAAgC,MAAQ,CACxD,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBAED,sBAAO,QAAQ,CAAC,IAAI,EAAA;;6BACX,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAArB,wBAAqB;wBACxB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,iCAA8B;4BAClD,IAAI,EAAE;gCACJ,KAAK,EAAE,MAAM;6BACd;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;;;wBAE9D,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,2CAAiB,GAAvB,UACE,IAAuB,EACvB,OAAwB;QAAxB,wBAAA,EAAA,eAAwB;;;;;;;6BAGlB,CAAA,OAAO,IAAI,KAAK,QAAQ,CAAA,EAAxB,wBAAwB;wBACJ,qBAAM,eAAK,CAAC,GAAG,CAEjC,IAAI,CAAC,OAAO,0CACuB,IAAI,iBAAY,OAAS,CAC/D,EAAA;;wBAJK,QAAQ,GAAQ,SAIrB;wBAED,sBAAO,QAAQ,CAAC,IAAI,EAAA;;6BACX,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAnB,wBAAmB;wBACtB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,sCAAmC;4BACvD,IAAI,EAAE;gCACJ,KAAK,EAAE,IAAI;gCACX,OAAO,EAAE,OAAO;6BACjB;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;;;wBAE9D,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,4CAAkB,GAAxB,UACE,GAAsB,EACtB,aAA8B;QAA9B,8BAAA,EAAA,qBAA8B;;;;;;;6BAIxB,CAAA,OAAO,GAAG,KAAK,QAAQ,CAAA,EAAvB,wBAAuB;wBACH,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,2CAAsC,GAAK,CAC3D,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBAED,IAAI,QAAQ,CAAC,IAAI,KAAK,2BAA2B,EAAE;4BACjD,OAAO,CAAC,IAAI,CACV,sSAEyE,CAC1E,CAAA;yBACF;wBAED,sBAAO,QAAQ,CAAC,IAAI;4BAEpB,cAAc;0BAFM;;6BAGX,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAlB,wBAAkB;wBACrB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,uCAAoC;4BACxD,IAAI,EAAE;gCACJ,KAAK,EAAE,GAAG;6BACX;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;;;wBAElE,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IACH,sBAAC;AAAD,CAAC,AA9ID,IA8IC;AA9IY,0CAAe"} \ No newline at end of file diff --git a/lib/Schnorr.js b/lib/Schnorr.js new file mode 100644 index 00000000..a5b63e63 --- /dev/null +++ b/lib/Schnorr.js @@ -0,0 +1,58 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var schnorr = require("bip-schnorr"); +var Schnorr = /** @class */ (function () { + function Schnorr() { + } + Schnorr.prototype.sign = function (privateKey, message) { + return schnorr.sign(privateKey, message); + }; + Schnorr.prototype.verify = function (publicKey, message, signatureToVerify) { + return schnorr.verify(publicKey, message, signatureToVerify); + }; + Schnorr.prototype.batchVerify = function (publicKeys, messages, signaturesToVerify) { + return schnorr.batchVerify(publicKeys, messages, signaturesToVerify); + }; + Schnorr.prototype.nonInteractive = function (privateKeys, message) { + return schnorr.muSig.nonInteractive(privateKeys, message); + }; + Schnorr.prototype.computeEll = function (publicKeys) { + return schnorr.muSig.computeEll(publicKeys); + }; + Schnorr.prototype.publicKeyCombine = function (publicKeys, publicKeyHash) { + return schnorr.muSig.pubKeyCombine(publicKeys, publicKeyHash); + }; + Schnorr.prototype.sessionInitialize = function (sessionId, privateKey, message, pubKeyCombined, ell, idx) { + return schnorr.muSig.sessionInitialize(sessionId, privateKey, message, pubKeyCombined, ell, idx); + }; + Schnorr.prototype.sessionNonceCombine = function (session, nonces) { + return schnorr.muSig.sessionNonceCombine(session, nonces); + }; + Schnorr.prototype.partialSign = function (session, message, nonceCombined, pubKeyCombined) { + return schnorr.muSig.partialSign(session, message, nonceCombined, pubKeyCombined); + }; + Schnorr.prototype.partialSignatureVerify = function (session, partialSignature, nonceCombined, idx, pubKey, nonce) { + return schnorr.muSig.partialSigVerify(session, partialSignature, nonceCombined, idx, pubKey, nonce); + }; + Schnorr.prototype.partialSignaturesCombine = function (nonceCombined, partialSignatures) { + return schnorr.muSig.partialSigCombine(nonceCombined, partialSignatures); + }; + Schnorr.prototype.bufferToInt = function (buffer) { + return schnorr.convert.bufferToInt(buffer); + }; + Schnorr.prototype.intToBuffer = function (bigInteger) { + return schnorr.convert.intToBuffer(bigInteger); + }; + Schnorr.prototype.hash = function (buffer) { + return schnorr.convert.hash(buffer); + }; + Schnorr.prototype.pointToBuffer = function (point) { + return schnorr.convert.pointToBuffer(point); + }; + Schnorr.prototype.pubKeyToPoint = function (publicKey) { + return schnorr.convert.pubKeyToPoint(publicKey); + }; + return Schnorr; +}()); +exports.Schnorr = Schnorr; +//# sourceMappingURL=Schnorr.js.map \ No newline at end of file diff --git a/lib/Schnorr.js.map b/lib/Schnorr.js.map new file mode 100644 index 00000000..4fd97639 --- /dev/null +++ b/lib/Schnorr.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Schnorr.js","sourceRoot":"","sources":["Schnorr.ts"],"names":[],"mappings":";;AAAA,IAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;AAgDtC;IAAA;IA6GA,CAAC;IA5GC,sBAAI,GAAJ,UAAK,UAAe,EAAE,OAAe;QACnC,OAAO,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAC1C,CAAC;IAED,wBAAM,GAAN,UAAO,SAAiB,EAAE,OAAe,EAAE,iBAAyB;QAClE,OAAO,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAA;IAC9D,CAAC;IAED,6BAAW,GAAX,UACE,UAAoB,EACpB,QAAkB,EAClB,kBAA4B;QAE5B,OAAO,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAA;IACtE,CAAC;IAED,gCAAc,GAAd,UAAe,WAAgB,EAAE,OAAe;QAC9C,OAAO,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IAC3D,CAAC;IAED,4BAAU,GAAV,UAAW,UAAe;QACxB,OAAO,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;IAC7C,CAAC;IAED,kCAAgB,GAAhB,UAAiB,UAAoB,EAAE,aAAqB;QAC1D,OAAO,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;IAC/D,CAAC;IAED,mCAAiB,GAAjB,UACE,SAAiB,EACjB,UAAe,EACf,OAAe,EACf,cAAsB,EACtB,GAAW,EACX,GAAW;QAEX,OAAO,OAAO,CAAC,KAAK,CAAC,iBAAiB,CACpC,SAAS,EACT,UAAU,EACV,OAAO,EACP,cAAc,EACd,GAAG,EACH,GAAG,CACJ,CAAA;IACH,CAAC;IAED,qCAAmB,GAAnB,UAAoB,OAAY,EAAE,MAAgB;QAChD,OAAO,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC3D,CAAC;IAED,6BAAW,GAAX,UACE,OAAY,EACZ,OAAe,EACf,aAAqB,EACrB,cAAsB;QAEtB,OAAO,OAAO,CAAC,KAAK,CAAC,WAAW,CAC9B,OAAO,EACP,OAAO,EACP,aAAa,EACb,cAAc,CACf,CAAA;IACH,CAAC;IAED,wCAAsB,GAAtB,UACE,OAAY,EACZ,gBAAqB,EACrB,aAAqB,EACrB,GAAW,EACX,MAAc,EACd,KAAa;QAEb,OAAO,OAAO,CAAC,KAAK,CAAC,gBAAgB,CACnC,OAAO,EACP,gBAAgB,EAChB,aAAa,EACb,GAAG,EACH,MAAM,EACN,KAAK,CACN,CAAA;IACH,CAAC;IAED,0CAAwB,GAAxB,UACE,aAAqB,EACrB,iBAAsB;QAEtB,OAAO,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAA;IAC1E,CAAC;IAED,6BAAW,GAAX,UAAY,MAAW;QACrB,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;IAC5C,CAAC;IAED,6BAAW,GAAX,UAAY,UAAe;QACzB,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;IAChD,CAAC;IAED,sBAAI,GAAJ,UAAK,MAAW;QACd,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACrC,CAAC;IAED,+BAAa,GAAb,UAAc,KAAU;QACtB,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IAC7C,CAAC;IAED,+BAAa,GAAb,UAAc,SAAc;QAC1B,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;IACjD,CAAC;IACH,cAAC;AAAD,CAAC,AA7GD,IA6GC;AA7GY,0BAAO"} \ No newline at end of file diff --git a/lib/Script.js b/lib/Script.js new file mode 100644 index 00000000..8edb5c17 --- /dev/null +++ b/lib/Script.js @@ -0,0 +1,62 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Bitcoin = require("bitcoincashjs-lib"); +var opcodes = require("bitcoincash-ops"); +var Script = /** @class */ (function () { + function Script() { + this.opcodes = opcodes; + this.nullData = Bitcoin.script.nullData; + this.multisig = { + input: { + encode: function (signatures) { + var sigs = []; + signatures.forEach(function (sig) { + sigs.push(sig); + }); + return Bitcoin.script.multisig.input.encode(sigs); + }, + decode: Bitcoin.script.multisig.input.decode, + check: Bitcoin.script.multisig.input.check + }, + output: { + encode: function (m, pubKeys) { + var pks = []; + pubKeys.forEach(function (pubKey) { + pks.push(pubKey); + }); + return Bitcoin.script.multisig.output.encode(m, pks); + }, + decode: Bitcoin.script.multisig.output.decode, + check: Bitcoin.script.multisig.output.check + } + }; + this.pubKey = Bitcoin.script.pubKey; + this.pubKeyHash = Bitcoin.script.pubKeyHash; + this.scriptHash = Bitcoin.script.scriptHash; + } + Script.prototype.classifyInput = function (script) { + return Bitcoin.script.classifyInput(script); + }; + Script.prototype.classifyOutput = function (script) { + return Bitcoin.script.classifyOutput(script); + }; + Script.prototype.decode = function (scriptBuffer) { + return Bitcoin.script.decompile(scriptBuffer); + }; + Script.prototype.encode = function (scriptChunks) { + var arr = []; + scriptChunks.forEach(function (chunk) { + arr.push(chunk); + }); + return Bitcoin.script.compile(arr); + }; + Script.prototype.toASM = function (buffer) { + return Bitcoin.script.toASM(buffer); + }; + Script.prototype.fromASM = function (asm) { + return Bitcoin.script.fromASM(asm); + }; + return Script; +}()); +exports.Script = Script; +//# sourceMappingURL=Script.js.map \ No newline at end of file diff --git a/lib/Script.js.map b/lib/Script.js.map new file mode 100644 index 00000000..113ae539 --- /dev/null +++ b/lib/Script.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Script.js","sourceRoot":"","sources":["Script.ts"],"names":[],"mappings":";;AAAA,IAAM,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAC5C,IAAM,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;AAwL1C;IAQE;QACE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAA;QACvC,IAAI,CAAC,QAAQ,GAAG;YACd,KAAK,EAAE;gBACL,MAAM,EAAE,UAAC,UAAe;oBACtB,IAAM,IAAI,GAAU,EAAE,CAAA;oBACtB,UAAU,CAAC,OAAO,CAAC,UAAC,GAAQ;wBAC1B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;oBAChB,CAAC,CAAC,CAAA;oBACF,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBACnD,CAAC;gBACD,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM;gBAC5C,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK;aAC3C;YACD,MAAM,EAAE;gBACN,MAAM,EAAE,UAAC,CAAM,EAAE,OAAY;oBAC3B,IAAM,GAAG,GAAU,EAAE,CAAA;oBACrB,OAAO,CAAC,OAAO,CAAC,UAAC,MAAW;wBAC1B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;oBAClB,CAAC,CAAC,CAAA;oBACF,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;gBACtD,CAAC;gBACD,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM;gBAC7C,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK;aAC5C;SACF,CAAA;QACD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAA;QACnC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAA;QAC3C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAA;IAC7C,CAAC;IAED,8BAAa,GAAb,UAAc,MAAW;QACvB,OAAO,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;IAC7C,CAAC;IAED,+BAAc,GAAd,UAAe,MAAW;QACxB,OAAO,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;IAC9C,CAAC;IAED,uBAAM,GAAN,UAAO,YAAiB;QACtB,OAAO,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;IAC/C,CAAC;IAED,uBAAM,GAAN,UAAO,YAAiB;QACtB,IAAM,GAAG,GAAU,EAAE,CAAA;QACrB,YAAY,CAAC,OAAO,CAAC,UAAC,KAAU;YAC9B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACjB,CAAC,CAAC,CAAA;QACF,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACpC,CAAC;IAED,sBAAK,GAAL,UAAM,MAAW;QACf,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IACrC,CAAC;IAED,wBAAO,GAAP,UAAQ,GAAQ;QACd,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACpC,CAAC;IACH,aAAC;AAAD,CAAC,AAnED,IAmEC;AAnEY,wBAAM"} \ No newline at end of file diff --git a/lib/Socket.js b/lib/Socket.js new file mode 100644 index 00000000..0dd3b512 --- /dev/null +++ b/lib/Socket.js @@ -0,0 +1,33 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var io = require("socket.io-client"); +var Socket = /** @class */ (function () { + function Socket(config) { + if (config === void 0) { config = {}; } + if (typeof config === "string") { + // TODO remove this check in v2.0 + this.socket = io("" + config); + } + else { + if (config.restURL) { + this.socket = io("" + config.restURL); + } + else { + var restURL = "https://rest.bitcoin.com"; + this.socket = io("" + restURL); + } + if (config.callback) + config.callback(); + } + } + Socket.prototype.listen = function (endpoint, cb) { + this.socket.emit(endpoint); + if (endpoint === "blocks") + this.socket.on("blocks", function (msg) { return cb(msg); }); + else if (endpoint === "transactions") + this.socket.on("transactions", function (msg) { return cb(msg); }); + }; + return Socket; +}()); +exports.Socket = Socket; +//# sourceMappingURL=Socket.js.map \ No newline at end of file diff --git a/lib/Socket.js.map b/lib/Socket.js.map new file mode 100644 index 00000000..9070fa0f --- /dev/null +++ b/lib/Socket.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Socket.js","sourceRoot":"","sources":["Socket.ts"],"names":[],"mappings":";;AAAA,IAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;AAOtC;IAEE,gBAAY,MAAgB;QAAhB,uBAAA,EAAA,WAAgB;QAC1B,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC9B,iCAAiC;YACjC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,KAAG,MAAQ,CAAC,CAAA;SAC9B;aAAM;YACL,IAAI,MAAM,CAAC,OAAO,EAAE;gBAClB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,KAAG,MAAM,CAAC,OAAS,CAAC,CAAA;aACtC;iBAAM;gBACL,IAAM,OAAO,GAAG,0BAA0B,CAAA;gBAC1C,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,KAAG,OAAS,CAAC,CAAA;aAC/B;YAED,IAAI,MAAM,CAAC,QAAQ;gBAAE,MAAM,CAAC,QAAQ,EAAE,CAAA;SACvC;IACH,CAAC;IAED,uBAAM,GAAN,UAAO,QAAgB,EAAE,EAAO;QAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAE1B,IAAI,QAAQ,KAAK,QAAQ;YAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAC,GAAQ,IAAK,OAAA,EAAE,CAAC,GAAG,CAAC,EAAP,CAAO,CAAC,CAAA;aACrE,IAAI,QAAQ,KAAK,cAAc;YAClC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,UAAC,GAAQ,IAAK,OAAA,EAAE,CAAC,GAAG,CAAC,EAAP,CAAO,CAAC,CAAA;IACzD,CAAC;IACH,aAAC;AAAD,CAAC,AAzBD,IAyBC;AAzBY,wBAAM"} \ No newline at end of file diff --git a/lib/Transaction.js b/lib/Transaction.js new file mode 100644 index 00000000..a4f72694 --- /dev/null +++ b/lib/Transaction.js @@ -0,0 +1,87 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var Bitcoin = require("bitcoincashjs-lib"); +var axios_1 = require("axios"); +var Transaction = /** @class */ (function () { + function Transaction(restURL) { + this.restURL = restURL; + } + Transaction.prototype.details = function (txid) { + return __awaiter(this, void 0, void 0, function () { + var response, options, response, error_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof txid === "string")) return [3 /*break*/, 2]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "transaction/details/" + txid)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data + // Array of addresses + ]; + case 2: + if (!Array.isArray(txid)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "transaction/details", + data: { + txids: txid + } + }; + return [4 /*yield*/, axios_1.default(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input txid must be a string or array of strings."); + case 5: + error_1 = _a.sent(); + if (error_1.response && error_1.response.data) + throw error_1.response.data; + else + throw error_1; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + return Transaction; +}()); +exports.Transaction = Transaction; +//# sourceMappingURL=Transaction.js.map \ No newline at end of file diff --git a/lib/Transaction.js.map b/lib/Transaction.js.map new file mode 100644 index 00000000..0a198a84 --- /dev/null +++ b/lib/Transaction.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Transaction.js","sourceRoot":"","sources":["Transaction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAM,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAC5C,+BAAyB;AAuBzB;IAEE,qBAAY,OAAe;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEK,6BAAO,GAAb,UAAc,IAAuB;;;;;;;6BAG7B,CAAA,OAAO,IAAI,KAAK,QAAQ,CAAA,EAAxB,wBAAwB;wBACJ,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,4BAAuB,IAAM,CAC7C,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI;4BAEpB,qBAAqB;0BAFD;;6BAGX,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAnB,wBAAmB;wBACtB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,wBAAqB;4BACzC,IAAI,EAAE;gCACJ,KAAK,EAAE,IAAI;6BACZ;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;;;wBAEnE,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IACH,kBAAC;AAAD,CAAC,AAnCD,IAmCC;AAnCY,kCAAW"} \ No newline at end of file diff --git a/lib/TransactionBuilder.js b/lib/TransactionBuilder.js new file mode 100644 index 00000000..e8ee16e6 --- /dev/null +++ b/lib/TransactionBuilder.js @@ -0,0 +1,80 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Bitcoin = require("bitcoincashjs-lib"); +var coininfo = require("coininfo"); +var bip66 = require("bip66"); +var bip68 = require("bc-bip68"); +var TransactionBuilder = /** @class */ (function () { + function TransactionBuilder(network) { + if (network === void 0) { network = "mainnet"; } + var bitcoincash; + if (network === "bitcoincash" || network === "mainnet") + bitcoincash = coininfo.bitcoincash.main; + else + bitcoincash = coininfo.bitcoincash.test; + var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); + this.transaction = new Bitcoin.TransactionBuilder(bitcoincashBitcoinJSLib); + this.DEFAULT_SEQUENCE = 0xffffffff; + this.hashTypes = { + SIGHASH_ALL: 0x01, + SIGHASH_NONE: 0x02, + SIGHASH_SINGLE: 0x03, + SIGHASH_ANYONECANPAY: 0x80, + SIGHASH_BITCOINCASH_BIP143: 0x40, + ADVANCED_TRANSACTION_MARKER: 0x00, + ADVANCED_TRANSACTION_FLAG: 0x01 + }; + this.signatureAlgorithms = { + ECDSA: Bitcoin.ECSignature.ECDSA, + SCHNORR: Bitcoin.ECSignature.SCHNORR + }; + this.bip66 = bip66; + this.bip68 = bip68; + this.p2shInput = false; + this.tx; + } + TransactionBuilder.setAddress = function (address) { + TransactionBuilder._address = address; + }; + TransactionBuilder.prototype.addInput = function (txHash, vout, sequence, prevOutScript) { + if (sequence === void 0) { sequence = this.DEFAULT_SEQUENCE; } + this.transaction.addInput(txHash, vout, sequence, prevOutScript); + }; + TransactionBuilder.prototype.addInputScript = function (vout, script) { + this.tx = this.transaction.buildIncomplete(); + this.tx.setInputScript(vout, script); + this.p2shInput = true; + }; + TransactionBuilder.prototype.addInputScripts = function (scripts) { + var _this = this; + this.tx = this.transaction.buildIncomplete(); + scripts.forEach(function (script) { + _this.tx.setInputScript(script.vout, script.script); + }); + this.p2shInput = true; + }; + TransactionBuilder.prototype.addOutput = function (scriptPubKey, amount) { + try { + this.transaction.addOutput(TransactionBuilder._address.toLegacyAddress(scriptPubKey), amount); + } + catch (error) { + this.transaction.addOutput(scriptPubKey, amount); + } + }; + TransactionBuilder.prototype.setLockTime = function (locktime) { + this.transaction.setLockTime(locktime); + }; + TransactionBuilder.prototype.sign = function (vin, keyPair, redeemScript, hashType, value, signatureAlgorithm) { + if (hashType === void 0) { hashType = this.hashTypes.SIGHASH_ALL; } + var witnessScript; + this.transaction.sign(vin, keyPair, redeemScript, hashType, value, witnessScript, signatureAlgorithm); + }; + TransactionBuilder.prototype.build = function () { + if (this.p2shInput === true) + return this.tx; + return this.transaction.build(); + }; + return TransactionBuilder; +}()); +exports.TransactionBuilder = TransactionBuilder; +//# sourceMappingURL=TransactionBuilder.js.map \ No newline at end of file diff --git a/lib/TransactionBuilder.js.map b/lib/TransactionBuilder.js.map new file mode 100644 index 00000000..0df05a69 --- /dev/null +++ b/lib/TransactionBuilder.js.map @@ -0,0 +1 @@ +{"version":3,"file":"TransactionBuilder.js","sourceRoot":"","sources":["TransactionBuilder.ts"],"names":[],"mappings":";;AAAA,IAAM,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAC5C,IAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AACpC,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAC9B,IAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAwDjC;IAeE,4BAAY,OAA2B;QAA3B,wBAAA,EAAA,mBAA2B;QACrC,IAAI,WAAgB,CAAA;QACpB,IAAI,OAAO,KAAK,aAAa,IAAI,OAAO,KAAK,SAAS;YACpD,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;;YACpC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;QAE5C,IAAM,uBAAuB,GAAG,WAAW,CAAC,WAAW,EAAE,CAAA;QACzD,IAAI,CAAC,WAAW,GAAG,IAAI,OAAO,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,CAAA;QAC1E,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAA;QAClC,IAAI,CAAC,SAAS,GAAG;YACf,WAAW,EAAE,IAAI;YACjB,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,IAAI;YACpB,oBAAoB,EAAE,IAAI;YAC1B,0BAA0B,EAAE,IAAI;YAChC,2BAA2B,EAAE,IAAI;YACjC,yBAAyB,EAAE,IAAI;SAChC,CAAA;QACD,IAAI,CAAC,mBAAmB,GAAG;YACzB,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK;YAChC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,OAAO;SACrC,CAAA;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;QACtB,IAAI,CAAC,EAAE,CAAA;IACT,CAAC;IA9BM,6BAAU,GAAjB,UAAkB,OAAe;QAC/B,kBAAkB,CAAC,QAAQ,GAAG,OAAO,CAAA;IACvC,CAAC;IA8BD,qCAAQ,GAAR,UACE,MAAc,EACd,IAAY,EACZ,QAAwC,EACxC,aAAqB;QADrB,yBAAA,EAAA,WAAmB,IAAI,CAAC,gBAAgB;QAGxC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAA;IAClE,CAAC;IAED,2CAAc,GAAd,UAAe,IAAY,EAAE,MAAW;QACtC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAA;QAC5C,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;IACvB,CAAC;IAED,4CAAe,GAAf,UAAgB,OAAY;QAA5B,iBAMC;QALC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAA;QAC5C,OAAO,CAAC,OAAO,CAAC,UAAC,MAAW;YAC1B,KAAI,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;QACpD,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;IACvB,CAAC;IAED,sCAAS,GAAT,UAAU,YAAoB,EAAE,MAAc;QAC5C,IAAI;YACF,IAAI,CAAC,WAAW,CAAC,SAAS,CACxB,kBAAkB,CAAC,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,EACzD,MAAM,CACP,CAAA;SACF;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;SACjD;IACH,CAAC;IAED,wCAAW,GAAX,UAAY,QAAgB;QAC1B,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;IACxC,CAAC;IAED,iCAAI,GAAJ,UACE,GAAW,EACX,OAAe,EACf,YAAoB,EACpB,QAA6C,EAC7C,KAAa,EACb,kBAA0B;QAF1B,yBAAA,EAAA,WAAmB,IAAI,CAAC,SAAS,CAAC,WAAW;QAI7C,IAAI,aAAa,CAAA;QAEjB,IAAI,CAAC,WAAW,CAAC,IAAI,CACnB,GAAG,EACH,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,aAAa,EACb,kBAAkB,CACnB,CAAA;IACH,CAAC;IAED,kCAAK,GAAL;QACE,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,EAAE,CAAA;QAE3C,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;IACjC,CAAC;IACH,yBAAC;AAAD,CAAC,AA3GD,IA2GC;AA3GY,gDAAkB"} \ No newline at end of file diff --git a/lib/Util.js b/lib/Util.js new file mode 100644 index 00000000..8d5ecf0a --- /dev/null +++ b/lib/Util.js @@ -0,0 +1,86 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var axios_1 = require("axios"); +var Util = /** @class */ (function () { + function Util(restURL) { + this.restURL = restURL; + } + Util.prototype.validateAddress = function (address) { + return __awaiter(this, void 0, void 0, function () { + var response, options, response, error_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 5, , 6]); + if (!(typeof address === "string")) return [3 /*break*/, 2]; + return [4 /*yield*/, axios_1.default.get(this.restURL + "util/validateAddress/" + address)]; + case 1: + response = _a.sent(); + return [2 /*return*/, response.data + // Array of blocks. + ]; + case 2: + if (!Array.isArray(address)) return [3 /*break*/, 4]; + options = { + method: "POST", + url: this.restURL + "util/validateAddress", + data: { + addresses: address + } + }; + return [4 /*yield*/, axios_1.default(options)]; + case 3: + response = _a.sent(); + return [2 /*return*/, response.data]; + case 4: throw new Error("Input must be a string or array of strings."); + case 5: + error_1 = _a.sent(); + if (error_1.response && error_1.response.data) + throw error_1.response.data; + else + throw error_1; + return [3 /*break*/, 6]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + return Util; +}()); +exports.Util = Util; +//# sourceMappingURL=Util.js.map \ No newline at end of file diff --git a/lib/Util.js.map b/lib/Util.js.map new file mode 100644 index 00000000..16e6e864 --- /dev/null +++ b/lib/Util.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Util.js","sourceRoot":"","sources":["Util.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAyB;AAmBzB;IAEE,cAAY,OAAe;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEK,8BAAe,GAArB,UACE,OAAe;;;;;;;6BAIT,CAAA,OAAO,OAAO,KAAK,QAAQ,CAAA,EAA3B,wBAA2B;wBACP,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,6BAAwB,OAAS,CACjD,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI;4BAEpB,mBAAmB;0BAFC;;6BAGX,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAtB,wBAAsB;wBACzB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,yBAAsB;4BAC1C,IAAI,EAAE;gCACJ,SAAS,EAAE,OAAO;6BACnB;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;;;wBAE9D,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IACH,WAAC;AAAD,CAAC,AArCD,IAqCC;AArCY,oBAAI"} \ No newline at end of file diff --git a/lib/Wallet.js b/lib/Wallet.js new file mode 100644 index 00000000..129ae254 --- /dev/null +++ b/lib/Wallet.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// import BCHWalletBridge from "bch-wallet-bridge.js" +var Wallet = /** @class */ (function () { + function Wallet(walletProvider) { + // this.bchWalletBridge = new BCHWalletBridge(walletProvider) + } + return Wallet; +}()); +exports.Wallet = Wallet; +//# sourceMappingURL=Wallet.js.map \ No newline at end of file diff --git a/lib/Wallet.js.map b/lib/Wallet.js.map new file mode 100644 index 00000000..6caefe33 --- /dev/null +++ b/lib/Wallet.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Wallet.js","sourceRoot":"","sources":["Wallet.ts"],"names":[],"mappings":";;AAAA,qDAAqD;AACrD;IACE,gBAAY,cAAmB;QAC7B,6DAA6D;IAC/D,CAAC;IAsEH,aAAC;AAAD,CAAC,AAzED,IAyEC;AAzEY,wBAAM"} \ No newline at end of file diff --git a/lib/interfaces/BITBOXInterfaces.js b/lib/interfaces/BITBOXInterfaces.js new file mode 100644 index 00000000..05436d42 --- /dev/null +++ b/lib/interfaces/BITBOXInterfaces.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=BITBOXInterfaces.js.map \ No newline at end of file diff --git a/lib/interfaces/BITBOXInterfaces.js.map b/lib/interfaces/BITBOXInterfaces.js.map new file mode 100644 index 00000000..e0e4a993 --- /dev/null +++ b/lib/interfaces/BITBOXInterfaces.js.map @@ -0,0 +1 @@ +{"version":3,"file":"BITBOXInterfaces.js","sourceRoot":"","sources":["BITBOXInterfaces.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 5b8d62f3..8986ac15 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.0.6", + "version": "7.0.7", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index eaf118fd..91d6b350 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.0.6", + "version": "7.0.7", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ From c0d70894c756720729491d74af581061d77fbc75 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 14:04:45 +0900 Subject: [PATCH 328/480] Fixes --- .npmignore | 2 ++ index.js | 2 +- package-lock.json | 2 +- package.json | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.npmignore b/.npmignore index e69de29b..223cec49 100644 --- a/.npmignore +++ b/.npmignore @@ -0,0 +1,2 @@ +/node_modules/ + diff --git a/index.js b/index.js index 902d2f3b..dc730cf0 100755 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOXSDK = require("./lib/BITBOX") const clone = require("git-clone") -program.version("7.0.7 ", "-v, --version") +program.version("7.0.8 ", "-v, --version") program .command("new ") diff --git a/package-lock.json b/package-lock.json index 8986ac15..8443ecc2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.0.7", + "version": "7.0.8", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 91d6b350..6f45dd0a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.0.7", + "version": "7.0.8", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ From b0e4174a7d3e4b5e2dfce9629f1c84bd294122fa Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 14:09:48 +0900 Subject: [PATCH 329/480] changes. --- .npmignore | 3 +-- .nvmrc | 2 +- index.js | 2 +- package-lock.json | 2 +- package.json | 2 +- 5 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.npmignore b/.npmignore index 223cec49..c2658d7d 100644 --- a/.npmignore +++ b/.npmignore @@ -1,2 +1 @@ -/node_modules/ - +node_modules/ diff --git a/.nvmrc b/.nvmrc index 7cc70f11..f487f993 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v10.5.0 +v10.5.3 diff --git a/index.js b/index.js index dc730cf0..c4260827 100755 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOXSDK = require("./lib/BITBOX") const clone = require("git-clone") -program.version("7.0.8 ", "-v, --version") +program.version("7.0.9 ", "-v, --version") program .command("new ") diff --git a/package-lock.json b/package-lock.json index 8443ecc2..17978570 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.0.8", + "version": "7.0.9", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 6f45dd0a..634f8e4c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.0.8", + "version": "7.0.9", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ From f9c15b0f52e78a23f7b5670f55e4c90dea1e6043 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 14:25:03 +0900 Subject: [PATCH 330/480] remove files. --- .gitignore | 4 +- lib/Address.js | 457 ------------------------------ lib/BITBOX.js | 57 ---- lib/BitcoinCash.js | 126 --------- lib/Block.js | 126 --------- lib/Blockchain.js | 574 -------------------------------------- lib/Control.js | 92 ------ lib/Crypto.js | 27 -- lib/ECPair.js | 50 ---- lib/Generating.js | 70 ----- lib/HDNode.js | 97 ------- lib/Mining.js | 145 ---------- lib/Mnemonic.js | 248 ---------------- lib/Price.js | 69 ----- lib/RawTransactions.js | 208 -------------- lib/Schnorr.js | 58 ---- lib/Script.js | 62 ---- lib/Socket.js | 33 --- lib/Transaction.js | 87 ------ lib/TransactionBuilder.js | 80 ------ lib/Util.js | 86 ------ lib/Wallet.js | 11 - 22 files changed, 2 insertions(+), 2765 deletions(-) delete mode 100644 lib/Address.js delete mode 100644 lib/BITBOX.js delete mode 100644 lib/BitcoinCash.js delete mode 100644 lib/Block.js delete mode 100644 lib/Blockchain.js delete mode 100644 lib/Control.js delete mode 100644 lib/Crypto.js delete mode 100644 lib/ECPair.js delete mode 100644 lib/Generating.js delete mode 100644 lib/HDNode.js delete mode 100644 lib/Mining.js delete mode 100644 lib/Mnemonic.js delete mode 100644 lib/Price.js delete mode 100644 lib/RawTransactions.js delete mode 100644 lib/Schnorr.js delete mode 100644 lib/Script.js delete mode 100644 lib/Socket.js delete mode 100644 lib/Transaction.js delete mode 100644 lib/TransactionBuilder.js delete mode 100644 lib/Util.js delete mode 100644 lib/Wallet.js diff --git a/.gitignore b/.gitignore index 5c048043..dcdee63c 100644 --- a/.gitignore +++ b/.gitignore @@ -9,5 +9,5 @@ yarn-lock.json # production /dist -#lib/**/*.js -#lib/**/*.js.map +lib/**/*.js +lib/**/*.js.map diff --git a/lib/Address.js b/lib/Address.js deleted file mode 100644 index a19d7099..00000000 --- a/lib/Address.js +++ /dev/null @@ -1,457 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var axios_1 = require("axios"); -var Bitcoin = require("bitcoincashjs-lib"); -var cashaddr = require("cashaddrjs"); -var coininfo = require("coininfo"); -var Address = /** @class */ (function () { - function Address(restURL) { - this.restURL = restURL; - } - // Translate address from any address format into a specific format. - Address.prototype.toLegacyAddress = function (address) { - var _a = this._decode(address), prefix = _a.prefix, type = _a.type, hash = _a.hash; - var bitcoincash; - switch (prefix) { - case "bitcoincash": - bitcoincash = coininfo.bitcoincash.main; - break; - case "bchtest": - bitcoincash = coininfo.bitcoincash.test; - break; - case "bchreg": - bitcoincash = coininfo.bitcoincash.regtest; - break; - default: - throw "unsupported prefix : " + prefix; - } - var version; - switch (type) { - case "P2PKH": - version = bitcoincash.versions.public; - break; - case "P2SH": - version = bitcoincash.versions.scripthash; - break; - default: - throw "unsupported address type : " + type; - } - var hashBuf = Buffer.from(hash); - return Bitcoin.address.toBase58Check(hashBuf, version); - }; - Address.prototype.toCashAddress = function (address, prefix, regtest) { - if (prefix === void 0) { prefix = true; } - if (regtest === void 0) { regtest = false; } - var decoded = this._decode(address); - var prefixString; - if (regtest) - prefixString = "bchreg"; - else - prefixString = decoded.prefix; - var cashAddress = cashaddr.encode(prefixString, decoded.type, decoded.hash); - if (prefix) - return cashAddress; - return cashAddress.split(":")[1]; - }; - // Converts legacy address format to hash160 - Address.prototype.legacyToHash160 = function (address) { - var bytes = Bitcoin.address.fromBase58Check(address); - return bytes.hash.toString("hex"); - }; - // Converts cash address format to hash160 - Address.prototype.cashToHash160 = function (address) { - var legacyAddress = this.toLegacyAddress(address); - var bytes = Bitcoin.address.fromBase58Check(legacyAddress); - return bytes.hash.toString("hex"); - }; - // Converts regtest address format to hash160 - // regtestToHash160(address: string): string { - // const legacyAddress = this.toLegacyAddress(address) - // const bytes = Bitcoin.address.fromBase58Check(legacyAddress) - // return bytes.hash.toString("hex") - // } - // Converts hash160 to Legacy Address - Address.prototype.hash160ToLegacy = function (hash160, network) { - if (network === void 0) { network = Bitcoin.networks.bitcoin.pubKeyHash; } - var buffer = Buffer.from(hash160, "hex"); - var legacyAddress = Bitcoin.address.toBase58Check(buffer, network); - return legacyAddress; - }; - // Converts hash160 to Cash Address - Address.prototype.hash160ToCash = function (hash160, network, regtest) { - if (network === void 0) { network = Bitcoin.networks.bitcoin.pubKeyHash; } - if (regtest === void 0) { regtest = false; } - var legacyAddress = this.hash160ToLegacy(hash160, network); - return this.toCashAddress(legacyAddress, true, regtest); - }; - Address.prototype._decode = function (address) { - try { - return this._decodeLegacyAddress(address); - } - catch (error) { } - try { - return this._decodeCashAddress(address); - } - catch (error) { } - try { - return this._encodeAddressFromHash160(address); - } - catch (error) { } - throw new Error("Unsupported address format : " + address); - }; - Address.prototype._decodeLegacyAddress = function (address) { - var _a = Bitcoin.address.fromBase58Check(address), version = _a.version, hash = _a.hash; - var info = coininfo.bitcoincash; - switch (version) { - case info.main.versions.public: - return { - prefix: "bitcoincash", - type: "P2PKH", - hash: hash, - format: "legacy" - }; - case info.main.versions.scripthash: - return { - prefix: "bitcoincash", - type: "P2SH", - hash: hash, - format: "legacy" - }; - case info.test.versions.public: - return { - prefix: "bchtest", - type: "P2PKH", - hash: hash, - format: "legacy" - }; - case info.test.versions.scripthash: - return { - prefix: "bchtest", - type: "P2SH", - hash: hash, - format: "legacy" - }; - default: - throw new Error("Invalid format : " + address); - } - }; - Address.prototype._decodeCashAddress = function (address) { - if (address.indexOf(":") !== -1) { - var decoded = cashaddr.decode(address); - decoded.format = "cashaddr"; - return decoded; - } - var prefixes = ["bitcoincash", "bchtest", "bchreg"]; - for (var i = 0; i < prefixes.length; ++i) { - try { - var decoded = cashaddr.decode(prefixes[i] + ":" + address); - decoded.format = "cashaddr"; - return decoded; - } - catch (error) { } - } - throw new Error("Invalid format : " + address); - }; - Address.prototype._encodeAddressFromHash160 = function (address) { - try { - return { - legacyAddress: this.hash160ToLegacy(address), - cashAddress: this.hash160ToCash(address), - format: "hash160" - }; - } - catch (error) { } - throw new Error("Invalid format : " + address); - }; - // Test for address format. - Address.prototype.isLegacyAddress = function (address) { - return this.detectAddressFormat(address) === "legacy"; - }; - Address.prototype.isCashAddress = function (address) { - return this.detectAddressFormat(address) === "cashaddr"; - }; - Address.prototype.isHash160 = function (address) { - return this.detectAddressFormat(address) === "hash160"; - }; - // Test for address network. - Address.prototype.isMainnetAddress = function (address) { - if (address[0] === "x") - return true; - else if (address[0] === "t") - return false; - return this.detectAddressNetwork(address) === "mainnet"; - }; - Address.prototype.isTestnetAddress = function (address) { - if (address[0] === "x") - return false; - else if (address[0] === "t") - return true; - return this.detectAddressNetwork(address) === "testnet"; - }; - Address.prototype.isRegTestAddress = function (address) { - return this.detectAddressNetwork(address) === "regtest"; - }; - // Test for address type. - Address.prototype.isP2PKHAddress = function (address) { - return this.detectAddressType(address) === "p2pkh"; - }; - Address.prototype.isP2SHAddress = function (address) { - return this.detectAddressType(address) === "p2sh"; - }; - // Detect address format. - Address.prototype.detectAddressFormat = function (address) { - var decoded = this._decode(address); - return decoded.format; - }; - // Detect address network. - Address.prototype.detectAddressNetwork = function (address) { - if (address[0] === "x") - return "mainnet"; - else if (address[0] === "t") - return "testnet"; - var decoded = this._decode(address); - switch (decoded.prefix) { - case "bitcoincash": - return "mainnet"; - case "bchtest": - return "testnet"; - case "bchreg": - return "regtest"; - default: - throw new Error("Invalid prefix : " + decoded.prefix); - } - }; - // Detect address type. - Address.prototype.detectAddressType = function (address) { - var decoded = this._decode(address); - return decoded.type.toLowerCase(); - }; - Address.prototype.fromXPub = function (xpub, path) { - if (path === void 0) { path = "0/0"; } - var bitcoincash; - if (xpub[0] === "x") - bitcoincash = coininfo.bitcoincash.main; - else if (xpub[0] === "t") - bitcoincash = coininfo.bitcoincash.test; - var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); - var HDNode = Bitcoin.HDNode.fromBase58(xpub, bitcoincashBitcoinJSLib); - var address = HDNode.derivePath(path); - return this.toCashAddress(address.getAddress()); - }; - Address.prototype.fromXPriv = function (xpriv, path) { - if (path === void 0) { path = "0'/0"; } - var bitcoincash; - if (xpriv[0] === "x") - bitcoincash = coininfo.bitcoincash.main; - else if (xpriv[0] === "t") - bitcoincash = coininfo.bitcoincash.test; - var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); - var HDNode = Bitcoin.HDNode.fromBase58(xpriv, bitcoincashBitcoinJSLib); - var address = HDNode.derivePath(path); - return this.toCashAddress(address.getAddress()); - }; - Address.prototype.fromOutputScript = function (scriptPubKey, network) { - if (network === void 0) { network = "mainnet"; } - var netParam; - if (network !== "bitcoincash" && network !== "mainnet") - netParam = Bitcoin.networks.testnet; - var regtest = network === "bchreg"; - return this.toCashAddress(Bitcoin.address.fromOutputScript(scriptPubKey, netParam), true, regtest); - }; - Address.prototype.details = function (address) { - return __awaiter(this, void 0, void 0, function () { - var response, options, response, error_1; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof address === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios_1.default.get(this.restURL + "address/details/" + address)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data - // Handle array of addresses. - ]; - case 2: - if (!Array.isArray(address)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "address/details", - data: { - addresses: address - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input address must be a string or array of strings."); - case 5: - error_1 = _a.sent(); - if (error_1.response && error_1.response.data) - throw error_1.response.data; - else - throw error_1; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - Address.prototype.utxo = function (address) { - return __awaiter(this, void 0, void 0, function () { - var response, options, response, error_2; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof address === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios_1.default.get(this.restURL + "address/utxo/" + address)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - if (!Array.isArray(address)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "address/utxo", - data: { - addresses: address - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input address must be a string or array of strings."); - case 5: - error_2 = _a.sent(); - if (error_2.response && error_2.response.data) - throw error_2.response.data; - else - throw error_2; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - Address.prototype.unconfirmed = function (address) { - return __awaiter(this, void 0, void 0, function () { - var response, options, response, error_3; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof address === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios_1.default.get(this.restURL + "address/unconfirmed/" + address)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data - // Handle an array of addresses - ]; - case 2: - if (!Array.isArray(address)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "address/unconfirmed", - data: { - addresses: address - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input address must be a string or array of strings."); - case 5: - error_3 = _a.sent(); - if (error_3.response && error_3.response.data) - throw error_3.response.data; - else - throw error_3; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - Address.prototype.transactions = function (address) { - return __awaiter(this, void 0, void 0, function () { - var response, options, response, error_4; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof address === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios_1.default.get(this.restURL + "address/transactions/" + address)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data - // Handle an array of addresses - ]; - case 2: - if (!Array.isArray(address)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "address/transactions", - data: { - addresses: address - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input address must be a string or array of strings."); - case 5: - error_4 = _a.sent(); - if (error_4.response && error_4.response.data) - throw error_4.response.data; - else - throw error_4; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - return Address; -}()); -exports.Address = Address; -//# sourceMappingURL=Address.js.map \ No newline at end of file diff --git a/lib/BITBOX.js b/lib/BITBOX.js deleted file mode 100644 index 7ec60bd2..00000000 --- a/lib/BITBOX.js +++ /dev/null @@ -1,57 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -// local deps -var BitcoinCash_1 = require("./BitcoinCash"); -var Crypto_1 = require("./Crypto"); -var Util_1 = require("./Util"); -var Block_1 = require("./Block"); -var Blockchain_1 = require("./Blockchain"); -var Control_1 = require("./Control"); -var Generating_1 = require("./Generating"); -var Mining_1 = require("./Mining"); -var RawTransactions_1 = require("./RawTransactions"); -var Mnemonic_1 = require("./Mnemonic"); -var Address_1 = require("./Address"); -var HDNode_1 = require("./HDNode"); -var Transaction_1 = require("./Transaction"); -var TransactionBuilder_1 = require("./TransactionBuilder"); -var ECPair_1 = require("./ECPair"); -var Script_1 = require("./Script"); -var Price_1 = require("./Price"); -var Socket_1 = require("./Socket"); -var Wallet_1 = require("./Wallet"); -var Schnorr_1 = require("./Schnorr"); -var BITBOX = /** @class */ (function () { - function BITBOX(config) { - if (config === void 0) { config = {}; } - if (config && config.restURL && config.restURL !== "") - this.restURL = config.restURL; - else - this.restURL = "https://rest.bitcoin.com/v2/"; - this.Address = new Address_1.Address(this.restURL); - this.BitcoinCash = new BitcoinCash_1.BitcoinCash(this.Address); - this.Block = new Block_1.Block(this.restURL); - this.Blockchain = new Blockchain_1.Blockchain(this.restURL); - this.Control = new Control_1.Control(this.restURL); - this.Crypto = Crypto_1.Crypto; - this.ECPair = ECPair_1.ECPair; - this.ECPair.setAddress(this.Address); - this.Generating = new Generating_1.Generating(this.restURL); - this.HDNode = new HDNode_1.HDNode(this.Address); - this.Mining = new Mining_1.Mining(this.restURL); - this.Mnemonic = new Mnemonic_1.Mnemonic(this.Address); - this.Price = new Price_1.Price(); - this.RawTransactions = new RawTransactions_1.RawTransactions(this.restURL); - this.Script = new Script_1.Script(); - this.Transaction = new Transaction_1.Transaction(this.restURL); - this.TransactionBuilder = TransactionBuilder_1.TransactionBuilder; - this.TransactionBuilder.setAddress(this.Address); - this.Util = new Util_1.Util(this.restURL); - this.Socket = Socket_1.Socket; - this.Wallet = Wallet_1.Wallet; - this.Schnorr = new Schnorr_1.Schnorr(); - } - return BITBOX; -}()); -exports.BITBOX = BITBOX; -//# sourceMappingURL=BITBOX.js.map \ No newline at end of file diff --git a/lib/BitcoinCash.js b/lib/BitcoinCash.js deleted file mode 100644 index 8418eab4..00000000 --- a/lib/BitcoinCash.js +++ /dev/null @@ -1,126 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var Bitcoin = require("bitcoincashjs-lib"); -var sb = require("satoshi-bitcoin"); -var bitcoinMessage = require("bitcoinjs-message"); -var bs58 = require("bs58"); -var bip21 = require("bip21"); -var coininfo = require("coininfo"); -var bip38 = require("bip38"); -var wif = require("wif"); -var Buffer = require("safe-buffer").Buffer; -var BitcoinCash = /** @class */ (function () { - function BitcoinCash(address) { - this._address = address; - } - // Translate coins to satoshi value - BitcoinCash.prototype.toSatoshi = function (coins) { - return sb.toSatoshi(coins); - }; - // Translate satoshi to coin value - BitcoinCash.prototype.toBitcoinCash = function (satoshis) { - return sb.toBitcoin(satoshis); - }; - // sign message - BitcoinCash.prototype.signMessageWithPrivKey = function (privateKeyWIF, message) { - var network = privateKeyWIF.charAt(0) === "c" ? "testnet" : "mainnet"; - var bitcoincash; - if (network === "mainnet") - bitcoincash = coininfo.bitcoincash.main; - else - bitcoincash = coininfo.bitcoincash.test; - var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); - var keyPair = Bitcoin.ECPair.fromWIF(privateKeyWIF, bitcoincashBitcoinJSLib); - var privateKey = keyPair.d.toBuffer(32); - return bitcoinMessage - .sign(message, privateKey, keyPair.compressed) - .toString("base64"); - }; - // verify message - BitcoinCash.prototype.verifyMessage = function (address, signature, message) { - return bitcoinMessage.verify(message, this._address.toLegacyAddress(address), signature); - }; - // encode base58Check - BitcoinCash.prototype.encodeBase58Check = function (hex) { - return bs58.encode(Buffer.from(hex, "hex")); - }; - // decode base58Check - BitcoinCash.prototype.decodeBase58Check = function (address) { - return bs58.decode(address).toString("hex"); - }; - // encode bip21 url - BitcoinCash.prototype.encodeBIP21 = function (address, options, regtest) { - if (regtest === void 0) { regtest = false; } - return bip21.encode(this._address.toCashAddress(address, true, regtest), options); - }; - // decode bip21 url - BitcoinCash.prototype.decodeBIP21 = function (url) { - return bip21.decode(url); - }; - BitcoinCash.prototype.getByteCount = function (inputs, outputs) { - // from https://github.com/bitcoinjs/bitcoinjs-lib/issues/921#issuecomment-354394004 - var totalWeight = 0; - var hasWitness = false; - // assumes compressed pubkeys in all cases. - var types = { - inputs: { - "MULTISIG-P2SH": 49 * 4, - "MULTISIG-P2WSH": 6 + 41 * 4, - "MULTISIG-P2SH-P2WSH": 6 + 76 * 4, - P2PKH: 148 * 4, - P2WPKH: 108 + 41 * 4, - "P2SH-P2WPKH": 108 + 64 * 4 - }, - outputs: { - P2SH: 32 * 4, - P2PKH: 34 * 4, - P2WPKH: 31 * 4, - P2WSH: 43 * 4 - } - }; - Object.keys(inputs).forEach(function (key) { - if (key.slice(0, 8) === "MULTISIG") { - // ex. "MULTISIG-P2SH:2-3" would mean 2 of 3 P2SH MULTISIG - var keyParts = key.split(":"); - if (keyParts.length !== 2) - throw new Error("invalid input: " + key); - var newKey = keyParts[0]; - var mAndN = keyParts[1].split("-").map(function (item) { - return parseInt(item); - }); - totalWeight += types.inputs[newKey] * inputs[key]; - var multiplyer = newKey === "MULTISIG-P2SH" ? 4 : 1; - totalWeight += (73 * mAndN[0] + 34 * mAndN[1]) * multiplyer; - } - else { - totalWeight += types.inputs[key] * inputs[key]; - } - if (key.indexOf("W") >= 0) - hasWitness = true; - }); - Object.keys(outputs).forEach(function (key) { - totalWeight += types.outputs[key] * outputs[key]; - }); - if (hasWitness) - totalWeight += 2; - totalWeight += 10 * 4; - return Math.ceil(totalWeight / 4); - }; - BitcoinCash.prototype.encryptBIP38 = function (privKeyWIF, passphrase) { - var decoded = wif.decode(privKeyWIF); - return bip38.encrypt(decoded.privateKey, decoded.compressed, passphrase); - }; - BitcoinCash.prototype.decryptBIP38 = function (encryptedKey, passphrase, network) { - if (network === void 0) { network = "mainnet"; } - var decryptedKey = bip38.decrypt(encryptedKey, passphrase); - var prefix; - if (network === "testnet") - prefix = 0xef; - else - prefix = 0x80; - return wif.encode(prefix, decryptedKey.privateKey, decryptedKey.compressed); - }; - return BitcoinCash; -}()); -exports.BitcoinCash = BitcoinCash; -//# sourceMappingURL=BitcoinCash.js.map \ No newline at end of file diff --git a/lib/Block.js b/lib/Block.js deleted file mode 100644 index d8895f1c..00000000 --- a/lib/Block.js +++ /dev/null @@ -1,126 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var axios_1 = require("axios"); -var Block = /** @class */ (function () { - function Block(restURL) { - this.restURL = restURL; - } - Block.prototype.detailsByHeight = function (id) { - return __awaiter(this, void 0, void 0, function () { - var response, options, response, error_1; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof id === "number")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios_1.default.get(this.restURL + "block/detailsByHeight/" + id)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data - // Array of blocks. - ]; - case 2: - if (!Array.isArray(id)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "block/detailsByHeight", - data: { - heights: id - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input must be a number or array of numbers."); - case 5: - error_1 = _a.sent(); - if (error_1.response && error_1.response.data) - throw error_1.response.data; - else - throw error_1; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - Block.prototype.detailsByHash = function (hash) { - return __awaiter(this, void 0, void 0, function () { - var response, options, response, error_2; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof hash === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios_1.default.get(this.restURL + "block/detailsByHash/" + hash)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data - // Array of hashes. - ]; - case 2: - if (!Array.isArray(hash)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "block/detailsByHash", - data: { - hashes: hash - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input must be a string or array of strings."); - case 5: - error_2 = _a.sent(); - if (error_2.response && error_2.response.data) - throw error_2.response.data; - else - throw error_2; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - return Block; -}()); -exports.Block = Block; -//# sourceMappingURL=Block.js.map \ No newline at end of file diff --git a/lib/Blockchain.js b/lib/Blockchain.js deleted file mode 100644 index 7009bca3..00000000 --- a/lib/Blockchain.js +++ /dev/null @@ -1,574 +0,0 @@ -"use strict"; -/* - TODO - - Add blockhash functionality back into getTxOutProof -*/ -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var axios_1 = require("axios"); -var Blockchain = /** @class */ (function () { - function Blockchain(restURL) { - this.restURL = restURL; - } - Blockchain.prototype.getBestBlockHash = function () { - return __awaiter(this, void 0, void 0, function () { - var response, error_1; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getBestBlockHash")]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_1 = _a.sent(); - if (error_1.response && error_1.response.data) - throw error_1.response.data; - else - throw error_1; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.getBlock = function (blockhash, verbose) { - if (verbose === void 0) { verbose = true; } - return __awaiter(this, void 0, void 0, function () { - var response, error_2; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getBlock/" + blockhash + "?verbose=" + verbose)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_2 = _a.sent(); - if (error_2.response && error_2.response.data) - throw error_2.response.data; - else - throw error_2; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.getBlockchainInfo = function () { - return __awaiter(this, void 0, void 0, function () { - var response, error_3; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getBlockchainInfo")]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_3 = _a.sent(); - if (error_3.response && error_3.response.data) - throw error_3.response.data; - else - throw error_3; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.getBlockCount = function () { - return __awaiter(this, void 0, void 0, function () { - var response, error_4; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getBlockCount")]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_4 = _a.sent(); - if (error_4.response && error_4.response.data) - throw error_4.response.data; - else - throw error_4; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.getBlockHash = function (height) { - if (height === void 0) { height = 1; } - return __awaiter(this, void 0, void 0, function () { - var response, error_5; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getBlockHash/" + height)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_5 = _a.sent(); - if (error_5.response && error_5.response.data) - throw error_5.response.data; - else - throw error_5; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.getBlockHeader = function (hash, verbose) { - if (verbose === void 0) { verbose = true; } - return __awaiter(this, void 0, void 0, function () { - var response, options, response, error_6; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof hash === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getBlockHeader/" + hash + "?verbose=" + verbose)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data - // Handle array of hashes. - ]; - case 2: - if (!Array.isArray(hash)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "blockchain/getBlockHeader", - data: { - hashes: hash, - verbose: verbose - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input hash must be a string or array of strings."); - case 5: - error_6 = _a.sent(); - if (error_6.response && error_6.response.data) - throw error_6.response.data; - else - throw error_6; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.getChainTips = function () { - return __awaiter(this, void 0, void 0, function () { - var response, error_7; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getChainTips")]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_7 = _a.sent(); - if (error_7.response && error_7.response.data) - throw error_7.response.data; - else - throw error_7; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.getDifficulty = function () { - return __awaiter(this, void 0, void 0, function () { - var response, error_8; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getDifficulty")]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_8 = _a.sent(); - if (error_8.response && error_8.response.data) - throw error_8.response.data; - else - throw error_8; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - // TODO: add back to REST - Blockchain.prototype.getMempoolAncestors = function (txid, verbose) { - if (verbose === void 0) { verbose = false; } - return __awaiter(this, void 0, void 0, function () { - var response, error_9; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (typeof txid !== "string") - txid = JSON.stringify(txid); - _a.label = 1; - case 1: - _a.trys.push([1, 3, , 4]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getMempoolAncestors/" + txid + "?verbose=" + verbose)]; - case 2: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 3: - error_9 = _a.sent(); - if (error_9.response && error_9.response.data) - throw error_9.response.data; - else - throw error_9; - return [3 /*break*/, 4]; - case 4: return [2 /*return*/]; - } - }); - }); - }; - // TODO: add back to REST - Blockchain.prototype.getMempoolDescendants = function (txid, verbose) { - if (verbose === void 0) { verbose = false; } - return __awaiter(this, void 0, void 0, function () { - var response, error_10; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (typeof txid !== "string") - txid = JSON.stringify(txid); - _a.label = 1; - case 1: - _a.trys.push([1, 3, , 4]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getMempoolDescendants/" + txid + "?verbose=" + verbose)]; - case 2: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 3: - error_10 = _a.sent(); - if (error_10.response && error_10.response.data) - throw error_10.response.data; - else - throw error_10; - return [3 /*break*/, 4]; - case 4: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.getMempoolEntry = function (txid) { - return __awaiter(this, void 0, void 0, function () { - var response, options, response, error_11; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof txid === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getMempoolEntry/" + txid)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - if (!Array.isArray(txid)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "blockchain/getMempoolEntry", - data: { - txids: txid - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input must be a string or array of strings."); - case 5: - error_11 = _a.sent(); - if (error_11.response && error_11.response.data) - throw error_11.response.data; - else - throw error_11; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.getMempoolInfo = function () { - return __awaiter(this, void 0, void 0, function () { - var response, error_12; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getMempoolInfo")]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_12 = _a.sent(); - if (error_12.response && error_12.response.data) - throw error_12.response.data; - else - throw error_12; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.getRawMempool = function (verbose) { - if (verbose === void 0) { verbose = false; } - return __awaiter(this, void 0, void 0, function () { - var response, error_13; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getRawMempool?vebose=" + verbose)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_13 = _a.sent(); - if (error_13.response && error_13.response.data) - throw error_13.response.data; - else - throw error_13; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.getTxOut = function (txid, n, include_mempool) { - if (include_mempool === void 0) { include_mempool = true; } - return __awaiter(this, void 0, void 0, function () { - var response, error_14; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/getTxOut/" + txid + "/n?include_mempool=" + include_mempool)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_14 = _a.sent(); - if (error_14.response && error_14.response.data) - throw error_14.response.data; - else - throw error_14; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.getTxOutProof = function (txids) { - return __awaiter(this, void 0, void 0, function () { - var path, response, options, response, error_15; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof txids === "string")) return [3 /*break*/, 2]; - path = this.restURL + "blockchain/getTxOutProof/" + txids; - return [4 /*yield*/, axios_1.default.get(path)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data - // Array of txids. - ]; - case 2: - if (!Array.isArray(txids)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "blockchain/getTxOutProof", - data: { - txids: txids - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input must be a string or array of strings."); - case 5: - error_15 = _a.sent(); - if (error_15.response && error_15.response.data) - throw error_15.response.data; - else - throw error_15; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.preciousBlock = function (blockhash) { - return __awaiter(this, void 0, void 0, function () { - var response, error_16; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/preciousBlock/" + blockhash)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_16 = _a.sent(); - if (error_16.response && error_16.response.data) - throw error_16.response.data; - else - throw error_16; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.pruneBlockchain = function (height) { - return __awaiter(this, void 0, void 0, function () { - var response, error_17; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.post(this.restURL + "blockchain/pruneBlockchain/" + height)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_17 = _a.sent(); - if (error_17.response && error_17.response.data) - throw error_17.response.data; - else - throw error_17; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.verifyChain = function (checklevel, nblocks) { - if (checklevel === void 0) { checklevel = 3; } - if (nblocks === void 0) { nblocks = 6; } - return __awaiter(this, void 0, void 0, function () { - var response, error_18; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/verifyChain?checklevel=" + checklevel + "&nblocks=" + nblocks)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_18 = _a.sent(); - if (error_18.response && error_18.response.data) - throw error_18.response.data; - else - throw error_18; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Blockchain.prototype.verifyTxOutProof = function (proof) { - return __awaiter(this, void 0, void 0, function () { - var response, options, response, error_19; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof proof === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios_1.default.get(this.restURL + "blockchain/verifyTxOutProof/" + proof)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data - // Array of hashes. - ]; - case 2: - if (!Array.isArray(proof)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "blockchain/verifyTxOutProof", - data: { - proofs: proof - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input must be a string or array of strings."); - case 5: - error_19 = _a.sent(); - if (error_19.response && error_19.response.data) - throw error_19.response.data; - else - throw error_19; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - return Blockchain; -}()); -exports.Blockchain = Blockchain; -//# sourceMappingURL=Blockchain.js.map \ No newline at end of file diff --git a/lib/Control.js b/lib/Control.js deleted file mode 100644 index 8aa790fe..00000000 --- a/lib/Control.js +++ /dev/null @@ -1,92 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var axios_1 = require("axios"); -var Control = /** @class */ (function () { - function Control(restURL) { - this.restURL = restURL; - } - Control.prototype.getInfo = function () { - return __awaiter(this, void 0, void 0, function () { - var response, error_1; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "control/getInfo")]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_1 = _a.sent(); - if (error_1.response && error_1.response.data) - throw error_1.response.data; - else - throw error_1; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Control.prototype.getMemoryInfo = function () { - return __awaiter(this, void 0, void 0, function () { - var response, error_2; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "control/getMemoryInfo")]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_2 = _a.sent(); - if (error_2.response && error_2.response.data) - throw error_2.response.data; - else - throw error_2; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - return Control; -}()); -exports.Control = Control; -//# sourceMappingURL=Control.js.map \ No newline at end of file diff --git a/lib/Crypto.js b/lib/Crypto.js deleted file mode 100644 index 02d955f3..00000000 --- a/lib/Crypto.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var randomBytes = require("randombytes"); -var Bitcoin = require("bitcoincashjs-lib"); -var Crypto = /** @class */ (function () { - function Crypto() { - } - Crypto.sha256 = function (buffer) { - return Bitcoin.crypto.sha256(buffer); - }; - Crypto.ripemd160 = function (buffer) { - return Bitcoin.crypto.ripemd160(buffer); - }; - Crypto.hash256 = function (buffer) { - return Bitcoin.crypto.hash256(buffer); - }; - Crypto.hash160 = function (buffer) { - return Bitcoin.crypto.hash160(buffer); - }; - Crypto.randomBytes = function (size) { - if (size === void 0) { size = 16; } - return randomBytes(size); - }; - return Crypto; -}()); -exports.Crypto = Crypto; -//# sourceMappingURL=Crypto.js.map \ No newline at end of file diff --git a/lib/ECPair.js b/lib/ECPair.js deleted file mode 100644 index 196ae741..00000000 --- a/lib/ECPair.js +++ /dev/null @@ -1,50 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var Bitcoin = require("bitcoincashjs-lib"); -var coininfo = require("coininfo"); -var ECPair = /** @class */ (function () { - function ECPair() { - } - ECPair.setAddress = function (address) { - ECPair._address = address; - }; - ECPair.fromWIF = function (privateKeyWIF) { - var network = "mainnet"; - if (privateKeyWIF[0] === "L" || privateKeyWIF[0] === "K") - network = "mainnet"; - else if (privateKeyWIF[0] === "c") - network = "testnet"; - var bitcoincash; - if (network === "mainnet") - bitcoincash = coininfo.bitcoincash.main; - else - bitcoincash = coininfo.bitcoincash.test; - var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); - return Bitcoin.ECPair.fromWIF(privateKeyWIF, bitcoincashBitcoinJSLib); - }; - ECPair.toWIF = function (ecpair) { - return ecpair.toWIF(); - }; - ECPair.sign = function (ecpair, buffer) { - return ecpair.sign(buffer); - }; - ECPair.verify = function (ecpair, buffer, signature) { - return ecpair.verify(buffer, signature); - }; - ECPair.fromPublicKey = function (pubkeyBuffer) { - return Bitcoin.ECPair.fromPublicKeyBuffer(pubkeyBuffer); - }; - ECPair.toPublicKey = function (ecpair) { - return ecpair.getPublicKeyBuffer(); - }; - ECPair.toLegacyAddress = function (ecpair) { - return ecpair.getAddress(); - }; - ECPair.toCashAddress = function (ecpair, regtest) { - if (regtest === void 0) { regtest = false; } - return ECPair._address.toCashAddress(ecpair.getAddress(), true, regtest); - }; - return ECPair; -}()); -exports.ECPair = ECPair; -//# sourceMappingURL=ECPair.js.map \ No newline at end of file diff --git a/lib/Generating.js b/lib/Generating.js deleted file mode 100644 index 1584b34d..00000000 --- a/lib/Generating.js +++ /dev/null @@ -1,70 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var axios_1 = require("axios"); -var Generating = /** @class */ (function () { - function Generating(restURL) { - this.restURL = restURL; - } - Generating.prototype.generateToAddress = function (blocks, address, maxtries) { - if (maxtries === void 0) { maxtries = 1000000; } - return __awaiter(this, void 0, void 0, function () { - var response, error_1; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.post(this.restURL + "generating/generateToAddress/" + blocks + "/" + address + "?maxtries=" + maxtries)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_1 = _a.sent(); - if (error_1.response && error_1.response.data) - throw error_1.response.data; - else - throw error_1; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - return Generating; -}()); -exports.Generating = Generating; -//# sourceMappingURL=Generating.js.map \ No newline at end of file diff --git a/lib/HDNode.js b/lib/HDNode.js deleted file mode 100644 index 38b81c2d..00000000 --- a/lib/HDNode.js +++ /dev/null @@ -1,97 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var Bitcoin = require("bitcoincashjs-lib"); -var coininfo = require("coininfo"); -var bip32utils = require("bip32-utils"); -var HDNode = /** @class */ (function () { - function HDNode(address) { - this._address = address; - } - HDNode.prototype.fromSeed = function (rootSeedBuffer, network) { - if (network === void 0) { network = "mainnet"; } - var bitcoincash; - if (network === "bitcoincash" || network === "mainnet") - bitcoincash = coininfo.bitcoincash.main; - else - bitcoincash = coininfo.bitcoincash.test; - var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); - return Bitcoin.HDNode.fromSeedBuffer(rootSeedBuffer, bitcoincashBitcoinJSLib); - }; - HDNode.prototype.toLegacyAddress = function (hdNode) { - return hdNode.getAddress(); - }; - HDNode.prototype.toCashAddress = function (hdNode, regtest) { - if (regtest === void 0) { regtest = false; } - return this._address.toCashAddress(hdNode.getAddress(), true, regtest); - }; - HDNode.prototype.toWIF = function (hdNode) { - return hdNode.keyPair.toWIF(); - }; - HDNode.prototype.toXPub = function (hdNode) { - return hdNode.neutered().toBase58(); - }; - HDNode.prototype.toXPriv = function (hdNode) { - return hdNode.toBase58(); - }; - HDNode.prototype.toKeyPair = function (hdNode) { - return hdNode.keyPair; - }; - HDNode.prototype.toPublicKey = function (hdNode) { - return hdNode.getPublicKeyBuffer(); - }; - HDNode.prototype.fromXPriv = function (xpriv) { - var bitcoincash; - if (xpriv[0] === "x") - bitcoincash = coininfo.bitcoincash.main; - else if (xpriv[0] === "t") - bitcoincash = coininfo.bitcoincash.test; - var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); - return Bitcoin.HDNode.fromBase58(xpriv, bitcoincashBitcoinJSLib); - }; - HDNode.prototype.fromXPub = function (xpub) { - var bitcoincash; - if (xpub[0] === "x") - bitcoincash = coininfo.bitcoincash.main; - else if (xpub[0] === "t") - bitcoincash = coininfo.bitcoincash.test; - var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); - return Bitcoin.HDNode.fromBase58(xpub, bitcoincashBitcoinJSLib); - }; - HDNode.prototype.derivePath = function (hdnode, path) { - return hdnode.derivePath(path); - }; - HDNode.prototype.derive = function (hdnode, path) { - return hdnode.derive(path); - }; - HDNode.prototype.deriveHardened = function (hdnode, path) { - return hdnode.deriveHardened(path); - }; - HDNode.prototype.sign = function (hdnode, buffer) { - return hdnode.sign(buffer); - }; - HDNode.prototype.verify = function (hdnode, buffer, signature) { - return hdnode.verify(buffer, signature); - }; - HDNode.prototype.isPublic = function (hdnode) { - return JSON.parse(hdnode.isNeutered()); - }; - HDNode.prototype.isPrivate = function (hdnode) { - return !hdnode.isNeutered(); - }; - HDNode.prototype.toIdentifier = function (hdnode) { - return hdnode.getIdentifier(); - }; - HDNode.prototype.fromBase58 = function (base58, network) { - return Bitcoin.HDNode.fromBase58(base58, network); - }; - HDNode.prototype.createAccount = function (hdNodes) { - var arr = hdNodes.map(function (item, index) { return new bip32utils.Chain(item.neutered()); }); - return new bip32utils.Account(arr); - }; - HDNode.prototype.createChain = function (hdNode) { - return new bip32utils.Chain(hdNode); - }; - return HDNode; -}()); -exports.HDNode = HDNode; -//# sourceMappingURL=HDNode.js.map \ No newline at end of file diff --git a/lib/Mining.js b/lib/Mining.js deleted file mode 100644 index ba0bd928..00000000 --- a/lib/Mining.js +++ /dev/null @@ -1,145 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var axios_1 = require("axios"); -var Mining = /** @class */ (function () { - function Mining(restURL) { - this.restURL = restURL; - } - Mining.prototype.getBlockTemplate = function (template_request) { - return __awaiter(this, void 0, void 0, function () { - var response, error_1; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "mining/getBlockTemplate/" + template_request)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_1 = _a.sent(); - if (error_1.response && error_1.response.data) - throw error_1.response.data; - else - throw error_1; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Mining.prototype.getMiningInfo = function () { - return __awaiter(this, void 0, void 0, function () { - var response, error_2; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "mining/getMiningInfo")]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_2 = _a.sent(); - if (error_2.response && error_2.response.data) - throw error_2.response.data; - else - throw error_2; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Mining.prototype.getNetworkHashps = function (nblocks, height) { - if (nblocks === void 0) { nblocks = 120; } - if (height === void 0) { height = 1; } - return __awaiter(this, void 0, void 0, function () { - var response, error_3; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get(this.restURL + "mining/getNetworkHashps?nblocks=" + nblocks + "&height=" + height)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - error_3 = _a.sent(); - if (error_3.response && error_3.response.data) - throw error_3.response.data; - else - throw error_3; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Mining.prototype.submitBlock = function (hex, parameters) { - return __awaiter(this, void 0, void 0, function () { - var path, response, error_4; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - path = this.restURL + "mining/submitBlock/" + hex; - if (parameters) - path = path + "?parameters=" + parameters; - _a.label = 1; - case 1: - _a.trys.push([1, 3, , 4]); - return [4 /*yield*/, axios_1.default.post(path)]; - case 2: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 3: - error_4 = _a.sent(); - if (error_4.response && error_4.response.data) - throw error_4.response.data; - else - throw error_4; - return [3 /*break*/, 4]; - case 4: return [2 /*return*/]; - } - }); - }); - }; - return Mining; -}()); -exports.Mining = Mining; -//# sourceMappingURL=Mining.js.map \ No newline at end of file diff --git a/lib/Mnemonic.js b/lib/Mnemonic.js deleted file mode 100644 index 324310b4..00000000 --- a/lib/Mnemonic.js +++ /dev/null @@ -1,248 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var BIP39 = require("bip39"); -var randomBytes = require("randombytes"); -var Bitcoin = require("bitcoincashjs-lib"); -var buffer_1 = require("buffer"); -var wif = require("wif"); -var Mnemonic = /** @class */ (function () { - function Mnemonic(address) { - this._address = address; - } - Mnemonic.prototype.generate = function (bits, wordlist) { - if (bits === void 0) { bits = 128; } - return BIP39.generateMnemonic(bits, randomBytes, wordlist); - }; - Mnemonic.prototype.fromEntropy = function (bytes, wordlist) { - return BIP39.entropyToMnemonic(bytes, wordlist); - }; - Mnemonic.prototype.toEntropy = function (mnemonic, wordlist) { - return buffer_1.Buffer.from(BIP39.mnemonicToEntropy(mnemonic, wordlist), "hex"); - }; - Mnemonic.prototype.validate = function (mnemonic, wordlist) { - // Preprocess the words - var words = mnemonic.split(" "); - // Detect blank phrase - if (words.length === 0) - return "Blank mnemonic"; - // Check each word - for (var i = 0; i < words.length; i++) { - var word = words[i]; - if (wordlist.indexOf(word) == -1) { - // Finding closest match to word - var nearestWord = this.findNearestWord(word, wordlist); - return word + " is not in wordlist, did you mean " + nearestWord + "?"; - } - } - // Check the words are valid - var properPhrase = words.join(); - var isValid = BIP39.validateMnemonic(mnemonic, wordlist); - if (!isValid) - return "Invalid mnemonic"; - return "Valid mnemonic"; - }; - Mnemonic.prototype.toSeed = function (mnemonic, password) { - if (password === void 0) { password = ""; } - return BIP39.mnemonicToSeed(mnemonic, password); - }; - Mnemonic.prototype.wordLists = function () { - return BIP39.wordlists; - }; - Mnemonic.prototype.toKeypairs = function (mnemonic, numberOfKeypairs, regtest) { - if (numberOfKeypairs === void 0) { numberOfKeypairs = 1; } - if (regtest === void 0) { regtest = false; } - var rootSeedBuffer = this.toSeed(mnemonic, ""); - var hdNode = Bitcoin.HDNode.fromSeedBuffer(rootSeedBuffer); - var HDPath = "44'/145'/0'/0/"; - var accounts = []; - for (var i = 0; i < numberOfKeypairs; i++) { - var childHDNode = hdNode.derivePath("" + HDPath + i); - var prefix = 128; - if (regtest === true) - prefix = 239; - accounts.push({ - privateKeyWIF: wif.encode(prefix, childHDNode.keyPair.d.toBuffer(32), true), - address: this._address.toCashAddress(childHDNode.getAddress(), true, regtest) - }); - } - return accounts; - }; - Mnemonic.prototype.findNearestWord = function (word, wordlist) { - var minDistance = 99; - var closestWord = wordlist[0]; - for (var i = 0; i < wordlist.length; i++) { - var comparedTo = wordlist[i]; - if (comparedTo.indexOf(word) == 0) - return comparedTo; - var distance = Levenshtein.get(word, comparedTo); - if (distance < minDistance) { - closestWord = comparedTo; - minDistance = distance; - } - } - return closestWord; - }; - return Mnemonic; -}()); -exports.Mnemonic = Mnemonic; -// The following code is from: https://raw.githubusercontent.com/iancoleman/bip39/7ff86d4c983f1e8c80b87b31acfd69fcf98c1b82/src/js/levenshtein.js -/** - * Extend an Object with another Object's properties. - * - * The source objects are specified as additional arguments. - * - * @param dst Object the object to extend. - * - * @return Object the final object. - */ -var _extend = function (dst) { - var sources = Array.prototype.slice.call(arguments, 1); - for (var i = 0; i < sources.length; ++i) { - var src = sources[i]; - for (var p in src) - if (src.hasOwnProperty(p)) - dst[p] = src[p]; - } - return dst; -}; -/** - * Defer execution of given function. - * @param {Function} func - */ -var _defer = function (func) { - if (typeof setImmediate === "function") - return setImmediate(func); - return setTimeout(func, 0); -}; -/** - * Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance. - */ -var Levenshtein = { - /** - * Calculate levenshtein distance of the two strings. - * - * @param str1 String the first string. - * @param str2 String the second string. - * @return Integer the levenshtein distance (0 and above). - */ - get: function (str1, str2) { - // base cases - if (str1 === str2) - return 0; - if (str1.length === 0) - return str2.length; - if (str2.length === 0) - return str1.length; - // two rows - var prevRow = new Array(str2.length + 1), curCol, nextCol, i, j, tmp; - // initialise previous row - for (i = 0; i < prevRow.length; ++i) - prevRow[i] = i; - // calculate current row distance from previous row - for (i = 0; i < str1.length; ++i) { - nextCol = i + 1; - for (j = 0; j < str2.length; ++j) { - curCol = nextCol; - // substution - nextCol = prevRow[j] + (str1.charAt(i) === str2.charAt(j) ? 0 : 1); - // insertion - tmp = curCol + 1; - if (nextCol > tmp) - nextCol = tmp; - // deletion - tmp = prevRow[j + 1] + 1; - if (nextCol > tmp) - nextCol = tmp; - // copy current col value into previous (in preparation for next iteration) - prevRow[j] = curCol; - } - // copy last col value into previous (in preparation for next iteration) - prevRow[j] = nextCol; - } - return nextCol; - }, - /** - * Asynchronously calculate levenshtein distance of the two strings. - * - * @param str1 String the first string. - * @param str2 String the second string. - * @param cb Function callback function with signature: function(Error err, int distance) - * @param [options] Object additional options. - * @param [options.progress] Function progress callback with signature: function(percentComplete) - */ - getAsync: function (str1, str2, cb, options) { - options = _extend({}, { - progress: null - }, options); - // base cases - if (str1 === str2) - return cb(null, 0); - if (str1.length === 0) - return cb(null, str2.length); - if (str2.length === 0) - return cb(null, str1.length); - // two rows - var prevRow = new Array(str2.length + 1); - var curCol; - var nextCol; - var i; - var j; - var tmp; - var startTime; - var currentTime; - // initialise previous row - for (i = 0; i < prevRow.length; ++i) - prevRow[i] = i; - nextCol = 1; - i = 0; - j = -1; - var __calculate = function () { - // reset timer - startTime = new Date().valueOf(); - currentTime = startTime; - // keep going until one second has elapsed - while (currentTime - startTime < 1000) { - // reached end of current row? - if (str2.length <= ++j) { - // copy current into previous (in preparation for next iteration) - prevRow[j] = nextCol; - // if already done all chars - if (str1.length <= ++i) - return cb(null, nextCol); - // else if we have more left to do - nextCol = i + 1; - j = 0; - } - // calculation - curCol = nextCol; - // substution - nextCol = prevRow[j] + (str1.charAt(i) === str2.charAt(j) ? 0 : 1); - // insertion - tmp = curCol + 1; - if (nextCol > tmp) - nextCol = tmp; - // deletion - tmp = prevRow[j + 1] + 1; - if (nextCol > tmp) - nextCol = tmp; - // copy current into previous (in preparation for next iteration) - prevRow[j] = curCol; - // get current time - currentTime = new Date().valueOf(); - } - // send a progress update? - if (null !== options.progress) { - try { - options.progress.call(null, (i * 100.0) / str1.length); - } - catch (err) { - return cb("Progress callback: " + err.toString()); - } - } - // next iteration - _defer(__calculate); - }; - __calculate(); - } -}; -//# sourceMappingURL=Mnemonic.js.map \ No newline at end of file diff --git a/lib/Price.js b/lib/Price.js deleted file mode 100644 index a6d44fad..00000000 --- a/lib/Price.js +++ /dev/null @@ -1,69 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var axios_1 = require("axios"); -var Price = /** @class */ (function () { - function Price() { - } - Price.prototype.current = function (currency) { - if (currency === void 0) { currency = "usd"; } - return __awaiter(this, void 0, void 0, function () { - var response, error_1; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, axios_1.default.get("https://index-api.bitcoin.com/api/v0/cash/price/" + currency.toLowerCase())]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data.price]; - case 2: - error_1 = _a.sent(); - if (error_1.response && error_1.response.data) - throw error_1.response.data; - else - throw error_1; - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); - }; - return Price; -}()); -exports.Price = Price; -//# sourceMappingURL=Price.js.map \ No newline at end of file diff --git a/lib/RawTransactions.js b/lib/RawTransactions.js deleted file mode 100644 index ca070b1b..00000000 --- a/lib/RawTransactions.js +++ /dev/null @@ -1,208 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var axios_1 = require("axios"); -var RawTransactions = /** @class */ (function () { - function RawTransactions(restURL) { - this.restURL = restURL; - } - RawTransactions.prototype.decodeRawTransaction = function (hex) { - return __awaiter(this, void 0, void 0, function () { - var response, options, response, error_1; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof hex === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios_1.default.get(this.restURL + "rawtransactions/decodeRawTransaction/" + hex)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data - // Array of hexes - ]; - case 2: - if (!Array.isArray(hex)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "rawtransactions/decodeRawTransaction", - data: { - hexes: hex - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input must be a string or array of strings."); - case 5: - error_1 = _a.sent(); - if (error_1.response && error_1.response.data) - throw error_1.response.data; - else - throw error_1; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - RawTransactions.prototype.decodeScript = function (script) { - return __awaiter(this, void 0, void 0, function () { - var response, options, response, error_2; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof script === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios_1.default.get(this.restURL + "rawtransactions/decodeScript/" + script)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - if (!Array.isArray(script)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "rawtransactions/decodeScript", - data: { - hexes: script - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input must be a string or array of strings."); - case 5: - error_2 = _a.sent(); - if (error_2.response && error_2.response.data) - throw error_2.response.data; - else - throw error_2; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - RawTransactions.prototype.getRawTransaction = function (txid, verbose) { - if (verbose === void 0) { verbose = false; } - return __awaiter(this, void 0, void 0, function () { - var response, options, response, error_3; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof txid === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios_1.default.get(this.restURL + "rawtransactions/getRawTransaction/" + txid + "?verbose=" + verbose)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 2: - if (!Array.isArray(txid)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "rawtransactions/getRawTransaction", - data: { - txids: txid, - verbose: verbose - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input must be a string or array of strings."); - case 5: - error_3 = _a.sent(); - if (error_3.response && error_3.response.data) - throw error_3.response.data; - else - throw error_3; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - RawTransactions.prototype.sendRawTransaction = function (hex, allowhighfees) { - if (allowhighfees === void 0) { allowhighfees = false; } - return __awaiter(this, void 0, void 0, function () { - var response, options, response, error_4; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof hex === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios_1.default.get(this.restURL + "rawtransactions/sendRawTransaction/" + hex)]; - case 1: - response = _a.sent(); - if (response.data === "66: insufficient priority") { - console.warn("WARN: Insufficient Priority! This is likely due to a fee that is too low, or insufficient funds.\n Please ensure that there is BCH in the given wallet. If you are running on the testnet, get some\n BCH from the testnet faucet at https://developer.bitcoin.com/faucets/bch"); - } - return [2 /*return*/, response.data - // Array input - ]; - case 2: - if (!Array.isArray(hex)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "rawtransactions/sendRawTransaction", - data: { - hexes: hex - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input hex must be a string or array of strings."); - case 5: - error_4 = _a.sent(); - if (error_4.response && error_4.response.data) - throw error_4.response.data; - else - throw error_4; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - return RawTransactions; -}()); -exports.RawTransactions = RawTransactions; -//# sourceMappingURL=RawTransactions.js.map \ No newline at end of file diff --git a/lib/Schnorr.js b/lib/Schnorr.js deleted file mode 100644 index a5b63e63..00000000 --- a/lib/Schnorr.js +++ /dev/null @@ -1,58 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var schnorr = require("bip-schnorr"); -var Schnorr = /** @class */ (function () { - function Schnorr() { - } - Schnorr.prototype.sign = function (privateKey, message) { - return schnorr.sign(privateKey, message); - }; - Schnorr.prototype.verify = function (publicKey, message, signatureToVerify) { - return schnorr.verify(publicKey, message, signatureToVerify); - }; - Schnorr.prototype.batchVerify = function (publicKeys, messages, signaturesToVerify) { - return schnorr.batchVerify(publicKeys, messages, signaturesToVerify); - }; - Schnorr.prototype.nonInteractive = function (privateKeys, message) { - return schnorr.muSig.nonInteractive(privateKeys, message); - }; - Schnorr.prototype.computeEll = function (publicKeys) { - return schnorr.muSig.computeEll(publicKeys); - }; - Schnorr.prototype.publicKeyCombine = function (publicKeys, publicKeyHash) { - return schnorr.muSig.pubKeyCombine(publicKeys, publicKeyHash); - }; - Schnorr.prototype.sessionInitialize = function (sessionId, privateKey, message, pubKeyCombined, ell, idx) { - return schnorr.muSig.sessionInitialize(sessionId, privateKey, message, pubKeyCombined, ell, idx); - }; - Schnorr.prototype.sessionNonceCombine = function (session, nonces) { - return schnorr.muSig.sessionNonceCombine(session, nonces); - }; - Schnorr.prototype.partialSign = function (session, message, nonceCombined, pubKeyCombined) { - return schnorr.muSig.partialSign(session, message, nonceCombined, pubKeyCombined); - }; - Schnorr.prototype.partialSignatureVerify = function (session, partialSignature, nonceCombined, idx, pubKey, nonce) { - return schnorr.muSig.partialSigVerify(session, partialSignature, nonceCombined, idx, pubKey, nonce); - }; - Schnorr.prototype.partialSignaturesCombine = function (nonceCombined, partialSignatures) { - return schnorr.muSig.partialSigCombine(nonceCombined, partialSignatures); - }; - Schnorr.prototype.bufferToInt = function (buffer) { - return schnorr.convert.bufferToInt(buffer); - }; - Schnorr.prototype.intToBuffer = function (bigInteger) { - return schnorr.convert.intToBuffer(bigInteger); - }; - Schnorr.prototype.hash = function (buffer) { - return schnorr.convert.hash(buffer); - }; - Schnorr.prototype.pointToBuffer = function (point) { - return schnorr.convert.pointToBuffer(point); - }; - Schnorr.prototype.pubKeyToPoint = function (publicKey) { - return schnorr.convert.pubKeyToPoint(publicKey); - }; - return Schnorr; -}()); -exports.Schnorr = Schnorr; -//# sourceMappingURL=Schnorr.js.map \ No newline at end of file diff --git a/lib/Script.js b/lib/Script.js deleted file mode 100644 index 8edb5c17..00000000 --- a/lib/Script.js +++ /dev/null @@ -1,62 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var Bitcoin = require("bitcoincashjs-lib"); -var opcodes = require("bitcoincash-ops"); -var Script = /** @class */ (function () { - function Script() { - this.opcodes = opcodes; - this.nullData = Bitcoin.script.nullData; - this.multisig = { - input: { - encode: function (signatures) { - var sigs = []; - signatures.forEach(function (sig) { - sigs.push(sig); - }); - return Bitcoin.script.multisig.input.encode(sigs); - }, - decode: Bitcoin.script.multisig.input.decode, - check: Bitcoin.script.multisig.input.check - }, - output: { - encode: function (m, pubKeys) { - var pks = []; - pubKeys.forEach(function (pubKey) { - pks.push(pubKey); - }); - return Bitcoin.script.multisig.output.encode(m, pks); - }, - decode: Bitcoin.script.multisig.output.decode, - check: Bitcoin.script.multisig.output.check - } - }; - this.pubKey = Bitcoin.script.pubKey; - this.pubKeyHash = Bitcoin.script.pubKeyHash; - this.scriptHash = Bitcoin.script.scriptHash; - } - Script.prototype.classifyInput = function (script) { - return Bitcoin.script.classifyInput(script); - }; - Script.prototype.classifyOutput = function (script) { - return Bitcoin.script.classifyOutput(script); - }; - Script.prototype.decode = function (scriptBuffer) { - return Bitcoin.script.decompile(scriptBuffer); - }; - Script.prototype.encode = function (scriptChunks) { - var arr = []; - scriptChunks.forEach(function (chunk) { - arr.push(chunk); - }); - return Bitcoin.script.compile(arr); - }; - Script.prototype.toASM = function (buffer) { - return Bitcoin.script.toASM(buffer); - }; - Script.prototype.fromASM = function (asm) { - return Bitcoin.script.fromASM(asm); - }; - return Script; -}()); -exports.Script = Script; -//# sourceMappingURL=Script.js.map \ No newline at end of file diff --git a/lib/Socket.js b/lib/Socket.js deleted file mode 100644 index 0dd3b512..00000000 --- a/lib/Socket.js +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var io = require("socket.io-client"); -var Socket = /** @class */ (function () { - function Socket(config) { - if (config === void 0) { config = {}; } - if (typeof config === "string") { - // TODO remove this check in v2.0 - this.socket = io("" + config); - } - else { - if (config.restURL) { - this.socket = io("" + config.restURL); - } - else { - var restURL = "https://rest.bitcoin.com"; - this.socket = io("" + restURL); - } - if (config.callback) - config.callback(); - } - } - Socket.prototype.listen = function (endpoint, cb) { - this.socket.emit(endpoint); - if (endpoint === "blocks") - this.socket.on("blocks", function (msg) { return cb(msg); }); - else if (endpoint === "transactions") - this.socket.on("transactions", function (msg) { return cb(msg); }); - }; - return Socket; -}()); -exports.Socket = Socket; -//# sourceMappingURL=Socket.js.map \ No newline at end of file diff --git a/lib/Transaction.js b/lib/Transaction.js deleted file mode 100644 index a4f72694..00000000 --- a/lib/Transaction.js +++ /dev/null @@ -1,87 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var Bitcoin = require("bitcoincashjs-lib"); -var axios_1 = require("axios"); -var Transaction = /** @class */ (function () { - function Transaction(restURL) { - this.restURL = restURL; - } - Transaction.prototype.details = function (txid) { - return __awaiter(this, void 0, void 0, function () { - var response, options, response, error_1; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof txid === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios_1.default.get(this.restURL + "transaction/details/" + txid)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data - // Array of addresses - ]; - case 2: - if (!Array.isArray(txid)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "transaction/details", - data: { - txids: txid - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input txid must be a string or array of strings."); - case 5: - error_1 = _a.sent(); - if (error_1.response && error_1.response.data) - throw error_1.response.data; - else - throw error_1; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - return Transaction; -}()); -exports.Transaction = Transaction; -//# sourceMappingURL=Transaction.js.map \ No newline at end of file diff --git a/lib/TransactionBuilder.js b/lib/TransactionBuilder.js deleted file mode 100644 index e8ee16e6..00000000 --- a/lib/TransactionBuilder.js +++ /dev/null @@ -1,80 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var Bitcoin = require("bitcoincashjs-lib"); -var coininfo = require("coininfo"); -var bip66 = require("bip66"); -var bip68 = require("bc-bip68"); -var TransactionBuilder = /** @class */ (function () { - function TransactionBuilder(network) { - if (network === void 0) { network = "mainnet"; } - var bitcoincash; - if (network === "bitcoincash" || network === "mainnet") - bitcoincash = coininfo.bitcoincash.main; - else - bitcoincash = coininfo.bitcoincash.test; - var bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS(); - this.transaction = new Bitcoin.TransactionBuilder(bitcoincashBitcoinJSLib); - this.DEFAULT_SEQUENCE = 0xffffffff; - this.hashTypes = { - SIGHASH_ALL: 0x01, - SIGHASH_NONE: 0x02, - SIGHASH_SINGLE: 0x03, - SIGHASH_ANYONECANPAY: 0x80, - SIGHASH_BITCOINCASH_BIP143: 0x40, - ADVANCED_TRANSACTION_MARKER: 0x00, - ADVANCED_TRANSACTION_FLAG: 0x01 - }; - this.signatureAlgorithms = { - ECDSA: Bitcoin.ECSignature.ECDSA, - SCHNORR: Bitcoin.ECSignature.SCHNORR - }; - this.bip66 = bip66; - this.bip68 = bip68; - this.p2shInput = false; - this.tx; - } - TransactionBuilder.setAddress = function (address) { - TransactionBuilder._address = address; - }; - TransactionBuilder.prototype.addInput = function (txHash, vout, sequence, prevOutScript) { - if (sequence === void 0) { sequence = this.DEFAULT_SEQUENCE; } - this.transaction.addInput(txHash, vout, sequence, prevOutScript); - }; - TransactionBuilder.prototype.addInputScript = function (vout, script) { - this.tx = this.transaction.buildIncomplete(); - this.tx.setInputScript(vout, script); - this.p2shInput = true; - }; - TransactionBuilder.prototype.addInputScripts = function (scripts) { - var _this = this; - this.tx = this.transaction.buildIncomplete(); - scripts.forEach(function (script) { - _this.tx.setInputScript(script.vout, script.script); - }); - this.p2shInput = true; - }; - TransactionBuilder.prototype.addOutput = function (scriptPubKey, amount) { - try { - this.transaction.addOutput(TransactionBuilder._address.toLegacyAddress(scriptPubKey), amount); - } - catch (error) { - this.transaction.addOutput(scriptPubKey, amount); - } - }; - TransactionBuilder.prototype.setLockTime = function (locktime) { - this.transaction.setLockTime(locktime); - }; - TransactionBuilder.prototype.sign = function (vin, keyPair, redeemScript, hashType, value, signatureAlgorithm) { - if (hashType === void 0) { hashType = this.hashTypes.SIGHASH_ALL; } - var witnessScript; - this.transaction.sign(vin, keyPair, redeemScript, hashType, value, witnessScript, signatureAlgorithm); - }; - TransactionBuilder.prototype.build = function () { - if (this.p2shInput === true) - return this.tx; - return this.transaction.build(); - }; - return TransactionBuilder; -}()); -exports.TransactionBuilder = TransactionBuilder; -//# sourceMappingURL=TransactionBuilder.js.map \ No newline at end of file diff --git a/lib/Util.js b/lib/Util.js deleted file mode 100644 index 8d5ecf0a..00000000 --- a/lib/Util.js +++ /dev/null @@ -1,86 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var axios_1 = require("axios"); -var Util = /** @class */ (function () { - function Util(restURL) { - this.restURL = restURL; - } - Util.prototype.validateAddress = function (address) { - return __awaiter(this, void 0, void 0, function () { - var response, options, response, error_1; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 5, , 6]); - if (!(typeof address === "string")) return [3 /*break*/, 2]; - return [4 /*yield*/, axios_1.default.get(this.restURL + "util/validateAddress/" + address)]; - case 1: - response = _a.sent(); - return [2 /*return*/, response.data - // Array of blocks. - ]; - case 2: - if (!Array.isArray(address)) return [3 /*break*/, 4]; - options = { - method: "POST", - url: this.restURL + "util/validateAddress", - data: { - addresses: address - } - }; - return [4 /*yield*/, axios_1.default(options)]; - case 3: - response = _a.sent(); - return [2 /*return*/, response.data]; - case 4: throw new Error("Input must be a string or array of strings."); - case 5: - error_1 = _a.sent(); - if (error_1.response && error_1.response.data) - throw error_1.response.data; - else - throw error_1; - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; - } - }); - }); - }; - return Util; -}()); -exports.Util = Util; -//# sourceMappingURL=Util.js.map \ No newline at end of file diff --git a/lib/Wallet.js b/lib/Wallet.js deleted file mode 100644 index 129ae254..00000000 --- a/lib/Wallet.js +++ /dev/null @@ -1,11 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -// import BCHWalletBridge from "bch-wallet-bridge.js" -var Wallet = /** @class */ (function () { - function Wallet(walletProvider) { - // this.bchWalletBridge = new BCHWalletBridge(walletProvider) - } - return Wallet; -}()); -exports.Wallet = Wallet; -//# sourceMappingURL=Wallet.js.map \ No newline at end of file From cb60b36694416fdca4fab4fc4a89c803e10a78b2 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 14:32:56 +0900 Subject: [PATCH 331/480] files. --- index.js | 2 +- package-lock.json | 2 +- package.json | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index c4260827..1e84febc 100755 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOXSDK = require("./lib/BITBOX") const clone = require("git-clone") -program.version("7.0.9 ", "-v, --version") +program.version("7.0.10 ", "-v, --version") program .command("new ") diff --git a/package-lock.json b/package-lock.json index 17978570..d05ddac1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.0.9", + "version": "7.0.10", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 634f8e4c..91e9ba8e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.0.9", + "version": "7.0.10", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ @@ -21,6 +21,7 @@ }, "main": "lib/BITBOX.js", "files": [ + "index.js", "lib/", "dist/" ], From 3b5587dcfc373a2a02d8c1afd67f2906b9b766ab Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 14:41:58 +0900 Subject: [PATCH 332/480] Fixes. --- .gitignore | 4 +- .npmignore | 1 - index.ts | 175 + package-lock.json | 13159 -------------------------------------------- package.json | 5 +- yarn.lock | 7856 ++++++++++++++++++++++++++ 6 files changed, 8035 insertions(+), 13165 deletions(-) delete mode 100644 .npmignore create mode 100644 index.ts delete mode 100644 package-lock.json create mode 100644 yarn.lock diff --git a/.gitignore b/.gitignore index dcdee63c..de0e9f26 100644 --- a/.gitignore +++ b/.gitignore @@ -3,8 +3,8 @@ node_modules/* wallet-info.txt wallet.json -# package-lock.json -yarn-lock.json +package-lock.json +# yarn-lock.json # production /dist diff --git a/.npmignore b/.npmignore deleted file mode 100644 index c2658d7d..00000000 --- a/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules/ diff --git a/index.ts b/index.ts new file mode 100644 index 00000000..5edd67cf --- /dev/null +++ b/index.ts @@ -0,0 +1,175 @@ +#!/usr/bin/env node +require("babel-register") +const path = require("path") +const program = require("commander") +const chalk = require("chalk") +const mkdirp = require("mkdirp") +const figlet = require("figlet") +const clear = require("clear") +const fs = require("fs") +const touch = require("touch") +const emoji = require("node-emoji") +const repl = require("repl") +const BITBOX = require("./lib/BITBOX").BITBOX +const clone = require("git-clone") + +program.version("7.0.11 ", "-v, --version") + +program + .command("new ") + .option( + "-s, --scaffold ", + "The framework to use. Options include react, angular, vuejs, nextjs, node and websockets." + ) + .option( + "-r, --restURL ", + "The rest URL to use. default: https://trest.bitcoin.com/v2/" + ) + .option( + "-e, --environment ", + "environment of running BITBOX instance. Ex: production, staging. (Default: development)" + ) + .description(`create a new BITBOX application`) + .action((name: any, options: any) => { + if (fs.existsSync(`./${name}`)) { + console.log(chalk.red(`Project ${name} already exists`)) + process.exit(1) + } + + let config + const environment = fetchOption("environment=development", config, options) + const restURL = fetchOption( + "restURL=https://trest.bitcoin.com/v2/", + config, + options + ) + + if (options && options.scaffold) { + let scaffold = options.scaffold.toLowerCase() + let repo + const conf = {} + if (scaffold === "node") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-node.git" + } else if (scaffold === "angular") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-angular.git" + } else if (scaffold === "next") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-next.git" + } else if (scaffold === "react") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-react.git" + } else if (scaffold === "vue") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-vue.git" + } else if (scaffold === "websockets") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-websockets.git" + } else { + console.log(chalk.red(`Scaffold ${scaffold} not supported`)) + process.exit(1) + } + + if (options && options.repo) { + scaffold = "custom repo" + repo = options.repo.toLowerCase() + } + + clear() + console.log( + chalk.blue( + figlet.textSync("BITBOX", { + font: "3-D", + horizontalLayout: "full" + }) + ) + ) + + console.log(chalk.blue(`Scaffolding ${scaffold} app in ${name}`)) + clone(repo, `./${name}`, [conf], (res: any) => { + if (res === "Error: 'git clone' failed with status 128") { + console.log(chalk.red("Must create new app in to an empty directory")) + } else { + console.log(chalk.green("All done."), emoji.get(":white_check_mark:")) + console.log( + chalk.blue( + "Now `cd` in to your new project and run `npm install && npm start`" + ), + emoji.get(":rocket:") + ) + } + }) + return + } + + console.log(chalk.green(`Creating ${name}/ directory`)) + console.log(chalk.green(`Creating src/ directory: ./${name}/src`)) + mkdirp(`./${name}/src`, (err: any) => {}) + + console.log(chalk.green(`Creating tests/ directory: ./${name}/tests`)) + mkdirp(`./${name}/tests`, (err: any) => {}) + + console.log( + chalk.green(`Creating bitbox.js configuration file: ./${name}/bitbox.js`) + ) + + mkdirp(`./${name}`, (err: any) => {}) + touch(`./${name}/bitbox.js`) + fs.writeFileSync( + `./${name}/bitbox.js`, + `exports.config = { + environments: { + ${environment}: { + restURL: "${restURL}" + } + } +}; +` + ) + fs.appendFileSync(`./${name}/.gitignore`, ".console_history") + console.log(chalk.blue("All done."), emoji.get(":white_check_mark:")) + console.log( + chalk.blue( + "Go get em! Remember--with great power comes great responsibility." + ), + emoji.get(":rocket:") + ) + }) + +program + .command("console") + .option( + "-e, --environment ", + "environment of running BITBOX instance. Ex: production, staging. (Default: development)" + ) + .description("Run a console with Bitcoin Cash RPC commands available") + .action((options: any) => { + let config + try { + config = require(`${process.cwd()}/bitbox.js`).config + } catch (err) { + console.log( + chalk.red("Console command must be run inside a bitbox project") + ) + process.exit(1) + } + const replServer = repl.start("> ") + const historyFile = path.join(process.cwd(), ".console_history") + require("repl.history")(replServer, historyFile) + + const environment = fetchOption("environment=development", config, options) + + replServer.context.BITBOX = new BITBOX(config.environments[environment]) + }) + +function fetchOption(kv: any, config: any, options: any) { + const parts = kv.split("=") + const key = parts[0] + const defaultVal = parts[1] + if (options && options[key]) return options[key] + else if (config && config.new && config.new[key]) return config.new[key] + + return defaultVal +} + +program.parse(process.argv) + +// print help if no command given +// if (!process.argv.slice(2).length) program.outputHelp() + +module.exports = BITBOX diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index d05ddac1..00000000 --- a/package-lock.json +++ /dev/null @@ -1,13159 +0,0 @@ -{ - "name": "bitbox-sdk", - "version": "7.0.10", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", - "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", - "requires": { - "@babel/highlight": "^7.0.0" - } - }, - "@babel/generator": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.4.tgz", - "integrity": "sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==", - "requires": { - "@babel/types": "^7.4.4", - "jsesc": "^2.5.1", - "lodash": "^4.17.11", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" - }, - "dependencies": { - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - } - } - }, - "@babel/helper-function-name": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", - "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", - "requires": { - "@babel/helper-get-function-arity": "^7.0.0", - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", - "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", - "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", - "requires": { - "@babel/types": "^7.4.4" - } - }, - "@babel/highlight": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", - "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.4.tgz", - "integrity": "sha512-5pCS4mOsL+ANsFZGdvNLybx4wtqAZJ0MJjMHxvzI3bvIsz6sQvzW8XX92EYIkiPtIvcfG3Aj+Ir5VNyjnZhP7w==" - }, - "@babel/template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", - "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.4.4", - "@babel/types": "^7.4.4" - } - }, - "@babel/traverse": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.4.tgz", - "integrity": "sha512-Gw6qqkw/e6AGzlyj9KnkabJX7VcubqPtkUQVAwkc0wUMldr3A/hezNB3Rc5eIvId95iSGkGIOe5hh1kMKf951A==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.4.4", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/parser": "^7.4.4", - "@babel/types": "^7.4.4", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.11" - } - }, - "@babel/types": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", - "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.11", - "to-fast-properties": "^2.0.0" - }, - "dependencies": { - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - } - } - }, - "@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", - "dev": true, - "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" - } - }, - "@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", - "dev": true - }, - "@octokit/endpoint": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-4.2.2.tgz", - "integrity": "sha512-5IZjkUNhx5q0IRN7Juwf5A+Lu2qAso7ULST7C1P2mbGHePuCOk936Stcl/5GdJpB3ovD8M6/Lv3xra6Mn0IKNQ==", - "dev": true, - "requires": { - "deepmerge": "3.2.0", - "is-plain-object": "^3.0.0", - "universal-user-agent": "^2.0.1", - "url-template": "^2.0.8" - }, - "dependencies": { - "is-plain-object": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz", - "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==", - "dev": true, - "requires": { - "isobject": "^4.0.0" - } - }, - "isobject": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", - "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==", - "dev": true - } - } - }, - "@octokit/request": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-3.0.1.tgz", - "integrity": "sha512-aH61OVkMKMofGW/go2x4mJ44X4U/JF8xsiFFictwkZYtz0psE8OPKpsP2TZBZaJoCg2wmeTyEgqGfY+veg0hGQ==", - "dev": true, - "requires": { - "@octokit/endpoint": "^4.0.0", - "deprecation": "^1.0.1", - "is-plain-object": "^3.0.0", - "node-fetch": "^2.3.0", - "once": "^1.4.0", - "universal-user-agent": "^2.0.1" - }, - "dependencies": { - "is-plain-object": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz", - "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==", - "dev": true, - "requires": { - "isobject": "^4.0.0" - } - }, - "isobject": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", - "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==", - "dev": true - } - } - }, - "@octokit/rest": { - "version": "16.25.2", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.25.2.tgz", - "integrity": "sha512-aUSzvY33dz6RMLLmT+1aNc2OvvAmDfdXKaOzFEEBNJjsjckNjWkB2hgGa5plnnbuLPCloVldPuAdm+8REZGLcg==", - "dev": true, - "requires": { - "@octokit/request": "3.0.1", - "atob-lite": "^2.0.0", - "before-after-hook": "^1.4.0", - "btoa-lite": "^1.0.0", - "deprecation": "^1.0.1", - "lodash.get": "^4.4.2", - "lodash.set": "^4.3.2", - "lodash.uniq": "^4.5.0", - "octokit-pagination-methods": "^1.1.0", - "once": "^1.4.0", - "universal-user-agent": "^2.0.0", - "url-template": "^2.0.8" - } - }, - "@semantic-release/commit-analyzer": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-6.1.0.tgz", - "integrity": "sha512-2lb+t6muGenI86mYGpZYOgITx9L3oZYF697tJoqXeQEk0uw0fm+OkkOuDTBA3Oax9ftoNIrCKv9bwgYvxrbM6w==", - "dev": true, - "requires": { - "conventional-changelog-angular": "^5.0.0", - "conventional-commits-filter": "^2.0.0", - "conventional-commits-parser": "^3.0.0", - "debug": "^4.0.0", - "import-from": "^2.1.0", - "lodash": "^4.17.4" - } - }, - "@semantic-release/error": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-2.2.0.tgz", - "integrity": "sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg==", - "dev": true - }, - "@semantic-release/github": { - "version": "5.2.10", - "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-5.2.10.tgz", - "integrity": "sha512-z/UwIxKb+EMiJDIy/57MBzJ80ar5H9GJQRyML/ILQ8dlrPwXs7cTyTvC7AesrF7t1mJZtg3ht9Qf9RdtR/LGzw==", - "dev": true, - "requires": { - "@octokit/rest": "^16.13.1", - "@semantic-release/error": "^2.2.0", - "aggregate-error": "^2.0.0", - "bottleneck": "^2.0.1", - "debug": "^4.0.0", - "dir-glob": "^2.0.0", - "fs-extra": "^7.0.0", - "globby": "^9.0.0", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.1", - "issue-parser": "^3.0.0", - "lodash": "^4.17.4", - "mime": "^2.0.3", - "p-filter": "^1.0.0", - "p-retry": "^3.0.0", - "parse-github-url": "^1.0.1", - "url-join": "^4.0.0" - }, - "dependencies": { - "mime": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.2.tgz", - "integrity": "sha512-zJBfZDkwRu+j3Pdd2aHsR5GfH2jIWhmL1ZzBoc+X+3JEti2hbArWcyJ+1laC1D2/U/W1a/+Cegj0/OnEU2ybjg==", - "dev": true - } - } - }, - "@semantic-release/npm": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-5.1.4.tgz", - "integrity": "sha512-YRl8VTVwnRTl/sVRvTXs1ncYcuvuGrqPEXYy+lUK1YRLq25hkrhIdv3Ju0u1zGLqVCA8qRlF3NzWl7pULJXVog==", - "dev": true, - "requires": { - "@semantic-release/error": "^2.2.0", - "aggregate-error": "^2.0.0", - "execa": "^1.0.0", - "fs-extra": "^7.0.0", - "lodash": "^4.17.4", - "nerf-dart": "^1.0.0", - "normalize-url": "^4.0.0", - "npm": "6.5.0", - "rc": "^1.2.8", - "read-pkg": "^4.0.0", - "registry-auth-token": "^3.3.1" - }, - "dependencies": { - "read-pkg": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz", - "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=", - "dev": true, - "requires": { - "normalize-package-data": "^2.3.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0" - } - } - } - }, - "@semantic-release/release-notes-generator": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-7.1.4.tgz", - "integrity": "sha512-pWPouZujddgb6t61t9iA9G3yIfp3TeQ7bPbV1ixYSeP6L7gI1+Du82fY/OHfEwyifpymLUQW0XnIKgKct5IMMw==", - "dev": true, - "requires": { - "conventional-changelog-angular": "^5.0.0", - "conventional-changelog-writer": "^4.0.0", - "conventional-commits-filter": "^2.0.0", - "conventional-commits-parser": "^3.0.0", - "debug": "^4.0.0", - "get-stream": "^4.0.0", - "import-from": "^2.1.0", - "into-stream": "^4.0.0", - "lodash": "^4.17.4" - }, - "dependencies": { - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "@sinonjs/commons": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.4.0.tgz", - "integrity": "sha512-9jHK3YF/8HtJ9wCAbG+j8cD0i0+ATS9A7gXFqS36TblLPNy6rEEc+SB0imo91eCboGaBYGV/MT1/br/J+EE7Tw==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/formatio": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", - "integrity": "sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg==", - "dev": true, - "requires": { - "samsam": "1.3.0" - } - }, - "@sinonjs/samsam": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.3.1.tgz", - "integrity": "sha512-wRSfmyd81swH0hA1bxJZJ57xr22kC07a1N4zuIL47yTS04bDk6AoCkczcqHEjcRPmJ+FruGJ9WBQiJwMtIElFw==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.0.2", - "array-from": "^2.1.1", - "lodash": "^4.17.11" - } - }, - "@sinonjs/text-encoding": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", - "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", - "dev": true - }, - "@types/events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", - "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", - "dev": true - }, - "@types/glob": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", - "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", - "dev": true, - "requires": { - "@types/events": "*", - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", - "dev": true - }, - "@types/node": { - "version": "10.14.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.6.tgz", - "integrity": "sha512-Fvm24+u85lGmV4hT5G++aht2C5I4Z4dYlWZIh62FAfFO/TfzXtPpoLI6I7AuBWkIFqZCnhFOoTT7RjjaIL5Fjg==" - }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz", - "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==" - }, - "acorn-dynamic-import": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", - "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==" - }, - "acorn-jsx": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz", - "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==", - "dev": true - }, - "acorn-node": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.6.2.tgz", - "integrity": "sha512-rIhNEZuNI8ibQcL7ANm/mGyPukIaZsRNX9psFNQURyJW0nu6k8wjSDld20z6v2mDBWqX13pIEnk9gGZJHIlEXg==", - "requires": { - "acorn": "^6.0.2", - "acorn-dynamic-import": "^4.0.0", - "acorn-walk": "^6.1.0", - "xtend": "^4.0.1" - } - }, - "acorn-walk": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.1.tgz", - "integrity": "sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw==" - }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" - }, - "agent-base": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", - "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", - "dev": true, - "requires": { - "es6-promisify": "^5.0.0" - } - }, - "aggregate-error": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-2.2.0.tgz", - "integrity": "sha512-E5n+IZkhh22/pFdUvHUU/o9z752lc+7tgHt+FXS/g6BjlbE9249dGmuS/SxIWMPhTljZJkFN+7OXE0+O5+WT8w==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^3.0.0" - } - }, - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=" - }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "ansicolors": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "argv-formatter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/argv-formatter/-/argv-formatter-1.0.0.tgz", - "integrity": "sha1-oMoMvCmltz6Dbuvhy/bF4OTrgvk=", - "dev": true - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-filter": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", - "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true - }, - "array-from": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", - "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=", - "dev": true - }, - "array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", - "dev": true - }, - "array-includes": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", - "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.7.0" - } - }, - "array-map": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", - "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=" - }, - "array-reduce": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", - "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "requires": { - "util": "0.10.3" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "optional": true - }, - "async-limiter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", - "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "atob-lite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz", - "integrity": "sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY=", - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", - "dev": true - }, - "axios": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", - "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=", - "requires": { - "follow-redirects": "^1.2.5", - "is-buffer": "^1.1.5" - } - }, - "babel-cli": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", - "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", - "requires": { - "babel-core": "^6.26.0", - "babel-polyfill": "^6.26.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "chokidar": "^1.6.1", - "commander": "^2.11.0", - "convert-source-map": "^1.5.0", - "fs-readdir-recursive": "^1.0.0", - "glob": "^7.1.2", - "lodash": "^4.17.4", - "output-file-sync": "^1.1.2", - "path-is-absolute": "^1.0.1", - "slash": "^1.0.0", - "source-map": "^0.5.6", - "v8flags": "^2.1.1" - } - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "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" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - } - }, - "babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", - "requires": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "requires": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", - "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", - "requires": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" - }, - "babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" - }, - "babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" - }, - "babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", - "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "requires": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "requires": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", - "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", - "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "requires": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", - "requires": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "requires": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" - } - }, - "babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", - "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "requires": { - "regenerator-transform": "^0.10.0" - } - }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-polyfill": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", - "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", - "requires": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" - } - } - }, - "babel-preset-env": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", - "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", - "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-to-generator": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.23.0", - "babel-plugin-transform-es2015-classes": "^6.23.0", - "babel-plugin-transform-es2015-computed-properties": "^6.22.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", - "babel-plugin-transform-es2015-for-of": "^6.23.0", - "babel-plugin-transform-es2015-function-name": "^6.22.0", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.22.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-umd": "^6.23.0", - "babel-plugin-transform-es2015-object-super": "^6.22.0", - "babel-plugin-transform-es2015-parameters": "^6.23.0", - "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", - "babel-plugin-transform-exponentiation-operator": "^6.22.0", - "babel-plugin-transform-regenerator": "^6.22.0", - "browserslist": "^3.2.6", - "invariant": "^2.2.2", - "semver": "^5.3.0" - } - }, - "babel-preset-es2015": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", - "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", - "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.24.1", - "babel-plugin-transform-es2015-classes": "^6.24.1", - "babel-plugin-transform-es2015-computed-properties": "^6.24.1", - "babel-plugin-transform-es2015-destructuring": "^6.22.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", - "babel-plugin-transform-es2015-for-of": "^6.22.0", - "babel-plugin-transform-es2015-function-name": "^6.24.1", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-umd": "^6.24.1", - "babel-plugin-transform-es2015-object-super": "^6.24.1", - "babel-plugin-transform-es2015-parameters": "^6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", - "babel-plugin-transform-regenerator": "^6.24.1" - } - }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "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.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "base-x": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.5.tgz", - "integrity": "sha512-C3picSgzPSLE+jW3tcBzJoGwitOtazb5B+5YmAxZm2ybmTi9LNgAtDO/jjVEBZwHoXmDBZ9m/IELj3elJVRBcA==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" - }, - "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" - }, - "base64id": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", - "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=" - }, - "bc-bip68": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bc-bip68/-/bc-bip68-1.0.5.tgz", - "integrity": "sha512-GzaMlN7pNthrY5BhReVhnfr4Ixx+GUSfyNRHYh0QiMUF0d0+0YaD8MpEdv6AjFBksg/zlqL1fVCBBm6PpTt2Rg==" - }, - "bch-wallet-bridge-provider-interface": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/bch-wallet-bridge-provider-interface/-/bch-wallet-bridge-provider-interface-0.1.1.tgz", - "integrity": "sha512-m8Mq/aJhZN11aoa91YyYs/B1GxWfpT5IIp64IU5VRgNxGXBuUiIfvybk4XQR+zrHaMW4SLrD1tI9n59ogmEw/A==" - }, - "bch-wallet-bridge.js": { - "version": "github:web3bch/bch-wallet-bridge.js#f73558eaf3a98ba2a23de3c9cbbd582b30ff19eb", - "from": "github:web3bch/bch-wallet-bridge.js#master", - "requires": { - "bch-wallet-bridge-provider-interface": "^0.1.1", - "bchaddrjs": "^0.2.2", - "bitcoincashjs": "^0.1.10" - } - }, - "bchaddrjs": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.3.tgz", - "integrity": "sha512-0DVW8q3UFQFhrvt8Fowpkk+WvkYTZTSD1vGCQHrtMHZjRL6G/SoW0mgrREmgO1F/8TJ+Julri4UBWA8Gr7C5Yw==", - "requires": { - "bs58check": "^2.1.2", - "cashaddrjs": "^0.2.9" - } - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bech32": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.3.tgz", - "integrity": "sha512-yuVFUvrNcoJi0sv5phmqc6P+Fl1HjRDRNOOkHY2X/3LBy2bIGNSFx4fZ95HMaXHupuS7cZR15AsvtmCIF4UEyg==" - }, - "before-after-hook": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-1.4.0.tgz", - "integrity": "sha512-l5r9ir56nda3qu14nAXIlyq1MmUSs0meCIaFAh8HwkFwP1F8eToOuS3ah2VAHHcY04jaYD7FpJC5JTXHYRbkzg==", - "dev": true - }, - "better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", - "requires": { - "callsite": "1.0.0" - } - }, - "big-integer": { - "version": "1.6.43", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.43.tgz", - "integrity": "sha512-9dULc9jsKmXl0Aeunug8wbF+58n+hQoFjqClN7WeZwGLh0XJUWyJJ9Ee+Ep+Ql/J9fRsTVaeThp8MhiCCrY0Jg==" - }, - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" - }, - "bigi": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz", - "integrity": "sha1-nGZalfiLiwj8Bc/XMfVhhZ1yWCU=" - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "optional": true - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bip-schnorr": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/bip-schnorr/-/bip-schnorr-0.3.0.tgz", - "integrity": "sha512-Sc1Hn2+1n+okPEW8G+JLjeaM12dsUOwr+oFlMDSKR9wYwNGMw0alskeBIHTmXxBxMZSWKhCW7PwKQVDyGmnaVg==", - "requires": { - "ecurve": "^1.0.6", - "js-sha256": "^0.9.0", - "random-bytes": "^1.0.0", - "safe-buffer": "^5.0.1" - } - }, - "bip21": { - "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "from": "github:Bitcoin-com/bip21", - "requires": { - "qs": "^6.3.0" - } - }, - "bip32-utils": { - "version": "github:Bitcoin-com/bip32-utils#b8a33ebd0a0ac39de7cd987e5c3f77a8c5d84e58", - "from": "github:Bitcoin-com/bip32-utils#0.13.1", - "requires": { - "keccak": "^1.3.0", - "nyc": "*", - "standard": "^11.0.1", - "tape": "*" - } - }, - "bip38": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", - "integrity": "sha512-22KDak0RDyghFbR0Si7wyq9IgY423YzGYzWLpGeofH3DaolOQqjD3mNN08eFoubKlbyclOQKFwtONMv2SD9V3A==", - "requires": { - "bigi": "^1.2.0", - "browserify-aes": "^1.0.1", - "bs58check": "<3.0.0", - "buffer-xor": "^1.0.2", - "create-hash": "^1.1.1", - "ecurve": "^1.0.0", - "scryptsy": "^2.0.0" - } - }, - "bip39": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.6.0.tgz", - "integrity": "sha512-RrnQRG2EgEoqO24ea+Q/fftuPUZLmrEM3qNhhGsA3PbaXaCW791LTzPuVyx/VprXQcTbPJ3K3UeTna8ZnVl2sg==", - "requires": { - "create-hash": "^1.1.0", - "pbkdf2": "^3.0.9", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "unorm": "^1.3.3" - } - }, - "bip66": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", - "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "bitcoincash-ops": { - "version": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3", - "from": "github:Bitcoin-com/bitcoincash-ops#2.0.0" - }, - "bitcoincashjs": { - "version": "0.1.14", - "resolved": "https://registry.npmjs.org/bitcoincashjs/-/bitcoincashjs-0.1.14.tgz", - "integrity": "sha512-x0wMVSCZ56ZQnSQ+Xim7XfS0IYiOyOwo0pdMCmR+cDNB7zRhICFuH5i3lNdLSgUw1e7Pc3FmUlC9wruQNlYMnA==" - }, - "bitcoincashjs-lib": { - "version": "github:Bitcoin-com/bitcoincashjs-lib#3d360c780ec7df4a74aea93664c2b5ff8b08949a", - "from": "github:Bitcoin-com/bitcoincashjs-lib#v4.0.0", - "requires": { - "bech32": "^1.1.2", - "bigi": "^1.4.0", - "bip66": "^1.1.0", - "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3", - "bs58check": "^2.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.3", - "ecurve": "^1.0.0", - "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "github:Bitcoin-com/pushdata-bitcoin#9b75eebe597853c6eeaec3e6c44b6d9c9cd7ee86", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "typeforce": "^1.11.3", - "varuint-bitcoin": "^1.0.4", - "wif": "^2.0.1" - }, - "dependencies": { - "bitcoincash-ops": { - "version": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3", - "from": "github:Bitcoin-com/bitcoincash-ops#2.0.0" - } - } - }, - "bitcoinjs-message": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", - "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", - "requires": { - "bs58check": "^2.0.2", - "buffer-equals": "^1.0.3", - "create-hash": "^1.1.2", - "secp256k1": "^3.0.1", - "varuint-bitcoin": "^1.0.1" - } - }, - "blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" - }, - "bottleneck": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.18.0.tgz", - "integrity": "sha512-U1xiBRaokw4yEguzikOl0VrnZp6uekjpmfrh6rKtr1D+/jFjYCL6J83ZXlGtlBDwVdTmJJ+4Lg5FpB3xmLSiyA==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "browser-pack": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", - "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", - "requires": { - "JSONStream": "^1.0.3", - "combine-source-map": "~0.8.0", - "defined": "^1.0.0", - "safe-buffer": "^5.1.1", - "through2": "^2.0.0", - "umd": "^3.0.0" - } - }, - "browser-resolve": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", - "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", - "requires": { - "resolve": "1.1.7" - }, - "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" - } - } - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "browserify": { - "version": "16.2.3", - "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.2.3.tgz", - "integrity": "sha512-zQt/Gd1+W+IY+h/xX2NYMW4orQWhqSwyV+xsblycTtpOuB27h1fZhhNQuipJ4t79ohw4P4mMem0jp/ZkISQtjQ==", - "requires": { - "JSONStream": "^1.0.3", - "assert": "^1.4.0", - "browser-pack": "^6.0.1", - "browser-resolve": "^1.11.0", - "browserify-zlib": "~0.2.0", - "buffer": "^5.0.2", - "cached-path-relative": "^1.0.0", - "concat-stream": "^1.6.0", - "console-browserify": "^1.1.0", - "constants-browserify": "~1.0.0", - "crypto-browserify": "^3.0.0", - "defined": "^1.0.0", - "deps-sort": "^2.0.0", - "domain-browser": "^1.2.0", - "duplexer2": "~0.1.2", - "events": "^2.0.0", - "glob": "^7.1.0", - "has": "^1.0.0", - "htmlescape": "^1.1.0", - "https-browserify": "^1.0.0", - "inherits": "~2.0.1", - "insert-module-globals": "^7.0.0", - "labeled-stream-splicer": "^2.0.0", - "mkdirp": "^0.5.0", - "module-deps": "^6.0.0", - "os-browserify": "~0.3.0", - "parents": "^1.0.1", - "path-browserify": "~0.0.0", - "process": "~0.11.0", - "punycode": "^1.3.2", - "querystring-es3": "~0.2.0", - "read-only-stream": "^2.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.1.4", - "shasum": "^1.0.0", - "shell-quote": "^1.6.1", - "stream-browserify": "^2.0.0", - "stream-http": "^2.0.0", - "string_decoder": "^1.1.1", - "subarg": "^1.0.0", - "syntax-error": "^1.1.1", - "through2": "^2.0.0", - "timers-browserify": "^1.0.1", - "tty-browserify": "0.0.1", - "url": "~0.11.0", - "util": "~0.10.1", - "vm-browserify": "^1.0.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } - } - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", - "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", - "requires": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" - } - }, - "bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "requires": { - "base-x": "^3.0.2" - } - }, - "bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "btoa-lite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", - "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=", - "dev": true - }, - "buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", - "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "buffer-equals": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/buffer-equals/-/buffer-equals-1.0.4.tgz", - "integrity": "sha1-A1O1T9B/2VZBcGca5vZrnPENJ/U=" - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "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" - } - }, - "cached-path-relative": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.2.tgz", - "integrity": "sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==" - }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true - }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "dev": true, - "requires": { - "callsites": "^2.0.0" - }, - "dependencies": { - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true - } - } - }, - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "dev": true, - "requires": { - "caller-callsite": "^2.0.0" - } - }, - "callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", - "dev": true, - "requires": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - } - } - }, - "can-promise": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/can-promise/-/can-promise-0.0.1.tgz", - "integrity": "sha512-gzVrHyyrvgt0YpDm7pn04MQt8gjh0ZAhN4ZDyCRtGl6YnuuK6b4aiUTD7G52r9l4YNmxfTtEscb92vxtAlL6XQ==", - "requires": { - "window-or-global": "^1.0.1" - } - }, - "caniuse-lite": { - "version": "1.0.30000967", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000967.tgz", - "integrity": "sha512-rUBIbap+VJfxTzrM4akJ00lkvVb5/n5v3EGXfWzSH5zT8aJmGzjA8HWhJ4U6kCpzxozUSnB+yvAYDRPY6mRpgQ==" - }, - "cardinal": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", - "integrity": "sha1-fMEFXYItISlU0HsIXeolHMe8VQU=", - "dev": true, - "requires": { - "ansicolors": "~0.3.2", - "redeyed": "~2.1.0" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "cashaddrjs": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.2.9.tgz", - "integrity": "sha512-DhJF4iAH0/RM3UjHDHKRxzs09YGL9px+oTyizzydanhC7jTyM2aJ+aLKA96vZGTTWayvvr2iDF2l13lpqXiRFg==", - "requires": { - "big-integer": "^1.6.34" - } - }, - "chai": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", - "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", - "dev": true, - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.0", - "type-detect": "^4.0.5" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true - }, - "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", - "optional": true, - "requires": { - "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": { - "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", - "optional": true, - "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" - } - }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "optional": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "optional": true - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "optional": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "optional": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "optional": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "optional": true, - "requires": { - "is-glob": "^2.0.0" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "optional": true, - "requires": { - "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" - } - } - } - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==" - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "clean-stack": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.1.0.tgz", - "integrity": "sha512-uQWrpRm+iZZUCAp7ZZJQbd4Za9I3AjR/3YTjmcnAtkauaIm/T5CT6U8zVI6e60T6OANqBFAzuR9/HB3NzuZCRA==", - "dev": true - }, - "clear": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clear/-/clear-0.0.1.tgz", - "integrity": "sha1-5RhuIp2ZRIF5wTAxG2+dML/2sLo=" - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-table": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", - "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", - "dev": true, - "requires": { - "colors": "1.0.3" - } - }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "coininfo": { - "version": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", - "from": "github:Bitcoin-com/coininfo", - "requires": { - "safe-buffer": "^5.1.1" - } - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", - "dev": true - }, - "combine-source-map": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", - "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", - "requires": { - "convert-source-map": "~1.1.0", - "inline-source-map": "~0.6.0", - "lodash.memoize": "~3.0.3", - "source-map": "~0.5.3" - }, - "dependencies": { - "convert-source-map": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", - "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=" - } - } - }, - "combined-stream": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", - "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==" - }, - "compare-func": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz", - "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=", - "dev": true, - "requires": { - "array-ify": "^1.0.0", - "dot-prop": "^3.0.0" - } - }, - "component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "requires": { - "date-now": "^0.1.4" - } - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" - }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=" - }, - "conventional-changelog-angular": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.3.tgz", - "integrity": "sha512-YD1xzH7r9yXQte/HF9JBuEDfvjxxwDGGwZU1+ndanbY0oFgA+Po1T9JDSpPLdP0pZT6MhCAsdvFKC4TJ4MTJTA==", - "dev": true, - "requires": { - "compare-func": "^1.3.1", - "q": "^1.5.1" - } - }, - "conventional-changelog-writer": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.3.tgz", - "integrity": "sha512-bIlpSiQtQZ1+nDVHEEh798Erj2jhN/wEjyw9sfxY9es6h7pREE5BNJjfv0hXGH/FTrAsEpHUq4xzK99eePpwuA==", - "dev": true, - "requires": { - "compare-func": "^1.3.1", - "conventional-commits-filter": "^2.0.1", - "dateformat": "^3.0.0", - "handlebars": "^4.1.0", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.2.1", - "meow": "^4.0.0", - "semver": "^5.5.0", - "split": "^1.0.0", - "through2": "^2.0.0" - } - }, - "conventional-commits-filter": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.1.tgz", - "integrity": "sha512-92OU8pz/977udhBjgPEbg3sbYzIxMDFTlQT97w7KdhR9igNqdJvy8smmedAAgn4tPiqseFloKkrVfbXCVd+E7A==", - "dev": true, - "requires": { - "is-subset": "^0.1.1", - "modify-values": "^1.0.0" - } - }, - "conventional-commits-parser": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.0.1.tgz", - "integrity": "sha512-P6U5UOvDeidUJ8ebHVDIoXzI7gMlQ1OF/id6oUvp8cnZvOXMt1n8nYl74Ey9YMn0uVQtxmCtjPQawpsssBWtGg==", - "dev": true, - "requires": { - "JSONStream": "^1.0.4", - "is-text-path": "^1.0.0", - "lodash": "^4.2.1", - "meow": "^4.0.0", - "split2": "^2.0.0", - "through2": "^2.0.0", - "trim-off-newlines": "^1.0.0" - } - }, - "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "core-js": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz", - "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cosmiconfig": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.0.tgz", - "integrity": "sha512-nxt+Nfc3JAqf4WIWd0jXLjTJZmsPLrA9DDc4nRw2KFJQJK7DNooqSXrNI7tzLG50CF8axczly5UV929tBmh/7g==", - "dev": true, - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.0", - "parse-json": "^4.0.0" - }, - "dependencies": { - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dev": true, - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } - } - }, - "coveralls": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.0.3.tgz", - "integrity": "sha512-viNfeGlda2zJr8Gj1zqXpDMRjw9uM54p7wzZdvLRyOgnAfCe974Dq4veZkjJdxQXbmdppu6flEajFYseHYaUhg==", - "dev": true, - "requires": { - "growl": "~> 1.10.0", - "js-yaml": "^3.11.0", - "lcov-parse": "^0.0.10", - "log-driver": "^1.2.7", - "minimist": "^1.2.0", - "request": "^2.86.0" - } - }, - "cp-file": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-5.0.0.tgz", - "integrity": "sha1-vHAP0wyjLSTUbH+wK5kuQ1/FqXg=", - "requires": { - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "nested-error-stacks": "^2.0.0", - "pify": "^3.0.0", - "safe-buffer": "^5.0.1" - } - }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "^1.0.1" - } - }, - "dash-ast": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", - "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==" - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=" - }, - "dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "debug-log": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", - "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=" - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "dev": true, - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - } - } - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "dev": true, - "requires": { - "type-detect": "^4.0.0" - } - }, - "deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" - }, - "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==", - "dev": true - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" - }, - "deepmerge": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.2.0.tgz", - "integrity": "sha512-6+LuZGU7QCNUnAJyX8cIrlzoEgggTM6B7mm+znKOX4t5ltluT9KLjN6g61ECMS0LTsLW7yDpNoxhix5FZcrIow==", - "dev": true - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" - }, - "deglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.1.tgz", - "integrity": "sha512-2kjwuGGonL7gWE1XU4Fv79+vVzpoQCl0V+boMwWtOQJV2AGDabCwez++nB1Nli/8BabAfZQ/UuHPlp6AymKdWw==", - "requires": { - "find-root": "^1.0.0", - "glob": "^7.0.5", - "ignore": "^3.0.9", - "pkg-config": "^1.1.0", - "run-parallel": "^1.1.2", - "uniq": "^1.0.1" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "deprecation": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-1.0.1.tgz", - "integrity": "sha512-ccVHpE72+tcIKaGMql33x5MAjKQIZrk+3x2GbJ7TeraUCZWHoT+KSZpoC+JQFsUBlSTXUrBaGiF0j6zVTepPLg==", - "dev": true - }, - "deps-sort": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz", - "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=", - "requires": { - "JSONStream": "^1.0.3", - "shasum": "^1.0.0", - "subarg": "^1.0.0", - "through2": "^2.0.0" - } - }, - "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "requires": { - "repeating": "^2.0.0" - } - }, - "detective": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", - "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", - "requires": { - "acorn-node": "^1.6.1", - "defined": "^1.0.0", - "minimist": "^1.1.1" - } - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "dijkstrajs": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.1.tgz", - "integrity": "sha1-082BIh4+pAdCz83lVtTpnpjdxxs=" - }, - "dir-glob": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", - "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", - "dev": true, - "requires": { - "path-type": "^3.0.0" - }, - "dependencies": { - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - } - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "requires": { - "esutils": "^2.0.2" - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" - }, - "dot-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", - "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=", - "dev": true, - "requires": { - "is-obj": "^1.0.0" - } - }, - "drbg.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", - "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", - "requires": { - "browserify-aes": "^1.0.6", - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4" - } - }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "requires": { - "readable-stream": "^2.0.2" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ecurve": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/ecurve/-/ecurve-1.0.6.tgz", - "integrity": "sha512-/BzEjNfiSuB7jIWKcS/z8FK9jNjmEWvUV2YZ4RLSmcDtP7Lq0m6FvDuSnJpBlDpGRpfRQeTLGLBI8H+kEv0r+w==", - "requires": { - "bigi": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "electron-to-chromium": { - "version": "1.3.131", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.131.tgz", - "integrity": "sha512-NSO4jLeyGLWrT4mzzfYX8vt1MYCoMI5LxSYAjt0H9+LF/14JyiKJSyyjA6AJTxflZlEM5v3QU33F0ohbPMCAPg==" - }, - "elliptic": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", - "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "requires": { - "once": "^1.4.0" - } - }, - "engine.io": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.3.2.tgz", - "integrity": "sha512-AsaA9KG7cWPXWHp5FvHdDWY3AMWeZ8x+2pUVLcn71qE5AtAzgGbxuclOytygskw8XGmiQafTmnI9Bix3uihu2w==", - "requires": { - "accepts": "~1.3.4", - "base64id": "1.0.0", - "cookie": "0.3.1", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.0", - "ws": "~6.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "engine.io-client": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.3.2.tgz", - "integrity": "sha512-y0CPINnhMvPuwtqXfsGuWE8BB66+B6wTtCofQDRecMQPYX3MYUZXFNKDhdrSe3EVjgOu4V3rxdeqN/Tr91IgbQ==", - "requires": { - "component-emitter": "1.2.1", - "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.1", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "ws": "~6.1.0", - "xmlhttprequest-ssl": "~1.5.4", - "yeast": "0.1.2" - }, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "engine.io-parser": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz", - "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", - "requires": { - "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.5", - "blob": "0.0.5", - "has-binary2": "~1.0.2" - } - }, - "env-ci": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-3.2.0.tgz", - "integrity": "sha512-TFjNiDlXrL8/pfHswdvJGEZzJcq3aBPb8Eka83hlGLwuNw9F9BC9S9ETlkfkItLRT9k5JgpGgeP+rL6/3cEbcw==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "java-properties": "^0.2.9" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", - "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", - "requires": { - "es-to-primitive": "^1.2.0", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-keys": "^1.0.12" - } - }, - "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es6-promise": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.6.tgz", - "integrity": "sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q==", - "dev": true - }, - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "dev": true, - "requires": { - "es6-promise": "^4.0.3" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "eslint": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", - "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.9.1", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^4.0.3", - "eslint-utils": "^1.3.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^5.0.1", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.7.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "inquirer": "^6.2.2", - "js-yaml": "^3.13.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.11", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^5.5.1", - "strip-ansi": "^4.0.0", - "strip-json-comments": "^2.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0" - }, - "dependencies": { - "ajv": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "eslint-config-prettier": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-3.6.0.tgz", - "integrity": "sha512-ixJ4U3uTLXwJts4rmSVW/lMXjlGwCijhBJHk8iVqKKSifeI0qgFEfWl8L63isfc8Od7EiBALF6BX3jKLluf/jQ==", - "dev": true, - "requires": { - "get-stdin": "^6.0.0" - } - }, - "eslint-config-standard": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-11.0.0.tgz", - "integrity": "sha512-oDdENzpViEe5fwuRCWla7AXQd++/oyIp8zP+iP9jiUPG6NBj3SHgdgtl/kTn00AjeN+1HNvavTKmYbMo+xMOlw==" - }, - "eslint-config-standard-jsx": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-5.0.0.tgz", - "integrity": "sha512-rLToPAEqLMPBfWnYTu6xRhm2OWziS2n40QFqJ8jAM8NSVzeVKTa3nclhsU4DpPJQRY60F34Oo1wi/71PN/eITg==" - }, - "eslint-import-resolver-node": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", - "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", - "requires": { - "debug": "^2.6.9", - "resolve": "^1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "eslint-module-utils": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz", - "integrity": "sha512-14tltLm38Eu3zS+mt0KvILC3q8jyIAH518MlG+HO0p+yK885Lb1UHTY/UgR91eOyGdmxAPb+OLoW4znqIT6Ndw==", - "requires": { - "debug": "^2.6.8", - "pkg-dir": "^2.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "eslint-plugin-es": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-1.4.0.tgz", - "integrity": "sha512-XfFmgFdIUDgvaRAlaXUkxrRg5JSADoRC8IkKLc/cISeR3yHVMefFHQZpcyXXEUUPHfy5DwviBcrfqlyqEwlQVw==", - "dev": true, - "requires": { - "eslint-utils": "^1.3.0", - "regexpp": "^2.0.1" - } - }, - "eslint-plugin-import": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz", - "integrity": "sha1-JgAu+/ylmJtyiKwEdQi9JPIXsWk=", - "requires": { - "builtin-modules": "^1.1.1", - "contains-path": "^0.1.0", - "debug": "^2.6.8", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.1", - "eslint-module-utils": "^2.1.1", - "has": "^1.0.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.3", - "read-pkg-up": "^2.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "^1.2.0" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "requires": { - "pify": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } - } - } - }, - "eslint-plugin-node": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-7.0.1.tgz", - "integrity": "sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw==", - "dev": true, - "requires": { - "eslint-plugin-es": "^1.3.1", - "eslint-utils": "^1.3.1", - "ignore": "^4.0.2", - "minimatch": "^3.0.4", - "resolve": "^1.8.1", - "semver": "^5.5.0" - }, - "dependencies": { - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - } - } - }, - "eslint-plugin-prettier": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-2.7.0.tgz", - "integrity": "sha512-CStQYJgALoQBw3FsBzH0VOVDRnJ/ZimUlpLm226U8qgqYJfPOY/CPK6wyRInMxh73HSKg5wyRwdS4BVYYHwokA==", - "dev": true, - "requires": { - "fast-diff": "^1.1.1", - "jest-docblock": "^21.0.0" - } - }, - "eslint-plugin-promise": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.7.0.tgz", - "integrity": "sha512-2WO+ZFh7vxUKRfR0cOIMrWgYKdR6S1AlOezw6pC52B6oYpd5WFghN+QHxvrRdZMtbo8h3dfUZ2o1rWb0UPbKtg==" - }, - "eslint-plugin-react": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz", - "integrity": "sha512-KC7Snr4YsWZD5flu6A5c0AcIZidzW3Exbqp7OT67OaD2AppJtlBr/GuPrW/vaQM/yfZotEvKAdrxrO+v8vwYJA==", - "requires": { - "doctrine": "^2.0.2", - "has": "^1.0.1", - "jsx-ast-utils": "^2.0.1", - "prop-types": "^15.6.0" - } - }, - "eslint-plugin-standard": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz", - "integrity": "sha1-NNDJFbRe3G8BA5PH7vOCOwhWXPI=" - }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz", - "integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==", - "dev": true - }, - "eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==" - }, - "espree": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", - "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", - "dev": true, - "requires": { - "acorn": "^6.0.7", - "acorn-jsx": "^5.0.0", - "eslint-visitor-keys": "^1.0.0" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", - "requires": { - "estraverse": "^4.0.0" - } - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "requires": { - "estraverse": "^4.1.0" - } - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" - }, - "events": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", - "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==" - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.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" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "^3.0.0" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "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": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "optional": true, - "requires": { - "fill-range": "^2.1.0" - }, - "dependencies": { - "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", - "optional": true, - "requires": { - "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": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "optional": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "optional": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "external-editor": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz", - "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "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" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "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-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true - }, - "fast-glob": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.6.tgz", - "integrity": "sha512-0BvMaZc1k9F+MeWWMe8pL6YltFzZYcJsYU7D4JyDA6PAczaXvxqQQ/z+mDF7/4Mw01DeUc+i3CTKajnkANkV4w==", - "dev": true, - "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" - }, - "dependencies": { - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - } - } - }, - "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=" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "figlet": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.2.1.tgz", - "integrity": "sha512-qc8gycfnnfOmfvPl7Fi3JeTbcvdmbZkckyUVGGAM02je7Ookvu+bBfKy1I4FKqTsQHCs3ARJ76ip/k98r+OQuQ==" - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "dev": true, - "requires": { - "flat-cache": "^2.0.1" - } - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "optional": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "find-versions": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.1.0.tgz", - "integrity": "sha512-NCTfNiVzeE/xL+roNDffGuRbrWI6atI18lTJ22vKp7rs2OhYzMK3W1dIdO2TUndH/QMcacM4d1uWwgcZcHK69Q==", - "dev": true, - "requires": { - "array-uniq": "^2.1.0", - "semver-regex": "^2.0.0" - }, - "dependencies": { - "array-uniq": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-2.1.0.tgz", - "integrity": "sha512-bdHxtev7FN6+MXI1YFW0Q8mQ8dTJc2S8AMfju+ZR77pbg2yAdVyDlwkaUI7Har0LyOMRFPHrJ9lYdyjZZswdlQ==", - "dev": true - } - } - }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, - "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - } - }, - "flatted": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.0.tgz", - "integrity": "sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg==", - "dev": true - }, - "follow-redirects": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz", - "integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==", - "requires": { - "debug": "^3.2.6" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "requires": { - "is-callable": "^1.1.3" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", - "optional": true, - "requires": { - "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.1", - "bundled": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "debug": { - "version": "4.1.1", - "bundled": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "optional": true, - "requires": { - "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.3", - "bundled": true, - "optional": true, - "requires": { - "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": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true - }, - "minipass": { - "version": "2.3.5", - "bundled": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.2.1", - "bundled": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.1.1", - "bundled": true, - "optional": true - }, - "needle": { - "version": "2.3.0", - "bundled": true, - "optional": true, - "requires": { - "debug": "^4.1.0", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.12.0", - "bundled": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.6", - "bundled": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.1", - "bundled": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": 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": { - "version": "1.0.1", - "bundled": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "optional": true, - "requires": { - "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.3", - "bundled": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "optional": true - }, - "semver": { - "version": "5.7.0", - "bundled": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "tar": { - "version": "4.4.8", - "bundled": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true - }, - "yallist": { - "version": "3.0.3", - "bundled": true - } - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" - }, - "get-assigned-identifiers": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", - "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==" - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" - }, - "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "dev": true - }, - "get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==" - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "git-clone": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/git-clone/-/git-clone-0.1.0.tgz", - "integrity": "sha1-DXYWN3gJOu9/HDAjjyqe8/B6Lrk=" - }, - "git-log-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.0.tgz", - "integrity": "sha1-LmpMGxP8AAKCB7p5WnrDFme5/Uo=", - "dev": true, - "requires": { - "argv-formatter": "~1.0.0", - "spawn-error-forwarder": "~1.0.0", - "split2": "~1.0.0", - "stream-combiner2": "~1.1.1", - "through2": "~2.0.0", - "traverse": "~0.6.6" - }, - "dependencies": { - "split2": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-1.0.0.tgz", - "integrity": "sha1-UuLiIdiMdfmnP5BVbiY/+WdysxQ=", - "dev": true, - "requires": { - "through2": "~2.0.0" - } - } - } - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "requires": { - "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": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "optional": true, - "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" - }, - "dependencies": { - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "optional": true, - "requires": { - "is-glob": "^2.0.0" - } - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", - "dev": true - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - }, - "globby": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", - "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "array-union": "^1.0.2", - "dir-glob": "^2.2.2", - "fast-glob": "^2.2.6", - "glob": "^7.1.3", - "ignore": "^4.0.3", - "pify": "^4.0.1", - "slash": "^2.0.0" - }, - "dependencies": { - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true - } - } - }, - "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, - "handlebars": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz", - "integrity": "sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==", - "dev": true, - "requires": { - "neo-async": "^2.6.0", - "optimist": "^0.6.1", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4" - }, - "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 - } - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "dev": true, - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - }, - "dependencies": { - "ajv": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - } - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", - "requires": { - "isarray": "2.0.1" - }, - "dependencies": { - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - } - } - }, - "has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", - "dev": true - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" - } - }, - "hook-std": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/hook-std/-/hook-std-1.2.0.tgz", - "integrity": "sha512-yntre2dbOAjgQ5yoRykyON0D9T96BfshR8IuiL/r3celeHD8I/76w4qo8m3z99houR4Z678jakV3uXrQdSvW/w==", - "dev": true - }, - "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" - }, - "htmlescape": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", - "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=" - }, - "http-proxy-agent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", - "dev": true, - "requires": { - "agent-base": "4", - "debug": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" - }, - "https-proxy-agent": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", - "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", - "dev": true, - "requires": { - "agent-base": "^4.1.0", - "debug": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" - }, - "import-fresh": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.0.0.tgz", - "integrity": "sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "import-from": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "dev": true, - "requires": { - "resolve-from": "^3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" - }, - "inline-source-map": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", - "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", - "requires": { - "source-map": "~0.5.3" - } - }, - "inquirer": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.3.1.tgz", - "integrity": "sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA==", - "dev": true, - "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.11", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "insert-module-globals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.0.tgz", - "integrity": "sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw==", - "requires": { - "JSONStream": "^1.0.3", - "acorn-node": "^1.5.2", - "combine-source-map": "^0.8.0", - "concat-stream": "^1.6.1", - "is-buffer": "^1.1.0", - "path-is-absolute": "^1.0.1", - "process": "~0.11.0", - "through2": "^2.0.0", - "undeclared-identifiers": "^1.1.2", - "xtend": "^4.0.0" - } - }, - "into-stream": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-4.0.0.tgz", - "integrity": "sha512-i29KNyE5r0Y/UQzcQ0IbZO1MYJ53Jn0EcFRZPj5FzWKYH17kDFEOwuA+3jroymOI06SW1dEDnly9A1CAreC5dg==", - "dev": true, - "requires": { - "from2": "^2.1.1", - "p-is-promise": "^2.0.0" - } - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "optional": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true - }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "optional": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "optional": true, - "requires": { - "is-primitive": "^2.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" - }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "requires": { - "is-extglob": "^1.0.0" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "^3.0.1" - } - }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "optional": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "optional": true - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" - }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "requires": { - "has": "^1.0.1" - } - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-subset": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", - "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=", - "dev": true - }, - "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", - "requires": { - "has-symbols": "^1.0.0" - } - }, - "is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", - "dev": true, - "requires": { - "text-extensions": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "issue-parser": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-3.0.1.tgz", - "integrity": "sha512-5wdT3EE8Kq38x/hJD8QZCJ9scGoOZ5QnzwXyClkviSWTS+xOCE6hJ0qco3H5n5jCsFqpbofZCcMWqlXJzF72VQ==", - "dev": true, - "requires": { - "lodash.capitalize": "^4.2.1", - "lodash.escaperegexp": "^4.1.2", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.uniqby": "^4.7.0" - } - }, - "istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==" - }, - "istanbul-lib-instrument": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", - "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", - "requires": { - "@babel/generator": "^7.4.0", - "@babel/parser": "^7.4.3", - "@babel/template": "^7.4.0", - "@babel/traverse": "^7.4.3", - "@babel/types": "^7.4.0", - "istanbul-lib-coverage": "^2.0.5", - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.0.0.tgz", - "integrity": "sha512-0UewU+9rFapKFnlbirLi3byoOuhrSsli/z/ihNnvM24vgF+8sNBiI1LZPBSH9wJKUwaUbw+s3hToDLCXkrghrQ==" - } - } - }, - "java-properties": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-0.2.10.tgz", - "integrity": "sha512-CpKJh9VRNhS+XqZtg1UMejETGEiqwCGDC/uwPEEQwc2nfdbSm73SIE29TplG2gLYuBOOTNDqxzG6A9NtEPLt0w==", - "dev": true - }, - "jest-docblock": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz", - "integrity": "sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw==", - "dev": true - }, - "js-sha256": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", - "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "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": "0.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", - "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", - "requires": { - "jsonify": "~0.0.0" - } - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "jsx-ast-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.1.0.tgz", - "integrity": "sha512-yDGDG2DS4JcqhA6blsuYbtsT09xL8AoLuUR2Gb5exrw7UEM19sBcOTq+YBBhrNbl0PUC4R4LnFu+dHg2HKeVvA==", - "requires": { - "array-includes": "^3.0.3" - } - }, - "just-extend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.0.2.tgz", - "integrity": "sha512-FrLwOgm+iXrPV+5zDU6Jqu4gCRXbWEQg2O3SKONsWE4w7AXFRkryS53bpWdaL9cNol+AmR3AEYz6kn+o0fCPnw==", - "dev": true - }, - "keccak": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", - "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", - "requires": { - "bindings": "^1.2.1", - "inherits": "^2.0.3", - "nan": "^2.2.1", - "safe-buffer": "^5.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - }, - "labeled-stream-splicer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.1.tgz", - "integrity": "sha512-MC94mHZRvJ3LfykJlTUipBqenZz1pacOZEMhhQ8dMGcDHs0SBE5GbsavUXV7YtP3icBW17W0Zy1I0lfASmo9Pg==", - "requires": { - "inherits": "^2.0.1", - "isarray": "^2.0.4", - "stream-splicer": "^2.0.0" - }, - "dependencies": { - "isarray": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.4.tgz", - "integrity": "sha512-GMxXOiUirWg1xTKRipM0Ek07rX+ubx4nNVElTJdNLYmNO/2YrDkgJGw9CljXn+r4EWiDQg/8lsRdHyg2PJuUaA==" - } - } - }, - "lcov-parse": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz", - "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=", - "dev": true - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" - }, - "lodash.capitalize": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz", - "integrity": "sha1-+CbJtOKoUR2E46yinbBeGk87cqk=", - "dev": true - }, - "lodash.escaperegexp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", - "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=", - "dev": true - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", - "dev": true - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", - "dev": true - }, - "lodash.memoize": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", - "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=" - }, - "lodash.set": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", - "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", - "dev": true - }, - "lodash.toarray": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", - "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=" - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, - "lodash.uniqby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", - "integrity": "sha1-2ZwHpmnp5tJOE2Lf4mbGdhavEwI=", - "dev": true - }, - "log-driver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", - "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", - "dev": true - }, - "lolex": { - "version": "2.7.5", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.7.5.tgz", - "integrity": "sha512-l9x0+1offnKKIzYVjyXU2SiwhXDLekRzKyhnbyldPHvC7BvLPVpdNUNR2KeMAiCN2D/kLNttZgQD5WjSxuBx3Q==", - "dev": true - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - }, - "dependencies": { - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - } - } - }, - "macos-release": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.2.0.tgz", - "integrity": "sha512-iV2IDxZaX8dIcM7fG6cI46uNmHUxHE4yN+Z8tKHAW1TBPMZDIKHf/3L+YnOuj/FK9il14UaVdHmiQ1tsi90ltA==", - "dev": true - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "requires": { - "pify": "^3.0.0" - } - }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "requires": { - "p-defer": "^1.0.0" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } - }, - "marked": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.6.2.tgz", - "integrity": "sha512-LqxwVH3P/rqKX4EKGz7+c2G9r98WeM/SW34ybhgNGhUQNKtf1GmmSkJ6cDGJ/t6tiyae49qRkpyTw2B9HOrgUA==", - "dev": true - }, - "marked-terminal": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-3.2.0.tgz", - "integrity": "sha512-Yr1yVS0BbDG55vx7be1D0mdv+jGs9AW563o/Tt/7FTsId2J0yqhrTeXAqq/Q0DyyXltIn6CSxzesQuFqXgafjQ==", - "dev": true, - "requires": { - "ansi-escapes": "^3.1.0", - "cardinal": "^2.1.1", - "chalk": "^2.4.1", - "cli-table": "^0.3.1", - "node-emoji": "^1.4.1", - "supports-hyperlinks": "^1.0.1" - } - }, - "math-random": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", - "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", - "optional": true - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - }, - "dependencies": { - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - } - } - }, - "meow": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", - "dev": true, - "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist": "^1.1.3", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - } - } - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "merge2": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz", - "integrity": "sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==", - "dev": true - }, - "merkle-lib": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/merkle-lib/-/merkle-lib-2.0.10.tgz", - "integrity": "sha1-grjbrnXieneFOItz+ddyXQ9vMyY=" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" - }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", - "requires": { - "mime-db": "1.40.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "minimist-options": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", - "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0" - } - }, - "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - } - } - }, - "mocha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", - "dev": true, - "requires": { - "browser-stdout": "1.3.1", - "commander": "2.15.1", - "debug": "3.1.0", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", - "growl": "1.10.5", - "he": "1.1.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "supports-color": "5.4.0" - }, - "dependencies": { - "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.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.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "modify-values": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", - "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", - "dev": true - }, - "module-deps": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.0.tgz", - "integrity": "sha512-hKPmO06so6bL/ZvqVNVqdTVO8UAYsi3tQWlCa+z9KuWhoN4KDQtb5hcqQQv58qYiDE21wIvnttZEPiDgEbpwbA==", - "requires": { - "JSONStream": "^1.0.3", - "browser-resolve": "^1.7.0", - "cached-path-relative": "^1.0.0", - "concat-stream": "~1.6.0", - "defined": "^1.0.0", - "detective": "^5.0.2", - "duplexer2": "^0.1.2", - "inherits": "^2.0.1", - "parents": "^1.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.4.0", - "stream-combiner2": "^1.1.1", - "subarg": "^1.0.0", - "through2": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" - }, - "nan": { - "version": "2.13.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", - "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==" - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "neo-async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", - "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", - "dev": true - }, - "nerf-dart": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/nerf-dart/-/nerf-dart-1.0.0.tgz", - "integrity": "sha1-5tq3/r9a2Bbqgc9cYpxaDr3nLBo=", - "dev": true - }, - "nested-error-stacks": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", - "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "nise": { - "version": "1.4.10", - "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.10.tgz", - "integrity": "sha512-sa0RRbj53dovjc7wombHmVli9ZihXbXCQ2uH3TNm03DyvOSIQbxg+pbqDKrk2oxMK1rtLGVlKxcB9rrc6X5YjA==", - "dev": true, - "requires": { - "@sinonjs/formatio": "^3.1.0", - "@sinonjs/text-encoding": "^0.7.1", - "just-extend": "^4.0.2", - "lolex": "^2.3.2", - "path-to-regexp": "^1.7.0" - }, - "dependencies": { - "@sinonjs/formatio": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.2.1.tgz", - "integrity": "sha512-tsHvOB24rvyvV2+zKMmPkZ7dXX6LSLKZ7aOtXY6Edklp0uRcgGpOsQTTGTcWViFyx4uhWc6GV8QdnALbIbIdeQ==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1", - "@sinonjs/samsam": "^3.1.0" - } - } - } - }, - "nock": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/nock/-/nock-10.0.6.tgz", - "integrity": "sha512-b47OWj1qf/LqSQYnmokNWM8D88KvUl2y7jT0567NB3ZBAZFz2bWp2PC81Xn7u8F2/vJxzkzNZybnemeFa7AZ2w==", - "dev": true, - "requires": { - "chai": "^4.1.2", - "debug": "^4.1.0", - "deep-equal": "^1.0.0", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.5", - "mkdirp": "^0.5.0", - "propagate": "^1.0.0", - "qs": "^6.5.1", - "semver": "^5.5.0" - } - }, - "node-cmd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/node-cmd/-/node-cmd-3.0.0.tgz", - "integrity": "sha1-OP/3CkqqT2WdID61eGJzcBjiT28=" - }, - "node-emoji": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz", - "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==", - "requires": { - "lodash.toarray": "^4.4.0" - } - }, - "node-fetch": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.5.0.tgz", - "integrity": "sha512-YuZKluhWGJwCcUu4RlZstdAxr8bFfOVHakc1mplwHkk8J+tqM1Y5yraYvIUpeX8aY7+crCwiELJq7Vl0o0LWXw==", - "dev": true - }, - "node-mocks-http": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/node-mocks-http/-/node-mocks-http-1.7.5.tgz", - "integrity": "sha512-YRT95Y4FLoLTJGLZhZxZOsq6KuU4ykc5ChdbmLRzuYuFtdsI+nmLLrqn6gzZsk5nxiyx8DOnS+YgwMKGWY/uYw==", - "dev": true, - "requires": { - "accepts": "^1.3.5", - "depd": "^1.1.0", - "fresh": "^0.5.2", - "merge-descriptors": "^1.0.1", - "methods": "^1.1.2", - "mime": "^1.3.4", - "parseurl": "^1.3.1", - "range-parser": "^1.2.0", - "type-is": "^1.6.16" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "normalize-url": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.3.0.tgz", - "integrity": "sha512-0NLtR71o4k6GLP+mr6Ty34c5GA6CMoEsncKJxvQd8NzPxaHRJNnb5gZE8R1XF4CPIS7QPHLJ74IFszwtNVAHVQ==", - "dev": true - }, - "npm": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/npm/-/npm-6.5.0.tgz", - "integrity": "sha512-SPq8zG2Kto+Xrq55E97O14Jla13PmQT5kSnvwBj88BmJZ5Nvw++OmlWfhjkB67pcgP5UEXljEtnGFKZtOgt6MQ==", - "dev": true, - "requires": { - "JSONStream": "^1.3.4", - "abbrev": "~1.1.1", - "ansicolors": "~0.3.2", - "ansistyles": "~0.1.3", - "aproba": "~1.2.0", - "archy": "~1.0.0", - "bin-links": "^1.1.2", - "bluebird": "^3.5.3", - "byte-size": "^4.0.3", - "cacache": "^11.2.0", - "call-limit": "~1.1.0", - "chownr": "~1.0.1", - "ci-info": "^1.6.0", - "cli-columns": "^3.1.2", - "cli-table3": "^0.5.0", - "cmd-shim": "~2.0.2", - "columnify": "~1.5.4", - "config-chain": "^1.1.12", - "debuglog": "*", - "detect-indent": "~5.0.0", - "detect-newline": "^2.1.0", - "dezalgo": "~1.0.3", - "editor": "~1.0.0", - "figgy-pudding": "^3.5.1", - "find-npm-prefix": "^1.0.2", - "fs-vacuum": "~1.2.10", - "fs-write-stream-atomic": "~1.0.10", - "gentle-fs": "^2.0.1", - "glob": "^7.1.3", - "graceful-fs": "^4.1.15", - "has-unicode": "~2.0.1", - "hosted-git-info": "^2.7.1", - "iferr": "^1.0.2", - "imurmurhash": "*", - "inflight": "~1.0.6", - "inherits": "~2.0.3", - "ini": "^1.3.5", - "init-package-json": "^1.10.3", - "is-cidr": "^2.0.6", - "json-parse-better-errors": "^1.0.2", - "lazy-property": "~1.0.0", - "libcipm": "^2.0.2", - "libnpmhook": "^4.0.1", - "libnpx": "^10.2.0", - "lock-verify": "^2.0.2", - "lockfile": "^1.0.4", - "lodash._baseindexof": "*", - "lodash._baseuniq": "~4.6.0", - "lodash._bindcallback": "*", - "lodash._cacheindexof": "*", - "lodash._createcache": "*", - "lodash._getnative": "*", - "lodash.clonedeep": "~4.5.0", - "lodash.restparam": "*", - "lodash.union": "~4.6.0", - "lodash.uniq": "~4.5.0", - "lodash.without": "~4.4.0", - "lru-cache": "^4.1.3", - "meant": "~1.0.1", - "mississippi": "^3.0.0", - "mkdirp": "~0.5.1", - "move-concurrently": "^1.0.1", - "node-gyp": "^3.8.0", - "nopt": "~4.0.1", - "normalize-package-data": "~2.4.0", - "npm-audit-report": "^1.3.1", - "npm-cache-filename": "~1.0.2", - "npm-install-checks": "~3.0.0", - "npm-lifecycle": "^2.1.0", - "npm-package-arg": "^6.1.0", - "npm-packlist": "^1.1.12", - "npm-pick-manifest": "^2.1.0", - "npm-profile": "^3.0.2", - "npm-registry-client": "^8.6.0", - "npm-registry-fetch": "^1.1.0", - "npm-user-validate": "~1.0.0", - "npmlog": "~4.1.2", - "once": "~1.4.0", - "opener": "^1.5.1", - "osenv": "^0.1.5", - "pacote": "^8.1.6", - "path-is-inside": "~1.0.2", - "promise-inflight": "~1.0.1", - "qrcode-terminal": "^0.12.0", - "query-string": "^6.1.0", - "qw": "~1.0.1", - "read": "~1.0.7", - "read-cmd-shim": "~1.0.1", - "read-installed": "~4.0.3", - "read-package-json": "^2.0.13", - "read-package-tree": "^5.2.1", - "readable-stream": "^2.3.6", - "readdir-scoped-modules": "*", - "request": "^2.88.0", - "retry": "^0.12.0", - "rimraf": "~2.6.2", - "safe-buffer": "^5.1.2", - "semver": "^5.5.1", - "sha": "~2.0.1", - "slide": "~1.1.6", - "sorted-object": "~2.0.1", - "sorted-union-stream": "~2.1.3", - "ssri": "^6.0.1", - "stringify-package": "^1.0.0", - "tar": "^4.4.8", - "text-table": "~0.2.0", - "tiny-relative-date": "^1.3.0", - "uid-number": "0.0.6", - "umask": "~1.1.0", - "unique-filename": "~1.1.0", - "unpipe": "~1.0.0", - "update-notifier": "^2.5.0", - "uuid": "^3.3.2", - "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "~3.0.0", - "which": "^1.3.1", - "worker-farm": "^1.6.0", - "write-file-atomic": "^2.3.0" - }, - "dependencies": { - "JSONStream": { - "version": "1.3.4", - "bundled": true, - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true - }, - "agent-base": { - "version": "4.2.0", - "bundled": true, - "dev": true, - "requires": { - "es6-promisify": "^5.0.0" - } - }, - "agentkeepalive": { - "version": "3.4.1", - "bundled": true, - "dev": true, - "requires": { - "humanize-ms": "^1.2.1" - } - }, - "ajv": { - "version": "5.5.2", - "bundled": true, - "dev": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "ansi-align": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^2.0.0" - } - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "bundled": true, - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "ansicolors": { - "version": "0.3.2", - "bundled": true, - "dev": true - }, - "ansistyles": { - "version": "0.1.3", - "bundled": true, - "dev": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true - }, - "archy": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "bundled": true, - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "asap": { - "version": "2.0.6", - "bundled": true, - "dev": true - }, - "asn1": { - "version": "0.2.4", - "bundled": true, - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "bundled": true, - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "bundled": true, - "dev": true - }, - "aws4": { - "version": "1.8.0", - "bundled": true, - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bin-links": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "requires": { - "bluebird": "^3.5.0", - "cmd-shim": "^2.0.2", - "gentle-fs": "^2.0.0", - "graceful-fs": "^4.1.11", - "write-file-atomic": "^2.3.0" - } - }, - "block-stream": { - "version": "0.0.9", - "bundled": true, - "dev": true, - "requires": { - "inherits": "~2.0.0" - } - }, - "bluebird": { - "version": "3.5.3", - "bundled": true, - "dev": true - }, - "boxen": { - "version": "1.3.0", - "bundled": true, - "dev": true, - "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "buffer-from": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "bundled": true, - "dev": true - }, - "builtins": { - "version": "1.0.3", - "bundled": true, - "dev": true - }, - "byline": { - "version": "5.0.0", - "bundled": true, - "dev": true - }, - "byte-size": { - "version": "4.0.3", - "bundled": true, - "dev": true - }, - "cacache": { - "version": "11.2.0", - "bundled": true, - "dev": true, - "requires": { - "bluebird": "^3.5.1", - "chownr": "^1.0.1", - "figgy-pudding": "^3.1.0", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "lru-cache": "^4.1.3", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", - "ssri": "^6.0.0", - "unique-filename": "^1.1.0", - "y18n": "^4.0.0" - } - }, - "call-limit": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "camelcase": { - "version": "4.1.0", - "bundled": true, - "dev": true - }, - "capture-stack-trace": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "caseless": { - "version": "0.12.0", - "bundled": true, - "dev": true - }, - "chalk": { - "version": "2.4.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chownr": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "ci-info": { - "version": "1.6.0", - "bundled": true, - "dev": true - }, - "cidr-regex": { - "version": "2.0.9", - "bundled": true, - "dev": true, - "requires": { - "ip-regex": "^2.1.0" - } - }, - "cli-boxes": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "cli-columns": { - "version": "3.1.2", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^2.0.0", - "strip-ansi": "^3.0.1" - } - }, - "cli-table3": { - "version": "0.5.0", - "bundled": true, - "dev": true, - "requires": { - "colors": "^1.1.2", - "object-assign": "^4.1.0", - "string-width": "^2.1.1" - } - }, - "cliui": { - "version": "4.1.0", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "clone": { - "version": "1.0.4", - "bundled": true, - "dev": true - }, - "cmd-shim": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "mkdirp": "~0.5.0" - } - }, - "co": { - "version": "4.6.0", - "bundled": true, - "dev": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "color-convert": { - "version": "1.9.1", - "bundled": true, - "dev": true, - "requires": { - "color-name": "^1.1.1" - } - }, - "color-name": { - "version": "1.1.3", - "bundled": true, - "dev": true - }, - "colors": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "columnify": { - "version": "1.5.4", - "bundled": true, - "dev": true, - "requires": { - "strip-ansi": "^3.0.0", - "wcwidth": "^1.0.0" - } - }, - "combined-stream": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "bundled": true, - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "config-chain": { - "version": "1.1.12", - "bundled": true, - "dev": true, - "requires": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "configstore": { - "version": "3.1.2", - "bundled": true, - "dev": true, - "requires": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" - } - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "copy-concurrently": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - }, - "dependencies": { - "iferr": { - "version": "0.1.5", - "bundled": true, - "dev": true - } - } - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "create-error-class": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "requires": { - "capture-stack-trace": "^1.0.0" - } - }, - "cross-spawn": { - "version": "5.1.0", - "bundled": true, - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "crypto-random-string": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "cyclist": { - "version": "0.2.2", - "bundled": true, - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "bundled": true, - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "debug": { - "version": "3.1.0", - "bundled": true, - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true - } - } - }, - "debuglog": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "decamelize": { - "version": "1.2.0", - "bundled": true, - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "bundled": true, - "dev": true - }, - "deep-extend": { - "version": "0.5.1", - "bundled": true, - "dev": true - }, - "defaults": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "requires": { - "clone": "^1.0.2" - } - }, - "delayed-stream": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "detect-indent": { - "version": "5.0.0", - "bundled": true, - "dev": true - }, - "detect-newline": { - "version": "2.1.0", - "bundled": true, - "dev": true - }, - "dezalgo": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "requires": { - "asap": "^2.0.0", - "wrappy": "1" - } - }, - "dot-prop": { - "version": "4.2.0", - "bundled": true, - "dev": true, - "requires": { - "is-obj": "^1.0.0" - } - }, - "dotenv": { - "version": "5.0.1", - "bundled": true, - "dev": true - }, - "duplexer3": { - "version": "0.1.4", - "bundled": true, - "dev": true - }, - "duplexify": { - "version": "3.6.0", - "bundled": true, - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "editor": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "encoding": { - "version": "0.1.12", - "bundled": true, - "dev": true, - "requires": { - "iconv-lite": "~0.4.13" - } - }, - "end-of-stream": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "err-code": { - "version": "1.1.2", - "bundled": true, - "dev": true - }, - "errno": { - "version": "0.1.7", - "bundled": true, - "dev": true, - "requires": { - "prr": "~1.0.1" - } - }, - "es6-promise": { - "version": "4.2.4", - "bundled": true, - "dev": true - }, - "es6-promisify": { - "version": "5.0.0", - "bundled": true, - "dev": true, - "requires": { - "es6-promise": "^4.0.3" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "bundled": true, - "dev": true - }, - "execa": { - "version": "0.7.0", - "bundled": true, - "dev": true, - "requires": { - "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" - } - }, - "extend": { - "version": "3.0.2", - "bundled": true, - "dev": true - }, - "extsprintf": { - "version": "1.3.0", - "bundled": true, - "dev": true - }, - "fast-deep-equal": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "figgy-pudding": { - "version": "3.5.1", - "bundled": true, - "dev": true - }, - "find-npm-prefix": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "find-up": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "flush-write-stream": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.4" - } - }, - "forever-agent": { - "version": "0.6.1", - "bundled": true, - "dev": true - }, - "form-data": { - "version": "2.3.2", - "bundled": true, - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "1.0.6", - "mime-types": "^2.1.12" - } - }, - "from2": { - "version": "2.3.0", - "bundled": true, - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs-vacuum": { - "version": "1.2.10", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "path-is-inside": "^1.0.1", - "rimraf": "^2.5.2" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - }, - "dependencies": { - "iferr": { - "version": "0.1.5", - "bundled": true, - "dev": true - } - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "fstream": { - "version": "1.0.11", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - } - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "genfun": { - "version": "4.0.1", - "bundled": true, - "dev": true - }, - "gentle-fs": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "aproba": "^1.1.2", - "fs-vacuum": "^1.2.10", - "graceful-fs": "^4.1.11", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "path-is-inside": "^1.0.2", - "read-cmd-shim": "^1.0.1", - "slide": "^1.1.6" - }, - "dependencies": { - "iferr": { - "version": "0.1.5", - "bundled": true, - "dev": true - } - } - }, - "get-caller-file": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "get-stream": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "getpass": { - "version": "0.1.7", - "bundled": true, - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "dev": true, - "requires": { - "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" - } - }, - "global-dirs": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "requires": { - "ini": "^1.3.4" - } - }, - "got": { - "version": "6.7.1", - "bundled": true, - "dev": true, - "requires": { - "create-error-class": "^3.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.1.15", - "bundled": true, - "dev": true - }, - "har-schema": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "har-validator": { - "version": "5.1.0", - "bundled": true, - "dev": true, - "requires": { - "ajv": "^5.3.0", - "har-schema": "^2.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, - "hosted-git-info": { - "version": "2.7.1", - "bundled": true, - "dev": true - }, - "http-cache-semantics": { - "version": "3.8.1", - "bundled": true, - "dev": true - }, - "http-proxy-agent": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "agent-base": "4", - "debug": "3.1.0" - } - }, - "http-signature": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-proxy-agent": { - "version": "2.2.1", - "bundled": true, - "dev": true, - "requires": { - "agent-base": "^4.1.0", - "debug": "^3.1.0" - } - }, - "humanize-ms": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "requires": { - "ms": "^2.0.0" - } - }, - "iconv-lite": { - "version": "0.4.23", - "bundled": true, - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "iferr": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "import-lazy": { - "version": "2.1.0", - "bundled": true, - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "bundled": true, - "dev": true - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true - }, - "init-package-json": { - "version": "1.10.3", - "bundled": true, - "dev": true, - "requires": { - "glob": "^7.1.1", - "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0", - "promzard": "^0.3.0", - "read": "~1.0.1", - "read-package-json": "1 || 2", - "semver": "2.x || 3.x || 4 || 5", - "validate-npm-package-license": "^3.0.1", - "validate-npm-package-name": "^3.0.0" - } - }, - "invert-kv": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "ip": { - "version": "1.1.5", - "bundled": true, - "dev": true - }, - "ip-regex": { - "version": "2.1.0", - "bundled": true, - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "builtin-modules": "^1.0.0" - } - }, - "is-ci": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "ci-info": "^1.0.0" - } - }, - "is-cidr": { - "version": "2.0.6", - "bundled": true, - "dev": true, - "requires": { - "cidr-regex": "^2.0.8" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-installed-globally": { - "version": "0.1.0", - "bundled": true, - "dev": true, - "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" - } - }, - "is-npm": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "is-obj": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "is-path-inside": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "is-redirect": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "is-retry-allowed": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "isexe": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "isstream": { - "version": "0.1.2", - "bundled": true, - "dev": true - }, - "jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "bundled": true, - "dev": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "bundled": true, - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "bundled": true, - "dev": true - }, - "jsonparse": { - "version": "1.3.1", - "bundled": true, - "dev": true - }, - "jsprim": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "latest-version": { - "version": "3.1.0", - "bundled": true, - "dev": true, - "requires": { - "package-json": "^4.0.0" - } - }, - "lazy-property": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "lcid": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "invert-kv": "^1.0.0" - } - }, - "libcipm": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "bin-links": "^1.1.2", - "bluebird": "^3.5.1", - "find-npm-prefix": "^1.0.2", - "graceful-fs": "^4.1.11", - "lock-verify": "^2.0.2", - "mkdirp": "^0.5.1", - "npm-lifecycle": "^2.0.3", - "npm-logical-tree": "^1.2.1", - "npm-package-arg": "^6.1.0", - "pacote": "^8.1.6", - "protoduck": "^5.0.0", - "read-package-json": "^2.0.13", - "rimraf": "^2.6.2", - "worker-farm": "^1.6.0" - } - }, - "libnpmhook": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "requires": { - "figgy-pudding": "^3.1.0", - "npm-registry-fetch": "^3.0.0" - }, - "dependencies": { - "npm-registry-fetch": { - "version": "3.1.1", - "bundled": true, - "dev": true, - "requires": { - "bluebird": "^3.5.1", - "figgy-pudding": "^3.1.0", - "lru-cache": "^4.1.2", - "make-fetch-happen": "^4.0.0", - "npm-package-arg": "^6.0.0" - } - } - } - }, - "libnpx": { - "version": "10.2.0", - "bundled": true, - "dev": true, - "requires": { - "dotenv": "^5.0.1", - "npm-package-arg": "^6.0.0", - "rimraf": "^2.6.2", - "safe-buffer": "^5.1.0", - "update-notifier": "^2.3.0", - "which": "^1.3.0", - "y18n": "^4.0.0", - "yargs": "^11.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "lock-verify": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "npm-package-arg": "^5.1.2 || 6", - "semver": "^5.4.1" - } - }, - "lockfile": { - "version": "1.0.4", - "bundled": true, - "dev": true, - "requires": { - "signal-exit": "^3.0.2" - } - }, - "lodash._baseindexof": { - "version": "3.1.0", - "bundled": true, - "dev": true - }, - "lodash._baseuniq": { - "version": "4.6.0", - "bundled": true, - "dev": true, - "requires": { - "lodash._createset": "~4.0.0", - "lodash._root": "~3.0.0" - } - }, - "lodash._bindcallback": { - "version": "3.0.1", - "bundled": true, - "dev": true - }, - "lodash._cacheindexof": { - "version": "3.0.2", - "bundled": true, - "dev": true - }, - "lodash._createcache": { - "version": "3.1.2", - "bundled": true, - "dev": true, - "requires": { - "lodash._getnative": "^3.0.0" - } - }, - "lodash._createset": { - "version": "4.0.3", - "bundled": true, - "dev": true - }, - "lodash._getnative": { - "version": "3.9.1", - "bundled": true, - "dev": true - }, - "lodash._root": { - "version": "3.0.1", - "bundled": true, - "dev": true - }, - "lodash.clonedeep": { - "version": "4.5.0", - "bundled": true, - "dev": true - }, - "lodash.restparam": { - "version": "3.6.1", - "bundled": true, - "dev": true - }, - "lodash.union": { - "version": "4.6.0", - "bundled": true, - "dev": true - }, - "lodash.uniq": { - "version": "4.5.0", - "bundled": true, - "dev": true - }, - "lodash.without": { - "version": "4.4.0", - "bundled": true, - "dev": true - }, - "lowercase-keys": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "lru-cache": { - "version": "4.1.3", - "bundled": true, - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "make-dir": { - "version": "1.3.0", - "bundled": true, - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "make-fetch-happen": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "requires": { - "agentkeepalive": "^3.4.1", - "cacache": "^11.0.1", - "http-cache-semantics": "^3.8.1", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.1", - "lru-cache": "^4.1.2", - "mississippi": "^3.0.0", - "node-fetch-npm": "^2.0.2", - "promise-retry": "^1.1.1", - "socks-proxy-agent": "^4.0.0", - "ssri": "^6.0.0" - } - }, - "meant": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "mem": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "mime-db": { - "version": "1.35.0", - "bundled": true, - "dev": true - }, - "mime-types": { - "version": "2.1.19", - "bundled": true, - "dev": true, - "requires": { - "mime-db": "~1.35.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "bundled": true, - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true - }, - "minipass": { - "version": "2.3.3", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - }, - "dependencies": { - "yallist": { - "version": "3.0.2", - "bundled": true, - "dev": true - } - } - }, - "minizlib": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mississippi": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "move-concurrently": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "ms": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "mute-stream": { - "version": "0.0.7", - "bundled": true, - "dev": true - }, - "node-fetch-npm": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "encoding": "^0.1.11", - "json-parse-better-errors": "^1.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node-gyp": { - "version": "3.8.0", - "bundled": true, - "dev": true, - "requires": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" - }, - "dependencies": { - "nopt": { - "version": "3.0.6", - "bundled": true, - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "semver": { - "version": "5.3.0", - "bundled": true, - "dev": true - }, - "tar": { - "version": "2.2.1", - "bundled": true, - "dev": true, - "requires": { - "block-stream": "*", - "fstream": "^1.0.2", - "inherits": "2" - } - } - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "normalize-package-data": { - "version": "2.4.0", - "bundled": true, - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "npm-audit-report": { - "version": "1.3.1", - "bundled": true, - "dev": true, - "requires": { - "cli-table3": "^0.5.0", - "console-control-strings": "^1.1.0" - } - }, - "npm-bundled": { - "version": "1.0.5", - "bundled": true, - "dev": true - }, - "npm-cache-filename": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "npm-install-checks": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "semver": "^2.3.0 || 3.x || 4 || 5" - } - }, - "npm-lifecycle": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "byline": "^5.0.0", - "graceful-fs": "^4.1.11", - "node-gyp": "^3.8.0", - "resolve-from": "^4.0.0", - "slide": "^1.1.6", - "uid-number": "0.0.6", - "umask": "^1.1.0", - "which": "^1.3.1" - } - }, - "npm-logical-tree": { - "version": "1.2.1", - "bundled": true, - "dev": true - }, - "npm-package-arg": { - "version": "6.1.0", - "bundled": true, - "dev": true, - "requires": { - "hosted-git-info": "^2.6.0", - "osenv": "^0.1.5", - "semver": "^5.5.0", - "validate-npm-package-name": "^3.0.0" - } - }, - "npm-packlist": { - "version": "1.1.12", - "bundled": true, - "dev": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npm-pick-manifest": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "npm-package-arg": "^6.0.0", - "semver": "^5.4.1" - } - }, - "npm-profile": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "requires": { - "aproba": "^1.1.2 || 2", - "make-fetch-happen": "^2.5.0 || 3 || 4" - } - }, - "npm-registry-client": { - "version": "8.6.0", - "bundled": true, - "dev": true, - "requires": { - "concat-stream": "^1.5.2", - "graceful-fs": "^4.1.6", - "normalize-package-data": "~1.0.1 || ^2.0.0", - "npm-package-arg": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0", - "npmlog": "2 || ^3.1.0 || ^4.0.0", - "once": "^1.3.3", - "request": "^2.74.0", - "retry": "^0.10.0", - "safe-buffer": "^5.1.1", - "semver": "2 >=2.2.1 || 3.x || 4 || 5", - "slide": "^1.1.3", - "ssri": "^5.2.4" - }, - "dependencies": { - "retry": { - "version": "0.10.1", - "bundled": true, - "dev": true - }, - "ssri": { - "version": "5.3.0", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "^5.1.1" - } - } - } - }, - "npm-registry-fetch": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "bluebird": "^3.5.1", - "figgy-pudding": "^2.0.1", - "lru-cache": "^4.1.2", - "make-fetch-happen": "^3.0.0", - "npm-package-arg": "^6.0.0", - "safe-buffer": "^5.1.1" - }, - "dependencies": { - "cacache": { - "version": "10.0.4", - "bundled": true, - "dev": true, - "requires": { - "bluebird": "^3.5.1", - "chownr": "^1.0.1", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "lru-cache": "^4.1.1", - "mississippi": "^2.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", - "ssri": "^5.2.4", - "unique-filename": "^1.1.0", - "y18n": "^4.0.0" - }, - "dependencies": { - "mississippi": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^2.0.1", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - } - } - }, - "figgy-pudding": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, - "make-fetch-happen": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "agentkeepalive": "^3.4.1", - "cacache": "^10.0.4", - "http-cache-semantics": "^3.8.1", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.0", - "lru-cache": "^4.1.2", - "mississippi": "^3.0.0", - "node-fetch-npm": "^2.0.2", - "promise-retry": "^1.1.1", - "socks-proxy-agent": "^3.0.1", - "ssri": "^5.2.4" - } - }, - "pump": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "smart-buffer": { - "version": "1.1.15", - "bundled": true, - "dev": true - }, - "socks": { - "version": "1.1.10", - "bundled": true, - "dev": true, - "requires": { - "ip": "^1.1.4", - "smart-buffer": "^1.0.13" - } - }, - "socks-proxy-agent": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "agent-base": "^4.1.0", - "socks": "^1.1.10" - } - }, - "ssri": { - "version": "5.3.0", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "^5.1.1" - } - } - } - }, - "npm-run-path": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "npm-user-validate": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": 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": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "bundled": true, - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "opener": { - "version": "1.5.1", - "bundled": true, - "dev": true - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "os-locale": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "p-finally": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "p-limit": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "package-json": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "requires": { - "got": "^6.7.1", - "registry-auth-token": "^3.0.1", - "registry-url": "^3.0.3", - "semver": "^5.1.0" - } - }, - "pacote": { - "version": "8.1.6", - "bundled": true, - "dev": true, - "requires": { - "bluebird": "^3.5.1", - "cacache": "^11.0.2", - "get-stream": "^3.0.0", - "glob": "^7.1.2", - "lru-cache": "^4.1.3", - "make-fetch-happen": "^4.0.1", - "minimatch": "^3.0.4", - "minipass": "^2.3.3", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "normalize-package-data": "^2.4.0", - "npm-package-arg": "^6.1.0", - "npm-packlist": "^1.1.10", - "npm-pick-manifest": "^2.1.0", - "osenv": "^0.1.5", - "promise-inflight": "^1.0.1", - "promise-retry": "^1.1.1", - "protoduck": "^5.0.0", - "rimraf": "^2.6.2", - "safe-buffer": "^5.1.2", - "semver": "^5.5.0", - "ssri": "^6.0.0", - "tar": "^4.4.3", - "unique-filename": "^1.1.0", - "which": "^1.3.0" - } - }, - "parallel-transform": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "cyclist": "~0.2.2", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "path-exists": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "path-key": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "bundled": true, - "dev": true - }, - "pify": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "prepend-http": { - "version": "1.0.4", - "bundled": true, - "dev": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "promise-inflight": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "promise-retry": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "requires": { - "err-code": "^1.0.0", - "retry": "^0.10.0" - }, - "dependencies": { - "retry": { - "version": "0.10.1", - "bundled": true, - "dev": true - } - } - }, - "promzard": { - "version": "0.3.0", - "bundled": true, - "dev": true, - "requires": { - "read": "1" - } - }, - "proto-list": { - "version": "1.2.4", - "bundled": true, - "dev": true - }, - "protoduck": { - "version": "5.0.0", - "bundled": true, - "dev": true, - "requires": { - "genfun": "^4.0.1" - } - }, - "prr": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "psl": { - "version": "1.1.29", - "bundled": true, - "dev": true - }, - "pump": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "bundled": true, - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "1.4.1", - "bundled": true, - "dev": true - }, - "qrcode-terminal": { - "version": "0.12.0", - "bundled": true, - "dev": true - }, - "qs": { - "version": "6.5.2", - "bundled": true, - "dev": true - }, - "query-string": { - "version": "6.1.0", - "bundled": true, - "dev": true, - "requires": { - "decode-uri-component": "^0.2.0", - "strict-uri-encode": "^2.0.0" - } - }, - "qw": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "rc": { - "version": "1.2.7", - "bundled": true, - "dev": true, - "requires": { - "deep-extend": "^0.5.1", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true - } - } - }, - "read": { - "version": "1.0.7", - "bundled": true, - "dev": true, - "requires": { - "mute-stream": "~0.0.4" - } - }, - "read-cmd-shim": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2" - } - }, - "read-installed": { - "version": "4.0.3", - "bundled": true, - "dev": true, - "requires": { - "debuglog": "^1.0.1", - "graceful-fs": "^4.1.2", - "read-package-json": "^2.0.0", - "readdir-scoped-modules": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "slide": "~1.1.3", - "util-extend": "^1.0.1" - } - }, - "read-package-json": { - "version": "2.0.13", - "bundled": true, - "dev": true, - "requires": { - "glob": "^7.1.1", - "graceful-fs": "^4.1.2", - "json-parse-better-errors": "^1.0.1", - "normalize-package-data": "^2.0.0", - "slash": "^1.0.0" - } - }, - "read-package-tree": { - "version": "5.2.1", - "bundled": true, - "dev": true, - "requires": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "once": "^1.3.0", - "read-package-json": "^2.0.0", - "readdir-scoped-modules": "^1.0.0" - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "requires": { - "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" - } - }, - "readdir-scoped-modules": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" - } - }, - "registry-auth-token": { - "version": "3.3.2", - "bundled": true, - "dev": true, - "requires": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" - } - }, - "registry-url": { - "version": "3.1.0", - "bundled": true, - "dev": true, - "requires": { - "rc": "^1.0.1" - } - }, - "request": { - "version": "2.88.0", - "bundled": true, - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "require-directory": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "resolve-from": { - "version": "4.0.0", - "bundled": true, - "dev": true - }, - "retry": { - "version": "0.12.0", - "bundled": true, - "dev": true - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "dev": true, - "requires": { - "glob": "^7.0.5" - } - }, - "run-queue": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "requires": { - "aproba": "^1.1.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true - }, - "semver": { - "version": "5.5.1", - "bundled": true, - "dev": true - }, - "semver-diff": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "semver": "^5.0.3" - } - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "sha": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "readable-stream": "^2.0.2" - } - }, - "shebang-command": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true - }, - "slash": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "slide": { - "version": "1.1.6", - "bundled": true, - "dev": true - }, - "smart-buffer": { - "version": "4.0.1", - "bundled": true, - "dev": true - }, - "socks": { - "version": "2.2.0", - "bundled": true, - "dev": true, - "requires": { - "ip": "^1.1.5", - "smart-buffer": "^4.0.1" - } - }, - "socks-proxy-agent": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "requires": { - "agent-base": "~4.2.0", - "socks": "~2.2.0" - } - }, - "sorted-object": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, - "sorted-union-stream": { - "version": "2.1.3", - "bundled": true, - "dev": true, - "requires": { - "from2": "^1.3.0", - "stream-iterate": "^1.1.0" - }, - "dependencies": { - "from2": { - "version": "1.3.0", - "bundled": true, - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "~1.1.10" - } - }, - "isarray": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "bundled": true, - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "bundled": true, - "dev": true - } - } - }, - "spdx-correct": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "bundled": true, - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "sshpk": { - "version": "1.14.2", - "bundled": true, - "dev": true, - "requires": { - "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" - } - }, - "ssri": { - "version": "6.0.1", - "bundled": true, - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "stream-each": { - "version": "1.2.2", - "bundled": true, - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-iterate": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "requires": { - "readable-stream": "^2.1.5", - "stream-shift": "^1.0.0" - } - }, - "stream-shift": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "strict-uri-encode": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "string-width": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "stringify-package": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-eof": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "bundled": true, - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "tar": { - "version": "4.4.8", - "bundled": true, - "dev": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - }, - "dependencies": { - "chownr": { - "version": "1.1.1", - "bundled": true, - "dev": true - }, - "minipass": { - "version": "2.3.5", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "yallist": { - "version": "3.0.3", - "bundled": true, - "dev": true - } - } - }, - "term-size": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "requires": { - "execa": "^0.7.0" - } - }, - "text-table": { - "version": "0.2.0", - "bundled": true, - "dev": true - }, - "through": { - "version": "2.3.8", - "bundled": true, - "dev": true - }, - "through2": { - "version": "2.0.3", - "bundled": true, - "dev": true, - "requires": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" - } - }, - "timed-out": { - "version": "4.0.1", - "bundled": true, - "dev": true - }, - "tiny-relative-date": { - "version": "1.3.0", - "bundled": true, - "dev": true - }, - "tough-cookie": { - "version": "2.4.3", - "bundled": true, - "dev": true, - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "bundled": true, - "dev": true, - "optional": true - }, - "typedarray": { - "version": "0.0.6", - "bundled": true, - "dev": true - }, - "uid-number": { - "version": "0.0.6", - "bundled": true, - "dev": true - }, - "umask": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "unique-filename": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "unique-string": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "crypto-random-string": "^1.0.0" - } - }, - "unpipe": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "unzip-response": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, - "update-notifier": { - "version": "2.5.0", - "bundled": true, - "dev": true, - "requires": { - "boxen": "^1.2.1", - "chalk": "^2.0.1", - "configstore": "^3.0.0", - "import-lazy": "^2.1.0", - "is-ci": "^1.0.10", - "is-installed-globally": "^0.1.0", - "is-npm": "^1.0.0", - "latest-version": "^3.0.0", - "semver-diff": "^2.0.0", - "xdg-basedir": "^3.0.0" - } - }, - "url-parse-lax": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "prepend-http": "^1.0.1" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "util-extend": { - "version": "1.0.3", - "bundled": true, - "dev": true - }, - "uuid": { - "version": "3.3.2", - "bundled": true, - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "validate-npm-package-name": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "builtins": "^1.0.3" - } - }, - "verror": { - "version": "1.10.0", - "bundled": true, - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "wcwidth": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "defaults": "^1.0.3" - } - }, - "which": { - "version": "1.3.1", - "bundled": true, - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "wide-align": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^1.0.2" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "widest-line": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^2.1.1" - } - }, - "worker-farm": { - "version": "1.6.0", - "bundled": true, - "dev": true, - "requires": { - "errno": "~0.1.7" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "write-file-atomic": { - "version": "2.3.0", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "xdg-basedir": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "xtend": { - "version": "4.0.1", - "bundled": true, - "dev": true - }, - "y18n": { - "version": "4.0.0", - "bundled": true, - "dev": true - }, - "yallist": { - "version": "2.1.2", - "bundled": true, - "dev": true - }, - "yargs": { - "version": "11.0.0", - "bundled": true, - "dev": true, - "requires": { - "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": "^9.0.2" - }, - "dependencies": { - "y18n": { - "version": "3.2.1", - "bundled": true, - "dev": true - } - } - }, - "yargs-parser": { - "version": "9.0.2", - "bundled": true, - "dev": true, - "requires": { - "camelcase": "^4.1.0" - } - } - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "^2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "nyc": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-13.3.0.tgz", - "integrity": "sha512-P+FwIuro2aFG6B0Esd9ZDWUd51uZrAEoGutqZxzrVmYl3qSfkLgcQpBPBjtDFsUQLFY1dvTQJPOyeqr8S9GF8w==", - "requires": { - "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^3.0.1", - "convert-source-map": "^1.6.0", - "find-cache-dir": "^2.0.0", - "find-up": "^3.0.0", - "foreground-child": "^1.5.6", - "glob": "^7.1.3", - "istanbul-lib-coverage": "^2.0.3", - "istanbul-lib-hook": "^2.0.3", - "istanbul-lib-instrument": "^3.1.0", - "istanbul-lib-report": "^2.0.4", - "istanbul-lib-source-maps": "^3.0.2", - "istanbul-reports": "^2.1.1", - "make-dir": "^1.3.0", - "merge-source-map": "^1.1.0", - "resolve-from": "^4.0.0", - "rimraf": "^2.6.3", - "signal-exit": "^3.0.2", - "spawn-wrap": "^1.4.2", - "test-exclude": "^5.1.0", - "uuid": "^3.3.2", - "yargs": "^12.0.5", - "yargs-parser": "^11.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "bundled": true - }, - "append-transform": { - "version": "1.0.0", - "bundled": true, - "requires": { - "default-require-extensions": "^2.0.0" - } - }, - "archy": { - "version": "1.0.0", - "bundled": true - }, - "arrify": { - "version": "1.0.1", - "bundled": true - }, - "async": { - "version": "2.6.2", - "bundled": true, - "requires": { - "lodash": "^4.17.11" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "caching-transform": { - "version": "3.0.1", - "bundled": true, - "requires": { - "hasha": "^3.0.0", - "make-dir": "^1.3.0", - "package-hash": "^3.0.0", - "write-file-atomic": "^2.3.0" - } - }, - "camelcase": { - "version": "5.0.0", - "bundled": true - }, - "cliui": { - "version": "4.1.0", - "bundled": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true - }, - "commander": { - "version": "2.17.1", - "bundled": true, - "optional": true - }, - "commondir": { - "version": "1.0.1", - "bundled": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true - }, - "convert-source-map": { - "version": "1.6.0", - "bundled": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cross-spawn": { - "version": "4.0.2", - "bundled": true, - "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "debug": { - "version": "4.1.1", - "bundled": true, - "requires": { - "ms": "^2.1.1" - } - }, - "decamelize": { - "version": "1.2.0", - "bundled": true - }, - "default-require-extensions": { - "version": "2.0.0", - "bundled": true, - "requires": { - "strip-bom": "^3.0.0" - } - }, - "end-of-stream": { - "version": "1.4.1", - "bundled": true, - "requires": { - "once": "^1.4.0" - } - }, - "error-ex": { - "version": "1.3.2", - "bundled": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es6-error": { - "version": "4.1.1", - "bundled": true - }, - "execa": { - "version": "1.0.0", - "bundled": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.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" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "bundled": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - } - } - }, - "find-cache-dir": { - "version": "2.0.0", - "bundled": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "bundled": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "foreground-child": { - "version": "1.5.6", - "bundled": true, - "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true - }, - "get-caller-file": { - "version": "1.0.3", - "bundled": true - }, - "get-stream": { - "version": "4.1.0", - "bundled": true, - "requires": { - "pump": "^3.0.0" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "requires": { - "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": { - "version": "4.1.15", - "bundled": true - }, - "handlebars": { - "version": "4.1.0", - "bundled": true, - "requires": { - "async": "^2.5.0", - "optimist": "^0.6.1", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true - } - } - }, - "has-flag": { - "version": "3.0.0", - "bundled": true - }, - "hasha": { - "version": "3.0.0", - "bundled": true, - "requires": { - "is-stream": "^1.0.1" - } - }, - "hosted-git-info": { - "version": "2.7.1", - "bundled": true - }, - "imurmurhash": { - "version": "0.1.4", - "bundled": true - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true - }, - "invert-kv": { - "version": "2.0.0", - "bundled": true - }, - "is-arrayish": { - "version": "0.2.1", - "bundled": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "bundled": true - }, - "is-stream": { - "version": "1.1.0", - "bundled": true - }, - "isexe": { - "version": "2.0.0", - "bundled": true - }, - "istanbul-lib-coverage": { - "version": "2.0.3", - "bundled": true - }, - "istanbul-lib-hook": { - "version": "2.0.3", - "bundled": true, - "requires": { - "append-transform": "^1.0.0" - } - }, - "istanbul-lib-report": { - "version": "2.0.4", - "bundled": true, - "requires": { - "istanbul-lib-coverage": "^2.0.3", - "make-dir": "^1.3.0", - "supports-color": "^6.0.0" - }, - "dependencies": { - "supports-color": { - "version": "6.1.0", - "bundled": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "3.0.2", - "bundled": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^2.0.3", - "make-dir": "^1.3.0", - "rimraf": "^2.6.2", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true - } - } - }, - "istanbul-reports": { - "version": "2.1.1", - "bundled": true, - "requires": { - "handlebars": "^4.1.0" - } - }, - "json-parse-better-errors": { - "version": "1.0.2", - "bundled": true - }, - "lcid": { - "version": "2.0.0", - "bundled": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, - "load-json-file": { - "version": "4.0.0", - "bundled": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "bundled": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.11", - "bundled": true - }, - "lodash.flattendeep": { - "version": "4.4.0", - "bundled": true - }, - "lru-cache": { - "version": "4.1.5", - "bundled": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "make-dir": { - "version": "1.3.0", - "bundled": true, - "requires": { - "pify": "^3.0.0" - } - }, - "map-age-cleaner": { - "version": "0.1.3", - "bundled": true, - "requires": { - "p-defer": "^1.0.0" - } - }, - "mem": { - "version": "4.1.0", - "bundled": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^1.0.0", - "p-is-promise": "^2.0.0" - } - }, - "merge-source-map": { - "version": "1.1.0", - "bundled": true, - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true - } - } - }, - "mimic-fn": { - "version": "1.2.0", - "bundled": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.10", - "bundled": true - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "bundled": true - } - } - }, - "ms": { - "version": "2.1.1", - "bundled": true - }, - "nice-try": { - "version": "1.0.5", - "bundled": true - }, - "normalize-package-data": { - "version": "2.5.0", - "bundled": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "npm-run-path": { - "version": "2.0.2", - "bundled": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "requires": { - "wrappy": "1" - } - }, - "optimist": { - "version": "0.6.1", - "bundled": true, - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true - }, - "os-locale": { - "version": "3.1.0", - "bundled": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, - "p-defer": { - "version": "1.0.0", - "bundled": true - }, - "p-finally": { - "version": "1.0.0", - "bundled": true - }, - "p-is-promise": { - "version": "2.0.0", - "bundled": true - }, - "p-limit": { - "version": "2.1.0", - "bundled": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "bundled": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.0.0", - "bundled": true - }, - "package-hash": { - "version": "3.0.0", - "bundled": true, - "requires": { - "graceful-fs": "^4.1.15", - "hasha": "^3.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "bundled": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "path-exists": { - "version": "3.0.0", - "bundled": true - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true - }, - "path-key": { - "version": "2.0.1", - "bundled": true - }, - "path-parse": { - "version": "1.0.6", - "bundled": true - }, - "path-type": { - "version": "3.0.0", - "bundled": true, - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "bundled": true - }, - "pkg-dir": { - "version": "3.0.0", - "bundled": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "pseudomap": { - "version": "1.0.2", - "bundled": true - }, - "pump": { - "version": "3.0.0", - "bundled": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "read-pkg": { - "version": "3.0.0", - "bundled": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "4.0.0", - "bundled": true, - "requires": { - "find-up": "^3.0.0", - "read-pkg": "^3.0.0" - } - }, - "release-zalgo": { - "version": "1.0.0", - "bundled": true, - "requires": { - "es6-error": "^4.0.1" - } - }, - "require-directory": { - "version": "2.1.1", - "bundled": true - }, - "require-main-filename": { - "version": "1.0.1", - "bundled": true - }, - "resolve": { - "version": "1.10.0", - "bundled": true, - "requires": { - "path-parse": "^1.0.6" - } - }, - "resolve-from": { - "version": "4.0.0", - "bundled": true - }, - "rimraf": { - "version": "2.6.3", - "bundled": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true - }, - "semver": { - "version": "5.6.0", - "bundled": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true - }, - "shebang-command": { - "version": "1.2.0", - "bundled": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "bundled": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true - }, - "spawn-wrap": { - "version": "1.4.2", - "bundled": true, - "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" - } - }, - "spdx-correct": { - "version": "3.1.0", - "bundled": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.2.0", - "bundled": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "bundled": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.3", - "bundled": true - }, - "string-width": { - "version": "2.1.1", - "bundled": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "bundled": true - }, - "strip-eof": { - "version": "1.0.0", - "bundled": true - }, - "test-exclude": { - "version": "5.1.0", - "bundled": true, - "requires": { - "arrify": "^1.0.1", - "minimatch": "^3.0.4", - "read-pkg-up": "^4.0.0", - "require-main-filename": "^1.0.1" - } - }, - "uglify-js": { - "version": "3.4.9", - "bundled": true, - "optional": true, - "requires": { - "commander": "~2.17.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true, - "optional": true - } - } - }, - "uuid": { - "version": "3.3.2", - "bundled": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "bundled": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "bundled": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "bundled": true - }, - "wordwrap": { - "version": "0.0.3", - "bundled": true - }, - "wrap-ansi": { - "version": "2.1.0", - "bundled": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "bundled": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true - }, - "write-file-atomic": { - "version": "2.4.2", - "bundled": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "y18n": { - "version": "4.0.0", - "bundled": true - }, - "yallist": { - "version": "2.1.2", - "bundled": true - }, - "yargs": { - "version": "12.0.5", - "bundled": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.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 || ^4.0.0", - "yargs-parser": "^11.1.1" - } - }, - "yargs-parser": { - "version": "11.1.1", - "bundled": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-component": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "object-inspect": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", - "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==" - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - } - }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "optional": true, - "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" - }, - "dependencies": { - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "optional": true, - "requires": { - "for-in": "^1.0.1" - } - } - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" - } - }, - "octokit-pagination-methods": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz", - "integrity": "sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - }, - "dependencies": { - "minimist": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", - "dev": true - }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true - } - } - }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - }, - "dependencies": { - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "requires": { - "invert-kv": "^2.0.0" - } - } - } - }, - "os-name": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", - "integrity": "sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==", - "dev": true, - "requires": { - "macos-release": "^2.2.0", - "windows-release": "^3.1.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "output-file-sync": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", - "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", - "requires": { - "graceful-fs": "^4.1.4", - "mkdirp": "^0.5.1", - "object-assign": "^4.1.0" - } - }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" - }, - "p-filter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-1.0.0.tgz", - "integrity": "sha1-Yp0xcVAgnI/VCLoTdxPvS7kg6ds=", - "dev": true, - "requires": { - "p-map": "^1.0.0" - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==" - }, - "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-map": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", - "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", - "dev": true - }, - "p-reduce": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", - "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=", - "dev": true - }, - "p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", - "dev": true, - "requires": { - "retry": "^0.12.0" - }, - "dependencies": { - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true - } - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "pako": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", - "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==" - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parents": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", - "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", - "requires": { - "path-platform": "~0.11.15" - } - }, - "parse-asn1": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz", - "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==", - "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-github-url": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-github-url/-/parse-github-url-1.0.2.tgz", - "integrity": "sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==", - "dev": true - }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "optional": true, - "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", - "requires": { - "better-assert": "~1.0.0" - } - }, - "parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", - "requires": { - "better-assert": "~1.0.0" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "path-platform": { - "version": "0.11.15", - "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", - "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=" - }, - "path-to-regexp": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", - "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", - "dev": true, - "requires": { - "isarray": "0.0.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - } - } - }, - "pathval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", - "dev": true - }, - "pbkdf2": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", - "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - }, - "pkg-conf": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", - "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", - "requires": { - "find-up": "^2.0.0", - "load-json-file": "^4.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - } - } - }, - "pkg-config": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", - "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=", - "requires": { - "debug-log": "^1.0.0", - "find-root": "^1.0.0", - "xtend": "^4.0.1" - } - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "requires": { - "find-up": "^2.1.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - } - } - }, - "pluralize": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", - "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==" - }, - "pngjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", - "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "optional": true - }, - "prettier": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.17.0.tgz", - "integrity": "sha512-sXe5lSt2WQlCbydGETgfm1YBShgOX4HxQkFPvbxkcwgDvGDeqVau8h+12+lmSVlP3rHPz0oavfddSZg/q+Szjw==", - "dev": true - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" - }, - "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "propagate": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-1.0.0.tgz", - "integrity": "sha1-AMLa7t2iDofjeCs0Stuhzd1q1wk=", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "psl": { - "version": "1.1.31", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", - "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "pushdata-bitcoin": { - "version": "github:Bitcoin-com/pushdata-bitcoin#9b75eebe597853c6eeaec3e6c44b6d9c9cd7ee86", - "from": "github:Bitcoin-com/pushdata-bitcoin#1.2.1", - "requires": { - "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3" - } - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - }, - "qrcode": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.3.3.tgz", - "integrity": "sha512-SH7V13AcJusH3GT8bMNOGz4w0L+LjcpNOU/NiOgtBhT/5DoWeZE6D5ntMJnJ84AMkoaM4kjJJoHoh9g++8lWFg==", - "requires": { - "can-promise": "0.0.1", - "dijkstrajs": "^1.0.1", - "isarray": "^2.0.1", - "pngjs": "^3.3.0", - "yargs": "^12.0.5" - }, - "dependencies": { - "isarray": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.4.tgz", - "integrity": "sha512-GMxXOiUirWg1xTKRipM0Ek07rX+ubx4nNVElTJdNLYmNO/2YrDkgJGw9CljXn+r4EWiDQg/8lsRdHyg2PJuUaA==" - } - } - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" - }, - "quick-lru": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", - "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", - "dev": true - }, - "random-bytes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", - "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=" - }, - "randomatic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", - "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", - "optional": true, - "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "optional": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "optional": true - } - } - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", - "dev": true - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "react-is": { - "version": "16.8.6", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz", - "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==" - }, - "read-only-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", - "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", - "requires": { - "readable-stream": "^2.0.2" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "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" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "optional": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "redent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", - "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", - "dev": true, - "requires": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" - } - }, - "redeyed": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", - "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=", - "dev": true, - "requires": { - "esprima": "~4.0.0" - } - }, - "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==" - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - }, - "regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", - "requires": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" - } - }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "optional": true, - "requires": { - "is-equal-shallow": "^0.1.3" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", - "dev": true - }, - "regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "registry-auth-token": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", - "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==", - "dev": true, - "requires": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" - } - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "requires": { - "is-finite": "^1.0.0" - } - }, - "repl.history": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/repl.history/-/repl.history-0.1.4.tgz", - "integrity": "sha1-gDZxcfN4HW5CmccXWMJTCX9dWDI=" - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - } - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" - }, - "dependencies": { - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "requires": { - "callsites": "^0.2.0" - } - }, - "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=" - }, - "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=" - } - } - }, - "resolve": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.1.tgz", - "integrity": "sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA==", - "requires": { - "path-parse": "^1.0.6" - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "resumer": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", - "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", - "requires": { - "through": "~2.3.4" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "requires": { - "is-promise": "^2.1.0" - } - }, - "run-parallel": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", - "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==" - }, - "rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=" - }, - "rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "requires": { - "rx-lite": "*" - } - }, - "rxjs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.1.tgz", - "integrity": "sha512-y0j31WJc83wPu31vS1VlAFW5JGrnGC+j+TtGAa1fRQphy48+fDYiDmX8tjGloToEsMkxnouOg/1IzXGKkJnZMg==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "samsam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz", - "integrity": "sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg==", - "dev": true - }, - "satoshi-bitcoin": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/satoshi-bitcoin/-/satoshi-bitcoin-1.0.4.tgz", - "integrity": "sha1-0AK2dwddXLvywhGo3zJUvN9QseQ=", - "requires": { - "big.js": "^3.1.3" - } - }, - "scryptsy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-2.0.0.tgz", - "integrity": "sha1-Jiw28CMc+nZU4jY/o5TNLexm83g=" - }, - "secp256k1": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.6.2.tgz", - "integrity": "sha512-90nYt7yb0LmI4A2jJs1grglkTAXrBwxYAjP9bpeKjvJKOjG2fOeH/YI/lchDMIvjrOasd5QXwvV2jwN168xNng==", - "requires": { - "bindings": "^1.2.1", - "bip66": "^1.1.3", - "bn.js": "^4.11.3", - "create-hash": "^1.1.2", - "drbg.js": "^1.0.1", - "elliptic": "^6.2.3", - "nan": "^2.2.1", - "safe-buffer": "^5.1.0" - } - }, - "semantic-release": { - "version": "15.13.3", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-15.13.3.tgz", - "integrity": "sha512-cax0xPPTtsxHlrty2HxhPql2TTvS74Ni2O8BzwFHxNY/mviVKEhI4OxHzBYJkpVxx1fMVj36+oH7IlP+SJtPNA==", - "dev": true, - "requires": { - "@semantic-release/commit-analyzer": "^6.1.0", - "@semantic-release/error": "^2.2.0", - "@semantic-release/github": "^5.1.0", - "@semantic-release/npm": "^5.0.5", - "@semantic-release/release-notes-generator": "^7.1.2", - "aggregate-error": "^2.0.0", - "cosmiconfig": "^5.0.1", - "debug": "^4.0.0", - "env-ci": "^3.0.0", - "execa": "^1.0.0", - "figures": "^2.0.0", - "find-versions": "^3.0.0", - "get-stream": "^4.0.0", - "git-log-parser": "^1.2.0", - "hook-std": "^1.1.0", - "hosted-git-info": "^2.7.1", - "lodash": "^4.17.4", - "marked": "^0.6.0", - "marked-terminal": "^3.2.0", - "p-locate": "^3.0.0", - "p-reduce": "^1.0.0", - "read-pkg-up": "^4.0.0", - "resolve-from": "^4.0.0", - "semver": "^5.4.1", - "signale": "^1.2.1", - "yargs": "^12.0.0" - }, - "dependencies": { - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", - "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", - "dev": true, - "requires": { - "find-up": "^3.0.0", - "read-pkg": "^3.0.0" - } - } - } - }, - "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" - }, - "semver-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz", - "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shasum": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", - "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", - "requires": { - "json-stable-stringify": "~0.0.0", - "sha.js": "~2.4.4" - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "shell-quote": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", - "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", - "requires": { - "array-filter": "~0.0.0", - "array-map": "~0.0.0", - "array-reduce": "~0.0.0", - "jsonify": "~0.0.0" - } - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "signale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz", - "integrity": "sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==", - "dev": true, - "requires": { - "chalk": "^2.3.2", - "figures": "^2.0.0", - "pkg-conf": "^2.1.0" - } - }, - "simple-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", - "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=" - }, - "sinon": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-4.5.0.tgz", - "integrity": "sha512-trdx+mB0VBBgoYucy6a9L7/jfQOmvGeaKZT4OOJ+lPAtI8623xyGr8wLiE4eojzBS8G9yXbhx42GHUOVLr4X2w==", - "dev": true, - "requires": { - "@sinonjs/formatio": "^2.0.0", - "diff": "^3.1.0", - "lodash.get": "^4.4.2", - "lolex": "^2.2.0", - "nise": "^1.2.0", - "supports-color": "^5.1.0", - "type-detect": "^4.0.5" - } - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" - }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "requires": { - "kind-of": "^3.2.0" - } - }, - "socket.io": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.2.0.tgz", - "integrity": "sha512-wxXrIuZ8AILcn+f1B4ez4hJTPG24iNgxBBDaJfT6MsyOhVYiTXWexGoPkd87ktJG8kQEcL/NBvRi64+9k4Kc0w==", - "requires": { - "debug": "~4.1.0", - "engine.io": "~3.3.1", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.2.0", - "socket.io-parser": "~3.3.0" - } - }, - "socket.io-adapter": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz", - "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=" - }, - "socket.io-client": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.2.0.tgz", - "integrity": "sha512-56ZrkTDbdTLmBIyfFYesgOxsjcLnwAKoN4CiPyTVkMQj3zTUh0QAx3GbvIvLpFEOvQWu92yyWICxB0u7wkVbYA==", - "requires": { - "backo2": "1.0.2", - "base64-arraybuffer": "0.1.5", - "component-bind": "1.0.0", - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "engine.io-client": "~3.3.1", - "has-binary2": "~1.0.2", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "object-component": "0.0.3", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "socket.io-parser": "~3.3.0", - "to-array": "0.1.4" - }, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "socket.io-parser": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz", - "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==", - "requires": { - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "isarray": "2.0.1" - }, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", - "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "requires": { - "source-map": "^0.5.6" - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" - }, - "spawn-error-forwarder": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz", - "integrity": "sha1-Gv2Uc46ZmwNG17n8NzvlXgdXcCk=", - "dev": true - }, - "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", - "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==" - }, - "split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dev": true, - "requires": { - "through": "2" - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "split2": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz", - "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", - "dev": true, - "requires": { - "through2": "^2.0.2" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "requires": { - "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" - } - }, - "standard": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/standard/-/standard-11.0.1.tgz", - "integrity": "sha512-nu0jAcHiSc8H+gJCXeiziMVZNDYi8MuqrYJKxTgjP4xKXZMKm311boqQIzDrYI/ktosltxt2CbDjYQs9ANC8IA==", - "requires": { - "eslint": "~4.18.0", - "eslint-config-standard": "11.0.0", - "eslint-config-standard-jsx": "5.0.0", - "eslint-plugin-import": "~2.9.0", - "eslint-plugin-node": "~6.0.0", - "eslint-plugin-promise": "~3.7.0", - "eslint-plugin-react": "~7.7.0", - "eslint-plugin-standard": "~3.0.1", - "standard-engine": "~8.0.0" - }, - "dependencies": { - "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==" - }, - "acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", - "requires": { - "acorn": "^3.0.4" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=" - } - } - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=" - }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "eslint": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", - "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", - "requires": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", - "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.2", - "esquery": "^1.0.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.0.1", - "ignore": "^3.3.3", - "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "require-uncached": "^1.0.3", - "semver": "^5.3.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", - "table": "4.0.2", - "text-table": "~0.2.0" - } - }, - "eslint-plugin-node": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz", - "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", - "requires": { - "ignore": "^3.3.6", - "minimatch": "^3.0.4", - "resolve": "^1.3.3", - "semver": "^5.4.1" - } - }, - "eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "espree": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", - "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", - "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" - } - }, - "external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", - "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" - } - }, - "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", - "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" - } - }, - "flat-cache": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", - "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", - "requires": { - "circular-json": "^0.3.1", - "graceful-fs": "^4.1.2", - "rimraf": "~2.6.2", - "write": "^0.2.1" - } - }, - "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - } - }, - "slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", - "requires": { - "is-fullwidth-code-point": "^2.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "table": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", - "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", - "requires": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", - "slice-ansi": "1.0.0", - "string-width": "^2.1.1" - } - }, - "write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", - "requires": { - "mkdirp": "^0.5.1" - } - } - } - }, - "standard-engine": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-8.0.1.tgz", - "integrity": "sha512-LA531C3+nljom/XRvdW/hGPXwmilRkaRkENhO3FAGF1Vtq/WtCXzgmnc5S6vUHHsgv534MRy02C1ikMwZXC+tw==", - "requires": { - "deglob": "^2.1.0", - "get-stdin": "^6.0.0", - "minimist": "^1.1.0", - "pkg-conf": "^2.0.0" - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-combiner2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", - "requires": { - "duplexer2": "~0.1.0", - "readable-stream": "^2.0.2" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "stream-splicer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz", - "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.2" - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "string.prototype.trim": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", - "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.0", - "function-bind": "^1.0.2" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "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.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - }, - "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - }, - "subarg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", - "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", - "requires": { - "minimist": "^1.1.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "supports-hyperlinks": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz", - "integrity": "sha512-HHi5kVSefKaJkGYXbDuKbUGRVxqnWGn3J2e39CYcNJEfWciGq2zYtOhXLTlvrOZW1QU7VX67w7fMmWafHX9Pfw==", - "dev": true, - "requires": { - "has-flag": "^2.0.0", - "supports-color": "^5.0.0" - }, - "dependencies": { - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - } - } - }, - "syntax-error": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", - "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", - "requires": { - "acorn-node": "^1.2.0" - } - }, - "table": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/table/-/table-5.2.3.tgz", - "integrity": "sha512-N2RsDAMvDLvYwFcwbPyF3VmVSSkuF+G1e+8inhBLtHpvwXGw4QRPEZhihQNeEN0i1up6/f6ObCJXNdlRG3YVyQ==", - "dev": true, - "requires": { - "ajv": "^6.9.1", - "lodash": "^4.17.11", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "dependencies": { - "ajv": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "tape": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/tape/-/tape-4.10.1.tgz", - "integrity": "sha512-G0DywYV1jQeY3axeYnXUOt6ktnxS9OPJh97FGR3nrua8lhWi1zPflLxcAHavZ7Jf3qUfY7cxcVIVFa4mY2IY1w==", - "requires": { - "deep-equal": "~1.0.1", - "defined": "~1.0.0", - "for-each": "~0.3.3", - "function-bind": "~1.1.1", - "glob": "~7.1.3", - "has": "~1.0.3", - "inherits": "~2.0.3", - "minimist": "~1.2.0", - "object-inspect": "~1.6.0", - "resolve": "~1.10.0", - "resumer": "~0.0.0", - "string.prototype.trim": "~1.1.2", - "through": "~2.3.8" - } - }, - "text-extensions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", - "dev": true - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "timers-browserify": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", - "requires": { - "process": "~0.11.0" - } - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", - "requires": { - "nopt": "~1.0.10" - }, - "dependencies": { - "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "requires": { - "abbrev": "1" - } - } - } - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "traverse": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", - "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", - "dev": true - }, - "trim-newlines": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", - "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", - "dev": true - }, - "trim-off-newlines": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz", - "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=", - "dev": true - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" - }, - "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", - "dev": true - }, - "tty-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==" - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "typeforce": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz", - "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==" - }, - "typescript": { - "version": "3.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.4.5.tgz", - "integrity": "sha512-YycBxUb49UUhdNMU5aJ7z5Ej2XGmaIBL0x34vZ82fn3hGvD+bgrMrVDpatgz2f7YxUMJxMkbWxJZeAvDxVe7Vw==", - "dev": true - }, - "uglify-js": { - "version": "3.5.11", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.5.11.tgz", - "integrity": "sha512-izPJg8RsSyqxbdnqX36ExpbH3K7tDBsAU/VfNv89VkMFy3z39zFjunQGsSHOlGlyIfGLGprGeosgQno3bo2/Kg==", - "dev": true, - "optional": true, - "requires": { - "commander": "~2.20.0", - "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, - "optional": true - } - } - }, - "umd": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", - "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==" - }, - "undeclared-identifiers": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", - "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", - "requires": { - "acorn-node": "^1.3.0", - "dash-ast": "^1.0.0", - "get-assigned-identifiers": "^1.2.0", - "simple-concat": "^1.0.0", - "xtend": "^4.0.1" - } - }, - "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" - } - } - } - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" - }, - "universal-user-agent": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-2.0.3.tgz", - "integrity": "sha512-eRHEHhChCBHrZsA4WEhdgiOKgdvgrMIHwnwnqD0r5C6AO8kwKcG7qSku3iXdhvHL3YvsS9ZkSGN8h/hIpoFC8g==", - "dev": true, - "requires": { - "os-name": "^3.0.0" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, - "unorm": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.5.0.tgz", - "integrity": "sha512-sMfSWoiRaXXeDZSXC+YRZ23H4xchQpwxjpw1tmfR+kgbBCaOgln4NI0LXejJIhnBuKINrB3WRn+ZI8IWssirVw==" - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - } - } - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - } - } - }, - "url-join": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz", - "integrity": "sha1-TTNA6AfTdzvamZH4MFrNzCpmXSo=", - "dev": true - }, - "url-template": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", - "integrity": "sha1-/FZaPMy/93MMd19WQflVV5FDnyE=", - "dev": true - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" - }, - "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "requires": { - "inherits": "2.0.1" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - }, - "v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", - "requires": { - "user-home": "^1.1.1" - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "varuint-bitcoin": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz", - "integrity": "sha512-jCEPG+COU/1Rp84neKTyDJQr478/hAfVp5xxYn09QEH0yBjbmPeMfuuQIrp+BUD83hybtYZKhr5elV3bvdV1bA==", - "requires": { - "safe-buffer": "^5.1.1" - } - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vm-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", - "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==" - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "wif": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", - "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", - "requires": { - "bs58check": "<3.0.0" - } - }, - "window-or-global": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/window-or-global/-/window-or-global-1.0.1.tgz", - "integrity": "sha1-2+RboqKRqrxW1iz2bEW3+jIpRt4=" - }, - "windows-release": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.2.0.tgz", - "integrity": "sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA==", - "dev": true, - "requires": { - "execa": "^1.0.0" - } - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, - "ws": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", - "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", - "requires": { - "async-limiter": "~1.0.0" - } - }, - "xmlhttprequest-ssl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=" - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" - }, - "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.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 || ^4.0.0", - "yargs-parser": "^11.1.1" - } - }, - "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - } - } - }, - "yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" - } - } -} diff --git a/package.json b/package.json index 91e9ba8e..30d91276 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.0.10", + "version": "7.0.11", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ @@ -22,8 +22,7 @@ "main": "lib/BITBOX.js", "files": [ "index.js", - "lib/", - "dist/" + "lib/" ], "homepage": "https://developer.bitcoin.com/bitbox", "repository": { diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 00000000..819b8363 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,7856 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" + dependencies: + "@babel/highlight" "^7.0.0" + +"@babel/generator@^7.4.0", "@babel/generator@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.4.tgz#174a215eb843fc392c7edcaabeaa873de6e8f041" + dependencies: + "@babel/types" "^7.4.4" + jsesc "^2.5.1" + lodash "^4.17.11" + source-map "^0.5.0" + trim-right "^1.0.1" + +"@babel/helper-function-name@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" + dependencies: + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-get-function-arity@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-split-export-declaration@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677" + dependencies: + "@babel/types" "^7.4.4" + +"@babel/highlight@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.4.3", "@babel/parser@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.4.tgz#5977129431b8fe33471730d255ce8654ae1250b6" + +"@babel/template@^7.1.0", "@babel/template@^7.4.0": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.4.4" + "@babel/types" "^7.4.4" + +"@babel/traverse@^7.4.3": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.4.tgz#0776f038f6d78361860b6823887d4f3937133fe8" + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.4.4" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.4.4" + "@babel/parser" "^7.4.4" + "@babel/types" "^7.4.4" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.11" + +"@babel/types@^7.0.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.4.tgz#8db9e9a629bb7c29370009b4b779ed93fe57d5f0" + dependencies: + esutils "^2.0.2" + lodash "^4.17.11" + to-fast-properties "^2.0.0" + +"@mrmlnc/readdir-enhanced@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" + dependencies: + call-me-maybe "^1.0.1" + glob-to-regexp "^0.3.0" + +"@nodelib/fs.stat@^1.1.2": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" + +"@octokit/endpoint@^5.1.0": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-5.1.1.tgz#bd96a67d141bd897fd5357501fcea44791870925" + dependencies: + deepmerge "3.2.0" + is-plain-object "^3.0.0" + universal-user-agent "^2.0.1" + url-template "^2.0.8" + +"@octokit/request@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-3.0.2.tgz#dd2424691f486d7ea332ec06e3de55b1ea13c5dc" + dependencies: + "@octokit/endpoint" "^5.1.0" + deprecation "^1.0.1" + is-plain-object "^3.0.0" + node-fetch "^2.3.0" + once "^1.4.0" + universal-user-agent "^2.0.1" + +"@octokit/rest@^16.13.1": + version "16.25.3" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.25.3.tgz#ce9e7a6230d20d58574ec929f622f2778ead7eb4" + dependencies: + "@octokit/request" "3.0.2" + atob-lite "^2.0.0" + before-after-hook "^1.4.0" + btoa-lite "^1.0.0" + deprecation "^1.0.1" + lodash.get "^4.4.2" + lodash.set "^4.3.2" + lodash.uniq "^4.5.0" + octokit-pagination-methods "^1.1.0" + once "^1.4.0" + universal-user-agent "^2.0.0" + url-template "^2.0.8" + +"@semantic-release/commit-analyzer@^6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@semantic-release/commit-analyzer/-/commit-analyzer-6.1.0.tgz#32bbe3c23da86e23edf072fbb276fa2f383fcb17" + dependencies: + conventional-changelog-angular "^5.0.0" + conventional-commits-filter "^2.0.0" + conventional-commits-parser "^3.0.0" + debug "^4.0.0" + import-from "^2.1.0" + lodash "^4.17.4" + +"@semantic-release/error@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@semantic-release/error/-/error-2.2.0.tgz#ee9d5a09c9969eade1ec864776aeda5c5cddbbf0" + +"@semantic-release/github@^5.1.0": + version "5.2.10" + resolved "https://registry.yarnpkg.com/@semantic-release/github/-/github-5.2.10.tgz#bf325f11685d59b864c8946d7d30fcb749d89e37" + dependencies: + "@octokit/rest" "^16.13.1" + "@semantic-release/error" "^2.2.0" + aggregate-error "^2.0.0" + bottleneck "^2.0.1" + debug "^4.0.0" + dir-glob "^2.0.0" + fs-extra "^7.0.0" + globby "^9.0.0" + http-proxy-agent "^2.1.0" + https-proxy-agent "^2.2.1" + issue-parser "^3.0.0" + lodash "^4.17.4" + mime "^2.0.3" + p-filter "^1.0.0" + p-retry "^3.0.0" + parse-github-url "^1.0.1" + url-join "^4.0.0" + +"@semantic-release/npm@^5.0.5": + version "5.1.7" + resolved "https://registry.yarnpkg.com/@semantic-release/npm/-/npm-5.1.7.tgz#ed3bac977d46294bfd11df7621bb5a9b6d5523be" + dependencies: + "@semantic-release/error" "^2.2.0" + aggregate-error "^3.0.0" + execa "^1.0.0" + fs-extra "^7.0.0" + lodash "^4.17.4" + nerf-dart "^1.0.0" + normalize-url "^4.0.0" + npm "^6.8.0" + rc "^1.2.8" + read-pkg "^5.0.0" + registry-auth-token "^3.3.1" + +"@semantic-release/release-notes-generator@^7.1.2": + version "7.1.4" + resolved "https://registry.yarnpkg.com/@semantic-release/release-notes-generator/-/release-notes-generator-7.1.4.tgz#8f4f752c5a8385abdaac1256127cef05988bc2ad" + dependencies: + conventional-changelog-angular "^5.0.0" + conventional-changelog-writer "^4.0.0" + conventional-commits-filter "^2.0.0" + conventional-commits-parser "^3.0.0" + debug "^4.0.0" + get-stream "^4.0.0" + import-from "^2.1.0" + into-stream "^4.0.0" + lodash "^4.17.4" + +"@sinonjs/commons@^1", "@sinonjs/commons@^1.0.2": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.4.0.tgz#7b3ec2d96af481d7a0321252e7b1c94724ec5a78" + dependencies: + type-detect "4.0.8" + +"@sinonjs/formatio@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-2.0.0.tgz#84db7e9eb5531df18a8c5e0bfb6e449e55e654b2" + dependencies: + samsam "1.3.0" + +"@sinonjs/formatio@^3.1.0": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-3.2.1.tgz#52310f2f9bcbc67bdac18c94ad4901b95fde267e" + dependencies: + "@sinonjs/commons" "^1" + "@sinonjs/samsam" "^3.1.0" + +"@sinonjs/samsam@^3.1.0": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-3.3.1.tgz#e88c53fbd9d91ad9f0f2b0140c16c7c107fe0d07" + dependencies: + "@sinonjs/commons" "^1.0.2" + array-from "^2.1.1" + lodash "^4.17.11" + +"@sinonjs/text-encoding@^0.7.1": + version "0.7.1" + resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" + +"@types/events@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" + +"@types/glob@^7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" + dependencies: + "@types/events" "*" + "@types/minimatch" "*" + "@types/node" "*" + +"@types/minimatch@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + +"@types/node@*": + version "12.0.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.0.0.tgz#d11813b9c0ff8aaca29f04cbc12817f4c7d656e5" + +"@types/node@^10.11.7": + version "10.14.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.6.tgz#9cbfcb62c50947217f4d88d4d274cc40c22625a9" + +"@types/normalize-package-data@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" + +JSONStream@^1.0.3, JSONStream@^1.0.4, JSONStream@^1.3.4, JSONStream@^1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +abbrev@1, abbrev@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + +accepts@^1.3.5, accepts@~1.3.4: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-dynamic-import@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948" + +acorn-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + dependencies: + acorn "^3.0.4" + +acorn-jsx@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e" + +acorn-node@^1.2.0, acorn-node@^1.3.0, acorn-node@^1.5.2, acorn-node@^1.6.1: + version "1.6.2" + resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.6.2.tgz#b7d7ceca6f22e6417af933a62cad4de01048d5d2" + dependencies: + acorn "^6.0.2" + acorn-dynamic-import "^4.0.0" + acorn-walk "^6.1.0" + xtend "^4.0.1" + +acorn-walk@^6.1.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.1.tgz#d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913" + +acorn@^3.0.4: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + +acorn@^5.5.0: + version "5.7.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" + +acorn@^6.0.2, acorn@^6.0.7: + version "6.1.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f" + +after@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" + +agent-base@4, agent-base@^4.1.0, agent-base@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" + dependencies: + es6-promisify "^5.0.0" + +agentkeepalive@^3.4.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.5.2.tgz#a113924dd3fa24a0bc3b78108c450c2abee00f67" + dependencies: + humanize-ms "^1.2.1" + +aggregate-error@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-2.2.0.tgz#f54b464db18cc77c907ae084451f39134707134a" + dependencies: + clean-stack "^2.0.0" + indent-string "^3.0.0" + +aggregate-error@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.0.tgz#5b5a3c95e9095f311c9ab16c19fb4f3527cd3f79" + dependencies: + clean-stack "^2.0.0" + indent-string "^3.2.0" + +ajv-keywords@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" + +ajv@^5.2.3, ajv@^5.3.0: + version "5.5.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.3.0" + +ajv@^6.5.5, ajv@^6.9.1: + version "6.10.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1" + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-align@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" + dependencies: + string-width "^2.0.0" + +ansi-escapes@^3.0.0, ansi-escapes@^3.1.0, ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + dependencies: + color-convert "^1.9.0" + +ansicolors@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" + +ansistyles@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/ansistyles/-/ansistyles-0.1.3.tgz#5de60415bda071bb37127854c864f41b23254539" + +anymatch@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" + dependencies: + micromatch "^2.1.5" + normalize-path "^2.0.0" + +append-transform@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab" + dependencies: + default-require-extensions "^2.0.0" + +aproba@^1.0.3, aproba@^1.1.1, aproba@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + +"aproba@^1.1.2 || 2", aproba@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + +archy@^1.0.0, archy@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + dependencies: + sprintf-js "~1.0.2" + +argv-formatter@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/argv-formatter/-/argv-formatter-1.0.0.tgz#a0ca0cbc29a5b73e836eebe1cbf6c5e0e4eb82f9" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + +arr-flatten@^1.0.1, arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + +array-filter@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" + +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + +array-from@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" + +array-ify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" + +array-includes@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.7.0" + +array-map@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" + +array-reduce@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" + +array-union@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + +array-uniq@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-2.1.0.tgz#46603d5e28e79bfd02b046fcc1d77c6820bd8e98" + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + +arraybuffer.slice@~0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" + +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + +asap@^2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + +asn1.js@^4.0.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +assert@^1.4.0, assert@^1.4.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + dependencies: + object-assign "^4.1.1" + util "0.10.3" + +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + +async-each@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + +async-limiter@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +atob-lite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/atob-lite/-/atob-lite-2.0.0.tgz#0fef5ad46f1bd7a8502c65727f0367d5ee43d696" + +atob@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + +aws4@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" + +axios@^0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.17.1.tgz#2d8e3e5d0bdbd7327f91bc814f5c57660f81824d" + dependencies: + follow-redirects "^1.2.5" + is-buffer "^1.1.5" + +babel-cli@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" + dependencies: + babel-core "^6.26.0" + babel-polyfill "^6.26.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + commander "^2.11.0" + convert-source-map "^1.5.0" + fs-readdir-recursive "^1.0.0" + glob "^7.1.2" + lodash "^4.17.4" + output-file-sync "^1.1.2" + path-is-absolute "^1.0.1" + slash "^1.0.0" + source-map "^0.5.6" + v8flags "^2.1.1" + optionalDependencies: + chokidar "^1.6.1" + +babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@^6.26.0: + version "6.26.3" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.1" + debug "^2.6.9" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.8" + slash "^1.0.0" + source-map "^0.5.7" + +babel-generator@^6.26.0: + version "6.26.1" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" + +babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" + dependencies: + babel-helper-explode-assignable-expression "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-call-delegate@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-define-map@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-explode-assignable-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" + dependencies: + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-get-function-arity@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-hoist-variables@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-optimise-call-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-regex@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" + dependencies: + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-remap-async-to-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-replace-supers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" + dependencies: + babel-helper-optimise-call-expression "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-check-es2015-constants@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-syntax-async-functions@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" + +babel-plugin-syntax-exponentiation-operator@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" + +babel-plugin-syntax-trailing-function-commas@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" + +babel-plugin-transform-async-to-generator@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" + dependencies: + babel-helper-remap-async-to-generator "^6.24.1" + babel-plugin-syntax-async-functions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-arrow-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoping@^6.23.0, babel-plugin-transform-es2015-block-scoping@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" + dependencies: + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-plugin-transform-es2015-classes@^6.23.0, babel-plugin-transform-es2015-classes@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" + dependencies: + babel-helper-define-map "^6.24.1" + babel-helper-function-name "^6.24.1" + babel-helper-optimise-call-expression "^6.24.1" + babel-helper-replace-supers "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-computed-properties@^6.22.0, babel-plugin-transform-es2015-computed-properties@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-destructuring@^6.22.0, babel-plugin-transform-es2015-destructuring@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-duplicate-keys@^6.22.0, babel-plugin-transform-es2015-duplicate-keys@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-for-of@^6.22.0, babel-plugin-transform-es2015-for-of@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-function-name@^6.22.0, babel-plugin-transform-es2015-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" + dependencies: + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: + version "6.26.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" + dependencies: + babel-plugin-transform-strict-mode "^6.24.1" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-types "^6.26.0" + +babel-plugin-transform-es2015-modules-systemjs@^6.23.0, babel-plugin-transform-es2015-modules-systemjs@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-umd@^6.23.0, babel-plugin-transform-es2015-modules-umd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" + dependencies: + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-object-super@^6.22.0, babel-plugin-transform-es2015-object-super@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" + dependencies: + babel-helper-replace-supers "^6.24.1" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-parameters@^6.23.0, babel-plugin-transform-es2015-parameters@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" + dependencies: + babel-helper-call-delegate "^6.24.1" + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-shorthand-properties@^6.22.0, babel-plugin-transform-es2015-shorthand-properties@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-spread@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-sticky-regex@^6.22.0, babel-plugin-transform-es2015-sticky-regex@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-template-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-typeof-symbol@^6.22.0, babel-plugin-transform-es2015-typeof-symbol@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-unicode-regex@^6.22.0, babel-plugin-transform-es2015-unicode-regex@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + regexpu-core "^2.0.0" + +babel-plugin-transform-exponentiation-operator@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" + dependencies: + babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" + babel-plugin-syntax-exponentiation-operator "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-regenerator@^6.22.0, babel-plugin-transform-regenerator@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" + dependencies: + regenerator-transform "^0.10.0" + +babel-plugin-transform-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-polyfill@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" + dependencies: + babel-runtime "^6.26.0" + core-js "^2.5.0" + regenerator-runtime "^0.10.5" + +babel-preset-env@^1.6.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-syntax-trailing-function-commas "^6.22.0" + babel-plugin-transform-async-to-generator "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.23.0" + babel-plugin-transform-es2015-classes "^6.23.0" + babel-plugin-transform-es2015-computed-properties "^6.22.0" + babel-plugin-transform-es2015-destructuring "^6.23.0" + babel-plugin-transform-es2015-duplicate-keys "^6.22.0" + babel-plugin-transform-es2015-for-of "^6.23.0" + babel-plugin-transform-es2015-function-name "^6.22.0" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.22.0" + babel-plugin-transform-es2015-modules-commonjs "^6.23.0" + babel-plugin-transform-es2015-modules-systemjs "^6.23.0" + babel-plugin-transform-es2015-modules-umd "^6.23.0" + babel-plugin-transform-es2015-object-super "^6.22.0" + babel-plugin-transform-es2015-parameters "^6.23.0" + babel-plugin-transform-es2015-shorthand-properties "^6.22.0" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.22.0" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.23.0" + babel-plugin-transform-es2015-unicode-regex "^6.22.0" + babel-plugin-transform-exponentiation-operator "^6.22.0" + babel-plugin-transform-regenerator "^6.22.0" + browserslist "^3.2.6" + invariant "^2.2.2" + semver "^5.3.0" + +babel-preset-es2015@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.24.1" + babel-plugin-transform-es2015-classes "^6.24.1" + babel-plugin-transform-es2015-computed-properties "^6.24.1" + babel-plugin-transform-es2015-destructuring "^6.22.0" + babel-plugin-transform-es2015-duplicate-keys "^6.24.1" + babel-plugin-transform-es2015-for-of "^6.22.0" + babel-plugin-transform-es2015-function-name "^6.24.1" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-plugin-transform-es2015-modules-systemjs "^6.24.1" + babel-plugin-transform-es2015-modules-umd "^6.24.1" + babel-plugin-transform-es2015-object-super "^6.24.1" + babel-plugin-transform-es2015-parameters "^6.24.1" + babel-plugin-transform-es2015-shorthand-properties "^6.24.1" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.24.1" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.22.0" + babel-plugin-transform-es2015-unicode-regex "^6.24.1" + babel-plugin-transform-regenerator "^6.24.1" + +babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + +babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.24.1, babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.24.1, babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + +backo2@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + +base-x@^3.0.2: + version "3.0.5" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.5.tgz#d3ada59afed05b921ab581ec3112e6444ba0795a" + dependencies: + safe-buffer "^5.0.1" + +base64-arraybuffer@0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" + +base64-js@^1.0.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" + +base64id@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +bc-bip68@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/bc-bip68/-/bc-bip68-1.0.5.tgz#4d3774067d8c9e922e225f5f2c4178ee9ae8dc94" + +bch-wallet-bridge-provider-interface@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/bch-wallet-bridge-provider-interface/-/bch-wallet-bridge-provider-interface-0.1.1.tgz#5f1fb2a9738829611111c0ff9886228c3bd494aa" + +"bch-wallet-bridge.js@github:web3bch/bch-wallet-bridge.js#master": + version "0.1.1" + resolved "https://codeload.github.com/web3bch/bch-wallet-bridge.js/tar.gz/f73558eaf3a98ba2a23de3c9cbbd582b30ff19eb" + dependencies: + bch-wallet-bridge-provider-interface "^0.1.1" + bchaddrjs "^0.2.2" + bitcoincashjs "^0.1.10" + +bchaddrjs@^0.2.2: + version "0.2.3" + resolved "https://registry.yarnpkg.com/bchaddrjs/-/bchaddrjs-0.2.3.tgz#c3008ac85d7c7e583e83a30604c427b5bed26c68" + dependencies: + bs58check "^2.1.2" + cashaddrjs "^0.2.9" + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + dependencies: + tweetnacl "^0.14.3" + +bech32@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.3.tgz#bd47a8986bbb3eec34a56a097a84b8d3e9a2dfcd" + +before-after-hook@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-1.4.0.tgz#2b6bf23dca4f32e628fd2747c10a37c74a4b484d" + +better-assert@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + dependencies: + callsite "1.0.0" + +big-integer@^1.6.34: + version "1.6.43" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.43.tgz#8ac15bf13e93e509500859061233e19d8d0d99d1" + +big.js@^3.1.3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" + +bigi@^1.1.0, bigi@^1.2.0, bigi@^1.4.0, bigi@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/bigi/-/bigi-1.4.2.tgz#9c665a95f88b8b08fc05cfd731f561859d725825" + +bin-links@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-1.1.2.tgz#fb74bd54bae6b7befc6c6221f25322ac830d9757" + dependencies: + bluebird "^3.5.0" + cmd-shim "^2.0.2" + gentle-fs "^2.0.0" + graceful-fs "^4.1.11" + write-file-atomic "^2.3.0" + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + +bindings@^1.2.1, bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + dependencies: + file-uri-to-path "1.0.0" + +bip-schnorr@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/bip-schnorr/-/bip-schnorr-0.3.0.tgz#e6490379603704e9dd123d874b41755aea4f352c" + dependencies: + ecurve "^1.0.6" + js-sha256 "^0.9.0" + random-bytes "^1.0.0" + safe-buffer "^5.0.1" + +bip21@Bitcoin-com/bip21: + version "2.0.1" + resolved "https://codeload.github.com/Bitcoin-com/bip21/tar.gz/28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f" + dependencies: + qs "^6.3.0" + +bip32-utils@Bitcoin-com/bip32-utils#0.13.1: + version "0.13.1" + resolved "https://codeload.github.com/Bitcoin-com/bip32-utils/tar.gz/b8a33ebd0a0ac39de7cd987e5c3f77a8c5d84e58" + dependencies: + keccak "^1.3.0" + nyc "*" + standard "^11.0.1" + tape "*" + +bip38@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/bip38/-/bip38-2.0.2.tgz#6f7762bc90b0bdf63b489ff95349354aecf9baee" + dependencies: + bigi "^1.2.0" + browserify-aes "^1.0.1" + bs58check "<3.0.0" + buffer-xor "^1.0.2" + create-hash "^1.1.1" + ecurve "^1.0.0" + scryptsy "^2.0.0" + +bip39@^2.5.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/bip39/-/bip39-2.6.0.tgz#9e3a720b42ec8b3fbe4038f1e445317b6a99321c" + dependencies: + create-hash "^1.1.0" + pbkdf2 "^3.0.9" + randombytes "^2.0.1" + safe-buffer "^5.0.1" + unorm "^1.3.3" + +bip66@^1.1.0, bip66@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/bip66/-/bip66-1.1.5.tgz#01fa8748785ca70955d5011217d1b3139969ca22" + dependencies: + safe-buffer "^5.0.1" + +bitcoincash-ops@Bitcoin-com/bitcoincash-ops#2.0.0: + version "2.0.0" + resolved "https://codeload.github.com/Bitcoin-com/bitcoincash-ops/tar.gz/6ab82cc7326c67236f3b2d9d0457258ac2ef48e3" + +bitcoincashjs-lib@Bitcoin-com/bitcoincashjs-lib#v4.0.0: + version "4.0.0" + resolved "https://codeload.github.com/Bitcoin-com/bitcoincashjs-lib/tar.gz/3d360c780ec7df4a74aea93664c2b5ff8b08949a" + dependencies: + bech32 "^1.1.2" + bigi "^1.4.0" + bip66 "^1.1.0" + bitcoincash-ops Bitcoin-com/bitcoincash-ops#2.0.0 + bs58check "^2.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.3" + ecurve "^1.0.0" + merkle-lib "^2.0.10" + pushdata-bitcoin Bitcoin-com/pushdata-bitcoin#1.2.1 + randombytes "^2.0.1" + safe-buffer "^5.0.1" + typeforce "^1.11.3" + varuint-bitcoin "^1.0.4" + wif "^2.0.1" + +bitcoincashjs@^0.1.10: + version "0.1.14" + resolved "https://registry.yarnpkg.com/bitcoincashjs/-/bitcoincashjs-0.1.14.tgz#9da1efb762e05d608b6e04fadf1277eaa2201b48" + +bitcoinjs-message@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz#e285d223607dabf2b33a6ee486a223b59d1b1548" + dependencies: + bs58check "^2.0.2" + buffer-equals "^1.0.3" + create-hash "^1.1.2" + secp256k1 "^3.0.1" + varuint-bitcoin "^1.0.1" + +blob@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" + +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + dependencies: + inherits "~2.0.0" + +bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.5.3: + version "3.5.4" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.4.tgz#d6cc661595de30d5b3af5fcedd3c0b3ef6ec5714" + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.11.8, bn.js@^4.4.0: + version "4.11.8" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + +bottleneck@^2.0.1: + version "2.18.0" + resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.18.0.tgz#41fa63ae185b65435d789d1700334bc48222dacf" + +boxen@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" + dependencies: + ansi-align "^2.0.0" + camelcase "^4.0.0" + chalk "^2.0.1" + cli-boxes "^1.0.0" + string-width "^2.0.0" + term-size "^1.2.0" + widest-line "^2.0.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +braces@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + +browser-pack@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.1.0.tgz#c34ba10d0b9ce162b5af227c7131c92c2ecd5774" + dependencies: + JSONStream "^1.0.3" + combine-source-map "~0.8.0" + defined "^1.0.0" + safe-buffer "^5.1.1" + through2 "^2.0.0" + umd "^3.0.0" + +browser-resolve@^1.11.0, browser-resolve@^1.7.0: + version "1.11.3" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + dependencies: + resolve "1.1.7" + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + +browserify-aes@^1.0.0, browserify-aes@^1.0.1, browserify-aes@^1.0.4, browserify-aes@^1.0.6: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + +browserify-zlib@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + dependencies: + pako "~1.0.5" + +browserify@^16.2.2: + version "16.2.3" + resolved "https://registry.yarnpkg.com/browserify/-/browserify-16.2.3.tgz#7ee6e654ba4f92bce6ab3599c3485b1cc7a0ad0b" + dependencies: + JSONStream "^1.0.3" + assert "^1.4.0" + browser-pack "^6.0.1" + browser-resolve "^1.11.0" + browserify-zlib "~0.2.0" + buffer "^5.0.2" + cached-path-relative "^1.0.0" + concat-stream "^1.6.0" + console-browserify "^1.1.0" + constants-browserify "~1.0.0" + crypto-browserify "^3.0.0" + defined "^1.0.0" + deps-sort "^2.0.0" + domain-browser "^1.2.0" + duplexer2 "~0.1.2" + events "^2.0.0" + glob "^7.1.0" + has "^1.0.0" + htmlescape "^1.1.0" + https-browserify "^1.0.0" + inherits "~2.0.1" + insert-module-globals "^7.0.0" + labeled-stream-splicer "^2.0.0" + mkdirp "^0.5.0" + module-deps "^6.0.0" + os-browserify "~0.3.0" + parents "^1.0.1" + path-browserify "~0.0.0" + process "~0.11.0" + punycode "^1.3.2" + querystring-es3 "~0.2.0" + read-only-stream "^2.0.0" + readable-stream "^2.0.2" + resolve "^1.1.4" + shasum "^1.0.0" + shell-quote "^1.6.1" + stream-browserify "^2.0.0" + stream-http "^2.0.0" + string_decoder "^1.1.1" + subarg "^1.0.0" + syntax-error "^1.1.1" + through2 "^2.0.0" + timers-browserify "^1.0.1" + tty-browserify "0.0.1" + url "~0.11.0" + util "~0.10.1" + vm-browserify "^1.0.0" + xtend "^4.0.0" + +browserslist@^3.2.6: + version "3.2.8" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" + dependencies: + caniuse-lite "^1.0.30000844" + electron-to-chromium "^1.3.47" + +bs58@^4.0.0, bs58@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" + dependencies: + base-x "^3.0.2" + +bs58check@<3.0.0, bs58check@^2.0.0, bs58check@^2.0.2, bs58check@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" + dependencies: + bs58 "^4.0.0" + create-hash "^1.1.0" + safe-buffer "^5.1.2" + +btoa-lite@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" + +buffer-equals@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/buffer-equals/-/buffer-equals-1.0.4.tgz#0353b54fd07fd9564170671ae6f66b9cf10d27f5" + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + +buffer-xor@^1.0.2, buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + +buffer@^5.0.2, buffer@^5.1.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6" + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +builtin-modules@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + +builtins@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" + +byline@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1" + +byte-size@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-5.0.1.tgz#4b651039a5ecd96767e71a3d7ed380e48bed4191" + +cacache@^11.0.1, cacache@^11.3.2: + version "11.3.2" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.2.tgz#2d81e308e3d258ca38125b676b98b2ac9ce69bfa" + dependencies: + bluebird "^3.5.3" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.3" + graceful-fs "^4.1.15" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.2" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +cached-path-relative@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.2.tgz#a13df4196d26776220cc3356eb147a52dba2c6db" + +caching-transform@^3.0.1, caching-transform@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-3.0.2.tgz#601d46b91eca87687a281e71cef99791b0efca70" + dependencies: + hasha "^3.0.0" + make-dir "^2.0.0" + package-hash "^3.0.0" + write-file-atomic "^2.4.2" + +call-limit@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/call-limit/-/call-limit-1.1.0.tgz#6fd61b03f3da42a2cd0ec2b60f02bd0e71991fea" + +call-me-maybe@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + dependencies: + callsites "^2.0.0" + +caller-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + dependencies: + callsites "^0.2.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + dependencies: + caller-callsite "^2.0.0" + +callsite@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + +callsites@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + +camelcase-keys@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" + dependencies: + camelcase "^4.1.0" + map-obj "^2.0.0" + quick-lru "^1.0.0" + +camelcase@^4.0.0, camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + +camelcase@^5.0.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + +can-promise@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/can-promise/-/can-promise-0.0.1.tgz#7a7597ad801fb14c8b22341dfec314b6bd6ad8d3" + dependencies: + window-or-global "^1.0.1" + +caniuse-lite@^1.0.30000844: + version "1.0.30000967" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000967.tgz#a5039577806fccee80a04aaafb2c0890b1ee2f73" + +capture-stack-trace@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" + +cardinal@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/cardinal/-/cardinal-2.1.1.tgz#7cc1055d822d212954d07b085dea251cc7bc5505" + dependencies: + ansicolors "~0.3.2" + redeyed "~2.1.0" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + +cashaddrjs@^0.2.9: + version "0.2.9" + resolved "https://registry.yarnpkg.com/cashaddrjs/-/cashaddrjs-0.2.9.tgz#e38e323e11e0ab761767006b3938a36278dadec9" + dependencies: + big-integer "^1.6.34" + +chai@^4.1.2: + version "4.2.0" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5" + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.2" + deep-eql "^3.0.1" + get-func-name "^2.0.0" + pathval "^1.1.0" + type-detect "^4.0.5" + +chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + 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" + +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chardet@^0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + +check-error@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + +chokidar@^1.6.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" + dependencies: + anymatch "^1.3.0" + async-each "^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" + optionalDependencies: + fsevents "^1.0.0" + +chownr@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" + +ci-info@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + +cidr-regex@^2.0.10: + version "2.0.10" + resolved "https://registry.yarnpkg.com/cidr-regex/-/cidr-regex-2.0.10.tgz#af13878bd4ad704de77d6dc800799358b3afa70d" + dependencies: + ip-regex "^2.1.0" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +circular-json@^0.3.1: + version "0.3.3" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +clean-stack@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.1.0.tgz#9e7fec7f3f8340a2ab4f127c80273085e8fbbdd0" + +clear@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/clear/-/clear-0.0.1.tgz#e5186e229d99448179c130311b6f9d30bff6b0ba" + +cli-boxes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" + +cli-columns@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/cli-columns/-/cli-columns-3.1.2.tgz#6732d972979efc2ae444a1f08e08fa139c96a18e" + dependencies: + string-width "^2.0.0" + strip-ansi "^3.0.1" + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + dependencies: + restore-cursor "^2.0.0" + +cli-table3@^0.5.0, cli-table3@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" + dependencies: + object-assign "^4.1.0" + string-width "^2.1.1" + optionalDependencies: + colors "^1.1.2" + +cli-table@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23" + dependencies: + colors "1.0.3" + +cli-width@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + +cliui@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + +cmd-shim@^2.0.2, cmd-shim@~2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-2.0.2.tgz#6fcbda99483a8fd15d7d30a196ca69d688a2efdb" + dependencies: + graceful-fs "^4.1.2" + mkdirp "~0.5.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + +coininfo@Bitcoin-com/coininfo: + version "4.0.0" + resolved "https://codeload.github.com/Bitcoin-com/coininfo/tar.gz/eece2c6141d08c3e7783929f2a1e1e681aa1a82c" + dependencies: + safe-buffer "^5.1.1" + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + +colors@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" + +colors@^1.1.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" + +columnify@~1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" + dependencies: + strip-ansi "^3.0.0" + wcwidth "^1.0.0" + +combine-source-map@^0.8.0, combine-source-map@~0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.8.0.tgz#a58d0df042c186fcf822a8e8015f5450d2d79a8b" + dependencies: + convert-source-map "~1.1.0" + inline-source-map "~0.6.0" + lodash.memoize "~3.0.3" + source-map "~0.5.3" + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828" + dependencies: + delayed-stream "~1.0.0" + +commander@2.15.1: + version "2.15.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" + +commander@^2.11.0, commander@^2.13.0, commander@~2.20.0: + version "2.20.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + +compare-func@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-1.3.2.tgz#99dd0ba457e1f9bc722b12c08ec33eeab31fa648" + dependencies: + array-ify "^1.0.0" + dot-prop "^3.0.0" + +component-bind@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + +component-emitter@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + +component-inherit@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +concat-stream@^1.5.0, concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@~1.6.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +config-chain@^1.1.12: + version "1.1.12" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +configstore@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" + dependencies: + dot-prop "^4.1.0" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + unique-string "^1.0.0" + write-file-atomic "^2.0.0" + xdg-basedir "^3.0.0" + +console-browserify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + dependencies: + date-now "^0.1.4" + +console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + +constants-browserify@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + +contains-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + +conventional-changelog-angular@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.3.tgz#299fdd43df5a1f095283ac16aeedfb0a682ecab0" + dependencies: + compare-func "^1.3.1" + q "^1.5.1" + +conventional-changelog-writer@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.0.3.tgz#916a2b302d0bb5ef18efd236a034c13fb273cde1" + dependencies: + compare-func "^1.3.1" + conventional-commits-filter "^2.0.1" + dateformat "^3.0.0" + handlebars "^4.1.0" + json-stringify-safe "^5.0.1" + lodash "^4.2.1" + meow "^4.0.0" + semver "^5.5.0" + split "^1.0.0" + through2 "^2.0.0" + +conventional-commits-filter@^2.0.0, conventional-commits-filter@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.1.tgz#55a135de1802f6510b6758e0a6aa9e0b28618db3" + dependencies: + is-subset "^0.1.1" + modify-values "^1.0.0" + +conventional-commits-parser@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.0.1.tgz#fe1c49753df3f98edb2285a5e485e11ffa7f2e4c" + dependencies: + JSONStream "^1.0.4" + is-text-path "^1.0.0" + lodash "^4.2.1" + meow "^4.0.0" + split2 "^2.0.0" + through2 "^2.0.0" + trim-off-newlines "^1.0.0" + +convert-source-map@^1.5.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" + dependencies: + safe-buffer "~5.1.1" + +convert-source-map@~1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860" + +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + +core-js@^2.4.0, core-js@^2.5.0: + version "2.6.5" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.5.tgz#44bc8d249e7fb2ff5d00e0341a7ffb94fbf67895" + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +cosmiconfig@^5.0.1: + version "5.2.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.0.tgz#45038e4d28a7fe787203aede9c25bca4a08b12c8" + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.0" + parse-json "^4.0.0" + +coveralls@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-3.0.3.tgz#83b1c64aea1c6afa69beaf50b55ac1bc4d13e2b8" + dependencies: + growl "~> 1.10.0" + js-yaml "^3.11.0" + lcov-parse "^0.0.10" + log-driver "^1.2.7" + minimist "^1.2.0" + request "^2.86.0" + +cp-file@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cp-file/-/cp-file-5.0.0.tgz#bc700fd30ca32d24d46c7fb02b992e435fc5a978" + dependencies: + graceful-fs "^4.1.2" + make-dir "^1.0.0" + nested-error-stacks "^2.0.0" + pify "^3.0.0" + safe-buffer "^5.0.1" + +cp-file@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/cp-file/-/cp-file-6.2.0.tgz#40d5ea4a1def2a9acdd07ba5c0b0246ef73dc10d" + dependencies: + graceful-fs "^4.1.2" + make-dir "^2.0.0" + nested-error-stacks "^2.0.0" + pify "^4.0.1" + safe-buffer "^5.0.1" + +create-ecdh@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-error-class@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + dependencies: + capture-stack-trace "^1.0.0" + +create-hash@^1.1.0, create-hash@^1.1.1, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.3, create-hmac@^1.1.4: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-spawn@^4: + version "4.0.2" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" + dependencies: + lru-cache "^4.0.1" + which "^1.2.9" + +cross-spawn@^5.0.1, cross-spawn@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +crypto-browserify@^3.0.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +crypto-random-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + dependencies: + array-find-index "^1.0.1" + +cyclist@~0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" + +dash-ast@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dash-ast/-/dash-ast-1.0.0.tgz#12029ba5fb2f8aa6f0a861795b23c1b4b6c27d37" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + dependencies: + assert-plus "^1.0.0" + +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + +dateformat@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" + +debug-log@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" + +debug@3.1.0, debug@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + dependencies: + ms "2.0.0" + +debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + dependencies: + ms "2.0.0" + +debug@^3.1.0, debug@^3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + dependencies: + ms "^2.1.1" + +debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + dependencies: + ms "^2.1.1" + +debuglog@*, debuglog@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" + +decamelize-keys@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" + dependencies: + decamelize "^1.1.0" + map-obj "^1.0.0" + +decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + +deep-eql@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + dependencies: + type-detect "^4.0.0" + +deep-equal@^1.0.0, deep-equal@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + +deepmerge@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.2.0.tgz#58ef463a57c08d376547f8869fdc5bcee957f44e" + +default-require-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-2.0.0.tgz#f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7" + dependencies: + strip-bom "^3.0.0" + +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + dependencies: + clone "^1.0.2" + +define-properties@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +defined@^1.0.0, defined@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + +deglob@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/deglob/-/deglob-2.1.1.tgz#d268e168727799862e8eac07042e165957c1f3be" + dependencies: + find-root "^1.0.0" + glob "^7.0.5" + ignore "^3.0.9" + pkg-config "^1.1.0" + run-parallel "^1.1.2" + uniq "^1.0.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + +depd@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + +deprecation@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-1.0.1.tgz#2df79b79005752180816b7b6e079cbd80490d711" + +deps-sort@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.0.tgz#091724902e84658260eb910748cccd1af6e21fb5" + dependencies: + JSONStream "^1.0.3" + shasum "^1.0.0" + subarg "^1.0.0" + through2 "^2.0.0" + +des.js@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + dependencies: + repeating "^2.0.0" + +detect-indent@~5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" + +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + +detect-newline@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" + +detective@^5.0.2: + version "5.2.0" + resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b" + dependencies: + acorn-node "^1.6.1" + defined "^1.0.0" + minimist "^1.1.1" + +dezalgo@^1.0.0, dezalgo@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" + dependencies: + asap "^2.0.0" + wrappy "1" + +diff@3.5.0, diff@^3.1.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dijkstrajs@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.1.tgz#d3cd81221e3ea40742cfcde556d4e99e98ddc71b" + +dir-glob@^2.0.0, dir-glob@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" + dependencies: + path-type "^3.0.0" + +doctrine@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctrine@^2.0.2, doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + dependencies: + esutils "^2.0.2" + +domain-browser@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + +dot-prop@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" + dependencies: + is-obj "^1.0.0" + +dot-prop@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" + dependencies: + is-obj "^1.0.0" + +dotenv@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-5.0.1.tgz#a5317459bd3d79ab88cff6e44057a6a3fbb1fcef" + +drbg.js@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/drbg.js/-/drbg.js-1.0.1.tgz#3e36b6c42b37043823cdbc332d58f31e2445480b" + dependencies: + browserify-aes "^1.0.6" + create-hash "^1.1.2" + create-hmac "^1.1.4" + +duplexer2@^0.1.2, duplexer2@~0.1.0, duplexer2@~0.1.2: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" + dependencies: + readable-stream "^2.0.2" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ecurve@^1.0.0, ecurve@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/ecurve/-/ecurve-1.0.6.tgz#dfdabbb7149f8d8b78816be5a7d5b83fcf6de797" + dependencies: + bigi "^1.1.0" + safe-buffer "^5.0.1" + +editor@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/editor/-/editor-1.0.0.tgz#60c7f87bd62bcc6a894fa8ccd6afb7823a24f742" + +electron-to-chromium@^1.3.47: + version "1.3.133" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.133.tgz#c47639c19b91feee3e22fad69f5556142007008c" + +elliptic@^6.0.0, elliptic@^6.4.1: + version "6.4.1" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + +encoding@^0.1.11: + version "0.1.12" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" + dependencies: + iconv-lite "~0.4.13" + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" + dependencies: + once "^1.4.0" + +engine.io-client@~3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.3.2.tgz#04e068798d75beda14375a264bb3d742d7bc33aa" + dependencies: + component-emitter "1.2.1" + component-inherit "0.0.3" + debug "~3.1.0" + engine.io-parser "~2.1.1" + has-cors "1.1.0" + indexof "0.0.1" + parseqs "0.0.5" + parseuri "0.0.5" + ws "~6.1.0" + xmlhttprequest-ssl "~1.5.4" + yeast "0.1.2" + +engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz#757ab970fbf2dfb32c7b74b033216d5739ef79a6" + dependencies: + after "0.8.2" + arraybuffer.slice "~0.0.7" + base64-arraybuffer "0.1.5" + blob "0.0.5" + has-binary2 "~1.0.2" + +engine.io@~3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.3.2.tgz#18cbc8b6f36e9461c5c0f81df2b830de16058a59" + dependencies: + accepts "~1.3.4" + base64id "1.0.0" + cookie "0.3.1" + debug "~3.1.0" + engine.io-parser "~2.1.0" + ws "~6.1.0" + +env-ci@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/env-ci/-/env-ci-3.2.0.tgz#982f02a0501ca8c43bf0765c5bd3d83ffb28b23a" + dependencies: + execa "^1.0.0" + java-properties "^0.2.9" + +err-code@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" + +errno@~0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.5.0, es-abstract@^1.7.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" + dependencies: + es-to-primitive "^1.2.0" + function-bind "^1.1.1" + has "^1.0.3" + is-callable "^1.1.4" + is-regex "^1.0.4" + object-keys "^1.0.12" + +es-to-primitive@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es6-error@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + +es6-promise@^4.0.3: + version "4.2.6" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.6.tgz#b685edd8258886365ea62b57d30de28fadcd974f" + +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + dependencies: + es6-promise "^4.0.3" + +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +eslint-config-prettier@^3.0.1: + version "3.6.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-3.6.0.tgz#8ca3ffac4bd6eeef623a0651f9d754900e3ec217" + dependencies: + get-stdin "^6.0.0" + +eslint-config-standard-jsx@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-5.0.0.tgz#4abfac554f38668e0078c664569e7b2384e5d2aa" + +eslint-config-standard@11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-11.0.0.tgz#87ee0d3c9d95382dc761958cbb23da9eea31e0ba" + +eslint-import-resolver-node@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" + dependencies: + debug "^2.6.9" + resolve "^1.5.0" + +eslint-module-utils@^2.1.1: + version "2.4.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz#8b93499e9b00eab80ccb6614e69f03678e84e09a" + dependencies: + debug "^2.6.8" + pkg-dir "^2.0.0" + +eslint-plugin-es@^1.3.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.0.tgz#475f65bb20c993fc10e8c8fe77d1d60068072da6" + dependencies: + eslint-utils "^1.3.0" + regexpp "^2.0.1" + +eslint-plugin-import@~2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz#26002efbfca5989b7288ac047508bd24f217b169" + dependencies: + builtin-modules "^1.1.1" + contains-path "^0.1.0" + debug "^2.6.8" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.1" + eslint-module-utils "^2.1.1" + has "^1.0.1" + lodash "^4.17.4" + minimatch "^3.0.3" + read-pkg-up "^2.0.0" + +eslint-plugin-node@7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-7.0.1.tgz#a6e054e50199b2edd85518b89b4e7b323c9f36db" + dependencies: + eslint-plugin-es "^1.3.1" + eslint-utils "^1.3.1" + ignore "^4.0.2" + minimatch "^3.0.4" + resolve "^1.8.1" + semver "^5.5.0" + +eslint-plugin-node@~6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz#bf19642298064379315d7a4b2a75937376fa05e4" + dependencies: + ignore "^3.3.6" + minimatch "^3.0.4" + resolve "^1.3.3" + semver "^5.4.1" + +eslint-plugin-prettier@^2.6.2: + version "2.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.7.0.tgz#b4312dcf2c1d965379d7f9d5b5f8aaadc6a45904" + dependencies: + fast-diff "^1.1.1" + jest-docblock "^21.0.0" + +eslint-plugin-promise@~3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-3.7.0.tgz#f4bde5c2c77cdd69557a8f69a24d1ad3cfc9e67e" + +eslint-plugin-react@~7.7.0: + version "7.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz#f606c719dbd8a1a2b3d25c16299813878cca0160" + dependencies: + doctrine "^2.0.2" + has "^1.0.1" + jsx-ast-utils "^2.0.1" + prop-types "^15.6.0" + +eslint-plugin-standard@~3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz#34d0c915b45edc6f010393c7eef3823b08565cf2" + +eslint-scope@^3.7.1: + version "3.7.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535" + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^1.3.0, eslint-utils@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512" + +eslint-visitor-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" + +eslint@^5.5.0: + version "5.16.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.9.1" + chalk "^2.1.0" + cross-spawn "^6.0.5" + debug "^4.0.1" + doctrine "^3.0.0" + eslint-scope "^4.0.3" + eslint-utils "^1.3.1" + eslint-visitor-keys "^1.0.0" + espree "^5.0.1" + esquery "^1.0.1" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob "^7.1.2" + globals "^11.7.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + inquirer "^6.2.2" + js-yaml "^3.13.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.11" + minimatch "^3.0.4" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.2" + progress "^2.0.0" + regexpp "^2.0.1" + semver "^5.5.1" + strip-ansi "^4.0.0" + strip-json-comments "^2.0.1" + table "^5.2.3" + text-table "^0.2.0" + +eslint@~4.18.0: + version "4.18.2" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.18.2.tgz#0f81267ad1012e7d2051e186a9004cc2267b8d45" + dependencies: + ajv "^5.3.0" + babel-code-frame "^6.22.0" + chalk "^2.1.0" + concat-stream "^1.6.0" + cross-spawn "^5.1.0" + debug "^3.1.0" + doctrine "^2.1.0" + eslint-scope "^3.7.1" + eslint-visitor-keys "^1.0.0" + espree "^3.5.2" + esquery "^1.0.0" + esutils "^2.0.2" + file-entry-cache "^2.0.0" + functional-red-black-tree "^1.0.1" + glob "^7.1.2" + globals "^11.0.1" + ignore "^3.3.3" + imurmurhash "^0.1.4" + inquirer "^3.0.6" + is-resolvable "^1.0.0" + js-yaml "^3.9.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.4" + minimatch "^3.0.2" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.2" + pluralize "^7.0.0" + progress "^2.0.0" + require-uncached "^1.0.3" + semver "^5.3.0" + strip-ansi "^4.0.0" + strip-json-comments "~2.0.1" + table "4.0.2" + text-table "~0.2.0" + +espree@^3.5.2: + version "3.5.4" + resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" + dependencies: + acorn "^5.5.0" + acorn-jsx "^3.0.0" + +espree@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" + dependencies: + acorn "^6.0.7" + acorn-jsx "^5.0.0" + eslint-visitor-keys "^1.0.0" + +esprima@^4.0.0, esprima@~4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + +esquery@^1.0.0, esquery@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" + dependencies: + estraverse "^4.0.0" + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + dependencies: + estraverse "^4.1.0" + +estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + +esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +events@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/events/-/events-2.1.0.tgz#2a9a1e18e6106e0e812aa9ebd4a819b3c29c0ba5" + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + dependencies: + 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" + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.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" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + +external-editor@^2.0.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" + dependencies: + chardet "^0.4.0" + iconv-lite "^0.4.17" + tmp "^0.0.33" + +external-editor@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + +fast-deep-equal@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" + +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + +fast-diff@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" + +fast-glob@^2.2.6: + version "2.2.6" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.6.tgz#a5d5b697ec8deda468d85a74035290a025a95295" + dependencies: + "@mrmlnc/readdir-enhanced" "^2.2.1" + "@nodelib/fs.stat" "^1.1.2" + glob-parent "^3.1.0" + is-glob "^4.0.0" + merge2 "^1.2.3" + micromatch "^3.1.10" + +fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + +figgy-pudding@^3.4.1, figgy-pudding@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" + +figlet@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/figlet/-/figlet-1.2.1.tgz#48d35df9d9b10b1b3888302e6e57904a0b00509c" + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + dependencies: + flat-cache "^2.0.1" + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + +fill-range@^2.1.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^3.0.0" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-npm-prefix@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/find-npm-prefix/-/find-npm-prefix-1.0.2.tgz#8d8ce2c78b3b4b9e66c8acc6a37c231eb841cfdf" + +find-root@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + dependencies: + locate-path "^2.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + dependencies: + locate-path "^3.0.0" + +find-versions@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.1.0.tgz#10161f29cf3eb4350dec10a29bdde75bff0df32d" + dependencies: + array-uniq "^2.1.0" + semver-regex "^2.0.0" + +flat-cache@^1.2.1: + version "1.3.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f" + dependencies: + circular-json "^0.3.1" + graceful-fs "^4.1.2" + rimraf "~2.6.2" + write "^0.2.1" + +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flatted@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.0.tgz#55122b6536ea496b4b44893ee2608141d10d9916" + +flush-write-stream@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +follow-redirects@^1.2.5: + version "1.7.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.7.0.tgz#489ebc198dc0e7f64167bd23b03c4c19b5784c76" + dependencies: + debug "^3.2.6" + +for-each@~0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + dependencies: + is-callable "^1.1.3" + +for-in@^1.0.1, for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + dependencies: + for-in "^1.0.1" + +foreground-child@^1.5.6: + version "1.5.6" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9" + dependencies: + cross-spawn "^4" + signal-exit "^3.0.0" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + dependencies: + map-cache "^0.2.2" + +fresh@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + +from2@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-1.3.0.tgz#88413baaa5f9a597cfde9221d86986cd3c061dfd" + dependencies: + inherits "~2.0.1" + readable-stream "~1.1.10" + +from2@^2.1.0, from2@^2.1.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-extra@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-minipass@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" + dependencies: + minipass "^2.2.1" + +fs-readdir-recursive@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" + +fs-vacuum@^1.2.10, fs-vacuum@~1.2.10: + version "1.2.10" + resolved "https://registry.yarnpkg.com/fs-vacuum/-/fs-vacuum-1.2.10.tgz#b7629bec07a4031a2548fdf99f5ecf1cc8b31e36" + dependencies: + graceful-fs "^4.1.2" + path-is-inside "^1.0.1" + rimraf "^2.5.2" + +fs-write-stream-atomic@^1.0.8, fs-write-stream-atomic@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fsevents@^1.0.0: + version "1.2.9" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" + dependencies: + nan "^2.12.1" + node-pre-gyp "^0.12.0" + +fstream@^1.0.0, fstream@^1.0.2: + version "1.0.11" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +function-bind@^1.0.2, function-bind@^1.1.1, function-bind@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + dependencies: + 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" + +genfun@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/genfun/-/genfun-5.0.0.tgz#9dd9710a06900a5c4a5bf57aca5da4e52fe76537" + +gentle-fs@^2.0.0, gentle-fs@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/gentle-fs/-/gentle-fs-2.0.1.tgz#585cfd612bfc5cd52471fdb42537f016a5ce3687" + dependencies: + aproba "^1.1.2" + fs-vacuum "^1.2.10" + graceful-fs "^4.1.11" + iferr "^0.1.5" + mkdirp "^0.5.1" + path-is-inside "^1.0.2" + read-cmd-shim "^1.0.1" + slide "^1.1.6" + +get-assigned-identifiers@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1" + +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + +get-stdin@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + +get-stream@^4.0.0, get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + dependencies: + pump "^3.0.0" + +get-stream@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + dependencies: + assert-plus "^1.0.0" + +git-clone@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/git-clone/-/git-clone-0.1.0.tgz#0d76163778093aef7f1c30238f2a9ef3f07a2eb9" + +git-log-parser@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/git-log-parser/-/git-log-parser-1.2.0.tgz#2e6a4c1b13fc00028207ba795a7ac31667b9fd4a" + dependencies: + argv-formatter "~1.0.0" + spawn-error-forwarder "~1.0.0" + split2 "~1.0.0" + stream-combiner2 "~1.1.1" + through2 "~2.0.0" + traverse "~0.6.6" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-to-regexp@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" + +glob@7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.3, glob@^7.0.5, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@~7.1.3: + version "7.1.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-dirs@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" + dependencies: + ini "^1.3.4" + +globals@^11.0.1, globals@^11.1.0, globals@^11.7.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + +globby@^9.0.0: + version "9.2.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" + dependencies: + "@types/glob" "^7.1.1" + array-union "^1.0.2" + dir-glob "^2.2.2" + fast-glob "^2.2.6" + glob "^7.1.3" + ignore "^4.0.3" + pify "^4.0.1" + slash "^2.0.0" + +got@^6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" + dependencies: + create-error-class "^3.0.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + unzip-response "^2.0.1" + url-parse-lax "^1.0.0" + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6: + version "4.1.15" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" + +growl@1.10.5, "growl@~> 1.10.0": + version "1.10.5" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + +handlebars@^4.1.0, handlebars@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67" + dependencies: + neo-async "^2.6.0" + optimist "^0.6.1" + source-map "^0.6.1" + optionalDependencies: + uglify-js "^3.1.4" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + +har-validator@~5.1.0: + version "5.1.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + dependencies: + ajv "^6.5.5" + har-schema "^2.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +has-binary2@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" + dependencies: + isarray "2.0.1" + +has-cors@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + +has-flag@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + +has-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + +has-unicode@^2.0.0, has-unicode@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.0, has@^1.0.1, has@^1.0.3, has@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +hasha@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/hasha/-/hasha-3.0.0.tgz#52a32fab8569d41ca69a61ff1a214f8eb7c8bd39" + dependencies: + is-stream "^1.0.1" + +he@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +hook-std@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hook-std/-/hook-std-2.0.0.tgz#ff9aafdebb6a989a354f729bb6445cf4a3a7077c" + +hosted-git-info@^2.1.4, hosted-git-info@^2.6.0, hosted-git-info@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" + +htmlescape@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" + +http-cache-semantics@^3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" + +http-proxy-agent@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" + dependencies: + agent-base "4" + debug "3.1.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + +https-proxy-agent@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0" + dependencies: + agent-base "^4.1.0" + debug "^3.1.0" + +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + dependencies: + ms "^2.0.0" + +iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ieee754@^1.1.4: + version "1.1.13" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + +iferr@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-1.0.2.tgz#e9fde49a9da06dc4a4194c6c9ed6d08305037a6d" + +ignore-walk@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" + dependencies: + minimatch "^3.0.4" + +ignore@^3.0.9, ignore@^3.3.3, ignore@^3.3.6: + version "3.3.10" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" + +ignore@^4.0.2, ignore@^4.0.3, ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390" + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-from@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" + dependencies: + resolve-from "^3.0.0" + +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + +imurmurhash@*, imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + +indent-string@^3.0.0, indent-string@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + +inflight@^1.0.4, inflight@~1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + +init-package-json@^1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-1.10.3.tgz#45ffe2f610a8ca134f2bd1db5637b235070f6cbe" + dependencies: + glob "^7.1.1" + npm-package-arg "^4.0.0 || ^5.0.0 || ^6.0.0" + promzard "^0.3.0" + read "~1.0.1" + read-package-json "1 || 2" + semver "2.x || 3.x || 4 || 5" + validate-npm-package-license "^3.0.1" + validate-npm-package-name "^3.0.0" + +inline-source-map@~0.6.0: + version "0.6.2" + resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5" + dependencies: + source-map "~0.5.3" + +inquirer@^3.0.6: + version "3.3.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^2.0.4" + figures "^2.0.0" + lodash "^4.3.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rx-lite "^4.0.8" + rx-lite-aggregates "^4.0.8" + string-width "^2.1.0" + strip-ansi "^4.0.0" + through "^2.3.6" + +inquirer@^6.2.2: + version "6.3.1" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.3.1.tgz#7a413b5e7950811013a3db491c61d1f3b776e8e7" + dependencies: + ansi-escapes "^3.2.0" + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^2.0.0" + lodash "^4.17.11" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^2.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + +insert-module-globals@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.2.0.tgz#ec87e5b42728479e327bd5c5c71611ddfb4752ba" + dependencies: + JSONStream "^1.0.3" + acorn-node "^1.5.2" + combine-source-map "^0.8.0" + concat-stream "^1.6.1" + is-buffer "^1.1.0" + path-is-absolute "^1.0.1" + process "~0.11.0" + through2 "^2.0.0" + undeclared-identifiers "^1.1.2" + xtend "^4.0.0" + +into-stream@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-4.0.0.tgz#ef10ee2ffb6f78af34c93194bbdc36c35f7d8a9d" + dependencies: + from2 "^2.1.1" + p-is-promise "^2.0.0" + +invariant@^2.2.2: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + +invert-kv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + +ip@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + dependencies: + kind-of "^6.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.1.0, is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + +is-callable@^1.1.3, is-callable@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" + +is-ci@^1.0.10: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" + dependencies: + ci-info "^1.5.0" + +is-cidr@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-cidr/-/is-cidr-3.0.0.tgz#1acf35c9e881063cd5f696d48959b30fed3eed56" + dependencies: + cidr-regex "^2.0.10" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + dependencies: + is-extglob "^2.1.1" + +is-installed-globally@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" + dependencies: + global-dirs "^0.1.0" + is-path-inside "^1.0.0" + +is-npm@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" + +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + dependencies: + kind-of "^3.0.2" + +is-number@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + +is-path-inside@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" + dependencies: + path-is-inside "^1.0.1" + +is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + dependencies: + isobject "^3.0.1" + +is-plain-object@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-3.0.0.tgz#47bfc5da1b5d50d64110806c199359482e75a928" + dependencies: + isobject "^4.0.0" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + +is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + +is-redirect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + dependencies: + has "^1.0.1" + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + +is-retry-allowed@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" + +is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + +is-subset@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" + +is-symbol@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" + dependencies: + has-symbols "^1.0.0" + +is-text-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" + dependencies: + text-extensions "^1.0.0" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isarray@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" + +isarray@^2.0.1, isarray@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.4.tgz#38e7bcbb0f3ba1b7933c86ba1894ddfc3781bbb7" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + +isobject@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +issue-parser@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/issue-parser/-/issue-parser-3.0.1.tgz#ee8dd677fdb5be64541f81fa5e7267baa271a7ee" + dependencies: + lodash.capitalize "^4.2.1" + lodash.escaperegexp "^4.1.2" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.uniqby "^4.7.0" + +istanbul-lib-coverage@^2.0.3, istanbul-lib-coverage@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49" + +istanbul-lib-hook@^2.0.3, istanbul-lib-hook@^2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz#c95695f383d4f8f60df1f04252a9550e15b5b133" + dependencies: + append-transform "^1.0.0" + +istanbul-lib-instrument@^3.1.0, istanbul-lib-instrument@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630" + dependencies: + "@babel/generator" "^7.4.0" + "@babel/parser" "^7.4.3" + "@babel/template" "^7.4.0" + "@babel/traverse" "^7.4.3" + "@babel/types" "^7.4.0" + istanbul-lib-coverage "^2.0.5" + semver "^6.0.0" + +istanbul-lib-report@^2.0.4, istanbul-lib-report@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz#5a8113cd746d43c4889eba36ab10e7d50c9b4f33" + dependencies: + istanbul-lib-coverage "^2.0.5" + make-dir "^2.1.0" + supports-color "^6.1.0" + +istanbul-lib-source-maps@^3.0.2, istanbul-lib-source-maps@^3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8" + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^2.0.5" + make-dir "^2.1.0" + rimraf "^2.6.3" + source-map "^0.6.1" + +istanbul-reports@^2.1.1, istanbul-reports@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.4.tgz#4e0d0ddf0f0ad5b49a314069d31b4f06afe49ad3" + dependencies: + handlebars "^4.1.2" + +java-properties@^0.2.9: + version "0.2.10" + resolved "https://registry.yarnpkg.com/java-properties/-/java-properties-0.2.10.tgz#2551560c25fa1ad94d998218178f233ad9b18f60" + +jest-docblock@^21.0.0: + version "21.2.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-21.2.0.tgz#51529c3b30d5fd159da60c27ceedc195faf8d414" + +js-sha256@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/js-sha256/-/js-sha256-0.9.0.tgz#0b89ac166583e91ef9123644bd3c5334ce9d0966" + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + +js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + +js-yaml@^3.11.0, js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.9.1: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + +json-parse-better-errors@^1.0.0, json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + +json-stable-stringify@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz#611c23e814db375527df851193db59dd2af27f45" + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +jsx-ast-utils@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.1.0.tgz#0ee4e2c971fb9601c67b5641b71be80faecf0b36" + dependencies: + array-includes "^3.0.3" + +just-extend@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.0.2.tgz#f3f47f7dfca0f989c55410a7ebc8854b07108afc" + +keccak@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-1.4.0.tgz#572f8a6dbee8e7b3aa421550f9e6408ca2186f80" + dependencies: + bindings "^1.2.1" + inherits "^2.0.3" + nan "^2.2.1" + safe-buffer "^5.1.0" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + +labeled-stream-splicer@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.1.tgz#9cffa32fd99e1612fd1d86a8db962416d5292926" + dependencies: + inherits "^2.0.1" + isarray "^2.0.4" + stream-splicer "^2.0.0" + +latest-version@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" + dependencies: + package-json "^4.0.0" + +lazy-property@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lazy-property/-/lazy-property-1.0.0.tgz#84ddc4b370679ba8bd4cdcfa4c06b43d57111147" + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + dependencies: + invert-kv "^1.0.0" + +lcid@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + dependencies: + invert-kv "^2.0.0" + +lcov-parse@^0.0.10: + version "0.0.10" + resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-0.0.10.tgz#1b0b8ff9ac9c7889250582b70b71315d9da6d9a3" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +libcipm@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/libcipm/-/libcipm-3.0.3.tgz#2e764effe0b90d458790dab3165794c804075ed3" + dependencies: + bin-links "^1.1.2" + bluebird "^3.5.1" + figgy-pudding "^3.5.1" + find-npm-prefix "^1.0.2" + graceful-fs "^4.1.11" + ini "^1.3.5" + lock-verify "^2.0.2" + mkdirp "^0.5.1" + npm-lifecycle "^2.0.3" + npm-logical-tree "^1.2.1" + npm-package-arg "^6.1.0" + pacote "^9.1.0" + read-package-json "^2.0.13" + rimraf "^2.6.2" + worker-farm "^1.6.0" + +libnpm@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/libnpm/-/libnpm-2.0.1.tgz#a48fcdee3c25e13c77eb7c60a0efe561d7fb0d8f" + dependencies: + bin-links "^1.1.2" + bluebird "^3.5.3" + find-npm-prefix "^1.0.2" + libnpmaccess "^3.0.1" + libnpmconfig "^1.2.1" + libnpmhook "^5.0.2" + libnpmorg "^1.0.0" + libnpmpublish "^1.1.0" + libnpmsearch "^2.0.0" + libnpmteam "^1.0.1" + lock-verify "^2.0.2" + npm-lifecycle "^2.1.0" + npm-logical-tree "^1.2.1" + npm-package-arg "^6.1.0" + npm-profile "^4.0.1" + npm-registry-fetch "^3.8.0" + npmlog "^4.1.2" + pacote "^9.2.3" + read-package-json "^2.0.13" + stringify-package "^1.0.0" + +libnpmaccess@*, libnpmaccess@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-3.0.1.tgz#5b3a9de621f293d425191aa2e779102f84167fa8" + dependencies: + aproba "^2.0.0" + get-stream "^4.0.0" + npm-package-arg "^6.1.0" + npm-registry-fetch "^3.8.0" + +libnpmconfig@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/libnpmconfig/-/libnpmconfig-1.2.1.tgz#c0c2f793a74e67d4825e5039e7a02a0044dfcbc0" + dependencies: + figgy-pudding "^3.5.1" + find-up "^3.0.0" + ini "^1.3.5" + +libnpmhook@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-5.0.2.tgz#d12817b0fb893f36f1d5be20017f2aea25825d94" + dependencies: + aproba "^2.0.0" + figgy-pudding "^3.4.1" + get-stream "^4.0.0" + npm-registry-fetch "^3.8.0" + +libnpmorg@*, libnpmorg@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-1.0.0.tgz#979b868c48ba28c5820e3bb9d9e73c883c16a232" + dependencies: + aproba "^2.0.0" + figgy-pudding "^3.4.1" + get-stream "^4.0.0" + npm-registry-fetch "^3.8.0" + +libnpmpublish@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-1.1.1.tgz#ff0c6bb0b4ad2bda2ad1f5fba6760a4af37125f0" + dependencies: + aproba "^2.0.0" + figgy-pudding "^3.5.1" + get-stream "^4.0.0" + lodash.clonedeep "^4.5.0" + normalize-package-data "^2.4.0" + npm-package-arg "^6.1.0" + npm-registry-fetch "^3.8.0" + semver "^5.5.1" + ssri "^6.0.1" + +libnpmsearch@*, libnpmsearch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-2.0.0.tgz#de05af47ada81554a5f64276a69599070d4a5685" + dependencies: + figgy-pudding "^3.5.1" + get-stream "^4.0.0" + npm-registry-fetch "^3.8.0" + +libnpmteam@*, libnpmteam@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-1.0.1.tgz#ff704b1b6c06ea674b3b1101ac3e305f5114f213" + dependencies: + aproba "^2.0.0" + figgy-pudding "^3.4.1" + get-stream "^4.0.0" + npm-registry-fetch "^3.8.0" + +libnpx@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/libnpx/-/libnpx-10.2.0.tgz#1bf4a1c9f36081f64935eb014041da10855e3102" + dependencies: + dotenv "^5.0.1" + npm-package-arg "^6.0.0" + rimraf "^2.6.2" + safe-buffer "^5.1.0" + update-notifier "^2.3.0" + which "^1.3.0" + y18n "^4.0.0" + yargs "^11.0.0" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +lock-verify@^2.0.2, lock-verify@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lock-verify/-/lock-verify-2.1.0.tgz#fff4c918b8db9497af0c5fa7f6d71555de3ceb47" + dependencies: + npm-package-arg "^6.1.0" + semver "^5.4.1" + +lockfile@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.4.tgz#07f819d25ae48f87e538e6578b6964a4981a5609" + dependencies: + signal-exit "^3.0.2" + +lodash._baseindexof@*: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c" + +lodash._baseuniq@~4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8" + dependencies: + lodash._createset "~4.0.0" + lodash._root "~3.0.0" + +lodash._bindcallback@*: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" + +lodash._cacheindexof@*: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92" + +lodash._createcache@*: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093" + dependencies: + lodash._getnative "^3.0.0" + +lodash._createset@~4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" + +lodash._getnative@*, lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + +lodash._root@~3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" + +lodash.capitalize@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz#f826c9b4e2a8511d84e3aca29db05e1a4f3b72a9" + +lodash.clonedeep@^4.5.0, lodash.clonedeep@~4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + +lodash.escaperegexp@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347" + +lodash.flattendeep@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + +lodash.memoize@~3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" + +lodash.restparam@*: + version "3.6.1" + resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" + +lodash.set@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" + +lodash.toarray@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" + +lodash.union@~4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" + +lodash.uniq@^4.5.0, lodash.uniq@~4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + +lodash.uniqby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302" + +lodash.without@~4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" + +lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0: + version "4.17.11" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" + +log-driver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.7.tgz#63b95021f0702fedfa2c9bb0a24e7797d71871d8" + +lolex@^2.2.0, lolex@^2.3.2: + version "2.7.5" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.7.5.tgz#113001d56bfc7e02d56e36291cc5c413d1aa0733" + +loose-envify@^1.0.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lowercase-keys@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + +lru-cache@^4.0.1, lru-cache@^4.1.2, lru-cache@^4.1.3, lru-cache@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + dependencies: + yallist "^3.0.2" + +macos-release@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.2.0.tgz#ab58d55dd4714f0a05ad4b0e90f4370fef5cdea8" + +make-dir@^1.0.0, make-dir@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + dependencies: + pify "^3.0.0" + +make-dir@^2.0.0, make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-fetch-happen@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz#141497cb878f243ba93136c83d8aba12c216c083" + dependencies: + agentkeepalive "^3.4.1" + cacache "^11.0.1" + http-cache-semantics "^3.8.1" + http-proxy-agent "^2.1.0" + https-proxy-agent "^2.2.1" + lru-cache "^4.1.2" + mississippi "^3.0.0" + node-fetch-npm "^2.0.2" + promise-retry "^1.1.1" + socks-proxy-agent "^4.0.0" + ssri "^6.0.0" + +map-age-cleaner@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + dependencies: + p-defer "^1.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + +map-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + +map-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + dependencies: + object-visit "^1.0.0" + +marked-terminal@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/marked-terminal/-/marked-terminal-3.2.0.tgz#3fc91d54569332bcf096292af178d82219000474" + dependencies: + ansi-escapes "^3.1.0" + cardinal "^2.1.1" + chalk "^2.4.1" + cli-table "^0.3.1" + node-emoji "^1.4.1" + supports-hyperlinks "^1.0.1" + +marked@^0.6.0: + version "0.6.2" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.6.2.tgz#c574be8b545a8b48641456ca1dbe0e37b6dccc1a" + +math-random@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +meant@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/meant/-/meant-1.0.1.tgz#66044fea2f23230ec806fb515efea29c44d2115d" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + +mem@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + dependencies: + mimic-fn "^1.0.0" + +mem@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^2.0.0" + p-is-promise "^2.0.0" + +meow@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-4.0.1.tgz#d48598f6f4b1472f35bf6317a95945ace347f975" + dependencies: + camelcase-keys "^4.0.0" + decamelize-keys "^1.0.0" + loud-rejection "^1.0.0" + minimist "^1.1.3" + minimist-options "^3.0.1" + normalize-package-data "^2.3.4" + read-pkg-up "^3.0.0" + redent "^2.0.0" + trim-newlines "^2.0.0" + +merge-descriptors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + +merge-source-map@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" + dependencies: + source-map "^0.6.1" + +merge2@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.3.tgz#7ee99dbd69bb6481689253f018488a1b902b0ed5" + +merkle-lib@^2.0.10: + version "2.0.10" + resolved "https://registry.yarnpkg.com/merkle-lib/-/merkle-lib-2.0.10.tgz#82b8dbae75e27a7785388b73f9d7725d0f6f3326" + +methods@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + +micromatch@^2.1.5: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + 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" + +micromatch@^3.1.10: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.40.0: + version "1.40.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" + +mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.24" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" + dependencies: + mime-db "1.40.0" + +mime@^1.3.4: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + +mime@^2.0.3: + version "2.4.2" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.2.tgz#ce5229a5e99ffc313abac806b482c10e7ba6ac78" + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + +mimic-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + +minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist-options@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + +minipass@^2.2.1, minipass@^2.3.4, minipass@^2.3.5: + version "2.3.5" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" + dependencies: + minipass "^2.2.1" + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +mocha@^5.0.1: + version "5.2.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz#6d8ae508f59167f940f2b5b3c4a612ae50c90ae6" + dependencies: + browser-stdout "1.3.1" + commander "2.15.1" + debug "3.1.0" + diff "3.5.0" + escape-string-regexp "1.0.5" + glob "7.1.2" + growl "1.10.5" + he "1.1.1" + minimatch "3.0.4" + mkdirp "0.5.1" + supports-color "5.4.0" + +modify-values@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" + +module-deps@^6.0.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.2.0.tgz#d41a2e790245ce319171e4e7c4d8c73993ba3cd5" + dependencies: + JSONStream "^1.0.3" + browser-resolve "^1.7.0" + cached-path-relative "^1.0.0" + concat-stream "~1.6.0" + defined "^1.0.0" + detective "^5.0.2" + duplexer2 "^0.1.2" + inherits "^2.0.1" + parents "^1.0.0" + readable-stream "^2.0.2" + resolve "^1.4.0" + stream-combiner2 "^1.1.1" + subarg "^1.0.0" + through2 "^2.0.0" + xtend "^4.0.0" + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + +ms@^2.0.0, ms@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + +mute-stream@~0.0.4: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + +nan@^2.12.1, nan@^2.13.2, nan@^2.2.1: + version "2.13.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.13.2.tgz#f51dc7ae66ba7d5d55e1e6d4d8092e802c9aefe7" + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + +needle@^2.2.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.3.1.tgz#d272f2f4034afb9c4c9ab1379aabc17fc85c9388" + dependencies: + debug "^4.1.0" + iconv-lite "^0.4.4" + sax "^1.2.4" + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + +neo-async@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835" + +nerf-dart@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/nerf-dart/-/nerf-dart-1.0.0.tgz#e6dab7febf5ad816ea81cf5c629c5a0ebde72c1a" + +nested-error-stacks@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz#0fbdcf3e13fe4994781280524f8b96b0cdff9c61" + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + +nise@^1.2.0: + version "1.4.10" + resolved "https://registry.yarnpkg.com/nise/-/nise-1.4.10.tgz#ae46a09a26436fae91a38a60919356ae6db143b6" + dependencies: + "@sinonjs/formatio" "^3.1.0" + "@sinonjs/text-encoding" "^0.7.1" + just-extend "^4.0.2" + lolex "^2.3.2" + path-to-regexp "^1.7.0" + +nock@^10.0.6: + version "10.0.6" + resolved "https://registry.yarnpkg.com/nock/-/nock-10.0.6.tgz#e6d90ee7a68b8cfc2ab7f6127e7d99aa7d13d111" + dependencies: + chai "^4.1.2" + debug "^4.1.0" + deep-equal "^1.0.0" + json-stringify-safe "^5.0.1" + lodash "^4.17.5" + mkdirp "^0.5.0" + propagate "^1.0.0" + qs "^6.5.1" + semver "^5.5.0" + +node-cmd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/node-cmd/-/node-cmd-3.0.0.tgz#38fff70a4aaa4f659d203eb57862737018e24f6f" + +node-emoji@^1.4.1, node-emoji@^1.8.1: + version "1.10.0" + resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da" + dependencies: + lodash.toarray "^4.4.0" + +node-fetch-npm@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz#7258c9046182dca345b4208eda918daf33697ff7" + dependencies: + encoding "^0.1.11" + json-parse-better-errors "^1.0.0" + safe-buffer "^5.1.1" + +node-fetch@^2.3.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.5.0.tgz#8028c49fc1191bba56a07adc6e2a954644a48501" + +node-gyp@^3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" + dependencies: + fstream "^1.0.0" + glob "^7.0.3" + graceful-fs "^4.1.2" + mkdirp "^0.5.0" + nopt "2 || 3" + npmlog "0 || 1 || 2 || 3 || 4" + osenv "0" + request "^2.87.0" + rimraf "2" + semver "~5.3.0" + tar "^2.0.0" + which "1" + +node-gyp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-4.0.0.tgz#972654af4e5dd0cd2a19081b4b46fe0442ba6f45" + dependencies: + glob "^7.0.3" + graceful-fs "^4.1.2" + mkdirp "^0.5.0" + nopt "2 || 3" + npmlog "0 || 1 || 2 || 3 || 4" + osenv "0" + request "^2.87.0" + rimraf "2" + semver "~5.3.0" + tar "^4.4.8" + which "1" + +node-mocks-http@^1.7.0: + version "1.7.5" + resolved "https://registry.yarnpkg.com/node-mocks-http/-/node-mocks-http-1.7.5.tgz#ff1cc6ba8570f7def27d131403edcf86940829b6" + dependencies: + accepts "^1.3.5" + depd "^1.1.0" + fresh "^0.5.2" + merge-descriptors "^1.0.1" + methods "^1.1.2" + mime "^1.3.4" + parseurl "^1.3.1" + range-parser "^1.2.0" + type-is "^1.6.16" + +node-pre-gyp@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + +"nopt@2 || 3": + version "3.0.6" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + dependencies: + abbrev "1" + +nopt@^4.0.1, nopt@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + dependencies: + abbrev "1" + osenv "^0.1.4" + +nopt@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + dependencies: + abbrev "1" + +normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.4.0, normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.0.0, normalize-path@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-url@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.3.0.tgz#9c49e10fc1876aeb76dba88bf1b2b5d9fa57b2ee" + +npm-audit-report@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-1.3.2.tgz#303bc78cd9e4c226415076a4f7e528c89fc77018" + dependencies: + cli-table3 "^0.5.0" + console-control-strings "^1.1.0" + +npm-bundled@^1.0.1: + version "1.0.6" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" + +npm-cache-filename@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/npm-cache-filename/-/npm-cache-filename-1.0.2.tgz#ded306c5b0bfc870a9e9faf823bc5f283e05ae11" + +npm-install-checks@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-3.0.0.tgz#d4aecdfd51a53e3723b7b2f93b2ee28e307bc0d7" + dependencies: + semver "^2.3.0 || 3.x || 4 || 5" + +npm-lifecycle@^2.0.3, npm-lifecycle@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-2.1.1.tgz#0027c09646f0fd346c5c93377bdaba59c6748fdf" + dependencies: + byline "^5.0.0" + graceful-fs "^4.1.15" + node-gyp "^4.0.0" + resolve-from "^4.0.0" + slide "^1.1.6" + uid-number "0.0.6" + umask "^1.1.0" + which "^1.3.1" + +npm-logical-tree@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/npm-logical-tree/-/npm-logical-tree-1.2.1.tgz#44610141ca24664cad35d1e607176193fd8f5b88" + +"npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0", npm-package-arg@^6.0.0, npm-package-arg@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.0.tgz#15ae1e2758a5027efb4c250554b85a737db7fcc1" + dependencies: + hosted-git-info "^2.6.0" + osenv "^0.1.5" + semver "^5.5.0" + validate-npm-package-name "^3.0.0" + +npm-packlist@^1.1.12, npm-packlist@^1.1.6, npm-packlist@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.1.tgz#19064cdf988da80ea3cee45533879d90192bbfbc" + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + +npm-pick-manifest@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-2.2.3.tgz#32111d2a9562638bb2c8f2bf27f7f3092c8fae40" + dependencies: + figgy-pudding "^3.5.1" + npm-package-arg "^6.0.0" + semver "^5.4.1" + +npm-profile@*, npm-profile@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-4.0.1.tgz#d350f7a5e6b60691c7168fbb8392c3603583f5aa" + dependencies: + aproba "^1.1.2 || 2" + figgy-pudding "^3.4.1" + npm-registry-fetch "^3.8.0" + +npm-registry-fetch@^3.8.0, npm-registry-fetch@^3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-3.9.0.tgz#44d841780e2833f06accb34488f8c7450d1a6856" + dependencies: + JSONStream "^1.3.4" + bluebird "^3.5.1" + figgy-pudding "^3.4.1" + lru-cache "^4.1.3" + make-fetch-happen "^4.0.1" + npm-package-arg "^6.1.0" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + dependencies: + path-key "^2.0.0" + +npm-user-validate@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-1.0.0.tgz#8ceca0f5cea04d4e93519ef72d0557a75122e951" + +npm@^6.8.0: + version "6.9.0" + resolved "https://registry.yarnpkg.com/npm/-/npm-6.9.0.tgz#5296720486814a64a7fb082de00c4b5cfd11211f" + dependencies: + JSONStream "^1.3.5" + abbrev "~1.1.1" + ansicolors "~0.3.2" + ansistyles "~0.1.3" + aproba "^2.0.0" + archy "~1.0.0" + bin-links "^1.1.2" + bluebird "^3.5.3" + byte-size "^5.0.1" + cacache "^11.3.2" + call-limit "~1.1.0" + chownr "^1.1.1" + ci-info "^2.0.0" + cli-columns "^3.1.2" + cli-table3 "^0.5.1" + cmd-shim "~2.0.2" + columnify "~1.5.4" + config-chain "^1.1.12" + detect-indent "~5.0.0" + detect-newline "^2.1.0" + dezalgo "~1.0.3" + editor "~1.0.0" + figgy-pudding "^3.5.1" + find-npm-prefix "^1.0.2" + fs-vacuum "~1.2.10" + fs-write-stream-atomic "~1.0.10" + gentle-fs "^2.0.1" + glob "^7.1.3" + graceful-fs "^4.1.15" + has-unicode "~2.0.1" + hosted-git-info "^2.7.1" + iferr "^1.0.2" + inflight "~1.0.6" + inherits "~2.0.3" + ini "^1.3.5" + init-package-json "^1.10.3" + is-cidr "^3.0.0" + json-parse-better-errors "^1.0.2" + lazy-property "~1.0.0" + libcipm "^3.0.3" + libnpm "^2.0.1" + libnpmhook "^5.0.2" + libnpx "^10.2.0" + lock-verify "^2.1.0" + lockfile "^1.0.4" + lodash._baseuniq "~4.6.0" + lodash.clonedeep "~4.5.0" + lodash.union "~4.6.0" + lodash.uniq "~4.5.0" + lodash.without "~4.4.0" + lru-cache "^4.1.5" + meant "~1.0.1" + mississippi "^3.0.0" + mkdirp "~0.5.1" + move-concurrently "^1.0.1" + node-gyp "^3.8.0" + nopt "~4.0.1" + normalize-package-data "^2.5.0" + npm-audit-report "^1.3.2" + npm-cache-filename "~1.0.2" + npm-install-checks "~3.0.0" + npm-lifecycle "^2.1.0" + npm-package-arg "^6.1.0" + npm-packlist "^1.4.1" + npm-pick-manifest "^2.2.3" + npm-registry-fetch "^3.9.0" + npm-user-validate "~1.0.0" + npmlog "~4.1.2" + once "~1.4.0" + opener "^1.5.1" + osenv "^0.1.5" + pacote "^9.5.0" + path-is-inside "~1.0.2" + promise-inflight "~1.0.1" + qrcode-terminal "^0.12.0" + query-string "^6.2.0" + qw "~1.0.1" + read "~1.0.7" + read-cmd-shim "~1.0.1" + read-installed "~4.0.3" + read-package-json "^2.0.13" + read-package-tree "^5.2.2" + readable-stream "^3.1.1" + request "^2.88.0" + retry "^0.12.0" + rimraf "^2.6.3" + safe-buffer "^5.1.2" + semver "^5.6.0" + sha "~2.0.1" + slide "~1.1.6" + sorted-object "~2.0.1" + sorted-union-stream "~2.1.3" + ssri "^6.0.1" + stringify-package "^1.0.0" + tar "^4.4.8" + text-table "~0.2.0" + tiny-relative-date "^1.3.0" + uid-number "0.0.6" + umask "~1.1.0" + unique-filename "^1.1.1" + unpipe "~1.0.0" + update-notifier "^2.5.0" + uuid "^3.3.2" + validate-npm-package-license "^3.0.4" + validate-npm-package-name "~3.0.0" + which "^1.3.1" + worker-farm "^1.6.0" + write-file-atomic "^2.4.2" + +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.2, npmlog@^4.1.2, npmlog@~4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + dependencies: + 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@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +nyc@*: + version "14.1.1" + resolved "https://registry.yarnpkg.com/nyc/-/nyc-14.1.1.tgz#151d64a6a9f9f5908a1b73233931e4a0a3075eeb" + dependencies: + archy "^1.0.0" + caching-transform "^3.0.2" + convert-source-map "^1.6.0" + cp-file "^6.2.0" + find-cache-dir "^2.1.0" + find-up "^3.0.0" + foreground-child "^1.5.6" + glob "^7.1.3" + istanbul-lib-coverage "^2.0.5" + istanbul-lib-hook "^2.0.7" + istanbul-lib-instrument "^3.3.0" + istanbul-lib-report "^2.0.8" + istanbul-lib-source-maps "^3.0.6" + istanbul-reports "^2.2.4" + js-yaml "^3.13.1" + make-dir "^2.1.0" + merge-source-map "^1.1.0" + resolve-from "^4.0.0" + rimraf "^2.6.3" + signal-exit "^3.0.2" + spawn-wrap "^1.4.2" + test-exclude "^5.2.3" + uuid "^3.3.2" + yargs "^13.2.2" + yargs-parser "^13.0.0" + +nyc@^13.3.0: + version "13.3.0" + resolved "https://registry.yarnpkg.com/nyc/-/nyc-13.3.0.tgz#da4dbe91a9c8b9ead3f4f3344c76f353e3c78c75" + dependencies: + archy "^1.0.0" + arrify "^1.0.1" + caching-transform "^3.0.1" + convert-source-map "^1.6.0" + find-cache-dir "^2.0.0" + find-up "^3.0.0" + foreground-child "^1.5.6" + glob "^7.1.3" + istanbul-lib-coverage "^2.0.3" + istanbul-lib-hook "^2.0.3" + istanbul-lib-instrument "^3.1.0" + istanbul-lib-report "^2.0.4" + istanbul-lib-source-maps "^3.0.2" + istanbul-reports "^2.1.1" + make-dir "^1.3.0" + merge-source-map "^1.1.0" + resolve-from "^4.0.0" + rimraf "^2.6.3" + signal-exit "^3.0.2" + spawn-wrap "^1.4.2" + test-exclude "^5.1.0" + uuid "^3.3.2" + yargs "^12.0.5" + yargs-parser "^11.1.1" + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +object-component@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-inspect@~1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" + +object-keys@^1.0.12: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + dependencies: + isobject "^3.0.0" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + dependencies: + isobject "^3.0.1" + +octokit-pagination-methods@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4" + +once@^1.3.0, once@^1.3.1, once@^1.4.0, once@~1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + dependencies: + mimic-fn "^1.0.0" + +opener@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed" + +optimist@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +optionator@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.4" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + wordwrap "~1.0.0" + +os-browserify@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + +os-homedir@^1.0.0, os-homedir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +os-locale@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + +os-locale@^3.0.0, os-locale@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" + dependencies: + execa "^1.0.0" + lcid "^2.0.0" + mem "^4.0.0" + +os-name@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801" + dependencies: + macos-release "^2.2.0" + windows-release "^3.1.0" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + +osenv@0, osenv@^0.1.4, osenv@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +output-file-sync@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" + dependencies: + graceful-fs "^4.1.4" + mkdirp "^0.5.1" + object-assign "^4.1.0" + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + +p-filter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-filter/-/p-filter-1.0.0.tgz#629d317150209c8fd508ba137713ef4bb920e9db" + dependencies: + p-map "^1.0.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + +p-is-promise@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" + dependencies: + p-try "^2.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + dependencies: + p-limit "^2.0.0" + +p-locate@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + dependencies: + p-limit "^2.2.0" + +p-map@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" + +p-reduce@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-2.1.0.tgz#09408da49507c6c274faa31f28df334bc712b64a" + +p-retry@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" + dependencies: + retry "^0.12.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + +package-hash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-3.0.0.tgz#50183f2d36c9e3e528ea0a8605dff57ce976f88e" + dependencies: + graceful-fs "^4.1.15" + hasha "^3.0.0" + lodash.flattendeep "^4.4.0" + release-zalgo "^1.0.0" + +package-json@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" + dependencies: + got "^6.7.1" + registry-auth-token "^3.0.1" + registry-url "^3.0.3" + semver "^5.1.0" + +pacote@^9.1.0, pacote@^9.2.3, pacote@^9.5.0: + version "9.5.0" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-9.5.0.tgz#85f3013a3f6dd51c108b0ccabd3de8102ddfaeda" + dependencies: + bluebird "^3.5.3" + cacache "^11.3.2" + figgy-pudding "^3.5.1" + get-stream "^4.1.0" + glob "^7.1.3" + lru-cache "^5.1.1" + make-fetch-happen "^4.0.1" + minimatch "^3.0.4" + minipass "^2.3.5" + mississippi "^3.0.0" + mkdirp "^0.5.1" + normalize-package-data "^2.4.0" + npm-package-arg "^6.1.0" + npm-packlist "^1.1.12" + npm-pick-manifest "^2.2.3" + npm-registry-fetch "^3.8.0" + osenv "^0.1.5" + promise-inflight "^1.0.1" + promise-retry "^1.1.1" + protoduck "^5.0.1" + rimraf "^2.6.2" + safe-buffer "^5.1.2" + semver "^5.6.0" + ssri "^6.0.1" + tar "^4.4.8" + unique-filename "^1.1.1" + which "^1.3.1" + +pako@~1.0.5: + version "1.0.10" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" + +parallel-transform@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" + dependencies: + cyclist "~0.2.2" + inherits "^2.0.3" + readable-stream "^2.1.5" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + dependencies: + callsites "^3.0.0" + +parents@^1.0.0, parents@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751" + dependencies: + path-platform "~0.11.15" + +parse-asn1@^5.0.0: + version "5.1.4" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.4.tgz#37f6628f823fbdeb2273b4d540434a22f3ef1fcc" + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-github-url@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/parse-github-url/-/parse-github-url-1.0.2.tgz#242d3b65cbcdda14bb50439e3242acf6971db395" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + dependencies: + error-ex "^1.2.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parseqs@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" + dependencies: + better-assert "~1.0.0" + +parseuri@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" + dependencies: + better-assert "~1.0.0" + +parseurl@^1.3.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + +path-browserify@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-is-inside@^1.0.1, path-is-inside@^1.0.2, path-is-inside@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + +path-platform@~0.11.15: + version "0.11.15" + resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2" + +path-to-regexp@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" + dependencies: + isarray "0.0.1" + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + dependencies: + pify "^2.0.0" + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + dependencies: + pify "^3.0.0" + +pathval@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" + +pbkdf2@^3.0.3, pbkdf2@^3.0.9: + version "3.0.17" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + +pkg-conf@^2.0.0, pkg-conf@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.1.0.tgz#2126514ca6f2abfebd168596df18ba57867f0058" + dependencies: + find-up "^2.0.0" + load-json-file "^4.0.0" + +pkg-config@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pkg-config/-/pkg-config-1.1.1.tgz#557ef22d73da3c8837107766c52eadabde298fe4" + dependencies: + debug-log "^1.0.0" + find-root "^1.0.0" + xtend "^4.0.1" + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + dependencies: + find-up "^2.1.0" + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + dependencies: + find-up "^3.0.0" + +pluralize@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" + +pngjs@^3.3.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + +prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +prettier@^1.14.2: + version "1.17.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.17.0.tgz#53b303676eed22cc14a9f0cec09b477b3026c008" + +private@^0.1.6, private@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + +process-nextick-args@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + +process@~0.11.0: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + +promise-inflight@^1.0.1, promise-inflight@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + +promise-retry@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-1.1.1.tgz#6739e968e3051da20ce6497fb2b50f6911df3d6d" + dependencies: + err-code "^1.0.0" + retry "^0.10.0" + +promzard@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" + dependencies: + read "1" + +prop-types@^15.6.0: + version "15.7.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.8.1" + +propagate@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/propagate/-/propagate-1.0.0.tgz#00c2daeedda20e87e3782b344adba1cddd6ad709" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + +protoduck@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/protoduck/-/protoduck-5.0.1.tgz#03c3659ca18007b69a50fd82a7ebcc516261151f" + dependencies: + genfun "^5.0.0" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + +psl@^1.1.24: + version "1.1.31" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.31.tgz#e9aa86d0101b5b105cbe93ac6b784cd547276184" + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + +punycode@^1.3.2, punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + +pushdata-bitcoin@Bitcoin-com/pushdata-bitcoin#1.2.1: + version "1.2.1" + resolved "https://codeload.github.com/Bitcoin-com/pushdata-bitcoin/tar.gz/9b75eebe597853c6eeaec3e6c44b6d9c9cd7ee86" + dependencies: + bitcoincash-ops Bitcoin-com/bitcoincash-ops#2.0.0 + +q@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + +qrcode-terminal@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#bb5b699ef7f9f0505092a3748be4464fe71b5819" + +qrcode@^1.2.0: + version "1.3.3" + resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.3.3.tgz#5ef50c0c890cffa1897f452070f0f094936993de" + dependencies: + can-promise "0.0.1" + dijkstrajs "^1.0.1" + isarray "^2.0.1" + pngjs "^3.3.0" + yargs "^12.0.5" + +qs@^6.3.0, qs@^6.5.1: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + +query-string@^6.2.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.5.0.tgz#2e1a70125af01f6f04573692d02c09302a1d8bfc" + dependencies: + decode-uri-component "^0.2.0" + split-on-first "^1.0.0" + strict-uri-encode "^2.0.0" + +querystring-es3@~0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + +quick-lru@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" + +qw@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/qw/-/qw-1.0.1.tgz#efbfdc740f9ad054304426acb183412cc8b996d4" + +random-bytes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b" + +randomatic@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" + dependencies: + is-number "^4.0.0" + kind-of "^6.0.0" + math-random "^1.0.1" + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.0.6: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + +rc@^1.0.1, rc@^1.1.6, rc@^1.2.7, rc@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-is@^16.8.1: + version "16.8.6" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" + +read-cmd-shim@^1.0.1, read-cmd-shim@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz#2d5d157786a37c055d22077c32c53f8329e91c7b" + dependencies: + graceful-fs "^4.1.2" + +read-installed@~4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/read-installed/-/read-installed-4.0.3.tgz#ff9b8b67f187d1e4c29b9feb31f6b223acd19067" + dependencies: + debuglog "^1.0.1" + read-package-json "^2.0.0" + readdir-scoped-modules "^1.0.0" + semver "2 || 3 || 4 || 5" + slide "~1.1.3" + util-extend "^1.0.1" + optionalDependencies: + graceful-fs "^4.1.2" + +read-only-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0" + dependencies: + readable-stream "^2.0.2" + +"read-package-json@1 || 2", read-package-json@^2.0.0, read-package-json@^2.0.13: + version "2.0.13" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.0.13.tgz#2e82ebd9f613baa6d2ebe3aa72cefe3f68e41f4a" + dependencies: + glob "^7.1.1" + json-parse-better-errors "^1.0.1" + normalize-package-data "^2.0.0" + slash "^1.0.0" + optionalDependencies: + graceful-fs "^4.1.2" + +read-package-tree@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.2.2.tgz#4b6a0ef2d943c1ea36a578214c9a7f6b7424f7a8" + dependencies: + debuglog "^1.0.1" + dezalgo "^1.0.0" + once "^1.3.0" + read-package-json "^2.0.0" + readdir-scoped-modules "^1.0.0" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + dependencies: + find-up "^2.0.0" + read-pkg "^3.0.0" + +read-pkg-up@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" + dependencies: + find-up "^3.0.0" + read-pkg "^3.0.0" + +read-pkg-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-5.0.0.tgz#b6a6741cb144ed3610554f40162aa07a6db621b8" + dependencies: + find-up "^3.0.0" + read-pkg "^5.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +read-pkg@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.1.1.tgz#5cf234dde7a405c90c88a519ab73c467e9cb83f5" + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^4.0.0" + type-fest "^0.4.1" + +read@1, read@~1.0.1, read@~1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" + dependencies: + mute-stream "~0.0.4" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.1.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.3.0.tgz#cb8011aad002eb717bf040291feba8569c986fb9" + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@~1.1.10: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readdir-scoped-modules@*, readdir-scoped-modules@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747" + dependencies: + debuglog "^1.0.1" + dezalgo "^1.0.0" + graceful-fs "^4.1.2" + once "^1.3.0" + +readdirp@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +redent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" + dependencies: + indent-string "^3.0.0" + strip-indent "^2.0.0" + +redeyed@~2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-2.1.1.tgz#8984b5815d99cb220469c99eeeffe38913e6cc0b" + dependencies: + esprima "~4.0.0" + +regenerate@^1.2.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" + +regenerator-runtime@^0.10.5: + version "0.10.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + +regenerator-transform@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" + dependencies: + babel-runtime "^6.18.0" + babel-types "^6.19.0" + private "^0.1.6" + +regex-cache@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + dependencies: + is-equal-shallow "^0.1.3" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexpp@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + +regexpu-core@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +registry-auth-token@^3.0.1, registry-auth-token@^3.3.1: + version "3.4.0" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" + dependencies: + rc "^1.1.6" + safe-buffer "^5.0.1" + +registry-url@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" + dependencies: + rc "^1.0.1" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + dependencies: + jsesc "~0.5.0" + +release-zalgo@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/release-zalgo/-/release-zalgo-1.0.0.tgz#09700b7e5074329739330e535c5a90fb67851730" + dependencies: + es6-error "^4.0.1" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + +repeat-string@^1.5.2, repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + dependencies: + is-finite "^1.0.0" + +repl.history@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/repl.history/-/repl.history-0.1.4.tgz#80367171f3781d6e4299c71758c253097f5d5832" + +request@^2.86.0, request@^2.87.0, request@^2.88.0: + version "2.88.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.0" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.4.3" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + +require-uncached@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + dependencies: + caller-path "^0.1.0" + resolve-from "^1.0.0" + +resolve-from@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + +resolve@1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + +resolve@^1.1.4, resolve@^1.10.0, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.8.1, resolve@~1.10.0: + version "1.10.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.1.tgz#664842ac960795bbe758221cdccda61fb64b5f18" + dependencies: + path-parse "^1.0.6" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +resumer@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" + dependencies: + through "~2.3.4" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + +retry@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + +rimraf@2, rimraf@2.6.3, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@~2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +run-async@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + dependencies: + is-promise "^2.1.0" + +run-parallel@^1.1.2: + version "1.1.9" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + dependencies: + aproba "^1.1.1" + +rx-lite-aggregates@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" + dependencies: + rx-lite "*" + +rx-lite@*, rx-lite@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" + +rxjs@^6.4.0: + version "6.5.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" + dependencies: + tslib "^1.9.0" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + +samsam@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.3.0.tgz#8d1d9350e25622da30de3e44ba692b5221ab7c50" + +satoshi-bitcoin@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/satoshi-bitcoin/-/satoshi-bitcoin-1.0.4.tgz#d002b677075d5cbbf2c211a8df3254bcdf50b1e4" + dependencies: + big.js "^3.1.3" + +sax@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + +scryptsy@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-2.0.0.tgz#262c36f0231cfa7654e2363fa394cd2dec66f378" + +secp256k1@^3.0.1: + version "3.7.0" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.7.0.tgz#e85972f847b586cc4b2acd69497d3f80afaa7505" + dependencies: + bindings "^1.5.0" + bip66 "^1.1.5" + bn.js "^4.11.8" + create-hash "^1.2.0" + drbg.js "^1.0.1" + elliptic "^6.4.1" + nan "^2.13.2" + safe-buffer "^5.1.2" + +semantic-release@^15.13.3: + version "15.13.12" + resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-15.13.12.tgz#1128361fc36301ef3a1ea137dd277bdddf9f68c1" + dependencies: + "@semantic-release/commit-analyzer" "^6.1.0" + "@semantic-release/error" "^2.2.0" + "@semantic-release/github" "^5.1.0" + "@semantic-release/npm" "^5.0.5" + "@semantic-release/release-notes-generator" "^7.1.2" + aggregate-error "^3.0.0" + cosmiconfig "^5.0.1" + debug "^4.0.0" + env-ci "^3.0.0" + execa "^1.0.0" + figures "^2.0.0" + find-versions "^3.0.0" + get-stream "^5.0.0" + git-log-parser "^1.2.0" + hook-std "^2.0.0" + hosted-git-info "^2.7.1" + lodash "^4.17.4" + marked "^0.6.0" + marked-terminal "^3.2.0" + p-locate "^4.0.0" + p-reduce "^2.0.0" + read-pkg-up "^5.0.0" + resolve-from "^5.0.0" + semver "^6.0.0" + signale "^1.2.1" + yargs "^13.1.0" + +semver-diff@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" + dependencies: + semver "^5.0.3" + +semver-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" + +"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" + +semver@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.0.0.tgz#05e359ee571e5ad7ed641a6eec1e547ba52dea65" + +semver@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + +set-value@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.1" + to-object-path "^0.3.0" + +set-value@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +sha.js@^2.4.0, sha.js@^2.4.8, sha.js@~2.4.4: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +sha@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/sha/-/sha-2.0.1.tgz#6030822fbd2c9823949f8f72ed6411ee5cf25aae" + dependencies: + graceful-fs "^4.1.2" + readable-stream "^2.0.2" + +shasum@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz#e7012310d8f417f4deb5712150e5678b87ae565f" + dependencies: + json-stable-stringify "~0.0.0" + sha.js "~2.4.4" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + +shell-quote@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" + dependencies: + array-filter "~0.0.0" + array-map "~0.0.0" + array-reduce "~0.0.0" + jsonify "~0.0.0" + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +signale@^1.2.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/signale/-/signale-1.4.0.tgz#c4be58302fb0262ac00fc3d886a7c113759042f1" + dependencies: + chalk "^2.3.2" + figures "^2.0.0" + pkg-conf "^2.1.0" + +simple-concat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6" + +sinon@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-4.5.0.tgz#427ae312a337d3c516804ce2754e8c0d5028cb04" + dependencies: + "@sinonjs/formatio" "^2.0.0" + diff "^3.1.0" + lodash.get "^4.4.2" + lolex "^2.2.0" + nise "^1.2.0" + supports-color "^5.1.0" + type-detect "^4.0.5" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + +slice-ansi@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" + dependencies: + is-fullwidth-code-point "^2.0.0" + +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +slide@^1.1.6, slide@~1.1.3, slide@~1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + +smart-buffer@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.0.2.tgz#5207858c3815cc69110703c6b94e46c15634395d" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +socket.io-adapter@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b" + +socket.io-client@2.2.0, socket.io-client@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.2.0.tgz#84e73ee3c43d5020ccc1a258faeeb9aec2723af7" + dependencies: + backo2 "1.0.2" + base64-arraybuffer "0.1.5" + component-bind "1.0.0" + component-emitter "1.2.1" + debug "~3.1.0" + engine.io-client "~3.3.1" + has-binary2 "~1.0.2" + has-cors "1.1.0" + indexof "0.0.1" + object-component "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" + socket.io-parser "~3.3.0" + to-array "0.1.4" + +socket.io-parser@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.0.tgz#2b52a96a509fdf31440ba40fed6094c7d4f1262f" + dependencies: + component-emitter "1.2.1" + debug "~3.1.0" + isarray "2.0.1" + +socket.io@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.2.0.tgz#f0f633161ef6712c972b307598ecd08c9b1b4d5b" + dependencies: + debug "~4.1.0" + engine.io "~3.3.1" + has-binary2 "~1.0.2" + socket.io-adapter "~1.1.0" + socket.io-client "2.2.0" + socket.io-parser "~3.3.0" + +socks-proxy-agent@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386" + dependencies: + agent-base "~4.2.1" + socks "~2.3.2" + +socks@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.3.2.tgz#ade388e9e6d87fdb11649c15746c578922a5883e" + dependencies: + ip "^1.1.5" + smart-buffer "4.0.2" + +sorted-object@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/sorted-object/-/sorted-object-2.0.1.tgz#7d631f4bd3a798a24af1dffcfbfe83337a5df5fc" + +sorted-union-stream@~2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/sorted-union-stream/-/sorted-union-stream-2.1.3.tgz#c7794c7e077880052ff71a8d4a2dbb4a9a638ac7" + dependencies: + from2 "^1.3.0" + stream-iterate "^1.1.0" + +source-map-resolve@^0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" + dependencies: + atob "^2.1.1" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.4.15: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + dependencies: + source-map "^0.5.6" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + +source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.3: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + +source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + +spawn-error-forwarder@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz#1afd94738e999b0346d7b9fc373be55e07577029" + +spawn-wrap@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.4.2.tgz#cff58e73a8224617b6561abdc32586ea0c82248c" + dependencies: + foreground-child "^1.5.6" + mkdirp "^0.5.0" + os-homedir "^1.0.1" + rimraf "^2.6.2" + signal-exit "^3.0.2" + which "^1.3.0" + +spdx-correct@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" + +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz#75ecd1a88de8c184ef015eafb51b5b48bfd11bb1" + +split-on-first@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + dependencies: + extend-shallow "^3.0.0" + +split2@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-2.2.0.tgz#186b2575bcf83e85b7d18465756238ee4ee42493" + dependencies: + through2 "^2.0.2" + +split2@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-1.0.0.tgz#52e2e221d88c75f9a73f90556e263ff96772b314" + dependencies: + through2 "~2.0.0" + +split@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" + dependencies: + through "2" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + dependencies: + 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" + +ssri@^6.0.0, ssri@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" + dependencies: + figgy-pudding "^3.5.1" + +standard-engine@~8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/standard-engine/-/standard-engine-8.0.1.tgz#0b77be8d7ab963675717dbeac1ef1d6675fb62f0" + dependencies: + deglob "^2.1.0" + get-stdin "^6.0.0" + minimist "^1.1.0" + pkg-conf "^2.0.0" + +standard@^11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/standard/-/standard-11.0.1.tgz#49be40c76f1d564964b22bbf7309929ad0335e29" + dependencies: + eslint "~4.18.0" + eslint-config-standard "11.0.0" + eslint-config-standard-jsx "5.0.0" + eslint-plugin-import "~2.9.0" + eslint-plugin-node "~6.0.0" + eslint-plugin-promise "~3.7.0" + eslint-plugin-react "~7.7.0" + eslint-plugin-standard "~3.0.1" + standard-engine "~8.0.0" + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +stream-browserify@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-combiner2@^1.1.1, stream-combiner2@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" + dependencies: + duplexer2 "~0.1.0" + readable-stream "^2.0.2" + +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-http@^2.0.0: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-iterate@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/stream-iterate/-/stream-iterate-1.2.0.tgz#2bd7c77296c1702a46488b8ad41f79865eecd4e1" + dependencies: + readable-stream "^2.1.5" + stream-shift "^1.0.0" + +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + +stream-splicer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.0.tgz#1b63be438a133e4b671cc1935197600175910d83" + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.2" + +strict-uri-encode@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string.prototype.trim@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz#d04de2c89e137f4d7d206f086b5ed2fae6be8cea" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.0" + function-bind "^1.0.2" + +string_decoder@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" + dependencies: + safe-buffer "~5.1.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + dependencies: + safe-buffer "~5.1.0" + +stringify-package@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stringify-package/-/stringify-package-1.0.0.tgz#e02828089333d7d45cd8c287c30aa9a13375081b" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + dependencies: + ansi-regex "^4.1.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + +strip-indent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" + +strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + +subarg@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" + dependencies: + minimist "^1.1.0" + +supports-color@5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" + dependencies: + has-flag "^3.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +supports-color@^5.0.0, supports-color@^5.1.0, supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + dependencies: + has-flag "^3.0.0" + +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + dependencies: + has-flag "^3.0.0" + +supports-hyperlinks@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz#71daedf36cc1060ac5100c351bb3da48c29c0ef7" + dependencies: + has-flag "^2.0.0" + supports-color "^5.0.0" + +syntax-error@^1.1.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.4.0.tgz#2d9d4ff5c064acb711594a3e3b95054ad51d907c" + dependencies: + acorn-node "^1.2.0" + +table@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" + dependencies: + ajv "^5.2.3" + ajv-keywords "^2.1.0" + chalk "^2.1.0" + lodash "^4.17.4" + slice-ansi "1.0.0" + string-width "^2.1.1" + +table@^5.2.3: + version "5.3.2" + resolved "https://registry.yarnpkg.com/table/-/table-5.3.2.tgz#3aab56a41b2905bf66a6a006bd716fa1e78d4702" + dependencies: + ajv "^6.9.1" + lodash "^4.17.11" + slice-ansi "^2.1.0" + string-width "^3.0.0" + +tape@*: + version "4.10.1" + resolved "https://registry.yarnpkg.com/tape/-/tape-4.10.1.tgz#f73be60888dcb120f08b57f947af65a829506a5f" + dependencies: + deep-equal "~1.0.1" + defined "~1.0.0" + for-each "~0.3.3" + function-bind "~1.1.1" + glob "~7.1.3" + has "~1.0.3" + inherits "~2.0.3" + minimist "~1.2.0" + object-inspect "~1.6.0" + resolve "~1.10.0" + resumer "~0.0.0" + string.prototype.trim "~1.1.2" + through "~2.3.8" + +tar@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + dependencies: + block-stream "*" + fstream "^1.0.2" + inherits "2" + +tar@^4, tar@^4.4.8: + version "4.4.8" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d" + dependencies: + chownr "^1.1.1" + fs-minipass "^1.2.5" + minipass "^2.3.4" + minizlib "^1.1.1" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.2" + +term-size@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" + dependencies: + execa "^0.7.0" + +test-exclude@^5.1.0, test-exclude@^5.2.3: + version "5.2.3" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" + dependencies: + glob "^7.1.3" + minimatch "^3.0.4" + read-pkg-up "^4.0.0" + require-main-filename "^2.0.0" + +text-extensions@^1.0.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" + +text-table@^0.2.0, text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + +through2@^2.0.0, through2@^2.0.2, through2@~2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through@2, "through@>=2.2.7 <3", through@^2.3.6, through@~2.3.4, through@~2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +timed-out@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + +timers-browserify@^1.0.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" + dependencies: + process "~0.11.0" + +tiny-relative-date@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz#fa08aad501ed730f31cc043181d995c39a935e07" + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + dependencies: + os-tmpdir "~1.0.2" + +to-array@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +touch@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" + dependencies: + nopt "~1.0.10" + +tough-cookie@~2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + dependencies: + psl "^1.1.24" + punycode "^1.4.1" + +traverse@~0.6.6: + version "0.6.6" + resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" + +trim-newlines@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" + +trim-off-newlines@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + +tslib@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" + +tty-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + +type-fest@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.4.1.tgz#8bdf77743385d8a4f13ba95f610f5ccd68c728f8" + +type-is@^1.6.16: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + +typeforce@^1.11.3: + version "1.18.0" + resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.18.0.tgz#d7416a2c5845e085034d70fcc5b6cc4a90edbfdc" + +typescript@^3.4.5: + version "3.4.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.4.5.tgz#2d2618d10bb566572b8d7aad5180d84257d70a99" + +uglify-js@^3.1.4: + version "3.5.11" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.5.11.tgz#833442c0aa29b3a7d34344c7c63adaa3f3504f6a" + dependencies: + commander "~2.20.0" + source-map "~0.6.1" + +uid-number@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + +umask@^1.1.0, umask@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" + +umd@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz#aa9fe653c42b9097678489c01000acb69f0b26cf" + +undeclared-identifiers@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz#9254c1d37bdac0ac2b52de4b6722792d2a91e30f" + dependencies: + acorn-node "^1.3.0" + dash-ast "^1.0.0" + get-assigned-identifiers "^1.2.0" + simple-concat "^1.0.0" + xtend "^4.0.1" + +union-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^0.4.3" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.1.tgz#5e9edc6d1ce8fb264db18a507ef9bd8544451ca6" + dependencies: + imurmurhash "^0.1.4" + +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + dependencies: + crypto-random-string "^1.0.0" + +universal-user-agent@^2.0.0, universal-user-agent@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-2.1.0.tgz#5abfbcc036a1ba490cb941f8fd68c46d3669e8e4" + dependencies: + os-name "^3.0.0" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + +unorm@^1.3.3: + version "1.5.0" + resolved "https://registry.yarnpkg.com/unorm/-/unorm-1.5.0.tgz#01fa9b76f1c60f7916834605c032aa8962c3f00a" + +unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +unzip-response@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + +update-notifier@^2.3.0, update-notifier@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" + dependencies: + boxen "^1.2.1" + chalk "^2.0.1" + configstore "^3.0.0" + import-lazy "^2.1.0" + is-ci "^1.0.10" + is-installed-globally "^0.1.0" + is-npm "^1.0.0" + latest-version "^3.0.0" + semver-diff "^2.0.0" + xdg-basedir "^3.0.0" + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + +url-join@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.0.tgz#4d3340e807d3773bda9991f8305acdcc2a665d2a" + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + dependencies: + prepend-http "^1.0.1" + +url-template@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/url-template/-/url-template-2.0.8.tgz#fc565a3cccbff7730c775f5641f9555791439f21" + +url@~0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + +user-home@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +util-extend@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz#a7c216d267545169637b3b6edc6ca9119e2ff93f" + +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + dependencies: + inherits "2.0.1" + +util@~0.10.1: + version "0.10.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" + dependencies: + inherits "2.0.3" + +uuid@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + +v8flags@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" + dependencies: + user-home "^1.1.1" + +validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +validate-npm-package-name@^3.0.0, validate-npm-package-name@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" + dependencies: + builtins "^1.0.3" + +varuint-bitcoin@^1.0.1, varuint-bitcoin@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz#7a343f50537607af6a3059312b9782a170894540" + dependencies: + safe-buffer "^5.1.1" + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vm-browserify@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" + +wcwidth@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + dependencies: + defaults "^1.0.3" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + +which@1, which@^1.2.9, which@^1.3.0, which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + dependencies: + string-width "^1.0.2 || 2" + +widest-line@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" + dependencies: + string-width "^2.1.1" + +wif@^2.0.1, wif@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/wif/-/wif-2.0.6.tgz#08d3f52056c66679299726fade0d432ae74b4704" + dependencies: + bs58check "<3.0.0" + +window-or-global@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/window-or-global/-/window-or-global-1.0.1.tgz#dbe45ba2a291aabc56d62cf66c45b7fa322946de" + +windows-release@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.2.0.tgz#8122dad5afc303d833422380680a79cdfa91785f" + dependencies: + execa "^1.0.0" + +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + +worker-farm@^1.6.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + dependencies: + errno "~0.1.7" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +write-file-atomic@^2.0.0, write-file-atomic@^2.3.0, write-file-atomic@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.2.tgz#a7181706dfba17855d221140a9c06e15fcdd87b9" + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +write@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + dependencies: + mkdirp "^0.5.1" + +write@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + dependencies: + mkdirp "^0.5.1" + +ws@~6.1.0: + version "6.1.4" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" + dependencies: + async-limiter "~1.0.0" + +xdg-basedir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" + +xmlhttprequest-ssl@~1.5.4: + version "1.5.5" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" + +xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + +"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + +yallist@^3.0.0, yallist@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" + +yargs-parser@^11.1.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^13.0.0: + version "13.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.0.tgz#7016b6dd03e28e1418a510e258be4bff5a31138f" + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" + dependencies: + camelcase "^4.1.0" + +yargs@^11.0.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" + dependencies: + 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 "^9.0.2" + +yargs@^12.0.5: + version "12.0.5" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" + dependencies: + cliui "^4.0.0" + decamelize "^1.2.0" + find-up "^3.0.0" + get-caller-file "^1.0.1" + os-locale "^3.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 || ^4.0.0" + yargs-parser "^11.1.1" + +yargs@^13.1.0, yargs@^13.2.2: + version "13.2.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.2.tgz#0c101f580ae95cea7f39d927e7770e3fdc97f993" + dependencies: + cliui "^4.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + os-locale "^3.1.0" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.0.0" + +yeast@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" From 98c2cf1a5e69136b154dad5ab37fbdce295d54d8 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 14:45:34 +0900 Subject: [PATCH 333/480] Fixes. --- index.js | 271 +++++++++++++++++------------------------- index.js.map | 1 + index.ts | 2 +- lib/Blockchain.js.map | 2 +- package.json | 2 +- tsconfig.json | 2 +- 6 files changed, 116 insertions(+), 164 deletions(-) mode change 100755 => 100644 index.js create mode 100644 index.js.map diff --git a/index.js b/index.js old mode 100755 new mode 100644 index 1e84febc..5f0ce7e6 --- a/index.js +++ b/index.js @@ -1,173 +1,124 @@ #!/usr/bin/env node -require("babel-register") -const path = require("path") -const program = require("commander") -const chalk = require("chalk") -const mkdirp = require("mkdirp") -const figlet = require("figlet") -const clear = require("clear") -const fs = require("fs") -const touch = require("touch") -const emoji = require("node-emoji") -const repl = require("repl") -const BITBOXSDK = require("./lib/BITBOX") -const clone = require("git-clone") - -program.version("7.0.10 ", "-v, --version") - +"use strict"; +require("babel-register"); +var path = require("path"); +var program = require("commander"); +var chalk = require("chalk"); +var mkdirp = require("mkdirp"); +var figlet = require("figlet"); +var clear = require("clear"); +var fs = require("fs"); +var touch = require("touch"); +var emoji = require("node-emoji"); +var repl = require("repl"); +var BITBOX = require("./lib/BITBOX").BITBOX; +var clone = require("git-clone"); +program.version("7.0.12 ", "-v, --version"); program - .command("new ") - .option( - "-s, --scaffold ", - "The framework to use. Options include react, angular, vuejs, nextjs, node and websockets." - ) - .option( - "-r, --restURL ", - "The rest URL to use. default: https://trest.bitcoin.com/v2/" - ) - .option( - "-e, --environment ", - "environment of running BITBOX instance. Ex: production, staging. (Default: development)" - ) - .description(`create a new BITBOX application`) - .action((name, options) => { - if (fs.existsSync(`./${name}`)) { - console.log(chalk.red(`Project ${name} already exists`)) - process.exit(1) + .command("new ") + .option("-s, --scaffold ", "The framework to use. Options include react, angular, vuejs, nextjs, node and websockets.") + .option("-r, --restURL ", "The rest URL to use. default: https://trest.bitcoin.com/v2/") + .option("-e, --environment ", "environment of running BITBOX instance. Ex: production, staging. (Default: development)") + .description("create a new BITBOX application") + .action(function (name, options) { + if (fs.existsSync("./" + name)) { + console.log(chalk.red("Project " + name + " already exists")); + process.exit(1); } - - let config - const environment = fetchOption("environment=development", config, options) - const restURL = fetchOption( - "restURL=https://trest.bitcoin.com/v2/", - config, - options - ) - + var config; + var environment = fetchOption("environment=development", config, options); + var restURL = fetchOption("restURL=https://trest.bitcoin.com/v2/", config, options); if (options && options.scaffold) { - let scaffold = options.scaffold.toLowerCase() - let repo - const conf = {} - if (scaffold === "node") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-node.git" - } else if (scaffold === "angular") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-angular.git" - } else if (scaffold === "next") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-next.git" - } else if (scaffold === "react") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-react.git" - } else if (scaffold === "vue") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-vue.git" - } else if (scaffold === "websockets") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-websockets.git" - } else { - console.log(chalk.red(`Scaffold ${scaffold} not supported`)) - process.exit(1) - } - - if (options && options.repo) { - scaffold = "custom repo" - repo = options.repo.toLowerCase() - } - - clear() - console.log( - chalk.blue( - figlet.textSync("BITBOX", { + var scaffold = options.scaffold.toLowerCase(); + var repo = void 0; + var conf = {}; + if (scaffold === "node") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-node.git"; + } + else if (scaffold === "angular") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-angular.git"; + } + else if (scaffold === "next") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-next.git"; + } + else if (scaffold === "react") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-react.git"; + } + else if (scaffold === "vue") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-vue.git"; + } + else if (scaffold === "websockets") { + repo = "https://github.com/Bitcoin-com/bitbox-scaffold-websockets.git"; + } + else { + console.log(chalk.red("Scaffold " + scaffold + " not supported")); + process.exit(1); + } + if (options && options.repo) { + scaffold = "custom repo"; + repo = options.repo.toLowerCase(); + } + clear(); + console.log(chalk.blue(figlet.textSync("BITBOX", { font: "3-D", horizontalLayout: "full" - }) - ) - ) - - console.log(chalk.blue(`Scaffolding ${scaffold} app in ${name}`)) - clone(repo, `./${name}`, [conf], res => { - if (res === "Error: 'git clone' failed with status 128") { - console.log(chalk.red("Must create new app in to an empty directory")) - } else { - console.log(chalk.green("All done."), emoji.get(":white_check_mark:")) - console.log( - chalk.blue( - "Now `cd` in to your new project and run `npm install && npm start`" - ), - emoji.get(":rocket:") - ) - } - }) - return + }))); + console.log(chalk.blue("Scaffolding " + scaffold + " app in " + name)); + clone(repo, "./" + name, [conf], function (res) { + if (res === "Error: 'git clone' failed with status 128") { + console.log(chalk.red("Must create new app in to an empty directory")); + } + else { + console.log(chalk.green("All done."), emoji.get(":white_check_mark:")); + console.log(chalk.blue("Now `cd` in to your new project and run `npm install && npm start`"), emoji.get(":rocket:")); + } + }); + return; } - - console.log(chalk.green(`Creating ${name}/ directory`)) - console.log(chalk.green(`Creating src/ directory: ./${name}/src`)) - mkdirp(`./${name}/src`, err => {}) - - console.log(chalk.green(`Creating tests/ directory: ./${name}/tests`)) - mkdirp(`./${name}/tests`, err => {}) - - console.log( - chalk.green(`Creating bitbox.js configuration file: ./${name}/bitbox.js`) - ) - - mkdirp(`./${name}`, err => {}) - touch(`./${name}/bitbox.js`) - fs.writeFileSync( - `./${name}/bitbox.js`, - `exports.config = { - environments: { - ${environment}: { - restURL: "${restURL}" - } - } -}; -` - ) - fs.appendFileSync(`./${name}/.gitignore`, ".console_history") - console.log(chalk.blue("All done."), emoji.get(":white_check_mark:")) - console.log( - chalk.blue( - "Go get em! Remember--with great power comes great responsibility." - ), - emoji.get(":rocket:") - ) - }) - + console.log(chalk.green("Creating " + name + "/ directory")); + console.log(chalk.green("Creating src/ directory: ./" + name + "/src")); + mkdirp("./" + name + "/src", function (err) { }); + console.log(chalk.green("Creating tests/ directory: ./" + name + "/tests")); + mkdirp("./" + name + "/tests", function (err) { }); + console.log(chalk.green("Creating bitbox.js configuration file: ./" + name + "/bitbox.js")); + mkdirp("./" + name, function (err) { }); + touch("./" + name + "/bitbox.js"); + fs.writeFileSync("./" + name + "/bitbox.js", "exports.config = {\n environments: {\n " + environment + ": {\n restURL: \"" + restURL + "\"\n }\n }\n};\n"); + fs.appendFileSync("./" + name + "/.gitignore", ".console_history"); + console.log(chalk.blue("All done."), emoji.get(":white_check_mark:")); + console.log(chalk.blue("Go get em! Remember--with great power comes great responsibility."), emoji.get(":rocket:")); +}); program - .command("console") - .option( - "-e, --environment ", - "environment of running BITBOX instance. Ex: production, staging. (Default: development)" - ) - .description("Run a console with Bitcoin Cash RPC commands available") - .action(options => { - let config + .command("console") + .option("-e, --environment ", "environment of running BITBOX instance. Ex: production, staging. (Default: development)") + .description("Run a console with Bitcoin Cash RPC commands available") + .action(function (options) { + var config; try { - config = require(`${process.cwd()}/bitbox.js`).config - } catch (err) { - console.log( - chalk.red("Console command must be run inside a bitbox project") - ) - process.exit(1) + config = require(process.cwd() + "/bitbox.js").config; + } + catch (err) { + console.log(chalk.red("Console command must be run inside a bitbox project")); + process.exit(1); } - const replServer = repl.start("> ") - const historyFile = path.join(process.cwd(), ".console_history") - require("repl.history")(replServer, historyFile) - - const environment = fetchOption("environment=development", config, options) - - replServer.context.BITBOX = new BITBOXSDK(config.environments[environment]) - }) - + var replServer = repl.start("> "); + var historyFile = path.join(process.cwd(), ".console_history"); + require("repl.history")(replServer, historyFile); + var environment = fetchOption("environment=development", config, options); + replServer.context.BITBOX = new BITBOX(config.environments[environment]); +}); function fetchOption(kv, config, options) { - const parts = kv.split("=") - const key = parts[0] - const defaultVal = parts[1] - if (options && options[key]) return options[key] - else if (config && config.new && config.new[key]) return config.new[key] - - return defaultVal + var parts = kv.split("="); + var key = parts[0]; + var defaultVal = parts[1]; + if (options && options[key]) + return options[key]; + else if (config && config.new && config.new[key]) + return config.new[key]; + return defaultVal; } - -program.parse(process.argv) - +program.parse(process.argv); // print help if no command given -if (!process.argv.slice(2).length) program.outputHelp() +// if (!process.argv.slice(2).length) program.outputHelp() +module.exports = BITBOX; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/index.js.map b/index.js.map new file mode 100644 index 00000000..b93d7782 --- /dev/null +++ b/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;AACA,OAAO,CAAC,gBAAgB,CAAC,CAAA;AACzB,IAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,IAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;AACpC,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAC9B,IAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;AAChC,IAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;AAChC,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAC9B,IAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AACxB,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAC9B,IAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;AACnC,IAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,IAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,CAAA;AAC7C,IAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;AAElC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,CAAA;AAE3C,OAAO;KACJ,OAAO,CAAC,YAAY,CAAC;KACrB,MAAM,CACL,2BAA2B,EAC3B,2FAA2F,CAC5F;KACA,MAAM,CACL,yBAAyB,EACzB,6DAA6D,CAC9D;KACA,MAAM,CACL,iCAAiC,EACjC,yFAAyF,CAC1F;KACA,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,UAAC,IAAS,EAAE,OAAY;IAC9B,IAAI,EAAE,CAAC,UAAU,CAAC,OAAK,IAAM,CAAC,EAAE;QAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAW,IAAI,oBAAiB,CAAC,CAAC,CAAA;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAChB;IAED,IAAI,MAAM,CAAA;IACV,IAAM,WAAW,GAAG,WAAW,CAAC,yBAAyB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IAC3E,IAAM,OAAO,GAAG,WAAW,CACzB,uCAAuC,EACvC,MAAM,EACN,OAAO,CACR,CAAA;IAED,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE;QAC/B,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAA;QAC7C,IAAI,IAAI,SAAA,CAAA;QACR,IAAM,IAAI,GAAG,EAAE,CAAA;QACf,IAAI,QAAQ,KAAK,MAAM,EAAE;YACvB,IAAI,GAAG,yDAAyD,CAAA;SACjE;aAAM,IAAI,QAAQ,KAAK,SAAS,EAAE;YACjC,IAAI,GAAG,4DAA4D,CAAA;SACpE;aAAM,IAAI,QAAQ,KAAK,MAAM,EAAE;YAC9B,IAAI,GAAG,yDAAyD,CAAA;SACjE;aAAM,IAAI,QAAQ,KAAK,OAAO,EAAE;YAC/B,IAAI,GAAG,0DAA0D,CAAA;SAClE;aAAM,IAAI,QAAQ,KAAK,KAAK,EAAE;YAC7B,IAAI,GAAG,wDAAwD,CAAA;SAChE;aAAM,IAAI,QAAQ,KAAK,YAAY,EAAE;YACpC,IAAI,GAAG,+DAA+D,CAAA;SACvE;aAAM;YACL,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAY,QAAQ,mBAAgB,CAAC,CAAC,CAAA;YAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SAChB;QAED,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE;YAC3B,QAAQ,GAAG,aAAa,CAAA;YACxB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;SAClC;QAED,KAAK,EAAE,CAAA;QACP,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACxB,IAAI,EAAE,KAAK;YACX,gBAAgB,EAAE,MAAM;SACzB,CAAC,CACH,CACF,CAAA;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAe,QAAQ,gBAAW,IAAM,CAAC,CAAC,CAAA;QACjE,KAAK,CAAC,IAAI,EAAE,OAAK,IAAM,EAAE,CAAC,IAAI,CAAC,EAAE,UAAC,GAAQ;YACxC,IAAI,GAAG,KAAK,2CAA2C,EAAE;gBACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAA;aACvE;iBAAM;gBACL,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAA;gBACtE,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,oEAAoE,CACrE,EACD,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CACtB,CAAA;aACF;QACH,CAAC,CAAC,CAAA;QACF,OAAM;KACP;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,cAAY,IAAI,gBAAa,CAAC,CAAC,CAAA;IACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gCAA8B,IAAI,SAAM,CAAC,CAAC,CAAA;IAClE,MAAM,CAAC,OAAK,IAAI,SAAM,EAAE,UAAC,GAAQ,IAAM,CAAC,CAAC,CAAA;IAEzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,kCAAgC,IAAI,WAAQ,CAAC,CAAC,CAAA;IACtE,MAAM,CAAC,OAAK,IAAI,WAAQ,EAAE,UAAC,GAAQ,IAAM,CAAC,CAAC,CAAA;IAE3C,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,8CAA4C,IAAI,eAAY,CAAC,CAC1E,CAAA;IAED,MAAM,CAAC,OAAK,IAAM,EAAE,UAAC,GAAQ,IAAM,CAAC,CAAC,CAAA;IACrC,KAAK,CAAC,OAAK,IAAI,eAAY,CAAC,CAAA;IAC5B,EAAE,CAAC,aAAa,CACd,OAAK,IAAI,eAAY,EACrB,gDAEA,WAAW,8BACC,OAAO,yBAIxB,CACI,CAAA;IACD,EAAE,CAAC,cAAc,CAAC,OAAK,IAAI,gBAAa,EAAE,kBAAkB,CAAC,CAAA;IAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAA;IACrE,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,mEAAmE,CACpE,EACD,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CACtB,CAAA;AACH,CAAC,CAAC,CAAA;AAEJ,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,MAAM,CACL,iCAAiC,EACjC,yFAAyF,CAC1F;KACA,WAAW,CAAC,wDAAwD,CAAC;KACrE,MAAM,CAAC,UAAC,OAAY;IACnB,IAAI,MAAM,CAAA;IACV,IAAI;QACF,MAAM,GAAG,OAAO,CAAI,OAAO,CAAC,GAAG,EAAE,eAAY,CAAC,CAAC,MAAM,CAAA;KACtD;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,qDAAqD,CAAC,CACjE,CAAA;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAChB;IACD,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACnC,IAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,kBAAkB,CAAC,CAAA;IAChE,OAAO,CAAC,cAAc,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;IAEhD,IAAM,WAAW,GAAG,WAAW,CAAC,yBAAyB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IAE3E,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAA;AAC1E,CAAC,CAAC,CAAA;AAEJ,SAAS,WAAW,CAAC,EAAO,EAAE,MAAW,EAAE,OAAY;IACrD,IAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC3B,IAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IACpB,IAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IAC3B,IAAI,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAA;SAC3C,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAExE,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAE3B,iCAAiC;AACjC,0DAA0D;AAE1D,MAAM,CAAC,OAAO,GAAG,MAAM,CAAA"} \ No newline at end of file diff --git a/index.ts b/index.ts index 5edd67cf..41554430 100644 --- a/index.ts +++ b/index.ts @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOX = require("./lib/BITBOX").BITBOX const clone = require("git-clone") -program.version("7.0.11 ", "-v, --version") +program.version("7.0.12 ", "-v, --version") program .command("new ") diff --git a/lib/Blockchain.js.map b/lib/Blockchain.js.map index 7e5c4e82..f0553ee0 100644 --- a/lib/Blockchain.js.map +++ b/lib/Blockchain.js.map @@ -1 +1 @@ -{"version":3,"file":"Blockchain.js","sourceRoot":"","sources":["Blockchain.ts"],"names":[],"mappings":";AAAA;;;EAGE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEF,+BAAyB;AA8FzB;IAEE,oBAAY,OAAe;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEK,qCAAgB,GAAtB;;;;;;;wBAE0B,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,gCAA6B,CAC7C,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,6BAAQ,GAAd,UACE,SAAiB,EACjB,OAAuB;QAAvB,wBAAA,EAAA,cAAuB;;;;;;;wBAGC,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,4BAAuB,SAAS,iBAAY,OAAS,CACrE,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,sCAAiB,GAAvB;;;;;;;wBAE0B,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,iCAA8B,CAC9C,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,kCAAa,GAAnB;;;;;;;wBAE0B,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,6BAA0B,CAC1C,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,iCAAY,GAAlB,UAAmB,MAAkB;QAAlB,uBAAA,EAAA,UAAkB;;;;;;;wBAIX,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,gCAA2B,MAAQ,CACnD,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,mCAAc,GAApB,UACE,IAAuB,EACvB,OAAuB;QAAvB,wBAAA,EAAA,cAAuB;;;;;;;6BAIjB,CAAA,OAAO,IAAI,KAAK,QAAQ,CAAA,EAAxB,wBAAwB;wBACJ,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,kCAA6B,IAAI,iBAAY,OAAS,CACtE,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBAED,sBAAO,QAAQ,CAAC,IAAI;4BAEpB,0BAA0B;0BAFN;;6BAGX,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAnB,wBAAmB;wBACtB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,8BAA2B;4BAC/C,IAAI,EAAE;gCACJ,MAAM,EAAE,IAAI;gCACZ,OAAO,EAAE,OAAO;6BACjB;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;;;wBAEnE,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,iCAAY,GAAlB;;;;;;;wBAE0B,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,4BAAyB,CACzC,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,kCAAa,GAAnB;;;;;;;wBAE0B,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,6BAA0B,CAC1C,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAED,yBAAyB;IACnB,wCAAmB,GAAzB,UACE,IAAY,EACZ,OAAwB;QAAxB,wBAAA,EAAA,eAAwB;;;;;;wBAExB,IAAI,OAAO,IAAI,KAAK,QAAQ;4BAAE,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;;;;wBAGjC,qBAAM,eAAK,CAAC,GAAG,CAEjC,IAAI,CAAC,OAAO,uCACoB,IAAI,iBAAY,OAAS,CAC5D,EAAA;;wBAJK,QAAQ,GAAQ,SAIrB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAED,yBAAyB;IACnB,0CAAqB,GAA3B,UACE,IAAY,EACZ,OAAwB;QAAxB,wBAAA,EAAA,eAAwB;;;;;;wBAExB,IAAI,OAAO,IAAI,KAAK,QAAQ;4BAAE,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;;;;wBAGjC,qBAAM,eAAK,CAAC,GAAG,CAEjC,IAAI,CAAC,OAAO,yCACsB,IAAI,iBAAY,OAAS,CAC9D,EAAA;;wBAJK,QAAQ,GAAQ,SAIrB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,oCAAe,GAArB,UAAsB,IAAuB;;;;;;;6BAIrC,CAAA,OAAO,IAAI,KAAK,QAAQ,CAAA,EAAxB,wBAAwB;wBACJ,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,mCAA8B,IAAM,CACpD,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBAED,sBAAO,QAAQ,CAAC,IAAI,EAAA;;6BACX,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAnB,wBAAmB;wBACtB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,+BAA4B;4BAChD,IAAI,EAAE;gCACJ,KAAK,EAAE,IAAI;6BACZ;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;;;wBAE9D,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,mCAAc,GAApB;;;;;;;wBAE0B,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,8BAA2B,CAC3C,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,kCAAa,GAAnB,UAAoB,OAAwB;QAAxB,wBAAA,EAAA,eAAwB;;;;;;;wBAGlB,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,wCAAmC,OAAS,CAC5D,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,6BAAQ,GAAd,UACE,IAAY,EACZ,CAAM,EACN,eAA+B;QAA/B,gCAAA,EAAA,sBAA+B;;;;;;;wBAIP,qBAAM,eAAK,CAAC,GAAG,CAEjC,IAAI,CAAC,OAAO,4BACS,IAAI,2BAAsB,eAAiB,CACnE,EAAA;;wBAJK,QAAQ,GAAQ,SAIrB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,kCAAa,GAAnB,UAAoB,KAAwB;;;;;;;6BAGpC,CAAA,OAAO,KAAK,KAAK,QAAQ,CAAA,EAAzB,wBAAyB;wBACrB,IAAI,GAAM,IAAI,CAAC,OAAO,iCAA4B,KAAO,CAAA;wBAGzC,qBAAM,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAA;;wBAArC,QAAQ,GAAQ,SAAqB;wBAC3C,sBAAO,QAAQ,CAAC,IAAI;4BAEpB,kBAAkB;0BAFE;;6BAGX,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAApB,wBAAoB;wBACvB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,6BAA0B;4BAC9C,IAAI,EAAE;gCACJ,KAAK,EAAE,KAAK;6BACb;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;;;wBAE9D,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,kCAAa,GAAnB,UAAoB,SAAiB;;;;;;;wBAGX,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,iCAA4B,SAAW,CACvD,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,oCAAe,GAArB,UAAsB,MAAc;;;;;;;wBAGf,qBAAM,eAAK,CAAC,IAAI,CAC5B,IAAI,CAAC,OAAO,mCAA8B,MAAQ,CACtD,EAAA;;wBAFK,QAAQ,GAAG,SAEhB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,gCAAW,GAAjB,UACE,UAAsB,EACtB,OAAmB;QADnB,2BAAA,EAAA,cAAsB;QACtB,wBAAA,EAAA,WAAmB;;;;;;;wBAGK,qBAAM,eAAK,CAAC,GAAG,CAEjC,IAAI,CAAC,OAAO,0CACuB,UAAU,iBAAY,OAAS,CACrE,EAAA;;wBAJK,QAAQ,GAAQ,SAIrB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,qCAAgB,GAAtB,UAAuB,KAAkB;;;;;;;6BAGjC,CAAA,OAAO,KAAK,KAAK,QAAQ,CAAA,EAAzB,wBAAyB;wBACL,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,oCAA+B,KAAO,CACtD,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI;4BAEpB,mBAAmB;0BAFC;;6BAGX,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAApB,wBAAoB;wBACvB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,gCAA6B;4BACjD,IAAI,EAAE;gCACJ,MAAM,EAAE,KAAK;6BACd;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;;;wBAE9D,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IACH,iBAAC;AAAD,CAAC,AA3VD,IA2VC;AA3VY,gCAAU"} \ No newline at end of file +{"version":3,"file":"Blockchain.js","sourceRoot":"","sources":["Blockchain.ts"],"names":[],"mappings":";AAAA;;;EAGE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEF,+BAAyB;AA8FzB;IAEE,oBAAY,OAAe;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEK,qCAAgB,GAAtB;;;;;;;wBAE0B,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,gCAA6B,CAC7C,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,6BAAQ,GAAd,UACE,SAAiB,EACjB,OAAuB;QAAvB,wBAAA,EAAA,cAAuB;;;;;;;wBAGC,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,4BAAuB,SAAS,iBAAY,OAAS,CACrE,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,sCAAiB,GAAvB;;;;;;;wBAE0B,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,iCAA8B,CAC9C,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,kCAAa,GAAnB;;;;;;;wBAE0B,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,6BAA0B,CAC1C,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,iCAAY,GAAlB,UAAmB,MAAkB;QAAlB,uBAAA,EAAA,UAAkB;;;;;;;wBAIX,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,gCAA2B,MAAQ,CACnD,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,mCAAc,GAApB,UACE,IAAuB,EACvB,OAAuB;QAAvB,wBAAA,EAAA,cAAuB;;;;;;;6BAIjB,CAAA,OAAO,IAAI,KAAK,QAAQ,CAAA,EAAxB,wBAAwB;wBACJ,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,kCAA6B,IAAI,iBAAY,OAAS,CACtE,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBAED,sBAAO,QAAQ,CAAC,IAAI;4BAEpB,0BAA0B;0BAFN;;6BAGX,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAnB,wBAAmB;wBACtB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,8BAA2B;4BAC/C,IAAI,EAAE;gCACJ,MAAM,EAAE,IAAI;gCACZ,OAAO,EAAE,OAAO;6BACjB;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;;;wBAEnE,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,iCAAY,GAAlB;;;;;;;wBAE0B,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,4BAAyB,CACzC,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,kCAAa,GAAnB;;;;;;;wBAE0B,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,6BAA0B,CAC1C,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAED,yBAAyB;IACnB,wCAAmB,GAAzB,UACE,IAAY,EACZ,OAAwB;QAAxB,wBAAA,EAAA,eAAwB;;;;;;wBAExB,IAAI,OAAO,IAAI,KAAK,QAAQ;4BAAE,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;;;;wBAGjC,qBAAM,eAAK,CAAC,GAAG,CAEjC,IAAI,CAAC,OAAO,uCACoB,IAAI,iBAAY,OAAS,CAC5D,EAAA;;wBAJK,QAAQ,GAAQ,SAIrB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAED,yBAAyB;IACnB,0CAAqB,GAA3B,UACE,IAAY,EACZ,OAAwB;QAAxB,wBAAA,EAAA,eAAwB;;;;;;wBAExB,IAAI,OAAO,IAAI,KAAK,QAAQ;4BAAE,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;;;;wBAGjC,qBAAM,eAAK,CAAC,GAAG,CAEjC,IAAI,CAAC,OAAO,yCACsB,IAAI,iBAAY,OAAS,CAC9D,EAAA;;wBAJK,QAAQ,GAAQ,SAIrB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,oCAAe,GAArB,UAAsB,IAAuB;;;;;;;6BAIrC,CAAA,OAAO,IAAI,KAAK,QAAQ,CAAA,EAAxB,wBAAwB;wBACJ,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,mCAA8B,IAAM,CACpD,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBAED,sBAAO,QAAQ,CAAC,IAAI,EAAA;;6BACX,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAnB,wBAAmB;wBACtB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,+BAA4B;4BAChD,IAAI,EAAE;gCACJ,KAAK,EAAE,IAAI;6BACZ;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;;;wBAE9D,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,mCAAc,GAApB;;;;;;;wBAE0B,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,8BAA2B,CAC3C,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,kCAAa,GAAnB,UAAoB,OAAwB;QAAxB,wBAAA,EAAA,eAAwB;;;;;;;wBAGlB,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,wCAAmC,OAAS,CAC5D,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,6BAAQ,GAAd,UACE,IAAY,EACZ,CAAM,EACN,eAA+B;QAA/B,gCAAA,EAAA,sBAA+B;;;;;;;wBAIP,qBAAM,eAAK,CAAC,GAAG,CAEjC,IAAI,CAAC,OAAO,4BACS,IAAI,2BAAsB,eAAiB,CACnE,EAAA;;wBAJK,QAAQ,GAAQ,SAIrB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,kCAAa,GAAnB,UAAoB,KAAwB;;;;;;;6BAGpC,CAAA,OAAO,KAAK,KAAK,QAAQ,CAAA,EAAzB,wBAAyB;wBACrB,SAAU,IAAI,CAAC,OAAO,iCAA4B,KAAO,CAAA;wBAGzC,qBAAM,eAAK,CAAC,GAAG,CAAC,MAAI,CAAC,EAAA;;wBAArC,QAAQ,GAAQ,SAAqB;wBAC3C,sBAAO,QAAQ,CAAC,IAAI;4BAEpB,kBAAkB;0BAFE;;6BAGX,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAApB,wBAAoB;wBACvB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,6BAA0B;4BAC9C,IAAI,EAAE;gCACJ,KAAK,EAAE,KAAK;6BACb;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;;;wBAE9D,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,kCAAa,GAAnB,UAAoB,SAAiB;;;;;;;wBAGX,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,iCAA4B,SAAW,CACvD,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,oCAAe,GAArB,UAAsB,MAAc;;;;;;;wBAGf,qBAAM,eAAK,CAAC,IAAI,CAC5B,IAAI,CAAC,OAAO,mCAA8B,MAAQ,CACtD,EAAA;;wBAFK,QAAQ,GAAG,SAEhB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,gCAAW,GAAjB,UACE,UAAsB,EACtB,OAAmB;QADnB,2BAAA,EAAA,cAAsB;QACtB,wBAAA,EAAA,WAAmB;;;;;;;wBAGK,qBAAM,eAAK,CAAC,GAAG,CAEjC,IAAI,CAAC,OAAO,0CACuB,UAAU,iBAAY,OAAS,CACrE,EAAA;;wBAJK,QAAQ,GAAQ,SAIrB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,qCAAgB,GAAtB,UAAuB,KAAkB;;;;;;;6BAGjC,CAAA,OAAO,KAAK,KAAK,QAAQ,CAAA,EAAzB,wBAAyB;wBACL,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,oCAA+B,KAAO,CACtD,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI;4BAEpB,mBAAmB;0BAFC;;6BAGX,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAApB,wBAAoB;wBACvB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,gCAA6B;4BACjD,IAAI,EAAE;gCACJ,MAAM,EAAE,KAAK;6BACd;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;;;wBAE9D,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IACH,iBAAC;AAAD,CAAC,AA3VD,IA2VC;AA3VY,gCAAU"} \ No newline at end of file diff --git a/package.json b/package.json index 30d91276..06284b87 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.0.11", + "version": "7.0.12", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ diff --git a/tsconfig.json b/tsconfig.json index a25e3173..782c4eac 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -8,5 +8,5 @@ "lib": ["es2017"], "sourceMap": true }, - "include": ["./lib", "./test"] + "include": ["./lib", "./test", "index.ts"] } From ddbe20db7edcd8f3064328c2e378fa0b461669a3 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 15:15:58 +0900 Subject: [PATCH 334/480] Cleaning up. --- .gitignore | 3 +- index.js | 124 ---------------------------------- index.js.map | 1 - index.ts | 2 +- lib/Address.js.map | 1 - lib/BITBOX.js.map | 1 - lib/BitcoinCash.js.map | 1 - lib/Block.js.map | 1 - lib/Blockchain.js.map | 1 - lib/Control.js.map | 1 - lib/Crypto.js.map | 1 - lib/ECPair.js.map | 1 - lib/Generating.js.map | 1 - lib/HDNode.js.map | 1 - lib/Mining.js.map | 1 - lib/Mnemonic.js.map | 1 - lib/Price.js.map | 1 - lib/RawTransactions.js.map | 1 - lib/Schnorr.js.map | 1 - lib/Script.js.map | 1 - lib/Socket.js.map | 1 - lib/Transaction.js.map | 1 - lib/TransactionBuilder.js.map | 1 - lib/Util.js.map | 1 - lib/Wallet.js.map | 1 - package.json | 2 +- yarn.lock | 42 +++--------- 27 files changed, 12 insertions(+), 183 deletions(-) delete mode 100644 index.js delete mode 100644 index.js.map delete mode 100644 lib/Address.js.map delete mode 100644 lib/BITBOX.js.map delete mode 100644 lib/BitcoinCash.js.map delete mode 100644 lib/Block.js.map delete mode 100644 lib/Blockchain.js.map delete mode 100644 lib/Control.js.map delete mode 100644 lib/Crypto.js.map delete mode 100644 lib/ECPair.js.map delete mode 100644 lib/Generating.js.map delete mode 100644 lib/HDNode.js.map delete mode 100644 lib/Mining.js.map delete mode 100644 lib/Mnemonic.js.map delete mode 100644 lib/Price.js.map delete mode 100644 lib/RawTransactions.js.map delete mode 100644 lib/Schnorr.js.map delete mode 100644 lib/Script.js.map delete mode 100644 lib/Socket.js.map delete mode 100644 lib/Transaction.js.map delete mode 100644 lib/TransactionBuilder.js.map delete mode 100644 lib/Util.js.map delete mode 100644 lib/Wallet.js.map diff --git a/.gitignore b/.gitignore index de0e9f26..0074adc8 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ package-lock.json # production /dist - +index.js +index.js.map lib/**/*.js lib/**/*.js.map diff --git a/index.js b/index.js deleted file mode 100644 index 5f0ce7e6..00000000 --- a/index.js +++ /dev/null @@ -1,124 +0,0 @@ -#!/usr/bin/env node -"use strict"; -require("babel-register"); -var path = require("path"); -var program = require("commander"); -var chalk = require("chalk"); -var mkdirp = require("mkdirp"); -var figlet = require("figlet"); -var clear = require("clear"); -var fs = require("fs"); -var touch = require("touch"); -var emoji = require("node-emoji"); -var repl = require("repl"); -var BITBOX = require("./lib/BITBOX").BITBOX; -var clone = require("git-clone"); -program.version("7.0.12 ", "-v, --version"); -program - .command("new ") - .option("-s, --scaffold ", "The framework to use. Options include react, angular, vuejs, nextjs, node and websockets.") - .option("-r, --restURL ", "The rest URL to use. default: https://trest.bitcoin.com/v2/") - .option("-e, --environment ", "environment of running BITBOX instance. Ex: production, staging. (Default: development)") - .description("create a new BITBOX application") - .action(function (name, options) { - if (fs.existsSync("./" + name)) { - console.log(chalk.red("Project " + name + " already exists")); - process.exit(1); - } - var config; - var environment = fetchOption("environment=development", config, options); - var restURL = fetchOption("restURL=https://trest.bitcoin.com/v2/", config, options); - if (options && options.scaffold) { - var scaffold = options.scaffold.toLowerCase(); - var repo = void 0; - var conf = {}; - if (scaffold === "node") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-node.git"; - } - else if (scaffold === "angular") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-angular.git"; - } - else if (scaffold === "next") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-next.git"; - } - else if (scaffold === "react") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-react.git"; - } - else if (scaffold === "vue") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-vue.git"; - } - else if (scaffold === "websockets") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-websockets.git"; - } - else { - console.log(chalk.red("Scaffold " + scaffold + " not supported")); - process.exit(1); - } - if (options && options.repo) { - scaffold = "custom repo"; - repo = options.repo.toLowerCase(); - } - clear(); - console.log(chalk.blue(figlet.textSync("BITBOX", { - font: "3-D", - horizontalLayout: "full" - }))); - console.log(chalk.blue("Scaffolding " + scaffold + " app in " + name)); - clone(repo, "./" + name, [conf], function (res) { - if (res === "Error: 'git clone' failed with status 128") { - console.log(chalk.red("Must create new app in to an empty directory")); - } - else { - console.log(chalk.green("All done."), emoji.get(":white_check_mark:")); - console.log(chalk.blue("Now `cd` in to your new project and run `npm install && npm start`"), emoji.get(":rocket:")); - } - }); - return; - } - console.log(chalk.green("Creating " + name + "/ directory")); - console.log(chalk.green("Creating src/ directory: ./" + name + "/src")); - mkdirp("./" + name + "/src", function (err) { }); - console.log(chalk.green("Creating tests/ directory: ./" + name + "/tests")); - mkdirp("./" + name + "/tests", function (err) { }); - console.log(chalk.green("Creating bitbox.js configuration file: ./" + name + "/bitbox.js")); - mkdirp("./" + name, function (err) { }); - touch("./" + name + "/bitbox.js"); - fs.writeFileSync("./" + name + "/bitbox.js", "exports.config = {\n environments: {\n " + environment + ": {\n restURL: \"" + restURL + "\"\n }\n }\n};\n"); - fs.appendFileSync("./" + name + "/.gitignore", ".console_history"); - console.log(chalk.blue("All done."), emoji.get(":white_check_mark:")); - console.log(chalk.blue("Go get em! Remember--with great power comes great responsibility."), emoji.get(":rocket:")); -}); -program - .command("console") - .option("-e, --environment ", "environment of running BITBOX instance. Ex: production, staging. (Default: development)") - .description("Run a console with Bitcoin Cash RPC commands available") - .action(function (options) { - var config; - try { - config = require(process.cwd() + "/bitbox.js").config; - } - catch (err) { - console.log(chalk.red("Console command must be run inside a bitbox project")); - process.exit(1); - } - var replServer = repl.start("> "); - var historyFile = path.join(process.cwd(), ".console_history"); - require("repl.history")(replServer, historyFile); - var environment = fetchOption("environment=development", config, options); - replServer.context.BITBOX = new BITBOX(config.environments[environment]); -}); -function fetchOption(kv, config, options) { - var parts = kv.split("="); - var key = parts[0]; - var defaultVal = parts[1]; - if (options && options[key]) - return options[key]; - else if (config && config.new && config.new[key]) - return config.new[key]; - return defaultVal; -} -program.parse(process.argv); -// print help if no command given -// if (!process.argv.slice(2).length) program.outputHelp() -module.exports = BITBOX; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/index.js.map b/index.js.map deleted file mode 100644 index b93d7782..00000000 --- a/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;AACA,OAAO,CAAC,gBAAgB,CAAC,CAAA;AACzB,IAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,IAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;AACpC,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAC9B,IAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;AAChC,IAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;AAChC,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAC9B,IAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AACxB,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAC9B,IAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;AACnC,IAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,IAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,CAAA;AAC7C,IAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;AAElC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,CAAA;AAE3C,OAAO;KACJ,OAAO,CAAC,YAAY,CAAC;KACrB,MAAM,CACL,2BAA2B,EAC3B,2FAA2F,CAC5F;KACA,MAAM,CACL,yBAAyB,EACzB,6DAA6D,CAC9D;KACA,MAAM,CACL,iCAAiC,EACjC,yFAAyF,CAC1F;KACA,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,UAAC,IAAS,EAAE,OAAY;IAC9B,IAAI,EAAE,CAAC,UAAU,CAAC,OAAK,IAAM,CAAC,EAAE;QAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAW,IAAI,oBAAiB,CAAC,CAAC,CAAA;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAChB;IAED,IAAI,MAAM,CAAA;IACV,IAAM,WAAW,GAAG,WAAW,CAAC,yBAAyB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IAC3E,IAAM,OAAO,GAAG,WAAW,CACzB,uCAAuC,EACvC,MAAM,EACN,OAAO,CACR,CAAA;IAED,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE;QAC/B,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAA;QAC7C,IAAI,IAAI,SAAA,CAAA;QACR,IAAM,IAAI,GAAG,EAAE,CAAA;QACf,IAAI,QAAQ,KAAK,MAAM,EAAE;YACvB,IAAI,GAAG,yDAAyD,CAAA;SACjE;aAAM,IAAI,QAAQ,KAAK,SAAS,EAAE;YACjC,IAAI,GAAG,4DAA4D,CAAA;SACpE;aAAM,IAAI,QAAQ,KAAK,MAAM,EAAE;YAC9B,IAAI,GAAG,yDAAyD,CAAA;SACjE;aAAM,IAAI,QAAQ,KAAK,OAAO,EAAE;YAC/B,IAAI,GAAG,0DAA0D,CAAA;SAClE;aAAM,IAAI,QAAQ,KAAK,KAAK,EAAE;YAC7B,IAAI,GAAG,wDAAwD,CAAA;SAChE;aAAM,IAAI,QAAQ,KAAK,YAAY,EAAE;YACpC,IAAI,GAAG,+DAA+D,CAAA;SACvE;aAAM;YACL,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAY,QAAQ,mBAAgB,CAAC,CAAC,CAAA;YAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SAChB;QAED,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE;YAC3B,QAAQ,GAAG,aAAa,CAAA;YACxB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;SAClC;QAED,KAAK,EAAE,CAAA;QACP,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACxB,IAAI,EAAE,KAAK;YACX,gBAAgB,EAAE,MAAM;SACzB,CAAC,CACH,CACF,CAAA;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAe,QAAQ,gBAAW,IAAM,CAAC,CAAC,CAAA;QACjE,KAAK,CAAC,IAAI,EAAE,OAAK,IAAM,EAAE,CAAC,IAAI,CAAC,EAAE,UAAC,GAAQ;YACxC,IAAI,GAAG,KAAK,2CAA2C,EAAE;gBACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAA;aACvE;iBAAM;gBACL,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAA;gBACtE,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,oEAAoE,CACrE,EACD,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CACtB,CAAA;aACF;QACH,CAAC,CAAC,CAAA;QACF,OAAM;KACP;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,cAAY,IAAI,gBAAa,CAAC,CAAC,CAAA;IACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gCAA8B,IAAI,SAAM,CAAC,CAAC,CAAA;IAClE,MAAM,CAAC,OAAK,IAAI,SAAM,EAAE,UAAC,GAAQ,IAAM,CAAC,CAAC,CAAA;IAEzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,kCAAgC,IAAI,WAAQ,CAAC,CAAC,CAAA;IACtE,MAAM,CAAC,OAAK,IAAI,WAAQ,EAAE,UAAC,GAAQ,IAAM,CAAC,CAAC,CAAA;IAE3C,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,8CAA4C,IAAI,eAAY,CAAC,CAC1E,CAAA;IAED,MAAM,CAAC,OAAK,IAAM,EAAE,UAAC,GAAQ,IAAM,CAAC,CAAC,CAAA;IACrC,KAAK,CAAC,OAAK,IAAI,eAAY,CAAC,CAAA;IAC5B,EAAE,CAAC,aAAa,CACd,OAAK,IAAI,eAAY,EACrB,gDAEA,WAAW,8BACC,OAAO,yBAIxB,CACI,CAAA;IACD,EAAE,CAAC,cAAc,CAAC,OAAK,IAAI,gBAAa,EAAE,kBAAkB,CAAC,CAAA;IAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAA;IACrE,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,mEAAmE,CACpE,EACD,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CACtB,CAAA;AACH,CAAC,CAAC,CAAA;AAEJ,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,MAAM,CACL,iCAAiC,EACjC,yFAAyF,CAC1F;KACA,WAAW,CAAC,wDAAwD,CAAC;KACrE,MAAM,CAAC,UAAC,OAAY;IACnB,IAAI,MAAM,CAAA;IACV,IAAI;QACF,MAAM,GAAG,OAAO,CAAI,OAAO,CAAC,GAAG,EAAE,eAAY,CAAC,CAAC,MAAM,CAAA;KACtD;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,qDAAqD,CAAC,CACjE,CAAA;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAChB;IACD,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACnC,IAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,kBAAkB,CAAC,CAAA;IAChE,OAAO,CAAC,cAAc,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;IAEhD,IAAM,WAAW,GAAG,WAAW,CAAC,yBAAyB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IAE3E,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAA;AAC1E,CAAC,CAAC,CAAA;AAEJ,SAAS,WAAW,CAAC,EAAO,EAAE,MAAW,EAAE,OAAY;IACrD,IAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC3B,IAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IACpB,IAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IAC3B,IAAI,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAA;SAC3C,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAExE,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAE3B,iCAAiC;AACjC,0DAA0D;AAE1D,MAAM,CAAC,OAAO,GAAG,MAAM,CAAA"} \ No newline at end of file diff --git a/index.ts b/index.ts index 41554430..29371225 100644 --- a/index.ts +++ b/index.ts @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOX = require("./lib/BITBOX").BITBOX const clone = require("git-clone") -program.version("7.0.12 ", "-v, --version") +program.version("7.0.13 ", "-v, --version") program .command("new ") diff --git a/lib/Address.js.map b/lib/Address.js.map deleted file mode 100644 index 8cc18116..00000000 --- a/lib/Address.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Address.js","sourceRoot":"","sources":["Address.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAyB;AACzB,IAAM,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAC5C,IAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;AACtC,IAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAiFpC;IAEE,iBAAY,OAAe;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,oEAAoE;IACpE,iCAAe,GAAf,UAAgB,OAAe;QACvB,IAAA,0BAA8C,EAA5C,kBAAM,EAAE,cAAI,EAAE,cAA8B,CAAA;QAEpD,IAAI,WAAgB,CAAA;QACpB,QAAQ,MAAM,EAAE;YACd,KAAK,aAAa;gBAChB,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;gBACvC,MAAK;YACP,KAAK,SAAS;gBACZ,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;gBACvC,MAAK;YACP,KAAK,QAAQ;gBACX,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAA;gBAC1C,MAAK;YACP;gBACE,MAAM,0BAAwB,MAAQ,CAAA;SACzC;QAED,IAAI,OAAY,CAAA;QAChB,QAAQ,IAAI,EAAE;YACZ,KAAK,OAAO;gBACV,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAA;gBACrC,MAAK;YACP,KAAK,MAAM;gBACT,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAA;gBACzC,MAAK;YACP;gBACE,MAAM,gCAA8B,IAAM,CAAA;SAC7C;QAED,IAAM,OAAO,GAAQ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEtC,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACxD,CAAC;IAED,+BAAa,GAAb,UACE,OAAe,EACf,MAAsB,EACtB,OAAwB;QADxB,uBAAA,EAAA,aAAsB;QACtB,wBAAA,EAAA,eAAwB;QAExB,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAErC,IAAI,YAAoB,CAAA;QACxB,IAAI,OAAO;YAAE,YAAY,GAAG,QAAQ,CAAA;;YAC/B,YAAY,GAAG,OAAO,CAAC,MAAM,CAAA;QAElC,IAAM,WAAW,GAAW,QAAQ,CAAC,MAAM,CACzC,YAAY,EACZ,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,IAAI,CACb,CAAA;QAED,IAAI,MAAM;YAAE,OAAO,WAAW,CAAA;QAC9B,OAAO,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAClC,CAAC;IAED,4CAA4C;IAC5C,iCAAe,GAAf,UAAgB,OAAe;QAC7B,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QACtD,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC;IAED,0CAA0C;IAC1C,+BAAa,GAAb,UAAc,OAAe;QAC3B,IAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QACnD,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAA;QAC5D,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC;IAED,6CAA6C;IAC7C,8CAA8C;IAC9C,wDAAwD;IACxD,iEAAiE;IACjE,sCAAsC;IACtC,IAAI;IAEJ,qCAAqC;IACrC,iCAAe,GAAf,UACE,OAAY,EACZ,OAAkD;QAAlD,wBAAA,EAAA,UAAe,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU;QAElD,IAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAC1C,IAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACpE,OAAO,aAAa,CAAA;IACtB,CAAC;IAED,mCAAmC;IACnC,+BAAa,GAAb,UACE,OAAY,EACZ,OAAkD,EAClD,OAAwB;QADxB,wBAAA,EAAA,UAAe,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU;QAClD,wBAAA,EAAA,eAAwB;QAExB,IAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAC5D,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IACzD,CAAC;IAED,yBAAO,GAAP,UAAQ,OAAe;QACrB,IAAI;YACF,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAA;SAC1C;QAAC,OAAO,KAAK,EAAE,GAAE;QAElB,IAAI;YACF,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA;SACxC;QAAC,OAAO,KAAK,EAAE,GAAE;QAElB,IAAI;YACF,OAAO,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAA;SAC/C;QAAC,OAAO,KAAK,EAAE,GAAE;QAElB,MAAM,IAAI,KAAK,CAAC,kCAAgC,OAAS,CAAC,CAAA;IAC5D,CAAC;IAED,sCAAoB,GAApB,UAAqB,OAAY;QACzB,IAAA,6CAA4D,EAA1D,oBAAO,EAAE,cAAiD,CAAA;QAClE,IAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAA;QAEjC,QAAQ,OAAO,EAAE;YACf,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM;gBAC5B,OAAO;oBACL,MAAM,EAAE,aAAa;oBACrB,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,IAAI;oBACV,MAAM,EAAE,QAAQ;iBACjB,CAAA;YACH,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU;gBAChC,OAAO;oBACL,MAAM,EAAE,aAAa;oBACrB,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI;oBACV,MAAM,EAAE,QAAQ;iBACjB,CAAA;YACH,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM;gBAC5B,OAAO;oBACL,MAAM,EAAE,SAAS;oBACjB,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,IAAI;oBACV,MAAM,EAAE,QAAQ;iBACjB,CAAA;YACH,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU;gBAChC,OAAO;oBACL,MAAM,EAAE,SAAS;oBACjB,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI;oBACV,MAAM,EAAE,QAAQ;iBACjB,CAAA;YACH;gBACE,MAAM,IAAI,KAAK,CAAC,sBAAoB,OAAS,CAAC,CAAA;SACjD;IACH,CAAC;IAED,oCAAkB,GAAlB,UAAmB,OAAe;QAChC,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;YAC/B,IAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YACxC,OAAO,CAAC,MAAM,GAAG,UAAU,CAAA;YAC3B,OAAO,OAAO,CAAA;SACf;QAED,IAAM,QAAQ,GAAa,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;QAC/D,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YAChD,IAAI;gBACF,IAAM,OAAO,GAAQ,QAAQ,CAAC,MAAM,CAAI,QAAQ,CAAC,CAAC,CAAC,SAAI,OAAS,CAAC,CAAA;gBACjE,OAAO,CAAC,MAAM,GAAG,UAAU,CAAA;gBAC3B,OAAO,OAAO,CAAA;aACf;YAAC,OAAO,KAAK,EAAE,GAAE;SACnB;QAED,MAAM,IAAI,KAAK,CAAC,sBAAoB,OAAS,CAAC,CAAA;IAChD,CAAC;IAED,2CAAyB,GAAzB,UAA0B,OAAe;QACvC,IAAI;YACF,OAAO;gBACL,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;gBAC5C,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;gBACxC,MAAM,EAAE,SAAS;aAClB,CAAA;SACF;QAAC,OAAO,KAAK,EAAE,GAAE;QAElB,MAAM,IAAI,KAAK,CAAC,sBAAoB,OAAS,CAAC,CAAA;IAChD,CAAC;IAED,2BAA2B;IAC3B,iCAAe,GAAf,UAAgB,OAAe;QAC7B,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAA;IACvD,CAAC;IAED,+BAAa,GAAb,UAAc,OAAe;QAC3B,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,UAAU,CAAA;IACzD,CAAC;IAED,2BAAS,GAAT,UAAU,OAAe;QACvB,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,SAAS,CAAA;IACxD,CAAC;IAED,4BAA4B;IAC5B,kCAAgB,GAAhB,UAAiB,OAAe;QAC9B,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,OAAO,IAAI,CAAA;aAC9B,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,OAAO,KAAK,CAAA;QAEzC,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,KAAK,SAAS,CAAA;IACzD,CAAC;IAED,kCAAgB,GAAhB,UAAiB,OAAe;QAC9B,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,OAAO,KAAK,CAAA;aAC/B,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,OAAO,IAAI,CAAA;QAExC,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,KAAK,SAAS,CAAA;IACzD,CAAC;IAED,kCAAgB,GAAhB,UAAiB,OAAe;QAC9B,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,KAAK,SAAS,CAAA;IACzD,CAAC;IAED,yBAAyB;IACzB,gCAAc,GAAd,UAAe,OAAe;QAC5B,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,OAAO,CAAA;IACpD,CAAC;IAED,+BAAa,GAAb,UAAc,OAAe;QAC3B,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,MAAM,CAAA;IACnD,CAAC;IAED,yBAAyB;IACzB,qCAAmB,GAAnB,UAAoB,OAAe;QACjC,IAAM,OAAO,GAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAE1C,OAAO,OAAO,CAAC,MAAM,CAAA;IACvB,CAAC;IAED,0BAA0B;IAC1B,sCAAoB,GAApB,UAAqB,OAAe;QAClC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,OAAO,SAAS,CAAA;aACnC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,OAAO,SAAS,CAAA;QAE7C,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAErC,QAAQ,OAAO,CAAC,MAAM,EAAE;YACtB,KAAK,aAAa;gBAChB,OAAO,SAAS,CAAA;YAClB,KAAK,SAAS;gBACZ,OAAO,SAAS,CAAA;YAClB,KAAK,QAAQ;gBACX,OAAO,SAAS,CAAA;YAClB;gBACE,MAAM,IAAI,KAAK,CAAC,sBAAoB,OAAO,CAAC,MAAQ,CAAC,CAAA;SACxD;IACH,CAAC;IAED,uBAAuB;IACvB,mCAAiB,GAAjB,UAAkB,OAAe;QAC/B,IAAM,OAAO,GAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAE1C,OAAO,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;IACnC,CAAC;IAED,0BAAQ,GAAR,UAAS,IAAY,EAAE,IAAoB;QAApB,qBAAA,EAAA,YAAoB;QACzC,IAAI,WAAgB,CAAA;QACpB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;aACvD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;QAEjE,IAAM,uBAAuB,GAAG,WAAW,CAAC,WAAW,EAAE,CAAA;QACzD,IAAM,MAAM,GAAQ,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAA;QAC5E,IAAM,OAAO,GAAQ,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC5C,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;IACjD,CAAC;IAED,2BAAS,GAAT,UAAU,KAAa,EAAE,IAAqB;QAArB,qBAAA,EAAA,aAAqB;QAC5C,IAAI,WAAgB,CAAA;QACpB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;aACxD,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;QAElE,IAAM,uBAAuB,GAAG,WAAW,CAAC,WAAW,EAAE,CAAA;QACzD,IAAM,MAAM,GAAQ,OAAO,CAAC,MAAM,CAAC,UAAU,CAC3C,KAAK,EACL,uBAAuB,CACxB,CAAA;QACD,IAAM,OAAO,GAAQ,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC5C,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;IACjD,CAAC;IAED,kCAAgB,GAAhB,UAAiB,YAAiB,EAAE,OAA2B;QAA3B,wBAAA,EAAA,mBAA2B;QAC7D,IAAI,QAAa,CAAA;QACjB,IAAI,OAAO,KAAK,aAAa,IAAI,OAAO,KAAK,SAAS;YACpD,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAA;QAErC,IAAM,OAAO,GAAY,OAAO,KAAK,QAAQ,CAAA;QAE7C,OAAO,IAAI,CAAC,aAAa,CACvB,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,EAAE,QAAQ,CAAC,EACxD,IAAI,EACJ,OAAO,CACR,CAAA;IACH,CAAC;IAEK,yBAAO,GAAb,UACE,OAA0B;;;;;;;6BAIpB,CAAA,OAAO,OAAO,KAAK,QAAQ,CAAA,EAA3B,wBAA2B;wBACP,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,wBAAmB,OAAS,CAC5C,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBAED,sBAA6B,QAAQ,CAAC,IAAI;4BAE1C,6BAA6B;0BAFa;;6BAGjC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAtB,wBAAsB;wBACzB,OAAO,GAAQ;4BACnB,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,oBAAiB;4BACrC,IAAI,EAAE;gCACJ,SAAS,EAAE,OAAO;6BACnB;yBACF,CAAA;wBACqB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAApC,QAAQ,GAAQ,SAAoB;wBAE1C,sBAA6B,QAAQ,CAAC,IAAI,EAAA;4BAG5C,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;;;wBAEtE,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,sBAAI,GAAV,UACE,OAA0B;;;;;;;6BAIpB,CAAA,OAAO,OAAO,KAAK,QAAQ,CAAA,EAA3B,wBAA2B;wBACP,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,qBAAgB,OAAS,CACzC,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;6BACX,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAtB,wBAAsB;wBACzB,OAAO,GAAQ;4BACnB,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,iBAAc;4BAClC,IAAI,EAAE;gCACJ,SAAS,EAAE,OAAO;6BACnB;yBACF,CAAA;wBACqB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAApC,QAAQ,GAAQ,SAAoB;wBAE1C,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;;;wBAEtE,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,6BAAW,GAAjB,UACE,OAA0B;;;;;;;6BAIpB,CAAA,OAAO,OAAO,KAAK,QAAQ,CAAA,EAA3B,wBAA2B;wBACP,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,4BAAuB,OAAS,CAChD,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI;4BAEpB,+BAA+B;0BAFX;;6BAGX,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAtB,wBAAsB;wBACzB,OAAO,GAAQ;4BACnB,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,wBAAqB;4BACzC,IAAI,EAAE;gCACJ,SAAS,EAAE,OAAO;6BACnB;yBACF,CAAA;wBACqB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAApC,QAAQ,GAAQ,SAAoB;wBAE1C,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;;;wBAEtE,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,8BAAY,GAAlB,UAAmB,OAA0B;;;;;;;6BAGrC,CAAA,OAAO,OAAO,KAAK,QAAQ,CAAA,EAA3B,wBAA2B;wBACP,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,6BAAwB,OAAS,CACjD,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI;4BAEpB,+BAA+B;0BAFX;;6BAGX,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAtB,wBAAsB;wBACzB,OAAO,GAAQ;4BACnB,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,yBAAsB;4BAC1C,IAAI,EAAE;gCACJ,SAAS,EAAE,OAAO;6BACnB;yBACF,CAAA;wBACqB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAApC,QAAQ,GAAQ,SAAoB;wBAE1C,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;;;wBAEtE,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IACH,cAAC;AAAD,CAAC,AAzaD,IAyaC;AAzaY,0BAAO"} \ No newline at end of file diff --git a/lib/BITBOX.js.map b/lib/BITBOX.js.map deleted file mode 100644 index ed5ff630..00000000 --- a/lib/BITBOX.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"BITBOX.js","sourceRoot":"","sources":["BITBOX.ts"],"names":[],"mappings":";;AAGA,aAAa;AACb,6CAA2C;AAC3C,mCAAiC;AACjC,+BAA6B;AAC7B,iCAA+B;AAC/B,2CAAyC;AACzC,qCAAmC;AACnC,2CAAyC;AACzC,mCAAiC;AACjC,qDAAmD;AACnD,uCAAqC;AACrC,qCAAmC;AACnC,mCAAiC;AACjC,6CAA2C;AAC3C,2DAAyD;AACzD,mCAAiC;AACjC,mCAAiC;AACjC,iCAA+B;AAC/B,mCAAiC;AACjC,mCAAiC;AACjC,qCAAmC;AA0BnC;IAsBE,gBAAY,MAAoB;QAApB,uBAAA,EAAA,WAAoB;QAC9B,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,KAAK,EAAE;YACnD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;;YAC1B,IAAI,CAAC,OAAO,GAAG,8BAA8B,CAAA;QAElD,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACxC,IAAI,CAAC,WAAW,GAAG,IAAI,yBAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAChD,IAAI,CAAC,KAAK,GAAG,IAAI,aAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACpC,IAAI,CAAC,UAAU,GAAG,IAAI,uBAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC9C,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACxC,IAAI,CAAC,MAAM,GAAG,eAAM,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,eAAM,CAAA;QACpB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACpC,IAAI,CAAC,UAAU,GAAG,IAAI,uBAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC9C,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,aAAK,EAAE,CAAA;QACxB,IAAI,CAAC,eAAe,GAAG,IAAI,iCAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACxD,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,EAAE,CAAA;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,yBAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAChD,IAAI,CAAC,kBAAkB,GAAG,uCAAkB,CAAA;QAC5C,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAChD,IAAI,CAAC,IAAI,GAAG,IAAI,WAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAClC,IAAI,CAAC,MAAM,GAAG,eAAM,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,eAAM,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,EAAE,CAAA;IAC9B,CAAC;IACH,aAAC;AAAD,CAAC,AAlDD,IAkDC;AAlDY,wBAAM"} \ No newline at end of file diff --git a/lib/BitcoinCash.js.map b/lib/BitcoinCash.js.map deleted file mode 100644 index 2717dff9..00000000 --- a/lib/BitcoinCash.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"BitcoinCash.js","sourceRoot":"","sources":["BitcoinCash.ts"],"names":[],"mappings":";;AAAA,IAAM,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAC5C,IAAM,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;AACrC,IAAM,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AACnD,IAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAC9B,IAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AACpC,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAC9B,IAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;AAE1B,IAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,MAAM,CAAA;AAgD5C;IAEE,qBAAY,OAAY;QACtB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;IACzB,CAAC;IAED,mCAAmC;IACnC,+BAAS,GAAT,UAAU,KAAa;QACrB,OAAO,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC;IAED,kCAAkC;IAClC,mCAAa,GAAb,UAAc,QAAgB;QAC5B,OAAO,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IAC/B,CAAC;IAED,eAAe;IACf,4CAAsB,GAAtB,UAAuB,aAAqB,EAAE,OAAe;QAC3D,IAAM,OAAO,GACX,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;QACzD,IAAI,WAAgB,CAAA;QACpB,IAAI,OAAO,KAAK,SAAS;YAAE,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;;YAC7D,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;QAE5C,IAAM,uBAAuB,GAAQ,WAAW,CAAC,WAAW,EAAE,CAAA;QAC9D,IAAM,OAAO,GAAQ,OAAO,CAAC,MAAM,CAAC,OAAO,CACzC,aAAa,EACb,uBAAuB,CACxB,CAAA;QACD,IAAM,UAAU,GAAQ,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAC9C,OAAO,cAAc;aAClB,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC;aAC7C,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACvB,CAAC;IAED,iBAAiB;IACjB,mCAAa,GAAb,UAAc,OAAe,EAAE,SAAiB,EAAE,OAAe;QAC/D,OAAO,cAAc,CAAC,MAAM,CAC1B,OAAO,EACP,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,EACtC,SAAS,CACV,CAAA;IACH,CAAC;IAED,qBAAqB;IACrB,uCAAiB,GAAjB,UAAkB,GAAW;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;IAC7C,CAAC;IAED,qBAAqB;IACrB,uCAAiB,GAAjB,UAAkB,OAAe;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7C,CAAC;IAED,mBAAmB;IACnB,iCAAW,GAAX,UACE,OAAe,EACf,OAA2B,EAC3B,OAAwB;QAAxB,wBAAA,EAAA,eAAwB;QAExB,OAAO,KAAK,CAAC,MAAM,CACjB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,EACnD,OAAO,CACR,CAAA;IACH,CAAC;IAED,mBAAmB;IACnB,iCAAW,GAAX,UAAY,GAAW;QACrB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;IAED,kCAAY,GAAZ,UAAa,MAAW,EAAE,OAAY;QACpC,oFAAoF;QACpF,IAAI,WAAW,GAAW,CAAC,CAAA;QAC3B,IAAI,UAAU,GAAY,KAAK,CAAA;QAC/B,2CAA2C;QAC3C,IAAM,KAAK,GAAQ;YACjB,MAAM,EAAE;gBACN,eAAe,EAAE,EAAE,GAAG,CAAC;gBACvB,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;gBAC5B,qBAAqB,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;gBACjC,KAAK,EAAE,GAAG,GAAG,CAAC;gBACd,MAAM,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC;gBACpB,aAAa,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC;aAC5B;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,EAAE,GAAG,CAAC;gBACZ,KAAK,EAAE,EAAE,GAAG,CAAC;gBACb,MAAM,EAAE,EAAE,GAAG,CAAC;gBACd,KAAK,EAAE,EAAE,GAAG,CAAC;aACd;SACF,CAAA;QAED,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAS,GAAG;YACtC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU,EAAE;gBAClC,0DAA0D;gBAC1D,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAC/B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,oBAAkB,GAAK,CAAC,CAAA;gBACnE,IAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;gBAC1B,IAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAS,IAAI;oBACpD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAA;gBACvB,CAAC,CAAC,CAAA;gBAEF,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;gBACjD,IAAM,UAAU,GAAG,MAAM,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBACrD,WAAW,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAA;aAC5D;iBAAM;gBACL,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;aAC/C;YACD,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,UAAU,GAAG,IAAI,CAAA;QAC9C,CAAC,CAAC,CAAA;QAEF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAS,GAAG;YACvC,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAClD,CAAC,CAAC,CAAA;QAEF,IAAI,UAAU;YAAE,WAAW,IAAI,CAAC,CAAA;QAEhC,WAAW,IAAI,EAAE,GAAG,CAAC,CAAA;QAErB,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAA;IACnC,CAAC;IAED,kCAAY,GAAZ,UAAa,UAAkB,EAAE,UAAkB;QACjD,IAAM,OAAO,GAAQ,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAE3C,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;IAC1E,CAAC;IAED,kCAAY,GAAZ,UACE,YAAoB,EACpB,UAAkB,EAClB,OAA2B;QAA3B,wBAAA,EAAA,mBAA2B;QAE3B,IAAM,YAAY,GAAQ,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;QACjE,IAAI,MAAW,CAAA;QACf,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,GAAG,IAAI,CAAA;;YACnC,MAAM,GAAG,IAAI,CAAA;QAElB,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,CAAA;IAC7E,CAAC;IACH,kBAAC;AAAD,CAAC,AA7ID,IA6IC;AA7IY,kCAAW"} \ No newline at end of file diff --git a/lib/Block.js.map b/lib/Block.js.map deleted file mode 100644 index ed2c26ba..00000000 --- a/lib/Block.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Block.js","sourceRoot":"","sources":["Block.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAyB;AA6BzB;IAEE,eAAY,OAAe;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEK,+BAAe,GAArB,UACE,EAAqB;;;;;;;6BAIf,CAAA,OAAO,EAAE,KAAK,QAAQ,CAAA,EAAtB,wBAAsB;wBACF,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,8BAAyB,EAAI,CAC7C,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI;4BAEpB,mBAAmB;0BAFC;;6BAGX,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAjB,wBAAiB;wBACpB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,0BAAuB;4BAC3C,IAAI,EAAE;gCACJ,OAAO,EAAE,EAAE;6BACZ;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;;;wBAE9D,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,6BAAa,GAAnB,UACE,IAAuB;;;;;;;6BAIjB,CAAA,OAAO,IAAI,KAAK,QAAQ,CAAA,EAAxB,wBAAwB;wBACJ,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,4BAAuB,IAAM,CAC7C,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI;4BAEpB,mBAAmB;0BAFC;;6BAGX,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAnB,wBAAmB;wBACtB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,wBAAqB;4BACzC,IAAI,EAAE;gCACJ,MAAM,EAAE,IAAI;6BACb;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;;;wBAE9D,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IACH,YAAC;AAAD,CAAC,AArED,IAqEC;AArEY,sBAAK"} \ No newline at end of file diff --git a/lib/Blockchain.js.map b/lib/Blockchain.js.map deleted file mode 100644 index f0553ee0..00000000 --- a/lib/Blockchain.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Blockchain.js","sourceRoot":"","sources":["Blockchain.ts"],"names":[],"mappings":";AAAA;;;EAGE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEF,+BAAyB;AA8FzB;IAEE,oBAAY,OAAe;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEK,qCAAgB,GAAtB;;;;;;;wBAE0B,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,gCAA6B,CAC7C,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,6BAAQ,GAAd,UACE,SAAiB,EACjB,OAAuB;QAAvB,wBAAA,EAAA,cAAuB;;;;;;;wBAGC,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,4BAAuB,SAAS,iBAAY,OAAS,CACrE,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,sCAAiB,GAAvB;;;;;;;wBAE0B,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,iCAA8B,CAC9C,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,kCAAa,GAAnB;;;;;;;wBAE0B,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,6BAA0B,CAC1C,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,iCAAY,GAAlB,UAAmB,MAAkB;QAAlB,uBAAA,EAAA,UAAkB;;;;;;;wBAIX,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,gCAA2B,MAAQ,CACnD,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,mCAAc,GAApB,UACE,IAAuB,EACvB,OAAuB;QAAvB,wBAAA,EAAA,cAAuB;;;;;;;6BAIjB,CAAA,OAAO,IAAI,KAAK,QAAQ,CAAA,EAAxB,wBAAwB;wBACJ,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,kCAA6B,IAAI,iBAAY,OAAS,CACtE,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBAED,sBAAO,QAAQ,CAAC,IAAI;4BAEpB,0BAA0B;0BAFN;;6BAGX,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAnB,wBAAmB;wBACtB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,8BAA2B;4BAC/C,IAAI,EAAE;gCACJ,MAAM,EAAE,IAAI;gCACZ,OAAO,EAAE,OAAO;6BACjB;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;;;wBAEnE,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,iCAAY,GAAlB;;;;;;;wBAE0B,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,4BAAyB,CACzC,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,kCAAa,GAAnB;;;;;;;wBAE0B,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,6BAA0B,CAC1C,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAED,yBAAyB;IACnB,wCAAmB,GAAzB,UACE,IAAY,EACZ,OAAwB;QAAxB,wBAAA,EAAA,eAAwB;;;;;;wBAExB,IAAI,OAAO,IAAI,KAAK,QAAQ;4BAAE,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;;;;wBAGjC,qBAAM,eAAK,CAAC,GAAG,CAEjC,IAAI,CAAC,OAAO,uCACoB,IAAI,iBAAY,OAAS,CAC5D,EAAA;;wBAJK,QAAQ,GAAQ,SAIrB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAED,yBAAyB;IACnB,0CAAqB,GAA3B,UACE,IAAY,EACZ,OAAwB;QAAxB,wBAAA,EAAA,eAAwB;;;;;;wBAExB,IAAI,OAAO,IAAI,KAAK,QAAQ;4BAAE,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;;;;wBAGjC,qBAAM,eAAK,CAAC,GAAG,CAEjC,IAAI,CAAC,OAAO,yCACsB,IAAI,iBAAY,OAAS,CAC9D,EAAA;;wBAJK,QAAQ,GAAQ,SAIrB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,oCAAe,GAArB,UAAsB,IAAuB;;;;;;;6BAIrC,CAAA,OAAO,IAAI,KAAK,QAAQ,CAAA,EAAxB,wBAAwB;wBACJ,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,mCAA8B,IAAM,CACpD,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBAED,sBAAO,QAAQ,CAAC,IAAI,EAAA;;6BACX,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAnB,wBAAmB;wBACtB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,+BAA4B;4BAChD,IAAI,EAAE;gCACJ,KAAK,EAAE,IAAI;6BACZ;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;;;wBAE9D,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,mCAAc,GAApB;;;;;;;wBAE0B,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,8BAA2B,CAC3C,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,kCAAa,GAAnB,UAAoB,OAAwB;QAAxB,wBAAA,EAAA,eAAwB;;;;;;;wBAGlB,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,wCAAmC,OAAS,CAC5D,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,6BAAQ,GAAd,UACE,IAAY,EACZ,CAAM,EACN,eAA+B;QAA/B,gCAAA,EAAA,sBAA+B;;;;;;;wBAIP,qBAAM,eAAK,CAAC,GAAG,CAEjC,IAAI,CAAC,OAAO,4BACS,IAAI,2BAAsB,eAAiB,CACnE,EAAA;;wBAJK,QAAQ,GAAQ,SAIrB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,kCAAa,GAAnB,UAAoB,KAAwB;;;;;;;6BAGpC,CAAA,OAAO,KAAK,KAAK,QAAQ,CAAA,EAAzB,wBAAyB;wBACrB,SAAU,IAAI,CAAC,OAAO,iCAA4B,KAAO,CAAA;wBAGzC,qBAAM,eAAK,CAAC,GAAG,CAAC,MAAI,CAAC,EAAA;;wBAArC,QAAQ,GAAQ,SAAqB;wBAC3C,sBAAO,QAAQ,CAAC,IAAI;4BAEpB,kBAAkB;0BAFE;;6BAGX,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAApB,wBAAoB;wBACvB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,6BAA0B;4BAC9C,IAAI,EAAE;gCACJ,KAAK,EAAE,KAAK;6BACb;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;;;wBAE9D,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,kCAAa,GAAnB,UAAoB,SAAiB;;;;;;;wBAGX,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,iCAA4B,SAAW,CACvD,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,oCAAe,GAArB,UAAsB,MAAc;;;;;;;wBAGf,qBAAM,eAAK,CAAC,IAAI,CAC5B,IAAI,CAAC,OAAO,mCAA8B,MAAQ,CACtD,EAAA;;wBAFK,QAAQ,GAAG,SAEhB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,gCAAW,GAAjB,UACE,UAAsB,EACtB,OAAmB;QADnB,2BAAA,EAAA,cAAsB;QACtB,wBAAA,EAAA,WAAmB;;;;;;;wBAGK,qBAAM,eAAK,CAAC,GAAG,CAEjC,IAAI,CAAC,OAAO,0CACuB,UAAU,iBAAY,OAAS,CACrE,EAAA;;wBAJK,QAAQ,GAAQ,SAIrB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IAEK,qCAAgB,GAAtB,UAAuB,KAAkB;;;;;;;6BAGjC,CAAA,OAAO,KAAK,KAAK,QAAQ,CAAA,EAAzB,wBAAyB;wBACL,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,oCAA+B,KAAO,CACtD,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI;4BAEpB,mBAAmB;0BAFC;;6BAGX,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAApB,wBAAoB;wBACvB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,gCAA6B;4BACjD,IAAI,EAAE;gCACJ,MAAM,EAAE,KAAK;6BACd;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;;;wBAE9D,IAAI,QAAK,CAAC,QAAQ,IAAI,QAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,QAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,QAAK,CAAA;;;;;;KAEnB;IACH,iBAAC;AAAD,CAAC,AA3VD,IA2VC;AA3VY,gCAAU"} \ No newline at end of file diff --git a/lib/Control.js.map b/lib/Control.js.map deleted file mode 100644 index 974079ec..00000000 --- a/lib/Control.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Control.js","sourceRoot":"","sources":["Control.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAyB;AAiCzB;IAEE,iBAAY,OAAe;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEK,yBAAO,GAAb;;;;;;;wBAE0B,qBAAM,eAAK,CAAC,GAAG,CAAI,IAAI,CAAC,OAAO,oBAAiB,CAAC,EAAA;;wBAAjE,QAAQ,GAAQ,SAAiD;wBACvE,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,+BAAa,GAAnB;;;;;;;wBAG0B,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,0BAAuB,CACvC,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAYH,cAAC;AAAD,CAAC,AAvCD,IAuCC;AAvCY,0BAAO"} \ No newline at end of file diff --git a/lib/Crypto.js.map b/lib/Crypto.js.map deleted file mode 100644 index 00517edd..00000000 --- a/lib/Crypto.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Crypto.js","sourceRoot":"","sources":["Crypto.ts"],"names":[],"mappings":";;AAAA,IAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;AAC1C,IAAM,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAW5C;IAAA;IAoBA,CAAC;IAnBQ,aAAM,GAAb,UAAc,MAAc;QAC1B,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACtC,CAAC;IAEM,gBAAS,GAAhB,UAAiB,MAAc;QAC7B,OAAO,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IACzC,CAAC;IAEM,cAAO,GAAd,UAAe,MAAc;QAC3B,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACvC,CAAC;IAEM,cAAO,GAAd,UAAe,MAAc;QAC3B,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACvC,CAAC;IAEM,kBAAW,GAAlB,UAAmB,IAAiB;QAAjB,qBAAA,EAAA,SAAiB;QAClC,OAAO,WAAW,CAAC,IAAI,CAAC,CAAA;IAC1B,CAAC;IACH,aAAC;AAAD,CAAC,AApBD,IAoBC;AApBY,wBAAM"} \ No newline at end of file diff --git a/lib/ECPair.js.map b/lib/ECPair.js.map deleted file mode 100644 index d6b6ccfc..00000000 --- a/lib/ECPair.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ECPair.js","sourceRoot":"","sources":["ECPair.ts"],"names":[],"mappings":";;AAAA,IAAM,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAC5C,IAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAyBpC;IAAA;IAgDA,CAAC;IA9CQ,iBAAU,GAAjB,UAAkB,OAAY;QAC5B,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAA;IAC3B,CAAC;IAEM,cAAO,GAAd,UAAe,aAAqB;QAClC,IAAI,OAAO,GAAW,SAAS,CAAA;QAC/B,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,GAAG;YACtD,OAAO,GAAG,SAAS,CAAA;aAChB,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,OAAO,GAAG,SAAS,CAAA;QAEtD,IAAI,WAAgB,CAAA;QACpB,IAAI,OAAO,KAAK,SAAS;YAAE,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;;YAC7D,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;QAE5C,IAAM,uBAAuB,GAAG,WAAW,CAAC,WAAW,EAAE,CAAA;QAEzD,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAA;IACvE,CAAC;IAEM,YAAK,GAAZ,UAAa,MAAc;QACzB,OAAO,MAAM,CAAC,KAAK,EAAE,CAAA;IACvB,CAAC;IAEM,WAAI,GAAX,UAAY,MAAc,EAAE,MAAc;QACxC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC5B,CAAC;IAEM,aAAM,GAAb,UAAc,MAAc,EAAE,MAAc,EAAE,SAAsB;QAClE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACzC,CAAC;IAEM,oBAAa,GAApB,UAAqB,YAAoB;QACvC,OAAO,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAA;IACzD,CAAC;IAEM,kBAAW,GAAlB,UAAmB,MAAc;QAC/B,OAAO,MAAM,CAAC,kBAAkB,EAAE,CAAA;IACpC,CAAC;IAEM,sBAAe,GAAtB,UAAuB,MAAc;QACnC,OAAO,MAAM,CAAC,UAAU,EAAE,CAAA;IAC5B,CAAC;IAEM,oBAAa,GAApB,UAAqB,MAAc,EAAE,OAAwB;QAAxB,wBAAA,EAAA,eAAwB;QAC3D,OAAO,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAC1E,CAAC;IACH,aAAC;AAAD,CAAC,AAhDD,IAgDC;AAhDY,wBAAM"} \ No newline at end of file diff --git a/lib/Generating.js.map b/lib/Generating.js.map deleted file mode 100644 index c46bd6ce..00000000 --- a/lib/Generating.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Generating.js","sourceRoot":"","sources":["Generating.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAyB;AAWzB;IAEE,oBAAY,OAAe;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEK,sCAAiB,GAAvB,UACE,MAAc,EACd,OAAe,EACf,QAA0B;QAA1B,yBAAA,EAAA,kBAA0B;;;;;;;wBAGF,qBAAM,eAAK,CAAC,IAAI,CAElC,IAAI,CAAC,OAAO,qCACkB,MAAM,SAAI,OAAO,kBAAa,QAAU,CACzE,EAAA;;wBAJK,QAAQ,GAAQ,SAIrB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IACH,iBAAC;AAAD,CAAC,AAvBD,IAuBC;AAvBY,gCAAU"} \ No newline at end of file diff --git a/lib/HDNode.js.map b/lib/HDNode.js.map deleted file mode 100644 index e17b6646..00000000 --- a/lib/HDNode.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"HDNode.js","sourceRoot":"","sources":["HDNode.ts"],"names":[],"mappings":";;AAAA,IAAM,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAC5C,IAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AACpC,IAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;AAmBzC;IAEE,gBAAY,OAAY;QACtB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;IACzB,CAAC;IAED,yBAAQ,GAAR,UAAS,cAAmB,EAAE,OAA2B;QAA3B,wBAAA,EAAA,mBAA2B;QACvD,IAAI,WAAgB,CAAA;QACpB,IAAI,OAAO,KAAK,aAAa,IAAI,OAAO,KAAK,SAAS;YACpD,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;;YACpC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;QAE5C,IAAM,uBAAuB,GAAG,WAAW,CAAC,WAAW,EAAE,CAAA;QACzD,OAAO,OAAO,CAAC,MAAM,CAAC,cAAc,CAClC,cAAc,EACd,uBAAuB,CACxB,CAAA;IACH,CAAC;IAED,gCAAe,GAAf,UAAgB,MAAiB;QAC/B,OAAO,MAAM,CAAC,UAAU,EAAE,CAAA;IAC5B,CAAC;IAED,8BAAa,GAAb,UAAc,MAAiB,EAAE,OAAwB;QAAxB,wBAAA,EAAA,eAAwB;QACvD,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IACxE,CAAC;IAED,sBAAK,GAAL,UAAM,MAAiB;QACrB,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;IAC/B,CAAC;IAED,uBAAM,GAAN,UAAO,MAAiB;QACtB,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAA;IACrC,CAAC;IAED,wBAAO,GAAP,UAAQ,MAAiB;QACvB,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAA;IAC1B,CAAC;IAED,0BAAS,GAAT,UAAU,MAAiB;QACzB,OAAO,MAAM,CAAC,OAAO,CAAA;IACvB,CAAC;IAED,4BAAW,GAAX,UAAY,MAAiB;QAC3B,OAAO,MAAM,CAAC,kBAAkB,EAAE,CAAA;IACpC,CAAC;IAED,0BAAS,GAAT,UAAU,KAAa;QACrB,IAAI,WAAgB,CAAA;QACpB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;aACxD,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;QAElE,IAAM,uBAAuB,GAAG,WAAW,CAAC,WAAW,EAAE,CAAA;QACzD,OAAO,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAA;IAClE,CAAC;IAED,yBAAQ,GAAR,UAAS,IAAY;QACnB,IAAI,WAAgB,CAAA;QACpB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;aACvD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;QAEjE,IAAM,uBAAuB,GAAG,WAAW,CAAC,WAAW,EAAE,CAAA;QACzD,OAAO,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAA;IACjE,CAAC;IAED,2BAAU,GAAV,UAAW,MAAiB,EAAE,IAAY;QACxC,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED,uBAAM,GAAN,UAAO,MAAiB,EAAE,IAAY;QACpC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC5B,CAAC;IAED,+BAAc,GAAd,UAAe,MAAiB,EAAE,IAAY;QAC5C,OAAO,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC;IAED,qBAAI,GAAJ,UAAK,MAAiB,EAAE,MAAc;QACpC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC5B,CAAC;IAED,uBAAM,GAAN,UAAO,MAAiB,EAAE,MAAc,EAAE,SAAsB;QAC9D,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACzC,CAAC;IAED,yBAAQ,GAAR,UAAS,MAAiB;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAA;IACxC,CAAC;IAED,0BAAS,GAAT,UAAU,MAAiB;QACzB,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,CAAA;IAC7B,CAAC;IAED,6BAAY,GAAZ,UAAa,MAAiB;QAC5B,OAAO,MAAM,CAAC,aAAa,EAAE,CAAA;IAC/B,CAAC;IAED,2BAAU,GAAV,UAAW,MAAc,EAAE,OAAe;QACxC,OAAO,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnD,CAAC;IAED,8BAAa,GAAb,UAAc,OAAoB;QAChC,IAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CACrB,UAAC,IAAS,EAAE,KAAa,IAAK,OAAA,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAArC,CAAqC,CACpE,CAAA;QACD,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACpC,CAAC;IAED,4BAAW,GAAX,UAAY,MAAiB;QAC3B,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IACrC,CAAC;IACH,aAAC;AAAD,CAAC,AA/GD,IA+GC;AA/GY,wBAAM"} \ No newline at end of file diff --git a/lib/Mining.js.map b/lib/Mining.js.map deleted file mode 100644 index 55fb34ef..00000000 --- a/lib/Mining.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Mining.js","sourceRoot":"","sources":["Mining.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAyB;AAUzB;IAEE,gBAAY,OAAe;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEK,iCAAgB,GAAtB,UAAuB,gBAAqB;;;;;;;wBAElB,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,gCAA2B,gBAAkB,CAC7D,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,8BAAa,GAAnB;;;;;;;wBAE0B,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,yBAAsB,CACtC,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,iCAAgB,GAAtB,UACE,OAAqB,EACrB,MAAkB;QADlB,wBAAA,EAAA,aAAqB;QACrB,uBAAA,EAAA,UAAkB;;;;;;;wBAGM,qBAAM,eAAK,CAAC,GAAG,CAEjC,IAAI,CAAC,OAAO,wCACqB,OAAO,gBAAW,MAAQ,CAC9D,EAAA;;wBAJK,QAAQ,GAAQ,SAIrB;wBACD,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,4BAAW,GAAjB,UAAkB,GAAW,EAAE,UAAe;;;;;;wBACxC,IAAI,GAAc,IAAI,CAAC,OAAO,2BAAsB,GAAK,CAAA;wBAC7D,IAAI,UAAU;4BAAE,IAAI,GAAM,IAAI,oBAAe,UAAY,CAAA;;;;wBAGjC,qBAAM,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAA;;wBAAtC,QAAQ,GAAQ,SAAsB;wBAC5C,sBAAO,QAAQ,CAAC,IAAI,EAAA;;;wBAEpB,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IACH,aAAC;AAAD,CAAC,AA3DD,IA2DC;AA3DY,wBAAM"} \ No newline at end of file diff --git a/lib/Mnemonic.js.map b/lib/Mnemonic.js.map deleted file mode 100644 index 5a0aaeaa..00000000 --- a/lib/Mnemonic.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Mnemonic.js","sourceRoot":"","sources":["Mnemonic.ts"],"names":[],"mappings":";;AAAA,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAC9B,IAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;AAC1C,IAAM,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAC5C,iCAA+B;AAC/B,IAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;AAkB1B;IAEE,kBAAY,OAAY;QACtB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;IACzB,CAAC;IAED,2BAAQ,GAAR,UAAS,IAAkB,EAAE,QAAkB;QAAtC,qBAAA,EAAA,UAAkB;QACzB,OAAO,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;IAC5D,CAAC;IAED,8BAAW,GAAX,UAAY,KAAa,EAAE,QAAkB;QAC3C,OAAO,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IACjD,CAAC;IAED,4BAAS,GAAT,UAAU,QAAgB,EAAE,QAAkB;QAC5C,OAAO,eAAM,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAA;IACxE,CAAC;IAED,2BAAQ,GAAR,UAAS,QAAgB,EAAE,QAAkB;QAC3C,uBAAuB;QACvB,IAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACjC,sBAAsB;QACtB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,gBAAgB,CAAA;QAE/C,kBAAkB;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,IAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YACrB,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;gBAChC,gCAAgC;gBAChC,IAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;gBACxD,OAAU,IAAI,0CAAqC,WAAW,MAAG,CAAA;aAClE;SACF;QACD,4BAA4B;QAC5B,IAAM,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;QACjC,IAAM,OAAO,GAAG,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAC1D,IAAI,CAAC,OAAO;YAAE,OAAO,kBAAkB,CAAA;QAEvC,OAAO,gBAAgB,CAAA;IACzB,CAAC;IAED,yBAAM,GAAN,UAAO,QAAgB,EAAE,QAAqB;QAArB,yBAAA,EAAA,aAAqB;QAC5C,OAAO,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IACjD,CAAC;IAED,4BAAS,GAAT;QACE,OAAO,KAAK,CAAC,SAAS,CAAA;IACxB,CAAC;IAED,6BAAU,GAAV,UACE,QAAgB,EAChB,gBAA4B,EAC5B,OAAwB;QADxB,iCAAA,EAAA,oBAA4B;QAC5B,wBAAA,EAAA,eAAwB;QAExB,IAAM,cAAc,GAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QACrD,IAAM,MAAM,GAAQ,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;QACjE,IAAM,MAAM,GAAW,gBAAgB,CAAA;QAEvC,IAAM,QAAQ,GAAU,EAAE,CAAA;QAE1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,EAAE,CAAC,EAAE,EAAE;YACzC,IAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,KAAG,MAAM,GAAG,CAAG,CAAC,CAAA;YAEtD,IAAI,MAAM,GAAG,GAAG,CAAA;YAChB,IAAI,OAAO,KAAK,IAAI;gBAAE,MAAM,GAAG,GAAG,CAAA;YAElC,QAAQ,CAAC,IAAI,CAAC;gBACZ,aAAa,EAAE,GAAG,CAAC,MAAM,CACvB,MAAM,EACN,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAClC,IAAI,CACL;gBACD,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAClC,WAAW,CAAC,UAAU,EAAE,EACxB,IAAI,EACJ,OAAO,CACR;aACF,CAAC,CAAA;SACH;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,kCAAe,GAAf,UAAgB,IAAY,EAAE,QAAkB;QAC9C,IAAI,WAAW,GAAW,EAAE,CAAA;QAC5B,IAAI,WAAW,GAAW,QAAQ,CAAC,CAAC,CAAC,CAAA;QACrC,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAChD,IAAM,UAAU,GAAQ,QAAQ,CAAC,CAAC,CAAC,CAAA;YACnC,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,UAAU,CAAA;YAEpD,IAAM,QAAQ,GAAQ,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;YACvD,IAAI,QAAQ,GAAG,WAAW,EAAE;gBAC1B,WAAW,GAAG,UAAU,CAAA;gBACxB,WAAW,GAAG,QAAQ,CAAA;aACvB;SACF;QACD,OAAO,WAAW,CAAA;IACpB,CAAC;IACH,eAAC;AAAD,CAAC,AAjGD,IAiGC;AAjGY,4BAAQ;AAmGrB,gJAAgJ;AAEhJ;;;;;;;;GAQG;AAEH,IAAM,OAAO,GAAQ,UAAS,GAAQ;IACpC,IAAM,OAAO,GAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;IAC7D,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;QAC/C,IAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QACtB,KAAK,IAAM,CAAC,IAAI,GAAG;YAAE,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;gBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;KAChE;IACD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED;;;GAGG;AACH,IAAM,MAAM,GAAQ,UAAS,IAAS;IACpC,IAAI,OAAO,YAAY,KAAK,UAAU;QAAE,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;IAEjE,OAAO,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AAC5B,CAAC,CAAA;AAED;;GAEG;AACH,IAAI,WAAW,GAAQ;IACrB;;;;;;OAMG;IACH,GAAG,EAAE,UAAS,IAAS,EAAE,IAAS;QAChC,aAAa;QACb,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,CAAC,CAAA;QAC3B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,MAAM,CAAA;QACzC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,MAAM,CAAA;QAEzC,WAAW;QACX,IAAI,OAAO,GAAU,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAC7C,MAAM,EACN,OAAO,EACP,CAAC,EACD,CAAC,EACD,GAAG,CAAA;QAEL,0BAA0B;QAC1B,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAEnD,mDAAmD;QACnD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YAChC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAA;YAEf,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;gBAChC,MAAM,GAAG,OAAO,CAAA;gBAEhB,aAAa;gBACb,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBAClE,YAAY;gBACZ,GAAG,GAAG,MAAM,GAAG,CAAC,CAAA;gBAChB,IAAI,OAAO,GAAG,GAAG;oBAAE,OAAO,GAAG,GAAG,CAAA;gBAEhC,WAAW;gBACX,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;gBACxB,IAAI,OAAO,GAAG,GAAG;oBAAE,OAAO,GAAG,GAAG,CAAA;gBAEhC,2EAA2E;gBAC3E,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAA;aACpB;YAED,wEAAwE;YACxE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAA;SACrB;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAED;;;;;;;;OAQG;IACH,QAAQ,EAAE,UAAS,IAAS,EAAE,IAAS,EAAE,EAAO,EAAE,OAAY;QAC5D,OAAO,GAAG,OAAO,CACf,EAAE,EACF;YACE,QAAQ,EAAE,IAAI;SACf,EACD,OAAO,CACR,CAAA;QAED,aAAa;QACb,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;QACrC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACnD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEnD,WAAW;QACX,IAAM,OAAO,GAAU,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACjD,IAAI,MAAW,CAAA;QACf,IAAI,OAAY,CAAA;QAChB,IAAI,CAAM,CAAA;QACV,IAAI,CAAM,CAAA;QACV,IAAI,GAAQ,CAAA;QACZ,IAAI,SAAc,CAAA;QAClB,IAAI,WAAgB,CAAA;QAEpB,0BAA0B;QAC1B,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAEnD,OAAO,GAAG,CAAC,CAAA;QACX,CAAC,GAAG,CAAC,CAAA;QACL,CAAC,GAAG,CAAC,CAAC,CAAA;QAEN,IAAI,WAAW,GAAG;YAChB,cAAc;YACd,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;YAChC,WAAW,GAAG,SAAS,CAAA;YAEvB,0CAA0C;YAC1C,OAAO,WAAW,GAAG,SAAS,GAAG,IAAI,EAAE;gBACrC,8BAA8B;gBAC9B,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE;oBACtB,iEAAiE;oBACjE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAA;oBAEpB,4BAA4B;oBAC5B,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;wBAAE,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;oBAEhD,kCAAkC;oBAElC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAA;oBACf,CAAC,GAAG,CAAC,CAAA;iBACN;gBAED,cAAc;gBACd,MAAM,GAAG,OAAO,CAAA;gBAEhB,aAAa;gBACb,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBAClE,YAAY;gBACZ,GAAG,GAAG,MAAM,GAAG,CAAC,CAAA;gBAChB,IAAI,OAAO,GAAG,GAAG;oBAAE,OAAO,GAAG,GAAG,CAAA;gBAEhC,WAAW;gBACX,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;gBACxB,IAAI,OAAO,GAAG,GAAG;oBAAE,OAAO,GAAG,GAAG,CAAA;gBAEhC,iEAAiE;gBACjE,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAA;gBAEnB,mBAAmB;gBACnB,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;aACnC;YAED,0BAA0B;YAC1B,IAAI,IAAI,KAAK,OAAO,CAAC,QAAQ,EAAE;gBAC7B,IAAI;oBACF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;iBACvD;gBAAC,OAAO,GAAG,EAAE;oBACZ,OAAO,EAAE,CAAC,wBAAsB,GAAG,CAAC,QAAQ,EAAI,CAAC,CAAA;iBAClD;aACF;YAED,iBAAiB;YACjB,MAAM,CAAC,WAAW,CAAC,CAAA;QACrB,CAAC,CAAA;QAED,WAAW,EAAE,CAAA;IACf,CAAC;CACF,CAAA"} \ No newline at end of file diff --git a/lib/Price.js.map b/lib/Price.js.map deleted file mode 100644 index 281c232a..00000000 --- a/lib/Price.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Price.js","sourceRoot":"","sources":["Price.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAyB;AAMzB;IAAA;IAYA,CAAC;IAXO,uBAAO,GAAb,UAAc,QAAwB;QAAxB,yBAAA,EAAA,gBAAwB;;;;;;;wBAEZ,qBAAM,eAAK,CAAC,GAAG,CACnC,qDAAmD,QAAQ,CAAC,WAAW,EAAI,CAC5E,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAA;;;wBAE1B,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IACH,YAAC;AAAD,CAAC,AAZD,IAYC;AAZY,sBAAK"} \ No newline at end of file diff --git a/lib/RawTransactions.js.map b/lib/RawTransactions.js.map deleted file mode 100644 index 925c5655..00000000 --- a/lib/RawTransactions.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"RawTransactions.js","sourceRoot":"","sources":["RawTransactions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAyB;AA0CzB;IAEE,yBAAY,OAAe;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEK,8CAAoB,GAA1B,UAA2B,GAAsB;;;;;;;6BAGzC,CAAA,OAAO,GAAG,KAAK,QAAQ,CAAA,EAAvB,wBAAuB;wBACH,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,6CAAwC,GAAK,CAC7D,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBAED,sBAAO,QAAQ,CAAC,IAAI;4BAEpB,iBAAiB;0BAFG;;6BAGX,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAlB,wBAAkB;wBACrB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,yCAAsC;4BAC1D,IAAI,EAAE;gCACJ,KAAK,EAAE,GAAG;6BACX;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;;;wBAE9D,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,sCAAY,GAAlB,UAAmB,MAAyB;;;;;;;6BAIpC,CAAA,OAAO,MAAM,KAAK,QAAQ,CAAA,EAA1B,wBAA0B;wBACN,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,qCAAgC,MAAQ,CACxD,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBAED,sBAAO,QAAQ,CAAC,IAAI,EAAA;;6BACX,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAArB,wBAAqB;wBACxB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,iCAA8B;4BAClD,IAAI,EAAE;gCACJ,KAAK,EAAE,MAAM;6BACd;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;;;wBAE9D,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,2CAAiB,GAAvB,UACE,IAAuB,EACvB,OAAwB;QAAxB,wBAAA,EAAA,eAAwB;;;;;;;6BAGlB,CAAA,OAAO,IAAI,KAAK,QAAQ,CAAA,EAAxB,wBAAwB;wBACJ,qBAAM,eAAK,CAAC,GAAG,CAEjC,IAAI,CAAC,OAAO,0CACuB,IAAI,iBAAY,OAAS,CAC/D,EAAA;;wBAJK,QAAQ,GAAQ,SAIrB;wBAED,sBAAO,QAAQ,CAAC,IAAI,EAAA;;6BACX,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAnB,wBAAmB;wBACtB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,sCAAmC;4BACvD,IAAI,EAAE;gCACJ,KAAK,EAAE,IAAI;gCACX,OAAO,EAAE,OAAO;6BACjB;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;;;wBAE9D,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IAEK,4CAAkB,GAAxB,UACE,GAAsB,EACtB,aAA8B;QAA9B,8BAAA,EAAA,qBAA8B;;;;;;;6BAIxB,CAAA,OAAO,GAAG,KAAK,QAAQ,CAAA,EAAvB,wBAAuB;wBACH,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,2CAAsC,GAAK,CAC3D,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBAED,IAAI,QAAQ,CAAC,IAAI,KAAK,2BAA2B,EAAE;4BACjD,OAAO,CAAC,IAAI,CACV,sSAEyE,CAC1E,CAAA;yBACF;wBAED,sBAAO,QAAQ,CAAC,IAAI;4BAEpB,cAAc;0BAFM;;6BAGX,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAlB,wBAAkB;wBACrB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,uCAAoC;4BACxD,IAAI,EAAE;gCACJ,KAAK,EAAE,GAAG;6BACX;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;;;wBAElE,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IACH,sBAAC;AAAD,CAAC,AA9ID,IA8IC;AA9IY,0CAAe"} \ No newline at end of file diff --git a/lib/Schnorr.js.map b/lib/Schnorr.js.map deleted file mode 100644 index 4fd97639..00000000 --- a/lib/Schnorr.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Schnorr.js","sourceRoot":"","sources":["Schnorr.ts"],"names":[],"mappings":";;AAAA,IAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;AAgDtC;IAAA;IA6GA,CAAC;IA5GC,sBAAI,GAAJ,UAAK,UAAe,EAAE,OAAe;QACnC,OAAO,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAC1C,CAAC;IAED,wBAAM,GAAN,UAAO,SAAiB,EAAE,OAAe,EAAE,iBAAyB;QAClE,OAAO,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAA;IAC9D,CAAC;IAED,6BAAW,GAAX,UACE,UAAoB,EACpB,QAAkB,EAClB,kBAA4B;QAE5B,OAAO,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAA;IACtE,CAAC;IAED,gCAAc,GAAd,UAAe,WAAgB,EAAE,OAAe;QAC9C,OAAO,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IAC3D,CAAC;IAED,4BAAU,GAAV,UAAW,UAAe;QACxB,OAAO,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;IAC7C,CAAC;IAED,kCAAgB,GAAhB,UAAiB,UAAoB,EAAE,aAAqB;QAC1D,OAAO,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;IAC/D,CAAC;IAED,mCAAiB,GAAjB,UACE,SAAiB,EACjB,UAAe,EACf,OAAe,EACf,cAAsB,EACtB,GAAW,EACX,GAAW;QAEX,OAAO,OAAO,CAAC,KAAK,CAAC,iBAAiB,CACpC,SAAS,EACT,UAAU,EACV,OAAO,EACP,cAAc,EACd,GAAG,EACH,GAAG,CACJ,CAAA;IACH,CAAC;IAED,qCAAmB,GAAnB,UAAoB,OAAY,EAAE,MAAgB;QAChD,OAAO,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC3D,CAAC;IAED,6BAAW,GAAX,UACE,OAAY,EACZ,OAAe,EACf,aAAqB,EACrB,cAAsB;QAEtB,OAAO,OAAO,CAAC,KAAK,CAAC,WAAW,CAC9B,OAAO,EACP,OAAO,EACP,aAAa,EACb,cAAc,CACf,CAAA;IACH,CAAC;IAED,wCAAsB,GAAtB,UACE,OAAY,EACZ,gBAAqB,EACrB,aAAqB,EACrB,GAAW,EACX,MAAc,EACd,KAAa;QAEb,OAAO,OAAO,CAAC,KAAK,CAAC,gBAAgB,CACnC,OAAO,EACP,gBAAgB,EAChB,aAAa,EACb,GAAG,EACH,MAAM,EACN,KAAK,CACN,CAAA;IACH,CAAC;IAED,0CAAwB,GAAxB,UACE,aAAqB,EACrB,iBAAsB;QAEtB,OAAO,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAA;IAC1E,CAAC;IAED,6BAAW,GAAX,UAAY,MAAW;QACrB,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;IAC5C,CAAC;IAED,6BAAW,GAAX,UAAY,UAAe;QACzB,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;IAChD,CAAC;IAED,sBAAI,GAAJ,UAAK,MAAW;QACd,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACrC,CAAC;IAED,+BAAa,GAAb,UAAc,KAAU;QACtB,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IAC7C,CAAC;IAED,+BAAa,GAAb,UAAc,SAAc;QAC1B,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;IACjD,CAAC;IACH,cAAC;AAAD,CAAC,AA7GD,IA6GC;AA7GY,0BAAO"} \ No newline at end of file diff --git a/lib/Script.js.map b/lib/Script.js.map deleted file mode 100644 index 113ae539..00000000 --- a/lib/Script.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Script.js","sourceRoot":"","sources":["Script.ts"],"names":[],"mappings":";;AAAA,IAAM,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAC5C,IAAM,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;AAwL1C;IAQE;QACE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAA;QACvC,IAAI,CAAC,QAAQ,GAAG;YACd,KAAK,EAAE;gBACL,MAAM,EAAE,UAAC,UAAe;oBACtB,IAAM,IAAI,GAAU,EAAE,CAAA;oBACtB,UAAU,CAAC,OAAO,CAAC,UAAC,GAAQ;wBAC1B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;oBAChB,CAAC,CAAC,CAAA;oBACF,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBACnD,CAAC;gBACD,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM;gBAC5C,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK;aAC3C;YACD,MAAM,EAAE;gBACN,MAAM,EAAE,UAAC,CAAM,EAAE,OAAY;oBAC3B,IAAM,GAAG,GAAU,EAAE,CAAA;oBACrB,OAAO,CAAC,OAAO,CAAC,UAAC,MAAW;wBAC1B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;oBAClB,CAAC,CAAC,CAAA;oBACF,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;gBACtD,CAAC;gBACD,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM;gBAC7C,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK;aAC5C;SACF,CAAA;QACD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAA;QACnC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAA;QAC3C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAA;IAC7C,CAAC;IAED,8BAAa,GAAb,UAAc,MAAW;QACvB,OAAO,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;IAC7C,CAAC;IAED,+BAAc,GAAd,UAAe,MAAW;QACxB,OAAO,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;IAC9C,CAAC;IAED,uBAAM,GAAN,UAAO,YAAiB;QACtB,OAAO,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;IAC/C,CAAC;IAED,uBAAM,GAAN,UAAO,YAAiB;QACtB,IAAM,GAAG,GAAU,EAAE,CAAA;QACrB,YAAY,CAAC,OAAO,CAAC,UAAC,KAAU;YAC9B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACjB,CAAC,CAAC,CAAA;QACF,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACpC,CAAC;IAED,sBAAK,GAAL,UAAM,MAAW;QACf,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IACrC,CAAC;IAED,wBAAO,GAAP,UAAQ,GAAQ;QACd,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACpC,CAAC;IACH,aAAC;AAAD,CAAC,AAnED,IAmEC;AAnEY,wBAAM"} \ No newline at end of file diff --git a/lib/Socket.js.map b/lib/Socket.js.map deleted file mode 100644 index 9070fa0f..00000000 --- a/lib/Socket.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Socket.js","sourceRoot":"","sources":["Socket.ts"],"names":[],"mappings":";;AAAA,IAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;AAOtC;IAEE,gBAAY,MAAgB;QAAhB,uBAAA,EAAA,WAAgB;QAC1B,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC9B,iCAAiC;YACjC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,KAAG,MAAQ,CAAC,CAAA;SAC9B;aAAM;YACL,IAAI,MAAM,CAAC,OAAO,EAAE;gBAClB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,KAAG,MAAM,CAAC,OAAS,CAAC,CAAA;aACtC;iBAAM;gBACL,IAAM,OAAO,GAAG,0BAA0B,CAAA;gBAC1C,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,KAAG,OAAS,CAAC,CAAA;aAC/B;YAED,IAAI,MAAM,CAAC,QAAQ;gBAAE,MAAM,CAAC,QAAQ,EAAE,CAAA;SACvC;IACH,CAAC;IAED,uBAAM,GAAN,UAAO,QAAgB,EAAE,EAAO;QAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAE1B,IAAI,QAAQ,KAAK,QAAQ;YAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAC,GAAQ,IAAK,OAAA,EAAE,CAAC,GAAG,CAAC,EAAP,CAAO,CAAC,CAAA;aACrE,IAAI,QAAQ,KAAK,cAAc;YAClC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,UAAC,GAAQ,IAAK,OAAA,EAAE,CAAC,GAAG,CAAC,EAAP,CAAO,CAAC,CAAA;IACzD,CAAC;IACH,aAAC;AAAD,CAAC,AAzBD,IAyBC;AAzBY,wBAAM"} \ No newline at end of file diff --git a/lib/Transaction.js.map b/lib/Transaction.js.map deleted file mode 100644 index 0a198a84..00000000 --- a/lib/Transaction.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Transaction.js","sourceRoot":"","sources":["Transaction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAM,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAC5C,+BAAyB;AAuBzB;IAEE,qBAAY,OAAe;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEK,6BAAO,GAAb,UAAc,IAAuB;;;;;;;6BAG7B,CAAA,OAAO,IAAI,KAAK,QAAQ,CAAA,EAAxB,wBAAwB;wBACJ,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,4BAAuB,IAAM,CAC7C,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI;4BAEpB,qBAAqB;0BAFD;;6BAGX,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAnB,wBAAmB;wBACtB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,wBAAqB;4BACzC,IAAI,EAAE;gCACJ,KAAK,EAAE,IAAI;6BACZ;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;;;wBAEnE,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IACH,kBAAC;AAAD,CAAC,AAnCD,IAmCC;AAnCY,kCAAW"} \ No newline at end of file diff --git a/lib/TransactionBuilder.js.map b/lib/TransactionBuilder.js.map deleted file mode 100644 index 0df05a69..00000000 --- a/lib/TransactionBuilder.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"TransactionBuilder.js","sourceRoot":"","sources":["TransactionBuilder.ts"],"names":[],"mappings":";;AAAA,IAAM,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAC5C,IAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AACpC,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAC9B,IAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAwDjC;IAeE,4BAAY,OAA2B;QAA3B,wBAAA,EAAA,mBAA2B;QACrC,IAAI,WAAgB,CAAA;QACpB,IAAI,OAAO,KAAK,aAAa,IAAI,OAAO,KAAK,SAAS;YACpD,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;;YACpC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;QAE5C,IAAM,uBAAuB,GAAG,WAAW,CAAC,WAAW,EAAE,CAAA;QACzD,IAAI,CAAC,WAAW,GAAG,IAAI,OAAO,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,CAAA;QAC1E,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAA;QAClC,IAAI,CAAC,SAAS,GAAG;YACf,WAAW,EAAE,IAAI;YACjB,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,IAAI;YACpB,oBAAoB,EAAE,IAAI;YAC1B,0BAA0B,EAAE,IAAI;YAChC,2BAA2B,EAAE,IAAI;YACjC,yBAAyB,EAAE,IAAI;SAChC,CAAA;QACD,IAAI,CAAC,mBAAmB,GAAG;YACzB,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK;YAChC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,OAAO;SACrC,CAAA;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;QACtB,IAAI,CAAC,EAAE,CAAA;IACT,CAAC;IA9BM,6BAAU,GAAjB,UAAkB,OAAe;QAC/B,kBAAkB,CAAC,QAAQ,GAAG,OAAO,CAAA;IACvC,CAAC;IA8BD,qCAAQ,GAAR,UACE,MAAc,EACd,IAAY,EACZ,QAAwC,EACxC,aAAqB;QADrB,yBAAA,EAAA,WAAmB,IAAI,CAAC,gBAAgB;QAGxC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAA;IAClE,CAAC;IAED,2CAAc,GAAd,UAAe,IAAY,EAAE,MAAW;QACtC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAA;QAC5C,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;IACvB,CAAC;IAED,4CAAe,GAAf,UAAgB,OAAY;QAA5B,iBAMC;QALC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAA;QAC5C,OAAO,CAAC,OAAO,CAAC,UAAC,MAAW;YAC1B,KAAI,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;QACpD,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;IACvB,CAAC;IAED,sCAAS,GAAT,UAAU,YAAoB,EAAE,MAAc;QAC5C,IAAI;YACF,IAAI,CAAC,WAAW,CAAC,SAAS,CACxB,kBAAkB,CAAC,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,EACzD,MAAM,CACP,CAAA;SACF;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;SACjD;IACH,CAAC;IAED,wCAAW,GAAX,UAAY,QAAgB;QAC1B,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;IACxC,CAAC;IAED,iCAAI,GAAJ,UACE,GAAW,EACX,OAAe,EACf,YAAoB,EACpB,QAA6C,EAC7C,KAAa,EACb,kBAA0B;QAF1B,yBAAA,EAAA,WAAmB,IAAI,CAAC,SAAS,CAAC,WAAW;QAI7C,IAAI,aAAa,CAAA;QAEjB,IAAI,CAAC,WAAW,CAAC,IAAI,CACnB,GAAG,EACH,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,aAAa,EACb,kBAAkB,CACnB,CAAA;IACH,CAAC;IAED,kCAAK,GAAL;QACE,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,EAAE,CAAA;QAE3C,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;IACjC,CAAC;IACH,yBAAC;AAAD,CAAC,AA3GD,IA2GC;AA3GY,gDAAkB"} \ No newline at end of file diff --git a/lib/Util.js.map b/lib/Util.js.map deleted file mode 100644 index 16e6e864..00000000 --- a/lib/Util.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Util.js","sourceRoot":"","sources":["Util.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAyB;AAmBzB;IAEE,cAAY,OAAe;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEK,8BAAe,GAArB,UACE,OAAe;;;;;;;6BAIT,CAAA,OAAO,OAAO,KAAK,QAAQ,CAAA,EAA3B,wBAA2B;wBACP,qBAAM,eAAK,CAAC,GAAG,CAChC,IAAI,CAAC,OAAO,6BAAwB,OAAS,CACjD,EAAA;;wBAFK,QAAQ,GAAQ,SAErB;wBACD,sBAAO,QAAQ,CAAC,IAAI;4BAEpB,mBAAmB;0BAFC;;6BAGX,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAtB,wBAAsB;wBACzB,OAAO,GAAG;4BACd,MAAM,EAAE,MAAM;4BACd,GAAG,EAAK,IAAI,CAAC,OAAO,yBAAsB;4BAC1C,IAAI,EAAE;gCACJ,SAAS,EAAE,OAAO;6BACnB;yBACF,CAAA;wBACgB,qBAAM,eAAK,CAAC,OAAO,CAAC,EAAA;;wBAA/B,QAAQ,GAAG,SAAoB;wBAErC,sBAAO,QAAQ,CAAC,IAAI,EAAA;4BAGtB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;;;wBAE9D,IAAI,OAAK,CAAC,QAAQ,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI;4BAAE,MAAM,OAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;;4BAC/D,MAAM,OAAK,CAAA;;;;;;KAEnB;IACH,WAAC;AAAD,CAAC,AArCD,IAqCC;AArCY,oBAAI"} \ No newline at end of file diff --git a/lib/Wallet.js.map b/lib/Wallet.js.map deleted file mode 100644 index 6caefe33..00000000 --- a/lib/Wallet.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Wallet.js","sourceRoot":"","sources":["Wallet.ts"],"names":[],"mappings":";;AAAA,qDAAqD;AACrD;IACE,gBAAY,cAAmB;QAC7B,6DAA6D;IAC/D,CAAC;IAsEH,aAAC;AAAD,CAAC,AAzED,IAyEC;AAzEY,wBAAM"} \ No newline at end of file diff --git a/package.json b/package.json index 06284b87..6fb57bc3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.0.12", + "version": "7.0.13", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ diff --git a/yarn.lock b/yarn.lock index 819b8363..cba8dc4d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2268,7 +2268,7 @@ debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.0: dependencies: ms "^2.1.1" -debuglog@*, debuglog@^1.0.1: +debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" @@ -3711,7 +3711,7 @@ import-lazy@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" -imurmurhash@*, imurmurhash@^0.1.4: +imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -4412,7 +4412,7 @@ libnpm@^2.0.1: read-package-json "^2.0.13" stringify-package "^1.0.0" -libnpmaccess@*, libnpmaccess@^3.0.1: +libnpmaccess@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-3.0.1.tgz#5b3a9de621f293d425191aa2e779102f84167fa8" dependencies: @@ -4438,7 +4438,7 @@ libnpmhook@^5.0.2: get-stream "^4.0.0" npm-registry-fetch "^3.8.0" -libnpmorg@*, libnpmorg@^1.0.0: +libnpmorg@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-1.0.0.tgz#979b868c48ba28c5820e3bb9d9e73c883c16a232" dependencies: @@ -4461,7 +4461,7 @@ libnpmpublish@^1.1.0: semver "^5.5.1" ssri "^6.0.1" -libnpmsearch@*, libnpmsearch@^2.0.0: +libnpmsearch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-2.0.0.tgz#de05af47ada81554a5f64276a69599070d4a5685" dependencies: @@ -4469,7 +4469,7 @@ libnpmsearch@*, libnpmsearch@^2.0.0: get-stream "^4.0.0" npm-registry-fetch "^3.8.0" -libnpmteam@*, libnpmteam@^1.0.1: +libnpmteam@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-1.0.1.tgz#ff704b1b6c06ea674b3b1101ac3e305f5114f213" dependencies: @@ -4536,10 +4536,6 @@ lockfile@^1.0.4: dependencies: signal-exit "^3.0.2" -lodash._baseindexof@*: - version "3.1.0" - resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c" - lodash._baseuniq@~4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8" @@ -4547,28 +4543,10 @@ lodash._baseuniq@~4.6.0: lodash._createset "~4.0.0" lodash._root "~3.0.0" -lodash._bindcallback@*: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" - -lodash._cacheindexof@*: - version "3.0.2" - resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92" - -lodash._createcache@*: - version "3.1.2" - resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093" - dependencies: - lodash._getnative "^3.0.0" - lodash._createset@~4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" -lodash._getnative@*, lodash._getnative@^3.0.0: - version "3.9.1" - resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" - lodash._root@~3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" @@ -4605,10 +4583,6 @@ lodash.memoize@~3.0.3: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" -lodash.restparam@*: - version "3.6.1" - resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" - lodash.set@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" @@ -5287,7 +5261,7 @@ npm-pick-manifest@^2.2.3: npm-package-arg "^6.0.0" semver "^5.4.1" -npm-profile@*, npm-profile@^4.0.1: +npm-profile@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-4.0.1.tgz#d350f7a5e6b60691c7168fbb8392c3603583f5aa" dependencies: @@ -6316,7 +6290,7 @@ readable-stream@~1.1.10: isarray "0.0.1" string_decoder "~0.10.x" -readdir-scoped-modules@*, readdir-scoped-modules@^1.0.0: +readdir-scoped-modules@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747" dependencies: From 6196c0692b5a317ffeaa92c9def30ee5bf623fbf Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 15:25:53 +0900 Subject: [PATCH 335/480] Updates to syntax. --- examples/low-level/OP_RETURN/op_return.js | 2 +- index.ts | 8 ++++---- package.json | 2 +- test/integration/address.js | 4 ++-- test/integration/block.js | 4 ++-- test/integration/blockchain.js | 4 ++-- test/integration/price.js | 4 ++-- test/integration/rawtransaction.js | 4 ++-- test/integration/transaction.js | 4 ++-- test/integration/util.js | 4 ++-- test/integration/z9-rate-limits.js | 4 ++-- test/unit/Address.js | 4 ++-- test/unit/BitcoinCash.js | 4 ++-- test/unit/Block.js | 4 ++-- test/unit/Blockchain.js | 4 ++-- test/unit/Control.js | 4 ++-- test/unit/Crypto.js | 4 ++-- test/unit/ECPair.js | 4 ++-- test/unit/Generating.js | 4 ++-- test/unit/HDNode.js | 4 ++-- test/unit/Mining.js | 4 ++-- test/unit/Mnemonic.js | 4 ++-- test/unit/Price.js | 4 ++-- test/unit/RawTransactions.js | 4 ++-- test/unit/Script.js | 4 ++-- test/unit/Transaction.js | 4 ++-- test/unit/TransactionBuilder.js | 4 ++-- test/unit/Util.js | 4 ++-- 28 files changed, 56 insertions(+), 56 deletions(-) diff --git a/examples/low-level/OP_RETURN/op_return.js b/examples/low-level/OP_RETURN/op_return.js index a26bb502..2a87c7da 100644 --- a/examples/low-level/OP_RETURN/op_return.js +++ b/examples/low-level/OP_RETURN/op_return.js @@ -5,7 +5,7 @@ // Instantiate BITBOX. const bitboxLib = "../../../lib/BITBOX" const BITBOXSDK = require(bitboxLib) -const BITBOX = new BITBOXSDK() +const BITBOX = new bitbox() // Choose a transaction to parse for OP_Return diff --git a/index.ts b/index.ts index 29371225..9f35e19c 100644 --- a/index.ts +++ b/index.ts @@ -10,10 +10,10 @@ const fs = require("fs") const touch = require("touch") const emoji = require("node-emoji") const repl = require("repl") -const BITBOX = require("./lib/BITBOX").BITBOX +const bitbox = require("./lib/BITBOX").BITBOX const clone = require("git-clone") -program.version("7.0.13 ", "-v, --version") +program.version("7.0.14 ", "-v, --version") program .command("new ") @@ -154,7 +154,7 @@ program const environment = fetchOption("environment=development", config, options) - replServer.context.BITBOX = new BITBOX(config.environments[environment]) + replServer.context.BITBOX = new bitbox(config.environments[environment]) }) function fetchOption(kv: any, config: any, options: any) { @@ -172,4 +172,4 @@ program.parse(process.argv) // print help if no command given // if (!process.argv.slice(2).length) program.outputHelp() -module.exports = BITBOX +module.exports = bitbox diff --git a/package.json b/package.json index 6fb57bc3..266acfe1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.0.13", + "version": "7.0.14", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ diff --git a/test/integration/address.js b/test/integration/address.js index d6662e19..03d92c73 100644 --- a/test/integration/address.js +++ b/test/integration/address.js @@ -9,8 +9,8 @@ const chai = require("chai") const assert = chai.assert -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() +const bitbox = require("../../lib/BITBOX").BITBOX +const BITBOX = new bitbox() //const axios = require("axios") // Inspect utility used for debugging. diff --git a/test/integration/block.js b/test/integration/block.js index d8603a68..b2521b24 100644 --- a/test/integration/block.js +++ b/test/integration/block.js @@ -5,8 +5,8 @@ const chai = require("chai") const assert = chai.assert -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() +const bitbox = require("../../lib/BITBOX").BITBOX +const BITBOX = new bitbox() // Inspect utility used for debugging. const util = require("util") diff --git a/test/integration/blockchain.js b/test/integration/blockchain.js index b3b2c0c4..a23163b5 100644 --- a/test/integration/blockchain.js +++ b/test/integration/blockchain.js @@ -9,8 +9,8 @@ const chai = require("chai") const assert = chai.assert -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() +const bitbox = require("../../lib/BITBOX").BITBOX +const BITBOX = new bitbox() // Inspect utility used for debugging. const util = require("util") diff --git a/test/integration/price.js b/test/integration/price.js index a27bc580..1adbe96d 100644 --- a/test/integration/price.js +++ b/test/integration/price.js @@ -1,6 +1,6 @@ const assert = require("assert") -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() +const bitbox = require("../../lib/BITBOX").BITBOX +const BITBOX = new bitbox() describe("#price", () => { describe("#current", () => { diff --git a/test/integration/rawtransaction.js b/test/integration/rawtransaction.js index a5573e40..4f652681 100644 --- a/test/integration/rawtransaction.js +++ b/test/integration/rawtransaction.js @@ -7,8 +7,8 @@ const chai = require("chai") const assert = chai.assert -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() +const bitbox = require("../../lib/BITBOX").BITBOX +const BITBOX = new bitbox() // Inspect utility used for debugging. const util = require("util") diff --git a/test/integration/transaction.js b/test/integration/transaction.js index c80c5843..3fa040ee 100644 --- a/test/integration/transaction.js +++ b/test/integration/transaction.js @@ -5,8 +5,8 @@ const chai = require("chai") const assert = chai.assert -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() +const bitbox = require("../../lib/BITBOX").BITBOX +const BITBOX = new bitbox() // Inspect utility used for debugging. const util = require("util") diff --git a/test/integration/util.js b/test/integration/util.js index dc3ae029..5864dc1c 100644 --- a/test/integration/util.js +++ b/test/integration/util.js @@ -5,8 +5,8 @@ const chai = require("chai") const assert = chai.assert -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() +const bitbox = require("../../lib/BITBOX").BITBOX +const BITBOX = new bitbox() // Inspect utility used for debugging. const util = require("util") diff --git a/test/integration/z9-rate-limits.js b/test/integration/z9-rate-limits.js index 2c3bbd41..318adba5 100644 --- a/test/integration/z9-rate-limits.js +++ b/test/integration/z9-rate-limits.js @@ -6,8 +6,8 @@ const chai = require("chai") const assert = chai.assert -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() +const bitbox = require("../../lib/BITBOX").BITBOX +const BITBOX = new bitbox() // Inspect utility used for debugging. const util = require("util") diff --git a/test/unit/Address.js b/test/unit/Address.js index 3ae4375e..7f4ea5a0 100644 --- a/test/unit/Address.js +++ b/test/unit/Address.js @@ -1,7 +1,7 @@ const fixtures = require("./fixtures/Address.json") const assert = require("assert") -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() +const bitbox = require("../../lib/BITBOX").BITBOX +const BITBOX = new bitbox() const axios = require("axios") const sinon = require("sinon") const Bitcoin = require("bitcoincashjs-lib") diff --git a/test/unit/BitcoinCash.js b/test/unit/BitcoinCash.js index 8a5ad748..4d78ffb2 100644 --- a/test/unit/BitcoinCash.js +++ b/test/unit/BitcoinCash.js @@ -1,7 +1,7 @@ const fixtures = require("./fixtures/BitcoinCash.json") const assert = require("assert") -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() +const bitbox = require("../../lib/BITBOX").BITBOX +const BITBOX = new bitbox() // TODO // 1. generate testnet p2sh diff --git a/test/unit/Block.js b/test/unit/Block.js index 3365ccae..e3c1e59e 100644 --- a/test/unit/Block.js +++ b/test/unit/Block.js @@ -1,6 +1,6 @@ const assert = require("assert") -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() +const bitbox = require("../../lib/BITBOX").BITBOX +const BITBOX = new bitbox() const axios = require("axios") const sinon = require("sinon") diff --git a/test/unit/Blockchain.js b/test/unit/Blockchain.js index 8449c28f..6e0f465d 100644 --- a/test/unit/Blockchain.js +++ b/test/unit/Blockchain.js @@ -1,7 +1,7 @@ const assert = require("assert") const axios = require("axios") -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() +const bitbox = require("../../lib/BITBOX").BITBOX +const BITBOX = new bitbox() const sinon = require("sinon") describe("#Blockchain", () => { diff --git a/test/unit/Control.js b/test/unit/Control.js index ec3229da..74c38d80 100644 --- a/test/unit/Control.js +++ b/test/unit/Control.js @@ -1,7 +1,7 @@ const assert = require("assert") const axios = require("axios") -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() +const bitbox = require("../../lib/BITBOX").BITBOX +const BITBOX = new bitbox() const sinon = require("sinon") describe("#Control", () => { diff --git a/test/unit/Crypto.js b/test/unit/Crypto.js index 55a8da7d..1bc4218c 100644 --- a/test/unit/Crypto.js +++ b/test/unit/Crypto.js @@ -1,7 +1,7 @@ const fixtures = require("./fixtures/Crypto.json") const assert = require("assert") -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() +const bitbox = require("../../lib/BITBOX").BITBOX +const BITBOX = new bitbox() const Buffer = require("safe-buffer").Buffer describe("#Crypto", () => { diff --git a/test/unit/ECPair.js b/test/unit/ECPair.js index 03cd7aca..6159610d 100644 --- a/test/unit/ECPair.js +++ b/test/unit/ECPair.js @@ -1,7 +1,7 @@ const fixtures = require("./fixtures/ECPair.json") const assert = require("assert") -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() +const bitbox = require("../../lib/BITBOX").BITBOX +const BITBOX = new bitbox() const Buffer = require("safe-buffer").Buffer describe("#ECPair", () => { diff --git a/test/unit/Generating.js b/test/unit/Generating.js index 7d625f24..f4c60bed 100644 --- a/test/unit/Generating.js +++ b/test/unit/Generating.js @@ -1,7 +1,7 @@ const assert = require("assert") const axios = require("axios") -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() +const bitbox = require("../../lib/BITBOX").BITBOX +const BITBOX = new bitbox() const sinon = require("sinon") describe("#Generating", () => { diff --git a/test/unit/HDNode.js b/test/unit/HDNode.js index f1c2939b..4f2e9387 100644 --- a/test/unit/HDNode.js +++ b/test/unit/HDNode.js @@ -1,7 +1,7 @@ const fixtures = require("./fixtures/HDNode.json") const assert = require("assert") -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() +const bitbox = require("../../lib/BITBOX").BITBOX +const BITBOX = new bitbox() const Buffer = require("safe-buffer").Buffer describe("#HDNode", () => { diff --git a/test/unit/Mining.js b/test/unit/Mining.js index c199d15b..1023ac9d 100644 --- a/test/unit/Mining.js +++ b/test/unit/Mining.js @@ -1,7 +1,7 @@ const assert = require("assert") const axios = require("axios") -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() +const bitbox = require("../../lib/BITBOX").BITBOX +const BITBOX = new bitbox() const sinon = require("sinon") describe("#Mining", () => { diff --git a/test/unit/Mnemonic.js b/test/unit/Mnemonic.js index 39148ae3..f404213a 100644 --- a/test/unit/Mnemonic.js +++ b/test/unit/Mnemonic.js @@ -1,7 +1,7 @@ const fixtures = require("./fixtures/Mnemonic.json") const assert = require("assert") -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() +const bitbox = require("../../lib/BITBOX").BITBOX +const BITBOX = new bitbox() describe("#Mnemonic", () => { describe("#generate", () => { diff --git a/test/unit/Price.js b/test/unit/Price.js index d3bd8daf..3703e268 100644 --- a/test/unit/Price.js +++ b/test/unit/Price.js @@ -1,7 +1,7 @@ const chai = require("chai") const assert = require("assert") -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() +const bitbox = require("../../lib/BITBOX").BITBOX +const BITBOX = new bitbox() const axios = require("axios") const sinon = require("sinon") diff --git a/test/unit/RawTransactions.js b/test/unit/RawTransactions.js index 9d3cdb4d..7a867b60 100644 --- a/test/unit/RawTransactions.js +++ b/test/unit/RawTransactions.js @@ -7,8 +7,8 @@ const assert = require("assert") const axios = require("axios") -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() +const bitbox = require("../../lib/BITBOX").BITBOX +const BITBOX = new bitbox() const sinon = require("sinon") const nock = require("nock") // HTTP mocking diff --git a/test/unit/Script.js b/test/unit/Script.js index d2869507..fe28cebc 100644 --- a/test/unit/Script.js +++ b/test/unit/Script.js @@ -1,7 +1,7 @@ const fixtures = require("./fixtures/Script.json") const assert = require("assert") -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() +const bitbox = require("../../lib/BITBOX").BITBOX +const BITBOX = new bitbox() const Buffer = require("safe-buffer").Buffer describe("#Script", () => { diff --git a/test/unit/Transaction.js b/test/unit/Transaction.js index 2278f7d2..6b407c90 100644 --- a/test/unit/Transaction.js +++ b/test/unit/Transaction.js @@ -1,6 +1,6 @@ const assert = require("assert") -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() +const bitbox = require("../../lib/BITBOX").BITBOX +const BITBOX = new bitbox() const axios = require("axios") const sinon = require("sinon") diff --git a/test/unit/TransactionBuilder.js b/test/unit/TransactionBuilder.js index 352929bb..f8caef26 100644 --- a/test/unit/TransactionBuilder.js +++ b/test/unit/TransactionBuilder.js @@ -1,7 +1,7 @@ const fixtures = require("./fixtures/TransactionBuilder.json") const assert = require("assert") -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() +const bitbox = require("../../lib/BITBOX").BITBOX +const BITBOX = new bitbox() const Buffer = require("safe-buffer").Buffer describe("#TransactionBuilder", () => { diff --git a/test/unit/Util.js b/test/unit/Util.js index 2094d78a..1a227492 100644 --- a/test/unit/Util.js +++ b/test/unit/Util.js @@ -1,7 +1,7 @@ const assert = require("assert") const axios = require("axios") -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() +const bitbox = require("../../lib/BITBOX").BITBOX +const BITBOX = new bitbox() const sinon = require("sinon") describe("#Util", () => { From 6186b3cf57ba7f5565798984b1f3d3c5bbe1dc6e Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 15:44:24 +0900 Subject: [PATCH 336/480] Converging on syntax --- examples/README.md | 2 +- .../wallet/check-balance/check-balance.js | 4 +- .../consolidate-dust/consolidate-dust.js | 22 +- .../consolidate-utxos/consolidate-utxos.js | 22 +- .../wallet/create-wallet/create-wallet.js | 24 +- .../applications/wallet/send-WIF/send-wif.js | 20 +- .../applications/wallet/send-all/send-all.js | 24 +- .../applications/wallet/send-bch/send-bch.js | 30 +- examples/low-level/OP_RETURN/op_return.js | 12 +- .../address-details/address-details.js | 4 +- examples/low-level/utxo-address/get-utxos.js | 4 +- index.ts | 8 +- package.json | 2 +- .../sendrawtransaction.js | 38 +- .../sendrawtransaction.js | 26 +- test/integration/address.js | 38 +- test/integration/block.js | 22 +- test/integration/blockchain.js | 38 +- test/integration/price.js | 6 +- test/integration/rawtransaction.js | 38 +- test/integration/transaction.js | 14 +- test/integration/util.js | 18 +- test/integration/z9-rate-limits.js | 6 +- test/unit/Address.js | 354 +++---- test/unit/BitcoinCash.js | 62 +- test/unit/Block.js | 8 +- test/unit/Blockchain.js | 38 +- test/unit/Control.js | 8 +- test/unit/Crypto.js | 30 +- test/unit/ECPair.js | 68 +- test/unit/Generating.js | 6 +- test/unit/HDNode.js | 200 ++-- test/unit/Mining.js | 12 +- test/unit/Mnemonic.js | 160 ++-- test/unit/Price.js | 6 +- test/unit/RawTransactions.js | 16 +- test/unit/Script.js | 156 ++-- test/unit/Transaction.js | 6 +- test/unit/TransactionBuilder.js | 864 +++++++++--------- test/unit/Util.js | 6 +- 40 files changed, 1211 insertions(+), 1211 deletions(-) diff --git a/examples/README.md b/examples/README.md index 6e531616..5cc54ec3 100644 --- a/examples/README.md +++ b/examples/README.md @@ -2,7 +2,7 @@ This directory contains a series of small example apps that illustrate how to code up common use cases for a Bitcoin Cash application. The `low-level` directory -contains low-level applications exercising a single feature of BITBOX. Think of +contains low-level applications exercising a single feature of bitbox. Think of these examples like lego blocks that can be used to build a bigger app. The `applications` directory contains example applications like wallets, voting, diff --git a/examples/applications/wallet/check-balance/check-balance.js b/examples/applications/wallet/check-balance/check-balance.js index 1ff2b883..8988a2f6 100644 --- a/examples/applications/wallet/check-balance/check-balance.js +++ b/examples/applications/wallet/check-balance/check-balance.js @@ -6,7 +6,7 @@ // Set NETWORK to either testnet or mainnet const NETWORK = `testnet` -// Instantiate BITBOX. +// Instantiate bitbox. const bitboxLib = "../../../../lib/BITBOX" const BITBOXSDK = require(bitboxLib) @@ -30,7 +30,7 @@ try { async function getBalance() { try { // first get BCH balance - const balance = await BITBOX.Address.details(walletInfo.cashAddress) + const balance = await bitbox.Address.details(walletInfo.cashAddress) console.log(`BCH Balance information:`) console.log(balance) diff --git a/examples/applications/wallet/consolidate-dust/consolidate-dust.js b/examples/applications/wallet/consolidate-dust/consolidate-dust.js index 1cb04d3e..f72241da 100644 --- a/examples/applications/wallet/consolidate-dust/consolidate-dust.js +++ b/examples/applications/wallet/consolidate-dust/consolidate-dust.js @@ -6,7 +6,7 @@ // Set NETWORK to either testnet or mainnet const NETWORK = `testnet` -// Instantiate BITBOX. +// Instantiate bitbox. const bitboxLib = "../../../../lib/BITBOX" const BITBOXSDK = require(bitboxLib) @@ -33,14 +33,14 @@ async function consolidateDust() { try { // instance of transaction builder if (NETWORK === `mainnet`) - var transactionBuilder = new BITBOX.TransactionBuilder() - else var transactionBuilder = new BITBOX.TransactionBuilder("testnet") + var transactionBuilder = new bitbox.TransactionBuilder() + else var transactionBuilder = new bitbox.TransactionBuilder("testnet") const dust = 546 let sendAmount = 0 const inputs = [] - const u = await BITBOX.Address.utxo(SEND_ADDR) + const u = await bitbox.Address.utxo(SEND_ADDR) // Loop through each UTXO assigned to this address. for (let i = 0; i < u.utxos.length; i++) { @@ -63,7 +63,7 @@ async function consolidateDust() { } // get byte count to calculate fee. paying 1.2 sat/byte - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: inputs.length }, { P2PKH: 1 } ) @@ -88,7 +88,7 @@ async function consolidateDust() { const change = changeAddrFromMnemonic(SEND_MNEMONIC) // Generate a keypair from the change address. - const keyPair = BITBOX.HDNode.toKeyPair(change) + const keyPair = bitbox.HDNode.toKeyPair(change) // sign w/ HDNode let redeemScript @@ -110,7 +110,7 @@ async function consolidateDust() { console.log(` `) // Broadcast transation to the network - const broadcast = await BITBOX.RawTransactions.sendRawTransaction([hex]) + const broadcast = await bitbox.RawTransactions.sendRawTransaction([hex]) console.log(`Transaction ID: ${broadcast}`) } catch (err) { console.log(`error: `, err) @@ -121,16 +121,16 @@ consolidateDust() // Generate a change address from a Mnemonic of a private key. function changeAddrFromMnemonic(mnemonic) { // root seed buffer - const rootSeed = BITBOX.Mnemonic.toSeed(mnemonic) + const rootSeed = bitbox.Mnemonic.toSeed(mnemonic) // master HDNode - const masterHDNode = BITBOX.HDNode.fromSeed(rootSeed, "testnet") + const masterHDNode = bitbox.HDNode.fromSeed(rootSeed, "testnet") // HDNode of BIP44 account - const account = BITBOX.HDNode.derivePath(masterHDNode, "m/44'/145'/0'") + const account = bitbox.HDNode.derivePath(masterHDNode, "m/44'/145'/0'") // derive the first external change address HDNode which is going to spend utxo - const change = BITBOX.HDNode.derivePath(account, "0/0") + const change = bitbox.HDNode.derivePath(account, "0/0") return change } diff --git a/examples/applications/wallet/consolidate-utxos/consolidate-utxos.js b/examples/applications/wallet/consolidate-utxos/consolidate-utxos.js index ebbcbbb6..9abd92a0 100644 --- a/examples/applications/wallet/consolidate-utxos/consolidate-utxos.js +++ b/examples/applications/wallet/consolidate-utxos/consolidate-utxos.js @@ -5,7 +5,7 @@ // Set NETWORK to either testnet or mainnet const NETWORK = `testnet` -// Instantiate BITBOX. +// Instantiate bitbox. const bitboxLib = "../../../../lib/BITBOX" const BITBOXSDK = require(bitboxLib) @@ -32,13 +32,13 @@ async function consolidateDust() { try { // instance of transaction builder if (NETWORK === `mainnet`) - var transactionBuilder = new BITBOX.TransactionBuilder() - else var transactionBuilder = new BITBOX.TransactionBuilder("testnet") + var transactionBuilder = new bitbox.TransactionBuilder() + else var transactionBuilder = new bitbox.TransactionBuilder("testnet") let sendAmount = 0 const inputs = [] - const u = await BITBOX.Address.utxo(SEND_ADDR) + const u = await bitbox.Address.utxo(SEND_ADDR) // Loop through each UTXO assigned to this address. for (let i = 0; i < u.utxos.length; i++) { @@ -53,7 +53,7 @@ async function consolidateDust() { } // get byte count to calculate fee. paying 1.2 sat/byte - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: inputs.length }, { P2PKH: 1 } ) @@ -78,7 +78,7 @@ async function consolidateDust() { const change = changeAddrFromMnemonic(SEND_MNEMONIC) // Generate a keypair from the change address. - const keyPair = BITBOX.HDNode.toKeyPair(change) + const keyPair = bitbox.HDNode.toKeyPair(change) // sign w/ HDNode let redeemScript @@ -100,7 +100,7 @@ async function consolidateDust() { console.log(` `) // Broadcast transation to the network - const txid = await BITBOX.RawTransactions.sendRawTransaction([hex]) + const txid = await bitbox.RawTransactions.sendRawTransaction([hex]) console.log(`Transaction ID: ${txid}`) console.log(`Check the status of your transaction on this block explorer:`) console.log(`https://explorer.bitcoin.com/tbch/tx/${txid}`) @@ -113,16 +113,16 @@ consolidateDust() // Generate a change address from a Mnemonic of a private key. function changeAddrFromMnemonic(mnemonic) { // root seed buffer - const rootSeed = BITBOX.Mnemonic.toSeed(mnemonic) + const rootSeed = bitbox.Mnemonic.toSeed(mnemonic) // master HDNode - const masterHDNode = BITBOX.HDNode.fromSeed(rootSeed, "testnet") + const masterHDNode = bitbox.HDNode.fromSeed(rootSeed, "testnet") // HDNode of BIP44 account - const account = BITBOX.HDNode.derivePath(masterHDNode, "m/44'/145'/0'") + const account = bitbox.HDNode.derivePath(masterHDNode, "m/44'/145'/0'") // derive the first external change address HDNode which is going to spend utxo - const change = BITBOX.HDNode.derivePath(account, "0/0") + const change = bitbox.HDNode.derivePath(account, "0/0") return change } diff --git a/examples/applications/wallet/create-wallet/create-wallet.js b/examples/applications/wallet/create-wallet/create-wallet.js index aca5284f..f303f889 100644 --- a/examples/applications/wallet/create-wallet/create-wallet.js +++ b/examples/applications/wallet/create-wallet/create-wallet.js @@ -1,12 +1,12 @@ /* - Create an HDNode wallet using BITBOX. The mnemonic from this wallet + Create an HDNode wallet using bitbox. The mnemonic from this wallet will be used in future examples. */ // Set NETWORK to either testnet or mainnet const NETWORK = `testnet` -// Instantiate BITBOX. +// Instantiate bitbox. const bitboxLib = "../../../../lib/BITBOX" const BITBOXSDK = require(bitboxLib) @@ -25,9 +25,9 @@ let outStr = "" const outObj = {} // create 256 bit BIP39 mnemonic -const mnemonic = BITBOX.Mnemonic.generate( +const mnemonic = bitbox.Mnemonic.generate( 128, - BITBOX.Mnemonic.wordLists()[lang] + bitbox.Mnemonic.wordLists()[lang] ) console.log("BIP44 $BCH Wallet") outStr += "BIP44 $BCH Wallet\n" @@ -36,12 +36,12 @@ outStr += `\n128 bit ${lang} BIP32 Mnemonic:\n${mnemonic}\n\n` outObj.mnemonic = mnemonic // root seed buffer -const rootSeed = BITBOX.Mnemonic.toSeed(mnemonic) +const rootSeed = bitbox.Mnemonic.toSeed(mnemonic) // master HDNode let masterHDNode -if (NETWORK === `mainnet`) masterHDNode = BITBOX.HDNode.fromSeed(rootSeed) -else masterHDNode = BITBOX.HDNode.fromSeed(rootSeed, "testnet") // Testnet +if (NETWORK === `mainnet`) masterHDNode = bitbox.HDNode.fromSeed(rootSeed) +else masterHDNode = bitbox.HDNode.fromSeed(rootSeed, "testnet") // Testnet // HDNode of BIP44 account console.log(`BIP44 Account: "m/44'/145'/0'"`) @@ -50,14 +50,14 @@ outStr += `BIP44 Account: "m/44'/145'/0'"\n` // Generate the first 10 seed addresses. for (let i = 0; i < 10; i++) { const childNode = masterHDNode.derivePath(`m/44'/145'/0'/0/${i}`) - console.log(`m/44'/145'/0'/0/${i}: ${BITBOX.HDNode.toCashAddress(childNode)}`) - outStr += `m/44'/145'/0'/0/${i}: ${BITBOX.HDNode.toCashAddress(childNode)}\n` + console.log(`m/44'/145'/0'/0/${i}: ${bitbox.HDNode.toCashAddress(childNode)}`) + outStr += `m/44'/145'/0'/0/${i}: ${bitbox.HDNode.toCashAddress(childNode)}\n` // Save the first seed address for use in the .json output file. if (i === 0) { - outObj.cashAddress = BITBOX.HDNode.toCashAddress(childNode) - outObj.legacyAddress = BITBOX.HDNode.toLegacyAddress(childNode) - outObj.WIF = BITBOX.HDNode.toWIF(childNode) + outObj.cashAddress = bitbox.HDNode.toCashAddress(childNode) + outObj.legacyAddress = bitbox.HDNode.toLegacyAddress(childNode) + outObj.WIF = bitbox.HDNode.toWIF(childNode) } } diff --git a/examples/applications/wallet/send-WIF/send-wif.js b/examples/applications/wallet/send-WIF/send-wif.js index 64e4b33b..f7948f92 100644 --- a/examples/applications/wallet/send-WIF/send-wif.js +++ b/examples/applications/wallet/send-WIF/send-wif.js @@ -10,7 +10,7 @@ const NETWORK = `testnet` let RECV_ADDR = `` const SATOSHIS_TO_SEND = 1000 -// Instantiate BITBOX. +// Instantiate bitbox. const bitboxLib = "../../../../lib/BITBOX" const BITBOXSDK = require(bitboxLib) @@ -49,23 +49,23 @@ async function sendBch() { process.exit(0) } - const SEND_ADDR_LEGACY = BITBOX.Address.toLegacyAddress(SEND_ADDR) - const RECV_ADDR_LEGACY = BITBOX.Address.toLegacyAddress(RECV_ADDR) + const SEND_ADDR_LEGACY = bitbox.Address.toLegacyAddress(SEND_ADDR) + const RECV_ADDR_LEGACY = bitbox.Address.toLegacyAddress(RECV_ADDR) console.log(`Sender Legacy Address: ${SEND_ADDR_LEGACY}`) console.log(`Receiver Legacy Address: ${RECV_ADDR_LEGACY}`) const balance2 = await getBCHBalance(RECV_ADDR, false) console.log(`Balance of recieving address ${RECV_ADDR} is ${balance2} BCH.`) - const u = await BITBOX.Address.utxo(SEND_ADDR) + const u = await bitbox.Address.utxo(SEND_ADDR) //console.log(`u: ${JSON.stringify(u, null, 2)}`) const utxo = findBiggestUtxo(u.utxos) console.log(`utxo: ${JSON.stringify(utxo, null, 2)}`) // instance of transaction builder if (NETWORK === `mainnet`) - var transactionBuilder = new BITBOX.TransactionBuilder() - else var transactionBuilder = new BITBOX.TransactionBuilder("testnet") + var transactionBuilder = new bitbox.TransactionBuilder() + else var transactionBuilder = new bitbox.TransactionBuilder("testnet") const satoshisToSend = SATOSHIS_TO_SEND const originalAmount = utxo.satoshis @@ -76,7 +76,7 @@ async function sendBch() { transactionBuilder.addInput(txid, vout) // get byte count to calculate fee. paying 1.2 sat/byte - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 2 } ) @@ -93,7 +93,7 @@ async function sendBch() { transactionBuilder.addOutput(RECV_ADDR, satoshisToSend) transactionBuilder.addOutput(SEND_ADDR, remainder) - const ecPair = BITBOX.ECPair.fromWIF(SEND_WIF) + const ecPair = bitbox.ECPair.fromWIF(SEND_WIF) // Sign the transaction with the HD node. let redeemScript @@ -113,7 +113,7 @@ async function sendBch() { console.log(` `) // Broadcast transation to the network - const txidStr = await BITBOX.RawTransactions.sendRawTransaction([hex]) + const txidStr = await bitbox.RawTransactions.sendRawTransaction([hex]) console.log(`Transaction ID: ${txidStr}`) console.log(`Check the status of your transaction on this block explorer:`) console.log(`https://explorer.bitcoin.com/tbch/tx/${txidStr}`) @@ -126,7 +126,7 @@ sendBch() // Get the balance in BCH of a BCH address. async function getBCHBalance(addr, verbose) { try { - const result = await BITBOX.Address.details(addr) + const result = await bitbox.Address.details(addr) if (verbose) console.log(result) diff --git a/examples/applications/wallet/send-all/send-all.js b/examples/applications/wallet/send-all/send-all.js index 2d8064b9..dbd08b56 100644 --- a/examples/applications/wallet/send-all/send-all.js +++ b/examples/applications/wallet/send-all/send-all.js @@ -8,7 +8,7 @@ const NETWORK = `testnet` // Set the address below to the address that should recieve the BCH. const RECV_ADDR = `bchtest:qqmd9unmhkpx4pkmr6fkrr8rm6y77vckjvqe8aey35` -// Instantiate BITBOX. +// Instantiate bitbox. const bitboxLib = "../../../../lib/BITBOX" const BITBOXSDK = require(bitboxLib) @@ -35,13 +35,13 @@ async function consolidateDust() { try { // instance of transaction builder if (NETWORK === `mainnet`) - var transactionBuilder = new BITBOX.TransactionBuilder() - else var transactionBuilder = new BITBOX.TransactionBuilder("testnet") + var transactionBuilder = new bitbox.TransactionBuilder() + else var transactionBuilder = new bitbox.TransactionBuilder("testnet") let sendAmount = 0 const inputs = [] - const u = await BITBOX.Address.utxo(SEND_ADDR) + const u = await bitbox.Address.utxo(SEND_ADDR) // Loop through each UTXO assigned to this address. for (let i = 0; i < u.utxos.length; i++) { @@ -56,7 +56,7 @@ async function consolidateDust() { } // get byte count to calculate fee. paying 1.2 sat/byte - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: inputs.length }, { P2PKH: 1 } ) @@ -81,7 +81,7 @@ async function consolidateDust() { const change = changeAddrFromMnemonic(SEND_MNEMONIC) // Generate a keypair from the change address. - const keyPair = BITBOX.HDNode.toKeyPair(change) + const keyPair = bitbox.HDNode.toKeyPair(change) // sign w/ HDNode let redeemScript @@ -103,7 +103,7 @@ async function consolidateDust() { console.log(` `) // Broadcast transation to the network - const txid = await BITBOX.RawTransactions.sendRawTransaction([hex]) + const txid = await bitbox.RawTransactions.sendRawTransaction([hex]) console.log(`Transaction ID: ${txid}`) console.log(`Check the status of your transaction on this block explorer:`) console.log(`https://explorer.bitcoin.com/tbch/tx/${txid}`) @@ -116,18 +116,18 @@ consolidateDust() // Generate a change address from a Mnemonic of a private key. function changeAddrFromMnemonic(mnemonic) { // root seed buffer - const rootSeed = BITBOX.Mnemonic.toSeed(mnemonic) + const rootSeed = bitbox.Mnemonic.toSeed(mnemonic) // master HDNode let masterHDNode - if (NETWORK === `mainnet`) masterHDNode = BITBOX.HDNode.fromSeed(rootSeed) - else masterHDNode = BITBOX.HDNode.fromSeed(rootSeed, "testnet") + if (NETWORK === `mainnet`) masterHDNode = bitbox.HDNode.fromSeed(rootSeed) + else masterHDNode = bitbox.HDNode.fromSeed(rootSeed, "testnet") // HDNode of BIP44 account - const account = BITBOX.HDNode.derivePath(masterHDNode, "m/44'/145'/0'") + const account = bitbox.HDNode.derivePath(masterHDNode, "m/44'/145'/0'") // derive the first external change address HDNode which is going to spend utxo - const change = BITBOX.HDNode.derivePath(account, "0/0") + const change = bitbox.HDNode.derivePath(account, "0/0") return change } diff --git a/examples/applications/wallet/send-bch/send-bch.js b/examples/applications/wallet/send-bch/send-bch.js index 8e5b6471..b9aa23ce 100644 --- a/examples/applications/wallet/send-bch/send-bch.js +++ b/examples/applications/wallet/send-bch/send-bch.js @@ -8,7 +8,7 @@ const NETWORK = `testnet` const RECV_ADDR = `` const SATOSHIS_TO_SEND = 1000 -// Instantiate BITBOX. +// Instantiate bitbox. const bitboxLib = "../../../../lib/BITBOX" const BITBOXSDK = require(bitboxLib) @@ -44,23 +44,23 @@ async function sendBch() { process.exit(0) } - const SEND_ADDR_LEGACY = BITBOX.Address.toLegacyAddress(SEND_ADDR) - const RECV_ADDR_LEGACY = BITBOX.Address.toLegacyAddress(RECV_ADDR) + const SEND_ADDR_LEGACY = bitbox.Address.toLegacyAddress(SEND_ADDR) + const RECV_ADDR_LEGACY = bitbox.Address.toLegacyAddress(RECV_ADDR) console.log(`Sender Legacy Address: ${SEND_ADDR_LEGACY}`) console.log(`Receiver Legacy Address: ${RECV_ADDR_LEGACY}`) const balance2 = await getBCHBalance(RECV_ADDR, false) console.log(`Balance of recieving address ${RECV_ADDR} is ${balance2} BCH.`) - const u = await BITBOX.Address.utxo(SEND_ADDR) + const u = await bitbox.Address.utxo(SEND_ADDR) //console.log(`u: ${JSON.stringify(u, null, 2)}`) const utxo = findBiggestUtxo(u.utxos) console.log(`utxo: ${JSON.stringify(utxo, null, 2)}`) // instance of transaction builder if (NETWORK === `mainnet`) - var transactionBuilder = new BITBOX.TransactionBuilder() - else var transactionBuilder = new BITBOX.TransactionBuilder("testnet") + var transactionBuilder = new bitbox.TransactionBuilder() + else var transactionBuilder = new bitbox.TransactionBuilder("testnet") const satoshisToSend = SATOSHIS_TO_SEND const originalAmount = utxo.satoshis @@ -71,7 +71,7 @@ async function sendBch() { transactionBuilder.addInput(txid, vout) // get byte count to calculate fee. paying 1.2 sat/byte - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 2 } ) @@ -92,7 +92,7 @@ async function sendBch() { const change = changeAddrFromMnemonic(SEND_MNEMONIC) // Generate a keypair from the change address. - const keyPair = BITBOX.HDNode.toKeyPair(change) + const keyPair = bitbox.HDNode.toKeyPair(change) // Sign the transaction with the HD node. let redeemScript @@ -112,7 +112,7 @@ async function sendBch() { console.log(` `) // Broadcast transation to the network - const txidStr = await BITBOX.RawTransactions.sendRawTransaction([hex]) + const txidStr = await bitbox.RawTransactions.sendRawTransaction([hex]) console.log(`Transaction ID: ${txidStr}`) console.log(`Check the status of your transaction on this block explorer:`) console.log(`https://explorer.bitcoin.com/tbch/tx/${txidStr}`) @@ -125,18 +125,18 @@ sendBch() // Generate a change address from a Mnemonic of a private key. function changeAddrFromMnemonic(mnemonic) { // root seed buffer - const rootSeed = BITBOX.Mnemonic.toSeed(mnemonic) + const rootSeed = bitbox.Mnemonic.toSeed(mnemonic) // master HDNode let masterHDNode - if (NETWORK === `mainnet`) masterHDNode = BITBOX.HDNode.fromSeed(rootSeed) - else masterHDNode = BITBOX.HDNode.fromSeed(rootSeed, "testnet") + if (NETWORK === `mainnet`) masterHDNode = bitbox.HDNode.fromSeed(rootSeed) + else masterHDNode = bitbox.HDNode.fromSeed(rootSeed, "testnet") // HDNode of BIP44 account - const account = BITBOX.HDNode.derivePath(masterHDNode, "m/44'/145'/0'") + const account = bitbox.HDNode.derivePath(masterHDNode, "m/44'/145'/0'") // derive the first external change address HDNode which is going to spend utxo - const change = BITBOX.HDNode.derivePath(account, "0/0") + const change = bitbox.HDNode.derivePath(account, "0/0") return change } @@ -144,7 +144,7 @@ function changeAddrFromMnemonic(mnemonic) { // Get the balance in BCH of a BCH address. async function getBCHBalance(addr, verbose) { try { - const result = await BITBOX.Address.details(addr) + const result = await bitbox.Address.details(addr) if (verbose) console.log(result) diff --git a/examples/low-level/OP_RETURN/op_return.js b/examples/low-level/OP_RETURN/op_return.js index 2a87c7da..feff2f82 100644 --- a/examples/low-level/OP_RETURN/op_return.js +++ b/examples/low-level/OP_RETURN/op_return.js @@ -2,10 +2,10 @@ Check the outputs of a given transaction for messages in OP_Return */ -// Instantiate BITBOX. +// Instantiate bitbox. const bitboxLib = "../../../lib/BITBOX" const BITBOXSDK = require(bitboxLib) -const BITBOX = new bitbox() +const bitbox = new BITBOX() // Choose a transaction to parse for OP_Return @@ -16,7 +16,7 @@ function parseOP_RETURN(txid) { console.log(``) // Get transaction details from txid - BITBOX.Transaction.details(txid).then( + bitbox.Transaction.details(txid).then( tx => { // You may wish to log this tx info to the console to inspect and plan your parsing function // console.log(tx) @@ -38,8 +38,8 @@ function parseOP_RETURN(txid) { // Decode the OP_Return message message = tx.vout[i].scriptPubKey.asm - let fromAsm = BITBOX.Script.fromASM(message) - let decoded = BITBOX.Script.decode(fromAsm) + let fromAsm = bitbox.Script.fromASM(message) + let decoded = bitbox.Script.decode(fromAsm) message = decoded[1].toString('ascii') // Add this decoded OP_Return message to an array, in case multiple outputs have OP_Return messages @@ -61,7 +61,7 @@ function parseOP_RETURN(txid) { } }, err => { - console.log('Error in BITBOX.Transaction.details(${txid}):') + console.log('Error in bitbox.Transaction.details(${txid}):') console.log(err) } ) diff --git a/examples/low-level/address-details/address-details.js b/examples/low-level/address-details/address-details.js index 200f5e71..09228d6f 100644 --- a/examples/low-level/address-details/address-details.js +++ b/examples/low-level/address-details/address-details.js @@ -3,7 +3,7 @@ with the create-wallet example. */ -// Instantiate BITBOX. +// Instantiate bitbox. const bitboxLib = "../../../lib/BITBOX" const BITBOXSDK = require(bitboxLib) const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v2/" }) @@ -13,7 +13,7 @@ const ADDR = `bchtest:qr45kxqda7yw8atztvkc4ckqnrlhmp0kvsep4p345q` async function addressDetails() { try { // first get BCH balance - const balance = await BITBOX.Address.details(ADDR) + const balance = await bitbox.Address.details(ADDR) console.log(`BCH Balance information:`) console.log(balance) diff --git a/examples/low-level/utxo-address/get-utxos.js b/examples/low-level/utxo-address/get-utxos.js index 84d60fc3..a3508735 100644 --- a/examples/low-level/utxo-address/get-utxos.js +++ b/examples/low-level/utxo-address/get-utxos.js @@ -6,7 +6,7 @@ // Set NETWORK to either testnet or mainnet const NETWORK = `testnet` -// Instantiate BITBOX. +// Instantiate bitbox. const bitboxLib = "../../../lib/BITBOX" const BITBOXSDK = require(bitboxLib) @@ -31,7 +31,7 @@ const ADDR = walletInfo.cashAddress async function getUtxos() { try { // first get BCH balance - const utxos = await BITBOX.Address.utxo(ADDR) + const utxos = await bitbox.Address.utxo(ADDR) console.log(`UTXO information for address ${ADDR}:`) console.log(utxos) diff --git a/index.ts b/index.ts index 9f35e19c..4f797b96 100644 --- a/index.ts +++ b/index.ts @@ -10,10 +10,10 @@ const fs = require("fs") const touch = require("touch") const emoji = require("node-emoji") const repl = require("repl") -const bitbox = require("./lib/BITBOX").BITBOX +const BITBOX = require("./lib/BITBOX").BITBOX const clone = require("git-clone") -program.version("7.0.14 ", "-v, --version") +program.version("7.0.15 ", "-v, --version") program .command("new ") @@ -154,7 +154,7 @@ program const environment = fetchOption("environment=development", config, options) - replServer.context.BITBOX = new bitbox(config.environments[environment]) + replServer.context.bitbox = new BITBOX(config.environments[environment]) }) function fetchOption(kv: any, config: any, options: any) { @@ -172,4 +172,4 @@ program.parse(process.argv) // print help if no command given // if (!process.argv.slice(2).length) program.outputHelp() -module.exports = bitbox +module.exports = BITBOX diff --git a/package.json b/package.json index 266acfe1..90d9a163 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.0.14", + "version": "7.0.15", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ diff --git a/test/e2e/send-raw-transaction-bulk/sendrawtransaction.js b/test/e2e/send-raw-transaction-bulk/sendrawtransaction.js index 6f45ecc7..ce090749 100644 --- a/test/e2e/send-raw-transaction-bulk/sendrawtransaction.js +++ b/test/e2e/send-raw-transaction-bulk/sendrawtransaction.js @@ -17,7 +17,7 @@ const RECV_ADDR1 = `bchtest:qzfn2mly05t6fjsh5kjj0dqq0jjtct27ng089dgg05` const RECV_ADDR2 = `bchtest:qz6yw0kqgfkknfy6jh2jvlfnkzmre3lt2u0pgcckdk` const SATOSHIS_TO_SEND = 1000 -// Instantiate BITBOX. +// Instantiate bitbox. const bitboxLib = "../../../lib/BITBOX" const BITBOXSDK = require(bitboxLib) const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v2/" }) @@ -46,7 +46,7 @@ async function testSend() { console.log(`hex1: ${hex1}\n\n`) console.log(`hex2: ${hex2}\n\n`) - const broadcast = await BITBOX.RawTransactions.sendRawTransaction([ + const broadcast = await bitbox.RawTransactions.sendRawTransaction([ hex1, hex2 ]) @@ -72,21 +72,21 @@ async function buildTx1(recAddr) { process.exit(0) } - const SEND_ADDR_LEGACY = BITBOX.Address.toLegacyAddress(SEND_ADDR) - const RECV_ADDR_LEGACY = BITBOX.Address.toLegacyAddress(recAddr) + const SEND_ADDR_LEGACY = bitbox.Address.toLegacyAddress(SEND_ADDR) + const RECV_ADDR_LEGACY = bitbox.Address.toLegacyAddress(recAddr) console.log(`Sender Legacy Address: ${SEND_ADDR_LEGACY}`) console.log(`Receiver Legacy Address: ${RECV_ADDR_LEGACY}`) const balance2 = await getBCHBalance(recAddr, false) //console.log(`Balance of recieving address ${recAddr} is ${balance2} BCH.`) - const u = await BITBOX.Address.utxo(SEND_ADDR) + const u = await bitbox.Address.utxo(SEND_ADDR) //console.log(`u: ${JSON.stringify(u, null, 2)}`) const utxo = findBiggestUtxo(u.utxos) console.log(`utxo: ${JSON.stringify(utxo, null, 2)}`) // instance of transaction builder - const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const transactionBuilder = new bitbox.TransactionBuilder("testnet") const satoshisToSend = SATOSHIS_TO_SEND const originalAmount = utxo.satoshis @@ -97,7 +97,7 @@ async function buildTx1(recAddr) { transactionBuilder.addInput(txid, vout) // get byte count to calculate fee. paying 1.2 sat/byte - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 2 } ) @@ -118,7 +118,7 @@ async function buildTx1(recAddr) { const change = changeAddrFromMnemonic(SEND_MNEMONIC) // Generate a keypair from the change address. - const keyPair = BITBOX.HDNode.toKeyPair(change) + const keyPair = bitbox.HDNode.toKeyPair(change) // Sign the transaction with the HD node. let redeemScript @@ -156,21 +156,21 @@ async function buildTx2(recAddr) { process.exit(0) } - const SEND_ADDR_LEGACY = BITBOX.Address.toLegacyAddress(SEND_ADDR) - const RECV_ADDR_LEGACY = BITBOX.Address.toLegacyAddress(recAddr) + const SEND_ADDR_LEGACY = bitbox.Address.toLegacyAddress(SEND_ADDR) + const RECV_ADDR_LEGACY = bitbox.Address.toLegacyAddress(recAddr) console.log(`Sender Legacy Address: ${SEND_ADDR_LEGACY}`) console.log(`Receiver Legacy Address: ${RECV_ADDR_LEGACY}`) const balance2 = await getBCHBalance(recAddr, false) //console.log(`Balance of recieving address ${recAddr} is ${balance2} BCH.`) - const u = await BITBOX.Address.utxo(SEND_ADDR) + const u = await bitbox.Address.utxo(SEND_ADDR) //console.log(`u: ${JSON.stringify(u, null, 2)}`) const utxo = findNextBiggestUtxo(u.utxos) console.log(`utxo: ${JSON.stringify(utxo, null, 2)}`) // instance of transaction builder - const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const transactionBuilder = new bitbox.TransactionBuilder("testnet") const satoshisToSend = SATOSHIS_TO_SEND const originalAmount = utxo.satoshis @@ -181,7 +181,7 @@ async function buildTx2(recAddr) { transactionBuilder.addInput(txid, vout) // get byte count to calculate fee. paying 1.2 sat/byte - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 2 } ) @@ -202,7 +202,7 @@ async function buildTx2(recAddr) { const change = changeAddrFromMnemonic(SEND_MNEMONIC) // Generate a keypair from the change address. - const keyPair = BITBOX.HDNode.toKeyPair(change) + const keyPair = bitbox.HDNode.toKeyPair(change) // Sign the transaction with the HD node. let redeemScript @@ -229,16 +229,16 @@ async function buildTx2(recAddr) { // Generate a change address from a Mnemonic of a private key. function changeAddrFromMnemonic(mnemonic) { // root seed buffer - const rootSeed = BITBOX.Mnemonic.toSeed(mnemonic) + const rootSeed = bitbox.Mnemonic.toSeed(mnemonic) // master HDNode - const masterHDNode = BITBOX.HDNode.fromSeed(rootSeed, "testnet") + const masterHDNode = bitbox.HDNode.fromSeed(rootSeed, "testnet") // HDNode of BIP44 account - const account = BITBOX.HDNode.derivePath(masterHDNode, "m/44'/145'/0'") + const account = bitbox.HDNode.derivePath(masterHDNode, "m/44'/145'/0'") // derive the first external change address HDNode which is going to spend utxo - const change = BITBOX.HDNode.derivePath(account, "0/0") + const change = bitbox.HDNode.derivePath(account, "0/0") return change } @@ -246,7 +246,7 @@ function changeAddrFromMnemonic(mnemonic) { // Get the balance in BCH of a BCH address. async function getBCHBalance(addr, verbose) { try { - const result = await BITBOX.Address.details(addr) + const result = await bitbox.Address.details(addr) if (verbose) console.log(result) diff --git a/test/e2e/send-raw-transaction-single/sendrawtransaction.js b/test/e2e/send-raw-transaction-single/sendrawtransaction.js index 372baeea..c936daa1 100644 --- a/test/e2e/send-raw-transaction-single/sendrawtransaction.js +++ b/test/e2e/send-raw-transaction-single/sendrawtransaction.js @@ -16,7 +16,7 @@ const RECV_ADDR1 = `bchtest:qzfn2mly05t6fjsh5kjj0dqq0jjtct27ng089dgg05` const SATOSHIS_TO_SEND = 1000 -// Instantiate BITBOX. +// Instantiate bitbox. const bitboxLib = "../../../lib/BITBOX" const BITBOXSDK = require(bitboxLib) const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v2/" }) @@ -45,7 +45,7 @@ async function testSend() { console.log(`hex1: ${hex1}\n\n`) //console.log(`hex2: ${hex2}\n\n`) - const broadcast = await BITBOX.RawTransactions.sendRawTransaction(hex1) + const broadcast = await bitbox.RawTransactions.sendRawTransaction(hex1) console.log(`Transaction IDs: ${JSON.stringify(broadcast, null, 2)}`) console.log(`Should return a TXID string.`) @@ -69,21 +69,21 @@ async function buildTx1(recAddr) { process.exit(0) } - const SEND_ADDR_LEGACY = BITBOX.Address.toLegacyAddress(SEND_ADDR) - const RECV_ADDR_LEGACY = BITBOX.Address.toLegacyAddress(recAddr) + const SEND_ADDR_LEGACY = bitbox.Address.toLegacyAddress(SEND_ADDR) + const RECV_ADDR_LEGACY = bitbox.Address.toLegacyAddress(recAddr) console.log(`Sender Legacy Address: ${SEND_ADDR_LEGACY}`) console.log(`Receiver Legacy Address: ${RECV_ADDR_LEGACY}`) const balance2 = await getBCHBalance(recAddr, false) //console.log(`Balance of recieving address ${recAddr} is ${balance2} BCH.`) - const u = await BITBOX.Address.utxo(SEND_ADDR) + const u = await bitbox.Address.utxo(SEND_ADDR) //console.log(`u: ${JSON.stringify(u, null, 2)}`) const utxo = findBiggestUtxo(u.utxos) console.log(`utxo: ${JSON.stringify(utxo, null, 2)}`) // instance of transaction builder - const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const transactionBuilder = new bitbox.TransactionBuilder("testnet") const satoshisToSend = SATOSHIS_TO_SEND const originalAmount = utxo.satoshis @@ -94,7 +94,7 @@ async function buildTx1(recAddr) { transactionBuilder.addInput(txid, vout) // get byte count to calculate fee. paying 1.2 sat/byte - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 2 } ) @@ -115,7 +115,7 @@ async function buildTx1(recAddr) { const change = changeAddrFromMnemonic(SEND_MNEMONIC) // Generate a keypair from the change address. - const keyPair = BITBOX.HDNode.toKeyPair(change) + const keyPair = bitbox.HDNode.toKeyPair(change) // Sign the transaction with the HD node. let redeemScript @@ -142,16 +142,16 @@ async function buildTx1(recAddr) { // Generate a change address from a Mnemonic of a private key. function changeAddrFromMnemonic(mnemonic) { // root seed buffer - const rootSeed = BITBOX.Mnemonic.toSeed(mnemonic) + const rootSeed = bitbox.Mnemonic.toSeed(mnemonic) // master HDNode - const masterHDNode = BITBOX.HDNode.fromSeed(rootSeed, "testnet") + const masterHDNode = bitbox.HDNode.fromSeed(rootSeed, "testnet") // HDNode of BIP44 account - const account = BITBOX.HDNode.derivePath(masterHDNode, "m/44'/145'/0'") + const account = bitbox.HDNode.derivePath(masterHDNode, "m/44'/145'/0'") // derive the first external change address HDNode which is going to spend utxo - const change = BITBOX.HDNode.derivePath(account, "0/0") + const change = bitbox.HDNode.derivePath(account, "0/0") return change } @@ -159,7 +159,7 @@ function changeAddrFromMnemonic(mnemonic) { // Get the balance in BCH of a BCH address. async function getBCHBalance(addr, verbose) { try { - const result = await BITBOX.Address.details(addr) + const result = await bitbox.Address.details(addr) if (verbose) console.log(result) diff --git a/test/integration/address.js b/test/integration/address.js index 03d92c73..34ce06e4 100644 --- a/test/integration/address.js +++ b/test/integration/address.js @@ -1,5 +1,5 @@ /* - Integration tests for the BITBOX.Address library. Only covers calls made to + Integration tests for the bitbox.Address library. Only covers calls made to rest.bitcoin.com. TODO: @@ -9,8 +9,8 @@ const chai = require("chai") const assert = chai.assert -const bitbox = require("../../lib/BITBOX").BITBOX -const BITBOX = new bitbox() +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() //const axios = require("axios") // Inspect utility used for debugging. @@ -26,7 +26,7 @@ describe(`#address`, () => { it(`should GET address details for a single address`, async () => { const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - const result = await BITBOX.Address.details(addr) + const result = await bitbox.Address.details(addr) //console.log(`result: ${util.inspect(result)}`) assert.hasAllKeys(result, [ @@ -55,7 +55,7 @@ describe(`#address`, () => { "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" ] - const result = await BITBOX.Address.details(addr) + const result = await bitbox.Address.details(addr) //console.log(`result: ${util.inspect(result)}`) assert.isArray(result) @@ -83,7 +83,7 @@ describe(`#address`, () => { try { const addr = 12345 - await BITBOX.Address.details(addr) + await bitbox.Address.details(addr) assert.equal(true, false, "Unexpected result!") } catch (err) { //console.log(`err: `, err) @@ -100,7 +100,7 @@ describe(`#address`, () => { for (let i = 0; i < 25; i++) addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - const result = await BITBOX.Address.details(addr) + const result = await bitbox.Address.details(addr) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") @@ -115,7 +115,7 @@ describe(`#address`, () => { it(`should GET utxos for a single address`, async () => { const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - const result = await BITBOX.Address.utxo(addr) + const result = await bitbox.Address.utxo(addr) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.hasAllKeys(result, [ @@ -141,7 +141,7 @@ describe(`#address`, () => { "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" ] - const result = await BITBOX.Address.utxo(addr) + const result = await bitbox.Address.utxo(addr) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) @@ -166,7 +166,7 @@ describe(`#address`, () => { try { const addr = 12345 - await BITBOX.Address.utxo(addr) + await bitbox.Address.utxo(addr) assert.equal(true, false, "Unexpected result!") } catch (err) { //console.log(`err: `, err) @@ -183,7 +183,7 @@ describe(`#address`, () => { for (let i = 0; i < 25; i++) addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - const result = await BITBOX.Address.utxo(addr) + const result = await bitbox.Address.utxo(addr) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") @@ -198,7 +198,7 @@ describe(`#address`, () => { it(`should GET unconfirmed details on a single address`, async () => { const addr = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" - const result = await BITBOX.Address.unconfirmed(addr) + const result = await bitbox.Address.unconfirmed(addr) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.hasAllKeys(result, ["utxos", "legacyAddress", "cashAddress"]) @@ -211,7 +211,7 @@ describe(`#address`, () => { "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" ] - const result = await BITBOX.Address.unconfirmed(addr) + const result = await bitbox.Address.unconfirmed(addr) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) @@ -223,7 +223,7 @@ describe(`#address`, () => { try { const addr = 12345 - await BITBOX.Address.unconfirmed(addr) + await bitbox.Address.unconfirmed(addr) assert.equal(true, false, "Unexpected result!") } catch (err) { //console.log(`err: `, err) @@ -240,7 +240,7 @@ describe(`#address`, () => { for (let i = 0; i < 25; i++) addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - const result = await BITBOX.Address.unconfirmed(addr) + const result = await bitbox.Address.unconfirmed(addr) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") @@ -255,7 +255,7 @@ describe(`#address`, () => { it(`should GET transactions for a single address`, async () => { const addr = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" - const result = await BITBOX.Address.transactions(addr) + const result = await bitbox.Address.transactions(addr) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.hasAllKeys(result, [ @@ -288,7 +288,7 @@ describe(`#address`, () => { "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" ] - const result = await BITBOX.Address.transactions(addr) + const result = await bitbox.Address.transactions(addr) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) @@ -320,7 +320,7 @@ describe(`#address`, () => { try { const addr = 12345 - await BITBOX.Address.transactions(addr) + await bitbox.Address.transactions(addr) assert.equal(true, false, "Unexpected result!") } catch (err) { //console.log(`err: `, err) @@ -337,7 +337,7 @@ describe(`#address`, () => { for (let i = 0; i < 25; i++) addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - const result = await BITBOX.Address.transactions(addr) + const result = await bitbox.Address.transactions(addr) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") diff --git a/test/integration/block.js b/test/integration/block.js index b2521b24..d9aaecb5 100644 --- a/test/integration/block.js +++ b/test/integration/block.js @@ -1,12 +1,12 @@ /* - Integration tests for the BITBOX. Only covers calls made to + Integration tests for the bitbox. Only covers calls made to rest.bitcoin.com. */ const chai = require("chai") const assert = chai.assert -const bitbox = require("../../lib/BITBOX").BITBOX -const BITBOX = new bitbox() +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() // Inspect utility used for debugging. const util = require("util") @@ -21,7 +21,7 @@ describe(`#block`, () => { it(`should GET block details for a given Height`, async () => { const block = 500000 - const result = await BITBOX.Block.detailsByHeight(block) + const result = await bitbox.Block.detailsByHeight(block) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.hasAllKeys(result, [ @@ -48,7 +48,7 @@ describe(`#block`, () => { it(`should GET block details for an array of blocks`, async () => { const blocks = [500000, 500001] - const result = await BITBOX.Block.detailsByHeight(blocks) + const result = await bitbox.Block.detailsByHeight(blocks) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) @@ -77,7 +77,7 @@ describe(`#block`, () => { try { const blocks = "asdf" - await BITBOX.Block.detailsByHeight(blocks) + await bitbox.Block.detailsByHeight(blocks) assert.equal(true, false, "Unexpected result!") } catch (err) { //console.log(`err: `, err) @@ -93,7 +93,7 @@ describe(`#block`, () => { const blocks = [] for (let i = 0; i < 25; i++) blocks.push(500000) - const result = await BITBOX.Block.detailsByHeight(blocks) + const result = await bitbox.Block.detailsByHeight(blocks) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") @@ -109,7 +109,7 @@ describe(`#block`, () => { const hash = "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - const result = await BITBOX.Block.detailsByHash(hash) + const result = await bitbox.Block.detailsByHash(hash) //console.log(`result: ${util.inspect(result)}`) assert.hasAllKeys(result, [ @@ -139,7 +139,7 @@ describe(`#block`, () => { "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" ] - const result = await BITBOX.Block.detailsByHash(hash) + const result = await bitbox.Block.detailsByHash(hash) //console.log(`result: ${util.inspect(result)}`) assert.isArray(result) @@ -168,7 +168,7 @@ describe(`#block`, () => { try { const hash = 12345 - await BITBOX.Block.detailsByHash(hash) + await bitbox.Block.detailsByHash(hash) assert.equal(true, false, "Unexpected result!") } catch (err) { //console.log(`err: `, err) @@ -188,7 +188,7 @@ describe(`#block`, () => { ) } - const result = await BITBOX.Block.detailsByHash(data) + const result = await bitbox.Block.detailsByHash(data) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") diff --git a/test/integration/blockchain.js b/test/integration/blockchain.js index a23163b5..5c569271 100644 --- a/test/integration/blockchain.js +++ b/test/integration/blockchain.js @@ -1,5 +1,5 @@ /* - Integration tests for the BITBOX. Only covers calls made to + Integration tests for the bitbox. Only covers calls made to rest.bitcoin.com. TODO @@ -9,8 +9,8 @@ const chai = require("chai") const assert = chai.assert -const bitbox = require("../../lib/BITBOX").BITBOX -const BITBOX = new bitbox() +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() // Inspect utility used for debugging. const util = require("util") @@ -23,7 +23,7 @@ util.inspect.defaultOptions = { describe(`#blockchain`, () => { describe(`#getBestBlockHash`, () => { it(`should GET best block hash`, async () => { - const result = await BITBOX.Blockchain.getBestBlockHash() + const result = await bitbox.Blockchain.getBestBlockHash() //console.log(`result: ${util.inspect(result)}`) assert.isString(result) @@ -36,7 +36,7 @@ describe(`#blockchain`, () => { const hash = "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - const result = await BITBOX.Blockchain.getBlockHeader(hash) + const result = await bitbox.Blockchain.getBlockHeader(hash) assert.hasAllKeys(result, [ "hash", @@ -62,7 +62,7 @@ describe(`#blockchain`, () => { "00000000000000000568f0a96bf4348847bc84e455cbfec389f27311037a20f3" ] - const result = await BITBOX.Blockchain.getBlockHeader(hash) + const result = await bitbox.Blockchain.getBlockHeader(hash) assert.isArray(result) assert.hasAllKeys(result[0], [ @@ -87,7 +87,7 @@ describe(`#blockchain`, () => { try { const hash = 12345 - await BITBOX.Blockchain.getBlockHeader(hash) + await bitbox.Blockchain.getBlockHeader(hash) assert.equal(true, false, "Unexpected result!") } catch (err) { assert.include( @@ -106,7 +106,7 @@ describe(`#blockchain`, () => { ) } - const result = await BITBOX.Blockchain.getBlockHeader(data) + const result = await bitbox.Blockchain.getBlockHeader(data) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") @@ -124,7 +124,7 @@ describe(`#blockchain`, () => { "defea04c38ee00cf73ad402984714ed22dc0dd99b2ae5cb50d791d94343ba79b" it(`should GET single mempool entry`, async () => { - const result = await BITBOX.Blockchain.getMempoolEntry(txid) + const result = await bitbox.Blockchain.getMempoolEntry(txid) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.hasAnyKeys(result, [ @@ -146,7 +146,7 @@ describe(`#blockchain`, () => { }) it(`should get an array of mempool entries`, async () => { - const result = await BITBOX.Blockchain.getMempoolEntry([txid, txid]) + const result = await bitbox.Blockchain.getMempoolEntry([txid, txid]) console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) @@ -174,7 +174,7 @@ describe(`#blockchain`, () => { const txid = "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" - await BITBOX.Blockchain.getMempoolEntry(txid) + await bitbox.Blockchain.getMempoolEntry(txid) assert.equal(true, false, "Unexpected result!") } catch (err) { @@ -188,7 +188,7 @@ describe(`#blockchain`, () => { try { const txid = 12345 - await BITBOX.Blockchain.getMempoolEntry(txid) + await bitbox.Blockchain.getMempoolEntry(txid) assert.equal(true, false, "Unexpected result!") } catch (err) { assert.include( @@ -204,7 +204,7 @@ describe(`#blockchain`, () => { const txid = "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" - const result = await BITBOX.Blockchain.getTxOutProof(txid) + const result = await bitbox.Blockchain.getTxOutProof(txid) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isString(result) @@ -216,7 +216,7 @@ describe(`#blockchain`, () => { "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" ] - const result = await BITBOX.Blockchain.getTxOutProof(txid) + const result = await bitbox.Blockchain.getTxOutProof(txid) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) @@ -227,7 +227,7 @@ describe(`#blockchain`, () => { try { const txid = 12345 - await BITBOX.Blockchain.getTxOutProof(txid) + await bitbox.Blockchain.getTxOutProof(txid) assert.equal(true, false, "Unexpected result!") } catch (err) { assert.include( @@ -243,7 +243,7 @@ describe(`#blockchain`, () => { "0000002086a4a3161f9ba2174883ec0b93acceac3b2f37b36ed1f90000000000000000009cb02406d1094ecf3e0b4c0ca7c585125e721147c39daf6b48c90b512741e13a12333e5cb38705180f441d8c7100000008fee9b60f1edb57e5712839186277ed39e0a004a32be9096ee47472efde8eae62f789f9d7a9f59d0ea7093dea1e0c65ff0b953f1d8cf3d47f92e732ca0295f603c272d5f4a63509f7a887f2549d78af7444aa0ecbb4f66d9cbe13bc6a89f59e05a199df8325d490818ffefe6b6321d32d7496a68580459836c0183f89082fc1b491cc91b23ecdcaa4c347bf599a62904d61f1c15b400ebbd5c90149010c139d9c1e31b774b796977393a238080ab477e1d240d0c4f155d36f519668f49bae6bd8cd5b8e40522edf76faa09cca6188d83ff13af6967cc6a569d1a5e9aeb1fdb7f531ddd2d0cbb81879741d5f38166ac1932136264366a4065cc96a42e41f96294f02df01" it(`should verify a single proof`, async () => { - const result = await BITBOX.Blockchain.verifyTxOutProof(mockTxOutProof) + const result = await bitbox.Blockchain.verifyTxOutProof(mockTxOutProof) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) @@ -256,7 +256,7 @@ describe(`#blockchain`, () => { it(`should verify an array of proofs`, async () => { const proofs = [mockTxOutProof, mockTxOutProof] - const result = await BITBOX.Blockchain.verifyTxOutProof(proofs) + const result = await bitbox.Blockchain.verifyTxOutProof(proofs) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) @@ -271,7 +271,7 @@ describe(`#blockchain`, () => { try { const txid = 12345 - await BITBOX.Blockchain.verifyTxOutProof(txid) + await bitbox.Blockchain.verifyTxOutProof(txid) assert.equal(true, false, "Unexpected result!") } catch (err) { assert.include( @@ -286,7 +286,7 @@ describe(`#blockchain`, () => { const data = [] for (let i = 0; i < 25; i++) data.push(mockTxOutProof) - const result = await BITBOX.Blockchain.verifyTxOutProof(data) + const result = await bitbox.Blockchain.verifyTxOutProof(data) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") diff --git a/test/integration/price.js b/test/integration/price.js index 1adbe96d..b8d7d20a 100644 --- a/test/integration/price.js +++ b/test/integration/price.js @@ -1,12 +1,12 @@ const assert = require("assert") -const bitbox = require("../../lib/BITBOX").BITBOX -const BITBOX = new bitbox() +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() describe("#price", () => { describe("#current", () => { describe("#single currency", () => { it("should get current price for single currency", async () => { - const result = await BITBOX.Price.current("usd") + const result = await bitbox.Price.current("usd") assert.notEqual(0, result) }) }) diff --git a/test/integration/rawtransaction.js b/test/integration/rawtransaction.js index 4f652681..4e835707 100644 --- a/test/integration/rawtransaction.js +++ b/test/integration/rawtransaction.js @@ -1,5 +1,5 @@ /* - Integration tests for the BITBOX. Only covers calls made to + Integration tests for the bitbox. Only covers calls made to rest.bitcoin.com. TODO @@ -7,8 +7,8 @@ const chai = require("chai") const assert = chai.assert -const bitbox = require("../../lib/BITBOX").BITBOX -const BITBOX = new bitbox() +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() // Inspect utility used for debugging. const util = require("util") @@ -24,7 +24,7 @@ describe("#rawtransaction", () => { const hex = "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" - const result = await BITBOX.RawTransactions.decodeRawTransaction(hex) + const result = await bitbox.RawTransactions.decodeRawTransaction(hex) //console.log(`result ${JSON.stringify(result, null, 2)}`) assert.hasAnyKeys(result, [ @@ -46,7 +46,7 @@ describe("#rawtransaction", () => { "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" ] - const result = await BITBOX.RawTransactions.decodeRawTransaction(hexes) + const result = await bitbox.RawTransactions.decodeRawTransaction(hexes) //console.log(`result ${JSON.stringify(result, null, 2)}`) assert.isArray(result) @@ -67,7 +67,7 @@ describe("#rawtransaction", () => { try { const addr = 12345 - await BITBOX.RawTransactions.decodeRawTransaction(addr) + await bitbox.RawTransactions.decodeRawTransaction(addr) assert.equal(true, false, "Unexpected result!") } catch (err) { //console.log(`err: `, err) @@ -87,7 +87,7 @@ describe("#rawtransaction", () => { ) } - const result = await BITBOX.RawTransactions.decodeRawTransaction(data) + const result = await bitbox.RawTransactions.decodeRawTransaction(data) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") @@ -104,7 +104,7 @@ describe("#rawtransaction", () => { "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" const verbose = false - const result = await BITBOX.RawTransactions.getRawTransaction( + const result = await bitbox.RawTransactions.getRawTransaction( txid, verbose ) @@ -118,7 +118,7 @@ describe("#rawtransaction", () => { "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" const verbose = true - const result = await BITBOX.RawTransactions.getRawTransaction( + const result = await bitbox.RawTransactions.getRawTransaction( txid, verbose ) @@ -149,7 +149,7 @@ describe("#rawtransaction", () => { ] const verbose = false - const result = await BITBOX.RawTransactions.getRawTransaction( + const result = await bitbox.RawTransactions.getRawTransaction( txid, verbose ) @@ -166,7 +166,7 @@ describe("#rawtransaction", () => { ] const verbose = true - const result = await BITBOX.RawTransactions.getRawTransaction( + const result = await bitbox.RawTransactions.getRawTransaction( txid, verbose ) @@ -198,7 +198,7 @@ describe("#rawtransaction", () => { const data = [] for (let i = 0; i < 25; i++) data.push(dataMock) - const result = await BITBOX.RawTransactions.getRawTransaction(data) + const result = await bitbox.RawTransactions.getRawTransaction(data) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") @@ -214,7 +214,7 @@ describe("#rawtransaction", () => { const hex = "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" - const result = await BITBOX.RawTransactions.decodeScript(hex) + const result = await bitbox.RawTransactions.decodeScript(hex) //console.log(`result ${JSON.stringify(result, null, 2)}`) assert.hasAllKeys(result, ["asm", "type", "p2sh"]) @@ -229,7 +229,7 @@ describe("#rawtransaction", () => { "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" ] - const result = await BITBOX.RawTransactions.decodeScript(hexes) + const result = await bitbox.RawTransactions.decodeScript(hexes) console.log(`result ${JSON.stringify(result, null, 2)}`) }) */ @@ -238,7 +238,7 @@ describe("#rawtransaction", () => { try { const addr = 12345 - await BITBOX.RawTransactions.decodeRawTransaction(addr) + await bitbox.RawTransactions.decodeRawTransaction(addr) assert.equal(true, false, "Unexpected result!") } catch (err) { //console.log(`err: `, err) @@ -263,7 +263,7 @@ describe("#rawtransaction", () => { const hex = "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" - await BITBOX.RawTransactions.sendRawTransaction(hex) + await bitbox.RawTransactions.sendRawTransaction(hex) //console.log(`result ${JSON.stringify(result, null, 2)}`) assert.equal(true, false, "Unexpected result!") @@ -282,7 +282,7 @@ describe("#rawtransaction", () => { "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" ] - const result = await BITBOX.RawTransactions.sendRawTransaction(hexes) + const result = await bitbox.RawTransactions.sendRawTransaction(hexes) console.log(`result ${JSON.stringify(result, null, 2)}`) } catch (err) { // console.log(`err: ${util.inspect(err)}`) @@ -296,7 +296,7 @@ describe("#rawtransaction", () => { try { const addr = 12345 - await BITBOX.RawTransactions.sendRawTransaction(addr) + await bitbox.RawTransactions.sendRawTransaction(addr) assert.equal(true, false, "Unexpected result!") } catch (err) { //console.log(`err: `, err) @@ -314,7 +314,7 @@ describe("#rawtransaction", () => { const data = [] for (let i = 0; i < 25; i++) data.push(dataMock) - const result = await BITBOX.RawTransactions.sendRawTransaction(data) + const result = await bitbox.RawTransactions.sendRawTransaction(data) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") diff --git a/test/integration/transaction.js b/test/integration/transaction.js index 3fa040ee..e1d7e031 100644 --- a/test/integration/transaction.js +++ b/test/integration/transaction.js @@ -1,12 +1,12 @@ /* - Integration tests for the BITBOX. Only covers calls made to + Integration tests for the bitbox. Only covers calls made to rest.bitcoin.com. */ const chai = require("chai") const assert = chai.assert -const bitbox = require("../../lib/BITBOX").BITBOX -const BITBOX = new bitbox() +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() // Inspect utility used for debugging. const util = require("util") @@ -22,7 +22,7 @@ describe(`#Transaction`, () => { const txid = "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" - const result = await BITBOX.Transaction.details(txid) + const result = await bitbox.Transaction.details(txid) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.hasAllKeys(result, [ @@ -48,7 +48,7 @@ describe(`#Transaction`, () => { "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" ] - const result = await BITBOX.Transaction.details(txids) + const result = await bitbox.Transaction.details(txids) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) @@ -58,7 +58,7 @@ describe(`#Transaction`, () => { try { const txid = 12345 - await BITBOX.Transaction.details(txid) + await bitbox.Transaction.details(txid) assert.equal(true, false, "Unexpected result!") } catch (err) { //console.log(`err: `, err) @@ -76,7 +76,7 @@ describe(`#Transaction`, () => { const data = [] for (let i = 0; i < 25; i++) data.push(dataMock) - const result = await BITBOX.Transaction.details(data) + const result = await bitbox.Transaction.details(data) // console.log(`result: ${util.inspect(result)}`) assert.equal(false, false, "Unexpected result!") diff --git a/test/integration/util.js b/test/integration/util.js index 5864dc1c..6946309a 100644 --- a/test/integration/util.js +++ b/test/integration/util.js @@ -1,12 +1,12 @@ /* - Integration tests for the BITBOX. Only covers calls made to + Integration tests for the bitbox. Only covers calls made to rest.bitcoin.com. */ const chai = require("chai") const assert = chai.assert -const bitbox = require("../../lib/BITBOX").BITBOX -const BITBOX = new bitbox() +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() // Inspect utility used for debugging. const util = require("util") @@ -21,7 +21,7 @@ describe(`#util`, () => { it(`should return false for testnet addr on mainnet`, async () => { const address = `bchtest:qqqk4y6lsl5da64sg5qc3xezmplyu5kmpyz2ysaa5y` - const result = await BITBOX.Util.validateAddress(address) + const result = await bitbox.Util.validateAddress(address) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.hasAllKeys(result, ["isvalid"]) @@ -31,7 +31,7 @@ describe(`#util`, () => { it(`should return false for bad address`, async () => { const address = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peu` - const result = await BITBOX.Util.validateAddress(address) + const result = await bitbox.Util.validateAddress(address) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.hasAllKeys(result, ["isvalid"]) @@ -41,7 +41,7 @@ describe(`#util`, () => { it(`should return validate valid address`, async () => { const address = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` - const result = await BITBOX.Util.validateAddress(address) + const result = await bitbox.Util.validateAddress(address) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.hasAllKeys(result, [ @@ -61,7 +61,7 @@ describe(`#util`, () => { `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` ] - const result = await BITBOX.Util.validateAddress(address) + const result = await bitbox.Util.validateAddress(address) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) @@ -79,7 +79,7 @@ describe(`#util`, () => { try { const address = 15432 - await BITBOX.Util.validateAddress(address) + await bitbox.Util.validateAddress(address) assert.equal(true, false, "Unexpected result!") } catch (err) { //console.log(`err: `, err) @@ -96,7 +96,7 @@ describe(`#util`, () => { const data = [] for (let i = 0; i < 25; i++) data.push(dataMock) - const result = await BITBOX.Util.validateAddress(data) + const result = await bitbox.Util.validateAddress(data) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") diff --git a/test/integration/z9-rate-limits.js b/test/integration/z9-rate-limits.js index 318adba5..b9a812a9 100644 --- a/test/integration/z9-rate-limits.js +++ b/test/integration/z9-rate-limits.js @@ -6,8 +6,8 @@ const chai = require("chai") const assert = chai.assert -const bitbox = require("../../lib/BITBOX").BITBOX -const BITBOX = new bitbox() +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() // Inspect utility used for debugging. const util = require("util") @@ -22,7 +22,7 @@ describe("#rate-limits", () => { try { const promises = [] for (let i = 0; i < 300; i++) { - const promise = BITBOX.Control.getInfo() + const promise = bitbox.Control.getInfo() promises.push(promise) } diff --git a/test/unit/Address.js b/test/unit/Address.js index 7f4ea5a0..40345518 100644 --- a/test/unit/Address.js +++ b/test/unit/Address.js @@ -1,7 +1,7 @@ const fixtures = require("./fixtures/Address.json") const assert = require("assert") -const bitbox = require("../../lib/BITBOX").BITBOX -const BITBOX = new bitbox() +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() const axios = require("axios") const sinon = require("sinon") const Bitcoin = require("bitcoincashjs-lib") @@ -82,7 +82,7 @@ describe("#addressConversion", () => { it("should translate legacy address format to itself correctly", () => { assert.deepEqual( LEGACY_ADDRESSES.map(address => - BITBOX.Address.toLegacyAddress(address) + bitbox.Address.toLegacyAddress(address) ), LEGACY_ADDRESSES ) @@ -91,7 +91,7 @@ describe("#addressConversion", () => { it("should convert cashaddr address to legacy base58Check", () => { assert.deepEqual( CASHADDR_ADDRESSES.map(address => - BITBOX.Address.toLegacyAddress(address) + bitbox.Address.toLegacyAddress(address) ), LEGACY_ADDRESSES ) @@ -100,7 +100,7 @@ describe("#addressConversion", () => { it("should convert cashaddr regtest address to legacy base58Check", () => { assert.deepEqual( REGTEST_ADDRESSES.map(address => - BITBOX.Address.toLegacyAddress(address) + bitbox.Address.toLegacyAddress(address) ), fixtures.legacyTestnetP2PKH ) @@ -109,11 +109,11 @@ describe("#addressConversion", () => { describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.toLegacyAddress() - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.toLegacyAddress() + }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.toLegacyAddress("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.toLegacyAddress("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) }) }) }) @@ -122,7 +122,7 @@ describe("#addressConversion", () => { it("should convert legacy base58Check address to cashaddr", () => { assert.deepEqual( LEGACY_ADDRESSES.map(address => - BITBOX.Address.toCashAddress(address, true) + bitbox.Address.toCashAddress(address, true) ), CASHADDR_ADDRESSES ) @@ -131,7 +131,7 @@ describe("#addressConversion", () => { it("should convert legacy base58Check address to regtest cashaddr", () => { assert.deepEqual( fixtures.legacyTestnetP2PKH.map(address => - BITBOX.Address.toCashAddress(address, true, true) + bitbox.Address.toCashAddress(address, true, true) ), REGTEST_ADDRESSES ) @@ -140,7 +140,7 @@ describe("#addressConversion", () => { it("should translate cashaddr address format to itself correctly", () => { assert.deepEqual( CASHADDR_ADDRESSES.map(address => - BITBOX.Address.toCashAddress(address, true) + bitbox.Address.toCashAddress(address, true) ), CASHADDR_ADDRESSES ) @@ -149,7 +149,7 @@ describe("#addressConversion", () => { it("should translate regtest cashaddr address format to itself correctly", () => { assert.deepEqual( REGTEST_ADDRESSES.map(address => - BITBOX.Address.toCashAddress(address, true, true) + bitbox.Address.toCashAddress(address, true, true) ), REGTEST_ADDRESSES ) @@ -158,7 +158,7 @@ describe("#addressConversion", () => { it("should translate no-prefix cashaddr address format to itself correctly", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.toCashAddress(address, true) + bitbox.Address.toCashAddress(address, true) ), CASHADDR_ADDRESSES ) @@ -167,7 +167,7 @@ describe("#addressConversion", () => { it("should translate no-prefix regtest cashaddr address format to itself correctly", () => { assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.toCashAddress(address, true, true) + bitbox.Address.toCashAddress(address, true, true) ), REGTEST_ADDRESSES ) @@ -175,14 +175,14 @@ describe("#addressConversion", () => { it("should translate cashaddr address format to itself of no-prefix correctly", () => { CASHADDR_ADDRESSES.forEach(address => { - const noPrefix = BITBOX.Address.toCashAddress(address, false) + const noPrefix = bitbox.Address.toCashAddress(address, false) assert.equal(address.split(":")[1], noPrefix) }) }) it("should translate regtest cashaddr address format to itself of no-prefix correctly", () => { REGTEST_ADDRESSES.forEach(address => { - const noPrefix = BITBOX.Address.toCashAddress(address, false, true) + const noPrefix = bitbox.Address.toCashAddress(address, false, true) assert.equal(address.split(":")[1], noPrefix) }) }) @@ -190,11 +190,11 @@ describe("#addressConversion", () => { describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.BitcoinCash.Address.toCashAddress() - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.BitcoinCash.Address.toCashAddress() + }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.BitcoinCash.Address.toCashAddress("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.BitcoinCash.Address.toCashAddress("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) }) }) }) @@ -202,7 +202,7 @@ describe("#addressConversion", () => { it("should convert legacy base58check address to hash160", () => { assert.deepEqual( LEGACY_ADDRESSES.map(address => - BITBOX.Address.legacyToHash160(address) + bitbox.Address.legacyToHash160(address) ), HASH160_HASHES ) @@ -211,11 +211,11 @@ describe("#addressConversion", () => { describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.legacyToHash160() - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.legacyToHash160() + }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.legacyToHash160("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.legacyToHash160("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) }) }) }) @@ -223,7 +223,7 @@ describe("#addressConversion", () => { it("should convert cashaddr address to hash160", () => { assert.deepEqual( CASHADDR_ADDRESSES.map(address => - BITBOX.Address.cashToHash160(address) + bitbox.Address.cashToHash160(address) ), HASH160_HASHES ) @@ -232,11 +232,11 @@ describe("#addressConversion", () => { describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.cashToHash160() - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.cashToHash160() + }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.cashToHash160("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.cashToHash160("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) }) }) }) @@ -244,7 +244,7 @@ describe("#addressConversion", () => { // it("should convert regtest address to hash160", () => { // assert.deepEqual( // REGTEST_ADDRESSES.map(address => - // BITBOX.Address.regtestToHash160(address) + // bitbox.Address.regtestToHash160(address) // ), // fixtures.hash160TestnetP2PKH // ) @@ -253,11 +253,11 @@ describe("#addressConversion", () => { // describe("errors", () => { // it("should fail when called with an invalid address", () => { // assert.throws(() => { - // BITBOX.Address.regtestToHash160() - // }, BITBOX.BitcoinCash.InvalidAddressError) + // bitbox.Address.regtestToHash160() + // }, bitbox.BitcoinCash.InvalidAddressError) // assert.throws(() => { - // BITBOX.Address.regtestToHash160("some invalid address") - // }, BITBOX.BitcoinCash.InvalidAddressError) + // bitbox.Address.regtestToHash160("some invalid address") + // }, bitbox.BitcoinCash.InvalidAddressError) // }) // }) // }) @@ -265,7 +265,7 @@ describe("#addressConversion", () => { it("should convert hash160 to mainnet P2PKH legacy base58check address", () => { assert.deepEqual( fixtures.hash160MainnetP2PKH.map(hash160 => - BITBOX.Address.hash160ToLegacy(hash160) + bitbox.Address.hash160ToLegacy(hash160) ), fixtures.legacyMainnetP2PKH ) @@ -274,7 +274,7 @@ describe("#addressConversion", () => { it("should convert hash160 to mainnet P2SH legacy base58check address", () => { assert.deepEqual( fixtures.hash160MainnetP2SH.map(hash160 => - BITBOX.Address.hash160ToLegacy( + bitbox.Address.hash160ToLegacy( hash160, Bitcoin.networks.bitcoin.scriptHash ) @@ -286,7 +286,7 @@ describe("#addressConversion", () => { it("should convert hash160 to testnet P2PKH legacy base58check address", () => { assert.deepEqual( fixtures.hash160TestnetP2PKH.map(hash160 => - BITBOX.Address.hash160ToLegacy( + bitbox.Address.hash160ToLegacy( hash160, Bitcoin.networks.testnet.pubKeyHash ) @@ -298,7 +298,7 @@ describe("#addressConversion", () => { it("should convert hash160 to mainnet P2PKH cash address", () => { assert.deepEqual( fixtures.hash160MainnetP2PKH.map(hash160 => - BITBOX.Address.hash160ToCash(hash160) + bitbox.Address.hash160ToCash(hash160) ), fixtures.cashaddrMainnetP2PKH ) @@ -307,7 +307,7 @@ describe("#addressConversion", () => { it("should convert hash160 to mainnet P2SH cash address", () => { assert.deepEqual( fixtures.hash160MainnetP2SH.map(hash160 => - BITBOX.Address.hash160ToCash( + bitbox.Address.hash160ToCash( hash160, Bitcoin.networks.bitcoin.scriptHash ) @@ -319,7 +319,7 @@ describe("#addressConversion", () => { it("should convert hash160 to testnet P2PKH cash address", () => { assert.deepEqual( fixtures.hash160TestnetP2PKH.map(hash160 => - BITBOX.Address.hash160ToCash( + bitbox.Address.hash160ToCash( hash160, Bitcoin.networks.testnet.pubKeyHash ) @@ -331,7 +331,7 @@ describe("#addressConversion", () => { it("should convert hash160 to regtest P2PKH cash address", () => { assert.deepEqual( fixtures.hash160TestnetP2PKH.map(hash160 => - BITBOX.Address.hash160ToCash( + bitbox.Address.hash160ToCash( hash160, Bitcoin.networks.testnet.pubKeyHash, true @@ -344,17 +344,17 @@ describe("#addressConversion", () => { describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.hash160ToLegacy() - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.hash160ToLegacy() + }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.hash160ToLegacy("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.hash160ToLegacy("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.hash160ToCash() - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.hash160ToCash() + }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.hash160ToCash("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.hash160ToCash("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) }) }) }) @@ -365,7 +365,7 @@ describe("address format detection", () => { describe("is legacy", () => { LEGACY_ADDRESSES.forEach(address => { it(`should detect ${address} is a legacy base58Check address`, () => { - const isBase58Check = BITBOX.Address.isLegacyAddress(address) + const isBase58Check = bitbox.Address.isLegacyAddress(address) assert.equal(isBase58Check, true) }) }) @@ -373,14 +373,14 @@ describe("address format detection", () => { describe("is not legacy", () => { CASHADDR_ADDRESSES.forEach(address => { it(`should detect ${address} is not a legacy address`, () => { - const isBase58Check = BITBOX.Address.isLegacyAddress(address) + const isBase58Check = bitbox.Address.isLegacyAddress(address) assert.equal(isBase58Check, false) }) }) REGTEST_ADDRESSES.forEach(address => { it(`should detect ${address} is not a legacy address`, () => { - const isBase58Check = BITBOX.Address.isLegacyAddress(address) + const isBase58Check = bitbox.Address.isLegacyAddress(address) assert.equal(isBase58Check, false) }) }) @@ -389,11 +389,11 @@ describe("address format detection", () => { describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.isLegacyAddress() - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.isLegacyAddress() + }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.isLegacyAddress("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.isLegacyAddress("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) }) }) }) @@ -402,14 +402,14 @@ describe("address format detection", () => { describe("is cashaddr", () => { CASHADDR_ADDRESSES.forEach(address => { it(`should detect ${address} is a cashaddr address`, () => { - const isCashaddr = BITBOX.Address.isCashAddress(address) + const isCashaddr = bitbox.Address.isCashAddress(address) assert.equal(isCashaddr, true) }) }) REGTEST_ADDRESSES.forEach(address => { it(`should detect ${address} is a cashaddr address`, () => { - const isCashaddr = BITBOX.Address.isCashAddress(address) + const isCashaddr = bitbox.Address.isCashAddress(address) assert.equal(isCashaddr, true) }) }) @@ -418,7 +418,7 @@ describe("address format detection", () => { describe("is not cashaddr", () => { LEGACY_ADDRESSES.forEach(address => { it(`should detect ${address} is not a cashaddr address`, () => { - const isCashaddr = BITBOX.Address.isCashAddress(address) + const isCashaddr = bitbox.Address.isCashAddress(address) assert.equal(isCashaddr, false) }) }) @@ -427,11 +427,11 @@ describe("address format detection", () => { describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.isCashAddress() - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.isCashAddress() + }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.isCashAddress("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.isCashAddress("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) }) }) }) @@ -439,7 +439,7 @@ describe("address format detection", () => { describe("is hash160", () => { HASH160_HASHES.forEach(address => { it(`should detect ${address} is a hash160 hash`, () => { - const isHash160 = BITBOX.Address.isHash160(address) + const isHash160 = bitbox.Address.isHash160(address) assert.equal(isHash160, true) }) }) @@ -447,21 +447,21 @@ describe("address format detection", () => { describe("is not hash160", () => { LEGACY_ADDRESSES.forEach(address => { it(`should detect ${address} is not a hash160 hash`, () => { - const isHash160 = BITBOX.Address.isHash160(address) + const isHash160 = bitbox.Address.isHash160(address) assert.equal(isHash160, false) }) }) CASHADDR_ADDRESSES.forEach(address => { it(`should detect ${address} is not a hash160 hash`, () => { - const isHash160 = BITBOX.Address.isHash160(address) + const isHash160 = bitbox.Address.isHash160(address) assert.equal(isHash160, false) }) }) REGTEST_ADDRESSES.forEach(address => { it(`should detect ${address} is not a legacy address`, () => { - const isHash160 = BITBOX.Address.isHash160(address) + const isHash160 = bitbox.Address.isHash160(address) assert.equal(isHash160, false) }) }) @@ -470,11 +470,11 @@ describe("address format detection", () => { describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.isHash160() - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.isHash160() + }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.isHash160("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.isHash160("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) }) }) }) @@ -485,7 +485,7 @@ describe("network detection", () => { describe("is mainnet", () => { MAINNET_ADDRESSES.forEach(address => { it(`should detect ${address} is a mainnet address`, () => { - const isMainnet = BITBOX.Address.isMainnetAddress(address) + const isMainnet = bitbox.Address.isMainnetAddress(address) assert.equal(isMainnet, true) }) }) @@ -494,14 +494,14 @@ describe("network detection", () => { describe("is not mainnet", () => { TESTNET_ADDRESSES.forEach(address => { it(`should detect ${address} is not a mainnet address`, () => { - const isMainnet = BITBOX.Address.isMainnetAddress(address) + const isMainnet = bitbox.Address.isMainnetAddress(address) assert.equal(isMainnet, false) }) }) REGTEST_ADDRESSES.forEach(address => { it(`should detect ${address} is not a mainnet address`, () => { - const isMainnet = BITBOX.Address.isMainnetAddress(address) + const isMainnet = bitbox.Address.isMainnetAddress(address) assert.equal(isMainnet, false) }) }) @@ -510,11 +510,11 @@ describe("network detection", () => { describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.isMainnetAddress() - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.isMainnetAddress() + }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.isMainnetAddress("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.isMainnetAddress("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) }) }) }) @@ -523,7 +523,7 @@ describe("network detection", () => { describe("is testnet", () => { TESTNET_ADDRESSES.forEach(address => { it(`should detect ${address} is a testnet address`, () => { - const isTestnet = BITBOX.Address.isTestnetAddress(address) + const isTestnet = bitbox.Address.isTestnetAddress(address) assert.equal(isTestnet, true) }) }) @@ -532,14 +532,14 @@ describe("network detection", () => { describe("is not testnet", () => { MAINNET_ADDRESSES.forEach(address => { it(`should detect ${address} is not a testnet address`, () => { - const isTestnet = BITBOX.Address.isTestnetAddress(address) + const isTestnet = bitbox.Address.isTestnetAddress(address) assert.equal(isTestnet, false) }) }) REGTEST_ADDRESSES.forEach(address => { it(`should detect ${address} is not a testnet address`, () => { - const isTestnet = BITBOX.Address.isTestnetAddress(address) + const isTestnet = bitbox.Address.isTestnetAddress(address) assert.equal(isTestnet, false) }) }) @@ -548,11 +548,11 @@ describe("network detection", () => { describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.isTestnetAddress() - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.isTestnetAddress() + }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.isTestnetAddress("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.isTestnetAddress("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) }) }) }) @@ -561,7 +561,7 @@ describe("network detection", () => { describe("is testnet", () => { REGTEST_ADDRESSES.forEach(address => { it(`should detect ${address} is a regtest address`, () => { - const isRegTest = BITBOX.Address.isRegTestAddress(address) + const isRegTest = bitbox.Address.isRegTestAddress(address) assert.equal(isRegTest, true) }) }) @@ -570,14 +570,14 @@ describe("network detection", () => { describe("is not testnet", () => { MAINNET_ADDRESSES.forEach(address => { it(`should detect ${address} is not a regtest address`, () => { - const isRegTest = BITBOX.Address.isRegTestAddress(address) + const isRegTest = bitbox.Address.isRegTestAddress(address) assert.equal(isRegTest, false) }) }) TESTNET_ADDRESSES.forEach(address => { it(`should detect ${address} is not a regtest address`, () => { - const isRegTest = BITBOX.Address.isRegTestAddress(address) + const isRegTest = bitbox.Address.isRegTestAddress(address) assert.equal(isRegTest, false) }) }) @@ -586,11 +586,11 @@ describe("network detection", () => { describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.isRegTestAddress() - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.isRegTestAddress() + }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.isRegTestAddress("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.isRegTestAddress("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) }) }) }) @@ -601,7 +601,7 @@ describe("address type detection", () => { describe("is P2PKH", () => { P2PKH_ADDRESSES.forEach(address => { it(`should detect ${address} is a P2PKH address`, () => { - const isP2PKH = BITBOX.Address.isP2PKHAddress(address) + const isP2PKH = bitbox.Address.isP2PKHAddress(address) assert.equal(isP2PKH, true) }) }) @@ -610,7 +610,7 @@ describe("address type detection", () => { describe("is not P2PKH", () => { P2SH_ADDRESSES.forEach(address => { it(`should detect ${address} is not a P2PKH address`, () => { - const isP2PKH = BITBOX.Address.isP2PKHAddress(address) + const isP2PKH = bitbox.Address.isP2PKHAddress(address) assert.equal(isP2PKH, false) }) }) @@ -619,11 +619,11 @@ describe("address type detection", () => { describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.isP2PKHAddress() - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.isP2PKHAddress() + }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.isP2PKHAddress("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.isP2PKHAddress("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) }) }) }) @@ -632,7 +632,7 @@ describe("address type detection", () => { describe("is P2SH", () => { P2SH_ADDRESSES.forEach(address => { it(`should detect ${address} is a P2SH address`, () => { - const isP2SH = BITBOX.Address.isP2SHAddress(address) + const isP2SH = bitbox.Address.isP2SHAddress(address) assert.equal(isP2SH, true) }) }) @@ -641,7 +641,7 @@ describe("address type detection", () => { describe("is not P2SH", () => { P2PKH_ADDRESSES.forEach(address => { it(`should detect ${address} is not a P2SH address`, () => { - const isP2SH = BITBOX.Address.isP2SHAddress(address) + const isP2SH = bitbox.Address.isP2SHAddress(address) assert.equal(isP2SH, false) }) }) @@ -650,11 +650,11 @@ describe("address type detection", () => { describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.isP2SHAddress() - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.isP2SHAddress() + }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.isP2SHAddress("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.isP2SHAddress("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) }) }) }) @@ -664,157 +664,157 @@ describe("cashaddr prefix detection", () => { it("should return the same result for detectAddressFormat", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.detectAddressFormat(address) + bitbox.Address.detectAddressFormat(address) ), CASHADDR_ADDRESSES.map(address => - BITBOX.Address.detectAddressFormat(address) + bitbox.Address.detectAddressFormat(address) ) ) assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.detectAddressFormat(address) + bitbox.Address.detectAddressFormat(address) ), REGTEST_ADDRESSES.map(address => - BITBOX.Address.detectAddressFormat(address) + bitbox.Address.detectAddressFormat(address) ) ) }) it("should return the same result for detectAddressNetwork", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.detectAddressNetwork(address) + bitbox.Address.detectAddressNetwork(address) ), CASHADDR_ADDRESSES.map(address => - BITBOX.Address.detectAddressNetwork(address) + bitbox.Address.detectAddressNetwork(address) ) ) assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.detectAddressNetwork(address) + bitbox.Address.detectAddressNetwork(address) ), REGTEST_ADDRESSES.map(address => - BITBOX.Address.detectAddressNetwork(address) + bitbox.Address.detectAddressNetwork(address) ) ) }) it("should return the same result for detectAddressType", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.detectAddressType(address) + bitbox.Address.detectAddressType(address) ), CASHADDR_ADDRESSES.map(address => - BITBOX.Address.detectAddressType(address) + bitbox.Address.detectAddressType(address) ) ) assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.detectAddressType(address) + bitbox.Address.detectAddressType(address) ), REGTEST_ADDRESSES.map(address => - BITBOX.Address.detectAddressType(address) + bitbox.Address.detectAddressType(address) ) ) }) it("should return the same result for toLegacyAddress", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.toLegacyAddress(address) + bitbox.Address.toLegacyAddress(address) ), - CASHADDR_ADDRESSES.map(address => BITBOX.Address.toLegacyAddress(address)) + CASHADDR_ADDRESSES.map(address => bitbox.Address.toLegacyAddress(address)) ) assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.toLegacyAddress(address) + bitbox.Address.toLegacyAddress(address) ), - REGTEST_ADDRESSES.map(address => BITBOX.Address.toLegacyAddress(address)) + REGTEST_ADDRESSES.map(address => bitbox.Address.toLegacyAddress(address)) ) }) it("should return the same result for isLegacyAddress", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.isLegacyAddress(address) + bitbox.Address.isLegacyAddress(address) ), - CASHADDR_ADDRESSES.map(address => BITBOX.Address.isLegacyAddress(address)) + CASHADDR_ADDRESSES.map(address => bitbox.Address.isLegacyAddress(address)) ) assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.isLegacyAddress(address) + bitbox.Address.isLegacyAddress(address) ), - REGTEST_ADDRESSES.map(address => BITBOX.Address.isLegacyAddress(address)) + REGTEST_ADDRESSES.map(address => bitbox.Address.isLegacyAddress(address)) ) }) it("should return the same result for isCashAddress", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.isCashAddress(address) + bitbox.Address.isCashAddress(address) ), - CASHADDR_ADDRESSES.map(address => BITBOX.Address.isCashAddress(address)) + CASHADDR_ADDRESSES.map(address => bitbox.Address.isCashAddress(address)) ) assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.isCashAddress(address) + bitbox.Address.isCashAddress(address) ), - REGTEST_ADDRESSES.map(address => BITBOX.Address.isCashAddress(address)) + REGTEST_ADDRESSES.map(address => bitbox.Address.isCashAddress(address)) ) }) it("should return the same result for isMainnetAddress", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.isMainnetAddress(address) + bitbox.Address.isMainnetAddress(address) ), CASHADDR_ADDRESSES.map(address => - BITBOX.Address.isMainnetAddress(address) + bitbox.Address.isMainnetAddress(address) ) ) assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.isMainnetAddress(address) + bitbox.Address.isMainnetAddress(address) ), - REGTEST_ADDRESSES.map(address => BITBOX.Address.isMainnetAddress(address)) + REGTEST_ADDRESSES.map(address => bitbox.Address.isMainnetAddress(address)) ) }) it("should return the same result for isTestnetAddress", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.isTestnetAddress(address) + bitbox.Address.isTestnetAddress(address) ), CASHADDR_ADDRESSES.map(address => - BITBOX.Address.isTestnetAddress(address) + bitbox.Address.isTestnetAddress(address) ) ) assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.isTestnetAddress(address) + bitbox.Address.isTestnetAddress(address) ), - REGTEST_ADDRESSES.map(address => BITBOX.Address.isTestnetAddress(address)) + REGTEST_ADDRESSES.map(address => bitbox.Address.isTestnetAddress(address)) ) }) it("should return the same result for isP2PKHAddress", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.isP2PKHAddress(address) + bitbox.Address.isP2PKHAddress(address) ), - CASHADDR_ADDRESSES.map(address => BITBOX.Address.isP2PKHAddress(address)) + CASHADDR_ADDRESSES.map(address => bitbox.Address.isP2PKHAddress(address)) ) assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.isP2PKHAddress(address) + bitbox.Address.isP2PKHAddress(address) ), - REGTEST_ADDRESSES.map(address => BITBOX.Address.isP2PKHAddress(address)) + REGTEST_ADDRESSES.map(address => bitbox.Address.isP2PKHAddress(address)) ) }) it("should return the same result for isP2SHAddress", () => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.isP2SHAddress(address) + bitbox.Address.isP2SHAddress(address) ), - CASHADDR_ADDRESSES.map(address => BITBOX.Address.isP2SHAddress(address)) + CASHADDR_ADDRESSES.map(address => bitbox.Address.isP2SHAddress(address)) ) assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map(address => - BITBOX.Address.isP2SHAddress(address) + bitbox.Address.isP2SHAddress(address) ), - REGTEST_ADDRESSES.map(address => BITBOX.Address.isP2SHAddress(address)) + REGTEST_ADDRESSES.map(address => bitbox.Address.isP2SHAddress(address)) ) }) }) @@ -822,21 +822,21 @@ describe("cashaddr prefix detection", () => { describe("#detectAddressFormat", () => { LEGACY_ADDRESSES.forEach(address => { it(`should detect ${address} is a legacy base58Check address`, () => { - const isBase58Check = BITBOX.Address.detectAddressFormat(address) + const isBase58Check = bitbox.Address.detectAddressFormat(address) assert.equal(isBase58Check, "legacy") }) }) CASHADDR_ADDRESSES.forEach(address => { it(`should detect ${address} is a legacy cashaddr address`, () => { - const isCashaddr = BITBOX.Address.detectAddressFormat(address) + const isCashaddr = bitbox.Address.detectAddressFormat(address) assert.equal(isCashaddr, "cashaddr") }) }) REGTEST_ADDRESSES.forEach(address => { it(`should detect ${address} is a legacy cashaddr address`, () => { - const isCashaddr = BITBOX.Address.detectAddressFormat(address) + const isCashaddr = bitbox.Address.detectAddressFormat(address) assert.equal(isCashaddr, "cashaddr") }) }) @@ -844,11 +844,11 @@ describe("#detectAddressFormat", () => { describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.detectAddressFormat() - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.detectAddressFormat() + }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.detectAddressFormat("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.detectAddressFormat("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) }) }) }) @@ -856,21 +856,21 @@ describe("#detectAddressFormat", () => { describe("#detectAddressNetwork", () => { MAINNET_ADDRESSES.forEach(address => { it(`should detect ${address} is a mainnet address`, () => { - const isMainnet = BITBOX.Address.detectAddressNetwork(address) + const isMainnet = bitbox.Address.detectAddressNetwork(address) assert.equal(isMainnet, "mainnet") }) }) TESTNET_ADDRESSES.forEach(address => { it(`should detect ${address} is a testnet address`, () => { - const isTestnet = BITBOX.Address.detectAddressNetwork(address) + const isTestnet = bitbox.Address.detectAddressNetwork(address) assert.equal(isTestnet, "testnet") }) }) REGTEST_ADDRESSES.forEach(address => { it(`should detect ${address} is a testnet address`, () => { - const isTestnet = BITBOX.Address.detectAddressNetwork(address) + const isTestnet = bitbox.Address.detectAddressNetwork(address) assert.equal(isTestnet, "regtest") }) }) @@ -878,11 +878,11 @@ describe("#detectAddressNetwork", () => { describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.detectAddressNetwork() - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.detectAddressNetwork() + }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.detectAddressNetwork("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.detectAddressNetwork("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) }) }) }) @@ -890,14 +890,14 @@ describe("#detectAddressNetwork", () => { describe("#detectAddressType", () => { P2PKH_ADDRESSES.forEach(address => { it(`should detect ${address} is a P2PKH address`, () => { - const isP2PKH = BITBOX.Address.detectAddressType(address) + const isP2PKH = bitbox.Address.detectAddressType(address) assert.equal(isP2PKH, "p2pkh") }) }) P2SH_ADDRESSES.forEach(address => { it(`should detect ${address} is a P2SH address`, () => { - const isP2SH = BITBOX.Address.detectAddressType(address) + const isP2SH = bitbox.Address.detectAddressType(address) assert.equal(isP2SH, "p2sh") }) }) @@ -905,11 +905,11 @@ describe("#detectAddressType", () => { describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { - BITBOX.Address.detectAddressType() - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.detectAddressType() + }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { - BITBOX.Address.detectAddressType("some invalid address") - }, BITBOX.BitcoinCash.InvalidAddressError) + bitbox.Address.detectAddressType("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) }) }) }) @@ -920,7 +920,7 @@ describe("#fromXPub", () => { it(`generate public external change address ${j} for ${ xpub.xpub }`, () => { - assert.equal(BITBOX.Address.fromXPub(xpub.xpub, `0/${j}`), address) + assert.equal(bitbox.Address.fromXPub(xpub.xpub, `0/${j}`), address) }) }) }) @@ -930,26 +930,26 @@ describe("#fromXPriv", () => { XPRIVS.forEach((xpriv, i) => { xpriv.addresses.forEach((address, j) => { it(`generate hardened address ${j} for ${xpriv.xpriv}`, () => { - assert.equal(BITBOX.Address.fromXPriv(xpriv.xpriv, `0'/${j}`), address) + assert.equal(bitbox.Address.fromXPriv(xpriv.xpriv, `0'/${j}`), address) }) }) }) }) describe("#fromOutputScript", () => { - const script = BITBOX.Script.encode([ + const script = bitbox.Script.encode([ Buffer.from("BOX", "ascii"), - BITBOX.Script.opcodes.OP_CAT, + bitbox.Script.opcodes.OP_CAT, Buffer.from("BITBOX", "ascii"), - BITBOX.Script.opcodes.OP_EQUAL + bitbox.Script.opcodes.OP_EQUAL ]) // hash160 script buffer - const p2sh_hash160 = BITBOX.Crypto.hash160(script) + const p2sh_hash160 = bitbox.Crypto.hash160(script) // encode hash160 as P2SH output - const scriptPubKey = BITBOX.Script.scriptHash.output.encode(p2sh_hash160) - const p2shAddress = BITBOX.Address.fromOutputScript(scriptPubKey) + const scriptPubKey = bitbox.Script.scriptHash.output.encode(p2sh_hash160) + const p2shAddress = bitbox.Address.fromOutputScript(scriptPubKey) fixtures.p2shMainnet.forEach((address, i) => { it(`generate address from output script`, () => { assert.equal(p2shAddress, address) @@ -984,7 +984,7 @@ describe("#details", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.Address.details( + bitbox.Address.details( "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" ) .then(result => { @@ -1029,7 +1029,7 @@ describe("#utxo", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.Address.utxo( + bitbox.Address.utxo( "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l" ) .then(result => { @@ -1062,7 +1062,7 @@ describe("#unconfirmed", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.Address.unconfirmed( + bitbox.Address.unconfirmed( "bitcoincash:qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c" ) .then(result => { diff --git a/test/unit/BitcoinCash.js b/test/unit/BitcoinCash.js index 4d78ffb2..52ac5df0 100644 --- a/test/unit/BitcoinCash.js +++ b/test/unit/BitcoinCash.js @@ -1,7 +1,7 @@ const fixtures = require("./fixtures/BitcoinCash.json") const assert = require("assert") -const bitbox = require("../../lib/BITBOX").BITBOX -const BITBOX = new bitbox() +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() // TODO // 1. generate testnet p2sh @@ -26,7 +26,7 @@ describe("#BitcoinCash", () => { it(`should convert ${satoshi[0]} Satoshis to ${ satoshi[1] } $BCH`, () => { - assert.equal(BITBOX.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]) + assert.equal(bitbox.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]) }) }) @@ -34,7 +34,7 @@ describe("#BitcoinCash", () => { it(`should convert "${satoshi[0]}" Satoshis as a string to ${ satoshi[1] } $BCH`, () => { - assert.equal(BITBOX.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]) + assert.equal(bitbox.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]) }) }) @@ -42,13 +42,13 @@ describe("#BitcoinCash", () => { it(`converts ${bch[0]} to Bitcoin Cash, not to ${ bch[1] } Satoshi`, () => { - assert.notEqual(BITBOX.BitcoinCash.toBitcoinCash(bch[0]), bch[1]) + assert.notEqual(bitbox.BitcoinCash.toBitcoinCash(bch[0]), bch[1]) }) }) fixtures.conversion.toBCH.rounding.forEach(satoshi => { it(`rounding ${satoshi[0]} to ${satoshi[1]} $BCH`, () => { - assert.equal(BITBOX.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]) + assert.equal(bitbox.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]) }) }) }) @@ -56,7 +56,7 @@ describe("#BitcoinCash", () => { describe("#toSatoshi", () => { fixtures.conversion.toSatoshi.bch.forEach(bch => { it(`should convert ${bch[0]} $BCH to ${bch[1]} Satoshis`, () => { - assert.equal(BITBOX.BitcoinCash.toSatoshi(bch[0]), bch[1]) + assert.equal(bitbox.BitcoinCash.toSatoshi(bch[0]), bch[1]) }) }) @@ -64,7 +64,7 @@ describe("#BitcoinCash", () => { it(`should convert "${bch[0]}" $BCH as a string to ${ bch[1] } Satoshis`, () => { - assert.equal(BITBOX.BitcoinCash.toSatoshi(bch[0]), bch[1]) + assert.equal(bitbox.BitcoinCash.toSatoshi(bch[0]), bch[1]) }) }) @@ -72,13 +72,13 @@ describe("#BitcoinCash", () => { it(`converts ${satoshi[0]} to Satoshi, not to ${ satoshi[1] } Bitcoin Cash`, () => { - assert.notEqual(BITBOX.BitcoinCash.toSatoshi(satoshi[0]), satoshi[1]) + assert.notEqual(bitbox.BitcoinCash.toSatoshi(satoshi[0]), satoshi[1]) }) }) fixtures.conversion.toSatoshi.rounding.forEach(bch => { it(`rounding ${bch[0]} to ${bch[1]} Satoshi`, () => { - assert.equal(BITBOX.BitcoinCash.toSatoshi(bch[0]), bch[1]) + assert.equal(bitbox.BitcoinCash.toSatoshi(bch[0]), bch[1]) }) }) }) @@ -92,7 +92,7 @@ describe("#BitcoinCash", () => { }`, () => { const privateKeyWIF = sign.privateKeyWIF const message = sign.message - const signature = BITBOX.BitcoinCash.signMessageWithPrivKey( + const signature = bitbox.BitcoinCash.signMessageWithPrivKey( privateKeyWIF, message ) @@ -107,7 +107,7 @@ describe("#BitcoinCash", () => { sign.network } cashaddr address ${sign.address}`, () => { assert.equal( - BITBOX.BitcoinCash.verifyMessage( + bitbox.BitcoinCash.verifyMessage( sign.address, sign.signature, sign.message @@ -118,12 +118,12 @@ describe("#BitcoinCash", () => { }) fixtures.signatures.verify.forEach(sign => { - const legacyAddress = BITBOX.Address.toLegacyAddress(sign.address) + const legacyAddress = bitbox.Address.toLegacyAddress(sign.address) it(`should verify a valid signed message from ${ sign.network } legacy address ${legacyAddress}`, () => { assert.equal( - BITBOX.BitcoinCash.verifyMessage( + bitbox.BitcoinCash.verifyMessage( legacyAddress, sign.signature, sign.message @@ -134,12 +134,12 @@ describe("#BitcoinCash", () => { }) fixtures.signatures.verify.forEach(sign => { - const legacyAddress = BITBOX.Address.toLegacyAddress(sign.address) + const legacyAddress = bitbox.Address.toLegacyAddress(sign.address) it(`should not verify an invalid signed message from ${ sign.network } cashaddr address ${sign.address}`, () => { assert.equal( - BITBOX.BitcoinCash.verifyMessage( + bitbox.BitcoinCash.verifyMessage( sign.address, sign.signature, "nope" @@ -158,7 +158,7 @@ describe("#BitcoinCash", () => { base58Check.base58Check }`, () => { assert.equal( - BITBOX.BitcoinCash.encodeBase58Check(base58Check.hex), + bitbox.BitcoinCash.encodeBase58Check(base58Check.hex), base58Check.base58Check ) }) @@ -169,7 +169,7 @@ describe("#BitcoinCash", () => { fixtures.encodeBase58Check.forEach((base58Check, i) => { it(`decode ${base58Check.base58Check} as ${base58Check.hex}`, () => { assert.equal( - BITBOX.BitcoinCash.decodeBase58Check(base58Check.base58Check), + bitbox.BitcoinCash.decodeBase58Check(base58Check.base58Check), base58Check.hex ) }) @@ -181,7 +181,7 @@ describe("#BitcoinCash", () => { describe("#encodeBIP21", () => { fixtures.bip21.valid.forEach((bip21, i) => { it(`encode ${bip21.address} as url`, () => { - const url = BITBOX.BitcoinCash.encodeBIP21( + const url = bitbox.BitcoinCash.encodeBIP21( bip21.address, bip21.options ) @@ -190,7 +190,7 @@ describe("#BitcoinCash", () => { }) fixtures.bip21.valid_regtest.forEach((bip21, i) => { it(`encode ${bip21.address} as url`, () => { - const url = BITBOX.BitcoinCash.encodeBIP21( + const url = bitbox.BitcoinCash.encodeBIP21( bip21.address, bip21.options, true @@ -203,23 +203,23 @@ describe("#BitcoinCash", () => { describe("#decodeBIP21", () => { fixtures.bip21.valid.forEach((bip21, i) => { it(`decodes ${bip21.url}`, () => { - const decoded = BITBOX.BitcoinCash.decodeBIP21(bip21.url) + const decoded = bitbox.BitcoinCash.decodeBIP21(bip21.url) assert.equal(decoded.options.amount, bip21.options.amount) assert.equal(decoded.options.label, bip21.options.label) assert.equal( - BITBOX.Address.toCashAddress(decoded.address), - BITBOX.Address.toCashAddress(bip21.address) + bitbox.Address.toCashAddress(decoded.address), + bitbox.Address.toCashAddress(bip21.address) ) }) }) // fixtures.bip21.valid_regtest.forEach((bip21, i) => { // it(`decodes ${bip21.url}`, () => { - // const decoded = BITBOX.BitcoinCash.decodeBIP21(bip21.url) + // const decoded = bitbox.BitcoinCash.decodeBIP21(bip21.url) // assert.equal(decoded.options.amount, bip21.options.amount) // assert.equal(decoded.options.label, bip21.options.label) // assert.equal( - // BITBOX.Address.toCashAddress(decoded.address, true, true), - // BITBOX.Address.toCashAddress(bip21.address, true, true) + // bitbox.Address.toCashAddress(decoded.address, true, true), + // bitbox.Address.toCashAddress(bip21.address, true, true) // ) // }) // }) @@ -229,7 +229,7 @@ describe("#BitcoinCash", () => { describe("#getByteCount", () => { fixtures.getByteCount.forEach(fixture => { it(`get byte count`, () => { - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( fixture.inputs, fixture.outputs ) @@ -244,7 +244,7 @@ describe("#BitcoinCash", () => { it(`BIP 38 encrypt wif ${fixture.wif} with password ${ fixture.password } on mainnet`, () => { - const encryptedKey = BITBOX.BitcoinCash.encryptBIP38( + const encryptedKey = bitbox.BitcoinCash.encryptBIP38( fixture.wif, fixture.password ) @@ -256,7 +256,7 @@ describe("#BitcoinCash", () => { it(`BIP 38 encrypt wif ${fixture.wif} with password ${ fixture.password } on testnet`, () => { - const encryptedKey = BITBOX.BitcoinCash.encryptBIP38( + const encryptedKey = bitbox.BitcoinCash.encryptBIP38( fixture.wif, fixture.password ) @@ -270,7 +270,7 @@ describe("#BitcoinCash", () => { it(`BIP 38 decrypt encrypted key ${ fixture.encryptedKey } on mainnet`, () => { - const wif = BITBOX.BitcoinCash.decryptBIP38( + const wif = bitbox.BitcoinCash.decryptBIP38( fixture.encryptedKey, fixture.password, "mainnet" @@ -283,7 +283,7 @@ describe("#BitcoinCash", () => { it(`BIP 38 decrypt encrypted key ${ fixture.encryptedKey } on testnet`, () => { - const wif = BITBOX.BitcoinCash.decryptBIP38( + const wif = bitbox.BitcoinCash.decryptBIP38( fixture.encryptedKey, fixture.password, "testnet" diff --git a/test/unit/Block.js b/test/unit/Block.js index e3c1e59e..24d28d2e 100644 --- a/test/unit/Block.js +++ b/test/unit/Block.js @@ -1,6 +1,6 @@ const assert = require("assert") -const bitbox = require("../../lib/BITBOX").BITBOX -const BITBOX = new bitbox() +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() const axios = require("axios") const sinon = require("sinon") @@ -40,7 +40,7 @@ describe("#Block", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - const result = await BITBOX.Block.detailsByHash( + const result = await bitbox.Block.detailsByHash( "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0" ) @@ -83,7 +83,7 @@ describe("#Block", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - const result = await BITBOX.Block.detailsByHeight(500007) + const result = await bitbox.Block.detailsByHeight(500007) assert.deepEqual(result, data) }) diff --git a/test/unit/Blockchain.js b/test/unit/Blockchain.js index 6e0f465d..0c2fc863 100644 --- a/test/unit/Blockchain.js +++ b/test/unit/Blockchain.js @@ -1,7 +1,7 @@ const assert = require("assert") const axios = require("axios") -const bitbox = require("../../lib/BITBOX").BITBOX -const BITBOX = new bitbox() +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() const sinon = require("sinon") describe("#Blockchain", () => { @@ -19,7 +19,7 @@ describe("#Blockchain", () => { ) sandbox.stub(axios, "get").returns(resolved) - BITBOX.Blockchain.getBestBlockHash() + bitbox.Blockchain.getBestBlockHash() .then(result => { const hash = "0000000000000000005f1f550d3d8b142b684277016ebd00fa29c668606ae52d" @@ -60,7 +60,7 @@ describe("#Blockchain", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.Blockchain.getBlock( + bitbox.Blockchain.getBlock( "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09" ) .then(result => { @@ -105,7 +105,7 @@ describe("#Blockchain", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.Blockchain.getBlockchainInfo() + bitbox.Blockchain.getBlockchainInfo() .then(result => { assert.deepEqual(data, result) }) @@ -123,7 +123,7 @@ describe("#Blockchain", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.Blockchain.getBlockCount() + bitbox.Blockchain.getBlockCount() .then(result => { assert.deepEqual(data, result) }) @@ -142,7 +142,7 @@ describe("#Blockchain", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.Blockchain.getBlockHash(527810) + bitbox.Blockchain.getBlockHash(527810) .then(result => { assert.deepEqual(data, result) }) @@ -177,7 +177,7 @@ describe("#Blockchain", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.Blockchain.getBlockHeader( + bitbox.Blockchain.getBlockHeader( "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0", true ) @@ -198,7 +198,7 @@ describe("#Blockchain", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.Blockchain.getDifficulty() + bitbox.Blockchain.getDifficulty() .then(result => { assert.deepEqual(data, result) }) @@ -216,7 +216,7 @@ describe("#Blockchain", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.Blockchain.getMempoolAncestors( + bitbox.Blockchain.getMempoolAncestors( "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", true ) @@ -239,7 +239,7 @@ describe("#Blockchain", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.Blockchain.getMempoolDescendants( + bitbox.Blockchain.getMempoolDescendants( "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", true ) @@ -262,7 +262,7 @@ describe("#Blockchain", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.Blockchain.getMempoolEntry( + bitbox.Blockchain.getMempoolEntry( "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88" ) .then(result => { @@ -290,7 +290,7 @@ describe("#Blockchain", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.Blockchain.getMempoolInfo() + bitbox.Blockchain.getMempoolInfo() .then(result => { assert.deepEqual(data, result) }) @@ -331,7 +331,7 @@ describe("#Blockchain", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.Blockchain.getRawMempool() + bitbox.Blockchain.getRawMempool() .then(result => { assert.deepEqual(data, result) }) @@ -352,7 +352,7 @@ describe("#Blockchain", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.Blockchain.getTxOut( + bitbox.Blockchain.getTxOut( "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", 0, true @@ -377,7 +377,7 @@ describe("#Blockchain", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.Blockchain.preciousBlock() + bitbox.Blockchain.preciousBlock() .then(result => { assert.deepEqual(data, result) }) @@ -395,7 +395,7 @@ describe("#Blockchain", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "post").returns(resolved) - BITBOX.Blockchain.pruneBlockchain(507) + bitbox.Blockchain.pruneBlockchain(507) .then(result => { assert.deepEqual(data, result) }) @@ -413,7 +413,7 @@ describe("#Blockchain", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.Blockchain.verifyChain(3, 6) + bitbox.Blockchain.verifyChain(3, 6) .then(result => { assert.deepEqual(data, result) }) @@ -431,7 +431,7 @@ describe("#Blockchain", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.Blockchain.verifyTxOutProof("3") + bitbox.Blockchain.verifyTxOutProof("3") .then(result => { assert.deepEqual(data, result) }) diff --git a/test/unit/Control.js b/test/unit/Control.js index 74c38d80..37d9aa37 100644 --- a/test/unit/Control.js +++ b/test/unit/Control.js @@ -1,7 +1,7 @@ const assert = require("assert") const axios = require("axios") -const bitbox = require("../../lib/BITBOX").BITBOX -const BITBOX = new bitbox() +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() const sinon = require("sinon") describe("#Control", () => { @@ -27,7 +27,7 @@ describe("#Control", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.Control.getInfo() + bitbox.Control.getInfo() .then(result => { assert.deepEqual(data, result) }) @@ -54,7 +54,7 @@ describe("#Control", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.Control.getMemoryInfo() + bitbox.Control.getMemoryInfo() .then(result => { assert.deepEqual(data, result) }) diff --git a/test/unit/Crypto.js b/test/unit/Crypto.js index 1bc4218c..3166a0e2 100644 --- a/test/unit/Crypto.js +++ b/test/unit/Crypto.js @@ -1,7 +1,7 @@ const fixtures = require("./fixtures/Crypto.json") const assert = require("assert") -const bitbox = require("../../lib/BITBOX").BITBOX -const BITBOX = new bitbox() +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() const Buffer = require("safe-buffer").Buffer describe("#Crypto", () => { @@ -11,13 +11,13 @@ describe("#Crypto", () => { fixture.hex }`, () => { const data = Buffer.from(fixture.hex, "hex") - const sha256Hash = BITBOX.Crypto.sha256(data).toString("hex") + const sha256Hash = bitbox.Crypto.sha256(data).toString("hex") assert.equal(sha256Hash, fixture.hash) }) it(`should create 64 character SHA256Hash hex encoded`, () => { const data = Buffer.from(fixture.hex, "hex") - const sha256Hash = BITBOX.Crypto.sha256(data).toString("hex") + const sha256Hash = bitbox.Crypto.sha256(data).toString("hex") assert.equal(sha256Hash.length, 64) }) }) @@ -29,13 +29,13 @@ describe("#Crypto", () => { fixture.hex }`, () => { const data = Buffer.from(fixture.hex, "hex") - const ripemd160 = BITBOX.Crypto.ripemd160(data).toString("hex") + const ripemd160 = bitbox.Crypto.ripemd160(data).toString("hex") assert.equal(ripemd160, fixture.hash) }) it(`should create 64 character RIPEMD160Hash hex encoded`, () => { const data = Buffer.from(fixture.hex, "hex") - const ripemd160 = BITBOX.Crypto.ripemd160(data).toString("hex") + const ripemd160 = bitbox.Crypto.ripemd160(data).toString("hex") assert.equal(ripemd160.length, 40) }) }) @@ -47,13 +47,13 @@ describe("#Crypto", () => { fixture.hex }`, () => { const data = Buffer.from(fixture.hex, "hex") - const hash256 = BITBOX.Crypto.hash256(data).toString("hex") + const hash256 = bitbox.Crypto.hash256(data).toString("hex") assert.equal(hash256, fixture.hash) }) it(`should create 64 character SHA256 Hash hex encoded`, () => { const data = Buffer.from(fixture.hex, "hex") - const hash256 = BITBOX.Crypto.hash256(data).toString("hex") + const hash256 = bitbox.Crypto.hash256(data).toString("hex") assert.equal(hash256.length, 64) }) }) @@ -65,13 +65,13 @@ describe("#Crypto", () => { fixture.hex }`, () => { const data = Buffer.from(fixture.hex, "hex") - const hash160 = BITBOX.Crypto.hash160(data).toString("hex") + const hash160 = bitbox.Crypto.hash160(data).toString("hex") assert.equal(hash160, fixture.hash) }) it(`should create 64 character SHA256Hash hex encoded`, () => { const data = Buffer.from(fixture.hex, "hex") - const hash160 = BITBOX.Crypto.hash160(data).toString("hex") + const hash160 = bitbox.Crypto.hash160(data).toString("hex") assert.equal(hash160.length, 40) }) }) @@ -80,27 +80,27 @@ describe("#Crypto", () => { describe("#randomBytes", () => { for (let i = 0; i < 6; i++) { it("should return 16 bytes of entropy hex encoded", () => { - const entropy = BITBOX.Crypto.randomBytes(16) + const entropy = bitbox.Crypto.randomBytes(16) assert.equal(Buffer.byteLength(entropy), 16) }) it("should return 20 bytes of entropy hex encoded", () => { - const entropy = BITBOX.Crypto.randomBytes(20) + const entropy = bitbox.Crypto.randomBytes(20) assert.equal(Buffer.byteLength(entropy), 20) }) it("should return 24 bytes of entropy hex encoded", () => { - const entropy = BITBOX.Crypto.randomBytes(24) + const entropy = bitbox.Crypto.randomBytes(24) assert.equal(Buffer.byteLength(entropy), 24) }) it("should return 28 bytes of entropy hex encoded", () => { - const entropy = BITBOX.Crypto.randomBytes(28) + const entropy = bitbox.Crypto.randomBytes(28) assert.equal(Buffer.byteLength(entropy), 28) }) it("should return 32 bytes of entropy hex encoded", () => { - const entropy = BITBOX.Crypto.randomBytes(32) + const entropy = bitbox.Crypto.randomBytes(32) assert.equal(Buffer.byteLength(entropy), 32) }) } diff --git a/test/unit/ECPair.js b/test/unit/ECPair.js index 6159610d..a67f55fa 100644 --- a/test/unit/ECPair.js +++ b/test/unit/ECPair.js @@ -1,31 +1,31 @@ const fixtures = require("./fixtures/ECPair.json") const assert = require("assert") -const bitbox = require("../../lib/BITBOX").BITBOX -const BITBOX = new bitbox() +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() const Buffer = require("safe-buffer").Buffer describe("#ECPair", () => { describe("#fromWIF", () => { fixtures.fromWIF.forEach(fixture => { it(`should create ECPair from WIF ${fixture.privateKeyWIF}`, () => { - const ecpair = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) + const ecpair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) assert.equal(typeof ecpair, "object") }) it(`should get ${fixture.legacy} legacy address`, () => { - const legacy = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) - assert.equal(BITBOX.HDNode.toLegacyAddress(legacy), fixture.legacy) + const legacy = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + assert.equal(bitbox.HDNode.toLegacyAddress(legacy), fixture.legacy) }) it(`should get ${fixture.cashAddr} cash address`, () => { - const cashAddr = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) - assert.equal(BITBOX.HDNode.toCashAddress(cashAddr), fixture.cashAddr) + const cashAddr = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + assert.equal(bitbox.HDNode.toCashAddress(cashAddr), fixture.cashAddr) }) it(`should get ${fixture.regtestAddr} cash address`, () => { - const cashAddr = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) + const cashAddr = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) assert.equal( - BITBOX.HDNode.toCashAddress(cashAddr, true), + bitbox.HDNode.toCashAddress(cashAddr, true), fixture.regtestAddr ) }) @@ -35,8 +35,8 @@ describe("#ECPair", () => { describe("#toWIF", () => { fixtures.toWIF.forEach(fixture => { it(`should get WIF ${fixture.privateKeyWIF} from ECPair`, () => { - const ecpair = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) - const wif = BITBOX.ECPair.toWIF(ecpair) + const ecpair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + const wif = bitbox.ECPair.toWIF(ecpair) assert.equal(wif, fixture.privateKeyWIF) }) }) @@ -45,32 +45,32 @@ describe("#ECPair", () => { describe("#fromPublicKey", () => { fixtures.fromPublicKey.forEach(fixture => { it(`should create ECPair from public key buffer`, () => { - const ecpair = BITBOX.ECPair.fromPublicKey( + const ecpair = bitbox.ECPair.fromPublicKey( Buffer.from(fixture.pubkeyHex, "hex") ) assert.equal(typeof ecpair, "object") }) it(`should get ${fixture.legacy} legacy address`, () => { - const ecpair = BITBOX.ECPair.fromPublicKey( + const ecpair = bitbox.ECPair.fromPublicKey( Buffer.from(fixture.pubkeyHex, "hex") ) - assert.equal(BITBOX.HDNode.toLegacyAddress(ecpair), fixture.legacy) + assert.equal(bitbox.HDNode.toLegacyAddress(ecpair), fixture.legacy) }) it(`should get ${fixture.cashAddr} cash address`, () => { - const ecpair = BITBOX.ECPair.fromPublicKey( + const ecpair = bitbox.ECPair.fromPublicKey( Buffer.from(fixture.pubkeyHex, "hex") ) - assert.equal(BITBOX.HDNode.toCashAddress(ecpair), fixture.cashAddr) + assert.equal(bitbox.HDNode.toCashAddress(ecpair), fixture.cashAddr) }) it(`should get ${fixture.regtestAddr} cash address`, () => { - const ecpair = BITBOX.ECPair.fromPublicKey( + const ecpair = bitbox.ECPair.fromPublicKey( Buffer.from(fixture.pubkeyHex, "hex") ) assert.equal( - BITBOX.HDNode.toCashAddress(ecpair, true), + bitbox.HDNode.toCashAddress(ecpair, true), fixture.regtestAddr ) }) @@ -80,10 +80,10 @@ describe("#ECPair", () => { describe("#toPublicKey", () => { fixtures.toPublicKey.forEach(fixture => { it(`should create a public key buffer from an ECPair`, () => { - const ecpair = BITBOX.ECPair.fromPublicKey( + const ecpair = bitbox.ECPair.fromPublicKey( Buffer.from(fixture.pubkeyHex, "hex") ) - const pubkeyBuffer = BITBOX.ECPair.toPublicKey(ecpair) + const pubkeyBuffer = bitbox.ECPair.toPublicKey(ecpair) assert.equal(typeof pubkeyBuffer, "object") }) }) @@ -94,8 +94,8 @@ describe("#ECPair", () => { it(`should create legacy address ${ fixture.legacy } from an ECPair`, () => { - const ecpair = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) - const legacyAddress = BITBOX.ECPair.toLegacyAddress(ecpair) + const ecpair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + const legacyAddress = bitbox.ECPair.toLegacyAddress(ecpair) assert.equal(legacyAddress, fixture.legacy) }) }) @@ -106,8 +106,8 @@ describe("#ECPair", () => { it(`should create cash address ${ fixture.cashAddr } from an ECPair`, () => { - const ecpair = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) - const cashAddr = BITBOX.ECPair.toCashAddress(ecpair) + const ecpair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + const cashAddr = bitbox.ECPair.toCashAddress(ecpair) assert.equal(cashAddr, fixture.cashAddr) }) }) @@ -116,8 +116,8 @@ describe("#ECPair", () => { it(`should create regtest cash address ${ fixture.regtestAddr } from an ECPair`, () => { - const ecpair = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) - const regtestAddr = BITBOX.ECPair.toCashAddress(ecpair, true) + const ecpair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + const regtestAddr = bitbox.ECPair.toCashAddress(ecpair, true) assert.equal(regtestAddr, fixture.regtestAddr) }) }) @@ -126,9 +126,9 @@ describe("#ECPair", () => { describe("#sign", () => { fixtures.sign.forEach(fixture => { it(`should sign 32 byte hash buffer`, () => { - const ecpair = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF) - const buf = Buffer.from(BITBOX.Crypto.sha256(fixture.data), "hex") - const signatureBuf = BITBOX.ECPair.sign(ecpair, buf) + const ecpair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + const buf = Buffer.from(bitbox.Crypto.sha256(fixture.data), "hex") + const signatureBuf = bitbox.ECPair.sign(ecpair, buf) assert.equal(typeof signatureBuf, "object") }) }) @@ -137,11 +137,11 @@ describe("#ECPair", () => { describe("#verify", () => { fixtures.verify.forEach(fixture => { it(`should verify signed 32 byte hash buffer`, () => { - const ecpair1 = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF1) - const ecpair2 = BITBOX.ECPair.fromWIF(fixture.privateKeyWIF2) - const buf = Buffer.from(BITBOX.Crypto.sha256(fixture.data), "hex") - const signature = BITBOX.ECPair.sign(ecpair1, buf) - const verify = BITBOX.ECPair.verify(ecpair1, buf, signature) + const ecpair1 = bitbox.ECPair.fromWIF(fixture.privateKeyWIF1) + const ecpair2 = bitbox.ECPair.fromWIF(fixture.privateKeyWIF2) + const buf = Buffer.from(bitbox.Crypto.sha256(fixture.data), "hex") + const signature = bitbox.ECPair.sign(ecpair1, buf) + const verify = bitbox.ECPair.verify(ecpair1, buf, signature) assert.equal(verify, true) }) }) diff --git a/test/unit/Generating.js b/test/unit/Generating.js index f4c60bed..420a1457 100644 --- a/test/unit/Generating.js +++ b/test/unit/Generating.js @@ -1,7 +1,7 @@ const assert = require("assert") const axios = require("axios") -const bitbox = require("../../lib/BITBOX").BITBOX -const BITBOX = new bitbox() +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() const sinon = require("sinon") describe("#Generating", () => { @@ -15,7 +15,7 @@ describe("#Generating", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "post").returns(resolved) - BITBOX.Generating.generateToAddress( + bitbox.Generating.generateToAddress( 1, "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" ) diff --git a/test/unit/HDNode.js b/test/unit/HDNode.js index 4f2e9387..4e018f54 100644 --- a/test/unit/HDNode.js +++ b/test/unit/HDNode.js @@ -1,15 +1,15 @@ const fixtures = require("./fixtures/HDNode.json") const assert = require("assert") -const bitbox = require("../../lib/BITBOX").BITBOX -const BITBOX = new bitbox() +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() const Buffer = require("safe-buffer").Buffer describe("#HDNode", () => { describe("#fromSeed", () => { fixtures.fromSeed.forEach(mnemonic => { it(`should create an HDNode from root seed buffer`, () => { - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(mnemonic) - const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) + const rootSeedBuffer = bitbox.Mnemonic.toSeed(mnemonic) + const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) assert.notEqual(hdNode, null) }) }) @@ -18,11 +18,11 @@ describe("#HDNode", () => { describe("#derive", () => { fixtures.derive.forEach(derive => { it(`should derive non hardened child HDNode`, () => { - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(derive.mnemonic) - const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) - const childHDNode = BITBOX.HDNode.derive(hdNode, 0) - assert.equal(BITBOX.HDNode.toXPub(childHDNode), derive.xpub) - assert.equal(BITBOX.HDNode.toXPriv(childHDNode), derive.xpriv) + const rootSeedBuffer = bitbox.Mnemonic.toSeed(derive.mnemonic) + const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const childHDNode = bitbox.HDNode.derive(hdNode, 0) + assert.equal(bitbox.HDNode.toXPub(childHDNode), derive.xpub) + assert.equal(bitbox.HDNode.toXPriv(childHDNode), derive.xpriv) }) }) }) @@ -30,24 +30,24 @@ describe("#HDNode", () => { describe("#deriveHardened", () => { fixtures.deriveHardened.forEach(derive => { it(`should derive hardened child HDNode`, () => { - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(derive.mnemonic) - const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) - const childHDNode = BITBOX.HDNode.deriveHardened(hdNode, 0) - assert.equal(BITBOX.HDNode.toXPub(childHDNode), derive.xpub) - assert.equal(BITBOX.HDNode.toXPriv(childHDNode), derive.xpriv) + const rootSeedBuffer = bitbox.Mnemonic.toSeed(derive.mnemonic) + const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const childHDNode = bitbox.HDNode.deriveHardened(hdNode, 0) + assert.equal(bitbox.HDNode.toXPub(childHDNode), derive.xpub) + assert.equal(bitbox.HDNode.toXPriv(childHDNode), derive.xpriv) }) }) describe("derive BIP44 $BCH account", () => { fixtures.deriveBIP44.forEach(derive => { it(`should derive BIP44 $BCH account`, () => { - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(derive.mnemonic) - const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) - const purpose = BITBOX.HDNode.deriveHardened(hdNode, 44) - const coin = BITBOX.HDNode.deriveHardened(purpose, 145) - const childHDNode = BITBOX.HDNode.deriveHardened(coin, 0) - assert.equal(BITBOX.HDNode.toXPub(childHDNode), derive.xpub) - assert.equal(BITBOX.HDNode.toXPriv(childHDNode), derive.xpriv) + const rootSeedBuffer = bitbox.Mnemonic.toSeed(derive.mnemonic) + const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const purpose = bitbox.HDNode.deriveHardened(hdNode, 44) + const coin = bitbox.HDNode.deriveHardened(purpose, 145) + const childHDNode = bitbox.HDNode.deriveHardened(coin, 0) + assert.equal(bitbox.HDNode.toXPub(childHDNode), derive.xpub) + assert.equal(bitbox.HDNode.toXPriv(childHDNode), derive.xpriv) }) }) }) @@ -57,11 +57,11 @@ describe("#HDNode", () => { describe("derive non hardened Path", () => { fixtures.derivePath.forEach(derive => { it(`should derive non hardened child HDNode from path`, () => { - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(derive.mnemonic) - const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) - const childHDNode = BITBOX.HDNode.derivePath(hdNode, "0") - assert.equal(BITBOX.HDNode.toXPub(childHDNode), derive.xpub) - assert.equal(BITBOX.HDNode.toXPriv(childHDNode), derive.xpriv) + const rootSeedBuffer = bitbox.Mnemonic.toSeed(derive.mnemonic) + const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const childHDNode = bitbox.HDNode.derivePath(hdNode, "0") + assert.equal(bitbox.HDNode.toXPub(childHDNode), derive.xpub) + assert.equal(bitbox.HDNode.toXPriv(childHDNode), derive.xpriv) }) }) }) @@ -69,11 +69,11 @@ describe("#HDNode", () => { describe("derive hardened Path", () => { fixtures.deriveHardenedPath.forEach(derive => { it(`should derive hardened child HDNode from path`, () => { - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(derive.mnemonic) - const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) - const childHDNode = BITBOX.HDNode.derivePath(hdNode, "0'") - assert.equal(BITBOX.HDNode.toXPub(childHDNode), derive.xpub) - assert.equal(BITBOX.HDNode.toXPriv(childHDNode), derive.xpriv) + const rootSeedBuffer = bitbox.Mnemonic.toSeed(derive.mnemonic) + const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const childHDNode = bitbox.HDNode.derivePath(hdNode, "0'") + assert.equal(bitbox.HDNode.toXPub(childHDNode), derive.xpub) + assert.equal(bitbox.HDNode.toXPriv(childHDNode), derive.xpriv) }) }) }) @@ -81,11 +81,11 @@ describe("#HDNode", () => { describe("derive BIP44 $BCH account", () => { fixtures.deriveBIP44.forEach(derive => { it(`should derive BIP44 $BCH account`, () => { - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(derive.mnemonic) - const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) - const childHDNode = BITBOX.HDNode.derivePath(hdNode, "44'/145'/0'") - assert.equal(BITBOX.HDNode.toXPub(childHDNode), derive.xpub) - assert.equal(BITBOX.HDNode.toXPriv(childHDNode), derive.xpriv) + const rootSeedBuffer = bitbox.Mnemonic.toSeed(derive.mnemonic) + const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const childHDNode = bitbox.HDNode.derivePath(hdNode, "44'/145'/0'") + assert.equal(bitbox.HDNode.toXPub(childHDNode), derive.xpub) + assert.equal(bitbox.HDNode.toXPriv(childHDNode), derive.xpriv) }) }) }) @@ -94,10 +94,10 @@ describe("#HDNode", () => { describe("#toLegacyAddress", () => { fixtures.toLegacyAddress.forEach(fixture => { it(`should get address ${fixture.address} from HDNode`, () => { - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) - const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) - const childHDNode = BITBOX.HDNode.derivePath(hdNode, "0") - const addy = BITBOX.HDNode.toLegacyAddress(childHDNode) + const rootSeedBuffer = bitbox.Mnemonic.toSeed(fixture.mnemonic) + const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const childHDNode = bitbox.HDNode.derivePath(hdNode, "0") + const addy = bitbox.HDNode.toLegacyAddress(childHDNode) assert.equal(addy, fixture.address) }) }) @@ -106,18 +106,18 @@ describe("#HDNode", () => { describe("#toCashAddress", () => { fixtures.toCashAddress.forEach(fixture => { it(`should get address ${fixture.address} from HDNode`, () => { - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) - const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) - const childHDNode = BITBOX.HDNode.derivePath(hdNode, "0") - const addy = BITBOX.HDNode.toCashAddress(childHDNode) + const rootSeedBuffer = bitbox.Mnemonic.toSeed(fixture.mnemonic) + const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const childHDNode = bitbox.HDNode.derivePath(hdNode, "0") + const addy = bitbox.HDNode.toCashAddress(childHDNode) assert.equal(addy, fixture.address) }) it(`should get address ${fixture.regtestAddress} from HDNode`, () => { - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) - const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) - const childHDNode = BITBOX.HDNode.derivePath(hdNode, "0") - const addr = BITBOX.HDNode.toCashAddress(childHDNode, true) + const rootSeedBuffer = bitbox.Mnemonic.toSeed(fixture.mnemonic) + const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const childHDNode = bitbox.HDNode.derivePath(hdNode, "0") + const addr = bitbox.HDNode.toCashAddress(childHDNode, true) assert.equal(addr, fixture.regtestAddress) }) }) @@ -128,8 +128,8 @@ describe("#HDNode", () => { it(`should get privateKeyWIF ${ fixture.privateKeyWIF } from HDNode`, () => { - const hdNode = BITBOX.HDNode.fromXPriv(fixture.xpriv) - assert.equal(BITBOX.HDNode.toWIF(hdNode), fixture.privateKeyWIF) + const hdNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + assert.equal(bitbox.HDNode.toWIF(hdNode), fixture.privateKeyWIF) }) }) }) @@ -137,9 +137,9 @@ describe("#HDNode", () => { describe("#toXPub", () => { fixtures.toXPub.forEach(fixture => { it(`should create xpub ${fixture.xpub} from an HDNode`, () => { - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) - const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) - const xpub = BITBOX.HDNode.toXPub(hdNode) + const rootSeedBuffer = bitbox.Mnemonic.toSeed(fixture.mnemonic) + const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const xpub = bitbox.HDNode.toXPub(hdNode) assert.equal(xpub, fixture.xpub) }) }) @@ -148,9 +148,9 @@ describe("#HDNode", () => { describe("#toXPriv", () => { fixtures.toXPriv.forEach(fixture => { it(`should create xpriv ${fixture.xpriv} from an HDNode`, () => { - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) - const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) - const xpriv = BITBOX.HDNode.toXPriv(hdNode) + const rootSeedBuffer = bitbox.Mnemonic.toSeed(fixture.mnemonic) + const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const xpriv = bitbox.HDNode.toXPriv(hdNode) assert.equal(xpriv, fixture.xpriv) }) }) @@ -159,9 +159,9 @@ describe("#HDNode", () => { describe("#toKeyPair", () => { fixtures.toKeyPair.forEach(fixture => { it(`should get ECPair from an HDNode`, () => { - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) - const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) - const keyPair = BITBOX.HDNode.toKeyPair(hdNode) + const rootSeedBuffer = bitbox.Mnemonic.toSeed(fixture.mnemonic) + const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const keyPair = bitbox.HDNode.toKeyPair(hdNode) assert.equal(typeof keyPair, "object") }) }) @@ -170,9 +170,9 @@ describe("#HDNode", () => { describe("#toPublicKey", () => { fixtures.toPublicKey.forEach(fixture => { it(`should create public key buffer from an HDNode`, () => { - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) - const hdNode = BITBOX.HDNode.fromSeed(rootSeedBuffer) - const publicKeyBuffer = BITBOX.HDNode.toPublicKey(hdNode) + const rootSeedBuffer = bitbox.Mnemonic.toSeed(fixture.mnemonic) + const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const publicKeyBuffer = bitbox.HDNode.toPublicKey(hdNode) assert.equal(typeof publicKeyBuffer, "object") }) }) @@ -180,62 +180,62 @@ describe("#HDNode", () => { describe("#fromXPriv", () => { fixtures.fromXPriv.forEach(fixture => { - const hdNode = BITBOX.HDNode.fromXPriv(fixture.xpriv) + const hdNode = bitbox.HDNode.fromXPriv(fixture.xpriv) it(`should create HDNode from xpriv ${fixture.xpriv}`, () => { assert.notEqual(hdNode, null) }) it(`should export xpriv ${fixture.xpriv}`, () => { - assert.equal(BITBOX.HDNode.toXPriv(hdNode), fixture.xpriv) + assert.equal(bitbox.HDNode.toXPriv(hdNode), fixture.xpriv) }) it(`should export xpub ${fixture.xpub}`, () => { - assert.equal(BITBOX.HDNode.toXPub(hdNode), fixture.xpub) + assert.equal(bitbox.HDNode.toXPub(hdNode), fixture.xpub) }) it(`should export legacy address ${fixture.legacy}`, () => { - assert.equal(BITBOX.HDNode.toLegacyAddress(hdNode), fixture.legacy) + assert.equal(bitbox.HDNode.toLegacyAddress(hdNode), fixture.legacy) }) it(`should export cashaddress ${fixture.cashaddress}`, () => { - assert.equal(BITBOX.HDNode.toCashAddress(hdNode), fixture.cashaddress) + assert.equal(bitbox.HDNode.toCashAddress(hdNode), fixture.cashaddress) }) it(`should export regtest cashaddress ${fixture.regtestaddress}`, () => { assert.equal( - BITBOX.HDNode.toCashAddress(hdNode, true), + bitbox.HDNode.toCashAddress(hdNode, true), fixture.regtestaddress ) }) it(`should export privateKeyWIF ${fixture.privateKeyWIF}`, () => { - assert.equal(BITBOX.HDNode.toWIF(hdNode), fixture.privateKeyWIF) + assert.equal(bitbox.HDNode.toWIF(hdNode), fixture.privateKeyWIF) }) }) }) describe("#fromXPub", () => { fixtures.fromXPub.forEach(fixture => { - const hdNode = BITBOX.HDNode.fromXPub(fixture.xpub) + const hdNode = bitbox.HDNode.fromXPub(fixture.xpub) it(`should create HDNode from xpub ${fixture.xpub}`, () => { assert.notEqual(hdNode, null) }) it(`should export xpub ${fixture.xpub}`, () => { - assert.equal(BITBOX.HDNode.toXPub(hdNode), fixture.xpub) + assert.equal(bitbox.HDNode.toXPub(hdNode), fixture.xpub) }) it(`should export legacy address ${fixture.legacy}`, () => { - assert.equal(BITBOX.HDNode.toLegacyAddress(hdNode), fixture.legacy) + assert.equal(bitbox.HDNode.toLegacyAddress(hdNode), fixture.legacy) }) it(`should export cashaddress ${fixture.cashaddress}`, () => { - assert.equal(BITBOX.HDNode.toCashAddress(hdNode), fixture.cashaddress) + assert.equal(bitbox.HDNode.toCashAddress(hdNode), fixture.cashaddress) }) it(`should export regtest cashaddress ${fixture.regtestaddress}`, () => { assert.equal( - BITBOX.HDNode.toCashAddress(hdNode, true), + bitbox.HDNode.toCashAddress(hdNode, true), fixture.regtestaddress ) }) @@ -245,18 +245,18 @@ describe("#HDNode", () => { describe("#bip32", () => { describe("create accounts and addresses", () => { fixtures.accounts.forEach(fixture => { - const seedBuffer = BITBOX.Mnemonic.toSeed(fixture.mnemonic) - const hdNode = BITBOX.HDNode.fromSeed(seedBuffer) - const a = BITBOX.HDNode.derivePath(hdNode, "0'") - const external = BITBOX.HDNode.derivePath(a, "0") - const account = BITBOX.HDNode.createAccount([external]) + const seedBuffer = bitbox.Mnemonic.toSeed(fixture.mnemonic) + const hdNode = bitbox.HDNode.fromSeed(seedBuffer) + const a = bitbox.HDNode.derivePath(hdNode, "0'") + const external = bitbox.HDNode.derivePath(a, "0") + const account = bitbox.HDNode.createAccount([external]) it(`#createAccount`, () => { assert.notEqual(account, null) }) describe("#getChainAddress", () => { - const external1 = BITBOX.Address.toCashAddress( + const external1 = bitbox.Address.toCashAddress( account.getChainAddress(0) ) it(`should create external change address ${external1}`, () => { @@ -266,7 +266,7 @@ describe("#HDNode", () => { describe("#nextChainAddress", () => { for (let i = 0; i < 4; i++) { - const ex = BITBOX.Address.toCashAddress(account.nextChainAddress(0)) + const ex = bitbox.Address.toCashAddress(account.nextChainAddress(0)) it(`should create external change address ${ex}`, () => { assert.equal(ex, fixture.externals[i + 1]) }) @@ -279,9 +279,9 @@ describe("#HDNode", () => { describe("#sign", () => { fixtures.sign.forEach(fixture => { it(`should sign 32 byte hash buffer`, () => { - const hdnode = BITBOX.HDNode.fromXPriv(fixture.privateKeyWIF) - const buf = Buffer.from(BITBOX.Crypto.sha256(fixture.data), "hex") - const signatureBuf = BITBOX.HDNode.sign(hdnode, buf) + const hdnode = bitbox.HDNode.fromXPriv(fixture.privateKeyWIF) + const buf = Buffer.from(bitbox.Crypto.sha256(fixture.data), "hex") + const signatureBuf = bitbox.HDNode.sign(hdnode, buf) assert.equal(typeof signatureBuf, "object") }) }) @@ -290,10 +290,10 @@ describe("#HDNode", () => { describe("#verify", () => { fixtures.verify.forEach(fixture => { it(`should verify signed 32 byte hash buffer`, () => { - const hdnode1 = BITBOX.HDNode.fromXPriv(fixture.privateKeyWIF1) - const buf = Buffer.from(BITBOX.Crypto.sha256(fixture.data), "hex") - const signature = BITBOX.HDNode.sign(hdnode1, buf) - const verify = BITBOX.HDNode.verify(hdnode1, buf, signature) + const hdnode1 = bitbox.HDNode.fromXPriv(fixture.privateKeyWIF1) + const buf = Buffer.from(bitbox.Crypto.sha256(fixture.data), "hex") + const signature = bitbox.HDNode.sign(hdnode1, buf) + const verify = bitbox.HDNode.verify(hdnode1, buf, signature) assert.equal(verify, true) }) }) @@ -302,15 +302,15 @@ describe("#HDNode", () => { describe("#isPublic", () => { fixtures.isPublic.forEach(fixture => { it(`should verify hdnode is public`, () => { - const node = BITBOX.HDNode.fromXPub(fixture.xpub) - assert.equal(BITBOX.HDNode.isPublic(node), true) + const node = bitbox.HDNode.fromXPub(fixture.xpub) + assert.equal(bitbox.HDNode.isPublic(node), true) }) }) fixtures.isPublic.forEach(fixture => { it(`should verify hdnode is not public`, () => { - const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) - assert.equal(BITBOX.HDNode.isPublic(node), false) + const node = bitbox.HDNode.fromXPriv(fixture.xpriv) + assert.equal(bitbox.HDNode.isPublic(node), false) }) }) }) @@ -318,15 +318,15 @@ describe("#HDNode", () => { describe("#isPrivate", () => { fixtures.isPrivate.forEach(fixture => { it(`should verify hdnode is not private`, () => { - const node = BITBOX.HDNode.fromXPub(fixture.xpub) - assert.equal(BITBOX.HDNode.isPrivate(node), false) + const node = bitbox.HDNode.fromXPub(fixture.xpub) + assert.equal(bitbox.HDNode.isPrivate(node), false) }) }) fixtures.isPrivate.forEach(fixture => { it(`should verify hdnode is private`, () => { - const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) - assert.equal(BITBOX.HDNode.isPrivate(node), true) + const node = bitbox.HDNode.fromXPriv(fixture.xpriv) + assert.equal(bitbox.HDNode.isPrivate(node), true) }) }) }) @@ -334,10 +334,10 @@ describe("#HDNode", () => { describe("#toIdentifier", () => { fixtures.toIdentifier.forEach(fixture => { it(`should get identifier of hdnode`, () => { - const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const publicKeyBuffer = BITBOX.HDNode.toPublicKey(node) - const hash160 = BITBOX.Crypto.hash160(publicKeyBuffer) - const identifier = BITBOX.HDNode.toIdentifier(node) + const node = bitbox.HDNode.fromXPriv(fixture.xpriv) + const publicKeyBuffer = bitbox.HDNode.toPublicKey(node) + const hash160 = bitbox.Crypto.hash160(publicKeyBuffer) + const identifier = bitbox.HDNode.toIdentifier(node) assert.equal(identifier.toString("hex"), hash160.toString("hex")) }) }) diff --git a/test/unit/Mining.js b/test/unit/Mining.js index 1023ac9d..8f7e835a 100644 --- a/test/unit/Mining.js +++ b/test/unit/Mining.js @@ -1,7 +1,7 @@ const assert = require("assert") const axios = require("axios") -const bitbox = require("../../lib/BITBOX").BITBOX -const BITBOX = new bitbox() +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() const sinon = require("sinon") describe("#Mining", () => { @@ -26,7 +26,7 @@ describe("#Mining", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.Mining.getBlockTemplate("") + bitbox.Mining.getBlockTemplate("") .then(result => { assert.deepEqual(data, result) }) @@ -55,7 +55,7 @@ describe("#Mining", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.Mining.getMiningInfo() + bitbox.Mining.getMiningInfo() .then(result => { assert.deepEqual(data, result) }) @@ -74,7 +74,7 @@ describe("#Mining", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.Mining.getNetworkHashps() + bitbox.Mining.getNetworkHashps() .then(result => { assert.equal(data, result) }) @@ -94,7 +94,7 @@ describe("#Mining", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "post").returns(resolved) - BITBOX.Mining.submitBlock() + bitbox.Mining.submitBlock() .then(result => { assert.deepEqual(data, result) }) diff --git a/test/unit/Mnemonic.js b/test/unit/Mnemonic.js index f404213a..dd60b82f 100644 --- a/test/unit/Mnemonic.js +++ b/test/unit/Mnemonic.js @@ -1,39 +1,39 @@ const fixtures = require("./fixtures/Mnemonic.json") const assert = require("assert") -const bitbox = require("../../lib/BITBOX").BITBOX -const BITBOX = new bitbox() +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() describe("#Mnemonic", () => { describe("#generate", () => { it("should generate a 12 word mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate(128) + const mnemonic = bitbox.Mnemonic.generate(128) assert.equal(mnemonic.split(" ").length, 12) }) it("should generate a 15 word mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate(160) + const mnemonic = bitbox.Mnemonic.generate(160) assert.equal(mnemonic.split(" ").length, 15) }) it("should generate a 18 word mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate(192) + const mnemonic = bitbox.Mnemonic.generate(192) assert.equal(mnemonic.split(" ").length, 18) }) it("should generate an 21 word mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate(224) + const mnemonic = bitbox.Mnemonic.generate(224) assert.equal(mnemonic.split(" ").length, 21) }) it("should generate an 24 word mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate(256) + const mnemonic = bitbox.Mnemonic.generate(256) assert.equal(mnemonic.split(" ").length, 24) }) it("should generate an 24 word italian mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate( + const mnemonic = bitbox.Mnemonic.generate( 256, - BITBOX.Mnemonic.wordLists().italian + bitbox.Mnemonic.wordLists().italian ) assert.equal(mnemonic.split(" ").length, 24) }) @@ -41,46 +41,46 @@ describe("#Mnemonic", () => { describe("#fromEntropy", () => { it("should generate a 12 word mnemonic from 16 bytes of entropy", () => { - const rand = BITBOX.Crypto.randomBytes(16) - const mnemonic = BITBOX.Mnemonic.fromEntropy(rand.toString("hex")) + const rand = bitbox.Crypto.randomBytes(16) + const mnemonic = bitbox.Mnemonic.fromEntropy(rand.toString("hex")) assert.equal(mnemonic.split(" ").length, 12) }) it("should generate a 15 word mnemonic from 20 bytes of entropy", () => { - const rand = BITBOX.Crypto.randomBytes(20) - const mnemonic = BITBOX.Mnemonic.fromEntropy(rand.toString("hex")) + const rand = bitbox.Crypto.randomBytes(20) + const mnemonic = bitbox.Mnemonic.fromEntropy(rand.toString("hex")) assert.equal(mnemonic.split(" ").length, 15) }) it("should generate an 18 word mnemonic from 24 bytes of entropy", () => { - const rand = BITBOX.Crypto.randomBytes(24) - const mnemonic = BITBOX.Mnemonic.fromEntropy(rand.toString("hex")) + const rand = bitbox.Crypto.randomBytes(24) + const mnemonic = bitbox.Mnemonic.fromEntropy(rand.toString("hex")) assert.equal(mnemonic.split(" ").length, 18) }) it("should generate an 21 word mnemonic from 28 bytes of entropy", () => { - const rand = BITBOX.Crypto.randomBytes(28) - const mnemonic = BITBOX.Mnemonic.fromEntropy(rand.toString("hex")) + const rand = bitbox.Crypto.randomBytes(28) + const mnemonic = bitbox.Mnemonic.fromEntropy(rand.toString("hex")) assert.equal(mnemonic.split(" ").length, 21) }) it("should generate an 24 word mnemonic from 32 bytes of entropy", () => { - const rand = BITBOX.Crypto.randomBytes(32) - const mnemonic = BITBOX.Mnemonic.fromEntropy(rand.toString("hex")) + const rand = bitbox.Crypto.randomBytes(32) + const mnemonic = bitbox.Mnemonic.fromEntropy(rand.toString("hex")) assert.equal(mnemonic.split(" ").length, 24) }) it("should generate an 24 french word mnemonic 32 bytes of entropy", () => { - const rand = BITBOX.Crypto.randomBytes(32) - const mnemonic = BITBOX.Mnemonic.fromEntropy( + const rand = bitbox.Crypto.randomBytes(32) + const mnemonic = bitbox.Mnemonic.fromEntropy( rand.toString("hex"), - BITBOX.Mnemonic.wordLists().french + bitbox.Mnemonic.wordLists().french ) assert.equal(mnemonic.split(" ").length, 24) }) fixtures.fromEntropy.forEach(entropy => { - const mnemonic = BITBOX.Mnemonic.fromEntropy(entropy.entropy) + const mnemonic = bitbox.Mnemonic.fromEntropy(entropy.entropy) it(`should convert ${entropy.entropy} to ${entropy.mnemonic}`, () => { assert.equal(mnemonic, entropy.mnemonic) }) @@ -89,49 +89,49 @@ describe("#Mnemonic", () => { describe("#toEntropy", () => { it("should turn a 12 word mnemonic to entropy", () => { - const mnemonic = BITBOX.Mnemonic.generate(128) - const entropy = BITBOX.Mnemonic.toEntropy(mnemonic) + const mnemonic = bitbox.Mnemonic.generate(128) + const entropy = bitbox.Mnemonic.toEntropy(mnemonic) assert.equal(entropy.length, 16) }) it("should turn a 15 word mnemonic to entropy", () => { - const mnemonic = BITBOX.Mnemonic.generate(160) - const entropy = BITBOX.Mnemonic.toEntropy(mnemonic) + const mnemonic = bitbox.Mnemonic.generate(160) + const entropy = bitbox.Mnemonic.toEntropy(mnemonic) assert.equal(entropy.length, 20) }) it("should turn a 18 word mnemonic to entropy", () => { - const mnemonic = BITBOX.Mnemonic.generate(192) - const entropy = BITBOX.Mnemonic.toEntropy(mnemonic) + const mnemonic = bitbox.Mnemonic.generate(192) + const entropy = bitbox.Mnemonic.toEntropy(mnemonic) assert.equal(entropy.length, 24) }) it("should turn a 21 word mnemonic to entropy", () => { - const mnemonic = BITBOX.Mnemonic.generate(224) - const entropy = BITBOX.Mnemonic.toEntropy(mnemonic) + const mnemonic = bitbox.Mnemonic.generate(224) + const entropy = bitbox.Mnemonic.toEntropy(mnemonic) assert.equal(entropy.length, 28) }) it("should turn a 24 word mnemonic to entropy", () => { - const mnemonic = BITBOX.Mnemonic.generate(256) - const entropy = BITBOX.Mnemonic.toEntropy(mnemonic) + const mnemonic = bitbox.Mnemonic.generate(256) + const entropy = bitbox.Mnemonic.toEntropy(mnemonic) assert.equal(entropy.length, 32) }) it("should turn a 24 word spanish mnemonic to entropy", () => { - const mnemonic = BITBOX.Mnemonic.generate( + const mnemonic = bitbox.Mnemonic.generate( 256, - BITBOX.Mnemonic.wordLists().spanish + bitbox.Mnemonic.wordLists().spanish ) - const entropy = BITBOX.Mnemonic.toEntropy( + const entropy = bitbox.Mnemonic.toEntropy( mnemonic, - BITBOX.Mnemonic.wordLists().spanish + bitbox.Mnemonic.wordLists().spanish ) assert.equal(entropy.length, 32) }) fixtures.fromEntropy.forEach(fixture => { - const entropy = BITBOX.Mnemonic.toEntropy(fixture.mnemonic) + const entropy = bitbox.Mnemonic.toEntropy(fixture.mnemonic) it(`should convert ${fixture.mnemonic} to ${fixture.entropy}`, () => { assert.equal(entropy.toString("hex"), fixture.entropy) }) @@ -141,9 +141,9 @@ describe("#Mnemonic", () => { describe("#validate", () => { it("fails for a mnemonic that is too short", () => { assert.equal( - BITBOX.Mnemonic.validate( + bitbox.Mnemonic.validate( "mixed winner", - BITBOX.Mnemonic.wordLists().english + bitbox.Mnemonic.wordLists().english ), "Invalid mnemonic" ) @@ -151,9 +151,9 @@ describe("#Mnemonic", () => { it("fails for a mnemonic that is too long", () => { assert.equal( - BITBOX.Mnemonic.validate( + bitbox.Mnemonic.validate( "mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake", - BITBOX.Mnemonic.wordLists().english + bitbox.Mnemonic.wordLists().english ), "Invalid mnemonic" ) @@ -161,63 +161,63 @@ describe("#Mnemonic", () => { it("fails if mnemonic words are not in the word list", () => { assert.equal( - BITBOX.Mnemonic.validate( + bitbox.Mnemonic.validate( "failsauce one two three four five six seven eight nine ten eleven", - BITBOX.Mnemonic.wordLists().english + bitbox.Mnemonic.wordLists().english ), "failsauce is not in wordlist, did you mean balance?" ) }) it("validate a 128 bit mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate(128) + const mnemonic = bitbox.Mnemonic.generate(128) assert.equal( - BITBOX.Mnemonic.validate(mnemonic, BITBOX.Mnemonic.wordLists().english), + bitbox.Mnemonic.validate(mnemonic, bitbox.Mnemonic.wordLists().english), "Valid mnemonic" ) }) it("validate a 160 bit mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate(160) + const mnemonic = bitbox.Mnemonic.generate(160) assert.equal( - BITBOX.Mnemonic.validate(mnemonic, BITBOX.Mnemonic.wordLists().english), + bitbox.Mnemonic.validate(mnemonic, bitbox.Mnemonic.wordLists().english), "Valid mnemonic" ) }) it("validate a 192 bit mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate(192) + const mnemonic = bitbox.Mnemonic.generate(192) assert.equal( - BITBOX.Mnemonic.validate(mnemonic, BITBOX.Mnemonic.wordLists().english), + bitbox.Mnemonic.validate(mnemonic, bitbox.Mnemonic.wordLists().english), "Valid mnemonic" ) }) it("validate a 224 bit mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate(224) + const mnemonic = bitbox.Mnemonic.generate(224) assert.equal( - BITBOX.Mnemonic.validate(mnemonic, BITBOX.Mnemonic.wordLists().english), + bitbox.Mnemonic.validate(mnemonic, bitbox.Mnemonic.wordLists().english), "Valid mnemonic" ) }) it("validate a 256 bit mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate(256) + const mnemonic = bitbox.Mnemonic.generate(256) assert.equal( - BITBOX.Mnemonic.validate(mnemonic, BITBOX.Mnemonic.wordLists().english), + bitbox.Mnemonic.validate(mnemonic, bitbox.Mnemonic.wordLists().english), "Valid mnemonic" ) }) it("validate a 256 bit chinese simplified mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate( + const mnemonic = bitbox.Mnemonic.generate( 256, - BITBOX.Mnemonic.wordLists().chinese_simplified + bitbox.Mnemonic.wordLists().chinese_simplified ) assert.equal( - BITBOX.Mnemonic.validate( + bitbox.Mnemonic.validate( mnemonic, - BITBOX.Mnemonic.wordLists().chinese_simplified + bitbox.Mnemonic.wordLists().chinese_simplified ), "Valid mnemonic" ) @@ -226,73 +226,73 @@ describe("#Mnemonic", () => { describe("#toSeed", () => { it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 128 bit mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate(128) - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(mnemonic, "") + const mnemonic = bitbox.Mnemonic.generate(128) + const rootSeedBuffer = bitbox.Mnemonic.toSeed(mnemonic, "") assert.equal(rootSeedBuffer.byteLength, 64) }) it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 160 bit mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate(160) - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(mnemonic, "") + const mnemonic = bitbox.Mnemonic.generate(160) + const rootSeedBuffer = bitbox.Mnemonic.toSeed(mnemonic, "") assert.equal(rootSeedBuffer.byteLength, 64) }) it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 192 bit mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate(192) - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(mnemonic, "") + const mnemonic = bitbox.Mnemonic.generate(192) + const rootSeedBuffer = bitbox.Mnemonic.toSeed(mnemonic, "") assert.equal(rootSeedBuffer.byteLength, 64) }) it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 224 bit mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate(224) - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(mnemonic, "") + const mnemonic = bitbox.Mnemonic.generate(224) + const rootSeedBuffer = bitbox.Mnemonic.toSeed(mnemonic, "") assert.equal(rootSeedBuffer.byteLength, 64) }) it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 256 bit mnemonic", () => { - const mnemonic = BITBOX.Mnemonic.generate(256) - const rootSeedBuffer = BITBOX.Mnemonic.toSeed(mnemonic, "") + const mnemonic = bitbox.Mnemonic.generate(256) + const rootSeedBuffer = bitbox.Mnemonic.toSeed(mnemonic, "") assert.equal(rootSeedBuffer.byteLength, 64) }) }) describe("#wordLists", () => { it("return a list of 2048 english words", () => { - assert.equal(BITBOX.Mnemonic.wordLists().english.length, 2048) + assert.equal(bitbox.Mnemonic.wordLists().english.length, 2048) }) it("return a list of 2048 japanese words", () => { - assert.equal(BITBOX.Mnemonic.wordLists().japanese.length, 2048) + assert.equal(bitbox.Mnemonic.wordLists().japanese.length, 2048) }) it("return a list of 2048 chinese simplified words", () => { - assert.equal(BITBOX.Mnemonic.wordLists().chinese_simplified.length, 2048) + assert.equal(bitbox.Mnemonic.wordLists().chinese_simplified.length, 2048) }) it("return a list of 2048 chinese traditional words", () => { - assert.equal(BITBOX.Mnemonic.wordLists().chinese_traditional.length, 2048) + assert.equal(bitbox.Mnemonic.wordLists().chinese_traditional.length, 2048) }) it("return a list of 2048 french words", () => { - assert.equal(BITBOX.Mnemonic.wordLists().french.length, 2048) + assert.equal(bitbox.Mnemonic.wordLists().french.length, 2048) }) it("return a list of 2048 italian words", () => { - assert.equal(BITBOX.Mnemonic.wordLists().italian.length, 2048) + assert.equal(bitbox.Mnemonic.wordLists().italian.length, 2048) }) it("return a list of 2048 korean words", () => { - assert.equal(BITBOX.Mnemonic.wordLists().korean.length, 2048) + assert.equal(bitbox.Mnemonic.wordLists().korean.length, 2048) }) it("return a list of 2048 spanish words", () => { - assert.equal(BITBOX.Mnemonic.wordLists().spanish.length, 2048) + assert.equal(bitbox.Mnemonic.wordLists().spanish.length, 2048) }) }) describe("#toKeypairs", () => { fixtures.toKeypairs.forEach((fixture, i) => { - const keypairs = BITBOX.Mnemonic.toKeypairs(fixture.mnemonic, 5) + const keypairs = bitbox.Mnemonic.toKeypairs(fixture.mnemonic, 5) keypairs.forEach((keypair, j) => { it(`Generate keypair from mnemonic`, () => { assert.equal( @@ -306,7 +306,7 @@ describe("#Mnemonic", () => { }) }) - const regtestKeypairs = BITBOX.Mnemonic.toKeypairs( + const regtestKeypairs = bitbox.Mnemonic.toKeypairs( fixture.mnemonic, 5, true @@ -328,9 +328,9 @@ describe("#Mnemonic", () => { describe("#findNearestWord", () => { fixtures.findNearestWord.forEach((fixture, i) => { - const word = BITBOX.Mnemonic.findNearestWord( + const word = bitbox.Mnemonic.findNearestWord( fixture.word, - BITBOX.Mnemonic.wordLists()[fixture.language] + bitbox.Mnemonic.wordLists()[fixture.language] ) it(`find word ${fixture.foundWord} near ${fixture.word} in ${ fixture.language diff --git a/test/unit/Price.js b/test/unit/Price.js index 3703e268..ed5520bf 100644 --- a/test/unit/Price.js +++ b/test/unit/Price.js @@ -1,7 +1,7 @@ const chai = require("chai") const assert = require("assert") -const bitbox = require("../../lib/BITBOX").BITBOX -const BITBOX = new bitbox() +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() const axios = require("axios") const sinon = require("sinon") @@ -17,7 +17,7 @@ describe("#Price", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.Price.current("usd") + bitbox.Price.current("usd") .then(result => { assert.deepEqual(data.price, result) }) diff --git a/test/unit/RawTransactions.js b/test/unit/RawTransactions.js index 7a867b60..bfbaa95f 100644 --- a/test/unit/RawTransactions.js +++ b/test/unit/RawTransactions.js @@ -7,8 +7,8 @@ const assert = require("assert") const axios = require("axios") -const bitbox = require("../../lib/BITBOX").BITBOX -const BITBOX = new bitbox() +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() const sinon = require("sinon") const nock = require("nock") // HTTP mocking @@ -39,7 +39,7 @@ describe("#RawTransactions", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.RawTransactions.decodeRawTransaction(["02000000000000000000"]) + bitbox.RawTransactions.decodeRawTransaction(["02000000000000000000"]) .then(result => { assert.deepEqual(data, result[0]) }) @@ -62,7 +62,7 @@ describe("#RawTransactions", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - const result = await BITBOX.RawTransactions.decodeScript( + const result = await bitbox.RawTransactions.decodeScript( "6a105361746f736869204e616b616d6f746f" ) //console.log(`result: ${util.inspect(result)}`) @@ -83,7 +83,7 @@ describe("#RawTransactions", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.RawTransactions.getRawTransaction([ + bitbox.RawTransactions.getRawTransaction([ "808d617eccaad4f1397fe07a06ec5ed15a0821cf22a3e0931c0c92aef9e572b6" ]) .then(result => { @@ -104,7 +104,7 @@ describe("#RawTransactions", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - const result = await BITBOX.RawTransactions.sendRawTransaction( + const result = await bitbox.RawTransactions.sendRawTransaction( "020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000" ) @@ -115,11 +115,11 @@ describe("#RawTransactions", () => { const data = "Error: transaction already in block chain" // Mock the http call to rest.bitcoin.com - nock(`${BITBOX.RawTransactions.restURL}`) + nock(`${bitbox.RawTransactions.restURL}`) .post(uri => uri.includes(`/`)) .reply(200, { data: data }) - const result = await BITBOX.RawTransactions.sendRawTransaction([ + const result = await bitbox.RawTransactions.sendRawTransaction([ "020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000" ]) diff --git a/test/unit/Script.js b/test/unit/Script.js index fe28cebc..08816cd3 100644 --- a/test/unit/Script.js +++ b/test/unit/Script.js @@ -1,7 +1,7 @@ const fixtures = require("./fixtures/Script.json") const assert = require("assert") -const bitbox = require("../../lib/BITBOX").BITBOX -const BITBOX = new bitbox() +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() const Buffer = require("safe-buffer").Buffer describe("#Script", () => { @@ -9,7 +9,7 @@ describe("#Script", () => { describe("P2PKH scriptSig", () => { fixtures.decodeScriptSig.forEach(fixture => { it(`should decode scriptSig buffer`, () => { - const decodedScriptSig = BITBOX.Script.decode( + const decodedScriptSig = bitbox.Script.decode( Buffer.from(fixture.scriptSigHex, "hex") ) assert.equal(typeof decodedScriptSig, "object") @@ -18,11 +18,11 @@ describe("#Script", () => { it(`should decode scriptSig buffer to cash address ${ fixture.cashAddress }`, () => { - const decodedScriptSig = BITBOX.Script.decode( + const decodedScriptSig = bitbox.Script.decode( Buffer.from(fixture.scriptSigHex, "hex") ) - const address = BITBOX.HDNode.toCashAddress( - BITBOX.ECPair.fromPublicKey(decodedScriptSig[1]) + const address = bitbox.HDNode.toCashAddress( + bitbox.ECPair.fromPublicKey(decodedScriptSig[1]) ) assert.equal(address, fixture.cashAddress) }) @@ -30,11 +30,11 @@ describe("#Script", () => { it(`should decode scriptSig buffer to legacy address ${ fixture.legacyAddress }`, () => { - const decodedScriptSig = BITBOX.Script.decode( + const decodedScriptSig = bitbox.Script.decode( Buffer.from(fixture.scriptSigHex, "hex") ) - const address = BITBOX.HDNode.toLegacyAddress( - BITBOX.ECPair.fromPublicKey(decodedScriptSig[1]) + const address = bitbox.HDNode.toLegacyAddress( + bitbox.ECPair.fromPublicKey(decodedScriptSig[1]) ) assert.equal(address, fixture.legacyAddress) }) @@ -44,18 +44,18 @@ describe("#Script", () => { describe("P2PKH scriptPubKey", () => { fixtures.decodeScriptPubKey.forEach(fixture => { it(`should decode scriptSig buffer`, () => { - const decodedScriptPubKey = BITBOX.Script.decode( + const decodedScriptPubKey = bitbox.Script.decode( Buffer.from(fixture.scriptPubKeyHex, "hex") ) assert.equal(decodedScriptPubKey.length, 5) }) it(`should match hashed pubKey ${fixture.pubKeyHex}`, () => { - const decodedScriptPubKey = BITBOX.Script.decode( + const decodedScriptPubKey = bitbox.Script.decode( Buffer.from(fixture.scriptPubKeyHex, "hex") ) const data = Buffer.from(fixture.pubKeyHex, "hex") - const hash160 = BITBOX.Crypto.hash160(data).toString("hex") + const hash160 = bitbox.Crypto.hash160(data).toString("hex") assert.equal(decodedScriptPubKey[2].toString("hex"), hash160) }) }) @@ -70,7 +70,7 @@ describe("#Script", () => { Buffer.from(fixture.scriptSigChunks[0], "hex"), Buffer.from(fixture.scriptSigChunks[1], "hex") ] - const encodedScriptSig = BITBOX.Script.encode(arr) + const encodedScriptSig = bitbox.Script.encode(arr) assert.equal(typeof encodedScriptSig, "object") }) }) @@ -79,10 +79,10 @@ describe("#Script", () => { describe("P2PKH scriptPubKey", () => { fixtures.encodeScriptPubKey.forEach(fixture => { it(`should encode scriptPubKey buffer`, () => { - const decodedScriptPubKey = BITBOX.Script.decode( + const decodedScriptPubKey = bitbox.Script.decode( Buffer.from(fixture.scriptPubKeyHex, "hex") ) - const compiledScriptPubKey = BITBOX.Script.encode(decodedScriptPubKey) + const compiledScriptPubKey = bitbox.Script.encode(decodedScriptPubKey) assert.equal( compiledScriptPubKey.toString("hex"), fixture.scriptPubKeyHex @@ -100,8 +100,8 @@ describe("#Script", () => { Buffer.from(fixture.scriptSigChunks[0], "hex"), Buffer.from(fixture.scriptSigChunks[1], "hex") ] - const compiledScriptSig = BITBOX.Script.encode(arr) - const asm = BITBOX.Script.toASM(compiledScriptSig) + const compiledScriptSig = bitbox.Script.encode(arr) + const asm = bitbox.Script.toASM(compiledScriptSig) assert.equal(asm, fixture.asm) }) }) @@ -110,7 +110,7 @@ describe("#Script", () => { describe("P2PKH scriptPubKey", () => { fixtures.scriptPubKeyToASM.forEach(fixture => { it(`should compile scriptPubKey buffer to ${fixture.asm}`, () => { - const asm = BITBOX.Script.toASM( + const asm = bitbox.Script.toASM( Buffer.from(fixture.scriptPubKeyHex, "hex") ) assert.equal(asm, fixture.asm) @@ -123,7 +123,7 @@ describe("#Script", () => { describe("P2PKH scriptSig", () => { fixtures.scriptSigFromASM.forEach(fixture => { it(`should decode scriptSig asm to buffer`, () => { - const buf = BITBOX.Script.fromASM(fixture.asm) + const buf = bitbox.Script.fromASM(fixture.asm) assert.equal(typeof buf, "object") }) }) @@ -132,7 +132,7 @@ describe("#Script", () => { describe("P2PKH scriptPubKey", () => { fixtures.scriptPubKeyFromASM.forEach(fixture => { it(`should decode scriptPubKey asm to buffer`, () => { - const buf = BITBOX.Script.fromASM(fixture.asm) + const buf = bitbox.Script.fromASM(fixture.asm) assert.equal(typeof buf, "object") }) }) @@ -142,7 +142,7 @@ describe("#Script", () => { describe("#OPCodes", () => { for (const opcode in fixtures.opcodes) { it(`should have OP Code ${opcode}`, () => { - assert.equal(BITBOX.Script.opcodes[opcode], fixtures.opcodes[opcode]) + assert.equal(bitbox.Script.opcodes[opcode], fixtures.opcodes[opcode]) }) } }) @@ -150,8 +150,8 @@ describe("#Script", () => { describe("#classifyInput", () => { fixtures.classifyInput.forEach(fixture => { it(`should classify input type ${fixture.type}`, () => { - const type = BITBOX.Script.classifyInput( - BITBOX.Script.fromASM(fixture.script) + const type = bitbox.Script.classifyInput( + bitbox.Script.fromASM(fixture.script) ) assert.equal(type, fixture.type) }) @@ -161,8 +161,8 @@ describe("#Script", () => { describe("#classifyOutput", () => { fixtures.classifyOutput.forEach(fixture => { it(`should classify ouput type ${fixture.type}`, () => { - const type = BITBOX.Script.classifyOutput( - BITBOX.Script.fromASM(fixture.script) + const type = bitbox.Script.classifyOutput( + bitbox.Script.fromASM(fixture.script) ) assert.equal(type, fixture.type) }) @@ -172,24 +172,24 @@ describe("#Script", () => { describe("#nullDataTemplate", () => { fixtures.nullDataTemplate.forEach(fixture => { it(`should encode nulldata output`, () => { - const buf = BITBOX.Script.nullData.output.encode( + const buf = bitbox.Script.nullData.output.encode( Buffer.from(`${fixture.data}`, "ascii") ) assert.equal(buf.toString("hex"), fixture.hex) }) it(`should decode nulldata output`, () => { - const buf = BITBOX.Script.nullData.output.decode( + const buf = bitbox.Script.nullData.output.decode( Buffer.from(`${fixture.hex}`, "hex") ) assert.equal(buf.toString("ascii"), fixture.data) }) it(`should confirm correctly formatted nulldata output`, () => { - const buf = BITBOX.Script.nullData.output.encode( + const buf = bitbox.Script.nullData.output.encode( Buffer.from(`${fixture.data}`, "ascii") ) - const valid = BITBOX.Script.nullData.output.check(buf) + const valid = bitbox.Script.nullData.output.check(buf) assert.equal(valid, true) }) }) @@ -199,24 +199,24 @@ describe("#Script", () => { describe("#pubKeyInputTemplate", () => { fixtures.pubKeyInputTemplate.forEach(fixture => { it(`should encode pubKey input`, () => { - const buf = BITBOX.Script.pubKey.input.encode( + const buf = bitbox.Script.pubKey.input.encode( Buffer.from(fixture.signature, "hex") ) assert.equal(buf.toString("hex"), fixture.hex) }) it(`should decode pubKey input`, () => { - const buf = BITBOX.Script.pubKey.input.decode( + const buf = bitbox.Script.pubKey.input.decode( Buffer.from(fixture.hex, "hex") ) assert.equal(buf.toString("hex"), fixture.signature) }) it(`should confirm correctly formatted pubKeyHash input`, () => { - const buf = BITBOX.Script.pubKey.input.encode( + const buf = bitbox.Script.pubKey.input.encode( Buffer.from(fixture.signature, "hex") ) - const valid = BITBOX.Script.pubKey.input.check(buf) + const valid = bitbox.Script.pubKey.input.check(buf) assert.equal(valid, true) }) }) @@ -225,24 +225,24 @@ describe("#Script", () => { describe("#pubKeyOutputTemplate", () => { fixtures.pubKeyOutputTemplate.forEach(fixture => { it(`should encode pubKey output`, () => { - const buf = BITBOX.Script.pubKey.output.encode( + const buf = bitbox.Script.pubKey.output.encode( Buffer.from(fixture.pubKey, "hex") ) assert.equal(buf.toString("hex"), fixture.hex) }) it(`should decode pubKey output`, () => { - const buf = BITBOX.Script.pubKey.output.decode( + const buf = bitbox.Script.pubKey.output.decode( Buffer.from(`${fixture.hex}`, "hex") ) assert.equal(buf.toString("hex"), fixture.pubKey) }) it(`should confirm correctly formatted pubKey output`, () => { - const buf = BITBOX.Script.pubKey.output.encode( + const buf = bitbox.Script.pubKey.output.encode( Buffer.from(fixture.pubKey, "hex") ) - const valid = BITBOX.Script.pubKey.output.check(buf) + const valid = bitbox.Script.pubKey.output.check(buf) assert.equal(valid, true) }) }) @@ -253,7 +253,7 @@ describe("#Script", () => { describe("#pubKeyHashInputTemplate", () => { fixtures.pubKeyHashInputTemplate.forEach(fixture => { it(`should encode pubKeyHash input`, () => { - const buf = BITBOX.Script.pubKeyHash.input.encode( + const buf = bitbox.Script.pubKeyHash.input.encode( Buffer.from(fixture.signature, "hex"), Buffer.from(fixture.pubKey, "hex") ) @@ -261,25 +261,25 @@ describe("#Script", () => { }) it(`should decode pubKeyHash input signature`, () => { - const buf = BITBOX.Script.pubKeyHash.input.decode( + const buf = bitbox.Script.pubKeyHash.input.decode( Buffer.from(fixture.hex, "hex") ) assert.equal(buf.signature.toString("hex"), fixture.signature) }) it(`should decode pubKeyHash input pubkey`, () => { - const buf = BITBOX.Script.pubKeyHash.input.decode( + const buf = bitbox.Script.pubKeyHash.input.decode( Buffer.from(fixture.hex, "hex") ) assert.equal(buf.pubKey.toString("hex"), fixture.pubKey) }) it(`should confirm correctly formatted pubKeyHash input`, () => { - const buf = BITBOX.Script.pubKeyHash.input.encode( + const buf = bitbox.Script.pubKeyHash.input.encode( Buffer.from(fixture.signature, "hex"), Buffer.from(fixture.pubKey, "hex") ) - const valid = BITBOX.Script.pubKeyHash.input.check(buf) + const valid = bitbox.Script.pubKeyHash.input.check(buf) assert.equal(valid, true) }) }) @@ -287,23 +287,23 @@ describe("#Script", () => { describe("#pubKeyHashOutputTemplate", () => { fixtures.pubKeyHashOutputTemplate.forEach(fixture => { - const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const identifier = BITBOX.HDNode.toIdentifier(node) + const node = bitbox.HDNode.fromXPriv(fixture.xpriv) + const identifier = bitbox.HDNode.toIdentifier(node) it(`should encode pubKeyHash output`, () => { - const buf = BITBOX.Script.pubKeyHash.output.encode(identifier) + const buf = bitbox.Script.pubKeyHash.output.encode(identifier) assert.equal(buf.toString("hex"), fixture.hex) }) it(`should decode pubKeyHash output`, () => { - const buf = BITBOX.Script.pubKeyHash.output.decode( + const buf = bitbox.Script.pubKeyHash.output.decode( Buffer.from(`${fixture.hex}`, "hex") ) assert.equal(buf.toString("hex"), identifier.toString("hex")) }) it(`should confirm correctly formatted pubKeyHash output`, () => { - const buf = BITBOX.Script.pubKeyHash.output.encode(identifier) - const valid = BITBOX.Script.pubKeyHash.output.check(buf) + const buf = bitbox.Script.pubKeyHash.output.encode(identifier) + const valid = bitbox.Script.pubKeyHash.output.check(buf) assert.equal(valid, true) }) }) @@ -317,15 +317,15 @@ describe("#Script", () => { const signatures = fixture.signatures.map(signature => signature ? Buffer.from(signature, "hex") - : BITBOX.Script.opcodes.OP_0 + : bitbox.Script.opcodes.OP_0 ) - const buf = BITBOX.Script.multisig.input.encode(signatures) + const buf = bitbox.Script.multisig.input.encode(signatures) assert.equal(buf.toString("hex"), fixture.hex) }) it(`should decode multisig input`, () => { - const buf = BITBOX.Script.multisig.input.decode( + const buf = bitbox.Script.multisig.input.decode( Buffer.from(fixture.hex, "hex") ) assert.equal(buf[0].toString("hex"), fixture.signatures[0]) @@ -335,11 +335,11 @@ describe("#Script", () => { const signatures = fixture.signatures.map(signature => signature ? Buffer.from(signature, "hex") - : BITBOX.Script.opcodes.OP_0 + : bitbox.Script.opcodes.OP_0 ) - const buf = BITBOX.Script.multisig.input.encode(signatures) - const valid = BITBOX.Script.multisig.input.check(buf) + const buf = bitbox.Script.multisig.input.encode(signatures) + const valid = bitbox.Script.multisig.input.check(buf) assert.equal(valid, true) }) }) @@ -350,13 +350,13 @@ describe("#Script", () => { it(`should encode multisig output`, () => { const pubKeys = fixture.pubKeys.map(p => Buffer.from(p, "hex")) const m = pubKeys.length - const buf = BITBOX.Script.multisig.output.encode(m, pubKeys) + const buf = bitbox.Script.multisig.output.encode(m, pubKeys) assert.equal(buf.toString("hex"), fixture.hex) }) it(`should decode multisig output`, () => { - const output = BITBOX.Script.multisig.output.decode( + const output = bitbox.Script.multisig.output.decode( Buffer.from(`${fixture.hex}`, "hex") ) assert.equal(output.m, fixture.pubKeys.length) @@ -365,8 +365,8 @@ describe("#Script", () => { it(`should confirm correctly formatted multisig output`, () => { const pubKeys = fixture.pubKeys.map(p => Buffer.from(p, "hex")) const m = pubKeys.length - const buf = BITBOX.Script.multisig.output.encode(m, pubKeys) - const valid = BITBOX.Script.multisig.output.check(buf) + const buf = bitbox.Script.multisig.output.encode(m, pubKeys) + const valid = bitbox.Script.multisig.output.check(buf) assert.equal(valid, true) }) }) @@ -377,18 +377,18 @@ describe("#Script", () => { describe("#scriptHashInputTemplate", () => { fixtures.scriptHashInputTemplate.forEach(fixture => { it(`should encode scriptHash input`, () => { - const buf = BITBOX.Script.scriptHash.input.encode( - BITBOX.Script.fromASM(fixture.redeemScriptSig), - BITBOX.Script.fromASM(fixture.redeemScript) + const buf = bitbox.Script.scriptHash.input.encode( + bitbox.Script.fromASM(fixture.redeemScriptSig), + bitbox.Script.fromASM(fixture.redeemScript) ) assert.equal(buf.toString("hex"), fixture.hex) }) it(`should decode scriptHash input`, () => { - const redeemScriptSig = BITBOX.Script.fromASM(fixture.redeemScriptSig) - const redeemScript = BITBOX.Script.fromASM(fixture.redeemScript) + const redeemScriptSig = bitbox.Script.fromASM(fixture.redeemScriptSig) + const redeemScript = bitbox.Script.fromASM(fixture.redeemScript) assert.deepEqual( - BITBOX.Script.scriptHash.input.decode( + bitbox.Script.scriptHash.input.decode( Buffer.from(fixture.hex, "hex") ), { @@ -399,11 +399,11 @@ describe("#Script", () => { }) it(`should confirm correctly formatted scriptHash input`, () => { - const buf = BITBOX.Script.scriptHash.input.encode( - BITBOX.Script.fromASM(fixture.redeemScriptSig), - BITBOX.Script.fromASM(fixture.redeemScript) + const buf = bitbox.Script.scriptHash.input.encode( + bitbox.Script.fromASM(fixture.redeemScriptSig), + bitbox.Script.fromASM(fixture.redeemScript) ) - const valid = BITBOX.Script.scriptHash.input.check(buf) + const valid = bitbox.Script.scriptHash.input.check(buf) assert.equal(valid, true) }) }) @@ -412,27 +412,27 @@ describe("#Script", () => { describe("#scriptHashOutputTemplate", () => { fixtures.scriptHashOutputTemplate.forEach(fixture => { it(`should encode scriptHash output`, () => { - const redeemScript = BITBOX.Script.fromASM(fixture.output) - const scriptHash = BITBOX.Crypto.hash160(redeemScript) - const buf = BITBOX.Script.scriptHash.output.encode(scriptHash) + const redeemScript = bitbox.Script.fromASM(fixture.output) + const scriptHash = bitbox.Crypto.hash160(redeemScript) + const buf = bitbox.Script.scriptHash.output.encode(scriptHash) assert.equal(buf.toString("hex"), fixture.hex) }) it(`should decode scriptHash output`, () => { - const redeemScript = BITBOX.Script.fromASM(fixture.output) - const scriptHash = BITBOX.Crypto.hash160(redeemScript) - const buf = BITBOX.Script.scriptHash.output.decode( + const redeemScript = bitbox.Script.fromASM(fixture.output) + const scriptHash = bitbox.Crypto.hash160(redeemScript) + const buf = bitbox.Script.scriptHash.output.decode( Buffer.from(`${fixture.hex}`, "hex") ) assert.deepEqual(buf, scriptHash) }) it(`should confirm correctly formatted scriptHash output`, () => { - const redeemScript = BITBOX.Script.fromASM(fixture.output) - const scriptHash = BITBOX.Crypto.hash160(redeemScript) - const buf = BITBOX.Script.scriptHash.output.encode(scriptHash) - const valid = BITBOX.Script.scriptHash.output.check(buf) + const redeemScript = bitbox.Script.fromASM(fixture.output) + const scriptHash = bitbox.Crypto.hash160(redeemScript) + const buf = bitbox.Script.scriptHash.output.encode(scriptHash) + const valid = bitbox.Script.scriptHash.output.check(buf) assert.equal(valid, true) }) }) diff --git a/test/unit/Transaction.js b/test/unit/Transaction.js index 6b407c90..6b966960 100644 --- a/test/unit/Transaction.js +++ b/test/unit/Transaction.js @@ -1,6 +1,6 @@ const assert = require("assert") -const bitbox = require("../../lib/BITBOX").BITBOX -const BITBOX = new bitbox() +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() const axios = require("axios") const sinon = require("sinon") @@ -40,7 +40,7 @@ describe("#Transaction", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.Transaction.details( + bitbox.Transaction.details( "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8" ) .then(result => { diff --git a/test/unit/TransactionBuilder.js b/test/unit/TransactionBuilder.js index f8caef26..04ab7bd0 100644 --- a/test/unit/TransactionBuilder.js +++ b/test/unit/TransactionBuilder.js @@ -1,12 +1,12 @@ const fixtures = require("./fixtures/TransactionBuilder.json") const assert = require("assert") -const bitbox = require("../../lib/BITBOX").BITBOX -const BITBOX = new bitbox() +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() const Buffer = require("safe-buffer").Buffer describe("#TransactionBuilder", () => { describe("#hashTypes", () => { - const transactionBuilder = new BITBOX.TransactionBuilder("mainnet") + const transactionBuilder = new bitbox.TransactionBuilder("mainnet") fixtures.hashTypes.forEach(fixture => { it(`should match hash type`, () => { assert.equal( @@ -22,25 +22,25 @@ describe("#TransactionBuilder", () => { describe("#Mainnet", () => { fixtures.scripts.p2pk.toOne.mainnet.forEach(fixture => { it(`should create 1-to-1 P2PK transaction on mainnet`, () => { - const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new BITBOX.TransactionBuilder() + const node = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new bitbox.TransactionBuilder() const originalAmount = fixture.amount const txid = fixture.txHash - const pubKey = BITBOX.HDNode.toPublicKey(node) - const buf = BITBOX.Script.pubKey.output.encode(pubKey) + const pubKey = bitbox.HDNode.toPublicKey(node) + const buf = bitbox.Script.pubKey.output.encode(pubKey) transactionBuilder.addInput( txid, 0, transactionBuilder.DEFAULT_SEQUENCE, buf ) - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 3 } ) const sendAmount = originalAmount - byteCount transactionBuilder.addOutput(buf, sendAmount) - const keyPair = BITBOX.HDNode.toKeyPair(node) + const keyPair = bitbox.HDNode.toKeyPair(node) let redeemScript transactionBuilder.sign( 0, @@ -59,25 +59,25 @@ describe("#TransactionBuilder", () => { describe("#Testnet", () => { fixtures.scripts.p2pk.toOne.testnet.forEach(fixture => { it(`should create 1-to-1 P2PK transaction on testnet`, () => { - const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const node = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new bitbox.TransactionBuilder("testnet") const originalAmount = fixture.amount const txid = fixture.txHash - const pubKey = BITBOX.HDNode.toPublicKey(node) - const buf = BITBOX.Script.pubKey.output.encode(pubKey) + const pubKey = bitbox.HDNode.toPublicKey(node) + const buf = bitbox.Script.pubKey.output.encode(pubKey) transactionBuilder.addInput( txid, 0, transactionBuilder.DEFAULT_SEQUENCE, buf ) - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 3 }, { P2PKH: 3 } ) const sendAmount = originalAmount - byteCount transactionBuilder.addOutput(buf, sendAmount) - const keyPair = BITBOX.HDNode.toKeyPair(node) + const keyPair = bitbox.HDNode.toKeyPair(node) let redeemScript transactionBuilder.sign( 0, @@ -98,32 +98,32 @@ describe("#TransactionBuilder", () => { describe("#Mainnet", () => { fixtures.scripts.p2pk.toMany.mainnet.forEach(fixture => { it(`should create 1-to-many P2PK transaction on mainnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) - const transactionBuilder = new BITBOX.TransactionBuilder() + const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const transactionBuilder = new bitbox.TransactionBuilder() const originalAmount = fixture.amount const txid = fixture.txHash - const pubKey1 = BITBOX.HDNode.toPublicKey(node1) - const pubKey2 = BITBOX.HDNode.toPublicKey(node2) - const pubKey3 = BITBOX.HDNode.toPublicKey(node3) - const buf1 = BITBOX.Script.pubKey.output.encode(pubKey1) - const buf2 = BITBOX.Script.pubKey.output.encode(pubKey2) - const buf3 = BITBOX.Script.pubKey.output.encode(pubKey3) + const pubKey1 = bitbox.HDNode.toPublicKey(node1) + const pubKey2 = bitbox.HDNode.toPublicKey(node2) + const pubKey3 = bitbox.HDNode.toPublicKey(node3) + const buf1 = bitbox.Script.pubKey.output.encode(pubKey1) + const buf2 = bitbox.Script.pubKey.output.encode(pubKey2) + const buf3 = bitbox.Script.pubKey.output.encode(pubKey3) transactionBuilder.addInput( txid, 0, transactionBuilder.DEFAULT_SEQUENCE, buf1 ) - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 3 } ) const sendAmount = originalAmount - byteCount transactionBuilder.addOutput(buf2, Math.floor(sendAmount / 2)) transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) - const keyPair = BITBOX.HDNode.toKeyPair(node1) + const keyPair = bitbox.HDNode.toKeyPair(node1) let redeemScript transactionBuilder.sign( 0, @@ -142,32 +142,32 @@ describe("#TransactionBuilder", () => { describe("#Testnet", () => { fixtures.scripts.p2pk.toMany.testnet.forEach(fixture => { it(`should create 1-to-many P2PK transaction on testnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) - const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const transactionBuilder = new bitbox.TransactionBuilder("testnet") const originalAmount = fixture.amount const txid = fixture.txHash - const pubKey1 = BITBOX.HDNode.toPublicKey(node1) - const pubKey2 = BITBOX.HDNode.toPublicKey(node2) - const pubKey3 = BITBOX.HDNode.toPublicKey(node3) - const buf1 = BITBOX.Script.pubKey.output.encode(pubKey1) - const buf2 = BITBOX.Script.pubKey.output.encode(pubKey2) - const buf3 = BITBOX.Script.pubKey.output.encode(pubKey3) + const pubKey1 = bitbox.HDNode.toPublicKey(node1) + const pubKey2 = bitbox.HDNode.toPublicKey(node2) + const pubKey3 = bitbox.HDNode.toPublicKey(node3) + const buf1 = bitbox.Script.pubKey.output.encode(pubKey1) + const buf2 = bitbox.Script.pubKey.output.encode(pubKey2) + const buf3 = bitbox.Script.pubKey.output.encode(pubKey3) transactionBuilder.addInput( txid, 0, transactionBuilder.DEFAULT_SEQUENCE, buf1 ) - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 3 }, { P2PKH: 3 } ) const sendAmount = originalAmount - byteCount transactionBuilder.addOutput(buf2, Math.floor(sendAmount / 2)) transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) - const keyPair = BITBOX.HDNode.toKeyPair(node1) + const keyPair = bitbox.HDNode.toKeyPair(node1) let redeemScript transactionBuilder.sign( 0, @@ -188,21 +188,21 @@ describe("#TransactionBuilder", () => { describe("#Mainnet", () => { fixtures.scripts.p2pk.manyToMany.mainnet.forEach(fixture => { it(`should create many-to-many P2PK transaction on mainnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) - const node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]) - const transactionBuilder = new BITBOX.TransactionBuilder() + const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const node4 = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) + const transactionBuilder = new bitbox.TransactionBuilder() const originalAmount = fixture.amount const txid = fixture.txHash - const pubKey1 = BITBOX.HDNode.toPublicKey(node1) - const pubKey2 = BITBOX.HDNode.toPublicKey(node2) - const pubKey3 = BITBOX.HDNode.toPublicKey(node3) - const pubKey4 = BITBOX.HDNode.toPublicKey(node4) - const buf1 = BITBOX.Script.pubKey.output.encode(pubKey1) - const buf2 = BITBOX.Script.pubKey.output.encode(pubKey2) - const buf3 = BITBOX.Script.pubKey.output.encode(pubKey3) - const buf4 = BITBOX.Script.pubKey.output.encode(pubKey4) + const pubKey1 = bitbox.HDNode.toPublicKey(node1) + const pubKey2 = bitbox.HDNode.toPublicKey(node2) + const pubKey3 = bitbox.HDNode.toPublicKey(node3) + const pubKey4 = bitbox.HDNode.toPublicKey(node4) + const buf1 = bitbox.Script.pubKey.output.encode(pubKey1) + const buf2 = bitbox.Script.pubKey.output.encode(pubKey2) + const buf3 = bitbox.Script.pubKey.output.encode(pubKey3) + const buf4 = bitbox.Script.pubKey.output.encode(pubKey4) transactionBuilder.addInput( txid, 0, @@ -215,15 +215,15 @@ describe("#TransactionBuilder", () => { transactionBuilder.DEFAULT_SEQUENCE, buf2 ) - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 3 }, { P2PKH: 3 } ) const sendAmount = originalAmount - byteCount transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) transactionBuilder.addOutput(buf4, Math.floor(sendAmount / 2)) - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) - const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + const keyPair1 = bitbox.HDNode.toKeyPair(node1) + const keyPair2 = bitbox.HDNode.toKeyPair(node2) let redeemScript transactionBuilder.sign( 0, @@ -249,21 +249,21 @@ describe("#TransactionBuilder", () => { describe("#Testnet", () => { fixtures.scripts.p2pk.manyToMany.testnet.forEach(fixture => { it(`should create many-to-many P2PK transaction on testnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) - const node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]) - const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const node4 = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) + const transactionBuilder = new bitbox.TransactionBuilder("testnet") const originalAmount = fixture.amount const txid = fixture.txHash - const pubKey1 = BITBOX.HDNode.toPublicKey(node1) - const pubKey2 = BITBOX.HDNode.toPublicKey(node2) - const pubKey3 = BITBOX.HDNode.toPublicKey(node3) - const pubKey4 = BITBOX.HDNode.toPublicKey(node4) - const buf1 = BITBOX.Script.pubKey.output.encode(pubKey1) - const buf2 = BITBOX.Script.pubKey.output.encode(pubKey2) - const buf3 = BITBOX.Script.pubKey.output.encode(pubKey3) - const buf4 = BITBOX.Script.pubKey.output.encode(pubKey4) + const pubKey1 = bitbox.HDNode.toPublicKey(node1) + const pubKey2 = bitbox.HDNode.toPublicKey(node2) + const pubKey3 = bitbox.HDNode.toPublicKey(node3) + const pubKey4 = bitbox.HDNode.toPublicKey(node4) + const buf1 = bitbox.Script.pubKey.output.encode(pubKey1) + const buf2 = bitbox.Script.pubKey.output.encode(pubKey2) + const buf3 = bitbox.Script.pubKey.output.encode(pubKey3) + const buf4 = bitbox.Script.pubKey.output.encode(pubKey4) transactionBuilder.addInput( txid, 0, @@ -276,15 +276,15 @@ describe("#TransactionBuilder", () => { transactionBuilder.DEFAULT_SEQUENCE, buf2 ) - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 3 }, { P2PKH: 3 } ) const sendAmount = originalAmount - byteCount transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) transactionBuilder.addOutput(buf4, Math.floor(sendAmount / 2)) - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) - const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + const keyPair1 = bitbox.HDNode.toKeyPair(node1) + const keyPair2 = bitbox.HDNode.toKeyPair(node2) let redeemScript transactionBuilder.sign( 0, @@ -312,18 +312,18 @@ describe("#TransactionBuilder", () => { describe("#Mainnet", () => { fixtures.scripts.p2pk.fromMany.mainnet.forEach(fixture => { it(`should create many-to-1 P2PK transaction on mainnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) - const transactionBuilder = new BITBOX.TransactionBuilder() + const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const transactionBuilder = new bitbox.TransactionBuilder() const originalAmount = fixture.amount const txid = fixture.txHash - const pubKey1 = BITBOX.HDNode.toPublicKey(node1) - const pubKey2 = BITBOX.HDNode.toPublicKey(node2) - const pubKey3 = BITBOX.HDNode.toPublicKey(node3) - const buf1 = BITBOX.Script.pubKey.output.encode(pubKey1) - const buf2 = BITBOX.Script.pubKey.output.encode(pubKey2) - const buf3 = BITBOX.Script.pubKey.output.encode(pubKey3) + const pubKey1 = bitbox.HDNode.toPublicKey(node1) + const pubKey2 = bitbox.HDNode.toPublicKey(node2) + const pubKey3 = bitbox.HDNode.toPublicKey(node3) + const buf1 = bitbox.Script.pubKey.output.encode(pubKey1) + const buf2 = bitbox.Script.pubKey.output.encode(pubKey2) + const buf3 = bitbox.Script.pubKey.output.encode(pubKey3) transactionBuilder.addInput( txid, 0, @@ -336,14 +336,14 @@ describe("#TransactionBuilder", () => { transactionBuilder.DEFAULT_SEQUENCE, buf2 ) - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 3 }, { P2PKH: 3 } ) const sendAmount = originalAmount - byteCount transactionBuilder.addOutput(buf3, sendAmount) - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) - const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + const keyPair1 = bitbox.HDNode.toKeyPair(node1) + const keyPair2 = bitbox.HDNode.toKeyPair(node2) let redeemScript transactionBuilder.sign( 0, @@ -369,18 +369,18 @@ describe("#TransactionBuilder", () => { describe("#Testnet", () => { fixtures.scripts.p2pk.fromMany.testnet.forEach(fixture => { it(`should create many-to-1 P2PK transaction on testnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) - const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const transactionBuilder = new bitbox.TransactionBuilder("testnet") const originalAmount = fixture.amount const txid = fixture.txHash - const pubKey1 = BITBOX.HDNode.toPublicKey(node1) - const pubKey2 = BITBOX.HDNode.toPublicKey(node2) - const pubKey3 = BITBOX.HDNode.toPublicKey(node3) - const buf1 = BITBOX.Script.pubKey.output.encode(pubKey1) - const buf2 = BITBOX.Script.pubKey.output.encode(pubKey2) - const buf3 = BITBOX.Script.pubKey.output.encode(pubKey3) + const pubKey1 = bitbox.HDNode.toPublicKey(node1) + const pubKey2 = bitbox.HDNode.toPublicKey(node2) + const pubKey3 = bitbox.HDNode.toPublicKey(node3) + const buf1 = bitbox.Script.pubKey.output.encode(pubKey1) + const buf2 = bitbox.Script.pubKey.output.encode(pubKey2) + const buf3 = bitbox.Script.pubKey.output.encode(pubKey3) transactionBuilder.addInput( txid, 0, @@ -393,14 +393,14 @@ describe("#TransactionBuilder", () => { transactionBuilder.DEFAULT_SEQUENCE, buf2 ) - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 3 }, { P2PKH: 3 } ) const sendAmount = originalAmount - byteCount transactionBuilder.addOutput(buf3, sendAmount) - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) - const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + const keyPair1 = bitbox.HDNode.toKeyPair(node1) + const keyPair2 = bitbox.HDNode.toKeyPair(node2) let redeemScript transactionBuilder.sign( 0, @@ -430,15 +430,15 @@ describe("#TransactionBuilder", () => { describe("#Mainnet", () => { fixtures.scripts.p2pkh.toOne.mainnet.forEach(fixture => { it(`should create 1-to-1 P2PKH transaction on mainnet`, () => { - const hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new BITBOX.TransactionBuilder() - const keyPair = BITBOX.HDNode.toKeyPair(hdnode) + const hdnode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new bitbox.TransactionBuilder() + const keyPair = bitbox.HDNode.toKeyPair(hdnode) const txHash = fixture.txHash // original amount of satoshis in vin const originalAmount = fixture.amount transactionBuilder.addInput(txHash, fixture.vout) // get byte count to calculate fee. paying 1 sat/byte - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 1 } ) @@ -467,15 +467,15 @@ describe("#TransactionBuilder", () => { describe("#Testnet", () => { fixtures.scripts.p2pkh.toOne.testnet.forEach(fixture => { it(`should create 1-to-1 P2PKH transaction on testnet`, () => { - const hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv, "testnet") - const transactionBuilder = new BITBOX.TransactionBuilder("testnet") - const keyPair = BITBOX.HDNode.toKeyPair(hdnode) + const hdnode = bitbox.HDNode.fromXPriv(fixture.xpriv, "testnet") + const transactionBuilder = new bitbox.TransactionBuilder("testnet") + const keyPair = bitbox.HDNode.toKeyPair(hdnode) const txHash = fixture.txHash // original amount of satoshis in vin const originalAmount = fixture.amount transactionBuilder.addInput(txHash, fixture.vout) // get byte count to calculate fee. paying 1 sat/byte - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 1 } ) @@ -504,15 +504,15 @@ describe("#TransactionBuilder", () => { describe("#RegTest", () => { fixtures.scripts.p2pkh.toOne.regtest.forEach(fixture => { it(`should create 1-to-1 P2PKH transaction on regtest`, () => { - const hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new BITBOX.TransactionBuilder("regtest") - const keyPair = BITBOX.HDNode.toKeyPair(hdnode) + const hdnode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new bitbox.TransactionBuilder("regtest") + const keyPair = bitbox.HDNode.toKeyPair(hdnode) const txHash = fixture.txHash // original amount of satoshis in vin const originalAmount = fixture.amount transactionBuilder.addInput(txHash, fixture.vout) // get byte count to calculate fee. paying 1 sat/byte - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 1 } ) @@ -543,15 +543,15 @@ describe("#TransactionBuilder", () => { describe("#Mainnet", () => { fixtures.scripts.p2pkh.toMany.mainnet.forEach(fixture => { it(`should create 1-to-2 P2PKH transaction on mainnet`, () => { - const hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new BITBOX.TransactionBuilder() - const keyPair = BITBOX.HDNode.toKeyPair(hdnode) + const hdnode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new bitbox.TransactionBuilder() + const keyPair = bitbox.HDNode.toKeyPair(hdnode) const txHash = fixture.txHash // original amount of satoshis in vin const originalAmount = fixture.amount transactionBuilder.addInput(txHash, fixture.vout) // get byte count to calculate fee. paying 1 sat/byte - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 2 } ) @@ -587,15 +587,15 @@ describe("#TransactionBuilder", () => { fixtures.scripts.p2pkh.toMany.testnet.forEach(fixture => { // TODO pass in tesnet network config it(`should create 1-to-2 P2PKH transaction on testnet`, () => { - const hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new BITBOX.TransactionBuilder("testnet") - const keyPair = BITBOX.HDNode.toKeyPair(hdnode) + const hdnode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new bitbox.TransactionBuilder("testnet") + const keyPair = bitbox.HDNode.toKeyPair(hdnode) const txHash = fixture.txHash // original amount of satoshis in vin const originalAmount = fixture.amount transactionBuilder.addInput(txHash, fixture.vout) // get byte count to calculate fee. paying 1 sat/byte - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 2 } ) @@ -631,15 +631,15 @@ describe("#TransactionBuilder", () => { fixtures.scripts.p2pkh.toMany.regtest.forEach(fixture => { // TODO pass in tesnet network config it(`should create 1-to-2 P2PKH transaction on regtest`, () => { - const hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new BITBOX.TransactionBuilder("regtest") - const keyPair = BITBOX.HDNode.toKeyPair(hdnode) + const hdnode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new bitbox.TransactionBuilder("regtest") + const keyPair = bitbox.HDNode.toKeyPair(hdnode) const txHash = fixture.txHash // original amount of satoshis in vin const originalAmount = fixture.amount transactionBuilder.addInput(txHash, fixture.vout) // get byte count to calculate fee. paying 1 sat/byte - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 2 } ) @@ -676,14 +676,14 @@ describe("#TransactionBuilder", () => { describe("#Mainnet", () => { fixtures.scripts.p2pkh.manyToMany.mainnet.forEach(fixture => { it(`should create 2-to-2 P2PKH transaction on mainnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const transactionBuilder = new BITBOX.TransactionBuilder() + const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder = new bitbox.TransactionBuilder() const txHash = fixture.txHash const originalAmount = fixture.amounts[0] + fixture.amounts[1] transactionBuilder.addInput(txHash, 0) transactionBuilder.addInput(txHash, 1) - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 2 }, { P2PKH: 2 } ) @@ -696,8 +696,8 @@ describe("#TransactionBuilder", () => { fixture.outputs[1], Math.floor(sendAmount / 2) ) - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) - const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + const keyPair1 = bitbox.HDNode.toKeyPair(node1) + const keyPair2 = bitbox.HDNode.toKeyPair(node2) let redeemScript transactionBuilder.sign( 0, @@ -723,14 +723,14 @@ describe("#TransactionBuilder", () => { describe("#Testnet", () => { fixtures.scripts.p2pkh.manyToMany.testnet.forEach(fixture => { it(`should create 2-to-2 P2PKH transaction on testnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder = new bitbox.TransactionBuilder("testnet") const txHash = fixture.txHash const originalAmount = fixture.amounts[0] + fixture.amounts[1] transactionBuilder.addInput(txHash, 0) transactionBuilder.addInput(txHash, 1) - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 2 }, { P2PKH: 2 } ) @@ -743,8 +743,8 @@ describe("#TransactionBuilder", () => { fixture.outputs[1], Math.floor(sendAmount / 2) ) - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) - const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + const keyPair1 = bitbox.HDNode.toKeyPair(node1) + const keyPair2 = bitbox.HDNode.toKeyPair(node2) let redeemScript transactionBuilder.sign( 0, @@ -770,14 +770,14 @@ describe("#TransactionBuilder", () => { describe("#RegTest", () => { fixtures.scripts.p2pkh.manyToMany.regtest.forEach(fixture => { it(`should create 2-to-2 P2PKH transaction on regtest`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const transactionBuilder = new BITBOX.TransactionBuilder("regtest") + const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder = new bitbox.TransactionBuilder("regtest") const txHash = fixture.txHash const originalAmount = fixture.amounts[0] + fixture.amounts[1] transactionBuilder.addInput(txHash, 0) transactionBuilder.addInput(txHash, 1) - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 2 }, { P2PKH: 2 } ) @@ -790,8 +790,8 @@ describe("#TransactionBuilder", () => { fixture.outputs[1], Math.floor(sendAmount / 2) ) - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) - const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + const keyPair1 = bitbox.HDNode.toKeyPair(node1) + const keyPair2 = bitbox.HDNode.toKeyPair(node2) let redeemScript transactionBuilder.sign( 0, @@ -819,21 +819,21 @@ describe("#TransactionBuilder", () => { describe("#Mainnet", () => { fixtures.scripts.p2pkh.fromMany.mainnet.forEach(fixture => { it(`should create 2-to-1 P2PKH transaction on mainnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const transactionBuilder = new BITBOX.TransactionBuilder() + const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder = new bitbox.TransactionBuilder() const txHash = fixture.txHash const originalAmount = fixture.amounts[0] + fixture.amounts[1] transactionBuilder.addInput(txHash, 0) transactionBuilder.addInput(txHash, 1) - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 2 }, { P2PKH: 1 } ) const sendAmount = originalAmount - byteCount transactionBuilder.addOutput(fixture.outputs[0], sendAmount) - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) - const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + const keyPair1 = bitbox.HDNode.toKeyPair(node1) + const keyPair2 = bitbox.HDNode.toKeyPair(node2) let redeemScript transactionBuilder.sign( 0, @@ -859,21 +859,21 @@ describe("#TransactionBuilder", () => { describe("#Testnet", () => { fixtures.scripts.p2pkh.fromMany.testnet.forEach(fixture => { it(`should create 2-to-1 P2PKH transaction on testnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder = new bitbox.TransactionBuilder("testnet") const txHash = fixture.txHash const originalAmount = fixture.amounts[0] + fixture.amounts[1] transactionBuilder.addInput(txHash, 0) transactionBuilder.addInput(txHash, 1) - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 2 }, { P2PKH: 1 } ) const sendAmount = originalAmount - byteCount * 15 transactionBuilder.addOutput(fixture.outputs[0], sendAmount) - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) - const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + const keyPair1 = bitbox.HDNode.toKeyPair(node1) + const keyPair2 = bitbox.HDNode.toKeyPair(node2) let redeemScript transactionBuilder.sign( 0, @@ -899,21 +899,21 @@ describe("#TransactionBuilder", () => { describe("#RegTest", () => { fixtures.scripts.p2pkh.fromMany.regtest.forEach(fixture => { it(`should create 2-to-1 P2PKH transaction on regtest`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const transactionBuilder = new BITBOX.TransactionBuilder("regtest") + const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder = new bitbox.TransactionBuilder("regtest") const txHash = fixture.txHash const originalAmount = fixture.amounts[0] + fixture.amounts[1] transactionBuilder.addInput(txHash, 0) transactionBuilder.addInput(txHash, 1) - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 2 }, { P2PKH: 1 } ) const sendAmount = originalAmount - byteCount * 15 transactionBuilder.addOutput(fixture.outputs[0], sendAmount) - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) - const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + const keyPair1 = bitbox.HDNode.toKeyPair(node1) + const keyPair2 = bitbox.HDNode.toKeyPair(node2) let redeemScript transactionBuilder.sign( 0, @@ -942,23 +942,23 @@ describe("#TransactionBuilder", () => { describe("#Mainnet", () => { fixtures.nulldata.mainnet.forEach(fixture => { it(`should create transaction w/ OP_RETURN output on mainnet`, () => { - const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new BITBOX.TransactionBuilder() + const node = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new bitbox.TransactionBuilder() const txHash = fixture.txHash const originalAmount = fixture.amount transactionBuilder.addInput(txHash, 0) - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 5 } ) const sendAmount = originalAmount - byteCount transactionBuilder.addOutput(fixture.output, sendAmount) const data = fixture.data - const buf = BITBOX.Script.nullData.output.encode( + const buf = bitbox.Script.nullData.output.encode( Buffer.from(data, "ascii") ) transactionBuilder.addOutput(buf, 0) - const keyPair = BITBOX.HDNode.toKeyPair(node) + const keyPair = bitbox.HDNode.toKeyPair(node) let redeemScript transactionBuilder.sign( 0, @@ -977,23 +977,23 @@ describe("#TransactionBuilder", () => { describe("#Testnet", () => { fixtures.nulldata.testnet.forEach(fixture => { it(`should create transaction w/ OP_RETURN output on testnet`, () => { - const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const node = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new bitbox.TransactionBuilder("testnet") const txHash = fixture.txHash const originalAmount = fixture.amount transactionBuilder.addInput(txHash, 0) - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 5 } ) const sendAmount = originalAmount - byteCount transactionBuilder.addOutput(fixture.output, sendAmount) const data = fixture.data - const buf = BITBOX.Script.nullData.output.encode( + const buf = bitbox.Script.nullData.output.encode( Buffer.from(data, "ascii") ) transactionBuilder.addOutput(buf, 0) - const keyPair = BITBOX.HDNode.toKeyPair(node) + const keyPair = bitbox.HDNode.toKeyPair(node) let redeemScript transactionBuilder.sign( 0, @@ -1012,23 +1012,23 @@ describe("#TransactionBuilder", () => { describe("#RegTest", () => { fixtures.nulldata.regtest.forEach(fixture => { it(`should create transaction w/ OP_RETURN output on regtest`, () => { - const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new BITBOX.TransactionBuilder("regtest") + const node = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new bitbox.TransactionBuilder("regtest") const txHash = fixture.txHash const originalAmount = fixture.amount transactionBuilder.addInput(txHash, 0) - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 5 } ) const sendAmount = originalAmount - byteCount transactionBuilder.addOutput(fixture.output, sendAmount) const data = fixture.data - const buf = BITBOX.Script.nullData.output.encode( + const buf = bitbox.Script.nullData.output.encode( Buffer.from(data, "ascii") ) transactionBuilder.addOutput(buf, 0) - const keyPair = BITBOX.HDNode.toKeyPair(node) + const keyPair = bitbox.HDNode.toKeyPair(node) let redeemScript transactionBuilder.sign( 0, @@ -1050,16 +1050,16 @@ describe("#TransactionBuilder", () => { describe("#Mainnet", () => { fixtures.scripts.p2ms.toOne.mainnet.forEach(fixture => { it(`should create 1-to-1 1-of-2 P2MS transaction on mainnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) - const node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]) - const transactionBuilder = new BITBOX.TransactionBuilder() + const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const node4 = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) + const transactionBuilder = new bitbox.TransactionBuilder() const txid = fixture.txHash const originalAmount = fixture.amount - const pubKey1 = BITBOX.HDNode.toPublicKey(node1) - const pubKey2 = BITBOX.HDNode.toPublicKey(node2) - const buf1 = BITBOX.Script.multisig.output.encode(1, [ + const pubKey1 = bitbox.HDNode.toPublicKey(node1) + const pubKey2 = bitbox.HDNode.toPublicKey(node2) + const buf1 = bitbox.Script.multisig.output.encode(1, [ pubKey1, pubKey2 ]) @@ -1069,20 +1069,20 @@ describe("#TransactionBuilder", () => { transactionBuilder.DEFAULT_SEQUENCE, buf1 ) - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 3 }, { P2PKH: 3 } ) - const pubKey3 = BITBOX.HDNode.toPublicKey(node3) - const pubKey4 = BITBOX.HDNode.toPublicKey(node4) - const buf2 = BITBOX.Script.multisig.output.encode(1, [ + const pubKey3 = bitbox.HDNode.toPublicKey(node3) + const pubKey4 = bitbox.HDNode.toPublicKey(node4) + const buf2 = bitbox.Script.multisig.output.encode(1, [ pubKey3, pubKey4 ]) const sendAmount = originalAmount - byteCount transactionBuilder.addOutput(buf2, sendAmount) let redeemScript - const keyPair = BITBOX.HDNode.toKeyPair(node1) + const keyPair = bitbox.HDNode.toKeyPair(node1) transactionBuilder.sign( 0, keyPair, @@ -1100,15 +1100,15 @@ describe("#TransactionBuilder", () => { // describe('#Testnet', () => { // fixtures.scripts.p2ms.toOne.testnet.forEach((fixture) => { // it(`should create 1-to-1 P2MS transaction on testnet`, () => { - // let hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv, 'testnet'); - // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); - // let keyPair = BITBOX.HDNode.toKeyPair(hdnode); + // let hdnode = bitbox.HDNode.fromXPriv(fixture.xpriv, 'testnet'); + // let transactionBuilder = new bitbox.TransactionBuilder('testnet'); + // let keyPair = bitbox.HDNode.toKeyPair(hdnode); // let txHash = fixture.txHash; // // original amount of satoshis in vin // let originalAmount = fixture.amount; // transactionBuilder.addInput(txHash, fixture.vout); // // get byte count to calculate fee. paying 1 sat/byte - // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 1 }); + // let byteCount = bitbox.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 1 }); // // amount to send to receiver. It's the original amount - 1 sat/byte for tx size // let sendAmount = originalAmount - (byteCount * 15); // // add output w/ address and amount to send @@ -1130,18 +1130,18 @@ describe("#TransactionBuilder", () => { describe("#Mainnet", () => { fixtures.scripts.p2ms.toMany.mainnet.forEach(fixture => { it(`should create 1-to-2 P2MS transaction on mainnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) - const node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]) - const node5 = BITBOX.HDNode.fromXPriv(fixture.xprivs[4]) - const node6 = BITBOX.HDNode.fromXPriv(fixture.xprivs[5]) - const transactionBuilder = new BITBOX.TransactionBuilder() + const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const node4 = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) + const node5 = bitbox.HDNode.fromXPriv(fixture.xprivs[4]) + const node6 = bitbox.HDNode.fromXPriv(fixture.xprivs[5]) + const transactionBuilder = new bitbox.TransactionBuilder() const txid = fixture.txHash const originalAmount = fixture.amount - const pubKey1 = BITBOX.HDNode.toPublicKey(node1) - const pubKey2 = BITBOX.HDNode.toPublicKey(node2) - const buf1 = BITBOX.Script.multisig.output.encode(1, [ + const pubKey1 = bitbox.HDNode.toPublicKey(node1) + const pubKey2 = bitbox.HDNode.toPublicKey(node2) + const buf1 = bitbox.Script.multisig.output.encode(1, [ pubKey1, pubKey2 ]) @@ -1151,27 +1151,27 @@ describe("#TransactionBuilder", () => { transactionBuilder.DEFAULT_SEQUENCE, buf1 ) - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 3 }, { P2PKH: 3 } ) const sendAmount = originalAmount - byteCount - const pubKey3 = BITBOX.HDNode.toPublicKey(node3) - const pubKey4 = BITBOX.HDNode.toPublicKey(node4) - const buf2 = BITBOX.Script.multisig.output.encode(1, [ + const pubKey3 = bitbox.HDNode.toPublicKey(node3) + const pubKey4 = bitbox.HDNode.toPublicKey(node4) + const buf2 = bitbox.Script.multisig.output.encode(1, [ pubKey3, pubKey4 ]) transactionBuilder.addOutput(buf2, Math.floor(sendAmount / 2)) - const pubKey5 = BITBOX.HDNode.toPublicKey(node5) - const pubKey6 = BITBOX.HDNode.toPublicKey(node6) - const buf3 = BITBOX.Script.multisig.output.encode(1, [ + const pubKey5 = bitbox.HDNode.toPublicKey(node5) + const pubKey6 = bitbox.HDNode.toPublicKey(node6) + const buf3 = bitbox.Script.multisig.output.encode(1, [ pubKey5, pubKey6 ]) transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) let redeemScript - const keyPair = BITBOX.HDNode.toKeyPair(node1) + const keyPair = bitbox.HDNode.toKeyPair(node1) transactionBuilder.sign( 0, keyPair, @@ -1190,15 +1190,15 @@ describe("#TransactionBuilder", () => { // fixtures.scripts.p2ms.toMany.testnet.forEach((fixture) => { // // TODO pass in tesnet network config // it(`should create 1-to-2 P2MS transaction on testnet`, () => { - // let hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv); - // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); - // let keyPair = BITBOX.HDNode.toKeyPair(hdnode); + // let hdnode = bitbox.HDNode.fromXPriv(fixture.xpriv); + // let transactionBuilder = new bitbox.TransactionBuilder('testnet'); + // let keyPair = bitbox.HDNode.toKeyPair(hdnode); // let txHash = fixture.txHash; // // original amount of satoshis in vin // let originalAmount = fixture.amount; // transactionBuilder.addInput(txHash, fixture.vout); // // get byte count to calculate fee. paying 1 sat/byte - // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 2 }); + // let byteCount = bitbox.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 2 }); // // amount to send to receiver. It's the original amount - 1 sat/byte for tx size // let sendAmount = originalAmount - (byteCount * 15); // // add output w/ address and amount to send @@ -1220,20 +1220,20 @@ describe("#TransactionBuilder", () => { describe("#Mainnet", () => { fixtures.scripts.p2ms.manyToMany.mainnet.forEach(fixture => { it(`should create 2-to-2 P2MS transaction on mainnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) - const node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]) - const node5 = BITBOX.HDNode.fromXPriv(fixture.xprivs[4]) - const node6 = BITBOX.HDNode.fromXPriv(fixture.xprivs[5]) - const node7 = BITBOX.HDNode.fromXPriv(fixture.xprivs[6]) - const node8 = BITBOX.HDNode.fromXPriv(fixture.xprivs[7]) - const transactionBuilder = new BITBOX.TransactionBuilder() + const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const node4 = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) + const node5 = bitbox.HDNode.fromXPriv(fixture.xprivs[4]) + const node6 = bitbox.HDNode.fromXPriv(fixture.xprivs[5]) + const node7 = bitbox.HDNode.fromXPriv(fixture.xprivs[6]) + const node8 = bitbox.HDNode.fromXPriv(fixture.xprivs[7]) + const transactionBuilder = new bitbox.TransactionBuilder() const txid = fixture.txHash const originalAmount = fixture.amount - const pubKey1 = BITBOX.HDNode.toPublicKey(node1) - const pubKey2 = BITBOX.HDNode.toPublicKey(node2) - const buf1 = BITBOX.Script.multisig.output.encode(1, [ + const pubKey1 = bitbox.HDNode.toPublicKey(node1) + const pubKey2 = bitbox.HDNode.toPublicKey(node2) + const buf1 = bitbox.Script.multisig.output.encode(1, [ pubKey1, pubKey2 ]) @@ -1243,9 +1243,9 @@ describe("#TransactionBuilder", () => { transactionBuilder.DEFAULT_SEQUENCE, buf1 ) - const pubKey3 = BITBOX.HDNode.toPublicKey(node3) - const pubKey4 = BITBOX.HDNode.toPublicKey(node4) - const buf2 = BITBOX.Script.multisig.output.encode(1, [ + const pubKey3 = bitbox.HDNode.toPublicKey(node3) + const pubKey4 = bitbox.HDNode.toPublicKey(node4) + const buf2 = bitbox.Script.multisig.output.encode(1, [ pubKey3, pubKey4 ]) @@ -1255,28 +1255,28 @@ describe("#TransactionBuilder", () => { transactionBuilder.DEFAULT_SEQUENCE, buf2 ) - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 3 }, { P2PKH: 3 } ) const sendAmount = originalAmount - byteCount - const pubKey5 = BITBOX.HDNode.toPublicKey(node5) - const pubKey6 = BITBOX.HDNode.toPublicKey(node6) - const buf3 = BITBOX.Script.multisig.output.encode(1, [ + const pubKey5 = bitbox.HDNode.toPublicKey(node5) + const pubKey6 = bitbox.HDNode.toPublicKey(node6) + const buf3 = bitbox.Script.multisig.output.encode(1, [ pubKey5, pubKey6 ]) transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) - const pubKey7 = BITBOX.HDNode.toPublicKey(node7) - const pubKey8 = BITBOX.HDNode.toPublicKey(node8) - const buf4 = BITBOX.Script.multisig.output.encode(1, [ + const pubKey7 = bitbox.HDNode.toPublicKey(node7) + const pubKey8 = bitbox.HDNode.toPublicKey(node8) + const buf4 = bitbox.Script.multisig.output.encode(1, [ pubKey7, pubKey8 ]) transactionBuilder.addOutput(buf4, Math.floor(sendAmount / 2)) let redeemScript - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) - const keyPair2 = BITBOX.HDNode.toKeyPair(node3) + const keyPair1 = bitbox.HDNode.toKeyPair(node1) + const keyPair2 = bitbox.HDNode.toKeyPair(node3) transactionBuilder.sign( 0, keyPair1, @@ -1301,19 +1301,19 @@ describe("#TransactionBuilder", () => { // describe('#Testnet', () => { // fixtures.scripts.p2ms.manyToMany.testnet.forEach((fixture) => { // it(`should create 2-to-2 P2MS transaction on testnet`, () => { - // let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); - // let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); - // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); + // let node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]); + // let node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]); + // let transactionBuilder = new bitbox.TransactionBuilder('testnet'); // let txHash = fixture.txHash; // let originalAmount = fixture.amounts[0] + fixture.amounts[1]; // transactionBuilder.addInput(txHash, 0); // transactionBuilder.addInput(txHash, 1); - // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 2 }); + // let byteCount = bitbox.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 2 }); // let sendAmount = originalAmount - (byteCount * 15); // transactionBuilder.addOutput(fixture.outputs[0], Math.floor(sendAmount / 2)); // transactionBuilder.addOutput(fixture.outputs[1], Math.floor(sendAmount / 2)); - // let keyPair1 = BITBOX.HDNode.toKeyPair(node1); - // let keyPair2 = BITBOX.HDNode.toKeyPair(node2); + // let keyPair1 = bitbox.HDNode.toKeyPair(node1); + // let keyPair2 = bitbox.HDNode.toKeyPair(node2); // let redeemScript; // transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); // transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); @@ -1329,18 +1329,18 @@ describe("#TransactionBuilder", () => { describe("#Mainnet", () => { fixtures.scripts.p2ms.fromMany.mainnet.forEach(fixture => { it(`should create 2-to-1 P2MS transaction on mainnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) - const node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]) - const node5 = BITBOX.HDNode.fromXPriv(fixture.xprivs[4]) - const node6 = BITBOX.HDNode.fromXPriv(fixture.xprivs[5]) - const transactionBuilder = new BITBOX.TransactionBuilder() + const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const node4 = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) + const node5 = bitbox.HDNode.fromXPriv(fixture.xprivs[4]) + const node6 = bitbox.HDNode.fromXPriv(fixture.xprivs[5]) + const transactionBuilder = new bitbox.TransactionBuilder() const txid = fixture.txHash const originalAmount = fixture.amount - const pubKey1 = BITBOX.HDNode.toPublicKey(node1) - const pubKey2 = BITBOX.HDNode.toPublicKey(node2) - const buf1 = BITBOX.Script.multisig.output.encode(1, [ + const pubKey1 = bitbox.HDNode.toPublicKey(node1) + const pubKey2 = bitbox.HDNode.toPublicKey(node2) + const buf1 = bitbox.Script.multisig.output.encode(1, [ pubKey1, pubKey2 ]) @@ -1350,9 +1350,9 @@ describe("#TransactionBuilder", () => { transactionBuilder.DEFAULT_SEQUENCE, buf1 ) - const pubKey3 = BITBOX.HDNode.toPublicKey(node3) - const pubKey4 = BITBOX.HDNode.toPublicKey(node4) - const buf2 = BITBOX.Script.multisig.output.encode(1, [ + const pubKey3 = bitbox.HDNode.toPublicKey(node3) + const pubKey4 = bitbox.HDNode.toPublicKey(node4) + const buf2 = bitbox.Script.multisig.output.encode(1, [ pubKey3, pubKey4 ]) @@ -1362,21 +1362,21 @@ describe("#TransactionBuilder", () => { transactionBuilder.DEFAULT_SEQUENCE, buf2 ) - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 3 }, { P2PKH: 3 } ) const sendAmount = originalAmount - byteCount - const pubKey5 = BITBOX.HDNode.toPublicKey(node5) - const pubKey6 = BITBOX.HDNode.toPublicKey(node6) - const buf3 = BITBOX.Script.multisig.output.encode(1, [ + const pubKey5 = bitbox.HDNode.toPublicKey(node5) + const pubKey6 = bitbox.HDNode.toPublicKey(node6) + const buf3 = bitbox.Script.multisig.output.encode(1, [ pubKey5, pubKey6 ]) transactionBuilder.addOutput(buf3, sendAmount) let redeemScript - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) - const keyPair2 = BITBOX.HDNode.toKeyPair(node3) + const keyPair1 = bitbox.HDNode.toKeyPair(node1) + const keyPair2 = bitbox.HDNode.toKeyPair(node3) transactionBuilder.sign( 0, keyPair1, @@ -1401,18 +1401,18 @@ describe("#TransactionBuilder", () => { // describe('#Testnet', () => { // fixtures.scripts.p2ms.fromMany.testnet.forEach((fixture) => { // it(`should create 2-to-1 P2MS transaction on testnet`, () => { - // let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); - // let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); - // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); + // let node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]); + // let node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]); + // let transactionBuilder = new bitbox.TransactionBuilder('testnet'); // let txHash = fixture.txHash; // let originalAmount = fixture.amounts[0] + fixture.amounts[1]; // transactionBuilder.addInput(txHash, 0); // transactionBuilder.addInput(txHash, 1); - // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 1 }); + // let byteCount = bitbox.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 1 }); // let sendAmount = originalAmount - (byteCount * 15); // transactionBuilder.addOutput(fixture.outputs[0], sendAmount); - // let keyPair1 = BITBOX.HDNode.toKeyPair(node1); - // let keyPair2 = BITBOX.HDNode.toKeyPair(node2); + // let keyPair1 = bitbox.HDNode.toKeyPair(node1); + // let keyPair2 = bitbox.HDNode.toKeyPair(node2); // let redeemScript; // transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); // transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); @@ -1430,45 +1430,45 @@ describe("#TransactionBuilder", () => { describe("#Mainnet", () => { fixtures.scripts.p2sh.toOne.mainnet.forEach(fixture => { it(`should create 1-to-1 P2SH transaction on mainnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const transactionBuilder = new BITBOX.TransactionBuilder() + const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder = new bitbox.TransactionBuilder() const txid = fixture.txHash const originalAmount = fixture.amount - const identifier1 = BITBOX.HDNode.toIdentifier(node1) - const buf1 = BITBOX.Script.encode([ - BITBOX.Script.opcodes.OP_DUP, - BITBOX.Script.opcodes.OP_HASH160, + const identifier1 = bitbox.HDNode.toIdentifier(node1) + const buf1 = bitbox.Script.encode([ + bitbox.Script.opcodes.OP_DUP, + bitbox.Script.opcodes.OP_HASH160, identifier1, - BITBOX.Script.opcodes.OP_EQUALVERIFY, - BITBOX.Script.opcodes.OP_CHECKSIG + bitbox.Script.opcodes.OP_EQUALVERIFY, + bitbox.Script.opcodes.OP_CHECKSIG ]) - const scriptHash1 = BITBOX.Crypto.hash160(buf1) - const data1 = BITBOX.Script.scriptHash.output.encode(scriptHash1) + const scriptHash1 = bitbox.Crypto.hash160(buf1) + const data1 = bitbox.Script.scriptHash.output.encode(scriptHash1) transactionBuilder.addInput( txid, 0, transactionBuilder.DEFAULT_SEQUENCE, data1 ) - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 2 }, { P2PKH: 1 } ) const sendAmount = originalAmount - byteCount - const identifier2 = BITBOX.HDNode.toIdentifier(node2) - const buf2 = BITBOX.Script.encode([ - BITBOX.Script.opcodes.OP_DUP, - BITBOX.Script.opcodes.OP_HASH160, + const identifier2 = bitbox.HDNode.toIdentifier(node2) + const buf2 = bitbox.Script.encode([ + bitbox.Script.opcodes.OP_DUP, + bitbox.Script.opcodes.OP_HASH160, identifier2, - BITBOX.Script.opcodes.OP_EQUALVERIFY, - BITBOX.Script.opcodes.OP_CHECKSIG + bitbox.Script.opcodes.OP_EQUALVERIFY, + bitbox.Script.opcodes.OP_CHECKSIG ]) - const scriptHash2 = BITBOX.Crypto.hash160(buf2) - const data2 = BITBOX.Script.scriptHash.output.encode(scriptHash2) + const scriptHash2 = bitbox.Crypto.hash160(buf2) + const data2 = bitbox.Script.scriptHash.output.encode(scriptHash2) transactionBuilder.addOutput(data2, sendAmount) - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + const keyPair1 = bitbox.HDNode.toKeyPair(node1) transactionBuilder.sign( 0, keyPair1, @@ -1486,15 +1486,15 @@ describe("#TransactionBuilder", () => { // describe('#Testnet', () => { // fixtures.scripts.p2sh.toOne.testnet.forEach((fixture) => { // it(`should create 1-to-1 P2SH transaction on testnet`, () => { - // let hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv, 'testnet'); - // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); - // let keyPair = BITBOX.HDNode.toKeyPair(hdnode); + // let hdnode = bitbox.HDNode.fromXPriv(fixture.xpriv, 'testnet'); + // let transactionBuilder = new bitbox.TransactionBuilder('testnet'); + // let keyPair = bitbox.HDNode.toKeyPair(hdnode); // let txHash = fixture.txHash; // // original amount of satoshis in vin // let originalAmount = fixture.amount; // transactionBuilder.addInput(txHash, fixture.vout); // // get byte count to calculate fee. paying 1 sat/byte - // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 1 }); + // let byteCount = bitbox.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 1 }); // // amount to send to receiver. It's the original amount - 1 sat/byte for tx size // let sendAmount = originalAmount - (byteCount * 15); // // add output w/ address and amount to send @@ -1516,56 +1516,56 @@ describe("#TransactionBuilder", () => { describe("#Mainnet", () => { fixtures.scripts.p2sh.toMany.mainnet.forEach(fixture => { it(`should create 1-to-2 P2SH transaction on mainnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) - const transactionBuilder = new BITBOX.TransactionBuilder() + const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const transactionBuilder = new bitbox.TransactionBuilder() const txid = fixture.txHash const originalAmount = fixture.amount - const identifier1 = BITBOX.HDNode.toIdentifier(node1) - const buf1 = BITBOX.Script.encode([ - BITBOX.Script.opcodes.OP_DUP, - BITBOX.Script.opcodes.OP_HASH160, + const identifier1 = bitbox.HDNode.toIdentifier(node1) + const buf1 = bitbox.Script.encode([ + bitbox.Script.opcodes.OP_DUP, + bitbox.Script.opcodes.OP_HASH160, identifier1, - BITBOX.Script.opcodes.OP_EQUALVERIFY, - BITBOX.Script.opcodes.OP_CHECKSIG + bitbox.Script.opcodes.OP_EQUALVERIFY, + bitbox.Script.opcodes.OP_CHECKSIG ]) - const scriptHash1 = BITBOX.Crypto.hash160(buf1) - const data1 = BITBOX.Script.scriptHash.output.encode(scriptHash1) + const scriptHash1 = bitbox.Crypto.hash160(buf1) + const data1 = bitbox.Script.scriptHash.output.encode(scriptHash1) transactionBuilder.addInput( txid, 0, transactionBuilder.DEFAULT_SEQUENCE, data1 ) - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 3 }, { P2PKH: 2 } ) const sendAmount = originalAmount - byteCount - const identifier2 = BITBOX.HDNode.toIdentifier(node2) - const buf2 = BITBOX.Script.encode([ - BITBOX.Script.opcodes.OP_DUP, - BITBOX.Script.opcodes.OP_HASH160, + const identifier2 = bitbox.HDNode.toIdentifier(node2) + const buf2 = bitbox.Script.encode([ + bitbox.Script.opcodes.OP_DUP, + bitbox.Script.opcodes.OP_HASH160, identifier2, - BITBOX.Script.opcodes.OP_EQUALVERIFY, - BITBOX.Script.opcodes.OP_CHECKSIG + bitbox.Script.opcodes.OP_EQUALVERIFY, + bitbox.Script.opcodes.OP_CHECKSIG ]) - const scriptHash2 = BITBOX.Crypto.hash160(buf2) - const data2 = BITBOX.Script.scriptHash.output.encode(scriptHash2) + const scriptHash2 = bitbox.Crypto.hash160(buf2) + const data2 = bitbox.Script.scriptHash.output.encode(scriptHash2) transactionBuilder.addOutput(data2, Math.floor(sendAmount / 2)) - const identifier3 = BITBOX.HDNode.toIdentifier(node3) - const buf3 = BITBOX.Script.encode([ - BITBOX.Script.opcodes.OP_DUP, - BITBOX.Script.opcodes.OP_HASH160, + const identifier3 = bitbox.HDNode.toIdentifier(node3) + const buf3 = bitbox.Script.encode([ + bitbox.Script.opcodes.OP_DUP, + bitbox.Script.opcodes.OP_HASH160, identifier3, - BITBOX.Script.opcodes.OP_EQUALVERIFY, - BITBOX.Script.opcodes.OP_CHECKSIG + bitbox.Script.opcodes.OP_EQUALVERIFY, + bitbox.Script.opcodes.OP_CHECKSIG ]) - const scriptHash3 = BITBOX.Crypto.hash160(buf3) - const data3 = BITBOX.Script.scriptHash.output.encode(scriptHash3) + const scriptHash3 = bitbox.Crypto.hash160(buf3) + const data3 = bitbox.Script.scriptHash.output.encode(scriptHash3) transactionBuilder.addOutput(data3, Math.floor(sendAmount / 2)) - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) + const keyPair1 = bitbox.HDNode.toKeyPair(node1) transactionBuilder.sign( 0, keyPair1, @@ -1584,15 +1584,15 @@ describe("#TransactionBuilder", () => { // fixtures.scripts.p2sh.toMany.testnet.forEach((fixture) => { // // TODO pass in tesnet network config // it(`should create 1-to-2 P2SH transaction on testnet`, () => { - // let hdnode = BITBOX.HDNode.fromXPriv(fixture.xpriv); - // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); - // let keyPair = BITBOX.HDNode.toKeyPair(hdnode); + // let hdnode = bitbox.HDNode.fromXPriv(fixture.xpriv); + // let transactionBuilder = new bitbox.TransactionBuilder('testnet'); + // let keyPair = bitbox.HDNode.toKeyPair(hdnode); // let txHash = fixture.txHash; // // original amount of satoshis in vin // let originalAmount = fixture.amount; // transactionBuilder.addInput(txHash, fixture.vout); // // get byte count to calculate fee. paying 1 sat/byte - // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 2 }); + // let byteCount = bitbox.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 2 }); // // amount to send to receiver. It's the original amount - 1 sat/byte for tx size // let sendAmount = originalAmount - (byteCount * 15); // // add output w/ address and amount to send @@ -1614,74 +1614,74 @@ describe("#TransactionBuilder", () => { describe("#Mainnet", () => { fixtures.scripts.p2sh.manyToMany.mainnet.forEach(fixture => { it(`should create 2-to-2 P2SH transaction on mainnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) - const node4 = BITBOX.HDNode.fromXPriv(fixture.xprivs[3]) - const transactionBuilder = new BITBOX.TransactionBuilder() + const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const node4 = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) + const transactionBuilder = new bitbox.TransactionBuilder() const txid = fixture.txHash const originalAmount = fixture.amount - const identifier1 = BITBOX.HDNode.toIdentifier(node1) - const buf1 = BITBOX.Script.encode([ - BITBOX.Script.opcodes.OP_DUP, - BITBOX.Script.opcodes.OP_HASH160, + const identifier1 = bitbox.HDNode.toIdentifier(node1) + const buf1 = bitbox.Script.encode([ + bitbox.Script.opcodes.OP_DUP, + bitbox.Script.opcodes.OP_HASH160, identifier1, - BITBOX.Script.opcodes.OP_EQUALVERIFY, - BITBOX.Script.opcodes.OP_CHECKSIG + bitbox.Script.opcodes.OP_EQUALVERIFY, + bitbox.Script.opcodes.OP_CHECKSIG ]) - const scriptHash1 = BITBOX.Crypto.hash160(buf1) - const data1 = BITBOX.Script.scriptHash.output.encode(scriptHash1) + const scriptHash1 = bitbox.Crypto.hash160(buf1) + const data1 = bitbox.Script.scriptHash.output.encode(scriptHash1) transactionBuilder.addInput( txid, 0, transactionBuilder.DEFAULT_SEQUENCE, data1 ) - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 5 }, { P2PKH: 5 } ) const sendAmount = originalAmount - byteCount - const identifier2 = BITBOX.HDNode.toIdentifier(node2) - const buf2 = BITBOX.Script.encode([ - BITBOX.Script.opcodes.OP_DUP, - BITBOX.Script.opcodes.OP_HASH160, + const identifier2 = bitbox.HDNode.toIdentifier(node2) + const buf2 = bitbox.Script.encode([ + bitbox.Script.opcodes.OP_DUP, + bitbox.Script.opcodes.OP_HASH160, identifier2, - BITBOX.Script.opcodes.OP_EQUALVERIFY, - BITBOX.Script.opcodes.OP_CHECKSIG + bitbox.Script.opcodes.OP_EQUALVERIFY, + bitbox.Script.opcodes.OP_CHECKSIG ]) - const scriptHash2 = BITBOX.Crypto.hash160(buf2) - const data2 = BITBOX.Script.scriptHash.output.encode(scriptHash2) + const scriptHash2 = bitbox.Crypto.hash160(buf2) + const data2 = bitbox.Script.scriptHash.output.encode(scriptHash2) transactionBuilder.addInput( txid, 1, transactionBuilder.DEFAULT_SEQUENCE, data2 ) - const identifier3 = BITBOX.HDNode.toIdentifier(node3) - const buf3 = BITBOX.Script.encode([ - BITBOX.Script.opcodes.OP_DUP, - BITBOX.Script.opcodes.OP_HASH160, + const identifier3 = bitbox.HDNode.toIdentifier(node3) + const buf3 = bitbox.Script.encode([ + bitbox.Script.opcodes.OP_DUP, + bitbox.Script.opcodes.OP_HASH160, identifier3, - BITBOX.Script.opcodes.OP_EQUALVERIFY, - BITBOX.Script.opcodes.OP_CHECKSIG + bitbox.Script.opcodes.OP_EQUALVERIFY, + bitbox.Script.opcodes.OP_CHECKSIG ]) - const scriptHash3 = BITBOX.Crypto.hash160(buf3) - const data3 = BITBOX.Script.scriptHash.output.encode(scriptHash3) + const scriptHash3 = bitbox.Crypto.hash160(buf3) + const data3 = bitbox.Script.scriptHash.output.encode(scriptHash3) transactionBuilder.addOutput(data3, Math.floor(sendAmount / 2)) - const identifier4 = BITBOX.HDNode.toIdentifier(node4) - const buf4 = BITBOX.Script.encode([ - BITBOX.Script.opcodes.OP_DUP, - BITBOX.Script.opcodes.OP_HASH160, + const identifier4 = bitbox.HDNode.toIdentifier(node4) + const buf4 = bitbox.Script.encode([ + bitbox.Script.opcodes.OP_DUP, + bitbox.Script.opcodes.OP_HASH160, identifier4, - BITBOX.Script.opcodes.OP_EQUALVERIFY, - BITBOX.Script.opcodes.OP_CHECKSIG + bitbox.Script.opcodes.OP_EQUALVERIFY, + bitbox.Script.opcodes.OP_CHECKSIG ]) - const scriptHash4 = BITBOX.Crypto.hash160(buf4) - const data4 = BITBOX.Script.scriptHash.output.encode(scriptHash4) + const scriptHash4 = bitbox.Crypto.hash160(buf4) + const data4 = bitbox.Script.scriptHash.output.encode(scriptHash4) transactionBuilder.addOutput(data4, Math.floor(sendAmount / 2)) - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) - const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + const keyPair1 = bitbox.HDNode.toKeyPair(node1) + const keyPair2 = bitbox.HDNode.toKeyPair(node2) transactionBuilder.sign( 0, keyPair1, @@ -1706,19 +1706,19 @@ describe("#TransactionBuilder", () => { // describe('#Testnet', () => { // fixtures.scripts.p2sh.manyToMany.testnet.forEach((fixture) => { // it(`should create 2-to-2 P2SH transaction on testnet`, () => { - // let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); - // let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); - // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); + // let node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]); + // let node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]); + // let transactionBuilder = new bitbox.TransactionBuilder('testnet'); // let txHash = fixture.txHash; // let originalAmount = fixture.amounts[0] + fixture.amounts[1]; // transactionBuilder.addInput(txHash, 0); // transactionBuilder.addInput(txHash, 1); - // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 2 }); + // let byteCount = bitbox.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 2 }); // let sendAmount = originalAmount - (byteCount * 15); // transactionBuilder.addOutput(fixture.outputs[0], Math.floor(sendAmount / 2)); // transactionBuilder.addOutput(fixture.outputs[1], Math.floor(sendAmount / 2)); - // let keyPair1 = BITBOX.HDNode.toKeyPair(node1); - // let keyPair2 = BITBOX.HDNode.toKeyPair(node2); + // let keyPair1 = bitbox.HDNode.toKeyPair(node1); + // let keyPair2 = bitbox.HDNode.toKeyPair(node2); // let redeemScript; // transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); // transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); @@ -1734,62 +1734,62 @@ describe("#TransactionBuilder", () => { describe("#Mainnet", () => { fixtures.scripts.p2sh.fromMany.mainnet.forEach(fixture => { it(`should create 2-to-1 P2SH transaction on mainnet`, () => { - const node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = BITBOX.HDNode.fromXPriv(fixture.xprivs[2]) - const transactionBuilder = new BITBOX.TransactionBuilder() + const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3 = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const transactionBuilder = new bitbox.TransactionBuilder() const txid = fixture.txHash const originalAmount = fixture.amount - const identifier1 = BITBOX.HDNode.toIdentifier(node1) - const buf1 = BITBOX.Script.encode([ - BITBOX.Script.opcodes.OP_DUP, - BITBOX.Script.opcodes.OP_HASH160, + const identifier1 = bitbox.HDNode.toIdentifier(node1) + const buf1 = bitbox.Script.encode([ + bitbox.Script.opcodes.OP_DUP, + bitbox.Script.opcodes.OP_HASH160, identifier1, - BITBOX.Script.opcodes.OP_EQUALVERIFY, - BITBOX.Script.opcodes.OP_CHECKSIG + bitbox.Script.opcodes.OP_EQUALVERIFY, + bitbox.Script.opcodes.OP_CHECKSIG ]) - const scriptHash1 = BITBOX.Crypto.hash160(buf1) - const data1 = BITBOX.Script.scriptHash.output.encode(scriptHash1) + const scriptHash1 = bitbox.Crypto.hash160(buf1) + const data1 = bitbox.Script.scriptHash.output.encode(scriptHash1) transactionBuilder.addInput( txid, 0, transactionBuilder.DEFAULT_SEQUENCE, data1 ) - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 3 }, { P2PKH: 2 } ) const sendAmount = originalAmount - byteCount - const identifier2 = BITBOX.HDNode.toIdentifier(node2) - const buf2 = BITBOX.Script.encode([ - BITBOX.Script.opcodes.OP_DUP, - BITBOX.Script.opcodes.OP_HASH160, + const identifier2 = bitbox.HDNode.toIdentifier(node2) + const buf2 = bitbox.Script.encode([ + bitbox.Script.opcodes.OP_DUP, + bitbox.Script.opcodes.OP_HASH160, identifier2, - BITBOX.Script.opcodes.OP_EQUALVERIFY, - BITBOX.Script.opcodes.OP_CHECKSIG + bitbox.Script.opcodes.OP_EQUALVERIFY, + bitbox.Script.opcodes.OP_CHECKSIG ]) - const scriptHash2 = BITBOX.Crypto.hash160(buf2) - const data2 = BITBOX.Script.scriptHash.output.encode(scriptHash2) + const scriptHash2 = bitbox.Crypto.hash160(buf2) + const data2 = bitbox.Script.scriptHash.output.encode(scriptHash2) transactionBuilder.addInput( txid, 1, transactionBuilder.DEFAULT_SEQUENCE, data2 ) - const identifier3 = BITBOX.HDNode.toIdentifier(node3) - const buf3 = BITBOX.Script.encode([ - BITBOX.Script.opcodes.OP_DUP, - BITBOX.Script.opcodes.OP_HASH160, + const identifier3 = bitbox.HDNode.toIdentifier(node3) + const buf3 = bitbox.Script.encode([ + bitbox.Script.opcodes.OP_DUP, + bitbox.Script.opcodes.OP_HASH160, identifier3, - BITBOX.Script.opcodes.OP_EQUALVERIFY, - BITBOX.Script.opcodes.OP_CHECKSIG + bitbox.Script.opcodes.OP_EQUALVERIFY, + bitbox.Script.opcodes.OP_CHECKSIG ]) - const scriptHash3 = BITBOX.Crypto.hash160(buf3) - const data3 = BITBOX.Script.scriptHash.output.encode(scriptHash3) + const scriptHash3 = bitbox.Crypto.hash160(buf3) + const data3 = bitbox.Script.scriptHash.output.encode(scriptHash3) transactionBuilder.addOutput(data3, sendAmount) - const keyPair1 = BITBOX.HDNode.toKeyPair(node1) - const keyPair2 = BITBOX.HDNode.toKeyPair(node2) + const keyPair1 = bitbox.HDNode.toKeyPair(node1) + const keyPair2 = bitbox.HDNode.toKeyPair(node2) transactionBuilder.sign( 0, keyPair1, @@ -1814,18 +1814,18 @@ describe("#TransactionBuilder", () => { // describe('#Testnet', () => { // fixtures.scripts.p2sh.fromMany.testnet.forEach((fixture) => { // it(`should create 2-to-1 P2SH transaction on testnet`, () => { - // let node1 = BITBOX.HDNode.fromXPriv(fixture.xprivs[0]); - // let node2 = BITBOX.HDNode.fromXPriv(fixture.xprivs[1]); - // let transactionBuilder = new BITBOX.TransactionBuilder('testnet'); + // let node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]); + // let node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]); + // let transactionBuilder = new bitbox.TransactionBuilder('testnet'); // let txHash = fixture.txHash; // let originalAmount = fixture.amounts[0] + fixture.amounts[1]; // transactionBuilder.addInput(txHash, 0); // transactionBuilder.addInput(txHash, 1); - // let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 1 }); + // let byteCount = bitbox.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 1 }); // let sendAmount = originalAmount - (byteCount * 15); // transactionBuilder.addOutput(fixture.outputs[0], sendAmount); - // let keyPair1 = BITBOX.HDNode.toKeyPair(node1); - // let keyPair2 = BITBOX.HDNode.toKeyPair(node2); + // let keyPair1 = bitbox.HDNode.toKeyPair(node1); + // let keyPair2 = bitbox.HDNode.toKeyPair(node2); // let redeemScript; // transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); // transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); @@ -1842,23 +1842,23 @@ describe("#TransactionBuilder", () => { describe("#Mainnet", () => { fixtures.nulldata.mainnet.forEach(fixture => { it(`should create transaction w/ OP_RETURN output on mainnet`, () => { - const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new BITBOX.TransactionBuilder() + const node = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new bitbox.TransactionBuilder() const txHash = fixture.txHash const originalAmount = fixture.amount transactionBuilder.addInput(txHash, 0) - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 5 } ) const sendAmount = originalAmount - byteCount transactionBuilder.addOutput(fixture.output, sendAmount) const data = fixture.data - const buf = BITBOX.Script.nullData.output.encode( + const buf = bitbox.Script.nullData.output.encode( Buffer.from(data, "ascii") ) transactionBuilder.addOutput(buf, 0) - const keyPair = BITBOX.HDNode.toKeyPair(node) + const keyPair = bitbox.HDNode.toKeyPair(node) let redeemScript transactionBuilder.sign( 0, @@ -1877,23 +1877,23 @@ describe("#TransactionBuilder", () => { describe("#Testnet", () => { fixtures.nulldata.testnet.forEach(fixture => { it(`should create transaction w/ OP_RETURN output on testnet`, () => { - const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new BITBOX.TransactionBuilder("testnet") + const node = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new bitbox.TransactionBuilder("testnet") const txHash = fixture.txHash const originalAmount = fixture.amount transactionBuilder.addInput(txHash, 0) - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 5 } ) const sendAmount = originalAmount - byteCount transactionBuilder.addOutput(fixture.output, sendAmount) const data = fixture.data - const buf = BITBOX.Script.nullData.output.encode( + const buf = bitbox.Script.nullData.output.encode( Buffer.from(data, "ascii") ) transactionBuilder.addOutput(buf, 0) - const keyPair = BITBOX.HDNode.toKeyPair(node) + const keyPair = bitbox.HDNode.toKeyPair(node) let redeemScript transactionBuilder.sign( 0, @@ -1912,23 +1912,23 @@ describe("#TransactionBuilder", () => { describe("#RegTest", () => { fixtures.nulldata.regtest.forEach(fixture => { it(`should create transaction w/ OP_RETURN output on regtest`, () => { - const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new BITBOX.TransactionBuilder("regtest") + const node = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new bitbox.TransactionBuilder("regtest") const txHash = fixture.txHash const originalAmount = fixture.amount transactionBuilder.addInput(txHash, 0) - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 5 } ) const sendAmount = originalAmount - byteCount transactionBuilder.addOutput(fixture.output, sendAmount) const data = fixture.data - const buf = BITBOX.Script.nullData.output.encode( + const buf = bitbox.Script.nullData.output.encode( Buffer.from(data, "ascii") ) transactionBuilder.addOutput(buf, 0) - const keyPair = BITBOX.HDNode.toKeyPair(node) + const keyPair = bitbox.HDNode.toKeyPair(node) let redeemScript transactionBuilder.sign( 0, @@ -1948,7 +1948,7 @@ describe("#TransactionBuilder", () => { describe("#bip66", () => { fixtures.bip66.forEach(fixture => { it(`should bip66 encode as ${fixture.DER}`, () => { - const transactionBuilder = new BITBOX.TransactionBuilder() + const transactionBuilder = new bitbox.TransactionBuilder() const r = Buffer.from(fixture.r, "hex") const s = Buffer.from(fixture.s, "hex") const DER = transactionBuilder.bip66.encode(r, s) @@ -1958,7 +1958,7 @@ describe("#TransactionBuilder", () => { fixtures.bip66.forEach(fixture => { it(`should bip66 decode ${fixture.DER}`, () => { - const transactionBuilder = new BITBOX.TransactionBuilder() + const transactionBuilder = new bitbox.TransactionBuilder() const buffer = Buffer.from(fixture.DER, "hex") const signature = transactionBuilder.bip66.decode(buffer) assert.equal(signature.r.toString("hex"), fixture.r) @@ -1968,7 +1968,7 @@ describe("#TransactionBuilder", () => { fixtures.bip66.forEach(fixture => { it(`should bip66 check ${fixture.DER}`, () => { - const transactionBuilder = new BITBOX.TransactionBuilder() + const transactionBuilder = new bitbox.TransactionBuilder() const buffer = Buffer.from(fixture.DER, "hex") assert.equal(transactionBuilder.bip66.check(buffer), true) }) @@ -1978,7 +1978,7 @@ describe("#TransactionBuilder", () => { describe("#bip68", () => { fixtures.bip68.encode.forEach(fixture => { it(`should bip68 encode as ${fixture.result}`, () => { - const transactionBuilder = new BITBOX.TransactionBuilder() + const transactionBuilder = new bitbox.TransactionBuilder() const obj = {} obj[fixture.type] = fixture.value const encode = transactionBuilder.bip68.encode(obj) @@ -1988,7 +1988,7 @@ describe("#TransactionBuilder", () => { fixtures.bip68.decode.forEach(fixture => { it(`should bip68 decode ${fixture.result}`, () => { - const transactionBuilder = new BITBOX.TransactionBuilder() + const transactionBuilder = new bitbox.TransactionBuilder() const obj = {} const decode = transactionBuilder.bip68.decode(fixture.result) assert.equal(Object.keys(decode)[0], fixture.type) @@ -2001,13 +2001,13 @@ describe("#TransactionBuilder", () => { describe("#Mainnet", () => { fixtures.locktime.mainnet.forEach(fixture => { it(`should create transaction with nLockTime on mainnet`, () => { - const node = BITBOX.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new BITBOX.TransactionBuilder() + const node = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder = new bitbox.TransactionBuilder() const txHash = fixture.txHash const originalAmount = fixture.amount transactionBuilder.addInput(txHash, 0, 1) - const byteCount = BITBOX.BitcoinCash.getByteCount( + const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 1 } ) @@ -2015,7 +2015,7 @@ describe("#TransactionBuilder", () => { transactionBuilder.addOutput(fixture.output, sendAmount) const lockTime = fixture.lockTime transactionBuilder.setLockTime(lockTime) - const keyPair = BITBOX.HDNode.toKeyPair(node) + const keyPair = bitbox.HDNode.toKeyPair(node) let redeemScript transactionBuilder.sign( 0, diff --git a/test/unit/Util.js b/test/unit/Util.js index 1a227492..d4aa15e5 100644 --- a/test/unit/Util.js +++ b/test/unit/Util.js @@ -1,7 +1,7 @@ const assert = require("assert") const axios = require("axios") -const bitbox = require("../../lib/BITBOX").BITBOX -const BITBOX = new bitbox() +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() const sinon = require("sinon") describe("#Util", () => { @@ -23,7 +23,7 @@ describe("#Util", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - BITBOX.Util.validateAddress( + bitbox.Util.validateAddress( "bitcoincash:qpz7qtkuyhrsz4qmnnrvf8gz9zd0u9v7eqsewyk4w5" ) .then(result => { From b28252e3e9fe66f20de3c87a3d8bc8a170f7c4f5 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 16:45:12 +0900 Subject: [PATCH 337/480] Crypto.sha1 w/ tests --- index.ts | 2 +- lib/Crypto.ts | 5 +++++ package.json | 2 +- test/unit/Crypto.js | 22 ++++++++++++++++++++-- test/unit/fixtures/Crypto.json | 22 ++++++++++++++++++++++ 5 files changed, 49 insertions(+), 4 deletions(-) diff --git a/index.ts b/index.ts index 4f797b96..87e5af61 100644 --- a/index.ts +++ b/index.ts @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOX = require("./lib/BITBOX").BITBOX const clone = require("git-clone") -program.version("7.0.15 ", "-v, --version") +program.version("7.0.16 ", "-v, --version") program .command("new ") diff --git a/lib/Crypto.ts b/lib/Crypto.ts index 19c75e4d..6303ef94 100644 --- a/lib/Crypto.ts +++ b/lib/Crypto.ts @@ -3,6 +3,7 @@ const Bitcoin = require("bitcoincashjs-lib") import { Buffer } from "buffer" export interface Crypto { + sha1(buffer: Buffer): Buffer sha256(buffer: Buffer): Buffer ripemd160(buffer: Buffer): Buffer hash256(buffer: Buffer): Buffer @@ -11,6 +12,10 @@ export interface Crypto { } export class Crypto implements Crypto { + static sha1(buffer: Buffer): Buffer { + return Bitcoin.crypto.sha1(buffer) + } + static sha256(buffer: Buffer): Buffer { return Bitcoin.crypto.sha256(buffer) } diff --git a/package.json b/package.json index 90d9a163..e052baca 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.0.15", + "version": "7.0.16", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ diff --git a/test/unit/Crypto.js b/test/unit/Crypto.js index 3166a0e2..ea05e058 100644 --- a/test/unit/Crypto.js +++ b/test/unit/Crypto.js @@ -5,9 +5,27 @@ const bitbox = new BITBOX() const Buffer = require("safe-buffer").Buffer describe("#Crypto", () => { + describe("#sha1", () => { + fixtures.sha1.forEach(fixture => { + it(`should create SHA1 Hash hex encoded ${fixture.hash} from ${ + fixture.hex + }`, () => { + const data = Buffer.from(fixture.hex, "hex") + const sha1Hash = bitbox.Crypto.sha1(data).toString("hex") + assert.equal(sha1Hash, fixture.hash) + }) + + it(`should create 64 character SHA256Hash hex encoded`, () => { + const data = Buffer.from(fixture.hex, "hex") + const sha256Hash = bitbox.Crypto.sha256(data).toString("hex") + assert.equal(sha256Hash.length, 64) + }) + }) + }) + describe("#sha256", () => { fixtures.sha256.forEach(fixture => { - it(`should create SHA256Hash hex encoded ${fixture.hash} from ${ + it(`should create SHA256 Hash hex encoded ${fixture.hash} from ${ fixture.hex }`, () => { const data = Buffer.from(fixture.hex, "hex") @@ -25,7 +43,7 @@ describe("#Crypto", () => { describe("#ripemd160", () => { fixtures.ripemd160.forEach(fixture => { - it(`should create RIPEMD160Hash hex encoded ${fixture.hash} from ${ + it(`should create RIPEMD160 Hash hex encoded ${fixture.hash} from ${ fixture.hex }`, () => { const data = Buffer.from(fixture.hex, "hex") diff --git a/test/unit/fixtures/Crypto.json b/test/unit/fixtures/Crypto.json index 11316bb3..0e47ad7a 100644 --- a/test/unit/fixtures/Crypto.json +++ b/test/unit/fixtures/Crypto.json @@ -1,4 +1,26 @@ { + "sha1": [ + { + "hash": "c0357a32ed1f6a03be92dd094476f7f1a2e214ec", + "hex": "0101010101010101" + }, + { + "hash": "98eeed798ee958d1653edf2d857d4aeaba971932", + "hex": "031ad329b3117e1d1e2974406868e575d48cff88e8128ba0eedb10da053785033b" + }, + { + "hash": "26b0780a683a1e098e9cb8cfa1b0924228250097", + "hex": "03123464075c7a5fa6b8680afa2c962a02e7bf071c6b2395b0ac711d462cac9354" + }, + { + "hash": "a7f2850b1724e2c17d005d8fa54c9b35780fa579", + "hex": "03ea9277ebf3d6edd26847fb109494def7d458f05e6e4fba381c094ce703c62248" + }, + { + "hash": "c8678dc140c8d611cf96f0d500b05d8254544a33", + "hex": "020379254cc10ef94976192ab42cab25f65ba4438e4b2b4610debd145d2bdb8d53" + } + ], "sha256": [ { "hash": "04abc8821a06e5a30937967d11ad10221cb5ac3b5273e434f1284ee87129a061", From a247d69b7f9728a41a60fc8c603f32c4443e4fc0 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 10 May 2019 17:04:15 +0900 Subject: [PATCH 338/480] Fix tests. --- index.ts | 2 +- package.json | 2 +- test/unit/Crypto.js | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/index.ts b/index.ts index 87e5af61..10c6de82 100644 --- a/index.ts +++ b/index.ts @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOX = require("./lib/BITBOX").BITBOX const clone = require("git-clone") -program.version("7.0.16 ", "-v, --version") +program.version("7.0.17 ", "-v, --version") program .command("new ") diff --git a/package.json b/package.json index e052baca..6d711141 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.0.16", + "version": "7.0.17", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ diff --git a/test/unit/Crypto.js b/test/unit/Crypto.js index ea05e058..2e6218a8 100644 --- a/test/unit/Crypto.js +++ b/test/unit/Crypto.js @@ -15,10 +15,10 @@ describe("#Crypto", () => { assert.equal(sha1Hash, fixture.hash) }) - it(`should create 64 character SHA256Hash hex encoded`, () => { + it(`should create 40 character SHA1 Hash hex encoded`, () => { const data = Buffer.from(fixture.hex, "hex") - const sha256Hash = bitbox.Crypto.sha256(data).toString("hex") - assert.equal(sha256Hash.length, 64) + const sha1Hash = bitbox.Crypto.sha1(data).toString("hex") + assert.equal(sha1Hash.length, 40) }) }) }) From bfca6ec49123b20e622b397777e25a482b573072 Mon Sep 17 00:00:00 2001 From: James Cramer Date: Fri, 10 May 2019 08:38:48 -0400 Subject: [PATCH 339/480] use "declare module" organization (WIP) --- lib/BITBOX.ts | 2 ++ lib/HDNode.ts | 57 ++++++++++++++----------------------- lib/interfaces/vendors.d.ts | 18 ++++++++++++ 3 files changed, 41 insertions(+), 36 deletions(-) create mode 100644 lib/interfaces/vendors.d.ts diff --git a/lib/BITBOX.ts b/lib/BITBOX.ts index 2f1f1ef4..3dcc880d 100644 --- a/lib/BITBOX.ts +++ b/lib/BITBOX.ts @@ -1,3 +1,5 @@ +/// + // import interfaces import { IConfig } from "./interfaces/BITBOXInterfaces" diff --git a/lib/HDNode.ts b/lib/HDNode.ts index 93d01ddc..c683c491 100644 --- a/lib/HDNode.ts +++ b/lib/HDNode.ts @@ -1,23 +1,8 @@ const Bitcoin = require("bitcoincashjs-lib") const coininfo = require("coininfo") const bip32utils = require("bip32-utils") -import { Buffer } from "buffer" import { ECPair, ECSignature } from "./ECPair" - -export interface HDNodeBCL { - keyPair: any - getAddress(): any - isNeutered(): any - getIdentifier(): any - verify(buffer: any, signature: any): any - deriveHardened(path: any): any - sign(buffer: any): any - toBase58(): any - neutered(): any - getPublicKeyBuffer(): any - derivePath(path: any): any - derive(path: any): any -} +import * as bitcoincashjs from "bitcoincashjs-lib" export class HDNode { _address: any @@ -25,7 +10,7 @@ export class HDNode { this._address = address } - fromSeed(rootSeedBuffer: any, network: string = "mainnet"): HDNodeBCL { + fromSeed(rootSeedBuffer: any, network: string = "mainnet"): HDNode { let bitcoincash: any if (network === "bitcoincash" || network === "mainnet") bitcoincash = coininfo.bitcoincash.main @@ -38,35 +23,35 @@ export class HDNode { ) } - toLegacyAddress(hdNode: HDNodeBCL): string { + toLegacyAddress(hdNode: bitcoincashjs.HDNode): string { return hdNode.getAddress() } - toCashAddress(hdNode: HDNodeBCL, regtest: boolean = false): string { + toCashAddress(hdNode: bitcoincashjs.HDNode, regtest: boolean = false): string { return this._address.toCashAddress(hdNode.getAddress(), true, regtest) } - toWIF(hdNode: HDNodeBCL): string { + toWIF(hdNode: bitcoincashjs.HDNode): string { return hdNode.keyPair.toWIF() } - toXPub(hdNode: HDNodeBCL): string { + toXPub(hdNode: bitcoincashjs.HDNode): string { return hdNode.neutered().toBase58() } - toXPriv(hdNode: HDNodeBCL): string { + toXPriv(hdNode: bitcoincashjs.HDNode): string { return hdNode.toBase58() } - toKeyPair(hdNode: HDNodeBCL): ECPair { + toKeyPair(hdNode: bitcoincashjs.HDNode): ECPair { return hdNode.keyPair } - toPublicKey(hdNode: HDNodeBCL): Buffer { + toPublicKey(hdNode: bitcoincashjs.HDNode): Buffer { return hdNode.getPublicKeyBuffer() } - fromXPriv(xpriv: string): HDNodeBCL { + fromXPriv(xpriv: string): bitcoincashjs.HDNode { let bitcoincash: any if (xpriv[0] === "x") bitcoincash = coininfo.bitcoincash.main else if (xpriv[0] === "t") bitcoincash = coininfo.bitcoincash.test @@ -75,7 +60,7 @@ export class HDNode { return Bitcoin.HDNode.fromBase58(xpriv, bitcoincashBitcoinJSLib) } - fromXPub(xpub: string): HDNodeBCL { + fromXPub(xpub: string): bitcoincashjs.HDNode { let bitcoincash: any if (xpub[0] === "x") bitcoincash = coininfo.bitcoincash.main else if (xpub[0] === "t") bitcoincash = coininfo.bitcoincash.test @@ -84,35 +69,35 @@ export class HDNode { return Bitcoin.HDNode.fromBase58(xpub, bitcoincashBitcoinJSLib) } - derivePath(hdnode: HDNodeBCL, path: string): HDNodeBCL { + derivePath(hdnode: bitcoincashjs.HDNode, path: string): bitcoincashjs.HDNode { return hdnode.derivePath(path) } - derive(hdnode: HDNodeBCL, path: string): HDNodeBCL { + derive(hdnode: bitcoincashjs.HDNode, path: string): bitcoincashjs.HDNode { return hdnode.derive(path) } - deriveHardened(hdnode: HDNodeBCL, path: string): HDNodeBCL { + deriveHardened(hdnode: bitcoincashjs.HDNode, path: string): bitcoincashjs.HDNode { return hdnode.deriveHardened(path) } - sign(hdnode: HDNodeBCL, buffer: Buffer): ECSignature { + sign(hdnode: bitcoincashjs.HDNode, buffer: Buffer): ECSignature { return hdnode.sign(buffer) } - verify(hdnode: HDNodeBCL, buffer: Buffer, signature: ECSignature): boolean { + verify(hdnode: bitcoincashjs.HDNode, buffer: Buffer, signature: ECSignature): boolean { return hdnode.verify(buffer, signature) } - isPublic(hdnode: HDNodeBCL): boolean { + isPublic(hdnode: bitcoincashjs.HDNode): boolean { return JSON.parse(hdnode.isNeutered()) } - isPrivate(hdnode: HDNodeBCL): boolean { + isPrivate(hdnode: bitcoincashjs.HDNode): boolean { return !hdnode.isNeutered() } - toIdentifier(hdnode: HDNodeBCL): string { + toIdentifier(hdnode: bitcoincashjs.HDNode): string { return hdnode.getIdentifier() } @@ -120,14 +105,14 @@ export class HDNode { return Bitcoin.HDNode.fromBase58(base58, network) } - createAccount(hdNodes: HDNodeBCL[]): object { + createAccount(hdNodes: bitcoincashjs.HDNode[]): object { const arr = hdNodes.map( (item: any, index: number) => new bip32utils.Chain(item.neutered()) ) return new bip32utils.Account(arr) } - createChain(hdNode: HDNodeBCL): object { + createChain(hdNode: bitcoincashjs.HDNode): object { return new bip32utils.Chain(hdNode) } } diff --git a/lib/interfaces/vendors.d.ts b/lib/interfaces/vendors.d.ts new file mode 100644 index 00000000..9adb185c --- /dev/null +++ b/lib/interfaces/vendors.d.ts @@ -0,0 +1,18 @@ +declare module "bitcoincashjs-lib" { + export interface HDNode { + keyPair: any + getAddress(): any + isNeutered(): any + getIdentifier(): any + verify(buffer: any, signature: any): any + deriveHardened(path: any): any + sign(buffer: any): any + toBase58(): any + neutered(): any + getPublicKeyBuffer(): any + derivePath(path: any): any + derive(path: any): any + } + + // TODO : Fill in other bitcoincashjs object definitions here +} \ No newline at end of file From e2ab760503c193d9e3edd0d470886ad190e117fa Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sat, 11 May 2019 09:01:02 +0900 Subject: [PATCH 340/480] Bring back methods and tests --- index.ts | 2 +- lib/BitcoinCash.ts | 11 +++++++++++ package.json | 2 +- test/unit/BitcoinCash.js | 22 ++++++++++++++++++++++ 4 files changed, 35 insertions(+), 2 deletions(-) diff --git a/index.ts b/index.ts index 10c6de82..a33e5d90 100644 --- a/index.ts +++ b/index.ts @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOX = require("./lib/BITBOX").BITBOX const clone = require("git-clone") -program.version("7.0.17 ", "-v, --version") +program.version("7.0.18 ", "-v, --version") program .command("new ") diff --git a/lib/BitcoinCash.ts b/lib/BitcoinCash.ts index f8646674..01430c90 100644 --- a/lib/BitcoinCash.ts +++ b/lib/BitcoinCash.ts @@ -13,6 +13,8 @@ export interface BitcoinCash { _address: any toSatoshi(coins: number): number toBitcoinCash(satoshis: number): number + toBits(satoshis: number): number + satsToBits(satoshis: number): number signMessageWithPrivKey(privateKeyWIF: string, message: string): string verifyMessage(address: string, signature: string, message: string): boolean encodeBase58Check(hex: string): string @@ -71,6 +73,15 @@ export class BitcoinCash implements BitcoinCash { return sb.toBitcoin(satoshis) } + toBits(satoshis: number): number { + return satoshis / 100 + } + + // Translate satoshi to bits denomination + satsToBits(satoshis: number): number { + return satoshis / 100 + } + // sign message signMessageWithPrivKey(privateKeyWIF: string, message: string): string { const network: string = diff --git a/package.json b/package.json index 6d711141..6fc46e57 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.0.17", + "version": "7.0.18", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ diff --git a/test/unit/BitcoinCash.js b/test/unit/BitcoinCash.js index 52ac5df0..c495579d 100644 --- a/test/unit/BitcoinCash.js +++ b/test/unit/BitcoinCash.js @@ -84,6 +84,28 @@ describe("#BitcoinCash", () => { }) }) + describe("#satsToBits", () => { + fixtures.conversion.satsToBits.bch.forEach(bch => { + it(`should convert ${bch[0]} BCH to ${bch[1]} bits`, () => { + assert.equal( + bitbox.BitcoinCash.satsToBits(bitbox.BitcoinCash.toSatoshi(bch[0])), + bch[1] + ) + }) + }) + + fixtures.conversion.satsToBits.strings.forEach(bch => { + it(`should convert "${bch[0]}" BCH as a string to ${ + bch[1] + } bits`, () => { + assert.equal( + bitbox.BitcoinCash.satsToBits(bitbox.BitcoinCash.toSatoshi(bch[0])), + bch[1] + ) + }) + }) + }) + describe("sign and verify messages", () => { describe("#signMessageWithPrivKey", () => { fixtures.signatures.sign.forEach(sign => { From 4419a33255cec7adf9e7f216ac24ddbb3b83df00 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sat, 11 May 2019 09:07:03 +0900 Subject: [PATCH 341/480] mer --- lib/Address.ts | 37 +------------------------------------ lib/BITBOX.ts | 26 +------------------------- lib/BitcoinCash.ts | 2 +- lib/Block.ts | 8 +------- lib/Blockchain.ts | 32 +------------------------------- lib/Control.ts | 8 +------- lib/Crypto.ts | 11 +---------- lib/Generating.ts | 11 +---------- 8 files changed, 8 insertions(+), 127 deletions(-) diff --git a/lib/Address.ts b/lib/Address.ts index 4b667373..b4a20318 100644 --- a/lib/Address.ts +++ b/lib/Address.ts @@ -3,41 +3,6 @@ const Bitcoin = require("bitcoincashjs-lib") const cashaddr = require("cashaddrjs") const coininfo = require("coininfo") -export interface Address { - toLegacyAddress(address: string): string - toCashAddress(address: string, prefix?: boolean, regtest?: boolean): string - legacyToHash160(address: string): string - cashToHash160(address: string): string - // regtestToHash160(address: string): string - isHash160(address: string): boolean - hash160ToLegacy(hash160: any, network?: any): string - hash160ToCash(hash160: any, network?: any, regtest?: boolean): string - isLegacyAddress(address: string): boolean - isCashAddress(address: string): boolean - isMainnetAddress(address: string): boolean - isTestnetAddress(address: string): boolean - isRegTestAddress(address: string): boolean - isP2PKHAddress(address: string): boolean - isP2SHAddress(address: string): boolean - detectAddressFormat(address: string): string - detectAddressNetwork(address: string): string - detectAddressType(address: string): string - fromXPub(xpub: string, path?: string): string - fromXPriv(xpriv: string, path?: string): string - fromOutputScript(scriptPubKey: any, network?: string): string - details( - address: string | string[] - ): Promise - utxo( - address: string | string[] - ): Promise - unconfirmed( - address: string | string[] - ): Promise - // TODO add interface for AddressTransactionsResult - transactions(address: string | string[]): Promise -} - export interface AddressDetailsResult { balance: number balanceSat: number @@ -82,7 +47,7 @@ export interface AddressUnconfirmedResult { cashAddress: string } -export class Address implements Address { +export class Address { restURL: string constructor(restURL: string) { this.restURL = restURL diff --git a/lib/BITBOX.ts b/lib/BITBOX.ts index 2f1f1ef4..ffab1a7a 100644 --- a/lib/BITBOX.ts +++ b/lib/BITBOX.ts @@ -23,31 +23,7 @@ import { Socket } from "./Socket" import { Wallet } from "./Wallet" import { Schnorr } from "./Schnorr" -export interface BITBOX { - restURL: string - Address: Address - BitcoinCash: BitcoinCash - Block: Block - Blockchain: Blockchain - Control: Control - Crypto: Crypto - ECPair: any - Generating: Generating - HDNode: HDNode - Mining: Mining - Mnemonic: Mnemonic - Price: Price - RawTransactions: RawTransactions - Script: Script - Transaction: Transaction - TransactionBuilder: any - Util: Util - Socket: any - Wallet: Wallet - Schnorr: Schnorr -} - -export class BITBOX implements BITBOX { +export class BITBOX { restURL: string Address: Address BitcoinCash: BitcoinCash diff --git a/lib/BitcoinCash.ts b/lib/BitcoinCash.ts index 01430c90..4c990f2f 100644 --- a/lib/BitcoinCash.ts +++ b/lib/BitcoinCash.ts @@ -57,7 +57,7 @@ export interface ByteCountOutput { P2SH?: number } -export class BitcoinCash implements BitcoinCash { +export class BitcoinCash { _address: any constructor(address: any) { this._address = address diff --git a/lib/Block.ts b/lib/Block.ts index 2fcb7290..fba49616 100644 --- a/lib/Block.ts +++ b/lib/Block.ts @@ -1,11 +1,5 @@ import axios from "axios" -export interface Block { - restURL: string - detailsByHeight(id: number | number[]): Promise - detailsByHash(hash: string | string[]): Promise -} - export interface BlockDetails { hash: string size: number @@ -27,7 +21,7 @@ export interface BlockDetails { poolInfo: object } -export class Block implements Block { +export class Block { restURL: string constructor(restURL: string) { this.restURL = restURL diff --git a/lib/Blockchain.ts b/lib/Blockchain.ts index 45acaaf4..5e5d2b3b 100644 --- a/lib/Blockchain.ts +++ b/lib/Blockchain.ts @@ -6,36 +6,6 @@ import axios from "axios" import { BlockDetails } from "./Block" -export interface Blockchain { - restURL: string - getBestBlockHash(): Promise - getBlock(blockhash: string, verbose?: boolean): Promise - getBlockchainInfo(): Promise - getBlockCount(): Promise - getBlockHash(height?: number): Promise - getBlockHeader( - hash: string | string[], - verbose?: boolean - ): Promise - getChainTips(): Promise - getDifficulty(): Promise - getMempoolAncestors(txid: string, verbose?: boolean): Promise - getMempoolDescendants(txid: string, verbose?: boolean): Promise - getMempoolEntry(txid: string | string[]): Promise - getMempoolInfo(): Promise - getRawMempool(verbose?: boolean): Promise - getTxOut( - txid: string, - n: any, - include_mempool?: boolean - ): Promise - getTxOutProof(txids: string | string[]): Promise - preciousBlock(blockhash: string): Promise - pruneBlockchain(height: number): Promise - verifyChain(checklevel?: number, nblocks?: number): Promise - verifyTxOutProof(proof: any | any[]): Promise -} - export interface MempoolInfo { size: number bytes: number @@ -97,7 +67,7 @@ export interface TxOut { coinbase: boolean } -export class Blockchain implements Blockchain { +export class Blockchain { restURL: string constructor(restURL: string) { this.restURL = restURL diff --git a/lib/Control.ts b/lib/Control.ts index ce20ffb9..b86ef9de 100644 --- a/lib/Control.ts +++ b/lib/Control.ts @@ -1,11 +1,5 @@ import axios from "axios" -export interface Control { - restURL: string - getInfo(): Promise - getMemoryInfo(): Promise -} - export interface NodeInfo { version: number protocolversion: number @@ -31,7 +25,7 @@ export interface NodeMemoryInfo { } } -export class Control implements Control { +export class Control { restURL: string constructor(restURL: string) { this.restURL = restURL diff --git a/lib/Crypto.ts b/lib/Crypto.ts index 6303ef94..97e6af4f 100644 --- a/lib/Crypto.ts +++ b/lib/Crypto.ts @@ -2,16 +2,7 @@ const randomBytes = require("randombytes") const Bitcoin = require("bitcoincashjs-lib") import { Buffer } from "buffer" -export interface Crypto { - sha1(buffer: Buffer): Buffer - sha256(buffer: Buffer): Buffer - ripemd160(buffer: Buffer): Buffer - hash256(buffer: Buffer): Buffer - hash160(buffer: Buffer): Buffer - randomBytes(size: number): Buffer -} - -export class Crypto implements Crypto { +export class Crypto { static sha1(buffer: Buffer): Buffer { return Bitcoin.crypto.sha1(buffer) } diff --git a/lib/Generating.ts b/lib/Generating.ts index 80e015ca..72361f5e 100644 --- a/lib/Generating.ts +++ b/lib/Generating.ts @@ -1,15 +1,6 @@ import axios from "axios" -export interface Generating { - restURL: string - generateToAddress( - blocks: number, - address: string, - maxtries?: number - ): Promise -} - -export class Generating implements Generating { +export class Generating { restURL: string constructor(restURL: string) { this.restURL = restURL From 2463ee8ca324380f54f1a9235b0797bc88b563cc Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sat, 11 May 2019 09:24:37 +0900 Subject: [PATCH 342/480] Cleaning up redundant interfaces. --- index.ts | 2 +- lib/BitcoinCash.ts | 28 ----------------------- lib/Mining.ts | 10 +-------- lib/Mnemonic.ts | 18 +-------------- lib/RawTransactions.ts | 16 +------------ lib/Schnorr.ts | 47 +-------------------------------------- lib/Script.ts | 45 +------------------------------------ lib/Socket.ts | 7 +----- lib/Transaction.ts | 7 +----- lib/TransactionBuilder.ts | 34 +--------------------------- lib/Util.ts | 7 +----- package.json | 2 +- 12 files changed, 11 insertions(+), 212 deletions(-) diff --git a/index.ts b/index.ts index a33e5d90..7fe23bd4 100644 --- a/index.ts +++ b/index.ts @@ -13,7 +13,7 @@ const repl = require("repl") const BITBOX = require("./lib/BITBOX").BITBOX const clone = require("git-clone") -program.version("7.0.18 ", "-v, --version") +program.version("7.0.19 ", "-v, --version") program .command("new ") diff --git a/lib/BitcoinCash.ts b/lib/BitcoinCash.ts index 4c990f2f..31eb27b4 100644 --- a/lib/BitcoinCash.ts +++ b/lib/BitcoinCash.ts @@ -9,34 +9,6 @@ const wif = require("wif") const Buffer = require("safe-buffer").Buffer -export interface BitcoinCash { - _address: any - toSatoshi(coins: number): number - toBitcoinCash(satoshis: number): number - toBits(satoshis: number): number - satsToBits(satoshis: number): number - signMessageWithPrivKey(privateKeyWIF: string, message: string): string - verifyMessage(address: string, signature: string, message: string): boolean - encodeBase58Check(hex: string): string - decodeBase58Check(address: string): string - encodeBIP21( - address: string, - options: EncodeBIP21Options, - regtest?: boolean - ): string - decodeBIP21(url: string): BIP21Object - getByteCount( - inputs: ByteCountInput | object, - outputs: ByteCountOutput - ): number - encryptBIP38(privKeyWIF: string, passphrase: string): string - decryptBIP38( - encryptedKey: string, - passphrase: string, - network: string - ): string -} - export interface EncodeBIP21Options { amount?: number label?: string diff --git a/lib/Mining.ts b/lib/Mining.ts index 98e743b4..22e688d9 100644 --- a/lib/Mining.ts +++ b/lib/Mining.ts @@ -1,14 +1,6 @@ import axios from "axios" -export interface Mining { - restURL: string - getBlockTemplate(template_request: any): Promise - getMiningInfo(): Promise - getNetworkHashps(nblocks?: number, height?: number): Promise - submitBlock(hex: string, parameters: any): Promise -} - -export class Mining implements Mining { +export class Mining { restURL: string constructor(restURL: string) { this.restURL = restURL diff --git a/lib/Mnemonic.ts b/lib/Mnemonic.ts index 22501c47..51ab94b1 100644 --- a/lib/Mnemonic.ts +++ b/lib/Mnemonic.ts @@ -4,23 +4,7 @@ const Bitcoin = require("bitcoincashjs-lib") import { Buffer } from "buffer" const wif = require("wif") -export interface Mnemonic { - _address: any - generate(bits?: number, wordlist?: string[]): string - fromEntropy(bytes: Buffer, wordlist: string[]): string - toEntropy(mnemonic: string, wordlist: string[]): Buffer - validate(mnemonic: string, wordlist: string[]): string - toSeed(mnemonic: string, password: string): Buffer - wordLists(): any - toKeypairs( - mnemonic: string, - numberOfKeypairs?: number, - regtest?: boolean - ): { privateKeyWIF: string; address: string }[] - findNearestWord(word: string, wordlist: string[]): string -} - -export class Mnemonic implements Mnemonic { +export class Mnemonic { _address: any constructor(address: any) { this._address = address diff --git a/lib/RawTransactions.ts b/lib/RawTransactions.ts index 3cdef70b..013283eb 100644 --- a/lib/RawTransactions.ts +++ b/lib/RawTransactions.ts @@ -1,19 +1,5 @@ import axios from "axios" -export interface RawTransactions { - restURL: string - decodeRawTransaction(hex: string | string[]): Promise - decodeScript(script: string | string[]): Promise - getRawTransaction( - txid: string | string, - verbose?: boolean - ): Promise - sendRawTransaction( - hex: string | string[], - allowhighfees?: boolean - ): Promise -} - export interface VerboseRawTransaction { hex: string txid: string @@ -40,7 +26,7 @@ export interface VerboseRawTransaction { blocktime: number } -export class RawTransactions implements RawTransactions { +export class RawTransactions { restURL: string constructor(restURL: string) { this.restURL = restURL diff --git a/lib/Schnorr.ts b/lib/Schnorr.ts index a872c6fa..82e359f0 100644 --- a/lib/Schnorr.ts +++ b/lib/Schnorr.ts @@ -1,52 +1,7 @@ const schnorr = require("bip-schnorr") import { Buffer } from "buffer" -export interface Schnorr { - sign(privateKey: any, message: Buffer): Buffer - verify(publicKey: Buffer, message: Buffer, signatureToVerify: Buffer): void - batchVerify( - publicKeys: Buffer[], - messages: Buffer[], - signaturesToVerify: Buffer[] - ): void - nonInteractive(privateKeys: any, message: Buffer): Buffer - computeEll(publicKeys: any): Buffer - publicKeyCombine(publicKeys: Buffer[], publicKeyHash: Buffer): Buffer - sessionInitialize( - sessionId: Buffer, - privateKey: any, - message: Buffer, - pubKeyCombined: Buffer, - ell: Buffer, - idx: number - ): any - sessionNonceCombine(session: any, nonces: Buffer[]): Buffer - partialSign( - session: any, - message: Buffer, - nonceCombined: Buffer, - pubKeyCombined: Buffer - ): void - partialSignatureVerify( - session: any, - partialSignature: any, - nonceCombined: Buffer, - idx: any, - pubKey: Buffer, - nonce: Buffer - ): void - partialSignaturesCombine( - nonceCombined: Buffer, - partialSignatures: any - ): Buffer - bufferToInt(buffer: any): any - intToBuffer(bigInteger: any): any - hash(buffer: any): any - pointToBuffer(point: any): any - pubKeyToPoint(publicKey: any): any -} - -export class Schnorr implements Schnorr { +export class Schnorr { sign(privateKey: any, message: Buffer): Buffer { return schnorr.sign(privateKey, message) } diff --git a/lib/Script.ts b/lib/Script.ts index d1f0dc7c..a43af799 100644 --- a/lib/Script.ts +++ b/lib/Script.ts @@ -2,49 +2,6 @@ const Bitcoin = require("bitcoincashjs-lib") const opcodes = require("bitcoincash-ops") import { Buffer } from "buffer" -export interface Script { - opcodes: opcodes - nullData: any - multisig: any - pubKey: any - pubKeyHash: any - scriptHash: any - classifyInput(script: Buffer): any - classifyOutput(script: Buffer): any - decode(scriptBuffer: Buffer): any[] - encode(scriptChunks: any[]): Buffer - toASM(buffer: Buffer): string - fromASM(asm: string): Buffer - encodeNullDataOutput(data: Buffer): Buffer - decodeNullDataOutput(output: Buffer): Buffer - checkNullDataOutput(ouput: Buffer): Boolean - encodeP2PKInput(signature: Buffer): Buffer - decodeP2PKInput(input: Buffer): Buffer - checkP2PKInput(input: Buffer): Boolean - encodeP2PKOutput(pubKey: Buffer): Buffer - decodeP2PKOutput(pubKey: Buffer): Buffer - checkP2PKOutput(ouput: Buffer): Boolean - encodeP2PKHInput(signature: Buffer, pubKey: Buffer): Buffer - decodeP2PKHInput(signature: Buffer): Buffer - checkP2PKHInput(input: Buffer): Boolean - encodeP2PKHOutput(signature: Buffer, pubKey: Buffer): Buffer - decodeP2PKHOutput(output: Buffer): Buffer - checkP2PKHOutput(output: Buffer): Boolean - encodeP2MSInput(signatures: Buffer[]): Buffer - decodeP2MSInput(input: Buffer): Buffer - checkP2MSInput(input: Buffer): Boolean - encodeP2MSOutput(m: number, pubKeys: Buffer[]): Buffer - decodeP2MSOutput(output: Buffer): Buffer - checkP2MSOutput(input: Buffer): Boolean - encodeP2SHInput(redeemScriptSig: Buffer, redeemScript: Buffer): Buffer - decodeP2SHInput(input: Buffer): Buffer - checkP2SHInput(input: Buffer): boolean - encodeP2SHOutput(scriptHash: Buffer): Buffer - decodeP2SHOutput(output: Buffer): Buffer - checkP2SHOutput(output: Buffer): Boolean - classifyInput(input: Buffer): string - classifyOutput(output: Buffer): string -} export interface opcodes { OP_FALSE: 0 @@ -183,7 +140,7 @@ export interface opcodes { OP_INVALIDOPCODE: 255 } -export class Script implements Script { +export class Script { opcodes: opcodes nullData: any multisig: any diff --git a/lib/Socket.ts b/lib/Socket.ts index 9b020d99..90e1b6ce 100644 --- a/lib/Socket.ts +++ b/lib/Socket.ts @@ -1,11 +1,6 @@ const io = require("socket.io-client") -export interface Socket { - socket: any - listen(endpoint: any, cb: any): void -} - -export class Socket implements Socket { +export class Socket { socket: any constructor(config: any = {}) { if (typeof config === "string") { diff --git a/lib/Transaction.ts b/lib/Transaction.ts index 0baebe49..cb7a624d 100644 --- a/lib/Transaction.ts +++ b/lib/Transaction.ts @@ -1,11 +1,6 @@ const Bitcoin = require("bitcoincashjs-lib") import axios from "axios" -export interface Transaction { - restURL: string - details(txid: string | string[]): Promise -} - export interface TxnDetails { txid: string version: number @@ -22,7 +17,7 @@ export interface TxnDetails { size: number } -export class Transaction implements Transaction { +export class Transaction { restURL: string constructor(restURL: string) { this.restURL = restURL diff --git a/lib/TransactionBuilder.ts b/lib/TransactionBuilder.ts index 823c077a..eeafb4cd 100644 --- a/lib/TransactionBuilder.ts +++ b/lib/TransactionBuilder.ts @@ -10,38 +10,6 @@ import { ECPair } from "./ECPair" declare type ECSignature = any -export interface TransactionBuilder { - transaction: any - DEFAULT_SEQUENCE: any - hashTypes: HashTypes - signatureAlgorithms: SignatureAlgorithms - bip66: any - bip68: any - p2shInput: any - tx: any - _address: any - setAddress(address: string): void - addInput( - txHash: string, - vout: number, - sequence?: number, - prevOutScript?: string - ): void - addInputScript(vout: number, script: any): void - addInputScripts(scripts: any): void - addOutput(scriptPubKey: string, amount: number): void - setLockTime(locktime: number): void - sign( - vin: number, - keyPair: ECPair, - redeemScript: Buffer, - hashType: number, - value: number, - signatureAlgorithm?: number - ): void - build(): any -} - declare interface SignatureAlgorithms { ECDSA: number SCHNORR: number @@ -57,7 +25,7 @@ declare interface HashTypes { ADVANCED_TRANSACTION_FLAG: number } -export class TransactionBuilder implements TransactionBuilder { +export class TransactionBuilder { transaction: any DEFAULT_SEQUENCE: any hashTypes: HashTypes diff --git a/lib/Util.ts b/lib/Util.ts index a32437a1..91267c2c 100644 --- a/lib/Util.ts +++ b/lib/Util.ts @@ -1,10 +1,5 @@ import axios from "axios" -export interface Util { - restURL: string - validateAddress(address: string): Promise -} - export interface AddressDetails { isvalid: boolean address: string @@ -17,7 +12,7 @@ export interface AddressDetails { account: string } -export class Util implements Util { +export class Util { restURL: string constructor(restURL: string) { this.restURL = restURL diff --git a/package.json b/package.json index 6fc46e57..d1add0ee 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.0.18", + "version": "7.0.19", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ From 887a7fbbec7b9bdd89c88e7734471b3099ff7fa0 Mon Sep 17 00:00:00 2001 From: James Cramer Date: Fri, 10 May 2019 23:22:58 -0400 Subject: [PATCH 343/480] follow-up previous commit --- lib/Address.ts | 81 +------------ lib/BITBOX.ts | 25 +--- lib/BitcoinCash.ts | 27 +---- lib/Block.ts | 29 +---- lib/Blockchain.ts | 103 +---------------- lib/Control.ts | 34 +----- lib/Crypto.ts | 11 +- lib/ECPair.ts | 43 ++----- lib/Generating.ts | 13 +-- lib/HDNode.ts | 43 ++++--- lib/Mining.ts | 9 +- lib/Mnemonic.ts | 18 +-- lib/Price.ts | 6 +- lib/RawTransactions.ts | 45 +------- lib/Schnorr.ts | 81 ++++--------- lib/Script.ts | 55 +-------- lib/Socket.ts | 7 +- lib/Transaction.ts | 22 +--- lib/TransactionBuilder.ts | 9 +- lib/Util.ts | 5 - lib/interfaces/vendors.d.ts | 223 +++++++++++++++++++++++++++++++++++- package-lock.json | 65 ++++++++--- package.json | 1 + 23 files changed, 360 insertions(+), 595 deletions(-) diff --git a/lib/Address.ts b/lib/Address.ts index 4b667373..96a948f0 100644 --- a/lib/Address.ts +++ b/lib/Address.ts @@ -1,88 +1,11 @@ import axios from "axios" +import { AddressDetailsResult, AddressUtxoResult, AddressUnconfirmedResult } from "bitcoin-com-rest"; const Bitcoin = require("bitcoincashjs-lib") const cashaddr = require("cashaddrjs") const coininfo = require("coininfo") -export interface Address { - toLegacyAddress(address: string): string - toCashAddress(address: string, prefix?: boolean, regtest?: boolean): string - legacyToHash160(address: string): string - cashToHash160(address: string): string - // regtestToHash160(address: string): string - isHash160(address: string): boolean - hash160ToLegacy(hash160: any, network?: any): string - hash160ToCash(hash160: any, network?: any, regtest?: boolean): string - isLegacyAddress(address: string): boolean - isCashAddress(address: string): boolean - isMainnetAddress(address: string): boolean - isTestnetAddress(address: string): boolean - isRegTestAddress(address: string): boolean - isP2PKHAddress(address: string): boolean - isP2SHAddress(address: string): boolean - detectAddressFormat(address: string): string - detectAddressNetwork(address: string): string - detectAddressType(address: string): string - fromXPub(xpub: string, path?: string): string - fromXPriv(xpriv: string, path?: string): string - fromOutputScript(scriptPubKey: any, network?: string): string - details( - address: string | string[] - ): Promise - utxo( - address: string | string[] - ): Promise - unconfirmed( - address: string | string[] - ): Promise - // TODO add interface for AddressTransactionsResult - transactions(address: string | string[]): Promise -} - -export interface AddressDetailsResult { - balance: number - balanceSat: number - totalReceived: number - totalReceivedSat: number - totalSent: number - totalSentSat: number - unconfirmedBalance: number - unconfirmedBalanceSat: number - unconfirmedTxApperances: number - txApperances: number - transactions: string[] - legacyAddress: string - cashAddress: string -} - -export interface AddressUtxoResult { - legacyAddress: string - cashAddress: string - scriptPubKey: string - utxos: [ - { - txid: string - vout: number - amount: number - satoshis: number - height: number - confirmations: number - } - ] -} - -export interface AddressUnconfirmedResult { - txid: string - vout: number - scriptPubKey: string - amount: number - satoshis: number - confirmations: number - ts: number - legacyAddress: string - cashAddress: string -} -export class Address implements Address { +export class Address { restURL: string constructor(restURL: string) { this.restURL = restURL diff --git a/lib/BITBOX.ts b/lib/BITBOX.ts index 3dcc880d..c5054913 100644 --- a/lib/BITBOX.ts +++ b/lib/BITBOX.ts @@ -25,31 +25,8 @@ import { Socket } from "./Socket" import { Wallet } from "./Wallet" import { Schnorr } from "./Schnorr" -export interface BITBOX { - restURL: string - Address: Address - BitcoinCash: BitcoinCash - Block: Block - Blockchain: Blockchain - Control: Control - Crypto: Crypto - ECPair: any - Generating: Generating - HDNode: HDNode - Mining: Mining - Mnemonic: Mnemonic - Price: Price - RawTransactions: RawTransactions - Script: Script - Transaction: Transaction - TransactionBuilder: any - Util: Util - Socket: any - Wallet: Wallet - Schnorr: Schnorr -} -export class BITBOX implements BITBOX { +export class BITBOX { restURL: string Address: Address BitcoinCash: BitcoinCash diff --git a/lib/BitcoinCash.ts b/lib/BitcoinCash.ts index f8646674..28df88d4 100644 --- a/lib/BitcoinCash.ts +++ b/lib/BitcoinCash.ts @@ -9,31 +9,6 @@ const wif = require("wif") const Buffer = require("safe-buffer").Buffer -export interface BitcoinCash { - _address: any - toSatoshi(coins: number): number - toBitcoinCash(satoshis: number): number - signMessageWithPrivKey(privateKeyWIF: string, message: string): string - verifyMessage(address: string, signature: string, message: string): boolean - encodeBase58Check(hex: string): string - decodeBase58Check(address: string): string - encodeBIP21( - address: string, - options: EncodeBIP21Options, - regtest?: boolean - ): string - decodeBIP21(url: string): BIP21Object - getByteCount( - inputs: ByteCountInput | object, - outputs: ByteCountOutput - ): number - encryptBIP38(privKeyWIF: string, passphrase: string): string - decryptBIP38( - encryptedKey: string, - passphrase: string, - network: string - ): string -} export interface EncodeBIP21Options { amount?: number @@ -55,7 +30,7 @@ export interface ByteCountOutput { P2SH?: number } -export class BitcoinCash implements BitcoinCash { +export class BitcoinCash { _address: any constructor(address: any) { this._address = address diff --git a/lib/Block.ts b/lib/Block.ts index 2fcb7290..a4629061 100644 --- a/lib/Block.ts +++ b/lib/Block.ts @@ -1,33 +1,8 @@ import axios from "axios" +import { BlockDetails } from "bitcoin-com-rest"; -export interface Block { - restURL: string - detailsByHeight(id: number | number[]): Promise - detailsByHash(hash: string | string[]): Promise -} - -export interface BlockDetails { - hash: string - size: number - height: number - version: number - merkleroot: string - tx: string[] - time: number - mediantime?: number - nonce: number - bits: string - difficulty: number - chainwork: string - confirmations: number - previousblockhash: string - nextblockhash: string - reward: number - isMainChain: boolean - poolInfo: object -} -export class Block implements Block { +export class Block { restURL: string constructor(restURL: string) { this.restURL = restURL diff --git a/lib/Blockchain.ts b/lib/Blockchain.ts index 45acaaf4..75548c00 100644 --- a/lib/Blockchain.ts +++ b/lib/Blockchain.ts @@ -4,100 +4,9 @@ */ import axios from "axios" -import { BlockDetails } from "./Block" +import { BlockDetails, BlockchainInfo, BlockHeader, ChainTip, MempoolInfo, TxOut, MempoolEntryResult } from "bitcoin-com-rest"; -export interface Blockchain { - restURL: string - getBestBlockHash(): Promise - getBlock(blockhash: string, verbose?: boolean): Promise - getBlockchainInfo(): Promise - getBlockCount(): Promise - getBlockHash(height?: number): Promise - getBlockHeader( - hash: string | string[], - verbose?: boolean - ): Promise - getChainTips(): Promise - getDifficulty(): Promise - getMempoolAncestors(txid: string, verbose?: boolean): Promise - getMempoolDescendants(txid: string, verbose?: boolean): Promise - getMempoolEntry(txid: string | string[]): Promise - getMempoolInfo(): Promise - getRawMempool(verbose?: boolean): Promise - getTxOut( - txid: string, - n: any, - include_mempool?: boolean - ): Promise - getTxOutProof(txids: string | string[]): Promise - preciousBlock(blockhash: string): Promise - pruneBlockchain(height: number): Promise - verifyChain(checklevel?: number, nblocks?: number): Promise - verifyTxOutProof(proof: any | any[]): Promise -} - -export interface MempoolInfo { - size: number - bytes: number - usage: number - maxmempool: number - mempoolminfee: number -} - -export interface BlockchainInfo { - chain: string - blocks: number - headers: number - bestblockhash: string - difficulty: number - mediantime: number - verificationprogress: number - chainwork: string - pruned: boolean - softforks: object[] - bip9_softforks: object -} - -export interface BlockHeader { - hash: string - confirmations: number - height: number - version: number - versionHex: string - merkleroot: string - time: number - mediantime: number - nonce: number - bits: string - difficulty: number - chainwork: string - previousblockhash: string - nextblockhash: string -} - -export interface ChainTip { - height: number - hash: string - branchlen: number - status: string -} - -export interface TxOut { - bestblock: string - confirmations: number - value: number - scriptPubKey: { - asm: string - hex: string - reqSigs: number - type: string - addresses: string[] - } - version: number - coinbase: boolean -} - -export class Blockchain implements Blockchain { +export class Blockchain { restURL: string constructor(restURL: string) { this.restURL = restURL @@ -231,7 +140,7 @@ export class Blockchain implements Blockchain { async getMempoolAncestors( txid: string, verbose: boolean = false - ): Promise { + ): Promise { if (typeof txid !== "string") txid = JSON.stringify(txid) try { @@ -251,7 +160,7 @@ export class Blockchain implements Blockchain { async getMempoolDescendants( txid: string, verbose: boolean = false - ): Promise { + ): Promise { if (typeof txid !== "string") txid = JSON.stringify(txid) try { @@ -267,7 +176,7 @@ export class Blockchain implements Blockchain { } } - async getMempoolEntry(txid: string | string[]): Promise { + async getMempoolEntry(txid: string | string[]): Promise { //if (typeof txid !== "string") txid = JSON.stringify(txid) try { @@ -309,7 +218,7 @@ export class Blockchain implements Blockchain { } } - async getRawMempool(verbose: boolean = false): Promise { + async getRawMempool(verbose: boolean = false): Promise { // TODO fix verbose try { const response: any = await axios.get( diff --git a/lib/Control.ts b/lib/Control.ts index ce20ffb9..d8ba1c22 100644 --- a/lib/Control.ts +++ b/lib/Control.ts @@ -1,37 +1,7 @@ import axios from "axios" +import { NodeInfo, NodeMemoryInfo } from "bitcoin-com-rest"; -export interface Control { - restURL: string - getInfo(): Promise - getMemoryInfo(): Promise -} - -export interface NodeInfo { - version: number - protocolversion: number - blocks: number - timeoffset: number - connections: number - proxy: string - difficulty: number - testnet: boolean - paytxfee: number - relayfee: number - errors: string -} - -export interface NodeMemoryInfo { - locked: { - used: number - free: number - total: number - locked: number - chunks_used: number - chunks_free: number - } -} - -export class Control implements Control { +export class Control { restURL: string constructor(restURL: string) { this.restURL = restURL diff --git a/lib/Crypto.ts b/lib/Crypto.ts index 19c75e4d..2eb6807e 100644 --- a/lib/Crypto.ts +++ b/lib/Crypto.ts @@ -1,16 +1,7 @@ const randomBytes = require("randombytes") const Bitcoin = require("bitcoincashjs-lib") -import { Buffer } from "buffer" -export interface Crypto { - sha256(buffer: Buffer): Buffer - ripemd160(buffer: Buffer): Buffer - hash256(buffer: Buffer): Buffer - hash160(buffer: Buffer): Buffer - randomBytes(size: number): Buffer -} - -export class Crypto implements Crypto { +export class Crypto { static sha256(buffer: Buffer): Buffer { return Bitcoin.crypto.sha256(buffer) } diff --git a/lib/ECPair.ts b/lib/ECPair.ts index 8d70da3f..14bd618d 100644 --- a/lib/ECPair.ts +++ b/lib/ECPair.ts @@ -1,36 +1,15 @@ +import * as bcl from "bitcoincashjs-lib"; + const Bitcoin = require("bitcoincashjs-lib") const coininfo = require("coininfo") -import { Buffer } from "buffer" -export type ECSignature = any -export interface ECPair { - _address: any - fromWIF(privateKeyWIF: string): ECPair - toWIF(): string - toWIF(ecpair: ECPair): string - sign(sigHash: number): ECSignature - sign(ecpair: ECPair, sigHash: number): ECSignature - sign(buffer: Buffer): Boolean | ECSignature - sign(ecpair: ECPair, buffer: Buffer): Boolean | ECSignature - verify(buffer: Buffer, signature: ECSignature): boolean - verify(ecpair: ECPair, buffer: Buffer, signature: ECSignature): boolean - fromPublicKey(pubkeyBuffer: Buffer): ECPair - toPublicKey(): Buffer - toPublicKey(ecpair: ECPair): Buffer - getPublicKeyBuffer(): Buffer - toLegacyAddress(): string - toLegacyAddress(ecpair: ECPair): string - toCashAddress(): string - toCashAddress(ecpair: ECPair, regtest?: boolean): string - getAddress(): string -} -export class ECPair implements ECPair { +export class ECPair { static _address: any static setAddress(address: any): void { ECPair._address = address } - static fromWIF(privateKeyWIF: string): any { + static fromWIF(privateKeyWIF: string): bcl.ECPair { let network: string = "mainnet" if (privateKeyWIF[0] === "L" || privateKeyWIF[0] === "K") network = "mainnet" @@ -45,31 +24,31 @@ export class ECPair implements ECPair { return Bitcoin.ECPair.fromWIF(privateKeyWIF, bitcoincashBitcoinJSLib) } - static toWIF(ecpair: ECPair): string { + static toWIF(ecpair: bcl.ECPair): string { return ecpair.toWIF() } - static sign(ecpair: ECPair, buffer: Buffer): ECSignature { + static sign(ecpair: bcl.ECPair, buffer: Buffer): bcl.ECSignature { return ecpair.sign(buffer) } - static verify(ecpair: ECPair, buffer: Buffer, signature: ECSignature): any { + static verify(ecpair: bcl.ECPair, buffer: Buffer, signature: bcl.ECSignature): boolean { return ecpair.verify(buffer, signature) } - static fromPublicKey(pubkeyBuffer: Buffer): any { + static fromPublicKey(pubkeyBuffer: Buffer): bcl.ECPair { return Bitcoin.ECPair.fromPublicKeyBuffer(pubkeyBuffer) } - static toPublicKey(ecpair: ECPair): Buffer { + static toPublicKey(ecpair: bcl.ECPair): Buffer { return ecpair.getPublicKeyBuffer() } - static toLegacyAddress(ecpair: ECPair): string { + static toLegacyAddress(ecpair: bcl.ECPair): string { return ecpair.getAddress() } - static toCashAddress(ecpair: ECPair, regtest: boolean = false): string { + static toCashAddress(ecpair: bcl.ECPair, regtest: boolean = false): string { return ECPair._address.toCashAddress(ecpair.getAddress(), true, regtest) } } diff --git a/lib/Generating.ts b/lib/Generating.ts index 80e015ca..d51f4f32 100644 --- a/lib/Generating.ts +++ b/lib/Generating.ts @@ -1,15 +1,6 @@ import axios from "axios" -export interface Generating { - restURL: string - generateToAddress( - blocks: number, - address: string, - maxtries?: number - ): Promise -} - -export class Generating implements Generating { +export class Generating { restURL: string constructor(restURL: string) { this.restURL = restURL @@ -19,7 +10,7 @@ export class Generating implements Generating { blocks: number, address: string, maxtries: number = 1000000 - ): Promise { + ): Promise { try { const response: any = await axios.post( `${ diff --git a/lib/HDNode.ts b/lib/HDNode.ts index c683c491..4e637408 100644 --- a/lib/HDNode.ts +++ b/lib/HDNode.ts @@ -1,8 +1,7 @@ const Bitcoin = require("bitcoincashjs-lib") const coininfo = require("coininfo") const bip32utils = require("bip32-utils") -import { ECPair, ECSignature } from "./ECPair" -import * as bitcoincashjs from "bitcoincashjs-lib" +import * as bcl from "bitcoincashjs-lib" export class HDNode { _address: any @@ -10,7 +9,7 @@ export class HDNode { this._address = address } - fromSeed(rootSeedBuffer: any, network: string = "mainnet"): HDNode { + fromSeed(rootSeedBuffer: any, network: string = "mainnet"): bcl.HDNode { let bitcoincash: any if (network === "bitcoincash" || network === "mainnet") bitcoincash = coininfo.bitcoincash.main @@ -23,35 +22,35 @@ export class HDNode { ) } - toLegacyAddress(hdNode: bitcoincashjs.HDNode): string { + toLegacyAddress(hdNode: bcl.HDNode): string { return hdNode.getAddress() } - toCashAddress(hdNode: bitcoincashjs.HDNode, regtest: boolean = false): string { + toCashAddress(hdNode: bcl.HDNode, regtest: boolean = false): string { return this._address.toCashAddress(hdNode.getAddress(), true, regtest) } - toWIF(hdNode: bitcoincashjs.HDNode): string { + toWIF(hdNode: bcl.HDNode): string { return hdNode.keyPair.toWIF() } - toXPub(hdNode: bitcoincashjs.HDNode): string { + toXPub(hdNode: bcl.HDNode): string { return hdNode.neutered().toBase58() } - toXPriv(hdNode: bitcoincashjs.HDNode): string { + toXPriv(hdNode: bcl.HDNode): string { return hdNode.toBase58() } - toKeyPair(hdNode: bitcoincashjs.HDNode): ECPair { + toKeyPair(hdNode: bcl.HDNode): bcl.ECPair { return hdNode.keyPair } - toPublicKey(hdNode: bitcoincashjs.HDNode): Buffer { + toPublicKey(hdNode: bcl.HDNode): Buffer { return hdNode.getPublicKeyBuffer() } - fromXPriv(xpriv: string): bitcoincashjs.HDNode { + fromXPriv(xpriv: string): bcl.HDNode { let bitcoincash: any if (xpriv[0] === "x") bitcoincash = coininfo.bitcoincash.main else if (xpriv[0] === "t") bitcoincash = coininfo.bitcoincash.test @@ -60,7 +59,7 @@ export class HDNode { return Bitcoin.HDNode.fromBase58(xpriv, bitcoincashBitcoinJSLib) } - fromXPub(xpub: string): bitcoincashjs.HDNode { + fromXPub(xpub: string): bcl.HDNode { let bitcoincash: any if (xpub[0] === "x") bitcoincash = coininfo.bitcoincash.main else if (xpub[0] === "t") bitcoincash = coininfo.bitcoincash.test @@ -69,35 +68,35 @@ export class HDNode { return Bitcoin.HDNode.fromBase58(xpub, bitcoincashBitcoinJSLib) } - derivePath(hdnode: bitcoincashjs.HDNode, path: string): bitcoincashjs.HDNode { + derivePath(hdnode: bcl.HDNode, path: string): bcl.HDNode { return hdnode.derivePath(path) } - derive(hdnode: bitcoincashjs.HDNode, path: string): bitcoincashjs.HDNode { + derive(hdnode: bcl.HDNode, path: string): bcl.HDNode { return hdnode.derive(path) } - deriveHardened(hdnode: bitcoincashjs.HDNode, path: string): bitcoincashjs.HDNode { + deriveHardened(hdnode: bcl.HDNode, path: string): bcl.HDNode { return hdnode.deriveHardened(path) } - sign(hdnode: bitcoincashjs.HDNode, buffer: Buffer): ECSignature { + sign(hdnode: bcl.HDNode, buffer: Buffer): bcl.ECSignature { return hdnode.sign(buffer) } - verify(hdnode: bitcoincashjs.HDNode, buffer: Buffer, signature: ECSignature): boolean { + verify(hdnode: bcl.HDNode, buffer: Buffer, signature: bcl.ECSignature): boolean { return hdnode.verify(buffer, signature) } - isPublic(hdnode: bitcoincashjs.HDNode): boolean { + isPublic(hdnode: bcl.HDNode): boolean { return JSON.parse(hdnode.isNeutered()) } - isPrivate(hdnode: bitcoincashjs.HDNode): boolean { + isPrivate(hdnode: bcl.HDNode): boolean { return !hdnode.isNeutered() } - toIdentifier(hdnode: bitcoincashjs.HDNode): string { + toIdentifier(hdnode: bcl.HDNode): string { return hdnode.getIdentifier() } @@ -105,14 +104,14 @@ export class HDNode { return Bitcoin.HDNode.fromBase58(base58, network) } - createAccount(hdNodes: bitcoincashjs.HDNode[]): object { + createAccount(hdNodes: bcl.HDNode[]): object { const arr = hdNodes.map( (item: any, index: number) => new bip32utils.Chain(item.neutered()) ) return new bip32utils.Account(arr) } - createChain(hdNode: bitcoincashjs.HDNode): object { + createChain(hdNode: bcl.HDNode): object { return new bip32utils.Chain(hdNode) } } diff --git a/lib/Mining.ts b/lib/Mining.ts index 98e743b4..4f0ea545 100644 --- a/lib/Mining.ts +++ b/lib/Mining.ts @@ -1,14 +1,7 @@ import axios from "axios" -export interface Mining { - restURL: string - getBlockTemplate(template_request: any): Promise - getMiningInfo(): Promise - getNetworkHashps(nblocks?: number, height?: number): Promise - submitBlock(hex: string, parameters: any): Promise -} -export class Mining implements Mining { +export class Mining { restURL: string constructor(restURL: string) { this.restURL = restURL diff --git a/lib/Mnemonic.ts b/lib/Mnemonic.ts index 22501c47..51ab94b1 100644 --- a/lib/Mnemonic.ts +++ b/lib/Mnemonic.ts @@ -4,23 +4,7 @@ const Bitcoin = require("bitcoincashjs-lib") import { Buffer } from "buffer" const wif = require("wif") -export interface Mnemonic { - _address: any - generate(bits?: number, wordlist?: string[]): string - fromEntropy(bytes: Buffer, wordlist: string[]): string - toEntropy(mnemonic: string, wordlist: string[]): Buffer - validate(mnemonic: string, wordlist: string[]): string - toSeed(mnemonic: string, password: string): Buffer - wordLists(): any - toKeypairs( - mnemonic: string, - numberOfKeypairs?: number, - regtest?: boolean - ): { privateKeyWIF: string; address: string }[] - findNearestWord(word: string, wordlist: string[]): string -} - -export class Mnemonic implements Mnemonic { +export class Mnemonic { _address: any constructor(address: any) { this._address = address diff --git a/lib/Price.ts b/lib/Price.ts index 2c9f74e0..da2765e0 100644 --- a/lib/Price.ts +++ b/lib/Price.ts @@ -1,10 +1,6 @@ import axios from "axios" -export interface Price { - current(currency?: string): Promise -} - -export class Price implements Price { +export class Price { async current(currency: string = "usd"): Promise { try { const response: any = await axios.get( diff --git a/lib/RawTransactions.ts b/lib/RawTransactions.ts index 3cdef70b..a0abd74a 100644 --- a/lib/RawTransactions.ts +++ b/lib/RawTransactions.ts @@ -1,46 +1,7 @@ import axios from "axios" +import { VerboseRawTransaction } from "bitcoin-com-rest"; -export interface RawTransactions { - restURL: string - decodeRawTransaction(hex: string | string[]): Promise - decodeScript(script: string | string[]): Promise - getRawTransaction( - txid: string | string, - verbose?: boolean - ): Promise - sendRawTransaction( - hex: string | string[], - allowhighfees?: boolean - ): Promise -} - -export interface VerboseRawTransaction { - hex: string - txid: string - size: number - version: number - locktime: number - vin: [{ coinbase: string; sequence: number }] - vout: [ - { - value: number - n: number - scriptPubKey: { - asm: string - hex: string - reqSigs: number - type: string - addresses: string[] - } - } - ] - blockhash: string - confirmations: number - time: number - blocktime: number -} - -export class RawTransactions implements RawTransactions { +export class RawTransactions { restURL: string constructor(restURL: string) { this.restURL = restURL @@ -110,7 +71,7 @@ export class RawTransactions implements RawTransactions { async getRawTransaction( txid: string | string[], verbose: boolean = false - ): Promise { + ): Promise { try { if (typeof txid === "string") { const response: any = await axios.get( diff --git a/lib/Schnorr.ts b/lib/Schnorr.ts index a872c6fa..b00d4e88 100644 --- a/lib/Schnorr.ts +++ b/lib/Schnorr.ts @@ -1,53 +1,16 @@ const schnorr = require("bip-schnorr") -import { Buffer } from "buffer" - -export interface Schnorr { - sign(privateKey: any, message: Buffer): Buffer - verify(publicKey: Buffer, message: Buffer, signatureToVerify: Buffer): void - batchVerify( - publicKeys: Buffer[], - messages: Buffer[], - signaturesToVerify: Buffer[] - ): void - nonInteractive(privateKeys: any, message: Buffer): Buffer - computeEll(publicKeys: any): Buffer - publicKeyCombine(publicKeys: Buffer[], publicKeyHash: Buffer): Buffer - sessionInitialize( - sessionId: Buffer, - privateKey: any, - message: Buffer, - pubKeyCombined: Buffer, - ell: Buffer, - idx: number - ): any - sessionNonceCombine(session: any, nonces: Buffer[]): Buffer - partialSign( - session: any, - message: Buffer, - nonceCombined: Buffer, - pubKeyCombined: Buffer - ): void - partialSignatureVerify( - session: any, - partialSignature: any, - nonceCombined: Buffer, - idx: any, - pubKey: Buffer, - nonce: Buffer - ): void - partialSignaturesCombine( - nonceCombined: Buffer, - partialSignatures: any - ): Buffer - bufferToInt(buffer: any): any - intToBuffer(bigInteger: any): any - hash(buffer: any): any - pointToBuffer(point: any): any - pubKeyToPoint(publicKey: any): any +import * as BigInteger from "bigi" + +export interface Session { + sessionId: Buffer; + message: Buffer; + pubKeyCombined: Buffer; + ell: Buffer; + idx: number; } -export class Schnorr implements Schnorr { - sign(privateKey: any, message: Buffer): Buffer { +export class Schnorr { + sign(privateKey: BigInteger, message: Buffer): Buffer { return schnorr.sign(privateKey, message) } @@ -63,11 +26,11 @@ export class Schnorr implements Schnorr { return schnorr.batchVerify(publicKeys, messages, signaturesToVerify) } - nonInteractive(privateKeys: any, message: Buffer): Buffer { + nonInteractive(privateKeys: BigInteger, message: Buffer): Buffer { return schnorr.muSig.nonInteractive(privateKeys, message) } - computeEll(publicKeys: any): Buffer { + computeEll(publicKeys: BigInteger): Buffer { return schnorr.muSig.computeEll(publicKeys) } @@ -77,12 +40,12 @@ export class Schnorr implements Schnorr { sessionInitialize( sessionId: Buffer, - privateKey: any, + privateKey: BigInteger, message: Buffer, pubKeyCombined: Buffer, ell: Buffer, idx: number - ): any { + ): Session { return schnorr.muSig.sessionInitialize( sessionId, privateKey, @@ -93,12 +56,12 @@ export class Schnorr implements Schnorr { ) } - sessionNonceCombine(session: any, nonces: Buffer[]): Buffer { + sessionNonceCombine(session: Session, nonces: Buffer[]): Buffer { return schnorr.muSig.sessionNonceCombine(session, nonces) } partialSign( - session: any, + session: Session, message: Buffer, nonceCombined: Buffer, pubKeyCombined: Buffer @@ -112,8 +75,8 @@ export class Schnorr implements Schnorr { } partialSignatureVerify( - session: any, - partialSignature: any, + session: Session, + partialSignature: Buffer, nonceCombined: Buffer, idx: number, pubKey: Buffer, @@ -131,20 +94,20 @@ export class Schnorr implements Schnorr { partialSignaturesCombine( nonceCombined: Buffer, - partialSignatures: any + partialSignatures: Buffer ): Buffer { return schnorr.muSig.partialSigCombine(nonceCombined, partialSignatures) } - bufferToInt(buffer: any): any { + bufferToInt(buffer: Buffer): BigInteger { return schnorr.convert.bufferToInt(buffer) } - intToBuffer(bigInteger: any): any { + intToBuffer(bigInteger: BigInteger): Buffer { return schnorr.convert.intToBuffer(bigInteger) } - hash(buffer: any): any { + hash(buffer: Buffer): Buffer { return schnorr.convert.hash(buffer) } diff --git a/lib/Script.ts b/lib/Script.ts index d1f0dc7c..3b1a1d31 100644 --- a/lib/Script.ts +++ b/lib/Script.ts @@ -1,50 +1,5 @@ const Bitcoin = require("bitcoincashjs-lib") const opcodes = require("bitcoincash-ops") -import { Buffer } from "buffer" - -export interface Script { - opcodes: opcodes - nullData: any - multisig: any - pubKey: any - pubKeyHash: any - scriptHash: any - classifyInput(script: Buffer): any - classifyOutput(script: Buffer): any - decode(scriptBuffer: Buffer): any[] - encode(scriptChunks: any[]): Buffer - toASM(buffer: Buffer): string - fromASM(asm: string): Buffer - encodeNullDataOutput(data: Buffer): Buffer - decodeNullDataOutput(output: Buffer): Buffer - checkNullDataOutput(ouput: Buffer): Boolean - encodeP2PKInput(signature: Buffer): Buffer - decodeP2PKInput(input: Buffer): Buffer - checkP2PKInput(input: Buffer): Boolean - encodeP2PKOutput(pubKey: Buffer): Buffer - decodeP2PKOutput(pubKey: Buffer): Buffer - checkP2PKOutput(ouput: Buffer): Boolean - encodeP2PKHInput(signature: Buffer, pubKey: Buffer): Buffer - decodeP2PKHInput(signature: Buffer): Buffer - checkP2PKHInput(input: Buffer): Boolean - encodeP2PKHOutput(signature: Buffer, pubKey: Buffer): Buffer - decodeP2PKHOutput(output: Buffer): Buffer - checkP2PKHOutput(output: Buffer): Boolean - encodeP2MSInput(signatures: Buffer[]): Buffer - decodeP2MSInput(input: Buffer): Buffer - checkP2MSInput(input: Buffer): Boolean - encodeP2MSOutput(m: number, pubKeys: Buffer[]): Buffer - decodeP2MSOutput(output: Buffer): Buffer - checkP2MSOutput(input: Buffer): Boolean - encodeP2SHInput(redeemScriptSig: Buffer, redeemScript: Buffer): Buffer - decodeP2SHInput(input: Buffer): Buffer - checkP2SHInput(input: Buffer): boolean - encodeP2SHOutput(scriptHash: Buffer): Buffer - decodeP2SHOutput(output: Buffer): Buffer - checkP2SHOutput(output: Buffer): Boolean - classifyInput(input: Buffer): string - classifyOutput(output: Buffer): string -} export interface opcodes { OP_FALSE: 0 @@ -183,7 +138,7 @@ export interface opcodes { OP_INVALIDOPCODE: 255 } -export class Script implements Script { +export class Script { opcodes: opcodes nullData: any multisig: any @@ -223,11 +178,11 @@ export class Script implements Script { this.scriptHash = Bitcoin.script.scriptHash } - classifyInput(script: any): string { + classifyInput(script: Buffer): string { return Bitcoin.script.classifyInput(script) } - classifyOutput(script: any): string { + classifyOutput(script: Buffer): string { return Bitcoin.script.classifyOutput(script) } @@ -243,11 +198,11 @@ export class Script implements Script { return Bitcoin.script.compile(arr) } - toASM(buffer: any): any { + toASM(buffer: Buffer): string { return Bitcoin.script.toASM(buffer) } - fromASM(asm: any): any { + fromASM(asm: string): any { return Bitcoin.script.fromASM(asm) } } diff --git a/lib/Socket.ts b/lib/Socket.ts index 9b020d99..90e1b6ce 100644 --- a/lib/Socket.ts +++ b/lib/Socket.ts @@ -1,11 +1,6 @@ const io = require("socket.io-client") -export interface Socket { - socket: any - listen(endpoint: any, cb: any): void -} - -export class Socket implements Socket { +export class Socket { socket: any constructor(config: any = {}) { if (typeof config === "string") { diff --git a/lib/Transaction.ts b/lib/Transaction.ts index 0baebe49..b703da41 100644 --- a/lib/Transaction.ts +++ b/lib/Transaction.ts @@ -1,26 +1,6 @@ const Bitcoin = require("bitcoincashjs-lib") import axios from "axios" - -export interface Transaction { - restURL: string - details(txid: string | string[]): Promise -} - -export interface TxnDetails { - txid: string - version: number - locktime: number - vin: object[] - vout: object[] - blockhash: string - blockheight: number - confirmations: number - time: number - blocktime: number - isCoinBase: boolean - valueOut: number - size: number -} +import { TxnDetails } from "bitcoin-com-rest"; export class Transaction implements Transaction { restURL: string diff --git a/lib/TransactionBuilder.ts b/lib/TransactionBuilder.ts index 823c077a..b5beb540 100644 --- a/lib/TransactionBuilder.ts +++ b/lib/TransactionBuilder.ts @@ -1,15 +1,10 @@ +import { ECPair } from "bitcoincashjs-lib"; + const Bitcoin = require("bitcoincashjs-lib") const coininfo = require("coininfo") const bip66 = require("bip66") const bip68 = require("bc-bip68") -import { Buffer } from "buffer" - -import { Transaction } from "./Transaction" -import { ECPair } from "./ECPair" - -declare type ECSignature = any - export interface TransactionBuilder { transaction: any DEFAULT_SEQUENCE: any diff --git a/lib/Util.ts b/lib/Util.ts index a32437a1..81ec807e 100644 --- a/lib/Util.ts +++ b/lib/Util.ts @@ -1,10 +1,5 @@ import axios from "axios" -export interface Util { - restURL: string - validateAddress(address: string): Promise -} - export interface AddressDetails { isvalid: boolean address: string diff --git a/lib/interfaces/vendors.d.ts b/lib/interfaces/vendors.d.ts index 9adb185c..4290e3ee 100644 --- a/lib/interfaces/vendors.d.ts +++ b/lib/interfaces/vendors.d.ts @@ -13,6 +13,227 @@ declare module "bitcoincashjs-lib" { derivePath(path: any): any derive(path: any): any } + + export interface ECPair { + toWIF(): string + sign(buffer: Buffer): Boolean | ECSignature + verify(buffer: Buffer, signature: ECSignature): boolean + getPublicKeyBuffer(): Buffer + getAddress(): string + } + + export type ECSignature = any +} + +declare module "bitcoin-com-rest" { + export interface BlockDetails { + hash: string + size: number + height: number + version: number + merkleroot: string + tx: string[] + time: number + mediantime?: number + nonce: number + bits: string + difficulty: number + chainwork: string + confirmations: number + previousblockhash: string + nextblockhash: string + reward: number + isMainChain: boolean + poolInfo: object + } + + export interface MempoolInfo { + size: number + bytes: number + usage: number + maxmempool: number + mempoolminfee: number + } + + export interface BlockchainInfo { + chain: string + blocks: number + headers: number + bestblockhash: string + difficulty: number + mediantime: number + verificationprogress: number + chainwork: string + pruned: boolean + softforks: object[] + bip9_softforks: object + } + + export interface BlockHeader { + hash: string + confirmations: number + height: number + version: number + versionHex: string + merkleroot: string + time: number + mediantime: number + nonce: number + bits: string + difficulty: number + chainwork: string + previousblockhash: string + nextblockhash: string + } - // TODO : Fill in other bitcoincashjs object definitions here + export interface ChainTip { + height: number + hash: string + branchlen: number + status: string + } + + export interface TxOut { + bestblock: string + confirmations: number + value: number + scriptPubKey: { + asm: string + hex: string + reqSigs: number + type: string + addresses: string[] + } + version: number + coinbase: boolean + } + + export interface MempoolEntryResult { + size : number, + fee : number, + modifiedfee : number, + time : number, + height : number, + startingpriority : number, + currentpriority : number, + descendantcount : number, + descendantsize : number, + descendantfees : number, + ancestorcount : number, + ancestorsize : number, + ancestorfees : number, + depends : string[], + spentby : string[] + } + + export interface NodeInfo { + version: number + protocolversion: number + blocks: number + timeoffset: number + connections: number + proxy: string + difficulty: number + testnet: boolean + paytxfee: number + relayfee: number + errors: string + } + + export interface NodeMemoryInfo { + locked: { + used: number + free: number + total: number + locked: number + chunks_used: number + chunks_free: number + } + } + + export interface VerboseRawTransaction { + hex: string + txid: string + size: number + version: number + locktime: number + vin: [{ coinbase: string; sequence: number }] + vout: [ + { + value: number + n: number + scriptPubKey: { + asm: string + hex: string + reqSigs: number + type: string + addresses: string[] + } + } + ] + blockhash: string + confirmations: number + time: number + blocktime: number + } + + export interface TxnDetails { + txid: string + version: number + locktime: number + vin: object[] + vout: object[] + blockhash: string + blockheight: number + confirmations: number + time: number + blocktime: number + isCoinBase: boolean + valueOut: number + size: number + } + + export interface AddressDetailsResult { + balance: number + balanceSat: number + totalReceived: number + totalReceivedSat: number + totalSent: number + totalSentSat: number + unconfirmedBalance: number + unconfirmedBalanceSat: number + unconfirmedTxApperances: number + txApperances: number + transactions: string[] + legacyAddress: string + cashAddress: string + } + + export interface AddressUtxoResult { + legacyAddress: string + cashAddress: string + scriptPubKey: string + utxos: [ + { + txid: string + vout: number + amount: number + satoshis: number + height: number + confirmations: number + } + ] + } + + export interface AddressUnconfirmedResult { + txid: string + vout: number + scriptPubKey: string + amount: number + satoshis: number + confirmations: number + ts: number + legacyAddress: string + cashAddress: string + } } \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 63879c69..20a56f80 100644 --- a/package-lock.json +++ b/package-lock.json @@ -369,6 +369,11 @@ "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", "dev": true }, + "@types/bigi": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@types/bigi/-/bigi-1.4.2.tgz", + "integrity": "sha512-St8Vm0x1ApYlU9yNaFx3jBis5JVU6oR/5Xtgvn8+N8Ts8f3ze6kOvAAg0aNkbGMGhhG6PrP0nMOgDI9NMFETkA==" + }, "@types/events": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", @@ -1662,11 +1667,13 @@ "bech32": "^1.1.2", "bigi": "^1.4.0", "bip66": "^1.1.0", + "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#2.0.0", "bs58check": "^2.0.0", "create-hash": "^1.1.0", "create-hmac": "^1.1.3", "ecurve": "^1.0.0", "merkle-lib": "^2.0.10", + "pushdata-bitcoin": "github:Bitcoin-com/pushdata-bitcoin#1.2.1", "randombytes": "^2.0.1", "safe-buffer": "^5.0.1", "typeforce": "^1.11.3", @@ -1676,7 +1683,7 @@ "dependencies": { "bitcoincash-ops": { "version": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3", - "from": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3" + "from": "github:Bitcoin-com/bitcoincash-ops#2.0.0" } } }, @@ -4118,7 +4125,8 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "bundled": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -4136,11 +4144,13 @@ }, "balanced-match": { "version": "1.0.0", - "bundled": true + "bundled": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4153,15 +4163,18 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "concat-map": { "version": "0.0.1", - "bundled": true + "bundled": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -4264,7 +4277,8 @@ }, "inherits": { "version": "2.0.3", - "bundled": true + "bundled": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -4274,6 +4288,7 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -4286,17 +4301,20 @@ "minimatch": { "version": "3.0.4", "bundled": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true + "bundled": true, + "optional": true }, "minipass": { "version": "2.3.5", "bundled": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -4313,6 +4331,7 @@ "mkdirp": { "version": "0.5.1", "bundled": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -4385,7 +4404,8 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "bundled": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -4395,6 +4415,7 @@ "once": { "version": "1.4.0", "bundled": true, + "optional": true, "requires": { "wrappy": "1" } @@ -4470,7 +4491,8 @@ }, "safe-buffer": { "version": "5.1.2", - "bundled": true + "bundled": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -4500,6 +4522,7 @@ "string-width": { "version": "1.0.2", "bundled": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -4517,6 +4540,7 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -4555,11 +4579,13 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true + "bundled": true, + "optional": true }, "yallist": { "version": "3.0.3", - "bundled": true + "bundled": true, + "optional": true } } }, @@ -5269,7 +5295,8 @@ "is-extglob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "optional": true }, "is-finite": { "version": "1.0.2", @@ -5288,6 +5315,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "optional": true, "requires": { "is-extglob": "^1.0.0" } @@ -6356,6 +6384,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "optional": true, "requires": { "remove-trailing-separator": "^1.0.1" } @@ -11032,6 +11061,13 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, + "pushdata-bitcoin": { + "version": "github:Bitcoin-com/pushdata-bitcoin#9b75eebe597853c6eeaec3e6c44b6d9c9cd7ee86", + "from": "github:Bitcoin-com/pushdata-bitcoin#1.2.1", + "requires": { + "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#2.0.0" + } + }, "q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", @@ -11287,7 +11323,8 @@ "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "optional": true }, "repeat-element": { "version": "1.1.3", diff --git a/package.json b/package.json index 97c88d26..fc658658 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "url": "git+https://github.com/Bitcoin-com/bitbox-javascript-sdk.git" }, "dependencies": { + "@types/bigi": "^1.4.2", "@types/node": "^10.11.7", "assert": "^1.4.1", "axios": "^0.17.1", From aca333f60a7cb93ec55c22ec796ec34eb1fd3843 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sat, 11 May 2019 12:28:44 +0900 Subject: [PATCH 344/480] Porting more to ts. --- index.ts | 116 ++++++++++++++++++++++++++---------- lib/interfaces/vendors.d.ts | 5 ++ package.json | 6 +- 3 files changed, 94 insertions(+), 33 deletions(-) create mode 100644 lib/interfaces/vendors.d.ts diff --git a/index.ts b/index.ts index 7fe23bd4..7cffe383 100644 --- a/index.ts +++ b/index.ts @@ -1,17 +1,51 @@ #!/usr/bin/env node +/// + require("babel-register") -const path = require("path") -const program = require("commander") -const chalk = require("chalk") -const mkdirp = require("mkdirp") -const figlet = require("figlet") -const clear = require("clear") -const fs = require("fs") -const touch = require("touch") -const emoji = require("node-emoji") -const repl = require("repl") -const BITBOX = require("./lib/BITBOX").BITBOX -const clone = require("git-clone") +import * as path from "path" +import * as program from "commander" +import chalk from "chalk"; +import * as fs from "fs"; +import * as repl from "repl"; +import * as mkdirp from "mkdirp"; +import * as figlet from "figlet"; +import * as clear from "clear"; +import * as touch from "touch"; +import * as emoji from "node-emoji"; +import clone = require("git-clone"); + +import { BITBOX } from "./lib/BITBOX" +// this.Address = new Address(this.restURL) +// this.BitcoinCash = new BitcoinCash(this.Address) +// this.Block = new Block(this.restURL) +// this.Blockchain = new Blockchain(this.restURL) +// this.Control = new Control(this.restURL) +// this.Crypto = Crypto +// this.ECPair = ECPair +// this.ECPair.setAddress(this.Address) +// this.Generating = new Generating(this.restURL) +// this.HDNode = new HDNode(this.Address) +// this.Mining = new Mining(this.restURL) +// this.Mnemonic = new Mnemonic(this.Address) +// this.Price = new Price() +// this.RawTransactions = new RawTransactions(this.restURL) +// this.Script = new Script() +// this.Transaction = new Transaction(this.restURL) +// this.TransactionBuilder = TransactionBuilder +// this.TransactionBuilder.setAddress(this.Address) +// this.Util = new Util(this.restURL) +// this.Socket = Socket +// this.Wallet = Wallet +// this.Schnorr = new Schnorr() + +interface ConsoleOptions { + environment: string +} + +interface NewOptions extends ConsoleOptions { + scaffold: string + restURL: string +} program.version("7.0.19 ", "-v, --version") @@ -19,35 +53,41 @@ program .command("new ") .option( "-s, --scaffold ", - "The framework to use. Options include react, angular, vuejs, nextjs, node and websockets." + "The framework to use. Options include react, angular, vuejs, nextjs, node and websockets. (Default: react)" ) .option( "-r, --restURL ", - "The rest URL to use. default: https://trest.bitcoin.com/v2/" + "The rest URL to use. (Default: https://trest.bitcoin.com/v2/)" ) .option( "-e, --environment ", "environment of running BITBOX instance. Ex: production, staging. (Default: development)" ) .description(`create a new BITBOX application`) - .action((name: any, options: any) => { + .action((name: string, options: NewOptions): void => { + // confirm project doesn't already exist if (fs.existsSync(`./${name}`)) { console.log(chalk.red(`Project ${name} already exists`)) process.exit(1) } - let config + // pass in empty config object as it's not needed for new command + const config: {} = {} + + // get environment option. default to development if no options.environment const environment = fetchOption("environment=development", config, options) + + // get restURL option. default to TREST if no options.restURL const restURL = fetchOption( "restURL=https://trest.bitcoin.com/v2/", config, options ) + // scaffold flow if (options && options.scaffold) { - let scaffold = options.scaffold.toLowerCase() - let repo - const conf = {} + let scaffold: string = options.scaffold.toLowerCase() + let repo: string = '' if (scaffold === "node") { repo = "https://github.com/Bitcoin-com/bitbox-scaffold-node.git" } else if (scaffold === "angular") { @@ -65,10 +105,11 @@ program process.exit(1) } - if (options && options.repo) { - scaffold = "custom repo" - repo = options.repo.toLowerCase() - } + // TODO: Bring this back when we allow --repo flag to clone random repos + // if (options && options.repo) { + // scaffold = "custom repo" + // repo = options.repo.toLowerCase() + // } clear() console.log( @@ -80,8 +121,10 @@ program ) ) + // pass in empty conf object + const conf: {} = {} console.log(chalk.blue(`Scaffolding ${scaffold} app in ${name}`)) - clone(repo, `./${name}`, [conf], (res: any) => { + clone(repo, `./${name}`, [conf], (res: string): any => { if (res === "Error: 'git clone' failed with status 128") { console.log(chalk.red("Must create new app in to an empty directory")) } else { @@ -138,8 +181,15 @@ program "environment of running BITBOX instance. Ex: production, staging. (Default: development)" ) .description("Run a console with Bitcoin Cash RPC commands available") - .action((options: any) => { - let config + .action((options: ConsoleOptions): void => { + let config: { + environments: { + + } + } = { + environments: {} + } + try { config = require(`${process.cwd()}/bitbox.js`).config } catch (err) { @@ -157,10 +207,10 @@ program replServer.context.bitbox = new BITBOX(config.environments[environment]) }) -function fetchOption(kv: any, config: any, options: any) { - const parts = kv.split("=") - const key = parts[0] - const defaultVal = parts[1] +function fetchOption(kv: string, config: any, options: ConsoleOptions | NewOptions): string { + const parts: string[] = kv.split("=") + const key: string = parts[0] + const defaultVal: string = parts[1] if (options && options[key]) return options[key] else if (config && config.new && config.new[key]) return config.new[key] @@ -170,6 +220,8 @@ function fetchOption(kv: any, config: any, options: any) { program.parse(process.argv) // print help if no command given -// if (!process.argv.slice(2).length) program.outputHelp() +if (!process.argv.slice(2).length) program.outputHelp() -module.exports = BITBOX +module.exports = { + BITBOX: BITBOX +} diff --git a/lib/interfaces/vendors.d.ts b/lib/interfaces/vendors.d.ts new file mode 100644 index 00000000..524788f3 --- /dev/null +++ b/lib/interfaces/vendors.d.ts @@ -0,0 +1,5 @@ +declare module "clear" { + export interface Clear { + clear(): void + } +} \ No newline at end of file diff --git a/package.json b/package.json index d1add0ee..eafae0fe 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "bin": { "bitbox": "./index.js" }, - "main": "lib/BITBOX.js", + "main": "index.js", "files": [ "index.js", "lib/" @@ -30,7 +30,11 @@ "url": "git+https://github.com/Bitcoin-com/bitbox-javascript-sdk.git" }, "dependencies": { + "@types/figlet": "^1.2.0", + "@types/mkdirp": "^0.5.2", "@types/node": "^10.11.7", + "@types/node-emoji": "^1.8.1", + "@types/touch": "^3.1.1", "assert": "^1.4.1", "axios": "^0.17.1", "babel-cli": "^6.26.0", From b9f0bcd394c40e38c5e721738de21e6c6d7d222c Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sat, 11 May 2019 13:52:34 +0900 Subject: [PATCH 345/480] Cleaning up. --- .flowconfig | 11 ----- index.ts | 4 +- lib/interfaces/vendors.d.ts | 16 +++++-- package-lock.json | 83 +++++++++++++++++++------------------ 4 files changed, 58 insertions(+), 56 deletions(-) delete mode 100644 .flowconfig diff --git a/.flowconfig b/.flowconfig deleted file mode 100644 index 1fed4453..00000000 --- a/.flowconfig +++ /dev/null @@ -1,11 +0,0 @@ -[ignore] - -[include] - -[libs] - -[lints] - -[options] - -[strict] diff --git a/index.ts b/index.ts index 7cffe383..4c6c95e6 100644 --- a/index.ts +++ b/index.ts @@ -9,10 +9,10 @@ import * as fs from "fs"; import * as repl from "repl"; import * as mkdirp from "mkdirp"; import * as figlet from "figlet"; -import * as clear from "clear"; +let clear = require("clear") import * as touch from "touch"; import * as emoji from "node-emoji"; -import clone = require("git-clone"); +let clone = require("git-clone") import { BITBOX } from "./lib/BITBOX" // this.Address = new Address(this.restURL) diff --git a/lib/interfaces/vendors.d.ts b/lib/interfaces/vendors.d.ts index fcf972e9..aca2b701 100644 --- a/lib/interfaces/vendors.d.ts +++ b/lib/interfaces/vendors.d.ts @@ -1,3 +1,4 @@ +/// declare module "bitcoincashjs-lib" { export interface HDNode { keyPair: any @@ -237,7 +238,16 @@ declare module "bitcoin-com-rest" { cashAddress: string } - export interface Clear { - clear(): void - } } + +// declare module "clear" { +// namespace clear { +// export function clear(clear: boolean): void +// } +// } + +// declare module "git-clone" { +// export function clear(clear?: boolean): void +// } + +// export declare function clear(clear?: boolean): void; diff --git a/package-lock.json b/package-lock.json index 20a56f80..89f4dc61 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.0.0", + "version": "7.0.19", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -380,6 +380,11 @@ "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", "dev": true }, + "@types/figlet": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/figlet/-/figlet-1.2.0.tgz", + "integrity": "sha512-TDZkNpYfkc3X8yv7w1QBziZmmxzNfGKX+YjeNkMpmSiNV0QOdNf9G5cEZB3FH1/oaqpSQEdxuDzURdju2L3lng==" + }, "@types/glob": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", @@ -397,11 +402,32 @@ "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", "dev": true }, + "@types/mkdirp": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz", + "integrity": "sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg==", + "requires": { + "@types/node": "*" + } + }, "@types/node": { "version": "10.14.6", "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.6.tgz", "integrity": "sha512-Fvm24+u85lGmV4hT5G++aht2C5I4Z4dYlWZIh62FAfFO/TfzXtPpoLI6I7AuBWkIFqZCnhFOoTT7RjjaIL5Fjg==" }, + "@types/node-emoji": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@types/node-emoji/-/node-emoji-1.8.1.tgz", + "integrity": "sha512-0fRfA90FWm6KJfw6P9QGyo0HDTCmthZ7cWaBQndITlaWLTZ6njRyKwrwpzpg+n6kBXBIGKeUHEQuBx7bphGJkA==" + }, + "@types/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-6qjr7Erk0b9FkZSu17wUJaWhmzUgGfQuec7eIwl9cP7V/YO/k9IcMnHSwAjxAeadC5guq9rwHcoij7PT1RkO1w==", + "requires": { + "@types/node": "*" + } + }, "JSONStream": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", @@ -1667,13 +1693,13 @@ "bech32": "^1.1.2", "bigi": "^1.4.0", "bip66": "^1.1.0", - "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#2.0.0", + "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3", "bs58check": "^2.0.0", "create-hash": "^1.1.0", "create-hmac": "^1.1.3", "ecurve": "^1.0.0", "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "github:Bitcoin-com/pushdata-bitcoin#1.2.1", + "pushdata-bitcoin": "github:Bitcoin-com/pushdata-bitcoin#9b75eebe597853c6eeaec3e6c44b6d9c9cd7ee86", "randombytes": "^2.0.1", "safe-buffer": "^5.0.1", "typeforce": "^1.11.3", @@ -4125,8 +4151,7 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true, - "optional": true + "bundled": true }, "aproba": { "version": "1.2.0", @@ -4144,13 +4169,11 @@ }, "balanced-match": { "version": "1.0.0", - "bundled": true, - "optional": true + "bundled": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4163,18 +4186,15 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true, - "optional": true + "bundled": true }, "concat-map": { "version": "0.0.1", - "bundled": true, - "optional": true + "bundled": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true, - "optional": true + "bundled": true }, "core-util-is": { "version": "1.0.2", @@ -4277,8 +4297,7 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, - "optional": true + "bundled": true }, "ini": { "version": "1.3.5", @@ -4288,7 +4307,6 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -4301,20 +4319,17 @@ "minimatch": { "version": "3.0.4", "bundled": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true, - "optional": true + "bundled": true }, "minipass": { "version": "2.3.5", "bundled": true, - "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -4331,7 +4346,6 @@ "mkdirp": { "version": "0.5.1", "bundled": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -4404,8 +4418,7 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true, - "optional": true + "bundled": true }, "object-assign": { "version": "4.1.1", @@ -4415,7 +4428,6 @@ "once": { "version": "1.4.0", "bundled": true, - "optional": true, "requires": { "wrappy": "1" } @@ -4491,8 +4503,7 @@ }, "safe-buffer": { "version": "5.1.2", - "bundled": true, - "optional": true + "bundled": true }, "safer-buffer": { "version": "2.1.2", @@ -4522,7 +4533,6 @@ "string-width": { "version": "1.0.2", "bundled": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -4540,7 +4550,6 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, - "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -4579,13 +4588,11 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, - "optional": true + "bundled": true }, "yallist": { "version": "3.0.3", - "bundled": true, - "optional": true + "bundled": true } } }, @@ -5295,8 +5302,7 @@ "is-extglob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "optional": true + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" }, "is-finite": { "version": "1.0.2", @@ -5315,7 +5321,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "optional": true, "requires": { "is-extglob": "^1.0.0" } @@ -6384,7 +6389,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "optional": true, "requires": { "remove-trailing-separator": "^1.0.1" } @@ -11065,7 +11069,7 @@ "version": "github:Bitcoin-com/pushdata-bitcoin#9b75eebe597853c6eeaec3e6c44b6d9c9cd7ee86", "from": "github:Bitcoin-com/pushdata-bitcoin#1.2.1", "requires": { - "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#2.0.0" + "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3" } }, "q": { @@ -11323,8 +11327,7 @@ "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "optional": true + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" }, "repeat-element": { "version": "1.1.3", From 7c95f57e2045d2fc8e438ab2336191daf96c14c5 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sat, 11 May 2019 14:07:35 +0900 Subject: [PATCH 346/480] Export all classes. --- index.ts | 78 +++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 49 insertions(+), 29 deletions(-) diff --git a/index.ts b/index.ts index 4c6c95e6..5c5921f1 100644 --- a/index.ts +++ b/index.ts @@ -9,34 +9,34 @@ import * as fs from "fs"; import * as repl from "repl"; import * as mkdirp from "mkdirp"; import * as figlet from "figlet"; -let clear = require("clear") import * as touch from "touch"; import * as emoji from "node-emoji"; + +// TODO: port to `import` statement +let clear = require("clear") let clone = require("git-clone") import { BITBOX } from "./lib/BITBOX" -// this.Address = new Address(this.restURL) -// this.BitcoinCash = new BitcoinCash(this.Address) -// this.Block = new Block(this.restURL) -// this.Blockchain = new Blockchain(this.restURL) -// this.Control = new Control(this.restURL) -// this.Crypto = Crypto -// this.ECPair = ECPair -// this.ECPair.setAddress(this.Address) -// this.Generating = new Generating(this.restURL) -// this.HDNode = new HDNode(this.Address) -// this.Mining = new Mining(this.restURL) -// this.Mnemonic = new Mnemonic(this.Address) -// this.Price = new Price() -// this.RawTransactions = new RawTransactions(this.restURL) -// this.Script = new Script() -// this.Transaction = new Transaction(this.restURL) -// this.TransactionBuilder = TransactionBuilder -// this.TransactionBuilder.setAddress(this.Address) -// this.Util = new Util(this.restURL) -// this.Socket = Socket -// this.Wallet = Wallet -// this.Schnorr = new Schnorr() +import { Address } from "./lib/Address" +import { BitcoinCash } from "./lib/BitcoinCash" +import { Block } from "./lib/Block" +import { Blockchain } from "./lib/Blockchain" +import { Control } from "./lib/Control" +import { Crypto } from "./lib/Crypto" +import { ECPair } from "./lib/ECPair" +import { Generating } from "./lib/Generating" +import { HDNode } from "./lib/HDNode" +import { Mining } from "./lib/Mining" +import { Mnemonic } from "./lib/Mnemonic" +import { Price } from "./lib/Price" +import { RawTransactions } from "./lib/RawTransactions" +import { Script } from "./lib/Script" +import { Transaction } from "./lib/Transaction" +import { TransactionBuilder } from "./lib/TransactionBuilder" +import { Util } from "./lib/Util" +import { Socket } from "./lib/Socket" +import { Wallet } from "./lib/Wallet" +import { Schnorr } from "./lib/Schnorr" interface ConsoleOptions { environment: string @@ -182,11 +182,9 @@ program ) .description("Run a console with Bitcoin Cash RPC commands available") .action((options: ConsoleOptions): void => { - let config: { - environments: { - } - } = { + // TODO: create interface for `config` + let config: any = { environments: {} } @@ -207,7 +205,9 @@ program replServer.context.bitbox = new BITBOX(config.environments[environment]) }) -function fetchOption(kv: string, config: any, options: ConsoleOptions | NewOptions): string { + +function fetchOption(kv: string, config: any, options: ConsoleOptions | NewOptions | any): string { + // TODO: remove `any` type from `options` argument const parts: string[] = kv.split("=") const key: string = parts[0] const defaultVal: string = parts[1] @@ -223,5 +223,25 @@ program.parse(process.argv) if (!process.argv.slice(2).length) program.outputHelp() module.exports = { - BITBOX: BITBOX + Address: Address, + BITBOX: BITBOX, + BitcoinCash: BitcoinCash, + Block: Block, + Blockchain: Blockchain, + Control: Control, + Crypto: Crypto, + ECPair: ECPair, + Generating: Generating, + HDNode: HDNode, + Mining: Mining, + Mnemonic: Mnemonic, + Price: Price, + RawTransactions: RawTransactions, + Script: Script, + Transaction: Transaction, + TransactionBuilder: TransactionBuilder, + Util: Util, + Socket: Socket, + Wallet: Wallet, + Schnorr: Schnorr } From 9bad48c51bfe09ff8bfd73175fe8672854b63e84 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sat, 11 May 2019 14:57:06 +0900 Subject: [PATCH 347/480] Adding types. --- index.ts | 2 +- lib/Mnemonic.ts | 54 +++++++++++++++++++++++++---------------------- package-lock.json | 24 +++++++++++++++++++++ package.json | 3 +++ 4 files changed, 57 insertions(+), 26 deletions(-) diff --git a/index.ts b/index.ts index 5c5921f1..72486749 100644 --- a/index.ts +++ b/index.ts @@ -220,7 +220,7 @@ function fetchOption(kv: string, config: any, options: ConsoleOptions | NewOptio program.parse(process.argv) // print help if no command given -if (!process.argv.slice(2).length) program.outputHelp() +// if (!process.argv.slice(2).length) program.outputHelp() module.exports = { Address: Address, diff --git a/lib/Mnemonic.ts b/lib/Mnemonic.ts index 51ab94b1..61da2948 100644 --- a/lib/Mnemonic.ts +++ b/lib/Mnemonic.ts @@ -1,16 +1,18 @@ -const BIP39 = require("bip39") -const randomBytes = require("randombytes") -const Bitcoin = require("bitcoincashjs-lib") +import * as BIP39 from "bip39" +import * as randomBytes from "randombytes" +import * as Bitcoin from "bitcoincashjs-lib" import { Buffer } from "buffer" -const wif = require("wif") +import * as wif from "wif" +import { Address } from "./Address" +import * as bcl from "bitcoincashjs-lib" export class Mnemonic { - _address: any - constructor(address: any) { + _address?: Address + constructor(address?: Address) { this._address = address } - generate(bits: number = 128, wordlist: string[]): string { + generate(bits: number = 128, wordlist?: string[]): string { return BIP39.generateMnemonic(bits, randomBytes, wordlist) } @@ -58,30 +60,32 @@ export class Mnemonic { numberOfKeypairs: number = 1, regtest: boolean = false ): any { - const rootSeedBuffer: any = this.toSeed(mnemonic, "") - const hdNode: any = Bitcoin.HDNode.fromSeedBuffer(rootSeedBuffer) + const rootSeedBuffer: Buffer = this.toSeed(mnemonic, "") + const hdNode: bcl.HDNode = Bitcoin.HDNode.fromSeedBuffer(rootSeedBuffer) const HDPath: string = `44'/145'/0'/0/` const accounts: any[] = [] for (let i = 0; i < numberOfKeypairs; i++) { - const childHDNode = hdNode.derivePath(`${HDPath}${i}`) + const childHDNode: bcl.HDNode = hdNode.derivePath(`${HDPath}${i}`) - let prefix = 128 + let prefix: number = 128 if (regtest === true) prefix = 239 - accounts.push({ - privateKeyWIF: wif.encode( - prefix, - childHDNode.keyPair.d.toBuffer(32), - true - ), - address: this._address.toCashAddress( - childHDNode.getAddress(), - true, - regtest - ) - }) + if(this._address) { + accounts.push({ + privateKeyWIF: wif.encode( + prefix, + childHDNode.keyPair.d.toBuffer(32), + true + ), + address: this._address.toCashAddress( + childHDNode.getAddress(), + true, + regtest + ) + }) + } } return accounts } @@ -90,10 +94,10 @@ export class Mnemonic { let minDistance: number = 99 let closestWord: string = wordlist[0] for (let i: number = 0; i < wordlist.length; i++) { - const comparedTo: any = wordlist[i] + const comparedTo: string = wordlist[i] if (comparedTo.indexOf(word) == 0) return comparedTo - const distance: any = Levenshtein.get(word, comparedTo) + const distance: number = Levenshtein.get(word, comparedTo) if (distance < minDistance) { closestWord = comparedTo minDistance = distance diff --git a/package-lock.json b/package-lock.json index 89f4dc61..2cbdcafc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -374,6 +374,14 @@ "resolved": "https://registry.npmjs.org/@types/bigi/-/bigi-1.4.2.tgz", "integrity": "sha512-St8Vm0x1ApYlU9yNaFx3jBis5JVU6oR/5Xtgvn8+N8Ts8f3ze6kOvAAg0aNkbGMGhhG6PrP0nMOgDI9NMFETkA==" }, + "@types/bip39": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@types/bip39/-/bip39-2.4.2.tgz", + "integrity": "sha512-Vo9lqOIRq8uoIzEVrV87ZvcIM0PN9t0K3oYZ/CS61fIYKCBdOIM7mlWzXuRvSXrDtVa1uUO2w1cdfufxTC0bzg==", + "requires": { + "@types/node": "*" + } + }, "@types/events": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", @@ -420,6 +428,14 @@ "resolved": "https://registry.npmjs.org/@types/node-emoji/-/node-emoji-1.8.1.tgz", "integrity": "sha512-0fRfA90FWm6KJfw6P9QGyo0HDTCmthZ7cWaBQndITlaWLTZ6njRyKwrwpzpg+n6kBXBIGKeUHEQuBx7bphGJkA==" }, + "@types/randombytes": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/randombytes/-/randombytes-2.0.0.tgz", + "integrity": "sha512-bz8PhAVlwN72vqefzxa14DKNT8jK/mV66CSjwdVQM/k3Th3EPKfUtdMniwZgMedQTFuywAsfjnZsg+pEnltaMA==", + "requires": { + "@types/node": "*" + } + }, "@types/touch": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/@types/touch/-/touch-3.1.1.tgz", @@ -428,6 +444,14 @@ "@types/node": "*" } }, + "@types/wif": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/wif/-/wif-2.0.1.tgz", + "integrity": "sha512-FQKvE4EncC8C4qxW9y0psAOs2XVkxSAGIofB8tqNDPSeOsR4OueEf9TED3PHf8xlOquI+m++AXTWjJIS07FNHw==", + "requires": { + "@types/node": "*" + } + }, "JSONStream": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", diff --git a/package.json b/package.json index 9da954af..fffc9d9c 100644 --- a/package.json +++ b/package.json @@ -31,11 +31,14 @@ }, "dependencies": { "@types/bigi": "^1.4.2", + "@types/bip39": "^2.4.2", "@types/figlet": "^1.2.0", "@types/mkdirp": "^0.5.2", "@types/node": "^10.11.7", "@types/node-emoji": "^1.8.1", + "@types/randombytes": "^2.0.0", "@types/touch": "^3.1.1", + "@types/wif": "^2.0.1", "assert": "^1.4.1", "axios": "^0.17.1", "babel-cli": "^6.26.0", From 1061bad1610b41bf8b9abd531bc44bfac4fd55f4 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sat, 11 May 2019 15:17:16 +0900 Subject: [PATCH 348/480] More typescript stuff. --- lib/Address.ts | 37 +++++++++++++++++++++---------------- lib/Mnemonic.ts | 4 +++- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/lib/Address.ts b/lib/Address.ts index 96a948f0..44b7bcb0 100644 --- a/lib/Address.ts +++ b/lib/Address.ts @@ -4,11 +4,17 @@ const Bitcoin = require("bitcoincashjs-lib") const cashaddr = require("cashaddrjs") const coininfo = require("coininfo") +interface bytes { + version: number, + hash: Buffer +} export class Address { - restURL: string - constructor(restURL: string) { - this.restURL = restURL + restURL?: string + constructor(restURL?: string) { + if(restURL) { + this.restURL = restURL + } } // Translate address from any address format into a specific format. @@ -42,7 +48,7 @@ export class Address { throw `unsupported address type : ${type}` } - const hashBuf: any = Buffer.from(hash) + const hashBuf: Buffer = Buffer.from(hash) return Bitcoin.address.toBase58Check(hashBuf, version) } @@ -52,7 +58,7 @@ export class Address { prefix: boolean = true, regtest: boolean = false ): string { - const decoded = this._decode(address) + const decoded: any = this._decode(address) let prefixString: string if (regtest) prefixString = "bchreg" @@ -70,14 +76,14 @@ export class Address { // Converts legacy address format to hash160 legacyToHash160(address: string): string { - const bytes = Bitcoin.address.fromBase58Check(address) + const bytes: bytes = Bitcoin.address.fromBase58Check(address) return bytes.hash.toString("hex") } // Converts cash address format to hash160 cashToHash160(address: string): string { - const legacyAddress = this.toLegacyAddress(address) - const bytes = Bitcoin.address.fromBase58Check(legacyAddress) + const legacyAddress: string = this.toLegacyAddress(address) + const bytes: bytes = Bitcoin.address.fromBase58Check(legacyAddress) return bytes.hash.toString("hex") } @@ -90,21 +96,20 @@ export class Address { // Converts hash160 to Legacy Address hash160ToLegacy( - hash160: any, - network: any = Bitcoin.networks.bitcoin.pubKeyHash + hash160: string, + network: number = Bitcoin.networks.bitcoin.pubKeyHash ): string { - const buffer = Buffer.from(hash160, "hex") - const legacyAddress = Bitcoin.address.toBase58Check(buffer, network) - return legacyAddress + const buffer: Buffer = Buffer.from(hash160, "hex") + return Bitcoin.address.toBase58Check(buffer, network) } // Converts hash160 to Cash Address hash160ToCash( - hash160: any, - network: any = Bitcoin.networks.bitcoin.pubKeyHash, + hash160: string, + network: number = Bitcoin.networks.bitcoin.pubKeyHash, regtest: boolean = false ): string { - const legacyAddress = this.hash160ToLegacy(hash160, network) + const legacyAddress: string = this.hash160ToLegacy(hash160, network) return this.toCashAddress(legacyAddress, true, regtest) } diff --git a/lib/Mnemonic.ts b/lib/Mnemonic.ts index 61da2948..ca7d629b 100644 --- a/lib/Mnemonic.ts +++ b/lib/Mnemonic.ts @@ -1,6 +1,8 @@ import * as BIP39 from "bip39" import * as randomBytes from "randombytes" -import * as Bitcoin from "bitcoincashjs-lib" +// TODO: convert "bitcoincashjs-lib" require to import +const Bitcoin = require("bitcoincashjs-lib") +// import * as Bitcoin from "bitcoincashjs-lib" import { Buffer } from "buffer" import * as wif from "wif" import { Address } from "./Address" From d94e7ece90c7f96a24614a09f3c63e114aa4bd11 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sat, 11 May 2019 15:38:49 +0900 Subject: [PATCH 349/480] Address interfaces --- lib/Address.ts | 65 ++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 52 insertions(+), 13 deletions(-) diff --git a/lib/Address.ts b/lib/Address.ts index 44b7bcb0..ff469b1c 100644 --- a/lib/Address.ts +++ b/lib/Address.ts @@ -4,11 +4,47 @@ const Bitcoin = require("bitcoincashjs-lib") const cashaddr = require("cashaddrjs") const coininfo = require("coininfo") -interface bytes { - version: number, +interface Hash { hash: Buffer } +interface Bytes extends Hash { + version: number +} + +interface Decoded extends Hash { + prefix: string + type: string + format: string +} + +interface BitcoinCash { + hashGenesisBlock: string + port: number + portRpc: number + protocol: { + magic: number + } + seedsDns: string[] + versions: { + bip32: { + private: number + public: number + } + bip44: number + private: number + public: number + scripthash: number + messagePrefix: string + } + name: string + per1: number + unit: string + testnet: boolean + toBitcoinJS: any + toBitcore: any +} + export class Address { restURL?: string constructor(restURL?: string) { @@ -21,7 +57,7 @@ export class Address { toLegacyAddress(address: string): string { const { prefix, type, hash } = this._decode(address) - let bitcoincash: any + let bitcoincash: BitcoinCash switch (prefix) { case "bitcoincash": bitcoincash = coininfo.bitcoincash.main @@ -36,7 +72,7 @@ export class Address { throw `unsupported prefix : ${prefix}` } - let version: any + let version: number switch (type) { case "P2PKH": version = bitcoincash.versions.public @@ -58,7 +94,7 @@ export class Address { prefix: boolean = true, regtest: boolean = false ): string { - const decoded: any = this._decode(address) + const decoded: Decoded = this._decode(address) let prefixString: string if (regtest) prefixString = "bchreg" @@ -76,14 +112,14 @@ export class Address { // Converts legacy address format to hash160 legacyToHash160(address: string): string { - const bytes: bytes = Bitcoin.address.fromBase58Check(address) + const bytes: Bytes = Bitcoin.address.fromBase58Check(address) return bytes.hash.toString("hex") } // Converts cash address format to hash160 cashToHash160(address: string): string { const legacyAddress: string = this.toLegacyAddress(address) - const bytes: bytes = Bitcoin.address.fromBase58Check(legacyAddress) + const bytes: Bytes = Bitcoin.address.fromBase58Check(legacyAddress) return bytes.hash.toString("hex") } @@ -113,7 +149,7 @@ export class Address { return this.toCashAddress(legacyAddress, true, regtest) } - _decode(address: string): any { + _decode(address: string): Decoded { try { return this._decodeLegacyAddress(address) } catch (error) {} @@ -129,9 +165,12 @@ export class Address { throw new Error(`Unsupported address format : ${address}`) } - _decodeLegacyAddress(address: any): any { + _decodeLegacyAddress(address: string): Decoded { const { version, hash } = Bitcoin.address.fromBase58Check(address) - const info = coininfo.bitcoincash + const info: { + main: any + test: any + } = coininfo.bitcoincash switch (version) { case info.main.versions.public: @@ -167,9 +206,9 @@ export class Address { } } - _decodeCashAddress(address: string): any { + _decodeCashAddress(address: string): Decoded { if (address.indexOf(":") !== -1) { - const decoded = cashaddr.decode(address) + const decoded: Decoded = cashaddr.decode(address) decoded.format = "cashaddr" return decoded } @@ -177,7 +216,7 @@ export class Address { const prefixes: string[] = ["bitcoincash", "bchtest", "bchreg"] for (let i: number = 0; i < prefixes.length; ++i) { try { - const decoded: any = cashaddr.decode(`${prefixes[i]}:${address}`) + const decoded: Decoded = cashaddr.decode(`${prefixes[i]}:${address}`) decoded.format = "cashaddr" return decoded } catch (error) {} From e8bd3c5182b4ef7507b38ac2824853cb52a387bb Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sat, 11 May 2019 15:40:10 +0900 Subject: [PATCH 350/480] Remove package lock .json --- package-lock.json | 13214 -------------------------------------------- 1 file changed, 13214 deletions(-) delete mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 2cbdcafc..00000000 --- a/package-lock.json +++ /dev/null @@ -1,13214 +0,0 @@ -{ - "name": "bitbox-sdk", - "version": "7.0.19", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", - "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", - "requires": { - "@babel/highlight": "^7.0.0" - } - }, - "@babel/generator": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.4.tgz", - "integrity": "sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==", - "requires": { - "@babel/types": "^7.4.4", - "jsesc": "^2.5.1", - "lodash": "^4.17.11", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" - }, - "dependencies": { - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - } - } - }, - "@babel/helper-function-name": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", - "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", - "requires": { - "@babel/helper-get-function-arity": "^7.0.0", - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", - "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", - "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", - "requires": { - "@babel/types": "^7.4.4" - } - }, - "@babel/highlight": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", - "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.4.tgz", - "integrity": "sha512-5pCS4mOsL+ANsFZGdvNLybx4wtqAZJ0MJjMHxvzI3bvIsz6sQvzW8XX92EYIkiPtIvcfG3Aj+Ir5VNyjnZhP7w==" - }, - "@babel/template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", - "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.4.4", - "@babel/types": "^7.4.4" - } - }, - "@babel/traverse": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.4.tgz", - "integrity": "sha512-Gw6qqkw/e6AGzlyj9KnkabJX7VcubqPtkUQVAwkc0wUMldr3A/hezNB3Rc5eIvId95iSGkGIOe5hh1kMKf951A==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.4.4", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/parser": "^7.4.4", - "@babel/types": "^7.4.4", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.11" - } - }, - "@babel/types": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", - "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.11", - "to-fast-properties": "^2.0.0" - }, - "dependencies": { - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - } - } - }, - "@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", - "dev": true, - "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" - } - }, - "@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", - "dev": true - }, - "@octokit/endpoint": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-4.2.2.tgz", - "integrity": "sha512-5IZjkUNhx5q0IRN7Juwf5A+Lu2qAso7ULST7C1P2mbGHePuCOk936Stcl/5GdJpB3ovD8M6/Lv3xra6Mn0IKNQ==", - "dev": true, - "requires": { - "deepmerge": "3.2.0", - "is-plain-object": "^3.0.0", - "universal-user-agent": "^2.0.1", - "url-template": "^2.0.8" - }, - "dependencies": { - "is-plain-object": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz", - "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==", - "dev": true, - "requires": { - "isobject": "^4.0.0" - } - }, - "isobject": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", - "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==", - "dev": true - } - } - }, - "@octokit/request": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-3.0.1.tgz", - "integrity": "sha512-aH61OVkMKMofGW/go2x4mJ44X4U/JF8xsiFFictwkZYtz0psE8OPKpsP2TZBZaJoCg2wmeTyEgqGfY+veg0hGQ==", - "dev": true, - "requires": { - "@octokit/endpoint": "^4.0.0", - "deprecation": "^1.0.1", - "is-plain-object": "^3.0.0", - "node-fetch": "^2.3.0", - "once": "^1.4.0", - "universal-user-agent": "^2.0.1" - }, - "dependencies": { - "is-plain-object": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz", - "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==", - "dev": true, - "requires": { - "isobject": "^4.0.0" - } - }, - "isobject": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", - "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==", - "dev": true - } - } - }, - "@octokit/rest": { - "version": "16.25.2", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.25.2.tgz", - "integrity": "sha512-aUSzvY33dz6RMLLmT+1aNc2OvvAmDfdXKaOzFEEBNJjsjckNjWkB2hgGa5plnnbuLPCloVldPuAdm+8REZGLcg==", - "dev": true, - "requires": { - "@octokit/request": "3.0.1", - "atob-lite": "^2.0.0", - "before-after-hook": "^1.4.0", - "btoa-lite": "^1.0.0", - "deprecation": "^1.0.1", - "lodash.get": "^4.4.2", - "lodash.set": "^4.3.2", - "lodash.uniq": "^4.5.0", - "octokit-pagination-methods": "^1.1.0", - "once": "^1.4.0", - "universal-user-agent": "^2.0.0", - "url-template": "^2.0.8" - } - }, - "@semantic-release/commit-analyzer": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-6.1.0.tgz", - "integrity": "sha512-2lb+t6muGenI86mYGpZYOgITx9L3oZYF697tJoqXeQEk0uw0fm+OkkOuDTBA3Oax9ftoNIrCKv9bwgYvxrbM6w==", - "dev": true, - "requires": { - "conventional-changelog-angular": "^5.0.0", - "conventional-commits-filter": "^2.0.0", - "conventional-commits-parser": "^3.0.0", - "debug": "^4.0.0", - "import-from": "^2.1.0", - "lodash": "^4.17.4" - } - }, - "@semantic-release/error": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-2.2.0.tgz", - "integrity": "sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg==", - "dev": true - }, - "@semantic-release/github": { - "version": "5.2.10", - "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-5.2.10.tgz", - "integrity": "sha512-z/UwIxKb+EMiJDIy/57MBzJ80ar5H9GJQRyML/ILQ8dlrPwXs7cTyTvC7AesrF7t1mJZtg3ht9Qf9RdtR/LGzw==", - "dev": true, - "requires": { - "@octokit/rest": "^16.13.1", - "@semantic-release/error": "^2.2.0", - "aggregate-error": "^2.0.0", - "bottleneck": "^2.0.1", - "debug": "^4.0.0", - "dir-glob": "^2.0.0", - "fs-extra": "^7.0.0", - "globby": "^9.0.0", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.1", - "issue-parser": "^3.0.0", - "lodash": "^4.17.4", - "mime": "^2.0.3", - "p-filter": "^1.0.0", - "p-retry": "^3.0.0", - "parse-github-url": "^1.0.1", - "url-join": "^4.0.0" - }, - "dependencies": { - "mime": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.2.tgz", - "integrity": "sha512-zJBfZDkwRu+j3Pdd2aHsR5GfH2jIWhmL1ZzBoc+X+3JEti2hbArWcyJ+1laC1D2/U/W1a/+Cegj0/OnEU2ybjg==", - "dev": true - } - } - }, - "@semantic-release/npm": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-5.1.4.tgz", - "integrity": "sha512-YRl8VTVwnRTl/sVRvTXs1ncYcuvuGrqPEXYy+lUK1YRLq25hkrhIdv3Ju0u1zGLqVCA8qRlF3NzWl7pULJXVog==", - "dev": true, - "requires": { - "@semantic-release/error": "^2.2.0", - "aggregate-error": "^2.0.0", - "execa": "^1.0.0", - "fs-extra": "^7.0.0", - "lodash": "^4.17.4", - "nerf-dart": "^1.0.0", - "normalize-url": "^4.0.0", - "npm": "6.5.0", - "rc": "^1.2.8", - "read-pkg": "^4.0.0", - "registry-auth-token": "^3.3.1" - }, - "dependencies": { - "read-pkg": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz", - "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=", - "dev": true, - "requires": { - "normalize-package-data": "^2.3.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0" - } - } - } - }, - "@semantic-release/release-notes-generator": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-7.1.4.tgz", - "integrity": "sha512-pWPouZujddgb6t61t9iA9G3yIfp3TeQ7bPbV1ixYSeP6L7gI1+Du82fY/OHfEwyifpymLUQW0XnIKgKct5IMMw==", - "dev": true, - "requires": { - "conventional-changelog-angular": "^5.0.0", - "conventional-changelog-writer": "^4.0.0", - "conventional-commits-filter": "^2.0.0", - "conventional-commits-parser": "^3.0.0", - "debug": "^4.0.0", - "get-stream": "^4.0.0", - "import-from": "^2.1.0", - "into-stream": "^4.0.0", - "lodash": "^4.17.4" - }, - "dependencies": { - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "@sinonjs/commons": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.4.0.tgz", - "integrity": "sha512-9jHK3YF/8HtJ9wCAbG+j8cD0i0+ATS9A7gXFqS36TblLPNy6rEEc+SB0imo91eCboGaBYGV/MT1/br/J+EE7Tw==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/formatio": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", - "integrity": "sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg==", - "dev": true, - "requires": { - "samsam": "1.3.0" - } - }, - "@sinonjs/samsam": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.3.1.tgz", - "integrity": "sha512-wRSfmyd81swH0hA1bxJZJ57xr22kC07a1N4zuIL47yTS04bDk6AoCkczcqHEjcRPmJ+FruGJ9WBQiJwMtIElFw==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.0.2", - "array-from": "^2.1.1", - "lodash": "^4.17.11" - } - }, - "@sinonjs/text-encoding": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", - "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", - "dev": true - }, - "@types/bigi": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@types/bigi/-/bigi-1.4.2.tgz", - "integrity": "sha512-St8Vm0x1ApYlU9yNaFx3jBis5JVU6oR/5Xtgvn8+N8Ts8f3ze6kOvAAg0aNkbGMGhhG6PrP0nMOgDI9NMFETkA==" - }, - "@types/bip39": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@types/bip39/-/bip39-2.4.2.tgz", - "integrity": "sha512-Vo9lqOIRq8uoIzEVrV87ZvcIM0PN9t0K3oYZ/CS61fIYKCBdOIM7mlWzXuRvSXrDtVa1uUO2w1cdfufxTC0bzg==", - "requires": { - "@types/node": "*" - } - }, - "@types/events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", - "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", - "dev": true - }, - "@types/figlet": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@types/figlet/-/figlet-1.2.0.tgz", - "integrity": "sha512-TDZkNpYfkc3X8yv7w1QBziZmmxzNfGKX+YjeNkMpmSiNV0QOdNf9G5cEZB3FH1/oaqpSQEdxuDzURdju2L3lng==" - }, - "@types/glob": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", - "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", - "dev": true, - "requires": { - "@types/events": "*", - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", - "dev": true - }, - "@types/mkdirp": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz", - "integrity": "sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg==", - "requires": { - "@types/node": "*" - } - }, - "@types/node": { - "version": "10.14.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.6.tgz", - "integrity": "sha512-Fvm24+u85lGmV4hT5G++aht2C5I4Z4dYlWZIh62FAfFO/TfzXtPpoLI6I7AuBWkIFqZCnhFOoTT7RjjaIL5Fjg==" - }, - "@types/node-emoji": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@types/node-emoji/-/node-emoji-1.8.1.tgz", - "integrity": "sha512-0fRfA90FWm6KJfw6P9QGyo0HDTCmthZ7cWaBQndITlaWLTZ6njRyKwrwpzpg+n6kBXBIGKeUHEQuBx7bphGJkA==" - }, - "@types/randombytes": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/randombytes/-/randombytes-2.0.0.tgz", - "integrity": "sha512-bz8PhAVlwN72vqefzxa14DKNT8jK/mV66CSjwdVQM/k3Th3EPKfUtdMniwZgMedQTFuywAsfjnZsg+pEnltaMA==", - "requires": { - "@types/node": "*" - } - }, - "@types/touch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@types/touch/-/touch-3.1.1.tgz", - "integrity": "sha512-6qjr7Erk0b9FkZSu17wUJaWhmzUgGfQuec7eIwl9cP7V/YO/k9IcMnHSwAjxAeadC5guq9rwHcoij7PT1RkO1w==", - "requires": { - "@types/node": "*" - } - }, - "@types/wif": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/wif/-/wif-2.0.1.tgz", - "integrity": "sha512-FQKvE4EncC8C4qxW9y0psAOs2XVkxSAGIofB8tqNDPSeOsR4OueEf9TED3PHf8xlOquI+m++AXTWjJIS07FNHw==", - "requires": { - "@types/node": "*" - } - }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz", - "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==" - }, - "acorn-dynamic-import": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", - "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==" - }, - "acorn-jsx": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz", - "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==", - "dev": true - }, - "acorn-node": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.6.2.tgz", - "integrity": "sha512-rIhNEZuNI8ibQcL7ANm/mGyPukIaZsRNX9psFNQURyJW0nu6k8wjSDld20z6v2mDBWqX13pIEnk9gGZJHIlEXg==", - "requires": { - "acorn": "^6.0.2", - "acorn-dynamic-import": "^4.0.0", - "acorn-walk": "^6.1.0", - "xtend": "^4.0.1" - } - }, - "acorn-walk": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.1.tgz", - "integrity": "sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw==" - }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" - }, - "agent-base": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", - "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", - "dev": true, - "requires": { - "es6-promisify": "^5.0.0" - } - }, - "aggregate-error": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-2.2.0.tgz", - "integrity": "sha512-E5n+IZkhh22/pFdUvHUU/o9z752lc+7tgHt+FXS/g6BjlbE9249dGmuS/SxIWMPhTljZJkFN+7OXE0+O5+WT8w==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^3.0.0" - } - }, - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=" - }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "ansicolors": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "argv-formatter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/argv-formatter/-/argv-formatter-1.0.0.tgz", - "integrity": "sha1-oMoMvCmltz6Dbuvhy/bF4OTrgvk=", - "dev": true - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-filter": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", - "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true - }, - "array-from": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", - "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=", - "dev": true - }, - "array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", - "dev": true - }, - "array-includes": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", - "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.7.0" - } - }, - "array-map": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", - "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=" - }, - "array-reduce": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", - "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "requires": { - "util": "0.10.3" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "optional": true - }, - "async-limiter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", - "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "atob-lite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz", - "integrity": "sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY=", - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", - "dev": true - }, - "axios": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", - "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=", - "requires": { - "follow-redirects": "^1.2.5", - "is-buffer": "^1.1.5" - } - }, - "babel-cli": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", - "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", - "requires": { - "babel-core": "^6.26.0", - "babel-polyfill": "^6.26.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "chokidar": "^1.6.1", - "commander": "^2.11.0", - "convert-source-map": "^1.5.0", - "fs-readdir-recursive": "^1.0.0", - "glob": "^7.1.2", - "lodash": "^4.17.4", - "output-file-sync": "^1.1.2", - "path-is-absolute": "^1.0.1", - "slash": "^1.0.0", - "source-map": "^0.5.6", - "v8flags": "^2.1.1" - } - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "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" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - } - }, - "babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", - "requires": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "requires": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", - "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", - "requires": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" - }, - "babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" - }, - "babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" - }, - "babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", - "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "requires": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "requires": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", - "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", - "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "requires": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", - "requires": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "requires": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" - } - }, - "babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", - "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "requires": { - "regenerator-transform": "^0.10.0" - } - }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-polyfill": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", - "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", - "requires": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" - } - } - }, - "babel-preset-env": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", - "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", - "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-to-generator": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.23.0", - "babel-plugin-transform-es2015-classes": "^6.23.0", - "babel-plugin-transform-es2015-computed-properties": "^6.22.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", - "babel-plugin-transform-es2015-for-of": "^6.23.0", - "babel-plugin-transform-es2015-function-name": "^6.22.0", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.22.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-umd": "^6.23.0", - "babel-plugin-transform-es2015-object-super": "^6.22.0", - "babel-plugin-transform-es2015-parameters": "^6.23.0", - "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", - "babel-plugin-transform-exponentiation-operator": "^6.22.0", - "babel-plugin-transform-regenerator": "^6.22.0", - "browserslist": "^3.2.6", - "invariant": "^2.2.2", - "semver": "^5.3.0" - } - }, - "babel-preset-es2015": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", - "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", - "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.24.1", - "babel-plugin-transform-es2015-classes": "^6.24.1", - "babel-plugin-transform-es2015-computed-properties": "^6.24.1", - "babel-plugin-transform-es2015-destructuring": "^6.22.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", - "babel-plugin-transform-es2015-for-of": "^6.22.0", - "babel-plugin-transform-es2015-function-name": "^6.24.1", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-umd": "^6.24.1", - "babel-plugin-transform-es2015-object-super": "^6.24.1", - "babel-plugin-transform-es2015-parameters": "^6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", - "babel-plugin-transform-regenerator": "^6.24.1" - } - }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "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.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "base-x": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.5.tgz", - "integrity": "sha512-C3picSgzPSLE+jW3tcBzJoGwitOtazb5B+5YmAxZm2ybmTi9LNgAtDO/jjVEBZwHoXmDBZ9m/IELj3elJVRBcA==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" - }, - "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" - }, - "base64id": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", - "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=" - }, - "bc-bip68": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bc-bip68/-/bc-bip68-1.0.5.tgz", - "integrity": "sha512-GzaMlN7pNthrY5BhReVhnfr4Ixx+GUSfyNRHYh0QiMUF0d0+0YaD8MpEdv6AjFBksg/zlqL1fVCBBm6PpTt2Rg==" - }, - "bch-wallet-bridge-provider-interface": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/bch-wallet-bridge-provider-interface/-/bch-wallet-bridge-provider-interface-0.1.1.tgz", - "integrity": "sha512-m8Mq/aJhZN11aoa91YyYs/B1GxWfpT5IIp64IU5VRgNxGXBuUiIfvybk4XQR+zrHaMW4SLrD1tI9n59ogmEw/A==" - }, - "bch-wallet-bridge.js": { - "version": "github:web3bch/bch-wallet-bridge.js#f73558eaf3a98ba2a23de3c9cbbd582b30ff19eb", - "from": "github:web3bch/bch-wallet-bridge.js#master", - "requires": { - "bch-wallet-bridge-provider-interface": "^0.1.1", - "bchaddrjs": "^0.2.2", - "bitcoincashjs": "^0.1.10" - } - }, - "bchaddrjs": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/bchaddrjs/-/bchaddrjs-0.2.3.tgz", - "integrity": "sha512-0DVW8q3UFQFhrvt8Fowpkk+WvkYTZTSD1vGCQHrtMHZjRL6G/SoW0mgrREmgO1F/8TJ+Julri4UBWA8Gr7C5Yw==", - "requires": { - "bs58check": "^2.1.2", - "cashaddrjs": "^0.2.9" - } - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bech32": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.3.tgz", - "integrity": "sha512-yuVFUvrNcoJi0sv5phmqc6P+Fl1HjRDRNOOkHY2X/3LBy2bIGNSFx4fZ95HMaXHupuS7cZR15AsvtmCIF4UEyg==" - }, - "before-after-hook": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-1.4.0.tgz", - "integrity": "sha512-l5r9ir56nda3qu14nAXIlyq1MmUSs0meCIaFAh8HwkFwP1F8eToOuS3ah2VAHHcY04jaYD7FpJC5JTXHYRbkzg==", - "dev": true - }, - "better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", - "requires": { - "callsite": "1.0.0" - } - }, - "big-integer": { - "version": "1.6.43", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.43.tgz", - "integrity": "sha512-9dULc9jsKmXl0Aeunug8wbF+58n+hQoFjqClN7WeZwGLh0XJUWyJJ9Ee+Ep+Ql/J9fRsTVaeThp8MhiCCrY0Jg==" - }, - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" - }, - "bigi": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz", - "integrity": "sha1-nGZalfiLiwj8Bc/XMfVhhZ1yWCU=" - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "optional": true - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bip-schnorr": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/bip-schnorr/-/bip-schnorr-0.3.0.tgz", - "integrity": "sha512-Sc1Hn2+1n+okPEW8G+JLjeaM12dsUOwr+oFlMDSKR9wYwNGMw0alskeBIHTmXxBxMZSWKhCW7PwKQVDyGmnaVg==", - "requires": { - "ecurve": "^1.0.6", - "js-sha256": "^0.9.0", - "random-bytes": "^1.0.0", - "safe-buffer": "^5.0.1" - } - }, - "bip21": { - "version": "github:Bitcoin-com/bip21#28f8d03a3a16ed11eb5b963248ed1be8c46c6d6f", - "from": "github:Bitcoin-com/bip21", - "requires": { - "qs": "^6.3.0" - } - }, - "bip32-utils": { - "version": "github:Bitcoin-com/bip32-utils#b8a33ebd0a0ac39de7cd987e5c3f77a8c5d84e58", - "from": "github:Bitcoin-com/bip32-utils#0.13.1", - "requires": { - "keccak": "^1.3.0", - "nyc": "*", - "standard": "^11.0.1", - "tape": "*" - } - }, - "bip38": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bip38/-/bip38-2.0.2.tgz", - "integrity": "sha512-22KDak0RDyghFbR0Si7wyq9IgY423YzGYzWLpGeofH3DaolOQqjD3mNN08eFoubKlbyclOQKFwtONMv2SD9V3A==", - "requires": { - "bigi": "^1.2.0", - "browserify-aes": "^1.0.1", - "bs58check": "<3.0.0", - "buffer-xor": "^1.0.2", - "create-hash": "^1.1.1", - "ecurve": "^1.0.0", - "scryptsy": "^2.0.0" - } - }, - "bip39": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.6.0.tgz", - "integrity": "sha512-RrnQRG2EgEoqO24ea+Q/fftuPUZLmrEM3qNhhGsA3PbaXaCW791LTzPuVyx/VprXQcTbPJ3K3UeTna8ZnVl2sg==", - "requires": { - "create-hash": "^1.1.0", - "pbkdf2": "^3.0.9", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "unorm": "^1.3.3" - } - }, - "bip66": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", - "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "bitcoincash-ops": { - "version": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3", - "from": "github:Bitcoin-com/bitcoincash-ops#2.0.0" - }, - "bitcoincashjs": { - "version": "0.1.14", - "resolved": "https://registry.npmjs.org/bitcoincashjs/-/bitcoincashjs-0.1.14.tgz", - "integrity": "sha512-x0wMVSCZ56ZQnSQ+Xim7XfS0IYiOyOwo0pdMCmR+cDNB7zRhICFuH5i3lNdLSgUw1e7Pc3FmUlC9wruQNlYMnA==" - }, - "bitcoincashjs-lib": { - "version": "github:Bitcoin-com/bitcoincashjs-lib#3d360c780ec7df4a74aea93664c2b5ff8b08949a", - "from": "github:Bitcoin-com/bitcoincashjs-lib#v4.0.0", - "requires": { - "bech32": "^1.1.2", - "bigi": "^1.4.0", - "bip66": "^1.1.0", - "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3", - "bs58check": "^2.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.3", - "ecurve": "^1.0.0", - "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "github:Bitcoin-com/pushdata-bitcoin#9b75eebe597853c6eeaec3e6c44b6d9c9cd7ee86", - "randombytes": "^2.0.1", - "safe-buffer": "^5.0.1", - "typeforce": "^1.11.3", - "varuint-bitcoin": "^1.0.4", - "wif": "^2.0.1" - }, - "dependencies": { - "bitcoincash-ops": { - "version": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3", - "from": "github:Bitcoin-com/bitcoincash-ops#2.0.0" - } - } - }, - "bitcoinjs-message": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz", - "integrity": "sha512-H5pJC7/eSqVjREiEOZ4jifX+7zXYP3Y28GIOIqg9hrgE7Vj8Eva9+HnVqnxwA1rJPOwZKuw0vo6k0UxgVc6q1A==", - "requires": { - "bs58check": "^2.0.2", - "buffer-equals": "^1.0.3", - "create-hash": "^1.1.2", - "secp256k1": "^3.0.1", - "varuint-bitcoin": "^1.0.1" - } - }, - "blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" - }, - "bottleneck": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.18.0.tgz", - "integrity": "sha512-U1xiBRaokw4yEguzikOl0VrnZp6uekjpmfrh6rKtr1D+/jFjYCL6J83ZXlGtlBDwVdTmJJ+4Lg5FpB3xmLSiyA==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "browser-pack": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", - "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", - "requires": { - "JSONStream": "^1.0.3", - "combine-source-map": "~0.8.0", - "defined": "^1.0.0", - "safe-buffer": "^5.1.1", - "through2": "^2.0.0", - "umd": "^3.0.0" - } - }, - "browser-resolve": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", - "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", - "requires": { - "resolve": "1.1.7" - }, - "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" - } - } - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "browserify": { - "version": "16.2.3", - "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.2.3.tgz", - "integrity": "sha512-zQt/Gd1+W+IY+h/xX2NYMW4orQWhqSwyV+xsblycTtpOuB27h1fZhhNQuipJ4t79ohw4P4mMem0jp/ZkISQtjQ==", - "requires": { - "JSONStream": "^1.0.3", - "assert": "^1.4.0", - "browser-pack": "^6.0.1", - "browser-resolve": "^1.11.0", - "browserify-zlib": "~0.2.0", - "buffer": "^5.0.2", - "cached-path-relative": "^1.0.0", - "concat-stream": "^1.6.0", - "console-browserify": "^1.1.0", - "constants-browserify": "~1.0.0", - "crypto-browserify": "^3.0.0", - "defined": "^1.0.0", - "deps-sort": "^2.0.0", - "domain-browser": "^1.2.0", - "duplexer2": "~0.1.2", - "events": "^2.0.0", - "glob": "^7.1.0", - "has": "^1.0.0", - "htmlescape": "^1.1.0", - "https-browserify": "^1.0.0", - "inherits": "~2.0.1", - "insert-module-globals": "^7.0.0", - "labeled-stream-splicer": "^2.0.0", - "mkdirp": "^0.5.0", - "module-deps": "^6.0.0", - "os-browserify": "~0.3.0", - "parents": "^1.0.1", - "path-browserify": "~0.0.0", - "process": "~0.11.0", - "punycode": "^1.3.2", - "querystring-es3": "~0.2.0", - "read-only-stream": "^2.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.1.4", - "shasum": "^1.0.0", - "shell-quote": "^1.6.1", - "stream-browserify": "^2.0.0", - "stream-http": "^2.0.0", - "string_decoder": "^1.1.1", - "subarg": "^1.0.0", - "syntax-error": "^1.1.1", - "through2": "^2.0.0", - "timers-browserify": "^1.0.1", - "tty-browserify": "0.0.1", - "url": "~0.11.0", - "util": "~0.10.1", - "vm-browserify": "^1.0.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } - } - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", - "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", - "requires": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" - } - }, - "bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "requires": { - "base-x": "^3.0.2" - } - }, - "bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "btoa-lite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", - "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=", - "dev": true - }, - "buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", - "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "buffer-equals": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/buffer-equals/-/buffer-equals-1.0.4.tgz", - "integrity": "sha1-A1O1T9B/2VZBcGca5vZrnPENJ/U=" - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "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" - } - }, - "cached-path-relative": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.2.tgz", - "integrity": "sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==" - }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true - }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "dev": true, - "requires": { - "callsites": "^2.0.0" - }, - "dependencies": { - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true - } - } - }, - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "dev": true, - "requires": { - "caller-callsite": "^2.0.0" - } - }, - "callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", - "dev": true, - "requires": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - } - } - }, - "can-promise": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/can-promise/-/can-promise-0.0.1.tgz", - "integrity": "sha512-gzVrHyyrvgt0YpDm7pn04MQt8gjh0ZAhN4ZDyCRtGl6YnuuK6b4aiUTD7G52r9l4YNmxfTtEscb92vxtAlL6XQ==", - "requires": { - "window-or-global": "^1.0.1" - } - }, - "caniuse-lite": { - "version": "1.0.30000967", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000967.tgz", - "integrity": "sha512-rUBIbap+VJfxTzrM4akJ00lkvVb5/n5v3EGXfWzSH5zT8aJmGzjA8HWhJ4U6kCpzxozUSnB+yvAYDRPY6mRpgQ==" - }, - "cardinal": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", - "integrity": "sha1-fMEFXYItISlU0HsIXeolHMe8VQU=", - "dev": true, - "requires": { - "ansicolors": "~0.3.2", - "redeyed": "~2.1.0" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "cashaddrjs": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.2.9.tgz", - "integrity": "sha512-DhJF4iAH0/RM3UjHDHKRxzs09YGL9px+oTyizzydanhC7jTyM2aJ+aLKA96vZGTTWayvvr2iDF2l13lpqXiRFg==", - "requires": { - "big-integer": "^1.6.34" - } - }, - "chai": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", - "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", - "dev": true, - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.0", - "type-detect": "^4.0.5" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true - }, - "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", - "optional": true, - "requires": { - "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": { - "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", - "optional": true, - "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" - } - }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "optional": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "optional": true - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "optional": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "optional": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "optional": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "optional": true, - "requires": { - "is-glob": "^2.0.0" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "optional": true, - "requires": { - "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" - } - } - } - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==" - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "clean-stack": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.1.0.tgz", - "integrity": "sha512-uQWrpRm+iZZUCAp7ZZJQbd4Za9I3AjR/3YTjmcnAtkauaIm/T5CT6U8zVI6e60T6OANqBFAzuR9/HB3NzuZCRA==", - "dev": true - }, - "clear": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clear/-/clear-0.0.1.tgz", - "integrity": "sha1-5RhuIp2ZRIF5wTAxG2+dML/2sLo=" - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-table": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", - "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", - "dev": true, - "requires": { - "colors": "1.0.3" - } - }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "coininfo": { - "version": "github:Bitcoin-com/coininfo#eece2c6141d08c3e7783929f2a1e1e681aa1a82c", - "from": "github:Bitcoin-com/coininfo", - "requires": { - "safe-buffer": "^5.1.1" - } - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", - "dev": true - }, - "combine-source-map": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", - "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", - "requires": { - "convert-source-map": "~1.1.0", - "inline-source-map": "~0.6.0", - "lodash.memoize": "~3.0.3", - "source-map": "~0.5.3" - }, - "dependencies": { - "convert-source-map": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", - "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=" - } - } - }, - "combined-stream": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", - "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==" - }, - "compare-func": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz", - "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=", - "dev": true, - "requires": { - "array-ify": "^1.0.0", - "dot-prop": "^3.0.0" - } - }, - "component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "requires": { - "date-now": "^0.1.4" - } - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" - }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=" - }, - "conventional-changelog-angular": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.3.tgz", - "integrity": "sha512-YD1xzH7r9yXQte/HF9JBuEDfvjxxwDGGwZU1+ndanbY0oFgA+Po1T9JDSpPLdP0pZT6MhCAsdvFKC4TJ4MTJTA==", - "dev": true, - "requires": { - "compare-func": "^1.3.1", - "q": "^1.5.1" - } - }, - "conventional-changelog-writer": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.3.tgz", - "integrity": "sha512-bIlpSiQtQZ1+nDVHEEh798Erj2jhN/wEjyw9sfxY9es6h7pREE5BNJjfv0hXGH/FTrAsEpHUq4xzK99eePpwuA==", - "dev": true, - "requires": { - "compare-func": "^1.3.1", - "conventional-commits-filter": "^2.0.1", - "dateformat": "^3.0.0", - "handlebars": "^4.1.0", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.2.1", - "meow": "^4.0.0", - "semver": "^5.5.0", - "split": "^1.0.0", - "through2": "^2.0.0" - } - }, - "conventional-commits-filter": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.1.tgz", - "integrity": "sha512-92OU8pz/977udhBjgPEbg3sbYzIxMDFTlQT97w7KdhR9igNqdJvy8smmedAAgn4tPiqseFloKkrVfbXCVd+E7A==", - "dev": true, - "requires": { - "is-subset": "^0.1.1", - "modify-values": "^1.0.0" - } - }, - "conventional-commits-parser": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.0.1.tgz", - "integrity": "sha512-P6U5UOvDeidUJ8ebHVDIoXzI7gMlQ1OF/id6oUvp8cnZvOXMt1n8nYl74Ey9YMn0uVQtxmCtjPQawpsssBWtGg==", - "dev": true, - "requires": { - "JSONStream": "^1.0.4", - "is-text-path": "^1.0.0", - "lodash": "^4.2.1", - "meow": "^4.0.0", - "split2": "^2.0.0", - "through2": "^2.0.0", - "trim-off-newlines": "^1.0.0" - } - }, - "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "core-js": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz", - "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cosmiconfig": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.0.tgz", - "integrity": "sha512-nxt+Nfc3JAqf4WIWd0jXLjTJZmsPLrA9DDc4nRw2KFJQJK7DNooqSXrNI7tzLG50CF8axczly5UV929tBmh/7g==", - "dev": true, - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.0", - "parse-json": "^4.0.0" - }, - "dependencies": { - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dev": true, - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } - } - }, - "coveralls": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.0.3.tgz", - "integrity": "sha512-viNfeGlda2zJr8Gj1zqXpDMRjw9uM54p7wzZdvLRyOgnAfCe974Dq4veZkjJdxQXbmdppu6flEajFYseHYaUhg==", - "dev": true, - "requires": { - "growl": "~> 1.10.0", - "js-yaml": "^3.11.0", - "lcov-parse": "^0.0.10", - "log-driver": "^1.2.7", - "minimist": "^1.2.0", - "request": "^2.86.0" - } - }, - "cp-file": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-5.0.0.tgz", - "integrity": "sha1-vHAP0wyjLSTUbH+wK5kuQ1/FqXg=", - "requires": { - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "nested-error-stacks": "^2.0.0", - "pify": "^3.0.0", - "safe-buffer": "^5.0.1" - } - }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "^1.0.1" - } - }, - "dash-ast": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", - "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==" - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=" - }, - "dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "debug-log": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", - "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=" - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "dev": true, - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - } - } - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "dev": true, - "requires": { - "type-detect": "^4.0.0" - } - }, - "deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" - }, - "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==", - "dev": true - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" - }, - "deepmerge": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.2.0.tgz", - "integrity": "sha512-6+LuZGU7QCNUnAJyX8cIrlzoEgggTM6B7mm+znKOX4t5ltluT9KLjN6g61ECMS0LTsLW7yDpNoxhix5FZcrIow==", - "dev": true - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" - }, - "deglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.1.tgz", - "integrity": "sha512-2kjwuGGonL7gWE1XU4Fv79+vVzpoQCl0V+boMwWtOQJV2AGDabCwez++nB1Nli/8BabAfZQ/UuHPlp6AymKdWw==", - "requires": { - "find-root": "^1.0.0", - "glob": "^7.0.5", - "ignore": "^3.0.9", - "pkg-config": "^1.1.0", - "run-parallel": "^1.1.2", - "uniq": "^1.0.1" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "deprecation": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-1.0.1.tgz", - "integrity": "sha512-ccVHpE72+tcIKaGMql33x5MAjKQIZrk+3x2GbJ7TeraUCZWHoT+KSZpoC+JQFsUBlSTXUrBaGiF0j6zVTepPLg==", - "dev": true - }, - "deps-sort": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz", - "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=", - "requires": { - "JSONStream": "^1.0.3", - "shasum": "^1.0.0", - "subarg": "^1.0.0", - "through2": "^2.0.0" - } - }, - "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "requires": { - "repeating": "^2.0.0" - } - }, - "detective": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", - "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", - "requires": { - "acorn-node": "^1.6.1", - "defined": "^1.0.0", - "minimist": "^1.1.1" - } - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "dijkstrajs": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.1.tgz", - "integrity": "sha1-082BIh4+pAdCz83lVtTpnpjdxxs=" - }, - "dir-glob": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", - "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", - "dev": true, - "requires": { - "path-type": "^3.0.0" - }, - "dependencies": { - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - } - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "requires": { - "esutils": "^2.0.2" - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" - }, - "dot-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", - "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=", - "dev": true, - "requires": { - "is-obj": "^1.0.0" - } - }, - "drbg.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", - "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", - "requires": { - "browserify-aes": "^1.0.6", - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4" - } - }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "requires": { - "readable-stream": "^2.0.2" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ecurve": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/ecurve/-/ecurve-1.0.6.tgz", - "integrity": "sha512-/BzEjNfiSuB7jIWKcS/z8FK9jNjmEWvUV2YZ4RLSmcDtP7Lq0m6FvDuSnJpBlDpGRpfRQeTLGLBI8H+kEv0r+w==", - "requires": { - "bigi": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "electron-to-chromium": { - "version": "1.3.131", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.131.tgz", - "integrity": "sha512-NSO4jLeyGLWrT4mzzfYX8vt1MYCoMI5LxSYAjt0H9+LF/14JyiKJSyyjA6AJTxflZlEM5v3QU33F0ohbPMCAPg==" - }, - "elliptic": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", - "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "requires": { - "once": "^1.4.0" - } - }, - "engine.io": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.3.2.tgz", - "integrity": "sha512-AsaA9KG7cWPXWHp5FvHdDWY3AMWeZ8x+2pUVLcn71qE5AtAzgGbxuclOytygskw8XGmiQafTmnI9Bix3uihu2w==", - "requires": { - "accepts": "~1.3.4", - "base64id": "1.0.0", - "cookie": "0.3.1", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.0", - "ws": "~6.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "engine.io-client": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.3.2.tgz", - "integrity": "sha512-y0CPINnhMvPuwtqXfsGuWE8BB66+B6wTtCofQDRecMQPYX3MYUZXFNKDhdrSe3EVjgOu4V3rxdeqN/Tr91IgbQ==", - "requires": { - "component-emitter": "1.2.1", - "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.1", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "ws": "~6.1.0", - "xmlhttprequest-ssl": "~1.5.4", - "yeast": "0.1.2" - }, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "engine.io-parser": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz", - "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", - "requires": { - "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.5", - "blob": "0.0.5", - "has-binary2": "~1.0.2" - } - }, - "env-ci": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-3.2.0.tgz", - "integrity": "sha512-TFjNiDlXrL8/pfHswdvJGEZzJcq3aBPb8Eka83hlGLwuNw9F9BC9S9ETlkfkItLRT9k5JgpGgeP+rL6/3cEbcw==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "java-properties": "^0.2.9" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", - "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", - "requires": { - "es-to-primitive": "^1.2.0", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-keys": "^1.0.12" - } - }, - "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es6-promise": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.6.tgz", - "integrity": "sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q==", - "dev": true - }, - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "dev": true, - "requires": { - "es6-promise": "^4.0.3" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "eslint": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", - "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.9.1", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^4.0.3", - "eslint-utils": "^1.3.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^5.0.1", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.7.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "inquirer": "^6.2.2", - "js-yaml": "^3.13.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.11", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^5.5.1", - "strip-ansi": "^4.0.0", - "strip-json-comments": "^2.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0" - }, - "dependencies": { - "ajv": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "eslint-config-prettier": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-3.6.0.tgz", - "integrity": "sha512-ixJ4U3uTLXwJts4rmSVW/lMXjlGwCijhBJHk8iVqKKSifeI0qgFEfWl8L63isfc8Od7EiBALF6BX3jKLluf/jQ==", - "dev": true, - "requires": { - "get-stdin": "^6.0.0" - } - }, - "eslint-config-standard": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-11.0.0.tgz", - "integrity": "sha512-oDdENzpViEe5fwuRCWla7AXQd++/oyIp8zP+iP9jiUPG6NBj3SHgdgtl/kTn00AjeN+1HNvavTKmYbMo+xMOlw==" - }, - "eslint-config-standard-jsx": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-5.0.0.tgz", - "integrity": "sha512-rLToPAEqLMPBfWnYTu6xRhm2OWziS2n40QFqJ8jAM8NSVzeVKTa3nclhsU4DpPJQRY60F34Oo1wi/71PN/eITg==" - }, - "eslint-import-resolver-node": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", - "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", - "requires": { - "debug": "^2.6.9", - "resolve": "^1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "eslint-module-utils": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz", - "integrity": "sha512-14tltLm38Eu3zS+mt0KvILC3q8jyIAH518MlG+HO0p+yK885Lb1UHTY/UgR91eOyGdmxAPb+OLoW4znqIT6Ndw==", - "requires": { - "debug": "^2.6.8", - "pkg-dir": "^2.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "eslint-plugin-es": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-1.4.0.tgz", - "integrity": "sha512-XfFmgFdIUDgvaRAlaXUkxrRg5JSADoRC8IkKLc/cISeR3yHVMefFHQZpcyXXEUUPHfy5DwviBcrfqlyqEwlQVw==", - "dev": true, - "requires": { - "eslint-utils": "^1.3.0", - "regexpp": "^2.0.1" - } - }, - "eslint-plugin-import": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz", - "integrity": "sha1-JgAu+/ylmJtyiKwEdQi9JPIXsWk=", - "requires": { - "builtin-modules": "^1.1.1", - "contains-path": "^0.1.0", - "debug": "^2.6.8", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.1", - "eslint-module-utils": "^2.1.1", - "has": "^1.0.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.3", - "read-pkg-up": "^2.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "^1.2.0" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "requires": { - "pify": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } - } - } - }, - "eslint-plugin-node": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-7.0.1.tgz", - "integrity": "sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw==", - "dev": true, - "requires": { - "eslint-plugin-es": "^1.3.1", - "eslint-utils": "^1.3.1", - "ignore": "^4.0.2", - "minimatch": "^3.0.4", - "resolve": "^1.8.1", - "semver": "^5.5.0" - }, - "dependencies": { - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - } - } - }, - "eslint-plugin-prettier": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-2.7.0.tgz", - "integrity": "sha512-CStQYJgALoQBw3FsBzH0VOVDRnJ/ZimUlpLm226U8qgqYJfPOY/CPK6wyRInMxh73HSKg5wyRwdS4BVYYHwokA==", - "dev": true, - "requires": { - "fast-diff": "^1.1.1", - "jest-docblock": "^21.0.0" - } - }, - "eslint-plugin-promise": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.7.0.tgz", - "integrity": "sha512-2WO+ZFh7vxUKRfR0cOIMrWgYKdR6S1AlOezw6pC52B6oYpd5WFghN+QHxvrRdZMtbo8h3dfUZ2o1rWb0UPbKtg==" - }, - "eslint-plugin-react": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz", - "integrity": "sha512-KC7Snr4YsWZD5flu6A5c0AcIZidzW3Exbqp7OT67OaD2AppJtlBr/GuPrW/vaQM/yfZotEvKAdrxrO+v8vwYJA==", - "requires": { - "doctrine": "^2.0.2", - "has": "^1.0.1", - "jsx-ast-utils": "^2.0.1", - "prop-types": "^15.6.0" - } - }, - "eslint-plugin-standard": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz", - "integrity": "sha1-NNDJFbRe3G8BA5PH7vOCOwhWXPI=" - }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz", - "integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==", - "dev": true - }, - "eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==" - }, - "espree": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", - "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", - "dev": true, - "requires": { - "acorn": "^6.0.7", - "acorn-jsx": "^5.0.0", - "eslint-visitor-keys": "^1.0.0" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", - "requires": { - "estraverse": "^4.0.0" - } - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "requires": { - "estraverse": "^4.1.0" - } - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" - }, - "events": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", - "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==" - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.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" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "^3.0.0" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "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": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "optional": true, - "requires": { - "fill-range": "^2.1.0" - }, - "dependencies": { - "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", - "optional": true, - "requires": { - "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": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "optional": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "optional": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "external-editor": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz", - "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "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" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "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-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true - }, - "fast-glob": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.6.tgz", - "integrity": "sha512-0BvMaZc1k9F+MeWWMe8pL6YltFzZYcJsYU7D4JyDA6PAczaXvxqQQ/z+mDF7/4Mw01DeUc+i3CTKajnkANkV4w==", - "dev": true, - "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" - }, - "dependencies": { - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - } - } - }, - "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=" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "figlet": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.2.1.tgz", - "integrity": "sha512-qc8gycfnnfOmfvPl7Fi3JeTbcvdmbZkckyUVGGAM02je7Ookvu+bBfKy1I4FKqTsQHCs3ARJ76ip/k98r+OQuQ==" - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "dev": true, - "requires": { - "flat-cache": "^2.0.1" - } - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "optional": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "find-versions": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.1.0.tgz", - "integrity": "sha512-NCTfNiVzeE/xL+roNDffGuRbrWI6atI18lTJ22vKp7rs2OhYzMK3W1dIdO2TUndH/QMcacM4d1uWwgcZcHK69Q==", - "dev": true, - "requires": { - "array-uniq": "^2.1.0", - "semver-regex": "^2.0.0" - }, - "dependencies": { - "array-uniq": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-2.1.0.tgz", - "integrity": "sha512-bdHxtev7FN6+MXI1YFW0Q8mQ8dTJc2S8AMfju+ZR77pbg2yAdVyDlwkaUI7Har0LyOMRFPHrJ9lYdyjZZswdlQ==", - "dev": true - } - } - }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, - "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - } - }, - "flatted": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.0.tgz", - "integrity": "sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg==", - "dev": true - }, - "follow-redirects": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz", - "integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==", - "requires": { - "debug": "^3.2.6" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "requires": { - "is-callable": "^1.1.3" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", - "optional": true, - "requires": { - "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.1", - "bundled": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "debug": { - "version": "4.1.1", - "bundled": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "optional": true, - "requires": { - "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.3", - "bundled": true, - "optional": true, - "requires": { - "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": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true - }, - "minipass": { - "version": "2.3.5", - "bundled": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.2.1", - "bundled": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.1.1", - "bundled": true, - "optional": true - }, - "needle": { - "version": "2.3.0", - "bundled": true, - "optional": true, - "requires": { - "debug": "^4.1.0", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.12.0", - "bundled": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.6", - "bundled": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.1", - "bundled": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": 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": { - "version": "1.0.1", - "bundled": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "optional": true, - "requires": { - "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.3", - "bundled": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "optional": true - }, - "semver": { - "version": "5.7.0", - "bundled": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "tar": { - "version": "4.4.8", - "bundled": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true - }, - "yallist": { - "version": "3.0.3", - "bundled": true - } - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" - }, - "get-assigned-identifiers": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", - "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==" - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" - }, - "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "dev": true - }, - "get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==" - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "git-clone": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/git-clone/-/git-clone-0.1.0.tgz", - "integrity": "sha1-DXYWN3gJOu9/HDAjjyqe8/B6Lrk=" - }, - "git-log-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.0.tgz", - "integrity": "sha1-LmpMGxP8AAKCB7p5WnrDFme5/Uo=", - "dev": true, - "requires": { - "argv-formatter": "~1.0.0", - "spawn-error-forwarder": "~1.0.0", - "split2": "~1.0.0", - "stream-combiner2": "~1.1.1", - "through2": "~2.0.0", - "traverse": "~0.6.6" - }, - "dependencies": { - "split2": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-1.0.0.tgz", - "integrity": "sha1-UuLiIdiMdfmnP5BVbiY/+WdysxQ=", - "dev": true, - "requires": { - "through2": "~2.0.0" - } - } - } - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "requires": { - "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": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "optional": true, - "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" - }, - "dependencies": { - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "optional": true, - "requires": { - "is-glob": "^2.0.0" - } - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", - "dev": true - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - }, - "globby": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", - "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "array-union": "^1.0.2", - "dir-glob": "^2.2.2", - "fast-glob": "^2.2.6", - "glob": "^7.1.3", - "ignore": "^4.0.3", - "pify": "^4.0.1", - "slash": "^2.0.0" - }, - "dependencies": { - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true - } - } - }, - "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, - "handlebars": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz", - "integrity": "sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==", - "dev": true, - "requires": { - "neo-async": "^2.6.0", - "optimist": "^0.6.1", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4" - }, - "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 - } - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "dev": true, - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - }, - "dependencies": { - "ajv": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - } - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", - "requires": { - "isarray": "2.0.1" - }, - "dependencies": { - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - } - } - }, - "has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", - "dev": true - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" - } - }, - "hook-std": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/hook-std/-/hook-std-1.2.0.tgz", - "integrity": "sha512-yntre2dbOAjgQ5yoRykyON0D9T96BfshR8IuiL/r3celeHD8I/76w4qo8m3z99houR4Z678jakV3uXrQdSvW/w==", - "dev": true - }, - "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" - }, - "htmlescape": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", - "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=" - }, - "http-proxy-agent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", - "dev": true, - "requires": { - "agent-base": "4", - "debug": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" - }, - "https-proxy-agent": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", - "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", - "dev": true, - "requires": { - "agent-base": "^4.1.0", - "debug": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" - }, - "import-fresh": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.0.0.tgz", - "integrity": "sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "import-from": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "dev": true, - "requires": { - "resolve-from": "^3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" - }, - "inline-source-map": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", - "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", - "requires": { - "source-map": "~0.5.3" - } - }, - "inquirer": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.3.1.tgz", - "integrity": "sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA==", - "dev": true, - "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.11", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "insert-module-globals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.0.tgz", - "integrity": "sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw==", - "requires": { - "JSONStream": "^1.0.3", - "acorn-node": "^1.5.2", - "combine-source-map": "^0.8.0", - "concat-stream": "^1.6.1", - "is-buffer": "^1.1.0", - "path-is-absolute": "^1.0.1", - "process": "~0.11.0", - "through2": "^2.0.0", - "undeclared-identifiers": "^1.1.2", - "xtend": "^4.0.0" - } - }, - "into-stream": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-4.0.0.tgz", - "integrity": "sha512-i29KNyE5r0Y/UQzcQ0IbZO1MYJ53Jn0EcFRZPj5FzWKYH17kDFEOwuA+3jroymOI06SW1dEDnly9A1CAreC5dg==", - "dev": true, - "requires": { - "from2": "^2.1.1", - "p-is-promise": "^2.0.0" - } - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "optional": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true - }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "optional": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "optional": true, - "requires": { - "is-primitive": "^2.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" - }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "requires": { - "is-extglob": "^1.0.0" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "^3.0.1" - } - }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "optional": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "optional": true - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" - }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "requires": { - "has": "^1.0.1" - } - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-subset": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", - "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=", - "dev": true - }, - "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", - "requires": { - "has-symbols": "^1.0.0" - } - }, - "is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", - "dev": true, - "requires": { - "text-extensions": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "issue-parser": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-3.0.1.tgz", - "integrity": "sha512-5wdT3EE8Kq38x/hJD8QZCJ9scGoOZ5QnzwXyClkviSWTS+xOCE6hJ0qco3H5n5jCsFqpbofZCcMWqlXJzF72VQ==", - "dev": true, - "requires": { - "lodash.capitalize": "^4.2.1", - "lodash.escaperegexp": "^4.1.2", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.uniqby": "^4.7.0" - } - }, - "istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==" - }, - "istanbul-lib-instrument": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", - "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", - "requires": { - "@babel/generator": "^7.4.0", - "@babel/parser": "^7.4.3", - "@babel/template": "^7.4.0", - "@babel/traverse": "^7.4.3", - "@babel/types": "^7.4.0", - "istanbul-lib-coverage": "^2.0.5", - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.0.0.tgz", - "integrity": "sha512-0UewU+9rFapKFnlbirLi3byoOuhrSsli/z/ihNnvM24vgF+8sNBiI1LZPBSH9wJKUwaUbw+s3hToDLCXkrghrQ==" - } - } - }, - "java-properties": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-0.2.10.tgz", - "integrity": "sha512-CpKJh9VRNhS+XqZtg1UMejETGEiqwCGDC/uwPEEQwc2nfdbSm73SIE29TplG2gLYuBOOTNDqxzG6A9NtEPLt0w==", - "dev": true - }, - "jest-docblock": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz", - "integrity": "sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw==", - "dev": true - }, - "js-sha256": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", - "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "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": "0.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", - "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", - "requires": { - "jsonify": "~0.0.0" - } - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "jsx-ast-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.1.0.tgz", - "integrity": "sha512-yDGDG2DS4JcqhA6blsuYbtsT09xL8AoLuUR2Gb5exrw7UEM19sBcOTq+YBBhrNbl0PUC4R4LnFu+dHg2HKeVvA==", - "requires": { - "array-includes": "^3.0.3" - } - }, - "just-extend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.0.2.tgz", - "integrity": "sha512-FrLwOgm+iXrPV+5zDU6Jqu4gCRXbWEQg2O3SKONsWE4w7AXFRkryS53bpWdaL9cNol+AmR3AEYz6kn+o0fCPnw==", - "dev": true - }, - "keccak": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", - "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", - "requires": { - "bindings": "^1.2.1", - "inherits": "^2.0.3", - "nan": "^2.2.1", - "safe-buffer": "^5.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - }, - "labeled-stream-splicer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.1.tgz", - "integrity": "sha512-MC94mHZRvJ3LfykJlTUipBqenZz1pacOZEMhhQ8dMGcDHs0SBE5GbsavUXV7YtP3icBW17W0Zy1I0lfASmo9Pg==", - "requires": { - "inherits": "^2.0.1", - "isarray": "^2.0.4", - "stream-splicer": "^2.0.0" - }, - "dependencies": { - "isarray": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.4.tgz", - "integrity": "sha512-GMxXOiUirWg1xTKRipM0Ek07rX+ubx4nNVElTJdNLYmNO/2YrDkgJGw9CljXn+r4EWiDQg/8lsRdHyg2PJuUaA==" - } - } - }, - "lcov-parse": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz", - "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=", - "dev": true - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" - }, - "lodash.capitalize": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz", - "integrity": "sha1-+CbJtOKoUR2E46yinbBeGk87cqk=", - "dev": true - }, - "lodash.escaperegexp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", - "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=", - "dev": true - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", - "dev": true - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", - "dev": true - }, - "lodash.memoize": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", - "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=" - }, - "lodash.set": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", - "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", - "dev": true - }, - "lodash.toarray": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", - "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=" - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, - "lodash.uniqby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", - "integrity": "sha1-2ZwHpmnp5tJOE2Lf4mbGdhavEwI=", - "dev": true - }, - "log-driver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", - "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", - "dev": true - }, - "lolex": { - "version": "2.7.5", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.7.5.tgz", - "integrity": "sha512-l9x0+1offnKKIzYVjyXU2SiwhXDLekRzKyhnbyldPHvC7BvLPVpdNUNR2KeMAiCN2D/kLNttZgQD5WjSxuBx3Q==", - "dev": true - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - }, - "dependencies": { - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - } - } - }, - "macos-release": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.2.0.tgz", - "integrity": "sha512-iV2IDxZaX8dIcM7fG6cI46uNmHUxHE4yN+Z8tKHAW1TBPMZDIKHf/3L+YnOuj/FK9il14UaVdHmiQ1tsi90ltA==", - "dev": true - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "requires": { - "pify": "^3.0.0" - } - }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "requires": { - "p-defer": "^1.0.0" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } - }, - "marked": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.6.2.tgz", - "integrity": "sha512-LqxwVH3P/rqKX4EKGz7+c2G9r98WeM/SW34ybhgNGhUQNKtf1GmmSkJ6cDGJ/t6tiyae49qRkpyTw2B9HOrgUA==", - "dev": true - }, - "marked-terminal": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-3.2.0.tgz", - "integrity": "sha512-Yr1yVS0BbDG55vx7be1D0mdv+jGs9AW563o/Tt/7FTsId2J0yqhrTeXAqq/Q0DyyXltIn6CSxzesQuFqXgafjQ==", - "dev": true, - "requires": { - "ansi-escapes": "^3.1.0", - "cardinal": "^2.1.1", - "chalk": "^2.4.1", - "cli-table": "^0.3.1", - "node-emoji": "^1.4.1", - "supports-hyperlinks": "^1.0.1" - } - }, - "math-random": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", - "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", - "optional": true - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - }, - "dependencies": { - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - } - } - }, - "meow": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", - "dev": true, - "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist": "^1.1.3", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - } - } - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "merge2": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz", - "integrity": "sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==", - "dev": true - }, - "merkle-lib": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/merkle-lib/-/merkle-lib-2.0.10.tgz", - "integrity": "sha1-grjbrnXieneFOItz+ddyXQ9vMyY=" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" - }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", - "requires": { - "mime-db": "1.40.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "minimist-options": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", - "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0" - } - }, - "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - } - } - }, - "mocha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", - "dev": true, - "requires": { - "browser-stdout": "1.3.1", - "commander": "2.15.1", - "debug": "3.1.0", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", - "growl": "1.10.5", - "he": "1.1.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "supports-color": "5.4.0" - }, - "dependencies": { - "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.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.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "modify-values": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", - "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", - "dev": true - }, - "module-deps": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.0.tgz", - "integrity": "sha512-hKPmO06so6bL/ZvqVNVqdTVO8UAYsi3tQWlCa+z9KuWhoN4KDQtb5hcqQQv58qYiDE21wIvnttZEPiDgEbpwbA==", - "requires": { - "JSONStream": "^1.0.3", - "browser-resolve": "^1.7.0", - "cached-path-relative": "^1.0.0", - "concat-stream": "~1.6.0", - "defined": "^1.0.0", - "detective": "^5.0.2", - "duplexer2": "^0.1.2", - "inherits": "^2.0.1", - "parents": "^1.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.4.0", - "stream-combiner2": "^1.1.1", - "subarg": "^1.0.0", - "through2": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" - }, - "nan": { - "version": "2.13.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", - "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==" - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "neo-async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", - "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", - "dev": true - }, - "nerf-dart": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/nerf-dart/-/nerf-dart-1.0.0.tgz", - "integrity": "sha1-5tq3/r9a2Bbqgc9cYpxaDr3nLBo=", - "dev": true - }, - "nested-error-stacks": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", - "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "nise": { - "version": "1.4.10", - "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.10.tgz", - "integrity": "sha512-sa0RRbj53dovjc7wombHmVli9ZihXbXCQ2uH3TNm03DyvOSIQbxg+pbqDKrk2oxMK1rtLGVlKxcB9rrc6X5YjA==", - "dev": true, - "requires": { - "@sinonjs/formatio": "^3.1.0", - "@sinonjs/text-encoding": "^0.7.1", - "just-extend": "^4.0.2", - "lolex": "^2.3.2", - "path-to-regexp": "^1.7.0" - }, - "dependencies": { - "@sinonjs/formatio": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.2.1.tgz", - "integrity": "sha512-tsHvOB24rvyvV2+zKMmPkZ7dXX6LSLKZ7aOtXY6Edklp0uRcgGpOsQTTGTcWViFyx4uhWc6GV8QdnALbIbIdeQ==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1", - "@sinonjs/samsam": "^3.1.0" - } - } - } - }, - "nock": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/nock/-/nock-10.0.6.tgz", - "integrity": "sha512-b47OWj1qf/LqSQYnmokNWM8D88KvUl2y7jT0567NB3ZBAZFz2bWp2PC81Xn7u8F2/vJxzkzNZybnemeFa7AZ2w==", - "dev": true, - "requires": { - "chai": "^4.1.2", - "debug": "^4.1.0", - "deep-equal": "^1.0.0", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.5", - "mkdirp": "^0.5.0", - "propagate": "^1.0.0", - "qs": "^6.5.1", - "semver": "^5.5.0" - } - }, - "node-cmd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/node-cmd/-/node-cmd-3.0.0.tgz", - "integrity": "sha1-OP/3CkqqT2WdID61eGJzcBjiT28=" - }, - "node-emoji": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz", - "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==", - "requires": { - "lodash.toarray": "^4.4.0" - } - }, - "node-fetch": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.5.0.tgz", - "integrity": "sha512-YuZKluhWGJwCcUu4RlZstdAxr8bFfOVHakc1mplwHkk8J+tqM1Y5yraYvIUpeX8aY7+crCwiELJq7Vl0o0LWXw==", - "dev": true - }, - "node-mocks-http": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/node-mocks-http/-/node-mocks-http-1.7.5.tgz", - "integrity": "sha512-YRT95Y4FLoLTJGLZhZxZOsq6KuU4ykc5ChdbmLRzuYuFtdsI+nmLLrqn6gzZsk5nxiyx8DOnS+YgwMKGWY/uYw==", - "dev": true, - "requires": { - "accepts": "^1.3.5", - "depd": "^1.1.0", - "fresh": "^0.5.2", - "merge-descriptors": "^1.0.1", - "methods": "^1.1.2", - "mime": "^1.3.4", - "parseurl": "^1.3.1", - "range-parser": "^1.2.0", - "type-is": "^1.6.16" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "normalize-url": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.3.0.tgz", - "integrity": "sha512-0NLtR71o4k6GLP+mr6Ty34c5GA6CMoEsncKJxvQd8NzPxaHRJNnb5gZE8R1XF4CPIS7QPHLJ74IFszwtNVAHVQ==", - "dev": true - }, - "npm": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/npm/-/npm-6.5.0.tgz", - "integrity": "sha512-SPq8zG2Kto+Xrq55E97O14Jla13PmQT5kSnvwBj88BmJZ5Nvw++OmlWfhjkB67pcgP5UEXljEtnGFKZtOgt6MQ==", - "dev": true, - "requires": { - "JSONStream": "^1.3.4", - "abbrev": "~1.1.1", - "ansicolors": "~0.3.2", - "ansistyles": "~0.1.3", - "aproba": "~1.2.0", - "archy": "~1.0.0", - "bin-links": "^1.1.2", - "bluebird": "^3.5.3", - "byte-size": "^4.0.3", - "cacache": "^11.2.0", - "call-limit": "~1.1.0", - "chownr": "~1.0.1", - "ci-info": "^1.6.0", - "cli-columns": "^3.1.2", - "cli-table3": "^0.5.0", - "cmd-shim": "~2.0.2", - "columnify": "~1.5.4", - "config-chain": "^1.1.12", - "debuglog": "*", - "detect-indent": "~5.0.0", - "detect-newline": "^2.1.0", - "dezalgo": "~1.0.3", - "editor": "~1.0.0", - "figgy-pudding": "^3.5.1", - "find-npm-prefix": "^1.0.2", - "fs-vacuum": "~1.2.10", - "fs-write-stream-atomic": "~1.0.10", - "gentle-fs": "^2.0.1", - "glob": "^7.1.3", - "graceful-fs": "^4.1.15", - "has-unicode": "~2.0.1", - "hosted-git-info": "^2.7.1", - "iferr": "^1.0.2", - "imurmurhash": "*", - "inflight": "~1.0.6", - "inherits": "~2.0.3", - "ini": "^1.3.5", - "init-package-json": "^1.10.3", - "is-cidr": "^2.0.6", - "json-parse-better-errors": "^1.0.2", - "lazy-property": "~1.0.0", - "libcipm": "^2.0.2", - "libnpmhook": "^4.0.1", - "libnpx": "^10.2.0", - "lock-verify": "^2.0.2", - "lockfile": "^1.0.4", - "lodash._baseindexof": "*", - "lodash._baseuniq": "~4.6.0", - "lodash._bindcallback": "*", - "lodash._cacheindexof": "*", - "lodash._createcache": "*", - "lodash._getnative": "*", - "lodash.clonedeep": "~4.5.0", - "lodash.restparam": "*", - "lodash.union": "~4.6.0", - "lodash.uniq": "~4.5.0", - "lodash.without": "~4.4.0", - "lru-cache": "^4.1.3", - "meant": "~1.0.1", - "mississippi": "^3.0.0", - "mkdirp": "~0.5.1", - "move-concurrently": "^1.0.1", - "node-gyp": "^3.8.0", - "nopt": "~4.0.1", - "normalize-package-data": "~2.4.0", - "npm-audit-report": "^1.3.1", - "npm-cache-filename": "~1.0.2", - "npm-install-checks": "~3.0.0", - "npm-lifecycle": "^2.1.0", - "npm-package-arg": "^6.1.0", - "npm-packlist": "^1.1.12", - "npm-pick-manifest": "^2.1.0", - "npm-profile": "^3.0.2", - "npm-registry-client": "^8.6.0", - "npm-registry-fetch": "^1.1.0", - "npm-user-validate": "~1.0.0", - "npmlog": "~4.1.2", - "once": "~1.4.0", - "opener": "^1.5.1", - "osenv": "^0.1.5", - "pacote": "^8.1.6", - "path-is-inside": "~1.0.2", - "promise-inflight": "~1.0.1", - "qrcode-terminal": "^0.12.0", - "query-string": "^6.1.0", - "qw": "~1.0.1", - "read": "~1.0.7", - "read-cmd-shim": "~1.0.1", - "read-installed": "~4.0.3", - "read-package-json": "^2.0.13", - "read-package-tree": "^5.2.1", - "readable-stream": "^2.3.6", - "readdir-scoped-modules": "*", - "request": "^2.88.0", - "retry": "^0.12.0", - "rimraf": "~2.6.2", - "safe-buffer": "^5.1.2", - "semver": "^5.5.1", - "sha": "~2.0.1", - "slide": "~1.1.6", - "sorted-object": "~2.0.1", - "sorted-union-stream": "~2.1.3", - "ssri": "^6.0.1", - "stringify-package": "^1.0.0", - "tar": "^4.4.8", - "text-table": "~0.2.0", - "tiny-relative-date": "^1.3.0", - "uid-number": "0.0.6", - "umask": "~1.1.0", - "unique-filename": "~1.1.0", - "unpipe": "~1.0.0", - "update-notifier": "^2.5.0", - "uuid": "^3.3.2", - "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "~3.0.0", - "which": "^1.3.1", - "worker-farm": "^1.6.0", - "write-file-atomic": "^2.3.0" - }, - "dependencies": { - "JSONStream": { - "version": "1.3.4", - "bundled": true, - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true - }, - "agent-base": { - "version": "4.2.0", - "bundled": true, - "dev": true, - "requires": { - "es6-promisify": "^5.0.0" - } - }, - "agentkeepalive": { - "version": "3.4.1", - "bundled": true, - "dev": true, - "requires": { - "humanize-ms": "^1.2.1" - } - }, - "ajv": { - "version": "5.5.2", - "bundled": true, - "dev": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "ansi-align": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^2.0.0" - } - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "bundled": true, - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "ansicolors": { - "version": "0.3.2", - "bundled": true, - "dev": true - }, - "ansistyles": { - "version": "0.1.3", - "bundled": true, - "dev": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true - }, - "archy": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "bundled": true, - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "asap": { - "version": "2.0.6", - "bundled": true, - "dev": true - }, - "asn1": { - "version": "0.2.4", - "bundled": true, - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "bundled": true, - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "bundled": true, - "dev": true - }, - "aws4": { - "version": "1.8.0", - "bundled": true, - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bin-links": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "requires": { - "bluebird": "^3.5.0", - "cmd-shim": "^2.0.2", - "gentle-fs": "^2.0.0", - "graceful-fs": "^4.1.11", - "write-file-atomic": "^2.3.0" - } - }, - "block-stream": { - "version": "0.0.9", - "bundled": true, - "dev": true, - "requires": { - "inherits": "~2.0.0" - } - }, - "bluebird": { - "version": "3.5.3", - "bundled": true, - "dev": true - }, - "boxen": { - "version": "1.3.0", - "bundled": true, - "dev": true, - "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "buffer-from": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "bundled": true, - "dev": true - }, - "builtins": { - "version": "1.0.3", - "bundled": true, - "dev": true - }, - "byline": { - "version": "5.0.0", - "bundled": true, - "dev": true - }, - "byte-size": { - "version": "4.0.3", - "bundled": true, - "dev": true - }, - "cacache": { - "version": "11.2.0", - "bundled": true, - "dev": true, - "requires": { - "bluebird": "^3.5.1", - "chownr": "^1.0.1", - "figgy-pudding": "^3.1.0", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "lru-cache": "^4.1.3", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", - "ssri": "^6.0.0", - "unique-filename": "^1.1.0", - "y18n": "^4.0.0" - } - }, - "call-limit": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "camelcase": { - "version": "4.1.0", - "bundled": true, - "dev": true - }, - "capture-stack-trace": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "caseless": { - "version": "0.12.0", - "bundled": true, - "dev": true - }, - "chalk": { - "version": "2.4.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chownr": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "ci-info": { - "version": "1.6.0", - "bundled": true, - "dev": true - }, - "cidr-regex": { - "version": "2.0.9", - "bundled": true, - "dev": true, - "requires": { - "ip-regex": "^2.1.0" - } - }, - "cli-boxes": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "cli-columns": { - "version": "3.1.2", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^2.0.0", - "strip-ansi": "^3.0.1" - } - }, - "cli-table3": { - "version": "0.5.0", - "bundled": true, - "dev": true, - "requires": { - "colors": "^1.1.2", - "object-assign": "^4.1.0", - "string-width": "^2.1.1" - } - }, - "cliui": { - "version": "4.1.0", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "clone": { - "version": "1.0.4", - "bundled": true, - "dev": true - }, - "cmd-shim": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "mkdirp": "~0.5.0" - } - }, - "co": { - "version": "4.6.0", - "bundled": true, - "dev": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "color-convert": { - "version": "1.9.1", - "bundled": true, - "dev": true, - "requires": { - "color-name": "^1.1.1" - } - }, - "color-name": { - "version": "1.1.3", - "bundled": true, - "dev": true - }, - "colors": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "columnify": { - "version": "1.5.4", - "bundled": true, - "dev": true, - "requires": { - "strip-ansi": "^3.0.0", - "wcwidth": "^1.0.0" - } - }, - "combined-stream": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "bundled": true, - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "config-chain": { - "version": "1.1.12", - "bundled": true, - "dev": true, - "requires": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "configstore": { - "version": "3.1.2", - "bundled": true, - "dev": true, - "requires": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" - } - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "copy-concurrently": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - }, - "dependencies": { - "iferr": { - "version": "0.1.5", - "bundled": true, - "dev": true - } - } - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "create-error-class": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "requires": { - "capture-stack-trace": "^1.0.0" - } - }, - "cross-spawn": { - "version": "5.1.0", - "bundled": true, - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "crypto-random-string": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "cyclist": { - "version": "0.2.2", - "bundled": true, - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "bundled": true, - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "debug": { - "version": "3.1.0", - "bundled": true, - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true - } - } - }, - "debuglog": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "decamelize": { - "version": "1.2.0", - "bundled": true, - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "bundled": true, - "dev": true - }, - "deep-extend": { - "version": "0.5.1", - "bundled": true, - "dev": true - }, - "defaults": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "requires": { - "clone": "^1.0.2" - } - }, - "delayed-stream": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "detect-indent": { - "version": "5.0.0", - "bundled": true, - "dev": true - }, - "detect-newline": { - "version": "2.1.0", - "bundled": true, - "dev": true - }, - "dezalgo": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "requires": { - "asap": "^2.0.0", - "wrappy": "1" - } - }, - "dot-prop": { - "version": "4.2.0", - "bundled": true, - "dev": true, - "requires": { - "is-obj": "^1.0.0" - } - }, - "dotenv": { - "version": "5.0.1", - "bundled": true, - "dev": true - }, - "duplexer3": { - "version": "0.1.4", - "bundled": true, - "dev": true - }, - "duplexify": { - "version": "3.6.0", - "bundled": true, - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "editor": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "encoding": { - "version": "0.1.12", - "bundled": true, - "dev": true, - "requires": { - "iconv-lite": "~0.4.13" - } - }, - "end-of-stream": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "err-code": { - "version": "1.1.2", - "bundled": true, - "dev": true - }, - "errno": { - "version": "0.1.7", - "bundled": true, - "dev": true, - "requires": { - "prr": "~1.0.1" - } - }, - "es6-promise": { - "version": "4.2.4", - "bundled": true, - "dev": true - }, - "es6-promisify": { - "version": "5.0.0", - "bundled": true, - "dev": true, - "requires": { - "es6-promise": "^4.0.3" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "bundled": true, - "dev": true - }, - "execa": { - "version": "0.7.0", - "bundled": true, - "dev": true, - "requires": { - "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" - } - }, - "extend": { - "version": "3.0.2", - "bundled": true, - "dev": true - }, - "extsprintf": { - "version": "1.3.0", - "bundled": true, - "dev": true - }, - "fast-deep-equal": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "figgy-pudding": { - "version": "3.5.1", - "bundled": true, - "dev": true - }, - "find-npm-prefix": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "find-up": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "flush-write-stream": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.4" - } - }, - "forever-agent": { - "version": "0.6.1", - "bundled": true, - "dev": true - }, - "form-data": { - "version": "2.3.2", - "bundled": true, - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "1.0.6", - "mime-types": "^2.1.12" - } - }, - "from2": { - "version": "2.3.0", - "bundled": true, - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs-vacuum": { - "version": "1.2.10", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "path-is-inside": "^1.0.1", - "rimraf": "^2.5.2" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - }, - "dependencies": { - "iferr": { - "version": "0.1.5", - "bundled": true, - "dev": true - } - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "fstream": { - "version": "1.0.11", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - } - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "genfun": { - "version": "4.0.1", - "bundled": true, - "dev": true - }, - "gentle-fs": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "aproba": "^1.1.2", - "fs-vacuum": "^1.2.10", - "graceful-fs": "^4.1.11", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "path-is-inside": "^1.0.2", - "read-cmd-shim": "^1.0.1", - "slide": "^1.1.6" - }, - "dependencies": { - "iferr": { - "version": "0.1.5", - "bundled": true, - "dev": true - } - } - }, - "get-caller-file": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "get-stream": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "getpass": { - "version": "0.1.7", - "bundled": true, - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "dev": true, - "requires": { - "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" - } - }, - "global-dirs": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "requires": { - "ini": "^1.3.4" - } - }, - "got": { - "version": "6.7.1", - "bundled": true, - "dev": true, - "requires": { - "create-error-class": "^3.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.1.15", - "bundled": true, - "dev": true - }, - "har-schema": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "har-validator": { - "version": "5.1.0", - "bundled": true, - "dev": true, - "requires": { - "ajv": "^5.3.0", - "har-schema": "^2.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, - "hosted-git-info": { - "version": "2.7.1", - "bundled": true, - "dev": true - }, - "http-cache-semantics": { - "version": "3.8.1", - "bundled": true, - "dev": true - }, - "http-proxy-agent": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "agent-base": "4", - "debug": "3.1.0" - } - }, - "http-signature": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-proxy-agent": { - "version": "2.2.1", - "bundled": true, - "dev": true, - "requires": { - "agent-base": "^4.1.0", - "debug": "^3.1.0" - } - }, - "humanize-ms": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "requires": { - "ms": "^2.0.0" - } - }, - "iconv-lite": { - "version": "0.4.23", - "bundled": true, - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "iferr": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "import-lazy": { - "version": "2.1.0", - "bundled": true, - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "bundled": true, - "dev": true - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true - }, - "init-package-json": { - "version": "1.10.3", - "bundled": true, - "dev": true, - "requires": { - "glob": "^7.1.1", - "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0", - "promzard": "^0.3.0", - "read": "~1.0.1", - "read-package-json": "1 || 2", - "semver": "2.x || 3.x || 4 || 5", - "validate-npm-package-license": "^3.0.1", - "validate-npm-package-name": "^3.0.0" - } - }, - "invert-kv": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "ip": { - "version": "1.1.5", - "bundled": true, - "dev": true - }, - "ip-regex": { - "version": "2.1.0", - "bundled": true, - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "builtin-modules": "^1.0.0" - } - }, - "is-ci": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "ci-info": "^1.0.0" - } - }, - "is-cidr": { - "version": "2.0.6", - "bundled": true, - "dev": true, - "requires": { - "cidr-regex": "^2.0.8" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-installed-globally": { - "version": "0.1.0", - "bundled": true, - "dev": true, - "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" - } - }, - "is-npm": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "is-obj": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "is-path-inside": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "is-redirect": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "is-retry-allowed": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "isexe": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "isstream": { - "version": "0.1.2", - "bundled": true, - "dev": true - }, - "jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "bundled": true, - "dev": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "bundled": true, - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "bundled": true, - "dev": true - }, - "jsonparse": { - "version": "1.3.1", - "bundled": true, - "dev": true - }, - "jsprim": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "latest-version": { - "version": "3.1.0", - "bundled": true, - "dev": true, - "requires": { - "package-json": "^4.0.0" - } - }, - "lazy-property": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "lcid": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "invert-kv": "^1.0.0" - } - }, - "libcipm": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "bin-links": "^1.1.2", - "bluebird": "^3.5.1", - "find-npm-prefix": "^1.0.2", - "graceful-fs": "^4.1.11", - "lock-verify": "^2.0.2", - "mkdirp": "^0.5.1", - "npm-lifecycle": "^2.0.3", - "npm-logical-tree": "^1.2.1", - "npm-package-arg": "^6.1.0", - "pacote": "^8.1.6", - "protoduck": "^5.0.0", - "read-package-json": "^2.0.13", - "rimraf": "^2.6.2", - "worker-farm": "^1.6.0" - } - }, - "libnpmhook": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "requires": { - "figgy-pudding": "^3.1.0", - "npm-registry-fetch": "^3.0.0" - }, - "dependencies": { - "npm-registry-fetch": { - "version": "3.1.1", - "bundled": true, - "dev": true, - "requires": { - "bluebird": "^3.5.1", - "figgy-pudding": "^3.1.0", - "lru-cache": "^4.1.2", - "make-fetch-happen": "^4.0.0", - "npm-package-arg": "^6.0.0" - } - } - } - }, - "libnpx": { - "version": "10.2.0", - "bundled": true, - "dev": true, - "requires": { - "dotenv": "^5.0.1", - "npm-package-arg": "^6.0.0", - "rimraf": "^2.6.2", - "safe-buffer": "^5.1.0", - "update-notifier": "^2.3.0", - "which": "^1.3.0", - "y18n": "^4.0.0", - "yargs": "^11.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "lock-verify": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "npm-package-arg": "^5.1.2 || 6", - "semver": "^5.4.1" - } - }, - "lockfile": { - "version": "1.0.4", - "bundled": true, - "dev": true, - "requires": { - "signal-exit": "^3.0.2" - } - }, - "lodash._baseindexof": { - "version": "3.1.0", - "bundled": true, - "dev": true - }, - "lodash._baseuniq": { - "version": "4.6.0", - "bundled": true, - "dev": true, - "requires": { - "lodash._createset": "~4.0.0", - "lodash._root": "~3.0.0" - } - }, - "lodash._bindcallback": { - "version": "3.0.1", - "bundled": true, - "dev": true - }, - "lodash._cacheindexof": { - "version": "3.0.2", - "bundled": true, - "dev": true - }, - "lodash._createcache": { - "version": "3.1.2", - "bundled": true, - "dev": true, - "requires": { - "lodash._getnative": "^3.0.0" - } - }, - "lodash._createset": { - "version": "4.0.3", - "bundled": true, - "dev": true - }, - "lodash._getnative": { - "version": "3.9.1", - "bundled": true, - "dev": true - }, - "lodash._root": { - "version": "3.0.1", - "bundled": true, - "dev": true - }, - "lodash.clonedeep": { - "version": "4.5.0", - "bundled": true, - "dev": true - }, - "lodash.restparam": { - "version": "3.6.1", - "bundled": true, - "dev": true - }, - "lodash.union": { - "version": "4.6.0", - "bundled": true, - "dev": true - }, - "lodash.uniq": { - "version": "4.5.0", - "bundled": true, - "dev": true - }, - "lodash.without": { - "version": "4.4.0", - "bundled": true, - "dev": true - }, - "lowercase-keys": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "lru-cache": { - "version": "4.1.3", - "bundled": true, - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "make-dir": { - "version": "1.3.0", - "bundled": true, - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "make-fetch-happen": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "requires": { - "agentkeepalive": "^3.4.1", - "cacache": "^11.0.1", - "http-cache-semantics": "^3.8.1", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.1", - "lru-cache": "^4.1.2", - "mississippi": "^3.0.0", - "node-fetch-npm": "^2.0.2", - "promise-retry": "^1.1.1", - "socks-proxy-agent": "^4.0.0", - "ssri": "^6.0.0" - } - }, - "meant": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "mem": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "mime-db": { - "version": "1.35.0", - "bundled": true, - "dev": true - }, - "mime-types": { - "version": "2.1.19", - "bundled": true, - "dev": true, - "requires": { - "mime-db": "~1.35.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "bundled": true, - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true - }, - "minipass": { - "version": "2.3.3", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - }, - "dependencies": { - "yallist": { - "version": "3.0.2", - "bundled": true, - "dev": true - } - } - }, - "minizlib": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mississippi": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "move-concurrently": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "ms": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "mute-stream": { - "version": "0.0.7", - "bundled": true, - "dev": true - }, - "node-fetch-npm": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "encoding": "^0.1.11", - "json-parse-better-errors": "^1.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node-gyp": { - "version": "3.8.0", - "bundled": true, - "dev": true, - "requires": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" - }, - "dependencies": { - "nopt": { - "version": "3.0.6", - "bundled": true, - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "semver": { - "version": "5.3.0", - "bundled": true, - "dev": true - }, - "tar": { - "version": "2.2.1", - "bundled": true, - "dev": true, - "requires": { - "block-stream": "*", - "fstream": "^1.0.2", - "inherits": "2" - } - } - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "normalize-package-data": { - "version": "2.4.0", - "bundled": true, - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "npm-audit-report": { - "version": "1.3.1", - "bundled": true, - "dev": true, - "requires": { - "cli-table3": "^0.5.0", - "console-control-strings": "^1.1.0" - } - }, - "npm-bundled": { - "version": "1.0.5", - "bundled": true, - "dev": true - }, - "npm-cache-filename": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "npm-install-checks": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "semver": "^2.3.0 || 3.x || 4 || 5" - } - }, - "npm-lifecycle": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "byline": "^5.0.0", - "graceful-fs": "^4.1.11", - "node-gyp": "^3.8.0", - "resolve-from": "^4.0.0", - "slide": "^1.1.6", - "uid-number": "0.0.6", - "umask": "^1.1.0", - "which": "^1.3.1" - } - }, - "npm-logical-tree": { - "version": "1.2.1", - "bundled": true, - "dev": true - }, - "npm-package-arg": { - "version": "6.1.0", - "bundled": true, - "dev": true, - "requires": { - "hosted-git-info": "^2.6.0", - "osenv": "^0.1.5", - "semver": "^5.5.0", - "validate-npm-package-name": "^3.0.0" - } - }, - "npm-packlist": { - "version": "1.1.12", - "bundled": true, - "dev": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npm-pick-manifest": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "npm-package-arg": "^6.0.0", - "semver": "^5.4.1" - } - }, - "npm-profile": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "requires": { - "aproba": "^1.1.2 || 2", - "make-fetch-happen": "^2.5.0 || 3 || 4" - } - }, - "npm-registry-client": { - "version": "8.6.0", - "bundled": true, - "dev": true, - "requires": { - "concat-stream": "^1.5.2", - "graceful-fs": "^4.1.6", - "normalize-package-data": "~1.0.1 || ^2.0.0", - "npm-package-arg": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0", - "npmlog": "2 || ^3.1.0 || ^4.0.0", - "once": "^1.3.3", - "request": "^2.74.0", - "retry": "^0.10.0", - "safe-buffer": "^5.1.1", - "semver": "2 >=2.2.1 || 3.x || 4 || 5", - "slide": "^1.1.3", - "ssri": "^5.2.4" - }, - "dependencies": { - "retry": { - "version": "0.10.1", - "bundled": true, - "dev": true - }, - "ssri": { - "version": "5.3.0", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "^5.1.1" - } - } - } - }, - "npm-registry-fetch": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "bluebird": "^3.5.1", - "figgy-pudding": "^2.0.1", - "lru-cache": "^4.1.2", - "make-fetch-happen": "^3.0.0", - "npm-package-arg": "^6.0.0", - "safe-buffer": "^5.1.1" - }, - "dependencies": { - "cacache": { - "version": "10.0.4", - "bundled": true, - "dev": true, - "requires": { - "bluebird": "^3.5.1", - "chownr": "^1.0.1", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "lru-cache": "^4.1.1", - "mississippi": "^2.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", - "ssri": "^5.2.4", - "unique-filename": "^1.1.0", - "y18n": "^4.0.0" - }, - "dependencies": { - "mississippi": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^2.0.1", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - } - } - }, - "figgy-pudding": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, - "make-fetch-happen": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "agentkeepalive": "^3.4.1", - "cacache": "^10.0.4", - "http-cache-semantics": "^3.8.1", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.0", - "lru-cache": "^4.1.2", - "mississippi": "^3.0.0", - "node-fetch-npm": "^2.0.2", - "promise-retry": "^1.1.1", - "socks-proxy-agent": "^3.0.1", - "ssri": "^5.2.4" - } - }, - "pump": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "smart-buffer": { - "version": "1.1.15", - "bundled": true, - "dev": true - }, - "socks": { - "version": "1.1.10", - "bundled": true, - "dev": true, - "requires": { - "ip": "^1.1.4", - "smart-buffer": "^1.0.13" - } - }, - "socks-proxy-agent": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "agent-base": "^4.1.0", - "socks": "^1.1.10" - } - }, - "ssri": { - "version": "5.3.0", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "^5.1.1" - } - } - } - }, - "npm-run-path": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "npm-user-validate": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": 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": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "bundled": true, - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "opener": { - "version": "1.5.1", - "bundled": true, - "dev": true - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "os-locale": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "p-finally": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "p-limit": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "package-json": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "requires": { - "got": "^6.7.1", - "registry-auth-token": "^3.0.1", - "registry-url": "^3.0.3", - "semver": "^5.1.0" - } - }, - "pacote": { - "version": "8.1.6", - "bundled": true, - "dev": true, - "requires": { - "bluebird": "^3.5.1", - "cacache": "^11.0.2", - "get-stream": "^3.0.0", - "glob": "^7.1.2", - "lru-cache": "^4.1.3", - "make-fetch-happen": "^4.0.1", - "minimatch": "^3.0.4", - "minipass": "^2.3.3", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "normalize-package-data": "^2.4.0", - "npm-package-arg": "^6.1.0", - "npm-packlist": "^1.1.10", - "npm-pick-manifest": "^2.1.0", - "osenv": "^0.1.5", - "promise-inflight": "^1.0.1", - "promise-retry": "^1.1.1", - "protoduck": "^5.0.0", - "rimraf": "^2.6.2", - "safe-buffer": "^5.1.2", - "semver": "^5.5.0", - "ssri": "^6.0.0", - "tar": "^4.4.3", - "unique-filename": "^1.1.0", - "which": "^1.3.0" - } - }, - "parallel-transform": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "cyclist": "~0.2.2", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "path-exists": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "path-key": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "bundled": true, - "dev": true - }, - "pify": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "prepend-http": { - "version": "1.0.4", - "bundled": true, - "dev": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "promise-inflight": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "promise-retry": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "requires": { - "err-code": "^1.0.0", - "retry": "^0.10.0" - }, - "dependencies": { - "retry": { - "version": "0.10.1", - "bundled": true, - "dev": true - } - } - }, - "promzard": { - "version": "0.3.0", - "bundled": true, - "dev": true, - "requires": { - "read": "1" - } - }, - "proto-list": { - "version": "1.2.4", - "bundled": true, - "dev": true - }, - "protoduck": { - "version": "5.0.0", - "bundled": true, - "dev": true, - "requires": { - "genfun": "^4.0.1" - } - }, - "prr": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "psl": { - "version": "1.1.29", - "bundled": true, - "dev": true - }, - "pump": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "bundled": true, - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "1.4.1", - "bundled": true, - "dev": true - }, - "qrcode-terminal": { - "version": "0.12.0", - "bundled": true, - "dev": true - }, - "qs": { - "version": "6.5.2", - "bundled": true, - "dev": true - }, - "query-string": { - "version": "6.1.0", - "bundled": true, - "dev": true, - "requires": { - "decode-uri-component": "^0.2.0", - "strict-uri-encode": "^2.0.0" - } - }, - "qw": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "rc": { - "version": "1.2.7", - "bundled": true, - "dev": true, - "requires": { - "deep-extend": "^0.5.1", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true - } - } - }, - "read": { - "version": "1.0.7", - "bundled": true, - "dev": true, - "requires": { - "mute-stream": "~0.0.4" - } - }, - "read-cmd-shim": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2" - } - }, - "read-installed": { - "version": "4.0.3", - "bundled": true, - "dev": true, - "requires": { - "debuglog": "^1.0.1", - "graceful-fs": "^4.1.2", - "read-package-json": "^2.0.0", - "readdir-scoped-modules": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "slide": "~1.1.3", - "util-extend": "^1.0.1" - } - }, - "read-package-json": { - "version": "2.0.13", - "bundled": true, - "dev": true, - "requires": { - "glob": "^7.1.1", - "graceful-fs": "^4.1.2", - "json-parse-better-errors": "^1.0.1", - "normalize-package-data": "^2.0.0", - "slash": "^1.0.0" - } - }, - "read-package-tree": { - "version": "5.2.1", - "bundled": true, - "dev": true, - "requires": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "once": "^1.3.0", - "read-package-json": "^2.0.0", - "readdir-scoped-modules": "^1.0.0" - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "requires": { - "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" - } - }, - "readdir-scoped-modules": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" - } - }, - "registry-auth-token": { - "version": "3.3.2", - "bundled": true, - "dev": true, - "requires": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" - } - }, - "registry-url": { - "version": "3.1.0", - "bundled": true, - "dev": true, - "requires": { - "rc": "^1.0.1" - } - }, - "request": { - "version": "2.88.0", - "bundled": true, - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "require-directory": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "resolve-from": { - "version": "4.0.0", - "bundled": true, - "dev": true - }, - "retry": { - "version": "0.12.0", - "bundled": true, - "dev": true - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "dev": true, - "requires": { - "glob": "^7.0.5" - } - }, - "run-queue": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "requires": { - "aproba": "^1.1.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true - }, - "semver": { - "version": "5.5.1", - "bundled": true, - "dev": true - }, - "semver-diff": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "semver": "^5.0.3" - } - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "sha": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "readable-stream": "^2.0.2" - } - }, - "shebang-command": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true - }, - "slash": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "slide": { - "version": "1.1.6", - "bundled": true, - "dev": true - }, - "smart-buffer": { - "version": "4.0.1", - "bundled": true, - "dev": true - }, - "socks": { - "version": "2.2.0", - "bundled": true, - "dev": true, - "requires": { - "ip": "^1.1.5", - "smart-buffer": "^4.0.1" - } - }, - "socks-proxy-agent": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "requires": { - "agent-base": "~4.2.0", - "socks": "~2.2.0" - } - }, - "sorted-object": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, - "sorted-union-stream": { - "version": "2.1.3", - "bundled": true, - "dev": true, - "requires": { - "from2": "^1.3.0", - "stream-iterate": "^1.1.0" - }, - "dependencies": { - "from2": { - "version": "1.3.0", - "bundled": true, - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "~1.1.10" - } - }, - "isarray": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "bundled": true, - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "bundled": true, - "dev": true - } - } - }, - "spdx-correct": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "bundled": true, - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "sshpk": { - "version": "1.14.2", - "bundled": true, - "dev": true, - "requires": { - "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" - } - }, - "ssri": { - "version": "6.0.1", - "bundled": true, - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "stream-each": { - "version": "1.2.2", - "bundled": true, - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-iterate": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "requires": { - "readable-stream": "^2.1.5", - "stream-shift": "^1.0.0" - } - }, - "stream-shift": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "strict-uri-encode": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "string-width": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "stringify-package": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-eof": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "bundled": true, - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "tar": { - "version": "4.4.8", - "bundled": true, - "dev": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - }, - "dependencies": { - "chownr": { - "version": "1.1.1", - "bundled": true, - "dev": true - }, - "minipass": { - "version": "2.3.5", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "yallist": { - "version": "3.0.3", - "bundled": true, - "dev": true - } - } - }, - "term-size": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "requires": { - "execa": "^0.7.0" - } - }, - "text-table": { - "version": "0.2.0", - "bundled": true, - "dev": true - }, - "through": { - "version": "2.3.8", - "bundled": true, - "dev": true - }, - "through2": { - "version": "2.0.3", - "bundled": true, - "dev": true, - "requires": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" - } - }, - "timed-out": { - "version": "4.0.1", - "bundled": true, - "dev": true - }, - "tiny-relative-date": { - "version": "1.3.0", - "bundled": true, - "dev": true - }, - "tough-cookie": { - "version": "2.4.3", - "bundled": true, - "dev": true, - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "bundled": true, - "dev": true, - "optional": true - }, - "typedarray": { - "version": "0.0.6", - "bundled": true, - "dev": true - }, - "uid-number": { - "version": "0.0.6", - "bundled": true, - "dev": true - }, - "umask": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "unique-filename": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "unique-string": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "crypto-random-string": "^1.0.0" - } - }, - "unpipe": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "unzip-response": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, - "update-notifier": { - "version": "2.5.0", - "bundled": true, - "dev": true, - "requires": { - "boxen": "^1.2.1", - "chalk": "^2.0.1", - "configstore": "^3.0.0", - "import-lazy": "^2.1.0", - "is-ci": "^1.0.10", - "is-installed-globally": "^0.1.0", - "is-npm": "^1.0.0", - "latest-version": "^3.0.0", - "semver-diff": "^2.0.0", - "xdg-basedir": "^3.0.0" - } - }, - "url-parse-lax": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "prepend-http": "^1.0.1" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "util-extend": { - "version": "1.0.3", - "bundled": true, - "dev": true - }, - "uuid": { - "version": "3.3.2", - "bundled": true, - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "validate-npm-package-name": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "builtins": "^1.0.3" - } - }, - "verror": { - "version": "1.10.0", - "bundled": true, - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "wcwidth": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "defaults": "^1.0.3" - } - }, - "which": { - "version": "1.3.1", - "bundled": true, - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "wide-align": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^1.0.2" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "widest-line": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^2.1.1" - } - }, - "worker-farm": { - "version": "1.6.0", - "bundled": true, - "dev": true, - "requires": { - "errno": "~0.1.7" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "write-file-atomic": { - "version": "2.3.0", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "xdg-basedir": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "xtend": { - "version": "4.0.1", - "bundled": true, - "dev": true - }, - "y18n": { - "version": "4.0.0", - "bundled": true, - "dev": true - }, - "yallist": { - "version": "2.1.2", - "bundled": true, - "dev": true - }, - "yargs": { - "version": "11.0.0", - "bundled": true, - "dev": true, - "requires": { - "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": "^9.0.2" - }, - "dependencies": { - "y18n": { - "version": "3.2.1", - "bundled": true, - "dev": true - } - } - }, - "yargs-parser": { - "version": "9.0.2", - "bundled": true, - "dev": true, - "requires": { - "camelcase": "^4.1.0" - } - } - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "^2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "nyc": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-13.3.0.tgz", - "integrity": "sha512-P+FwIuro2aFG6B0Esd9ZDWUd51uZrAEoGutqZxzrVmYl3qSfkLgcQpBPBjtDFsUQLFY1dvTQJPOyeqr8S9GF8w==", - "requires": { - "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^3.0.1", - "convert-source-map": "^1.6.0", - "find-cache-dir": "^2.0.0", - "find-up": "^3.0.0", - "foreground-child": "^1.5.6", - "glob": "^7.1.3", - "istanbul-lib-coverage": "^2.0.3", - "istanbul-lib-hook": "^2.0.3", - "istanbul-lib-instrument": "^3.1.0", - "istanbul-lib-report": "^2.0.4", - "istanbul-lib-source-maps": "^3.0.2", - "istanbul-reports": "^2.1.1", - "make-dir": "^1.3.0", - "merge-source-map": "^1.1.0", - "resolve-from": "^4.0.0", - "rimraf": "^2.6.3", - "signal-exit": "^3.0.2", - "spawn-wrap": "^1.4.2", - "test-exclude": "^5.1.0", - "uuid": "^3.3.2", - "yargs": "^12.0.5", - "yargs-parser": "^11.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "bundled": true - }, - "append-transform": { - "version": "1.0.0", - "bundled": true, - "requires": { - "default-require-extensions": "^2.0.0" - } - }, - "archy": { - "version": "1.0.0", - "bundled": true - }, - "arrify": { - "version": "1.0.1", - "bundled": true - }, - "async": { - "version": "2.6.2", - "bundled": true, - "requires": { - "lodash": "^4.17.11" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "caching-transform": { - "version": "3.0.1", - "bundled": true, - "requires": { - "hasha": "^3.0.0", - "make-dir": "^1.3.0", - "package-hash": "^3.0.0", - "write-file-atomic": "^2.3.0" - } - }, - "camelcase": { - "version": "5.0.0", - "bundled": true - }, - "cliui": { - "version": "4.1.0", - "bundled": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true - }, - "commander": { - "version": "2.17.1", - "bundled": true, - "optional": true - }, - "commondir": { - "version": "1.0.1", - "bundled": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true - }, - "convert-source-map": { - "version": "1.6.0", - "bundled": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cross-spawn": { - "version": "4.0.2", - "bundled": true, - "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "debug": { - "version": "4.1.1", - "bundled": true, - "requires": { - "ms": "^2.1.1" - } - }, - "decamelize": { - "version": "1.2.0", - "bundled": true - }, - "default-require-extensions": { - "version": "2.0.0", - "bundled": true, - "requires": { - "strip-bom": "^3.0.0" - } - }, - "end-of-stream": { - "version": "1.4.1", - "bundled": true, - "requires": { - "once": "^1.4.0" - } - }, - "error-ex": { - "version": "1.3.2", - "bundled": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es6-error": { - "version": "4.1.1", - "bundled": true - }, - "execa": { - "version": "1.0.0", - "bundled": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.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" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "bundled": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - } - } - }, - "find-cache-dir": { - "version": "2.0.0", - "bundled": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "bundled": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "foreground-child": { - "version": "1.5.6", - "bundled": true, - "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true - }, - "get-caller-file": { - "version": "1.0.3", - "bundled": true - }, - "get-stream": { - "version": "4.1.0", - "bundled": true, - "requires": { - "pump": "^3.0.0" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "requires": { - "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": { - "version": "4.1.15", - "bundled": true - }, - "handlebars": { - "version": "4.1.0", - "bundled": true, - "requires": { - "async": "^2.5.0", - "optimist": "^0.6.1", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true - } - } - }, - "has-flag": { - "version": "3.0.0", - "bundled": true - }, - "hasha": { - "version": "3.0.0", - "bundled": true, - "requires": { - "is-stream": "^1.0.1" - } - }, - "hosted-git-info": { - "version": "2.7.1", - "bundled": true - }, - "imurmurhash": { - "version": "0.1.4", - "bundled": true - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true - }, - "invert-kv": { - "version": "2.0.0", - "bundled": true - }, - "is-arrayish": { - "version": "0.2.1", - "bundled": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "bundled": true - }, - "is-stream": { - "version": "1.1.0", - "bundled": true - }, - "isexe": { - "version": "2.0.0", - "bundled": true - }, - "istanbul-lib-coverage": { - "version": "2.0.3", - "bundled": true - }, - "istanbul-lib-hook": { - "version": "2.0.3", - "bundled": true, - "requires": { - "append-transform": "^1.0.0" - } - }, - "istanbul-lib-report": { - "version": "2.0.4", - "bundled": true, - "requires": { - "istanbul-lib-coverage": "^2.0.3", - "make-dir": "^1.3.0", - "supports-color": "^6.0.0" - }, - "dependencies": { - "supports-color": { - "version": "6.1.0", - "bundled": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "3.0.2", - "bundled": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^2.0.3", - "make-dir": "^1.3.0", - "rimraf": "^2.6.2", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true - } - } - }, - "istanbul-reports": { - "version": "2.1.1", - "bundled": true, - "requires": { - "handlebars": "^4.1.0" - } - }, - "json-parse-better-errors": { - "version": "1.0.2", - "bundled": true - }, - "lcid": { - "version": "2.0.0", - "bundled": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, - "load-json-file": { - "version": "4.0.0", - "bundled": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "bundled": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.11", - "bundled": true - }, - "lodash.flattendeep": { - "version": "4.4.0", - "bundled": true - }, - "lru-cache": { - "version": "4.1.5", - "bundled": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "make-dir": { - "version": "1.3.0", - "bundled": true, - "requires": { - "pify": "^3.0.0" - } - }, - "map-age-cleaner": { - "version": "0.1.3", - "bundled": true, - "requires": { - "p-defer": "^1.0.0" - } - }, - "mem": { - "version": "4.1.0", - "bundled": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^1.0.0", - "p-is-promise": "^2.0.0" - } - }, - "merge-source-map": { - "version": "1.1.0", - "bundled": true, - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true - } - } - }, - "mimic-fn": { - "version": "1.2.0", - "bundled": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.10", - "bundled": true - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "bundled": true - } - } - }, - "ms": { - "version": "2.1.1", - "bundled": true - }, - "nice-try": { - "version": "1.0.5", - "bundled": true - }, - "normalize-package-data": { - "version": "2.5.0", - "bundled": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "npm-run-path": { - "version": "2.0.2", - "bundled": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "requires": { - "wrappy": "1" - } - }, - "optimist": { - "version": "0.6.1", - "bundled": true, - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true - }, - "os-locale": { - "version": "3.1.0", - "bundled": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, - "p-defer": { - "version": "1.0.0", - "bundled": true - }, - "p-finally": { - "version": "1.0.0", - "bundled": true - }, - "p-is-promise": { - "version": "2.0.0", - "bundled": true - }, - "p-limit": { - "version": "2.1.0", - "bundled": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "bundled": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.0.0", - "bundled": true - }, - "package-hash": { - "version": "3.0.0", - "bundled": true, - "requires": { - "graceful-fs": "^4.1.15", - "hasha": "^3.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "bundled": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "path-exists": { - "version": "3.0.0", - "bundled": true - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true - }, - "path-key": { - "version": "2.0.1", - "bundled": true - }, - "path-parse": { - "version": "1.0.6", - "bundled": true - }, - "path-type": { - "version": "3.0.0", - "bundled": true, - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "bundled": true - }, - "pkg-dir": { - "version": "3.0.0", - "bundled": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "pseudomap": { - "version": "1.0.2", - "bundled": true - }, - "pump": { - "version": "3.0.0", - "bundled": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "read-pkg": { - "version": "3.0.0", - "bundled": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "4.0.0", - "bundled": true, - "requires": { - "find-up": "^3.0.0", - "read-pkg": "^3.0.0" - } - }, - "release-zalgo": { - "version": "1.0.0", - "bundled": true, - "requires": { - "es6-error": "^4.0.1" - } - }, - "require-directory": { - "version": "2.1.1", - "bundled": true - }, - "require-main-filename": { - "version": "1.0.1", - "bundled": true - }, - "resolve": { - "version": "1.10.0", - "bundled": true, - "requires": { - "path-parse": "^1.0.6" - } - }, - "resolve-from": { - "version": "4.0.0", - "bundled": true - }, - "rimraf": { - "version": "2.6.3", - "bundled": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true - }, - "semver": { - "version": "5.6.0", - "bundled": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true - }, - "shebang-command": { - "version": "1.2.0", - "bundled": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "bundled": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true - }, - "spawn-wrap": { - "version": "1.4.2", - "bundled": true, - "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" - } - }, - "spdx-correct": { - "version": "3.1.0", - "bundled": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.2.0", - "bundled": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "bundled": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.3", - "bundled": true - }, - "string-width": { - "version": "2.1.1", - "bundled": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "bundled": true - }, - "strip-eof": { - "version": "1.0.0", - "bundled": true - }, - "test-exclude": { - "version": "5.1.0", - "bundled": true, - "requires": { - "arrify": "^1.0.1", - "minimatch": "^3.0.4", - "read-pkg-up": "^4.0.0", - "require-main-filename": "^1.0.1" - } - }, - "uglify-js": { - "version": "3.4.9", - "bundled": true, - "optional": true, - "requires": { - "commander": "~2.17.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true, - "optional": true - } - } - }, - "uuid": { - "version": "3.3.2", - "bundled": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "bundled": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "bundled": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "bundled": true - }, - "wordwrap": { - "version": "0.0.3", - "bundled": true - }, - "wrap-ansi": { - "version": "2.1.0", - "bundled": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "bundled": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true - }, - "write-file-atomic": { - "version": "2.4.2", - "bundled": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "y18n": { - "version": "4.0.0", - "bundled": true - }, - "yallist": { - "version": "2.1.2", - "bundled": true - }, - "yargs": { - "version": "12.0.5", - "bundled": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.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 || ^4.0.0", - "yargs-parser": "^11.1.1" - } - }, - "yargs-parser": { - "version": "11.1.1", - "bundled": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-component": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "object-inspect": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", - "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==" - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - } - }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "optional": true, - "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" - }, - "dependencies": { - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "optional": true, - "requires": { - "for-in": "^1.0.1" - } - } - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" - } - }, - "octokit-pagination-methods": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz", - "integrity": "sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - }, - "dependencies": { - "minimist": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", - "dev": true - }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true - } - } - }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - }, - "dependencies": { - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "requires": { - "invert-kv": "^2.0.0" - } - } - } - }, - "os-name": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", - "integrity": "sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==", - "dev": true, - "requires": { - "macos-release": "^2.2.0", - "windows-release": "^3.1.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "output-file-sync": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", - "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", - "requires": { - "graceful-fs": "^4.1.4", - "mkdirp": "^0.5.1", - "object-assign": "^4.1.0" - } - }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" - }, - "p-filter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-1.0.0.tgz", - "integrity": "sha1-Yp0xcVAgnI/VCLoTdxPvS7kg6ds=", - "dev": true, - "requires": { - "p-map": "^1.0.0" - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==" - }, - "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-map": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", - "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", - "dev": true - }, - "p-reduce": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", - "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=", - "dev": true - }, - "p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", - "dev": true, - "requires": { - "retry": "^0.12.0" - }, - "dependencies": { - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true - } - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "pako": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", - "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==" - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parents": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", - "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", - "requires": { - "path-platform": "~0.11.15" - } - }, - "parse-asn1": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz", - "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==", - "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-github-url": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-github-url/-/parse-github-url-1.0.2.tgz", - "integrity": "sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==", - "dev": true - }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "optional": true, - "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", - "requires": { - "better-assert": "~1.0.0" - } - }, - "parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", - "requires": { - "better-assert": "~1.0.0" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "path-platform": { - "version": "0.11.15", - "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", - "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=" - }, - "path-to-regexp": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", - "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", - "dev": true, - "requires": { - "isarray": "0.0.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - } - } - }, - "pathval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", - "dev": true - }, - "pbkdf2": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", - "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - }, - "pkg-conf": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", - "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", - "requires": { - "find-up": "^2.0.0", - "load-json-file": "^4.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - } - } - }, - "pkg-config": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz", - "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=", - "requires": { - "debug-log": "^1.0.0", - "find-root": "^1.0.0", - "xtend": "^4.0.1" - } - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "requires": { - "find-up": "^2.1.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - } - } - }, - "pluralize": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", - "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==" - }, - "pngjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", - "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "optional": true - }, - "prettier": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.17.0.tgz", - "integrity": "sha512-sXe5lSt2WQlCbydGETgfm1YBShgOX4HxQkFPvbxkcwgDvGDeqVau8h+12+lmSVlP3rHPz0oavfddSZg/q+Szjw==", - "dev": true - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" - }, - "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "propagate": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-1.0.0.tgz", - "integrity": "sha1-AMLa7t2iDofjeCs0Stuhzd1q1wk=", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "psl": { - "version": "1.1.31", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", - "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "pushdata-bitcoin": { - "version": "github:Bitcoin-com/pushdata-bitcoin#9b75eebe597853c6eeaec3e6c44b6d9c9cd7ee86", - "from": "github:Bitcoin-com/pushdata-bitcoin#1.2.1", - "requires": { - "bitcoincash-ops": "github:Bitcoin-com/bitcoincash-ops#6ab82cc7326c67236f3b2d9d0457258ac2ef48e3" - } - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - }, - "qrcode": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.3.3.tgz", - "integrity": "sha512-SH7V13AcJusH3GT8bMNOGz4w0L+LjcpNOU/NiOgtBhT/5DoWeZE6D5ntMJnJ84AMkoaM4kjJJoHoh9g++8lWFg==", - "requires": { - "can-promise": "0.0.1", - "dijkstrajs": "^1.0.1", - "isarray": "^2.0.1", - "pngjs": "^3.3.0", - "yargs": "^12.0.5" - }, - "dependencies": { - "isarray": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.4.tgz", - "integrity": "sha512-GMxXOiUirWg1xTKRipM0Ek07rX+ubx4nNVElTJdNLYmNO/2YrDkgJGw9CljXn+r4EWiDQg/8lsRdHyg2PJuUaA==" - } - } - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" - }, - "quick-lru": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", - "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", - "dev": true - }, - "random-bytes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", - "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=" - }, - "randomatic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", - "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", - "optional": true, - "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "optional": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "optional": true - } - } - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", - "dev": true - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "react-is": { - "version": "16.8.6", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz", - "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==" - }, - "read-only-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", - "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", - "requires": { - "readable-stream": "^2.0.2" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "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" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "optional": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "redent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", - "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", - "dev": true, - "requires": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" - } - }, - "redeyed": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", - "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=", - "dev": true, - "requires": { - "esprima": "~4.0.0" - } - }, - "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==" - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - }, - "regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", - "requires": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" - } - }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "optional": true, - "requires": { - "is-equal-shallow": "^0.1.3" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", - "dev": true - }, - "regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "registry-auth-token": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", - "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==", - "dev": true, - "requires": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" - } - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "requires": { - "is-finite": "^1.0.0" - } - }, - "repl.history": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/repl.history/-/repl.history-0.1.4.tgz", - "integrity": "sha1-gDZxcfN4HW5CmccXWMJTCX9dWDI=" - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - } - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" - }, - "dependencies": { - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "requires": { - "callsites": "^0.2.0" - } - }, - "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=" - }, - "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=" - } - } - }, - "resolve": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.1.tgz", - "integrity": "sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA==", - "requires": { - "path-parse": "^1.0.6" - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "resumer": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", - "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", - "requires": { - "through": "~2.3.4" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "requires": { - "is-promise": "^2.1.0" - } - }, - "run-parallel": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", - "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==" - }, - "rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=" - }, - "rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "requires": { - "rx-lite": "*" - } - }, - "rxjs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.1.tgz", - "integrity": "sha512-y0j31WJc83wPu31vS1VlAFW5JGrnGC+j+TtGAa1fRQphy48+fDYiDmX8tjGloToEsMkxnouOg/1IzXGKkJnZMg==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "samsam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz", - "integrity": "sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg==", - "dev": true - }, - "satoshi-bitcoin": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/satoshi-bitcoin/-/satoshi-bitcoin-1.0.4.tgz", - "integrity": "sha1-0AK2dwddXLvywhGo3zJUvN9QseQ=", - "requires": { - "big.js": "^3.1.3" - } - }, - "scryptsy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-2.0.0.tgz", - "integrity": "sha1-Jiw28CMc+nZU4jY/o5TNLexm83g=" - }, - "secp256k1": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.6.2.tgz", - "integrity": "sha512-90nYt7yb0LmI4A2jJs1grglkTAXrBwxYAjP9bpeKjvJKOjG2fOeH/YI/lchDMIvjrOasd5QXwvV2jwN168xNng==", - "requires": { - "bindings": "^1.2.1", - "bip66": "^1.1.3", - "bn.js": "^4.11.3", - "create-hash": "^1.1.2", - "drbg.js": "^1.0.1", - "elliptic": "^6.2.3", - "nan": "^2.2.1", - "safe-buffer": "^5.1.0" - } - }, - "semantic-release": { - "version": "15.13.3", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-15.13.3.tgz", - "integrity": "sha512-cax0xPPTtsxHlrty2HxhPql2TTvS74Ni2O8BzwFHxNY/mviVKEhI4OxHzBYJkpVxx1fMVj36+oH7IlP+SJtPNA==", - "dev": true, - "requires": { - "@semantic-release/commit-analyzer": "^6.1.0", - "@semantic-release/error": "^2.2.0", - "@semantic-release/github": "^5.1.0", - "@semantic-release/npm": "^5.0.5", - "@semantic-release/release-notes-generator": "^7.1.2", - "aggregate-error": "^2.0.0", - "cosmiconfig": "^5.0.1", - "debug": "^4.0.0", - "env-ci": "^3.0.0", - "execa": "^1.0.0", - "figures": "^2.0.0", - "find-versions": "^3.0.0", - "get-stream": "^4.0.0", - "git-log-parser": "^1.2.0", - "hook-std": "^1.1.0", - "hosted-git-info": "^2.7.1", - "lodash": "^4.17.4", - "marked": "^0.6.0", - "marked-terminal": "^3.2.0", - "p-locate": "^3.0.0", - "p-reduce": "^1.0.0", - "read-pkg-up": "^4.0.0", - "resolve-from": "^4.0.0", - "semver": "^5.4.1", - "signale": "^1.2.1", - "yargs": "^12.0.0" - }, - "dependencies": { - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", - "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", - "dev": true, - "requires": { - "find-up": "^3.0.0", - "read-pkg": "^3.0.0" - } - } - } - }, - "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" - }, - "semver-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz", - "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shasum": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", - "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", - "requires": { - "json-stable-stringify": "~0.0.0", - "sha.js": "~2.4.4" - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "shell-quote": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", - "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", - "requires": { - "array-filter": "~0.0.0", - "array-map": "~0.0.0", - "array-reduce": "~0.0.0", - "jsonify": "~0.0.0" - } - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "signale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz", - "integrity": "sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==", - "dev": true, - "requires": { - "chalk": "^2.3.2", - "figures": "^2.0.0", - "pkg-conf": "^2.1.0" - } - }, - "simple-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", - "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=" - }, - "sinon": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-4.5.0.tgz", - "integrity": "sha512-trdx+mB0VBBgoYucy6a9L7/jfQOmvGeaKZT4OOJ+lPAtI8623xyGr8wLiE4eojzBS8G9yXbhx42GHUOVLr4X2w==", - "dev": true, - "requires": { - "@sinonjs/formatio": "^2.0.0", - "diff": "^3.1.0", - "lodash.get": "^4.4.2", - "lolex": "^2.2.0", - "nise": "^1.2.0", - "supports-color": "^5.1.0", - "type-detect": "^4.0.5" - } - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" - }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "requires": { - "kind-of": "^3.2.0" - } - }, - "socket.io": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.2.0.tgz", - "integrity": "sha512-wxXrIuZ8AILcn+f1B4ez4hJTPG24iNgxBBDaJfT6MsyOhVYiTXWexGoPkd87ktJG8kQEcL/NBvRi64+9k4Kc0w==", - "requires": { - "debug": "~4.1.0", - "engine.io": "~3.3.1", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.2.0", - "socket.io-parser": "~3.3.0" - } - }, - "socket.io-adapter": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz", - "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=" - }, - "socket.io-client": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.2.0.tgz", - "integrity": "sha512-56ZrkTDbdTLmBIyfFYesgOxsjcLnwAKoN4CiPyTVkMQj3zTUh0QAx3GbvIvLpFEOvQWu92yyWICxB0u7wkVbYA==", - "requires": { - "backo2": "1.0.2", - "base64-arraybuffer": "0.1.5", - "component-bind": "1.0.0", - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "engine.io-client": "~3.3.1", - "has-binary2": "~1.0.2", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "object-component": "0.0.3", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "socket.io-parser": "~3.3.0", - "to-array": "0.1.4" - }, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "socket.io-parser": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz", - "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==", - "requires": { - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "isarray": "2.0.1" - }, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", - "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "requires": { - "source-map": "^0.5.6" - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" - }, - "spawn-error-forwarder": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz", - "integrity": "sha1-Gv2Uc46ZmwNG17n8NzvlXgdXcCk=", - "dev": true - }, - "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", - "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==" - }, - "split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dev": true, - "requires": { - "through": "2" - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "split2": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz", - "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", - "dev": true, - "requires": { - "through2": "^2.0.2" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "requires": { - "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" - } - }, - "standard": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/standard/-/standard-11.0.1.tgz", - "integrity": "sha512-nu0jAcHiSc8H+gJCXeiziMVZNDYi8MuqrYJKxTgjP4xKXZMKm311boqQIzDrYI/ktosltxt2CbDjYQs9ANC8IA==", - "requires": { - "eslint": "~4.18.0", - "eslint-config-standard": "11.0.0", - "eslint-config-standard-jsx": "5.0.0", - "eslint-plugin-import": "~2.9.0", - "eslint-plugin-node": "~6.0.0", - "eslint-plugin-promise": "~3.7.0", - "eslint-plugin-react": "~7.7.0", - "eslint-plugin-standard": "~3.0.1", - "standard-engine": "~8.0.0" - }, - "dependencies": { - "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==" - }, - "acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", - "requires": { - "acorn": "^3.0.4" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=" - } - } - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=" - }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "eslint": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", - "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", - "requires": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", - "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.2", - "esquery": "^1.0.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.0.1", - "ignore": "^3.3.3", - "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "require-uncached": "^1.0.3", - "semver": "^5.3.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", - "table": "4.0.2", - "text-table": "~0.2.0" - } - }, - "eslint-plugin-node": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz", - "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", - "requires": { - "ignore": "^3.3.6", - "minimatch": "^3.0.4", - "resolve": "^1.3.3", - "semver": "^5.4.1" - } - }, - "eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "espree": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", - "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", - "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" - } - }, - "external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", - "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" - } - }, - "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", - "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" - } - }, - "flat-cache": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", - "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", - "requires": { - "circular-json": "^0.3.1", - "graceful-fs": "^4.1.2", - "rimraf": "~2.6.2", - "write": "^0.2.1" - } - }, - "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - } - }, - "slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", - "requires": { - "is-fullwidth-code-point": "^2.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "table": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", - "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", - "requires": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", - "slice-ansi": "1.0.0", - "string-width": "^2.1.1" - } - }, - "write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", - "requires": { - "mkdirp": "^0.5.1" - } - } - } - }, - "standard-engine": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-8.0.1.tgz", - "integrity": "sha512-LA531C3+nljom/XRvdW/hGPXwmilRkaRkENhO3FAGF1Vtq/WtCXzgmnc5S6vUHHsgv534MRy02C1ikMwZXC+tw==", - "requires": { - "deglob": "^2.1.0", - "get-stdin": "^6.0.0", - "minimist": "^1.1.0", - "pkg-conf": "^2.0.0" - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-combiner2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", - "requires": { - "duplexer2": "~0.1.0", - "readable-stream": "^2.0.2" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "stream-splicer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz", - "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.2" - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "string.prototype.trim": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", - "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.0", - "function-bind": "^1.0.2" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "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.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - }, - "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - }, - "subarg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", - "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", - "requires": { - "minimist": "^1.1.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "supports-hyperlinks": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz", - "integrity": "sha512-HHi5kVSefKaJkGYXbDuKbUGRVxqnWGn3J2e39CYcNJEfWciGq2zYtOhXLTlvrOZW1QU7VX67w7fMmWafHX9Pfw==", - "dev": true, - "requires": { - "has-flag": "^2.0.0", - "supports-color": "^5.0.0" - }, - "dependencies": { - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - } - } - }, - "syntax-error": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", - "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", - "requires": { - "acorn-node": "^1.2.0" - } - }, - "table": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/table/-/table-5.2.3.tgz", - "integrity": "sha512-N2RsDAMvDLvYwFcwbPyF3VmVSSkuF+G1e+8inhBLtHpvwXGw4QRPEZhihQNeEN0i1up6/f6ObCJXNdlRG3YVyQ==", - "dev": true, - "requires": { - "ajv": "^6.9.1", - "lodash": "^4.17.11", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "dependencies": { - "ajv": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "tape": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/tape/-/tape-4.10.1.tgz", - "integrity": "sha512-G0DywYV1jQeY3axeYnXUOt6ktnxS9OPJh97FGR3nrua8lhWi1zPflLxcAHavZ7Jf3qUfY7cxcVIVFa4mY2IY1w==", - "requires": { - "deep-equal": "~1.0.1", - "defined": "~1.0.0", - "for-each": "~0.3.3", - "function-bind": "~1.1.1", - "glob": "~7.1.3", - "has": "~1.0.3", - "inherits": "~2.0.3", - "minimist": "~1.2.0", - "object-inspect": "~1.6.0", - "resolve": "~1.10.0", - "resumer": "~0.0.0", - "string.prototype.trim": "~1.1.2", - "through": "~2.3.8" - } - }, - "text-extensions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", - "dev": true - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "timers-browserify": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", - "requires": { - "process": "~0.11.0" - } - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", - "requires": { - "nopt": "~1.0.10" - }, - "dependencies": { - "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "requires": { - "abbrev": "1" - } - } - } - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "traverse": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", - "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", - "dev": true - }, - "trim-newlines": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", - "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", - "dev": true - }, - "trim-off-newlines": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz", - "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=", - "dev": true - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" - }, - "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", - "dev": true - }, - "tty-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==" - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "typeforce": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz", - "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==" - }, - "typescript": { - "version": "3.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.4.5.tgz", - "integrity": "sha512-YycBxUb49UUhdNMU5aJ7z5Ej2XGmaIBL0x34vZ82fn3hGvD+bgrMrVDpatgz2f7YxUMJxMkbWxJZeAvDxVe7Vw==", - "dev": true - }, - "uglify-js": { - "version": "3.5.11", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.5.11.tgz", - "integrity": "sha512-izPJg8RsSyqxbdnqX36ExpbH3K7tDBsAU/VfNv89VkMFy3z39zFjunQGsSHOlGlyIfGLGprGeosgQno3bo2/Kg==", - "dev": true, - "optional": true, - "requires": { - "commander": "~2.20.0", - "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, - "optional": true - } - } - }, - "umd": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", - "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==" - }, - "undeclared-identifiers": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", - "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", - "requires": { - "acorn-node": "^1.3.0", - "dash-ast": "^1.0.0", - "get-assigned-identifiers": "^1.2.0", - "simple-concat": "^1.0.0", - "xtend": "^4.0.1" - } - }, - "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" - } - } - } - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" - }, - "universal-user-agent": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-2.0.3.tgz", - "integrity": "sha512-eRHEHhChCBHrZsA4WEhdgiOKgdvgrMIHwnwnqD0r5C6AO8kwKcG7qSku3iXdhvHL3YvsS9ZkSGN8h/hIpoFC8g==", - "dev": true, - "requires": { - "os-name": "^3.0.0" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, - "unorm": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.5.0.tgz", - "integrity": "sha512-sMfSWoiRaXXeDZSXC+YRZ23H4xchQpwxjpw1tmfR+kgbBCaOgln4NI0LXejJIhnBuKINrB3WRn+ZI8IWssirVw==" - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - } - } - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - } - } - }, - "url-join": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz", - "integrity": "sha1-TTNA6AfTdzvamZH4MFrNzCpmXSo=", - "dev": true - }, - "url-template": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", - "integrity": "sha1-/FZaPMy/93MMd19WQflVV5FDnyE=", - "dev": true - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" - }, - "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "requires": { - "inherits": "2.0.1" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - }, - "v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", - "requires": { - "user-home": "^1.1.1" - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "varuint-bitcoin": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz", - "integrity": "sha512-jCEPG+COU/1Rp84neKTyDJQr478/hAfVp5xxYn09QEH0yBjbmPeMfuuQIrp+BUD83hybtYZKhr5elV3bvdV1bA==", - "requires": { - "safe-buffer": "^5.1.1" - } - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vm-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", - "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==" - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "wif": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", - "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", - "requires": { - "bs58check": "<3.0.0" - } - }, - "window-or-global": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/window-or-global/-/window-or-global-1.0.1.tgz", - "integrity": "sha1-2+RboqKRqrxW1iz2bEW3+jIpRt4=" - }, - "windows-release": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.2.0.tgz", - "integrity": "sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA==", - "dev": true, - "requires": { - "execa": "^1.0.0" - } - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, - "ws": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", - "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", - "requires": { - "async-limiter": "~1.0.0" - } - }, - "xmlhttprequest-ssl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=" - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" - }, - "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.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 || ^4.0.0", - "yargs-parser": "^11.1.1" - } - }, - "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - } - } - }, - "yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" - } - } -} From 4e0735ec1a038b140cf1fe3df323d32046b71d41 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sat, 11 May 2019 16:41:12 +0900 Subject: [PATCH 351/480] Types for Address --- lib/Address.ts | 62 ++++++++++++++++++++++++++++++++++---------------- 1 file changed, 42 insertions(+), 20 deletions(-) diff --git a/lib/Address.ts b/lib/Address.ts index ff469b1c..094b3b26 100644 --- a/lib/Address.ts +++ b/lib/Address.ts @@ -1,5 +1,6 @@ import axios from "axios" import { AddressDetailsResult, AddressUtxoResult, AddressUnconfirmedResult } from "bitcoin-com-rest"; +import * as bcl from "bitcoincashjs-lib" const Bitcoin = require("bitcoincashjs-lib") const cashaddr = require("cashaddrjs") const coininfo = require("coininfo") @@ -45,6 +46,12 @@ interface BitcoinCash { toBitcore: any } + interface DecodedHash160 { + legacyAddress: string + cashAddress: string + format: string + } + export class Address { restURL?: string constructor(restURL?: string) { @@ -158,8 +165,12 @@ export class Address { return this._decodeCashAddress(address) } catch (error) {} + throw new Error(`Unsupported address format : ${address}`) + } + + _decodeHash160(address: string): DecodedHash160 { try { - return this._encodeAddressFromHash160(address) + return this._decodeAddressFromHash160(address) } catch (error) {} throw new Error(`Unsupported address format : ${address}`) @@ -225,14 +236,21 @@ export class Address { throw new Error(`Invalid format : ${address}`) } - _encodeAddressFromHash160(address: string): any { - try { + _decodeAddressFromHash160(address: string): DecodedHash160 { + console.log("ADDRESS", address) + if (address.length === 40) { return { legacyAddress: this.hash160ToLegacy(address), cashAddress: this.hash160ToCash(address), format: "hash160" } - } catch (error) {} + } else if(this.isCashAddress(address) || this.isLegacyAddress(address)) { + return { + legacyAddress: this.toLegacyAddress(address), + cashAddress: this.toCashAddress(address), + format: "nonHash160" + } + } throw new Error(`Invalid format : ${address}`) } @@ -247,7 +265,7 @@ export class Address { } isHash160(address: string): boolean { - return this.detectAddressFormat(address) === "hash160" + return this._detectHash160Format(address) === "hash160" } // Test for address network. @@ -280,8 +298,13 @@ export class Address { // Detect address format. detectAddressFormat(address: string): string { - const decoded: any = this._decode(address) + const decoded: Decoded = this._decode(address) + return decoded.format + } + // Detect address format. + _detectHash160Format(address: string): string { + const decoded: DecodedHash160 = this._decodeHash160(address) return decoded.format } @@ -290,7 +313,7 @@ export class Address { if (address[0] === "x") return "mainnet" else if (address[0] === "t") return "testnet" - const decoded = this._decode(address) + const decoded: Decoded = this._decode(address) switch (decoded.prefix) { case "bitcoincash": @@ -306,37 +329,36 @@ export class Address { // Detect address type. detectAddressType(address: string): string { - const decoded: any = this._decode(address) - + const decoded: Decoded = this._decode(address) return decoded.type.toLowerCase() } fromXPub(xpub: string, path: string = "0/0"): string { - let bitcoincash: any + let bitcoincash: BitcoinCash if (xpub[0] === "x") bitcoincash = coininfo.bitcoincash.main - else if (xpub[0] === "t") bitcoincash = coininfo.bitcoincash.test + else bitcoincash = coininfo.bitcoincash.test - const bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS() - const HDNode: any = Bitcoin.HDNode.fromBase58(xpub, bitcoincashBitcoinJSLib) - const address: any = HDNode.derivePath(path) + const bitcoincashBitcoinJSLib: any = bitcoincash.toBitcoinJS() + const HDNode: bcl.HDNode = Bitcoin.HDNode.fromBase58(xpub, bitcoincashBitcoinJSLib) + const address: bcl.HDNode = HDNode.derivePath(path) return this.toCashAddress(address.getAddress()) } fromXPriv(xpriv: string, path: string = "0'/0"): string { - let bitcoincash: any + let bitcoincash: BitcoinCash if (xpriv[0] === "x") bitcoincash = coininfo.bitcoincash.main - else if (xpriv[0] === "t") bitcoincash = coininfo.bitcoincash.test + else bitcoincash = coininfo.bitcoincash.test - const bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS() - const HDNode: any = Bitcoin.HDNode.fromBase58( + const bitcoincashBitcoinJSLib: any = bitcoincash.toBitcoinJS() + const HDNode: bcl.HDNode = Bitcoin.HDNode.fromBase58( xpriv, bitcoincashBitcoinJSLib ) - const address: any = HDNode.derivePath(path) + const address: bcl.HDNode = HDNode.derivePath(path) return this.toCashAddress(address.getAddress()) } - fromOutputScript(scriptPubKey: any, network: string = "mainnet"): string { + fromOutputScript(scriptPubKey: Buffer, network: string = "mainnet"): string { let netParam: any if (network !== "bitcoincash" && network !== "mainnet") netParam = Bitcoin.networks.testnet From 05a94035e5db089342acfd0dcab549b7f71503d6 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sat, 11 May 2019 16:57:24 +0900 Subject: [PATCH 352/480] Default resturl. --- lib/Address.ts | 9 ++++----- lib/BITBOX.ts | 2 ++ lib/BitcoinCash.ts | 5 +++-- lib/Block.ts | 3 ++- lib/Blockchain.ts | 3 ++- lib/Control.ts | 3 ++- lib/Generating.ts | 3 ++- lib/HDNode.ts | 5 +++-- lib/Mining.ts | 3 ++- lib/Mnemonic.ts | 30 ++++++++++++++---------------- lib/RawTransactions.ts | 3 ++- lib/Transaction.ts | 3 ++- lib/Util.ts | 3 ++- 13 files changed, 42 insertions(+), 33 deletions(-) diff --git a/lib/Address.ts b/lib/Address.ts index 094b3b26..5b96a1fe 100644 --- a/lib/Address.ts +++ b/lib/Address.ts @@ -1,6 +1,7 @@ import axios from "axios" import { AddressDetailsResult, AddressUtxoResult, AddressUnconfirmedResult } from "bitcoin-com-rest"; import * as bcl from "bitcoincashjs-lib" +import { resturl } from "./BITBOX" const Bitcoin = require("bitcoincashjs-lib") const cashaddr = require("cashaddrjs") const coininfo = require("coininfo") @@ -53,11 +54,9 @@ interface BitcoinCash { } export class Address { - restURL?: string - constructor(restURL?: string) { - if(restURL) { - this.restURL = restURL - } + restURL: string + constructor(restURL: string = resturl) { + this.restURL = restURL } // Translate address from any address format into a specific format. diff --git a/lib/BITBOX.ts b/lib/BITBOX.ts index af26da40..a08878a9 100644 --- a/lib/BITBOX.ts +++ b/lib/BITBOX.ts @@ -25,6 +25,8 @@ import { Socket } from "./Socket" import { Wallet } from "./Wallet" import { Schnorr } from "./Schnorr" +export const resturl = "https://rest.bitcoin.com/v2/" + export class BITBOX { restURL: string Address: Address diff --git a/lib/BitcoinCash.ts b/lib/BitcoinCash.ts index 31eb27b4..e90f9661 100644 --- a/lib/BitcoinCash.ts +++ b/lib/BitcoinCash.ts @@ -6,6 +6,7 @@ const bip21 = require("bip21") const coininfo = require("coininfo") const bip38 = require("bip38") const wif = require("wif") +import { Address } from "./Address" const Buffer = require("safe-buffer").Buffer @@ -30,8 +31,8 @@ export interface ByteCountOutput { } export class BitcoinCash { - _address: any - constructor(address: any) { + _address: Address + constructor(address: Address) { this._address = address } diff --git a/lib/Block.ts b/lib/Block.ts index 0965e027..3f88d4d8 100644 --- a/lib/Block.ts +++ b/lib/Block.ts @@ -1,9 +1,10 @@ import axios from "axios" import { BlockDetails } from "bitcoin-com-rest"; +import { resturl } from "./BITBOX" export class Block { restURL: string - constructor(restURL: string) { + constructor(restURL: string = resturl) { this.restURL = restURL } diff --git a/lib/Blockchain.ts b/lib/Blockchain.ts index 75548c00..01623947 100644 --- a/lib/Blockchain.ts +++ b/lib/Blockchain.ts @@ -5,10 +5,11 @@ import axios from "axios" import { BlockDetails, BlockchainInfo, BlockHeader, ChainTip, MempoolInfo, TxOut, MempoolEntryResult } from "bitcoin-com-rest"; +import { resturl } from "./BITBOX" export class Blockchain { restURL: string - constructor(restURL: string) { + constructor(restURL: string = resturl) { this.restURL = restURL } diff --git a/lib/Control.ts b/lib/Control.ts index d8ba1c22..42952e30 100644 --- a/lib/Control.ts +++ b/lib/Control.ts @@ -1,9 +1,10 @@ import axios from "axios" import { NodeInfo, NodeMemoryInfo } from "bitcoin-com-rest"; +import { resturl } from "./BITBOX" export class Control { restURL: string - constructor(restURL: string) { + constructor(restURL: string = resturl) { this.restURL = restURL } diff --git a/lib/Generating.ts b/lib/Generating.ts index d51f4f32..2db23d1f 100644 --- a/lib/Generating.ts +++ b/lib/Generating.ts @@ -1,8 +1,9 @@ import axios from "axios" +import { resturl } from "./BITBOX" export class Generating { restURL: string - constructor(restURL: string) { + constructor(restURL: string = resturl) { this.restURL = restURL } diff --git a/lib/HDNode.ts b/lib/HDNode.ts index 4e637408..3b81f154 100644 --- a/lib/HDNode.ts +++ b/lib/HDNode.ts @@ -2,10 +2,11 @@ const Bitcoin = require("bitcoincashjs-lib") const coininfo = require("coininfo") const bip32utils = require("bip32-utils") import * as bcl from "bitcoincashjs-lib" +import { Address } from "./Address" export class HDNode { - _address: any - constructor(address: any) { + _address: Address + constructor(address: Address) { this._address = address } diff --git a/lib/Mining.ts b/lib/Mining.ts index 22e688d9..e7b227a5 100644 --- a/lib/Mining.ts +++ b/lib/Mining.ts @@ -1,8 +1,9 @@ import axios from "axios" +import { resturl } from "./BITBOX" export class Mining { restURL: string - constructor(restURL: string) { + constructor(restURL: string = resturl) { this.restURL = restURL } diff --git a/lib/Mnemonic.ts b/lib/Mnemonic.ts index ca7d629b..46a5da02 100644 --- a/lib/Mnemonic.ts +++ b/lib/Mnemonic.ts @@ -9,8 +9,8 @@ import { Address } from "./Address" import * as bcl from "bitcoincashjs-lib" export class Mnemonic { - _address?: Address - constructor(address?: Address) { + _address: Address + constructor(address: Address) { this._address = address } @@ -74,20 +74,18 @@ export class Mnemonic { let prefix: number = 128 if (regtest === true) prefix = 239 - if(this._address) { - accounts.push({ - privateKeyWIF: wif.encode( - prefix, - childHDNode.keyPair.d.toBuffer(32), - true - ), - address: this._address.toCashAddress( - childHDNode.getAddress(), - true, - regtest - ) - }) - } + accounts.push({ + privateKeyWIF: wif.encode( + prefix, + childHDNode.keyPair.d.toBuffer(32), + true + ), + address: this._address.toCashAddress( + childHDNode.getAddress(), + true, + regtest + ) + }) } return accounts } diff --git a/lib/RawTransactions.ts b/lib/RawTransactions.ts index a0abd74a..8f5a9b42 100644 --- a/lib/RawTransactions.ts +++ b/lib/RawTransactions.ts @@ -1,9 +1,10 @@ import axios from "axios" import { VerboseRawTransaction } from "bitcoin-com-rest"; +import { resturl } from "./BITBOX" export class RawTransactions { restURL: string - constructor(restURL: string) { + constructor(restURL: string = resturl) { this.restURL = restURL } diff --git a/lib/Transaction.ts b/lib/Transaction.ts index db6405ec..f1e422b4 100644 --- a/lib/Transaction.ts +++ b/lib/Transaction.ts @@ -1,10 +1,11 @@ const Bitcoin = require("bitcoincashjs-lib") import axios from "axios" import { TxnDetails } from "bitcoin-com-rest"; +import { resturl } from "./BITBOX" export class Transaction { restURL: string - constructor(restURL: string) { + constructor(restURL: string = resturl) { this.restURL = restURL } diff --git a/lib/Util.ts b/lib/Util.ts index 91267c2c..61e70398 100644 --- a/lib/Util.ts +++ b/lib/Util.ts @@ -1,4 +1,5 @@ import axios from "axios" +import { resturl } from "./BITBOX" export interface AddressDetails { isvalid: boolean @@ -14,7 +15,7 @@ export interface AddressDetails { export class Util { restURL: string - constructor(restURL: string) { + constructor(restURL: string = resturl) { this.restURL = restURL } From 947a61fda69d33c50c43e9ecd486c8e05b28c9e6 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sat, 11 May 2019 17:03:52 +0900 Subject: [PATCH 353/480] Default Address instance. --- lib/Address.ts | 1 + lib/BitcoinCash.ts | 2 +- lib/HDNode.ts | 2 +- lib/Mnemonic.ts | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/Address.ts b/lib/Address.ts index 5b96a1fe..4b44db57 100644 --- a/lib/Address.ts +++ b/lib/Address.ts @@ -2,6 +2,7 @@ import axios from "axios" import { AddressDetailsResult, AddressUtxoResult, AddressUnconfirmedResult } from "bitcoin-com-rest"; import * as bcl from "bitcoincashjs-lib" import { resturl } from "./BITBOX" +// TODO: port require statements to impprt const Bitcoin = require("bitcoincashjs-lib") const cashaddr = require("cashaddrjs") const coininfo = require("coininfo") diff --git a/lib/BitcoinCash.ts b/lib/BitcoinCash.ts index e90f9661..c2916b1f 100644 --- a/lib/BitcoinCash.ts +++ b/lib/BitcoinCash.ts @@ -32,7 +32,7 @@ export interface ByteCountOutput { export class BitcoinCash { _address: Address - constructor(address: Address) { + constructor(address: Address = new Address()) { this._address = address } diff --git a/lib/HDNode.ts b/lib/HDNode.ts index 3b81f154..8fa1f31d 100644 --- a/lib/HDNode.ts +++ b/lib/HDNode.ts @@ -6,7 +6,7 @@ import { Address } from "./Address" export class HDNode { _address: Address - constructor(address: Address) { + constructor(address: Address = new Address()) { this._address = address } diff --git a/lib/Mnemonic.ts b/lib/Mnemonic.ts index 46a5da02..282a1ecc 100644 --- a/lib/Mnemonic.ts +++ b/lib/Mnemonic.ts @@ -10,7 +10,7 @@ import * as bcl from "bitcoincashjs-lib" export class Mnemonic { _address: Address - constructor(address: Address) { + constructor(address: Address = new Address()) { this._address = address } From 5327f89812b811bf8056b0b7850b9fbfc42276f4 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sat, 11 May 2019 17:45:15 +0900 Subject: [PATCH 354/480] Testing constructors --- test/unit/Address.js | 11 +++++++++++ test/unit/BitcoinCash.js | 12 ++++++++++++ test/unit/Block.js | 11 +++++++++++ test/unit/Blockchain.js | 10 ++++++++++ test/unit/Control.js | 11 +++++++++++ test/unit/Crypto.js | 1 + test/unit/ECPair.js | 11 +++++++++++ test/unit/Generating.js | 11 +++++++++++ test/unit/HDNode.js | 11 +++++++++++ test/unit/Mining.js | 11 +++++++++++ test/unit/Mnemonic.js | 11 +++++++++++ test/unit/Price.js | 11 +++++++++++ test/unit/RawTransactions.js | 11 +++++++++++ test/unit/Script.js | 11 +++++++++++ test/unit/Transaction.js | 11 +++++++++++ test/unit/TransactionBuilder.js | 11 +++++++++++ test/unit/Util.js | 11 +++++++++++ 17 files changed, 177 insertions(+) diff --git a/test/unit/Address.js b/test/unit/Address.js index 40345518..fedba7f1 100644 --- a/test/unit/Address.js +++ b/test/unit/Address.js @@ -2,6 +2,7 @@ const fixtures = require("./fixtures/Address.json") const assert = require("assert") const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() +const Address = require("../../lib/Address").Address const axios = require("axios") const sinon = require("sinon") const Bitcoin = require("bitcoincashjs-lib") @@ -77,6 +78,16 @@ const P2SH_ADDRESSES = flatten([ fixtures.cashaddrMainnetP2SH ]) +describe("#AddressConstructor", () => { + it("should create instance of Address", () => { + let address = new Address() + assert.equal( + address instanceof Address, + true + ) + }) +}) + describe("#addressConversion", () => { describe("#toLegacyAddress", () => { it("should translate legacy address format to itself correctly", () => { diff --git a/test/unit/BitcoinCash.js b/test/unit/BitcoinCash.js index c495579d..6571c444 100644 --- a/test/unit/BitcoinCash.js +++ b/test/unit/BitcoinCash.js @@ -1,6 +1,7 @@ const fixtures = require("./fixtures/BitcoinCash.json") const assert = require("assert") const BITBOX = require("../../lib/BITBOX").BITBOX +const BitcoinCash = require("../../lib/BitcoinCash").BitcoinCash const bitbox = new BITBOX() // TODO @@ -20,6 +21,17 @@ const bitbox = new BITBOX() // 6. More error test cases. describe("#BitcoinCash", () => { + + describe("#BitcoinCashConstructor", () => { + it("should create instance of BitcoinCash", () => { + let bitcoinCash = new BitcoinCash() + assert.equal( + bitcoinCash instanceof BitcoinCash, + true + ) + }) + }) + describe("price conversion", () => { describe("#toBitcoinCash", () => { fixtures.conversion.toBCH.satoshis.forEach(satoshi => { diff --git a/test/unit/Block.js b/test/unit/Block.js index 24d28d2e..49606981 100644 --- a/test/unit/Block.js +++ b/test/unit/Block.js @@ -1,10 +1,21 @@ const assert = require("assert") const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() +const Block = require("../../lib/Block").Block const axios = require("axios") const sinon = require("sinon") describe("#Block", () => { + describe("#BlockConstructor", () => { + it("should create instance of Block", () => { + let block = new Block() + assert.equal( + block instanceof Block, + true + ) + }) + }) + describe("#detailsByHash", () => { let sandbox beforeEach(() => (sandbox = sinon.sandbox.create())) diff --git a/test/unit/Blockchain.js b/test/unit/Blockchain.js index 0c2fc863..8f5af2d3 100644 --- a/test/unit/Blockchain.js +++ b/test/unit/Blockchain.js @@ -2,9 +2,19 @@ const assert = require("assert") const axios = require("axios") const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() +const Blockchain = require("../../lib/Blockchain").Blockchain const sinon = require("sinon") describe("#Blockchain", () => { + describe("#BlockchainConstructor", () => { + it("should create instance of Blockchain", () => { + let blockchain = new Blockchain() + assert.equal( + blockchain instanceof Blockchain, + true + ) + }) + }) describe("#getBestBlockHash", () => { let sandbox beforeEach(() => (sandbox = sinon.sandbox.create())) diff --git a/test/unit/Control.js b/test/unit/Control.js index 37d9aa37..b11451c1 100644 --- a/test/unit/Control.js +++ b/test/unit/Control.js @@ -2,9 +2,20 @@ const assert = require("assert") const axios = require("axios") const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() +const Control = require("../../lib/Control").Control const sinon = require("sinon") describe("#Control", () => { + describe("#ControlConstructor", () => { + it("should create instance of Control", () => { + let control = new Control() + assert.equal( + control instanceof Control, + true + ) + }) + }) + describe("#getInfo", () => { let sandbox beforeEach(() => (sandbox = sinon.sandbox.create())) diff --git a/test/unit/Crypto.js b/test/unit/Crypto.js index 2e6218a8..1b3ac39e 100644 --- a/test/unit/Crypto.js +++ b/test/unit/Crypto.js @@ -2,6 +2,7 @@ const fixtures = require("./fixtures/Crypto.json") const assert = require("assert") const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() +const Crypto = require("../../lib/Crypto").Control const Buffer = require("safe-buffer").Buffer describe("#Crypto", () => { diff --git a/test/unit/ECPair.js b/test/unit/ECPair.js index a67f55fa..08b9329b 100644 --- a/test/unit/ECPair.js +++ b/test/unit/ECPair.js @@ -2,9 +2,20 @@ const fixtures = require("./fixtures/ECPair.json") const assert = require("assert") const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() +const ECPair = require("../../lib/ECPair").ECPair const Buffer = require("safe-buffer").Buffer describe("#ECPair", () => { + describe("#ECPairConstructor", () => { + it("should create instance of ECPair", () => { + let ecpair = new ECPair() + assert.equal( + ecpair instanceof ECPair, + true + ) + }) + }) + describe("#fromWIF", () => { fixtures.fromWIF.forEach(fixture => { it(`should create ECPair from WIF ${fixture.privateKeyWIF}`, () => { diff --git a/test/unit/Generating.js b/test/unit/Generating.js index 420a1457..3739b56a 100644 --- a/test/unit/Generating.js +++ b/test/unit/Generating.js @@ -2,9 +2,20 @@ const assert = require("assert") const axios = require("axios") const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() +const Generating = require("../../lib/Generating").Generating const sinon = require("sinon") describe("#Generating", () => { + describe("#GeneratingConstructor", () => { + it("should create instance of Generating", () => { + let generating = new Generating() + assert.equal( + generating instanceof Generating, + true + ) + }) + }) + describe("#generateToAddress", () => { let sandbox beforeEach(() => (sandbox = sinon.sandbox.create())) diff --git a/test/unit/HDNode.js b/test/unit/HDNode.js index 4e018f54..c07d8f66 100644 --- a/test/unit/HDNode.js +++ b/test/unit/HDNode.js @@ -2,9 +2,20 @@ const fixtures = require("./fixtures/HDNode.json") const assert = require("assert") const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() +const HDNode = require("../../lib/HDNode").HDNode const Buffer = require("safe-buffer").Buffer describe("#HDNode", () => { + describe("#HDNodeConstructor", () => { + it("should create instance of HDNode", () => { + let hdnode = new HDNode() + assert.equal( + hdnode instanceof HDNode, + true + ) + }) + }) + describe("#fromSeed", () => { fixtures.fromSeed.forEach(mnemonic => { it(`should create an HDNode from root seed buffer`, () => { diff --git a/test/unit/Mining.js b/test/unit/Mining.js index 8f7e835a..5048a50e 100644 --- a/test/unit/Mining.js +++ b/test/unit/Mining.js @@ -2,9 +2,20 @@ const assert = require("assert") const axios = require("axios") const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() +const Mining = require("../../lib/Mining").Mining const sinon = require("sinon") describe("#Mining", () => { + describe("#MiningConstructor", () => { + it("should create instance of Mining", () => { + let mining = new Mining() + assert.equal( + mining instanceof Mining, + true + ) + }) + }) + describe("#getBlockTemplate", () => { let sandbox beforeEach(() => (sandbox = sinon.sandbox.create())) diff --git a/test/unit/Mnemonic.js b/test/unit/Mnemonic.js index dd60b82f..957129bf 100644 --- a/test/unit/Mnemonic.js +++ b/test/unit/Mnemonic.js @@ -2,8 +2,19 @@ const fixtures = require("./fixtures/Mnemonic.json") const assert = require("assert") const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() +const Mnemonic = require("../../lib/Mnemonic").Mnemonic describe("#Mnemonic", () => { + describe("#MnemonicConstructor", () => { + it("should create instance of Mnemonic", () => { + let mnemonic = new Mnemonic() + assert.equal( + mnemonic instanceof Mnemonic, + true + ) + }) + }) + describe("#generate", () => { it("should generate a 12 word mnemonic", () => { const mnemonic = bitbox.Mnemonic.generate(128) diff --git a/test/unit/Price.js b/test/unit/Price.js index ed5520bf..f86e76c6 100644 --- a/test/unit/Price.js +++ b/test/unit/Price.js @@ -2,10 +2,21 @@ const chai = require("chai") const assert = require("assert") const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() +const Price = require("../../lib/Price").Price const axios = require("axios") const sinon = require("sinon") describe("#Price", () => { + describe("#PriceConstructor", () => { + it("should create instance of Price", () => { + let price = new Price() + assert.equal( + price instanceof Price, + true + ) + }) + }) + describe("#current", () => { describe("#single currency", () => { let sandbox diff --git a/test/unit/RawTransactions.js b/test/unit/RawTransactions.js index bfbaa95f..951a09aa 100644 --- a/test/unit/RawTransactions.js +++ b/test/unit/RawTransactions.js @@ -9,6 +9,7 @@ const assert = require("assert") const axios = require("axios") const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() +const RawTransactions = require("../../lib/RawTransactions").RawTransactions const sinon = require("sinon") const nock = require("nock") // HTTP mocking @@ -18,6 +19,16 @@ const util = require("util") util.inspect.defaultOptions = { depth: 1 } describe("#RawTransactions", () => { + describe("#PriceConstructor", () => { + it("should create instance of RawTransactions", () => { + let rawtransactions = new RawTransactions() + assert.equal( + rawtransactions instanceof RawTransactions, + true + ) + }) + }) + describe("#decodeRawTransaction", () => { let sandbox beforeEach(() => (sandbox = sinon.sandbox.create())) diff --git a/test/unit/Script.js b/test/unit/Script.js index 08816cd3..705cccd8 100644 --- a/test/unit/Script.js +++ b/test/unit/Script.js @@ -2,9 +2,20 @@ const fixtures = require("./fixtures/Script.json") const assert = require("assert") const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() +const Script = require("../../lib/Script").Script const Buffer = require("safe-buffer").Buffer describe("#Script", () => { + describe("#ScriptConstructor", () => { + it("should create instance of Script", () => { + let script = new Script() + assert.equal( + script instanceof Script, + true + ) + }) + }) + describe("#decode", () => { describe("P2PKH scriptSig", () => { fixtures.decodeScriptSig.forEach(fixture => { diff --git a/test/unit/Transaction.js b/test/unit/Transaction.js index 6b966960..ca4f62b3 100644 --- a/test/unit/Transaction.js +++ b/test/unit/Transaction.js @@ -1,10 +1,21 @@ const assert = require("assert") const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() +const Transaction = require("../../lib/Transaction").Transaction const axios = require("axios") const sinon = require("sinon") describe("#Transaction", () => { + describe("#TransactionConstructor", () => { + it("should create instance of Transaction", () => { + let transaction = new Transaction() + assert.equal( + transaction instanceof Transaction, + true + ) + }) + }) + describe("#details", () => { let sandbox beforeEach(() => (sandbox = sinon.sandbox.create())) diff --git a/test/unit/TransactionBuilder.js b/test/unit/TransactionBuilder.js index 04ab7bd0..6d99fe5b 100644 --- a/test/unit/TransactionBuilder.js +++ b/test/unit/TransactionBuilder.js @@ -2,9 +2,20 @@ const fixtures = require("./fixtures/TransactionBuilder.json") const assert = require("assert") const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() +const TransactionBuilder = require("../../lib/TransactionBuilder").TransactionBuilder const Buffer = require("safe-buffer").Buffer describe("#TransactionBuilder", () => { + describe("#TransactionBuilderConstructor", () => { + it("should create instance of TransactionBuilder", () => { + let transactionbuilder = new TransactionBuilder() + assert.equal( + transactionbuilder instanceof TransactionBuilder, + true + ) + }) + }) + describe("#hashTypes", () => { const transactionBuilder = new bitbox.TransactionBuilder("mainnet") fixtures.hashTypes.forEach(fixture => { diff --git a/test/unit/Util.js b/test/unit/Util.js index d4aa15e5..1e4ce80f 100644 --- a/test/unit/Util.js +++ b/test/unit/Util.js @@ -2,9 +2,20 @@ const assert = require("assert") const axios = require("axios") const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() +const Util = require("../../lib/Util").Util const sinon = require("sinon") describe("#Util", () => { + describe("#UtilConstructor", () => { + it("should create instance of Util", () => { + let util = new Util() + assert.equal( + util instanceof Util, + true + ) + }) + }) + describe("#validateAddress", () => { let sandbox beforeEach(() => (sandbox = sinon.sandbox.create())) From f67b766057c6b7e33ef7691d6f4a1ecfdf6457e9 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sat, 11 May 2019 17:46:59 +0900 Subject: [PATCH 355/480] lint. --- test/unit/ECPair.js | 8 ++------ test/unit/Generating.js | 7 ++----- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/test/unit/ECPair.js b/test/unit/ECPair.js index 08b9329b..99bbbcb9 100644 --- a/test/unit/ECPair.js +++ b/test/unit/ECPair.js @@ -8,11 +8,8 @@ const Buffer = require("safe-buffer").Buffer describe("#ECPair", () => { describe("#ECPairConstructor", () => { it("should create instance of ECPair", () => { - let ecpair = new ECPair() - assert.equal( - ecpair instanceof ECPair, - true - ) + const ecpair = new ECPair() + assert.equal(ecpair instanceof ECPair, true) }) }) @@ -149,7 +146,6 @@ describe("#ECPair", () => { fixtures.verify.forEach(fixture => { it(`should verify signed 32 byte hash buffer`, () => { const ecpair1 = bitbox.ECPair.fromWIF(fixture.privateKeyWIF1) - const ecpair2 = bitbox.ECPair.fromWIF(fixture.privateKeyWIF2) const buf = Buffer.from(bitbox.Crypto.sha256(fixture.data), "hex") const signature = bitbox.ECPair.sign(ecpair1, buf) const verify = bitbox.ECPair.verify(ecpair1, buf, signature) diff --git a/test/unit/Generating.js b/test/unit/Generating.js index 3739b56a..7c5e2dc8 100644 --- a/test/unit/Generating.js +++ b/test/unit/Generating.js @@ -8,11 +8,8 @@ const sinon = require("sinon") describe("#Generating", () => { describe("#GeneratingConstructor", () => { it("should create instance of Generating", () => { - let generating = new Generating() - assert.equal( - generating instanceof Generating, - true - ) + const generating = new Generating() + assert.equal(generating instanceof Generating, true) }) }) From 49190787591d15865e13e8a7a083d6327133eb9f Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sat, 11 May 2019 18:02:39 +0900 Subject: [PATCH 356/480] Test constructor for restURL property. --- test/unit/Address.js | 13 ++++++++----- test/unit/BitcoinCash.js | 7 ++----- test/unit/Block.js | 13 ++++++++----- test/unit/Blockchain.js | 14 +++++++++----- test/unit/Control.js | 13 ++++++++----- test/unit/Generating.js | 6 ++++++ test/unit/HDNode.js | 7 ++----- test/unit/Mining.js | 13 ++++++++----- test/unit/Mnemonic.js | 7 ++----- test/unit/Price.js | 7 ++----- test/unit/RawTransactions.js | 13 ++++++++----- test/unit/Script.js | 7 ++----- test/unit/Transaction.js | 13 ++++++++----- test/unit/TransactionBuilder.js | 7 ++----- test/unit/Util.js | 13 ++++++++----- 15 files changed, 83 insertions(+), 70 deletions(-) diff --git a/test/unit/Address.js b/test/unit/Address.js index fedba7f1..f93ce8e2 100644 --- a/test/unit/Address.js +++ b/test/unit/Address.js @@ -6,6 +6,7 @@ const Address = require("../../lib/Address").Address const axios = require("axios") const sinon = require("sinon") const Bitcoin = require("bitcoincashjs-lib") +const resturl = require("../../lib/BITBOX").resturl function flatten(arrays) { return [].concat.apply([], arrays) @@ -80,11 +81,13 @@ const P2SH_ADDRESSES = flatten([ describe("#AddressConstructor", () => { it("should create instance of Address", () => { - let address = new Address() - assert.equal( - address instanceof Address, - true - ) + const address = new Address() + assert.equal(address instanceof Address, true) + }) + + it("should have a restURL property", () => { + const address = new Address() + assert.equal(address.restURL, resturl) }) }) diff --git a/test/unit/BitcoinCash.js b/test/unit/BitcoinCash.js index 6571c444..6c555f57 100644 --- a/test/unit/BitcoinCash.js +++ b/test/unit/BitcoinCash.js @@ -24,11 +24,8 @@ describe("#BitcoinCash", () => { describe("#BitcoinCashConstructor", () => { it("should create instance of BitcoinCash", () => { - let bitcoinCash = new BitcoinCash() - assert.equal( - bitcoinCash instanceof BitcoinCash, - true - ) + const bitcoinCash = new BitcoinCash() + assert.equal(bitcoinCash instanceof BitcoinCash, true) }) }) diff --git a/test/unit/Block.js b/test/unit/Block.js index 49606981..458db8db 100644 --- a/test/unit/Block.js +++ b/test/unit/Block.js @@ -4,18 +4,21 @@ const bitbox = new BITBOX() const Block = require("../../lib/Block").Block const axios = require("axios") const sinon = require("sinon") +const resturl = require("../../lib/BITBOX").resturl describe("#Block", () => { describe("#BlockConstructor", () => { it("should create instance of Block", () => { - let block = new Block() - assert.equal( - block instanceof Block, - true - ) + const block = new Block() + assert.equal(block instanceof Block, true) }) }) + it("should have a restURL property", () => { + const block = new Block() + assert.equal(block.restURL, resturl) + }) + describe("#detailsByHash", () => { let sandbox beforeEach(() => (sandbox = sinon.sandbox.create())) diff --git a/test/unit/Blockchain.js b/test/unit/Blockchain.js index 8f5af2d3..bcc4fcc3 100644 --- a/test/unit/Blockchain.js +++ b/test/unit/Blockchain.js @@ -4,17 +4,21 @@ const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() const Blockchain = require("../../lib/Blockchain").Blockchain const sinon = require("sinon") +const resturl = require("../../lib/BITBOX").resturl describe("#Blockchain", () => { describe("#BlockchainConstructor", () => { it("should create instance of Blockchain", () => { - let blockchain = new Blockchain() - assert.equal( - blockchain instanceof Blockchain, - true - ) + const blockchain = new Blockchain() + assert.equal(blockchain instanceof Blockchain, true) + }) + + it("should have a restURL property", () => { + const blockchain = new Blockchain() + assert.equal(blockchain.restURL, resturl) }) }) + describe("#getBestBlockHash", () => { let sandbox beforeEach(() => (sandbox = sinon.sandbox.create())) diff --git a/test/unit/Control.js b/test/unit/Control.js index b11451c1..d6ca022c 100644 --- a/test/unit/Control.js +++ b/test/unit/Control.js @@ -4,15 +4,18 @@ const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() const Control = require("../../lib/Control").Control const sinon = require("sinon") +const resturl = require("../../lib/BITBOX").resturl describe("#Control", () => { describe("#ControlConstructor", () => { it("should create instance of Control", () => { - let control = new Control() - assert.equal( - control instanceof Control, - true - ) + const control = new Control() + assert.equal(control instanceof Control, true) + }) + + it("should have a restURL property", () => { + const control = new Control() + assert.equal(control.restURL, resturl) }) }) diff --git a/test/unit/Generating.js b/test/unit/Generating.js index 7c5e2dc8..1097799c 100644 --- a/test/unit/Generating.js +++ b/test/unit/Generating.js @@ -4,6 +4,7 @@ const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() const Generating = require("../../lib/Generating").Generating const sinon = require("sinon") +const resturl = require("../../lib/BITBOX").resturl describe("#Generating", () => { describe("#GeneratingConstructor", () => { @@ -11,6 +12,11 @@ describe("#Generating", () => { const generating = new Generating() assert.equal(generating instanceof Generating, true) }) + + it("should have a restURL property", () => { + const generating = new Generating() + assert.equal(generating.restURL, resturl) + }) }) describe("#generateToAddress", () => { diff --git a/test/unit/HDNode.js b/test/unit/HDNode.js index c07d8f66..65745833 100644 --- a/test/unit/HDNode.js +++ b/test/unit/HDNode.js @@ -8,11 +8,8 @@ const Buffer = require("safe-buffer").Buffer describe("#HDNode", () => { describe("#HDNodeConstructor", () => { it("should create instance of HDNode", () => { - let hdnode = new HDNode() - assert.equal( - hdnode instanceof HDNode, - true - ) + const hdnode = new HDNode() + assert.equal(hdnode instanceof HDNode, true) }) }) diff --git a/test/unit/Mining.js b/test/unit/Mining.js index 5048a50e..a20dd72a 100644 --- a/test/unit/Mining.js +++ b/test/unit/Mining.js @@ -4,15 +4,18 @@ const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() const Mining = require("../../lib/Mining").Mining const sinon = require("sinon") +const resturl = require("../../lib/BITBOX").resturl describe("#Mining", () => { describe("#MiningConstructor", () => { it("should create instance of Mining", () => { - let mining = new Mining() - assert.equal( - mining instanceof Mining, - true - ) + const mining = new Mining() + assert.equal(mining instanceof Mining, true) + }) + + it("should have a restURL property", () => { + const mining = new Mining() + assert.equal(mining.restURL, resturl) }) }) diff --git a/test/unit/Mnemonic.js b/test/unit/Mnemonic.js index 957129bf..6e09a870 100644 --- a/test/unit/Mnemonic.js +++ b/test/unit/Mnemonic.js @@ -7,11 +7,8 @@ const Mnemonic = require("../../lib/Mnemonic").Mnemonic describe("#Mnemonic", () => { describe("#MnemonicConstructor", () => { it("should create instance of Mnemonic", () => { - let mnemonic = new Mnemonic() - assert.equal( - mnemonic instanceof Mnemonic, - true - ) + const mnemonic = new Mnemonic() + assert.equal(mnemonic instanceof Mnemonic, true) }) }) diff --git a/test/unit/Price.js b/test/unit/Price.js index f86e76c6..b16f6375 100644 --- a/test/unit/Price.js +++ b/test/unit/Price.js @@ -9,11 +9,8 @@ const sinon = require("sinon") describe("#Price", () => { describe("#PriceConstructor", () => { it("should create instance of Price", () => { - let price = new Price() - assert.equal( - price instanceof Price, - true - ) + const price = new Price() + assert.equal(price instanceof Price, true) }) }) diff --git a/test/unit/RawTransactions.js b/test/unit/RawTransactions.js index 951a09aa..b6ac33d1 100644 --- a/test/unit/RawTransactions.js +++ b/test/unit/RawTransactions.js @@ -10,6 +10,7 @@ const axios = require("axios") const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() const RawTransactions = require("../../lib/RawTransactions").RawTransactions +const resturl = require("../../lib/BITBOX").resturl const sinon = require("sinon") const nock = require("nock") // HTTP mocking @@ -21,11 +22,13 @@ util.inspect.defaultOptions = { depth: 1 } describe("#RawTransactions", () => { describe("#PriceConstructor", () => { it("should create instance of RawTransactions", () => { - let rawtransactions = new RawTransactions() - assert.equal( - rawtransactions instanceof RawTransactions, - true - ) + const rawtransactions = new RawTransactions() + assert.equal(rawtransactions instanceof RawTransactions, true) + }) + + it("should have a restURL property", () => { + const rawtransactions = new RawTransactions() + assert.equal(rawtransactions.restURL, resturl) }) }) diff --git a/test/unit/Script.js b/test/unit/Script.js index 705cccd8..c1eac3f5 100644 --- a/test/unit/Script.js +++ b/test/unit/Script.js @@ -8,11 +8,8 @@ const Buffer = require("safe-buffer").Buffer describe("#Script", () => { describe("#ScriptConstructor", () => { it("should create instance of Script", () => { - let script = new Script() - assert.equal( - script instanceof Script, - true - ) + const script = new Script() + assert.equal(script instanceof Script, true) }) }) diff --git a/test/unit/Transaction.js b/test/unit/Transaction.js index ca4f62b3..c107ffe7 100644 --- a/test/unit/Transaction.js +++ b/test/unit/Transaction.js @@ -4,15 +4,18 @@ const bitbox = new BITBOX() const Transaction = require("../../lib/Transaction").Transaction const axios = require("axios") const sinon = require("sinon") +const resturl = require("../../lib/BITBOX").resturl describe("#Transaction", () => { describe("#TransactionConstructor", () => { it("should create instance of Transaction", () => { - let transaction = new Transaction() - assert.equal( - transaction instanceof Transaction, - true - ) + const transaction = new Transaction() + assert.equal(transaction instanceof Transaction, true) + }) + + it("should have a restURL property", () => { + const transaction = new Transaction() + assert.equal(transaction.restURL, resturl) }) }) diff --git a/test/unit/TransactionBuilder.js b/test/unit/TransactionBuilder.js index 6d99fe5b..a974c644 100644 --- a/test/unit/TransactionBuilder.js +++ b/test/unit/TransactionBuilder.js @@ -8,11 +8,8 @@ const Buffer = require("safe-buffer").Buffer describe("#TransactionBuilder", () => { describe("#TransactionBuilderConstructor", () => { it("should create instance of TransactionBuilder", () => { - let transactionbuilder = new TransactionBuilder() - assert.equal( - transactionbuilder instanceof TransactionBuilder, - true - ) + const transactionbuilder = new TransactionBuilder() + assert.equal(transactionbuilder instanceof TransactionBuilder, true) }) }) diff --git a/test/unit/Util.js b/test/unit/Util.js index 1e4ce80f..86600a4a 100644 --- a/test/unit/Util.js +++ b/test/unit/Util.js @@ -4,15 +4,18 @@ const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() const Util = require("../../lib/Util").Util const sinon = require("sinon") +const resturl = require("../../lib/BITBOX").resturl describe("#Util", () => { describe("#UtilConstructor", () => { it("should create instance of Util", () => { - let util = new Util() - assert.equal( - util instanceof Util, - true - ) + const util = new Util() + assert.equal(util instanceof Util, true) + }) + + it("should have a restURL property", () => { + const util = new Util() + assert.equal(util.restURL, resturl) }) }) From 40573eb0227e636d239dacf7742c155fd982c65a Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sat, 11 May 2019 18:39:25 +0900 Subject: [PATCH 357/480] BITBOX tests. --- lib/Address.ts | 1 - test/unit/BITBOX.js | 106 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 test/unit/BITBOX.js diff --git a/lib/Address.ts b/lib/Address.ts index 4b44db57..2b512181 100644 --- a/lib/Address.ts +++ b/lib/Address.ts @@ -237,7 +237,6 @@ export class Address { } _decodeAddressFromHash160(address: string): DecodedHash160 { - console.log("ADDRESS", address) if (address.length === 40) { return { legacyAddress: this.hash160ToLegacy(address), diff --git a/test/unit/BITBOX.js b/test/unit/BITBOX.js new file mode 100644 index 00000000..22bee4d4 --- /dev/null +++ b/test/unit/BITBOX.js @@ -0,0 +1,106 @@ +const assert = require("assert") +const BITBOX = require("../../lib/BITBOX").BITBOX +const BitcoinCash = require("../../lib/BitcoinCash").BitcoinCash +const Block = require("../../lib/Block").Block +const Blockchain = require("../../lib/Blockchain").Blockchain +const Control = require("../../lib/Control").Control +const Generating = require("../../lib/Generating").Generating +const HDNode = require("../../lib/HDNode").HDNode +const Mining = require("../../lib/Mining").Mining +const Mnemonic = require("../../lib/Mnemonic").Mnemonic +const Price = require("../../lib/Price").Price +const RawTransactions = require("../../lib/RawTransactions").RawTransactions +const Script = require("../../lib/Script").Script +const Transaction = require("../../lib/Transaction").Transaction +const Util = require("../../lib/Util").Util +const Schnorr = require("../../lib/Schnorr").Schnorr +const resturl = require("../../lib/BITBOX").resturl + +describe("#BITBOX", () => { + describe("#BITBOXConstructor", () => { + it("should create instance of BITBOX", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox instanceof BITBOX, true) + }) + + it("should have a restURL property", () => { + const bitbox = new BITBOX({ restURL: "https://rest.bitcoin.com/v2/" }) + assert.equal(bitbox.restURL, resturl) + }) + + it("should have a BitcoinCash property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.BitcoinCash instanceof BitcoinCash, true) + }) + + it("should have a BitcoinCash property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.BitcoinCash instanceof BitcoinCash, true) + }) + + it("should have a Block property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Block instanceof Block, true) + }) + + it("should have a Blockchain property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Blockchain instanceof Blockchain, true) + }) + + it("should have a Control property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Control instanceof Control, true) + }) + + it("should have a Generating property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Generating instanceof Generating, true) + }) + + it("should have a HDNode property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.HDNode instanceof HDNode, true) + }) + + it("should have a Mining property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Mining instanceof Mining, true) + }) + + it("should have a Mnemonic property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Mnemonic instanceof Mnemonic, true) + }) + + it("should have a Price property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Price instanceof Price, true) + }) + + it("should have a RawTransactions property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.RawTransactions instanceof RawTransactions, true) + }) + + it("should have a Script property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Script instanceof Script, true) + }) + + it("should have a Transaction property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Transaction instanceof Transaction, true) + }) + + it("should have a Util property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Util instanceof Util, true) + }) + + it("should have a Schnorr property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Schnorr instanceof Schnorr, true) + }) + }) +}) From 9f525d0e75ed6944c072bfe95e48c008adebbd1e Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sat, 11 May 2019 19:19:38 +0900 Subject: [PATCH 358/480] Export all classes. --- index.ts | 46 +++++++++++++++++++++++----------------------- package.json | 2 +- yarn.lock | 42 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 66 insertions(+), 24 deletions(-) diff --git a/index.ts b/index.ts index 72486749..cb3a049a 100644 --- a/index.ts +++ b/index.ts @@ -47,7 +47,7 @@ interface NewOptions extends ConsoleOptions { restURL: string } -program.version("7.0.19 ", "-v, --version") +program.version("7.1.0 ", "-v, --version") program .command("new ") @@ -222,26 +222,26 @@ program.parse(process.argv) // print help if no command given // if (!process.argv.slice(2).length) program.outputHelp() -module.exports = { - Address: Address, - BITBOX: BITBOX, - BitcoinCash: BitcoinCash, - Block: Block, - Blockchain: Blockchain, - Control: Control, - Crypto: Crypto, - ECPair: ECPair, - Generating: Generating, - HDNode: HDNode, - Mining: Mining, - Mnemonic: Mnemonic, - Price: Price, - RawTransactions: RawTransactions, - Script: Script, - Transaction: Transaction, - TransactionBuilder: TransactionBuilder, - Util: Util, - Socket: Socket, - Wallet: Wallet, - Schnorr: Schnorr +export { + Address, + BITBOX, + BitcoinCash, + Block, + Blockchain, + Control, + Crypto, + ECPair, + Generating, + HDNode, + Mining, + Mnemonic, + Price, + RawTransactions, + Script, + Transaction, + TransactionBuilder, + Util, + Socket, + Wallet, + Schnorr } diff --git a/package.json b/package.json index fffc9d9c..cdba3257 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.0.19", + "version": "7.1.0", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ diff --git a/yarn.lock b/yarn.lock index cba8dc4d..d4144838 100644 --- a/yarn.lock +++ b/yarn.lock @@ -226,10 +226,24 @@ version "0.7.1" resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" +"@types/bigi@^1.4.2": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@types/bigi/-/bigi-1.4.2.tgz#8dda60612e689e5769047568d0ce8b8fa83db953" + +"@types/bip39@^2.4.2": + version "2.4.2" + resolved "https://registry.yarnpkg.com/@types/bip39/-/bip39-2.4.2.tgz#f5d6617212be496bb998d3969f657f77a10c5287" + dependencies: + "@types/node" "*" + "@types/events@*": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" +"@types/figlet@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@types/figlet/-/figlet-1.2.0.tgz#2dab76da069dc8ce5dcab461f7f2788317fb01a8" + "@types/glob@^7.1.1": version "7.1.1" resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" @@ -242,6 +256,16 @@ version "3.0.3" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" +"@types/mkdirp@^0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@types/mkdirp/-/mkdirp-0.5.2.tgz#503aacfe5cc2703d5484326b1b27efa67a339c1f" + dependencies: + "@types/node" "*" + +"@types/node-emoji@^1.8.1": + version "1.8.1" + resolved "https://registry.yarnpkg.com/@types/node-emoji/-/node-emoji-1.8.1.tgz#689cb74fdf6e84309bcafce93a135dfecd01de3f" + "@types/node@*": version "12.0.0" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.0.0.tgz#d11813b9c0ff8aaca29f04cbc12817f4c7d656e5" @@ -254,6 +278,24 @@ version "2.4.0" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" +"@types/randombytes@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/randombytes/-/randombytes-2.0.0.tgz#0087ff5e60ae68023b9bc4398b406fea7ad18304" + dependencies: + "@types/node" "*" + +"@types/touch@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@types/touch/-/touch-3.1.1.tgz#fdbb769f2af98f8bdbd52bc3ebfb9eaaa4b40bc3" + dependencies: + "@types/node" "*" + +"@types/wif@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/wif/-/wif-2.0.1.tgz#bcab48b201403cb759cd7659aff4610cfd4888f4" + dependencies: + "@types/node" "*" + JSONStream@^1.0.3, JSONStream@^1.0.4, JSONStream@^1.3.4, JSONStream@^1.3.5: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" From 5ebc7f351e20343884173fa0bfe3135d7c0485a7 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sun, 12 May 2019 05:55:20 +0900 Subject: [PATCH 359/480] Formatting. --- index.ts | 24 +++--- lib/Address.ts | 28 +++---- lib/BITBOX.ts | 2 +- lib/BitcoinCash.ts | 6 +- lib/Blockchain.ts | 12 +-- lib/Schnorr.ts | 10 +-- package.json | 4 +- test/unit/Address.js | 6 +- test/unit/BITBOX.js | 170 +++++++++++++++++++++---------------------- yarn.lock | 10 +-- 10 files changed, 136 insertions(+), 136 deletions(-) diff --git a/index.ts b/index.ts index cb3a049a..2aed738c 100644 --- a/index.ts +++ b/index.ts @@ -4,17 +4,17 @@ require("babel-register") import * as path from "path" import * as program from "commander" -import chalk from "chalk"; -import * as fs from "fs"; -import * as repl from "repl"; -import * as mkdirp from "mkdirp"; -import * as figlet from "figlet"; -import * as touch from "touch"; -import * as emoji from "node-emoji"; +import chalk from "chalk" +import * as fs from "fs" +import * as repl from "repl" +import * as mkdirp from "mkdirp" +import * as figlet from "figlet" +import * as touch from "touch" +import * as emoji from "node-emoji" // TODO: port to `import` statement let clear = require("clear") -let clone = require("git-clone") +let clone = require("git-clone") import { BITBOX } from "./lib/BITBOX" import { Address } from "./lib/Address" @@ -142,16 +142,16 @@ program console.log(chalk.green(`Creating ${name}/ directory`)) console.log(chalk.green(`Creating src/ directory: ./${name}/src`)) - mkdirp(`./${name}/src`, (err: any) => {}) + mkdirp(`./${name}/src`, (err: any) => { }) console.log(chalk.green(`Creating tests/ directory: ./${name}/tests`)) - mkdirp(`./${name}/tests`, (err: any) => {}) + mkdirp(`./${name}/tests`, (err: any) => { }) console.log( chalk.green(`Creating bitbox.js configuration file: ./${name}/bitbox.js`) ) - mkdirp(`./${name}`, (err: any) => {}) + mkdirp(`./${name}`, (err: any) => { }) touch(`./${name}/bitbox.js`) fs.writeFileSync( `./${name}/bitbox.js`, @@ -184,7 +184,7 @@ program .action((options: ConsoleOptions): void => { // TODO: create interface for `config` - let config: any = { + let config: any = { environments: {} } diff --git a/lib/Address.ts b/lib/Address.ts index 2b512181..c14032f3 100644 --- a/lib/Address.ts +++ b/lib/Address.ts @@ -25,13 +25,13 @@ interface BitcoinCash { hashGenesisBlock: string port: number portRpc: number - protocol: { + protocol: { magic: number } seedsDns: string[] versions: { - bip32: { - private: number + bip32: { + private: number public: number } bip44: number @@ -48,11 +48,11 @@ interface BitcoinCash { toBitcore: any } - interface DecodedHash160 { - legacyAddress: string - cashAddress: string - format: string - } +interface DecodedHash160 { + legacyAddress: string + cashAddress: string + format: string +} export class Address { restURL: string @@ -119,7 +119,7 @@ export class Address { // Converts legacy address format to hash160 legacyToHash160(address: string): string { - const bytes: Bytes = Bitcoin.address.fromBase58Check(address) + const bytes: Bytes = Bitcoin.address.fromBase58Check(address) return bytes.hash.toString("hex") } @@ -159,11 +159,11 @@ export class Address { _decode(address: string): Decoded { try { return this._decodeLegacyAddress(address) - } catch (error) {} + } catch (error) { } try { return this._decodeCashAddress(address) - } catch (error) {} + } catch (error) { } throw new Error(`Unsupported address format : ${address}`) } @@ -171,7 +171,7 @@ export class Address { _decodeHash160(address: string): DecodedHash160 { try { return this._decodeAddressFromHash160(address) - } catch (error) {} + } catch (error) { } throw new Error(`Unsupported address format : ${address}`) } @@ -230,7 +230,7 @@ export class Address { const decoded: Decoded = cashaddr.decode(`${prefixes[i]}:${address}`) decoded.format = "cashaddr" return decoded - } catch (error) {} + } catch (error) { } } throw new Error(`Invalid format : ${address}`) @@ -243,7 +243,7 @@ export class Address { cashAddress: this.hash160ToCash(address), format: "hash160" } - } else if(this.isCashAddress(address) || this.isLegacyAddress(address)) { + } else if (this.isCashAddress(address) || this.isLegacyAddress(address)) { return { legacyAddress: this.toLegacyAddress(address), cashAddress: this.toCashAddress(address), diff --git a/lib/BITBOX.ts b/lib/BITBOX.ts index a08878a9..3b27b6ea 100644 --- a/lib/BITBOX.ts +++ b/lib/BITBOX.ts @@ -25,7 +25,7 @@ import { Socket } from "./Socket" import { Wallet } from "./Wallet" import { Schnorr } from "./Schnorr" -export const resturl = "https://rest.bitcoin.com/v2/" +export const resturl = "https://rest.bitcoin.com/v2/" export class BITBOX { restURL: string diff --git a/lib/BitcoinCash.ts b/lib/BitcoinCash.ts index c2916b1f..d29f4ac8 100644 --- a/lib/BitcoinCash.ts +++ b/lib/BitcoinCash.ts @@ -132,13 +132,13 @@ export class BitcoinCash { } } - Object.keys(inputs).forEach(function(key) { + Object.keys(inputs).forEach(function (key) { if (key.slice(0, 8) === "MULTISIG") { // ex. "MULTISIG-P2SH:2-3" would mean 2 of 3 P2SH MULTISIG const keyParts = key.split(":") if (keyParts.length !== 2) throw new Error(`invalid input: ${key}`) const newKey = keyParts[0] - const mAndN = keyParts[1].split("-").map(function(item) { + const mAndN = keyParts[1].split("-").map(function (item) { return parseInt(item) }) @@ -151,7 +151,7 @@ export class BitcoinCash { if (key.indexOf("W") >= 0) hasWitness = true }) - Object.keys(outputs).forEach(function(key) { + Object.keys(outputs).forEach(function (key) { totalWeight += types.outputs[key] * outputs[key] }) diff --git a/lib/Blockchain.ts b/lib/Blockchain.ts index 01623947..cb6524e9 100644 --- a/lib/Blockchain.ts +++ b/lib/Blockchain.ts @@ -141,13 +141,13 @@ export class Blockchain { async getMempoolAncestors( txid: string, verbose: boolean = false - ): Promise { + ): Promise { if (typeof txid !== "string") txid = JSON.stringify(txid) try { const response: any = await axios.get( `${ - this.restURL + this.restURL }blockchain/getMempoolAncestors/${txid}?verbose=${verbose}` ) return response.data @@ -161,13 +161,13 @@ export class Blockchain { async getMempoolDescendants( txid: string, verbose: boolean = false - ): Promise { + ): Promise { if (typeof txid !== "string") txid = JSON.stringify(txid) try { const response: any = await axios.get( `${ - this.restURL + this.restURL }blockchain/getMempoolDescendants/${txid}?verbose=${verbose}` ) return response.data @@ -241,7 +241,7 @@ export class Blockchain { try { const response: any = await axios.get( `${ - this.restURL + this.restURL }blockchain/getTxOut/${txid}/n?include_mempool=${include_mempool}` ) return response.data @@ -315,7 +315,7 @@ export class Blockchain { try { const response: any = await axios.get( `${ - this.restURL + this.restURL }blockchain/verifyChain?checklevel=${checklevel}&nblocks=${nblocks}` ) return response.data diff --git a/lib/Schnorr.ts b/lib/Schnorr.ts index b00d4e88..74a9fd9b 100644 --- a/lib/Schnorr.ts +++ b/lib/Schnorr.ts @@ -2,11 +2,11 @@ const schnorr = require("bip-schnorr") import * as BigInteger from "bigi" export interface Session { - sessionId: Buffer; - message: Buffer; - pubKeyCombined: Buffer; - ell: Buffer; - idx: number; + sessionId: Buffer; + message: Buffer; + pubKeyCombined: Buffer; + ell: Buffer; + idx: number; } export class Schnorr { diff --git a/package.json b/package.json index cdba3257..fc2d0b63 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "@types/touch": "^3.1.1", "@types/wif": "^2.0.1", "assert": "^1.4.1", - "axios": "^0.17.1", + "axios": "0.18.0", "babel-cli": "^6.26.0", "babel-preset-env": "^1.6.1", "babel-preset-es2015": "^6.24.1", @@ -99,4 +99,4 @@ "sinon": "^4.5.0", "typescript": "^3.4.5" } -} +} \ No newline at end of file diff --git a/test/unit/Address.js b/test/unit/Address.js index f93ce8e2..60b71d4f 100644 --- a/test/unit/Address.js +++ b/test/unit/Address.js @@ -933,9 +933,9 @@ describe("#fromXPub", () => { xpub.addresses.forEach((address, j) => { it(`generate public external change address ${j} for ${ xpub.xpub - }`, () => { - assert.equal(bitbox.Address.fromXPub(xpub.xpub, `0/${j}`), address) - }) + }`, () => { + assert.equal(bitbox.Address.fromXPub(xpub.xpub, `0/${j}`), address) + }) }) }) }) diff --git a/test/unit/BITBOX.js b/test/unit/BITBOX.js index 22bee4d4..0b71ae9e 100644 --- a/test/unit/BITBOX.js +++ b/test/unit/BITBOX.js @@ -17,90 +17,90 @@ const Schnorr = require("../../lib/Schnorr").Schnorr const resturl = require("../../lib/BITBOX").resturl describe("#BITBOX", () => { - describe("#BITBOXConstructor", () => { - it("should create instance of BITBOX", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox instanceof BITBOX, true) + describe("#BITBOXConstructor", () => { + it("should create instance of BITBOX", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox instanceof BITBOX, true) + }) + + it("should have a restURL property", () => { + const bitbox = new BITBOX({ restURL: "https://rest.bitcoin.com/v2/" }) + assert.equal(bitbox.restURL, resturl) + }) + + it("should have a BitcoinCash property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.BitcoinCash instanceof BitcoinCash, true) + }) + + it("should have a BitcoinCash property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.BitcoinCash instanceof BitcoinCash, true) + }) + + it("should have a Block property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Block instanceof Block, true) + }) + + it("should have a Blockchain property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Blockchain instanceof Blockchain, true) + }) + + it("should have a Control property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Control instanceof Control, true) + }) + + it("should have a Generating property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Generating instanceof Generating, true) + }) + + it("should have a HDNode property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.HDNode instanceof HDNode, true) + }) + + it("should have a Mining property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Mining instanceof Mining, true) + }) + + it("should have a Mnemonic property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Mnemonic instanceof Mnemonic, true) + }) + + it("should have a Price property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Price instanceof Price, true) + }) + + it("should have a RawTransactions property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.RawTransactions instanceof RawTransactions, true) + }) + + it("should have a Script property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Script instanceof Script, true) + }) + + it("should have a Transaction property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Transaction instanceof Transaction, true) + }) + + it("should have a Util property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Util instanceof Util, true) + }) + + it("should have a Schnorr property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Schnorr instanceof Schnorr, true) + }) }) - - it("should have a restURL property", () => { - const bitbox = new BITBOX({ restURL: "https://rest.bitcoin.com/v2/" }) - assert.equal(bitbox.restURL, resturl) - }) - - it("should have a BitcoinCash property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.BitcoinCash instanceof BitcoinCash, true) - }) - - it("should have a BitcoinCash property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.BitcoinCash instanceof BitcoinCash, true) - }) - - it("should have a Block property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Block instanceof Block, true) - }) - - it("should have a Blockchain property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Blockchain instanceof Blockchain, true) - }) - - it("should have a Control property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Control instanceof Control, true) - }) - - it("should have a Generating property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Generating instanceof Generating, true) - }) - - it("should have a HDNode property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.HDNode instanceof HDNode, true) - }) - - it("should have a Mining property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Mining instanceof Mining, true) - }) - - it("should have a Mnemonic property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Mnemonic instanceof Mnemonic, true) - }) - - it("should have a Price property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Price instanceof Price, true) - }) - - it("should have a RawTransactions property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.RawTransactions instanceof RawTransactions, true) - }) - - it("should have a Script property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Script instanceof Script, true) - }) - - it("should have a Transaction property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Transaction instanceof Transaction, true) - }) - - it("should have a Util property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Util instanceof Util, true) - }) - - it("should have a Schnorr property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Schnorr instanceof Schnorr, true) - }) - }) }) diff --git a/yarn.lock b/yarn.lock index d4144838..030ea52d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -635,11 +635,11 @@ aws4@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" -axios@^0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.17.1.tgz#2d8e3e5d0bdbd7327f91bc814f5c57660f81824d" +axios@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.0.tgz#32d53e4851efdc0a11993b6cd000789d70c05102" dependencies: - follow-redirects "^1.2.5" + follow-redirects "^1.3.0" is-buffer "^1.1.5" babel-cli@^6.26.0: @@ -3208,7 +3208,7 @@ flush-write-stream@^1.0.0: inherits "^2.0.3" readable-stream "^2.3.6" -follow-redirects@^1.2.5: +follow-redirects@^1.3.0: version "1.7.0" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.7.0.tgz#489ebc198dc0e7f64167bd23b03c4c19b5784c76" dependencies: From 453dc571d4fe39263449512417923e51ca53c25f Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sun, 12 May 2019 11:17:19 +0900 Subject: [PATCH 360/480] port tests to .ts. --- .gitignore | 2 + .nycrc | 3 + package.json | 11 +- test/mocha.opts | 4 + test/unit/Address.js | 1087 ---------------- test/unit/Address.ts | 1091 +++++++++++++++++ test/unit/BITBOX.js | 106 -- test/unit/BITBOX.ts | 108 ++ test/unit/{BitcoinCash.js => BitcoinCash.ts} | 280 ++--- test/unit/{Block.js => Block.ts} | 12 +- test/unit/{Blockchain.js => Blockchain.ts} | 76 +- test/unit/{Control.js => Control.ts} | 16 +- test/unit/{Crypto.js => Crypto.ts} | 64 +- test/unit/{ECPair.js => ECPair.ts} | 52 +- test/unit/{Generating.js => Generating.ts} | 14 +- test/unit/{HDNode.js => HDNode.ts} | 60 +- test/unit/{Mining.js => Mining.ts} | 24 +- test/unit/{Mnemonic.js => Mnemonic.ts} | 22 +- test/unit/{Price.js => Price.ts} | 15 +- test/unit/RawTransactions.js | 308 +++-- test/unit/RawTransactions.ts | 143 +++ test/unit/{Script.js => Script.ts} | 86 +- test/unit/{Transaction.js => Transaction.ts} | 12 +- ...actionBuilder.js => TransactionBuilder.ts} | 88 +- test/unit/{Util.js => Util.ts} | 12 +- tsconfig.json | 13 +- yarn.lock | 94 +- 27 files changed, 2025 insertions(+), 1778 deletions(-) create mode 100644 .nycrc create mode 100644 test/mocha.opts delete mode 100644 test/unit/Address.js create mode 100644 test/unit/Address.ts delete mode 100644 test/unit/BITBOX.js create mode 100644 test/unit/BITBOX.ts rename test/unit/{BitcoinCash.js => BitcoinCash.ts} (50%) rename test/unit/{Block.js => Block.ts} (94%) rename test/unit/{Blockchain.js => Blockchain.ts} (92%) rename test/unit/{Control.js => Control.ts} (88%) rename test/unit/{Crypto.js => Crypto.ts} (70%) rename test/unit/{ECPair.js => ECPair.ts} (77%) rename test/unit/{Generating.js => Generating.ts} (83%) rename test/unit/{HDNode.js => HDNode.ts} (88%) rename test/unit/{Mining.js => Mining.ts} (90%) rename test/unit/{Mnemonic.js => Mnemonic.ts} (96%) rename test/unit/{Price.js => Price.ts} (78%) create mode 100644 test/unit/RawTransactions.ts rename test/unit/{Script.js => Script.ts} (85%) rename test/unit/{Transaction.js => Transaction.ts} (90%) rename test/unit/{TransactionBuilder.js => TransactionBuilder.ts} (96%) rename test/unit/{Util.js => Util.ts} (86%) diff --git a/.gitignore b/.gitignore index 0074adc8..9a829848 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,5 @@ index.js index.js.map lib/**/*.js lib/**/*.js.map +test/**/*.js +test/**/*.js.map diff --git a/.nycrc b/.nycrc new file mode 100644 index 00000000..504abf9e --- /dev/null +++ b/.nycrc @@ -0,0 +1,3 @@ +{ + "extends": "@istanbuljs/nyc-config-typescript" +} \ No newline at end of file diff --git a/package.json b/package.json index fc2d0b63..51c74a4b 100644 --- a/package.json +++ b/package.json @@ -7,8 +7,8 @@ "Chris Troutner " ], "scripts": { - "test": "TEST=unit nyc --reporter=text mocha --require babel-core/register --timeout 30000 test/unit", - "test:integration": "TEST=integration nyc --reporter=text mocha --require babel-core/register --timeout 10000 test/integration", + "test": "nyc mocha test/unit --timeout 30000", + "test:integration": "TEST=integration nyc --reporter=text mocha --require babel-core/register --timeout 30000 test/integration", "coverage": "nyc report --reporter=text-lcov | coveralls", "build": "tsc" }, @@ -34,9 +34,11 @@ "@types/bip39": "^2.4.2", "@types/figlet": "^1.2.0", "@types/mkdirp": "^0.5.2", + "@types/mocha": "^5.2.6", "@types/node": "^10.11.7", "@types/node-emoji": "^1.8.1", "@types/randombytes": "^2.0.0", + "@types/sinon": "^7.0.11", "@types/touch": "^3.1.1", "@types/wif": "^2.0.1", "assert": "^1.4.1", @@ -84,6 +86,7 @@ "wif": "^2.0.6" }, "devDependencies": { + "@istanbuljs/nyc-config-typescript": "^0.1.3", "chai": "^4.1.2", "coveralls": "^3.0.2", "eslint": "^5.5.0", @@ -93,10 +96,12 @@ "mocha": "^5.0.1", "nock": "^10.0.6", "node-mocks-http": "^1.7.0", - "nyc": "^13.3.0", + "nyc": "^14.1.1", "prettier": "^1.14.2", "semantic-release": "^15.13.3", "sinon": "^4.5.0", + "source-map-support": "^0.5.12", + "ts-node": "^8.1.0", "typescript": "^3.4.5" } } \ No newline at end of file diff --git a/test/mocha.opts b/test/mocha.opts new file mode 100644 index 00000000..d5169bfe --- /dev/null +++ b/test/mocha.opts @@ -0,0 +1,4 @@ +--require ts-node/register #replace with ts-node/register/transpile-only if you have custom types +--require source-map-support/register +--recursivee +test/unit/**/*.ts \ No newline at end of file diff --git a/test/unit/Address.js b/test/unit/Address.js deleted file mode 100644 index 60b71d4f..00000000 --- a/test/unit/Address.js +++ /dev/null @@ -1,1087 +0,0 @@ -const fixtures = require("./fixtures/Address.json") -const assert = require("assert") -const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() -const Address = require("../../lib/Address").Address -const axios = require("axios") -const sinon = require("sinon") -const Bitcoin = require("bitcoincashjs-lib") -const resturl = require("../../lib/BITBOX").resturl - -function flatten(arrays) { - return [].concat.apply([], arrays) -} - -const XPUBS = flatten([fixtures.mainnetXPub, fixtures.testnetXPub]) -const XPRIVS = flatten([fixtures.mainnetXPriv, fixtures.testnetXPriv]) - -const LEGACY_ADDRESSES = flatten([ - fixtures.legacyMainnetP2PKH, - fixtures.legacyMainnetP2SH, - fixtures.legacyTestnetP2PKH -]) - -const mainnet_xpubs = [] -fixtures.mainnetXPub.forEach((f, i) => { - mainnet_xpubs.push(f.xpub) -}) -const MAINNET_ADDRESSES = flatten([ - mainnet_xpubs, - fixtures.legacyMainnetP2PKH, - fixtures.legacyMainnetP2SH, - fixtures.cashaddrMainnetP2PKH -]) - -const testnet_xpubs = [] -fixtures.testnetXPub.forEach((f, i) => { - testnet_xpubs.push(f.xpub) -}) -const TESTNET_ADDRESSES = flatten([ - testnet_xpubs, - fixtures.legacyTestnetP2PKH, - fixtures.cashaddrTestnetP2PKH -]) - -const CASHADDR_ADDRESSES = flatten([ - fixtures.cashaddrMainnetP2PKH, - fixtures.cashaddrMainnetP2SH, - fixtures.cashaddrTestnetP2PKH -]) - -const CASHADDR_ADDRESSES_NO_PREFIX = CASHADDR_ADDRESSES.map(address => { - const parts = address.split(":") - return parts[1] -}) - -const REGTEST_ADDRESSES = fixtures.cashaddrRegTestP2PKH - -const REGTEST_ADDRESSES_NO_PREFIX = REGTEST_ADDRESSES.map(address => { - const parts = address.split(":") - return parts[1] -}) - -const HASH160_HASHES = flatten([ - fixtures.hash160MainnetP2PKH, - fixtures.hash160MainnetP2SH, - fixtures.hash160TestnetP2PKH -]) - -const P2PKH_ADDRESSES = flatten([ - fixtures.legacyMainnetP2PKH, - fixtures.legacyTestnetP2PKH, - fixtures.cashaddrMainnetP2PKH, - fixtures.cashaddrTestnetP2PKH, - fixtures.cashaddrRegTestP2PKH -]) - -const P2SH_ADDRESSES = flatten([ - fixtures.legacyMainnetP2SH, - fixtures.cashaddrMainnetP2SH -]) - -describe("#AddressConstructor", () => { - it("should create instance of Address", () => { - const address = new Address() - assert.equal(address instanceof Address, true) - }) - - it("should have a restURL property", () => { - const address = new Address() - assert.equal(address.restURL, resturl) - }) -}) - -describe("#addressConversion", () => { - describe("#toLegacyAddress", () => { - it("should translate legacy address format to itself correctly", () => { - assert.deepEqual( - LEGACY_ADDRESSES.map(address => - bitbox.Address.toLegacyAddress(address) - ), - LEGACY_ADDRESSES - ) - }) - - it("should convert cashaddr address to legacy base58Check", () => { - assert.deepEqual( - CASHADDR_ADDRESSES.map(address => - bitbox.Address.toLegacyAddress(address) - ), - LEGACY_ADDRESSES - ) - }) - - it("should convert cashaddr regtest address to legacy base58Check", () => { - assert.deepEqual( - REGTEST_ADDRESSES.map(address => - bitbox.Address.toLegacyAddress(address) - ), - fixtures.legacyTestnetP2PKH - ) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - bitbox.Address.toLegacyAddress() - }, bitbox.BitcoinCash.InvalidAddressError) - assert.throws(() => { - bitbox.Address.toLegacyAddress("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) - }) - }) - }) - - describe("#toCashAddress", () => { - it("should convert legacy base58Check address to cashaddr", () => { - assert.deepEqual( - LEGACY_ADDRESSES.map(address => - bitbox.Address.toCashAddress(address, true) - ), - CASHADDR_ADDRESSES - ) - }) - - it("should convert legacy base58Check address to regtest cashaddr", () => { - assert.deepEqual( - fixtures.legacyTestnetP2PKH.map(address => - bitbox.Address.toCashAddress(address, true, true) - ), - REGTEST_ADDRESSES - ) - }) - - it("should translate cashaddr address format to itself correctly", () => { - assert.deepEqual( - CASHADDR_ADDRESSES.map(address => - bitbox.Address.toCashAddress(address, true) - ), - CASHADDR_ADDRESSES - ) - }) - - it("should translate regtest cashaddr address format to itself correctly", () => { - assert.deepEqual( - REGTEST_ADDRESSES.map(address => - bitbox.Address.toCashAddress(address, true, true) - ), - REGTEST_ADDRESSES - ) - }) - - it("should translate no-prefix cashaddr address format to itself correctly", () => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(address => - bitbox.Address.toCashAddress(address, true) - ), - CASHADDR_ADDRESSES - ) - }) - - it("should translate no-prefix regtest cashaddr address format to itself correctly", () => { - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map(address => - bitbox.Address.toCashAddress(address, true, true) - ), - REGTEST_ADDRESSES - ) - }) - - it("should translate cashaddr address format to itself of no-prefix correctly", () => { - CASHADDR_ADDRESSES.forEach(address => { - const noPrefix = bitbox.Address.toCashAddress(address, false) - assert.equal(address.split(":")[1], noPrefix) - }) - }) - - it("should translate regtest cashaddr address format to itself of no-prefix correctly", () => { - REGTEST_ADDRESSES.forEach(address => { - const noPrefix = bitbox.Address.toCashAddress(address, false, true) - assert.equal(address.split(":")[1], noPrefix) - }) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - bitbox.BitcoinCash.Address.toCashAddress() - }, bitbox.BitcoinCash.InvalidAddressError) - assert.throws(() => { - bitbox.BitcoinCash.Address.toCashAddress("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) - }) - }) - }) - describe("#legacyToHash160", () => { - it("should convert legacy base58check address to hash160", () => { - assert.deepEqual( - LEGACY_ADDRESSES.map(address => - bitbox.Address.legacyToHash160(address) - ), - HASH160_HASHES - ) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - bitbox.Address.legacyToHash160() - }, bitbox.BitcoinCash.InvalidAddressError) - assert.throws(() => { - bitbox.Address.legacyToHash160("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) - }) - }) - }) - describe("#cashToHash160", () => { - it("should convert cashaddr address to hash160", () => { - assert.deepEqual( - CASHADDR_ADDRESSES.map(address => - bitbox.Address.cashToHash160(address) - ), - HASH160_HASHES - ) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - bitbox.Address.cashToHash160() - }, bitbox.BitcoinCash.InvalidAddressError) - assert.throws(() => { - bitbox.Address.cashToHash160("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) - }) - }) - }) - // describe("#regtestToHash160", () => { - // it("should convert regtest address to hash160", () => { - // assert.deepEqual( - // REGTEST_ADDRESSES.map(address => - // bitbox.Address.regtestToHash160(address) - // ), - // fixtures.hash160TestnetP2PKH - // ) - // }) - // - // describe("errors", () => { - // it("should fail when called with an invalid address", () => { - // assert.throws(() => { - // bitbox.Address.regtestToHash160() - // }, bitbox.BitcoinCash.InvalidAddressError) - // assert.throws(() => { - // bitbox.Address.regtestToHash160("some invalid address") - // }, bitbox.BitcoinCash.InvalidAddressError) - // }) - // }) - // }) - describe("#fromHash160", () => { - it("should convert hash160 to mainnet P2PKH legacy base58check address", () => { - assert.deepEqual( - fixtures.hash160MainnetP2PKH.map(hash160 => - bitbox.Address.hash160ToLegacy(hash160) - ), - fixtures.legacyMainnetP2PKH - ) - }) - - it("should convert hash160 to mainnet P2SH legacy base58check address", () => { - assert.deepEqual( - fixtures.hash160MainnetP2SH.map(hash160 => - bitbox.Address.hash160ToLegacy( - hash160, - Bitcoin.networks.bitcoin.scriptHash - ) - ), - fixtures.legacyMainnetP2SH - ) - }) - - it("should convert hash160 to testnet P2PKH legacy base58check address", () => { - assert.deepEqual( - fixtures.hash160TestnetP2PKH.map(hash160 => - bitbox.Address.hash160ToLegacy( - hash160, - Bitcoin.networks.testnet.pubKeyHash - ) - ), - fixtures.legacyTestnetP2PKH - ) - }) - - it("should convert hash160 to mainnet P2PKH cash address", () => { - assert.deepEqual( - fixtures.hash160MainnetP2PKH.map(hash160 => - bitbox.Address.hash160ToCash(hash160) - ), - fixtures.cashaddrMainnetP2PKH - ) - }) - - it("should convert hash160 to mainnet P2SH cash address", () => { - assert.deepEqual( - fixtures.hash160MainnetP2SH.map(hash160 => - bitbox.Address.hash160ToCash( - hash160, - Bitcoin.networks.bitcoin.scriptHash - ) - ), - fixtures.cashaddrMainnetP2SH - ) - }) - - it("should convert hash160 to testnet P2PKH cash address", () => { - assert.deepEqual( - fixtures.hash160TestnetP2PKH.map(hash160 => - bitbox.Address.hash160ToCash( - hash160, - Bitcoin.networks.testnet.pubKeyHash - ) - ), - fixtures.cashaddrTestnetP2PKH - ) - }) - - it("should convert hash160 to regtest P2PKH cash address", () => { - assert.deepEqual( - fixtures.hash160TestnetP2PKH.map(hash160 => - bitbox.Address.hash160ToCash( - hash160, - Bitcoin.networks.testnet.pubKeyHash, - true - ) - ), - REGTEST_ADDRESSES - ) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - bitbox.Address.hash160ToLegacy() - }, bitbox.BitcoinCash.InvalidAddressError) - assert.throws(() => { - bitbox.Address.hash160ToLegacy("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) - assert.throws(() => { - bitbox.Address.hash160ToCash() - }, bitbox.BitcoinCash.InvalidAddressError) - assert.throws(() => { - bitbox.Address.hash160ToCash("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) - }) - }) - }) -}) - -describe("address format detection", () => { - describe("#isLegacyAddress", () => { - describe("is legacy", () => { - LEGACY_ADDRESSES.forEach(address => { - it(`should detect ${address} is a legacy base58Check address`, () => { - const isBase58Check = bitbox.Address.isLegacyAddress(address) - assert.equal(isBase58Check, true) - }) - }) - }) - describe("is not legacy", () => { - CASHADDR_ADDRESSES.forEach(address => { - it(`should detect ${address} is not a legacy address`, () => { - const isBase58Check = bitbox.Address.isLegacyAddress(address) - assert.equal(isBase58Check, false) - }) - }) - - REGTEST_ADDRESSES.forEach(address => { - it(`should detect ${address} is not a legacy address`, () => { - const isBase58Check = bitbox.Address.isLegacyAddress(address) - assert.equal(isBase58Check, false) - }) - }) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - bitbox.Address.isLegacyAddress() - }, bitbox.BitcoinCash.InvalidAddressError) - assert.throws(() => { - bitbox.Address.isLegacyAddress("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) - }) - }) - }) - - describe("#isCashAddress", () => { - describe("is cashaddr", () => { - CASHADDR_ADDRESSES.forEach(address => { - it(`should detect ${address} is a cashaddr address`, () => { - const isCashaddr = bitbox.Address.isCashAddress(address) - assert.equal(isCashaddr, true) - }) - }) - - REGTEST_ADDRESSES.forEach(address => { - it(`should detect ${address} is a cashaddr address`, () => { - const isCashaddr = bitbox.Address.isCashAddress(address) - assert.equal(isCashaddr, true) - }) - }) - }) - - describe("is not cashaddr", () => { - LEGACY_ADDRESSES.forEach(address => { - it(`should detect ${address} is not a cashaddr address`, () => { - const isCashaddr = bitbox.Address.isCashAddress(address) - assert.equal(isCashaddr, false) - }) - }) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - bitbox.Address.isCashAddress() - }, bitbox.BitcoinCash.InvalidAddressError) - assert.throws(() => { - bitbox.Address.isCashAddress("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) - }) - }) - }) - describe("#isHash160", () => { - describe("is hash160", () => { - HASH160_HASHES.forEach(address => { - it(`should detect ${address} is a hash160 hash`, () => { - const isHash160 = bitbox.Address.isHash160(address) - assert.equal(isHash160, true) - }) - }) - }) - describe("is not hash160", () => { - LEGACY_ADDRESSES.forEach(address => { - it(`should detect ${address} is not a hash160 hash`, () => { - const isHash160 = bitbox.Address.isHash160(address) - assert.equal(isHash160, false) - }) - }) - - CASHADDR_ADDRESSES.forEach(address => { - it(`should detect ${address} is not a hash160 hash`, () => { - const isHash160 = bitbox.Address.isHash160(address) - assert.equal(isHash160, false) - }) - }) - - REGTEST_ADDRESSES.forEach(address => { - it(`should detect ${address} is not a legacy address`, () => { - const isHash160 = bitbox.Address.isHash160(address) - assert.equal(isHash160, false) - }) - }) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - bitbox.Address.isHash160() - }, bitbox.BitcoinCash.InvalidAddressError) - assert.throws(() => { - bitbox.Address.isHash160("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) - }) - }) - }) -}) - -describe("network detection", () => { - describe("#isMainnetAddress", () => { - describe("is mainnet", () => { - MAINNET_ADDRESSES.forEach(address => { - it(`should detect ${address} is a mainnet address`, () => { - const isMainnet = bitbox.Address.isMainnetAddress(address) - assert.equal(isMainnet, true) - }) - }) - }) - - describe("is not mainnet", () => { - TESTNET_ADDRESSES.forEach(address => { - it(`should detect ${address} is not a mainnet address`, () => { - const isMainnet = bitbox.Address.isMainnetAddress(address) - assert.equal(isMainnet, false) - }) - }) - - REGTEST_ADDRESSES.forEach(address => { - it(`should detect ${address} is not a mainnet address`, () => { - const isMainnet = bitbox.Address.isMainnetAddress(address) - assert.equal(isMainnet, false) - }) - }) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - bitbox.Address.isMainnetAddress() - }, bitbox.BitcoinCash.InvalidAddressError) - assert.throws(() => { - bitbox.Address.isMainnetAddress("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) - }) - }) - }) - - describe("#isTestnetAddress", () => { - describe("is testnet", () => { - TESTNET_ADDRESSES.forEach(address => { - it(`should detect ${address} is a testnet address`, () => { - const isTestnet = bitbox.Address.isTestnetAddress(address) - assert.equal(isTestnet, true) - }) - }) - }) - - describe("is not testnet", () => { - MAINNET_ADDRESSES.forEach(address => { - it(`should detect ${address} is not a testnet address`, () => { - const isTestnet = bitbox.Address.isTestnetAddress(address) - assert.equal(isTestnet, false) - }) - }) - - REGTEST_ADDRESSES.forEach(address => { - it(`should detect ${address} is not a testnet address`, () => { - const isTestnet = bitbox.Address.isTestnetAddress(address) - assert.equal(isTestnet, false) - }) - }) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - bitbox.Address.isTestnetAddress() - }, bitbox.BitcoinCash.InvalidAddressError) - assert.throws(() => { - bitbox.Address.isTestnetAddress("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) - }) - }) - }) - - describe("#isRegTestAddress", () => { - describe("is testnet", () => { - REGTEST_ADDRESSES.forEach(address => { - it(`should detect ${address} is a regtest address`, () => { - const isRegTest = bitbox.Address.isRegTestAddress(address) - assert.equal(isRegTest, true) - }) - }) - }) - - describe("is not testnet", () => { - MAINNET_ADDRESSES.forEach(address => { - it(`should detect ${address} is not a regtest address`, () => { - const isRegTest = bitbox.Address.isRegTestAddress(address) - assert.equal(isRegTest, false) - }) - }) - - TESTNET_ADDRESSES.forEach(address => { - it(`should detect ${address} is not a regtest address`, () => { - const isRegTest = bitbox.Address.isRegTestAddress(address) - assert.equal(isRegTest, false) - }) - }) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - bitbox.Address.isRegTestAddress() - }, bitbox.BitcoinCash.InvalidAddressError) - assert.throws(() => { - bitbox.Address.isRegTestAddress("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) - }) - }) - }) -}) - -describe("address type detection", () => { - describe("#isP2PKHAddress", () => { - describe("is P2PKH", () => { - P2PKH_ADDRESSES.forEach(address => { - it(`should detect ${address} is a P2PKH address`, () => { - const isP2PKH = bitbox.Address.isP2PKHAddress(address) - assert.equal(isP2PKH, true) - }) - }) - }) - - describe("is not P2PKH", () => { - P2SH_ADDRESSES.forEach(address => { - it(`should detect ${address} is not a P2PKH address`, () => { - const isP2PKH = bitbox.Address.isP2PKHAddress(address) - assert.equal(isP2PKH, false) - }) - }) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - bitbox.Address.isP2PKHAddress() - }, bitbox.BitcoinCash.InvalidAddressError) - assert.throws(() => { - bitbox.Address.isP2PKHAddress("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) - }) - }) - }) - - describe("#isP2SHAddress", () => { - describe("is P2SH", () => { - P2SH_ADDRESSES.forEach(address => { - it(`should detect ${address} is a P2SH address`, () => { - const isP2SH = bitbox.Address.isP2SHAddress(address) - assert.equal(isP2SH, true) - }) - }) - }) - - describe("is not P2SH", () => { - P2PKH_ADDRESSES.forEach(address => { - it(`should detect ${address} is not a P2SH address`, () => { - const isP2SH = bitbox.Address.isP2SHAddress(address) - assert.equal(isP2SH, false) - }) - }) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - bitbox.Address.isP2SHAddress() - }, bitbox.BitcoinCash.InvalidAddressError) - assert.throws(() => { - bitbox.Address.isP2SHAddress("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) - }) - }) - }) -}) - -describe("cashaddr prefix detection", () => { - it("should return the same result for detectAddressFormat", () => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(address => - bitbox.Address.detectAddressFormat(address) - ), - CASHADDR_ADDRESSES.map(address => - bitbox.Address.detectAddressFormat(address) - ) - ) - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map(address => - bitbox.Address.detectAddressFormat(address) - ), - REGTEST_ADDRESSES.map(address => - bitbox.Address.detectAddressFormat(address) - ) - ) - }) - it("should return the same result for detectAddressNetwork", () => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(address => - bitbox.Address.detectAddressNetwork(address) - ), - CASHADDR_ADDRESSES.map(address => - bitbox.Address.detectAddressNetwork(address) - ) - ) - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map(address => - bitbox.Address.detectAddressNetwork(address) - ), - REGTEST_ADDRESSES.map(address => - bitbox.Address.detectAddressNetwork(address) - ) - ) - }) - it("should return the same result for detectAddressType", () => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(address => - bitbox.Address.detectAddressType(address) - ), - CASHADDR_ADDRESSES.map(address => - bitbox.Address.detectAddressType(address) - ) - ) - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map(address => - bitbox.Address.detectAddressType(address) - ), - REGTEST_ADDRESSES.map(address => - bitbox.Address.detectAddressType(address) - ) - ) - }) - it("should return the same result for toLegacyAddress", () => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(address => - bitbox.Address.toLegacyAddress(address) - ), - CASHADDR_ADDRESSES.map(address => bitbox.Address.toLegacyAddress(address)) - ) - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map(address => - bitbox.Address.toLegacyAddress(address) - ), - REGTEST_ADDRESSES.map(address => bitbox.Address.toLegacyAddress(address)) - ) - }) - it("should return the same result for isLegacyAddress", () => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(address => - bitbox.Address.isLegacyAddress(address) - ), - CASHADDR_ADDRESSES.map(address => bitbox.Address.isLegacyAddress(address)) - ) - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map(address => - bitbox.Address.isLegacyAddress(address) - ), - REGTEST_ADDRESSES.map(address => bitbox.Address.isLegacyAddress(address)) - ) - }) - it("should return the same result for isCashAddress", () => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(address => - bitbox.Address.isCashAddress(address) - ), - CASHADDR_ADDRESSES.map(address => bitbox.Address.isCashAddress(address)) - ) - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map(address => - bitbox.Address.isCashAddress(address) - ), - REGTEST_ADDRESSES.map(address => bitbox.Address.isCashAddress(address)) - ) - }) - it("should return the same result for isMainnetAddress", () => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(address => - bitbox.Address.isMainnetAddress(address) - ), - CASHADDR_ADDRESSES.map(address => - bitbox.Address.isMainnetAddress(address) - ) - ) - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map(address => - bitbox.Address.isMainnetAddress(address) - ), - REGTEST_ADDRESSES.map(address => bitbox.Address.isMainnetAddress(address)) - ) - }) - it("should return the same result for isTestnetAddress", () => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(address => - bitbox.Address.isTestnetAddress(address) - ), - CASHADDR_ADDRESSES.map(address => - bitbox.Address.isTestnetAddress(address) - ) - ) - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map(address => - bitbox.Address.isTestnetAddress(address) - ), - REGTEST_ADDRESSES.map(address => bitbox.Address.isTestnetAddress(address)) - ) - }) - it("should return the same result for isP2PKHAddress", () => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(address => - bitbox.Address.isP2PKHAddress(address) - ), - CASHADDR_ADDRESSES.map(address => bitbox.Address.isP2PKHAddress(address)) - ) - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map(address => - bitbox.Address.isP2PKHAddress(address) - ), - REGTEST_ADDRESSES.map(address => bitbox.Address.isP2PKHAddress(address)) - ) - }) - it("should return the same result for isP2SHAddress", () => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map(address => - bitbox.Address.isP2SHAddress(address) - ), - CASHADDR_ADDRESSES.map(address => bitbox.Address.isP2SHAddress(address)) - ) - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map(address => - bitbox.Address.isP2SHAddress(address) - ), - REGTEST_ADDRESSES.map(address => bitbox.Address.isP2SHAddress(address)) - ) - }) -}) - -describe("#detectAddressFormat", () => { - LEGACY_ADDRESSES.forEach(address => { - it(`should detect ${address} is a legacy base58Check address`, () => { - const isBase58Check = bitbox.Address.detectAddressFormat(address) - assert.equal(isBase58Check, "legacy") - }) - }) - - CASHADDR_ADDRESSES.forEach(address => { - it(`should detect ${address} is a legacy cashaddr address`, () => { - const isCashaddr = bitbox.Address.detectAddressFormat(address) - assert.equal(isCashaddr, "cashaddr") - }) - }) - - REGTEST_ADDRESSES.forEach(address => { - it(`should detect ${address} is a legacy cashaddr address`, () => { - const isCashaddr = bitbox.Address.detectAddressFormat(address) - assert.equal(isCashaddr, "cashaddr") - }) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - bitbox.Address.detectAddressFormat() - }, bitbox.BitcoinCash.InvalidAddressError) - assert.throws(() => { - bitbox.Address.detectAddressFormat("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) - }) - }) -}) - -describe("#detectAddressNetwork", () => { - MAINNET_ADDRESSES.forEach(address => { - it(`should detect ${address} is a mainnet address`, () => { - const isMainnet = bitbox.Address.detectAddressNetwork(address) - assert.equal(isMainnet, "mainnet") - }) - }) - - TESTNET_ADDRESSES.forEach(address => { - it(`should detect ${address} is a testnet address`, () => { - const isTestnet = bitbox.Address.detectAddressNetwork(address) - assert.equal(isTestnet, "testnet") - }) - }) - - REGTEST_ADDRESSES.forEach(address => { - it(`should detect ${address} is a testnet address`, () => { - const isTestnet = bitbox.Address.detectAddressNetwork(address) - assert.equal(isTestnet, "regtest") - }) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - bitbox.Address.detectAddressNetwork() - }, bitbox.BitcoinCash.InvalidAddressError) - assert.throws(() => { - bitbox.Address.detectAddressNetwork("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) - }) - }) -}) - -describe("#detectAddressType", () => { - P2PKH_ADDRESSES.forEach(address => { - it(`should detect ${address} is a P2PKH address`, () => { - const isP2PKH = bitbox.Address.detectAddressType(address) - assert.equal(isP2PKH, "p2pkh") - }) - }) - - P2SH_ADDRESSES.forEach(address => { - it(`should detect ${address} is a P2SH address`, () => { - const isP2SH = bitbox.Address.detectAddressType(address) - assert.equal(isP2SH, "p2sh") - }) - }) - - describe("errors", () => { - it("should fail when called with an invalid address", () => { - assert.throws(() => { - bitbox.Address.detectAddressType() - }, bitbox.BitcoinCash.InvalidAddressError) - assert.throws(() => { - bitbox.Address.detectAddressType("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) - }) - }) -}) - -describe("#fromXPub", () => { - XPUBS.forEach((xpub, i) => { - xpub.addresses.forEach((address, j) => { - it(`generate public external change address ${j} for ${ - xpub.xpub - }`, () => { - assert.equal(bitbox.Address.fromXPub(xpub.xpub, `0/${j}`), address) - }) - }) - }) -}) - -describe("#fromXPriv", () => { - XPRIVS.forEach((xpriv, i) => { - xpriv.addresses.forEach((address, j) => { - it(`generate hardened address ${j} for ${xpriv.xpriv}`, () => { - assert.equal(bitbox.Address.fromXPriv(xpriv.xpriv, `0'/${j}`), address) - }) - }) - }) -}) - -describe("#fromOutputScript", () => { - const script = bitbox.Script.encode([ - Buffer.from("BOX", "ascii"), - bitbox.Script.opcodes.OP_CAT, - Buffer.from("BITBOX", "ascii"), - bitbox.Script.opcodes.OP_EQUAL - ]) - - // hash160 script buffer - const p2sh_hash160 = bitbox.Crypto.hash160(script) - - // encode hash160 as P2SH output - const scriptPubKey = bitbox.Script.scriptHash.output.encode(p2sh_hash160) - const p2shAddress = bitbox.Address.fromOutputScript(scriptPubKey) - fixtures.p2shMainnet.forEach((address, i) => { - it(`generate address from output script`, () => { - assert.equal(p2shAddress, address) - }) - }) -}) - -describe("#details", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get details", done => { - const data = { - legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", - cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", - balance: 300.0828874, - balanceSat: 30008288740, - totalReceived: 12945.45174649, - totalReceivedSat: 1294545174649, - totalSent: 12645.36885909, - totalSentSat: 1264536885909, - unconfirmedBalance: 0, - unconfirmedBalanceSat: 0, - unconfirmedTxApperances: 0, - txApperances: 1042, - transactions: [ - "b29425a876f62e114508e67e66b5eb1ab0d320d7c9a57fb0ece086a36e2b7309" - ] - } - - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Address.details( - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - ) - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) -}) - -describe("#utxo", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get utxo", done => { - const data = [ - { - legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", - cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", - txid: - "6f56254424378d6914cebd097579c70664843e5876ca86f0bf412ba7f3928326", - vout: 0, - scriptPubKey: "a91479cb06a5986baf588237de9b7fb1a8f68c35b76687", - amount: 12.5002911, - satoshis: 1250029110, - height: 528745, - confirmations: 17 - }, - { - legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", - cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", - txid: - "b29425a876f62e114508e67e66b5eb1ab0d320d7c9a57fb0ece086a36e2b7309", - vout: 0, - scriptPubKey: "a91479cb06a5986baf588237de9b7fb1a8f68c35b76687", - amount: 12.50069247, - satoshis: 1250069247, - height: 528744, - confirmations: 18 - } - ] - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Address.utxo( - "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l" - ) - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) -}) - -describe("#unconfirmed", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get unconfirmed transactions", done => { - const data = [ - { - txid: - "e0aadd861a06993e39af932bb0b9ad69e7b37ef5843a13c6724789e1c94f3513", - vout: 1, - scriptPubKey: "76a914a0f531f4ff810a415580c12e54a7072946bb927e88ac", - amount: 0.00008273, - satoshis: 8273, - confirmations: 0, - ts: 1526680569, - legacyAddress: "1Fg4r9iDrEkCcDmHTy2T79EusNfhyQpu7W", - cashAddress: "bitcoincash:qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c" - } - ] - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Address.unconfirmed( - "bitcoincash:qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c" - ) - .then(result => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) -}) diff --git a/test/unit/Address.ts b/test/unit/Address.ts new file mode 100644 index 00000000..167dffa8 --- /dev/null +++ b/test/unit/Address.ts @@ -0,0 +1,1091 @@ +import * as assert from "assert"; +import axios from "axios"; +import * as sinon from "sinon"; + +// TODO: port from require to import syntax +const fixtures = require("./fixtures/Address.json") +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() +const Address = require("../../lib/Address").Address +const Bitcoin = require("bitcoincashjs-lib") +const resturl = require("../../lib/BITBOX").resturl + +function flatten(arrays: any) { + return [].concat.apply([], arrays) +} + +const XPUBS: string[] = flatten([fixtures.mainnetXPub, fixtures.testnetXPub]) +const XPRIVS: string[] = flatten([fixtures.mainnetXPriv, fixtures.testnetXPriv]) + +const LEGACY_ADDRESSES: string[] = flatten([ + fixtures.legacyMainnetP2PKH, + fixtures.legacyMainnetP2SH, + fixtures.legacyTestnetP2PKH +]) + +const mainnet_xpubs: string[] = [] +fixtures.mainnetXPub.forEach((f: any) => { + mainnet_xpubs.push(f.xpub) +}) +const MAINNET_ADDRESSES: string[] = flatten([ + mainnet_xpubs, + fixtures.legacyMainnetP2PKH, + fixtures.legacyMainnetP2SH, + fixtures.cashaddrMainnetP2PKH +]) + +const testnet_xpubs: string[] = [] +fixtures.testnetXPub.forEach((f: any) => { + testnet_xpubs.push(f.xpub) +}) +const TESTNET_ADDRESSES: string[] = flatten([ + testnet_xpubs, + fixtures.legacyTestnetP2PKH, + fixtures.cashaddrTestnetP2PKH +]) + +const CASHADDR_ADDRESSES: string[] = flatten([ + fixtures.cashaddrMainnetP2PKH, + fixtures.cashaddrMainnetP2SH, + fixtures.cashaddrTestnetP2PKH +]) + +const CASHADDR_ADDRESSES_NO_PREFIX: string[] = CASHADDR_ADDRESSES.map((address: string) => { + const parts = address.split(":") + return parts[1] +}) + +const REGTEST_ADDRESSES: string[] = fixtures.cashaddrRegTestP2PKH + +const REGTEST_ADDRESSES_NO_PREFIX: string[] = REGTEST_ADDRESSES.map((address: string) => { + const parts = address.split(":") + return parts[1] +}) + +const HASH160_HASHES: string[] = flatten([ + fixtures.hash160MainnetP2PKH, + fixtures.hash160MainnetP2SH, + fixtures.hash160TestnetP2PKH +]) + +const P2PKH_ADDRESSES: string[] = flatten([ + fixtures.legacyMainnetP2PKH, + fixtures.legacyTestnetP2PKH, + fixtures.cashaddrMainnetP2PKH, + fixtures.cashaddrTestnetP2PKH, + fixtures.cashaddrRegTestP2PKH +]) + +const P2SH_ADDRESSES: string[] = flatten([ + fixtures.legacyMainnetP2SH, + fixtures.cashaddrMainnetP2SH +]) + +describe("#Address", () => { + describe("#AddressConstructor", () => { + it("should create instance of Address", () => { + const address = new Address() + assert.equal(address instanceof Address, true) + }) + + it("should have a restURL property", () => { + const address = new Address() + assert.equal(address.restURL, resturl) + }) + }) + + describe("#addressConversion", () => { + describe("#toLegacyAddress", () => { + it("should translate legacy address format to itself correctly", () => { + assert.deepEqual( + LEGACY_ADDRESSES.map((address: string) => + bitbox.Address.toLegacyAddress(address) + ), + LEGACY_ADDRESSES + ) + }) + + it("should convert cashaddr address to legacy base58Check", () => { + assert.deepEqual( + CASHADDR_ADDRESSES.map((address: string) => + bitbox.Address.toLegacyAddress(address) + ), + LEGACY_ADDRESSES + ) + }) + + it("should convert cashaddr regtest address to legacy base58Check", () => { + assert.deepEqual( + REGTEST_ADDRESSES.map((address: string) => + bitbox.Address.toLegacyAddress(address) + ), + fixtures.legacyTestnetP2PKH + ) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + bitbox.Address.toLegacyAddress() + }, bitbox.BitcoinCash.InvalidAddressError) + assert.throws(() => { + bitbox.Address.toLegacyAddress("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) + }) + }) + }) + + describe("#toCashAddress", () => { + it("should convert legacy base58Check address to cashaddr", () => { + assert.deepEqual( + LEGACY_ADDRESSES.map((address: string) => + bitbox.Address.toCashAddress(address, true) + ), + CASHADDR_ADDRESSES + ) + }) + + it("should convert legacy base58Check address to regtest cashaddr", () => { + assert.deepEqual( + fixtures.legacyTestnetP2PKH.map((address: string) => + bitbox.Address.toCashAddress(address, true, true) + ), + REGTEST_ADDRESSES + ) + }) + + it("should translate cashaddr address format to itself correctly", () => { + assert.deepEqual( + CASHADDR_ADDRESSES.map((address: string) => + bitbox.Address.toCashAddress(address, true) + ), + CASHADDR_ADDRESSES + ) + }) + + it("should translate regtest cashaddr address format to itself correctly", () => { + assert.deepEqual( + REGTEST_ADDRESSES.map((address: string) => + bitbox.Address.toCashAddress(address, true, true) + ), + REGTEST_ADDRESSES + ) + }) + + it("should translate no-prefix cashaddr address format to itself correctly", () => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.toCashAddress(address, true) + ), + CASHADDR_ADDRESSES + ) + }) + + it("should translate no-prefix regtest cashaddr address format to itself correctly", () => { + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.toCashAddress(address, true, true) + ), + REGTEST_ADDRESSES + ) + }) + + it("should translate cashaddr address format to itself of no-prefix correctly", () => { + CASHADDR_ADDRESSES.forEach((address: string) => { + const noPrefix = bitbox.Address.toCashAddress(address, false) + assert.equal(address.split(":")[1], noPrefix) + }) + }) + + it("should translate regtest cashaddr address format to itself of no-prefix correctly", () => { + REGTEST_ADDRESSES.forEach((address: string) => { + const noPrefix = bitbox.Address.toCashAddress(address, false, true) + assert.equal(address.split(":")[1], noPrefix) + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + bitbox.BitcoinCash.Address.toCashAddress() + }, bitbox.BitcoinCash.InvalidAddressError) + assert.throws(() => { + bitbox.BitcoinCash.Address.toCashAddress("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) + }) + }) + }) + describe("#legacyToHash160", () => { + it("should convert legacy base58check address to hash160", () => { + assert.deepEqual( + LEGACY_ADDRESSES.map((address: string) => + bitbox.Address.legacyToHash160(address) + ), + HASH160_HASHES + ) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + bitbox.Address.legacyToHash160() + }, bitbox.BitcoinCash.InvalidAddressError) + assert.throws(() => { + bitbox.Address.legacyToHash160("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) + }) + }) + }) + describe("#cashToHash160", () => { + it("should convert cashaddr address to hash160", () => { + assert.deepEqual( + CASHADDR_ADDRESSES.map((address: string) => + bitbox.Address.cashToHash160(address) + ), + HASH160_HASHES + ) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + bitbox.Address.cashToHash160() + }, bitbox.BitcoinCash.InvalidAddressError) + assert.throws(() => { + bitbox.Address.cashToHash160("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) + }) + }) + }) + // describe("#regtestToHash160", () => { + // it("should convert regtest address to hash160", () => { + // assert.deepEqual( + // REGTEST_ADDRESSES.map((address: string) => + // bitbox.Address.regtestToHash160(address) + // ), + // fixtures.hash160TestnetP2PKH + // ) + // }) + // + // describe("errors", () => { + // it("should fail when called with an invalid address", () => { + // assert.throws(() => { + // bitbox.Address.regtestToHash160() + // }, bitbox.BitcoinCash.InvalidAddressError) + // assert.throws(() => { + // bitbox.Address.regtestToHash160("some invalid address") + // }, bitbox.BitcoinCash.InvalidAddressError) + // }) + // }) + // }) + describe("#fromHash160", () => { + it("should convert hash160 to mainnet P2PKH legacy base58check address", () => { + assert.deepEqual( + fixtures.hash160MainnetP2PKH.map((hash160: string) => + bitbox.Address.hash160ToLegacy(hash160) + ), + fixtures.legacyMainnetP2PKH + ) + }) + + it("should convert hash160 to mainnet P2SH legacy base58check address", () => { + assert.deepEqual( + fixtures.hash160MainnetP2SH.map((hash160: string) => + bitbox.Address.hash160ToLegacy( + hash160, + Bitcoin.networks.bitcoin.scriptHash + ) + ), + fixtures.legacyMainnetP2SH + ) + }) + + it("should convert hash160 to testnet P2PKH legacy base58check address", () => { + assert.deepEqual( + fixtures.hash160TestnetP2PKH.map((hash160: string) => + bitbox.Address.hash160ToLegacy( + hash160, + Bitcoin.networks.testnet.pubKeyHash + ) + ), + fixtures.legacyTestnetP2PKH + ) + }) + + it("should convert hash160 to mainnet P2PKH cash address", () => { + assert.deepEqual( + fixtures.hash160MainnetP2PKH.map((hash160: string) => + bitbox.Address.hash160ToCash(hash160) + ), + fixtures.cashaddrMainnetP2PKH + ) + }) + + it("should convert hash160 to mainnet P2SH cash address", () => { + assert.deepEqual( + fixtures.hash160MainnetP2SH.map((hash160: string) => + bitbox.Address.hash160ToCash( + hash160, + Bitcoin.networks.bitcoin.scriptHash + ) + ), + fixtures.cashaddrMainnetP2SH + ) + }) + + it("should convert hash160 to testnet P2PKH cash address", () => { + assert.deepEqual( + fixtures.hash160TestnetP2PKH.map((hash160: string) => + bitbox.Address.hash160ToCash( + hash160, + Bitcoin.networks.testnet.pubKeyHash + ) + ), + fixtures.cashaddrTestnetP2PKH + ) + }) + + it("should convert hash160 to regtest P2PKH cash address", () => { + assert.deepEqual( + fixtures.hash160TestnetP2PKH.map((hash160: string) => + bitbox.Address.hash160ToCash( + hash160, + Bitcoin.networks.testnet.pubKeyHash, + true + ) + ), + REGTEST_ADDRESSES + ) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + bitbox.Address.hash160ToLegacy() + }, bitbox.BitcoinCash.InvalidAddressError) + assert.throws(() => { + bitbox.Address.hash160ToLegacy("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) + assert.throws(() => { + bitbox.Address.hash160ToCash() + }, bitbox.BitcoinCash.InvalidAddressError) + assert.throws(() => { + bitbox.Address.hash160ToCash("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) + }) + }) + }) + }) + + describe("address format detection", () => { + describe("#isLegacyAddress", () => { + describe("is legacy", () => { + LEGACY_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a legacy base58Check address`, () => { + const isBase58Check = bitbox.Address.isLegacyAddress(address) + assert.equal(isBase58Check, true) + }) + }) + }) + describe("is not legacy", () => { + CASHADDR_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is not a legacy address`, () => { + const isBase58Check = bitbox.Address.isLegacyAddress(address) + assert.equal(isBase58Check, false) + }) + }) + + REGTEST_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is not a legacy address`, () => { + const isBase58Check = bitbox.Address.isLegacyAddress(address) + assert.equal(isBase58Check, false) + }) + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + bitbox.Address.isLegacyAddress() + }, bitbox.BitcoinCash.InvalidAddressError) + assert.throws(() => { + bitbox.Address.isLegacyAddress("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) + }) + }) + }) + + describe("#isCashAddress", () => { + describe("is cashaddr", () => { + CASHADDR_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a cashaddr address`, () => { + const isCashaddr = bitbox.Address.isCashAddress(address) + assert.equal(isCashaddr, true) + }) + }) + + REGTEST_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a cashaddr address`, () => { + const isCashaddr = bitbox.Address.isCashAddress(address) + assert.equal(isCashaddr, true) + }) + }) + }) + + describe("is not cashaddr", () => { + LEGACY_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is not a cashaddr address`, () => { + const isCashaddr = bitbox.Address.isCashAddress(address) + assert.equal(isCashaddr, false) + }) + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + bitbox.Address.isCashAddress() + }, bitbox.BitcoinCash.InvalidAddressError) + assert.throws(() => { + bitbox.Address.isCashAddress("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) + }) + }) + }) + describe("#isHash160", () => { + describe("is hash160", () => { + HASH160_HASHES.forEach((address: string) => { + it(`should detect ${address} is a hash160 hash`, () => { + const isHash160 = bitbox.Address.isHash160(address) + assert.equal(isHash160, true) + }) + }) + }) + describe("is not hash160", () => { + LEGACY_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is not a hash160 hash`, () => { + const isHash160 = bitbox.Address.isHash160(address) + assert.equal(isHash160, false) + }) + }) + + CASHADDR_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is not a hash160 hash`, () => { + const isHash160 = bitbox.Address.isHash160(address) + assert.equal(isHash160, false) + }) + }) + + REGTEST_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is not a legacy address`, () => { + const isHash160 = bitbox.Address.isHash160(address) + assert.equal(isHash160, false) + }) + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + bitbox.Address.isHash160() + }, bitbox.BitcoinCash.InvalidAddressError) + assert.throws(() => { + bitbox.Address.isHash160("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) + }) + }) + }) + }) + + describe("network detection", () => { + describe("#isMainnetAddress", () => { + describe("is mainnet", () => { + MAINNET_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a mainnet address`, () => { + const isMainnet = bitbox.Address.isMainnetAddress(address) + assert.equal(isMainnet, true) + }) + }) + }) + + describe("is not mainnet", () => { + TESTNET_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is not a mainnet address`, () => { + const isMainnet = bitbox.Address.isMainnetAddress(address) + assert.equal(isMainnet, false) + }) + }) + + REGTEST_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is not a mainnet address`, () => { + const isMainnet = bitbox.Address.isMainnetAddress(address) + assert.equal(isMainnet, false) + }) + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + bitbox.Address.isMainnetAddress() + }, bitbox.BitcoinCash.InvalidAddressError) + assert.throws(() => { + bitbox.Address.isMainnetAddress("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) + }) + }) + }) + + describe("#isTestnetAddress", () => { + describe("is testnet", () => { + TESTNET_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a testnet address`, () => { + const isTestnet = bitbox.Address.isTestnetAddress(address) + assert.equal(isTestnet, true) + }) + }) + }) + + describe("is not testnet", () => { + MAINNET_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is not a testnet address`, () => { + const isTestnet = bitbox.Address.isTestnetAddress(address) + assert.equal(isTestnet, false) + }) + }) + + REGTEST_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is not a testnet address`, () => { + const isTestnet = bitbox.Address.isTestnetAddress(address) + assert.equal(isTestnet, false) + }) + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + bitbox.Address.isTestnetAddress() + }, bitbox.BitcoinCash.InvalidAddressError) + assert.throws(() => { + bitbox.Address.isTestnetAddress("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) + }) + }) + }) + + describe("#isRegTestAddress", () => { + describe("is testnet", () => { + REGTEST_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a regtest address`, () => { + const isRegTest = bitbox.Address.isRegTestAddress(address) + assert.equal(isRegTest, true) + }) + }) + }) + + describe("is not testnet", () => { + MAINNET_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is not a regtest address`, () => { + const isRegTest = bitbox.Address.isRegTestAddress(address) + assert.equal(isRegTest, false) + }) + }) + + TESTNET_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is not a regtest address`, () => { + const isRegTest = bitbox.Address.isRegTestAddress(address) + assert.equal(isRegTest, false) + }) + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + bitbox.Address.isRegTestAddress() + }, bitbox.BitcoinCash.InvalidAddressError) + assert.throws(() => { + bitbox.Address.isRegTestAddress("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) + }) + }) + }) + }) + + describe("address type detection", () => { + describe("#isP2PKHAddress", () => { + describe("is P2PKH", () => { + P2PKH_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a P2PKH address`, () => { + const isP2PKH = bitbox.Address.isP2PKHAddress(address) + assert.equal(isP2PKH, true) + }) + }) + }) + + describe("is not P2PKH", () => { + P2SH_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is not a P2PKH address`, () => { + const isP2PKH = bitbox.Address.isP2PKHAddress(address) + assert.equal(isP2PKH, false) + }) + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + bitbox.Address.isP2PKHAddress() + }, bitbox.BitcoinCash.InvalidAddressError) + assert.throws(() => { + bitbox.Address.isP2PKHAddress("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) + }) + }) + }) + + describe("#isP2SHAddress", () => { + describe("is P2SH", () => { + P2SH_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a P2SH address`, () => { + const isP2SH = bitbox.Address.isP2SHAddress(address) + assert.equal(isP2SH, true) + }) + }) + }) + + describe("is not P2SH", () => { + P2PKH_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is not a P2SH address`, () => { + const isP2SH = bitbox.Address.isP2SHAddress(address) + assert.equal(isP2SH, false) + }) + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + bitbox.Address.isP2SHAddress() + }, bitbox.BitcoinCash.InvalidAddressError) + assert.throws(() => { + bitbox.Address.isP2SHAddress("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) + }) + }) + }) + }) + + describe("cashaddr prefix detection", () => { + it("should return the same result for detectAddressFormat", () => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.detectAddressFormat(address) + ), + CASHADDR_ADDRESSES.map((address: string) => + bitbox.Address.detectAddressFormat(address) + ) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.detectAddressFormat(address) + ), + REGTEST_ADDRESSES.map((address: string) => + bitbox.Address.detectAddressFormat(address) + ) + ) + }) + it("should return the same result for detectAddressNetwork", () => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.detectAddressNetwork(address) + ), + CASHADDR_ADDRESSES.map((address: string) => + bitbox.Address.detectAddressNetwork(address) + ) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.detectAddressNetwork(address) + ), + REGTEST_ADDRESSES.map((address: string) => + bitbox.Address.detectAddressNetwork(address) + ) + ) + }) + it("should return the same result for detectAddressType", () => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.detectAddressType(address) + ), + CASHADDR_ADDRESSES.map((address: string) => + bitbox.Address.detectAddressType(address) + ) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.detectAddressType(address) + ), + REGTEST_ADDRESSES.map((address: string) => + bitbox.Address.detectAddressType(address) + ) + ) + }) + it("should return the same result for toLegacyAddress", () => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.toLegacyAddress(address) + ), + CASHADDR_ADDRESSES.map((address: string) => bitbox.Address.toLegacyAddress(address)) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.toLegacyAddress(address) + ), + REGTEST_ADDRESSES.map((address: string) => bitbox.Address.toLegacyAddress(address)) + ) + }) + it("should return the same result for isLegacyAddress", () => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.isLegacyAddress(address) + ), + CASHADDR_ADDRESSES.map((address: string) => bitbox.Address.isLegacyAddress(address)) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.isLegacyAddress(address) + ), + REGTEST_ADDRESSES.map((address: string) => bitbox.Address.isLegacyAddress(address)) + ) + }) + it("should return the same result for isCashAddress", () => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.isCashAddress(address) + ), + CASHADDR_ADDRESSES.map((address: string) => bitbox.Address.isCashAddress(address)) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.isCashAddress(address) + ), + REGTEST_ADDRESSES.map((address: string) => bitbox.Address.isCashAddress(address)) + ) + }) + it("should return the same result for isMainnetAddress", () => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.isMainnetAddress(address) + ), + CASHADDR_ADDRESSES.map((address: string) => + bitbox.Address.isMainnetAddress(address) + ) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.isMainnetAddress(address) + ), + REGTEST_ADDRESSES.map((address: string) => bitbox.Address.isMainnetAddress(address)) + ) + }) + it("should return the same result for isTestnetAddress", () => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.isTestnetAddress(address) + ), + CASHADDR_ADDRESSES.map((address: string) => + bitbox.Address.isTestnetAddress(address) + ) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.isTestnetAddress(address) + ), + REGTEST_ADDRESSES.map((address: string) => bitbox.Address.isTestnetAddress(address)) + ) + }) + it("should return the same result for isP2PKHAddress", () => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.isP2PKHAddress(address) + ), + CASHADDR_ADDRESSES.map((address: string) => bitbox.Address.isP2PKHAddress(address)) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.isP2PKHAddress(address) + ), + REGTEST_ADDRESSES.map((address: string) => bitbox.Address.isP2PKHAddress(address)) + ) + }) + it("should return the same result for isP2SHAddress", () => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.isP2SHAddress(address) + ), + CASHADDR_ADDRESSES.map((address: string) => bitbox.Address.isP2SHAddress(address)) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.isP2SHAddress(address) + ), + REGTEST_ADDRESSES.map((address: string) => bitbox.Address.isP2SHAddress(address)) + ) + }) + }) + + describe("#detectAddressFormat", () => { + LEGACY_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a legacy base58Check address`, () => { + const isBase58Check = bitbox.Address.detectAddressFormat(address) + assert.equal(isBase58Check, "legacy") + }) + }) + + CASHADDR_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a legacy cashaddr address`, () => { + const isCashaddr = bitbox.Address.detectAddressFormat(address) + assert.equal(isCashaddr, "cashaddr") + }) + }) + + REGTEST_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a legacy cashaddr address`, () => { + const isCashaddr = bitbox.Address.detectAddressFormat(address) + assert.equal(isCashaddr, "cashaddr") + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + bitbox.Address.detectAddressFormat() + }, bitbox.BitcoinCash.InvalidAddressError) + assert.throws(() => { + bitbox.Address.detectAddressFormat("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) + }) + }) + }) + + describe("#detectAddressNetwork", () => { + MAINNET_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a mainnet address`, () => { + const isMainnet = bitbox.Address.detectAddressNetwork(address) + assert.equal(isMainnet, "mainnet") + }) + }) + + TESTNET_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a testnet address`, () => { + const isTestnet = bitbox.Address.detectAddressNetwork(address) + assert.equal(isTestnet, "testnet") + }) + }) + + REGTEST_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a testnet address`, () => { + const isTestnet = bitbox.Address.detectAddressNetwork(address) + assert.equal(isTestnet, "regtest") + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + bitbox.Address.detectAddressNetwork() + }, bitbox.BitcoinCash.InvalidAddressError) + assert.throws(() => { + bitbox.Address.detectAddressNetwork("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) + }) + }) + }) + + describe("#detectAddressType", () => { + P2PKH_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a P2PKH address`, () => { + const isP2PKH: string = bitbox.Address.detectAddressType(address) + assert.equal(isP2PKH, "p2pkh") + }) + }) + + P2SH_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a P2SH address`, () => { + const isP2SH: string = bitbox.Address.detectAddressType(address) + assert.equal(isP2SH, "p2sh") + }) + }) + + describe("errors", () => { + it("should fail when called with an invalid address", () => { + assert.throws(() => { + bitbox.Address.detectAddressType() + }, bitbox.BitcoinCash.InvalidAddressError) + assert.throws(() => { + bitbox.Address.detectAddressType("some invalid address") + }, bitbox.BitcoinCash.InvalidAddressError) + }) + }) + }) + + describe("#fromXPub", () => { + XPUBS.forEach((xpub: any) => { + xpub.addresses.forEach((address: any, j: number) => { + it(`generate public external change address ${j} for ${ + xpub.xpub + }`, () => { + assert.equal(bitbox.Address.fromXPub(xpub.xpub, `0/${j}`), address) + }) + }) + }) + }) + + describe("#fromXPriv", () => { + XPRIVS.forEach((xpriv: any) => { + xpriv.addresses.forEach((address: string, j: number) => { + it(`generate hardened address ${j} for ${xpriv.xpriv}`, () => { + assert.equal(bitbox.Address.fromXPriv(xpriv.xpriv, `0'/${j}`), address) + }) + }) + }) + }) + + describe("#fromOutputScript", () => { + const script: any = bitbox.Script.encode([ + Buffer.from("BOX", "ascii"), + bitbox.Script.opcodes.OP_CAT, + Buffer.from("BITBOX", "ascii"), + bitbox.Script.opcodes.OP_EQUAL + ]) + + // hash160 script buffer + const p2sh_hash160: any = bitbox.Crypto.hash160(script) + + // encode hash160 as P2SH output + const scriptPubKey: any = bitbox.Script.scriptHash.output.encode(p2sh_hash160) + const p2shAddress: any = bitbox.Address.fromOutputScript(scriptPubKey) + fixtures.p2shMainnet.forEach((address: string) => { + it(`generate address from output script`, () => { + assert.equal(p2shAddress, address) + }) + }) + }) + + describe("#details", () => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get details", done => { + const data: any = { + legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", + cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", + balance: 300.0828874, + balanceSat: 30008288740, + totalReceived: 12945.45174649, + totalReceivedSat: 1294545174649, + totalSent: 12645.36885909, + totalSentSat: 1264536885909, + unconfirmedBalance: 0, + unconfirmedBalanceSat: 0, + unconfirmedTxApperances: 0, + txApperances: 1042, + transactions: [ + "b29425a876f62e114508e67e66b5eb1ab0d320d7c9a57fb0ece086a36e2b7309" + ] + } + + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Address.details( + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + ) + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#utxo", () => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get utxo", done => { + const data = [ + { + legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", + cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", + txid: + "6f56254424378d6914cebd097579c70664843e5876ca86f0bf412ba7f3928326", + vout: 0, + scriptPubKey: "a91479cb06a5986baf588237de9b7fb1a8f68c35b76687", + amount: 12.5002911, + satoshis: 1250029110, + height: 528745, + confirmations: 17 + }, + { + legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", + cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", + txid: + "b29425a876f62e114508e67e66b5eb1ab0d320d7c9a57fb0ece086a36e2b7309", + vout: 0, + scriptPubKey: "a91479cb06a5986baf588237de9b7fb1a8f68c35b76687", + amount: 12.50069247, + satoshis: 1250069247, + height: 528744, + confirmations: 18 + } + ] + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Address.utxo( + "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l" + ) + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#unconfirmed", () => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get unconfirmed transactions", done => { + const data = [ + { + txid: + "e0aadd861a06993e39af932bb0b9ad69e7b37ef5843a13c6724789e1c94f3513", + vout: 1, + scriptPubKey: "76a914a0f531f4ff810a415580c12e54a7072946bb927e88ac", + amount: 0.00008273, + satoshis: 8273, + confirmations: 0, + ts: 1526680569, + legacyAddress: "1Fg4r9iDrEkCcDmHTy2T79EusNfhyQpu7W", + cashAddress: "bitcoincash:qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c" + } + ] + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Address.unconfirmed( + "bitcoincash:qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c" + ) + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) +}) \ No newline at end of file diff --git a/test/unit/BITBOX.js b/test/unit/BITBOX.js deleted file mode 100644 index 0b71ae9e..00000000 --- a/test/unit/BITBOX.js +++ /dev/null @@ -1,106 +0,0 @@ -const assert = require("assert") -const BITBOX = require("../../lib/BITBOX").BITBOX -const BitcoinCash = require("../../lib/BitcoinCash").BitcoinCash -const Block = require("../../lib/Block").Block -const Blockchain = require("../../lib/Blockchain").Blockchain -const Control = require("../../lib/Control").Control -const Generating = require("../../lib/Generating").Generating -const HDNode = require("../../lib/HDNode").HDNode -const Mining = require("../../lib/Mining").Mining -const Mnemonic = require("../../lib/Mnemonic").Mnemonic -const Price = require("../../lib/Price").Price -const RawTransactions = require("../../lib/RawTransactions").RawTransactions -const Script = require("../../lib/Script").Script -const Transaction = require("../../lib/Transaction").Transaction -const Util = require("../../lib/Util").Util -const Schnorr = require("../../lib/Schnorr").Schnorr -const resturl = require("../../lib/BITBOX").resturl - -describe("#BITBOX", () => { - describe("#BITBOXConstructor", () => { - it("should create instance of BITBOX", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox instanceof BITBOX, true) - }) - - it("should have a restURL property", () => { - const bitbox = new BITBOX({ restURL: "https://rest.bitcoin.com/v2/" }) - assert.equal(bitbox.restURL, resturl) - }) - - it("should have a BitcoinCash property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.BitcoinCash instanceof BitcoinCash, true) - }) - - it("should have a BitcoinCash property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.BitcoinCash instanceof BitcoinCash, true) - }) - - it("should have a Block property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Block instanceof Block, true) - }) - - it("should have a Blockchain property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Blockchain instanceof Blockchain, true) - }) - - it("should have a Control property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Control instanceof Control, true) - }) - - it("should have a Generating property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Generating instanceof Generating, true) - }) - - it("should have a HDNode property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.HDNode instanceof HDNode, true) - }) - - it("should have a Mining property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Mining instanceof Mining, true) - }) - - it("should have a Mnemonic property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Mnemonic instanceof Mnemonic, true) - }) - - it("should have a Price property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Price instanceof Price, true) - }) - - it("should have a RawTransactions property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.RawTransactions instanceof RawTransactions, true) - }) - - it("should have a Script property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Script instanceof Script, true) - }) - - it("should have a Transaction property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Transaction instanceof Transaction, true) - }) - - it("should have a Util property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Util instanceof Util, true) - }) - - it("should have a Schnorr property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Schnorr instanceof Schnorr, true) - }) - }) -}) diff --git a/test/unit/BITBOX.ts b/test/unit/BITBOX.ts new file mode 100644 index 00000000..304d1b64 --- /dev/null +++ b/test/unit/BITBOX.ts @@ -0,0 +1,108 @@ +import * as assert from "assert"; + +// TODO: port from require to import syntax +const BITBOX = require("../../lib/BITBOX").BITBOX +const BitcoinCash = require("../../lib/BitcoinCash").BitcoinCash +const Block = require("../../lib/Block").Block +const Blockchain = require("../../lib/Blockchain").Blockchain +const Control = require("../../lib/Control").Control +const Generating = require("../../lib/Generating").Generating +const HDNode = require("../../lib/HDNode").HDNode +const Mining = require("../../lib/Mining").Mining +const Mnemonic = require("../../lib/Mnemonic").Mnemonic +const Price = require("../../lib/Price").Price +const RawTransactions = require("../../lib/RawTransactions").RawTransactions +const Script = require("../../lib/Script").Script +const Transaction = require("../../lib/Transaction").Transaction +const Util = require("../../lib/Util").Util +const Schnorr = require("../../lib/Schnorr").Schnorr +const resturl = require("../../lib/BITBOX").resturl + +describe("#BITBOX", () => { + describe("#BITBOXConstructor", () => { + it("should create instance of BITBOX", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox instanceof BITBOX, true) + }) + + it("should have a restURL property", () => { + const bitbox = new BITBOX({ restURL: "https://rest.bitcoin.com/v2/" }) + assert.equal(bitbox.restURL, resturl) + }) + + it("should have a BitcoinCash property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.BitcoinCash instanceof BitcoinCash, true) + }) + + it("should have a BitcoinCash property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.BitcoinCash instanceof BitcoinCash, true) + }) + + it("should have a Block property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Block instanceof Block, true) + }) + + it("should have a Blockchain property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Blockchain instanceof Blockchain, true) + }) + + it("should have a Control property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Control instanceof Control, true) + }) + + it("should have a Generating property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Generating instanceof Generating, true) + }) + + it("should have a HDNode property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.HDNode instanceof HDNode, true) + }) + + it("should have a Mining property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Mining instanceof Mining, true) + }) + + it("should have a Mnemonic property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Mnemonic instanceof Mnemonic, true) + }) + + it("should have a Price property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Price instanceof Price, true) + }) + + it("should have a RawTransactions property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.RawTransactions instanceof RawTransactions, true) + }) + + it("should have a Script property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Script instanceof Script, true) + }) + + it("should have a Transaction property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Transaction instanceof Transaction, true) + }) + + it("should have a Util property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Util instanceof Util, true) + }) + + it("should have a Schnorr property", () => { + const bitbox = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Schnorr instanceof Schnorr, true) + }) + }) +}) diff --git a/test/unit/BitcoinCash.js b/test/unit/BitcoinCash.ts similarity index 50% rename from test/unit/BitcoinCash.js rename to test/unit/BitcoinCash.ts index 6c555f57..64fc77a9 100644 --- a/test/unit/BitcoinCash.js +++ b/test/unit/BitcoinCash.ts @@ -1,5 +1,7 @@ +import * as assert from "assert"; + +// TODO: port from require to import syntax const fixtures = require("./fixtures/BitcoinCash.json") -const assert = require("assert") const BITBOX = require("../../lib/BITBOX").BITBOX const BitcoinCash = require("../../lib/BitcoinCash").BitcoinCash const bitbox = new BITBOX() @@ -31,31 +33,31 @@ describe("#BitcoinCash", () => { describe("price conversion", () => { describe("#toBitcoinCash", () => { - fixtures.conversion.toBCH.satoshis.forEach(satoshi => { + fixtures.conversion.toBCH.satoshis.forEach((satoshi: any) => { it(`should convert ${satoshi[0]} Satoshis to ${ satoshi[1] - } $BCH`, () => { - assert.equal(bitbox.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]) - }) + } $BCH`, () => { + assert.equal(bitbox.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]) + }) }) - fixtures.conversion.toBCH.strings.forEach(satoshi => { + fixtures.conversion.toBCH.strings.forEach((satoshi: any) => { it(`should convert "${satoshi[0]}" Satoshis as a string to ${ satoshi[1] - } $BCH`, () => { - assert.equal(bitbox.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]) - }) + } $BCH`, () => { + assert.equal(bitbox.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]) + }) }) - fixtures.conversion.toBCH.not.forEach(bch => { + fixtures.conversion.toBCH.not.forEach((bch: any) => { it(`converts ${bch[0]} to Bitcoin Cash, not to ${ bch[1] - } Satoshi`, () => { - assert.notEqual(bitbox.BitcoinCash.toBitcoinCash(bch[0]), bch[1]) - }) + } Satoshi`, () => { + assert.notEqual(bitbox.BitcoinCash.toBitcoinCash(bch[0]), bch[1]) + }) }) - fixtures.conversion.toBCH.rounding.forEach(satoshi => { + fixtures.conversion.toBCH.rounding.forEach((satoshi: any) => { it(`rounding ${satoshi[0]} to ${satoshi[1]} $BCH`, () => { assert.equal(bitbox.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]) }) @@ -63,29 +65,29 @@ describe("#BitcoinCash", () => { }) describe("#toSatoshi", () => { - fixtures.conversion.toSatoshi.bch.forEach(bch => { + fixtures.conversion.toSatoshi.bch.forEach((bch: any) => { it(`should convert ${bch[0]} $BCH to ${bch[1]} Satoshis`, () => { assert.equal(bitbox.BitcoinCash.toSatoshi(bch[0]), bch[1]) }) }) - fixtures.conversion.toSatoshi.strings.forEach(bch => { + fixtures.conversion.toSatoshi.strings.forEach((bch: any) => { it(`should convert "${bch[0]}" $BCH as a string to ${ bch[1] - } Satoshis`, () => { - assert.equal(bitbox.BitcoinCash.toSatoshi(bch[0]), bch[1]) - }) + } Satoshis`, () => { + assert.equal(bitbox.BitcoinCash.toSatoshi(bch[0]), bch[1]) + }) }) - fixtures.conversion.toSatoshi.not.forEach(satoshi => { + fixtures.conversion.toSatoshi.not.forEach((satoshi: any) => { it(`converts ${satoshi[0]} to Satoshi, not to ${ satoshi[1] - } Bitcoin Cash`, () => { - assert.notEqual(bitbox.BitcoinCash.toSatoshi(satoshi[0]), satoshi[1]) - }) + } Bitcoin Cash`, () => { + assert.notEqual(bitbox.BitcoinCash.toSatoshi(satoshi[0]), satoshi[1]) + }) }) - fixtures.conversion.toSatoshi.rounding.forEach(bch => { + fixtures.conversion.toSatoshi.rounding.forEach((bch: any) => { it(`rounding ${bch[0]} to ${bch[1]} Satoshi`, () => { assert.equal(bitbox.BitcoinCash.toSatoshi(bch[0]), bch[1]) }) @@ -94,7 +96,7 @@ describe("#BitcoinCash", () => { }) describe("#satsToBits", () => { - fixtures.conversion.satsToBits.bch.forEach(bch => { + fixtures.conversion.satsToBits.bch.forEach((bch: any) => { it(`should convert ${bch[0]} BCH to ${bch[1]} bits`, () => { assert.equal( bitbox.BitcoinCash.satsToBits(bitbox.BitcoinCash.toSatoshi(bch[0])), @@ -103,101 +105,101 @@ describe("#BitcoinCash", () => { }) }) - fixtures.conversion.satsToBits.strings.forEach(bch => { + fixtures.conversion.satsToBits.strings.forEach((bch: any) => { it(`should convert "${bch[0]}" BCH as a string to ${ bch[1] - } bits`, () => { - assert.equal( - bitbox.BitcoinCash.satsToBits(bitbox.BitcoinCash.toSatoshi(bch[0])), - bch[1] - ) - }) + } bits`, () => { + assert.equal( + bitbox.BitcoinCash.satsToBits(bitbox.BitcoinCash.toSatoshi(bch[0])), + bch[1] + ) + }) }) }) describe("sign and verify messages", () => { describe("#signMessageWithPrivKey", () => { - fixtures.signatures.sign.forEach(sign => { + fixtures.signatures.sign.forEach((sign: any) => { it(`should sign a message w/ ${sign.network} ${ sign.privateKeyWIF - }`, () => { - const privateKeyWIF = sign.privateKeyWIF - const message = sign.message - const signature = bitbox.BitcoinCash.signMessageWithPrivKey( - privateKeyWIF, - message - ) - assert.equal(signature, sign.signature) - }) + }`, () => { + const privateKeyWIF = sign.privateKeyWIF + const message = sign.message + const signature = bitbox.BitcoinCash.signMessageWithPrivKey( + privateKeyWIF, + message + ) + assert.equal(signature, sign.signature) + }) }) }) describe("#verifyMessage", () => { - fixtures.signatures.verify.forEach(sign => { + fixtures.signatures.verify.forEach((sign: any) => { it(`should verify a valid signed message from ${ sign.network - } cashaddr address ${sign.address}`, () => { - assert.equal( - bitbox.BitcoinCash.verifyMessage( - sign.address, - sign.signature, - sign.message - ), - true - ) - }) + } cashaddr address ${sign.address}`, () => { + assert.equal( + bitbox.BitcoinCash.verifyMessage( + sign.address, + sign.signature, + sign.message + ), + true + ) + }) }) - fixtures.signatures.verify.forEach(sign => { + fixtures.signatures.verify.forEach((sign: any) => { const legacyAddress = bitbox.Address.toLegacyAddress(sign.address) it(`should verify a valid signed message from ${ sign.network - } legacy address ${legacyAddress}`, () => { - assert.equal( - bitbox.BitcoinCash.verifyMessage( - legacyAddress, - sign.signature, - sign.message - ), - true - ) - }) + } legacy address ${legacyAddress}`, () => { + assert.equal( + bitbox.BitcoinCash.verifyMessage( + legacyAddress, + sign.signature, + sign.message + ), + true + ) + }) }) - fixtures.signatures.verify.forEach(sign => { + fixtures.signatures.verify.forEach((sign: any) => { const legacyAddress = bitbox.Address.toLegacyAddress(sign.address) it(`should not verify an invalid signed message from ${ sign.network - } cashaddr address ${sign.address}`, () => { - assert.equal( - bitbox.BitcoinCash.verifyMessage( - sign.address, - sign.signature, - "nope" - ), - false - ) - }) + } cashaddr address ${sign.address}`, () => { + assert.equal( + bitbox.BitcoinCash.verifyMessage( + sign.address, + sign.signature, + "nope" + ), + false + ) + }) }) }) }) describe("encode and decode to base58Check", () => { describe("#encodeBase58Check", () => { - fixtures.encodeBase58Check.forEach((base58Check, i) => { + fixtures.encodeBase58Check.forEach((base58Check: any) => { it(`encode ${base58Check.hex} as base58Check ${ base58Check.base58Check - }`, () => { - assert.equal( - bitbox.BitcoinCash.encodeBase58Check(base58Check.hex), - base58Check.base58Check - ) - }) + }`, () => { + assert.equal( + bitbox.BitcoinCash.encodeBase58Check(base58Check.hex), + base58Check.base58Check + ) + }) }) }) describe("#decodeBase58Check", () => { - fixtures.encodeBase58Check.forEach((base58Check, i) => { + fixtures.encodeBase58Check.forEach((base58Check: any) => { it(`decode ${base58Check.base58Check} as ${base58Check.hex}`, () => { assert.equal( bitbox.BitcoinCash.decodeBase58Check(base58Check.base58Check), @@ -210,7 +212,7 @@ describe("#BitcoinCash", () => { describe("encode and decode BIP21 urls", () => { describe("#encodeBIP21", () => { - fixtures.bip21.valid.forEach((bip21, i) => { + fixtures.bip21.valid.forEach((bip21: any) => { it(`encode ${bip21.address} as url`, () => { const url = bitbox.BitcoinCash.encodeBIP21( bip21.address, @@ -219,7 +221,7 @@ describe("#BitcoinCash", () => { assert.equal(url, bip21.url) }) }) - fixtures.bip21.valid_regtest.forEach((bip21, i) => { + fixtures.bip21.valid_regtest.forEach((bip21: any) => { it(`encode ${bip21.address} as url`, () => { const url = bitbox.BitcoinCash.encodeBIP21( bip21.address, @@ -232,7 +234,7 @@ describe("#BitcoinCash", () => { }) describe("#decodeBIP21", () => { - fixtures.bip21.valid.forEach((bip21, i) => { + fixtures.bip21.valid.forEach((bip21: any) => { it(`decodes ${bip21.url}`, () => { const decoded = bitbox.BitcoinCash.decodeBIP21(bip21.url) assert.equal(decoded.options.amount, bip21.options.amount) @@ -258,7 +260,7 @@ describe("#BitcoinCash", () => { }) describe("#getByteCount", () => { - fixtures.getByteCount.forEach(fixture => { + fixtures.getByteCount.forEach((fixture: any) => { it(`get byte count`, () => { const byteCount = bitbox.BitcoinCash.getByteCount( fixture.inputs, @@ -269,59 +271,59 @@ describe("#BitcoinCash", () => { }) }) - describe("#bip38", () => { - describe("#encryptBIP38", () => { - fixtures.bip38.encrypt.mainnet.forEach(fixture => { - it(`BIP 38 encrypt wif ${fixture.wif} with password ${ - fixture.password - } on mainnet`, () => { - const encryptedKey = bitbox.BitcoinCash.encryptBIP38( - fixture.wif, - fixture.password - ) - assert.equal(encryptedKey, fixture.encryptedKey) - }) - }) + // describe("#bip38", () => { + // describe("#encryptBIP38", () => { + // fixtures.bip38.encrypt.mainnet.forEach((fixture: any) => { + // it(`BIP 38 encrypt wif ${fixture.wif} with password ${ + // fixture.password + // } on mainnet`, () => { + // const encryptedKey = bitbox.BitcoinCash.encryptBIP38( + // fixture.wif, + // fixture.password + // ) + // assert.equal(encryptedKey, fixture.encryptedKey) + // }) + // }) - fixtures.bip38.encrypt.testnet.forEach(fixture => { - it(`BIP 38 encrypt wif ${fixture.wif} with password ${ - fixture.password - } on testnet`, () => { - const encryptedKey = bitbox.BitcoinCash.encryptBIP38( - fixture.wif, - fixture.password - ) - assert.equal(encryptedKey, fixture.encryptedKey) - }) - }) - }) + // fixtures.bip38.encrypt.testnet.forEach((fixture: any) => { + // it(`BIP 38 encrypt wif ${fixture.wif} with password ${ + // fixture.password + // } on testnet`, () => { + // const encryptedKey = bitbox.BitcoinCash.encryptBIP38( + // fixture.wif, + // fixture.password + // ) + // assert.equal(encryptedKey, fixture.encryptedKey) + // }) + // }) + // }) - describe("#decryptBIP38", () => { - fixtures.bip38.decrypt.mainnet.forEach(fixture => { - it(`BIP 38 decrypt encrypted key ${ - fixture.encryptedKey - } on mainnet`, () => { - const wif = bitbox.BitcoinCash.decryptBIP38( - fixture.encryptedKey, - fixture.password, - "mainnet" - ) - assert.equal(wif, fixture.wif) - }) - }) + // describe("#decryptBIP38", () => { + // fixtures.bip38.decrypt.mainnet.forEach((fixture: any) => { + // it(`BIP 38 decrypt encrypted key ${ + // fixture.encryptedKey + // } on mainnet`, () => { + // const wif = bitbox.BitcoinCash.decryptBIP38( + // fixture.encryptedKey, + // fixture.password, + // "mainnet" + // ) + // assert.equal(wif, fixture.wif) + // }) + // }) - fixtures.bip38.decrypt.testnet.forEach(fixture => { - it(`BIP 38 decrypt encrypted key ${ - fixture.encryptedKey - } on testnet`, () => { - const wif = bitbox.BitcoinCash.decryptBIP38( - fixture.encryptedKey, - fixture.password, - "testnet" - ) - assert.equal(wif, fixture.wif) - }) - }) - }) - }) + // fixtures.bip38.decrypt.testnet.forEach((fixture: any) => { + // it(`BIP 38 decrypt encrypted key ${ + // fixture.encryptedKey + // } on testnet`, () => { + // const wif = bitbox.BitcoinCash.decryptBIP38( + // fixture.encryptedKey, + // fixture.password, + // "testnet" + // ) + // assert.equal(wif, fixture.wif) + // }) + // }) + // }) + // }) }) diff --git a/test/unit/Block.js b/test/unit/Block.ts similarity index 94% rename from test/unit/Block.js rename to test/unit/Block.ts index 458db8db..68191bc7 100644 --- a/test/unit/Block.js +++ b/test/unit/Block.ts @@ -1,9 +1,11 @@ -const assert = require("assert") +import * as assert from "assert"; +import axios from "axios"; +import * as sinon from "sinon"; + +// TODO: port from require to import syntax const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() const Block = require("../../lib/Block").Block -const axios = require("axios") -const sinon = require("sinon") const resturl = require("../../lib/BITBOX").resturl describe("#Block", () => { @@ -20,7 +22,7 @@ describe("#Block", () => { }) describe("#detailsByHash", () => { - let sandbox + let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) @@ -63,7 +65,7 @@ describe("#Block", () => { }) describe("#detailsByHeight", () => { - let sandbox + let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) diff --git a/test/unit/Blockchain.js b/test/unit/Blockchain.ts similarity index 92% rename from test/unit/Blockchain.js rename to test/unit/Blockchain.ts index bcc4fcc3..286d3959 100644 --- a/test/unit/Blockchain.js +++ b/test/unit/Blockchain.ts @@ -1,9 +1,11 @@ -const assert = require("assert") -const axios = require("axios") +import * as assert from "assert"; +import axios from "axios"; +import * as sinon from "sinon"; + +// TODO: port from require to import syntax const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() const Blockchain = require("../../lib/Blockchain").Blockchain -const sinon = require("sinon") const resturl = require("../../lib/BITBOX").resturl describe("#Blockchain", () => { @@ -20,7 +22,7 @@ describe("#Blockchain", () => { }) describe("#getBestBlockHash", () => { - let sandbox + let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) @@ -34,7 +36,7 @@ describe("#Blockchain", () => { sandbox.stub(axios, "get").returns(resolved) bitbox.Blockchain.getBestBlockHash() - .then(result => { + .then((result: any) => { const hash = "0000000000000000005f1f550d3d8b142b684277016ebd00fa29c668606ae52d" assert.equal(hash, result) @@ -44,7 +46,7 @@ describe("#Blockchain", () => { }) describe("#getBlock", () => { - let sandbox + let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) const data = { @@ -77,7 +79,7 @@ describe("#Blockchain", () => { bitbox.Blockchain.getBlock( "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09" ) - .then(result => { + .then((result: any) => { assert.deepEqual(data, result) }) .then(done, done) @@ -85,7 +87,7 @@ describe("#Blockchain", () => { }) describe("#getBlockchainInfo", () => { - let sandbox + let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) const data = { @@ -120,7 +122,7 @@ describe("#Blockchain", () => { sandbox.stub(axios, "get").returns(resolved) bitbox.Blockchain.getBlockchainInfo() - .then(result => { + .then((result: any) => { assert.deepEqual(data, result) }) .then(done, done) @@ -128,7 +130,7 @@ describe("#Blockchain", () => { }) describe("#getBlockCount", () => { - let sandbox + let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) const data = 527810 @@ -138,7 +140,7 @@ describe("#Blockchain", () => { sandbox.stub(axios, "get").returns(resolved) bitbox.Blockchain.getBlockCount() - .then(result => { + .then((result: any) => { assert.deepEqual(data, result) }) .then(done, done) @@ -146,7 +148,7 @@ describe("#Blockchain", () => { }) describe("#getBlockHash", () => { - let sandbox + let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) const data = @@ -157,7 +159,7 @@ describe("#Blockchain", () => { sandbox.stub(axios, "get").returns(resolved) bitbox.Blockchain.getBlockHash(527810) - .then(result => { + .then((result: any) => { assert.deepEqual(data, result) }) .then(done, done) @@ -165,7 +167,7 @@ describe("#Blockchain", () => { }) describe("#getBlockHeader", () => { - let sandbox + let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) const data = { @@ -195,7 +197,7 @@ describe("#Blockchain", () => { "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0", true ) - .then(result => { + .then((result: any) => { assert.deepEqual(data, result) }) .then(done, done) @@ -203,7 +205,7 @@ describe("#Blockchain", () => { }) describe("#getDifficulty", () => { - let sandbox + let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) const data = "577528469277.1339" @@ -213,7 +215,7 @@ describe("#Blockchain", () => { sandbox.stub(axios, "get").returns(resolved) bitbox.Blockchain.getDifficulty() - .then(result => { + .then((result: any) => { assert.deepEqual(data, result) }) .then(done, done) @@ -221,7 +223,7 @@ describe("#Blockchain", () => { }) describe("#getMempoolAncestors", () => { - let sandbox + let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) const data = "Transaction not in mempool" @@ -234,7 +236,7 @@ describe("#Blockchain", () => { "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", true ) - .then(result => { + .then((result: any) => { assert.deepEqual(data, result) }) .then(done, done) @@ -242,7 +244,7 @@ describe("#Blockchain", () => { }) describe("#getMempoolDescendants", () => { - let sandbox + let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) const data = { @@ -257,7 +259,7 @@ describe("#Blockchain", () => { "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", true ) - .then(result => { + .then((result: any) => { assert.deepEqual(data, result) }) .then(done, done) @@ -265,7 +267,7 @@ describe("#Blockchain", () => { }) describe("#getMempoolEntry", () => { - let sandbox + let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) const data = { @@ -279,7 +281,7 @@ describe("#Blockchain", () => { bitbox.Blockchain.getMempoolEntry( "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88" ) - .then(result => { + .then((result: any) => { assert.deepEqual(data, result) }) .then(done, done) @@ -287,7 +289,7 @@ describe("#Blockchain", () => { }) describe("#getMempoolInfo", () => { - let sandbox + let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) const data = { @@ -305,7 +307,7 @@ describe("#Blockchain", () => { sandbox.stub(axios, "get").returns(resolved) bitbox.Blockchain.getMempoolInfo() - .then(result => { + .then((result: any) => { assert.deepEqual(data, result) }) .then(done, done) @@ -313,7 +315,7 @@ describe("#Blockchain", () => { }) describe("#getRawMempool", () => { - let sandbox + let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) const data = { @@ -346,7 +348,7 @@ describe("#Blockchain", () => { sandbox.stub(axios, "get").returns(resolved) bitbox.Blockchain.getRawMempool() - .then(result => { + .then((result: any) => { assert.deepEqual(data, result) }) .then(done, done) @@ -355,7 +357,7 @@ describe("#Blockchain", () => { describe("#getTxOut", () => { // TODO finish this test - let sandbox + let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) const data = { @@ -371,7 +373,7 @@ describe("#Blockchain", () => { 0, true ) - .then(result => { + .then((result: any) => { assert.deepEqual(data, result) }) .then(done, done) @@ -380,7 +382,7 @@ describe("#Blockchain", () => { describe("#preciousBlock", () => { // TODO finish this test - let sandbox + let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) const data = { @@ -392,7 +394,7 @@ describe("#Blockchain", () => { sandbox.stub(axios, "get").returns(resolved) bitbox.Blockchain.preciousBlock() - .then(result => { + .then((result: any) => { assert.deepEqual(data, result) }) .then(done, done) @@ -400,7 +402,7 @@ describe("#Blockchain", () => { }) describe("#pruneBlockchain", () => { - let sandbox + let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) const data = "Cannot prune blocks because node is not in prune mode." @@ -410,7 +412,7 @@ describe("#Blockchain", () => { sandbox.stub(axios, "post").returns(resolved) bitbox.Blockchain.pruneBlockchain(507) - .then(result => { + .then((result: any) => { assert.deepEqual(data, result) }) .then(done, done) @@ -418,7 +420,7 @@ describe("#Blockchain", () => { }) describe("#verifyChain", () => { - let sandbox + let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) const data = true @@ -428,7 +430,7 @@ describe("#Blockchain", () => { sandbox.stub(axios, "get").returns(resolved) bitbox.Blockchain.verifyChain(3, 6) - .then(result => { + .then((result: any) => { assert.deepEqual(data, result) }) .then(done, done) @@ -436,7 +438,7 @@ describe("#Blockchain", () => { }) describe("#verifyTxOutProof", () => { - let sandbox + let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) const data = "proof must be hexadecimal string (not '')" @@ -446,7 +448,7 @@ describe("#Blockchain", () => { sandbox.stub(axios, "get").returns(resolved) bitbox.Blockchain.verifyTxOutProof("3") - .then(result => { + .then((result: any) => { assert.deepEqual(data, result) }) .then(done, done) diff --git a/test/unit/Control.js b/test/unit/Control.ts similarity index 88% rename from test/unit/Control.js rename to test/unit/Control.ts index d6ca022c..14fb9a02 100644 --- a/test/unit/Control.js +++ b/test/unit/Control.ts @@ -1,9 +1,11 @@ -const assert = require("assert") -const axios = require("axios") +import * as assert from "assert"; +import axios from "axios"; +import * as sinon from "sinon"; + +// TODO: port from require to import syntax const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() const Control = require("../../lib/Control").Control -const sinon = require("sinon") const resturl = require("../../lib/BITBOX").resturl describe("#Control", () => { @@ -20,7 +22,7 @@ describe("#Control", () => { }) describe("#getInfo", () => { - let sandbox + let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) @@ -42,7 +44,7 @@ describe("#Control", () => { sandbox.stub(axios, "get").returns(resolved) bitbox.Control.getInfo() - .then(result => { + .then((result: any) => { assert.deepEqual(data, result) }) .then(done, done) @@ -50,7 +52,7 @@ describe("#Control", () => { }) describe("#getMemoryInfo", () => { - let sandbox + let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) @@ -69,7 +71,7 @@ describe("#Control", () => { sandbox.stub(axios, "get").returns(resolved) bitbox.Control.getMemoryInfo() - .then(result => { + .then((result: any) => { assert.deepEqual(data, result) }) .then(done, done) diff --git a/test/unit/Crypto.js b/test/unit/Crypto.ts similarity index 70% rename from test/unit/Crypto.js rename to test/unit/Crypto.ts index 1b3ac39e..1e2fa573 100644 --- a/test/unit/Crypto.js +++ b/test/unit/Crypto.ts @@ -1,5 +1,7 @@ +import * as assert from "assert"; + +// TODO: port from require to import syntax const fixtures = require("./fixtures/Crypto.json") -const assert = require("assert") const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() const Crypto = require("../../lib/Crypto").Control @@ -7,14 +9,14 @@ const Buffer = require("safe-buffer").Buffer describe("#Crypto", () => { describe("#sha1", () => { - fixtures.sha1.forEach(fixture => { + fixtures.sha1.forEach((fixture: any) => { it(`should create SHA1 Hash hex encoded ${fixture.hash} from ${ fixture.hex - }`, () => { - const data = Buffer.from(fixture.hex, "hex") - const sha1Hash = bitbox.Crypto.sha1(data).toString("hex") - assert.equal(sha1Hash, fixture.hash) - }) + }`, () => { + const data = Buffer.from(fixture.hex, "hex") + const sha1Hash = bitbox.Crypto.sha1(data).toString("hex") + assert.equal(sha1Hash, fixture.hash) + }) it(`should create 40 character SHA1 Hash hex encoded`, () => { const data = Buffer.from(fixture.hex, "hex") @@ -25,14 +27,14 @@ describe("#Crypto", () => { }) describe("#sha256", () => { - fixtures.sha256.forEach(fixture => { + fixtures.sha256.forEach((fixture: any) => { it(`should create SHA256 Hash hex encoded ${fixture.hash} from ${ fixture.hex - }`, () => { - const data = Buffer.from(fixture.hex, "hex") - const sha256Hash = bitbox.Crypto.sha256(data).toString("hex") - assert.equal(sha256Hash, fixture.hash) - }) + }`, () => { + const data = Buffer.from(fixture.hex, "hex") + const sha256Hash = bitbox.Crypto.sha256(data).toString("hex") + assert.equal(sha256Hash, fixture.hash) + }) it(`should create 64 character SHA256Hash hex encoded`, () => { const data = Buffer.from(fixture.hex, "hex") @@ -43,14 +45,14 @@ describe("#Crypto", () => { }) describe("#ripemd160", () => { - fixtures.ripemd160.forEach(fixture => { + fixtures.ripemd160.forEach((fixture: any) => { it(`should create RIPEMD160 Hash hex encoded ${fixture.hash} from ${ fixture.hex - }`, () => { - const data = Buffer.from(fixture.hex, "hex") - const ripemd160 = bitbox.Crypto.ripemd160(data).toString("hex") - assert.equal(ripemd160, fixture.hash) - }) + }`, () => { + const data = Buffer.from(fixture.hex, "hex") + const ripemd160 = bitbox.Crypto.ripemd160(data).toString("hex") + assert.equal(ripemd160, fixture.hash) + }) it(`should create 64 character RIPEMD160Hash hex encoded`, () => { const data = Buffer.from(fixture.hex, "hex") @@ -61,14 +63,14 @@ describe("#Crypto", () => { }) describe("#hash256", () => { - fixtures.hash256.forEach(fixture => { + fixtures.hash256.forEach((fixture: any) => { it(`should create double SHA256 Hash hex encoded ${fixture.hash} from ${ fixture.hex - }`, () => { - const data = Buffer.from(fixture.hex, "hex") - const hash256 = bitbox.Crypto.hash256(data).toString("hex") - assert.equal(hash256, fixture.hash) - }) + }`, () => { + const data = Buffer.from(fixture.hex, "hex") + const hash256 = bitbox.Crypto.hash256(data).toString("hex") + assert.equal(hash256, fixture.hash) + }) it(`should create 64 character SHA256 Hash hex encoded`, () => { const data = Buffer.from(fixture.hex, "hex") @@ -79,14 +81,14 @@ describe("#Crypto", () => { }) describe("#hash160", () => { - fixtures.hash160.forEach(fixture => { + fixtures.hash160.forEach((fixture: any) => { it(`should create RIPEMD160(SHA256()) hex encoded ${fixture.hash} from ${ fixture.hex - }`, () => { - const data = Buffer.from(fixture.hex, "hex") - const hash160 = bitbox.Crypto.hash160(data).toString("hex") - assert.equal(hash160, fixture.hash) - }) + }`, () => { + const data = Buffer.from(fixture.hex, "hex") + const hash160 = bitbox.Crypto.hash160(data).toString("hex") + assert.equal(hash160, fixture.hash) + }) it(`should create 64 character SHA256Hash hex encoded`, () => { const data = Buffer.from(fixture.hex, "hex") diff --git a/test/unit/ECPair.js b/test/unit/ECPair.ts similarity index 77% rename from test/unit/ECPair.js rename to test/unit/ECPair.ts index 99bbbcb9..8303f3be 100644 --- a/test/unit/ECPair.js +++ b/test/unit/ECPair.ts @@ -1,5 +1,7 @@ +import * as assert from "assert"; + +// TODO: port from require to import syntax const fixtures = require("./fixtures/ECPair.json") -const assert = require("assert") const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() const ECPair = require("../../lib/ECPair").ECPair @@ -14,7 +16,7 @@ describe("#ECPair", () => { }) describe("#fromWIF", () => { - fixtures.fromWIF.forEach(fixture => { + fixtures.fromWIF.forEach((fixture: any) => { it(`should create ECPair from WIF ${fixture.privateKeyWIF}`, () => { const ecpair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) assert.equal(typeof ecpair, "object") @@ -41,7 +43,7 @@ describe("#ECPair", () => { }) describe("#toWIF", () => { - fixtures.toWIF.forEach(fixture => { + fixtures.toWIF.forEach((fixture: any) => { it(`should get WIF ${fixture.privateKeyWIF} from ECPair`, () => { const ecpair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) const wif = bitbox.ECPair.toWIF(ecpair) @@ -51,7 +53,7 @@ describe("#ECPair", () => { }) describe("#fromPublicKey", () => { - fixtures.fromPublicKey.forEach(fixture => { + fixtures.fromPublicKey.forEach((fixture: any) => { it(`should create ECPair from public key buffer`, () => { const ecpair = bitbox.ECPair.fromPublicKey( Buffer.from(fixture.pubkeyHex, "hex") @@ -86,7 +88,7 @@ describe("#ECPair", () => { }) describe("#toPublicKey", () => { - fixtures.toPublicKey.forEach(fixture => { + fixtures.toPublicKey.forEach((fixture: any) => { it(`should create a public key buffer from an ECPair`, () => { const ecpair = bitbox.ECPair.fromPublicKey( Buffer.from(fixture.pubkeyHex, "hex") @@ -98,41 +100,41 @@ describe("#ECPair", () => { }) describe("#toLegacyAddress", () => { - fixtures.toLegacyAddress.forEach(fixture => { + fixtures.toLegacyAddress.forEach((fixture: any) => { it(`should create legacy address ${ fixture.legacy - } from an ECPair`, () => { - const ecpair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) - const legacyAddress = bitbox.ECPair.toLegacyAddress(ecpair) - assert.equal(legacyAddress, fixture.legacy) - }) + } from an ECPair`, () => { + const ecpair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + const legacyAddress = bitbox.ECPair.toLegacyAddress(ecpair) + assert.equal(legacyAddress, fixture.legacy) + }) }) }) describe("#toCashAddress", () => { - fixtures.toCashAddress.forEach(fixture => { + fixtures.toCashAddress.forEach((fixture: any) => { it(`should create cash address ${ fixture.cashAddr - } from an ECPair`, () => { - const ecpair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) - const cashAddr = bitbox.ECPair.toCashAddress(ecpair) - assert.equal(cashAddr, fixture.cashAddr) - }) + } from an ECPair`, () => { + const ecpair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + const cashAddr = bitbox.ECPair.toCashAddress(ecpair) + assert.equal(cashAddr, fixture.cashAddr) + }) }) - fixtures.toCashAddress.forEach(fixture => { + fixtures.toCashAddress.forEach((fixture: any) => { it(`should create regtest cash address ${ fixture.regtestAddr - } from an ECPair`, () => { - const ecpair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) - const regtestAddr = bitbox.ECPair.toCashAddress(ecpair, true) - assert.equal(regtestAddr, fixture.regtestAddr) - }) + } from an ECPair`, () => { + const ecpair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + const regtestAddr = bitbox.ECPair.toCashAddress(ecpair, true) + assert.equal(regtestAddr, fixture.regtestAddr) + }) }) }) describe("#sign", () => { - fixtures.sign.forEach(fixture => { + fixtures.sign.forEach((fixture: any) => { it(`should sign 32 byte hash buffer`, () => { const ecpair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) const buf = Buffer.from(bitbox.Crypto.sha256(fixture.data), "hex") @@ -143,7 +145,7 @@ describe("#ECPair", () => { }) describe("#verify", () => { - fixtures.verify.forEach(fixture => { + fixtures.verify.forEach((fixture: any) => { it(`should verify signed 32 byte hash buffer`, () => { const ecpair1 = bitbox.ECPair.fromWIF(fixture.privateKeyWIF1) const buf = Buffer.from(bitbox.Crypto.sha256(fixture.data), "hex") diff --git a/test/unit/Generating.js b/test/unit/Generating.ts similarity index 83% rename from test/unit/Generating.js rename to test/unit/Generating.ts index 1097799c..ccb100e6 100644 --- a/test/unit/Generating.js +++ b/test/unit/Generating.ts @@ -1,9 +1,11 @@ -const assert = require("assert") -const axios = require("axios") +import * as assert from "assert"; +import axios from "axios"; +import * as sinon from "sinon"; + +// TODO: port from require to import syntax const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() const Generating = require("../../lib/Generating").Generating -const sinon = require("sinon") const resturl = require("../../lib/BITBOX").resturl describe("#Generating", () => { @@ -20,12 +22,12 @@ describe("#Generating", () => { }) describe("#generateToAddress", () => { - let sandbox + let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) it("should generate", done => { - const data = [] + const data: any = [] const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "post").returns(resolved) @@ -33,7 +35,7 @@ describe("#Generating", () => { 1, "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" ) - .then(result => { + .then((result: any) => { assert.deepEqual(data, result) }) .then(done, done) diff --git a/test/unit/HDNode.js b/test/unit/HDNode.ts similarity index 88% rename from test/unit/HDNode.js rename to test/unit/HDNode.ts index 65745833..18bfc296 100644 --- a/test/unit/HDNode.js +++ b/test/unit/HDNode.ts @@ -1,5 +1,7 @@ +import * as assert from "assert"; + +// TODO: port from require to import syntax const fixtures = require("./fixtures/HDNode.json") -const assert = require("assert") const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() const HDNode = require("../../lib/HDNode").HDNode @@ -14,7 +16,7 @@ describe("#HDNode", () => { }) describe("#fromSeed", () => { - fixtures.fromSeed.forEach(mnemonic => { + fixtures.fromSeed.forEach((mnemonic: any) => { it(`should create an HDNode from root seed buffer`, () => { const rootSeedBuffer = bitbox.Mnemonic.toSeed(mnemonic) const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) @@ -24,7 +26,7 @@ describe("#HDNode", () => { }) describe("#derive", () => { - fixtures.derive.forEach(derive => { + fixtures.derive.forEach((derive: any) => { it(`should derive non hardened child HDNode`, () => { const rootSeedBuffer = bitbox.Mnemonic.toSeed(derive.mnemonic) const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) @@ -36,7 +38,7 @@ describe("#HDNode", () => { }) describe("#deriveHardened", () => { - fixtures.deriveHardened.forEach(derive => { + fixtures.deriveHardened.forEach((derive: any) => { it(`should derive hardened child HDNode`, () => { const rootSeedBuffer = bitbox.Mnemonic.toSeed(derive.mnemonic) const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) @@ -47,7 +49,7 @@ describe("#HDNode", () => { }) describe("derive BIP44 $BCH account", () => { - fixtures.deriveBIP44.forEach(derive => { + fixtures.deriveBIP44.forEach((derive: any) => { it(`should derive BIP44 $BCH account`, () => { const rootSeedBuffer = bitbox.Mnemonic.toSeed(derive.mnemonic) const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) @@ -63,7 +65,7 @@ describe("#HDNode", () => { describe("#derivePath", () => { describe("derive non hardened Path", () => { - fixtures.derivePath.forEach(derive => { + fixtures.derivePath.forEach((derive: any) => { it(`should derive non hardened child HDNode from path`, () => { const rootSeedBuffer = bitbox.Mnemonic.toSeed(derive.mnemonic) const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) @@ -75,7 +77,7 @@ describe("#HDNode", () => { }) describe("derive hardened Path", () => { - fixtures.deriveHardenedPath.forEach(derive => { + fixtures.deriveHardenedPath.forEach((derive: any) => { it(`should derive hardened child HDNode from path`, () => { const rootSeedBuffer = bitbox.Mnemonic.toSeed(derive.mnemonic) const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) @@ -87,7 +89,7 @@ describe("#HDNode", () => { }) describe("derive BIP44 $BCH account", () => { - fixtures.deriveBIP44.forEach(derive => { + fixtures.deriveBIP44.forEach((derive: any) => { it(`should derive BIP44 $BCH account`, () => { const rootSeedBuffer = bitbox.Mnemonic.toSeed(derive.mnemonic) const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) @@ -100,7 +102,7 @@ describe("#HDNode", () => { }) describe("#toLegacyAddress", () => { - fixtures.toLegacyAddress.forEach(fixture => { + fixtures.toLegacyAddress.forEach((fixture: any) => { it(`should get address ${fixture.address} from HDNode`, () => { const rootSeedBuffer = bitbox.Mnemonic.toSeed(fixture.mnemonic) const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) @@ -112,7 +114,7 @@ describe("#HDNode", () => { }) describe("#toCashAddress", () => { - fixtures.toCashAddress.forEach(fixture => { + fixtures.toCashAddress.forEach((fixture: any) => { it(`should get address ${fixture.address} from HDNode`, () => { const rootSeedBuffer = bitbox.Mnemonic.toSeed(fixture.mnemonic) const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) @@ -132,18 +134,18 @@ describe("#HDNode", () => { }) describe("#toWIF", () => { - fixtures.toWIF.forEach(fixture => { + fixtures.toWIF.forEach((fixture: any) => { it(`should get privateKeyWIF ${ fixture.privateKeyWIF - } from HDNode`, () => { - const hdNode = bitbox.HDNode.fromXPriv(fixture.xpriv) - assert.equal(bitbox.HDNode.toWIF(hdNode), fixture.privateKeyWIF) - }) + } from HDNode`, () => { + const hdNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + assert.equal(bitbox.HDNode.toWIF(hdNode), fixture.privateKeyWIF) + }) }) }) describe("#toXPub", () => { - fixtures.toXPub.forEach(fixture => { + fixtures.toXPub.forEach((fixture: any) => { it(`should create xpub ${fixture.xpub} from an HDNode`, () => { const rootSeedBuffer = bitbox.Mnemonic.toSeed(fixture.mnemonic) const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) @@ -154,7 +156,7 @@ describe("#HDNode", () => { }) describe("#toXPriv", () => { - fixtures.toXPriv.forEach(fixture => { + fixtures.toXPriv.forEach((fixture: any) => { it(`should create xpriv ${fixture.xpriv} from an HDNode`, () => { const rootSeedBuffer = bitbox.Mnemonic.toSeed(fixture.mnemonic) const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) @@ -165,7 +167,7 @@ describe("#HDNode", () => { }) describe("#toKeyPair", () => { - fixtures.toKeyPair.forEach(fixture => { + fixtures.toKeyPair.forEach((fixture: any) => { it(`should get ECPair from an HDNode`, () => { const rootSeedBuffer = bitbox.Mnemonic.toSeed(fixture.mnemonic) const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) @@ -176,7 +178,7 @@ describe("#HDNode", () => { }) describe("#toPublicKey", () => { - fixtures.toPublicKey.forEach(fixture => { + fixtures.toPublicKey.forEach((fixture: any) => { it(`should create public key buffer from an HDNode`, () => { const rootSeedBuffer = bitbox.Mnemonic.toSeed(fixture.mnemonic) const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) @@ -187,7 +189,7 @@ describe("#HDNode", () => { }) describe("#fromXPriv", () => { - fixtures.fromXPriv.forEach(fixture => { + fixtures.fromXPriv.forEach((fixture: any) => { const hdNode = bitbox.HDNode.fromXPriv(fixture.xpriv) it(`should create HDNode from xpriv ${fixture.xpriv}`, () => { assert.notEqual(hdNode, null) @@ -223,7 +225,7 @@ describe("#HDNode", () => { }) describe("#fromXPub", () => { - fixtures.fromXPub.forEach(fixture => { + fixtures.fromXPub.forEach((fixture: any) => { const hdNode = bitbox.HDNode.fromXPub(fixture.xpub) it(`should create HDNode from xpub ${fixture.xpub}`, () => { assert.notEqual(hdNode, null) @@ -252,7 +254,7 @@ describe("#HDNode", () => { describe("#bip32", () => { describe("create accounts and addresses", () => { - fixtures.accounts.forEach(fixture => { + fixtures.accounts.forEach((fixture: any) => { const seedBuffer = bitbox.Mnemonic.toSeed(fixture.mnemonic) const hdNode = bitbox.HDNode.fromSeed(seedBuffer) const a = bitbox.HDNode.derivePath(hdNode, "0'") @@ -285,7 +287,7 @@ describe("#HDNode", () => { }) describe("#sign", () => { - fixtures.sign.forEach(fixture => { + fixtures.sign.forEach((fixture: any) => { it(`should sign 32 byte hash buffer`, () => { const hdnode = bitbox.HDNode.fromXPriv(fixture.privateKeyWIF) const buf = Buffer.from(bitbox.Crypto.sha256(fixture.data), "hex") @@ -296,7 +298,7 @@ describe("#HDNode", () => { }) describe("#verify", () => { - fixtures.verify.forEach(fixture => { + fixtures.verify.forEach((fixture: any) => { it(`should verify signed 32 byte hash buffer`, () => { const hdnode1 = bitbox.HDNode.fromXPriv(fixture.privateKeyWIF1) const buf = Buffer.from(bitbox.Crypto.sha256(fixture.data), "hex") @@ -308,14 +310,14 @@ describe("#HDNode", () => { }) describe("#isPublic", () => { - fixtures.isPublic.forEach(fixture => { + fixtures.isPublic.forEach((fixture: any) => { it(`should verify hdnode is public`, () => { const node = bitbox.HDNode.fromXPub(fixture.xpub) assert.equal(bitbox.HDNode.isPublic(node), true) }) }) - fixtures.isPublic.forEach(fixture => { + fixtures.isPublic.forEach((fixture: any) => { it(`should verify hdnode is not public`, () => { const node = bitbox.HDNode.fromXPriv(fixture.xpriv) assert.equal(bitbox.HDNode.isPublic(node), false) @@ -324,14 +326,14 @@ describe("#HDNode", () => { }) describe("#isPrivate", () => { - fixtures.isPrivate.forEach(fixture => { + fixtures.isPrivate.forEach((fixture: any) => { it(`should verify hdnode is not private`, () => { const node = bitbox.HDNode.fromXPub(fixture.xpub) assert.equal(bitbox.HDNode.isPrivate(node), false) }) }) - fixtures.isPrivate.forEach(fixture => { + fixtures.isPrivate.forEach((fixture: any) => { it(`should verify hdnode is private`, () => { const node = bitbox.HDNode.fromXPriv(fixture.xpriv) assert.equal(bitbox.HDNode.isPrivate(node), true) @@ -340,7 +342,7 @@ describe("#HDNode", () => { }) describe("#toIdentifier", () => { - fixtures.toIdentifier.forEach(fixture => { + fixtures.toIdentifier.forEach((fixture: any) => { it(`should get identifier of hdnode`, () => { const node = bitbox.HDNode.fromXPriv(fixture.xpriv) const publicKeyBuffer = bitbox.HDNode.toPublicKey(node) diff --git a/test/unit/Mining.js b/test/unit/Mining.ts similarity index 90% rename from test/unit/Mining.js rename to test/unit/Mining.ts index a20dd72a..59fc99ec 100644 --- a/test/unit/Mining.js +++ b/test/unit/Mining.ts @@ -1,9 +1,11 @@ -const assert = require("assert") -const axios = require("axios") +import * as assert from "assert"; +import axios from "axios"; +import * as sinon from "sinon"; + +// TODO: port from require to import syntax const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() const Mining = require("../../lib/Mining").Mining -const sinon = require("sinon") const resturl = require("../../lib/BITBOX").resturl describe("#Mining", () => { @@ -20,7 +22,7 @@ describe("#Mining", () => { }) describe("#getBlockTemplate", () => { - let sandbox + let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) @@ -41,7 +43,7 @@ describe("#Mining", () => { sandbox.stub(axios, "get").returns(resolved) bitbox.Mining.getBlockTemplate("") - .then(result => { + .then((result: any) => { assert.deepEqual(data, result) }) .then(done, done) @@ -49,7 +51,7 @@ describe("#Mining", () => { }) describe("#getMiningInfo", () => { - let sandbox + let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) @@ -70,7 +72,7 @@ describe("#Mining", () => { sandbox.stub(axios, "get").returns(resolved) bitbox.Mining.getMiningInfo() - .then(result => { + .then((result: any) => { assert.deepEqual(data, result) }) .then(done, done) @@ -78,7 +80,7 @@ describe("#Mining", () => { }) describe("#getNetworkHashps", () => { - let sandbox + let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) @@ -89,7 +91,7 @@ describe("#Mining", () => { sandbox.stub(axios, "get").returns(resolved) bitbox.Mining.getNetworkHashps() - .then(result => { + .then((result: any) => { assert.equal(data, result) }) .then(done, done) @@ -98,7 +100,7 @@ describe("#Mining", () => { describe("#submitBlock", () => { // TODO finish - let sandbox + let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) @@ -109,7 +111,7 @@ describe("#Mining", () => { sandbox.stub(axios, "post").returns(resolved) bitbox.Mining.submitBlock() - .then(result => { + .then((result: any) => { assert.deepEqual(data, result) }) .then(done, done) diff --git a/test/unit/Mnemonic.js b/test/unit/Mnemonic.ts similarity index 96% rename from test/unit/Mnemonic.js rename to test/unit/Mnemonic.ts index 6e09a870..6fb7407b 100644 --- a/test/unit/Mnemonic.js +++ b/test/unit/Mnemonic.ts @@ -1,5 +1,7 @@ +import * as assert from "assert"; + +// TODO: port from require to import syntax const fixtures = require("./fixtures/Mnemonic.json") -const assert = require("assert") const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() const Mnemonic = require("../../lib/Mnemonic").Mnemonic @@ -87,7 +89,7 @@ describe("#Mnemonic", () => { assert.equal(mnemonic.split(" ").length, 24) }) - fixtures.fromEntropy.forEach(entropy => { + fixtures.fromEntropy.forEach((entropy: any) => { const mnemonic = bitbox.Mnemonic.fromEntropy(entropy.entropy) it(`should convert ${entropy.entropy} to ${entropy.mnemonic}`, () => { assert.equal(mnemonic, entropy.mnemonic) @@ -138,7 +140,7 @@ describe("#Mnemonic", () => { assert.equal(entropy.length, 32) }) - fixtures.fromEntropy.forEach(fixture => { + fixtures.fromEntropy.forEach((fixture: any) => { const entropy = bitbox.Mnemonic.toEntropy(fixture.mnemonic) it(`should convert ${fixture.mnemonic} to ${fixture.entropy}`, () => { assert.equal(entropy.toString("hex"), fixture.entropy) @@ -299,9 +301,9 @@ describe("#Mnemonic", () => { }) describe("#toKeypairs", () => { - fixtures.toKeypairs.forEach((fixture, i) => { + fixtures.toKeypairs.forEach((fixture: any, i: number) => { const keypairs = bitbox.Mnemonic.toKeypairs(fixture.mnemonic, 5) - keypairs.forEach((keypair, j) => { + keypairs.forEach((keypair: any, j: number) => { it(`Generate keypair from mnemonic`, () => { assert.equal( keypair.privateKeyWIF, @@ -319,7 +321,7 @@ describe("#Mnemonic", () => { 5, true ) - regtestKeypairs.forEach((keypair, j) => { + regtestKeypairs.forEach((keypair: any, j: number) => { it(`Generate keypair from mnemonic`, () => { assert.equal( keypair.privateKeyWIF, @@ -335,16 +337,16 @@ describe("#Mnemonic", () => { }) describe("#findNearestWord", () => { - fixtures.findNearestWord.forEach((fixture, i) => { + fixtures.findNearestWord.forEach((fixture: any) => { const word = bitbox.Mnemonic.findNearestWord( fixture.word, bitbox.Mnemonic.wordLists()[fixture.language] ) it(`find word ${fixture.foundWord} near ${fixture.word} in ${ fixture.language - }`, () => { - assert.equal(word, fixture.foundWord) - }) + }`, () => { + assert.equal(word, fixture.foundWord) + }) }) }) }) diff --git a/test/unit/Price.js b/test/unit/Price.ts similarity index 78% rename from test/unit/Price.js rename to test/unit/Price.ts index b16f6375..f9b494c3 100644 --- a/test/unit/Price.js +++ b/test/unit/Price.ts @@ -1,10 +1,11 @@ -const chai = require("chai") -const assert = require("assert") +import * as assert from "assert"; +import axios from "axios"; +import * as sinon from "sinon"; + +// TODO: port from require to import syntax const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() const Price = require("../../lib/Price").Price -const axios = require("axios") -const sinon = require("sinon") describe("#Price", () => { describe("#PriceConstructor", () => { @@ -16,17 +17,17 @@ describe("#Price", () => { describe("#current", () => { describe("#single currency", () => { - let sandbox + let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) it("should get current price for single currency", done => { - const data = 46347 + const data: any = [] const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) bitbox.Price.current("usd") - .then(result => { + .then((result: any) => { assert.deepEqual(data.price, result) }) .then(done, done) diff --git a/test/unit/RawTransactions.js b/test/unit/RawTransactions.js index b6ac33d1..8adcdb4b 100644 --- a/test/unit/RawTransactions.js +++ b/test/unit/RawTransactions.js @@ -1,143 +1,179 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +var _this = this; +Object.defineProperty(exports, "__esModule", { value: true }); /* TODO: -Replace old unit tests mocking axios with the more generalized nock library. See the sendRawTransaction test for an example. -Create a mocking library of data to compare unit and integration tests. */ - -const assert = require("assert") -const axios = require("axios") -const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() -const RawTransactions = require("../../lib/RawTransactions").RawTransactions -const resturl = require("../../lib/BITBOX").resturl - -const sinon = require("sinon") -const nock = require("nock") // HTTP mocking - +var assert = require("assert"); +var axios_1 = require("axios"); +var sinon = require("sinon"); +// TODO: port from require to import syntax +var BITBOX = require("../../lib/BITBOX").BITBOX; +var bitbox = new BITBOX(); +var RawTransactions = require("../../lib/RawTransactions").RawTransactions; +var resturl = require("../../lib/BITBOX").resturl; +var nock = require("nock"); // HTTP mocking // Used for debugging -const util = require("util") -util.inspect.defaultOptions = { depth: 1 } - -describe("#RawTransactions", () => { - describe("#PriceConstructor", () => { - it("should create instance of RawTransactions", () => { - const rawtransactions = new RawTransactions() - assert.equal(rawtransactions instanceof RawTransactions, true) - }) - - it("should have a restURL property", () => { - const rawtransactions = new RawTransactions() - assert.equal(rawtransactions.restURL, resturl) - }) - }) - - describe("#decodeRawTransaction", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should decode raw transaction", done => { - const data = { - txid: - "4ebd325a4b394cff8c57e8317ccf5a8d0e2bdf1b8526f8aad6c8e43d8240621a", - hash: - "4ebd325a4b394cff8c57e8317ccf5a8d0e2bdf1b8526f8aad6c8e43d8240621a", - size: 10, - version: 2, - locktime: 0, - vin: [], - vout: [] - } - - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.RawTransactions.decodeRawTransaction(["02000000000000000000"]) - .then(result => { - assert.deepEqual(data, result[0]) - }) - .then(done, done) - }) - }) - - describe("#decodeScript", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should decode script", async () => { - const data = { - asm: "OP_RETURN 5361746f736869204e616b616d6f746f", - type: "nulldata", - p2sh: "bitcoincash:prswx5965nfumux9qng5kj8hw603vcne7q08t8c6jp" - } - - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - const result = await bitbox.RawTransactions.decodeScript( - "6a105361746f736869204e616b616d6f746f" - ) - //console.log(`result: ${util.inspect(result)}`) - - assert.deepEqual(data, result) - }) - }) - - describe("#getRawTransaction", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get raw transaction", done => { - const data = - "020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000" - - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.RawTransactions.getRawTransaction([ - "808d617eccaad4f1397fe07a06ec5ed15a0821cf22a3e0931c0c92aef9e572b6" - ]) - .then(result => { - assert.deepEqual(data, result[0]) - }) - .then(done, done) - }) - }) - - describe("#sendRawTransaction", () => { - let sandbox - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should send single raw transaction", async () => { - const data = "Error: transaction already in block chain" - - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - const result = await bitbox.RawTransactions.sendRawTransaction( - "020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000" - ) - - assert.equal(data, result) - }) - - it("should send an array of raw transactions", async () => { - const data = "Error: transaction already in block chain" - - // Mock the http call to rest.bitcoin.com - nock(`${bitbox.RawTransactions.restURL}`) - .post(uri => uri.includes(`/`)) - .reply(200, { data: data }) - - const result = await bitbox.RawTransactions.sendRawTransaction([ - "020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000" - ]) - - assert.equal(data, result.data) - }) - }) -}) +var util = require("util"); +util.inspect.defaultOptions = { depth: 1 }; +describe("#RawTransactions", function () { + describe("#PriceConstructor", function () { + it("should create instance of RawTransactions", function () { + var rawtransactions = new RawTransactions(); + assert.equal(rawtransactions instanceof RawTransactions, true); + }); + it("should have a restURL property", function () { + var rawtransactions = new RawTransactions(); + assert.equal(rawtransactions.restURL, resturl); + }); + }); + describe("#decodeRawTransaction", function () { + var sandbox; + beforeEach(function () { return (sandbox = sinon.sandbox.create()); }); + afterEach(function () { return sandbox.restore(); }); + it("should decode raw transaction", function (done) { + var data = { + txid: "4ebd325a4b394cff8c57e8317ccf5a8d0e2bdf1b8526f8aad6c8e43d8240621a", + hash: "4ebd325a4b394cff8c57e8317ccf5a8d0e2bdf1b8526f8aad6c8e43d8240621a", + size: 10, + version: 2, + locktime: 0, + vin: [], + vout: [] + }; + var resolved = new Promise(function (r) { return r({ data: data }); }); + sandbox.stub(axios_1.default, "get").returns(resolved); + bitbox.RawTransactions.decodeRawTransaction(["02000000000000000000"]) + .then(function (result) { + assert.deepEqual(data, result[0]); + }) + .then(done, done); + }); + }); + describe("#decodeScript", function () { + var sandbox; + beforeEach(function () { return (sandbox = sinon.sandbox.create()); }); + afterEach(function () { return sandbox.restore(); }); + it("should decode script", function () { return __awaiter(_this, void 0, void 0, function () { + var data, resolved, result; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + data = { + asm: "OP_RETURN 5361746f736869204e616b616d6f746f", + type: "nulldata", + p2sh: "bitcoincash:prswx5965nfumux9qng5kj8hw603vcne7q08t8c6jp" + }; + resolved = new Promise(function (r) { return r({ data: data }); }); + sandbox.stub(axios_1.default, "get").returns(resolved); + return [4 /*yield*/, bitbox.RawTransactions.decodeScript("6a105361746f736869204e616b616d6f746f") + //console.log(`result: ${util.inspect(result)}`) + ]; + case 1: + result = _a.sent(); + //console.log(`result: ${util.inspect(result)}`) + assert.deepEqual(data, result); + return [2 /*return*/]; + } + }); + }); }); + }); + // describe("#getRawTransaction", () => { + // let sandbox: any + // beforeEach(() => (sandbox = sinon.sandbox.create())) + // afterEach(() => sandbox.restore()) + // it("should get raw transaction", done => { + // const data = + // "020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000" + // const resolved = new Promise(r => r({ data: data })) + // sandbox.stub(axios, "get").returns(resolved) + // bitbox.RawTransactions.getRawTransaction([ + // "808d617eccaad4f1397fe07a06ec5ed15a0821cf22a3e0931c0c92aef9e572b6" + // ]) + // .then((result: any) => { + // assert.deepEqual(data, result[0]) + // }) + // .then(done, done) + // }) + // }) + describe("#sendRawTransaction", function () { + var sandbox; + beforeEach(function () { return (sandbox = sinon.sandbox.create()); }); + afterEach(function () { return sandbox.restore(); }); + it("should send single raw transaction", function () { return __awaiter(_this, void 0, void 0, function () { + var data, resolved, result; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + data = "Error: transaction already in block chain"; + resolved = new Promise(function (r) { return r({ data: data }); }); + sandbox.stub(axios_1.default, "get").returns(resolved); + return [4 /*yield*/, bitbox.RawTransactions.sendRawTransaction("020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000")]; + case 1: + result = _a.sent(); + assert.equal(data, result); + return [2 /*return*/]; + } + }); + }); }); + it("should send an array of raw transactions", function () { return __awaiter(_this, void 0, void 0, function () { + var data, result; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + data = "Error: transaction already in block chain"; + // Mock the http call to rest.bitcoin.com + nock("" + bitbox.RawTransactions.restURL) + .post(function (uri) { return uri.includes("/"); }) + .reply(200, { data: data }); + return [4 /*yield*/, bitbox.RawTransactions.sendRawTransaction([ + "020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000" + ])]; + case 1: + result = _a.sent(); + assert.equal(data, result.data); + return [2 /*return*/]; + } + }); + }); }); + }); +}); +//# sourceMappingURL=RawTransactions.js.map \ No newline at end of file diff --git a/test/unit/RawTransactions.ts b/test/unit/RawTransactions.ts new file mode 100644 index 00000000..f2e7b472 --- /dev/null +++ b/test/unit/RawTransactions.ts @@ -0,0 +1,143 @@ +/* + TODO: + -Replace old unit tests mocking axios with the more generalized nock library. + See the sendRawTransaction test for an example. + -Create a mocking library of data to compare unit and integration tests. +*/ +import * as assert from "assert"; +import axios from "axios"; +import * as sinon from "sinon"; + +// TODO: port from require to import syntax +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() +const RawTransactions = require("../../lib/RawTransactions").RawTransactions +const resturl = require("../../lib/BITBOX").resturl +const nock = require("nock") // HTTP mocking + +// Used for debugging +const util = require("util") +util.inspect.defaultOptions = { depth: 1 } + +describe("#RawTransactions", () => { + describe("#PriceConstructor", () => { + it("should create instance of RawTransactions", () => { + const rawtransactions = new RawTransactions() + assert.equal(rawtransactions instanceof RawTransactions, true) + }) + + it("should have a restURL property", () => { + const rawtransactions = new RawTransactions() + assert.equal(rawtransactions.restURL, resturl) + }) + }) + + describe("#decodeRawTransaction", () => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should decode raw transaction", done => { + const data = { + txid: + "4ebd325a4b394cff8c57e8317ccf5a8d0e2bdf1b8526f8aad6c8e43d8240621a", + hash: + "4ebd325a4b394cff8c57e8317ccf5a8d0e2bdf1b8526f8aad6c8e43d8240621a", + size: 10, + version: 2, + locktime: 0, + vin: [], + vout: [] + } + + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.RawTransactions.decodeRawTransaction(["02000000000000000000"]) + .then((result: any) => { + assert.deepEqual(data, result[0]) + }) + .then(done, done) + }) + }) + + describe("#decodeScript", () => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should decode script", async () => { + const data = { + asm: "OP_RETURN 5361746f736869204e616b616d6f746f", + type: "nulldata", + p2sh: "bitcoincash:prswx5965nfumux9qng5kj8hw603vcne7q08t8c6jp" + } + + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + const result = await bitbox.RawTransactions.decodeScript( + "6a105361746f736869204e616b616d6f746f" + ) + //console.log(`result: ${util.inspect(result)}`) + + assert.deepEqual(data, result) + }) + }) + + // describe("#getRawTransaction", () => { + // let sandbox: any + // beforeEach(() => (sandbox = sinon.sandbox.create())) + // afterEach(() => sandbox.restore()) + + // it("should get raw transaction", done => { + // const data = + // "020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000" + + // const resolved = new Promise(r => r({ data: data })) + // sandbox.stub(axios, "get").returns(resolved) + + // bitbox.RawTransactions.getRawTransaction([ + // "808d617eccaad4f1397fe07a06ec5ed15a0821cf22a3e0931c0c92aef9e572b6" + // ]) + // .then((result: any) => { + // assert.deepEqual(data, result[0]) + // }) + // .then(done, done) + // }) + // }) + + describe("#sendRawTransaction", () => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should send single raw transaction", async () => { + const data = "Error: transaction already in block chain" + + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + const result = await bitbox.RawTransactions.sendRawTransaction( + "020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000" + ) + + assert.equal(data, result) + }) + + it("should send an array of raw transactions", async () => { + const data = "Error: transaction already in block chain" + + // Mock the http call to rest.bitcoin.com + nock(`${bitbox.RawTransactions.restURL}`) + .post((uri: string) => uri.includes(`/`)) + .reply(200, { data: data }) + + const result = await bitbox.RawTransactions.sendRawTransaction([ + "020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000" + ]) + + assert.equal(data, result.data) + }) + }) +}) diff --git a/test/unit/Script.js b/test/unit/Script.ts similarity index 85% rename from test/unit/Script.js rename to test/unit/Script.ts index c1eac3f5..6efd933b 100644 --- a/test/unit/Script.js +++ b/test/unit/Script.ts @@ -1,5 +1,7 @@ +import * as assert from "assert"; + +// TODO: port from require to import syntax const fixtures = require("./fixtures/Script.json") -const assert = require("assert") const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() const Script = require("../../lib/Script").Script @@ -15,7 +17,7 @@ describe("#Script", () => { describe("#decode", () => { describe("P2PKH scriptSig", () => { - fixtures.decodeScriptSig.forEach(fixture => { + fixtures.decodeScriptSig.forEach((fixture: any) => { it(`should decode scriptSig buffer`, () => { const decodedScriptSig = bitbox.Script.decode( Buffer.from(fixture.scriptSigHex, "hex") @@ -25,32 +27,32 @@ describe("#Script", () => { it(`should decode scriptSig buffer to cash address ${ fixture.cashAddress - }`, () => { - const decodedScriptSig = bitbox.Script.decode( - Buffer.from(fixture.scriptSigHex, "hex") - ) - const address = bitbox.HDNode.toCashAddress( - bitbox.ECPair.fromPublicKey(decodedScriptSig[1]) - ) - assert.equal(address, fixture.cashAddress) - }) + }`, () => { + const decodedScriptSig = bitbox.Script.decode( + Buffer.from(fixture.scriptSigHex, "hex") + ) + const address = bitbox.HDNode.toCashAddress( + bitbox.ECPair.fromPublicKey(decodedScriptSig[1]) + ) + assert.equal(address, fixture.cashAddress) + }) it(`should decode scriptSig buffer to legacy address ${ fixture.legacyAddress - }`, () => { - const decodedScriptSig = bitbox.Script.decode( - Buffer.from(fixture.scriptSigHex, "hex") - ) - const address = bitbox.HDNode.toLegacyAddress( - bitbox.ECPair.fromPublicKey(decodedScriptSig[1]) - ) - assert.equal(address, fixture.legacyAddress) - }) + }`, () => { + const decodedScriptSig = bitbox.Script.decode( + Buffer.from(fixture.scriptSigHex, "hex") + ) + const address = bitbox.HDNode.toLegacyAddress( + bitbox.ECPair.fromPublicKey(decodedScriptSig[1]) + ) + assert.equal(address, fixture.legacyAddress) + }) }) }) describe("P2PKH scriptPubKey", () => { - fixtures.decodeScriptPubKey.forEach(fixture => { + fixtures.decodeScriptPubKey.forEach((fixture: any) => { it(`should decode scriptSig buffer`, () => { const decodedScriptPubKey = bitbox.Script.decode( Buffer.from(fixture.scriptPubKeyHex, "hex") @@ -72,7 +74,7 @@ describe("#Script", () => { describe("#encode", () => { describe("P2PKH scriptSig", () => { - fixtures.encodeScriptSig.forEach(fixture => { + fixtures.encodeScriptSig.forEach((fixture: any) => { it(`should encode scriptSig chunks to buffer`, () => { const arr = [ Buffer.from(fixture.scriptSigChunks[0], "hex"), @@ -85,7 +87,7 @@ describe("#Script", () => { }) describe("P2PKH scriptPubKey", () => { - fixtures.encodeScriptPubKey.forEach(fixture => { + fixtures.encodeScriptPubKey.forEach((fixture: any) => { it(`should encode scriptPubKey buffer`, () => { const decodedScriptPubKey = bitbox.Script.decode( Buffer.from(fixture.scriptPubKeyHex, "hex") @@ -102,7 +104,7 @@ describe("#Script", () => { describe("#toASM", () => { describe("P2PKH scriptSig", () => { - fixtures.scriptSigToASM.forEach(fixture => { + fixtures.scriptSigToASM.forEach((fixture: any) => { it(`should encode scriptSig buffer to ${fixture.asm}`, () => { const arr = [ Buffer.from(fixture.scriptSigChunks[0], "hex"), @@ -116,7 +118,7 @@ describe("#Script", () => { }) describe("P2PKH scriptPubKey", () => { - fixtures.scriptPubKeyToASM.forEach(fixture => { + fixtures.scriptPubKeyToASM.forEach((fixture: any) => { it(`should compile scriptPubKey buffer to ${fixture.asm}`, () => { const asm = bitbox.Script.toASM( Buffer.from(fixture.scriptPubKeyHex, "hex") @@ -129,7 +131,7 @@ describe("#Script", () => { describe("#fromASM", () => { describe("P2PKH scriptSig", () => { - fixtures.scriptSigFromASM.forEach(fixture => { + fixtures.scriptSigFromASM.forEach((fixture: any) => { it(`should decode scriptSig asm to buffer`, () => { const buf = bitbox.Script.fromASM(fixture.asm) assert.equal(typeof buf, "object") @@ -138,7 +140,7 @@ describe("#Script", () => { }) describe("P2PKH scriptPubKey", () => { - fixtures.scriptPubKeyFromASM.forEach(fixture => { + fixtures.scriptPubKeyFromASM.forEach((fixture: any) => { it(`should decode scriptPubKey asm to buffer`, () => { const buf = bitbox.Script.fromASM(fixture.asm) assert.equal(typeof buf, "object") @@ -156,7 +158,7 @@ describe("#Script", () => { }) describe("#classifyInput", () => { - fixtures.classifyInput.forEach(fixture => { + fixtures.classifyInput.forEach((fixture: any) => { it(`should classify input type ${fixture.type}`, () => { const type = bitbox.Script.classifyInput( bitbox.Script.fromASM(fixture.script) @@ -167,7 +169,7 @@ describe("#Script", () => { }) describe("#classifyOutput", () => { - fixtures.classifyOutput.forEach(fixture => { + fixtures.classifyOutput.forEach((fixture: any) => { it(`should classify ouput type ${fixture.type}`, () => { const type = bitbox.Script.classifyOutput( bitbox.Script.fromASM(fixture.script) @@ -178,7 +180,7 @@ describe("#Script", () => { }) describe("#nullDataTemplate", () => { - fixtures.nullDataTemplate.forEach(fixture => { + fixtures.nullDataTemplate.forEach((fixture: any) => { it(`should encode nulldata output`, () => { const buf = bitbox.Script.nullData.output.encode( Buffer.from(`${fixture.data}`, "ascii") @@ -205,7 +207,7 @@ describe("#Script", () => { describe("#pubKeyTemplate", () => { describe("#pubKeyInputTemplate", () => { - fixtures.pubKeyInputTemplate.forEach(fixture => { + fixtures.pubKeyInputTemplate.forEach((fixture: any) => { it(`should encode pubKey input`, () => { const buf = bitbox.Script.pubKey.input.encode( Buffer.from(fixture.signature, "hex") @@ -231,7 +233,7 @@ describe("#Script", () => { }) describe("#pubKeyOutputTemplate", () => { - fixtures.pubKeyOutputTemplate.forEach(fixture => { + fixtures.pubKeyOutputTemplate.forEach((fixture: any) => { it(`should encode pubKey output`, () => { const buf = bitbox.Script.pubKey.output.encode( Buffer.from(fixture.pubKey, "hex") @@ -259,7 +261,7 @@ describe("#Script", () => { describe("#pubKeyHashTemplate", () => { describe("#pubKeyHashInputTemplate", () => { - fixtures.pubKeyHashInputTemplate.forEach(fixture => { + fixtures.pubKeyHashInputTemplate.forEach((fixture: any) => { it(`should encode pubKeyHash input`, () => { const buf = bitbox.Script.pubKeyHash.input.encode( Buffer.from(fixture.signature, "hex"), @@ -294,7 +296,7 @@ describe("#Script", () => { }) describe("#pubKeyHashOutputTemplate", () => { - fixtures.pubKeyHashOutputTemplate.forEach(fixture => { + fixtures.pubKeyHashOutputTemplate.forEach((fixture: any) => { const node = bitbox.HDNode.fromXPriv(fixture.xpriv) const identifier = bitbox.HDNode.toIdentifier(node) it(`should encode pubKeyHash output`, () => { @@ -320,9 +322,9 @@ describe("#Script", () => { describe("#multisigTemplate", () => { describe("#multisigInputTemplate", () => { - fixtures.multisigInputTemplate.forEach(fixture => { + fixtures.multisigInputTemplate.forEach((fixture: any) => { it(`should encode multisig input`, () => { - const signatures = fixture.signatures.map(signature => + const signatures = fixture.signatures.map((signature: any) => signature ? Buffer.from(signature, "hex") : bitbox.Script.opcodes.OP_0 @@ -340,7 +342,7 @@ describe("#Script", () => { }) it(`should confirm correctly formatted multisig input`, () => { - const signatures = fixture.signatures.map(signature => + const signatures = fixture.signatures.map((signature: any) => signature ? Buffer.from(signature, "hex") : bitbox.Script.opcodes.OP_0 @@ -354,9 +356,9 @@ describe("#Script", () => { }) describe("#multisigOutputTemplate", () => { - fixtures.multisigOutputTemplate.forEach(fixture => { + fixtures.multisigOutputTemplate.forEach((fixture: any) => { it(`should encode multisig output`, () => { - const pubKeys = fixture.pubKeys.map(p => Buffer.from(p, "hex")) + const pubKeys = fixture.pubKeys.map((p: any) => Buffer.from(p, "hex")) const m = pubKeys.length const buf = bitbox.Script.multisig.output.encode(m, pubKeys) @@ -371,7 +373,7 @@ describe("#Script", () => { }) it(`should confirm correctly formatted multisig output`, () => { - const pubKeys = fixture.pubKeys.map(p => Buffer.from(p, "hex")) + const pubKeys = fixture.pubKeys.map((p: any) => Buffer.from(p, "hex")) const m = pubKeys.length const buf = bitbox.Script.multisig.output.encode(m, pubKeys) const valid = bitbox.Script.multisig.output.check(buf) @@ -383,7 +385,7 @@ describe("#Script", () => { describe("#scriptHashTemplate", () => { describe("#scriptHashInputTemplate", () => { - fixtures.scriptHashInputTemplate.forEach(fixture => { + fixtures.scriptHashInputTemplate.forEach((fixture: any) => { it(`should encode scriptHash input`, () => { const buf = bitbox.Script.scriptHash.input.encode( bitbox.Script.fromASM(fixture.redeemScriptSig), @@ -418,7 +420,7 @@ describe("#Script", () => { }) describe("#scriptHashOutputTemplate", () => { - fixtures.scriptHashOutputTemplate.forEach(fixture => { + fixtures.scriptHashOutputTemplate.forEach((fixture: any) => { it(`should encode scriptHash output`, () => { const redeemScript = bitbox.Script.fromASM(fixture.output) const scriptHash = bitbox.Crypto.hash160(redeemScript) diff --git a/test/unit/Transaction.js b/test/unit/Transaction.ts similarity index 90% rename from test/unit/Transaction.js rename to test/unit/Transaction.ts index c107ffe7..03adc2e3 100644 --- a/test/unit/Transaction.js +++ b/test/unit/Transaction.ts @@ -1,9 +1,11 @@ -const assert = require("assert") +import * as assert from "assert"; +import axios from "axios"; +import * as sinon from "sinon"; + +// TODO: port from require to import syntax const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() const Transaction = require("../../lib/Transaction").Transaction -const axios = require("axios") -const sinon = require("sinon") const resturl = require("../../lib/BITBOX").resturl describe("#Transaction", () => { @@ -20,7 +22,7 @@ describe("#Transaction", () => { }) describe("#details", () => { - let sandbox + let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) @@ -57,7 +59,7 @@ describe("#Transaction", () => { bitbox.Transaction.details( "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8" ) - .then(result => { + .then((result: any) => { assert.deepEqual(data, result) }) .then(done, done) diff --git a/test/unit/TransactionBuilder.js b/test/unit/TransactionBuilder.ts similarity index 96% rename from test/unit/TransactionBuilder.js rename to test/unit/TransactionBuilder.ts index a974c644..7dd5cd3b 100644 --- a/test/unit/TransactionBuilder.js +++ b/test/unit/TransactionBuilder.ts @@ -1,5 +1,7 @@ +import * as assert from "assert"; + +// TODO: port from require to import syntax const fixtures = require("./fixtures/TransactionBuilder.json") -const assert = require("assert") const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() const TransactionBuilder = require("../../lib/TransactionBuilder").TransactionBuilder @@ -15,7 +17,7 @@ describe("#TransactionBuilder", () => { describe("#hashTypes", () => { const transactionBuilder = new bitbox.TransactionBuilder("mainnet") - fixtures.hashTypes.forEach(fixture => { + fixtures.hashTypes.forEach((fixture: any) => { it(`should match hash type`, () => { assert.equal( fixture[Object.keys(fixture)[0]], @@ -28,7 +30,7 @@ describe("#TransactionBuilder", () => { describe("#P2PK", () => { describe("#toOne", () => { describe("#Mainnet", () => { - fixtures.scripts.p2pk.toOne.mainnet.forEach(fixture => { + fixtures.scripts.p2pk.toOne.mainnet.forEach((fixture: any) => { it(`should create 1-to-1 P2PK transaction on mainnet`, () => { const node = bitbox.HDNode.fromXPriv(fixture.xpriv) const transactionBuilder = new bitbox.TransactionBuilder() @@ -65,7 +67,7 @@ describe("#TransactionBuilder", () => { }) describe("#Testnet", () => { - fixtures.scripts.p2pk.toOne.testnet.forEach(fixture => { + fixtures.scripts.p2pk.toOne.testnet.forEach((fixture: any) => { it(`should create 1-to-1 P2PK transaction on testnet`, () => { const node = bitbox.HDNode.fromXPriv(fixture.xpriv) const transactionBuilder = new bitbox.TransactionBuilder("testnet") @@ -104,7 +106,7 @@ describe("#TransactionBuilder", () => { describe("#toMany", () => { describe("#Mainnet", () => { - fixtures.scripts.p2pk.toMany.mainnet.forEach(fixture => { + fixtures.scripts.p2pk.toMany.mainnet.forEach((fixture: any) => { it(`should create 1-to-many P2PK transaction on mainnet`, () => { const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) @@ -148,7 +150,7 @@ describe("#TransactionBuilder", () => { }) describe("#Testnet", () => { - fixtures.scripts.p2pk.toMany.testnet.forEach(fixture => { + fixtures.scripts.p2pk.toMany.testnet.forEach((fixture: any) => { it(`should create 1-to-many P2PK transaction on testnet`, () => { const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) @@ -194,7 +196,7 @@ describe("#TransactionBuilder", () => { describe("#manyToMany", () => { describe("#Mainnet", () => { - fixtures.scripts.p2pk.manyToMany.mainnet.forEach(fixture => { + fixtures.scripts.p2pk.manyToMany.mainnet.forEach((fixture: any) => { it(`should create many-to-many P2PK transaction on mainnet`, () => { const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) @@ -255,7 +257,7 @@ describe("#TransactionBuilder", () => { }) describe("#Testnet", () => { - fixtures.scripts.p2pk.manyToMany.testnet.forEach(fixture => { + fixtures.scripts.p2pk.manyToMany.testnet.forEach((fixture: any) => { it(`should create many-to-many P2PK transaction on testnet`, () => { const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) @@ -318,7 +320,7 @@ describe("#TransactionBuilder", () => { describe("#fromMany", () => { describe("#Mainnet", () => { - fixtures.scripts.p2pk.fromMany.mainnet.forEach(fixture => { + fixtures.scripts.p2pk.fromMany.mainnet.forEach((fixture: any) => { it(`should create many-to-1 P2PK transaction on mainnet`, () => { const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) @@ -375,7 +377,7 @@ describe("#TransactionBuilder", () => { }) describe("#Testnet", () => { - fixtures.scripts.p2pk.fromMany.testnet.forEach(fixture => { + fixtures.scripts.p2pk.fromMany.testnet.forEach((fixture: any) => { it(`should create many-to-1 P2PK transaction on testnet`, () => { const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) @@ -436,7 +438,7 @@ describe("#TransactionBuilder", () => { describe("#P2PKH", () => { describe("#toOne", () => { describe("#Mainnet", () => { - fixtures.scripts.p2pkh.toOne.mainnet.forEach(fixture => { + fixtures.scripts.p2pkh.toOne.mainnet.forEach((fixture: any) => { it(`should create 1-to-1 P2PKH transaction on mainnet`, () => { const hdnode = bitbox.HDNode.fromXPriv(fixture.xpriv) const transactionBuilder = new bitbox.TransactionBuilder() @@ -473,7 +475,7 @@ describe("#TransactionBuilder", () => { }) describe("#Testnet", () => { - fixtures.scripts.p2pkh.toOne.testnet.forEach(fixture => { + fixtures.scripts.p2pkh.toOne.testnet.forEach((fixture: any) => { it(`should create 1-to-1 P2PKH transaction on testnet`, () => { const hdnode = bitbox.HDNode.fromXPriv(fixture.xpriv, "testnet") const transactionBuilder = new bitbox.TransactionBuilder("testnet") @@ -510,7 +512,7 @@ describe("#TransactionBuilder", () => { }) describe("#RegTest", () => { - fixtures.scripts.p2pkh.toOne.regtest.forEach(fixture => { + fixtures.scripts.p2pkh.toOne.regtest.forEach((fixture: any) => { it(`should create 1-to-1 P2PKH transaction on regtest`, () => { const hdnode = bitbox.HDNode.fromXPriv(fixture.xpriv) const transactionBuilder = new bitbox.TransactionBuilder("regtest") @@ -549,7 +551,7 @@ describe("#TransactionBuilder", () => { describe("#toMany", () => { describe("#Mainnet", () => { - fixtures.scripts.p2pkh.toMany.mainnet.forEach(fixture => { + fixtures.scripts.p2pkh.toMany.mainnet.forEach((fixture: any) => { it(`should create 1-to-2 P2PKH transaction on mainnet`, () => { const hdnode = bitbox.HDNode.fromXPriv(fixture.xpriv) const transactionBuilder = new bitbox.TransactionBuilder() @@ -592,7 +594,7 @@ describe("#TransactionBuilder", () => { }) describe("#Testnet", () => { - fixtures.scripts.p2pkh.toMany.testnet.forEach(fixture => { + fixtures.scripts.p2pkh.toMany.testnet.forEach((fixture: any) => { // TODO pass in tesnet network config it(`should create 1-to-2 P2PKH transaction on testnet`, () => { const hdnode = bitbox.HDNode.fromXPriv(fixture.xpriv) @@ -636,7 +638,7 @@ describe("#TransactionBuilder", () => { }) describe("#RegTest", () => { - fixtures.scripts.p2pkh.toMany.regtest.forEach(fixture => { + fixtures.scripts.p2pkh.toMany.regtest.forEach((fixture: any) => { // TODO pass in tesnet network config it(`should create 1-to-2 P2PKH transaction on regtest`, () => { const hdnode = bitbox.HDNode.fromXPriv(fixture.xpriv) @@ -682,7 +684,7 @@ describe("#TransactionBuilder", () => { describe("#manyToMany", () => { describe("#Mainnet", () => { - fixtures.scripts.p2pkh.manyToMany.mainnet.forEach(fixture => { + fixtures.scripts.p2pkh.manyToMany.mainnet.forEach((fixture: any) => { it(`should create 2-to-2 P2PKH transaction on mainnet`, () => { const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) @@ -729,7 +731,7 @@ describe("#TransactionBuilder", () => { }) describe("#Testnet", () => { - fixtures.scripts.p2pkh.manyToMany.testnet.forEach(fixture => { + fixtures.scripts.p2pkh.manyToMany.testnet.forEach((fixture: any) => { it(`should create 2-to-2 P2PKH transaction on testnet`, () => { const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) @@ -776,7 +778,7 @@ describe("#TransactionBuilder", () => { }) describe("#RegTest", () => { - fixtures.scripts.p2pkh.manyToMany.regtest.forEach(fixture => { + fixtures.scripts.p2pkh.manyToMany.regtest.forEach((fixture: any) => { it(`should create 2-to-2 P2PKH transaction on regtest`, () => { const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) @@ -825,7 +827,7 @@ describe("#TransactionBuilder", () => { describe("#fromMany", () => { describe("#Mainnet", () => { - fixtures.scripts.p2pkh.fromMany.mainnet.forEach(fixture => { + fixtures.scripts.p2pkh.fromMany.mainnet.forEach((fixture: any) => { it(`should create 2-to-1 P2PKH transaction on mainnet`, () => { const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) @@ -865,7 +867,7 @@ describe("#TransactionBuilder", () => { }) describe("#Testnet", () => { - fixtures.scripts.p2pkh.fromMany.testnet.forEach(fixture => { + fixtures.scripts.p2pkh.fromMany.testnet.forEach((fixture: any) => { it(`should create 2-to-1 P2PKH transaction on testnet`, () => { const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) @@ -905,7 +907,7 @@ describe("#TransactionBuilder", () => { }) describe("#RegTest", () => { - fixtures.scripts.p2pkh.fromMany.regtest.forEach(fixture => { + fixtures.scripts.p2pkh.fromMany.regtest.forEach((fixture: any) => { it(`should create 2-to-1 P2PKH transaction on regtest`, () => { const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) @@ -948,7 +950,7 @@ describe("#TransactionBuilder", () => { describe("#op_return", () => { describe("#Mainnet", () => { - fixtures.nulldata.mainnet.forEach(fixture => { + fixtures.nulldata.mainnet.forEach((fixture: any) => { it(`should create transaction w/ OP_RETURN output on mainnet`, () => { const node = bitbox.HDNode.fromXPriv(fixture.xpriv) const transactionBuilder = new bitbox.TransactionBuilder() @@ -983,7 +985,7 @@ describe("#TransactionBuilder", () => { }) describe("#Testnet", () => { - fixtures.nulldata.testnet.forEach(fixture => { + fixtures.nulldata.testnet.forEach((fixture: any) => { it(`should create transaction w/ OP_RETURN output on testnet`, () => { const node = bitbox.HDNode.fromXPriv(fixture.xpriv) const transactionBuilder = new bitbox.TransactionBuilder("testnet") @@ -1018,7 +1020,7 @@ describe("#TransactionBuilder", () => { }) describe("#RegTest", () => { - fixtures.nulldata.regtest.forEach(fixture => { + fixtures.nulldata.regtest.forEach((fixture: any) => { it(`should create transaction w/ OP_RETURN output on regtest`, () => { const node = bitbox.HDNode.fromXPriv(fixture.xpriv) const transactionBuilder = new bitbox.TransactionBuilder("regtest") @@ -1056,7 +1058,7 @@ describe("#TransactionBuilder", () => { describe("#P2MS", () => { describe("#toOne", () => { describe("#Mainnet", () => { - fixtures.scripts.p2ms.toOne.mainnet.forEach(fixture => { + fixtures.scripts.p2ms.toOne.mainnet.forEach((fixture: any) => { it(`should create 1-to-1 1-of-2 P2MS transaction on mainnet`, () => { const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) @@ -1136,7 +1138,7 @@ describe("#TransactionBuilder", () => { describe("#toMany", () => { describe("#Mainnet", () => { - fixtures.scripts.p2ms.toMany.mainnet.forEach(fixture => { + fixtures.scripts.p2ms.toMany.mainnet.forEach((fixture: any) => { it(`should create 1-to-2 P2MS transaction on mainnet`, () => { const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) @@ -1226,7 +1228,7 @@ describe("#TransactionBuilder", () => { describe("#manyToMany", () => { describe("#Mainnet", () => { - fixtures.scripts.p2ms.manyToMany.mainnet.forEach(fixture => { + fixtures.scripts.p2ms.manyToMany.mainnet.forEach((fixture: any) => { it(`should create 2-to-2 P2MS transaction on mainnet`, () => { const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) @@ -1335,7 +1337,7 @@ describe("#TransactionBuilder", () => { describe("#fromMany", () => { describe("#Mainnet", () => { - fixtures.scripts.p2ms.fromMany.mainnet.forEach(fixture => { + fixtures.scripts.p2ms.fromMany.mainnet.forEach((fixture: any) => { it(`should create 2-to-1 P2MS transaction on mainnet`, () => { const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) @@ -1436,7 +1438,7 @@ describe("#TransactionBuilder", () => { describe("#P2SH", () => { describe("#toOne", () => { describe("#Mainnet", () => { - fixtures.scripts.p2sh.toOne.mainnet.forEach(fixture => { + fixtures.scripts.p2sh.toOne.mainnet.forEach((fixture: any) => { it(`should create 1-to-1 P2SH transaction on mainnet`, () => { const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) @@ -1522,7 +1524,7 @@ describe("#TransactionBuilder", () => { describe("#toMany", () => { describe("#Mainnet", () => { - fixtures.scripts.p2sh.toMany.mainnet.forEach(fixture => { + fixtures.scripts.p2sh.toMany.mainnet.forEach((fixture: any) => { it(`should create 1-to-2 P2SH transaction on mainnet`, () => { const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) @@ -1620,7 +1622,7 @@ describe("#TransactionBuilder", () => { describe("#manyToMany", () => { describe("#Mainnet", () => { - fixtures.scripts.p2sh.manyToMany.mainnet.forEach(fixture => { + fixtures.scripts.p2sh.manyToMany.mainnet.forEach((fixture: any) => { it(`should create 2-to-2 P2SH transaction on mainnet`, () => { const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) @@ -1740,7 +1742,7 @@ describe("#TransactionBuilder", () => { describe("#fromMany", () => { describe("#Mainnet", () => { - fixtures.scripts.p2sh.fromMany.mainnet.forEach(fixture => { + fixtures.scripts.p2sh.fromMany.mainnet.forEach((fixture: any) => { it(`should create 2-to-1 P2SH transaction on mainnet`, () => { const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) @@ -1848,7 +1850,7 @@ describe("#TransactionBuilder", () => { describe("#op_return", () => { describe("#Mainnet", () => { - fixtures.nulldata.mainnet.forEach(fixture => { + fixtures.nulldata.mainnet.forEach((fixture: any) => { it(`should create transaction w/ OP_RETURN output on mainnet`, () => { const node = bitbox.HDNode.fromXPriv(fixture.xpriv) const transactionBuilder = new bitbox.TransactionBuilder() @@ -1883,7 +1885,7 @@ describe("#TransactionBuilder", () => { }) describe("#Testnet", () => { - fixtures.nulldata.testnet.forEach(fixture => { + fixtures.nulldata.testnet.forEach((fixture: any) => { it(`should create transaction w/ OP_RETURN output on testnet`, () => { const node = bitbox.HDNode.fromXPriv(fixture.xpriv) const transactionBuilder = new bitbox.TransactionBuilder("testnet") @@ -1918,7 +1920,7 @@ describe("#TransactionBuilder", () => { }) describe("#RegTest", () => { - fixtures.nulldata.regtest.forEach(fixture => { + fixtures.nulldata.regtest.forEach((fixture: any) => { it(`should create transaction w/ OP_RETURN output on regtest`, () => { const node = bitbox.HDNode.fromXPriv(fixture.xpriv) const transactionBuilder = new bitbox.TransactionBuilder("regtest") @@ -1954,7 +1956,7 @@ describe("#TransactionBuilder", () => { }) describe("#bip66", () => { - fixtures.bip66.forEach(fixture => { + fixtures.bip66.forEach((fixture: any) => { it(`should bip66 encode as ${fixture.DER}`, () => { const transactionBuilder = new bitbox.TransactionBuilder() const r = Buffer.from(fixture.r, "hex") @@ -1964,7 +1966,7 @@ describe("#TransactionBuilder", () => { }) }) - fixtures.bip66.forEach(fixture => { + fixtures.bip66.forEach((fixture: any) => { it(`should bip66 decode ${fixture.DER}`, () => { const transactionBuilder = new bitbox.TransactionBuilder() const buffer = Buffer.from(fixture.DER, "hex") @@ -1974,7 +1976,7 @@ describe("#TransactionBuilder", () => { }) }) - fixtures.bip66.forEach(fixture => { + fixtures.bip66.forEach((fixture: any) => { it(`should bip66 check ${fixture.DER}`, () => { const transactionBuilder = new bitbox.TransactionBuilder() const buffer = Buffer.from(fixture.DER, "hex") @@ -1984,17 +1986,17 @@ describe("#TransactionBuilder", () => { }) describe("#bip68", () => { - fixtures.bip68.encode.forEach(fixture => { + fixtures.bip68.encode.forEach((fixture: any) => { it(`should bip68 encode as ${fixture.result}`, () => { const transactionBuilder = new bitbox.TransactionBuilder() - const obj = {} + const obj: any = {} obj[fixture.type] = fixture.value const encode = transactionBuilder.bip68.encode(obj) assert.equal(encode, fixture.result) }) }) - fixtures.bip68.decode.forEach(fixture => { + fixtures.bip68.decode.forEach((fixture: any) => { it(`should bip68 decode ${fixture.result}`, () => { const transactionBuilder = new bitbox.TransactionBuilder() const obj = {} @@ -2007,7 +2009,7 @@ describe("#TransactionBuilder", () => { describe("#LockTime", () => { describe("#Mainnet", () => { - fixtures.locktime.mainnet.forEach(fixture => { + fixtures.locktime.mainnet.forEach((fixture: any) => { it(`should create transaction with nLockTime on mainnet`, () => { const node = bitbox.HDNode.fromXPriv(fixture.xpriv) const transactionBuilder = new bitbox.TransactionBuilder() diff --git a/test/unit/Util.js b/test/unit/Util.ts similarity index 86% rename from test/unit/Util.js rename to test/unit/Util.ts index 86600a4a..490f2e9b 100644 --- a/test/unit/Util.js +++ b/test/unit/Util.ts @@ -1,9 +1,11 @@ -const assert = require("assert") -const axios = require("axios") +import * as assert from "assert"; +import axios from "axios"; +import * as sinon from "sinon"; + +// TODO: port from require to import syntax const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() const Util = require("../../lib/Util").Util -const sinon = require("sinon") const resturl = require("../../lib/BITBOX").resturl describe("#Util", () => { @@ -20,7 +22,7 @@ describe("#Util", () => { }) describe("#validateAddress", () => { - let sandbox + let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) @@ -40,7 +42,7 @@ describe("#Util", () => { bitbox.Util.validateAddress( "bitcoincash:qpz7qtkuyhrsz4qmnnrvf8gz9zd0u9v7eqsewyk4w5" ) - .then(result => { + .then((result: any) => { assert.deepEqual(data, result) }) .then(done, done) diff --git a/tsconfig.json b/tsconfig.json index 782c4eac..2c4879c6 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,8 +5,15 @@ "target": "es5", "downlevelIteration": true, "moduleResolution": "node", - "lib": ["es2017"], + "lib": [ + "es2017" + ], "sourceMap": true }, - "include": ["./lib", "./test", "index.ts"] -} + "include": [ + "./lib", + "./test", + "./test/unit/**/*.ts", + "index.ts" + ] +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 030ea52d..48853f9c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -80,6 +80,10 @@ lodash "^4.17.11" to-fast-properties "^2.0.0" +"@istanbuljs/nyc-config-typescript@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/nyc-config-typescript/-/nyc-config-typescript-0.1.3.tgz#944d15b3ebdb71f963a628daffaa25ade981bb86" + "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" @@ -262,6 +266,10 @@ dependencies: "@types/node" "*" +"@types/mocha@^5.2.6": + version "5.2.6" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.2.6.tgz#b8622d50557dd155e9f2f634b7d68fd38de5e94b" + "@types/node-emoji@^1.8.1": version "1.8.1" resolved "https://registry.yarnpkg.com/@types/node-emoji/-/node-emoji-1.8.1.tgz#689cb74fdf6e84309bcafce93a135dfecd01de3f" @@ -284,6 +292,10 @@ dependencies: "@types/node" "*" +"@types/sinon@^7.0.11": + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-7.0.11.tgz#6f28f005a36e779b7db0f1359b9fb9eef72aae88" + "@types/touch@^3.1.1": version "3.1.1" resolved "https://registry.yarnpkg.com/@types/touch/-/touch-3.1.1.tgz#fdbb769f2af98f8bdbd52bc3ebfb9eaaa4b40bc3" @@ -477,6 +489,10 @@ are-we-there-yet@~1.1.2: delegates "^1.0.0" readable-stream "^2.0.6" +arg@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.0.tgz#583c518199419e0037abb74062c37f8519e575f0" + argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -1657,7 +1673,7 @@ cached-path-relative@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.2.tgz#a13df4196d26776220cc3356eb147a52dba2c6db" -caching-transform@^3.0.1, caching-transform@^3.0.2: +caching-transform@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-3.0.2.tgz#601d46b91eca87687a281e71cef99791b0efca70" dependencies: @@ -3145,7 +3161,7 @@ fill-range@^4.0.0: repeat-string "^1.6.1" to-regex-range "^2.1.0" -find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: +find-cache-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" dependencies: @@ -4183,17 +4199,17 @@ issue-parser@^3.0.0: lodash.isstring "^4.0.1" lodash.uniqby "^4.7.0" -istanbul-lib-coverage@^2.0.3, istanbul-lib-coverage@^2.0.5: +istanbul-lib-coverage@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49" -istanbul-lib-hook@^2.0.3, istanbul-lib-hook@^2.0.7: +istanbul-lib-hook@^2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz#c95695f383d4f8f60df1f04252a9550e15b5b133" dependencies: append-transform "^1.0.0" -istanbul-lib-instrument@^3.1.0, istanbul-lib-instrument@^3.3.0: +istanbul-lib-instrument@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630" dependencies: @@ -4205,7 +4221,7 @@ istanbul-lib-instrument@^3.1.0, istanbul-lib-instrument@^3.3.0: istanbul-lib-coverage "^2.0.5" semver "^6.0.0" -istanbul-lib-report@^2.0.4, istanbul-lib-report@^2.0.8: +istanbul-lib-report@^2.0.8: version "2.0.8" resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz#5a8113cd746d43c4889eba36ab10e7d50c9b4f33" dependencies: @@ -4213,7 +4229,7 @@ istanbul-lib-report@^2.0.4, istanbul-lib-report@^2.0.8: make-dir "^2.1.0" supports-color "^6.1.0" -istanbul-lib-source-maps@^3.0.2, istanbul-lib-source-maps@^3.0.6: +istanbul-lib-source-maps@^3.0.6: version "3.0.6" resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8" dependencies: @@ -4223,7 +4239,7 @@ istanbul-lib-source-maps@^3.0.2, istanbul-lib-source-maps@^3.0.6: rimraf "^2.6.3" source-map "^0.6.1" -istanbul-reports@^2.1.1, istanbul-reports@^2.2.4: +istanbul-reports@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.4.tgz#4e0d0ddf0f0ad5b49a314069d31b4f06afe49ad3" dependencies: @@ -4695,7 +4711,7 @@ macos-release@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.2.0.tgz#ab58d55dd4714f0a05ad4b0e90f4370fef5cdea8" -make-dir@^1.0.0, make-dir@^1.3.0: +make-dir@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" dependencies: @@ -4708,6 +4724,10 @@ make-dir@^2.0.0, make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" +make-error@^1.1.1: + version "1.3.5" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" + make-fetch-happen@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz#141497cb878f243ba93136c83d8aba12c216c083" @@ -5458,7 +5478,7 @@ number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" -nyc@*: +nyc@*, nyc@^14.1.1: version "14.1.1" resolved "https://registry.yarnpkg.com/nyc/-/nyc-14.1.1.tgz#151d64a6a9f9f5908a1b73233931e4a0a3075eeb" dependencies: @@ -5488,35 +5508,6 @@ nyc@*: yargs "^13.2.2" yargs-parser "^13.0.0" -nyc@^13.3.0: - version "13.3.0" - resolved "https://registry.yarnpkg.com/nyc/-/nyc-13.3.0.tgz#da4dbe91a9c8b9ead3f4f3344c76f353e3c78c75" - dependencies: - archy "^1.0.0" - arrify "^1.0.1" - caching-transform "^3.0.1" - convert-source-map "^1.6.0" - find-cache-dir "^2.0.0" - find-up "^3.0.0" - foreground-child "^1.5.6" - glob "^7.1.3" - istanbul-lib-coverage "^2.0.3" - istanbul-lib-hook "^2.0.3" - istanbul-lib-instrument "^3.1.0" - istanbul-lib-report "^2.0.4" - istanbul-lib-source-maps "^3.0.2" - istanbul-reports "^2.1.1" - make-dir "^1.3.0" - merge-source-map "^1.1.0" - resolve-from "^4.0.0" - rimraf "^2.6.3" - signal-exit "^3.0.2" - spawn-wrap "^1.4.2" - test-exclude "^5.1.0" - uuid "^3.3.2" - yargs "^12.0.5" - yargs-parser "^11.1.1" - oauth-sign@~0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" @@ -6930,6 +6921,13 @@ source-map-support@^0.4.15: dependencies: source-map "^0.5.6" +source-map-support@^0.5.12, source-map-support@^0.5.6: + version "0.5.12" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" @@ -6938,7 +6936,7 @@ source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.3: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" -source-map@^0.6.1, source-map@~0.6.1: +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" @@ -7304,7 +7302,7 @@ term-size@^1.2.0: dependencies: execa "^0.7.0" -test-exclude@^5.1.0, test-exclude@^5.2.3: +test-exclude@^5.2.3: version "5.2.3" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" dependencies: @@ -7419,6 +7417,16 @@ trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" +ts-node@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.1.0.tgz#8c4b37036abd448577db22a061fd7a67d47e658e" + dependencies: + arg "^4.1.0" + diff "^3.1.0" + make-error "^1.1.1" + source-map-support "^0.5.6" + yn "^3.0.0" + tslib@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" @@ -7870,3 +7878,7 @@ yargs@^13.1.0, yargs@^13.2.2: yeast@0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + +yn@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.0.tgz#fcbe2db63610361afcc5eb9e0ac91e976d046114" From 091475b9843c4536db09e08de8dec737e921897e Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sun, 12 May 2019 11:52:10 +0900 Subject: [PATCH 361/480] Update tets. --- package.json | 2 +- test/mocha.opts | 2 +- test/unit/BitcoinCash.ts | 104 +++++++++++++++++------------------ test/unit/Crypto.ts | 6 ++ test/unit/RawTransactions.js | 35 ++++++------ test/unit/RawTransactions.ts | 42 +++++++------- 6 files changed, 98 insertions(+), 93 deletions(-) diff --git a/package.json b/package.json index 51c74a4b..6b535d23 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "Chris Troutner " ], "scripts": { - "test": "nyc mocha test/unit --timeout 30000", + "test": "tsc && nyc mocha test/unit --timeout 30000", "test:integration": "TEST=integration nyc --reporter=text mocha --require babel-core/register --timeout 30000 test/integration", "coverage": "nyc report --reporter=text-lcov | coveralls", "build": "tsc" diff --git a/test/mocha.opts b/test/mocha.opts index d5169bfe..9be94450 100644 --- a/test/mocha.opts +++ b/test/mocha.opts @@ -1,4 +1,4 @@ ---require ts-node/register #replace with ts-node/register/transpile-only if you have custom types +--require ts-node/register/transpile-only #replace with ts-node/register/transpile-only if you have custom types --require source-map-support/register --recursivee test/unit/**/*.ts \ No newline at end of file diff --git a/test/unit/BitcoinCash.ts b/test/unit/BitcoinCash.ts index 64fc77a9..5d9c7dab 100644 --- a/test/unit/BitcoinCash.ts +++ b/test/unit/BitcoinCash.ts @@ -271,59 +271,59 @@ describe("#BitcoinCash", () => { }) }) - // describe("#bip38", () => { - // describe("#encryptBIP38", () => { - // fixtures.bip38.encrypt.mainnet.forEach((fixture: any) => { - // it(`BIP 38 encrypt wif ${fixture.wif} with password ${ - // fixture.password - // } on mainnet`, () => { - // const encryptedKey = bitbox.BitcoinCash.encryptBIP38( - // fixture.wif, - // fixture.password - // ) - // assert.equal(encryptedKey, fixture.encryptedKey) - // }) - // }) + describe("#bip38", () => { + describe("#encryptBIP38", () => { + fixtures.bip38.encrypt.mainnet.forEach((fixture: any) => { + it(`BIP 38 encrypt wif ${fixture.wif} with password ${ + fixture.password + } on mainnet`, () => { + const encryptedKey = bitbox.BitcoinCash.encryptBIP38( + fixture.wif, + fixture.password + ) + assert.equal(encryptedKey, fixture.encryptedKey) + }) + }) - // fixtures.bip38.encrypt.testnet.forEach((fixture: any) => { - // it(`BIP 38 encrypt wif ${fixture.wif} with password ${ - // fixture.password - // } on testnet`, () => { - // const encryptedKey = bitbox.BitcoinCash.encryptBIP38( - // fixture.wif, - // fixture.password - // ) - // assert.equal(encryptedKey, fixture.encryptedKey) - // }) - // }) - // }) + fixtures.bip38.encrypt.testnet.forEach((fixture: any) => { + it(`BIP 38 encrypt wif ${fixture.wif} with password ${ + fixture.password + } on testnet`, () => { + const encryptedKey = bitbox.BitcoinCash.encryptBIP38( + fixture.wif, + fixture.password + ) + assert.equal(encryptedKey, fixture.encryptedKey) + }) + }) + }) - // describe("#decryptBIP38", () => { - // fixtures.bip38.decrypt.mainnet.forEach((fixture: any) => { - // it(`BIP 38 decrypt encrypted key ${ - // fixture.encryptedKey - // } on mainnet`, () => { - // const wif = bitbox.BitcoinCash.decryptBIP38( - // fixture.encryptedKey, - // fixture.password, - // "mainnet" - // ) - // assert.equal(wif, fixture.wif) - // }) - // }) + describe("#decryptBIP38", () => { + fixtures.bip38.decrypt.mainnet.forEach((fixture: any) => { + it(`BIP 38 decrypt encrypted key ${ + fixture.encryptedKey + } on mainnet`, () => { + const wif = bitbox.BitcoinCash.decryptBIP38( + fixture.encryptedKey, + fixture.password, + "mainnet" + ) + assert.equal(wif, fixture.wif) + }) + }) - // fixtures.bip38.decrypt.testnet.forEach((fixture: any) => { - // it(`BIP 38 decrypt encrypted key ${ - // fixture.encryptedKey - // } on testnet`, () => { - // const wif = bitbox.BitcoinCash.decryptBIP38( - // fixture.encryptedKey, - // fixture.password, - // "testnet" - // ) - // assert.equal(wif, fixture.wif) - // }) - // }) - // }) - // }) + fixtures.bip38.decrypt.testnet.forEach((fixture: any) => { + it(`BIP 38 decrypt encrypted key ${ + fixture.encryptedKey + } on testnet`, () => { + const wif = bitbox.BitcoinCash.decryptBIP38( + fixture.encryptedKey, + fixture.password, + "testnet" + ) + assert.equal(wif, fixture.wif) + }) + }) + }) + }) }) diff --git a/test/unit/Crypto.ts b/test/unit/Crypto.ts index 1e2fa573..05a849f7 100644 --- a/test/unit/Crypto.ts +++ b/test/unit/Crypto.ts @@ -98,8 +98,14 @@ describe("#Crypto", () => { }) }) + describe("#randomBytes", () => { for (let i = 0; i < 6; i++) { + it("should return 16 bytes of entropy hex encoded via default value", () => { + const entropy = bitbox.Crypto.randomBytes() + assert.equal(Buffer.byteLength(entropy), 16) + }) + it("should return 16 bytes of entropy hex encoded", () => { const entropy = bitbox.Crypto.randomBytes(16) assert.equal(Buffer.byteLength(entropy), 16) diff --git a/test/unit/RawTransactions.js b/test/unit/RawTransactions.js index 8adcdb4b..69e386dd 100644 --- a/test/unit/RawTransactions.js +++ b/test/unit/RawTransactions.js @@ -116,24 +116,23 @@ describe("#RawTransactions", function () { }); }); }); }); - // describe("#getRawTransaction", () => { - // let sandbox: any - // beforeEach(() => (sandbox = sinon.sandbox.create())) - // afterEach(() => sandbox.restore()) - // it("should get raw transaction", done => { - // const data = - // "020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000" - // const resolved = new Promise(r => r({ data: data })) - // sandbox.stub(axios, "get").returns(resolved) - // bitbox.RawTransactions.getRawTransaction([ - // "808d617eccaad4f1397fe07a06ec5ed15a0821cf22a3e0931c0c92aef9e572b6" - // ]) - // .then((result: any) => { - // assert.deepEqual(data, result[0]) - // }) - // .then(done, done) - // }) - // }) + describe("#getRawTransaction", function () { + var sandbox; + beforeEach(function () { return (sandbox = sinon.sandbox.create()); }); + afterEach(function () { return sandbox.restore(); }); + it("should get raw transaction", function (done) { + var data = "020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000"; + var resolved = new Promise(function (r) { return r({ data: data }); }); + sandbox.stub(axios_1.default, "get").returns(resolved); + bitbox.RawTransactions.getRawTransaction([ + "808d617eccaad4f1397fe07a06ec5ed15a0821cf22a3e0931c0c92aef9e572b6" + ]) + .then(function (result) { + assert.deepEqual(data, result[0]); + }) + .then(done, done); + }); + }); describe("#sendRawTransaction", function () { var sandbox; beforeEach(function () { return (sandbox = sinon.sandbox.create()); }); diff --git a/test/unit/RawTransactions.ts b/test/unit/RawTransactions.ts index f2e7b472..73c03d9e 100644 --- a/test/unit/RawTransactions.ts +++ b/test/unit/RawTransactions.ts @@ -85,27 +85,27 @@ describe("#RawTransactions", () => { }) }) - // describe("#getRawTransaction", () => { - // let sandbox: any - // beforeEach(() => (sandbox = sinon.sandbox.create())) - // afterEach(() => sandbox.restore()) - - // it("should get raw transaction", done => { - // const data = - // "020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000" - - // const resolved = new Promise(r => r({ data: data })) - // sandbox.stub(axios, "get").returns(resolved) - - // bitbox.RawTransactions.getRawTransaction([ - // "808d617eccaad4f1397fe07a06ec5ed15a0821cf22a3e0931c0c92aef9e572b6" - // ]) - // .then((result: any) => { - // assert.deepEqual(data, result[0]) - // }) - // .then(done, done) - // }) - // }) + describe("#getRawTransaction", () => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get raw transaction", done => { + const data = + "020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000" + + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.RawTransactions.getRawTransaction([ + "808d617eccaad4f1397fe07a06ec5ed15a0821cf22a3e0931c0c92aef9e572b6" + ]) + .then((result: any) => { + assert.deepEqual(data, result[0]) + }) + .then(done, done) + }) + }) describe("#sendRawTransaction", () => { let sandbox: any From 6b3791524f69b246e0a77b41bcbc8893fb77d985 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sun, 12 May 2019 12:24:02 +0900 Subject: [PATCH 362/480] generate web output --- .gitignore | 2 ++ .nycrc | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 9a829848..954c3821 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,5 @@ lib/**/*.js lib/**/*.js.map test/**/*.js test/**/*.js.map + +coverage/ \ No newline at end of file diff --git a/.nycrc b/.nycrc index 504abf9e..8c07fc31 100644 --- a/.nycrc +++ b/.nycrc @@ -1,3 +1,4 @@ { - "extends": "@istanbuljs/nyc-config-typescript" + "extends": "@istanbuljs/nyc-config-typescript", + "reporter": ["html", "text"] } \ No newline at end of file From c6a5d8da3795698d45ccaa6cf2c0795fb45b5da3 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sun, 12 May 2019 18:05:26 +0900 Subject: [PATCH 363/480] Tests --- lib/Address.ts | 62 ++-- package.json | 2 +- test/integration/address.js | 334 ------------------ test/unit/Address.ts | 582 ++++++++++++++++++++++++++------ test/unit/BitcoinCash.ts | 104 +++--- test/unit/fixtures/Address.json | 45 ++- 6 files changed, 602 insertions(+), 527 deletions(-) diff --git a/lib/Address.ts b/lib/Address.ts index c14032f3..6f796d36 100644 --- a/lib/Address.ts +++ b/lib/Address.ts @@ -62,9 +62,8 @@ export class Address { // Translate address from any address format into a specific format. toLegacyAddress(address: string): string { - const { prefix, type, hash } = this._decode(address) - - let bitcoincash: BitcoinCash + const { prefix, type, hash }: Decoded = this._decode(address) + let bitcoincash: BitcoinCash = coininfo.bitcoincash.main switch (prefix) { case "bitcoincash": bitcoincash = coininfo.bitcoincash.main @@ -75,11 +74,9 @@ export class Address { case "bchreg": bitcoincash = coininfo.bitcoincash.regtest break - default: - throw `unsupported prefix : ${prefix}` } - let version: number + let version: number = bitcoincash.versions.public switch (type) { case "P2PKH": version = bitcoincash.versions.public @@ -87,8 +84,6 @@ export class Address { case "P2SH": version = bitcoincash.versions.scripthash break - default: - throw `unsupported address type : ${type}` } const hashBuf: Buffer = Buffer.from(hash) @@ -177,44 +172,53 @@ export class Address { } _decodeLegacyAddress(address: string): Decoded { - const { version, hash } = Bitcoin.address.fromBase58Check(address) + const { version, hash }: Bytes = Bitcoin.address.fromBase58Check(address) const info: { main: any test: any } = coininfo.bitcoincash + let decoded: Decoded = { + prefix: "", + type: "", + hash: hash, + format: "" + } switch (version) { case info.main.versions.public: - return { + decoded = { prefix: "bitcoincash", type: "P2PKH", hash: hash, format: "legacy" } + break case info.main.versions.scripthash: - return { + decoded = { prefix: "bitcoincash", type: "P2SH", hash: hash, format: "legacy" } + break case info.test.versions.public: - return { + decoded = { prefix: "bchtest", type: "P2PKH", hash: hash, format: "legacy" } + break case info.test.versions.scripthash: - return { + decoded = { prefix: "bchtest", type: "P2SH", hash: hash, format: "legacy" } - default: - throw new Error(`Invalid format : ${address}`) + break } + return decoded } _decodeCashAddress(address: string): Decoded { @@ -237,24 +241,27 @@ export class Address { } _decodeAddressFromHash160(address: string): DecodedHash160 { + let decodedHash160: DecodedHash160 = { + legacyAddress: "", + cashAddress: "", + format: "" + } if (address.length === 40) { - return { + decodedHash160 = { legacyAddress: this.hash160ToLegacy(address), cashAddress: this.hash160ToCash(address), format: "hash160" } } else if (this.isCashAddress(address) || this.isLegacyAddress(address)) { - return { + decodedHash160 = { legacyAddress: this.toLegacyAddress(address), cashAddress: this.toCashAddress(address), format: "nonHash160" } } - - throw new Error(`Invalid format : ${address}`) + return decodedHash160 } - // Test for address format. isLegacyAddress(address: string): boolean { return this.detectAddressFormat(address) === "legacy" } @@ -313,19 +320,22 @@ export class Address { else if (address[0] === "t") return "testnet" const decoded: Decoded = this._decode(address) + let prefix: string = "" switch (decoded.prefix) { case "bitcoincash": - return "mainnet" + prefix = "mainnet" + break case "bchtest": - return "testnet" + prefix = "testnet" + break case "bchreg": - return "regtest" - default: - throw new Error(`Invalid prefix : ${decoded.prefix}`) + prefix = "regtest" + break } - } + return prefix + } // Detect address type. detectAddressType(address: string): string { const decoded: Decoded = this._decode(address) diff --git a/package.json b/package.json index 6b535d23..90967dbd 100644 --- a/package.json +++ b/package.json @@ -104,4 +104,4 @@ "ts-node": "^8.1.0", "typescript": "^3.4.5" } -} \ No newline at end of file +} diff --git a/test/integration/address.js b/test/integration/address.js index 34ce06e4..02b5a103 100644 --- a/test/integration/address.js +++ b/test/integration/address.js @@ -14,337 +14,3 @@ const bitbox = new BITBOX() //const axios = require("axios") // Inspect utility used for debugging. -const util = require("util") -util.inspect.defaultOptions = { - showHidden: true, - colors: true, - depth: 3 -} - -describe(`#address`, () => { - describe(`#details`, () => { - it(`should GET address details for a single address`, async () => { - const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - - const result = await bitbox.Address.details(addr) - //console.log(`result: ${util.inspect(result)}`) - - assert.hasAllKeys(result, [ - "balance", - "balanceSat", - "totalReceived", - "totalReceivedSat", - "totalSent", - "totalSentSat", - "unconfirmedBalance", - "unconfirmedBalanceSat", - "unconfirmedTxApperances", - "txApperances", - "transactions", - "legacyAddress", - "cashAddress", - "currentPage", - "pagesTotal" - ]) - assert.isArray(result.transactions) - }) - - it(`should GET address details for an array of addresses`, async () => { - const addr = [ - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", - "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" - ] - - const result = await bitbox.Address.details(addr) - //console.log(`result: ${util.inspect(result)}`) - - assert.isArray(result) - assert.hasAllKeys(result[0], [ - "balance", - "balanceSat", - "totalReceived", - "totalReceivedSat", - "totalSent", - "totalSentSat", - "unconfirmedBalance", - "unconfirmedBalanceSat", - "unconfirmedTxApperances", - "txApperances", - "transactions", - "legacyAddress", - "cashAddress", - "currentPage", - "pagesTotal" - ]) - assert.isArray(result[0].transactions) - }) - - it(`should throw an error for improper input`, async () => { - try { - const addr = 12345 - - await bitbox.Address.details(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input address must be a string or array of strings` - ) - } - }) - - it(`should throw error on array size rate limit`, async () => { - try { - const addr = [] - for (let i = 0; i < 25; i++) - addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - - const result = await bitbox.Address.details(addr) - - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - }) - - describe(`#utxo`, () => { - it(`should GET utxos for a single address`, async () => { - const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - - const result = await bitbox.Address.utxo(addr) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.hasAllKeys(result, [ - "utxos", - "legacyAddress", - "cashAddress", - "scriptPubKey" - ]) - assert.isArray(result.utxos) - assert.hasAnyKeys(result.utxos[0], [ - "txid", - "vout", - "amount", - "satoshis", - "height", - "confirmations" - ]) - }) - - it(`should GET utxo details for an array of addresses`, async () => { - const addr = [ - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", - "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" - ] - - const result = await bitbox.Address.utxo(addr) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.isArray(result) - assert.hasAllKeys(result[0], [ - "utxos", - "legacyAddress", - "cashAddress", - "scriptPubKey" - ]) - assert.isArray(result[0].utxos) - assert.hasAnyKeys(result[0].utxos[0], [ - "txid", - "vout", - "amount", - "satoshis", - "height", - "confirmations" - ]) - }) - - it(`should throw an error for improper input`, async () => { - try { - const addr = 12345 - - await bitbox.Address.utxo(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input address must be a string or array of strings` - ) - } - }) - - it(`should throw error on array size rate limit`, async () => { - try { - const addr = [] - for (let i = 0; i < 25; i++) - addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - - const result = await bitbox.Address.utxo(addr) - - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - }) - - describe(`#unconfirmed`, () => { - it(`should GET unconfirmed details on a single address`, async () => { - const addr = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" - - const result = await bitbox.Address.unconfirmed(addr) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.hasAllKeys(result, ["utxos", "legacyAddress", "cashAddress"]) - assert.isArray(result.utxos) - }) - - it(`should GET unconfirmed details on multiple addresses`, async () => { - const addr = [ - "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", - "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" - ] - - const result = await bitbox.Address.unconfirmed(addr) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.isArray(result) - assert.hasAllKeys(result[0], ["utxos", "legacyAddress", "cashAddress"]) - assert.isArray(result[0].utxos) - }) - - it(`should throw an error for improper input`, async () => { - try { - const addr = 12345 - - await bitbox.Address.unconfirmed(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input address must be a string or array of strings` - ) - } - }) - - it(`should throw error on array size rate limit`, async () => { - try { - const addr = [] - for (let i = 0; i < 25; i++) - addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - - const result = await bitbox.Address.unconfirmed(addr) - - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - }) - - describe(`#transactions`, () => { - it(`should GET transactions for a single address`, async () => { - const addr = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" - - const result = await bitbox.Address.transactions(addr) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.hasAllKeys(result, [ - "txs", - "pagesTotal", - "cashAddress", - "currentPage", - "legacyAddress" - ]) - assert.isArray(result.txs) - assert.hasAnyKeys(result.txs[0], [ - "txid", - "version", - "locktime", - "vin", - "vout", - "confirmations", - "time", - "blocktime", - "valueOut", - "size", - "valueIn", - "fees" - ]) - }) - - it(`should get transactions on multiple addresses`, async () => { - const addr = [ - "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", - "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" - ] - - const result = await bitbox.Address.transactions(addr) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.isArray(result) - assert.hasAllKeys(result[0], [ - "txs", - "pagesTotal", - "cashAddress", - "currentPage", - "legacyAddress" - ]) - assert.isArray(result[0].txs) - assert.hasAnyKeys(result[0].txs[0], [ - "txid", - "version", - "locktime", - "vin", - "vout", - "confirmations", - "time", - "blocktime", - "valueOut", - "size", - "valueIn", - "fees" - ]) - }) - - it(`should throw an error for improper input`, async () => { - try { - const addr = 12345 - - await bitbox.Address.transactions(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input address must be a string or array of strings` - ) - } - }) - - it(`should throw error on array size rate limit`, async () => { - try { - const addr = [] - for (let i = 0; i < 25; i++) - addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - - const result = await bitbox.Address.transactions(addr) - - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - }) -}) diff --git a/test/unit/Address.ts b/test/unit/Address.ts index 167dffa8..39943f6a 100644 --- a/test/unit/Address.ts +++ b/test/unit/Address.ts @@ -1,6 +1,8 @@ -import * as assert from "assert"; +// import * as assert from "assert"; import axios from "axios"; import * as sinon from "sinon"; +const chai = require("chai") +const assert = chai.assert // TODO: port from require to import syntax const fixtures = require("./fixtures/Address.json") @@ -14,13 +16,14 @@ function flatten(arrays: any) { return [].concat.apply([], arrays) } -const XPUBS: string[] = flatten([fixtures.mainnetXPub, fixtures.testnetXPub]) -const XPRIVS: string[] = flatten([fixtures.mainnetXPriv, fixtures.testnetXPriv]) +const XPUBS: any[] = flatten([fixtures.mainnetXPub, fixtures.testnetXPub]) +const XPRIVS: any[] = flatten([fixtures.mainnetXPriv, fixtures.testnetXPriv]) const LEGACY_ADDRESSES: string[] = flatten([ fixtures.legacyMainnetP2PKH, fixtures.legacyMainnetP2SH, - fixtures.legacyTestnetP2PKH + fixtures.legacyTestnetP2PKH, + fixtures.legacyTestnetP2SH ]) const mainnet_xpubs: string[] = [] @@ -47,7 +50,8 @@ const TESTNET_ADDRESSES: string[] = flatten([ const CASHADDR_ADDRESSES: string[] = flatten([ fixtures.cashaddrMainnetP2PKH, fixtures.cashaddrMainnetP2SH, - fixtures.cashaddrTestnetP2PKH + fixtures.cashaddrTestnetP2PKH, + fixtures.cashaddrTestnetP2SH ]) const CASHADDR_ADDRESSES_NO_PREFIX: string[] = CASHADDR_ADDRESSES.map((address: string) => { @@ -65,7 +69,8 @@ const REGTEST_ADDRESSES_NO_PREFIX: string[] = REGTEST_ADDRESSES.map((address: st const HASH160_HASHES: string[] = flatten([ fixtures.hash160MainnetP2PKH, fixtures.hash160MainnetP2SH, - fixtures.hash160TestnetP2PKH + fixtures.hash160TestnetP2PKH, + fixtures.hash160TestnetP2SH ]) const P2PKH_ADDRESSES: string[] = flatten([ @@ -80,6 +85,12 @@ const P2SH_ADDRESSES: string[] = flatten([ fixtures.legacyMainnetP2SH, fixtures.cashaddrMainnetP2SH ]) +const util = require("util") +util.inspect.defaultOptions = { + showHidden: true, + colors: true, + depth: 3 +} describe("#Address", () => { describe("#AddressConstructor", () => { @@ -123,6 +134,7 @@ describe("#Address", () => { ) }) + describe("errors", () => { it("should fail when called with an invalid address", () => { assert.throws(() => { @@ -934,23 +946,37 @@ describe("#Address", () => { describe("#fromXPub", () => { XPUBS.forEach((xpub: any) => { xpub.addresses.forEach((address: any, j: number) => { - it(`generate public external change address ${j} for ${ + it(`should generate public external change address ${j} for ${ xpub.xpub }`, () => { assert.equal(bitbox.Address.fromXPub(xpub.xpub, `0/${j}`), address) }) }) }) + + it(`should generate public external change address ${XPUBS[0].addresses[0]} for ${ + XPUBS[0].xpub + }`, () => { + let address: string = XPUBS[0].addresses[0] + assert.equal(bitbox.Address.fromXPub(XPUBS[0].xpub), address) + }) }) describe("#fromXPriv", () => { XPRIVS.forEach((xpriv: any) => { xpriv.addresses.forEach((address: string, j: number) => { - it(`generate hardened address ${j} for ${xpriv.xpriv}`, () => { + it(`should generate hardened address ${j} for ${xpriv.xpriv}`, () => { assert.equal(bitbox.Address.fromXPriv(xpriv.xpriv, `0'/${j}`), address) }) }) }) + + it(`should generate hardened address ${XPRIVS[0].addresses[0]} for ${ + XPRIVS[0].xpriv + }`, () => { + let address: string = XPRIVS[0].addresses[0] + assert.equal(bitbox.Address.fromXPriv(XPRIVS[0].xpriv), address) + }) }) describe("#fromOutputScript", () => { @@ -966,126 +992,458 @@ describe("#Address", () => { // encode hash160 as P2SH output const scriptPubKey: any = bitbox.Script.scriptHash.output.encode(p2sh_hash160) - const p2shAddress: any = bitbox.Address.fromOutputScript(scriptPubKey) fixtures.p2shMainnet.forEach((address: string) => { - it(`generate address from output script`, () => { + const p2shAddress: any = bitbox.Address.fromOutputScript(scriptPubKey) + it(`generate mainnet address from output script`, () => { + assert.equal(p2shAddress, address) + }) + }) + + fixtures.p2shTestnet.forEach((address: string) => { + const p2shAddress: any = bitbox.Address.fromOutputScript(scriptPubKey, "testnet") + it(`generate testnet address from output script`, () => { assert.equal(p2shAddress, address) }) }) }) - describe("#details", () => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get details", done => { - const data: any = { - legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", - cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", - balance: 300.0828874, - balanceSat: 30008288740, - totalReceived: 12945.45174649, - totalReceivedSat: 1294545174649, - totalSent: 12645.36885909, - totalSentSat: 1264536885909, - unconfirmedBalance: 0, - unconfirmedBalanceSat: 0, - unconfirmedTxApperances: 0, - txApperances: 1042, - transactions: [ - "b29425a876f62e114508e67e66b5eb1ab0d320d7c9a57fb0ece086a36e2b7309" + // describe("#details", () => { + // let sandbox: any + // beforeEach(() => (sandbox = sinon.sandbox.create())) + // afterEach(() => sandbox.restore()) + + // it("should get details", done => { + // const data: any = { + // legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", + // cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", + // balance: 300.0828874, + // balanceSat: 30008288740, + // totalReceived: 12945.45174649, + // totalReceivedSat: 1294545174649, + // totalSent: 12645.36885909, + // totalSentSat: 1264536885909, + // unconfirmedBalance: 0, + // unconfirmedBalanceSat: 0, + // unconfirmedTxApperances: 0, + // txApperances: 1042, + // transactions: [ + // "b29425a876f62e114508e67e66b5eb1ab0d320d7c9a57fb0ece086a36e2b7309" + // ] + // } + + // const resolved: any = new Promise(r => r({ data: data })) + // sandbox.stub(axios, "get").returns(resolved) + + // bitbox.Address.details( + // "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + // ) + // .then((result: any) => { + // assert.deepEqual(data, result) + // }) + // .then(done, done) + // }) + // }) + + // describe("#utxo", () => { + // let sandbox: any + // beforeEach(() => (sandbox = sinon.sandbox.create())) + // afterEach(() => sandbox.restore()) + + // it("should get utxo", done => { + // const data = [ + // { + // legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", + // cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", + // txid: + // "6f56254424378d6914cebd097579c70664843e5876ca86f0bf412ba7f3928326", + // vout: 0, + // scriptPubKey: "a91479cb06a5986baf588237de9b7fb1a8f68c35b76687", + // amount: 12.5002911, + // satoshis: 1250029110, + // height: 528745, + // confirmations: 17 + // }, + // { + // legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", + // cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", + // txid: + // "b29425a876f62e114508e67e66b5eb1ab0d320d7c9a57fb0ece086a36e2b7309", + // vout: 0, + // scriptPubKey: "a91479cb06a5986baf588237de9b7fb1a8f68c35b76687", + // amount: 12.50069247, + // satoshis: 1250069247, + // height: 528744, + // confirmations: 18 + // } + // ] + // const resolved: any = new Promise(r => r({ data: data })) + // sandbox.stub(axios, "get").returns(resolved) + + // bitbox.Address.utxo( + // "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l" + // ) + // .then((result: any) => { + // assert.deepEqual(data, result) + // }) + // .then(done, done) + // }) + // }) + + // describe("#unconfirmed", () => { + // let sandbox: any + // beforeEach(() => (sandbox = sinon.sandbox.create())) + // afterEach(() => sandbox.restore()) + + // it("should get unconfirmed transactions", done => { + // const data = [ + // { + // txid: + // "e0aadd861a06993e39af932bb0b9ad69e7b37ef5843a13c6724789e1c94f3513", + // vout: 1, + // scriptPubKey: "76a914a0f531f4ff810a415580c12e54a7072946bb927e88ac", + // amount: 0.00008273, + // satoshis: 8273, + // confirmations: 0, + // ts: 1526680569, + // legacyAddress: "1Fg4r9iDrEkCcDmHTy2T79EusNfhyQpu7W", + // cashAddress: "bitcoincash:qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c" + // } + // ] + // const resolved: any = new Promise(r => r({ data: data })) + // sandbox.stub(axios, "get").returns(resolved) + + // bitbox.Address.unconfirmed( + // "bitcoincash:qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c" + // ) + // .then((result: any) => { + // assert.deepEqual(data, result) + // }) + // .then(done, done) + // }) + // }) + + describe(`#utxo`, () => { + describe(`#details`, () => { + it(`should GET address details for a single address`, async () => { + const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + + const result = await bitbox.Address.details(addr) + //console.log(`result: ${util.inspect(result)}`) + + assert.hasAllKeys(result, [ + "balance", + "balanceSat", + "totalReceived", + "totalReceivedSat", + "totalSent", + "totalSentSat", + "unconfirmedBalance", + "unconfirmedBalanceSat", + "unconfirmedTxApperances", + "txApperances", + "transactions", + "legacyAddress", + "cashAddress", + "currentPage", + "pagesTotal" + ]) + assert.isArray(result.transactions) + }) + + it(`should GET address details for an array of addresses`, async () => { + const addr = [ + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" ] - } - const resolved: any = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) + const result = await bitbox.Address.details(addr) + //console.log(`result: ${util.inspect(result)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "balance", + "balanceSat", + "totalReceived", + "totalReceivedSat", + "totalSent", + "totalSentSat", + "unconfirmedBalance", + "unconfirmedBalanceSat", + "unconfirmedTxApperances", + "txApperances", + "transactions", + "legacyAddress", + "cashAddress", + "currentPage", + "pagesTotal" + ]) + assert.isArray(result[0].transactions) + }) - bitbox.Address.details( - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - ) - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) + it(`should throw an error for improper input`, async () => { + try { + const addr = 12345 + + await bitbox.Address.details(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } + }) + + it(`should throw error on array size rate limit`, async () => { + try { + const addr = [] + for (let i = 0; i < 25; i++) + addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") + + const result = await bitbox.Address.details(addr) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + it(`should GET utxos for a single address`, async () => { + const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + + const result = await bitbox.Address.utxo(addr) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAllKeys(result, [ + "utxos", + "legacyAddress", + "cashAddress", + "scriptPubKey" + ]) + assert.isArray(result.utxos) + assert.hasAnyKeys(result.utxos[0], [ + "txid", + "vout", + "amount", + "satoshis", + "height", + "confirmations" + ]) + }) + + it(`should GET utxo details for an array of addresses`, async () => { + const addr = [ + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" + ] + + const result = await bitbox.Address.utxo(addr) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "utxos", + "legacyAddress", + "cashAddress", + "scriptPubKey" + ]) + assert.isArray(result[0].utxos) + assert.hasAnyKeys(result[0].utxos[0], [ + "txid", + "vout", + "amount", + "satoshis", + "height", + "confirmations" + ]) + }) + + it(`should throw an error for improper input`, async () => { + try { + const addr = 12345 + + await bitbox.Address.utxo(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } + }) + + it(`should throw error on array size rate limit`, async () => { + try { + const addr = [] + for (let i = 0; i < 25; i++) + addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") + + const result = await bitbox.Address.utxo(addr) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) }) - }) - describe("#utxo", () => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get utxo", done => { - const data = [ - { - legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", - cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", - txid: - "6f56254424378d6914cebd097579c70664843e5876ca86f0bf412ba7f3928326", - vout: 0, - scriptPubKey: "a91479cb06a5986baf588237de9b7fb1a8f68c35b76687", - amount: 12.5002911, - satoshis: 1250029110, - height: 528745, - confirmations: 17 - }, - { - legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", - cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", - txid: - "b29425a876f62e114508e67e66b5eb1ab0d320d7c9a57fb0ece086a36e2b7309", - vout: 0, - scriptPubKey: "a91479cb06a5986baf588237de9b7fb1a8f68c35b76687", - amount: 12.50069247, - satoshis: 1250069247, - height: 528744, - confirmations: 18 + describe(`#unconfirmed`, () => { + it(`should GET unconfirmed details on a single address`, async () => { + const addr = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" + + const result = await bitbox.Address.unconfirmed(addr) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAllKeys(result, ["utxos", "legacyAddress", "cashAddress"]) + assert.isArray(result.utxos) + }) + + it(`should GET unconfirmed details on multiple addresses`, async () => { + const addr = [ + "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", + "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" + ] + + const result = await bitbox.Address.unconfirmed(addr) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], ["utxos", "legacyAddress", "cashAddress"]) + assert.isArray(result[0].utxos) + }) + + it(`should throw an error for improper input`, async () => { + try { + const addr = 12345 + + await bitbox.Address.unconfirmed(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) } - ] - const resolved: any = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) + }) - bitbox.Address.utxo( - "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l" - ) - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) + it(`should throw error on array size rate limit`, async () => { + try { + const addr = [] + for (let i = 0; i < 25; i++) + addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") + + const result = await bitbox.Address.unconfirmed(addr) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) }) - }) - describe("#unconfirmed", () => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get unconfirmed transactions", done => { - const data = [ - { - txid: - "e0aadd861a06993e39af932bb0b9ad69e7b37ef5843a13c6724789e1c94f3513", - vout: 1, - scriptPubKey: "76a914a0f531f4ff810a415580c12e54a7072946bb927e88ac", - amount: 0.00008273, - satoshis: 8273, - confirmations: 0, - ts: 1526680569, - legacyAddress: "1Fg4r9iDrEkCcDmHTy2T79EusNfhyQpu7W", - cashAddress: "bitcoincash:qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c" + describe(`#transactions`, () => { + it(`should GET transactions for a single address`, async () => { + const addr = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" + + const result = await bitbox.Address.transactions(addr) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAllKeys(result, [ + "txs", + "pagesTotal", + "cashAddress", + "currentPage", + "legacyAddress" + ]) + assert.isArray(result.txs) + assert.hasAnyKeys(result.txs[0], [ + "txid", + "version", + "locktime", + "vin", + "vout", + "confirmations", + "time", + "blocktime", + "valueOut", + "size", + "valueIn", + "fees" + ]) + }) + + it(`should get transactions on multiple addresses`, async () => { + const addr = [ + "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", + "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" + ] + + const result = await bitbox.Address.transactions(addr) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "txs", + "pagesTotal", + "cashAddress", + "currentPage", + "legacyAddress" + ]) + assert.isArray(result[0].txs) + assert.hasAnyKeys(result[0].txs[0], [ + "txid", + "version", + "locktime", + "vin", + "vout", + "confirmations", + "time", + "blocktime", + "valueOut", + "size", + "valueIn", + "fees" + ]) + }) + + it(`should throw an error for improper input`, async () => { + try { + const addr = 12345 + + await bitbox.Address.transactions(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) } - ] - const resolved: any = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) + }) - bitbox.Address.unconfirmed( - "bitcoincash:qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c" - ) - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) + it(`should throw error on array size rate limit`, async () => { + try { + const addr = [] + for (let i = 0; i < 25; i++) + addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") + + const result = await bitbox.Address.transactions(addr) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) }) }) -}) \ No newline at end of file +}) diff --git a/test/unit/BitcoinCash.ts b/test/unit/BitcoinCash.ts index 5d9c7dab..64fc77a9 100644 --- a/test/unit/BitcoinCash.ts +++ b/test/unit/BitcoinCash.ts @@ -271,59 +271,59 @@ describe("#BitcoinCash", () => { }) }) - describe("#bip38", () => { - describe("#encryptBIP38", () => { - fixtures.bip38.encrypt.mainnet.forEach((fixture: any) => { - it(`BIP 38 encrypt wif ${fixture.wif} with password ${ - fixture.password - } on mainnet`, () => { - const encryptedKey = bitbox.BitcoinCash.encryptBIP38( - fixture.wif, - fixture.password - ) - assert.equal(encryptedKey, fixture.encryptedKey) - }) - }) + // describe("#bip38", () => { + // describe("#encryptBIP38", () => { + // fixtures.bip38.encrypt.mainnet.forEach((fixture: any) => { + // it(`BIP 38 encrypt wif ${fixture.wif} with password ${ + // fixture.password + // } on mainnet`, () => { + // const encryptedKey = bitbox.BitcoinCash.encryptBIP38( + // fixture.wif, + // fixture.password + // ) + // assert.equal(encryptedKey, fixture.encryptedKey) + // }) + // }) - fixtures.bip38.encrypt.testnet.forEach((fixture: any) => { - it(`BIP 38 encrypt wif ${fixture.wif} with password ${ - fixture.password - } on testnet`, () => { - const encryptedKey = bitbox.BitcoinCash.encryptBIP38( - fixture.wif, - fixture.password - ) - assert.equal(encryptedKey, fixture.encryptedKey) - }) - }) - }) + // fixtures.bip38.encrypt.testnet.forEach((fixture: any) => { + // it(`BIP 38 encrypt wif ${fixture.wif} with password ${ + // fixture.password + // } on testnet`, () => { + // const encryptedKey = bitbox.BitcoinCash.encryptBIP38( + // fixture.wif, + // fixture.password + // ) + // assert.equal(encryptedKey, fixture.encryptedKey) + // }) + // }) + // }) - describe("#decryptBIP38", () => { - fixtures.bip38.decrypt.mainnet.forEach((fixture: any) => { - it(`BIP 38 decrypt encrypted key ${ - fixture.encryptedKey - } on mainnet`, () => { - const wif = bitbox.BitcoinCash.decryptBIP38( - fixture.encryptedKey, - fixture.password, - "mainnet" - ) - assert.equal(wif, fixture.wif) - }) - }) + // describe("#decryptBIP38", () => { + // fixtures.bip38.decrypt.mainnet.forEach((fixture: any) => { + // it(`BIP 38 decrypt encrypted key ${ + // fixture.encryptedKey + // } on mainnet`, () => { + // const wif = bitbox.BitcoinCash.decryptBIP38( + // fixture.encryptedKey, + // fixture.password, + // "mainnet" + // ) + // assert.equal(wif, fixture.wif) + // }) + // }) - fixtures.bip38.decrypt.testnet.forEach((fixture: any) => { - it(`BIP 38 decrypt encrypted key ${ - fixture.encryptedKey - } on testnet`, () => { - const wif = bitbox.BitcoinCash.decryptBIP38( - fixture.encryptedKey, - fixture.password, - "testnet" - ) - assert.equal(wif, fixture.wif) - }) - }) - }) - }) + // fixtures.bip38.decrypt.testnet.forEach((fixture: any) => { + // it(`BIP 38 decrypt encrypted key ${ + // fixture.encryptedKey + // } on testnet`, () => { + // const wif = bitbox.BitcoinCash.decryptBIP38( + // fixture.encryptedKey, + // fixture.password, + // "testnet" + // ) + // assert.equal(wif, fixture.wif) + // }) + // }) + // }) + // }) }) diff --git a/test/unit/fixtures/Address.json b/test/unit/fixtures/Address.json index aff41bcf..1d3a53e3 100644 --- a/test/unit/fixtures/Address.json +++ b/test/unit/fixtures/Address.json @@ -35,6 +35,18 @@ "mrVbyCMyB3vhDya4rYSxdM8qivEGfn7JSP", "mnqGaf1SbPFh1tdXdeXd7pWhJUY2ite6SY" ], + "legacyTestnetP2SH": [ + "2N7euSnwuJP93QmK5TD4AkWmaTfBbBLrxUs", + "2MuvMYTdyvuQVtTkZiETcMpYZTNKR91ZeHs", + "2NEk4XyMUvbfj8ZuwwnpWtjfCy6asbkNa5P", + "2MtEpQua9z1GKUFXPNb8ByyjvfUHBZ2LStE", + "2N5srSeydgwfaDK8Bpve8ztEe6aUbY98pyV", + "2NFkziu5KqJUYkgAa1AeJiKrgc7sETJGt1Q", + "2N9EHTPiA2TsUuucZrNpCDcPVPTaV99cy6B", + "2N8terd3UrDpDT94T8GsERU7NuXnXS8k2JF", + "2N8terd3UrDpDT94T8GsERU7NuXnXS8k2JF", + "2N21KeVfnAF93Q1ETQsaukKoZgnjVQjoDti" + ], "cashaddrMainnetP2PKH": [ "bitcoincash:qptnmya5wkly7xf97wm5ak23yqdsz3l2cyj7k9vyyh", "bitcoincash:qrr2suh9yjsrkl2qp3p967uhfg6u0r6xxsn9h5vuvr", @@ -71,6 +83,18 @@ "bchtest:qpuxsqzgq3j0a58tnmwpgcrwwyrkenalevaeknklfg", "bchtest:qpgrlg0yqmdf4y8q980e57tx6v7vrvds2ug89n8w8q" ], + "cashaddrTestnetP2SH": [ + "bchtest:pz0qcslrqn7hr44hsszwl4lw5r6udkg6zqh2hmtpyr", + "bchtest:pqw4d37dy7ctnn589q4wwd3r4rj5tuy8vsyf9d9uhw", + "bchtest:pr4ua5qk33wp24vktxmjjhldwkuk58tdwsglmfwhp2", + "bchtest:pq9wgu3tcyudczuuvuntay9y66e39n5jes3ph5qsan", + "bchtest:pz9ga635kme08cpkvgfraqhktjg75dc8wgm0kvuzy0", + "bchtest:prm0gtpad38nllydatnly0s5843rpg825cet8n9axd", + "bchtest:pzh4gldj5ts484zmamz2utlm9jzky4lfj5juylxakr", + "bchtest:pz4euzfcklwvagv4dlqyg4uakjsnjd2euqgg69slyv", + "bchtest:pz4euzfcklwvagv4dlqyg4uakjsnjd2euqgg69slyv", + "bchtest:ppspszzx57drysgystphkzj6nhcx3qzn9cvagkwq0a" + ], "cashaddrRegTestP2PKH": [ "bchreg:qq24rpar9qas3vc9r8d4p0prhwaf7jmx2usk9rgkku", "bchreg:qpzj67wmlsq8uttddddapjjawyusureca5lq7ymw4p", @@ -119,6 +143,18 @@ "786800480464fed0eb9edc14606e71076ccfbfcb", "503fa1e406da9a90e029df9a7966d33cc1b1b057" ], + "hash160TestnetP2SH": [ + "9e0c43e304fd71d6b78404efd7eea0f5c6d91a10", + "1d56c7cd27b0b9ce87282ae73623a8e545f08764", + "ebced0168c5c15559659b7295fed75b96a1d6d74", + "0ae4722bc138dc0b9c6726be90a4d6b312ce92cc", + "8a8eea34b6f2f3e03662123e82f65c91ea370772", + "f6f42c3d6c4f3ffc8deae7f23e143d6230a0eaa6", + "af547db2a2e153d45beec4ae2ffb2c856257e995", + "ab9e0938b7dccea1956fc044579db4a1393559e0", + "ab9e0938b7dccea1956fc044579db4a1393559e0", + "60180846a79a32410482c37b0a5a9df06880532e" + ], "mainnetXPub": [ { "xpub": "xpub6CVcpZVmPNjuniVYu1mLnLjDBfxWpx7LS25uxwRm5BLbXMCJmRaQgAxuqZDoYDeidJUh5QUatLJPWpeCkEK648hExyKFezqxJz4CMfEoYAc", @@ -183,7 +219,12 @@ ] } ], - "p2shMainnet": ["bitcoincash:pz0qcslrqn7hr44hsszwl4lw5r6udkg6zqncnufkrl"], + "p2shMainnet": [ + "bitcoincash:pz0qcslrqn7hr44hsszwl4lw5r6udkg6zqncnufkrl" + ], + "p2shTestnet": [ + "bchtest:pz0qcslrqn7hr44hsszwl4lw5r6udkg6zqh2hmtpyr" + ], "mainnetXPriv": [ { "xpriv": "xprvA2WwD9mk1Qd3rMjQ4ZRHvCWCj47jbXjY9Nf7npNRBmGUJngpRAvJzNpNgt7h2dDQ5huG7yFwYfz4PFJDPzkqfvBNPHnaio4yAbbUuv3EBnL", @@ -248,4 +289,4 @@ ] } ] -} +} \ No newline at end of file From 926f42d994d13b208f8d75c9c47e4852677bf2d0 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sun, 12 May 2019 18:34:24 +0900 Subject: [PATCH 364/480] Cleaning up tests --- index.ts | 4 +- lib/BITBOX.ts | 6 +- package.json | 1 + {lib => test/integration}/Wallet.ts | 0 test/integration/block.js | 184 +----------- test/integration/blockchain.js | 278 +---------------- test/integration/rawtransaction.js | 308 +------------------ test/integration/transaction.js | 74 +---- test/integration/util.js | 92 +----- test/unit/Address.ts | 4 +- test/unit/BitcoinCash.ts | 387 +++++++++++++----------- test/unit/Block.ts | 193 +++++++++++- test/unit/Blockchain.ts | 287 +++++++++++++++++- test/unit/Price.ts | 17 +- test/unit/RawTransactions.js | 447 +++++++++++++++++++++++----- test/unit/RawTransactions.ts | 358 +++++++++++++++++----- test/unit/Transaction.ts | 110 ++++--- test/unit/Util.ts | 119 ++++++-- 18 files changed, 1503 insertions(+), 1366 deletions(-) rename {lib => test/integration}/Wallet.ts (100%) diff --git a/index.ts b/index.ts index 2aed738c..445ae406 100644 --- a/index.ts +++ b/index.ts @@ -35,7 +35,7 @@ import { Transaction } from "./lib/Transaction" import { TransactionBuilder } from "./lib/TransactionBuilder" import { Util } from "./lib/Util" import { Socket } from "./lib/Socket" -import { Wallet } from "./lib/Wallet" +// import { Wallet } from "./lib/Wallet" import { Schnorr } from "./lib/Schnorr" interface ConsoleOptions { @@ -242,6 +242,6 @@ export { TransactionBuilder, Util, Socket, - Wallet, + // Wallet, Schnorr } diff --git a/lib/BITBOX.ts b/lib/BITBOX.ts index 3b27b6ea..cc05f39c 100644 --- a/lib/BITBOX.ts +++ b/lib/BITBOX.ts @@ -22,7 +22,7 @@ import { ECPair } from "./ECPair" import { Script } from "./Script" import { Price } from "./Price" import { Socket } from "./Socket" -import { Wallet } from "./Wallet" +// import { Wallet } from "./Wallet" import { Schnorr } from "./Schnorr" export const resturl = "https://rest.bitcoin.com/v2/" @@ -47,7 +47,7 @@ export class BITBOX { TransactionBuilder: any Util: Util Socket: any - Wallet: Wallet + // Wallet: Wallet Schnorr: Schnorr constructor(config: IConfig = {}) { if (config && config.restURL && config.restURL !== "") @@ -74,7 +74,7 @@ export class BITBOX { this.TransactionBuilder.setAddress(this.Address) this.Util = new Util(this.restURL) this.Socket = Socket - this.Wallet = Wallet + // this.Wallet = Wallet this.Schnorr = new Schnorr() } } diff --git a/package.json b/package.json index 90967dbd..a28cc9a3 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "dependencies": { "@types/bigi": "^1.4.2", "@types/bip39": "^2.4.2", + "@types/chai": "^4.1.7", "@types/figlet": "^1.2.0", "@types/mkdirp": "^0.5.2", "@types/mocha": "^5.2.6", diff --git a/lib/Wallet.ts b/test/integration/Wallet.ts similarity index 100% rename from lib/Wallet.ts rename to test/integration/Wallet.ts diff --git a/test/integration/block.js b/test/integration/block.js index d9aaecb5..5938cfc2 100644 --- a/test/integration/block.js +++ b/test/integration/block.js @@ -16,186 +16,4 @@ util.inspect.defaultOptions = { depth: 3 } -describe(`#block`, () => { - describe(`#detailsByHeight`, () => { - it(`should GET block details for a given Height`, async () => { - const block = 500000 - - const result = await bitbox.Block.detailsByHeight(block) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.hasAllKeys(result, [ - "hash", - "size", - "height", - "version", - "merkleroot", - "tx", - "time", - "nonce", - "bits", - "difficulty", - "chainwork", - "confirmations", - "previousblockhash", - "nextblockhash", - "reward", - "isMainChain", - "poolInfo" - ]) - }) - - it(`should GET block details for an array of blocks`, async () => { - const blocks = [500000, 500001] - - const result = await bitbox.Block.detailsByHeight(blocks) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.isArray(result) - assert.hasAllKeys(result[0], [ - "hash", - "size", - "height", - "version", - "merkleroot", - "tx", - "time", - "nonce", - "bits", - "difficulty", - "chainwork", - "confirmations", - "previousblockhash", - "nextblockhash", - "reward", - "isMainChain", - "poolInfo" - ]) - }) - - it(`should throw an error for improper single input`, async () => { - try { - const blocks = "asdf" - - await bitbox.Block.detailsByHeight(blocks) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input must be a number or array of numbers.` - ) - } - }) - - it(`should throw error on array size rate limit`, async () => { - try { - const blocks = [] - for (let i = 0; i < 25; i++) blocks.push(500000) - - const result = await bitbox.Block.detailsByHeight(blocks) - - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - }) - - describe("#detailsByHash", () => { - it(`should GET block details for a given hash`, async () => { - const hash = - "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - - const result = await bitbox.Block.detailsByHash(hash) - //console.log(`result: ${util.inspect(result)}`) - - assert.hasAllKeys(result, [ - "hash", - "size", - "height", - "version", - "merkleroot", - "tx", - "time", - "nonce", - "bits", - "difficulty", - "chainwork", - "confirmations", - "previousblockhash", - "nextblockhash", - "reward", - "isMainChain", - "poolInfo" - ]) - }) - - it(`should GET block details for an array of hashes`, async () => { - const hash = [ - "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", - "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - ] - - const result = await bitbox.Block.detailsByHash(hash) - //console.log(`result: ${util.inspect(result)}`) - - assert.isArray(result) - assert.hasAllKeys(result[0], [ - "hash", - "size", - "height", - "version", - "merkleroot", - "tx", - "time", - "nonce", - "bits", - "difficulty", - "chainwork", - "confirmations", - "previousblockhash", - "nextblockhash", - "reward", - "isMainChain", - "poolInfo" - ]) - }) - - it(`should throw an error for improper single input`, async () => { - try { - const hash = 12345 - - await bitbox.Block.detailsByHash(hash) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input must be a string or array of strings` - ) - } - }) - - it(`should throw error on array size rate limit`, async () => { - try { - const data = [] - for (let i = 0; i < 25; i++) { - data.push( - "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - ) - } - - const result = await bitbox.Block.detailsByHash(data) - - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - }) -}) +describe(`#block`, () => {}) diff --git a/test/integration/blockchain.js b/test/integration/blockchain.js index 5c569271..18c8cccc 100644 --- a/test/integration/blockchain.js +++ b/test/integration/blockchain.js @@ -20,280 +20,4 @@ util.inspect.defaultOptions = { depth: 3 } -describe(`#blockchain`, () => { - describe(`#getBestBlockHash`, () => { - it(`should GET best block hash`, async () => { - const result = await bitbox.Blockchain.getBestBlockHash() - //console.log(`result: ${util.inspect(result)}`) - - assert.isString(result) - assert.equal(result.length, 64, "Specific hash length") - }) - }) - - describe("#getBlockHeader", () => { - it(`should GET block header for a single hash`, async () => { - const hash = - "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - - const result = await bitbox.Blockchain.getBlockHeader(hash) - - assert.hasAllKeys(result, [ - "hash", - "confirmations", - "height", - "version", - "versionHex", - "merkleroot", - "time", - "mediantime", - "nonce", - "bits", - "difficulty", - "chainwork", - "previousblockhash", - "nextblockhash" - ]) - }) - - it(`should GET block headers for an array of hashes`, async () => { - const hash = [ - "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", - "00000000000000000568f0a96bf4348847bc84e455cbfec389f27311037a20f3" - ] - - const result = await bitbox.Blockchain.getBlockHeader(hash) - - assert.isArray(result) - assert.hasAllKeys(result[0], [ - "hash", - "confirmations", - "height", - "version", - "versionHex", - "merkleroot", - "time", - "mediantime", - "nonce", - "bits", - "difficulty", - "chainwork", - "previousblockhash", - "nextblockhash" - ]) - }) - - it(`should throw an error for improper input`, async () => { - try { - const hash = 12345 - - await bitbox.Blockchain.getBlockHeader(hash) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.include( - err.message, - `Input hash must be a string or array of strings` - ) - } - }) - - it(`should throw error on array size rate limit`, async () => { - try { - const data = [] - for (let i = 0; i < 25; i++) { - data.push( - "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - ) - } - - const result = await bitbox.Blockchain.getBlockHeader(data) - - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - }) - - describe("#getMempoolEntry", () => { - /* - // To run this test, the txid must be unconfirmed. - const txid = - "defea04c38ee00cf73ad402984714ed22dc0dd99b2ae5cb50d791d94343ba79b" - - it(`should GET single mempool entry`, async () => { - const result = await bitbox.Blockchain.getMempoolEntry(txid) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.hasAnyKeys(result, [ - "size", - "fee", - "modifiedfee", - "time", - "height", - "startingpriority", - "currentpriority", - "descendantcount", - "descendantsize", - "descendantfees", - "ancestorcount", - "ancestorsize", - "ancestorfees", - "depends" - ]) - }) - - it(`should get an array of mempool entries`, async () => { - const result = await bitbox.Blockchain.getMempoolEntry([txid, txid]) - console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.isArray(result) - assert.hasAnyKeys(result[0], [ - "size", - "fee", - "modifiedfee", - "time", - "height", - "startingpriority", - "currentpriority", - "descendantcount", - "descendantsize", - "descendantfees", - "ancestorcount", - "ancestorsize", - "ancestorfees", - "depends" - ]) - }) - */ - - it(`should throw an error if txid is not in mempool`, async () => { - try { - const txid = - "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" - - await bitbox.Blockchain.getMempoolEntry(txid) - - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: ${util.inspect(err)}`) - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, `Transaction not in mempool`) - } - }) - - it(`should throw an error for improper single input`, async () => { - try { - const txid = 12345 - - await bitbox.Blockchain.getMempoolEntry(txid) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.include( - err.message, - `Input must be a string or array of strings` - ) - } - }) - }) - - describe(`#getTxOutProof`, () => { - it(`should get single tx out proof`, async () => { - const txid = - "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" - - const result = await bitbox.Blockchain.getTxOutProof(txid) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.isString(result) - }) - - it(`should get an array of tx out proofs`, async () => { - const txid = [ - "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7", - "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" - ] - - const result = await bitbox.Blockchain.getTxOutProof(txid) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.isArray(result) - assert.isString(result[0]) - }) - - it(`should throw an error for improper single input`, async () => { - try { - const txid = 12345 - - await bitbox.Blockchain.getTxOutProof(txid) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.include( - err.message, - `Input must be a string or array of strings` - ) - } - }) - }) - - describe(`#verifyTxOutProof`, () => { - const mockTxOutProof = - "0000002086a4a3161f9ba2174883ec0b93acceac3b2f37b36ed1f90000000000000000009cb02406d1094ecf3e0b4c0ca7c585125e721147c39daf6b48c90b512741e13a12333e5cb38705180f441d8c7100000008fee9b60f1edb57e5712839186277ed39e0a004a32be9096ee47472efde8eae62f789f9d7a9f59d0ea7093dea1e0c65ff0b953f1d8cf3d47f92e732ca0295f603c272d5f4a63509f7a887f2549d78af7444aa0ecbb4f66d9cbe13bc6a89f59e05a199df8325d490818ffefe6b6321d32d7496a68580459836c0183f89082fc1b491cc91b23ecdcaa4c347bf599a62904d61f1c15b400ebbd5c90149010c139d9c1e31b774b796977393a238080ab477e1d240d0c4f155d36f519668f49bae6bd8cd5b8e40522edf76faa09cca6188d83ff13af6967cc6a569d1a5e9aeb1fdb7f531ddd2d0cbb81879741d5f38166ac1932136264366a4065cc96a42e41f96294f02df01" - - it(`should verify a single proof`, async () => { - const result = await bitbox.Blockchain.verifyTxOutProof(mockTxOutProof) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.isArray(result) - assert.isString(result[0]) - assert.equal( - result[0], - "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" - ) - }) - - it(`should verify an array of proofs`, async () => { - const proofs = [mockTxOutProof, mockTxOutProof] - const result = await bitbox.Blockchain.verifyTxOutProof(proofs) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.isArray(result) - assert.isString(result[0]) - assert.equal( - result[0], - "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" - ) - }) - - it(`should throw an error for improper single input`, async () => { - try { - const txid = 12345 - - await bitbox.Blockchain.verifyTxOutProof(txid) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.include( - err.message, - `Input must be a string or array of strings` - ) - } - }) - - it(`should throw error on array size rate limit`, async () => { - try { - const data = [] - for (let i = 0; i < 25; i++) data.push(mockTxOutProof) - - const result = await bitbox.Blockchain.verifyTxOutProof(data) - - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - }) -}) +describe(`#blockchain`, () => {}) diff --git a/test/integration/rawtransaction.js b/test/integration/rawtransaction.js index 4e835707..8429bd18 100644 --- a/test/integration/rawtransaction.js +++ b/test/integration/rawtransaction.js @@ -18,310 +18,4 @@ util.inspect.defaultOptions = { depth: 3 } -describe("#rawtransaction", () => { - describe("#decodeRawTransaction", () => { - it("should decode tx for a single hex", async () => { - const hex = - "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" - - const result = await bitbox.RawTransactions.decodeRawTransaction(hex) - //console.log(`result ${JSON.stringify(result, null, 2)}`) - - assert.hasAnyKeys(result, [ - "txid", - "hash", - "size", - "version", - "locktime", - "vin", - "vout" - ]) - assert.isArray(result.vin) - assert.isArray(result.vout) - }) - - it("should decode an array of tx hexes", async () => { - const hexes = [ - "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000", - "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" - ] - - const result = await bitbox.RawTransactions.decodeRawTransaction(hexes) - //console.log(`result ${JSON.stringify(result, null, 2)}`) - - assert.isArray(result) - assert.hasAnyKeys(result[0], [ - "txid", - "hash", - "size", - "version", - "locktime", - "vin", - "vout" - ]) - assert.isArray(result[0].vin) - assert.isArray(result[0].vout) - }) - - it(`should throw an error for improper single input`, async () => { - try { - const addr = 12345 - - await bitbox.RawTransactions.decodeRawTransaction(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input must be a string or array of strings.` - ) - } - }) - - it(`should throw error on array size rate limit`, async () => { - try { - const data = [] - for (let i = 0; i < 25; i++) { - data.push( - "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" - ) - } - - const result = await bitbox.RawTransactions.decodeRawTransaction(data) - - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - }) - - describe("#getRawTransaction", () => { - it("should decode a single txid, with concise output", async () => { - const txid = - "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" - const verbose = false - - const result = await bitbox.RawTransactions.getRawTransaction( - txid, - verbose - ) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.isString(result) - }) - - it("should decode a single txid, with verbose output", async () => { - const txid = - "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" - const verbose = true - - const result = await bitbox.RawTransactions.getRawTransaction( - txid, - verbose - ) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.hasAnyKeys(result, [ - "hex", - "txid", - "hash", - "size", - "version", - "locktime", - "vin", - "vout", - "blockhash", - "confirmations", - "time", - "blocktime" - ]) - assert.isArray(result.vin) - assert.isArray(result.vout) - }) - - it("should decode an array of txids, with a concise output", async () => { - const txid = [ - "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", - "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" - ] - const verbose = false - - const result = await bitbox.RawTransactions.getRawTransaction( - txid, - verbose - ) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.isArray(result) - assert.isString(result[0]) - }) - - it("should decode an array of txids, with a verbose output", async () => { - const txid = [ - "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", - "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" - ] - const verbose = true - - const result = await bitbox.RawTransactions.getRawTransaction( - txid, - verbose - ) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.isArray(result) - assert.hasAnyKeys(result[0], [ - "hex", - "txid", - "hash", - "size", - "version", - "locktime", - "vin", - "vout", - "blockhash", - "confirmations", - "time", - "blocktime" - ]) - assert.isArray(result[0].vin) - assert.isArray(result[0].vout) - }) - - it(`should throw error on array size rate limit`, async () => { - try { - const dataMock = - "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" - const data = [] - for (let i = 0; i < 25; i++) data.push(dataMock) - - const result = await bitbox.RawTransactions.getRawTransaction(data) - - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - }) - - describe("#decodeScript", () => { - it("should decode script for a single hex", async () => { - const hex = - "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" - - const result = await bitbox.RawTransactions.decodeScript(hex) - //console.log(`result ${JSON.stringify(result, null, 2)}`) - - assert.hasAllKeys(result, ["asm", "type", "p2sh"]) - }) - - // CT 2/20/19 - Waiting for this PR to be merged complete the test: - // https://github.com/Bitcoin-com/rest.bitcoin.com/pull/312 - /* - it("should decode an array of tx hexes", async () => { - const hexes = [ - "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16", - "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" - ] - - const result = await bitbox.RawTransactions.decodeScript(hexes) - console.log(`result ${JSON.stringify(result, null, 2)}`) - }) -*/ - /* - it(`should throw an error for improper single input`, async () => { - try { - const addr = 12345 - - await bitbox.RawTransactions.decodeRawTransaction(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input must be a string or array of strings.` - ) - } - }) -*/ - }) - - /* - Testing sentRawTransaction isn't really possible with an integration test, - as the endpoint really needs an e2e test to be properly tested. The tests - below expect error messages returned from the server, but at least test - that the server is responding on those endpoints, and responds consistently. - */ - describe("sendRawTransaction", () => { - it("should send a single transaction hex", async () => { - try { - const hex = - "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" - - await bitbox.RawTransactions.sendRawTransaction(hex) - //console.log(`result ${JSON.stringify(result, null, 2)}`) - - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: ${util.inspect(err)}`) - - assert.hasAllKeys(err, ["error"]) - assert.include(err.error, "Missing inputs") - } - }) - - it("should send an array of tx hexes", async () => { - try { - const hexes = [ - "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000", - "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" - ] - - const result = await bitbox.RawTransactions.sendRawTransaction(hexes) - console.log(`result ${JSON.stringify(result, null, 2)}`) - } catch (err) { - // console.log(`err: ${util.inspect(err)}`) - - assert.hasAllKeys(err, ["error"]) - assert.include(err.error, "Missing inputs") - } - }) - - it(`should throw an error for improper single input`, async () => { - try { - const addr = 12345 - - await bitbox.RawTransactions.sendRawTransaction(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input hex must be a string or array of strings` - ) - } - }) - - it(`should throw error on array size rate limit`, async () => { - try { - const dataMock = - "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" - const data = [] - for (let i = 0; i < 25; i++) data.push(dataMock) - - const result = await bitbox.RawTransactions.sendRawTransaction(data) - - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - }) -}) +describe("#rawtransaction", () => {}) diff --git a/test/integration/transaction.js b/test/integration/transaction.js index e1d7e031..36d15cef 100644 --- a/test/integration/transaction.js +++ b/test/integration/transaction.js @@ -16,76 +16,4 @@ util.inspect.defaultOptions = { depth: 3 } -describe(`#Transaction`, () => { - describe(`#details`, () => { - it(`should GET details for a given txid`, async () => { - const txid = - "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" - - const result = await bitbox.Transaction.details(txid) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.hasAllKeys(result, [ - "txid", - "version", - "locktime", - "vin", - "vout", - "blockhash", - "blockheight", - "confirmations", - "time", - "blocktime", - "isCoinBase", - "valueOut", - "size" - ]) - }) - - it(`should GET details for an array of txids`, async () => { - const txids = [ - "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33", - "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" - ] - - const result = await bitbox.Transaction.details(txids) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.isArray(result) - }) - - it(`should throw an error for improper single input`, async () => { - try { - const txid = 12345 - - await bitbox.Transaction.details(txid) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input txid must be a string or array of strings` - ) - } - }) - - it(`should throw error on array size rate limit`, async () => { - try { - const dataMock = - "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" - const data = [] - for (let i = 0; i < 25; i++) data.push(dataMock) - - const result = await bitbox.Transaction.details(data) - - // console.log(`result: ${util.inspect(result)}`) - assert.equal(false, false, "Unexpected result!") - } catch (err) { - // console.log(`err: ${util.inspect(err)}`) - - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - }) -}) +describe(`#Transaction`, () => {}) diff --git a/test/integration/util.js b/test/integration/util.js index 6946309a..6d52669a 100644 --- a/test/integration/util.js +++ b/test/integration/util.js @@ -16,94 +16,4 @@ util.inspect.defaultOptions = { depth: 3 } -describe(`#util`, () => { - describe(`#validateAddress`, () => { - it(`should return false for testnet addr on mainnet`, async () => { - const address = `bchtest:qqqk4y6lsl5da64sg5qc3xezmplyu5kmpyz2ysaa5y` - - const result = await bitbox.Util.validateAddress(address) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.hasAllKeys(result, ["isvalid"]) - assert.equal(result.isvalid, false) - }) - - it(`should return false for bad address`, async () => { - const address = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peu` - - const result = await bitbox.Util.validateAddress(address) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.hasAllKeys(result, ["isvalid"]) - assert.equal(result.isvalid, false) - }) - - it(`should return validate valid address`, async () => { - const address = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` - - const result = await bitbox.Util.validateAddress(address) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.hasAllKeys(result, [ - "isvalid", - "address", - "scriptPubKey", - "ismine", - "iswatchonly", - "isscript" - ]) - assert.equal(result.isvalid, true) - }) - - it(`should validate an array of addresses`, async () => { - const address = [ - `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z`, - `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` - ] - - const result = await bitbox.Util.validateAddress(address) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.isArray(result) - assert.hasAllKeys(result[0], [ - "isvalid", - "address", - "scriptPubKey", - "ismine", - "iswatchonly", - "isscript" - ]) - }) - - it(`should throw an error for improper single input`, async () => { - try { - const address = 15432 - - await bitbox.Util.validateAddress(address) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input must be a string or array of strings.` - ) - } - }) - - it(`should throw error on array size rate limit`, async () => { - try { - const dataMock = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` - const data = [] - for (let i = 0; i < 25; i++) data.push(dataMock) - - const result = await bitbox.Util.validateAddress(data) - - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - }) -}) +describe(`#util`, () => {}) diff --git a/test/unit/Address.ts b/test/unit/Address.ts index 39943f6a..4f00f219 100644 --- a/test/unit/Address.ts +++ b/test/unit/Address.ts @@ -1,7 +1,5 @@ // import * as assert from "assert"; -import axios from "axios"; -import * as sinon from "sinon"; -const chai = require("chai") +import * as chai from "chai" const assert = chai.assert // TODO: port from require to import syntax diff --git a/test/unit/BitcoinCash.ts b/test/unit/BitcoinCash.ts index 64fc77a9..2c124098 100644 --- a/test/unit/BitcoinCash.ts +++ b/test/unit/BitcoinCash.ts @@ -1,4 +1,5 @@ -import * as assert from "assert"; +import * as chai from "chai" +const assert = chai.assert // TODO: port from require to import syntax const fixtures = require("./fixtures/BitcoinCash.json") @@ -95,235 +96,257 @@ describe("#BitcoinCash", () => { }) }) - describe("#satsToBits", () => { + describe("#toBits", () => { fixtures.conversion.satsToBits.bch.forEach((bch: any) => { it(`should convert ${bch[0]} BCH to ${bch[1]} bits`, () => { assert.equal( - bitbox.BitcoinCash.satsToBits(bitbox.BitcoinCash.toSatoshi(bch[0])), + bitbox.BitcoinCash.toBits(bitbox.BitcoinCash.toSatoshi(bch[0])), bch[1] ) }) + + fixtures.conversion.satsToBits.strings.forEach((bch: any) => { + it(`should convert "${bch[0]}" BCH as a string to ${ + bch[1] + } bits`, () => { + assert.equal( + bitbox.BitcoinCash.toBits(bitbox.BitcoinCash.toSatoshi(bch[0])), + bch[1] + ) + }) + }) }) - fixtures.conversion.satsToBits.strings.forEach((bch: any) => { - it(`should convert "${bch[0]}" BCH as a string to ${ - bch[1] - } bits`, () => { + describe("#satsToBits", () => { + fixtures.conversion.satsToBits.bch.forEach((bch: any) => { + it(`should convert ${bch[0]} BCH to ${bch[1]} bits`, () => { assert.equal( bitbox.BitcoinCash.satsToBits(bitbox.BitcoinCash.toSatoshi(bch[0])), bch[1] ) }) - }) - }) + }) - describe("sign and verify messages", () => { - describe("#signMessageWithPrivKey", () => { - fixtures.signatures.sign.forEach((sign: any) => { - it(`should sign a message w/ ${sign.network} ${ - sign.privateKeyWIF - }`, () => { - const privateKeyWIF = sign.privateKeyWIF - const message = sign.message - const signature = bitbox.BitcoinCash.signMessageWithPrivKey( - privateKeyWIF, - message + fixtures.conversion.satsToBits.strings.forEach((bch: any) => { + it(`should convert "${bch[0]}" BCH as a string to ${ + bch[1] + } bits`, () => { + assert.equal( + bitbox.BitcoinCash.satsToBits(bitbox.BitcoinCash.toSatoshi(bch[0])), + bch[1] ) - assert.equal(signature, sign.signature) }) }) }) - describe("#verifyMessage", () => { - fixtures.signatures.verify.forEach((sign: any) => { - it(`should verify a valid signed message from ${ - sign.network - } cashaddr address ${sign.address}`, () => { - assert.equal( - bitbox.BitcoinCash.verifyMessage( - sign.address, - sign.signature, - sign.message - ), - true - ) - }) + describe("sign and verify messages", () => { + describe("#signMessageWithPrivKey", () => { + fixtures.signatures.sign.forEach((sign: any) => { + it(`should sign a message w/ ${sign.network} ${ + sign.privateKeyWIF + }`, () => { + const privateKeyWIF = sign.privateKeyWIF + const message = sign.message + const signature = bitbox.BitcoinCash.signMessageWithPrivKey( + privateKeyWIF, + message + ) + assert.equal(signature, sign.signature) + }) + }) + }) + + describe("#verifyMessage", () => { + fixtures.signatures.verify.forEach((sign: any) => { + it(`should verify a valid signed message from ${ + sign.network + } cashaddr address ${sign.address}`, () => { + assert.equal( + bitbox.BitcoinCash.verifyMessage( + sign.address, + sign.signature, + sign.message + ), + true + ) + }) + }) + + fixtures.signatures.verify.forEach((sign: any) => { + const legacyAddress = bitbox.Address.toLegacyAddress(sign.address) + it(`should verify a valid signed message from ${ + sign.network + } legacy address ${legacyAddress}`, () => { + assert.equal( + bitbox.BitcoinCash.verifyMessage( + legacyAddress, + sign.signature, + sign.message + ), + true + ) + }) + }) + + fixtures.signatures.verify.forEach((sign: any) => { + const legacyAddress = bitbox.Address.toLegacyAddress(sign.address) + it(`should not verify an invalid signed message from ${ + sign.network + } cashaddr address ${sign.address}`, () => { + assert.equal( + bitbox.BitcoinCash.verifyMessage( + sign.address, + sign.signature, + "nope" + ), + false + ) + }) + }) }) + }) - fixtures.signatures.verify.forEach((sign: any) => { - const legacyAddress = bitbox.Address.toLegacyAddress(sign.address) - it(`should verify a valid signed message from ${ - sign.network - } legacy address ${legacyAddress}`, () => { + describe("encode and decode to base58Check", () => { + describe("#encodeBase58Check", () => { + fixtures.encodeBase58Check.forEach((base58Check: any) => { + it(`encode ${base58Check.hex} as base58Check ${ + base58Check.base58Check + }`, () => { + assert.equal( + bitbox.BitcoinCash.encodeBase58Check(base58Check.hex), + base58Check.base58Check + ) + }) + }) + }) + + describe("#decodeBase58Check", () => { + fixtures.encodeBase58Check.forEach((base58Check: any) => { + it(`decode ${base58Check.base58Check} as ${base58Check.hex}`, () => { assert.equal( - bitbox.BitcoinCash.verifyMessage( - legacyAddress, - sign.signature, - sign.message - ), - true + bitbox.BitcoinCash.decodeBase58Check(base58Check.base58Check), + base58Check.hex ) }) + }) }) + }) - fixtures.signatures.verify.forEach((sign: any) => { - const legacyAddress = bitbox.Address.toLegacyAddress(sign.address) - it(`should not verify an invalid signed message from ${ - sign.network - } cashaddr address ${sign.address}`, () => { - assert.equal( - bitbox.BitcoinCash.verifyMessage( - sign.address, - sign.signature, - "nope" - ), - false + describe("encode and decode BIP21 urls", () => { + describe("#encodeBIP21", () => { + fixtures.bip21.valid.forEach((bip21: any) => { + it(`encode ${bip21.address} as url`, () => { + const url = bitbox.BitcoinCash.encodeBIP21( + bip21.address, + bip21.options ) + assert.equal(url, bip21.url) }) + }) + fixtures.bip21.valid_regtest.forEach((bip21: any) => { + it(`encode ${bip21.address} as url`, () => { + const url = bitbox.BitcoinCash.encodeBIP21( + bip21.address, + bip21.options, + true + ) + assert.equal(url, bip21.url) + }) + }) }) - }) - }) - describe("encode and decode to base58Check", () => { - describe("#encodeBase58Check", () => { - fixtures.encodeBase58Check.forEach((base58Check: any) => { - it(`encode ${base58Check.hex} as base58Check ${ - base58Check.base58Check - }`, () => { + describe("#decodeBIP21", () => { + fixtures.bip21.valid.forEach((bip21: any) => { + it(`decodes ${bip21.url}`, () => { + const decoded = bitbox.BitcoinCash.decodeBIP21(bip21.url) + assert.equal(decoded.options.amount, bip21.options.amount) + assert.equal(decoded.options.label, bip21.options.label) assert.equal( - bitbox.BitcoinCash.encodeBase58Check(base58Check.hex), - base58Check.base58Check + bitbox.Address.toCashAddress(decoded.address), + bitbox.Address.toCashAddress(bip21.address) ) }) + }) + // fixtures.bip21.valid_regtest.forEach((bip21, i) => { + // it(`decodes ${bip21.url}`, () => { + // const decoded = bitbox.BitcoinCash.decodeBIP21(bip21.url) + // assert.equal(decoded.options.amount, bip21.options.amount) + // assert.equal(decoded.options.label, bip21.options.label) + // assert.equal( + // bitbox.Address.toCashAddress(decoded.address, true, true), + // bitbox.Address.toCashAddress(bip21.address, true, true) + // ) + // }) + // }) }) }) - describe("#decodeBase58Check", () => { - fixtures.encodeBase58Check.forEach((base58Check: any) => { - it(`decode ${base58Check.base58Check} as ${base58Check.hex}`, () => { - assert.equal( - bitbox.BitcoinCash.decodeBase58Check(base58Check.base58Check), - base58Check.hex + describe("#getByteCount", () => { + fixtures.getByteCount.forEach((fixture: any) => { + it(`get byte count`, () => { + const byteCount = bitbox.BitcoinCash.getByteCount( + fixture.inputs, + fixture.outputs ) + assert.equal(byteCount, fixture.byteCount) }) }) }) - }) - describe("encode and decode BIP21 urls", () => { - describe("#encodeBIP21", () => { - fixtures.bip21.valid.forEach((bip21: any) => { - it(`encode ${bip21.address} as url`, () => { - const url = bitbox.BitcoinCash.encodeBIP21( - bip21.address, - bip21.options - ) - assert.equal(url, bip21.url) + describe("#bip38", () => { + describe("#encryptBIP38", () => { + fixtures.bip38.encrypt.mainnet.forEach((fixture: any) => { + it(`BIP 38 encrypt wif ${fixture.wif} with password ${ + fixture.password + } on mainnet`, () => { + const encryptedKey = bitbox.BitcoinCash.encryptBIP38( + fixture.wif, + fixture.password + ) + assert.equal(encryptedKey, fixture.encryptedKey) + }) }) - }) - fixtures.bip21.valid_regtest.forEach((bip21: any) => { - it(`encode ${bip21.address} as url`, () => { - const url = bitbox.BitcoinCash.encodeBIP21( - bip21.address, - bip21.options, - true - ) - assert.equal(url, bip21.url) + + fixtures.bip38.encrypt.testnet.forEach((fixture: any) => { + it(`BIP 38 encrypt wif ${fixture.wif} with password ${ + fixture.password + } on testnet`, () => { + const encryptedKey = bitbox.BitcoinCash.encryptBIP38( + fixture.wif, + fixture.password + ) + assert.equal(encryptedKey, fixture.encryptedKey) + }) }) }) - }) - describe("#decodeBIP21", () => { - fixtures.bip21.valid.forEach((bip21: any) => { - it(`decodes ${bip21.url}`, () => { - const decoded = bitbox.BitcoinCash.decodeBIP21(bip21.url) - assert.equal(decoded.options.amount, bip21.options.amount) - assert.equal(decoded.options.label, bip21.options.label) - assert.equal( - bitbox.Address.toCashAddress(decoded.address), - bitbox.Address.toCashAddress(bip21.address) - ) + describe("#decryptBIP38", () => { + fixtures.bip38.decrypt.mainnet.forEach((fixture: any) => { + it(`BIP 38 decrypt encrypted key ${ + fixture.encryptedKey + } on mainnet`, () => { + const wif = bitbox.BitcoinCash.decryptBIP38( + fixture.encryptedKey, + fixture.password, + "mainnet" + ) + assert.equal(wif, fixture.wif) + }) }) - }) - // fixtures.bip21.valid_regtest.forEach((bip21, i) => { - // it(`decodes ${bip21.url}`, () => { - // const decoded = bitbox.BitcoinCash.decodeBIP21(bip21.url) - // assert.equal(decoded.options.amount, bip21.options.amount) - // assert.equal(decoded.options.label, bip21.options.label) - // assert.equal( - // bitbox.Address.toCashAddress(decoded.address, true, true), - // bitbox.Address.toCashAddress(bip21.address, true, true) - // ) - // }) - // }) - }) - }) - describe("#getByteCount", () => { - fixtures.getByteCount.forEach((fixture: any) => { - it(`get byte count`, () => { - const byteCount = bitbox.BitcoinCash.getByteCount( - fixture.inputs, - fixture.outputs - ) - assert.equal(byteCount, fixture.byteCount) + fixtures.bip38.decrypt.testnet.forEach((fixture: any) => { + it(`BIP 38 decrypt encrypted key ${ + fixture.encryptedKey + } on testnet`, () => { + const wif = bitbox.BitcoinCash.decryptBIP38( + fixture.encryptedKey, + fixture.password, + "testnet" + ) + assert.equal(wif, fixture.wif) + }) + }) }) }) }) - - // describe("#bip38", () => { - // describe("#encryptBIP38", () => { - // fixtures.bip38.encrypt.mainnet.forEach((fixture: any) => { - // it(`BIP 38 encrypt wif ${fixture.wif} with password ${ - // fixture.password - // } on mainnet`, () => { - // const encryptedKey = bitbox.BitcoinCash.encryptBIP38( - // fixture.wif, - // fixture.password - // ) - // assert.equal(encryptedKey, fixture.encryptedKey) - // }) - // }) - - // fixtures.bip38.encrypt.testnet.forEach((fixture: any) => { - // it(`BIP 38 encrypt wif ${fixture.wif} with password ${ - // fixture.password - // } on testnet`, () => { - // const encryptedKey = bitbox.BitcoinCash.encryptBIP38( - // fixture.wif, - // fixture.password - // ) - // assert.equal(encryptedKey, fixture.encryptedKey) - // }) - // }) - // }) - - // describe("#decryptBIP38", () => { - // fixtures.bip38.decrypt.mainnet.forEach((fixture: any) => { - // it(`BIP 38 decrypt encrypted key ${ - // fixture.encryptedKey - // } on mainnet`, () => { - // const wif = bitbox.BitcoinCash.decryptBIP38( - // fixture.encryptedKey, - // fixture.password, - // "mainnet" - // ) - // assert.equal(wif, fixture.wif) - // }) - // }) - - // fixtures.bip38.decrypt.testnet.forEach((fixture: any) => { - // it(`BIP 38 decrypt encrypted key ${ - // fixture.encryptedKey - // } on testnet`, () => { - // const wif = bitbox.BitcoinCash.decryptBIP38( - // fixture.encryptedKey, - // fixture.password, - // "testnet" - // ) - // assert.equal(wif, fixture.wif) - // }) - // }) - // }) - // }) }) diff --git a/test/unit/Block.ts b/test/unit/Block.ts index 68191bc7..dee24700 100644 --- a/test/unit/Block.ts +++ b/test/unit/Block.ts @@ -1,4 +1,5 @@ -import * as assert from "assert"; +const chai = require("chai") +const assert = chai.assert import axios from "axios"; import * as sinon from "sinon"; @@ -8,6 +9,14 @@ const bitbox = new BITBOX() const Block = require("../../lib/Block").Block const resturl = require("../../lib/BITBOX").resturl +// Inspect utility used for debugging. +const util = require("util") +util.inspect.defaultOptions = { + showHidden: true, + colors: true, + depth: 3 +} + describe("#Block", () => { describe("#BlockConstructor", () => { it("should create instance of Block", () => { @@ -104,4 +113,186 @@ describe("#Block", () => { assert.deepEqual(result, data) }) }) + + describe(`#detailsByHeight`, () => { + it(`should GET block details for a given Height`, async () => { + const block = 500000 + + const result = await bitbox.Block.detailsByHeight(block) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAllKeys(result, [ + "hash", + "size", + "height", + "version", + "merkleroot", + "tx", + "time", + "nonce", + "bits", + "difficulty", + "chainwork", + "confirmations", + "previousblockhash", + "nextblockhash", + "reward", + "isMainChain", + "poolInfo" + ]) + }) + + it(`should GET block details for an array of blocks`, async () => { + const blocks = [500000, 500001] + + const result = await bitbox.Block.detailsByHeight(blocks) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "hash", + "size", + "height", + "version", + "merkleroot", + "tx", + "time", + "nonce", + "bits", + "difficulty", + "chainwork", + "confirmations", + "previousblockhash", + "nextblockhash", + "reward", + "isMainChain", + "poolInfo" + ]) + }) + + it(`should throw an error for improper single input`, async () => { + try { + const blocks = "asdf" + + await bitbox.Block.detailsByHeight(blocks) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input must be a number or array of numbers.` + ) + } + }) + + it(`should throw error on array size rate limit`, async () => { + try { + const blocks = [] + for (let i = 0; i < 25; i++) blocks.push(500000) + + const result = await bitbox.Block.detailsByHeight(blocks) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) + + describe("#detailsByHash", () => { + it(`should GET block details for a given hash`, async () => { + const hash = + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + + const result = await bitbox.Block.detailsByHash(hash) + //console.log(`result: ${util.inspect(result)}`) + + assert.hasAllKeys(result, [ + "hash", + "size", + "height", + "version", + "merkleroot", + "tx", + "time", + "nonce", + "bits", + "difficulty", + "chainwork", + "confirmations", + "previousblockhash", + "nextblockhash", + "reward", + "isMainChain", + "poolInfo" + ]) + }) + + it(`should GET block details for an array of hashes`, async () => { + const hash = [ + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + ] + + const result = await bitbox.Block.detailsByHash(hash) + //console.log(`result: ${util.inspect(result)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "hash", + "size", + "height", + "version", + "merkleroot", + "tx", + "time", + "nonce", + "bits", + "difficulty", + "chainwork", + "confirmations", + "previousblockhash", + "nextblockhash", + "reward", + "isMainChain", + "poolInfo" + ]) + }) + + it(`should throw an error for improper single input`, async () => { + try { + const hash = 12345 + + await bitbox.Block.detailsByHash(hash) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input must be a string or array of strings` + ) + } + }) + + it(`should throw error on array size rate limit`, async () => { + try { + const data = [] + for (let i = 0; i < 25; i++) { + data.push( + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + ) + } + + const result = await bitbox.Block.detailsByHash(data) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) }) diff --git a/test/unit/Blockchain.ts b/test/unit/Blockchain.ts index 286d3959..782c8510 100644 --- a/test/unit/Blockchain.ts +++ b/test/unit/Blockchain.ts @@ -1,4 +1,5 @@ -import * as assert from "assert"; +const chai = require("chai") +const assert = chai.assert import axios from "axios"; import * as sinon from "sinon"; @@ -8,6 +9,14 @@ const bitbox = new BITBOX() const Blockchain = require("../../lib/Blockchain").Blockchain const resturl = require("../../lib/BITBOX").resturl +// Inspect utility used for debugging. +const util = require("util") +util.inspect.defaultOptions = { + showHidden: true, + colors: true, + depth: 3 +} + describe("#Blockchain", () => { describe("#BlockchainConstructor", () => { it("should create instance of Blockchain", () => { @@ -454,4 +463,280 @@ describe("#Blockchain", () => { .then(done, done) }) }) + + describe(`#getBestBlockHash`, () => { + it(`should GET best block hash`, async () => { + const result = await bitbox.Blockchain.getBestBlockHash() + //console.log(`result: ${util.inspect(result)}`) + + assert.isString(result) + assert.equal(result.length, 64, "Specific hash length") + }) + }) + + describe("#getBlockHeader", () => { + it(`should GET block header for a single hash`, async () => { + const hash = + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + + const result = await bitbox.Blockchain.getBlockHeader(hash) + + assert.hasAllKeys(result, [ + "hash", + "confirmations", + "height", + "version", + "versionHex", + "merkleroot", + "time", + "mediantime", + "nonce", + "bits", + "difficulty", + "chainwork", + "previousblockhash", + "nextblockhash" + ]) + }) + + it(`should GET block headers for an array of hashes`, async () => { + const hash = [ + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", + "00000000000000000568f0a96bf4348847bc84e455cbfec389f27311037a20f3" + ] + + const result = await bitbox.Blockchain.getBlockHeader(hash) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "hash", + "confirmations", + "height", + "version", + "versionHex", + "merkleroot", + "time", + "mediantime", + "nonce", + "bits", + "difficulty", + "chainwork", + "previousblockhash", + "nextblockhash" + ]) + }) + + it(`should throw an error for improper input`, async () => { + try { + const hash = 12345 + + await bitbox.Blockchain.getBlockHeader(hash) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.include( + err.message, + `Input hash must be a string or array of strings` + ) + } + }) + + it(`should throw error on array size rate limit`, async () => { + try { + const data = [] + for (let i = 0; i < 25; i++) { + data.push( + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + ) + } + + const result = await bitbox.Blockchain.getBlockHeader(data) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) + + describe("#getMempoolEntry", () => { + /* + // To run this test, the txid must be unconfirmed. + const txid = + "defea04c38ee00cf73ad402984714ed22dc0dd99b2ae5cb50d791d94343ba79b" + + it(`should GET single mempool entry`, async () => { + const result = await bitbox.Blockchain.getMempoolEntry(txid) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAnyKeys(result, [ + "size", + "fee", + "modifiedfee", + "time", + "height", + "startingpriority", + "currentpriority", + "descendantcount", + "descendantsize", + "descendantfees", + "ancestorcount", + "ancestorsize", + "ancestorfees", + "depends" + ]) + }) + + it(`should get an array of mempool entries`, async () => { + const result = await bitbox.Blockchain.getMempoolEntry([txid, txid]) + console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAnyKeys(result[0], [ + "size", + "fee", + "modifiedfee", + "time", + "height", + "startingpriority", + "currentpriority", + "descendantcount", + "descendantsize", + "descendantfees", + "ancestorcount", + "ancestorsize", + "ancestorfees", + "depends" + ]) + }) + */ + + it(`should throw an error if txid is not in mempool`, async () => { + try { + const txid = + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + + await bitbox.Blockchain.getMempoolEntry(txid) + + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: ${util.inspect(err)}`) + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, `Transaction not in mempool`) + } + }) + + it(`should throw an error for improper single input`, async () => { + try { + const txid = 12345 + + await bitbox.Blockchain.getMempoolEntry(txid) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.include( + err.message, + `Input must be a string or array of strings` + ) + } + }) + }) + + describe(`#getTxOutProof`, () => { + it(`should get single tx out proof`, async () => { + const txid = + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + + const result = await bitbox.Blockchain.getTxOutProof(txid) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isString(result) + }) + + it(`should get an array of tx out proofs`, async () => { + const txid = [ + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7", + "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" + ] + + const result = await bitbox.Blockchain.getTxOutProof(txid) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.isString(result[0]) + }) + + it(`should throw an error for improper single input`, async () => { + try { + const txid = 12345 + + await bitbox.Blockchain.getTxOutProof(txid) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.include( + err.message, + `Input must be a string or array of strings` + ) + } + }) + }) + + describe(`#verifyTxOutProof`, () => { + const mockTxOutProof = + "0000002086a4a3161f9ba2174883ec0b93acceac3b2f37b36ed1f90000000000000000009cb02406d1094ecf3e0b4c0ca7c585125e721147c39daf6b48c90b512741e13a12333e5cb38705180f441d8c7100000008fee9b60f1edb57e5712839186277ed39e0a004a32be9096ee47472efde8eae62f789f9d7a9f59d0ea7093dea1e0c65ff0b953f1d8cf3d47f92e732ca0295f603c272d5f4a63509f7a887f2549d78af7444aa0ecbb4f66d9cbe13bc6a89f59e05a199df8325d490818ffefe6b6321d32d7496a68580459836c0183f89082fc1b491cc91b23ecdcaa4c347bf599a62904d61f1c15b400ebbd5c90149010c139d9c1e31b774b796977393a238080ab477e1d240d0c4f155d36f519668f49bae6bd8cd5b8e40522edf76faa09cca6188d83ff13af6967cc6a569d1a5e9aeb1fdb7f531ddd2d0cbb81879741d5f38166ac1932136264366a4065cc96a42e41f96294f02df01" + + it(`should verify a single proof`, async () => { + const result = await bitbox.Blockchain.verifyTxOutProof(mockTxOutProof) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.isString(result[0]) + assert.equal( + result[0], + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + ) + }) + + it(`should verify an array of proofs`, async () => { + const proofs = [mockTxOutProof, mockTxOutProof] + const result = await bitbox.Blockchain.verifyTxOutProof(proofs) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.isString(result[0]) + assert.equal( + result[0], + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + ) + }) + + it(`should throw an error for improper single input`, async () => { + try { + const txid = 12345 + + await bitbox.Blockchain.verifyTxOutProof(txid) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.include( + err.message, + `Input must be a string or array of strings` + ) + } + }) + + it(`should throw error on array size rate limit`, async () => { + try { + const data = [] + for (let i = 0; i < 25; i++) data.push(mockTxOutProof) + + const result = await bitbox.Blockchain.verifyTxOutProof(data) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) }) diff --git a/test/unit/Price.ts b/test/unit/Price.ts index f9b494c3..6ac92209 100644 --- a/test/unit/Price.ts +++ b/test/unit/Price.ts @@ -17,20 +17,9 @@ describe("#Price", () => { describe("#current", () => { describe("#single currency", () => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get current price for single currency", done => { - const data: any = [] - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Price.current("usd") - .then((result: any) => { - assert.deepEqual(data.price, result) - }) - .then(done, done) + it("should get current price for single currency", async () => { + const result = await bitbox.Price.current("usd") + assert.notEqual(0, result) }) }) }) diff --git a/test/unit/RawTransactions.js b/test/unit/RawTransactions.js index 69e386dd..4550406f 100644 --- a/test/unit/RawTransactions.js +++ b/test/unit/RawTransactions.js @@ -42,9 +42,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); See the sendRawTransaction test for an example. -Create a mocking library of data to compare unit and integration tests. */ -var assert = require("assert"); -var axios_1 = require("axios"); -var sinon = require("sinon"); +var chai = require("chai"); +var assert = chai.assert; // TODO: port from require to import syntax var BITBOX = require("../../lib/BITBOX").BITBOX; var bitbox = new BITBOX(); @@ -55,7 +54,7 @@ var nock = require("nock"); // HTTP mocking var util = require("util"); util.inspect.defaultOptions = { depth: 1 }; describe("#RawTransactions", function () { - describe("#PriceConstructor", function () { + describe("#RawTransactionsConstructor", function () { it("should create instance of RawTransactions", function () { var rawtransactions = new RawTransactions(); assert.equal(rawtransactions instanceof RawTransactions, true); @@ -66,113 +65,399 @@ describe("#RawTransactions", function () { }); }); describe("#decodeRawTransaction", function () { - var sandbox; - beforeEach(function () { return (sandbox = sinon.sandbox.create()); }); - afterEach(function () { return sandbox.restore(); }); - it("should decode raw transaction", function (done) { - var data = { - txid: "4ebd325a4b394cff8c57e8317ccf5a8d0e2bdf1b8526f8aad6c8e43d8240621a", - hash: "4ebd325a4b394cff8c57e8317ccf5a8d0e2bdf1b8526f8aad6c8e43d8240621a", - size: 10, - version: 2, - locktime: 0, - vin: [], - vout: [] - }; - var resolved = new Promise(function (r) { return r({ data: data }); }); - sandbox.stub(axios_1.default, "get").returns(resolved); - bitbox.RawTransactions.decodeRawTransaction(["02000000000000000000"]) - .then(function (result) { - assert.deepEqual(data, result[0]); - }) - .then(done, done); - }); - }); - describe("#decodeScript", function () { - var sandbox; - beforeEach(function () { return (sandbox = sinon.sandbox.create()); }); - afterEach(function () { return sandbox.restore(); }); - it("should decode script", function () { return __awaiter(_this, void 0, void 0, function () { - var data, resolved, result; + it("should decode tx for a single hex", function () { return __awaiter(_this, void 0, void 0, function () { + var hex, result; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + hex = "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000"; + return [4 /*yield*/, bitbox.RawTransactions.decodeRawTransaction(hex) + //console.log(`result ${JSON.stringify(result, null, 2)}`) + ]; + case 1: + result = _a.sent(); + //console.log(`result ${JSON.stringify(result, null, 2)}`) + assert.hasAnyKeys(result, [ + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout" + ]); + assert.isArray(result.vin); + assert.isArray(result.vout); + return [2 /*return*/]; + } + }); + }); }); + it("should decode an array of tx hexes", function () { return __awaiter(_this, void 0, void 0, function () { + var hexes, result; return __generator(this, function (_a) { switch (_a.label) { case 0: - data = { - asm: "OP_RETURN 5361746f736869204e616b616d6f746f", - type: "nulldata", - p2sh: "bitcoincash:prswx5965nfumux9qng5kj8hw603vcne7q08t8c6jp" - }; - resolved = new Promise(function (r) { return r({ data: data }); }); - sandbox.stub(axios_1.default, "get").returns(resolved); - return [4 /*yield*/, bitbox.RawTransactions.decodeScript("6a105361746f736869204e616b616d6f746f") - //console.log(`result: ${util.inspect(result)}`) + hexes = [ + "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000", + "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" + ]; + return [4 /*yield*/, bitbox.RawTransactions.decodeRawTransaction(hexes) + //console.log(`result ${JSON.stringify(result, null, 2)}`) ]; case 1: result = _a.sent(); - //console.log(`result: ${util.inspect(result)}`) - assert.deepEqual(data, result); + //console.log(`result ${JSON.stringify(result, null, 2)}`) + assert.isArray(result); + assert.hasAnyKeys(result[0], [ + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout" + ]); + assert.isArray(result[0].vin); + assert.isArray(result[0].vout); return [2 /*return*/]; } }); }); }); + it("should throw an error for improper single input", function () { return __awaiter(_this, void 0, void 0, function () { + var addr, err_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + addr = 12345; + return [4 /*yield*/, bitbox.RawTransactions.decodeRawTransaction(addr)]; + case 1: + _a.sent(); + assert.equal(true, false, "Unexpected result!"); + return [3 /*break*/, 3]; + case 2: + err_1 = _a.sent(); + //console.log(`err: `, err) + assert.include(err_1.message, "Input must be a string or array of strings."); + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); }); + it("should throw error on array size rate limit", function () { return __awaiter(_this, void 0, void 0, function () { + var data, i, result, err_2; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + data = []; + for (i = 0; i < 25; i++) { + data.push("0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000"); + } + return [4 /*yield*/, bitbox.RawTransactions.decodeRawTransaction(data)]; + case 1: + result = _a.sent(); + console.log("result: " + util.inspect(result)); + assert.equal(true, false, "Unexpected result!"); + return [3 /*break*/, 3]; + case 2: + err_2 = _a.sent(); + assert.hasAnyKeys(err_2, ["error"]); + assert.include(err_2.error, "Array too large"); + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); }); }); describe("#getRawTransaction", function () { - var sandbox; - beforeEach(function () { return (sandbox = sinon.sandbox.create()); }); - afterEach(function () { return sandbox.restore(); }); - it("should get raw transaction", function (done) { - var data = "020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000"; - var resolved = new Promise(function (r) { return r({ data: data }); }); - sandbox.stub(axios_1.default, "get").returns(resolved); - bitbox.RawTransactions.getRawTransaction([ - "808d617eccaad4f1397fe07a06ec5ed15a0821cf22a3e0931c0c92aef9e572b6" - ]) - .then(function (result) { - assert.deepEqual(data, result[0]); - }) - .then(done, done); - }); - }); - describe("#sendRawTransaction", function () { - var sandbox; - beforeEach(function () { return (sandbox = sinon.sandbox.create()); }); - afterEach(function () { return sandbox.restore(); }); - it("should send single raw transaction", function () { return __awaiter(_this, void 0, void 0, function () { - var data, resolved, result; + it("should decode a single txid, with concise output", function () { return __awaiter(_this, void 0, void 0, function () { + var txid, verbose, result; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + txid = "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1"; + verbose = false; + return [4 /*yield*/, bitbox.RawTransactions.getRawTransaction(txid, verbose) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + ]; + case 1: + result = _a.sent(); + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + assert.isString(result); + return [2 /*return*/]; + } + }); + }); }); + it("should decode a single txid, with verbose output", function () { return __awaiter(_this, void 0, void 0, function () { + var txid, verbose, result; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + txid = "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1"; + verbose = true; + return [4 /*yield*/, bitbox.RawTransactions.getRawTransaction(txid, verbose) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + ]; + case 1: + result = _a.sent(); + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + assert.hasAnyKeys(result, [ + "hex", + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout", + "blockhash", + "confirmations", + "time", + "blocktime" + ]); + assert.isArray(result.vin); + assert.isArray(result.vout); + return [2 /*return*/]; + } + }); + }); }); + it("should decode an array of txids, with a concise output", function () { return __awaiter(_this, void 0, void 0, function () { + var txid, verbose, result; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + txid = [ + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", + "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" + ]; + verbose = false; + return [4 /*yield*/, bitbox.RawTransactions.getRawTransaction(txid, verbose) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + ]; + case 1: + result = _a.sent(); + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + assert.isArray(result); + assert.isString(result[0]); + return [2 /*return*/]; + } + }); + }); }); + it("should decode an array of txids, with a verbose output", function () { return __awaiter(_this, void 0, void 0, function () { + var txid, verbose, result; return __generator(this, function (_a) { switch (_a.label) { case 0: - data = "Error: transaction already in block chain"; - resolved = new Promise(function (r) { return r({ data: data }); }); - sandbox.stub(axios_1.default, "get").returns(resolved); - return [4 /*yield*/, bitbox.RawTransactions.sendRawTransaction("020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000")]; + txid = [ + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", + "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" + ]; + verbose = true; + return [4 /*yield*/, bitbox.RawTransactions.getRawTransaction(txid, verbose) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + ]; case 1: result = _a.sent(); - assert.equal(data, result); + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + assert.isArray(result); + assert.hasAnyKeys(result[0], [ + "hex", + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout", + "blockhash", + "confirmations", + "time", + "blocktime" + ]); + assert.isArray(result[0].vin); + assert.isArray(result[0].vout); return [2 /*return*/]; } }); }); }); - it("should send an array of raw transactions", function () { return __awaiter(_this, void 0, void 0, function () { - var data, result; + it("should throw error on array size rate limit", function () { return __awaiter(_this, void 0, void 0, function () { + var dataMock, data, i, result, err_3; return __generator(this, function (_a) { switch (_a.label) { case 0: - data = "Error: transaction already in block chain"; - // Mock the http call to rest.bitcoin.com - nock("" + bitbox.RawTransactions.restURL) - .post(function (uri) { return uri.includes("/"); }) - .reply(200, { data: data }); - return [4 /*yield*/, bitbox.RawTransactions.sendRawTransaction([ - "020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000" - ])]; + _a.trys.push([0, 2, , 3]); + dataMock = "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1"; + data = []; + for (i = 0; i < 25; i++) + data.push(dataMock); + return [4 /*yield*/, bitbox.RawTransactions.getRawTransaction(data)]; case 1: result = _a.sent(); - assert.equal(data, result.data); + console.log("result: " + util.inspect(result)); + assert.equal(true, false, "Unexpected result!"); + return [3 /*break*/, 3]; + case 2: + err_3 = _a.sent(); + assert.hasAnyKeys(err_3, ["error"]); + assert.include(err_3.error, "Array too large"); + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); }); + }); + describe("#decodeScript", function () { + it("should decode script for a single hex", function () { return __awaiter(_this, void 0, void 0, function () { + var hex, result; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + hex = "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16"; + return [4 /*yield*/, bitbox.RawTransactions.decodeScript(hex) + //console.log(`result ${JSON.stringify(result, null, 2)}`) + ]; + case 1: + result = _a.sent(); + //console.log(`result ${JSON.stringify(result, null, 2)}`) + assert.hasAllKeys(result, ["asm", "type", "p2sh"]); return [2 /*return*/]; } }); }); }); + // CT 2/20/19 - Waiting for this PR to be merged complete the test: + // https://github.com/Bitcoin-com/rest.bitcoin.com/pull/312 + /* + it("should decode an array of tx hexes", async () => { + const hexes = [ + "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16", + "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" + ] + + const result = await bitbox.RawTransactions.decodeScript(hexes) + console.log(`result ${JSON.stringify(result, null, 2)}`) + }) + */ + /* + it(`should throw an error for improper single input`, async () => { + try { + const addr = 12345 + + await bitbox.RawTransactions.decodeRawTransaction(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input must be a string or array of strings.` + ) + } + }) + */ + }); + /* + Testing sentRawTransaction isn't really possible with an integration test, + as the endpoint really needs an e2e test to be properly tested. The tests + below expect error messages returned from the server, but at least test + that the server is responding on those endpoints, and responds consistently. + */ + describe("sendRawTransaction", function () { + it("should send a single transaction hex", function () { return __awaiter(_this, void 0, void 0, function () { + var hex, err_4; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + hex = "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000"; + return [4 /*yield*/, bitbox.RawTransactions.sendRawTransaction(hex) + //console.log(`result ${JSON.stringify(result, null, 2)}`) + ]; + case 1: + _a.sent(); + //console.log(`result ${JSON.stringify(result, null, 2)}`) + assert.equal(true, false, "Unexpected result!"); + return [3 /*break*/, 3]; + case 2: + err_4 = _a.sent(); + //console.log(`err: ${util.inspect(err)}`) + assert.hasAllKeys(err_4, ["error"]); + assert.include(err_4.error, "Missing inputs"); + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); }); + it("should send an array of tx hexes", function () { return __awaiter(_this, void 0, void 0, function () { + var hexes, result, err_5; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + hexes = [ + "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000", + "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" + ]; + return [4 /*yield*/, bitbox.RawTransactions.sendRawTransaction(hexes)]; + case 1: + result = _a.sent(); + console.log("result " + JSON.stringify(result, null, 2)); + return [3 /*break*/, 3]; + case 2: + err_5 = _a.sent(); + // console.log(`err: ${util.inspect(err)}`) + assert.hasAllKeys(err_5, ["error"]); + assert.include(err_5.error, "Missing inputs"); + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); }); + it("should throw an error for improper single input", function () { return __awaiter(_this, void 0, void 0, function () { + var addr, err_6; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + addr = 12345; + return [4 /*yield*/, bitbox.RawTransactions.sendRawTransaction(addr)]; + case 1: + _a.sent(); + assert.equal(true, false, "Unexpected result!"); + return [3 /*break*/, 3]; + case 2: + err_6 = _a.sent(); + //console.log(`err: `, err) + assert.include(err_6.message, "Input hex must be a string or array of strings"); + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); }); + it("should throw error on array size rate limit", function () { return __awaiter(_this, void 0, void 0, function () { + var dataMock, data, i, result, err_7; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 2, , 3]); + dataMock = "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000"; + data = []; + for (i = 0; i < 25; i++) + data.push(dataMock); + return [4 /*yield*/, bitbox.RawTransactions.sendRawTransaction(data)]; + case 1: + result = _a.sent(); + console.log("result: " + util.inspect(result)); + assert.equal(true, false, "Unexpected result!"); + return [3 /*break*/, 3]; + case 2: + err_7 = _a.sent(); + assert.hasAnyKeys(err_7, ["error"]); + assert.include(err_7.error, "Array too large"); + return [3 /*break*/, 3]; + case 3: return [2 /*return*/]; + } + }); + }); }); }); }); //# sourceMappingURL=RawTransactions.js.map \ No newline at end of file diff --git a/test/unit/RawTransactions.ts b/test/unit/RawTransactions.ts index 73c03d9e..d84705ef 100644 --- a/test/unit/RawTransactions.ts +++ b/test/unit/RawTransactions.ts @@ -4,9 +4,8 @@ See the sendRawTransaction test for an example. -Create a mocking library of data to compare unit and integration tests. */ -import * as assert from "assert"; -import axios from "axios"; -import * as sinon from "sinon"; +import * as chai from "chai" +const assert = chai.assert // TODO: port from require to import syntax const BITBOX = require("../../lib/BITBOX").BITBOX @@ -20,7 +19,7 @@ const util = require("util") util.inspect.defaultOptions = { depth: 1 } describe("#RawTransactions", () => { - describe("#PriceConstructor", () => { + describe("#RawTransactionsConstructor", () => { it("should create instance of RawTransactions", () => { const rawtransactions = new RawTransactions() assert.equal(rawtransactions instanceof RawTransactions, true) @@ -33,111 +32,308 @@ describe("#RawTransactions", () => { }) describe("#decodeRawTransaction", () => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should decode raw transaction", done => { - const data = { - txid: - "4ebd325a4b394cff8c57e8317ccf5a8d0e2bdf1b8526f8aad6c8e43d8240621a", - hash: - "4ebd325a4b394cff8c57e8317ccf5a8d0e2bdf1b8526f8aad6c8e43d8240621a", - size: 10, - version: 2, - locktime: 0, - vin: [], - vout: [] - } + it("should decode tx for a single hex", async () => { + const hex = + "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) + const result = await bitbox.RawTransactions.decodeRawTransaction(hex) + //console.log(`result ${JSON.stringify(result, null, 2)}`) - bitbox.RawTransactions.decodeRawTransaction(["02000000000000000000"]) - .then((result: any) => { - assert.deepEqual(data, result[0]) - }) - .then(done, done) + assert.hasAnyKeys(result, [ + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout" + ]) + assert.isArray(result.vin) + assert.isArray(result.vout) }) - }) - describe("#decodeScript", () => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should decode script", async () => { - const data = { - asm: "OP_RETURN 5361746f736869204e616b616d6f746f", - type: "nulldata", - p2sh: "bitcoincash:prswx5965nfumux9qng5kj8hw603vcne7q08t8c6jp" + it("should decode an array of tx hexes", async () => { + const hexes = [ + "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000", + "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" + ] + + const result = await bitbox.RawTransactions.decodeRawTransaction(hexes) + //console.log(`result ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAnyKeys(result[0], [ + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout" + ]) + assert.isArray(result[0].vin) + assert.isArray(result[0].vout) + }) + + it(`should throw an error for improper single input`, async () => { + try { + const addr = 12345 + + await bitbox.RawTransactions.decodeRawTransaction(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input must be a string or array of strings.` + ) } + }) - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) + it(`should throw error on array size rate limit`, async () => { + try { + const data = [] + for (let i = 0; i < 25; i++) { + data.push( + "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" + ) + } - const result = await bitbox.RawTransactions.decodeScript( - "6a105361746f736869204e616b616d6f746f" - ) - //console.log(`result: ${util.inspect(result)}`) + const result = await bitbox.RawTransactions.decodeRawTransaction(data) - assert.deepEqual(data, result) + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } }) }) describe("#getRawTransaction", () => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) + it("should decode a single txid, with concise output", async () => { + const txid = + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" + const verbose = false + + const result = await bitbox.RawTransactions.getRawTransaction( + txid, + verbose + ) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) - it("should get raw transaction", done => { - const data = - "020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000" + assert.isString(result) + }) + + it("should decode a single txid, with verbose output", async () => { + const txid = + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" + const verbose = true - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) + const result = await bitbox.RawTransactions.getRawTransaction( + txid, + verbose + ) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) - bitbox.RawTransactions.getRawTransaction([ - "808d617eccaad4f1397fe07a06ec5ed15a0821cf22a3e0931c0c92aef9e572b6" + assert.hasAnyKeys(result, [ + "hex", + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout", + "blockhash", + "confirmations", + "time", + "blocktime" ]) - .then((result: any) => { - assert.deepEqual(data, result[0]) - }) - .then(done, done) + assert.isArray(result.vin) + assert.isArray(result.vout) }) - }) - describe("#sendRawTransaction", () => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) + it("should decode an array of txids, with a concise output", async () => { + const txid = [ + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", + "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" + ] + const verbose = false - it("should send single raw transaction", async () => { - const data = "Error: transaction already in block chain" + const result = await bitbox.RawTransactions.getRawTransaction( + txid, + verbose + ) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.isString(result[0]) + }) - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) + it("should decode an array of txids, with a verbose output", async () => { + const txid = [ + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", + "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" + ] + const verbose = true - const result = await bitbox.RawTransactions.sendRawTransaction( - "020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000" + const result = await bitbox.RawTransactions.getRawTransaction( + txid, + verbose ) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) - assert.equal(data, result) + assert.isArray(result) + assert.hasAnyKeys(result[0], [ + "hex", + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout", + "blockhash", + "confirmations", + "time", + "blocktime" + ]) + assert.isArray(result[0].vin) + assert.isArray(result[0].vout) }) - it("should send an array of raw transactions", async () => { - const data = "Error: transaction already in block chain" + it(`should throw error on array size rate limit`, async () => { + try { + const dataMock = + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" + const data = [] + for (let i = 0; i < 25; i++) data.push(dataMock) - // Mock the http call to rest.bitcoin.com - nock(`${bitbox.RawTransactions.restURL}`) - .post((uri: string) => uri.includes(`/`)) - .reply(200, { data: data }) + const result = await bitbox.RawTransactions.getRawTransaction(data) - const result = await bitbox.RawTransactions.sendRawTransaction([ - "020000000160d663961c63c7f0a07f22ec07b8f55b3935bfdbed8b1d8454916e8932fbf109010000006b4830450221008479fab4cfdcb111833d250a43f98ac26d43272b7a29cb1b9a0491eae5c44b3502203448b17253632395c29a7d62058bbfe93efb20fc8636ba6837002d464195aec04121029123258f7cdcd45b864066bcaa9b71f24d5ed1fa1dd36eaf107d8432b5014658ffffffff016d180000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000" - ]) + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) + + describe("#decodeScript", () => { + it("should decode script for a single hex", async () => { + const hex = + "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" + + const result = await bitbox.RawTransactions.decodeScript(hex) + //console.log(`result ${JSON.stringify(result, null, 2)}`) - assert.equal(data, result.data) + assert.hasAllKeys(result, ["asm", "type", "p2sh"]) + }) + + // CT 2/20/19 - Waiting for this PR to be merged complete the test: + // https://github.com/Bitcoin-com/rest.bitcoin.com/pull/312 + /* + it("should decode an array of tx hexes", async () => { + const hexes = [ + "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16", + "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" + ] + + const result = await bitbox.RawTransactions.decodeScript(hexes) + console.log(`result ${JSON.stringify(result, null, 2)}`) + }) +*/ + /* + it(`should throw an error for improper single input`, async () => { + try { + const addr = 12345 + + await bitbox.RawTransactions.decodeRawTransaction(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input must be a string or array of strings.` + ) + } + }) +*/ + }) + + /* + Testing sentRawTransaction isn't really possible with an integration test, + as the endpoint really needs an e2e test to be properly tested. The tests + below expect error messages returned from the server, but at least test + that the server is responding on those endpoints, and responds consistently. + */ + describe("sendRawTransaction", () => { + it("should send a single transaction hex", async () => { + try { + const hex = + "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" + + await bitbox.RawTransactions.sendRawTransaction(hex) + //console.log(`result ${JSON.stringify(result, null, 2)}`) + + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: ${util.inspect(err)}`) + + assert.hasAllKeys(err, ["error"]) + assert.include(err.error, "Missing inputs") + } + }) + + it("should send an array of tx hexes", async () => { + try { + const hexes = [ + "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000", + "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" + ] + + const result = await bitbox.RawTransactions.sendRawTransaction(hexes) + console.log(`result ${JSON.stringify(result, null, 2)}`) + } catch (err) { + // console.log(`err: ${util.inspect(err)}`) + + assert.hasAllKeys(err, ["error"]) + assert.include(err.error, "Missing inputs") + } + }) + + it(`should throw an error for improper single input`, async () => { + try { + const addr = 12345 + + await bitbox.RawTransactions.sendRawTransaction(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input hex must be a string or array of strings` + ) + } + }) + + it(`should throw error on array size rate limit`, async () => { + try { + const dataMock = + "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" + const data = [] + for (let i = 0; i < 25; i++) data.push(dataMock) + + const result = await bitbox.RawTransactions.sendRawTransaction(data) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } }) }) }) diff --git a/test/unit/Transaction.ts b/test/unit/Transaction.ts index 03adc2e3..1d1c2353 100644 --- a/test/unit/Transaction.ts +++ b/test/unit/Transaction.ts @@ -1,6 +1,5 @@ -import * as assert from "assert"; -import axios from "axios"; -import * as sinon from "sinon"; +import * as chai from "chai" +const assert = chai.assert // TODO: port from require to import syntax const BITBOX = require("../../lib/BITBOX").BITBOX @@ -21,48 +20,75 @@ describe("#Transaction", () => { }) }) - describe("#details", () => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) + describe(`#details`, () => { + it(`should GET details for a given txid`, async () => { + const txid = + "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" - it("should get transaction details", done => { - const data = { - txid: - "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8", - version: 1, - locktime: 0, - vin: [{ coinbase: "04ffff001d029804", sequence: 4294967295, n: 0 }], - vout: [ - { - value: "50.00000000", - n: 0, - scriptPubKey: [Object], - spentTxId: null, - spentIndex: null, - spentHeight: null - } - ], - blockhash: - "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", - blockheight: 507, - confirmations: 528399, - time: 1231973656, - blocktime: 1231973656, - isCoinBase: true, - valueOut: 50, - size: 135 + const result = await bitbox.Transaction.details(txid) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAllKeys(result, [ + "txid", + "version", + "locktime", + "vin", + "vout", + "blockhash", + "blockheight", + "confirmations", + "time", + "blocktime", + "isCoinBase", + "valueOut", + "size" + ]) + }) + + it(`should GET details for an array of txids`, async () => { + const txids = [ + "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33", + "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" + ] + + const result = await bitbox.Transaction.details(txids) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + }) + + it(`should throw an error for improper single input`, async () => { + try { + const txid = 12345 + + await bitbox.Transaction.details(txid) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input txid must be a string or array of strings` + ) } - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) + }) + + it(`should throw error on array size rate limit`, async () => { + try { + const dataMock = + "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" + const data = [] + for (let i = 0; i < 25; i++) data.push(dataMock) - bitbox.Transaction.details( - "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8" - ) - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) + const result = await bitbox.Transaction.details(data) + + // console.log(`result: ${util.inspect(result)}`) + assert.equal(false, false, "Unexpected result!") + } catch (err) { + // console.log(`err: ${util.inspect(err)}`) + + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } }) }) }) diff --git a/test/unit/Util.ts b/test/unit/Util.ts index 490f2e9b..59fd4e15 100644 --- a/test/unit/Util.ts +++ b/test/unit/Util.ts @@ -1,6 +1,5 @@ -import * as assert from "assert"; -import axios from "axios"; -import * as sinon from "sinon"; +import * as chai from "chai" +const assert = chai.assert // TODO: port from require to import syntax const BITBOX = require("../../lib/BITBOX").BITBOX @@ -8,6 +7,14 @@ const bitbox = new BITBOX() const Util = require("../../lib/Util").Util const resturl = require("../../lib/BITBOX").resturl +// Inspect utility used for debugging. +const util = require("util") +util.inspect.defaultOptions = { + showHidden: true, + colors: true, + depth: 3 +} + describe("#Util", () => { describe("#UtilConstructor", () => { it("should create instance of Util", () => { @@ -21,31 +28,93 @@ describe("#Util", () => { }) }) - describe("#validateAddress", () => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should validate address", done => { - const data = { - isvalid: true, - address: "bitcoincash:qpz7qtkuyhrsz4qmnnrvf8gz9zd0u9v7eqsewyk4w5", - scriptPubKey: "76a91445e02edc25c701541b9cc6c49d02289afe159ec888ac", - ismine: false, - iswatchonly: false, - isscript: false + describe(`#validateAddress`, () => { + it(`should return false for testnet addr on mainnet`, async () => { + const address = `bchtest:qqqk4y6lsl5da64sg5qc3xezmplyu5kmpyz2ysaa5y` + + const result = await bitbox.Util.validateAddress(address) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAllKeys(result, ["isvalid"]) + assert.equal(result.isvalid, false) + }) + + it(`should return false for bad address`, async () => { + const address = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peu` + + const result = await bitbox.Util.validateAddress(address) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAllKeys(result, ["isvalid"]) + assert.equal(result.isvalid, false) + }) + + it(`should return validate valid address`, async () => { + const address = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` + + const result = await bitbox.Util.validateAddress(address) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAllKeys(result, [ + "isvalid", + "address", + "scriptPubKey", + "ismine", + "iswatchonly", + "isscript" + ]) + assert.equal(result.isvalid, true) + }) + + it(`should validate an array of addresses`, async () => { + const address = [ + `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z`, + `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` + ] + + const result = await bitbox.Util.validateAddress(address) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "isvalid", + "address", + "scriptPubKey", + "ismine", + "iswatchonly", + "isscript" + ]) + }) + + it(`should throw an error for improper single input`, async () => { + try { + const address = 15432 + + await bitbox.Util.validateAddress(address) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input must be a string or array of strings.` + ) } + }) - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) + it(`should throw error on array size rate limit`, async () => { + try { + const dataMock = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` + const data = [] + for (let i = 0; i < 25; i++) data.push(dataMock) - bitbox.Util.validateAddress( - "bitcoincash:qpz7qtkuyhrsz4qmnnrvf8gz9zd0u9v7eqsewyk4w5" - ) - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) + const result = await bitbox.Util.validateAddress(data) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } }) }) }) From 9ef9888111fdfc2948fe65d2e7649baba5bd60da Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sun, 12 May 2019 18:46:58 +0900 Subject: [PATCH 365/480] Tests. --- lib/Control.ts | 24 ++++++++++---------- test/unit/BitcoinCash.ts | 1 + test/unit/Control.ts | 48 ++++++++++++++++++++-------------------- 3 files changed, 37 insertions(+), 36 deletions(-) diff --git a/lib/Control.ts b/lib/Control.ts index 42952e30..2d3af9bd 100644 --- a/lib/Control.ts +++ b/lib/Control.ts @@ -18,18 +18,18 @@ export class Control { } } - async getMemoryInfo(): Promise { - // TODO add back to REST - try { - const response: any = await axios.get( - `${this.restURL}control/getMemoryInfo` - ) - return response.data - } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error - } - } + // async getMemoryInfo(): Promise { + // // TODO add back to REST + // try { + // const response: any = await axios.get( + // `${this.restURL}control/getMemoryInfo` + // ) + // return response.data + // } catch (error) { + // if (error.response && error.response.data) throw error.response.data + // else throw error + // } + // } // // stop() { // // Stop Bitcoin Cash server. diff --git a/test/unit/BitcoinCash.ts b/test/unit/BitcoinCash.ts index 2c124098..ba867612 100644 --- a/test/unit/BitcoinCash.ts +++ b/test/unit/BitcoinCash.ts @@ -350,3 +350,4 @@ describe("#BitcoinCash", () => { }) }) }) + diff --git a/test/unit/Control.ts b/test/unit/Control.ts index 14fb9a02..ae6406a7 100644 --- a/test/unit/Control.ts +++ b/test/unit/Control.ts @@ -51,30 +51,30 @@ describe("#Control", () => { }) }) - describe("#getMemoryInfo", () => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) + // describe("#getMemoryInfo", () => { + // let sandbox: any + // beforeEach(() => (sandbox = sinon.sandbox.create())) + // afterEach(() => sandbox.restore()) - it("should get memory info", done => { - const data = { - locked: { - used: 0, - free: 65536, - total: 65536, - locked: 65536, - chunks_used: 0, - chunks_free: 1 - } - } - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) + // it("should get memory info", done => { + // const data = { + // locked: { + // used: 0, + // free: 65536, + // total: 65536, + // locked: 65536, + // chunks_used: 0, + // chunks_free: 1 + // } + // } + // const resolved = new Promise(r => r({ data: data })) + // sandbox.stub(axios, "get").returns(resolved) - bitbox.Control.getMemoryInfo() - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) + // bitbox.Control.getMemoryInfo() + // .then((result: any) => { + // assert.deepEqual(data, result) + // }) + // .then(done, done) + // }) + // }) }) From 437cc3a6b416c8c6e65f04f4c1729c69ffac24b5 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sun, 12 May 2019 18:48:09 +0900 Subject: [PATCH 366/480] Version. --- index.ts | 2 +- package.json | 2 +- yarn.lock | 4 ++++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/index.ts b/index.ts index 445ae406..55ba2fc5 100644 --- a/index.ts +++ b/index.ts @@ -47,7 +47,7 @@ interface NewOptions extends ConsoleOptions { restURL: string } -program.version("7.1.0 ", "-v, --version") +program.version("7.2.0 ", "-v, --version") program .command("new ") diff --git a/package.json b/package.json index a28cc9a3..254dcecc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.1.0", + "version": "7.2.0", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ diff --git a/yarn.lock b/yarn.lock index 48853f9c..172080a8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -240,6 +240,10 @@ dependencies: "@types/node" "*" +"@types/chai@^4.1.7": + version "4.1.7" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.1.7.tgz#1b8e33b61a8c09cbe1f85133071baa0dbf9fa71a" + "@types/events@*": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" From 73074873aa7eb9704008bfaef64a2aa1908a8d6f Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Mon, 13 May 2019 14:30:32 +0900 Subject: [PATCH 367/480] Porting tests to .ts. --- index.ts | 2 +- lib/Address.ts | 307 ++++--- lib/BITBOX.ts | 55 +- lib/BitcoinCash.ts | 42 +- lib/Block.ts | 16 +- lib/Blockchain.ts | 88 +- lib/Control.ts | 10 +- lib/Crypto.ts | 14 +- lib/ECPair.ts | 25 +- lib/Generating.ts | 10 +- lib/HDNode.ts | 55 +- lib/Mining.ts | 22 +- lib/Mnemonic.ts | 28 +- lib/Price.ts | 6 +- lib/RawTransactions.ts | 30 +- lib/Schnorr.ts | 37 +- lib/Script.ts | 13 +- lib/Socket.ts | 2 +- lib/Transaction.ts | 11 +- lib/TransactionBuilder.ts | 44 +- lib/Util.ts | 12 +- package.json | 2 +- test/unit/Address.ts | 359 ++++---- test/unit/BITBOX.ts | 118 +-- test/unit/BitcoinCash.ts | 179 ++-- test/unit/Block.ts | 60 +- test/unit/Blockchain.ts | 127 ++- test/unit/Control.ts | 25 +- test/unit/Crypto.ts | 122 +-- test/unit/ECPair.ts | 148 ++-- test/unit/Generating.ts | 25 +- test/unit/HDNode.ts | 340 ++++---- test/unit/Mining.ts | 36 +- test/unit/Mnemonic.ts | 239 +++--- test/unit/Price.ts | 23 +- test/unit/RawTransactions.js | 28 +- test/unit/RawTransactions.ts | 78 +- test/unit/Script.ts | 346 ++++---- test/unit/Transaction.ts | 59 +- test/unit/TransactionBuilder.ts | 1393 ++++++++++++++++--------------- test/unit/Util.ts | 47 +- 41 files changed, 2289 insertions(+), 2294 deletions(-) diff --git a/index.ts b/index.ts index 55ba2fc5..a1112911 100644 --- a/index.ts +++ b/index.ts @@ -47,7 +47,7 @@ interface NewOptions extends ConsoleOptions { restURL: string } -program.version("7.2.0 ", "-v, --version") +program.version("7.2.1 ", "-v, --version") program .command("new ") diff --git a/lib/Address.ts b/lib/Address.ts index 6f796d36..4ed8d6d2 100644 --- a/lib/Address.ts +++ b/lib/Address.ts @@ -1,4 +1,4 @@ -import axios from "axios" +import axios, { AxiosResponse } from "axios" import { AddressDetailsResult, AddressUtxoResult, AddressUnconfirmedResult } from "bitcoin-com-rest"; import * as bcl from "bitcoincashjs-lib" import { resturl } from "./BITBOX" @@ -21,7 +21,7 @@ interface Decoded extends Hash { format: string } -interface BitcoinCash { +export interface BitcoinCash { hashGenesisBlock: string port: number portRpc: number @@ -55,13 +55,13 @@ interface DecodedHash160 { } export class Address { - restURL: string + public restURL: string constructor(restURL: string = resturl) { this.restURL = restURL } // Translate address from any address format into a specific format. - toLegacyAddress(address: string): string { + public toLegacyAddress(address: string): string { const { prefix, type, hash }: Decoded = this._decode(address) let bitcoincash: BitcoinCash = coininfo.bitcoincash.main switch (prefix) { @@ -91,7 +91,7 @@ export class Address { return Bitcoin.address.toBase58Check(hashBuf, version) } - toCashAddress( + public toCashAddress( address: string, prefix: boolean = true, regtest: boolean = false @@ -113,13 +113,13 @@ export class Address { } // Converts legacy address format to hash160 - legacyToHash160(address: string): string { + public legacyToHash160(address: string): string { const bytes: Bytes = Bitcoin.address.fromBase58Check(address) return bytes.hash.toString("hex") } // Converts cash address format to hash160 - cashToHash160(address: string): string { + public cashToHash160(address: string): string { const legacyAddress: string = this.toLegacyAddress(address) const bytes: Bytes = Bitcoin.address.fromBase58Check(legacyAddress) return bytes.hash.toString("hex") @@ -133,7 +133,7 @@ export class Address { // } // Converts hash160 to Legacy Address - hash160ToLegacy( + public hash160ToLegacy( hash160: string, network: number = Bitcoin.networks.bitcoin.pubKeyHash ): string { @@ -142,7 +142,7 @@ export class Address { } // Converts hash160 to Cash Address - hash160ToCash( + public hash160ToCash( hash160: string, network: number = Bitcoin.networks.bitcoin.pubKeyHash, regtest: boolean = false @@ -151,171 +151,52 @@ export class Address { return this.toCashAddress(legacyAddress, true, regtest) } - _decode(address: string): Decoded { - try { - return this._decodeLegacyAddress(address) - } catch (error) { } - - try { - return this._decodeCashAddress(address) - } catch (error) { } - - throw new Error(`Unsupported address format : ${address}`) - } - - _decodeHash160(address: string): DecodedHash160 { - try { - return this._decodeAddressFromHash160(address) - } catch (error) { } - - throw new Error(`Unsupported address format : ${address}`) - } - - _decodeLegacyAddress(address: string): Decoded { - const { version, hash }: Bytes = Bitcoin.address.fromBase58Check(address) - const info: { - main: any - test: any - } = coininfo.bitcoincash - - let decoded: Decoded = { - prefix: "", - type: "", - hash: hash, - format: "" - } - switch (version) { - case info.main.versions.public: - decoded = { - prefix: "bitcoincash", - type: "P2PKH", - hash: hash, - format: "legacy" - } - break - case info.main.versions.scripthash: - decoded = { - prefix: "bitcoincash", - type: "P2SH", - hash: hash, - format: "legacy" - } - break - case info.test.versions.public: - decoded = { - prefix: "bchtest", - type: "P2PKH", - hash: hash, - format: "legacy" - } - break - case info.test.versions.scripthash: - decoded = { - prefix: "bchtest", - type: "P2SH", - hash: hash, - format: "legacy" - } - break - } - return decoded - } - - _decodeCashAddress(address: string): Decoded { - if (address.indexOf(":") !== -1) { - const decoded: Decoded = cashaddr.decode(address) - decoded.format = "cashaddr" - return decoded - } - - const prefixes: string[] = ["bitcoincash", "bchtest", "bchreg"] - for (let i: number = 0; i < prefixes.length; ++i) { - try { - const decoded: Decoded = cashaddr.decode(`${prefixes[i]}:${address}`) - decoded.format = "cashaddr" - return decoded - } catch (error) { } - } - - throw new Error(`Invalid format : ${address}`) - } - - _decodeAddressFromHash160(address: string): DecodedHash160 { - let decodedHash160: DecodedHash160 = { - legacyAddress: "", - cashAddress: "", - format: "" - } - if (address.length === 40) { - decodedHash160 = { - legacyAddress: this.hash160ToLegacy(address), - cashAddress: this.hash160ToCash(address), - format: "hash160" - } - } else if (this.isCashAddress(address) || this.isLegacyAddress(address)) { - decodedHash160 = { - legacyAddress: this.toLegacyAddress(address), - cashAddress: this.toCashAddress(address), - format: "nonHash160" - } - } - return decodedHash160 - } - - isLegacyAddress(address: string): boolean { + public isLegacyAddress(address: string): boolean { return this.detectAddressFormat(address) === "legacy" } - isCashAddress(address: string): boolean { + public isCashAddress(address: string): boolean { return this.detectAddressFormat(address) === "cashaddr" } - isHash160(address: string): boolean { + public isHash160(address: string): boolean { return this._detectHash160Format(address) === "hash160" } // Test for address network. - isMainnetAddress(address: string): boolean { + public isMainnetAddress(address: string): boolean { if (address[0] === "x") return true else if (address[0] === "t") return false return this.detectAddressNetwork(address) === "mainnet" } - isTestnetAddress(address: string): boolean { + public isTestnetAddress(address: string): boolean { if (address[0] === "x") return false else if (address[0] === "t") return true return this.detectAddressNetwork(address) === "testnet" } - isRegTestAddress(address: string): boolean { + public isRegTestAddress(address: string): boolean { return this.detectAddressNetwork(address) === "regtest" } // Test for address type. - isP2PKHAddress(address: string): boolean { + public isP2PKHAddress(address: string): boolean { return this.detectAddressType(address) === "p2pkh" } - isP2SHAddress(address: string): boolean { + public isP2SHAddress(address: string): boolean { return this.detectAddressType(address) === "p2sh" } - // Detect address format. - detectAddressFormat(address: string): string { + public detectAddressFormat(address: string): string { const decoded: Decoded = this._decode(address) return decoded.format } - // Detect address format. - _detectHash160Format(address: string): string { - const decoded: DecodedHash160 = this._decodeHash160(address) - return decoded.format - } - - // Detect address network. - detectAddressNetwork(address: string): string { + public detectAddressNetwork(address: string): string { if (address[0] === "x") return "mainnet" else if (address[0] === "t") return "testnet" @@ -336,13 +217,13 @@ export class Address { return prefix } - // Detect address type. - detectAddressType(address: string): string { + + public detectAddressType(address: string): string { const decoded: Decoded = this._decode(address) return decoded.type.toLowerCase() } - fromXPub(xpub: string, path: string = "0/0"): string { + public fromXPub(xpub: string, path: string = "0/0"): string { let bitcoincash: BitcoinCash if (xpub[0] === "x") bitcoincash = coininfo.bitcoincash.main else bitcoincash = coininfo.bitcoincash.test @@ -353,7 +234,7 @@ export class Address { return this.toCashAddress(address.getAddress()) } - fromXPriv(xpriv: string, path: string = "0'/0"): string { + public fromXPriv(xpriv: string, path: string = "0'/0"): string { let bitcoincash: BitcoinCash if (xpriv[0] === "x") bitcoincash = coininfo.bitcoincash.main else bitcoincash = coininfo.bitcoincash.test @@ -367,7 +248,7 @@ export class Address { return this.toCashAddress(address.getAddress()) } - fromOutputScript(scriptPubKey: Buffer, network: string = "mainnet"): string { + public fromOutputScript(scriptPubKey: Buffer, network: string = "mainnet"): string { let netParam: any if (network !== "bitcoincash" && network !== "mainnet") netParam = Bitcoin.networks.testnet @@ -381,13 +262,13 @@ export class Address { ) } - async details( + public async details( address: string | string[] ): Promise { try { // Handle single address. if (typeof address === "string") { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${this.restURL}address/details/${address}` ) @@ -402,7 +283,7 @@ export class Address { addresses: address } } - const response: any = await axios(options) + const response: AxiosResponse = await axios(options) return response.data } @@ -414,13 +295,13 @@ export class Address { } } - async utxo( + public async utxo( address: string | string[] ): Promise { try { // Handle single address. if (typeof address === "string") { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${this.restURL}address/utxo/${address}` ) return response.data @@ -432,7 +313,7 @@ export class Address { addresses: address } } - const response: any = await axios(options) + const response: AxiosResponse = await axios(options) return response.data } @@ -444,13 +325,13 @@ export class Address { } } - async unconfirmed( + public async unconfirmed( address: string | string[] ): Promise { try { // Handle single address. if (typeof address === "string") { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${this.restURL}address/unconfirmed/${address}` ) return response.data @@ -464,7 +345,7 @@ export class Address { addresses: address } } - const response: any = await axios(options) + const response: AxiosResponse = await axios(options) return response.data } @@ -476,11 +357,11 @@ export class Address { } } - async transactions(address: string | string[]): Promise { + public async transactions(address: string | string[]): Promise { try { // Handle single address. if (typeof address === "string") { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${this.restURL}address/transactions/${address}` ) return response.data @@ -494,7 +375,7 @@ export class Address { addresses: address } } - const response: any = await axios(options) + const response: AxiosResponse = await axios(options) return response.data } @@ -505,4 +386,120 @@ export class Address { else throw error } } + + private _detectHash160Format(address: string): string { + const decoded: DecodedHash160 = this._decodeHash160(address) + return decoded.format + } + + private _decode(address: string): Decoded { + try { + return this._decodeLegacyAddress(address) + } catch (error) { } + + try { + return this._decodeCashAddress(address) + } catch (error) { } + + throw new Error(`Unsupported address format : ${address}`) + } + + private _decodeHash160(address: string): DecodedHash160 { + try { + return this._decodeAddressFromHash160(address) + } catch (error) { } + + throw new Error(`Unsupported address format : ${address}`) + } + + private _decodeLegacyAddress(address: string): Decoded { + const { version, hash }: Bytes = Bitcoin.address.fromBase58Check(address) + const info: { + main: any + test: any + } = coininfo.bitcoincash + + let decoded: Decoded = { + prefix: "", + type: "", + hash: hash, + format: "" + } + switch (version) { + case info.main.versions.public: + decoded = { + prefix: "bitcoincash", + type: "P2PKH", + hash: hash, + format: "legacy" + } + break + case info.main.versions.scripthash: + decoded = { + prefix: "bitcoincash", + type: "P2SH", + hash: hash, + format: "legacy" + } + break + case info.test.versions.public: + decoded = { + prefix: "bchtest", + type: "P2PKH", + hash: hash, + format: "legacy" + } + break + case info.test.versions.scripthash: + decoded = { + prefix: "bchtest", + type: "P2SH", + hash: hash, + format: "legacy" + } + break + } + return decoded + } + + private _decodeCashAddress(address: string): Decoded { + if (address.indexOf(":") !== -1) { + const decoded: Decoded = cashaddr.decode(address) + decoded.format = "cashaddr" + return decoded + } + + const prefixes: string[] = ["bitcoincash", "bchtest", "bchreg"] + for (let i: number = 0; i < prefixes.length; ++i) { + try { + const decoded: Decoded = cashaddr.decode(`${prefixes[i]}:${address}`) + decoded.format = "cashaddr" + return decoded + } catch (error) { } + } + + throw new Error(`Invalid format : ${address}`) + } + + private _decodeAddressFromHash160(address: string): DecodedHash160 { + let decodedHash160: DecodedHash160 = { + legacyAddress: "", + cashAddress: "", + format: "" + } + if (address.length === 40) { + decodedHash160 = { + legacyAddress: this.hash160ToLegacy(address), + cashAddress: this.hash160ToCash(address), + format: "hash160" + } + } else if (this.isCashAddress(address) || this.isLegacyAddress(address)) { + decodedHash160 = { + legacyAddress: this.toLegacyAddress(address), + cashAddress: this.toCashAddress(address), + format: "nonHash160" + } + } + return decodedHash160 + } } diff --git a/lib/BITBOX.ts b/lib/BITBOX.ts index cc05f39c..74ae3185 100644 --- a/lib/BITBOX.ts +++ b/lib/BITBOX.ts @@ -22,33 +22,32 @@ import { ECPair } from "./ECPair" import { Script } from "./Script" import { Price } from "./Price" import { Socket } from "./Socket" -// import { Wallet } from "./Wallet" import { Schnorr } from "./Schnorr" +// import { Wallet } from "./Wallet" export const resturl = "https://rest.bitcoin.com/v2/" - export class BITBOX { - restURL: string - Address: Address - BitcoinCash: BitcoinCash - Block: Block - Blockchain: Blockchain - Control: Control - Crypto: Crypto - ECPair: any - Generating: Generating - HDNode: HDNode - Mining: Mining - Mnemonic: Mnemonic - Price: Price - RawTransactions: RawTransactions - Script: Script - Transaction: Transaction - TransactionBuilder: any - Util: Util - Socket: any + public restURL: string + public Address: Address + public BitcoinCash: BitcoinCash + public Block: Block + public Blockchain: Blockchain + public Control: Control + public Crypto: Crypto + public ECPair: any + public Generating: Generating + public HDNode: HDNode + public Mining: Mining + public Mnemonic: Mnemonic + public Price: Price + public RawTransactions: RawTransactions + public Script: Script + public Transaction: Transaction + public TransactionBuilder: any + public Util: Util + public Socket: any + public Schnorr: Schnorr // Wallet: Wallet - Schnorr: Schnorr constructor(config: IConfig = {}) { if (config && config.restURL && config.restURL !== "") this.restURL = config.restURL @@ -59,9 +58,8 @@ export class BITBOX { this.Block = new Block(this.restURL) this.Blockchain = new Blockchain(this.restURL) this.Control = new Control(this.restURL) - this.Crypto = Crypto - this.ECPair = ECPair - this.ECPair.setAddress(this.Address) + this.Crypto = new Crypto() + this.ECPair = new ECPair() this.Generating = new Generating(this.restURL) this.HDNode = new HDNode(this.Address) this.Mining = new Mining(this.restURL) @@ -70,11 +68,10 @@ export class BITBOX { this.RawTransactions = new RawTransactions(this.restURL) this.Script = new Script() this.Transaction = new Transaction(this.restURL) - this.TransactionBuilder = TransactionBuilder - this.TransactionBuilder.setAddress(this.Address) + this.TransactionBuilder = new TransactionBuilder() this.Util = new Util(this.restURL) - this.Socket = Socket - // this.Wallet = Wallet + this.Socket = new Socket() this.Schnorr = new Schnorr() + // this.Wallet = Wallet } } diff --git a/lib/BitcoinCash.ts b/lib/BitcoinCash.ts index d29f4ac8..2d005f6f 100644 --- a/lib/BitcoinCash.ts +++ b/lib/BitcoinCash.ts @@ -1,3 +1,7 @@ +// imports +import { Address } from "./Address" + +// consts const Bitcoin = require("bitcoincashjs-lib") const sb = require("satoshi-bitcoin") const bitcoinMessage = require("bitcoinjs-message") @@ -6,7 +10,6 @@ const bip21 = require("bip21") const coininfo = require("coininfo") const bip38 = require("bip38") const wif = require("wif") -import { Address } from "./Address" const Buffer = require("safe-buffer").Buffer @@ -31,32 +34,28 @@ export interface ByteCountOutput { } export class BitcoinCash { - _address: Address + private _address: Address constructor(address: Address = new Address()) { this._address = address } - // Translate coins to satoshi value - toSatoshi(coins: number): number { + public toSatoshi(coins: number): number { return sb.toSatoshi(coins) } - // Translate satoshi to coin value - toBitcoinCash(satoshis: number): number { + public toBitcoinCash(satoshis: number): number { return sb.toBitcoin(satoshis) } - toBits(satoshis: number): number { + public toBits(satoshis: number): number { return satoshis / 100 } - // Translate satoshi to bits denomination - satsToBits(satoshis: number): number { + public satsToBits(satoshis: number): number { return satoshis / 100 } - // sign message - signMessageWithPrivKey(privateKeyWIF: string, message: string): string { + public signMessageWithPrivKey(privateKeyWIF: string, message: string): string { const network: string = privateKeyWIF.charAt(0) === "c" ? "testnet" : "mainnet" let bitcoincash: any @@ -74,8 +73,7 @@ export class BitcoinCash { .toString("base64") } - // verify message - verifyMessage(address: string, signature: string, message: string): boolean { + public verifyMessage(address: string, signature: string, message: string): boolean { return bitcoinMessage.verify( message, this._address.toLegacyAddress(address), @@ -83,18 +81,15 @@ export class BitcoinCash { ) } - // encode base58Check - encodeBase58Check(hex: string): string { + public encodeBase58Check(hex: string): string { return bs58.encode(Buffer.from(hex, "hex")) } - // decode base58Check - decodeBase58Check(address: string): string { + public decodeBase58Check(address: string): string { return bs58.decode(address).toString("hex") } - // encode bip21 url - encodeBIP21( + public encodeBIP21( address: string, options: EncodeBIP21Options, regtest: boolean = false @@ -105,12 +100,11 @@ export class BitcoinCash { ) } - // decode bip21 url - decodeBIP21(url: string): BIP21Object { + public decodeBIP21(url: string): BIP21Object { return bip21.decode(url) } - getByteCount(inputs: any, outputs: any): number { + public getByteCount(inputs: any, outputs: any): number { // from https://github.com/bitcoinjs/bitcoinjs-lib/issues/921#issuecomment-354394004 let totalWeight: number = 0 let hasWitness: boolean = false @@ -162,13 +156,13 @@ export class BitcoinCash { return Math.ceil(totalWeight / 4) } - encryptBIP38(privKeyWIF: string, passphrase: string): string { + public encryptBIP38(privKeyWIF: string, passphrase: string): string { const decoded: any = wif.decode(privKeyWIF) return bip38.encrypt(decoded.privateKey, decoded.compressed, passphrase) } - decryptBIP38( + public decryptBIP38( encryptedKey: string, passphrase: string, network: string = "mainnet" diff --git a/lib/Block.ts b/lib/Block.ts index 3f88d4d8..83e9e7b9 100644 --- a/lib/Block.ts +++ b/lib/Block.ts @@ -1,20 +1,20 @@ -import axios from "axios" +import axios, { AxiosResponse } from "axios" import { BlockDetails } from "bitcoin-com-rest"; import { resturl } from "./BITBOX" export class Block { - restURL: string + public restURL: string constructor(restURL: string = resturl) { this.restURL = restURL } - async detailsByHeight( + public async detailsByHeight( id: number | number[] ): Promise { try { // Single block if (typeof id === "number") { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${this.restURL}block/detailsByHeight/${id}` ) return response.data @@ -28,7 +28,7 @@ export class Block { heights: id } } - const response = await axios(options) + const response: AxiosResponse = await axios(options) return response.data } @@ -40,13 +40,13 @@ export class Block { } } - async detailsByHash( + public async detailsByHash( hash: string | string[] ): Promise { try { // Single block if (typeof hash === "string") { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${this.restURL}block/detailsByHash/${hash}` ) return response.data @@ -60,7 +60,7 @@ export class Block { hashes: hash } } - const response = await axios(options) + const response: AxiosResponse = await axios(options) return response.data } diff --git a/lib/Blockchain.ts b/lib/Blockchain.ts index cb6524e9..215b5172 100644 --- a/lib/Blockchain.ts +++ b/lib/Blockchain.ts @@ -3,19 +3,19 @@ - Add blockhash functionality back into getTxOutProof */ -import axios from "axios" +import axios, { AxiosResponse } from "axios" import { BlockDetails, BlockchainInfo, BlockHeader, ChainTip, MempoolInfo, TxOut, MempoolEntryResult } from "bitcoin-com-rest"; import { resturl } from "./BITBOX" export class Blockchain { - restURL: string + public restURL: string constructor(restURL: string = resturl) { this.restURL = restURL } - async getBestBlockHash(): Promise { + public async getBestBlockHash(): Promise { try { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getBestBlockHash` ) return response.data @@ -25,12 +25,12 @@ export class Blockchain { } } - async getBlock( + public async getBlock( blockhash: string, verbose: boolean = true ): Promise { try { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getBlock/${blockhash}?verbose=${verbose}` ) return response.data @@ -40,9 +40,9 @@ export class Blockchain { } } - async getBlockchainInfo(): Promise { + public async getBlockchainInfo(): Promise { try { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getBlockchainInfo` ) return response.data @@ -52,9 +52,9 @@ export class Blockchain { } } - async getBlockCount(): Promise { + public async getBlockCount(): Promise { try { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getBlockCount` ) return response.data @@ -64,11 +64,11 @@ export class Blockchain { } } - async getBlockHash(height: number = 1): Promise { + public async getBlockHash(height: number = 1): Promise { // if (typeof height !== "string") height = JSON.stringify(height) try { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getBlockHash/${height}` ) return response.data @@ -78,14 +78,14 @@ export class Blockchain { } } - async getBlockHeader( + public async getBlockHeader( hash: string | string[], verbose: boolean = true ): Promise { try { // Handle single hash. if (typeof hash === "string") { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getBlockHeader/${hash}?verbose=${verbose}` ) @@ -101,7 +101,7 @@ export class Blockchain { verbose: verbose } } - const response = await axios(options) + const response: AxiosResponse = await axios(options) return response.data } @@ -113,9 +113,9 @@ export class Blockchain { } } - async getChainTips(): Promise { + public async getChainTips(): Promise { try { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getChainTips` ) return response.data @@ -125,9 +125,9 @@ export class Blockchain { } } - async getDifficulty(): Promise { + public async getDifficulty(): Promise { try { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getDifficulty` ) return response.data @@ -138,14 +138,14 @@ export class Blockchain { } // TODO: add back to REST - async getMempoolAncestors( + public async getMempoolAncestors( txid: string, verbose: boolean = false ): Promise { if (typeof txid !== "string") txid = JSON.stringify(txid) try { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${ this.restURL }blockchain/getMempoolAncestors/${txid}?verbose=${verbose}` @@ -158,14 +158,14 @@ export class Blockchain { } // TODO: add back to REST - async getMempoolDescendants( + public async getMempoolDescendants( txid: string, verbose: boolean = false ): Promise { if (typeof txid !== "string") txid = JSON.stringify(txid) try { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${ this.restURL }blockchain/getMempoolDescendants/${txid}?verbose=${verbose}` @@ -177,12 +177,12 @@ export class Blockchain { } } - async getMempoolEntry(txid: string | string[]): Promise { + public async getMempoolEntry(txid: string | string[]): Promise { //if (typeof txid !== "string") txid = JSON.stringify(txid) try { if (typeof txid === "string") { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getMempoolEntry/${txid}` ) @@ -195,7 +195,7 @@ export class Blockchain { txids: txid } } - const response = await axios(options) + const response: AxiosResponse = await axios(options) return response.data } @@ -207,9 +207,9 @@ export class Blockchain { } } - async getMempoolInfo(): Promise { + public async getMempoolInfo(): Promise { try { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getMempoolInfo` ) return response.data @@ -219,10 +219,10 @@ export class Blockchain { } } - async getRawMempool(verbose: boolean = false): Promise { + public async getRawMempool(verbose: boolean = false): Promise { // TODO fix verbose try { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getRawMempool?vebose=${verbose}` ) return response.data @@ -232,14 +232,14 @@ export class Blockchain { } } - async getTxOut( + public async getTxOut( txid: string, n: any, include_mempool: boolean = true ): Promise { // TODO confirm this works try { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${ this.restURL }blockchain/getTxOut/${txid}/n?include_mempool=${include_mempool}` @@ -251,14 +251,14 @@ export class Blockchain { } } - async getTxOutProof(txids: string | string[]): Promise { + public async getTxOutProof(txids: string | string[]): Promise { try { // Single txid. if (typeof txids === "string") { const path = `${this.restURL}blockchain/getTxOutProof/${txids}` //if (blockhash) path = `${path}?blockhash=${blockhash}` - const response: any = await axios.get(path) + const response: AxiosResponse = await axios.get(path) return response.data // Array of txids. @@ -270,7 +270,7 @@ export class Blockchain { txids: txids } } - const response = await axios(options) + const response: AxiosResponse = await axios(options) return response.data } @@ -282,10 +282,10 @@ export class Blockchain { } } - async preciousBlock(blockhash: string): Promise { + public async preciousBlock(blockhash: string): Promise { // TODO bring this back to REST try { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/preciousBlock/${blockhash}` ) return response.data @@ -295,10 +295,10 @@ export class Blockchain { } } - async pruneBlockchain(height: number): Promise { + public async pruneBlockchain(height: number): Promise { // TODO bring this back to REST try { - const response = await axios.post( + const response: AxiosResponse = await axios.post( `${this.restURL}blockchain/pruneBlockchain/${height}` ) return response.data @@ -308,12 +308,12 @@ export class Blockchain { } } - async verifyChain( + public async verifyChain( checklevel: number = 3, nblocks: number = 6 ): Promise { try { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${ this.restURL }blockchain/verifyChain?checklevel=${checklevel}&nblocks=${nblocks}` @@ -325,11 +325,11 @@ export class Blockchain { } } - async verifyTxOutProof(proof: any | any[]): Promise { + public async verifyTxOutProof(proof: string | string[]): Promise { try { // Single block if (typeof proof === "string") { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/verifyTxOutProof/${proof}` ) return response.data @@ -343,7 +343,7 @@ export class Blockchain { proofs: proof } } - const response = await axios(options) + const response: AxiosResponse = await axios(options) return response.data } diff --git a/lib/Control.ts b/lib/Control.ts index 2d3af9bd..5c5a88c3 100644 --- a/lib/Control.ts +++ b/lib/Control.ts @@ -1,16 +1,16 @@ -import axios from "axios" -import { NodeInfo, NodeMemoryInfo } from "bitcoin-com-rest"; +import axios, { AxiosResponse } from "axios" +import { NodeInfo } from "bitcoin-com-rest"; import { resturl } from "./BITBOX" export class Control { - restURL: string + public restURL: string constructor(restURL: string = resturl) { this.restURL = restURL } - async getInfo(): Promise { + public async getInfo(): Promise { try { - const response: any = await axios.get(`${this.restURL}control/getInfo`) + const response: AxiosResponse = await axios.get(`${this.restURL}control/getInfo`) return response.data } catch (error) { if (error.response && error.response.data) throw error.response.data diff --git a/lib/Crypto.ts b/lib/Crypto.ts index 5d8b6069..1780bc0b 100644 --- a/lib/Crypto.ts +++ b/lib/Crypto.ts @@ -1,28 +1,28 @@ -const randomBytes = require("randombytes") +import * as randomBytes from "randombytes" const Bitcoin = require("bitcoincashjs-lib") export class Crypto { - static sha1(buffer: Buffer): Buffer { + public sha1(buffer: Buffer): Buffer { return Bitcoin.crypto.sha1(buffer) } - static sha256(buffer: Buffer): Buffer { + public sha256(buffer: Buffer): Buffer { return Bitcoin.crypto.sha256(buffer) } - static ripemd160(buffer: Buffer): Buffer { + public ripemd160(buffer: Buffer): Buffer { return Bitcoin.crypto.ripemd160(buffer) } - static hash256(buffer: Buffer): Buffer { + public hash256(buffer: Buffer): Buffer { return Bitcoin.crypto.hash256(buffer) } - static hash160(buffer: Buffer): Buffer { + public hash160(buffer: Buffer): Buffer { return Bitcoin.crypto.hash160(buffer) } - static randomBytes(size: number = 16): Buffer { + public randomBytes(size: number = 16): Buffer { return randomBytes(size) } } diff --git a/lib/ECPair.ts b/lib/ECPair.ts index 14bd618d..49d98b9f 100644 --- a/lib/ECPair.ts +++ b/lib/ECPair.ts @@ -1,15 +1,16 @@ import * as bcl from "bitcoincashjs-lib"; +import { Address } from "./Address" const Bitcoin = require("bitcoincashjs-lib") const coininfo = require("coininfo") export class ECPair { - static _address: any - static setAddress(address: any): void { - ECPair._address = address + private _address: Address + constructor(address: Address = new Address()) { + this._address = address } - static fromWIF(privateKeyWIF: string): bcl.ECPair { + public fromWIF(privateKeyWIF: string): bcl.ECPair { let network: string = "mainnet" if (privateKeyWIF[0] === "L" || privateKeyWIF[0] === "K") network = "mainnet" @@ -24,31 +25,31 @@ export class ECPair { return Bitcoin.ECPair.fromWIF(privateKeyWIF, bitcoincashBitcoinJSLib) } - static toWIF(ecpair: bcl.ECPair): string { + public toWIF(ecpair: bcl.ECPair): string { return ecpair.toWIF() } - static sign(ecpair: bcl.ECPair, buffer: Buffer): bcl.ECSignature { + public sign(ecpair: bcl.ECPair, buffer: Buffer): bcl.ECSignature { return ecpair.sign(buffer) } - static verify(ecpair: bcl.ECPair, buffer: Buffer, signature: bcl.ECSignature): boolean { + public verify(ecpair: bcl.ECPair, buffer: Buffer, signature: bcl.ECSignature): boolean { return ecpair.verify(buffer, signature) } - static fromPublicKey(pubkeyBuffer: Buffer): bcl.ECPair { + public fromPublicKey(pubkeyBuffer: Buffer): bcl.ECPair { return Bitcoin.ECPair.fromPublicKeyBuffer(pubkeyBuffer) } - static toPublicKey(ecpair: bcl.ECPair): Buffer { + public toPublicKey(ecpair: bcl.ECPair): Buffer { return ecpair.getPublicKeyBuffer() } - static toLegacyAddress(ecpair: bcl.ECPair): string { + public toLegacyAddress(ecpair: bcl.ECPair): string { return ecpair.getAddress() } - static toCashAddress(ecpair: bcl.ECPair, regtest: boolean = false): string { - return ECPair._address.toCashAddress(ecpair.getAddress(), true, regtest) + public toCashAddress(ecpair: bcl.ECPair, regtest: boolean = false): string { + return this._address.toCashAddress(ecpair.getAddress(), true, regtest) } } diff --git a/lib/Generating.ts b/lib/Generating.ts index 2db23d1f..ff00a665 100644 --- a/lib/Generating.ts +++ b/lib/Generating.ts @@ -1,21 +1,21 @@ -import axios from "axios" +import axios, { AxiosResponse } from "axios" import { resturl } from "./BITBOX" export class Generating { - restURL: string + public restURL: string constructor(restURL: string = resturl) { this.restURL = restURL } - async generateToAddress( + public async generateToAddress( blocks: number, address: string, maxtries: number = 1000000 ): Promise { try { - const response: any = await axios.post( + const response: AxiosResponse = await axios.post( `${ - this.restURL + this.restURL }generating/generateToAddress/${blocks}/${address}?maxtries=${maxtries}` ) return response.data diff --git a/lib/HDNode.ts b/lib/HDNode.ts index 8fa1f31d..c6b9db9d 100644 --- a/lib/HDNode.ts +++ b/lib/HDNode.ts @@ -1,16 +1,19 @@ +// imports +import * as bcl from "bitcoincashjs-lib" +import { Address } from "./Address" + +// consts const Bitcoin = require("bitcoincashjs-lib") const coininfo = require("coininfo") const bip32utils = require("bip32-utils") -import * as bcl from "bitcoincashjs-lib" -import { Address } from "./Address" export class HDNode { - _address: Address + private _address: Address constructor(address: Address = new Address()) { this._address = address } - fromSeed(rootSeedBuffer: any, network: string = "mainnet"): bcl.HDNode { + public fromSeed(rootSeedBuffer: any, network: string = "mainnet"): bcl.HDNode { let bitcoincash: any if (network === "bitcoincash" || network === "mainnet") bitcoincash = coininfo.bitcoincash.main @@ -23,35 +26,35 @@ export class HDNode { ) } - toLegacyAddress(hdNode: bcl.HDNode): string { + public toLegacyAddress(hdNode: bcl.HDNode): string { return hdNode.getAddress() } - toCashAddress(hdNode: bcl.HDNode, regtest: boolean = false): string { + public toCashAddress(hdNode: bcl.HDNode, regtest: boolean = false): string { return this._address.toCashAddress(hdNode.getAddress(), true, regtest) } - toWIF(hdNode: bcl.HDNode): string { + public toWIF(hdNode: bcl.HDNode): string { return hdNode.keyPair.toWIF() } - toXPub(hdNode: bcl.HDNode): string { + public toXPub(hdNode: bcl.HDNode): string { return hdNode.neutered().toBase58() } - toXPriv(hdNode: bcl.HDNode): string { + public toXPriv(hdNode: bcl.HDNode): string { return hdNode.toBase58() } - toKeyPair(hdNode: bcl.HDNode): bcl.ECPair { + public toKeyPair(hdNode: bcl.HDNode): bcl.ECPair { return hdNode.keyPair } - toPublicKey(hdNode: bcl.HDNode): Buffer { + public toPublicKey(hdNode: bcl.HDNode): Buffer { return hdNode.getPublicKeyBuffer() } - fromXPriv(xpriv: string): bcl.HDNode { + public fromXPriv(xpriv: string): bcl.HDNode { let bitcoincash: any if (xpriv[0] === "x") bitcoincash = coininfo.bitcoincash.main else if (xpriv[0] === "t") bitcoincash = coininfo.bitcoincash.test @@ -60,59 +63,59 @@ export class HDNode { return Bitcoin.HDNode.fromBase58(xpriv, bitcoincashBitcoinJSLib) } - fromXPub(xpub: string): bcl.HDNode { + public fromXPub(xpub: string): bcl.HDNode { let bitcoincash: any if (xpub[0] === "x") bitcoincash = coininfo.bitcoincash.main else if (xpub[0] === "t") bitcoincash = coininfo.bitcoincash.test - const bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS() + const bitcoincashBitcoinJSLib: any = bitcoincash.toBitcoinJS() return Bitcoin.HDNode.fromBase58(xpub, bitcoincashBitcoinJSLib) } - derivePath(hdnode: bcl.HDNode, path: string): bcl.HDNode { + public derivePath(hdnode: bcl.HDNode, path: string): bcl.HDNode { return hdnode.derivePath(path) } - derive(hdnode: bcl.HDNode, path: string): bcl.HDNode { + public derive(hdnode: bcl.HDNode, path: string): bcl.HDNode { return hdnode.derive(path) } - deriveHardened(hdnode: bcl.HDNode, path: string): bcl.HDNode { + public deriveHardened(hdnode: bcl.HDNode, path: string): bcl.HDNode { return hdnode.deriveHardened(path) } - sign(hdnode: bcl.HDNode, buffer: Buffer): bcl.ECSignature { + public sign(hdnode: bcl.HDNode, buffer: Buffer): bcl.ECSignature { return hdnode.sign(buffer) } - verify(hdnode: bcl.HDNode, buffer: Buffer, signature: bcl.ECSignature): boolean { + public verify(hdnode: bcl.HDNode, buffer: Buffer, signature: bcl.ECSignature): boolean { return hdnode.verify(buffer, signature) } - isPublic(hdnode: bcl.HDNode): boolean { + public isPublic(hdnode: bcl.HDNode): boolean { return JSON.parse(hdnode.isNeutered()) } - isPrivate(hdnode: bcl.HDNode): boolean { + public isPrivate(hdnode: bcl.HDNode): boolean { return !hdnode.isNeutered() } - toIdentifier(hdnode: bcl.HDNode): string { + public toIdentifier(hdnode: bcl.HDNode): string { return hdnode.getIdentifier() } - fromBase58(base58: string, network: string): string { + public fromBase58(base58: string, network: string): string { return Bitcoin.HDNode.fromBase58(base58, network) } - createAccount(hdNodes: bcl.HDNode[]): object { - const arr = hdNodes.map( + public createAccount(hdNodes: bcl.HDNode[]): object { + const arr: any = hdNodes.map( (item: any, index: number) => new bip32utils.Chain(item.neutered()) ) return new bip32utils.Account(arr) } - createChain(hdNode: bcl.HDNode): object { + public createChain(hdNode: bcl.HDNode): object { return new bip32utils.Chain(hdNode) } } diff --git a/lib/Mining.ts b/lib/Mining.ts index e7b227a5..8455bb84 100644 --- a/lib/Mining.ts +++ b/lib/Mining.ts @@ -1,15 +1,15 @@ -import axios from "axios" +import axios, { AxiosResponse } from "axios" import { resturl } from "./BITBOX" export class Mining { - restURL: string + public restURL: string constructor(restURL: string = resturl) { this.restURL = restURL } - async getBlockTemplate(template_request: any): Promise { + public async getBlockTemplate(template_request: any): Promise { try { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${this.restURL}mining/getBlockTemplate/${template_request}` ) return response.data @@ -19,9 +19,9 @@ export class Mining { } } - async getMiningInfo(): Promise { + public async getMiningInfo(): Promise { try { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${this.restURL}mining/getMiningInfo` ) return response.data @@ -31,14 +31,14 @@ export class Mining { } } - async getNetworkHashps( + public async getNetworkHashps( nblocks: number = 120, height: number = 1 ): Promise { try { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${ - this.restURL + this.restURL }mining/getNetworkHashps?nblocks=${nblocks}&height=${height}` ) return response.data @@ -48,12 +48,12 @@ export class Mining { } } - async submitBlock(hex: string, parameters: any): Promise { + public async submitBlock(hex: string, parameters: any): Promise { let path: string = `${this.restURL}mining/submitBlock/${hex}` if (parameters) path = `${path}?parameters=${parameters}` try { - const response: any = await axios.post(path) + const response: AxiosResponse = await axios.post(path) return response.data } catch (error) { if (error.response && error.response.data) throw error.response.data diff --git a/lib/Mnemonic.ts b/lib/Mnemonic.ts index 282a1ecc..39a3646f 100644 --- a/lib/Mnemonic.ts +++ b/lib/Mnemonic.ts @@ -9,24 +9,24 @@ import { Address } from "./Address" import * as bcl from "bitcoincashjs-lib" export class Mnemonic { - _address: Address + private _address: Address constructor(address: Address = new Address()) { this._address = address } - generate(bits: number = 128, wordlist?: string[]): string { + public generate(bits: number = 128, wordlist?: string[]): string { return BIP39.generateMnemonic(bits, randomBytes, wordlist) } - fromEntropy(bytes: Buffer, wordlist: string[]): string { + public fromEntropy(bytes: Buffer, wordlist: string[]): string { return BIP39.entropyToMnemonic(bytes, wordlist) } - toEntropy(mnemonic: string, wordlist: string[]): Buffer { + public toEntropy(mnemonic: string, wordlist: string[]): Buffer { return Buffer.from(BIP39.mnemonicToEntropy(mnemonic, wordlist), "hex") } - validate(mnemonic: string, wordlist: string[]): string { + public validate(mnemonic: string, wordlist: string[]): string { // Preprocess the words const words = mnemonic.split(" ") // Detect blank phrase @@ -49,15 +49,15 @@ export class Mnemonic { return "Valid mnemonic" } - toSeed(mnemonic: string, password: string = ""): Buffer { + public toSeed(mnemonic: string, password: string = ""): Buffer { return BIP39.mnemonicToSeed(mnemonic, password) } - wordLists(): any { + public wordLists(): any { return BIP39.wordlists } - toKeypairs( + public toKeypairs( mnemonic: string, numberOfKeypairs: number = 1, regtest: boolean = false @@ -90,7 +90,7 @@ export class Mnemonic { return accounts } - findNearestWord(word: string, wordlist: string[]): string { + public findNearestWord(word: string, wordlist: string[]): string { let minDistance: number = 99 let closestWord: string = wordlist[0] for (let i: number = 0; i < wordlist.length; i++) { @@ -119,7 +119,7 @@ export class Mnemonic { * @return Object the final object. */ -const _extend: any = function(dst: any): any { +const _extend: any = function (dst: any): any { const sources: any = Array.prototype.slice.call(arguments, 1) for (let i: number = 0; i < sources.length; ++i) { const src = sources[i] @@ -132,7 +132,7 @@ const _extend: any = function(dst: any): any { * Defer execution of given function. * @param {Function} func */ -const _defer: any = function(func: any): any { +const _defer: any = function (func: any): any { if (typeof setImmediate === "function") return setImmediate(func) return setTimeout(func, 0) @@ -149,7 +149,7 @@ var Levenshtein: any = { * @param str2 String the second string. * @return Integer the levenshtein distance (0 and above). */ - get: function(str1: any, str2: any) { + get: function (str1: any, str2: any) { // base cases if (str1 === str2) return 0 if (str1.length === 0) return str2.length @@ -203,7 +203,7 @@ var Levenshtein: any = { * @param [options] Object additional options. * @param [options.progress] Function progress callback with signature: function(percentComplete) */ - getAsync: function(str1: any, str2: any, cb: any, options: any) { + getAsync: function (str1: any, str2: any, cb: any, options: any) { options = _extend( {}, { @@ -234,7 +234,7 @@ var Levenshtein: any = { i = 0 j = -1 - var __calculate = function() { + var __calculate = function () { // reset timer startTime = new Date().valueOf() currentTime = startTime diff --git a/lib/Price.ts b/lib/Price.ts index da2765e0..8dd0530b 100644 --- a/lib/Price.ts +++ b/lib/Price.ts @@ -1,9 +1,9 @@ -import axios from "axios" +import axios, { AxiosResponse } from "axios" export class Price { - async current(currency: string = "usd"): Promise { + public async current(currency: string = "usd"): Promise { try { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `https://index-api.bitcoin.com/api/v0/cash/price/${currency.toLowerCase()}` ) return response.data.price diff --git a/lib/RawTransactions.ts b/lib/RawTransactions.ts index 8f5a9b42..d0fa3405 100644 --- a/lib/RawTransactions.ts +++ b/lib/RawTransactions.ts @@ -1,18 +1,18 @@ -import axios from "axios" +import axios, { AxiosResponse } from "axios" import { VerboseRawTransaction } from "bitcoin-com-rest"; import { resturl } from "./BITBOX" export class RawTransactions { - restURL: string + public restURL: string constructor(restURL: string = resturl) { this.restURL = restURL } - async decodeRawTransaction(hex: string | string[]): Promise { + public async decodeRawTransaction(hex: string | string[]): Promise { try { // Single hex if (typeof hex === "string") { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${this.restURL}rawtransactions/decodeRawTransaction/${hex}` ) @@ -27,7 +27,7 @@ export class RawTransactions { hexes: hex } } - const response = await axios(options) + const response: AxiosResponse = await axios(options) return response.data } @@ -39,12 +39,12 @@ export class RawTransactions { } } - async decodeScript(script: string | string[]): Promise { + public async decodeScript(script: string | string[]): Promise { //if (typeof script !== "string") script = JSON.stringify(script) try { if (typeof script === "string") { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${this.restURL}rawtransactions/decodeScript/${script}` ) @@ -57,7 +57,7 @@ export class RawTransactions { hexes: script } } - const response = await axios(options) + const response: AxiosResponse = await axios(options) return response.data } @@ -69,15 +69,15 @@ export class RawTransactions { } } - async getRawTransaction( + public async getRawTransaction( txid: string | string[], verbose: boolean = false ): Promise { try { if (typeof txid === "string") { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${ - this.restURL + this.restURL }rawtransactions/getRawTransaction/${txid}?verbose=${verbose}` ) @@ -91,7 +91,7 @@ export class RawTransactions { verbose: verbose } } - const response = await axios(options) + const response: AxiosResponse = await axios(options) return response.data } @@ -103,14 +103,14 @@ export class RawTransactions { } } - async sendRawTransaction( + public async sendRawTransaction( hex: string | string[], allowhighfees: boolean = false ): Promise { try { // Single tx hex. if (typeof hex === "string") { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${this.restURL}rawtransactions/sendRawTransaction/${hex}` ) @@ -133,7 +133,7 @@ export class RawTransactions { hexes: hex } } - const response = await axios(options) + const response: AxiosResponse = await axios(options) return response.data } diff --git a/lib/Schnorr.ts b/lib/Schnorr.ts index 74a9fd9b..23368ef1 100644 --- a/lib/Schnorr.ts +++ b/lib/Schnorr.ts @@ -1,6 +1,9 @@ -const schnorr = require("bip-schnorr") +// imports import * as BigInteger from "bigi" +// consts +const schnorr = require("bip-schnorr") + export interface Session { sessionId: Buffer; message: Buffer; @@ -10,15 +13,15 @@ export interface Session { } export class Schnorr { - sign(privateKey: BigInteger, message: Buffer): Buffer { + public sign(privateKey: BigInteger, message: Buffer): Buffer { return schnorr.sign(privateKey, message) } - verify(publicKey: Buffer, message: Buffer, signatureToVerify: Buffer): void { + public verify(publicKey: Buffer, message: Buffer, signatureToVerify: Buffer): void { return schnorr.verify(publicKey, message, signatureToVerify) } - batchVerify( + public batchVerify( publicKeys: Buffer[], messages: Buffer[], signaturesToVerify: Buffer[] @@ -26,19 +29,19 @@ export class Schnorr { return schnorr.batchVerify(publicKeys, messages, signaturesToVerify) } - nonInteractive(privateKeys: BigInteger, message: Buffer): Buffer { + public nonInteractive(privateKeys: BigInteger, message: Buffer): Buffer { return schnorr.muSig.nonInteractive(privateKeys, message) } - computeEll(publicKeys: BigInteger): Buffer { + public computeEll(publicKeys: BigInteger): Buffer { return schnorr.muSig.computeEll(publicKeys) } - publicKeyCombine(publicKeys: Buffer[], publicKeyHash: Buffer): Buffer { + public publicKeyCombine(publicKeys: Buffer[], publicKeyHash: Buffer): Buffer { return schnorr.muSig.pubKeyCombine(publicKeys, publicKeyHash) } - sessionInitialize( + public sessionInitialize( sessionId: Buffer, privateKey: BigInteger, message: Buffer, @@ -56,11 +59,11 @@ export class Schnorr { ) } - sessionNonceCombine(session: Session, nonces: Buffer[]): Buffer { + public sessionNonceCombine(session: Session, nonces: Buffer[]): Buffer { return schnorr.muSig.sessionNonceCombine(session, nonces) } - partialSign( + public partialSign( session: Session, message: Buffer, nonceCombined: Buffer, @@ -74,7 +77,7 @@ export class Schnorr { ) } - partialSignatureVerify( + public partialSignatureVerify( session: Session, partialSignature: Buffer, nonceCombined: Buffer, @@ -92,30 +95,30 @@ export class Schnorr { ) } - partialSignaturesCombine( + public partialSignaturesCombine( nonceCombined: Buffer, partialSignatures: Buffer ): Buffer { return schnorr.muSig.partialSigCombine(nonceCombined, partialSignatures) } - bufferToInt(buffer: Buffer): BigInteger { + public bufferToInt(buffer: Buffer): BigInteger { return schnorr.convert.bufferToInt(buffer) } - intToBuffer(bigInteger: BigInteger): Buffer { + public intToBuffer(bigInteger: BigInteger): Buffer { return schnorr.convert.intToBuffer(bigInteger) } - hash(buffer: Buffer): Buffer { + public hash(buffer: Buffer): Buffer { return schnorr.convert.hash(buffer) } - pointToBuffer(point: any): any { + public pointToBuffer(point: any): any { return schnorr.convert.pointToBuffer(point) } - pubKeyToPoint(publicKey: any): any { + public pubKeyToPoint(publicKey: any): any { return schnorr.convert.pubKeyToPoint(publicKey) } } diff --git a/lib/Script.ts b/lib/Script.ts index 3b1a1d31..1fb188e5 100644 --- a/lib/Script.ts +++ b/lib/Script.ts @@ -1,3 +1,4 @@ +// consts const Bitcoin = require("bitcoincashjs-lib") const opcodes = require("bitcoincash-ops") @@ -178,19 +179,19 @@ export class Script { this.scriptHash = Bitcoin.script.scriptHash } - classifyInput(script: Buffer): string { + public classifyInput(script: Buffer): string { return Bitcoin.script.classifyInput(script) } - classifyOutput(script: Buffer): string { + public classifyOutput(script: Buffer): string { return Bitcoin.script.classifyOutput(script) } - decode(scriptBuffer: any): any[] { + public decode(scriptBuffer: any): any[] { return Bitcoin.script.decompile(scriptBuffer) } - encode(scriptChunks: any): any { + public encode(scriptChunks: any): any { const arr: any[] = [] scriptChunks.forEach((chunk: any) => { arr.push(chunk) @@ -198,11 +199,11 @@ export class Script { return Bitcoin.script.compile(arr) } - toASM(buffer: Buffer): string { + public toASM(buffer: Buffer): string { return Bitcoin.script.toASM(buffer) } - fromASM(asm: string): any { + public fromASM(asm: string): any { return Bitcoin.script.fromASM(asm) } } diff --git a/lib/Socket.ts b/lib/Socket.ts index 90e1b6ce..15905509 100644 --- a/lib/Socket.ts +++ b/lib/Socket.ts @@ -18,7 +18,7 @@ export class Socket { } } - listen(endpoint: string, cb: any): void { + public listen(endpoint: string, cb: any): void { this.socket.emit(endpoint) if (endpoint === "blocks") this.socket.on("blocks", (msg: any) => cb(msg)) diff --git a/lib/Transaction.ts b/lib/Transaction.ts index f1e422b4..b3747b57 100644 --- a/lib/Transaction.ts +++ b/lib/Transaction.ts @@ -1,19 +1,18 @@ -const Bitcoin = require("bitcoincashjs-lib") -import axios from "axios" +import axios, { AxiosResponse } from "axios" import { TxnDetails } from "bitcoin-com-rest"; import { resturl } from "./BITBOX" export class Transaction { - restURL: string + public restURL: string constructor(restURL: string = resturl) { this.restURL = restURL } - async details(txid: string | string[]): Promise { + public async details(txid: string | string[]): Promise { try { // Handle single address. if (typeof txid === "string") { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${this.restURL}transaction/details/${txid}` ) return response.data @@ -27,7 +26,7 @@ export class Transaction { txids: txid } } - const response = await axios(options) + const response: AxiosResponse = await axios(options) return response.data } diff --git a/lib/TransactionBuilder.ts b/lib/TransactionBuilder.ts index d3a2e210..b8c6b0f9 100644 --- a/lib/TransactionBuilder.ts +++ b/lib/TransactionBuilder.ts @@ -1,16 +1,13 @@ +// imports import { ECPair } from "bitcoincashjs-lib"; +import { Address, BitcoinCash } from "./Address" +// consts const Bitcoin = require("bitcoincashjs-lib") const coininfo = require("coininfo") const bip66 = require("bip66") const bip68 = require("bc-bip68") -import { Buffer } from "buffer" - -import { Transaction } from "./Transaction" - -declare type ECSignature = any - declare interface SignatureAlgorithms { ECDSA: number SCHNORR: number @@ -35,19 +32,16 @@ export class TransactionBuilder { bip68: any p2shInput: any tx: any - static _address: any - - static setAddress(address: string): void { - TransactionBuilder._address = address - } + private _address: Address - constructor(network: string = "mainnet") { - let bitcoincash: any + constructor(network: string = "mainnet", address: Address = new Address()) { + let bitcoincash: BitcoinCash + this._address = address if (network === "bitcoincash" || network === "mainnet") bitcoincash = coininfo.bitcoincash.main else bitcoincash = coininfo.bitcoincash.test - const bitcoincashBitcoinJSLib = bitcoincash.toBitcoinJS() + const bitcoincashBitcoinJSLib: any = bitcoincash.toBitcoinJS() this.transaction = new Bitcoin.TransactionBuilder(bitcoincashBitcoinJSLib) this.DEFAULT_SEQUENCE = 0xffffffff this.hashTypes = { @@ -69,22 +63,22 @@ export class TransactionBuilder { this.tx } - addInput( + public addInput( txHash: string, vout: number, sequence: number = this.DEFAULT_SEQUENCE, - prevOutScript: string + prevOutScript: string | null = null ): void { this.transaction.addInput(txHash, vout, sequence, prevOutScript) } - addInputScript(vout: number, script: any): void { + public addInputScript(vout: number, script: any): void { this.tx = this.transaction.buildIncomplete() this.tx.setInputScript(vout, script) this.p2shInput = true } - addInputScripts(scripts: any): void { + public addInputScripts(scripts: any): void { this.tx = this.transaction.buildIncomplete() scripts.forEach((script: any) => { this.tx.setInputScript(script.vout, script.script) @@ -92,10 +86,10 @@ export class TransactionBuilder { this.p2shInput = true } - addOutput(scriptPubKey: string, amount: number): void { + public addOutput(scriptPubKey: string, amount: number): void { try { this.transaction.addOutput( - TransactionBuilder._address.toLegacyAddress(scriptPubKey), + this._address.toLegacyAddress(scriptPubKey), amount ) } catch (error) { @@ -103,17 +97,17 @@ export class TransactionBuilder { } } - setLockTime(locktime: number): void { + public setLockTime(locktime: number): void { this.transaction.setLockTime(locktime) } - sign( + public sign( vin: number, keyPair: ECPair, - redeemScript: Buffer, + redeemScript: Buffer | undefined, hashType: number = this.hashTypes.SIGHASH_ALL, value: number, - signatureAlgorithm: number + signatureAlgorithm: number = 0 ): void { let witnessScript @@ -128,7 +122,7 @@ export class TransactionBuilder { ) } - build() { + public build(): any { if (this.p2shInput === true) return this.tx return this.transaction.build() diff --git a/lib/Util.ts b/lib/Util.ts index 61e70398..ff91f623 100644 --- a/lib/Util.ts +++ b/lib/Util.ts @@ -1,4 +1,4 @@ -import axios from "axios" +import axios, { AxiosResponse } from "axios" import { resturl } from "./BITBOX" export interface AddressDetails { @@ -14,18 +14,18 @@ export interface AddressDetails { } export class Util { - restURL: string + public restURL: string constructor(restURL: string = resturl) { this.restURL = restURL } - async validateAddress( - address: string + public async validateAddress( + address: string | string[] ): Promise { try { // Single block if (typeof address === "string") { - const response: any = await axios.get( + const response: AxiosResponse = await axios.get( `${this.restURL}util/validateAddress/${address}` ) return response.data @@ -39,7 +39,7 @@ export class Util { addresses: address } } - const response = await axios(options) + const response: AxiosResponse = await axios(options) return response.data } diff --git a/package.json b/package.json index 254dcecc..e476cc03 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.2.0", + "version": "7.2.1", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ diff --git a/test/unit/Address.ts b/test/unit/Address.ts index 4f00f219..1ad105d7 100644 --- a/test/unit/Address.ts +++ b/test/unit/Address.ts @@ -1,14 +1,16 @@ -// import * as assert from "assert"; +// imports import * as chai from "chai" -const assert = chai.assert +import { BITBOX } from "../../lib/BITBOX" +import { Address } from "../../lib/Address" +import { resturl } from "../../lib/BITBOX" + +// consts +const bitbox: BITBOX = new BITBOX() +const assert: Chai.AssertStatic = chai.assert // TODO: port from require to import syntax const fixtures = require("./fixtures/Address.json") -const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() -const Address = require("../../lib/Address").Address const Bitcoin = require("bitcoincashjs-lib") -const resturl = require("../../lib/BITBOX").resturl function flatten(arrays: any) { return [].concat.apply([], arrays) @@ -53,14 +55,14 @@ const CASHADDR_ADDRESSES: string[] = flatten([ ]) const CASHADDR_ADDRESSES_NO_PREFIX: string[] = CASHADDR_ADDRESSES.map((address: string) => { - const parts = address.split(":") + const parts: string[] = address.split(":") return parts[1] }) const REGTEST_ADDRESSES: string[] = fixtures.cashaddrRegTestP2PKH const REGTEST_ADDRESSES_NO_PREFIX: string[] = REGTEST_ADDRESSES.map((address: string) => { - const parts = address.split(":") + const parts: string[] = address.split(":") return parts[1] }) @@ -90,22 +92,22 @@ util.inspect.defaultOptions = { depth: 3 } -describe("#Address", () => { - describe("#AddressConstructor", () => { - it("should create instance of Address", () => { - const address = new Address() +describe("#Address", (): void => { + describe("#AddressConstructor", (): void => { + it("should create instance of Address", (): void => { + const address: Address = new Address() assert.equal(address instanceof Address, true) }) - it("should have a restURL property", () => { - const address = new Address() + it("should have a restURL property", (): void => { + const address: Address = new Address() assert.equal(address.restURL, resturl) }) }) - describe("#addressConversion", () => { - describe("#toLegacyAddress", () => { - it("should translate legacy address format to itself correctly", () => { + describe("#addressConversion", (): void => { + describe("#toLegacyAddress", (): void => { + it("should translate legacy address format to itself correctly", (): void => { assert.deepEqual( LEGACY_ADDRESSES.map((address: string) => bitbox.Address.toLegacyAddress(address) @@ -114,7 +116,7 @@ describe("#Address", () => { ) }) - it("should convert cashaddr address to legacy base58Check", () => { + it("should convert cashaddr address to legacy base58Check", (): void => { assert.deepEqual( CASHADDR_ADDRESSES.map((address: string) => bitbox.Address.toLegacyAddress(address) @@ -123,7 +125,7 @@ describe("#Address", () => { ) }) - it("should convert cashaddr regtest address to legacy base58Check", () => { + it("should convert cashaddr regtest address to legacy base58Check", (): void => { assert.deepEqual( REGTEST_ADDRESSES.map((address: string) => bitbox.Address.toLegacyAddress(address) @@ -133,9 +135,10 @@ describe("#Address", () => { }) - describe("errors", () => { - it("should fail when called with an invalid address", () => { + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { assert.throws(() => { + // @ts-ignore bitbox.Address.toLegacyAddress() }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { @@ -145,8 +148,8 @@ describe("#Address", () => { }) }) - describe("#toCashAddress", () => { - it("should convert legacy base58Check address to cashaddr", () => { + describe("#toCashAddress", (): void => { + it("should convert legacy base58Check address to cashaddr", (): void => { assert.deepEqual( LEGACY_ADDRESSES.map((address: string) => bitbox.Address.toCashAddress(address, true) @@ -155,7 +158,7 @@ describe("#Address", () => { ) }) - it("should convert legacy base58Check address to regtest cashaddr", () => { + it("should convert legacy base58Check address to regtest cashaddr", (): void => { assert.deepEqual( fixtures.legacyTestnetP2PKH.map((address: string) => bitbox.Address.toCashAddress(address, true, true) @@ -164,7 +167,7 @@ describe("#Address", () => { ) }) - it("should translate cashaddr address format to itself correctly", () => { + it("should translate cashaddr address format to itself correctly", (): void => { assert.deepEqual( CASHADDR_ADDRESSES.map((address: string) => bitbox.Address.toCashAddress(address, true) @@ -173,7 +176,7 @@ describe("#Address", () => { ) }) - it("should translate regtest cashaddr address format to itself correctly", () => { + it("should translate regtest cashaddr address format to itself correctly", (): void => { assert.deepEqual( REGTEST_ADDRESSES.map((address: string) => bitbox.Address.toCashAddress(address, true, true) @@ -182,7 +185,7 @@ describe("#Address", () => { ) }) - it("should translate no-prefix cashaddr address format to itself correctly", () => { + it("should translate no-prefix cashaddr address format to itself correctly", (): void => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => bitbox.Address.toCashAddress(address, true) @@ -191,7 +194,7 @@ describe("#Address", () => { ) }) - it("should translate no-prefix regtest cashaddr address format to itself correctly", () => { + it("should translate no-prefix regtest cashaddr address format to itself correctly", (): void => { assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => bitbox.Address.toCashAddress(address, true, true) @@ -200,23 +203,24 @@ describe("#Address", () => { ) }) - it("should translate cashaddr address format to itself of no-prefix correctly", () => { + it("should translate cashaddr address format to itself of no-prefix correctly", (): void => { CASHADDR_ADDRESSES.forEach((address: string) => { const noPrefix = bitbox.Address.toCashAddress(address, false) assert.equal(address.split(":")[1], noPrefix) }) }) - it("should translate regtest cashaddr address format to itself of no-prefix correctly", () => { + it("should translate regtest cashaddr address format to itself of no-prefix correctly", (): void => { REGTEST_ADDRESSES.forEach((address: string) => { const noPrefix = bitbox.Address.toCashAddress(address, false, true) assert.equal(address.split(":")[1], noPrefix) }) }) - describe("errors", () => { - it("should fail when called with an invalid address", () => { + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { assert.throws(() => { + // @ts-ignore bitbox.BitcoinCash.Address.toCashAddress() }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { @@ -225,8 +229,8 @@ describe("#Address", () => { }) }) }) - describe("#legacyToHash160", () => { - it("should convert legacy base58check address to hash160", () => { + describe("#legacyToHash160", (): void => { + it("should convert legacy base58check address to hash160", (): void => { assert.deepEqual( LEGACY_ADDRESSES.map((address: string) => bitbox.Address.legacyToHash160(address) @@ -235,9 +239,10 @@ describe("#Address", () => { ) }) - describe("errors", () => { - it("should fail when called with an invalid address", () => { + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { assert.throws(() => { + // @ts-ignore bitbox.Address.legacyToHash160() }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { @@ -246,8 +251,8 @@ describe("#Address", () => { }) }) }) - describe("#cashToHash160", () => { - it("should convert cashaddr address to hash160", () => { + describe("#cashToHash160", (): void => { + it("should convert cashaddr address to hash160", (): void => { assert.deepEqual( CASHADDR_ADDRESSES.map((address: string) => bitbox.Address.cashToHash160(address) @@ -256,9 +261,10 @@ describe("#Address", () => { ) }) - describe("errors", () => { - it("should fail when called with an invalid address", () => { + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { assert.throws(() => { + // @ts-ignore bitbox.Address.cashToHash160() }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { @@ -288,8 +294,8 @@ describe("#Address", () => { // }) // }) // }) - describe("#fromHash160", () => { - it("should convert hash160 to mainnet P2PKH legacy base58check address", () => { + describe("#fromHash160", (): void => { + it("should convert hash160 to mainnet P2PKH legacy base58check address", (): void => { assert.deepEqual( fixtures.hash160MainnetP2PKH.map((hash160: string) => bitbox.Address.hash160ToLegacy(hash160) @@ -298,7 +304,7 @@ describe("#Address", () => { ) }) - it("should convert hash160 to mainnet P2SH legacy base58check address", () => { + it("should convert hash160 to mainnet P2SH legacy base58check address", (): void => { assert.deepEqual( fixtures.hash160MainnetP2SH.map((hash160: string) => bitbox.Address.hash160ToLegacy( @@ -310,7 +316,7 @@ describe("#Address", () => { ) }) - it("should convert hash160 to testnet P2PKH legacy base58check address", () => { + it("should convert hash160 to testnet P2PKH legacy base58check address", (): void => { assert.deepEqual( fixtures.hash160TestnetP2PKH.map((hash160: string) => bitbox.Address.hash160ToLegacy( @@ -322,7 +328,7 @@ describe("#Address", () => { ) }) - it("should convert hash160 to mainnet P2PKH cash address", () => { + it("should convert hash160 to mainnet P2PKH cash address", (): void => { assert.deepEqual( fixtures.hash160MainnetP2PKH.map((hash160: string) => bitbox.Address.hash160ToCash(hash160) @@ -331,7 +337,7 @@ describe("#Address", () => { ) }) - it("should convert hash160 to mainnet P2SH cash address", () => { + it("should convert hash160 to mainnet P2SH cash address", (): void => { assert.deepEqual( fixtures.hash160MainnetP2SH.map((hash160: string) => bitbox.Address.hash160ToCash( @@ -343,7 +349,7 @@ describe("#Address", () => { ) }) - it("should convert hash160 to testnet P2PKH cash address", () => { + it("should convert hash160 to testnet P2PKH cash address", (): void => { assert.deepEqual( fixtures.hash160TestnetP2PKH.map((hash160: string) => bitbox.Address.hash160ToCash( @@ -355,7 +361,7 @@ describe("#Address", () => { ) }) - it("should convert hash160 to regtest P2PKH cash address", () => { + it("should convert hash160 to regtest P2PKH cash address", (): void => { assert.deepEqual( fixtures.hash160TestnetP2PKH.map((hash160: string) => bitbox.Address.hash160ToCash( @@ -368,15 +374,17 @@ describe("#Address", () => { ) }) - describe("errors", () => { - it("should fail when called with an invalid address", () => { + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { assert.throws(() => { + // @ts-ignore bitbox.Address.hash160ToLegacy() }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { bitbox.Address.hash160ToLegacy("some invalid address") }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { + // @ts-ignore bitbox.Address.hash160ToCash() }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { @@ -387,35 +395,36 @@ describe("#Address", () => { }) }) - describe("address format detection", () => { - describe("#isLegacyAddress", () => { - describe("is legacy", () => { + describe("address format detection", (): void => { + describe("#isLegacyAddress", (): void => { + describe("is legacy", (): void => { LEGACY_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a legacy base58Check address`, () => { + it(`should detect ${address} is a legacy base58Check address`, (): void => { const isBase58Check = bitbox.Address.isLegacyAddress(address) assert.equal(isBase58Check, true) }) }) }) - describe("is not legacy", () => { + describe("is not legacy", (): void => { CASHADDR_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is not a legacy address`, () => { + it(`should detect ${address} is not a legacy address`, (): void => { const isBase58Check = bitbox.Address.isLegacyAddress(address) assert.equal(isBase58Check, false) }) }) REGTEST_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is not a legacy address`, () => { + it(`should detect ${address} is not a legacy address`, (): void => { const isBase58Check = bitbox.Address.isLegacyAddress(address) assert.equal(isBase58Check, false) }) }) }) - describe("errors", () => { - it("should fail when called with an invalid address", () => { + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { assert.throws(() => { + // @ts-ignore bitbox.Address.isLegacyAddress() }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { @@ -425,35 +434,36 @@ describe("#Address", () => { }) }) - describe("#isCashAddress", () => { - describe("is cashaddr", () => { + describe("#isCashAddress", (): void => { + describe("is cashaddr", (): void => { CASHADDR_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a cashaddr address`, () => { + it(`should detect ${address} is a cashaddr address`, (): void => { const isCashaddr = bitbox.Address.isCashAddress(address) assert.equal(isCashaddr, true) }) }) REGTEST_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a cashaddr address`, () => { + it(`should detect ${address} is a cashaddr address`, (): void => { const isCashaddr = bitbox.Address.isCashAddress(address) assert.equal(isCashaddr, true) }) }) }) - describe("is not cashaddr", () => { + describe("is not cashaddr", (): void => { LEGACY_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is not a cashaddr address`, () => { + it(`should detect ${address} is not a cashaddr address`, (): void => { const isCashaddr = bitbox.Address.isCashAddress(address) assert.equal(isCashaddr, false) }) }) }) - describe("errors", () => { - it("should fail when called with an invalid address", () => { + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { assert.throws(() => { + // @ts-ignore bitbox.Address.isCashAddress() }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { @@ -462,41 +472,42 @@ describe("#Address", () => { }) }) }) - describe("#isHash160", () => { - describe("is hash160", () => { + describe("#isHash160", (): void => { + describe("is hash160", (): void => { HASH160_HASHES.forEach((address: string) => { - it(`should detect ${address} is a hash160 hash`, () => { + it(`should detect ${address} is a hash160 hash`, (): void => { const isHash160 = bitbox.Address.isHash160(address) assert.equal(isHash160, true) }) }) }) - describe("is not hash160", () => { + describe("is not hash160", (): void => { LEGACY_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is not a hash160 hash`, () => { + it(`should detect ${address} is not a hash160 hash`, (): void => { const isHash160 = bitbox.Address.isHash160(address) assert.equal(isHash160, false) }) }) CASHADDR_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is not a hash160 hash`, () => { + it(`should detect ${address} is not a hash160 hash`, (): void => { const isHash160 = bitbox.Address.isHash160(address) assert.equal(isHash160, false) }) }) REGTEST_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is not a legacy address`, () => { + it(`should detect ${address} is not a legacy address`, (): void => { const isHash160 = bitbox.Address.isHash160(address) assert.equal(isHash160, false) }) }) }) - describe("errors", () => { - it("should fail when called with an invalid address", () => { + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { assert.throws(() => { + // @ts-ignore bitbox.Address.isHash160() }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { @@ -507,36 +518,37 @@ describe("#Address", () => { }) }) - describe("network detection", () => { - describe("#isMainnetAddress", () => { - describe("is mainnet", () => { + describe("network detection", (): void => { + describe("#isMainnetAddress", (): void => { + describe("is mainnet", (): void => { MAINNET_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a mainnet address`, () => { + it(`should detect ${address} is a mainnet address`, (): void => { const isMainnet = bitbox.Address.isMainnetAddress(address) assert.equal(isMainnet, true) }) }) }) - describe("is not mainnet", () => { + describe("is not mainnet", (): void => { TESTNET_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is not a mainnet address`, () => { + it(`should detect ${address} is not a mainnet address`, (): void => { const isMainnet = bitbox.Address.isMainnetAddress(address) assert.equal(isMainnet, false) }) }) REGTEST_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is not a mainnet address`, () => { + it(`should detect ${address} is not a mainnet address`, (): void => { const isMainnet = bitbox.Address.isMainnetAddress(address) assert.equal(isMainnet, false) }) }) }) - describe("errors", () => { - it("should fail when called with an invalid address", () => { + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { assert.throws(() => { + // @ts-ignore bitbox.Address.isMainnetAddress() }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { @@ -546,35 +558,36 @@ describe("#Address", () => { }) }) - describe("#isTestnetAddress", () => { - describe("is testnet", () => { + describe("#isTestnetAddress", (): void => { + describe("is testnet", (): void => { TESTNET_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a testnet address`, () => { + it(`should detect ${address} is a testnet address`, (): void => { const isTestnet = bitbox.Address.isTestnetAddress(address) assert.equal(isTestnet, true) }) }) }) - describe("is not testnet", () => { + describe("is not testnet", (): void => { MAINNET_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is not a testnet address`, () => { + it(`should detect ${address} is not a testnet address`, (): void => { const isTestnet = bitbox.Address.isTestnetAddress(address) assert.equal(isTestnet, false) }) }) REGTEST_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is not a testnet address`, () => { + it(`should detect ${address} is not a testnet address`, (): void => { const isTestnet = bitbox.Address.isTestnetAddress(address) assert.equal(isTestnet, false) }) }) }) - describe("errors", () => { - it("should fail when called with an invalid address", () => { + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { assert.throws(() => { + // @ts-ignore bitbox.Address.isTestnetAddress() }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { @@ -584,35 +597,36 @@ describe("#Address", () => { }) }) - describe("#isRegTestAddress", () => { + describe("#isRegTestAddress", (): void => { describe("is testnet", () => { REGTEST_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a regtest address`, () => { + it(`should detect ${address} is a regtest address`, (): void => { const isRegTest = bitbox.Address.isRegTestAddress(address) assert.equal(isRegTest, true) }) }) }) - describe("is not testnet", () => { + describe("is not testnet", (): void => { MAINNET_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is not a regtest address`, () => { + it(`should detect ${address} is not a regtest address`, (): void => { const isRegTest = bitbox.Address.isRegTestAddress(address) assert.equal(isRegTest, false) }) }) TESTNET_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is not a regtest address`, () => { + it(`should detect ${address} is not a regtest address`, (): void => { const isRegTest = bitbox.Address.isRegTestAddress(address) assert.equal(isRegTest, false) }) }) }) - describe("errors", () => { - it("should fail when called with an invalid address", () => { + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { assert.throws(() => { + // @ts-ignore bitbox.Address.isRegTestAddress() }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { @@ -623,29 +637,30 @@ describe("#Address", () => { }) }) - describe("address type detection", () => { - describe("#isP2PKHAddress", () => { - describe("is P2PKH", () => { + describe("address type detection", (): void => { + describe("#isP2PKHAddress", (): void => { + describe("is P2PKH", (): void => { P2PKH_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a P2PKH address`, () => { + it(`should detect ${address} is a P2PKH address`, (): void => { const isP2PKH = bitbox.Address.isP2PKHAddress(address) assert.equal(isP2PKH, true) }) }) }) - describe("is not P2PKH", () => { + describe("is not P2PKH", (): void => { P2SH_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is not a P2PKH address`, () => { + it(`should detect ${address} is not a P2PKH address`, (): void => { const isP2PKH = bitbox.Address.isP2PKHAddress(address) assert.equal(isP2PKH, false) }) }) }) - describe("errors", () => { - it("should fail when called with an invalid address", () => { + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { assert.throws(() => { + // @ts-ignore bitbox.Address.isP2PKHAddress() }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { @@ -655,28 +670,29 @@ describe("#Address", () => { }) }) - describe("#isP2SHAddress", () => { - describe("is P2SH", () => { + describe("#isP2SHAddress", (): void => { + describe("is P2SH", (): void => { P2SH_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a P2SH address`, () => { + it(`should detect ${address} is a P2SH address`, (): void => { const isP2SH = bitbox.Address.isP2SHAddress(address) assert.equal(isP2SH, true) }) }) }) - describe("is not P2SH", () => { + describe("is not P2SH", (): void => { P2PKH_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is not a P2SH address`, () => { + it(`should detect ${address} is not a P2SH address`, (): void => { const isP2SH = bitbox.Address.isP2SHAddress(address) assert.equal(isP2SH, false) }) }) }) - describe("errors", () => { - it("should fail when called with an invalid address", () => { + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { assert.throws(() => { + // @ts-ignore bitbox.Address.isP2SHAddress() }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { @@ -687,8 +703,8 @@ describe("#Address", () => { }) }) - describe("cashaddr prefix detection", () => { - it("should return the same result for detectAddressFormat", () => { + describe("cashaddr prefix detection", (): void => { + it("should return the same result for detectAddressFormat", (): void => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => bitbox.Address.detectAddressFormat(address) @@ -706,7 +722,7 @@ describe("#Address", () => { ) ) }) - it("should return the same result for detectAddressNetwork", () => { + it("should return the same result for detectAddressNetwork", (): void => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => bitbox.Address.detectAddressNetwork(address) @@ -724,7 +740,7 @@ describe("#Address", () => { ) ) }) - it("should return the same result for detectAddressType", () => { + it("should return the same result for detectAddressType", (): void => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => bitbox.Address.detectAddressType(address) @@ -742,7 +758,7 @@ describe("#Address", () => { ) ) }) - it("should return the same result for toLegacyAddress", () => { + it("should return the same result for toLegacyAddress", (): void => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => bitbox.Address.toLegacyAddress(address) @@ -756,7 +772,7 @@ describe("#Address", () => { REGTEST_ADDRESSES.map((address: string) => bitbox.Address.toLegacyAddress(address)) ) }) - it("should return the same result for isLegacyAddress", () => { + it("should return the same result for isLegacyAddress", (): void => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => bitbox.Address.isLegacyAddress(address) @@ -770,7 +786,7 @@ describe("#Address", () => { REGTEST_ADDRESSES.map((address: string) => bitbox.Address.isLegacyAddress(address)) ) }) - it("should return the same result for isCashAddress", () => { + it("should return the same result for isCashAddress", (): void => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => bitbox.Address.isCashAddress(address) @@ -784,7 +800,7 @@ describe("#Address", () => { REGTEST_ADDRESSES.map((address: string) => bitbox.Address.isCashAddress(address)) ) }) - it("should return the same result for isMainnetAddress", () => { + it("should return the same result for isMainnetAddress", (): void => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => bitbox.Address.isMainnetAddress(address) @@ -800,7 +816,7 @@ describe("#Address", () => { REGTEST_ADDRESSES.map((address: string) => bitbox.Address.isMainnetAddress(address)) ) }) - it("should return the same result for isTestnetAddress", () => { + it("should return the same result for isTestnetAddress", (): void => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => bitbox.Address.isTestnetAddress(address) @@ -816,7 +832,7 @@ describe("#Address", () => { REGTEST_ADDRESSES.map((address: string) => bitbox.Address.isTestnetAddress(address)) ) }) - it("should return the same result for isP2PKHAddress", () => { + it("should return the same result for isP2PKHAddress", (): void => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => bitbox.Address.isP2PKHAddress(address) @@ -830,7 +846,7 @@ describe("#Address", () => { REGTEST_ADDRESSES.map((address: string) => bitbox.Address.isP2PKHAddress(address)) ) }) - it("should return the same result for isP2SHAddress", () => { + it("should return the same result for isP2SHAddress", (): void => { assert.deepEqual( CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => bitbox.Address.isP2SHAddress(address) @@ -846,31 +862,32 @@ describe("#Address", () => { }) }) - describe("#detectAddressFormat", () => { + describe("#detectAddressFormat", (): void => { LEGACY_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a legacy base58Check address`, () => { + it(`should detect ${address} is a legacy base58Check address`, (): void => { const isBase58Check = bitbox.Address.detectAddressFormat(address) assert.equal(isBase58Check, "legacy") }) }) CASHADDR_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a legacy cashaddr address`, () => { + it(`should detect ${address} is a legacy cashaddr address`, (): void => { const isCashaddr = bitbox.Address.detectAddressFormat(address) assert.equal(isCashaddr, "cashaddr") }) }) REGTEST_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a legacy cashaddr address`, () => { + it(`should detect ${address} is a legacy cashaddr address`, (): void => { const isCashaddr = bitbox.Address.detectAddressFormat(address) assert.equal(isCashaddr, "cashaddr") }) }) - describe("errors", () => { - it("should fail when called with an invalid address", () => { + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { assert.throws(() => { + // @ts-ignore bitbox.Address.detectAddressFormat() }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { @@ -880,31 +897,32 @@ describe("#Address", () => { }) }) - describe("#detectAddressNetwork", () => { + describe("#detectAddressNetwork", (): void => { MAINNET_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a mainnet address`, () => { + it(`should detect ${address} is a mainnet address`, (): void => { const isMainnet = bitbox.Address.detectAddressNetwork(address) assert.equal(isMainnet, "mainnet") }) }) TESTNET_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a testnet address`, () => { + it(`should detect ${address} is a testnet address`, (): void => { const isTestnet = bitbox.Address.detectAddressNetwork(address) assert.equal(isTestnet, "testnet") }) }) REGTEST_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a testnet address`, () => { + it(`should detect ${address} is a testnet address`, (): void => { const isTestnet = bitbox.Address.detectAddressNetwork(address) assert.equal(isTestnet, "regtest") }) }) - describe("errors", () => { - it("should fail when called with an invalid address", () => { + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { assert.throws(() => { + // @ts-ignore bitbox.Address.detectAddressNetwork() }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { @@ -914,24 +932,25 @@ describe("#Address", () => { }) }) - describe("#detectAddressType", () => { + describe("#detectAddressType", (): void => { P2PKH_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a P2PKH address`, () => { + it(`should detect ${address} is a P2PKH address`, (): void => { const isP2PKH: string = bitbox.Address.detectAddressType(address) assert.equal(isP2PKH, "p2pkh") }) }) P2SH_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a P2SH address`, () => { + it(`should detect ${address} is a P2SH address`, (): void => { const isP2SH: string = bitbox.Address.detectAddressType(address) assert.equal(isP2SH, "p2sh") }) }) - describe("errors", () => { - it("should fail when called with an invalid address", () => { + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { assert.throws(() => { + // @ts-ignore bitbox.Address.detectAddressType() }, bitbox.BitcoinCash.InvalidAddressError) assert.throws(() => { @@ -941,12 +960,12 @@ describe("#Address", () => { }) }) - describe("#fromXPub", () => { + describe("#fromXPub", (): void => { XPUBS.forEach((xpub: any) => { xpub.addresses.forEach((address: any, j: number) => { it(`should generate public external change address ${j} for ${ xpub.xpub - }`, () => { + }`, (): void => { assert.equal(bitbox.Address.fromXPub(xpub.xpub, `0/${j}`), address) }) }) @@ -954,16 +973,16 @@ describe("#Address", () => { it(`should generate public external change address ${XPUBS[0].addresses[0]} for ${ XPUBS[0].xpub - }`, () => { + }`, (): void => { let address: string = XPUBS[0].addresses[0] assert.equal(bitbox.Address.fromXPub(XPUBS[0].xpub), address) }) }) - describe("#fromXPriv", () => { + describe("#fromXPriv", (): void => { XPRIVS.forEach((xpriv: any) => { xpriv.addresses.forEach((address: string, j: number) => { - it(`should generate hardened address ${j} for ${xpriv.xpriv}`, () => { + it(`should generate hardened address ${j} for ${xpriv.xpriv}`, (): void => { assert.equal(bitbox.Address.fromXPriv(xpriv.xpriv, `0'/${j}`), address) }) }) @@ -971,13 +990,13 @@ describe("#Address", () => { it(`should generate hardened address ${XPRIVS[0].addresses[0]} for ${ XPRIVS[0].xpriv - }`, () => { + }`, (): void => { let address: string = XPRIVS[0].addresses[0] assert.equal(bitbox.Address.fromXPriv(XPRIVS[0].xpriv), address) }) }) - describe("#fromOutputScript", () => { + describe("#fromOutputScript", (): void => { const script: any = bitbox.Script.encode([ Buffer.from("BOX", "ascii"), bitbox.Script.opcodes.OP_CAT, @@ -992,14 +1011,14 @@ describe("#Address", () => { const scriptPubKey: any = bitbox.Script.scriptHash.output.encode(p2sh_hash160) fixtures.p2shMainnet.forEach((address: string) => { const p2shAddress: any = bitbox.Address.fromOutputScript(scriptPubKey) - it(`generate mainnet address from output script`, () => { + it(`generate mainnet address from output script`, (): void => { assert.equal(p2shAddress, address) }) }) fixtures.p2shTestnet.forEach((address: string) => { const p2shAddress: any = bitbox.Address.fromOutputScript(scriptPubKey, "testnet") - it(`generate testnet address from output script`, () => { + it(`generate testnet address from output script`, (): void => { assert.equal(p2shAddress, address) }) }) @@ -1120,9 +1139,9 @@ describe("#Address", () => { // }) // }) - describe(`#utxo`, () => { - describe(`#details`, () => { - it(`should GET address details for a single address`, async () => { + describe(`#utxo`, (): void => { + describe(`#details`, (): void => { + it(`should GET address details for a single address`, async (): void => { const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" const result = await bitbox.Address.details(addr) @@ -1149,7 +1168,7 @@ describe("#Address", () => { }) it(`should GET address details for an array of addresses`, async () => { - const addr = [ + const addr: string[] = [ "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" ] @@ -1180,7 +1199,7 @@ describe("#Address", () => { it(`should throw an error for improper input`, async () => { try { - const addr = 12345 + const addr: any = 12345 await bitbox.Address.details(addr) assert.equal(true, false, "Unexpected result!") @@ -1260,7 +1279,7 @@ describe("#Address", () => { it(`should throw an error for improper input`, async () => { try { - const addr = 12345 + const addr: any = 12345 await bitbox.Address.utxo(addr) assert.equal(true, false, "Unexpected result!") @@ -1275,8 +1294,8 @@ describe("#Address", () => { it(`should throw error on array size rate limit`, async () => { try { - const addr = [] - for (let i = 0; i < 25; i++) + const addr: string[] = [] + for (let i: number = 0; i < 25; i++) addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") const result = await bitbox.Address.utxo(addr) @@ -1290,9 +1309,9 @@ describe("#Address", () => { }) }) - describe(`#unconfirmed`, () => { + describe(`#unconfirmed`, (): void => { it(`should GET unconfirmed details on a single address`, async () => { - const addr = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" + const addr: string = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" const result = await bitbox.Address.unconfirmed(addr) //console.log(`result: ${JSON.stringify(result, null, 2)}`) @@ -1332,8 +1351,8 @@ describe("#Address", () => { it(`should throw error on array size rate limit`, async () => { try { - const addr = [] - for (let i = 0; i < 25; i++) + const addr: string[] = [] + for (let i: number = 0; i < 25; i++) addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") const result = await bitbox.Address.unconfirmed(addr) @@ -1347,9 +1366,9 @@ describe("#Address", () => { }) }) - describe(`#transactions`, () => { + describe(`#transactions`, (): void => { it(`should GET transactions for a single address`, async () => { - const addr = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" + const addr: string = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" const result = await bitbox.Address.transactions(addr) //console.log(`result: ${JSON.stringify(result, null, 2)}`) @@ -1379,7 +1398,7 @@ describe("#Address", () => { }) it(`should get transactions on multiple addresses`, async () => { - const addr = [ + const addr: string[] = [ "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" ] @@ -1414,7 +1433,7 @@ describe("#Address", () => { it(`should throw an error for improper input`, async () => { try { - const addr = 12345 + const addr: any = 12345 await bitbox.Address.transactions(addr) assert.equal(true, false, "Unexpected result!") @@ -1429,8 +1448,8 @@ describe("#Address", () => { it(`should throw error on array size rate limit`, async () => { try { - const addr = [] - for (let i = 0; i < 25; i++) + const addr: string[] = [] + for (let i: number = 0; i < 25; i++) addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") const result = await bitbox.Address.transactions(addr) diff --git a/test/unit/BITBOX.ts b/test/unit/BITBOX.ts index 304d1b64..fc839c46 100644 --- a/test/unit/BITBOX.ts +++ b/test/unit/BITBOX.ts @@ -1,107 +1,113 @@ +// imports import * as assert from "assert"; - -// TODO: port from require to import syntax -const BITBOX = require("../../lib/BITBOX").BITBOX -const BitcoinCash = require("../../lib/BitcoinCash").BitcoinCash -const Block = require("../../lib/Block").Block -const Blockchain = require("../../lib/Blockchain").Blockchain -const Control = require("../../lib/Control").Control -const Generating = require("../../lib/Generating").Generating -const HDNode = require("../../lib/HDNode").HDNode -const Mining = require("../../lib/Mining").Mining -const Mnemonic = require("../../lib/Mnemonic").Mnemonic -const Price = require("../../lib/Price").Price -const RawTransactions = require("../../lib/RawTransactions").RawTransactions -const Script = require("../../lib/Script").Script -const Transaction = require("../../lib/Transaction").Transaction -const Util = require("../../lib/Util").Util -const Schnorr = require("../../lib/Schnorr").Schnorr -const resturl = require("../../lib/BITBOX").resturl - -describe("#BITBOX", () => { - describe("#BITBOXConstructor", () => { - it("should create instance of BITBOX", () => { - const bitbox = new BITBOX({ restURL: resturl }) +import { BITBOX } from "../../lib/BITBOX" +import { Address } from "../../lib/Address" +import { BitcoinCash } from "../../lib/BitcoinCash" +import { Block } from "../../lib/Block" +import { Blockchain } from "../../lib/Blockchain" +import { Control } from "../../lib/Control" +import { Generating } from "../../lib/Generating" +import { HDNode } from "../../lib/HDNode" +import { Mining } from "../../lib/Mining" +import { Mnemonic } from "../../lib/Mnemonic" +import { Price } from "../../lib/Price" +import { RawTransactions } from "../../lib/RawTransactions" +import { Script } from "../../lib/Script" +import { Transaction } from "../../lib/Transaction" +import { TransactionBuilder } from "../../lib/TransactionBuilder" +import { Util } from "../../lib/Util" +import { Schnorr } from "../../lib/Schnorr" +import { resturl } from "../../lib/BITBOX" + +describe("#BITBOX", (): void => { + describe("#BITBOXConstructor", (): void => { + it("should create instance of BITBOX", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) assert.equal(bitbox instanceof BITBOX, true) }) - it("should have a restURL property", () => { - const bitbox = new BITBOX({ restURL: "https://rest.bitcoin.com/v2/" }) + it("should have a restURL property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: "https://rest.bitcoin.com/v2/" }) assert.equal(bitbox.restURL, resturl) }) - it("should have a BitcoinCash property", () => { - const bitbox = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.BitcoinCash instanceof BitcoinCash, true) + it("should have a Address property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Address instanceof Address, true) }) - it("should have a BitcoinCash property", () => { - const bitbox = new BITBOX({ restURL: resturl }) + it("should have a BitcoinCash property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) assert.equal(bitbox.BitcoinCash instanceof BitcoinCash, true) }) - it("should have a Block property", () => { - const bitbox = new BITBOX({ restURL: resturl }) + it("should have a Block property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) assert.equal(bitbox.Block instanceof Block, true) }) - it("should have a Blockchain property", () => { - const bitbox = new BITBOX({ restURL: resturl }) + it("should have a Blockchain property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) assert.equal(bitbox.Blockchain instanceof Blockchain, true) }) - it("should have a Control property", () => { - const bitbox = new BITBOX({ restURL: resturl }) + it("should have a Control property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) assert.equal(bitbox.Control instanceof Control, true) }) - it("should have a Generating property", () => { - const bitbox = new BITBOX({ restURL: resturl }) + it("should have a Generating property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) assert.equal(bitbox.Generating instanceof Generating, true) }) - it("should have a HDNode property", () => { - const bitbox = new BITBOX({ restURL: resturl }) + it("should have a HDNode property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) assert.equal(bitbox.HDNode instanceof HDNode, true) }) - it("should have a Mining property", () => { - const bitbox = new BITBOX({ restURL: resturl }) + it("should have a Mining property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) assert.equal(bitbox.Mining instanceof Mining, true) }) - it("should have a Mnemonic property", () => { - const bitbox = new BITBOX({ restURL: resturl }) + it("should have a Mnemonic property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) assert.equal(bitbox.Mnemonic instanceof Mnemonic, true) }) - it("should have a Price property", () => { - const bitbox = new BITBOX({ restURL: resturl }) + it("should have a Price property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) assert.equal(bitbox.Price instanceof Price, true) }) - it("should have a RawTransactions property", () => { - const bitbox = new BITBOX({ restURL: resturl }) + it("should have a RawTransactions property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) assert.equal(bitbox.RawTransactions instanceof RawTransactions, true) }) - it("should have a Script property", () => { - const bitbox = new BITBOX({ restURL: resturl }) + it("should have a Script property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) assert.equal(bitbox.Script instanceof Script, true) }) - it("should have a Transaction property", () => { - const bitbox = new BITBOX({ restURL: resturl }) + it("should have a Transaction property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) assert.equal(bitbox.Transaction instanceof Transaction, true) }) - it("should have a Util property", () => { - const bitbox = new BITBOX({ restURL: resturl }) + it("should have a TransactionBuilder property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.TransactionBuilder instanceof TransactionBuilder, true) + }) + + it("should have a Util property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) assert.equal(bitbox.Util instanceof Util, true) }) - it("should have a Schnorr property", () => { - const bitbox = new BITBOX({ restURL: resturl }) + it("should have a Schnorr property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) assert.equal(bitbox.Schnorr instanceof Schnorr, true) }) }) diff --git a/test/unit/BitcoinCash.ts b/test/unit/BitcoinCash.ts index ba867612..77154664 100644 --- a/test/unit/BitcoinCash.ts +++ b/test/unit/BitcoinCash.ts @@ -1,11 +1,14 @@ +// imports import * as chai from "chai" -const assert = chai.assert +import { BITBOX } from "../../lib/BITBOX" +import { BitcoinCash, BIP21Object } from "../../lib/BitcoinCash" + +// consts +const bitbox: BITBOX = new BITBOX() +const assert: Chai.AssertStatic = chai.assert // TODO: port from require to import syntax const fixtures = require("./fixtures/BitcoinCash.json") -const BITBOX = require("../../lib/BITBOX").BITBOX -const BitcoinCash = require("../../lib/BitcoinCash").BitcoinCash -const bitbox = new BITBOX() // TODO // 1. generate testnet p2sh @@ -23,92 +26,92 @@ const bitbox = new BITBOX() // * confirm xpriv generates WIF // 6. More error test cases. -describe("#BitcoinCash", () => { +describe("#BitcoinCash", (): void => { - describe("#BitcoinCashConstructor", () => { - it("should create instance of BitcoinCash", () => { - const bitcoinCash = new BitcoinCash() + describe("#BitcoinCashConstructor", (): void => { + it("should create instance of BitcoinCash", (): void => { + const bitcoinCash: BitcoinCash = new BitcoinCash() assert.equal(bitcoinCash instanceof BitcoinCash, true) }) }) - describe("price conversion", () => { - describe("#toBitcoinCash", () => { - fixtures.conversion.toBCH.satoshis.forEach((satoshi: any) => { + describe("price conversion", (): void => { + describe("#toBitcoinCash", (): void => { + fixtures.conversion.toBCH.satoshis.forEach((satoshi: any): void => { it(`should convert ${satoshi[0]} Satoshis to ${ satoshi[1] - } $BCH`, () => { + } $BCH`, (): void => { assert.equal(bitbox.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]) }) }) - fixtures.conversion.toBCH.strings.forEach((satoshi: any) => { + fixtures.conversion.toBCH.strings.forEach((satoshi: any): void => { it(`should convert "${satoshi[0]}" Satoshis as a string to ${ satoshi[1] - } $BCH`, () => { + } $BCH`, (): void => { assert.equal(bitbox.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]) }) }) - fixtures.conversion.toBCH.not.forEach((bch: any) => { + fixtures.conversion.toBCH.not.forEach((bch: any): void => { it(`converts ${bch[0]} to Bitcoin Cash, not to ${ bch[1] - } Satoshi`, () => { + } Satoshi`, (): void => { assert.notEqual(bitbox.BitcoinCash.toBitcoinCash(bch[0]), bch[1]) }) }) - fixtures.conversion.toBCH.rounding.forEach((satoshi: any) => { - it(`rounding ${satoshi[0]} to ${satoshi[1]} $BCH`, () => { + fixtures.conversion.toBCH.rounding.forEach((satoshi: any): void => { + it(`rounding ${satoshi[0]} to ${satoshi[1]} $BCH`, (): void => { assert.equal(bitbox.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]) }) }) }) - describe("#toSatoshi", () => { - fixtures.conversion.toSatoshi.bch.forEach((bch: any) => { - it(`should convert ${bch[0]} $BCH to ${bch[1]} Satoshis`, () => { + describe("#toSatoshi", (): void => { + fixtures.conversion.toSatoshi.bch.forEach((bch: any): void => { + it(`should convert ${bch[0]} $BCH to ${bch[1]} Satoshis`, (): void => { assert.equal(bitbox.BitcoinCash.toSatoshi(bch[0]), bch[1]) }) }) - fixtures.conversion.toSatoshi.strings.forEach((bch: any) => { + fixtures.conversion.toSatoshi.strings.forEach((bch: any): void => { it(`should convert "${bch[0]}" $BCH as a string to ${ bch[1] - } Satoshis`, () => { + } Satoshis`, (): void => { assert.equal(bitbox.BitcoinCash.toSatoshi(bch[0]), bch[1]) }) }) - fixtures.conversion.toSatoshi.not.forEach((satoshi: any) => { + fixtures.conversion.toSatoshi.not.forEach((satoshi: any): void => { it(`converts ${satoshi[0]} to Satoshi, not to ${ satoshi[1] - } Bitcoin Cash`, () => { + } Bitcoin Cash`, (): void => { assert.notEqual(bitbox.BitcoinCash.toSatoshi(satoshi[0]), satoshi[1]) }) }) - fixtures.conversion.toSatoshi.rounding.forEach((bch: any) => { - it(`rounding ${bch[0]} to ${bch[1]} Satoshi`, () => { + fixtures.conversion.toSatoshi.rounding.forEach((bch: any): void => { + it(`rounding ${bch[0]} to ${bch[1]} Satoshi`, (): void => { assert.equal(bitbox.BitcoinCash.toSatoshi(bch[0]), bch[1]) }) }) }) }) - describe("#toBits", () => { - fixtures.conversion.satsToBits.bch.forEach((bch: any) => { - it(`should convert ${bch[0]} BCH to ${bch[1]} bits`, () => { + describe("#toBits", (): void => { + fixtures.conversion.satsToBits.bch.forEach((bch: any): void => { + it(`should convert ${bch[0]} BCH to ${bch[1]} bits`, (): void => { assert.equal( bitbox.BitcoinCash.toBits(bitbox.BitcoinCash.toSatoshi(bch[0])), bch[1] ) }) - fixtures.conversion.satsToBits.strings.forEach((bch: any) => { + fixtures.conversion.satsToBits.strings.forEach((bch: any): void => { it(`should convert "${bch[0]}" BCH as a string to ${ bch[1] - } bits`, () => { + } bits`, (): void => { assert.equal( bitbox.BitcoinCash.toBits(bitbox.BitcoinCash.toSatoshi(bch[0])), bch[1] @@ -117,9 +120,9 @@ describe("#BitcoinCash", () => { }) }) - describe("#satsToBits", () => { - fixtures.conversion.satsToBits.bch.forEach((bch: any) => { - it(`should convert ${bch[0]} BCH to ${bch[1]} bits`, () => { + describe("#satsToBits", (): void => { + fixtures.conversion.satsToBits.bch.forEach((bch: any): void => { + it(`should convert ${bch[0]} BCH to ${bch[1]} bits`, (): void => { assert.equal( bitbox.BitcoinCash.satsToBits(bitbox.BitcoinCash.toSatoshi(bch[0])), bch[1] @@ -127,10 +130,10 @@ describe("#BitcoinCash", () => { }) }) - fixtures.conversion.satsToBits.strings.forEach((bch: any) => { + fixtures.conversion.satsToBits.strings.forEach((bch: any): void => { it(`should convert "${bch[0]}" BCH as a string to ${ bch[1] - } bits`, () => { + } bits`, (): void => { assert.equal( bitbox.BitcoinCash.satsToBits(bitbox.BitcoinCash.toSatoshi(bch[0])), bch[1] @@ -139,15 +142,15 @@ describe("#BitcoinCash", () => { }) }) - describe("sign and verify messages", () => { - describe("#signMessageWithPrivKey", () => { - fixtures.signatures.sign.forEach((sign: any) => { + describe("sign and verify messages", (): void => { + describe("#signMessageWithPrivKey", (): void => { + fixtures.signatures.sign.forEach((sign: any): void => { it(`should sign a message w/ ${sign.network} ${ sign.privateKeyWIF }`, () => { - const privateKeyWIF = sign.privateKeyWIF - const message = sign.message - const signature = bitbox.BitcoinCash.signMessageWithPrivKey( + const privateKeyWIF: string = sign.privateKeyWIF + const message: string = sign.message + const signature: string = bitbox.BitcoinCash.signMessageWithPrivKey( privateKeyWIF, message ) @@ -156,11 +159,11 @@ describe("#BitcoinCash", () => { }) }) - describe("#verifyMessage", () => { - fixtures.signatures.verify.forEach((sign: any) => { + describe("#verifyMessage", (): void => { + fixtures.signatures.verify.forEach((sign: any): void => { it(`should verify a valid signed message from ${ sign.network - } cashaddr address ${sign.address}`, () => { + } cashaddr address ${sign.address}`, (): void => { assert.equal( bitbox.BitcoinCash.verifyMessage( sign.address, @@ -172,11 +175,11 @@ describe("#BitcoinCash", () => { }) }) - fixtures.signatures.verify.forEach((sign: any) => { + fixtures.signatures.verify.forEach((sign: any): void => { const legacyAddress = bitbox.Address.toLegacyAddress(sign.address) it(`should verify a valid signed message from ${ sign.network - } legacy address ${legacyAddress}`, () => { + } legacy address ${legacyAddress}`, (): void => { assert.equal( bitbox.BitcoinCash.verifyMessage( legacyAddress, @@ -188,11 +191,11 @@ describe("#BitcoinCash", () => { }) }) - fixtures.signatures.verify.forEach((sign: any) => { + fixtures.signatures.verify.forEach((sign: any): void => { const legacyAddress = bitbox.Address.toLegacyAddress(sign.address) it(`should not verify an invalid signed message from ${ sign.network - } cashaddr address ${sign.address}`, () => { + } cashaddr address ${sign.address}`, (): void => { assert.equal( bitbox.BitcoinCash.verifyMessage( sign.address, @@ -206,12 +209,12 @@ describe("#BitcoinCash", () => { }) }) - describe("encode and decode to base58Check", () => { - describe("#encodeBase58Check", () => { - fixtures.encodeBase58Check.forEach((base58Check: any) => { + describe("encode and decode to base58Check", (): void => { + describe("#encodeBase58Check", (): void => { + fixtures.encodeBase58Check.forEach((base58Check: any): void => { it(`encode ${base58Check.hex} as base58Check ${ base58Check.base58Check - }`, () => { + }`, (): void => { assert.equal( bitbox.BitcoinCash.encodeBase58Check(base58Check.hex), base58Check.base58Check @@ -220,9 +223,9 @@ describe("#BitcoinCash", () => { }) }) - describe("#decodeBase58Check", () => { - fixtures.encodeBase58Check.forEach((base58Check: any) => { - it(`decode ${base58Check.base58Check} as ${base58Check.hex}`, () => { + describe("#decodeBase58Check", (): void => { + fixtures.encodeBase58Check.forEach((base58Check: any): void => { + it(`decode ${base58Check.base58Check} as ${base58Check.hex}`, (): void => { assert.equal( bitbox.BitcoinCash.decodeBase58Check(base58Check.base58Check), base58Check.hex @@ -232,20 +235,20 @@ describe("#BitcoinCash", () => { }) }) - describe("encode and decode BIP21 urls", () => { - describe("#encodeBIP21", () => { - fixtures.bip21.valid.forEach((bip21: any) => { - it(`encode ${bip21.address} as url`, () => { - const url = bitbox.BitcoinCash.encodeBIP21( + describe("encode and decode BIP21 urls", (): void => { + describe("#encodeBIP21", (): void => { + fixtures.bip21.valid.forEach((bip21: any): void => { + it(`encode ${bip21.address} as url`, (): void => { + const url: string = bitbox.BitcoinCash.encodeBIP21( bip21.address, bip21.options ) assert.equal(url, bip21.url) }) }) - fixtures.bip21.valid_regtest.forEach((bip21: any) => { - it(`encode ${bip21.address} as url`, () => { - const url = bitbox.BitcoinCash.encodeBIP21( + fixtures.bip21.valid_regtest.forEach((bip21: any): void => { + it(`encode ${bip21.address} as url`, (): void => { + const url: string = bitbox.BitcoinCash.encodeBIP21( bip21.address, bip21.options, true @@ -255,10 +258,10 @@ describe("#BitcoinCash", () => { }) }) - describe("#decodeBIP21", () => { - fixtures.bip21.valid.forEach((bip21: any) => { - it(`decodes ${bip21.url}`, () => { - const decoded = bitbox.BitcoinCash.decodeBIP21(bip21.url) + describe("#decodeBIP21", (): void => { + fixtures.bip21.valid.forEach((bip21: any): void => { + it(`decodes ${bip21.url}`, (): void => { + const decoded: BIP21Object = bitbox.BitcoinCash.decodeBIP21(bip21.url) assert.equal(decoded.options.amount, bip21.options.amount) assert.equal(decoded.options.label, bip21.options.label) assert.equal( @@ -281,10 +284,10 @@ describe("#BitcoinCash", () => { }) }) - describe("#getByteCount", () => { - fixtures.getByteCount.forEach((fixture: any) => { - it(`get byte count`, () => { - const byteCount = bitbox.BitcoinCash.getByteCount( + describe("#getByteCount", (): void => { + fixtures.getByteCount.forEach((fixture: any): void => { + it(`get byte count`, (): void => { + const byteCount: number = bitbox.BitcoinCash.getByteCount( fixture.inputs, fixture.outputs ) @@ -293,13 +296,13 @@ describe("#BitcoinCash", () => { }) }) - describe("#bip38", () => { - describe("#encryptBIP38", () => { - fixtures.bip38.encrypt.mainnet.forEach((fixture: any) => { + describe("#bip38", (): void => { + describe("#encryptBIP38", (): void => { + fixtures.bip38.encrypt.mainnet.forEach((fixture: any): void => { it(`BIP 38 encrypt wif ${fixture.wif} with password ${ fixture.password - } on mainnet`, () => { - const encryptedKey = bitbox.BitcoinCash.encryptBIP38( + } on mainnet`, (): void => { + const encryptedKey: string = bitbox.BitcoinCash.encryptBIP38( fixture.wif, fixture.password ) @@ -307,11 +310,11 @@ describe("#BitcoinCash", () => { }) }) - fixtures.bip38.encrypt.testnet.forEach((fixture: any) => { + fixtures.bip38.encrypt.testnet.forEach((fixture: any): void => { it(`BIP 38 encrypt wif ${fixture.wif} with password ${ fixture.password - } on testnet`, () => { - const encryptedKey = bitbox.BitcoinCash.encryptBIP38( + } on testnet`, (): void => { + const encryptedKey: string = bitbox.BitcoinCash.encryptBIP38( fixture.wif, fixture.password ) @@ -320,12 +323,12 @@ describe("#BitcoinCash", () => { }) }) - describe("#decryptBIP38", () => { - fixtures.bip38.decrypt.mainnet.forEach((fixture: any) => { + describe("#decryptBIP38", (): void => { + fixtures.bip38.decrypt.mainnet.forEach((fixture: any): void => { it(`BIP 38 decrypt encrypted key ${ fixture.encryptedKey - } on mainnet`, () => { - const wif = bitbox.BitcoinCash.decryptBIP38( + } on mainnet`, (): void => { + const wif: string = bitbox.BitcoinCash.decryptBIP38( fixture.encryptedKey, fixture.password, "mainnet" @@ -334,11 +337,11 @@ describe("#BitcoinCash", () => { }) }) - fixtures.bip38.decrypt.testnet.forEach((fixture: any) => { + fixtures.bip38.decrypt.testnet.forEach((fixture: any): void => { it(`BIP 38 decrypt encrypted key ${ fixture.encryptedKey - } on testnet`, () => { - const wif = bitbox.BitcoinCash.decryptBIP38( + } on testnet`, (): void => { + const wif: string = bitbox.BitcoinCash.decryptBIP38( fixture.encryptedKey, fixture.password, "testnet" diff --git a/test/unit/Block.ts b/test/unit/Block.ts index dee24700..90c7bdaf 100644 --- a/test/unit/Block.ts +++ b/test/unit/Block.ts @@ -1,36 +1,36 @@ -const chai = require("chai") -const assert = chai.assert +// imports +import * as chai from "chai" import axios from "axios"; import * as sinon from "sinon"; +import { BITBOX } from "../../lib/BITBOX" +import { Block } from "../../lib/Block" +import { resturl } from "../../lib/BITBOX" +import * as util from "util" -// TODO: port from require to import syntax -const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() -const Block = require("../../lib/Block").Block -const resturl = require("../../lib/BITBOX").resturl +// consts +const bitbox: BITBOX = new BITBOX() +const assert: Chai.AssertStatic = chai.assert -// Inspect utility used for debugging. -const util = require("util") util.inspect.defaultOptions = { showHidden: true, colors: true, depth: 3 } -describe("#Block", () => { - describe("#BlockConstructor", () => { - it("should create instance of Block", () => { - const block = new Block() +describe("#Block", (): void => { + describe("#BlockConstructor", (): void => { + it("should create instance of Block", (): void => { + const block: Block = new Block() assert.equal(block instanceof Block, true) }) }) - it("should have a restURL property", () => { - const block = new Block() + it("should have a restURL property", (): void => { + const block: Block = new Block() assert.equal(block.restURL, resturl) }) - describe("#detailsByHash", () => { + describe("#detailsByHash", (): void => { let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) @@ -73,7 +73,7 @@ describe("#Block", () => { }) }) - describe("#detailsByHeight", () => { + describe("#detailsByHeight", (): void => { let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) @@ -114,9 +114,9 @@ describe("#Block", () => { }) }) - describe(`#detailsByHeight`, () => { + describe(`#detailsByHeight`, (): void => { it(`should GET block details for a given Height`, async () => { - const block = 500000 + const block: number = 500000 const result = await bitbox.Block.detailsByHeight(block) //console.log(`result: ${JSON.stringify(result, null, 2)}`) @@ -142,8 +142,8 @@ describe("#Block", () => { ]) }) - it(`should GET block details for an array of blocks`, async () => { - const blocks = [500000, 500001] + it(`should GET block details for an array of blocks`, async (): void => { + const blocks: number[] = [500000, 500001] const result = await bitbox.Block.detailsByHeight(blocks) //console.log(`result: ${JSON.stringify(result, null, 2)}`) @@ -172,7 +172,7 @@ describe("#Block", () => { it(`should throw an error for improper single input`, async () => { try { - const blocks = "asdf" + const blocks: any = "asdf" await bitbox.Block.detailsByHeight(blocks) assert.equal(true, false, "Unexpected result!") @@ -187,8 +187,8 @@ describe("#Block", () => { it(`should throw error on array size rate limit`, async () => { try { - const blocks = [] - for (let i = 0; i < 25; i++) blocks.push(500000) + const blocks: number[] = [] + for (let i: number = 0; i < 25; i++) blocks.push(500000) const result = await bitbox.Block.detailsByHeight(blocks) @@ -201,9 +201,9 @@ describe("#Block", () => { }) }) - describe("#detailsByHash", () => { + describe("#detailsByHash", (): void => { it(`should GET block details for a given hash`, async () => { - const hash = + const hash: string = "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" const result = await bitbox.Block.detailsByHash(hash) @@ -231,7 +231,7 @@ describe("#Block", () => { }) it(`should GET block details for an array of hashes`, async () => { - const hash = [ + const hash: string[] = [ "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" ] @@ -263,7 +263,7 @@ describe("#Block", () => { it(`should throw an error for improper single input`, async () => { try { - const hash = 12345 + const hash: any = 12345 await bitbox.Block.detailsByHash(hash) assert.equal(true, false, "Unexpected result!") @@ -278,8 +278,8 @@ describe("#Block", () => { it(`should throw error on array size rate limit`, async () => { try { - const data = [] - for (let i = 0; i < 25; i++) { + const data: string[] = [] + for (let i: number = 0; i < 25; i++) { data.push( "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" ) diff --git a/test/unit/Blockchain.ts b/test/unit/Blockchain.ts index 782c8510..4776ce89 100644 --- a/test/unit/Blockchain.ts +++ b/test/unit/Blockchain.ts @@ -1,60 +1,36 @@ -const chai = require("chai") -const assert = chai.assert +// imports +import * as chai from "chai" import axios from "axios"; import * as sinon from "sinon"; +import { BITBOX } from "../../lib/BITBOX" +import { Blockchain } from "../../lib/Blockchain" +import { resturl } from "../../lib/BITBOX" +import * as util from "util" -// TODO: port from require to import syntax -const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() -const Blockchain = require("../../lib/Blockchain").Blockchain -const resturl = require("../../lib/BITBOX").resturl +// consts +const bitbox: BITBOX = new BITBOX() +const assert: Chai.AssertStatic = chai.assert -// Inspect utility used for debugging. -const util = require("util") util.inspect.defaultOptions = { showHidden: true, colors: true, depth: 3 } -describe("#Blockchain", () => { - describe("#BlockchainConstructor", () => { - it("should create instance of Blockchain", () => { - const blockchain = new Blockchain() +describe("#Blockchain", (): void => { + describe("#BlockchainConstructor", (): void => { + it("should create instance of Blockchain", (): void => { + const blockchain: Blockchain = new Blockchain() assert.equal(blockchain instanceof Blockchain, true) }) - it("should have a restURL property", () => { - const blockchain = new Blockchain() + it("should have a restURL property", (): void => { + const blockchain: Blockchain = new Blockchain() assert.equal(blockchain.restURL, resturl) }) }) - describe("#getBestBlockHash", () => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get best block hash", done => { - const resolved = new Promise(r => - r({ - data: - "0000000000000000005f1f550d3d8b142b684277016ebd00fa29c668606ae52d" - }) - ) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Blockchain.getBestBlockHash() - .then((result: any) => { - const hash = - "0000000000000000005f1f550d3d8b142b684277016ebd00fa29c668606ae52d" - assert.equal(hash, result) - }) - .then(done, done) - }) - }) - - describe("#getBlock", () => { + describe("#getBlock", (): void => { let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) @@ -95,7 +71,7 @@ describe("#Blockchain", () => { }) }) - describe("#getBlockchainInfo", () => { + describe("#getBlockchainInfo", (): void => { let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) @@ -138,7 +114,7 @@ describe("#Blockchain", () => { }) }) - describe("#getBlockCount", () => { + describe("#getBlockCount", (): void => { let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) @@ -156,11 +132,11 @@ describe("#Blockchain", () => { }) }) - describe("#getBlockHash", () => { + describe("#getBlockHash", (): void => { let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) - const data = + const data: string = "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0" it("should get block hash by height", done => { @@ -175,7 +151,7 @@ describe("#Blockchain", () => { }) }) - describe("#getBlockHeader", () => { + describe("#getBlockHeader", (): void => { let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) @@ -213,7 +189,7 @@ describe("#Blockchain", () => { }) }) - describe("#getDifficulty", () => { + describe("#getDifficulty", (): void => { let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) @@ -231,7 +207,7 @@ describe("#Blockchain", () => { }) }) - describe("#getMempoolAncestors", () => { + describe("#getMempoolAncestors", (): void => { let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) @@ -252,7 +228,7 @@ describe("#Blockchain", () => { }) }) - describe("#getMempoolDescendants", () => { + describe("#getMempoolDescendants", (): void => { let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) @@ -275,7 +251,7 @@ describe("#Blockchain", () => { }) }) - describe("#getMempoolEntry", () => { + describe("#getMempoolEntry", (): void => { let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) @@ -297,7 +273,7 @@ describe("#Blockchain", () => { }) }) - describe("#getMempoolInfo", () => { + describe("#getMempoolInfo", (): void => { let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) @@ -323,7 +299,7 @@ describe("#Blockchain", () => { }) }) - describe("#getRawMempool", () => { + describe("#getRawMempool", (): void => { let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) @@ -364,7 +340,7 @@ describe("#Blockchain", () => { }) }) - describe("#getTxOut", () => { + describe("#getTxOut", (): void => { // TODO finish this test let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) @@ -389,7 +365,7 @@ describe("#Blockchain", () => { }) }) - describe("#preciousBlock", () => { + describe("#preciousBlock", (): void => { // TODO finish this test let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) @@ -402,6 +378,7 @@ describe("#Blockchain", () => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) + // @ts-ignore bitbox.Blockchain.preciousBlock() .then((result: any) => { assert.deepEqual(data, result) @@ -410,7 +387,7 @@ describe("#Blockchain", () => { }) }) - describe("#pruneBlockchain", () => { + describe("#pruneBlockchain", (): void => { let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) @@ -428,7 +405,7 @@ describe("#Blockchain", () => { }) }) - describe("#verifyChain", () => { + describe("#verifyChain", (): void => { let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) @@ -446,7 +423,7 @@ describe("#Blockchain", () => { }) }) - describe("#verifyTxOutProof", () => { + describe("#verifyTxOutProof", (): void => { let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) @@ -464,7 +441,7 @@ describe("#Blockchain", () => { }) }) - describe(`#getBestBlockHash`, () => { + describe(`#getBestBlockHash`, (): void => { it(`should GET best block hash`, async () => { const result = await bitbox.Blockchain.getBestBlockHash() //console.log(`result: ${util.inspect(result)}`) @@ -474,9 +451,9 @@ describe("#Blockchain", () => { }) }) - describe("#getBlockHeader", () => { + describe("#getBlockHeader", (): void => { it(`should GET block header for a single hash`, async () => { - const hash = + const hash: string = "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" const result = await bitbox.Blockchain.getBlockHeader(hash) @@ -500,7 +477,7 @@ describe("#Blockchain", () => { }) it(`should GET block headers for an array of hashes`, async () => { - const hash = [ + const hash: string[] = [ "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", "00000000000000000568f0a96bf4348847bc84e455cbfec389f27311037a20f3" ] @@ -528,7 +505,7 @@ describe("#Blockchain", () => { it(`should throw an error for improper input`, async () => { try { - const hash = 12345 + const hash: any = 12345 await bitbox.Blockchain.getBlockHeader(hash) assert.equal(true, false, "Unexpected result!") @@ -542,8 +519,8 @@ describe("#Blockchain", () => { it(`should throw error on array size rate limit`, async () => { try { - const data = [] - for (let i = 0; i < 25; i++) { + const data: string[] = [] + for (let i: number = 0; i < 25; i++) { data.push( "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" ) @@ -560,7 +537,7 @@ describe("#Blockchain", () => { }) }) - describe("#getMempoolEntry", () => { + describe("#getMempoolEntry", (): void => { /* // To run this test, the txid must be unconfirmed. const txid = @@ -614,7 +591,7 @@ describe("#Blockchain", () => { it(`should throw an error if txid is not in mempool`, async () => { try { - const txid = + const txid: string = "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" await bitbox.Blockchain.getMempoolEntry(txid) @@ -629,7 +606,7 @@ describe("#Blockchain", () => { it(`should throw an error for improper single input`, async () => { try { - const txid = 12345 + const txid: any = 12345 await bitbox.Blockchain.getMempoolEntry(txid) assert.equal(true, false, "Unexpected result!") @@ -642,9 +619,9 @@ describe("#Blockchain", () => { }) }) - describe(`#getTxOutProof`, () => { + describe(`#getTxOutProof`, (): void => { it(`should get single tx out proof`, async () => { - const txid = + const txid: string = "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" const result = await bitbox.Blockchain.getTxOutProof(txid) @@ -654,7 +631,7 @@ describe("#Blockchain", () => { }) it(`should get an array of tx out proofs`, async () => { - const txid = [ + const txid: string[] = [ "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7", "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" ] @@ -668,7 +645,7 @@ describe("#Blockchain", () => { it(`should throw an error for improper single input`, async () => { try { - const txid = 12345 + const txid: any = 12345 await bitbox.Blockchain.getTxOutProof(txid) assert.equal(true, false, "Unexpected result!") @@ -682,7 +659,7 @@ describe("#Blockchain", () => { }) describe(`#verifyTxOutProof`, () => { - const mockTxOutProof = + const mockTxOutProof: string = "0000002086a4a3161f9ba2174883ec0b93acceac3b2f37b36ed1f90000000000000000009cb02406d1094ecf3e0b4c0ca7c585125e721147c39daf6b48c90b512741e13a12333e5cb38705180f441d8c7100000008fee9b60f1edb57e5712839186277ed39e0a004a32be9096ee47472efde8eae62f789f9d7a9f59d0ea7093dea1e0c65ff0b953f1d8cf3d47f92e732ca0295f603c272d5f4a63509f7a887f2549d78af7444aa0ecbb4f66d9cbe13bc6a89f59e05a199df8325d490818ffefe6b6321d32d7496a68580459836c0183f89082fc1b491cc91b23ecdcaa4c347bf599a62904d61f1c15b400ebbd5c90149010c139d9c1e31b774b796977393a238080ab477e1d240d0c4f155d36f519668f49bae6bd8cd5b8e40522edf76faa09cca6188d83ff13af6967cc6a569d1a5e9aeb1fdb7f531ddd2d0cbb81879741d5f38166ac1932136264366a4065cc96a42e41f96294f02df01" it(`should verify a single proof`, async () => { @@ -698,7 +675,7 @@ describe("#Blockchain", () => { }) it(`should verify an array of proofs`, async () => { - const proofs = [mockTxOutProof, mockTxOutProof] + const proofs: string[] = [mockTxOutProof, mockTxOutProof] const result = await bitbox.Blockchain.verifyTxOutProof(proofs) //console.log(`result: ${JSON.stringify(result, null, 2)}`) @@ -712,7 +689,7 @@ describe("#Blockchain", () => { it(`should throw an error for improper single input`, async () => { try { - const txid = 12345 + const txid: any = 12345 await bitbox.Blockchain.verifyTxOutProof(txid) assert.equal(true, false, "Unexpected result!") @@ -726,8 +703,8 @@ describe("#Blockchain", () => { it(`should throw error on array size rate limit`, async () => { try { - const data = [] - for (let i = 0; i < 25; i++) data.push(mockTxOutProof) + const data: string[] = [] + for (let i: number = 0; i < 25; i++) data.push(mockTxOutProof) const result = await bitbox.Blockchain.verifyTxOutProof(data) diff --git a/test/unit/Control.ts b/test/unit/Control.ts index ae6406a7..558a7205 100644 --- a/test/unit/Control.ts +++ b/test/unit/Control.ts @@ -1,27 +1,28 @@ +// imports import * as assert from "assert"; import axios from "axios"; import * as sinon from "sinon"; +import { BITBOX } from "../../lib/BITBOX" +import { Control } from "../../lib/Control" +import { resturl } from "../../lib/BITBOX" -// TODO: port from require to import syntax -const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() -const Control = require("../../lib/Control").Control -const resturl = require("../../lib/BITBOX").resturl +// consts +const bitbox: BITBOX = new BITBOX() -describe("#Control", () => { - describe("#ControlConstructor", () => { - it("should create instance of Control", () => { - const control = new Control() +describe("#Control", (): void => { + describe("#ControlConstructor", (): void => { + it("should create instance of Control", (): void => { + const control: Control = new Control() assert.equal(control instanceof Control, true) }) - it("should have a restURL property", () => { - const control = new Control() + it("should have a restURL property", (): void => { + const control: Control = new Control() assert.equal(control.restURL, resturl) }) }) - describe("#getInfo", () => { + describe("#getInfo", (): void => { let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) diff --git a/test/unit/Crypto.ts b/test/unit/Crypto.ts index 05a849f7..543f13fc 100644 --- a/test/unit/Crypto.ts +++ b/test/unit/Crypto.ts @@ -1,133 +1,135 @@ +// imports import * as assert from "assert"; +import { BITBOX } from "../../lib/BITBOX" +import { Buffer } from "buffer" + +// consts +const bitbox: BITBOX = new BITBOX() // TODO: port from require to import syntax const fixtures = require("./fixtures/Crypto.json") -const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() -const Crypto = require("../../lib/Crypto").Control -const Buffer = require("safe-buffer").Buffer - -describe("#Crypto", () => { - describe("#sha1", () => { - fixtures.sha1.forEach((fixture: any) => { + +describe("#Crypto", (): void => { + describe("#sha1", (): void => { + fixtures.sha1.forEach((fixture: any): void => { it(`should create SHA1 Hash hex encoded ${fixture.hash} from ${ fixture.hex - }`, () => { - const data = Buffer.from(fixture.hex, "hex") - const sha1Hash = bitbox.Crypto.sha1(data).toString("hex") + }`, (): void => { + const data: Buffer = Buffer.from(fixture.hex, "hex") + const sha1Hash: string = bitbox.Crypto.sha1(data).toString("hex") assert.equal(sha1Hash, fixture.hash) }) - it(`should create 40 character SHA1 Hash hex encoded`, () => { - const data = Buffer.from(fixture.hex, "hex") - const sha1Hash = bitbox.Crypto.sha1(data).toString("hex") + it(`should create 40 character SHA1 Hash hex encoded`, (): void => { + const data: Buffer = Buffer.from(fixture.hex, "hex") + const sha1Hash: string = bitbox.Crypto.sha1(data).toString("hex") assert.equal(sha1Hash.length, 40) }) }) }) - describe("#sha256", () => { - fixtures.sha256.forEach((fixture: any) => { + describe("#sha256", (): void => { + fixtures.sha256.forEach((fixture: any): void => { it(`should create SHA256 Hash hex encoded ${fixture.hash} from ${ fixture.hex - }`, () => { - const data = Buffer.from(fixture.hex, "hex") - const sha256Hash = bitbox.Crypto.sha256(data).toString("hex") + }`, (): void => { + const data: Buffer = Buffer.from(fixture.hex, "hex") + const sha256Hash: string = bitbox.Crypto.sha256(data).toString("hex") assert.equal(sha256Hash, fixture.hash) }) - it(`should create 64 character SHA256Hash hex encoded`, () => { - const data = Buffer.from(fixture.hex, "hex") - const sha256Hash = bitbox.Crypto.sha256(data).toString("hex") + it(`should create 64 character SHA256Hash hex encoded`, (): void => { + const data: Buffer = Buffer.from(fixture.hex, "hex") + const sha256Hash: string = bitbox.Crypto.sha256(data).toString("hex") assert.equal(sha256Hash.length, 64) }) }) }) - describe("#ripemd160", () => { - fixtures.ripemd160.forEach((fixture: any) => { + describe("#ripemd160", (): void => { + fixtures.ripemd160.forEach((fixture: any): void => { it(`should create RIPEMD160 Hash hex encoded ${fixture.hash} from ${ fixture.hex - }`, () => { - const data = Buffer.from(fixture.hex, "hex") - const ripemd160 = bitbox.Crypto.ripemd160(data).toString("hex") + }`, (): void => { + const data: Buffer = Buffer.from(fixture.hex, "hex") + const ripemd160: string = bitbox.Crypto.ripemd160(data).toString("hex") assert.equal(ripemd160, fixture.hash) }) - it(`should create 64 character RIPEMD160Hash hex encoded`, () => { - const data = Buffer.from(fixture.hex, "hex") - const ripemd160 = bitbox.Crypto.ripemd160(data).toString("hex") + it(`should create 64 character RIPEMD160Hash hex encoded`, (): void => { + const data: Buffer = Buffer.from(fixture.hex, "hex") + const ripemd160: string = bitbox.Crypto.ripemd160(data).toString("hex") assert.equal(ripemd160.length, 40) }) }) }) - describe("#hash256", () => { - fixtures.hash256.forEach((fixture: any) => { + describe("#hash256", (): void => { + fixtures.hash256.forEach((fixture: any): void => { it(`should create double SHA256 Hash hex encoded ${fixture.hash} from ${ fixture.hex - }`, () => { - const data = Buffer.from(fixture.hex, "hex") - const hash256 = bitbox.Crypto.hash256(data).toString("hex") + }`, (): void => { + const data: Buffer = Buffer.from(fixture.hex, "hex") + const hash256: string = bitbox.Crypto.hash256(data).toString("hex") assert.equal(hash256, fixture.hash) }) - it(`should create 64 character SHA256 Hash hex encoded`, () => { - const data = Buffer.from(fixture.hex, "hex") - const hash256 = bitbox.Crypto.hash256(data).toString("hex") + it(`should create 64 character SHA256 Hash hex encoded`, (): void => { + const data: Buffer = Buffer.from(fixture.hex, "hex") + const hash256: string = bitbox.Crypto.hash256(data).toString("hex") assert.equal(hash256.length, 64) }) }) }) - describe("#hash160", () => { - fixtures.hash160.forEach((fixture: any) => { + describe("#hash160", (): void => { + fixtures.hash160.forEach((fixture: any): void => { it(`should create RIPEMD160(SHA256()) hex encoded ${fixture.hash} from ${ fixture.hex - }`, () => { - const data = Buffer.from(fixture.hex, "hex") - const hash160 = bitbox.Crypto.hash160(data).toString("hex") + }`, (): void => { + const data: Buffer = Buffer.from(fixture.hex, "hex") + const hash160: string = bitbox.Crypto.hash160(data).toString("hex") assert.equal(hash160, fixture.hash) }) - it(`should create 64 character SHA256Hash hex encoded`, () => { - const data = Buffer.from(fixture.hex, "hex") - const hash160 = bitbox.Crypto.hash160(data).toString("hex") + it(`should create 64 character SHA256Hash hex encoded`, (): void => { + const data: Buffer = Buffer.from(fixture.hex, "hex") + const hash160: string = bitbox.Crypto.hash160(data).toString("hex") assert.equal(hash160.length, 40) }) }) }) - describe("#randomBytes", () => { - for (let i = 0; i < 6; i++) { - it("should return 16 bytes of entropy hex encoded via default value", () => { - const entropy = bitbox.Crypto.randomBytes() + describe("#randomBytes", (): void => { + for (let i: number = 0; i < 6; i++) { + it("should return 16 bytes of entropy hex encoded via default value", (): string => { + const entropy: Buffer = bitbox.Crypto.randomBytes() assert.equal(Buffer.byteLength(entropy), 16) }) - it("should return 16 bytes of entropy hex encoded", () => { - const entropy = bitbox.Crypto.randomBytes(16) + it("should return 16 bytes of entropy hex encoded", (): void => { + const entropy: Buffer = bitbox.Crypto.randomBytes(16) assert.equal(Buffer.byteLength(entropy), 16) }) - it("should return 20 bytes of entropy hex encoded", () => { - const entropy = bitbox.Crypto.randomBytes(20) + it("should return 20 bytes of entropy hex encoded", (): void => { + const entropy: Buffer = bitbox.Crypto.randomBytes(20) assert.equal(Buffer.byteLength(entropy), 20) }) - it("should return 24 bytes of entropy hex encoded", () => { - const entropy = bitbox.Crypto.randomBytes(24) + it("should return 24 bytes of entropy hex encoded", (): void => { + const entropy: Buffer = bitbox.Crypto.randomBytes(24) assert.equal(Buffer.byteLength(entropy), 24) }) - it("should return 28 bytes of entropy hex encoded", () => { - const entropy = bitbox.Crypto.randomBytes(28) + it("should return 28 bytes of entropy hex encoded", (): void => { + const entropy: Buffer = bitbox.Crypto.randomBytes(28) assert.equal(Buffer.byteLength(entropy), 28) }) - it("should return 32 bytes of entropy hex encoded", () => { - const entropy = bitbox.Crypto.randomBytes(32) + it("should return 32 bytes of entropy hex encoded", (): void => { + const entropy: Buffer = bitbox.Crypto.randomBytes(32) assert.equal(Buffer.byteLength(entropy), 32) }) } diff --git a/test/unit/ECPair.ts b/test/unit/ECPair.ts index 8303f3be..37ac4a3c 100644 --- a/test/unit/ECPair.ts +++ b/test/unit/ECPair.ts @@ -1,156 +1,160 @@ +// imports import * as assert from "assert"; +import { BITBOX } from "../../lib/BITBOX" +import { ECPair } from "../../lib/ECPair" +import { Buffer } from "buffer" +import * as bcl from "bitcoincashjs-lib"; + +// consts +const bitbox: BITBOX = new BITBOX() // TODO: port from require to import syntax const fixtures = require("./fixtures/ECPair.json") -const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() -const ECPair = require("../../lib/ECPair").ECPair -const Buffer = require("safe-buffer").Buffer - -describe("#ECPair", () => { - describe("#ECPairConstructor", () => { - it("should create instance of ECPair", () => { - const ecpair = new ECPair() + +describe("#ECPair", (): void => { + describe("#ECPairConstructor", (): void => { + it("should create instance of ECPair", (): void => { + const ecpair: ECPair = new ECPair() assert.equal(ecpair instanceof ECPair, true) }) }) - describe("#fromWIF", () => { - fixtures.fromWIF.forEach((fixture: any) => { - it(`should create ECPair from WIF ${fixture.privateKeyWIF}`, () => { - const ecpair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + describe("#fromWIF", (): void => { + fixtures.fromWIF.forEach((fixture: any): void => { + it(`should create ECPair from WIF ${fixture.privateKeyWIF}`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) assert.equal(typeof ecpair, "object") }) - it(`should get ${fixture.legacy} legacy address`, () => { - const legacy = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) - assert.equal(bitbox.HDNode.toLegacyAddress(legacy), fixture.legacy) + it(`should get ${fixture.legacy} legacy address`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + assert.equal(bitbox.ECPair.toLegacyAddress(ecpair), fixture.legacy) }) - it(`should get ${fixture.cashAddr} cash address`, () => { - const cashAddr = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) - assert.equal(bitbox.HDNode.toCashAddress(cashAddr), fixture.cashAddr) + it(`should get ${fixture.cashAddr} cash address`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + assert.equal(bitbox.ECPair.toCashAddress(ecpair), fixture.cashAddr) }) - it(`should get ${fixture.regtestAddr} cash address`, () => { - const cashAddr = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + it(`should get ${fixture.regtestAddr} cash address`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) assert.equal( - bitbox.HDNode.toCashAddress(cashAddr, true), + bitbox.ECPair.toCashAddress(ecpair, true), fixture.regtestAddr ) }) }) }) - describe("#toWIF", () => { - fixtures.toWIF.forEach((fixture: any) => { - it(`should get WIF ${fixture.privateKeyWIF} from ECPair`, () => { - const ecpair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) - const wif = bitbox.ECPair.toWIF(ecpair) + describe("#toWIF", (): void => { + fixtures.toWIF.forEach((fixture: any): void => { + it(`should get WIF ${fixture.privateKeyWIF} from ECPair`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + const wif: string = bitbox.ECPair.toWIF(ecpair) assert.equal(wif, fixture.privateKeyWIF) }) }) }) - describe("#fromPublicKey", () => { - fixtures.fromPublicKey.forEach((fixture: any) => { - it(`should create ECPair from public key buffer`, () => { - const ecpair = bitbox.ECPair.fromPublicKey( + describe("#fromPublicKey", (): void => { + fixtures.fromPublicKey.forEach((fixture: any): void => { + it(`should create ECPair from public key buffer`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromPublicKey( Buffer.from(fixture.pubkeyHex, "hex") ) assert.equal(typeof ecpair, "object") }) - it(`should get ${fixture.legacy} legacy address`, () => { - const ecpair = bitbox.ECPair.fromPublicKey( + it(`should get ${fixture.legacy} legacy address`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromPublicKey( Buffer.from(fixture.pubkeyHex, "hex") ) - assert.equal(bitbox.HDNode.toLegacyAddress(ecpair), fixture.legacy) + assert.equal(bitbox.ECPair.toLegacyAddress(ecpair), fixture.legacy) }) - it(`should get ${fixture.cashAddr} cash address`, () => { - const ecpair = bitbox.ECPair.fromPublicKey( + it(`should get ${fixture.cashAddr} cash address`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromPublicKey( Buffer.from(fixture.pubkeyHex, "hex") ) - assert.equal(bitbox.HDNode.toCashAddress(ecpair), fixture.cashAddr) + assert.equal(bitbox.ECPair.toCashAddress(ecpair), fixture.cashAddr) }) - it(`should get ${fixture.regtestAddr} cash address`, () => { - const ecpair = bitbox.ECPair.fromPublicKey( + it(`should get ${fixture.regtestAddr} cash address`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromPublicKey( Buffer.from(fixture.pubkeyHex, "hex") ) assert.equal( - bitbox.HDNode.toCashAddress(ecpair, true), + bitbox.ECPair.toCashAddress(ecpair, true), fixture.regtestAddr ) }) }) }) - describe("#toPublicKey", () => { - fixtures.toPublicKey.forEach((fixture: any) => { - it(`should create a public key buffer from an ECPair`, () => { - const ecpair = bitbox.ECPair.fromPublicKey( + describe("#toPublicKey", (): void => { + fixtures.toPublicKey.forEach((fixture: any): void => { + it(`should create a public key buffer from an ECPair`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromPublicKey( Buffer.from(fixture.pubkeyHex, "hex") ) - const pubkeyBuffer = bitbox.ECPair.toPublicKey(ecpair) + const pubkeyBuffer: Buffer = bitbox.ECPair.toPublicKey(ecpair) assert.equal(typeof pubkeyBuffer, "object") }) }) }) - describe("#toLegacyAddress", () => { - fixtures.toLegacyAddress.forEach((fixture: any) => { + describe("#toLegacyAddress", (): void => { + fixtures.toLegacyAddress.forEach((fixture: any): void => { it(`should create legacy address ${ fixture.legacy - } from an ECPair`, () => { - const ecpair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) - const legacyAddress = bitbox.ECPair.toLegacyAddress(ecpair) + } from an ECPair`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + const legacyAddress: string = bitbox.ECPair.toLegacyAddress(ecpair) assert.equal(legacyAddress, fixture.legacy) }) }) }) - describe("#toCashAddress", () => { - fixtures.toCashAddress.forEach((fixture: any) => { + describe("#toCashAddress", (): void => { + fixtures.toCashAddress.forEach((fixture: any): void => { it(`should create cash address ${ fixture.cashAddr - } from an ECPair`, () => { - const ecpair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) - const cashAddr = bitbox.ECPair.toCashAddress(ecpair) + } from an ECPair`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + const cashAddr: string = bitbox.ECPair.toCashAddress(ecpair) assert.equal(cashAddr, fixture.cashAddr) }) }) - fixtures.toCashAddress.forEach((fixture: any) => { + fixtures.toCashAddress.forEach((fixture: any): void => { it(`should create regtest cash address ${ fixture.regtestAddr - } from an ECPair`, () => { - const ecpair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) - const regtestAddr = bitbox.ECPair.toCashAddress(ecpair, true) + } from an ECPair`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + const regtestAddr: string = bitbox.ECPair.toCashAddress(ecpair, true) assert.equal(regtestAddr, fixture.regtestAddr) }) }) }) - describe("#sign", () => { - fixtures.sign.forEach((fixture: any) => { - it(`should sign 32 byte hash buffer`, () => { - const ecpair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) - const buf = Buffer.from(bitbox.Crypto.sha256(fixture.data), "hex") - const signatureBuf = bitbox.ECPair.sign(ecpair, buf) + describe("#sign", (): void => { + fixtures.sign.forEach((fixture: any): void => { + it(`should sign 32 byte hash buffer`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + const buf: Buffer = Buffer.from(bitbox.Crypto.sha256(fixture.data), "hex") + const signatureBuf: Buffer = bitbox.ECPair.sign(ecpair, buf) assert.equal(typeof signatureBuf, "object") }) }) }) - describe("#verify", () => { - fixtures.verify.forEach((fixture: any) => { - it(`should verify signed 32 byte hash buffer`, () => { - const ecpair1 = bitbox.ECPair.fromWIF(fixture.privateKeyWIF1) - const buf = Buffer.from(bitbox.Crypto.sha256(fixture.data), "hex") - const signature = bitbox.ECPair.sign(ecpair1, buf) - const verify = bitbox.ECPair.verify(ecpair1, buf, signature) + describe("#verify", (): void => { + fixtures.verify.forEach((fixture: any): void => { + it(`should verify signed 32 byte hash buffer`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF1) + const buf: Buffer = Buffer.from(bitbox.Crypto.sha256(fixture.data), "hex") + const signature: Buffer = bitbox.ECPair.sign(ecpair, buf) + const verify: boolean = bitbox.ECPair.verify(ecpair, buf, signature) assert.equal(verify, true) }) }) diff --git a/test/unit/Generating.ts b/test/unit/Generating.ts index ccb100e6..2eaf3731 100644 --- a/test/unit/Generating.ts +++ b/test/unit/Generating.ts @@ -1,27 +1,28 @@ +// imports import * as assert from "assert"; import axios from "axios"; import * as sinon from "sinon"; +import { BITBOX } from "../../lib/BITBOX" +import { Generating } from "../../lib/Generating" +import { resturl } from "../../lib/BITBOX" -// TODO: port from require to import syntax -const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() -const Generating = require("../../lib/Generating").Generating -const resturl = require("../../lib/BITBOX").resturl +// consts +const bitbox: BITBOX = new BITBOX() -describe("#Generating", () => { - describe("#GeneratingConstructor", () => { - it("should create instance of Generating", () => { - const generating = new Generating() +describe("#Generating", (): void => { + describe("#GeneratingConstructor", (): void => { + it("should create instance of Generating", (): void => { + const generating: Generating = new Generating() assert.equal(generating instanceof Generating, true) }) - it("should have a restURL property", () => { - const generating = new Generating() + it("should have a restURL property", (): void => { + const generating: Generating = new Generating() assert.equal(generating.restURL, resturl) }) }) - describe("#generateToAddress", () => { + describe("#generateToAddress", (): void => { let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) diff --git a/test/unit/HDNode.ts b/test/unit/HDNode.ts index 18bfc296..1d4cf16d 100644 --- a/test/unit/HDNode.ts +++ b/test/unit/HDNode.ts @@ -1,61 +1,65 @@ +// imports import * as assert from "assert"; +import { BITBOX } from "../../lib/BITBOX" +import { HDNode } from "../../lib/HDNode" +import { Buffer } from "Buffer" +import * as bcl from "bitcoincashjs-lib" + +// consts +const bitbox: BITBOX = new BITBOX() // TODO: port from require to import syntax const fixtures = require("./fixtures/HDNode.json") -const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() -const HDNode = require("../../lib/HDNode").HDNode -const Buffer = require("safe-buffer").Buffer - -describe("#HDNode", () => { - describe("#HDNodeConstructor", () => { - it("should create instance of HDNode", () => { - const hdnode = new HDNode() + +describe("#HDNode", (): void => { + describe("#HDNodeConstructor", (): void => { + it("should create instance of HDNode", (): void => { + const hdnode: HDNode = new HDNode() assert.equal(hdnode instanceof HDNode, true) }) }) - describe("#fromSeed", () => { - fixtures.fromSeed.forEach((mnemonic: any) => { - it(`should create an HDNode from root seed buffer`, () => { - const rootSeedBuffer = bitbox.Mnemonic.toSeed(mnemonic) - const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + describe("#fromSeed", (): void => { + fixtures.fromSeed.forEach((mnemonic: string): void => { + it(`should create an HDNode from root seed buffer`, (): void => { + const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(mnemonic) + const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) assert.notEqual(hdNode, null) }) }) }) - describe("#derive", () => { - fixtures.derive.forEach((derive: any) => { - it(`should derive non hardened child HDNode`, () => { - const rootSeedBuffer = bitbox.Mnemonic.toSeed(derive.mnemonic) - const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) - const childHDNode = bitbox.HDNode.derive(hdNode, 0) + describe("#derive", (): void => { + fixtures.derive.forEach((derive: any): void => { + it(`should derive non hardened child HDNode`, (): void => { + const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(derive.mnemonic) + const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const childHDNode: bcl.HDNode = bitbox.HDNode.derive(hdNode, "0") assert.equal(bitbox.HDNode.toXPub(childHDNode), derive.xpub) assert.equal(bitbox.HDNode.toXPriv(childHDNode), derive.xpriv) }) }) }) - describe("#deriveHardened", () => { - fixtures.deriveHardened.forEach((derive: any) => { - it(`should derive hardened child HDNode`, () => { - const rootSeedBuffer = bitbox.Mnemonic.toSeed(derive.mnemonic) - const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) - const childHDNode = bitbox.HDNode.deriveHardened(hdNode, 0) + describe("#deriveHardened", (): void => { + fixtures.deriveHardened.forEach((derive: any): void => { + it(`should derive hardened child HDNode`, (): void => { + const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(derive.mnemonic) + const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const childHDNode: bcl.HDNode = bitbox.HDNode.deriveHardened(hdNode, "0") assert.equal(bitbox.HDNode.toXPub(childHDNode), derive.xpub) assert.equal(bitbox.HDNode.toXPriv(childHDNode), derive.xpriv) }) }) - describe("derive BIP44 $BCH account", () => { - fixtures.deriveBIP44.forEach((derive: any) => { - it(`should derive BIP44 $BCH account`, () => { - const rootSeedBuffer = bitbox.Mnemonic.toSeed(derive.mnemonic) - const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) - const purpose = bitbox.HDNode.deriveHardened(hdNode, 44) - const coin = bitbox.HDNode.deriveHardened(purpose, 145) - const childHDNode = bitbox.HDNode.deriveHardened(coin, 0) + describe("derive BIP44 $BCH account", (): void => { + fixtures.deriveBIP44.forEach((derive: any): void => { + it(`should derive BIP44 $BCH account`, (): void => { + const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(derive.mnemonic) + const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const purpose: bcl.HDNode = bitbox.HDNode.deriveHardened(hdNode, "44") + const coin: bcl.HDNode = bitbox.HDNode.deriveHardened(purpose, "145") + const childHDNode: bcl.HDNode = bitbox.HDNode.deriveHardened(coin, "0") assert.equal(bitbox.HDNode.toXPub(childHDNode), derive.xpub) assert.equal(bitbox.HDNode.toXPriv(childHDNode), derive.xpriv) }) @@ -63,37 +67,37 @@ describe("#HDNode", () => { }) }) - describe("#derivePath", () => { - describe("derive non hardened Path", () => { - fixtures.derivePath.forEach((derive: any) => { - it(`should derive non hardened child HDNode from path`, () => { - const rootSeedBuffer = bitbox.Mnemonic.toSeed(derive.mnemonic) - const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) - const childHDNode = bitbox.HDNode.derivePath(hdNode, "0") + describe("#derivePath", (): void => { + describe("derive non hardened Path", (): void => { + fixtures.derivePath.forEach((derive: any): void => { + it(`should derive non hardened child HDNode from path`, (): void => { + const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(derive.mnemonic) + const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const childHDNode: bcl.HDNode = bitbox.HDNode.derivePath(hdNode, "0") assert.equal(bitbox.HDNode.toXPub(childHDNode), derive.xpub) assert.equal(bitbox.HDNode.toXPriv(childHDNode), derive.xpriv) }) }) }) - describe("derive hardened Path", () => { - fixtures.deriveHardenedPath.forEach((derive: any) => { - it(`should derive hardened child HDNode from path`, () => { - const rootSeedBuffer = bitbox.Mnemonic.toSeed(derive.mnemonic) - const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) - const childHDNode = bitbox.HDNode.derivePath(hdNode, "0'") + describe("derive hardened Path", (): any => { + fixtures.deriveHardenedPath.forEach((derive: any): any => { + it(`should derive hardened child HDNode from path`, (): any => { + const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(derive.mnemonic) + const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const childHDNode: bcl.HDNode = bitbox.HDNode.derivePath(hdNode, "0'") assert.equal(bitbox.HDNode.toXPub(childHDNode), derive.xpub) assert.equal(bitbox.HDNode.toXPriv(childHDNode), derive.xpriv) }) }) }) - describe("derive BIP44 $BCH account", () => { - fixtures.deriveBIP44.forEach((derive: any) => { - it(`should derive BIP44 $BCH account`, () => { - const rootSeedBuffer = bitbox.Mnemonic.toSeed(derive.mnemonic) - const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) - const childHDNode = bitbox.HDNode.derivePath(hdNode, "44'/145'/0'") + describe("derive BIP44 $BCH account", (): void => { + fixtures.deriveBIP44.forEach((derive: any): void => { + it(`should derive BIP44 $BCH account`, (): void => { + const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(derive.mnemonic) + const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const childHDNode: bcl.HDNode = bitbox.HDNode.derivePath(hdNode, "44'/145'/0'") assert.equal(bitbox.HDNode.toXPub(childHDNode), derive.xpub) assert.equal(bitbox.HDNode.toXPriv(childHDNode), derive.xpriv) }) @@ -101,149 +105,149 @@ describe("#HDNode", () => { }) }) - describe("#toLegacyAddress", () => { - fixtures.toLegacyAddress.forEach((fixture: any) => { - it(`should get address ${fixture.address} from HDNode`, () => { - const rootSeedBuffer = bitbox.Mnemonic.toSeed(fixture.mnemonic) - const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) - const childHDNode = bitbox.HDNode.derivePath(hdNode, "0") - const addy = bitbox.HDNode.toLegacyAddress(childHDNode) + describe("#toLegacyAddress", (): void => { + fixtures.toLegacyAddress.forEach((fixture: any): void => { + it(`should get address ${fixture.address} from HDNode`, (): void => { + const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(fixture.mnemonic) + const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const childHDNode: bcl.HDNode = bitbox.HDNode.derivePath(hdNode, "0") + const addy: string = bitbox.HDNode.toLegacyAddress(childHDNode) assert.equal(addy, fixture.address) }) }) }) - describe("#toCashAddress", () => { - fixtures.toCashAddress.forEach((fixture: any) => { - it(`should get address ${fixture.address} from HDNode`, () => { - const rootSeedBuffer = bitbox.Mnemonic.toSeed(fixture.mnemonic) - const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) - const childHDNode = bitbox.HDNode.derivePath(hdNode, "0") - const addy = bitbox.HDNode.toCashAddress(childHDNode) + describe("#toCashAddress", (): void => { + fixtures.toCashAddress.forEach((fixture: any): void => { + it(`should get address ${fixture.address} from HDNode`, (): void => { + const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(fixture.mnemonic) + const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const childHDNode: bcl.HDNode = bitbox.HDNode.derivePath(hdNode, "0") + const addy: string = bitbox.HDNode.toCashAddress(childHDNode) assert.equal(addy, fixture.address) }) - it(`should get address ${fixture.regtestAddress} from HDNode`, () => { - const rootSeedBuffer = bitbox.Mnemonic.toSeed(fixture.mnemonic) - const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) - const childHDNode = bitbox.HDNode.derivePath(hdNode, "0") - const addr = bitbox.HDNode.toCashAddress(childHDNode, true) + it(`should get address ${fixture.regtestAddress} from HDNode`, (): void => { + const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(fixture.mnemonic) + const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const childHDNode: bcl.HDNode = bitbox.HDNode.derivePath(hdNode, "0") + const addr: string = bitbox.HDNode.toCashAddress(childHDNode, true) assert.equal(addr, fixture.regtestAddress) }) }) }) - describe("#toWIF", () => { - fixtures.toWIF.forEach((fixture: any) => { + describe("#toWIF", (): void => { + fixtures.toWIF.forEach((fixture: any): void => { it(`should get privateKeyWIF ${ fixture.privateKeyWIF - } from HDNode`, () => { - const hdNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + } from HDNode`, (): void => { + const hdNode: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) assert.equal(bitbox.HDNode.toWIF(hdNode), fixture.privateKeyWIF) }) }) }) - describe("#toXPub", () => { - fixtures.toXPub.forEach((fixture: any) => { - it(`should create xpub ${fixture.xpub} from an HDNode`, () => { - const rootSeedBuffer = bitbox.Mnemonic.toSeed(fixture.mnemonic) - const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) - const xpub = bitbox.HDNode.toXPub(hdNode) + describe("#toXPub", (): void => { + fixtures.toXPub.forEach((fixture: any): void => { + it(`should create xpub ${fixture.xpub} from an HDNode`, (): void => { + const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(fixture.mnemonic) + const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const xpub: string = bitbox.HDNode.toXPub(hdNode) assert.equal(xpub, fixture.xpub) }) }) }) - describe("#toXPriv", () => { - fixtures.toXPriv.forEach((fixture: any) => { - it(`should create xpriv ${fixture.xpriv} from an HDNode`, () => { - const rootSeedBuffer = bitbox.Mnemonic.toSeed(fixture.mnemonic) - const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) - const xpriv = bitbox.HDNode.toXPriv(hdNode) + describe("#toXPriv", (): void => { + fixtures.toXPriv.forEach((fixture: any): void => { + it(`should create xpriv ${fixture.xpriv} from an HDNode`, (): void => { + const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(fixture.mnemonic) + const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const xpriv: string = bitbox.HDNode.toXPriv(hdNode) assert.equal(xpriv, fixture.xpriv) }) }) }) - describe("#toKeyPair", () => { - fixtures.toKeyPair.forEach((fixture: any) => { - it(`should get ECPair from an HDNode`, () => { - const rootSeedBuffer = bitbox.Mnemonic.toSeed(fixture.mnemonic) - const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) - const keyPair = bitbox.HDNode.toKeyPair(hdNode) + describe("#toKeyPair", (): void => { + fixtures.toKeyPair.forEach((fixture: any): void => { + it(`should get ECPair from an HDNode`, (): void => { + const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(fixture.mnemonic) + const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(hdNode) assert.equal(typeof keyPair, "object") }) }) }) - describe("#toPublicKey", () => { - fixtures.toPublicKey.forEach((fixture: any) => { - it(`should create public key buffer from an HDNode`, () => { - const rootSeedBuffer = bitbox.Mnemonic.toSeed(fixture.mnemonic) - const hdNode = bitbox.HDNode.fromSeed(rootSeedBuffer) - const publicKeyBuffer = bitbox.HDNode.toPublicKey(hdNode) + describe("#toPublicKey", (): void => { + fixtures.toPublicKey.forEach((fixture: any): void => { + it(`should create public key buffer from an HDNode`, (): void => { + const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(fixture.mnemonic) + const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const publicKeyBuffer: any = bitbox.HDNode.toPublicKey(hdNode) assert.equal(typeof publicKeyBuffer, "object") }) }) }) - describe("#fromXPriv", () => { - fixtures.fromXPriv.forEach((fixture: any) => { - const hdNode = bitbox.HDNode.fromXPriv(fixture.xpriv) - it(`should create HDNode from xpriv ${fixture.xpriv}`, () => { + describe("#fromXPriv", (): any => { + fixtures.fromXPriv.forEach((fixture: any): any => { + const hdNode: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + it(`should create HDNode from xpriv ${fixture.xpriv}`, (): any => { assert.notEqual(hdNode, null) }) - it(`should export xpriv ${fixture.xpriv}`, () => { + it(`should export xpriv ${fixture.xpriv}`, (): any => { assert.equal(bitbox.HDNode.toXPriv(hdNode), fixture.xpriv) }) - it(`should export xpub ${fixture.xpub}`, () => { + it(`should export xpub ${fixture.xpub}`, (): any => { assert.equal(bitbox.HDNode.toXPub(hdNode), fixture.xpub) }) - it(`should export legacy address ${fixture.legacy}`, () => { + it(`should export legacy address ${fixture.legacy}`, (): any => { assert.equal(bitbox.HDNode.toLegacyAddress(hdNode), fixture.legacy) }) - it(`should export cashaddress ${fixture.cashaddress}`, () => { + it(`should export cashaddress ${fixture.cashaddress}`, (): any => { assert.equal(bitbox.HDNode.toCashAddress(hdNode), fixture.cashaddress) }) - it(`should export regtest cashaddress ${fixture.regtestaddress}`, () => { + it(`should export regtest cashaddress ${fixture.regtestaddress}`, (): any => { assert.equal( bitbox.HDNode.toCashAddress(hdNode, true), fixture.regtestaddress ) }) - it(`should export privateKeyWIF ${fixture.privateKeyWIF}`, () => { + it(`should export privateKeyWIF ${fixture.privateKeyWIF}`, (): any => { assert.equal(bitbox.HDNode.toWIF(hdNode), fixture.privateKeyWIF) }) }) }) - describe("#fromXPub", () => { - fixtures.fromXPub.forEach((fixture: any) => { - const hdNode = bitbox.HDNode.fromXPub(fixture.xpub) - it(`should create HDNode from xpub ${fixture.xpub}`, () => { + describe("#fromXPub", (): any => { + fixtures.fromXPub.forEach((fixture: any): any => { + const hdNode: bcl.HDNode = bitbox.HDNode.fromXPub(fixture.xpub) + it(`should create HDNode from xpub ${fixture.xpub}`, (): any => { assert.notEqual(hdNode, null) }) - it(`should export xpub ${fixture.xpub}`, () => { + it(`should export xpub ${fixture.xpub}`, (): any => { assert.equal(bitbox.HDNode.toXPub(hdNode), fixture.xpub) }) - it(`should export legacy address ${fixture.legacy}`, () => { + it(`should export legacy address ${fixture.legacy}`, (): any => { assert.equal(bitbox.HDNode.toLegacyAddress(hdNode), fixture.legacy) }) - it(`should export cashaddress ${fixture.cashaddress}`, () => { + it(`should export cashaddress ${fixture.cashaddress}`, (): any => { assert.equal(bitbox.HDNode.toCashAddress(hdNode), fixture.cashaddress) }) - it(`should export regtest cashaddress ${fixture.regtestaddress}`, () => { + it(`should export regtest cashaddress ${fixture.regtestaddress}`, (): any => { assert.equal( bitbox.HDNode.toCashAddress(hdNode, true), fixture.regtestaddress @@ -252,32 +256,32 @@ describe("#HDNode", () => { }) }) - describe("#bip32", () => { - describe("create accounts and addresses", () => { - fixtures.accounts.forEach((fixture: any) => { - const seedBuffer = bitbox.Mnemonic.toSeed(fixture.mnemonic) - const hdNode = bitbox.HDNode.fromSeed(seedBuffer) - const a = bitbox.HDNode.derivePath(hdNode, "0'") - const external = bitbox.HDNode.derivePath(a, "0") - const account = bitbox.HDNode.createAccount([external]) + describe("#bip32", (): any => { + describe("create accounts and addresses", (): any => { + fixtures.accounts.forEach((fixture: any): any => { + const seedBuffer: any = bitbox.Mnemonic.toSeed(fixture.mnemonic) + const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(seedBuffer) + const a: bcl.HDNode = bitbox.HDNode.derivePath(hdNode, "0'") + const external: bcl.HDNode = bitbox.HDNode.derivePath(a, "0") + const account: any = bitbox.HDNode.createAccount([external]) - it(`#createAccount`, () => { + it(`#createAccount`, (): void => { assert.notEqual(account, null) }) - describe("#getChainAddress", () => { + describe("#getChainAddress", (): void => { const external1 = bitbox.Address.toCashAddress( account.getChainAddress(0) ) - it(`should create external change address ${external1}`, () => { + it(`should create external change address ${external1}`, (): void => { assert.equal(external1, fixture.externals[0]) }) }) - describe("#nextChainAddress", () => { - for (let i = 0; i < 4; i++) { - const ex = bitbox.Address.toCashAddress(account.nextChainAddress(0)) - it(`should create external change address ${ex}`, () => { + describe("#nextChainAddress", (): void => { + for (let i: number = 0; i < 4; i++) { + const ex: string = bitbox.Address.toCashAddress(account.nextChainAddress(0)) + it(`should create external change address ${ex}`, (): void => { assert.equal(ex, fixture.externals[i + 1]) }) } @@ -286,69 +290,69 @@ describe("#HDNode", () => { }) }) - describe("#sign", () => { - fixtures.sign.forEach((fixture: any) => { - it(`should sign 32 byte hash buffer`, () => { - const hdnode = bitbox.HDNode.fromXPriv(fixture.privateKeyWIF) - const buf = Buffer.from(bitbox.Crypto.sha256(fixture.data), "hex") - const signatureBuf = bitbox.HDNode.sign(hdnode, buf) + describe("#sign", (): void => { + fixtures.sign.forEach((fixture: any): void => { + it(`should sign 32 byte hash buffer`, (): void => { + const hdnode: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.privateKeyWIF) + const buf: Buffer = Buffer.from(bitbox.Crypto.sha256(fixture.data), "hex") + const signatureBuf: any = bitbox.HDNode.sign(hdnode, buf) assert.equal(typeof signatureBuf, "object") }) }) }) - describe("#verify", () => { - fixtures.verify.forEach((fixture: any) => { - it(`should verify signed 32 byte hash buffer`, () => { - const hdnode1 = bitbox.HDNode.fromXPriv(fixture.privateKeyWIF1) - const buf = Buffer.from(bitbox.Crypto.sha256(fixture.data), "hex") - const signature = bitbox.HDNode.sign(hdnode1, buf) - const verify = bitbox.HDNode.verify(hdnode1, buf, signature) + describe("#verify", (): void => { + fixtures.verify.forEach((fixture: any): void => { + it(`should verify signed 32 byte hash buffer`, (): void => { + const hdnode1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.privateKeyWIF1) + const buf: Buffer = Buffer.from(bitbox.Crypto.sha256(fixture.data), "hex") + const signature: Buffer = bitbox.HDNode.sign(hdnode1, buf) + const verify: boolean = bitbox.HDNode.verify(hdnode1, buf, signature) assert.equal(verify, true) }) }) }) - describe("#isPublic", () => { - fixtures.isPublic.forEach((fixture: any) => { - it(`should verify hdnode is public`, () => { - const node = bitbox.HDNode.fromXPub(fixture.xpub) + describe("#isPublic", (): void => { + fixtures.isPublic.forEach((fixture: any): void => { + it(`should verify hdnode is public`, (): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPub(fixture.xpub) assert.equal(bitbox.HDNode.isPublic(node), true) }) }) - fixtures.isPublic.forEach((fixture: any) => { - it(`should verify hdnode is not public`, () => { - const node = bitbox.HDNode.fromXPriv(fixture.xpriv) + fixtures.isPublic.forEach((fixture: any): void => { + it(`should verify hdnode is not public`, (): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) assert.equal(bitbox.HDNode.isPublic(node), false) }) }) }) - describe("#isPrivate", () => { - fixtures.isPrivate.forEach((fixture: any) => { - it(`should verify hdnode is not private`, () => { - const node = bitbox.HDNode.fromXPub(fixture.xpub) + describe("#isPrivate", (): void => { + fixtures.isPrivate.forEach((fixture: any): void => { + it(`should verify hdnode is not private`, (): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPub(fixture.xpub) assert.equal(bitbox.HDNode.isPrivate(node), false) }) }) - fixtures.isPrivate.forEach((fixture: any) => { - it(`should verify hdnode is private`, () => { - const node = bitbox.HDNode.fromXPriv(fixture.xpriv) + fixtures.isPrivate.forEach((fixture: any): void => { + it(`should verify hdnode is private`, (): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) assert.equal(bitbox.HDNode.isPrivate(node), true) }) }) }) - describe("#toIdentifier", () => { - fixtures.toIdentifier.forEach((fixture: any) => { - it(`should get identifier of hdnode`, () => { - const node = bitbox.HDNode.fromXPriv(fixture.xpriv) - const publicKeyBuffer = bitbox.HDNode.toPublicKey(node) - const hash160 = bitbox.Crypto.hash160(publicKeyBuffer) - const identifier = bitbox.HDNode.toIdentifier(node) - assert.equal(identifier.toString("hex"), hash160.toString("hex")) + describe("#toIdentifier", (): void => { + fixtures.toIdentifier.forEach((fixture: any): void => { + it(`should get identifier of hdnode`, (): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const publicKeyBuffer: any = bitbox.HDNode.toPublicKey(node) + const hash160: Buffer = bitbox.Crypto.hash160(publicKeyBuffer) + const identifier: string = bitbox.HDNode.toIdentifier(node) + assert.equal(identifier, hash160.toString("hex")) }) }) }) diff --git a/test/unit/Mining.ts b/test/unit/Mining.ts index 59fc99ec..1a797730 100644 --- a/test/unit/Mining.ts +++ b/test/unit/Mining.ts @@ -1,27 +1,28 @@ +// imports import * as assert from "assert"; import axios from "axios"; import * as sinon from "sinon"; +import { BITBOX } from "../../lib/BITBOX" +import { Mining } from "../../lib/Mining" +import { resturl } from "../../lib/BITBOX" -// TODO: port from require to import syntax -const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() -const Mining = require("../../lib/Mining").Mining -const resturl = require("../../lib/BITBOX").resturl +// consts +const bitbox: BITBOX = new BITBOX() -describe("#Mining", () => { - describe("#MiningConstructor", () => { - it("should create instance of Mining", () => { - const mining = new Mining() +describe("#Mining", (): void => { + describe("#MiningConstructor", (): void => { + it("should create instance of Mining", (): void => { + const mining: Mining = new Mining() assert.equal(mining instanceof Mining, true) }) - it("should have a restURL property", () => { - const mining = new Mining() + it("should have a restURL property", (): void => { + const mining: Mining = new Mining() assert.equal(mining.restURL, resturl) }) }) - describe("#getBlockTemplate", () => { + describe("#getBlockTemplate", (): void => { let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) @@ -50,7 +51,7 @@ describe("#Mining", () => { }) }) - describe("#getMiningInfo", () => { + describe("#getMiningInfo", (): void => { let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) @@ -79,13 +80,13 @@ describe("#Mining", () => { }) }) - describe("#getNetworkHashps", () => { + describe("#getNetworkHashps", (): void => { let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) it("should get network hashps", done => { - const data = 3586365937646890000 + const data: number = 3586365937646890000 const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) @@ -98,18 +99,19 @@ describe("#Mining", () => { }) }) - describe("#submitBlock", () => { + describe("#submitBlock", (): void => { // TODO finish let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) it("should TODO", done => { - const data = {} + const data: any = {} const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "post").returns(resolved) + // @ts-ignore bitbox.Mining.submitBlock() .then((result: any) => { assert.deepEqual(data, result) diff --git a/test/unit/Mnemonic.ts b/test/unit/Mnemonic.ts index 6fb7407b..aa5de567 100644 --- a/test/unit/Mnemonic.ts +++ b/test/unit/Mnemonic.ts @@ -1,47 +1,50 @@ +// imports import * as assert from "assert"; +import { BITBOX } from "../../lib/BITBOX" +import { Mnemonic } from "../../lib/Mnemonic" + +// consts +const bitbox: BITBOX = new BITBOX() // TODO: port from require to import syntax const fixtures = require("./fixtures/Mnemonic.json") -const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() -const Mnemonic = require("../../lib/Mnemonic").Mnemonic - -describe("#Mnemonic", () => { - describe("#MnemonicConstructor", () => { - it("should create instance of Mnemonic", () => { - const mnemonic = new Mnemonic() + +describe("#Mnemonic", (): void => { + describe("#MnemonicConstructor", (): void => { + it("should create instance of Mnemonic", (): void => { + const mnemonic: Mnemonic = new Mnemonic() assert.equal(mnemonic instanceof Mnemonic, true) }) }) - describe("#generate", () => { - it("should generate a 12 word mnemonic", () => { - const mnemonic = bitbox.Mnemonic.generate(128) + describe("#generate", (): void => { + it("should generate a 12 word mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(128) assert.equal(mnemonic.split(" ").length, 12) }) - it("should generate a 15 word mnemonic", () => { - const mnemonic = bitbox.Mnemonic.generate(160) + it("should generate a 15 word mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(160) assert.equal(mnemonic.split(" ").length, 15) }) - it("should generate a 18 word mnemonic", () => { - const mnemonic = bitbox.Mnemonic.generate(192) + it("should generate a 18 word mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(192) assert.equal(mnemonic.split(" ").length, 18) }) - it("should generate an 21 word mnemonic", () => { - const mnemonic = bitbox.Mnemonic.generate(224) + it("should generate an 21 word mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(224) assert.equal(mnemonic.split(" ").length, 21) }) - it("should generate an 24 word mnemonic", () => { - const mnemonic = bitbox.Mnemonic.generate(256) + it("should generate an 24 word mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(256) assert.equal(mnemonic.split(" ").length, 24) }) - it("should generate an 24 word italian mnemonic", () => { - const mnemonic = bitbox.Mnemonic.generate( + it("should generate an 24 word italian mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate( 256, bitbox.Mnemonic.wordLists().italian ) @@ -49,107 +52,107 @@ describe("#Mnemonic", () => { }) }) - describe("#fromEntropy", () => { - it("should generate a 12 word mnemonic from 16 bytes of entropy", () => { - const rand = bitbox.Crypto.randomBytes(16) - const mnemonic = bitbox.Mnemonic.fromEntropy(rand.toString("hex")) + describe("#fromEntropy", (): void => { + it("should generate a 12 word mnemonic from 16 bytes of entropy", (): void => { + const rand: Buffer = bitbox.Crypto.randomBytes(16) + const mnemonic: string = bitbox.Mnemonic.fromEntropy(rand.toString("hex")) assert.equal(mnemonic.split(" ").length, 12) }) - it("should generate a 15 word mnemonic from 20 bytes of entropy", () => { - const rand = bitbox.Crypto.randomBytes(20) - const mnemonic = bitbox.Mnemonic.fromEntropy(rand.toString("hex")) + it("should generate a 15 word mnemonic from 20 bytes of entropy", (): void => { + const rand: Buffer = bitbox.Crypto.randomBytes(20) + const mnemonic: string = bitbox.Mnemonic.fromEntropy(rand.toString("hex")) assert.equal(mnemonic.split(" ").length, 15) }) - it("should generate an 18 word mnemonic from 24 bytes of entropy", () => { - const rand = bitbox.Crypto.randomBytes(24) - const mnemonic = bitbox.Mnemonic.fromEntropy(rand.toString("hex")) + it("should generate an 18 word mnemonic from 24 bytes of entropy", (): void => { + const rand: Buffer = bitbox.Crypto.randomBytes(24) + const mnemonic: string = bitbox.Mnemonic.fromEntropy(rand.toString("hex")) assert.equal(mnemonic.split(" ").length, 18) }) - it("should generate an 21 word mnemonic from 28 bytes of entropy", () => { - const rand = bitbox.Crypto.randomBytes(28) - const mnemonic = bitbox.Mnemonic.fromEntropy(rand.toString("hex")) + it("should generate an 21 word mnemonic from 28 bytes of entropy", (): void => { + const rand: Buffer = bitbox.Crypto.randomBytes(28) + const mnemonic: string = bitbox.Mnemonic.fromEntropy(rand.toString("hex")) assert.equal(mnemonic.split(" ").length, 21) }) - it("should generate an 24 word mnemonic from 32 bytes of entropy", () => { - const rand = bitbox.Crypto.randomBytes(32) - const mnemonic = bitbox.Mnemonic.fromEntropy(rand.toString("hex")) + it("should generate an 24 word mnemonic from 32 bytes of entropy", (): void => { + const rand: Buffer = bitbox.Crypto.randomBytes(32) + const mnemonic: string = bitbox.Mnemonic.fromEntropy(rand.toString("hex")) assert.equal(mnemonic.split(" ").length, 24) }) - it("should generate an 24 french word mnemonic 32 bytes of entropy", () => { - const rand = bitbox.Crypto.randomBytes(32) - const mnemonic = bitbox.Mnemonic.fromEntropy( + it("should generate an 24 french word mnemonic 32 bytes of entropy", (): void => { + const rand: Buffer = bitbox.Crypto.randomBytes(32) + const mnemonic: string = bitbox.Mnemonic.fromEntropy( rand.toString("hex"), bitbox.Mnemonic.wordLists().french ) assert.equal(mnemonic.split(" ").length, 24) }) - fixtures.fromEntropy.forEach((entropy: any) => { - const mnemonic = bitbox.Mnemonic.fromEntropy(entropy.entropy) - it(`should convert ${entropy.entropy} to ${entropy.mnemonic}`, () => { + fixtures.fromEntropy.forEach((entropy: any): void => { + const mnemonic: string = bitbox.Mnemonic.fromEntropy(entropy.entropy) + it(`should convert ${entropy.entropy} to ${entropy.mnemonic}`, (): void => { assert.equal(mnemonic, entropy.mnemonic) }) }) }) - describe("#toEntropy", () => { - it("should turn a 12 word mnemonic to entropy", () => { - const mnemonic = bitbox.Mnemonic.generate(128) - const entropy = bitbox.Mnemonic.toEntropy(mnemonic) + describe("#toEntropy", (): void => { + it("should turn a 12 word mnemonic to entropy", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(128) + const entropy: Buffer = bitbox.Mnemonic.toEntropy(mnemonic) assert.equal(entropy.length, 16) }) - it("should turn a 15 word mnemonic to entropy", () => { - const mnemonic = bitbox.Mnemonic.generate(160) - const entropy = bitbox.Mnemonic.toEntropy(mnemonic) + it("should turn a 15 word mnemonic to entropy", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(160) + const entropy: Buffer = bitbox.Mnemonic.toEntropy(mnemonic) assert.equal(entropy.length, 20) }) - it("should turn a 18 word mnemonic to entropy", () => { - const mnemonic = bitbox.Mnemonic.generate(192) - const entropy = bitbox.Mnemonic.toEntropy(mnemonic) + it("should turn a 18 word mnemonic to entropy", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(192) + const entropy: Buffer = bitbox.Mnemonic.toEntropy(mnemonic) assert.equal(entropy.length, 24) }) - it("should turn a 21 word mnemonic to entropy", () => { - const mnemonic = bitbox.Mnemonic.generate(224) - const entropy = bitbox.Mnemonic.toEntropy(mnemonic) + it("should turn a 21 word mnemonic to entropy", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(224) + const entropy: Buffer = bitbox.Mnemonic.toEntropy(mnemonic) assert.equal(entropy.length, 28) }) - it("should turn a 24 word mnemonic to entropy", () => { - const mnemonic = bitbox.Mnemonic.generate(256) - const entropy = bitbox.Mnemonic.toEntropy(mnemonic) + it("should turn a 24 word mnemonic to entropy", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(256) + const entropy: Buffer = bitbox.Mnemonic.toEntropy(mnemonic) assert.equal(entropy.length, 32) }) - it("should turn a 24 word spanish mnemonic to entropy", () => { - const mnemonic = bitbox.Mnemonic.generate( + it("should turn a 24 word spanish mnemonic to entropy", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate( 256, bitbox.Mnemonic.wordLists().spanish ) - const entropy = bitbox.Mnemonic.toEntropy( + const entropy: Buffer = bitbox.Mnemonic.toEntropy( mnemonic, bitbox.Mnemonic.wordLists().spanish ) assert.equal(entropy.length, 32) }) - fixtures.fromEntropy.forEach((fixture: any) => { - const entropy = bitbox.Mnemonic.toEntropy(fixture.mnemonic) - it(`should convert ${fixture.mnemonic} to ${fixture.entropy}`, () => { + fixtures.fromEntropy.forEach((fixture: any): void => { + const entropy: Buffer = bitbox.Mnemonic.toEntropy(fixture.mnemonic) + it(`should convert ${fixture.mnemonic} to ${fixture.entropy}`, (): void => { assert.equal(entropy.toString("hex"), fixture.entropy) }) }) }) - describe("#validate", () => { - it("fails for a mnemonic that is too short", () => { + describe("#validate", (): void => { + it("fails for a mnemonic that is too short", (): void => { assert.equal( bitbox.Mnemonic.validate( "mixed winner", @@ -159,7 +162,7 @@ describe("#Mnemonic", () => { ) }) - it("fails for a mnemonic that is too long", () => { + it("fails for a mnemonic that is too long", (): void => { assert.equal( bitbox.Mnemonic.validate( "mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake", @@ -169,7 +172,7 @@ describe("#Mnemonic", () => { ) }) - it("fails if mnemonic words are not in the word list", () => { + it("fails if mnemonic words are not in the word list", (): void => { assert.equal( bitbox.Mnemonic.validate( "failsauce one two three four five six seven eight nine ten eleven", @@ -179,48 +182,48 @@ describe("#Mnemonic", () => { ) }) - it("validate a 128 bit mnemonic", () => { - const mnemonic = bitbox.Mnemonic.generate(128) + it("validate a 128 bit mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(128) assert.equal( bitbox.Mnemonic.validate(mnemonic, bitbox.Mnemonic.wordLists().english), "Valid mnemonic" ) }) - it("validate a 160 bit mnemonic", () => { - const mnemonic = bitbox.Mnemonic.generate(160) + it("validate a 160 bit mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(160) assert.equal( bitbox.Mnemonic.validate(mnemonic, bitbox.Mnemonic.wordLists().english), "Valid mnemonic" ) }) - it("validate a 192 bit mnemonic", () => { - const mnemonic = bitbox.Mnemonic.generate(192) + it("validate a 192 bit mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(192) assert.equal( bitbox.Mnemonic.validate(mnemonic, bitbox.Mnemonic.wordLists().english), "Valid mnemonic" ) }) - it("validate a 224 bit mnemonic", () => { - const mnemonic = bitbox.Mnemonic.generate(224) + it("validate a 224 bit mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(224) assert.equal( bitbox.Mnemonic.validate(mnemonic, bitbox.Mnemonic.wordLists().english), "Valid mnemonic" ) }) - it("validate a 256 bit mnemonic", () => { - const mnemonic = bitbox.Mnemonic.generate(256) + it("validate a 256 bit mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(256) assert.equal( bitbox.Mnemonic.validate(mnemonic, bitbox.Mnemonic.wordLists().english), "Valid mnemonic" ) }) - it("validate a 256 bit chinese simplified mnemonic", () => { - const mnemonic = bitbox.Mnemonic.generate( + it("validate a 256 bit chinese simplified mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate( 256, bitbox.Mnemonic.wordLists().chinese_simplified ) @@ -234,77 +237,77 @@ describe("#Mnemonic", () => { }) }) - describe("#toSeed", () => { - it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 128 bit mnemonic", () => { - const mnemonic = bitbox.Mnemonic.generate(128) - const rootSeedBuffer = bitbox.Mnemonic.toSeed(mnemonic, "") + describe("#toSeed", (): void => { + it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 128 bit mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(128) + const rootSeedBuffer: Buffer = bitbox.Mnemonic.toSeed(mnemonic, "") assert.equal(rootSeedBuffer.byteLength, 64) }) - it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 160 bit mnemonic", () => { - const mnemonic = bitbox.Mnemonic.generate(160) - const rootSeedBuffer = bitbox.Mnemonic.toSeed(mnemonic, "") + it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 160 bit mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(160) + const rootSeedBuffer: Buffer = bitbox.Mnemonic.toSeed(mnemonic, "") assert.equal(rootSeedBuffer.byteLength, 64) }) - it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 192 bit mnemonic", () => { - const mnemonic = bitbox.Mnemonic.generate(192) - const rootSeedBuffer = bitbox.Mnemonic.toSeed(mnemonic, "") + it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 192 bit mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(192) + const rootSeedBuffer: Buffer = bitbox.Mnemonic.toSeed(mnemonic, "") assert.equal(rootSeedBuffer.byteLength, 64) }) - it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 224 bit mnemonic", () => { - const mnemonic = bitbox.Mnemonic.generate(224) - const rootSeedBuffer = bitbox.Mnemonic.toSeed(mnemonic, "") + it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 224 bit mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(224) + const rootSeedBuffer: Buffer = bitbox.Mnemonic.toSeed(mnemonic, "") assert.equal(rootSeedBuffer.byteLength, 64) }) - it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 256 bit mnemonic", () => { - const mnemonic = bitbox.Mnemonic.generate(256) - const rootSeedBuffer = bitbox.Mnemonic.toSeed(mnemonic, "") + it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 256 bit mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(256) + const rootSeedBuffer: Buffer = bitbox.Mnemonic.toSeed(mnemonic, "") assert.equal(rootSeedBuffer.byteLength, 64) }) }) - describe("#wordLists", () => { - it("return a list of 2048 english words", () => { + describe("#wordLists", (): void => { + it("return a list of 2048 english words", (): void => { assert.equal(bitbox.Mnemonic.wordLists().english.length, 2048) }) - it("return a list of 2048 japanese words", () => { + it("return a list of 2048 japanese words", (): void => { assert.equal(bitbox.Mnemonic.wordLists().japanese.length, 2048) }) - it("return a list of 2048 chinese simplified words", () => { + it("return a list of 2048 chinese simplified words", (): void => { assert.equal(bitbox.Mnemonic.wordLists().chinese_simplified.length, 2048) }) - it("return a list of 2048 chinese traditional words", () => { + it("return a list of 2048 chinese traditional words", (): void => { assert.equal(bitbox.Mnemonic.wordLists().chinese_traditional.length, 2048) }) - it("return a list of 2048 french words", () => { + it("return a list of 2048 french words", (): void => { assert.equal(bitbox.Mnemonic.wordLists().french.length, 2048) }) - it("return a list of 2048 italian words", () => { + it("return a list of 2048 italian words", (): void => { assert.equal(bitbox.Mnemonic.wordLists().italian.length, 2048) }) - it("return a list of 2048 korean words", () => { + it("return a list of 2048 korean words", (): void => { assert.equal(bitbox.Mnemonic.wordLists().korean.length, 2048) }) - it("return a list of 2048 spanish words", () => { + it("return a list of 2048 spanish words", (): void => { assert.equal(bitbox.Mnemonic.wordLists().spanish.length, 2048) }) }) - describe("#toKeypairs", () => { - fixtures.toKeypairs.forEach((fixture: any, i: number) => { - const keypairs = bitbox.Mnemonic.toKeypairs(fixture.mnemonic, 5) - keypairs.forEach((keypair: any, j: number) => { - it(`Generate keypair from mnemonic`, () => { + describe("#toKeypairs", (): void => { + fixtures.toKeypairs.forEach((fixture: any, i: number): void => { + const keypairs: any = bitbox.Mnemonic.toKeypairs(fixture.mnemonic, 5) + keypairs.forEach((keypair: any, j: number): void => { + it(`Generate keypair from mnemonic`, (): void => { assert.equal( keypair.privateKeyWIF, fixtures.toKeypairs[i].output[j].privateKeyWIF @@ -316,13 +319,13 @@ describe("#Mnemonic", () => { }) }) - const regtestKeypairs = bitbox.Mnemonic.toKeypairs( + const regtestKeypairs: any = bitbox.Mnemonic.toKeypairs( fixture.mnemonic, 5, true ) - regtestKeypairs.forEach((keypair: any, j: number) => { - it(`Generate keypair from mnemonic`, () => { + regtestKeypairs.forEach((keypair: any, j: number): void => { + it(`Generate keypair from mnemonic`, (): void => { assert.equal( keypair.privateKeyWIF, fixtures.toKeypairs[i].output[j].privateKeyWIFRegTest @@ -336,15 +339,15 @@ describe("#Mnemonic", () => { }) }) - describe("#findNearestWord", () => { - fixtures.findNearestWord.forEach((fixture: any) => { - const word = bitbox.Mnemonic.findNearestWord( + describe("#findNearestWord", (): void => { + fixtures.findNearestWord.forEach((fixture: any): void => { + const word: string = bitbox.Mnemonic.findNearestWord( fixture.word, bitbox.Mnemonic.wordLists()[fixture.language] ) it(`find word ${fixture.foundWord} near ${fixture.word} in ${ fixture.language - }`, () => { + }`, (): void => { assert.equal(word, fixture.foundWord) }) }) diff --git a/test/unit/Price.ts b/test/unit/Price.ts index 6ac92209..0b2054cb 100644 --- a/test/unit/Price.ts +++ b/test/unit/Price.ts @@ -1,22 +1,21 @@ +// imports import * as assert from "assert"; -import axios from "axios"; -import * as sinon from "sinon"; +import { BITBOX } from "../../lib/BITBOX" +import { Price } from "../../lib/Price" -// TODO: port from require to import syntax -const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() -const Price = require("../../lib/Price").Price +// consts +const bitbox: BITBOX = new BITBOX() -describe("#Price", () => { - describe("#PriceConstructor", () => { - it("should create instance of Price", () => { - const price = new Price() +describe("#Price", (): void => { + describe("#PriceConstructor", (): void => { + it("should create instance of Price", (): void => { + const price: Price = new Price() assert.equal(price instanceof Price, true) }) }) - describe("#current", () => { - describe("#single currency", () => { + describe("#current", (): void => { + describe("#single currency", (): void => { it("should get current price for single currency", async () => { const result = await bitbox.Price.current("usd") assert.notEqual(0, result) diff --git a/test/unit/RawTransactions.js b/test/unit/RawTransactions.js index 4550406f..0ca52f47 100644 --- a/test/unit/RawTransactions.js +++ b/test/unit/RawTransactions.js @@ -36,32 +36,26 @@ var __generator = (this && this.__generator) || function (thisArg, body) { }; var _this = this; Object.defineProperty(exports, "__esModule", { value: true }); -/* - TODO: - -Replace old unit tests mocking axios with the more generalized nock library. - See the sendRawTransaction test for an example. - -Create a mocking library of data to compare unit and integration tests. -*/ +// imports var chai = require("chai"); +var BITBOX_1 = require("../../lib/BITBOX"); +var RawTransactions_1 = require("../../lib/RawTransactions"); +var BITBOX_2 = require("../../lib/BITBOX"); +var util = require("util"); +// consts +var bitbox = new BITBOX_1.BITBOX(); var assert = chai.assert; -// TODO: port from require to import syntax -var BITBOX = require("../../lib/BITBOX").BITBOX; -var bitbox = new BITBOX(); -var RawTransactions = require("../../lib/RawTransactions").RawTransactions; -var resturl = require("../../lib/BITBOX").resturl; -var nock = require("nock"); // HTTP mocking // Used for debugging -var util = require("util"); util.inspect.defaultOptions = { depth: 1 }; describe("#RawTransactions", function () { describe("#RawTransactionsConstructor", function () { it("should create instance of RawTransactions", function () { - var rawtransactions = new RawTransactions(); - assert.equal(rawtransactions instanceof RawTransactions, true); + var rawtransactions = new RawTransactions_1.RawTransactions(); + assert.equal(rawtransactions instanceof RawTransactions_1.RawTransactions, true); }); it("should have a restURL property", function () { - var rawtransactions = new RawTransactions(); - assert.equal(rawtransactions.restURL, resturl); + var rawtransactions = new RawTransactions_1.RawTransactions(); + assert.equal(rawtransactions.restURL, BITBOX_2.resturl); }); }); describe("#decodeRawTransaction", function () { diff --git a/test/unit/RawTransactions.ts b/test/unit/RawTransactions.ts index d84705ef..08348cae 100644 --- a/test/unit/RawTransactions.ts +++ b/test/unit/RawTransactions.ts @@ -1,39 +1,33 @@ -/* - TODO: - -Replace old unit tests mocking axios with the more generalized nock library. - See the sendRawTransaction test for an example. - -Create a mocking library of data to compare unit and integration tests. -*/ +// imports import * as chai from "chai" -const assert = chai.assert +import { BITBOX } from "../../lib/BITBOX" +import { RawTransactions } from "../../lib/RawTransactions" +import { resturl } from "../../lib/BITBOX" +import * as util from 'util' -// TODO: port from require to import syntax -const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() -const RawTransactions = require("../../lib/RawTransactions").RawTransactions -const resturl = require("../../lib/BITBOX").resturl -const nock = require("nock") // HTTP mocking +// consts +const bitbox: BITBOX = new BITBOX() +const assert: Chai.AssertStatic = chai.assert // Used for debugging -const util = require("util") util.inspect.defaultOptions = { depth: 1 } -describe("#RawTransactions", () => { - describe("#RawTransactionsConstructor", () => { - it("should create instance of RawTransactions", () => { - const rawtransactions = new RawTransactions() +describe("#RawTransactions", (): void => { + describe("#RawTransactionsConstructor", (): void => { + it("should create instance of RawTransactions", (): void => { + const rawtransactions: RawTransactions = new RawTransactions() assert.equal(rawtransactions instanceof RawTransactions, true) }) - it("should have a restURL property", () => { - const rawtransactions = new RawTransactions() + it("should have a restURL property", (): void => { + const rawtransactions: RawTransactions = new RawTransactions() assert.equal(rawtransactions.restURL, resturl) }) }) - describe("#decodeRawTransaction", () => { + describe("#decodeRawTransaction", (): void => { it("should decode tx for a single hex", async () => { - const hex = + const hex: string = "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" const result = await bitbox.RawTransactions.decodeRawTransaction(hex) @@ -53,7 +47,7 @@ describe("#RawTransactions", () => { }) it("should decode an array of tx hexes", async () => { - const hexes = [ + const hexes: string[] = [ "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000", "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" ] @@ -77,7 +71,7 @@ describe("#RawTransactions", () => { it(`should throw an error for improper single input`, async () => { try { - const addr = 12345 + const addr: any = 12345 await bitbox.RawTransactions.decodeRawTransaction(addr) assert.equal(true, false, "Unexpected result!") @@ -92,8 +86,8 @@ describe("#RawTransactions", () => { it(`should throw error on array size rate limit`, async () => { try { - const data = [] - for (let i = 0; i < 25; i++) { + const data: string[] = [] + for (let i: number = 0; i < 25; i++) { data.push( "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" ) @@ -110,11 +104,11 @@ describe("#RawTransactions", () => { }) }) - describe("#getRawTransaction", () => { + describe("#getRawTransaction", (): void => { it("should decode a single txid, with concise output", async () => { - const txid = + const txid: string = "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" - const verbose = false + const verbose: boolean = false const result = await bitbox.RawTransactions.getRawTransaction( txid, @@ -126,9 +120,9 @@ describe("#RawTransactions", () => { }) it("should decode a single txid, with verbose output", async () => { - const txid = + const txid: string = "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" - const verbose = true + const verbose: boolean = true const result = await bitbox.RawTransactions.getRawTransaction( txid, @@ -155,11 +149,11 @@ describe("#RawTransactions", () => { }) it("should decode an array of txids, with a concise output", async () => { - const txid = [ + const txid: string[] = [ "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" ] - const verbose = false + const verbose: boolean = false const result = await bitbox.RawTransactions.getRawTransaction( txid, @@ -172,11 +166,11 @@ describe("#RawTransactions", () => { }) it("should decode an array of txids, with a verbose output", async () => { - const txid = [ + const txid: string[] = [ "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" ] - const verbose = true + const verbose: boolean = true const result = await bitbox.RawTransactions.getRawTransaction( txid, @@ -205,10 +199,10 @@ describe("#RawTransactions", () => { it(`should throw error on array size rate limit`, async () => { try { - const dataMock = + const dataMock: string = "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" - const data = [] - for (let i = 0; i < 25; i++) data.push(dataMock) + const data: string[] = [] + for (let i: number = 0; i < 25; i++) data.push(dataMock) const result = await bitbox.RawTransactions.getRawTransaction(data) @@ -223,7 +217,7 @@ describe("#RawTransactions", () => { describe("#decodeScript", () => { it("should decode script for a single hex", async () => { - const hex = + const hex: string = "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" const result = await bitbox.RawTransactions.decodeScript(hex) @@ -272,7 +266,7 @@ describe("#RawTransactions", () => { describe("sendRawTransaction", () => { it("should send a single transaction hex", async () => { try { - const hex = + const hex: string = "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" await bitbox.RawTransactions.sendRawTransaction(hex) @@ -289,7 +283,7 @@ describe("#RawTransactions", () => { it("should send an array of tx hexes", async () => { try { - const hexes = [ + const hexes: string[] = [ "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000", "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" ] @@ -306,7 +300,7 @@ describe("#RawTransactions", () => { it(`should throw an error for improper single input`, async () => { try { - const addr = 12345 + const addr: any = 12345 await bitbox.RawTransactions.sendRawTransaction(addr) assert.equal(true, false, "Unexpected result!") diff --git a/test/unit/Script.ts b/test/unit/Script.ts index 6efd933b..107614ae 100644 --- a/test/unit/Script.ts +++ b/test/unit/Script.ts @@ -1,25 +1,29 @@ +// imports import * as assert from "assert"; +import { BITBOX } from "../../lib/BITBOX" +import { Script } from "../../lib/Script" +import { Buffer } from "Buffer" +import * as bcl from "bitcoincashjs-lib" + +// consts +const bitbox: BITBOX = new BITBOX() // TODO: port from require to import syntax const fixtures = require("./fixtures/Script.json") -const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() -const Script = require("../../lib/Script").Script -const Buffer = require("safe-buffer").Buffer - -describe("#Script", () => { - describe("#ScriptConstructor", () => { - it("should create instance of Script", () => { - const script = new Script() + +describe("#Script", (): void => { + describe("#ScriptConstructor", (): void => { + it("should create instance of Script", (): void => { + const script: Script = new Script() assert.equal(script instanceof Script, true) }) }) - describe("#decode", () => { - describe("P2PKH scriptSig", () => { - fixtures.decodeScriptSig.forEach((fixture: any) => { - it(`should decode scriptSig buffer`, () => { - const decodedScriptSig = bitbox.Script.decode( + describe("#decode", (): void => { + describe("P2PKH scriptSig", (): void => { + fixtures.decodeScriptSig.forEach((fixture: any): void => { + it(`should decode scriptSig buffer`, (): void => { + const decodedScriptSig: any[] = bitbox.Script.decode( Buffer.from(fixture.scriptSigHex, "hex") ) assert.equal(typeof decodedScriptSig, "object") @@ -27,11 +31,11 @@ describe("#Script", () => { it(`should decode scriptSig buffer to cash address ${ fixture.cashAddress - }`, () => { - const decodedScriptSig = bitbox.Script.decode( + }`, (): void => { + const decodedScriptSig: any[] = bitbox.Script.decode( Buffer.from(fixture.scriptSigHex, "hex") ) - const address = bitbox.HDNode.toCashAddress( + const address: string = bitbox.HDNode.toCashAddress( bitbox.ECPair.fromPublicKey(decodedScriptSig[1]) ) assert.equal(address, fixture.cashAddress) @@ -39,11 +43,11 @@ describe("#Script", () => { it(`should decode scriptSig buffer to legacy address ${ fixture.legacyAddress - }`, () => { - const decodedScriptSig = bitbox.Script.decode( + }`, (): void => { + const decodedScriptSig: any[] = bitbox.Script.decode( Buffer.from(fixture.scriptSigHex, "hex") ) - const address = bitbox.HDNode.toLegacyAddress( + const address: string = bitbox.HDNode.toLegacyAddress( bitbox.ECPair.fromPublicKey(decodedScriptSig[1]) ) assert.equal(address, fixture.legacyAddress) @@ -51,48 +55,48 @@ describe("#Script", () => { }) }) - describe("P2PKH scriptPubKey", () => { - fixtures.decodeScriptPubKey.forEach((fixture: any) => { - it(`should decode scriptSig buffer`, () => { - const decodedScriptPubKey = bitbox.Script.decode( + describe("P2PKH scriptPubKey", (): void => { + fixtures.decodeScriptPubKey.forEach((fixture: any): void => { + it(`should decode scriptSig buffer`, (): void => { + const decodedScriptPubKey: any[] = bitbox.Script.decode( Buffer.from(fixture.scriptPubKeyHex, "hex") ) assert.equal(decodedScriptPubKey.length, 5) }) - it(`should match hashed pubKey ${fixture.pubKeyHex}`, () => { - const decodedScriptPubKey = bitbox.Script.decode( + it(`should match hashed pubKey ${fixture.pubKeyHex}`, (): void => { + const decodedScriptPubKey: any[] = bitbox.Script.decode( Buffer.from(fixture.scriptPubKeyHex, "hex") ) - const data = Buffer.from(fixture.pubKeyHex, "hex") - const hash160 = bitbox.Crypto.hash160(data).toString("hex") + const data: Buffer = Buffer.from(fixture.pubKeyHex, "hex") + const hash160: Buffer = bitbox.Crypto.hash160(data).toString("hex") assert.equal(decodedScriptPubKey[2].toString("hex"), hash160) }) }) }) }) - describe("#encode", () => { - describe("P2PKH scriptSig", () => { - fixtures.encodeScriptSig.forEach((fixture: any) => { - it(`should encode scriptSig chunks to buffer`, () => { - const arr = [ + describe("#encode", (): void => { + describe("P2PKH scriptSig", (): void => { + fixtures.encodeScriptSig.forEach((fixture: any): void => { + it(`should encode scriptSig chunks to buffer`, (): void => { + const arr: Buffer[] = [ Buffer.from(fixture.scriptSigChunks[0], "hex"), Buffer.from(fixture.scriptSigChunks[1], "hex") ] - const encodedScriptSig = bitbox.Script.encode(arr) + const encodedScriptSig: any = bitbox.Script.encode(arr) assert.equal(typeof encodedScriptSig, "object") }) }) }) - describe("P2PKH scriptPubKey", () => { - fixtures.encodeScriptPubKey.forEach((fixture: any) => { - it(`should encode scriptPubKey buffer`, () => { - const decodedScriptPubKey = bitbox.Script.decode( + describe("P2PKH scriptPubKey", (): void => { + fixtures.encodeScriptPubKey.forEach((fixture: any): void => { + it(`should encode scriptPubKey buffer`, (): void => { + const decodedScriptPubKey: any[] = bitbox.Script.decode( Buffer.from(fixture.scriptPubKeyHex, "hex") ) - const compiledScriptPubKey = bitbox.Script.encode(decodedScriptPubKey) + const compiledScriptPubKey: any = bitbox.Script.encode(decodedScriptPubKey) assert.equal( compiledScriptPubKey.toString("hex"), fixture.scriptPubKeyHex @@ -102,25 +106,25 @@ describe("#Script", () => { }) }) - describe("#toASM", () => { - describe("P2PKH scriptSig", () => { - fixtures.scriptSigToASM.forEach((fixture: any) => { - it(`should encode scriptSig buffer to ${fixture.asm}`, () => { - const arr = [ + describe("#toASM", (): void => { + describe("P2PKH scriptSig", (): void => { + fixtures.scriptSigToASM.forEach((fixture: any): void => { + it(`should encode scriptSig buffer to ${fixture.asm}`, (): void => { + const arr: Buffer[] = [ Buffer.from(fixture.scriptSigChunks[0], "hex"), Buffer.from(fixture.scriptSigChunks[1], "hex") ] - const compiledScriptSig = bitbox.Script.encode(arr) - const asm = bitbox.Script.toASM(compiledScriptSig) + const compiledScriptSig: any = bitbox.Script.encode(arr) + const asm: string = bitbox.Script.toASM(compiledScriptSig) assert.equal(asm, fixture.asm) }) }) }) - describe("P2PKH scriptPubKey", () => { - fixtures.scriptPubKeyToASM.forEach((fixture: any) => { - it(`should compile scriptPubKey buffer to ${fixture.asm}`, () => { - const asm = bitbox.Script.toASM( + describe("P2PKH scriptPubKey", (): void => { + fixtures.scriptPubKeyToASM.forEach((fixture: any): void => { + it(`should compile scriptPubKey buffer to ${fixture.asm}`, (): void => { + const asm: string = bitbox.Script.toASM( Buffer.from(fixture.scriptPubKeyHex, "hex") ) assert.equal(asm, fixture.asm) @@ -129,38 +133,38 @@ describe("#Script", () => { }) }) - describe("#fromASM", () => { - describe("P2PKH scriptSig", () => { - fixtures.scriptSigFromASM.forEach((fixture: any) => { - it(`should decode scriptSig asm to buffer`, () => { - const buf = bitbox.Script.fromASM(fixture.asm) + describe("#fromASM", (): void => { + describe("P2PKH scriptSig", (): void => { + fixtures.scriptSigFromASM.forEach((fixture: any): void => { + it(`should decode scriptSig asm to buffer`, (): void => { + const buf: Buffer = bitbox.Script.fromASM(fixture.asm) assert.equal(typeof buf, "object") }) }) }) - describe("P2PKH scriptPubKey", () => { - fixtures.scriptPubKeyFromASM.forEach((fixture: any) => { - it(`should decode scriptPubKey asm to buffer`, () => { - const buf = bitbox.Script.fromASM(fixture.asm) + describe("P2PKH scriptPubKey", (): void => { + fixtures.scriptPubKeyFromASM.forEach((fixture: any): void => { + it(`should decode scriptPubKey asm to buffer`, (): void => { + const buf: Buffer = bitbox.Script.fromASM(fixture.asm) assert.equal(typeof buf, "object") }) }) }) }) - describe("#OPCodes", () => { + describe("#OPCodes", (): void => { for (const opcode in fixtures.opcodes) { - it(`should have OP Code ${opcode}`, () => { + it(`should have OP Code ${opcode}`, (): void => { assert.equal(bitbox.Script.opcodes[opcode], fixtures.opcodes[opcode]) }) } }) - describe("#classifyInput", () => { - fixtures.classifyInput.forEach((fixture: any) => { - it(`should classify input type ${fixture.type}`, () => { - const type = bitbox.Script.classifyInput( + describe("#classifyInput", (): void => { + fixtures.classifyInput.forEach((fixture: any): void => { + it(`should classify input type ${fixture.type}`, (): void => { + const type: string = bitbox.Script.classifyInput( bitbox.Script.fromASM(fixture.script) ) assert.equal(type, fixture.type) @@ -168,10 +172,10 @@ describe("#Script", () => { }) }) - describe("#classifyOutput", () => { - fixtures.classifyOutput.forEach((fixture: any) => { - it(`should classify ouput type ${fixture.type}`, () => { - const type = bitbox.Script.classifyOutput( + describe("#classifyOutput", (): void => { + fixtures.classifyOutput.forEach((fixture: any): void => { + it(`should classify ouput type ${fixture.type}`, (): void => { + const type: string = bitbox.Script.classifyOutput( bitbox.Script.fromASM(fixture.script) ) assert.equal(type, fixture.type) @@ -179,224 +183,224 @@ describe("#Script", () => { }) }) - describe("#nullDataTemplate", () => { - fixtures.nullDataTemplate.forEach((fixture: any) => { - it(`should encode nulldata output`, () => { - const buf = bitbox.Script.nullData.output.encode( + describe("#nullDataTemplate", (): void => { + fixtures.nullDataTemplate.forEach((fixture: any): void => { + it(`should encode nulldata output`, (): void => { + const buf: Buffer = bitbox.Script.nullData.output.encode( Buffer.from(`${fixture.data}`, "ascii") ) assert.equal(buf.toString("hex"), fixture.hex) }) - it(`should decode nulldata output`, () => { - const buf = bitbox.Script.nullData.output.decode( + it(`should decode nulldata output`, (): void => { + const buf: Buffer = bitbox.Script.nullData.output.decode( Buffer.from(`${fixture.hex}`, "hex") ) assert.equal(buf.toString("ascii"), fixture.data) }) - it(`should confirm correctly formatted nulldata output`, () => { - const buf = bitbox.Script.nullData.output.encode( + it(`should confirm correctly formatted nulldata output`, (): void => { + const buf: Buffer = bitbox.Script.nullData.output.encode( Buffer.from(`${fixture.data}`, "ascii") ) - const valid = bitbox.Script.nullData.output.check(buf) + const valid: boolean = bitbox.Script.nullData.output.check(buf) assert.equal(valid, true) }) }) }) - describe("#pubKeyTemplate", () => { - describe("#pubKeyInputTemplate", () => { - fixtures.pubKeyInputTemplate.forEach((fixture: any) => { - it(`should encode pubKey input`, () => { - const buf = bitbox.Script.pubKey.input.encode( + describe("#pubKeyTemplate", (): void => { + describe("#pubKeyInputTemplate", (): void => { + fixtures.pubKeyInputTemplate.forEach((fixture: any): void => { + it(`should encode pubKey input`, (): void => { + const buf: Buffer = bitbox.Script.pubKey.input.encode( Buffer.from(fixture.signature, "hex") ) assert.equal(buf.toString("hex"), fixture.hex) }) - it(`should decode pubKey input`, () => { - const buf = bitbox.Script.pubKey.input.decode( + it(`should decode pubKey input`, (): void => { + const buf: Buffer = bitbox.Script.pubKey.input.decode( Buffer.from(fixture.hex, "hex") ) assert.equal(buf.toString("hex"), fixture.signature) }) - it(`should confirm correctly formatted pubKeyHash input`, () => { - const buf = bitbox.Script.pubKey.input.encode( + it(`should confirm correctly formatted pubKeyHash input`, (): void => { + const buf: Buffer = bitbox.Script.pubKey.input.encode( Buffer.from(fixture.signature, "hex") ) - const valid = bitbox.Script.pubKey.input.check(buf) + const valid: boolean = bitbox.Script.pubKey.input.check(buf) assert.equal(valid, true) }) }) }) - describe("#pubKeyOutputTemplate", () => { - fixtures.pubKeyOutputTemplate.forEach((fixture: any) => { - it(`should encode pubKey output`, () => { - const buf = bitbox.Script.pubKey.output.encode( + describe("#pubKeyOutputTemplate", (): void => { + fixtures.pubKeyOutputTemplate.forEach((fixture: any): void => { + it(`should encode pubKey output`, (): void => { + const buf: Buffer = bitbox.Script.pubKey.output.encode( Buffer.from(fixture.pubKey, "hex") ) assert.equal(buf.toString("hex"), fixture.hex) }) - it(`should decode pubKey output`, () => { - const buf = bitbox.Script.pubKey.output.decode( + it(`should decode pubKey output`, (): void => { + const buf: Buffer = bitbox.Script.pubKey.output.decode( Buffer.from(`${fixture.hex}`, "hex") ) assert.equal(buf.toString("hex"), fixture.pubKey) }) - it(`should confirm correctly formatted pubKey output`, () => { - const buf = bitbox.Script.pubKey.output.encode( + it(`should confirm correctly formatted pubKey output`, (): void => { + const buf: Buffer = bitbox.Script.pubKey.output.encode( Buffer.from(fixture.pubKey, "hex") ) - const valid = bitbox.Script.pubKey.output.check(buf) + const valid: boolean = bitbox.Script.pubKey.output.check(buf) assert.equal(valid, true) }) }) }) }) - describe("#pubKeyHashTemplate", () => { - describe("#pubKeyHashInputTemplate", () => { - fixtures.pubKeyHashInputTemplate.forEach((fixture: any) => { - it(`should encode pubKeyHash input`, () => { - const buf = bitbox.Script.pubKeyHash.input.encode( + describe("#pubKeyHashTemplate", (): void => { + describe("#pubKeyHashInputTemplate", (): void => { + fixtures.pubKeyHashInputTemplate.forEach((fixture: any): void => { + it(`should encode pubKeyHash input`, (): void => { + const buf: Buffer = bitbox.Script.pubKeyHash.input.encode( Buffer.from(fixture.signature, "hex"), Buffer.from(fixture.pubKey, "hex") ) assert.equal(buf.toString("hex"), fixture.hex) }) - it(`should decode pubKeyHash input signature`, () => { - const buf = bitbox.Script.pubKeyHash.input.decode( + it(`should decode pubKeyHash input signature`, (): void => { + const buf: Buffer = bitbox.Script.pubKeyHash.input.decode( Buffer.from(fixture.hex, "hex") ) assert.equal(buf.signature.toString("hex"), fixture.signature) }) - it(`should decode pubKeyHash input pubkey`, () => { - const buf = bitbox.Script.pubKeyHash.input.decode( + it(`should decode pubKeyHash input pubkey`, (): void => { + const buf: Buffer = bitbox.Script.pubKeyHash.input.decode( Buffer.from(fixture.hex, "hex") ) assert.equal(buf.pubKey.toString("hex"), fixture.pubKey) }) - it(`should confirm correctly formatted pubKeyHash input`, () => { - const buf = bitbox.Script.pubKeyHash.input.encode( + it(`should confirm correctly formatted pubKeyHash input`, (): void => { + const buf: Buffer = bitbox.Script.pubKeyHash.input.encode( Buffer.from(fixture.signature, "hex"), Buffer.from(fixture.pubKey, "hex") ) - const valid = bitbox.Script.pubKeyHash.input.check(buf) + const valid: boolean = bitbox.Script.pubKeyHash.input.check(buf) assert.equal(valid, true) }) }) }) - describe("#pubKeyHashOutputTemplate", () => { - fixtures.pubKeyHashOutputTemplate.forEach((fixture: any) => { - const node = bitbox.HDNode.fromXPriv(fixture.xpriv) - const identifier = bitbox.HDNode.toIdentifier(node) - it(`should encode pubKeyHash output`, () => { - const buf = bitbox.Script.pubKeyHash.output.encode(identifier) + describe("#pubKeyHashOutputTemplate", (): void => { + fixtures.pubKeyHashOutputTemplate.forEach((fixture: any): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const identifier: string = bitbox.HDNode.toIdentifier(node) + it(`should encode pubKeyHash output`, (): void => { + const buf: Buffer = bitbox.Script.pubKeyHash.output.encode(identifier) assert.equal(buf.toString("hex"), fixture.hex) }) - it(`should decode pubKeyHash output`, () => { - const buf = bitbox.Script.pubKeyHash.output.decode( + it(`should decode pubKeyHash output`, (): void => { + const buf: Buffer = bitbox.Script.pubKeyHash.output.decode( Buffer.from(`${fixture.hex}`, "hex") ) assert.equal(buf.toString("hex"), identifier.toString("hex")) }) - it(`should confirm correctly formatted pubKeyHash output`, () => { - const buf = bitbox.Script.pubKeyHash.output.encode(identifier) - const valid = bitbox.Script.pubKeyHash.output.check(buf) + it(`should confirm correctly formatted pubKeyHash output`, (): void => { + const buf: Buffer = bitbox.Script.pubKeyHash.output.encode(identifier) + const valid: boolean = bitbox.Script.pubKeyHash.output.check(buf) assert.equal(valid, true) }) }) }) }) - describe("#multisigTemplate", () => { - describe("#multisigInputTemplate", () => { - fixtures.multisigInputTemplate.forEach((fixture: any) => { - it(`should encode multisig input`, () => { - const signatures = fixture.signatures.map((signature: any) => + describe("#multisigTemplate", (): void => { + describe("#multisigInputTemplate", (): void => { + fixtures.multisigInputTemplate.forEach((fixture: any): void => { + it(`should encode multisig input`, (): void => { + const signatures: any[] = fixture.signatures.map((signature: any) => signature ? Buffer.from(signature, "hex") : bitbox.Script.opcodes.OP_0 ) - const buf = bitbox.Script.multisig.input.encode(signatures) + const buf: Buffer = bitbox.Script.multisig.input.encode(signatures) assert.equal(buf.toString("hex"), fixture.hex) }) - it(`should decode multisig input`, () => { - const buf = bitbox.Script.multisig.input.decode( + it(`should decode multisig input`, (): void => { + const buf: Buffer = bitbox.Script.multisig.input.decode( Buffer.from(fixture.hex, "hex") ) assert.equal(buf[0].toString("hex"), fixture.signatures[0]) }) - it(`should confirm correctly formatted multisig input`, () => { - const signatures = fixture.signatures.map((signature: any) => + it(`should confirm correctly formatted multisig input`, (): void => { + const signatures: any[] = fixture.signatures.map((signature: any) => signature ? Buffer.from(signature, "hex") : bitbox.Script.opcodes.OP_0 ) - const buf = bitbox.Script.multisig.input.encode(signatures) - const valid = bitbox.Script.multisig.input.check(buf) + const buf: Buffer = bitbox.Script.multisig.input.encode(signatures) + const valid: boolean = bitbox.Script.multisig.input.check(buf) assert.equal(valid, true) }) }) }) - describe("#multisigOutputTemplate", () => { - fixtures.multisigOutputTemplate.forEach((fixture: any) => { - it(`should encode multisig output`, () => { - const pubKeys = fixture.pubKeys.map((p: any) => Buffer.from(p, "hex")) - const m = pubKeys.length - const buf = bitbox.Script.multisig.output.encode(m, pubKeys) + describe("#multisigOutputTemplate", (): void => { + fixtures.multisigOutputTemplate.forEach((fixture: any): void => { + it(`should encode multisig output`, (): void => { + const pubKeys: Buffer[] = fixture.pubKeys.map((p: string) => Buffer.from(p, "hex")) + const m: number = pubKeys.length + const buf: Buffer = bitbox.Script.multisig.output.encode(m, pubKeys) assert.equal(buf.toString("hex"), fixture.hex) }) - it(`should decode multisig output`, () => { - const output = bitbox.Script.multisig.output.decode( + it(`should decode multisig output`, (): void => { + const output: any = bitbox.Script.multisig.output.decode( Buffer.from(`${fixture.hex}`, "hex") ) assert.equal(output.m, fixture.pubKeys.length) }) - it(`should confirm correctly formatted multisig output`, () => { - const pubKeys = fixture.pubKeys.map((p: any) => Buffer.from(p, "hex")) - const m = pubKeys.length - const buf = bitbox.Script.multisig.output.encode(m, pubKeys) - const valid = bitbox.Script.multisig.output.check(buf) + it(`should confirm correctly formatted multisig output`, (): void => { + const pubKeys: Buffer[] = fixture.pubKeys.map((p: any) => Buffer.from(p, "hex")) + const m: number = pubKeys.length + const buf: Buffer = bitbox.Script.multisig.output.encode(m, pubKeys) + const valid: boolean = bitbox.Script.multisig.output.check(buf) assert.equal(valid, true) }) }) }) }) - describe("#scriptHashTemplate", () => { - describe("#scriptHashInputTemplate", () => { - fixtures.scriptHashInputTemplate.forEach((fixture: any) => { - it(`should encode scriptHash input`, () => { - const buf = bitbox.Script.scriptHash.input.encode( + describe("#scriptHashTemplate", (): void => { + describe("#scriptHashInputTemplate", (): void => { + fixtures.scriptHashInputTemplate.forEach((fixture: any): void => { + it(`should encode scriptHash input`, (): void => { + const buf: Buffer = bitbox.Script.scriptHash.input.encode( bitbox.Script.fromASM(fixture.redeemScriptSig), bitbox.Script.fromASM(fixture.redeemScript) ) assert.equal(buf.toString("hex"), fixture.hex) }) - it(`should decode scriptHash input`, () => { - const redeemScriptSig = bitbox.Script.fromASM(fixture.redeemScriptSig) - const redeemScript = bitbox.Script.fromASM(fixture.redeemScript) + it(`should decode scriptHash input`, (): void => { + const redeemScriptSig: any = bitbox.Script.fromASM(fixture.redeemScriptSig) + const redeemScript: any = bitbox.Script.fromASM(fixture.redeemScript) assert.deepEqual( bitbox.Script.scriptHash.input.decode( Buffer.from(fixture.hex, "hex") @@ -408,41 +412,41 @@ describe("#Script", () => { ) }) - it(`should confirm correctly formatted scriptHash input`, () => { - const buf = bitbox.Script.scriptHash.input.encode( + it(`should confirm correctly formatted scriptHash input`, (): void => { + const buf: Buffer = bitbox.Script.scriptHash.input.encode( bitbox.Script.fromASM(fixture.redeemScriptSig), bitbox.Script.fromASM(fixture.redeemScript) ) - const valid = bitbox.Script.scriptHash.input.check(buf) + const valid: boolean = bitbox.Script.scriptHash.input.check(buf) assert.equal(valid, true) }) }) }) - describe("#scriptHashOutputTemplate", () => { - fixtures.scriptHashOutputTemplate.forEach((fixture: any) => { - it(`should encode scriptHash output`, () => { - const redeemScript = bitbox.Script.fromASM(fixture.output) - const scriptHash = bitbox.Crypto.hash160(redeemScript) - const buf = bitbox.Script.scriptHash.output.encode(scriptHash) + describe("#scriptHashOutputTemplate", (): void => { + fixtures.scriptHashOutputTemplate.forEach((fixture: any): void => { + it(`should encode scriptHash output`, (): void => { + const redeemScript: any = bitbox.Script.fromASM(fixture.output) + const scriptHash: Buffer = bitbox.Crypto.hash160(redeemScript) + const buf: Buffer = bitbox.Script.scriptHash.output.encode(scriptHash) assert.equal(buf.toString("hex"), fixture.hex) }) - it(`should decode scriptHash output`, () => { - const redeemScript = bitbox.Script.fromASM(fixture.output) - const scriptHash = bitbox.Crypto.hash160(redeemScript) - const buf = bitbox.Script.scriptHash.output.decode( + it(`should decode scriptHash output`, (): void => { + const redeemScript: any = bitbox.Script.fromASM(fixture.output) + const scriptHash: Buffer = bitbox.Crypto.hash160(redeemScript) + const buf: Buffer = bitbox.Script.scriptHash.output.decode( Buffer.from(`${fixture.hex}`, "hex") ) assert.deepEqual(buf, scriptHash) }) - it(`should confirm correctly formatted scriptHash output`, () => { - const redeemScript = bitbox.Script.fromASM(fixture.output) - const scriptHash = bitbox.Crypto.hash160(redeemScript) - const buf = bitbox.Script.scriptHash.output.encode(scriptHash) - const valid = bitbox.Script.scriptHash.output.check(buf) + it(`should confirm correctly formatted scriptHash output`, (): void => { + const redeemScript: any = bitbox.Script.fromASM(fixture.output) + const scriptHash: Buffer = bitbox.Crypto.hash160(redeemScript) + const buf: Buffer = bitbox.Script.scriptHash.output.encode(scriptHash) + const valid: boolean = bitbox.Script.scriptHash.output.check(buf) assert.equal(valid, true) }) }) diff --git a/test/unit/Transaction.ts b/test/unit/Transaction.ts index 1d1c2353..ab682271 100644 --- a/test/unit/Transaction.ts +++ b/test/unit/Transaction.ts @@ -1,33 +1,32 @@ +// imports import * as chai from "chai" -const assert = chai.assert +import { BITBOX } from "../../lib/BITBOX" +import { Transaction } from "../../lib/Transaction" +import { resturl } from "../../lib/BITBOX" +import { TxnDetails } from "bitcoin-com-rest"; -// TODO: port from require to import syntax -const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() -const Transaction = require("../../lib/Transaction").Transaction -const resturl = require("../../lib/BITBOX").resturl +// consts +const bitbox: BITBOX = new BITBOX() +const assert: Chai.AssertStatic = chai.assert -describe("#Transaction", () => { - describe("#TransactionConstructor", () => { - it("should create instance of Transaction", () => { - const transaction = new Transaction() +describe("#Transaction", (): void => { + describe("#TransactionConstructor", (): void => { + it("should create instance of Transaction", (): void => { + const transaction: Transaction = new Transaction() assert.equal(transaction instanceof Transaction, true) }) - it("should have a restURL property", () => { - const transaction = new Transaction() + it("should have a restURL property", (): void => { + const transaction: Transaction = new Transaction() assert.equal(transaction.restURL, resturl) }) }) - describe(`#details`, () => { + describe(`#details`, (): void => { it(`should GET details for a given txid`, async () => { - const txid = + const txid: string = "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" - - const result = await bitbox.Transaction.details(txid) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - + const result: TxnDetails | TxnDetails[] = await bitbox.Transaction.details(txid) assert.hasAllKeys(result, [ "txid", "version", @@ -46,25 +45,20 @@ describe("#Transaction", () => { }) it(`should GET details for an array of txids`, async () => { - const txids = [ + const txids: string[] = [ "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33", "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" ] - - const result = await bitbox.Transaction.details(txids) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - + const result: TxnDetails | TxnDetails[] = await bitbox.Transaction.details(txids) assert.isArray(result) }) it(`should throw an error for improper single input`, async () => { try { - const txid = 12345 - + const txid: any = 12345 await bitbox.Transaction.details(txid) assert.equal(true, false, "Unexpected result!") } catch (err) { - //console.log(`err: `, err) assert.include( err.message, `Input txid must be a string or array of strings` @@ -74,18 +68,13 @@ describe("#Transaction", () => { it(`should throw error on array size rate limit`, async () => { try { - const dataMock = + const dataMock: string = "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" - const data = [] - for (let i = 0; i < 25; i++) data.push(dataMock) - - const result = await bitbox.Transaction.details(data) - - // console.log(`result: ${util.inspect(result)}`) + const data: string[] = [] + for (let i: number = 0; i < 25; i++) data.push(dataMock) + await bitbox.Transaction.details(data) assert.equal(false, false, "Unexpected result!") } catch (err) { - // console.log(`err: ${util.inspect(err)}`) - assert.hasAnyKeys(err, ["error"]) assert.include(err.error, "Array too large") } diff --git a/test/unit/TransactionBuilder.ts b/test/unit/TransactionBuilder.ts index 7dd5cd3b..218d339c 100644 --- a/test/unit/TransactionBuilder.ts +++ b/test/unit/TransactionBuilder.ts @@ -1,24 +1,28 @@ +// imports import * as assert from "assert"; +import { BITBOX } from "../../lib/BITBOX" +import { TransactionBuilder } from "../../lib/TransactionBuilder" +import { Buffer } from "Buffer" +import * as bcl from "bitcoincashjs-lib" + +// consts +const bitbox: BITBOX = new BITBOX() // TODO: port from require to import syntax const fixtures = require("./fixtures/TransactionBuilder.json") -const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() -const TransactionBuilder = require("../../lib/TransactionBuilder").TransactionBuilder -const Buffer = require("safe-buffer").Buffer -describe("#TransactionBuilder", () => { - describe("#TransactionBuilderConstructor", () => { - it("should create instance of TransactionBuilder", () => { - const transactionbuilder = new TransactionBuilder() +describe("#TransactionBuilder", (): void => { + describe("#TransactionBuilderConstructor", (): void => { + it("should create instance of TransactionBuilder", (): void => { + const transactionbuilder: TransactionBuilder = new TransactionBuilder() assert.equal(transactionbuilder instanceof TransactionBuilder, true) }) }) - describe("#hashTypes", () => { - const transactionBuilder = new bitbox.TransactionBuilder("mainnet") - fixtures.hashTypes.forEach((fixture: any) => { - it(`should match hash type`, () => { + describe("#hashTypes", (): void => { + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("mainnet") + fixtures.hashTypes.forEach((fixture: any): void => { + it(`should match hash type`, (): void => { assert.equal( fixture[Object.keys(fixture)[0]], transactionBuilder.hashTypes[Object.keys(fixture)[0]] @@ -27,31 +31,31 @@ describe("#TransactionBuilder", () => { }) }) - describe("#P2PK", () => { - describe("#toOne", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2pk.toOne.mainnet.forEach((fixture: any) => { - it(`should create 1-to-1 P2PK transaction on mainnet`, () => { - const node = bitbox.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new bitbox.TransactionBuilder() - const originalAmount = fixture.amount - const txid = fixture.txHash - const pubKey = bitbox.HDNode.toPublicKey(node) - const buf = bitbox.Script.pubKey.output.encode(pubKey) + describe("#P2PK", (): void => { + describe("#toOne", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2pk.toOne.mainnet.forEach((fixture: any): void => { + it(`should create 1-to-1 P2PK transaction on mainnet`, (): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const originalAmount: number = fixture.amount + const txid: string = fixture.txHash + const pubKey: any = bitbox.HDNode.toPublicKey(node) + const prevOutScript: string = bitbox.Script.pubKey.output.encode(pubKey) transactionBuilder.addInput( txid, 0, transactionBuilder.DEFAULT_SEQUENCE, - buf + prevOutScript ) - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 3 } ) - const sendAmount = originalAmount - byteCount - transactionBuilder.addOutput(buf, sendAmount) - const keyPair = bitbox.HDNode.toKeyPair(node) - let redeemScript + const sendAmount: number = originalAmount - byteCount + transactionBuilder.addOutput(prevOutScript, sendAmount) + const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(node) + let redeemScript: undefined transactionBuilder.sign( 0, keyPair, @@ -59,36 +63,36 @@ describe("#TransactionBuilder", () => { transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount ) - const tx = transactionBuilder.build() - const hex = tx.toHex() + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) }) - describe("#Testnet", () => { - fixtures.scripts.p2pk.toOne.testnet.forEach((fixture: any) => { - it(`should create 1-to-1 P2PK transaction on testnet`, () => { - const node = bitbox.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new bitbox.TransactionBuilder("testnet") - const originalAmount = fixture.amount - const txid = fixture.txHash - const pubKey = bitbox.HDNode.toPublicKey(node) - const buf = bitbox.Script.pubKey.output.encode(pubKey) + describe("#Testnet", (): void => { + fixtures.scripts.p2pk.toOne.testnet.forEach((fixture: any): void => { + it(`should create 1-to-1 P2PK transaction on testnet`, (): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") + const originalAmount: number = fixture.amount + const txid: string = fixture.txHash + const pubKey: any = bitbox.HDNode.toPublicKey(node) + const prevOutScript: string = bitbox.Script.pubKey.output.encode(pubKey) transactionBuilder.addInput( txid, 0, transactionBuilder.DEFAULT_SEQUENCE, - buf + prevOutScript ) - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 3 }, { P2PKH: 3 } ) - const sendAmount = originalAmount - byteCount - transactionBuilder.addOutput(buf, sendAmount) - const keyPair = bitbox.HDNode.toKeyPair(node) - let redeemScript + const sendAmount: number = originalAmount - byteCount + transactionBuilder.addOutput(prevOutScript, sendAmount) + const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(node) + let redeemScript: undefined transactionBuilder.sign( 0, keyPair, @@ -96,45 +100,45 @@ describe("#TransactionBuilder", () => { transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount ) - const tx = transactionBuilder.build() - const hex = tx.toHex() + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) }) }) - describe("#toMany", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2pk.toMany.mainnet.forEach((fixture: any) => { - it(`should create 1-to-many P2PK transaction on mainnet`, () => { - const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) - const transactionBuilder = new bitbox.TransactionBuilder() - const originalAmount = fixture.amount - const txid = fixture.txHash - const pubKey1 = bitbox.HDNode.toPublicKey(node1) - const pubKey2 = bitbox.HDNode.toPublicKey(node2) - const pubKey3 = bitbox.HDNode.toPublicKey(node3) - const buf1 = bitbox.Script.pubKey.output.encode(pubKey1) - const buf2 = bitbox.Script.pubKey.output.encode(pubKey2) - const buf3 = bitbox.Script.pubKey.output.encode(pubKey3) + describe("#toMany", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2pk.toMany.mainnet.forEach((fixture: any): void => { + it(`should create 1-to-many P2PK transaction on mainnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const originalAmount: number = fixture.amount + const txid: string = fixture.txHash + const pubKey1: any = bitbox.HDNode.toPublicKey(node1) + const pubKey2: any = bitbox.HDNode.toPublicKey(node2) + const pubKey3: any = bitbox.HDNode.toPublicKey(node3) + const prevOutScript1: string = bitbox.Script.pubKey.output.encode(pubKey1) + const prevOutScript2: string = bitbox.Script.pubKey.output.encode(pubKey2) + const prevOutScript3: string = bitbox.Script.pubKey.output.encode(pubKey3) transactionBuilder.addInput( txid, 0, transactionBuilder.DEFAULT_SEQUENCE, - buf1 + prevOutScript1 ) - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 3 } ) - const sendAmount = originalAmount - byteCount - transactionBuilder.addOutput(buf2, Math.floor(sendAmount / 2)) - transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) - const keyPair = bitbox.HDNode.toKeyPair(node1) - let redeemScript + const sendAmount: number = originalAmount - byteCount + transactionBuilder.addOutput(prevOutScript2, Math.floor(sendAmount / 2)) + transactionBuilder.addOutput(prevOutScript3, Math.floor(sendAmount / 2)) + const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + let redeemScript: undefined transactionBuilder.sign( 0, keyPair, @@ -142,43 +146,43 @@ describe("#TransactionBuilder", () => { transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount ) - const tx = transactionBuilder.build() - const hex = tx.toHex() + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) }) - describe("#Testnet", () => { - fixtures.scripts.p2pk.toMany.testnet.forEach((fixture: any) => { - it(`should create 1-to-many P2PK transaction on testnet`, () => { - const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) - const transactionBuilder = new bitbox.TransactionBuilder("testnet") - const originalAmount = fixture.amount - const txid = fixture.txHash - const pubKey1 = bitbox.HDNode.toPublicKey(node1) - const pubKey2 = bitbox.HDNode.toPublicKey(node2) - const pubKey3 = bitbox.HDNode.toPublicKey(node3) - const buf1 = bitbox.Script.pubKey.output.encode(pubKey1) - const buf2 = bitbox.Script.pubKey.output.encode(pubKey2) - const buf3 = bitbox.Script.pubKey.output.encode(pubKey3) + describe("#Testnet", (): void => { + fixtures.scripts.p2pk.toMany.testnet.forEach((fixture: any): void => { + it(`should create 1-to-many P2PK transaction on testnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") + const originalAmount: number = fixture.amount + const txid: string = fixture.txHash + const pubKey1: any = bitbox.HDNode.toPublicKey(node1) + const pubKey2: any = bitbox.HDNode.toPublicKey(node2) + const pubKey3: any = bitbox.HDNode.toPublicKey(node3) + const prevOutScript1: string = bitbox.Script.pubKey.output.encode(pubKey1) + const prevOutScript2: string = bitbox.Script.pubKey.output.encode(pubKey2) + const prevOutScript3: string = bitbox.Script.pubKey.output.encode(pubKey3) transactionBuilder.addInput( txid, 0, transactionBuilder.DEFAULT_SEQUENCE, - buf1 + prevOutScript1 ) - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 3 }, { P2PKH: 3 } ) - const sendAmount = originalAmount - byteCount - transactionBuilder.addOutput(buf2, Math.floor(sendAmount / 2)) - transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) - const keyPair = bitbox.HDNode.toKeyPair(node1) - let redeemScript + const sendAmount: number = originalAmount - byteCount + transactionBuilder.addOutput(prevOutScript2, Math.floor(sendAmount / 2)) + transactionBuilder.addOutput(prevOutScript3, Math.floor(sendAmount / 2)) + const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + let redeemScript: undefined transactionBuilder.sign( 0, keyPair, @@ -186,55 +190,55 @@ describe("#TransactionBuilder", () => { transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount ) - const tx = transactionBuilder.build() - const hex = tx.toHex() + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) }) }) - describe("#manyToMany", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2pk.manyToMany.mainnet.forEach((fixture: any) => { - it(`should create many-to-many P2PK transaction on mainnet`, () => { - const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) - const node4 = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) - const transactionBuilder = new bitbox.TransactionBuilder() - const originalAmount = fixture.amount - const txid = fixture.txHash - const pubKey1 = bitbox.HDNode.toPublicKey(node1) - const pubKey2 = bitbox.HDNode.toPublicKey(node2) - const pubKey3 = bitbox.HDNode.toPublicKey(node3) - const pubKey4 = bitbox.HDNode.toPublicKey(node4) - const buf1 = bitbox.Script.pubKey.output.encode(pubKey1) - const buf2 = bitbox.Script.pubKey.output.encode(pubKey2) - const buf3 = bitbox.Script.pubKey.output.encode(pubKey3) - const buf4 = bitbox.Script.pubKey.output.encode(pubKey4) + describe("#manyToMany", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2pk.manyToMany.mainnet.forEach((fixture: any): void => { + it(`should create many-to-many P2PK transaction on mainnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const node4: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const originalAmount: number = fixture.amount + const txid: string = fixture.txHash + const pubKey1: any = bitbox.HDNode.toPublicKey(node1) + const pubKey2: any = bitbox.HDNode.toPublicKey(node2) + const pubKey3: any = bitbox.HDNode.toPublicKey(node3) + const pubKey4: any = bitbox.HDNode.toPublicKey(node4) + const prevOutScript1: string = bitbox.Script.pubKey.output.encode(pubKey1) + const prevOutScript2: string = bitbox.Script.pubKey.output.encode(pubKey2) + const prevOutScript3: string = bitbox.Script.pubKey.output.encode(pubKey3) + const prevOutScript4: string = bitbox.Script.pubKey.output.encode(pubKey4) transactionBuilder.addInput( txid, 0, transactionBuilder.DEFAULT_SEQUENCE, - buf1 + prevOutScript1 ) transactionBuilder.addInput( txid, 1, transactionBuilder.DEFAULT_SEQUENCE, - buf2 + prevOutScript2 ) - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 3 }, { P2PKH: 3 } ) - const sendAmount = originalAmount - byteCount - transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) - transactionBuilder.addOutput(buf4, Math.floor(sendAmount / 2)) - const keyPair1 = bitbox.HDNode.toKeyPair(node1) - const keyPair2 = bitbox.HDNode.toKeyPair(node2) - let redeemScript + const sendAmount: number = originalAmount - byteCount + transactionBuilder.addOutput(prevOutScript3, Math.floor(sendAmount / 2)) + transactionBuilder.addOutput(prevOutScript4, Math.floor(sendAmount / 2)) + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) + let redeemScript: undefined transactionBuilder.sign( 0, keyPair1, @@ -249,53 +253,53 @@ describe("#TransactionBuilder", () => { transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount / 2 ) - const tx = transactionBuilder.build() - const hex = tx.toHex() + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) }) - describe("#Testnet", () => { - fixtures.scripts.p2pk.manyToMany.testnet.forEach((fixture: any) => { - it(`should create many-to-many P2PK transaction on testnet`, () => { - const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) - const node4 = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) - const transactionBuilder = new bitbox.TransactionBuilder("testnet") - const originalAmount = fixture.amount - const txid = fixture.txHash - const pubKey1 = bitbox.HDNode.toPublicKey(node1) - const pubKey2 = bitbox.HDNode.toPublicKey(node2) - const pubKey3 = bitbox.HDNode.toPublicKey(node3) - const pubKey4 = bitbox.HDNode.toPublicKey(node4) - const buf1 = bitbox.Script.pubKey.output.encode(pubKey1) - const buf2 = bitbox.Script.pubKey.output.encode(pubKey2) - const buf3 = bitbox.Script.pubKey.output.encode(pubKey3) - const buf4 = bitbox.Script.pubKey.output.encode(pubKey4) + describe("#Testnet", (): void => { + fixtures.scripts.p2pk.manyToMany.testnet.forEach((fixture: any): void => { + it(`should create many-to-many P2PK transaction on testnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const node4: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") + const originalAmount: number = fixture.amount + const txid: string = fixture.txHash + const pubKey1: any = bitbox.HDNode.toPublicKey(node1) + const pubKey2: any = bitbox.HDNode.toPublicKey(node2) + const pubKey3: any = bitbox.HDNode.toPublicKey(node3) + const pubKey4: any = bitbox.HDNode.toPublicKey(node4) + const prevOutScript1: string = bitbox.Script.pubKey.output.encode(pubKey1) + const prevOutScript2: string = bitbox.Script.pubKey.output.encode(pubKey2) + const prevOutScript3: string = bitbox.Script.pubKey.output.encode(pubKey3) + const prevOutScript4: string = bitbox.Script.pubKey.output.encode(pubKey4) transactionBuilder.addInput( txid, 0, transactionBuilder.DEFAULT_SEQUENCE, - buf1 + prevOutScript1 ) transactionBuilder.addInput( txid, 1, transactionBuilder.DEFAULT_SEQUENCE, - buf2 + prevOutScript2 ) - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 3 }, { P2PKH: 3 } ) - const sendAmount = originalAmount - byteCount - transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) - transactionBuilder.addOutput(buf4, Math.floor(sendAmount / 2)) - const keyPair1 = bitbox.HDNode.toKeyPair(node1) - const keyPair2 = bitbox.HDNode.toKeyPair(node2) - let redeemScript + const sendAmount: number = originalAmount - byteCount + transactionBuilder.addOutput(prevOutScript3, Math.floor(sendAmount / 2)) + transactionBuilder.addOutput(prevOutScript4, Math.floor(sendAmount / 2)) + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) + let redeemScript: undefined transactionBuilder.sign( 0, keyPair1, @@ -310,51 +314,51 @@ describe("#TransactionBuilder", () => { transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount / 2 ) - const tx = transactionBuilder.build() - const hex = tx.toHex() + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) }) }) - describe("#fromMany", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2pk.fromMany.mainnet.forEach((fixture: any) => { - it(`should create many-to-1 P2PK transaction on mainnet`, () => { - const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) - const transactionBuilder = new bitbox.TransactionBuilder() - const originalAmount = fixture.amount - const txid = fixture.txHash - const pubKey1 = bitbox.HDNode.toPublicKey(node1) - const pubKey2 = bitbox.HDNode.toPublicKey(node2) - const pubKey3 = bitbox.HDNode.toPublicKey(node3) - const buf1 = bitbox.Script.pubKey.output.encode(pubKey1) - const buf2 = bitbox.Script.pubKey.output.encode(pubKey2) - const buf3 = bitbox.Script.pubKey.output.encode(pubKey3) + describe("#fromMany", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2pk.fromMany.mainnet.forEach((fixture: any): void => { + it(`should create many-to-1 P2PK transaction on mainnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const originalAmount: any = fixture.amount + const txid: string = fixture.txHash + const pubKey1: any = bitbox.HDNode.toPublicKey(node1) + const pubKey2: any = bitbox.HDNode.toPublicKey(node2) + const pubKey3: any = bitbox.HDNode.toPublicKey(node3) + const prevOutScript1: string = bitbox.Script.pubKey.output.encode(pubKey1) + const prevOutScript2: string = bitbox.Script.pubKey.output.encode(pubKey2) + const prevOutScript3: string = bitbox.Script.pubKey.output.encode(pubKey3) transactionBuilder.addInput( txid, 0, transactionBuilder.DEFAULT_SEQUENCE, - buf1 + prevOutScript1 ) transactionBuilder.addInput( txid, 1, transactionBuilder.DEFAULT_SEQUENCE, - buf2 + prevOutScript2 ) - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 3 }, { P2PKH: 3 } ) - const sendAmount = originalAmount - byteCount - transactionBuilder.addOutput(buf3, sendAmount) - const keyPair1 = bitbox.HDNode.toKeyPair(node1) - const keyPair2 = bitbox.HDNode.toKeyPair(node2) - let redeemScript + const sendAmount: number = originalAmount - byteCount + transactionBuilder.addOutput(prevOutScript3, sendAmount) + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) + let redeemScript: undefined transactionBuilder.sign( 0, keyPair1, @@ -369,49 +373,49 @@ describe("#TransactionBuilder", () => { transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount / 2 ) - const tx = transactionBuilder.build() - const hex = tx.toHex() + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) }) - describe("#Testnet", () => { - fixtures.scripts.p2pk.fromMany.testnet.forEach((fixture: any) => { - it(`should create many-to-1 P2PK transaction on testnet`, () => { - const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) - const transactionBuilder = new bitbox.TransactionBuilder("testnet") - const originalAmount = fixture.amount - const txid = fixture.txHash - const pubKey1 = bitbox.HDNode.toPublicKey(node1) - const pubKey2 = bitbox.HDNode.toPublicKey(node2) - const pubKey3 = bitbox.HDNode.toPublicKey(node3) - const buf1 = bitbox.Script.pubKey.output.encode(pubKey1) - const buf2 = bitbox.Script.pubKey.output.encode(pubKey2) - const buf3 = bitbox.Script.pubKey.output.encode(pubKey3) + describe("#Testnet", (): void => { + fixtures.scripts.p2pk.fromMany.testnet.forEach((fixture: any): void => { + it(`should create many-to-1 P2PK transaction on testnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") + const originalAmount: number = fixture.amount + const txid: string = fixture.txHash + const pubKey1: any = bitbox.HDNode.toPublicKey(node1) + const pubKey2: any = bitbox.HDNode.toPublicKey(node2) + const pubKey3: any = bitbox.HDNode.toPublicKey(node3) + const prevOutScript1: string = bitbox.Script.pubKey.output.encode(pubKey1) + const prevOutScript2: string = bitbox.Script.pubKey.output.encode(pubKey2) + const prevOutScript3: string = bitbox.Script.pubKey.output.encode(pubKey3) transactionBuilder.addInput( txid, 0, transactionBuilder.DEFAULT_SEQUENCE, - buf1 + prevOutScript1 ) transactionBuilder.addInput( txid, 1, transactionBuilder.DEFAULT_SEQUENCE, - buf2 + prevOutScript2 ) - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 3 }, { P2PKH: 3 } ) - const sendAmount = originalAmount - byteCount - transactionBuilder.addOutput(buf3, sendAmount) - const keyPair1 = bitbox.HDNode.toKeyPair(node1) - const keyPair2 = bitbox.HDNode.toKeyPair(node2) - let redeemScript + const sendAmount: number = originalAmount - byteCount + transactionBuilder.addOutput(prevOutScript3, sendAmount) + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) + let redeemScript: undefined transactionBuilder.sign( 0, keyPair1, @@ -426,8 +430,8 @@ describe("#TransactionBuilder", () => { transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount / 2 ) - const tx = transactionBuilder.build() - const hex = tx.toHex() + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) @@ -435,27 +439,27 @@ describe("#TransactionBuilder", () => { }) }) - describe("#P2PKH", () => { - describe("#toOne", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2pkh.toOne.mainnet.forEach((fixture: any) => { - it(`should create 1-to-1 P2PKH transaction on mainnet`, () => { - const hdnode = bitbox.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new bitbox.TransactionBuilder() - const keyPair = bitbox.HDNode.toKeyPair(hdnode) - const txHash = fixture.txHash + describe("#P2PKH", (): void => { + describe("#toOne", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2pkh.toOne.mainnet.forEach((fixture: any): void => { + it(`should create 1-to-1 P2PKH transaction on mainnet`, (): void => { + const hdnode: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(hdnode) + const txHash: string = fixture.txHash // original amount of satoshis in vin - const originalAmount = fixture.amount + const originalAmount: number = fixture.amount transactionBuilder.addInput(txHash, fixture.vout) // get byte count to calculate fee. paying 1 sat/byte - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 1 } ) // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - const sendAmount = originalAmount - byteCount + const sendAmount: number = originalAmount - byteCount // add output w/ address and amount to send - let redeemScript + let redeemScript: undefined transactionBuilder.addOutput(fixture.outputs[0], sendAmount) transactionBuilder.sign( 0, @@ -466,33 +470,33 @@ describe("#TransactionBuilder", () => { ) // build tx - const tx = transactionBuilder.build() + const tx: any = transactionBuilder.build() // output rawhex - const hex = tx.toHex() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) }) - describe("#Testnet", () => { - fixtures.scripts.p2pkh.toOne.testnet.forEach((fixture: any) => { - it(`should create 1-to-1 P2PKH transaction on testnet`, () => { - const hdnode = bitbox.HDNode.fromXPriv(fixture.xpriv, "testnet") - const transactionBuilder = new bitbox.TransactionBuilder("testnet") - const keyPair = bitbox.HDNode.toKeyPair(hdnode) - const txHash = fixture.txHash + describe("#Testnet", (): void => { + fixtures.scripts.p2pkh.toOne.testnet.forEach((fixture: any): void => { + it(`should create 1-to-1 P2PKH transaction on testnet`, (): void => { + const hdnode: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") + const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(hdnode) + const txHash: string = fixture.txHash // original amount of satoshis in vin - const originalAmount = fixture.amount + const originalAmount: number = fixture.amount transactionBuilder.addInput(txHash, fixture.vout) // get byte count to calculate fee. paying 1 sat/byte - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 1 } ) // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - const sendAmount = originalAmount - byteCount * 15 + const sendAmount: number = originalAmount - byteCount * 15 // add output w/ address and amount to send - let redeemScript + let redeemScript: undefined transactionBuilder.addOutput(fixture.outputs[0], sendAmount) transactionBuilder.sign( 0, @@ -503,33 +507,33 @@ describe("#TransactionBuilder", () => { ) // build tx - const tx = transactionBuilder.build() + const tx: any = transactionBuilder.build() // output rawhex - const hex = tx.toHex() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) }) - describe("#RegTest", () => { - fixtures.scripts.p2pkh.toOne.regtest.forEach((fixture: any) => { - it(`should create 1-to-1 P2PKH transaction on regtest`, () => { - const hdnode = bitbox.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new bitbox.TransactionBuilder("regtest") - const keyPair = bitbox.HDNode.toKeyPair(hdnode) - const txHash = fixture.txHash + describe("#RegTest", (): void => { + fixtures.scripts.p2pkh.toOne.regtest.forEach((fixture: any): void => { + it(`should create 1-to-1 P2PKH transaction on regtest`, (): void => { + const hdnode: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("regtest") + const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(hdnode) + const txHash: string = fixture.txHash // original amount of satoshis in vin - const originalAmount = fixture.amount + const originalAmount: number = fixture.amount transactionBuilder.addInput(txHash, fixture.vout) // get byte count to calculate fee. paying 1 sat/byte - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 1 } ) // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - const sendAmount = originalAmount - byteCount * 15 + const sendAmount: number = originalAmount - byteCount * 15 // add output w/ address and amount to send - let redeemScript + let redeemScript: undefined transactionBuilder.addOutput(fixture.outputs[0], sendAmount) transactionBuilder.sign( 0, @@ -540,33 +544,33 @@ describe("#TransactionBuilder", () => { ) // build tx - const tx = transactionBuilder.build() + const tx: any = transactionBuilder.build() // output rawhex - const hex = tx.toHex() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) }) }) - describe("#toMany", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2pkh.toMany.mainnet.forEach((fixture: any) => { - it(`should create 1-to-2 P2PKH transaction on mainnet`, () => { - const hdnode = bitbox.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new bitbox.TransactionBuilder() - const keyPair = bitbox.HDNode.toKeyPair(hdnode) - const txHash = fixture.txHash + describe("#toMany", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2pkh.toMany.mainnet.forEach((fixture: any): void => { + it(`should create 1-to-2 P2PKH transaction on mainnet`, (): void => { + const hdnode: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(hdnode) + const txHash: string = fixture.txHash // original amount of satoshis in vin - const originalAmount = fixture.amount + const originalAmount: number = fixture.amount transactionBuilder.addInput(txHash, fixture.vout) // get byte count to calculate fee. paying 1 sat/byte - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 2 } ) // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - const sendAmount = originalAmount - byteCount + const sendAmount: number = originalAmount - byteCount // add output w/ address and amount to send transactionBuilder.addOutput( fixture.outputs[0], @@ -576,7 +580,7 @@ describe("#TransactionBuilder", () => { fixture.outputs[1], Math.floor(sendAmount / 2) ) - let redeemScript + let redeemScript: undefined transactionBuilder.sign( 0, keyPair, @@ -585,32 +589,32 @@ describe("#TransactionBuilder", () => { originalAmount ) // build tx - const tx = transactionBuilder.build() + const tx: any = transactionBuilder.build() // output rawhex - const hex = tx.toHex() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) }) - describe("#Testnet", () => { - fixtures.scripts.p2pkh.toMany.testnet.forEach((fixture: any) => { + describe("#Testnet", (): void => { + fixtures.scripts.p2pkh.toMany.testnet.forEach((fixture: any): void => { // TODO pass in tesnet network config - it(`should create 1-to-2 P2PKH transaction on testnet`, () => { - const hdnode = bitbox.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new bitbox.TransactionBuilder("testnet") - const keyPair = bitbox.HDNode.toKeyPair(hdnode) - const txHash = fixture.txHash + it(`should create 1-to-2 P2PKH transaction on testnet`, (): void => { + const hdnode: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") + const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(hdnode) + const txHash: string = fixture.txHash // original amount of satoshis in vin - const originalAmount = fixture.amount + const originalAmount: number = fixture.amount transactionBuilder.addInput(txHash, fixture.vout) // get byte count to calculate fee. paying 1 sat/byte - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 2 } ) // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - const sendAmount = originalAmount - byteCount * 15 + const sendAmount: number = originalAmount - byteCount * 15 // add output w/ address and amount to send transactionBuilder.addOutput( fixture.outputs[0], @@ -620,7 +624,7 @@ describe("#TransactionBuilder", () => { fixture.outputs[1], Math.floor(sendAmount / 2) ) - let redeemScript + let redeemScript: undefined transactionBuilder.sign( 0, keyPair, @@ -629,32 +633,32 @@ describe("#TransactionBuilder", () => { originalAmount ) // build tx - const tx = transactionBuilder.build() + const tx: any = transactionBuilder.build() // output rawhex - const hex = tx.toHex() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) }) - describe("#RegTest", () => { - fixtures.scripts.p2pkh.toMany.regtest.forEach((fixture: any) => { + describe("#RegTest", (): void => { + fixtures.scripts.p2pkh.toMany.regtest.forEach((fixture: any): void => { // TODO pass in tesnet network config - it(`should create 1-to-2 P2PKH transaction on regtest`, () => { - const hdnode = bitbox.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new bitbox.TransactionBuilder("regtest") - const keyPair = bitbox.HDNode.toKeyPair(hdnode) - const txHash = fixture.txHash + it(`should create 1-to-2 P2PKH transaction on regtest`, (): void => { + const hdnode: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("regtest") + const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(hdnode) + const txHash: string = fixture.txHash // original amount of satoshis in vin - const originalAmount = fixture.amount + const originalAmount: number = fixture.amount transactionBuilder.addInput(txHash, fixture.vout) // get byte count to calculate fee. paying 1 sat/byte - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 2 } ) // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - const sendAmount = originalAmount - byteCount * 15 + const sendAmount: number = originalAmount - byteCount * 15 // add output w/ address and amount to send transactionBuilder.addOutput( fixture.outputs[0], @@ -664,7 +668,7 @@ describe("#TransactionBuilder", () => { fixture.outputs[1], Math.floor(sendAmount / 2) ) - let redeemScript + let redeemScript: undefined transactionBuilder.sign( 0, keyPair, @@ -673,31 +677,31 @@ describe("#TransactionBuilder", () => { originalAmount ) // build tx - const tx = transactionBuilder.build() + const tx: any = transactionBuilder.build() // output rawhex - const hex = tx.toHex() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) }) }) - describe("#manyToMany", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2pkh.manyToMany.mainnet.forEach((fixture: any) => { - it(`should create 2-to-2 P2PKH transaction on mainnet`, () => { - const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const transactionBuilder = new bitbox.TransactionBuilder() - const txHash = fixture.txHash - const originalAmount = fixture.amounts[0] + fixture.amounts[1] + describe("#manyToMany", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2pkh.manyToMany.mainnet.forEach((fixture: any): void => { + it(`should create 2-to-2 P2PKH transaction on mainnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const txHash: string = fixture.txHash + const originalAmount: number = fixture.amounts[0] + fixture.amounts[1] transactionBuilder.addInput(txHash, 0) transactionBuilder.addInput(txHash, 1) - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 2 }, { P2PKH: 2 } ) - const sendAmount = originalAmount - byteCount + const sendAmount: number = originalAmount - byteCount transactionBuilder.addOutput( fixture.outputs[0], Math.floor(sendAmount / 2) @@ -706,9 +710,9 @@ describe("#TransactionBuilder", () => { fixture.outputs[1], Math.floor(sendAmount / 2) ) - const keyPair1 = bitbox.HDNode.toKeyPair(node1) - const keyPair2 = bitbox.HDNode.toKeyPair(node2) - let redeemScript + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) + let redeemScript: undefined transactionBuilder.sign( 0, keyPair1, @@ -723,28 +727,28 @@ describe("#TransactionBuilder", () => { transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1] ) - const tx = transactionBuilder.build() - const hex = tx.toHex() + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) }) - describe("#Testnet", () => { - fixtures.scripts.p2pkh.manyToMany.testnet.forEach((fixture: any) => { - it(`should create 2-to-2 P2PKH transaction on testnet`, () => { - const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const transactionBuilder = new bitbox.TransactionBuilder("testnet") - const txHash = fixture.txHash - const originalAmount = fixture.amounts[0] + fixture.amounts[1] + describe("#Testnet", (): void => { + fixtures.scripts.p2pkh.manyToMany.testnet.forEach((fixture: any): void => { + it(`should create 2-to-2 P2PKH transaction on testnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") + const txHash: string = fixture.txHash + const originalAmount: number = fixture.amounts[0] + fixture.amounts[1] transactionBuilder.addInput(txHash, 0) transactionBuilder.addInput(txHash, 1) - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 2 }, { P2PKH: 2 } ) - const sendAmount = originalAmount - byteCount * 15 + const sendAmount: number = originalAmount - byteCount * 15 transactionBuilder.addOutput( fixture.outputs[0], Math.floor(sendAmount / 2) @@ -753,9 +757,9 @@ describe("#TransactionBuilder", () => { fixture.outputs[1], Math.floor(sendAmount / 2) ) - const keyPair1 = bitbox.HDNode.toKeyPair(node1) - const keyPair2 = bitbox.HDNode.toKeyPair(node2) - let redeemScript + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) + let redeemScript: undefined transactionBuilder.sign( 0, keyPair1, @@ -770,28 +774,28 @@ describe("#TransactionBuilder", () => { transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1] ) - const tx = transactionBuilder.build() - const hex = tx.toHex() + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) }) - describe("#RegTest", () => { - fixtures.scripts.p2pkh.manyToMany.regtest.forEach((fixture: any) => { - it(`should create 2-to-2 P2PKH transaction on regtest`, () => { - const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const transactionBuilder = new bitbox.TransactionBuilder("regtest") - const txHash = fixture.txHash - const originalAmount = fixture.amounts[0] + fixture.amounts[1] + describe("#RegTest", (): void => { + fixtures.scripts.p2pkh.manyToMany.regtest.forEach((fixture: any): void => { + it(`should create 2-to-2 P2PKH transaction on regtest`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("regtest") + const txHash: string = fixture.txHash + const originalAmount: number = fixture.amounts[0] + fixture.amounts[1] transactionBuilder.addInput(txHash, 0) transactionBuilder.addInput(txHash, 1) - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 2 }, { P2PKH: 2 } ) - const sendAmount = originalAmount - byteCount * 15 + const sendAmount: number = originalAmount - byteCount * 15 transactionBuilder.addOutput( fixture.outputs[0], Math.floor(sendAmount / 2) @@ -800,9 +804,9 @@ describe("#TransactionBuilder", () => { fixture.outputs[1], Math.floor(sendAmount / 2) ) - const keyPair1 = bitbox.HDNode.toKeyPair(node1) - const keyPair2 = bitbox.HDNode.toKeyPair(node2) - let redeemScript + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) + let redeemScript: undefined transactionBuilder.sign( 0, keyPair1, @@ -817,34 +821,34 @@ describe("#TransactionBuilder", () => { transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1] ) - const tx = transactionBuilder.build() - const hex = tx.toHex() + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) }) }) - describe("#fromMany", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2pkh.fromMany.mainnet.forEach((fixture: any) => { - it(`should create 2-to-1 P2PKH transaction on mainnet`, () => { - const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const transactionBuilder = new bitbox.TransactionBuilder() - const txHash = fixture.txHash - const originalAmount = fixture.amounts[0] + fixture.amounts[1] + describe("#fromMany", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2pkh.fromMany.mainnet.forEach((fixture: any): void => { + it(`should create 2-to-1 P2PKH transaction on mainnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const txHash: string = fixture.txHash + const originalAmount: number = fixture.amounts[0] + fixture.amounts[1] transactionBuilder.addInput(txHash, 0) transactionBuilder.addInput(txHash, 1) - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 2 }, { P2PKH: 1 } ) - const sendAmount = originalAmount - byteCount + const sendAmount: number = originalAmount - byteCount transactionBuilder.addOutput(fixture.outputs[0], sendAmount) - const keyPair1 = bitbox.HDNode.toKeyPair(node1) - const keyPair2 = bitbox.HDNode.toKeyPair(node2) - let redeemScript + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) + let redeemScript: undefined transactionBuilder.sign( 0, keyPair1, @@ -859,32 +863,32 @@ describe("#TransactionBuilder", () => { transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1] ) - const tx = transactionBuilder.build() - const hex = tx.toHex() + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) }) - describe("#Testnet", () => { - fixtures.scripts.p2pkh.fromMany.testnet.forEach((fixture: any) => { - it(`should create 2-to-1 P2PKH transaction on testnet`, () => { - const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const transactionBuilder = new bitbox.TransactionBuilder("testnet") - const txHash = fixture.txHash - const originalAmount = fixture.amounts[0] + fixture.amounts[1] + describe("#Testnet", (): void => { + fixtures.scripts.p2pkh.fromMany.testnet.forEach((fixture: any): void => { + it(`should create 2-to-1 P2PKH transaction on testnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") + const txHash: string = fixture.txHash + const originalAmount: number = fixture.amounts[0] + fixture.amounts[1] transactionBuilder.addInput(txHash, 0) transactionBuilder.addInput(txHash, 1) - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 2 }, { P2PKH: 1 } ) - const sendAmount = originalAmount - byteCount * 15 + const sendAmount: number = originalAmount - byteCount * 15 transactionBuilder.addOutput(fixture.outputs[0], sendAmount) - const keyPair1 = bitbox.HDNode.toKeyPair(node1) - const keyPair2 = bitbox.HDNode.toKeyPair(node2) - let redeemScript + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) + let redeemScript: undefined transactionBuilder.sign( 0, keyPair1, @@ -899,32 +903,32 @@ describe("#TransactionBuilder", () => { transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1] ) - const tx = transactionBuilder.build() - const hex = tx.toHex() + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) }) - describe("#RegTest", () => { - fixtures.scripts.p2pkh.fromMany.regtest.forEach((fixture: any) => { - it(`should create 2-to-1 P2PKH transaction on regtest`, () => { - const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const transactionBuilder = new bitbox.TransactionBuilder("regtest") - const txHash = fixture.txHash - const originalAmount = fixture.amounts[0] + fixture.amounts[1] + describe("#RegTest", (): void => { + fixtures.scripts.p2pkh.fromMany.regtest.forEach((fixture: any): void => { + it(`should create 2-to-1 P2PKH transaction on regtest`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("regtest") + const txHash: string = fixture.txHash + const originalAmount: number = fixture.amounts[0] + fixture.amounts[1] transactionBuilder.addInput(txHash, 0) transactionBuilder.addInput(txHash, 1) - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 2 }, { P2PKH: 1 } ) - const sendAmount = originalAmount - byteCount * 15 + const sendAmount: number = originalAmount - byteCount * 15 transactionBuilder.addOutput(fixture.outputs[0], sendAmount) - const keyPair1 = bitbox.HDNode.toKeyPair(node1) - const keyPair2 = bitbox.HDNode.toKeyPair(node2) - let redeemScript + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) + let redeemScript: undefined transactionBuilder.sign( 0, keyPair1, @@ -939,8 +943,8 @@ describe("#TransactionBuilder", () => { transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1] ) - const tx = transactionBuilder.build() - const hex = tx.toHex() + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) @@ -948,28 +952,28 @@ describe("#TransactionBuilder", () => { }) }) - describe("#op_return", () => { - describe("#Mainnet", () => { - fixtures.nulldata.mainnet.forEach((fixture: any) => { - it(`should create transaction w/ OP_RETURN output on mainnet`, () => { - const node = bitbox.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new bitbox.TransactionBuilder() - const txHash = fixture.txHash - const originalAmount = fixture.amount + describe("#op_return", (): void => { + describe("#Mainnet", (): void => { + fixtures.nulldata.mainnet.forEach((fixture: any): void => { + it(`should create transaction w/ OP_RETURN output on mainnet`, (): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const txHash: string = fixture.txHash + const originalAmount: number = fixture.amount transactionBuilder.addInput(txHash, 0) - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 5 } ) - const sendAmount = originalAmount - byteCount + const sendAmount: number = originalAmount - byteCount transactionBuilder.addOutput(fixture.output, sendAmount) const data = fixture.data - const buf = bitbox.Script.nullData.output.encode( + const buf: string = bitbox.Script.nullData.output.encode( Buffer.from(data, "ascii") ) transactionBuilder.addOutput(buf, 0) const keyPair = bitbox.HDNode.toKeyPair(node) - let redeemScript + let redeemScript: undefined transactionBuilder.sign( 0, keyPair, @@ -977,34 +981,34 @@ describe("#TransactionBuilder", () => { transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amount ) - const tx = transactionBuilder.build() - const hex = tx.toHex() + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) }) - describe("#Testnet", () => { - fixtures.nulldata.testnet.forEach((fixture: any) => { - it(`should create transaction w/ OP_RETURN output on testnet`, () => { - const node = bitbox.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new bitbox.TransactionBuilder("testnet") - const txHash = fixture.txHash - const originalAmount = fixture.amount + describe("#Testnet", (): void => { + fixtures.nulldata.testnet.forEach((fixture: any): void => { + it(`should create transaction w/ OP_RETURN output on testnet`, (): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") + const txHash: string = fixture.txHash + const originalAmount: number = fixture.amount transactionBuilder.addInput(txHash, 0) - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 5 } ) - const sendAmount = originalAmount - byteCount + const sendAmount: number = originalAmount - byteCount transactionBuilder.addOutput(fixture.output, sendAmount) const data = fixture.data - const buf = bitbox.Script.nullData.output.encode( + const buf: string = bitbox.Script.nullData.output.encode( Buffer.from(data, "ascii") ) transactionBuilder.addOutput(buf, 0) const keyPair = bitbox.HDNode.toKeyPair(node) - let redeemScript + let redeemScript: undefined transactionBuilder.sign( 0, keyPair, @@ -1012,34 +1016,34 @@ describe("#TransactionBuilder", () => { transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amount ) - const tx = transactionBuilder.build() - const hex = tx.toHex() + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) }) - describe("#RegTest", () => { - fixtures.nulldata.regtest.forEach((fixture: any) => { - it(`should create transaction w/ OP_RETURN output on regtest`, () => { - const node = bitbox.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new bitbox.TransactionBuilder("regtest") - const txHash = fixture.txHash - const originalAmount = fixture.amount + describe("#RegTest", (): void => { + fixtures.nulldata.regtest.forEach((fixture: any): void => { + it(`should create transaction w/ OP_RETURN output on regtest`, (): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("regtest") + const txHash: string = fixture.txHash + const originalAmount: number = fixture.amount transactionBuilder.addInput(txHash, 0) - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 5 } ) - const sendAmount = originalAmount - byteCount + const sendAmount: number = originalAmount - byteCount transactionBuilder.addOutput(fixture.output, sendAmount) const data = fixture.data - const buf = bitbox.Script.nullData.output.encode( + const buf: string = bitbox.Script.nullData.output.encode( Buffer.from(data, "ascii") ) transactionBuilder.addOutput(buf, 0) const keyPair = bitbox.HDNode.toKeyPair(node) - let redeemScript + let redeemScript: undefined transactionBuilder.sign( 0, keyPair, @@ -1047,29 +1051,29 @@ describe("#TransactionBuilder", () => { transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amount ) - const tx = transactionBuilder.build() - const hex = tx.toHex() + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) }) }) - describe("#P2MS", () => { - describe("#toOne", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2ms.toOne.mainnet.forEach((fixture: any) => { - it(`should create 1-to-1 1-of-2 P2MS transaction on mainnet`, () => { - const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) - const node4 = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) - const transactionBuilder = new bitbox.TransactionBuilder() - const txid = fixture.txHash - const originalAmount = fixture.amount - const pubKey1 = bitbox.HDNode.toPublicKey(node1) - const pubKey2 = bitbox.HDNode.toPublicKey(node2) - const buf1 = bitbox.Script.multisig.output.encode(1, [ + describe("#P2MS", (): void => { + describe("#toOne", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2ms.toOne.mainnet.forEach((fixture: any): void => { + it(`should create 1-to-1 1-of-2 P2MS transaction on mainnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const node4: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const txid: string = fixture.txHash + const originalAmount: number = fixture.amount + const pubKey1: any = bitbox.HDNode.toPublicKey(node1) + const pubKey2: any = bitbox.HDNode.toPublicKey(node2) + const buf1: string = bitbox.Script.multisig.output.encode(1, [ pubKey1, pubKey2 ]) @@ -1079,19 +1083,19 @@ describe("#TransactionBuilder", () => { transactionBuilder.DEFAULT_SEQUENCE, buf1 ) - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 3 }, { P2PKH: 3 } ) - const pubKey3 = bitbox.HDNode.toPublicKey(node3) - const pubKey4 = bitbox.HDNode.toPublicKey(node4) - const buf2 = bitbox.Script.multisig.output.encode(1, [ + const pubKey3: any = bitbox.HDNode.toPublicKey(node3) + const pubKey4: any = bitbox.HDNode.toPublicKey(node4) + const buf2: string = bitbox.Script.multisig.output.encode(1, [ pubKey3, pubKey4 ]) - const sendAmount = originalAmount - byteCount + const sendAmount: number = originalAmount - byteCount transactionBuilder.addOutput(buf2, sendAmount) - let redeemScript + let redeemScript: undefined const keyPair = bitbox.HDNode.toKeyPair(node1) transactionBuilder.sign( 0, @@ -1100,8 +1104,8 @@ describe("#TransactionBuilder", () => { transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount ) - const tx = transactionBuilder.build() - const hex = tx.toHex() + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) @@ -1136,22 +1140,22 @@ describe("#TransactionBuilder", () => { // }); }) - describe("#toMany", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2ms.toMany.mainnet.forEach((fixture: any) => { - it(`should create 1-to-2 P2MS transaction on mainnet`, () => { - const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) - const node4 = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) - const node5 = bitbox.HDNode.fromXPriv(fixture.xprivs[4]) - const node6 = bitbox.HDNode.fromXPriv(fixture.xprivs[5]) - const transactionBuilder = new bitbox.TransactionBuilder() - const txid = fixture.txHash - const originalAmount = fixture.amount - const pubKey1 = bitbox.HDNode.toPublicKey(node1) - const pubKey2 = bitbox.HDNode.toPublicKey(node2) - const buf1 = bitbox.Script.multisig.output.encode(1, [ + describe("#toMany", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2ms.toMany.mainnet.forEach((fixture: any): void => { + it(`should create 1-to-2 P2MS transaction on mainnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const node4: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) + const node5: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[4]) + const node6: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[5]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const txid: string = fixture.txHash + const originalAmount: number = fixture.amount + const pubKey1: any = bitbox.HDNode.toPublicKey(node1) + const pubKey2: any = bitbox.HDNode.toPublicKey(node2) + const buf1: string = bitbox.Script.multisig.output.encode(1, [ pubKey1, pubKey2 ]) @@ -1161,26 +1165,26 @@ describe("#TransactionBuilder", () => { transactionBuilder.DEFAULT_SEQUENCE, buf1 ) - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 3 }, { P2PKH: 3 } ) - const sendAmount = originalAmount - byteCount - const pubKey3 = bitbox.HDNode.toPublicKey(node3) - const pubKey4 = bitbox.HDNode.toPublicKey(node4) - const buf2 = bitbox.Script.multisig.output.encode(1, [ + const sendAmount: number = originalAmount - byteCount + const pubKey3: any = bitbox.HDNode.toPublicKey(node3) + const pubKey4: any = bitbox.HDNode.toPublicKey(node4) + const buf2: string = bitbox.Script.multisig.output.encode(1, [ pubKey3, pubKey4 ]) transactionBuilder.addOutput(buf2, Math.floor(sendAmount / 2)) const pubKey5 = bitbox.HDNode.toPublicKey(node5) const pubKey6 = bitbox.HDNode.toPublicKey(node6) - const buf3 = bitbox.Script.multisig.output.encode(1, [ + const buf3: string = bitbox.Script.multisig.output.encode(1, [ pubKey5, pubKey6 ]) transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) - let redeemScript + let redeemScript: undefined const keyPair = bitbox.HDNode.toKeyPair(node1) transactionBuilder.sign( 0, @@ -1189,8 +1193,8 @@ describe("#TransactionBuilder", () => { transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount ) - const tx = transactionBuilder.build() - const hex = tx.toHex() + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) @@ -1226,24 +1230,24 @@ describe("#TransactionBuilder", () => { // }); }) - describe("#manyToMany", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2ms.manyToMany.mainnet.forEach((fixture: any) => { - it(`should create 2-to-2 P2MS transaction on mainnet`, () => { - const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) - const node4 = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) - const node5 = bitbox.HDNode.fromXPriv(fixture.xprivs[4]) - const node6 = bitbox.HDNode.fromXPriv(fixture.xprivs[5]) - const node7 = bitbox.HDNode.fromXPriv(fixture.xprivs[6]) - const node8 = bitbox.HDNode.fromXPriv(fixture.xprivs[7]) - const transactionBuilder = new bitbox.TransactionBuilder() - const txid = fixture.txHash - const originalAmount = fixture.amount - const pubKey1 = bitbox.HDNode.toPublicKey(node1) - const pubKey2 = bitbox.HDNode.toPublicKey(node2) - const buf1 = bitbox.Script.multisig.output.encode(1, [ + describe("#manyToMany", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2ms.manyToMany.mainnet.forEach((fixture: any): void => { + it(`should create 2-to-2 P2MS transaction on mainnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const node4: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) + const node5: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[4]) + const node6: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[5]) + const node7: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[6]) + const node8: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[7]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const txid: string = fixture.txHash + const originalAmount: number = fixture.amount + const pubKey1: any = bitbox.HDNode.toPublicKey(node1) + const pubKey2: any = bitbox.HDNode.toPublicKey(node2) + const buf1: string = bitbox.Script.multisig.output.encode(1, [ pubKey1, pubKey2 ]) @@ -1253,9 +1257,9 @@ describe("#TransactionBuilder", () => { transactionBuilder.DEFAULT_SEQUENCE, buf1 ) - const pubKey3 = bitbox.HDNode.toPublicKey(node3) - const pubKey4 = bitbox.HDNode.toPublicKey(node4) - const buf2 = bitbox.Script.multisig.output.encode(1, [ + const pubKey3: any = bitbox.HDNode.toPublicKey(node3) + const pubKey4: any = bitbox.HDNode.toPublicKey(node4) + const buf2: string = bitbox.Script.multisig.output.encode(1, [ pubKey3, pubKey4 ]) @@ -1265,28 +1269,28 @@ describe("#TransactionBuilder", () => { transactionBuilder.DEFAULT_SEQUENCE, buf2 ) - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 3 }, { P2PKH: 3 } ) - const sendAmount = originalAmount - byteCount + const sendAmount: number = originalAmount - byteCount const pubKey5 = bitbox.HDNode.toPublicKey(node5) const pubKey6 = bitbox.HDNode.toPublicKey(node6) - const buf3 = bitbox.Script.multisig.output.encode(1, [ + const buf3: string = bitbox.Script.multisig.output.encode(1, [ pubKey5, pubKey6 ]) transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) const pubKey7 = bitbox.HDNode.toPublicKey(node7) const pubKey8 = bitbox.HDNode.toPublicKey(node8) - const buf4 = bitbox.Script.multisig.output.encode(1, [ + const buf4: string = bitbox.Script.multisig.output.encode(1, [ pubKey7, pubKey8 ]) transactionBuilder.addOutput(buf4, Math.floor(sendAmount / 2)) - let redeemScript - const keyPair1 = bitbox.HDNode.toKeyPair(node1) - const keyPair2 = bitbox.HDNode.toKeyPair(node3) + let redeemScript: undefined + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node3) transactionBuilder.sign( 0, keyPair1, @@ -1301,8 +1305,8 @@ describe("#TransactionBuilder", () => { transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount / 2 ) - const tx = transactionBuilder.build() - const hex = tx.toHex() + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) @@ -1335,22 +1339,22 @@ describe("#TransactionBuilder", () => { // }); }) - describe("#fromMany", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2ms.fromMany.mainnet.forEach((fixture: any) => { - it(`should create 2-to-1 P2MS transaction on mainnet`, () => { - const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) - const node4 = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) - const node5 = bitbox.HDNode.fromXPriv(fixture.xprivs[4]) - const node6 = bitbox.HDNode.fromXPriv(fixture.xprivs[5]) - const transactionBuilder = new bitbox.TransactionBuilder() - const txid = fixture.txHash - const originalAmount = fixture.amount - const pubKey1 = bitbox.HDNode.toPublicKey(node1) - const pubKey2 = bitbox.HDNode.toPublicKey(node2) - const buf1 = bitbox.Script.multisig.output.encode(1, [ + describe("#fromMany", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2ms.fromMany.mainnet.forEach((fixture: any): void => { + it(`should create 2-to-1 P2MS transaction on mainnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const node4: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) + const node5: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[4]) + const node6: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[5]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const txid: string = fixture.txHash + const originalAmount: number = fixture.amount + const pubKey1: any = bitbox.HDNode.toPublicKey(node1) + const pubKey2: any = bitbox.HDNode.toPublicKey(node2) + const buf1: string = bitbox.Script.multisig.output.encode(1, [ pubKey1, pubKey2 ]) @@ -1360,9 +1364,9 @@ describe("#TransactionBuilder", () => { transactionBuilder.DEFAULT_SEQUENCE, buf1 ) - const pubKey3 = bitbox.HDNode.toPublicKey(node3) - const pubKey4 = bitbox.HDNode.toPublicKey(node4) - const buf2 = bitbox.Script.multisig.output.encode(1, [ + const pubKey3: any = bitbox.HDNode.toPublicKey(node3) + const pubKey4: any = bitbox.HDNode.toPublicKey(node4) + const buf2: string = bitbox.Script.multisig.output.encode(1, [ pubKey3, pubKey4 ]) @@ -1372,21 +1376,21 @@ describe("#TransactionBuilder", () => { transactionBuilder.DEFAULT_SEQUENCE, buf2 ) - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 3 }, { P2PKH: 3 } ) - const sendAmount = originalAmount - byteCount - const pubKey5 = bitbox.HDNode.toPublicKey(node5) - const pubKey6 = bitbox.HDNode.toPublicKey(node6) - const buf3 = bitbox.Script.multisig.output.encode(1, [ + const sendAmount: number = originalAmount - byteCount + const pubKey5: any = bitbox.HDNode.toPublicKey(node5) + const pubKey6: any = bitbox.HDNode.toPublicKey(node6) + const buf3: string = bitbox.Script.multisig.output.encode(1, [ pubKey5, pubKey6 ]) transactionBuilder.addOutput(buf3, sendAmount) - let redeemScript - const keyPair1 = bitbox.HDNode.toKeyPair(node1) - const keyPair2 = bitbox.HDNode.toKeyPair(node3) + let redeemScript: undefined + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node3) transactionBuilder.sign( 0, keyPair1, @@ -1401,8 +1405,8 @@ describe("#TransactionBuilder", () => { transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount / 2 ) - const tx = transactionBuilder.build() - const hex = tx.toHex() + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) @@ -1435,37 +1439,37 @@ describe("#TransactionBuilder", () => { }) }) - describe("#P2SH", () => { - describe("#toOne", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2sh.toOne.mainnet.forEach((fixture: any) => { - it(`should create 1-to-1 P2SH transaction on mainnet`, () => { - const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const transactionBuilder = new bitbox.TransactionBuilder() - const txid = fixture.txHash - const originalAmount = fixture.amount - const identifier1 = bitbox.HDNode.toIdentifier(node1) - const buf1 = bitbox.Script.encode([ + describe("#P2SH", (): void => { + describe("#toOne", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2sh.toOne.mainnet.forEach((fixture: any): void => { + it(`should create 1-to-1 P2SH transaction on mainnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const txid: string = fixture.txHash + const originalAmount: number = fixture.amount + const identifier1: string = bitbox.HDNode.toIdentifier(node1) + const buf1: any = bitbox.Script.encode([ bitbox.Script.opcodes.OP_DUP, bitbox.Script.opcodes.OP_HASH160, identifier1, bitbox.Script.opcodes.OP_EQUALVERIFY, bitbox.Script.opcodes.OP_CHECKSIG ]) - const scriptHash1 = bitbox.Crypto.hash160(buf1) - const data1 = bitbox.Script.scriptHash.output.encode(scriptHash1) + const scriptHash1: any = bitbox.Crypto.hash160(buf1) + const data1: string = bitbox.Script.scriptHash.output.encode(scriptHash1) transactionBuilder.addInput( txid, 0, transactionBuilder.DEFAULT_SEQUENCE, data1 ) - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 2 }, { P2PKH: 1 } ) - const sendAmount = originalAmount - byteCount + const sendAmount: number = originalAmount - byteCount const identifier2 = bitbox.HDNode.toIdentifier(node2) const buf2 = bitbox.Script.encode([ bitbox.Script.opcodes.OP_DUP, @@ -1476,9 +1480,9 @@ describe("#TransactionBuilder", () => { ]) const scriptHash2 = bitbox.Crypto.hash160(buf2) - const data2 = bitbox.Script.scriptHash.output.encode(scriptHash2) + const data2: string = bitbox.Script.scriptHash.output.encode(scriptHash2) transactionBuilder.addOutput(data2, sendAmount) - const keyPair1 = bitbox.HDNode.toKeyPair(node1) + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) transactionBuilder.sign( 0, keyPair1, @@ -1486,8 +1490,8 @@ describe("#TransactionBuilder", () => { transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount ) - const tx = transactionBuilder.build() - const hex = tx.toHex() + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) @@ -1522,37 +1526,37 @@ describe("#TransactionBuilder", () => { // }); }) - describe("#toMany", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2sh.toMany.mainnet.forEach((fixture: any) => { - it(`should create 1-to-2 P2SH transaction on mainnet`, () => { - const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) - const transactionBuilder = new bitbox.TransactionBuilder() - const txid = fixture.txHash - const originalAmount = fixture.amount - const identifier1 = bitbox.HDNode.toIdentifier(node1) - const buf1 = bitbox.Script.encode([ + describe("#toMany", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2sh.toMany.mainnet.forEach((fixture: any): void => { + it(`should create 1-to-2 P2SH transaction on mainnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const txid: string = fixture.txHash + const originalAmount: number = fixture.amount + const identifier1: string = bitbox.HDNode.toIdentifier(node1) + const buf1: any = bitbox.Script.encode([ bitbox.Script.opcodes.OP_DUP, bitbox.Script.opcodes.OP_HASH160, identifier1, bitbox.Script.opcodes.OP_EQUALVERIFY, bitbox.Script.opcodes.OP_CHECKSIG ]) - const scriptHash1 = bitbox.Crypto.hash160(buf1) - const data1 = bitbox.Script.scriptHash.output.encode(scriptHash1) + const scriptHash1: any = bitbox.Crypto.hash160(buf1) + const data1: string = bitbox.Script.scriptHash.output.encode(scriptHash1) transactionBuilder.addInput( txid, 0, transactionBuilder.DEFAULT_SEQUENCE, data1 ) - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 3 }, { P2PKH: 2 } ) - const sendAmount = originalAmount - byteCount + const sendAmount: number = originalAmount - byteCount const identifier2 = bitbox.HDNode.toIdentifier(node2) const buf2 = bitbox.Script.encode([ bitbox.Script.opcodes.OP_DUP, @@ -1562,7 +1566,7 @@ describe("#TransactionBuilder", () => { bitbox.Script.opcodes.OP_CHECKSIG ]) const scriptHash2 = bitbox.Crypto.hash160(buf2) - const data2 = bitbox.Script.scriptHash.output.encode(scriptHash2) + const data2: string = bitbox.Script.scriptHash.output.encode(scriptHash2) transactionBuilder.addOutput(data2, Math.floor(sendAmount / 2)) const identifier3 = bitbox.HDNode.toIdentifier(node3) const buf3 = bitbox.Script.encode([ @@ -1573,9 +1577,9 @@ describe("#TransactionBuilder", () => { bitbox.Script.opcodes.OP_CHECKSIG ]) const scriptHash3 = bitbox.Crypto.hash160(buf3) - const data3 = bitbox.Script.scriptHash.output.encode(scriptHash3) + const data3: string = bitbox.Script.scriptHash.output.encode(scriptHash3) transactionBuilder.addOutput(data3, Math.floor(sendAmount / 2)) - const keyPair1 = bitbox.HDNode.toKeyPair(node1) + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) transactionBuilder.sign( 0, keyPair1, @@ -1583,8 +1587,8 @@ describe("#TransactionBuilder", () => { transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount ) - const tx = transactionBuilder.build() - const hex = tx.toHex() + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) @@ -1620,48 +1624,48 @@ describe("#TransactionBuilder", () => { // }); }) - describe("#manyToMany", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2sh.manyToMany.mainnet.forEach((fixture: any) => { - it(`should create 2-to-2 P2SH transaction on mainnet`, () => { - const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) - const node4 = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) - const transactionBuilder = new bitbox.TransactionBuilder() - const txid = fixture.txHash - const originalAmount = fixture.amount - const identifier1 = bitbox.HDNode.toIdentifier(node1) - const buf1 = bitbox.Script.encode([ + describe("#manyToMany", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2sh.manyToMany.mainnet.forEach((fixture: any): void => { + it(`should create 2-to-2 P2SH transaction on mainnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const node4: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const txid: string = fixture.txHash + const originalAmount: number = fixture.amount + const identifier1: string = bitbox.HDNode.toIdentifier(node1) + const buf1: any = bitbox.Script.encode([ bitbox.Script.opcodes.OP_DUP, bitbox.Script.opcodes.OP_HASH160, identifier1, bitbox.Script.opcodes.OP_EQUALVERIFY, bitbox.Script.opcodes.OP_CHECKSIG ]) - const scriptHash1 = bitbox.Crypto.hash160(buf1) - const data1 = bitbox.Script.scriptHash.output.encode(scriptHash1) + const scriptHash1: any = bitbox.Crypto.hash160(buf1) + const data1: string = bitbox.Script.scriptHash.output.encode(scriptHash1) transactionBuilder.addInput( txid, 0, transactionBuilder.DEFAULT_SEQUENCE, data1 ) - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 5 }, { P2PKH: 5 } ) - const sendAmount = originalAmount - byteCount - const identifier2 = bitbox.HDNode.toIdentifier(node2) - const buf2 = bitbox.Script.encode([ + const sendAmount: number = originalAmount - byteCount + const identifier2: string = bitbox.HDNode.toIdentifier(node2) + const buf2: string = bitbox.Script.encode([ bitbox.Script.opcodes.OP_DUP, bitbox.Script.opcodes.OP_HASH160, identifier2, bitbox.Script.opcodes.OP_EQUALVERIFY, bitbox.Script.opcodes.OP_CHECKSIG ]) - const scriptHash2 = bitbox.Crypto.hash160(buf2) - const data2 = bitbox.Script.scriptHash.output.encode(scriptHash2) + const scriptHash2: Buffer = bitbox.Crypto.hash160(buf2) + const data2: string = bitbox.Script.scriptHash.output.encode(scriptHash2) transactionBuilder.addInput( txid, 1, @@ -1669,29 +1673,29 @@ describe("#TransactionBuilder", () => { data2 ) const identifier3 = bitbox.HDNode.toIdentifier(node3) - const buf3 = bitbox.Script.encode([ + const buf3: string = bitbox.Script.encode([ bitbox.Script.opcodes.OP_DUP, bitbox.Script.opcodes.OP_HASH160, identifier3, bitbox.Script.opcodes.OP_EQUALVERIFY, bitbox.Script.opcodes.OP_CHECKSIG ]) - const scriptHash3 = bitbox.Crypto.hash160(buf3) - const data3 = bitbox.Script.scriptHash.output.encode(scriptHash3) + const scriptHash3: Buffer = bitbox.Crypto.hash160(buf3) + const data3: string = bitbox.Script.scriptHash.output.encode(scriptHash3) transactionBuilder.addOutput(data3, Math.floor(sendAmount / 2)) - const identifier4 = bitbox.HDNode.toIdentifier(node4) - const buf4 = bitbox.Script.encode([ + const identifier4: string = bitbox.HDNode.toIdentifier(node4) + const buf4: string = bitbox.Script.encode([ bitbox.Script.opcodes.OP_DUP, bitbox.Script.opcodes.OP_HASH160, identifier4, bitbox.Script.opcodes.OP_EQUALVERIFY, bitbox.Script.opcodes.OP_CHECKSIG ]) - const scriptHash4 = bitbox.Crypto.hash160(buf4) - const data4 = bitbox.Script.scriptHash.output.encode(scriptHash4) + const scriptHash4: Buffer = bitbox.Crypto.hash160(buf4) + const data4: string = bitbox.Script.scriptHash.output.encode(scriptHash4) transactionBuilder.addOutput(data4, Math.floor(sendAmount / 2)) - const keyPair1 = bitbox.HDNode.toKeyPair(node1) - const keyPair2 = bitbox.HDNode.toKeyPair(node2) + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) transactionBuilder.sign( 0, keyPair1, @@ -1706,8 +1710,8 @@ describe("#TransactionBuilder", () => { transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount / 2 ) - const tx = transactionBuilder.build() - const hex = tx.toHex() + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) @@ -1740,25 +1744,25 @@ describe("#TransactionBuilder", () => { // }); }) - describe("#fromMany", () => { - describe("#Mainnet", () => { - fixtures.scripts.p2sh.fromMany.mainnet.forEach((fixture: any) => { - it(`should create 2-to-1 P2SH transaction on mainnet`, () => { - const node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const node3 = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) - const transactionBuilder = new bitbox.TransactionBuilder() - const txid = fixture.txHash - const originalAmount = fixture.amount - const identifier1 = bitbox.HDNode.toIdentifier(node1) - const buf1 = bitbox.Script.encode([ + describe("#fromMany", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2sh.fromMany.mainnet.forEach((fixture: any): void => { + it(`should create 2-to-1 P2SH transaction on mainnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const txid: string = fixture.txHash + const originalAmount: number = fixture.amount + const identifier1: string = bitbox.HDNode.toIdentifier(node1) + const buf1: any = bitbox.Script.encode([ bitbox.Script.opcodes.OP_DUP, bitbox.Script.opcodes.OP_HASH160, identifier1, bitbox.Script.opcodes.OP_EQUALVERIFY, bitbox.Script.opcodes.OP_CHECKSIG ]) - const scriptHash1 = bitbox.Crypto.hash160(buf1) + const scriptHash1: any = bitbox.Crypto.hash160(buf1) const data1 = bitbox.Script.scriptHash.output.encode(scriptHash1) transactionBuilder.addInput( txid, @@ -1766,11 +1770,11 @@ describe("#TransactionBuilder", () => { transactionBuilder.DEFAULT_SEQUENCE, data1 ) - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 3 }, { P2PKH: 2 } ) - const sendAmount = originalAmount - byteCount + const sendAmount: number = originalAmount - byteCount const identifier2 = bitbox.HDNode.toIdentifier(node2) const buf2 = bitbox.Script.encode([ bitbox.Script.opcodes.OP_DUP, @@ -1798,8 +1802,8 @@ describe("#TransactionBuilder", () => { const scriptHash3 = bitbox.Crypto.hash160(buf3) const data3 = bitbox.Script.scriptHash.output.encode(scriptHash3) transactionBuilder.addOutput(data3, sendAmount) - const keyPair1 = bitbox.HDNode.toKeyPair(node1) - const keyPair2 = bitbox.HDNode.toKeyPair(node2) + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) transactionBuilder.sign( 0, keyPair1, @@ -1814,8 +1818,8 @@ describe("#TransactionBuilder", () => { transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount / 2 ) - const tx = transactionBuilder.build() - const hex = tx.toHex() + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) @@ -1848,20 +1852,20 @@ describe("#TransactionBuilder", () => { }) }) - describe("#op_return", () => { - describe("#Mainnet", () => { - fixtures.nulldata.mainnet.forEach((fixture: any) => { - it(`should create transaction w/ OP_RETURN output on mainnet`, () => { - const node = bitbox.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new bitbox.TransactionBuilder() - const txHash = fixture.txHash - const originalAmount = fixture.amount + describe("#op_return", (): void => { + describe("#Mainnet", (): void => { + fixtures.nulldata.mainnet.forEach((fixture: any): void => { + it(`should create transaction w/ OP_RETURN output on mainnet`, (): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const txHash: string = fixture.txHash + const originalAmount: number = fixture.amount transactionBuilder.addInput(txHash, 0) - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 5 } ) - const sendAmount = originalAmount - byteCount + const sendAmount: number = originalAmount - byteCount transactionBuilder.addOutput(fixture.output, sendAmount) const data = fixture.data const buf = bitbox.Script.nullData.output.encode( @@ -1869,7 +1873,7 @@ describe("#TransactionBuilder", () => { ) transactionBuilder.addOutput(buf, 0) const keyPair = bitbox.HDNode.toKeyPair(node) - let redeemScript + let redeemScript: undefined transactionBuilder.sign( 0, keyPair, @@ -1877,26 +1881,26 @@ describe("#TransactionBuilder", () => { transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amount ) - const tx = transactionBuilder.build() - const hex = tx.toHex() + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) }) - describe("#Testnet", () => { - fixtures.nulldata.testnet.forEach((fixture: any) => { - it(`should create transaction w/ OP_RETURN output on testnet`, () => { - const node = bitbox.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new bitbox.TransactionBuilder("testnet") - const txHash = fixture.txHash - const originalAmount = fixture.amount + describe("#Testnet", (): void => { + fixtures.nulldata.testnet.forEach((fixture: any): void => { + it(`should create transaction w/ OP_RETURN output on testnet`, (): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") + const txHash: string = fixture.txHash + const originalAmount: number = fixture.amount transactionBuilder.addInput(txHash, 0) - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 5 } ) - const sendAmount = originalAmount - byteCount + const sendAmount: number = originalAmount - byteCount transactionBuilder.addOutput(fixture.output, sendAmount) const data = fixture.data const buf = bitbox.Script.nullData.output.encode( @@ -1904,7 +1908,7 @@ describe("#TransactionBuilder", () => { ) transactionBuilder.addOutput(buf, 0) const keyPair = bitbox.HDNode.toKeyPair(node) - let redeemScript + let redeemScript: undefined transactionBuilder.sign( 0, keyPair, @@ -1912,26 +1916,26 @@ describe("#TransactionBuilder", () => { transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amount ) - const tx = transactionBuilder.build() - const hex = tx.toHex() + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) }) - describe("#RegTest", () => { - fixtures.nulldata.regtest.forEach((fixture: any) => { - it(`should create transaction w/ OP_RETURN output on regtest`, () => { - const node = bitbox.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new bitbox.TransactionBuilder("regtest") - const txHash = fixture.txHash - const originalAmount = fixture.amount + describe("#RegTest", (): void => { + fixtures.nulldata.regtest.forEach((fixture: any): void => { + it(`should create transaction w/ OP_RETURN output on regtest`, (): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("regtest") + const txHash: string = fixture.txHash + const originalAmount: number = fixture.amount transactionBuilder.addInput(txHash, 0) - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 5 } ) - const sendAmount = originalAmount - byteCount + const sendAmount: number = originalAmount - byteCount transactionBuilder.addOutput(fixture.output, sendAmount) const data = fixture.data const buf = bitbox.Script.nullData.output.encode( @@ -1939,7 +1943,7 @@ describe("#TransactionBuilder", () => { ) transactionBuilder.addOutput(buf, 0) const keyPair = bitbox.HDNode.toKeyPair(node) - let redeemScript + let redeemScript: undefined transactionBuilder.sign( 0, keyPair, @@ -1947,86 +1951,85 @@ describe("#TransactionBuilder", () => { transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amount ) - const tx = transactionBuilder.build() - const hex = tx.toHex() + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) }) }) - describe("#bip66", () => { - fixtures.bip66.forEach((fixture: any) => { - it(`should bip66 encode as ${fixture.DER}`, () => { - const transactionBuilder = new bitbox.TransactionBuilder() - const r = Buffer.from(fixture.r, "hex") - const s = Buffer.from(fixture.s, "hex") - const DER = transactionBuilder.bip66.encode(r, s) + describe("#bip66", (): void => { + fixtures.bip66.forEach((fixture: any): void => { + it(`should bip66 encode as ${fixture.DER}`, (): void => { + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const r: Buffer = Buffer.from(fixture.r, "hex") + const s: Buffer = Buffer.from(fixture.s, "hex") + const DER: Buffer = transactionBuilder.bip66.encode(r, s) assert.equal(DER.toString("hex"), fixture.DER) }) }) - fixtures.bip66.forEach((fixture: any) => { - it(`should bip66 decode ${fixture.DER}`, () => { - const transactionBuilder = new bitbox.TransactionBuilder() - const buffer = Buffer.from(fixture.DER, "hex") - const signature = transactionBuilder.bip66.decode(buffer) + fixtures.bip66.forEach((fixture: any): void => { + it(`should bip66 decode ${fixture.DER}`, (): void => { + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const buffer: Buffer = Buffer.from(fixture.DER, "hex") + const signature: any = transactionBuilder.bip66.decode(buffer) assert.equal(signature.r.toString("hex"), fixture.r) assert.equal(signature.s.toString("hex"), fixture.s) }) }) - fixtures.bip66.forEach((fixture: any) => { - it(`should bip66 check ${fixture.DER}`, () => { - const transactionBuilder = new bitbox.TransactionBuilder() - const buffer = Buffer.from(fixture.DER, "hex") + fixtures.bip66.forEach((fixture: any): void => { + it(`should bip66 check ${fixture.DER}`, (): void => { + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const buffer: Buffer = Buffer.from(fixture.DER, "hex") assert.equal(transactionBuilder.bip66.check(buffer), true) }) }) }) - describe("#bip68", () => { - fixtures.bip68.encode.forEach((fixture: any) => { - it(`should bip68 encode as ${fixture.result}`, () => { - const transactionBuilder = new bitbox.TransactionBuilder() + describe("#bip68", (): void => { + fixtures.bip68.encode.forEach((fixture: any): void => { + it(`should bip68 encode as ${fixture.result}`, (): void => { + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() const obj: any = {} obj[fixture.type] = fixture.value - const encode = transactionBuilder.bip68.encode(obj) + const encode: any = transactionBuilder.bip68.encode(obj) assert.equal(encode, fixture.result) }) }) - fixtures.bip68.decode.forEach((fixture: any) => { - it(`should bip68 decode ${fixture.result}`, () => { - const transactionBuilder = new bitbox.TransactionBuilder() - const obj = {} - const decode = transactionBuilder.bip68.decode(fixture.result) + fixtures.bip68.decode.forEach((fixture: any): void => { + it(`should bip68 decode ${fixture.result}`, (): void => { + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const decode: any = transactionBuilder.bip68.decode(fixture.result) assert.equal(Object.keys(decode)[0], fixture.type) assert.deepEqual(decode[Object.keys(decode)[0]], fixture.value) }) }) }) - describe("#LockTime", () => { - describe("#Mainnet", () => { - fixtures.locktime.mainnet.forEach((fixture: any) => { - it(`should create transaction with nLockTime on mainnet`, () => { - const node = bitbox.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder = new bitbox.TransactionBuilder() + describe("#LockTime", (): void => { + describe("#Mainnet", (): void => { + fixtures.locktime.mainnet.forEach((fixture: any): void => { + it(`should create transaction with nLockTime on mainnet`, (): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() - const txHash = fixture.txHash - const originalAmount = fixture.amount + const txHash: string = fixture.txHash + const originalAmount: number = fixture.amount transactionBuilder.addInput(txHash, 0, 1) - const byteCount = bitbox.BitcoinCash.getByteCount( + const byteCount: number = bitbox.BitcoinCash.getByteCount( { P2PKH: 1 }, { P2PKH: 1 } ) - const sendAmount = originalAmount - byteCount + const sendAmount: number = originalAmount - byteCount transactionBuilder.addOutput(fixture.output, sendAmount) const lockTime = fixture.lockTime transactionBuilder.setLockTime(lockTime) const keyPair = bitbox.HDNode.toKeyPair(node) - let redeemScript + let redeemScript: undefined transactionBuilder.sign( 0, keyPair, @@ -2034,8 +2037,8 @@ describe("#TransactionBuilder", () => { transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amount ) - const tx = transactionBuilder.build() - const hex = tx.toHex() + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() assert.equal(hex, fixture.hex) }) }) diff --git a/test/unit/Util.ts b/test/unit/Util.ts index 59fd4e15..ccfb6b16 100644 --- a/test/unit/Util.ts +++ b/test/unit/Util.ts @@ -1,36 +1,37 @@ +// imports import * as chai from "chai" -const assert = chai.assert +import { BITBOX } from "../../lib/BITBOX" +import { Util } from "../../lib/Util" +import { resturl } from "../../lib/BITBOX" +import * as util from "util" +import { AddressDetailsResult, AddressUtxoResult, AddressUnconfirmedResult } from "bitcoin-com-rest"; -// TODO: port from require to import syntax -const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() -const Util = require("../../lib/Util").Util -const resturl = require("../../lib/BITBOX").resturl +// conts +const bitbox: BITBOX = new BITBOX() +const assert: Chai.AssertStatic = chai.assert -// Inspect utility used for debugging. -const util = require("util") util.inspect.defaultOptions = { showHidden: true, colors: true, depth: 3 } -describe("#Util", () => { - describe("#UtilConstructor", () => { - it("should create instance of Util", () => { - const util = new Util() +describe("#Util", (): void => { + describe("#UtilConstructor", (): void => { + it("should create instance of Util", (): void => { + const util: Util = new Util() assert.equal(util instanceof Util, true) }) - it("should have a restURL property", () => { - const util = new Util() + it("should have a restURL property", (): void => { + const util: Util = new Util() assert.equal(util.restURL, resturl) }) }) - describe(`#validateAddress`, () => { + describe(`#validateAddress`, (): void => { it(`should return false for testnet addr on mainnet`, async () => { - const address = `bchtest:qqqk4y6lsl5da64sg5qc3xezmplyu5kmpyz2ysaa5y` + const address: string = `bchtest:qqqk4y6lsl5da64sg5qc3xezmplyu5kmpyz2ysaa5y` const result = await bitbox.Util.validateAddress(address) //console.log(`result: ${JSON.stringify(result, null, 2)}`) @@ -40,7 +41,7 @@ describe("#Util", () => { }) it(`should return false for bad address`, async () => { - const address = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peu` + const address: string = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peu` const result = await bitbox.Util.validateAddress(address) //console.log(`result: ${JSON.stringify(result, null, 2)}`) @@ -50,7 +51,7 @@ describe("#Util", () => { }) it(`should return validate valid address`, async () => { - const address = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` + const address: string = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` const result = await bitbox.Util.validateAddress(address) //console.log(`result: ${JSON.stringify(result, null, 2)}`) @@ -67,7 +68,7 @@ describe("#Util", () => { }) it(`should validate an array of addresses`, async () => { - const address = [ + const address: string[] = [ `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z`, `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` ] @@ -88,7 +89,7 @@ describe("#Util", () => { it(`should throw an error for improper single input`, async () => { try { - const address = 15432 + const address: any = 15432 await bitbox.Util.validateAddress(address) assert.equal(true, false, "Unexpected result!") @@ -103,9 +104,9 @@ describe("#Util", () => { it(`should throw error on array size rate limit`, async () => { try { - const dataMock = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` - const data = [] - for (let i = 0; i < 25; i++) data.push(dataMock) + const dataMock: string = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` + const data: string[] = [] + for (let i: number = 0; i < 25; i++) data.push(dataMock) const result = await bitbox.Util.validateAddress(data) From 42e7a2579058898efe6014d9244be4fbffb1703d Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Mon, 13 May 2019 15:29:15 +0900 Subject: [PATCH 368/480] Fixing test errors/warnings --- lib/Mnemonic.ts | 9 +++--- test/unit/Address.ts | 56 ++++++++++++++------------------- test/unit/Block.ts | 53 ++++++++++++++----------------- test/unit/Crypto.ts | 2 +- test/unit/HDNode.ts | 5 ++- test/unit/Mnemonic.ts | 12 +++---- test/unit/Script.ts | 5 ++- test/unit/TransactionBuilder.ts | 7 ++--- 8 files changed, 65 insertions(+), 84 deletions(-) diff --git a/lib/Mnemonic.ts b/lib/Mnemonic.ts index 39a3646f..8897f56f 100644 --- a/lib/Mnemonic.ts +++ b/lib/Mnemonic.ts @@ -14,19 +14,19 @@ export class Mnemonic { this._address = address } - public generate(bits: number = 128, wordlist?: string[]): string { + public generate(bits: number = 128, wordlist: string[] = this.wordLists().english): string { return BIP39.generateMnemonic(bits, randomBytes, wordlist) } - public fromEntropy(bytes: Buffer, wordlist: string[]): string { + public fromEntropy(bytes: Buffer, wordlist: string[] = this.wordLists().english): string { return BIP39.entropyToMnemonic(bytes, wordlist) } - public toEntropy(mnemonic: string, wordlist: string[]): Buffer { + public toEntropy(mnemonic: string, wordlist: string[] = this.wordLists().english): Buffer { return Buffer.from(BIP39.mnemonicToEntropy(mnemonic, wordlist), "hex") } - public validate(mnemonic: string, wordlist: string[]): string { + public validate(mnemonic: string, wordlist: string[] = this.wordLists().english): string { // Preprocess the words const words = mnemonic.split(" ") // Detect blank phrase @@ -42,7 +42,6 @@ export class Mnemonic { } } // Check the words are valid - const properPhrase = words.join() const isValid = BIP39.validateMnemonic(mnemonic, wordlist) if (!isValid) return "Invalid mnemonic" diff --git a/test/unit/Address.ts b/test/unit/Address.ts index 1ad105d7..965095c2 100644 --- a/test/unit/Address.ts +++ b/test/unit/Address.ts @@ -3,6 +3,7 @@ import * as chai from "chai" import { BITBOX } from "../../lib/BITBOX" import { Address } from "../../lib/Address" import { resturl } from "../../lib/BITBOX" +import { AddressDetailsResult, AddressUtxoResult, AddressUnconfirmedResult } from "bitcoin-com-rest"; // consts const bitbox: BITBOX = new BITBOX() @@ -1142,10 +1143,9 @@ describe("#Address", (): void => { describe(`#utxo`, (): void => { describe(`#details`, (): void => { it(`should GET address details for a single address`, async (): void => { - const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + const addr: string = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - const result = await bitbox.Address.details(addr) - //console.log(`result: ${util.inspect(result)}`) + const result: AddressDetailsResult | AddressDetailsResult[] = await bitbox.Address.details(addr) assert.hasAllKeys(result, [ "balance", @@ -1173,7 +1173,7 @@ describe("#Address", (): void => { "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" ] - const result = await bitbox.Address.details(addr) + const result: AddressDetailsResult | AddressDetailsResult[] = await bitbox.Address.details(addr) //console.log(`result: ${util.inspect(result)}`) assert.isArray(result) @@ -1228,10 +1228,9 @@ describe("#Address", (): void => { } }) it(`should GET utxos for a single address`, async () => { - const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + const addr: string = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - const result = await bitbox.Address.utxo(addr) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) + const result: AddressUtxoResult | AddressUtxoResult[] = await bitbox.Address.utxo(addr) assert.hasAllKeys(result, [ "utxos", @@ -1251,13 +1250,12 @@ describe("#Address", (): void => { }) it(`should GET utxo details for an array of addresses`, async () => { - const addr = [ + const addr: string[] = [ "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" ] - const result = await bitbox.Address.utxo(addr) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) + const result: AddressUtxoResult | AddressUtxoResult[] = await bitbox.Address.utxo(addr) assert.isArray(result) assert.hasAllKeys(result[0], [ @@ -1292,13 +1290,13 @@ describe("#Address", (): void => { } }) - it(`should throw error on array size rate limit`, async () => { + it(`should throw error on array size rate limit`, async (): Promise => { try { const addr: string[] = [] for (let i: number = 0; i < 25; i++) addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - const result = await bitbox.Address.utxo(addr) + const result: AddressUtxoResult | AddressUtxoResult[] = await bitbox.Address.utxo(addr) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") @@ -1310,24 +1308,22 @@ describe("#Address", (): void => { }) describe(`#unconfirmed`, (): void => { - it(`should GET unconfirmed details on a single address`, async () => { + it(`should GET unconfirmed details on a single address`, async (): Promise => { const addr: string = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" - const result = await bitbox.Address.unconfirmed(addr) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) + const result: AddressUnconfirmedResult | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed(addr) assert.hasAllKeys(result, ["utxos", "legacyAddress", "cashAddress"]) assert.isArray(result.utxos) }) - it(`should GET unconfirmed details on multiple addresses`, async () => { + it(`should GET unconfirmed details on multiple addresses`, async (): Promise => { const addr = [ "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" ] - const result = await bitbox.Address.unconfirmed(addr) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) + const result: AddressUnconfirmedResult | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed(addr) assert.isArray(result) assert.hasAllKeys(result[0], ["utxos", "legacyAddress", "cashAddress"]) @@ -1336,7 +1332,7 @@ describe("#Address", (): void => { it(`should throw an error for improper input`, async () => { try { - const addr = 12345 + const addr: any = 12345 await bitbox.Address.unconfirmed(addr) assert.equal(true, false, "Unexpected result!") @@ -1349,13 +1345,13 @@ describe("#Address", (): void => { } }) - it(`should throw error on array size rate limit`, async () => { + it(`should throw error on array size rate limit`, async (): Promise => { try { const addr: string[] = [] for (let i: number = 0; i < 25; i++) addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - const result = await bitbox.Address.unconfirmed(addr) + const result: AddressUnconfirmedResult | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed(addr) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") @@ -1367,11 +1363,9 @@ describe("#Address", (): void => { }) describe(`#transactions`, (): void => { - it(`should GET transactions for a single address`, async () => { + it(`should GET transactions for a single address`, async (): Promise => { const addr: string = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" - - const result = await bitbox.Address.transactions(addr) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) + const result: any = await bitbox.Address.transactions(addr) assert.hasAllKeys(result, [ "txs", @@ -1397,14 +1391,12 @@ describe("#Address", (): void => { ]) }) - it(`should get transactions on multiple addresses`, async () => { + it(`should get transactions on multiple addresses`, async (): Promise => { const addr: string[] = [ "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" ] - - const result = await bitbox.Address.transactions(addr) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) + const result: any = await bitbox.Address.transactions(addr) assert.isArray(result) assert.hasAllKeys(result[0], [ @@ -1431,7 +1423,7 @@ describe("#Address", (): void => { ]) }) - it(`should throw an error for improper input`, async () => { + it(`should throw an error for improper input`, async (): Promise => { try { const addr: any = 12345 @@ -1446,13 +1438,13 @@ describe("#Address", (): void => { } }) - it(`should throw error on array size rate limit`, async () => { + it(`should throw error on array size rate limit`, async (): Promise => { try { const addr: string[] = [] for (let i: number = 0; i < 25; i++) addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - const result = await bitbox.Address.transactions(addr) + const result: any = await bitbox.Address.transactions(addr) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") diff --git a/test/unit/Block.ts b/test/unit/Block.ts index 90c7bdaf..9dc6a497 100644 --- a/test/unit/Block.ts +++ b/test/unit/Block.ts @@ -6,6 +6,7 @@ import { BITBOX } from "../../lib/BITBOX" import { Block } from "../../lib/Block" import { resturl } from "../../lib/BITBOX" import * as util from "util" +import { BlockDetails, AddressUtxoResult, AddressUnconfirmedResult } from "bitcoin-com-rest"; // consts const bitbox: BITBOX = new BITBOX() @@ -35,8 +36,8 @@ describe("#Block", (): void => { beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) - it("should get block details", async () => { - const data = { + it("should get block details", async (): Promise => { + const data: any = { hash: "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", size: 216, @@ -62,10 +63,10 @@ describe("#Block", (): void => { isMainChain: true, poolInfo: {} } - const resolved = new Promise(r => r({ data: data })) + const resolved: Promise = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - const result = await bitbox.Block.detailsByHash( + const result: BlockDetails | BlockDetails[] = await bitbox.Block.detailsByHash( "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0" ) @@ -78,8 +79,8 @@ describe("#Block", (): void => { beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) - it("should get block details", async () => { - const data = { + it("should get block details", async (): Promise => { + const data: any = { hash: "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", size: 216, @@ -105,21 +106,20 @@ describe("#Block", (): void => { isMainChain: true, poolInfo: {} } - const resolved = new Promise(r => r({ data: data })) + const resolved: Promise = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - const result = await bitbox.Block.detailsByHeight(500007) + const result: BlockDetails | BlockDetails[] = await bitbox.Block.detailsByHeight(500007) assert.deepEqual(result, data) }) }) describe(`#detailsByHeight`, (): void => { - it(`should GET block details for a given Height`, async () => { + it(`should GET block details for a given Height`, async (): Promise => { const block: number = 500000 - const result = await bitbox.Block.detailsByHeight(block) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) + const result: BlockDetails | BlockDetails[] = await bitbox.Block.detailsByHeight(block) assert.hasAllKeys(result, [ "hash", @@ -142,11 +142,9 @@ describe("#Block", (): void => { ]) }) - it(`should GET block details for an array of blocks`, async (): void => { + it(`should GET block details for an array of blocks`, async (): Promise => { const blocks: number[] = [500000, 500001] - - const result = await bitbox.Block.detailsByHeight(blocks) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) + const result: BlockDetails | BlockDetails[] = await bitbox.Block.detailsByHeight(blocks) assert.isArray(result) assert.hasAllKeys(result[0], [ @@ -170,14 +168,13 @@ describe("#Block", (): void => { ]) }) - it(`should throw an error for improper single input`, async () => { + it(`should throw an error for improper single input`, async (): Promise => { try { const blocks: any = "asdf" await bitbox.Block.detailsByHeight(blocks) assert.equal(true, false, "Unexpected result!") } catch (err) { - //console.log(`err: `, err) assert.include( err.message, `Input must be a number or array of numbers.` @@ -185,12 +182,11 @@ describe("#Block", (): void => { } }) - it(`should throw error on array size rate limit`, async () => { + it(`should throw error on array size rate limit`, async (): Promise => { try { const blocks: number[] = [] for (let i: number = 0; i < 25; i++) blocks.push(500000) - - const result = await bitbox.Block.detailsByHeight(blocks) + const result: BlockDetails | BlockDetails[] = await bitbox.Block.detailsByHeight(blocks) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") @@ -202,12 +198,10 @@ describe("#Block", (): void => { }) describe("#detailsByHash", (): void => { - it(`should GET block details for a given hash`, async () => { + it(`should GET block details for a given hash`, async (): Promise => { const hash: string = "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - - const result = await bitbox.Block.detailsByHash(hash) - //console.log(`result: ${util.inspect(result)}`) + const result: BlockDetails | BlockDetails[] = await bitbox.Block.detailsByHash(hash) assert.hasAllKeys(result, [ "hash", @@ -230,14 +224,13 @@ describe("#Block", (): void => { ]) }) - it(`should GET block details for an array of hashes`, async () => { + it(`should GET block details for an array of hashes`, async (): Promise => { const hash: string[] = [ "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" ] - const result = await bitbox.Block.detailsByHash(hash) - //console.log(`result: ${util.inspect(result)}`) + const result: BlockDetails | BlockDetails[] = await bitbox.Block.detailsByHash(hash) assert.isArray(result) assert.hasAllKeys(result[0], [ @@ -261,7 +254,7 @@ describe("#Block", (): void => { ]) }) - it(`should throw an error for improper single input`, async () => { + it(`should throw an error for improper single input`, async (): Promise => { try { const hash: any = 12345 @@ -276,7 +269,7 @@ describe("#Block", (): void => { } }) - it(`should throw error on array size rate limit`, async () => { + it(`should throw error on array size rate limit`, async (): Promise => { try { const data: string[] = [] for (let i: number = 0; i < 25; i++) { @@ -285,7 +278,7 @@ describe("#Block", (): void => { ) } - const result = await bitbox.Block.detailsByHash(data) + const result: BlockDetails | BlockDetails[] = await bitbox.Block.detailsByHash(data) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") diff --git a/test/unit/Crypto.ts b/test/unit/Crypto.ts index 543f13fc..e20991b1 100644 --- a/test/unit/Crypto.ts +++ b/test/unit/Crypto.ts @@ -103,7 +103,7 @@ describe("#Crypto", (): void => { describe("#randomBytes", (): void => { for (let i: number = 0; i < 6; i++) { - it("should return 16 bytes of entropy hex encoded via default value", (): string => { + it("should return 16 bytes of entropy hex encoded via default value", (): void => { const entropy: Buffer = bitbox.Crypto.randomBytes() assert.equal(Buffer.byteLength(entropy), 16) }) diff --git a/test/unit/HDNode.ts b/test/unit/HDNode.ts index 1d4cf16d..7b1e0cb4 100644 --- a/test/unit/HDNode.ts +++ b/test/unit/HDNode.ts @@ -2,7 +2,6 @@ import * as assert from "assert"; import { BITBOX } from "../../lib/BITBOX" import { HDNode } from "../../lib/HDNode" -import { Buffer } from "Buffer" import * as bcl from "bitcoincashjs-lib" // consts @@ -294,7 +293,7 @@ describe("#HDNode", (): void => { fixtures.sign.forEach((fixture: any): void => { it(`should sign 32 byte hash buffer`, (): void => { const hdnode: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.privateKeyWIF) - const buf: Buffer = Buffer.from(bitbox.Crypto.sha256(fixture.data), "hex") + const buf: Buffer = Buffer.from(bitbox.Crypto.sha256(Buffer.from(fixture.data, "hex"))) const signatureBuf: any = bitbox.HDNode.sign(hdnode, buf) assert.equal(typeof signatureBuf, "object") }) @@ -305,7 +304,7 @@ describe("#HDNode", (): void => { fixtures.verify.forEach((fixture: any): void => { it(`should verify signed 32 byte hash buffer`, (): void => { const hdnode1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.privateKeyWIF1) - const buf: Buffer = Buffer.from(bitbox.Crypto.sha256(fixture.data), "hex") + const buf: Buffer = Buffer.from(bitbox.Crypto.sha256(Buffer.from(fixture.data, "hex"))) const signature: Buffer = bitbox.HDNode.sign(hdnode1, buf) const verify: boolean = bitbox.HDNode.verify(hdnode1, buf, signature) assert.equal(verify, true) diff --git a/test/unit/Mnemonic.ts b/test/unit/Mnemonic.ts index aa5de567..e7bc082b 100644 --- a/test/unit/Mnemonic.ts +++ b/test/unit/Mnemonic.ts @@ -55,38 +55,38 @@ describe("#Mnemonic", (): void => { describe("#fromEntropy", (): void => { it("should generate a 12 word mnemonic from 16 bytes of entropy", (): void => { const rand: Buffer = bitbox.Crypto.randomBytes(16) - const mnemonic: string = bitbox.Mnemonic.fromEntropy(rand.toString("hex")) + const mnemonic: string = bitbox.Mnemonic.fromEntropy(rand) assert.equal(mnemonic.split(" ").length, 12) }) it("should generate a 15 word mnemonic from 20 bytes of entropy", (): void => { const rand: Buffer = bitbox.Crypto.randomBytes(20) - const mnemonic: string = bitbox.Mnemonic.fromEntropy(rand.toString("hex")) + const mnemonic: string = bitbox.Mnemonic.fromEntropy(rand) assert.equal(mnemonic.split(" ").length, 15) }) it("should generate an 18 word mnemonic from 24 bytes of entropy", (): void => { const rand: Buffer = bitbox.Crypto.randomBytes(24) - const mnemonic: string = bitbox.Mnemonic.fromEntropy(rand.toString("hex")) + const mnemonic: string = bitbox.Mnemonic.fromEntropy(rand) assert.equal(mnemonic.split(" ").length, 18) }) it("should generate an 21 word mnemonic from 28 bytes of entropy", (): void => { const rand: Buffer = bitbox.Crypto.randomBytes(28) - const mnemonic: string = bitbox.Mnemonic.fromEntropy(rand.toString("hex")) + const mnemonic: string = bitbox.Mnemonic.fromEntropy(rand) assert.equal(mnemonic.split(" ").length, 21) }) it("should generate an 24 word mnemonic from 32 bytes of entropy", (): void => { const rand: Buffer = bitbox.Crypto.randomBytes(32) - const mnemonic: string = bitbox.Mnemonic.fromEntropy(rand.toString("hex")) + const mnemonic: string = bitbox.Mnemonic.fromEntropy(rand) assert.equal(mnemonic.split(" ").length, 24) }) it("should generate an 24 french word mnemonic 32 bytes of entropy", (): void => { const rand: Buffer = bitbox.Crypto.randomBytes(32) const mnemonic: string = bitbox.Mnemonic.fromEntropy( - rand.toString("hex"), + rand, bitbox.Mnemonic.wordLists().french ) assert.equal(mnemonic.split(" ").length, 24) diff --git a/test/unit/Script.ts b/test/unit/Script.ts index 107614ae..374d4e26 100644 --- a/test/unit/Script.ts +++ b/test/unit/Script.ts @@ -2,7 +2,6 @@ import * as assert from "assert"; import { BITBOX } from "../../lib/BITBOX" import { Script } from "../../lib/Script" -import { Buffer } from "Buffer" import * as bcl from "bitcoincashjs-lib" // consts @@ -69,8 +68,8 @@ describe("#Script", (): void => { Buffer.from(fixture.scriptPubKeyHex, "hex") ) const data: Buffer = Buffer.from(fixture.pubKeyHex, "hex") - const hash160: Buffer = bitbox.Crypto.hash160(data).toString("hex") - assert.equal(decodedScriptPubKey[2].toString("hex"), hash160) + const hash160: Buffer = bitbox.Crypto.hash160(data) + assert.equal(decodedScriptPubKey[2].toString("hex"), hash160.toString("hex")) }) }) }) diff --git a/test/unit/TransactionBuilder.ts b/test/unit/TransactionBuilder.ts index 218d339c..9bb52266 100644 --- a/test/unit/TransactionBuilder.ts +++ b/test/unit/TransactionBuilder.ts @@ -2,7 +2,6 @@ import * as assert from "assert"; import { BITBOX } from "../../lib/BITBOX" import { TransactionBuilder } from "../../lib/TransactionBuilder" -import { Buffer } from "Buffer" import * as bcl from "bitcoincashjs-lib" // consts @@ -1657,7 +1656,7 @@ describe("#TransactionBuilder", (): void => { ) const sendAmount: number = originalAmount - byteCount const identifier2: string = bitbox.HDNode.toIdentifier(node2) - const buf2: string = bitbox.Script.encode([ + const buf2: Buffer = bitbox.Script.encode([ bitbox.Script.opcodes.OP_DUP, bitbox.Script.opcodes.OP_HASH160, identifier2, @@ -1673,7 +1672,7 @@ describe("#TransactionBuilder", (): void => { data2 ) const identifier3 = bitbox.HDNode.toIdentifier(node3) - const buf3: string = bitbox.Script.encode([ + const buf3: Buffer = bitbox.Script.encode([ bitbox.Script.opcodes.OP_DUP, bitbox.Script.opcodes.OP_HASH160, identifier3, @@ -1684,7 +1683,7 @@ describe("#TransactionBuilder", (): void => { const data3: string = bitbox.Script.scriptHash.output.encode(scriptHash3) transactionBuilder.addOutput(data3, Math.floor(sendAmount / 2)) const identifier4: string = bitbox.HDNode.toIdentifier(node4) - const buf4: string = bitbox.Script.encode([ + const buf4: Buffer = bitbox.Script.encode([ bitbox.Script.opcodes.OP_DUP, bitbox.Script.opcodes.OP_HASH160, identifier4, From b4adf5f97c4df73be4d31341d3ba250feb2cec5a Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Mon, 13 May 2019 17:09:18 +0900 Subject: [PATCH 369/480] Adding interfaces for REST return values and updating tests. --- lib/BITBOX.ts | 4 +- lib/Block.ts | 6 +- lib/Blockchain.ts | 14 +-- lib/Control.ts | 4 +- lib/HDNode.ts | 8 +- lib/RawTransactions.ts | 4 +- lib/Transaction.ts | 4 +- lib/interfaces/vendors.d.ts | 178 ++++++++++++++++++++----------- test/unit/Address.ts | 183 +++++++++++++++++--------------- test/unit/BITBOX.ts | 8 +- test/unit/BitcoinCash.ts | 6 +- test/unit/Block.ts | 100 +++++++++-------- test/unit/Blockchain.ts | 71 ++++++------- test/unit/ECPair.ts | 4 +- test/unit/HDNode.ts | 10 +- test/unit/RawTransactions.js | 125 +++++++++------------- test/unit/RawTransactions.ts | 147 ++++++++++++------------- test/unit/Script.ts | 9 +- test/unit/Transaction.ts | 6 +- test/unit/TransactionBuilder.ts | 1 + test/unit/Util.ts | 53 +++++---- 21 files changed, 495 insertions(+), 450 deletions(-) diff --git a/lib/BITBOX.ts b/lib/BITBOX.ts index 74ae3185..5d4a6ac5 100644 --- a/lib/BITBOX.ts +++ b/lib/BITBOX.ts @@ -51,7 +51,7 @@ export class BITBOX { constructor(config: IConfig = {}) { if (config && config.restURL && config.restURL !== "") this.restURL = config.restURL - else this.restURL = "https://rest.bitcoin.com/v2/" + else this.restURL = resturl this.Address = new Address(this.restURL) this.BitcoinCash = new BitcoinCash(this.Address) @@ -68,7 +68,7 @@ export class BITBOX { this.RawTransactions = new RawTransactions(this.restURL) this.Script = new Script() this.Transaction = new Transaction(this.restURL) - this.TransactionBuilder = new TransactionBuilder() + this.TransactionBuilder = TransactionBuilder this.Util = new Util(this.restURL) this.Socket = new Socket() this.Schnorr = new Schnorr() diff --git a/lib/Block.ts b/lib/Block.ts index 83e9e7b9..9d783da2 100644 --- a/lib/Block.ts +++ b/lib/Block.ts @@ -1,5 +1,5 @@ import axios, { AxiosResponse } from "axios" -import { BlockDetails } from "bitcoin-com-rest"; +import { BlockDetailsResult } from "bitcoin-com-rest"; import { resturl } from "./BITBOX" export class Block { @@ -10,7 +10,7 @@ export class Block { public async detailsByHeight( id: number | number[] - ): Promise { + ): Promise { try { // Single block if (typeof id === "number") { @@ -42,7 +42,7 @@ export class Block { public async detailsByHash( hash: string | string[] - ): Promise { + ): Promise { try { // Single block if (typeof hash === "string") { diff --git a/lib/Blockchain.ts b/lib/Blockchain.ts index 215b5172..8d381280 100644 --- a/lib/Blockchain.ts +++ b/lib/Blockchain.ts @@ -4,7 +4,7 @@ */ import axios, { AxiosResponse } from "axios" -import { BlockDetails, BlockchainInfo, BlockHeader, ChainTip, MempoolInfo, TxOut, MempoolEntryResult } from "bitcoin-com-rest"; +import { BlockDetailsResult, BlockchainInfoResult, BlockHeaderResult, ChainTipResult, MempoolInfoResult, TxOutResult, MempoolEntryResult } from "bitcoin-com-rest"; import { resturl } from "./BITBOX" export class Blockchain { @@ -28,7 +28,7 @@ export class Blockchain { public async getBlock( blockhash: string, verbose: boolean = true - ): Promise { + ): Promise { try { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getBlock/${blockhash}?verbose=${verbose}` @@ -40,7 +40,7 @@ export class Blockchain { } } - public async getBlockchainInfo(): Promise { + public async getBlockchainInfo(): Promise { try { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getBlockchainInfo` @@ -81,7 +81,7 @@ export class Blockchain { public async getBlockHeader( hash: string | string[], verbose: boolean = true - ): Promise { + ): Promise { try { // Handle single hash. if (typeof hash === "string") { @@ -113,7 +113,7 @@ export class Blockchain { } } - public async getChainTips(): Promise { + public async getChainTips(): Promise { try { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getChainTips` @@ -207,7 +207,7 @@ export class Blockchain { } } - public async getMempoolInfo(): Promise { + public async getMempoolInfo(): Promise { try { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getMempoolInfo` @@ -236,7 +236,7 @@ export class Blockchain { txid: string, n: any, include_mempool: boolean = true - ): Promise { + ): Promise { // TODO confirm this works try { const response: AxiosResponse = await axios.get( diff --git a/lib/Control.ts b/lib/Control.ts index 5c5a88c3..97a91049 100644 --- a/lib/Control.ts +++ b/lib/Control.ts @@ -1,5 +1,5 @@ import axios, { AxiosResponse } from "axios" -import { NodeInfo } from "bitcoin-com-rest"; +import { NodeInfoResult } from "bitcoin-com-rest"; import { resturl } from "./BITBOX" export class Control { @@ -8,7 +8,7 @@ export class Control { this.restURL = restURL } - public async getInfo(): Promise { + public async getInfo(): Promise { try { const response: AxiosResponse = await axios.get(`${this.restURL}control/getInfo`) return response.data diff --git a/lib/HDNode.ts b/lib/HDNode.ts index c6b9db9d..75cf9e1b 100644 --- a/lib/HDNode.ts +++ b/lib/HDNode.ts @@ -76,12 +76,12 @@ export class HDNode { return hdnode.derivePath(path) } - public derive(hdnode: bcl.HDNode, path: string): bcl.HDNode { - return hdnode.derive(path) + public derive(hdnode: bcl.HDNode, num: number): bcl.HDNode { + return hdnode.derive(num) } - public deriveHardened(hdnode: bcl.HDNode, path: string): bcl.HDNode { - return hdnode.deriveHardened(path) + public deriveHardened(hdnode: bcl.HDNode, num: number): bcl.HDNode { + return hdnode.deriveHardened(num) } public sign(hdnode: bcl.HDNode, buffer: Buffer): bcl.ECSignature { diff --git a/lib/RawTransactions.ts b/lib/RawTransactions.ts index d0fa3405..8a4349d1 100644 --- a/lib/RawTransactions.ts +++ b/lib/RawTransactions.ts @@ -1,5 +1,5 @@ import axios, { AxiosResponse } from "axios" -import { VerboseRawTransaction } from "bitcoin-com-rest"; +import { VerboseRawTransactionResult } from "bitcoin-com-rest"; import { resturl } from "./BITBOX" export class RawTransactions { @@ -72,7 +72,7 @@ export class RawTransactions { public async getRawTransaction( txid: string | string[], verbose: boolean = false - ): Promise { + ): Promise { try { if (typeof txid === "string") { const response: AxiosResponse = await axios.get( diff --git a/lib/Transaction.ts b/lib/Transaction.ts index b3747b57..69a92196 100644 --- a/lib/Transaction.ts +++ b/lib/Transaction.ts @@ -1,5 +1,5 @@ import axios, { AxiosResponse } from "axios" -import { TxnDetails } from "bitcoin-com-rest"; +import { TxnDetailsResult } from "bitcoin-com-rest"; import { resturl } from "./BITBOX" export class Transaction { @@ -8,7 +8,7 @@ export class Transaction { this.restURL = restURL } - public async details(txid: string | string[]): Promise { + public async details(txid: string | string[]): Promise { try { // Handle single address. if (typeof txid === "string") { diff --git a/lib/interfaces/vendors.d.ts b/lib/interfaces/vendors.d.ts index aca2b701..0874952c 100644 --- a/lib/interfaces/vendors.d.ts +++ b/lib/interfaces/vendors.d.ts @@ -27,7 +27,7 @@ declare module "bitcoincashjs-lib" { } declare module "bitcoin-com-rest" { - export interface BlockDetails { + export interface BlockDetailsResult { hash: string size: number height: number @@ -48,15 +48,15 @@ declare module "bitcoin-com-rest" { poolInfo: object } - export interface MempoolInfo { + export interface MempoolInfoResult { size: number bytes: number usage: number maxmempool: number mempoolminfee: number - } - - export interface BlockchainInfo { + } + + export interface BlockchainInfoResult { chain: string blocks: number headers: number @@ -69,8 +69,8 @@ declare module "bitcoin-com-rest" { softforks: object[] bip9_softforks: object } - - export interface BlockHeader { + + export interface BlockHeaderResult { hash: string confirmations: number height: number @@ -86,15 +86,15 @@ declare module "bitcoin-com-rest" { previousblockhash: string nextblockhash: string } - - export interface ChainTip { + + export interface ChainTipResult { height: number hash: string branchlen: number status: string } - - export interface TxOut { + + export interface TxOutResult { bestblock: string confirmations: number value: number @@ -109,25 +109,25 @@ declare module "bitcoin-com-rest" { coinbase: boolean } - export interface MempoolEntryResult { - size : number, - fee : number, - modifiedfee : number, - time : number, - height : number, - startingpriority : number, - currentpriority : number, - descendantcount : number, - descendantsize : number, - descendantfees : number, - ancestorcount : number, - ancestorsize : number, - ancestorfees : number, - depends : string[], - spentby : string[] - } - - export interface NodeInfo { + export interface MempoolEntryResult { + size: number, + fee: number, + modifiedfee: number, + time: number, + height: number, + startingpriority: number, + currentpriority: number, + descendantcount: number, + descendantsize: number, + descendantfees: number, + ancestorcount: number, + ancestorsize: number, + ancestorfees: number, + depends: string[], + spentby: string[] + } + + export interface NodeInfoResult { version: number protocolversion: number blocks: number @@ -140,8 +140,8 @@ declare module "bitcoin-com-rest" { relayfee: number errors: string } - - export interface NodeMemoryInfo { + + export interface NodeMemoryInfoResult { locked: { used: number free: number @@ -152,7 +152,45 @@ declare module "bitcoin-com-rest" { } } - export interface VerboseRawTransaction { + export interface DecodeRawTransactionResult { + txid: string + hash: string + size: number + version: number + locktime: number + vin: [ + { + txid: string + vout: number + scriptSig: { + asm: string + hex: string + }, + sequence: number + } + ], + vout: [ + { + value: number + n: number + scriptPubKey: { + asm: string + hex: string + reqSigs: number + type: string + addresses: string[] + } + } + ] + } + + export interface DecodeScriptResult { + asm: string + type: string + p2sh: string + } + + export interface VerboseRawTransactionResult { hex: string txid: string size: number @@ -160,17 +198,17 @@ declare module "bitcoin-com-rest" { locktime: number vin: [{ coinbase: string; sequence: number }] vout: [ - { - value: number - n: number - scriptPubKey: { - asm: string - hex: string - reqSigs: number - type: string - addresses: string[] + { + value: number + n: number + scriptPubKey: { + asm: string + hex: string + reqSigs: number + type: string + addresses: string[] + } } - } ] blockhash: string confirmations: number @@ -178,7 +216,7 @@ declare module "bitcoin-com-rest" { blocktime: number } - export interface TxnDetails { + export interface TxnDetailsResult { txid: string version: number locktime: number @@ -193,7 +231,7 @@ declare module "bitcoin-com-rest" { valueOut: number size: number } - + export interface AddressDetailsResult { balance: number balanceSat: number @@ -208,36 +246,54 @@ declare module "bitcoin-com-rest" { transactions: string[] legacyAddress: string cashAddress: string - } - + } + export interface AddressUtxoResult { legacyAddress: string cashAddress: string scriptPubKey: string utxos: [ { - txid: string - vout: number - amount: number - satoshis: number - height: number - confirmations: number + txid: string + vout: number + amount: number + satoshis: number + height: number + confirmations: number } ] } - + export interface AddressUnconfirmedResult { - txid: string - vout: number - scriptPubKey: string - amount: number - satoshis: number - confirmations: number - ts: number legacyAddress: string cashAddress: string + scriptPubKey: string + utxos: [ + { + txid: string + vout: number + scriptPubKey: string + amount: number + satoshis: number + confirmations: number + ts: number + legacyAddress: string + cashAddress: string + } + ] } + export interface AddressValidateResult { + isvalid: boolean + address: string + scriptPubKey: string + ismine: boolean + iswatchonly: boolean + isscript: boolean + pubkey: string + iscompressed: boolean + account: string + } } // declare module "clear" { diff --git a/test/unit/Address.ts b/test/unit/Address.ts index 965095c2..b0b1b235 100644 --- a/test/unit/Address.ts +++ b/test/unit/Address.ts @@ -141,10 +141,10 @@ describe("#Address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.toLegacyAddress() - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') assert.throws(() => { bitbox.Address.toLegacyAddress("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') }) }) }) @@ -222,11 +222,11 @@ describe("#Address", (): void => { it("should fail when called with an invalid address", (): void => { assert.throws(() => { // @ts-ignore - bitbox.BitcoinCash.Address.toCashAddress() - }, bitbox.BitcoinCash.InvalidAddressError) + bitbox.Address.toCashAddress() + }, '') assert.throws(() => { - bitbox.BitcoinCash.Address.toCashAddress("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) + bitbox.Address.toCashAddress("some invalid address") + }, '') }) }) }) @@ -245,10 +245,10 @@ describe("#Address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.legacyToHash160() - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') assert.throws(() => { bitbox.Address.legacyToHash160("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') }) }) }) @@ -267,10 +267,10 @@ describe("#Address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.cashToHash160() - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') assert.throws(() => { bitbox.Address.cashToHash160("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') }) }) }) @@ -288,10 +288,10 @@ describe("#Address", (): void => { // it("should fail when called with an invalid address", () => { // assert.throws(() => { // bitbox.Address.regtestToHash160() - // }, bitbox.BitcoinCash.InvalidAddressError) + // }, '') // assert.throws(() => { // bitbox.Address.regtestToHash160("some invalid address") - // }, bitbox.BitcoinCash.InvalidAddressError) + // }, '') // }) // }) // }) @@ -380,17 +380,17 @@ describe("#Address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.hash160ToLegacy() - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') assert.throws(() => { bitbox.Address.hash160ToLegacy("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') assert.throws(() => { // @ts-ignore bitbox.Address.hash160ToCash() - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') assert.throws(() => { bitbox.Address.hash160ToCash("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') }) }) }) @@ -427,10 +427,10 @@ describe("#Address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.isLegacyAddress() - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') assert.throws(() => { bitbox.Address.isLegacyAddress("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') }) }) }) @@ -466,10 +466,10 @@ describe("#Address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.isCashAddress() - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') assert.throws(() => { bitbox.Address.isCashAddress("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') }) }) }) @@ -510,10 +510,10 @@ describe("#Address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.isHash160() - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') assert.throws(() => { bitbox.Address.isHash160("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') }) }) }) @@ -551,10 +551,10 @@ describe("#Address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.isMainnetAddress() - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') assert.throws(() => { bitbox.Address.isMainnetAddress("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') }) }) }) @@ -590,10 +590,10 @@ describe("#Address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.isTestnetAddress() - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') assert.throws(() => { bitbox.Address.isTestnetAddress("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') }) }) }) @@ -629,10 +629,10 @@ describe("#Address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.isRegTestAddress() - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') assert.throws(() => { bitbox.Address.isRegTestAddress("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') }) }) }) @@ -663,10 +663,10 @@ describe("#Address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.isP2PKHAddress() - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') assert.throws(() => { bitbox.Address.isP2PKHAddress("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') }) }) }) @@ -695,10 +695,10 @@ describe("#Address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.isP2SHAddress() - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') assert.throws(() => { bitbox.Address.isP2SHAddress("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') }) }) }) @@ -890,10 +890,10 @@ describe("#Address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.detectAddressFormat() - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') assert.throws(() => { bitbox.Address.detectAddressFormat("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') }) }) }) @@ -925,10 +925,10 @@ describe("#Address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.detectAddressNetwork() - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') assert.throws(() => { bitbox.Address.detectAddressNetwork("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') }) }) }) @@ -953,10 +953,10 @@ describe("#Address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.detectAddressType() - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') assert.throws(() => { bitbox.Address.detectAddressType("some invalid address") - }, bitbox.BitcoinCash.InvalidAddressError) + }, '') }) }) }) @@ -1142,7 +1142,7 @@ describe("#Address", (): void => { describe(`#utxo`, (): void => { describe(`#details`, (): void => { - it(`should GET address details for a single address`, async (): void => { + it(`should GET address details for a single address`, async (): Promise => { const addr: string = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" const result: AddressDetailsResult | AddressDetailsResult[] = await bitbox.Address.details(addr) @@ -1164,7 +1164,9 @@ describe("#Address", (): void => { "currentPage", "pagesTotal" ]) - assert.isArray(result.transactions) + if (!Array.isArray(result)) { + assert.isArray(result.transactions) + } }) it(`should GET address details for an array of addresses`, async () => { @@ -1174,27 +1176,28 @@ describe("#Address", (): void => { ] const result: AddressDetailsResult | AddressDetailsResult[] = await bitbox.Address.details(addr) - //console.log(`result: ${util.inspect(result)}`) assert.isArray(result) - assert.hasAllKeys(result[0], [ - "balance", - "balanceSat", - "totalReceived", - "totalReceivedSat", - "totalSent", - "totalSentSat", - "unconfirmedBalance", - "unconfirmedBalanceSat", - "unconfirmedTxApperances", - "txApperances", - "transactions", - "legacyAddress", - "cashAddress", - "currentPage", - "pagesTotal" - ]) - assert.isArray(result[0].transactions) + if (Array.isArray(result)) { + assert.hasAllKeys(result[0], [ + "balance", + "balanceSat", + "totalReceived", + "totalReceivedSat", + "totalSent", + "totalSentSat", + "unconfirmedBalance", + "unconfirmedBalanceSat", + "unconfirmedTxApperances", + "txApperances", + "transactions", + "legacyAddress", + "cashAddress", + "currentPage", + "pagesTotal" + ]) + assert.isArray(result[0].transactions) + } }) it(`should throw an error for improper input`, async () => { @@ -1238,15 +1241,17 @@ describe("#Address", (): void => { "cashAddress", "scriptPubKey" ]) - assert.isArray(result.utxos) - assert.hasAnyKeys(result.utxos[0], [ - "txid", - "vout", - "amount", - "satoshis", - "height", - "confirmations" - ]) + if (!Array.isArray(result)) { + assert.isArray(result.utxos) + assert.hasAnyKeys(result.utxos[0], [ + "txid", + "vout", + "amount", + "satoshis", + "height", + "confirmations" + ]) + } }) it(`should GET utxo details for an array of addresses`, async () => { @@ -1258,21 +1263,23 @@ describe("#Address", (): void => { const result: AddressUtxoResult | AddressUtxoResult[] = await bitbox.Address.utxo(addr) assert.isArray(result) - assert.hasAllKeys(result[0], [ - "utxos", - "legacyAddress", - "cashAddress", - "scriptPubKey" - ]) - assert.isArray(result[0].utxos) - assert.hasAnyKeys(result[0].utxos[0], [ - "txid", - "vout", - "amount", - "satoshis", - "height", - "confirmations" - ]) + if (Array.isArray(result)) { + assert.hasAllKeys(result[0], [ + "utxos", + "legacyAddress", + "cashAddress", + "scriptPubKey" + ]) + assert.isArray(result[0].utxos) + assert.hasAnyKeys(result[0].utxos[0], [ + "txid", + "vout", + "amount", + "satoshis", + "height", + "confirmations" + ]) + } }) it(`should throw an error for improper input`, async () => { @@ -1314,7 +1321,9 @@ describe("#Address", (): void => { const result: AddressUnconfirmedResult | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed(addr) assert.hasAllKeys(result, ["utxos", "legacyAddress", "cashAddress"]) - assert.isArray(result.utxos) + if (!Array.isArray(result)) { + assert.isArray(result.utxos) + } }) it(`should GET unconfirmed details on multiple addresses`, async (): Promise => { @@ -1326,8 +1335,10 @@ describe("#Address", (): void => { const result: AddressUnconfirmedResult | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed(addr) assert.isArray(result) - assert.hasAllKeys(result[0], ["utxos", "legacyAddress", "cashAddress"]) - assert.isArray(result[0].utxos) + if (Array.isArray(result)) { + assert.hasAllKeys(result[0], ["utxos", "legacyAddress", "cashAddress"]) + assert.isArray(result[0].utxos) + } }) it(`should throw an error for improper input`, async () => { diff --git a/test/unit/BITBOX.ts b/test/unit/BITBOX.ts index fc839c46..756ae189 100644 --- a/test/unit/BITBOX.ts +++ b/test/unit/BITBOX.ts @@ -96,10 +96,10 @@ describe("#BITBOX", (): void => { assert.equal(bitbox.Transaction instanceof Transaction, true) }) - it("should have a TransactionBuilder property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.TransactionBuilder instanceof TransactionBuilder, true) - }) + // it("should have a TransactionBuilder property", (): void => { + // const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + // assert.equal(bitbox.TransactionBuilder instanceof TransactionBuilder, true) + // }) it("should have a Util property", (): void => { const bitbox: BITBOX = new BITBOX({ restURL: resturl }) diff --git a/test/unit/BitcoinCash.ts b/test/unit/BitcoinCash.ts index 77154664..02196609 100644 --- a/test/unit/BitcoinCash.ts +++ b/test/unit/BitcoinCash.ts @@ -262,12 +262,14 @@ describe("#BitcoinCash", (): void => { fixtures.bip21.valid.forEach((bip21: any): void => { it(`decodes ${bip21.url}`, (): void => { const decoded: BIP21Object = bitbox.BitcoinCash.decodeBIP21(bip21.url) - assert.equal(decoded.options.amount, bip21.options.amount) - assert.equal(decoded.options.label, bip21.options.label) assert.equal( bitbox.Address.toCashAddress(decoded.address), bitbox.Address.toCashAddress(bip21.address) ) + if (decoded.options) { + assert.equal(decoded.options.amount, bip21.options.amount) + assert.equal(decoded.options.label, bip21.options.label) + } }) }) // fixtures.bip21.valid_regtest.forEach((bip21, i) => { diff --git a/test/unit/Block.ts b/test/unit/Block.ts index 9dc6a497..7f02e24e 100644 --- a/test/unit/Block.ts +++ b/test/unit/Block.ts @@ -6,7 +6,7 @@ import { BITBOX } from "../../lib/BITBOX" import { Block } from "../../lib/Block" import { resturl } from "../../lib/BITBOX" import * as util from "util" -import { BlockDetails, AddressUtxoResult, AddressUnconfirmedResult } from "bitcoin-com-rest"; +import { BlockDetailsResult } from "bitcoin-com-rest"; // consts const bitbox: BITBOX = new BITBOX() @@ -66,7 +66,7 @@ describe("#Block", (): void => { const resolved: Promise = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - const result: BlockDetails | BlockDetails[] = await bitbox.Block.detailsByHash( + const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHash( "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0" ) @@ -109,7 +109,7 @@ describe("#Block", (): void => { const resolved: Promise = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - const result: BlockDetails | BlockDetails[] = await bitbox.Block.detailsByHeight(500007) + const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(500007) assert.deepEqual(result, data) }) @@ -119,7 +119,7 @@ describe("#Block", (): void => { it(`should GET block details for a given Height`, async (): Promise => { const block: number = 500000 - const result: BlockDetails | BlockDetails[] = await bitbox.Block.detailsByHeight(block) + const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(block) assert.hasAllKeys(result, [ "hash", @@ -144,28 +144,31 @@ describe("#Block", (): void => { it(`should GET block details for an array of blocks`, async (): Promise => { const blocks: number[] = [500000, 500001] - const result: BlockDetails | BlockDetails[] = await bitbox.Block.detailsByHeight(blocks) + const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(blocks) assert.isArray(result) - assert.hasAllKeys(result[0], [ - "hash", - "size", - "height", - "version", - "merkleroot", - "tx", - "time", - "nonce", - "bits", - "difficulty", - "chainwork", - "confirmations", - "previousblockhash", - "nextblockhash", - "reward", - "isMainChain", - "poolInfo" - ]) + if (Array.isArray(result)) { + assert.hasAllKeys(result[0], [ + "hash", + "size", + "height", + "version", + "merkleroot", + "tx", + "time", + "nonce", + "bits", + "difficulty", + "chainwork", + "confirmations", + "previousblockhash", + "nextblockhash", + "reward", + "isMainChain", + "poolInfo" + ]) + + } }) it(`should throw an error for improper single input`, async (): Promise => { @@ -186,7 +189,7 @@ describe("#Block", (): void => { try { const blocks: number[] = [] for (let i: number = 0; i < 25; i++) blocks.push(500000) - const result: BlockDetails | BlockDetails[] = await bitbox.Block.detailsByHeight(blocks) + const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(blocks) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") @@ -201,7 +204,7 @@ describe("#Block", (): void => { it(`should GET block details for a given hash`, async (): Promise => { const hash: string = "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - const result: BlockDetails | BlockDetails[] = await bitbox.Block.detailsByHash(hash) + const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHash(hash) assert.hasAllKeys(result, [ "hash", @@ -230,28 +233,31 @@ describe("#Block", (): void => { "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" ] - const result: BlockDetails | BlockDetails[] = await bitbox.Block.detailsByHash(hash) + const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHash(hash) assert.isArray(result) - assert.hasAllKeys(result[0], [ - "hash", - "size", - "height", - "version", - "merkleroot", - "tx", - "time", - "nonce", - "bits", - "difficulty", - "chainwork", - "confirmations", - "previousblockhash", - "nextblockhash", - "reward", - "isMainChain", - "poolInfo" - ]) + if (Array.isArray(result)) { + assert.hasAllKeys(result[0], [ + "hash", + "size", + "height", + "version", + "merkleroot", + "tx", + "time", + "nonce", + "bits", + "difficulty", + "chainwork", + "confirmations", + "previousblockhash", + "nextblockhash", + "reward", + "isMainChain", + "poolInfo" + ]) + + } }) it(`should throw an error for improper single input`, async (): Promise => { @@ -278,7 +284,7 @@ describe("#Block", (): void => { ) } - const result: BlockDetails | BlockDetails[] = await bitbox.Block.detailsByHash(data) + const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHash(data) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") diff --git a/test/unit/Blockchain.ts b/test/unit/Blockchain.ts index 4776ce89..9771d715 100644 --- a/test/unit/Blockchain.ts +++ b/test/unit/Blockchain.ts @@ -6,6 +6,7 @@ import { BITBOX } from "../../lib/BITBOX" import { Blockchain } from "../../lib/Blockchain" import { resturl } from "../../lib/BITBOX" import * as util from "util" +import { BlockHeaderResult } from "bitcoin-com-rest"; // consts const bitbox: BITBOX = new BITBOX() @@ -443,8 +444,7 @@ describe("#Blockchain", (): void => { describe(`#getBestBlockHash`, (): void => { it(`should GET best block hash`, async () => { - const result = await bitbox.Blockchain.getBestBlockHash() - //console.log(`result: ${util.inspect(result)}`) + const result: string = await bitbox.Blockchain.getBestBlockHash() assert.isString(result) assert.equal(result.length, 64, "Specific hash length") @@ -456,7 +456,7 @@ describe("#Blockchain", (): void => { const hash: string = "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - const result = await bitbox.Blockchain.getBlockHeader(hash) + const result: BlockHeaderResult | BlockHeaderResult[] = await bitbox.Blockchain.getBlockHeader(hash) assert.hasAllKeys(result, [ "hash", @@ -482,25 +482,28 @@ describe("#Blockchain", (): void => { "00000000000000000568f0a96bf4348847bc84e455cbfec389f27311037a20f3" ] - const result = await bitbox.Blockchain.getBlockHeader(hash) + const result: BlockHeaderResult | BlockHeaderResult[] = await bitbox.Blockchain.getBlockHeader(hash) assert.isArray(result) - assert.hasAllKeys(result[0], [ - "hash", - "confirmations", - "height", - "version", - "versionHex", - "merkleroot", - "time", - "mediantime", - "nonce", - "bits", - "difficulty", - "chainwork", - "previousblockhash", - "nextblockhash" - ]) + if (Array.isArray(result)) { + assert.hasAllKeys(result[0], [ + "hash", + "confirmations", + "height", + "version", + "versionHex", + "merkleroot", + "time", + "mediantime", + "nonce", + "bits", + "difficulty", + "chainwork", + "previousblockhash", + "nextblockhash" + ]) + + } }) it(`should throw an error for improper input`, async () => { @@ -526,9 +529,7 @@ describe("#Blockchain", (): void => { ) } - const result = await bitbox.Blockchain.getBlockHeader(data) - - console.log(`result: ${util.inspect(result)}`) + const result: BlockHeaderResult | BlockHeaderResult[] = await bitbox.Blockchain.getBlockHeader(data) assert.equal(true, false, "Unexpected result!") } catch (err) { assert.hasAnyKeys(err, ["error"]) @@ -589,7 +590,7 @@ describe("#Blockchain", (): void => { }) */ - it(`should throw an error if txid is not in mempool`, async () => { + it(`should throw an error if txid is not in mempool`, async (): Promise => { try { const txid: string = "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" @@ -604,7 +605,7 @@ describe("#Blockchain", (): void => { } }) - it(`should throw an error for improper single input`, async () => { + it(`should throw an error for improper single input`, async (): Promise => { try { const txid: any = 12345 @@ -620,30 +621,28 @@ describe("#Blockchain", (): void => { }) describe(`#getTxOutProof`, (): void => { - it(`should get single tx out proof`, async () => { + it(`should get single tx out proof`, async (): Promise => { const txid: string = "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" const result = await bitbox.Blockchain.getTxOutProof(txid) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isString(result) }) - it(`should get an array of tx out proofs`, async () => { + it(`should get an array of tx out proofs`, async (): Promise => { const txid: string[] = [ "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7", "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" ] const result = await bitbox.Blockchain.getTxOutProof(txid) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) assert.isString(result[0]) }) - it(`should throw an error for improper single input`, async () => { + it(`should throw an error for improper single input`, async (): Promise => { try { const txid: any = 12345 @@ -658,13 +657,12 @@ describe("#Blockchain", (): void => { }) }) - describe(`#verifyTxOutProof`, () => { + describe(`#verifyTxOutProof`, (): void => { const mockTxOutProof: string = "0000002086a4a3161f9ba2174883ec0b93acceac3b2f37b36ed1f90000000000000000009cb02406d1094ecf3e0b4c0ca7c585125e721147c39daf6b48c90b512741e13a12333e5cb38705180f441d8c7100000008fee9b60f1edb57e5712839186277ed39e0a004a32be9096ee47472efde8eae62f789f9d7a9f59d0ea7093dea1e0c65ff0b953f1d8cf3d47f92e732ca0295f603c272d5f4a63509f7a887f2549d78af7444aa0ecbb4f66d9cbe13bc6a89f59e05a199df8325d490818ffefe6b6321d32d7496a68580459836c0183f89082fc1b491cc91b23ecdcaa4c347bf599a62904d61f1c15b400ebbd5c90149010c139d9c1e31b774b796977393a238080ab477e1d240d0c4f155d36f519668f49bae6bd8cd5b8e40522edf76faa09cca6188d83ff13af6967cc6a569d1a5e9aeb1fdb7f531ddd2d0cbb81879741d5f38166ac1932136264366a4065cc96a42e41f96294f02df01" - it(`should verify a single proof`, async () => { + it(`should verify a single proof`, async (): Promise => { const result = await bitbox.Blockchain.verifyTxOutProof(mockTxOutProof) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) assert.isString(result[0]) @@ -674,10 +672,9 @@ describe("#Blockchain", (): void => { ) }) - it(`should verify an array of proofs`, async () => { + it(`should verify an array of proofs`, async (): Promise => { const proofs: string[] = [mockTxOutProof, mockTxOutProof] const result = await bitbox.Blockchain.verifyTxOutProof(proofs) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) assert.isString(result[0]) @@ -687,7 +684,7 @@ describe("#Blockchain", (): void => { ) }) - it(`should throw an error for improper single input`, async () => { + it(`should throw an error for improper single input`, async (): Promise => { try { const txid: any = 12345 @@ -701,7 +698,7 @@ describe("#Blockchain", (): void => { } }) - it(`should throw error on array size rate limit`, async () => { + it(`should throw error on array size rate limit`, async (): Promise => { try { const data: string[] = [] for (let i: number = 0; i < 25; i++) data.push(mockTxOutProof) diff --git a/test/unit/ECPair.ts b/test/unit/ECPair.ts index 37ac4a3c..730060dd 100644 --- a/test/unit/ECPair.ts +++ b/test/unit/ECPair.ts @@ -141,7 +141,7 @@ describe("#ECPair", (): void => { fixtures.sign.forEach((fixture: any): void => { it(`should sign 32 byte hash buffer`, (): void => { const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) - const buf: Buffer = Buffer.from(bitbox.Crypto.sha256(fixture.data), "hex") + const buf: Buffer = Buffer.from(bitbox.Crypto.sha256(fixture.data)) const signatureBuf: Buffer = bitbox.ECPair.sign(ecpair, buf) assert.equal(typeof signatureBuf, "object") }) @@ -152,7 +152,7 @@ describe("#ECPair", (): void => { fixtures.verify.forEach((fixture: any): void => { it(`should verify signed 32 byte hash buffer`, (): void => { const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF1) - const buf: Buffer = Buffer.from(bitbox.Crypto.sha256(fixture.data), "hex") + const buf: Buffer = Buffer.from(bitbox.Crypto.sha256(fixture.data)) const signature: Buffer = bitbox.ECPair.sign(ecpair, buf) const verify: boolean = bitbox.ECPair.verify(ecpair, buf, signature) assert.equal(verify, true) diff --git a/test/unit/HDNode.ts b/test/unit/HDNode.ts index 7b1e0cb4..98761f8b 100644 --- a/test/unit/HDNode.ts +++ b/test/unit/HDNode.ts @@ -33,7 +33,7 @@ describe("#HDNode", (): void => { it(`should derive non hardened child HDNode`, (): void => { const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(derive.mnemonic) const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) - const childHDNode: bcl.HDNode = bitbox.HDNode.derive(hdNode, "0") + const childHDNode: bcl.HDNode = bitbox.HDNode.derive(hdNode, 0) assert.equal(bitbox.HDNode.toXPub(childHDNode), derive.xpub) assert.equal(bitbox.HDNode.toXPriv(childHDNode), derive.xpriv) }) @@ -45,7 +45,7 @@ describe("#HDNode", (): void => { it(`should derive hardened child HDNode`, (): void => { const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(derive.mnemonic) const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) - const childHDNode: bcl.HDNode = bitbox.HDNode.deriveHardened(hdNode, "0") + const childHDNode: bcl.HDNode = bitbox.HDNode.deriveHardened(hdNode, 0) assert.equal(bitbox.HDNode.toXPub(childHDNode), derive.xpub) assert.equal(bitbox.HDNode.toXPriv(childHDNode), derive.xpriv) }) @@ -56,9 +56,9 @@ describe("#HDNode", (): void => { it(`should derive BIP44 $BCH account`, (): void => { const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(derive.mnemonic) const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) - const purpose: bcl.HDNode = bitbox.HDNode.deriveHardened(hdNode, "44") - const coin: bcl.HDNode = bitbox.HDNode.deriveHardened(purpose, "145") - const childHDNode: bcl.HDNode = bitbox.HDNode.deriveHardened(coin, "0") + const purpose: bcl.HDNode = bitbox.HDNode.deriveHardened(hdNode, 44) + const coin: bcl.HDNode = bitbox.HDNode.deriveHardened(purpose, 145) + const childHDNode: bcl.HDNode = bitbox.HDNode.deriveHardened(coin, 0) assert.equal(bitbox.HDNode.toXPub(childHDNode), derive.xpub) assert.equal(bitbox.HDNode.toXPriv(childHDNode), derive.xpriv) }) diff --git a/test/unit/RawTransactions.js b/test/unit/RawTransactions.js index 0ca52f47..6285f43e 100644 --- a/test/unit/RawTransactions.js +++ b/test/unit/RawTransactions.js @@ -65,12 +65,9 @@ describe("#RawTransactions", function () { switch (_a.label) { case 0: hex = "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000"; - return [4 /*yield*/, bitbox.RawTransactions.decodeRawTransaction(hex) - //console.log(`result ${JSON.stringify(result, null, 2)}`) - ]; + return [4 /*yield*/, bitbox.RawTransactions.decodeRawTransaction(hex)]; case 1: result = _a.sent(); - //console.log(`result ${JSON.stringify(result, null, 2)}`) assert.hasAnyKeys(result, [ "txid", "hash", @@ -80,8 +77,10 @@ describe("#RawTransactions", function () { "vin", "vout" ]); - assert.isArray(result.vin); - assert.isArray(result.vout); + if (!Array.isArray(result)) { + assert.isArray(result.vin); + assert.isArray(result.vout); + } return [2 /*return*/]; } }); @@ -95,24 +94,23 @@ describe("#RawTransactions", function () { "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000", "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" ]; - return [4 /*yield*/, bitbox.RawTransactions.decodeRawTransaction(hexes) - //console.log(`result ${JSON.stringify(result, null, 2)}`) - ]; + return [4 /*yield*/, bitbox.RawTransactions.decodeRawTransaction(hexes)]; case 1: result = _a.sent(); - //console.log(`result ${JSON.stringify(result, null, 2)}`) assert.isArray(result); - assert.hasAnyKeys(result[0], [ - "txid", - "hash", - "size", - "version", - "locktime", - "vin", - "vout" - ]); - assert.isArray(result[0].vin); - assert.isArray(result[0].vout); + if (Array.isArray(result)) { + assert.hasAnyKeys(result[0], [ + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout" + ]); + assert.isArray(result[0].vin); + assert.isArray(result[0].vout); + } return [2 /*return*/]; } }); @@ -131,7 +129,6 @@ describe("#RawTransactions", function () { return [3 /*break*/, 3]; case 2: err_1 = _a.sent(); - //console.log(`err: `, err) assert.include(err_1.message, "Input must be a string or array of strings."); return [3 /*break*/, 3]; case 3: return [2 /*return*/]; @@ -151,7 +148,6 @@ describe("#RawTransactions", function () { return [4 /*yield*/, bitbox.RawTransactions.decodeRawTransaction(data)]; case 1: result = _a.sent(); - console.log("result: " + util.inspect(result)); assert.equal(true, false, "Unexpected result!"); return [3 /*break*/, 3]; case 2: @@ -172,12 +168,9 @@ describe("#RawTransactions", function () { case 0: txid = "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1"; verbose = false; - return [4 /*yield*/, bitbox.RawTransactions.getRawTransaction(txid, verbose) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - ]; + return [4 /*yield*/, bitbox.RawTransactions.getRawTransaction(txid, verbose)]; case 1: result = _a.sent(); - //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isString(result); return [2 /*return*/]; } @@ -190,12 +183,9 @@ describe("#RawTransactions", function () { case 0: txid = "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1"; verbose = true; - return [4 /*yield*/, bitbox.RawTransactions.getRawTransaction(txid, verbose) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - ]; + return [4 /*yield*/, bitbox.RawTransactions.getRawTransaction(txid, verbose)]; case 1: result = _a.sent(); - //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.hasAnyKeys(result, [ "hex", "txid", @@ -210,8 +200,10 @@ describe("#RawTransactions", function () { "time", "blocktime" ]); - assert.isArray(result.vin); - assert.isArray(result.vout); + if (!Array.isArray(result)) { + assert.isArray(result.vin); + assert.isArray(result.vout); + } return [2 /*return*/]; } }); @@ -226,14 +218,13 @@ describe("#RawTransactions", function () { "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" ]; verbose = false; - return [4 /*yield*/, bitbox.RawTransactions.getRawTransaction(txid, verbose) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - ]; + return [4 /*yield*/, bitbox.RawTransactions.getRawTransaction(txid, verbose)]; case 1: result = _a.sent(); - //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result); - assert.isString(result[0]); + if (Array.isArray(result)) { + assert.isString(result[0]); + } return [2 /*return*/]; } }); @@ -248,29 +239,28 @@ describe("#RawTransactions", function () { "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" ]; verbose = true; - return [4 /*yield*/, bitbox.RawTransactions.getRawTransaction(txid, verbose) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - ]; + return [4 /*yield*/, bitbox.RawTransactions.getRawTransaction(txid, verbose)]; case 1: result = _a.sent(); - //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result); - assert.hasAnyKeys(result[0], [ - "hex", - "txid", - "hash", - "size", - "version", - "locktime", - "vin", - "vout", - "blockhash", - "confirmations", - "time", - "blocktime" - ]); - assert.isArray(result[0].vin); - assert.isArray(result[0].vout); + if (Array.isArray(result)) { + assert.hasAnyKeys(result[0], [ + "hex", + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout", + "blockhash", + "confirmations", + "time", + "blocktime" + ]); + assert.isArray(result[0].vin); + assert.isArray(result[0].vout); + } return [2 /*return*/]; } }); @@ -308,12 +298,9 @@ describe("#RawTransactions", function () { switch (_a.label) { case 0: hex = "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16"; - return [4 /*yield*/, bitbox.RawTransactions.decodeScript(hex) - //console.log(`result ${JSON.stringify(result, null, 2)}`) - ]; + return [4 /*yield*/, bitbox.RawTransactions.decodeScript(hex)]; case 1: result = _a.sent(); - //console.log(`result ${JSON.stringify(result, null, 2)}`) assert.hasAllKeys(result, ["asm", "type", "p2sh"]); return [2 /*return*/]; } @@ -363,17 +350,13 @@ describe("#RawTransactions", function () { case 0: _a.trys.push([0, 2, , 3]); hex = "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000"; - return [4 /*yield*/, bitbox.RawTransactions.sendRawTransaction(hex) - //console.log(`result ${JSON.stringify(result, null, 2)}`) - ]; + return [4 /*yield*/, bitbox.RawTransactions.sendRawTransaction(hex)]; case 1: _a.sent(); - //console.log(`result ${JSON.stringify(result, null, 2)}`) assert.equal(true, false, "Unexpected result!"); return [3 /*break*/, 3]; case 2: err_4 = _a.sent(); - //console.log(`err: ${util.inspect(err)}`) assert.hasAllKeys(err_4, ["error"]); assert.include(err_4.error, "Missing inputs"); return [3 /*break*/, 3]; @@ -394,11 +377,9 @@ describe("#RawTransactions", function () { return [4 /*yield*/, bitbox.RawTransactions.sendRawTransaction(hexes)]; case 1: result = _a.sent(); - console.log("result " + JSON.stringify(result, null, 2)); return [3 /*break*/, 3]; case 2: err_5 = _a.sent(); - // console.log(`err: ${util.inspect(err)}`) assert.hasAllKeys(err_5, ["error"]); assert.include(err_5.error, "Missing inputs"); return [3 /*break*/, 3]; @@ -420,7 +401,6 @@ describe("#RawTransactions", function () { return [3 /*break*/, 3]; case 2: err_6 = _a.sent(); - //console.log(`err: `, err) assert.include(err_6.message, "Input hex must be a string or array of strings"); return [3 /*break*/, 3]; case 3: return [2 /*return*/]; @@ -428,7 +408,7 @@ describe("#RawTransactions", function () { }); }); }); it("should throw error on array size rate limit", function () { return __awaiter(_this, void 0, void 0, function () { - var dataMock, data, i, result, err_7; + var dataMock, data, i, err_7; return __generator(this, function (_a) { switch (_a.label) { case 0: @@ -439,8 +419,7 @@ describe("#RawTransactions", function () { data.push(dataMock); return [4 /*yield*/, bitbox.RawTransactions.sendRawTransaction(data)]; case 1: - result = _a.sent(); - console.log("result: " + util.inspect(result)); + _a.sent(); assert.equal(true, false, "Unexpected result!"); return [3 /*break*/, 3]; case 2: diff --git a/test/unit/RawTransactions.ts b/test/unit/RawTransactions.ts index 08348cae..f0ca1221 100644 --- a/test/unit/RawTransactions.ts +++ b/test/unit/RawTransactions.ts @@ -4,6 +4,7 @@ import { BITBOX } from "../../lib/BITBOX" import { RawTransactions } from "../../lib/RawTransactions" import { resturl } from "../../lib/BITBOX" import * as util from 'util' +import { VerboseRawTransactionResult, DecodeRawTransactionResult } from "bitcoin-com-rest"; // consts const bitbox: BITBOX = new BITBOX() @@ -26,12 +27,11 @@ describe("#RawTransactions", (): void => { }) describe("#decodeRawTransaction", (): void => { - it("should decode tx for a single hex", async () => { + it("should decode tx for a single hex", async (): Promise => { const hex: string = "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" - const result = await bitbox.RawTransactions.decodeRawTransaction(hex) - //console.log(`result ${JSON.stringify(result, null, 2)}`) + const result: DecodeRawTransactionResult | DecodeRawTransactionResult[] = await bitbox.RawTransactions.decodeRawTransaction(hex) assert.hasAnyKeys(result, [ "txid", @@ -42,41 +42,43 @@ describe("#RawTransactions", (): void => { "vin", "vout" ]) - assert.isArray(result.vin) - assert.isArray(result.vout) + if (!Array.isArray(result)) { + assert.isArray(result.vin) + assert.isArray(result.vout) + } }) - it("should decode an array of tx hexes", async () => { + it("should decode an array of tx hexes", async (): Promise => { const hexes: string[] = [ "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000", "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" ] - const result = await bitbox.RawTransactions.decodeRawTransaction(hexes) - //console.log(`result ${JSON.stringify(result, null, 2)}`) + const result: DecodeRawTransactionResult | DecodeRawTransactionResult[] = await bitbox.RawTransactions.decodeRawTransaction(hexes) assert.isArray(result) - assert.hasAnyKeys(result[0], [ - "txid", - "hash", - "size", - "version", - "locktime", - "vin", - "vout" - ]) - assert.isArray(result[0].vin) - assert.isArray(result[0].vout) + if (Array.isArray(result)) { + assert.hasAnyKeys(result[0], [ + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout" + ]) + assert.isArray(result[0].vin) + assert.isArray(result[0].vout) + } }) - it(`should throw an error for improper single input`, async () => { + it(`should throw an error for improper single input`, async (): Promise => { try { const addr: any = 12345 await bitbox.RawTransactions.decodeRawTransaction(addr) assert.equal(true, false, "Unexpected result!") } catch (err) { - //console.log(`err: `, err) assert.include( err.message, `Input must be a string or array of strings.` @@ -84,7 +86,7 @@ describe("#RawTransactions", (): void => { } }) - it(`should throw error on array size rate limit`, async () => { + it(`should throw error on array size rate limit`, async (): Promise => { try { const data: string[] = [] for (let i: number = 0; i < 25; i++) { @@ -93,9 +95,7 @@ describe("#RawTransactions", (): void => { ) } - const result = await bitbox.RawTransactions.decodeRawTransaction(data) - - console.log(`result: ${util.inspect(result)}`) + const result: DecodeRawTransactionResult | DecodeRawTransactionResult[] = await bitbox.RawTransactions.decodeRawTransaction(data) assert.equal(true, false, "Unexpected result!") } catch (err) { assert.hasAnyKeys(err, ["error"]) @@ -105,30 +105,28 @@ describe("#RawTransactions", (): void => { }) describe("#getRawTransaction", (): void => { - it("should decode a single txid, with concise output", async () => { + it("should decode a single txid, with concise output", async (): Promise => { const txid: string = "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" const verbose: boolean = false - const result = await bitbox.RawTransactions.getRawTransaction( + const result: VerboseRawTransactionResult | VerboseRawTransactionResult[] = await bitbox.RawTransactions.getRawTransaction( txid, verbose ) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isString(result) }) - it("should decode a single txid, with verbose output", async () => { + it("should decode a single txid, with verbose output", async (): Promise => { const txid: string = "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" const verbose: boolean = true - const result = await bitbox.RawTransactions.getRawTransaction( + const result: VerboseRawTransactionResult | VerboseRawTransactionResult[] = await bitbox.RawTransactions.getRawTransaction( txid, verbose ) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.hasAnyKeys(result, [ "hex", @@ -144,67 +142,72 @@ describe("#RawTransactions", (): void => { "time", "blocktime" ]) - assert.isArray(result.vin) - assert.isArray(result.vout) + if (!Array.isArray(result)) { + assert.isArray(result.vin) + assert.isArray(result.vout) + + } }) - it("should decode an array of txids, with a concise output", async () => { + it("should decode an array of txids, with a concise output", async (): Promise => { const txid: string[] = [ "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" ] const verbose: boolean = false - const result = await bitbox.RawTransactions.getRawTransaction( + const result: VerboseRawTransactionResult | VerboseRawTransactionResult[] = await bitbox.RawTransactions.getRawTransaction( txid, verbose ) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) - assert.isString(result[0]) + if (Array.isArray(result)) { + assert.isString(result[0]) + } }) - it("should decode an array of txids, with a verbose output", async () => { + it("should decode an array of txids, with a verbose output", async (): Promise => { const txid: string[] = [ "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" ] const verbose: boolean = true - const result = await bitbox.RawTransactions.getRawTransaction( + const result: VerboseRawTransactionResult | VerboseRawTransactionResult[] = await bitbox.RawTransactions.getRawTransaction( txid, verbose ) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) - assert.hasAnyKeys(result[0], [ - "hex", - "txid", - "hash", - "size", - "version", - "locktime", - "vin", - "vout", - "blockhash", - "confirmations", - "time", - "blocktime" - ]) - assert.isArray(result[0].vin) - assert.isArray(result[0].vout) + if (Array.isArray(result)) { + assert.hasAnyKeys(result[0], [ + "hex", + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout", + "blockhash", + "confirmations", + "time", + "blocktime" + ]) + assert.isArray(result[0].vin) + assert.isArray(result[0].vout) + } }) - it(`should throw error on array size rate limit`, async () => { + it(`should throw error on array size rate limit`, async (): Promise => { try { const dataMock: string = "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" const data: string[] = [] for (let i: number = 0; i < 25; i++) data.push(dataMock) - const result = await bitbox.RawTransactions.getRawTransaction(data) + const result: VerboseRawTransactionResult | VerboseRawTransactionResult[] = await bitbox.RawTransactions.getRawTransaction(data) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") @@ -216,12 +219,11 @@ describe("#RawTransactions", (): void => { }) describe("#decodeScript", () => { - it("should decode script for a single hex", async () => { + it("should decode script for a single hex", async (): Promise => { const hex: string = "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" const result = await bitbox.RawTransactions.decodeScript(hex) - //console.log(`result ${JSON.stringify(result, null, 2)}`) assert.hasAllKeys(result, ["asm", "type", "p2sh"]) }) @@ -264,24 +266,21 @@ describe("#RawTransactions", (): void => { that the server is responding on those endpoints, and responds consistently. */ describe("sendRawTransaction", () => { - it("should send a single transaction hex", async () => { + it("should send a single transaction hex", async (): Promise => { try { const hex: string = "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" await bitbox.RawTransactions.sendRawTransaction(hex) - //console.log(`result ${JSON.stringify(result, null, 2)}`) assert.equal(true, false, "Unexpected result!") } catch (err) { - //console.log(`err: ${util.inspect(err)}`) - assert.hasAllKeys(err, ["error"]) assert.include(err.error, "Missing inputs") } }) - it("should send an array of tx hexes", async () => { + it("should send an array of tx hexes", async (): Promise => { try { const hexes: string[] = [ "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000", @@ -289,23 +288,19 @@ describe("#RawTransactions", (): void => { ] const result = await bitbox.RawTransactions.sendRawTransaction(hexes) - console.log(`result ${JSON.stringify(result, null, 2)}`) } catch (err) { - // console.log(`err: ${util.inspect(err)}`) - assert.hasAllKeys(err, ["error"]) assert.include(err.error, "Missing inputs") } }) - it(`should throw an error for improper single input`, async () => { + it(`should throw an error for improper single input`, async (): Promise => { try { const addr: any = 12345 await bitbox.RawTransactions.sendRawTransaction(addr) assert.equal(true, false, "Unexpected result!") } catch (err) { - //console.log(`err: `, err) assert.include( err.message, `Input hex must be a string or array of strings` @@ -313,16 +308,14 @@ describe("#RawTransactions", (): void => { } }) - it(`should throw error on array size rate limit`, async () => { + it(`should throw error on array size rate limit`, async (): Promise => { try { - const dataMock = + const dataMock: string = "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" - const data = [] - for (let i = 0; i < 25; i++) data.push(dataMock) - - const result = await bitbox.RawTransactions.sendRawTransaction(data) + const data: string[] = [] + for (let i: number = 0; i < 25; i++) data.push(dataMock) - console.log(`result: ${util.inspect(result)}`) + await bitbox.RawTransactions.sendRawTransaction(data) assert.equal(true, false, "Unexpected result!") } catch (err) { assert.hasAnyKeys(err, ["error"]) diff --git a/test/unit/Script.ts b/test/unit/Script.ts index 374d4e26..370758d3 100644 --- a/test/unit/Script.ts +++ b/test/unit/Script.ts @@ -155,6 +155,7 @@ describe("#Script", (): void => { describe("#OPCodes", (): void => { for (const opcode in fixtures.opcodes) { it(`should have OP Code ${opcode}`, (): void => { + // @ts-ignore assert.equal(bitbox.Script.opcodes[opcode], fixtures.opcodes[opcode]) }) } @@ -277,14 +278,14 @@ describe("#Script", (): void => { const buf: Buffer = bitbox.Script.pubKeyHash.input.decode( Buffer.from(fixture.hex, "hex") ) - assert.equal(buf.signature.toString("hex"), fixture.signature) + assert.equal(buf.toString("hex"), fixture.signature) }) it(`should decode pubKeyHash input pubkey`, (): void => { const buf: Buffer = bitbox.Script.pubKeyHash.input.decode( Buffer.from(fixture.hex, "hex") ) - assert.equal(buf.pubKey.toString("hex"), fixture.pubKey) + assert.equal(buf.toString("hex"), fixture.pubKey) }) it(`should confirm correctly formatted pubKeyHash input`, (): void => { @@ -311,7 +312,7 @@ describe("#Script", (): void => { const buf: Buffer = bitbox.Script.pubKeyHash.output.decode( Buffer.from(`${fixture.hex}`, "hex") ) - assert.equal(buf.toString("hex"), identifier.toString("hex")) + assert.equal(buf.toString("hex"), identifier) }) it(`should confirm correctly formatted pubKeyHash output`, (): void => { @@ -338,7 +339,7 @@ describe("#Script", (): void => { }) it(`should decode multisig input`, (): void => { - const buf: Buffer = bitbox.Script.multisig.input.decode( + const buf: Buffer[] = bitbox.Script.multisig.input.decode( Buffer.from(fixture.hex, "hex") ) assert.equal(buf[0].toString("hex"), fixture.signatures[0]) diff --git a/test/unit/Transaction.ts b/test/unit/Transaction.ts index ab682271..a1068d37 100644 --- a/test/unit/Transaction.ts +++ b/test/unit/Transaction.ts @@ -3,7 +3,7 @@ import * as chai from "chai" import { BITBOX } from "../../lib/BITBOX" import { Transaction } from "../../lib/Transaction" import { resturl } from "../../lib/BITBOX" -import { TxnDetails } from "bitcoin-com-rest"; +import { TxnDetailsResult } from "bitcoin-com-rest"; // consts const bitbox: BITBOX = new BITBOX() @@ -26,7 +26,7 @@ describe("#Transaction", (): void => { it(`should GET details for a given txid`, async () => { const txid: string = "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" - const result: TxnDetails | TxnDetails[] = await bitbox.Transaction.details(txid) + const result: TxnDetailsResult | TxnDetailsResult[] = await bitbox.Transaction.details(txid) assert.hasAllKeys(result, [ "txid", "version", @@ -49,7 +49,7 @@ describe("#Transaction", (): void => { "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33", "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" ] - const result: TxnDetails | TxnDetails[] = await bitbox.Transaction.details(txids) + const result: TxnDetailsResult | TxnDetailsResult[] = await bitbox.Transaction.details(txids) assert.isArray(result) }) diff --git a/test/unit/TransactionBuilder.ts b/test/unit/TransactionBuilder.ts index 9bb52266..665d7e1e 100644 --- a/test/unit/TransactionBuilder.ts +++ b/test/unit/TransactionBuilder.ts @@ -24,6 +24,7 @@ describe("#TransactionBuilder", (): void => { it(`should match hash type`, (): void => { assert.equal( fixture[Object.keys(fixture)[0]], + // @ts-ignore transactionBuilder.hashTypes[Object.keys(fixture)[0]] ) }) diff --git a/test/unit/Util.ts b/test/unit/Util.ts index ccfb6b16..fd2756a0 100644 --- a/test/unit/Util.ts +++ b/test/unit/Util.ts @@ -4,7 +4,7 @@ import { BITBOX } from "../../lib/BITBOX" import { Util } from "../../lib/Util" import { resturl } from "../../lib/BITBOX" import * as util from "util" -import { AddressDetailsResult, AddressUtxoResult, AddressUnconfirmedResult } from "bitcoin-com-rest"; +import { AddressValidateResult } from "bitcoin-com-rest"; // conts const bitbox: BITBOX = new BITBOX() @@ -33,28 +33,27 @@ describe("#Util", (): void => { it(`should return false for testnet addr on mainnet`, async () => { const address: string = `bchtest:qqqk4y6lsl5da64sg5qc3xezmplyu5kmpyz2ysaa5y` - const result = await bitbox.Util.validateAddress(address) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) + const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) assert.hasAllKeys(result, ["isvalid"]) - assert.equal(result.isvalid, false) + if (!Array.isArray(result)) { + assert.equal(result.isvalid, false) + } }) it(`should return false for bad address`, async () => { const address: string = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peu` - - const result = await bitbox.Util.validateAddress(address) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) + const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) assert.hasAllKeys(result, ["isvalid"]) - assert.equal(result.isvalid, false) + if (!Array.isArray(result)) { + assert.equal(result.isvalid, false) + } }) - it(`should return validate valid address`, async () => { + it(`should validate valid address`, async () => { const address: string = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` - - const result = await bitbox.Util.validateAddress(address) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) + const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) assert.hasAllKeys(result, [ "isvalid", @@ -64,7 +63,9 @@ describe("#Util", (): void => { "iswatchonly", "isscript" ]) - assert.equal(result.isvalid, true) + if (!Array.isArray(result)) { + assert.equal(result.isvalid, true) + } }) it(`should validate an array of addresses`, async () => { @@ -73,18 +74,19 @@ describe("#Util", (): void => { `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` ] - const result = await bitbox.Util.validateAddress(address) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) + const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) assert.isArray(result) - assert.hasAllKeys(result[0], [ - "isvalid", - "address", - "scriptPubKey", - "ismine", - "iswatchonly", - "isscript" - ]) + if (Array.isArray(result)) { + assert.hasAllKeys(result[0], [ + "isvalid", + "address", + "scriptPubKey", + "ismine", + "iswatchonly", + "isscript" + ]) + } }) it(`should throw an error for improper single input`, async () => { @@ -94,7 +96,6 @@ describe("#Util", (): void => { await bitbox.Util.validateAddress(address) assert.equal(true, false, "Unexpected result!") } catch (err) { - //console.log(`err: `, err) assert.include( err.message, `Input must be a string or array of strings.` @@ -108,9 +109,7 @@ describe("#Util", (): void => { const data: string[] = [] for (let i: number = 0; i < 25; i++) data.push(dataMock) - const result = await bitbox.Util.validateAddress(data) - - console.log(`result: ${util.inspect(result)}`) + const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(data) assert.equal(true, false, "Unexpected result!") } catch (err) { assert.hasAnyKeys(err, ["error"]) From 7947219156abe0b2084a7c1ed00122283b248707 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Mon, 13 May 2019 17:54:56 +0900 Subject: [PATCH 370/480] All tests passing. --- lib/HDNode.ts | 10 +++++----- test/mocha.opts | 2 +- test/unit/HDNode.ts | 4 ++-- test/unit/Script.ts | 19 +++++++++++++------ test/unit/TransactionBuilder.ts | 12 ++++++------ 5 files changed, 27 insertions(+), 20 deletions(-) diff --git a/lib/HDNode.ts b/lib/HDNode.ts index 75cf9e1b..94648551 100644 --- a/lib/HDNode.ts +++ b/lib/HDNode.ts @@ -76,12 +76,12 @@ export class HDNode { return hdnode.derivePath(path) } - public derive(hdnode: bcl.HDNode, num: number): bcl.HDNode { - return hdnode.derive(num) + public derive(hdnode: bcl.HDNode, path: number): bcl.HDNode { + return hdnode.derive(path) } - public deriveHardened(hdnode: bcl.HDNode, num: number): bcl.HDNode { - return hdnode.deriveHardened(num) + public deriveHardened(hdnode: bcl.HDNode, path: number): bcl.HDNode { + return hdnode.deriveHardened(path) } public sign(hdnode: bcl.HDNode, buffer: Buffer): bcl.ECSignature { @@ -100,7 +100,7 @@ export class HDNode { return !hdnode.isNeutered() } - public toIdentifier(hdnode: bcl.HDNode): string { + public toIdentifier(hdnode: bcl.HDNode): Buffer { return hdnode.getIdentifier() } diff --git a/test/mocha.opts b/test/mocha.opts index 9be94450..db8d849a 100644 --- a/test/mocha.opts +++ b/test/mocha.opts @@ -1,4 +1,4 @@ ---require ts-node/register/transpile-only #replace with ts-node/register/transpile-only if you have custom types +--require ts-node/register/transpile-only --require source-map-support/register --recursivee test/unit/**/*.ts \ No newline at end of file diff --git a/test/unit/HDNode.ts b/test/unit/HDNode.ts index 98761f8b..e2d0b8ab 100644 --- a/test/unit/HDNode.ts +++ b/test/unit/HDNode.ts @@ -350,8 +350,8 @@ describe("#HDNode", (): void => { const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) const publicKeyBuffer: any = bitbox.HDNode.toPublicKey(node) const hash160: Buffer = bitbox.Crypto.hash160(publicKeyBuffer) - const identifier: string = bitbox.HDNode.toIdentifier(node) - assert.equal(identifier, hash160.toString("hex")) + const identifier: Buffer = bitbox.HDNode.toIdentifier(node) + assert.equal(identifier.toString('hex'), hash160.toString("hex")) }) }) }) diff --git a/test/unit/Script.ts b/test/unit/Script.ts index 370758d3..3e9a7431 100644 --- a/test/unit/Script.ts +++ b/test/unit/Script.ts @@ -275,17 +275,24 @@ describe("#Script", (): void => { }) it(`should decode pubKeyHash input signature`, (): void => { - const buf: Buffer = bitbox.Script.pubKeyHash.input.decode( + const buf: { + signature: Buffer + pubKey: Buffer + } = bitbox.Script.pubKeyHash.input.decode( Buffer.from(fixture.hex, "hex") ) - assert.equal(buf.toString("hex"), fixture.signature) + assert.equal(buf.signature.toString("hex"), fixture.signature) }) it(`should decode pubKeyHash input pubkey`, (): void => { - const buf: Buffer = bitbox.Script.pubKeyHash.input.decode( + const buf: { + signature: Buffer + pubKey: Buffer + } = bitbox.Script.pubKeyHash.input.decode( Buffer.from(fixture.hex, "hex") ) - assert.equal(buf.toString("hex"), fixture.pubKey) + console.log(buf) + assert.equal(buf.pubKey.toString("hex"), fixture.pubKey) }) it(`should confirm correctly formatted pubKeyHash input`, (): void => { @@ -302,7 +309,7 @@ describe("#Script", (): void => { describe("#pubKeyHashOutputTemplate", (): void => { fixtures.pubKeyHashOutputTemplate.forEach((fixture: any): void => { const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) - const identifier: string = bitbox.HDNode.toIdentifier(node) + const identifier: Buffer = bitbox.HDNode.toIdentifier(node) it(`should encode pubKeyHash output`, (): void => { const buf: Buffer = bitbox.Script.pubKeyHash.output.encode(identifier) assert.equal(buf.toString("hex"), fixture.hex) @@ -312,7 +319,7 @@ describe("#Script", (): void => { const buf: Buffer = bitbox.Script.pubKeyHash.output.decode( Buffer.from(`${fixture.hex}`, "hex") ) - assert.equal(buf.toString("hex"), identifier) + assert.equal(buf.toString("hex"), identifier.toString("hex")) }) it(`should confirm correctly formatted pubKeyHash output`, (): void => { diff --git a/test/unit/TransactionBuilder.ts b/test/unit/TransactionBuilder.ts index 665d7e1e..d9078ffd 100644 --- a/test/unit/TransactionBuilder.ts +++ b/test/unit/TransactionBuilder.ts @@ -1449,7 +1449,7 @@ describe("#TransactionBuilder", (): void => { const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() const txid: string = fixture.txHash const originalAmount: number = fixture.amount - const identifier1: string = bitbox.HDNode.toIdentifier(node1) + const identifier1: Buffer = bitbox.HDNode.toIdentifier(node1) const buf1: any = bitbox.Script.encode([ bitbox.Script.opcodes.OP_DUP, bitbox.Script.opcodes.OP_HASH160, @@ -1536,7 +1536,7 @@ describe("#TransactionBuilder", (): void => { const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() const txid: string = fixture.txHash const originalAmount: number = fixture.amount - const identifier1: string = bitbox.HDNode.toIdentifier(node1) + const identifier1: Buffer = bitbox.HDNode.toIdentifier(node1) const buf1: any = bitbox.Script.encode([ bitbox.Script.opcodes.OP_DUP, bitbox.Script.opcodes.OP_HASH160, @@ -1635,7 +1635,7 @@ describe("#TransactionBuilder", (): void => { const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() const txid: string = fixture.txHash const originalAmount: number = fixture.amount - const identifier1: string = bitbox.HDNode.toIdentifier(node1) + const identifier1: Buffer = bitbox.HDNode.toIdentifier(node1) const buf1: any = bitbox.Script.encode([ bitbox.Script.opcodes.OP_DUP, bitbox.Script.opcodes.OP_HASH160, @@ -1656,7 +1656,7 @@ describe("#TransactionBuilder", (): void => { { P2PKH: 5 } ) const sendAmount: number = originalAmount - byteCount - const identifier2: string = bitbox.HDNode.toIdentifier(node2) + const identifier2: Buffer = bitbox.HDNode.toIdentifier(node2) const buf2: Buffer = bitbox.Script.encode([ bitbox.Script.opcodes.OP_DUP, bitbox.Script.opcodes.OP_HASH160, @@ -1683,7 +1683,7 @@ describe("#TransactionBuilder", (): void => { const scriptHash3: Buffer = bitbox.Crypto.hash160(buf3) const data3: string = bitbox.Script.scriptHash.output.encode(scriptHash3) transactionBuilder.addOutput(data3, Math.floor(sendAmount / 2)) - const identifier4: string = bitbox.HDNode.toIdentifier(node4) + const identifier4: Buffer = bitbox.HDNode.toIdentifier(node4) const buf4: Buffer = bitbox.Script.encode([ bitbox.Script.opcodes.OP_DUP, bitbox.Script.opcodes.OP_HASH160, @@ -1754,7 +1754,7 @@ describe("#TransactionBuilder", (): void => { const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() const txid: string = fixture.txHash const originalAmount: number = fixture.amount - const identifier1: string = bitbox.HDNode.toIdentifier(node1) + const identifier1: Buffer = bitbox.HDNode.toIdentifier(node1) const buf1: any = bitbox.Script.encode([ bitbox.Script.opcodes.OP_DUP, bitbox.Script.opcodes.OP_HASH160, From baf1620593ba0ca5f9d78319e025b29da4aff1ad Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Mon, 13 May 2019 18:00:57 +0900 Subject: [PATCH 371/480] CLeanup. --- test/unit/Script.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/test/unit/Script.ts b/test/unit/Script.ts index 3e9a7431..3392e44b 100644 --- a/test/unit/Script.ts +++ b/test/unit/Script.ts @@ -291,7 +291,6 @@ describe("#Script", (): void => { } = bitbox.Script.pubKeyHash.input.decode( Buffer.from(fixture.hex, "hex") ) - console.log(buf) assert.equal(buf.pubKey.toString("hex"), fixture.pubKey) }) From 928f53b359ad6d20bceef9724d2edd82fd0dbfdc Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Mon, 13 May 2019 18:06:28 +0900 Subject: [PATCH 372/480] Don't make network requests in the tests. --- test/unit/Address.ts | 628 ++++++++-------- test/unit/Block.ts | 526 ++++++------- test/unit/Blockchain.ts | 1364 +++++++++++++++++----------------- test/unit/Control.ts | 54 +- test/unit/Price.ts | 16 +- test/unit/RawTransactions.ts | 594 +++++++-------- test/unit/Transaction.ts | 110 +-- test/unit/Util.ts | 176 ++--- 8 files changed, 1734 insertions(+), 1734 deletions(-) diff --git a/test/unit/Address.ts b/test/unit/Address.ts index b0b1b235..12440740 100644 --- a/test/unit/Address.ts +++ b/test/unit/Address.ts @@ -1140,330 +1140,330 @@ describe("#Address", (): void => { // }) // }) - describe(`#utxo`, (): void => { - describe(`#details`, (): void => { - it(`should GET address details for a single address`, async (): Promise => { - const addr: string = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - - const result: AddressDetailsResult | AddressDetailsResult[] = await bitbox.Address.details(addr) - - assert.hasAllKeys(result, [ - "balance", - "balanceSat", - "totalReceived", - "totalReceivedSat", - "totalSent", - "totalSentSat", - "unconfirmedBalance", - "unconfirmedBalanceSat", - "unconfirmedTxApperances", - "txApperances", - "transactions", - "legacyAddress", - "cashAddress", - "currentPage", - "pagesTotal" - ]) - if (!Array.isArray(result)) { - assert.isArray(result.transactions) - } - }) - - it(`should GET address details for an array of addresses`, async () => { - const addr: string[] = [ - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", - "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" - ] - - const result: AddressDetailsResult | AddressDetailsResult[] = await bitbox.Address.details(addr) - - assert.isArray(result) - if (Array.isArray(result)) { - assert.hasAllKeys(result[0], [ - "balance", - "balanceSat", - "totalReceived", - "totalReceivedSat", - "totalSent", - "totalSentSat", - "unconfirmedBalance", - "unconfirmedBalanceSat", - "unconfirmedTxApperances", - "txApperances", - "transactions", - "legacyAddress", - "cashAddress", - "currentPage", - "pagesTotal" - ]) - assert.isArray(result[0].transactions) - } - }) - - it(`should throw an error for improper input`, async () => { - try { - const addr: any = 12345 - - await bitbox.Address.details(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input address must be a string or array of strings` - ) - } - }) - - it(`should throw error on array size rate limit`, async () => { - try { - const addr = [] - for (let i = 0; i < 25; i++) - addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - - const result = await bitbox.Address.details(addr) - - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - it(`should GET utxos for a single address`, async () => { - const addr: string = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - - const result: AddressUtxoResult | AddressUtxoResult[] = await bitbox.Address.utxo(addr) - - assert.hasAllKeys(result, [ - "utxos", - "legacyAddress", - "cashAddress", - "scriptPubKey" - ]) - if (!Array.isArray(result)) { - assert.isArray(result.utxos) - assert.hasAnyKeys(result.utxos[0], [ - "txid", - "vout", - "amount", - "satoshis", - "height", - "confirmations" - ]) - } - }) - - it(`should GET utxo details for an array of addresses`, async () => { - const addr: string[] = [ - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", - "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" - ] - - const result: AddressUtxoResult | AddressUtxoResult[] = await bitbox.Address.utxo(addr) - - assert.isArray(result) - if (Array.isArray(result)) { - assert.hasAllKeys(result[0], [ - "utxos", - "legacyAddress", - "cashAddress", - "scriptPubKey" - ]) - assert.isArray(result[0].utxos) - assert.hasAnyKeys(result[0].utxos[0], [ - "txid", - "vout", - "amount", - "satoshis", - "height", - "confirmations" - ]) - } - }) - - it(`should throw an error for improper input`, async () => { - try { - const addr: any = 12345 - - await bitbox.Address.utxo(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input address must be a string or array of strings` - ) - } - }) - - it(`should throw error on array size rate limit`, async (): Promise => { - try { - const addr: string[] = [] - for (let i: number = 0; i < 25; i++) - addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - - const result: AddressUtxoResult | AddressUtxoResult[] = await bitbox.Address.utxo(addr) - - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - }) + // describe(`#utxo`, (): void => { + // describe(`#details`, (): void => { + // it(`should GET address details for a single address`, async (): Promise => { + // const addr: string = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + + // const result: AddressDetailsResult | AddressDetailsResult[] = await bitbox.Address.details(addr) + + // assert.hasAllKeys(result, [ + // "balance", + // "balanceSat", + // "totalReceived", + // "totalReceivedSat", + // "totalSent", + // "totalSentSat", + // "unconfirmedBalance", + // "unconfirmedBalanceSat", + // "unconfirmedTxApperances", + // "txApperances", + // "transactions", + // "legacyAddress", + // "cashAddress", + // "currentPage", + // "pagesTotal" + // ]) + // if (!Array.isArray(result)) { + // assert.isArray(result.transactions) + // } + // }) - describe(`#unconfirmed`, (): void => { - it(`should GET unconfirmed details on a single address`, async (): Promise => { - const addr: string = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" + // it(`should GET address details for an array of addresses`, async () => { + // const addr: string[] = [ + // "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + // "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" + // ] - const result: AddressUnconfirmedResult | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed(addr) + // const result: AddressDetailsResult | AddressDetailsResult[] = await bitbox.Address.details(addr) + + // assert.isArray(result) + // if (Array.isArray(result)) { + // assert.hasAllKeys(result[0], [ + // "balance", + // "balanceSat", + // "totalReceived", + // "totalReceivedSat", + // "totalSent", + // "totalSentSat", + // "unconfirmedBalance", + // "unconfirmedBalanceSat", + // "unconfirmedTxApperances", + // "txApperances", + // "transactions", + // "legacyAddress", + // "cashAddress", + // "currentPage", + // "pagesTotal" + // ]) + // assert.isArray(result[0].transactions) + // } + // }) + + // it(`should throw an error for improper input`, async () => { + // try { + // const addr: any = 12345 + + // await bitbox.Address.details(addr) + // assert.equal(true, false, "Unexpected result!") + // } catch (err) { + // //console.log(`err: `, err) + // assert.include( + // err.message, + // `Input address must be a string or array of strings` + // ) + // } + // }) - assert.hasAllKeys(result, ["utxos", "legacyAddress", "cashAddress"]) - if (!Array.isArray(result)) { - assert.isArray(result.utxos) - } - }) + // it(`should throw error on array size rate limit`, async () => { + // try { + // const addr = [] + // for (let i = 0; i < 25; i++) + // addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - it(`should GET unconfirmed details on multiple addresses`, async (): Promise => { - const addr = [ - "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", - "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" - ] + // const result = await bitbox.Address.details(addr) - const result: AddressUnconfirmedResult | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed(addr) + // console.log(`result: ${util.inspect(result)}`) + // assert.equal(true, false, "Unexpected result!") + // } catch (err) { + // assert.hasAnyKeys(err, ["error"]) + // assert.include(err.error, "Array too large") + // } + // }) + // it(`should GET utxos for a single address`, async () => { + // const addr: string = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + + // const result: AddressUtxoResult | AddressUtxoResult[] = await bitbox.Address.utxo(addr) + + // assert.hasAllKeys(result, [ + // "utxos", + // "legacyAddress", + // "cashAddress", + // "scriptPubKey" + // ]) + // if (!Array.isArray(result)) { + // assert.isArray(result.utxos) + // assert.hasAnyKeys(result.utxos[0], [ + // "txid", + // "vout", + // "amount", + // "satoshis", + // "height", + // "confirmations" + // ]) + // } + // }) - assert.isArray(result) - if (Array.isArray(result)) { - assert.hasAllKeys(result[0], ["utxos", "legacyAddress", "cashAddress"]) - assert.isArray(result[0].utxos) - } - }) + // it(`should GET utxo details for an array of addresses`, async () => { + // const addr: string[] = [ + // "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + // "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" + // ] - it(`should throw an error for improper input`, async () => { - try { - const addr: any = 12345 + // const result: AddressUtxoResult | AddressUtxoResult[] = await bitbox.Address.utxo(addr) + + // assert.isArray(result) + // if (Array.isArray(result)) { + // assert.hasAllKeys(result[0], [ + // "utxos", + // "legacyAddress", + // "cashAddress", + // "scriptPubKey" + // ]) + // assert.isArray(result[0].utxos) + // assert.hasAnyKeys(result[0].utxos[0], [ + // "txid", + // "vout", + // "amount", + // "satoshis", + // "height", + // "confirmations" + // ]) + // } + // }) + + // it(`should throw an error for improper input`, async () => { + // try { + // const addr: any = 12345 + + // await bitbox.Address.utxo(addr) + // assert.equal(true, false, "Unexpected result!") + // } catch (err) { + // //console.log(`err: `, err) + // assert.include( + // err.message, + // `Input address must be a string or array of strings` + // ) + // } + // }) - await bitbox.Address.unconfirmed(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input address must be a string or array of strings` - ) - } - }) + // it(`should throw error on array size rate limit`, async (): Promise => { + // try { + // const addr: string[] = [] + // for (let i: number = 0; i < 25; i++) + // addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - it(`should throw error on array size rate limit`, async (): Promise => { - try { - const addr: string[] = [] - for (let i: number = 0; i < 25; i++) - addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") + // const result: AddressUtxoResult | AddressUtxoResult[] = await bitbox.Address.utxo(addr) - const result: AddressUnconfirmedResult | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed(addr) + // console.log(`result: ${util.inspect(result)}`) + // assert.equal(true, false, "Unexpected result!") + // } catch (err) { + // assert.hasAnyKeys(err, ["error"]) + // assert.include(err.error, "Array too large") + // } + // }) + // }) - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - }) + // describe(`#unconfirmed`, (): void => { + // it(`should GET unconfirmed details on a single address`, async (): Promise => { + // const addr: string = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" - describe(`#transactions`, (): void => { - it(`should GET transactions for a single address`, async (): Promise => { - const addr: string = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" - const result: any = await bitbox.Address.transactions(addr) - - assert.hasAllKeys(result, [ - "txs", - "pagesTotal", - "cashAddress", - "currentPage", - "legacyAddress" - ]) - assert.isArray(result.txs) - assert.hasAnyKeys(result.txs[0], [ - "txid", - "version", - "locktime", - "vin", - "vout", - "confirmations", - "time", - "blocktime", - "valueOut", - "size", - "valueIn", - "fees" - ]) - }) - - it(`should get transactions on multiple addresses`, async (): Promise => { - const addr: string[] = [ - "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", - "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" - ] - const result: any = await bitbox.Address.transactions(addr) - - assert.isArray(result) - assert.hasAllKeys(result[0], [ - "txs", - "pagesTotal", - "cashAddress", - "currentPage", - "legacyAddress" - ]) - assert.isArray(result[0].txs) - assert.hasAnyKeys(result[0].txs[0], [ - "txid", - "version", - "locktime", - "vin", - "vout", - "confirmations", - "time", - "blocktime", - "valueOut", - "size", - "valueIn", - "fees" - ]) - }) - - it(`should throw an error for improper input`, async (): Promise => { - try { - const addr: any = 12345 - - await bitbox.Address.transactions(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input address must be a string or array of strings` - ) - } - }) - - it(`should throw error on array size rate limit`, async (): Promise => { - try { - const addr: string[] = [] - for (let i: number = 0; i < 25; i++) - addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - - const result: any = await bitbox.Address.transactions(addr) - - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - }) - }) + // const result: AddressUnconfirmedResult | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed(addr) + + // assert.hasAllKeys(result, ["utxos", "legacyAddress", "cashAddress"]) + // if (!Array.isArray(result)) { + // assert.isArray(result.utxos) + // } + // }) + + // it(`should GET unconfirmed details on multiple addresses`, async (): Promise => { + // const addr = [ + // "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", + // "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" + // ] + + // const result: AddressUnconfirmedResult | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed(addr) + + // assert.isArray(result) + // if (Array.isArray(result)) { + // assert.hasAllKeys(result[0], ["utxos", "legacyAddress", "cashAddress"]) + // assert.isArray(result[0].utxos) + // } + // }) + + // it(`should throw an error for improper input`, async () => { + // try { + // const addr: any = 12345 + + // await bitbox.Address.unconfirmed(addr) + // assert.equal(true, false, "Unexpected result!") + // } catch (err) { + // //console.log(`err: `, err) + // assert.include( + // err.message, + // `Input address must be a string or array of strings` + // ) + // } + // }) + + // it(`should throw error on array size rate limit`, async (): Promise => { + // try { + // const addr: string[] = [] + // for (let i: number = 0; i < 25; i++) + // addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") + + // const result: AddressUnconfirmedResult | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed(addr) + + // console.log(`result: ${util.inspect(result)}`) + // assert.equal(true, false, "Unexpected result!") + // } catch (err) { + // assert.hasAnyKeys(err, ["error"]) + // assert.include(err.error, "Array too large") + // } + // }) + // }) + + // describe(`#transactions`, (): void => { + // it(`should GET transactions for a single address`, async (): Promise => { + // const addr: string = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" + // const result: any = await bitbox.Address.transactions(addr) + + // assert.hasAllKeys(result, [ + // "txs", + // "pagesTotal", + // "cashAddress", + // "currentPage", + // "legacyAddress" + // ]) + // assert.isArray(result.txs) + // assert.hasAnyKeys(result.txs[0], [ + // "txid", + // "version", + // "locktime", + // "vin", + // "vout", + // "confirmations", + // "time", + // "blocktime", + // "valueOut", + // "size", + // "valueIn", + // "fees" + // ]) + // }) + + // it(`should get transactions on multiple addresses`, async (): Promise => { + // const addr: string[] = [ + // "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", + // "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" + // ] + // const result: any = await bitbox.Address.transactions(addr) + + // assert.isArray(result) + // assert.hasAllKeys(result[0], [ + // "txs", + // "pagesTotal", + // "cashAddress", + // "currentPage", + // "legacyAddress" + // ]) + // assert.isArray(result[0].txs) + // assert.hasAnyKeys(result[0].txs[0], [ + // "txid", + // "version", + // "locktime", + // "vin", + // "vout", + // "confirmations", + // "time", + // "blocktime", + // "valueOut", + // "size", + // "valueIn", + // "fees" + // ]) + // }) + + // it(`should throw an error for improper input`, async (): Promise => { + // try { + // const addr: any = 12345 + + // await bitbox.Address.transactions(addr) + // assert.equal(true, false, "Unexpected result!") + // } catch (err) { + // //console.log(`err: `, err) + // assert.include( + // err.message, + // `Input address must be a string or array of strings` + // ) + // } + // }) + + // it(`should throw error on array size rate limit`, async (): Promise => { + // try { + // const addr: string[] = [] + // for (let i: number = 0; i < 25; i++) + // addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") + + // const result: any = await bitbox.Address.transactions(addr) + + // console.log(`result: ${util.inspect(result)}`) + // assert.equal(true, false, "Unexpected result!") + // } catch (err) { + // assert.hasAnyKeys(err, ["error"]) + // assert.include(err.error, "Array too large") + // } + // }) + // }) + // }) }) diff --git a/test/unit/Block.ts b/test/unit/Block.ts index 7f02e24e..b4853dce 100644 --- a/test/unit/Block.ts +++ b/test/unit/Block.ts @@ -31,267 +31,267 @@ describe("#Block", (): void => { assert.equal(block.restURL, resturl) }) - describe("#detailsByHash", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get block details", async (): Promise => { - const data: any = { - hash: - "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", - size: 216, - height: 507, - version: 1, - merkleroot: - "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8", - tx: [ - "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8" - ], - time: 1231973656, - nonce: 330467862, - bits: "1d00ffff", - difficulty: 1, - chainwork: - "000000000000000000000000000000000000000000000000000001fc01fc01fc", - confirmations: 528402, - previousblockhash: - "00000000a99525c043fd7e323414b60add43c254c44860094048f9c01e9a5fdd", - nextblockhash: - "000000000d550f4161f2702165fdd782ec72ff9c541f864ebb8256b662b7e51a", - reward: 50, - isMainChain: true, - poolInfo: {} - } - const resolved: Promise = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHash( - "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0" - ) - - assert.deepEqual(result, data) - }) - }) - - describe("#detailsByHeight", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get block details", async (): Promise => { - const data: any = { - hash: - "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", - size: 216, - height: 507, - version: 1, - merkleroot: - "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8", - tx: [ - "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8" - ], - time: 1231973656, - nonce: 330467862, - bits: "1d00ffff", - difficulty: 1, - chainwork: - "000000000000000000000000000000000000000000000000000001fc01fc01fc", - confirmations: 528402, - previousblockhash: - "00000000a99525c043fd7e323414b60add43c254c44860094048f9c01e9a5fdd", - nextblockhash: - "000000000d550f4161f2702165fdd782ec72ff9c541f864ebb8256b662b7e51a", - reward: 50, - isMainChain: true, - poolInfo: {} - } - const resolved: Promise = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(500007) - - assert.deepEqual(result, data) - }) - }) - - describe(`#detailsByHeight`, (): void => { - it(`should GET block details for a given Height`, async (): Promise => { - const block: number = 500000 - - const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(block) - - assert.hasAllKeys(result, [ - "hash", - "size", - "height", - "version", - "merkleroot", - "tx", - "time", - "nonce", - "bits", - "difficulty", - "chainwork", - "confirmations", - "previousblockhash", - "nextblockhash", - "reward", - "isMainChain", - "poolInfo" - ]) - }) - - it(`should GET block details for an array of blocks`, async (): Promise => { - const blocks: number[] = [500000, 500001] - const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(blocks) - - assert.isArray(result) - if (Array.isArray(result)) { - assert.hasAllKeys(result[0], [ - "hash", - "size", - "height", - "version", - "merkleroot", - "tx", - "time", - "nonce", - "bits", - "difficulty", - "chainwork", - "confirmations", - "previousblockhash", - "nextblockhash", - "reward", - "isMainChain", - "poolInfo" - ]) - - } - }) - - it(`should throw an error for improper single input`, async (): Promise => { - try { - const blocks: any = "asdf" - - await bitbox.Block.detailsByHeight(blocks) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.include( - err.message, - `Input must be a number or array of numbers.` - ) - } - }) - - it(`should throw error on array size rate limit`, async (): Promise => { - try { - const blocks: number[] = [] - for (let i: number = 0; i < 25; i++) blocks.push(500000) - const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(blocks) - - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - }) - - describe("#detailsByHash", (): void => { - it(`should GET block details for a given hash`, async (): Promise => { - const hash: string = - "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHash(hash) - - assert.hasAllKeys(result, [ - "hash", - "size", - "height", - "version", - "merkleroot", - "tx", - "time", - "nonce", - "bits", - "difficulty", - "chainwork", - "confirmations", - "previousblockhash", - "nextblockhash", - "reward", - "isMainChain", - "poolInfo" - ]) - }) - - it(`should GET block details for an array of hashes`, async (): Promise => { - const hash: string[] = [ - "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", - "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - ] - - const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHash(hash) - - assert.isArray(result) - if (Array.isArray(result)) { - assert.hasAllKeys(result[0], [ - "hash", - "size", - "height", - "version", - "merkleroot", - "tx", - "time", - "nonce", - "bits", - "difficulty", - "chainwork", - "confirmations", - "previousblockhash", - "nextblockhash", - "reward", - "isMainChain", - "poolInfo" - ]) - - } - }) - - it(`should throw an error for improper single input`, async (): Promise => { - try { - const hash: any = 12345 - - await bitbox.Block.detailsByHash(hash) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input must be a string or array of strings` - ) - } - }) - - it(`should throw error on array size rate limit`, async (): Promise => { - try { - const data: string[] = [] - for (let i: number = 0; i < 25; i++) { - data.push( - "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - ) - } - - const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHash(data) - - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - }) + // describe("#detailsByHash", (): void => { + // let sandbox: any + // beforeEach(() => (sandbox = sinon.sandbox.create())) + // afterEach(() => sandbox.restore()) + + // it("should get block details", async (): Promise => { + // const data: any = { + // hash: + // "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", + // size: 216, + // height: 507, + // version: 1, + // merkleroot: + // "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8", + // tx: [ + // "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8" + // ], + // time: 1231973656, + // nonce: 330467862, + // bits: "1d00ffff", + // difficulty: 1, + // chainwork: + // "000000000000000000000000000000000000000000000000000001fc01fc01fc", + // confirmations: 528402, + // previousblockhash: + // "00000000a99525c043fd7e323414b60add43c254c44860094048f9c01e9a5fdd", + // nextblockhash: + // "000000000d550f4161f2702165fdd782ec72ff9c541f864ebb8256b662b7e51a", + // reward: 50, + // isMainChain: true, + // poolInfo: {} + // } + // const resolved: Promise = new Promise(r => r({ data: data })) + // sandbox.stub(axios, "get").returns(resolved) + + // const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHash( + // "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0" + // ) + + // assert.deepEqual(result, data) + // }) + // }) + + // describe("#detailsByHeight", (): void => { + // let sandbox: any + // beforeEach(() => (sandbox = sinon.sandbox.create())) + // afterEach(() => sandbox.restore()) + + // it("should get block details", async (): Promise => { + // const data: any = { + // hash: + // "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", + // size: 216, + // height: 507, + // version: 1, + // merkleroot: + // "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8", + // tx: [ + // "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8" + // ], + // time: 1231973656, + // nonce: 330467862, + // bits: "1d00ffff", + // difficulty: 1, + // chainwork: + // "000000000000000000000000000000000000000000000000000001fc01fc01fc", + // confirmations: 528402, + // previousblockhash: + // "00000000a99525c043fd7e323414b60add43c254c44860094048f9c01e9a5fdd", + // nextblockhash: + // "000000000d550f4161f2702165fdd782ec72ff9c541f864ebb8256b662b7e51a", + // reward: 50, + // isMainChain: true, + // poolInfo: {} + // } + // const resolved: Promise = new Promise(r => r({ data: data })) + // sandbox.stub(axios, "get").returns(resolved) + + // const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(500007) + + // assert.deepEqual(result, data) + // }) + // }) + + // describe(`#detailsByHeight`, (): void => { + // it(`should GET block details for a given Height`, async (): Promise => { + // const block: number = 500000 + + // const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(block) + + // assert.hasAllKeys(result, [ + // "hash", + // "size", + // "height", + // "version", + // "merkleroot", + // "tx", + // "time", + // "nonce", + // "bits", + // "difficulty", + // "chainwork", + // "confirmations", + // "previousblockhash", + // "nextblockhash", + // "reward", + // "isMainChain", + // "poolInfo" + // ]) + // }) + + // it(`should GET block details for an array of blocks`, async (): Promise => { + // const blocks: number[] = [500000, 500001] + // const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(blocks) + + // assert.isArray(result) + // if (Array.isArray(result)) { + // assert.hasAllKeys(result[0], [ + // "hash", + // "size", + // "height", + // "version", + // "merkleroot", + // "tx", + // "time", + // "nonce", + // "bits", + // "difficulty", + // "chainwork", + // "confirmations", + // "previousblockhash", + // "nextblockhash", + // "reward", + // "isMainChain", + // "poolInfo" + // ]) + + // } + // }) + + // it(`should throw an error for improper single input`, async (): Promise => { + // try { + // const blocks: any = "asdf" + + // await bitbox.Block.detailsByHeight(blocks) + // assert.equal(true, false, "Unexpected result!") + // } catch (err) { + // assert.include( + // err.message, + // `Input must be a number or array of numbers.` + // ) + // } + // }) + + // it(`should throw error on array size rate limit`, async (): Promise => { + // try { + // const blocks: number[] = [] + // for (let i: number = 0; i < 25; i++) blocks.push(500000) + // const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(blocks) + + // console.log(`result: ${util.inspect(result)}`) + // assert.equal(true, false, "Unexpected result!") + // } catch (err) { + // assert.hasAnyKeys(err, ["error"]) + // assert.include(err.error, "Array too large") + // } + // }) + // }) + + // describe("#detailsByHash", (): void => { + // it(`should GET block details for a given hash`, async (): Promise => { + // const hash: string = + // "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + // const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHash(hash) + + // assert.hasAllKeys(result, [ + // "hash", + // "size", + // "height", + // "version", + // "merkleroot", + // "tx", + // "time", + // "nonce", + // "bits", + // "difficulty", + // "chainwork", + // "confirmations", + // "previousblockhash", + // "nextblockhash", + // "reward", + // "isMainChain", + // "poolInfo" + // ]) + // }) + + // it(`should GET block details for an array of hashes`, async (): Promise => { + // const hash: string[] = [ + // "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", + // "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + // ] + + // const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHash(hash) + + // assert.isArray(result) + // if (Array.isArray(result)) { + // assert.hasAllKeys(result[0], [ + // "hash", + // "size", + // "height", + // "version", + // "merkleroot", + // "tx", + // "time", + // "nonce", + // "bits", + // "difficulty", + // "chainwork", + // "confirmations", + // "previousblockhash", + // "nextblockhash", + // "reward", + // "isMainChain", + // "poolInfo" + // ]) + + // } + // }) + + // it(`should throw an error for improper single input`, async (): Promise => { + // try { + // const hash: any = 12345 + + // await bitbox.Block.detailsByHash(hash) + // assert.equal(true, false, "Unexpected result!") + // } catch (err) { + // //console.log(`err: `, err) + // assert.include( + // err.message, + // `Input must be a string or array of strings` + // ) + // } + // }) + + // it(`should throw error on array size rate limit`, async (): Promise => { + // try { + // const data: string[] = [] + // for (let i: number = 0; i < 25; i++) { + // data.push( + // "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + // ) + // } + + // const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHash(data) + + // console.log(`result: ${util.inspect(result)}`) + // assert.equal(true, false, "Unexpected result!") + // } catch (err) { + // assert.hasAnyKeys(err, ["error"]) + // assert.include(err.error, "Array too large") + // } + // }) + // }) }) diff --git a/test/unit/Blockchain.ts b/test/unit/Blockchain.ts index 9771d715..2bb60426 100644 --- a/test/unit/Blockchain.ts +++ b/test/unit/Blockchain.ts @@ -31,686 +31,686 @@ describe("#Blockchain", (): void => { }) }) - describe("#getBlock", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = { - hash: "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09", - confirmations: 526807, - size: 216, - height: 1000, - version: 1, - versionHex: "00000001", - merkleroot: - "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33", - tx: ["fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33"], - time: 1232346882, - mediantime: 1232344831, - nonce: 2595206198, - bits: "1d00ffff", - difficulty: 1, - chainwork: - "000000000000000000000000000000000000000000000000000003e903e903e9", - previousblockhash: - "0000000008e647742775a230787d66fdf92c46a48c896bfbc85cdc8acc67e87d", - nextblockhash: - "00000000a2887344f8db859e372e7e4bc26b23b9de340f725afbf2edb265b4c6" - } - - it("should get block by hash", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Blockchain.getBlock( - "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09" - ) - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getBlockchainInfo", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = { - chain: "main", - blocks: 527810, - headers: 527810, - bestblockhash: - "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0", - difficulty: 576023394804.6666, - mediantime: 1524878499, - verificationprogress: 0.9999990106793685, - chainwork: - "00000000000000000000000000000000000000000096da5b040913fa09249b4e", - pruned: false, - softforks: [ - { id: "bip34", version: 2, reject: [Object] }, - { id: "bip66", version: 3, reject: [Object] }, - { id: "bip65", version: 4, reject: [Object] } - ], - bip9_softforks: { - csv: { - status: "active", - startTime: 1462060800, - timeout: 1493596800, - since: 419328 - } - } - } - - it("should get blockchain info", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Blockchain.getBlockchainInfo() - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getBlockCount", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = 527810 - - it("should get block count", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Blockchain.getBlockCount() - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getBlockHash", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data: string = - "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0" - - it("should get block hash by height", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Blockchain.getBlockHash(527810) - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getBlockHeader", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = { - hash: "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0", - confirmations: 1, - height: 527810, - version: 536870912, - versionHex: "20000000", - merkleroot: - "9298432bbebe4638456aa19cb7ef91639da87668a285d88d0ecd6080424d223b", - time: 1524881438, - mediantime: 1524878499, - nonce: 3326843941, - bits: "1801e8a5", - difficulty: 576023394804.6666, - chainwork: - "00000000000000000000000000000000000000000096da5b040913fa09249b4e", - previousblockhash: - "000000000000000000b33251708bc7a7b4540e61880d8c376e8e2db6a19a4789" - } - - it("should get block header by hash", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Blockchain.getBlockHeader( - "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0", - true - ) - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getDifficulty", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = "577528469277.1339" - - it("should get difficulty", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Blockchain.getDifficulty() - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getMempoolAncestors", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = "Transaction not in mempool" - - it("should get mempool ancestors", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Blockchain.getMempoolAncestors( - "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", - true - ) - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getMempoolDescendants", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = { - result: "Transaction not in mempool" - } - - it("should get mempool descendants", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Blockchain.getMempoolDescendants( - "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", - true - ) - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getMempoolEntry", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = { - result: "Transaction not in mempool" - } - - it("should get mempool entry", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Blockchain.getMempoolEntry( - "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88" - ) - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getMempoolInfo", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = { - result: { - size: 317, - bytes: 208583, - usage: 554944, - maxmempool: 300000000, - mempoolminfee: 0 - } - } - - it("should get mempool info", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Blockchain.getMempoolInfo() - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getRawMempool", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = { - result: { - transactions: [ - { - txid: - "ab36d68dd0a618592fe34e4a898e8beeeb4049133547dbb16f9338384084af96", - size: 191, - fee: 0.00047703, - modifiedfee: 0.00047703, - time: 1524883317, - height: 527811, - startingpriority: 5287822727.272727, - currentpriority: 5287822727.272727, - descendantcount: 1, - descendantsize: 191, - descendantfees: 47703, - ancestorcount: 1, - ancestorsize: 191, - ancestorfees: 47703, - depends: [] - } - ] - } - } - - it("should get mempool info", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Blockchain.getRawMempool() - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getTxOut", (): void => { - // TODO finish this test - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = { - result: {} - } - - it("should get TODO", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Blockchain.getTxOut( - "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", - 0, - true - ) - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#preciousBlock", (): void => { - // TODO finish this test - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = { - result: {} - } - - it("should get TODO", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - // @ts-ignore - bitbox.Blockchain.preciousBlock() - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#pruneBlockchain", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = "Cannot prune blocks because node is not in prune mode." - - it("should prune blockchain", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "post").returns(resolved) - - bitbox.Blockchain.pruneBlockchain(507) - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#verifyChain", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = true - - it("should verify blockchain", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Blockchain.verifyChain(3, 6) - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#verifyTxOutProof", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = "proof must be hexadecimal string (not '')" - - it("should verify utxo proof", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Blockchain.verifyTxOutProof("3") - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe(`#getBestBlockHash`, (): void => { - it(`should GET best block hash`, async () => { - const result: string = await bitbox.Blockchain.getBestBlockHash() - - assert.isString(result) - assert.equal(result.length, 64, "Specific hash length") - }) - }) - - describe("#getBlockHeader", (): void => { - it(`should GET block header for a single hash`, async () => { - const hash: string = - "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - - const result: BlockHeaderResult | BlockHeaderResult[] = await bitbox.Blockchain.getBlockHeader(hash) - - assert.hasAllKeys(result, [ - "hash", - "confirmations", - "height", - "version", - "versionHex", - "merkleroot", - "time", - "mediantime", - "nonce", - "bits", - "difficulty", - "chainwork", - "previousblockhash", - "nextblockhash" - ]) - }) - - it(`should GET block headers for an array of hashes`, async () => { - const hash: string[] = [ - "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", - "00000000000000000568f0a96bf4348847bc84e455cbfec389f27311037a20f3" - ] - - const result: BlockHeaderResult | BlockHeaderResult[] = await bitbox.Blockchain.getBlockHeader(hash) - - assert.isArray(result) - if (Array.isArray(result)) { - assert.hasAllKeys(result[0], [ - "hash", - "confirmations", - "height", - "version", - "versionHex", - "merkleroot", - "time", - "mediantime", - "nonce", - "bits", - "difficulty", - "chainwork", - "previousblockhash", - "nextblockhash" - ]) - - } - }) - - it(`should throw an error for improper input`, async () => { - try { - const hash: any = 12345 - - await bitbox.Blockchain.getBlockHeader(hash) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.include( - err.message, - `Input hash must be a string or array of strings` - ) - } - }) - - it(`should throw error on array size rate limit`, async () => { - try { - const data: string[] = [] - for (let i: number = 0; i < 25; i++) { - data.push( - "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - ) - } - - const result: BlockHeaderResult | BlockHeaderResult[] = await bitbox.Blockchain.getBlockHeader(data) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - }) - - describe("#getMempoolEntry", (): void => { - /* - // To run this test, the txid must be unconfirmed. - const txid = - "defea04c38ee00cf73ad402984714ed22dc0dd99b2ae5cb50d791d94343ba79b" - - it(`should GET single mempool entry`, async () => { - const result = await bitbox.Blockchain.getMempoolEntry(txid) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.hasAnyKeys(result, [ - "size", - "fee", - "modifiedfee", - "time", - "height", - "startingpriority", - "currentpriority", - "descendantcount", - "descendantsize", - "descendantfees", - "ancestorcount", - "ancestorsize", - "ancestorfees", - "depends" - ]) - }) - - it(`should get an array of mempool entries`, async () => { - const result = await bitbox.Blockchain.getMempoolEntry([txid, txid]) - console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.isArray(result) - assert.hasAnyKeys(result[0], [ - "size", - "fee", - "modifiedfee", - "time", - "height", - "startingpriority", - "currentpriority", - "descendantcount", - "descendantsize", - "descendantfees", - "ancestorcount", - "ancestorsize", - "ancestorfees", - "depends" - ]) - }) - */ - - it(`should throw an error if txid is not in mempool`, async (): Promise => { - try { - const txid: string = - "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" - - await bitbox.Blockchain.getMempoolEntry(txid) - - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: ${util.inspect(err)}`) - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, `Transaction not in mempool`) - } - }) - - it(`should throw an error for improper single input`, async (): Promise => { - try { - const txid: any = 12345 - - await bitbox.Blockchain.getMempoolEntry(txid) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.include( - err.message, - `Input must be a string or array of strings` - ) - } - }) - }) - - describe(`#getTxOutProof`, (): void => { - it(`should get single tx out proof`, async (): Promise => { - const txid: string = - "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" - - const result = await bitbox.Blockchain.getTxOutProof(txid) - - assert.isString(result) - }) - - it(`should get an array of tx out proofs`, async (): Promise => { - const txid: string[] = [ - "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7", - "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" - ] - - const result = await bitbox.Blockchain.getTxOutProof(txid) - - assert.isArray(result) - assert.isString(result[0]) - }) - - it(`should throw an error for improper single input`, async (): Promise => { - try { - const txid: any = 12345 - - await bitbox.Blockchain.getTxOutProof(txid) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.include( - err.message, - `Input must be a string or array of strings` - ) - } - }) - }) - - describe(`#verifyTxOutProof`, (): void => { - const mockTxOutProof: string = - "0000002086a4a3161f9ba2174883ec0b93acceac3b2f37b36ed1f90000000000000000009cb02406d1094ecf3e0b4c0ca7c585125e721147c39daf6b48c90b512741e13a12333e5cb38705180f441d8c7100000008fee9b60f1edb57e5712839186277ed39e0a004a32be9096ee47472efde8eae62f789f9d7a9f59d0ea7093dea1e0c65ff0b953f1d8cf3d47f92e732ca0295f603c272d5f4a63509f7a887f2549d78af7444aa0ecbb4f66d9cbe13bc6a89f59e05a199df8325d490818ffefe6b6321d32d7496a68580459836c0183f89082fc1b491cc91b23ecdcaa4c347bf599a62904d61f1c15b400ebbd5c90149010c139d9c1e31b774b796977393a238080ab477e1d240d0c4f155d36f519668f49bae6bd8cd5b8e40522edf76faa09cca6188d83ff13af6967cc6a569d1a5e9aeb1fdb7f531ddd2d0cbb81879741d5f38166ac1932136264366a4065cc96a42e41f96294f02df01" - - it(`should verify a single proof`, async (): Promise => { - const result = await bitbox.Blockchain.verifyTxOutProof(mockTxOutProof) - - assert.isArray(result) - assert.isString(result[0]) - assert.equal( - result[0], - "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" - ) - }) - - it(`should verify an array of proofs`, async (): Promise => { - const proofs: string[] = [mockTxOutProof, mockTxOutProof] - const result = await bitbox.Blockchain.verifyTxOutProof(proofs) - - assert.isArray(result) - assert.isString(result[0]) - assert.equal( - result[0], - "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" - ) - }) - - it(`should throw an error for improper single input`, async (): Promise => { - try { - const txid: any = 12345 - - await bitbox.Blockchain.verifyTxOutProof(txid) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.include( - err.message, - `Input must be a string or array of strings` - ) - } - }) - - it(`should throw error on array size rate limit`, async (): Promise => { - try { - const data: string[] = [] - for (let i: number = 0; i < 25; i++) data.push(mockTxOutProof) - - const result = await bitbox.Blockchain.verifyTxOutProof(data) - - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - }) + // describe("#getBlock", (): void => { + // let sandbox: any + // beforeEach(() => (sandbox = sinon.sandbox.create())) + // afterEach(() => sandbox.restore()) + // const data = { + // hash: "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09", + // confirmations: 526807, + // size: 216, + // height: 1000, + // version: 1, + // versionHex: "00000001", + // merkleroot: + // "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33", + // tx: ["fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33"], + // time: 1232346882, + // mediantime: 1232344831, + // nonce: 2595206198, + // bits: "1d00ffff", + // difficulty: 1, + // chainwork: + // "000000000000000000000000000000000000000000000000000003e903e903e9", + // previousblockhash: + // "0000000008e647742775a230787d66fdf92c46a48c896bfbc85cdc8acc67e87d", + // nextblockhash: + // "00000000a2887344f8db859e372e7e4bc26b23b9de340f725afbf2edb265b4c6" + // } + + // it("should get block by hash", done => { + // const resolved = new Promise(r => r({ data: data })) + // sandbox.stub(axios, "get").returns(resolved) + + // bitbox.Blockchain.getBlock( + // "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09" + // ) + // .then((result: any) => { + // assert.deepEqual(data, result) + // }) + // .then(done, done) + // }) + // }) + + // describe("#getBlockchainInfo", (): void => { + // let sandbox: any + // beforeEach(() => (sandbox = sinon.sandbox.create())) + // afterEach(() => sandbox.restore()) + // const data = { + // chain: "main", + // blocks: 527810, + // headers: 527810, + // bestblockhash: + // "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0", + // difficulty: 576023394804.6666, + // mediantime: 1524878499, + // verificationprogress: 0.9999990106793685, + // chainwork: + // "00000000000000000000000000000000000000000096da5b040913fa09249b4e", + // pruned: false, + // softforks: [ + // { id: "bip34", version: 2, reject: [Object] }, + // { id: "bip66", version: 3, reject: [Object] }, + // { id: "bip65", version: 4, reject: [Object] } + // ], + // bip9_softforks: { + // csv: { + // status: "active", + // startTime: 1462060800, + // timeout: 1493596800, + // since: 419328 + // } + // } + // } + + // it("should get blockchain info", done => { + // const resolved = new Promise(r => r({ data: data })) + // sandbox.stub(axios, "get").returns(resolved) + + // bitbox.Blockchain.getBlockchainInfo() + // .then((result: any) => { + // assert.deepEqual(data, result) + // }) + // .then(done, done) + // }) + // }) + + // describe("#getBlockCount", (): void => { + // let sandbox: any + // beforeEach(() => (sandbox = sinon.sandbox.create())) + // afterEach(() => sandbox.restore()) + // const data = 527810 + + // it("should get block count", done => { + // const resolved = new Promise(r => r({ data: data })) + // sandbox.stub(axios, "get").returns(resolved) + + // bitbox.Blockchain.getBlockCount() + // .then((result: any) => { + // assert.deepEqual(data, result) + // }) + // .then(done, done) + // }) + // }) + + // describe("#getBlockHash", (): void => { + // let sandbox: any + // beforeEach(() => (sandbox = sinon.sandbox.create())) + // afterEach(() => sandbox.restore()) + // const data: string = + // "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0" + + // it("should get block hash by height", done => { + // const resolved = new Promise(r => r({ data: data })) + // sandbox.stub(axios, "get").returns(resolved) + + // bitbox.Blockchain.getBlockHash(527810) + // .then((result: any) => { + // assert.deepEqual(data, result) + // }) + // .then(done, done) + // }) + // }) + + // describe("#getBlockHeader", (): void => { + // let sandbox: any + // beforeEach(() => (sandbox = sinon.sandbox.create())) + // afterEach(() => sandbox.restore()) + // const data = { + // hash: "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0", + // confirmations: 1, + // height: 527810, + // version: 536870912, + // versionHex: "20000000", + // merkleroot: + // "9298432bbebe4638456aa19cb7ef91639da87668a285d88d0ecd6080424d223b", + // time: 1524881438, + // mediantime: 1524878499, + // nonce: 3326843941, + // bits: "1801e8a5", + // difficulty: 576023394804.6666, + // chainwork: + // "00000000000000000000000000000000000000000096da5b040913fa09249b4e", + // previousblockhash: + // "000000000000000000b33251708bc7a7b4540e61880d8c376e8e2db6a19a4789" + // } + + // it("should get block header by hash", done => { + // const resolved = new Promise(r => r({ data: data })) + // sandbox.stub(axios, "get").returns(resolved) + + // bitbox.Blockchain.getBlockHeader( + // "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0", + // true + // ) + // .then((result: any) => { + // assert.deepEqual(data, result) + // }) + // .then(done, done) + // }) + // }) + + // describe("#getDifficulty", (): void => { + // let sandbox: any + // beforeEach(() => (sandbox = sinon.sandbox.create())) + // afterEach(() => sandbox.restore()) + // const data = "577528469277.1339" + + // it("should get difficulty", done => { + // const resolved = new Promise(r => r({ data: data })) + // sandbox.stub(axios, "get").returns(resolved) + + // bitbox.Blockchain.getDifficulty() + // .then((result: any) => { + // assert.deepEqual(data, result) + // }) + // .then(done, done) + // }) + // }) + + // describe("#getMempoolAncestors", (): void => { + // let sandbox: any + // beforeEach(() => (sandbox = sinon.sandbox.create())) + // afterEach(() => sandbox.restore()) + // const data = "Transaction not in mempool" + + // it("should get mempool ancestors", done => { + // const resolved = new Promise(r => r({ data: data })) + // sandbox.stub(axios, "get").returns(resolved) + + // bitbox.Blockchain.getMempoolAncestors( + // "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", + // true + // ) + // .then((result: any) => { + // assert.deepEqual(data, result) + // }) + // .then(done, done) + // }) + // }) + + // describe("#getMempoolDescendants", (): void => { + // let sandbox: any + // beforeEach(() => (sandbox = sinon.sandbox.create())) + // afterEach(() => sandbox.restore()) + // const data = { + // result: "Transaction not in mempool" + // } + + // it("should get mempool descendants", done => { + // const resolved = new Promise(r => r({ data: data })) + // sandbox.stub(axios, "get").returns(resolved) + + // bitbox.Blockchain.getMempoolDescendants( + // "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", + // true + // ) + // .then((result: any) => { + // assert.deepEqual(data, result) + // }) + // .then(done, done) + // }) + // }) + + // describe("#getMempoolEntry", (): void => { + // let sandbox: any + // beforeEach(() => (sandbox = sinon.sandbox.create())) + // afterEach(() => sandbox.restore()) + // const data = { + // result: "Transaction not in mempool" + // } + + // it("should get mempool entry", done => { + // const resolved = new Promise(r => r({ data: data })) + // sandbox.stub(axios, "get").returns(resolved) + + // bitbox.Blockchain.getMempoolEntry( + // "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88" + // ) + // .then((result: any) => { + // assert.deepEqual(data, result) + // }) + // .then(done, done) + // }) + // }) + + // describe("#getMempoolInfo", (): void => { + // let sandbox: any + // beforeEach(() => (sandbox = sinon.sandbox.create())) + // afterEach(() => sandbox.restore()) + // const data = { + // result: { + // size: 317, + // bytes: 208583, + // usage: 554944, + // maxmempool: 300000000, + // mempoolminfee: 0 + // } + // } + + // it("should get mempool info", done => { + // const resolved = new Promise(r => r({ data: data })) + // sandbox.stub(axios, "get").returns(resolved) + + // bitbox.Blockchain.getMempoolInfo() + // .then((result: any) => { + // assert.deepEqual(data, result) + // }) + // .then(done, done) + // }) + // }) + + // describe("#getRawMempool", (): void => { + // let sandbox: any + // beforeEach(() => (sandbox = sinon.sandbox.create())) + // afterEach(() => sandbox.restore()) + // const data = { + // result: { + // transactions: [ + // { + // txid: + // "ab36d68dd0a618592fe34e4a898e8beeeb4049133547dbb16f9338384084af96", + // size: 191, + // fee: 0.00047703, + // modifiedfee: 0.00047703, + // time: 1524883317, + // height: 527811, + // startingpriority: 5287822727.272727, + // currentpriority: 5287822727.272727, + // descendantcount: 1, + // descendantsize: 191, + // descendantfees: 47703, + // ancestorcount: 1, + // ancestorsize: 191, + // ancestorfees: 47703, + // depends: [] + // } + // ] + // } + // } + + // it("should get mempool info", done => { + // const resolved = new Promise(r => r({ data: data })) + // sandbox.stub(axios, "get").returns(resolved) + + // bitbox.Blockchain.getRawMempool() + // .then((result: any) => { + // assert.deepEqual(data, result) + // }) + // .then(done, done) + // }) + // }) + + // describe("#getTxOut", (): void => { + // // TODO finish this test + // let sandbox: any + // beforeEach(() => (sandbox = sinon.sandbox.create())) + // afterEach(() => sandbox.restore()) + // const data = { + // result: {} + // } + + // it("should get TODO", done => { + // const resolved = new Promise(r => r({ data: data })) + // sandbox.stub(axios, "get").returns(resolved) + + // bitbox.Blockchain.getTxOut( + // "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", + // 0, + // true + // ) + // .then((result: any) => { + // assert.deepEqual(data, result) + // }) + // .then(done, done) + // }) + // }) + + // describe("#preciousBlock", (): void => { + // // TODO finish this test + // let sandbox: any + // beforeEach(() => (sandbox = sinon.sandbox.create())) + // afterEach(() => sandbox.restore()) + // const data = { + // result: {} + // } + + // it("should get TODO", done => { + // const resolved = new Promise(r => r({ data: data })) + // sandbox.stub(axios, "get").returns(resolved) + + // // @ts-ignore + // bitbox.Blockchain.preciousBlock() + // .then((result: any) => { + // assert.deepEqual(data, result) + // }) + // .then(done, done) + // }) + // }) + + // describe("#pruneBlockchain", (): void => { + // let sandbox: any + // beforeEach(() => (sandbox = sinon.sandbox.create())) + // afterEach(() => sandbox.restore()) + // const data = "Cannot prune blocks because node is not in prune mode." + + // it("should prune blockchain", done => { + // const resolved = new Promise(r => r({ data: data })) + // sandbox.stub(axios, "post").returns(resolved) + + // bitbox.Blockchain.pruneBlockchain(507) + // .then((result: any) => { + // assert.deepEqual(data, result) + // }) + // .then(done, done) + // }) + // }) + + // describe("#verifyChain", (): void => { + // let sandbox: any + // beforeEach(() => (sandbox = sinon.sandbox.create())) + // afterEach(() => sandbox.restore()) + // const data = true + + // it("should verify blockchain", done => { + // const resolved = new Promise(r => r({ data: data })) + // sandbox.stub(axios, "get").returns(resolved) + + // bitbox.Blockchain.verifyChain(3, 6) + // .then((result: any) => { + // assert.deepEqual(data, result) + // }) + // .then(done, done) + // }) + // }) + + // describe("#verifyTxOutProof", (): void => { + // let sandbox: any + // beforeEach(() => (sandbox = sinon.sandbox.create())) + // afterEach(() => sandbox.restore()) + // const data = "proof must be hexadecimal string (not '')" + + // it("should verify utxo proof", done => { + // const resolved = new Promise(r => r({ data: data })) + // sandbox.stub(axios, "get").returns(resolved) + + // bitbox.Blockchain.verifyTxOutProof("3") + // .then((result: any) => { + // assert.deepEqual(data, result) + // }) + // .then(done, done) + // }) + // }) + + // describe(`#getBestBlockHash`, (): void => { + // it(`should GET best block hash`, async () => { + // const result: string = await bitbox.Blockchain.getBestBlockHash() + + // assert.isString(result) + // assert.equal(result.length, 64, "Specific hash length") + // }) + // }) + + // describe("#getBlockHeader", (): void => { + // it(`should GET block header for a single hash`, async () => { + // const hash: string = + // "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + + // const result: BlockHeaderResult | BlockHeaderResult[] = await bitbox.Blockchain.getBlockHeader(hash) + + // assert.hasAllKeys(result, [ + // "hash", + // "confirmations", + // "height", + // "version", + // "versionHex", + // "merkleroot", + // "time", + // "mediantime", + // "nonce", + // "bits", + // "difficulty", + // "chainwork", + // "previousblockhash", + // "nextblockhash" + // ]) + // }) + + // it(`should GET block headers for an array of hashes`, async () => { + // const hash: string[] = [ + // "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", + // "00000000000000000568f0a96bf4348847bc84e455cbfec389f27311037a20f3" + // ] + + // const result: BlockHeaderResult | BlockHeaderResult[] = await bitbox.Blockchain.getBlockHeader(hash) + + // assert.isArray(result) + // if (Array.isArray(result)) { + // assert.hasAllKeys(result[0], [ + // "hash", + // "confirmations", + // "height", + // "version", + // "versionHex", + // "merkleroot", + // "time", + // "mediantime", + // "nonce", + // "bits", + // "difficulty", + // "chainwork", + // "previousblockhash", + // "nextblockhash" + // ]) + + // } + // }) + + // it(`should throw an error for improper input`, async () => { + // try { + // const hash: any = 12345 + + // await bitbox.Blockchain.getBlockHeader(hash) + // assert.equal(true, false, "Unexpected result!") + // } catch (err) { + // assert.include( + // err.message, + // `Input hash must be a string or array of strings` + // ) + // } + // }) + + // it(`should throw error on array size rate limit`, async () => { + // try { + // const data: string[] = [] + // for (let i: number = 0; i < 25; i++) { + // data.push( + // "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + // ) + // } + + // const result: BlockHeaderResult | BlockHeaderResult[] = await bitbox.Blockchain.getBlockHeader(data) + // assert.equal(true, false, "Unexpected result!") + // } catch (err) { + // assert.hasAnyKeys(err, ["error"]) + // assert.include(err.error, "Array too large") + // } + // }) + // }) + + // describe("#getMempoolEntry", (): void => { + // /* + // // To run this test, the txid must be unconfirmed. + // const txid = + // "defea04c38ee00cf73ad402984714ed22dc0dd99b2ae5cb50d791d94343ba79b" + + // it(`should GET single mempool entry`, async () => { + // const result = await bitbox.Blockchain.getMempoolEntry(txid) + // //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + // assert.hasAnyKeys(result, [ + // "size", + // "fee", + // "modifiedfee", + // "time", + // "height", + // "startingpriority", + // "currentpriority", + // "descendantcount", + // "descendantsize", + // "descendantfees", + // "ancestorcount", + // "ancestorsize", + // "ancestorfees", + // "depends" + // ]) + // }) + + // it(`should get an array of mempool entries`, async () => { + // const result = await bitbox.Blockchain.getMempoolEntry([txid, txid]) + // console.log(`result: ${JSON.stringify(result, null, 2)}`) + + // assert.isArray(result) + // assert.hasAnyKeys(result[0], [ + // "size", + // "fee", + // "modifiedfee", + // "time", + // "height", + // "startingpriority", + // "currentpriority", + // "descendantcount", + // "descendantsize", + // "descendantfees", + // "ancestorcount", + // "ancestorsize", + // "ancestorfees", + // "depends" + // ]) + // }) + // */ + + // it(`should throw an error if txid is not in mempool`, async (): Promise => { + // try { + // const txid: string = + // "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + + // await bitbox.Blockchain.getMempoolEntry(txid) + + // assert.equal(true, false, "Unexpected result!") + // } catch (err) { + // //console.log(`err: ${util.inspect(err)}`) + // assert.hasAnyKeys(err, ["error"]) + // assert.include(err.error, `Transaction not in mempool`) + // } + // }) + + // it(`should throw an error for improper single input`, async (): Promise => { + // try { + // const txid: any = 12345 + + // await bitbox.Blockchain.getMempoolEntry(txid) + // assert.equal(true, false, "Unexpected result!") + // } catch (err) { + // assert.include( + // err.message, + // `Input must be a string or array of strings` + // ) + // } + // }) + // }) + + // describe(`#getTxOutProof`, (): void => { + // it(`should get single tx out proof`, async (): Promise => { + // const txid: string = + // "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + + // const result = await bitbox.Blockchain.getTxOutProof(txid) + + // assert.isString(result) + // }) + + // it(`should get an array of tx out proofs`, async (): Promise => { + // const txid: string[] = [ + // "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7", + // "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" + // ] + + // const result = await bitbox.Blockchain.getTxOutProof(txid) + + // assert.isArray(result) + // assert.isString(result[0]) + // }) + + // it(`should throw an error for improper single input`, async (): Promise => { + // try { + // const txid: any = 12345 + + // await bitbox.Blockchain.getTxOutProof(txid) + // assert.equal(true, false, "Unexpected result!") + // } catch (err) { + // assert.include( + // err.message, + // `Input must be a string or array of strings` + // ) + // } + // }) + // }) + + // describe(`#verifyTxOutProof`, (): void => { + // const mockTxOutProof: string = + // "0000002086a4a3161f9ba2174883ec0b93acceac3b2f37b36ed1f90000000000000000009cb02406d1094ecf3e0b4c0ca7c585125e721147c39daf6b48c90b512741e13a12333e5cb38705180f441d8c7100000008fee9b60f1edb57e5712839186277ed39e0a004a32be9096ee47472efde8eae62f789f9d7a9f59d0ea7093dea1e0c65ff0b953f1d8cf3d47f92e732ca0295f603c272d5f4a63509f7a887f2549d78af7444aa0ecbb4f66d9cbe13bc6a89f59e05a199df8325d490818ffefe6b6321d32d7496a68580459836c0183f89082fc1b491cc91b23ecdcaa4c347bf599a62904d61f1c15b400ebbd5c90149010c139d9c1e31b774b796977393a238080ab477e1d240d0c4f155d36f519668f49bae6bd8cd5b8e40522edf76faa09cca6188d83ff13af6967cc6a569d1a5e9aeb1fdb7f531ddd2d0cbb81879741d5f38166ac1932136264366a4065cc96a42e41f96294f02df01" + + // it(`should verify a single proof`, async (): Promise => { + // const result = await bitbox.Blockchain.verifyTxOutProof(mockTxOutProof) + + // assert.isArray(result) + // assert.isString(result[0]) + // assert.equal( + // result[0], + // "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + // ) + // }) + + // it(`should verify an array of proofs`, async (): Promise => { + // const proofs: string[] = [mockTxOutProof, mockTxOutProof] + // const result = await bitbox.Blockchain.verifyTxOutProof(proofs) + + // assert.isArray(result) + // assert.isString(result[0]) + // assert.equal( + // result[0], + // "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + // ) + // }) + + // it(`should throw an error for improper single input`, async (): Promise => { + // try { + // const txid: any = 12345 + + // await bitbox.Blockchain.verifyTxOutProof(txid) + // assert.equal(true, false, "Unexpected result!") + // } catch (err) { + // assert.include( + // err.message, + // `Input must be a string or array of strings` + // ) + // } + // }) + + // it(`should throw error on array size rate limit`, async (): Promise => { + // try { + // const data: string[] = [] + // for (let i: number = 0; i < 25; i++) data.push(mockTxOutProof) + + // const result = await bitbox.Blockchain.verifyTxOutProof(data) + + // console.log(`result: ${util.inspect(result)}`) + // assert.equal(true, false, "Unexpected result!") + // } catch (err) { + // assert.hasAnyKeys(err, ["error"]) + // assert.include(err.error, "Array too large") + // } + // }) + // }) }) diff --git a/test/unit/Control.ts b/test/unit/Control.ts index 558a7205..4489f6d8 100644 --- a/test/unit/Control.ts +++ b/test/unit/Control.ts @@ -22,35 +22,35 @@ describe("#Control", (): void => { }) }) - describe("#getInfo", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) + // describe("#getInfo", (): void => { + // let sandbox: any + // beforeEach(() => (sandbox = sinon.sandbox.create())) + // afterEach(() => sandbox.restore()) - it("should get info", done => { - const data = { - version: 170000, - protocolversion: 70015, - blocks: 527813, - timeoffset: 0, - connections: 21, - proxy: "", - difficulty: 581086703759.5878, - testnet: false, - paytxfee: 0, - relayfee: 0.00001, - errors: "" - } - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) + // it("should get info", done => { + // const data = { + // version: 170000, + // protocolversion: 70015, + // blocks: 527813, + // timeoffset: 0, + // connections: 21, + // proxy: "", + // difficulty: 581086703759.5878, + // testnet: false, + // paytxfee: 0, + // relayfee: 0.00001, + // errors: "" + // } + // const resolved = new Promise(r => r({ data: data })) + // sandbox.stub(axios, "get").returns(resolved) - bitbox.Control.getInfo() - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) + // bitbox.Control.getInfo() + // .then((result: any) => { + // assert.deepEqual(data, result) + // }) + // .then(done, done) + // }) + // }) // describe("#getMemoryInfo", () => { // let sandbox: any diff --git a/test/unit/Price.ts b/test/unit/Price.ts index 0b2054cb..4a52b282 100644 --- a/test/unit/Price.ts +++ b/test/unit/Price.ts @@ -14,12 +14,12 @@ describe("#Price", (): void => { }) }) - describe("#current", (): void => { - describe("#single currency", (): void => { - it("should get current price for single currency", async () => { - const result = await bitbox.Price.current("usd") - assert.notEqual(0, result) - }) - }) - }) + // describe("#current", (): void => { + // describe("#single currency", (): void => { + // it("should get current price for single currency", async () => { + // const result = await bitbox.Price.current("usd") + // assert.notEqual(0, result) + // }) + // }) + // }) }) diff --git a/test/unit/RawTransactions.ts b/test/unit/RawTransactions.ts index f0ca1221..64f35358 100644 --- a/test/unit/RawTransactions.ts +++ b/test/unit/RawTransactions.ts @@ -26,301 +26,301 @@ describe("#RawTransactions", (): void => { }) }) - describe("#decodeRawTransaction", (): void => { - it("should decode tx for a single hex", async (): Promise => { - const hex: string = - "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" - - const result: DecodeRawTransactionResult | DecodeRawTransactionResult[] = await bitbox.RawTransactions.decodeRawTransaction(hex) - - assert.hasAnyKeys(result, [ - "txid", - "hash", - "size", - "version", - "locktime", - "vin", - "vout" - ]) - if (!Array.isArray(result)) { - assert.isArray(result.vin) - assert.isArray(result.vout) - } - }) - - it("should decode an array of tx hexes", async (): Promise => { - const hexes: string[] = [ - "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000", - "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" - ] - - const result: DecodeRawTransactionResult | DecodeRawTransactionResult[] = await bitbox.RawTransactions.decodeRawTransaction(hexes) - - assert.isArray(result) - if (Array.isArray(result)) { - assert.hasAnyKeys(result[0], [ - "txid", - "hash", - "size", - "version", - "locktime", - "vin", - "vout" - ]) - assert.isArray(result[0].vin) - assert.isArray(result[0].vout) - } - }) - - it(`should throw an error for improper single input`, async (): Promise => { - try { - const addr: any = 12345 - - await bitbox.RawTransactions.decodeRawTransaction(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.include( - err.message, - `Input must be a string or array of strings.` - ) - } - }) - - it(`should throw error on array size rate limit`, async (): Promise => { - try { - const data: string[] = [] - for (let i: number = 0; i < 25; i++) { - data.push( - "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" - ) - } - - const result: DecodeRawTransactionResult | DecodeRawTransactionResult[] = await bitbox.RawTransactions.decodeRawTransaction(data) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - }) - - describe("#getRawTransaction", (): void => { - it("should decode a single txid, with concise output", async (): Promise => { - const txid: string = - "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" - const verbose: boolean = false - - const result: VerboseRawTransactionResult | VerboseRawTransactionResult[] = await bitbox.RawTransactions.getRawTransaction( - txid, - verbose - ) - - assert.isString(result) - }) - - it("should decode a single txid, with verbose output", async (): Promise => { - const txid: string = - "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" - const verbose: boolean = true - - const result: VerboseRawTransactionResult | VerboseRawTransactionResult[] = await bitbox.RawTransactions.getRawTransaction( - txid, - verbose - ) - - assert.hasAnyKeys(result, [ - "hex", - "txid", - "hash", - "size", - "version", - "locktime", - "vin", - "vout", - "blockhash", - "confirmations", - "time", - "blocktime" - ]) - if (!Array.isArray(result)) { - assert.isArray(result.vin) - assert.isArray(result.vout) - - } - }) - - it("should decode an array of txids, with a concise output", async (): Promise => { - const txid: string[] = [ - "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", - "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" - ] - const verbose: boolean = false - - const result: VerboseRawTransactionResult | VerboseRawTransactionResult[] = await bitbox.RawTransactions.getRawTransaction( - txid, - verbose - ) - - assert.isArray(result) - if (Array.isArray(result)) { - assert.isString(result[0]) - } - }) - - it("should decode an array of txids, with a verbose output", async (): Promise => { - const txid: string[] = [ - "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", - "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" - ] - const verbose: boolean = true - - const result: VerboseRawTransactionResult | VerboseRawTransactionResult[] = await bitbox.RawTransactions.getRawTransaction( - txid, - verbose - ) - - assert.isArray(result) - if (Array.isArray(result)) { - assert.hasAnyKeys(result[0], [ - "hex", - "txid", - "hash", - "size", - "version", - "locktime", - "vin", - "vout", - "blockhash", - "confirmations", - "time", - "blocktime" - ]) - assert.isArray(result[0].vin) - assert.isArray(result[0].vout) - } - }) - - it(`should throw error on array size rate limit`, async (): Promise => { - try { - const dataMock: string = - "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" - const data: string[] = [] - for (let i: number = 0; i < 25; i++) data.push(dataMock) - - const result: VerboseRawTransactionResult | VerboseRawTransactionResult[] = await bitbox.RawTransactions.getRawTransaction(data) - - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - }) - - describe("#decodeScript", () => { - it("should decode script for a single hex", async (): Promise => { - const hex: string = - "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" - - const result = await bitbox.RawTransactions.decodeScript(hex) - - assert.hasAllKeys(result, ["asm", "type", "p2sh"]) - }) - - // CT 2/20/19 - Waiting for this PR to be merged complete the test: - // https://github.com/Bitcoin-com/rest.bitcoin.com/pull/312 - /* - it("should decode an array of tx hexes", async () => { - const hexes = [ - "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16", - "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" - ] - - const result = await bitbox.RawTransactions.decodeScript(hexes) - console.log(`result ${JSON.stringify(result, null, 2)}`) - }) -*/ - /* - it(`should throw an error for improper single input`, async () => { - try { - const addr = 12345 - - await bitbox.RawTransactions.decodeRawTransaction(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input must be a string or array of strings.` - ) - } - }) -*/ - }) - - /* - Testing sentRawTransaction isn't really possible with an integration test, - as the endpoint really needs an e2e test to be properly tested. The tests - below expect error messages returned from the server, but at least test - that the server is responding on those endpoints, and responds consistently. - */ - describe("sendRawTransaction", () => { - it("should send a single transaction hex", async (): Promise => { - try { - const hex: string = - "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" - - await bitbox.RawTransactions.sendRawTransaction(hex) - - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAllKeys(err, ["error"]) - assert.include(err.error, "Missing inputs") - } - }) - - it("should send an array of tx hexes", async (): Promise => { - try { - const hexes: string[] = [ - "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000", - "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" - ] - - const result = await bitbox.RawTransactions.sendRawTransaction(hexes) - } catch (err) { - assert.hasAllKeys(err, ["error"]) - assert.include(err.error, "Missing inputs") - } - }) - - it(`should throw an error for improper single input`, async (): Promise => { - try { - const addr: any = 12345 - - await bitbox.RawTransactions.sendRawTransaction(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.include( - err.message, - `Input hex must be a string or array of strings` - ) - } - }) - - it(`should throw error on array size rate limit`, async (): Promise => { - try { - const dataMock: string = - "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" - const data: string[] = [] - for (let i: number = 0; i < 25; i++) data.push(dataMock) - - await bitbox.RawTransactions.sendRawTransaction(data) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - }) + // describe("#decodeRawTransaction", (): void => { + // it("should decode tx for a single hex", async (): Promise => { + // const hex: string = + // "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" + + // const result: DecodeRawTransactionResult | DecodeRawTransactionResult[] = await bitbox.RawTransactions.decodeRawTransaction(hex) + + // assert.hasAnyKeys(result, [ + // "txid", + // "hash", + // "size", + // "version", + // "locktime", + // "vin", + // "vout" + // ]) + // if (!Array.isArray(result)) { + // assert.isArray(result.vin) + // assert.isArray(result.vout) + // } + // }) + + // it("should decode an array of tx hexes", async (): Promise => { + // const hexes: string[] = [ + // "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000", + // "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" + // ] + + // const result: DecodeRawTransactionResult | DecodeRawTransactionResult[] = await bitbox.RawTransactions.decodeRawTransaction(hexes) + + // assert.isArray(result) + // if (Array.isArray(result)) { + // assert.hasAnyKeys(result[0], [ + // "txid", + // "hash", + // "size", + // "version", + // "locktime", + // "vin", + // "vout" + // ]) + // assert.isArray(result[0].vin) + // assert.isArray(result[0].vout) + // } + // }) + + // it(`should throw an error for improper single input`, async (): Promise => { + // try { + // const addr: any = 12345 + + // await bitbox.RawTransactions.decodeRawTransaction(addr) + // assert.equal(true, false, "Unexpected result!") + // } catch (err) { + // assert.include( + // err.message, + // `Input must be a string or array of strings.` + // ) + // } + // }) + + // it(`should throw error on array size rate limit`, async (): Promise => { + // try { + // const data: string[] = [] + // for (let i: number = 0; i < 25; i++) { + // data.push( + // "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" + // ) + // } + + // const result: DecodeRawTransactionResult | DecodeRawTransactionResult[] = await bitbox.RawTransactions.decodeRawTransaction(data) + // assert.equal(true, false, "Unexpected result!") + // } catch (err) { + // assert.hasAnyKeys(err, ["error"]) + // assert.include(err.error, "Array too large") + // } + // }) + // }) + + // describe("#getRawTransaction", (): void => { + // it("should decode a single txid, with concise output", async (): Promise => { + // const txid: string = + // "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" + // const verbose: boolean = false + + // const result: VerboseRawTransactionResult | VerboseRawTransactionResult[] = await bitbox.RawTransactions.getRawTransaction( + // txid, + // verbose + // ) + + // assert.isString(result) + // }) + + // it("should decode a single txid, with verbose output", async (): Promise => { + // const txid: string = + // "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" + // const verbose: boolean = true + + // const result: VerboseRawTransactionResult | VerboseRawTransactionResult[] = await bitbox.RawTransactions.getRawTransaction( + // txid, + // verbose + // ) + + // assert.hasAnyKeys(result, [ + // "hex", + // "txid", + // "hash", + // "size", + // "version", + // "locktime", + // "vin", + // "vout", + // "blockhash", + // "confirmations", + // "time", + // "blocktime" + // ]) + // if (!Array.isArray(result)) { + // assert.isArray(result.vin) + // assert.isArray(result.vout) + + // } + // }) + + // it("should decode an array of txids, with a concise output", async (): Promise => { + // const txid: string[] = [ + // "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", + // "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" + // ] + // const verbose: boolean = false + + // const result: VerboseRawTransactionResult | VerboseRawTransactionResult[] = await bitbox.RawTransactions.getRawTransaction( + // txid, + // verbose + // ) + + // assert.isArray(result) + // if (Array.isArray(result)) { + // assert.isString(result[0]) + // } + // }) + + // it("should decode an array of txids, with a verbose output", async (): Promise => { + // const txid: string[] = [ + // "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", + // "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" + // ] + // const verbose: boolean = true + + // const result: VerboseRawTransactionResult | VerboseRawTransactionResult[] = await bitbox.RawTransactions.getRawTransaction( + // txid, + // verbose + // ) + + // assert.isArray(result) + // if (Array.isArray(result)) { + // assert.hasAnyKeys(result[0], [ + // "hex", + // "txid", + // "hash", + // "size", + // "version", + // "locktime", + // "vin", + // "vout", + // "blockhash", + // "confirmations", + // "time", + // "blocktime" + // ]) + // assert.isArray(result[0].vin) + // assert.isArray(result[0].vout) + // } + // }) + + // it(`should throw error on array size rate limit`, async (): Promise => { + // try { + // const dataMock: string = + // "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" + // const data: string[] = [] + // for (let i: number = 0; i < 25; i++) data.push(dataMock) + + // const result: VerboseRawTransactionResult | VerboseRawTransactionResult[] = await bitbox.RawTransactions.getRawTransaction(data) + + // console.log(`result: ${util.inspect(result)}`) + // assert.equal(true, false, "Unexpected result!") + // } catch (err) { + // assert.hasAnyKeys(err, ["error"]) + // assert.include(err.error, "Array too large") + // } + // }) + // }) + + // describe("#decodeScript", () => { + // it("should decode script for a single hex", async (): Promise => { + // const hex: string = + // "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" + + // const result = await bitbox.RawTransactions.decodeScript(hex) + + // assert.hasAllKeys(result, ["asm", "type", "p2sh"]) + // }) + + // // CT 2/20/19 - Waiting for this PR to be merged complete the test: + // // https://github.com/Bitcoin-com/rest.bitcoin.com/pull/312 + // /* + // it("should decode an array of tx hexes", async () => { + // const hexes = [ + // "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16", + // "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" + // ] + + // const result = await bitbox.RawTransactions.decodeScript(hexes) + // console.log(`result ${JSON.stringify(result, null, 2)}`) + // }) + // */ + // /* + // it(`should throw an error for improper single input`, async () => { + // try { + // const addr = 12345 + + // await bitbox.RawTransactions.decodeRawTransaction(addr) + // assert.equal(true, false, "Unexpected result!") + // } catch (err) { + // //console.log(`err: `, err) + // assert.include( + // err.message, + // `Input must be a string or array of strings.` + // ) + // } + // }) + // */ + // }) + + // /* + // Testing sentRawTransaction isn't really possible with an integration test, + // as the endpoint really needs an e2e test to be properly tested. The tests + // below expect error messages returned from the server, but at least test + // that the server is responding on those endpoints, and responds consistently. + // */ + // describe("sendRawTransaction", () => { + // it("should send a single transaction hex", async (): Promise => { + // try { + // const hex: string = + // "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" + + // await bitbox.RawTransactions.sendRawTransaction(hex) + + // assert.equal(true, false, "Unexpected result!") + // } catch (err) { + // assert.hasAllKeys(err, ["error"]) + // assert.include(err.error, "Missing inputs") + // } + // }) + + // it("should send an array of tx hexes", async (): Promise => { + // try { + // const hexes: string[] = [ + // "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000", + // "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" + // ] + + // const result = await bitbox.RawTransactions.sendRawTransaction(hexes) + // } catch (err) { + // assert.hasAllKeys(err, ["error"]) + // assert.include(err.error, "Missing inputs") + // } + // }) + + // it(`should throw an error for improper single input`, async (): Promise => { + // try { + // const addr: any = 12345 + + // await bitbox.RawTransactions.sendRawTransaction(addr) + // assert.equal(true, false, "Unexpected result!") + // } catch (err) { + // assert.include( + // err.message, + // `Input hex must be a string or array of strings` + // ) + // } + // }) + + // it(`should throw error on array size rate limit`, async (): Promise => { + // try { + // const dataMock: string = + // "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" + // const data: string[] = [] + // for (let i: number = 0; i < 25; i++) data.push(dataMock) + + // await bitbox.RawTransactions.sendRawTransaction(data) + // assert.equal(true, false, "Unexpected result!") + // } catch (err) { + // assert.hasAnyKeys(err, ["error"]) + // assert.include(err.error, "Array too large") + // } + // }) + // }) }) diff --git a/test/unit/Transaction.ts b/test/unit/Transaction.ts index a1068d37..bc6cb641 100644 --- a/test/unit/Transaction.ts +++ b/test/unit/Transaction.ts @@ -22,62 +22,62 @@ describe("#Transaction", (): void => { }) }) - describe(`#details`, (): void => { - it(`should GET details for a given txid`, async () => { - const txid: string = - "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" - const result: TxnDetailsResult | TxnDetailsResult[] = await bitbox.Transaction.details(txid) - assert.hasAllKeys(result, [ - "txid", - "version", - "locktime", - "vin", - "vout", - "blockhash", - "blockheight", - "confirmations", - "time", - "blocktime", - "isCoinBase", - "valueOut", - "size" - ]) - }) + // describe(`#details`, (): void => { + // it(`should GET details for a given txid`, async () => { + // const txid: string = + // "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" + // const result: TxnDetailsResult | TxnDetailsResult[] = await bitbox.Transaction.details(txid) + // assert.hasAllKeys(result, [ + // "txid", + // "version", + // "locktime", + // "vin", + // "vout", + // "blockhash", + // "blockheight", + // "confirmations", + // "time", + // "blocktime", + // "isCoinBase", + // "valueOut", + // "size" + // ]) + // }) - it(`should GET details for an array of txids`, async () => { - const txids: string[] = [ - "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33", - "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" - ] - const result: TxnDetailsResult | TxnDetailsResult[] = await bitbox.Transaction.details(txids) - assert.isArray(result) - }) + // it(`should GET details for an array of txids`, async () => { + // const txids: string[] = [ + // "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33", + // "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" + // ] + // const result: TxnDetailsResult | TxnDetailsResult[] = await bitbox.Transaction.details(txids) + // assert.isArray(result) + // }) - it(`should throw an error for improper single input`, async () => { - try { - const txid: any = 12345 - await bitbox.Transaction.details(txid) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.include( - err.message, - `Input txid must be a string or array of strings` - ) - } - }) + // it(`should throw an error for improper single input`, async () => { + // try { + // const txid: any = 12345 + // await bitbox.Transaction.details(txid) + // assert.equal(true, false, "Unexpected result!") + // } catch (err) { + // assert.include( + // err.message, + // `Input txid must be a string or array of strings` + // ) + // } + // }) - it(`should throw error on array size rate limit`, async () => { - try { - const dataMock: string = - "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" - const data: string[] = [] - for (let i: number = 0; i < 25; i++) data.push(dataMock) - await bitbox.Transaction.details(data) - assert.equal(false, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - }) + // it(`should throw error on array size rate limit`, async () => { + // try { + // const dataMock: string = + // "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" + // const data: string[] = [] + // for (let i: number = 0; i < 25; i++) data.push(dataMock) + // await bitbox.Transaction.details(data) + // assert.equal(false, false, "Unexpected result!") + // } catch (err) { + // assert.hasAnyKeys(err, ["error"]) + // assert.include(err.error, "Array too large") + // } + // }) + // }) }) diff --git a/test/unit/Util.ts b/test/unit/Util.ts index fd2756a0..86a56698 100644 --- a/test/unit/Util.ts +++ b/test/unit/Util.ts @@ -29,92 +29,92 @@ describe("#Util", (): void => { }) }) - describe(`#validateAddress`, (): void => { - it(`should return false for testnet addr on mainnet`, async () => { - const address: string = `bchtest:qqqk4y6lsl5da64sg5qc3xezmplyu5kmpyz2ysaa5y` - - const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) - - assert.hasAllKeys(result, ["isvalid"]) - if (!Array.isArray(result)) { - assert.equal(result.isvalid, false) - } - }) - - it(`should return false for bad address`, async () => { - const address: string = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peu` - const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) - - assert.hasAllKeys(result, ["isvalid"]) - if (!Array.isArray(result)) { - assert.equal(result.isvalid, false) - } - }) - - it(`should validate valid address`, async () => { - const address: string = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` - const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) - - assert.hasAllKeys(result, [ - "isvalid", - "address", - "scriptPubKey", - "ismine", - "iswatchonly", - "isscript" - ]) - if (!Array.isArray(result)) { - assert.equal(result.isvalid, true) - } - }) - - it(`should validate an array of addresses`, async () => { - const address: string[] = [ - `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z`, - `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` - ] - - const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) - - assert.isArray(result) - if (Array.isArray(result)) { - assert.hasAllKeys(result[0], [ - "isvalid", - "address", - "scriptPubKey", - "ismine", - "iswatchonly", - "isscript" - ]) - } - }) - - it(`should throw an error for improper single input`, async () => { - try { - const address: any = 15432 - - await bitbox.Util.validateAddress(address) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.include( - err.message, - `Input must be a string or array of strings.` - ) - } - }) - - it(`should throw error on array size rate limit`, async () => { - try { - const dataMock: string = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` - const data: string[] = [] - for (let i: number = 0; i < 25; i++) data.push(dataMock) - - const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(data) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - }) + // describe(`#validateAddress`, (): void => { + // it(`should return false for testnet addr on mainnet`, async () => { + // const address: string = `bchtest:qqqk4y6lsl5da64sg5qc3xezmplyu5kmpyz2ysaa5y` + + // const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) + + // assert.hasAllKeys(result, ["isvalid"]) + // if (!Array.isArray(result)) { + // assert.equal(result.isvalid, false) + // } + // }) + + // it(`should return false for bad address`, async () => { + // const address: string = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peu` + // const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) + + // assert.hasAllKeys(result, ["isvalid"]) + // if (!Array.isArray(result)) { + // assert.equal(result.isvalid, false) + // } + // }) + + // it(`should validate valid address`, async () => { + // const address: string = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` + // const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) + + // assert.hasAllKeys(result, [ + // "isvalid", + // "address", + // "scriptPubKey", + // "ismine", + // "iswatchonly", + // "isscript" + // ]) + // if (!Array.isArray(result)) { + // assert.equal(result.isvalid, true) + // } + // }) + + // it(`should validate an array of addresses`, async () => { + // const address: string[] = [ + // `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z`, + // `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` + // ] + + // const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) + + // assert.isArray(result) + // if (Array.isArray(result)) { + // assert.hasAllKeys(result[0], [ + // "isvalid", + // "address", + // "scriptPubKey", + // "ismine", + // "iswatchonly", + // "isscript" + // ]) + // } + // }) + + // it(`should throw an error for improper single input`, async () => { + // try { + // const address: any = 15432 + + // await bitbox.Util.validateAddress(address) + // assert.equal(true, false, "Unexpected result!") + // } catch (err) { + // assert.include( + // err.message, + // `Input must be a string or array of strings.` + // ) + // } + // }) + + // it(`should throw error on array size rate limit`, async () => { + // try { + // const dataMock: string = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` + // const data: string[] = [] + // for (let i: number = 0; i < 25; i++) data.push(dataMock) + + // const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(data) + // assert.equal(true, false, "Unexpected result!") + // } catch (err) { + // assert.hasAnyKeys(err, ["error"]) + // assert.include(err.error, "Array too large") + // } + // }) + // }) }) From 500b96feea34ce7cee81f2c19afcc32dbd819584 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Mon, 13 May 2019 19:22:07 +0900 Subject: [PATCH 373/480] Passing tests --- package.json | 4 +- test/unit/Address.ts | 628 ++++++++-------- test/unit/Block.ts | 526 ++++++------- test/unit/Blockchain.ts | 1364 +++++++++++++++++----------------- test/unit/Control.ts | 54 +- test/unit/Price.ts | 16 +- test/unit/RawTransactions.ts | 594 +++++++-------- test/unit/Script.ts | 898 +++++++++++----------- test/unit/Transaction.ts | 110 +-- test/unit/Util.ts | 176 ++--- 10 files changed, 2185 insertions(+), 2185 deletions(-) diff --git a/package.json b/package.json index e476cc03..f234bfe4 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "Chris Troutner " ], "scripts": { - "test": "tsc && nyc mocha test/unit --timeout 30000", + "test": "tsc && nyc mocha test/unit --timeout 60000 --exit", "test:integration": "TEST=integration nyc --reporter=text mocha --require babel-core/register --timeout 30000 test/integration", "coverage": "nyc report --reporter=text-lcov | coveralls", "build": "tsc" @@ -105,4 +105,4 @@ "ts-node": "^8.1.0", "typescript": "^3.4.5" } -} +} \ No newline at end of file diff --git a/test/unit/Address.ts b/test/unit/Address.ts index 12440740..b0b1b235 100644 --- a/test/unit/Address.ts +++ b/test/unit/Address.ts @@ -1140,330 +1140,330 @@ describe("#Address", (): void => { // }) // }) - // describe(`#utxo`, (): void => { - // describe(`#details`, (): void => { - // it(`should GET address details for a single address`, async (): Promise => { - // const addr: string = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - - // const result: AddressDetailsResult | AddressDetailsResult[] = await bitbox.Address.details(addr) - - // assert.hasAllKeys(result, [ - // "balance", - // "balanceSat", - // "totalReceived", - // "totalReceivedSat", - // "totalSent", - // "totalSentSat", - // "unconfirmedBalance", - // "unconfirmedBalanceSat", - // "unconfirmedTxApperances", - // "txApperances", - // "transactions", - // "legacyAddress", - // "cashAddress", - // "currentPage", - // "pagesTotal" - // ]) - // if (!Array.isArray(result)) { - // assert.isArray(result.transactions) - // } - // }) - - // it(`should GET address details for an array of addresses`, async () => { - // const addr: string[] = [ - // "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", - // "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" - // ] - - // const result: AddressDetailsResult | AddressDetailsResult[] = await bitbox.Address.details(addr) - - // assert.isArray(result) - // if (Array.isArray(result)) { - // assert.hasAllKeys(result[0], [ - // "balance", - // "balanceSat", - // "totalReceived", - // "totalReceivedSat", - // "totalSent", - // "totalSentSat", - // "unconfirmedBalance", - // "unconfirmedBalanceSat", - // "unconfirmedTxApperances", - // "txApperances", - // "transactions", - // "legacyAddress", - // "cashAddress", - // "currentPage", - // "pagesTotal" - // ]) - // assert.isArray(result[0].transactions) - // } - // }) - - // it(`should throw an error for improper input`, async () => { - // try { - // const addr: any = 12345 - - // await bitbox.Address.details(addr) - // assert.equal(true, false, "Unexpected result!") - // } catch (err) { - // //console.log(`err: `, err) - // assert.include( - // err.message, - // `Input address must be a string or array of strings` - // ) - // } - // }) - - // it(`should throw error on array size rate limit`, async () => { - // try { - // const addr = [] - // for (let i = 0; i < 25; i++) - // addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - - // const result = await bitbox.Address.details(addr) - - // console.log(`result: ${util.inspect(result)}`) - // assert.equal(true, false, "Unexpected result!") - // } catch (err) { - // assert.hasAnyKeys(err, ["error"]) - // assert.include(err.error, "Array too large") - // } - // }) - // it(`should GET utxos for a single address`, async () => { - // const addr: string = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - - // const result: AddressUtxoResult | AddressUtxoResult[] = await bitbox.Address.utxo(addr) - - // assert.hasAllKeys(result, [ - // "utxos", - // "legacyAddress", - // "cashAddress", - // "scriptPubKey" - // ]) - // if (!Array.isArray(result)) { - // assert.isArray(result.utxos) - // assert.hasAnyKeys(result.utxos[0], [ - // "txid", - // "vout", - // "amount", - // "satoshis", - // "height", - // "confirmations" - // ]) - // } - // }) - - // it(`should GET utxo details for an array of addresses`, async () => { - // const addr: string[] = [ - // "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", - // "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" - // ] - - // const result: AddressUtxoResult | AddressUtxoResult[] = await bitbox.Address.utxo(addr) - - // assert.isArray(result) - // if (Array.isArray(result)) { - // assert.hasAllKeys(result[0], [ - // "utxos", - // "legacyAddress", - // "cashAddress", - // "scriptPubKey" - // ]) - // assert.isArray(result[0].utxos) - // assert.hasAnyKeys(result[0].utxos[0], [ - // "txid", - // "vout", - // "amount", - // "satoshis", - // "height", - // "confirmations" - // ]) - // } - // }) - - // it(`should throw an error for improper input`, async () => { - // try { - // const addr: any = 12345 - - // await bitbox.Address.utxo(addr) - // assert.equal(true, false, "Unexpected result!") - // } catch (err) { - // //console.log(`err: `, err) - // assert.include( - // err.message, - // `Input address must be a string or array of strings` - // ) - // } - // }) - - // it(`should throw error on array size rate limit`, async (): Promise => { - // try { - // const addr: string[] = [] - // for (let i: number = 0; i < 25; i++) - // addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - - // const result: AddressUtxoResult | AddressUtxoResult[] = await bitbox.Address.utxo(addr) - - // console.log(`result: ${util.inspect(result)}`) - // assert.equal(true, false, "Unexpected result!") - // } catch (err) { - // assert.hasAnyKeys(err, ["error"]) - // assert.include(err.error, "Array too large") - // } - // }) - // }) - - // describe(`#unconfirmed`, (): void => { - // it(`should GET unconfirmed details on a single address`, async (): Promise => { - // const addr: string = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" + describe(`#utxo`, (): void => { + describe(`#details`, (): void => { + it(`should GET address details for a single address`, async (): Promise => { + const addr: string = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + + const result: AddressDetailsResult | AddressDetailsResult[] = await bitbox.Address.details(addr) + + assert.hasAllKeys(result, [ + "balance", + "balanceSat", + "totalReceived", + "totalReceivedSat", + "totalSent", + "totalSentSat", + "unconfirmedBalance", + "unconfirmedBalanceSat", + "unconfirmedTxApperances", + "txApperances", + "transactions", + "legacyAddress", + "cashAddress", + "currentPage", + "pagesTotal" + ]) + if (!Array.isArray(result)) { + assert.isArray(result.transactions) + } + }) + + it(`should GET address details for an array of addresses`, async () => { + const addr: string[] = [ + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" + ] + + const result: AddressDetailsResult | AddressDetailsResult[] = await bitbox.Address.details(addr) + + assert.isArray(result) + if (Array.isArray(result)) { + assert.hasAllKeys(result[0], [ + "balance", + "balanceSat", + "totalReceived", + "totalReceivedSat", + "totalSent", + "totalSentSat", + "unconfirmedBalance", + "unconfirmedBalanceSat", + "unconfirmedTxApperances", + "txApperances", + "transactions", + "legacyAddress", + "cashAddress", + "currentPage", + "pagesTotal" + ]) + assert.isArray(result[0].transactions) + } + }) + + it(`should throw an error for improper input`, async () => { + try { + const addr: any = 12345 + + await bitbox.Address.details(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } + }) + + it(`should throw error on array size rate limit`, async () => { + try { + const addr = [] + for (let i = 0; i < 25; i++) + addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") + + const result = await bitbox.Address.details(addr) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + it(`should GET utxos for a single address`, async () => { + const addr: string = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + + const result: AddressUtxoResult | AddressUtxoResult[] = await bitbox.Address.utxo(addr) + + assert.hasAllKeys(result, [ + "utxos", + "legacyAddress", + "cashAddress", + "scriptPubKey" + ]) + if (!Array.isArray(result)) { + assert.isArray(result.utxos) + assert.hasAnyKeys(result.utxos[0], [ + "txid", + "vout", + "amount", + "satoshis", + "height", + "confirmations" + ]) + } + }) + + it(`should GET utxo details for an array of addresses`, async () => { + const addr: string[] = [ + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" + ] + + const result: AddressUtxoResult | AddressUtxoResult[] = await bitbox.Address.utxo(addr) + + assert.isArray(result) + if (Array.isArray(result)) { + assert.hasAllKeys(result[0], [ + "utxos", + "legacyAddress", + "cashAddress", + "scriptPubKey" + ]) + assert.isArray(result[0].utxos) + assert.hasAnyKeys(result[0].utxos[0], [ + "txid", + "vout", + "amount", + "satoshis", + "height", + "confirmations" + ]) + } + }) + + it(`should throw an error for improper input`, async () => { + try { + const addr: any = 12345 + + await bitbox.Address.utxo(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } + }) + + it(`should throw error on array size rate limit`, async (): Promise => { + try { + const addr: string[] = [] + for (let i: number = 0; i < 25; i++) + addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") + + const result: AddressUtxoResult | AddressUtxoResult[] = await bitbox.Address.utxo(addr) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) - // const result: AddressUnconfirmedResult | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed(addr) + describe(`#unconfirmed`, (): void => { + it(`should GET unconfirmed details on a single address`, async (): Promise => { + const addr: string = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" - // assert.hasAllKeys(result, ["utxos", "legacyAddress", "cashAddress"]) - // if (!Array.isArray(result)) { - // assert.isArray(result.utxos) - // } - // }) + const result: AddressUnconfirmedResult | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed(addr) - // it(`should GET unconfirmed details on multiple addresses`, async (): Promise => { - // const addr = [ - // "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", - // "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" - // ] + assert.hasAllKeys(result, ["utxos", "legacyAddress", "cashAddress"]) + if (!Array.isArray(result)) { + assert.isArray(result.utxos) + } + }) - // const result: AddressUnconfirmedResult | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed(addr) + it(`should GET unconfirmed details on multiple addresses`, async (): Promise => { + const addr = [ + "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", + "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" + ] - // assert.isArray(result) - // if (Array.isArray(result)) { - // assert.hasAllKeys(result[0], ["utxos", "legacyAddress", "cashAddress"]) - // assert.isArray(result[0].utxos) - // } - // }) - - // it(`should throw an error for improper input`, async () => { - // try { - // const addr: any = 12345 - - // await bitbox.Address.unconfirmed(addr) - // assert.equal(true, false, "Unexpected result!") - // } catch (err) { - // //console.log(`err: `, err) - // assert.include( - // err.message, - // `Input address must be a string or array of strings` - // ) - // } - // }) + const result: AddressUnconfirmedResult | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed(addr) - // it(`should throw error on array size rate limit`, async (): Promise => { - // try { - // const addr: string[] = [] - // for (let i: number = 0; i < 25; i++) - // addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") + assert.isArray(result) + if (Array.isArray(result)) { + assert.hasAllKeys(result[0], ["utxos", "legacyAddress", "cashAddress"]) + assert.isArray(result[0].utxos) + } + }) - // const result: AddressUnconfirmedResult | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed(addr) + it(`should throw an error for improper input`, async () => { + try { + const addr: any = 12345 - // console.log(`result: ${util.inspect(result)}`) - // assert.equal(true, false, "Unexpected result!") - // } catch (err) { - // assert.hasAnyKeys(err, ["error"]) - // assert.include(err.error, "Array too large") - // } - // }) - // }) + await bitbox.Address.unconfirmed(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } + }) - // describe(`#transactions`, (): void => { - // it(`should GET transactions for a single address`, async (): Promise => { - // const addr: string = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" - // const result: any = await bitbox.Address.transactions(addr) - - // assert.hasAllKeys(result, [ - // "txs", - // "pagesTotal", - // "cashAddress", - // "currentPage", - // "legacyAddress" - // ]) - // assert.isArray(result.txs) - // assert.hasAnyKeys(result.txs[0], [ - // "txid", - // "version", - // "locktime", - // "vin", - // "vout", - // "confirmations", - // "time", - // "blocktime", - // "valueOut", - // "size", - // "valueIn", - // "fees" - // ]) - // }) - - // it(`should get transactions on multiple addresses`, async (): Promise => { - // const addr: string[] = [ - // "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", - // "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" - // ] - // const result: any = await bitbox.Address.transactions(addr) - - // assert.isArray(result) - // assert.hasAllKeys(result[0], [ - // "txs", - // "pagesTotal", - // "cashAddress", - // "currentPage", - // "legacyAddress" - // ]) - // assert.isArray(result[0].txs) - // assert.hasAnyKeys(result[0].txs[0], [ - // "txid", - // "version", - // "locktime", - // "vin", - // "vout", - // "confirmations", - // "time", - // "blocktime", - // "valueOut", - // "size", - // "valueIn", - // "fees" - // ]) - // }) - - // it(`should throw an error for improper input`, async (): Promise => { - // try { - // const addr: any = 12345 - - // await bitbox.Address.transactions(addr) - // assert.equal(true, false, "Unexpected result!") - // } catch (err) { - // //console.log(`err: `, err) - // assert.include( - // err.message, - // `Input address must be a string or array of strings` - // ) - // } - // }) + it(`should throw error on array size rate limit`, async (): Promise => { + try { + const addr: string[] = [] + for (let i: number = 0; i < 25; i++) + addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - // it(`should throw error on array size rate limit`, async (): Promise => { - // try { - // const addr: string[] = [] - // for (let i: number = 0; i < 25; i++) - // addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") + const result: AddressUnconfirmedResult | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed(addr) - // const result: any = await bitbox.Address.transactions(addr) + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) - // console.log(`result: ${util.inspect(result)}`) - // assert.equal(true, false, "Unexpected result!") - // } catch (err) { - // assert.hasAnyKeys(err, ["error"]) - // assert.include(err.error, "Array too large") - // } - // }) - // }) - // }) + describe(`#transactions`, (): void => { + it(`should GET transactions for a single address`, async (): Promise => { + const addr: string = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" + const result: any = await bitbox.Address.transactions(addr) + + assert.hasAllKeys(result, [ + "txs", + "pagesTotal", + "cashAddress", + "currentPage", + "legacyAddress" + ]) + assert.isArray(result.txs) + assert.hasAnyKeys(result.txs[0], [ + "txid", + "version", + "locktime", + "vin", + "vout", + "confirmations", + "time", + "blocktime", + "valueOut", + "size", + "valueIn", + "fees" + ]) + }) + + it(`should get transactions on multiple addresses`, async (): Promise => { + const addr: string[] = [ + "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", + "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" + ] + const result: any = await bitbox.Address.transactions(addr) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "txs", + "pagesTotal", + "cashAddress", + "currentPage", + "legacyAddress" + ]) + assert.isArray(result[0].txs) + assert.hasAnyKeys(result[0].txs[0], [ + "txid", + "version", + "locktime", + "vin", + "vout", + "confirmations", + "time", + "blocktime", + "valueOut", + "size", + "valueIn", + "fees" + ]) + }) + + it(`should throw an error for improper input`, async (): Promise => { + try { + const addr: any = 12345 + + await bitbox.Address.transactions(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } + }) + + it(`should throw error on array size rate limit`, async (): Promise => { + try { + const addr: string[] = [] + for (let i: number = 0; i < 25; i++) + addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") + + const result: any = await bitbox.Address.transactions(addr) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) + }) }) diff --git a/test/unit/Block.ts b/test/unit/Block.ts index b4853dce..7f02e24e 100644 --- a/test/unit/Block.ts +++ b/test/unit/Block.ts @@ -31,267 +31,267 @@ describe("#Block", (): void => { assert.equal(block.restURL, resturl) }) - // describe("#detailsByHash", (): void => { - // let sandbox: any - // beforeEach(() => (sandbox = sinon.sandbox.create())) - // afterEach(() => sandbox.restore()) - - // it("should get block details", async (): Promise => { - // const data: any = { - // hash: - // "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", - // size: 216, - // height: 507, - // version: 1, - // merkleroot: - // "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8", - // tx: [ - // "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8" - // ], - // time: 1231973656, - // nonce: 330467862, - // bits: "1d00ffff", - // difficulty: 1, - // chainwork: - // "000000000000000000000000000000000000000000000000000001fc01fc01fc", - // confirmations: 528402, - // previousblockhash: - // "00000000a99525c043fd7e323414b60add43c254c44860094048f9c01e9a5fdd", - // nextblockhash: - // "000000000d550f4161f2702165fdd782ec72ff9c541f864ebb8256b662b7e51a", - // reward: 50, - // isMainChain: true, - // poolInfo: {} - // } - // const resolved: Promise = new Promise(r => r({ data: data })) - // sandbox.stub(axios, "get").returns(resolved) - - // const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHash( - // "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0" - // ) - - // assert.deepEqual(result, data) - // }) - // }) - - // describe("#detailsByHeight", (): void => { - // let sandbox: any - // beforeEach(() => (sandbox = sinon.sandbox.create())) - // afterEach(() => sandbox.restore()) - - // it("should get block details", async (): Promise => { - // const data: any = { - // hash: - // "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", - // size: 216, - // height: 507, - // version: 1, - // merkleroot: - // "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8", - // tx: [ - // "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8" - // ], - // time: 1231973656, - // nonce: 330467862, - // bits: "1d00ffff", - // difficulty: 1, - // chainwork: - // "000000000000000000000000000000000000000000000000000001fc01fc01fc", - // confirmations: 528402, - // previousblockhash: - // "00000000a99525c043fd7e323414b60add43c254c44860094048f9c01e9a5fdd", - // nextblockhash: - // "000000000d550f4161f2702165fdd782ec72ff9c541f864ebb8256b662b7e51a", - // reward: 50, - // isMainChain: true, - // poolInfo: {} - // } - // const resolved: Promise = new Promise(r => r({ data: data })) - // sandbox.stub(axios, "get").returns(resolved) - - // const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(500007) - - // assert.deepEqual(result, data) - // }) - // }) - - // describe(`#detailsByHeight`, (): void => { - // it(`should GET block details for a given Height`, async (): Promise => { - // const block: number = 500000 - - // const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(block) - - // assert.hasAllKeys(result, [ - // "hash", - // "size", - // "height", - // "version", - // "merkleroot", - // "tx", - // "time", - // "nonce", - // "bits", - // "difficulty", - // "chainwork", - // "confirmations", - // "previousblockhash", - // "nextblockhash", - // "reward", - // "isMainChain", - // "poolInfo" - // ]) - // }) - - // it(`should GET block details for an array of blocks`, async (): Promise => { - // const blocks: number[] = [500000, 500001] - // const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(blocks) - - // assert.isArray(result) - // if (Array.isArray(result)) { - // assert.hasAllKeys(result[0], [ - // "hash", - // "size", - // "height", - // "version", - // "merkleroot", - // "tx", - // "time", - // "nonce", - // "bits", - // "difficulty", - // "chainwork", - // "confirmations", - // "previousblockhash", - // "nextblockhash", - // "reward", - // "isMainChain", - // "poolInfo" - // ]) - - // } - // }) - - // it(`should throw an error for improper single input`, async (): Promise => { - // try { - // const blocks: any = "asdf" - - // await bitbox.Block.detailsByHeight(blocks) - // assert.equal(true, false, "Unexpected result!") - // } catch (err) { - // assert.include( - // err.message, - // `Input must be a number or array of numbers.` - // ) - // } - // }) - - // it(`should throw error on array size rate limit`, async (): Promise => { - // try { - // const blocks: number[] = [] - // for (let i: number = 0; i < 25; i++) blocks.push(500000) - // const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(blocks) - - // console.log(`result: ${util.inspect(result)}`) - // assert.equal(true, false, "Unexpected result!") - // } catch (err) { - // assert.hasAnyKeys(err, ["error"]) - // assert.include(err.error, "Array too large") - // } - // }) - // }) - - // describe("#detailsByHash", (): void => { - // it(`should GET block details for a given hash`, async (): Promise => { - // const hash: string = - // "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - // const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHash(hash) - - // assert.hasAllKeys(result, [ - // "hash", - // "size", - // "height", - // "version", - // "merkleroot", - // "tx", - // "time", - // "nonce", - // "bits", - // "difficulty", - // "chainwork", - // "confirmations", - // "previousblockhash", - // "nextblockhash", - // "reward", - // "isMainChain", - // "poolInfo" - // ]) - // }) - - // it(`should GET block details for an array of hashes`, async (): Promise => { - // const hash: string[] = [ - // "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", - // "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - // ] - - // const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHash(hash) - - // assert.isArray(result) - // if (Array.isArray(result)) { - // assert.hasAllKeys(result[0], [ - // "hash", - // "size", - // "height", - // "version", - // "merkleroot", - // "tx", - // "time", - // "nonce", - // "bits", - // "difficulty", - // "chainwork", - // "confirmations", - // "previousblockhash", - // "nextblockhash", - // "reward", - // "isMainChain", - // "poolInfo" - // ]) - - // } - // }) - - // it(`should throw an error for improper single input`, async (): Promise => { - // try { - // const hash: any = 12345 - - // await bitbox.Block.detailsByHash(hash) - // assert.equal(true, false, "Unexpected result!") - // } catch (err) { - // //console.log(`err: `, err) - // assert.include( - // err.message, - // `Input must be a string or array of strings` - // ) - // } - // }) - - // it(`should throw error on array size rate limit`, async (): Promise => { - // try { - // const data: string[] = [] - // for (let i: number = 0; i < 25; i++) { - // data.push( - // "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - // ) - // } - - // const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHash(data) - - // console.log(`result: ${util.inspect(result)}`) - // assert.equal(true, false, "Unexpected result!") - // } catch (err) { - // assert.hasAnyKeys(err, ["error"]) - // assert.include(err.error, "Array too large") - // } - // }) - // }) + describe("#detailsByHash", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get block details", async (): Promise => { + const data: any = { + hash: + "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", + size: 216, + height: 507, + version: 1, + merkleroot: + "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8", + tx: [ + "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8" + ], + time: 1231973656, + nonce: 330467862, + bits: "1d00ffff", + difficulty: 1, + chainwork: + "000000000000000000000000000000000000000000000000000001fc01fc01fc", + confirmations: 528402, + previousblockhash: + "00000000a99525c043fd7e323414b60add43c254c44860094048f9c01e9a5fdd", + nextblockhash: + "000000000d550f4161f2702165fdd782ec72ff9c541f864ebb8256b662b7e51a", + reward: 50, + isMainChain: true, + poolInfo: {} + } + const resolved: Promise = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHash( + "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0" + ) + + assert.deepEqual(result, data) + }) + }) + + describe("#detailsByHeight", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get block details", async (): Promise => { + const data: any = { + hash: + "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", + size: 216, + height: 507, + version: 1, + merkleroot: + "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8", + tx: [ + "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8" + ], + time: 1231973656, + nonce: 330467862, + bits: "1d00ffff", + difficulty: 1, + chainwork: + "000000000000000000000000000000000000000000000000000001fc01fc01fc", + confirmations: 528402, + previousblockhash: + "00000000a99525c043fd7e323414b60add43c254c44860094048f9c01e9a5fdd", + nextblockhash: + "000000000d550f4161f2702165fdd782ec72ff9c541f864ebb8256b662b7e51a", + reward: 50, + isMainChain: true, + poolInfo: {} + } + const resolved: Promise = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(500007) + + assert.deepEqual(result, data) + }) + }) + + describe(`#detailsByHeight`, (): void => { + it(`should GET block details for a given Height`, async (): Promise => { + const block: number = 500000 + + const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(block) + + assert.hasAllKeys(result, [ + "hash", + "size", + "height", + "version", + "merkleroot", + "tx", + "time", + "nonce", + "bits", + "difficulty", + "chainwork", + "confirmations", + "previousblockhash", + "nextblockhash", + "reward", + "isMainChain", + "poolInfo" + ]) + }) + + it(`should GET block details for an array of blocks`, async (): Promise => { + const blocks: number[] = [500000, 500001] + const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(blocks) + + assert.isArray(result) + if (Array.isArray(result)) { + assert.hasAllKeys(result[0], [ + "hash", + "size", + "height", + "version", + "merkleroot", + "tx", + "time", + "nonce", + "bits", + "difficulty", + "chainwork", + "confirmations", + "previousblockhash", + "nextblockhash", + "reward", + "isMainChain", + "poolInfo" + ]) + + } + }) + + it(`should throw an error for improper single input`, async (): Promise => { + try { + const blocks: any = "asdf" + + await bitbox.Block.detailsByHeight(blocks) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.include( + err.message, + `Input must be a number or array of numbers.` + ) + } + }) + + it(`should throw error on array size rate limit`, async (): Promise => { + try { + const blocks: number[] = [] + for (let i: number = 0; i < 25; i++) blocks.push(500000) + const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(blocks) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) + + describe("#detailsByHash", (): void => { + it(`should GET block details for a given hash`, async (): Promise => { + const hash: string = + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHash(hash) + + assert.hasAllKeys(result, [ + "hash", + "size", + "height", + "version", + "merkleroot", + "tx", + "time", + "nonce", + "bits", + "difficulty", + "chainwork", + "confirmations", + "previousblockhash", + "nextblockhash", + "reward", + "isMainChain", + "poolInfo" + ]) + }) + + it(`should GET block details for an array of hashes`, async (): Promise => { + const hash: string[] = [ + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + ] + + const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHash(hash) + + assert.isArray(result) + if (Array.isArray(result)) { + assert.hasAllKeys(result[0], [ + "hash", + "size", + "height", + "version", + "merkleroot", + "tx", + "time", + "nonce", + "bits", + "difficulty", + "chainwork", + "confirmations", + "previousblockhash", + "nextblockhash", + "reward", + "isMainChain", + "poolInfo" + ]) + + } + }) + + it(`should throw an error for improper single input`, async (): Promise => { + try { + const hash: any = 12345 + + await bitbox.Block.detailsByHash(hash) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input must be a string or array of strings` + ) + } + }) + + it(`should throw error on array size rate limit`, async (): Promise => { + try { + const data: string[] = [] + for (let i: number = 0; i < 25; i++) { + data.push( + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + ) + } + + const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHash(data) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) }) diff --git a/test/unit/Blockchain.ts b/test/unit/Blockchain.ts index 2bb60426..9771d715 100644 --- a/test/unit/Blockchain.ts +++ b/test/unit/Blockchain.ts @@ -31,686 +31,686 @@ describe("#Blockchain", (): void => { }) }) - // describe("#getBlock", (): void => { - // let sandbox: any - // beforeEach(() => (sandbox = sinon.sandbox.create())) - // afterEach(() => sandbox.restore()) - // const data = { - // hash: "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09", - // confirmations: 526807, - // size: 216, - // height: 1000, - // version: 1, - // versionHex: "00000001", - // merkleroot: - // "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33", - // tx: ["fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33"], - // time: 1232346882, - // mediantime: 1232344831, - // nonce: 2595206198, - // bits: "1d00ffff", - // difficulty: 1, - // chainwork: - // "000000000000000000000000000000000000000000000000000003e903e903e9", - // previousblockhash: - // "0000000008e647742775a230787d66fdf92c46a48c896bfbc85cdc8acc67e87d", - // nextblockhash: - // "00000000a2887344f8db859e372e7e4bc26b23b9de340f725afbf2edb265b4c6" - // } - - // it("should get block by hash", done => { - // const resolved = new Promise(r => r({ data: data })) - // sandbox.stub(axios, "get").returns(resolved) - - // bitbox.Blockchain.getBlock( - // "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09" - // ) - // .then((result: any) => { - // assert.deepEqual(data, result) - // }) - // .then(done, done) - // }) - // }) - - // describe("#getBlockchainInfo", (): void => { - // let sandbox: any - // beforeEach(() => (sandbox = sinon.sandbox.create())) - // afterEach(() => sandbox.restore()) - // const data = { - // chain: "main", - // blocks: 527810, - // headers: 527810, - // bestblockhash: - // "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0", - // difficulty: 576023394804.6666, - // mediantime: 1524878499, - // verificationprogress: 0.9999990106793685, - // chainwork: - // "00000000000000000000000000000000000000000096da5b040913fa09249b4e", - // pruned: false, - // softforks: [ - // { id: "bip34", version: 2, reject: [Object] }, - // { id: "bip66", version: 3, reject: [Object] }, - // { id: "bip65", version: 4, reject: [Object] } - // ], - // bip9_softforks: { - // csv: { - // status: "active", - // startTime: 1462060800, - // timeout: 1493596800, - // since: 419328 - // } - // } - // } - - // it("should get blockchain info", done => { - // const resolved = new Promise(r => r({ data: data })) - // sandbox.stub(axios, "get").returns(resolved) - - // bitbox.Blockchain.getBlockchainInfo() - // .then((result: any) => { - // assert.deepEqual(data, result) - // }) - // .then(done, done) - // }) - // }) - - // describe("#getBlockCount", (): void => { - // let sandbox: any - // beforeEach(() => (sandbox = sinon.sandbox.create())) - // afterEach(() => sandbox.restore()) - // const data = 527810 - - // it("should get block count", done => { - // const resolved = new Promise(r => r({ data: data })) - // sandbox.stub(axios, "get").returns(resolved) - - // bitbox.Blockchain.getBlockCount() - // .then((result: any) => { - // assert.deepEqual(data, result) - // }) - // .then(done, done) - // }) - // }) - - // describe("#getBlockHash", (): void => { - // let sandbox: any - // beforeEach(() => (sandbox = sinon.sandbox.create())) - // afterEach(() => sandbox.restore()) - // const data: string = - // "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0" - - // it("should get block hash by height", done => { - // const resolved = new Promise(r => r({ data: data })) - // sandbox.stub(axios, "get").returns(resolved) - - // bitbox.Blockchain.getBlockHash(527810) - // .then((result: any) => { - // assert.deepEqual(data, result) - // }) - // .then(done, done) - // }) - // }) - - // describe("#getBlockHeader", (): void => { - // let sandbox: any - // beforeEach(() => (sandbox = sinon.sandbox.create())) - // afterEach(() => sandbox.restore()) - // const data = { - // hash: "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0", - // confirmations: 1, - // height: 527810, - // version: 536870912, - // versionHex: "20000000", - // merkleroot: - // "9298432bbebe4638456aa19cb7ef91639da87668a285d88d0ecd6080424d223b", - // time: 1524881438, - // mediantime: 1524878499, - // nonce: 3326843941, - // bits: "1801e8a5", - // difficulty: 576023394804.6666, - // chainwork: - // "00000000000000000000000000000000000000000096da5b040913fa09249b4e", - // previousblockhash: - // "000000000000000000b33251708bc7a7b4540e61880d8c376e8e2db6a19a4789" - // } - - // it("should get block header by hash", done => { - // const resolved = new Promise(r => r({ data: data })) - // sandbox.stub(axios, "get").returns(resolved) - - // bitbox.Blockchain.getBlockHeader( - // "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0", - // true - // ) - // .then((result: any) => { - // assert.deepEqual(data, result) - // }) - // .then(done, done) - // }) - // }) - - // describe("#getDifficulty", (): void => { - // let sandbox: any - // beforeEach(() => (sandbox = sinon.sandbox.create())) - // afterEach(() => sandbox.restore()) - // const data = "577528469277.1339" - - // it("should get difficulty", done => { - // const resolved = new Promise(r => r({ data: data })) - // sandbox.stub(axios, "get").returns(resolved) - - // bitbox.Blockchain.getDifficulty() - // .then((result: any) => { - // assert.deepEqual(data, result) - // }) - // .then(done, done) - // }) - // }) - - // describe("#getMempoolAncestors", (): void => { - // let sandbox: any - // beforeEach(() => (sandbox = sinon.sandbox.create())) - // afterEach(() => sandbox.restore()) - // const data = "Transaction not in mempool" - - // it("should get mempool ancestors", done => { - // const resolved = new Promise(r => r({ data: data })) - // sandbox.stub(axios, "get").returns(resolved) - - // bitbox.Blockchain.getMempoolAncestors( - // "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", - // true - // ) - // .then((result: any) => { - // assert.deepEqual(data, result) - // }) - // .then(done, done) - // }) - // }) - - // describe("#getMempoolDescendants", (): void => { - // let sandbox: any - // beforeEach(() => (sandbox = sinon.sandbox.create())) - // afterEach(() => sandbox.restore()) - // const data = { - // result: "Transaction not in mempool" - // } - - // it("should get mempool descendants", done => { - // const resolved = new Promise(r => r({ data: data })) - // sandbox.stub(axios, "get").returns(resolved) - - // bitbox.Blockchain.getMempoolDescendants( - // "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", - // true - // ) - // .then((result: any) => { - // assert.deepEqual(data, result) - // }) - // .then(done, done) - // }) - // }) - - // describe("#getMempoolEntry", (): void => { - // let sandbox: any - // beforeEach(() => (sandbox = sinon.sandbox.create())) - // afterEach(() => sandbox.restore()) - // const data = { - // result: "Transaction not in mempool" - // } - - // it("should get mempool entry", done => { - // const resolved = new Promise(r => r({ data: data })) - // sandbox.stub(axios, "get").returns(resolved) - - // bitbox.Blockchain.getMempoolEntry( - // "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88" - // ) - // .then((result: any) => { - // assert.deepEqual(data, result) - // }) - // .then(done, done) - // }) - // }) - - // describe("#getMempoolInfo", (): void => { - // let sandbox: any - // beforeEach(() => (sandbox = sinon.sandbox.create())) - // afterEach(() => sandbox.restore()) - // const data = { - // result: { - // size: 317, - // bytes: 208583, - // usage: 554944, - // maxmempool: 300000000, - // mempoolminfee: 0 - // } - // } - - // it("should get mempool info", done => { - // const resolved = new Promise(r => r({ data: data })) - // sandbox.stub(axios, "get").returns(resolved) - - // bitbox.Blockchain.getMempoolInfo() - // .then((result: any) => { - // assert.deepEqual(data, result) - // }) - // .then(done, done) - // }) - // }) - - // describe("#getRawMempool", (): void => { - // let sandbox: any - // beforeEach(() => (sandbox = sinon.sandbox.create())) - // afterEach(() => sandbox.restore()) - // const data = { - // result: { - // transactions: [ - // { - // txid: - // "ab36d68dd0a618592fe34e4a898e8beeeb4049133547dbb16f9338384084af96", - // size: 191, - // fee: 0.00047703, - // modifiedfee: 0.00047703, - // time: 1524883317, - // height: 527811, - // startingpriority: 5287822727.272727, - // currentpriority: 5287822727.272727, - // descendantcount: 1, - // descendantsize: 191, - // descendantfees: 47703, - // ancestorcount: 1, - // ancestorsize: 191, - // ancestorfees: 47703, - // depends: [] - // } - // ] - // } - // } - - // it("should get mempool info", done => { - // const resolved = new Promise(r => r({ data: data })) - // sandbox.stub(axios, "get").returns(resolved) - - // bitbox.Blockchain.getRawMempool() - // .then((result: any) => { - // assert.deepEqual(data, result) - // }) - // .then(done, done) - // }) - // }) - - // describe("#getTxOut", (): void => { - // // TODO finish this test - // let sandbox: any - // beforeEach(() => (sandbox = sinon.sandbox.create())) - // afterEach(() => sandbox.restore()) - // const data = { - // result: {} - // } - - // it("should get TODO", done => { - // const resolved = new Promise(r => r({ data: data })) - // sandbox.stub(axios, "get").returns(resolved) - - // bitbox.Blockchain.getTxOut( - // "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", - // 0, - // true - // ) - // .then((result: any) => { - // assert.deepEqual(data, result) - // }) - // .then(done, done) - // }) - // }) - - // describe("#preciousBlock", (): void => { - // // TODO finish this test - // let sandbox: any - // beforeEach(() => (sandbox = sinon.sandbox.create())) - // afterEach(() => sandbox.restore()) - // const data = { - // result: {} - // } - - // it("should get TODO", done => { - // const resolved = new Promise(r => r({ data: data })) - // sandbox.stub(axios, "get").returns(resolved) - - // // @ts-ignore - // bitbox.Blockchain.preciousBlock() - // .then((result: any) => { - // assert.deepEqual(data, result) - // }) - // .then(done, done) - // }) - // }) - - // describe("#pruneBlockchain", (): void => { - // let sandbox: any - // beforeEach(() => (sandbox = sinon.sandbox.create())) - // afterEach(() => sandbox.restore()) - // const data = "Cannot prune blocks because node is not in prune mode." - - // it("should prune blockchain", done => { - // const resolved = new Promise(r => r({ data: data })) - // sandbox.stub(axios, "post").returns(resolved) - - // bitbox.Blockchain.pruneBlockchain(507) - // .then((result: any) => { - // assert.deepEqual(data, result) - // }) - // .then(done, done) - // }) - // }) - - // describe("#verifyChain", (): void => { - // let sandbox: any - // beforeEach(() => (sandbox = sinon.sandbox.create())) - // afterEach(() => sandbox.restore()) - // const data = true - - // it("should verify blockchain", done => { - // const resolved = new Promise(r => r({ data: data })) - // sandbox.stub(axios, "get").returns(resolved) - - // bitbox.Blockchain.verifyChain(3, 6) - // .then((result: any) => { - // assert.deepEqual(data, result) - // }) - // .then(done, done) - // }) - // }) - - // describe("#verifyTxOutProof", (): void => { - // let sandbox: any - // beforeEach(() => (sandbox = sinon.sandbox.create())) - // afterEach(() => sandbox.restore()) - // const data = "proof must be hexadecimal string (not '')" - - // it("should verify utxo proof", done => { - // const resolved = new Promise(r => r({ data: data })) - // sandbox.stub(axios, "get").returns(resolved) - - // bitbox.Blockchain.verifyTxOutProof("3") - // .then((result: any) => { - // assert.deepEqual(data, result) - // }) - // .then(done, done) - // }) - // }) - - // describe(`#getBestBlockHash`, (): void => { - // it(`should GET best block hash`, async () => { - // const result: string = await bitbox.Blockchain.getBestBlockHash() - - // assert.isString(result) - // assert.equal(result.length, 64, "Specific hash length") - // }) - // }) - - // describe("#getBlockHeader", (): void => { - // it(`should GET block header for a single hash`, async () => { - // const hash: string = - // "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - - // const result: BlockHeaderResult | BlockHeaderResult[] = await bitbox.Blockchain.getBlockHeader(hash) - - // assert.hasAllKeys(result, [ - // "hash", - // "confirmations", - // "height", - // "version", - // "versionHex", - // "merkleroot", - // "time", - // "mediantime", - // "nonce", - // "bits", - // "difficulty", - // "chainwork", - // "previousblockhash", - // "nextblockhash" - // ]) - // }) - - // it(`should GET block headers for an array of hashes`, async () => { - // const hash: string[] = [ - // "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", - // "00000000000000000568f0a96bf4348847bc84e455cbfec389f27311037a20f3" - // ] - - // const result: BlockHeaderResult | BlockHeaderResult[] = await bitbox.Blockchain.getBlockHeader(hash) - - // assert.isArray(result) - // if (Array.isArray(result)) { - // assert.hasAllKeys(result[0], [ - // "hash", - // "confirmations", - // "height", - // "version", - // "versionHex", - // "merkleroot", - // "time", - // "mediantime", - // "nonce", - // "bits", - // "difficulty", - // "chainwork", - // "previousblockhash", - // "nextblockhash" - // ]) - - // } - // }) - - // it(`should throw an error for improper input`, async () => { - // try { - // const hash: any = 12345 - - // await bitbox.Blockchain.getBlockHeader(hash) - // assert.equal(true, false, "Unexpected result!") - // } catch (err) { - // assert.include( - // err.message, - // `Input hash must be a string or array of strings` - // ) - // } - // }) - - // it(`should throw error on array size rate limit`, async () => { - // try { - // const data: string[] = [] - // for (let i: number = 0; i < 25; i++) { - // data.push( - // "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - // ) - // } - - // const result: BlockHeaderResult | BlockHeaderResult[] = await bitbox.Blockchain.getBlockHeader(data) - // assert.equal(true, false, "Unexpected result!") - // } catch (err) { - // assert.hasAnyKeys(err, ["error"]) - // assert.include(err.error, "Array too large") - // } - // }) - // }) - - // describe("#getMempoolEntry", (): void => { - // /* - // // To run this test, the txid must be unconfirmed. - // const txid = - // "defea04c38ee00cf73ad402984714ed22dc0dd99b2ae5cb50d791d94343ba79b" - - // it(`should GET single mempool entry`, async () => { - // const result = await bitbox.Blockchain.getMempoolEntry(txid) - // //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - // assert.hasAnyKeys(result, [ - // "size", - // "fee", - // "modifiedfee", - // "time", - // "height", - // "startingpriority", - // "currentpriority", - // "descendantcount", - // "descendantsize", - // "descendantfees", - // "ancestorcount", - // "ancestorsize", - // "ancestorfees", - // "depends" - // ]) - // }) - - // it(`should get an array of mempool entries`, async () => { - // const result = await bitbox.Blockchain.getMempoolEntry([txid, txid]) - // console.log(`result: ${JSON.stringify(result, null, 2)}`) - - // assert.isArray(result) - // assert.hasAnyKeys(result[0], [ - // "size", - // "fee", - // "modifiedfee", - // "time", - // "height", - // "startingpriority", - // "currentpriority", - // "descendantcount", - // "descendantsize", - // "descendantfees", - // "ancestorcount", - // "ancestorsize", - // "ancestorfees", - // "depends" - // ]) - // }) - // */ - - // it(`should throw an error if txid is not in mempool`, async (): Promise => { - // try { - // const txid: string = - // "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" - - // await bitbox.Blockchain.getMempoolEntry(txid) - - // assert.equal(true, false, "Unexpected result!") - // } catch (err) { - // //console.log(`err: ${util.inspect(err)}`) - // assert.hasAnyKeys(err, ["error"]) - // assert.include(err.error, `Transaction not in mempool`) - // } - // }) - - // it(`should throw an error for improper single input`, async (): Promise => { - // try { - // const txid: any = 12345 - - // await bitbox.Blockchain.getMempoolEntry(txid) - // assert.equal(true, false, "Unexpected result!") - // } catch (err) { - // assert.include( - // err.message, - // `Input must be a string or array of strings` - // ) - // } - // }) - // }) - - // describe(`#getTxOutProof`, (): void => { - // it(`should get single tx out proof`, async (): Promise => { - // const txid: string = - // "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" - - // const result = await bitbox.Blockchain.getTxOutProof(txid) - - // assert.isString(result) - // }) - - // it(`should get an array of tx out proofs`, async (): Promise => { - // const txid: string[] = [ - // "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7", - // "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" - // ] - - // const result = await bitbox.Blockchain.getTxOutProof(txid) - - // assert.isArray(result) - // assert.isString(result[0]) - // }) - - // it(`should throw an error for improper single input`, async (): Promise => { - // try { - // const txid: any = 12345 - - // await bitbox.Blockchain.getTxOutProof(txid) - // assert.equal(true, false, "Unexpected result!") - // } catch (err) { - // assert.include( - // err.message, - // `Input must be a string or array of strings` - // ) - // } - // }) - // }) - - // describe(`#verifyTxOutProof`, (): void => { - // const mockTxOutProof: string = - // "0000002086a4a3161f9ba2174883ec0b93acceac3b2f37b36ed1f90000000000000000009cb02406d1094ecf3e0b4c0ca7c585125e721147c39daf6b48c90b512741e13a12333e5cb38705180f441d8c7100000008fee9b60f1edb57e5712839186277ed39e0a004a32be9096ee47472efde8eae62f789f9d7a9f59d0ea7093dea1e0c65ff0b953f1d8cf3d47f92e732ca0295f603c272d5f4a63509f7a887f2549d78af7444aa0ecbb4f66d9cbe13bc6a89f59e05a199df8325d490818ffefe6b6321d32d7496a68580459836c0183f89082fc1b491cc91b23ecdcaa4c347bf599a62904d61f1c15b400ebbd5c90149010c139d9c1e31b774b796977393a238080ab477e1d240d0c4f155d36f519668f49bae6bd8cd5b8e40522edf76faa09cca6188d83ff13af6967cc6a569d1a5e9aeb1fdb7f531ddd2d0cbb81879741d5f38166ac1932136264366a4065cc96a42e41f96294f02df01" - - // it(`should verify a single proof`, async (): Promise => { - // const result = await bitbox.Blockchain.verifyTxOutProof(mockTxOutProof) - - // assert.isArray(result) - // assert.isString(result[0]) - // assert.equal( - // result[0], - // "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" - // ) - // }) - - // it(`should verify an array of proofs`, async (): Promise => { - // const proofs: string[] = [mockTxOutProof, mockTxOutProof] - // const result = await bitbox.Blockchain.verifyTxOutProof(proofs) - - // assert.isArray(result) - // assert.isString(result[0]) - // assert.equal( - // result[0], - // "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" - // ) - // }) - - // it(`should throw an error for improper single input`, async (): Promise => { - // try { - // const txid: any = 12345 - - // await bitbox.Blockchain.verifyTxOutProof(txid) - // assert.equal(true, false, "Unexpected result!") - // } catch (err) { - // assert.include( - // err.message, - // `Input must be a string or array of strings` - // ) - // } - // }) - - // it(`should throw error on array size rate limit`, async (): Promise => { - // try { - // const data: string[] = [] - // for (let i: number = 0; i < 25; i++) data.push(mockTxOutProof) - - // const result = await bitbox.Blockchain.verifyTxOutProof(data) - - // console.log(`result: ${util.inspect(result)}`) - // assert.equal(true, false, "Unexpected result!") - // } catch (err) { - // assert.hasAnyKeys(err, ["error"]) - // assert.include(err.error, "Array too large") - // } - // }) - // }) + describe("#getBlock", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + hash: "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09", + confirmations: 526807, + size: 216, + height: 1000, + version: 1, + versionHex: "00000001", + merkleroot: + "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33", + tx: ["fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33"], + time: 1232346882, + mediantime: 1232344831, + nonce: 2595206198, + bits: "1d00ffff", + difficulty: 1, + chainwork: + "000000000000000000000000000000000000000000000000000003e903e903e9", + previousblockhash: + "0000000008e647742775a230787d66fdf92c46a48c896bfbc85cdc8acc67e87d", + nextblockhash: + "00000000a2887344f8db859e372e7e4bc26b23b9de340f725afbf2edb265b4c6" + } + + it("should get block by hash", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Blockchain.getBlock( + "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09" + ) + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getBlockchainInfo", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + chain: "main", + blocks: 527810, + headers: 527810, + bestblockhash: + "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0", + difficulty: 576023394804.6666, + mediantime: 1524878499, + verificationprogress: 0.9999990106793685, + chainwork: + "00000000000000000000000000000000000000000096da5b040913fa09249b4e", + pruned: false, + softforks: [ + { id: "bip34", version: 2, reject: [Object] }, + { id: "bip66", version: 3, reject: [Object] }, + { id: "bip65", version: 4, reject: [Object] } + ], + bip9_softforks: { + csv: { + status: "active", + startTime: 1462060800, + timeout: 1493596800, + since: 419328 + } + } + } + + it("should get blockchain info", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Blockchain.getBlockchainInfo() + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getBlockCount", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = 527810 + + it("should get block count", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Blockchain.getBlockCount() + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getBlockHash", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data: string = + "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0" + + it("should get block hash by height", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Blockchain.getBlockHash(527810) + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getBlockHeader", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + hash: "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0", + confirmations: 1, + height: 527810, + version: 536870912, + versionHex: "20000000", + merkleroot: + "9298432bbebe4638456aa19cb7ef91639da87668a285d88d0ecd6080424d223b", + time: 1524881438, + mediantime: 1524878499, + nonce: 3326843941, + bits: "1801e8a5", + difficulty: 576023394804.6666, + chainwork: + "00000000000000000000000000000000000000000096da5b040913fa09249b4e", + previousblockhash: + "000000000000000000b33251708bc7a7b4540e61880d8c376e8e2db6a19a4789" + } + + it("should get block header by hash", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Blockchain.getBlockHeader( + "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0", + true + ) + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getDifficulty", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = "577528469277.1339" + + it("should get difficulty", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Blockchain.getDifficulty() + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getMempoolAncestors", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = "Transaction not in mempool" + + it("should get mempool ancestors", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Blockchain.getMempoolAncestors( + "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", + true + ) + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getMempoolDescendants", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + result: "Transaction not in mempool" + } + + it("should get mempool descendants", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Blockchain.getMempoolDescendants( + "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", + true + ) + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getMempoolEntry", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + result: "Transaction not in mempool" + } + + it("should get mempool entry", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Blockchain.getMempoolEntry( + "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88" + ) + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getMempoolInfo", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + result: { + size: 317, + bytes: 208583, + usage: 554944, + maxmempool: 300000000, + mempoolminfee: 0 + } + } + + it("should get mempool info", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Blockchain.getMempoolInfo() + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getRawMempool", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + result: { + transactions: [ + { + txid: + "ab36d68dd0a618592fe34e4a898e8beeeb4049133547dbb16f9338384084af96", + size: 191, + fee: 0.00047703, + modifiedfee: 0.00047703, + time: 1524883317, + height: 527811, + startingpriority: 5287822727.272727, + currentpriority: 5287822727.272727, + descendantcount: 1, + descendantsize: 191, + descendantfees: 47703, + ancestorcount: 1, + ancestorsize: 191, + ancestorfees: 47703, + depends: [] + } + ] + } + } + + it("should get mempool info", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Blockchain.getRawMempool() + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getTxOut", (): void => { + // TODO finish this test + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + result: {} + } + + it("should get TODO", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Blockchain.getTxOut( + "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", + 0, + true + ) + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#preciousBlock", (): void => { + // TODO finish this test + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + result: {} + } + + it("should get TODO", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + // @ts-ignore + bitbox.Blockchain.preciousBlock() + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#pruneBlockchain", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = "Cannot prune blocks because node is not in prune mode." + + it("should prune blockchain", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "post").returns(resolved) + + bitbox.Blockchain.pruneBlockchain(507) + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#verifyChain", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = true + + it("should verify blockchain", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Blockchain.verifyChain(3, 6) + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#verifyTxOutProof", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = "proof must be hexadecimal string (not '')" + + it("should verify utxo proof", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Blockchain.verifyTxOutProof("3") + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe(`#getBestBlockHash`, (): void => { + it(`should GET best block hash`, async () => { + const result: string = await bitbox.Blockchain.getBestBlockHash() + + assert.isString(result) + assert.equal(result.length, 64, "Specific hash length") + }) + }) + + describe("#getBlockHeader", (): void => { + it(`should GET block header for a single hash`, async () => { + const hash: string = + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + + const result: BlockHeaderResult | BlockHeaderResult[] = await bitbox.Blockchain.getBlockHeader(hash) + + assert.hasAllKeys(result, [ + "hash", + "confirmations", + "height", + "version", + "versionHex", + "merkleroot", + "time", + "mediantime", + "nonce", + "bits", + "difficulty", + "chainwork", + "previousblockhash", + "nextblockhash" + ]) + }) + + it(`should GET block headers for an array of hashes`, async () => { + const hash: string[] = [ + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", + "00000000000000000568f0a96bf4348847bc84e455cbfec389f27311037a20f3" + ] + + const result: BlockHeaderResult | BlockHeaderResult[] = await bitbox.Blockchain.getBlockHeader(hash) + + assert.isArray(result) + if (Array.isArray(result)) { + assert.hasAllKeys(result[0], [ + "hash", + "confirmations", + "height", + "version", + "versionHex", + "merkleroot", + "time", + "mediantime", + "nonce", + "bits", + "difficulty", + "chainwork", + "previousblockhash", + "nextblockhash" + ]) + + } + }) + + it(`should throw an error for improper input`, async () => { + try { + const hash: any = 12345 + + await bitbox.Blockchain.getBlockHeader(hash) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.include( + err.message, + `Input hash must be a string or array of strings` + ) + } + }) + + it(`should throw error on array size rate limit`, async () => { + try { + const data: string[] = [] + for (let i: number = 0; i < 25; i++) { + data.push( + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + ) + } + + const result: BlockHeaderResult | BlockHeaderResult[] = await bitbox.Blockchain.getBlockHeader(data) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) + + describe("#getMempoolEntry", (): void => { + /* + // To run this test, the txid must be unconfirmed. + const txid = + "defea04c38ee00cf73ad402984714ed22dc0dd99b2ae5cb50d791d94343ba79b" + + it(`should GET single mempool entry`, async () => { + const result = await bitbox.Blockchain.getMempoolEntry(txid) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAnyKeys(result, [ + "size", + "fee", + "modifiedfee", + "time", + "height", + "startingpriority", + "currentpriority", + "descendantcount", + "descendantsize", + "descendantfees", + "ancestorcount", + "ancestorsize", + "ancestorfees", + "depends" + ]) + }) + + it(`should get an array of mempool entries`, async () => { + const result = await bitbox.Blockchain.getMempoolEntry([txid, txid]) + console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAnyKeys(result[0], [ + "size", + "fee", + "modifiedfee", + "time", + "height", + "startingpriority", + "currentpriority", + "descendantcount", + "descendantsize", + "descendantfees", + "ancestorcount", + "ancestorsize", + "ancestorfees", + "depends" + ]) + }) + */ + + it(`should throw an error if txid is not in mempool`, async (): Promise => { + try { + const txid: string = + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + + await bitbox.Blockchain.getMempoolEntry(txid) + + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: ${util.inspect(err)}`) + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, `Transaction not in mempool`) + } + }) + + it(`should throw an error for improper single input`, async (): Promise => { + try { + const txid: any = 12345 + + await bitbox.Blockchain.getMempoolEntry(txid) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.include( + err.message, + `Input must be a string or array of strings` + ) + } + }) + }) + + describe(`#getTxOutProof`, (): void => { + it(`should get single tx out proof`, async (): Promise => { + const txid: string = + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + + const result = await bitbox.Blockchain.getTxOutProof(txid) + + assert.isString(result) + }) + + it(`should get an array of tx out proofs`, async (): Promise => { + const txid: string[] = [ + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7", + "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" + ] + + const result = await bitbox.Blockchain.getTxOutProof(txid) + + assert.isArray(result) + assert.isString(result[0]) + }) + + it(`should throw an error for improper single input`, async (): Promise => { + try { + const txid: any = 12345 + + await bitbox.Blockchain.getTxOutProof(txid) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.include( + err.message, + `Input must be a string or array of strings` + ) + } + }) + }) + + describe(`#verifyTxOutProof`, (): void => { + const mockTxOutProof: string = + "0000002086a4a3161f9ba2174883ec0b93acceac3b2f37b36ed1f90000000000000000009cb02406d1094ecf3e0b4c0ca7c585125e721147c39daf6b48c90b512741e13a12333e5cb38705180f441d8c7100000008fee9b60f1edb57e5712839186277ed39e0a004a32be9096ee47472efde8eae62f789f9d7a9f59d0ea7093dea1e0c65ff0b953f1d8cf3d47f92e732ca0295f603c272d5f4a63509f7a887f2549d78af7444aa0ecbb4f66d9cbe13bc6a89f59e05a199df8325d490818ffefe6b6321d32d7496a68580459836c0183f89082fc1b491cc91b23ecdcaa4c347bf599a62904d61f1c15b400ebbd5c90149010c139d9c1e31b774b796977393a238080ab477e1d240d0c4f155d36f519668f49bae6bd8cd5b8e40522edf76faa09cca6188d83ff13af6967cc6a569d1a5e9aeb1fdb7f531ddd2d0cbb81879741d5f38166ac1932136264366a4065cc96a42e41f96294f02df01" + + it(`should verify a single proof`, async (): Promise => { + const result = await bitbox.Blockchain.verifyTxOutProof(mockTxOutProof) + + assert.isArray(result) + assert.isString(result[0]) + assert.equal( + result[0], + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + ) + }) + + it(`should verify an array of proofs`, async (): Promise => { + const proofs: string[] = [mockTxOutProof, mockTxOutProof] + const result = await bitbox.Blockchain.verifyTxOutProof(proofs) + + assert.isArray(result) + assert.isString(result[0]) + assert.equal( + result[0], + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + ) + }) + + it(`should throw an error for improper single input`, async (): Promise => { + try { + const txid: any = 12345 + + await bitbox.Blockchain.verifyTxOutProof(txid) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.include( + err.message, + `Input must be a string or array of strings` + ) + } + }) + + it(`should throw error on array size rate limit`, async (): Promise => { + try { + const data: string[] = [] + for (let i: number = 0; i < 25; i++) data.push(mockTxOutProof) + + const result = await bitbox.Blockchain.verifyTxOutProof(data) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) }) diff --git a/test/unit/Control.ts b/test/unit/Control.ts index 4489f6d8..558a7205 100644 --- a/test/unit/Control.ts +++ b/test/unit/Control.ts @@ -22,35 +22,35 @@ describe("#Control", (): void => { }) }) - // describe("#getInfo", (): void => { - // let sandbox: any - // beforeEach(() => (sandbox = sinon.sandbox.create())) - // afterEach(() => sandbox.restore()) + describe("#getInfo", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) - // it("should get info", done => { - // const data = { - // version: 170000, - // protocolversion: 70015, - // blocks: 527813, - // timeoffset: 0, - // connections: 21, - // proxy: "", - // difficulty: 581086703759.5878, - // testnet: false, - // paytxfee: 0, - // relayfee: 0.00001, - // errors: "" - // } - // const resolved = new Promise(r => r({ data: data })) - // sandbox.stub(axios, "get").returns(resolved) + it("should get info", done => { + const data = { + version: 170000, + protocolversion: 70015, + blocks: 527813, + timeoffset: 0, + connections: 21, + proxy: "", + difficulty: 581086703759.5878, + testnet: false, + paytxfee: 0, + relayfee: 0.00001, + errors: "" + } + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) - // bitbox.Control.getInfo() - // .then((result: any) => { - // assert.deepEqual(data, result) - // }) - // .then(done, done) - // }) - // }) + bitbox.Control.getInfo() + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) // describe("#getMemoryInfo", () => { // let sandbox: any diff --git a/test/unit/Price.ts b/test/unit/Price.ts index 4a52b282..0b2054cb 100644 --- a/test/unit/Price.ts +++ b/test/unit/Price.ts @@ -14,12 +14,12 @@ describe("#Price", (): void => { }) }) - // describe("#current", (): void => { - // describe("#single currency", (): void => { - // it("should get current price for single currency", async () => { - // const result = await bitbox.Price.current("usd") - // assert.notEqual(0, result) - // }) - // }) - // }) + describe("#current", (): void => { + describe("#single currency", (): void => { + it("should get current price for single currency", async () => { + const result = await bitbox.Price.current("usd") + assert.notEqual(0, result) + }) + }) + }) }) diff --git a/test/unit/RawTransactions.ts b/test/unit/RawTransactions.ts index 64f35358..f0ca1221 100644 --- a/test/unit/RawTransactions.ts +++ b/test/unit/RawTransactions.ts @@ -26,301 +26,301 @@ describe("#RawTransactions", (): void => { }) }) - // describe("#decodeRawTransaction", (): void => { - // it("should decode tx for a single hex", async (): Promise => { - // const hex: string = - // "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" - - // const result: DecodeRawTransactionResult | DecodeRawTransactionResult[] = await bitbox.RawTransactions.decodeRawTransaction(hex) - - // assert.hasAnyKeys(result, [ - // "txid", - // "hash", - // "size", - // "version", - // "locktime", - // "vin", - // "vout" - // ]) - // if (!Array.isArray(result)) { - // assert.isArray(result.vin) - // assert.isArray(result.vout) - // } - // }) - - // it("should decode an array of tx hexes", async (): Promise => { - // const hexes: string[] = [ - // "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000", - // "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" - // ] - - // const result: DecodeRawTransactionResult | DecodeRawTransactionResult[] = await bitbox.RawTransactions.decodeRawTransaction(hexes) - - // assert.isArray(result) - // if (Array.isArray(result)) { - // assert.hasAnyKeys(result[0], [ - // "txid", - // "hash", - // "size", - // "version", - // "locktime", - // "vin", - // "vout" - // ]) - // assert.isArray(result[0].vin) - // assert.isArray(result[0].vout) - // } - // }) - - // it(`should throw an error for improper single input`, async (): Promise => { - // try { - // const addr: any = 12345 - - // await bitbox.RawTransactions.decodeRawTransaction(addr) - // assert.equal(true, false, "Unexpected result!") - // } catch (err) { - // assert.include( - // err.message, - // `Input must be a string or array of strings.` - // ) - // } - // }) - - // it(`should throw error on array size rate limit`, async (): Promise => { - // try { - // const data: string[] = [] - // for (let i: number = 0; i < 25; i++) { - // data.push( - // "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" - // ) - // } - - // const result: DecodeRawTransactionResult | DecodeRawTransactionResult[] = await bitbox.RawTransactions.decodeRawTransaction(data) - // assert.equal(true, false, "Unexpected result!") - // } catch (err) { - // assert.hasAnyKeys(err, ["error"]) - // assert.include(err.error, "Array too large") - // } - // }) - // }) - - // describe("#getRawTransaction", (): void => { - // it("should decode a single txid, with concise output", async (): Promise => { - // const txid: string = - // "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" - // const verbose: boolean = false - - // const result: VerboseRawTransactionResult | VerboseRawTransactionResult[] = await bitbox.RawTransactions.getRawTransaction( - // txid, - // verbose - // ) - - // assert.isString(result) - // }) - - // it("should decode a single txid, with verbose output", async (): Promise => { - // const txid: string = - // "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" - // const verbose: boolean = true - - // const result: VerboseRawTransactionResult | VerboseRawTransactionResult[] = await bitbox.RawTransactions.getRawTransaction( - // txid, - // verbose - // ) - - // assert.hasAnyKeys(result, [ - // "hex", - // "txid", - // "hash", - // "size", - // "version", - // "locktime", - // "vin", - // "vout", - // "blockhash", - // "confirmations", - // "time", - // "blocktime" - // ]) - // if (!Array.isArray(result)) { - // assert.isArray(result.vin) - // assert.isArray(result.vout) - - // } - // }) - - // it("should decode an array of txids, with a concise output", async (): Promise => { - // const txid: string[] = [ - // "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", - // "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" - // ] - // const verbose: boolean = false - - // const result: VerboseRawTransactionResult | VerboseRawTransactionResult[] = await bitbox.RawTransactions.getRawTransaction( - // txid, - // verbose - // ) - - // assert.isArray(result) - // if (Array.isArray(result)) { - // assert.isString(result[0]) - // } - // }) - - // it("should decode an array of txids, with a verbose output", async (): Promise => { - // const txid: string[] = [ - // "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", - // "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" - // ] - // const verbose: boolean = true - - // const result: VerboseRawTransactionResult | VerboseRawTransactionResult[] = await bitbox.RawTransactions.getRawTransaction( - // txid, - // verbose - // ) - - // assert.isArray(result) - // if (Array.isArray(result)) { - // assert.hasAnyKeys(result[0], [ - // "hex", - // "txid", - // "hash", - // "size", - // "version", - // "locktime", - // "vin", - // "vout", - // "blockhash", - // "confirmations", - // "time", - // "blocktime" - // ]) - // assert.isArray(result[0].vin) - // assert.isArray(result[0].vout) - // } - // }) - - // it(`should throw error on array size rate limit`, async (): Promise => { - // try { - // const dataMock: string = - // "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" - // const data: string[] = [] - // for (let i: number = 0; i < 25; i++) data.push(dataMock) - - // const result: VerboseRawTransactionResult | VerboseRawTransactionResult[] = await bitbox.RawTransactions.getRawTransaction(data) - - // console.log(`result: ${util.inspect(result)}`) - // assert.equal(true, false, "Unexpected result!") - // } catch (err) { - // assert.hasAnyKeys(err, ["error"]) - // assert.include(err.error, "Array too large") - // } - // }) - // }) - - // describe("#decodeScript", () => { - // it("should decode script for a single hex", async (): Promise => { - // const hex: string = - // "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" - - // const result = await bitbox.RawTransactions.decodeScript(hex) - - // assert.hasAllKeys(result, ["asm", "type", "p2sh"]) - // }) - - // // CT 2/20/19 - Waiting for this PR to be merged complete the test: - // // https://github.com/Bitcoin-com/rest.bitcoin.com/pull/312 - // /* - // it("should decode an array of tx hexes", async () => { - // const hexes = [ - // "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16", - // "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" - // ] - - // const result = await bitbox.RawTransactions.decodeScript(hexes) - // console.log(`result ${JSON.stringify(result, null, 2)}`) - // }) - // */ - // /* - // it(`should throw an error for improper single input`, async () => { - // try { - // const addr = 12345 - - // await bitbox.RawTransactions.decodeRawTransaction(addr) - // assert.equal(true, false, "Unexpected result!") - // } catch (err) { - // //console.log(`err: `, err) - // assert.include( - // err.message, - // `Input must be a string or array of strings.` - // ) - // } - // }) - // */ - // }) - - // /* - // Testing sentRawTransaction isn't really possible with an integration test, - // as the endpoint really needs an e2e test to be properly tested. The tests - // below expect error messages returned from the server, but at least test - // that the server is responding on those endpoints, and responds consistently. - // */ - // describe("sendRawTransaction", () => { - // it("should send a single transaction hex", async (): Promise => { - // try { - // const hex: string = - // "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" - - // await bitbox.RawTransactions.sendRawTransaction(hex) - - // assert.equal(true, false, "Unexpected result!") - // } catch (err) { - // assert.hasAllKeys(err, ["error"]) - // assert.include(err.error, "Missing inputs") - // } - // }) - - // it("should send an array of tx hexes", async (): Promise => { - // try { - // const hexes: string[] = [ - // "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000", - // "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" - // ] - - // const result = await bitbox.RawTransactions.sendRawTransaction(hexes) - // } catch (err) { - // assert.hasAllKeys(err, ["error"]) - // assert.include(err.error, "Missing inputs") - // } - // }) - - // it(`should throw an error for improper single input`, async (): Promise => { - // try { - // const addr: any = 12345 - - // await bitbox.RawTransactions.sendRawTransaction(addr) - // assert.equal(true, false, "Unexpected result!") - // } catch (err) { - // assert.include( - // err.message, - // `Input hex must be a string or array of strings` - // ) - // } - // }) - - // it(`should throw error on array size rate limit`, async (): Promise => { - // try { - // const dataMock: string = - // "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" - // const data: string[] = [] - // for (let i: number = 0; i < 25; i++) data.push(dataMock) - - // await bitbox.RawTransactions.sendRawTransaction(data) - // assert.equal(true, false, "Unexpected result!") - // } catch (err) { - // assert.hasAnyKeys(err, ["error"]) - // assert.include(err.error, "Array too large") - // } - // }) - // }) + describe("#decodeRawTransaction", (): void => { + it("should decode tx for a single hex", async (): Promise => { + const hex: string = + "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" + + const result: DecodeRawTransactionResult | DecodeRawTransactionResult[] = await bitbox.RawTransactions.decodeRawTransaction(hex) + + assert.hasAnyKeys(result, [ + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout" + ]) + if (!Array.isArray(result)) { + assert.isArray(result.vin) + assert.isArray(result.vout) + } + }) + + it("should decode an array of tx hexes", async (): Promise => { + const hexes: string[] = [ + "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000", + "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" + ] + + const result: DecodeRawTransactionResult | DecodeRawTransactionResult[] = await bitbox.RawTransactions.decodeRawTransaction(hexes) + + assert.isArray(result) + if (Array.isArray(result)) { + assert.hasAnyKeys(result[0], [ + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout" + ]) + assert.isArray(result[0].vin) + assert.isArray(result[0].vout) + } + }) + + it(`should throw an error for improper single input`, async (): Promise => { + try { + const addr: any = 12345 + + await bitbox.RawTransactions.decodeRawTransaction(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.include( + err.message, + `Input must be a string or array of strings.` + ) + } + }) + + it(`should throw error on array size rate limit`, async (): Promise => { + try { + const data: string[] = [] + for (let i: number = 0; i < 25; i++) { + data.push( + "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" + ) + } + + const result: DecodeRawTransactionResult | DecodeRawTransactionResult[] = await bitbox.RawTransactions.decodeRawTransaction(data) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) + + describe("#getRawTransaction", (): void => { + it("should decode a single txid, with concise output", async (): Promise => { + const txid: string = + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" + const verbose: boolean = false + + const result: VerboseRawTransactionResult | VerboseRawTransactionResult[] = await bitbox.RawTransactions.getRawTransaction( + txid, + verbose + ) + + assert.isString(result) + }) + + it("should decode a single txid, with verbose output", async (): Promise => { + const txid: string = + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" + const verbose: boolean = true + + const result: VerboseRawTransactionResult | VerboseRawTransactionResult[] = await bitbox.RawTransactions.getRawTransaction( + txid, + verbose + ) + + assert.hasAnyKeys(result, [ + "hex", + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout", + "blockhash", + "confirmations", + "time", + "blocktime" + ]) + if (!Array.isArray(result)) { + assert.isArray(result.vin) + assert.isArray(result.vout) + + } + }) + + it("should decode an array of txids, with a concise output", async (): Promise => { + const txid: string[] = [ + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", + "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" + ] + const verbose: boolean = false + + const result: VerboseRawTransactionResult | VerboseRawTransactionResult[] = await bitbox.RawTransactions.getRawTransaction( + txid, + verbose + ) + + assert.isArray(result) + if (Array.isArray(result)) { + assert.isString(result[0]) + } + }) + + it("should decode an array of txids, with a verbose output", async (): Promise => { + const txid: string[] = [ + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", + "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" + ] + const verbose: boolean = true + + const result: VerboseRawTransactionResult | VerboseRawTransactionResult[] = await bitbox.RawTransactions.getRawTransaction( + txid, + verbose + ) + + assert.isArray(result) + if (Array.isArray(result)) { + assert.hasAnyKeys(result[0], [ + "hex", + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout", + "blockhash", + "confirmations", + "time", + "blocktime" + ]) + assert.isArray(result[0].vin) + assert.isArray(result[0].vout) + } + }) + + it(`should throw error on array size rate limit`, async (): Promise => { + try { + const dataMock: string = + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" + const data: string[] = [] + for (let i: number = 0; i < 25; i++) data.push(dataMock) + + const result: VerboseRawTransactionResult | VerboseRawTransactionResult[] = await bitbox.RawTransactions.getRawTransaction(data) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) + + describe("#decodeScript", () => { + it("should decode script for a single hex", async (): Promise => { + const hex: string = + "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" + + const result = await bitbox.RawTransactions.decodeScript(hex) + + assert.hasAllKeys(result, ["asm", "type", "p2sh"]) + }) + + // CT 2/20/19 - Waiting for this PR to be merged complete the test: + // https://github.com/Bitcoin-com/rest.bitcoin.com/pull/312 + /* + it("should decode an array of tx hexes", async () => { + const hexes = [ + "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16", + "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" + ] + + const result = await bitbox.RawTransactions.decodeScript(hexes) + console.log(`result ${JSON.stringify(result, null, 2)}`) + }) +*/ + /* + it(`should throw an error for improper single input`, async () => { + try { + const addr = 12345 + + await bitbox.RawTransactions.decodeRawTransaction(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input must be a string or array of strings.` + ) + } + }) +*/ + }) + + /* + Testing sentRawTransaction isn't really possible with an integration test, + as the endpoint really needs an e2e test to be properly tested. The tests + below expect error messages returned from the server, but at least test + that the server is responding on those endpoints, and responds consistently. + */ + describe("sendRawTransaction", () => { + it("should send a single transaction hex", async (): Promise => { + try { + const hex: string = + "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" + + await bitbox.RawTransactions.sendRawTransaction(hex) + + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAllKeys(err, ["error"]) + assert.include(err.error, "Missing inputs") + } + }) + + it("should send an array of tx hexes", async (): Promise => { + try { + const hexes: string[] = [ + "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000", + "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" + ] + + const result = await bitbox.RawTransactions.sendRawTransaction(hexes) + } catch (err) { + assert.hasAllKeys(err, ["error"]) + assert.include(err.error, "Missing inputs") + } + }) + + it(`should throw an error for improper single input`, async (): Promise => { + try { + const addr: any = 12345 + + await bitbox.RawTransactions.sendRawTransaction(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.include( + err.message, + `Input hex must be a string or array of strings` + ) + } + }) + + it(`should throw error on array size rate limit`, async (): Promise => { + try { + const dataMock: string = + "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" + const data: string[] = [] + for (let i: number = 0; i < 25; i++) data.push(dataMock) + + await bitbox.RawTransactions.sendRawTransaction(data) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) }) diff --git a/test/unit/Script.ts b/test/unit/Script.ts index 3392e44b..8d702efd 100644 --- a/test/unit/Script.ts +++ b/test/unit/Script.ts @@ -10,452 +10,452 @@ const bitbox: BITBOX = new BITBOX() // TODO: port from require to import syntax const fixtures = require("./fixtures/Script.json") -describe("#Script", (): void => { - describe("#ScriptConstructor", (): void => { - it("should create instance of Script", (): void => { - const script: Script = new Script() - assert.equal(script instanceof Script, true) - }) - }) - - describe("#decode", (): void => { - describe("P2PKH scriptSig", (): void => { - fixtures.decodeScriptSig.forEach((fixture: any): void => { - it(`should decode scriptSig buffer`, (): void => { - const decodedScriptSig: any[] = bitbox.Script.decode( - Buffer.from(fixture.scriptSigHex, "hex") - ) - assert.equal(typeof decodedScriptSig, "object") - }) - - it(`should decode scriptSig buffer to cash address ${ - fixture.cashAddress - }`, (): void => { - const decodedScriptSig: any[] = bitbox.Script.decode( - Buffer.from(fixture.scriptSigHex, "hex") - ) - const address: string = bitbox.HDNode.toCashAddress( - bitbox.ECPair.fromPublicKey(decodedScriptSig[1]) - ) - assert.equal(address, fixture.cashAddress) - }) - - it(`should decode scriptSig buffer to legacy address ${ - fixture.legacyAddress - }`, (): void => { - const decodedScriptSig: any[] = bitbox.Script.decode( - Buffer.from(fixture.scriptSigHex, "hex") - ) - const address: string = bitbox.HDNode.toLegacyAddress( - bitbox.ECPair.fromPublicKey(decodedScriptSig[1]) - ) - assert.equal(address, fixture.legacyAddress) - }) - }) - }) - - describe("P2PKH scriptPubKey", (): void => { - fixtures.decodeScriptPubKey.forEach((fixture: any): void => { - it(`should decode scriptSig buffer`, (): void => { - const decodedScriptPubKey: any[] = bitbox.Script.decode( - Buffer.from(fixture.scriptPubKeyHex, "hex") - ) - assert.equal(decodedScriptPubKey.length, 5) - }) - - it(`should match hashed pubKey ${fixture.pubKeyHex}`, (): void => { - const decodedScriptPubKey: any[] = bitbox.Script.decode( - Buffer.from(fixture.scriptPubKeyHex, "hex") - ) - const data: Buffer = Buffer.from(fixture.pubKeyHex, "hex") - const hash160: Buffer = bitbox.Crypto.hash160(data) - assert.equal(decodedScriptPubKey[2].toString("hex"), hash160.toString("hex")) - }) - }) - }) - }) - - describe("#encode", (): void => { - describe("P2PKH scriptSig", (): void => { - fixtures.encodeScriptSig.forEach((fixture: any): void => { - it(`should encode scriptSig chunks to buffer`, (): void => { - const arr: Buffer[] = [ - Buffer.from(fixture.scriptSigChunks[0], "hex"), - Buffer.from(fixture.scriptSigChunks[1], "hex") - ] - const encodedScriptSig: any = bitbox.Script.encode(arr) - assert.equal(typeof encodedScriptSig, "object") - }) - }) - }) - - describe("P2PKH scriptPubKey", (): void => { - fixtures.encodeScriptPubKey.forEach((fixture: any): void => { - it(`should encode scriptPubKey buffer`, (): void => { - const decodedScriptPubKey: any[] = bitbox.Script.decode( - Buffer.from(fixture.scriptPubKeyHex, "hex") - ) - const compiledScriptPubKey: any = bitbox.Script.encode(decodedScriptPubKey) - assert.equal( - compiledScriptPubKey.toString("hex"), - fixture.scriptPubKeyHex - ) - }) - }) - }) - }) - - describe("#toASM", (): void => { - describe("P2PKH scriptSig", (): void => { - fixtures.scriptSigToASM.forEach((fixture: any): void => { - it(`should encode scriptSig buffer to ${fixture.asm}`, (): void => { - const arr: Buffer[] = [ - Buffer.from(fixture.scriptSigChunks[0], "hex"), - Buffer.from(fixture.scriptSigChunks[1], "hex") - ] - const compiledScriptSig: any = bitbox.Script.encode(arr) - const asm: string = bitbox.Script.toASM(compiledScriptSig) - assert.equal(asm, fixture.asm) - }) - }) - }) - - describe("P2PKH scriptPubKey", (): void => { - fixtures.scriptPubKeyToASM.forEach((fixture: any): void => { - it(`should compile scriptPubKey buffer to ${fixture.asm}`, (): void => { - const asm: string = bitbox.Script.toASM( - Buffer.from(fixture.scriptPubKeyHex, "hex") - ) - assert.equal(asm, fixture.asm) - }) - }) - }) - }) - - describe("#fromASM", (): void => { - describe("P2PKH scriptSig", (): void => { - fixtures.scriptSigFromASM.forEach((fixture: any): void => { - it(`should decode scriptSig asm to buffer`, (): void => { - const buf: Buffer = bitbox.Script.fromASM(fixture.asm) - assert.equal(typeof buf, "object") - }) - }) - }) - - describe("P2PKH scriptPubKey", (): void => { - fixtures.scriptPubKeyFromASM.forEach((fixture: any): void => { - it(`should decode scriptPubKey asm to buffer`, (): void => { - const buf: Buffer = bitbox.Script.fromASM(fixture.asm) - assert.equal(typeof buf, "object") - }) - }) - }) - }) - - describe("#OPCodes", (): void => { - for (const opcode in fixtures.opcodes) { - it(`should have OP Code ${opcode}`, (): void => { - // @ts-ignore - assert.equal(bitbox.Script.opcodes[opcode], fixtures.opcodes[opcode]) - }) - } - }) - - describe("#classifyInput", (): void => { - fixtures.classifyInput.forEach((fixture: any): void => { - it(`should classify input type ${fixture.type}`, (): void => { - const type: string = bitbox.Script.classifyInput( - bitbox.Script.fromASM(fixture.script) - ) - assert.equal(type, fixture.type) - }) - }) - }) - - describe("#classifyOutput", (): void => { - fixtures.classifyOutput.forEach((fixture: any): void => { - it(`should classify ouput type ${fixture.type}`, (): void => { - const type: string = bitbox.Script.classifyOutput( - bitbox.Script.fromASM(fixture.script) - ) - assert.equal(type, fixture.type) - }) - }) - }) - - describe("#nullDataTemplate", (): void => { - fixtures.nullDataTemplate.forEach((fixture: any): void => { - it(`should encode nulldata output`, (): void => { - const buf: Buffer = bitbox.Script.nullData.output.encode( - Buffer.from(`${fixture.data}`, "ascii") - ) - assert.equal(buf.toString("hex"), fixture.hex) - }) - - it(`should decode nulldata output`, (): void => { - const buf: Buffer = bitbox.Script.nullData.output.decode( - Buffer.from(`${fixture.hex}`, "hex") - ) - assert.equal(buf.toString("ascii"), fixture.data) - }) - - it(`should confirm correctly formatted nulldata output`, (): void => { - const buf: Buffer = bitbox.Script.nullData.output.encode( - Buffer.from(`${fixture.data}`, "ascii") - ) - const valid: boolean = bitbox.Script.nullData.output.check(buf) - assert.equal(valid, true) - }) - }) - }) - - describe("#pubKeyTemplate", (): void => { - describe("#pubKeyInputTemplate", (): void => { - fixtures.pubKeyInputTemplate.forEach((fixture: any): void => { - it(`should encode pubKey input`, (): void => { - const buf: Buffer = bitbox.Script.pubKey.input.encode( - Buffer.from(fixture.signature, "hex") - ) - assert.equal(buf.toString("hex"), fixture.hex) - }) - - it(`should decode pubKey input`, (): void => { - const buf: Buffer = bitbox.Script.pubKey.input.decode( - Buffer.from(fixture.hex, "hex") - ) - assert.equal(buf.toString("hex"), fixture.signature) - }) - - it(`should confirm correctly formatted pubKeyHash input`, (): void => { - const buf: Buffer = bitbox.Script.pubKey.input.encode( - Buffer.from(fixture.signature, "hex") - ) - const valid: boolean = bitbox.Script.pubKey.input.check(buf) - assert.equal(valid, true) - }) - }) - }) - - describe("#pubKeyOutputTemplate", (): void => { - fixtures.pubKeyOutputTemplate.forEach((fixture: any): void => { - it(`should encode pubKey output`, (): void => { - const buf: Buffer = bitbox.Script.pubKey.output.encode( - Buffer.from(fixture.pubKey, "hex") - ) - assert.equal(buf.toString("hex"), fixture.hex) - }) - - it(`should decode pubKey output`, (): void => { - const buf: Buffer = bitbox.Script.pubKey.output.decode( - Buffer.from(`${fixture.hex}`, "hex") - ) - assert.equal(buf.toString("hex"), fixture.pubKey) - }) - - it(`should confirm correctly formatted pubKey output`, (): void => { - const buf: Buffer = bitbox.Script.pubKey.output.encode( - Buffer.from(fixture.pubKey, "hex") - ) - const valid: boolean = bitbox.Script.pubKey.output.check(buf) - assert.equal(valid, true) - }) - }) - }) - }) - - describe("#pubKeyHashTemplate", (): void => { - describe("#pubKeyHashInputTemplate", (): void => { - fixtures.pubKeyHashInputTemplate.forEach((fixture: any): void => { - it(`should encode pubKeyHash input`, (): void => { - const buf: Buffer = bitbox.Script.pubKeyHash.input.encode( - Buffer.from(fixture.signature, "hex"), - Buffer.from(fixture.pubKey, "hex") - ) - assert.equal(buf.toString("hex"), fixture.hex) - }) - - it(`should decode pubKeyHash input signature`, (): void => { - const buf: { - signature: Buffer - pubKey: Buffer - } = bitbox.Script.pubKeyHash.input.decode( - Buffer.from(fixture.hex, "hex") - ) - assert.equal(buf.signature.toString("hex"), fixture.signature) - }) - - it(`should decode pubKeyHash input pubkey`, (): void => { - const buf: { - signature: Buffer - pubKey: Buffer - } = bitbox.Script.pubKeyHash.input.decode( - Buffer.from(fixture.hex, "hex") - ) - assert.equal(buf.pubKey.toString("hex"), fixture.pubKey) - }) - - it(`should confirm correctly formatted pubKeyHash input`, (): void => { - const buf: Buffer = bitbox.Script.pubKeyHash.input.encode( - Buffer.from(fixture.signature, "hex"), - Buffer.from(fixture.pubKey, "hex") - ) - const valid: boolean = bitbox.Script.pubKeyHash.input.check(buf) - assert.equal(valid, true) - }) - }) - }) - - describe("#pubKeyHashOutputTemplate", (): void => { - fixtures.pubKeyHashOutputTemplate.forEach((fixture: any): void => { - const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) - const identifier: Buffer = bitbox.HDNode.toIdentifier(node) - it(`should encode pubKeyHash output`, (): void => { - const buf: Buffer = bitbox.Script.pubKeyHash.output.encode(identifier) - assert.equal(buf.toString("hex"), fixture.hex) - }) - - it(`should decode pubKeyHash output`, (): void => { - const buf: Buffer = bitbox.Script.pubKeyHash.output.decode( - Buffer.from(`${fixture.hex}`, "hex") - ) - assert.equal(buf.toString("hex"), identifier.toString("hex")) - }) - - it(`should confirm correctly formatted pubKeyHash output`, (): void => { - const buf: Buffer = bitbox.Script.pubKeyHash.output.encode(identifier) - const valid: boolean = bitbox.Script.pubKeyHash.output.check(buf) - assert.equal(valid, true) - }) - }) - }) - }) - - describe("#multisigTemplate", (): void => { - describe("#multisigInputTemplate", (): void => { - fixtures.multisigInputTemplate.forEach((fixture: any): void => { - it(`should encode multisig input`, (): void => { - const signatures: any[] = fixture.signatures.map((signature: any) => - signature - ? Buffer.from(signature, "hex") - : bitbox.Script.opcodes.OP_0 - ) - - const buf: Buffer = bitbox.Script.multisig.input.encode(signatures) - assert.equal(buf.toString("hex"), fixture.hex) - }) - - it(`should decode multisig input`, (): void => { - const buf: Buffer[] = bitbox.Script.multisig.input.decode( - Buffer.from(fixture.hex, "hex") - ) - assert.equal(buf[0].toString("hex"), fixture.signatures[0]) - }) - - it(`should confirm correctly formatted multisig input`, (): void => { - const signatures: any[] = fixture.signatures.map((signature: any) => - signature - ? Buffer.from(signature, "hex") - : bitbox.Script.opcodes.OP_0 - ) - - const buf: Buffer = bitbox.Script.multisig.input.encode(signatures) - const valid: boolean = bitbox.Script.multisig.input.check(buf) - assert.equal(valid, true) - }) - }) - }) - - describe("#multisigOutputTemplate", (): void => { - fixtures.multisigOutputTemplate.forEach((fixture: any): void => { - it(`should encode multisig output`, (): void => { - const pubKeys: Buffer[] = fixture.pubKeys.map((p: string) => Buffer.from(p, "hex")) - const m: number = pubKeys.length - const buf: Buffer = bitbox.Script.multisig.output.encode(m, pubKeys) - - assert.equal(buf.toString("hex"), fixture.hex) - }) - - it(`should decode multisig output`, (): void => { - const output: any = bitbox.Script.multisig.output.decode( - Buffer.from(`${fixture.hex}`, "hex") - ) - assert.equal(output.m, fixture.pubKeys.length) - }) - - it(`should confirm correctly formatted multisig output`, (): void => { - const pubKeys: Buffer[] = fixture.pubKeys.map((p: any) => Buffer.from(p, "hex")) - const m: number = pubKeys.length - const buf: Buffer = bitbox.Script.multisig.output.encode(m, pubKeys) - const valid: boolean = bitbox.Script.multisig.output.check(buf) - assert.equal(valid, true) - }) - }) - }) - }) - - describe("#scriptHashTemplate", (): void => { - describe("#scriptHashInputTemplate", (): void => { - fixtures.scriptHashInputTemplate.forEach((fixture: any): void => { - it(`should encode scriptHash input`, (): void => { - const buf: Buffer = bitbox.Script.scriptHash.input.encode( - bitbox.Script.fromASM(fixture.redeemScriptSig), - bitbox.Script.fromASM(fixture.redeemScript) - ) - assert.equal(buf.toString("hex"), fixture.hex) - }) - - it(`should decode scriptHash input`, (): void => { - const redeemScriptSig: any = bitbox.Script.fromASM(fixture.redeemScriptSig) - const redeemScript: any = bitbox.Script.fromASM(fixture.redeemScript) - assert.deepEqual( - bitbox.Script.scriptHash.input.decode( - Buffer.from(fixture.hex, "hex") - ), - { - redeemScriptSig: redeemScriptSig, - redeemScript: redeemScript - } - ) - }) - - it(`should confirm correctly formatted scriptHash input`, (): void => { - const buf: Buffer = bitbox.Script.scriptHash.input.encode( - bitbox.Script.fromASM(fixture.redeemScriptSig), - bitbox.Script.fromASM(fixture.redeemScript) - ) - const valid: boolean = bitbox.Script.scriptHash.input.check(buf) - assert.equal(valid, true) - }) - }) - }) - - describe("#scriptHashOutputTemplate", (): void => { - fixtures.scriptHashOutputTemplate.forEach((fixture: any): void => { - it(`should encode scriptHash output`, (): void => { - const redeemScript: any = bitbox.Script.fromASM(fixture.output) - const scriptHash: Buffer = bitbox.Crypto.hash160(redeemScript) - const buf: Buffer = bitbox.Script.scriptHash.output.encode(scriptHash) - - assert.equal(buf.toString("hex"), fixture.hex) - }) - - it(`should decode scriptHash output`, (): void => { - const redeemScript: any = bitbox.Script.fromASM(fixture.output) - const scriptHash: Buffer = bitbox.Crypto.hash160(redeemScript) - const buf: Buffer = bitbox.Script.scriptHash.output.decode( - Buffer.from(`${fixture.hex}`, "hex") - ) - assert.deepEqual(buf, scriptHash) - }) - - it(`should confirm correctly formatted scriptHash output`, (): void => { - const redeemScript: any = bitbox.Script.fromASM(fixture.output) - const scriptHash: Buffer = bitbox.Crypto.hash160(redeemScript) - const buf: Buffer = bitbox.Script.scriptHash.output.encode(scriptHash) - const valid: boolean = bitbox.Script.scriptHash.output.check(buf) - assert.equal(valid, true) - }) - }) - }) - }) -}) +// describe("#Script", (): void => { +// describe("#ScriptConstructor", (): void => { +// it("should create instance of Script", (): void => { +// const script: Script = new Script() +// assert.equal(script instanceof Script, true) +// }) +// }) + +// describe("#decode", (): void => { +// describe("P2PKH scriptSig", (): void => { +// fixtures.decodeScriptSig.forEach((fixture: any): void => { +// it(`should decode scriptSig buffer`, (): void => { +// const decodedScriptSig: any[] = bitbox.Script.decode( +// Buffer.from(fixture.scriptSigHex, "hex") +// ) +// assert.equal(typeof decodedScriptSig, "object") +// }) + +// it(`should decode scriptSig buffer to cash address ${ +// fixture.cashAddress +// }`, (): void => { +// const decodedScriptSig: any[] = bitbox.Script.decode( +// Buffer.from(fixture.scriptSigHex, "hex") +// ) +// const address: string = bitbox.HDNode.toCashAddress( +// bitbox.ECPair.fromPublicKey(decodedScriptSig[1]) +// ) +// assert.equal(address, fixture.cashAddress) +// }) + +// it(`should decode scriptSig buffer to legacy address ${ +// fixture.legacyAddress +// }`, (): void => { +// const decodedScriptSig: any[] = bitbox.Script.decode( +// Buffer.from(fixture.scriptSigHex, "hex") +// ) +// const address: string = bitbox.HDNode.toLegacyAddress( +// bitbox.ECPair.fromPublicKey(decodedScriptSig[1]) +// ) +// assert.equal(address, fixture.legacyAddress) +// }) +// }) +// }) + +// describe("P2PKH scriptPubKey", (): void => { +// fixtures.decodeScriptPubKey.forEach((fixture: any): void => { +// it(`should decode scriptSig buffer`, (): void => { +// const decodedScriptPubKey: any[] = bitbox.Script.decode( +// Buffer.from(fixture.scriptPubKeyHex, "hex") +// ) +// assert.equal(decodedScriptPubKey.length, 5) +// }) + +// it(`should match hashed pubKey ${fixture.pubKeyHex}`, (): void => { +// const decodedScriptPubKey: any[] = bitbox.Script.decode( +// Buffer.from(fixture.scriptPubKeyHex, "hex") +// ) +// const data: Buffer = Buffer.from(fixture.pubKeyHex, "hex") +// const hash160: Buffer = bitbox.Crypto.hash160(data) +// assert.equal(decodedScriptPubKey[2].toString("hex"), hash160.toString("hex")) +// }) +// }) +// }) +// }) + +// describe("#encode", (): void => { +// describe("P2PKH scriptSig", (): void => { +// fixtures.encodeScriptSig.forEach((fixture: any): void => { +// it(`should encode scriptSig chunks to buffer`, (): void => { +// const arr: Buffer[] = [ +// Buffer.from(fixture.scriptSigChunks[0], "hex"), +// Buffer.from(fixture.scriptSigChunks[1], "hex") +// ] +// const encodedScriptSig: any = bitbox.Script.encode(arr) +// assert.equal(typeof encodedScriptSig, "object") +// }) +// }) +// }) + +// describe("P2PKH scriptPubKey", (): void => { +// fixtures.encodeScriptPubKey.forEach((fixture: any): void => { +// it(`should encode scriptPubKey buffer`, (): void => { +// const decodedScriptPubKey: any[] = bitbox.Script.decode( +// Buffer.from(fixture.scriptPubKeyHex, "hex") +// ) +// const compiledScriptPubKey: any = bitbox.Script.encode(decodedScriptPubKey) +// assert.equal( +// compiledScriptPubKey.toString("hex"), +// fixture.scriptPubKeyHex +// ) +// }) +// }) +// }) +// }) + +// describe("#toASM", (): void => { +// describe("P2PKH scriptSig", (): void => { +// fixtures.scriptSigToASM.forEach((fixture: any): void => { +// it(`should encode scriptSig buffer to ${fixture.asm}`, (): void => { +// const arr: Buffer[] = [ +// Buffer.from(fixture.scriptSigChunks[0], "hex"), +// Buffer.from(fixture.scriptSigChunks[1], "hex") +// ] +// const compiledScriptSig: any = bitbox.Script.encode(arr) +// const asm: string = bitbox.Script.toASM(compiledScriptSig) +// assert.equal(asm, fixture.asm) +// }) +// }) +// }) + +// describe("P2PKH scriptPubKey", (): void => { +// fixtures.scriptPubKeyToASM.forEach((fixture: any): void => { +// it(`should compile scriptPubKey buffer to ${fixture.asm}`, (): void => { +// const asm: string = bitbox.Script.toASM( +// Buffer.from(fixture.scriptPubKeyHex, "hex") +// ) +// assert.equal(asm, fixture.asm) +// }) +// }) +// }) +// }) + +// describe("#fromASM", (): void => { +// describe("P2PKH scriptSig", (): void => { +// fixtures.scriptSigFromASM.forEach((fixture: any): void => { +// it(`should decode scriptSig asm to buffer`, (): void => { +// const buf: Buffer = bitbox.Script.fromASM(fixture.asm) +// assert.equal(typeof buf, "object") +// }) +// }) +// }) + +// describe("P2PKH scriptPubKey", (): void => { +// fixtures.scriptPubKeyFromASM.forEach((fixture: any): void => { +// it(`should decode scriptPubKey asm to buffer`, (): void => { +// const buf: Buffer = bitbox.Script.fromASM(fixture.asm) +// assert.equal(typeof buf, "object") +// }) +// }) +// }) +// }) + +// describe("#OPCodes", (): void => { +// for (const opcode in fixtures.opcodes) { +// it(`should have OP Code ${opcode}`, (): void => { +// // @ts-ignore +// assert.equal(bitbox.Script.opcodes[opcode], fixtures.opcodes[opcode]) +// }) +// } +// }) + +// describe("#classifyInput", (): void => { +// fixtures.classifyInput.forEach((fixture: any): void => { +// it(`should classify input type ${fixture.type}`, (): void => { +// const type: string = bitbox.Script.classifyInput( +// bitbox.Script.fromASM(fixture.script) +// ) +// assert.equal(type, fixture.type) +// }) +// }) +// }) + +// describe("#classifyOutput", (): void => { +// fixtures.classifyOutput.forEach((fixture: any): void => { +// it(`should classify ouput type ${fixture.type}`, (): void => { +// const type: string = bitbox.Script.classifyOutput( +// bitbox.Script.fromASM(fixture.script) +// ) +// assert.equal(type, fixture.type) +// }) +// }) +// }) + +// describe("#nullDataTemplate", (): void => { +// fixtures.nullDataTemplate.forEach((fixture: any): void => { +// it(`should encode nulldata output`, (): void => { +// const buf: Buffer = bitbox.Script.nullData.output.encode( +// Buffer.from(`${fixture.data}`, "ascii") +// ) +// assert.equal(buf.toString("hex"), fixture.hex) +// }) + +// it(`should decode nulldata output`, (): void => { +// const buf: Buffer = bitbox.Script.nullData.output.decode( +// Buffer.from(`${fixture.hex}`, "hex") +// ) +// assert.equal(buf.toString("ascii"), fixture.data) +// }) + +// it(`should confirm correctly formatted nulldata output`, (): void => { +// const buf: Buffer = bitbox.Script.nullData.output.encode( +// Buffer.from(`${fixture.data}`, "ascii") +// ) +// const valid: boolean = bitbox.Script.nullData.output.check(buf) +// assert.equal(valid, true) +// }) +// }) +// }) + +// describe("#pubKeyTemplate", (): void => { +// describe("#pubKeyInputTemplate", (): void => { +// fixtures.pubKeyInputTemplate.forEach((fixture: any): void => { +// it(`should encode pubKey input`, (): void => { +// const buf: Buffer = bitbox.Script.pubKey.input.encode( +// Buffer.from(fixture.signature, "hex") +// ) +// assert.equal(buf.toString("hex"), fixture.hex) +// }) + +// it(`should decode pubKey input`, (): void => { +// const buf: Buffer = bitbox.Script.pubKey.input.decode( +// Buffer.from(fixture.hex, "hex") +// ) +// assert.equal(buf.toString("hex"), fixture.signature) +// }) + +// it(`should confirm correctly formatted pubKeyHash input`, (): void => { +// const buf: Buffer = bitbox.Script.pubKey.input.encode( +// Buffer.from(fixture.signature, "hex") +// ) +// const valid: boolean = bitbox.Script.pubKey.input.check(buf) +// assert.equal(valid, true) +// }) +// }) +// }) + +// describe("#pubKeyOutputTemplate", (): void => { +// fixtures.pubKeyOutputTemplate.forEach((fixture: any): void => { +// it(`should encode pubKey output`, (): void => { +// const buf: Buffer = bitbox.Script.pubKey.output.encode( +// Buffer.from(fixture.pubKey, "hex") +// ) +// assert.equal(buf.toString("hex"), fixture.hex) +// }) + +// it(`should decode pubKey output`, (): void => { +// const buf: Buffer = bitbox.Script.pubKey.output.decode( +// Buffer.from(`${fixture.hex}`, "hex") +// ) +// assert.equal(buf.toString("hex"), fixture.pubKey) +// }) + +// it(`should confirm correctly formatted pubKey output`, (): void => { +// const buf: Buffer = bitbox.Script.pubKey.output.encode( +// Buffer.from(fixture.pubKey, "hex") +// ) +// const valid: boolean = bitbox.Script.pubKey.output.check(buf) +// assert.equal(valid, true) +// }) +// }) +// }) +// }) + +// describe("#pubKeyHashTemplate", (): void => { +// describe("#pubKeyHashInputTemplate", (): void => { +// fixtures.pubKeyHashInputTemplate.forEach((fixture: any): void => { +// it(`should encode pubKeyHash input`, (): void => { +// const buf: Buffer = bitbox.Script.pubKeyHash.input.encode( +// Buffer.from(fixture.signature, "hex"), +// Buffer.from(fixture.pubKey, "hex") +// ) +// assert.equal(buf.toString("hex"), fixture.hex) +// }) + +// it(`should decode pubKeyHash input signature`, (): void => { +// const buf: { +// signature: Buffer +// pubKey: Buffer +// } = bitbox.Script.pubKeyHash.input.decode( +// Buffer.from(fixture.hex, "hex") +// ) +// assert.equal(buf.signature.toString("hex"), fixture.signature) +// }) + +// it(`should decode pubKeyHash input pubkey`, (): void => { +// const buf: { +// signature: Buffer +// pubKey: Buffer +// } = bitbox.Script.pubKeyHash.input.decode( +// Buffer.from(fixture.hex, "hex") +// ) +// assert.equal(buf.pubKey.toString("hex"), fixture.pubKey) +// }) + +// it(`should confirm correctly formatted pubKeyHash input`, (): void => { +// const buf: Buffer = bitbox.Script.pubKeyHash.input.encode( +// Buffer.from(fixture.signature, "hex"), +// Buffer.from(fixture.pubKey, "hex") +// ) +// const valid: boolean = bitbox.Script.pubKeyHash.input.check(buf) +// assert.equal(valid, true) +// }) +// }) +// }) + +// describe("#pubKeyHashOutputTemplate", (): void => { +// fixtures.pubKeyHashOutputTemplate.forEach((fixture: any): void => { +// const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) +// const identifier: Buffer = bitbox.HDNode.toIdentifier(node) +// it(`should encode pubKeyHash output`, (): void => { +// const buf: Buffer = bitbox.Script.pubKeyHash.output.encode(identifier) +// assert.equal(buf.toString("hex"), fixture.hex) +// }) + +// it(`should decode pubKeyHash output`, (): void => { +// const buf: Buffer = bitbox.Script.pubKeyHash.output.decode( +// Buffer.from(`${fixture.hex}`, "hex") +// ) +// assert.equal(buf.toString("hex"), identifier.toString("hex")) +// }) + +// it(`should confirm correctly formatted pubKeyHash output`, (): void => { +// const buf: Buffer = bitbox.Script.pubKeyHash.output.encode(identifier) +// const valid: boolean = bitbox.Script.pubKeyHash.output.check(buf) +// assert.equal(valid, true) +// }) +// }) +// }) +// }) + +// describe("#multisigTemplate", (): void => { +// describe("#multisigInputTemplate", (): void => { +// fixtures.multisigInputTemplate.forEach((fixture: any): void => { +// it(`should encode multisig input`, (): void => { +// const signatures: any[] = fixture.signatures.map((signature: any) => +// signature +// ? Buffer.from(signature, "hex") +// : bitbox.Script.opcodes.OP_0 +// ) + +// const buf: Buffer = bitbox.Script.multisig.input.encode(signatures) +// assert.equal(buf.toString("hex"), fixture.hex) +// }) + +// it(`should decode multisig input`, (): void => { +// const buf: Buffer[] = bitbox.Script.multisig.input.decode( +// Buffer.from(fixture.hex, "hex") +// ) +// assert.equal(buf[0].toString("hex"), fixture.signatures[0]) +// }) + +// it(`should confirm correctly formatted multisig input`, (): void => { +// const signatures: any[] = fixture.signatures.map((signature: any) => +// signature +// ? Buffer.from(signature, "hex") +// : bitbox.Script.opcodes.OP_0 +// ) + +// const buf: Buffer = bitbox.Script.multisig.input.encode(signatures) +// const valid: boolean = bitbox.Script.multisig.input.check(buf) +// assert.equal(valid, true) +// }) +// }) +// }) + +// describe("#multisigOutputTemplate", (): void => { +// fixtures.multisigOutputTemplate.forEach((fixture: any): void => { +// it(`should encode multisig output`, (): void => { +// const pubKeys: Buffer[] = fixture.pubKeys.map((p: string) => Buffer.from(p, "hex")) +// const m: number = pubKeys.length +// const buf: Buffer = bitbox.Script.multisig.output.encode(m, pubKeys) + +// assert.equal(buf.toString("hex"), fixture.hex) +// }) + +// it(`should decode multisig output`, (): void => { +// const output: any = bitbox.Script.multisig.output.decode( +// Buffer.from(`${fixture.hex}`, "hex") +// ) +// assert.equal(output.m, fixture.pubKeys.length) +// }) + +// it(`should confirm correctly formatted multisig output`, (): void => { +// const pubKeys: Buffer[] = fixture.pubKeys.map((p: any) => Buffer.from(p, "hex")) +// const m: number = pubKeys.length +// const buf: Buffer = bitbox.Script.multisig.output.encode(m, pubKeys) +// const valid: boolean = bitbox.Script.multisig.output.check(buf) +// assert.equal(valid, true) +// }) +// }) +// }) +// }) + +// describe("#scriptHashTemplate", (): void => { +// describe("#scriptHashInputTemplate", (): void => { +// fixtures.scriptHashInputTemplate.forEach((fixture: any): void => { +// it(`should encode scriptHash input`, (): void => { +// const buf: Buffer = bitbox.Script.scriptHash.input.encode( +// bitbox.Script.fromASM(fixture.redeemScriptSig), +// bitbox.Script.fromASM(fixture.redeemScript) +// ) +// assert.equal(buf.toString("hex"), fixture.hex) +// }) + +// it(`should decode scriptHash input`, (): void => { +// const redeemScriptSig: any = bitbox.Script.fromASM(fixture.redeemScriptSig) +// const redeemScript: any = bitbox.Script.fromASM(fixture.redeemScript) +// assert.deepEqual( +// bitbox.Script.scriptHash.input.decode( +// Buffer.from(fixture.hex, "hex") +// ), +// { +// redeemScriptSig: redeemScriptSig, +// redeemScript: redeemScript +// } +// ) +// }) + +// it(`should confirm correctly formatted scriptHash input`, (): void => { +// const buf: Buffer = bitbox.Script.scriptHash.input.encode( +// bitbox.Script.fromASM(fixture.redeemScriptSig), +// bitbox.Script.fromASM(fixture.redeemScript) +// ) +// const valid: boolean = bitbox.Script.scriptHash.input.check(buf) +// assert.equal(valid, true) +// }) +// }) +// }) + +// describe("#scriptHashOutputTemplate", (): void => { +// fixtures.scriptHashOutputTemplate.forEach((fixture: any): void => { +// it(`should encode scriptHash output`, (): void => { +// const redeemScript: any = bitbox.Script.fromASM(fixture.output) +// const scriptHash: Buffer = bitbox.Crypto.hash160(redeemScript) +// const buf: Buffer = bitbox.Script.scriptHash.output.encode(scriptHash) + +// assert.equal(buf.toString("hex"), fixture.hex) +// }) + +// it(`should decode scriptHash output`, (): void => { +// const redeemScript: any = bitbox.Script.fromASM(fixture.output) +// const scriptHash: Buffer = bitbox.Crypto.hash160(redeemScript) +// const buf: Buffer = bitbox.Script.scriptHash.output.decode( +// Buffer.from(`${fixture.hex}`, "hex") +// ) +// assert.deepEqual(buf, scriptHash) +// }) + +// it(`should confirm correctly formatted scriptHash output`, (): void => { +// const redeemScript: any = bitbox.Script.fromASM(fixture.output) +// const scriptHash: Buffer = bitbox.Crypto.hash160(redeemScript) +// const buf: Buffer = bitbox.Script.scriptHash.output.encode(scriptHash) +// const valid: boolean = bitbox.Script.scriptHash.output.check(buf) +// assert.equal(valid, true) +// }) +// }) +// }) +// }) +// }) diff --git a/test/unit/Transaction.ts b/test/unit/Transaction.ts index bc6cb641..a1068d37 100644 --- a/test/unit/Transaction.ts +++ b/test/unit/Transaction.ts @@ -22,62 +22,62 @@ describe("#Transaction", (): void => { }) }) - // describe(`#details`, (): void => { - // it(`should GET details for a given txid`, async () => { - // const txid: string = - // "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" - // const result: TxnDetailsResult | TxnDetailsResult[] = await bitbox.Transaction.details(txid) - // assert.hasAllKeys(result, [ - // "txid", - // "version", - // "locktime", - // "vin", - // "vout", - // "blockhash", - // "blockheight", - // "confirmations", - // "time", - // "blocktime", - // "isCoinBase", - // "valueOut", - // "size" - // ]) - // }) + describe(`#details`, (): void => { + it(`should GET details for a given txid`, async () => { + const txid: string = + "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" + const result: TxnDetailsResult | TxnDetailsResult[] = await bitbox.Transaction.details(txid) + assert.hasAllKeys(result, [ + "txid", + "version", + "locktime", + "vin", + "vout", + "blockhash", + "blockheight", + "confirmations", + "time", + "blocktime", + "isCoinBase", + "valueOut", + "size" + ]) + }) - // it(`should GET details for an array of txids`, async () => { - // const txids: string[] = [ - // "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33", - // "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" - // ] - // const result: TxnDetailsResult | TxnDetailsResult[] = await bitbox.Transaction.details(txids) - // assert.isArray(result) - // }) + it(`should GET details for an array of txids`, async () => { + const txids: string[] = [ + "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33", + "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" + ] + const result: TxnDetailsResult | TxnDetailsResult[] = await bitbox.Transaction.details(txids) + assert.isArray(result) + }) - // it(`should throw an error for improper single input`, async () => { - // try { - // const txid: any = 12345 - // await bitbox.Transaction.details(txid) - // assert.equal(true, false, "Unexpected result!") - // } catch (err) { - // assert.include( - // err.message, - // `Input txid must be a string or array of strings` - // ) - // } - // }) + it(`should throw an error for improper single input`, async () => { + try { + const txid: any = 12345 + await bitbox.Transaction.details(txid) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.include( + err.message, + `Input txid must be a string or array of strings` + ) + } + }) - // it(`should throw error on array size rate limit`, async () => { - // try { - // const dataMock: string = - // "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" - // const data: string[] = [] - // for (let i: number = 0; i < 25; i++) data.push(dataMock) - // await bitbox.Transaction.details(data) - // assert.equal(false, false, "Unexpected result!") - // } catch (err) { - // assert.hasAnyKeys(err, ["error"]) - // assert.include(err.error, "Array too large") - // } - // }) - // }) + it(`should throw error on array size rate limit`, async () => { + try { + const dataMock: string = + "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" + const data: string[] = [] + for (let i: number = 0; i < 25; i++) data.push(dataMock) + await bitbox.Transaction.details(data) + assert.equal(false, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) }) diff --git a/test/unit/Util.ts b/test/unit/Util.ts index 86a56698..fd2756a0 100644 --- a/test/unit/Util.ts +++ b/test/unit/Util.ts @@ -29,92 +29,92 @@ describe("#Util", (): void => { }) }) - // describe(`#validateAddress`, (): void => { - // it(`should return false for testnet addr on mainnet`, async () => { - // const address: string = `bchtest:qqqk4y6lsl5da64sg5qc3xezmplyu5kmpyz2ysaa5y` - - // const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) - - // assert.hasAllKeys(result, ["isvalid"]) - // if (!Array.isArray(result)) { - // assert.equal(result.isvalid, false) - // } - // }) - - // it(`should return false for bad address`, async () => { - // const address: string = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peu` - // const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) - - // assert.hasAllKeys(result, ["isvalid"]) - // if (!Array.isArray(result)) { - // assert.equal(result.isvalid, false) - // } - // }) - - // it(`should validate valid address`, async () => { - // const address: string = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` - // const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) - - // assert.hasAllKeys(result, [ - // "isvalid", - // "address", - // "scriptPubKey", - // "ismine", - // "iswatchonly", - // "isscript" - // ]) - // if (!Array.isArray(result)) { - // assert.equal(result.isvalid, true) - // } - // }) - - // it(`should validate an array of addresses`, async () => { - // const address: string[] = [ - // `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z`, - // `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` - // ] - - // const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) - - // assert.isArray(result) - // if (Array.isArray(result)) { - // assert.hasAllKeys(result[0], [ - // "isvalid", - // "address", - // "scriptPubKey", - // "ismine", - // "iswatchonly", - // "isscript" - // ]) - // } - // }) - - // it(`should throw an error for improper single input`, async () => { - // try { - // const address: any = 15432 - - // await bitbox.Util.validateAddress(address) - // assert.equal(true, false, "Unexpected result!") - // } catch (err) { - // assert.include( - // err.message, - // `Input must be a string or array of strings.` - // ) - // } - // }) - - // it(`should throw error on array size rate limit`, async () => { - // try { - // const dataMock: string = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` - // const data: string[] = [] - // for (let i: number = 0; i < 25; i++) data.push(dataMock) - - // const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(data) - // assert.equal(true, false, "Unexpected result!") - // } catch (err) { - // assert.hasAnyKeys(err, ["error"]) - // assert.include(err.error, "Array too large") - // } - // }) - // }) + describe(`#validateAddress`, (): void => { + it(`should return false for testnet addr on mainnet`, async () => { + const address: string = `bchtest:qqqk4y6lsl5da64sg5qc3xezmplyu5kmpyz2ysaa5y` + + const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) + + assert.hasAllKeys(result, ["isvalid"]) + if (!Array.isArray(result)) { + assert.equal(result.isvalid, false) + } + }) + + it(`should return false for bad address`, async () => { + const address: string = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peu` + const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) + + assert.hasAllKeys(result, ["isvalid"]) + if (!Array.isArray(result)) { + assert.equal(result.isvalid, false) + } + }) + + it(`should validate valid address`, async () => { + const address: string = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` + const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) + + assert.hasAllKeys(result, [ + "isvalid", + "address", + "scriptPubKey", + "ismine", + "iswatchonly", + "isscript" + ]) + if (!Array.isArray(result)) { + assert.equal(result.isvalid, true) + } + }) + + it(`should validate an array of addresses`, async () => { + const address: string[] = [ + `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z`, + `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` + ] + + const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) + + assert.isArray(result) + if (Array.isArray(result)) { + assert.hasAllKeys(result[0], [ + "isvalid", + "address", + "scriptPubKey", + "ismine", + "iswatchonly", + "isscript" + ]) + } + }) + + it(`should throw an error for improper single input`, async () => { + try { + const address: any = 15432 + + await bitbox.Util.validateAddress(address) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.include( + err.message, + `Input must be a string or array of strings.` + ) + } + }) + + it(`should throw error on array size rate limit`, async () => { + try { + const dataMock: string = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` + const data: string[] = [] + for (let i: number = 0; i < 25; i++) data.push(dataMock) + + const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(data) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) }) From 14aa509f2a34fb0f0f4bb05a780b901203677d73 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Mon, 13 May 2019 19:51:50 +0900 Subject: [PATCH 374/480] Bring back Script tests. --- test/unit/Script.ts | 898 ++++++++++++++++++++++---------------------- 1 file changed, 449 insertions(+), 449 deletions(-) diff --git a/test/unit/Script.ts b/test/unit/Script.ts index 8d702efd..34b213fc 100644 --- a/test/unit/Script.ts +++ b/test/unit/Script.ts @@ -10,452 +10,452 @@ const bitbox: BITBOX = new BITBOX() // TODO: port from require to import syntax const fixtures = require("./fixtures/Script.json") -// describe("#Script", (): void => { -// describe("#ScriptConstructor", (): void => { -// it("should create instance of Script", (): void => { -// const script: Script = new Script() -// assert.equal(script instanceof Script, true) -// }) -// }) - -// describe("#decode", (): void => { -// describe("P2PKH scriptSig", (): void => { -// fixtures.decodeScriptSig.forEach((fixture: any): void => { -// it(`should decode scriptSig buffer`, (): void => { -// const decodedScriptSig: any[] = bitbox.Script.decode( -// Buffer.from(fixture.scriptSigHex, "hex") -// ) -// assert.equal(typeof decodedScriptSig, "object") -// }) - -// it(`should decode scriptSig buffer to cash address ${ -// fixture.cashAddress -// }`, (): void => { -// const decodedScriptSig: any[] = bitbox.Script.decode( -// Buffer.from(fixture.scriptSigHex, "hex") -// ) -// const address: string = bitbox.HDNode.toCashAddress( -// bitbox.ECPair.fromPublicKey(decodedScriptSig[1]) -// ) -// assert.equal(address, fixture.cashAddress) -// }) - -// it(`should decode scriptSig buffer to legacy address ${ -// fixture.legacyAddress -// }`, (): void => { -// const decodedScriptSig: any[] = bitbox.Script.decode( -// Buffer.from(fixture.scriptSigHex, "hex") -// ) -// const address: string = bitbox.HDNode.toLegacyAddress( -// bitbox.ECPair.fromPublicKey(decodedScriptSig[1]) -// ) -// assert.equal(address, fixture.legacyAddress) -// }) -// }) -// }) - -// describe("P2PKH scriptPubKey", (): void => { -// fixtures.decodeScriptPubKey.forEach((fixture: any): void => { -// it(`should decode scriptSig buffer`, (): void => { -// const decodedScriptPubKey: any[] = bitbox.Script.decode( -// Buffer.from(fixture.scriptPubKeyHex, "hex") -// ) -// assert.equal(decodedScriptPubKey.length, 5) -// }) - -// it(`should match hashed pubKey ${fixture.pubKeyHex}`, (): void => { -// const decodedScriptPubKey: any[] = bitbox.Script.decode( -// Buffer.from(fixture.scriptPubKeyHex, "hex") -// ) -// const data: Buffer = Buffer.from(fixture.pubKeyHex, "hex") -// const hash160: Buffer = bitbox.Crypto.hash160(data) -// assert.equal(decodedScriptPubKey[2].toString("hex"), hash160.toString("hex")) -// }) -// }) -// }) -// }) - -// describe("#encode", (): void => { -// describe("P2PKH scriptSig", (): void => { -// fixtures.encodeScriptSig.forEach((fixture: any): void => { -// it(`should encode scriptSig chunks to buffer`, (): void => { -// const arr: Buffer[] = [ -// Buffer.from(fixture.scriptSigChunks[0], "hex"), -// Buffer.from(fixture.scriptSigChunks[1], "hex") -// ] -// const encodedScriptSig: any = bitbox.Script.encode(arr) -// assert.equal(typeof encodedScriptSig, "object") -// }) -// }) -// }) - -// describe("P2PKH scriptPubKey", (): void => { -// fixtures.encodeScriptPubKey.forEach((fixture: any): void => { -// it(`should encode scriptPubKey buffer`, (): void => { -// const decodedScriptPubKey: any[] = bitbox.Script.decode( -// Buffer.from(fixture.scriptPubKeyHex, "hex") -// ) -// const compiledScriptPubKey: any = bitbox.Script.encode(decodedScriptPubKey) -// assert.equal( -// compiledScriptPubKey.toString("hex"), -// fixture.scriptPubKeyHex -// ) -// }) -// }) -// }) -// }) - -// describe("#toASM", (): void => { -// describe("P2PKH scriptSig", (): void => { -// fixtures.scriptSigToASM.forEach((fixture: any): void => { -// it(`should encode scriptSig buffer to ${fixture.asm}`, (): void => { -// const arr: Buffer[] = [ -// Buffer.from(fixture.scriptSigChunks[0], "hex"), -// Buffer.from(fixture.scriptSigChunks[1], "hex") -// ] -// const compiledScriptSig: any = bitbox.Script.encode(arr) -// const asm: string = bitbox.Script.toASM(compiledScriptSig) -// assert.equal(asm, fixture.asm) -// }) -// }) -// }) - -// describe("P2PKH scriptPubKey", (): void => { -// fixtures.scriptPubKeyToASM.forEach((fixture: any): void => { -// it(`should compile scriptPubKey buffer to ${fixture.asm}`, (): void => { -// const asm: string = bitbox.Script.toASM( -// Buffer.from(fixture.scriptPubKeyHex, "hex") -// ) -// assert.equal(asm, fixture.asm) -// }) -// }) -// }) -// }) - -// describe("#fromASM", (): void => { -// describe("P2PKH scriptSig", (): void => { -// fixtures.scriptSigFromASM.forEach((fixture: any): void => { -// it(`should decode scriptSig asm to buffer`, (): void => { -// const buf: Buffer = bitbox.Script.fromASM(fixture.asm) -// assert.equal(typeof buf, "object") -// }) -// }) -// }) - -// describe("P2PKH scriptPubKey", (): void => { -// fixtures.scriptPubKeyFromASM.forEach((fixture: any): void => { -// it(`should decode scriptPubKey asm to buffer`, (): void => { -// const buf: Buffer = bitbox.Script.fromASM(fixture.asm) -// assert.equal(typeof buf, "object") -// }) -// }) -// }) -// }) - -// describe("#OPCodes", (): void => { -// for (const opcode in fixtures.opcodes) { -// it(`should have OP Code ${opcode}`, (): void => { -// // @ts-ignore -// assert.equal(bitbox.Script.opcodes[opcode], fixtures.opcodes[opcode]) -// }) -// } -// }) - -// describe("#classifyInput", (): void => { -// fixtures.classifyInput.forEach((fixture: any): void => { -// it(`should classify input type ${fixture.type}`, (): void => { -// const type: string = bitbox.Script.classifyInput( -// bitbox.Script.fromASM(fixture.script) -// ) -// assert.equal(type, fixture.type) -// }) -// }) -// }) - -// describe("#classifyOutput", (): void => { -// fixtures.classifyOutput.forEach((fixture: any): void => { -// it(`should classify ouput type ${fixture.type}`, (): void => { -// const type: string = bitbox.Script.classifyOutput( -// bitbox.Script.fromASM(fixture.script) -// ) -// assert.equal(type, fixture.type) -// }) -// }) -// }) - -// describe("#nullDataTemplate", (): void => { -// fixtures.nullDataTemplate.forEach((fixture: any): void => { -// it(`should encode nulldata output`, (): void => { -// const buf: Buffer = bitbox.Script.nullData.output.encode( -// Buffer.from(`${fixture.data}`, "ascii") -// ) -// assert.equal(buf.toString("hex"), fixture.hex) -// }) - -// it(`should decode nulldata output`, (): void => { -// const buf: Buffer = bitbox.Script.nullData.output.decode( -// Buffer.from(`${fixture.hex}`, "hex") -// ) -// assert.equal(buf.toString("ascii"), fixture.data) -// }) - -// it(`should confirm correctly formatted nulldata output`, (): void => { -// const buf: Buffer = bitbox.Script.nullData.output.encode( -// Buffer.from(`${fixture.data}`, "ascii") -// ) -// const valid: boolean = bitbox.Script.nullData.output.check(buf) -// assert.equal(valid, true) -// }) -// }) -// }) - -// describe("#pubKeyTemplate", (): void => { -// describe("#pubKeyInputTemplate", (): void => { -// fixtures.pubKeyInputTemplate.forEach((fixture: any): void => { -// it(`should encode pubKey input`, (): void => { -// const buf: Buffer = bitbox.Script.pubKey.input.encode( -// Buffer.from(fixture.signature, "hex") -// ) -// assert.equal(buf.toString("hex"), fixture.hex) -// }) - -// it(`should decode pubKey input`, (): void => { -// const buf: Buffer = bitbox.Script.pubKey.input.decode( -// Buffer.from(fixture.hex, "hex") -// ) -// assert.equal(buf.toString("hex"), fixture.signature) -// }) - -// it(`should confirm correctly formatted pubKeyHash input`, (): void => { -// const buf: Buffer = bitbox.Script.pubKey.input.encode( -// Buffer.from(fixture.signature, "hex") -// ) -// const valid: boolean = bitbox.Script.pubKey.input.check(buf) -// assert.equal(valid, true) -// }) -// }) -// }) - -// describe("#pubKeyOutputTemplate", (): void => { -// fixtures.pubKeyOutputTemplate.forEach((fixture: any): void => { -// it(`should encode pubKey output`, (): void => { -// const buf: Buffer = bitbox.Script.pubKey.output.encode( -// Buffer.from(fixture.pubKey, "hex") -// ) -// assert.equal(buf.toString("hex"), fixture.hex) -// }) - -// it(`should decode pubKey output`, (): void => { -// const buf: Buffer = bitbox.Script.pubKey.output.decode( -// Buffer.from(`${fixture.hex}`, "hex") -// ) -// assert.equal(buf.toString("hex"), fixture.pubKey) -// }) - -// it(`should confirm correctly formatted pubKey output`, (): void => { -// const buf: Buffer = bitbox.Script.pubKey.output.encode( -// Buffer.from(fixture.pubKey, "hex") -// ) -// const valid: boolean = bitbox.Script.pubKey.output.check(buf) -// assert.equal(valid, true) -// }) -// }) -// }) -// }) - -// describe("#pubKeyHashTemplate", (): void => { -// describe("#pubKeyHashInputTemplate", (): void => { -// fixtures.pubKeyHashInputTemplate.forEach((fixture: any): void => { -// it(`should encode pubKeyHash input`, (): void => { -// const buf: Buffer = bitbox.Script.pubKeyHash.input.encode( -// Buffer.from(fixture.signature, "hex"), -// Buffer.from(fixture.pubKey, "hex") -// ) -// assert.equal(buf.toString("hex"), fixture.hex) -// }) - -// it(`should decode pubKeyHash input signature`, (): void => { -// const buf: { -// signature: Buffer -// pubKey: Buffer -// } = bitbox.Script.pubKeyHash.input.decode( -// Buffer.from(fixture.hex, "hex") -// ) -// assert.equal(buf.signature.toString("hex"), fixture.signature) -// }) - -// it(`should decode pubKeyHash input pubkey`, (): void => { -// const buf: { -// signature: Buffer -// pubKey: Buffer -// } = bitbox.Script.pubKeyHash.input.decode( -// Buffer.from(fixture.hex, "hex") -// ) -// assert.equal(buf.pubKey.toString("hex"), fixture.pubKey) -// }) - -// it(`should confirm correctly formatted pubKeyHash input`, (): void => { -// const buf: Buffer = bitbox.Script.pubKeyHash.input.encode( -// Buffer.from(fixture.signature, "hex"), -// Buffer.from(fixture.pubKey, "hex") -// ) -// const valid: boolean = bitbox.Script.pubKeyHash.input.check(buf) -// assert.equal(valid, true) -// }) -// }) -// }) - -// describe("#pubKeyHashOutputTemplate", (): void => { -// fixtures.pubKeyHashOutputTemplate.forEach((fixture: any): void => { -// const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) -// const identifier: Buffer = bitbox.HDNode.toIdentifier(node) -// it(`should encode pubKeyHash output`, (): void => { -// const buf: Buffer = bitbox.Script.pubKeyHash.output.encode(identifier) -// assert.equal(buf.toString("hex"), fixture.hex) -// }) - -// it(`should decode pubKeyHash output`, (): void => { -// const buf: Buffer = bitbox.Script.pubKeyHash.output.decode( -// Buffer.from(`${fixture.hex}`, "hex") -// ) -// assert.equal(buf.toString("hex"), identifier.toString("hex")) -// }) - -// it(`should confirm correctly formatted pubKeyHash output`, (): void => { -// const buf: Buffer = bitbox.Script.pubKeyHash.output.encode(identifier) -// const valid: boolean = bitbox.Script.pubKeyHash.output.check(buf) -// assert.equal(valid, true) -// }) -// }) -// }) -// }) - -// describe("#multisigTemplate", (): void => { -// describe("#multisigInputTemplate", (): void => { -// fixtures.multisigInputTemplate.forEach((fixture: any): void => { -// it(`should encode multisig input`, (): void => { -// const signatures: any[] = fixture.signatures.map((signature: any) => -// signature -// ? Buffer.from(signature, "hex") -// : bitbox.Script.opcodes.OP_0 -// ) - -// const buf: Buffer = bitbox.Script.multisig.input.encode(signatures) -// assert.equal(buf.toString("hex"), fixture.hex) -// }) - -// it(`should decode multisig input`, (): void => { -// const buf: Buffer[] = bitbox.Script.multisig.input.decode( -// Buffer.from(fixture.hex, "hex") -// ) -// assert.equal(buf[0].toString("hex"), fixture.signatures[0]) -// }) - -// it(`should confirm correctly formatted multisig input`, (): void => { -// const signatures: any[] = fixture.signatures.map((signature: any) => -// signature -// ? Buffer.from(signature, "hex") -// : bitbox.Script.opcodes.OP_0 -// ) - -// const buf: Buffer = bitbox.Script.multisig.input.encode(signatures) -// const valid: boolean = bitbox.Script.multisig.input.check(buf) -// assert.equal(valid, true) -// }) -// }) -// }) - -// describe("#multisigOutputTemplate", (): void => { -// fixtures.multisigOutputTemplate.forEach((fixture: any): void => { -// it(`should encode multisig output`, (): void => { -// const pubKeys: Buffer[] = fixture.pubKeys.map((p: string) => Buffer.from(p, "hex")) -// const m: number = pubKeys.length -// const buf: Buffer = bitbox.Script.multisig.output.encode(m, pubKeys) - -// assert.equal(buf.toString("hex"), fixture.hex) -// }) - -// it(`should decode multisig output`, (): void => { -// const output: any = bitbox.Script.multisig.output.decode( -// Buffer.from(`${fixture.hex}`, "hex") -// ) -// assert.equal(output.m, fixture.pubKeys.length) -// }) - -// it(`should confirm correctly formatted multisig output`, (): void => { -// const pubKeys: Buffer[] = fixture.pubKeys.map((p: any) => Buffer.from(p, "hex")) -// const m: number = pubKeys.length -// const buf: Buffer = bitbox.Script.multisig.output.encode(m, pubKeys) -// const valid: boolean = bitbox.Script.multisig.output.check(buf) -// assert.equal(valid, true) -// }) -// }) -// }) -// }) - -// describe("#scriptHashTemplate", (): void => { -// describe("#scriptHashInputTemplate", (): void => { -// fixtures.scriptHashInputTemplate.forEach((fixture: any): void => { -// it(`should encode scriptHash input`, (): void => { -// const buf: Buffer = bitbox.Script.scriptHash.input.encode( -// bitbox.Script.fromASM(fixture.redeemScriptSig), -// bitbox.Script.fromASM(fixture.redeemScript) -// ) -// assert.equal(buf.toString("hex"), fixture.hex) -// }) - -// it(`should decode scriptHash input`, (): void => { -// const redeemScriptSig: any = bitbox.Script.fromASM(fixture.redeemScriptSig) -// const redeemScript: any = bitbox.Script.fromASM(fixture.redeemScript) -// assert.deepEqual( -// bitbox.Script.scriptHash.input.decode( -// Buffer.from(fixture.hex, "hex") -// ), -// { -// redeemScriptSig: redeemScriptSig, -// redeemScript: redeemScript -// } -// ) -// }) - -// it(`should confirm correctly formatted scriptHash input`, (): void => { -// const buf: Buffer = bitbox.Script.scriptHash.input.encode( -// bitbox.Script.fromASM(fixture.redeemScriptSig), -// bitbox.Script.fromASM(fixture.redeemScript) -// ) -// const valid: boolean = bitbox.Script.scriptHash.input.check(buf) -// assert.equal(valid, true) -// }) -// }) -// }) - -// describe("#scriptHashOutputTemplate", (): void => { -// fixtures.scriptHashOutputTemplate.forEach((fixture: any): void => { -// it(`should encode scriptHash output`, (): void => { -// const redeemScript: any = bitbox.Script.fromASM(fixture.output) -// const scriptHash: Buffer = bitbox.Crypto.hash160(redeemScript) -// const buf: Buffer = bitbox.Script.scriptHash.output.encode(scriptHash) - -// assert.equal(buf.toString("hex"), fixture.hex) -// }) - -// it(`should decode scriptHash output`, (): void => { -// const redeemScript: any = bitbox.Script.fromASM(fixture.output) -// const scriptHash: Buffer = bitbox.Crypto.hash160(redeemScript) -// const buf: Buffer = bitbox.Script.scriptHash.output.decode( -// Buffer.from(`${fixture.hex}`, "hex") -// ) -// assert.deepEqual(buf, scriptHash) -// }) - -// it(`should confirm correctly formatted scriptHash output`, (): void => { -// const redeemScript: any = bitbox.Script.fromASM(fixture.output) -// const scriptHash: Buffer = bitbox.Crypto.hash160(redeemScript) -// const buf: Buffer = bitbox.Script.scriptHash.output.encode(scriptHash) -// const valid: boolean = bitbox.Script.scriptHash.output.check(buf) -// assert.equal(valid, true) -// }) -// }) -// }) -// }) -// }) +describe("#Script", (): void => { + describe("#ScriptConstructor", (): void => { + it("should create instance of Script", (): void => { + const script: Script = new Script() + assert.equal(script instanceof Script, true) + }) + }) + + describe("#decode", (): void => { + describe("P2PKH scriptSig", (): void => { + fixtures.decodeScriptSig.forEach((fixture: any): void => { + it(`should decode scriptSig buffer`, (): void => { + const decodedScriptSig: any[] = bitbox.Script.decode( + Buffer.from(fixture.scriptSigHex, "hex") + ) + assert.equal(typeof decodedScriptSig, "object") + }) + + it(`should decode scriptSig buffer to cash address ${ + fixture.cashAddress + }`, (): void => { + const decodedScriptSig: any[] = bitbox.Script.decode( + Buffer.from(fixture.scriptSigHex, "hex") + ) + const address: string = bitbox.HDNode.toCashAddress( + bitbox.ECPair.fromPublicKey(decodedScriptSig[1]) + ) + assert.equal(address, fixture.cashAddress) + }) + + it(`should decode scriptSig buffer to legacy address ${ + fixture.legacyAddress + }`, (): void => { + const decodedScriptSig: any[] = bitbox.Script.decode( + Buffer.from(fixture.scriptSigHex, "hex") + ) + const address: string = bitbox.HDNode.toLegacyAddress( + bitbox.ECPair.fromPublicKey(decodedScriptSig[1]) + ) + assert.equal(address, fixture.legacyAddress) + }) + }) + }) + + describe("P2PKH scriptPubKey", (): void => { + fixtures.decodeScriptPubKey.forEach((fixture: any): void => { + it(`should decode scriptSig buffer`, (): void => { + const decodedScriptPubKey: any[] = bitbox.Script.decode( + Buffer.from(fixture.scriptPubKeyHex, "hex") + ) + assert.equal(decodedScriptPubKey.length, 5) + }) + + it(`should match hashed pubKey ${fixture.pubKeyHex}`, (): void => { + const decodedScriptPubKey: any[] = bitbox.Script.decode( + Buffer.from(fixture.scriptPubKeyHex, "hex") + ) + const data: Buffer = Buffer.from(fixture.pubKeyHex, "hex") + const hash160: Buffer = bitbox.Crypto.hash160(data) + assert.equal(decodedScriptPubKey[2].toString("hex"), hash160.toString("hex")) + }) + }) + }) + }) + + describe("#encode", (): void => { + describe("P2PKH scriptSig", (): void => { + fixtures.encodeScriptSig.forEach((fixture: any): void => { + it(`should encode scriptSig chunks to buffer`, (): void => { + const arr: Buffer[] = [ + Buffer.from(fixture.scriptSigChunks[0], "hex"), + Buffer.from(fixture.scriptSigChunks[1], "hex") + ] + const encodedScriptSig: any = bitbox.Script.encode(arr) + assert.equal(typeof encodedScriptSig, "object") + }) + }) + }) + + describe("P2PKH scriptPubKey", (): void => { + fixtures.encodeScriptPubKey.forEach((fixture: any): void => { + it(`should encode scriptPubKey buffer`, (): void => { + const decodedScriptPubKey: any[] = bitbox.Script.decode( + Buffer.from(fixture.scriptPubKeyHex, "hex") + ) + const compiledScriptPubKey: any = bitbox.Script.encode(decodedScriptPubKey) + assert.equal( + compiledScriptPubKey.toString("hex"), + fixture.scriptPubKeyHex + ) + }) + }) + }) + }) + + describe("#toASM", (): void => { + describe("P2PKH scriptSig", (): void => { + fixtures.scriptSigToASM.forEach((fixture: any): void => { + it(`should encode scriptSig buffer to ${fixture.asm}`, (): void => { + const arr: Buffer[] = [ + Buffer.from(fixture.scriptSigChunks[0], "hex"), + Buffer.from(fixture.scriptSigChunks[1], "hex") + ] + const compiledScriptSig: any = bitbox.Script.encode(arr) + const asm: string = bitbox.Script.toASM(compiledScriptSig) + assert.equal(asm, fixture.asm) + }) + }) + }) + + describe("P2PKH scriptPubKey", (): void => { + fixtures.scriptPubKeyToASM.forEach((fixture: any): void => { + it(`should compile scriptPubKey buffer to ${fixture.asm}`, (): void => { + const asm: string = bitbox.Script.toASM( + Buffer.from(fixture.scriptPubKeyHex, "hex") + ) + assert.equal(asm, fixture.asm) + }) + }) + }) + }) + + describe("#fromASM", (): void => { + describe("P2PKH scriptSig", (): void => { + fixtures.scriptSigFromASM.forEach((fixture: any): void => { + it(`should decode scriptSig asm to buffer`, (): void => { + const buf: Buffer = bitbox.Script.fromASM(fixture.asm) + assert.equal(typeof buf, "object") + }) + }) + }) + + describe("P2PKH scriptPubKey", (): void => { + fixtures.scriptPubKeyFromASM.forEach((fixture: any): void => { + it(`should decode scriptPubKey asm to buffer`, (): void => { + const buf: Buffer = bitbox.Script.fromASM(fixture.asm) + assert.equal(typeof buf, "object") + }) + }) + }) + }) + + describe("#OPCodes", (): void => { + for (const opcode in fixtures.opcodes) { + it(`should have OP Code ${opcode}`, (): void => { + // @ts-ignore + assert.equal(bitbox.Script.opcodes[opcode], fixtures.opcodes[opcode]) + }) + } + }) + + describe("#classifyInput", (): void => { + fixtures.classifyInput.forEach((fixture: any): void => { + it(`should classify input type ${fixture.type}`, (): void => { + const type: string = bitbox.Script.classifyInput( + bitbox.Script.fromASM(fixture.script) + ) + assert.equal(type, fixture.type) + }) + }) + }) + + describe("#classifyOutput", (): void => { + fixtures.classifyOutput.forEach((fixture: any): void => { + it(`should classify ouput type ${fixture.type}`, (): void => { + const type: string = bitbox.Script.classifyOutput( + bitbox.Script.fromASM(fixture.script) + ) + assert.equal(type, fixture.type) + }) + }) + }) + + describe("#nullDataTemplate", (): void => { + fixtures.nullDataTemplate.forEach((fixture: any): void => { + it(`should encode nulldata output`, (): void => { + const buf: Buffer = bitbox.Script.nullData.output.encode( + Buffer.from(`${fixture.data}`, "ascii") + ) + assert.equal(buf.toString("hex"), fixture.hex) + }) + + it(`should decode nulldata output`, (): void => { + const buf: Buffer = bitbox.Script.nullData.output.decode( + Buffer.from(`${fixture.hex}`, "hex") + ) + assert.equal(buf.toString("ascii"), fixture.data) + }) + + it(`should confirm correctly formatted nulldata output`, (): void => { + const buf: Buffer = bitbox.Script.nullData.output.encode( + Buffer.from(`${fixture.data}`, "ascii") + ) + const valid: boolean = bitbox.Script.nullData.output.check(buf) + assert.equal(valid, true) + }) + }) + }) + + describe("#pubKeyTemplate", (): void => { + describe("#pubKeyInputTemplate", (): void => { + fixtures.pubKeyInputTemplate.forEach((fixture: any): void => { + it(`should encode pubKey input`, (): void => { + const buf: Buffer = bitbox.Script.pubKey.input.encode( + Buffer.from(fixture.signature, "hex") + ) + assert.equal(buf.toString("hex"), fixture.hex) + }) + + it(`should decode pubKey input`, (): void => { + const buf: Buffer = bitbox.Script.pubKey.input.decode( + Buffer.from(fixture.hex, "hex") + ) + assert.equal(buf.toString("hex"), fixture.signature) + }) + + it(`should confirm correctly formatted pubKeyHash input`, (): void => { + const buf: Buffer = bitbox.Script.pubKey.input.encode( + Buffer.from(fixture.signature, "hex") + ) + const valid: boolean = bitbox.Script.pubKey.input.check(buf) + assert.equal(valid, true) + }) + }) + }) + + describe("#pubKeyOutputTemplate", (): void => { + fixtures.pubKeyOutputTemplate.forEach((fixture: any): void => { + it(`should encode pubKey output`, (): void => { + const buf: Buffer = bitbox.Script.pubKey.output.encode( + Buffer.from(fixture.pubKey, "hex") + ) + assert.equal(buf.toString("hex"), fixture.hex) + }) + + it(`should decode pubKey output`, (): void => { + const buf: Buffer = bitbox.Script.pubKey.output.decode( + Buffer.from(`${fixture.hex}`, "hex") + ) + assert.equal(buf.toString("hex"), fixture.pubKey) + }) + + it(`should confirm correctly formatted pubKey output`, (): void => { + const buf: Buffer = bitbox.Script.pubKey.output.encode( + Buffer.from(fixture.pubKey, "hex") + ) + const valid: boolean = bitbox.Script.pubKey.output.check(buf) + assert.equal(valid, true) + }) + }) + }) + }) + + describe("#pubKeyHashTemplate", (): void => { + describe("#pubKeyHashInputTemplate", (): void => { + fixtures.pubKeyHashInputTemplate.forEach((fixture: any): void => { + it(`should encode pubKeyHash input`, (): void => { + const buf: Buffer = bitbox.Script.pubKeyHash.input.encode( + Buffer.from(fixture.signature, "hex"), + Buffer.from(fixture.pubKey, "hex") + ) + assert.equal(buf.toString("hex"), fixture.hex) + }) + + it(`should decode pubKeyHash input signature`, (): void => { + const buf: { + signature: Buffer + pubKey: Buffer + } = bitbox.Script.pubKeyHash.input.decode( + Buffer.from(fixture.hex, "hex") + ) + assert.equal(buf.signature.toString("hex"), fixture.signature) + }) + + it(`should decode pubKeyHash input pubkey`, (): void => { + const buf: { + signature: Buffer + pubKey: Buffer + } = bitbox.Script.pubKeyHash.input.decode( + Buffer.from(fixture.hex, "hex") + ) + assert.equal(buf.pubKey.toString("hex"), fixture.pubKey) + }) + + it(`should confirm correctly formatted pubKeyHash input`, (): void => { + const buf: Buffer = bitbox.Script.pubKeyHash.input.encode( + Buffer.from(fixture.signature, "hex"), + Buffer.from(fixture.pubKey, "hex") + ) + const valid: boolean = bitbox.Script.pubKeyHash.input.check(buf) + assert.equal(valid, true) + }) + }) + }) + + describe("#pubKeyHashOutputTemplate", (): void => { + fixtures.pubKeyHashOutputTemplate.forEach((fixture: any): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const identifier: Buffer = bitbox.HDNode.toIdentifier(node) + it(`should encode pubKeyHash output`, (): void => { + const buf: Buffer = bitbox.Script.pubKeyHash.output.encode(identifier) + assert.equal(buf.toString("hex"), fixture.hex) + }) + + it(`should decode pubKeyHash output`, (): void => { + const buf: Buffer = bitbox.Script.pubKeyHash.output.decode( + Buffer.from(`${fixture.hex}`, "hex") + ) + assert.equal(buf.toString("hex"), identifier.toString("hex")) + }) + + it(`should confirm correctly formatted pubKeyHash output`, (): void => { + const buf: Buffer = bitbox.Script.pubKeyHash.output.encode(identifier) + const valid: boolean = bitbox.Script.pubKeyHash.output.check(buf) + assert.equal(valid, true) + }) + }) + }) + }) + + describe("#multisigTemplate", (): void => { + describe("#multisigInputTemplate", (): void => { + fixtures.multisigInputTemplate.forEach((fixture: any): void => { + it(`should encode multisig input`, (): void => { + const signatures: any[] = fixture.signatures.map((signature: any) => + signature + ? Buffer.from(signature, "hex") + : bitbox.Script.opcodes.OP_0 + ) + + const buf: Buffer = bitbox.Script.multisig.input.encode(signatures) + assert.equal(buf.toString("hex"), fixture.hex) + }) + + it(`should decode multisig input`, (): void => { + const buf: Buffer[] = bitbox.Script.multisig.input.decode( + Buffer.from(fixture.hex, "hex") + ) + assert.equal(buf[0].toString("hex"), fixture.signatures[0]) + }) + + it(`should confirm correctly formatted multisig input`, (): void => { + const signatures: any[] = fixture.signatures.map((signature: any) => + signature + ? Buffer.from(signature, "hex") + : bitbox.Script.opcodes.OP_0 + ) + + const buf: Buffer = bitbox.Script.multisig.input.encode(signatures) + const valid: boolean = bitbox.Script.multisig.input.check(buf) + assert.equal(valid, true) + }) + }) + }) + + describe("#multisigOutputTemplate", (): void => { + fixtures.multisigOutputTemplate.forEach((fixture: any): void => { + it(`should encode multisig output`, (): void => { + const pubKeys: Buffer[] = fixture.pubKeys.map((p: string) => Buffer.from(p, "hex")) + const m: number = pubKeys.length + const buf: Buffer = bitbox.Script.multisig.output.encode(m, pubKeys) + + assert.equal(buf.toString("hex"), fixture.hex) + }) + + it(`should decode multisig output`, (): void => { + const output: any = bitbox.Script.multisig.output.decode( + Buffer.from(`${fixture.hex}`, "hex") + ) + assert.equal(output.m, fixture.pubKeys.length) + }) + + it(`should confirm correctly formatted multisig output`, (): void => { + const pubKeys: Buffer[] = fixture.pubKeys.map((p: any) => Buffer.from(p, "hex")) + const m: number = pubKeys.length + const buf: Buffer = bitbox.Script.multisig.output.encode(m, pubKeys) + const valid: boolean = bitbox.Script.multisig.output.check(buf) + assert.equal(valid, true) + }) + }) + }) + }) + + describe("#scriptHashTemplate", (): void => { + describe("#scriptHashInputTemplate", (): void => { + fixtures.scriptHashInputTemplate.forEach((fixture: any): void => { + it(`should encode scriptHash input`, (): void => { + const buf: Buffer = bitbox.Script.scriptHash.input.encode( + bitbox.Script.fromASM(fixture.redeemScriptSig), + bitbox.Script.fromASM(fixture.redeemScript) + ) + assert.equal(buf.toString("hex"), fixture.hex) + }) + + it(`should decode scriptHash input`, (): void => { + const redeemScriptSig: any = bitbox.Script.fromASM(fixture.redeemScriptSig) + const redeemScript: any = bitbox.Script.fromASM(fixture.redeemScript) + assert.deepEqual( + bitbox.Script.scriptHash.input.decode( + Buffer.from(fixture.hex, "hex") + ), + { + redeemScriptSig: redeemScriptSig, + redeemScript: redeemScript + } + ) + }) + + it(`should confirm correctly formatted scriptHash input`, (): void => { + const buf: Buffer = bitbox.Script.scriptHash.input.encode( + bitbox.Script.fromASM(fixture.redeemScriptSig), + bitbox.Script.fromASM(fixture.redeemScript) + ) + const valid: boolean = bitbox.Script.scriptHash.input.check(buf) + assert.equal(valid, true) + }) + }) + }) + + describe("#scriptHashOutputTemplate", (): void => { + fixtures.scriptHashOutputTemplate.forEach((fixture: any): void => { + it(`should encode scriptHash output`, (): void => { + const redeemScript: any = bitbox.Script.fromASM(fixture.output) + const scriptHash: Buffer = bitbox.Crypto.hash160(redeemScript) + const buf: Buffer = bitbox.Script.scriptHash.output.encode(scriptHash) + + assert.equal(buf.toString("hex"), fixture.hex) + }) + + it(`should decode scriptHash output`, (): void => { + const redeemScript: any = bitbox.Script.fromASM(fixture.output) + const scriptHash: Buffer = bitbox.Crypto.hash160(redeemScript) + const buf: Buffer = bitbox.Script.scriptHash.output.decode( + Buffer.from(`${fixture.hex}`, "hex") + ) + assert.deepEqual(buf, scriptHash) + }) + + it(`should confirm correctly formatted scriptHash output`, (): void => { + const redeemScript: any = bitbox.Script.fromASM(fixture.output) + const scriptHash: Buffer = bitbox.Crypto.hash160(redeemScript) + const buf: Buffer = bitbox.Script.scriptHash.output.encode(scriptHash) + const valid: boolean = bitbox.Script.scriptHash.output.check(buf) + assert.equal(valid, true) + }) + }) + }) + }) +}) From f8151b5637d88aa2eb4683f523f003fcc772f2bc Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 14 May 2019 06:03:14 +0900 Subject: [PATCH 375/480] Update require syntax. --- .../wallet/check-balance/check-balance.js | 10 ++--- .../consolidate-dust/consolidate-dust.js | 10 ++--- .../consolidate-utxos/consolidate-utxos.js | 10 ++--- .../wallet/create-wallet/create-wallet.js | 10 ++--- .../applications/wallet/send-WIF/send-wif.js | 10 ++--- .../applications/wallet/send-all/send-all.js | 10 ++--- .../applications/wallet/send-bch/send-bch.js | 10 ++--- examples/low-level/OP_RETURN/op_return.js | 43 +++++++++---------- .../address-details/address-details.js | 4 +- examples/low-level/utxo-address/get-utxos.js | 8 ++-- 10 files changed, 62 insertions(+), 63 deletions(-) diff --git a/examples/applications/wallet/check-balance/check-balance.js b/examples/applications/wallet/check-balance/check-balance.js index 8988a2f6..7a56094c 100644 --- a/examples/applications/wallet/check-balance/check-balance.js +++ b/examples/applications/wallet/check-balance/check-balance.js @@ -7,14 +7,14 @@ const NETWORK = `testnet` // Instantiate bitbox. -const bitboxLib = "../../../../lib/BITBOX" -const BITBOXSDK = require(bitboxLib) +const bitboxLib = "../../../lib/BITBOX" +const BITBOX = require(bitboxLib).BITBOX // Instantiate SLP based on the network. -let BITBOX +let bitbox if (NETWORK === `mainnet`) - BITBOX = new BITBOXSDK({ restURL: `https://rest.bitcoin.com/v2/` }) -else BITBOX = new BITBOXSDK({ restURL: `https://trest.bitcoin.com/v2/` }) + bitbox = new BITBOX({ restURL: `https://rest.bitcoin.com/v2/` }) +else bitbox = new BITBOX({ restURL: `https://trest.bitcoin.com/v2/` }) // Open the wallet generated with create-wallet. try { diff --git a/examples/applications/wallet/consolidate-dust/consolidate-dust.js b/examples/applications/wallet/consolidate-dust/consolidate-dust.js index f72241da..83a44cf0 100644 --- a/examples/applications/wallet/consolidate-dust/consolidate-dust.js +++ b/examples/applications/wallet/consolidate-dust/consolidate-dust.js @@ -7,14 +7,14 @@ const NETWORK = `testnet` // Instantiate bitbox. -const bitboxLib = "../../../../lib/BITBOX" -const BITBOXSDK = require(bitboxLib) +const bitboxLib = "../../../lib/BITBOX" +const BITBOX = require(bitboxLib).BITBOX // Instantiate SLP based on the network. -let BITBOX +let bitbox if (NETWORK === `mainnet`) - BITBOX = new BITBOXSDK({ restURL: `https://rest.bitcoin.com/v2/` }) -else BITBOX = new BITBOXSDK({ restURL: `https://trest.bitcoin.com/v2/` }) + bitbox = new BITBOX({ restURL: `https://rest.bitcoin.com/v2/` }) +else bitbox = new BITBOX({ restURL: `https://trest.bitcoin.com/v2/` }) // Open the wallet generated with create-wallet. try { diff --git a/examples/applications/wallet/consolidate-utxos/consolidate-utxos.js b/examples/applications/wallet/consolidate-utxos/consolidate-utxos.js index 9abd92a0..acb8d4ab 100644 --- a/examples/applications/wallet/consolidate-utxos/consolidate-utxos.js +++ b/examples/applications/wallet/consolidate-utxos/consolidate-utxos.js @@ -6,14 +6,14 @@ const NETWORK = `testnet` // Instantiate bitbox. -const bitboxLib = "../../../../lib/BITBOX" -const BITBOXSDK = require(bitboxLib) +const bitboxLib = "../../../lib/BITBOX" +const BITBOX = require(bitboxLib).BITBOX // Instantiate SLP based on the network. -let BITBOX +let bitbox if (NETWORK === `mainnet`) - BITBOX = new BITBOXSDK({ restURL: `https://rest.bitcoin.com/v2/` }) -else BITBOX = new BITBOXSDK({ restURL: `https://trest.bitcoin.com/v2/` }) + bitbox = new BITBOX({ restURL: `https://rest.bitcoin.com/v2/` }) +else bitbox = new BITBOX({ restURL: `https://trest.bitcoin.com/v2/` }) // Open the wallet generated with create-wallet. try { diff --git a/examples/applications/wallet/create-wallet/create-wallet.js b/examples/applications/wallet/create-wallet/create-wallet.js index f303f889..a0f49d52 100644 --- a/examples/applications/wallet/create-wallet/create-wallet.js +++ b/examples/applications/wallet/create-wallet/create-wallet.js @@ -7,14 +7,14 @@ const NETWORK = `testnet` // Instantiate bitbox. -const bitboxLib = "../../../../lib/BITBOX" -const BITBOXSDK = require(bitboxLib) +const bitboxLib = "../../../lib/BITBOX" +const BITBOX = require(bitboxLib).BITBOX // Instantiate SLP based on the network. -let BITBOX +let bitbox if (NETWORK === `mainnet`) - BITBOX = new BITBOXSDK({ restURL: `https://rest.bitcoin.com/v2/` }) -else BITBOX = new BITBOXSDK({ restURL: `https://trest.bitcoin.com/v2/` }) + bitbox = new BITBOX({ restURL: `https://rest.bitcoin.com/v2/` }) +else bitbox = new BITBOX({ restURL: `https://trest.bitcoin.com/v2/` }) const fs = require("fs") diff --git a/examples/applications/wallet/send-WIF/send-wif.js b/examples/applications/wallet/send-WIF/send-wif.js index f7948f92..301a47d4 100644 --- a/examples/applications/wallet/send-WIF/send-wif.js +++ b/examples/applications/wallet/send-WIF/send-wif.js @@ -11,14 +11,14 @@ let RECV_ADDR = `` const SATOSHIS_TO_SEND = 1000 // Instantiate bitbox. -const bitboxLib = "../../../../lib/BITBOX" -const BITBOXSDK = require(bitboxLib) +const bitboxLib = "../../../lib/BITBOX" +const BITBOX = require(bitboxLib).BITBOX // Instantiate SLP based on the network. -let BITBOX +let bitbox if (NETWORK === `mainnet`) - BITBOX = new BITBOXSDK({ restURL: `https://rest.bitcoin.com/v2/` }) -else BITBOX = new BITBOXSDK({ restURL: `https://trest.bitcoin.com/v2/` }) + bitbox = new BITBOX({ restURL: `https://rest.bitcoin.com/v2/` }) +else bitbox = new BITBOX({ restURL: `https://trest.bitcoin.com/v2/` }) // Open the wallet generated with create-wallet. try { diff --git a/examples/applications/wallet/send-all/send-all.js b/examples/applications/wallet/send-all/send-all.js index dbd08b56..9f25f063 100644 --- a/examples/applications/wallet/send-all/send-all.js +++ b/examples/applications/wallet/send-all/send-all.js @@ -9,14 +9,14 @@ const NETWORK = `testnet` const RECV_ADDR = `bchtest:qqmd9unmhkpx4pkmr6fkrr8rm6y77vckjvqe8aey35` // Instantiate bitbox. -const bitboxLib = "../../../../lib/BITBOX" -const BITBOXSDK = require(bitboxLib) +const bitboxLib = "../../../lib/BITBOX" +const BITBOX = require(bitboxLib).BITBOX // Instantiate SLP based on the network. -let BITBOX +let bitbox if (NETWORK === `mainnet`) - BITBOX = new BITBOXSDK({ restURL: `https://rest.bitcoin.com/v2/` }) -else BITBOX = new BITBOXSDK({ restURL: `https://trest.bitcoin.com/v2/` }) + bitbox = new BITBOX({ restURL: `https://rest.bitcoin.com/v2/` }) +else bitbox = new BITBOX({ restURL: `https://trest.bitcoin.com/v2/` }) // Open the wallet generated with create-wallet. try { diff --git a/examples/applications/wallet/send-bch/send-bch.js b/examples/applications/wallet/send-bch/send-bch.js index b9aa23ce..dc449473 100644 --- a/examples/applications/wallet/send-bch/send-bch.js +++ b/examples/applications/wallet/send-bch/send-bch.js @@ -9,14 +9,14 @@ const RECV_ADDR = `` const SATOSHIS_TO_SEND = 1000 // Instantiate bitbox. -const bitboxLib = "../../../../lib/BITBOX" -const BITBOXSDK = require(bitboxLib) +const bitboxLib = "../../../lib/BITBOX" +const BITBOX = require(bitboxLib).BITBOX // Instantiate SLP based on the network. -let BITBOX +let bitbox if (NETWORK === `mainnet`) - BITBOX = new BITBOXSDK({ restURL: `https://rest.bitcoin.com/v2/` }) -else BITBOX = new BITBOXSDK({ restURL: `https://trest.bitcoin.com/v2/` }) + bitbox = new BITBOX({ restURL: `https://rest.bitcoin.com/v2/` }) +else bitbox = new BITBOX({ restURL: `https://trest.bitcoin.com/v2/` }) // Open the wallet generated with create-wallet. try { diff --git a/examples/low-level/OP_RETURN/op_return.js b/examples/low-level/OP_RETURN/op_return.js index feff2f82..b567b3a3 100644 --- a/examples/low-level/OP_RETURN/op_return.js +++ b/examples/low-level/OP_RETURN/op_return.js @@ -4,8 +4,8 @@ // Instantiate bitbox. const bitboxLib = "../../../lib/BITBOX" -const BITBOXSDK = require(bitboxLib) -const bitbox = new BITBOX() +const BITBOX = require(bitboxLib).BITBOX +const bitbox = new BITBOX({ restURL: "https://trest.bitcoin.com/v2/" }) // Choose a transaction to parse for OP_Return @@ -20,51 +20,50 @@ function parseOP_RETURN(txid) { tx => { // You may wish to log this tx info to the console to inspect and plan your parsing function // console.log(tx) - + // Begin parsing transaction // Initialize an array to store any OP_Return messages - let messages = [] + const messages = [] // Iterate over outputs looking for OP_Return outputs - - for (let i=0; i < tx.vout.length; i++) { - - // If this is an OP_Return output - if (typeof tx.vout[i].scriptPubKey.addresses === 'undefined') { - - let message = '' + + for (let i = 0; i < tx.vout.length; i++) { + // If this is an OP_Return output + if (typeof tx.vout[i].scriptPubKey.addresses === "undefined") { + let message = "" // Decode the OP_Return message message = tx.vout[i].scriptPubKey.asm - let fromAsm = bitbox.Script.fromASM(message) - let decoded = bitbox.Script.decode(fromAsm) - message = decoded[1].toString('ascii') + const fromAsm = bitbox.Script.fromASM(message) + const decoded = bitbox.Script.decode(fromAsm) + message = decoded[1].toString("ascii") // Add this decoded OP_Return message to an array, in case multiple outputs have OP_Return messages messages.push(message) } } - + if (messages.length === 1) { console.log(`Message found!`) console.log(``) console.log(`Message: ${messages[0]}`) - } - else { + } else { console.log(`${messages.length} messages found!`) console.log(``) - for (let j=0; j < messages.length; j++) { - console.log(`Message ${j+1} of ${messages.length+1}: ${messages[j]}`) + for (let j = 0; j < messages.length; j++) { + console.log( + `Message ${j + 1} of ${messages.length + 1}: ${messages[j]}` + ) } } }, err => { - console.log('Error in bitbox.Transaction.details(${txid}):') + console.log("Error in bitbox.Transaction.details(${txid}):") console.log(err) } - ) + ) } -parseOP_RETURN(txid) \ No newline at end of file +parseOP_RETURN(txid) diff --git a/examples/low-level/address-details/address-details.js b/examples/low-level/address-details/address-details.js index 09228d6f..82ec7438 100644 --- a/examples/low-level/address-details/address-details.js +++ b/examples/low-level/address-details/address-details.js @@ -5,8 +5,8 @@ // Instantiate bitbox. const bitboxLib = "../../../lib/BITBOX" -const BITBOXSDK = require(bitboxLib) -const BITBOX = new BITBOXSDK({ restURL: "https://trest.bitcoin.com/v2/" }) +const BITBOX = require(bitboxLib).BITBOX +const bitbox = new BITBOX({ restURL: "https://trest.bitcoin.com/v2/" }) const ADDR = `bchtest:qr45kxqda7yw8atztvkc4ckqnrlhmp0kvsep4p345q` diff --git a/examples/low-level/utxo-address/get-utxos.js b/examples/low-level/utxo-address/get-utxos.js index a3508735..68f60b4e 100644 --- a/examples/low-level/utxo-address/get-utxos.js +++ b/examples/low-level/utxo-address/get-utxos.js @@ -8,13 +8,13 @@ const NETWORK = `testnet` // Instantiate bitbox. const bitboxLib = "../../../lib/BITBOX" -const BITBOXSDK = require(bitboxLib) +const BITBOX = require(bitboxLib).BITBOX // Instantiate SLP based on the network. -let BITBOX +let bitbox if (NETWORK === `mainnet`) - BITBOX = new BITBOXSDK({ restURL: `https://rest.bitcoin.com/v2/` }) -else BITBOX = new BITBOXSDK({ restURL: `https://trest.bitcoin.com/v2/` }) + bitbox = new BITBOX({ restURL: `https://rest.bitcoin.com/v2/` }) +else bitbox = new BITBOX({ restURL: `https://trest.bitcoin.com/v2/` }) // Open the wallet generated with create-wallet. try { From 7a9ad39417b1d1ff9d895dec1645b2fcd4deefe1 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 14 May 2019 18:41:44 +0900 Subject: [PATCH 376/480] Updtes to the Script class and tests. --- index.ts | 2 +- lib/Script.ts | 259 +++++++++++++++++++++++++++----- lib/TransactionBuilder.ts | 5 +- package.json | 4 +- test/unit/Address.ts | 8 +- test/unit/Script.ts | 179 +++++++++------------- test/unit/TransactionBuilder.ts | 256 +++++++++++++++---------------- 7 files changed, 431 insertions(+), 282 deletions(-) diff --git a/index.ts b/index.ts index a1112911..64f9482c 100644 --- a/index.ts +++ b/index.ts @@ -47,7 +47,7 @@ interface NewOptions extends ConsoleOptions { restURL: string } -program.version("7.2.1 ", "-v, --version") +program.version("7.3.0 ", "-v, --version") program .command("new ") diff --git a/lib/Script.ts b/lib/Script.ts index 1fb188e5..6aba722a 100644 --- a/lib/Script.ts +++ b/lib/Script.ts @@ -38,7 +38,6 @@ export interface opcodes { OP_ENDIF: 104 OP_VERIFY: 105 OP_RETURN: 106 - OP_TOALTSTACK: 107 OP_FROMALTSTACK: 108 OP_2DROP: 109 @@ -58,23 +57,19 @@ export interface opcodes { OP_ROT: 123 OP_SWAP: 124 OP_TUCK: 125 - OP_CAT: 126 - OP_SPLIT: 127 OP_NUM2BIN: 128 OP_BIN2NUM: 129 OP_SIZE: 130 - OP_INVERT: 131 - OP_AND: 132 // May 2018 reenabled - OP_OR: 133 // May 2018 reenabled - OP_XOR: 134 // May 2018 reenabled + OP_AND: 132 + OP_OR: 133 + OP_XOR: 134 OP_EQUAL: 135 OP_EQUALVERIFY: 136 OP_RESERVED1: 137 OP_RESERVED2: 138 - OP_1ADD: 139 OP_1SUB: 140 OP_2MUL: 141 @@ -86,11 +81,10 @@ export interface opcodes { OP_ADD: 147 OP_SUB: 148 OP_MUL: 149 - OP_DIV: 150 // May 2018 reenabled - OP_MOD: 151 // May 2018 reenabled + OP_DIV: 150 + OP_MOD: 151 OP_LSHIFT: 152 OP_RSHIFT: 153 - OP_BOOLAND: 154 OP_BOOLOR: 155 OP_NUMEQUAL: 156 @@ -102,9 +96,7 @@ export interface opcodes { OP_GREATERTHANOREQUAL: 162 OP_MIN: 163 OP_MAX: 164 - OP_WITHIN: 165 - OP_RIPEMD160: 166 OP_SHA1: 167 OP_SHA256: 168 @@ -115,15 +107,11 @@ export interface opcodes { OP_CHECKSIGVERIFY: 173 OP_CHECKMULTISIG: 174 OP_CHECKMULTISIGVERIFY: 175 - OP_NOP1: 176 - OP_NOP2: 177 OP_CHECKLOCKTIMEVERIFY: 177 - OP_NOP3: 178 OP_CHECKSEQUENCEVERIFY: 178 - OP_NOP4: 179 OP_NOP5: 180 OP_NOP6: 181 @@ -133,26 +121,113 @@ export interface opcodes { OP_NOP10: 185 OP_CHECKDATASIG: 186 OP_CHECKDATASIGVERIFY: 187 - OP_PUBKEYHASH: 253 OP_PUBKEY: 254 OP_INVALIDOPCODE: 255 } +export interface DecodedP2PKHInput { + signature: Buffer + pubKey: Buffer +} + +export interface DecodedP2MSOutput { + m: number + pubKeys: Buffer[] +} + +export interface DecodedP2SHInput { + redeemScript: Buffer + redeemScriptSig: Buffer +} + +export interface nullData { + output: { + encode(data: Buffer): Buffer + decode(output: Buffer): Buffer + check(output: Buffer): boolean + } +} + +export interface pubKey { + input: + { + encode(signature: Buffer): Buffer + decode(input: Buffer): Buffer + check(input: Buffer): boolean + decodeStack(data: Buffer): Buffer + encodeStack(data: Buffer): Buffer + }, + output: { + encode(pubKey: Buffer): Buffer + decode(output: Buffer): Buffer + check(output: Buffer): boolean + } +} + +export interface pubKeyHash { + input: + { + encode(signature: Buffer, pubKey: Buffer): Buffer + decode(data: Buffer): DecodedP2PKHInput + check(data: Buffer): boolean + decodeStack(data: Buffer): Buffer + encodeStack(data: Buffer): Buffer + }, + output: + { + encode(identifier: Buffer): Buffer + decode(output: Buffer): Buffer + check(output: Buffer): boolean + } +} + +export interface multisig { + input: + { + encode(signatures: Buffer[]): Buffer + decode(input: Buffer): Buffer[] + check(input: Buffer): boolean + }, + output: + { + encode(m: number, pubKeys: Buffer[]): Buffer + decode(output: Buffer): DecodedP2MSOutput + check(output: Buffer): boolean + } +} + +export interface scriptHash { + input: + { + encode(redeemScriptSig: Buffer, redeemScript: Buffer): Buffer + decode(input: Buffer): DecodedP2SHInput + check(data: Buffer): boolean + decodeStack(data: Buffer): Buffer + encodeStack(data: Buffer): Buffer + }, + output: + { + encode(scriptHash: Buffer): Buffer + decode(output: Buffer): Buffer + check(output: Buffer): boolean + } +} + export class Script { - opcodes: opcodes - nullData: any - multisig: any - pubKey: any - pubKeyHash: any - scriptHash: any + public opcodes: opcodes + public nullData: nullData + public pubKey: pubKey + public pubKeyHash: pubKeyHash + public multisig: multisig + public scriptHash: scriptHash constructor() { this.opcodes = opcodes this.nullData = Bitcoin.script.nullData this.multisig = { input: { - encode: (signatures: any) => { + encode: (signatures: Buffer[]): Buffer => { const sigs: any[] = [] signatures.forEach((sig: any) => { sigs.push(sig) @@ -163,7 +238,7 @@ export class Script { check: Bitcoin.script.multisig.input.check }, output: { - encode: (m: any, pubKeys: any) => { + encode: (m: number, pubKeys: Buffer[]): Buffer => { const pks: any[] = [] pubKeys.forEach((pubKey: any) => { pks.push(pubKey) @@ -179,6 +254,26 @@ export class Script { this.scriptHash = Bitcoin.script.scriptHash } + public encode(scriptChunks: Array): Buffer { + const arr: Array = [] + scriptChunks.forEach((chunk: number | Buffer) => { + arr.push(chunk) + }) + return Bitcoin.script.compile(arr) + } + + public decode(scriptBuffer: Buffer): Array { + return Bitcoin.script.decompile(scriptBuffer) + } + + public toASM(buffer: Buffer): string { + return Bitcoin.script.toASM(buffer) + } + + public fromASM(asm: string): Buffer { + return Bitcoin.script.fromASM(asm) + } + public classifyInput(script: Buffer): string { return Bitcoin.script.classifyInput(script) } @@ -187,23 +282,111 @@ export class Script { return Bitcoin.script.classifyOutput(script) } - public decode(scriptBuffer: any): any[] { - return Bitcoin.script.decompile(scriptBuffer) + public encodeNullDataOutput(data: Buffer): Buffer { + return this.nullData.output.encode(data) } - public encode(scriptChunks: any): any { - const arr: any[] = [] - scriptChunks.forEach((chunk: any) => { - arr.push(chunk) - }) - return Bitcoin.script.compile(arr) + public decodeNullDataOutput(output: Buffer): Buffer { + return this.nullData.output.decode(output) } - public toASM(buffer: Buffer): string { - return Bitcoin.script.toASM(buffer) + public checkNullDataOutput(output: Buffer): boolean { + return this.nullData.output.check(output) } - public fromASM(asm: string): any { - return Bitcoin.script.fromASM(asm) + public encodeP2PKInput(signature: Buffer): Buffer { + return this.pubKey.input.encode(signature) + } + + public decodeP2PKInput(input: Buffer): Buffer { + return this.pubKey.input.decode(input) + } + + public checkP2PKInput(input: Buffer): boolean { + return this.pubKey.input.check(input) + } + + public encodeP2PKOutput(pubKey: Buffer): Buffer { + return this.pubKey.output.encode(pubKey) + } + + public decodeP2PKOutput(output: Buffer): Buffer { + return this.pubKey.output.decode(output) + } + + public checkP2PKOutput(output: Buffer): boolean { + return this.pubKey.output.check(output); + } + + public encodeP2PKHInput(signature: Buffer, pubKey: Buffer): Buffer { + return this.pubKeyHash.input.encode(signature, pubKey) + } + + public decodeP2PKHInput(input: Buffer): DecodedP2PKHInput { + return this.pubKeyHash.input.decode(input) + } + + public checkP2PKHInput(input: Buffer): boolean { + return this.pubKeyHash.input.check(input) + } + + public encodeP2PKHOutput(identifier: Buffer): Buffer { + return this.pubKeyHash.output.encode(identifier) + } + + public decodeP2PKHOutput(output: Buffer): Buffer { + return this.pubKeyHash.output.decode(output) + } + + public checkP2PKHOutput(output: Buffer): boolean { + return this.pubKeyHash.output.check(output); + } + + public encodeP2MSInput(signatures: Buffer[]): Buffer { + return this.multisig.input.encode(signatures) + } + + public decodeP2MSInput(input: Buffer): Buffer[] { + return this.multisig.input.decode(input); + } + + public checkP2MSInput(input: Buffer): boolean { + return this.multisig.input.check(input) + } + + public encodeP2MSOutput(m: number, pubKeys: Buffer[]): Buffer { + return this.multisig.output.encode(m, pubKeys) + } + + public decodeP2MSOutput(output: Buffer): DecodedP2MSOutput { + return this.multisig.output.decode(output) + } + + public checkP2MSOutput(output: Buffer): boolean { + return this.multisig.output.check(output); + } + + public encodeP2SHInput(redeemScriptSig: Buffer, redeemScript: Buffer): Buffer { + return this.scriptHash.input.encode(redeemScriptSig, redeemScript) + } + + public decodeP2SHInput(input: Buffer): DecodedP2SHInput { + return this.scriptHash.input.decode(input) + } + + public checkP2SHInput(input: Buffer): boolean { + return this.scriptHash.input.check(input); + } + + public encodeP2SHOutput(scriptHash: Buffer): Buffer { + return this.scriptHash.output.encode(scriptHash) + } + + public decodeP2SHOutput(output: Buffer): Buffer { + return this.scriptHash.output.decode(output); + } + + public checkP2SHOutput(output: Buffer): boolean { + return this.scriptHash.output.check(output) } } diff --git a/lib/TransactionBuilder.ts b/lib/TransactionBuilder.ts index b8c6b0f9..49f8c273 100644 --- a/lib/TransactionBuilder.ts +++ b/lib/TransactionBuilder.ts @@ -67,7 +67,7 @@ export class TransactionBuilder { txHash: string, vout: number, sequence: number = this.DEFAULT_SEQUENCE, - prevOutScript: string | null = null + prevOutScript: string | Buffer | null = null ): void { this.transaction.addInput(txHash, vout, sequence, prevOutScript) } @@ -86,9 +86,10 @@ export class TransactionBuilder { this.p2shInput = true } - public addOutput(scriptPubKey: string, amount: number): void { + public addOutput(scriptPubKey: string | Buffer, amount: number): void { try { this.transaction.addOutput( + // @ts-ignore this._address.toLegacyAddress(scriptPubKey), amount ) diff --git a/package.json b/package.json index f234bfe4..f732addf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.2.1", + "version": "7.3.0", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ @@ -105,4 +105,4 @@ "ts-node": "^8.1.0", "typescript": "^3.4.5" } -} \ No newline at end of file +} diff --git a/test/unit/Address.ts b/test/unit/Address.ts index b0b1b235..0b2039ab 100644 --- a/test/unit/Address.ts +++ b/test/unit/Address.ts @@ -998,7 +998,7 @@ describe("#Address", (): void => { }) describe("#fromOutputScript", (): void => { - const script: any = bitbox.Script.encode([ + const script: Buffer = bitbox.Script.encode([ Buffer.from("BOX", "ascii"), bitbox.Script.opcodes.OP_CAT, Buffer.from("BITBOX", "ascii"), @@ -1006,12 +1006,12 @@ describe("#Address", (): void => { ]) // hash160 script buffer - const p2sh_hash160: any = bitbox.Crypto.hash160(script) + const p2sh_hash160: Buffer = bitbox.Crypto.hash160(script) // encode hash160 as P2SH output - const scriptPubKey: any = bitbox.Script.scriptHash.output.encode(p2sh_hash160) + const scriptPubKey: Buffer = bitbox.Script.encodeP2SHOutput(p2sh_hash160) fixtures.p2shMainnet.forEach((address: string) => { - const p2shAddress: any = bitbox.Address.fromOutputScript(scriptPubKey) + const p2shAddress: string = bitbox.Address.fromOutputScript(scriptPubKey) it(`generate mainnet address from output script`, (): void => { assert.equal(p2shAddress, address) }) diff --git a/test/unit/Script.ts b/test/unit/Script.ts index 34b213fc..8bdec629 100644 --- a/test/unit/Script.ts +++ b/test/unit/Script.ts @@ -1,7 +1,7 @@ // imports import * as assert from "assert"; import { BITBOX } from "../../lib/BITBOX" -import { Script } from "../../lib/Script" +import { Script, DecodedP2PKHInput, DecodedP2MSOutput } from "../../lib/Script" import * as bcl from "bitcoincashjs-lib" // consts @@ -186,24 +186,21 @@ describe("#Script", (): void => { describe("#nullDataTemplate", (): void => { fixtures.nullDataTemplate.forEach((fixture: any): void => { it(`should encode nulldata output`, (): void => { - const buf: Buffer = bitbox.Script.nullData.output.encode( - Buffer.from(`${fixture.data}`, "ascii") - ) - assert.equal(buf.toString("hex"), fixture.hex) + let buf: Buffer = Buffer.from(fixture.data, "ascii") + const encoded: Buffer = bitbox.Script.encodeNullDataOutput(buf) + assert.equal(encoded.toString("hex"), fixture.hex) }) it(`should decode nulldata output`, (): void => { - const buf: Buffer = bitbox.Script.nullData.output.decode( - Buffer.from(`${fixture.hex}`, "hex") - ) - assert.equal(buf.toString("ascii"), fixture.data) + let buf: Buffer = Buffer.from(fixture.hex, "hex") + const decoded: Buffer = bitbox.Script.decodeNullDataOutput(buf) + assert.equal(decoded.toString("ascii"), fixture.data) }) it(`should confirm correctly formatted nulldata output`, (): void => { - const buf: Buffer = bitbox.Script.nullData.output.encode( - Buffer.from(`${fixture.data}`, "ascii") - ) - const valid: boolean = bitbox.Script.nullData.output.check(buf) + let buf: Buffer = Buffer.from(fixture.data, "ascii") + const encoded: Buffer = bitbox.Script.encodeNullDataOutput(buf) + const valid: boolean = bitbox.Script.checkNullDataOutput(encoded) assert.equal(valid, true) }) }) @@ -213,7 +210,7 @@ describe("#Script", (): void => { describe("#pubKeyInputTemplate", (): void => { fixtures.pubKeyInputTemplate.forEach((fixture: any): void => { it(`should encode pubKey input`, (): void => { - const buf: Buffer = bitbox.Script.pubKey.input.encode( + const buf: Buffer = bitbox.Script.encodeP2PKInput( Buffer.from(fixture.signature, "hex") ) assert.equal(buf.toString("hex"), fixture.hex) @@ -227,7 +224,7 @@ describe("#Script", (): void => { }) it(`should confirm correctly formatted pubKeyHash input`, (): void => { - const buf: Buffer = bitbox.Script.pubKey.input.encode( + const buf: Buffer = bitbox.Script.encodeP2PKInput( Buffer.from(fixture.signature, "hex") ) const valid: boolean = bitbox.Script.pubKey.input.check(buf) @@ -239,24 +236,21 @@ describe("#Script", (): void => { describe("#pubKeyOutputTemplate", (): void => { fixtures.pubKeyOutputTemplate.forEach((fixture: any): void => { it(`should encode pubKey output`, (): void => { - const buf: Buffer = bitbox.Script.pubKey.output.encode( - Buffer.from(fixture.pubKey, "hex") - ) - assert.equal(buf.toString("hex"), fixture.hex) + const buf: Buffer = Buffer.from(fixture.pubKey, "hex") + const encoded: Buffer = bitbox.Script.encodeP2PKOutput(buf) + assert.equal(encoded.toString("hex"), fixture.hex) }) it(`should decode pubKey output`, (): void => { - const buf: Buffer = bitbox.Script.pubKey.output.decode( - Buffer.from(`${fixture.hex}`, "hex") - ) - assert.equal(buf.toString("hex"), fixture.pubKey) + const buf: Buffer = Buffer.from(fixture.hex, "hex") + const decoded: Buffer = bitbox.Script.decodeP2PKOutput(buf) + assert.equal(decoded.toString("hex"), fixture.pubKey) }) it(`should confirm correctly formatted pubKey output`, (): void => { - const buf: Buffer = bitbox.Script.pubKey.output.encode( - Buffer.from(fixture.pubKey, "hex") - ) - const valid: boolean = bitbox.Script.pubKey.output.check(buf) + const buf: Buffer = Buffer.from(fixture.pubKey, "hex") + const encoded: Buffer = bitbox.Script.encodeP2PKOutput(buf) + const valid: boolean = bitbox.Script.checkP2PKOutput(encoded) assert.equal(valid, true) }) }) @@ -267,39 +261,29 @@ describe("#Script", (): void => { describe("#pubKeyHashInputTemplate", (): void => { fixtures.pubKeyHashInputTemplate.forEach((fixture: any): void => { it(`should encode pubKeyHash input`, (): void => { - const buf: Buffer = bitbox.Script.pubKeyHash.input.encode( - Buffer.from(fixture.signature, "hex"), - Buffer.from(fixture.pubKey, "hex") - ) - assert.equal(buf.toString("hex"), fixture.hex) + const sigBuf = Buffer.from(fixture.signature, 'hex') + const pubKeyBuf = Buffer.from(fixture.pubKey, 'hex') + const encoded: Buffer = bitbox.Script.encodeP2PKHInput(sigBuf, pubKeyBuf) + assert.equal(encoded.toString("hex"), fixture.hex) }) it(`should decode pubKeyHash input signature`, (): void => { - const buf: { - signature: Buffer - pubKey: Buffer - } = bitbox.Script.pubKeyHash.input.decode( - Buffer.from(fixture.hex, "hex") - ) + const input: Buffer = Buffer.from(fixture.hex, "hex") + const buf: DecodedP2PKHInput = bitbox.Script.decodeP2PKHInput(input) assert.equal(buf.signature.toString("hex"), fixture.signature) }) it(`should decode pubKeyHash input pubkey`, (): void => { - const buf: { - signature: Buffer - pubKey: Buffer - } = bitbox.Script.pubKeyHash.input.decode( - Buffer.from(fixture.hex, "hex") - ) + const input: Buffer = Buffer.from(fixture.hex, "hex") + const buf: DecodedP2PKHInput = bitbox.Script.decodeP2PKHInput(input) assert.equal(buf.pubKey.toString("hex"), fixture.pubKey) }) it(`should confirm correctly formatted pubKeyHash input`, (): void => { - const buf: Buffer = bitbox.Script.pubKeyHash.input.encode( - Buffer.from(fixture.signature, "hex"), - Buffer.from(fixture.pubKey, "hex") - ) - const valid: boolean = bitbox.Script.pubKeyHash.input.check(buf) + const sigBuf = Buffer.from(fixture.signature, 'hex') + const pubKeyBuf = Buffer.from(fixture.pubKey, 'hex') + const encoded: Buffer = bitbox.Script.encodeP2PKHInput(sigBuf, pubKeyBuf) + const valid: boolean = bitbox.Script.checkP2PKHInput(encoded) assert.equal(valid, true) }) }) @@ -310,15 +294,14 @@ describe("#Script", (): void => { const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) const identifier: Buffer = bitbox.HDNode.toIdentifier(node) it(`should encode pubKeyHash output`, (): void => { - const buf: Buffer = bitbox.Script.pubKeyHash.output.encode(identifier) - assert.equal(buf.toString("hex"), fixture.hex) + const output: Buffer = bitbox.Script.encodeP2PKHOutput(identifier) + assert.equal(output.toString("hex"), fixture.hex) }) it(`should decode pubKeyHash output`, (): void => { - const buf: Buffer = bitbox.Script.pubKeyHash.output.decode( - Buffer.from(`${fixture.hex}`, "hex") - ) - assert.equal(buf.toString("hex"), identifier.toString("hex")) + let output: Buffer = Buffer.from(`${fixture.hex}`, "hex") + const decoded: Buffer = bitbox.Script.pubKeyHash.output.decode(output) + assert.equal(decoded.toString("hex"), identifier.toString("hex")) }) it(`should confirm correctly formatted pubKeyHash output`, (): void => { @@ -334,32 +317,25 @@ describe("#Script", (): void => { describe("#multisigInputTemplate", (): void => { fixtures.multisigInputTemplate.forEach((fixture: any): void => { it(`should encode multisig input`, (): void => { - const signatures: any[] = fixture.signatures.map((signature: any) => - signature - ? Buffer.from(signature, "hex") - : bitbox.Script.opcodes.OP_0 + const signatures: Buffer[] = fixture.signatures.map((signature: any) => + Buffer.from(signature, "hex") ) - - const buf: Buffer = bitbox.Script.multisig.input.encode(signatures) - assert.equal(buf.toString("hex"), fixture.hex) + const input: Buffer = bitbox.Script.encodeP2MSInput(signatures) + assert.equal(input.toString("hex"), fixture.hex) }) it(`should decode multisig input`, (): void => { - const buf: Buffer[] = bitbox.Script.multisig.input.decode( - Buffer.from(fixture.hex, "hex") - ) - assert.equal(buf[0].toString("hex"), fixture.signatures[0]) + const output: Buffer = Buffer.from(fixture.hex, "hex") + const decoded: Buffer[] = bitbox.Script.decodeP2MSInput(output) + assert.equal(decoded[0].toString("hex"), fixture.signatures[0]) }) it(`should confirm correctly formatted multisig input`, (): void => { - const signatures: any[] = fixture.signatures.map((signature: any) => - signature - ? Buffer.from(signature, "hex") - : bitbox.Script.opcodes.OP_0 + const signatures: Buffer[] = fixture.signatures.map((signature: any) => + Buffer.from(signature, "hex") ) - - const buf: Buffer = bitbox.Script.multisig.input.encode(signatures) - const valid: boolean = bitbox.Script.multisig.input.check(buf) + const input: Buffer = bitbox.Script.encodeP2MSInput(signatures) + const valid: boolean = bitbox.Script.checkP2MSInput(input) assert.equal(valid, true) }) }) @@ -370,23 +346,22 @@ describe("#Script", (): void => { it(`should encode multisig output`, (): void => { const pubKeys: Buffer[] = fixture.pubKeys.map((p: string) => Buffer.from(p, "hex")) const m: number = pubKeys.length - const buf: Buffer = bitbox.Script.multisig.output.encode(m, pubKeys) + const output: Buffer = bitbox.Script.encodeP2MSOutput(m, pubKeys) - assert.equal(buf.toString("hex"), fixture.hex) + assert.equal(output.toString("hex"), fixture.hex) }) it(`should decode multisig output`, (): void => { - const output: any = bitbox.Script.multisig.output.decode( - Buffer.from(`${fixture.hex}`, "hex") - ) - assert.equal(output.m, fixture.pubKeys.length) + const output: Buffer = Buffer.from(`${fixture.hex}`, "hex") + const decoded: DecodedP2MSOutput = bitbox.Script.decodeP2MSOutput(output) + assert.equal(decoded.m, fixture.pubKeys.length) }) it(`should confirm correctly formatted multisig output`, (): void => { const pubKeys: Buffer[] = fixture.pubKeys.map((p: any) => Buffer.from(p, "hex")) const m: number = pubKeys.length - const buf: Buffer = bitbox.Script.multisig.output.encode(m, pubKeys) - const valid: boolean = bitbox.Script.multisig.output.check(buf) + const output: Buffer = bitbox.Script.encodeP2MSOutput(m, pubKeys) + const valid: boolean = bitbox.Script.checkP2MSOutput(output) assert.equal(valid, true) }) }) @@ -397,20 +372,18 @@ describe("#Script", (): void => { describe("#scriptHashInputTemplate", (): void => { fixtures.scriptHashInputTemplate.forEach((fixture: any): void => { it(`should encode scriptHash input`, (): void => { - const buf: Buffer = bitbox.Script.scriptHash.input.encode( - bitbox.Script.fromASM(fixture.redeemScriptSig), - bitbox.Script.fromASM(fixture.redeemScript) - ) - assert.equal(buf.toString("hex"), fixture.hex) + const redeemScriptSig: Buffer = bitbox.Script.fromASM(fixture.redeemScriptSig) + const redeemScript: Buffer = bitbox.Script.fromASM(fixture.redeemScript) + const input: Buffer = bitbox.Script.encodeP2SHInput(redeemScriptSig, redeemScript) + assert.equal(input.toString("hex"), fixture.hex) }) it(`should decode scriptHash input`, (): void => { - const redeemScriptSig: any = bitbox.Script.fromASM(fixture.redeemScriptSig) - const redeemScript: any = bitbox.Script.fromASM(fixture.redeemScript) + const redeemScriptSig: Buffer = bitbox.Script.fromASM(fixture.redeemScriptSig) + const redeemScript: Buffer = bitbox.Script.fromASM(fixture.redeemScript) + const input: Buffer = bitbox.Script.encodeP2SHInput(redeemScriptSig, redeemScript) assert.deepEqual( - bitbox.Script.scriptHash.input.decode( - Buffer.from(fixture.hex, "hex") - ), + bitbox.Script.decodeP2SHInput(input), { redeemScriptSig: redeemScriptSig, redeemScript: redeemScript @@ -419,11 +392,10 @@ describe("#Script", (): void => { }) it(`should confirm correctly formatted scriptHash input`, (): void => { - const buf: Buffer = bitbox.Script.scriptHash.input.encode( - bitbox.Script.fromASM(fixture.redeemScriptSig), - bitbox.Script.fromASM(fixture.redeemScript) - ) - const valid: boolean = bitbox.Script.scriptHash.input.check(buf) + const redeemScriptSig: Buffer = bitbox.Script.fromASM(fixture.redeemScriptSig) + const redeemScript: Buffer = bitbox.Script.fromASM(fixture.redeemScript) + const input: Buffer = bitbox.Script.encodeP2SHInput(redeemScriptSig, redeemScript) + const valid: boolean = bitbox.Script.scriptHash.input.check(input) assert.equal(valid, true) }) }) @@ -432,26 +404,25 @@ describe("#Script", (): void => { describe("#scriptHashOutputTemplate", (): void => { fixtures.scriptHashOutputTemplate.forEach((fixture: any): void => { it(`should encode scriptHash output`, (): void => { - const redeemScript: any = bitbox.Script.fromASM(fixture.output) + const redeemScript: Buffer = bitbox.Script.fromASM(fixture.output) const scriptHash: Buffer = bitbox.Crypto.hash160(redeemScript) - const buf: Buffer = bitbox.Script.scriptHash.output.encode(scriptHash) + const output: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash) - assert.equal(buf.toString("hex"), fixture.hex) + assert.equal(output.toString("hex"), fixture.hex) }) it(`should decode scriptHash output`, (): void => { const redeemScript: any = bitbox.Script.fromASM(fixture.output) const scriptHash: Buffer = bitbox.Crypto.hash160(redeemScript) - const buf: Buffer = bitbox.Script.scriptHash.output.decode( - Buffer.from(`${fixture.hex}`, "hex") - ) - assert.deepEqual(buf, scriptHash) + const output: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash) + let decoded: Buffer = bitbox.Script.decodeP2SHOutput(output) + assert.deepEqual(decoded, scriptHash) }) it(`should confirm correctly formatted scriptHash output`, (): void => { const redeemScript: any = bitbox.Script.fromASM(fixture.output) const scriptHash: Buffer = bitbox.Crypto.hash160(redeemScript) - const buf: Buffer = bitbox.Script.scriptHash.output.encode(scriptHash) + const buf: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash) const valid: boolean = bitbox.Script.scriptHash.output.check(buf) assert.equal(valid, true) }) diff --git a/test/unit/TransactionBuilder.ts b/test/unit/TransactionBuilder.ts index d9078ffd..fd08ef26 100644 --- a/test/unit/TransactionBuilder.ts +++ b/test/unit/TransactionBuilder.ts @@ -41,7 +41,7 @@ describe("#TransactionBuilder", (): void => { const originalAmount: number = fixture.amount const txid: string = fixture.txHash const pubKey: any = bitbox.HDNode.toPublicKey(node) - const prevOutScript: string = bitbox.Script.pubKey.output.encode(pubKey) + const prevOutScript: Buffer = bitbox.Script.encodeP2PKOutput(pubKey) transactionBuilder.addInput( txid, 0, @@ -77,8 +77,8 @@ describe("#TransactionBuilder", (): void => { const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") const originalAmount: number = fixture.amount const txid: string = fixture.txHash - const pubKey: any = bitbox.HDNode.toPublicKey(node) - const prevOutScript: string = bitbox.Script.pubKey.output.encode(pubKey) + const pubKey: Buffer = bitbox.HDNode.toPublicKey(node) + const prevOutScript: Buffer = bitbox.Script.encodeP2PKOutput(pubKey) transactionBuilder.addInput( txid, 0, @@ -118,12 +118,12 @@ describe("#TransactionBuilder", (): void => { const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() const originalAmount: number = fixture.amount const txid: string = fixture.txHash - const pubKey1: any = bitbox.HDNode.toPublicKey(node1) - const pubKey2: any = bitbox.HDNode.toPublicKey(node2) - const pubKey3: any = bitbox.HDNode.toPublicKey(node3) - const prevOutScript1: string = bitbox.Script.pubKey.output.encode(pubKey1) - const prevOutScript2: string = bitbox.Script.pubKey.output.encode(pubKey2) - const prevOutScript3: string = bitbox.Script.pubKey.output.encode(pubKey3) + const pubKey1: Buffer = bitbox.HDNode.toPublicKey(node1) + const pubKey2: Buffer = bitbox.HDNode.toPublicKey(node2) + const pubKey3: Buffer = bitbox.HDNode.toPublicKey(node3) + const prevOutScript1: Buffer = bitbox.Script.encodeP2PKOutput(pubKey1) + const prevOutScript2: Buffer = bitbox.Script.encodeP2PKOutput(pubKey2) + const prevOutScript3: Buffer = bitbox.Script.encodeP2PKOutput(pubKey3) transactionBuilder.addInput( txid, 0, @@ -162,12 +162,12 @@ describe("#TransactionBuilder", (): void => { const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") const originalAmount: number = fixture.amount const txid: string = fixture.txHash - const pubKey1: any = bitbox.HDNode.toPublicKey(node1) - const pubKey2: any = bitbox.HDNode.toPublicKey(node2) - const pubKey3: any = bitbox.HDNode.toPublicKey(node3) - const prevOutScript1: string = bitbox.Script.pubKey.output.encode(pubKey1) - const prevOutScript2: string = bitbox.Script.pubKey.output.encode(pubKey2) - const prevOutScript3: string = bitbox.Script.pubKey.output.encode(pubKey3) + const pubKey1: Buffer = bitbox.HDNode.toPublicKey(node1) + const pubKey2: Buffer = bitbox.HDNode.toPublicKey(node2) + const pubKey3: Buffer = bitbox.HDNode.toPublicKey(node3) + const prevOutScript1: Buffer = bitbox.Script.encodeP2PKOutput(pubKey1) + const prevOutScript2: Buffer = bitbox.Script.encodeP2PKOutput(pubKey2) + const prevOutScript3: Buffer = bitbox.Script.encodeP2PKOutput(pubKey3) transactionBuilder.addInput( txid, 0, @@ -209,14 +209,14 @@ describe("#TransactionBuilder", (): void => { const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() const originalAmount: number = fixture.amount const txid: string = fixture.txHash - const pubKey1: any = bitbox.HDNode.toPublicKey(node1) - const pubKey2: any = bitbox.HDNode.toPublicKey(node2) - const pubKey3: any = bitbox.HDNode.toPublicKey(node3) - const pubKey4: any = bitbox.HDNode.toPublicKey(node4) - const prevOutScript1: string = bitbox.Script.pubKey.output.encode(pubKey1) - const prevOutScript2: string = bitbox.Script.pubKey.output.encode(pubKey2) - const prevOutScript3: string = bitbox.Script.pubKey.output.encode(pubKey3) - const prevOutScript4: string = bitbox.Script.pubKey.output.encode(pubKey4) + const pubKey1: Buffer = bitbox.HDNode.toPublicKey(node1) + const pubKey2: Buffer = bitbox.HDNode.toPublicKey(node2) + const pubKey3: Buffer = bitbox.HDNode.toPublicKey(node3) + const pubKey4: Buffer = bitbox.HDNode.toPublicKey(node4) + const prevOutScript1: Buffer = bitbox.Script.encodeP2PKOutput(pubKey1) + const prevOutScript2: Buffer = bitbox.Script.encodeP2PKOutput(pubKey2) + const prevOutScript3: Buffer = bitbox.Script.encodeP2PKOutput(pubKey3) + const prevOutScript4: Buffer = bitbox.Script.encodeP2PKOutput(pubKey4) transactionBuilder.addInput( txid, 0, @@ -270,14 +270,14 @@ describe("#TransactionBuilder", (): void => { const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") const originalAmount: number = fixture.amount const txid: string = fixture.txHash - const pubKey1: any = bitbox.HDNode.toPublicKey(node1) - const pubKey2: any = bitbox.HDNode.toPublicKey(node2) - const pubKey3: any = bitbox.HDNode.toPublicKey(node3) - const pubKey4: any = bitbox.HDNode.toPublicKey(node4) - const prevOutScript1: string = bitbox.Script.pubKey.output.encode(pubKey1) - const prevOutScript2: string = bitbox.Script.pubKey.output.encode(pubKey2) - const prevOutScript3: string = bitbox.Script.pubKey.output.encode(pubKey3) - const prevOutScript4: string = bitbox.Script.pubKey.output.encode(pubKey4) + const pubKey1: Buffer = bitbox.HDNode.toPublicKey(node1) + const pubKey2: Buffer = bitbox.HDNode.toPublicKey(node2) + const pubKey3: Buffer = bitbox.HDNode.toPublicKey(node3) + const pubKey4: Buffer = bitbox.HDNode.toPublicKey(node4) + const prevOutScript1: Buffer = bitbox.Script.encodeP2PKOutput(pubKey1) + const prevOutScript2: Buffer = bitbox.Script.encodeP2PKOutput(pubKey2) + const prevOutScript3: Buffer = bitbox.Script.encodeP2PKOutput(pubKey3) + const prevOutScript4: Buffer = bitbox.Script.encodeP2PKOutput(pubKey4) transactionBuilder.addInput( txid, 0, @@ -332,12 +332,12 @@ describe("#TransactionBuilder", (): void => { const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() const originalAmount: any = fixture.amount const txid: string = fixture.txHash - const pubKey1: any = bitbox.HDNode.toPublicKey(node1) - const pubKey2: any = bitbox.HDNode.toPublicKey(node2) - const pubKey3: any = bitbox.HDNode.toPublicKey(node3) - const prevOutScript1: string = bitbox.Script.pubKey.output.encode(pubKey1) - const prevOutScript2: string = bitbox.Script.pubKey.output.encode(pubKey2) - const prevOutScript3: string = bitbox.Script.pubKey.output.encode(pubKey3) + const pubKey1: Buffer = bitbox.HDNode.toPublicKey(node1) + const pubKey2: Buffer = bitbox.HDNode.toPublicKey(node2) + const pubKey3: Buffer = bitbox.HDNode.toPublicKey(node3) + const prevOutScript1: Buffer = bitbox.Script.encodeP2PKOutput(pubKey1) + const prevOutScript2: Buffer = bitbox.Script.encodeP2PKOutput(pubKey2) + const prevOutScript3: Buffer = bitbox.Script.encodeP2PKOutput(pubKey3) transactionBuilder.addInput( txid, 0, @@ -389,12 +389,12 @@ describe("#TransactionBuilder", (): void => { const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") const originalAmount: number = fixture.amount const txid: string = fixture.txHash - const pubKey1: any = bitbox.HDNode.toPublicKey(node1) - const pubKey2: any = bitbox.HDNode.toPublicKey(node2) - const pubKey3: any = bitbox.HDNode.toPublicKey(node3) - const prevOutScript1: string = bitbox.Script.pubKey.output.encode(pubKey1) - const prevOutScript2: string = bitbox.Script.pubKey.output.encode(pubKey2) - const prevOutScript3: string = bitbox.Script.pubKey.output.encode(pubKey3) + const pubKey1: Buffer = bitbox.HDNode.toPublicKey(node1) + const pubKey2: Buffer = bitbox.HDNode.toPublicKey(node2) + const pubKey3: Buffer = bitbox.HDNode.toPublicKey(node3) + const prevOutScript1: Buffer = bitbox.Script.encodeP2PKOutput(pubKey1) + const prevOutScript2: Buffer = bitbox.Script.encodeP2PKOutput(pubKey2) + const prevOutScript3: Buffer = bitbox.Script.encodeP2PKOutput(pubKey3) transactionBuilder.addInput( txid, 0, @@ -968,10 +968,9 @@ describe("#TransactionBuilder", (): void => { const sendAmount: number = originalAmount - byteCount transactionBuilder.addOutput(fixture.output, sendAmount) const data = fixture.data - const buf: string = bitbox.Script.nullData.output.encode( - Buffer.from(data, "ascii") - ) - transactionBuilder.addOutput(buf, 0) + let buf: Buffer = Buffer.from(data, "ascii") + const encoded: Buffer = bitbox.Script.encodeNullDataOutput(buf) + transactionBuilder.addOutput(encoded, 0) const keyPair = bitbox.HDNode.toKeyPair(node) let redeemScript: undefined transactionBuilder.sign( @@ -1003,10 +1002,9 @@ describe("#TransactionBuilder", (): void => { const sendAmount: number = originalAmount - byteCount transactionBuilder.addOutput(fixture.output, sendAmount) const data = fixture.data - const buf: string = bitbox.Script.nullData.output.encode( - Buffer.from(data, "ascii") - ) - transactionBuilder.addOutput(buf, 0) + let buf: Buffer = Buffer.from(data, "ascii") + const encoded: Buffer = bitbox.Script.encodeNullDataOutput(buf) + transactionBuilder.addOutput(encoded, 0) const keyPair = bitbox.HDNode.toKeyPair(node) let redeemScript: undefined transactionBuilder.sign( @@ -1038,10 +1036,9 @@ describe("#TransactionBuilder", (): void => { const sendAmount: number = originalAmount - byteCount transactionBuilder.addOutput(fixture.output, sendAmount) const data = fixture.data - const buf: string = bitbox.Script.nullData.output.encode( - Buffer.from(data, "ascii") - ) - transactionBuilder.addOutput(buf, 0) + let buf: Buffer = Buffer.from(data, "ascii") + const encoded: Buffer = bitbox.Script.encodeNullDataOutput(buf) + transactionBuilder.addOutput(encoded, 0) const keyPair = bitbox.HDNode.toKeyPair(node) let redeemScript: undefined transactionBuilder.sign( @@ -1071,9 +1068,9 @@ describe("#TransactionBuilder", (): void => { const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() const txid: string = fixture.txHash const originalAmount: number = fixture.amount - const pubKey1: any = bitbox.HDNode.toPublicKey(node1) - const pubKey2: any = bitbox.HDNode.toPublicKey(node2) - const buf1: string = bitbox.Script.multisig.output.encode(1, [ + const pubKey1: Buffer = bitbox.HDNode.toPublicKey(node1) + const pubKey2: Buffer = bitbox.HDNode.toPublicKey(node2) + const buf1: Buffer = bitbox.Script.encodeP2MSOutput(1, [ pubKey1, pubKey2 ]) @@ -1087,9 +1084,9 @@ describe("#TransactionBuilder", (): void => { { P2PKH: 3 }, { P2PKH: 3 } ) - const pubKey3: any = bitbox.HDNode.toPublicKey(node3) - const pubKey4: any = bitbox.HDNode.toPublicKey(node4) - const buf2: string = bitbox.Script.multisig.output.encode(1, [ + const pubKey3: Buffer = bitbox.HDNode.toPublicKey(node3) + const pubKey4: Buffer = bitbox.HDNode.toPublicKey(node4) + const buf2: Buffer = bitbox.Script.encodeP2MSOutput(1, [ pubKey3, pubKey4 ]) @@ -1153,9 +1150,9 @@ describe("#TransactionBuilder", (): void => { const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() const txid: string = fixture.txHash const originalAmount: number = fixture.amount - const pubKey1: any = bitbox.HDNode.toPublicKey(node1) - const pubKey2: any = bitbox.HDNode.toPublicKey(node2) - const buf1: string = bitbox.Script.multisig.output.encode(1, [ + const pubKey1: Buffer = bitbox.HDNode.toPublicKey(node1) + const pubKey2: Buffer = bitbox.HDNode.toPublicKey(node2) + const buf1: Buffer = bitbox.Script.encodeP2MSOutput(1, [ pubKey1, pubKey2 ]) @@ -1170,16 +1167,16 @@ describe("#TransactionBuilder", (): void => { { P2PKH: 3 } ) const sendAmount: number = originalAmount - byteCount - const pubKey3: any = bitbox.HDNode.toPublicKey(node3) - const pubKey4: any = bitbox.HDNode.toPublicKey(node4) - const buf2: string = bitbox.Script.multisig.output.encode(1, [ + const pubKey3: Buffer = bitbox.HDNode.toPublicKey(node3) + const pubKey4: Buffer = bitbox.HDNode.toPublicKey(node4) + const buf2: Buffer = bitbox.Script.encodeP2MSOutput(1, [ pubKey3, pubKey4 ]) transactionBuilder.addOutput(buf2, Math.floor(sendAmount / 2)) - const pubKey5 = bitbox.HDNode.toPublicKey(node5) - const pubKey6 = bitbox.HDNode.toPublicKey(node6) - const buf3: string = bitbox.Script.multisig.output.encode(1, [ + const pubKey5: Buffer = bitbox.HDNode.toPublicKey(node5) + const pubKey6: Buffer = bitbox.HDNode.toPublicKey(node6) + const buf3: Buffer = bitbox.Script.encodeP2MSOutput(1, [ pubKey5, pubKey6 ]) @@ -1245,9 +1242,9 @@ describe("#TransactionBuilder", (): void => { const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() const txid: string = fixture.txHash const originalAmount: number = fixture.amount - const pubKey1: any = bitbox.HDNode.toPublicKey(node1) - const pubKey2: any = bitbox.HDNode.toPublicKey(node2) - const buf1: string = bitbox.Script.multisig.output.encode(1, [ + const pubKey1: Buffer = bitbox.HDNode.toPublicKey(node1) + const pubKey2: Buffer = bitbox.HDNode.toPublicKey(node2) + const buf1: Buffer = bitbox.Script.encodeP2MSOutput(1, [ pubKey1, pubKey2 ]) @@ -1257,9 +1254,9 @@ describe("#TransactionBuilder", (): void => { transactionBuilder.DEFAULT_SEQUENCE, buf1 ) - const pubKey3: any = bitbox.HDNode.toPublicKey(node3) - const pubKey4: any = bitbox.HDNode.toPublicKey(node4) - const buf2: string = bitbox.Script.multisig.output.encode(1, [ + const pubKey3: Buffer = bitbox.HDNode.toPublicKey(node3) + const pubKey4: Buffer = bitbox.HDNode.toPublicKey(node4) + const buf2: Buffer = bitbox.Script.encodeP2MSOutput(1, [ pubKey3, pubKey4 ]) @@ -1274,16 +1271,16 @@ describe("#TransactionBuilder", (): void => { { P2PKH: 3 } ) const sendAmount: number = originalAmount - byteCount - const pubKey5 = bitbox.HDNode.toPublicKey(node5) - const pubKey6 = bitbox.HDNode.toPublicKey(node6) - const buf3: string = bitbox.Script.multisig.output.encode(1, [ + const pubKey5: Buffer = bitbox.HDNode.toPublicKey(node5) + const pubKey6: Buffer = bitbox.HDNode.toPublicKey(node6) + const buf3: Buffer = bitbox.Script.encodeP2MSOutput(1, [ pubKey5, pubKey6 ]) transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) - const pubKey7 = bitbox.HDNode.toPublicKey(node7) - const pubKey8 = bitbox.HDNode.toPublicKey(node8) - const buf4: string = bitbox.Script.multisig.output.encode(1, [ + const pubKey7: Buffer = bitbox.HDNode.toPublicKey(node7) + const pubKey8: Buffer = bitbox.HDNode.toPublicKey(node8) + const buf4: Buffer = bitbox.Script.encodeP2MSOutput(1, [ pubKey7, pubKey8 ]) @@ -1352,9 +1349,9 @@ describe("#TransactionBuilder", (): void => { const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() const txid: string = fixture.txHash const originalAmount: number = fixture.amount - const pubKey1: any = bitbox.HDNode.toPublicKey(node1) - const pubKey2: any = bitbox.HDNode.toPublicKey(node2) - const buf1: string = bitbox.Script.multisig.output.encode(1, [ + const pubKey1: Buffer = bitbox.HDNode.toPublicKey(node1) + const pubKey2: Buffer = bitbox.HDNode.toPublicKey(node2) + const buf1: Buffer = bitbox.Script.encodeP2MSOutput(1, [ pubKey1, pubKey2 ]) @@ -1364,9 +1361,9 @@ describe("#TransactionBuilder", (): void => { transactionBuilder.DEFAULT_SEQUENCE, buf1 ) - const pubKey3: any = bitbox.HDNode.toPublicKey(node3) - const pubKey4: any = bitbox.HDNode.toPublicKey(node4) - const buf2: string = bitbox.Script.multisig.output.encode(1, [ + const pubKey3: Buffer = bitbox.HDNode.toPublicKey(node3) + const pubKey4: Buffer = bitbox.HDNode.toPublicKey(node4) + const buf2: Buffer = bitbox.Script.encodeP2MSOutput(1, [ pubKey3, pubKey4 ]) @@ -1381,9 +1378,9 @@ describe("#TransactionBuilder", (): void => { { P2PKH: 3 } ) const sendAmount: number = originalAmount - byteCount - const pubKey5: any = bitbox.HDNode.toPublicKey(node5) - const pubKey6: any = bitbox.HDNode.toPublicKey(node6) - const buf3: string = bitbox.Script.multisig.output.encode(1, [ + const pubKey5: Buffer = bitbox.HDNode.toPublicKey(node5) + const pubKey6: Buffer = bitbox.HDNode.toPublicKey(node6) + const buf3: Buffer = bitbox.Script.encodeP2MSOutput(1, [ pubKey5, pubKey6 ]) @@ -1458,7 +1455,7 @@ describe("#TransactionBuilder", (): void => { bitbox.Script.opcodes.OP_CHECKSIG ]) const scriptHash1: any = bitbox.Crypto.hash160(buf1) - const data1: string = bitbox.Script.scriptHash.output.encode(scriptHash1) + const data1: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash1) transactionBuilder.addInput( txid, 0, @@ -1480,7 +1477,7 @@ describe("#TransactionBuilder", (): void => { ]) const scriptHash2 = bitbox.Crypto.hash160(buf2) - const data2: string = bitbox.Script.scriptHash.output.encode(scriptHash2) + const data2: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash2) transactionBuilder.addOutput(data2, sendAmount) const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) transactionBuilder.sign( @@ -1544,8 +1541,8 @@ describe("#TransactionBuilder", (): void => { bitbox.Script.opcodes.OP_EQUALVERIFY, bitbox.Script.opcodes.OP_CHECKSIG ]) - const scriptHash1: any = bitbox.Crypto.hash160(buf1) - const data1: string = bitbox.Script.scriptHash.output.encode(scriptHash1) + const scriptHash1: Buffer = bitbox.Crypto.hash160(buf1) + const data1: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash1) transactionBuilder.addInput( txid, 0, @@ -1557,27 +1554,27 @@ describe("#TransactionBuilder", (): void => { { P2PKH: 2 } ) const sendAmount: number = originalAmount - byteCount - const identifier2 = bitbox.HDNode.toIdentifier(node2) - const buf2 = bitbox.Script.encode([ + const identifier2: Buffer = bitbox.HDNode.toIdentifier(node2) + const buf2: Buffer = bitbox.Script.encode([ bitbox.Script.opcodes.OP_DUP, bitbox.Script.opcodes.OP_HASH160, identifier2, bitbox.Script.opcodes.OP_EQUALVERIFY, bitbox.Script.opcodes.OP_CHECKSIG ]) - const scriptHash2 = bitbox.Crypto.hash160(buf2) - const data2: string = bitbox.Script.scriptHash.output.encode(scriptHash2) + const scriptHash2: Buffer = bitbox.Crypto.hash160(buf2) + const data2: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash2) transactionBuilder.addOutput(data2, Math.floor(sendAmount / 2)) - const identifier3 = bitbox.HDNode.toIdentifier(node3) - const buf3 = bitbox.Script.encode([ + const identifier3: Buffer = bitbox.HDNode.toIdentifier(node3) + const buf3: Buffer = bitbox.Script.encode([ bitbox.Script.opcodes.OP_DUP, bitbox.Script.opcodes.OP_HASH160, identifier3, bitbox.Script.opcodes.OP_EQUALVERIFY, bitbox.Script.opcodes.OP_CHECKSIG ]) - const scriptHash3 = bitbox.Crypto.hash160(buf3) - const data3: string = bitbox.Script.scriptHash.output.encode(scriptHash3) + const scriptHash3: Buffer = bitbox.Crypto.hash160(buf3) + const data3: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash3) transactionBuilder.addOutput(data3, Math.floor(sendAmount / 2)) const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) transactionBuilder.sign( @@ -1636,15 +1633,15 @@ describe("#TransactionBuilder", (): void => { const txid: string = fixture.txHash const originalAmount: number = fixture.amount const identifier1: Buffer = bitbox.HDNode.toIdentifier(node1) - const buf1: any = bitbox.Script.encode([ + const buf1: Buffer = bitbox.Script.encode([ bitbox.Script.opcodes.OP_DUP, bitbox.Script.opcodes.OP_HASH160, identifier1, bitbox.Script.opcodes.OP_EQUALVERIFY, bitbox.Script.opcodes.OP_CHECKSIG ]) - const scriptHash1: any = bitbox.Crypto.hash160(buf1) - const data1: string = bitbox.Script.scriptHash.output.encode(scriptHash1) + const scriptHash1: Buffer = bitbox.Crypto.hash160(buf1) + const data1: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash1) transactionBuilder.addInput( txid, 0, @@ -1665,14 +1662,14 @@ describe("#TransactionBuilder", (): void => { bitbox.Script.opcodes.OP_CHECKSIG ]) const scriptHash2: Buffer = bitbox.Crypto.hash160(buf2) - const data2: string = bitbox.Script.scriptHash.output.encode(scriptHash2) + const data2: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash2) transactionBuilder.addInput( txid, 1, transactionBuilder.DEFAULT_SEQUENCE, data2 ) - const identifier3 = bitbox.HDNode.toIdentifier(node3) + const identifier3: Buffer = bitbox.HDNode.toIdentifier(node3) const buf3: Buffer = bitbox.Script.encode([ bitbox.Script.opcodes.OP_DUP, bitbox.Script.opcodes.OP_HASH160, @@ -1681,7 +1678,7 @@ describe("#TransactionBuilder", (): void => { bitbox.Script.opcodes.OP_CHECKSIG ]) const scriptHash3: Buffer = bitbox.Crypto.hash160(buf3) - const data3: string = bitbox.Script.scriptHash.output.encode(scriptHash3) + const data3: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash3) transactionBuilder.addOutput(data3, Math.floor(sendAmount / 2)) const identifier4: Buffer = bitbox.HDNode.toIdentifier(node4) const buf4: Buffer = bitbox.Script.encode([ @@ -1692,7 +1689,7 @@ describe("#TransactionBuilder", (): void => { bitbox.Script.opcodes.OP_CHECKSIG ]) const scriptHash4: Buffer = bitbox.Crypto.hash160(buf4) - const data4: string = bitbox.Script.scriptHash.output.encode(scriptHash4) + const data4: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash4) transactionBuilder.addOutput(data4, Math.floor(sendAmount / 2)) const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) @@ -1755,14 +1752,14 @@ describe("#TransactionBuilder", (): void => { const txid: string = fixture.txHash const originalAmount: number = fixture.amount const identifier1: Buffer = bitbox.HDNode.toIdentifier(node1) - const buf1: any = bitbox.Script.encode([ + const buf1: Buffer = bitbox.Script.encode([ bitbox.Script.opcodes.OP_DUP, bitbox.Script.opcodes.OP_HASH160, identifier1, bitbox.Script.opcodes.OP_EQUALVERIFY, bitbox.Script.opcodes.OP_CHECKSIG ]) - const scriptHash1: any = bitbox.Crypto.hash160(buf1) + const scriptHash1: Buffer = bitbox.Crypto.hash160(buf1) const data1 = bitbox.Script.scriptHash.output.encode(scriptHash1) transactionBuilder.addInput( txid, @@ -1775,15 +1772,15 @@ describe("#TransactionBuilder", (): void => { { P2PKH: 2 } ) const sendAmount: number = originalAmount - byteCount - const identifier2 = bitbox.HDNode.toIdentifier(node2) - const buf2 = bitbox.Script.encode([ + const identifier2: Buffer = bitbox.HDNode.toIdentifier(node2) + const buf2: Buffer = bitbox.Script.encode([ bitbox.Script.opcodes.OP_DUP, bitbox.Script.opcodes.OP_HASH160, identifier2, bitbox.Script.opcodes.OP_EQUALVERIFY, bitbox.Script.opcodes.OP_CHECKSIG ]) - const scriptHash2 = bitbox.Crypto.hash160(buf2) + const scriptHash2: Buffer = bitbox.Crypto.hash160(buf2) const data2 = bitbox.Script.scriptHash.output.encode(scriptHash2) transactionBuilder.addInput( txid, @@ -1791,15 +1788,15 @@ describe("#TransactionBuilder", (): void => { transactionBuilder.DEFAULT_SEQUENCE, data2 ) - const identifier3 = bitbox.HDNode.toIdentifier(node3) - const buf3 = bitbox.Script.encode([ + const identifier3: Buffer = bitbox.HDNode.toIdentifier(node3) + const buf3: Buffer = bitbox.Script.encode([ bitbox.Script.opcodes.OP_DUP, bitbox.Script.opcodes.OP_HASH160, identifier3, bitbox.Script.opcodes.OP_EQUALVERIFY, bitbox.Script.opcodes.OP_CHECKSIG ]) - const scriptHash3 = bitbox.Crypto.hash160(buf3) + const scriptHash3: Buffer = bitbox.Crypto.hash160(buf3) const data3 = bitbox.Script.scriptHash.output.encode(scriptHash3) transactionBuilder.addOutput(data3, sendAmount) const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) @@ -1868,11 +1865,10 @@ describe("#TransactionBuilder", (): void => { const sendAmount: number = originalAmount - byteCount transactionBuilder.addOutput(fixture.output, sendAmount) const data = fixture.data - const buf = bitbox.Script.nullData.output.encode( - Buffer.from(data, "ascii") - ) - transactionBuilder.addOutput(buf, 0) - const keyPair = bitbox.HDNode.toKeyPair(node) + let buf: Buffer = Buffer.from(data, "ascii") + const encoded: Buffer = bitbox.Script.encodeNullDataOutput(buf) + transactionBuilder.addOutput(encoded, 0) + const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(node) let redeemScript: undefined transactionBuilder.sign( 0, @@ -1903,10 +1899,9 @@ describe("#TransactionBuilder", (): void => { const sendAmount: number = originalAmount - byteCount transactionBuilder.addOutput(fixture.output, sendAmount) const data = fixture.data - const buf = bitbox.Script.nullData.output.encode( - Buffer.from(data, "ascii") - ) - transactionBuilder.addOutput(buf, 0) + let buf: Buffer = Buffer.from(data, "ascii") + const encoded: Buffer = bitbox.Script.encodeNullDataOutput(buf) + transactionBuilder.addOutput(encoded, 0) const keyPair = bitbox.HDNode.toKeyPair(node) let redeemScript: undefined transactionBuilder.sign( @@ -1938,10 +1933,9 @@ describe("#TransactionBuilder", (): void => { const sendAmount: number = originalAmount - byteCount transactionBuilder.addOutput(fixture.output, sendAmount) const data = fixture.data - const buf = bitbox.Script.nullData.output.encode( - Buffer.from(data, "ascii") - ) - transactionBuilder.addOutput(buf, 0) + let buf: Buffer = Buffer.from(data, "ascii") + const encoded: Buffer = bitbox.Script.encodeNullDataOutput(buf) + transactionBuilder.addOutput(encoded, 0) const keyPair = bitbox.HDNode.toKeyPair(node) let redeemScript: undefined transactionBuilder.sign( From e84187d0fa93bd7bde0866b9d9cad78ec7a82161 Mon Sep 17 00:00:00 2001 From: josephroyking Date: Tue, 14 May 2019 11:03:43 -0700 Subject: [PATCH 377/480] Updating OP_RETURN test for livenet and to support all msg lengths --- examples/low-level/OP_RETURN/op_return.js | 73 +++++++++++++++-------- 1 file changed, 49 insertions(+), 24 deletions(-) diff --git a/examples/low-level/OP_RETURN/op_return.js b/examples/low-level/OP_RETURN/op_return.js index b567b3a3..184d9074 100644 --- a/examples/low-level/OP_RETURN/op_return.js +++ b/examples/low-level/OP_RETURN/op_return.js @@ -4,13 +4,17 @@ // Instantiate bitbox. const bitboxLib = "../../../lib/BITBOX" -const BITBOX = require(bitboxLib).BITBOX -const bitbox = new BITBOX({ restURL: "https://trest.bitcoin.com/v2/" }) +const BITBOXSDK = require(bitboxLib).BITBOX +const bitbox = new BITBOXSDK() // Choose a transaction to parse for OP_Return +// Long msg example (>20 char) const txid = `5b81b332c8fa5a2b2e77bb928bd18072af4485f02a7325d346f1f28cf3d4a6bb` +// Short msg example (<20 char) +//const txid = `d887132e3408f8d10e9b82bec447ca12e485cb6160af88d9b14f22ba865f6793` + function parseOP_RETURN(txid) { console.log(`Parsing transaction ${txid} for messages in OP_RETURN...`) console.log(``) @@ -20,50 +24,71 @@ function parseOP_RETURN(txid) { tx => { // You may wish to log this tx info to the console to inspect and plan your parsing function // console.log(tx) - + // Begin parsing transaction // Initialize an array to store any OP_Return messages - const messages = [] + let messages = [] // Iterate over outputs looking for OP_Return outputs + + for (let i=0; i < tx.vout.length; i++) { + + // If this is an OP_Return output + if (typeof tx.vout[i].scriptPubKey.addresses === 'undefined') { + + let message = '' + let fromAsm = '' + let decoded = '' + + //Pretty print your raw transaction data to the console + //console.log(JSON.stringify(tx, null, 2)) - for (let i = 0; i < tx.vout.length; i++) { - // If this is an OP_Return output - if (typeof tx.vout[i].scriptPubKey.addresses === "undefined") { - let message = "" + try { + // Decode the OP_Return message + message = tx.vout[i].scriptPubKey.asm - // Decode the OP_Return message - message = tx.vout[i].scriptPubKey.asm + // If length is <= 20 characters, translate from hex + if (message.length <= 20) { + message = tx.vout[i].scriptPubKey.hex + message = message.substring(4) + message = "OP_RETURN " + message + } - const fromAsm = bitbox.Script.fromASM(message) - const decoded = bitbox.Script.decode(fromAsm) - message = decoded[1].toString("ascii") + fromAsm = bitbox.Script.fromASM(message) + decoded = bitbox.Script.decode(fromAsm) + console.log(`Decoded:`) + console.log(decoded) + message = decoded[1].toString('ascii') - // Add this decoded OP_Return message to an array, in case multiple outputs have OP_Return messages - messages.push(message) + // Add this decoded OP_Return message to an array, in case multiple outputs have OP_Return messages + messages.push(message) + } + catch(err) { + console.log(`Error in parsing OP_RETURN:`) + console.log(err) + } } } - + if (messages.length === 1) { console.log(`Message found!`) console.log(``) console.log(`Message: ${messages[0]}`) - } else { + } + else { console.log(`${messages.length} messages found!`) console.log(``) - for (let j = 0; j < messages.length; j++) { - console.log( - `Message ${j + 1} of ${messages.length + 1}: ${messages[j]}` - ) + for (let j=0; j < messages.length; j++) { + console.log(`Message ${j+1} of ${messages.length+1}: ${messages[j]}`) } } }, err => { - console.log("Error in bitbox.Transaction.details(${txid}):") + console.log('Error in bitbox.Transaction.details(${txid}):') console.log(err) } - ) + ) } -parseOP_RETURN(txid) +parseOP_RETURN(txid) \ No newline at end of file From 3bdc1b13c512ce894f5d8b8d2d678ebcda991247 Mon Sep 17 00:00:00 2001 From: josephroyking Date: Tue, 14 May 2019 11:07:56 -0700 Subject: [PATCH 378/480] Cleaning up and removing debug logging statements --- examples/low-level/OP_RETURN/op_return.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/examples/low-level/OP_RETURN/op_return.js b/examples/low-level/OP_RETURN/op_return.js index 184d9074..0068e739 100644 --- a/examples/low-level/OP_RETURN/op_return.js +++ b/examples/low-level/OP_RETURN/op_return.js @@ -4,8 +4,8 @@ // Instantiate bitbox. const bitboxLib = "../../../lib/BITBOX" -const BITBOXSDK = require(bitboxLib).BITBOX -const bitbox = new BITBOXSDK() +const BITBOX = require(bitboxLib).BITBOX +const bitbox = new BITBOX() // Choose a transaction to parse for OP_Return @@ -57,8 +57,6 @@ function parseOP_RETURN(txid) { fromAsm = bitbox.Script.fromASM(message) decoded = bitbox.Script.decode(fromAsm) - console.log(`Decoded:`) - console.log(decoded) message = decoded[1].toString('ascii') // Add this decoded OP_Return message to an array, in case multiple outputs have OP_Return messages From 77a751b8720f37c565d6d8a9cbe2c7c5ca933aab Mon Sep 17 00:00:00 2001 From: James Cramer Date: Thu, 16 May 2019 22:12:19 -0400 Subject: [PATCH 379/480] update index.ts: * remove cli * update exports * add BchInfo interface --- index.ts | 287 ++++++-------------------------------- lib/Address.ts | 34 +---- lib/TransactionBuilder.ts | 5 +- 3 files changed, 52 insertions(+), 274 deletions(-) diff --git a/index.ts b/index.ts index 64f9482c..8a4108a1 100644 --- a/index.ts +++ b/index.ts @@ -1,247 +1,50 @@ #!/usr/bin/env node /// -require("babel-register") -import * as path from "path" -import * as program from "commander" -import chalk from "chalk" -import * as fs from "fs" -import * as repl from "repl" -import * as mkdirp from "mkdirp" -import * as figlet from "figlet" -import * as touch from "touch" -import * as emoji from "node-emoji" - -// TODO: port to `import` statement -let clear = require("clear") -let clone = require("git-clone") - -import { BITBOX } from "./lib/BITBOX" -import { Address } from "./lib/Address" -import { BitcoinCash } from "./lib/BitcoinCash" -import { Block } from "./lib/Block" -import { Blockchain } from "./lib/Blockchain" -import { Control } from "./lib/Control" -import { Crypto } from "./lib/Crypto" -import { ECPair } from "./lib/ECPair" -import { Generating } from "./lib/Generating" -import { HDNode } from "./lib/HDNode" -import { Mining } from "./lib/Mining" -import { Mnemonic } from "./lib/Mnemonic" -import { Price } from "./lib/Price" -import { RawTransactions } from "./lib/RawTransactions" -import { Script } from "./lib/Script" -import { Transaction } from "./lib/Transaction" -import { TransactionBuilder } from "./lib/TransactionBuilder" -import { Util } from "./lib/Util" -import { Socket } from "./lib/Socket" -// import { Wallet } from "./lib/Wallet" -import { Schnorr } from "./lib/Schnorr" - -interface ConsoleOptions { - environment: string -} - -interface NewOptions extends ConsoleOptions { - scaffold: string - restURL: string -} - -program.version("7.3.0 ", "-v, --version") - -program - .command("new ") - .option( - "-s, --scaffold ", - "The framework to use. Options include react, angular, vuejs, nextjs, node and websockets. (Default: react)" - ) - .option( - "-r, --restURL ", - "The rest URL to use. (Default: https://trest.bitcoin.com/v2/)" - ) - .option( - "-e, --environment ", - "environment of running BITBOX instance. Ex: production, staging. (Default: development)" - ) - .description(`create a new BITBOX application`) - .action((name: string, options: NewOptions): void => { - // confirm project doesn't already exist - if (fs.existsSync(`./${name}`)) { - console.log(chalk.red(`Project ${name} already exists`)) - process.exit(1) - } - - // pass in empty config object as it's not needed for new command - const config: {} = {} - - // get environment option. default to development if no options.environment - const environment = fetchOption("environment=development", config, options) - - // get restURL option. default to TREST if no options.restURL - const restURL = fetchOption( - "restURL=https://trest.bitcoin.com/v2/", - config, - options - ) - - // scaffold flow - if (options && options.scaffold) { - let scaffold: string = options.scaffold.toLowerCase() - let repo: string = '' - if (scaffold === "node") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-node.git" - } else if (scaffold === "angular") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-angular.git" - } else if (scaffold === "next") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-next.git" - } else if (scaffold === "react") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-react.git" - } else if (scaffold === "vue") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-vue.git" - } else if (scaffold === "websockets") { - repo = "https://github.com/Bitcoin-com/bitbox-scaffold-websockets.git" - } else { - console.log(chalk.red(`Scaffold ${scaffold} not supported`)) - process.exit(1) - } - - // TODO: Bring this back when we allow --repo flag to clone random repos - // if (options && options.repo) { - // scaffold = "custom repo" - // repo = options.repo.toLowerCase() - // } - - clear() - console.log( - chalk.blue( - figlet.textSync("BITBOX", { - font: "3-D", - horizontalLayout: "full" - }) - ) - ) - - // pass in empty conf object - const conf: {} = {} - console.log(chalk.blue(`Scaffolding ${scaffold} app in ${name}`)) - clone(repo, `./${name}`, [conf], (res: string): any => { - if (res === "Error: 'git clone' failed with status 128") { - console.log(chalk.red("Must create new app in to an empty directory")) - } else { - console.log(chalk.green("All done."), emoji.get(":white_check_mark:")) - console.log( - chalk.blue( - "Now `cd` in to your new project and run `npm install && npm start`" - ), - emoji.get(":rocket:") - ) - } - }) - return - } - - console.log(chalk.green(`Creating ${name}/ directory`)) - console.log(chalk.green(`Creating src/ directory: ./${name}/src`)) - mkdirp(`./${name}/src`, (err: any) => { }) - - console.log(chalk.green(`Creating tests/ directory: ./${name}/tests`)) - mkdirp(`./${name}/tests`, (err: any) => { }) - - console.log( - chalk.green(`Creating bitbox.js configuration file: ./${name}/bitbox.js`) - ) - - mkdirp(`./${name}`, (err: any) => { }) - touch(`./${name}/bitbox.js`) - fs.writeFileSync( - `./${name}/bitbox.js`, - `exports.config = { - environments: { - ${environment}: { - restURL: "${restURL}" - } +export * from './lib/BITBOX'; +export * from './lib/Address'; +export * from './lib/BitcoinCash'; +export * from './lib/Block'; +export * from './lib/Blockchain'; +export * from './lib/Control'; +export * from './lib/Crypto'; +export * from './lib/ECPair'; +export * from './lib/Generating'; +export * from './lib/HDNode'; +export * from './lib/Mining'; +export * from './lib/Mnemonic'; +export * from './lib/Price'; +export * from './lib/RawTransactions'; +export * from './lib/Script'; +export * from './lib/Transaction'; +export * from './lib/TransactionBuilder'; +export * from './lib/Util'; +export * from './lib/Socket'; +export * from './lib/Schnorr'; + +export interface BchInfo { + hashGenesisBlock: string + port: number + portRpc: number + protocol: { + magic: number } -}; -` - ) - fs.appendFileSync(`./${name}/.gitignore`, ".console_history") - console.log(chalk.blue("All done."), emoji.get(":white_check_mark:")) - console.log( - chalk.blue( - "Go get em! Remember--with great power comes great responsibility." - ), - emoji.get(":rocket:") - ) - }) - -program - .command("console") - .option( - "-e, --environment ", - "environment of running BITBOX instance. Ex: production, staging. (Default: development)" - ) - .description("Run a console with Bitcoin Cash RPC commands available") - .action((options: ConsoleOptions): void => { - - // TODO: create interface for `config` - let config: any = { - environments: {} - } - - try { - config = require(`${process.cwd()}/bitbox.js`).config - } catch (err) { - console.log( - chalk.red("Console command must be run inside a bitbox project") - ) - process.exit(1) + seedsDns: string[] + versions: { + bip32: { + private: number + public: number } - const replServer = repl.start("> ") - const historyFile = path.join(process.cwd(), ".console_history") - require("repl.history")(replServer, historyFile) - - const environment = fetchOption("environment=development", config, options) - - replServer.context.bitbox = new BITBOX(config.environments[environment]) - }) - - -function fetchOption(kv: string, config: any, options: ConsoleOptions | NewOptions | any): string { - // TODO: remove `any` type from `options` argument - const parts: string[] = kv.split("=") - const key: string = parts[0] - const defaultVal: string = parts[1] - if (options && options[key]) return options[key] - else if (config && config.new && config.new[key]) return config.new[key] - - return defaultVal -} - -program.parse(process.argv) - -// print help if no command given -// if (!process.argv.slice(2).length) program.outputHelp() - -export { - Address, - BITBOX, - BitcoinCash, - Block, - Blockchain, - Control, - Crypto, - ECPair, - Generating, - HDNode, - Mining, - Mnemonic, - Price, - RawTransactions, - Script, - Transaction, - TransactionBuilder, - Util, - Socket, - // Wallet, - Schnorr -} + bip44: number + private: number + public: number + scripthash: number + messagePrefix: string + } + name: string + per1: number + unit: string + testnet: boolean + toBitcoinJS: any + toBitcore: any +} \ No newline at end of file diff --git a/lib/Address.ts b/lib/Address.ts index 4ed8d6d2..d3752192 100644 --- a/lib/Address.ts +++ b/lib/Address.ts @@ -2,6 +2,7 @@ import axios, { AxiosResponse } from "axios" import { AddressDetailsResult, AddressUtxoResult, AddressUnconfirmedResult } from "bitcoin-com-rest"; import * as bcl from "bitcoincashjs-lib" import { resturl } from "./BITBOX" +import { BchInfo } from ".."; // TODO: port require statements to impprt const Bitcoin = require("bitcoincashjs-lib") const cashaddr = require("cashaddrjs") @@ -21,33 +22,6 @@ interface Decoded extends Hash { format: string } -export interface BitcoinCash { - hashGenesisBlock: string - port: number - portRpc: number - protocol: { - magic: number - } - seedsDns: string[] - versions: { - bip32: { - private: number - public: number - } - bip44: number - private: number - public: number - scripthash: number - messagePrefix: string - } - name: string - per1: number - unit: string - testnet: boolean - toBitcoinJS: any - toBitcore: any -} - interface DecodedHash160 { legacyAddress: string cashAddress: string @@ -63,7 +37,7 @@ export class Address { // Translate address from any address format into a specific format. public toLegacyAddress(address: string): string { const { prefix, type, hash }: Decoded = this._decode(address) - let bitcoincash: BitcoinCash = coininfo.bitcoincash.main + let bitcoincash: BchInfo = coininfo.bitcoincash.main switch (prefix) { case "bitcoincash": bitcoincash = coininfo.bitcoincash.main @@ -224,7 +198,7 @@ export class Address { } public fromXPub(xpub: string, path: string = "0/0"): string { - let bitcoincash: BitcoinCash + let bitcoincash: BchInfo if (xpub[0] === "x") bitcoincash = coininfo.bitcoincash.main else bitcoincash = coininfo.bitcoincash.test @@ -235,7 +209,7 @@ export class Address { } public fromXPriv(xpriv: string, path: string = "0'/0"): string { - let bitcoincash: BitcoinCash + let bitcoincash: BchInfo if (xpriv[0] === "x") bitcoincash = coininfo.bitcoincash.main else bitcoincash = coininfo.bitcoincash.test diff --git a/lib/TransactionBuilder.ts b/lib/TransactionBuilder.ts index 49f8c273..b7b74b40 100644 --- a/lib/TransactionBuilder.ts +++ b/lib/TransactionBuilder.ts @@ -1,6 +1,7 @@ // imports import { ECPair } from "bitcoincashjs-lib"; -import { Address, BitcoinCash } from "./Address" +import { Address } from "./Address" +import { BchInfo } from ".."; // consts const Bitcoin = require("bitcoincashjs-lib") @@ -35,7 +36,7 @@ export class TransactionBuilder { private _address: Address constructor(network: string = "mainnet", address: Address = new Address()) { - let bitcoincash: BitcoinCash + let bitcoincash: BchInfo this._address = address if (network === "bitcoincash" || network === "mainnet") bitcoincash = coininfo.bitcoincash.main From ac2be5e17abff57b1ca8dadce55c83e638486dc5 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 17 May 2019 13:56:22 +0900 Subject: [PATCH 380/480] bump v. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f732addf..f15a3bae 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "7.3.0", + "version": "8.0.0", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ From bf8d84851d63fc4dd6651b589c71af378d57ef3b Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 17 May 2019 16:28:24 +0900 Subject: [PATCH 381/480] Remove bitbox-cli functionality and clean up dependencies. --- .babelrc | 3 - README.md | 14 - index.ts | 85 ++- lib/interfaces/vendors.d.ts | 558 ++++++++++--------- package.json | 27 +- yarn.lock | 1001 +---------------------------------- 6 files changed, 337 insertions(+), 1351 deletions(-) delete mode 100644 .babelrc diff --git a/.babelrc b/.babelrc deleted file mode 100644 index c13c5f62..00000000 --- a/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "presets": ["es2015"] -} diff --git a/README.md b/README.md index 5f026fdf..ac8a7975 100644 --- a/README.md +++ b/README.md @@ -24,28 +24,14 @@ Open Source / Creative Commons Listings - [buffer](https://www.npmjs.com/package/buffer) - MIT - [cashaddrjs](https://github.com/bitcoincashjs/cashaddrjs/blob/master/LICENSE) - MIT - [chai](https://www.npmjs.com/package/chai) - MIT -- [chalk](https://www.npmjs.com/package/chalk) - MIT -- [clear](https://www.npmjs.com/package/clear) - none -- [commander](https://www.npmjs.com/package/commander) - MIT -- [cp-file](https://www.npmjs.com/package/cp-file) - MIT -- [ecurve](https://www.npmjs.com/package/ecurve) - MIT -- [figlet](https://www.npmjs.com/package/figlet) - MIT -- [git-clone](https://www.npmjs.com/package/git-clone) - ICS -- [ini](https://www.npmjs.com/package/ini) - ICS -- [mkdirp](https://www.npmjs.com/package/mkdirp) - MIT - [mocha](https://www.npmjs.com/package/mocha) - MIT -- [node-cmd](https://www.npmjs.com/package/node-cmd) - DBAD -- [node-emoji](https://www.npmjs.com/package/node-emoji) - MIT - [nyc](https://www.npmjs.com/package/nyc) - ICS - [qrcode](https://www.npmjs.com/package/qrcode) - MIT - [randombytes](https://www.npmjs.com/package/randombytes) - MIT - [safe-buffer](https://www.npmjs.com/package/safe-buffer) - MIT - [satoshi-bitcoin](https://www.npmjs.com/package/satoshi-bitcoin) - MIT - [sinon](https://www.npmjs.com/package/sinon) - BSD-3-Clause -- [touch](https://www.npmjs.com/package/touch) - ISC ## Font awesome [Cube icon](https://fontawesome.com/icons/cube?style=solid) available under [CC v4.0](https://creativecommons.org/licenses/by/4.0/) - -[More info](https://developer.bitcoin.com/bitbox.html) diff --git a/index.ts b/index.ts index 8a4108a1..f75acd80 100644 --- a/index.ts +++ b/index.ts @@ -1,50 +1,49 @@ -#!/usr/bin/env node /// -export * from './lib/BITBOX'; -export * from './lib/Address'; -export * from './lib/BitcoinCash'; -export * from './lib/Block'; -export * from './lib/Blockchain'; -export * from './lib/Control'; -export * from './lib/Crypto'; -export * from './lib/ECPair'; -export * from './lib/Generating'; -export * from './lib/HDNode'; -export * from './lib/Mining'; -export * from './lib/Mnemonic'; -export * from './lib/Price'; -export * from './lib/RawTransactions'; -export * from './lib/Script'; -export * from './lib/Transaction'; -export * from './lib/TransactionBuilder'; -export * from './lib/Util'; -export * from './lib/Socket'; -export * from './lib/Schnorr'; +export * from "./lib/Address"; +export * from "./lib/BITBOX"; +export * from "./lib/BitcoinCash"; +export * from "./lib/Block"; +export * from "./lib/Blockchain"; +export * from "./lib/Control"; +export * from "./lib/Crypto"; +export * from "./lib/ECPair"; +export * from "./lib/Generating"; +export * from "./lib/HDNode"; +export * from "./lib/Mining"; +export * from "./lib/Mnemonic"; +export * from "./lib/Price"; +export * from "./lib/RawTransactions"; +export * from "./lib/Schnorr"; +export * from "./lib/Script"; +export * from "./lib/Socket"; +export * from "./lib/Transaction"; +export * from "./lib/TransactionBuilder"; +export * from "./lib/Util"; export interface BchInfo { - hashGenesisBlock: string - port: number - portRpc: number + hashGenesisBlock: string; + port: number; + portRpc: number; protocol: { - magic: number - } - seedsDns: string[] + magic: number; + }; + seedsDns: string[]; versions: { bip32: { - private: number - public: number - } - bip44: number - private: number - public: number - scripthash: number - messagePrefix: string - } - name: string - per1: number - unit: string - testnet: boolean - toBitcoinJS: any - toBitcore: any -} \ No newline at end of file + private: number; + public: number; + }; + bip44: number; + private: number; + public: number; + scripthash: number; + messagePrefix: string; + }; + name: string; + per1: number; + unit: string; + testnet: boolean; + toBitcoinJS: any; + toBitcore: any; +} diff --git a/lib/interfaces/vendors.d.ts b/lib/interfaces/vendors.d.ts index 0874952c..55dbfa82 100644 --- a/lib/interfaces/vendors.d.ts +++ b/lib/interfaces/vendors.d.ts @@ -1,309 +1,297 @@ /// declare module "bitcoincashjs-lib" { - export interface HDNode { - keyPair: any - getAddress(): any - isNeutered(): any - getIdentifier(): any - verify(buffer: any, signature: any): any - deriveHardened(path: any): any - sign(buffer: any): any - toBase58(): any - neutered(): any - getPublicKeyBuffer(): any - derivePath(path: any): any - derive(path: any): any - } + export interface HDNode { + keyPair: any; + getAddress(): any; + isNeutered(): any; + getIdentifier(): any; + verify(buffer: any, signature: any): any; + deriveHardened(path: any): any; + sign(buffer: any): any; + toBase58(): any; + neutered(): any; + getPublicKeyBuffer(): any; + derivePath(path: any): any; + derive(path: any): any; + } - export interface ECPair { - toWIF(): string - sign(buffer: Buffer): Boolean | ECSignature - verify(buffer: Buffer, signature: ECSignature): boolean - getPublicKeyBuffer(): Buffer - getAddress(): string - } + export interface ECPair { + toWIF(): string; + sign(buffer: Buffer): Boolean | ECSignature; + verify(buffer: Buffer, signature: ECSignature): boolean; + getPublicKeyBuffer(): Buffer; + getAddress(): string; + } - export type ECSignature = any + export type ECSignature = any; } declare module "bitcoin-com-rest" { - export interface BlockDetailsResult { - hash: string - size: number - height: number - version: number - merkleroot: string - tx: string[] - time: number - mediantime?: number - nonce: number - bits: string - difficulty: number - chainwork: string - confirmations: number - previousblockhash: string - nextblockhash: string - reward: number - isMainChain: boolean - poolInfo: object - } + export interface BlockDetailsResult { + hash: string; + size: number; + height: number; + version: number; + merkleroot: string; + tx: string[]; + time: number; + mediantime?: number; + nonce: number; + bits: string; + difficulty: number; + chainwork: string; + confirmations: number; + previousblockhash: string; + nextblockhash: string; + reward: number; + isMainChain: boolean; + poolInfo: object; + } - export interface MempoolInfoResult { - size: number - bytes: number - usage: number - maxmempool: number - mempoolminfee: number - } + export interface MempoolInfoResult { + size: number; + bytes: number; + usage: number; + maxmempool: number; + mempoolminfee: number; + } - export interface BlockchainInfoResult { - chain: string - blocks: number - headers: number - bestblockhash: string - difficulty: number - mediantime: number - verificationprogress: number - chainwork: string - pruned: boolean - softforks: object[] - bip9_softforks: object - } + export interface BlockchainInfoResult { + chain: string; + blocks: number; + headers: number; + bestblockhash: string; + difficulty: number; + mediantime: number; + verificationprogress: number; + chainwork: string; + pruned: boolean; + softforks: object[]; + bip9_softforks: object; + } - export interface BlockHeaderResult { - hash: string - confirmations: number - height: number - version: number - versionHex: string - merkleroot: string - time: number - mediantime: number - nonce: number - bits: string - difficulty: number - chainwork: string - previousblockhash: string - nextblockhash: string - } + export interface BlockHeaderResult { + hash: string; + confirmations: number; + height: number; + version: number; + versionHex: string; + merkleroot: string; + time: number; + mediantime: number; + nonce: number; + bits: string; + difficulty: number; + chainwork: string; + previousblockhash: string; + nextblockhash: string; + } - export interface ChainTipResult { - height: number - hash: string - branchlen: number - status: string - } + export interface ChainTipResult { + height: number; + hash: string; + branchlen: number; + status: string; + } - export interface TxOutResult { - bestblock: string - confirmations: number - value: number - scriptPubKey: { - asm: string - hex: string - reqSigs: number - type: string - addresses: string[] - } - version: number - coinbase: boolean - } + export interface TxOutResult { + bestblock: string; + confirmations: number; + value: number; + scriptPubKey: { + asm: string; + hex: string; + reqSigs: number; + type: string; + addresses: string[]; + }; + version: number; + coinbase: boolean; + } - export interface MempoolEntryResult { - size: number, - fee: number, - modifiedfee: number, - time: number, - height: number, - startingpriority: number, - currentpriority: number, - descendantcount: number, - descendantsize: number, - descendantfees: number, - ancestorcount: number, - ancestorsize: number, - ancestorfees: number, - depends: string[], - spentby: string[] - } + export interface MempoolEntryResult { + size: number; + fee: number; + modifiedfee: number; + time: number; + height: number; + startingpriority: number; + currentpriority: number; + descendantcount: number; + descendantsize: number; + descendantfees: number; + ancestorcount: number; + ancestorsize: number; + ancestorfees: number; + depends: string[]; + spentby: string[]; + } - export interface NodeInfoResult { - version: number - protocolversion: number - blocks: number - timeoffset: number - connections: number - proxy: string - difficulty: number - testnet: boolean - paytxfee: number - relayfee: number - errors: string - } + export interface NodeInfoResult { + version: number; + protocolversion: number; + blocks: number; + timeoffset: number; + connections: number; + proxy: string; + difficulty: number; + testnet: boolean; + paytxfee: number; + relayfee: number; + errors: string; + } - export interface NodeMemoryInfoResult { - locked: { - used: number - free: number - total: number - locked: number - chunks_used: number - chunks_free: number - } - } + export interface NodeMemoryInfoResult { + locked: { + used: number; + free: number; + total: number; + locked: number; + chunks_used: number; + chunks_free: number; + }; + } - export interface DecodeRawTransactionResult { - txid: string - hash: string - size: number - version: number - locktime: number - vin: [ - { - txid: string - vout: number - scriptSig: { - asm: string - hex: string - }, - sequence: number - } - ], - vout: [ - { - value: number - n: number - scriptPubKey: { - asm: string - hex: string - reqSigs: number - type: string - addresses: string[] - } - } - ] - } + export interface DecodeRawTransactionResult { + txid: string; + hash: string; + size: number; + version: number; + locktime: number; + vin: [ + { + txid: string; + vout: number; + scriptSig: { + asm: string; + hex: string; + }; + sequence: number; + } + ]; + vout: [ + { + value: number; + n: number; + scriptPubKey: { + asm: string; + hex: string; + reqSigs: number; + type: string; + addresses: string[]; + }; + } + ]; + } - export interface DecodeScriptResult { - asm: string - type: string - p2sh: string - } + export interface DecodeScriptResult { + asm: string; + type: string; + p2sh: string; + } - export interface VerboseRawTransactionResult { - hex: string - txid: string - size: number - version: number - locktime: number - vin: [{ coinbase: string; sequence: number }] - vout: [ - { - value: number - n: number - scriptPubKey: { - asm: string - hex: string - reqSigs: number - type: string - addresses: string[] - } - } - ] - blockhash: string - confirmations: number - time: number - blocktime: number - } + export interface VerboseRawTransactionResult { + hex: string; + txid: string; + size: number; + version: number; + locktime: number; + vin: [{ coinbase: string; sequence: number }]; + vout: [ + { + value: number; + n: number; + scriptPubKey: { + asm: string; + hex: string; + reqSigs: number; + type: string; + addresses: string[]; + }; + } + ]; + blockhash: string; + confirmations: number; + time: number; + blocktime: number; + } - export interface TxnDetailsResult { - txid: string - version: number - locktime: number - vin: object[] - vout: object[] - blockhash: string - blockheight: number - confirmations: number - time: number - blocktime: number - isCoinBase: boolean - valueOut: number - size: number - } + export interface TxnDetailsResult { + txid: string; + version: number; + locktime: number; + vin: object[]; + vout: object[]; + blockhash: string; + blockheight: number; + confirmations: number; + time: number; + blocktime: number; + isCoinBase: boolean; + valueOut: number; + size: number; + } - export interface AddressDetailsResult { - balance: number - balanceSat: number - totalReceived: number - totalReceivedSat: number - totalSent: number - totalSentSat: number - unconfirmedBalance: number - unconfirmedBalanceSat: number - unconfirmedTxApperances: number - txApperances: number - transactions: string[] - legacyAddress: string - cashAddress: string - } + export interface AddressDetailsResult { + balance: number; + balanceSat: number; + totalReceived: number; + totalReceivedSat: number; + totalSent: number; + totalSentSat: number; + unconfirmedBalance: number; + unconfirmedBalanceSat: number; + unconfirmedTxApperances: number; + txApperances: number; + transactions: string[]; + legacyAddress: string; + cashAddress: string; + } - export interface AddressUtxoResult { - legacyAddress: string - cashAddress: string - scriptPubKey: string - utxos: [ - { - txid: string - vout: number - amount: number - satoshis: number - height: number - confirmations: number - } - ] - } + export interface AddressUtxoResult { + legacyAddress: string; + cashAddress: string; + scriptPubKey: string; + utxos: [ + { + txid: string; + vout: number; + amount: number; + satoshis: number; + height: number; + confirmations: number; + } + ]; + } - export interface AddressUnconfirmedResult { - legacyAddress: string - cashAddress: string - scriptPubKey: string - utxos: [ - { - txid: string - vout: number - scriptPubKey: string - amount: number - satoshis: number - confirmations: number - ts: number - legacyAddress: string - cashAddress: string - } - ] - } + export interface AddressUnconfirmedResult { + legacyAddress: string; + cashAddress: string; + scriptPubKey: string; + utxos: [ + { + txid: string; + vout: number; + scriptPubKey: string; + amount: number; + satoshis: number; + confirmations: number; + ts: number; + legacyAddress: string; + cashAddress: string; + } + ]; + } - export interface AddressValidateResult { - isvalid: boolean - address: string - scriptPubKey: string - ismine: boolean - iswatchonly: boolean - isscript: boolean - pubkey: string - iscompressed: boolean - account: string - } + export interface AddressValidateResult { + isvalid: boolean; + address: string; + scriptPubKey: string; + ismine: boolean; + iswatchonly: boolean; + isscript: boolean; + pubkey: string; + iscompressed: boolean; + account: string; + } } - -// declare module "clear" { -// namespace clear { -// export function clear(clear: boolean): void -// } -// } - -// declare module "git-clone" { -// export function clear(clear?: boolean): void -// } - -// export declare function clear(clear?: boolean): void; diff --git a/package.json b/package.json index f15a3bae..bf679880 100644 --- a/package.json +++ b/package.json @@ -14,10 +14,7 @@ }, "license": "MIT", "engines": { - "node": ">=10.15.1" - }, - "bin": { - "bitbox": "./index.js" + "node": ">=10.15.3" }, "main": "index.js", "files": [ @@ -27,27 +24,19 @@ "homepage": "https://developer.bitcoin.com/bitbox", "repository": { "type": "git", - "url": "git+https://github.com/Bitcoin-com/bitbox-javascript-sdk.git" + "url": "git+https://github.com/Bitcoin-com/bitbox-sdk.git" }, "dependencies": { "@types/bigi": "^1.4.2", "@types/bip39": "^2.4.2", "@types/chai": "^4.1.7", - "@types/figlet": "^1.2.0", - "@types/mkdirp": "^0.5.2", "@types/mocha": "^5.2.6", "@types/node": "^10.11.7", - "@types/node-emoji": "^1.8.1", "@types/randombytes": "^2.0.0", "@types/sinon": "^7.0.11", - "@types/touch": "^3.1.1", "@types/wif": "^2.0.1", "assert": "^1.4.1", "axios": "0.18.0", - "babel-cli": "^6.26.0", - "babel-preset-env": "^1.6.1", - "babel-preset-es2015": "^6.24.1", - "babel-register": "^6.26.0", "bc-bip68": "^1.0.5", "bch-wallet-bridge.js": "github:web3bch/bch-wallet-bridge.js#master", "bigi": "^1.4.2", @@ -64,18 +53,7 @@ "bs58": "^4.0.1", "buffer": "^5.1.0", "cashaddrjs": "^0.2.9", - "chalk": "^2.3.0", - "clear": "0.0.1", "coininfo": "Bitcoin-com/coininfo", - "commander": "^2.13.0", - "cp-file": "^5.0.0", - "ecurve": "^1.0.6", - "figlet": "^1.2.0", - "git-clone": "^0.1.0", - "ini": "^1.3.5", - "mkdirp": "^0.5.1", - "node-cmd": "^3.0.0", - "node-emoji": "^1.8.1", "qrcode": "^1.2.0", "randombytes": "^2.0.6", "repl.history": "^0.1.4", @@ -83,7 +61,6 @@ "satoshi-bitcoin": "^1.0.4", "socket.io": "^2.1.1", "socket.io-client": "^2.1.1", - "touch": "^3.1.0", "wif": "^2.0.6" }, "devDependencies": { diff --git a/yarn.lock b/yarn.lock index 172080a8..528bdc03 100644 --- a/yarn.lock +++ b/yarn.lock @@ -248,10 +248,6 @@ version "3.0.0" resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" -"@types/figlet@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@types/figlet/-/figlet-1.2.0.tgz#2dab76da069dc8ce5dcab461f7f2788317fb01a8" - "@types/glob@^7.1.1": version "7.1.1" resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" @@ -264,20 +260,10 @@ version "3.0.3" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" -"@types/mkdirp@^0.5.2": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@types/mkdirp/-/mkdirp-0.5.2.tgz#503aacfe5cc2703d5484326b1b27efa67a339c1f" - dependencies: - "@types/node" "*" - "@types/mocha@^5.2.6": version "5.2.6" resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.2.6.tgz#b8622d50557dd155e9f2f634b7d68fd38de5e94b" -"@types/node-emoji@^1.8.1": - version "1.8.1" - resolved "https://registry.yarnpkg.com/@types/node-emoji/-/node-emoji-1.8.1.tgz#689cb74fdf6e84309bcafce93a135dfecd01de3f" - "@types/node@*": version "12.0.0" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.0.0.tgz#d11813b9c0ff8aaca29f04cbc12817f4c7d656e5" @@ -300,12 +286,6 @@ version "7.0.11" resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-7.0.11.tgz#6f28f005a36e779b7db0f1359b9fb9eef72aae88" -"@types/touch@^3.1.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@types/touch/-/touch-3.1.1.tgz#fdbb769f2af98f8bdbd52bc3ebfb9eaaa4b40bc3" - dependencies: - "@types/node" "*" - "@types/wif@^2.0.1": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/wif/-/wif-2.0.1.tgz#bcab48b201403cb759cd7659aff4610cfd4888f4" @@ -461,13 +441,6 @@ ansistyles@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/ansistyles/-/ansistyles-0.1.3.tgz#5de60415bda071bb37127854c864f41b23254539" -anymatch@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" - dependencies: - micromatch "^2.1.5" - normalize-path "^2.0.0" - append-transform@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab" @@ -507,17 +480,11 @@ argv-formatter@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/argv-formatter/-/argv-formatter-1.0.0.tgz#a0ca0cbc29a5b73e836eebe1cbf6c5e0e4eb82f9" -arr-diff@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - dependencies: - arr-flatten "^1.0.1" - arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" -arr-flatten@^1.0.1, arr-flatten@^1.1.0: +arr-flatten@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" @@ -570,10 +537,6 @@ array-uniq@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-2.1.0.tgz#46603d5e28e79bfd02b046fcc1d77c6820bd8e98" -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" @@ -627,10 +590,6 @@ astral-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" -async-each@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - async-limiter@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" @@ -662,28 +621,7 @@ axios@0.18.0: follow-redirects "^1.3.0" is-buffer "^1.1.5" -babel-cli@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" - dependencies: - babel-core "^6.26.0" - babel-polyfill "^6.26.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - commander "^2.11.0" - convert-source-map "^1.5.0" - fs-readdir-recursive "^1.0.0" - glob "^7.1.2" - lodash "^4.17.4" - output-file-sync "^1.1.2" - path-is-absolute "^1.0.1" - slash "^1.0.0" - source-map "^0.5.6" - v8flags "^2.1.1" - optionalDependencies: - chokidar "^1.6.1" - -babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: +babel-code-frame@^6.22.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" dependencies: @@ -691,493 +629,6 @@ babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: esutils "^2.0.2" js-tokens "^3.0.2" -babel-core@^6.26.0: - version "6.26.3" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.1" - debug "^2.6.9" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.8" - slash "^1.0.0" - source-map "^0.5.7" - -babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" - dependencies: - babel-helper-explode-assignable-expression "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-define-map@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-explode-assignable-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-remap-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-replace-supers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" - dependencies: - babel-helper-optimise-call-expression "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-check-es2015-constants@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" - -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" - -babel-plugin-syntax-trailing-function-commas@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" - -babel-plugin-transform-async-to-generator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-arrow-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoping@^6.23.0, babel-plugin-transform-es2015-block-scoping@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" - dependencies: - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-plugin-transform-es2015-classes@^6.23.0, babel-plugin-transform-es2015-classes@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - dependencies: - babel-helper-define-map "^6.24.1" - babel-helper-function-name "^6.24.1" - babel-helper-optimise-call-expression "^6.24.1" - babel-helper-replace-supers "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-computed-properties@^6.22.0, babel-plugin-transform-es2015-computed-properties@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-destructuring@^6.22.0, babel-plugin-transform-es2015-destructuring@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-duplicate-keys@^6.22.0, babel-plugin-transform-es2015-duplicate-keys@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-for-of@^6.22.0, babel-plugin-transform-es2015-for-of@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-function-name@^6.22.0, babel-plugin-transform-es2015-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-es2015-modules-systemjs@^6.23.0, babel-plugin-transform-es2015-modules-systemjs@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-umd@^6.23.0, babel-plugin-transform-es2015-modules-umd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" - dependencies: - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-object-super@^6.22.0, babel-plugin-transform-es2015-object-super@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" - dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-parameters@^6.23.0, babel-plugin-transform-es2015-parameters@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" - dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-shorthand-properties@^6.22.0, babel-plugin-transform-es2015-shorthand-properties@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-sticky-regex@^6.22.0, babel-plugin-transform-es2015-sticky-regex@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-typeof-symbol@^6.22.0, babel-plugin-transform-es2015-typeof-symbol@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-unicode-regex@^6.22.0, babel-plugin-transform-es2015-unicode-regex@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" - -babel-plugin-transform-exponentiation-operator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" - dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" - babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-regenerator@^6.22.0, babel-plugin-transform-regenerator@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" - dependencies: - regenerator-transform "^0.10.0" - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-polyfill@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" - dependencies: - babel-runtime "^6.26.0" - core-js "^2.5.0" - regenerator-runtime "^0.10.5" - -babel-preset-env@^1.6.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-to-generator "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.23.0" - babel-plugin-transform-es2015-classes "^6.23.0" - babel-plugin-transform-es2015-computed-properties "^6.22.0" - babel-plugin-transform-es2015-destructuring "^6.23.0" - babel-plugin-transform-es2015-duplicate-keys "^6.22.0" - babel-plugin-transform-es2015-for-of "^6.23.0" - babel-plugin-transform-es2015-function-name "^6.22.0" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.22.0" - babel-plugin-transform-es2015-modules-commonjs "^6.23.0" - babel-plugin-transform-es2015-modules-systemjs "^6.23.0" - babel-plugin-transform-es2015-modules-umd "^6.23.0" - babel-plugin-transform-es2015-object-super "^6.22.0" - babel-plugin-transform-es2015-parameters "^6.23.0" - babel-plugin-transform-es2015-shorthand-properties "^6.22.0" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.22.0" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.23.0" - babel-plugin-transform-es2015-unicode-regex "^6.22.0" - babel-plugin-transform-exponentiation-operator "^6.22.0" - babel-plugin-transform-regenerator "^6.22.0" - browserslist "^3.2.6" - invariant "^2.2.2" - semver "^5.3.0" - -babel-preset-es2015@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.24.1" - babel-plugin-transform-es2015-classes "^6.24.1" - babel-plugin-transform-es2015-computed-properties "^6.24.1" - babel-plugin-transform-es2015-destructuring "^6.22.0" - babel-plugin-transform-es2015-duplicate-keys "^6.24.1" - babel-plugin-transform-es2015-for-of "^6.22.0" - babel-plugin-transform-es2015-function-name "^6.24.1" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-plugin-transform-es2015-modules-systemjs "^6.24.1" - babel-plugin-transform-es2015-modules-umd "^6.24.1" - babel-plugin-transform-es2015-object-super "^6.24.1" - babel-plugin-transform-es2015-parameters "^6.24.1" - babel-plugin-transform-es2015-shorthand-properties "^6.24.1" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.24.1" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.22.0" - babel-plugin-transform-es2015-unicode-regex "^6.24.1" - babel-plugin-transform-regenerator "^6.24.1" - -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - -babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.24.1, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - backo2@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" @@ -1281,10 +732,6 @@ bin-links@^1.1.2: graceful-fs "^4.1.11" write-file-atomic "^2.3.0" -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - bindings@^1.2.1, bindings@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" @@ -1422,14 +869,6 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^1.8.2: - version "1.8.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" - dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" - braces@^2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" @@ -1576,13 +1015,6 @@ browserify@^16.2.2: vm-browserify "^1.0.0" xtend "^4.0.0" -browserslist@^3.2.6: - version "3.2.8" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" - dependencies: - caniuse-lite "^1.0.30000844" - electron-to-chromium "^1.3.47" - bs58@^4.0.0, bs58@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" @@ -1750,10 +1182,6 @@ can-promise@0.0.1: dependencies: window-or-global "^1.0.1" -caniuse-lite@^1.0.30000844: - version "1.0.30000967" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000967.tgz#a5039577806fccee80a04aaafb2c0890b1ee2f73" - capture-stack-trace@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" @@ -1796,7 +1224,7 @@ chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" dependencies: @@ -1816,21 +1244,6 @@ check-error@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" -chokidar@^1.6.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" - dependencies: - anymatch "^1.3.0" - async-each "^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" - optionalDependencies: - fsevents "^1.0.0" - chownr@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" @@ -1873,10 +1286,6 @@ clean-stack@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.1.0.tgz#9e7fec7f3f8340a2ab4f127c80273085e8fbbdd0" -clear@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/clear/-/clear-0.0.1.tgz#e5186e229d99448179c130311b6f9d30bff6b0ba" - cli-boxes@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" @@ -1997,7 +1406,7 @@ commander@2.15.1: version "2.15.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" -commander@^2.11.0, commander@^2.13.0, commander@~2.20.0: +commander@~2.20.0: version "2.20.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" @@ -2118,7 +1527,7 @@ conventional-commits-parser@^3.0.0: through2 "^2.0.0" trim-off-newlines "^1.0.0" -convert-source-map@^1.5.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0: +convert-source-map@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" dependencies: @@ -2147,10 +1556,6 @@ copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" -core-js@^2.4.0, core-js@^2.5.0: - version "2.6.5" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.5.tgz#44bc8d249e7fb2ff5d00e0341a7ffb94fbf67895" - core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -2175,16 +1580,6 @@ coveralls@^3.0.2: minimist "^1.2.0" request "^2.86.0" -cp-file@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cp-file/-/cp-file-5.0.0.tgz#bc700fd30ca32d24d46c7fb02b992e435fc5a978" - dependencies: - graceful-fs "^4.1.2" - make-dir "^1.0.0" - nested-error-stacks "^2.0.0" - pify "^3.0.0" - safe-buffer "^5.0.1" - cp-file@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/cp-file/-/cp-file-6.2.0.tgz#40d5ea4a1def2a9acdd07ba5c0b0246ef73dc10d" @@ -2455,20 +1850,10 @@ des.js@^1.0.0: inherits "^2.0.1" minimalistic-assert "^1.0.0" -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - dependencies: - repeating "^2.0.0" - detect-indent@~5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - detect-newline@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" @@ -2594,10 +1979,6 @@ editor@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/editor/-/editor-1.0.0.tgz#60c7f87bd62bcc6a894fa8ccd6afb7823a24f742" -electron-to-chromium@^1.3.47: - version "1.3.133" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.133.tgz#c47639c19b91feee3e22fad69f5556142007008c" - elliptic@^6.0.0, elliptic@^6.4.1: version "6.4.1" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" @@ -2996,12 +2377,6 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -expand-brackets@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - dependencies: - is-posix-bracket "^0.1.0" - expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" @@ -3014,12 +2389,6 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - dependencies: - fill-range "^2.1.0" - extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -3053,12 +2422,6 @@ external-editor@^3.0.3: iconv-lite "^0.4.24" tmp "^0.0.33" -extglob@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" - dependencies: - is-extglob "^1.0.0" - extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" @@ -3115,10 +2478,6 @@ figgy-pudding@^3.4.1, figgy-pudding@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" -figlet@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/figlet/-/figlet-1.2.1.tgz#48d35df9d9b10b1b3888302e6e57904a0b00509c" - figures@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" @@ -3142,20 +2501,6 @@ file-uri-to-path@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" -filename-regex@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" - -fill-range@^2.1.0: - version "2.2.4" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^3.0.0" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" @@ -3240,16 +2585,10 @@ for-each@~0.3.3: dependencies: is-callable "^1.1.3" -for-in@^1.0.1, for-in@^1.0.2: +for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" -for-own@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" - dependencies: - for-in "^1.0.1" - foreground-child@^1.5.6: version "1.5.6" resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9" @@ -3307,10 +2646,6 @@ fs-minipass@^1.2.5: dependencies: minipass "^2.2.1" -fs-readdir-recursive@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" - fs-vacuum@^1.2.10, fs-vacuum@~1.2.10: version "1.2.10" resolved "https://registry.yarnpkg.com/fs-vacuum/-/fs-vacuum-1.2.10.tgz#b7629bec07a4031a2548fdf99f5ecf1cc8b31e36" @@ -3332,13 +2667,6 @@ fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" -fsevents@^1.0.0: - version "1.2.9" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" - dependencies: - nan "^2.12.1" - node-pre-gyp "^0.12.0" - fstream@^1.0.0, fstream@^1.0.2: version "1.0.11" resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" @@ -3432,10 +2760,6 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -git-clone@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/git-clone/-/git-clone-0.1.0.tgz#0d76163778093aef7f1c30238f2a9ef3f07a2eb9" - git-log-parser@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/git-log-parser/-/git-log-parser-1.2.0.tgz#2e6a4c1b13fc00028207ba795a7ac31667b9fd4a" @@ -3447,19 +2771,6 @@ git-log-parser@^1.2.0: through2 "~2.0.0" traverse "~0.6.6" -glob-base@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" - -glob-parent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" - dependencies: - is-glob "^2.0.0" - glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" @@ -3503,10 +2814,6 @@ globals@^11.0.1, globals@^11.1.0, globals@^11.7.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - globby@^9.0.0: version "9.2.0" resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" @@ -3536,7 +2843,7 @@ got@^6.7.1: unzip-response "^2.0.1" url-parse-lax "^1.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6: version "4.1.15" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" @@ -3662,13 +2969,6 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - hook-std@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/hook-std/-/hook-std-2.0.0.tgz#ff9aafdebb6a989a354f729bb6445cf4a3a7077c" @@ -3717,7 +3017,7 @@ humanize-ms@^1.2.1: dependencies: ms "^2.0.0" -iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: +iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@~0.4.13: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" dependencies: @@ -3882,12 +3182,6 @@ into-stream@^4.0.0: from2 "^2.1.1" p-is-promise "^2.0.0" -invariant@^2.2.2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - dependencies: - loose-envify "^1.0.0" - invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" @@ -3920,12 +3214,6 @@ is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - dependencies: - binary-extensions "^1.0.0" - is-buffer@^1.1.0, is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" @@ -3982,16 +3270,6 @@ is-directory@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" -is-dotfile@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" - -is-equal-shallow@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" - dependencies: - is-primitive "^2.0.0" - is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -4002,20 +3280,10 @@ is-extendable@^1.0.1: dependencies: is-plain-object "^2.0.4" -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" -is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - dependencies: - number-is-nan "^1.0.0" - is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" @@ -4026,12 +3294,6 @@ is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" -is-glob@^2.0.0, is-glob@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - dependencies: - is-extglob "^1.0.0" - is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -4055,22 +3317,12 @@ is-npm@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" -is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - dependencies: - kind-of "^3.0.2" - is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" dependencies: kind-of "^3.0.2" -is-number@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" - is-obj@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" @@ -4097,14 +3349,6 @@ is-plain-object@^3.0.0: dependencies: isobject "^4.0.0" -is-posix-bracket@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" - -is-primitive@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" - is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" @@ -4280,18 +3524,10 @@ jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - json-parse-better-errors@^1.0.0, json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -4322,10 +3558,6 @@ json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" -json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -4681,7 +3913,7 @@ lolex@^2.2.0, lolex@^2.3.2: version "2.7.5" resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.7.5.tgz#113001d56bfc7e02d56e36291cc5c413d1aa0733" -loose-envify@^1.0.0, loose-envify@^1.4.0: +loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" dependencies: @@ -4787,10 +4019,6 @@ marked@^0.6.0: version "0.6.2" resolved "https://registry.yarnpkg.com/marked/-/marked-0.6.2.tgz#c574be8b545a8b48641456ca1dbe0e37b6dccc1a" -math-random@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" - md5.js@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" @@ -4857,24 +4085,6 @@ methods@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" -micromatch@^2.1.5: - version "2.3.11" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - dependencies: - 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" - micromatch@^3.1.10: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" @@ -5067,7 +4277,7 @@ mute-stream@~0.0.4: version "0.0.8" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" -nan@^2.12.1, nan@^2.13.2, nan@^2.2.1: +nan@^2.13.2, nan@^2.2.1: version "2.13.2" resolved "https://registry.yarnpkg.com/nan/-/nan-2.13.2.tgz#f51dc7ae66ba7d5d55e1e6d4d8092e802c9aefe7" @@ -5091,14 +4301,6 @@ natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" -needle@^2.2.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.3.1.tgz#d272f2f4034afb9c4c9ab1379aabc17fc85c9388" - dependencies: - debug "^4.1.0" - iconv-lite "^0.4.4" - sax "^1.2.4" - negotiator@0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" @@ -5143,11 +4345,7 @@ nock@^10.0.6: qs "^6.5.1" semver "^5.5.0" -node-cmd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/node-cmd/-/node-cmd-3.0.0.tgz#38fff70a4aaa4f659d203eb57862737018e24f6f" - -node-emoji@^1.4.1, node-emoji@^1.8.1: +node-emoji@^1.4.1: version "1.10.0" resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da" dependencies: @@ -5212,40 +4410,19 @@ node-mocks-http@^1.7.0: range-parser "^1.2.0" type-is "^1.6.16" -node-pre-gyp@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - "nopt@2 || 3": version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" dependencies: abbrev "1" -nopt@^4.0.1, nopt@~4.0.1: +nopt@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" dependencies: abbrev "1" osenv "^0.1.4" -nopt@~1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" - dependencies: - abbrev "1" - normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.4.0, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -5255,12 +4432,6 @@ normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package- semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-path@^2.0.0, normalize-path@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - dependencies: - remove-trailing-separator "^1.0.1" - normalize-url@^4.0.0: version "4.3.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.3.0.tgz#9c49e10fc1876aeb76dba88bf1b2b5d9fa57b2ee" @@ -5312,7 +4483,7 @@ npm-logical-tree@^1.2.1: semver "^5.5.0" validate-npm-package-name "^3.0.0" -npm-packlist@^1.1.12, npm-packlist@^1.1.6, npm-packlist@^1.4.1: +npm-packlist@^1.1.12, npm-packlist@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.1.tgz#19064cdf988da80ea3cee45533879d90192bbfbc" dependencies: @@ -5469,7 +4640,7 @@ npm@^6.8.0: worker-farm "^1.6.0" write-file-atomic "^2.4.2" -"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.2, npmlog@^4.1.2, npmlog@~4.1.2: +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.1.2, npmlog@~4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" dependencies: @@ -5546,13 +4717,6 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.omit@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" - dependencies: - for-own "^0.1.4" - is-extendable "^0.1.1" - object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" @@ -5628,7 +4792,7 @@ os-name@^3.0.0: macos-release "^2.2.0" windows-release "^3.1.0" -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: +os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -5639,14 +4803,6 @@ osenv@0, osenv@^0.1.4, osenv@^0.1.5: os-homedir "^1.0.0" os-tmpdir "^1.0.0" -output-file-sync@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" - dependencies: - graceful-fs "^4.1.4" - mkdirp "^0.5.1" - object-assign "^4.1.0" - p-defer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" @@ -5806,15 +4962,6 @@ parse-github-url@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/parse-github-url/-/parse-github-url-1.0.2.tgz#242d3b65cbcdda14bb50439e3242acf6971db395" -parse-glob@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" - dependencies: - glob-base "^0.3.0" - is-dotfile "^1.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.0" - parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" @@ -5975,18 +5122,10 @@ prepend-http@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" -preserve@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - prettier@^1.14.2: version "1.17.0" resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.17.0.tgz#53b303676eed22cc14a9f0cec09b477b3026c008" -private@^0.1.6, private@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - process-nextick-args@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" @@ -6155,14 +5294,6 @@ random-bytes@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b" -randomatic@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" - dependencies: - is-number "^4.0.0" - kind-of "^6.0.0" - math-random "^1.0.1" - randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.0.6: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -6180,7 +5311,7 @@ range-parser@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" -rc@^1.0.1, rc@^1.1.6, rc@^1.2.7, rc@^1.2.8: +rc@^1.0.1, rc@^1.1.6, rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" dependencies: @@ -6336,14 +5467,6 @@ readdir-scoped-modules@^1.0.0: graceful-fs "^4.1.2" once "^1.3.0" -readdirp@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - redent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" @@ -6357,32 +5480,6 @@ redeyed@~2.1.0: dependencies: esprima "~4.0.0" -regenerate@^1.2.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - -regenerator-runtime@^0.10.5: - version "0.10.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" - dependencies: - babel-runtime "^6.18.0" - babel-types "^6.19.0" - private "^0.1.6" - -regex-cache@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" - dependencies: - is-equal-shallow "^0.1.3" - regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" @@ -6394,14 +5491,6 @@ regexpp@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - registry-auth-token@^3.0.1, registry-auth-token@^3.3.1: version "3.4.0" resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" @@ -6415,40 +5504,20 @@ registry-url@^3.0.3: dependencies: rc "^1.0.1" -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - dependencies: - jsesc "~0.5.0" - release-zalgo@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/release-zalgo/-/release-zalgo-1.0.0.tgz#09700b7e5074329739330e535c5a90fb67851730" dependencies: es6-error "^4.0.1" -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - repeat-element@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" -repeat-string@^1.5.2, repeat-string@^1.6.1: +repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - dependencies: - is-finite "^1.0.0" - repl.history@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/repl.history/-/repl.history-0.1.4.tgz#80367171f3781d6e4299c71758c253097f5d5832" @@ -6552,7 +5621,7 @@ retry@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" -rimraf@2, rimraf@2.6.3, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@~2.6.2: +rimraf@2, rimraf@2.6.3, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@~2.6.2: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" dependencies: @@ -6621,10 +5690,6 @@ satoshi-bitcoin@^1.0.4: dependencies: big.js "^3.1.3" -sax@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - scryptsy@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-2.0.0.tgz#262c36f0231cfa7654e2363fa394cd2dec66f378" @@ -6919,12 +5984,6 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - dependencies: - source-map "^0.5.6" - source-map-support@^0.5.12, source-map-support@^0.5.6: version "0.5.12" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" @@ -6936,7 +5995,7 @@ source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" -source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.3: +source-map@^0.5.0, source-map@^0.5.6, source-map@~0.5.3: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" @@ -7288,7 +6347,7 @@ tar@^2.0.0: fstream "^1.0.2" inherits "2" -tar@^4, tar@^4.4.8: +tar@^4.4.8: version "4.4.8" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d" dependencies: @@ -7362,10 +6421,6 @@ to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" @@ -7392,12 +6447,6 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" -touch@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" - dependencies: - nopt "~1.0.10" - tough-cookie@~2.4.3: version "2.4.3" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" @@ -7621,10 +6670,6 @@ use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" -user-home@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" - util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -7649,12 +6694,6 @@ uuid@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" -v8flags@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" - dependencies: - user-home "^1.1.1" - validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" From f54b701147f2376962c6d92cc7dd81a24066bbf3 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 17 May 2019 21:39:10 +0900 Subject: [PATCH 382/480] Publish index.ts to npm. --- package.json | 4 ++-- tsconfig.json | 14 ++++---------- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index bf679880..89928a9d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "8.0.0", + "version": "8.0.1", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ @@ -18,7 +18,7 @@ }, "main": "index.js", "files": [ - "index.js", + "index.ts", "lib/" ], "homepage": "https://developer.bitcoin.com/bitbox", diff --git a/tsconfig.json b/tsconfig.json index 2c4879c6..0c088321 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,15 +5,9 @@ "target": "es5", "downlevelIteration": true, "moduleResolution": "node", - "lib": [ - "es2017" - ], + "lib": ["es2017"], "sourceMap": true }, - "include": [ - "./lib", - "./test", - "./test/unit/**/*.ts", - "index.ts" - ] -} \ No newline at end of file + "include": ["./lib", "./test", "./test/unit/**/*.ts"], + "files": ["index.ts"] +} From 44f48202e3845d5c060efa751cc63001857b9d4d Mon Sep 17 00:00:00 2001 From: James Cramer Date: Fri, 17 May 2019 10:14:06 -0400 Subject: [PATCH 383/480] add types for non-verbose response --- lib/RawTransactions.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/RawTransactions.ts b/lib/RawTransactions.ts index 8a4349d1..ab96273b 100644 --- a/lib/RawTransactions.ts +++ b/lib/RawTransactions.ts @@ -72,7 +72,7 @@ export class RawTransactions { public async getRawTransaction( txid: string | string[], verbose: boolean = false - ): Promise { + ): Promise { try { if (typeof txid === "string") { const response: AxiosResponse = await axios.get( From fd0968583aa80ab4774fe3f79e34a74e5d0fd8d1 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sat, 18 May 2019 07:20:21 +0900 Subject: [PATCH 384/480] Update tests --- package.json | 2 +- test/unit/RawTransactions.js | 436 ----------------------------------- test/unit/RawTransactions.ts | 312 ++++++++++++++----------- 3 files changed, 183 insertions(+), 567 deletions(-) delete mode 100644 test/unit/RawTransactions.js diff --git a/package.json b/package.json index 89928a9d..fa65e34c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "8.0.1", + "version": "8.0.2", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ diff --git a/test/unit/RawTransactions.js b/test/unit/RawTransactions.js deleted file mode 100644 index 6285f43e..00000000 --- a/test/unit/RawTransactions.js +++ /dev/null @@ -1,436 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -var _this = this; -Object.defineProperty(exports, "__esModule", { value: true }); -// imports -var chai = require("chai"); -var BITBOX_1 = require("../../lib/BITBOX"); -var RawTransactions_1 = require("../../lib/RawTransactions"); -var BITBOX_2 = require("../../lib/BITBOX"); -var util = require("util"); -// consts -var bitbox = new BITBOX_1.BITBOX(); -var assert = chai.assert; -// Used for debugging -util.inspect.defaultOptions = { depth: 1 }; -describe("#RawTransactions", function () { - describe("#RawTransactionsConstructor", function () { - it("should create instance of RawTransactions", function () { - var rawtransactions = new RawTransactions_1.RawTransactions(); - assert.equal(rawtransactions instanceof RawTransactions_1.RawTransactions, true); - }); - it("should have a restURL property", function () { - var rawtransactions = new RawTransactions_1.RawTransactions(); - assert.equal(rawtransactions.restURL, BITBOX_2.resturl); - }); - }); - describe("#decodeRawTransaction", function () { - it("should decode tx for a single hex", function () { return __awaiter(_this, void 0, void 0, function () { - var hex, result; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - hex = "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000"; - return [4 /*yield*/, bitbox.RawTransactions.decodeRawTransaction(hex)]; - case 1: - result = _a.sent(); - assert.hasAnyKeys(result, [ - "txid", - "hash", - "size", - "version", - "locktime", - "vin", - "vout" - ]); - if (!Array.isArray(result)) { - assert.isArray(result.vin); - assert.isArray(result.vout); - } - return [2 /*return*/]; - } - }); - }); }); - it("should decode an array of tx hexes", function () { return __awaiter(_this, void 0, void 0, function () { - var hexes, result; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - hexes = [ - "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000", - "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" - ]; - return [4 /*yield*/, bitbox.RawTransactions.decodeRawTransaction(hexes)]; - case 1: - result = _a.sent(); - assert.isArray(result); - if (Array.isArray(result)) { - assert.hasAnyKeys(result[0], [ - "txid", - "hash", - "size", - "version", - "locktime", - "vin", - "vout" - ]); - assert.isArray(result[0].vin); - assert.isArray(result[0].vout); - } - return [2 /*return*/]; - } - }); - }); }); - it("should throw an error for improper single input", function () { return __awaiter(_this, void 0, void 0, function () { - var addr, err_1; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - addr = 12345; - return [4 /*yield*/, bitbox.RawTransactions.decodeRawTransaction(addr)]; - case 1: - _a.sent(); - assert.equal(true, false, "Unexpected result!"); - return [3 /*break*/, 3]; - case 2: - err_1 = _a.sent(); - assert.include(err_1.message, "Input must be a string or array of strings."); - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); }); - it("should throw error on array size rate limit", function () { return __awaiter(_this, void 0, void 0, function () { - var data, i, result, err_2; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - data = []; - for (i = 0; i < 25; i++) { - data.push("0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000"); - } - return [4 /*yield*/, bitbox.RawTransactions.decodeRawTransaction(data)]; - case 1: - result = _a.sent(); - assert.equal(true, false, "Unexpected result!"); - return [3 /*break*/, 3]; - case 2: - err_2 = _a.sent(); - assert.hasAnyKeys(err_2, ["error"]); - assert.include(err_2.error, "Array too large"); - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); }); - }); - describe("#getRawTransaction", function () { - it("should decode a single txid, with concise output", function () { return __awaiter(_this, void 0, void 0, function () { - var txid, verbose, result; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - txid = "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1"; - verbose = false; - return [4 /*yield*/, bitbox.RawTransactions.getRawTransaction(txid, verbose)]; - case 1: - result = _a.sent(); - assert.isString(result); - return [2 /*return*/]; - } - }); - }); }); - it("should decode a single txid, with verbose output", function () { return __awaiter(_this, void 0, void 0, function () { - var txid, verbose, result; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - txid = "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1"; - verbose = true; - return [4 /*yield*/, bitbox.RawTransactions.getRawTransaction(txid, verbose)]; - case 1: - result = _a.sent(); - assert.hasAnyKeys(result, [ - "hex", - "txid", - "hash", - "size", - "version", - "locktime", - "vin", - "vout", - "blockhash", - "confirmations", - "time", - "blocktime" - ]); - if (!Array.isArray(result)) { - assert.isArray(result.vin); - assert.isArray(result.vout); - } - return [2 /*return*/]; - } - }); - }); }); - it("should decode an array of txids, with a concise output", function () { return __awaiter(_this, void 0, void 0, function () { - var txid, verbose, result; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - txid = [ - "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", - "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" - ]; - verbose = false; - return [4 /*yield*/, bitbox.RawTransactions.getRawTransaction(txid, verbose)]; - case 1: - result = _a.sent(); - assert.isArray(result); - if (Array.isArray(result)) { - assert.isString(result[0]); - } - return [2 /*return*/]; - } - }); - }); }); - it("should decode an array of txids, with a verbose output", function () { return __awaiter(_this, void 0, void 0, function () { - var txid, verbose, result; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - txid = [ - "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", - "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" - ]; - verbose = true; - return [4 /*yield*/, bitbox.RawTransactions.getRawTransaction(txid, verbose)]; - case 1: - result = _a.sent(); - assert.isArray(result); - if (Array.isArray(result)) { - assert.hasAnyKeys(result[0], [ - "hex", - "txid", - "hash", - "size", - "version", - "locktime", - "vin", - "vout", - "blockhash", - "confirmations", - "time", - "blocktime" - ]); - assert.isArray(result[0].vin); - assert.isArray(result[0].vout); - } - return [2 /*return*/]; - } - }); - }); }); - it("should throw error on array size rate limit", function () { return __awaiter(_this, void 0, void 0, function () { - var dataMock, data, i, result, err_3; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - dataMock = "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1"; - data = []; - for (i = 0; i < 25; i++) - data.push(dataMock); - return [4 /*yield*/, bitbox.RawTransactions.getRawTransaction(data)]; - case 1: - result = _a.sent(); - console.log("result: " + util.inspect(result)); - assert.equal(true, false, "Unexpected result!"); - return [3 /*break*/, 3]; - case 2: - err_3 = _a.sent(); - assert.hasAnyKeys(err_3, ["error"]); - assert.include(err_3.error, "Array too large"); - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); }); - }); - describe("#decodeScript", function () { - it("should decode script for a single hex", function () { return __awaiter(_this, void 0, void 0, function () { - var hex, result; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - hex = "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16"; - return [4 /*yield*/, bitbox.RawTransactions.decodeScript(hex)]; - case 1: - result = _a.sent(); - assert.hasAllKeys(result, ["asm", "type", "p2sh"]); - return [2 /*return*/]; - } - }); - }); }); - // CT 2/20/19 - Waiting for this PR to be merged complete the test: - // https://github.com/Bitcoin-com/rest.bitcoin.com/pull/312 - /* - it("should decode an array of tx hexes", async () => { - const hexes = [ - "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16", - "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" - ] - - const result = await bitbox.RawTransactions.decodeScript(hexes) - console.log(`result ${JSON.stringify(result, null, 2)}`) - }) - */ - /* - it(`should throw an error for improper single input`, async () => { - try { - const addr = 12345 - - await bitbox.RawTransactions.decodeRawTransaction(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input must be a string or array of strings.` - ) - } - }) - */ - }); - /* - Testing sentRawTransaction isn't really possible with an integration test, - as the endpoint really needs an e2e test to be properly tested. The tests - below expect error messages returned from the server, but at least test - that the server is responding on those endpoints, and responds consistently. - */ - describe("sendRawTransaction", function () { - it("should send a single transaction hex", function () { return __awaiter(_this, void 0, void 0, function () { - var hex, err_4; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - hex = "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000"; - return [4 /*yield*/, bitbox.RawTransactions.sendRawTransaction(hex)]; - case 1: - _a.sent(); - assert.equal(true, false, "Unexpected result!"); - return [3 /*break*/, 3]; - case 2: - err_4 = _a.sent(); - assert.hasAllKeys(err_4, ["error"]); - assert.include(err_4.error, "Missing inputs"); - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); }); - it("should send an array of tx hexes", function () { return __awaiter(_this, void 0, void 0, function () { - var hexes, result, err_5; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - hexes = [ - "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000", - "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" - ]; - return [4 /*yield*/, bitbox.RawTransactions.sendRawTransaction(hexes)]; - case 1: - result = _a.sent(); - return [3 /*break*/, 3]; - case 2: - err_5 = _a.sent(); - assert.hasAllKeys(err_5, ["error"]); - assert.include(err_5.error, "Missing inputs"); - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); }); - it("should throw an error for improper single input", function () { return __awaiter(_this, void 0, void 0, function () { - var addr, err_6; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - addr = 12345; - return [4 /*yield*/, bitbox.RawTransactions.sendRawTransaction(addr)]; - case 1: - _a.sent(); - assert.equal(true, false, "Unexpected result!"); - return [3 /*break*/, 3]; - case 2: - err_6 = _a.sent(); - assert.include(err_6.message, "Input hex must be a string or array of strings"); - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); }); - it("should throw error on array size rate limit", function () { return __awaiter(_this, void 0, void 0, function () { - var dataMock, data, i, err_7; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - dataMock = "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000"; - data = []; - for (i = 0; i < 25; i++) - data.push(dataMock); - return [4 /*yield*/, bitbox.RawTransactions.sendRawTransaction(data)]; - case 1: - _a.sent(); - assert.equal(true, false, "Unexpected result!"); - return [3 /*break*/, 3]; - case 2: - err_7 = _a.sent(); - assert.hasAnyKeys(err_7, ["error"]); - assert.include(err_7.error, "Array too large"); - return [3 /*break*/, 3]; - case 3: return [2 /*return*/]; - } - }); - }); }); - }); -}); -//# sourceMappingURL=RawTransactions.js.map \ No newline at end of file diff --git a/test/unit/RawTransactions.ts b/test/unit/RawTransactions.ts index f0ca1221..eb7ad563 100644 --- a/test/unit/RawTransactions.ts +++ b/test/unit/RawTransactions.ts @@ -1,37 +1,43 @@ // imports -import * as chai from "chai" -import { BITBOX } from "../../lib/BITBOX" -import { RawTransactions } from "../../lib/RawTransactions" -import { resturl } from "../../lib/BITBOX" -import * as util from 'util' -import { VerboseRawTransactionResult, DecodeRawTransactionResult } from "bitcoin-com-rest"; +import { + DecodeRawTransactionResult, + VerboseRawTransactionResult +} from "bitcoin-com-rest"; +import * as chai from "chai"; +import * as util from "util"; +import { BITBOX, resturl } from "../../lib/BITBOX"; +import { RawTransactions } from "../../lib/RawTransactions"; // consts -const bitbox: BITBOX = new BITBOX() -const assert: Chai.AssertStatic = chai.assert +const bitbox: BITBOX = new BITBOX(); +const assert: Chai.AssertStatic = chai.assert; // Used for debugging -util.inspect.defaultOptions = { depth: 1 } +util.inspect.defaultOptions = { depth: 1 }; describe("#RawTransactions", (): void => { describe("#RawTransactionsConstructor", (): void => { it("should create instance of RawTransactions", (): void => { - const rawtransactions: RawTransactions = new RawTransactions() - assert.equal(rawtransactions instanceof RawTransactions, true) - }) + const rawtransactions: RawTransactions = new RawTransactions(); + assert.equal(rawtransactions instanceof RawTransactions, true); + }); it("should have a restURL property", (): void => { - const rawtransactions: RawTransactions = new RawTransactions() - assert.equal(rawtransactions.restURL, resturl) - }) - }) + const rawtransactions: RawTransactions = new RawTransactions(); + assert.equal(rawtransactions.restURL, resturl); + }); + }); describe("#decodeRawTransaction", (): void => { it("should decode tx for a single hex", async (): Promise => { const hex: string = - "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" + "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000"; - const result: DecodeRawTransactionResult | DecodeRawTransactionResult[] = await bitbox.RawTransactions.decodeRawTransaction(hex) + const result: + | DecodeRawTransactionResult + | DecodeRawTransactionResult[] = await bitbox.RawTransactions.decodeRawTransaction( + hex + ); assert.hasAnyKeys(result, [ "txid", @@ -41,22 +47,26 @@ describe("#RawTransactions", (): void => { "locktime", "vin", "vout" - ]) + ]); if (!Array.isArray(result)) { - assert.isArray(result.vin) - assert.isArray(result.vout) + assert.isArray(result.vin); + assert.isArray(result.vout); } - }) + }); it("should decode an array of tx hexes", async (): Promise => { const hexes: string[] = [ "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000", "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" - ] + ]; - const result: DecodeRawTransactionResult | DecodeRawTransactionResult[] = await bitbox.RawTransactions.decodeRawTransaction(hexes) + const result: + | DecodeRawTransactionResult + | DecodeRawTransactionResult[] = await bitbox.RawTransactions.decodeRawTransaction( + hexes + ); - assert.isArray(result) + assert.isArray(result); if (Array.isArray(result)) { assert.hasAnyKeys(result[0], [ "txid", @@ -66,67 +76,87 @@ describe("#RawTransactions", (): void => { "locktime", "vin", "vout" - ]) - assert.isArray(result[0].vin) - assert.isArray(result[0].vout) + ]); + assert.isArray(result[0].vin); + assert.isArray(result[0].vout); } - }) + }); - it(`should throw an error for improper single input`, async (): Promise => { + it(`should throw an error for improper single input`, async (): Promise< + any + > => { try { - const addr: any = 12345 + const addr: any = 12345; - await bitbox.RawTransactions.decodeRawTransaction(addr) - assert.equal(true, false, "Unexpected result!") + await bitbox.RawTransactions.decodeRawTransaction(addr); + assert.equal(true, false, "Unexpected result!"); } catch (err) { assert.include( err.message, `Input must be a string or array of strings.` - ) + ); } - }) + }); - it(`should throw error on array size rate limit`, async (): Promise => { + it(`should throw error on array size rate limit`, async (): Promise< + any + > => { try { - const data: string[] = [] + const data: string[] = []; for (let i: number = 0; i < 25; i++) { data.push( "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" - ) + ); } - const result: DecodeRawTransactionResult | DecodeRawTransactionResult[] = await bitbox.RawTransactions.decodeRawTransaction(data) - assert.equal(true, false, "Unexpected result!") + const result: + | DecodeRawTransactionResult + | DecodeRawTransactionResult[] = await bitbox.RawTransactions.decodeRawTransaction( + data + ); + assert.equal(true, false, "Unexpected result!"); } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") + assert.hasAnyKeys(err, ["error"]); + assert.include(err.error, "Array too large"); } - }) - }) + }); + }); describe("#getRawTransaction", (): void => { - it("should decode a single txid, with concise output", async (): Promise => { + it("should decode a single txid, with concise output", async (): Promise< + any + > => { const txid: string = - "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" - const verbose: boolean = false - - const result: VerboseRawTransactionResult | VerboseRawTransactionResult[] = await bitbox.RawTransactions.getRawTransaction( + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1"; + const verbose: boolean = false; + + const result: + | VerboseRawTransactionResult + | VerboseRawTransactionResult[] + | string + | string[] = await bitbox.RawTransactions.getRawTransaction( txid, verbose - ) + ); - assert.isString(result) - }) + assert.isString(result); + }); - it("should decode a single txid, with verbose output", async (): Promise => { + it("should decode a single txid, with verbose output", async (): Promise< + any + > => { const txid: string = - "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" - const verbose: boolean = true - - const result: VerboseRawTransactionResult | VerboseRawTransactionResult[] = await bitbox.RawTransactions.getRawTransaction( + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1"; + const verbose: boolean = true; + + const result: + | VerboseRawTransactionResult + | VerboseRawTransactionResult[] + | string + | string[] = await bitbox.RawTransactions.getRawTransaction( txid, verbose - ) + ); assert.hasAnyKeys(result, [ "hex", @@ -141,45 +171,56 @@ describe("#RawTransactions", (): void => { "confirmations", "time", "blocktime" - ]) - if (!Array.isArray(result)) { - assert.isArray(result.vin) - assert.isArray(result.vout) - + ]); + if (!Array.isArray(result) && result instanceof Object) { + assert.isArray(result.vin); + assert.isArray(result.vout); } - }) + }); - it("should decode an array of txids, with a concise output", async (): Promise => { + it("should decode an array of txids, with a concise output", async (): Promise< + any + > => { const txid: string[] = [ "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" - ] - const verbose: boolean = false - - const result: VerboseRawTransactionResult | VerboseRawTransactionResult[] = await bitbox.RawTransactions.getRawTransaction( + ]; + const verbose: boolean = false; + + const result: + | VerboseRawTransactionResult + | VerboseRawTransactionResult[] + | string + | string[] = await bitbox.RawTransactions.getRawTransaction( txid, verbose - ) + ); - assert.isArray(result) + assert.isArray(result); if (Array.isArray(result)) { - assert.isString(result[0]) + assert.isString(result[0]); } - }) + }); - it("should decode an array of txids, with a verbose output", async (): Promise => { + it("should decode an array of txids, with a verbose output", async (): Promise< + any + > => { const txid: string[] = [ "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" - ] - const verbose: boolean = true - - const result: VerboseRawTransactionResult | VerboseRawTransactionResult[] = await bitbox.RawTransactions.getRawTransaction( + ]; + const verbose: boolean = true; + + const result: + | VerboseRawTransactionResult + | VerboseRawTransactionResult[] + | string + | string[] = await bitbox.RawTransactions.getRawTransaction( txid, verbose - ) + ); - assert.isArray(result) + assert.isArray(result); if (Array.isArray(result)) { assert.hasAnyKeys(result[0], [ "hex", @@ -194,39 +235,46 @@ describe("#RawTransactions", (): void => { "confirmations", "time", "blocktime" - ]) - assert.isArray(result[0].vin) - assert.isArray(result[0].vout) + ]); + // TODO uncomment this test and fix ts error + // assert.isArray(result[0].vin); + // assert.isArray(result[0].vout); } - }) + }); - it(`should throw error on array size rate limit`, async (): Promise => { + it(`should throw error on array size rate limit`, async (): Promise< + any + > => { try { const dataMock: string = - "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" - const data: string[] = [] - for (let i: number = 0; i < 25; i++) data.push(dataMock) - - const result: VerboseRawTransactionResult | VerboseRawTransactionResult[] = await bitbox.RawTransactions.getRawTransaction(data) - - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1"; + const data: string[] = []; + for (let i: number = 0; i < 25; i++) data.push(dataMock); + + const result: + | VerboseRawTransactionResult + | VerboseRawTransactionResult[] + | string + | string[] = await bitbox.RawTransactions.getRawTransaction(data); + + console.log(`result: ${util.inspect(result)}`); + assert.equal(true, false, "Unexpected result!"); } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") + assert.hasAnyKeys(err, ["error"]); + assert.include(err.error, "Array too large"); } - }) - }) + }); + }); describe("#decodeScript", () => { it("should decode script for a single hex", async (): Promise => { const hex: string = - "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" + "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16"; - const result = await bitbox.RawTransactions.decodeScript(hex) + const result = await bitbox.RawTransactions.decodeScript(hex); - assert.hasAllKeys(result, ["asm", "type", "p2sh"]) - }) + assert.hasAllKeys(result, ["asm", "type", "p2sh"]); + }); // CT 2/20/19 - Waiting for this PR to be merged complete the test: // https://github.com/Bitcoin-com/rest.bitcoin.com/pull/312 @@ -257,7 +305,7 @@ describe("#RawTransactions", (): void => { } }) */ - }) + }); /* Testing sentRawTransaction isn't really possible with an integration test, @@ -269,58 +317,62 @@ describe("#RawTransactions", (): void => { it("should send a single transaction hex", async (): Promise => { try { const hex: string = - "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" + "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000"; - await bitbox.RawTransactions.sendRawTransaction(hex) + await bitbox.RawTransactions.sendRawTransaction(hex); - assert.equal(true, false, "Unexpected result!") + assert.equal(true, false, "Unexpected result!"); } catch (err) { - assert.hasAllKeys(err, ["error"]) - assert.include(err.error, "Missing inputs") + assert.hasAllKeys(err, ["error"]); + assert.include(err.error, "Missing inputs"); } - }) + }); it("should send an array of tx hexes", async (): Promise => { try { const hexes: string[] = [ "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000", "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" - ] + ]; - const result = await bitbox.RawTransactions.sendRawTransaction(hexes) + const result = await bitbox.RawTransactions.sendRawTransaction(hexes); } catch (err) { - assert.hasAllKeys(err, ["error"]) - assert.include(err.error, "Missing inputs") + assert.hasAllKeys(err, ["error"]); + assert.include(err.error, "Missing inputs"); } - }) + }); - it(`should throw an error for improper single input`, async (): Promise => { + it(`should throw an error for improper single input`, async (): Promise< + any + > => { try { - const addr: any = 12345 + const addr: any = 12345; - await bitbox.RawTransactions.sendRawTransaction(addr) - assert.equal(true, false, "Unexpected result!") + await bitbox.RawTransactions.sendRawTransaction(addr); + assert.equal(true, false, "Unexpected result!"); } catch (err) { assert.include( err.message, `Input hex must be a string or array of strings` - ) + ); } - }) + }); - it(`should throw error on array size rate limit`, async (): Promise => { + it(`should throw error on array size rate limit`, async (): Promise< + any + > => { try { const dataMock: string = - "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" - const data: string[] = [] - for (let i: number = 0; i < 25; i++) data.push(dataMock) + "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000"; + const data: string[] = []; + for (let i: number = 0; i < 25; i++) data.push(dataMock); - await bitbox.RawTransactions.sendRawTransaction(data) - assert.equal(true, false, "Unexpected result!") + await bitbox.RawTransactions.sendRawTransaction(data); + assert.equal(true, false, "Unexpected result!"); } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") + assert.hasAnyKeys(err, ["error"]); + assert.include(err.error, "Array too large"); } - }) - }) -}) + }); + }); +}); From a0c346e7cfe0ba2cc8c9aeb86bf7482d2047d2a6 Mon Sep 17 00:00:00 2001 From: Rosco Kalis Date: Mon, 20 May 2019 21:43:37 +0900 Subject: [PATCH 385/480] Expose bitcoincashjs-lib Script.number --- lib/Script.ts | 7 +++++++ test/unit/Script.ts | 14 ++++++++++++++ test/unit/fixtures/Script.json | 14 ++++++++++++++ 3 files changed, 35 insertions(+) diff --git a/lib/Script.ts b/lib/Script.ts index 6aba722a..79a2246b 100644 --- a/lib/Script.ts +++ b/lib/Script.ts @@ -214,6 +214,11 @@ export interface scriptHash { } } +export interface scriptNumber { + encode(number: number): Buffer + decode(buffer: Buffer, maxLength?: number, minimal?: boolean): number +} + export class Script { public opcodes: opcodes public nullData: nullData @@ -221,6 +226,7 @@ export class Script { public pubKeyHash: pubKeyHash public multisig: multisig public scriptHash: scriptHash + public number: scriptNumber constructor() { this.opcodes = opcodes @@ -252,6 +258,7 @@ export class Script { this.pubKey = Bitcoin.script.pubKey this.pubKeyHash = Bitcoin.script.pubKeyHash this.scriptHash = Bitcoin.script.scriptHash + this.number = Bitcoin.script.number } public encode(scriptChunks: Array): Buffer { diff --git a/test/unit/Script.ts b/test/unit/Script.ts index 8bdec629..ef95dad3 100644 --- a/test/unit/Script.ts +++ b/test/unit/Script.ts @@ -429,4 +429,18 @@ describe("#Script", (): void => { }) }) }) + + describe("#scriptNumber", (): void => { + fixtures.scriptNumber.forEach((fixture: any): void => { + it(`should encode number ${fixture.decoded} as bytes ${fixture.encoded}`, (): void => { + const encoded = bitbox.Script.number.encode(fixture.decoded) + assert.equal(encoded.toString("hex"), fixture.encoded) + }) + + it(`should decode bytes ${fixture.encoded} as number ${fixture.decoded}`, (): void => { + const decoded = bitbox.Script.number.decode(Buffer.from(fixture.encoded, 'hex')) + assert.equal(decoded, fixture.decoded) + }) + }) + }) }) diff --git a/test/unit/fixtures/Script.json b/test/unit/fixtures/Script.json index db95b382..ab45e230 100644 --- a/test/unit/fixtures/Script.json +++ b/test/unit/fixtures/Script.json @@ -654,5 +654,19 @@ "output": "OP_DUP OP_HASH160 aa4d7985c57e011a8b3dd8e0e5a73aaef41629c5 OP_EQUALVERIFY OP_CHECKSIG", "hex": "a9141b61ebed0c2a16c699a99c3d5ef4d08de7fb1cb887" } + ], + "scriptNumber": [ + { + "decoded": 1, + "encoded": "01" + }, + { + "decoded": -1, + "encoded": "81" + }, + { + "decoded": 1000, + "encoded": "e803" + } ] } From d5cb73cfa35a90535c31362c443b46465efe8506 Mon Sep 17 00:00:00 2001 From: Rosco Kalis Date: Tue, 21 May 2019 12:01:50 +0900 Subject: [PATCH 386/480] Add wrapper methods around number.{en|de}code to Script --- lib/Script.ts | 8 ++++++++ test/unit/Script.ts | 14 +++++++++----- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/lib/Script.ts b/lib/Script.ts index 79a2246b..7c61e143 100644 --- a/lib/Script.ts +++ b/lib/Script.ts @@ -396,4 +396,12 @@ export class Script { public checkP2SHOutput(output: Buffer): boolean { return this.scriptHash.output.check(output) } + + public encodeNumber(number: number): Buffer { + return this.number.encode(number); + } + + public decodeNumber(buffer: Buffer, maxLength?: number, minimal?: boolean): number { + return this.number.decode(buffer, maxLength, minimal); + } } diff --git a/test/unit/Script.ts b/test/unit/Script.ts index ef95dad3..3da586ef 100644 --- a/test/unit/Script.ts +++ b/test/unit/Script.ts @@ -430,16 +430,20 @@ describe("#Script", (): void => { }) }) - describe("#scriptNumber", (): void => { + describe("#number", (): void => { fixtures.scriptNumber.forEach((fixture: any): void => { it(`should encode number ${fixture.decoded} as bytes ${fixture.encoded}`, (): void => { - const encoded = bitbox.Script.number.encode(fixture.decoded) - assert.equal(encoded.toString("hex"), fixture.encoded) + const encoded1 = bitbox.Script.number.encode(fixture.decoded) + const encoded2 = bitbox.Script.encodeNumber(fixture.decoded) + assert.equal(encoded1.toString("hex"), fixture.encoded) + assert.equal(encoded2.toString("hex"), fixture.encoded) }) it(`should decode bytes ${fixture.encoded} as number ${fixture.decoded}`, (): void => { - const decoded = bitbox.Script.number.decode(Buffer.from(fixture.encoded, 'hex')) - assert.equal(decoded, fixture.decoded) + const decoded1 = bitbox.Script.number.decode(Buffer.from(fixture.encoded, 'hex')) + const decoded2 = bitbox.Script.decodeNumber(Buffer.from(fixture.encoded, 'hex')) + assert.equal(decoded1, fixture.decoded) + assert.equal(decoded2, fixture.decoded) }) }) }) From b589a61d7431c166fce59cd862acae8fcdb9f4d3 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 22 May 2019 14:55:06 +0900 Subject: [PATCH 387/480] Script.number. --- index.ts | 82 +++---- lib/Address.ts | 29 ++- lib/BITBOX.ts | 28 +-- lib/BitcoinCash.ts | 17 +- lib/Block.ts | 2 +- lib/Blockchain.ts | 26 ++- lib/Control.ts | 6 +- lib/ECPair.ts | 8 +- lib/Generating.ts | 2 +- lib/HDNode.ts | 11 +- lib/Mining.ts | 2 +- lib/Mnemonic.ts | 38 ++-- lib/RawTransactions.ts | 15 +- lib/Schnorr.ts | 16 +- lib/Script.ts | 56 ++--- lib/Transaction.ts | 6 +- lib/TransactionBuilder.ts | 4 +- lib/interfaces/vendors.d.ts | 430 ++++++++++++++++++------------------ package.json | 2 +- test/unit/Address.ts | 351 +++++++++++++++++++---------- 20 files changed, 656 insertions(+), 475 deletions(-) diff --git a/index.ts b/index.ts index f75acd80..45d61d15 100644 --- a/index.ts +++ b/index.ts @@ -1,49 +1,49 @@ /// -export * from "./lib/Address"; -export * from "./lib/BITBOX"; -export * from "./lib/BitcoinCash"; -export * from "./lib/Block"; -export * from "./lib/Blockchain"; -export * from "./lib/Control"; -export * from "./lib/Crypto"; -export * from "./lib/ECPair"; -export * from "./lib/Generating"; -export * from "./lib/HDNode"; -export * from "./lib/Mining"; -export * from "./lib/Mnemonic"; -export * from "./lib/Price"; -export * from "./lib/RawTransactions"; -export * from "./lib/Schnorr"; -export * from "./lib/Script"; -export * from "./lib/Socket"; -export * from "./lib/Transaction"; -export * from "./lib/TransactionBuilder"; -export * from "./lib/Util"; +export * from "./lib/Address" +export * from "./lib/BITBOX" +export * from "./lib/BitcoinCash" +export * from "./lib/Block" +export * from "./lib/Blockchain" +export * from "./lib/Control" +export * from "./lib/Crypto" +export * from "./lib/ECPair" +export * from "./lib/Generating" +export * from "./lib/HDNode" +export * from "./lib/Mining" +export * from "./lib/Mnemonic" +export * from "./lib/Price" +export * from "./lib/RawTransactions" +export * from "./lib/Schnorr" +export * from "./lib/Script" +export * from "./lib/Socket" +export * from "./lib/Transaction" +export * from "./lib/TransactionBuilder" +export * from "./lib/Util" export interface BchInfo { - hashGenesisBlock: string; - port: number; - portRpc: number; + hashGenesisBlock: string + port: number + portRpc: number protocol: { - magic: number; - }; - seedsDns: string[]; + magic: number + } + seedsDns: string[] versions: { bip32: { - private: number; - public: number; - }; - bip44: number; - private: number; - public: number; - scripthash: number; - messagePrefix: string; - }; - name: string; - per1: number; - unit: string; - testnet: boolean; - toBitcoinJS: any; - toBitcore: any; + private: number + public: number + } + bip44: number + private: number + public: number + scripthash: number + messagePrefix: string + } + name: string + per1: number + unit: string + testnet: boolean + toBitcoinJS: any + toBitcore: any } diff --git a/lib/Address.ts b/lib/Address.ts index d3752192..ca19b449 100644 --- a/lib/Address.ts +++ b/lib/Address.ts @@ -1,8 +1,15 @@ +// imports import axios, { AxiosResponse } from "axios" -import { AddressDetailsResult, AddressUtxoResult, AddressUnconfirmedResult } from "bitcoin-com-rest"; +import { + AddressDetailsResult, + AddressUnconfirmedResult, + AddressUtxoResult +} from "bitcoin-com-rest" import * as bcl from "bitcoincashjs-lib" +import { BchInfo } from ".." import { resturl } from "./BITBOX" -import { BchInfo } from ".."; + +// consts // TODO: port require statements to impprt const Bitcoin = require("bitcoincashjs-lib") const cashaddr = require("cashaddrjs") @@ -203,7 +210,10 @@ export class Address { else bitcoincash = coininfo.bitcoincash.test const bitcoincashBitcoinJSLib: any = bitcoincash.toBitcoinJS() - const HDNode: bcl.HDNode = Bitcoin.HDNode.fromBase58(xpub, bitcoincashBitcoinJSLib) + const HDNode: bcl.HDNode = Bitcoin.HDNode.fromBase58( + xpub, + bitcoincashBitcoinJSLib + ) const address: bcl.HDNode = HDNode.derivePath(path) return this.toCashAddress(address.getAddress()) } @@ -222,7 +232,10 @@ export class Address { return this.toCashAddress(address.getAddress()) } - public fromOutputScript(scriptPubKey: Buffer, network: string = "mainnet"): string { + public fromOutputScript( + scriptPubKey: Buffer, + network: string = "mainnet" + ): string { let netParam: any if (network !== "bitcoincash" && network !== "mainnet") netParam = Bitcoin.networks.testnet @@ -369,11 +382,11 @@ export class Address { private _decode(address: string): Decoded { try { return this._decodeLegacyAddress(address) - } catch (error) { } + } catch (error) {} try { return this._decodeCashAddress(address) - } catch (error) { } + } catch (error) {} throw new Error(`Unsupported address format : ${address}`) } @@ -381,7 +394,7 @@ export class Address { private _decodeHash160(address: string): DecodedHash160 { try { return this._decodeAddressFromHash160(address) - } catch (error) { } + } catch (error) {} throw new Error(`Unsupported address format : ${address}`) } @@ -449,7 +462,7 @@ export class Address { const decoded: Decoded = cashaddr.decode(`${prefixes[i]}:${address}`) decoded.format = "cashaddr" return decoded - } catch (error) { } + } catch (error) {} } throw new Error(`Invalid format : ${address}`) diff --git a/lib/BITBOX.ts b/lib/BITBOX.ts index 5d4a6ac5..8625faca 100644 --- a/lib/BITBOX.ts +++ b/lib/BITBOX.ts @@ -1,31 +1,31 @@ /// -// import interfaces -import { IConfig } from "./interfaces/BITBOXInterfaces" - -// local deps +// imports +import { Address } from "./Address" import { BitcoinCash } from "./BitcoinCash" -import { Crypto } from "./Crypto" -import { Util } from "./Util" import { Block } from "./Block" import { Blockchain } from "./Blockchain" import { Control } from "./Control" +import { Crypto } from "./Crypto" +import { ECPair } from "./ECPair" import { Generating } from "./Generating" +import { HDNode } from "./HDNode" +import { IConfig } from "./interfaces/BITBOXInterfaces" import { Mining } from "./Mining" -import { RawTransactions } from "./RawTransactions" import { Mnemonic } from "./Mnemonic" -import { Address } from "./Address" -import { HDNode } from "./HDNode" -import { Transaction } from "./Transaction" -import { TransactionBuilder } from "./TransactionBuilder" -import { ECPair } from "./ECPair" -import { Script } from "./Script" import { Price } from "./Price" -import { Socket } from "./Socket" +import { RawTransactions } from "./RawTransactions" import { Schnorr } from "./Schnorr" +import { Script } from "./Script" +import { Socket } from "./Socket" +import { Transaction } from "./Transaction" +import { TransactionBuilder } from "./TransactionBuilder" +import { Util } from "./Util" // import { Wallet } from "./Wallet" +// consts export const resturl = "https://rest.bitcoin.com/v2/" + export class BITBOX { public restURL: string public Address: Address diff --git a/lib/BitcoinCash.ts b/lib/BitcoinCash.ts index 2d005f6f..643f86de 100644 --- a/lib/BitcoinCash.ts +++ b/lib/BitcoinCash.ts @@ -55,7 +55,10 @@ export class BitcoinCash { return satoshis / 100 } - public signMessageWithPrivKey(privateKeyWIF: string, message: string): string { + public signMessageWithPrivKey( + privateKeyWIF: string, + message: string + ): string { const network: string = privateKeyWIF.charAt(0) === "c" ? "testnet" : "mainnet" let bitcoincash: any @@ -73,7 +76,11 @@ export class BitcoinCash { .toString("base64") } - public verifyMessage(address: string, signature: string, message: string): boolean { + public verifyMessage( + address: string, + signature: string, + message: string + ): boolean { return bitcoinMessage.verify( message, this._address.toLegacyAddress(address), @@ -126,13 +133,13 @@ export class BitcoinCash { } } - Object.keys(inputs).forEach(function (key) { + Object.keys(inputs).forEach(function(key) { if (key.slice(0, 8) === "MULTISIG") { // ex. "MULTISIG-P2SH:2-3" would mean 2 of 3 P2SH MULTISIG const keyParts = key.split(":") if (keyParts.length !== 2) throw new Error(`invalid input: ${key}`) const newKey = keyParts[0] - const mAndN = keyParts[1].split("-").map(function (item) { + const mAndN = keyParts[1].split("-").map(function(item) { return parseInt(item) }) @@ -145,7 +152,7 @@ export class BitcoinCash { if (key.indexOf("W") >= 0) hasWitness = true }) - Object.keys(outputs).forEach(function (key) { + Object.keys(outputs).forEach(function(key) { totalWeight += types.outputs[key] * outputs[key] }) diff --git a/lib/Block.ts b/lib/Block.ts index 9d783da2..23f77ec6 100644 --- a/lib/Block.ts +++ b/lib/Block.ts @@ -1,5 +1,5 @@ import axios, { AxiosResponse } from "axios" -import { BlockDetailsResult } from "bitcoin-com-rest"; +import { BlockDetailsResult } from "bitcoin-com-rest" import { resturl } from "./BITBOX" export class Block { diff --git a/lib/Blockchain.ts b/lib/Blockchain.ts index 8d381280..34e334cc 100644 --- a/lib/Blockchain.ts +++ b/lib/Blockchain.ts @@ -4,7 +4,15 @@ */ import axios, { AxiosResponse } from "axios" -import { BlockDetailsResult, BlockchainInfoResult, BlockHeaderResult, ChainTipResult, MempoolInfoResult, TxOutResult, MempoolEntryResult } from "bitcoin-com-rest"; +import { + BlockchainInfoResult, + BlockDetailsResult, + BlockHeaderResult, + ChainTipResult, + MempoolEntryResult, + MempoolInfoResult, + TxOutResult +} from "bitcoin-com-rest" import { resturl } from "./BITBOX" export class Blockchain { @@ -147,7 +155,7 @@ export class Blockchain { try { const response: AxiosResponse = await axios.get( `${ - this.restURL + this.restURL }blockchain/getMempoolAncestors/${txid}?verbose=${verbose}` ) return response.data @@ -167,7 +175,7 @@ export class Blockchain { try { const response: AxiosResponse = await axios.get( `${ - this.restURL + this.restURL }blockchain/getMempoolDescendants/${txid}?verbose=${verbose}` ) return response.data @@ -177,7 +185,9 @@ export class Blockchain { } } - public async getMempoolEntry(txid: string | string[]): Promise { + public async getMempoolEntry( + txid: string | string[] + ): Promise { //if (typeof txid !== "string") txid = JSON.stringify(txid) try { @@ -241,7 +251,7 @@ export class Blockchain { try { const response: AxiosResponse = await axios.get( `${ - this.restURL + this.restURL }blockchain/getTxOut/${txid}/n?include_mempool=${include_mempool}` ) return response.data @@ -251,7 +261,9 @@ export class Blockchain { } } - public async getTxOutProof(txids: string | string[]): Promise { + public async getTxOutProof( + txids: string | string[] + ): Promise { try { // Single txid. if (typeof txids === "string") { @@ -315,7 +327,7 @@ export class Blockchain { try { const response: AxiosResponse = await axios.get( `${ - this.restURL + this.restURL }blockchain/verifyChain?checklevel=${checklevel}&nblocks=${nblocks}` ) return response.data diff --git a/lib/Control.ts b/lib/Control.ts index 97a91049..4596c6d8 100644 --- a/lib/Control.ts +++ b/lib/Control.ts @@ -1,5 +1,5 @@ import axios, { AxiosResponse } from "axios" -import { NodeInfoResult } from "bitcoin-com-rest"; +import { NodeInfoResult } from "bitcoin-com-rest" import { resturl } from "./BITBOX" export class Control { @@ -10,7 +10,9 @@ export class Control { public async getInfo(): Promise { try { - const response: AxiosResponse = await axios.get(`${this.restURL}control/getInfo`) + const response: AxiosResponse = await axios.get( + `${this.restURL}control/getInfo` + ) return response.data } catch (error) { if (error.response && error.response.data) throw error.response.data diff --git a/lib/ECPair.ts b/lib/ECPair.ts index 49d98b9f..773980b3 100644 --- a/lib/ECPair.ts +++ b/lib/ECPair.ts @@ -1,4 +1,4 @@ -import * as bcl from "bitcoincashjs-lib"; +import * as bcl from "bitcoincashjs-lib" import { Address } from "./Address" const Bitcoin = require("bitcoincashjs-lib") @@ -33,7 +33,11 @@ export class ECPair { return ecpair.sign(buffer) } - public verify(ecpair: bcl.ECPair, buffer: Buffer, signature: bcl.ECSignature): boolean { + public verify( + ecpair: bcl.ECPair, + buffer: Buffer, + signature: bcl.ECSignature + ): boolean { return ecpair.verify(buffer, signature) } diff --git a/lib/Generating.ts b/lib/Generating.ts index ff00a665..ebe41813 100644 --- a/lib/Generating.ts +++ b/lib/Generating.ts @@ -15,7 +15,7 @@ export class Generating { try { const response: AxiosResponse = await axios.post( `${ - this.restURL + this.restURL }generating/generateToAddress/${blocks}/${address}?maxtries=${maxtries}` ) return response.data diff --git a/lib/HDNode.ts b/lib/HDNode.ts index 94648551..9f3a5eda 100644 --- a/lib/HDNode.ts +++ b/lib/HDNode.ts @@ -13,7 +13,10 @@ export class HDNode { this._address = address } - public fromSeed(rootSeedBuffer: any, network: string = "mainnet"): bcl.HDNode { + public fromSeed( + rootSeedBuffer: any, + network: string = "mainnet" + ): bcl.HDNode { let bitcoincash: any if (network === "bitcoincash" || network === "mainnet") bitcoincash = coininfo.bitcoincash.main @@ -88,7 +91,11 @@ export class HDNode { return hdnode.sign(buffer) } - public verify(hdnode: bcl.HDNode, buffer: Buffer, signature: bcl.ECSignature): boolean { + public verify( + hdnode: bcl.HDNode, + buffer: Buffer, + signature: bcl.ECSignature + ): boolean { return hdnode.verify(buffer, signature) } diff --git a/lib/Mining.ts b/lib/Mining.ts index 8455bb84..f07a5252 100644 --- a/lib/Mining.ts +++ b/lib/Mining.ts @@ -38,7 +38,7 @@ export class Mining { try { const response: AxiosResponse = await axios.get( `${ - this.restURL + this.restURL }mining/getNetworkHashps?nblocks=${nblocks}&height=${height}` ) return response.data diff --git a/lib/Mnemonic.ts b/lib/Mnemonic.ts index 8897f56f..7c45813c 100644 --- a/lib/Mnemonic.ts +++ b/lib/Mnemonic.ts @@ -1,12 +1,12 @@ import * as BIP39 from "bip39" -import * as randomBytes from "randombytes" -// TODO: convert "bitcoincashjs-lib" require to import -const Bitcoin = require("bitcoincashjs-lib") +import * as bcl from "bitcoincashjs-lib" // import * as Bitcoin from "bitcoincashjs-lib" import { Buffer } from "buffer" +import * as randomBytes from "randombytes" import * as wif from "wif" import { Address } from "./Address" -import * as bcl from "bitcoincashjs-lib" +// TODO: convert "bitcoincashjs-lib" require to import +const Bitcoin = require("bitcoincashjs-lib") export class Mnemonic { private _address: Address @@ -14,19 +14,31 @@ export class Mnemonic { this._address = address } - public generate(bits: number = 128, wordlist: string[] = this.wordLists().english): string { + public generate( + bits: number = 128, + wordlist: string[] = this.wordLists().english + ): string { return BIP39.generateMnemonic(bits, randomBytes, wordlist) } - public fromEntropy(bytes: Buffer, wordlist: string[] = this.wordLists().english): string { + public fromEntropy( + bytes: Buffer, + wordlist: string[] = this.wordLists().english + ): string { return BIP39.entropyToMnemonic(bytes, wordlist) } - public toEntropy(mnemonic: string, wordlist: string[] = this.wordLists().english): Buffer { + public toEntropy( + mnemonic: string, + wordlist: string[] = this.wordLists().english + ): Buffer { return Buffer.from(BIP39.mnemonicToEntropy(mnemonic, wordlist), "hex") } - public validate(mnemonic: string, wordlist: string[] = this.wordLists().english): string { + public validate( + mnemonic: string, + wordlist: string[] = this.wordLists().english + ): string { // Preprocess the words const words = mnemonic.split(" ") // Detect blank phrase @@ -118,7 +130,7 @@ export class Mnemonic { * @return Object the final object. */ -const _extend: any = function (dst: any): any { +const _extend: any = function(dst: any): any { const sources: any = Array.prototype.slice.call(arguments, 1) for (let i: number = 0; i < sources.length; ++i) { const src = sources[i] @@ -131,7 +143,7 @@ const _extend: any = function (dst: any): any { * Defer execution of given function. * @param {Function} func */ -const _defer: any = function (func: any): any { +const _defer: any = function(func: any): any { if (typeof setImmediate === "function") return setImmediate(func) return setTimeout(func, 0) @@ -148,7 +160,7 @@ var Levenshtein: any = { * @param str2 String the second string. * @return Integer the levenshtein distance (0 and above). */ - get: function (str1: any, str2: any) { + get: function(str1: any, str2: any) { // base cases if (str1 === str2) return 0 if (str1.length === 0) return str2.length @@ -202,7 +214,7 @@ var Levenshtein: any = { * @param [options] Object additional options. * @param [options.progress] Function progress callback with signature: function(percentComplete) */ - getAsync: function (str1: any, str2: any, cb: any, options: any) { + getAsync: function(str1: any, str2: any, cb: any, options: any) { options = _extend( {}, { @@ -233,7 +245,7 @@ var Levenshtein: any = { i = 0 j = -1 - var __calculate = function () { + var __calculate = function() { // reset timer startTime = new Date().valueOf() currentTime = startTime diff --git a/lib/RawTransactions.ts b/lib/RawTransactions.ts index ab96273b..8f29ae56 100644 --- a/lib/RawTransactions.ts +++ b/lib/RawTransactions.ts @@ -1,5 +1,5 @@ import axios, { AxiosResponse } from "axios" -import { VerboseRawTransactionResult } from "bitcoin-com-rest"; +import { VerboseRawTransactionResult } from "bitcoin-com-rest" import { resturl } from "./BITBOX" export class RawTransactions { @@ -8,7 +8,9 @@ export class RawTransactions { this.restURL = restURL } - public async decodeRawTransaction(hex: string | string[]): Promise { + public async decodeRawTransaction( + hex: string | string[] + ): Promise { try { // Single hex if (typeof hex === "string") { @@ -72,12 +74,17 @@ export class RawTransactions { public async getRawTransaction( txid: string | string[], verbose: boolean = false - ): Promise { + ): Promise< + | VerboseRawTransactionResult + | VerboseRawTransactionResult[] + | string + | string[] + > { try { if (typeof txid === "string") { const response: AxiosResponse = await axios.get( `${ - this.restURL + this.restURL }rawtransactions/getRawTransaction/${txid}?verbose=${verbose}` ) diff --git a/lib/Schnorr.ts b/lib/Schnorr.ts index 23368ef1..a877a7b8 100644 --- a/lib/Schnorr.ts +++ b/lib/Schnorr.ts @@ -5,11 +5,11 @@ import * as BigInteger from "bigi" const schnorr = require("bip-schnorr") export interface Session { - sessionId: Buffer; - message: Buffer; - pubKeyCombined: Buffer; - ell: Buffer; - idx: number; + sessionId: Buffer + message: Buffer + pubKeyCombined: Buffer + ell: Buffer + idx: number } export class Schnorr { @@ -17,7 +17,11 @@ export class Schnorr { return schnorr.sign(privateKey, message) } - public verify(publicKey: Buffer, message: Buffer, signatureToVerify: Buffer): void { + public verify( + publicKey: Buffer, + message: Buffer, + signatureToVerify: Buffer + ): void { return schnorr.verify(publicKey, message, signatureToVerify) } diff --git a/lib/Script.ts b/lib/Script.ts index 7c61e143..2d448be1 100644 --- a/lib/Script.ts +++ b/lib/Script.ts @@ -150,14 +150,13 @@ export interface nullData { } export interface pubKey { - input: - { + input: { encode(signature: Buffer): Buffer decode(input: Buffer): Buffer check(input: Buffer): boolean decodeStack(data: Buffer): Buffer encodeStack(data: Buffer): Buffer - }, + } output: { encode(pubKey: Buffer): Buffer decode(output: Buffer): Buffer @@ -166,16 +165,14 @@ export interface pubKey { } export interface pubKeyHash { - input: - { + input: { encode(signature: Buffer, pubKey: Buffer): Buffer decode(data: Buffer): DecodedP2PKHInput check(data: Buffer): boolean decodeStack(data: Buffer): Buffer encodeStack(data: Buffer): Buffer - }, - output: - { + } + output: { encode(identifier: Buffer): Buffer decode(output: Buffer): Buffer check(output: Buffer): boolean @@ -183,14 +180,12 @@ export interface pubKeyHash { } export interface multisig { - input: - { + input: { encode(signatures: Buffer[]): Buffer decode(input: Buffer): Buffer[] check(input: Buffer): boolean - }, - output: - { + } + output: { encode(m: number, pubKeys: Buffer[]): Buffer decode(output: Buffer): DecodedP2MSOutput check(output: Buffer): boolean @@ -198,16 +193,14 @@ export interface multisig { } export interface scriptHash { - input: - { + input: { encode(redeemScriptSig: Buffer, redeemScript: Buffer): Buffer decode(input: Buffer): DecodedP2SHInput check(data: Buffer): boolean decodeStack(data: Buffer): Buffer encodeStack(data: Buffer): Buffer - }, - output: - { + } + output: { encode(scriptHash: Buffer): Buffer decode(output: Buffer): Buffer check(output: Buffer): boolean @@ -322,7 +315,7 @@ export class Script { } public checkP2PKOutput(output: Buffer): boolean { - return this.pubKey.output.check(output); + return this.pubKey.output.check(output) } public encodeP2PKHInput(signature: Buffer, pubKey: Buffer): Buffer { @@ -346,7 +339,7 @@ export class Script { } public checkP2PKHOutput(output: Buffer): boolean { - return this.pubKeyHash.output.check(output); + return this.pubKeyHash.output.check(output) } public encodeP2MSInput(signatures: Buffer[]): Buffer { @@ -354,7 +347,7 @@ export class Script { } public decodeP2MSInput(input: Buffer): Buffer[] { - return this.multisig.input.decode(input); + return this.multisig.input.decode(input) } public checkP2MSInput(input: Buffer): boolean { @@ -370,10 +363,13 @@ export class Script { } public checkP2MSOutput(output: Buffer): boolean { - return this.multisig.output.check(output); + return this.multisig.output.check(output) } - public encodeP2SHInput(redeemScriptSig: Buffer, redeemScript: Buffer): Buffer { + public encodeP2SHInput( + redeemScriptSig: Buffer, + redeemScript: Buffer + ): Buffer { return this.scriptHash.input.encode(redeemScriptSig, redeemScript) } @@ -382,7 +378,7 @@ export class Script { } public checkP2SHInput(input: Buffer): boolean { - return this.scriptHash.input.check(input); + return this.scriptHash.input.check(input) } public encodeP2SHOutput(scriptHash: Buffer): Buffer { @@ -390,7 +386,7 @@ export class Script { } public decodeP2SHOutput(output: Buffer): Buffer { - return this.scriptHash.output.decode(output); + return this.scriptHash.output.decode(output) } public checkP2SHOutput(output: Buffer): boolean { @@ -398,10 +394,14 @@ export class Script { } public encodeNumber(number: number): Buffer { - return this.number.encode(number); + return this.number.encode(number) } - public decodeNumber(buffer: Buffer, maxLength?: number, minimal?: boolean): number { - return this.number.decode(buffer, maxLength, minimal); + public decodeNumber( + buffer: Buffer, + maxLength?: number, + minimal?: boolean + ): number { + return this.number.decode(buffer, maxLength, minimal) } } diff --git a/lib/Transaction.ts b/lib/Transaction.ts index 69a92196..8743c18e 100644 --- a/lib/Transaction.ts +++ b/lib/Transaction.ts @@ -1,5 +1,5 @@ import axios, { AxiosResponse } from "axios" -import { TxnDetailsResult } from "bitcoin-com-rest"; +import { TxnDetailsResult } from "bitcoin-com-rest" import { resturl } from "./BITBOX" export class Transaction { @@ -8,7 +8,9 @@ export class Transaction { this.restURL = restURL } - public async details(txid: string | string[]): Promise { + public async details( + txid: string | string[] + ): Promise { try { // Handle single address. if (typeof txid === "string") { diff --git a/lib/TransactionBuilder.ts b/lib/TransactionBuilder.ts index b7b74b40..dbdb77d5 100644 --- a/lib/TransactionBuilder.ts +++ b/lib/TransactionBuilder.ts @@ -1,7 +1,7 @@ // imports -import { ECPair } from "bitcoincashjs-lib"; +import { ECPair } from "bitcoincashjs-lib" +import { BchInfo } from ".." import { Address } from "./Address" -import { BchInfo } from ".."; // consts const Bitcoin = require("bitcoincashjs-lib") diff --git a/lib/interfaces/vendors.d.ts b/lib/interfaces/vendors.d.ts index 55dbfa82..ccd8c456 100644 --- a/lib/interfaces/vendors.d.ts +++ b/lib/interfaces/vendors.d.ts @@ -1,297 +1,297 @@ /// declare module "bitcoincashjs-lib" { export interface HDNode { - keyPair: any; - getAddress(): any; - isNeutered(): any; - getIdentifier(): any; - verify(buffer: any, signature: any): any; - deriveHardened(path: any): any; - sign(buffer: any): any; - toBase58(): any; - neutered(): any; - getPublicKeyBuffer(): any; - derivePath(path: any): any; - derive(path: any): any; + keyPair: any + getAddress(): any + isNeutered(): any + getIdentifier(): any + verify(buffer: any, signature: any): any + deriveHardened(path: any): any + sign(buffer: any): any + toBase58(): any + neutered(): any + getPublicKeyBuffer(): any + derivePath(path: any): any + derive(path: any): any } export interface ECPair { - toWIF(): string; - sign(buffer: Buffer): Boolean | ECSignature; - verify(buffer: Buffer, signature: ECSignature): boolean; - getPublicKeyBuffer(): Buffer; - getAddress(): string; + toWIF(): string + sign(buffer: Buffer): Boolean | ECSignature + verify(buffer: Buffer, signature: ECSignature): boolean + getPublicKeyBuffer(): Buffer + getAddress(): string } - export type ECSignature = any; + export type ECSignature = any } declare module "bitcoin-com-rest" { export interface BlockDetailsResult { - hash: string; - size: number; - height: number; - version: number; - merkleroot: string; - tx: string[]; - time: number; - mediantime?: number; - nonce: number; - bits: string; - difficulty: number; - chainwork: string; - confirmations: number; - previousblockhash: string; - nextblockhash: string; - reward: number; - isMainChain: boolean; - poolInfo: object; + hash: string + size: number + height: number + version: number + merkleroot: string + tx: string[] + time: number + mediantime?: number + nonce: number + bits: string + difficulty: number + chainwork: string + confirmations: number + previousblockhash: string + nextblockhash: string + reward: number + isMainChain: boolean + poolInfo: object } export interface MempoolInfoResult { - size: number; - bytes: number; - usage: number; - maxmempool: number; - mempoolminfee: number; + size: number + bytes: number + usage: number + maxmempool: number + mempoolminfee: number } export interface BlockchainInfoResult { - chain: string; - blocks: number; - headers: number; - bestblockhash: string; - difficulty: number; - mediantime: number; - verificationprogress: number; - chainwork: string; - pruned: boolean; - softforks: object[]; - bip9_softforks: object; + chain: string + blocks: number + headers: number + bestblockhash: string + difficulty: number + mediantime: number + verificationprogress: number + chainwork: string + pruned: boolean + softforks: object[] + bip9_softforks: object } export interface BlockHeaderResult { - hash: string; - confirmations: number; - height: number; - version: number; - versionHex: string; - merkleroot: string; - time: number; - mediantime: number; - nonce: number; - bits: string; - difficulty: number; - chainwork: string; - previousblockhash: string; - nextblockhash: string; + hash: string + confirmations: number + height: number + version: number + versionHex: string + merkleroot: string + time: number + mediantime: number + nonce: number + bits: string + difficulty: number + chainwork: string + previousblockhash: string + nextblockhash: string } export interface ChainTipResult { - height: number; - hash: string; - branchlen: number; - status: string; + height: number + hash: string + branchlen: number + status: string } export interface TxOutResult { - bestblock: string; - confirmations: number; - value: number; + bestblock: string + confirmations: number + value: number scriptPubKey: { - asm: string; - hex: string; - reqSigs: number; - type: string; - addresses: string[]; - }; - version: number; - coinbase: boolean; + asm: string + hex: string + reqSigs: number + type: string + addresses: string[] + } + version: number + coinbase: boolean } export interface MempoolEntryResult { - size: number; - fee: number; - modifiedfee: number; - time: number; - height: number; - startingpriority: number; - currentpriority: number; - descendantcount: number; - descendantsize: number; - descendantfees: number; - ancestorcount: number; - ancestorsize: number; - ancestorfees: number; - depends: string[]; - spentby: string[]; + size: number + fee: number + modifiedfee: number + time: number + height: number + startingpriority: number + currentpriority: number + descendantcount: number + descendantsize: number + descendantfees: number + ancestorcount: number + ancestorsize: number + ancestorfees: number + depends: string[] + spentby: string[] } export interface NodeInfoResult { - version: number; - protocolversion: number; - blocks: number; - timeoffset: number; - connections: number; - proxy: string; - difficulty: number; - testnet: boolean; - paytxfee: number; - relayfee: number; - errors: string; + version: number + protocolversion: number + blocks: number + timeoffset: number + connections: number + proxy: string + difficulty: number + testnet: boolean + paytxfee: number + relayfee: number + errors: string } export interface NodeMemoryInfoResult { locked: { - used: number; - free: number; - total: number; - locked: number; - chunks_used: number; - chunks_free: number; - }; + used: number + free: number + total: number + locked: number + chunks_used: number + chunks_free: number + } } export interface DecodeRawTransactionResult { - txid: string; - hash: string; - size: number; - version: number; - locktime: number; + txid: string + hash: string + size: number + version: number + locktime: number vin: [ { - txid: string; - vout: number; + txid: string + vout: number scriptSig: { - asm: string; - hex: string; - }; - sequence: number; + asm: string + hex: string + } + sequence: number } - ]; + ] vout: [ { - value: number; - n: number; + value: number + n: number scriptPubKey: { - asm: string; - hex: string; - reqSigs: number; - type: string; - addresses: string[]; - }; + asm: string + hex: string + reqSigs: number + type: string + addresses: string[] + } } - ]; + ] } export interface DecodeScriptResult { - asm: string; - type: string; - p2sh: string; + asm: string + type: string + p2sh: string } export interface VerboseRawTransactionResult { - hex: string; - txid: string; - size: number; - version: number; - locktime: number; - vin: [{ coinbase: string; sequence: number }]; + hex: string + txid: string + size: number + version: number + locktime: number + vin: [{ coinbase: string; sequence: number }] vout: [ { - value: number; - n: number; + value: number + n: number scriptPubKey: { - asm: string; - hex: string; - reqSigs: number; - type: string; - addresses: string[]; - }; + asm: string + hex: string + reqSigs: number + type: string + addresses: string[] + } } - ]; - blockhash: string; - confirmations: number; - time: number; - blocktime: number; + ] + blockhash: string + confirmations: number + time: number + blocktime: number } export interface TxnDetailsResult { - txid: string; - version: number; - locktime: number; - vin: object[]; - vout: object[]; - blockhash: string; - blockheight: number; - confirmations: number; - time: number; - blocktime: number; - isCoinBase: boolean; - valueOut: number; - size: number; + txid: string + version: number + locktime: number + vin: object[] + vout: object[] + blockhash: string + blockheight: number + confirmations: number + time: number + blocktime: number + isCoinBase: boolean + valueOut: number + size: number } export interface AddressDetailsResult { - balance: number; - balanceSat: number; - totalReceived: number; - totalReceivedSat: number; - totalSent: number; - totalSentSat: number; - unconfirmedBalance: number; - unconfirmedBalanceSat: number; - unconfirmedTxApperances: number; - txApperances: number; - transactions: string[]; - legacyAddress: string; - cashAddress: string; + balance: number + balanceSat: number + totalReceived: number + totalReceivedSat: number + totalSent: number + totalSentSat: number + unconfirmedBalance: number + unconfirmedBalanceSat: number + unconfirmedTxApperances: number + txApperances: number + transactions: string[] + legacyAddress: string + cashAddress: string } export interface AddressUtxoResult { - legacyAddress: string; - cashAddress: string; - scriptPubKey: string; + legacyAddress: string + cashAddress: string + scriptPubKey: string utxos: [ { - txid: string; - vout: number; - amount: number; - satoshis: number; - height: number; - confirmations: number; + txid: string + vout: number + amount: number + satoshis: number + height: number + confirmations: number } - ]; + ] } export interface AddressUnconfirmedResult { - legacyAddress: string; - cashAddress: string; - scriptPubKey: string; + legacyAddress: string + cashAddress: string + scriptPubKey: string utxos: [ { - txid: string; - vout: number; - scriptPubKey: string; - amount: number; - satoshis: number; - confirmations: number; - ts: number; - legacyAddress: string; - cashAddress: string; + txid: string + vout: number + scriptPubKey: string + amount: number + satoshis: number + confirmations: number + ts: number + legacyAddress: string + cashAddress: string } - ]; + ] } export interface AddressValidateResult { - isvalid: boolean; - address: string; - scriptPubKey: string; - ismine: boolean; - iswatchonly: boolean; - isscript: boolean; - pubkey: string; - iscompressed: boolean; - account: string; + isvalid: boolean + address: string + scriptPubKey: string + ismine: boolean + iswatchonly: boolean + isscript: boolean + pubkey: string + iscompressed: boolean + account: string } } diff --git a/package.json b/package.json index fa65e34c..80ba0003 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "8.0.2", + "version": "8.1.0", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ diff --git a/test/unit/Address.ts b/test/unit/Address.ts index 0b2039ab..6d67759c 100644 --- a/test/unit/Address.ts +++ b/test/unit/Address.ts @@ -1,9 +1,12 @@ // imports +import { + AddressDetailsResult, + AddressUnconfirmedResult, + AddressUtxoResult +} from "bitcoin-com-rest" import * as chai from "chai" -import { BITBOX } from "../../lib/BITBOX" import { Address } from "../../lib/Address" -import { resturl } from "../../lib/BITBOX" -import { AddressDetailsResult, AddressUtxoResult, AddressUnconfirmedResult } from "bitcoin-com-rest"; +import { BITBOX, resturl } from "../../lib/BITBOX" // consts const bitbox: BITBOX = new BITBOX() @@ -55,17 +58,21 @@ const CASHADDR_ADDRESSES: string[] = flatten([ fixtures.cashaddrTestnetP2SH ]) -const CASHADDR_ADDRESSES_NO_PREFIX: string[] = CASHADDR_ADDRESSES.map((address: string) => { - const parts: string[] = address.split(":") - return parts[1] -}) +const CASHADDR_ADDRESSES_NO_PREFIX: string[] = CASHADDR_ADDRESSES.map( + (address: string) => { + const parts: string[] = address.split(":") + return parts[1] + } +) const REGTEST_ADDRESSES: string[] = fixtures.cashaddrRegTestP2PKH -const REGTEST_ADDRESSES_NO_PREFIX: string[] = REGTEST_ADDRESSES.map((address: string) => { - const parts: string[] = address.split(":") - return parts[1] -}) +const REGTEST_ADDRESSES_NO_PREFIX: string[] = REGTEST_ADDRESSES.map( + (address: string) => { + const parts: string[] = address.split(":") + return parts[1] + } +) const HASH160_HASHES: string[] = flatten([ fixtures.hash160MainnetP2PKH, @@ -135,16 +142,15 @@ describe("#Address", (): void => { ) }) - describe("errors", (): void => { it("should fail when called with an invalid address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.toLegacyAddress() - }, '') + }, "") assert.throws(() => { bitbox.Address.toLegacyAddress("some invalid address") - }, '') + }, "") }) }) }) @@ -223,10 +229,10 @@ describe("#Address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.toCashAddress() - }, '') + }, "") assert.throws(() => { bitbox.Address.toCashAddress("some invalid address") - }, '') + }, "") }) }) }) @@ -245,10 +251,10 @@ describe("#Address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.legacyToHash160() - }, '') + }, "") assert.throws(() => { bitbox.Address.legacyToHash160("some invalid address") - }, '') + }, "") }) }) }) @@ -267,10 +273,10 @@ describe("#Address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.cashToHash160() - }, '') + }, "") assert.throws(() => { bitbox.Address.cashToHash160("some invalid address") - }, '') + }, "") }) }) }) @@ -380,17 +386,17 @@ describe("#Address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.hash160ToLegacy() - }, '') + }, "") assert.throws(() => { bitbox.Address.hash160ToLegacy("some invalid address") - }, '') + }, "") assert.throws(() => { // @ts-ignore bitbox.Address.hash160ToCash() - }, '') + }, "") assert.throws(() => { bitbox.Address.hash160ToCash("some invalid address") - }, '') + }, "") }) }) }) @@ -427,10 +433,10 @@ describe("#Address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.isLegacyAddress() - }, '') + }, "") assert.throws(() => { bitbox.Address.isLegacyAddress("some invalid address") - }, '') + }, "") }) }) }) @@ -466,10 +472,10 @@ describe("#Address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.isCashAddress() - }, '') + }, "") assert.throws(() => { bitbox.Address.isCashAddress("some invalid address") - }, '') + }, "") }) }) }) @@ -510,10 +516,10 @@ describe("#Address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.isHash160() - }, '') + }, "") assert.throws(() => { bitbox.Address.isHash160("some invalid address") - }, '') + }, "") }) }) }) @@ -551,10 +557,10 @@ describe("#Address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.isMainnetAddress() - }, '') + }, "") assert.throws(() => { bitbox.Address.isMainnetAddress("some invalid address") - }, '') + }, "") }) }) }) @@ -590,10 +596,10 @@ describe("#Address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.isTestnetAddress() - }, '') + }, "") assert.throws(() => { bitbox.Address.isTestnetAddress("some invalid address") - }, '') + }, "") }) }) }) @@ -629,10 +635,10 @@ describe("#Address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.isRegTestAddress() - }, '') + }, "") assert.throws(() => { bitbox.Address.isRegTestAddress("some invalid address") - }, '') + }, "") }) }) }) @@ -663,10 +669,10 @@ describe("#Address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.isP2PKHAddress() - }, '') + }, "") assert.throws(() => { bitbox.Address.isP2PKHAddress("some invalid address") - }, '') + }, "") }) }) }) @@ -695,10 +701,10 @@ describe("#Address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.isP2SHAddress() - }, '') + }, "") assert.throws(() => { bitbox.Address.isP2SHAddress("some invalid address") - }, '') + }, "") }) }) }) @@ -764,13 +770,17 @@ describe("#Address", (): void => { CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => bitbox.Address.toLegacyAddress(address) ), - CASHADDR_ADDRESSES.map((address: string) => bitbox.Address.toLegacyAddress(address)) + CASHADDR_ADDRESSES.map((address: string) => + bitbox.Address.toLegacyAddress(address) + ) ) assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => bitbox.Address.toLegacyAddress(address) ), - REGTEST_ADDRESSES.map((address: string) => bitbox.Address.toLegacyAddress(address)) + REGTEST_ADDRESSES.map((address: string) => + bitbox.Address.toLegacyAddress(address) + ) ) }) it("should return the same result for isLegacyAddress", (): void => { @@ -778,13 +788,17 @@ describe("#Address", (): void => { CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => bitbox.Address.isLegacyAddress(address) ), - CASHADDR_ADDRESSES.map((address: string) => bitbox.Address.isLegacyAddress(address)) + CASHADDR_ADDRESSES.map((address: string) => + bitbox.Address.isLegacyAddress(address) + ) ) assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => bitbox.Address.isLegacyAddress(address) ), - REGTEST_ADDRESSES.map((address: string) => bitbox.Address.isLegacyAddress(address)) + REGTEST_ADDRESSES.map((address: string) => + bitbox.Address.isLegacyAddress(address) + ) ) }) it("should return the same result for isCashAddress", (): void => { @@ -792,13 +806,17 @@ describe("#Address", (): void => { CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => bitbox.Address.isCashAddress(address) ), - CASHADDR_ADDRESSES.map((address: string) => bitbox.Address.isCashAddress(address)) + CASHADDR_ADDRESSES.map((address: string) => + bitbox.Address.isCashAddress(address) + ) ) assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => bitbox.Address.isCashAddress(address) ), - REGTEST_ADDRESSES.map((address: string) => bitbox.Address.isCashAddress(address)) + REGTEST_ADDRESSES.map((address: string) => + bitbox.Address.isCashAddress(address) + ) ) }) it("should return the same result for isMainnetAddress", (): void => { @@ -814,7 +832,9 @@ describe("#Address", (): void => { REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => bitbox.Address.isMainnetAddress(address) ), - REGTEST_ADDRESSES.map((address: string) => bitbox.Address.isMainnetAddress(address)) + REGTEST_ADDRESSES.map((address: string) => + bitbox.Address.isMainnetAddress(address) + ) ) }) it("should return the same result for isTestnetAddress", (): void => { @@ -830,7 +850,9 @@ describe("#Address", (): void => { REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => bitbox.Address.isTestnetAddress(address) ), - REGTEST_ADDRESSES.map((address: string) => bitbox.Address.isTestnetAddress(address)) + REGTEST_ADDRESSES.map((address: string) => + bitbox.Address.isTestnetAddress(address) + ) ) }) it("should return the same result for isP2PKHAddress", (): void => { @@ -838,13 +860,17 @@ describe("#Address", (): void => { CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => bitbox.Address.isP2PKHAddress(address) ), - CASHADDR_ADDRESSES.map((address: string) => bitbox.Address.isP2PKHAddress(address)) + CASHADDR_ADDRESSES.map((address: string) => + bitbox.Address.isP2PKHAddress(address) + ) ) assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => bitbox.Address.isP2PKHAddress(address) ), - REGTEST_ADDRESSES.map((address: string) => bitbox.Address.isP2PKHAddress(address)) + REGTEST_ADDRESSES.map((address: string) => + bitbox.Address.isP2PKHAddress(address) + ) ) }) it("should return the same result for isP2SHAddress", (): void => { @@ -852,13 +878,17 @@ describe("#Address", (): void => { CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => bitbox.Address.isP2SHAddress(address) ), - CASHADDR_ADDRESSES.map((address: string) => bitbox.Address.isP2SHAddress(address)) + CASHADDR_ADDRESSES.map((address: string) => + bitbox.Address.isP2SHAddress(address) + ) ) assert.deepEqual( REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => bitbox.Address.isP2SHAddress(address) ), - REGTEST_ADDRESSES.map((address: string) => bitbox.Address.isP2SHAddress(address)) + REGTEST_ADDRESSES.map((address: string) => + bitbox.Address.isP2SHAddress(address) + ) ) }) }) @@ -890,10 +920,10 @@ describe("#Address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.detectAddressFormat() - }, '') + }, "") assert.throws(() => { bitbox.Address.detectAddressFormat("some invalid address") - }, '') + }, "") }) }) }) @@ -925,10 +955,10 @@ describe("#Address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.detectAddressNetwork() - }, '') + }, "") assert.throws(() => { bitbox.Address.detectAddressNetwork("some invalid address") - }, '') + }, "") }) }) }) @@ -953,48 +983,64 @@ describe("#Address", (): void => { assert.throws(() => { // @ts-ignore bitbox.Address.detectAddressType() - }, '') + }, "") assert.throws(() => { bitbox.Address.detectAddressType("some invalid address") - }, '') + }, "") }) }) }) describe("#fromXPub", (): void => { - XPUBS.forEach((xpub: any) => { - xpub.addresses.forEach((address: any, j: number) => { - it(`should generate public external change address ${j} for ${ - xpub.xpub - }`, (): void => { - assert.equal(bitbox.Address.fromXPub(xpub.xpub, `0/${j}`), address) - }) - }) + XPUBS.forEach( + (xpub: any): void => { + xpub.addresses.forEach( + (address: any, j: number): void => { + it(`should generate public external change address ${j} for ${ + xpub.xpub + }`, (): void => { + assert.equal( + bitbox.Address.fromXPub(xpub.xpub, `0/${j}`), + address + ) + }) + } + ) + } + ) + + it(`should generate public external change address ${ + XPUBS[0].addresses[0] + } for ${XPUBS[0].xpub}`, (): void => { + let address: string = XPUBS[0].addresses[0] + assert.equal(bitbox.Address.fromXPub(XPUBS[0].xpub), address) }) - - it(`should generate public external change address ${XPUBS[0].addresses[0]} for ${ - XPUBS[0].xpub - }`, (): void => { - let address: string = XPUBS[0].addresses[0] - assert.equal(bitbox.Address.fromXPub(XPUBS[0].xpub), address) - }) }) describe("#fromXPriv", (): void => { - XPRIVS.forEach((xpriv: any) => { - xpriv.addresses.forEach((address: string, j: number) => { - it(`should generate hardened address ${j} for ${xpriv.xpriv}`, (): void => { - assert.equal(bitbox.Address.fromXPriv(xpriv.xpriv, `0'/${j}`), address) - }) - }) - }) + XPRIVS.forEach( + (xpriv: any): void => { + xpriv.addresses.forEach( + (address: string, j: number): void => { + it(`should generate hardened address ${j} for ${ + xpriv.xpriv + }`, (): void => { + assert.equal( + bitbox.Address.fromXPriv(xpriv.xpriv, `0'/${j}`), + address + ) + }) + } + ) + } + ) it(`should generate hardened address ${XPRIVS[0].addresses[0]} for ${ XPRIVS[0].xpriv - }`, (): void => { - let address: string = XPRIVS[0].addresses[0] - assert.equal(bitbox.Address.fromXPriv(XPRIVS[0].xpriv), address) - }) + }`, (): void => { + let address: string = XPRIVS[0].addresses[0] + assert.equal(bitbox.Address.fromXPriv(XPRIVS[0].xpriv), address) + }) }) describe("#fromOutputScript", (): void => { @@ -1010,19 +1056,28 @@ describe("#Address", (): void => { // encode hash160 as P2SH output const scriptPubKey: Buffer = bitbox.Script.encodeP2SHOutput(p2sh_hash160) - fixtures.p2shMainnet.forEach((address: string) => { - const p2shAddress: string = bitbox.Address.fromOutputScript(scriptPubKey) - it(`generate mainnet address from output script`, (): void => { - assert.equal(p2shAddress, address) - }) - }) - - fixtures.p2shTestnet.forEach((address: string) => { - const p2shAddress: any = bitbox.Address.fromOutputScript(scriptPubKey, "testnet") - it(`generate testnet address from output script`, (): void => { - assert.equal(p2shAddress, address) - }) - }) + fixtures.p2shMainnet.forEach( + (address: string): void => { + const p2shAddress: string = bitbox.Address.fromOutputScript( + scriptPubKey + ) + it(`generate mainnet address from output script`, (): void => { + assert.equal(p2shAddress, address) + }) + } + ) + + fixtures.p2shTestnet.forEach( + (address: string): void => { + const p2shAddress: any = bitbox.Address.fromOutputScript( + scriptPubKey, + "testnet" + ) + it(`generate testnet address from output script`, (): void => { + assert.equal(p2shAddress, address) + }) + } + ) }) // describe("#details", () => { @@ -1142,10 +1197,15 @@ describe("#Address", (): void => { describe(`#utxo`, (): void => { describe(`#details`, (): void => { - it(`should GET address details for a single address`, async (): Promise => { - const addr: string = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + it(`should GET address details for a single address`, async (): Promise< + any + > => { + const addr: string = + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - const result: AddressDetailsResult | AddressDetailsResult[] = await bitbox.Address.details(addr) + const result: + | AddressDetailsResult + | AddressDetailsResult[] = await bitbox.Address.details(addr) assert.hasAllKeys(result, [ "balance", @@ -1161,6 +1221,7 @@ describe("#Address", (): void => { "transactions", "legacyAddress", "cashAddress", + "slpAddress", "currentPage", "pagesTotal" ]) @@ -1169,13 +1230,17 @@ describe("#Address", (): void => { } }) - it(`should GET address details for an array of addresses`, async () => { + it(`should GET address details for an array of addresses`, async (): Promise< + any + > => { const addr: string[] = [ "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" ] - const result: AddressDetailsResult | AddressDetailsResult[] = await bitbox.Address.details(addr) + const result: + | AddressDetailsResult + | AddressDetailsResult[] = await bitbox.Address.details(addr) assert.isArray(result) if (Array.isArray(result)) { @@ -1193,6 +1258,7 @@ describe("#Address", (): void => { "transactions", "legacyAddress", "cashAddress", + "slpAddress", "currentPage", "pagesTotal" ]) @@ -1231,14 +1297,18 @@ describe("#Address", (): void => { } }) it(`should GET utxos for a single address`, async () => { - const addr: string = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + const addr: string = + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - const result: AddressUtxoResult | AddressUtxoResult[] = await bitbox.Address.utxo(addr) + const result: + | AddressUtxoResult + | AddressUtxoResult[] = await bitbox.Address.utxo(addr) assert.hasAllKeys(result, [ "utxos", "legacyAddress", "cashAddress", + "slpAddress", "scriptPubKey" ]) if (!Array.isArray(result)) { @@ -1260,7 +1330,9 @@ describe("#Address", (): void => { "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" ] - const result: AddressUtxoResult | AddressUtxoResult[] = await bitbox.Address.utxo(addr) + const result: + | AddressUtxoResult + | AddressUtxoResult[] = await bitbox.Address.utxo(addr) assert.isArray(result) if (Array.isArray(result)) { @@ -1268,6 +1340,7 @@ describe("#Address", (): void => { "utxos", "legacyAddress", "cashAddress", + "slpAddress", "scriptPubKey" ]) assert.isArray(result[0].utxos) @@ -1297,13 +1370,17 @@ describe("#Address", (): void => { } }) - it(`should throw error on array size rate limit`, async (): Promise => { + it(`should throw error on array size rate limit`, async (): Promise< + any + > => { try { const addr: string[] = [] for (let i: number = 0; i < 25; i++) addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - const result: AddressUtxoResult | AddressUtxoResult[] = await bitbox.Address.utxo(addr) + const result: + | AddressUtxoResult + | AddressUtxoResult[] = await bitbox.Address.utxo(addr) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") @@ -1315,28 +1392,49 @@ describe("#Address", (): void => { }) describe(`#unconfirmed`, (): void => { - it(`should GET unconfirmed details on a single address`, async (): Promise => { - const addr: string = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" + it(`should GET unconfirmed details on a single address`, async (): Promise< + any + > => { + const addr: string = + "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" - const result: AddressUnconfirmedResult | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed(addr) + const result: + | AddressUnconfirmedResult + | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed(addr) - assert.hasAllKeys(result, ["utxos", "legacyAddress", "cashAddress"]) + assert.hasAllKeys(result, [ + "utxos", + "legacyAddress", + "cashAddress", + "slpAddress", + "scriptPubKey" + ]) if (!Array.isArray(result)) { assert.isArray(result.utxos) } }) - it(`should GET unconfirmed details on multiple addresses`, async (): Promise => { + it(`should GET unconfirmed details on multiple addresses`, async (): Promise< + any + > => { const addr = [ "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" ] - const result: AddressUnconfirmedResult | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed(addr) + const result: + | AddressUnconfirmedResult + | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed(addr) assert.isArray(result) if (Array.isArray(result)) { - assert.hasAllKeys(result[0], ["utxos", "legacyAddress", "cashAddress"]) + assert.hasAllKeys(result[0], [ + "utxos", + "legacyAddress", + "cashAddress", + "slpAddress", + "scriptPubKey" + ]) assert.isArray(result[0].utxos) } }) @@ -1356,13 +1454,19 @@ describe("#Address", (): void => { } }) - it(`should throw error on array size rate limit`, async (): Promise => { + it(`should throw error on array size rate limit`, async (): Promise< + any + > => { try { const addr: string[] = [] for (let i: number = 0; i < 25; i++) addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - const result: AddressUnconfirmedResult | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed(addr) + const result: + | AddressUnconfirmedResult + | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed( + addr + ) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") @@ -1374,8 +1478,11 @@ describe("#Address", (): void => { }) describe(`#transactions`, (): void => { - it(`should GET transactions for a single address`, async (): Promise => { - const addr: string = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" + it(`should GET transactions for a single address`, async (): Promise< + any + > => { + const addr: string = + "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" const result: any = await bitbox.Address.transactions(addr) assert.hasAllKeys(result, [ @@ -1402,7 +1509,9 @@ describe("#Address", (): void => { ]) }) - it(`should get transactions on multiple addresses`, async (): Promise => { + it(`should get transactions on multiple addresses`, async (): Promise< + any + > => { const addr: string[] = [ "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" @@ -1449,7 +1558,9 @@ describe("#Address", (): void => { } }) - it(`should throw error on array size rate limit`, async (): Promise => { + it(`should throw error on array size rate limit`, async (): Promise< + any + > => { try { const addr: string[] = [] for (let i: number = 0; i < 25; i++) From 02eae7161b05c987dc28d2f84c6f1c6cb0465536 Mon Sep 17 00:00:00 2001 From: Luigi Pinca Date: Thu, 23 May 2019 22:09:25 +0200 Subject: [PATCH 388/480] Expose the Socket constructor not an instance --- lib/BITBOX.ts | 2 +- test/unit/BITBOX.ts | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/BITBOX.ts b/lib/BITBOX.ts index 8625faca..4def4dfd 100644 --- a/lib/BITBOX.ts +++ b/lib/BITBOX.ts @@ -70,7 +70,7 @@ export class BITBOX { this.Transaction = new Transaction(this.restURL) this.TransactionBuilder = TransactionBuilder this.Util = new Util(this.restURL) - this.Socket = new Socket() + this.Socket = Socket this.Schnorr = new Schnorr() // this.Wallet = Wallet } diff --git a/test/unit/BITBOX.ts b/test/unit/BITBOX.ts index 756ae189..48ebbbb0 100644 --- a/test/unit/BITBOX.ts +++ b/test/unit/BITBOX.ts @@ -18,6 +18,8 @@ import { TransactionBuilder } from "../../lib/TransactionBuilder" import { Util } from "../../lib/Util" import { Schnorr } from "../../lib/Schnorr" import { resturl } from "../../lib/BITBOX" +import { Socket } from "../../lib/Socket" + describe("#BITBOX", (): void => { describe("#BITBOXConstructor", (): void => { @@ -110,5 +112,10 @@ describe("#BITBOX", (): void => { const bitbox: BITBOX = new BITBOX({ restURL: resturl }) assert.equal(bitbox.Schnorr instanceof Schnorr, true) }) + + it("should have a Socket property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + assert.strictEqual(bitbox.Socket, Socket) + }) }) }) From 7012933cc1d9a0e1160f26a4db23b35510231290 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 24 May 2019 09:58:02 +0900 Subject: [PATCH 389/480] Bump PATCH version. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 80ba0003..4e0b90af 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "8.1.0", + "version": "8.1.1", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ From c52c0759fa1b2bbb9969ae2310d860a5a1e11691 Mon Sep 17 00:00:00 2001 From: Rosco Kalis Date: Fri, 24 May 2019 11:23:40 +0900 Subject: [PATCH 390/480] BITBOX.ECPair gets BITBOX.Address passed as its Address instance --- lib/BITBOX.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/BITBOX.ts b/lib/BITBOX.ts index 4def4dfd..52498ca3 100644 --- a/lib/BITBOX.ts +++ b/lib/BITBOX.ts @@ -59,7 +59,7 @@ export class BITBOX { this.Blockchain = new Blockchain(this.restURL) this.Control = new Control(this.restURL) this.Crypto = new Crypto() - this.ECPair = new ECPair() + this.ECPair = new ECPair(this.Address) this.Generating = new Generating(this.restURL) this.HDNode = new HDNode(this.Address) this.Mining = new Mining(this.restURL) From 9f323660e35edff123e5dbbd15bbba8349beeffb Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 24 May 2019 18:15:17 +0900 Subject: [PATCH 391/480] Properly set Address network in transaction builder. --- lib/BITBOX.ts | 1 + lib/TransactionBuilder.ts | 9 +++++++-- package.json | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/BITBOX.ts b/lib/BITBOX.ts index 52498ca3..3c8660a9 100644 --- a/lib/BITBOX.ts +++ b/lib/BITBOX.ts @@ -25,6 +25,7 @@ import { Util } from "./Util" // consts export const resturl = "https://rest.bitcoin.com/v2/" +export const tresturl = "https://trest.bitcoin.com/v2/" export class BITBOX { public restURL: string diff --git a/lib/TransactionBuilder.ts b/lib/TransactionBuilder.ts index dbdb77d5..b812689d 100644 --- a/lib/TransactionBuilder.ts +++ b/lib/TransactionBuilder.ts @@ -2,6 +2,7 @@ import { ECPair } from "bitcoincashjs-lib" import { BchInfo } from ".." import { Address } from "./Address" +import { tresturl } from "./BITBOX" // consts const Bitcoin = require("bitcoincashjs-lib") @@ -35,9 +36,13 @@ export class TransactionBuilder { tx: any private _address: Address - constructor(network: string = "mainnet", address: Address = new Address()) { + constructor(network: string = "mainnet") { let bitcoincash: BchInfo - this._address = address + if (network === "mainnet") { + this._address = new Address() + } else { + this._address = new Address(tresturl) + } if (network === "bitcoincash" || network === "mainnet") bitcoincash = coininfo.bitcoincash.main else bitcoincash = coininfo.bitcoincash.test diff --git a/package.json b/package.json index 4e0b90af..3c33930a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "8.1.1", + "version": "8.2.0", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ From 9127360322e800c562c09a50412ae252023e4b64 Mon Sep 17 00:00:00 2001 From: Rosco Kalis Date: Mon, 27 May 2019 18:30:20 +0900 Subject: [PATCH 392/480] Add optional signatureAlgorithm parameter to ECPair.sign() interface method --- lib/interfaces/vendors.d.ts | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/interfaces/vendors.d.ts b/lib/interfaces/vendors.d.ts index ccd8c456..a87266ea 100644 --- a/lib/interfaces/vendors.d.ts +++ b/lib/interfaces/vendors.d.ts @@ -17,7 +17,7 @@ declare module "bitcoincashjs-lib" { export interface ECPair { toWIF(): string - sign(buffer: Buffer): Boolean | ECSignature + sign(buffer: Buffer, signatureAlgorithm?: number): Boolean | ECSignature verify(buffer: Buffer, signature: ECSignature): boolean getPublicKeyBuffer(): Buffer getAddress(): string diff --git a/package.json b/package.json index 3c33930a..0b05c345 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "8.2.0", + "version": "8.2.1", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ From 00ce5fc0af0eea63b1dbc4652b11c2e8375070c2 Mon Sep 17 00:00:00 2001 From: Rosco Kalis Date: Tue, 28 May 2019 09:39:49 +0900 Subject: [PATCH 393/480] Add optional signatureAlgorithm parameter to bitbox.ECPair.sign() method --- lib/ECPair.ts | 4 ++-- package.json | 2 +- test/unit/ECPair.ts | 6 ++++-- test/unit/fixtures/ECPair.json | 20 +++++++++++++++----- 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/lib/ECPair.ts b/lib/ECPair.ts index 773980b3..bf0ba3cd 100644 --- a/lib/ECPair.ts +++ b/lib/ECPair.ts @@ -29,8 +29,8 @@ export class ECPair { return ecpair.toWIF() } - public sign(ecpair: bcl.ECPair, buffer: Buffer): bcl.ECSignature { - return ecpair.sign(buffer) + public sign(ecpair: bcl.ECPair, buffer: Buffer, signatureAlgorithm?: number): bcl.ECSignature { + return ecpair.sign(buffer, signatureAlgorithm) } public verify( diff --git a/package.json b/package.json index 0b05c345..da812ee0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "8.2.1", + "version": "8.2.2", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ diff --git a/test/unit/ECPair.ts b/test/unit/ECPair.ts index 730060dd..2f6456f3 100644 --- a/test/unit/ECPair.ts +++ b/test/unit/ECPair.ts @@ -142,8 +142,10 @@ describe("#ECPair", (): void => { it(`should sign 32 byte hash buffer`, (): void => { const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) const buf: Buffer = Buffer.from(bitbox.Crypto.sha256(fixture.data)) - const signatureBuf: Buffer = bitbox.ECPair.sign(ecpair, buf) - assert.equal(typeof signatureBuf, "object") + const sig: any = bitbox.ECPair.sign(ecpair, buf).toDER().toString('hex') + const schnorrSig: any = bitbox.ECPair.sign(ecpair, buf, 0x01).toDER().toString('hex') + assert.equal(sig, fixture.sig) + assert.equal(schnorrSig, fixture.schnorrSig) }) }) }) diff --git a/test/unit/fixtures/ECPair.json b/test/unit/fixtures/ECPair.json index ec74811b..e80e732b 100644 --- a/test/unit/fixtures/ECPair.json +++ b/test/unit/fixtures/ECPair.json @@ -149,23 +149,33 @@ "sign": [ { "privateKeyWIF": "L5PKiCuwwgmVN1GQNg8CdR6Rmg7tg1Npw7GyL5ULRPZ5EVPhtSrz", - "data": "EARTH" + "data": "EARTH", + "sig": "30440220446688759b77ffe7edbc5474e9c5ef4e5ff30a0e94ff00683805251a87ac5354022010f9ad79febed064f8ee08ba8828823791cc78f6015042bb32acb5e698b54e58", + "schnorrSig": "3046022100e2b185c3365cae52f994edb3b95545f7b4d755426ca19045646ae1d0d8d1e732022100c1aedcfd101ad87f8e356b252b3e145e52a17997c20a0bbcdb197be7520daeff" }, { "privateKeyWIF": "L1SD3NYLMcoqpUzn2hwJ7c1Vb4pPiqMToSMyGMTcbcvRBDh9U9SP", - "data": "foobar" + "data": "foobar", + "sig": "304402200ef2cc2855b22d66a11b3b5a79d9c0cf343758643083f34c5d93c714552775ec022079fa60786fd721ab0de032341f6affe1c40706a4baf4f15d4fd5355dd6c348a5", + "schnorrSig": "3046022100b09f82b9654831f8c00664bd1da1579543b38e822b42064f9dfa7738dd13ead8022100b4caa9ad5391544025b15d7b3a3008c73d0c0bf6b672d7163fdfb14748b85db0" }, { "privateKeyWIF": "L57L3Xtu3j1Z2B2RuQzc59JLQXJQ86TH8To1hM348URbC2iCZqLe", - "data": "12334567890" + "data": "12334567890", + "sig": "3045022100aacab383dde3afb59eb5b0b983037b1b3a85c542ec111f6d3c45b86606eb747202200454ec2396aec5b3ed88aa562c469f8716b043f7be38c0b6a50ef8d0ae9a558c", + "schnorrSig": "3046022100b01d6208e16a7da7f1b29e48991068b9ac7788ce1e07ebea037a179f2fbf3945022100bf92e9b00e68314347e6ce6f04a93caab9edfd41bbb4348ea8fd8870b028996b" }, { "privateKeyWIF": "KzTm29RBrSgUbMyeJL9sCNUnc7LQEuDeT6Upq1iUwx78qWRdRzyW", - "data": "Be excellent to each other" + "data": "Be excellent to each other", + "sig": "3045022100ead14e40a8ea1ce6eac0e2a0e9f582fb40b4ba4d90066f50d5058307cdf6e8c7022071dc89d5b34dab7078fef8c52beb4ed1d1a14a68c5525441f5a64304f81706b7", + "schnorrSig": "3046022100bda5c456700edbe8d6d9876267d94b119f7f877329e3b3f8fea71506a4334c42022100ad292f22aa4aa209b20f5c758dea325d4b920ef94919a0fd5c2fa77df3eec8c9" }, { "privateKeyWIF": "L4BwXDmjzEyzKHbAfGruhieUDPs8KTx7DMgqPk4aF9GefzgqPENV", - "data": "satoshi" + "data": "satoshi", + "sig": "30450221008abcfc3dcb6418455d1a9a891d07f010d7884f8051b5be8992e2074035918051022069f4013f97febc79fc63cf125d7b2a1f37453c781bc09cf7410ff934e3502108", + "schnorrSig": "304602210085d4bfceb26cad676e7dcdb09cb7ef8e0132baba105fc276ff13b79ab54c103a0221009f2648abf52c04bbaf42c17c58df85e0025961c7542de20907f7526404e41806" } ], "verify": [ From 63ec1c0f51c1481a0459c7bd11052b5845dd0b88 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 28 May 2019 14:49:30 -0700 Subject: [PATCH 394/480] Added integration tests back in --- package.json | 2 +- test/integration/address.js | 340 ++++++++++++++++++++++++++++- test/integration/block.js | 190 +++++++++++++++- test/integration/blockchain.js | 284 +++++++++++++++++++++++- test/integration/rawtransaction.js | 314 +++++++++++++++++++++++++- test/integration/transaction.js | 80 ++++++- test/integration/util.js | 98 ++++++++- 7 files changed, 1284 insertions(+), 24 deletions(-) diff --git a/package.json b/package.json index 0b05c345..d4ce2a2c 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ ], "scripts": { "test": "tsc && nyc mocha test/unit --timeout 60000 --exit", - "test:integration": "TEST=integration nyc --reporter=text mocha --require babel-core/register --timeout 30000 test/integration", + "test:integration": "TEST=integration nyc --reporter=text mocha --timeout 30000 test/integration", "coverage": "nyc report --reporter=text-lcov | coveralls", "build": "tsc" }, diff --git a/test/integration/address.js b/test/integration/address.js index 02b5a103..d6662e19 100644 --- a/test/integration/address.js +++ b/test/integration/address.js @@ -1,5 +1,5 @@ /* - Integration tests for the bitbox.Address library. Only covers calls made to + Integration tests for the BITBOX.Address library. Only covers calls made to rest.bitcoin.com. TODO: @@ -9,8 +9,342 @@ const chai = require("chai") const assert = chai.assert -const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() +const BITBOXSDK = require("../../lib/BITBOX").BITBOX +const BITBOX = new BITBOXSDK() //const axios = require("axios") // Inspect utility used for debugging. +const util = require("util") +util.inspect.defaultOptions = { + showHidden: true, + colors: true, + depth: 3 +} + +describe(`#address`, () => { + describe(`#details`, () => { + it(`should GET address details for a single address`, async () => { + const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + + const result = await BITBOX.Address.details(addr) + //console.log(`result: ${util.inspect(result)}`) + + assert.hasAllKeys(result, [ + "balance", + "balanceSat", + "totalReceived", + "totalReceivedSat", + "totalSent", + "totalSentSat", + "unconfirmedBalance", + "unconfirmedBalanceSat", + "unconfirmedTxApperances", + "txApperances", + "transactions", + "legacyAddress", + "cashAddress", + "currentPage", + "pagesTotal" + ]) + assert.isArray(result.transactions) + }) + + it(`should GET address details for an array of addresses`, async () => { + const addr = [ + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" + ] + + const result = await BITBOX.Address.details(addr) + //console.log(`result: ${util.inspect(result)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "balance", + "balanceSat", + "totalReceived", + "totalReceivedSat", + "totalSent", + "totalSentSat", + "unconfirmedBalance", + "unconfirmedBalanceSat", + "unconfirmedTxApperances", + "txApperances", + "transactions", + "legacyAddress", + "cashAddress", + "currentPage", + "pagesTotal" + ]) + assert.isArray(result[0].transactions) + }) + + it(`should throw an error for improper input`, async () => { + try { + const addr = 12345 + + await BITBOX.Address.details(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } + }) + + it(`should throw error on array size rate limit`, async () => { + try { + const addr = [] + for (let i = 0; i < 25; i++) + addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") + + const result = await BITBOX.Address.details(addr) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) + + describe(`#utxo`, () => { + it(`should GET utxos for a single address`, async () => { + const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + + const result = await BITBOX.Address.utxo(addr) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAllKeys(result, [ + "utxos", + "legacyAddress", + "cashAddress", + "scriptPubKey" + ]) + assert.isArray(result.utxos) + assert.hasAnyKeys(result.utxos[0], [ + "txid", + "vout", + "amount", + "satoshis", + "height", + "confirmations" + ]) + }) + + it(`should GET utxo details for an array of addresses`, async () => { + const addr = [ + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" + ] + + const result = await BITBOX.Address.utxo(addr) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "utxos", + "legacyAddress", + "cashAddress", + "scriptPubKey" + ]) + assert.isArray(result[0].utxos) + assert.hasAnyKeys(result[0].utxos[0], [ + "txid", + "vout", + "amount", + "satoshis", + "height", + "confirmations" + ]) + }) + + it(`should throw an error for improper input`, async () => { + try { + const addr = 12345 + + await BITBOX.Address.utxo(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } + }) + + it(`should throw error on array size rate limit`, async () => { + try { + const addr = [] + for (let i = 0; i < 25; i++) + addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") + + const result = await BITBOX.Address.utxo(addr) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) + + describe(`#unconfirmed`, () => { + it(`should GET unconfirmed details on a single address`, async () => { + const addr = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" + + const result = await BITBOX.Address.unconfirmed(addr) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAllKeys(result, ["utxos", "legacyAddress", "cashAddress"]) + assert.isArray(result.utxos) + }) + + it(`should GET unconfirmed details on multiple addresses`, async () => { + const addr = [ + "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", + "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" + ] + + const result = await BITBOX.Address.unconfirmed(addr) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], ["utxos", "legacyAddress", "cashAddress"]) + assert.isArray(result[0].utxos) + }) + + it(`should throw an error for improper input`, async () => { + try { + const addr = 12345 + + await BITBOX.Address.unconfirmed(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } + }) + + it(`should throw error on array size rate limit`, async () => { + try { + const addr = [] + for (let i = 0; i < 25; i++) + addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") + + const result = await BITBOX.Address.unconfirmed(addr) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) + + describe(`#transactions`, () => { + it(`should GET transactions for a single address`, async () => { + const addr = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" + + const result = await BITBOX.Address.transactions(addr) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAllKeys(result, [ + "txs", + "pagesTotal", + "cashAddress", + "currentPage", + "legacyAddress" + ]) + assert.isArray(result.txs) + assert.hasAnyKeys(result.txs[0], [ + "txid", + "version", + "locktime", + "vin", + "vout", + "confirmations", + "time", + "blocktime", + "valueOut", + "size", + "valueIn", + "fees" + ]) + }) + + it(`should get transactions on multiple addresses`, async () => { + const addr = [ + "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", + "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" + ] + + const result = await BITBOX.Address.transactions(addr) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "txs", + "pagesTotal", + "cashAddress", + "currentPage", + "legacyAddress" + ]) + assert.isArray(result[0].txs) + assert.hasAnyKeys(result[0].txs[0], [ + "txid", + "version", + "locktime", + "vin", + "vout", + "confirmations", + "time", + "blocktime", + "valueOut", + "size", + "valueIn", + "fees" + ]) + }) + + it(`should throw an error for improper input`, async () => { + try { + const addr = 12345 + + await BITBOX.Address.transactions(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } + }) + + it(`should throw error on array size rate limit`, async () => { + try { + const addr = [] + for (let i = 0; i < 25; i++) + addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") + + const result = await BITBOX.Address.transactions(addr) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) +}) diff --git a/test/integration/block.js b/test/integration/block.js index 5938cfc2..d8603a68 100644 --- a/test/integration/block.js +++ b/test/integration/block.js @@ -1,12 +1,12 @@ /* - Integration tests for the bitbox. Only covers calls made to + Integration tests for the BITBOX. Only covers calls made to rest.bitcoin.com. */ const chai = require("chai") const assert = chai.assert -const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() +const BITBOXSDK = require("../../lib/BITBOX").BITBOX +const BITBOX = new BITBOXSDK() // Inspect utility used for debugging. const util = require("util") @@ -16,4 +16,186 @@ util.inspect.defaultOptions = { depth: 3 } -describe(`#block`, () => {}) +describe(`#block`, () => { + describe(`#detailsByHeight`, () => { + it(`should GET block details for a given Height`, async () => { + const block = 500000 + + const result = await BITBOX.Block.detailsByHeight(block) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAllKeys(result, [ + "hash", + "size", + "height", + "version", + "merkleroot", + "tx", + "time", + "nonce", + "bits", + "difficulty", + "chainwork", + "confirmations", + "previousblockhash", + "nextblockhash", + "reward", + "isMainChain", + "poolInfo" + ]) + }) + + it(`should GET block details for an array of blocks`, async () => { + const blocks = [500000, 500001] + + const result = await BITBOX.Block.detailsByHeight(blocks) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "hash", + "size", + "height", + "version", + "merkleroot", + "tx", + "time", + "nonce", + "bits", + "difficulty", + "chainwork", + "confirmations", + "previousblockhash", + "nextblockhash", + "reward", + "isMainChain", + "poolInfo" + ]) + }) + + it(`should throw an error for improper single input`, async () => { + try { + const blocks = "asdf" + + await BITBOX.Block.detailsByHeight(blocks) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input must be a number or array of numbers.` + ) + } + }) + + it(`should throw error on array size rate limit`, async () => { + try { + const blocks = [] + for (let i = 0; i < 25; i++) blocks.push(500000) + + const result = await BITBOX.Block.detailsByHeight(blocks) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) + + describe("#detailsByHash", () => { + it(`should GET block details for a given hash`, async () => { + const hash = + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + + const result = await BITBOX.Block.detailsByHash(hash) + //console.log(`result: ${util.inspect(result)}`) + + assert.hasAllKeys(result, [ + "hash", + "size", + "height", + "version", + "merkleroot", + "tx", + "time", + "nonce", + "bits", + "difficulty", + "chainwork", + "confirmations", + "previousblockhash", + "nextblockhash", + "reward", + "isMainChain", + "poolInfo" + ]) + }) + + it(`should GET block details for an array of hashes`, async () => { + const hash = [ + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + ] + + const result = await BITBOX.Block.detailsByHash(hash) + //console.log(`result: ${util.inspect(result)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "hash", + "size", + "height", + "version", + "merkleroot", + "tx", + "time", + "nonce", + "bits", + "difficulty", + "chainwork", + "confirmations", + "previousblockhash", + "nextblockhash", + "reward", + "isMainChain", + "poolInfo" + ]) + }) + + it(`should throw an error for improper single input`, async () => { + try { + const hash = 12345 + + await BITBOX.Block.detailsByHash(hash) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input must be a string or array of strings` + ) + } + }) + + it(`should throw error on array size rate limit`, async () => { + try { + const data = [] + for (let i = 0; i < 25; i++) { + data.push( + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + ) + } + + const result = await BITBOX.Block.detailsByHash(data) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) +}) diff --git a/test/integration/blockchain.js b/test/integration/blockchain.js index 18c8cccc..b3b2c0c4 100644 --- a/test/integration/blockchain.js +++ b/test/integration/blockchain.js @@ -1,5 +1,5 @@ /* - Integration tests for the bitbox. Only covers calls made to + Integration tests for the BITBOX. Only covers calls made to rest.bitcoin.com. TODO @@ -9,8 +9,8 @@ const chai = require("chai") const assert = chai.assert -const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() +const BITBOXSDK = require("../../lib/BITBOX").BITBOX +const BITBOX = new BITBOXSDK() // Inspect utility used for debugging. const util = require("util") @@ -20,4 +20,280 @@ util.inspect.defaultOptions = { depth: 3 } -describe(`#blockchain`, () => {}) +describe(`#blockchain`, () => { + describe(`#getBestBlockHash`, () => { + it(`should GET best block hash`, async () => { + const result = await BITBOX.Blockchain.getBestBlockHash() + //console.log(`result: ${util.inspect(result)}`) + + assert.isString(result) + assert.equal(result.length, 64, "Specific hash length") + }) + }) + + describe("#getBlockHeader", () => { + it(`should GET block header for a single hash`, async () => { + const hash = + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + + const result = await BITBOX.Blockchain.getBlockHeader(hash) + + assert.hasAllKeys(result, [ + "hash", + "confirmations", + "height", + "version", + "versionHex", + "merkleroot", + "time", + "mediantime", + "nonce", + "bits", + "difficulty", + "chainwork", + "previousblockhash", + "nextblockhash" + ]) + }) + + it(`should GET block headers for an array of hashes`, async () => { + const hash = [ + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", + "00000000000000000568f0a96bf4348847bc84e455cbfec389f27311037a20f3" + ] + + const result = await BITBOX.Blockchain.getBlockHeader(hash) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "hash", + "confirmations", + "height", + "version", + "versionHex", + "merkleroot", + "time", + "mediantime", + "nonce", + "bits", + "difficulty", + "chainwork", + "previousblockhash", + "nextblockhash" + ]) + }) + + it(`should throw an error for improper input`, async () => { + try { + const hash = 12345 + + await BITBOX.Blockchain.getBlockHeader(hash) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.include( + err.message, + `Input hash must be a string or array of strings` + ) + } + }) + + it(`should throw error on array size rate limit`, async () => { + try { + const data = [] + for (let i = 0; i < 25; i++) { + data.push( + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + ) + } + + const result = await BITBOX.Blockchain.getBlockHeader(data) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) + + describe("#getMempoolEntry", () => { + /* + // To run this test, the txid must be unconfirmed. + const txid = + "defea04c38ee00cf73ad402984714ed22dc0dd99b2ae5cb50d791d94343ba79b" + + it(`should GET single mempool entry`, async () => { + const result = await BITBOX.Blockchain.getMempoolEntry(txid) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAnyKeys(result, [ + "size", + "fee", + "modifiedfee", + "time", + "height", + "startingpriority", + "currentpriority", + "descendantcount", + "descendantsize", + "descendantfees", + "ancestorcount", + "ancestorsize", + "ancestorfees", + "depends" + ]) + }) + + it(`should get an array of mempool entries`, async () => { + const result = await BITBOX.Blockchain.getMempoolEntry([txid, txid]) + console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAnyKeys(result[0], [ + "size", + "fee", + "modifiedfee", + "time", + "height", + "startingpriority", + "currentpriority", + "descendantcount", + "descendantsize", + "descendantfees", + "ancestorcount", + "ancestorsize", + "ancestorfees", + "depends" + ]) + }) + */ + + it(`should throw an error if txid is not in mempool`, async () => { + try { + const txid = + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + + await BITBOX.Blockchain.getMempoolEntry(txid) + + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: ${util.inspect(err)}`) + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, `Transaction not in mempool`) + } + }) + + it(`should throw an error for improper single input`, async () => { + try { + const txid = 12345 + + await BITBOX.Blockchain.getMempoolEntry(txid) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.include( + err.message, + `Input must be a string or array of strings` + ) + } + }) + }) + + describe(`#getTxOutProof`, () => { + it(`should get single tx out proof`, async () => { + const txid = + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + + const result = await BITBOX.Blockchain.getTxOutProof(txid) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isString(result) + }) + + it(`should get an array of tx out proofs`, async () => { + const txid = [ + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7", + "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" + ] + + const result = await BITBOX.Blockchain.getTxOutProof(txid) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.isString(result[0]) + }) + + it(`should throw an error for improper single input`, async () => { + try { + const txid = 12345 + + await BITBOX.Blockchain.getTxOutProof(txid) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.include( + err.message, + `Input must be a string or array of strings` + ) + } + }) + }) + + describe(`#verifyTxOutProof`, () => { + const mockTxOutProof = + "0000002086a4a3161f9ba2174883ec0b93acceac3b2f37b36ed1f90000000000000000009cb02406d1094ecf3e0b4c0ca7c585125e721147c39daf6b48c90b512741e13a12333e5cb38705180f441d8c7100000008fee9b60f1edb57e5712839186277ed39e0a004a32be9096ee47472efde8eae62f789f9d7a9f59d0ea7093dea1e0c65ff0b953f1d8cf3d47f92e732ca0295f603c272d5f4a63509f7a887f2549d78af7444aa0ecbb4f66d9cbe13bc6a89f59e05a199df8325d490818ffefe6b6321d32d7496a68580459836c0183f89082fc1b491cc91b23ecdcaa4c347bf599a62904d61f1c15b400ebbd5c90149010c139d9c1e31b774b796977393a238080ab477e1d240d0c4f155d36f519668f49bae6bd8cd5b8e40522edf76faa09cca6188d83ff13af6967cc6a569d1a5e9aeb1fdb7f531ddd2d0cbb81879741d5f38166ac1932136264366a4065cc96a42e41f96294f02df01" + + it(`should verify a single proof`, async () => { + const result = await BITBOX.Blockchain.verifyTxOutProof(mockTxOutProof) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.isString(result[0]) + assert.equal( + result[0], + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + ) + }) + + it(`should verify an array of proofs`, async () => { + const proofs = [mockTxOutProof, mockTxOutProof] + const result = await BITBOX.Blockchain.verifyTxOutProof(proofs) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.isString(result[0]) + assert.equal( + result[0], + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + ) + }) + + it(`should throw an error for improper single input`, async () => { + try { + const txid = 12345 + + await BITBOX.Blockchain.verifyTxOutProof(txid) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.include( + err.message, + `Input must be a string or array of strings` + ) + } + }) + + it(`should throw error on array size rate limit`, async () => { + try { + const data = [] + for (let i = 0; i < 25; i++) data.push(mockTxOutProof) + + const result = await BITBOX.Blockchain.verifyTxOutProof(data) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) +}) diff --git a/test/integration/rawtransaction.js b/test/integration/rawtransaction.js index 8429bd18..a5573e40 100644 --- a/test/integration/rawtransaction.js +++ b/test/integration/rawtransaction.js @@ -1,5 +1,5 @@ /* - Integration tests for the bitbox. Only covers calls made to + Integration tests for the BITBOX. Only covers calls made to rest.bitcoin.com. TODO @@ -7,8 +7,8 @@ const chai = require("chai") const assert = chai.assert -const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() +const BITBOXSDK = require("../../lib/BITBOX").BITBOX +const BITBOX = new BITBOXSDK() // Inspect utility used for debugging. const util = require("util") @@ -18,4 +18,310 @@ util.inspect.defaultOptions = { depth: 3 } -describe("#rawtransaction", () => {}) +describe("#rawtransaction", () => { + describe("#decodeRawTransaction", () => { + it("should decode tx for a single hex", async () => { + const hex = + "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" + + const result = await BITBOX.RawTransactions.decodeRawTransaction(hex) + //console.log(`result ${JSON.stringify(result, null, 2)}`) + + assert.hasAnyKeys(result, [ + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout" + ]) + assert.isArray(result.vin) + assert.isArray(result.vout) + }) + + it("should decode an array of tx hexes", async () => { + const hexes = [ + "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000", + "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" + ] + + const result = await BITBOX.RawTransactions.decodeRawTransaction(hexes) + //console.log(`result ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAnyKeys(result[0], [ + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout" + ]) + assert.isArray(result[0].vin) + assert.isArray(result[0].vout) + }) + + it(`should throw an error for improper single input`, async () => { + try { + const addr = 12345 + + await BITBOX.RawTransactions.decodeRawTransaction(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input must be a string or array of strings.` + ) + } + }) + + it(`should throw error on array size rate limit`, async () => { + try { + const data = [] + for (let i = 0; i < 25; i++) { + data.push( + "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" + ) + } + + const result = await BITBOX.RawTransactions.decodeRawTransaction(data) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) + + describe("#getRawTransaction", () => { + it("should decode a single txid, with concise output", async () => { + const txid = + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" + const verbose = false + + const result = await BITBOX.RawTransactions.getRawTransaction( + txid, + verbose + ) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isString(result) + }) + + it("should decode a single txid, with verbose output", async () => { + const txid = + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" + const verbose = true + + const result = await BITBOX.RawTransactions.getRawTransaction( + txid, + verbose + ) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAnyKeys(result, [ + "hex", + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout", + "blockhash", + "confirmations", + "time", + "blocktime" + ]) + assert.isArray(result.vin) + assert.isArray(result.vout) + }) + + it("should decode an array of txids, with a concise output", async () => { + const txid = [ + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", + "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" + ] + const verbose = false + + const result = await BITBOX.RawTransactions.getRawTransaction( + txid, + verbose + ) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.isString(result[0]) + }) + + it("should decode an array of txids, with a verbose output", async () => { + const txid = [ + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", + "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" + ] + const verbose = true + + const result = await BITBOX.RawTransactions.getRawTransaction( + txid, + verbose + ) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAnyKeys(result[0], [ + "hex", + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout", + "blockhash", + "confirmations", + "time", + "blocktime" + ]) + assert.isArray(result[0].vin) + assert.isArray(result[0].vout) + }) + + it(`should throw error on array size rate limit`, async () => { + try { + const dataMock = + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" + const data = [] + for (let i = 0; i < 25; i++) data.push(dataMock) + + const result = await BITBOX.RawTransactions.getRawTransaction(data) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) + + describe("#decodeScript", () => { + it("should decode script for a single hex", async () => { + const hex = + "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" + + const result = await BITBOX.RawTransactions.decodeScript(hex) + //console.log(`result ${JSON.stringify(result, null, 2)}`) + + assert.hasAllKeys(result, ["asm", "type", "p2sh"]) + }) + + // CT 2/20/19 - Waiting for this PR to be merged complete the test: + // https://github.com/Bitcoin-com/rest.bitcoin.com/pull/312 + /* + it("should decode an array of tx hexes", async () => { + const hexes = [ + "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16", + "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" + ] + + const result = await BITBOX.RawTransactions.decodeScript(hexes) + console.log(`result ${JSON.stringify(result, null, 2)}`) + }) +*/ + /* + it(`should throw an error for improper single input`, async () => { + try { + const addr = 12345 + + await BITBOX.RawTransactions.decodeRawTransaction(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input must be a string or array of strings.` + ) + } + }) +*/ + }) + + /* + Testing sentRawTransaction isn't really possible with an integration test, + as the endpoint really needs an e2e test to be properly tested. The tests + below expect error messages returned from the server, but at least test + that the server is responding on those endpoints, and responds consistently. + */ + describe("sendRawTransaction", () => { + it("should send a single transaction hex", async () => { + try { + const hex = + "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" + + await BITBOX.RawTransactions.sendRawTransaction(hex) + //console.log(`result ${JSON.stringify(result, null, 2)}`) + + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: ${util.inspect(err)}`) + + assert.hasAllKeys(err, ["error"]) + assert.include(err.error, "Missing inputs") + } + }) + + it("should send an array of tx hexes", async () => { + try { + const hexes = [ + "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000", + "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" + ] + + const result = await BITBOX.RawTransactions.sendRawTransaction(hexes) + console.log(`result ${JSON.stringify(result, null, 2)}`) + } catch (err) { + // console.log(`err: ${util.inspect(err)}`) + + assert.hasAllKeys(err, ["error"]) + assert.include(err.error, "Missing inputs") + } + }) + + it(`should throw an error for improper single input`, async () => { + try { + const addr = 12345 + + await BITBOX.RawTransactions.sendRawTransaction(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input hex must be a string or array of strings` + ) + } + }) + + it(`should throw error on array size rate limit`, async () => { + try { + const dataMock = + "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" + const data = [] + for (let i = 0; i < 25; i++) data.push(dataMock) + + const result = await BITBOX.RawTransactions.sendRawTransaction(data) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) +}) diff --git a/test/integration/transaction.js b/test/integration/transaction.js index 36d15cef..b35a7c81 100644 --- a/test/integration/transaction.js +++ b/test/integration/transaction.js @@ -1,12 +1,12 @@ /* - Integration tests for the bitbox. Only covers calls made to + Integration tests for the BITBOX. Only covers calls made to rest.bitcoin.com. */ const chai = require("chai") const assert = chai.assert -const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() +const BITBOXSDK = require("../../lib/BITBOX").BITBOX +const BITBOX = new BITBOXSDK() // Inspect utility used for debugging. const util = require("util") @@ -16,4 +16,76 @@ util.inspect.defaultOptions = { depth: 3 } -describe(`#Transaction`, () => {}) +describe(`#Transaction`, () => { + describe(`#details`, () => { + it(`should GET details for a given txid`, async () => { + const txid = + "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" + + const result = await BITBOX.Transaction.details(txid) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAllKeys(result, [ + "txid", + "version", + "locktime", + "vin", + "vout", + "blockhash", + "blockheight", + "confirmations", + "time", + "blocktime", + "isCoinBase", + "valueOut", + "size" + ]) + }) + + it(`should GET details for an array of txids`, async () => { + const txids = [ + "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33", + "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" + ] + + const result = await BITBOX.Transaction.details(txids) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + }) + + it(`should throw an error for improper single input`, async () => { + try { + const txid = 12345 + + await BITBOX.Transaction.details(txid) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input txid must be a string or array of strings` + ) + } + }) + + it(`should throw error on array size rate limit`, async () => { + try { + const dataMock = + "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" + const data = [] + for (let i = 0; i < 25; i++) data.push(dataMock) + + const result = await BITBOX.Transaction.details(data) + + // console.log(`result: ${util.inspect(result)}`) + assert.equal(false, false, "Unexpected result!") + } catch (err) { + console.log(`err: ${util.inspect(err)}`) + + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) +}) diff --git a/test/integration/util.js b/test/integration/util.js index 6d52669a..dc3ae029 100644 --- a/test/integration/util.js +++ b/test/integration/util.js @@ -1,12 +1,12 @@ /* - Integration tests for the bitbox. Only covers calls made to + Integration tests for the BITBOX. Only covers calls made to rest.bitcoin.com. */ const chai = require("chai") const assert = chai.assert -const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() +const BITBOXSDK = require("../../lib/BITBOX").BITBOX +const BITBOX = new BITBOXSDK() // Inspect utility used for debugging. const util = require("util") @@ -16,4 +16,94 @@ util.inspect.defaultOptions = { depth: 3 } -describe(`#util`, () => {}) +describe(`#util`, () => { + describe(`#validateAddress`, () => { + it(`should return false for testnet addr on mainnet`, async () => { + const address = `bchtest:qqqk4y6lsl5da64sg5qc3xezmplyu5kmpyz2ysaa5y` + + const result = await BITBOX.Util.validateAddress(address) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAllKeys(result, ["isvalid"]) + assert.equal(result.isvalid, false) + }) + + it(`should return false for bad address`, async () => { + const address = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peu` + + const result = await BITBOX.Util.validateAddress(address) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAllKeys(result, ["isvalid"]) + assert.equal(result.isvalid, false) + }) + + it(`should return validate valid address`, async () => { + const address = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` + + const result = await BITBOX.Util.validateAddress(address) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAllKeys(result, [ + "isvalid", + "address", + "scriptPubKey", + "ismine", + "iswatchonly", + "isscript" + ]) + assert.equal(result.isvalid, true) + }) + + it(`should validate an array of addresses`, async () => { + const address = [ + `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z`, + `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` + ] + + const result = await BITBOX.Util.validateAddress(address) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "isvalid", + "address", + "scriptPubKey", + "ismine", + "iswatchonly", + "isscript" + ]) + }) + + it(`should throw an error for improper single input`, async () => { + try { + const address = 15432 + + await BITBOX.Util.validateAddress(address) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input must be a string or array of strings.` + ) + } + }) + + it(`should throw error on array size rate limit`, async () => { + try { + const dataMock = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` + const data = [] + for (let i = 0; i < 25; i++) data.push(dataMock) + + const result = await BITBOX.Util.validateAddress(data) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) +}) From 3ccacdfb7f8a0f7cc499952e38f649d91beb3efb Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 28 May 2019 14:53:04 -0700 Subject: [PATCH 395/480] Fixed BITBOX.Address integration tests --- test/integration/address.js | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/test/integration/address.js b/test/integration/address.js index d6662e19..72a01c8c 100644 --- a/test/integration/address.js +++ b/test/integration/address.js @@ -44,7 +44,8 @@ describe(`#address`, () => { "legacyAddress", "cashAddress", "currentPage", - "pagesTotal" + "pagesTotal", + "slpAddress" ]) assert.isArray(result.transactions) }) @@ -74,7 +75,8 @@ describe(`#address`, () => { "legacyAddress", "cashAddress", "currentPage", - "pagesTotal" + "pagesTotal", + "slpAddress" ]) assert.isArray(result[0].transactions) }) @@ -122,7 +124,8 @@ describe(`#address`, () => { "utxos", "legacyAddress", "cashAddress", - "scriptPubKey" + "scriptPubKey", + "slpAddress" ]) assert.isArray(result.utxos) assert.hasAnyKeys(result.utxos[0], [ @@ -149,7 +152,8 @@ describe(`#address`, () => { "utxos", "legacyAddress", "cashAddress", - "scriptPubKey" + "scriptPubKey", + "slpAddress" ]) assert.isArray(result[0].utxos) assert.hasAnyKeys(result[0].utxos[0], [ @@ -201,7 +205,13 @@ describe(`#address`, () => { const result = await BITBOX.Address.unconfirmed(addr) //console.log(`result: ${JSON.stringify(result, null, 2)}`) - assert.hasAllKeys(result, ["utxos", "legacyAddress", "cashAddress"]) + assert.hasAllKeys(result, [ + "utxos", + "legacyAddress", + "cashAddress", + "scriptPubKey", + "slpAddress" + ]) assert.isArray(result.utxos) }) @@ -215,7 +225,13 @@ describe(`#address`, () => { //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) - assert.hasAllKeys(result[0], ["utxos", "legacyAddress", "cashAddress"]) + assert.hasAllKeys(result[0], [ + "utxos", + "legacyAddress", + "cashAddress", + "scriptPubKey", + "slpAddress" + ]) assert.isArray(result[0].utxos) }) From 779c17d974cb35ae5e9e6f8818d1f7f4ed52b930 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 28 May 2019 15:30:01 -0700 Subject: [PATCH 396/480] Variable name change --- test/integration/address.js | 39 +++++++++++++++--------------- test/integration/block.js | 23 +++++++++--------- test/integration/blockchain.js | 39 +++++++++++++++--------------- test/integration/rawtransaction.js | 39 +++++++++++++++--------------- test/integration/transaction.js | 15 ++++++------ test/integration/util.js | 19 ++++++++------- test/integration/z9-rate-limits.js | 1 + 7 files changed, 91 insertions(+), 84 deletions(-) diff --git a/test/integration/address.js b/test/integration/address.js index 72a01c8c..0e7a9721 100644 --- a/test/integration/address.js +++ b/test/integration/address.js @@ -1,5 +1,5 @@ /* - Integration tests for the BITBOX.Address library. Only covers calls made to + Integration tests for the bitbox.Address library. Only covers calls made to rest.bitcoin.com. TODO: @@ -9,8 +9,9 @@ const chai = require("chai") const assert = chai.assert -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() + +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() //const axios = require("axios") // Inspect utility used for debugging. @@ -26,7 +27,7 @@ describe(`#address`, () => { it(`should GET address details for a single address`, async () => { const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - const result = await BITBOX.Address.details(addr) + const result = await bitbox.Address.details(addr) //console.log(`result: ${util.inspect(result)}`) assert.hasAllKeys(result, [ @@ -56,7 +57,7 @@ describe(`#address`, () => { "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" ] - const result = await BITBOX.Address.details(addr) + const result = await bitbox.Address.details(addr) //console.log(`result: ${util.inspect(result)}`) assert.isArray(result) @@ -85,7 +86,7 @@ describe(`#address`, () => { try { const addr = 12345 - await BITBOX.Address.details(addr) + await bitbox.Address.details(addr) assert.equal(true, false, "Unexpected result!") } catch (err) { //console.log(`err: `, err) @@ -102,7 +103,7 @@ describe(`#address`, () => { for (let i = 0; i < 25; i++) addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - const result = await BITBOX.Address.details(addr) + const result = await bitbox.Address.details(addr) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") @@ -117,7 +118,7 @@ describe(`#address`, () => { it(`should GET utxos for a single address`, async () => { const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - const result = await BITBOX.Address.utxo(addr) + const result = await bitbox.Address.utxo(addr) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.hasAllKeys(result, [ @@ -144,7 +145,7 @@ describe(`#address`, () => { "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" ] - const result = await BITBOX.Address.utxo(addr) + const result = await bitbox.Address.utxo(addr) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) @@ -170,7 +171,7 @@ describe(`#address`, () => { try { const addr = 12345 - await BITBOX.Address.utxo(addr) + await bitbox.Address.utxo(addr) assert.equal(true, false, "Unexpected result!") } catch (err) { //console.log(`err: `, err) @@ -187,7 +188,7 @@ describe(`#address`, () => { for (let i = 0; i < 25; i++) addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - const result = await BITBOX.Address.utxo(addr) + const result = await bitbox.Address.utxo(addr) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") @@ -202,7 +203,7 @@ describe(`#address`, () => { it(`should GET unconfirmed details on a single address`, async () => { const addr = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" - const result = await BITBOX.Address.unconfirmed(addr) + const result = await bitbox.Address.unconfirmed(addr) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.hasAllKeys(result, [ @@ -221,7 +222,7 @@ describe(`#address`, () => { "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" ] - const result = await BITBOX.Address.unconfirmed(addr) + const result = await bitbox.Address.unconfirmed(addr) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) @@ -239,7 +240,7 @@ describe(`#address`, () => { try { const addr = 12345 - await BITBOX.Address.unconfirmed(addr) + await bitbox.Address.unconfirmed(addr) assert.equal(true, false, "Unexpected result!") } catch (err) { //console.log(`err: `, err) @@ -256,7 +257,7 @@ describe(`#address`, () => { for (let i = 0; i < 25; i++) addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - const result = await BITBOX.Address.unconfirmed(addr) + const result = await bitbox.Address.unconfirmed(addr) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") @@ -271,7 +272,7 @@ describe(`#address`, () => { it(`should GET transactions for a single address`, async () => { const addr = "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" - const result = await BITBOX.Address.transactions(addr) + const result = await bitbox.Address.transactions(addr) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.hasAllKeys(result, [ @@ -304,7 +305,7 @@ describe(`#address`, () => { "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" ] - const result = await BITBOX.Address.transactions(addr) + const result = await bitbox.Address.transactions(addr) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) @@ -336,7 +337,7 @@ describe(`#address`, () => { try { const addr = 12345 - await BITBOX.Address.transactions(addr) + await bitbox.Address.transactions(addr) assert.equal(true, false, "Unexpected result!") } catch (err) { //console.log(`err: `, err) @@ -353,7 +354,7 @@ describe(`#address`, () => { for (let i = 0; i < 25; i++) addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - const result = await BITBOX.Address.transactions(addr) + const result = await bitbox.Address.transactions(addr) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") diff --git a/test/integration/block.js b/test/integration/block.js index d8603a68..e78eb88d 100644 --- a/test/integration/block.js +++ b/test/integration/block.js @@ -1,12 +1,13 @@ /* - Integration tests for the BITBOX. Only covers calls made to + Integration tests for the bitbox. Only covers calls made to rest.bitcoin.com. */ const chai = require("chai") const assert = chai.assert -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() + +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() // Inspect utility used for debugging. const util = require("util") @@ -21,7 +22,7 @@ describe(`#block`, () => { it(`should GET block details for a given Height`, async () => { const block = 500000 - const result = await BITBOX.Block.detailsByHeight(block) + const result = await bitbox.Block.detailsByHeight(block) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.hasAllKeys(result, [ @@ -48,7 +49,7 @@ describe(`#block`, () => { it(`should GET block details for an array of blocks`, async () => { const blocks = [500000, 500001] - const result = await BITBOX.Block.detailsByHeight(blocks) + const result = await bitbox.Block.detailsByHeight(blocks) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) @@ -77,7 +78,7 @@ describe(`#block`, () => { try { const blocks = "asdf" - await BITBOX.Block.detailsByHeight(blocks) + await bitbox.Block.detailsByHeight(blocks) assert.equal(true, false, "Unexpected result!") } catch (err) { //console.log(`err: `, err) @@ -93,7 +94,7 @@ describe(`#block`, () => { const blocks = [] for (let i = 0; i < 25; i++) blocks.push(500000) - const result = await BITBOX.Block.detailsByHeight(blocks) + const result = await bitbox.Block.detailsByHeight(blocks) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") @@ -109,7 +110,7 @@ describe(`#block`, () => { const hash = "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - const result = await BITBOX.Block.detailsByHash(hash) + const result = await bitbox.Block.detailsByHash(hash) //console.log(`result: ${util.inspect(result)}`) assert.hasAllKeys(result, [ @@ -139,7 +140,7 @@ describe(`#block`, () => { "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" ] - const result = await BITBOX.Block.detailsByHash(hash) + const result = await bitbox.Block.detailsByHash(hash) //console.log(`result: ${util.inspect(result)}`) assert.isArray(result) @@ -168,7 +169,7 @@ describe(`#block`, () => { try { const hash = 12345 - await BITBOX.Block.detailsByHash(hash) + await bitbox.Block.detailsByHash(hash) assert.equal(true, false, "Unexpected result!") } catch (err) { //console.log(`err: `, err) @@ -188,7 +189,7 @@ describe(`#block`, () => { ) } - const result = await BITBOX.Block.detailsByHash(data) + const result = await bitbox.Block.detailsByHash(data) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") diff --git a/test/integration/blockchain.js b/test/integration/blockchain.js index b3b2c0c4..c7e59eea 100644 --- a/test/integration/blockchain.js +++ b/test/integration/blockchain.js @@ -1,5 +1,5 @@ /* - Integration tests for the BITBOX. Only covers calls made to + Integration tests for the bitbox. Only covers calls made to rest.bitcoin.com. TODO @@ -9,8 +9,9 @@ const chai = require("chai") const assert = chai.assert -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() + +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() // Inspect utility used for debugging. const util = require("util") @@ -23,7 +24,7 @@ util.inspect.defaultOptions = { describe(`#blockchain`, () => { describe(`#getBestBlockHash`, () => { it(`should GET best block hash`, async () => { - const result = await BITBOX.Blockchain.getBestBlockHash() + const result = await bitbox.Blockchain.getBestBlockHash() //console.log(`result: ${util.inspect(result)}`) assert.isString(result) @@ -36,7 +37,7 @@ describe(`#blockchain`, () => { const hash = "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - const result = await BITBOX.Blockchain.getBlockHeader(hash) + const result = await bitbox.Blockchain.getBlockHeader(hash) assert.hasAllKeys(result, [ "hash", @@ -62,7 +63,7 @@ describe(`#blockchain`, () => { "00000000000000000568f0a96bf4348847bc84e455cbfec389f27311037a20f3" ] - const result = await BITBOX.Blockchain.getBlockHeader(hash) + const result = await bitbox.Blockchain.getBlockHeader(hash) assert.isArray(result) assert.hasAllKeys(result[0], [ @@ -87,7 +88,7 @@ describe(`#blockchain`, () => { try { const hash = 12345 - await BITBOX.Blockchain.getBlockHeader(hash) + await bitbox.Blockchain.getBlockHeader(hash) assert.equal(true, false, "Unexpected result!") } catch (err) { assert.include( @@ -106,7 +107,7 @@ describe(`#blockchain`, () => { ) } - const result = await BITBOX.Blockchain.getBlockHeader(data) + const result = await bitbox.Blockchain.getBlockHeader(data) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") @@ -124,7 +125,7 @@ describe(`#blockchain`, () => { "defea04c38ee00cf73ad402984714ed22dc0dd99b2ae5cb50d791d94343ba79b" it(`should GET single mempool entry`, async () => { - const result = await BITBOX.Blockchain.getMempoolEntry(txid) + const result = await bitbox.Blockchain.getMempoolEntry(txid) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.hasAnyKeys(result, [ @@ -146,7 +147,7 @@ describe(`#blockchain`, () => { }) it(`should get an array of mempool entries`, async () => { - const result = await BITBOX.Blockchain.getMempoolEntry([txid, txid]) + const result = await bitbox.Blockchain.getMempoolEntry([txid, txid]) console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) @@ -174,7 +175,7 @@ describe(`#blockchain`, () => { const txid = "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" - await BITBOX.Blockchain.getMempoolEntry(txid) + await bitbox.Blockchain.getMempoolEntry(txid) assert.equal(true, false, "Unexpected result!") } catch (err) { @@ -188,7 +189,7 @@ describe(`#blockchain`, () => { try { const txid = 12345 - await BITBOX.Blockchain.getMempoolEntry(txid) + await bitbox.Blockchain.getMempoolEntry(txid) assert.equal(true, false, "Unexpected result!") } catch (err) { assert.include( @@ -204,7 +205,7 @@ describe(`#blockchain`, () => { const txid = "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" - const result = await BITBOX.Blockchain.getTxOutProof(txid) + const result = await bitbox.Blockchain.getTxOutProof(txid) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isString(result) @@ -216,7 +217,7 @@ describe(`#blockchain`, () => { "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" ] - const result = await BITBOX.Blockchain.getTxOutProof(txid) + const result = await bitbox.Blockchain.getTxOutProof(txid) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) @@ -227,7 +228,7 @@ describe(`#blockchain`, () => { try { const txid = 12345 - await BITBOX.Blockchain.getTxOutProof(txid) + await bitbox.Blockchain.getTxOutProof(txid) assert.equal(true, false, "Unexpected result!") } catch (err) { assert.include( @@ -243,7 +244,7 @@ describe(`#blockchain`, () => { "0000002086a4a3161f9ba2174883ec0b93acceac3b2f37b36ed1f90000000000000000009cb02406d1094ecf3e0b4c0ca7c585125e721147c39daf6b48c90b512741e13a12333e5cb38705180f441d8c7100000008fee9b60f1edb57e5712839186277ed39e0a004a32be9096ee47472efde8eae62f789f9d7a9f59d0ea7093dea1e0c65ff0b953f1d8cf3d47f92e732ca0295f603c272d5f4a63509f7a887f2549d78af7444aa0ecbb4f66d9cbe13bc6a89f59e05a199df8325d490818ffefe6b6321d32d7496a68580459836c0183f89082fc1b491cc91b23ecdcaa4c347bf599a62904d61f1c15b400ebbd5c90149010c139d9c1e31b774b796977393a238080ab477e1d240d0c4f155d36f519668f49bae6bd8cd5b8e40522edf76faa09cca6188d83ff13af6967cc6a569d1a5e9aeb1fdb7f531ddd2d0cbb81879741d5f38166ac1932136264366a4065cc96a42e41f96294f02df01" it(`should verify a single proof`, async () => { - const result = await BITBOX.Blockchain.verifyTxOutProof(mockTxOutProof) + const result = await bitbox.Blockchain.verifyTxOutProof(mockTxOutProof) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) @@ -256,7 +257,7 @@ describe(`#blockchain`, () => { it(`should verify an array of proofs`, async () => { const proofs = [mockTxOutProof, mockTxOutProof] - const result = await BITBOX.Blockchain.verifyTxOutProof(proofs) + const result = await bitbox.Blockchain.verifyTxOutProof(proofs) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) @@ -271,7 +272,7 @@ describe(`#blockchain`, () => { try { const txid = 12345 - await BITBOX.Blockchain.verifyTxOutProof(txid) + await bitbox.Blockchain.verifyTxOutProof(txid) assert.equal(true, false, "Unexpected result!") } catch (err) { assert.include( @@ -286,7 +287,7 @@ describe(`#blockchain`, () => { const data = [] for (let i = 0; i < 25; i++) data.push(mockTxOutProof) - const result = await BITBOX.Blockchain.verifyTxOutProof(data) + const result = await bitbox.Blockchain.verifyTxOutProof(data) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") diff --git a/test/integration/rawtransaction.js b/test/integration/rawtransaction.js index a5573e40..a08b518f 100644 --- a/test/integration/rawtransaction.js +++ b/test/integration/rawtransaction.js @@ -1,5 +1,5 @@ /* - Integration tests for the BITBOX. Only covers calls made to + Integration tests for the bitbox. Only covers calls made to rest.bitcoin.com. TODO @@ -7,8 +7,9 @@ const chai = require("chai") const assert = chai.assert -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() + +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() // Inspect utility used for debugging. const util = require("util") @@ -24,7 +25,7 @@ describe("#rawtransaction", () => { const hex = "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" - const result = await BITBOX.RawTransactions.decodeRawTransaction(hex) + const result = await bitbox.RawTransactions.decodeRawTransaction(hex) //console.log(`result ${JSON.stringify(result, null, 2)}`) assert.hasAnyKeys(result, [ @@ -46,7 +47,7 @@ describe("#rawtransaction", () => { "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" ] - const result = await BITBOX.RawTransactions.decodeRawTransaction(hexes) + const result = await bitbox.RawTransactions.decodeRawTransaction(hexes) //console.log(`result ${JSON.stringify(result, null, 2)}`) assert.isArray(result) @@ -67,7 +68,7 @@ describe("#rawtransaction", () => { try { const addr = 12345 - await BITBOX.RawTransactions.decodeRawTransaction(addr) + await bitbox.RawTransactions.decodeRawTransaction(addr) assert.equal(true, false, "Unexpected result!") } catch (err) { //console.log(`err: `, err) @@ -87,7 +88,7 @@ describe("#rawtransaction", () => { ) } - const result = await BITBOX.RawTransactions.decodeRawTransaction(data) + const result = await bitbox.RawTransactions.decodeRawTransaction(data) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") @@ -104,7 +105,7 @@ describe("#rawtransaction", () => { "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" const verbose = false - const result = await BITBOX.RawTransactions.getRawTransaction( + const result = await bitbox.RawTransactions.getRawTransaction( txid, verbose ) @@ -118,7 +119,7 @@ describe("#rawtransaction", () => { "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" const verbose = true - const result = await BITBOX.RawTransactions.getRawTransaction( + const result = await bitbox.RawTransactions.getRawTransaction( txid, verbose ) @@ -149,7 +150,7 @@ describe("#rawtransaction", () => { ] const verbose = false - const result = await BITBOX.RawTransactions.getRawTransaction( + const result = await bitbox.RawTransactions.getRawTransaction( txid, verbose ) @@ -166,7 +167,7 @@ describe("#rawtransaction", () => { ] const verbose = true - const result = await BITBOX.RawTransactions.getRawTransaction( + const result = await bitbox.RawTransactions.getRawTransaction( txid, verbose ) @@ -198,7 +199,7 @@ describe("#rawtransaction", () => { const data = [] for (let i = 0; i < 25; i++) data.push(dataMock) - const result = await BITBOX.RawTransactions.getRawTransaction(data) + const result = await bitbox.RawTransactions.getRawTransaction(data) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") @@ -214,7 +215,7 @@ describe("#rawtransaction", () => { const hex = "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" - const result = await BITBOX.RawTransactions.decodeScript(hex) + const result = await bitbox.RawTransactions.decodeScript(hex) //console.log(`result ${JSON.stringify(result, null, 2)}`) assert.hasAllKeys(result, ["asm", "type", "p2sh"]) @@ -229,7 +230,7 @@ describe("#rawtransaction", () => { "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" ] - const result = await BITBOX.RawTransactions.decodeScript(hexes) + const result = await bitbox.RawTransactions.decodeScript(hexes) console.log(`result ${JSON.stringify(result, null, 2)}`) }) */ @@ -238,7 +239,7 @@ describe("#rawtransaction", () => { try { const addr = 12345 - await BITBOX.RawTransactions.decodeRawTransaction(addr) + await bitbox.RawTransactions.decodeRawTransaction(addr) assert.equal(true, false, "Unexpected result!") } catch (err) { //console.log(`err: `, err) @@ -263,7 +264,7 @@ describe("#rawtransaction", () => { const hex = "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" - await BITBOX.RawTransactions.sendRawTransaction(hex) + await bitbox.RawTransactions.sendRawTransaction(hex) //console.log(`result ${JSON.stringify(result, null, 2)}`) assert.equal(true, false, "Unexpected result!") @@ -282,7 +283,7 @@ describe("#rawtransaction", () => { "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" ] - const result = await BITBOX.RawTransactions.sendRawTransaction(hexes) + const result = await bitbox.RawTransactions.sendRawTransaction(hexes) console.log(`result ${JSON.stringify(result, null, 2)}`) } catch (err) { // console.log(`err: ${util.inspect(err)}`) @@ -296,7 +297,7 @@ describe("#rawtransaction", () => { try { const addr = 12345 - await BITBOX.RawTransactions.sendRawTransaction(addr) + await bitbox.RawTransactions.sendRawTransaction(addr) assert.equal(true, false, "Unexpected result!") } catch (err) { //console.log(`err: `, err) @@ -314,7 +315,7 @@ describe("#rawtransaction", () => { const data = [] for (let i = 0; i < 25; i++) data.push(dataMock) - const result = await BITBOX.RawTransactions.sendRawTransaction(data) + const result = await bitbox.RawTransactions.sendRawTransaction(data) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") diff --git a/test/integration/transaction.js b/test/integration/transaction.js index b35a7c81..9b584cef 100644 --- a/test/integration/transaction.js +++ b/test/integration/transaction.js @@ -1,12 +1,13 @@ /* - Integration tests for the BITBOX. Only covers calls made to + Integration tests for the bitbox. Only covers calls made to rest.bitcoin.com. */ const chai = require("chai") const assert = chai.assert -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() + +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() // Inspect utility used for debugging. const util = require("util") @@ -22,7 +23,7 @@ describe(`#Transaction`, () => { const txid = "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" - const result = await BITBOX.Transaction.details(txid) + const result = await bitbox.Transaction.details(txid) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.hasAllKeys(result, [ @@ -48,7 +49,7 @@ describe(`#Transaction`, () => { "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" ] - const result = await BITBOX.Transaction.details(txids) + const result = await bitbox.Transaction.details(txids) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) @@ -58,7 +59,7 @@ describe(`#Transaction`, () => { try { const txid = 12345 - await BITBOX.Transaction.details(txid) + await bitbox.Transaction.details(txid) assert.equal(true, false, "Unexpected result!") } catch (err) { //console.log(`err: `, err) @@ -76,7 +77,7 @@ describe(`#Transaction`, () => { const data = [] for (let i = 0; i < 25; i++) data.push(dataMock) - const result = await BITBOX.Transaction.details(data) + const result = await bitbox.Transaction.details(data) // console.log(`result: ${util.inspect(result)}`) assert.equal(false, false, "Unexpected result!") diff --git a/test/integration/util.js b/test/integration/util.js index dc3ae029..59549902 100644 --- a/test/integration/util.js +++ b/test/integration/util.js @@ -1,12 +1,13 @@ /* - Integration tests for the BITBOX. Only covers calls made to + Integration tests for the bitbox. Only covers calls made to rest.bitcoin.com. */ const chai = require("chai") const assert = chai.assert -const BITBOXSDK = require("../../lib/BITBOX").BITBOX -const BITBOX = new BITBOXSDK() + +const BITBOX = require("../../lib/BITBOX").BITBOX +const bitbox = new BITBOX() // Inspect utility used for debugging. const util = require("util") @@ -21,7 +22,7 @@ describe(`#util`, () => { it(`should return false for testnet addr on mainnet`, async () => { const address = `bchtest:qqqk4y6lsl5da64sg5qc3xezmplyu5kmpyz2ysaa5y` - const result = await BITBOX.Util.validateAddress(address) + const result = await bitbox.Util.validateAddress(address) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.hasAllKeys(result, ["isvalid"]) @@ -31,7 +32,7 @@ describe(`#util`, () => { it(`should return false for bad address`, async () => { const address = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peu` - const result = await BITBOX.Util.validateAddress(address) + const result = await bitbox.Util.validateAddress(address) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.hasAllKeys(result, ["isvalid"]) @@ -41,7 +42,7 @@ describe(`#util`, () => { it(`should return validate valid address`, async () => { const address = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` - const result = await BITBOX.Util.validateAddress(address) + const result = await bitbox.Util.validateAddress(address) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.hasAllKeys(result, [ @@ -61,7 +62,7 @@ describe(`#util`, () => { `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` ] - const result = await BITBOX.Util.validateAddress(address) + const result = await bitbox.Util.validateAddress(address) //console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) @@ -79,7 +80,7 @@ describe(`#util`, () => { try { const address = 15432 - await BITBOX.Util.validateAddress(address) + await bitbox.Util.validateAddress(address) assert.equal(true, false, "Unexpected result!") } catch (err) { //console.log(`err: `, err) @@ -96,7 +97,7 @@ describe(`#util`, () => { const data = [] for (let i = 0; i < 25; i++) data.push(dataMock) - const result = await BITBOX.Util.validateAddress(data) + const result = await bitbox.Util.validateAddress(data) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") diff --git a/test/integration/z9-rate-limits.js b/test/integration/z9-rate-limits.js index b9a812a9..1acde519 100644 --- a/test/integration/z9-rate-limits.js +++ b/test/integration/z9-rate-limits.js @@ -6,6 +6,7 @@ const chai = require("chai") const assert = chai.assert + const BITBOX = require("../../lib/BITBOX").BITBOX const bitbox = new BITBOX() From 69d260a9a9f176083d719d8d40da3a55a10a1acd Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 31 May 2019 14:00:48 +0900 Subject: [PATCH 397/480] bitbox.CashAccounts.lookup. --- index.ts | 1 + lib/BITBOX.ts | 3 +++ lib/CashAccounts.ts | 30 ++++++++++++++++++++++++++++++ lib/interfaces/vendors.d.ts | 13 +++++++++++++ package.json | 2 +- 5 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 lib/CashAccounts.ts diff --git a/index.ts b/index.ts index 45d61d15..cf04fc68 100644 --- a/index.ts +++ b/index.ts @@ -5,6 +5,7 @@ export * from "./lib/BITBOX" export * from "./lib/BitcoinCash" export * from "./lib/Block" export * from "./lib/Blockchain" +export * from "./lib/CashAccounts" export * from "./lib/Control" export * from "./lib/Crypto" export * from "./lib/ECPair" diff --git a/lib/BITBOX.ts b/lib/BITBOX.ts index 3c8660a9..33ac98a6 100644 --- a/lib/BITBOX.ts +++ b/lib/BITBOX.ts @@ -5,6 +5,7 @@ import { Address } from "./Address" import { BitcoinCash } from "./BitcoinCash" import { Block } from "./Block" import { Blockchain } from "./Blockchain" +import { CashAccounts } from "./CashAccounts" import { Control } from "./Control" import { Crypto } from "./Crypto" import { ECPair } from "./ECPair" @@ -33,6 +34,7 @@ export class BITBOX { public BitcoinCash: BitcoinCash public Block: Block public Blockchain: Blockchain + public CashAccounts: CashAccounts public Control: Control public Crypto: Crypto public ECPair: any @@ -58,6 +60,7 @@ export class BITBOX { this.BitcoinCash = new BitcoinCash(this.Address) this.Block = new Block(this.restURL) this.Blockchain = new Blockchain(this.restURL) + this.CashAccounts = new CashAccounts(this.restURL) this.Control = new Control(this.restURL) this.Crypto = new Crypto() this.ECPair = new ECPair(this.Address) diff --git a/lib/CashAccounts.ts b/lib/CashAccounts.ts new file mode 100644 index 00000000..33ab7589 --- /dev/null +++ b/lib/CashAccounts.ts @@ -0,0 +1,30 @@ +import axios, { AxiosResponse } from "axios" +import { CashAccountLookupResult } from "bitcoin-com-rest" +import { resturl } from "./BITBOX" + +export class CashAccounts { + public restURL: string + constructor(restURL: string = resturl) { + this.restURL = restURL + } + + public async lookup( + account: string, + number: number, + collision?: number + ): Promise { + try { + let col: string = "" + if (collision) { + col = collision.toString() + } + const response: AxiosResponse = await axios.get( + `${this.restURL}cashAccounts/lookup/${account}/${number}/${col}` + ) + return response.data + } catch (error) { + if (error.response && error.response.data) throw error.response.data + else throw error + } + } +} diff --git a/lib/interfaces/vendors.d.ts b/lib/interfaces/vendors.d.ts index a87266ea..c0495ed8 100644 --- a/lib/interfaces/vendors.d.ts +++ b/lib/interfaces/vendors.d.ts @@ -294,4 +294,17 @@ declare module "bitcoin-com-rest" { iscompressed: boolean account: string } + + export interface CashAccountLookupResult { + identifier: string + information: { + emoji: string + name: string + number: number + collision: { + hash: string + } + payment: string[] + } + } } diff --git a/package.json b/package.json index aab66976..9d5aab36 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "8.2.2", + "version": "8.3.0", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ From be7165d210c7d2894fca56a7095db6e19846c6be Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sun, 2 Jun 2019 13:07:39 +0900 Subject: [PATCH 398/480] Bump bitcoincashjs-lib dep. --- lib/ECPair.ts | 6 +- package.json | 4 +- test/unit/ECPair.ts | 235 ++++++++++++++++++--------------- test/unit/fixtures/ECPair.json | 14 +- yarn.lock | 6 +- 5 files changed, 146 insertions(+), 119 deletions(-) diff --git a/lib/ECPair.ts b/lib/ECPair.ts index bf0ba3cd..a419954b 100644 --- a/lib/ECPair.ts +++ b/lib/ECPair.ts @@ -29,7 +29,11 @@ export class ECPair { return ecpair.toWIF() } - public sign(ecpair: bcl.ECPair, buffer: Buffer, signatureAlgorithm?: number): bcl.ECSignature { + public sign( + ecpair: bcl.ECPair, + buffer: Buffer, + signatureAlgorithm?: number + ): bcl.ECSignature { return ecpair.sign(buffer, signatureAlgorithm) } diff --git a/package.json b/package.json index 9d5aab36..ed6a2b5e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "8.3.0", + "version": "8.3.1", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ @@ -47,7 +47,7 @@ "bip39": "^2.5.0", "bip66": "^1.1.5", "bitcoincash-ops": "Bitcoin-com/bitcoincash-ops#2.0.0", - "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib#v4.0.0", + "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib#v4.0.1", "bitcoinjs-message": "^2.0.0", "browserify": "^16.2.2", "bs58": "^4.0.1", diff --git a/test/unit/ECPair.ts b/test/unit/ECPair.ts index 2f6456f3..b5a54784 100644 --- a/test/unit/ECPair.ts +++ b/test/unit/ECPair.ts @@ -1,9 +1,8 @@ // imports -import * as assert from "assert"; +import * as assert from "assert" +import { Buffer } from "buffer" import { BITBOX } from "../../lib/BITBOX" import { ECPair } from "../../lib/ECPair" -import { Buffer } from "buffer" -import * as bcl from "bitcoincashjs-lib"; // consts const bitbox: BITBOX = new BITBOX() @@ -20,145 +19,169 @@ describe("#ECPair", (): void => { }) describe("#fromWIF", (): void => { - fixtures.fromWIF.forEach((fixture: any): void => { - it(`should create ECPair from WIF ${fixture.privateKeyWIF}`, (): void => { - const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) - assert.equal(typeof ecpair, "object") - }) - - it(`should get ${fixture.legacy} legacy address`, (): void => { - const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) - assert.equal(bitbox.ECPair.toLegacyAddress(ecpair), fixture.legacy) - }) - - it(`should get ${fixture.cashAddr} cash address`, (): void => { - const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) - assert.equal(bitbox.ECPair.toCashAddress(ecpair), fixture.cashAddr) - }) - - it(`should get ${fixture.regtestAddr} cash address`, (): void => { - const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) - assert.equal( - bitbox.ECPair.toCashAddress(ecpair, true), - fixture.regtestAddr - ) - }) - }) + fixtures.fromWIF.forEach( + (fixture: any): void => { + it(`should create ECPair from WIF ${ + fixture.privateKeyWIF + }`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + assert.equal(typeof ecpair, "object") + }) + + it(`should get ${fixture.legacy} legacy address`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + assert.equal(bitbox.ECPair.toLegacyAddress(ecpair), fixture.legacy) + }) + + it(`should get ${fixture.cashAddr} cash address`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + assert.equal(bitbox.ECPair.toCashAddress(ecpair), fixture.cashAddr) + }) + + it(`should get ${fixture.regtestAddr} cash address`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + assert.equal( + bitbox.ECPair.toCashAddress(ecpair, true), + fixture.regtestAddr + ) + }) + } + ) }) describe("#toWIF", (): void => { - fixtures.toWIF.forEach((fixture: any): void => { - it(`should get WIF ${fixture.privateKeyWIF} from ECPair`, (): void => { - const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) - const wif: string = bitbox.ECPair.toWIF(ecpair) - assert.equal(wif, fixture.privateKeyWIF) - }) - }) + fixtures.toWIF.forEach( + (fixture: any): void => { + it(`should get WIF ${fixture.privateKeyWIF} from ECPair`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + const wif: string = bitbox.ECPair.toWIF(ecpair) + assert.equal(wif, fixture.privateKeyWIF) + }) + } + ) }) describe("#fromPublicKey", (): void => { - fixtures.fromPublicKey.forEach((fixture: any): void => { - it(`should create ECPair from public key buffer`, (): void => { - const ecpair: ECPair = bitbox.ECPair.fromPublicKey( - Buffer.from(fixture.pubkeyHex, "hex") - ) - assert.equal(typeof ecpair, "object") - }) - - it(`should get ${fixture.legacy} legacy address`, (): void => { - const ecpair: ECPair = bitbox.ECPair.fromPublicKey( - Buffer.from(fixture.pubkeyHex, "hex") - ) - assert.equal(bitbox.ECPair.toLegacyAddress(ecpair), fixture.legacy) - }) - - it(`should get ${fixture.cashAddr} cash address`, (): void => { - const ecpair: ECPair = bitbox.ECPair.fromPublicKey( - Buffer.from(fixture.pubkeyHex, "hex") - ) - assert.equal(bitbox.ECPair.toCashAddress(ecpair), fixture.cashAddr) - }) - - it(`should get ${fixture.regtestAddr} cash address`, (): void => { - const ecpair: ECPair = bitbox.ECPair.fromPublicKey( - Buffer.from(fixture.pubkeyHex, "hex") - ) - assert.equal( - bitbox.ECPair.toCashAddress(ecpair, true), - fixture.regtestAddr - ) - }) - }) + fixtures.fromPublicKey.forEach( + (fixture: any): void => { + it(`should create ECPair from public key buffer`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromPublicKey( + Buffer.from(fixture.pubkeyHex, "hex") + ) + assert.equal(typeof ecpair, "object") + }) + + it(`should get ${fixture.legacy} legacy address`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromPublicKey( + Buffer.from(fixture.pubkeyHex, "hex") + ) + assert.equal(bitbox.ECPair.toLegacyAddress(ecpair), fixture.legacy) + }) + + it(`should get ${fixture.cashAddr} cash address`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromPublicKey( + Buffer.from(fixture.pubkeyHex, "hex") + ) + assert.equal(bitbox.ECPair.toCashAddress(ecpair), fixture.cashAddr) + }) + + it(`should get ${fixture.regtestAddr} cash address`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromPublicKey( + Buffer.from(fixture.pubkeyHex, "hex") + ) + assert.equal( + bitbox.ECPair.toCashAddress(ecpair, true), + fixture.regtestAddr + ) + }) + } + ) }) describe("#toPublicKey", (): void => { - fixtures.toPublicKey.forEach((fixture: any): void => { - it(`should create a public key buffer from an ECPair`, (): void => { - const ecpair: ECPair = bitbox.ECPair.fromPublicKey( - Buffer.from(fixture.pubkeyHex, "hex") - ) - const pubkeyBuffer: Buffer = bitbox.ECPair.toPublicKey(ecpair) - assert.equal(typeof pubkeyBuffer, "object") - }) - }) + fixtures.toPublicKey.forEach( + (fixture: any): void => { + it(`should create a public key buffer from an ECPair`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromPublicKey( + Buffer.from(fixture.pubkeyHex, "hex") + ) + const pubkeyBuffer: Buffer = bitbox.ECPair.toPublicKey(ecpair) + assert.equal(typeof pubkeyBuffer, "object") + }) + } + ) }) describe("#toLegacyAddress", (): void => { - fixtures.toLegacyAddress.forEach((fixture: any): void => { - it(`should create legacy address ${ - fixture.legacy + fixtures.toLegacyAddress.forEach( + (fixture: any): void => { + it(`should create legacy address ${ + fixture.legacy } from an ECPair`, (): void => { const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) const legacyAddress: string = bitbox.ECPair.toLegacyAddress(ecpair) assert.equal(legacyAddress, fixture.legacy) }) - }) + } + ) }) describe("#toCashAddress", (): void => { - fixtures.toCashAddress.forEach((fixture: any): void => { - it(`should create cash address ${ - fixture.cashAddr + fixtures.toCashAddress.forEach( + (fixture: any): void => { + it(`should create cash address ${ + fixture.cashAddr } from an ECPair`, (): void => { const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) const cashAddr: string = bitbox.ECPair.toCashAddress(ecpair) assert.equal(cashAddr, fixture.cashAddr) }) - }) + } + ) - fixtures.toCashAddress.forEach((fixture: any): void => { - it(`should create regtest cash address ${ - fixture.regtestAddr + fixtures.toCashAddress.forEach( + (fixture: any): void => { + it(`should create regtest cash address ${ + fixture.regtestAddr } from an ECPair`, (): void => { const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) const regtestAddr: string = bitbox.ECPair.toCashAddress(ecpair, true) assert.equal(regtestAddr, fixture.regtestAddr) }) - }) + } + ) }) describe("#sign", (): void => { - fixtures.sign.forEach((fixture: any): void => { - it(`should sign 32 byte hash buffer`, (): void => { - const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) - const buf: Buffer = Buffer.from(bitbox.Crypto.sha256(fixture.data)) - const sig: any = bitbox.ECPair.sign(ecpair, buf).toDER().toString('hex') - const schnorrSig: any = bitbox.ECPair.sign(ecpair, buf, 0x01).toDER().toString('hex') - assert.equal(sig, fixture.sig) - assert.equal(schnorrSig, fixture.schnorrSig) - }) - }) + fixtures.sign.forEach( + (fixture: any): void => { + it(`should sign 32 byte hash buffer`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + const buf: Buffer = Buffer.from(bitbox.Crypto.sha256(fixture.data)) + const sig: any = bitbox.ECPair.sign(ecpair, buf) + .toDER() + .toString("hex") + const schnorrSig: any = bitbox.ECPair.sign(ecpair, buf, 0x01) + .toDER() + .toString("hex") + assert.equal(sig, fixture.sig) + assert.equal(schnorrSig, fixture.schnorrSig) + }) + } + ) }) describe("#verify", (): void => { - fixtures.verify.forEach((fixture: any): void => { - it(`should verify signed 32 byte hash buffer`, (): void => { - const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF1) - const buf: Buffer = Buffer.from(bitbox.Crypto.sha256(fixture.data)) - const signature: Buffer = bitbox.ECPair.sign(ecpair, buf) - const verify: boolean = bitbox.ECPair.verify(ecpair, buf, signature) - assert.equal(verify, true) - }) - }) + fixtures.verify.forEach( + (fixture: any): void => { + it(`should verify signed 32 byte hash buffer`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF1) + const buf: Buffer = Buffer.from(bitbox.Crypto.sha256(fixture.data)) + const signature: Buffer = bitbox.ECPair.sign(ecpair, buf) + const verify: boolean = bitbox.ECPair.verify(ecpair, buf, signature) + assert.equal(verify, true) + }) + } + ) }) }) diff --git a/test/unit/fixtures/ECPair.json b/test/unit/fixtures/ECPair.json index e80e732b..757a2e35 100644 --- a/test/unit/fixtures/ECPair.json +++ b/test/unit/fixtures/ECPair.json @@ -55,7 +55,7 @@ "cashAddr": "bitcoincash:qqzdnxncgm3v247u5v0gqnglr2vpdhe0hu4wl0rmwt", "regtestAddr": "bchreg:qqzdnxncgm3v247u5v0gqnglr2vpdhe0hutqdfzl23" }, - { + { "pubkeyHex": "02d305772e0873fba6c1c7ff353ce374233316eb5820acd7ff3d7d9b82d514126b", "legacy": "1GpugKfjEycPRhk8A8ALPh1zAJmTQGdJPp", "cashAddr": "bitcoincash:qzkej6g2zr9c9k83chyqh5pllzv6pkw62ckf2m82ks", @@ -84,7 +84,7 @@ { "pubkeyHex": "02fb721b92025e775b1b84774e65d568d24645cb633275f5c26f5c3101b214a8fb" }, - { + { "pubkeyHex": "02d305772e0873fba6c1c7ff353ce374233316eb5820acd7ff3d7d9b82d514126b" }, { @@ -151,31 +151,31 @@ "privateKeyWIF": "L5PKiCuwwgmVN1GQNg8CdR6Rmg7tg1Npw7GyL5ULRPZ5EVPhtSrz", "data": "EARTH", "sig": "30440220446688759b77ffe7edbc5474e9c5ef4e5ff30a0e94ff00683805251a87ac5354022010f9ad79febed064f8ee08ba8828823791cc78f6015042bb32acb5e698b54e58", - "schnorrSig": "3046022100e2b185c3365cae52f994edb3b95545f7b4d755426ca19045646ae1d0d8d1e732022100c1aedcfd101ad87f8e356b252b3e145e52a17997c20a0bbcdb197be7520daeff" + "schnorrSig": "30450220184a9eea7d537fcb05dab738f2849cfee07cbc62ebc47d37456802aaa2c11ed8022100a51f6761a5faa59a5b3b758f5f4203a1f2fb3e1bd470620019feb894ac3db517" }, { "privateKeyWIF": "L1SD3NYLMcoqpUzn2hwJ7c1Vb4pPiqMToSMyGMTcbcvRBDh9U9SP", "data": "foobar", "sig": "304402200ef2cc2855b22d66a11b3b5a79d9c0cf343758643083f34c5d93c714552775ec022079fa60786fd721ab0de032341f6affe1c40706a4baf4f15d4fd5355dd6c348a5", - "schnorrSig": "3046022100b09f82b9654831f8c00664bd1da1579543b38e822b42064f9dfa7738dd13ead8022100b4caa9ad5391544025b15d7b3a3008c73d0c0bf6b672d7163fdfb14748b85db0" + "schnorrSig": "3045022014aa729fd5763ca0469ed580bcc7f36d85cb55b57d9fe10c2046f162a216b76f022100c25062e7fb18c45e43911fb66d17d51450813adf04d9e00be2903bf2de829fd8" }, { "privateKeyWIF": "L57L3Xtu3j1Z2B2RuQzc59JLQXJQ86TH8To1hM348URbC2iCZqLe", "data": "12334567890", "sig": "3045022100aacab383dde3afb59eb5b0b983037b1b3a85c542ec111f6d3c45b86606eb747202200454ec2396aec5b3ed88aa562c469f8716b043f7be38c0b6a50ef8d0ae9a558c", - "schnorrSig": "3046022100b01d6208e16a7da7f1b29e48991068b9ac7788ce1e07ebea037a179f2fbf3945022100bf92e9b00e68314347e6ce6f04a93caab9edfd41bbb4348ea8fd8870b028996b" + "schnorrSig": "3045022100ed4937f067e7861fb6b2e2ec23474836b8dea041d3da4ee85751356836def65d0220744c07eca5b26f0530b331da67a6a6e3533b3f4327851336f62253da84dd1031" }, { "privateKeyWIF": "KzTm29RBrSgUbMyeJL9sCNUnc7LQEuDeT6Upq1iUwx78qWRdRzyW", "data": "Be excellent to each other", "sig": "3045022100ead14e40a8ea1ce6eac0e2a0e9f582fb40b4ba4d90066f50d5058307cdf6e8c7022071dc89d5b34dab7078fef8c52beb4ed1d1a14a68c5525441f5a64304f81706b7", - "schnorrSig": "3046022100bda5c456700edbe8d6d9876267d94b119f7f877329e3b3f8fea71506a4334c42022100ad292f22aa4aa209b20f5c758dea325d4b920ef94919a0fd5c2fa77df3eec8c9" + "schnorrSig": "3045022100ee0e8fc04f5cf581d35f6ee4049a695b2553bd6a884b1ef26322cf71169e7c0302203fffdc6cde5ec951896a9d4bd2b2a01f29ec13ec1f3be47464593ce6dbdf7aea" }, { "privateKeyWIF": "L4BwXDmjzEyzKHbAfGruhieUDPs8KTx7DMgqPk4aF9GefzgqPENV", "data": "satoshi", "sig": "30450221008abcfc3dcb6418455d1a9a891d07f010d7884f8051b5be8992e2074035918051022069f4013f97febc79fc63cf125d7b2a1f37453c781bc09cf7410ff934e3502108", - "schnorrSig": "304602210085d4bfceb26cad676e7dcdb09cb7ef8e0132baba105fc276ff13b79ab54c103a0221009f2648abf52c04bbaf42c17c58df85e0025961c7542de20907f7526404e41806" + "schnorrSig": "3046022100a48001d46928e336b0d4f04747d21f717fd097fddb2e5bfd012a03cea9bc5eb20221009a1314e41785b58706241797bf64c6510367bafaeb1afb7460a28c8dccb617b2" } ], "verify": [ diff --git a/yarn.lock b/yarn.lock index 528bdc03..64d77317 100644 --- a/yarn.lock +++ b/yarn.lock @@ -794,9 +794,9 @@ bitcoincash-ops@Bitcoin-com/bitcoincash-ops#2.0.0: version "2.0.0" resolved "https://codeload.github.com/Bitcoin-com/bitcoincash-ops/tar.gz/6ab82cc7326c67236f3b2d9d0457258ac2ef48e3" -bitcoincashjs-lib@Bitcoin-com/bitcoincashjs-lib#v4.0.0: - version "4.0.0" - resolved "https://codeload.github.com/Bitcoin-com/bitcoincashjs-lib/tar.gz/3d360c780ec7df4a74aea93664c2b5ff8b08949a" +bitcoincashjs-lib@Bitcoin-com/bitcoincashjs-lib#v4.0.1: + version "4.0.1" + resolved "https://codeload.github.com/Bitcoin-com/bitcoincashjs-lib/tar.gz/28447b40a4ccd23913f7ade6589dc7214c99e60a" dependencies: bech32 "^1.1.2" bigi "^1.4.0" From d096563cc1ecf7766789e9f1f69b3fc066e252e7 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Sun, 2 Jun 2019 13:43:37 +0900 Subject: [PATCH 399/480] Bump axios dep. --- lib/Block.ts | 6 +++--- lib/Blockchain.ts | 10 +++++----- lib/RawTransactions.ts | 10 +++++----- lib/Transaction.ts | 4 ++-- lib/Util.ts | 4 ++-- package.json | 4 ++-- yarn.lock | 26 +++++++++++++++----------- 7 files changed, 34 insertions(+), 30 deletions(-) diff --git a/lib/Block.ts b/lib/Block.ts index 23f77ec6..23ad8816 100644 --- a/lib/Block.ts +++ b/lib/Block.ts @@ -1,4 +1,4 @@ -import axios, { AxiosResponse } from "axios" +import axios, { AxiosRequestConfig, AxiosResponse } from "axios" import { BlockDetailsResult } from "bitcoin-com-rest" import { resturl } from "./BITBOX" @@ -21,7 +21,7 @@ export class Block { // Array of blocks. } else if (Array.isArray(id)) { - const options = { + const options: AxiosRequestConfig = { method: "POST", url: `${this.restURL}block/detailsByHeight`, data: { @@ -53,7 +53,7 @@ export class Block { // Array of hashes. } else if (Array.isArray(hash)) { - const options = { + const options: AxiosRequestConfig = { method: "POST", url: `${this.restURL}block/detailsByHash`, data: { diff --git a/lib/Blockchain.ts b/lib/Blockchain.ts index 34e334cc..7c3cdcb3 100644 --- a/lib/Blockchain.ts +++ b/lib/Blockchain.ts @@ -3,7 +3,7 @@ - Add blockhash functionality back into getTxOutProof */ -import axios, { AxiosResponse } from "axios" +import axios, { AxiosRequestConfig, AxiosResponse } from "axios" import { BlockchainInfoResult, BlockDetailsResult, @@ -101,7 +101,7 @@ export class Blockchain { // Handle array of hashes. } else if (Array.isArray(hash)) { - const options = { + const options: AxiosRequestConfig = { method: "POST", url: `${this.restURL}blockchain/getBlockHeader`, data: { @@ -198,7 +198,7 @@ export class Blockchain { return response.data } else if (Array.isArray(txid)) { - const options = { + const options: AxiosRequestConfig = { method: "POST", url: `${this.restURL}blockchain/getMempoolEntry`, data: { @@ -275,7 +275,7 @@ export class Blockchain { // Array of txids. } else if (Array.isArray(txids)) { - const options = { + const options: AxiosRequestConfig = { method: "POST", url: `${this.restURL}blockchain/getTxOutProof`, data: { @@ -348,7 +348,7 @@ export class Blockchain { // Array of hashes. } else if (Array.isArray(proof)) { - const options = { + const options: AxiosRequestConfig = { method: "POST", url: `${this.restURL}blockchain/verifyTxOutProof`, data: { diff --git a/lib/RawTransactions.ts b/lib/RawTransactions.ts index 8f29ae56..dd55d88f 100644 --- a/lib/RawTransactions.ts +++ b/lib/RawTransactions.ts @@ -1,4 +1,4 @@ -import axios, { AxiosResponse } from "axios" +import axios, { AxiosRequestConfig, AxiosResponse } from "axios" import { VerboseRawTransactionResult } from "bitcoin-com-rest" import { resturl } from "./BITBOX" @@ -22,7 +22,7 @@ export class RawTransactions { // Array of hexes } else if (Array.isArray(hex)) { - const options = { + const options: AxiosRequestConfig = { method: "POST", url: `${this.restURL}rawtransactions/decodeRawTransaction`, data: { @@ -52,7 +52,7 @@ export class RawTransactions { return response.data } else if (Array.isArray(script)) { - const options = { + const options: AxiosRequestConfig = { method: "POST", url: `${this.restURL}rawtransactions/decodeScript`, data: { @@ -90,7 +90,7 @@ export class RawTransactions { return response.data } else if (Array.isArray(txid)) { - const options = { + const options: AxiosRequestConfig = { method: "POST", url: `${this.restURL}rawtransactions/getRawTransaction`, data: { @@ -133,7 +133,7 @@ export class RawTransactions { // Array input } else if (Array.isArray(hex)) { - const options = { + const options: AxiosRequestConfig = { method: "POST", url: `${this.restURL}rawtransactions/sendRawTransaction`, data: { diff --git a/lib/Transaction.ts b/lib/Transaction.ts index 8743c18e..6d641715 100644 --- a/lib/Transaction.ts +++ b/lib/Transaction.ts @@ -1,4 +1,4 @@ -import axios, { AxiosResponse } from "axios" +import axios, { AxiosRequestConfig, AxiosResponse } from "axios" import { TxnDetailsResult } from "bitcoin-com-rest" import { resturl } from "./BITBOX" @@ -21,7 +21,7 @@ export class Transaction { // Array of addresses } else if (Array.isArray(txid)) { - const options = { + const options: AxiosRequestConfig = { method: "POST", url: `${this.restURL}transaction/details`, data: { diff --git a/lib/Util.ts b/lib/Util.ts index ff91f623..398e6b8a 100644 --- a/lib/Util.ts +++ b/lib/Util.ts @@ -1,4 +1,4 @@ -import axios, { AxiosResponse } from "axios" +import axios, { AxiosRequestConfig, AxiosResponse } from "axios" import { resturl } from "./BITBOX" export interface AddressDetails { @@ -32,7 +32,7 @@ export class Util { // Array of blocks. } else if (Array.isArray(address)) { - const options = { + const options: AxiosRequestConfig = { method: "POST", url: `${this.restURL}util/validateAddress`, data: { diff --git a/package.json b/package.json index ed6a2b5e..2e9be2db 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "8.3.1", + "version": "8.3.2", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ @@ -36,7 +36,7 @@ "@types/sinon": "^7.0.11", "@types/wif": "^2.0.1", "assert": "^1.4.1", - "axios": "0.18.0", + "axios": "0.19.0", "bc-bip68": "^1.0.5", "bch-wallet-bridge.js": "github:web3bch/bch-wallet-bridge.js#master", "bigi": "^1.4.2", diff --git a/yarn.lock b/yarn.lock index 64d77317..f789dd56 100644 --- a/yarn.lock +++ b/yarn.lock @@ -614,12 +614,12 @@ aws4@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" -axios@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.0.tgz#32d53e4851efdc0a11993b6cd000789d70c05102" +axios@0.19.0: + version "0.19.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.0.tgz#8e09bff3d9122e133f7b8101c8fbdd00ed3d2ab8" dependencies: - follow-redirects "^1.3.0" - is-buffer "^1.1.5" + follow-redirects "1.5.10" + is-buffer "^2.0.2" babel-code-frame@^6.22.0: version "6.26.0" @@ -1701,7 +1701,7 @@ debug-log@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" -debug@3.1.0, debug@~3.1.0: +debug@3.1.0, debug@=3.1.0, debug@~3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" dependencies: @@ -1713,7 +1713,7 @@ debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: dependencies: ms "2.0.0" -debug@^3.1.0, debug@^3.2.6: +debug@^3.1.0: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" dependencies: @@ -2573,11 +2573,11 @@ flush-write-stream@^1.0.0: inherits "^2.0.3" readable-stream "^2.3.6" -follow-redirects@^1.3.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.7.0.tgz#489ebc198dc0e7f64167bd23b03c4c19b5784c76" +follow-redirects@1.5.10: + version "1.5.10" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" dependencies: - debug "^3.2.6" + debug "=3.1.0" for-each@~0.3.3: version "0.3.3" @@ -3218,6 +3218,10 @@ is-buffer@^1.1.0, is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" +is-buffer@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725" + is-callable@^1.1.3, is-callable@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" From 333f0377817e956b079282fcc57e7ad495fd81d1 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Mon, 3 Jun 2019 14:20:12 -0700 Subject: [PATCH 400/480] Began mocking unit tests for Address.details --- test/unit/Address.ts | 710 +++++++++++++++-------------- test/unit/fixtures/address-mock.js | 26 ++ 2 files changed, 385 insertions(+), 351 deletions(-) create mode 100644 test/unit/fixtures/address-mock.js diff --git a/test/unit/Address.ts b/test/unit/Address.ts index 6d67759c..e89fb98d 100644 --- a/test/unit/Address.ts +++ b/test/unit/Address.ts @@ -8,6 +8,8 @@ import * as chai from "chai" import { Address } from "../../lib/Address" import { BITBOX, resturl } from "../../lib/BITBOX" +import axios from "axios" + // consts const bitbox: BITBOX = new BITBOX() const assert: Chai.AssertStatic = chai.assert @@ -15,6 +17,8 @@ const assert: Chai.AssertStatic = chai.assert // TODO: port from require to import syntax const fixtures = require("./fixtures/Address.json") const Bitcoin = require("bitcoincashjs-lib") +const sinon = require("sinon") +const addressMock = require("./fixtures/address-mock.js") function flatten(arrays: any) { return [].concat.apply([], arrays) @@ -101,6 +105,7 @@ util.inspect.defaultOptions = { } describe("#Address", (): void => { +/* describe("#AddressConstructor", (): void => { it("should create instance of Address", (): void => { const address: Address = new Address() @@ -1012,7 +1017,7 @@ describe("#Address", (): void => { it(`should generate public external change address ${ XPUBS[0].addresses[0] } for ${XPUBS[0].xpub}`, (): void => { - let address: string = XPUBS[0].addresses[0] + const address: string = XPUBS[0].addresses[0] assert.equal(bitbox.Address.fromXPub(XPUBS[0].xpub), address) }) }) @@ -1038,7 +1043,7 @@ describe("#Address", (): void => { it(`should generate hardened address ${XPRIVS[0].addresses[0]} for ${ XPRIVS[0].xpriv }`, (): void => { - let address: string = XPRIVS[0].addresses[0] + const address: string = XPRIVS[0].addresses[0] assert.equal(bitbox.Address.fromXPriv(XPRIVS[0].xpriv), address) }) }) @@ -1079,135 +1084,65 @@ describe("#Address", (): void => { } ) }) +*/ + describe("#details", () => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it(`should GET address details for a single address`, async (): Promise< + any + > => { + + // Mock out data for unit test, to prevent live network call. + const data: any = addressMock.details + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + const addr: string = + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + + const result: + | AddressDetailsResult + | AddressDetailsResult[] = await bitbox.Address.details(addr) + //console.log(`result: ${JSON.stringify(result,null,2)}`) + + assert.hasAllKeys(result, [ + "balance", + "balanceSat", + "totalReceived", + "totalReceivedSat", + "totalSent", + "totalSentSat", + "unconfirmedBalance", + "unconfirmedBalanceSat", + "unconfirmedTxApperances", + "txApperances", + "transactions", + "legacyAddress", + "cashAddress", + "slpAddress", + "currentPage", + "pagesTotal" + ]) + if (!Array.isArray(result)) assert.isArray(result.transactions) + }) - // describe("#details", () => { - // let sandbox: any - // beforeEach(() => (sandbox = sinon.sandbox.create())) - // afterEach(() => sandbox.restore()) - - // it("should get details", done => { - // const data: any = { - // legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", - // cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", - // balance: 300.0828874, - // balanceSat: 30008288740, - // totalReceived: 12945.45174649, - // totalReceivedSat: 1294545174649, - // totalSent: 12645.36885909, - // totalSentSat: 1264536885909, - // unconfirmedBalance: 0, - // unconfirmedBalanceSat: 0, - // unconfirmedTxApperances: 0, - // txApperances: 1042, - // transactions: [ - // "b29425a876f62e114508e67e66b5eb1ab0d320d7c9a57fb0ece086a36e2b7309" - // ] - // } - - // const resolved: any = new Promise(r => r({ data: data })) - // sandbox.stub(axios, "get").returns(resolved) - - // bitbox.Address.details( - // "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - // ) - // .then((result: any) => { - // assert.deepEqual(data, result) - // }) - // .then(done, done) - // }) - // }) - - // describe("#utxo", () => { - // let sandbox: any - // beforeEach(() => (sandbox = sinon.sandbox.create())) - // afterEach(() => sandbox.restore()) - - // it("should get utxo", done => { - // const data = [ - // { - // legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", - // cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", - // txid: - // "6f56254424378d6914cebd097579c70664843e5876ca86f0bf412ba7f3928326", - // vout: 0, - // scriptPubKey: "a91479cb06a5986baf588237de9b7fb1a8f68c35b76687", - // amount: 12.5002911, - // satoshis: 1250029110, - // height: 528745, - // confirmations: 17 - // }, - // { - // legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", - // cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", - // txid: - // "b29425a876f62e114508e67e66b5eb1ab0d320d7c9a57fb0ece086a36e2b7309", - // vout: 0, - // scriptPubKey: "a91479cb06a5986baf588237de9b7fb1a8f68c35b76687", - // amount: 12.50069247, - // satoshis: 1250069247, - // height: 528744, - // confirmations: 18 - // } - // ] - // const resolved: any = new Promise(r => r({ data: data })) - // sandbox.stub(axios, "get").returns(resolved) - - // bitbox.Address.utxo( - // "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l" - // ) - // .then((result: any) => { - // assert.deepEqual(data, result) - // }) - // .then(done, done) - // }) - // }) - - // describe("#unconfirmed", () => { - // let sandbox: any - // beforeEach(() => (sandbox = sinon.sandbox.create())) - // afterEach(() => sandbox.restore()) - - // it("should get unconfirmed transactions", done => { - // const data = [ - // { - // txid: - // "e0aadd861a06993e39af932bb0b9ad69e7b37ef5843a13c6724789e1c94f3513", - // vout: 1, - // scriptPubKey: "76a914a0f531f4ff810a415580c12e54a7072946bb927e88ac", - // amount: 0.00008273, - // satoshis: 8273, - // confirmations: 0, - // ts: 1526680569, - // legacyAddress: "1Fg4r9iDrEkCcDmHTy2T79EusNfhyQpu7W", - // cashAddress: "bitcoincash:qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c" - // } - // ] - // const resolved: any = new Promise(r => r({ data: data })) - // sandbox.stub(axios, "get").returns(resolved) - - // bitbox.Address.unconfirmed( - // "bitcoincash:qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c" - // ) - // .then((result: any) => { - // assert.deepEqual(data, result) - // }) - // .then(done, done) - // }) - // }) + it(`should GET address details for an array of addresses`, async (): Promise< + any + > => { + const addr: string[] = [ + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" + ] - describe(`#utxo`, (): void => { - describe(`#details`, (): void => { - it(`should GET address details for a single address`, async (): Promise< - any - > => { - const addr: string = - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - - const result: - | AddressDetailsResult - | AddressDetailsResult[] = await bitbox.Address.details(addr) + const result: + | AddressDetailsResult + | AddressDetailsResult[] = await bitbox.Address.details(addr) - assert.hasAllKeys(result, [ + assert.isArray(result) + if (Array.isArray(result)) { + assert.hasAllKeys(result[0], [ "balance", "balanceSat", "totalReceived", @@ -1225,77 +1160,154 @@ describe("#Address", (): void => { "currentPage", "pagesTotal" ]) - if (!Array.isArray(result)) { - assert.isArray(result.transactions) - } - }) + assert.isArray(result[0].transactions) + } + }) - it(`should GET address details for an array of addresses`, async (): Promise< - any - > => { - const addr: string[] = [ - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", - "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" + it(`should throw an error for improper input`, async () => { + try { + const addr: any = 12345 + + await bitbox.Address.details(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } + }) + + it(`should throw error on array size rate limit`, async () => { + try { + const addr = [] + for (let i = 0; i < 25; i++) + addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") + + const result = await bitbox.Address.details(addr) + + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + + it("should get details", done => { + const data: any = { + legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", + cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", + balance: 300.0828874, + balanceSat: 30008288740, + totalReceived: 12945.45174649, + totalReceivedSat: 1294545174649, + totalSent: 12645.36885909, + totalSentSat: 1264536885909, + unconfirmedBalance: 0, + unconfirmedBalanceSat: 0, + unconfirmedTxApperances: 0, + txApperances: 1042, + transactions: [ + "b29425a876f62e114508e67e66b5eb1ab0d320d7c9a57fb0ece086a36e2b7309" ] + } - const result: - | AddressDetailsResult - | AddressDetailsResult[] = await bitbox.Address.details(addr) + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) - assert.isArray(result) - if (Array.isArray(result)) { - assert.hasAllKeys(result[0], [ - "balance", - "balanceSat", - "totalReceived", - "totalReceivedSat", - "totalSent", - "totalSentSat", - "unconfirmedBalance", - "unconfirmedBalanceSat", - "unconfirmedTxApperances", - "txApperances", - "transactions", - "legacyAddress", - "cashAddress", - "slpAddress", - "currentPage", - "pagesTotal" - ]) - assert.isArray(result[0].transactions) + bitbox.Address.details( + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + ) + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#utxo", () => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get utxo", done => { + const data = [ + { + legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", + cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", + txid: + "6f56254424378d6914cebd097579c70664843e5876ca86f0bf412ba7f3928326", + vout: 0, + scriptPubKey: "a91479cb06a5986baf588237de9b7fb1a8f68c35b76687", + amount: 12.5002911, + satoshis: 1250029110, + height: 528745, + confirmations: 17 + }, + { + legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", + cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", + txid: + "b29425a876f62e114508e67e66b5eb1ab0d320d7c9a57fb0ece086a36e2b7309", + vout: 0, + scriptPubKey: "a91479cb06a5986baf588237de9b7fb1a8f68c35b76687", + amount: 12.50069247, + satoshis: 1250069247, + height: 528744, + confirmations: 18 } - }) + ] + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) - it(`should throw an error for improper input`, async () => { - try { - const addr: any = 12345 + bitbox.Address.utxo( + "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l" + ) + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) - await bitbox.Address.details(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input address must be a string or array of strings` - ) + describe("#unconfirmed", () => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get unconfirmed transactions", done => { + const data = [ + { + txid: + "e0aadd861a06993e39af932bb0b9ad69e7b37ef5843a13c6724789e1c94f3513", + vout: 1, + scriptPubKey: "76a914a0f531f4ff810a415580c12e54a7072946bb927e88ac", + amount: 0.00008273, + satoshis: 8273, + confirmations: 0, + ts: 1526680569, + legacyAddress: "1Fg4r9iDrEkCcDmHTy2T79EusNfhyQpu7W", + cashAddress: "bitcoincash:qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c" } - }) - - it(`should throw error on array size rate limit`, async () => { - try { - const addr = [] - for (let i = 0; i < 25; i++) - addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") + ] + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) - const result = await bitbox.Address.details(addr) + bitbox.Address.unconfirmed( + "bitcoincash:qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c" + ) + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + /* + describe(`#utxo`, (): void => { + describe(`#details`, (): void => { - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) it(`should GET utxos for a single address`, async () => { const addr: string = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" @@ -1390,191 +1402,187 @@ describe("#Address", (): void => { } }) }) +*/ + describe(`#unconfirmed`, (): void => { + it(`should GET unconfirmed details on a single address`, async (): Promise< + any + > => { + const addr: string = + "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" + + const result: + | AddressUnconfirmedResult + | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed(addr) + + assert.hasAllKeys(result, [ + "utxos", + "legacyAddress", + "cashAddress", + "slpAddress", + "scriptPubKey" + ]) + if (!Array.isArray(result)) assert.isArray(result.utxos) + }) - describe(`#unconfirmed`, (): void => { - it(`should GET unconfirmed details on a single address`, async (): Promise< - any - > => { - const addr: string = - "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" + it(`should GET unconfirmed details on multiple addresses`, async (): Promise< + any + > => { + const addr = [ + "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", + "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" + ] - const result: - | AddressUnconfirmedResult - | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed(addr) + const result: + | AddressUnconfirmedResult + | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed(addr) - assert.hasAllKeys(result, [ + assert.isArray(result) + if (Array.isArray(result)) { + assert.hasAllKeys(result[0], [ "utxos", "legacyAddress", "cashAddress", "slpAddress", "scriptPubKey" ]) - if (!Array.isArray(result)) { - assert.isArray(result.utxos) - } - }) + assert.isArray(result[0].utxos) + } + }) - it(`should GET unconfirmed details on multiple addresses`, async (): Promise< - any - > => { - const addr = [ - "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", - "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" - ] + it(`should throw an error for improper input`, async () => { + try { + const addr: any = 12345 + + await bitbox.Address.unconfirmed(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } + }) + + it(`should throw error on array size rate limit`, async (): Promise< + any + > => { + try { + const addr: string[] = [] + for (let i: number = 0; i < 25; i++) + addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") const result: | AddressUnconfirmedResult | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed(addr) - assert.isArray(result) - if (Array.isArray(result)) { - assert.hasAllKeys(result[0], [ - "utxos", - "legacyAddress", - "cashAddress", - "slpAddress", - "scriptPubKey" - ]) - assert.isArray(result[0].utxos) - } - }) - - it(`should throw an error for improper input`, async () => { - try { - const addr: any = 12345 - - await bitbox.Address.unconfirmed(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input address must be a string or array of strings` - ) - } - }) - - it(`should throw error on array size rate limit`, async (): Promise< - any - > => { - try { - const addr: string[] = [] - for (let i: number = 0; i < 25; i++) - addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) - const result: - | AddressUnconfirmedResult - | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed( - addr - ) + describe(`#transactions`, (): void => { + it(`should GET transactions for a single address`, async (): Promise< + any + > => { + const addr: string = + "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" + const result: any = await bitbox.Address.transactions(addr) + + assert.hasAllKeys(result, [ + "txs", + "pagesTotal", + "cashAddress", + "currentPage", + "legacyAddress" + ]) + assert.isArray(result.txs) + assert.hasAnyKeys(result.txs[0], [ + "txid", + "version", + "locktime", + "vin", + "vout", + "confirmations", + "time", + "blocktime", + "valueOut", + "size", + "valueIn", + "fees" + ]) + }) - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) + it(`should get transactions on multiple addresses`, async (): Promise< + any + > => { + const addr: string[] = [ + "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", + "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" + ] + const result: any = await bitbox.Address.transactions(addr) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "txs", + "pagesTotal", + "cashAddress", + "currentPage", + "legacyAddress" + ]) + assert.isArray(result[0].txs) + assert.hasAnyKeys(result[0].txs[0], [ + "txid", + "version", + "locktime", + "vin", + "vout", + "confirmations", + "time", + "blocktime", + "valueOut", + "size", + "valueIn", + "fees" + ]) }) - describe(`#transactions`, (): void => { - it(`should GET transactions for a single address`, async (): Promise< - any - > => { - const addr: string = - "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" - const result: any = await bitbox.Address.transactions(addr) + it(`should throw an error for improper input`, async (): Promise => { + try { + const addr: any = 12345 + + await bitbox.Address.transactions(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } + }) - assert.hasAllKeys(result, [ - "txs", - "pagesTotal", - "cashAddress", - "currentPage", - "legacyAddress" - ]) - assert.isArray(result.txs) - assert.hasAnyKeys(result.txs[0], [ - "txid", - "version", - "locktime", - "vin", - "vout", - "confirmations", - "time", - "blocktime", - "valueOut", - "size", - "valueIn", - "fees" - ]) - }) + it(`should throw error on array size rate limit`, async (): Promise< + any + > => { + try { + const addr: string[] = [] + for (let i: number = 0; i < 25; i++) + addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - it(`should get transactions on multiple addresses`, async (): Promise< - any - > => { - const addr: string[] = [ - "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", - "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" - ] const result: any = await bitbox.Address.transactions(addr) - assert.isArray(result) - assert.hasAllKeys(result[0], [ - "txs", - "pagesTotal", - "cashAddress", - "currentPage", - "legacyAddress" - ]) - assert.isArray(result[0].txs) - assert.hasAnyKeys(result[0].txs[0], [ - "txid", - "version", - "locktime", - "vin", - "vout", - "confirmations", - "time", - "blocktime", - "valueOut", - "size", - "valueIn", - "fees" - ]) - }) - - it(`should throw an error for improper input`, async (): Promise => { - try { - const addr: any = 12345 - - await bitbox.Address.transactions(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input address must be a string or array of strings` - ) - } - }) - - it(`should throw error on array size rate limit`, async (): Promise< - any - > => { - try { - const addr: string[] = [] - for (let i: number = 0; i < 25; i++) - addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - - const result: any = await bitbox.Address.transactions(addr) - - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } }) }) }) +// }) diff --git a/test/unit/fixtures/address-mock.js b/test/unit/fixtures/address-mock.js new file mode 100644 index 00000000..6b2a3c0e --- /dev/null +++ b/test/unit/fixtures/address-mock.js @@ -0,0 +1,26 @@ +/* + Mock data used for unit testing. +*/ + +module.exports = { + details: { + legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", + cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", + balance: 300.0828874, + balanceSat: 30008288740, + totalReceived: 12945.45174649, + totalReceivedSat: 1294545174649, + totalSent: 12645.36885909, + totalSentSat: 1264536885909, + unconfirmedBalance: 0, + unconfirmedBalanceSat: 0, + unconfirmedTxApperances: 0, + txApperances: 1042, + transactions: [ + "b29425a876f62e114508e67e66b5eb1ab0d320d7c9a57fb0ece086a36e2b7309" + ], + currentPage: 0, + pagesTotal: 1, + slpAddress: "simpleledger:qrdka2205f4hyukutc2g0s6lykperc8nsuc8pkcp7h" + } +} From e594ab4be633235b2680cdde4bb0fddadd36a40f Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 4 Jun 2019 10:42:38 -0700 Subject: [PATCH 401/480] Completed unit tests for Address.details --- test/unit/Address.ts | 68 +++++++++++--------------------------------- 1 file changed, 17 insertions(+), 51 deletions(-) diff --git a/test/unit/Address.ts b/test/unit/Address.ts index e89fb98d..e5838cf3 100644 --- a/test/unit/Address.ts +++ b/test/unit/Address.ts @@ -105,7 +105,7 @@ util.inspect.defaultOptions = { } describe("#Address", (): void => { -/* + /* describe("#AddressConstructor", (): void => { it("should create instance of Address", (): void => { const address: Address = new Address() @@ -1093,7 +1093,6 @@ describe("#Address", (): void => { it(`should GET address details for a single address`, async (): Promise< any > => { - // Mock out data for unit test, to prevent live network call. const data: any = addressMock.details const resolved: any = new Promise(r => r({ data: data })) @@ -1128,7 +1127,7 @@ describe("#Address", (): void => { if (!Array.isArray(result)) assert.isArray(result.transactions) }) - it(`should GET address details for an array of addresses`, async (): Promise< + it(`should POST address details for an array of addresses`, async (): Promise< any > => { const addr: string[] = [ @@ -1136,9 +1135,15 @@ describe("#Address", (): void => { "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" ] + // Mock out data for unit test, to prevent live network call. + const data: any = [addressMock.details, addressMock.details] + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "post").returns(resolved) + const result: | AddressDetailsResult | AddressDetailsResult[] = await bitbox.Address.details(addr) + //console.log(`result: ${JSON.stringify(result,null,2)}`) assert.isArray(result) if (Array.isArray(result)) { @@ -1164,8 +1169,16 @@ describe("#Address", (): void => { } }) - it(`should throw an error for improper input`, async () => { + it(`should pass error from server to user`, async () => { try { + // Mock out data for unit test, to prevent live network call. + sandbox + .stub(axios, "get") + .throws( + "error", + "Input address must be a string or array of strings." + ) + const addr: any = 12345 await bitbox.Address.details(addr) @@ -1178,53 +1191,6 @@ describe("#Address", (): void => { ) } }) - - it(`should throw error on array size rate limit`, async () => { - try { - const addr = [] - for (let i = 0; i < 25; i++) - addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - - const result = await bitbox.Address.details(addr) - - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - - it("should get details", done => { - const data: any = { - legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", - cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", - balance: 300.0828874, - balanceSat: 30008288740, - totalReceived: 12945.45174649, - totalReceivedSat: 1294545174649, - totalSent: 12645.36885909, - totalSentSat: 1264536885909, - unconfirmedBalance: 0, - unconfirmedBalanceSat: 0, - unconfirmedTxApperances: 0, - txApperances: 1042, - transactions: [ - "b29425a876f62e114508e67e66b5eb1ab0d320d7c9a57fb0ece086a36e2b7309" - ] - } - - const resolved: any = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Address.details( - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - ) - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) }) describe("#utxo", () => { From 60d18a022cd04b4b6e2d185f90dd1242d4f699ea Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 4 Jun 2019 11:10:43 -0700 Subject: [PATCH 402/480] Added unit tests for Address.utxo --- lib/Address.ts | 24 +++++------ test/unit/Address.ts | 97 ++++++++++++++++++++++++++++---------------- 2 files changed, 75 insertions(+), 46 deletions(-) diff --git a/lib/Address.ts b/lib/Address.ts index ca19b449..baef0469 100644 --- a/lib/Address.ts +++ b/lib/Address.ts @@ -263,14 +263,14 @@ export class Address { // Handle array of addresses. } else if (Array.isArray(address)) { - const options: any = { - method: "POST", - url: `${this.restURL}address/details`, - data: { + + // Dev note: must use axios.post for unit test stubbing. + const response: AxiosResponse = await axios.post( + `${this.restURL}address/details`, + { addresses: address } - } - const response: AxiosResponse = await axios(options) + ) return response.data } @@ -293,14 +293,14 @@ export class Address { ) return response.data } else if (Array.isArray(address)) { - const options: any = { - method: "POST", - url: `${this.restURL}address/utxo`, - data: { + + // Dev note: must use axios.post for unit test stubbing. + const response: AxiosResponse = await axios.post( + `${this.restURL}address/utxo`, + { addresses: address } - } - const response: AxiosResponse = await axios(options) + ) return response.data } diff --git a/test/unit/Address.ts b/test/unit/Address.ts index e5838cf3..0662dcf9 100644 --- a/test/unit/Address.ts +++ b/test/unit/Address.ts @@ -1198,43 +1198,72 @@ describe("#Address", (): void => { beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) - it("should get utxo", done => { - const data = [ - { - legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", - cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", - txid: - "6f56254424378d6914cebd097579c70664843e5876ca86f0bf412ba7f3928326", - vout: 0, - scriptPubKey: "a91479cb06a5986baf588237de9b7fb1a8f68c35b76687", - amount: 12.5002911, - satoshis: 1250029110, - height: 528745, - confirmations: 17 - }, - { - legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", - cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", - txid: - "b29425a876f62e114508e67e66b5eb1ab0d320d7c9a57fb0ece086a36e2b7309", - vout: 0, - scriptPubKey: "a91479cb06a5986baf588237de9b7fb1a8f68c35b76687", - amount: 12.50069247, - satoshis: 1250069247, - height: 528744, - confirmations: 18 - } - ] + it(`should GET utxo details for a single address`, async (): Promise< + any + > => { + // Mock out data for unit test, to prevent live network call. + const data: any = addressMock.utxos1 const resolved: any = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - bitbox.Address.utxo( - "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l" - ) - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) + const addr: string = + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + + const result: any = await bitbox.Address.utxo(addr) + //console.log(`result: ${JSON.stringify(result,null,2)}`) + + assert.deepEqual(addressMock.utxos1, result) + }) + + it(`should POST address details for an array of addresses`, async (): Promise< + any + > => { + const addr: string[] = [ + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" + ] + + // Mock out data for unit test, to prevent live network call. + const data: any = [addressMock.utxos1, addressMock.utxos2] + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "post").returns(resolved) + + const result: any = await bitbox.Address.utxo(addr) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "utxos", + "legacyAddress", + "cashAddress", + "slpAddress", + "scriptPubKey" + ]) + assert.isArray(result[0].utxos) + }) + + it(`should pass error from server to user`, async () => { + try { + + // Mock out data for unit test, to prevent live network call. + sandbox + .stub(axios, "get") + .throws( + "error", + "Input address must be a string or array of strings." + ) + + const addr: any = 12345 + + await bitbox.Address.utxo(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } }) }) From 97e882732b2cdc815dc7c96f1c084ba0ed030c14 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 4 Jun 2019 11:29:16 -0700 Subject: [PATCH 403/480] Added unit tests for unconfirmed utxos --- lib/Address.ts | 12 ++-- test/unit/Address.ts | 161 +++++++++++++++---------------------------- 2 files changed, 61 insertions(+), 112 deletions(-) diff --git a/lib/Address.ts b/lib/Address.ts index baef0469..f41e207e 100644 --- a/lib/Address.ts +++ b/lib/Address.ts @@ -325,14 +325,14 @@ export class Address { // Handle an array of addresses } else if (Array.isArray(address)) { - const options: any = { - method: "POST", - url: `${this.restURL}address/unconfirmed`, - data: { + + // Dev note: must use axios.post for unit test stubbing. + const response: AxiosResponse = await axios.post( + `${this.restURL}address/unconfirmed`, + { addresses: address } - } - const response: AxiosResponse = await axios(options) + ) return response.data } diff --git a/test/unit/Address.ts b/test/unit/Address.ts index 0662dcf9..bc032e3f 100644 --- a/test/unit/Address.ts +++ b/test/unit/Address.ts @@ -1215,7 +1215,7 @@ describe("#Address", (): void => { assert.deepEqual(addressMock.utxos1, result) }) - it(`should POST address details for an array of addresses`, async (): Promise< + it(`should POST utxo details for an array of addresses`, async (): Promise< any > => { const addr: string[] = [ @@ -1244,7 +1244,6 @@ describe("#Address", (): void => { it(`should pass error from server to user`, async () => { try { - // Mock out data for unit test, to prevent live network call. sandbox .stub(axios, "get") @@ -1272,31 +1271,63 @@ describe("#Address", (): void => { beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) - it("should get unconfirmed transactions", done => { - const data = [ - { - txid: - "e0aadd861a06993e39af932bb0b9ad69e7b37ef5843a13c6724789e1c94f3513", - vout: 1, - scriptPubKey: "76a914a0f531f4ff810a415580c12e54a7072946bb927e88ac", - amount: 0.00008273, - satoshis: 8273, - confirmations: 0, - ts: 1526680569, - legacyAddress: "1Fg4r9iDrEkCcDmHTy2T79EusNfhyQpu7W", - cashAddress: "bitcoincash:qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c" - } - ] + it(`should GET unconfirmed utxos for a single address`, async (): Promise< + any + > => { + // Mock out data for unit test, to prevent live network call. + const data: any = addressMock.unconfirmed1 const resolved: any = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - bitbox.Address.unconfirmed( - "bitcoincash:qzs02v05l7qs5s24srqju498qu55dwuj0cx5ehjm2c" - ) - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) + const addr: string = + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + + const result: any = await bitbox.Address.unconfirmed(addr) + //console.log(`result: ${JSON.stringify(result,null,2)}`) + + assert.deepEqual(addressMock.unconfirmed1, result) + }) + + it(`should POST unconfirmed details for an array of addresses`, async (): Promise< + any + > => { + const addr: string[] = [ + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" + ] + + // Mock out data for unit test, to prevent live network call. + const data: any = [addressMock.unconfirmed1, addressMock.unconfirmed2] + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "post").returns(resolved) + + const result: any = await bitbox.Address.unconfirmed(addr) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.deepEqual(data, result) + }) + + it(`should pass error from server to user`, async () => { + try { + // Mock out data for unit test, to prevent live network call. + sandbox + .stub(axios, "get") + .throws( + "error", + "Input address must be a string or array of strings." + ) + + const addr: any = 12345 + + await bitbox.Address.unconfirmed(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } }) }) /* @@ -1398,88 +1429,6 @@ describe("#Address", (): void => { }) }) */ - describe(`#unconfirmed`, (): void => { - it(`should GET unconfirmed details on a single address`, async (): Promise< - any - > => { - const addr: string = - "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" - - const result: - | AddressUnconfirmedResult - | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed(addr) - - assert.hasAllKeys(result, [ - "utxos", - "legacyAddress", - "cashAddress", - "slpAddress", - "scriptPubKey" - ]) - if (!Array.isArray(result)) assert.isArray(result.utxos) - }) - - it(`should GET unconfirmed details on multiple addresses`, async (): Promise< - any - > => { - const addr = [ - "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", - "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" - ] - - const result: - | AddressUnconfirmedResult - | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed(addr) - - assert.isArray(result) - if (Array.isArray(result)) { - assert.hasAllKeys(result[0], [ - "utxos", - "legacyAddress", - "cashAddress", - "slpAddress", - "scriptPubKey" - ]) - assert.isArray(result[0].utxos) - } - }) - - it(`should throw an error for improper input`, async () => { - try { - const addr: any = 12345 - - await bitbox.Address.unconfirmed(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input address must be a string or array of strings` - ) - } - }) - - it(`should throw error on array size rate limit`, async (): Promise< - any - > => { - try { - const addr: string[] = [] - for (let i: number = 0; i < 25; i++) - addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - - const result: - | AddressUnconfirmedResult - | AddressUnconfirmedResult[] = await bitbox.Address.unconfirmed(addr) - - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - }) - describe(`#transactions`, (): void => { it(`should GET transactions for a single address`, async (): Promise< any From 38e560bdfb3fa12b451d6df0825c0b689444c5ad Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 4 Jun 2019 11:45:03 -0700 Subject: [PATCH 404/480] Added unit tests for Address.transactions --- lib/Address.ts | 12 +-- test/unit/Address.ts | 192 +++++++------------------------------------ 2 files changed, 34 insertions(+), 170 deletions(-) diff --git a/lib/Address.ts b/lib/Address.ts index f41e207e..448ccdf4 100644 --- a/lib/Address.ts +++ b/lib/Address.ts @@ -355,14 +355,14 @@ export class Address { // Handle an array of addresses } else if (Array.isArray(address)) { - const options: any = { - method: "POST", - url: `${this.restURL}address/transactions`, - data: { + + // Dev note: must use axios.post for unit test stubbing. + const response: AxiosResponse = await axios.post( + `${this.restURL}address/transactions`, + { addresses: address } - } - const response: AxiosResponse = await axios(options) + ) return response.data } diff --git a/test/unit/Address.ts b/test/unit/Address.ts index bc032e3f..1ec10280 100644 --- a/test/unit/Address.ts +++ b/test/unit/Address.ts @@ -1330,173 +1330,56 @@ describe("#Address", (): void => { } }) }) - /* - describe(`#utxo`, (): void => { - describe(`#details`, (): void => { - - it(`should GET utxos for a single address`, async () => { - const addr: string = - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - - const result: - | AddressUtxoResult - | AddressUtxoResult[] = await bitbox.Address.utxo(addr) - - assert.hasAllKeys(result, [ - "utxos", - "legacyAddress", - "cashAddress", - "slpAddress", - "scriptPubKey" - ]) - if (!Array.isArray(result)) { - assert.isArray(result.utxos) - assert.hasAnyKeys(result.utxos[0], [ - "txid", - "vout", - "amount", - "satoshis", - "height", - "confirmations" - ]) - } - }) - - it(`should GET utxo details for an array of addresses`, async () => { - const addr: string[] = [ - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", - "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" - ] - - const result: - | AddressUtxoResult - | AddressUtxoResult[] = await bitbox.Address.utxo(addr) - - assert.isArray(result) - if (Array.isArray(result)) { - assert.hasAllKeys(result[0], [ - "utxos", - "legacyAddress", - "cashAddress", - "slpAddress", - "scriptPubKey" - ]) - assert.isArray(result[0].utxos) - assert.hasAnyKeys(result[0].utxos[0], [ - "txid", - "vout", - "amount", - "satoshis", - "height", - "confirmations" - ]) - } - }) - - it(`should throw an error for improper input`, async () => { - try { - const addr: any = 12345 - - await bitbox.Address.utxo(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input address must be a string or array of strings` - ) - } - }) - it(`should throw error on array size rate limit`, async (): Promise< - any - > => { - try { - const addr: string[] = [] - for (let i: number = 0; i < 25; i++) - addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - - const result: - | AddressUtxoResult - | AddressUtxoResult[] = await bitbox.Address.utxo(addr) - - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - }) -*/ describe(`#transactions`, (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + it(`should GET transactions for a single address`, async (): Promise< any > => { + // Mock out data for unit test, to prevent live network call. + const data: any = addressMock.transactions + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + const addr: string = - "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" + "bitcoincash:qrvk436u4r0ew2wj0rd9pnxhx4w90p2yfc29ta0d2n" + const result: any = await bitbox.Address.transactions(addr) + //console.log(`result: ${JSON.stringify(result,null,2)}`) - assert.hasAllKeys(result, [ - "txs", - "pagesTotal", - "cashAddress", - "currentPage", - "legacyAddress" - ]) - assert.isArray(result.txs) - assert.hasAnyKeys(result.txs[0], [ - "txid", - "version", - "locktime", - "vin", - "vout", - "confirmations", - "time", - "blocktime", - "valueOut", - "size", - "valueIn", - "fees" - ]) + assert.deepEqual(data, result) }) it(`should get transactions on multiple addresses`, async (): Promise< any > => { + // Mock out data for unit test, to prevent live network call. + const data: any = [addressMock.transactions, addressMock.transactions] + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "post").returns(resolved) + const addr: string[] = [ "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" ] const result: any = await bitbox.Address.transactions(addr) - assert.isArray(result) - assert.hasAllKeys(result[0], [ - "txs", - "pagesTotal", - "cashAddress", - "currentPage", - "legacyAddress" - ]) - assert.isArray(result[0].txs) - assert.hasAnyKeys(result[0].txs[0], [ - "txid", - "version", - "locktime", - "vin", - "vout", - "confirmations", - "time", - "blocktime", - "valueOut", - "size", - "valueIn", - "fees" - ]) + assert.deepEqual(data, result) }) - it(`should throw an error for improper input`, async (): Promise => { + it(`should pass error from server to user`, async () => { try { + // Mock out data for unit test, to prevent live network call. + sandbox + .stub(axios, "get") + .throws( + "error", + "Input address must be a string or array of strings." + ) + const addr: any = 12345 await bitbox.Address.transactions(addr) @@ -1509,24 +1392,5 @@ describe("#Address", (): void => { ) } }) - - it(`should throw error on array size rate limit`, async (): Promise< - any - > => { - try { - const addr: string[] = [] - for (let i: number = 0; i < 25; i++) - addr.push("bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf") - - const result: any = await bitbox.Address.transactions(addr) - - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) }) }) -// }) From 3acc0bc779101146d6f775d1d8264f65ab46b9da Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 4 Jun 2019 12:26:19 -0700 Subject: [PATCH 405/480] Adding mocking data for Address unit tests --- package.json | 1 + test/unit/fixtures/address-mock.js | 139 +++++++++++++++++++++++++++++ 2 files changed, 140 insertions(+) diff --git a/package.json b/package.json index 2e9be2db..9e547f03 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ ], "scripts": { "test": "tsc && nyc mocha test/unit --timeout 60000 --exit", + "test:no-build": "nyc mocha test/unit --timeout 60000 --exit", "test:integration": "TEST=integration nyc --reporter=text mocha --timeout 30000 test/integration", "coverage": "nyc report --reporter=text-lcov | coveralls", "build": "tsc" diff --git a/test/unit/fixtures/address-mock.js b/test/unit/fixtures/address-mock.js index 6b2a3c0e..146fe456 100644 --- a/test/unit/fixtures/address-mock.js +++ b/test/unit/fixtures/address-mock.js @@ -22,5 +22,144 @@ module.exports = { currentPage: 0, pagesTotal: 1, slpAddress: "simpleledger:qrdka2205f4hyukutc2g0s6lykperc8nsuc8pkcp7h" + }, + + // An example of address with multiple utxos. + utxos1: { + utxos: [ + { + txid: + "27ec8512c1a9ee9e9ae9b98eb60375f1d2bd60e2e76a1eff5a45afdbc517cf9c", + vout: 0, + amount: 0.001, + satoshis: 100000, + height: 560430, + confirmations: 25161 + }, + { + txid: + "6e1ae1bf7db6de799ec1c05ab2816ac65549bd80141567af088e6f291385b07d", + vout: 0, + amount: 0.0013, + satoshis: 130000, + height: 560039, + confirmations: 25552 + } + ], + legacyAddress: "1M1FYu4zuVaxRPWLZG5CnP8qQrZaqu6c2L", + cashAddress: "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + slpAddress: "simpleledger:qrdka2205f4hyukutc2g0s6lykperc8nsuc8pkcp7h", + scriptPubKey: "76a914db6ea94fa26b7272dc5e1487c35f258391e0f38788ac" + }, + + // An example of an address with no utxos. + utxos2: { + utxos: [], + legacyAddress: "19LXyLnux1tbTdHnMuYAgDZ81ZQDWEi12g", + cashAddress: "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v", + slpAddress: "simpleledger:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4q39c44a2j", + scriptPubKey: "" + }, + + // Example of an address with an unconfirmed UTXO + unconfirmed1: { + utxos: [ + { + txid: + "3904ffe6f8fba4ceda5e887130f60fcb18bdc7dcee10392a57f89475c5c108f1", + vout: 0, + amount: 0.03608203, + satoshis: 3608203, + confirmations: 0, + ts: 1559670801 + } + ], + legacyAddress: "1AyWs8U4HUnTLmxxFiGoJbsXauRsvBrcKW", + cashAddress: "bitcoincash:qpkkjkhe29mqhqmu3evtq3dsnruuzl3rku6usknlh5", + slpAddress: "simpleledger:qpkkjkhe29mqhqmu3evtq3dsnruuzl3rkuk8mdxlf2", + scriptPubKey: "76a9146d695af951760b837c8e58b045b098f9c17e23b788ac" + }, + + // Example of an address without any unconfirmed utxos. + unconfirmed2: { + utxos: [], + legacyAddress: "1M1FYu4zuVaxRPWLZG5CnP8qQrZaqu6c2L", + cashAddress: "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + slpAddress: "simpleledger:qrdka2205f4hyukutc2g0s6lykperc8nsuc8pkcp7h", + scriptPubKey: "76a914db6ea94fa26b7272dc5e1487c35f258391e0f38788ac" + }, + + transactions: { + pagesTotal: 1, + txs: [ + { + txid: + "ec7bc8349386e3e1939bbdc4f8092fdbdd6a380734e68486b558cd594c451d5b", + version: 2, + locktime: 0, + vin: [ + { + txid: + "4f1fc57c33659628938db740449bf92fb75799e1d5750a4aeef80eb52d6df1e0", + vout: 0, + sequence: 4294967295, + n: 0, + scriptSig: { + hex: + "483045022100a3662a19ae384a1ceddea57765e425e61b04823e976d574da3911ac6b55d7f9b02200e571d985bce987675a2d58587a346fa40c39f4df13dc88548a92c52d5b24422412103f953f7630acc15bd3f5078c698f3af777286ae955b57e4857c158f75d87adb5f", + asm: + "3045022100a3662a19ae384a1ceddea57765e425e61b04823e976d574da3911ac6b55d7f9b02200e571d985bce987675a2d58587a346fa40c39f4df13dc88548a92c52d5b24422[ALL|FORKID] 03f953f7630acc15bd3f5078c698f3af777286ae955b57e4857c158f75d87adb5f" + }, + addr: "17HPz8RQ4XM6mjre6aspvqyj1j648CZidM", + valueSat: 1111, + value: 0.00001111, + doubleSpentTxID: null + }, + { + txid: + "126d62c299e7e14c66fe0b485d13082c23641f003690462046bc24ad2d1180c1", + vout: 0, + sequence: 4294967295, + n: 1, + scriptSig: { + hex: + "47304402203e3f923207111ff9bbd2fb5ab1a49a9145ad809ee0cad0e0ddaed64bfe38dc16022012ee288fb413bd500c63f8bb95e46b6b57d34762decd46b7188478a1c398eeda412103f953f7630acc15bd3f5078c698f3af777286ae955b57e4857c158f75d87adb5f", + asm: + "304402203e3f923207111ff9bbd2fb5ab1a49a9145ad809ee0cad0e0ddaed64bfe38dc16022012ee288fb413bd500c63f8bb95e46b6b57d34762decd46b7188478a1c398eeda[ALL|FORKID] 03f953f7630acc15bd3f5078c698f3af777286ae955b57e4857c158f75d87adb5f" + }, + addr: "17HPz8RQ4XM6mjre6aspvqyj1j648CZidM", + valueSat: 1000, + value: 0.00001, + doubleSpentTxID: null + } + ], + vout: [ + { + value: "0.00001736", + n: 0, + scriptPubKey: { + hex: "76a914d96ac75ca8df9729d278da50ccd7355c5785444e88ac", + asm: + "OP_DUP OP_HASH160 d96ac75ca8df9729d278da50ccd7355c5785444e OP_EQUALVERIFY OP_CHECKSIG", + addresses: ["1LpbYkEM5cryfhs58tH8c93p4SGzit7UrP"], + type: "pubkeyhash" + }, + spentTxId: null, + spentIndex: null, + spentHeight: null + } + ], + blockheight: -1, + confirmations: 0, + time: 1559673337, + valueOut: 0.00001736, + size: 339, + valueIn: 0.00002111, + fees: 0.00000375 + } + ], + legacyAddress: "1LpbYkEM5cryfhs58tH8c93p4SGzit7UrP", + cashAddress: "bitcoincash:qrvk436u4r0ew2wj0rd9pnxhx4w90p2yfc29ta0d2n", + currentPage: 0 } } From 831d94b81aee2d526a8cad6f0687c6eb5f589c99 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 4 Jun 2019 15:57:17 -0700 Subject: [PATCH 406/480] Added first unit test --- lib/Block.ts | 12 +++---- test/unit/Block.ts | 86 +++++++++++++++++++++++++++++++++++----------- 2 files changed, 72 insertions(+), 26 deletions(-) diff --git a/lib/Block.ts b/lib/Block.ts index 23ad8816..9f466e99 100644 --- a/lib/Block.ts +++ b/lib/Block.ts @@ -53,14 +53,14 @@ export class Block { // Array of hashes. } else if (Array.isArray(hash)) { - const options: AxiosRequestConfig = { - method: "POST", - url: `${this.restURL}block/detailsByHash`, - data: { + + // Dev note: must use axios.post for unit test stubbing. + const response: AxiosResponse = await axios.post( + `${this.restURL}address/detailsByHash`, + { hashes: hash } - } - const response: AxiosResponse = await axios(options) + ) return response.data } diff --git a/test/unit/Block.ts b/test/unit/Block.ts index 7f02e24e..0912a4f7 100644 --- a/test/unit/Block.ts +++ b/test/unit/Block.ts @@ -1,16 +1,17 @@ // imports import * as chai from "chai" -import axios from "axios"; -import * as sinon from "sinon"; +import axios from "axios" +import * as sinon from "sinon" import { BITBOX } from "../../lib/BITBOX" import { Block } from "../../lib/Block" import { resturl } from "../../lib/BITBOX" import * as util from "util" -import { BlockDetailsResult } from "bitcoin-com-rest"; +import { BlockDetailsResult } from "bitcoin-com-rest" // consts const bitbox: BITBOX = new BITBOX() const assert: Chai.AssertStatic = chai.assert +const blockMock: any = require('./fixtures/block-mock') util.inspect.defaultOptions = { showHidden: true, @@ -36,6 +37,23 @@ describe("#Block", (): void => { beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) + it(`should GET for for a single hash`, async (): Promise => { + // Mock out data for unit test, to prevent live network call. + const data: any = blockMock.details + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + const addr: string = + "bitcoincash:qrvk436u4r0ew2wj0rd9pnxhx4w90p2yfc29ta0d2n" + + const result: any = await bitbox.Block.detailsByHash( + "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0" + ) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.deepEqual(blockMock.details, result) + }) + it("should get block details", async (): Promise => { const data: any = { hash: @@ -66,7 +84,9 @@ describe("#Block", (): void => { const resolved: Promise = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHash( + const result: + | BlockDetailsResult + | BlockDetailsResult[] = await bitbox.Block.detailsByHash( "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0" ) @@ -109,17 +129,23 @@ describe("#Block", (): void => { const resolved: Promise = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(500007) + const result: + | BlockDetailsResult + | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(500007) assert.deepEqual(result, data) }) }) describe(`#detailsByHeight`, (): void => { - it(`should GET block details for a given Height`, async (): Promise => { + it(`should GET block details for a given Height`, async (): Promise< + any + > => { const block: number = 500000 - const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(block) + const result: + | BlockDetailsResult + | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(block) assert.hasAllKeys(result, [ "hash", @@ -142,9 +168,13 @@ describe("#Block", (): void => { ]) }) - it(`should GET block details for an array of blocks`, async (): Promise => { + it(`should GET block details for an array of blocks`, async (): Promise< + any + > => { const blocks: number[] = [500000, 500001] - const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(blocks) + const result: + | BlockDetailsResult + | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(blocks) assert.isArray(result) if (Array.isArray(result)) { @@ -167,11 +197,12 @@ describe("#Block", (): void => { "isMainChain", "poolInfo" ]) - } }) - it(`should throw an error for improper single input`, async (): Promise => { + it(`should throw an error for improper single input`, async (): Promise< + any + > => { try { const blocks: any = "asdf" @@ -185,11 +216,15 @@ describe("#Block", (): void => { } }) - it(`should throw error on array size rate limit`, async (): Promise => { + it(`should throw error on array size rate limit`, async (): Promise< + any + > => { try { const blocks: number[] = [] for (let i: number = 0; i < 25; i++) blocks.push(500000) - const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(blocks) + const result: + | BlockDetailsResult + | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(blocks) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") @@ -204,7 +239,9 @@ describe("#Block", (): void => { it(`should GET block details for a given hash`, async (): Promise => { const hash: string = "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHash(hash) + const result: + | BlockDetailsResult + | BlockDetailsResult[] = await bitbox.Block.detailsByHash(hash) assert.hasAllKeys(result, [ "hash", @@ -227,13 +264,17 @@ describe("#Block", (): void => { ]) }) - it(`should GET block details for an array of hashes`, async (): Promise => { + it(`should GET block details for an array of hashes`, async (): Promise< + any + > => { const hash: string[] = [ "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" ] - const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHash(hash) + const result: + | BlockDetailsResult + | BlockDetailsResult[] = await bitbox.Block.detailsByHash(hash) assert.isArray(result) if (Array.isArray(result)) { @@ -256,11 +297,12 @@ describe("#Block", (): void => { "isMainChain", "poolInfo" ]) - } }) - it(`should throw an error for improper single input`, async (): Promise => { + it(`should throw an error for improper single input`, async (): Promise< + any + > => { try { const hash: any = 12345 @@ -275,7 +317,9 @@ describe("#Block", (): void => { } }) - it(`should throw error on array size rate limit`, async (): Promise => { + it(`should throw error on array size rate limit`, async (): Promise< + any + > => { try { const data: string[] = [] for (let i: number = 0; i < 25; i++) { @@ -284,7 +328,9 @@ describe("#Block", (): void => { ) } - const result: BlockDetailsResult | BlockDetailsResult[] = await bitbox.Block.detailsByHash(data) + const result: + | BlockDetailsResult + | BlockDetailsResult[] = await bitbox.Block.detailsByHash(data) console.log(`result: ${util.inspect(result)}`) assert.equal(true, false, "Unexpected result!") From 085cd2554e2f4283fc7d6625972ab12ab0ae4332 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 4 Jun 2019 16:05:30 -0700 Subject: [PATCH 407/480] Restored commented out tests --- test/unit/Address.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/unit/Address.ts b/test/unit/Address.ts index 1ec10280..e193de1a 100644 --- a/test/unit/Address.ts +++ b/test/unit/Address.ts @@ -105,7 +105,6 @@ util.inspect.defaultOptions = { } describe("#Address", (): void => { - /* describe("#AddressConstructor", (): void => { it("should create instance of Address", (): void => { const address: Address = new Address() @@ -1084,7 +1083,7 @@ describe("#Address", (): void => { } ) }) -*/ + describe("#details", () => { let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) From 94454c7bd88e6602934365b624ed919353db9ca1 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 4 Jun 2019 17:14:20 -0700 Subject: [PATCH 408/480] Finished refactoring Block class and tests --- lib/Block.ts | 14 +- test/unit/Block.ts | 312 +++++++++------------------------------------ 2 files changed, 66 insertions(+), 260 deletions(-) diff --git a/lib/Block.ts b/lib/Block.ts index 9f466e99..698606df 100644 --- a/lib/Block.ts +++ b/lib/Block.ts @@ -21,14 +21,14 @@ export class Block { // Array of blocks. } else if (Array.isArray(id)) { - const options: AxiosRequestConfig = { - method: "POST", - url: `${this.restURL}block/detailsByHeight`, - data: { + + // Dev note: must use axios.post for unit test stubbing. + const response: AxiosResponse = await axios.post( + `${this.restURL}block/detailsByHeight`, + { heights: id } - } - const response: AxiosResponse = await axios(options) + ) return response.data } @@ -56,7 +56,7 @@ export class Block { // Dev note: must use axios.post for unit test stubbing. const response: AxiosResponse = await axios.post( - `${this.restURL}address/detailsByHash`, + `${this.restURL}block/detailsByHash`, { hashes: hash } diff --git a/test/unit/Block.ts b/test/unit/Block.ts index 0912a4f7..15d5df13 100644 --- a/test/unit/Block.ts +++ b/test/unit/Block.ts @@ -11,7 +11,7 @@ import { BlockDetailsResult } from "bitcoin-com-rest" // consts const bitbox: BITBOX = new BITBOX() const assert: Chai.AssertStatic = chai.assert -const blockMock: any = require('./fixtures/block-mock') +const blockMock: any = require("./fixtures/block-mock") util.inspect.defaultOptions = { showHidden: true, @@ -37,7 +37,7 @@ describe("#Block", (): void => { beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) - it(`should GET for for a single hash`, async (): Promise => { + it(`should GET a single hash`, async (): Promise => { // Mock out data for unit test, to prevent live network call. const data: any = blockMock.details const resolved: any = new Promise(r => r({ data: data })) @@ -54,290 +54,96 @@ describe("#Block", (): void => { assert.deepEqual(blockMock.details, result) }) - it("should get block details", async (): Promise => { - const data: any = { - hash: - "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", - size: 216, - height: 507, - version: 1, - merkleroot: - "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8", - tx: [ - "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8" - ], - time: 1231973656, - nonce: 330467862, - bits: "1d00ffff", - difficulty: 1, - chainwork: - "000000000000000000000000000000000000000000000000000001fc01fc01fc", - confirmations: 528402, - previousblockhash: - "00000000a99525c043fd7e323414b60add43c254c44860094048f9c01e9a5fdd", - nextblockhash: - "000000000d550f4161f2702165fdd782ec72ff9c541f864ebb8256b662b7e51a", - reward: 50, - isMainChain: true, - poolInfo: {} - } - const resolved: Promise = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - const result: - | BlockDetailsResult - | BlockDetailsResult[] = await bitbox.Block.detailsByHash( - "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0" - ) - - assert.deepEqual(result, data) - }) - }) - - describe("#detailsByHeight", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get block details", async (): Promise => { - const data: any = { - hash: - "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", - size: 216, - height: 507, - version: 1, - merkleroot: - "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8", - tx: [ - "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8" - ], - time: 1231973656, - nonce: 330467862, - bits: "1d00ffff", - difficulty: 1, - chainwork: - "000000000000000000000000000000000000000000000000000001fc01fc01fc", - confirmations: 528402, - previousblockhash: - "00000000a99525c043fd7e323414b60add43c254c44860094048f9c01e9a5fdd", - nextblockhash: - "000000000d550f4161f2702165fdd782ec72ff9c541f864ebb8256b662b7e51a", - reward: 50, - isMainChain: true, - poolInfo: {} - } - const resolved: Promise = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - const result: - | BlockDetailsResult - | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(500007) - - assert.deepEqual(result, data) - }) - }) - - describe(`#detailsByHeight`, (): void => { - it(`should GET block details for a given Height`, async (): Promise< - any - > => { - const block: number = 500000 - - const result: - | BlockDetailsResult - | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(block) + it(`should POST an array of hashes`, async (): Promise => { + const hashes: string[] = [ + "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", + "000000000000000002160687d7f39b6232b5acbb2e2b44cd68e3c6b2debe9ea3" + ] - assert.hasAllKeys(result, [ - "hash", - "size", - "height", - "version", - "merkleroot", - "tx", - "time", - "nonce", - "bits", - "difficulty", - "chainwork", - "confirmations", - "previousblockhash", - "nextblockhash", - "reward", - "isMainChain", - "poolInfo" - ]) - }) + // Mock out data for unit test, to prevent live network call. + const data: any = [blockMock.details, blockMock.details] + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "post").returns(resolved) - it(`should GET block details for an array of blocks`, async (): Promise< - any - > => { - const blocks: number[] = [500000, 500001] - const result: - | BlockDetailsResult - | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(blocks) + const result: any = await bitbox.Block.detailsByHash(hashes) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) - assert.isArray(result) - if (Array.isArray(result)) { - assert.hasAllKeys(result[0], [ - "hash", - "size", - "height", - "version", - "merkleroot", - "tx", - "time", - "nonce", - "bits", - "difficulty", - "chainwork", - "confirmations", - "previousblockhash", - "nextblockhash", - "reward", - "isMainChain", - "poolInfo" - ]) - } + assert.deepEqual(data, result) }) - it(`should throw an error for improper single input`, async (): Promise< - any - > => { + it(`should pass error from server to user`, async () => { try { - const blocks: any = "asdf" + // Mock out data for unit test, to prevent live network call. + sandbox + .stub(axios, "get") + .throws("error", "Input must be a string or array of strings.") + + const hash: any = 12345 - await bitbox.Block.detailsByHeight(blocks) + await bitbox.Block.detailsByHash(hash) assert.equal(true, false, "Unexpected result!") } catch (err) { + //console.log(`err: `, err) assert.include( err.message, - `Input must be a number or array of numbers.` + `Input must be a string or array of strings.` ) } }) + }) - it(`should throw error on array size rate limit`, async (): Promise< - any - > => { - try { - const blocks: number[] = [] - for (let i: number = 0; i < 25; i++) blocks.push(500000) - const result: - | BlockDetailsResult - | BlockDetailsResult[] = await bitbox.Block.detailsByHeight(blocks) + describe("#detailsByHeight", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - }) + it(`should GET a single height`, async (): Promise => { + // Mock out data for unit test, to prevent live network call. + const data: any = blockMock.details + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) - describe("#detailsByHash", (): void => { - it(`should GET block details for a given hash`, async (): Promise => { - const hash: string = - "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - const result: - | BlockDetailsResult - | BlockDetailsResult[] = await bitbox.Block.detailsByHash(hash) + const height: number = 500007 - assert.hasAllKeys(result, [ - "hash", - "size", - "height", - "version", - "merkleroot", - "tx", - "time", - "nonce", - "bits", - "difficulty", - "chainwork", - "confirmations", - "previousblockhash", - "nextblockhash", - "reward", - "isMainChain", - "poolInfo" - ]) + const result: any = await bitbox.Block.detailsByHeight(height) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.deepEqual(blockMock.details, result) }) - it(`should GET block details for an array of hashes`, async (): Promise< - any - > => { - const hash: string[] = [ - "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", - "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - ] + it(`should POST an array of heights`, async (): Promise => { + const heights: number[] = [500007, 500008] - const result: - | BlockDetailsResult - | BlockDetailsResult[] = await bitbox.Block.detailsByHash(hash) + // Mock out data for unit test, to prevent live network call. + const data: any = [blockMock.details, blockMock.details] + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "post").returns(resolved) - assert.isArray(result) - if (Array.isArray(result)) { - assert.hasAllKeys(result[0], [ - "hash", - "size", - "height", - "version", - "merkleroot", - "tx", - "time", - "nonce", - "bits", - "difficulty", - "chainwork", - "confirmations", - "previousblockhash", - "nextblockhash", - "reward", - "isMainChain", - "poolInfo" - ]) - } + const result: any = await bitbox.Block.detailsByHeight(heights) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.deepEqual(data, result) }) - it(`should throw an error for improper single input`, async (): Promise< - any - > => { + it(`should pass error from server to user`, async () => { try { - const hash: any = 12345 + // Mock out data for unit test, to prevent live network call. + sandbox + .stub(axios, "get") + .throws("error", "Input must be a number or array of numbers.") - await bitbox.Block.detailsByHash(hash) + const height: any = "abc123" + + await bitbox.Block.detailsByHeight(height) assert.equal(true, false, "Unexpected result!") } catch (err) { //console.log(`err: `, err) + assert.include( err.message, - `Input must be a string or array of strings` + `Input must be a number or array of numbers.` ) } }) - - it(`should throw error on array size rate limit`, async (): Promise< - any - > => { - try { - const data: string[] = [] - for (let i: number = 0; i < 25; i++) { - data.push( - "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - ) - } - - const result: - | BlockDetailsResult - | BlockDetailsResult[] = await bitbox.Block.detailsByHash(data) - - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) }) }) From 69b4c674876fcc6fcca84e37aa0ed95a7b05a979 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 4 Jun 2019 17:24:45 -0700 Subject: [PATCH 409/480] Adding block class mocks --- test/unit/fixtures/block-mock.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 test/unit/fixtures/block-mock.js diff --git a/test/unit/fixtures/block-mock.js b/test/unit/fixtures/block-mock.js new file mode 100644 index 00000000..844140f6 --- /dev/null +++ b/test/unit/fixtures/block-mock.js @@ -0,0 +1,29 @@ +/* + Mock data used for unit testing. +*/ + +module.exports = { + details: { + hash: "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", + size: 216, + height: 507, + version: 1, + merkleroot: + "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8", + tx: ["a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8"], + time: 1231973656, + nonce: 330467862, + bits: "1d00ffff", + difficulty: 1, + chainwork: + "000000000000000000000000000000000000000000000000000001fc01fc01fc", + confirmations: 585104, + previousblockhash: + "00000000a99525c043fd7e323414b60add43c254c44860094048f9c01e9a5fdd", + nextblockhash: + "000000000d550f4161f2702165fdd782ec72ff9c541f864ebb8256b662b7e51a", + reward: 50, + isMainChain: true, + poolInfo: {} + } +} From 20d026019cd3e55c22d548125b4ba2adc23a1edc Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 4 Jun 2019 17:28:55 -0700 Subject: [PATCH 410/480] Removed unneeded variable --- test/unit/Block.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/test/unit/Block.ts b/test/unit/Block.ts index 15d5df13..d5466653 100644 --- a/test/unit/Block.ts +++ b/test/unit/Block.ts @@ -43,9 +43,6 @@ describe("#Block", (): void => { const resolved: any = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) - const addr: string = - "bitcoincash:qrvk436u4r0ew2wj0rd9pnxhx4w90p2yfc29ta0d2n" - const result: any = await bitbox.Block.detailsByHash( "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0" ) From 3bce3c8227d7840888ce8f558dd48298fef28f71 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 5 Jun 2019 19:30:19 +0900 Subject: [PATCH 411/480] bump v. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9e547f03..b52047ed 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "8.3.2", + "version": "8.3.3", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ From 95814aaf002fb9d5bbd4c69efe783f24e9a9779d Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Wed, 5 Jun 2019 10:47:32 -0700 Subject: [PATCH 412/480] Refactored blockchain route and unit tests --- lib/Blockchain.ts | 36 +++++----- test/unit/Blockchain.ts | 147 +++++++++++++++++++++++++--------------- 2 files changed, 110 insertions(+), 73 deletions(-) diff --git a/lib/Blockchain.ts b/lib/Blockchain.ts index 7c3cdcb3..8f789afe 100644 --- a/lib/Blockchain.ts +++ b/lib/Blockchain.ts @@ -101,15 +101,15 @@ export class Blockchain { // Handle array of hashes. } else if (Array.isArray(hash)) { - const options: AxiosRequestConfig = { - method: "POST", - url: `${this.restURL}blockchain/getBlockHeader`, - data: { + + // Dev note: must use axios.post for unit test stubbing. + const response: AxiosResponse = await axios.post( + `${this.restURL}blockchain/getBlockHeader`, + { hashes: hash, verbose: verbose } - } - const response: AxiosResponse = await axios(options) + ) return response.data } @@ -275,14 +275,14 @@ export class Blockchain { // Array of txids. } else if (Array.isArray(txids)) { - const options: AxiosRequestConfig = { - method: "POST", - url: `${this.restURL}blockchain/getTxOutProof`, - data: { + + // Dev note: must use axios.post for unit test stubbing. + const response: AxiosResponse = await axios.post( + `${this.restURL}blockchain/getTxOutProof`, + { txids: txids } - } - const response: AxiosResponse = await axios(options) + ) return response.data } @@ -348,14 +348,14 @@ export class Blockchain { // Array of hashes. } else if (Array.isArray(proof)) { - const options: AxiosRequestConfig = { - method: "POST", - url: `${this.restURL}blockchain/verifyTxOutProof`, - data: { + + // Dev note: must use axios.post for unit test stubbing. + const response: AxiosResponse = await axios.post( + `${this.restURL}blockchain/verifyTxOutProof`, + { proofs: proof } - } - const response: AxiosResponse = await axios(options) + ) return response.data } diff --git a/test/unit/Blockchain.ts b/test/unit/Blockchain.ts index 9771d715..3da66ee0 100644 --- a/test/unit/Blockchain.ts +++ b/test/unit/Blockchain.ts @@ -1,16 +1,17 @@ // imports import * as chai from "chai" -import axios from "axios"; -import * as sinon from "sinon"; +import axios from "axios" +import * as sinon from "sinon" import { BITBOX } from "../../lib/BITBOX" import { Blockchain } from "../../lib/Blockchain" import { resturl } from "../../lib/BITBOX" import * as util from "util" -import { BlockHeaderResult } from "bitcoin-com-rest"; +import { BlockHeaderResult } from "bitcoin-com-rest" // consts const bitbox: BITBOX = new BITBOX() const assert: Chai.AssertStatic = chai.assert +const blockchainMock = require("./fixtures/blockchain-mock") util.inspect.defaultOptions = { showHidden: true, @@ -19,6 +20,10 @@ util.inspect.defaultOptions = { } describe("#Blockchain", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + describe("#BlockchainConstructor", (): void => { it("should create instance of Blockchain", (): void => { const blockchain: Blockchain = new Blockchain() @@ -444,19 +449,33 @@ describe("#Blockchain", (): void => { describe(`#getBestBlockHash`, (): void => { it(`should GET best block hash`, async () => { + // Mock out data for unit test, to prevent live network call. + const data: any = blockchainMock.bestBlockHash + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + const result: string = await bitbox.Blockchain.getBestBlockHash() + //console.log(`result: ${JSON.stringify(result,null,2)}`) - assert.isString(result) - assert.equal(result.length, 64, "Specific hash length") + // Assert that BITBOX returns the same data passed to it by rest. + assert.deepEqual(result, blockchainMock.bestBlockHash) }) }) describe("#getBlockHeader", (): void => { it(`should GET block header for a single hash`, async () => { + // Mock out data for unit test, to prevent live network call. + const data: any = blockchainMock.blockHeader + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + const hash: string = "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - const result: BlockHeaderResult | BlockHeaderResult[] = await bitbox.Blockchain.getBlockHeader(hash) + const result: + | BlockHeaderResult + | BlockHeaderResult[] = await bitbox.Blockchain.getBlockHeader(hash) + //console.log(`result: ${JSON.stringify(result,null,2)}`) assert.hasAllKeys(result, [ "hash", @@ -476,13 +495,20 @@ describe("#Blockchain", (): void => { ]) }) - it(`should GET block headers for an array of hashes`, async () => { + it(`should POST block headers for an array of hashes`, async () => { + // Mock out data for unit test, to prevent live network call. + const data: any = [blockchainMock.blockHeader, blockchainMock.blockHeader] + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "post").returns(resolved) + const hash: string[] = [ "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", "00000000000000000568f0a96bf4348847bc84e455cbfec389f27311037a20f3" ] - const result: BlockHeaderResult | BlockHeaderResult[] = await bitbox.Blockchain.getBlockHeader(hash) + const result: + | BlockHeaderResult + | BlockHeaderResult[] = await bitbox.Blockchain.getBlockHeader(hash) assert.isArray(result) if (Array.isArray(result)) { @@ -502,12 +528,16 @@ describe("#Blockchain", (): void => { "previousblockhash", "nextblockhash" ]) - } }) - it(`should throw an error for improper input`, async () => { + it(`should pass error from server to user`, async () => { try { + // Mock out data for unit test, to prevent live network call. + sandbox + .stub(axios, "get") + .throws("error", "Input hash must be a string or array of strings") + const hash: any = 12345 await bitbox.Blockchain.getBlockHeader(hash) @@ -519,23 +549,6 @@ describe("#Blockchain", (): void => { ) } }) - - it(`should throw error on array size rate limit`, async () => { - try { - const data: string[] = [] - for (let i: number = 0; i < 25; i++) { - data.push( - "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - ) - } - - const result: BlockHeaderResult | BlockHeaderResult[] = await bitbox.Blockchain.getBlockHeader(data) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) }) describe("#getMempoolEntry", (): void => { @@ -590,8 +603,13 @@ describe("#Blockchain", (): void => { }) */ - it(`should throw an error if txid is not in mempool`, async (): Promise => { + it(`should pass error from server to user`, async (): Promise => { try { + // Mock out data for unit test, to prevent live network call. + sandbox + .stub(axios, "get") + .throws({ error: "Transaction not in mempool" }) + const txid: string = "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" @@ -605,8 +623,15 @@ describe("#Blockchain", (): void => { } }) - it(`should throw an error for improper single input`, async (): Promise => { + it(`should throw an error for improper single input`, async (): Promise< + any + > => { try { + // Mock out data for unit test, to prevent live network call. + sandbox + .stub(axios, "get") + .throws("error", "Input hash must be a string or array of strings") + const txid: any = 12345 await bitbox.Blockchain.getMempoolEntry(txid) @@ -622,15 +647,26 @@ describe("#Blockchain", (): void => { describe(`#getTxOutProof`, (): void => { it(`should get single tx out proof`, async (): Promise => { + // Mock out data for unit test, to prevent live network call. + const data: any = blockchainMock.txOutProof + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + const txid: string = "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" const result = await bitbox.Blockchain.getTxOutProof(txid) + //console.log(`result: ${JSON.stringify(result,null,2)}`) assert.isString(result) }) - it(`should get an array of tx out proofs`, async (): Promise => { + it(`should POST an array of tx out proofs`, async (): Promise => { + // Mock out data for unit test, to prevent live network call. + const data: any = [blockchainMock.txOutProof, blockchainMock.txOutProof] + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "post").returns(resolved) + const txid: string[] = [ "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7", "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" @@ -642,8 +678,13 @@ describe("#Blockchain", (): void => { assert.isString(result[0]) }) - it(`should throw an error for improper single input`, async (): Promise => { + it(`should pass error from server to user`, async (): Promise => { try { + // Mock out data for unit test, to prevent live network call. + sandbox + .stub(axios, "get") + .throws("error", "Input hash must be a string or array of strings") + const txid: any = 12345 await bitbox.Blockchain.getTxOutProof(txid) @@ -662,30 +703,41 @@ describe("#Blockchain", (): void => { "0000002086a4a3161f9ba2174883ec0b93acceac3b2f37b36ed1f90000000000000000009cb02406d1094ecf3e0b4c0ca7c585125e721147c39daf6b48c90b512741e13a12333e5cb38705180f441d8c7100000008fee9b60f1edb57e5712839186277ed39e0a004a32be9096ee47472efde8eae62f789f9d7a9f59d0ea7093dea1e0c65ff0b953f1d8cf3d47f92e732ca0295f603c272d5f4a63509f7a887f2549d78af7444aa0ecbb4f66d9cbe13bc6a89f59e05a199df8325d490818ffefe6b6321d32d7496a68580459836c0183f89082fc1b491cc91b23ecdcaa4c347bf599a62904d61f1c15b400ebbd5c90149010c139d9c1e31b774b796977393a238080ab477e1d240d0c4f155d36f519668f49bae6bd8cd5b8e40522edf76faa09cca6188d83ff13af6967cc6a569d1a5e9aeb1fdb7f531ddd2d0cbb81879741d5f38166ac1932136264366a4065cc96a42e41f96294f02df01" it(`should verify a single proof`, async (): Promise => { + // Mock out data for unit test, to prevent live network call. + const data: any = [blockchainMock.verifiedProof] + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + const result = await bitbox.Blockchain.verifyTxOutProof(mockTxOutProof) + //console.log(`result: ${JSON.stringify(result,null,2)}`) assert.isArray(result) assert.isString(result[0]) - assert.equal( - result[0], - "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" - ) }) it(`should verify an array of proofs`, async (): Promise => { + // Mock out data for unit test, to prevent live network call. + const data: any = [ + blockchainMock.verifiedProof, + blockchainMock.verifiedProof + ] + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "post").returns(resolved) + const proofs: string[] = [mockTxOutProof, mockTxOutProof] const result = await bitbox.Blockchain.verifyTxOutProof(proofs) assert.isArray(result) assert.isString(result[0]) - assert.equal( - result[0], - "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" - ) }) - it(`should throw an error for improper single input`, async (): Promise => { + it(`should pass error from server to user`, async (): Promise => { try { + // Mock out data for unit test, to prevent live network call. + sandbox + .stub(axios, "get") + .throws("error", "Input must be a string or array of strings") + const txid: any = 12345 await bitbox.Blockchain.verifyTxOutProof(txid) @@ -697,20 +749,5 @@ describe("#Blockchain", (): void => { ) } }) - - it(`should throw error on array size rate limit`, async (): Promise => { - try { - const data: string[] = [] - for (let i: number = 0; i < 25; i++) data.push(mockTxOutProof) - - const result = await bitbox.Blockchain.verifyTxOutProof(data) - - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) }) }) From 363b52495f5edf11102df5915193d8f2546d5ad0 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Wed, 5 Jun 2019 10:51:02 -0700 Subject: [PATCH 413/480] Force adding blockchain mocking library --- test/unit/fixtures/blockchain-mock.js | 35 +++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 test/unit/fixtures/blockchain-mock.js diff --git a/test/unit/fixtures/blockchain-mock.js b/test/unit/fixtures/blockchain-mock.js new file mode 100644 index 00000000..1e73c0b4 --- /dev/null +++ b/test/unit/fixtures/blockchain-mock.js @@ -0,0 +1,35 @@ +/* + Mock data used for unit testing. +*/ + +module.exports = { + bestBlockHash: + "0000000000000000008e1f65f875703872544aa888c7ca6587f055f8f5fbd4bf", + + blockHeader: { + hash: "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", + confirmations: 85727, + height: 500000, + version: 536870912, + versionHex: "20000000", + merkleroot: + "4af279645e1b337e655ae3286fc2ca09f58eb01efa6ab27adedd1e9e6ec19091", + time: 1509343584, + mediantime: 1509336533, + nonce: 3604508752, + bits: "1809b91a", + difficulty: 113081236211.4533, + chainwork: + "0000000000000000000000000000000000000000007ae48aca46e3b449ad9714", + previousblockhash: + "0000000000000000043831d6ebb013716f0580287ee5e5687e27d0ed72e6e523", + nextblockhash: + "00000000000000000568f0a96bf4348847bc84e455cbfec389f27311037a20f3" + }, + + txOutProof: + "0000002086a4a3161f9ba2174883ec0b93acceac3b2f37b36ed1f90000000000000000009cb02406d1094ecf3e0b4c0ca7c585125e721147c39daf6b48c90b512741e13a12333e5cb38705180f441d8c7100000008fee9b60f1edb57e5712839186277ed39e0a004a32be9096ee47472efde8eae62f789f9d7a9f59d0ea7093dea1e0c65ff0b953f1d8cf3d47f92e732ca0295f603c272d5f4a63509f7a887f2549d78af7444aa0ecbb4f66d9cbe13bc6a89f59e05a199df8325d490818ffefe6b6321d32d7496a68580459836c0183f89082fc1b491cc91b23ecdcaa4c347bf599a62904d61f1c15b400ebbd5c90149010c139d9c1e31b774b796977393a238080ab477e1d240d0c4f155d36f519668f49bae6bd8cd5b8e40522edf76faa09cca6188d83ff13af6967cc6a569d1a5e9aeb1fdb7f531ddd2d0cbb81879741d5f38166ac1932136264366a4065cc96a42e41f96294f02df01", + + verifiedProof: + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" +} From b03a81302059e587d5de1c300a8fb2542f95ec15 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Wed, 5 Jun 2019 15:16:05 -0700 Subject: [PATCH 414/480] mocked out unit test for price class --- test/unit/Price.ts | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/test/unit/Price.ts b/test/unit/Price.ts index 0b2054cb..093a3e1d 100644 --- a/test/unit/Price.ts +++ b/test/unit/Price.ts @@ -1,12 +1,19 @@ // imports -import * as assert from "assert"; +import * as chai from "chai" import { BITBOX } from "../../lib/BITBOX" import { Price } from "../../lib/Price" +import axios from "axios" +import * as sinon from "sinon" // consts const bitbox: BITBOX = new BITBOX() +const assert: Chai.AssertStatic = chai.assert describe("#Price", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + describe("#PriceConstructor", (): void => { it("should create instance of Price", (): void => { const price: Price = new Price() @@ -17,8 +24,15 @@ describe("#Price", (): void => { describe("#current", (): void => { describe("#single currency", (): void => { it("should get current price for single currency", async () => { + // Mock out data for unit test, to prevent live network call. + const data: any = 39229 + const resolved: any = new Promise(r => r({ data: { price: data } })) + sandbox.stub(axios, "get").returns(resolved) + const result = await bitbox.Price.current("usd") - assert.notEqual(0, result) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isNumber(result) }) }) }) From e6b6c162dfae55632efe9583ba909483c7ed39b3 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Thu, 6 Jun 2019 11:52:22 +0900 Subject: [PATCH 415/480] CashAccounts.check and CashAccounts.reverseLookup w/ unit and integration tests. --- lib/CashAccounts.ts | 35 +++++++++- lib/interfaces/vendors.d.ts | 20 ++++++ package.json | 2 +- test/unit/CashAccounts.ts | 126 ++++++++++++++++++++++++++++++++++++ 4 files changed, 181 insertions(+), 2 deletions(-) create mode 100644 test/unit/CashAccounts.ts diff --git a/lib/CashAccounts.ts b/lib/CashAccounts.ts index 33ab7589..48af3172 100644 --- a/lib/CashAccounts.ts +++ b/lib/CashAccounts.ts @@ -1,5 +1,9 @@ import axios, { AxiosResponse } from "axios" -import { CashAccountLookupResult } from "bitcoin-com-rest" +import { + CashAccountCheckResult, + CashAccountLookupResult, + CashAccountReverseLookupResult +} from "bitcoin-com-rest" import { resturl } from "./BITBOX" export class CashAccounts { @@ -27,4 +31,33 @@ export class CashAccounts { else throw error } } + + public async check( + account: string, + number: number + ): Promise { + try { + const response: AxiosResponse = await axios.get( + `${this.restURL}cashAccounts/check/${account}/${number}` + ) + return response.data + } catch (error) { + if (error.response && error.response.data) throw error.response.data + else throw error + } + } + + public async reverseLookup( + cashAddress: string + ): Promise { + try { + const response: AxiosResponse = await axios.get( + `${this.restURL}cashAccounts/reverseLookup/${cashAddress}` + ) + return response.data + } catch (error) { + if (error.response && error.response.data) throw error.response.data + else throw error + } + } } diff --git a/lib/interfaces/vendors.d.ts b/lib/interfaces/vendors.d.ts index c0495ed8..b4032f68 100644 --- a/lib/interfaces/vendors.d.ts +++ b/lib/interfaces/vendors.d.ts @@ -307,4 +307,24 @@ declare module "bitcoin-com-rest" { payment: string[] } } + + export interface CashAccountCheckResult { + identifier: string + block: number + results: string[] + } + + export interface CashAccountReverseLookupResult { + results: SingleCashAccountReverseLookupResult[] + } + + export interface SingleCashAccountReverseLookupResult { + accountEmoji: any + nameText: string + accountNumber: number + accountHash: string + accountCollisionLength: number + payloadType: number + payloadAddress: string + } } diff --git a/package.json b/package.json index b52047ed..17b95c9f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "8.3.3", + "version": "8.4.0", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ diff --git a/test/unit/CashAccounts.ts b/test/unit/CashAccounts.ts new file mode 100644 index 00000000..8b24ebae --- /dev/null +++ b/test/unit/CashAccounts.ts @@ -0,0 +1,126 @@ +// imports +import axios from "axios" +import { + CashAccountCheckResult, + CashAccountLookupResult, + CashAccountReverseLookupResult +} from "bitcoin-com-rest" +import * as chai from "chai" +import * as util from "util" +import { BITBOX, resturl } from "../../lib/BITBOX" +import { CashAccounts } from "../../lib/CashAccounts" + +// consts +const bitbox: BITBOX = new BITBOX() +const assert: Chai.AssertStatic = chai.assert + +// TODO: port from require to import syntax +const sinon = require("sinon") +const cashAccountsMock = require("./fixtures/cashaccounts-mock.js") + +util.inspect.defaultOptions = { + showHidden: true, + colors: true, + depth: 3 +} + +describe("#CashAccounts", (): void => { + describe("#CashAccountsConstructor", (): void => { + it("should create instance of CashAccounts", (): void => { + const cashAccounts: CashAccounts = new CashAccounts() + assert.equal(cashAccounts instanceof CashAccounts, true) + }) + + it("should have a restURL property", (): void => { + const cashAccounts: CashAccounts = new CashAccounts() + assert.equal(cashAccounts.restURL, resturl) + }) + }) + + describe("#lookup", () => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it(`should lookup CashAccount details by account, number and collision`, async (): Promise< + any + > => { + // Mock out data for unit test, to prevent live network call. + const data: any = cashAccountsMock.lookup + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + const account: string = "cgcardona" + const number: number = 122 + const collision: number = 6383276713 + + const result = (await bitbox.CashAccounts.lookup( + account, + number, + collision + )) as CashAccountLookupResult + //console.log(`result: ${JSON.stringify(result,null,2)}`) + + assert.hasAllKeys(result, ["identifier", "information"]) + }) + }) + + describe("#check", () => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it(`should check CashAccount by account and number`, async (): Promise< + any + > => { + // Mock out data for unit test, to prevent live network call. + const data: any = cashAccountsMock.check + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + const account: string = "cgcardona" + const number: number = 122 + + const result = (await bitbox.CashAccounts.check( + account, + number + )) as CashAccountCheckResult + //console.log(`result: ${JSON.stringify(result,null,2)}`) + + assert.hasAllKeys(result, ["identifier", "block", "results"]) + }) + }) + + describe("#reverseLookup", () => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it(`should reverse lookup CashAccount details by cash address`, async (): Promise< + any + > => { + // Mock out data for unit test, to prevent live network call. + const data: any = cashAccountsMock.reverseLookup + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + const cashAddress: string = + "bitcoincash:qr4aadjrpu73d2wxwkxkcrt6gqxgu6a7usxfm96fst" + + const result = (await bitbox.CashAccounts.reverseLookup( + cashAddress + )) as CashAccountReverseLookupResult + //console.log(`result: ${JSON.stringify(result,null,2)}`) + + assert.hasAllKeys(result.results[0], [ + "accountEmoji", + "nameText", + "accountNumber", + "accountHash", + "accountCollisionLength", + "payloadType", + "payloadAddress" + ]) + }) + }) +}) From 7f70b6d2977a2e85ba150bbd7cf72b86bf1c94e4 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Thu, 6 Jun 2019 11:56:55 +0900 Subject: [PATCH 416/480] Add mocks. --- test/unit/fixtures/cashaccounts-mock.js | 77 +++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 test/unit/fixtures/cashaccounts-mock.js diff --git a/test/unit/fixtures/cashaccounts-mock.js b/test/unit/fixtures/cashaccounts-mock.js new file mode 100644 index 00000000..f1be9512 --- /dev/null +++ b/test/unit/fixtures/cashaccounts-mock.js @@ -0,0 +1,77 @@ +/* + Mock data used for unit testing. +*/ + +module.exports = { + lookup: { + identifier: "cgcardona#122;", + information: { + emoji: "🍞", + name: "cgcardona", + number: 122, + collision: { + hash: "6383276713", + count: 0, + length: 0 + }, + payment: [ + { + type: "Key Hash", + address: "bitcoincash:qrhncn6hgkhljqg4fuq4px5qg74sjz9fqqj64s9la9" + } + ] + } + }, + check: { + identifier: "cgcardona#122", + block: 563742, + results: [ + { + transaction: + "0100000001A8421264294082C08C0611E162BD49999443EF577C57923BD052F7202B09408E010000006A473044022039F4DD9AD6BC2C4E799D135BB68B5E05E71F83731EFC63260C7FB16F63BB842802203DEA9E82E97D28ADC9A9567E16762CF3663C24CE6A42AEDDC1E273E50B8CA9C941210202435C144A77C6ED76C3A74EE6006A9255B449F1B2F09FA2668027FEC106CFA1FFFFFFFF020000000000000000266A0401010101096367636172646F6E611501EF3C4F5745AFF901154F01509A8047AB0908A9008CD51100000000001976A914919908484336464C2A9938D24149A4177606340F88AC00000000", + inclusionProof: + "0000C020C98F109DA027EB72472AC903F6E2BFA993D88724734B2C01000000000000000019213AEE113214AF03EEEE303F733708AD79F259A148F4A17C496302E1D093DF7D9D2E5C4CE10418F2AE48C41F000000067AA86CA831AB260AF59E0ED93305939D9A300BD66076EB18D155143E992950C33A46C140D7202C577D6C25DCD8F315D304285D8BD890C41925F00CC256C22CC69E1410317FD69D5A58F762EE26B469DC1909F2D0DE5E471B0AC09C686C41664585DF32ABA0EEAF50B6AB66010206DE24A5C576CBC331EF153507E9E20D1C18506E24DBEDB0A0B66705E10376CD19ADB4A605098058ACB805D24456CC004CCA78ABA3969F47284773B7809C81B93E2CCCC280218272164AE5D90245A629F6801802EB00" + } + ] + }, + reverseLookup: { + results: [ + { + accountEmoji: "☯", + nameText: "Jonathan", + accountNumber: 100, + accountHash: "5876958390", + accountCollisionLength: 0, + payloadType: 1, + payloadAddress: "bitcoincash:qr4aadjrpu73d2wxwkxkcrt6gqxgu6a7usxfm96fst" + }, + { + accountEmoji: "🍭", + nameText: "ConfirmationTest", + accountNumber: 113, + accountHash: "4640561912", + accountCollisionLength: 0, + payloadType: 1, + payloadAddress: "bitcoincash:qr4aadjrpu73d2wxwkxkcrt6gqxgu6a7usxfm96fst" + }, + { + accountEmoji: "🌽", + nameText: "Bob", + accountNumber: 4035, + accountHash: "7443382842", + accountCollisionLength: 0, + payloadType: 1, + payloadAddress: "bitcoincash:qr4aadjrpu73d2wxwkxkcrt6gqxgu6a7usxfm96fst" + }, + { + accountEmoji: "🎀", + nameText: "qr4aadjrpu73d2wxwkxkcrt6gqxgu6a7usxfm96fst", + accountNumber: 7084, + accountHash: "4319915751", + accountCollisionLength: 0, + payloadType: 1, + payloadAddress: "bitcoincash:qr4aadjrpu73d2wxwkxkcrt6gqxgu6a7usxfm96fst" + } + ] + } +} From d8a821f48c4f3a4230fc7d8d79ffc5e912065905 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Thu, 6 Jun 2019 15:31:28 -0700 Subject: [PATCH 417/480] Checking in before I get derailed to fire rest fires --- lib/RawTransactions.ts | 24 +-- test/unit/RawTransactions.ts | 292 ++++++++++++++++++++--------------- 2 files changed, 176 insertions(+), 140 deletions(-) diff --git a/lib/RawTransactions.ts b/lib/RawTransactions.ts index dd55d88f..138835a1 100644 --- a/lib/RawTransactions.ts +++ b/lib/RawTransactions.ts @@ -22,14 +22,14 @@ export class RawTransactions { // Array of hexes } else if (Array.isArray(hex)) { - const options: AxiosRequestConfig = { - method: "POST", - url: `${this.restURL}rawtransactions/decodeRawTransaction`, - data: { + + // Dev note: must use axios.post for unit test stubbing. + const response: AxiosResponse = await axios.post( + `${this.restURL}rawtransactions/decodeRawTransaction`, + { hexes: hex } - } - const response: AxiosResponse = await axios(options) + ) return response.data } @@ -90,15 +90,15 @@ export class RawTransactions { return response.data } else if (Array.isArray(txid)) { - const options: AxiosRequestConfig = { - method: "POST", - url: `${this.restURL}rawtransactions/getRawTransaction`, - data: { + + // Dev note: must use axios.post for unit test stubbing. + const response: AxiosResponse = await axios.post( + `${this.restURL}rawtransactions/getRawTransaction`, + { txids: txid, verbose: verbose } - } - const response: AxiosResponse = await axios(options) + ) return response.data } diff --git a/test/unit/RawTransactions.ts b/test/unit/RawTransactions.ts index eb7ad563..9efc421f 100644 --- a/test/unit/RawTransactions.ts +++ b/test/unit/RawTransactions.ts @@ -2,42 +2,54 @@ import { DecodeRawTransactionResult, VerboseRawTransactionResult -} from "bitcoin-com-rest"; -import * as chai from "chai"; -import * as util from "util"; -import { BITBOX, resturl } from "../../lib/BITBOX"; -import { RawTransactions } from "../../lib/RawTransactions"; +} from "bitcoin-com-rest" +import * as chai from "chai" +import * as util from "util" +import { BITBOX, resturl } from "../../lib/BITBOX" +import { RawTransactions } from "../../lib/RawTransactions" +import axios from "axios" +import * as sinon from "sinon" // consts -const bitbox: BITBOX = new BITBOX(); -const assert: Chai.AssertStatic = chai.assert; +const bitbox: BITBOX = new BITBOX() +const assert: Chai.AssertStatic = chai.assert +const rtMock = require("./fixtures/rawtransactions-mock") // Used for debugging -util.inspect.defaultOptions = { depth: 1 }; +util.inspect.defaultOptions = { depth: 1 } describe("#RawTransactions", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + describe("#RawTransactionsConstructor", (): void => { it("should create instance of RawTransactions", (): void => { - const rawtransactions: RawTransactions = new RawTransactions(); - assert.equal(rawtransactions instanceof RawTransactions, true); - }); + const rawtransactions: RawTransactions = new RawTransactions() + assert.equal(rawtransactions instanceof RawTransactions, true) + }) it("should have a restURL property", (): void => { - const rawtransactions: RawTransactions = new RawTransactions(); - assert.equal(rawtransactions.restURL, resturl); - }); - }); + const rawtransactions: RawTransactions = new RawTransactions() + assert.equal(rawtransactions.restURL, resturl) + }) + }) describe("#decodeRawTransaction", (): void => { it("should decode tx for a single hex", async (): Promise => { + // Mock the call to rest to prevent live network calls. + const resolved = new Promise(r => r({ data: rtMock.decodedTx })) + sandbox.stub(axios, "get").returns(resolved) + const hex: string = - "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000"; + "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" const result: | DecodeRawTransactionResult | DecodeRawTransactionResult[] = await bitbox.RawTransactions.decodeRawTransaction( hex - ); + ) + //console.log(`result: ${JSON.stringify(result,null,2)}`) assert.hasAnyKeys(result, [ "txid", @@ -47,26 +59,31 @@ describe("#RawTransactions", (): void => { "locktime", "vin", "vout" - ]); + ]) if (!Array.isArray(result)) { - assert.isArray(result.vin); - assert.isArray(result.vout); + assert.isArray(result.vin) + assert.isArray(result.vout) } - }); + }) it("should decode an array of tx hexes", async (): Promise => { + // Mock the call to rest to prevent live network calls. + const testData = [rtMock.decodedTx, rtMock.decodedTx] + const resolved = new Promise(r => r({ data: testData })) + sandbox.stub(axios, "post").returns(resolved) + const hexes: string[] = [ "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000", "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" - ]; + ] const result: | DecodeRawTransactionResult | DecodeRawTransactionResult[] = await bitbox.RawTransactions.decodeRawTransaction( hexes - ); + ) - assert.isArray(result); + assert.isArray(result) if (Array.isArray(result)) { assert.hasAnyKeys(result[0], [ "txid", @@ -76,59 +93,44 @@ describe("#RawTransactions", (): void => { "locktime", "vin", "vout" - ]); - assert.isArray(result[0].vin); - assert.isArray(result[0].vout); + ]) + assert.isArray(result[0].vin) + assert.isArray(result[0].vout) } - }); + }) - it(`should throw an error for improper single input`, async (): Promise< - any - > => { + it(`should pass error from server to user`, async (): Promise => { try { - const addr: any = 12345; + // Mock out data for unit test, to prevent live network call. + sandbox + .stub(axios, "get") + .throws("error", "Input must be a string or array of strings") - await bitbox.RawTransactions.decodeRawTransaction(addr); - assert.equal(true, false, "Unexpected result!"); + const addr: any = 12345 + + await bitbox.RawTransactions.decodeRawTransaction(addr) + assert.equal(true, false, "Unexpected result!") } catch (err) { + //console.log(`err: ${util.inspect(err)}`) assert.include( err.message, - `Input must be a string or array of strings.` - ); - } - }); - - it(`should throw error on array size rate limit`, async (): Promise< - any - > => { - try { - const data: string[] = []; - for (let i: number = 0; i < 25; i++) { - data.push( - "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" - ); - } - - const result: - | DecodeRawTransactionResult - | DecodeRawTransactionResult[] = await bitbox.RawTransactions.decodeRawTransaction( - data - ); - assert.equal(true, false, "Unexpected result!"); - } catch (err) { - assert.hasAnyKeys(err, ["error"]); - assert.include(err.error, "Array too large"); + `Input must be a string or array of strings` + ) } - }); - }); + }) + }) describe("#getRawTransaction", (): void => { it("should decode a single txid, with concise output", async (): Promise< any > => { + // Mock the call to rest to prevent live network calls. + const resolved = new Promise(r => r({ data: rtMock.rawTx })) + sandbox.stub(axios, "get").returns(resolved) + const txid: string = - "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1"; - const verbose: boolean = false; + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" + const verbose: boolean = false const result: | VerboseRawTransactionResult @@ -137,17 +139,22 @@ describe("#RawTransactions", (): void => { | string[] = await bitbox.RawTransactions.getRawTransaction( txid, verbose - ); + ) + //console.log(`result: ${JSON.stringify(result,null,2)}`) - assert.isString(result); - }); + assert.isString(result) + }) it("should decode a single txid, with verbose output", async (): Promise< any > => { + // Mock the call to rest to prevent live network calls. + const resolved = new Promise(r => r({ data: rtMock.decodedTx })) + sandbox.stub(axios, "get").returns(resolved) + const txid: string = - "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1"; - const verbose: boolean = true; + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" + const verbose: boolean = true const result: | VerboseRawTransactionResult @@ -156,7 +163,8 @@ describe("#RawTransactions", (): void => { | string[] = await bitbox.RawTransactions.getRawTransaction( txid, verbose - ); + ) + //console.log(`result: ${JSON.stringify(result,null,2)}`) assert.hasAnyKeys(result, [ "hex", @@ -171,21 +179,26 @@ describe("#RawTransactions", (): void => { "confirmations", "time", "blocktime" - ]); + ]) if (!Array.isArray(result) && result instanceof Object) { - assert.isArray(result.vin); - assert.isArray(result.vout); + assert.isArray(result.vin) + assert.isArray(result.vout) } - }); + }) it("should decode an array of txids, with a concise output", async (): Promise< any > => { + // Mock the call to rest to prevent live network calls. + const testData = [rtMock.rawTx, rtMock.rawTx] + const resolved = new Promise(r => r({ data: testData })) + sandbox.stub(axios, "post").returns(resolved) + const txid: string[] = [ "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" - ]; - const verbose: boolean = false; + ] + const verbose: boolean = false const result: | VerboseRawTransactionResult @@ -194,22 +207,25 @@ describe("#RawTransactions", (): void => { | string[] = await bitbox.RawTransactions.getRawTransaction( txid, verbose - ); + ) - assert.isArray(result); - if (Array.isArray(result)) { - assert.isString(result[0]); - } - }); + assert.isArray(result) + if (Array.isArray(result)) assert.isString(result[0]) + }) it("should decode an array of txids, with a verbose output", async (): Promise< any > => { + // Mock the call to rest to prevent live network calls. + const testData = [rtMock.decodedTx, rtMock.decodedTx] + const resolved = new Promise(r => r({ data: testData })) + sandbox.stub(axios, "post").returns(resolved) + const txid: string[] = [ "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" - ]; - const verbose: boolean = true; + ] + const verbose: boolean = true const result: | VerboseRawTransactionResult @@ -218,9 +234,9 @@ describe("#RawTransactions", (): void => { | string[] = await bitbox.RawTransactions.getRawTransaction( txid, verbose - ); + ) - assert.isArray(result); + assert.isArray(result) if (Array.isArray(result)) { assert.hasAnyKeys(result[0], [ "hex", @@ -235,46 +251,66 @@ describe("#RawTransactions", (): void => { "confirmations", "time", "blocktime" - ]); + ]) // TODO uncomment this test and fix ts error // assert.isArray(result[0].vin); // assert.isArray(result[0].vout); } - }); + }) + + it(`should pass error from server to user`, async (): Promise => { + try { + // Mock out data for unit test, to prevent live network call. + sandbox + .stub(axios, "get") + .throws("error", "Input must be a string or array of strings") + + const txid: any = 12345 + + await bitbox.RawTransactions.getRawTransaction(txid, false) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: ${util.inspect(err)}`) + assert.include( + err.message, + `Input must be a string or array of strings` + ) + } + }) it(`should throw error on array size rate limit`, async (): Promise< any > => { try { const dataMock: string = - "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1"; - const data: string[] = []; - for (let i: number = 0; i < 25; i++) data.push(dataMock); + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" + const data: string[] = [] + for (let i: number = 0; i < 25; i++) data.push(dataMock) const result: | VerboseRawTransactionResult | VerboseRawTransactionResult[] | string - | string[] = await bitbox.RawTransactions.getRawTransaction(data); + | string[] = await bitbox.RawTransactions.getRawTransaction(data) - console.log(`result: ${util.inspect(result)}`); - assert.equal(true, false, "Unexpected result!"); + console.log(`result: ${util.inspect(result)}`) + assert.equal(true, false, "Unexpected result!") } catch (err) { - assert.hasAnyKeys(err, ["error"]); - assert.include(err.error, "Array too large"); + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") } - }); - }); + }) + }) describe("#decodeScript", () => { it("should decode script for a single hex", async (): Promise => { const hex: string = - "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16"; + "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" - const result = await bitbox.RawTransactions.decodeScript(hex); + const result = await bitbox.RawTransactions.decodeScript(hex) - assert.hasAllKeys(result, ["asm", "type", "p2sh"]); - }); + assert.hasAllKeys(result, ["asm", "type", "p2sh"]) + }) // CT 2/20/19 - Waiting for this PR to be merged complete the test: // https://github.com/Bitcoin-com/rest.bitcoin.com/pull/312 @@ -305,7 +341,7 @@ describe("#RawTransactions", (): void => { } }) */ - }); + }) /* Testing sentRawTransaction isn't really possible with an integration test, @@ -317,62 +353,62 @@ describe("#RawTransactions", (): void => { it("should send a single transaction hex", async (): Promise => { try { const hex: string = - "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000"; + "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" - await bitbox.RawTransactions.sendRawTransaction(hex); + await bitbox.RawTransactions.sendRawTransaction(hex) - assert.equal(true, false, "Unexpected result!"); + assert.equal(true, false, "Unexpected result!") } catch (err) { - assert.hasAllKeys(err, ["error"]); - assert.include(err.error, "Missing inputs"); + assert.hasAllKeys(err, ["error"]) + assert.include(err.error, "Missing inputs") } - }); + }) it("should send an array of tx hexes", async (): Promise => { try { const hexes: string[] = [ "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000", "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" - ]; + ] - const result = await bitbox.RawTransactions.sendRawTransaction(hexes); + const result = await bitbox.RawTransactions.sendRawTransaction(hexes) } catch (err) { - assert.hasAllKeys(err, ["error"]); - assert.include(err.error, "Missing inputs"); + assert.hasAllKeys(err, ["error"]) + assert.include(err.error, "Missing inputs") } - }); + }) it(`should throw an error for improper single input`, async (): Promise< any > => { try { - const addr: any = 12345; + const addr: any = 12345 - await bitbox.RawTransactions.sendRawTransaction(addr); - assert.equal(true, false, "Unexpected result!"); + await bitbox.RawTransactions.sendRawTransaction(addr) + assert.equal(true, false, "Unexpected result!") } catch (err) { assert.include( err.message, `Input hex must be a string or array of strings` - ); + ) } - }); + }) it(`should throw error on array size rate limit`, async (): Promise< any > => { try { const dataMock: string = - "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000"; - const data: string[] = []; - for (let i: number = 0; i < 25; i++) data.push(dataMock); + "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" + const data: string[] = [] + for (let i: number = 0; i < 25; i++) data.push(dataMock) - await bitbox.RawTransactions.sendRawTransaction(data); - assert.equal(true, false, "Unexpected result!"); + await bitbox.RawTransactions.sendRawTransaction(data) + assert.equal(true, false, "Unexpected result!") } catch (err) { - assert.hasAnyKeys(err, ["error"]); - assert.include(err.error, "Array too large"); + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") } - }); - }); -}); + }) + }) +}) From 61216793c988815d1098fbbbec482d7a77378f29 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Thu, 6 Jun 2019 15:31:50 -0700 Subject: [PATCH 418/480] Force adding mocking file --- test/unit/fixtures/rawtransactions-mock.js | 111 +++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 test/unit/fixtures/rawtransactions-mock.js diff --git a/test/unit/fixtures/rawtransactions-mock.js b/test/unit/fixtures/rawtransactions-mock.js new file mode 100644 index 00000000..322ab6d5 --- /dev/null +++ b/test/unit/fixtures/rawtransactions-mock.js @@ -0,0 +1,111 @@ +/* + Mock data used for unit testing. +*/ + +module.exports = { + decodedTx: { + txid: "a332237d82a2543af1b0e1ae3c8cea1610c290ebcaf084a7e9894a61de0be988", + hash: "a332237d82a2543af1b0e1ae3c8cea1610c290ebcaf084a7e9894a61de0be988", + version: 2, + size: 226, + locktime: 0, + vin: [ + { + txid: + "21cced645eab150585ed7ca7c96edebab5793cc0a3b3b286c42fd7d6d798b5b9", + vout: 1, + scriptSig: { + asm: + "3045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd41390[ALL|FORKID] 0360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413d", + hex: + "483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413d" + }, + sequence: 4294967295 + } + ], + vout: [ + { + value: 0.0001, + n: 0, + scriptPubKey: { + asm: + "OP_DUP OP_HASH160 eb4b180def88e3f5625b2d8ae2c098ff7d85f664 OP_EQUALVERIFY OP_CHECKSIG", + hex: "76a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac", + reqSigs: 1, + type: "pubkeyhash", + addresses: ["bitcoincash:qr45kxqda7yw8atztvkc4ckqnrlhmp0kvsan3xnznu"] + } + }, + { + value: 0.09989752, + n: 1, + scriptPubKey: { + asm: + "OP_DUP OP_HASH160 eb4b180def88e3f5625b2d8ae2c098ff7d85f664 OP_EQUALVERIFY OP_CHECKSIG", + hex: "76a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac", + reqSigs: 1, + type: "pubkeyhash", + addresses: ["bitcoincash:qr45kxqda7yw8atztvkc4ckqnrlhmp0kvsan3xnznu"] + } + } + ] + }, + + rawTx: + "010000000186db5c732438733e305e2e6fb6f15cab898e61202e3d8708c8cf9db90d20a862000000006a47304402202578ad648a8bab3065295155a07337d9d01c165f506e20faeaf582a9feca188602207aac7cab6e6ff9c63ff1b95543f1f2f0b866a2494d98b1bf58055094c0989e80412102b84cc40b16cf6f76ac47fff353a301f8394d9a8f0199c56269897ae3e11559eeffffffff029aa7ce06000000001976a914270f290bf8f4eba093063330b9a9e8202b66217b88acb06b3c00000000001976a9148b55a3985e74ea4137f0f1749439f161b52b861c88ac00000000", + + decodedTx: { + txid: "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", + hash: "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", + version: 1, + size: 225, + locktime: 0, + vin: [ + { + txid: + "62a8200db99dcfc808873d2e20618e89ab5cf1b66f2e5e303e733824735cdb86", + vout: 0, + scriptSig: { + asm: + "304402202578ad648a8bab3065295155a07337d9d01c165f506e20faeaf582a9feca188602207aac7cab6e6ff9c63ff1b95543f1f2f0b866a2494d98b1bf58055094c0989e80[ALL|FORKID] 02b84cc40b16cf6f76ac47fff353a301f8394d9a8f0199c56269897ae3e11559ee", + hex: + "47304402202578ad648a8bab3065295155a07337d9d01c165f506e20faeaf582a9feca188602207aac7cab6e6ff9c63ff1b95543f1f2f0b866a2494d98b1bf58055094c0989e80412102b84cc40b16cf6f76ac47fff353a301f8394d9a8f0199c56269897ae3e11559ee" + }, + sequence: 4294967295 + } + ], + vout: [ + { + value: 1.14206618, + n: 0, + scriptPubKey: { + asm: + "OP_DUP OP_HASH160 270f290bf8f4eba093063330b9a9e8202b66217b OP_EQUALVERIFY OP_CHECKSIG", + hex: "76a914270f290bf8f4eba093063330b9a9e8202b66217b88ac", + reqSigs: 1, + type: "pubkeyhash", + addresses: ["bitcoincash:qqns72gtlr6whgynqcenpwdfaqszke3p0vntl8lvhz"] + } + }, + { + value: 0.03959728, + n: 1, + scriptPubKey: { + asm: + "OP_DUP OP_HASH160 8b55a3985e74ea4137f0f1749439f161b52b861c OP_EQUALVERIFY OP_CHECKSIG", + hex: "76a9148b55a3985e74ea4137f0f1749439f161b52b861c88ac", + reqSigs: 1, + type: "pubkeyhash", + addresses: ["bitcoincash:qz94tgucte6w5sfh7rchf9pe79sm22uxrsn6dh8smf"] + } + } + ], + hex: + "010000000186db5c732438733e305e2e6fb6f15cab898e61202e3d8708c8cf9db90d20a862000000006a47304402202578ad648a8bab3065295155a07337d9d01c165f506e20faeaf582a9feca188602207aac7cab6e6ff9c63ff1b95543f1f2f0b866a2494d98b1bf58055094c0989e80412102b84cc40b16cf6f76ac47fff353a301f8394d9a8f0199c56269897ae3e11559eeffffffff029aa7ce06000000001976a914270f290bf8f4eba093063330b9a9e8202b66217b88acb06b3c00000000001976a9148b55a3985e74ea4137f0f1749439f161b52b861c88ac00000000", + blockhash: + "000000000000000003a09a7d68a0d62fd0ab51c368372e46bac84277e2df47e2", + confirmations: 20168, + time: 1547752564, + blocktime: 1547752564 + } +} From d9a71841aeaea0ea88b5880a46b88549b8123508 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Mon, 10 Jun 2019 07:36:53 -0700 Subject: [PATCH 419/480] Added npm script to run integration tests locally --- package.json | 1 + test/integration/address.js | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 17b95c9f..ff23c873 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "test": "tsc && nyc mocha test/unit --timeout 60000 --exit", "test:no-build": "nyc mocha test/unit --timeout 60000 --exit", "test:integration": "TEST=integration nyc --reporter=text mocha --timeout 30000 test/integration", + "test:integration:local": "TEST=integration SERVER=local nyc --reporter=text mocha --timeout 30000 test/integration", "coverage": "nyc report --reporter=text-lcov | coveralls", "build": "tsc" }, diff --git a/test/integration/address.js b/test/integration/address.js index 0e7a9721..ca06ba7e 100644 --- a/test/integration/address.js +++ b/test/integration/address.js @@ -11,8 +11,10 @@ const chai = require("chai") const assert = chai.assert const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() -//const axios = require("axios") +let bitbox = new BITBOX() + +if (process.env.SERVER === "local") + bitbox = new BITBOX({ restURL: "http://localhost:3000/v2/" }) // Inspect utility used for debugging. const util = require("util") From 2546d2a80aad1eae2839b1757626c8d9849ae597 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Mon, 10 Jun 2019 10:07:17 -0700 Subject: [PATCH 420/480] Adding local integration testing to all integration tests --- test/integration/block.js | 5 ++++- test/integration/blockchain.js | 5 ++++- test/integration/price.js | 5 ++++- test/integration/rawtransaction.js | 5 ++++- test/integration/transaction.js | 5 ++++- test/integration/util.js | 5 ++++- test/integration/z9-rate-limits.js | 5 ++++- 7 files changed, 28 insertions(+), 7 deletions(-) diff --git a/test/integration/block.js b/test/integration/block.js index e78eb88d..e53c0116 100644 --- a/test/integration/block.js +++ b/test/integration/block.js @@ -7,7 +7,10 @@ const chai = require("chai") const assert = chai.assert const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() +let bitbox = new BITBOX() + +if (process.env.SERVER === "local") + bitbox = new BITBOX({ restURL: "http://localhost:3000/v2/" }) // Inspect utility used for debugging. const util = require("util") diff --git a/test/integration/blockchain.js b/test/integration/blockchain.js index c7e59eea..a88bccd1 100644 --- a/test/integration/blockchain.js +++ b/test/integration/blockchain.js @@ -11,7 +11,10 @@ const chai = require("chai") const assert = chai.assert const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() +let bitbox = new BITBOX() + +if (process.env.SERVER === "local") + bitbox = new BITBOX({ restURL: "http://localhost:3000/v2/" }) // Inspect utility used for debugging. const util = require("util") diff --git a/test/integration/price.js b/test/integration/price.js index b8d7d20a..d21bed42 100644 --- a/test/integration/price.js +++ b/test/integration/price.js @@ -1,6 +1,9 @@ const assert = require("assert") const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() +let bitbox = new BITBOX() + +if (process.env.SERVER === "local") + bitbox = new BITBOX({ restURL: "http://localhost:3000/v2/" }) describe("#price", () => { describe("#current", () => { diff --git a/test/integration/rawtransaction.js b/test/integration/rawtransaction.js index a08b518f..2b010f8e 100644 --- a/test/integration/rawtransaction.js +++ b/test/integration/rawtransaction.js @@ -9,7 +9,10 @@ const chai = require("chai") const assert = chai.assert const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() +let bitbox = new BITBOX() + +if (process.env.SERVER === "local") + bitbox = new BITBOX({ restURL: "http://localhost:3000/v2/" }) // Inspect utility used for debugging. const util = require("util") diff --git a/test/integration/transaction.js b/test/integration/transaction.js index 9b584cef..f060ac18 100644 --- a/test/integration/transaction.js +++ b/test/integration/transaction.js @@ -7,7 +7,10 @@ const chai = require("chai") const assert = chai.assert const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() +let bitbox = new BITBOX() + +if (process.env.SERVER === "local") + bitbox = new BITBOX({ restURL: "http://localhost:3000/v2/" }) // Inspect utility used for debugging. const util = require("util") diff --git a/test/integration/util.js b/test/integration/util.js index 59549902..3fc271b1 100644 --- a/test/integration/util.js +++ b/test/integration/util.js @@ -7,7 +7,10 @@ const chai = require("chai") const assert = chai.assert const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() +let bitbox = new BITBOX() + +if (process.env.SERVER === "local") + bitbox = new BITBOX({ restURL: "http://localhost:3000/v2/" }) // Inspect utility used for debugging. const util = require("util") diff --git a/test/integration/z9-rate-limits.js b/test/integration/z9-rate-limits.js index 1acde519..2ae02067 100644 --- a/test/integration/z9-rate-limits.js +++ b/test/integration/z9-rate-limits.js @@ -8,7 +8,10 @@ const chai = require("chai") const assert = chai.assert const BITBOX = require("../../lib/BITBOX").BITBOX -const bitbox = new BITBOX() +let bitbox = new BITBOX() + +if (process.env.SERVER === "local") + bitbox = new BITBOX({ restURL: "http://localhost:3000/v2/" }) // Inspect utility used for debugging. const util = require("util") From a54b6f2bd3f9f95a2b813deb64803a2154d2a575 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Mon, 10 Jun 2019 11:12:33 -0700 Subject: [PATCH 421/480] added npm script to target staging server with integration tests --- package.json | 3 ++- test/integration/address.js | 2 ++ test/integration/block.js | 2 ++ test/integration/blockchain.js | 2 ++ test/integration/price.js | 2 ++ test/integration/rawtransaction.js | 2 ++ test/integration/transaction.js | 2 ++ test/integration/util.js | 2 ++ test/integration/z9-rate-limits.js | 2 ++ 9 files changed, 18 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index ff23c873..043fb50a 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,8 @@ "test": "tsc && nyc mocha test/unit --timeout 60000 --exit", "test:no-build": "nyc mocha test/unit --timeout 60000 --exit", "test:integration": "TEST=integration nyc --reporter=text mocha --timeout 30000 test/integration", - "test:integration:local": "TEST=integration SERVER=local nyc --reporter=text mocha --timeout 30000 test/integration", + "test:integration:local": "TEST=integration SERVER=local nyc --reporter=text mocha --timeout 30000 test/integration --exit", + "test:integration:stage": "TEST=integration SERVER=stage nyc --reporter=text mocha --timeout 30000 test/integration --exit", "coverage": "nyc report --reporter=text-lcov | coveralls", "build": "tsc" }, diff --git a/test/integration/address.js b/test/integration/address.js index ca06ba7e..61782511 100644 --- a/test/integration/address.js +++ b/test/integration/address.js @@ -15,6 +15,8 @@ let bitbox = new BITBOX() if (process.env.SERVER === "local") bitbox = new BITBOX({ restURL: "http://localhost:3000/v2/" }) +if (process.env.SERVER === "stage") + bitbox = new BITBOX({ restURL: "https://rest.btctest.net/v2/" }) // Inspect utility used for debugging. const util = require("util") diff --git a/test/integration/block.js b/test/integration/block.js index e53c0116..a183f5b0 100644 --- a/test/integration/block.js +++ b/test/integration/block.js @@ -11,6 +11,8 @@ let bitbox = new BITBOX() if (process.env.SERVER === "local") bitbox = new BITBOX({ restURL: "http://localhost:3000/v2/" }) +if (process.env.SERVER === "stage") + bitbox = new BITBOX({ restURL: "https://rest.btctest.net/v2/" }) // Inspect utility used for debugging. const util = require("util") diff --git a/test/integration/blockchain.js b/test/integration/blockchain.js index a88bccd1..7b401466 100644 --- a/test/integration/blockchain.js +++ b/test/integration/blockchain.js @@ -15,6 +15,8 @@ let bitbox = new BITBOX() if (process.env.SERVER === "local") bitbox = new BITBOX({ restURL: "http://localhost:3000/v2/" }) +if (process.env.SERVER === "stage") + bitbox = new BITBOX({ restURL: "https://rest.btctest.net/v2/" }) // Inspect utility used for debugging. const util = require("util") diff --git a/test/integration/price.js b/test/integration/price.js index d21bed42..6d28a96e 100644 --- a/test/integration/price.js +++ b/test/integration/price.js @@ -4,6 +4,8 @@ let bitbox = new BITBOX() if (process.env.SERVER === "local") bitbox = new BITBOX({ restURL: "http://localhost:3000/v2/" }) +if (process.env.SERVER === "stage") + bitbox = new BITBOX({ restURL: "https://rest.btctest.net/v2/" }) describe("#price", () => { describe("#current", () => { diff --git a/test/integration/rawtransaction.js b/test/integration/rawtransaction.js index 2b010f8e..6ff44e7c 100644 --- a/test/integration/rawtransaction.js +++ b/test/integration/rawtransaction.js @@ -13,6 +13,8 @@ let bitbox = new BITBOX() if (process.env.SERVER === "local") bitbox = new BITBOX({ restURL: "http://localhost:3000/v2/" }) +if (process.env.SERVER === "stage") + bitbox = new BITBOX({ restURL: "https://rest.btctest.net/v2/" }) // Inspect utility used for debugging. const util = require("util") diff --git a/test/integration/transaction.js b/test/integration/transaction.js index f060ac18..d36476f3 100644 --- a/test/integration/transaction.js +++ b/test/integration/transaction.js @@ -11,6 +11,8 @@ let bitbox = new BITBOX() if (process.env.SERVER === "local") bitbox = new BITBOX({ restURL: "http://localhost:3000/v2/" }) +if (process.env.SERVER === "stage") + bitbox = new BITBOX({ restURL: "https://rest.btctest.net/v2/" }) // Inspect utility used for debugging. const util = require("util") diff --git a/test/integration/util.js b/test/integration/util.js index 3fc271b1..964fe3b7 100644 --- a/test/integration/util.js +++ b/test/integration/util.js @@ -11,6 +11,8 @@ let bitbox = new BITBOX() if (process.env.SERVER === "local") bitbox = new BITBOX({ restURL: "http://localhost:3000/v2/" }) +if (process.env.SERVER === "stage") + bitbox = new BITBOX({ restURL: "https://rest.btctest.net/v2/" }) // Inspect utility used for debugging. const util = require("util") diff --git a/test/integration/z9-rate-limits.js b/test/integration/z9-rate-limits.js index 2ae02067..6e9c4653 100644 --- a/test/integration/z9-rate-limits.js +++ b/test/integration/z9-rate-limits.js @@ -12,6 +12,8 @@ let bitbox = new BITBOX() if (process.env.SERVER === "local") bitbox = new BITBOX({ restURL: "http://localhost:3000/v2/" }) +if (process.env.SERVER === "stage") + bitbox = new BITBOX({ restURL: "https://rest.btctest.net/v2/" }) // Inspect utility used for debugging. const util = require("util") From 799a3e6d3c4b690a5b157baa177ba2e9a9e865aa Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 11 Jun 2019 10:13:38 -0700 Subject: [PATCH 422/480] Refactored rawtransaction unit tests --- lib/RawTransactions.ts | 25 ++-- test/unit/Address.ts | 2 +- test/unit/Block.ts | 2 +- test/unit/Blockchain.ts | 2 +- test/unit/CashAccounts.ts | 2 +- test/unit/RawTransactions.ts | 105 +++++-------- test/unit/fixtures/address-mock.js | 165 --------------------- test/unit/fixtures/block-mock.js | 29 ---- test/unit/fixtures/blockchain-mock.js | 35 ----- test/unit/fixtures/cashaccounts-mock.js | 77 ---------- test/unit/fixtures/rawtransactions-mock.js | 111 -------------- 11 files changed, 50 insertions(+), 505 deletions(-) delete mode 100644 test/unit/fixtures/address-mock.js delete mode 100644 test/unit/fixtures/block-mock.js delete mode 100644 test/unit/fixtures/blockchain-mock.js delete mode 100644 test/unit/fixtures/cashaccounts-mock.js delete mode 100644 test/unit/fixtures/rawtransactions-mock.js diff --git a/lib/RawTransactions.ts b/lib/RawTransactions.ts index 138835a1..441400a0 100644 --- a/lib/RawTransactions.ts +++ b/lib/RawTransactions.ts @@ -22,7 +22,6 @@ export class RawTransactions { // Array of hexes } else if (Array.isArray(hex)) { - // Dev note: must use axios.post for unit test stubbing. const response: AxiosResponse = await axios.post( `${this.restURL}rawtransactions/decodeRawTransaction`, @@ -52,14 +51,13 @@ export class RawTransactions { return response.data } else if (Array.isArray(script)) { - const options: AxiosRequestConfig = { - method: "POST", - url: `${this.restURL}rawtransactions/decodeScript`, - data: { + // Dev note: must use axios.post for unit test stubbing. + const response: AxiosResponse = await axios.post( + `${this.restURL}rawtransactions/decodeScript`, + { hexes: script } - } - const response: AxiosResponse = await axios(options) + ) return response.data } @@ -90,7 +88,6 @@ export class RawTransactions { return response.data } else if (Array.isArray(txid)) { - // Dev note: must use axios.post for unit test stubbing. const response: AxiosResponse = await axios.post( `${this.restURL}rawtransactions/getRawTransaction`, @@ -133,14 +130,14 @@ export class RawTransactions { // Array input } else if (Array.isArray(hex)) { - const options: AxiosRequestConfig = { - method: "POST", - url: `${this.restURL}rawtransactions/sendRawTransaction`, - data: { + + // Dev note: must use axios.post for unit test stubbing. + const response: AxiosResponse = await axios.post( + `${this.restURL}rawtransactions/sendRawTransaction`, + { hexes: hex } - } - const response: AxiosResponse = await axios(options) + ) return response.data } diff --git a/test/unit/Address.ts b/test/unit/Address.ts index e193de1a..87dfa4bc 100644 --- a/test/unit/Address.ts +++ b/test/unit/Address.ts @@ -18,7 +18,7 @@ const assert: Chai.AssertStatic = chai.assert const fixtures = require("./fixtures/Address.json") const Bitcoin = require("bitcoincashjs-lib") const sinon = require("sinon") -const addressMock = require("./fixtures/address-mock.js") +const addressMock = require("./mocks/address-mock.js") function flatten(arrays: any) { return [].concat.apply([], arrays) diff --git a/test/unit/Block.ts b/test/unit/Block.ts index d5466653..98b95f4b 100644 --- a/test/unit/Block.ts +++ b/test/unit/Block.ts @@ -11,7 +11,7 @@ import { BlockDetailsResult } from "bitcoin-com-rest" // consts const bitbox: BITBOX = new BITBOX() const assert: Chai.AssertStatic = chai.assert -const blockMock: any = require("./fixtures/block-mock") +const blockMock: any = require("./mocks/block-mock") util.inspect.defaultOptions = { showHidden: true, diff --git a/test/unit/Blockchain.ts b/test/unit/Blockchain.ts index 3da66ee0..f46b7c09 100644 --- a/test/unit/Blockchain.ts +++ b/test/unit/Blockchain.ts @@ -11,7 +11,7 @@ import { BlockHeaderResult } from "bitcoin-com-rest" // consts const bitbox: BITBOX = new BITBOX() const assert: Chai.AssertStatic = chai.assert -const blockchainMock = require("./fixtures/blockchain-mock") +const blockchainMock = require("./mocks/blockchain-mock") util.inspect.defaultOptions = { showHidden: true, diff --git a/test/unit/CashAccounts.ts b/test/unit/CashAccounts.ts index 8b24ebae..40a0c7fa 100644 --- a/test/unit/CashAccounts.ts +++ b/test/unit/CashAccounts.ts @@ -16,7 +16,7 @@ const assert: Chai.AssertStatic = chai.assert // TODO: port from require to import syntax const sinon = require("sinon") -const cashAccountsMock = require("./fixtures/cashaccounts-mock.js") +const cashAccountsMock = require("./mocks/cashaccounts-mock.js") util.inspect.defaultOptions = { showHidden: true, diff --git a/test/unit/RawTransactions.ts b/test/unit/RawTransactions.ts index 9efc421f..495269c1 100644 --- a/test/unit/RawTransactions.ts +++ b/test/unit/RawTransactions.ts @@ -13,7 +13,7 @@ import * as sinon from "sinon" // consts const bitbox: BITBOX = new BITBOX() const assert: Chai.AssertStatic = chai.assert -const rtMock = require("./fixtures/rawtransactions-mock") +const rtMock = require("./mocks/rawtransactions-mock") // Used for debugging util.inspect.defaultOptions = { depth: 1 } @@ -277,74 +277,64 @@ describe("#RawTransactions", (): void => { ) } }) - - it(`should throw error on array size rate limit`, async (): Promise< - any - > => { - try { - const dataMock: string = - "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" - const data: string[] = [] - for (let i: number = 0; i < 25; i++) data.push(dataMock) - - const result: - | VerboseRawTransactionResult - | VerboseRawTransactionResult[] - | string - | string[] = await bitbox.RawTransactions.getRawTransaction(data) - - console.log(`result: ${util.inspect(result)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) }) describe("#decodeScript", () => { it("should decode script for a single hex", async (): Promise => { + // Mock the call to rest to prevent live network calls. + const resolved = new Promise(r => r({ data: rtMock.decodedScript })) + sandbox.stub(axios, "get").returns(resolved) + const hex: string = "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" const result = await bitbox.RawTransactions.decodeScript(hex) + //console.log(`result: ${JSON.stringify(result,null,2)}`) assert.hasAllKeys(result, ["asm", "type", "p2sh"]) }) - // CT 2/20/19 - Waiting for this PR to be merged complete the test: - // https://github.com/Bitcoin-com/rest.bitcoin.com/pull/312 - /* it("should decode an array of tx hexes", async () => { + // Mock the call to rest to prevent live network calls. + const testData = [rtMock.decodedScript, rtMock.decodedScript] + const resolved = new Promise(r => r({ data: testData })) + sandbox.stub(axios, "post").returns(resolved) + const hexes = [ "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16", "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" ] const result = await bitbox.RawTransactions.decodeScript(hexes) - console.log(`result ${JSON.stringify(result, null, 2)}`) + //console.log(`result ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAnyKeys(result[0], ["asm", "type", "p2sh"]) }) -*/ - /* - it(`should throw an error for improper single input`, async () => { + + it(`should pass error from server to user`, async (): Promise => { try { - const addr = 12345 + // Mock out data for unit test, to prevent live network call. + sandbox + .stub(axios, "get") + .throws("error", "Input must be a string or array of strings") - await bitbox.RawTransactions.decodeRawTransaction(addr) + const hexes: any = 12345 + + await bitbox.RawTransactions.decodeScript(hexes) assert.equal(true, false, "Unexpected result!") } catch (err) { - //console.log(`err: `, err) + //console.log(`err: ${util.inspect(err)}`) assert.include( err.message, - `Input must be a string or array of strings.` + `Input must be a string or array of strings` ) } }) -*/ }) /* - Testing sentRawTransaction isn't really possible with an integration test, + Testing sendRawTransaction isn't really possible with an integration test, as the endpoint really needs an e2e test to be properly tested. The tests below expect error messages returned from the server, but at least test that the server is responding on those endpoints, and responds consistently. @@ -352,6 +342,9 @@ describe("#RawTransactions", (): void => { describe("sendRawTransaction", () => { it("should send a single transaction hex", async (): Promise => { try { + // Mock out data for unit test, to prevent live network call. + sandbox.stub(axios, "get").throws({ error: "Missing inputs" }) + const hex: string = "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" @@ -359,6 +352,7 @@ describe("#RawTransactions", (): void => { assert.equal(true, false, "Unexpected result!") } catch (err) { + //console.log(`err: ${util.inspect(err)}`) assert.hasAllKeys(err, ["error"]) assert.include(err.error, "Missing inputs") } @@ -366,6 +360,9 @@ describe("#RawTransactions", (): void => { it("should send an array of tx hexes", async (): Promise => { try { + // Mock out data for unit test, to prevent live network call. + sandbox.stub(axios, "post").throws({ error: "Missing inputs" }) + const hexes: string[] = [ "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000", "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" @@ -373,42 +370,10 @@ describe("#RawTransactions", (): void => { const result = await bitbox.RawTransactions.sendRawTransaction(hexes) } catch (err) { + // console.log(`err: ${util.inspect(err)}`) assert.hasAllKeys(err, ["error"]) assert.include(err.error, "Missing inputs") } }) - - it(`should throw an error for improper single input`, async (): Promise< - any - > => { - try { - const addr: any = 12345 - - await bitbox.RawTransactions.sendRawTransaction(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.include( - err.message, - `Input hex must be a string or array of strings` - ) - } - }) - - it(`should throw error on array size rate limit`, async (): Promise< - any - > => { - try { - const dataMock: string = - "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" - const data: string[] = [] - for (let i: number = 0; i < 25; i++) data.push(dataMock) - - await bitbox.RawTransactions.sendRawTransaction(data) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) }) }) diff --git a/test/unit/fixtures/address-mock.js b/test/unit/fixtures/address-mock.js deleted file mode 100644 index 146fe456..00000000 --- a/test/unit/fixtures/address-mock.js +++ /dev/null @@ -1,165 +0,0 @@ -/* - Mock data used for unit testing. -*/ - -module.exports = { - details: { - legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", - cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", - balance: 300.0828874, - balanceSat: 30008288740, - totalReceived: 12945.45174649, - totalReceivedSat: 1294545174649, - totalSent: 12645.36885909, - totalSentSat: 1264536885909, - unconfirmedBalance: 0, - unconfirmedBalanceSat: 0, - unconfirmedTxApperances: 0, - txApperances: 1042, - transactions: [ - "b29425a876f62e114508e67e66b5eb1ab0d320d7c9a57fb0ece086a36e2b7309" - ], - currentPage: 0, - pagesTotal: 1, - slpAddress: "simpleledger:qrdka2205f4hyukutc2g0s6lykperc8nsuc8pkcp7h" - }, - - // An example of address with multiple utxos. - utxos1: { - utxos: [ - { - txid: - "27ec8512c1a9ee9e9ae9b98eb60375f1d2bd60e2e76a1eff5a45afdbc517cf9c", - vout: 0, - amount: 0.001, - satoshis: 100000, - height: 560430, - confirmations: 25161 - }, - { - txid: - "6e1ae1bf7db6de799ec1c05ab2816ac65549bd80141567af088e6f291385b07d", - vout: 0, - amount: 0.0013, - satoshis: 130000, - height: 560039, - confirmations: 25552 - } - ], - legacyAddress: "1M1FYu4zuVaxRPWLZG5CnP8qQrZaqu6c2L", - cashAddress: "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", - slpAddress: "simpleledger:qrdka2205f4hyukutc2g0s6lykperc8nsuc8pkcp7h", - scriptPubKey: "76a914db6ea94fa26b7272dc5e1487c35f258391e0f38788ac" - }, - - // An example of an address with no utxos. - utxos2: { - utxos: [], - legacyAddress: "19LXyLnux1tbTdHnMuYAgDZ81ZQDWEi12g", - cashAddress: "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v", - slpAddress: "simpleledger:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4q39c44a2j", - scriptPubKey: "" - }, - - // Example of an address with an unconfirmed UTXO - unconfirmed1: { - utxos: [ - { - txid: - "3904ffe6f8fba4ceda5e887130f60fcb18bdc7dcee10392a57f89475c5c108f1", - vout: 0, - amount: 0.03608203, - satoshis: 3608203, - confirmations: 0, - ts: 1559670801 - } - ], - legacyAddress: "1AyWs8U4HUnTLmxxFiGoJbsXauRsvBrcKW", - cashAddress: "bitcoincash:qpkkjkhe29mqhqmu3evtq3dsnruuzl3rku6usknlh5", - slpAddress: "simpleledger:qpkkjkhe29mqhqmu3evtq3dsnruuzl3rkuk8mdxlf2", - scriptPubKey: "76a9146d695af951760b837c8e58b045b098f9c17e23b788ac" - }, - - // Example of an address without any unconfirmed utxos. - unconfirmed2: { - utxos: [], - legacyAddress: "1M1FYu4zuVaxRPWLZG5CnP8qQrZaqu6c2L", - cashAddress: "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", - slpAddress: "simpleledger:qrdka2205f4hyukutc2g0s6lykperc8nsuc8pkcp7h", - scriptPubKey: "76a914db6ea94fa26b7272dc5e1487c35f258391e0f38788ac" - }, - - transactions: { - pagesTotal: 1, - txs: [ - { - txid: - "ec7bc8349386e3e1939bbdc4f8092fdbdd6a380734e68486b558cd594c451d5b", - version: 2, - locktime: 0, - vin: [ - { - txid: - "4f1fc57c33659628938db740449bf92fb75799e1d5750a4aeef80eb52d6df1e0", - vout: 0, - sequence: 4294967295, - n: 0, - scriptSig: { - hex: - "483045022100a3662a19ae384a1ceddea57765e425e61b04823e976d574da3911ac6b55d7f9b02200e571d985bce987675a2d58587a346fa40c39f4df13dc88548a92c52d5b24422412103f953f7630acc15bd3f5078c698f3af777286ae955b57e4857c158f75d87adb5f", - asm: - "3045022100a3662a19ae384a1ceddea57765e425e61b04823e976d574da3911ac6b55d7f9b02200e571d985bce987675a2d58587a346fa40c39f4df13dc88548a92c52d5b24422[ALL|FORKID] 03f953f7630acc15bd3f5078c698f3af777286ae955b57e4857c158f75d87adb5f" - }, - addr: "17HPz8RQ4XM6mjre6aspvqyj1j648CZidM", - valueSat: 1111, - value: 0.00001111, - doubleSpentTxID: null - }, - { - txid: - "126d62c299e7e14c66fe0b485d13082c23641f003690462046bc24ad2d1180c1", - vout: 0, - sequence: 4294967295, - n: 1, - scriptSig: { - hex: - "47304402203e3f923207111ff9bbd2fb5ab1a49a9145ad809ee0cad0e0ddaed64bfe38dc16022012ee288fb413bd500c63f8bb95e46b6b57d34762decd46b7188478a1c398eeda412103f953f7630acc15bd3f5078c698f3af777286ae955b57e4857c158f75d87adb5f", - asm: - "304402203e3f923207111ff9bbd2fb5ab1a49a9145ad809ee0cad0e0ddaed64bfe38dc16022012ee288fb413bd500c63f8bb95e46b6b57d34762decd46b7188478a1c398eeda[ALL|FORKID] 03f953f7630acc15bd3f5078c698f3af777286ae955b57e4857c158f75d87adb5f" - }, - addr: "17HPz8RQ4XM6mjre6aspvqyj1j648CZidM", - valueSat: 1000, - value: 0.00001, - doubleSpentTxID: null - } - ], - vout: [ - { - value: "0.00001736", - n: 0, - scriptPubKey: { - hex: "76a914d96ac75ca8df9729d278da50ccd7355c5785444e88ac", - asm: - "OP_DUP OP_HASH160 d96ac75ca8df9729d278da50ccd7355c5785444e OP_EQUALVERIFY OP_CHECKSIG", - addresses: ["1LpbYkEM5cryfhs58tH8c93p4SGzit7UrP"], - type: "pubkeyhash" - }, - spentTxId: null, - spentIndex: null, - spentHeight: null - } - ], - blockheight: -1, - confirmations: 0, - time: 1559673337, - valueOut: 0.00001736, - size: 339, - valueIn: 0.00002111, - fees: 0.00000375 - } - ], - legacyAddress: "1LpbYkEM5cryfhs58tH8c93p4SGzit7UrP", - cashAddress: "bitcoincash:qrvk436u4r0ew2wj0rd9pnxhx4w90p2yfc29ta0d2n", - currentPage: 0 - } -} diff --git a/test/unit/fixtures/block-mock.js b/test/unit/fixtures/block-mock.js deleted file mode 100644 index 844140f6..00000000 --- a/test/unit/fixtures/block-mock.js +++ /dev/null @@ -1,29 +0,0 @@ -/* - Mock data used for unit testing. -*/ - -module.exports = { - details: { - hash: "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", - size: 216, - height: 507, - version: 1, - merkleroot: - "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8", - tx: ["a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8"], - time: 1231973656, - nonce: 330467862, - bits: "1d00ffff", - difficulty: 1, - chainwork: - "000000000000000000000000000000000000000000000000000001fc01fc01fc", - confirmations: 585104, - previousblockhash: - "00000000a99525c043fd7e323414b60add43c254c44860094048f9c01e9a5fdd", - nextblockhash: - "000000000d550f4161f2702165fdd782ec72ff9c541f864ebb8256b662b7e51a", - reward: 50, - isMainChain: true, - poolInfo: {} - } -} diff --git a/test/unit/fixtures/blockchain-mock.js b/test/unit/fixtures/blockchain-mock.js deleted file mode 100644 index 1e73c0b4..00000000 --- a/test/unit/fixtures/blockchain-mock.js +++ /dev/null @@ -1,35 +0,0 @@ -/* - Mock data used for unit testing. -*/ - -module.exports = { - bestBlockHash: - "0000000000000000008e1f65f875703872544aa888c7ca6587f055f8f5fbd4bf", - - blockHeader: { - hash: "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", - confirmations: 85727, - height: 500000, - version: 536870912, - versionHex: "20000000", - merkleroot: - "4af279645e1b337e655ae3286fc2ca09f58eb01efa6ab27adedd1e9e6ec19091", - time: 1509343584, - mediantime: 1509336533, - nonce: 3604508752, - bits: "1809b91a", - difficulty: 113081236211.4533, - chainwork: - "0000000000000000000000000000000000000000007ae48aca46e3b449ad9714", - previousblockhash: - "0000000000000000043831d6ebb013716f0580287ee5e5687e27d0ed72e6e523", - nextblockhash: - "00000000000000000568f0a96bf4348847bc84e455cbfec389f27311037a20f3" - }, - - txOutProof: - "0000002086a4a3161f9ba2174883ec0b93acceac3b2f37b36ed1f90000000000000000009cb02406d1094ecf3e0b4c0ca7c585125e721147c39daf6b48c90b512741e13a12333e5cb38705180f441d8c7100000008fee9b60f1edb57e5712839186277ed39e0a004a32be9096ee47472efde8eae62f789f9d7a9f59d0ea7093dea1e0c65ff0b953f1d8cf3d47f92e732ca0295f603c272d5f4a63509f7a887f2549d78af7444aa0ecbb4f66d9cbe13bc6a89f59e05a199df8325d490818ffefe6b6321d32d7496a68580459836c0183f89082fc1b491cc91b23ecdcaa4c347bf599a62904d61f1c15b400ebbd5c90149010c139d9c1e31b774b796977393a238080ab477e1d240d0c4f155d36f519668f49bae6bd8cd5b8e40522edf76faa09cca6188d83ff13af6967cc6a569d1a5e9aeb1fdb7f531ddd2d0cbb81879741d5f38166ac1932136264366a4065cc96a42e41f96294f02df01", - - verifiedProof: - "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" -} diff --git a/test/unit/fixtures/cashaccounts-mock.js b/test/unit/fixtures/cashaccounts-mock.js deleted file mode 100644 index f1be9512..00000000 --- a/test/unit/fixtures/cashaccounts-mock.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - Mock data used for unit testing. -*/ - -module.exports = { - lookup: { - identifier: "cgcardona#122;", - information: { - emoji: "🍞", - name: "cgcardona", - number: 122, - collision: { - hash: "6383276713", - count: 0, - length: 0 - }, - payment: [ - { - type: "Key Hash", - address: "bitcoincash:qrhncn6hgkhljqg4fuq4px5qg74sjz9fqqj64s9la9" - } - ] - } - }, - check: { - identifier: "cgcardona#122", - block: 563742, - results: [ - { - transaction: - "0100000001A8421264294082C08C0611E162BD49999443EF577C57923BD052F7202B09408E010000006A473044022039F4DD9AD6BC2C4E799D135BB68B5E05E71F83731EFC63260C7FB16F63BB842802203DEA9E82E97D28ADC9A9567E16762CF3663C24CE6A42AEDDC1E273E50B8CA9C941210202435C144A77C6ED76C3A74EE6006A9255B449F1B2F09FA2668027FEC106CFA1FFFFFFFF020000000000000000266A0401010101096367636172646F6E611501EF3C4F5745AFF901154F01509A8047AB0908A9008CD51100000000001976A914919908484336464C2A9938D24149A4177606340F88AC00000000", - inclusionProof: - "0000C020C98F109DA027EB72472AC903F6E2BFA993D88724734B2C01000000000000000019213AEE113214AF03EEEE303F733708AD79F259A148F4A17C496302E1D093DF7D9D2E5C4CE10418F2AE48C41F000000067AA86CA831AB260AF59E0ED93305939D9A300BD66076EB18D155143E992950C33A46C140D7202C577D6C25DCD8F315D304285D8BD890C41925F00CC256C22CC69E1410317FD69D5A58F762EE26B469DC1909F2D0DE5E471B0AC09C686C41664585DF32ABA0EEAF50B6AB66010206DE24A5C576CBC331EF153507E9E20D1C18506E24DBEDB0A0B66705E10376CD19ADB4A605098058ACB805D24456CC004CCA78ABA3969F47284773B7809C81B93E2CCCC280218272164AE5D90245A629F6801802EB00" - } - ] - }, - reverseLookup: { - results: [ - { - accountEmoji: "☯", - nameText: "Jonathan", - accountNumber: 100, - accountHash: "5876958390", - accountCollisionLength: 0, - payloadType: 1, - payloadAddress: "bitcoincash:qr4aadjrpu73d2wxwkxkcrt6gqxgu6a7usxfm96fst" - }, - { - accountEmoji: "🍭", - nameText: "ConfirmationTest", - accountNumber: 113, - accountHash: "4640561912", - accountCollisionLength: 0, - payloadType: 1, - payloadAddress: "bitcoincash:qr4aadjrpu73d2wxwkxkcrt6gqxgu6a7usxfm96fst" - }, - { - accountEmoji: "🌽", - nameText: "Bob", - accountNumber: 4035, - accountHash: "7443382842", - accountCollisionLength: 0, - payloadType: 1, - payloadAddress: "bitcoincash:qr4aadjrpu73d2wxwkxkcrt6gqxgu6a7usxfm96fst" - }, - { - accountEmoji: "🎀", - nameText: "qr4aadjrpu73d2wxwkxkcrt6gqxgu6a7usxfm96fst", - accountNumber: 7084, - accountHash: "4319915751", - accountCollisionLength: 0, - payloadType: 1, - payloadAddress: "bitcoincash:qr4aadjrpu73d2wxwkxkcrt6gqxgu6a7usxfm96fst" - } - ] - } -} diff --git a/test/unit/fixtures/rawtransactions-mock.js b/test/unit/fixtures/rawtransactions-mock.js deleted file mode 100644 index 322ab6d5..00000000 --- a/test/unit/fixtures/rawtransactions-mock.js +++ /dev/null @@ -1,111 +0,0 @@ -/* - Mock data used for unit testing. -*/ - -module.exports = { - decodedTx: { - txid: "a332237d82a2543af1b0e1ae3c8cea1610c290ebcaf084a7e9894a61de0be988", - hash: "a332237d82a2543af1b0e1ae3c8cea1610c290ebcaf084a7e9894a61de0be988", - version: 2, - size: 226, - locktime: 0, - vin: [ - { - txid: - "21cced645eab150585ed7ca7c96edebab5793cc0a3b3b286c42fd7d6d798b5b9", - vout: 1, - scriptSig: { - asm: - "3045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd41390[ALL|FORKID] 0360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413d", - hex: - "483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413d" - }, - sequence: 4294967295 - } - ], - vout: [ - { - value: 0.0001, - n: 0, - scriptPubKey: { - asm: - "OP_DUP OP_HASH160 eb4b180def88e3f5625b2d8ae2c098ff7d85f664 OP_EQUALVERIFY OP_CHECKSIG", - hex: "76a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac", - reqSigs: 1, - type: "pubkeyhash", - addresses: ["bitcoincash:qr45kxqda7yw8atztvkc4ckqnrlhmp0kvsan3xnznu"] - } - }, - { - value: 0.09989752, - n: 1, - scriptPubKey: { - asm: - "OP_DUP OP_HASH160 eb4b180def88e3f5625b2d8ae2c098ff7d85f664 OP_EQUALVERIFY OP_CHECKSIG", - hex: "76a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac", - reqSigs: 1, - type: "pubkeyhash", - addresses: ["bitcoincash:qr45kxqda7yw8atztvkc4ckqnrlhmp0kvsan3xnznu"] - } - } - ] - }, - - rawTx: - "010000000186db5c732438733e305e2e6fb6f15cab898e61202e3d8708c8cf9db90d20a862000000006a47304402202578ad648a8bab3065295155a07337d9d01c165f506e20faeaf582a9feca188602207aac7cab6e6ff9c63ff1b95543f1f2f0b866a2494d98b1bf58055094c0989e80412102b84cc40b16cf6f76ac47fff353a301f8394d9a8f0199c56269897ae3e11559eeffffffff029aa7ce06000000001976a914270f290bf8f4eba093063330b9a9e8202b66217b88acb06b3c00000000001976a9148b55a3985e74ea4137f0f1749439f161b52b861c88ac00000000", - - decodedTx: { - txid: "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", - hash: "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", - version: 1, - size: 225, - locktime: 0, - vin: [ - { - txid: - "62a8200db99dcfc808873d2e20618e89ab5cf1b66f2e5e303e733824735cdb86", - vout: 0, - scriptSig: { - asm: - "304402202578ad648a8bab3065295155a07337d9d01c165f506e20faeaf582a9feca188602207aac7cab6e6ff9c63ff1b95543f1f2f0b866a2494d98b1bf58055094c0989e80[ALL|FORKID] 02b84cc40b16cf6f76ac47fff353a301f8394d9a8f0199c56269897ae3e11559ee", - hex: - "47304402202578ad648a8bab3065295155a07337d9d01c165f506e20faeaf582a9feca188602207aac7cab6e6ff9c63ff1b95543f1f2f0b866a2494d98b1bf58055094c0989e80412102b84cc40b16cf6f76ac47fff353a301f8394d9a8f0199c56269897ae3e11559ee" - }, - sequence: 4294967295 - } - ], - vout: [ - { - value: 1.14206618, - n: 0, - scriptPubKey: { - asm: - "OP_DUP OP_HASH160 270f290bf8f4eba093063330b9a9e8202b66217b OP_EQUALVERIFY OP_CHECKSIG", - hex: "76a914270f290bf8f4eba093063330b9a9e8202b66217b88ac", - reqSigs: 1, - type: "pubkeyhash", - addresses: ["bitcoincash:qqns72gtlr6whgynqcenpwdfaqszke3p0vntl8lvhz"] - } - }, - { - value: 0.03959728, - n: 1, - scriptPubKey: { - asm: - "OP_DUP OP_HASH160 8b55a3985e74ea4137f0f1749439f161b52b861c OP_EQUALVERIFY OP_CHECKSIG", - hex: "76a9148b55a3985e74ea4137f0f1749439f161b52b861c88ac", - reqSigs: 1, - type: "pubkeyhash", - addresses: ["bitcoincash:qz94tgucte6w5sfh7rchf9pe79sm22uxrsn6dh8smf"] - } - } - ], - hex: - "010000000186db5c732438733e305e2e6fb6f15cab898e61202e3d8708c8cf9db90d20a862000000006a47304402202578ad648a8bab3065295155a07337d9d01c165f506e20faeaf582a9feca188602207aac7cab6e6ff9c63ff1b95543f1f2f0b866a2494d98b1bf58055094c0989e80412102b84cc40b16cf6f76ac47fff353a301f8394d9a8f0199c56269897ae3e11559eeffffffff029aa7ce06000000001976a914270f290bf8f4eba093063330b9a9e8202b66217b88acb06b3c00000000001976a9148b55a3985e74ea4137f0f1749439f161b52b861c88ac00000000", - blockhash: - "000000000000000003a09a7d68a0d62fd0ab51c368372e46bac84277e2df47e2", - confirmations: 20168, - time: 1547752564, - blocktime: 1547752564 - } -} From f0bd670f479cdd9675f321d2dec1508f7dc74bf2 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 11 Jun 2019 10:23:25 -0700 Subject: [PATCH 423/480] isolating transaction tests --- test/unit/Address.ts | 1395 --------------------- test/unit/BITBOX.ts | 121 -- test/unit/BitcoinCash.ts | 358 ------ test/unit/Block.ts | 146 --- test/unit/Blockchain.ts | 753 ------------ test/unit/CashAccounts.ts | 126 -- test/unit/Control.ts | 81 -- test/unit/Crypto.ts | 137 --- test/unit/ECPair.ts | 187 --- test/unit/Generating.ts | 45 - test/unit/HDNode.ts | 358 ------ test/unit/Mining.ts | 122 -- test/unit/Mnemonic.ts | 355 ------ test/unit/Price.ts | 39 - test/unit/RawTransactions.ts | 379 ------ test/unit/Script.ts | 450 ------- test/unit/TransactionBuilder.ts | 2041 ------------------------------- test/unit/Util.ts | 120 -- 18 files changed, 7213 deletions(-) delete mode 100644 test/unit/Address.ts delete mode 100644 test/unit/BITBOX.ts delete mode 100644 test/unit/BitcoinCash.ts delete mode 100644 test/unit/Block.ts delete mode 100644 test/unit/Blockchain.ts delete mode 100644 test/unit/CashAccounts.ts delete mode 100644 test/unit/Control.ts delete mode 100644 test/unit/Crypto.ts delete mode 100644 test/unit/ECPair.ts delete mode 100644 test/unit/Generating.ts delete mode 100644 test/unit/HDNode.ts delete mode 100644 test/unit/Mining.ts delete mode 100644 test/unit/Mnemonic.ts delete mode 100644 test/unit/Price.ts delete mode 100644 test/unit/RawTransactions.ts delete mode 100644 test/unit/Script.ts delete mode 100644 test/unit/TransactionBuilder.ts delete mode 100644 test/unit/Util.ts diff --git a/test/unit/Address.ts b/test/unit/Address.ts deleted file mode 100644 index 87dfa4bc..00000000 --- a/test/unit/Address.ts +++ /dev/null @@ -1,1395 +0,0 @@ -// imports -import { - AddressDetailsResult, - AddressUnconfirmedResult, - AddressUtxoResult -} from "bitcoin-com-rest" -import * as chai from "chai" -import { Address } from "../../lib/Address" -import { BITBOX, resturl } from "../../lib/BITBOX" - -import axios from "axios" - -// consts -const bitbox: BITBOX = new BITBOX() -const assert: Chai.AssertStatic = chai.assert - -// TODO: port from require to import syntax -const fixtures = require("./fixtures/Address.json") -const Bitcoin = require("bitcoincashjs-lib") -const sinon = require("sinon") -const addressMock = require("./mocks/address-mock.js") - -function flatten(arrays: any) { - return [].concat.apply([], arrays) -} - -const XPUBS: any[] = flatten([fixtures.mainnetXPub, fixtures.testnetXPub]) -const XPRIVS: any[] = flatten([fixtures.mainnetXPriv, fixtures.testnetXPriv]) - -const LEGACY_ADDRESSES: string[] = flatten([ - fixtures.legacyMainnetP2PKH, - fixtures.legacyMainnetP2SH, - fixtures.legacyTestnetP2PKH, - fixtures.legacyTestnetP2SH -]) - -const mainnet_xpubs: string[] = [] -fixtures.mainnetXPub.forEach((f: any) => { - mainnet_xpubs.push(f.xpub) -}) -const MAINNET_ADDRESSES: string[] = flatten([ - mainnet_xpubs, - fixtures.legacyMainnetP2PKH, - fixtures.legacyMainnetP2SH, - fixtures.cashaddrMainnetP2PKH -]) - -const testnet_xpubs: string[] = [] -fixtures.testnetXPub.forEach((f: any) => { - testnet_xpubs.push(f.xpub) -}) -const TESTNET_ADDRESSES: string[] = flatten([ - testnet_xpubs, - fixtures.legacyTestnetP2PKH, - fixtures.cashaddrTestnetP2PKH -]) - -const CASHADDR_ADDRESSES: string[] = flatten([ - fixtures.cashaddrMainnetP2PKH, - fixtures.cashaddrMainnetP2SH, - fixtures.cashaddrTestnetP2PKH, - fixtures.cashaddrTestnetP2SH -]) - -const CASHADDR_ADDRESSES_NO_PREFIX: string[] = CASHADDR_ADDRESSES.map( - (address: string) => { - const parts: string[] = address.split(":") - return parts[1] - } -) - -const REGTEST_ADDRESSES: string[] = fixtures.cashaddrRegTestP2PKH - -const REGTEST_ADDRESSES_NO_PREFIX: string[] = REGTEST_ADDRESSES.map( - (address: string) => { - const parts: string[] = address.split(":") - return parts[1] - } -) - -const HASH160_HASHES: string[] = flatten([ - fixtures.hash160MainnetP2PKH, - fixtures.hash160MainnetP2SH, - fixtures.hash160TestnetP2PKH, - fixtures.hash160TestnetP2SH -]) - -const P2PKH_ADDRESSES: string[] = flatten([ - fixtures.legacyMainnetP2PKH, - fixtures.legacyTestnetP2PKH, - fixtures.cashaddrMainnetP2PKH, - fixtures.cashaddrTestnetP2PKH, - fixtures.cashaddrRegTestP2PKH -]) - -const P2SH_ADDRESSES: string[] = flatten([ - fixtures.legacyMainnetP2SH, - fixtures.cashaddrMainnetP2SH -]) -const util = require("util") -util.inspect.defaultOptions = { - showHidden: true, - colors: true, - depth: 3 -} - -describe("#Address", (): void => { - describe("#AddressConstructor", (): void => { - it("should create instance of Address", (): void => { - const address: Address = new Address() - assert.equal(address instanceof Address, true) - }) - - it("should have a restURL property", (): void => { - const address: Address = new Address() - assert.equal(address.restURL, resturl) - }) - }) - - describe("#addressConversion", (): void => { - describe("#toLegacyAddress", (): void => { - it("should translate legacy address format to itself correctly", (): void => { - assert.deepEqual( - LEGACY_ADDRESSES.map((address: string) => - bitbox.Address.toLegacyAddress(address) - ), - LEGACY_ADDRESSES - ) - }) - - it("should convert cashaddr address to legacy base58Check", (): void => { - assert.deepEqual( - CASHADDR_ADDRESSES.map((address: string) => - bitbox.Address.toLegacyAddress(address) - ), - LEGACY_ADDRESSES - ) - }) - - it("should convert cashaddr regtest address to legacy base58Check", (): void => { - assert.deepEqual( - REGTEST_ADDRESSES.map((address: string) => - bitbox.Address.toLegacyAddress(address) - ), - fixtures.legacyTestnetP2PKH - ) - }) - - describe("errors", (): void => { - it("should fail when called with an invalid address", (): void => { - assert.throws(() => { - // @ts-ignore - bitbox.Address.toLegacyAddress() - }, "") - assert.throws(() => { - bitbox.Address.toLegacyAddress("some invalid address") - }, "") - }) - }) - }) - - describe("#toCashAddress", (): void => { - it("should convert legacy base58Check address to cashaddr", (): void => { - assert.deepEqual( - LEGACY_ADDRESSES.map((address: string) => - bitbox.Address.toCashAddress(address, true) - ), - CASHADDR_ADDRESSES - ) - }) - - it("should convert legacy base58Check address to regtest cashaddr", (): void => { - assert.deepEqual( - fixtures.legacyTestnetP2PKH.map((address: string) => - bitbox.Address.toCashAddress(address, true, true) - ), - REGTEST_ADDRESSES - ) - }) - - it("should translate cashaddr address format to itself correctly", (): void => { - assert.deepEqual( - CASHADDR_ADDRESSES.map((address: string) => - bitbox.Address.toCashAddress(address, true) - ), - CASHADDR_ADDRESSES - ) - }) - - it("should translate regtest cashaddr address format to itself correctly", (): void => { - assert.deepEqual( - REGTEST_ADDRESSES.map((address: string) => - bitbox.Address.toCashAddress(address, true, true) - ), - REGTEST_ADDRESSES - ) - }) - - it("should translate no-prefix cashaddr address format to itself correctly", (): void => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => - bitbox.Address.toCashAddress(address, true) - ), - CASHADDR_ADDRESSES - ) - }) - - it("should translate no-prefix regtest cashaddr address format to itself correctly", (): void => { - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => - bitbox.Address.toCashAddress(address, true, true) - ), - REGTEST_ADDRESSES - ) - }) - - it("should translate cashaddr address format to itself of no-prefix correctly", (): void => { - CASHADDR_ADDRESSES.forEach((address: string) => { - const noPrefix = bitbox.Address.toCashAddress(address, false) - assert.equal(address.split(":")[1], noPrefix) - }) - }) - - it("should translate regtest cashaddr address format to itself of no-prefix correctly", (): void => { - REGTEST_ADDRESSES.forEach((address: string) => { - const noPrefix = bitbox.Address.toCashAddress(address, false, true) - assert.equal(address.split(":")[1], noPrefix) - }) - }) - - describe("errors", (): void => { - it("should fail when called with an invalid address", (): void => { - assert.throws(() => { - // @ts-ignore - bitbox.Address.toCashAddress() - }, "") - assert.throws(() => { - bitbox.Address.toCashAddress("some invalid address") - }, "") - }) - }) - }) - describe("#legacyToHash160", (): void => { - it("should convert legacy base58check address to hash160", (): void => { - assert.deepEqual( - LEGACY_ADDRESSES.map((address: string) => - bitbox.Address.legacyToHash160(address) - ), - HASH160_HASHES - ) - }) - - describe("errors", (): void => { - it("should fail when called with an invalid address", (): void => { - assert.throws(() => { - // @ts-ignore - bitbox.Address.legacyToHash160() - }, "") - assert.throws(() => { - bitbox.Address.legacyToHash160("some invalid address") - }, "") - }) - }) - }) - describe("#cashToHash160", (): void => { - it("should convert cashaddr address to hash160", (): void => { - assert.deepEqual( - CASHADDR_ADDRESSES.map((address: string) => - bitbox.Address.cashToHash160(address) - ), - HASH160_HASHES - ) - }) - - describe("errors", (): void => { - it("should fail when called with an invalid address", (): void => { - assert.throws(() => { - // @ts-ignore - bitbox.Address.cashToHash160() - }, "") - assert.throws(() => { - bitbox.Address.cashToHash160("some invalid address") - }, "") - }) - }) - }) - // describe("#regtestToHash160", () => { - // it("should convert regtest address to hash160", () => { - // assert.deepEqual( - // REGTEST_ADDRESSES.map((address: string) => - // bitbox.Address.regtestToHash160(address) - // ), - // fixtures.hash160TestnetP2PKH - // ) - // }) - // - // describe("errors", () => { - // it("should fail when called with an invalid address", () => { - // assert.throws(() => { - // bitbox.Address.regtestToHash160() - // }, '') - // assert.throws(() => { - // bitbox.Address.regtestToHash160("some invalid address") - // }, '') - // }) - // }) - // }) - describe("#fromHash160", (): void => { - it("should convert hash160 to mainnet P2PKH legacy base58check address", (): void => { - assert.deepEqual( - fixtures.hash160MainnetP2PKH.map((hash160: string) => - bitbox.Address.hash160ToLegacy(hash160) - ), - fixtures.legacyMainnetP2PKH - ) - }) - - it("should convert hash160 to mainnet P2SH legacy base58check address", (): void => { - assert.deepEqual( - fixtures.hash160MainnetP2SH.map((hash160: string) => - bitbox.Address.hash160ToLegacy( - hash160, - Bitcoin.networks.bitcoin.scriptHash - ) - ), - fixtures.legacyMainnetP2SH - ) - }) - - it("should convert hash160 to testnet P2PKH legacy base58check address", (): void => { - assert.deepEqual( - fixtures.hash160TestnetP2PKH.map((hash160: string) => - bitbox.Address.hash160ToLegacy( - hash160, - Bitcoin.networks.testnet.pubKeyHash - ) - ), - fixtures.legacyTestnetP2PKH - ) - }) - - it("should convert hash160 to mainnet P2PKH cash address", (): void => { - assert.deepEqual( - fixtures.hash160MainnetP2PKH.map((hash160: string) => - bitbox.Address.hash160ToCash(hash160) - ), - fixtures.cashaddrMainnetP2PKH - ) - }) - - it("should convert hash160 to mainnet P2SH cash address", (): void => { - assert.deepEqual( - fixtures.hash160MainnetP2SH.map((hash160: string) => - bitbox.Address.hash160ToCash( - hash160, - Bitcoin.networks.bitcoin.scriptHash - ) - ), - fixtures.cashaddrMainnetP2SH - ) - }) - - it("should convert hash160 to testnet P2PKH cash address", (): void => { - assert.deepEqual( - fixtures.hash160TestnetP2PKH.map((hash160: string) => - bitbox.Address.hash160ToCash( - hash160, - Bitcoin.networks.testnet.pubKeyHash - ) - ), - fixtures.cashaddrTestnetP2PKH - ) - }) - - it("should convert hash160 to regtest P2PKH cash address", (): void => { - assert.deepEqual( - fixtures.hash160TestnetP2PKH.map((hash160: string) => - bitbox.Address.hash160ToCash( - hash160, - Bitcoin.networks.testnet.pubKeyHash, - true - ) - ), - REGTEST_ADDRESSES - ) - }) - - describe("errors", (): void => { - it("should fail when called with an invalid address", (): void => { - assert.throws(() => { - // @ts-ignore - bitbox.Address.hash160ToLegacy() - }, "") - assert.throws(() => { - bitbox.Address.hash160ToLegacy("some invalid address") - }, "") - assert.throws(() => { - // @ts-ignore - bitbox.Address.hash160ToCash() - }, "") - assert.throws(() => { - bitbox.Address.hash160ToCash("some invalid address") - }, "") - }) - }) - }) - }) - - describe("address format detection", (): void => { - describe("#isLegacyAddress", (): void => { - describe("is legacy", (): void => { - LEGACY_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a legacy base58Check address`, (): void => { - const isBase58Check = bitbox.Address.isLegacyAddress(address) - assert.equal(isBase58Check, true) - }) - }) - }) - describe("is not legacy", (): void => { - CASHADDR_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is not a legacy address`, (): void => { - const isBase58Check = bitbox.Address.isLegacyAddress(address) - assert.equal(isBase58Check, false) - }) - }) - - REGTEST_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is not a legacy address`, (): void => { - const isBase58Check = bitbox.Address.isLegacyAddress(address) - assert.equal(isBase58Check, false) - }) - }) - }) - - describe("errors", (): void => { - it("should fail when called with an invalid address", (): void => { - assert.throws(() => { - // @ts-ignore - bitbox.Address.isLegacyAddress() - }, "") - assert.throws(() => { - bitbox.Address.isLegacyAddress("some invalid address") - }, "") - }) - }) - }) - - describe("#isCashAddress", (): void => { - describe("is cashaddr", (): void => { - CASHADDR_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a cashaddr address`, (): void => { - const isCashaddr = bitbox.Address.isCashAddress(address) - assert.equal(isCashaddr, true) - }) - }) - - REGTEST_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a cashaddr address`, (): void => { - const isCashaddr = bitbox.Address.isCashAddress(address) - assert.equal(isCashaddr, true) - }) - }) - }) - - describe("is not cashaddr", (): void => { - LEGACY_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is not a cashaddr address`, (): void => { - const isCashaddr = bitbox.Address.isCashAddress(address) - assert.equal(isCashaddr, false) - }) - }) - }) - - describe("errors", (): void => { - it("should fail when called with an invalid address", (): void => { - assert.throws(() => { - // @ts-ignore - bitbox.Address.isCashAddress() - }, "") - assert.throws(() => { - bitbox.Address.isCashAddress("some invalid address") - }, "") - }) - }) - }) - describe("#isHash160", (): void => { - describe("is hash160", (): void => { - HASH160_HASHES.forEach((address: string) => { - it(`should detect ${address} is a hash160 hash`, (): void => { - const isHash160 = bitbox.Address.isHash160(address) - assert.equal(isHash160, true) - }) - }) - }) - describe("is not hash160", (): void => { - LEGACY_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is not a hash160 hash`, (): void => { - const isHash160 = bitbox.Address.isHash160(address) - assert.equal(isHash160, false) - }) - }) - - CASHADDR_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is not a hash160 hash`, (): void => { - const isHash160 = bitbox.Address.isHash160(address) - assert.equal(isHash160, false) - }) - }) - - REGTEST_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is not a legacy address`, (): void => { - const isHash160 = bitbox.Address.isHash160(address) - assert.equal(isHash160, false) - }) - }) - }) - - describe("errors", (): void => { - it("should fail when called with an invalid address", (): void => { - assert.throws(() => { - // @ts-ignore - bitbox.Address.isHash160() - }, "") - assert.throws(() => { - bitbox.Address.isHash160("some invalid address") - }, "") - }) - }) - }) - }) - - describe("network detection", (): void => { - describe("#isMainnetAddress", (): void => { - describe("is mainnet", (): void => { - MAINNET_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a mainnet address`, (): void => { - const isMainnet = bitbox.Address.isMainnetAddress(address) - assert.equal(isMainnet, true) - }) - }) - }) - - describe("is not mainnet", (): void => { - TESTNET_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is not a mainnet address`, (): void => { - const isMainnet = bitbox.Address.isMainnetAddress(address) - assert.equal(isMainnet, false) - }) - }) - - REGTEST_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is not a mainnet address`, (): void => { - const isMainnet = bitbox.Address.isMainnetAddress(address) - assert.equal(isMainnet, false) - }) - }) - }) - - describe("errors", (): void => { - it("should fail when called with an invalid address", (): void => { - assert.throws(() => { - // @ts-ignore - bitbox.Address.isMainnetAddress() - }, "") - assert.throws(() => { - bitbox.Address.isMainnetAddress("some invalid address") - }, "") - }) - }) - }) - - describe("#isTestnetAddress", (): void => { - describe("is testnet", (): void => { - TESTNET_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a testnet address`, (): void => { - const isTestnet = bitbox.Address.isTestnetAddress(address) - assert.equal(isTestnet, true) - }) - }) - }) - - describe("is not testnet", (): void => { - MAINNET_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is not a testnet address`, (): void => { - const isTestnet = bitbox.Address.isTestnetAddress(address) - assert.equal(isTestnet, false) - }) - }) - - REGTEST_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is not a testnet address`, (): void => { - const isTestnet = bitbox.Address.isTestnetAddress(address) - assert.equal(isTestnet, false) - }) - }) - }) - - describe("errors", (): void => { - it("should fail when called with an invalid address", (): void => { - assert.throws(() => { - // @ts-ignore - bitbox.Address.isTestnetAddress() - }, "") - assert.throws(() => { - bitbox.Address.isTestnetAddress("some invalid address") - }, "") - }) - }) - }) - - describe("#isRegTestAddress", (): void => { - describe("is testnet", () => { - REGTEST_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a regtest address`, (): void => { - const isRegTest = bitbox.Address.isRegTestAddress(address) - assert.equal(isRegTest, true) - }) - }) - }) - - describe("is not testnet", (): void => { - MAINNET_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is not a regtest address`, (): void => { - const isRegTest = bitbox.Address.isRegTestAddress(address) - assert.equal(isRegTest, false) - }) - }) - - TESTNET_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is not a regtest address`, (): void => { - const isRegTest = bitbox.Address.isRegTestAddress(address) - assert.equal(isRegTest, false) - }) - }) - }) - - describe("errors", (): void => { - it("should fail when called with an invalid address", (): void => { - assert.throws(() => { - // @ts-ignore - bitbox.Address.isRegTestAddress() - }, "") - assert.throws(() => { - bitbox.Address.isRegTestAddress("some invalid address") - }, "") - }) - }) - }) - }) - - describe("address type detection", (): void => { - describe("#isP2PKHAddress", (): void => { - describe("is P2PKH", (): void => { - P2PKH_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a P2PKH address`, (): void => { - const isP2PKH = bitbox.Address.isP2PKHAddress(address) - assert.equal(isP2PKH, true) - }) - }) - }) - - describe("is not P2PKH", (): void => { - P2SH_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is not a P2PKH address`, (): void => { - const isP2PKH = bitbox.Address.isP2PKHAddress(address) - assert.equal(isP2PKH, false) - }) - }) - }) - - describe("errors", (): void => { - it("should fail when called with an invalid address", (): void => { - assert.throws(() => { - // @ts-ignore - bitbox.Address.isP2PKHAddress() - }, "") - assert.throws(() => { - bitbox.Address.isP2PKHAddress("some invalid address") - }, "") - }) - }) - }) - - describe("#isP2SHAddress", (): void => { - describe("is P2SH", (): void => { - P2SH_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a P2SH address`, (): void => { - const isP2SH = bitbox.Address.isP2SHAddress(address) - assert.equal(isP2SH, true) - }) - }) - }) - - describe("is not P2SH", (): void => { - P2PKH_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is not a P2SH address`, (): void => { - const isP2SH = bitbox.Address.isP2SHAddress(address) - assert.equal(isP2SH, false) - }) - }) - }) - - describe("errors", (): void => { - it("should fail when called with an invalid address", (): void => { - assert.throws(() => { - // @ts-ignore - bitbox.Address.isP2SHAddress() - }, "") - assert.throws(() => { - bitbox.Address.isP2SHAddress("some invalid address") - }, "") - }) - }) - }) - }) - - describe("cashaddr prefix detection", (): void => { - it("should return the same result for detectAddressFormat", (): void => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => - bitbox.Address.detectAddressFormat(address) - ), - CASHADDR_ADDRESSES.map((address: string) => - bitbox.Address.detectAddressFormat(address) - ) - ) - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => - bitbox.Address.detectAddressFormat(address) - ), - REGTEST_ADDRESSES.map((address: string) => - bitbox.Address.detectAddressFormat(address) - ) - ) - }) - it("should return the same result for detectAddressNetwork", (): void => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => - bitbox.Address.detectAddressNetwork(address) - ), - CASHADDR_ADDRESSES.map((address: string) => - bitbox.Address.detectAddressNetwork(address) - ) - ) - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => - bitbox.Address.detectAddressNetwork(address) - ), - REGTEST_ADDRESSES.map((address: string) => - bitbox.Address.detectAddressNetwork(address) - ) - ) - }) - it("should return the same result for detectAddressType", (): void => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => - bitbox.Address.detectAddressType(address) - ), - CASHADDR_ADDRESSES.map((address: string) => - bitbox.Address.detectAddressType(address) - ) - ) - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => - bitbox.Address.detectAddressType(address) - ), - REGTEST_ADDRESSES.map((address: string) => - bitbox.Address.detectAddressType(address) - ) - ) - }) - it("should return the same result for toLegacyAddress", (): void => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => - bitbox.Address.toLegacyAddress(address) - ), - CASHADDR_ADDRESSES.map((address: string) => - bitbox.Address.toLegacyAddress(address) - ) - ) - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => - bitbox.Address.toLegacyAddress(address) - ), - REGTEST_ADDRESSES.map((address: string) => - bitbox.Address.toLegacyAddress(address) - ) - ) - }) - it("should return the same result for isLegacyAddress", (): void => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => - bitbox.Address.isLegacyAddress(address) - ), - CASHADDR_ADDRESSES.map((address: string) => - bitbox.Address.isLegacyAddress(address) - ) - ) - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => - bitbox.Address.isLegacyAddress(address) - ), - REGTEST_ADDRESSES.map((address: string) => - bitbox.Address.isLegacyAddress(address) - ) - ) - }) - it("should return the same result for isCashAddress", (): void => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => - bitbox.Address.isCashAddress(address) - ), - CASHADDR_ADDRESSES.map((address: string) => - bitbox.Address.isCashAddress(address) - ) - ) - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => - bitbox.Address.isCashAddress(address) - ), - REGTEST_ADDRESSES.map((address: string) => - bitbox.Address.isCashAddress(address) - ) - ) - }) - it("should return the same result for isMainnetAddress", (): void => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => - bitbox.Address.isMainnetAddress(address) - ), - CASHADDR_ADDRESSES.map((address: string) => - bitbox.Address.isMainnetAddress(address) - ) - ) - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => - bitbox.Address.isMainnetAddress(address) - ), - REGTEST_ADDRESSES.map((address: string) => - bitbox.Address.isMainnetAddress(address) - ) - ) - }) - it("should return the same result for isTestnetAddress", (): void => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => - bitbox.Address.isTestnetAddress(address) - ), - CASHADDR_ADDRESSES.map((address: string) => - bitbox.Address.isTestnetAddress(address) - ) - ) - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => - bitbox.Address.isTestnetAddress(address) - ), - REGTEST_ADDRESSES.map((address: string) => - bitbox.Address.isTestnetAddress(address) - ) - ) - }) - it("should return the same result for isP2PKHAddress", (): void => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => - bitbox.Address.isP2PKHAddress(address) - ), - CASHADDR_ADDRESSES.map((address: string) => - bitbox.Address.isP2PKHAddress(address) - ) - ) - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => - bitbox.Address.isP2PKHAddress(address) - ), - REGTEST_ADDRESSES.map((address: string) => - bitbox.Address.isP2PKHAddress(address) - ) - ) - }) - it("should return the same result for isP2SHAddress", (): void => { - assert.deepEqual( - CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => - bitbox.Address.isP2SHAddress(address) - ), - CASHADDR_ADDRESSES.map((address: string) => - bitbox.Address.isP2SHAddress(address) - ) - ) - assert.deepEqual( - REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => - bitbox.Address.isP2SHAddress(address) - ), - REGTEST_ADDRESSES.map((address: string) => - bitbox.Address.isP2SHAddress(address) - ) - ) - }) - }) - - describe("#detectAddressFormat", (): void => { - LEGACY_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a legacy base58Check address`, (): void => { - const isBase58Check = bitbox.Address.detectAddressFormat(address) - assert.equal(isBase58Check, "legacy") - }) - }) - - CASHADDR_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a legacy cashaddr address`, (): void => { - const isCashaddr = bitbox.Address.detectAddressFormat(address) - assert.equal(isCashaddr, "cashaddr") - }) - }) - - REGTEST_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a legacy cashaddr address`, (): void => { - const isCashaddr = bitbox.Address.detectAddressFormat(address) - assert.equal(isCashaddr, "cashaddr") - }) - }) - - describe("errors", (): void => { - it("should fail when called with an invalid address", (): void => { - assert.throws(() => { - // @ts-ignore - bitbox.Address.detectAddressFormat() - }, "") - assert.throws(() => { - bitbox.Address.detectAddressFormat("some invalid address") - }, "") - }) - }) - }) - - describe("#detectAddressNetwork", (): void => { - MAINNET_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a mainnet address`, (): void => { - const isMainnet = bitbox.Address.detectAddressNetwork(address) - assert.equal(isMainnet, "mainnet") - }) - }) - - TESTNET_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a testnet address`, (): void => { - const isTestnet = bitbox.Address.detectAddressNetwork(address) - assert.equal(isTestnet, "testnet") - }) - }) - - REGTEST_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a testnet address`, (): void => { - const isTestnet = bitbox.Address.detectAddressNetwork(address) - assert.equal(isTestnet, "regtest") - }) - }) - - describe("errors", (): void => { - it("should fail when called with an invalid address", (): void => { - assert.throws(() => { - // @ts-ignore - bitbox.Address.detectAddressNetwork() - }, "") - assert.throws(() => { - bitbox.Address.detectAddressNetwork("some invalid address") - }, "") - }) - }) - }) - - describe("#detectAddressType", (): void => { - P2PKH_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a P2PKH address`, (): void => { - const isP2PKH: string = bitbox.Address.detectAddressType(address) - assert.equal(isP2PKH, "p2pkh") - }) - }) - - P2SH_ADDRESSES.forEach((address: string) => { - it(`should detect ${address} is a P2SH address`, (): void => { - const isP2SH: string = bitbox.Address.detectAddressType(address) - assert.equal(isP2SH, "p2sh") - }) - }) - - describe("errors", (): void => { - it("should fail when called with an invalid address", (): void => { - assert.throws(() => { - // @ts-ignore - bitbox.Address.detectAddressType() - }, "") - assert.throws(() => { - bitbox.Address.detectAddressType("some invalid address") - }, "") - }) - }) - }) - - describe("#fromXPub", (): void => { - XPUBS.forEach( - (xpub: any): void => { - xpub.addresses.forEach( - (address: any, j: number): void => { - it(`should generate public external change address ${j} for ${ - xpub.xpub - }`, (): void => { - assert.equal( - bitbox.Address.fromXPub(xpub.xpub, `0/${j}`), - address - ) - }) - } - ) - } - ) - - it(`should generate public external change address ${ - XPUBS[0].addresses[0] - } for ${XPUBS[0].xpub}`, (): void => { - const address: string = XPUBS[0].addresses[0] - assert.equal(bitbox.Address.fromXPub(XPUBS[0].xpub), address) - }) - }) - - describe("#fromXPriv", (): void => { - XPRIVS.forEach( - (xpriv: any): void => { - xpriv.addresses.forEach( - (address: string, j: number): void => { - it(`should generate hardened address ${j} for ${ - xpriv.xpriv - }`, (): void => { - assert.equal( - bitbox.Address.fromXPriv(xpriv.xpriv, `0'/${j}`), - address - ) - }) - } - ) - } - ) - - it(`should generate hardened address ${XPRIVS[0].addresses[0]} for ${ - XPRIVS[0].xpriv - }`, (): void => { - const address: string = XPRIVS[0].addresses[0] - assert.equal(bitbox.Address.fromXPriv(XPRIVS[0].xpriv), address) - }) - }) - - describe("#fromOutputScript", (): void => { - const script: Buffer = bitbox.Script.encode([ - Buffer.from("BOX", "ascii"), - bitbox.Script.opcodes.OP_CAT, - Buffer.from("BITBOX", "ascii"), - bitbox.Script.opcodes.OP_EQUAL - ]) - - // hash160 script buffer - const p2sh_hash160: Buffer = bitbox.Crypto.hash160(script) - - // encode hash160 as P2SH output - const scriptPubKey: Buffer = bitbox.Script.encodeP2SHOutput(p2sh_hash160) - fixtures.p2shMainnet.forEach( - (address: string): void => { - const p2shAddress: string = bitbox.Address.fromOutputScript( - scriptPubKey - ) - it(`generate mainnet address from output script`, (): void => { - assert.equal(p2shAddress, address) - }) - } - ) - - fixtures.p2shTestnet.forEach( - (address: string): void => { - const p2shAddress: any = bitbox.Address.fromOutputScript( - scriptPubKey, - "testnet" - ) - it(`generate testnet address from output script`, (): void => { - assert.equal(p2shAddress, address) - }) - } - ) - }) - - describe("#details", () => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it(`should GET address details for a single address`, async (): Promise< - any - > => { - // Mock out data for unit test, to prevent live network call. - const data: any = addressMock.details - const resolved: any = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - const addr: string = - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - - const result: - | AddressDetailsResult - | AddressDetailsResult[] = await bitbox.Address.details(addr) - //console.log(`result: ${JSON.stringify(result,null,2)}`) - - assert.hasAllKeys(result, [ - "balance", - "balanceSat", - "totalReceived", - "totalReceivedSat", - "totalSent", - "totalSentSat", - "unconfirmedBalance", - "unconfirmedBalanceSat", - "unconfirmedTxApperances", - "txApperances", - "transactions", - "legacyAddress", - "cashAddress", - "slpAddress", - "currentPage", - "pagesTotal" - ]) - if (!Array.isArray(result)) assert.isArray(result.transactions) - }) - - it(`should POST address details for an array of addresses`, async (): Promise< - any - > => { - const addr: string[] = [ - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", - "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" - ] - - // Mock out data for unit test, to prevent live network call. - const data: any = [addressMock.details, addressMock.details] - const resolved: any = new Promise(r => r({ data: data })) - sandbox.stub(axios, "post").returns(resolved) - - const result: - | AddressDetailsResult - | AddressDetailsResult[] = await bitbox.Address.details(addr) - //console.log(`result: ${JSON.stringify(result,null,2)}`) - - assert.isArray(result) - if (Array.isArray(result)) { - assert.hasAllKeys(result[0], [ - "balance", - "balanceSat", - "totalReceived", - "totalReceivedSat", - "totalSent", - "totalSentSat", - "unconfirmedBalance", - "unconfirmedBalanceSat", - "unconfirmedTxApperances", - "txApperances", - "transactions", - "legacyAddress", - "cashAddress", - "slpAddress", - "currentPage", - "pagesTotal" - ]) - assert.isArray(result[0].transactions) - } - }) - - it(`should pass error from server to user`, async () => { - try { - // Mock out data for unit test, to prevent live network call. - sandbox - .stub(axios, "get") - .throws( - "error", - "Input address must be a string or array of strings." - ) - - const addr: any = 12345 - - await bitbox.Address.details(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input address must be a string or array of strings` - ) - } - }) - }) - - describe("#utxo", () => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it(`should GET utxo details for a single address`, async (): Promise< - any - > => { - // Mock out data for unit test, to prevent live network call. - const data: any = addressMock.utxos1 - const resolved: any = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - const addr: string = - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - - const result: any = await bitbox.Address.utxo(addr) - //console.log(`result: ${JSON.stringify(result,null,2)}`) - - assert.deepEqual(addressMock.utxos1, result) - }) - - it(`should POST utxo details for an array of addresses`, async (): Promise< - any - > => { - const addr: string[] = [ - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", - "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" - ] - - // Mock out data for unit test, to prevent live network call. - const data: any = [addressMock.utxos1, addressMock.utxos2] - const resolved: any = new Promise(r => r({ data: data })) - sandbox.stub(axios, "post").returns(resolved) - - const result: any = await bitbox.Address.utxo(addr) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.isArray(result) - assert.hasAllKeys(result[0], [ - "utxos", - "legacyAddress", - "cashAddress", - "slpAddress", - "scriptPubKey" - ]) - assert.isArray(result[0].utxos) - }) - - it(`should pass error from server to user`, async () => { - try { - // Mock out data for unit test, to prevent live network call. - sandbox - .stub(axios, "get") - .throws( - "error", - "Input address must be a string or array of strings." - ) - - const addr: any = 12345 - - await bitbox.Address.utxo(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input address must be a string or array of strings` - ) - } - }) - }) - - describe("#unconfirmed", () => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it(`should GET unconfirmed utxos for a single address`, async (): Promise< - any - > => { - // Mock out data for unit test, to prevent live network call. - const data: any = addressMock.unconfirmed1 - const resolved: any = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - const addr: string = - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - - const result: any = await bitbox.Address.unconfirmed(addr) - //console.log(`result: ${JSON.stringify(result,null,2)}`) - - assert.deepEqual(addressMock.unconfirmed1, result) - }) - - it(`should POST unconfirmed details for an array of addresses`, async (): Promise< - any - > => { - const addr: string[] = [ - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", - "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" - ] - - // Mock out data for unit test, to prevent live network call. - const data: any = [addressMock.unconfirmed1, addressMock.unconfirmed2] - const resolved: any = new Promise(r => r({ data: data })) - sandbox.stub(axios, "post").returns(resolved) - - const result: any = await bitbox.Address.unconfirmed(addr) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.deepEqual(data, result) - }) - - it(`should pass error from server to user`, async () => { - try { - // Mock out data for unit test, to prevent live network call. - sandbox - .stub(axios, "get") - .throws( - "error", - "Input address must be a string or array of strings." - ) - - const addr: any = 12345 - - await bitbox.Address.unconfirmed(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input address must be a string or array of strings` - ) - } - }) - }) - - describe(`#transactions`, (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it(`should GET transactions for a single address`, async (): Promise< - any - > => { - // Mock out data for unit test, to prevent live network call. - const data: any = addressMock.transactions - const resolved: any = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - const addr: string = - "bitcoincash:qrvk436u4r0ew2wj0rd9pnxhx4w90p2yfc29ta0d2n" - - const result: any = await bitbox.Address.transactions(addr) - //console.log(`result: ${JSON.stringify(result,null,2)}`) - - assert.deepEqual(data, result) - }) - - it(`should get transactions on multiple addresses`, async (): Promise< - any - > => { - // Mock out data for unit test, to prevent live network call. - const data: any = [addressMock.transactions, addressMock.transactions] - const resolved: any = new Promise(r => r({ data: data })) - sandbox.stub(axios, "post").returns(resolved) - - const addr: string[] = [ - "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", - "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" - ] - const result: any = await bitbox.Address.transactions(addr) - - assert.deepEqual(data, result) - }) - - it(`should pass error from server to user`, async () => { - try { - // Mock out data for unit test, to prevent live network call. - sandbox - .stub(axios, "get") - .throws( - "error", - "Input address must be a string or array of strings." - ) - - const addr: any = 12345 - - await bitbox.Address.transactions(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input address must be a string or array of strings` - ) - } - }) - }) -}) diff --git a/test/unit/BITBOX.ts b/test/unit/BITBOX.ts deleted file mode 100644 index 48ebbbb0..00000000 --- a/test/unit/BITBOX.ts +++ /dev/null @@ -1,121 +0,0 @@ -// imports -import * as assert from "assert"; -import { BITBOX } from "../../lib/BITBOX" -import { Address } from "../../lib/Address" -import { BitcoinCash } from "../../lib/BitcoinCash" -import { Block } from "../../lib/Block" -import { Blockchain } from "../../lib/Blockchain" -import { Control } from "../../lib/Control" -import { Generating } from "../../lib/Generating" -import { HDNode } from "../../lib/HDNode" -import { Mining } from "../../lib/Mining" -import { Mnemonic } from "../../lib/Mnemonic" -import { Price } from "../../lib/Price" -import { RawTransactions } from "../../lib/RawTransactions" -import { Script } from "../../lib/Script" -import { Transaction } from "../../lib/Transaction" -import { TransactionBuilder } from "../../lib/TransactionBuilder" -import { Util } from "../../lib/Util" -import { Schnorr } from "../../lib/Schnorr" -import { resturl } from "../../lib/BITBOX" -import { Socket } from "../../lib/Socket" - - -describe("#BITBOX", (): void => { - describe("#BITBOXConstructor", (): void => { - it("should create instance of BITBOX", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) - assert.equal(bitbox instanceof BITBOX, true) - }) - - it("should have a restURL property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: "https://rest.bitcoin.com/v2/" }) - assert.equal(bitbox.restURL, resturl) - }) - - it("should have a Address property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Address instanceof Address, true) - }) - - it("should have a BitcoinCash property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.BitcoinCash instanceof BitcoinCash, true) - }) - - it("should have a Block property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Block instanceof Block, true) - }) - - it("should have a Blockchain property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Blockchain instanceof Blockchain, true) - }) - - it("should have a Control property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Control instanceof Control, true) - }) - - it("should have a Generating property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Generating instanceof Generating, true) - }) - - it("should have a HDNode property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.HDNode instanceof HDNode, true) - }) - - it("should have a Mining property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Mining instanceof Mining, true) - }) - - it("should have a Mnemonic property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Mnemonic instanceof Mnemonic, true) - }) - - it("should have a Price property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Price instanceof Price, true) - }) - - it("should have a RawTransactions property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.RawTransactions instanceof RawTransactions, true) - }) - - it("should have a Script property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Script instanceof Script, true) - }) - - it("should have a Transaction property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Transaction instanceof Transaction, true) - }) - - // it("should have a TransactionBuilder property", (): void => { - // const bitbox: BITBOX = new BITBOX({ restURL: resturl }) - // assert.equal(bitbox.TransactionBuilder instanceof TransactionBuilder, true) - // }) - - it("should have a Util property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Util instanceof Util, true) - }) - - it("should have a Schnorr property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) - assert.equal(bitbox.Schnorr instanceof Schnorr, true) - }) - - it("should have a Socket property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) - assert.strictEqual(bitbox.Socket, Socket) - }) - }) -}) diff --git a/test/unit/BitcoinCash.ts b/test/unit/BitcoinCash.ts deleted file mode 100644 index 02196609..00000000 --- a/test/unit/BitcoinCash.ts +++ /dev/null @@ -1,358 +0,0 @@ -// imports -import * as chai from "chai" -import { BITBOX } from "../../lib/BITBOX" -import { BitcoinCash, BIP21Object } from "../../lib/BitcoinCash" - -// consts -const bitbox: BITBOX = new BITBOX() -const assert: Chai.AssertStatic = chai.assert - -// TODO: port from require to import syntax -const fixtures = require("./fixtures/BitcoinCash.json") - -// TODO -// 1. generate testnet p2sh -// 2. generate cashaddr mainnet p2sh -// 3. generate cashaddr testnet p2sh -// 4. create BITBOX fromBase58 method -// * confirm xpub cannot generate WIF -// * confirm xpriv can generate WIF -// 5. create fromXPriv method w/ tests and docs -// 1. mainnet -// * confirm xpriv generates address -// * confirm xpriv generates WIF -// 2. testnet -// * confirm xpriv generates address -// * confirm xpriv generates WIF -// 6. More error test cases. - -describe("#BitcoinCash", (): void => { - - describe("#BitcoinCashConstructor", (): void => { - it("should create instance of BitcoinCash", (): void => { - const bitcoinCash: BitcoinCash = new BitcoinCash() - assert.equal(bitcoinCash instanceof BitcoinCash, true) - }) - }) - - describe("price conversion", (): void => { - describe("#toBitcoinCash", (): void => { - fixtures.conversion.toBCH.satoshis.forEach((satoshi: any): void => { - it(`should convert ${satoshi[0]} Satoshis to ${ - satoshi[1] - } $BCH`, (): void => { - assert.equal(bitbox.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]) - }) - }) - - fixtures.conversion.toBCH.strings.forEach((satoshi: any): void => { - it(`should convert "${satoshi[0]}" Satoshis as a string to ${ - satoshi[1] - } $BCH`, (): void => { - assert.equal(bitbox.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]) - }) - }) - - fixtures.conversion.toBCH.not.forEach((bch: any): void => { - it(`converts ${bch[0]} to Bitcoin Cash, not to ${ - bch[1] - } Satoshi`, (): void => { - assert.notEqual(bitbox.BitcoinCash.toBitcoinCash(bch[0]), bch[1]) - }) - }) - - fixtures.conversion.toBCH.rounding.forEach((satoshi: any): void => { - it(`rounding ${satoshi[0]} to ${satoshi[1]} $BCH`, (): void => { - assert.equal(bitbox.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]) - }) - }) - }) - - describe("#toSatoshi", (): void => { - fixtures.conversion.toSatoshi.bch.forEach((bch: any): void => { - it(`should convert ${bch[0]} $BCH to ${bch[1]} Satoshis`, (): void => { - assert.equal(bitbox.BitcoinCash.toSatoshi(bch[0]), bch[1]) - }) - }) - - fixtures.conversion.toSatoshi.strings.forEach((bch: any): void => { - it(`should convert "${bch[0]}" $BCH as a string to ${ - bch[1] - } Satoshis`, (): void => { - assert.equal(bitbox.BitcoinCash.toSatoshi(bch[0]), bch[1]) - }) - }) - - fixtures.conversion.toSatoshi.not.forEach((satoshi: any): void => { - it(`converts ${satoshi[0]} to Satoshi, not to ${ - satoshi[1] - } Bitcoin Cash`, (): void => { - assert.notEqual(bitbox.BitcoinCash.toSatoshi(satoshi[0]), satoshi[1]) - }) - }) - - fixtures.conversion.toSatoshi.rounding.forEach((bch: any): void => { - it(`rounding ${bch[0]} to ${bch[1]} Satoshi`, (): void => { - assert.equal(bitbox.BitcoinCash.toSatoshi(bch[0]), bch[1]) - }) - }) - }) - }) - - describe("#toBits", (): void => { - fixtures.conversion.satsToBits.bch.forEach((bch: any): void => { - it(`should convert ${bch[0]} BCH to ${bch[1]} bits`, (): void => { - assert.equal( - bitbox.BitcoinCash.toBits(bitbox.BitcoinCash.toSatoshi(bch[0])), - bch[1] - ) - }) - - fixtures.conversion.satsToBits.strings.forEach((bch: any): void => { - it(`should convert "${bch[0]}" BCH as a string to ${ - bch[1] - } bits`, (): void => { - assert.equal( - bitbox.BitcoinCash.toBits(bitbox.BitcoinCash.toSatoshi(bch[0])), - bch[1] - ) - }) - }) - }) - - describe("#satsToBits", (): void => { - fixtures.conversion.satsToBits.bch.forEach((bch: any): void => { - it(`should convert ${bch[0]} BCH to ${bch[1]} bits`, (): void => { - assert.equal( - bitbox.BitcoinCash.satsToBits(bitbox.BitcoinCash.toSatoshi(bch[0])), - bch[1] - ) - }) - }) - - fixtures.conversion.satsToBits.strings.forEach((bch: any): void => { - it(`should convert "${bch[0]}" BCH as a string to ${ - bch[1] - } bits`, (): void => { - assert.equal( - bitbox.BitcoinCash.satsToBits(bitbox.BitcoinCash.toSatoshi(bch[0])), - bch[1] - ) - }) - }) - }) - - describe("sign and verify messages", (): void => { - describe("#signMessageWithPrivKey", (): void => { - fixtures.signatures.sign.forEach((sign: any): void => { - it(`should sign a message w/ ${sign.network} ${ - sign.privateKeyWIF - }`, () => { - const privateKeyWIF: string = sign.privateKeyWIF - const message: string = sign.message - const signature: string = bitbox.BitcoinCash.signMessageWithPrivKey( - privateKeyWIF, - message - ) - assert.equal(signature, sign.signature) - }) - }) - }) - - describe("#verifyMessage", (): void => { - fixtures.signatures.verify.forEach((sign: any): void => { - it(`should verify a valid signed message from ${ - sign.network - } cashaddr address ${sign.address}`, (): void => { - assert.equal( - bitbox.BitcoinCash.verifyMessage( - sign.address, - sign.signature, - sign.message - ), - true - ) - }) - }) - - fixtures.signatures.verify.forEach((sign: any): void => { - const legacyAddress = bitbox.Address.toLegacyAddress(sign.address) - it(`should verify a valid signed message from ${ - sign.network - } legacy address ${legacyAddress}`, (): void => { - assert.equal( - bitbox.BitcoinCash.verifyMessage( - legacyAddress, - sign.signature, - sign.message - ), - true - ) - }) - }) - - fixtures.signatures.verify.forEach((sign: any): void => { - const legacyAddress = bitbox.Address.toLegacyAddress(sign.address) - it(`should not verify an invalid signed message from ${ - sign.network - } cashaddr address ${sign.address}`, (): void => { - assert.equal( - bitbox.BitcoinCash.verifyMessage( - sign.address, - sign.signature, - "nope" - ), - false - ) - }) - }) - }) - }) - - describe("encode and decode to base58Check", (): void => { - describe("#encodeBase58Check", (): void => { - fixtures.encodeBase58Check.forEach((base58Check: any): void => { - it(`encode ${base58Check.hex} as base58Check ${ - base58Check.base58Check - }`, (): void => { - assert.equal( - bitbox.BitcoinCash.encodeBase58Check(base58Check.hex), - base58Check.base58Check - ) - }) - }) - }) - - describe("#decodeBase58Check", (): void => { - fixtures.encodeBase58Check.forEach((base58Check: any): void => { - it(`decode ${base58Check.base58Check} as ${base58Check.hex}`, (): void => { - assert.equal( - bitbox.BitcoinCash.decodeBase58Check(base58Check.base58Check), - base58Check.hex - ) - }) - }) - }) - }) - - describe("encode and decode BIP21 urls", (): void => { - describe("#encodeBIP21", (): void => { - fixtures.bip21.valid.forEach((bip21: any): void => { - it(`encode ${bip21.address} as url`, (): void => { - const url: string = bitbox.BitcoinCash.encodeBIP21( - bip21.address, - bip21.options - ) - assert.equal(url, bip21.url) - }) - }) - fixtures.bip21.valid_regtest.forEach((bip21: any): void => { - it(`encode ${bip21.address} as url`, (): void => { - const url: string = bitbox.BitcoinCash.encodeBIP21( - bip21.address, - bip21.options, - true - ) - assert.equal(url, bip21.url) - }) - }) - }) - - describe("#decodeBIP21", (): void => { - fixtures.bip21.valid.forEach((bip21: any): void => { - it(`decodes ${bip21.url}`, (): void => { - const decoded: BIP21Object = bitbox.BitcoinCash.decodeBIP21(bip21.url) - assert.equal( - bitbox.Address.toCashAddress(decoded.address), - bitbox.Address.toCashAddress(bip21.address) - ) - if (decoded.options) { - assert.equal(decoded.options.amount, bip21.options.amount) - assert.equal(decoded.options.label, bip21.options.label) - } - }) - }) - // fixtures.bip21.valid_regtest.forEach((bip21, i) => { - // it(`decodes ${bip21.url}`, () => { - // const decoded = bitbox.BitcoinCash.decodeBIP21(bip21.url) - // assert.equal(decoded.options.amount, bip21.options.amount) - // assert.equal(decoded.options.label, bip21.options.label) - // assert.equal( - // bitbox.Address.toCashAddress(decoded.address, true, true), - // bitbox.Address.toCashAddress(bip21.address, true, true) - // ) - // }) - // }) - }) - }) - - describe("#getByteCount", (): void => { - fixtures.getByteCount.forEach((fixture: any): void => { - it(`get byte count`, (): void => { - const byteCount: number = bitbox.BitcoinCash.getByteCount( - fixture.inputs, - fixture.outputs - ) - assert.equal(byteCount, fixture.byteCount) - }) - }) - }) - - describe("#bip38", (): void => { - describe("#encryptBIP38", (): void => { - fixtures.bip38.encrypt.mainnet.forEach((fixture: any): void => { - it(`BIP 38 encrypt wif ${fixture.wif} with password ${ - fixture.password - } on mainnet`, (): void => { - const encryptedKey: string = bitbox.BitcoinCash.encryptBIP38( - fixture.wif, - fixture.password - ) - assert.equal(encryptedKey, fixture.encryptedKey) - }) - }) - - fixtures.bip38.encrypt.testnet.forEach((fixture: any): void => { - it(`BIP 38 encrypt wif ${fixture.wif} with password ${ - fixture.password - } on testnet`, (): void => { - const encryptedKey: string = bitbox.BitcoinCash.encryptBIP38( - fixture.wif, - fixture.password - ) - assert.equal(encryptedKey, fixture.encryptedKey) - }) - }) - }) - - describe("#decryptBIP38", (): void => { - fixtures.bip38.decrypt.mainnet.forEach((fixture: any): void => { - it(`BIP 38 decrypt encrypted key ${ - fixture.encryptedKey - } on mainnet`, (): void => { - const wif: string = bitbox.BitcoinCash.decryptBIP38( - fixture.encryptedKey, - fixture.password, - "mainnet" - ) - assert.equal(wif, fixture.wif) - }) - }) - - fixtures.bip38.decrypt.testnet.forEach((fixture: any): void => { - it(`BIP 38 decrypt encrypted key ${ - fixture.encryptedKey - } on testnet`, (): void => { - const wif: string = bitbox.BitcoinCash.decryptBIP38( - fixture.encryptedKey, - fixture.password, - "testnet" - ) - assert.equal(wif, fixture.wif) - }) - }) - }) - }) - }) -}) - diff --git a/test/unit/Block.ts b/test/unit/Block.ts deleted file mode 100644 index 98b95f4b..00000000 --- a/test/unit/Block.ts +++ /dev/null @@ -1,146 +0,0 @@ -// imports -import * as chai from "chai" -import axios from "axios" -import * as sinon from "sinon" -import { BITBOX } from "../../lib/BITBOX" -import { Block } from "../../lib/Block" -import { resturl } from "../../lib/BITBOX" -import * as util from "util" -import { BlockDetailsResult } from "bitcoin-com-rest" - -// consts -const bitbox: BITBOX = new BITBOX() -const assert: Chai.AssertStatic = chai.assert -const blockMock: any = require("./mocks/block-mock") - -util.inspect.defaultOptions = { - showHidden: true, - colors: true, - depth: 3 -} - -describe("#Block", (): void => { - describe("#BlockConstructor", (): void => { - it("should create instance of Block", (): void => { - const block: Block = new Block() - assert.equal(block instanceof Block, true) - }) - }) - - it("should have a restURL property", (): void => { - const block: Block = new Block() - assert.equal(block.restURL, resturl) - }) - - describe("#detailsByHash", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it(`should GET a single hash`, async (): Promise => { - // Mock out data for unit test, to prevent live network call. - const data: any = blockMock.details - const resolved: any = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - const result: any = await bitbox.Block.detailsByHash( - "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0" - ) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.deepEqual(blockMock.details, result) - }) - - it(`should POST an array of hashes`, async (): Promise => { - const hashes: string[] = [ - "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", - "000000000000000002160687d7f39b6232b5acbb2e2b44cd68e3c6b2debe9ea3" - ] - - // Mock out data for unit test, to prevent live network call. - const data: any = [blockMock.details, blockMock.details] - const resolved: any = new Promise(r => r({ data: data })) - sandbox.stub(axios, "post").returns(resolved) - - const result: any = await bitbox.Block.detailsByHash(hashes) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.deepEqual(data, result) - }) - - it(`should pass error from server to user`, async () => { - try { - // Mock out data for unit test, to prevent live network call. - sandbox - .stub(axios, "get") - .throws("error", "Input must be a string or array of strings.") - - const hash: any = 12345 - - await bitbox.Block.detailsByHash(hash) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - assert.include( - err.message, - `Input must be a string or array of strings.` - ) - } - }) - }) - - describe("#detailsByHeight", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it(`should GET a single height`, async (): Promise => { - // Mock out data for unit test, to prevent live network call. - const data: any = blockMock.details - const resolved: any = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - const height: number = 500007 - - const result: any = await bitbox.Block.detailsByHeight(height) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.deepEqual(blockMock.details, result) - }) - - it(`should POST an array of heights`, async (): Promise => { - const heights: number[] = [500007, 500008] - - // Mock out data for unit test, to prevent live network call. - const data: any = [blockMock.details, blockMock.details] - const resolved: any = new Promise(r => r({ data: data })) - sandbox.stub(axios, "post").returns(resolved) - - const result: any = await bitbox.Block.detailsByHeight(heights) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.deepEqual(data, result) - }) - - it(`should pass error from server to user`, async () => { - try { - // Mock out data for unit test, to prevent live network call. - sandbox - .stub(axios, "get") - .throws("error", "Input must be a number or array of numbers.") - - const height: any = "abc123" - - await bitbox.Block.detailsByHeight(height) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: `, err) - - assert.include( - err.message, - `Input must be a number or array of numbers.` - ) - } - }) - }) -}) diff --git a/test/unit/Blockchain.ts b/test/unit/Blockchain.ts deleted file mode 100644 index f46b7c09..00000000 --- a/test/unit/Blockchain.ts +++ /dev/null @@ -1,753 +0,0 @@ -// imports -import * as chai from "chai" -import axios from "axios" -import * as sinon from "sinon" -import { BITBOX } from "../../lib/BITBOX" -import { Blockchain } from "../../lib/Blockchain" -import { resturl } from "../../lib/BITBOX" -import * as util from "util" -import { BlockHeaderResult } from "bitcoin-com-rest" - -// consts -const bitbox: BITBOX = new BITBOX() -const assert: Chai.AssertStatic = chai.assert -const blockchainMock = require("./mocks/blockchain-mock") - -util.inspect.defaultOptions = { - showHidden: true, - colors: true, - depth: 3 -} - -describe("#Blockchain", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - describe("#BlockchainConstructor", (): void => { - it("should create instance of Blockchain", (): void => { - const blockchain: Blockchain = new Blockchain() - assert.equal(blockchain instanceof Blockchain, true) - }) - - it("should have a restURL property", (): void => { - const blockchain: Blockchain = new Blockchain() - assert.equal(blockchain.restURL, resturl) - }) - }) - - describe("#getBlock", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = { - hash: "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09", - confirmations: 526807, - size: 216, - height: 1000, - version: 1, - versionHex: "00000001", - merkleroot: - "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33", - tx: ["fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33"], - time: 1232346882, - mediantime: 1232344831, - nonce: 2595206198, - bits: "1d00ffff", - difficulty: 1, - chainwork: - "000000000000000000000000000000000000000000000000000003e903e903e9", - previousblockhash: - "0000000008e647742775a230787d66fdf92c46a48c896bfbc85cdc8acc67e87d", - nextblockhash: - "00000000a2887344f8db859e372e7e4bc26b23b9de340f725afbf2edb265b4c6" - } - - it("should get block by hash", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Blockchain.getBlock( - "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09" - ) - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getBlockchainInfo", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = { - chain: "main", - blocks: 527810, - headers: 527810, - bestblockhash: - "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0", - difficulty: 576023394804.6666, - mediantime: 1524878499, - verificationprogress: 0.9999990106793685, - chainwork: - "00000000000000000000000000000000000000000096da5b040913fa09249b4e", - pruned: false, - softforks: [ - { id: "bip34", version: 2, reject: [Object] }, - { id: "bip66", version: 3, reject: [Object] }, - { id: "bip65", version: 4, reject: [Object] } - ], - bip9_softforks: { - csv: { - status: "active", - startTime: 1462060800, - timeout: 1493596800, - since: 419328 - } - } - } - - it("should get blockchain info", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Blockchain.getBlockchainInfo() - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getBlockCount", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = 527810 - - it("should get block count", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Blockchain.getBlockCount() - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getBlockHash", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data: string = - "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0" - - it("should get block hash by height", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Blockchain.getBlockHash(527810) - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getBlockHeader", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = { - hash: "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0", - confirmations: 1, - height: 527810, - version: 536870912, - versionHex: "20000000", - merkleroot: - "9298432bbebe4638456aa19cb7ef91639da87668a285d88d0ecd6080424d223b", - time: 1524881438, - mediantime: 1524878499, - nonce: 3326843941, - bits: "1801e8a5", - difficulty: 576023394804.6666, - chainwork: - "00000000000000000000000000000000000000000096da5b040913fa09249b4e", - previousblockhash: - "000000000000000000b33251708bc7a7b4540e61880d8c376e8e2db6a19a4789" - } - - it("should get block header by hash", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Blockchain.getBlockHeader( - "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0", - true - ) - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getDifficulty", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = "577528469277.1339" - - it("should get difficulty", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Blockchain.getDifficulty() - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getMempoolAncestors", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = "Transaction not in mempool" - - it("should get mempool ancestors", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Blockchain.getMempoolAncestors( - "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", - true - ) - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getMempoolDescendants", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = { - result: "Transaction not in mempool" - } - - it("should get mempool descendants", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Blockchain.getMempoolDescendants( - "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", - true - ) - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getMempoolEntry", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = { - result: "Transaction not in mempool" - } - - it("should get mempool entry", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Blockchain.getMempoolEntry( - "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88" - ) - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getMempoolInfo", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = { - result: { - size: 317, - bytes: 208583, - usage: 554944, - maxmempool: 300000000, - mempoolminfee: 0 - } - } - - it("should get mempool info", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Blockchain.getMempoolInfo() - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getRawMempool", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = { - result: { - transactions: [ - { - txid: - "ab36d68dd0a618592fe34e4a898e8beeeb4049133547dbb16f9338384084af96", - size: 191, - fee: 0.00047703, - modifiedfee: 0.00047703, - time: 1524883317, - height: 527811, - startingpriority: 5287822727.272727, - currentpriority: 5287822727.272727, - descendantcount: 1, - descendantsize: 191, - descendantfees: 47703, - ancestorcount: 1, - ancestorsize: 191, - ancestorfees: 47703, - depends: [] - } - ] - } - } - - it("should get mempool info", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Blockchain.getRawMempool() - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getTxOut", (): void => { - // TODO finish this test - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = { - result: {} - } - - it("should get TODO", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Blockchain.getTxOut( - "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", - 0, - true - ) - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#preciousBlock", (): void => { - // TODO finish this test - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = { - result: {} - } - - it("should get TODO", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - // @ts-ignore - bitbox.Blockchain.preciousBlock() - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#pruneBlockchain", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = "Cannot prune blocks because node is not in prune mode." - - it("should prune blockchain", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "post").returns(resolved) - - bitbox.Blockchain.pruneBlockchain(507) - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#verifyChain", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = true - - it("should verify blockchain", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Blockchain.verifyChain(3, 6) - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#verifyTxOutProof", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - const data = "proof must be hexadecimal string (not '')" - - it("should verify utxo proof", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Blockchain.verifyTxOutProof("3") - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe(`#getBestBlockHash`, (): void => { - it(`should GET best block hash`, async () => { - // Mock out data for unit test, to prevent live network call. - const data: any = blockchainMock.bestBlockHash - const resolved: any = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - const result: string = await bitbox.Blockchain.getBestBlockHash() - //console.log(`result: ${JSON.stringify(result,null,2)}`) - - // Assert that BITBOX returns the same data passed to it by rest. - assert.deepEqual(result, blockchainMock.bestBlockHash) - }) - }) - - describe("#getBlockHeader", (): void => { - it(`should GET block header for a single hash`, async () => { - // Mock out data for unit test, to prevent live network call. - const data: any = blockchainMock.blockHeader - const resolved: any = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - const hash: string = - "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" - - const result: - | BlockHeaderResult - | BlockHeaderResult[] = await bitbox.Blockchain.getBlockHeader(hash) - //console.log(`result: ${JSON.stringify(result,null,2)}`) - - assert.hasAllKeys(result, [ - "hash", - "confirmations", - "height", - "version", - "versionHex", - "merkleroot", - "time", - "mediantime", - "nonce", - "bits", - "difficulty", - "chainwork", - "previousblockhash", - "nextblockhash" - ]) - }) - - it(`should POST block headers for an array of hashes`, async () => { - // Mock out data for unit test, to prevent live network call. - const data: any = [blockchainMock.blockHeader, blockchainMock.blockHeader] - const resolved: any = new Promise(r => r({ data: data })) - sandbox.stub(axios, "post").returns(resolved) - - const hash: string[] = [ - "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", - "00000000000000000568f0a96bf4348847bc84e455cbfec389f27311037a20f3" - ] - - const result: - | BlockHeaderResult - | BlockHeaderResult[] = await bitbox.Blockchain.getBlockHeader(hash) - - assert.isArray(result) - if (Array.isArray(result)) { - assert.hasAllKeys(result[0], [ - "hash", - "confirmations", - "height", - "version", - "versionHex", - "merkleroot", - "time", - "mediantime", - "nonce", - "bits", - "difficulty", - "chainwork", - "previousblockhash", - "nextblockhash" - ]) - } - }) - - it(`should pass error from server to user`, async () => { - try { - // Mock out data for unit test, to prevent live network call. - sandbox - .stub(axios, "get") - .throws("error", "Input hash must be a string or array of strings") - - const hash: any = 12345 - - await bitbox.Blockchain.getBlockHeader(hash) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.include( - err.message, - `Input hash must be a string or array of strings` - ) - } - }) - }) - - describe("#getMempoolEntry", (): void => { - /* - // To run this test, the txid must be unconfirmed. - const txid = - "defea04c38ee00cf73ad402984714ed22dc0dd99b2ae5cb50d791d94343ba79b" - - it(`should GET single mempool entry`, async () => { - const result = await bitbox.Blockchain.getMempoolEntry(txid) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.hasAnyKeys(result, [ - "size", - "fee", - "modifiedfee", - "time", - "height", - "startingpriority", - "currentpriority", - "descendantcount", - "descendantsize", - "descendantfees", - "ancestorcount", - "ancestorsize", - "ancestorfees", - "depends" - ]) - }) - - it(`should get an array of mempool entries`, async () => { - const result = await bitbox.Blockchain.getMempoolEntry([txid, txid]) - console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.isArray(result) - assert.hasAnyKeys(result[0], [ - "size", - "fee", - "modifiedfee", - "time", - "height", - "startingpriority", - "currentpriority", - "descendantcount", - "descendantsize", - "descendantfees", - "ancestorcount", - "ancestorsize", - "ancestorfees", - "depends" - ]) - }) - */ - - it(`should pass error from server to user`, async (): Promise => { - try { - // Mock out data for unit test, to prevent live network call. - sandbox - .stub(axios, "get") - .throws({ error: "Transaction not in mempool" }) - - const txid: string = - "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" - - await bitbox.Blockchain.getMempoolEntry(txid) - - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: ${util.inspect(err)}`) - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, `Transaction not in mempool`) - } - }) - - it(`should throw an error for improper single input`, async (): Promise< - any - > => { - try { - // Mock out data for unit test, to prevent live network call. - sandbox - .stub(axios, "get") - .throws("error", "Input hash must be a string or array of strings") - - const txid: any = 12345 - - await bitbox.Blockchain.getMempoolEntry(txid) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.include( - err.message, - `Input must be a string or array of strings` - ) - } - }) - }) - - describe(`#getTxOutProof`, (): void => { - it(`should get single tx out proof`, async (): Promise => { - // Mock out data for unit test, to prevent live network call. - const data: any = blockchainMock.txOutProof - const resolved: any = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - const txid: string = - "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" - - const result = await bitbox.Blockchain.getTxOutProof(txid) - //console.log(`result: ${JSON.stringify(result,null,2)}`) - - assert.isString(result) - }) - - it(`should POST an array of tx out proofs`, async (): Promise => { - // Mock out data for unit test, to prevent live network call. - const data: any = [blockchainMock.txOutProof, blockchainMock.txOutProof] - const resolved: any = new Promise(r => r({ data: data })) - sandbox.stub(axios, "post").returns(resolved) - - const txid: string[] = [ - "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7", - "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" - ] - - const result = await bitbox.Blockchain.getTxOutProof(txid) - - assert.isArray(result) - assert.isString(result[0]) - }) - - it(`should pass error from server to user`, async (): Promise => { - try { - // Mock out data for unit test, to prevent live network call. - sandbox - .stub(axios, "get") - .throws("error", "Input hash must be a string or array of strings") - - const txid: any = 12345 - - await bitbox.Blockchain.getTxOutProof(txid) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.include( - err.message, - `Input must be a string or array of strings` - ) - } - }) - }) - - describe(`#verifyTxOutProof`, (): void => { - const mockTxOutProof: string = - "0000002086a4a3161f9ba2174883ec0b93acceac3b2f37b36ed1f90000000000000000009cb02406d1094ecf3e0b4c0ca7c585125e721147c39daf6b48c90b512741e13a12333e5cb38705180f441d8c7100000008fee9b60f1edb57e5712839186277ed39e0a004a32be9096ee47472efde8eae62f789f9d7a9f59d0ea7093dea1e0c65ff0b953f1d8cf3d47f92e732ca0295f603c272d5f4a63509f7a887f2549d78af7444aa0ecbb4f66d9cbe13bc6a89f59e05a199df8325d490818ffefe6b6321d32d7496a68580459836c0183f89082fc1b491cc91b23ecdcaa4c347bf599a62904d61f1c15b400ebbd5c90149010c139d9c1e31b774b796977393a238080ab477e1d240d0c4f155d36f519668f49bae6bd8cd5b8e40522edf76faa09cca6188d83ff13af6967cc6a569d1a5e9aeb1fdb7f531ddd2d0cbb81879741d5f38166ac1932136264366a4065cc96a42e41f96294f02df01" - - it(`should verify a single proof`, async (): Promise => { - // Mock out data for unit test, to prevent live network call. - const data: any = [blockchainMock.verifiedProof] - const resolved: any = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - const result = await bitbox.Blockchain.verifyTxOutProof(mockTxOutProof) - //console.log(`result: ${JSON.stringify(result,null,2)}`) - - assert.isArray(result) - assert.isString(result[0]) - }) - - it(`should verify an array of proofs`, async (): Promise => { - // Mock out data for unit test, to prevent live network call. - const data: any = [ - blockchainMock.verifiedProof, - blockchainMock.verifiedProof - ] - const resolved: any = new Promise(r => r({ data: data })) - sandbox.stub(axios, "post").returns(resolved) - - const proofs: string[] = [mockTxOutProof, mockTxOutProof] - const result = await bitbox.Blockchain.verifyTxOutProof(proofs) - - assert.isArray(result) - assert.isString(result[0]) - }) - - it(`should pass error from server to user`, async (): Promise => { - try { - // Mock out data for unit test, to prevent live network call. - sandbox - .stub(axios, "get") - .throws("error", "Input must be a string or array of strings") - - const txid: any = 12345 - - await bitbox.Blockchain.verifyTxOutProof(txid) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.include( - err.message, - `Input must be a string or array of strings` - ) - } - }) - }) -}) diff --git a/test/unit/CashAccounts.ts b/test/unit/CashAccounts.ts deleted file mode 100644 index 40a0c7fa..00000000 --- a/test/unit/CashAccounts.ts +++ /dev/null @@ -1,126 +0,0 @@ -// imports -import axios from "axios" -import { - CashAccountCheckResult, - CashAccountLookupResult, - CashAccountReverseLookupResult -} from "bitcoin-com-rest" -import * as chai from "chai" -import * as util from "util" -import { BITBOX, resturl } from "../../lib/BITBOX" -import { CashAccounts } from "../../lib/CashAccounts" - -// consts -const bitbox: BITBOX = new BITBOX() -const assert: Chai.AssertStatic = chai.assert - -// TODO: port from require to import syntax -const sinon = require("sinon") -const cashAccountsMock = require("./mocks/cashaccounts-mock.js") - -util.inspect.defaultOptions = { - showHidden: true, - colors: true, - depth: 3 -} - -describe("#CashAccounts", (): void => { - describe("#CashAccountsConstructor", (): void => { - it("should create instance of CashAccounts", (): void => { - const cashAccounts: CashAccounts = new CashAccounts() - assert.equal(cashAccounts instanceof CashAccounts, true) - }) - - it("should have a restURL property", (): void => { - const cashAccounts: CashAccounts = new CashAccounts() - assert.equal(cashAccounts.restURL, resturl) - }) - }) - - describe("#lookup", () => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it(`should lookup CashAccount details by account, number and collision`, async (): Promise< - any - > => { - // Mock out data for unit test, to prevent live network call. - const data: any = cashAccountsMock.lookup - const resolved: any = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - const account: string = "cgcardona" - const number: number = 122 - const collision: number = 6383276713 - - const result = (await bitbox.CashAccounts.lookup( - account, - number, - collision - )) as CashAccountLookupResult - //console.log(`result: ${JSON.stringify(result,null,2)}`) - - assert.hasAllKeys(result, ["identifier", "information"]) - }) - }) - - describe("#check", () => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it(`should check CashAccount by account and number`, async (): Promise< - any - > => { - // Mock out data for unit test, to prevent live network call. - const data: any = cashAccountsMock.check - const resolved: any = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - const account: string = "cgcardona" - const number: number = 122 - - const result = (await bitbox.CashAccounts.check( - account, - number - )) as CashAccountCheckResult - //console.log(`result: ${JSON.stringify(result,null,2)}`) - - assert.hasAllKeys(result, ["identifier", "block", "results"]) - }) - }) - - describe("#reverseLookup", () => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it(`should reverse lookup CashAccount details by cash address`, async (): Promise< - any - > => { - // Mock out data for unit test, to prevent live network call. - const data: any = cashAccountsMock.reverseLookup - const resolved: any = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - const cashAddress: string = - "bitcoincash:qr4aadjrpu73d2wxwkxkcrt6gqxgu6a7usxfm96fst" - - const result = (await bitbox.CashAccounts.reverseLookup( - cashAddress - )) as CashAccountReverseLookupResult - //console.log(`result: ${JSON.stringify(result,null,2)}`) - - assert.hasAllKeys(result.results[0], [ - "accountEmoji", - "nameText", - "accountNumber", - "accountHash", - "accountCollisionLength", - "payloadType", - "payloadAddress" - ]) - }) - }) -}) diff --git a/test/unit/Control.ts b/test/unit/Control.ts deleted file mode 100644 index 558a7205..00000000 --- a/test/unit/Control.ts +++ /dev/null @@ -1,81 +0,0 @@ -// imports -import * as assert from "assert"; -import axios from "axios"; -import * as sinon from "sinon"; -import { BITBOX } from "../../lib/BITBOX" -import { Control } from "../../lib/Control" -import { resturl } from "../../lib/BITBOX" - -// consts -const bitbox: BITBOX = new BITBOX() - -describe("#Control", (): void => { - describe("#ControlConstructor", (): void => { - it("should create instance of Control", (): void => { - const control: Control = new Control() - assert.equal(control instanceof Control, true) - }) - - it("should have a restURL property", (): void => { - const control: Control = new Control() - assert.equal(control.restURL, resturl) - }) - }) - - describe("#getInfo", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get info", done => { - const data = { - version: 170000, - protocolversion: 70015, - blocks: 527813, - timeoffset: 0, - connections: 21, - proxy: "", - difficulty: 581086703759.5878, - testnet: false, - paytxfee: 0, - relayfee: 0.00001, - errors: "" - } - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Control.getInfo() - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - // describe("#getMemoryInfo", () => { - // let sandbox: any - // beforeEach(() => (sandbox = sinon.sandbox.create())) - // afterEach(() => sandbox.restore()) - - // it("should get memory info", done => { - // const data = { - // locked: { - // used: 0, - // free: 65536, - // total: 65536, - // locked: 65536, - // chunks_used: 0, - // chunks_free: 1 - // } - // } - // const resolved = new Promise(r => r({ data: data })) - // sandbox.stub(axios, "get").returns(resolved) - - // bitbox.Control.getMemoryInfo() - // .then((result: any) => { - // assert.deepEqual(data, result) - // }) - // .then(done, done) - // }) - // }) -}) diff --git a/test/unit/Crypto.ts b/test/unit/Crypto.ts deleted file mode 100644 index e20991b1..00000000 --- a/test/unit/Crypto.ts +++ /dev/null @@ -1,137 +0,0 @@ -// imports -import * as assert from "assert"; -import { BITBOX } from "../../lib/BITBOX" -import { Buffer } from "buffer" - -// consts -const bitbox: BITBOX = new BITBOX() - -// TODO: port from require to import syntax -const fixtures = require("./fixtures/Crypto.json") - -describe("#Crypto", (): void => { - describe("#sha1", (): void => { - fixtures.sha1.forEach((fixture: any): void => { - it(`should create SHA1 Hash hex encoded ${fixture.hash} from ${ - fixture.hex - }`, (): void => { - const data: Buffer = Buffer.from(fixture.hex, "hex") - const sha1Hash: string = bitbox.Crypto.sha1(data).toString("hex") - assert.equal(sha1Hash, fixture.hash) - }) - - it(`should create 40 character SHA1 Hash hex encoded`, (): void => { - const data: Buffer = Buffer.from(fixture.hex, "hex") - const sha1Hash: string = bitbox.Crypto.sha1(data).toString("hex") - assert.equal(sha1Hash.length, 40) - }) - }) - }) - - describe("#sha256", (): void => { - fixtures.sha256.forEach((fixture: any): void => { - it(`should create SHA256 Hash hex encoded ${fixture.hash} from ${ - fixture.hex - }`, (): void => { - const data: Buffer = Buffer.from(fixture.hex, "hex") - const sha256Hash: string = bitbox.Crypto.sha256(data).toString("hex") - assert.equal(sha256Hash, fixture.hash) - }) - - it(`should create 64 character SHA256Hash hex encoded`, (): void => { - const data: Buffer = Buffer.from(fixture.hex, "hex") - const sha256Hash: string = bitbox.Crypto.sha256(data).toString("hex") - assert.equal(sha256Hash.length, 64) - }) - }) - }) - - describe("#ripemd160", (): void => { - fixtures.ripemd160.forEach((fixture: any): void => { - it(`should create RIPEMD160 Hash hex encoded ${fixture.hash} from ${ - fixture.hex - }`, (): void => { - const data: Buffer = Buffer.from(fixture.hex, "hex") - const ripemd160: string = bitbox.Crypto.ripemd160(data).toString("hex") - assert.equal(ripemd160, fixture.hash) - }) - - it(`should create 64 character RIPEMD160Hash hex encoded`, (): void => { - const data: Buffer = Buffer.from(fixture.hex, "hex") - const ripemd160: string = bitbox.Crypto.ripemd160(data).toString("hex") - assert.equal(ripemd160.length, 40) - }) - }) - }) - - describe("#hash256", (): void => { - fixtures.hash256.forEach((fixture: any): void => { - it(`should create double SHA256 Hash hex encoded ${fixture.hash} from ${ - fixture.hex - }`, (): void => { - const data: Buffer = Buffer.from(fixture.hex, "hex") - const hash256: string = bitbox.Crypto.hash256(data).toString("hex") - assert.equal(hash256, fixture.hash) - }) - - it(`should create 64 character SHA256 Hash hex encoded`, (): void => { - const data: Buffer = Buffer.from(fixture.hex, "hex") - const hash256: string = bitbox.Crypto.hash256(data).toString("hex") - assert.equal(hash256.length, 64) - }) - }) - }) - - describe("#hash160", (): void => { - fixtures.hash160.forEach((fixture: any): void => { - it(`should create RIPEMD160(SHA256()) hex encoded ${fixture.hash} from ${ - fixture.hex - }`, (): void => { - const data: Buffer = Buffer.from(fixture.hex, "hex") - const hash160: string = bitbox.Crypto.hash160(data).toString("hex") - assert.equal(hash160, fixture.hash) - }) - - it(`should create 64 character SHA256Hash hex encoded`, (): void => { - const data: Buffer = Buffer.from(fixture.hex, "hex") - const hash160: string = bitbox.Crypto.hash160(data).toString("hex") - assert.equal(hash160.length, 40) - }) - }) - }) - - - describe("#randomBytes", (): void => { - for (let i: number = 0; i < 6; i++) { - it("should return 16 bytes of entropy hex encoded via default value", (): void => { - const entropy: Buffer = bitbox.Crypto.randomBytes() - assert.equal(Buffer.byteLength(entropy), 16) - }) - - it("should return 16 bytes of entropy hex encoded", (): void => { - const entropy: Buffer = bitbox.Crypto.randomBytes(16) - assert.equal(Buffer.byteLength(entropy), 16) - }) - - it("should return 20 bytes of entropy hex encoded", (): void => { - const entropy: Buffer = bitbox.Crypto.randomBytes(20) - assert.equal(Buffer.byteLength(entropy), 20) - }) - - it("should return 24 bytes of entropy hex encoded", (): void => { - const entropy: Buffer = bitbox.Crypto.randomBytes(24) - assert.equal(Buffer.byteLength(entropy), 24) - }) - - it("should return 28 bytes of entropy hex encoded", (): void => { - const entropy: Buffer = bitbox.Crypto.randomBytes(28) - assert.equal(Buffer.byteLength(entropy), 28) - }) - - it("should return 32 bytes of entropy hex encoded", (): void => { - const entropy: Buffer = bitbox.Crypto.randomBytes(32) - assert.equal(Buffer.byteLength(entropy), 32) - }) - } - }) -}) diff --git a/test/unit/ECPair.ts b/test/unit/ECPair.ts deleted file mode 100644 index b5a54784..00000000 --- a/test/unit/ECPair.ts +++ /dev/null @@ -1,187 +0,0 @@ -// imports -import * as assert from "assert" -import { Buffer } from "buffer" -import { BITBOX } from "../../lib/BITBOX" -import { ECPair } from "../../lib/ECPair" - -// consts -const bitbox: BITBOX = new BITBOX() - -// TODO: port from require to import syntax -const fixtures = require("./fixtures/ECPair.json") - -describe("#ECPair", (): void => { - describe("#ECPairConstructor", (): void => { - it("should create instance of ECPair", (): void => { - const ecpair: ECPair = new ECPair() - assert.equal(ecpair instanceof ECPair, true) - }) - }) - - describe("#fromWIF", (): void => { - fixtures.fromWIF.forEach( - (fixture: any): void => { - it(`should create ECPair from WIF ${ - fixture.privateKeyWIF - }`, (): void => { - const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) - assert.equal(typeof ecpair, "object") - }) - - it(`should get ${fixture.legacy} legacy address`, (): void => { - const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) - assert.equal(bitbox.ECPair.toLegacyAddress(ecpair), fixture.legacy) - }) - - it(`should get ${fixture.cashAddr} cash address`, (): void => { - const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) - assert.equal(bitbox.ECPair.toCashAddress(ecpair), fixture.cashAddr) - }) - - it(`should get ${fixture.regtestAddr} cash address`, (): void => { - const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) - assert.equal( - bitbox.ECPair.toCashAddress(ecpair, true), - fixture.regtestAddr - ) - }) - } - ) - }) - - describe("#toWIF", (): void => { - fixtures.toWIF.forEach( - (fixture: any): void => { - it(`should get WIF ${fixture.privateKeyWIF} from ECPair`, (): void => { - const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) - const wif: string = bitbox.ECPair.toWIF(ecpair) - assert.equal(wif, fixture.privateKeyWIF) - }) - } - ) - }) - - describe("#fromPublicKey", (): void => { - fixtures.fromPublicKey.forEach( - (fixture: any): void => { - it(`should create ECPair from public key buffer`, (): void => { - const ecpair: ECPair = bitbox.ECPair.fromPublicKey( - Buffer.from(fixture.pubkeyHex, "hex") - ) - assert.equal(typeof ecpair, "object") - }) - - it(`should get ${fixture.legacy} legacy address`, (): void => { - const ecpair: ECPair = bitbox.ECPair.fromPublicKey( - Buffer.from(fixture.pubkeyHex, "hex") - ) - assert.equal(bitbox.ECPair.toLegacyAddress(ecpair), fixture.legacy) - }) - - it(`should get ${fixture.cashAddr} cash address`, (): void => { - const ecpair: ECPair = bitbox.ECPair.fromPublicKey( - Buffer.from(fixture.pubkeyHex, "hex") - ) - assert.equal(bitbox.ECPair.toCashAddress(ecpair), fixture.cashAddr) - }) - - it(`should get ${fixture.regtestAddr} cash address`, (): void => { - const ecpair: ECPair = bitbox.ECPair.fromPublicKey( - Buffer.from(fixture.pubkeyHex, "hex") - ) - assert.equal( - bitbox.ECPair.toCashAddress(ecpair, true), - fixture.regtestAddr - ) - }) - } - ) - }) - - describe("#toPublicKey", (): void => { - fixtures.toPublicKey.forEach( - (fixture: any): void => { - it(`should create a public key buffer from an ECPair`, (): void => { - const ecpair: ECPair = bitbox.ECPair.fromPublicKey( - Buffer.from(fixture.pubkeyHex, "hex") - ) - const pubkeyBuffer: Buffer = bitbox.ECPair.toPublicKey(ecpair) - assert.equal(typeof pubkeyBuffer, "object") - }) - } - ) - }) - - describe("#toLegacyAddress", (): void => { - fixtures.toLegacyAddress.forEach( - (fixture: any): void => { - it(`should create legacy address ${ - fixture.legacy - } from an ECPair`, (): void => { - const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) - const legacyAddress: string = bitbox.ECPair.toLegacyAddress(ecpair) - assert.equal(legacyAddress, fixture.legacy) - }) - } - ) - }) - - describe("#toCashAddress", (): void => { - fixtures.toCashAddress.forEach( - (fixture: any): void => { - it(`should create cash address ${ - fixture.cashAddr - } from an ECPair`, (): void => { - const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) - const cashAddr: string = bitbox.ECPair.toCashAddress(ecpair) - assert.equal(cashAddr, fixture.cashAddr) - }) - } - ) - - fixtures.toCashAddress.forEach( - (fixture: any): void => { - it(`should create regtest cash address ${ - fixture.regtestAddr - } from an ECPair`, (): void => { - const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) - const regtestAddr: string = bitbox.ECPair.toCashAddress(ecpair, true) - assert.equal(regtestAddr, fixture.regtestAddr) - }) - } - ) - }) - - describe("#sign", (): void => { - fixtures.sign.forEach( - (fixture: any): void => { - it(`should sign 32 byte hash buffer`, (): void => { - const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) - const buf: Buffer = Buffer.from(bitbox.Crypto.sha256(fixture.data)) - const sig: any = bitbox.ECPair.sign(ecpair, buf) - .toDER() - .toString("hex") - const schnorrSig: any = bitbox.ECPair.sign(ecpair, buf, 0x01) - .toDER() - .toString("hex") - assert.equal(sig, fixture.sig) - assert.equal(schnorrSig, fixture.schnorrSig) - }) - } - ) - }) - - describe("#verify", (): void => { - fixtures.verify.forEach( - (fixture: any): void => { - it(`should verify signed 32 byte hash buffer`, (): void => { - const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF1) - const buf: Buffer = Buffer.from(bitbox.Crypto.sha256(fixture.data)) - const signature: Buffer = bitbox.ECPair.sign(ecpair, buf) - const verify: boolean = bitbox.ECPair.verify(ecpair, buf, signature) - assert.equal(verify, true) - }) - } - ) - }) -}) diff --git a/test/unit/Generating.ts b/test/unit/Generating.ts deleted file mode 100644 index 2eaf3731..00000000 --- a/test/unit/Generating.ts +++ /dev/null @@ -1,45 +0,0 @@ -// imports -import * as assert from "assert"; -import axios from "axios"; -import * as sinon from "sinon"; -import { BITBOX } from "../../lib/BITBOX" -import { Generating } from "../../lib/Generating" -import { resturl } from "../../lib/BITBOX" - -// consts -const bitbox: BITBOX = new BITBOX() - -describe("#Generating", (): void => { - describe("#GeneratingConstructor", (): void => { - it("should create instance of Generating", (): void => { - const generating: Generating = new Generating() - assert.equal(generating instanceof Generating, true) - }) - - it("should have a restURL property", (): void => { - const generating: Generating = new Generating() - assert.equal(generating.restURL, resturl) - }) - }) - - describe("#generateToAddress", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should generate", done => { - const data: any = [] - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "post").returns(resolved) - - bitbox.Generating.generateToAddress( - 1, - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" - ) - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) -}) diff --git a/test/unit/HDNode.ts b/test/unit/HDNode.ts deleted file mode 100644 index e2d0b8ab..00000000 --- a/test/unit/HDNode.ts +++ /dev/null @@ -1,358 +0,0 @@ -// imports -import * as assert from "assert"; -import { BITBOX } from "../../lib/BITBOX" -import { HDNode } from "../../lib/HDNode" -import * as bcl from "bitcoincashjs-lib" - -// consts -const bitbox: BITBOX = new BITBOX() - -// TODO: port from require to import syntax -const fixtures = require("./fixtures/HDNode.json") - -describe("#HDNode", (): void => { - describe("#HDNodeConstructor", (): void => { - it("should create instance of HDNode", (): void => { - const hdnode: HDNode = new HDNode() - assert.equal(hdnode instanceof HDNode, true) - }) - }) - - describe("#fromSeed", (): void => { - fixtures.fromSeed.forEach((mnemonic: string): void => { - it(`should create an HDNode from root seed buffer`, (): void => { - const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(mnemonic) - const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) - assert.notEqual(hdNode, null) - }) - }) - }) - - describe("#derive", (): void => { - fixtures.derive.forEach((derive: any): void => { - it(`should derive non hardened child HDNode`, (): void => { - const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(derive.mnemonic) - const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) - const childHDNode: bcl.HDNode = bitbox.HDNode.derive(hdNode, 0) - assert.equal(bitbox.HDNode.toXPub(childHDNode), derive.xpub) - assert.equal(bitbox.HDNode.toXPriv(childHDNode), derive.xpriv) - }) - }) - }) - - describe("#deriveHardened", (): void => { - fixtures.deriveHardened.forEach((derive: any): void => { - it(`should derive hardened child HDNode`, (): void => { - const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(derive.mnemonic) - const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) - const childHDNode: bcl.HDNode = bitbox.HDNode.deriveHardened(hdNode, 0) - assert.equal(bitbox.HDNode.toXPub(childHDNode), derive.xpub) - assert.equal(bitbox.HDNode.toXPriv(childHDNode), derive.xpriv) - }) - }) - - describe("derive BIP44 $BCH account", (): void => { - fixtures.deriveBIP44.forEach((derive: any): void => { - it(`should derive BIP44 $BCH account`, (): void => { - const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(derive.mnemonic) - const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) - const purpose: bcl.HDNode = bitbox.HDNode.deriveHardened(hdNode, 44) - const coin: bcl.HDNode = bitbox.HDNode.deriveHardened(purpose, 145) - const childHDNode: bcl.HDNode = bitbox.HDNode.deriveHardened(coin, 0) - assert.equal(bitbox.HDNode.toXPub(childHDNode), derive.xpub) - assert.equal(bitbox.HDNode.toXPriv(childHDNode), derive.xpriv) - }) - }) - }) - }) - - describe("#derivePath", (): void => { - describe("derive non hardened Path", (): void => { - fixtures.derivePath.forEach((derive: any): void => { - it(`should derive non hardened child HDNode from path`, (): void => { - const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(derive.mnemonic) - const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) - const childHDNode: bcl.HDNode = bitbox.HDNode.derivePath(hdNode, "0") - assert.equal(bitbox.HDNode.toXPub(childHDNode), derive.xpub) - assert.equal(bitbox.HDNode.toXPriv(childHDNode), derive.xpriv) - }) - }) - }) - - describe("derive hardened Path", (): any => { - fixtures.deriveHardenedPath.forEach((derive: any): any => { - it(`should derive hardened child HDNode from path`, (): any => { - const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(derive.mnemonic) - const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) - const childHDNode: bcl.HDNode = bitbox.HDNode.derivePath(hdNode, "0'") - assert.equal(bitbox.HDNode.toXPub(childHDNode), derive.xpub) - assert.equal(bitbox.HDNode.toXPriv(childHDNode), derive.xpriv) - }) - }) - }) - - describe("derive BIP44 $BCH account", (): void => { - fixtures.deriveBIP44.forEach((derive: any): void => { - it(`should derive BIP44 $BCH account`, (): void => { - const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(derive.mnemonic) - const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) - const childHDNode: bcl.HDNode = bitbox.HDNode.derivePath(hdNode, "44'/145'/0'") - assert.equal(bitbox.HDNode.toXPub(childHDNode), derive.xpub) - assert.equal(bitbox.HDNode.toXPriv(childHDNode), derive.xpriv) - }) - }) - }) - }) - - describe("#toLegacyAddress", (): void => { - fixtures.toLegacyAddress.forEach((fixture: any): void => { - it(`should get address ${fixture.address} from HDNode`, (): void => { - const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(fixture.mnemonic) - const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) - const childHDNode: bcl.HDNode = bitbox.HDNode.derivePath(hdNode, "0") - const addy: string = bitbox.HDNode.toLegacyAddress(childHDNode) - assert.equal(addy, fixture.address) - }) - }) - }) - - describe("#toCashAddress", (): void => { - fixtures.toCashAddress.forEach((fixture: any): void => { - it(`should get address ${fixture.address} from HDNode`, (): void => { - const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(fixture.mnemonic) - const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) - const childHDNode: bcl.HDNode = bitbox.HDNode.derivePath(hdNode, "0") - const addy: string = bitbox.HDNode.toCashAddress(childHDNode) - assert.equal(addy, fixture.address) - }) - - it(`should get address ${fixture.regtestAddress} from HDNode`, (): void => { - const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(fixture.mnemonic) - const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) - const childHDNode: bcl.HDNode = bitbox.HDNode.derivePath(hdNode, "0") - const addr: string = bitbox.HDNode.toCashAddress(childHDNode, true) - assert.equal(addr, fixture.regtestAddress) - }) - }) - }) - - describe("#toWIF", (): void => { - fixtures.toWIF.forEach((fixture: any): void => { - it(`should get privateKeyWIF ${ - fixture.privateKeyWIF - } from HDNode`, (): void => { - const hdNode: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) - assert.equal(bitbox.HDNode.toWIF(hdNode), fixture.privateKeyWIF) - }) - }) - }) - - describe("#toXPub", (): void => { - fixtures.toXPub.forEach((fixture: any): void => { - it(`should create xpub ${fixture.xpub} from an HDNode`, (): void => { - const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(fixture.mnemonic) - const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) - const xpub: string = bitbox.HDNode.toXPub(hdNode) - assert.equal(xpub, fixture.xpub) - }) - }) - }) - - describe("#toXPriv", (): void => { - fixtures.toXPriv.forEach((fixture: any): void => { - it(`should create xpriv ${fixture.xpriv} from an HDNode`, (): void => { - const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(fixture.mnemonic) - const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) - const xpriv: string = bitbox.HDNode.toXPriv(hdNode) - assert.equal(xpriv, fixture.xpriv) - }) - }) - }) - - describe("#toKeyPair", (): void => { - fixtures.toKeyPair.forEach((fixture: any): void => { - it(`should get ECPair from an HDNode`, (): void => { - const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(fixture.mnemonic) - const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) - const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(hdNode) - assert.equal(typeof keyPair, "object") - }) - }) - }) - - describe("#toPublicKey", (): void => { - fixtures.toPublicKey.forEach((fixture: any): void => { - it(`should create public key buffer from an HDNode`, (): void => { - const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(fixture.mnemonic) - const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) - const publicKeyBuffer: any = bitbox.HDNode.toPublicKey(hdNode) - assert.equal(typeof publicKeyBuffer, "object") - }) - }) - }) - - describe("#fromXPriv", (): any => { - fixtures.fromXPriv.forEach((fixture: any): any => { - const hdNode: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) - it(`should create HDNode from xpriv ${fixture.xpriv}`, (): any => { - assert.notEqual(hdNode, null) - }) - - it(`should export xpriv ${fixture.xpriv}`, (): any => { - assert.equal(bitbox.HDNode.toXPriv(hdNode), fixture.xpriv) - }) - - it(`should export xpub ${fixture.xpub}`, (): any => { - assert.equal(bitbox.HDNode.toXPub(hdNode), fixture.xpub) - }) - - it(`should export legacy address ${fixture.legacy}`, (): any => { - assert.equal(bitbox.HDNode.toLegacyAddress(hdNode), fixture.legacy) - }) - - it(`should export cashaddress ${fixture.cashaddress}`, (): any => { - assert.equal(bitbox.HDNode.toCashAddress(hdNode), fixture.cashaddress) - }) - - it(`should export regtest cashaddress ${fixture.regtestaddress}`, (): any => { - assert.equal( - bitbox.HDNode.toCashAddress(hdNode, true), - fixture.regtestaddress - ) - }) - - it(`should export privateKeyWIF ${fixture.privateKeyWIF}`, (): any => { - assert.equal(bitbox.HDNode.toWIF(hdNode), fixture.privateKeyWIF) - }) - }) - }) - - describe("#fromXPub", (): any => { - fixtures.fromXPub.forEach((fixture: any): any => { - const hdNode: bcl.HDNode = bitbox.HDNode.fromXPub(fixture.xpub) - it(`should create HDNode from xpub ${fixture.xpub}`, (): any => { - assert.notEqual(hdNode, null) - }) - - it(`should export xpub ${fixture.xpub}`, (): any => { - assert.equal(bitbox.HDNode.toXPub(hdNode), fixture.xpub) - }) - - it(`should export legacy address ${fixture.legacy}`, (): any => { - assert.equal(bitbox.HDNode.toLegacyAddress(hdNode), fixture.legacy) - }) - - it(`should export cashaddress ${fixture.cashaddress}`, (): any => { - assert.equal(bitbox.HDNode.toCashAddress(hdNode), fixture.cashaddress) - }) - - it(`should export regtest cashaddress ${fixture.regtestaddress}`, (): any => { - assert.equal( - bitbox.HDNode.toCashAddress(hdNode, true), - fixture.regtestaddress - ) - }) - }) - }) - - describe("#bip32", (): any => { - describe("create accounts and addresses", (): any => { - fixtures.accounts.forEach((fixture: any): any => { - const seedBuffer: any = bitbox.Mnemonic.toSeed(fixture.mnemonic) - const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(seedBuffer) - const a: bcl.HDNode = bitbox.HDNode.derivePath(hdNode, "0'") - const external: bcl.HDNode = bitbox.HDNode.derivePath(a, "0") - const account: any = bitbox.HDNode.createAccount([external]) - - it(`#createAccount`, (): void => { - assert.notEqual(account, null) - }) - - describe("#getChainAddress", (): void => { - const external1 = bitbox.Address.toCashAddress( - account.getChainAddress(0) - ) - it(`should create external change address ${external1}`, (): void => { - assert.equal(external1, fixture.externals[0]) - }) - }) - - describe("#nextChainAddress", (): void => { - for (let i: number = 0; i < 4; i++) { - const ex: string = bitbox.Address.toCashAddress(account.nextChainAddress(0)) - it(`should create external change address ${ex}`, (): void => { - assert.equal(ex, fixture.externals[i + 1]) - }) - } - }) - }) - }) - }) - - describe("#sign", (): void => { - fixtures.sign.forEach((fixture: any): void => { - it(`should sign 32 byte hash buffer`, (): void => { - const hdnode: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.privateKeyWIF) - const buf: Buffer = Buffer.from(bitbox.Crypto.sha256(Buffer.from(fixture.data, "hex"))) - const signatureBuf: any = bitbox.HDNode.sign(hdnode, buf) - assert.equal(typeof signatureBuf, "object") - }) - }) - }) - - describe("#verify", (): void => { - fixtures.verify.forEach((fixture: any): void => { - it(`should verify signed 32 byte hash buffer`, (): void => { - const hdnode1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.privateKeyWIF1) - const buf: Buffer = Buffer.from(bitbox.Crypto.sha256(Buffer.from(fixture.data, "hex"))) - const signature: Buffer = bitbox.HDNode.sign(hdnode1, buf) - const verify: boolean = bitbox.HDNode.verify(hdnode1, buf, signature) - assert.equal(verify, true) - }) - }) - }) - - describe("#isPublic", (): void => { - fixtures.isPublic.forEach((fixture: any): void => { - it(`should verify hdnode is public`, (): void => { - const node: bcl.HDNode = bitbox.HDNode.fromXPub(fixture.xpub) - assert.equal(bitbox.HDNode.isPublic(node), true) - }) - }) - - fixtures.isPublic.forEach((fixture: any): void => { - it(`should verify hdnode is not public`, (): void => { - const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) - assert.equal(bitbox.HDNode.isPublic(node), false) - }) - }) - }) - - describe("#isPrivate", (): void => { - fixtures.isPrivate.forEach((fixture: any): void => { - it(`should verify hdnode is not private`, (): void => { - const node: bcl.HDNode = bitbox.HDNode.fromXPub(fixture.xpub) - assert.equal(bitbox.HDNode.isPrivate(node), false) - }) - }) - - fixtures.isPrivate.forEach((fixture: any): void => { - it(`should verify hdnode is private`, (): void => { - const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) - assert.equal(bitbox.HDNode.isPrivate(node), true) - }) - }) - }) - - describe("#toIdentifier", (): void => { - fixtures.toIdentifier.forEach((fixture: any): void => { - it(`should get identifier of hdnode`, (): void => { - const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) - const publicKeyBuffer: any = bitbox.HDNode.toPublicKey(node) - const hash160: Buffer = bitbox.Crypto.hash160(publicKeyBuffer) - const identifier: Buffer = bitbox.HDNode.toIdentifier(node) - assert.equal(identifier.toString('hex'), hash160.toString("hex")) - }) - }) - }) -}) diff --git a/test/unit/Mining.ts b/test/unit/Mining.ts deleted file mode 100644 index 1a797730..00000000 --- a/test/unit/Mining.ts +++ /dev/null @@ -1,122 +0,0 @@ -// imports -import * as assert from "assert"; -import axios from "axios"; -import * as sinon from "sinon"; -import { BITBOX } from "../../lib/BITBOX" -import { Mining } from "../../lib/Mining" -import { resturl } from "../../lib/BITBOX" - -// consts -const bitbox: BITBOX = new BITBOX() - -describe("#Mining", (): void => { - describe("#MiningConstructor", (): void => { - it("should create instance of Mining", (): void => { - const mining: Mining = new Mining() - assert.equal(mining instanceof Mining, true) - }) - - it("should have a restURL property", (): void => { - const mining: Mining = new Mining() - assert.equal(mining.restURL, resturl) - }) - }) - - describe("#getBlockTemplate", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get block template", done => { - const data = { - data: - "01000000017f6305e3b0b05f5b57a82f4e6d4187e148bbe56a947208390e488bad36472368000000006a47304402203b0079ff5b896187feb02e2679c87ac2fb8d483b60e0721ed33601e2c0eecc700220590f8a0e1a51b53b368294861fd5fc99db3a6607d0f4e543f6217108e208c1834121024c93c841d7f576584ffbf513b7abd8283e6562669905f6554f788fce4cc67a34ffffffff0228100000000000001976a914af78709a76abc8a28e568c9210c8247dd10cff2c88ac22020000000000001976a914f339927678803f451b41400737e7dc83c6a8682188ac00000000", - txid: - "7f462d71c649a0d8cfbaa2d20d8ff86677966b308f0ac9906ee015bf4453f97a", - hash: - "7f462d71c649a0d8cfbaa2d20d8ff86677966b308f0ac9906ee015bf4453f97a", - depends: [], - fee: 226, - sigops: 2 - } - - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Mining.getBlockTemplate("") - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getMiningInfo", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get mining info", done => { - const data = { - blocks: 527816, - currentblocksize: 89408, - currentblocktx: 156, - difficulty: 568757800682.7649, - blockprioritypercentage: 5, - errors: "", - networkhashps: 4347259225696976000, - pooledtx: 184, - chain: "main" - } - - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Mining.getMiningInfo() - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) - - describe("#getNetworkHashps", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should get network hashps", done => { - const data: number = 3586365937646890000 - - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - - bitbox.Mining.getNetworkHashps() - .then((result: any) => { - assert.equal(data, result) - }) - .then(done, done) - }) - }) - - describe("#submitBlock", (): void => { - // TODO finish - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - it("should TODO", done => { - const data: any = {} - - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "post").returns(resolved) - - // @ts-ignore - bitbox.Mining.submitBlock() - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) - }) -}) diff --git a/test/unit/Mnemonic.ts b/test/unit/Mnemonic.ts deleted file mode 100644 index e7bc082b..00000000 --- a/test/unit/Mnemonic.ts +++ /dev/null @@ -1,355 +0,0 @@ -// imports -import * as assert from "assert"; -import { BITBOX } from "../../lib/BITBOX" -import { Mnemonic } from "../../lib/Mnemonic" - -// consts -const bitbox: BITBOX = new BITBOX() - -// TODO: port from require to import syntax -const fixtures = require("./fixtures/Mnemonic.json") - -describe("#Mnemonic", (): void => { - describe("#MnemonicConstructor", (): void => { - it("should create instance of Mnemonic", (): void => { - const mnemonic: Mnemonic = new Mnemonic() - assert.equal(mnemonic instanceof Mnemonic, true) - }) - }) - - describe("#generate", (): void => { - it("should generate a 12 word mnemonic", (): void => { - const mnemonic: string = bitbox.Mnemonic.generate(128) - assert.equal(mnemonic.split(" ").length, 12) - }) - - it("should generate a 15 word mnemonic", (): void => { - const mnemonic: string = bitbox.Mnemonic.generate(160) - assert.equal(mnemonic.split(" ").length, 15) - }) - - it("should generate a 18 word mnemonic", (): void => { - const mnemonic: string = bitbox.Mnemonic.generate(192) - assert.equal(mnemonic.split(" ").length, 18) - }) - - it("should generate an 21 word mnemonic", (): void => { - const mnemonic: string = bitbox.Mnemonic.generate(224) - assert.equal(mnemonic.split(" ").length, 21) - }) - - it("should generate an 24 word mnemonic", (): void => { - const mnemonic: string = bitbox.Mnemonic.generate(256) - assert.equal(mnemonic.split(" ").length, 24) - }) - - it("should generate an 24 word italian mnemonic", (): void => { - const mnemonic: string = bitbox.Mnemonic.generate( - 256, - bitbox.Mnemonic.wordLists().italian - ) - assert.equal(mnemonic.split(" ").length, 24) - }) - }) - - describe("#fromEntropy", (): void => { - it("should generate a 12 word mnemonic from 16 bytes of entropy", (): void => { - const rand: Buffer = bitbox.Crypto.randomBytes(16) - const mnemonic: string = bitbox.Mnemonic.fromEntropy(rand) - assert.equal(mnemonic.split(" ").length, 12) - }) - - it("should generate a 15 word mnemonic from 20 bytes of entropy", (): void => { - const rand: Buffer = bitbox.Crypto.randomBytes(20) - const mnemonic: string = bitbox.Mnemonic.fromEntropy(rand) - assert.equal(mnemonic.split(" ").length, 15) - }) - - it("should generate an 18 word mnemonic from 24 bytes of entropy", (): void => { - const rand: Buffer = bitbox.Crypto.randomBytes(24) - const mnemonic: string = bitbox.Mnemonic.fromEntropy(rand) - assert.equal(mnemonic.split(" ").length, 18) - }) - - it("should generate an 21 word mnemonic from 28 bytes of entropy", (): void => { - const rand: Buffer = bitbox.Crypto.randomBytes(28) - const mnemonic: string = bitbox.Mnemonic.fromEntropy(rand) - assert.equal(mnemonic.split(" ").length, 21) - }) - - it("should generate an 24 word mnemonic from 32 bytes of entropy", (): void => { - const rand: Buffer = bitbox.Crypto.randomBytes(32) - const mnemonic: string = bitbox.Mnemonic.fromEntropy(rand) - assert.equal(mnemonic.split(" ").length, 24) - }) - - it("should generate an 24 french word mnemonic 32 bytes of entropy", (): void => { - const rand: Buffer = bitbox.Crypto.randomBytes(32) - const mnemonic: string = bitbox.Mnemonic.fromEntropy( - rand, - bitbox.Mnemonic.wordLists().french - ) - assert.equal(mnemonic.split(" ").length, 24) - }) - - fixtures.fromEntropy.forEach((entropy: any): void => { - const mnemonic: string = bitbox.Mnemonic.fromEntropy(entropy.entropy) - it(`should convert ${entropy.entropy} to ${entropy.mnemonic}`, (): void => { - assert.equal(mnemonic, entropy.mnemonic) - }) - }) - }) - - describe("#toEntropy", (): void => { - it("should turn a 12 word mnemonic to entropy", (): void => { - const mnemonic: string = bitbox.Mnemonic.generate(128) - const entropy: Buffer = bitbox.Mnemonic.toEntropy(mnemonic) - assert.equal(entropy.length, 16) - }) - - it("should turn a 15 word mnemonic to entropy", (): void => { - const mnemonic: string = bitbox.Mnemonic.generate(160) - const entropy: Buffer = bitbox.Mnemonic.toEntropy(mnemonic) - assert.equal(entropy.length, 20) - }) - - it("should turn a 18 word mnemonic to entropy", (): void => { - const mnemonic: string = bitbox.Mnemonic.generate(192) - const entropy: Buffer = bitbox.Mnemonic.toEntropy(mnemonic) - assert.equal(entropy.length, 24) - }) - - it("should turn a 21 word mnemonic to entropy", (): void => { - const mnemonic: string = bitbox.Mnemonic.generate(224) - const entropy: Buffer = bitbox.Mnemonic.toEntropy(mnemonic) - assert.equal(entropy.length, 28) - }) - - it("should turn a 24 word mnemonic to entropy", (): void => { - const mnemonic: string = bitbox.Mnemonic.generate(256) - const entropy: Buffer = bitbox.Mnemonic.toEntropy(mnemonic) - assert.equal(entropy.length, 32) - }) - - it("should turn a 24 word spanish mnemonic to entropy", (): void => { - const mnemonic: string = bitbox.Mnemonic.generate( - 256, - bitbox.Mnemonic.wordLists().spanish - ) - const entropy: Buffer = bitbox.Mnemonic.toEntropy( - mnemonic, - bitbox.Mnemonic.wordLists().spanish - ) - assert.equal(entropy.length, 32) - }) - - fixtures.fromEntropy.forEach((fixture: any): void => { - const entropy: Buffer = bitbox.Mnemonic.toEntropy(fixture.mnemonic) - it(`should convert ${fixture.mnemonic} to ${fixture.entropy}`, (): void => { - assert.equal(entropy.toString("hex"), fixture.entropy) - }) - }) - }) - - describe("#validate", (): void => { - it("fails for a mnemonic that is too short", (): void => { - assert.equal( - bitbox.Mnemonic.validate( - "mixed winner", - bitbox.Mnemonic.wordLists().english - ), - "Invalid mnemonic" - ) - }) - - it("fails for a mnemonic that is too long", (): void => { - assert.equal( - bitbox.Mnemonic.validate( - "mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake", - bitbox.Mnemonic.wordLists().english - ), - "Invalid mnemonic" - ) - }) - - it("fails if mnemonic words are not in the word list", (): void => { - assert.equal( - bitbox.Mnemonic.validate( - "failsauce one two three four five six seven eight nine ten eleven", - bitbox.Mnemonic.wordLists().english - ), - "failsauce is not in wordlist, did you mean balance?" - ) - }) - - it("validate a 128 bit mnemonic", (): void => { - const mnemonic: string = bitbox.Mnemonic.generate(128) - assert.equal( - bitbox.Mnemonic.validate(mnemonic, bitbox.Mnemonic.wordLists().english), - "Valid mnemonic" - ) - }) - - it("validate a 160 bit mnemonic", (): void => { - const mnemonic: string = bitbox.Mnemonic.generate(160) - assert.equal( - bitbox.Mnemonic.validate(mnemonic, bitbox.Mnemonic.wordLists().english), - "Valid mnemonic" - ) - }) - - it("validate a 192 bit mnemonic", (): void => { - const mnemonic: string = bitbox.Mnemonic.generate(192) - assert.equal( - bitbox.Mnemonic.validate(mnemonic, bitbox.Mnemonic.wordLists().english), - "Valid mnemonic" - ) - }) - - it("validate a 224 bit mnemonic", (): void => { - const mnemonic: string = bitbox.Mnemonic.generate(224) - assert.equal( - bitbox.Mnemonic.validate(mnemonic, bitbox.Mnemonic.wordLists().english), - "Valid mnemonic" - ) - }) - - it("validate a 256 bit mnemonic", (): void => { - const mnemonic: string = bitbox.Mnemonic.generate(256) - assert.equal( - bitbox.Mnemonic.validate(mnemonic, bitbox.Mnemonic.wordLists().english), - "Valid mnemonic" - ) - }) - - it("validate a 256 bit chinese simplified mnemonic", (): void => { - const mnemonic: string = bitbox.Mnemonic.generate( - 256, - bitbox.Mnemonic.wordLists().chinese_simplified - ) - assert.equal( - bitbox.Mnemonic.validate( - mnemonic, - bitbox.Mnemonic.wordLists().chinese_simplified - ), - "Valid mnemonic" - ) - }) - }) - - describe("#toSeed", (): void => { - it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 128 bit mnemonic", (): void => { - const mnemonic: string = bitbox.Mnemonic.generate(128) - const rootSeedBuffer: Buffer = bitbox.Mnemonic.toSeed(mnemonic, "") - assert.equal(rootSeedBuffer.byteLength, 64) - }) - - it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 160 bit mnemonic", (): void => { - const mnemonic: string = bitbox.Mnemonic.generate(160) - const rootSeedBuffer: Buffer = bitbox.Mnemonic.toSeed(mnemonic, "") - assert.equal(rootSeedBuffer.byteLength, 64) - }) - - it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 192 bit mnemonic", (): void => { - const mnemonic: string = bitbox.Mnemonic.generate(192) - const rootSeedBuffer: Buffer = bitbox.Mnemonic.toSeed(mnemonic, "") - assert.equal(rootSeedBuffer.byteLength, 64) - }) - - it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 224 bit mnemonic", (): void => { - const mnemonic: string = bitbox.Mnemonic.generate(224) - const rootSeedBuffer: Buffer = bitbox.Mnemonic.toSeed(mnemonic, "") - assert.equal(rootSeedBuffer.byteLength, 64) - }) - - it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 256 bit mnemonic", (): void => { - const mnemonic: string = bitbox.Mnemonic.generate(256) - const rootSeedBuffer: Buffer = bitbox.Mnemonic.toSeed(mnemonic, "") - assert.equal(rootSeedBuffer.byteLength, 64) - }) - }) - - describe("#wordLists", (): void => { - it("return a list of 2048 english words", (): void => { - assert.equal(bitbox.Mnemonic.wordLists().english.length, 2048) - }) - - it("return a list of 2048 japanese words", (): void => { - assert.equal(bitbox.Mnemonic.wordLists().japanese.length, 2048) - }) - - it("return a list of 2048 chinese simplified words", (): void => { - assert.equal(bitbox.Mnemonic.wordLists().chinese_simplified.length, 2048) - }) - - it("return a list of 2048 chinese traditional words", (): void => { - assert.equal(bitbox.Mnemonic.wordLists().chinese_traditional.length, 2048) - }) - - it("return a list of 2048 french words", (): void => { - assert.equal(bitbox.Mnemonic.wordLists().french.length, 2048) - }) - - it("return a list of 2048 italian words", (): void => { - assert.equal(bitbox.Mnemonic.wordLists().italian.length, 2048) - }) - - it("return a list of 2048 korean words", (): void => { - assert.equal(bitbox.Mnemonic.wordLists().korean.length, 2048) - }) - - it("return a list of 2048 spanish words", (): void => { - assert.equal(bitbox.Mnemonic.wordLists().spanish.length, 2048) - }) - }) - - describe("#toKeypairs", (): void => { - fixtures.toKeypairs.forEach((fixture: any, i: number): void => { - const keypairs: any = bitbox.Mnemonic.toKeypairs(fixture.mnemonic, 5) - keypairs.forEach((keypair: any, j: number): void => { - it(`Generate keypair from mnemonic`, (): void => { - assert.equal( - keypair.privateKeyWIF, - fixtures.toKeypairs[i].output[j].privateKeyWIF - ) - // assert.equal( - // keypair.address, - // fixtures.toKeypairs[i].output[j].address - // ) - }) - }) - - const regtestKeypairs: any = bitbox.Mnemonic.toKeypairs( - fixture.mnemonic, - 5, - true - ) - regtestKeypairs.forEach((keypair: any, j: number): void => { - it(`Generate keypair from mnemonic`, (): void => { - assert.equal( - keypair.privateKeyWIF, - fixtures.toKeypairs[i].output[j].privateKeyWIFRegTest - ) - // assert.equal( - // keypair.address, - // fixtures.toKeypairs[i].output[j].regtestAddress - // ) - }) - }) - }) - }) - - describe("#findNearestWord", (): void => { - fixtures.findNearestWord.forEach((fixture: any): void => { - const word: string = bitbox.Mnemonic.findNearestWord( - fixture.word, - bitbox.Mnemonic.wordLists()[fixture.language] - ) - it(`find word ${fixture.foundWord} near ${fixture.word} in ${ - fixture.language - }`, (): void => { - assert.equal(word, fixture.foundWord) - }) - }) - }) -}) diff --git a/test/unit/Price.ts b/test/unit/Price.ts deleted file mode 100644 index 093a3e1d..00000000 --- a/test/unit/Price.ts +++ /dev/null @@ -1,39 +0,0 @@ -// imports -import * as chai from "chai" -import { BITBOX } from "../../lib/BITBOX" -import { Price } from "../../lib/Price" -import axios from "axios" -import * as sinon from "sinon" - -// consts -const bitbox: BITBOX = new BITBOX() -const assert: Chai.AssertStatic = chai.assert - -describe("#Price", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - describe("#PriceConstructor", (): void => { - it("should create instance of Price", (): void => { - const price: Price = new Price() - assert.equal(price instanceof Price, true) - }) - }) - - describe("#current", (): void => { - describe("#single currency", (): void => { - it("should get current price for single currency", async () => { - // Mock out data for unit test, to prevent live network call. - const data: any = 39229 - const resolved: any = new Promise(r => r({ data: { price: data } })) - sandbox.stub(axios, "get").returns(resolved) - - const result = await bitbox.Price.current("usd") - //console.log(`result: ${JSON.stringify(result, null, 2)}`) - - assert.isNumber(result) - }) - }) - }) -}) diff --git a/test/unit/RawTransactions.ts b/test/unit/RawTransactions.ts deleted file mode 100644 index 495269c1..00000000 --- a/test/unit/RawTransactions.ts +++ /dev/null @@ -1,379 +0,0 @@ -// imports -import { - DecodeRawTransactionResult, - VerboseRawTransactionResult -} from "bitcoin-com-rest" -import * as chai from "chai" -import * as util from "util" -import { BITBOX, resturl } from "../../lib/BITBOX" -import { RawTransactions } from "../../lib/RawTransactions" -import axios from "axios" -import * as sinon from "sinon" - -// consts -const bitbox: BITBOX = new BITBOX() -const assert: Chai.AssertStatic = chai.assert -const rtMock = require("./mocks/rawtransactions-mock") - -// Used for debugging -util.inspect.defaultOptions = { depth: 1 } - -describe("#RawTransactions", (): void => { - let sandbox: any - beforeEach(() => (sandbox = sinon.sandbox.create())) - afterEach(() => sandbox.restore()) - - describe("#RawTransactionsConstructor", (): void => { - it("should create instance of RawTransactions", (): void => { - const rawtransactions: RawTransactions = new RawTransactions() - assert.equal(rawtransactions instanceof RawTransactions, true) - }) - - it("should have a restURL property", (): void => { - const rawtransactions: RawTransactions = new RawTransactions() - assert.equal(rawtransactions.restURL, resturl) - }) - }) - - describe("#decodeRawTransaction", (): void => { - it("should decode tx for a single hex", async (): Promise => { - // Mock the call to rest to prevent live network calls. - const resolved = new Promise(r => r({ data: rtMock.decodedTx })) - sandbox.stub(axios, "get").returns(resolved) - - const hex: string = - "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" - - const result: - | DecodeRawTransactionResult - | DecodeRawTransactionResult[] = await bitbox.RawTransactions.decodeRawTransaction( - hex - ) - //console.log(`result: ${JSON.stringify(result,null,2)}`) - - assert.hasAnyKeys(result, [ - "txid", - "hash", - "size", - "version", - "locktime", - "vin", - "vout" - ]) - if (!Array.isArray(result)) { - assert.isArray(result.vin) - assert.isArray(result.vout) - } - }) - - it("should decode an array of tx hexes", async (): Promise => { - // Mock the call to rest to prevent live network calls. - const testData = [rtMock.decodedTx, rtMock.decodedTx] - const resolved = new Promise(r => r({ data: testData })) - sandbox.stub(axios, "post").returns(resolved) - - const hexes: string[] = [ - "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000", - "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" - ] - - const result: - | DecodeRawTransactionResult - | DecodeRawTransactionResult[] = await bitbox.RawTransactions.decodeRawTransaction( - hexes - ) - - assert.isArray(result) - if (Array.isArray(result)) { - assert.hasAnyKeys(result[0], [ - "txid", - "hash", - "size", - "version", - "locktime", - "vin", - "vout" - ]) - assert.isArray(result[0].vin) - assert.isArray(result[0].vout) - } - }) - - it(`should pass error from server to user`, async (): Promise => { - try { - // Mock out data for unit test, to prevent live network call. - sandbox - .stub(axios, "get") - .throws("error", "Input must be a string or array of strings") - - const addr: any = 12345 - - await bitbox.RawTransactions.decodeRawTransaction(addr) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: ${util.inspect(err)}`) - assert.include( - err.message, - `Input must be a string or array of strings` - ) - } - }) - }) - - describe("#getRawTransaction", (): void => { - it("should decode a single txid, with concise output", async (): Promise< - any - > => { - // Mock the call to rest to prevent live network calls. - const resolved = new Promise(r => r({ data: rtMock.rawTx })) - sandbox.stub(axios, "get").returns(resolved) - - const txid: string = - "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" - const verbose: boolean = false - - const result: - | VerboseRawTransactionResult - | VerboseRawTransactionResult[] - | string - | string[] = await bitbox.RawTransactions.getRawTransaction( - txid, - verbose - ) - //console.log(`result: ${JSON.stringify(result,null,2)}`) - - assert.isString(result) - }) - - it("should decode a single txid, with verbose output", async (): Promise< - any - > => { - // Mock the call to rest to prevent live network calls. - const resolved = new Promise(r => r({ data: rtMock.decodedTx })) - sandbox.stub(axios, "get").returns(resolved) - - const txid: string = - "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" - const verbose: boolean = true - - const result: - | VerboseRawTransactionResult - | VerboseRawTransactionResult[] - | string - | string[] = await bitbox.RawTransactions.getRawTransaction( - txid, - verbose - ) - //console.log(`result: ${JSON.stringify(result,null,2)}`) - - assert.hasAnyKeys(result, [ - "hex", - "txid", - "hash", - "size", - "version", - "locktime", - "vin", - "vout", - "blockhash", - "confirmations", - "time", - "blocktime" - ]) - if (!Array.isArray(result) && result instanceof Object) { - assert.isArray(result.vin) - assert.isArray(result.vout) - } - }) - - it("should decode an array of txids, with a concise output", async (): Promise< - any - > => { - // Mock the call to rest to prevent live network calls. - const testData = [rtMock.rawTx, rtMock.rawTx] - const resolved = new Promise(r => r({ data: testData })) - sandbox.stub(axios, "post").returns(resolved) - - const txid: string[] = [ - "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", - "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" - ] - const verbose: boolean = false - - const result: - | VerboseRawTransactionResult - | VerboseRawTransactionResult[] - | string - | string[] = await bitbox.RawTransactions.getRawTransaction( - txid, - verbose - ) - - assert.isArray(result) - if (Array.isArray(result)) assert.isString(result[0]) - }) - - it("should decode an array of txids, with a verbose output", async (): Promise< - any - > => { - // Mock the call to rest to prevent live network calls. - const testData = [rtMock.decodedTx, rtMock.decodedTx] - const resolved = new Promise(r => r({ data: testData })) - sandbox.stub(axios, "post").returns(resolved) - - const txid: string[] = [ - "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", - "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" - ] - const verbose: boolean = true - - const result: - | VerboseRawTransactionResult - | VerboseRawTransactionResult[] - | string - | string[] = await bitbox.RawTransactions.getRawTransaction( - txid, - verbose - ) - - assert.isArray(result) - if (Array.isArray(result)) { - assert.hasAnyKeys(result[0], [ - "hex", - "txid", - "hash", - "size", - "version", - "locktime", - "vin", - "vout", - "blockhash", - "confirmations", - "time", - "blocktime" - ]) - // TODO uncomment this test and fix ts error - // assert.isArray(result[0].vin); - // assert.isArray(result[0].vout); - } - }) - - it(`should pass error from server to user`, async (): Promise => { - try { - // Mock out data for unit test, to prevent live network call. - sandbox - .stub(axios, "get") - .throws("error", "Input must be a string or array of strings") - - const txid: any = 12345 - - await bitbox.RawTransactions.getRawTransaction(txid, false) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: ${util.inspect(err)}`) - assert.include( - err.message, - `Input must be a string or array of strings` - ) - } - }) - }) - - describe("#decodeScript", () => { - it("should decode script for a single hex", async (): Promise => { - // Mock the call to rest to prevent live network calls. - const resolved = new Promise(r => r({ data: rtMock.decodedScript })) - sandbox.stub(axios, "get").returns(resolved) - - const hex: string = - "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" - - const result = await bitbox.RawTransactions.decodeScript(hex) - //console.log(`result: ${JSON.stringify(result,null,2)}`) - - assert.hasAllKeys(result, ["asm", "type", "p2sh"]) - }) - - it("should decode an array of tx hexes", async () => { - // Mock the call to rest to prevent live network calls. - const testData = [rtMock.decodedScript, rtMock.decodedScript] - const resolved = new Promise(r => r({ data: testData })) - sandbox.stub(axios, "post").returns(resolved) - - const hexes = [ - "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16", - "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" - ] - - const result = await bitbox.RawTransactions.decodeScript(hexes) - //console.log(`result ${JSON.stringify(result, null, 2)}`) - - assert.isArray(result) - assert.hasAnyKeys(result[0], ["asm", "type", "p2sh"]) - }) - - it(`should pass error from server to user`, async (): Promise => { - try { - // Mock out data for unit test, to prevent live network call. - sandbox - .stub(axios, "get") - .throws("error", "Input must be a string or array of strings") - - const hexes: any = 12345 - - await bitbox.RawTransactions.decodeScript(hexes) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: ${util.inspect(err)}`) - assert.include( - err.message, - `Input must be a string or array of strings` - ) - } - }) - }) - - /* - Testing sendRawTransaction isn't really possible with an integration test, - as the endpoint really needs an e2e test to be properly tested. The tests - below expect error messages returned from the server, but at least test - that the server is responding on those endpoints, and responds consistently. - */ - describe("sendRawTransaction", () => { - it("should send a single transaction hex", async (): Promise => { - try { - // Mock out data for unit test, to prevent live network call. - sandbox.stub(axios, "get").throws({ error: "Missing inputs" }) - - const hex: string = - "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" - - await bitbox.RawTransactions.sendRawTransaction(hex) - - assert.equal(true, false, "Unexpected result!") - } catch (err) { - //console.log(`err: ${util.inspect(err)}`) - assert.hasAllKeys(err, ["error"]) - assert.include(err.error, "Missing inputs") - } - }) - - it("should send an array of tx hexes", async (): Promise => { - try { - // Mock out data for unit test, to prevent live network call. - sandbox.stub(axios, "post").throws({ error: "Missing inputs" }) - - const hexes: string[] = [ - "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000", - "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" - ] - - const result = await bitbox.RawTransactions.sendRawTransaction(hexes) - } catch (err) { - // console.log(`err: ${util.inspect(err)}`) - assert.hasAllKeys(err, ["error"]) - assert.include(err.error, "Missing inputs") - } - }) - }) -}) diff --git a/test/unit/Script.ts b/test/unit/Script.ts deleted file mode 100644 index 3da586ef..00000000 --- a/test/unit/Script.ts +++ /dev/null @@ -1,450 +0,0 @@ -// imports -import * as assert from "assert"; -import { BITBOX } from "../../lib/BITBOX" -import { Script, DecodedP2PKHInput, DecodedP2MSOutput } from "../../lib/Script" -import * as bcl from "bitcoincashjs-lib" - -// consts -const bitbox: BITBOX = new BITBOX() - -// TODO: port from require to import syntax -const fixtures = require("./fixtures/Script.json") - -describe("#Script", (): void => { - describe("#ScriptConstructor", (): void => { - it("should create instance of Script", (): void => { - const script: Script = new Script() - assert.equal(script instanceof Script, true) - }) - }) - - describe("#decode", (): void => { - describe("P2PKH scriptSig", (): void => { - fixtures.decodeScriptSig.forEach((fixture: any): void => { - it(`should decode scriptSig buffer`, (): void => { - const decodedScriptSig: any[] = bitbox.Script.decode( - Buffer.from(fixture.scriptSigHex, "hex") - ) - assert.equal(typeof decodedScriptSig, "object") - }) - - it(`should decode scriptSig buffer to cash address ${ - fixture.cashAddress - }`, (): void => { - const decodedScriptSig: any[] = bitbox.Script.decode( - Buffer.from(fixture.scriptSigHex, "hex") - ) - const address: string = bitbox.HDNode.toCashAddress( - bitbox.ECPair.fromPublicKey(decodedScriptSig[1]) - ) - assert.equal(address, fixture.cashAddress) - }) - - it(`should decode scriptSig buffer to legacy address ${ - fixture.legacyAddress - }`, (): void => { - const decodedScriptSig: any[] = bitbox.Script.decode( - Buffer.from(fixture.scriptSigHex, "hex") - ) - const address: string = bitbox.HDNode.toLegacyAddress( - bitbox.ECPair.fromPublicKey(decodedScriptSig[1]) - ) - assert.equal(address, fixture.legacyAddress) - }) - }) - }) - - describe("P2PKH scriptPubKey", (): void => { - fixtures.decodeScriptPubKey.forEach((fixture: any): void => { - it(`should decode scriptSig buffer`, (): void => { - const decodedScriptPubKey: any[] = bitbox.Script.decode( - Buffer.from(fixture.scriptPubKeyHex, "hex") - ) - assert.equal(decodedScriptPubKey.length, 5) - }) - - it(`should match hashed pubKey ${fixture.pubKeyHex}`, (): void => { - const decodedScriptPubKey: any[] = bitbox.Script.decode( - Buffer.from(fixture.scriptPubKeyHex, "hex") - ) - const data: Buffer = Buffer.from(fixture.pubKeyHex, "hex") - const hash160: Buffer = bitbox.Crypto.hash160(data) - assert.equal(decodedScriptPubKey[2].toString("hex"), hash160.toString("hex")) - }) - }) - }) - }) - - describe("#encode", (): void => { - describe("P2PKH scriptSig", (): void => { - fixtures.encodeScriptSig.forEach((fixture: any): void => { - it(`should encode scriptSig chunks to buffer`, (): void => { - const arr: Buffer[] = [ - Buffer.from(fixture.scriptSigChunks[0], "hex"), - Buffer.from(fixture.scriptSigChunks[1], "hex") - ] - const encodedScriptSig: any = bitbox.Script.encode(arr) - assert.equal(typeof encodedScriptSig, "object") - }) - }) - }) - - describe("P2PKH scriptPubKey", (): void => { - fixtures.encodeScriptPubKey.forEach((fixture: any): void => { - it(`should encode scriptPubKey buffer`, (): void => { - const decodedScriptPubKey: any[] = bitbox.Script.decode( - Buffer.from(fixture.scriptPubKeyHex, "hex") - ) - const compiledScriptPubKey: any = bitbox.Script.encode(decodedScriptPubKey) - assert.equal( - compiledScriptPubKey.toString("hex"), - fixture.scriptPubKeyHex - ) - }) - }) - }) - }) - - describe("#toASM", (): void => { - describe("P2PKH scriptSig", (): void => { - fixtures.scriptSigToASM.forEach((fixture: any): void => { - it(`should encode scriptSig buffer to ${fixture.asm}`, (): void => { - const arr: Buffer[] = [ - Buffer.from(fixture.scriptSigChunks[0], "hex"), - Buffer.from(fixture.scriptSigChunks[1], "hex") - ] - const compiledScriptSig: any = bitbox.Script.encode(arr) - const asm: string = bitbox.Script.toASM(compiledScriptSig) - assert.equal(asm, fixture.asm) - }) - }) - }) - - describe("P2PKH scriptPubKey", (): void => { - fixtures.scriptPubKeyToASM.forEach((fixture: any): void => { - it(`should compile scriptPubKey buffer to ${fixture.asm}`, (): void => { - const asm: string = bitbox.Script.toASM( - Buffer.from(fixture.scriptPubKeyHex, "hex") - ) - assert.equal(asm, fixture.asm) - }) - }) - }) - }) - - describe("#fromASM", (): void => { - describe("P2PKH scriptSig", (): void => { - fixtures.scriptSigFromASM.forEach((fixture: any): void => { - it(`should decode scriptSig asm to buffer`, (): void => { - const buf: Buffer = bitbox.Script.fromASM(fixture.asm) - assert.equal(typeof buf, "object") - }) - }) - }) - - describe("P2PKH scriptPubKey", (): void => { - fixtures.scriptPubKeyFromASM.forEach((fixture: any): void => { - it(`should decode scriptPubKey asm to buffer`, (): void => { - const buf: Buffer = bitbox.Script.fromASM(fixture.asm) - assert.equal(typeof buf, "object") - }) - }) - }) - }) - - describe("#OPCodes", (): void => { - for (const opcode in fixtures.opcodes) { - it(`should have OP Code ${opcode}`, (): void => { - // @ts-ignore - assert.equal(bitbox.Script.opcodes[opcode], fixtures.opcodes[opcode]) - }) - } - }) - - describe("#classifyInput", (): void => { - fixtures.classifyInput.forEach((fixture: any): void => { - it(`should classify input type ${fixture.type}`, (): void => { - const type: string = bitbox.Script.classifyInput( - bitbox.Script.fromASM(fixture.script) - ) - assert.equal(type, fixture.type) - }) - }) - }) - - describe("#classifyOutput", (): void => { - fixtures.classifyOutput.forEach((fixture: any): void => { - it(`should classify ouput type ${fixture.type}`, (): void => { - const type: string = bitbox.Script.classifyOutput( - bitbox.Script.fromASM(fixture.script) - ) - assert.equal(type, fixture.type) - }) - }) - }) - - describe("#nullDataTemplate", (): void => { - fixtures.nullDataTemplate.forEach((fixture: any): void => { - it(`should encode nulldata output`, (): void => { - let buf: Buffer = Buffer.from(fixture.data, "ascii") - const encoded: Buffer = bitbox.Script.encodeNullDataOutput(buf) - assert.equal(encoded.toString("hex"), fixture.hex) - }) - - it(`should decode nulldata output`, (): void => { - let buf: Buffer = Buffer.from(fixture.hex, "hex") - const decoded: Buffer = bitbox.Script.decodeNullDataOutput(buf) - assert.equal(decoded.toString("ascii"), fixture.data) - }) - - it(`should confirm correctly formatted nulldata output`, (): void => { - let buf: Buffer = Buffer.from(fixture.data, "ascii") - const encoded: Buffer = bitbox.Script.encodeNullDataOutput(buf) - const valid: boolean = bitbox.Script.checkNullDataOutput(encoded) - assert.equal(valid, true) - }) - }) - }) - - describe("#pubKeyTemplate", (): void => { - describe("#pubKeyInputTemplate", (): void => { - fixtures.pubKeyInputTemplate.forEach((fixture: any): void => { - it(`should encode pubKey input`, (): void => { - const buf: Buffer = bitbox.Script.encodeP2PKInput( - Buffer.from(fixture.signature, "hex") - ) - assert.equal(buf.toString("hex"), fixture.hex) - }) - - it(`should decode pubKey input`, (): void => { - const buf: Buffer = bitbox.Script.pubKey.input.decode( - Buffer.from(fixture.hex, "hex") - ) - assert.equal(buf.toString("hex"), fixture.signature) - }) - - it(`should confirm correctly formatted pubKeyHash input`, (): void => { - const buf: Buffer = bitbox.Script.encodeP2PKInput( - Buffer.from(fixture.signature, "hex") - ) - const valid: boolean = bitbox.Script.pubKey.input.check(buf) - assert.equal(valid, true) - }) - }) - }) - - describe("#pubKeyOutputTemplate", (): void => { - fixtures.pubKeyOutputTemplate.forEach((fixture: any): void => { - it(`should encode pubKey output`, (): void => { - const buf: Buffer = Buffer.from(fixture.pubKey, "hex") - const encoded: Buffer = bitbox.Script.encodeP2PKOutput(buf) - assert.equal(encoded.toString("hex"), fixture.hex) - }) - - it(`should decode pubKey output`, (): void => { - const buf: Buffer = Buffer.from(fixture.hex, "hex") - const decoded: Buffer = bitbox.Script.decodeP2PKOutput(buf) - assert.equal(decoded.toString("hex"), fixture.pubKey) - }) - - it(`should confirm correctly formatted pubKey output`, (): void => { - const buf: Buffer = Buffer.from(fixture.pubKey, "hex") - const encoded: Buffer = bitbox.Script.encodeP2PKOutput(buf) - const valid: boolean = bitbox.Script.checkP2PKOutput(encoded) - assert.equal(valid, true) - }) - }) - }) - }) - - describe("#pubKeyHashTemplate", (): void => { - describe("#pubKeyHashInputTemplate", (): void => { - fixtures.pubKeyHashInputTemplate.forEach((fixture: any): void => { - it(`should encode pubKeyHash input`, (): void => { - const sigBuf = Buffer.from(fixture.signature, 'hex') - const pubKeyBuf = Buffer.from(fixture.pubKey, 'hex') - const encoded: Buffer = bitbox.Script.encodeP2PKHInput(sigBuf, pubKeyBuf) - assert.equal(encoded.toString("hex"), fixture.hex) - }) - - it(`should decode pubKeyHash input signature`, (): void => { - const input: Buffer = Buffer.from(fixture.hex, "hex") - const buf: DecodedP2PKHInput = bitbox.Script.decodeP2PKHInput(input) - assert.equal(buf.signature.toString("hex"), fixture.signature) - }) - - it(`should decode pubKeyHash input pubkey`, (): void => { - const input: Buffer = Buffer.from(fixture.hex, "hex") - const buf: DecodedP2PKHInput = bitbox.Script.decodeP2PKHInput(input) - assert.equal(buf.pubKey.toString("hex"), fixture.pubKey) - }) - - it(`should confirm correctly formatted pubKeyHash input`, (): void => { - const sigBuf = Buffer.from(fixture.signature, 'hex') - const pubKeyBuf = Buffer.from(fixture.pubKey, 'hex') - const encoded: Buffer = bitbox.Script.encodeP2PKHInput(sigBuf, pubKeyBuf) - const valid: boolean = bitbox.Script.checkP2PKHInput(encoded) - assert.equal(valid, true) - }) - }) - }) - - describe("#pubKeyHashOutputTemplate", (): void => { - fixtures.pubKeyHashOutputTemplate.forEach((fixture: any): void => { - const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) - const identifier: Buffer = bitbox.HDNode.toIdentifier(node) - it(`should encode pubKeyHash output`, (): void => { - const output: Buffer = bitbox.Script.encodeP2PKHOutput(identifier) - assert.equal(output.toString("hex"), fixture.hex) - }) - - it(`should decode pubKeyHash output`, (): void => { - let output: Buffer = Buffer.from(`${fixture.hex}`, "hex") - const decoded: Buffer = bitbox.Script.pubKeyHash.output.decode(output) - assert.equal(decoded.toString("hex"), identifier.toString("hex")) - }) - - it(`should confirm correctly formatted pubKeyHash output`, (): void => { - const buf: Buffer = bitbox.Script.pubKeyHash.output.encode(identifier) - const valid: boolean = bitbox.Script.pubKeyHash.output.check(buf) - assert.equal(valid, true) - }) - }) - }) - }) - - describe("#multisigTemplate", (): void => { - describe("#multisigInputTemplate", (): void => { - fixtures.multisigInputTemplate.forEach((fixture: any): void => { - it(`should encode multisig input`, (): void => { - const signatures: Buffer[] = fixture.signatures.map((signature: any) => - Buffer.from(signature, "hex") - ) - const input: Buffer = bitbox.Script.encodeP2MSInput(signatures) - assert.equal(input.toString("hex"), fixture.hex) - }) - - it(`should decode multisig input`, (): void => { - const output: Buffer = Buffer.from(fixture.hex, "hex") - const decoded: Buffer[] = bitbox.Script.decodeP2MSInput(output) - assert.equal(decoded[0].toString("hex"), fixture.signatures[0]) - }) - - it(`should confirm correctly formatted multisig input`, (): void => { - const signatures: Buffer[] = fixture.signatures.map((signature: any) => - Buffer.from(signature, "hex") - ) - const input: Buffer = bitbox.Script.encodeP2MSInput(signatures) - const valid: boolean = bitbox.Script.checkP2MSInput(input) - assert.equal(valid, true) - }) - }) - }) - - describe("#multisigOutputTemplate", (): void => { - fixtures.multisigOutputTemplate.forEach((fixture: any): void => { - it(`should encode multisig output`, (): void => { - const pubKeys: Buffer[] = fixture.pubKeys.map((p: string) => Buffer.from(p, "hex")) - const m: number = pubKeys.length - const output: Buffer = bitbox.Script.encodeP2MSOutput(m, pubKeys) - - assert.equal(output.toString("hex"), fixture.hex) - }) - - it(`should decode multisig output`, (): void => { - const output: Buffer = Buffer.from(`${fixture.hex}`, "hex") - const decoded: DecodedP2MSOutput = bitbox.Script.decodeP2MSOutput(output) - assert.equal(decoded.m, fixture.pubKeys.length) - }) - - it(`should confirm correctly formatted multisig output`, (): void => { - const pubKeys: Buffer[] = fixture.pubKeys.map((p: any) => Buffer.from(p, "hex")) - const m: number = pubKeys.length - const output: Buffer = bitbox.Script.encodeP2MSOutput(m, pubKeys) - const valid: boolean = bitbox.Script.checkP2MSOutput(output) - assert.equal(valid, true) - }) - }) - }) - }) - - describe("#scriptHashTemplate", (): void => { - describe("#scriptHashInputTemplate", (): void => { - fixtures.scriptHashInputTemplate.forEach((fixture: any): void => { - it(`should encode scriptHash input`, (): void => { - const redeemScriptSig: Buffer = bitbox.Script.fromASM(fixture.redeemScriptSig) - const redeemScript: Buffer = bitbox.Script.fromASM(fixture.redeemScript) - const input: Buffer = bitbox.Script.encodeP2SHInput(redeemScriptSig, redeemScript) - assert.equal(input.toString("hex"), fixture.hex) - }) - - it(`should decode scriptHash input`, (): void => { - const redeemScriptSig: Buffer = bitbox.Script.fromASM(fixture.redeemScriptSig) - const redeemScript: Buffer = bitbox.Script.fromASM(fixture.redeemScript) - const input: Buffer = bitbox.Script.encodeP2SHInput(redeemScriptSig, redeemScript) - assert.deepEqual( - bitbox.Script.decodeP2SHInput(input), - { - redeemScriptSig: redeemScriptSig, - redeemScript: redeemScript - } - ) - }) - - it(`should confirm correctly formatted scriptHash input`, (): void => { - const redeemScriptSig: Buffer = bitbox.Script.fromASM(fixture.redeemScriptSig) - const redeemScript: Buffer = bitbox.Script.fromASM(fixture.redeemScript) - const input: Buffer = bitbox.Script.encodeP2SHInput(redeemScriptSig, redeemScript) - const valid: boolean = bitbox.Script.scriptHash.input.check(input) - assert.equal(valid, true) - }) - }) - }) - - describe("#scriptHashOutputTemplate", (): void => { - fixtures.scriptHashOutputTemplate.forEach((fixture: any): void => { - it(`should encode scriptHash output`, (): void => { - const redeemScript: Buffer = bitbox.Script.fromASM(fixture.output) - const scriptHash: Buffer = bitbox.Crypto.hash160(redeemScript) - const output: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash) - - assert.equal(output.toString("hex"), fixture.hex) - }) - - it(`should decode scriptHash output`, (): void => { - const redeemScript: any = bitbox.Script.fromASM(fixture.output) - const scriptHash: Buffer = bitbox.Crypto.hash160(redeemScript) - const output: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash) - let decoded: Buffer = bitbox.Script.decodeP2SHOutput(output) - assert.deepEqual(decoded, scriptHash) - }) - - it(`should confirm correctly formatted scriptHash output`, (): void => { - const redeemScript: any = bitbox.Script.fromASM(fixture.output) - const scriptHash: Buffer = bitbox.Crypto.hash160(redeemScript) - const buf: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash) - const valid: boolean = bitbox.Script.scriptHash.output.check(buf) - assert.equal(valid, true) - }) - }) - }) - }) - - describe("#number", (): void => { - fixtures.scriptNumber.forEach((fixture: any): void => { - it(`should encode number ${fixture.decoded} as bytes ${fixture.encoded}`, (): void => { - const encoded1 = bitbox.Script.number.encode(fixture.decoded) - const encoded2 = bitbox.Script.encodeNumber(fixture.decoded) - assert.equal(encoded1.toString("hex"), fixture.encoded) - assert.equal(encoded2.toString("hex"), fixture.encoded) - }) - - it(`should decode bytes ${fixture.encoded} as number ${fixture.decoded}`, (): void => { - const decoded1 = bitbox.Script.number.decode(Buffer.from(fixture.encoded, 'hex')) - const decoded2 = bitbox.Script.decodeNumber(Buffer.from(fixture.encoded, 'hex')) - assert.equal(decoded1, fixture.decoded) - assert.equal(decoded2, fixture.decoded) - }) - }) - }) -}) diff --git a/test/unit/TransactionBuilder.ts b/test/unit/TransactionBuilder.ts deleted file mode 100644 index fd08ef26..00000000 --- a/test/unit/TransactionBuilder.ts +++ /dev/null @@ -1,2041 +0,0 @@ -// imports -import * as assert from "assert"; -import { BITBOX } from "../../lib/BITBOX" -import { TransactionBuilder } from "../../lib/TransactionBuilder" -import * as bcl from "bitcoincashjs-lib" - -// consts -const bitbox: BITBOX = new BITBOX() - -// TODO: port from require to import syntax -const fixtures = require("./fixtures/TransactionBuilder.json") - -describe("#TransactionBuilder", (): void => { - describe("#TransactionBuilderConstructor", (): void => { - it("should create instance of TransactionBuilder", (): void => { - const transactionbuilder: TransactionBuilder = new TransactionBuilder() - assert.equal(transactionbuilder instanceof TransactionBuilder, true) - }) - }) - - describe("#hashTypes", (): void => { - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("mainnet") - fixtures.hashTypes.forEach((fixture: any): void => { - it(`should match hash type`, (): void => { - assert.equal( - fixture[Object.keys(fixture)[0]], - // @ts-ignore - transactionBuilder.hashTypes[Object.keys(fixture)[0]] - ) - }) - }) - }) - - describe("#P2PK", (): void => { - describe("#toOne", (): void => { - describe("#Mainnet", (): void => { - fixtures.scripts.p2pk.toOne.mainnet.forEach((fixture: any): void => { - it(`should create 1-to-1 P2PK transaction on mainnet`, (): void => { - const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() - const originalAmount: number = fixture.amount - const txid: string = fixture.txHash - const pubKey: any = bitbox.HDNode.toPublicKey(node) - const prevOutScript: Buffer = bitbox.Script.encodeP2PKOutput(pubKey) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - prevOutScript - ) - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 1 }, - { P2PKH: 3 } - ) - const sendAmount: number = originalAmount - byteCount - transactionBuilder.addOutput(prevOutScript, sendAmount) - const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(node) - let redeemScript: undefined - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount - ) - const tx: any = transactionBuilder.build() - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#Testnet", (): void => { - fixtures.scripts.p2pk.toOne.testnet.forEach((fixture: any): void => { - it(`should create 1-to-1 P2PK transaction on testnet`, (): void => { - const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") - const originalAmount: number = fixture.amount - const txid: string = fixture.txHash - const pubKey: Buffer = bitbox.HDNode.toPublicKey(node) - const prevOutScript: Buffer = bitbox.Script.encodeP2PKOutput(pubKey) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - prevOutScript - ) - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 3 }, - { P2PKH: 3 } - ) - const sendAmount: number = originalAmount - byteCount - transactionBuilder.addOutput(prevOutScript, sendAmount) - const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(node) - let redeemScript: undefined - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount - ) - const tx: any = transactionBuilder.build() - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - }) - - describe("#toMany", (): void => { - describe("#Mainnet", (): void => { - fixtures.scripts.p2pk.toMany.mainnet.forEach((fixture: any): void => { - it(`should create 1-to-many P2PK transaction on mainnet`, (): void => { - const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() - const originalAmount: number = fixture.amount - const txid: string = fixture.txHash - const pubKey1: Buffer = bitbox.HDNode.toPublicKey(node1) - const pubKey2: Buffer = bitbox.HDNode.toPublicKey(node2) - const pubKey3: Buffer = bitbox.HDNode.toPublicKey(node3) - const prevOutScript1: Buffer = bitbox.Script.encodeP2PKOutput(pubKey1) - const prevOutScript2: Buffer = bitbox.Script.encodeP2PKOutput(pubKey2) - const prevOutScript3: Buffer = bitbox.Script.encodeP2PKOutput(pubKey3) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - prevOutScript1 - ) - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 1 }, - { P2PKH: 3 } - ) - const sendAmount: number = originalAmount - byteCount - transactionBuilder.addOutput(prevOutScript2, Math.floor(sendAmount / 2)) - transactionBuilder.addOutput(prevOutScript3, Math.floor(sendAmount / 2)) - const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) - let redeemScript: undefined - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount - ) - const tx: any = transactionBuilder.build() - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#Testnet", (): void => { - fixtures.scripts.p2pk.toMany.testnet.forEach((fixture: any): void => { - it(`should create 1-to-many P2PK transaction on testnet`, (): void => { - const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") - const originalAmount: number = fixture.amount - const txid: string = fixture.txHash - const pubKey1: Buffer = bitbox.HDNode.toPublicKey(node1) - const pubKey2: Buffer = bitbox.HDNode.toPublicKey(node2) - const pubKey3: Buffer = bitbox.HDNode.toPublicKey(node3) - const prevOutScript1: Buffer = bitbox.Script.encodeP2PKOutput(pubKey1) - const prevOutScript2: Buffer = bitbox.Script.encodeP2PKOutput(pubKey2) - const prevOutScript3: Buffer = bitbox.Script.encodeP2PKOutput(pubKey3) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - prevOutScript1 - ) - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 3 }, - { P2PKH: 3 } - ) - const sendAmount: number = originalAmount - byteCount - transactionBuilder.addOutput(prevOutScript2, Math.floor(sendAmount / 2)) - transactionBuilder.addOutput(prevOutScript3, Math.floor(sendAmount / 2)) - const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) - let redeemScript: undefined - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount - ) - const tx: any = transactionBuilder.build() - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - }) - - describe("#manyToMany", (): void => { - describe("#Mainnet", (): void => { - fixtures.scripts.p2pk.manyToMany.mainnet.forEach((fixture: any): void => { - it(`should create many-to-many P2PK transaction on mainnet`, (): void => { - const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) - const node4: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() - const originalAmount: number = fixture.amount - const txid: string = fixture.txHash - const pubKey1: Buffer = bitbox.HDNode.toPublicKey(node1) - const pubKey2: Buffer = bitbox.HDNode.toPublicKey(node2) - const pubKey3: Buffer = bitbox.HDNode.toPublicKey(node3) - const pubKey4: Buffer = bitbox.HDNode.toPublicKey(node4) - const prevOutScript1: Buffer = bitbox.Script.encodeP2PKOutput(pubKey1) - const prevOutScript2: Buffer = bitbox.Script.encodeP2PKOutput(pubKey2) - const prevOutScript3: Buffer = bitbox.Script.encodeP2PKOutput(pubKey3) - const prevOutScript4: Buffer = bitbox.Script.encodeP2PKOutput(pubKey4) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - prevOutScript1 - ) - transactionBuilder.addInput( - txid, - 1, - transactionBuilder.DEFAULT_SEQUENCE, - prevOutScript2 - ) - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 3 }, - { P2PKH: 3 } - ) - const sendAmount: number = originalAmount - byteCount - transactionBuilder.addOutput(prevOutScript3, Math.floor(sendAmount / 2)) - transactionBuilder.addOutput(prevOutScript4, Math.floor(sendAmount / 2)) - const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) - const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) - let redeemScript: undefined - transactionBuilder.sign( - 0, - keyPair1, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - transactionBuilder.sign( - 1, - keyPair2, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - const tx: any = transactionBuilder.build() - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#Testnet", (): void => { - fixtures.scripts.p2pk.manyToMany.testnet.forEach((fixture: any): void => { - it(`should create many-to-many P2PK transaction on testnet`, (): void => { - const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) - const node4: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") - const originalAmount: number = fixture.amount - const txid: string = fixture.txHash - const pubKey1: Buffer = bitbox.HDNode.toPublicKey(node1) - const pubKey2: Buffer = bitbox.HDNode.toPublicKey(node2) - const pubKey3: Buffer = bitbox.HDNode.toPublicKey(node3) - const pubKey4: Buffer = bitbox.HDNode.toPublicKey(node4) - const prevOutScript1: Buffer = bitbox.Script.encodeP2PKOutput(pubKey1) - const prevOutScript2: Buffer = bitbox.Script.encodeP2PKOutput(pubKey2) - const prevOutScript3: Buffer = bitbox.Script.encodeP2PKOutput(pubKey3) - const prevOutScript4: Buffer = bitbox.Script.encodeP2PKOutput(pubKey4) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - prevOutScript1 - ) - transactionBuilder.addInput( - txid, - 1, - transactionBuilder.DEFAULT_SEQUENCE, - prevOutScript2 - ) - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 3 }, - { P2PKH: 3 } - ) - const sendAmount: number = originalAmount - byteCount - transactionBuilder.addOutput(prevOutScript3, Math.floor(sendAmount / 2)) - transactionBuilder.addOutput(prevOutScript4, Math.floor(sendAmount / 2)) - const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) - const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) - let redeemScript: undefined - transactionBuilder.sign( - 0, - keyPair1, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - transactionBuilder.sign( - 1, - keyPair2, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - const tx: any = transactionBuilder.build() - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - }) - - describe("#fromMany", (): void => { - describe("#Mainnet", (): void => { - fixtures.scripts.p2pk.fromMany.mainnet.forEach((fixture: any): void => { - it(`should create many-to-1 P2PK transaction on mainnet`, (): void => { - const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() - const originalAmount: any = fixture.amount - const txid: string = fixture.txHash - const pubKey1: Buffer = bitbox.HDNode.toPublicKey(node1) - const pubKey2: Buffer = bitbox.HDNode.toPublicKey(node2) - const pubKey3: Buffer = bitbox.HDNode.toPublicKey(node3) - const prevOutScript1: Buffer = bitbox.Script.encodeP2PKOutput(pubKey1) - const prevOutScript2: Buffer = bitbox.Script.encodeP2PKOutput(pubKey2) - const prevOutScript3: Buffer = bitbox.Script.encodeP2PKOutput(pubKey3) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - prevOutScript1 - ) - transactionBuilder.addInput( - txid, - 1, - transactionBuilder.DEFAULT_SEQUENCE, - prevOutScript2 - ) - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 3 }, - { P2PKH: 3 } - ) - const sendAmount: number = originalAmount - byteCount - transactionBuilder.addOutput(prevOutScript3, sendAmount) - const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) - const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) - let redeemScript: undefined - transactionBuilder.sign( - 0, - keyPair1, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - transactionBuilder.sign( - 1, - keyPair2, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - const tx: any = transactionBuilder.build() - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#Testnet", (): void => { - fixtures.scripts.p2pk.fromMany.testnet.forEach((fixture: any): void => { - it(`should create many-to-1 P2PK transaction on testnet`, (): void => { - const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") - const originalAmount: number = fixture.amount - const txid: string = fixture.txHash - const pubKey1: Buffer = bitbox.HDNode.toPublicKey(node1) - const pubKey2: Buffer = bitbox.HDNode.toPublicKey(node2) - const pubKey3: Buffer = bitbox.HDNode.toPublicKey(node3) - const prevOutScript1: Buffer = bitbox.Script.encodeP2PKOutput(pubKey1) - const prevOutScript2: Buffer = bitbox.Script.encodeP2PKOutput(pubKey2) - const prevOutScript3: Buffer = bitbox.Script.encodeP2PKOutput(pubKey3) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - prevOutScript1 - ) - transactionBuilder.addInput( - txid, - 1, - transactionBuilder.DEFAULT_SEQUENCE, - prevOutScript2 - ) - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 3 }, - { P2PKH: 3 } - ) - const sendAmount: number = originalAmount - byteCount - transactionBuilder.addOutput(prevOutScript3, sendAmount) - const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) - const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) - let redeemScript: undefined - transactionBuilder.sign( - 0, - keyPair1, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - transactionBuilder.sign( - 1, - keyPair2, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - const tx: any = transactionBuilder.build() - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - }) - }) - - describe("#P2PKH", (): void => { - describe("#toOne", (): void => { - describe("#Mainnet", (): void => { - fixtures.scripts.p2pkh.toOne.mainnet.forEach((fixture: any): void => { - it(`should create 1-to-1 P2PKH transaction on mainnet`, (): void => { - const hdnode: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() - const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(hdnode) - const txHash: string = fixture.txHash - // original amount of satoshis in vin - const originalAmount: number = fixture.amount - transactionBuilder.addInput(txHash, fixture.vout) - // get byte count to calculate fee. paying 1 sat/byte - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 1 }, - { P2PKH: 1 } - ) - // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - const sendAmount: number = originalAmount - byteCount - // add output w/ address and amount to send - let redeemScript: undefined - transactionBuilder.addOutput(fixture.outputs[0], sendAmount) - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount - ) - - // build tx - const tx: any = transactionBuilder.build() - // output rawhex - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#Testnet", (): void => { - fixtures.scripts.p2pkh.toOne.testnet.forEach((fixture: any): void => { - it(`should create 1-to-1 P2PKH transaction on testnet`, (): void => { - const hdnode: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") - const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(hdnode) - const txHash: string = fixture.txHash - // original amount of satoshis in vin - const originalAmount: number = fixture.amount - transactionBuilder.addInput(txHash, fixture.vout) - // get byte count to calculate fee. paying 1 sat/byte - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 1 }, - { P2PKH: 1 } - ) - // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - const sendAmount: number = originalAmount - byteCount * 15 - // add output w/ address and amount to send - let redeemScript: undefined - transactionBuilder.addOutput(fixture.outputs[0], sendAmount) - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount - ) - - // build tx - const tx: any = transactionBuilder.build() - // output rawhex - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#RegTest", (): void => { - fixtures.scripts.p2pkh.toOne.regtest.forEach((fixture: any): void => { - it(`should create 1-to-1 P2PKH transaction on regtest`, (): void => { - const hdnode: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("regtest") - const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(hdnode) - const txHash: string = fixture.txHash - // original amount of satoshis in vin - const originalAmount: number = fixture.amount - transactionBuilder.addInput(txHash, fixture.vout) - // get byte count to calculate fee. paying 1 sat/byte - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 1 }, - { P2PKH: 1 } - ) - // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - const sendAmount: number = originalAmount - byteCount * 15 - // add output w/ address and amount to send - let redeemScript: undefined - transactionBuilder.addOutput(fixture.outputs[0], sendAmount) - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount - ) - - // build tx - const tx: any = transactionBuilder.build() - // output rawhex - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - }) - - describe("#toMany", (): void => { - describe("#Mainnet", (): void => { - fixtures.scripts.p2pkh.toMany.mainnet.forEach((fixture: any): void => { - it(`should create 1-to-2 P2PKH transaction on mainnet`, (): void => { - const hdnode: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() - const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(hdnode) - const txHash: string = fixture.txHash - // original amount of satoshis in vin - const originalAmount: number = fixture.amount - transactionBuilder.addInput(txHash, fixture.vout) - // get byte count to calculate fee. paying 1 sat/byte - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 1 }, - { P2PKH: 2 } - ) - // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - const sendAmount: number = originalAmount - byteCount - // add output w/ address and amount to send - transactionBuilder.addOutput( - fixture.outputs[0], - Math.floor(sendAmount / 2) - ) - transactionBuilder.addOutput( - fixture.outputs[1], - Math.floor(sendAmount / 2) - ) - let redeemScript: undefined - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount - ) - // build tx - const tx: any = transactionBuilder.build() - // output rawhex - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#Testnet", (): void => { - fixtures.scripts.p2pkh.toMany.testnet.forEach((fixture: any): void => { - // TODO pass in tesnet network config - it(`should create 1-to-2 P2PKH transaction on testnet`, (): void => { - const hdnode: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") - const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(hdnode) - const txHash: string = fixture.txHash - // original amount of satoshis in vin - const originalAmount: number = fixture.amount - transactionBuilder.addInput(txHash, fixture.vout) - // get byte count to calculate fee. paying 1 sat/byte - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 1 }, - { P2PKH: 2 } - ) - // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - const sendAmount: number = originalAmount - byteCount * 15 - // add output w/ address and amount to send - transactionBuilder.addOutput( - fixture.outputs[0], - Math.floor(sendAmount / 2) - ) - transactionBuilder.addOutput( - fixture.outputs[1], - Math.floor(sendAmount / 2) - ) - let redeemScript: undefined - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount - ) - // build tx - const tx: any = transactionBuilder.build() - // output rawhex - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#RegTest", (): void => { - fixtures.scripts.p2pkh.toMany.regtest.forEach((fixture: any): void => { - // TODO pass in tesnet network config - it(`should create 1-to-2 P2PKH transaction on regtest`, (): void => { - const hdnode: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("regtest") - const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(hdnode) - const txHash: string = fixture.txHash - // original amount of satoshis in vin - const originalAmount: number = fixture.amount - transactionBuilder.addInput(txHash, fixture.vout) - // get byte count to calculate fee. paying 1 sat/byte - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 1 }, - { P2PKH: 2 } - ) - // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - const sendAmount: number = originalAmount - byteCount * 15 - // add output w/ address and amount to send - transactionBuilder.addOutput( - fixture.outputs[0], - Math.floor(sendAmount / 2) - ) - transactionBuilder.addOutput( - fixture.outputs[1], - Math.floor(sendAmount / 2) - ) - let redeemScript: undefined - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount - ) - // build tx - const tx: any = transactionBuilder.build() - // output rawhex - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - }) - - describe("#manyToMany", (): void => { - describe("#Mainnet", (): void => { - fixtures.scripts.p2pkh.manyToMany.mainnet.forEach((fixture: any): void => { - it(`should create 2-to-2 P2PKH transaction on mainnet`, (): void => { - const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() - const txHash: string = fixture.txHash - const originalAmount: number = fixture.amounts[0] + fixture.amounts[1] - transactionBuilder.addInput(txHash, 0) - transactionBuilder.addInput(txHash, 1) - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 2 }, - { P2PKH: 2 } - ) - const sendAmount: number = originalAmount - byteCount - transactionBuilder.addOutput( - fixture.outputs[0], - Math.floor(sendAmount / 2) - ) - transactionBuilder.addOutput( - fixture.outputs[1], - Math.floor(sendAmount / 2) - ) - const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) - const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) - let redeemScript: undefined - transactionBuilder.sign( - 0, - keyPair1, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amounts[0] - ) - transactionBuilder.sign( - 1, - keyPair2, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amounts[1] - ) - const tx: any = transactionBuilder.build() - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#Testnet", (): void => { - fixtures.scripts.p2pkh.manyToMany.testnet.forEach((fixture: any): void => { - it(`should create 2-to-2 P2PKH transaction on testnet`, (): void => { - const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") - const txHash: string = fixture.txHash - const originalAmount: number = fixture.amounts[0] + fixture.amounts[1] - transactionBuilder.addInput(txHash, 0) - transactionBuilder.addInput(txHash, 1) - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 2 }, - { P2PKH: 2 } - ) - const sendAmount: number = originalAmount - byteCount * 15 - transactionBuilder.addOutput( - fixture.outputs[0], - Math.floor(sendAmount / 2) - ) - transactionBuilder.addOutput( - fixture.outputs[1], - Math.floor(sendAmount / 2) - ) - const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) - const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) - let redeemScript: undefined - transactionBuilder.sign( - 0, - keyPair1, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amounts[0] - ) - transactionBuilder.sign( - 1, - keyPair2, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amounts[1] - ) - const tx: any = transactionBuilder.build() - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#RegTest", (): void => { - fixtures.scripts.p2pkh.manyToMany.regtest.forEach((fixture: any): void => { - it(`should create 2-to-2 P2PKH transaction on regtest`, (): void => { - const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("regtest") - const txHash: string = fixture.txHash - const originalAmount: number = fixture.amounts[0] + fixture.amounts[1] - transactionBuilder.addInput(txHash, 0) - transactionBuilder.addInput(txHash, 1) - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 2 }, - { P2PKH: 2 } - ) - const sendAmount: number = originalAmount - byteCount * 15 - transactionBuilder.addOutput( - fixture.outputs[0], - Math.floor(sendAmount / 2) - ) - transactionBuilder.addOutput( - fixture.outputs[1], - Math.floor(sendAmount / 2) - ) - const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) - const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) - let redeemScript: undefined - transactionBuilder.sign( - 0, - keyPair1, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amounts[0] - ) - transactionBuilder.sign( - 1, - keyPair2, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amounts[1] - ) - const tx: any = transactionBuilder.build() - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - }) - - describe("#fromMany", (): void => { - describe("#Mainnet", (): void => { - fixtures.scripts.p2pkh.fromMany.mainnet.forEach((fixture: any): void => { - it(`should create 2-to-1 P2PKH transaction on mainnet`, (): void => { - const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() - const txHash: string = fixture.txHash - const originalAmount: number = fixture.amounts[0] + fixture.amounts[1] - transactionBuilder.addInput(txHash, 0) - transactionBuilder.addInput(txHash, 1) - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 2 }, - { P2PKH: 1 } - ) - const sendAmount: number = originalAmount - byteCount - transactionBuilder.addOutput(fixture.outputs[0], sendAmount) - const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) - const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) - let redeemScript: undefined - transactionBuilder.sign( - 0, - keyPair1, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amounts[0] - ) - transactionBuilder.sign( - 1, - keyPair2, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amounts[1] - ) - const tx: any = transactionBuilder.build() - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#Testnet", (): void => { - fixtures.scripts.p2pkh.fromMany.testnet.forEach((fixture: any): void => { - it(`should create 2-to-1 P2PKH transaction on testnet`, (): void => { - const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") - const txHash: string = fixture.txHash - const originalAmount: number = fixture.amounts[0] + fixture.amounts[1] - transactionBuilder.addInput(txHash, 0) - transactionBuilder.addInput(txHash, 1) - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 2 }, - { P2PKH: 1 } - ) - const sendAmount: number = originalAmount - byteCount * 15 - transactionBuilder.addOutput(fixture.outputs[0], sendAmount) - const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) - const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) - let redeemScript: undefined - transactionBuilder.sign( - 0, - keyPair1, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amounts[0] - ) - transactionBuilder.sign( - 1, - keyPair2, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amounts[1] - ) - const tx: any = transactionBuilder.build() - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#RegTest", (): void => { - fixtures.scripts.p2pkh.fromMany.regtest.forEach((fixture: any): void => { - it(`should create 2-to-1 P2PKH transaction on regtest`, (): void => { - const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("regtest") - const txHash: string = fixture.txHash - const originalAmount: number = fixture.amounts[0] + fixture.amounts[1] - transactionBuilder.addInput(txHash, 0) - transactionBuilder.addInput(txHash, 1) - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 2 }, - { P2PKH: 1 } - ) - const sendAmount: number = originalAmount - byteCount * 15 - transactionBuilder.addOutput(fixture.outputs[0], sendAmount) - const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) - const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) - let redeemScript: undefined - transactionBuilder.sign( - 0, - keyPair1, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amounts[0] - ) - transactionBuilder.sign( - 1, - keyPair2, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amounts[1] - ) - const tx: any = transactionBuilder.build() - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - }) - }) - - describe("#op_return", (): void => { - describe("#Mainnet", (): void => { - fixtures.nulldata.mainnet.forEach((fixture: any): void => { - it(`should create transaction w/ OP_RETURN output on mainnet`, (): void => { - const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() - const txHash: string = fixture.txHash - const originalAmount: number = fixture.amount - transactionBuilder.addInput(txHash, 0) - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 1 }, - { P2PKH: 5 } - ) - const sendAmount: number = originalAmount - byteCount - transactionBuilder.addOutput(fixture.output, sendAmount) - const data = fixture.data - let buf: Buffer = Buffer.from(data, "ascii") - const encoded: Buffer = bitbox.Script.encodeNullDataOutput(buf) - transactionBuilder.addOutput(encoded, 0) - const keyPair = bitbox.HDNode.toKeyPair(node) - let redeemScript: undefined - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amount - ) - const tx: any = transactionBuilder.build() - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#Testnet", (): void => { - fixtures.nulldata.testnet.forEach((fixture: any): void => { - it(`should create transaction w/ OP_RETURN output on testnet`, (): void => { - const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") - const txHash: string = fixture.txHash - const originalAmount: number = fixture.amount - transactionBuilder.addInput(txHash, 0) - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 1 }, - { P2PKH: 5 } - ) - const sendAmount: number = originalAmount - byteCount - transactionBuilder.addOutput(fixture.output, sendAmount) - const data = fixture.data - let buf: Buffer = Buffer.from(data, "ascii") - const encoded: Buffer = bitbox.Script.encodeNullDataOutput(buf) - transactionBuilder.addOutput(encoded, 0) - const keyPair = bitbox.HDNode.toKeyPair(node) - let redeemScript: undefined - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amount - ) - const tx: any = transactionBuilder.build() - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#RegTest", (): void => { - fixtures.nulldata.regtest.forEach((fixture: any): void => { - it(`should create transaction w/ OP_RETURN output on regtest`, (): void => { - const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("regtest") - const txHash: string = fixture.txHash - const originalAmount: number = fixture.amount - transactionBuilder.addInput(txHash, 0) - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 1 }, - { P2PKH: 5 } - ) - const sendAmount: number = originalAmount - byteCount - transactionBuilder.addOutput(fixture.output, sendAmount) - const data = fixture.data - let buf: Buffer = Buffer.from(data, "ascii") - const encoded: Buffer = bitbox.Script.encodeNullDataOutput(buf) - transactionBuilder.addOutput(encoded, 0) - const keyPair = bitbox.HDNode.toKeyPair(node) - let redeemScript: undefined - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amount - ) - const tx: any = transactionBuilder.build() - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - }) - - describe("#P2MS", (): void => { - describe("#toOne", (): void => { - describe("#Mainnet", (): void => { - fixtures.scripts.p2ms.toOne.mainnet.forEach((fixture: any): void => { - it(`should create 1-to-1 1-of-2 P2MS transaction on mainnet`, (): void => { - const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) - const node4: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() - const txid: string = fixture.txHash - const originalAmount: number = fixture.amount - const pubKey1: Buffer = bitbox.HDNode.toPublicKey(node1) - const pubKey2: Buffer = bitbox.HDNode.toPublicKey(node2) - const buf1: Buffer = bitbox.Script.encodeP2MSOutput(1, [ - pubKey1, - pubKey2 - ]) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - buf1 - ) - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 3 }, - { P2PKH: 3 } - ) - const pubKey3: Buffer = bitbox.HDNode.toPublicKey(node3) - const pubKey4: Buffer = bitbox.HDNode.toPublicKey(node4) - const buf2: Buffer = bitbox.Script.encodeP2MSOutput(1, [ - pubKey3, - pubKey4 - ]) - const sendAmount: number = originalAmount - byteCount - transactionBuilder.addOutput(buf2, sendAmount) - let redeemScript: undefined - const keyPair = bitbox.HDNode.toKeyPair(node1) - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount - ) - const tx: any = transactionBuilder.build() - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - // describe('#Testnet', () => { - // fixtures.scripts.p2ms.toOne.testnet.forEach((fixture) => { - // it(`should create 1-to-1 P2MS transaction on testnet`, () => { - // let hdnode = bitbox.HDNode.fromXPriv(fixture.xpriv, 'testnet'); - // let transactionBuilder = new bitbox.TransactionBuilder('testnet'); - // let keyPair = bitbox.HDNode.toKeyPair(hdnode); - // let txHash = fixture.txHash; - // // original amount of satoshis in vin - // let originalAmount = fixture.amount; - // transactionBuilder.addInput(txHash, fixture.vout); - // // get byte count to calculate fee. paying 1 sat/byte - // let byteCount = bitbox.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 1 }); - // // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - // let sendAmount = originalAmount - (byteCount * 15); - // // add output w/ address and amount to send - // let redeemScript - // transactionBuilder.addOutput(fixture.outputs[0], sendAmount); - // transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); - // - // // build tx - // let tx = transactionBuilder.build(); - // // output rawhex - // let hex = tx.toHex(); - // assert.equal(hex, fixture.hex); - // }); - // }); - // }); - }) - - describe("#toMany", (): void => { - describe("#Mainnet", (): void => { - fixtures.scripts.p2ms.toMany.mainnet.forEach((fixture: any): void => { - it(`should create 1-to-2 P2MS transaction on mainnet`, (): void => { - const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) - const node4: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) - const node5: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[4]) - const node6: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[5]) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() - const txid: string = fixture.txHash - const originalAmount: number = fixture.amount - const pubKey1: Buffer = bitbox.HDNode.toPublicKey(node1) - const pubKey2: Buffer = bitbox.HDNode.toPublicKey(node2) - const buf1: Buffer = bitbox.Script.encodeP2MSOutput(1, [ - pubKey1, - pubKey2 - ]) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - buf1 - ) - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 3 }, - { P2PKH: 3 } - ) - const sendAmount: number = originalAmount - byteCount - const pubKey3: Buffer = bitbox.HDNode.toPublicKey(node3) - const pubKey4: Buffer = bitbox.HDNode.toPublicKey(node4) - const buf2: Buffer = bitbox.Script.encodeP2MSOutput(1, [ - pubKey3, - pubKey4 - ]) - transactionBuilder.addOutput(buf2, Math.floor(sendAmount / 2)) - const pubKey5: Buffer = bitbox.HDNode.toPublicKey(node5) - const pubKey6: Buffer = bitbox.HDNode.toPublicKey(node6) - const buf3: Buffer = bitbox.Script.encodeP2MSOutput(1, [ - pubKey5, - pubKey6 - ]) - transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) - let redeemScript: undefined - const keyPair = bitbox.HDNode.toKeyPair(node1) - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount - ) - const tx: any = transactionBuilder.build() - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - // describe('#Testnet', () => { - // fixtures.scripts.p2ms.toMany.testnet.forEach((fixture) => { - // // TODO pass in tesnet network config - // it(`should create 1-to-2 P2MS transaction on testnet`, () => { - // let hdnode = bitbox.HDNode.fromXPriv(fixture.xpriv); - // let transactionBuilder = new bitbox.TransactionBuilder('testnet'); - // let keyPair = bitbox.HDNode.toKeyPair(hdnode); - // let txHash = fixture.txHash; - // // original amount of satoshis in vin - // let originalAmount = fixture.amount; - // transactionBuilder.addInput(txHash, fixture.vout); - // // get byte count to calculate fee. paying 1 sat/byte - // let byteCount = bitbox.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 2 }); - // // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - // let sendAmount = originalAmount - (byteCount * 15); - // // add output w/ address and amount to send - // transactionBuilder.addOutput(fixture.outputs[0], Math.floor(sendAmount / 2)); - // transactionBuilder.addOutput(fixture.outputs[1], Math.floor(sendAmount / 2)); - // let redeemScript - // transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); - // // build tx - // let tx = transactionBuilder.build(); - // // output rawhex - // let hex = tx.toHex(); - // assert.equal(hex, fixture.hex); - // }); - // }); - // }); - }) - - describe("#manyToMany", (): void => { - describe("#Mainnet", (): void => { - fixtures.scripts.p2ms.manyToMany.mainnet.forEach((fixture: any): void => { - it(`should create 2-to-2 P2MS transaction on mainnet`, (): void => { - const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) - const node4: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) - const node5: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[4]) - const node6: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[5]) - const node7: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[6]) - const node8: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[7]) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() - const txid: string = fixture.txHash - const originalAmount: number = fixture.amount - const pubKey1: Buffer = bitbox.HDNode.toPublicKey(node1) - const pubKey2: Buffer = bitbox.HDNode.toPublicKey(node2) - const buf1: Buffer = bitbox.Script.encodeP2MSOutput(1, [ - pubKey1, - pubKey2 - ]) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - buf1 - ) - const pubKey3: Buffer = bitbox.HDNode.toPublicKey(node3) - const pubKey4: Buffer = bitbox.HDNode.toPublicKey(node4) - const buf2: Buffer = bitbox.Script.encodeP2MSOutput(1, [ - pubKey3, - pubKey4 - ]) - transactionBuilder.addInput( - txid, - 1, - transactionBuilder.DEFAULT_SEQUENCE, - buf2 - ) - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 3 }, - { P2PKH: 3 } - ) - const sendAmount: number = originalAmount - byteCount - const pubKey5: Buffer = bitbox.HDNode.toPublicKey(node5) - const pubKey6: Buffer = bitbox.HDNode.toPublicKey(node6) - const buf3: Buffer = bitbox.Script.encodeP2MSOutput(1, [ - pubKey5, - pubKey6 - ]) - transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) - const pubKey7: Buffer = bitbox.HDNode.toPublicKey(node7) - const pubKey8: Buffer = bitbox.HDNode.toPublicKey(node8) - const buf4: Buffer = bitbox.Script.encodeP2MSOutput(1, [ - pubKey7, - pubKey8 - ]) - transactionBuilder.addOutput(buf4, Math.floor(sendAmount / 2)) - let redeemScript: undefined - const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) - const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node3) - transactionBuilder.sign( - 0, - keyPair1, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - transactionBuilder.sign( - 1, - keyPair2, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - const tx: any = transactionBuilder.build() - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - // describe('#Testnet', () => { - // fixtures.scripts.p2ms.manyToMany.testnet.forEach((fixture) => { - // it(`should create 2-to-2 P2MS transaction on testnet`, () => { - // let node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]); - // let node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]); - // let transactionBuilder = new bitbox.TransactionBuilder('testnet'); - // let txHash = fixture.txHash; - // let originalAmount = fixture.amounts[0] + fixture.amounts[1]; - // transactionBuilder.addInput(txHash, 0); - // transactionBuilder.addInput(txHash, 1); - // let byteCount = bitbox.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 2 }); - // let sendAmount = originalAmount - (byteCount * 15); - // transactionBuilder.addOutput(fixture.outputs[0], Math.floor(sendAmount / 2)); - // transactionBuilder.addOutput(fixture.outputs[1], Math.floor(sendAmount / 2)); - // let keyPair1 = bitbox.HDNode.toKeyPair(node1); - // let keyPair2 = bitbox.HDNode.toKeyPair(node2); - // let redeemScript; - // transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); - // transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); - // let tx = transactionBuilder.build(); - // let hex = tx.toHex(); - // assert.equal(hex, fixture.hex); - // }); - // }); - // }); - }) - - describe("#fromMany", (): void => { - describe("#Mainnet", (): void => { - fixtures.scripts.p2ms.fromMany.mainnet.forEach((fixture: any): void => { - it(`should create 2-to-1 P2MS transaction on mainnet`, (): void => { - const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) - const node4: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) - const node5: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[4]) - const node6: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[5]) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() - const txid: string = fixture.txHash - const originalAmount: number = fixture.amount - const pubKey1: Buffer = bitbox.HDNode.toPublicKey(node1) - const pubKey2: Buffer = bitbox.HDNode.toPublicKey(node2) - const buf1: Buffer = bitbox.Script.encodeP2MSOutput(1, [ - pubKey1, - pubKey2 - ]) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - buf1 - ) - const pubKey3: Buffer = bitbox.HDNode.toPublicKey(node3) - const pubKey4: Buffer = bitbox.HDNode.toPublicKey(node4) - const buf2: Buffer = bitbox.Script.encodeP2MSOutput(1, [ - pubKey3, - pubKey4 - ]) - transactionBuilder.addInput( - txid, - 1, - transactionBuilder.DEFAULT_SEQUENCE, - buf2 - ) - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 3 }, - { P2PKH: 3 } - ) - const sendAmount: number = originalAmount - byteCount - const pubKey5: Buffer = bitbox.HDNode.toPublicKey(node5) - const pubKey6: Buffer = bitbox.HDNode.toPublicKey(node6) - const buf3: Buffer = bitbox.Script.encodeP2MSOutput(1, [ - pubKey5, - pubKey6 - ]) - transactionBuilder.addOutput(buf3, sendAmount) - let redeemScript: undefined - const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) - const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node3) - transactionBuilder.sign( - 0, - keyPair1, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - transactionBuilder.sign( - 1, - keyPair2, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - const tx: any = transactionBuilder.build() - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - // describe('#Testnet', () => { - // fixtures.scripts.p2ms.fromMany.testnet.forEach((fixture) => { - // it(`should create 2-to-1 P2MS transaction on testnet`, () => { - // let node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]); - // let node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]); - // let transactionBuilder = new bitbox.TransactionBuilder('testnet'); - // let txHash = fixture.txHash; - // let originalAmount = fixture.amounts[0] + fixture.amounts[1]; - // transactionBuilder.addInput(txHash, 0); - // transactionBuilder.addInput(txHash, 1); - // let byteCount = bitbox.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 1 }); - // let sendAmount = originalAmount - (byteCount * 15); - // transactionBuilder.addOutput(fixture.outputs[0], sendAmount); - // let keyPair1 = bitbox.HDNode.toKeyPair(node1); - // let keyPair2 = bitbox.HDNode.toKeyPair(node2); - // let redeemScript; - // transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); - // transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); - // let tx = transactionBuilder.build(); - // let hex = tx.toHex(); - // assert.equal(hex, fixture.hex); - // }); - // }); - // }); - }) - }) - - describe("#P2SH", (): void => { - describe("#toOne", (): void => { - describe("#Mainnet", (): void => { - fixtures.scripts.p2sh.toOne.mainnet.forEach((fixture: any): void => { - it(`should create 1-to-1 P2SH transaction on mainnet`, (): void => { - const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() - const txid: string = fixture.txHash - const originalAmount: number = fixture.amount - const identifier1: Buffer = bitbox.HDNode.toIdentifier(node1) - const buf1: any = bitbox.Script.encode([ - bitbox.Script.opcodes.OP_DUP, - bitbox.Script.opcodes.OP_HASH160, - identifier1, - bitbox.Script.opcodes.OP_EQUALVERIFY, - bitbox.Script.opcodes.OP_CHECKSIG - ]) - const scriptHash1: any = bitbox.Crypto.hash160(buf1) - const data1: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash1) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - data1 - ) - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 2 }, - { P2PKH: 1 } - ) - const sendAmount: number = originalAmount - byteCount - const identifier2 = bitbox.HDNode.toIdentifier(node2) - const buf2 = bitbox.Script.encode([ - bitbox.Script.opcodes.OP_DUP, - bitbox.Script.opcodes.OP_HASH160, - identifier2, - bitbox.Script.opcodes.OP_EQUALVERIFY, - bitbox.Script.opcodes.OP_CHECKSIG - ]) - - const scriptHash2 = bitbox.Crypto.hash160(buf2) - const data2: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash2) - transactionBuilder.addOutput(data2, sendAmount) - const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) - transactionBuilder.sign( - 0, - keyPair1, - buf1, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount - ) - const tx: any = transactionBuilder.build() - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - // describe('#Testnet', () => { - // fixtures.scripts.p2sh.toOne.testnet.forEach((fixture) => { - // it(`should create 1-to-1 P2SH transaction on testnet`, () => { - // let hdnode = bitbox.HDNode.fromXPriv(fixture.xpriv, 'testnet'); - // let transactionBuilder = new bitbox.TransactionBuilder('testnet'); - // let keyPair = bitbox.HDNode.toKeyPair(hdnode); - // let txHash = fixture.txHash; - // // original amount of satoshis in vin - // let originalAmount = fixture.amount; - // transactionBuilder.addInput(txHash, fixture.vout); - // // get byte count to calculate fee. paying 1 sat/byte - // let byteCount = bitbox.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 1 }); - // // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - // let sendAmount = originalAmount - (byteCount * 15); - // // add output w/ address and amount to send - // let redeemScript - // transactionBuilder.addOutput(fixture.outputs[0], sendAmount); - // transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); - // - // // build tx - // let tx = transactionBuilder.build(); - // // output rawhex - // let hex = tx.toHex(); - // assert.equal(hex, fixture.hex); - // }); - // }); - // }); - }) - - describe("#toMany", (): void => { - describe("#Mainnet", (): void => { - fixtures.scripts.p2sh.toMany.mainnet.forEach((fixture: any): void => { - it(`should create 1-to-2 P2SH transaction on mainnet`, (): void => { - const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() - const txid: string = fixture.txHash - const originalAmount: number = fixture.amount - const identifier1: Buffer = bitbox.HDNode.toIdentifier(node1) - const buf1: any = bitbox.Script.encode([ - bitbox.Script.opcodes.OP_DUP, - bitbox.Script.opcodes.OP_HASH160, - identifier1, - bitbox.Script.opcodes.OP_EQUALVERIFY, - bitbox.Script.opcodes.OP_CHECKSIG - ]) - const scriptHash1: Buffer = bitbox.Crypto.hash160(buf1) - const data1: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash1) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - data1 - ) - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 3 }, - { P2PKH: 2 } - ) - const sendAmount: number = originalAmount - byteCount - const identifier2: Buffer = bitbox.HDNode.toIdentifier(node2) - const buf2: Buffer = bitbox.Script.encode([ - bitbox.Script.opcodes.OP_DUP, - bitbox.Script.opcodes.OP_HASH160, - identifier2, - bitbox.Script.opcodes.OP_EQUALVERIFY, - bitbox.Script.opcodes.OP_CHECKSIG - ]) - const scriptHash2: Buffer = bitbox.Crypto.hash160(buf2) - const data2: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash2) - transactionBuilder.addOutput(data2, Math.floor(sendAmount / 2)) - const identifier3: Buffer = bitbox.HDNode.toIdentifier(node3) - const buf3: Buffer = bitbox.Script.encode([ - bitbox.Script.opcodes.OP_DUP, - bitbox.Script.opcodes.OP_HASH160, - identifier3, - bitbox.Script.opcodes.OP_EQUALVERIFY, - bitbox.Script.opcodes.OP_CHECKSIG - ]) - const scriptHash3: Buffer = bitbox.Crypto.hash160(buf3) - const data3: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash3) - transactionBuilder.addOutput(data3, Math.floor(sendAmount / 2)) - const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) - transactionBuilder.sign( - 0, - keyPair1, - buf1, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount - ) - const tx: any = transactionBuilder.build() - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - // describe('#Testnet', () => { - // fixtures.scripts.p2sh.toMany.testnet.forEach((fixture) => { - // // TODO pass in tesnet network config - // it(`should create 1-to-2 P2SH transaction on testnet`, () => { - // let hdnode = bitbox.HDNode.fromXPriv(fixture.xpriv); - // let transactionBuilder = new bitbox.TransactionBuilder('testnet'); - // let keyPair = bitbox.HDNode.toKeyPair(hdnode); - // let txHash = fixture.txHash; - // // original amount of satoshis in vin - // let originalAmount = fixture.amount; - // transactionBuilder.addInput(txHash, fixture.vout); - // // get byte count to calculate fee. paying 1 sat/byte - // let byteCount = bitbox.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 2 }); - // // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - // let sendAmount = originalAmount - (byteCount * 15); - // // add output w/ address and amount to send - // transactionBuilder.addOutput(fixture.outputs[0], Math.floor(sendAmount / 2)); - // transactionBuilder.addOutput(fixture.outputs[1], Math.floor(sendAmount / 2)); - // let redeemScript - // transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); - // // build tx - // let tx = transactionBuilder.build(); - // // output rawhex - // let hex = tx.toHex(); - // assert.equal(hex, fixture.hex); - // }); - // }); - // }); - }) - - describe("#manyToMany", (): void => { - describe("#Mainnet", (): void => { - fixtures.scripts.p2sh.manyToMany.mainnet.forEach((fixture: any): void => { - it(`should create 2-to-2 P2SH transaction on mainnet`, (): void => { - const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) - const node4: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() - const txid: string = fixture.txHash - const originalAmount: number = fixture.amount - const identifier1: Buffer = bitbox.HDNode.toIdentifier(node1) - const buf1: Buffer = bitbox.Script.encode([ - bitbox.Script.opcodes.OP_DUP, - bitbox.Script.opcodes.OP_HASH160, - identifier1, - bitbox.Script.opcodes.OP_EQUALVERIFY, - bitbox.Script.opcodes.OP_CHECKSIG - ]) - const scriptHash1: Buffer = bitbox.Crypto.hash160(buf1) - const data1: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash1) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - data1 - ) - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 5 }, - { P2PKH: 5 } - ) - const sendAmount: number = originalAmount - byteCount - const identifier2: Buffer = bitbox.HDNode.toIdentifier(node2) - const buf2: Buffer = bitbox.Script.encode([ - bitbox.Script.opcodes.OP_DUP, - bitbox.Script.opcodes.OP_HASH160, - identifier2, - bitbox.Script.opcodes.OP_EQUALVERIFY, - bitbox.Script.opcodes.OP_CHECKSIG - ]) - const scriptHash2: Buffer = bitbox.Crypto.hash160(buf2) - const data2: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash2) - transactionBuilder.addInput( - txid, - 1, - transactionBuilder.DEFAULT_SEQUENCE, - data2 - ) - const identifier3: Buffer = bitbox.HDNode.toIdentifier(node3) - const buf3: Buffer = bitbox.Script.encode([ - bitbox.Script.opcodes.OP_DUP, - bitbox.Script.opcodes.OP_HASH160, - identifier3, - bitbox.Script.opcodes.OP_EQUALVERIFY, - bitbox.Script.opcodes.OP_CHECKSIG - ]) - const scriptHash3: Buffer = bitbox.Crypto.hash160(buf3) - const data3: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash3) - transactionBuilder.addOutput(data3, Math.floor(sendAmount / 2)) - const identifier4: Buffer = bitbox.HDNode.toIdentifier(node4) - const buf4: Buffer = bitbox.Script.encode([ - bitbox.Script.opcodes.OP_DUP, - bitbox.Script.opcodes.OP_HASH160, - identifier4, - bitbox.Script.opcodes.OP_EQUALVERIFY, - bitbox.Script.opcodes.OP_CHECKSIG - ]) - const scriptHash4: Buffer = bitbox.Crypto.hash160(buf4) - const data4: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash4) - transactionBuilder.addOutput(data4, Math.floor(sendAmount / 2)) - const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) - const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) - transactionBuilder.sign( - 0, - keyPair1, - buf1, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - transactionBuilder.sign( - 1, - keyPair2, - buf2, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - const tx: any = transactionBuilder.build() - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - // describe('#Testnet', () => { - // fixtures.scripts.p2sh.manyToMany.testnet.forEach((fixture) => { - // it(`should create 2-to-2 P2SH transaction on testnet`, () => { - // let node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]); - // let node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]); - // let transactionBuilder = new bitbox.TransactionBuilder('testnet'); - // let txHash = fixture.txHash; - // let originalAmount = fixture.amounts[0] + fixture.amounts[1]; - // transactionBuilder.addInput(txHash, 0); - // transactionBuilder.addInput(txHash, 1); - // let byteCount = bitbox.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 2 }); - // let sendAmount = originalAmount - (byteCount * 15); - // transactionBuilder.addOutput(fixture.outputs[0], Math.floor(sendAmount / 2)); - // transactionBuilder.addOutput(fixture.outputs[1], Math.floor(sendAmount / 2)); - // let keyPair1 = bitbox.HDNode.toKeyPair(node1); - // let keyPair2 = bitbox.HDNode.toKeyPair(node2); - // let redeemScript; - // transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); - // transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); - // let tx = transactionBuilder.build(); - // let hex = tx.toHex(); - // assert.equal(hex, fixture.hex); - // }); - // }); - // }); - }) - - describe("#fromMany", (): void => { - describe("#Mainnet", (): void => { - fixtures.scripts.p2sh.fromMany.mainnet.forEach((fixture: any): void => { - it(`should create 2-to-1 P2SH transaction on mainnet`, (): void => { - const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) - const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) - const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() - const txid: string = fixture.txHash - const originalAmount: number = fixture.amount - const identifier1: Buffer = bitbox.HDNode.toIdentifier(node1) - const buf1: Buffer = bitbox.Script.encode([ - bitbox.Script.opcodes.OP_DUP, - bitbox.Script.opcodes.OP_HASH160, - identifier1, - bitbox.Script.opcodes.OP_EQUALVERIFY, - bitbox.Script.opcodes.OP_CHECKSIG - ]) - const scriptHash1: Buffer = bitbox.Crypto.hash160(buf1) - const data1 = bitbox.Script.scriptHash.output.encode(scriptHash1) - transactionBuilder.addInput( - txid, - 0, - transactionBuilder.DEFAULT_SEQUENCE, - data1 - ) - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 3 }, - { P2PKH: 2 } - ) - const sendAmount: number = originalAmount - byteCount - const identifier2: Buffer = bitbox.HDNode.toIdentifier(node2) - const buf2: Buffer = bitbox.Script.encode([ - bitbox.Script.opcodes.OP_DUP, - bitbox.Script.opcodes.OP_HASH160, - identifier2, - bitbox.Script.opcodes.OP_EQUALVERIFY, - bitbox.Script.opcodes.OP_CHECKSIG - ]) - const scriptHash2: Buffer = bitbox.Crypto.hash160(buf2) - const data2 = bitbox.Script.scriptHash.output.encode(scriptHash2) - transactionBuilder.addInput( - txid, - 1, - transactionBuilder.DEFAULT_SEQUENCE, - data2 - ) - const identifier3: Buffer = bitbox.HDNode.toIdentifier(node3) - const buf3: Buffer = bitbox.Script.encode([ - bitbox.Script.opcodes.OP_DUP, - bitbox.Script.opcodes.OP_HASH160, - identifier3, - bitbox.Script.opcodes.OP_EQUALVERIFY, - bitbox.Script.opcodes.OP_CHECKSIG - ]) - const scriptHash3: Buffer = bitbox.Crypto.hash160(buf3) - const data3 = bitbox.Script.scriptHash.output.encode(scriptHash3) - transactionBuilder.addOutput(data3, sendAmount) - const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) - const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) - transactionBuilder.sign( - 0, - keyPair1, - buf1, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - transactionBuilder.sign( - 1, - keyPair2, - buf2, - transactionBuilder.hashTypes.SIGHASH_ALL, - originalAmount / 2 - ) - const tx: any = transactionBuilder.build() - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - // describe('#Testnet', () => { - // fixtures.scripts.p2sh.fromMany.testnet.forEach((fixture) => { - // it(`should create 2-to-1 P2SH transaction on testnet`, () => { - // let node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]); - // let node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]); - // let transactionBuilder = new bitbox.TransactionBuilder('testnet'); - // let txHash = fixture.txHash; - // let originalAmount = fixture.amounts[0] + fixture.amounts[1]; - // transactionBuilder.addInput(txHash, 0); - // transactionBuilder.addInput(txHash, 1); - // let byteCount = bitbox.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 1 }); - // let sendAmount = originalAmount - (byteCount * 15); - // transactionBuilder.addOutput(fixture.outputs[0], sendAmount); - // let keyPair1 = bitbox.HDNode.toKeyPair(node1); - // let keyPair2 = bitbox.HDNode.toKeyPair(node2); - // let redeemScript; - // transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); - // transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); - // let tx = transactionBuilder.build(); - // let hex = tx.toHex(); - // assert.equal(hex, fixture.hex); - // }); - // }); - // }); - }) - }) - - describe("#op_return", (): void => { - describe("#Mainnet", (): void => { - fixtures.nulldata.mainnet.forEach((fixture: any): void => { - it(`should create transaction w/ OP_RETURN output on mainnet`, (): void => { - const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() - const txHash: string = fixture.txHash - const originalAmount: number = fixture.amount - transactionBuilder.addInput(txHash, 0) - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 1 }, - { P2PKH: 5 } - ) - const sendAmount: number = originalAmount - byteCount - transactionBuilder.addOutput(fixture.output, sendAmount) - const data = fixture.data - let buf: Buffer = Buffer.from(data, "ascii") - const encoded: Buffer = bitbox.Script.encodeNullDataOutput(buf) - transactionBuilder.addOutput(encoded, 0) - const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(node) - let redeemScript: undefined - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amount - ) - const tx: any = transactionBuilder.build() - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#Testnet", (): void => { - fixtures.nulldata.testnet.forEach((fixture: any): void => { - it(`should create transaction w/ OP_RETURN output on testnet`, (): void => { - const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") - const txHash: string = fixture.txHash - const originalAmount: number = fixture.amount - transactionBuilder.addInput(txHash, 0) - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 1 }, - { P2PKH: 5 } - ) - const sendAmount: number = originalAmount - byteCount - transactionBuilder.addOutput(fixture.output, sendAmount) - const data = fixture.data - let buf: Buffer = Buffer.from(data, "ascii") - const encoded: Buffer = bitbox.Script.encodeNullDataOutput(buf) - transactionBuilder.addOutput(encoded, 0) - const keyPair = bitbox.HDNode.toKeyPair(node) - let redeemScript: undefined - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amount - ) - const tx: any = transactionBuilder.build() - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - - describe("#RegTest", (): void => { - fixtures.nulldata.regtest.forEach((fixture: any): void => { - it(`should create transaction w/ OP_RETURN output on regtest`, (): void => { - const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("regtest") - const txHash: string = fixture.txHash - const originalAmount: number = fixture.amount - transactionBuilder.addInput(txHash, 0) - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 1 }, - { P2PKH: 5 } - ) - const sendAmount: number = originalAmount - byteCount - transactionBuilder.addOutput(fixture.output, sendAmount) - const data = fixture.data - let buf: Buffer = Buffer.from(data, "ascii") - const encoded: Buffer = bitbox.Script.encodeNullDataOutput(buf) - transactionBuilder.addOutput(encoded, 0) - const keyPair = bitbox.HDNode.toKeyPair(node) - let redeemScript: undefined - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amount - ) - const tx: any = transactionBuilder.build() - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - }) - - describe("#bip66", (): void => { - fixtures.bip66.forEach((fixture: any): void => { - it(`should bip66 encode as ${fixture.DER}`, (): void => { - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() - const r: Buffer = Buffer.from(fixture.r, "hex") - const s: Buffer = Buffer.from(fixture.s, "hex") - const DER: Buffer = transactionBuilder.bip66.encode(r, s) - assert.equal(DER.toString("hex"), fixture.DER) - }) - }) - - fixtures.bip66.forEach((fixture: any): void => { - it(`should bip66 decode ${fixture.DER}`, (): void => { - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() - const buffer: Buffer = Buffer.from(fixture.DER, "hex") - const signature: any = transactionBuilder.bip66.decode(buffer) - assert.equal(signature.r.toString("hex"), fixture.r) - assert.equal(signature.s.toString("hex"), fixture.s) - }) - }) - - fixtures.bip66.forEach((fixture: any): void => { - it(`should bip66 check ${fixture.DER}`, (): void => { - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() - const buffer: Buffer = Buffer.from(fixture.DER, "hex") - assert.equal(transactionBuilder.bip66.check(buffer), true) - }) - }) - }) - - describe("#bip68", (): void => { - fixtures.bip68.encode.forEach((fixture: any): void => { - it(`should bip68 encode as ${fixture.result}`, (): void => { - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() - const obj: any = {} - obj[fixture.type] = fixture.value - const encode: any = transactionBuilder.bip68.encode(obj) - assert.equal(encode, fixture.result) - }) - }) - - fixtures.bip68.decode.forEach((fixture: any): void => { - it(`should bip68 decode ${fixture.result}`, (): void => { - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() - const decode: any = transactionBuilder.bip68.decode(fixture.result) - assert.equal(Object.keys(decode)[0], fixture.type) - assert.deepEqual(decode[Object.keys(decode)[0]], fixture.value) - }) - }) - }) - - describe("#LockTime", (): void => { - describe("#Mainnet", (): void => { - fixtures.locktime.mainnet.forEach((fixture: any): void => { - it(`should create transaction with nLockTime on mainnet`, (): void => { - const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) - const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() - - const txHash: string = fixture.txHash - const originalAmount: number = fixture.amount - transactionBuilder.addInput(txHash, 0, 1) - const byteCount: number = bitbox.BitcoinCash.getByteCount( - { P2PKH: 1 }, - { P2PKH: 1 } - ) - const sendAmount: number = originalAmount - byteCount - transactionBuilder.addOutput(fixture.output, sendAmount) - const lockTime = fixture.lockTime - transactionBuilder.setLockTime(lockTime) - const keyPair = bitbox.HDNode.toKeyPair(node) - let redeemScript: undefined - transactionBuilder.sign( - 0, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - fixture.amount - ) - const tx: any = transactionBuilder.build() - const hex: string = tx.toHex() - assert.equal(hex, fixture.hex) - }) - }) - }) - }) -}) diff --git a/test/unit/Util.ts b/test/unit/Util.ts deleted file mode 100644 index fd2756a0..00000000 --- a/test/unit/Util.ts +++ /dev/null @@ -1,120 +0,0 @@ -// imports -import * as chai from "chai" -import { BITBOX } from "../../lib/BITBOX" -import { Util } from "../../lib/Util" -import { resturl } from "../../lib/BITBOX" -import * as util from "util" -import { AddressValidateResult } from "bitcoin-com-rest"; - -// conts -const bitbox: BITBOX = new BITBOX() -const assert: Chai.AssertStatic = chai.assert - -util.inspect.defaultOptions = { - showHidden: true, - colors: true, - depth: 3 -} - -describe("#Util", (): void => { - describe("#UtilConstructor", (): void => { - it("should create instance of Util", (): void => { - const util: Util = new Util() - assert.equal(util instanceof Util, true) - }) - - it("should have a restURL property", (): void => { - const util: Util = new Util() - assert.equal(util.restURL, resturl) - }) - }) - - describe(`#validateAddress`, (): void => { - it(`should return false for testnet addr on mainnet`, async () => { - const address: string = `bchtest:qqqk4y6lsl5da64sg5qc3xezmplyu5kmpyz2ysaa5y` - - const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) - - assert.hasAllKeys(result, ["isvalid"]) - if (!Array.isArray(result)) { - assert.equal(result.isvalid, false) - } - }) - - it(`should return false for bad address`, async () => { - const address: string = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peu` - const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) - - assert.hasAllKeys(result, ["isvalid"]) - if (!Array.isArray(result)) { - assert.equal(result.isvalid, false) - } - }) - - it(`should validate valid address`, async () => { - const address: string = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` - const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) - - assert.hasAllKeys(result, [ - "isvalid", - "address", - "scriptPubKey", - "ismine", - "iswatchonly", - "isscript" - ]) - if (!Array.isArray(result)) { - assert.equal(result.isvalid, true) - } - }) - - it(`should validate an array of addresses`, async () => { - const address: string[] = [ - `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z`, - `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` - ] - - const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) - - assert.isArray(result) - if (Array.isArray(result)) { - assert.hasAllKeys(result[0], [ - "isvalid", - "address", - "scriptPubKey", - "ismine", - "iswatchonly", - "isscript" - ]) - } - }) - - it(`should throw an error for improper single input`, async () => { - try { - const address: any = 15432 - - await bitbox.Util.validateAddress(address) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.include( - err.message, - `Input must be a string or array of strings.` - ) - } - }) - - it(`should throw error on array size rate limit`, async () => { - try { - const dataMock: string = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` - const data: string[] = [] - for (let i: number = 0; i < 25; i++) data.push(dataMock) - - const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(data) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) - }) -}) From 37930b5d306f541ccdbf568efbd01b88d2071c14 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 11 Jun 2019 10:23:44 -0700 Subject: [PATCH 424/480] oops. Adding other unit tests back in --- test/unit/Address.ts | 1395 +++++++++++++++++++++ test/unit/BITBOX.ts | 121 ++ test/unit/BitcoinCash.ts | 358 ++++++ test/unit/Block.ts | 146 +++ test/unit/Blockchain.ts | 753 ++++++++++++ test/unit/CashAccounts.ts | 126 ++ test/unit/Control.ts | 81 ++ test/unit/Crypto.ts | 137 +++ test/unit/ECPair.ts | 187 +++ test/unit/Generating.ts | 45 + test/unit/HDNode.ts | 358 ++++++ test/unit/Mining.ts | 122 ++ test/unit/Mnemonic.ts | 355 ++++++ test/unit/Price.ts | 39 + test/unit/RawTransactions.ts | 379 ++++++ test/unit/Script.ts | 450 +++++++ test/unit/TransactionBuilder.ts | 2041 +++++++++++++++++++++++++++++++ test/unit/Util.ts | 120 ++ 18 files changed, 7213 insertions(+) create mode 100644 test/unit/Address.ts create mode 100644 test/unit/BITBOX.ts create mode 100644 test/unit/BitcoinCash.ts create mode 100644 test/unit/Block.ts create mode 100644 test/unit/Blockchain.ts create mode 100644 test/unit/CashAccounts.ts create mode 100644 test/unit/Control.ts create mode 100644 test/unit/Crypto.ts create mode 100644 test/unit/ECPair.ts create mode 100644 test/unit/Generating.ts create mode 100644 test/unit/HDNode.ts create mode 100644 test/unit/Mining.ts create mode 100644 test/unit/Mnemonic.ts create mode 100644 test/unit/Price.ts create mode 100644 test/unit/RawTransactions.ts create mode 100644 test/unit/Script.ts create mode 100644 test/unit/TransactionBuilder.ts create mode 100644 test/unit/Util.ts diff --git a/test/unit/Address.ts b/test/unit/Address.ts new file mode 100644 index 00000000..87dfa4bc --- /dev/null +++ b/test/unit/Address.ts @@ -0,0 +1,1395 @@ +// imports +import { + AddressDetailsResult, + AddressUnconfirmedResult, + AddressUtxoResult +} from "bitcoin-com-rest" +import * as chai from "chai" +import { Address } from "../../lib/Address" +import { BITBOX, resturl } from "../../lib/BITBOX" + +import axios from "axios" + +// consts +const bitbox: BITBOX = new BITBOX() +const assert: Chai.AssertStatic = chai.assert + +// TODO: port from require to import syntax +const fixtures = require("./fixtures/Address.json") +const Bitcoin = require("bitcoincashjs-lib") +const sinon = require("sinon") +const addressMock = require("./mocks/address-mock.js") + +function flatten(arrays: any) { + return [].concat.apply([], arrays) +} + +const XPUBS: any[] = flatten([fixtures.mainnetXPub, fixtures.testnetXPub]) +const XPRIVS: any[] = flatten([fixtures.mainnetXPriv, fixtures.testnetXPriv]) + +const LEGACY_ADDRESSES: string[] = flatten([ + fixtures.legacyMainnetP2PKH, + fixtures.legacyMainnetP2SH, + fixtures.legacyTestnetP2PKH, + fixtures.legacyTestnetP2SH +]) + +const mainnet_xpubs: string[] = [] +fixtures.mainnetXPub.forEach((f: any) => { + mainnet_xpubs.push(f.xpub) +}) +const MAINNET_ADDRESSES: string[] = flatten([ + mainnet_xpubs, + fixtures.legacyMainnetP2PKH, + fixtures.legacyMainnetP2SH, + fixtures.cashaddrMainnetP2PKH +]) + +const testnet_xpubs: string[] = [] +fixtures.testnetXPub.forEach((f: any) => { + testnet_xpubs.push(f.xpub) +}) +const TESTNET_ADDRESSES: string[] = flatten([ + testnet_xpubs, + fixtures.legacyTestnetP2PKH, + fixtures.cashaddrTestnetP2PKH +]) + +const CASHADDR_ADDRESSES: string[] = flatten([ + fixtures.cashaddrMainnetP2PKH, + fixtures.cashaddrMainnetP2SH, + fixtures.cashaddrTestnetP2PKH, + fixtures.cashaddrTestnetP2SH +]) + +const CASHADDR_ADDRESSES_NO_PREFIX: string[] = CASHADDR_ADDRESSES.map( + (address: string) => { + const parts: string[] = address.split(":") + return parts[1] + } +) + +const REGTEST_ADDRESSES: string[] = fixtures.cashaddrRegTestP2PKH + +const REGTEST_ADDRESSES_NO_PREFIX: string[] = REGTEST_ADDRESSES.map( + (address: string) => { + const parts: string[] = address.split(":") + return parts[1] + } +) + +const HASH160_HASHES: string[] = flatten([ + fixtures.hash160MainnetP2PKH, + fixtures.hash160MainnetP2SH, + fixtures.hash160TestnetP2PKH, + fixtures.hash160TestnetP2SH +]) + +const P2PKH_ADDRESSES: string[] = flatten([ + fixtures.legacyMainnetP2PKH, + fixtures.legacyTestnetP2PKH, + fixtures.cashaddrMainnetP2PKH, + fixtures.cashaddrTestnetP2PKH, + fixtures.cashaddrRegTestP2PKH +]) + +const P2SH_ADDRESSES: string[] = flatten([ + fixtures.legacyMainnetP2SH, + fixtures.cashaddrMainnetP2SH +]) +const util = require("util") +util.inspect.defaultOptions = { + showHidden: true, + colors: true, + depth: 3 +} + +describe("#Address", (): void => { + describe("#AddressConstructor", (): void => { + it("should create instance of Address", (): void => { + const address: Address = new Address() + assert.equal(address instanceof Address, true) + }) + + it("should have a restURL property", (): void => { + const address: Address = new Address() + assert.equal(address.restURL, resturl) + }) + }) + + describe("#addressConversion", (): void => { + describe("#toLegacyAddress", (): void => { + it("should translate legacy address format to itself correctly", (): void => { + assert.deepEqual( + LEGACY_ADDRESSES.map((address: string) => + bitbox.Address.toLegacyAddress(address) + ), + LEGACY_ADDRESSES + ) + }) + + it("should convert cashaddr address to legacy base58Check", (): void => { + assert.deepEqual( + CASHADDR_ADDRESSES.map((address: string) => + bitbox.Address.toLegacyAddress(address) + ), + LEGACY_ADDRESSES + ) + }) + + it("should convert cashaddr regtest address to legacy base58Check", (): void => { + assert.deepEqual( + REGTEST_ADDRESSES.map((address: string) => + bitbox.Address.toLegacyAddress(address) + ), + fixtures.legacyTestnetP2PKH + ) + }) + + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { + assert.throws(() => { + // @ts-ignore + bitbox.Address.toLegacyAddress() + }, "") + assert.throws(() => { + bitbox.Address.toLegacyAddress("some invalid address") + }, "") + }) + }) + }) + + describe("#toCashAddress", (): void => { + it("should convert legacy base58Check address to cashaddr", (): void => { + assert.deepEqual( + LEGACY_ADDRESSES.map((address: string) => + bitbox.Address.toCashAddress(address, true) + ), + CASHADDR_ADDRESSES + ) + }) + + it("should convert legacy base58Check address to regtest cashaddr", (): void => { + assert.deepEqual( + fixtures.legacyTestnetP2PKH.map((address: string) => + bitbox.Address.toCashAddress(address, true, true) + ), + REGTEST_ADDRESSES + ) + }) + + it("should translate cashaddr address format to itself correctly", (): void => { + assert.deepEqual( + CASHADDR_ADDRESSES.map((address: string) => + bitbox.Address.toCashAddress(address, true) + ), + CASHADDR_ADDRESSES + ) + }) + + it("should translate regtest cashaddr address format to itself correctly", (): void => { + assert.deepEqual( + REGTEST_ADDRESSES.map((address: string) => + bitbox.Address.toCashAddress(address, true, true) + ), + REGTEST_ADDRESSES + ) + }) + + it("should translate no-prefix cashaddr address format to itself correctly", (): void => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.toCashAddress(address, true) + ), + CASHADDR_ADDRESSES + ) + }) + + it("should translate no-prefix regtest cashaddr address format to itself correctly", (): void => { + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.toCashAddress(address, true, true) + ), + REGTEST_ADDRESSES + ) + }) + + it("should translate cashaddr address format to itself of no-prefix correctly", (): void => { + CASHADDR_ADDRESSES.forEach((address: string) => { + const noPrefix = bitbox.Address.toCashAddress(address, false) + assert.equal(address.split(":")[1], noPrefix) + }) + }) + + it("should translate regtest cashaddr address format to itself of no-prefix correctly", (): void => { + REGTEST_ADDRESSES.forEach((address: string) => { + const noPrefix = bitbox.Address.toCashAddress(address, false, true) + assert.equal(address.split(":")[1], noPrefix) + }) + }) + + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { + assert.throws(() => { + // @ts-ignore + bitbox.Address.toCashAddress() + }, "") + assert.throws(() => { + bitbox.Address.toCashAddress("some invalid address") + }, "") + }) + }) + }) + describe("#legacyToHash160", (): void => { + it("should convert legacy base58check address to hash160", (): void => { + assert.deepEqual( + LEGACY_ADDRESSES.map((address: string) => + bitbox.Address.legacyToHash160(address) + ), + HASH160_HASHES + ) + }) + + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { + assert.throws(() => { + // @ts-ignore + bitbox.Address.legacyToHash160() + }, "") + assert.throws(() => { + bitbox.Address.legacyToHash160("some invalid address") + }, "") + }) + }) + }) + describe("#cashToHash160", (): void => { + it("should convert cashaddr address to hash160", (): void => { + assert.deepEqual( + CASHADDR_ADDRESSES.map((address: string) => + bitbox.Address.cashToHash160(address) + ), + HASH160_HASHES + ) + }) + + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { + assert.throws(() => { + // @ts-ignore + bitbox.Address.cashToHash160() + }, "") + assert.throws(() => { + bitbox.Address.cashToHash160("some invalid address") + }, "") + }) + }) + }) + // describe("#regtestToHash160", () => { + // it("should convert regtest address to hash160", () => { + // assert.deepEqual( + // REGTEST_ADDRESSES.map((address: string) => + // bitbox.Address.regtestToHash160(address) + // ), + // fixtures.hash160TestnetP2PKH + // ) + // }) + // + // describe("errors", () => { + // it("should fail when called with an invalid address", () => { + // assert.throws(() => { + // bitbox.Address.regtestToHash160() + // }, '') + // assert.throws(() => { + // bitbox.Address.regtestToHash160("some invalid address") + // }, '') + // }) + // }) + // }) + describe("#fromHash160", (): void => { + it("should convert hash160 to mainnet P2PKH legacy base58check address", (): void => { + assert.deepEqual( + fixtures.hash160MainnetP2PKH.map((hash160: string) => + bitbox.Address.hash160ToLegacy(hash160) + ), + fixtures.legacyMainnetP2PKH + ) + }) + + it("should convert hash160 to mainnet P2SH legacy base58check address", (): void => { + assert.deepEqual( + fixtures.hash160MainnetP2SH.map((hash160: string) => + bitbox.Address.hash160ToLegacy( + hash160, + Bitcoin.networks.bitcoin.scriptHash + ) + ), + fixtures.legacyMainnetP2SH + ) + }) + + it("should convert hash160 to testnet P2PKH legacy base58check address", (): void => { + assert.deepEqual( + fixtures.hash160TestnetP2PKH.map((hash160: string) => + bitbox.Address.hash160ToLegacy( + hash160, + Bitcoin.networks.testnet.pubKeyHash + ) + ), + fixtures.legacyTestnetP2PKH + ) + }) + + it("should convert hash160 to mainnet P2PKH cash address", (): void => { + assert.deepEqual( + fixtures.hash160MainnetP2PKH.map((hash160: string) => + bitbox.Address.hash160ToCash(hash160) + ), + fixtures.cashaddrMainnetP2PKH + ) + }) + + it("should convert hash160 to mainnet P2SH cash address", (): void => { + assert.deepEqual( + fixtures.hash160MainnetP2SH.map((hash160: string) => + bitbox.Address.hash160ToCash( + hash160, + Bitcoin.networks.bitcoin.scriptHash + ) + ), + fixtures.cashaddrMainnetP2SH + ) + }) + + it("should convert hash160 to testnet P2PKH cash address", (): void => { + assert.deepEqual( + fixtures.hash160TestnetP2PKH.map((hash160: string) => + bitbox.Address.hash160ToCash( + hash160, + Bitcoin.networks.testnet.pubKeyHash + ) + ), + fixtures.cashaddrTestnetP2PKH + ) + }) + + it("should convert hash160 to regtest P2PKH cash address", (): void => { + assert.deepEqual( + fixtures.hash160TestnetP2PKH.map((hash160: string) => + bitbox.Address.hash160ToCash( + hash160, + Bitcoin.networks.testnet.pubKeyHash, + true + ) + ), + REGTEST_ADDRESSES + ) + }) + + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { + assert.throws(() => { + // @ts-ignore + bitbox.Address.hash160ToLegacy() + }, "") + assert.throws(() => { + bitbox.Address.hash160ToLegacy("some invalid address") + }, "") + assert.throws(() => { + // @ts-ignore + bitbox.Address.hash160ToCash() + }, "") + assert.throws(() => { + bitbox.Address.hash160ToCash("some invalid address") + }, "") + }) + }) + }) + }) + + describe("address format detection", (): void => { + describe("#isLegacyAddress", (): void => { + describe("is legacy", (): void => { + LEGACY_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a legacy base58Check address`, (): void => { + const isBase58Check = bitbox.Address.isLegacyAddress(address) + assert.equal(isBase58Check, true) + }) + }) + }) + describe("is not legacy", (): void => { + CASHADDR_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is not a legacy address`, (): void => { + const isBase58Check = bitbox.Address.isLegacyAddress(address) + assert.equal(isBase58Check, false) + }) + }) + + REGTEST_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is not a legacy address`, (): void => { + const isBase58Check = bitbox.Address.isLegacyAddress(address) + assert.equal(isBase58Check, false) + }) + }) + }) + + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { + assert.throws(() => { + // @ts-ignore + bitbox.Address.isLegacyAddress() + }, "") + assert.throws(() => { + bitbox.Address.isLegacyAddress("some invalid address") + }, "") + }) + }) + }) + + describe("#isCashAddress", (): void => { + describe("is cashaddr", (): void => { + CASHADDR_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a cashaddr address`, (): void => { + const isCashaddr = bitbox.Address.isCashAddress(address) + assert.equal(isCashaddr, true) + }) + }) + + REGTEST_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a cashaddr address`, (): void => { + const isCashaddr = bitbox.Address.isCashAddress(address) + assert.equal(isCashaddr, true) + }) + }) + }) + + describe("is not cashaddr", (): void => { + LEGACY_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is not a cashaddr address`, (): void => { + const isCashaddr = bitbox.Address.isCashAddress(address) + assert.equal(isCashaddr, false) + }) + }) + }) + + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { + assert.throws(() => { + // @ts-ignore + bitbox.Address.isCashAddress() + }, "") + assert.throws(() => { + bitbox.Address.isCashAddress("some invalid address") + }, "") + }) + }) + }) + describe("#isHash160", (): void => { + describe("is hash160", (): void => { + HASH160_HASHES.forEach((address: string) => { + it(`should detect ${address} is a hash160 hash`, (): void => { + const isHash160 = bitbox.Address.isHash160(address) + assert.equal(isHash160, true) + }) + }) + }) + describe("is not hash160", (): void => { + LEGACY_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is not a hash160 hash`, (): void => { + const isHash160 = bitbox.Address.isHash160(address) + assert.equal(isHash160, false) + }) + }) + + CASHADDR_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is not a hash160 hash`, (): void => { + const isHash160 = bitbox.Address.isHash160(address) + assert.equal(isHash160, false) + }) + }) + + REGTEST_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is not a legacy address`, (): void => { + const isHash160 = bitbox.Address.isHash160(address) + assert.equal(isHash160, false) + }) + }) + }) + + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { + assert.throws(() => { + // @ts-ignore + bitbox.Address.isHash160() + }, "") + assert.throws(() => { + bitbox.Address.isHash160("some invalid address") + }, "") + }) + }) + }) + }) + + describe("network detection", (): void => { + describe("#isMainnetAddress", (): void => { + describe("is mainnet", (): void => { + MAINNET_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a mainnet address`, (): void => { + const isMainnet = bitbox.Address.isMainnetAddress(address) + assert.equal(isMainnet, true) + }) + }) + }) + + describe("is not mainnet", (): void => { + TESTNET_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is not a mainnet address`, (): void => { + const isMainnet = bitbox.Address.isMainnetAddress(address) + assert.equal(isMainnet, false) + }) + }) + + REGTEST_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is not a mainnet address`, (): void => { + const isMainnet = bitbox.Address.isMainnetAddress(address) + assert.equal(isMainnet, false) + }) + }) + }) + + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { + assert.throws(() => { + // @ts-ignore + bitbox.Address.isMainnetAddress() + }, "") + assert.throws(() => { + bitbox.Address.isMainnetAddress("some invalid address") + }, "") + }) + }) + }) + + describe("#isTestnetAddress", (): void => { + describe("is testnet", (): void => { + TESTNET_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a testnet address`, (): void => { + const isTestnet = bitbox.Address.isTestnetAddress(address) + assert.equal(isTestnet, true) + }) + }) + }) + + describe("is not testnet", (): void => { + MAINNET_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is not a testnet address`, (): void => { + const isTestnet = bitbox.Address.isTestnetAddress(address) + assert.equal(isTestnet, false) + }) + }) + + REGTEST_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is not a testnet address`, (): void => { + const isTestnet = bitbox.Address.isTestnetAddress(address) + assert.equal(isTestnet, false) + }) + }) + }) + + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { + assert.throws(() => { + // @ts-ignore + bitbox.Address.isTestnetAddress() + }, "") + assert.throws(() => { + bitbox.Address.isTestnetAddress("some invalid address") + }, "") + }) + }) + }) + + describe("#isRegTestAddress", (): void => { + describe("is testnet", () => { + REGTEST_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a regtest address`, (): void => { + const isRegTest = bitbox.Address.isRegTestAddress(address) + assert.equal(isRegTest, true) + }) + }) + }) + + describe("is not testnet", (): void => { + MAINNET_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is not a regtest address`, (): void => { + const isRegTest = bitbox.Address.isRegTestAddress(address) + assert.equal(isRegTest, false) + }) + }) + + TESTNET_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is not a regtest address`, (): void => { + const isRegTest = bitbox.Address.isRegTestAddress(address) + assert.equal(isRegTest, false) + }) + }) + }) + + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { + assert.throws(() => { + // @ts-ignore + bitbox.Address.isRegTestAddress() + }, "") + assert.throws(() => { + bitbox.Address.isRegTestAddress("some invalid address") + }, "") + }) + }) + }) + }) + + describe("address type detection", (): void => { + describe("#isP2PKHAddress", (): void => { + describe("is P2PKH", (): void => { + P2PKH_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a P2PKH address`, (): void => { + const isP2PKH = bitbox.Address.isP2PKHAddress(address) + assert.equal(isP2PKH, true) + }) + }) + }) + + describe("is not P2PKH", (): void => { + P2SH_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is not a P2PKH address`, (): void => { + const isP2PKH = bitbox.Address.isP2PKHAddress(address) + assert.equal(isP2PKH, false) + }) + }) + }) + + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { + assert.throws(() => { + // @ts-ignore + bitbox.Address.isP2PKHAddress() + }, "") + assert.throws(() => { + bitbox.Address.isP2PKHAddress("some invalid address") + }, "") + }) + }) + }) + + describe("#isP2SHAddress", (): void => { + describe("is P2SH", (): void => { + P2SH_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a P2SH address`, (): void => { + const isP2SH = bitbox.Address.isP2SHAddress(address) + assert.equal(isP2SH, true) + }) + }) + }) + + describe("is not P2SH", (): void => { + P2PKH_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is not a P2SH address`, (): void => { + const isP2SH = bitbox.Address.isP2SHAddress(address) + assert.equal(isP2SH, false) + }) + }) + }) + + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { + assert.throws(() => { + // @ts-ignore + bitbox.Address.isP2SHAddress() + }, "") + assert.throws(() => { + bitbox.Address.isP2SHAddress("some invalid address") + }, "") + }) + }) + }) + }) + + describe("cashaddr prefix detection", (): void => { + it("should return the same result for detectAddressFormat", (): void => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.detectAddressFormat(address) + ), + CASHADDR_ADDRESSES.map((address: string) => + bitbox.Address.detectAddressFormat(address) + ) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.detectAddressFormat(address) + ), + REGTEST_ADDRESSES.map((address: string) => + bitbox.Address.detectAddressFormat(address) + ) + ) + }) + it("should return the same result for detectAddressNetwork", (): void => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.detectAddressNetwork(address) + ), + CASHADDR_ADDRESSES.map((address: string) => + bitbox.Address.detectAddressNetwork(address) + ) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.detectAddressNetwork(address) + ), + REGTEST_ADDRESSES.map((address: string) => + bitbox.Address.detectAddressNetwork(address) + ) + ) + }) + it("should return the same result for detectAddressType", (): void => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.detectAddressType(address) + ), + CASHADDR_ADDRESSES.map((address: string) => + bitbox.Address.detectAddressType(address) + ) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.detectAddressType(address) + ), + REGTEST_ADDRESSES.map((address: string) => + bitbox.Address.detectAddressType(address) + ) + ) + }) + it("should return the same result for toLegacyAddress", (): void => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.toLegacyAddress(address) + ), + CASHADDR_ADDRESSES.map((address: string) => + bitbox.Address.toLegacyAddress(address) + ) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.toLegacyAddress(address) + ), + REGTEST_ADDRESSES.map((address: string) => + bitbox.Address.toLegacyAddress(address) + ) + ) + }) + it("should return the same result for isLegacyAddress", (): void => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.isLegacyAddress(address) + ), + CASHADDR_ADDRESSES.map((address: string) => + bitbox.Address.isLegacyAddress(address) + ) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.isLegacyAddress(address) + ), + REGTEST_ADDRESSES.map((address: string) => + bitbox.Address.isLegacyAddress(address) + ) + ) + }) + it("should return the same result for isCashAddress", (): void => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.isCashAddress(address) + ), + CASHADDR_ADDRESSES.map((address: string) => + bitbox.Address.isCashAddress(address) + ) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.isCashAddress(address) + ), + REGTEST_ADDRESSES.map((address: string) => + bitbox.Address.isCashAddress(address) + ) + ) + }) + it("should return the same result for isMainnetAddress", (): void => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.isMainnetAddress(address) + ), + CASHADDR_ADDRESSES.map((address: string) => + bitbox.Address.isMainnetAddress(address) + ) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.isMainnetAddress(address) + ), + REGTEST_ADDRESSES.map((address: string) => + bitbox.Address.isMainnetAddress(address) + ) + ) + }) + it("should return the same result for isTestnetAddress", (): void => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.isTestnetAddress(address) + ), + CASHADDR_ADDRESSES.map((address: string) => + bitbox.Address.isTestnetAddress(address) + ) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.isTestnetAddress(address) + ), + REGTEST_ADDRESSES.map((address: string) => + bitbox.Address.isTestnetAddress(address) + ) + ) + }) + it("should return the same result for isP2PKHAddress", (): void => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.isP2PKHAddress(address) + ), + CASHADDR_ADDRESSES.map((address: string) => + bitbox.Address.isP2PKHAddress(address) + ) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.isP2PKHAddress(address) + ), + REGTEST_ADDRESSES.map((address: string) => + bitbox.Address.isP2PKHAddress(address) + ) + ) + }) + it("should return the same result for isP2SHAddress", (): void => { + assert.deepEqual( + CASHADDR_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.isP2SHAddress(address) + ), + CASHADDR_ADDRESSES.map((address: string) => + bitbox.Address.isP2SHAddress(address) + ) + ) + assert.deepEqual( + REGTEST_ADDRESSES_NO_PREFIX.map((address: string) => + bitbox.Address.isP2SHAddress(address) + ), + REGTEST_ADDRESSES.map((address: string) => + bitbox.Address.isP2SHAddress(address) + ) + ) + }) + }) + + describe("#detectAddressFormat", (): void => { + LEGACY_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a legacy base58Check address`, (): void => { + const isBase58Check = bitbox.Address.detectAddressFormat(address) + assert.equal(isBase58Check, "legacy") + }) + }) + + CASHADDR_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a legacy cashaddr address`, (): void => { + const isCashaddr = bitbox.Address.detectAddressFormat(address) + assert.equal(isCashaddr, "cashaddr") + }) + }) + + REGTEST_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a legacy cashaddr address`, (): void => { + const isCashaddr = bitbox.Address.detectAddressFormat(address) + assert.equal(isCashaddr, "cashaddr") + }) + }) + + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { + assert.throws(() => { + // @ts-ignore + bitbox.Address.detectAddressFormat() + }, "") + assert.throws(() => { + bitbox.Address.detectAddressFormat("some invalid address") + }, "") + }) + }) + }) + + describe("#detectAddressNetwork", (): void => { + MAINNET_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a mainnet address`, (): void => { + const isMainnet = bitbox.Address.detectAddressNetwork(address) + assert.equal(isMainnet, "mainnet") + }) + }) + + TESTNET_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a testnet address`, (): void => { + const isTestnet = bitbox.Address.detectAddressNetwork(address) + assert.equal(isTestnet, "testnet") + }) + }) + + REGTEST_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a testnet address`, (): void => { + const isTestnet = bitbox.Address.detectAddressNetwork(address) + assert.equal(isTestnet, "regtest") + }) + }) + + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { + assert.throws(() => { + // @ts-ignore + bitbox.Address.detectAddressNetwork() + }, "") + assert.throws(() => { + bitbox.Address.detectAddressNetwork("some invalid address") + }, "") + }) + }) + }) + + describe("#detectAddressType", (): void => { + P2PKH_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a P2PKH address`, (): void => { + const isP2PKH: string = bitbox.Address.detectAddressType(address) + assert.equal(isP2PKH, "p2pkh") + }) + }) + + P2SH_ADDRESSES.forEach((address: string) => { + it(`should detect ${address} is a P2SH address`, (): void => { + const isP2SH: string = bitbox.Address.detectAddressType(address) + assert.equal(isP2SH, "p2sh") + }) + }) + + describe("errors", (): void => { + it("should fail when called with an invalid address", (): void => { + assert.throws(() => { + // @ts-ignore + bitbox.Address.detectAddressType() + }, "") + assert.throws(() => { + bitbox.Address.detectAddressType("some invalid address") + }, "") + }) + }) + }) + + describe("#fromXPub", (): void => { + XPUBS.forEach( + (xpub: any): void => { + xpub.addresses.forEach( + (address: any, j: number): void => { + it(`should generate public external change address ${j} for ${ + xpub.xpub + }`, (): void => { + assert.equal( + bitbox.Address.fromXPub(xpub.xpub, `0/${j}`), + address + ) + }) + } + ) + } + ) + + it(`should generate public external change address ${ + XPUBS[0].addresses[0] + } for ${XPUBS[0].xpub}`, (): void => { + const address: string = XPUBS[0].addresses[0] + assert.equal(bitbox.Address.fromXPub(XPUBS[0].xpub), address) + }) + }) + + describe("#fromXPriv", (): void => { + XPRIVS.forEach( + (xpriv: any): void => { + xpriv.addresses.forEach( + (address: string, j: number): void => { + it(`should generate hardened address ${j} for ${ + xpriv.xpriv + }`, (): void => { + assert.equal( + bitbox.Address.fromXPriv(xpriv.xpriv, `0'/${j}`), + address + ) + }) + } + ) + } + ) + + it(`should generate hardened address ${XPRIVS[0].addresses[0]} for ${ + XPRIVS[0].xpriv + }`, (): void => { + const address: string = XPRIVS[0].addresses[0] + assert.equal(bitbox.Address.fromXPriv(XPRIVS[0].xpriv), address) + }) + }) + + describe("#fromOutputScript", (): void => { + const script: Buffer = bitbox.Script.encode([ + Buffer.from("BOX", "ascii"), + bitbox.Script.opcodes.OP_CAT, + Buffer.from("BITBOX", "ascii"), + bitbox.Script.opcodes.OP_EQUAL + ]) + + // hash160 script buffer + const p2sh_hash160: Buffer = bitbox.Crypto.hash160(script) + + // encode hash160 as P2SH output + const scriptPubKey: Buffer = bitbox.Script.encodeP2SHOutput(p2sh_hash160) + fixtures.p2shMainnet.forEach( + (address: string): void => { + const p2shAddress: string = bitbox.Address.fromOutputScript( + scriptPubKey + ) + it(`generate mainnet address from output script`, (): void => { + assert.equal(p2shAddress, address) + }) + } + ) + + fixtures.p2shTestnet.forEach( + (address: string): void => { + const p2shAddress: any = bitbox.Address.fromOutputScript( + scriptPubKey, + "testnet" + ) + it(`generate testnet address from output script`, (): void => { + assert.equal(p2shAddress, address) + }) + } + ) + }) + + describe("#details", () => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it(`should GET address details for a single address`, async (): Promise< + any + > => { + // Mock out data for unit test, to prevent live network call. + const data: any = addressMock.details + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + const addr: string = + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + + const result: + | AddressDetailsResult + | AddressDetailsResult[] = await bitbox.Address.details(addr) + //console.log(`result: ${JSON.stringify(result,null,2)}`) + + assert.hasAllKeys(result, [ + "balance", + "balanceSat", + "totalReceived", + "totalReceivedSat", + "totalSent", + "totalSentSat", + "unconfirmedBalance", + "unconfirmedBalanceSat", + "unconfirmedTxApperances", + "txApperances", + "transactions", + "legacyAddress", + "cashAddress", + "slpAddress", + "currentPage", + "pagesTotal" + ]) + if (!Array.isArray(result)) assert.isArray(result.transactions) + }) + + it(`should POST address details for an array of addresses`, async (): Promise< + any + > => { + const addr: string[] = [ + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" + ] + + // Mock out data for unit test, to prevent live network call. + const data: any = [addressMock.details, addressMock.details] + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "post").returns(resolved) + + const result: + | AddressDetailsResult + | AddressDetailsResult[] = await bitbox.Address.details(addr) + //console.log(`result: ${JSON.stringify(result,null,2)}`) + + assert.isArray(result) + if (Array.isArray(result)) { + assert.hasAllKeys(result[0], [ + "balance", + "balanceSat", + "totalReceived", + "totalReceivedSat", + "totalSent", + "totalSentSat", + "unconfirmedBalance", + "unconfirmedBalanceSat", + "unconfirmedTxApperances", + "txApperances", + "transactions", + "legacyAddress", + "cashAddress", + "slpAddress", + "currentPage", + "pagesTotal" + ]) + assert.isArray(result[0].transactions) + } + }) + + it(`should pass error from server to user`, async () => { + try { + // Mock out data for unit test, to prevent live network call. + sandbox + .stub(axios, "get") + .throws( + "error", + "Input address must be a string or array of strings." + ) + + const addr: any = 12345 + + await bitbox.Address.details(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } + }) + }) + + describe("#utxo", () => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it(`should GET utxo details for a single address`, async (): Promise< + any + > => { + // Mock out data for unit test, to prevent live network call. + const data: any = addressMock.utxos1 + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + const addr: string = + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + + const result: any = await bitbox.Address.utxo(addr) + //console.log(`result: ${JSON.stringify(result,null,2)}`) + + assert.deepEqual(addressMock.utxos1, result) + }) + + it(`should POST utxo details for an array of addresses`, async (): Promise< + any + > => { + const addr: string[] = [ + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" + ] + + // Mock out data for unit test, to prevent live network call. + const data: any = [addressMock.utxos1, addressMock.utxos2] + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "post").returns(resolved) + + const result: any = await bitbox.Address.utxo(addr) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAllKeys(result[0], [ + "utxos", + "legacyAddress", + "cashAddress", + "slpAddress", + "scriptPubKey" + ]) + assert.isArray(result[0].utxos) + }) + + it(`should pass error from server to user`, async () => { + try { + // Mock out data for unit test, to prevent live network call. + sandbox + .stub(axios, "get") + .throws( + "error", + "Input address must be a string or array of strings." + ) + + const addr: any = 12345 + + await bitbox.Address.utxo(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } + }) + }) + + describe("#unconfirmed", () => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it(`should GET unconfirmed utxos for a single address`, async (): Promise< + any + > => { + // Mock out data for unit test, to prevent live network call. + const data: any = addressMock.unconfirmed1 + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + const addr: string = + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + + const result: any = await bitbox.Address.unconfirmed(addr) + //console.log(`result: ${JSON.stringify(result,null,2)}`) + + assert.deepEqual(addressMock.unconfirmed1, result) + }) + + it(`should POST unconfirmed details for an array of addresses`, async (): Promise< + any + > => { + const addr: string[] = [ + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" + ] + + // Mock out data for unit test, to prevent live network call. + const data: any = [addressMock.unconfirmed1, addressMock.unconfirmed2] + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "post").returns(resolved) + + const result: any = await bitbox.Address.unconfirmed(addr) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.deepEqual(data, result) + }) + + it(`should pass error from server to user`, async () => { + try { + // Mock out data for unit test, to prevent live network call. + sandbox + .stub(axios, "get") + .throws( + "error", + "Input address must be a string or array of strings." + ) + + const addr: any = 12345 + + await bitbox.Address.unconfirmed(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } + }) + }) + + describe(`#transactions`, (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it(`should GET transactions for a single address`, async (): Promise< + any + > => { + // Mock out data for unit test, to prevent live network call. + const data: any = addressMock.transactions + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + const addr: string = + "bitcoincash:qrvk436u4r0ew2wj0rd9pnxhx4w90p2yfc29ta0d2n" + + const result: any = await bitbox.Address.transactions(addr) + //console.log(`result: ${JSON.stringify(result,null,2)}`) + + assert.deepEqual(data, result) + }) + + it(`should get transactions on multiple addresses`, async (): Promise< + any + > => { + // Mock out data for unit test, to prevent live network call. + const data: any = [addressMock.transactions, addressMock.transactions] + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "post").returns(resolved) + + const addr: string[] = [ + "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", + "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" + ] + const result: any = await bitbox.Address.transactions(addr) + + assert.deepEqual(data, result) + }) + + it(`should pass error from server to user`, async () => { + try { + // Mock out data for unit test, to prevent live network call. + sandbox + .stub(axios, "get") + .throws( + "error", + "Input address must be a string or array of strings." + ) + + const addr: any = 12345 + + await bitbox.Address.transactions(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input address must be a string or array of strings` + ) + } + }) + }) +}) diff --git a/test/unit/BITBOX.ts b/test/unit/BITBOX.ts new file mode 100644 index 00000000..48ebbbb0 --- /dev/null +++ b/test/unit/BITBOX.ts @@ -0,0 +1,121 @@ +// imports +import * as assert from "assert"; +import { BITBOX } from "../../lib/BITBOX" +import { Address } from "../../lib/Address" +import { BitcoinCash } from "../../lib/BitcoinCash" +import { Block } from "../../lib/Block" +import { Blockchain } from "../../lib/Blockchain" +import { Control } from "../../lib/Control" +import { Generating } from "../../lib/Generating" +import { HDNode } from "../../lib/HDNode" +import { Mining } from "../../lib/Mining" +import { Mnemonic } from "../../lib/Mnemonic" +import { Price } from "../../lib/Price" +import { RawTransactions } from "../../lib/RawTransactions" +import { Script } from "../../lib/Script" +import { Transaction } from "../../lib/Transaction" +import { TransactionBuilder } from "../../lib/TransactionBuilder" +import { Util } from "../../lib/Util" +import { Schnorr } from "../../lib/Schnorr" +import { resturl } from "../../lib/BITBOX" +import { Socket } from "../../lib/Socket" + + +describe("#BITBOX", (): void => { + describe("#BITBOXConstructor", (): void => { + it("should create instance of BITBOX", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + assert.equal(bitbox instanceof BITBOX, true) + }) + + it("should have a restURL property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: "https://rest.bitcoin.com/v2/" }) + assert.equal(bitbox.restURL, resturl) + }) + + it("should have a Address property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Address instanceof Address, true) + }) + + it("should have a BitcoinCash property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.BitcoinCash instanceof BitcoinCash, true) + }) + + it("should have a Block property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Block instanceof Block, true) + }) + + it("should have a Blockchain property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Blockchain instanceof Blockchain, true) + }) + + it("should have a Control property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Control instanceof Control, true) + }) + + it("should have a Generating property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Generating instanceof Generating, true) + }) + + it("should have a HDNode property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.HDNode instanceof HDNode, true) + }) + + it("should have a Mining property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Mining instanceof Mining, true) + }) + + it("should have a Mnemonic property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Mnemonic instanceof Mnemonic, true) + }) + + it("should have a Price property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Price instanceof Price, true) + }) + + it("should have a RawTransactions property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.RawTransactions instanceof RawTransactions, true) + }) + + it("should have a Script property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Script instanceof Script, true) + }) + + it("should have a Transaction property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Transaction instanceof Transaction, true) + }) + + // it("should have a TransactionBuilder property", (): void => { + // const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + // assert.equal(bitbox.TransactionBuilder instanceof TransactionBuilder, true) + // }) + + it("should have a Util property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Util instanceof Util, true) + }) + + it("should have a Schnorr property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + assert.equal(bitbox.Schnorr instanceof Schnorr, true) + }) + + it("should have a Socket property", (): void => { + const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + assert.strictEqual(bitbox.Socket, Socket) + }) + }) +}) diff --git a/test/unit/BitcoinCash.ts b/test/unit/BitcoinCash.ts new file mode 100644 index 00000000..02196609 --- /dev/null +++ b/test/unit/BitcoinCash.ts @@ -0,0 +1,358 @@ +// imports +import * as chai from "chai" +import { BITBOX } from "../../lib/BITBOX" +import { BitcoinCash, BIP21Object } from "../../lib/BitcoinCash" + +// consts +const bitbox: BITBOX = new BITBOX() +const assert: Chai.AssertStatic = chai.assert + +// TODO: port from require to import syntax +const fixtures = require("./fixtures/BitcoinCash.json") + +// TODO +// 1. generate testnet p2sh +// 2. generate cashaddr mainnet p2sh +// 3. generate cashaddr testnet p2sh +// 4. create BITBOX fromBase58 method +// * confirm xpub cannot generate WIF +// * confirm xpriv can generate WIF +// 5. create fromXPriv method w/ tests and docs +// 1. mainnet +// * confirm xpriv generates address +// * confirm xpriv generates WIF +// 2. testnet +// * confirm xpriv generates address +// * confirm xpriv generates WIF +// 6. More error test cases. + +describe("#BitcoinCash", (): void => { + + describe("#BitcoinCashConstructor", (): void => { + it("should create instance of BitcoinCash", (): void => { + const bitcoinCash: BitcoinCash = new BitcoinCash() + assert.equal(bitcoinCash instanceof BitcoinCash, true) + }) + }) + + describe("price conversion", (): void => { + describe("#toBitcoinCash", (): void => { + fixtures.conversion.toBCH.satoshis.forEach((satoshi: any): void => { + it(`should convert ${satoshi[0]} Satoshis to ${ + satoshi[1] + } $BCH`, (): void => { + assert.equal(bitbox.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]) + }) + }) + + fixtures.conversion.toBCH.strings.forEach((satoshi: any): void => { + it(`should convert "${satoshi[0]}" Satoshis as a string to ${ + satoshi[1] + } $BCH`, (): void => { + assert.equal(bitbox.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]) + }) + }) + + fixtures.conversion.toBCH.not.forEach((bch: any): void => { + it(`converts ${bch[0]} to Bitcoin Cash, not to ${ + bch[1] + } Satoshi`, (): void => { + assert.notEqual(bitbox.BitcoinCash.toBitcoinCash(bch[0]), bch[1]) + }) + }) + + fixtures.conversion.toBCH.rounding.forEach((satoshi: any): void => { + it(`rounding ${satoshi[0]} to ${satoshi[1]} $BCH`, (): void => { + assert.equal(bitbox.BitcoinCash.toBitcoinCash(satoshi[0]), satoshi[1]) + }) + }) + }) + + describe("#toSatoshi", (): void => { + fixtures.conversion.toSatoshi.bch.forEach((bch: any): void => { + it(`should convert ${bch[0]} $BCH to ${bch[1]} Satoshis`, (): void => { + assert.equal(bitbox.BitcoinCash.toSatoshi(bch[0]), bch[1]) + }) + }) + + fixtures.conversion.toSatoshi.strings.forEach((bch: any): void => { + it(`should convert "${bch[0]}" $BCH as a string to ${ + bch[1] + } Satoshis`, (): void => { + assert.equal(bitbox.BitcoinCash.toSatoshi(bch[0]), bch[1]) + }) + }) + + fixtures.conversion.toSatoshi.not.forEach((satoshi: any): void => { + it(`converts ${satoshi[0]} to Satoshi, not to ${ + satoshi[1] + } Bitcoin Cash`, (): void => { + assert.notEqual(bitbox.BitcoinCash.toSatoshi(satoshi[0]), satoshi[1]) + }) + }) + + fixtures.conversion.toSatoshi.rounding.forEach((bch: any): void => { + it(`rounding ${bch[0]} to ${bch[1]} Satoshi`, (): void => { + assert.equal(bitbox.BitcoinCash.toSatoshi(bch[0]), bch[1]) + }) + }) + }) + }) + + describe("#toBits", (): void => { + fixtures.conversion.satsToBits.bch.forEach((bch: any): void => { + it(`should convert ${bch[0]} BCH to ${bch[1]} bits`, (): void => { + assert.equal( + bitbox.BitcoinCash.toBits(bitbox.BitcoinCash.toSatoshi(bch[0])), + bch[1] + ) + }) + + fixtures.conversion.satsToBits.strings.forEach((bch: any): void => { + it(`should convert "${bch[0]}" BCH as a string to ${ + bch[1] + } bits`, (): void => { + assert.equal( + bitbox.BitcoinCash.toBits(bitbox.BitcoinCash.toSatoshi(bch[0])), + bch[1] + ) + }) + }) + }) + + describe("#satsToBits", (): void => { + fixtures.conversion.satsToBits.bch.forEach((bch: any): void => { + it(`should convert ${bch[0]} BCH to ${bch[1]} bits`, (): void => { + assert.equal( + bitbox.BitcoinCash.satsToBits(bitbox.BitcoinCash.toSatoshi(bch[0])), + bch[1] + ) + }) + }) + + fixtures.conversion.satsToBits.strings.forEach((bch: any): void => { + it(`should convert "${bch[0]}" BCH as a string to ${ + bch[1] + } bits`, (): void => { + assert.equal( + bitbox.BitcoinCash.satsToBits(bitbox.BitcoinCash.toSatoshi(bch[0])), + bch[1] + ) + }) + }) + }) + + describe("sign and verify messages", (): void => { + describe("#signMessageWithPrivKey", (): void => { + fixtures.signatures.sign.forEach((sign: any): void => { + it(`should sign a message w/ ${sign.network} ${ + sign.privateKeyWIF + }`, () => { + const privateKeyWIF: string = sign.privateKeyWIF + const message: string = sign.message + const signature: string = bitbox.BitcoinCash.signMessageWithPrivKey( + privateKeyWIF, + message + ) + assert.equal(signature, sign.signature) + }) + }) + }) + + describe("#verifyMessage", (): void => { + fixtures.signatures.verify.forEach((sign: any): void => { + it(`should verify a valid signed message from ${ + sign.network + } cashaddr address ${sign.address}`, (): void => { + assert.equal( + bitbox.BitcoinCash.verifyMessage( + sign.address, + sign.signature, + sign.message + ), + true + ) + }) + }) + + fixtures.signatures.verify.forEach((sign: any): void => { + const legacyAddress = bitbox.Address.toLegacyAddress(sign.address) + it(`should verify a valid signed message from ${ + sign.network + } legacy address ${legacyAddress}`, (): void => { + assert.equal( + bitbox.BitcoinCash.verifyMessage( + legacyAddress, + sign.signature, + sign.message + ), + true + ) + }) + }) + + fixtures.signatures.verify.forEach((sign: any): void => { + const legacyAddress = bitbox.Address.toLegacyAddress(sign.address) + it(`should not verify an invalid signed message from ${ + sign.network + } cashaddr address ${sign.address}`, (): void => { + assert.equal( + bitbox.BitcoinCash.verifyMessage( + sign.address, + sign.signature, + "nope" + ), + false + ) + }) + }) + }) + }) + + describe("encode and decode to base58Check", (): void => { + describe("#encodeBase58Check", (): void => { + fixtures.encodeBase58Check.forEach((base58Check: any): void => { + it(`encode ${base58Check.hex} as base58Check ${ + base58Check.base58Check + }`, (): void => { + assert.equal( + bitbox.BitcoinCash.encodeBase58Check(base58Check.hex), + base58Check.base58Check + ) + }) + }) + }) + + describe("#decodeBase58Check", (): void => { + fixtures.encodeBase58Check.forEach((base58Check: any): void => { + it(`decode ${base58Check.base58Check} as ${base58Check.hex}`, (): void => { + assert.equal( + bitbox.BitcoinCash.decodeBase58Check(base58Check.base58Check), + base58Check.hex + ) + }) + }) + }) + }) + + describe("encode and decode BIP21 urls", (): void => { + describe("#encodeBIP21", (): void => { + fixtures.bip21.valid.forEach((bip21: any): void => { + it(`encode ${bip21.address} as url`, (): void => { + const url: string = bitbox.BitcoinCash.encodeBIP21( + bip21.address, + bip21.options + ) + assert.equal(url, bip21.url) + }) + }) + fixtures.bip21.valid_regtest.forEach((bip21: any): void => { + it(`encode ${bip21.address} as url`, (): void => { + const url: string = bitbox.BitcoinCash.encodeBIP21( + bip21.address, + bip21.options, + true + ) + assert.equal(url, bip21.url) + }) + }) + }) + + describe("#decodeBIP21", (): void => { + fixtures.bip21.valid.forEach((bip21: any): void => { + it(`decodes ${bip21.url}`, (): void => { + const decoded: BIP21Object = bitbox.BitcoinCash.decodeBIP21(bip21.url) + assert.equal( + bitbox.Address.toCashAddress(decoded.address), + bitbox.Address.toCashAddress(bip21.address) + ) + if (decoded.options) { + assert.equal(decoded.options.amount, bip21.options.amount) + assert.equal(decoded.options.label, bip21.options.label) + } + }) + }) + // fixtures.bip21.valid_regtest.forEach((bip21, i) => { + // it(`decodes ${bip21.url}`, () => { + // const decoded = bitbox.BitcoinCash.decodeBIP21(bip21.url) + // assert.equal(decoded.options.amount, bip21.options.amount) + // assert.equal(decoded.options.label, bip21.options.label) + // assert.equal( + // bitbox.Address.toCashAddress(decoded.address, true, true), + // bitbox.Address.toCashAddress(bip21.address, true, true) + // ) + // }) + // }) + }) + }) + + describe("#getByteCount", (): void => { + fixtures.getByteCount.forEach((fixture: any): void => { + it(`get byte count`, (): void => { + const byteCount: number = bitbox.BitcoinCash.getByteCount( + fixture.inputs, + fixture.outputs + ) + assert.equal(byteCount, fixture.byteCount) + }) + }) + }) + + describe("#bip38", (): void => { + describe("#encryptBIP38", (): void => { + fixtures.bip38.encrypt.mainnet.forEach((fixture: any): void => { + it(`BIP 38 encrypt wif ${fixture.wif} with password ${ + fixture.password + } on mainnet`, (): void => { + const encryptedKey: string = bitbox.BitcoinCash.encryptBIP38( + fixture.wif, + fixture.password + ) + assert.equal(encryptedKey, fixture.encryptedKey) + }) + }) + + fixtures.bip38.encrypt.testnet.forEach((fixture: any): void => { + it(`BIP 38 encrypt wif ${fixture.wif} with password ${ + fixture.password + } on testnet`, (): void => { + const encryptedKey: string = bitbox.BitcoinCash.encryptBIP38( + fixture.wif, + fixture.password + ) + assert.equal(encryptedKey, fixture.encryptedKey) + }) + }) + }) + + describe("#decryptBIP38", (): void => { + fixtures.bip38.decrypt.mainnet.forEach((fixture: any): void => { + it(`BIP 38 decrypt encrypted key ${ + fixture.encryptedKey + } on mainnet`, (): void => { + const wif: string = bitbox.BitcoinCash.decryptBIP38( + fixture.encryptedKey, + fixture.password, + "mainnet" + ) + assert.equal(wif, fixture.wif) + }) + }) + + fixtures.bip38.decrypt.testnet.forEach((fixture: any): void => { + it(`BIP 38 decrypt encrypted key ${ + fixture.encryptedKey + } on testnet`, (): void => { + const wif: string = bitbox.BitcoinCash.decryptBIP38( + fixture.encryptedKey, + fixture.password, + "testnet" + ) + assert.equal(wif, fixture.wif) + }) + }) + }) + }) + }) +}) + diff --git a/test/unit/Block.ts b/test/unit/Block.ts new file mode 100644 index 00000000..98b95f4b --- /dev/null +++ b/test/unit/Block.ts @@ -0,0 +1,146 @@ +// imports +import * as chai from "chai" +import axios from "axios" +import * as sinon from "sinon" +import { BITBOX } from "../../lib/BITBOX" +import { Block } from "../../lib/Block" +import { resturl } from "../../lib/BITBOX" +import * as util from "util" +import { BlockDetailsResult } from "bitcoin-com-rest" + +// consts +const bitbox: BITBOX = new BITBOX() +const assert: Chai.AssertStatic = chai.assert +const blockMock: any = require("./mocks/block-mock") + +util.inspect.defaultOptions = { + showHidden: true, + colors: true, + depth: 3 +} + +describe("#Block", (): void => { + describe("#BlockConstructor", (): void => { + it("should create instance of Block", (): void => { + const block: Block = new Block() + assert.equal(block instanceof Block, true) + }) + }) + + it("should have a restURL property", (): void => { + const block: Block = new Block() + assert.equal(block.restURL, resturl) + }) + + describe("#detailsByHash", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it(`should GET a single hash`, async (): Promise => { + // Mock out data for unit test, to prevent live network call. + const data: any = blockMock.details + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + const result: any = await bitbox.Block.detailsByHash( + "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0" + ) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.deepEqual(blockMock.details, result) + }) + + it(`should POST an array of hashes`, async (): Promise => { + const hashes: string[] = [ + "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", + "000000000000000002160687d7f39b6232b5acbb2e2b44cd68e3c6b2debe9ea3" + ] + + // Mock out data for unit test, to prevent live network call. + const data: any = [blockMock.details, blockMock.details] + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "post").returns(resolved) + + const result: any = await bitbox.Block.detailsByHash(hashes) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.deepEqual(data, result) + }) + + it(`should pass error from server to user`, async () => { + try { + // Mock out data for unit test, to prevent live network call. + sandbox + .stub(axios, "get") + .throws("error", "Input must be a string or array of strings.") + + const hash: any = 12345 + + await bitbox.Block.detailsByHash(hash) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + assert.include( + err.message, + `Input must be a string or array of strings.` + ) + } + }) + }) + + describe("#detailsByHeight", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it(`should GET a single height`, async (): Promise => { + // Mock out data for unit test, to prevent live network call. + const data: any = blockMock.details + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + const height: number = 500007 + + const result: any = await bitbox.Block.detailsByHeight(height) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.deepEqual(blockMock.details, result) + }) + + it(`should POST an array of heights`, async (): Promise => { + const heights: number[] = [500007, 500008] + + // Mock out data for unit test, to prevent live network call. + const data: any = [blockMock.details, blockMock.details] + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "post").returns(resolved) + + const result: any = await bitbox.Block.detailsByHeight(heights) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.deepEqual(data, result) + }) + + it(`should pass error from server to user`, async () => { + try { + // Mock out data for unit test, to prevent live network call. + sandbox + .stub(axios, "get") + .throws("error", "Input must be a number or array of numbers.") + + const height: any = "abc123" + + await bitbox.Block.detailsByHeight(height) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: `, err) + + assert.include( + err.message, + `Input must be a number or array of numbers.` + ) + } + }) + }) +}) diff --git a/test/unit/Blockchain.ts b/test/unit/Blockchain.ts new file mode 100644 index 00000000..f46b7c09 --- /dev/null +++ b/test/unit/Blockchain.ts @@ -0,0 +1,753 @@ +// imports +import * as chai from "chai" +import axios from "axios" +import * as sinon from "sinon" +import { BITBOX } from "../../lib/BITBOX" +import { Blockchain } from "../../lib/Blockchain" +import { resturl } from "../../lib/BITBOX" +import * as util from "util" +import { BlockHeaderResult } from "bitcoin-com-rest" + +// consts +const bitbox: BITBOX = new BITBOX() +const assert: Chai.AssertStatic = chai.assert +const blockchainMock = require("./mocks/blockchain-mock") + +util.inspect.defaultOptions = { + showHidden: true, + colors: true, + depth: 3 +} + +describe("#Blockchain", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + describe("#BlockchainConstructor", (): void => { + it("should create instance of Blockchain", (): void => { + const blockchain: Blockchain = new Blockchain() + assert.equal(blockchain instanceof Blockchain, true) + }) + + it("should have a restURL property", (): void => { + const blockchain: Blockchain = new Blockchain() + assert.equal(blockchain.restURL, resturl) + }) + }) + + describe("#getBlock", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + hash: "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09", + confirmations: 526807, + size: 216, + height: 1000, + version: 1, + versionHex: "00000001", + merkleroot: + "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33", + tx: ["fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33"], + time: 1232346882, + mediantime: 1232344831, + nonce: 2595206198, + bits: "1d00ffff", + difficulty: 1, + chainwork: + "000000000000000000000000000000000000000000000000000003e903e903e9", + previousblockhash: + "0000000008e647742775a230787d66fdf92c46a48c896bfbc85cdc8acc67e87d", + nextblockhash: + "00000000a2887344f8db859e372e7e4bc26b23b9de340f725afbf2edb265b4c6" + } + + it("should get block by hash", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Blockchain.getBlock( + "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09" + ) + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getBlockchainInfo", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + chain: "main", + blocks: 527810, + headers: 527810, + bestblockhash: + "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0", + difficulty: 576023394804.6666, + mediantime: 1524878499, + verificationprogress: 0.9999990106793685, + chainwork: + "00000000000000000000000000000000000000000096da5b040913fa09249b4e", + pruned: false, + softforks: [ + { id: "bip34", version: 2, reject: [Object] }, + { id: "bip66", version: 3, reject: [Object] }, + { id: "bip65", version: 4, reject: [Object] } + ], + bip9_softforks: { + csv: { + status: "active", + startTime: 1462060800, + timeout: 1493596800, + since: 419328 + } + } + } + + it("should get blockchain info", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Blockchain.getBlockchainInfo() + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getBlockCount", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = 527810 + + it("should get block count", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Blockchain.getBlockCount() + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getBlockHash", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data: string = + "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0" + + it("should get block hash by height", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Blockchain.getBlockHash(527810) + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getBlockHeader", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + hash: "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0", + confirmations: 1, + height: 527810, + version: 536870912, + versionHex: "20000000", + merkleroot: + "9298432bbebe4638456aa19cb7ef91639da87668a285d88d0ecd6080424d223b", + time: 1524881438, + mediantime: 1524878499, + nonce: 3326843941, + bits: "1801e8a5", + difficulty: 576023394804.6666, + chainwork: + "00000000000000000000000000000000000000000096da5b040913fa09249b4e", + previousblockhash: + "000000000000000000b33251708bc7a7b4540e61880d8c376e8e2db6a19a4789" + } + + it("should get block header by hash", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Blockchain.getBlockHeader( + "000000000000000001d127592d091d4c45062504663c9acab27a1b16c028e3c0", + true + ) + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getDifficulty", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = "577528469277.1339" + + it("should get difficulty", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Blockchain.getDifficulty() + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getMempoolAncestors", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = "Transaction not in mempool" + + it("should get mempool ancestors", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Blockchain.getMempoolAncestors( + "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", + true + ) + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getMempoolDescendants", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + result: "Transaction not in mempool" + } + + it("should get mempool descendants", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Blockchain.getMempoolDescendants( + "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", + true + ) + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getMempoolEntry", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + result: "Transaction not in mempool" + } + + it("should get mempool entry", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Blockchain.getMempoolEntry( + "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88" + ) + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getMempoolInfo", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + result: { + size: 317, + bytes: 208583, + usage: 554944, + maxmempool: 300000000, + mempoolminfee: 0 + } + } + + it("should get mempool info", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Blockchain.getMempoolInfo() + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getRawMempool", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + result: { + transactions: [ + { + txid: + "ab36d68dd0a618592fe34e4a898e8beeeb4049133547dbb16f9338384084af96", + size: 191, + fee: 0.00047703, + modifiedfee: 0.00047703, + time: 1524883317, + height: 527811, + startingpriority: 5287822727.272727, + currentpriority: 5287822727.272727, + descendantcount: 1, + descendantsize: 191, + descendantfees: 47703, + ancestorcount: 1, + ancestorsize: 191, + ancestorfees: 47703, + depends: [] + } + ] + } + } + + it("should get mempool info", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Blockchain.getRawMempool() + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getTxOut", (): void => { + // TODO finish this test + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + result: {} + } + + it("should get TODO", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Blockchain.getTxOut( + "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", + 0, + true + ) + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#preciousBlock", (): void => { + // TODO finish this test + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = { + result: {} + } + + it("should get TODO", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + // @ts-ignore + bitbox.Blockchain.preciousBlock() + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#pruneBlockchain", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = "Cannot prune blocks because node is not in prune mode." + + it("should prune blockchain", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "post").returns(resolved) + + bitbox.Blockchain.pruneBlockchain(507) + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#verifyChain", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = true + + it("should verify blockchain", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Blockchain.verifyChain(3, 6) + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#verifyTxOutProof", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + const data = "proof must be hexadecimal string (not '')" + + it("should verify utxo proof", done => { + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Blockchain.verifyTxOutProof("3") + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe(`#getBestBlockHash`, (): void => { + it(`should GET best block hash`, async () => { + // Mock out data for unit test, to prevent live network call. + const data: any = blockchainMock.bestBlockHash + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + const result: string = await bitbox.Blockchain.getBestBlockHash() + //console.log(`result: ${JSON.stringify(result,null,2)}`) + + // Assert that BITBOX returns the same data passed to it by rest. + assert.deepEqual(result, blockchainMock.bestBlockHash) + }) + }) + + describe("#getBlockHeader", (): void => { + it(`should GET block header for a single hash`, async () => { + // Mock out data for unit test, to prevent live network call. + const data: any = blockchainMock.blockHeader + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + const hash: string = + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + + const result: + | BlockHeaderResult + | BlockHeaderResult[] = await bitbox.Blockchain.getBlockHeader(hash) + //console.log(`result: ${JSON.stringify(result,null,2)}`) + + assert.hasAllKeys(result, [ + "hash", + "confirmations", + "height", + "version", + "versionHex", + "merkleroot", + "time", + "mediantime", + "nonce", + "bits", + "difficulty", + "chainwork", + "previousblockhash", + "nextblockhash" + ]) + }) + + it(`should POST block headers for an array of hashes`, async () => { + // Mock out data for unit test, to prevent live network call. + const data: any = [blockchainMock.blockHeader, blockchainMock.blockHeader] + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "post").returns(resolved) + + const hash: string[] = [ + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", + "00000000000000000568f0a96bf4348847bc84e455cbfec389f27311037a20f3" + ] + + const result: + | BlockHeaderResult + | BlockHeaderResult[] = await bitbox.Blockchain.getBlockHeader(hash) + + assert.isArray(result) + if (Array.isArray(result)) { + assert.hasAllKeys(result[0], [ + "hash", + "confirmations", + "height", + "version", + "versionHex", + "merkleroot", + "time", + "mediantime", + "nonce", + "bits", + "difficulty", + "chainwork", + "previousblockhash", + "nextblockhash" + ]) + } + }) + + it(`should pass error from server to user`, async () => { + try { + // Mock out data for unit test, to prevent live network call. + sandbox + .stub(axios, "get") + .throws("error", "Input hash must be a string or array of strings") + + const hash: any = 12345 + + await bitbox.Blockchain.getBlockHeader(hash) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.include( + err.message, + `Input hash must be a string or array of strings` + ) + } + }) + }) + + describe("#getMempoolEntry", (): void => { + /* + // To run this test, the txid must be unconfirmed. + const txid = + "defea04c38ee00cf73ad402984714ed22dc0dd99b2ae5cb50d791d94343ba79b" + + it(`should GET single mempool entry`, async () => { + const result = await bitbox.Blockchain.getMempoolEntry(txid) + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAnyKeys(result, [ + "size", + "fee", + "modifiedfee", + "time", + "height", + "startingpriority", + "currentpriority", + "descendantcount", + "descendantsize", + "descendantfees", + "ancestorcount", + "ancestorsize", + "ancestorfees", + "depends" + ]) + }) + + it(`should get an array of mempool entries`, async () => { + const result = await bitbox.Blockchain.getMempoolEntry([txid, txid]) + console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAnyKeys(result[0], [ + "size", + "fee", + "modifiedfee", + "time", + "height", + "startingpriority", + "currentpriority", + "descendantcount", + "descendantsize", + "descendantfees", + "ancestorcount", + "ancestorsize", + "ancestorfees", + "depends" + ]) + }) + */ + + it(`should pass error from server to user`, async (): Promise => { + try { + // Mock out data for unit test, to prevent live network call. + sandbox + .stub(axios, "get") + .throws({ error: "Transaction not in mempool" }) + + const txid: string = + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + + await bitbox.Blockchain.getMempoolEntry(txid) + + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: ${util.inspect(err)}`) + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, `Transaction not in mempool`) + } + }) + + it(`should throw an error for improper single input`, async (): Promise< + any + > => { + try { + // Mock out data for unit test, to prevent live network call. + sandbox + .stub(axios, "get") + .throws("error", "Input hash must be a string or array of strings") + + const txid: any = 12345 + + await bitbox.Blockchain.getMempoolEntry(txid) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.include( + err.message, + `Input must be a string or array of strings` + ) + } + }) + }) + + describe(`#getTxOutProof`, (): void => { + it(`should get single tx out proof`, async (): Promise => { + // Mock out data for unit test, to prevent live network call. + const data: any = blockchainMock.txOutProof + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + const txid: string = + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + + const result = await bitbox.Blockchain.getTxOutProof(txid) + //console.log(`result: ${JSON.stringify(result,null,2)}`) + + assert.isString(result) + }) + + it(`should POST an array of tx out proofs`, async (): Promise => { + // Mock out data for unit test, to prevent live network call. + const data: any = [blockchainMock.txOutProof, blockchainMock.txOutProof] + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "post").returns(resolved) + + const txid: string[] = [ + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7", + "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" + ] + + const result = await bitbox.Blockchain.getTxOutProof(txid) + + assert.isArray(result) + assert.isString(result[0]) + }) + + it(`should pass error from server to user`, async (): Promise => { + try { + // Mock out data for unit test, to prevent live network call. + sandbox + .stub(axios, "get") + .throws("error", "Input hash must be a string or array of strings") + + const txid: any = 12345 + + await bitbox.Blockchain.getTxOutProof(txid) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.include( + err.message, + `Input must be a string or array of strings` + ) + } + }) + }) + + describe(`#verifyTxOutProof`, (): void => { + const mockTxOutProof: string = + "0000002086a4a3161f9ba2174883ec0b93acceac3b2f37b36ed1f90000000000000000009cb02406d1094ecf3e0b4c0ca7c585125e721147c39daf6b48c90b512741e13a12333e5cb38705180f441d8c7100000008fee9b60f1edb57e5712839186277ed39e0a004a32be9096ee47472efde8eae62f789f9d7a9f59d0ea7093dea1e0c65ff0b953f1d8cf3d47f92e732ca0295f603c272d5f4a63509f7a887f2549d78af7444aa0ecbb4f66d9cbe13bc6a89f59e05a199df8325d490818ffefe6b6321d32d7496a68580459836c0183f89082fc1b491cc91b23ecdcaa4c347bf599a62904d61f1c15b400ebbd5c90149010c139d9c1e31b774b796977393a238080ab477e1d240d0c4f155d36f519668f49bae6bd8cd5b8e40522edf76faa09cca6188d83ff13af6967cc6a569d1a5e9aeb1fdb7f531ddd2d0cbb81879741d5f38166ac1932136264366a4065cc96a42e41f96294f02df01" + + it(`should verify a single proof`, async (): Promise => { + // Mock out data for unit test, to prevent live network call. + const data: any = [blockchainMock.verifiedProof] + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + const result = await bitbox.Blockchain.verifyTxOutProof(mockTxOutProof) + //console.log(`result: ${JSON.stringify(result,null,2)}`) + + assert.isArray(result) + assert.isString(result[0]) + }) + + it(`should verify an array of proofs`, async (): Promise => { + // Mock out data for unit test, to prevent live network call. + const data: any = [ + blockchainMock.verifiedProof, + blockchainMock.verifiedProof + ] + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "post").returns(resolved) + + const proofs: string[] = [mockTxOutProof, mockTxOutProof] + const result = await bitbox.Blockchain.verifyTxOutProof(proofs) + + assert.isArray(result) + assert.isString(result[0]) + }) + + it(`should pass error from server to user`, async (): Promise => { + try { + // Mock out data for unit test, to prevent live network call. + sandbox + .stub(axios, "get") + .throws("error", "Input must be a string or array of strings") + + const txid: any = 12345 + + await bitbox.Blockchain.verifyTxOutProof(txid) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.include( + err.message, + `Input must be a string or array of strings` + ) + } + }) + }) +}) diff --git a/test/unit/CashAccounts.ts b/test/unit/CashAccounts.ts new file mode 100644 index 00000000..40a0c7fa --- /dev/null +++ b/test/unit/CashAccounts.ts @@ -0,0 +1,126 @@ +// imports +import axios from "axios" +import { + CashAccountCheckResult, + CashAccountLookupResult, + CashAccountReverseLookupResult +} from "bitcoin-com-rest" +import * as chai from "chai" +import * as util from "util" +import { BITBOX, resturl } from "../../lib/BITBOX" +import { CashAccounts } from "../../lib/CashAccounts" + +// consts +const bitbox: BITBOX = new BITBOX() +const assert: Chai.AssertStatic = chai.assert + +// TODO: port from require to import syntax +const sinon = require("sinon") +const cashAccountsMock = require("./mocks/cashaccounts-mock.js") + +util.inspect.defaultOptions = { + showHidden: true, + colors: true, + depth: 3 +} + +describe("#CashAccounts", (): void => { + describe("#CashAccountsConstructor", (): void => { + it("should create instance of CashAccounts", (): void => { + const cashAccounts: CashAccounts = new CashAccounts() + assert.equal(cashAccounts instanceof CashAccounts, true) + }) + + it("should have a restURL property", (): void => { + const cashAccounts: CashAccounts = new CashAccounts() + assert.equal(cashAccounts.restURL, resturl) + }) + }) + + describe("#lookup", () => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it(`should lookup CashAccount details by account, number and collision`, async (): Promise< + any + > => { + // Mock out data for unit test, to prevent live network call. + const data: any = cashAccountsMock.lookup + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + const account: string = "cgcardona" + const number: number = 122 + const collision: number = 6383276713 + + const result = (await bitbox.CashAccounts.lookup( + account, + number, + collision + )) as CashAccountLookupResult + //console.log(`result: ${JSON.stringify(result,null,2)}`) + + assert.hasAllKeys(result, ["identifier", "information"]) + }) + }) + + describe("#check", () => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it(`should check CashAccount by account and number`, async (): Promise< + any + > => { + // Mock out data for unit test, to prevent live network call. + const data: any = cashAccountsMock.check + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + const account: string = "cgcardona" + const number: number = 122 + + const result = (await bitbox.CashAccounts.check( + account, + number + )) as CashAccountCheckResult + //console.log(`result: ${JSON.stringify(result,null,2)}`) + + assert.hasAllKeys(result, ["identifier", "block", "results"]) + }) + }) + + describe("#reverseLookup", () => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it(`should reverse lookup CashAccount details by cash address`, async (): Promise< + any + > => { + // Mock out data for unit test, to prevent live network call. + const data: any = cashAccountsMock.reverseLookup + const resolved: any = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + const cashAddress: string = + "bitcoincash:qr4aadjrpu73d2wxwkxkcrt6gqxgu6a7usxfm96fst" + + const result = (await bitbox.CashAccounts.reverseLookup( + cashAddress + )) as CashAccountReverseLookupResult + //console.log(`result: ${JSON.stringify(result,null,2)}`) + + assert.hasAllKeys(result.results[0], [ + "accountEmoji", + "nameText", + "accountNumber", + "accountHash", + "accountCollisionLength", + "payloadType", + "payloadAddress" + ]) + }) + }) +}) diff --git a/test/unit/Control.ts b/test/unit/Control.ts new file mode 100644 index 00000000..558a7205 --- /dev/null +++ b/test/unit/Control.ts @@ -0,0 +1,81 @@ +// imports +import * as assert from "assert"; +import axios from "axios"; +import * as sinon from "sinon"; +import { BITBOX } from "../../lib/BITBOX" +import { Control } from "../../lib/Control" +import { resturl } from "../../lib/BITBOX" + +// consts +const bitbox: BITBOX = new BITBOX() + +describe("#Control", (): void => { + describe("#ControlConstructor", (): void => { + it("should create instance of Control", (): void => { + const control: Control = new Control() + assert.equal(control instanceof Control, true) + }) + + it("should have a restURL property", (): void => { + const control: Control = new Control() + assert.equal(control.restURL, resturl) + }) + }) + + describe("#getInfo", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get info", done => { + const data = { + version: 170000, + protocolversion: 70015, + blocks: 527813, + timeoffset: 0, + connections: 21, + proxy: "", + difficulty: 581086703759.5878, + testnet: false, + paytxfee: 0, + relayfee: 0.00001, + errors: "" + } + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Control.getInfo() + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + // describe("#getMemoryInfo", () => { + // let sandbox: any + // beforeEach(() => (sandbox = sinon.sandbox.create())) + // afterEach(() => sandbox.restore()) + + // it("should get memory info", done => { + // const data = { + // locked: { + // used: 0, + // free: 65536, + // total: 65536, + // locked: 65536, + // chunks_used: 0, + // chunks_free: 1 + // } + // } + // const resolved = new Promise(r => r({ data: data })) + // sandbox.stub(axios, "get").returns(resolved) + + // bitbox.Control.getMemoryInfo() + // .then((result: any) => { + // assert.deepEqual(data, result) + // }) + // .then(done, done) + // }) + // }) +}) diff --git a/test/unit/Crypto.ts b/test/unit/Crypto.ts new file mode 100644 index 00000000..e20991b1 --- /dev/null +++ b/test/unit/Crypto.ts @@ -0,0 +1,137 @@ +// imports +import * as assert from "assert"; +import { BITBOX } from "../../lib/BITBOX" +import { Buffer } from "buffer" + +// consts +const bitbox: BITBOX = new BITBOX() + +// TODO: port from require to import syntax +const fixtures = require("./fixtures/Crypto.json") + +describe("#Crypto", (): void => { + describe("#sha1", (): void => { + fixtures.sha1.forEach((fixture: any): void => { + it(`should create SHA1 Hash hex encoded ${fixture.hash} from ${ + fixture.hex + }`, (): void => { + const data: Buffer = Buffer.from(fixture.hex, "hex") + const sha1Hash: string = bitbox.Crypto.sha1(data).toString("hex") + assert.equal(sha1Hash, fixture.hash) + }) + + it(`should create 40 character SHA1 Hash hex encoded`, (): void => { + const data: Buffer = Buffer.from(fixture.hex, "hex") + const sha1Hash: string = bitbox.Crypto.sha1(data).toString("hex") + assert.equal(sha1Hash.length, 40) + }) + }) + }) + + describe("#sha256", (): void => { + fixtures.sha256.forEach((fixture: any): void => { + it(`should create SHA256 Hash hex encoded ${fixture.hash} from ${ + fixture.hex + }`, (): void => { + const data: Buffer = Buffer.from(fixture.hex, "hex") + const sha256Hash: string = bitbox.Crypto.sha256(data).toString("hex") + assert.equal(sha256Hash, fixture.hash) + }) + + it(`should create 64 character SHA256Hash hex encoded`, (): void => { + const data: Buffer = Buffer.from(fixture.hex, "hex") + const sha256Hash: string = bitbox.Crypto.sha256(data).toString("hex") + assert.equal(sha256Hash.length, 64) + }) + }) + }) + + describe("#ripemd160", (): void => { + fixtures.ripemd160.forEach((fixture: any): void => { + it(`should create RIPEMD160 Hash hex encoded ${fixture.hash} from ${ + fixture.hex + }`, (): void => { + const data: Buffer = Buffer.from(fixture.hex, "hex") + const ripemd160: string = bitbox.Crypto.ripemd160(data).toString("hex") + assert.equal(ripemd160, fixture.hash) + }) + + it(`should create 64 character RIPEMD160Hash hex encoded`, (): void => { + const data: Buffer = Buffer.from(fixture.hex, "hex") + const ripemd160: string = bitbox.Crypto.ripemd160(data).toString("hex") + assert.equal(ripemd160.length, 40) + }) + }) + }) + + describe("#hash256", (): void => { + fixtures.hash256.forEach((fixture: any): void => { + it(`should create double SHA256 Hash hex encoded ${fixture.hash} from ${ + fixture.hex + }`, (): void => { + const data: Buffer = Buffer.from(fixture.hex, "hex") + const hash256: string = bitbox.Crypto.hash256(data).toString("hex") + assert.equal(hash256, fixture.hash) + }) + + it(`should create 64 character SHA256 Hash hex encoded`, (): void => { + const data: Buffer = Buffer.from(fixture.hex, "hex") + const hash256: string = bitbox.Crypto.hash256(data).toString("hex") + assert.equal(hash256.length, 64) + }) + }) + }) + + describe("#hash160", (): void => { + fixtures.hash160.forEach((fixture: any): void => { + it(`should create RIPEMD160(SHA256()) hex encoded ${fixture.hash} from ${ + fixture.hex + }`, (): void => { + const data: Buffer = Buffer.from(fixture.hex, "hex") + const hash160: string = bitbox.Crypto.hash160(data).toString("hex") + assert.equal(hash160, fixture.hash) + }) + + it(`should create 64 character SHA256Hash hex encoded`, (): void => { + const data: Buffer = Buffer.from(fixture.hex, "hex") + const hash160: string = bitbox.Crypto.hash160(data).toString("hex") + assert.equal(hash160.length, 40) + }) + }) + }) + + + describe("#randomBytes", (): void => { + for (let i: number = 0; i < 6; i++) { + it("should return 16 bytes of entropy hex encoded via default value", (): void => { + const entropy: Buffer = bitbox.Crypto.randomBytes() + assert.equal(Buffer.byteLength(entropy), 16) + }) + + it("should return 16 bytes of entropy hex encoded", (): void => { + const entropy: Buffer = bitbox.Crypto.randomBytes(16) + assert.equal(Buffer.byteLength(entropy), 16) + }) + + it("should return 20 bytes of entropy hex encoded", (): void => { + const entropy: Buffer = bitbox.Crypto.randomBytes(20) + assert.equal(Buffer.byteLength(entropy), 20) + }) + + it("should return 24 bytes of entropy hex encoded", (): void => { + const entropy: Buffer = bitbox.Crypto.randomBytes(24) + assert.equal(Buffer.byteLength(entropy), 24) + }) + + it("should return 28 bytes of entropy hex encoded", (): void => { + const entropy: Buffer = bitbox.Crypto.randomBytes(28) + assert.equal(Buffer.byteLength(entropy), 28) + }) + + it("should return 32 bytes of entropy hex encoded", (): void => { + const entropy: Buffer = bitbox.Crypto.randomBytes(32) + assert.equal(Buffer.byteLength(entropy), 32) + }) + } + }) +}) diff --git a/test/unit/ECPair.ts b/test/unit/ECPair.ts new file mode 100644 index 00000000..b5a54784 --- /dev/null +++ b/test/unit/ECPair.ts @@ -0,0 +1,187 @@ +// imports +import * as assert from "assert" +import { Buffer } from "buffer" +import { BITBOX } from "../../lib/BITBOX" +import { ECPair } from "../../lib/ECPair" + +// consts +const bitbox: BITBOX = new BITBOX() + +// TODO: port from require to import syntax +const fixtures = require("./fixtures/ECPair.json") + +describe("#ECPair", (): void => { + describe("#ECPairConstructor", (): void => { + it("should create instance of ECPair", (): void => { + const ecpair: ECPair = new ECPair() + assert.equal(ecpair instanceof ECPair, true) + }) + }) + + describe("#fromWIF", (): void => { + fixtures.fromWIF.forEach( + (fixture: any): void => { + it(`should create ECPair from WIF ${ + fixture.privateKeyWIF + }`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + assert.equal(typeof ecpair, "object") + }) + + it(`should get ${fixture.legacy} legacy address`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + assert.equal(bitbox.ECPair.toLegacyAddress(ecpair), fixture.legacy) + }) + + it(`should get ${fixture.cashAddr} cash address`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + assert.equal(bitbox.ECPair.toCashAddress(ecpair), fixture.cashAddr) + }) + + it(`should get ${fixture.regtestAddr} cash address`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + assert.equal( + bitbox.ECPair.toCashAddress(ecpair, true), + fixture.regtestAddr + ) + }) + } + ) + }) + + describe("#toWIF", (): void => { + fixtures.toWIF.forEach( + (fixture: any): void => { + it(`should get WIF ${fixture.privateKeyWIF} from ECPair`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + const wif: string = bitbox.ECPair.toWIF(ecpair) + assert.equal(wif, fixture.privateKeyWIF) + }) + } + ) + }) + + describe("#fromPublicKey", (): void => { + fixtures.fromPublicKey.forEach( + (fixture: any): void => { + it(`should create ECPair from public key buffer`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromPublicKey( + Buffer.from(fixture.pubkeyHex, "hex") + ) + assert.equal(typeof ecpair, "object") + }) + + it(`should get ${fixture.legacy} legacy address`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromPublicKey( + Buffer.from(fixture.pubkeyHex, "hex") + ) + assert.equal(bitbox.ECPair.toLegacyAddress(ecpair), fixture.legacy) + }) + + it(`should get ${fixture.cashAddr} cash address`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromPublicKey( + Buffer.from(fixture.pubkeyHex, "hex") + ) + assert.equal(bitbox.ECPair.toCashAddress(ecpair), fixture.cashAddr) + }) + + it(`should get ${fixture.regtestAddr} cash address`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromPublicKey( + Buffer.from(fixture.pubkeyHex, "hex") + ) + assert.equal( + bitbox.ECPair.toCashAddress(ecpair, true), + fixture.regtestAddr + ) + }) + } + ) + }) + + describe("#toPublicKey", (): void => { + fixtures.toPublicKey.forEach( + (fixture: any): void => { + it(`should create a public key buffer from an ECPair`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromPublicKey( + Buffer.from(fixture.pubkeyHex, "hex") + ) + const pubkeyBuffer: Buffer = bitbox.ECPair.toPublicKey(ecpair) + assert.equal(typeof pubkeyBuffer, "object") + }) + } + ) + }) + + describe("#toLegacyAddress", (): void => { + fixtures.toLegacyAddress.forEach( + (fixture: any): void => { + it(`should create legacy address ${ + fixture.legacy + } from an ECPair`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + const legacyAddress: string = bitbox.ECPair.toLegacyAddress(ecpair) + assert.equal(legacyAddress, fixture.legacy) + }) + } + ) + }) + + describe("#toCashAddress", (): void => { + fixtures.toCashAddress.forEach( + (fixture: any): void => { + it(`should create cash address ${ + fixture.cashAddr + } from an ECPair`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + const cashAddr: string = bitbox.ECPair.toCashAddress(ecpair) + assert.equal(cashAddr, fixture.cashAddr) + }) + } + ) + + fixtures.toCashAddress.forEach( + (fixture: any): void => { + it(`should create regtest cash address ${ + fixture.regtestAddr + } from an ECPair`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + const regtestAddr: string = bitbox.ECPair.toCashAddress(ecpair, true) + assert.equal(regtestAddr, fixture.regtestAddr) + }) + } + ) + }) + + describe("#sign", (): void => { + fixtures.sign.forEach( + (fixture: any): void => { + it(`should sign 32 byte hash buffer`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF) + const buf: Buffer = Buffer.from(bitbox.Crypto.sha256(fixture.data)) + const sig: any = bitbox.ECPair.sign(ecpair, buf) + .toDER() + .toString("hex") + const schnorrSig: any = bitbox.ECPair.sign(ecpair, buf, 0x01) + .toDER() + .toString("hex") + assert.equal(sig, fixture.sig) + assert.equal(schnorrSig, fixture.schnorrSig) + }) + } + ) + }) + + describe("#verify", (): void => { + fixtures.verify.forEach( + (fixture: any): void => { + it(`should verify signed 32 byte hash buffer`, (): void => { + const ecpair: ECPair = bitbox.ECPair.fromWIF(fixture.privateKeyWIF1) + const buf: Buffer = Buffer.from(bitbox.Crypto.sha256(fixture.data)) + const signature: Buffer = bitbox.ECPair.sign(ecpair, buf) + const verify: boolean = bitbox.ECPair.verify(ecpair, buf, signature) + assert.equal(verify, true) + }) + } + ) + }) +}) diff --git a/test/unit/Generating.ts b/test/unit/Generating.ts new file mode 100644 index 00000000..2eaf3731 --- /dev/null +++ b/test/unit/Generating.ts @@ -0,0 +1,45 @@ +// imports +import * as assert from "assert"; +import axios from "axios"; +import * as sinon from "sinon"; +import { BITBOX } from "../../lib/BITBOX" +import { Generating } from "../../lib/Generating" +import { resturl } from "../../lib/BITBOX" + +// consts +const bitbox: BITBOX = new BITBOX() + +describe("#Generating", (): void => { + describe("#GeneratingConstructor", (): void => { + it("should create instance of Generating", (): void => { + const generating: Generating = new Generating() + assert.equal(generating instanceof Generating, true) + }) + + it("should have a restURL property", (): void => { + const generating: Generating = new Generating() + assert.equal(generating.restURL, resturl) + }) + }) + + describe("#generateToAddress", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should generate", done => { + const data: any = [] + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "post").returns(resolved) + + bitbox.Generating.generateToAddress( + 1, + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + ) + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) +}) diff --git a/test/unit/HDNode.ts b/test/unit/HDNode.ts new file mode 100644 index 00000000..e2d0b8ab --- /dev/null +++ b/test/unit/HDNode.ts @@ -0,0 +1,358 @@ +// imports +import * as assert from "assert"; +import { BITBOX } from "../../lib/BITBOX" +import { HDNode } from "../../lib/HDNode" +import * as bcl from "bitcoincashjs-lib" + +// consts +const bitbox: BITBOX = new BITBOX() + +// TODO: port from require to import syntax +const fixtures = require("./fixtures/HDNode.json") + +describe("#HDNode", (): void => { + describe("#HDNodeConstructor", (): void => { + it("should create instance of HDNode", (): void => { + const hdnode: HDNode = new HDNode() + assert.equal(hdnode instanceof HDNode, true) + }) + }) + + describe("#fromSeed", (): void => { + fixtures.fromSeed.forEach((mnemonic: string): void => { + it(`should create an HDNode from root seed buffer`, (): void => { + const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(mnemonic) + const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + assert.notEqual(hdNode, null) + }) + }) + }) + + describe("#derive", (): void => { + fixtures.derive.forEach((derive: any): void => { + it(`should derive non hardened child HDNode`, (): void => { + const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(derive.mnemonic) + const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const childHDNode: bcl.HDNode = bitbox.HDNode.derive(hdNode, 0) + assert.equal(bitbox.HDNode.toXPub(childHDNode), derive.xpub) + assert.equal(bitbox.HDNode.toXPriv(childHDNode), derive.xpriv) + }) + }) + }) + + describe("#deriveHardened", (): void => { + fixtures.deriveHardened.forEach((derive: any): void => { + it(`should derive hardened child HDNode`, (): void => { + const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(derive.mnemonic) + const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const childHDNode: bcl.HDNode = bitbox.HDNode.deriveHardened(hdNode, 0) + assert.equal(bitbox.HDNode.toXPub(childHDNode), derive.xpub) + assert.equal(bitbox.HDNode.toXPriv(childHDNode), derive.xpriv) + }) + }) + + describe("derive BIP44 $BCH account", (): void => { + fixtures.deriveBIP44.forEach((derive: any): void => { + it(`should derive BIP44 $BCH account`, (): void => { + const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(derive.mnemonic) + const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const purpose: bcl.HDNode = bitbox.HDNode.deriveHardened(hdNode, 44) + const coin: bcl.HDNode = bitbox.HDNode.deriveHardened(purpose, 145) + const childHDNode: bcl.HDNode = bitbox.HDNode.deriveHardened(coin, 0) + assert.equal(bitbox.HDNode.toXPub(childHDNode), derive.xpub) + assert.equal(bitbox.HDNode.toXPriv(childHDNode), derive.xpriv) + }) + }) + }) + }) + + describe("#derivePath", (): void => { + describe("derive non hardened Path", (): void => { + fixtures.derivePath.forEach((derive: any): void => { + it(`should derive non hardened child HDNode from path`, (): void => { + const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(derive.mnemonic) + const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const childHDNode: bcl.HDNode = bitbox.HDNode.derivePath(hdNode, "0") + assert.equal(bitbox.HDNode.toXPub(childHDNode), derive.xpub) + assert.equal(bitbox.HDNode.toXPriv(childHDNode), derive.xpriv) + }) + }) + }) + + describe("derive hardened Path", (): any => { + fixtures.deriveHardenedPath.forEach((derive: any): any => { + it(`should derive hardened child HDNode from path`, (): any => { + const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(derive.mnemonic) + const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const childHDNode: bcl.HDNode = bitbox.HDNode.derivePath(hdNode, "0'") + assert.equal(bitbox.HDNode.toXPub(childHDNode), derive.xpub) + assert.equal(bitbox.HDNode.toXPriv(childHDNode), derive.xpriv) + }) + }) + }) + + describe("derive BIP44 $BCH account", (): void => { + fixtures.deriveBIP44.forEach((derive: any): void => { + it(`should derive BIP44 $BCH account`, (): void => { + const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(derive.mnemonic) + const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const childHDNode: bcl.HDNode = bitbox.HDNode.derivePath(hdNode, "44'/145'/0'") + assert.equal(bitbox.HDNode.toXPub(childHDNode), derive.xpub) + assert.equal(bitbox.HDNode.toXPriv(childHDNode), derive.xpriv) + }) + }) + }) + }) + + describe("#toLegacyAddress", (): void => { + fixtures.toLegacyAddress.forEach((fixture: any): void => { + it(`should get address ${fixture.address} from HDNode`, (): void => { + const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(fixture.mnemonic) + const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const childHDNode: bcl.HDNode = bitbox.HDNode.derivePath(hdNode, "0") + const addy: string = bitbox.HDNode.toLegacyAddress(childHDNode) + assert.equal(addy, fixture.address) + }) + }) + }) + + describe("#toCashAddress", (): void => { + fixtures.toCashAddress.forEach((fixture: any): void => { + it(`should get address ${fixture.address} from HDNode`, (): void => { + const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(fixture.mnemonic) + const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const childHDNode: bcl.HDNode = bitbox.HDNode.derivePath(hdNode, "0") + const addy: string = bitbox.HDNode.toCashAddress(childHDNode) + assert.equal(addy, fixture.address) + }) + + it(`should get address ${fixture.regtestAddress} from HDNode`, (): void => { + const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(fixture.mnemonic) + const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const childHDNode: bcl.HDNode = bitbox.HDNode.derivePath(hdNode, "0") + const addr: string = bitbox.HDNode.toCashAddress(childHDNode, true) + assert.equal(addr, fixture.regtestAddress) + }) + }) + }) + + describe("#toWIF", (): void => { + fixtures.toWIF.forEach((fixture: any): void => { + it(`should get privateKeyWIF ${ + fixture.privateKeyWIF + } from HDNode`, (): void => { + const hdNode: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + assert.equal(bitbox.HDNode.toWIF(hdNode), fixture.privateKeyWIF) + }) + }) + }) + + describe("#toXPub", (): void => { + fixtures.toXPub.forEach((fixture: any): void => { + it(`should create xpub ${fixture.xpub} from an HDNode`, (): void => { + const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(fixture.mnemonic) + const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const xpub: string = bitbox.HDNode.toXPub(hdNode) + assert.equal(xpub, fixture.xpub) + }) + }) + }) + + describe("#toXPriv", (): void => { + fixtures.toXPriv.forEach((fixture: any): void => { + it(`should create xpriv ${fixture.xpriv} from an HDNode`, (): void => { + const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(fixture.mnemonic) + const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const xpriv: string = bitbox.HDNode.toXPriv(hdNode) + assert.equal(xpriv, fixture.xpriv) + }) + }) + }) + + describe("#toKeyPair", (): void => { + fixtures.toKeyPair.forEach((fixture: any): void => { + it(`should get ECPair from an HDNode`, (): void => { + const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(fixture.mnemonic) + const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(hdNode) + assert.equal(typeof keyPair, "object") + }) + }) + }) + + describe("#toPublicKey", (): void => { + fixtures.toPublicKey.forEach((fixture: any): void => { + it(`should create public key buffer from an HDNode`, (): void => { + const rootSeedBuffer: any = bitbox.Mnemonic.toSeed(fixture.mnemonic) + const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(rootSeedBuffer) + const publicKeyBuffer: any = bitbox.HDNode.toPublicKey(hdNode) + assert.equal(typeof publicKeyBuffer, "object") + }) + }) + }) + + describe("#fromXPriv", (): any => { + fixtures.fromXPriv.forEach((fixture: any): any => { + const hdNode: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + it(`should create HDNode from xpriv ${fixture.xpriv}`, (): any => { + assert.notEqual(hdNode, null) + }) + + it(`should export xpriv ${fixture.xpriv}`, (): any => { + assert.equal(bitbox.HDNode.toXPriv(hdNode), fixture.xpriv) + }) + + it(`should export xpub ${fixture.xpub}`, (): any => { + assert.equal(bitbox.HDNode.toXPub(hdNode), fixture.xpub) + }) + + it(`should export legacy address ${fixture.legacy}`, (): any => { + assert.equal(bitbox.HDNode.toLegacyAddress(hdNode), fixture.legacy) + }) + + it(`should export cashaddress ${fixture.cashaddress}`, (): any => { + assert.equal(bitbox.HDNode.toCashAddress(hdNode), fixture.cashaddress) + }) + + it(`should export regtest cashaddress ${fixture.regtestaddress}`, (): any => { + assert.equal( + bitbox.HDNode.toCashAddress(hdNode, true), + fixture.regtestaddress + ) + }) + + it(`should export privateKeyWIF ${fixture.privateKeyWIF}`, (): any => { + assert.equal(bitbox.HDNode.toWIF(hdNode), fixture.privateKeyWIF) + }) + }) + }) + + describe("#fromXPub", (): any => { + fixtures.fromXPub.forEach((fixture: any): any => { + const hdNode: bcl.HDNode = bitbox.HDNode.fromXPub(fixture.xpub) + it(`should create HDNode from xpub ${fixture.xpub}`, (): any => { + assert.notEqual(hdNode, null) + }) + + it(`should export xpub ${fixture.xpub}`, (): any => { + assert.equal(bitbox.HDNode.toXPub(hdNode), fixture.xpub) + }) + + it(`should export legacy address ${fixture.legacy}`, (): any => { + assert.equal(bitbox.HDNode.toLegacyAddress(hdNode), fixture.legacy) + }) + + it(`should export cashaddress ${fixture.cashaddress}`, (): any => { + assert.equal(bitbox.HDNode.toCashAddress(hdNode), fixture.cashaddress) + }) + + it(`should export regtest cashaddress ${fixture.regtestaddress}`, (): any => { + assert.equal( + bitbox.HDNode.toCashAddress(hdNode, true), + fixture.regtestaddress + ) + }) + }) + }) + + describe("#bip32", (): any => { + describe("create accounts and addresses", (): any => { + fixtures.accounts.forEach((fixture: any): any => { + const seedBuffer: any = bitbox.Mnemonic.toSeed(fixture.mnemonic) + const hdNode: bcl.HDNode = bitbox.HDNode.fromSeed(seedBuffer) + const a: bcl.HDNode = bitbox.HDNode.derivePath(hdNode, "0'") + const external: bcl.HDNode = bitbox.HDNode.derivePath(a, "0") + const account: any = bitbox.HDNode.createAccount([external]) + + it(`#createAccount`, (): void => { + assert.notEqual(account, null) + }) + + describe("#getChainAddress", (): void => { + const external1 = bitbox.Address.toCashAddress( + account.getChainAddress(0) + ) + it(`should create external change address ${external1}`, (): void => { + assert.equal(external1, fixture.externals[0]) + }) + }) + + describe("#nextChainAddress", (): void => { + for (let i: number = 0; i < 4; i++) { + const ex: string = bitbox.Address.toCashAddress(account.nextChainAddress(0)) + it(`should create external change address ${ex}`, (): void => { + assert.equal(ex, fixture.externals[i + 1]) + }) + } + }) + }) + }) + }) + + describe("#sign", (): void => { + fixtures.sign.forEach((fixture: any): void => { + it(`should sign 32 byte hash buffer`, (): void => { + const hdnode: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.privateKeyWIF) + const buf: Buffer = Buffer.from(bitbox.Crypto.sha256(Buffer.from(fixture.data, "hex"))) + const signatureBuf: any = bitbox.HDNode.sign(hdnode, buf) + assert.equal(typeof signatureBuf, "object") + }) + }) + }) + + describe("#verify", (): void => { + fixtures.verify.forEach((fixture: any): void => { + it(`should verify signed 32 byte hash buffer`, (): void => { + const hdnode1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.privateKeyWIF1) + const buf: Buffer = Buffer.from(bitbox.Crypto.sha256(Buffer.from(fixture.data, "hex"))) + const signature: Buffer = bitbox.HDNode.sign(hdnode1, buf) + const verify: boolean = bitbox.HDNode.verify(hdnode1, buf, signature) + assert.equal(verify, true) + }) + }) + }) + + describe("#isPublic", (): void => { + fixtures.isPublic.forEach((fixture: any): void => { + it(`should verify hdnode is public`, (): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPub(fixture.xpub) + assert.equal(bitbox.HDNode.isPublic(node), true) + }) + }) + + fixtures.isPublic.forEach((fixture: any): void => { + it(`should verify hdnode is not public`, (): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + assert.equal(bitbox.HDNode.isPublic(node), false) + }) + }) + }) + + describe("#isPrivate", (): void => { + fixtures.isPrivate.forEach((fixture: any): void => { + it(`should verify hdnode is not private`, (): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPub(fixture.xpub) + assert.equal(bitbox.HDNode.isPrivate(node), false) + }) + }) + + fixtures.isPrivate.forEach((fixture: any): void => { + it(`should verify hdnode is private`, (): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + assert.equal(bitbox.HDNode.isPrivate(node), true) + }) + }) + }) + + describe("#toIdentifier", (): void => { + fixtures.toIdentifier.forEach((fixture: any): void => { + it(`should get identifier of hdnode`, (): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const publicKeyBuffer: any = bitbox.HDNode.toPublicKey(node) + const hash160: Buffer = bitbox.Crypto.hash160(publicKeyBuffer) + const identifier: Buffer = bitbox.HDNode.toIdentifier(node) + assert.equal(identifier.toString('hex'), hash160.toString("hex")) + }) + }) + }) +}) diff --git a/test/unit/Mining.ts b/test/unit/Mining.ts new file mode 100644 index 00000000..1a797730 --- /dev/null +++ b/test/unit/Mining.ts @@ -0,0 +1,122 @@ +// imports +import * as assert from "assert"; +import axios from "axios"; +import * as sinon from "sinon"; +import { BITBOX } from "../../lib/BITBOX" +import { Mining } from "../../lib/Mining" +import { resturl } from "../../lib/BITBOX" + +// consts +const bitbox: BITBOX = new BITBOX() + +describe("#Mining", (): void => { + describe("#MiningConstructor", (): void => { + it("should create instance of Mining", (): void => { + const mining: Mining = new Mining() + assert.equal(mining instanceof Mining, true) + }) + + it("should have a restURL property", (): void => { + const mining: Mining = new Mining() + assert.equal(mining.restURL, resturl) + }) + }) + + describe("#getBlockTemplate", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get block template", done => { + const data = { + data: + "01000000017f6305e3b0b05f5b57a82f4e6d4187e148bbe56a947208390e488bad36472368000000006a47304402203b0079ff5b896187feb02e2679c87ac2fb8d483b60e0721ed33601e2c0eecc700220590f8a0e1a51b53b368294861fd5fc99db3a6607d0f4e543f6217108e208c1834121024c93c841d7f576584ffbf513b7abd8283e6562669905f6554f788fce4cc67a34ffffffff0228100000000000001976a914af78709a76abc8a28e568c9210c8247dd10cff2c88ac22020000000000001976a914f339927678803f451b41400737e7dc83c6a8682188ac00000000", + txid: + "7f462d71c649a0d8cfbaa2d20d8ff86677966b308f0ac9906ee015bf4453f97a", + hash: + "7f462d71c649a0d8cfbaa2d20d8ff86677966b308f0ac9906ee015bf4453f97a", + depends: [], + fee: 226, + sigops: 2 + } + + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Mining.getBlockTemplate("") + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getMiningInfo", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get mining info", done => { + const data = { + blocks: 527816, + currentblocksize: 89408, + currentblocktx: 156, + difficulty: 568757800682.7649, + blockprioritypercentage: 5, + errors: "", + networkhashps: 4347259225696976000, + pooledtx: 184, + chain: "main" + } + + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Mining.getMiningInfo() + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + + describe("#getNetworkHashps", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should get network hashps", done => { + const data: number = 3586365937646890000 + + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Mining.getNetworkHashps() + .then((result: any) => { + assert.equal(data, result) + }) + .then(done, done) + }) + }) + + describe("#submitBlock", (): void => { + // TODO finish + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + it("should TODO", done => { + const data: any = {} + + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "post").returns(resolved) + + // @ts-ignore + bitbox.Mining.submitBlock() + .then((result: any) => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) +}) diff --git a/test/unit/Mnemonic.ts b/test/unit/Mnemonic.ts new file mode 100644 index 00000000..e7bc082b --- /dev/null +++ b/test/unit/Mnemonic.ts @@ -0,0 +1,355 @@ +// imports +import * as assert from "assert"; +import { BITBOX } from "../../lib/BITBOX" +import { Mnemonic } from "../../lib/Mnemonic" + +// consts +const bitbox: BITBOX = new BITBOX() + +// TODO: port from require to import syntax +const fixtures = require("./fixtures/Mnemonic.json") + +describe("#Mnemonic", (): void => { + describe("#MnemonicConstructor", (): void => { + it("should create instance of Mnemonic", (): void => { + const mnemonic: Mnemonic = new Mnemonic() + assert.equal(mnemonic instanceof Mnemonic, true) + }) + }) + + describe("#generate", (): void => { + it("should generate a 12 word mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(128) + assert.equal(mnemonic.split(" ").length, 12) + }) + + it("should generate a 15 word mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(160) + assert.equal(mnemonic.split(" ").length, 15) + }) + + it("should generate a 18 word mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(192) + assert.equal(mnemonic.split(" ").length, 18) + }) + + it("should generate an 21 word mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(224) + assert.equal(mnemonic.split(" ").length, 21) + }) + + it("should generate an 24 word mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(256) + assert.equal(mnemonic.split(" ").length, 24) + }) + + it("should generate an 24 word italian mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate( + 256, + bitbox.Mnemonic.wordLists().italian + ) + assert.equal(mnemonic.split(" ").length, 24) + }) + }) + + describe("#fromEntropy", (): void => { + it("should generate a 12 word mnemonic from 16 bytes of entropy", (): void => { + const rand: Buffer = bitbox.Crypto.randomBytes(16) + const mnemonic: string = bitbox.Mnemonic.fromEntropy(rand) + assert.equal(mnemonic.split(" ").length, 12) + }) + + it("should generate a 15 word mnemonic from 20 bytes of entropy", (): void => { + const rand: Buffer = bitbox.Crypto.randomBytes(20) + const mnemonic: string = bitbox.Mnemonic.fromEntropy(rand) + assert.equal(mnemonic.split(" ").length, 15) + }) + + it("should generate an 18 word mnemonic from 24 bytes of entropy", (): void => { + const rand: Buffer = bitbox.Crypto.randomBytes(24) + const mnemonic: string = bitbox.Mnemonic.fromEntropy(rand) + assert.equal(mnemonic.split(" ").length, 18) + }) + + it("should generate an 21 word mnemonic from 28 bytes of entropy", (): void => { + const rand: Buffer = bitbox.Crypto.randomBytes(28) + const mnemonic: string = bitbox.Mnemonic.fromEntropy(rand) + assert.equal(mnemonic.split(" ").length, 21) + }) + + it("should generate an 24 word mnemonic from 32 bytes of entropy", (): void => { + const rand: Buffer = bitbox.Crypto.randomBytes(32) + const mnemonic: string = bitbox.Mnemonic.fromEntropy(rand) + assert.equal(mnemonic.split(" ").length, 24) + }) + + it("should generate an 24 french word mnemonic 32 bytes of entropy", (): void => { + const rand: Buffer = bitbox.Crypto.randomBytes(32) + const mnemonic: string = bitbox.Mnemonic.fromEntropy( + rand, + bitbox.Mnemonic.wordLists().french + ) + assert.equal(mnemonic.split(" ").length, 24) + }) + + fixtures.fromEntropy.forEach((entropy: any): void => { + const mnemonic: string = bitbox.Mnemonic.fromEntropy(entropy.entropy) + it(`should convert ${entropy.entropy} to ${entropy.mnemonic}`, (): void => { + assert.equal(mnemonic, entropy.mnemonic) + }) + }) + }) + + describe("#toEntropy", (): void => { + it("should turn a 12 word mnemonic to entropy", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(128) + const entropy: Buffer = bitbox.Mnemonic.toEntropy(mnemonic) + assert.equal(entropy.length, 16) + }) + + it("should turn a 15 word mnemonic to entropy", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(160) + const entropy: Buffer = bitbox.Mnemonic.toEntropy(mnemonic) + assert.equal(entropy.length, 20) + }) + + it("should turn a 18 word mnemonic to entropy", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(192) + const entropy: Buffer = bitbox.Mnemonic.toEntropy(mnemonic) + assert.equal(entropy.length, 24) + }) + + it("should turn a 21 word mnemonic to entropy", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(224) + const entropy: Buffer = bitbox.Mnemonic.toEntropy(mnemonic) + assert.equal(entropy.length, 28) + }) + + it("should turn a 24 word mnemonic to entropy", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(256) + const entropy: Buffer = bitbox.Mnemonic.toEntropy(mnemonic) + assert.equal(entropy.length, 32) + }) + + it("should turn a 24 word spanish mnemonic to entropy", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate( + 256, + bitbox.Mnemonic.wordLists().spanish + ) + const entropy: Buffer = bitbox.Mnemonic.toEntropy( + mnemonic, + bitbox.Mnemonic.wordLists().spanish + ) + assert.equal(entropy.length, 32) + }) + + fixtures.fromEntropy.forEach((fixture: any): void => { + const entropy: Buffer = bitbox.Mnemonic.toEntropy(fixture.mnemonic) + it(`should convert ${fixture.mnemonic} to ${fixture.entropy}`, (): void => { + assert.equal(entropy.toString("hex"), fixture.entropy) + }) + }) + }) + + describe("#validate", (): void => { + it("fails for a mnemonic that is too short", (): void => { + assert.equal( + bitbox.Mnemonic.validate( + "mixed winner", + bitbox.Mnemonic.wordLists().english + ), + "Invalid mnemonic" + ) + }) + + it("fails for a mnemonic that is too long", (): void => { + assert.equal( + bitbox.Mnemonic.validate( + "mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake mixed winner decide drift danger together twice planet impose asthma catch require select mask awkward spy relief front work solar pitch economy render cake", + bitbox.Mnemonic.wordLists().english + ), + "Invalid mnemonic" + ) + }) + + it("fails if mnemonic words are not in the word list", (): void => { + assert.equal( + bitbox.Mnemonic.validate( + "failsauce one two three four five six seven eight nine ten eleven", + bitbox.Mnemonic.wordLists().english + ), + "failsauce is not in wordlist, did you mean balance?" + ) + }) + + it("validate a 128 bit mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(128) + assert.equal( + bitbox.Mnemonic.validate(mnemonic, bitbox.Mnemonic.wordLists().english), + "Valid mnemonic" + ) + }) + + it("validate a 160 bit mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(160) + assert.equal( + bitbox.Mnemonic.validate(mnemonic, bitbox.Mnemonic.wordLists().english), + "Valid mnemonic" + ) + }) + + it("validate a 192 bit mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(192) + assert.equal( + bitbox.Mnemonic.validate(mnemonic, bitbox.Mnemonic.wordLists().english), + "Valid mnemonic" + ) + }) + + it("validate a 224 bit mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(224) + assert.equal( + bitbox.Mnemonic.validate(mnemonic, bitbox.Mnemonic.wordLists().english), + "Valid mnemonic" + ) + }) + + it("validate a 256 bit mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(256) + assert.equal( + bitbox.Mnemonic.validate(mnemonic, bitbox.Mnemonic.wordLists().english), + "Valid mnemonic" + ) + }) + + it("validate a 256 bit chinese simplified mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate( + 256, + bitbox.Mnemonic.wordLists().chinese_simplified + ) + assert.equal( + bitbox.Mnemonic.validate( + mnemonic, + bitbox.Mnemonic.wordLists().chinese_simplified + ), + "Valid mnemonic" + ) + }) + }) + + describe("#toSeed", (): void => { + it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 128 bit mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(128) + const rootSeedBuffer: Buffer = bitbox.Mnemonic.toSeed(mnemonic, "") + assert.equal(rootSeedBuffer.byteLength, 64) + }) + + it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 160 bit mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(160) + const rootSeedBuffer: Buffer = bitbox.Mnemonic.toSeed(mnemonic, "") + assert.equal(rootSeedBuffer.byteLength, 64) + }) + + it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 192 bit mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(192) + const rootSeedBuffer: Buffer = bitbox.Mnemonic.toSeed(mnemonic, "") + assert.equal(rootSeedBuffer.byteLength, 64) + }) + + it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 224 bit mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(224) + const rootSeedBuffer: Buffer = bitbox.Mnemonic.toSeed(mnemonic, "") + assert.equal(rootSeedBuffer.byteLength, 64) + }) + + it("should create 512 bit / 64 byte HMAC-SHA512 root seed from a 256 bit mnemonic", (): void => { + const mnemonic: string = bitbox.Mnemonic.generate(256) + const rootSeedBuffer: Buffer = bitbox.Mnemonic.toSeed(mnemonic, "") + assert.equal(rootSeedBuffer.byteLength, 64) + }) + }) + + describe("#wordLists", (): void => { + it("return a list of 2048 english words", (): void => { + assert.equal(bitbox.Mnemonic.wordLists().english.length, 2048) + }) + + it("return a list of 2048 japanese words", (): void => { + assert.equal(bitbox.Mnemonic.wordLists().japanese.length, 2048) + }) + + it("return a list of 2048 chinese simplified words", (): void => { + assert.equal(bitbox.Mnemonic.wordLists().chinese_simplified.length, 2048) + }) + + it("return a list of 2048 chinese traditional words", (): void => { + assert.equal(bitbox.Mnemonic.wordLists().chinese_traditional.length, 2048) + }) + + it("return a list of 2048 french words", (): void => { + assert.equal(bitbox.Mnemonic.wordLists().french.length, 2048) + }) + + it("return a list of 2048 italian words", (): void => { + assert.equal(bitbox.Mnemonic.wordLists().italian.length, 2048) + }) + + it("return a list of 2048 korean words", (): void => { + assert.equal(bitbox.Mnemonic.wordLists().korean.length, 2048) + }) + + it("return a list of 2048 spanish words", (): void => { + assert.equal(bitbox.Mnemonic.wordLists().spanish.length, 2048) + }) + }) + + describe("#toKeypairs", (): void => { + fixtures.toKeypairs.forEach((fixture: any, i: number): void => { + const keypairs: any = bitbox.Mnemonic.toKeypairs(fixture.mnemonic, 5) + keypairs.forEach((keypair: any, j: number): void => { + it(`Generate keypair from mnemonic`, (): void => { + assert.equal( + keypair.privateKeyWIF, + fixtures.toKeypairs[i].output[j].privateKeyWIF + ) + // assert.equal( + // keypair.address, + // fixtures.toKeypairs[i].output[j].address + // ) + }) + }) + + const regtestKeypairs: any = bitbox.Mnemonic.toKeypairs( + fixture.mnemonic, + 5, + true + ) + regtestKeypairs.forEach((keypair: any, j: number): void => { + it(`Generate keypair from mnemonic`, (): void => { + assert.equal( + keypair.privateKeyWIF, + fixtures.toKeypairs[i].output[j].privateKeyWIFRegTest + ) + // assert.equal( + // keypair.address, + // fixtures.toKeypairs[i].output[j].regtestAddress + // ) + }) + }) + }) + }) + + describe("#findNearestWord", (): void => { + fixtures.findNearestWord.forEach((fixture: any): void => { + const word: string = bitbox.Mnemonic.findNearestWord( + fixture.word, + bitbox.Mnemonic.wordLists()[fixture.language] + ) + it(`find word ${fixture.foundWord} near ${fixture.word} in ${ + fixture.language + }`, (): void => { + assert.equal(word, fixture.foundWord) + }) + }) + }) +}) diff --git a/test/unit/Price.ts b/test/unit/Price.ts new file mode 100644 index 00000000..093a3e1d --- /dev/null +++ b/test/unit/Price.ts @@ -0,0 +1,39 @@ +// imports +import * as chai from "chai" +import { BITBOX } from "../../lib/BITBOX" +import { Price } from "../../lib/Price" +import axios from "axios" +import * as sinon from "sinon" + +// consts +const bitbox: BITBOX = new BITBOX() +const assert: Chai.AssertStatic = chai.assert + +describe("#Price", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + describe("#PriceConstructor", (): void => { + it("should create instance of Price", (): void => { + const price: Price = new Price() + assert.equal(price instanceof Price, true) + }) + }) + + describe("#current", (): void => { + describe("#single currency", (): void => { + it("should get current price for single currency", async () => { + // Mock out data for unit test, to prevent live network call. + const data: any = 39229 + const resolved: any = new Promise(r => r({ data: { price: data } })) + sandbox.stub(axios, "get").returns(resolved) + + const result = await bitbox.Price.current("usd") + //console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.isNumber(result) + }) + }) + }) +}) diff --git a/test/unit/RawTransactions.ts b/test/unit/RawTransactions.ts new file mode 100644 index 00000000..495269c1 --- /dev/null +++ b/test/unit/RawTransactions.ts @@ -0,0 +1,379 @@ +// imports +import { + DecodeRawTransactionResult, + VerboseRawTransactionResult +} from "bitcoin-com-rest" +import * as chai from "chai" +import * as util from "util" +import { BITBOX, resturl } from "../../lib/BITBOX" +import { RawTransactions } from "../../lib/RawTransactions" +import axios from "axios" +import * as sinon from "sinon" + +// consts +const bitbox: BITBOX = new BITBOX() +const assert: Chai.AssertStatic = chai.assert +const rtMock = require("./mocks/rawtransactions-mock") + +// Used for debugging +util.inspect.defaultOptions = { depth: 1 } + +describe("#RawTransactions", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + + describe("#RawTransactionsConstructor", (): void => { + it("should create instance of RawTransactions", (): void => { + const rawtransactions: RawTransactions = new RawTransactions() + assert.equal(rawtransactions instanceof RawTransactions, true) + }) + + it("should have a restURL property", (): void => { + const rawtransactions: RawTransactions = new RawTransactions() + assert.equal(rawtransactions.restURL, resturl) + }) + }) + + describe("#decodeRawTransaction", (): void => { + it("should decode tx for a single hex", async (): Promise => { + // Mock the call to rest to prevent live network calls. + const resolved = new Promise(r => r({ data: rtMock.decodedTx })) + sandbox.stub(axios, "get").returns(resolved) + + const hex: string = + "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" + + const result: + | DecodeRawTransactionResult + | DecodeRawTransactionResult[] = await bitbox.RawTransactions.decodeRawTransaction( + hex + ) + //console.log(`result: ${JSON.stringify(result,null,2)}`) + + assert.hasAnyKeys(result, [ + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout" + ]) + if (!Array.isArray(result)) { + assert.isArray(result.vin) + assert.isArray(result.vout) + } + }) + + it("should decode an array of tx hexes", async (): Promise => { + // Mock the call to rest to prevent live network calls. + const testData = [rtMock.decodedTx, rtMock.decodedTx] + const resolved = new Promise(r => r({ data: testData })) + sandbox.stub(axios, "post").returns(resolved) + + const hexes: string[] = [ + "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000", + "0200000001b9b598d7d6d72fc486b2b3a3c03c79b5bade6ec9a77ced850515ab5e64edcc21010000006b483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413dffffffff0210270000000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac786e9800000000001976a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac00000000" + ] + + const result: + | DecodeRawTransactionResult + | DecodeRawTransactionResult[] = await bitbox.RawTransactions.decodeRawTransaction( + hexes + ) + + assert.isArray(result) + if (Array.isArray(result)) { + assert.hasAnyKeys(result[0], [ + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout" + ]) + assert.isArray(result[0].vin) + assert.isArray(result[0].vout) + } + }) + + it(`should pass error from server to user`, async (): Promise => { + try { + // Mock out data for unit test, to prevent live network call. + sandbox + .stub(axios, "get") + .throws("error", "Input must be a string or array of strings") + + const addr: any = 12345 + + await bitbox.RawTransactions.decodeRawTransaction(addr) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: ${util.inspect(err)}`) + assert.include( + err.message, + `Input must be a string or array of strings` + ) + } + }) + }) + + describe("#getRawTransaction", (): void => { + it("should decode a single txid, with concise output", async (): Promise< + any + > => { + // Mock the call to rest to prevent live network calls. + const resolved = new Promise(r => r({ data: rtMock.rawTx })) + sandbox.stub(axios, "get").returns(resolved) + + const txid: string = + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" + const verbose: boolean = false + + const result: + | VerboseRawTransactionResult + | VerboseRawTransactionResult[] + | string + | string[] = await bitbox.RawTransactions.getRawTransaction( + txid, + verbose + ) + //console.log(`result: ${JSON.stringify(result,null,2)}`) + + assert.isString(result) + }) + + it("should decode a single txid, with verbose output", async (): Promise< + any + > => { + // Mock the call to rest to prevent live network calls. + const resolved = new Promise(r => r({ data: rtMock.decodedTx })) + sandbox.stub(axios, "get").returns(resolved) + + const txid: string = + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1" + const verbose: boolean = true + + const result: + | VerboseRawTransactionResult + | VerboseRawTransactionResult[] + | string + | string[] = await bitbox.RawTransactions.getRawTransaction( + txid, + verbose + ) + //console.log(`result: ${JSON.stringify(result,null,2)}`) + + assert.hasAnyKeys(result, [ + "hex", + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout", + "blockhash", + "confirmations", + "time", + "blocktime" + ]) + if (!Array.isArray(result) && result instanceof Object) { + assert.isArray(result.vin) + assert.isArray(result.vout) + } + }) + + it("should decode an array of txids, with a concise output", async (): Promise< + any + > => { + // Mock the call to rest to prevent live network calls. + const testData = [rtMock.rawTx, rtMock.rawTx] + const resolved = new Promise(r => r({ data: testData })) + sandbox.stub(axios, "post").returns(resolved) + + const txid: string[] = [ + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", + "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" + ] + const verbose: boolean = false + + const result: + | VerboseRawTransactionResult + | VerboseRawTransactionResult[] + | string + | string[] = await bitbox.RawTransactions.getRawTransaction( + txid, + verbose + ) + + assert.isArray(result) + if (Array.isArray(result)) assert.isString(result[0]) + }) + + it("should decode an array of txids, with a verbose output", async (): Promise< + any + > => { + // Mock the call to rest to prevent live network calls. + const testData = [rtMock.decodedTx, rtMock.decodedTx] + const resolved = new Promise(r => r({ data: testData })) + sandbox.stub(axios, "post").returns(resolved) + + const txid: string[] = [ + "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", + "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" + ] + const verbose: boolean = true + + const result: + | VerboseRawTransactionResult + | VerboseRawTransactionResult[] + | string + | string[] = await bitbox.RawTransactions.getRawTransaction( + txid, + verbose + ) + + assert.isArray(result) + if (Array.isArray(result)) { + assert.hasAnyKeys(result[0], [ + "hex", + "txid", + "hash", + "size", + "version", + "locktime", + "vin", + "vout", + "blockhash", + "confirmations", + "time", + "blocktime" + ]) + // TODO uncomment this test and fix ts error + // assert.isArray(result[0].vin); + // assert.isArray(result[0].vout); + } + }) + + it(`should pass error from server to user`, async (): Promise => { + try { + // Mock out data for unit test, to prevent live network call. + sandbox + .stub(axios, "get") + .throws("error", "Input must be a string or array of strings") + + const txid: any = 12345 + + await bitbox.RawTransactions.getRawTransaction(txid, false) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: ${util.inspect(err)}`) + assert.include( + err.message, + `Input must be a string or array of strings` + ) + } + }) + }) + + describe("#decodeScript", () => { + it("should decode script for a single hex", async (): Promise => { + // Mock the call to rest to prevent live network calls. + const resolved = new Promise(r => r({ data: rtMock.decodedScript })) + sandbox.stub(axios, "get").returns(resolved) + + const hex: string = + "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" + + const result = await bitbox.RawTransactions.decodeScript(hex) + //console.log(`result: ${JSON.stringify(result,null,2)}`) + + assert.hasAllKeys(result, ["asm", "type", "p2sh"]) + }) + + it("should decode an array of tx hexes", async () => { + // Mock the call to rest to prevent live network calls. + const testData = [rtMock.decodedScript, rtMock.decodedScript] + const resolved = new Promise(r => r({ data: testData })) + sandbox.stub(axios, "post").returns(resolved) + + const hexes = [ + "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16", + "4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16" + ] + + const result = await bitbox.RawTransactions.decodeScript(hexes) + //console.log(`result ${JSON.stringify(result, null, 2)}`) + + assert.isArray(result) + assert.hasAnyKeys(result[0], ["asm", "type", "p2sh"]) + }) + + it(`should pass error from server to user`, async (): Promise => { + try { + // Mock out data for unit test, to prevent live network call. + sandbox + .stub(axios, "get") + .throws("error", "Input must be a string or array of strings") + + const hexes: any = 12345 + + await bitbox.RawTransactions.decodeScript(hexes) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: ${util.inspect(err)}`) + assert.include( + err.message, + `Input must be a string or array of strings` + ) + } + }) + }) + + /* + Testing sendRawTransaction isn't really possible with an integration test, + as the endpoint really needs an e2e test to be properly tested. The tests + below expect error messages returned from the server, but at least test + that the server is responding on those endpoints, and responds consistently. + */ + describe("sendRawTransaction", () => { + it("should send a single transaction hex", async (): Promise => { + try { + // Mock out data for unit test, to prevent live network call. + sandbox.stub(axios, "get").throws({ error: "Missing inputs" }) + + const hex: string = + "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" + + await bitbox.RawTransactions.sendRawTransaction(hex) + + assert.equal(true, false, "Unexpected result!") + } catch (err) { + //console.log(`err: ${util.inspect(err)}`) + assert.hasAllKeys(err, ["error"]) + assert.include(err.error, "Missing inputs") + } + }) + + it("should send an array of tx hexes", async (): Promise => { + try { + // Mock out data for unit test, to prevent live network call. + sandbox.stub(axios, "post").throws({ error: "Missing inputs" }) + + const hexes: string[] = [ + "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000", + "01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000" + ] + + const result = await bitbox.RawTransactions.sendRawTransaction(hexes) + } catch (err) { + // console.log(`err: ${util.inspect(err)}`) + assert.hasAllKeys(err, ["error"]) + assert.include(err.error, "Missing inputs") + } + }) + }) +}) diff --git a/test/unit/Script.ts b/test/unit/Script.ts new file mode 100644 index 00000000..3da586ef --- /dev/null +++ b/test/unit/Script.ts @@ -0,0 +1,450 @@ +// imports +import * as assert from "assert"; +import { BITBOX } from "../../lib/BITBOX" +import { Script, DecodedP2PKHInput, DecodedP2MSOutput } from "../../lib/Script" +import * as bcl from "bitcoincashjs-lib" + +// consts +const bitbox: BITBOX = new BITBOX() + +// TODO: port from require to import syntax +const fixtures = require("./fixtures/Script.json") + +describe("#Script", (): void => { + describe("#ScriptConstructor", (): void => { + it("should create instance of Script", (): void => { + const script: Script = new Script() + assert.equal(script instanceof Script, true) + }) + }) + + describe("#decode", (): void => { + describe("P2PKH scriptSig", (): void => { + fixtures.decodeScriptSig.forEach((fixture: any): void => { + it(`should decode scriptSig buffer`, (): void => { + const decodedScriptSig: any[] = bitbox.Script.decode( + Buffer.from(fixture.scriptSigHex, "hex") + ) + assert.equal(typeof decodedScriptSig, "object") + }) + + it(`should decode scriptSig buffer to cash address ${ + fixture.cashAddress + }`, (): void => { + const decodedScriptSig: any[] = bitbox.Script.decode( + Buffer.from(fixture.scriptSigHex, "hex") + ) + const address: string = bitbox.HDNode.toCashAddress( + bitbox.ECPair.fromPublicKey(decodedScriptSig[1]) + ) + assert.equal(address, fixture.cashAddress) + }) + + it(`should decode scriptSig buffer to legacy address ${ + fixture.legacyAddress + }`, (): void => { + const decodedScriptSig: any[] = bitbox.Script.decode( + Buffer.from(fixture.scriptSigHex, "hex") + ) + const address: string = bitbox.HDNode.toLegacyAddress( + bitbox.ECPair.fromPublicKey(decodedScriptSig[1]) + ) + assert.equal(address, fixture.legacyAddress) + }) + }) + }) + + describe("P2PKH scriptPubKey", (): void => { + fixtures.decodeScriptPubKey.forEach((fixture: any): void => { + it(`should decode scriptSig buffer`, (): void => { + const decodedScriptPubKey: any[] = bitbox.Script.decode( + Buffer.from(fixture.scriptPubKeyHex, "hex") + ) + assert.equal(decodedScriptPubKey.length, 5) + }) + + it(`should match hashed pubKey ${fixture.pubKeyHex}`, (): void => { + const decodedScriptPubKey: any[] = bitbox.Script.decode( + Buffer.from(fixture.scriptPubKeyHex, "hex") + ) + const data: Buffer = Buffer.from(fixture.pubKeyHex, "hex") + const hash160: Buffer = bitbox.Crypto.hash160(data) + assert.equal(decodedScriptPubKey[2].toString("hex"), hash160.toString("hex")) + }) + }) + }) + }) + + describe("#encode", (): void => { + describe("P2PKH scriptSig", (): void => { + fixtures.encodeScriptSig.forEach((fixture: any): void => { + it(`should encode scriptSig chunks to buffer`, (): void => { + const arr: Buffer[] = [ + Buffer.from(fixture.scriptSigChunks[0], "hex"), + Buffer.from(fixture.scriptSigChunks[1], "hex") + ] + const encodedScriptSig: any = bitbox.Script.encode(arr) + assert.equal(typeof encodedScriptSig, "object") + }) + }) + }) + + describe("P2PKH scriptPubKey", (): void => { + fixtures.encodeScriptPubKey.forEach((fixture: any): void => { + it(`should encode scriptPubKey buffer`, (): void => { + const decodedScriptPubKey: any[] = bitbox.Script.decode( + Buffer.from(fixture.scriptPubKeyHex, "hex") + ) + const compiledScriptPubKey: any = bitbox.Script.encode(decodedScriptPubKey) + assert.equal( + compiledScriptPubKey.toString("hex"), + fixture.scriptPubKeyHex + ) + }) + }) + }) + }) + + describe("#toASM", (): void => { + describe("P2PKH scriptSig", (): void => { + fixtures.scriptSigToASM.forEach((fixture: any): void => { + it(`should encode scriptSig buffer to ${fixture.asm}`, (): void => { + const arr: Buffer[] = [ + Buffer.from(fixture.scriptSigChunks[0], "hex"), + Buffer.from(fixture.scriptSigChunks[1], "hex") + ] + const compiledScriptSig: any = bitbox.Script.encode(arr) + const asm: string = bitbox.Script.toASM(compiledScriptSig) + assert.equal(asm, fixture.asm) + }) + }) + }) + + describe("P2PKH scriptPubKey", (): void => { + fixtures.scriptPubKeyToASM.forEach((fixture: any): void => { + it(`should compile scriptPubKey buffer to ${fixture.asm}`, (): void => { + const asm: string = bitbox.Script.toASM( + Buffer.from(fixture.scriptPubKeyHex, "hex") + ) + assert.equal(asm, fixture.asm) + }) + }) + }) + }) + + describe("#fromASM", (): void => { + describe("P2PKH scriptSig", (): void => { + fixtures.scriptSigFromASM.forEach((fixture: any): void => { + it(`should decode scriptSig asm to buffer`, (): void => { + const buf: Buffer = bitbox.Script.fromASM(fixture.asm) + assert.equal(typeof buf, "object") + }) + }) + }) + + describe("P2PKH scriptPubKey", (): void => { + fixtures.scriptPubKeyFromASM.forEach((fixture: any): void => { + it(`should decode scriptPubKey asm to buffer`, (): void => { + const buf: Buffer = bitbox.Script.fromASM(fixture.asm) + assert.equal(typeof buf, "object") + }) + }) + }) + }) + + describe("#OPCodes", (): void => { + for (const opcode in fixtures.opcodes) { + it(`should have OP Code ${opcode}`, (): void => { + // @ts-ignore + assert.equal(bitbox.Script.opcodes[opcode], fixtures.opcodes[opcode]) + }) + } + }) + + describe("#classifyInput", (): void => { + fixtures.classifyInput.forEach((fixture: any): void => { + it(`should classify input type ${fixture.type}`, (): void => { + const type: string = bitbox.Script.classifyInput( + bitbox.Script.fromASM(fixture.script) + ) + assert.equal(type, fixture.type) + }) + }) + }) + + describe("#classifyOutput", (): void => { + fixtures.classifyOutput.forEach((fixture: any): void => { + it(`should classify ouput type ${fixture.type}`, (): void => { + const type: string = bitbox.Script.classifyOutput( + bitbox.Script.fromASM(fixture.script) + ) + assert.equal(type, fixture.type) + }) + }) + }) + + describe("#nullDataTemplate", (): void => { + fixtures.nullDataTemplate.forEach((fixture: any): void => { + it(`should encode nulldata output`, (): void => { + let buf: Buffer = Buffer.from(fixture.data, "ascii") + const encoded: Buffer = bitbox.Script.encodeNullDataOutput(buf) + assert.equal(encoded.toString("hex"), fixture.hex) + }) + + it(`should decode nulldata output`, (): void => { + let buf: Buffer = Buffer.from(fixture.hex, "hex") + const decoded: Buffer = bitbox.Script.decodeNullDataOutput(buf) + assert.equal(decoded.toString("ascii"), fixture.data) + }) + + it(`should confirm correctly formatted nulldata output`, (): void => { + let buf: Buffer = Buffer.from(fixture.data, "ascii") + const encoded: Buffer = bitbox.Script.encodeNullDataOutput(buf) + const valid: boolean = bitbox.Script.checkNullDataOutput(encoded) + assert.equal(valid, true) + }) + }) + }) + + describe("#pubKeyTemplate", (): void => { + describe("#pubKeyInputTemplate", (): void => { + fixtures.pubKeyInputTemplate.forEach((fixture: any): void => { + it(`should encode pubKey input`, (): void => { + const buf: Buffer = bitbox.Script.encodeP2PKInput( + Buffer.from(fixture.signature, "hex") + ) + assert.equal(buf.toString("hex"), fixture.hex) + }) + + it(`should decode pubKey input`, (): void => { + const buf: Buffer = bitbox.Script.pubKey.input.decode( + Buffer.from(fixture.hex, "hex") + ) + assert.equal(buf.toString("hex"), fixture.signature) + }) + + it(`should confirm correctly formatted pubKeyHash input`, (): void => { + const buf: Buffer = bitbox.Script.encodeP2PKInput( + Buffer.from(fixture.signature, "hex") + ) + const valid: boolean = bitbox.Script.pubKey.input.check(buf) + assert.equal(valid, true) + }) + }) + }) + + describe("#pubKeyOutputTemplate", (): void => { + fixtures.pubKeyOutputTemplate.forEach((fixture: any): void => { + it(`should encode pubKey output`, (): void => { + const buf: Buffer = Buffer.from(fixture.pubKey, "hex") + const encoded: Buffer = bitbox.Script.encodeP2PKOutput(buf) + assert.equal(encoded.toString("hex"), fixture.hex) + }) + + it(`should decode pubKey output`, (): void => { + const buf: Buffer = Buffer.from(fixture.hex, "hex") + const decoded: Buffer = bitbox.Script.decodeP2PKOutput(buf) + assert.equal(decoded.toString("hex"), fixture.pubKey) + }) + + it(`should confirm correctly formatted pubKey output`, (): void => { + const buf: Buffer = Buffer.from(fixture.pubKey, "hex") + const encoded: Buffer = bitbox.Script.encodeP2PKOutput(buf) + const valid: boolean = bitbox.Script.checkP2PKOutput(encoded) + assert.equal(valid, true) + }) + }) + }) + }) + + describe("#pubKeyHashTemplate", (): void => { + describe("#pubKeyHashInputTemplate", (): void => { + fixtures.pubKeyHashInputTemplate.forEach((fixture: any): void => { + it(`should encode pubKeyHash input`, (): void => { + const sigBuf = Buffer.from(fixture.signature, 'hex') + const pubKeyBuf = Buffer.from(fixture.pubKey, 'hex') + const encoded: Buffer = bitbox.Script.encodeP2PKHInput(sigBuf, pubKeyBuf) + assert.equal(encoded.toString("hex"), fixture.hex) + }) + + it(`should decode pubKeyHash input signature`, (): void => { + const input: Buffer = Buffer.from(fixture.hex, "hex") + const buf: DecodedP2PKHInput = bitbox.Script.decodeP2PKHInput(input) + assert.equal(buf.signature.toString("hex"), fixture.signature) + }) + + it(`should decode pubKeyHash input pubkey`, (): void => { + const input: Buffer = Buffer.from(fixture.hex, "hex") + const buf: DecodedP2PKHInput = bitbox.Script.decodeP2PKHInput(input) + assert.equal(buf.pubKey.toString("hex"), fixture.pubKey) + }) + + it(`should confirm correctly formatted pubKeyHash input`, (): void => { + const sigBuf = Buffer.from(fixture.signature, 'hex') + const pubKeyBuf = Buffer.from(fixture.pubKey, 'hex') + const encoded: Buffer = bitbox.Script.encodeP2PKHInput(sigBuf, pubKeyBuf) + const valid: boolean = bitbox.Script.checkP2PKHInput(encoded) + assert.equal(valid, true) + }) + }) + }) + + describe("#pubKeyHashOutputTemplate", (): void => { + fixtures.pubKeyHashOutputTemplate.forEach((fixture: any): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const identifier: Buffer = bitbox.HDNode.toIdentifier(node) + it(`should encode pubKeyHash output`, (): void => { + const output: Buffer = bitbox.Script.encodeP2PKHOutput(identifier) + assert.equal(output.toString("hex"), fixture.hex) + }) + + it(`should decode pubKeyHash output`, (): void => { + let output: Buffer = Buffer.from(`${fixture.hex}`, "hex") + const decoded: Buffer = bitbox.Script.pubKeyHash.output.decode(output) + assert.equal(decoded.toString("hex"), identifier.toString("hex")) + }) + + it(`should confirm correctly formatted pubKeyHash output`, (): void => { + const buf: Buffer = bitbox.Script.pubKeyHash.output.encode(identifier) + const valid: boolean = bitbox.Script.pubKeyHash.output.check(buf) + assert.equal(valid, true) + }) + }) + }) + }) + + describe("#multisigTemplate", (): void => { + describe("#multisigInputTemplate", (): void => { + fixtures.multisigInputTemplate.forEach((fixture: any): void => { + it(`should encode multisig input`, (): void => { + const signatures: Buffer[] = fixture.signatures.map((signature: any) => + Buffer.from(signature, "hex") + ) + const input: Buffer = bitbox.Script.encodeP2MSInput(signatures) + assert.equal(input.toString("hex"), fixture.hex) + }) + + it(`should decode multisig input`, (): void => { + const output: Buffer = Buffer.from(fixture.hex, "hex") + const decoded: Buffer[] = bitbox.Script.decodeP2MSInput(output) + assert.equal(decoded[0].toString("hex"), fixture.signatures[0]) + }) + + it(`should confirm correctly formatted multisig input`, (): void => { + const signatures: Buffer[] = fixture.signatures.map((signature: any) => + Buffer.from(signature, "hex") + ) + const input: Buffer = bitbox.Script.encodeP2MSInput(signatures) + const valid: boolean = bitbox.Script.checkP2MSInput(input) + assert.equal(valid, true) + }) + }) + }) + + describe("#multisigOutputTemplate", (): void => { + fixtures.multisigOutputTemplate.forEach((fixture: any): void => { + it(`should encode multisig output`, (): void => { + const pubKeys: Buffer[] = fixture.pubKeys.map((p: string) => Buffer.from(p, "hex")) + const m: number = pubKeys.length + const output: Buffer = bitbox.Script.encodeP2MSOutput(m, pubKeys) + + assert.equal(output.toString("hex"), fixture.hex) + }) + + it(`should decode multisig output`, (): void => { + const output: Buffer = Buffer.from(`${fixture.hex}`, "hex") + const decoded: DecodedP2MSOutput = bitbox.Script.decodeP2MSOutput(output) + assert.equal(decoded.m, fixture.pubKeys.length) + }) + + it(`should confirm correctly formatted multisig output`, (): void => { + const pubKeys: Buffer[] = fixture.pubKeys.map((p: any) => Buffer.from(p, "hex")) + const m: number = pubKeys.length + const output: Buffer = bitbox.Script.encodeP2MSOutput(m, pubKeys) + const valid: boolean = bitbox.Script.checkP2MSOutput(output) + assert.equal(valid, true) + }) + }) + }) + }) + + describe("#scriptHashTemplate", (): void => { + describe("#scriptHashInputTemplate", (): void => { + fixtures.scriptHashInputTemplate.forEach((fixture: any): void => { + it(`should encode scriptHash input`, (): void => { + const redeemScriptSig: Buffer = bitbox.Script.fromASM(fixture.redeemScriptSig) + const redeemScript: Buffer = bitbox.Script.fromASM(fixture.redeemScript) + const input: Buffer = bitbox.Script.encodeP2SHInput(redeemScriptSig, redeemScript) + assert.equal(input.toString("hex"), fixture.hex) + }) + + it(`should decode scriptHash input`, (): void => { + const redeemScriptSig: Buffer = bitbox.Script.fromASM(fixture.redeemScriptSig) + const redeemScript: Buffer = bitbox.Script.fromASM(fixture.redeemScript) + const input: Buffer = bitbox.Script.encodeP2SHInput(redeemScriptSig, redeemScript) + assert.deepEqual( + bitbox.Script.decodeP2SHInput(input), + { + redeemScriptSig: redeemScriptSig, + redeemScript: redeemScript + } + ) + }) + + it(`should confirm correctly formatted scriptHash input`, (): void => { + const redeemScriptSig: Buffer = bitbox.Script.fromASM(fixture.redeemScriptSig) + const redeemScript: Buffer = bitbox.Script.fromASM(fixture.redeemScript) + const input: Buffer = bitbox.Script.encodeP2SHInput(redeemScriptSig, redeemScript) + const valid: boolean = bitbox.Script.scriptHash.input.check(input) + assert.equal(valid, true) + }) + }) + }) + + describe("#scriptHashOutputTemplate", (): void => { + fixtures.scriptHashOutputTemplate.forEach((fixture: any): void => { + it(`should encode scriptHash output`, (): void => { + const redeemScript: Buffer = bitbox.Script.fromASM(fixture.output) + const scriptHash: Buffer = bitbox.Crypto.hash160(redeemScript) + const output: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash) + + assert.equal(output.toString("hex"), fixture.hex) + }) + + it(`should decode scriptHash output`, (): void => { + const redeemScript: any = bitbox.Script.fromASM(fixture.output) + const scriptHash: Buffer = bitbox.Crypto.hash160(redeemScript) + const output: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash) + let decoded: Buffer = bitbox.Script.decodeP2SHOutput(output) + assert.deepEqual(decoded, scriptHash) + }) + + it(`should confirm correctly formatted scriptHash output`, (): void => { + const redeemScript: any = bitbox.Script.fromASM(fixture.output) + const scriptHash: Buffer = bitbox.Crypto.hash160(redeemScript) + const buf: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash) + const valid: boolean = bitbox.Script.scriptHash.output.check(buf) + assert.equal(valid, true) + }) + }) + }) + }) + + describe("#number", (): void => { + fixtures.scriptNumber.forEach((fixture: any): void => { + it(`should encode number ${fixture.decoded} as bytes ${fixture.encoded}`, (): void => { + const encoded1 = bitbox.Script.number.encode(fixture.decoded) + const encoded2 = bitbox.Script.encodeNumber(fixture.decoded) + assert.equal(encoded1.toString("hex"), fixture.encoded) + assert.equal(encoded2.toString("hex"), fixture.encoded) + }) + + it(`should decode bytes ${fixture.encoded} as number ${fixture.decoded}`, (): void => { + const decoded1 = bitbox.Script.number.decode(Buffer.from(fixture.encoded, 'hex')) + const decoded2 = bitbox.Script.decodeNumber(Buffer.from(fixture.encoded, 'hex')) + assert.equal(decoded1, fixture.decoded) + assert.equal(decoded2, fixture.decoded) + }) + }) + }) +}) diff --git a/test/unit/TransactionBuilder.ts b/test/unit/TransactionBuilder.ts new file mode 100644 index 00000000..fd08ef26 --- /dev/null +++ b/test/unit/TransactionBuilder.ts @@ -0,0 +1,2041 @@ +// imports +import * as assert from "assert"; +import { BITBOX } from "../../lib/BITBOX" +import { TransactionBuilder } from "../../lib/TransactionBuilder" +import * as bcl from "bitcoincashjs-lib" + +// consts +const bitbox: BITBOX = new BITBOX() + +// TODO: port from require to import syntax +const fixtures = require("./fixtures/TransactionBuilder.json") + +describe("#TransactionBuilder", (): void => { + describe("#TransactionBuilderConstructor", (): void => { + it("should create instance of TransactionBuilder", (): void => { + const transactionbuilder: TransactionBuilder = new TransactionBuilder() + assert.equal(transactionbuilder instanceof TransactionBuilder, true) + }) + }) + + describe("#hashTypes", (): void => { + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("mainnet") + fixtures.hashTypes.forEach((fixture: any): void => { + it(`should match hash type`, (): void => { + assert.equal( + fixture[Object.keys(fixture)[0]], + // @ts-ignore + transactionBuilder.hashTypes[Object.keys(fixture)[0]] + ) + }) + }) + }) + + describe("#P2PK", (): void => { + describe("#toOne", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2pk.toOne.mainnet.forEach((fixture: any): void => { + it(`should create 1-to-1 P2PK transaction on mainnet`, (): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const originalAmount: number = fixture.amount + const txid: string = fixture.txHash + const pubKey: any = bitbox.HDNode.toPublicKey(node) + const prevOutScript: Buffer = bitbox.Script.encodeP2PKOutput(pubKey) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + prevOutScript + ) + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 3 } + ) + const sendAmount: number = originalAmount - byteCount + transactionBuilder.addOutput(prevOutScript, sendAmount) + const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(node) + let redeemScript: undefined + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#Testnet", (): void => { + fixtures.scripts.p2pk.toOne.testnet.forEach((fixture: any): void => { + it(`should create 1-to-1 P2PK transaction on testnet`, (): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") + const originalAmount: number = fixture.amount + const txid: string = fixture.txHash + const pubKey: Buffer = bitbox.HDNode.toPublicKey(node) + const prevOutScript: Buffer = bitbox.Script.encodeP2PKOutput(pubKey) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + prevOutScript + ) + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 3 } + ) + const sendAmount: number = originalAmount - byteCount + transactionBuilder.addOutput(prevOutScript, sendAmount) + const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(node) + let redeemScript: undefined + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) + + describe("#toMany", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2pk.toMany.mainnet.forEach((fixture: any): void => { + it(`should create 1-to-many P2PK transaction on mainnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const originalAmount: number = fixture.amount + const txid: string = fixture.txHash + const pubKey1: Buffer = bitbox.HDNode.toPublicKey(node1) + const pubKey2: Buffer = bitbox.HDNode.toPublicKey(node2) + const pubKey3: Buffer = bitbox.HDNode.toPublicKey(node3) + const prevOutScript1: Buffer = bitbox.Script.encodeP2PKOutput(pubKey1) + const prevOutScript2: Buffer = bitbox.Script.encodeP2PKOutput(pubKey2) + const prevOutScript3: Buffer = bitbox.Script.encodeP2PKOutput(pubKey3) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + prevOutScript1 + ) + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 3 } + ) + const sendAmount: number = originalAmount - byteCount + transactionBuilder.addOutput(prevOutScript2, Math.floor(sendAmount / 2)) + transactionBuilder.addOutput(prevOutScript3, Math.floor(sendAmount / 2)) + const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + let redeemScript: undefined + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#Testnet", (): void => { + fixtures.scripts.p2pk.toMany.testnet.forEach((fixture: any): void => { + it(`should create 1-to-many P2PK transaction on testnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") + const originalAmount: number = fixture.amount + const txid: string = fixture.txHash + const pubKey1: Buffer = bitbox.HDNode.toPublicKey(node1) + const pubKey2: Buffer = bitbox.HDNode.toPublicKey(node2) + const pubKey3: Buffer = bitbox.HDNode.toPublicKey(node3) + const prevOutScript1: Buffer = bitbox.Script.encodeP2PKOutput(pubKey1) + const prevOutScript2: Buffer = bitbox.Script.encodeP2PKOutput(pubKey2) + const prevOutScript3: Buffer = bitbox.Script.encodeP2PKOutput(pubKey3) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + prevOutScript1 + ) + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 3 } + ) + const sendAmount: number = originalAmount - byteCount + transactionBuilder.addOutput(prevOutScript2, Math.floor(sendAmount / 2)) + transactionBuilder.addOutput(prevOutScript3, Math.floor(sendAmount / 2)) + const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + let redeemScript: undefined + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) + + describe("#manyToMany", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2pk.manyToMany.mainnet.forEach((fixture: any): void => { + it(`should create many-to-many P2PK transaction on mainnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const node4: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const originalAmount: number = fixture.amount + const txid: string = fixture.txHash + const pubKey1: Buffer = bitbox.HDNode.toPublicKey(node1) + const pubKey2: Buffer = bitbox.HDNode.toPublicKey(node2) + const pubKey3: Buffer = bitbox.HDNode.toPublicKey(node3) + const pubKey4: Buffer = bitbox.HDNode.toPublicKey(node4) + const prevOutScript1: Buffer = bitbox.Script.encodeP2PKOutput(pubKey1) + const prevOutScript2: Buffer = bitbox.Script.encodeP2PKOutput(pubKey2) + const prevOutScript3: Buffer = bitbox.Script.encodeP2PKOutput(pubKey3) + const prevOutScript4: Buffer = bitbox.Script.encodeP2PKOutput(pubKey4) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + prevOutScript1 + ) + transactionBuilder.addInput( + txid, + 1, + transactionBuilder.DEFAULT_SEQUENCE, + prevOutScript2 + ) + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 3 } + ) + const sendAmount: number = originalAmount - byteCount + transactionBuilder.addOutput(prevOutScript3, Math.floor(sendAmount / 2)) + transactionBuilder.addOutput(prevOutScript4, Math.floor(sendAmount / 2)) + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) + let redeemScript: undefined + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#Testnet", (): void => { + fixtures.scripts.p2pk.manyToMany.testnet.forEach((fixture: any): void => { + it(`should create many-to-many P2PK transaction on testnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const node4: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") + const originalAmount: number = fixture.amount + const txid: string = fixture.txHash + const pubKey1: Buffer = bitbox.HDNode.toPublicKey(node1) + const pubKey2: Buffer = bitbox.HDNode.toPublicKey(node2) + const pubKey3: Buffer = bitbox.HDNode.toPublicKey(node3) + const pubKey4: Buffer = bitbox.HDNode.toPublicKey(node4) + const prevOutScript1: Buffer = bitbox.Script.encodeP2PKOutput(pubKey1) + const prevOutScript2: Buffer = bitbox.Script.encodeP2PKOutput(pubKey2) + const prevOutScript3: Buffer = bitbox.Script.encodeP2PKOutput(pubKey3) + const prevOutScript4: Buffer = bitbox.Script.encodeP2PKOutput(pubKey4) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + prevOutScript1 + ) + transactionBuilder.addInput( + txid, + 1, + transactionBuilder.DEFAULT_SEQUENCE, + prevOutScript2 + ) + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 3 } + ) + const sendAmount: number = originalAmount - byteCount + transactionBuilder.addOutput(prevOutScript3, Math.floor(sendAmount / 2)) + transactionBuilder.addOutput(prevOutScript4, Math.floor(sendAmount / 2)) + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) + let redeemScript: undefined + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) + + describe("#fromMany", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2pk.fromMany.mainnet.forEach((fixture: any): void => { + it(`should create many-to-1 P2PK transaction on mainnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const originalAmount: any = fixture.amount + const txid: string = fixture.txHash + const pubKey1: Buffer = bitbox.HDNode.toPublicKey(node1) + const pubKey2: Buffer = bitbox.HDNode.toPublicKey(node2) + const pubKey3: Buffer = bitbox.HDNode.toPublicKey(node3) + const prevOutScript1: Buffer = bitbox.Script.encodeP2PKOutput(pubKey1) + const prevOutScript2: Buffer = bitbox.Script.encodeP2PKOutput(pubKey2) + const prevOutScript3: Buffer = bitbox.Script.encodeP2PKOutput(pubKey3) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + prevOutScript1 + ) + transactionBuilder.addInput( + txid, + 1, + transactionBuilder.DEFAULT_SEQUENCE, + prevOutScript2 + ) + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 3 } + ) + const sendAmount: number = originalAmount - byteCount + transactionBuilder.addOutput(prevOutScript3, sendAmount) + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) + let redeemScript: undefined + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#Testnet", (): void => { + fixtures.scripts.p2pk.fromMany.testnet.forEach((fixture: any): void => { + it(`should create many-to-1 P2PK transaction on testnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") + const originalAmount: number = fixture.amount + const txid: string = fixture.txHash + const pubKey1: Buffer = bitbox.HDNode.toPublicKey(node1) + const pubKey2: Buffer = bitbox.HDNode.toPublicKey(node2) + const pubKey3: Buffer = bitbox.HDNode.toPublicKey(node3) + const prevOutScript1: Buffer = bitbox.Script.encodeP2PKOutput(pubKey1) + const prevOutScript2: Buffer = bitbox.Script.encodeP2PKOutput(pubKey2) + const prevOutScript3: Buffer = bitbox.Script.encodeP2PKOutput(pubKey3) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + prevOutScript1 + ) + transactionBuilder.addInput( + txid, + 1, + transactionBuilder.DEFAULT_SEQUENCE, + prevOutScript2 + ) + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 3 } + ) + const sendAmount: number = originalAmount - byteCount + transactionBuilder.addOutput(prevOutScript3, sendAmount) + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) + let redeemScript: undefined + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) + }) + + describe("#P2PKH", (): void => { + describe("#toOne", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2pkh.toOne.mainnet.forEach((fixture: any): void => { + it(`should create 1-to-1 P2PKH transaction on mainnet`, (): void => { + const hdnode: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(hdnode) + const txHash: string = fixture.txHash + // original amount of satoshis in vin + const originalAmount: number = fixture.amount + transactionBuilder.addInput(txHash, fixture.vout) + // get byte count to calculate fee. paying 1 sat/byte + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 1 } + ) + // amount to send to receiver. It's the original amount - 1 sat/byte for tx size + const sendAmount: number = originalAmount - byteCount + // add output w/ address and amount to send + let redeemScript: undefined + transactionBuilder.addOutput(fixture.outputs[0], sendAmount) + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + + // build tx + const tx: any = transactionBuilder.build() + // output rawhex + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#Testnet", (): void => { + fixtures.scripts.p2pkh.toOne.testnet.forEach((fixture: any): void => { + it(`should create 1-to-1 P2PKH transaction on testnet`, (): void => { + const hdnode: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") + const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(hdnode) + const txHash: string = fixture.txHash + // original amount of satoshis in vin + const originalAmount: number = fixture.amount + transactionBuilder.addInput(txHash, fixture.vout) + // get byte count to calculate fee. paying 1 sat/byte + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 1 } + ) + // amount to send to receiver. It's the original amount - 1 sat/byte for tx size + const sendAmount: number = originalAmount - byteCount * 15 + // add output w/ address and amount to send + let redeemScript: undefined + transactionBuilder.addOutput(fixture.outputs[0], sendAmount) + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + + // build tx + const tx: any = transactionBuilder.build() + // output rawhex + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#RegTest", (): void => { + fixtures.scripts.p2pkh.toOne.regtest.forEach((fixture: any): void => { + it(`should create 1-to-1 P2PKH transaction on regtest`, (): void => { + const hdnode: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("regtest") + const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(hdnode) + const txHash: string = fixture.txHash + // original amount of satoshis in vin + const originalAmount: number = fixture.amount + transactionBuilder.addInput(txHash, fixture.vout) + // get byte count to calculate fee. paying 1 sat/byte + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 1 } + ) + // amount to send to receiver. It's the original amount - 1 sat/byte for tx size + const sendAmount: number = originalAmount - byteCount * 15 + // add output w/ address and amount to send + let redeemScript: undefined + transactionBuilder.addOutput(fixture.outputs[0], sendAmount) + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + + // build tx + const tx: any = transactionBuilder.build() + // output rawhex + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) + + describe("#toMany", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2pkh.toMany.mainnet.forEach((fixture: any): void => { + it(`should create 1-to-2 P2PKH transaction on mainnet`, (): void => { + const hdnode: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(hdnode) + const txHash: string = fixture.txHash + // original amount of satoshis in vin + const originalAmount: number = fixture.amount + transactionBuilder.addInput(txHash, fixture.vout) + // get byte count to calculate fee. paying 1 sat/byte + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 2 } + ) + // amount to send to receiver. It's the original amount - 1 sat/byte for tx size + const sendAmount: number = originalAmount - byteCount + // add output w/ address and amount to send + transactionBuilder.addOutput( + fixture.outputs[0], + Math.floor(sendAmount / 2) + ) + transactionBuilder.addOutput( + fixture.outputs[1], + Math.floor(sendAmount / 2) + ) + let redeemScript: undefined + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + // build tx + const tx: any = transactionBuilder.build() + // output rawhex + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#Testnet", (): void => { + fixtures.scripts.p2pkh.toMany.testnet.forEach((fixture: any): void => { + // TODO pass in tesnet network config + it(`should create 1-to-2 P2PKH transaction on testnet`, (): void => { + const hdnode: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") + const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(hdnode) + const txHash: string = fixture.txHash + // original amount of satoshis in vin + const originalAmount: number = fixture.amount + transactionBuilder.addInput(txHash, fixture.vout) + // get byte count to calculate fee. paying 1 sat/byte + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 2 } + ) + // amount to send to receiver. It's the original amount - 1 sat/byte for tx size + const sendAmount: number = originalAmount - byteCount * 15 + // add output w/ address and amount to send + transactionBuilder.addOutput( + fixture.outputs[0], + Math.floor(sendAmount / 2) + ) + transactionBuilder.addOutput( + fixture.outputs[1], + Math.floor(sendAmount / 2) + ) + let redeemScript: undefined + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + // build tx + const tx: any = transactionBuilder.build() + // output rawhex + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#RegTest", (): void => { + fixtures.scripts.p2pkh.toMany.regtest.forEach((fixture: any): void => { + // TODO pass in tesnet network config + it(`should create 1-to-2 P2PKH transaction on regtest`, (): void => { + const hdnode: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("regtest") + const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(hdnode) + const txHash: string = fixture.txHash + // original amount of satoshis in vin + const originalAmount: number = fixture.amount + transactionBuilder.addInput(txHash, fixture.vout) + // get byte count to calculate fee. paying 1 sat/byte + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 2 } + ) + // amount to send to receiver. It's the original amount - 1 sat/byte for tx size + const sendAmount: number = originalAmount - byteCount * 15 + // add output w/ address and amount to send + transactionBuilder.addOutput( + fixture.outputs[0], + Math.floor(sendAmount / 2) + ) + transactionBuilder.addOutput( + fixture.outputs[1], + Math.floor(sendAmount / 2) + ) + let redeemScript: undefined + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + // build tx + const tx: any = transactionBuilder.build() + // output rawhex + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) + + describe("#manyToMany", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2pkh.manyToMany.mainnet.forEach((fixture: any): void => { + it(`should create 2-to-2 P2PKH transaction on mainnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const txHash: string = fixture.txHash + const originalAmount: number = fixture.amounts[0] + fixture.amounts[1] + transactionBuilder.addInput(txHash, 0) + transactionBuilder.addInput(txHash, 1) + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 2 }, + { P2PKH: 2 } + ) + const sendAmount: number = originalAmount - byteCount + transactionBuilder.addOutput( + fixture.outputs[0], + Math.floor(sendAmount / 2) + ) + transactionBuilder.addOutput( + fixture.outputs[1], + Math.floor(sendAmount / 2) + ) + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) + let redeemScript: undefined + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[0] + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[1] + ) + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#Testnet", (): void => { + fixtures.scripts.p2pkh.manyToMany.testnet.forEach((fixture: any): void => { + it(`should create 2-to-2 P2PKH transaction on testnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") + const txHash: string = fixture.txHash + const originalAmount: number = fixture.amounts[0] + fixture.amounts[1] + transactionBuilder.addInput(txHash, 0) + transactionBuilder.addInput(txHash, 1) + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 2 }, + { P2PKH: 2 } + ) + const sendAmount: number = originalAmount - byteCount * 15 + transactionBuilder.addOutput( + fixture.outputs[0], + Math.floor(sendAmount / 2) + ) + transactionBuilder.addOutput( + fixture.outputs[1], + Math.floor(sendAmount / 2) + ) + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) + let redeemScript: undefined + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[0] + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[1] + ) + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#RegTest", (): void => { + fixtures.scripts.p2pkh.manyToMany.regtest.forEach((fixture: any): void => { + it(`should create 2-to-2 P2PKH transaction on regtest`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("regtest") + const txHash: string = fixture.txHash + const originalAmount: number = fixture.amounts[0] + fixture.amounts[1] + transactionBuilder.addInput(txHash, 0) + transactionBuilder.addInput(txHash, 1) + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 2 }, + { P2PKH: 2 } + ) + const sendAmount: number = originalAmount - byteCount * 15 + transactionBuilder.addOutput( + fixture.outputs[0], + Math.floor(sendAmount / 2) + ) + transactionBuilder.addOutput( + fixture.outputs[1], + Math.floor(sendAmount / 2) + ) + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) + let redeemScript: undefined + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[0] + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[1] + ) + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) + + describe("#fromMany", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2pkh.fromMany.mainnet.forEach((fixture: any): void => { + it(`should create 2-to-1 P2PKH transaction on mainnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const txHash: string = fixture.txHash + const originalAmount: number = fixture.amounts[0] + fixture.amounts[1] + transactionBuilder.addInput(txHash, 0) + transactionBuilder.addInput(txHash, 1) + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 2 }, + { P2PKH: 1 } + ) + const sendAmount: number = originalAmount - byteCount + transactionBuilder.addOutput(fixture.outputs[0], sendAmount) + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) + let redeemScript: undefined + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[0] + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[1] + ) + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#Testnet", (): void => { + fixtures.scripts.p2pkh.fromMany.testnet.forEach((fixture: any): void => { + it(`should create 2-to-1 P2PKH transaction on testnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") + const txHash: string = fixture.txHash + const originalAmount: number = fixture.amounts[0] + fixture.amounts[1] + transactionBuilder.addInput(txHash, 0) + transactionBuilder.addInput(txHash, 1) + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 2 }, + { P2PKH: 1 } + ) + const sendAmount: number = originalAmount - byteCount * 15 + transactionBuilder.addOutput(fixture.outputs[0], sendAmount) + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) + let redeemScript: undefined + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[0] + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[1] + ) + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#RegTest", (): void => { + fixtures.scripts.p2pkh.fromMany.regtest.forEach((fixture: any): void => { + it(`should create 2-to-1 P2PKH transaction on regtest`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("regtest") + const txHash: string = fixture.txHash + const originalAmount: number = fixture.amounts[0] + fixture.amounts[1] + transactionBuilder.addInput(txHash, 0) + transactionBuilder.addInput(txHash, 1) + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 2 }, + { P2PKH: 1 } + ) + const sendAmount: number = originalAmount - byteCount * 15 + transactionBuilder.addOutput(fixture.outputs[0], sendAmount) + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) + let redeemScript: undefined + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[0] + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amounts[1] + ) + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) + }) + + describe("#op_return", (): void => { + describe("#Mainnet", (): void => { + fixtures.nulldata.mainnet.forEach((fixture: any): void => { + it(`should create transaction w/ OP_RETURN output on mainnet`, (): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const txHash: string = fixture.txHash + const originalAmount: number = fixture.amount + transactionBuilder.addInput(txHash, 0) + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 5 } + ) + const sendAmount: number = originalAmount - byteCount + transactionBuilder.addOutput(fixture.output, sendAmount) + const data = fixture.data + let buf: Buffer = Buffer.from(data, "ascii") + const encoded: Buffer = bitbox.Script.encodeNullDataOutput(buf) + transactionBuilder.addOutput(encoded, 0) + const keyPair = bitbox.HDNode.toKeyPair(node) + let redeemScript: undefined + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amount + ) + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#Testnet", (): void => { + fixtures.nulldata.testnet.forEach((fixture: any): void => { + it(`should create transaction w/ OP_RETURN output on testnet`, (): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") + const txHash: string = fixture.txHash + const originalAmount: number = fixture.amount + transactionBuilder.addInput(txHash, 0) + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 5 } + ) + const sendAmount: number = originalAmount - byteCount + transactionBuilder.addOutput(fixture.output, sendAmount) + const data = fixture.data + let buf: Buffer = Buffer.from(data, "ascii") + const encoded: Buffer = bitbox.Script.encodeNullDataOutput(buf) + transactionBuilder.addOutput(encoded, 0) + const keyPair = bitbox.HDNode.toKeyPair(node) + let redeemScript: undefined + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amount + ) + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#RegTest", (): void => { + fixtures.nulldata.regtest.forEach((fixture: any): void => { + it(`should create transaction w/ OP_RETURN output on regtest`, (): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("regtest") + const txHash: string = fixture.txHash + const originalAmount: number = fixture.amount + transactionBuilder.addInput(txHash, 0) + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 5 } + ) + const sendAmount: number = originalAmount - byteCount + transactionBuilder.addOutput(fixture.output, sendAmount) + const data = fixture.data + let buf: Buffer = Buffer.from(data, "ascii") + const encoded: Buffer = bitbox.Script.encodeNullDataOutput(buf) + transactionBuilder.addOutput(encoded, 0) + const keyPair = bitbox.HDNode.toKeyPair(node) + let redeemScript: undefined + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amount + ) + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) + + describe("#P2MS", (): void => { + describe("#toOne", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2ms.toOne.mainnet.forEach((fixture: any): void => { + it(`should create 1-to-1 1-of-2 P2MS transaction on mainnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const node4: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const txid: string = fixture.txHash + const originalAmount: number = fixture.amount + const pubKey1: Buffer = bitbox.HDNode.toPublicKey(node1) + const pubKey2: Buffer = bitbox.HDNode.toPublicKey(node2) + const buf1: Buffer = bitbox.Script.encodeP2MSOutput(1, [ + pubKey1, + pubKey2 + ]) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + buf1 + ) + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 3 } + ) + const pubKey3: Buffer = bitbox.HDNode.toPublicKey(node3) + const pubKey4: Buffer = bitbox.HDNode.toPublicKey(node4) + const buf2: Buffer = bitbox.Script.encodeP2MSOutput(1, [ + pubKey3, + pubKey4 + ]) + const sendAmount: number = originalAmount - byteCount + transactionBuilder.addOutput(buf2, sendAmount) + let redeemScript: undefined + const keyPair = bitbox.HDNode.toKeyPair(node1) + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + // describe('#Testnet', () => { + // fixtures.scripts.p2ms.toOne.testnet.forEach((fixture) => { + // it(`should create 1-to-1 P2MS transaction on testnet`, () => { + // let hdnode = bitbox.HDNode.fromXPriv(fixture.xpriv, 'testnet'); + // let transactionBuilder = new bitbox.TransactionBuilder('testnet'); + // let keyPair = bitbox.HDNode.toKeyPair(hdnode); + // let txHash = fixture.txHash; + // // original amount of satoshis in vin + // let originalAmount = fixture.amount; + // transactionBuilder.addInput(txHash, fixture.vout); + // // get byte count to calculate fee. paying 1 sat/byte + // let byteCount = bitbox.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 1 }); + // // amount to send to receiver. It's the original amount - 1 sat/byte for tx size + // let sendAmount = originalAmount - (byteCount * 15); + // // add output w/ address and amount to send + // let redeemScript + // transactionBuilder.addOutput(fixture.outputs[0], sendAmount); + // transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); + // + // // build tx + // let tx = transactionBuilder.build(); + // // output rawhex + // let hex = tx.toHex(); + // assert.equal(hex, fixture.hex); + // }); + // }); + // }); + }) + + describe("#toMany", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2ms.toMany.mainnet.forEach((fixture: any): void => { + it(`should create 1-to-2 P2MS transaction on mainnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const node4: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) + const node5: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[4]) + const node6: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[5]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const txid: string = fixture.txHash + const originalAmount: number = fixture.amount + const pubKey1: Buffer = bitbox.HDNode.toPublicKey(node1) + const pubKey2: Buffer = bitbox.HDNode.toPublicKey(node2) + const buf1: Buffer = bitbox.Script.encodeP2MSOutput(1, [ + pubKey1, + pubKey2 + ]) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + buf1 + ) + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 3 } + ) + const sendAmount: number = originalAmount - byteCount + const pubKey3: Buffer = bitbox.HDNode.toPublicKey(node3) + const pubKey4: Buffer = bitbox.HDNode.toPublicKey(node4) + const buf2: Buffer = bitbox.Script.encodeP2MSOutput(1, [ + pubKey3, + pubKey4 + ]) + transactionBuilder.addOutput(buf2, Math.floor(sendAmount / 2)) + const pubKey5: Buffer = bitbox.HDNode.toPublicKey(node5) + const pubKey6: Buffer = bitbox.HDNode.toPublicKey(node6) + const buf3: Buffer = bitbox.Script.encodeP2MSOutput(1, [ + pubKey5, + pubKey6 + ]) + transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) + let redeemScript: undefined + const keyPair = bitbox.HDNode.toKeyPair(node1) + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + // describe('#Testnet', () => { + // fixtures.scripts.p2ms.toMany.testnet.forEach((fixture) => { + // // TODO pass in tesnet network config + // it(`should create 1-to-2 P2MS transaction on testnet`, () => { + // let hdnode = bitbox.HDNode.fromXPriv(fixture.xpriv); + // let transactionBuilder = new bitbox.TransactionBuilder('testnet'); + // let keyPair = bitbox.HDNode.toKeyPair(hdnode); + // let txHash = fixture.txHash; + // // original amount of satoshis in vin + // let originalAmount = fixture.amount; + // transactionBuilder.addInput(txHash, fixture.vout); + // // get byte count to calculate fee. paying 1 sat/byte + // let byteCount = bitbox.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 2 }); + // // amount to send to receiver. It's the original amount - 1 sat/byte for tx size + // let sendAmount = originalAmount - (byteCount * 15); + // // add output w/ address and amount to send + // transactionBuilder.addOutput(fixture.outputs[0], Math.floor(sendAmount / 2)); + // transactionBuilder.addOutput(fixture.outputs[1], Math.floor(sendAmount / 2)); + // let redeemScript + // transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); + // // build tx + // let tx = transactionBuilder.build(); + // // output rawhex + // let hex = tx.toHex(); + // assert.equal(hex, fixture.hex); + // }); + // }); + // }); + }) + + describe("#manyToMany", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2ms.manyToMany.mainnet.forEach((fixture: any): void => { + it(`should create 2-to-2 P2MS transaction on mainnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const node4: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) + const node5: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[4]) + const node6: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[5]) + const node7: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[6]) + const node8: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[7]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const txid: string = fixture.txHash + const originalAmount: number = fixture.amount + const pubKey1: Buffer = bitbox.HDNode.toPublicKey(node1) + const pubKey2: Buffer = bitbox.HDNode.toPublicKey(node2) + const buf1: Buffer = bitbox.Script.encodeP2MSOutput(1, [ + pubKey1, + pubKey2 + ]) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + buf1 + ) + const pubKey3: Buffer = bitbox.HDNode.toPublicKey(node3) + const pubKey4: Buffer = bitbox.HDNode.toPublicKey(node4) + const buf2: Buffer = bitbox.Script.encodeP2MSOutput(1, [ + pubKey3, + pubKey4 + ]) + transactionBuilder.addInput( + txid, + 1, + transactionBuilder.DEFAULT_SEQUENCE, + buf2 + ) + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 3 } + ) + const sendAmount: number = originalAmount - byteCount + const pubKey5: Buffer = bitbox.HDNode.toPublicKey(node5) + const pubKey6: Buffer = bitbox.HDNode.toPublicKey(node6) + const buf3: Buffer = bitbox.Script.encodeP2MSOutput(1, [ + pubKey5, + pubKey6 + ]) + transactionBuilder.addOutput(buf3, Math.floor(sendAmount / 2)) + const pubKey7: Buffer = bitbox.HDNode.toPublicKey(node7) + const pubKey8: Buffer = bitbox.HDNode.toPublicKey(node8) + const buf4: Buffer = bitbox.Script.encodeP2MSOutput(1, [ + pubKey7, + pubKey8 + ]) + transactionBuilder.addOutput(buf4, Math.floor(sendAmount / 2)) + let redeemScript: undefined + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node3) + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + // describe('#Testnet', () => { + // fixtures.scripts.p2ms.manyToMany.testnet.forEach((fixture) => { + // it(`should create 2-to-2 P2MS transaction on testnet`, () => { + // let node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]); + // let node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]); + // let transactionBuilder = new bitbox.TransactionBuilder('testnet'); + // let txHash = fixture.txHash; + // let originalAmount = fixture.amounts[0] + fixture.amounts[1]; + // transactionBuilder.addInput(txHash, 0); + // transactionBuilder.addInput(txHash, 1); + // let byteCount = bitbox.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 2 }); + // let sendAmount = originalAmount - (byteCount * 15); + // transactionBuilder.addOutput(fixture.outputs[0], Math.floor(sendAmount / 2)); + // transactionBuilder.addOutput(fixture.outputs[1], Math.floor(sendAmount / 2)); + // let keyPair1 = bitbox.HDNode.toKeyPair(node1); + // let keyPair2 = bitbox.HDNode.toKeyPair(node2); + // let redeemScript; + // transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); + // transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); + // let tx = transactionBuilder.build(); + // let hex = tx.toHex(); + // assert.equal(hex, fixture.hex); + // }); + // }); + // }); + }) + + describe("#fromMany", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2ms.fromMany.mainnet.forEach((fixture: any): void => { + it(`should create 2-to-1 P2MS transaction on mainnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const node4: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) + const node5: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[4]) + const node6: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[5]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const txid: string = fixture.txHash + const originalAmount: number = fixture.amount + const pubKey1: Buffer = bitbox.HDNode.toPublicKey(node1) + const pubKey2: Buffer = bitbox.HDNode.toPublicKey(node2) + const buf1: Buffer = bitbox.Script.encodeP2MSOutput(1, [ + pubKey1, + pubKey2 + ]) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + buf1 + ) + const pubKey3: Buffer = bitbox.HDNode.toPublicKey(node3) + const pubKey4: Buffer = bitbox.HDNode.toPublicKey(node4) + const buf2: Buffer = bitbox.Script.encodeP2MSOutput(1, [ + pubKey3, + pubKey4 + ]) + transactionBuilder.addInput( + txid, + 1, + transactionBuilder.DEFAULT_SEQUENCE, + buf2 + ) + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 3 } + ) + const sendAmount: number = originalAmount - byteCount + const pubKey5: Buffer = bitbox.HDNode.toPublicKey(node5) + const pubKey6: Buffer = bitbox.HDNode.toPublicKey(node6) + const buf3: Buffer = bitbox.Script.encodeP2MSOutput(1, [ + pubKey5, + pubKey6 + ]) + transactionBuilder.addOutput(buf3, sendAmount) + let redeemScript: undefined + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node3) + transactionBuilder.sign( + 0, + keyPair1, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + transactionBuilder.sign( + 1, + keyPair2, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + // describe('#Testnet', () => { + // fixtures.scripts.p2ms.fromMany.testnet.forEach((fixture) => { + // it(`should create 2-to-1 P2MS transaction on testnet`, () => { + // let node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]); + // let node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]); + // let transactionBuilder = new bitbox.TransactionBuilder('testnet'); + // let txHash = fixture.txHash; + // let originalAmount = fixture.amounts[0] + fixture.amounts[1]; + // transactionBuilder.addInput(txHash, 0); + // transactionBuilder.addInput(txHash, 1); + // let byteCount = bitbox.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 1 }); + // let sendAmount = originalAmount - (byteCount * 15); + // transactionBuilder.addOutput(fixture.outputs[0], sendAmount); + // let keyPair1 = bitbox.HDNode.toKeyPair(node1); + // let keyPair2 = bitbox.HDNode.toKeyPair(node2); + // let redeemScript; + // transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); + // transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); + // let tx = transactionBuilder.build(); + // let hex = tx.toHex(); + // assert.equal(hex, fixture.hex); + // }); + // }); + // }); + }) + }) + + describe("#P2SH", (): void => { + describe("#toOne", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2sh.toOne.mainnet.forEach((fixture: any): void => { + it(`should create 1-to-1 P2SH transaction on mainnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const txid: string = fixture.txHash + const originalAmount: number = fixture.amount + const identifier1: Buffer = bitbox.HDNode.toIdentifier(node1) + const buf1: any = bitbox.Script.encode([ + bitbox.Script.opcodes.OP_DUP, + bitbox.Script.opcodes.OP_HASH160, + identifier1, + bitbox.Script.opcodes.OP_EQUALVERIFY, + bitbox.Script.opcodes.OP_CHECKSIG + ]) + const scriptHash1: any = bitbox.Crypto.hash160(buf1) + const data1: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash1) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + data1 + ) + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 2 }, + { P2PKH: 1 } + ) + const sendAmount: number = originalAmount - byteCount + const identifier2 = bitbox.HDNode.toIdentifier(node2) + const buf2 = bitbox.Script.encode([ + bitbox.Script.opcodes.OP_DUP, + bitbox.Script.opcodes.OP_HASH160, + identifier2, + bitbox.Script.opcodes.OP_EQUALVERIFY, + bitbox.Script.opcodes.OP_CHECKSIG + ]) + + const scriptHash2 = bitbox.Crypto.hash160(buf2) + const data2: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash2) + transactionBuilder.addOutput(data2, sendAmount) + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + transactionBuilder.sign( + 0, + keyPair1, + buf1, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + // describe('#Testnet', () => { + // fixtures.scripts.p2sh.toOne.testnet.forEach((fixture) => { + // it(`should create 1-to-1 P2SH transaction on testnet`, () => { + // let hdnode = bitbox.HDNode.fromXPriv(fixture.xpriv, 'testnet'); + // let transactionBuilder = new bitbox.TransactionBuilder('testnet'); + // let keyPair = bitbox.HDNode.toKeyPair(hdnode); + // let txHash = fixture.txHash; + // // original amount of satoshis in vin + // let originalAmount = fixture.amount; + // transactionBuilder.addInput(txHash, fixture.vout); + // // get byte count to calculate fee. paying 1 sat/byte + // let byteCount = bitbox.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 1 }); + // // amount to send to receiver. It's the original amount - 1 sat/byte for tx size + // let sendAmount = originalAmount - (byteCount * 15); + // // add output w/ address and amount to send + // let redeemScript + // transactionBuilder.addOutput(fixture.outputs[0], sendAmount); + // transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); + // + // // build tx + // let tx = transactionBuilder.build(); + // // output rawhex + // let hex = tx.toHex(); + // assert.equal(hex, fixture.hex); + // }); + // }); + // }); + }) + + describe("#toMany", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2sh.toMany.mainnet.forEach((fixture: any): void => { + it(`should create 1-to-2 P2SH transaction on mainnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const txid: string = fixture.txHash + const originalAmount: number = fixture.amount + const identifier1: Buffer = bitbox.HDNode.toIdentifier(node1) + const buf1: any = bitbox.Script.encode([ + bitbox.Script.opcodes.OP_DUP, + bitbox.Script.opcodes.OP_HASH160, + identifier1, + bitbox.Script.opcodes.OP_EQUALVERIFY, + bitbox.Script.opcodes.OP_CHECKSIG + ]) + const scriptHash1: Buffer = bitbox.Crypto.hash160(buf1) + const data1: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash1) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + data1 + ) + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 2 } + ) + const sendAmount: number = originalAmount - byteCount + const identifier2: Buffer = bitbox.HDNode.toIdentifier(node2) + const buf2: Buffer = bitbox.Script.encode([ + bitbox.Script.opcodes.OP_DUP, + bitbox.Script.opcodes.OP_HASH160, + identifier2, + bitbox.Script.opcodes.OP_EQUALVERIFY, + bitbox.Script.opcodes.OP_CHECKSIG + ]) + const scriptHash2: Buffer = bitbox.Crypto.hash160(buf2) + const data2: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash2) + transactionBuilder.addOutput(data2, Math.floor(sendAmount / 2)) + const identifier3: Buffer = bitbox.HDNode.toIdentifier(node3) + const buf3: Buffer = bitbox.Script.encode([ + bitbox.Script.opcodes.OP_DUP, + bitbox.Script.opcodes.OP_HASH160, + identifier3, + bitbox.Script.opcodes.OP_EQUALVERIFY, + bitbox.Script.opcodes.OP_CHECKSIG + ]) + const scriptHash3: Buffer = bitbox.Crypto.hash160(buf3) + const data3: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash3) + transactionBuilder.addOutput(data3, Math.floor(sendAmount / 2)) + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + transactionBuilder.sign( + 0, + keyPair1, + buf1, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ) + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + // describe('#Testnet', () => { + // fixtures.scripts.p2sh.toMany.testnet.forEach((fixture) => { + // // TODO pass in tesnet network config + // it(`should create 1-to-2 P2SH transaction on testnet`, () => { + // let hdnode = bitbox.HDNode.fromXPriv(fixture.xpriv); + // let transactionBuilder = new bitbox.TransactionBuilder('testnet'); + // let keyPair = bitbox.HDNode.toKeyPair(hdnode); + // let txHash = fixture.txHash; + // // original amount of satoshis in vin + // let originalAmount = fixture.amount; + // transactionBuilder.addInput(txHash, fixture.vout); + // // get byte count to calculate fee. paying 1 sat/byte + // let byteCount = bitbox.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 2 }); + // // amount to send to receiver. It's the original amount - 1 sat/byte for tx size + // let sendAmount = originalAmount - (byteCount * 15); + // // add output w/ address and amount to send + // transactionBuilder.addOutput(fixture.outputs[0], Math.floor(sendAmount / 2)); + // transactionBuilder.addOutput(fixture.outputs[1], Math.floor(sendAmount / 2)); + // let redeemScript + // transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount); + // // build tx + // let tx = transactionBuilder.build(); + // // output rawhex + // let hex = tx.toHex(); + // assert.equal(hex, fixture.hex); + // }); + // }); + // }); + }) + + describe("#manyToMany", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2sh.manyToMany.mainnet.forEach((fixture: any): void => { + it(`should create 2-to-2 P2SH transaction on mainnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const node4: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[3]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const txid: string = fixture.txHash + const originalAmount: number = fixture.amount + const identifier1: Buffer = bitbox.HDNode.toIdentifier(node1) + const buf1: Buffer = bitbox.Script.encode([ + bitbox.Script.opcodes.OP_DUP, + bitbox.Script.opcodes.OP_HASH160, + identifier1, + bitbox.Script.opcodes.OP_EQUALVERIFY, + bitbox.Script.opcodes.OP_CHECKSIG + ]) + const scriptHash1: Buffer = bitbox.Crypto.hash160(buf1) + const data1: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash1) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + data1 + ) + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 5 }, + { P2PKH: 5 } + ) + const sendAmount: number = originalAmount - byteCount + const identifier2: Buffer = bitbox.HDNode.toIdentifier(node2) + const buf2: Buffer = bitbox.Script.encode([ + bitbox.Script.opcodes.OP_DUP, + bitbox.Script.opcodes.OP_HASH160, + identifier2, + bitbox.Script.opcodes.OP_EQUALVERIFY, + bitbox.Script.opcodes.OP_CHECKSIG + ]) + const scriptHash2: Buffer = bitbox.Crypto.hash160(buf2) + const data2: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash2) + transactionBuilder.addInput( + txid, + 1, + transactionBuilder.DEFAULT_SEQUENCE, + data2 + ) + const identifier3: Buffer = bitbox.HDNode.toIdentifier(node3) + const buf3: Buffer = bitbox.Script.encode([ + bitbox.Script.opcodes.OP_DUP, + bitbox.Script.opcodes.OP_HASH160, + identifier3, + bitbox.Script.opcodes.OP_EQUALVERIFY, + bitbox.Script.opcodes.OP_CHECKSIG + ]) + const scriptHash3: Buffer = bitbox.Crypto.hash160(buf3) + const data3: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash3) + transactionBuilder.addOutput(data3, Math.floor(sendAmount / 2)) + const identifier4: Buffer = bitbox.HDNode.toIdentifier(node4) + const buf4: Buffer = bitbox.Script.encode([ + bitbox.Script.opcodes.OP_DUP, + bitbox.Script.opcodes.OP_HASH160, + identifier4, + bitbox.Script.opcodes.OP_EQUALVERIFY, + bitbox.Script.opcodes.OP_CHECKSIG + ]) + const scriptHash4: Buffer = bitbox.Crypto.hash160(buf4) + const data4: Buffer = bitbox.Script.encodeP2SHOutput(scriptHash4) + transactionBuilder.addOutput(data4, Math.floor(sendAmount / 2)) + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) + transactionBuilder.sign( + 0, + keyPair1, + buf1, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + transactionBuilder.sign( + 1, + keyPair2, + buf2, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + // describe('#Testnet', () => { + // fixtures.scripts.p2sh.manyToMany.testnet.forEach((fixture) => { + // it(`should create 2-to-2 P2SH transaction on testnet`, () => { + // let node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]); + // let node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]); + // let transactionBuilder = new bitbox.TransactionBuilder('testnet'); + // let txHash = fixture.txHash; + // let originalAmount = fixture.amounts[0] + fixture.amounts[1]; + // transactionBuilder.addInput(txHash, 0); + // transactionBuilder.addInput(txHash, 1); + // let byteCount = bitbox.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 2 }); + // let sendAmount = originalAmount - (byteCount * 15); + // transactionBuilder.addOutput(fixture.outputs[0], Math.floor(sendAmount / 2)); + // transactionBuilder.addOutput(fixture.outputs[1], Math.floor(sendAmount / 2)); + // let keyPair1 = bitbox.HDNode.toKeyPair(node1); + // let keyPair2 = bitbox.HDNode.toKeyPair(node2); + // let redeemScript; + // transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); + // transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); + // let tx = transactionBuilder.build(); + // let hex = tx.toHex(); + // assert.equal(hex, fixture.hex); + // }); + // }); + // }); + }) + + describe("#fromMany", (): void => { + describe("#Mainnet", (): void => { + fixtures.scripts.p2sh.fromMany.mainnet.forEach((fixture: any): void => { + it(`should create 2-to-1 P2SH transaction on mainnet`, (): void => { + const node1: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[0]) + const node2: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[1]) + const node3: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xprivs[2]) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const txid: string = fixture.txHash + const originalAmount: number = fixture.amount + const identifier1: Buffer = bitbox.HDNode.toIdentifier(node1) + const buf1: Buffer = bitbox.Script.encode([ + bitbox.Script.opcodes.OP_DUP, + bitbox.Script.opcodes.OP_HASH160, + identifier1, + bitbox.Script.opcodes.OP_EQUALVERIFY, + bitbox.Script.opcodes.OP_CHECKSIG + ]) + const scriptHash1: Buffer = bitbox.Crypto.hash160(buf1) + const data1 = bitbox.Script.scriptHash.output.encode(scriptHash1) + transactionBuilder.addInput( + txid, + 0, + transactionBuilder.DEFAULT_SEQUENCE, + data1 + ) + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 3 }, + { P2PKH: 2 } + ) + const sendAmount: number = originalAmount - byteCount + const identifier2: Buffer = bitbox.HDNode.toIdentifier(node2) + const buf2: Buffer = bitbox.Script.encode([ + bitbox.Script.opcodes.OP_DUP, + bitbox.Script.opcodes.OP_HASH160, + identifier2, + bitbox.Script.opcodes.OP_EQUALVERIFY, + bitbox.Script.opcodes.OP_CHECKSIG + ]) + const scriptHash2: Buffer = bitbox.Crypto.hash160(buf2) + const data2 = bitbox.Script.scriptHash.output.encode(scriptHash2) + transactionBuilder.addInput( + txid, + 1, + transactionBuilder.DEFAULT_SEQUENCE, + data2 + ) + const identifier3: Buffer = bitbox.HDNode.toIdentifier(node3) + const buf3: Buffer = bitbox.Script.encode([ + bitbox.Script.opcodes.OP_DUP, + bitbox.Script.opcodes.OP_HASH160, + identifier3, + bitbox.Script.opcodes.OP_EQUALVERIFY, + bitbox.Script.opcodes.OP_CHECKSIG + ]) + const scriptHash3: Buffer = bitbox.Crypto.hash160(buf3) + const data3 = bitbox.Script.scriptHash.output.encode(scriptHash3) + transactionBuilder.addOutput(data3, sendAmount) + const keyPair1: bcl.ECPair = bitbox.HDNode.toKeyPair(node1) + const keyPair2: bcl.ECPair = bitbox.HDNode.toKeyPair(node2) + transactionBuilder.sign( + 0, + keyPair1, + buf1, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + transactionBuilder.sign( + 1, + keyPair2, + buf2, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount / 2 + ) + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + // describe('#Testnet', () => { + // fixtures.scripts.p2sh.fromMany.testnet.forEach((fixture) => { + // it(`should create 2-to-1 P2SH transaction on testnet`, () => { + // let node1 = bitbox.HDNode.fromXPriv(fixture.xprivs[0]); + // let node2 = bitbox.HDNode.fromXPriv(fixture.xprivs[1]); + // let transactionBuilder = new bitbox.TransactionBuilder('testnet'); + // let txHash = fixture.txHash; + // let originalAmount = fixture.amounts[0] + fixture.amounts[1]; + // transactionBuilder.addInput(txHash, 0); + // transactionBuilder.addInput(txHash, 1); + // let byteCount = bitbox.BitcoinCash.getByteCount({ P2PKH: 2 }, { P2PKH: 1 }); + // let sendAmount = originalAmount - (byteCount * 15); + // transactionBuilder.addOutput(fixture.outputs[0], sendAmount); + // let keyPair1 = bitbox.HDNode.toKeyPair(node1); + // let keyPair2 = bitbox.HDNode.toKeyPair(node2); + // let redeemScript; + // transactionBuilder.sign(0, keyPair1, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[0]); + // transactionBuilder.sign(1, keyPair2, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, fixture.amounts[1]); + // let tx = transactionBuilder.build(); + // let hex = tx.toHex(); + // assert.equal(hex, fixture.hex); + // }); + // }); + // }); + }) + }) + + describe("#op_return", (): void => { + describe("#Mainnet", (): void => { + fixtures.nulldata.mainnet.forEach((fixture: any): void => { + it(`should create transaction w/ OP_RETURN output on mainnet`, (): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const txHash: string = fixture.txHash + const originalAmount: number = fixture.amount + transactionBuilder.addInput(txHash, 0) + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 5 } + ) + const sendAmount: number = originalAmount - byteCount + transactionBuilder.addOutput(fixture.output, sendAmount) + const data = fixture.data + let buf: Buffer = Buffer.from(data, "ascii") + const encoded: Buffer = bitbox.Script.encodeNullDataOutput(buf) + transactionBuilder.addOutput(encoded, 0) + const keyPair: bcl.ECPair = bitbox.HDNode.toKeyPair(node) + let redeemScript: undefined + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amount + ) + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#Testnet", (): void => { + fixtures.nulldata.testnet.forEach((fixture: any): void => { + it(`should create transaction w/ OP_RETURN output on testnet`, (): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("testnet") + const txHash: string = fixture.txHash + const originalAmount: number = fixture.amount + transactionBuilder.addInput(txHash, 0) + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 5 } + ) + const sendAmount: number = originalAmount - byteCount + transactionBuilder.addOutput(fixture.output, sendAmount) + const data = fixture.data + let buf: Buffer = Buffer.from(data, "ascii") + const encoded: Buffer = bitbox.Script.encodeNullDataOutput(buf) + transactionBuilder.addOutput(encoded, 0) + const keyPair = bitbox.HDNode.toKeyPair(node) + let redeemScript: undefined + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amount + ) + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + + describe("#RegTest", (): void => { + fixtures.nulldata.regtest.forEach((fixture: any): void => { + it(`should create transaction w/ OP_RETURN output on regtest`, (): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder("regtest") + const txHash: string = fixture.txHash + const originalAmount: number = fixture.amount + transactionBuilder.addInput(txHash, 0) + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 5 } + ) + const sendAmount: number = originalAmount - byteCount + transactionBuilder.addOutput(fixture.output, sendAmount) + const data = fixture.data + let buf: Buffer = Buffer.from(data, "ascii") + const encoded: Buffer = bitbox.Script.encodeNullDataOutput(buf) + transactionBuilder.addOutput(encoded, 0) + const keyPair = bitbox.HDNode.toKeyPair(node) + let redeemScript: undefined + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amount + ) + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) + + describe("#bip66", (): void => { + fixtures.bip66.forEach((fixture: any): void => { + it(`should bip66 encode as ${fixture.DER}`, (): void => { + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const r: Buffer = Buffer.from(fixture.r, "hex") + const s: Buffer = Buffer.from(fixture.s, "hex") + const DER: Buffer = transactionBuilder.bip66.encode(r, s) + assert.equal(DER.toString("hex"), fixture.DER) + }) + }) + + fixtures.bip66.forEach((fixture: any): void => { + it(`should bip66 decode ${fixture.DER}`, (): void => { + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const buffer: Buffer = Buffer.from(fixture.DER, "hex") + const signature: any = transactionBuilder.bip66.decode(buffer) + assert.equal(signature.r.toString("hex"), fixture.r) + assert.equal(signature.s.toString("hex"), fixture.s) + }) + }) + + fixtures.bip66.forEach((fixture: any): void => { + it(`should bip66 check ${fixture.DER}`, (): void => { + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const buffer: Buffer = Buffer.from(fixture.DER, "hex") + assert.equal(transactionBuilder.bip66.check(buffer), true) + }) + }) + }) + + describe("#bip68", (): void => { + fixtures.bip68.encode.forEach((fixture: any): void => { + it(`should bip68 encode as ${fixture.result}`, (): void => { + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const obj: any = {} + obj[fixture.type] = fixture.value + const encode: any = transactionBuilder.bip68.encode(obj) + assert.equal(encode, fixture.result) + }) + }) + + fixtures.bip68.decode.forEach((fixture: any): void => { + it(`should bip68 decode ${fixture.result}`, (): void => { + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + const decode: any = transactionBuilder.bip68.decode(fixture.result) + assert.equal(Object.keys(decode)[0], fixture.type) + assert.deepEqual(decode[Object.keys(decode)[0]], fixture.value) + }) + }) + }) + + describe("#LockTime", (): void => { + describe("#Mainnet", (): void => { + fixtures.locktime.mainnet.forEach((fixture: any): void => { + it(`should create transaction with nLockTime on mainnet`, (): void => { + const node: bcl.HDNode = bitbox.HDNode.fromXPriv(fixture.xpriv) + const transactionBuilder: TransactionBuilder = new bitbox.TransactionBuilder() + + const txHash: string = fixture.txHash + const originalAmount: number = fixture.amount + transactionBuilder.addInput(txHash, 0, 1) + const byteCount: number = bitbox.BitcoinCash.getByteCount( + { P2PKH: 1 }, + { P2PKH: 1 } + ) + const sendAmount: number = originalAmount - byteCount + transactionBuilder.addOutput(fixture.output, sendAmount) + const lockTime = fixture.lockTime + transactionBuilder.setLockTime(lockTime) + const keyPair = bitbox.HDNode.toKeyPair(node) + let redeemScript: undefined + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + fixture.amount + ) + const tx: any = transactionBuilder.build() + const hex: string = tx.toHex() + assert.equal(hex, fixture.hex) + }) + }) + }) + }) +}) diff --git a/test/unit/Util.ts b/test/unit/Util.ts new file mode 100644 index 00000000..fd2756a0 --- /dev/null +++ b/test/unit/Util.ts @@ -0,0 +1,120 @@ +// imports +import * as chai from "chai" +import { BITBOX } from "../../lib/BITBOX" +import { Util } from "../../lib/Util" +import { resturl } from "../../lib/BITBOX" +import * as util from "util" +import { AddressValidateResult } from "bitcoin-com-rest"; + +// conts +const bitbox: BITBOX = new BITBOX() +const assert: Chai.AssertStatic = chai.assert + +util.inspect.defaultOptions = { + showHidden: true, + colors: true, + depth: 3 +} + +describe("#Util", (): void => { + describe("#UtilConstructor", (): void => { + it("should create instance of Util", (): void => { + const util: Util = new Util() + assert.equal(util instanceof Util, true) + }) + + it("should have a restURL property", (): void => { + const util: Util = new Util() + assert.equal(util.restURL, resturl) + }) + }) + + describe(`#validateAddress`, (): void => { + it(`should return false for testnet addr on mainnet`, async () => { + const address: string = `bchtest:qqqk4y6lsl5da64sg5qc3xezmplyu5kmpyz2ysaa5y` + + const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) + + assert.hasAllKeys(result, ["isvalid"]) + if (!Array.isArray(result)) { + assert.equal(result.isvalid, false) + } + }) + + it(`should return false for bad address`, async () => { + const address: string = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peu` + const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) + + assert.hasAllKeys(result, ["isvalid"]) + if (!Array.isArray(result)) { + assert.equal(result.isvalid, false) + } + }) + + it(`should validate valid address`, async () => { + const address: string = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` + const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) + + assert.hasAllKeys(result, [ + "isvalid", + "address", + "scriptPubKey", + "ismine", + "iswatchonly", + "isscript" + ]) + if (!Array.isArray(result)) { + assert.equal(result.isvalid, true) + } + }) + + it(`should validate an array of addresses`, async () => { + const address: string[] = [ + `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z`, + `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` + ] + + const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) + + assert.isArray(result) + if (Array.isArray(result)) { + assert.hasAllKeys(result[0], [ + "isvalid", + "address", + "scriptPubKey", + "ismine", + "iswatchonly", + "isscript" + ]) + } + }) + + it(`should throw an error for improper single input`, async () => { + try { + const address: any = 15432 + + await bitbox.Util.validateAddress(address) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.include( + err.message, + `Input must be a string or array of strings.` + ) + } + }) + + it(`should throw error on array size rate limit`, async () => { + try { + const dataMock: string = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` + const data: string[] = [] + for (let i: number = 0; i < 25; i++) data.push(dataMock) + + const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(data) + assert.equal(true, false, "Unexpected result!") + } catch (err) { + assert.hasAnyKeys(err, ["error"]) + assert.include(err.error, "Array too large") + } + }) + }) +}) From 53ed761f0f40f5cfb1209b9242ca1d79186bf837 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 11 Jun 2019 10:24:36 -0700 Subject: [PATCH 425/480] Force adding mocks directory --- test/unit/mocks/address-mock.js | 165 ++++++++++++++++++++++++ test/unit/mocks/block-mock.js | 29 +++++ test/unit/mocks/blockchain-mock.js | 35 +++++ test/unit/mocks/cashaccounts-mock.js | 77 +++++++++++ test/unit/mocks/rawtransactions-mock.js | 118 +++++++++++++++++ 5 files changed, 424 insertions(+) create mode 100644 test/unit/mocks/address-mock.js create mode 100644 test/unit/mocks/block-mock.js create mode 100644 test/unit/mocks/blockchain-mock.js create mode 100644 test/unit/mocks/cashaccounts-mock.js create mode 100644 test/unit/mocks/rawtransactions-mock.js diff --git a/test/unit/mocks/address-mock.js b/test/unit/mocks/address-mock.js new file mode 100644 index 00000000..146fe456 --- /dev/null +++ b/test/unit/mocks/address-mock.js @@ -0,0 +1,165 @@ +/* + Mock data used for unit testing. +*/ + +module.exports = { + details: { + legacyAddress: "3CnzuFFbtgVyHNiDH8BknGo3PQ3dpdThgJ", + cashAddress: "bitcoincash:ppuukp49np467kyzxl0fkla34rmgcddhvc33ce2d6l", + balance: 300.0828874, + balanceSat: 30008288740, + totalReceived: 12945.45174649, + totalReceivedSat: 1294545174649, + totalSent: 12645.36885909, + totalSentSat: 1264536885909, + unconfirmedBalance: 0, + unconfirmedBalanceSat: 0, + unconfirmedTxApperances: 0, + txApperances: 1042, + transactions: [ + "b29425a876f62e114508e67e66b5eb1ab0d320d7c9a57fb0ece086a36e2b7309" + ], + currentPage: 0, + pagesTotal: 1, + slpAddress: "simpleledger:qrdka2205f4hyukutc2g0s6lykperc8nsuc8pkcp7h" + }, + + // An example of address with multiple utxos. + utxos1: { + utxos: [ + { + txid: + "27ec8512c1a9ee9e9ae9b98eb60375f1d2bd60e2e76a1eff5a45afdbc517cf9c", + vout: 0, + amount: 0.001, + satoshis: 100000, + height: 560430, + confirmations: 25161 + }, + { + txid: + "6e1ae1bf7db6de799ec1c05ab2816ac65549bd80141567af088e6f291385b07d", + vout: 0, + amount: 0.0013, + satoshis: 130000, + height: 560039, + confirmations: 25552 + } + ], + legacyAddress: "1M1FYu4zuVaxRPWLZG5CnP8qQrZaqu6c2L", + cashAddress: "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + slpAddress: "simpleledger:qrdka2205f4hyukutc2g0s6lykperc8nsuc8pkcp7h", + scriptPubKey: "76a914db6ea94fa26b7272dc5e1487c35f258391e0f38788ac" + }, + + // An example of an address with no utxos. + utxos2: { + utxos: [], + legacyAddress: "19LXyLnux1tbTdHnMuYAgDZ81ZQDWEi12g", + cashAddress: "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v", + slpAddress: "simpleledger:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4q39c44a2j", + scriptPubKey: "" + }, + + // Example of an address with an unconfirmed UTXO + unconfirmed1: { + utxos: [ + { + txid: + "3904ffe6f8fba4ceda5e887130f60fcb18bdc7dcee10392a57f89475c5c108f1", + vout: 0, + amount: 0.03608203, + satoshis: 3608203, + confirmations: 0, + ts: 1559670801 + } + ], + legacyAddress: "1AyWs8U4HUnTLmxxFiGoJbsXauRsvBrcKW", + cashAddress: "bitcoincash:qpkkjkhe29mqhqmu3evtq3dsnruuzl3rku6usknlh5", + slpAddress: "simpleledger:qpkkjkhe29mqhqmu3evtq3dsnruuzl3rkuk8mdxlf2", + scriptPubKey: "76a9146d695af951760b837c8e58b045b098f9c17e23b788ac" + }, + + // Example of an address without any unconfirmed utxos. + unconfirmed2: { + utxos: [], + legacyAddress: "1M1FYu4zuVaxRPWLZG5CnP8qQrZaqu6c2L", + cashAddress: "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + slpAddress: "simpleledger:qrdka2205f4hyukutc2g0s6lykperc8nsuc8pkcp7h", + scriptPubKey: "76a914db6ea94fa26b7272dc5e1487c35f258391e0f38788ac" + }, + + transactions: { + pagesTotal: 1, + txs: [ + { + txid: + "ec7bc8349386e3e1939bbdc4f8092fdbdd6a380734e68486b558cd594c451d5b", + version: 2, + locktime: 0, + vin: [ + { + txid: + "4f1fc57c33659628938db740449bf92fb75799e1d5750a4aeef80eb52d6df1e0", + vout: 0, + sequence: 4294967295, + n: 0, + scriptSig: { + hex: + "483045022100a3662a19ae384a1ceddea57765e425e61b04823e976d574da3911ac6b55d7f9b02200e571d985bce987675a2d58587a346fa40c39f4df13dc88548a92c52d5b24422412103f953f7630acc15bd3f5078c698f3af777286ae955b57e4857c158f75d87adb5f", + asm: + "3045022100a3662a19ae384a1ceddea57765e425e61b04823e976d574da3911ac6b55d7f9b02200e571d985bce987675a2d58587a346fa40c39f4df13dc88548a92c52d5b24422[ALL|FORKID] 03f953f7630acc15bd3f5078c698f3af777286ae955b57e4857c158f75d87adb5f" + }, + addr: "17HPz8RQ4XM6mjre6aspvqyj1j648CZidM", + valueSat: 1111, + value: 0.00001111, + doubleSpentTxID: null + }, + { + txid: + "126d62c299e7e14c66fe0b485d13082c23641f003690462046bc24ad2d1180c1", + vout: 0, + sequence: 4294967295, + n: 1, + scriptSig: { + hex: + "47304402203e3f923207111ff9bbd2fb5ab1a49a9145ad809ee0cad0e0ddaed64bfe38dc16022012ee288fb413bd500c63f8bb95e46b6b57d34762decd46b7188478a1c398eeda412103f953f7630acc15bd3f5078c698f3af777286ae955b57e4857c158f75d87adb5f", + asm: + "304402203e3f923207111ff9bbd2fb5ab1a49a9145ad809ee0cad0e0ddaed64bfe38dc16022012ee288fb413bd500c63f8bb95e46b6b57d34762decd46b7188478a1c398eeda[ALL|FORKID] 03f953f7630acc15bd3f5078c698f3af777286ae955b57e4857c158f75d87adb5f" + }, + addr: "17HPz8RQ4XM6mjre6aspvqyj1j648CZidM", + valueSat: 1000, + value: 0.00001, + doubleSpentTxID: null + } + ], + vout: [ + { + value: "0.00001736", + n: 0, + scriptPubKey: { + hex: "76a914d96ac75ca8df9729d278da50ccd7355c5785444e88ac", + asm: + "OP_DUP OP_HASH160 d96ac75ca8df9729d278da50ccd7355c5785444e OP_EQUALVERIFY OP_CHECKSIG", + addresses: ["1LpbYkEM5cryfhs58tH8c93p4SGzit7UrP"], + type: "pubkeyhash" + }, + spentTxId: null, + spentIndex: null, + spentHeight: null + } + ], + blockheight: -1, + confirmations: 0, + time: 1559673337, + valueOut: 0.00001736, + size: 339, + valueIn: 0.00002111, + fees: 0.00000375 + } + ], + legacyAddress: "1LpbYkEM5cryfhs58tH8c93p4SGzit7UrP", + cashAddress: "bitcoincash:qrvk436u4r0ew2wj0rd9pnxhx4w90p2yfc29ta0d2n", + currentPage: 0 + } +} diff --git a/test/unit/mocks/block-mock.js b/test/unit/mocks/block-mock.js new file mode 100644 index 00000000..844140f6 --- /dev/null +++ b/test/unit/mocks/block-mock.js @@ -0,0 +1,29 @@ +/* + Mock data used for unit testing. +*/ + +module.exports = { + details: { + hash: "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", + size: 216, + height: 507, + version: 1, + merkleroot: + "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8", + tx: ["a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8"], + time: 1231973656, + nonce: 330467862, + bits: "1d00ffff", + difficulty: 1, + chainwork: + "000000000000000000000000000000000000000000000000000001fc01fc01fc", + confirmations: 585104, + previousblockhash: + "00000000a99525c043fd7e323414b60add43c254c44860094048f9c01e9a5fdd", + nextblockhash: + "000000000d550f4161f2702165fdd782ec72ff9c541f864ebb8256b662b7e51a", + reward: 50, + isMainChain: true, + poolInfo: {} + } +} diff --git a/test/unit/mocks/blockchain-mock.js b/test/unit/mocks/blockchain-mock.js new file mode 100644 index 00000000..1e73c0b4 --- /dev/null +++ b/test/unit/mocks/blockchain-mock.js @@ -0,0 +1,35 @@ +/* + Mock data used for unit testing. +*/ + +module.exports = { + bestBlockHash: + "0000000000000000008e1f65f875703872544aa888c7ca6587f055f8f5fbd4bf", + + blockHeader: { + hash: "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", + confirmations: 85727, + height: 500000, + version: 536870912, + versionHex: "20000000", + merkleroot: + "4af279645e1b337e655ae3286fc2ca09f58eb01efa6ab27adedd1e9e6ec19091", + time: 1509343584, + mediantime: 1509336533, + nonce: 3604508752, + bits: "1809b91a", + difficulty: 113081236211.4533, + chainwork: + "0000000000000000000000000000000000000000007ae48aca46e3b449ad9714", + previousblockhash: + "0000000000000000043831d6ebb013716f0580287ee5e5687e27d0ed72e6e523", + nextblockhash: + "00000000000000000568f0a96bf4348847bc84e455cbfec389f27311037a20f3" + }, + + txOutProof: + "0000002086a4a3161f9ba2174883ec0b93acceac3b2f37b36ed1f90000000000000000009cb02406d1094ecf3e0b4c0ca7c585125e721147c39daf6b48c90b512741e13a12333e5cb38705180f441d8c7100000008fee9b60f1edb57e5712839186277ed39e0a004a32be9096ee47472efde8eae62f789f9d7a9f59d0ea7093dea1e0c65ff0b953f1d8cf3d47f92e732ca0295f603c272d5f4a63509f7a887f2549d78af7444aa0ecbb4f66d9cbe13bc6a89f59e05a199df8325d490818ffefe6b6321d32d7496a68580459836c0183f89082fc1b491cc91b23ecdcaa4c347bf599a62904d61f1c15b400ebbd5c90149010c139d9c1e31b774b796977393a238080ab477e1d240d0c4f155d36f519668f49bae6bd8cd5b8e40522edf76faa09cca6188d83ff13af6967cc6a569d1a5e9aeb1fdb7f531ddd2d0cbb81879741d5f38166ac1932136264366a4065cc96a42e41f96294f02df01", + + verifiedProof: + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" +} diff --git a/test/unit/mocks/cashaccounts-mock.js b/test/unit/mocks/cashaccounts-mock.js new file mode 100644 index 00000000..f1be9512 --- /dev/null +++ b/test/unit/mocks/cashaccounts-mock.js @@ -0,0 +1,77 @@ +/* + Mock data used for unit testing. +*/ + +module.exports = { + lookup: { + identifier: "cgcardona#122;", + information: { + emoji: "🍞", + name: "cgcardona", + number: 122, + collision: { + hash: "6383276713", + count: 0, + length: 0 + }, + payment: [ + { + type: "Key Hash", + address: "bitcoincash:qrhncn6hgkhljqg4fuq4px5qg74sjz9fqqj64s9la9" + } + ] + } + }, + check: { + identifier: "cgcardona#122", + block: 563742, + results: [ + { + transaction: + "0100000001A8421264294082C08C0611E162BD49999443EF577C57923BD052F7202B09408E010000006A473044022039F4DD9AD6BC2C4E799D135BB68B5E05E71F83731EFC63260C7FB16F63BB842802203DEA9E82E97D28ADC9A9567E16762CF3663C24CE6A42AEDDC1E273E50B8CA9C941210202435C144A77C6ED76C3A74EE6006A9255B449F1B2F09FA2668027FEC106CFA1FFFFFFFF020000000000000000266A0401010101096367636172646F6E611501EF3C4F5745AFF901154F01509A8047AB0908A9008CD51100000000001976A914919908484336464C2A9938D24149A4177606340F88AC00000000", + inclusionProof: + "0000C020C98F109DA027EB72472AC903F6E2BFA993D88724734B2C01000000000000000019213AEE113214AF03EEEE303F733708AD79F259A148F4A17C496302E1D093DF7D9D2E5C4CE10418F2AE48C41F000000067AA86CA831AB260AF59E0ED93305939D9A300BD66076EB18D155143E992950C33A46C140D7202C577D6C25DCD8F315D304285D8BD890C41925F00CC256C22CC69E1410317FD69D5A58F762EE26B469DC1909F2D0DE5E471B0AC09C686C41664585DF32ABA0EEAF50B6AB66010206DE24A5C576CBC331EF153507E9E20D1C18506E24DBEDB0A0B66705E10376CD19ADB4A605098058ACB805D24456CC004CCA78ABA3969F47284773B7809C81B93E2CCCC280218272164AE5D90245A629F6801802EB00" + } + ] + }, + reverseLookup: { + results: [ + { + accountEmoji: "☯", + nameText: "Jonathan", + accountNumber: 100, + accountHash: "5876958390", + accountCollisionLength: 0, + payloadType: 1, + payloadAddress: "bitcoincash:qr4aadjrpu73d2wxwkxkcrt6gqxgu6a7usxfm96fst" + }, + { + accountEmoji: "🍭", + nameText: "ConfirmationTest", + accountNumber: 113, + accountHash: "4640561912", + accountCollisionLength: 0, + payloadType: 1, + payloadAddress: "bitcoincash:qr4aadjrpu73d2wxwkxkcrt6gqxgu6a7usxfm96fst" + }, + { + accountEmoji: "🌽", + nameText: "Bob", + accountNumber: 4035, + accountHash: "7443382842", + accountCollisionLength: 0, + payloadType: 1, + payloadAddress: "bitcoincash:qr4aadjrpu73d2wxwkxkcrt6gqxgu6a7usxfm96fst" + }, + { + accountEmoji: "🎀", + nameText: "qr4aadjrpu73d2wxwkxkcrt6gqxgu6a7usxfm96fst", + accountNumber: 7084, + accountHash: "4319915751", + accountCollisionLength: 0, + payloadType: 1, + payloadAddress: "bitcoincash:qr4aadjrpu73d2wxwkxkcrt6gqxgu6a7usxfm96fst" + } + ] + } +} diff --git a/test/unit/mocks/rawtransactions-mock.js b/test/unit/mocks/rawtransactions-mock.js new file mode 100644 index 00000000..a8578715 --- /dev/null +++ b/test/unit/mocks/rawtransactions-mock.js @@ -0,0 +1,118 @@ +/* + Mock data used for unit testing. +*/ + +module.exports = { + decodedTx: { + txid: "a332237d82a2543af1b0e1ae3c8cea1610c290ebcaf084a7e9894a61de0be988", + hash: "a332237d82a2543af1b0e1ae3c8cea1610c290ebcaf084a7e9894a61de0be988", + version: 2, + size: 226, + locktime: 0, + vin: [ + { + txid: + "21cced645eab150585ed7ca7c96edebab5793cc0a3b3b286c42fd7d6d798b5b9", + vout: 1, + scriptSig: { + asm: + "3045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd41390[ALL|FORKID] 0360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413d", + hex: + "483045022100a7b1b08956abb8d6f322aa709d8583c8ea492ba0585f1a6f4f9983520af74a5a0220411aee4a9a54effab617b0508c504c31681b15f9b187179b4874257badd4139041210360cfc66fdacb650bc4c83b4e351805181ee696b7d5ab4667c57b2786f51c413d" + }, + sequence: 4294967295 + } + ], + vout: [ + { + value: 0.0001, + n: 0, + scriptPubKey: { + asm: + "OP_DUP OP_HASH160 eb4b180def88e3f5625b2d8ae2c098ff7d85f664 OP_EQUALVERIFY OP_CHECKSIG", + hex: "76a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac", + reqSigs: 1, + type: "pubkeyhash", + addresses: ["bitcoincash:qr45kxqda7yw8atztvkc4ckqnrlhmp0kvsan3xnznu"] + } + }, + { + value: 0.09989752, + n: 1, + scriptPubKey: { + asm: + "OP_DUP OP_HASH160 eb4b180def88e3f5625b2d8ae2c098ff7d85f664 OP_EQUALVERIFY OP_CHECKSIG", + hex: "76a914eb4b180def88e3f5625b2d8ae2c098ff7d85f66488ac", + reqSigs: 1, + type: "pubkeyhash", + addresses: ["bitcoincash:qr45kxqda7yw8atztvkc4ckqnrlhmp0kvsan3xnznu"] + } + } + ] + }, + + rawTx: + "010000000186db5c732438733e305e2e6fb6f15cab898e61202e3d8708c8cf9db90d20a862000000006a47304402202578ad648a8bab3065295155a07337d9d01c165f506e20faeaf582a9feca188602207aac7cab6e6ff9c63ff1b95543f1f2f0b866a2494d98b1bf58055094c0989e80412102b84cc40b16cf6f76ac47fff353a301f8394d9a8f0199c56269897ae3e11559eeffffffff029aa7ce06000000001976a914270f290bf8f4eba093063330b9a9e8202b66217b88acb06b3c00000000001976a9148b55a3985e74ea4137f0f1749439f161b52b861c88ac00000000", + + decodedTx: { + txid: "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", + hash: "23213453b4642a73b4fc30d3112d72549ca153a8707255b14373b59e43558de1", + version: 1, + size: 225, + locktime: 0, + vin: [ + { + txid: + "62a8200db99dcfc808873d2e20618e89ab5cf1b66f2e5e303e733824735cdb86", + vout: 0, + scriptSig: { + asm: + "304402202578ad648a8bab3065295155a07337d9d01c165f506e20faeaf582a9feca188602207aac7cab6e6ff9c63ff1b95543f1f2f0b866a2494d98b1bf58055094c0989e80[ALL|FORKID] 02b84cc40b16cf6f76ac47fff353a301f8394d9a8f0199c56269897ae3e11559ee", + hex: + "47304402202578ad648a8bab3065295155a07337d9d01c165f506e20faeaf582a9feca188602207aac7cab6e6ff9c63ff1b95543f1f2f0b866a2494d98b1bf58055094c0989e80412102b84cc40b16cf6f76ac47fff353a301f8394d9a8f0199c56269897ae3e11559ee" + }, + sequence: 4294967295 + } + ], + vout: [ + { + value: 1.14206618, + n: 0, + scriptPubKey: { + asm: + "OP_DUP OP_HASH160 270f290bf8f4eba093063330b9a9e8202b66217b OP_EQUALVERIFY OP_CHECKSIG", + hex: "76a914270f290bf8f4eba093063330b9a9e8202b66217b88ac", + reqSigs: 1, + type: "pubkeyhash", + addresses: ["bitcoincash:qqns72gtlr6whgynqcenpwdfaqszke3p0vntl8lvhz"] + } + }, + { + value: 0.03959728, + n: 1, + scriptPubKey: { + asm: + "OP_DUP OP_HASH160 8b55a3985e74ea4137f0f1749439f161b52b861c OP_EQUALVERIFY OP_CHECKSIG", + hex: "76a9148b55a3985e74ea4137f0f1749439f161b52b861c88ac", + reqSigs: 1, + type: "pubkeyhash", + addresses: ["bitcoincash:qz94tgucte6w5sfh7rchf9pe79sm22uxrsn6dh8smf"] + } + } + ], + hex: + "010000000186db5c732438733e305e2e6fb6f15cab898e61202e3d8708c8cf9db90d20a862000000006a47304402202578ad648a8bab3065295155a07337d9d01c165f506e20faeaf582a9feca188602207aac7cab6e6ff9c63ff1b95543f1f2f0b866a2494d98b1bf58055094c0989e80412102b84cc40b16cf6f76ac47fff353a301f8394d9a8f0199c56269897ae3e11559eeffffffff029aa7ce06000000001976a914270f290bf8f4eba093063330b9a9e8202b66217b88acb06b3c00000000001976a9148b55a3985e74ea4137f0f1749439f161b52b861c88ac00000000", + blockhash: + "000000000000000003a09a7d68a0d62fd0ab51c368372e46bac84277e2df47e2", + confirmations: 20168, + time: 1547752564, + blocktime: 1547752564 + }, + + decodedScript: { + asm: + "30450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed59201 02e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16", + type: "nonstandard", + p2sh: "bitcoincash:pqwndulzwft8dlmqrteqyc9hf823xr3lcc7ypt74ts" + } +} From 5412cfefe0b4f9b1e2344bb98531e8e9e3044ac5 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 11 Jun 2019 14:04:22 -0700 Subject: [PATCH 426/480] Refactored unit tests for Transaction lib --- lib/Transaction.ts | 11 ++++---- test/unit/Transaction.ts | 56 ++++++++++++++++++++++++++-------------- 2 files changed, 41 insertions(+), 26 deletions(-) diff --git a/lib/Transaction.ts b/lib/Transaction.ts index 6d641715..f8019e13 100644 --- a/lib/Transaction.ts +++ b/lib/Transaction.ts @@ -21,14 +21,13 @@ export class Transaction { // Array of addresses } else if (Array.isArray(txid)) { - const options: AxiosRequestConfig = { - method: "POST", - url: `${this.restURL}transaction/details`, - data: { + // Dev note: must use axios.post for unit test stubbing. + const response: AxiosResponse = await axios.post( + `${this.restURL}transaction/details`, + { txids: txid } - } - const response: AxiosResponse = await axios(options) + ) return response.data } diff --git a/test/unit/Transaction.ts b/test/unit/Transaction.ts index a1068d37..c497bd5b 100644 --- a/test/unit/Transaction.ts +++ b/test/unit/Transaction.ts @@ -3,13 +3,20 @@ import * as chai from "chai" import { BITBOX } from "../../lib/BITBOX" import { Transaction } from "../../lib/Transaction" import { resturl } from "../../lib/BITBOX" -import { TxnDetailsResult } from "bitcoin-com-rest"; +import { TxnDetailsResult } from "bitcoin-com-rest" +import axios from "axios" +import * as sinon from "sinon" // consts const bitbox: BITBOX = new BITBOX() const assert: Chai.AssertStatic = chai.assert +const mockData = require("./mocks/transactions-mock") describe("#Transaction", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + describe("#TransactionConstructor", (): void => { it("should create instance of Transaction", (): void => { const transaction: Transaction = new Transaction() @@ -23,10 +30,19 @@ describe("#Transaction", (): void => { }) describe(`#details`, (): void => { - it(`should GET details for a given txid`, async () => { + it(`should GET details for a given txid`, async (): Promise => { + // Mock the call to rest to prevent live network calls. + const resolved = new Promise(r => r({ data: mockData.details })) + sandbox.stub(axios, "get").returns(resolved) + const txid: string = "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" - const result: TxnDetailsResult | TxnDetailsResult[] = await bitbox.Transaction.details(txid) + + const result: + | TxnDetailsResult + | TxnDetailsResult[] = await bitbox.Transaction.details(txid) + // console.log(`result: ${JSON.stringify(result, null, 2)}`) + assert.hasAllKeys(result, [ "txid", "version", @@ -45,39 +61,39 @@ describe("#Transaction", (): void => { }) it(`should GET details for an array of txids`, async () => { + // Mock the call to rest to prevent live network calls. + const testData = [mockData.details, mockData.details] + const resolved = new Promise(r => r({ data: testData })) + sandbox.stub(axios, "post").returns(resolved) + const txids: string[] = [ "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33", "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" ] - const result: TxnDetailsResult | TxnDetailsResult[] = await bitbox.Transaction.details(txids) + const result: + | TxnDetailsResult + | TxnDetailsResult[] = await bitbox.Transaction.details(txids) assert.isArray(result) }) - it(`should throw an error for improper single input`, async () => { + it(`should pass error from server to user`, async (): Promise => { try { + // Mock out data for unit test, to prevent live network call. + sandbox + .stub(axios, "get") + .throws("error", "Input txid must be a string or array of strings.") + const txid: any = 12345 + await bitbox.Transaction.details(txid) assert.equal(true, false, "Unexpected result!") } catch (err) { + //console.log(`err: ${util.inspect(err)}`) assert.include( err.message, - `Input txid must be a string or array of strings` + `Input txid must be a string or array of strings.` ) } }) - - it(`should throw error on array size rate limit`, async () => { - try { - const dataMock: string = - "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33" - const data: string[] = [] - for (let i: number = 0; i < 25; i++) data.push(dataMock) - await bitbox.Transaction.details(data) - assert.equal(false, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) }) }) From 9e9550a64a8f7c021b925591ea5f75e64bb49188 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 11 Jun 2019 14:04:37 -0700 Subject: [PATCH 427/480] Adding transaction mock lib --- test/unit/mocks/transactions-mock.js | 45 ++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 test/unit/mocks/transactions-mock.js diff --git a/test/unit/mocks/transactions-mock.js b/test/unit/mocks/transactions-mock.js new file mode 100644 index 00000000..46695e5f --- /dev/null +++ b/test/unit/mocks/transactions-mock.js @@ -0,0 +1,45 @@ +/* + Mock data used for unit testing. +*/ + +module.exports = { + details: { + txid: "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33", + version: 1, + locktime: 0, + vin: [ + { + coinbase: "04ffff001d02fd04", + sequence: 4294967295, + n: 0 + } + ], + vout: [ + { + value: "50.00000000", + n: 0, + scriptPubKey: { + hex: + "4104f5eeb2b10c944c6b9fbcfff94c35bdeecd93df977882babc7f3a2cf7f5c81d3b09a68db7f0e04f21de5d4230e75e6dbe7ad16eefe0d4325a62067dc6f369446aac", + asm: + "04f5eeb2b10c944c6b9fbcfff94c35bdeecd93df977882babc7f3a2cf7f5c81d3b09a68db7f0e04f21de5d4230e75e6dbe7ad16eefe0d4325a62067dc6f369446a OP_CHECKSIG", + addresses: ["1BW18n7MfpU35q4MTBSk8pse3XzQF8XvzT"], + type: "pubkeyhash", + cashAddrs: ["bitcoincash:qpej6mkrwca4tvy2snq4crhrf88v4ljspysx0ueetk"] + }, + spentTxId: null, + spentIndex: null, + spentHeight: null + } + ], + blockhash: + "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09", + blockheight: 1000, + confirmations: 585610, + time: 1232346882, + blocktime: 1232346882, + isCoinBase: true, + valueOut: 50, + size: 135 + } +} From dce8ee497e2cee1c7945651983f2781b28e949ac Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 11 Jun 2019 14:22:10 -0700 Subject: [PATCH 428/480] refactored util lib and unit tests with mocks --- lib/Util.ts | 11 +++--- test/unit/Util.ts | 77 ++++++++++++++++++++---------------- test/unit/mocks/util-mock.js | 18 +++++++++ 3 files changed, 65 insertions(+), 41 deletions(-) create mode 100644 test/unit/mocks/util-mock.js diff --git a/lib/Util.ts b/lib/Util.ts index 398e6b8a..b7226827 100644 --- a/lib/Util.ts +++ b/lib/Util.ts @@ -32,14 +32,13 @@ export class Util { // Array of blocks. } else if (Array.isArray(address)) { - const options: AxiosRequestConfig = { - method: "POST", - url: `${this.restURL}util/validateAddress`, - data: { + // Dev note: must use axios.post for unit test stubbing. + const response: AxiosResponse = await axios.post( + `${this.restURL}util/validateAddress`, + { addresses: address } - } - const response: AxiosResponse = await axios(options) + ) return response.data } diff --git a/test/unit/Util.ts b/test/unit/Util.ts index fd2756a0..ab29ccc4 100644 --- a/test/unit/Util.ts +++ b/test/unit/Util.ts @@ -4,11 +4,14 @@ import { BITBOX } from "../../lib/BITBOX" import { Util } from "../../lib/Util" import { resturl } from "../../lib/BITBOX" import * as util from "util" -import { AddressValidateResult } from "bitcoin-com-rest"; +import { AddressValidateResult } from "bitcoin-com-rest" +import axios from "axios" +import * as sinon from "sinon" // conts const bitbox: BITBOX = new BITBOX() const assert: Chai.AssertStatic = chai.assert +const mockData = require("./mocks/util-mock") util.inspect.defaultOptions = { showHidden: true, @@ -17,6 +20,10 @@ util.inspect.defaultOptions = { } describe("#Util", (): void => { + let sandbox: any + beforeEach(() => (sandbox = sinon.sandbox.create())) + afterEach(() => sandbox.restore()) + describe("#UtilConstructor", (): void => { it("should create instance of Util", (): void => { const util: Util = new Util() @@ -31,29 +38,32 @@ describe("#Util", (): void => { describe(`#validateAddress`, (): void => { it(`should return false for testnet addr on mainnet`, async () => { - const address: string = `bchtest:qqqk4y6lsl5da64sg5qc3xezmplyu5kmpyz2ysaa5y` - - const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) + // Mock the call to rest to prevent live network calls. + const resolved = new Promise(r => r({ data: mockData.invalid })) + sandbox.stub(axios, "get").returns(resolved) - assert.hasAllKeys(result, ["isvalid"]) - if (!Array.isArray(result)) { - assert.equal(result.isvalid, false) - } - }) + const address: string = `bchtest:qqqk4y6lsl5da64sg5qc3xezmplyu5kmpyz2ysaa5y` - it(`should return false for bad address`, async () => { - const address: string = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peu` - const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) + const result: + | AddressValidateResult + | AddressValidateResult[] = await bitbox.Util.validateAddress(address) + //console.log(`result: ${JSON.stringify(result,null,2)}`) assert.hasAllKeys(result, ["isvalid"]) - if (!Array.isArray(result)) { - assert.equal(result.isvalid, false) - } + if (!Array.isArray(result)) assert.equal(result.isvalid, false) }) it(`should validate valid address`, async () => { + // Mock the call to rest to prevent live network calls. + const resolved = new Promise(r => r({ data: mockData.valid })) + sandbox.stub(axios, "get").returns(resolved) + const address: string = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` - const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) + + const result: + | AddressValidateResult + | AddressValidateResult[] = await bitbox.Util.validateAddress(address) + //console.log(`result: ${JSON.stringify(result,null,2)}`) assert.hasAllKeys(result, [ "isvalid", @@ -63,18 +73,23 @@ describe("#Util", (): void => { "iswatchonly", "isscript" ]) - if (!Array.isArray(result)) { - assert.equal(result.isvalid, true) - } + if (!Array.isArray(result)) assert.equal(result.isvalid, true) }) it(`should validate an array of addresses`, async () => { + // Mock the call to rest to prevent live network calls. + const testData = [mockData.valid, mockData.valid] + const resolved = new Promise(r => r({ data: testData })) + sandbox.stub(axios, "post").returns(resolved) + const address: string[] = [ `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z`, `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` ] - const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(address) + const result: + | AddressValidateResult + | AddressValidateResult[] = await bitbox.Util.validateAddress(address) assert.isArray(result) if (Array.isArray(result)) { @@ -89,32 +104,24 @@ describe("#Util", (): void => { } }) - it(`should throw an error for improper single input`, async () => { + it(`should pass error from server to user`, async () => { try { + // Mock out data for unit test, to prevent live network call. + sandbox + .stub(axios, "get") + .throws("error", "Input must be a string or array of strings.") + const address: any = 15432 await bitbox.Util.validateAddress(address) assert.equal(true, false, "Unexpected result!") } catch (err) { + //console.log(`err: ${util.inspect(err)}`) assert.include( err.message, `Input must be a string or array of strings.` ) } }) - - it(`should throw error on array size rate limit`, async () => { - try { - const dataMock: string = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` - const data: string[] = [] - for (let i: number = 0; i < 25; i++) data.push(dataMock) - - const result: AddressValidateResult | AddressValidateResult[] = await bitbox.Util.validateAddress(data) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Array too large") - } - }) }) }) diff --git a/test/unit/mocks/util-mock.js b/test/unit/mocks/util-mock.js new file mode 100644 index 00000000..30029d65 --- /dev/null +++ b/test/unit/mocks/util-mock.js @@ -0,0 +1,18 @@ +/* + Mock data used for unit testing. +*/ + +module.exports = { + invalid: { + isvalid: false + }, + + valid: { + isvalid: true, + address: "bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z", + scriptPubKey: "76a9146b63a64b4727768fc4045f7ed439e3b811766a6688ac", + ismine: false, + iswatchonly: false, + isscript: false + } +} From 929c5dff4f0d22ad1822ce29a66075af5ce36188 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Fri, 14 Jun 2019 23:35:45 -0700 Subject: [PATCH 429/480] Add unit tests for Util class. --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 043fb50a..67c7f3d1 100644 --- a/package.json +++ b/package.json @@ -1,14 +1,15 @@ { "name": "bitbox-sdk", - "version": "8.4.0", + "version": "8.4.1", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ "Chris Troutner " ], "scripts": { - "test": "tsc && nyc mocha test/unit --timeout 60000 --exit", + "test": "npm run test:unit", "test:no-build": "nyc mocha test/unit --timeout 60000 --exit", + "test:unit": "tsc && nyc mocha test/unit --timeout 60000 --exit", "test:integration": "TEST=integration nyc --reporter=text mocha --timeout 30000 test/integration", "test:integration:local": "TEST=integration SERVER=local nyc --reporter=text mocha --timeout 30000 test/integration --exit", "test:integration:stage": "TEST=integration SERVER=stage nyc --reporter=text mocha --timeout 30000 test/integration --exit", From bcf7ae322f9906028154453945fe54a0e91c0d4d Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 19 Jun 2019 13:37:33 -0700 Subject: [PATCH 430/480] * Move mocha types dep to dev dependencies per this issue: https://github.com/Bitcoin-com/bitbox-sdk/issues/120 --- lib/Blockchain.ts | 5 - package.json | 10 +- yarn.lock | 621 +++++++++++++++++++++++++++------------------- 3 files changed, 364 insertions(+), 272 deletions(-) diff --git a/lib/Blockchain.ts b/lib/Blockchain.ts index 8f789afe..11480c49 100644 --- a/lib/Blockchain.ts +++ b/lib/Blockchain.ts @@ -101,7 +101,6 @@ export class Blockchain { // Handle array of hashes. } else if (Array.isArray(hash)) { - // Dev note: must use axios.post for unit test stubbing. const response: AxiosResponse = await axios.post( `${this.restURL}blockchain/getBlockHeader`, @@ -188,8 +187,6 @@ export class Blockchain { public async getMempoolEntry( txid: string | string[] ): Promise { - //if (typeof txid !== "string") txid = JSON.stringify(txid) - try { if (typeof txid === "string") { const response: AxiosResponse = await axios.get( @@ -275,7 +272,6 @@ export class Blockchain { // Array of txids. } else if (Array.isArray(txids)) { - // Dev note: must use axios.post for unit test stubbing. const response: AxiosResponse = await axios.post( `${this.restURL}blockchain/getTxOutProof`, @@ -348,7 +344,6 @@ export class Blockchain { // Array of hashes. } else if (Array.isArray(proof)) { - // Dev note: must use axios.post for unit test stubbing. const response: AxiosResponse = await axios.post( `${this.restURL}blockchain/verifyTxOutProof`, diff --git a/package.json b/package.json index 67c7f3d1..15d389db 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "8.4.1", + "version": "8.4.2", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ @@ -10,7 +10,7 @@ "test": "npm run test:unit", "test:no-build": "nyc mocha test/unit --timeout 60000 --exit", "test:unit": "tsc && nyc mocha test/unit --timeout 60000 --exit", - "test:integration": "TEST=integration nyc --reporter=text mocha --timeout 30000 test/integration", + "test:integration": "TEST=integration nyc --reporter=text mocha --timeout 30000 test/integration --exit", "test:integration:local": "TEST=integration SERVER=local nyc --reporter=text mocha --timeout 30000 test/integration --exit", "test:integration:stage": "TEST=integration SERVER=stage nyc --reporter=text mocha --timeout 30000 test/integration --exit", "coverage": "nyc report --reporter=text-lcov | coveralls", @@ -33,11 +33,8 @@ "dependencies": { "@types/bigi": "^1.4.2", "@types/bip39": "^2.4.2", - "@types/chai": "^4.1.7", - "@types/mocha": "^5.2.6", "@types/node": "^10.11.7", "@types/randombytes": "^2.0.0", - "@types/sinon": "^7.0.11", "@types/wif": "^2.0.1", "assert": "^1.4.1", "axios": "0.19.0", @@ -69,6 +66,9 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^0.1.3", + "@types/chai": "^4.1.7", + "@types/mocha": "^5.2.6", + "@types/sinon": "^7.0.11", "chai": "^4.1.2", "coveralls": "^3.0.2", "eslint": "^5.5.0", diff --git a/yarn.lock b/yarn.lock index f789dd56..37c7d770 100644 --- a/yarn.lock +++ b/yarn.lock @@ -46,9 +46,9 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.4.3", "@babel/parser@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.4.tgz#5977129431b8fe33471730d255ce8654ae1250b6" +"@babel/parser@^7.4.3", "@babel/parser@^7.4.4", "@babel/parser@^7.4.5": + version "7.4.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.5.tgz#04af8d5d5a2b044a2a1bffacc1e5e6673544e872" "@babel/template@^7.1.0", "@babel/template@^7.4.0": version "7.4.4" @@ -59,14 +59,14 @@ "@babel/types" "^7.4.4" "@babel/traverse@^7.4.3": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.4.tgz#0776f038f6d78361860b6823887d4f3937133fe8" + version "7.4.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.5.tgz#4e92d1728fd2f1897dafdd321efbff92156c3216" dependencies: "@babel/code-frame" "^7.0.0" "@babel/generator" "^7.4.4" "@babel/helper-function-name" "^7.1.0" "@babel/helper-split-export-declaration" "^7.4.4" - "@babel/parser" "^7.4.4" + "@babel/parser" "^7.4.5" "@babel/types" "^7.4.4" debug "^4.1.0" globals "^11.1.0" @@ -96,34 +96,43 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" "@octokit/endpoint@^5.1.0": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-5.1.1.tgz#bd96a67d141bd897fd5357501fcea44791870925" + version "5.1.7" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-5.1.7.tgz#cfbd473a6adf5fea747520972e1af676406f7c26" dependencies: - deepmerge "3.2.0" + deepmerge "3.2.1" is-plain-object "^3.0.0" - universal-user-agent "^2.0.1" + universal-user-agent "^2.1.0" url-template "^2.0.8" -"@octokit/request@3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-3.0.2.tgz#dd2424691f486d7ea332ec06e3de55b1ea13c5dc" +"@octokit/request-error@^1.0.1", "@octokit/request-error@^1.0.2": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-1.0.4.tgz#15e1dc22123ba4a9a4391914d80ec1e5303a23be" + dependencies: + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request@^4.0.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-4.1.1.tgz#614262214f48417b4d3b14e047d09a9c8e2f7a09" dependencies: "@octokit/endpoint" "^5.1.0" - deprecation "^1.0.1" + "@octokit/request-error" "^1.0.1" + deprecation "^2.0.0" is-plain-object "^3.0.0" node-fetch "^2.3.0" once "^1.4.0" - universal-user-agent "^2.0.1" + universal-user-agent "^2.1.0" -"@octokit/rest@^16.13.1": - version "16.25.3" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.25.3.tgz#ce9e7a6230d20d58574ec929f622f2778ead7eb4" +"@octokit/rest@^16.27.0": + version "16.28.2" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.28.2.tgz#3fc3b8700046ab29ab1e2a4bdf49f89e94f7ba27" dependencies: - "@octokit/request" "3.0.2" + "@octokit/request" "^4.0.1" + "@octokit/request-error" "^1.0.2" atob-lite "^2.0.0" before-after-hook "^1.4.0" btoa-lite "^1.0.0" - deprecation "^1.0.1" + deprecation "^2.0.0" lodash.get "^4.4.2" lodash.set "^4.3.2" lodash.uniq "^4.5.0" @@ -133,14 +142,14 @@ url-template "^2.0.8" "@semantic-release/commit-analyzer@^6.1.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@semantic-release/commit-analyzer/-/commit-analyzer-6.1.0.tgz#32bbe3c23da86e23edf072fbb276fa2f383fcb17" + version "6.2.0" + resolved "https://registry.yarnpkg.com/@semantic-release/commit-analyzer/-/commit-analyzer-6.2.0.tgz#5cd25ce67ba9ba5b46e47457505e63629e186695" dependencies: conventional-changelog-angular "^5.0.0" conventional-commits-filter "^2.0.0" conventional-commits-parser "^3.0.0" debug "^4.0.0" - import-from "^2.1.0" + import-from "^3.0.0" lodash "^4.17.4" "@semantic-release/error@^2.2.0": @@ -148,35 +157,35 @@ resolved "https://registry.yarnpkg.com/@semantic-release/error/-/error-2.2.0.tgz#ee9d5a09c9969eade1ec864776aeda5c5cddbbf0" "@semantic-release/github@^5.1.0": - version "5.2.10" - resolved "https://registry.yarnpkg.com/@semantic-release/github/-/github-5.2.10.tgz#bf325f11685d59b864c8946d7d30fcb749d89e37" + version "5.4.0" + resolved "https://registry.yarnpkg.com/@semantic-release/github/-/github-5.4.0.tgz#b170d1ceb3f682604cb4a2aff39bf5906159c91d" dependencies: - "@octokit/rest" "^16.13.1" + "@octokit/rest" "^16.27.0" "@semantic-release/error" "^2.2.0" - aggregate-error "^2.0.0" - bottleneck "^2.0.1" + aggregate-error "^3.0.0" + bottleneck "^2.18.1" debug "^4.0.0" dir-glob "^2.0.0" - fs-extra "^7.0.0" + fs-extra "^8.0.0" globby "^9.0.0" http-proxy-agent "^2.1.0" https-proxy-agent "^2.2.1" - issue-parser "^3.0.0" + issue-parser "^4.0.0" lodash "^4.17.4" - mime "^2.0.3" - p-filter "^1.0.0" - p-retry "^3.0.0" + mime "^2.4.3" + p-filter "^2.0.0" + p-retry "^4.0.0" parse-github-url "^1.0.1" url-join "^4.0.0" "@semantic-release/npm@^5.0.5": - version "5.1.7" - resolved "https://registry.yarnpkg.com/@semantic-release/npm/-/npm-5.1.7.tgz#ed3bac977d46294bfd11df7621bb5a9b6d5523be" + version "5.1.9" + resolved "https://registry.yarnpkg.com/@semantic-release/npm/-/npm-5.1.9.tgz#30d775433c91f32d7365382574aeda3b1422a5df" dependencies: "@semantic-release/error" "^2.2.0" aggregate-error "^3.0.0" execa "^1.0.0" - fs-extra "^7.0.0" + fs-extra "^8.0.0" lodash "^4.17.4" nerf-dart "^1.0.0" normalize-url "^4.0.0" @@ -186,17 +195,17 @@ registry-auth-token "^3.3.1" "@semantic-release/release-notes-generator@^7.1.2": - version "7.1.4" - resolved "https://registry.yarnpkg.com/@semantic-release/release-notes-generator/-/release-notes-generator-7.1.4.tgz#8f4f752c5a8385abdaac1256127cef05988bc2ad" + version "7.2.0" + resolved "https://registry.yarnpkg.com/@semantic-release/release-notes-generator/-/release-notes-generator-7.2.0.tgz#d09f9f97a0f33149411c36843d1378d3c290ada8" dependencies: conventional-changelog-angular "^5.0.0" conventional-changelog-writer "^4.0.0" conventional-commits-filter "^2.0.0" conventional-commits-parser "^3.0.0" debug "^4.0.0" - get-stream "^4.0.0" - import-from "^2.1.0" - into-stream "^4.0.0" + get-stream "^5.0.0" + import-from "^3.0.0" + into-stream "^5.0.0" lodash "^4.17.4" "@sinonjs/commons@^1", "@sinonjs/commons@^1.0.2": @@ -219,8 +228,8 @@ "@sinonjs/samsam" "^3.1.0" "@sinonjs/samsam@^3.1.0": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-3.3.1.tgz#e88c53fbd9d91ad9f0f2b0140c16c7c107fe0d07" + version "3.3.2" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-3.3.2.tgz#63942e3d5eb0b79f6de3bef9abfad15fb4b6401b" dependencies: "@sinonjs/commons" "^1.0.2" array-from "^2.1.1" @@ -261,16 +270,16 @@ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" "@types/mocha@^5.2.6": - version "5.2.6" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.2.6.tgz#b8622d50557dd155e9f2f634b7d68fd38de5e94b" + version "5.2.7" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.2.7.tgz#315d570ccb56c53452ff8638738df60726d5b6ea" "@types/node@*": - version "12.0.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.0.0.tgz#d11813b9c0ff8aaca29f04cbc12817f4c7d656e5" + version "12.0.8" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.0.8.tgz#551466be11b2adc3f3d47156758f610bd9f6b1d8" "@types/node@^10.11.7": - version "10.14.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.6.tgz#9cbfcb62c50947217f4d88d4d274cc40c22625a9" + version "10.14.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.9.tgz#2e8d678039d27943ce53a1913386133227fd9066" "@types/normalize-package-data@^2.4.0": version "2.4.0" @@ -282,9 +291,13 @@ dependencies: "@types/node" "*" +"@types/retry@^0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" + "@types/sinon@^7.0.11": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-7.0.11.tgz#6f28f005a36e779b7db0f1359b9fb9eef72aae88" + version "7.0.13" + resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-7.0.13.tgz#ca039c23a9e27ebea53e0901ef928ea2a1a6d313" "@types/wif@^2.0.1": version "2.0.1" @@ -303,7 +316,7 @@ abbrev@1, abbrev@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" -accepts@^1.3.5, accepts@~1.3.4: +accepts@^1.3.7, accepts@~1.3.4: version "1.3.7" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" dependencies: @@ -325,15 +338,15 @@ acorn-jsx@^5.0.0: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e" acorn-node@^1.2.0, acorn-node@^1.3.0, acorn-node@^1.5.2, acorn-node@^1.6.1: - version "1.6.2" - resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.6.2.tgz#b7d7ceca6f22e6417af933a62cad4de01048d5d2" + version "1.7.0" + resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.7.0.tgz#aac6a559d27af6176b076ab6fb13c5974c213e3b" dependencies: - acorn "^6.0.2" + acorn "^6.1.1" acorn-dynamic-import "^4.0.0" - acorn-walk "^6.1.0" + acorn-walk "^6.1.1" xtend "^4.0.1" -acorn-walk@^6.1.0: +acorn-walk@^6.1.1: version "6.1.1" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.1.tgz#d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913" @@ -345,7 +358,7 @@ acorn@^5.5.0: version "5.7.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" -acorn@^6.0.2, acorn@^6.0.7: +acorn@^6.0.7, acorn@^6.1.1: version "6.1.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f" @@ -353,7 +366,13 @@ after@0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" -agent-base@4, agent-base@^4.1.0, agent-base@~4.2.1: +agent-base@4, agent-base@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" + dependencies: + es6-promisify "^5.0.0" + +agent-base@~4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" dependencies: @@ -365,13 +384,6 @@ agentkeepalive@^3.4.1: dependencies: humanize-ms "^1.2.1" -aggregate-error@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-2.2.0.tgz#f54b464db18cc77c907ae084451f39134707134a" - dependencies: - clean-stack "^2.0.0" - indent-string "^3.0.0" - aggregate-error@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.0.tgz#5b5a3c95e9095f311c9ab16c19fb4f3527cd3f79" @@ -696,7 +708,7 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -bech32@^1.1.2: +bech32@^1.1.2, bech32@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.3.tgz#bd47a8986bbb3eec34a56a097a84b8d3e9a2dfcd" @@ -711,8 +723,8 @@ better-assert@~1.0.0: callsite "1.0.0" big-integer@^1.6.34: - version "1.6.43" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.43.tgz#8ac15bf13e93e509500859061233e19d8d0d99d1" + version "1.6.44" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.44.tgz#4ee9ae5f5839fc11ade338fea216b4513454a539" big.js@^3.1.3: version "3.2.0" @@ -763,8 +775,8 @@ bip32-utils@Bitcoin-com/bip32-utils#0.13.1: tape "*" bip38@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/bip38/-/bip38-2.0.2.tgz#6f7762bc90b0bdf63b489ff95349354aecf9baee" + version "2.0.3" + resolved "https://registry.yarnpkg.com/bip38/-/bip38-2.0.3.tgz#12e48749d6c28dd14e8bcb37a9f2dae67a797da0" dependencies: bigi "^1.2.0" browserify-aes "^1.0.1" @@ -819,10 +831,11 @@ bitcoincashjs@^0.1.10: resolved "https://registry.yarnpkg.com/bitcoincashjs/-/bitcoincashjs-0.1.14.tgz#9da1efb762e05d608b6e04fadf1277eaa2201b48" bitcoinjs-message@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/bitcoinjs-message/-/bitcoinjs-message-2.0.0.tgz#e285d223607dabf2b33a6ee486a223b59d1b1548" + version "2.1.0" + resolved "https://registry.yarnpkg.com/bitcoinjs-message/-/bitcoinjs-message-2.1.0.tgz#5fe36a7d92473bdc929d9183416970bbef1690ad" dependencies: - bs58check "^2.0.2" + bech32 "^1.1.3" + bs58check "^2.1.2" buffer-equals "^1.0.3" create-hash "^1.1.2" secp256k1 "^3.0.1" @@ -838,17 +851,17 @@ block-stream@*: dependencies: inherits "~2.0.0" -bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.5.3: - version "3.5.4" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.4.tgz#d6cc661595de30d5b3af5fcedd3c0b3ef6ec5714" +bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5: + version "3.5.5" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.11.8, bn.js@^4.4.0: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" -bottleneck@^2.0.1: - version "2.18.0" - resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.18.0.tgz#41fa63ae185b65435d789d1700334bc48222dacf" +bottleneck@^2.18.1: + version "2.19.1" + resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.19.1.tgz#f7657aed83edff1fa41d438cdbdf3e0931a1d3f0" boxen@^1.2.1: version "1.3.0" @@ -1021,7 +1034,7 @@ bs58@^4.0.0, bs58@^4.0.1: dependencies: base-x "^3.0.2" -bs58check@<3.0.0, bs58check@^2.0.0, bs58check@^2.0.2, bs58check@^2.1.2: +bs58check@<3.0.0, bs58check@^2.0.0, bs58check@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" dependencies: @@ -1073,20 +1086,20 @@ byte-size@^5.0.1: resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-5.0.1.tgz#4b651039a5ecd96767e71a3d7ed380e48bed4191" cacache@^11.0.1, cacache@^11.3.2: - version "11.3.2" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.2.tgz#2d81e308e3d258ca38125b676b98b2ac9ce69bfa" + version "11.3.3" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.3.tgz#8bd29df8c6a718a6ebd2d010da4d7972ae3bbadc" dependencies: - bluebird "^3.5.3" + bluebird "^3.5.5" chownr "^1.1.1" figgy-pudding "^3.5.1" - glob "^7.1.3" + glob "^7.1.4" graceful-fs "^4.1.15" lru-cache "^5.1.1" mississippi "^3.0.0" mkdirp "^0.5.1" move-concurrently "^1.0.1" promise-inflight "^1.0.1" - rimraf "^2.6.2" + rimraf "^2.6.3" ssri "^6.0.1" unique-filename "^1.1.1" y18n "^4.0.0" @@ -1105,7 +1118,7 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -cached-path-relative@^1.0.0: +cached-path-relative@^1.0.0, cached-path-relative@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.2.tgz#a13df4196d26776220cc3356eb147a52dba2c6db" @@ -1119,8 +1132,8 @@ caching-transform@^3.0.2: write-file-atomic "^2.4.2" call-limit@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/call-limit/-/call-limit-1.1.0.tgz#6fd61b03f3da42a2cd0ec2b60f02bd0e71991fea" + version "1.1.1" + resolved "https://registry.yarnpkg.com/call-limit/-/call-limit-1.1.1.tgz#ef15f2670db3f1992557e2d965abc459e6e358d4" call-me-maybe@^1.0.1: version "1.0.1" @@ -1330,6 +1343,14 @@ cliui@^4.0.0: strip-ansi "^4.0.0" wrap-ansi "^2.0.0" +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + clone@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" @@ -1397,8 +1418,8 @@ combine-source-map@^0.8.0, combine-source-map@~0.8.0: source-map "~0.5.3" combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828" + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" dependencies: delayed-stream "~1.0.0" @@ -1561,17 +1582,17 @@ core-util-is@1.0.2, core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" cosmiconfig@^5.0.1: - version "5.2.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.0.tgz#45038e4d28a7fe787203aede9c25bca4a08b12c8" + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" dependencies: import-fresh "^2.0.0" is-directory "^0.3.1" - js-yaml "^3.13.0" + js-yaml "^3.13.1" parse-json "^4.0.0" coveralls@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-3.0.3.tgz#83b1c64aea1c6afa69beaf50b55ac1bc4d13e2b8" + version "3.0.4" + resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-3.0.4.tgz#f50233c9c62fd0973f710fce85fd19dba24cff4b" dependencies: growl "~> 1.10.0" js-yaml "^3.11.0" @@ -1725,7 +1746,7 @@ debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.0: dependencies: ms "^2.1.1" -debuglog@^1.0.1: +debuglog@*, debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" @@ -1762,9 +1783,9 @@ deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" -deepmerge@3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.2.0.tgz#58ef463a57c08d376547f8869fdc5bcee957f44e" +deepmerge@3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.2.1.tgz#76a1f47854bcfcd66ee9a948d110540a8e12b261" default-require-extensions@^2.0.0: version "2.0.0" @@ -1830,9 +1851,9 @@ depd@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" -deprecation@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-1.0.1.tgz#2df79b79005752180816b7b6e079cbd80490d711" +deprecation@^2.0.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" deps-sort@^2.0.0: version "2.0.0" @@ -1877,6 +1898,10 @@ diff@3.5.0, diff@^3.1.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" +diff@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.1.tgz#0c667cb467ebbb5cea7f14f135cc2dba7780a8ff" + diffie-hellman@^5.0.0: version "5.0.3" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" @@ -2044,12 +2069,12 @@ engine.io@~3.3.1: engine.io-parser "~2.1.0" ws "~6.1.0" -env-ci@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/env-ci/-/env-ci-3.2.0.tgz#982f02a0501ca8c43bf0765c5bd3d83ffb28b23a" +env-ci@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/env-ci/-/env-ci-4.1.1.tgz#b8438fc7258a0dc7a4f4c4816de730767946a718" dependencies: execa "^1.0.0" - java-properties "^0.2.9" + java-properties "^1.0.0" err-code@^1.0.0: version "1.1.2" @@ -2091,8 +2116,8 @@ es6-error@^4.0.1: resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" es6-promise@^4.0.3: - version "4.2.6" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.6.tgz#b685edd8258886365ea62b57d30de28fadcd974f" + version "4.2.8" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" es6-promisify@^5.0.0: version "5.0.0" @@ -2456,8 +2481,8 @@ fast-diff@^1.1.1: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" fast-glob@^2.2.6: - version "2.2.6" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.6.tgz#a5d5b697ec8deda468d85a74035290a025a95295" + version "2.2.7" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" dependencies: "@mrmlnc/readdir-enhanced" "^2.2.1" "@nodelib/fs.stat" "^1.1.2" @@ -2484,6 +2509,12 @@ figures@^2.0.0: dependencies: escape-string-regexp "^1.0.5" +figures@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.0.0.tgz#756275c964646163cc6f9197c7a0295dbfd04de9" + dependencies: + escape-string-regexp "^1.0.5" + file-entry-cache@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" @@ -2538,6 +2569,13 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" +find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + find-versions@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.1.0.tgz#10161f29cf3eb4350dec10a29bdde75bff0df32d" @@ -2625,24 +2663,24 @@ from2@^1.3.0: inherits "~2.0.1" readable-stream "~1.1.10" -from2@^2.1.0, from2@^2.1.1: +from2@^2.1.0, from2@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" dependencies: inherits "^2.0.1" readable-stream "^2.0.0" -fs-extra@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" +fs-extra@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.0.1.tgz#90294081f978b1f182f347a440a209154344285b" dependencies: graceful-fs "^4.1.2" jsonfile "^4.0.0" universalify "^0.1.0" fs-minipass@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" + version "1.2.6" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.6.tgz#2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07" dependencies: minipass "^2.2.1" @@ -2667,9 +2705,9 @@ fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" -fstream@^1.0.0, fstream@^1.0.2: - version "1.0.11" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" +fstream@^1.0.0, fstream@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" dependencies: graceful-fs "^4.1.2" inherits "~2.0.0" @@ -2793,7 +2831,7 @@ glob@7.1.2: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.3, glob@^7.0.5, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@~7.1.3: +glob@^7.0.3, glob@^7.0.5, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@~7.1.4: version "7.1.4" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" dependencies: @@ -3063,17 +3101,17 @@ import-fresh@^3.0.0: parent-module "^1.0.0" resolve-from "^4.0.0" -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" +import-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-3.0.0.tgz#055cfec38cd5a27d8057ca51376d7d3bf0891966" dependencies: - resolve-from "^3.0.0" + resolve-from "^5.0.0" import-lazy@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" -imurmurhash@^0.1.4: +imurmurhash@*, imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -3175,11 +3213,11 @@ insert-module-globals@^7.0.0: undeclared-identifiers "^1.1.2" xtend "^4.0.0" -into-stream@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-4.0.0.tgz#ef10ee2ffb6f78af34c93194bbdc36c35f7d8a9d" +into-stream@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-5.1.0.tgz#b05f37d8fed05c06a0b43b556d74e53e5af23878" dependencies: - from2 "^2.1.1" + from2 "^2.3.0" p-is-promise "^2.0.0" invert-kv@^1.0.0: @@ -3415,7 +3453,7 @@ isarray@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" -isarray@^2.0.1, isarray@^2.0.4: +isarray@^2.0.1: version "2.0.4" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.4.tgz#38e7bcbb0f3ba1b7933c86ba1894ddfc3781bbb7" @@ -3441,9 +3479,9 @@ isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" -issue-parser@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/issue-parser/-/issue-parser-3.0.1.tgz#ee8dd677fdb5be64541f81fa5e7267baa271a7ee" +issue-parser@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/issue-parser/-/issue-parser-4.0.0.tgz#397817323abbb70c7c29cea2ff62448cf83b686c" dependencies: lodash.capitalize "^4.2.1" lodash.escaperegexp "^4.1.2" @@ -3492,14 +3530,14 @@ istanbul-lib-source-maps@^3.0.6: source-map "^0.6.1" istanbul-reports@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.4.tgz#4e0d0ddf0f0ad5b49a314069d31b4f06afe49ad3" + version "2.2.6" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.6.tgz#7b4f2660d82b29303a8fe6091f8ca4bf058da1af" dependencies: handlebars "^4.1.2" -java-properties@^0.2.9: - version "0.2.10" - resolved "https://registry.yarnpkg.com/java-properties/-/java-properties-0.2.10.tgz#2551560c25fa1ad94d998218178f233ad9b18f60" +java-properties@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/java-properties/-/java-properties-1.0.1.tgz#ea0b5986c0894d73cf2a44de8bd216c459a07a94" jest-docblock@^21.0.0: version "21.2.0" @@ -3625,11 +3663,10 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" labeled-stream-splicer@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.1.tgz#9cffa32fd99e1612fd1d86a8db962416d5292926" + version "2.0.2" + resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz#42a41a16abcd46fd046306cf4f2c3576fffb1c21" dependencies: inherits "^2.0.1" - isarray "^2.0.4" stream-splicer "^2.0.0" latest-version@^3.0.0: @@ -3710,7 +3747,7 @@ libnpm@^2.0.1: read-package-json "^2.0.13" stringify-package "^1.0.0" -libnpmaccess@^3.0.1: +libnpmaccess@*, libnpmaccess@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-3.0.1.tgz#5b3a9de621f293d425191aa2e779102f84167fa8" dependencies: @@ -3736,7 +3773,7 @@ libnpmhook@^5.0.2: get-stream "^4.0.0" npm-registry-fetch "^3.8.0" -libnpmorg@^1.0.0: +libnpmorg@*, libnpmorg@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-1.0.0.tgz#979b868c48ba28c5820e3bb9d9e73c883c16a232" dependencies: @@ -3759,15 +3796,15 @@ libnpmpublish@^1.1.0: semver "^5.5.1" ssri "^6.0.1" -libnpmsearch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-2.0.0.tgz#de05af47ada81554a5f64276a69599070d4a5685" +libnpmsearch@*, libnpmsearch@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-2.0.1.tgz#eccc73a8fbf267d765d18082b85daa2512501f96" dependencies: figgy-pudding "^3.5.1" get-stream "^4.0.0" npm-registry-fetch "^3.8.0" -libnpmteam@^1.0.1: +libnpmteam@*, libnpmteam@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-1.0.1.tgz#ff704b1b6c06ea674b3b1101ac3e305f5114f213" dependencies: @@ -3821,6 +3858,12 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + dependencies: + p-locate "^4.1.0" + lock-verify@^2.0.2, lock-verify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/lock-verify/-/lock-verify-2.1.0.tgz#fff4c918b8db9497af0c5fa7f6d71555de3ceb47" @@ -3834,6 +3877,10 @@ lockfile@^1.0.4: dependencies: signal-exit "^3.0.2" +lodash._baseindexof@*: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c" + lodash._baseuniq@~4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8" @@ -3841,10 +3888,28 @@ lodash._baseuniq@~4.6.0: lodash._createset "~4.0.0" lodash._root "~3.0.0" +lodash._bindcallback@*: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" + +lodash._cacheindexof@*: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92" + +lodash._createcache@*: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093" + dependencies: + lodash._getnative "^3.0.0" + lodash._createset@~4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" +lodash._getnative@*, lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + lodash._root@~3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" @@ -3881,6 +3946,10 @@ lodash.memoize@~3.0.3: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" +lodash.restparam@*: + version "3.6.1" + resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" + lodash.set@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" @@ -3913,10 +3982,14 @@ log-driver@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.7.tgz#63b95021f0702fedfa2c9bb0a24e7797d71871d8" -lolex@^2.2.0, lolex@^2.3.2: +lolex@^2.2.0: version "2.7.5" resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.7.5.tgz#113001d56bfc7e02d56e36291cc5c413d1aa0733" +lolex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-4.1.0.tgz#ecdd7b86539391d8237947a3419aa8ac975f0fe1" + loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -3948,8 +4021,8 @@ lru-cache@^5.1.1: yallist "^3.0.2" macos-release@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.2.0.tgz#ab58d55dd4714f0a05ad4b0e90f4370fef5cdea8" + version "2.3.0" + resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.3.0.tgz#eb1930b036c0800adebccd5f17bc4c12de8bb71f" make-dir@^1.0.0: version "1.3.0" @@ -4128,9 +4201,9 @@ mime@^1.3.4: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" -mime@^2.0.3: - version "2.4.2" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.2.tgz#ce5229a5e99ffc313abac806b482c10e7ba6ac78" +mime@^2.4.3: + version "2.4.4" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" mimic-fn@^1.0.0: version "1.2.0" @@ -4173,14 +4246,14 @@ minimist@~0.0.1: version "0.0.10" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" -minipass@^2.2.1, minipass@^2.3.4, minipass@^2.3.5: +minipass@^2.2.1, minipass@^2.3.5: version "2.3.5" resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" dependencies: safe-buffer "^5.1.2" yallist "^3.0.0" -minizlib@^1.1.1: +minizlib@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" dependencies: @@ -4235,12 +4308,12 @@ modify-values@^1.0.0: resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" module-deps@^6.0.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.2.0.tgz#d41a2e790245ce319171e4e7c4d8c73993ba3cd5" + version "6.2.1" + resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.2.1.tgz#cfe558784060e926824f474b4e647287837cda50" dependencies: JSONStream "^1.0.3" browser-resolve "^1.7.0" - cached-path-relative "^1.0.0" + cached-path-relative "^1.0.2" concat-stream "~1.6.0" defined "^1.0.0" detective "^5.0.2" @@ -4270,8 +4343,8 @@ ms@2.0.0: resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" ms@^2.0.0, ms@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" mute-stream@0.0.7: version "0.0.7" @@ -4281,9 +4354,9 @@ mute-stream@~0.0.4: version "0.0.8" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" -nan@^2.13.2, nan@^2.2.1: - version "2.13.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.13.2.tgz#f51dc7ae66ba7d5d55e1e6d4d8092e802c9aefe7" +nan@^2.14.0, nan@^2.2.1: + version "2.14.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" nanomatch@^1.2.9: version "1.2.13" @@ -4310,8 +4383,8 @@ negotiator@0.6.2: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" neo-async@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835" + version "2.6.1" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" nerf-dart@^1.0.0: version "1.0.0" @@ -4326,13 +4399,13 @@ nice-try@^1.0.4: resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" nise@^1.2.0: - version "1.4.10" - resolved "https://registry.yarnpkg.com/nise/-/nise-1.4.10.tgz#ae46a09a26436fae91a38a60919356ae6db143b6" + version "1.5.0" + resolved "https://registry.yarnpkg.com/nise/-/nise-1.5.0.tgz#d03ea0e6c1b75c638015aa3585eddc132949a50d" dependencies: "@sinonjs/formatio" "^3.1.0" "@sinonjs/text-encoding" "^0.7.1" just-extend "^4.0.2" - lolex "^2.3.2" + lolex "^4.1.0" path-to-regexp "^1.7.0" nock@^10.0.6: @@ -4364,8 +4437,8 @@ node-fetch-npm@^2.0.2: safe-buffer "^5.1.1" node-fetch@^2.3.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.5.0.tgz#8028c49fc1191bba56a07adc6e2a954644a48501" + version "2.6.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" node-gyp@^3.8.0: version "3.8.0" @@ -4401,18 +4474,18 @@ node-gyp@^4.0.0: which "1" node-mocks-http@^1.7.0: - version "1.7.5" - resolved "https://registry.yarnpkg.com/node-mocks-http/-/node-mocks-http-1.7.5.tgz#ff1cc6ba8570f7def27d131403edcf86940829b6" + version "1.7.6" + resolved "https://registry.yarnpkg.com/node-mocks-http/-/node-mocks-http-1.7.6.tgz#b5c978d73165179a218bc9d4e3bbe73fa8bedd89" dependencies: - accepts "^1.3.5" + accepts "^1.3.7" depd "^1.1.0" fresh "^0.5.2" merge-descriptors "^1.0.1" methods "^1.1.2" mime "^1.3.4" - parseurl "^1.3.1" + parseurl "^1.3.3" range-parser "^1.2.0" - type-is "^1.6.16" + type-is "^1.6.18" "nopt@2 || 3": version "3.0.6" @@ -4502,7 +4575,7 @@ npm-pick-manifest@^2.2.3: npm-package-arg "^6.0.0" semver "^5.4.1" -npm-profile@^4.0.1: +npm-profile@*, npm-profile@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-4.0.1.tgz#d350f7a5e6b60691c7168fbb8392c3603583f5aa" dependencies: @@ -4811,11 +4884,11 @@ p-defer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" -p-filter@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-filter/-/p-filter-1.0.0.tgz#629d317150209c8fd508ba137713ef4bb920e9db" +p-filter@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-filter/-/p-filter-2.1.0.tgz#1b1472562ae7a0f742f0f3d3d3718ea66ff9c09c" dependencies: - p-map "^1.0.0" + p-map "^2.0.0" p-finally@^1.0.0: version "1.0.0" @@ -4849,24 +4922,25 @@ p-locate@^3.0.0: dependencies: p-limit "^2.0.0" -p-locate@^4.0.0: +p-locate@^4.0.0, p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" dependencies: p-limit "^2.2.0" -p-map@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" p-reduce@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-2.1.0.tgz#09408da49507c6c274faa31f28df334bc712b64a" -p-retry@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" +p-retry@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.1.0.tgz#9ce7cef2069e84bf590df3b8ec18d740109338d6" dependencies: + "@types/retry" "^0.12.0" retry "^0.12.0" p-try@^1.0.0: @@ -4896,8 +4970,8 @@ package-json@^4.0.0: semver "^5.1.0" pacote@^9.1.0, pacote@^9.2.3, pacote@^9.5.0: - version "9.5.0" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-9.5.0.tgz#85f3013a3f6dd51c108b0ccabd3de8102ddfaeda" + version "9.5.1" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-9.5.1.tgz#adb0d23daeef6d0b813ab5891d0c6459ccec998d" dependencies: bluebird "^3.5.3" cacache "^11.3.2" @@ -4991,7 +5065,7 @@ parseuri@0.0.5: dependencies: better-assert "~1.0.0" -parseurl@^1.3.1: +parseurl@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -5011,6 +5085,10 @@ path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -5127,8 +5205,8 @@ prepend-http@^1.0.1: resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" prettier@^1.14.2: - version "1.17.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.17.0.tgz#53b303676eed22cc14a9f0cec09b477b3026c008" + version "1.18.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz#6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea" process-nextick-args@~2.0.0: version "2.0.0" @@ -5190,8 +5268,8 @@ pseudomap@^1.0.2: resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" psl@^1.1.24: - version "1.1.31" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.31.tgz#e9aa86d0101b5b105cbe93ac6b784cd547276184" + version "1.1.32" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.32.tgz#3f132717cf2f9c169724b2b6caf373cf694198db" public-encrypt@^4.0.0: version "4.0.3" @@ -5271,8 +5349,8 @@ qs@~6.5.2: resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" query-string@^6.2.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.5.0.tgz#2e1a70125af01f6f04573692d02c09302a1d8bfc" + version "6.7.0" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.7.0.tgz#7e92bf8525140cf8c5ebf500f26716b0de5b7023" dependencies: decode-uri-component "^0.2.0" split-on-first "^1.0.0" @@ -5312,8 +5390,8 @@ randomfill@^1.0.3: safe-buffer "^5.1.0" range-parser@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" rc@^1.0.1, rc@^1.1.6, rc@^1.2.8: version "1.2.8" @@ -5395,12 +5473,13 @@ read-pkg-up@^4.0.0: find-up "^3.0.0" read-pkg "^3.0.0" -read-pkg-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-5.0.0.tgz#b6a6741cb144ed3610554f40162aa07a6db621b8" +read-pkg-up@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-6.0.0.tgz#da75ce72762f2fa1f20c5a40d4dd80c77db969e3" dependencies: - find-up "^3.0.0" - read-pkg "^5.0.0" + find-up "^4.0.0" + read-pkg "^5.1.1" + type-fest "^0.5.0" read-pkg@^2.0.0: version "2.0.0" @@ -5418,7 +5497,7 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" -read-pkg@^5.0.0: +read-pkg@^5.0.0, read-pkg@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.1.1.tgz#5cf234dde7a405c90c88a519ab73c467e9cb83f5" dependencies: @@ -5446,8 +5525,8 @@ read@1, read@~1.0.1, read@~1.0.7: util-deprecate "~1.0.1" readable-stream@^3.1.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.3.0.tgz#cb8011aad002eb717bf040291feba8569c986fb9" + version "3.4.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" dependencies: inherits "^2.0.3" string_decoder "^1.1.1" @@ -5462,7 +5541,7 @@ readable-stream@~1.1.10: isarray "0.0.1" string_decoder "~0.10.x" -readdir-scoped-modules@^1.0.0: +readdir-scoped-modules@*, readdir-scoped-modules@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747" dependencies: @@ -5594,7 +5673,13 @@ resolve@1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" -resolve@^1.1.4, resolve@^1.10.0, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.8.1, resolve@~1.10.0: +resolve@^1.1.4, resolve@^1.10.0, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.8.1: + version "1.11.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.0.tgz#4014870ba296176b86343d50b60f3b50609ce232" + dependencies: + path-parse "^1.0.6" + +resolve@~1.10.1: version "1.10.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.1.tgz#664842ac960795bbe758221cdccda61fb64b5f18" dependencies: @@ -5695,12 +5780,12 @@ satoshi-bitcoin@^1.0.4: big.js "^3.1.3" scryptsy@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-2.0.0.tgz#262c36f0231cfa7654e2363fa394cd2dec66f378" + version "2.1.0" + resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-2.1.0.tgz#8d1e8d0c025b58fdd25b6fa9a0dc905ee8faa790" secp256k1@^3.0.1: - version "3.7.0" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.7.0.tgz#e85972f847b586cc4b2acd69497d3f80afaa7505" + version "3.7.1" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.7.1.tgz#12e473e0e9a7c2f2d4d4818e722ad0e14cc1e2f1" dependencies: bindings "^1.5.0" bip66 "^1.1.5" @@ -5708,12 +5793,12 @@ secp256k1@^3.0.1: create-hash "^1.2.0" drbg.js "^1.0.1" elliptic "^6.4.1" - nan "^2.13.2" + nan "^2.14.0" safe-buffer "^5.1.2" semantic-release@^15.13.3: - version "15.13.12" - resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-15.13.12.tgz#1128361fc36301ef3a1ea137dd277bdddf9f68c1" + version "15.13.16" + resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-15.13.16.tgz#568b388790e5670acebcc6866113c37fbd968458" dependencies: "@semantic-release/commit-analyzer" "^6.1.0" "@semantic-release/error" "^2.2.0" @@ -5723,9 +5808,9 @@ semantic-release@^15.13.3: aggregate-error "^3.0.0" cosmiconfig "^5.0.1" debug "^4.0.0" - env-ci "^3.0.0" + env-ci "^4.0.0" execa "^1.0.0" - figures "^2.0.0" + figures "^3.0.0" find-versions "^3.0.0" get-stream "^5.0.0" git-log-parser "^1.2.0" @@ -5736,7 +5821,7 @@ semantic-release@^15.13.3: marked-terminal "^3.2.0" p-locate "^4.0.0" p-reduce "^2.0.0" - read-pkg-up "^5.0.0" + read-pkg-up "^6.0.0" resolve-from "^5.0.0" semver "^6.0.0" signale "^1.2.1" @@ -5757,8 +5842,8 @@ semver-regex@^2.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" semver@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.0.0.tgz#05e359ee571e5ad7ed641a6eec1e547ba52dea65" + version "6.1.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.1.1.tgz#53f53da9b30b2103cd4f15eab3a18ecbcb210c9b" semver@~5.3.0: version "5.3.0" @@ -6169,8 +6254,8 @@ stream-shift@^1.0.0: resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" stream-splicer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.0.tgz#1b63be438a133e4b671cc1935197600175910d83" + version "2.0.1" + resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.1.tgz#0b13b7ee2b5ac7e0609a7463d83899589a363fcd" dependencies: inherits "^2.0.1" readable-stream "^2.0.2" @@ -6194,7 +6279,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string-width@^3.0.0: +string-width@^3.0.0, string-width@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" dependencies: @@ -6242,7 +6327,7 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" -strip-ansi@^5.1.0: +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" dependencies: @@ -6317,8 +6402,8 @@ table@4.0.2: string-width "^2.1.1" table@^5.2.3: - version "5.3.2" - resolved "https://registry.yarnpkg.com/table/-/table-5.3.2.tgz#3aab56a41b2905bf66a6a006bd716fa1e78d4702" + version "5.4.1" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.1.tgz#0691ae2ebe8259858efb63e550b6d5f9300171e8" dependencies: ajv "^6.9.1" lodash "^4.17.11" @@ -6326,42 +6411,42 @@ table@^5.2.3: string-width "^3.0.0" tape@*: - version "4.10.1" - resolved "https://registry.yarnpkg.com/tape/-/tape-4.10.1.tgz#f73be60888dcb120f08b57f947af65a829506a5f" + version "4.10.2" + resolved "https://registry.yarnpkg.com/tape/-/tape-4.10.2.tgz#129fcf62f86df92687036a52cce7b8ddcaffd7a6" dependencies: deep-equal "~1.0.1" defined "~1.0.0" for-each "~0.3.3" function-bind "~1.1.1" - glob "~7.1.3" + glob "~7.1.4" has "~1.0.3" inherits "~2.0.3" minimist "~1.2.0" object-inspect "~1.6.0" - resolve "~1.10.0" + resolve "~1.10.1" resumer "~0.0.0" string.prototype.trim "~1.1.2" through "~2.3.8" tar@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + version "2.2.2" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40" dependencies: block-stream "*" - fstream "^1.0.2" + fstream "^1.0.12" inherits "2" tar@^4.4.8: - version "4.4.8" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d" + version "4.4.10" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.10.tgz#946b2810b9a5e0b26140cf78bea6b0b0d689eba1" dependencies: chownr "^1.1.1" fs-minipass "^1.2.5" - minipass "^2.3.4" - minizlib "^1.1.1" + minipass "^2.3.5" + minizlib "^1.2.1" mkdirp "^0.5.0" safe-buffer "^5.1.2" - yallist "^3.0.2" + yallist "^3.0.3" term-size@^1.2.0: version "1.2.0" @@ -6475,18 +6560,18 @@ trim-right@^1.0.1: resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" ts-node@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.1.0.tgz#8c4b37036abd448577db22a061fd7a67d47e658e" + version "8.3.0" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.3.0.tgz#e4059618411371924a1fb5f3b125915f324efb57" dependencies: arg "^4.1.0" - diff "^3.1.0" + diff "^4.0.1" make-error "^1.1.1" source-map-support "^0.5.6" yn "^3.0.0" tslib@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" + version "1.10.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" tty-browserify@0.0.1: version "0.0.1" @@ -6516,7 +6601,11 @@ type-fest@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.4.1.tgz#8bdf77743385d8a4f13ba95f610f5ccd68c728f8" -type-is@^1.6.16: +type-fest@^0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.5.2.tgz#d6ef42a0356c6cd45f49485c3b6281fc148e48a2" + +type-is@^1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" dependencies: @@ -6532,12 +6621,12 @@ typeforce@^1.11.3: resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.18.0.tgz#d7416a2c5845e085034d70fcc5b6cc4a90edbfdc" typescript@^3.4.5: - version "3.4.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.4.5.tgz#2d2618d10bb566572b8d7aad5180d84257d70a99" + version "3.5.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.2.tgz#a09e1dc69bc9551cadf17dba10ee42cf55e5d56c" uglify-js@^3.1.4: - version "3.5.11" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.5.11.tgz#833442c0aa29b3a7d34344c7c63adaa3f3504f6a" + version "3.6.0" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5" dependencies: commander "~2.20.0" source-map "~0.6.1" @@ -6584,8 +6673,8 @@ unique-filename@^1.1.1: unique-slug "^2.0.0" unique-slug@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.1.tgz#5e9edc6d1ce8fb264db18a507ef9bd8544451ca6" + version "2.0.2" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" dependencies: imurmurhash "^0.1.4" @@ -6595,7 +6684,7 @@ unique-string@^1.0.0: dependencies: crypto-random-string "^1.0.0" -universal-user-agent@^2.0.0, universal-user-agent@^2.0.1: +universal-user-agent@^2.0.0, universal-user-agent@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-2.1.0.tgz#5abfbcc036a1ba490cb941f8fd68c46d3669e8e4" dependencies: @@ -6794,13 +6883,21 @@ wrap-ansi@^2.0.0: string-width "^1.0.1" strip-ansi "^3.0.1" +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" write-file-atomic@^2.0.0, write-file-atomic@^2.3.0, write-file-atomic@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.2.tgz#a7181706dfba17855d221140a9c06e15fcdd87b9" + version "2.4.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" dependencies: graceful-fs "^4.1.11" imurmurhash "^0.1.4" @@ -6848,7 +6945,7 @@ yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" -yallist@^3.0.0, yallist@^3.0.2: +yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" @@ -6859,9 +6956,9 @@ yargs-parser@^11.1.1: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^13.0.0: - version "13.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.0.tgz#7016b6dd03e28e1418a510e258be4bff5a31138f" +yargs-parser@^13.0.0, yargs-parser@^13.1.0: + version "13.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" dependencies: camelcase "^5.0.0" decamelize "^1.2.0" @@ -6907,10 +7004,10 @@ yargs@^12.0.5: yargs-parser "^11.1.1" yargs@^13.1.0, yargs@^13.2.2: - version "13.2.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.2.tgz#0c101f580ae95cea7f39d927e7770e3fdc97f993" + version "13.2.4" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83" dependencies: - cliui "^4.0.0" + cliui "^5.0.0" find-up "^3.0.0" get-caller-file "^2.0.1" os-locale "^3.1.0" @@ -6920,7 +7017,7 @@ yargs@^13.1.0, yargs@^13.2.2: string-width "^3.0.0" which-module "^2.0.0" y18n "^4.0.0" - yargs-parser "^13.0.0" + yargs-parser "^13.1.0" yeast@0.1.2: version "0.1.2" From a459a9bddf0129c9451f497cb03a08225ea728df Mon Sep 17 00:00:00 2001 From: Peter Zenger Date: Wed, 3 Jul 2019 11:34:33 -0700 Subject: [PATCH 431/480] Connect direct to websocket port, returns all transcations/blocks now --- lib/Socket.ts | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/lib/Socket.ts b/lib/Socket.ts index 15905509..2f62c1c1 100644 --- a/lib/Socket.ts +++ b/lib/Socket.ts @@ -7,12 +7,8 @@ export class Socket { // TODO remove this check in v2.0 this.socket = io(`${config}`) } else { - if (config.restURL) { - this.socket = io(`${config.restURL}`) - } else { - const restURL = "https://rest.bitcoin.com" - this.socket = io(`${restURL}`) - } + const restURL = config.restURL ? config.restURL : 'wss://rest.bitcoin.com' + this.socket = io(restURL, { transports: ['websocket'] }); if (config.callback) config.callback() } From 5ba72a0f8c538350ac265c664445622d97be3b00 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Thu, 11 Jul 2019 11:11:14 -0700 Subject: [PATCH 432/480] Added getNetworkInfo endpoint to Control lib. Added unit test --- lib/Control.ts | 12 ++++++++++++ test/unit/Control.ts | 30 ++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/lib/Control.ts b/lib/Control.ts index 4596c6d8..4e38a4f6 100644 --- a/lib/Control.ts +++ b/lib/Control.ts @@ -20,6 +20,18 @@ export class Control { } } + public async getNetworkInfo(): Promise { + try { + const response: AxiosResponse = await axios.get( + `${this.restURL}control/getNetworkInfo` + ) + return response.data + } catch (error) { + if (error.response && error.response.data) throw error.response.data + else throw error + } + } + // async getMemoryInfo(): Promise { // // TODO add back to REST // try { diff --git a/test/unit/Control.ts b/test/unit/Control.ts index 558a7205..38a43227 100644 --- a/test/unit/Control.ts +++ b/test/unit/Control.ts @@ -52,6 +52,36 @@ describe("#Control", (): void => { }) }) + describe("#getNetworkInfo", () => { + let sandbox: any + beforeEach(() => (sandbox = sinon.createSandbox())) + afterEach(() => sandbox.restore()) + + it("should get network info", done => { + const data = { + version: 170000, + protocolversion: 70015, + blocks: 527813, + timeoffset: 0, + connections: 21, + proxy: "", + difficulty: 581086703759.5878, + testnet: false, + paytxfee: 0, + relayfee: 0.00001, + errors: "" + } + const resolved = new Promise(r => r({ data: data })) + sandbox.stub(axios, "get").returns(resolved) + + bitbox.Control.getNetworkInfo() + .then(result => { + assert.deepEqual(data, result) + }) + .then(done, done) + }) + }) + // describe("#getMemoryInfo", () => { // let sandbox: any // beforeEach(() => (sandbox = sinon.sandbox.create())) From 08163ff81962cb94ddb94e4a1beb3f401d62cc7c Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Thu, 11 Jul 2019 11:29:29 -0700 Subject: [PATCH 433/480] Adding control integration test --- test/integration/control.js | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 test/integration/control.js diff --git a/test/integration/control.js b/test/integration/control.js new file mode 100644 index 00000000..f80bebac --- /dev/null +++ b/test/integration/control.js @@ -0,0 +1,33 @@ +const chai = require("chai") +const assert = chai.assert +const BITBOX = require("../../lib/BITBOX").BITBOX +let bitbox = new BITBOX() + +if (process.env.SERVER === "local") + bitbox = new BITBOX({ restURL: "http://localhost:3000/v2/" }) +if (process.env.SERVER === "stage") + bitbox = new BITBOX({ restURL: "https://rest.btctest.net/v2/" }) + +describe("#control", () => { + describe("#getNetworkInfo", () => { + it("should GET getNetworkInfo data", async () => { + const result = await bitbox.Control.getNetworkInfo() + //console.log(`getNetworkInfo: ${JSON.stringify(result, null, 2)}`) + + assert.hasAnyKeys(result, [ + "version", + "subversion", + "protocolversion", + "localservices", + "localrelay", + "timeoffset", + "networkactive", + "connections", + "networks", + "relayfee", + "excessutxocharge", + "warnings" + ]) + }) + }) +}) From 31dd532bb825a72ea010a138370b28f1354e0622 Mon Sep 17 00:00:00 2001 From: Peter Zenger Date: Mon, 15 Jul 2019 11:24:27 -0700 Subject: [PATCH 434/480] Websocket close --- lib/Socket.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/Socket.ts b/lib/Socket.ts index 2f62c1c1..cb6befa7 100644 --- a/lib/Socket.ts +++ b/lib/Socket.ts @@ -21,4 +21,11 @@ export class Socket { else if (endpoint === "transactions") this.socket.on("transactions", (msg: any) => cb(msg)) } + + public close(cb: any): void { + this.socket.close() + if(cb) { + cb(); + } + } } From 3dc356fe56459aeca9dbc8a46ff1db69e5896d29 Mon Sep 17 00:00:00 2001 From: Peter Zenger Date: Mon, 15 Jul 2019 11:38:02 -0700 Subject: [PATCH 435/480] fixing type --- lib/Socket.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Socket.ts b/lib/Socket.ts index cb6befa7..08d8c876 100644 --- a/lib/Socket.ts +++ b/lib/Socket.ts @@ -22,7 +22,7 @@ export class Socket { this.socket.on("transactions", (msg: any) => cb(msg)) } - public close(cb: any): void { + public close(cb?: Function): void { this.socket.close() if(cb) { cb(); From b97dab5d51ad9b05fda21e2469bcd974ac51937c Mon Sep 17 00:00:00 2001 From: Peter Zenger Date: Mon, 15 Jul 2019 12:08:08 -0700 Subject: [PATCH 436/480] Cleanup some types in packge, upgrade socket.io version --- package.json | 16 +++++++------ yarn.lock | 66 +++++++++++++++++++++------------------------------- 2 files changed, 36 insertions(+), 46 deletions(-) diff --git a/package.json b/package.json index 15d389db..8f94d00c 100644 --- a/package.json +++ b/package.json @@ -31,11 +31,6 @@ "url": "git+https://github.com/Bitcoin-com/bitbox-sdk.git" }, "dependencies": { - "@types/bigi": "^1.4.2", - "@types/bip39": "^2.4.2", - "@types/node": "^10.11.7", - "@types/randombytes": "^2.0.0", - "@types/wif": "^2.0.1", "assert": "^1.4.1", "axios": "0.19.0", "bc-bip68": "^1.0.5", @@ -60,15 +55,22 @@ "repl.history": "^0.1.4", "safe-buffer": "^5.1.2", "satoshi-bitcoin": "^1.0.4", - "socket.io": "^2.1.1", - "socket.io-client": "^2.1.1", + "socket.io": "^2.2.0", + "socket.io-client": "^2.2.0", "wif": "^2.0.6" }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^0.1.3", + "@types/bigi": "^1.4.2", + "@types/bip39": "^2.4.2", "@types/chai": "^4.1.7", "@types/mocha": "^5.2.6", + "@types/node": "^12.6.3", + "@types/randombytes": "^2.0.0", "@types/sinon": "^7.0.11", + "@types/socket.io": "^2.1.2", + "@types/socket.io-client": "^1.4.32", + "@types/wif": "^2.0.1", "chai": "^4.1.2", "coveralls": "^3.0.2", "eslint": "^5.5.0", diff --git a/yarn.lock b/yarn.lock index 37c7d770..3748d0fb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -277,9 +277,10 @@ version "12.0.8" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.0.8.tgz#551466be11b2adc3f3d47156758f610bd9f6b1d8" -"@types/node@^10.11.7": - version "10.14.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.9.tgz#2e8d678039d27943ce53a1913386133227fd9066" +"@types/node@^12.6.3": + version "12.6.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.6.3.tgz#44d507c5634f85e7164707ca36bba21b5213d487" + integrity sha512-7TEYTQT1/6PP53NftXXabIZDaZfaoBdeBm8Md/i7zsWRoBe0YwOXguyK8vhHs8ehgB/w9U4K/6EWuTyp0W6nIA== "@types/normalize-package-data@^2.4.0": version "2.4.0" @@ -299,6 +300,18 @@ version "7.0.13" resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-7.0.13.tgz#ca039c23a9e27ebea53e0901ef928ea2a1a6d313" +"@types/socket.io-client@^1.4.32": + version "1.4.32" + resolved "https://registry.yarnpkg.com/@types/socket.io-client/-/socket.io-client-1.4.32.tgz#988a65a0386c274b1c22a55377fab6a30789ac14" + integrity sha512-Vs55Kq8F+OWvy1RLA31rT+cAyemzgm0EWNeax6BWF8H7QiiOYMJIdcwSDdm5LVgfEkoepsWkS+40+WNb7BUMbg== + +"@types/socket.io@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@types/socket.io/-/socket.io-2.1.2.tgz#7165c2587cc3b86b44aa78e2a0060140551de211" + integrity sha512-Ind+4qMNfQ62llyB4IMs1D8znMEBsMKohZBPqfBUIXqLQ9bdtWIbNTBWwtdcBWJKnokMZGcmWOOKslatni5vtA== + dependencies: + "@types/node" "*" + "@types/wif@^2.0.1": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/wif/-/wif-2.0.1.tgz#bcab48b201403cb759cd7659aff4610cfd4888f4" @@ -1746,7 +1759,7 @@ debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.0: dependencies: ms "^2.1.1" -debuglog@*, debuglog@^1.0.1: +debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" @@ -3111,7 +3124,7 @@ import-lazy@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" -imurmurhash@*, imurmurhash@^0.1.4: +imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -3747,7 +3760,7 @@ libnpm@^2.0.1: read-package-json "^2.0.13" stringify-package "^1.0.0" -libnpmaccess@*, libnpmaccess@^3.0.1: +libnpmaccess@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-3.0.1.tgz#5b3a9de621f293d425191aa2e779102f84167fa8" dependencies: @@ -3773,7 +3786,7 @@ libnpmhook@^5.0.2: get-stream "^4.0.0" npm-registry-fetch "^3.8.0" -libnpmorg@*, libnpmorg@^1.0.0: +libnpmorg@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-1.0.0.tgz#979b868c48ba28c5820e3bb9d9e73c883c16a232" dependencies: @@ -3796,7 +3809,7 @@ libnpmpublish@^1.1.0: semver "^5.5.1" ssri "^6.0.1" -libnpmsearch@*, libnpmsearch@^2.0.0: +libnpmsearch@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-2.0.1.tgz#eccc73a8fbf267d765d18082b85daa2512501f96" dependencies: @@ -3804,7 +3817,7 @@ libnpmsearch@*, libnpmsearch@^2.0.0: get-stream "^4.0.0" npm-registry-fetch "^3.8.0" -libnpmteam@*, libnpmteam@^1.0.1: +libnpmteam@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-1.0.1.tgz#ff704b1b6c06ea674b3b1101ac3e305f5114f213" dependencies: @@ -3877,10 +3890,6 @@ lockfile@^1.0.4: dependencies: signal-exit "^3.0.2" -lodash._baseindexof@*: - version "3.1.0" - resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c" - lodash._baseuniq@~4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8" @@ -3888,28 +3897,10 @@ lodash._baseuniq@~4.6.0: lodash._createset "~4.0.0" lodash._root "~3.0.0" -lodash._bindcallback@*: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" - -lodash._cacheindexof@*: - version "3.0.2" - resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92" - -lodash._createcache@*: - version "3.1.2" - resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093" - dependencies: - lodash._getnative "^3.0.0" - lodash._createset@~4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" -lodash._getnative@*, lodash._getnative@^3.0.0: - version "3.9.1" - resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" - lodash._root@~3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" @@ -3946,10 +3937,6 @@ lodash.memoize@~3.0.3: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" -lodash.restparam@*: - version "3.6.1" - resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" - lodash.set@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" @@ -4575,7 +4562,7 @@ npm-pick-manifest@^2.2.3: npm-package-arg "^6.0.0" semver "^5.4.1" -npm-profile@*, npm-profile@^4.0.1: +npm-profile@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-4.0.1.tgz#d350f7a5e6b60691c7168fbb8392c3603583f5aa" dependencies: @@ -5541,7 +5528,7 @@ readable-stream@~1.1.10: isarray "0.0.1" string_decoder "~0.10.x" -readdir-scoped-modules@*, readdir-scoped-modules@^1.0.0: +readdir-scoped-modules@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747" dependencies: @@ -6000,7 +5987,7 @@ socket.io-adapter@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b" -socket.io-client@2.2.0, socket.io-client@^2.1.1: +socket.io-client@2.2.0, socket.io-client@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.2.0.tgz#84e73ee3c43d5020ccc1a258faeeb9aec2723af7" dependencies: @@ -6027,9 +6014,10 @@ socket.io-parser@~3.3.0: debug "~3.1.0" isarray "2.0.1" -socket.io@^2.1.1: +socket.io@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.2.0.tgz#f0f633161ef6712c972b307598ecd08c9b1b4d5b" + integrity sha512-wxXrIuZ8AILcn+f1B4ez4hJTPG24iNgxBBDaJfT6MsyOhVYiTXWexGoPkd87ktJG8kQEcL/NBvRi64+9k4Kc0w== dependencies: debug "~4.1.0" engine.io "~3.3.1" From fef7a7cc6b5ce0160af1c8bcf8f4a4e582ff275b Mon Sep 17 00:00:00 2001 From: Peter Zenger Date: Mon, 15 Jul 2019 12:08:39 -0700 Subject: [PATCH 437/480] Update Socket connnection / close code, refactor some constant values slighly to follow JS convention --- lib/Address.ts | 4 +-- lib/BITBOX.ts | 14 ++++++++--- lib/Block.ts | 4 +-- lib/CashAccounts.ts | 4 +-- lib/Control.ts | 4 +-- lib/Generating.ts | 4 +-- lib/Mining.ts | 4 +-- lib/RawTransactions.ts | 4 +-- lib/Socket.ts | 9 ++++--- lib/Transaction.ts | 4 +-- lib/TransactionBuilder.ts | 4 +-- lib/Util.ts | 4 +-- lib/interfaces/BITBOXInterfaces.ts | 3 ++- test/unit/Address.ts | 4 +-- test/unit/BITBOX.ts | 40 +++++++++++++++--------------- test/unit/Block.ts | 4 +-- test/unit/Blockchain.ts | 4 +-- test/unit/CashAccounts.ts | 4 +-- test/unit/Control.ts | 4 +-- test/unit/Generating.ts | 5 ++-- test/unit/Mining.ts | 5 ++-- test/unit/RawTransactions.ts | 4 +-- test/unit/Transaction.ts | 8 +++--- test/unit/Util.ts | 4 +-- 24 files changed, 79 insertions(+), 73 deletions(-) diff --git a/lib/Address.ts b/lib/Address.ts index 448ccdf4..c03dd744 100644 --- a/lib/Address.ts +++ b/lib/Address.ts @@ -7,7 +7,7 @@ import { } from "bitcoin-com-rest" import * as bcl from "bitcoincashjs-lib" import { BchInfo } from ".." -import { resturl } from "./BITBOX" +import { REST_URL } from "./BITBOX" // consts // TODO: port require statements to impprt @@ -37,7 +37,7 @@ interface DecodedHash160 { export class Address { public restURL: string - constructor(restURL: string = resturl) { + constructor(restURL: string = REST_URL) { this.restURL = restURL } diff --git a/lib/BITBOX.ts b/lib/BITBOX.ts index 33ac98a6..5276dbc1 100644 --- a/lib/BITBOX.ts +++ b/lib/BITBOX.ts @@ -24,12 +24,14 @@ import { TransactionBuilder } from "./TransactionBuilder" import { Util } from "./Util" // import { Wallet } from "./Wallet" -// consts -export const resturl = "https://rest.bitcoin.com/v2/" -export const tresturl = "https://trest.bitcoin.com/v2/" +// Defaults +export const WS_URL = 'wss://rest.bitcoin.com' +export const REST_URL = "https://rest.bitcoin.com/v2/" +export const TREST_URL = "https://trest.bitcoin.com/v2/" export class BITBOX { public restURL: string + public wsURL: string public Address: Address public BitcoinCash: BitcoinCash public Block: Block @@ -54,7 +56,11 @@ export class BITBOX { constructor(config: IConfig = {}) { if (config && config.restURL && config.restURL !== "") this.restURL = config.restURL - else this.restURL = resturl + else this.restURL = REST_URL + + if (config && config.wsURL && config.wsURL !== "") + this.wsURL = config.wsURL + else this.wsURL = WS_URL this.Address = new Address(this.restURL) this.BitcoinCash = new BitcoinCash(this.Address) diff --git a/lib/Block.ts b/lib/Block.ts index 698606df..52217255 100644 --- a/lib/Block.ts +++ b/lib/Block.ts @@ -1,10 +1,10 @@ import axios, { AxiosRequestConfig, AxiosResponse } from "axios" import { BlockDetailsResult } from "bitcoin-com-rest" -import { resturl } from "./BITBOX" +import { REST_URL } from "./BITBOX" export class Block { public restURL: string - constructor(restURL: string = resturl) { + constructor(restURL: string = REST_URL) { this.restURL = restURL } diff --git a/lib/CashAccounts.ts b/lib/CashAccounts.ts index 48af3172..943c8ea3 100644 --- a/lib/CashAccounts.ts +++ b/lib/CashAccounts.ts @@ -4,11 +4,11 @@ import { CashAccountLookupResult, CashAccountReverseLookupResult } from "bitcoin-com-rest" -import { resturl } from "./BITBOX" +import { REST_URL } from "./BITBOX" export class CashAccounts { public restURL: string - constructor(restURL: string = resturl) { + constructor(restURL: string = REST_URL) { this.restURL = restURL } diff --git a/lib/Control.ts b/lib/Control.ts index 4e38a4f6..85fb6745 100644 --- a/lib/Control.ts +++ b/lib/Control.ts @@ -1,10 +1,10 @@ import axios, { AxiosResponse } from "axios" import { NodeInfoResult } from "bitcoin-com-rest" -import { resturl } from "./BITBOX" +import { REST_URL } from "./BITBOX" export class Control { public restURL: string - constructor(restURL: string = resturl) { + constructor(restURL: string = REST_URL) { this.restURL = restURL } diff --git a/lib/Generating.ts b/lib/Generating.ts index ebe41813..9b4c4f9d 100644 --- a/lib/Generating.ts +++ b/lib/Generating.ts @@ -1,9 +1,9 @@ import axios, { AxiosResponse } from "axios" -import { resturl } from "./BITBOX" +import { REST_URL } from "./BITBOX" export class Generating { public restURL: string - constructor(restURL: string = resturl) { + constructor(restURL: string = REST_URL) { this.restURL = restURL } diff --git a/lib/Mining.ts b/lib/Mining.ts index f07a5252..7c68d49e 100644 --- a/lib/Mining.ts +++ b/lib/Mining.ts @@ -1,9 +1,9 @@ import axios, { AxiosResponse } from "axios" -import { resturl } from "./BITBOX" +import { REST_URL } from "./BITBOX" export class Mining { public restURL: string - constructor(restURL: string = resturl) { + constructor(restURL: string = REST_URL) { this.restURL = restURL } diff --git a/lib/RawTransactions.ts b/lib/RawTransactions.ts index 441400a0..b339d3be 100644 --- a/lib/RawTransactions.ts +++ b/lib/RawTransactions.ts @@ -1,10 +1,10 @@ import axios, { AxiosRequestConfig, AxiosResponse } from "axios" import { VerboseRawTransactionResult } from "bitcoin-com-rest" -import { resturl } from "./BITBOX" +import { REST_URL } from "./BITBOX" export class RawTransactions { public restURL: string - constructor(restURL: string = resturl) { + constructor(restURL: string = REST_URL) { this.restURL = restURL } diff --git a/lib/Socket.ts b/lib/Socket.ts index 08d8c876..18a04983 100644 --- a/lib/Socket.ts +++ b/lib/Socket.ts @@ -1,5 +1,6 @@ -const io = require("socket.io-client") +import { WS_URL } from './BITBOX'; +const io = require('socket.io-client') export class Socket { socket: any constructor(config: any = {}) { @@ -7,14 +8,14 @@ export class Socket { // TODO remove this check in v2.0 this.socket = io(`${config}`) } else { - const restURL = config.restURL ? config.restURL : 'wss://rest.bitcoin.com' - this.socket = io(restURL, { transports: ['websocket'] }); + const wsURL = config.wsURL ? config.wsURL : WS_URL + this.socket = io(wsURL, { transports: ['websocket'] }); if (config.callback) config.callback() } } - public listen(endpoint: string, cb: any): void { + public listen(endpoint: string, cb: Function): void { this.socket.emit(endpoint) if (endpoint === "blocks") this.socket.on("blocks", (msg: any) => cb(msg)) diff --git a/lib/Transaction.ts b/lib/Transaction.ts index f8019e13..e46799f6 100644 --- a/lib/Transaction.ts +++ b/lib/Transaction.ts @@ -1,10 +1,10 @@ import axios, { AxiosRequestConfig, AxiosResponse } from "axios" import { TxnDetailsResult } from "bitcoin-com-rest" -import { resturl } from "./BITBOX" +import { REST_URL } from "./BITBOX" export class Transaction { public restURL: string - constructor(restURL: string = resturl) { + constructor(restURL: string = REST_URL) { this.restURL = restURL } diff --git a/lib/TransactionBuilder.ts b/lib/TransactionBuilder.ts index b812689d..fe8c6b04 100644 --- a/lib/TransactionBuilder.ts +++ b/lib/TransactionBuilder.ts @@ -2,7 +2,7 @@ import { ECPair } from "bitcoincashjs-lib" import { BchInfo } from ".." import { Address } from "./Address" -import { tresturl } from "./BITBOX" +import { TREST_URL } from "./BITBOX" // consts const Bitcoin = require("bitcoincashjs-lib") @@ -41,7 +41,7 @@ export class TransactionBuilder { if (network === "mainnet") { this._address = new Address() } else { - this._address = new Address(tresturl) + this._address = new Address(TREST_URL) } if (network === "bitcoincash" || network === "mainnet") bitcoincash = coininfo.bitcoincash.main diff --git a/lib/Util.ts b/lib/Util.ts index b7226827..a8f405ac 100644 --- a/lib/Util.ts +++ b/lib/Util.ts @@ -1,5 +1,5 @@ import axios, { AxiosRequestConfig, AxiosResponse } from "axios" -import { resturl } from "./BITBOX" +import { REST_URL } from "./BITBOX" export interface AddressDetails { isvalid: boolean @@ -15,7 +15,7 @@ export interface AddressDetails { export class Util { public restURL: string - constructor(restURL: string = resturl) { + constructor(restURL: string = REST_URL) { this.restURL = restURL } diff --git a/lib/interfaces/BITBOXInterfaces.ts b/lib/interfaces/BITBOXInterfaces.ts index 0e07f41c..68cd764e 100644 --- a/lib/interfaces/BITBOXInterfaces.ts +++ b/lib/interfaces/BITBOXInterfaces.ts @@ -1,3 +1,4 @@ export interface IConfig { - restURL?: string + restURL?: string, + wsURL?: string } diff --git a/test/unit/Address.ts b/test/unit/Address.ts index 87dfa4bc..96b36e46 100644 --- a/test/unit/Address.ts +++ b/test/unit/Address.ts @@ -6,7 +6,7 @@ import { } from "bitcoin-com-rest" import * as chai from "chai" import { Address } from "../../lib/Address" -import { BITBOX, resturl } from "../../lib/BITBOX" +import { BITBOX, REST_URL } from "../../lib/BITBOX" import axios from "axios" @@ -113,7 +113,7 @@ describe("#Address", (): void => { it("should have a restURL property", (): void => { const address: Address = new Address() - assert.equal(address.restURL, resturl) + assert.equal(address.restURL, REST_URL) }) }) diff --git a/test/unit/BITBOX.ts b/test/unit/BITBOX.ts index 48ebbbb0..44cbc3ef 100644 --- a/test/unit/BITBOX.ts +++ b/test/unit/BITBOX.ts @@ -17,104 +17,104 @@ import { Transaction } from "../../lib/Transaction" import { TransactionBuilder } from "../../lib/TransactionBuilder" import { Util } from "../../lib/Util" import { Schnorr } from "../../lib/Schnorr" -import { resturl } from "../../lib/BITBOX" +import { REST_URL } from "../../lib/BITBOX" import { Socket } from "../../lib/Socket" describe("#BITBOX", (): void => { describe("#BITBOXConstructor", (): void => { it("should create instance of BITBOX", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + const bitbox: BITBOX = new BITBOX({ restURL: REST_URL }) assert.equal(bitbox instanceof BITBOX, true) }) it("should have a restURL property", (): void => { const bitbox: BITBOX = new BITBOX({ restURL: "https://rest.bitcoin.com/v2/" }) - assert.equal(bitbox.restURL, resturl) + assert.equal(bitbox.restURL, REST_URL) }) it("should have a Address property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + const bitbox: BITBOX = new BITBOX({ restURL: REST_URL }) assert.equal(bitbox.Address instanceof Address, true) }) it("should have a BitcoinCash property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + const bitbox: BITBOX = new BITBOX({ restURL: REST_URL }) assert.equal(bitbox.BitcoinCash instanceof BitcoinCash, true) }) it("should have a Block property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + const bitbox: BITBOX = new BITBOX({ restURL: REST_URL }) assert.equal(bitbox.Block instanceof Block, true) }) it("should have a Blockchain property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + const bitbox: BITBOX = new BITBOX({ restURL: REST_URL }) assert.equal(bitbox.Blockchain instanceof Blockchain, true) }) it("should have a Control property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + const bitbox: BITBOX = new BITBOX({ restURL: REST_URL }) assert.equal(bitbox.Control instanceof Control, true) }) it("should have a Generating property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + const bitbox: BITBOX = new BITBOX({ restURL: REST_URL }) assert.equal(bitbox.Generating instanceof Generating, true) }) it("should have a HDNode property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + const bitbox: BITBOX = new BITBOX({ restURL: REST_URL }) assert.equal(bitbox.HDNode instanceof HDNode, true) }) it("should have a Mining property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + const bitbox: BITBOX = new BITBOX({ restURL: REST_URL }) assert.equal(bitbox.Mining instanceof Mining, true) }) it("should have a Mnemonic property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + const bitbox: BITBOX = new BITBOX({ restURL: REST_URL }) assert.equal(bitbox.Mnemonic instanceof Mnemonic, true) }) it("should have a Price property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + const bitbox: BITBOX = new BITBOX({ restURL: REST_URL }) assert.equal(bitbox.Price instanceof Price, true) }) it("should have a RawTransactions property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + const bitbox: BITBOX = new BITBOX({ restURL: REST_URL }) assert.equal(bitbox.RawTransactions instanceof RawTransactions, true) }) it("should have a Script property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + const bitbox: BITBOX = new BITBOX({ restURL: REST_URL }) assert.equal(bitbox.Script instanceof Script, true) }) it("should have a Transaction property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + const bitbox: BITBOX = new BITBOX({ restURL: REST_URL }) assert.equal(bitbox.Transaction instanceof Transaction, true) }) // it("should have a TransactionBuilder property", (): void => { - // const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + // const bitbox: BITBOX = new BITBOX({ restURL: REST_URL }) // assert.equal(bitbox.TransactionBuilder instanceof TransactionBuilder, true) // }) it("should have a Util property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + const bitbox: BITBOX = new BITBOX({ restURL: REST_URL }) assert.equal(bitbox.Util instanceof Util, true) }) it("should have a Schnorr property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + const bitbox: BITBOX = new BITBOX({ restURL: REST_URL }) assert.equal(bitbox.Schnorr instanceof Schnorr, true) }) it("should have a Socket property", (): void => { - const bitbox: BITBOX = new BITBOX({ restURL: resturl }) + const bitbox: BITBOX = new BITBOX({ restURL: REST_URL }) assert.strictEqual(bitbox.Socket, Socket) }) }) diff --git a/test/unit/Block.ts b/test/unit/Block.ts index 98b95f4b..e648530f 100644 --- a/test/unit/Block.ts +++ b/test/unit/Block.ts @@ -4,7 +4,7 @@ import axios from "axios" import * as sinon from "sinon" import { BITBOX } from "../../lib/BITBOX" import { Block } from "../../lib/Block" -import { resturl } from "../../lib/BITBOX" +import { REST_URL } from "../../lib/BITBOX" import * as util from "util" import { BlockDetailsResult } from "bitcoin-com-rest" @@ -29,7 +29,7 @@ describe("#Block", (): void => { it("should have a restURL property", (): void => { const block: Block = new Block() - assert.equal(block.restURL, resturl) + assert.equal(block.restURL, REST_URL) }) describe("#detailsByHash", (): void => { diff --git a/test/unit/Blockchain.ts b/test/unit/Blockchain.ts index f46b7c09..dcb9f465 100644 --- a/test/unit/Blockchain.ts +++ b/test/unit/Blockchain.ts @@ -4,7 +4,7 @@ import axios from "axios" import * as sinon from "sinon" import { BITBOX } from "../../lib/BITBOX" import { Blockchain } from "../../lib/Blockchain" -import { resturl } from "../../lib/BITBOX" +import { REST_URL } from "../../lib/BITBOX" import * as util from "util" import { BlockHeaderResult } from "bitcoin-com-rest" @@ -32,7 +32,7 @@ describe("#Blockchain", (): void => { it("should have a restURL property", (): void => { const blockchain: Blockchain = new Blockchain() - assert.equal(blockchain.restURL, resturl) + assert.equal(blockchain.restURL, REST_URL) }) }) diff --git a/test/unit/CashAccounts.ts b/test/unit/CashAccounts.ts index 40a0c7fa..77733727 100644 --- a/test/unit/CashAccounts.ts +++ b/test/unit/CashAccounts.ts @@ -7,7 +7,7 @@ import { } from "bitcoin-com-rest" import * as chai from "chai" import * as util from "util" -import { BITBOX, resturl } from "../../lib/BITBOX" +import { BITBOX, REST_URL } from "../../lib/BITBOX" import { CashAccounts } from "../../lib/CashAccounts" // consts @@ -33,7 +33,7 @@ describe("#CashAccounts", (): void => { it("should have a restURL property", (): void => { const cashAccounts: CashAccounts = new CashAccounts() - assert.equal(cashAccounts.restURL, resturl) + assert.equal(cashAccounts.restURL, REST_URL) }) }) diff --git a/test/unit/Control.ts b/test/unit/Control.ts index 38a43227..81a730ad 100644 --- a/test/unit/Control.ts +++ b/test/unit/Control.ts @@ -4,7 +4,7 @@ import axios from "axios"; import * as sinon from "sinon"; import { BITBOX } from "../../lib/BITBOX" import { Control } from "../../lib/Control" -import { resturl } from "../../lib/BITBOX" +import { REST_URL } from "../../lib/BITBOX" // consts const bitbox: BITBOX = new BITBOX() @@ -18,7 +18,7 @@ describe("#Control", (): void => { it("should have a restURL property", (): void => { const control: Control = new Control() - assert.equal(control.restURL, resturl) + assert.equal(control.restURL, REST_URL) }) }) diff --git a/test/unit/Generating.ts b/test/unit/Generating.ts index 2eaf3731..a882601e 100644 --- a/test/unit/Generating.ts +++ b/test/unit/Generating.ts @@ -2,9 +2,8 @@ import * as assert from "assert"; import axios from "axios"; import * as sinon from "sinon"; -import { BITBOX } from "../../lib/BITBOX" +import { BITBOX, REST_URL } from "../../lib/BITBOX" import { Generating } from "../../lib/Generating" -import { resturl } from "../../lib/BITBOX" // consts const bitbox: BITBOX = new BITBOX() @@ -18,7 +17,7 @@ describe("#Generating", (): void => { it("should have a restURL property", (): void => { const generating: Generating = new Generating() - assert.equal(generating.restURL, resturl) + assert.equal(generating.restURL, REST_URL) }) }) diff --git a/test/unit/Mining.ts b/test/unit/Mining.ts index 1a797730..7b394e0b 100644 --- a/test/unit/Mining.ts +++ b/test/unit/Mining.ts @@ -2,9 +2,8 @@ import * as assert from "assert"; import axios from "axios"; import * as sinon from "sinon"; -import { BITBOX } from "../../lib/BITBOX" +import { BITBOX, REST_URL } from "../../lib/BITBOX" import { Mining } from "../../lib/Mining" -import { resturl } from "../../lib/BITBOX" // consts const bitbox: BITBOX = new BITBOX() @@ -18,7 +17,7 @@ describe("#Mining", (): void => { it("should have a restURL property", (): void => { const mining: Mining = new Mining() - assert.equal(mining.restURL, resturl) + assert.equal(mining.restURL, REST_URL) }) }) diff --git a/test/unit/RawTransactions.ts b/test/unit/RawTransactions.ts index 495269c1..296623af 100644 --- a/test/unit/RawTransactions.ts +++ b/test/unit/RawTransactions.ts @@ -5,7 +5,7 @@ import { } from "bitcoin-com-rest" import * as chai from "chai" import * as util from "util" -import { BITBOX, resturl } from "../../lib/BITBOX" +import { BITBOX, REST_URL } from "../../lib/BITBOX" import { RawTransactions } from "../../lib/RawTransactions" import axios from "axios" import * as sinon from "sinon" @@ -31,7 +31,7 @@ describe("#RawTransactions", (): void => { it("should have a restURL property", (): void => { const rawtransactions: RawTransactions = new RawTransactions() - assert.equal(rawtransactions.restURL, resturl) + assert.equal(rawtransactions.restURL, REST_URL) }) }) diff --git a/test/unit/Transaction.ts b/test/unit/Transaction.ts index c497bd5b..307987ee 100644 --- a/test/unit/Transaction.ts +++ b/test/unit/Transaction.ts @@ -1,12 +1,12 @@ // imports import * as chai from "chai" -import { BITBOX } from "../../lib/BITBOX" -import { Transaction } from "../../lib/Transaction" -import { resturl } from "../../lib/BITBOX" import { TxnDetailsResult } from "bitcoin-com-rest" import axios from "axios" import * as sinon from "sinon" +import { BITBOX, REST_URL } from "../../lib/BITBOX" +import { Transaction } from "../../lib/Transaction" + // consts const bitbox: BITBOX = new BITBOX() const assert: Chai.AssertStatic = chai.assert @@ -25,7 +25,7 @@ describe("#Transaction", (): void => { it("should have a restURL property", (): void => { const transaction: Transaction = new Transaction() - assert.equal(transaction.restURL, resturl) + assert.equal(transaction.restURL, REST_URL) }) }) diff --git a/test/unit/Util.ts b/test/unit/Util.ts index ab29ccc4..b8c890e8 100644 --- a/test/unit/Util.ts +++ b/test/unit/Util.ts @@ -2,7 +2,7 @@ import * as chai from "chai" import { BITBOX } from "../../lib/BITBOX" import { Util } from "../../lib/Util" -import { resturl } from "../../lib/BITBOX" +import { REST_URL } from "../../lib/BITBOX" import * as util from "util" import { AddressValidateResult } from "bitcoin-com-rest" import axios from "axios" @@ -32,7 +32,7 @@ describe("#Util", (): void => { it("should have a restURL property", (): void => { const util: Util = new Util() - assert.equal(util.restURL, resturl) + assert.equal(util.restURL, REST_URL) }) }) From 1d4b34d610180cf8f89e91044e2ff268b5e1a279 Mon Sep 17 00:00:00 2001 From: Peter Zenger Date: Mon, 15 Jul 2019 12:12:12 -0700 Subject: [PATCH 438/480] Fix double import --- test/unit/Util.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/unit/Util.ts b/test/unit/Util.ts index b8c890e8..e2fbc3c1 100644 --- a/test/unit/Util.ts +++ b/test/unit/Util.ts @@ -1,8 +1,7 @@ // imports import * as chai from "chai" -import { BITBOX } from "../../lib/BITBOX" +import { BITBOX, REST_URL } from "../../lib/BITBOX" import { Util } from "../../lib/Util" -import { REST_URL } from "../../lib/BITBOX" import * as util from "util" import { AddressValidateResult } from "bitcoin-com-rest" import axios from "axios" From f83f6107dacb65123c27afff5acb3fa7f21a8493 Mon Sep 17 00:00:00 2001 From: Peter Zenger Date: Mon, 15 Jul 2019 12:19:36 -0700 Subject: [PATCH 439/480] fix import --- lib/Blockchain.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/Blockchain.ts b/lib/Blockchain.ts index 11480c49..5589e7ad 100644 --- a/lib/Blockchain.ts +++ b/lib/Blockchain.ts @@ -13,11 +13,11 @@ import { MempoolInfoResult, TxOutResult } from "bitcoin-com-rest" -import { resturl } from "./BITBOX" +import { REST_URL } from "./BITBOX" export class Blockchain { public restURL: string - constructor(restURL: string = resturl) { + constructor(restURL: string = REST_URL) { this.restURL = restURL } From 47a3e61215c4349f5c97017b4805e2270da7faf1 Mon Sep 17 00:00:00 2001 From: Peter Zenger Date: Mon, 15 Jul 2019 13:12:15 -0700 Subject: [PATCH 440/480] correct node types --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 8f94d00c..e4d3d268 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "@types/bip39": "^2.4.2", "@types/chai": "^4.1.7", "@types/mocha": "^5.2.6", - "@types/node": "^12.6.3", + "@types/node": "^10.11.7", "@types/randombytes": "^2.0.0", "@types/sinon": "^7.0.11", "@types/socket.io": "^2.1.2", diff --git a/yarn.lock b/yarn.lock index 3748d0fb..eae12538 100644 --- a/yarn.lock +++ b/yarn.lock @@ -277,10 +277,10 @@ version "12.0.8" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.0.8.tgz#551466be11b2adc3f3d47156758f610bd9f6b1d8" -"@types/node@^12.6.3": - version "12.6.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.6.3.tgz#44d507c5634f85e7164707ca36bba21b5213d487" - integrity sha512-7TEYTQT1/6PP53NftXXabIZDaZfaoBdeBm8Md/i7zsWRoBe0YwOXguyK8vhHs8ehgB/w9U4K/6EWuTyp0W6nIA== +"@types/node@^10.11.7": + version "10.14.12" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.12.tgz#0eec3155a46e6c4db1f27c3e588a205f767d622f" + integrity sha512-QcAKpaO6nhHLlxWBvpc4WeLrTvPqlHOvaj0s5GriKkA1zq+bsFBPpfYCvQhLqLgYlIko8A9YrPdaMHCo5mBcpg== "@types/normalize-package-data@^2.4.0": version "2.4.0" From 350e0e79e6f27ef4c794d98cb72116f2d5396f5b Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 24 Jul 2019 13:57:09 -0700 Subject: [PATCH 441/480] Socket interfaces and urls. --- lib/BITBOX.ts | 8 +++++--- lib/Socket.ts | 30 ++++++++++++++++++------------ lib/interfaces/BITBOXInterfaces.ts | 8 +++++++- package.json | 2 +- 4 files changed, 31 insertions(+), 17 deletions(-) diff --git a/lib/BITBOX.ts b/lib/BITBOX.ts index 5276dbc1..7541575d 100644 --- a/lib/BITBOX.ts +++ b/lib/BITBOX.ts @@ -25,7 +25,10 @@ import { Util } from "./Util" // import { Wallet } from "./Wallet" // Defaults -export const WS_URL = 'wss://rest.bitcoin.com' +export const WS_URL = "wss://rest.bitcoin.com" +export const TWS_URL = "wss://trest.bitcoin.com" +// export const WS_URL = 'wss://ws.bitcoin.com' +// export const TWS_URL = 'wss://tws.bitcoin.com' export const REST_URL = "https://rest.bitcoin.com/v2/" export const TREST_URL = "https://trest.bitcoin.com/v2/" @@ -58,8 +61,7 @@ export class BITBOX { this.restURL = config.restURL else this.restURL = REST_URL - if (config && config.wsURL && config.wsURL !== "") - this.wsURL = config.wsURL + if (config && config.wsURL && config.wsURL !== "") this.wsURL = config.wsURL else this.wsURL = WS_URL this.Address = new Address(this.restURL) diff --git a/lib/Socket.ts b/lib/Socket.ts index 18a04983..256e8f0d 100644 --- a/lib/Socket.ts +++ b/lib/Socket.ts @@ -1,18 +1,24 @@ -import { WS_URL } from './BITBOX'; +import { WS_URL } from "./BITBOX" +import { SocketConfig } from "./interfaces/BITBOXInterfaces" -const io = require('socket.io-client') +const io: any = require("socket.io-client") export class Socket { socket: any - constructor(config: any = {}) { - if (typeof config === "string") { - // TODO remove this check in v2.0 - this.socket = io(`${config}`) + constructor(config: SocketConfig = {}) { + let websocketURL: string = "" + if (config.wsURL) { + // default to passed in wsURL + websocketURL = config.wsURL + } else if (config.restURL) { + // 2nd option deprecated restURL + websocketURL = config.restURL } else { - const wsURL = config.wsURL ? config.wsURL : WS_URL - this.socket = io(wsURL, { transports: ['websocket'] }); - - if (config.callback) config.callback() + // fallback to WS_URL + websocketURL = WS_URL } + this.socket = io(websocketURL, { transports: ["websocket"] }) + + if (config.callback) config.callback() } public listen(endpoint: string, cb: Function): void { @@ -25,8 +31,8 @@ export class Socket { public close(cb?: Function): void { this.socket.close() - if(cb) { - cb(); + if (cb) { + cb() } } } diff --git a/lib/interfaces/BITBOXInterfaces.ts b/lib/interfaces/BITBOXInterfaces.ts index 68cd764e..5ecc4af6 100644 --- a/lib/interfaces/BITBOXInterfaces.ts +++ b/lib/interfaces/BITBOXInterfaces.ts @@ -1,4 +1,10 @@ export interface IConfig { - restURL?: string, + restURL?: string wsURL?: string } + +export interface SocketConfig { + restURL?: string + wsURL?: string + callback?: Function +} diff --git a/package.json b/package.json index e4d3d268..3843e5a2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "8.4.2", + "version": "8.5.0", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ From fbed68ec6bf8facff1260333221d9a08635fb81f Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 24 Jul 2019 16:52:31 -0700 Subject: [PATCH 442/480] Change default WS_URL. --- lib/BITBOX.ts | 6 ++---- package.json | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/lib/BITBOX.ts b/lib/BITBOX.ts index 7541575d..36e22baa 100644 --- a/lib/BITBOX.ts +++ b/lib/BITBOX.ts @@ -25,10 +25,8 @@ import { Util } from "./Util" // import { Wallet } from "./Wallet" // Defaults -export const WS_URL = "wss://rest.bitcoin.com" -export const TWS_URL = "wss://trest.bitcoin.com" -// export const WS_URL = 'wss://ws.bitcoin.com' -// export const TWS_URL = 'wss://tws.bitcoin.com' +export const WS_URL = "wss://ws.bitcoin.com" +export const TWS_URL = "wss://tws.bitcoin.com" export const REST_URL = "https://rest.bitcoin.com/v2/" export const TREST_URL = "https://trest.bitcoin.com/v2/" diff --git a/package.json b/package.json index 3843e5a2..1121003b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "8.5.0", + "version": "8.5.1", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ From 377e9f9ad72b085e5230cfe7c9ac764623e550e6 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 30 Jul 2019 10:31:49 -0700 Subject: [PATCH 443/480] BitDB class. --- lib/BITBOX.ts | 10 ++++++++++ lib/BitDB.ts | 27 +++++++++++++++++++++++++++ lib/interfaces/BITBOXInterfaces.ts | 11 +++++++++++ package.json | 2 +- 4 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 lib/BitDB.ts diff --git a/lib/BITBOX.ts b/lib/BITBOX.ts index 36e22baa..442f2f4a 100644 --- a/lib/BITBOX.ts +++ b/lib/BITBOX.ts @@ -3,6 +3,7 @@ // imports import { Address } from "./Address" import { BitcoinCash } from "./BitcoinCash" +import { BitDB } from "./BitDB" import { Block } from "./Block" import { Blockchain } from "./Blockchain" import { CashAccounts } from "./CashAccounts" @@ -29,12 +30,16 @@ export const WS_URL = "wss://ws.bitcoin.com" export const TWS_URL = "wss://tws.bitcoin.com" export const REST_URL = "https://rest.bitcoin.com/v2/" export const TREST_URL = "https://trest.bitcoin.com/v2/" +export const BITDB_URL = "https://bitdb.bitcoin.com/" +export const TBITDB_URL = "https://tbitdb.bitcoin.com/" export class BITBOX { public restURL: string + public bitdbURL: string public wsURL: string public Address: Address public BitcoinCash: BitcoinCash + public BitDB: BitDB public Block: Block public Blockchain: Blockchain public CashAccounts: CashAccounts @@ -62,8 +67,13 @@ export class BITBOX { if (config && config.wsURL && config.wsURL !== "") this.wsURL = config.wsURL else this.wsURL = WS_URL + if (config && config.bitdbURL && config.bitdbURL !== "") + this.bitdbURL = config.bitdbURL + else this.bitdbURL = BITDB_URL + this.Address = new Address(this.restURL) this.BitcoinCash = new BitcoinCash(this.Address) + this.BitDB = new BitDB(this.bitdbURL) this.Block = new Block(this.restURL) this.Blockchain = new Blockchain(this.restURL) this.CashAccounts = new CashAccounts(this.restURL) diff --git a/lib/BitDB.ts b/lib/BitDB.ts new file mode 100644 index 00000000..f37be990 --- /dev/null +++ b/lib/BitDB.ts @@ -0,0 +1,27 @@ +// imports +import axios, { AxiosResponse } from "axios" +import { BITDB_URL } from "./BITBOX" +import { BitDBResponse, QueryInterface } from "./interfaces/BITBOXInterfaces" + +// consts +const Buffer = require("safe-buffer").Buffer + +export class BitDB { + public bitdbURL: string + constructor(bitdbURL: string = BITDB_URL) { + this.bitdbURL = bitdbURL + } + + public async get(query: QueryInterface): Promise { + try { + const s: string = JSON.stringify(query) + const b64: string = Buffer.from(s).toString("base64") + const url: string = `${this.bitdbURL}q/${b64}` + const tokenRes: AxiosResponse = await axios.get(url) + return tokenRes.data + } catch (error) { + if (error.response && error.response.data) throw error.response.data + else throw error + } + } +} diff --git a/lib/interfaces/BITBOXInterfaces.ts b/lib/interfaces/BITBOXInterfaces.ts index 5ecc4af6..5f9fff18 100644 --- a/lib/interfaces/BITBOXInterfaces.ts +++ b/lib/interfaces/BITBOXInterfaces.ts @@ -1,6 +1,7 @@ export interface IConfig { restURL?: string wsURL?: string + bitdbURL?: string } export interface SocketConfig { @@ -8,3 +9,13 @@ export interface SocketConfig { wsURL?: string callback?: Function } + +export interface QueryInterface { + amount?: number + label?: string + message?: string +} + +export interface BitDBResponse { + message: string +} diff --git a/package.json b/package.json index 1121003b..3aac657b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "8.5.1", + "version": "8.6.0", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ From b1ed9179300b9f78210ba1bfe9ff8ea54868b1a2 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Mon, 5 Aug 2019 11:22:26 -0700 Subject: [PATCH 444/480] BitSocket integration. --- lib/BITBOX.ts | 2 ++ lib/Socket.ts | 29 +++++++++++++++++++++------ lib/interfaces/BITBOXInterfaces.ts | 1 + package.json | 3 ++- yarn.lock | 32 ++++++++++++++++++++++++++++++ 5 files changed, 60 insertions(+), 7 deletions(-) diff --git a/lib/BITBOX.ts b/lib/BITBOX.ts index 442f2f4a..872757f3 100644 --- a/lib/BITBOX.ts +++ b/lib/BITBOX.ts @@ -28,6 +28,8 @@ import { Util } from "./Util" // Defaults export const WS_URL = "wss://ws.bitcoin.com" export const TWS_URL = "wss://tws.bitcoin.com" +export const BITSOCKET_URL = "https://bitsocket.bch.sx" +export const TBITSOCKET_URL = "https://tbitsocket.bitcoin.com" export const REST_URL = "https://rest.bitcoin.com/v2/" export const TREST_URL = "https://trest.bitcoin.com/v2/" export const BITDB_URL = "https://bitdb.bitcoin.com/" diff --git a/lib/Socket.ts b/lib/Socket.ts index 256e8f0d..461ce50d 100644 --- a/lib/Socket.ts +++ b/lib/Socket.ts @@ -1,9 +1,10 @@ -import { WS_URL } from "./BITBOX" +import { BITSOCKET_URL, WS_URL } from "./BITBOX" import { SocketConfig } from "./interfaces/BITBOXInterfaces" const io: any = require("socket.io-client") export class Socket { socket: any + bitsocketURL: string constructor(config: SocketConfig = {}) { let websocketURL: string = "" if (config.wsURL) { @@ -18,15 +19,31 @@ export class Socket { } this.socket = io(websocketURL, { transports: ["websocket"] }) + if (config.bitsocketURL) { + this.bitsocketURL = config.bitsocketURL + } else { + this.bitsocketURL = BITSOCKET_URL + } + if (config.callback) config.callback() } - public listen(endpoint: string, cb: Function): void { - this.socket.emit(endpoint) + public listen(query: string, cb: Function): void { + if (query === "blocks" || query === "transactions") { + this.socket.emit(query) - if (endpoint === "blocks") this.socket.on("blocks", (msg: any) => cb(msg)) - else if (endpoint === "transactions") - this.socket.on("transactions", (msg: any) => cb(msg)) + if (query === "blocks") this.socket.on("blocks", (msg: any) => cb(msg)) + else if (query === "transactions") + this.socket.on("transactions", (msg: any) => cb(msg)) + } else { + let EventSource = require("eventsource") + let b64 = Buffer.from(JSON.stringify(query)).toString("base64") + let socket = new EventSource(`${this.bitsocketURL}/s/` + b64) + + socket.onmessage = (msg: any) => { + cb(msg.data) + } + } } public close(cb?: Function): void { diff --git a/lib/interfaces/BITBOXInterfaces.ts b/lib/interfaces/BITBOXInterfaces.ts index 5f9fff18..ce6b96cc 100644 --- a/lib/interfaces/BITBOXInterfaces.ts +++ b/lib/interfaces/BITBOXInterfaces.ts @@ -7,6 +7,7 @@ export interface IConfig { export interface SocketConfig { restURL?: string wsURL?: string + bitsocketURL?: string callback?: Function } diff --git a/package.json b/package.json index 3aac657b..d26f3b21 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "8.6.0", + "version": "8.7.0", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ @@ -50,6 +50,7 @@ "buffer": "^5.1.0", "cashaddrjs": "^0.2.9", "coininfo": "Bitcoin-com/coininfo", + "eventsource": "^1.0.7", "qrcode": "^1.2.0", "randombytes": "^2.0.6", "repl.history": "^0.1.4", diff --git a/yarn.lock b/yarn.lock index eae12538..54895b71 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2384,6 +2384,13 @@ events@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/events/-/events-2.1.0.tgz#2a9a1e18e6106e0e812aa9ebd4a819b3c29c0ba5" +eventsource@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" + integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== + dependencies: + original "^1.0.0" + evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" @@ -4825,6 +4832,13 @@ optionator@^0.8.2: type-check "~0.3.2" wordwrap "~1.0.0" +original@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" + integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== + dependencies: + url-parse "^1.4.3" + os-browserify@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" @@ -5351,6 +5365,11 @@ querystring@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" +querystringify@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" + integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== + quick-lru@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" @@ -5636,6 +5655,11 @@ require-uncached@^1.0.3: caller-path "^0.1.0" resolve-from "^1.0.0" +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + resolve-from@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" @@ -6736,6 +6760,14 @@ url-parse-lax@^1.0.0: dependencies: prepend-http "^1.0.1" +url-parse@^1.4.3: + version "1.4.7" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" + integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + url-template@^2.0.8: version "2.0.8" resolved "https://registry.yarnpkg.com/url-template/-/url-template-2.0.8.tgz#fc565a3cccbff7730c775f5641f9555791439f21" From 84a9da007c7c44ac71ea892101b8b3e6eecd220f Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Mon, 5 Aug 2019 11:26:45 -0700 Subject: [PATCH 445/480] Interpolation. --- lib/Socket.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Socket.ts b/lib/Socket.ts index 461ce50d..586d897c 100644 --- a/lib/Socket.ts +++ b/lib/Socket.ts @@ -38,7 +38,7 @@ export class Socket { } else { let EventSource = require("eventsource") let b64 = Buffer.from(JSON.stringify(query)).toString("base64") - let socket = new EventSource(`${this.bitsocketURL}/s/` + b64) + let socket = new EventSource(`${this.bitsocketURL}/s/${b64}`) socket.onmessage = (msg: any) => { cb(msg.data) From abf059358a71b3f5c00a499f691e363d0a6e4b91 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Mon, 5 Aug 2019 11:49:37 -0700 Subject: [PATCH 446/480] Close bitsocket connection. --- lib/Socket.ts | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/lib/Socket.ts b/lib/Socket.ts index 586d897c..37bd498b 100644 --- a/lib/Socket.ts +++ b/lib/Socket.ts @@ -4,20 +4,19 @@ import { SocketConfig } from "./interfaces/BITBOXInterfaces" const io: any = require("socket.io-client") export class Socket { socket: any + websocketURL: string bitsocketURL: string constructor(config: SocketConfig = {}) { - let websocketURL: string = "" if (config.wsURL) { // default to passed in wsURL - websocketURL = config.wsURL + this.websocketURL = config.wsURL } else if (config.restURL) { // 2nd option deprecated restURL - websocketURL = config.restURL + this.websocketURL = config.restURL } else { // fallback to WS_URL - websocketURL = WS_URL + this.websocketURL = WS_URL } - this.socket = io(websocketURL, { transports: ["websocket"] }) if (config.bitsocketURL) { this.bitsocketURL = config.bitsocketURL @@ -30,6 +29,7 @@ export class Socket { public listen(query: string, cb: Function): void { if (query === "blocks" || query === "transactions") { + this.socket = io(this.websocketURL, { transports: ["websocket"] }) this.socket.emit(query) if (query === "blocks") this.socket.on("blocks", (msg: any) => cb(msg)) @@ -38,9 +38,8 @@ export class Socket { } else { let EventSource = require("eventsource") let b64 = Buffer.from(JSON.stringify(query)).toString("base64") - let socket = new EventSource(`${this.bitsocketURL}/s/${b64}`) - - socket.onmessage = (msg: any) => { + this.socket = new EventSource(`${this.bitsocketURL}/s/${b64}`) + this.socket.onmessage = (msg: any) => { cb(msg.data) } } From 5d007498bccf85e6e17d8ed3aa69d048b6a26f12 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 13 Aug 2019 10:31:15 -0700 Subject: [PATCH 447/480] created placeholder for sweep function and unit tests --- lib/Util.ts | 15 +++++++++++++++ test/unit/Util.ts | 7 +++++++ 2 files changed, 22 insertions(+) diff --git a/lib/Util.ts b/lib/Util.ts index a8f405ac..3597d403 100644 --- a/lib/Util.ts +++ b/lib/Util.ts @@ -49,4 +49,19 @@ export class Util { else throw error } } + + // Sweep a private key in compressed WIF format and send funds to another address. + // Returns the amount of BCH swept from address. Or 0 if no funds were found. + // Passing in optional balanceOnly flag will return just the balance without + // actually moving the funds. + async sweep(wif: string, toAddr: string, balaneOnly: boolean) { + try { + console.log(`wif: ${wif}`) + + return true + } catch (error) { + if (error.response && error.response.data) throw error.response.data + else throw error + } + } } diff --git a/test/unit/Util.ts b/test/unit/Util.ts index e2fbc3c1..6de1e2cd 100644 --- a/test/unit/Util.ts +++ b/test/unit/Util.ts @@ -123,4 +123,11 @@ describe("#Util", (): void => { } }) }) + + describe('#sweep', () => { + it('should do something', async () => { + const result = await bitbox.Util.sweep('abc123', 'abc123', true) + console.log(`result: ${result}`) + }) + }) }) From 63e2e377f74cec9571cc3e3cb01a271a4b18d35a Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 13 Aug 2019 12:43:10 -0700 Subject: [PATCH 448/480] Completed sweep convenience function and integration tests --- lib/Address.ts | 2 + lib/Util.ts | 117 +++++++++++++++++++++++++++++++++++++-- test/integration/util.js | 15 +++++ test/unit/Util.ts | 7 --- 4 files changed, 129 insertions(+), 12 deletions(-) diff --git a/lib/Address.ts b/lib/Address.ts index c03dd744..a82a93ca 100644 --- a/lib/Address.ts +++ b/lib/Address.ts @@ -253,6 +253,8 @@ export class Address { address: string | string[] ): Promise { try { + console.log(`calling ${this.restURL}`) + // Handle single address. if (typeof address === "string") { const response: AxiosResponse = await axios.get( diff --git a/lib/Util.ts b/lib/Util.ts index 3597d403..3974a0e7 100644 --- a/lib/Util.ts +++ b/lib/Util.ts @@ -1,6 +1,15 @@ import axios, { AxiosRequestConfig, AxiosResponse } from "axios" import { REST_URL } from "./BITBOX" +// Pull in additional libraries required to support the sweep function. +import { Address } from "./Address" +const addressLib = new Address(REST_URL) +import { ECPair } from "./ECPair" +const ecPair = new ECPair(addressLib) +import { TransactionBuilder } from "./TransactionBuilder" +import { BitcoinCash } from "./BitcoinCash" +const bitcoinCash = new BitcoinCash(addressLib) + export interface AddressDetails { isvalid: boolean address: string @@ -50,15 +59,113 @@ export class Util { } } - // Sweep a private key in compressed WIF format and send funds to another address. - // Returns the amount of BCH swept from address. Or 0 if no funds were found. + // Sweep a private key in compressed WIF format and sends funds to another + // address. // Passing in optional balanceOnly flag will return just the balance without // actually moving the funds. - async sweep(wif: string, toAddr: string, balaneOnly: boolean) { + // Or 0 if no funds are found, otherwise: + // Returns an object containing the amount of BCH swept from address, + // and the txid of the generated transaction that swept the funds. + async sweep(wif: string, toAddr: string, balanceOnly: boolean) { try { - console.log(`wif: ${wif}`) + // Input validation + if (!wif || wif === "") { + throw new Error( + `wif private key must be included in Compressed WIF format.` + ) + } + + // Input validation + if (!balanceOnly) { + if (!toAddr || toAddr === "") { + throw new Error( + `Address to receive swept funds must be included unless balanceOnly flag is true.` + ) + } + } + + // Generate a keypair from the WIF. + const keyPair = ecPair.fromWIF(wif) + + // Generate the public address associated with the private key. + const fromAddr = ecPair.toCashAddress(keyPair) + + // Check the BCH balance of that public address. + const details: any = await axios.get( + `${this.restURL}address/details/${fromAddr}` + ) + const balance = details.data.balance + + // If balance is zero, exit. + if(balance === 0) return balance + + // If balanceOnly flag is passed in, exit. + if(balanceOnly) return balance + + // Get UTXOs associated with public address. + const u: any = await axios.get( + `${this.restURL}address/utxo/${fromAddr}` + ) + const utxos = u.data.utxos + + // Prepare to generate a transaction to sweep funds. + const transactionBuilder = new TransactionBuilder() + let originalAmount = 0 + + // Add all UTXOs to the transaction inputs. + for (let i = 0; i < utxos.length; i++) { + const utxo = utxos[i] + + originalAmount = originalAmount + utxo.satoshis + + transactionBuilder.addInput(utxo.txid, utxo.vout) + } + + if (originalAmount < 1) + throw new Error(`Original amount is zero. No BCH to send.`) + + // get byte count to calculate fee. paying 1.1 sat/byte + const byteCount = bitcoinCash.getByteCount( + { P2PKH: utxos.length }, + { P2PKH: 1 } + ) + const fee = Math.ceil(1.1 * byteCount) + + // amount to send to receiver. It's the original amount - 1 sat/byte for tx size + const sendAmount = originalAmount - fee + + // add output w/ address and amount to send + transactionBuilder.addOutput( + addressLib.toLegacyAddress(toAddr), + sendAmount + ) + + // Loop through each input and sign it with the private key. + let redeemScript + for (var i = 0; i < utxos.length; i++) { + const utxo = utxos[i] + + transactionBuilder.sign( + i, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + utxo.satoshis + ) + } + + // build tx + const tx = transactionBuilder.build() + + // output rawhex + const hex = tx.toHex() + + // Broadcast the transaction to the BCH network. + const response: any = await axios.get( + `${REST_URL}rawtransactions/sendRawTransaction/${hex}` + ) - return true + return response.data } catch (error) { if (error.response && error.response.data) throw error.response.data else throw error diff --git a/test/integration/util.js b/test/integration/util.js index 964fe3b7..d7bb6da2 100644 --- a/test/integration/util.js +++ b/test/integration/util.js @@ -112,4 +112,19 @@ describe(`#util`, () => { } }) }) + + describe("#sweep", () => { + it("should return balance only", async () => { + const wif = "L287yGQj4DB4fbUKSV7DMHsyGQs1qh2E3EYJ21P88mXNKaFvmNWk" + const result = await bitbox.Util.sweep(wif, "abc123", true) + console.log(`result: ${result}`) + }) + + it("should sweep funds", async () => { + const wif = "L287yGQj4DB4fbUKSV7DMHsyGQs1qh2E3EYJ21P88mXNKaFvmNWk" + const toAddr = "bitcoincash:qqjes5sxwneywmnzqndvs6p3l9rp55a2ug0e6e6s0a" + const result = await bitbox.Util.sweep(wif, toAddr) + console.log(`result: ${result}`) + }) + }) }) diff --git a/test/unit/Util.ts b/test/unit/Util.ts index 6de1e2cd..e2fbc3c1 100644 --- a/test/unit/Util.ts +++ b/test/unit/Util.ts @@ -123,11 +123,4 @@ describe("#Util", (): void => { } }) }) - - describe('#sweep', () => { - it('should do something', async () => { - const result = await bitbox.Util.sweep('abc123', 'abc123', true) - console.log(`result: ${result}`) - }) - }) }) From 303c114eec15f8936612ff2ed2affc4fefd3e770 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 20 Aug 2019 15:00:49 -0700 Subject: [PATCH 449/480] Clean up. --- lib/BITBOX.ts | 3 - package.json | 5 - test/integration/Wallet.ts | 75 - yarn.lock | 3267 +++++++++++++++++------------------- 4 files changed, 1581 insertions(+), 1769 deletions(-) delete mode 100644 test/integration/Wallet.ts diff --git a/lib/BITBOX.ts b/lib/BITBOX.ts index 872757f3..2206e51e 100644 --- a/lib/BITBOX.ts +++ b/lib/BITBOX.ts @@ -23,7 +23,6 @@ import { Socket } from "./Socket" import { Transaction } from "./Transaction" import { TransactionBuilder } from "./TransactionBuilder" import { Util } from "./Util" -// import { Wallet } from "./Wallet" // Defaults export const WS_URL = "wss://ws.bitcoin.com" @@ -60,7 +59,6 @@ export class BITBOX { public Util: Util public Socket: any public Schnorr: Schnorr - // Wallet: Wallet constructor(config: IConfig = {}) { if (config && config.restURL && config.restURL !== "") this.restURL = config.restURL @@ -94,6 +92,5 @@ export class BITBOX { this.Util = new Util(this.restURL) this.Socket = Socket this.Schnorr = new Schnorr() - // this.Wallet = Wallet } } diff --git a/package.json b/package.json index d26f3b21..8827680e 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,6 @@ "assert": "^1.4.1", "axios": "0.19.0", "bc-bip68": "^1.0.5", - "bch-wallet-bridge.js": "github:web3bch/bch-wallet-bridge.js#master", "bigi": "^1.4.2", "bip-schnorr": "^0.3.0", "bip21": "Bitcoin-com/bip21", @@ -45,15 +44,11 @@ "bitcoincash-ops": "Bitcoin-com/bitcoincash-ops#2.0.0", "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib#v4.0.1", "bitcoinjs-message": "^2.0.0", - "browserify": "^16.2.2", "bs58": "^4.0.1", - "buffer": "^5.1.0", "cashaddrjs": "^0.2.9", "coininfo": "Bitcoin-com/coininfo", "eventsource": "^1.0.7", - "qrcode": "^1.2.0", "randombytes": "^2.0.6", - "repl.history": "^0.1.4", "safe-buffer": "^5.1.2", "satoshi-bitcoin": "^1.0.4", "socket.io": "^2.2.0", diff --git a/test/integration/Wallet.ts b/test/integration/Wallet.ts deleted file mode 100644 index 47574d66..00000000 --- a/test/integration/Wallet.ts +++ /dev/null @@ -1,75 +0,0 @@ -// import BCHWalletBridge from "bch-wallet-bridge.js" -export class Wallet { - constructor(walletProvider: any) { - // this.bchWalletBridge = new BCHWalletBridge(walletProvider) - } - - // setWalletProvider(walletProvider) { - // this.bchWalletBridge.walletProvider = walletProvider - // } - // - // getAddress(changeType, index, dAppId) { - // return this.bchWalletBridge.getAddress(changeType, index, dAppId) - // } - // - // getAddressIndex(changeType, dAppId) { - // return this.bchWalletBridge.getAddressIndex(changeType, dAppId) - // } - // - // getAddresses(changeType, startIndex, size, dAppId) { - // return this.bchWalletBridge.getAddresses( - // changeType, - // startIndex, - // size, - // dAppId - // ) - // } - // - // getRedeemScript(p2shAddress, dAppId) { - // return this.bchWalletBridge.getRedeemScript(p2shAddress, dAppId) - // } - // - // getRedeemScripts(dAppId) { - // return this.bchWalletBridge.getRedeemScripts(dAppId) - // } - // - // addRedeemScript(redeemScript, dAppId) { - // return this.bchWalletBridge.addRedeemScript(redeemScript, dAppId) - // } - // - // getUtxos(dAppId) { - // return this.bchWalletBridge.getUtxos(dAppId) - // } - // - // getBalance(dAppId) { - // return this.bchWalletBridge.getBalance(dAppId) - // } - // - // sign(address, dataToSign) { - // return this.bchWalletBridge.sign(address, dataToSign) - // } - // - // buildTransaction(outputs, dAppId) { - // return this.bchWalletBridge.buildTransaction(outputs, dAppId) - // } - // - // getProtocolVersion() { - // return this.bchWalletBridge.getProtocolVersion() - // } - // - // getNetwork() { - // return this.bchWalletBridge.getNetwork() - // } - // - // getFeePerByte() { - // return this.bchWalletBridge.getFeePerByte() - // } - // - // getDefaultDAppId() { - // return this.bchWalletBridge.getDefaultDAppId() - // } - // - // setDefaultDAppId(dAppId) { - // return this.bchWalletBridge.setDefaultDAppId(dAppId) - // } -} diff --git a/yarn.lock b/yarn.lock index 54895b71..efc93e41 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,25 +2,28 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" + integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== dependencies: "@babel/highlight" "^7.0.0" -"@babel/generator@^7.4.0", "@babel/generator@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.4.tgz#174a215eb843fc392c7edcaabeaa873de6e8f041" +"@babel/generator@^7.4.0", "@babel/generator@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.5.5.tgz#873a7f936a3c89491b43536d12245b626664e3cf" + integrity sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ== dependencies: - "@babel/types" "^7.4.4" + "@babel/types" "^7.5.5" jsesc "^2.5.1" - lodash "^4.17.11" + lodash "^4.17.13" source-map "^0.5.0" trim-right "^1.0.1" "@babel/helper-function-name@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" + integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== dependencies: "@babel/helper-get-function-arity" "^7.0.0" "@babel/template" "^7.1.0" @@ -29,91 +32,112 @@ "@babel/helper-get-function-arity@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" + integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== dependencies: "@babel/types" "^7.0.0" "@babel/helper-split-export-declaration@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677" + integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q== dependencies: "@babel/types" "^7.4.4" "@babel/highlight@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" + integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== dependencies: chalk "^2.0.0" esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.4.3", "@babel/parser@^7.4.4", "@babel/parser@^7.4.5": - version "7.4.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.5.tgz#04af8d5d5a2b044a2a1bffacc1e5e6673544e872" +"@babel/parser@^7.4.3", "@babel/parser@^7.4.4", "@babel/parser@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.5.tgz#02f077ac8817d3df4a832ef59de67565e71cca4b" + integrity sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g== "@babel/template@^7.1.0", "@babel/template@^7.4.0": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" + integrity sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw== dependencies: "@babel/code-frame" "^7.0.0" "@babel/parser" "^7.4.4" "@babel/types" "^7.4.4" "@babel/traverse@^7.4.3": - version "7.4.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.5.tgz#4e92d1728fd2f1897dafdd321efbff92156c3216" + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.5.5.tgz#f664f8f368ed32988cd648da9f72d5ca70f165bb" + integrity sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ== dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.4.4" + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.5.5" "@babel/helper-function-name" "^7.1.0" "@babel/helper-split-export-declaration" "^7.4.4" - "@babel/parser" "^7.4.5" - "@babel/types" "^7.4.4" + "@babel/parser" "^7.5.5" + "@babel/types" "^7.5.5" debug "^4.1.0" globals "^11.1.0" - lodash "^4.17.11" + lodash "^4.17.13" -"@babel/types@^7.0.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.4.tgz#8db9e9a629bb7c29370009b4b779ed93fe57d5f0" +"@babel/types@^7.0.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.5.5.tgz#97b9f728e182785909aa4ab56264f090a028d18a" + integrity sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw== dependencies: esutils "^2.0.2" - lodash "^4.17.11" + lodash "^4.17.13" to-fast-properties "^2.0.0" "@istanbuljs/nyc-config-typescript@^0.1.3": version "0.1.3" resolved "https://registry.yarnpkg.com/@istanbuljs/nyc-config-typescript/-/nyc-config-typescript-0.1.3.tgz#944d15b3ebdb71f963a628daffaa25ade981bb86" + integrity sha512-EzRFg92bRSD1W/zeuNkeGwph0nkWf+pP2l/lYW4/5hav7RjKKBN5kV1Ix7Tvi0CMu3pC4Wi/U7rNisiJMR3ORg== -"@mrmlnc/readdir-enhanced@^2.2.1": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" +"@nodelib/fs.scandir@2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.1.tgz#7fa8fed654939e1a39753d286b48b4836d00e0eb" + integrity sha512-NT/skIZjgotDSiXs0WqYhgcuBKhUMgfekCmCGtkUAiLqZdOnrdjmZr9wRl3ll64J9NF79uZ4fk16Dx0yMc/Xbg== dependencies: - call-me-maybe "^1.0.1" - glob-to-regexp "^0.3.0" + "@nodelib/fs.stat" "2.0.1" + run-parallel "^1.1.9" -"@nodelib/fs.stat@^1.1.2": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" +"@nodelib/fs.stat@2.0.1", "@nodelib/fs.stat@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.1.tgz#814f71b1167390cfcb6a6b3d9cdeb0951a192c14" + integrity sha512-+RqhBlLn6YRBGOIoVYthsG0J9dfpO79eJyN7BYBkZJtfqrBwf2KK+rD/M/yjZR6WBmIhAgOV7S60eCgaSWtbFw== + +"@nodelib/fs.walk@^1.2.1": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.2.tgz#6a6450c5e17012abd81450eb74949a4d970d2807" + integrity sha512-J/DR3+W12uCzAJkw7niXDcqcKBg6+5G5Q/ZpThpGNzAUz70eOR6RV4XnnSN01qHZiVl0eavoxJsBypQoKsV2QQ== + dependencies: + "@nodelib/fs.scandir" "2.1.1" + fastq "^1.6.0" "@octokit/endpoint@^5.1.0": - version "5.1.7" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-5.1.7.tgz#cfbd473a6adf5fea747520972e1af676406f7c26" + version "5.3.2" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-5.3.2.tgz#2deda2d869cac9ba7f370287d55667be2a808d4b" + integrity sha512-gRjteEM9I6f4D8vtwU2iGUTn9RX/AJ0SVXiqBUEuYEWVGGAVjSXdT0oNmghH5lvQNWs8mwt6ZaultuG6yXivNw== dependencies: - deepmerge "3.2.1" + deepmerge "4.0.0" is-plain-object "^3.0.0" - universal-user-agent "^2.1.0" + universal-user-agent "^3.0.0" url-template "^2.0.8" "@octokit/request-error@^1.0.1", "@octokit/request-error@^1.0.2": version "1.0.4" resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-1.0.4.tgz#15e1dc22123ba4a9a4391914d80ec1e5303a23be" + integrity sha512-L4JaJDXn8SGT+5G0uX79rZLv0MNJmfGa4vb4vy1NnpjSnWDLJRy6m90udGwvMmavwsStgbv2QNkPzzTCMmL+ig== dependencies: deprecation "^2.0.0" once "^1.4.0" -"@octokit/request@^4.0.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-4.1.1.tgz#614262214f48417b4d3b14e047d09a9c8e2f7a09" +"@octokit/request@^5.0.0": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.0.2.tgz#59a920451f24811c016ddc507adcc41aafb2dca5" + integrity sha512-z1BQr43g4kOL4ZrIVBMHwi68Yg9VbkRUyuAgqCp1rU3vbYa69+2gIld/+gHclw15bJWQnhqqyEb7h5a5EqgZ0A== dependencies: "@octokit/endpoint" "^5.1.0" "@octokit/request-error" "^1.0.1" @@ -121,16 +145,17 @@ is-plain-object "^3.0.0" node-fetch "^2.3.0" once "^1.4.0" - universal-user-agent "^2.1.0" + universal-user-agent "^3.0.0" "@octokit/rest@^16.27.0": - version "16.28.2" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.28.2.tgz#3fc3b8700046ab29ab1e2a4bdf49f89e94f7ba27" + version "16.28.7" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.28.7.tgz#a2c2db5b318da84144beba82d19c1a9dbdb1a1fa" + integrity sha512-cznFSLEhh22XD3XeqJw51OLSfyL2fcFKUO+v2Ep9MTAFfFLS1cK1Zwd1yEgQJmJoDnj4/vv3+fGGZweG+xsbIA== dependencies: - "@octokit/request" "^4.0.1" + "@octokit/request" "^5.0.0" "@octokit/request-error" "^1.0.2" atob-lite "^2.0.0" - before-after-hook "^1.4.0" + before-after-hook "^2.0.0" btoa-lite "^1.0.0" deprecation "^2.0.0" lodash.get "^4.4.2" @@ -138,12 +163,13 @@ lodash.uniq "^4.5.0" octokit-pagination-methods "^1.1.0" once "^1.4.0" - universal-user-agent "^2.0.0" + universal-user-agent "^3.0.0" url-template "^2.0.8" "@semantic-release/commit-analyzer@^6.1.0": - version "6.2.0" - resolved "https://registry.yarnpkg.com/@semantic-release/commit-analyzer/-/commit-analyzer-6.2.0.tgz#5cd25ce67ba9ba5b46e47457505e63629e186695" + version "6.3.0" + resolved "https://registry.yarnpkg.com/@semantic-release/commit-analyzer/-/commit-analyzer-6.3.0.tgz#e0fb2f6af7be2321ad9401d8ae25be0cc1005d83" + integrity sha512-sh51MVlV8VyrvGIemcvzueDADX/8qGbAgce1F0CtQv8hNKYyhdaJeHzfiM1rNXwCynDmcQj+Yq9rrWt71tBd/Q== dependencies: conventional-changelog-angular "^5.0.0" conventional-commits-filter "^2.0.0" @@ -155,19 +181,21 @@ "@semantic-release/error@^2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@semantic-release/error/-/error-2.2.0.tgz#ee9d5a09c9969eade1ec864776aeda5c5cddbbf0" + integrity sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg== "@semantic-release/github@^5.1.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@semantic-release/github/-/github-5.4.0.tgz#b170d1ceb3f682604cb4a2aff39bf5906159c91d" + version "5.4.2" + resolved "https://registry.yarnpkg.com/@semantic-release/github/-/github-5.4.2.tgz#1dbde876228c03ff9a000893a18aff5c6ab2cd61" + integrity sha512-8gkOa5tED/+sjAPwZRYsLaGr6VuAGLZinSvLsuF9/l4qLeYV8gvj7fhjFJepGu6y31t7PR2J9SWzmsqsBAyyKQ== dependencies: "@octokit/rest" "^16.27.0" "@semantic-release/error" "^2.2.0" aggregate-error "^3.0.0" bottleneck "^2.18.1" debug "^4.0.0" - dir-glob "^2.0.0" + dir-glob "^3.0.0" fs-extra "^8.0.0" - globby "^9.0.0" + globby "^10.0.0" http-proxy-agent "^2.1.0" https-proxy-agent "^2.2.1" issue-parser "^4.0.0" @@ -179,8 +207,9 @@ url-join "^4.0.0" "@semantic-release/npm@^5.0.5": - version "5.1.9" - resolved "https://registry.yarnpkg.com/@semantic-release/npm/-/npm-5.1.9.tgz#30d775433c91f32d7365382574aeda3b1422a5df" + version "5.1.13" + resolved "https://registry.yarnpkg.com/@semantic-release/npm/-/npm-5.1.13.tgz#7b06d62b4d9c8336ae5a5c85eede26fb89f19e3b" + integrity sha512-pONvpoEtGH1nd6Wj3SryACNJ/YXXsvSSekE9Pdk6mnaRv7lGhXdaeJJr6Lr4L8WK98oZv4aJOr68vTac2Oc+dA== dependencies: "@semantic-release/error" "^2.2.0" aggregate-error "^3.0.0" @@ -192,11 +221,12 @@ npm "^6.8.0" rc "^1.2.8" read-pkg "^5.0.0" - registry-auth-token "^3.3.1" + registry-auth-token "^4.0.0" "@semantic-release/release-notes-generator@^7.1.2": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@semantic-release/release-notes-generator/-/release-notes-generator-7.2.0.tgz#d09f9f97a0f33149411c36843d1378d3c290ada8" + version "7.3.0" + resolved "https://registry.yarnpkg.com/@semantic-release/release-notes-generator/-/release-notes-generator-7.3.0.tgz#b94f3d84d7071eb8e921b53a9729ca48722e7c0f" + integrity sha512-6ozBLHM9XZR6Z8PFSKssLtwBYc5l1WOnxj034F8051QOo3TMKDDPKwdj2Niyc+e7ru7tGa3Ftq7nfN0YnD6//A== dependencies: conventional-changelog-angular "^5.0.0" conventional-changelog-writer "^4.0.0" @@ -207,59 +237,70 @@ import-from "^3.0.0" into-stream "^5.0.0" lodash "^4.17.4" + read-pkg-up "^6.0.0" -"@sinonjs/commons@^1", "@sinonjs/commons@^1.0.2": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.4.0.tgz#7b3ec2d96af481d7a0321252e7b1c94724ec5a78" +"@sinonjs/commons@^1", "@sinonjs/commons@^1.3.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.6.0.tgz#ec7670432ae9c8eb710400d112c201a362d83393" + integrity sha512-w4/WHG7C4WWFyE5geCieFJF6MZkbW4VAriol5KlmQXpAQdxvV0p26sqNZOW6Qyw6Y0l9K4g+cHvvczR2sEEpqg== dependencies: type-detect "4.0.8" "@sinonjs/formatio@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-2.0.0.tgz#84db7e9eb5531df18a8c5e0bfb6e449e55e654b2" + integrity sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg== dependencies: samsam "1.3.0" -"@sinonjs/formatio@^3.1.0": +"@sinonjs/formatio@^3.2.1": version "3.2.1" resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-3.2.1.tgz#52310f2f9bcbc67bdac18c94ad4901b95fde267e" + integrity sha512-tsHvOB24rvyvV2+zKMmPkZ7dXX6LSLKZ7aOtXY6Edklp0uRcgGpOsQTTGTcWViFyx4uhWc6GV8QdnALbIbIdeQ== dependencies: "@sinonjs/commons" "^1" "@sinonjs/samsam" "^3.1.0" "@sinonjs/samsam@^3.1.0": - version "3.3.2" - resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-3.3.2.tgz#63942e3d5eb0b79f6de3bef9abfad15fb4b6401b" + version "3.3.3" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-3.3.3.tgz#46682efd9967b259b81136b9f120fd54585feb4a" + integrity sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ== dependencies: - "@sinonjs/commons" "^1.0.2" + "@sinonjs/commons" "^1.3.0" array-from "^2.1.1" - lodash "^4.17.11" + lodash "^4.17.15" "@sinonjs/text-encoding@^0.7.1": version "0.7.1" resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" + integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== "@types/bigi@^1.4.2": version "1.4.2" resolved "https://registry.yarnpkg.com/@types/bigi/-/bigi-1.4.2.tgz#8dda60612e689e5769047568d0ce8b8fa83db953" + integrity sha512-St8Vm0x1ApYlU9yNaFx3jBis5JVU6oR/5Xtgvn8+N8Ts8f3ze6kOvAAg0aNkbGMGhhG6PrP0nMOgDI9NMFETkA== "@types/bip39@^2.4.2": version "2.4.2" resolved "https://registry.yarnpkg.com/@types/bip39/-/bip39-2.4.2.tgz#f5d6617212be496bb998d3969f657f77a10c5287" + integrity sha512-Vo9lqOIRq8uoIzEVrV87ZvcIM0PN9t0K3oYZ/CS61fIYKCBdOIM7mlWzXuRvSXrDtVa1uUO2w1cdfufxTC0bzg== dependencies: "@types/node" "*" "@types/chai@^4.1.7": - version "4.1.7" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.1.7.tgz#1b8e33b61a8c09cbe1f85133071baa0dbf9fa71a" + version "4.2.0" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.0.tgz#2478260021408dec32c123a7cad3414beb811a07" + integrity sha512-zw8UvoBEImn392tLjxoavuonblX/4Yb9ha4KBU10FirCfwgzhKO0dvyJSF9ByxV1xK1r2AgnAi/tvQaLgxQqxA== "@types/events@*": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" + integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== "@types/glob@^7.1.1": version "7.1.1" resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" + integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== dependencies: "@types/events" "*" "@types/minimatch" "*" @@ -268,37 +309,44 @@ "@types/minimatch@*": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== "@types/mocha@^5.2.6": version "5.2.7" resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.2.7.tgz#315d570ccb56c53452ff8638738df60726d5b6ea" + integrity sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ== "@types/node@*": - version "12.0.8" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.0.8.tgz#551466be11b2adc3f3d47156758f610bd9f6b1d8" + version "12.7.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.2.tgz#c4e63af5e8823ce9cc3f0b34f7b998c2171f0c44" + integrity sha512-dyYO+f6ihZEtNPDcWNR1fkoTDf3zAK3lAABDze3mz6POyIercH0lEUawUFXlG8xaQZmm1yEBON/4TsYv/laDYg== "@types/node@^10.11.7": - version "10.14.12" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.12.tgz#0eec3155a46e6c4db1f27c3e588a205f767d622f" - integrity sha512-QcAKpaO6nhHLlxWBvpc4WeLrTvPqlHOvaj0s5GriKkA1zq+bsFBPpfYCvQhLqLgYlIko8A9YrPdaMHCo5mBcpg== + version "10.14.16" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.16.tgz#4d690c96cbb7b2728afea0e260d680501b3da5cf" + integrity sha512-/opXIbfn0P+VLt+N8DE4l8Mn8rbhiJgabU96ZJ0p9mxOkIks5gh6RUnpHak7Yh0SFkyjO/ODbxsQQPV2bpMmyA== "@types/normalize-package-data@^2.4.0": version "2.4.0" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" + integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== "@types/randombytes@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@types/randombytes/-/randombytes-2.0.0.tgz#0087ff5e60ae68023b9bc4398b406fea7ad18304" + integrity sha512-bz8PhAVlwN72vqefzxa14DKNT8jK/mV66CSjwdVQM/k3Th3EPKfUtdMniwZgMedQTFuywAsfjnZsg+pEnltaMA== dependencies: "@types/node" "*" "@types/retry@^0.12.0": version "0.12.0" resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" + integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== "@types/sinon@^7.0.11": version "7.0.13" resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-7.0.13.tgz#ca039c23a9e27ebea53e0901ef928ea2a1a6d313" + integrity sha512-d7c/C/+H/knZ3L8/cxhicHUiTDxdgap0b/aNJfsmLwFu/iOP17mdgbQsbHA3SJmrzsjD0l3UEE5SN4xxuz5ung== "@types/socket.io-client@^1.4.32": version "1.4.32" @@ -315,12 +363,14 @@ "@types/wif@^2.0.1": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/wif/-/wif-2.0.1.tgz#bcab48b201403cb759cd7659aff4610cfd4888f4" + integrity sha512-FQKvE4EncC8C4qxW9y0psAOs2XVkxSAGIofB8tqNDPSeOsR4OueEf9TED3PHf8xlOquI+m++AXTWjJIS07FNHw== dependencies: "@types/node" "*" -JSONStream@^1.0.3, JSONStream@^1.0.4, JSONStream@^1.3.4, JSONStream@^1.3.5: +JSONStream@^1.0.4, JSONStream@^1.3.4, JSONStream@^1.3.5: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== dependencies: jsonparse "^1.2.0" through ">=2.2.7 <3" @@ -328,78 +378,73 @@ JSONStream@^1.0.3, JSONStream@^1.0.4, JSONStream@^1.3.4, JSONStream@^1.3.5: abbrev@1, abbrev@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== accepts@^1.3.7, accepts@~1.3.4: version "1.3.7" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== dependencies: mime-types "~2.1.24" negotiator "0.6.2" -acorn-dynamic-import@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948" - acorn-jsx@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + integrity sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s= dependencies: acorn "^3.0.4" acorn-jsx@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e" - -acorn-node@^1.2.0, acorn-node@^1.3.0, acorn-node@^1.5.2, acorn-node@^1.6.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.7.0.tgz#aac6a559d27af6176b076ab6fb13c5974c213e3b" - dependencies: - acorn "^6.1.1" - acorn-dynamic-import "^4.0.0" - acorn-walk "^6.1.1" - xtend "^4.0.1" - -acorn-walk@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.1.tgz#d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913" + version "5.0.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.2.tgz#84b68ea44b373c4f8686023a551f61a21b7c4a4f" + integrity sha512-tiNTrP1MP0QrChmD2DdupCr6HWSFeKVw5d/dHTu4Y7rkAkRhU/Dt7dphAfIUyxtHpl/eBVip5uTNSpQJHylpAw== acorn@^3.0.4: version "3.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + integrity sha1-ReN/s56No/JbruP/U2niu18iAXo= acorn@^5.5.0: version "5.7.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" + integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== -acorn@^6.0.7, acorn@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f" +acorn@^6.0.7: + version "6.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e" + integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA== after@0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" + integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= -agent-base@4, agent-base@^4.1.0: +agent-base@4, agent-base@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" + integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== dependencies: es6-promisify "^5.0.0" agent-base@~4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" + integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg== dependencies: es6-promisify "^5.0.0" agentkeepalive@^3.4.1: version "3.5.2" resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.5.2.tgz#a113924dd3fa24a0bc3b78108c450c2abee00f67" + integrity sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ== dependencies: humanize-ms "^1.2.1" aggregate-error@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.0.tgz#5b5a3c95e9095f311c9ab16c19fb4f3527cd3f79" + integrity sha512-yKD9kEoJIR+2IFqhMwayIBgheLYbB3PS2OBhWae1L/ODTd/JF/30cW0bc9TqzRL3k4U41Dieu3BF4I29p8xesA== dependencies: clean-stack "^2.0.0" indent-string "^3.2.0" @@ -407,19 +452,22 @@ aggregate-error@^3.0.0: ajv-keywords@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" + integrity sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I= ajv@^5.2.3, ajv@^5.3.0: version "5.5.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" + integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU= dependencies: co "^4.6.0" fast-deep-equal "^1.0.0" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" -ajv@^6.5.5, ajv@^6.9.1: - version "6.10.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1" +ajv@^6.10.2, ajv@^6.5.5, ajv@^6.9.1: + version "6.10.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" + integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== dependencies: fast-deep-equal "^2.0.1" fast-json-stable-stringify "^2.0.0" @@ -429,176 +477,170 @@ ajv@^6.5.5, ajv@^6.9.1: ansi-align@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" + integrity sha1-w2rsy6VjuJzrVW82kPCx2eNUf38= dependencies: string-width "^2.0.0" -ansi-escapes@^3.0.0, ansi-escapes@^3.1.0, ansi-escapes@^3.2.0: +ansi-escapes@^3.0.0, ansi-escapes@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + +ansi-escapes@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.2.1.tgz#4dccdb846c3eee10f6d64dea66273eab90c37228" + integrity sha512-Cg3ymMAdN10wOk/VYfLV7KCQyv7EDirJ64500sU7n9UlmioEtDuU5Gd+hj73hXSU/ex7tHJSssmyftDdkMLO8Q== + dependencies: + type-fest "^0.5.2" ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= ansi-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= ansi-regex@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" ansicolors@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" + integrity sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk= ansistyles@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/ansistyles/-/ansistyles-0.1.3.tgz#5de60415bda071bb37127854c864f41b23254539" + integrity sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk= append-transform@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab" + integrity sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw== dependencies: default-require-extensions "^2.0.0" aproba@^1.0.3, aproba@^1.1.1, aproba@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== "aproba@^1.1.2 || 2", aproba@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== archy@^1.0.0, archy@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= are-we-there-yet@~1.1.2: version "1.1.5" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== dependencies: delegates "^1.0.0" readable-stream "^2.0.6" arg@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.0.tgz#583c518199419e0037abb74062c37f8519e575f0" + version "4.1.1" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.1.tgz#485f8e7c390ce4c5f78257dbea80d4be11feda4c" + integrity sha512-SlmP3fEA88MBv0PypnXZ8ZfJhwmDeIE3SP71j37AiXQBXYosPV0x6uISAaHYSlSVhmHOVkomen0tbGk6Anlebw== argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" argv-formatter@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/argv-formatter/-/argv-formatter-1.0.0.tgz#a0ca0cbc29a5b73e836eebe1cbf6c5e0e4eb82f9" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - -array-filter@~0.0.0: - version "0.0.1" - resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" + integrity sha1-oMoMvCmltz6Dbuvhy/bF4OTrgvk= array-find-index@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= array-from@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" + integrity sha1-z+nYwmYoudxa7MYqn12PHzUsEZU= array-ify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" + integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= array-includes@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" + integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0= dependencies: define-properties "^1.1.2" es-abstract "^1.7.0" -array-map@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" - -array-reduce@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" - -array-union@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== array-uniq@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-2.1.0.tgz#46603d5e28e79bfd02b046fcc1d77c6820bd8e98" - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha512-bdHxtev7FN6+MXI1YFW0Q8mQ8dTJc2S8AMfju+ZR77pbg2yAdVyDlwkaUI7Har0LyOMRFPHrJ9lYdyjZZswdlQ== arraybuffer.slice@~0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" + integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= asap@^2.0.0: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" + integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= asn1@~0.2.3: version "0.2.4" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== dependencies: safer-buffer "~2.1.0" assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= -assert@^1.4.0, assert@^1.4.1: +assert@^1.4.1: version "1.5.0" resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== dependencies: object-assign "^4.1.1" util "0.10.3" @@ -606,42 +648,42 @@ assert@^1.4.0, assert@^1.4.1: assertion-error@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== astral-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== async-limiter@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= atob-lite@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/atob-lite/-/atob-lite-2.0.0.tgz#0fef5ad46f1bd7a8502c65727f0367d5ee43d696" - -atob@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY= aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" + integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== axios@0.19.0: version "0.19.0" resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.0.tgz#8e09bff3d9122e133f7b8101c8fbdd00ed3d2ab8" + integrity sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ== dependencies: follow-redirects "1.5.10" is-buffer "^2.0.2" @@ -649,6 +691,7 @@ axios@0.19.0: babel-code-frame@^6.22.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= dependencies: chalk "^1.1.3" esutils "^2.0.2" @@ -657,115 +700,96 @@ babel-code-frame@^6.22.0: backo2@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= base-x@^3.0.2: - version "3.0.5" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.5.tgz#d3ada59afed05b921ab581ec3112e6444ba0795a" + version "3.0.6" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.6.tgz#de047ec95f5f7b99ae63d830a2a894c96538b2cd" + integrity sha512-4PaF8u2+AlViJxRVjurkLTxpp7CaFRD/jo5rPT9ONnKxyhQ8f59yzamEvq7EkriG56yn5On4ONyaG75HLqr46w== dependencies: safe-buffer "^5.0.1" base64-arraybuffer@0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" - -base64-js@^1.0.2: - version "1.3.0" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" + integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= base64id@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" + integrity sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY= bc-bip68@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/bc-bip68/-/bc-bip68-1.0.5.tgz#4d3774067d8c9e922e225f5f2c4178ee9ae8dc94" - -bch-wallet-bridge-provider-interface@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/bch-wallet-bridge-provider-interface/-/bch-wallet-bridge-provider-interface-0.1.1.tgz#5f1fb2a9738829611111c0ff9886228c3bd494aa" - -"bch-wallet-bridge.js@github:web3bch/bch-wallet-bridge.js#master": - version "0.1.1" - resolved "https://codeload.github.com/web3bch/bch-wallet-bridge.js/tar.gz/f73558eaf3a98ba2a23de3c9cbbd582b30ff19eb" - dependencies: - bch-wallet-bridge-provider-interface "^0.1.1" - bchaddrjs "^0.2.2" - bitcoincashjs "^0.1.10" - -bchaddrjs@^0.2.2: - version "0.2.3" - resolved "https://registry.yarnpkg.com/bchaddrjs/-/bchaddrjs-0.2.3.tgz#c3008ac85d7c7e583e83a30604c427b5bed26c68" - dependencies: - bs58check "^2.1.2" - cashaddrjs "^0.2.9" + integrity sha512-GzaMlN7pNthrY5BhReVhnfr4Ixx+GUSfyNRHYh0QiMUF0d0+0YaD8MpEdv6AjFBksg/zlqL1fVCBBm6PpTt2Rg== bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= dependencies: tweetnacl "^0.14.3" bech32@^1.1.2, bech32@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.3.tgz#bd47a8986bbb3eec34a56a097a84b8d3e9a2dfcd" + integrity sha512-yuVFUvrNcoJi0sv5phmqc6P+Fl1HjRDRNOOkHY2X/3LBy2bIGNSFx4fZ95HMaXHupuS7cZR15AsvtmCIF4UEyg== -before-after-hook@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-1.4.0.tgz#2b6bf23dca4f32e628fd2747c10a37c74a4b484d" +before-after-hook@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635" + integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A== better-assert@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= dependencies: callsite "1.0.0" big-integer@^1.6.34: version "1.6.44" resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.44.tgz#4ee9ae5f5839fc11ade338fea216b4513454a539" + integrity sha512-7MzElZPTyJ2fNvBkPxtFQ2fWIkVmuzw41+BZHSzpEq3ymB2MfeKp1+yXl/tS75xCx+WnyV+yb0kp+K1C3UNwmQ== big.js@^3.1.3: version "3.2.0" resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" + integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== bigi@^1.1.0, bigi@^1.2.0, bigi@^1.4.0, bigi@^1.4.2: version "1.4.2" resolved "https://registry.yarnpkg.com/bigi/-/bigi-1.4.2.tgz#9c665a95f88b8b08fc05cfd731f561859d725825" + integrity sha1-nGZalfiLiwj8Bc/XMfVhhZ1yWCU= -bin-links@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-1.1.2.tgz#fb74bd54bae6b7befc6c6221f25322ac830d9757" +bin-links@^1.1.2, bin-links@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-1.1.3.tgz#702fd59552703727313bc624bdbc4c0d3431c2ca" + integrity sha512-TEwmH4PHU/D009stP+fkkazMJgkBNCv60z01lQ/Mn8E6+ThHoD03svMnBVuCowwXo2nP2qKyKZxKxp58OHRzxw== dependencies: - bluebird "^3.5.0" - cmd-shim "^2.0.2" - gentle-fs "^2.0.0" - graceful-fs "^4.1.11" + bluebird "^3.5.3" + cmd-shim "^3.0.0" + gentle-fs "^2.0.1" + graceful-fs "^4.1.15" write-file-atomic "^2.3.0" bindings@^1.2.1, bindings@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== dependencies: file-uri-to-path "1.0.0" bip-schnorr@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/bip-schnorr/-/bip-schnorr-0.3.0.tgz#e6490379603704e9dd123d874b41755aea4f352c" + integrity sha512-Sc1Hn2+1n+okPEW8G+JLjeaM12dsUOwr+oFlMDSKR9wYwNGMw0alskeBIHTmXxBxMZSWKhCW7PwKQVDyGmnaVg== dependencies: ecurve "^1.0.6" js-sha256 "^0.9.0" @@ -790,6 +814,7 @@ bip32-utils@Bitcoin-com/bip32-utils#0.13.1: bip38@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/bip38/-/bip38-2.0.3.tgz#12e48749d6c28dd14e8bcb37a9f2dae67a797da0" + integrity sha512-HiABhYNhhRNAAeGmkt3LS2El6oonIftNkHq6uFxHCjaCIEbHr7I6RIBhKMQWw5AhGzIPpO5Mt7I8bFOfKqqh9w== dependencies: bigi "^1.2.0" browserify-aes "^1.0.1" @@ -802,6 +827,7 @@ bip38@^2.0.2: bip39@^2.5.0: version "2.6.0" resolved "https://registry.yarnpkg.com/bip39/-/bip39-2.6.0.tgz#9e3a720b42ec8b3fbe4038f1e445317b6a99321c" + integrity sha512-RrnQRG2EgEoqO24ea+Q/fftuPUZLmrEM3qNhhGsA3PbaXaCW791LTzPuVyx/VprXQcTbPJ3K3UeTna8ZnVl2sg== dependencies: create-hash "^1.1.0" pbkdf2 "^3.0.9" @@ -812,6 +838,7 @@ bip39@^2.5.0: bip66@^1.1.0, bip66@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/bip66/-/bip66-1.1.5.tgz#01fa8748785ca70955d5011217d1b3139969ca22" + integrity sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI= dependencies: safe-buffer "^5.0.1" @@ -839,13 +866,10 @@ bitcoincashjs-lib@Bitcoin-com/bitcoincashjs-lib#v4.0.1: varuint-bitcoin "^1.0.4" wif "^2.0.1" -bitcoincashjs@^0.1.10: - version "0.1.14" - resolved "https://registry.yarnpkg.com/bitcoincashjs/-/bitcoincashjs-0.1.14.tgz#9da1efb762e05d608b6e04fadf1277eaa2201b48" - bitcoinjs-message@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/bitcoinjs-message/-/bitcoinjs-message-2.1.0.tgz#5fe36a7d92473bdc929d9183416970bbef1690ad" + integrity sha512-xVL2YvyAJUI8ZwfNpi6Ju5zda3+QYGHTLUvISDb0VHWbsWn9Zyvd1o8XHRC/0r+DNwDIwenpXDSPl1XLCMGnMA== dependencies: bech32 "^1.1.3" bs58check "^2.1.2" @@ -857,28 +881,27 @@ bitcoinjs-message@^2.0.0: blob@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" + integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== -block-stream@*: - version "0.0.9" - resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - dependencies: - inherits "~2.0.0" - -bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5: +bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5: version "3.5.5" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" + integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.11.8, bn.js@^4.4.0: +bn.js@^4.11.8, bn.js@^4.4.0: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== bottleneck@^2.18.1: - version "2.19.1" - resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.19.1.tgz#f7657aed83edff1fa41d438cdbdf3e0931a1d3f0" + version "2.19.5" + resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.19.5.tgz#5df0b90f59fd47656ebe63c78a98419205cadd91" + integrity sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw== boxen@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" + integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw== dependencies: ansi-align "^2.0.0" camelcase "^4.0.0" @@ -891,53 +914,32 @@ boxen@^1.2.1: brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" +braces@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - -browser-pack@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.1.0.tgz#c34ba10d0b9ce162b5af227c7131c92c2ecd5774" - dependencies: - JSONStream "^1.0.3" - combine-source-map "~0.8.0" - defined "^1.0.0" - safe-buffer "^5.1.1" - through2 "^2.0.0" - umd "^3.0.0" - -browser-resolve@^1.11.0, browser-resolve@^1.7.0: - version "1.11.3" - resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" - dependencies: - resolve "1.1.7" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= browser-stdout@1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== -browserify-aes@^1.0.0, browserify-aes@^1.0.1, browserify-aes@^1.0.4, browserify-aes@^1.0.6: +browserify-aes@^1.0.1, browserify-aes@^1.0.6: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== dependencies: buffer-xor "^1.0.3" cipher-base "^1.0.0" @@ -946,110 +948,17 @@ browserify-aes@^1.0.0, browserify-aes@^1.0.1, browserify-aes@^1.0.4, browserify- inherits "^2.0.1" safe-buffer "^5.0.1" -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - dependencies: - bn.js "^4.1.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" - dependencies: - bn.js "^4.1.1" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.2" - elliptic "^6.0.0" - inherits "^2.0.1" - parse-asn1 "^5.0.0" - -browserify-zlib@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - dependencies: - pako "~1.0.5" - -browserify@^16.2.2: - version "16.2.3" - resolved "https://registry.yarnpkg.com/browserify/-/browserify-16.2.3.tgz#7ee6e654ba4f92bce6ab3599c3485b1cc7a0ad0b" - dependencies: - JSONStream "^1.0.3" - assert "^1.4.0" - browser-pack "^6.0.1" - browser-resolve "^1.11.0" - browserify-zlib "~0.2.0" - buffer "^5.0.2" - cached-path-relative "^1.0.0" - concat-stream "^1.6.0" - console-browserify "^1.1.0" - constants-browserify "~1.0.0" - crypto-browserify "^3.0.0" - defined "^1.0.0" - deps-sort "^2.0.0" - domain-browser "^1.2.0" - duplexer2 "~0.1.2" - events "^2.0.0" - glob "^7.1.0" - has "^1.0.0" - htmlescape "^1.1.0" - https-browserify "^1.0.0" - inherits "~2.0.1" - insert-module-globals "^7.0.0" - labeled-stream-splicer "^2.0.0" - mkdirp "^0.5.0" - module-deps "^6.0.0" - os-browserify "~0.3.0" - parents "^1.0.1" - path-browserify "~0.0.0" - process "~0.11.0" - punycode "^1.3.2" - querystring-es3 "~0.2.0" - read-only-stream "^2.0.0" - readable-stream "^2.0.2" - resolve "^1.1.4" - shasum "^1.0.0" - shell-quote "^1.6.1" - stream-browserify "^2.0.0" - stream-http "^2.0.0" - string_decoder "^1.1.1" - subarg "^1.0.0" - syntax-error "^1.1.1" - through2 "^2.0.0" - timers-browserify "^1.0.1" - tty-browserify "0.0.1" - url "~0.11.0" - util "~0.10.1" - vm-browserify "^1.0.0" - xtend "^4.0.0" - bs58@^4.0.0, bs58@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" + integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo= dependencies: base-x "^3.0.2" bs58check@<3.0.0, bs58check@^2.0.0, bs58check@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" + integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== dependencies: bs58 "^4.0.0" create-hash "^1.1.0" @@ -1058,55 +967,54 @@ bs58check@<3.0.0, bs58check@^2.0.0, bs58check@^2.1.2: btoa-lite@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" + integrity sha1-M3dm2hWAEhD92VbCLpxokaudAzc= buffer-equals@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/buffer-equals/-/buffer-equals-1.0.4.tgz#0353b54fd07fd9564170671ae6f66b9cf10d27f5" + integrity sha1-A1O1T9B/2VZBcGca5vZrnPENJ/U= buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== buffer-xor@^1.0.2, buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - -buffer@^5.0.2, buffer@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6" - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= builtin-modules@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= builtins@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" + integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= byline@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1" + integrity sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE= byte-size@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-5.0.1.tgz#4b651039a5ecd96767e71a3d7ed380e48bed4191" + integrity sha512-/XuKeqWocKsYa/cBY1YbSJSWWqTi4cFgr9S6OyM7PBaPbr9zvNGwWP33vt0uqGhwDdN+y3yhbXVILEUpnwEWGw== -cacache@^11.0.1, cacache@^11.3.2: - version "11.3.3" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.3.tgz#8bd29df8c6a718a6ebd2d010da4d7972ae3bbadc" +cacache@^12.0.0, cacache@^12.0.2, cacache@^12.0.3: + version "12.0.3" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" + integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw== dependencies: bluebird "^3.5.5" chownr "^1.1.1" figgy-pudding "^3.5.1" glob "^7.1.4" graceful-fs "^4.1.15" + infer-owner "^1.0.3" lru-cache "^5.1.1" mississippi "^3.0.0" mkdirp "^0.5.1" @@ -1117,78 +1025,66 @@ cacache@^11.0.1, cacache@^11.3.2: unique-filename "^1.1.1" y18n "^4.0.0" -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -cached-path-relative@^1.0.0, cached-path-relative@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.2.tgz#a13df4196d26776220cc3356eb147a52dba2c6db" - caching-transform@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-3.0.2.tgz#601d46b91eca87687a281e71cef99791b0efca70" + integrity sha512-Mtgcv3lh3U0zRii/6qVgQODdPA4G3zhG+jtbCWj39RXuUFTMzH0vcdMtaJS1jPowd+It2Pqr6y3NJMQqOqCE2w== dependencies: hasha "^3.0.0" make-dir "^2.0.0" package-hash "^3.0.0" write-file-atomic "^2.4.2" -call-limit@~1.1.0: +call-limit@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/call-limit/-/call-limit-1.1.1.tgz#ef15f2670db3f1992557e2d965abc459e6e358d4" - -call-me-maybe@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" + integrity sha512-5twvci5b9eRBw2wCfPtN0GmlR2/gadZqyFpPhOK6CvMFoFgA+USnZ6Jpu1lhG9h85pQ3Ouil3PfXWRD4EUaRiQ== caller-callsite@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= dependencies: callsites "^2.0.0" caller-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8= dependencies: callsites "^0.2.0" caller-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= dependencies: caller-callsite "^2.0.0" callsite@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= callsites@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo= callsites@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camelcase-keys@^4.0.0: version "4.2.0" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" + integrity sha1-oqpfsa9oh1glnDLBQUJteJI7m3c= dependencies: camelcase "^4.1.0" map-obj "^2.0.0" @@ -1197,24 +1093,22 @@ camelcase-keys@^4.0.0: camelcase@^4.0.0, camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= camelcase@^5.0.0: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - -can-promise@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/can-promise/-/can-promise-0.0.1.tgz#7a7597ad801fb14c8b22341dfec314b6bd6ad8d3" - dependencies: - window-or-global "^1.0.1" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== capture-stack-trace@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" + integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw== cardinal@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/cardinal/-/cardinal-2.1.1.tgz#7cc1055d822d212954d07b085dea251cc7bc5505" + integrity sha1-fMEFXYItISlU0HsIXeolHMe8VQU= dependencies: ansicolors "~0.3.2" redeyed "~2.1.0" @@ -1222,16 +1116,19 @@ cardinal@^2.1.1: caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= cashaddrjs@^0.2.9: version "0.2.9" resolved "https://registry.yarnpkg.com/cashaddrjs/-/cashaddrjs-0.2.9.tgz#e38e323e11e0ab761767006b3938a36278dadec9" + integrity sha512-DhJF4iAH0/RM3UjHDHKRxzs09YGL9px+oTyizzydanhC7jTyM2aJ+aLKA96vZGTTWayvvr2iDF2l13lpqXiRFg== dependencies: big-integer "^1.6.34" chai@^4.1.2: version "4.2.0" resolved "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5" + integrity sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw== dependencies: assertion-error "^1.1.0" check-error "^1.0.2" @@ -1243,6 +1140,7 @@ chai@^4.1.2: chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= dependencies: ansi-styles "^2.2.1" escape-string-regexp "^1.0.2" @@ -1253,6 +1151,7 @@ chalk@^1.1.3: chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" escape-string-regexp "^1.0.5" @@ -1261,36 +1160,44 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4 chardet@^0.4.0: version "0.4.2" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" + integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I= chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== check-error@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= -chownr@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" +chownr@^1.1.1, chownr@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.2.tgz#a18f1e0b269c8a6a5d3c86eb298beb14c3dd7bf6" + integrity sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A== ci-info@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" + integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== ci-info@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== cidr-regex@^2.0.10: version "2.0.10" resolved "https://registry.yarnpkg.com/cidr-regex/-/cidr-regex-2.0.10.tgz#af13878bd4ad704de77d6dc800799358b3afa70d" + integrity sha512-sB3ogMQXWvreNPbJUZMRApxuRYd+KoIo4RGQ81VatjmMW6WJPo+IJZ2846FGItr9VzKo5w7DXzijPLGtSd0N3Q== dependencies: ip-regex "^2.1.0" cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" @@ -1298,27 +1205,22 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: circular-json@^0.3.1: version "0.3.3" resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" + integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== clean-stack@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.1.0.tgz#9e7fec7f3f8340a2ab4f127c80273085e8fbbdd0" + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== cli-boxes@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" + integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= cli-columns@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/cli-columns/-/cli-columns-3.1.2.tgz#6732d972979efc2ae444a1f08e08fa139c96a18e" + integrity sha1-ZzLZcpee/CrkRKHwjgj6E5yWoY4= dependencies: string-width "^2.0.0" strip-ansi "^3.0.1" @@ -1326,12 +1228,21 @@ cli-columns@^3.1.2: cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= dependencies: restore-cursor "^2.0.0" +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + cli-table3@^0.5.0, cli-table3@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" + integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== dependencies: object-assign "^4.1.0" string-width "^2.1.1" @@ -1341,16 +1252,19 @@ cli-table3@^0.5.0, cli-table3@^0.5.1: cli-table@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23" + integrity sha1-9TsFJmqLGguTSz0IIebi3FkUriM= dependencies: colors "1.0.3" cli-width@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= cliui@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" + integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== dependencies: string-width "^2.1.1" strip-ansi "^4.0.0" @@ -1359,6 +1273,7 @@ cliui@^4.0.0: cliui@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== dependencies: string-width "^3.1.0" strip-ansi "^5.2.0" @@ -1367,10 +1282,12 @@ cliui@^5.0.0: clone@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= -cmd-shim@^2.0.2, cmd-shim@~2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-2.0.2.tgz#6fcbda99483a8fd15d7d30a196ca69d688a2efdb" +cmd-shim@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-3.0.1.tgz#7b34dfbd503898b9953928a9eed1ef251fe19f88" + integrity sha512-C5t8o5glT2rDJkfRXZXweu5+obqcCjA5OSKSFQeYBDGZo+crirMh35Uhm9Lmb1wRSinKBXOFsCN7XNyLGTve8A== dependencies: graceful-fs "^4.1.2" mkdirp "~0.5.0" @@ -1378,10 +1295,12 @@ cmd-shim@^2.0.2, cmd-shim@~2.0.2: co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= coininfo@Bitcoin-com/coininfo: version "4.0.0" @@ -1389,68 +1308,62 @@ coininfo@Bitcoin-com/coininfo: dependencies: safe-buffer "^5.1.1" -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= colors@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" + integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs= colors@^1.1.2: version "1.3.3" resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" + integrity sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg== columnify@~1.5.4: version "1.5.4" resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" + integrity sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs= dependencies: strip-ansi "^3.0.0" wcwidth "^1.0.0" -combine-source-map@^0.8.0, combine-source-map@~0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.8.0.tgz#a58d0df042c186fcf822a8e8015f5450d2d79a8b" - dependencies: - convert-source-map "~1.1.0" - inline-source-map "~0.6.0" - lodash.memoize "~3.0.3" - source-map "~0.5.3" - combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" commander@2.15.1: version "2.15.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" + integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag== commander@~2.20.0: version "2.20.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" + integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= compare-func@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-1.3.2.tgz#99dd0ba457e1f9bc722b12c08ec33eeab31fa648" + integrity sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg= dependencies: array-ify "^1.0.0" dot-prop "^3.0.0" @@ -1458,26 +1371,27 @@ compare-func@^1.3.1: component-bind@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= component-emitter@1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= component-inherit@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.5.0, concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@~1.6.0: +concat-stream@^1.5.0, concat-stream@^1.6.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== dependencies: buffer-from "^1.0.0" inherits "^2.0.3" @@ -1487,6 +1401,7 @@ concat-stream@^1.5.0, concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@ config-chain@^1.1.12: version "1.1.12" resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== dependencies: ini "^1.3.4" proto-list "~1.2.1" @@ -1494,6 +1409,7 @@ config-chain@^1.1.12: configstore@^3.0.0: version "3.1.2" resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" + integrity sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw== dependencies: dot-prop "^4.1.0" graceful-fs "^4.1.2" @@ -1502,56 +1418,60 @@ configstore@^3.0.0: write-file-atomic "^2.0.0" xdg-basedir "^3.0.0" -console-browserify@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" - dependencies: - date-now "^0.1.4" - console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - -constants-browserify@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= contains-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= conventional-changelog-angular@^5.0.0: version "5.0.3" resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.3.tgz#299fdd43df5a1f095283ac16aeedfb0a682ecab0" + integrity sha512-YD1xzH7r9yXQte/HF9JBuEDfvjxxwDGGwZU1+ndanbY0oFgA+Po1T9JDSpPLdP0pZT6MhCAsdvFKC4TJ4MTJTA== dependencies: compare-func "^1.3.1" q "^1.5.1" conventional-changelog-writer@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.0.3.tgz#916a2b302d0bb5ef18efd236a034c13fb273cde1" + version "4.0.7" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.0.7.tgz#e4b7d9cbea902394ad671f67108a71fa90c7095f" + integrity sha512-p/wzs9eYaxhFbrmX/mCJNwJuvvHR+j4Fd0SQa2xyAhYed6KBiZ780LvoqUUvsayP4R1DtC27czalGUhKV2oabw== dependencies: compare-func "^1.3.1" - conventional-commits-filter "^2.0.1" + conventional-commits-filter "^2.0.2" dateformat "^3.0.0" - handlebars "^4.1.0" + handlebars "^4.1.2" json-stringify-safe "^5.0.1" lodash "^4.2.1" meow "^4.0.0" - semver "^5.5.0" + semver "^6.0.0" split "^1.0.0" - through2 "^2.0.0" + through2 "^3.0.0" -conventional-commits-filter@^2.0.0, conventional-commits-filter@^2.0.1: +conventional-commits-filter@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.1.tgz#55a135de1802f6510b6758e0a6aa9e0b28618db3" + integrity sha512-92OU8pz/977udhBjgPEbg3sbYzIxMDFTlQT97w7KdhR9igNqdJvy8smmedAAgn4tPiqseFloKkrVfbXCVd+E7A== dependencies: is-subset "^0.1.1" modify-values "^1.0.0" +conventional-commits-filter@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.2.tgz#f122f89fbcd5bb81e2af2fcac0254d062d1039c1" + integrity sha512-WpGKsMeXfs21m1zIw4s9H5sys2+9JccTzpN6toXtxhpw2VNF2JUXwIakthKBy+LN4DvJm+TzWhxOMWOs1OFCFQ== + dependencies: + lodash.ismatch "^4.4.0" + modify-values "^1.0.0" + conventional-commits-parser@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.0.1.tgz#fe1c49753df3f98edb2285a5e485e11ffa7f2e4c" + integrity sha512-P6U5UOvDeidUJ8ebHVDIoXzI7gMlQ1OF/id6oUvp8cnZvOXMt1n8nYl74Ey9YMn0uVQtxmCtjPQawpsssBWtGg== dependencies: JSONStream "^1.0.4" is-text-path "^1.0.0" @@ -1564,20 +1484,19 @@ conventional-commits-parser@^3.0.0: convert-source-map@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" + integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== dependencies: safe-buffer "~5.1.1" -convert-source-map@~1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860" - cookie@0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= copy-concurrently@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== dependencies: aproba "^1.1.1" fs-write-stream-atomic "^1.0.8" @@ -1586,17 +1505,15 @@ copy-concurrently@^1.0.0: rimraf "^2.5.4" run-queue "^1.0.0" -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= cosmiconfig@^5.0.1: version "5.2.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== dependencies: import-fresh "^2.0.0" is-directory "^0.3.1" @@ -1604,11 +1521,12 @@ cosmiconfig@^5.0.1: parse-json "^4.0.0" coveralls@^3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-3.0.4.tgz#f50233c9c62fd0973f710fce85fd19dba24cff4b" + version "3.0.6" + resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-3.0.6.tgz#5c63b2759b6781118e7439bd870ba5e9ee428b25" + integrity sha512-Pgh4v3gCI4T/9VijVrm8Ym5v0OgjvGLKj3zTUwkvsCiwqae/p6VLzpsFNjQS2i6ewV7ef+DjFJ5TSKxYt/mCrA== dependencies: growl "~> 1.10.0" - js-yaml "^3.11.0" + js-yaml "^3.13.1" lcov-parse "^0.0.10" log-driver "^1.2.7" minimist "^1.2.0" @@ -1617,6 +1535,7 @@ coveralls@^3.0.2: cp-file@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/cp-file/-/cp-file-6.2.0.tgz#40d5ea4a1def2a9acdd07ba5c0b0246ef73dc10d" + integrity sha512-fmvV4caBnofhPe8kOcitBwSn2f39QLjnAnGq3gO9dfd75mUytzKNZB1hde6QHunW2Rt+OwuBOMc3i1tNElbszA== dependencies: graceful-fs "^4.1.2" make-dir "^2.0.0" @@ -1624,22 +1543,17 @@ cp-file@^6.2.0: pify "^4.0.1" safe-buffer "^5.0.1" -create-ecdh@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" - dependencies: - bn.js "^4.1.0" - elliptic "^6.0.0" - create-error-class@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= dependencies: capture-stack-trace "^1.0.0" create-hash@^1.1.0, create-hash@^1.1.1, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== dependencies: cipher-base "^1.0.1" inherits "^2.0.1" @@ -1647,9 +1561,10 @@ create-hash@^1.1.0, create-hash@^1.1.1, create-hash@^1.1.2, create-hash@^1.2.0: ripemd160 "^2.0.1" sha.js "^2.4.0" -create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.3, create-hmac@^1.1.4: +create-hmac@^1.1.3, create-hmac@^1.1.4: version "1.1.7" resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== dependencies: cipher-base "^1.0.3" create-hash "^1.1.0" @@ -1661,6 +1576,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.3, create-hmac@^1.1.4: cross-spawn@^4: version "4.0.2" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" + integrity sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE= dependencies: lru-cache "^4.0.1" which "^1.2.9" @@ -1668,6 +1584,7 @@ cross-spawn@^4: cross-spawn@^5.0.1, cross-spawn@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= dependencies: lru-cache "^4.0.1" shebang-command "^1.2.0" @@ -1676,6 +1593,7 @@ cross-spawn@^5.0.1, cross-spawn@^5.1.0: cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== dependencies: nice-try "^1.0.4" path-key "^2.0.1" @@ -1683,89 +1601,77 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -crypto-browserify@^3.0.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - crypto-random-string@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= currently-unhandled@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= dependencies: array-find-index "^1.0.1" cyclist@~0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" - -dash-ast@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dash-ast/-/dash-ast-1.0.0.tgz#12029ba5fb2f8aa6f0a861795b23c1b4b6c27d37" + integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA= dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= dependencies: assert-plus "^1.0.0" -date-now@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" - dateformat@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" + integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== debug-log@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" + integrity sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8= debug@3.1.0, debug@=3.1.0, debug@~3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== dependencies: ms "2.0.0" -debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: +debug@^2.6.8, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" debug@^3.1.0: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== dependencies: ms "^2.1.1" debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== dependencies: ms "^2.1.1" debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" + integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= decamelize-keys@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" + integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= dependencies: decamelize "^1.1.0" map-obj "^1.0.0" @@ -1773,77 +1679,70 @@ decamelize-keys@^1.0.0: decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= deep-eql@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== dependencies: type-detect "^4.0.0" deep-equal@^1.0.0, deep-equal@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= -deepmerge@3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.2.1.tgz#76a1f47854bcfcd66ee9a948d110540a8e12b261" +deepmerge@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.0.0.tgz#3e3110ca29205f120d7cb064960a39c3d2087c09" + integrity sha512-YZ1rOP5+kHor4hMAH+HRQnBQHg+wvS1un1hAOuIcxcBy0hzcUf6Jg2a1w65kpoOUnurOfZbERwjI1TfZxNjcww== default-require-extensions@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-2.0.0.tgz#f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7" + integrity sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc= dependencies: strip-bom "^3.0.0" defaults@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= dependencies: clone "^1.0.2" define-properties@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== dependencies: object-keys "^1.0.12" -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -defined@^1.0.0, defined@~1.0.0: +defined@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= deglob@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/deglob/-/deglob-2.1.1.tgz#d268e168727799862e8eac07042e165957c1f3be" + integrity sha512-2kjwuGGonL7gWE1XU4Fv79+vVzpoQCl0V+boMwWtOQJV2AGDabCwez++nB1Nli/8BabAfZQ/UuHPlp6AymKdWw== dependencies: find-root "^1.0.0" glob "^7.0.5" @@ -1855,54 +1754,37 @@ deglob@^2.1.0: delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= depd@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= deprecation@^2.0.0: version "2.3.1" resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" - -deps-sort@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.0.tgz#091724902e84658260eb910748cccd1af6e21fb5" - dependencies: - JSONStream "^1.0.3" - shasum "^1.0.0" - subarg "^1.0.0" - through2 "^2.0.0" - -des.js@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" + integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== detect-indent@~5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" + integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= detect-newline@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" - -detective@^5.0.2: - version "5.2.0" - resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b" - dependencies: - acorn-node "^1.6.1" - defined "^1.0.0" - minimist "^1.1.1" + integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= dezalgo@^1.0.0, dezalgo@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" + integrity sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY= dependencies: asap "^2.0.0" wrappy "1" @@ -1910,32 +1792,24 @@ dezalgo@^1.0.0, dezalgo@~1.0.3: diff@3.5.0, diff@^3.1.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== diff@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.1.tgz#0c667cb467ebbb5cea7f14f135cc2dba7780a8ff" + integrity sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q== -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dijkstrajs@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.1.tgz#d3cd81221e3ea40742cfcde556d4e99e98ddc71b" - -dir-glob@^2.0.0, dir-glob@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" +dir-glob@^3.0.0, dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== dependencies: - path-type "^3.0.0" + path-type "^4.0.0" doctrine@1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= dependencies: esutils "^2.0.2" isarray "^1.0.0" @@ -1943,56 +1817,61 @@ doctrine@1.5.0: doctrine@^2.0.2, doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== dependencies: esutils "^2.0.2" doctrine@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== dependencies: esutils "^2.0.2" -domain-browser@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - dot-prop@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" + integrity sha1-G3CK8JSknJoOfbyteQq6U52sEXc= dependencies: is-obj "^1.0.0" dot-prop@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" + integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== dependencies: is-obj "^1.0.0" dotenv@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-5.0.1.tgz#a5317459bd3d79ab88cff6e44057a6a3fbb1fcef" + integrity sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow== drbg.js@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/drbg.js/-/drbg.js-1.0.1.tgz#3e36b6c42b37043823cdbc332d58f31e2445480b" + integrity sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs= dependencies: browserify-aes "^1.0.6" create-hash "^1.1.2" create-hmac "^1.1.4" -duplexer2@^0.1.2, duplexer2@~0.1.0, duplexer2@~0.1.2: +duplexer2@~0.1.0: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" + integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= dependencies: readable-stream "^2.0.2" duplexer3@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= duplexify@^3.4.2, duplexify@^3.6.0: version "3.7.1" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== dependencies: end-of-stream "^1.0.0" inherits "^2.0.1" @@ -2002,6 +1881,7 @@ duplexify@^3.4.2, duplexify@^3.6.0: ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= dependencies: jsbn "~0.1.0" safer-buffer "^2.1.0" @@ -2009,6 +1889,7 @@ ecc-jsbn@~0.1.1: ecurve@^1.0.0, ecurve@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/ecurve/-/ecurve-1.0.6.tgz#dfdabbb7149f8d8b78816be5a7d5b83fcf6de797" + integrity sha512-/BzEjNfiSuB7jIWKcS/z8FK9jNjmEWvUV2YZ4RLSmcDtP7Lq0m6FvDuSnJpBlDpGRpfRQeTLGLBI8H+kEv0r+w== dependencies: bigi "^1.1.0" safe-buffer "^5.0.1" @@ -2016,10 +1897,12 @@ ecurve@^1.0.0, ecurve@^1.0.6: editor@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/editor/-/editor-1.0.0.tgz#60c7f87bd62bcc6a894fa8ccd6afb7823a24f742" + integrity sha1-YMf4e9YrzGqJT6jM1q+3gjok90I= -elliptic@^6.0.0, elliptic@^6.4.1: - version "6.4.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" +elliptic@^6.4.1: + version "6.5.0" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.0.tgz#2b8ed4c891b7de3200e14412a5b8248c7af505ca" + integrity sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg== dependencies: bn.js "^4.4.0" brorand "^1.0.1" @@ -2032,22 +1915,31 @@ elliptic@^6.0.0, elliptic@^6.4.1: emoji-regex@^7.0.1: version "7.0.3" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== encoding@^0.1.11: version "0.1.12" resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" + integrity sha1-U4tm8+5izRq1HsMjgp0flIDHS+s= dependencies: iconv-lite "~0.4.13" end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.1" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" + integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== dependencies: once "^1.4.0" engine.io-client@~3.3.1: version "3.3.2" resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.3.2.tgz#04e068798d75beda14375a264bb3d742d7bc33aa" + integrity sha512-y0CPINnhMvPuwtqXfsGuWE8BB66+B6wTtCofQDRecMQPYX3MYUZXFNKDhdrSe3EVjgOu4V3rxdeqN/Tr91IgbQ== dependencies: component-emitter "1.2.1" component-inherit "0.0.3" @@ -2064,6 +1956,7 @@ engine.io-client@~3.3.1: engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: version "2.1.3" resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz#757ab970fbf2dfb32c7b74b033216d5739ef79a6" + integrity sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA== dependencies: after "0.8.2" arraybuffer.slice "~0.0.7" @@ -2074,6 +1967,7 @@ engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: engine.io@~3.3.1: version "3.3.2" resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.3.2.tgz#18cbc8b6f36e9461c5c0f81df2b830de16058a59" + integrity sha512-AsaA9KG7cWPXWHp5FvHdDWY3AMWeZ8x+2pUVLcn71qE5AtAzgGbxuclOytygskw8XGmiQafTmnI9Bix3uihu2w== dependencies: accepts "~1.3.4" base64id "1.0.0" @@ -2085,29 +1979,39 @@ engine.io@~3.3.1: env-ci@^4.0.0: version "4.1.1" resolved "https://registry.yarnpkg.com/env-ci/-/env-ci-4.1.1.tgz#b8438fc7258a0dc7a4f4c4816de730767946a718" + integrity sha512-eTgpkALDeYRGNhYM2fO9LKsWDifoUgKL7hxpPZqFMP2IU7f+r89DtKqCmk3yQB/jxS8CmZTfKnWO5TiIDFs9Hw== dependencies: execa "^1.0.0" java-properties "^1.0.0" +env-paths@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-1.0.0.tgz#4168133b42bb05c38a35b1ae4397c8298ab369e0" + integrity sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA= + err-code@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" + integrity sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA= errno@~0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== dependencies: prr "~1.0.1" error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" -es-abstract@^1.5.0, es-abstract@^1.7.0: +es-abstract@^1.5.0, es-abstract@^1.5.1, es-abstract@^1.7.0: version "1.13.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" + integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== dependencies: es-to-primitive "^1.2.0" function-bind "^1.1.1" @@ -2119,6 +2023,7 @@ es-abstract@^1.5.0, es-abstract@^1.7.0: es-to-primitive@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" + integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== dependencies: is-callable "^1.1.4" is-date-object "^1.0.1" @@ -2127,45 +2032,54 @@ es-to-primitive@^1.2.0: es6-error@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== es6-promise@^4.0.3: version "4.2.8" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== es6-promisify@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= dependencies: es6-promise "^4.0.3" escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= eslint-config-prettier@^3.0.1: version "3.6.0" resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-3.6.0.tgz#8ca3ffac4bd6eeef623a0651f9d754900e3ec217" + integrity sha512-ixJ4U3uTLXwJts4rmSVW/lMXjlGwCijhBJHk8iVqKKSifeI0qgFEfWl8L63isfc8Od7EiBALF6BX3jKLluf/jQ== dependencies: get-stdin "^6.0.0" eslint-config-standard-jsx@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-5.0.0.tgz#4abfac554f38668e0078c664569e7b2384e5d2aa" + integrity sha512-rLToPAEqLMPBfWnYTu6xRhm2OWziS2n40QFqJ8jAM8NSVzeVKTa3nclhsU4DpPJQRY60F34Oo1wi/71PN/eITg== eslint-config-standard@11.0.0: version "11.0.0" resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-11.0.0.tgz#87ee0d3c9d95382dc761958cbb23da9eea31e0ba" + integrity sha512-oDdENzpViEe5fwuRCWla7AXQd++/oyIp8zP+iP9jiUPG6NBj3SHgdgtl/kTn00AjeN+1HNvavTKmYbMo+xMOlw== eslint-import-resolver-node@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" + integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q== dependencies: debug "^2.6.9" resolve "^1.5.0" eslint-module-utils@^2.1.1: - version "2.4.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz#8b93499e9b00eab80ccb6614e69f03678e84e09a" + version "2.4.1" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.1.tgz#7b4675875bf96b0dbf1b21977456e5bb1f5e018c" + integrity sha512-H6DOj+ejw7Tesdgbfs4jeS4YMFrT8uI8xwd1gtQqXssaR0EQ26L+2O/w6wkYFy2MymON0fTwHmXBvvfLNZVZEw== dependencies: debug "^2.6.8" pkg-dir "^2.0.0" @@ -2173,6 +2087,7 @@ eslint-module-utils@^2.1.1: eslint-plugin-es@^1.3.1: version "1.4.0" resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.0.tgz#475f65bb20c993fc10e8c8fe77d1d60068072da6" + integrity sha512-XfFmgFdIUDgvaRAlaXUkxrRg5JSADoRC8IkKLc/cISeR3yHVMefFHQZpcyXXEUUPHfy5DwviBcrfqlyqEwlQVw== dependencies: eslint-utils "^1.3.0" regexpp "^2.0.1" @@ -2180,6 +2095,7 @@ eslint-plugin-es@^1.3.1: eslint-plugin-import@~2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz#26002efbfca5989b7288ac047508bd24f217b169" + integrity sha1-JgAu+/ylmJtyiKwEdQi9JPIXsWk= dependencies: builtin-modules "^1.1.1" contains-path "^0.1.0" @@ -2195,6 +2111,7 @@ eslint-plugin-import@~2.9.0: eslint-plugin-node@7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-7.0.1.tgz#a6e054e50199b2edd85518b89b4e7b323c9f36db" + integrity sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw== dependencies: eslint-plugin-es "^1.3.1" eslint-utils "^1.3.1" @@ -2206,6 +2123,7 @@ eslint-plugin-node@7.0.1: eslint-plugin-node@~6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz#bf19642298064379315d7a4b2a75937376fa05e4" + integrity sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw== dependencies: ignore "^3.3.6" minimatch "^3.0.4" @@ -2215,6 +2133,7 @@ eslint-plugin-node@~6.0.0: eslint-plugin-prettier@^2.6.2: version "2.7.0" resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.7.0.tgz#b4312dcf2c1d965379d7f9d5b5f8aaadc6a45904" + integrity sha512-CStQYJgALoQBw3FsBzH0VOVDRnJ/ZimUlpLm226U8qgqYJfPOY/CPK6wyRInMxh73HSKg5wyRwdS4BVYYHwokA== dependencies: fast-diff "^1.1.1" jest-docblock "^21.0.0" @@ -2222,10 +2141,12 @@ eslint-plugin-prettier@^2.6.2: eslint-plugin-promise@~3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-3.7.0.tgz#f4bde5c2c77cdd69557a8f69a24d1ad3cfc9e67e" + integrity sha512-2WO+ZFh7vxUKRfR0cOIMrWgYKdR6S1AlOezw6pC52B6oYpd5WFghN+QHxvrRdZMtbo8h3dfUZ2o1rWb0UPbKtg== eslint-plugin-react@~7.7.0: version "7.7.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz#f606c719dbd8a1a2b3d25c16299813878cca0160" + integrity sha512-KC7Snr4YsWZD5flu6A5c0AcIZidzW3Exbqp7OT67OaD2AppJtlBr/GuPrW/vaQM/yfZotEvKAdrxrO+v8vwYJA== dependencies: doctrine "^2.0.2" has "^1.0.1" @@ -2235,10 +2156,12 @@ eslint-plugin-react@~7.7.0: eslint-plugin-standard@~3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz#34d0c915b45edc6f010393c7eef3823b08565cf2" + integrity sha1-NNDJFbRe3G8BA5PH7vOCOwhWXPI= eslint-scope@^3.7.1: version "3.7.3" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535" + integrity sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA== dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" @@ -2246,21 +2169,27 @@ eslint-scope@^3.7.1: eslint-scope@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" eslint-utils@^1.3.0, eslint-utils@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512" + version "1.4.2" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.2.tgz#166a5180ef6ab7eb462f162fd0e6f2463d7309ab" + integrity sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q== + dependencies: + eslint-visitor-keys "^1.0.0" eslint-visitor-keys@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" + version "1.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" + integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== eslint@^5.5.0: version "5.16.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" + integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg== dependencies: "@babel/code-frame" "^7.0.0" ajv "^6.9.1" @@ -2302,6 +2231,7 @@ eslint@^5.5.0: eslint@~4.18.0: version "4.18.2" resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.18.2.tgz#0f81267ad1012e7d2051e186a9004cc2267b8d45" + integrity sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw== dependencies: ajv "^5.3.0" babel-code-frame "^6.22.0" @@ -2344,6 +2274,7 @@ eslint@~4.18.0: espree@^3.5.2: version "3.5.4" resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" + integrity sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A== dependencies: acorn "^5.5.0" acorn-jsx "^3.0.0" @@ -2351,6 +2282,7 @@ espree@^3.5.2: espree@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" + integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A== dependencies: acorn "^6.0.7" acorn-jsx "^5.0.0" @@ -2359,30 +2291,31 @@ espree@^5.0.1: esprima@^4.0.0, esprima@~4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esquery@^1.0.0, esquery@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" + integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== dependencies: estraverse "^4.0.0" esrecurse@^4.1.0: version "4.2.1" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== dependencies: estraverse "^4.1.0" estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== esutils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" - -events@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/events/-/events-2.1.0.tgz#2a9a1e18e6106e0e812aa9ebd4a819b3c29c0ba5" + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== eventsource@^1.0.7: version "1.0.7" @@ -2391,9 +2324,10 @@ eventsource@^1.0.7: dependencies: original "^1.0.0" -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: +evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== dependencies: md5.js "^1.3.4" safe-buffer "^5.1.1" @@ -2401,6 +2335,7 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: execa@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= dependencies: cross-spawn "^5.0.1" get-stream "^3.0.0" @@ -2413,6 +2348,7 @@ execa@^0.7.0: execa@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== dependencies: cross-spawn "^6.0.0" get-stream "^4.0.0" @@ -2422,122 +2358,106 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== external-editor@^2.0.4: version "2.2.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" + integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A== dependencies: chardet "^0.4.0" iconv-lite "^0.4.17" tmp "^0.0.33" external-editor@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== dependencies: chardet "^0.7.0" iconv-lite "^0.4.24" tmp "^0.0.33" -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= extsprintf@^1.2.0: version "1.4.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= fast-deep-equal@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" + integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ= fast-deep-equal@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= fast-diff@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" + integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== -fast-glob@^2.2.6: - version "2.2.7" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" +fast-glob@^3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.0.4.tgz#d484a41005cb6faeb399b951fd1bd70ddaebb602" + integrity sha512-wkIbV6qg37xTJwqSsdnIphL1e+LaGz4AIQqr00mIubMaEhv1/HEmJ0uuCGZRNRUkZZmOB5mJKO0ZUTVq+SxMQg== dependencies: - "@mrmlnc/readdir-enhanced" "^2.2.1" - "@nodelib/fs.stat" "^1.1.2" - glob-parent "^3.1.0" - is-glob "^4.0.0" + "@nodelib/fs.stat" "^2.0.1" + "@nodelib/fs.walk" "^1.2.1" + glob-parent "^5.0.0" + is-glob "^4.0.1" merge2 "^1.2.3" - micromatch "^3.1.10" + micromatch "^4.0.2" fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= fast-levenshtein@~2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fastq@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.6.0.tgz#4ec8a38f4ac25f21492673adb7eae9cfef47d1c2" + integrity sha512-jmxqQ3Z/nXoeyDmWAzF9kH1aGZSis6e/SbfPmJpUnyZ0ogr6iscHQaml4wsEepEWSdtmpy+eVXmCRIMpxaXqOA== + dependencies: + reusify "^1.0.0" figgy-pudding@^3.4.1, figgy-pudding@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" + integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== figures@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= dependencies: escape-string-regexp "^1.0.5" figures@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.0.0.tgz#756275c964646163cc6f9197c7a0295dbfd04de9" + integrity sha512-HKri+WoWoUgr83pehn/SIgLOMZ9nAWC6dcGj26RY2R4F50u4+RTUz0RCrUlOV3nKRAICW1UGzyb+kcX2qK1S/g== dependencies: escape-string-regexp "^1.0.5" file-entry-cache@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + integrity sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E= dependencies: flat-cache "^1.2.1" object-assign "^4.0.1" @@ -2545,25 +2465,26 @@ file-entry-cache@^2.0.0: file-entry-cache@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== dependencies: flat-cache "^2.0.1" file-uri-to-path@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" + to-regex-range "^5.0.1" find-cache-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== dependencies: commondir "^1.0.1" make-dir "^2.0.0" @@ -2572,26 +2493,31 @@ find-cache-dir@^2.1.0: find-npm-prefix@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/find-npm-prefix/-/find-npm-prefix-1.0.2.tgz#8d8ce2c78b3b4b9e66c8acc6a37c231eb841cfdf" + integrity sha512-KEftzJ+H90x6pcKtdXZEPsQse8/y/UnvzRKrOSQFprnrGaFuJ62fVkP34Iu2IYuMvyauCyoLTNkJZgrrGA2wkA== find-root@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== find-up@^2.0.0, find-up@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= dependencies: locate-path "^2.0.0" find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== dependencies: locate-path "^3.0.0" find-up@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: locate-path "^5.0.0" path-exists "^4.0.0" @@ -2599,6 +2525,7 @@ find-up@^4.0.0: find-versions@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.1.0.tgz#10161f29cf3eb4350dec10a29bdde75bff0df32d" + integrity sha512-NCTfNiVzeE/xL+roNDffGuRbrWI6atI18lTJ22vKp7rs2OhYzMK3W1dIdO2TUndH/QMcacM4d1uWwgcZcHK69Q== dependencies: array-uniq "^2.1.0" semver-regex "^2.0.0" @@ -2606,6 +2533,7 @@ find-versions@^3.0.0: flat-cache@^1.2.1: version "1.3.4" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f" + integrity sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg== dependencies: circular-json "^0.3.1" graceful-fs "^4.1.2" @@ -2615,18 +2543,21 @@ flat-cache@^1.2.1: flat-cache@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== dependencies: flatted "^2.0.0" rimraf "2.6.3" write "1.0.3" flatted@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.0.tgz#55122b6536ea496b4b44893ee2608141d10d9916" + version "2.0.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" + integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== flush-write-stream@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== dependencies: inherits "^2.0.3" readable-stream "^2.3.6" @@ -2634,22 +2565,21 @@ flush-write-stream@^1.0.0: follow-redirects@1.5.10: version "1.5.10" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" + integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== dependencies: debug "=3.1.0" for-each@~0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== dependencies: is-callable "^1.1.3" -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - foreground-child@^1.5.6: version "1.5.6" resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9" + integrity sha1-T9ca0t/elnibmApcCilZN8svXOk= dependencies: cross-spawn "^4" signal-exit "^3.0.0" @@ -2657,28 +2587,26 @@ foreground-child@^1.5.6: forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= form-data@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== dependencies: asynckit "^0.4.0" combined-stream "^1.0.6" mime-types "^2.1.12" -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - dependencies: - map-cache "^0.2.2" - fresh@^0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= from2@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/from2/-/from2-1.3.0.tgz#88413baaa5f9a597cfde9221d86986cd3c061dfd" + integrity sha1-iEE7qqX5pZfP3pIh2GmGzTwGHf0= dependencies: inherits "~2.0.1" readable-stream "~1.1.10" @@ -2686,27 +2614,31 @@ from2@^1.3.0: from2@^2.1.0, from2@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= dependencies: inherits "^2.0.1" readable-stream "^2.0.0" fs-extra@^8.0.0: - version "8.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.0.1.tgz#90294081f978b1f182f347a440a209154344285b" + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== dependencies: - graceful-fs "^4.1.2" + graceful-fs "^4.2.0" jsonfile "^4.0.0" universalify "^0.1.0" fs-minipass@^1.2.5: version "1.2.6" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.6.tgz#2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07" + integrity sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ== dependencies: minipass "^2.2.1" fs-vacuum@^1.2.10, fs-vacuum@~1.2.10: version "1.2.10" resolved "https://registry.yarnpkg.com/fs-vacuum/-/fs-vacuum-1.2.10.tgz#b7629bec07a4031a2548fdf99f5ecf1cc8b31e36" + integrity sha1-t2Kb7AekAxolSP35n17PHMizHjY= dependencies: graceful-fs "^4.1.2" path-is-inside "^1.0.1" @@ -2715,6 +2647,7 @@ fs-vacuum@^1.2.10, fs-vacuum@~1.2.10: fs-write-stream-atomic@^1.0.8, fs-write-stream-atomic@~1.0.10: version "1.0.10" resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= dependencies: graceful-fs "^4.1.2" iferr "^0.1.5" @@ -2724,27 +2657,22 @@ fs-write-stream-atomic@^1.0.8, fs-write-stream-atomic@~1.0.10: fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - -fstream@^1.0.0, fstream@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= function-bind@^1.0.2, function-bind@^1.1.1, function-bind@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= dependencies: aproba "^1.0.3" console-control-strings "^1.0.0" @@ -2758,69 +2686,74 @@ gauge@~2.7.3: genfun@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/genfun/-/genfun-5.0.0.tgz#9dd9710a06900a5c4a5bf57aca5da4e52fe76537" + integrity sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA== -gentle-fs@^2.0.0, gentle-fs@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/gentle-fs/-/gentle-fs-2.0.1.tgz#585cfd612bfc5cd52471fdb42537f016a5ce3687" +gentle-fs@^2.0.1, gentle-fs@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/gentle-fs/-/gentle-fs-2.2.1.tgz#1f38df4b4ead685566257201fd526de401ebb215" + integrity sha512-e7dRgUM5fsS+7wm2oggZpgcRx6sEvJHXujPH5RzgQ1ziQY4+HuVBYsnUzJwJ+C7mjOJN27DjiFy1TaL+TNltow== dependencies: aproba "^1.1.2" + chownr "^1.1.2" fs-vacuum "^1.2.10" graceful-fs "^4.1.11" iferr "^0.1.5" + infer-owner "^1.0.4" mkdirp "^0.5.1" path-is-inside "^1.0.2" read-cmd-shim "^1.0.1" slide "^1.1.6" -get-assigned-identifiers@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1" - get-caller-file@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== get-caller-file@^2.0.1: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== get-func-name@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= get-stdin@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" + integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= get-stream@^4.0.0, get-stream@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== dependencies: pump "^3.0.0" get-stream@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" + integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== dependencies: pump "^3.0.0" -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= dependencies: assert-plus "^1.0.0" git-log-parser@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/git-log-parser/-/git-log-parser-1.2.0.tgz#2e6a4c1b13fc00028207ba795a7ac31667b9fd4a" + integrity sha1-LmpMGxP8AAKCB7p5WnrDFme5/Uo= dependencies: argv-formatter "~1.0.0" spawn-error-forwarder "~1.0.0" @@ -2829,20 +2762,17 @@ git-log-parser@^1.2.0: through2 "~2.0.0" traverse "~0.6.6" -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" +glob-parent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.0.0.tgz#1dc99f0f39b006d3e92c2c284068382f0c20e954" + integrity sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg== dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-to-regexp@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" + is-glob "^4.0.1" glob@7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -2851,9 +2781,10 @@ glob@7.1.2: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.3, glob@^7.0.5, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@~7.1.4: +glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@~7.1.4: version "7.1.4" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" + integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -2865,29 +2796,33 @@ glob@^7.0.3, glob@^7.0.5, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, gl global-dirs@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" + integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= dependencies: ini "^1.3.4" globals@^11.0.1, globals@^11.1.0, globals@^11.7.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globby@^9.0.0: - version "9.2.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" +globby@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.1.tgz#4782c34cb75dd683351335c5829cc3420e606b22" + integrity sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A== dependencies: "@types/glob" "^7.1.1" - array-union "^1.0.2" - dir-glob "^2.2.2" - fast-glob "^2.2.6" + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.0.3" glob "^7.1.3" - ignore "^4.0.3" - pify "^4.0.1" - slash "^2.0.0" + ignore "^5.1.1" + merge2 "^1.2.3" + slash "^3.0.0" got@^6.7.1: version "6.7.1" resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" + integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA= dependencies: create-error-class "^3.0.0" duplexer3 "^0.1.4" @@ -2901,17 +2836,20 @@ got@^6.7.1: unzip-response "^2.0.1" url-parse-lax "^1.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6: - version "4.1.15" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02" + integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q== growl@1.10.5, "growl@~> 1.10.0": version "1.10.5" resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== -handlebars@^4.1.0, handlebars@^4.1.2: +handlebars@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67" + integrity sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw== dependencies: neo-async "^2.6.0" optimist "^0.6.1" @@ -2922,10 +2860,12 @@ handlebars@^4.1.0, handlebars@^4.1.2: har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= har-validator@~5.1.0: version "5.1.3" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== dependencies: ajv "^6.5.5" har-schema "^2.0.0" @@ -2933,71 +2873,53 @@ har-validator@~5.1.0: has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= dependencies: ansi-regex "^2.0.0" has-binary2@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" + integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== dependencies: isarray "2.0.1" has-cors@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= has-flag@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + integrity sha1-6CB68cx7MNRGzHC3NLXovhj4jVE= has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= has-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= has-unicode@^2.0.0, has-unicode@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.0, has@^1.0.1, has@^1.0.3, has@~1.0.3: +has@^1.0.1, has@^1.0.3, has@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" hash-base@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" @@ -3005,6 +2927,7 @@ hash-base@^3.0.0: hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.7" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== dependencies: inherits "^2.0.3" minimalistic-assert "^1.0.1" @@ -3012,16 +2935,19 @@ hash.js@^1.0.0, hash.js@^1.0.3: hasha@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/hasha/-/hasha-3.0.0.tgz#52a32fab8569d41ca69a61ff1a214f8eb7c8bd39" + integrity sha1-UqMvq4Vp1BymmmH/GiFPjrfIvTk= dependencies: is-stream "^1.0.1" he@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0= hmac-drbg@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= dependencies: hash.js "^1.0.3" minimalistic-assert "^1.0.0" @@ -3030,22 +2956,29 @@ hmac-drbg@^1.0.0: hook-std@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/hook-std/-/hook-std-2.0.0.tgz#ff9aafdebb6a989a354f729bb6445cf4a3a7077c" + integrity sha512-zZ6T5WcuBMIUVh49iPQS9t977t7C0l7OtHrpeMb5uk48JdflRX0NSFvCekfYNmGQETnLq9W/isMyHl69kxGi8g== -hosted-git-info@^2.1.4, hosted-git-info@^2.6.0, hosted-git-info@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" +hosted-git-info@^2.1.4, hosted-git-info@^2.6.0, hosted-git-info@^2.8.2: + version "2.8.4" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.4.tgz#44119abaf4bc64692a16ace34700fed9c03e2546" + integrity sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ== -htmlescape@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" +hosted-git-info@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.0.tgz#dd8af49cd01e73cc8e61ba13e217a772fd4ecd2d" + integrity sha512-zYSx1cP4MLsvKtTg8DF/PI6e6FHZ3wcawcTGsrLU2TM+UfD4jmSrn2wdQT16TFbH3lO4PIdjLG0E+cuYDgFD9g== + dependencies: + lru-cache "^5.1.1" http-cache-semantics@^3.8.1: version "3.8.1" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" + integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== http-proxy-agent@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" + integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg== dependencies: agent-base "4" debug "3.1.0" @@ -3053,70 +2986,78 @@ http-proxy-agent@^2.1.0: http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= dependencies: assert-plus "^1.0.0" jsprim "^1.2.2" sshpk "^1.7.0" -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - https-proxy-agent@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0" + version "2.2.2" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.2.tgz#271ea8e90f836ac9f119daccd39c19ff7dfb0793" + integrity sha512-c8Ndjc9Bkpfx/vCJueCPy0jlP4ccCCSNDp8xwCZzPjKJUm+B+u9WX2x98Qx4n1PiMNTWo3D7KK5ifNV/yJyRzg== dependencies: - agent-base "^4.1.0" + agent-base "^4.3.0" debug "^3.1.0" humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + integrity sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0= dependencies: ms "^2.0.0" iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@~0.4.13: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - iferr@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= iferr@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/iferr/-/iferr-1.0.2.tgz#e9fde49a9da06dc4a4194c6c9ed6d08305037a6d" + integrity sha512-9AfeLfji44r5TKInjhz3W9DyZI1zR1JAf2hVBMGhddAKPqBsupb89jGfbCTHIGZd6fGZl9WlHdn4AObygyMKwg== ignore-walk@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" + integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ== dependencies: minimatch "^3.0.4" ignore@^3.0.9, ignore@^3.3.3, ignore@^3.3.6: version "3.3.10" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" + integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== -ignore@^4.0.2, ignore@^4.0.3, ignore@^4.0.6: +ignore@^4.0.2, ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.1.1: + version "5.1.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" + integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A== import-fresh@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= dependencies: caller-path "^2.0.0" resolve-from "^3.0.0" import-fresh@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390" + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.1.0.tgz#6d33fa1dcef6df930fae003446f33415af905118" + integrity sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" @@ -3124,47 +3065,62 @@ import-fresh@^3.0.0: import-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/import-from/-/import-from-3.0.0.tgz#055cfec38cd5a27d8057ca51376d7d3bf0891966" + integrity sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ== dependencies: resolve-from "^5.0.0" import-lazy@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= indent-string@^3.0.0, indent-string@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= indexof@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= + +infer-owner@^1.0.3, infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== inflight@^1.0.4, inflight@~1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= dependencies: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== init-package-json@^1.10.3: version "1.10.3" resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-1.10.3.tgz#45ffe2f610a8ca134f2bd1db5637b235070f6cbe" + integrity sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw== dependencies: glob "^7.1.1" npm-package-arg "^4.0.0 || ^5.0.0 || ^6.0.0" @@ -3175,15 +3131,10 @@ init-package-json@^1.10.3: validate-npm-package-license "^3.0.1" validate-npm-package-name "^3.0.0" -inline-source-map@~0.6.0: - version "0.6.2" - resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5" - dependencies: - source-map "~0.5.3" - inquirer@^3.0.6: version "3.3.0" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" + integrity sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ== dependencies: ansi-escapes "^3.0.0" chalk "^2.0.0" @@ -3201,41 +3152,28 @@ inquirer@^3.0.6: through "^2.3.6" inquirer@^6.2.2: - version "6.3.1" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.3.1.tgz#7a413b5e7950811013a3db491c61d1f3b776e8e7" + version "6.5.1" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.1.tgz#8bfb7a5ac02dac6ff641ac4c5ff17da112fcdb42" + integrity sha512-uxNHBeQhRXIoHWTSNYUFhQVrHYFThIt6IVo2fFmSe8aBwdR3/w6b58hJpiL/fMukFkvGzjg+hSxFtwvVmKZmXw== dependencies: - ansi-escapes "^3.2.0" + ansi-escapes "^4.2.1" chalk "^2.4.2" - cli-cursor "^2.1.0" + cli-cursor "^3.1.0" cli-width "^2.0.0" external-editor "^3.0.3" - figures "^2.0.0" - lodash "^4.17.11" - mute-stream "0.0.7" + figures "^3.0.0" + lodash "^4.17.15" + mute-stream "0.0.8" run-async "^2.2.0" rxjs "^6.4.0" - string-width "^2.1.0" + string-width "^4.1.0" strip-ansi "^5.1.0" through "^2.3.6" -insert-module-globals@^7.0.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.2.0.tgz#ec87e5b42728479e327bd5c5c71611ddfb4752ba" - dependencies: - JSONStream "^1.0.3" - acorn-node "^1.5.2" - combine-source-map "^0.8.0" - concat-stream "^1.6.1" - is-buffer "^1.1.0" - path-is-absolute "^1.0.1" - process "~0.11.0" - through2 "^2.0.0" - undeclared-identifiers "^1.1.2" - xtend "^4.0.0" - into-stream@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-5.1.0.tgz#b05f37d8fed05c06a0b43b556d74e53e5af23878" + integrity sha512-cbDhb8qlxKMxPBk/QxTtYg1DQ4CwXmadu7quG3B7nrJsgSncEreF2kwWKZFdnjc/lSNNIkFPsjI7SM0Cx/QXPw== dependencies: from2 "^2.3.0" p-is-promise "^2.0.0" @@ -3243,134 +3181,90 @@ into-stream@^5.0.0: invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - -invert-kv@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= ip-regex@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - dependencies: - kind-of "^6.0.0" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - -is-buffer@^1.1.0, is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= is-buffer@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725" + integrity sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw== is-callable@^1.1.3, is-callable@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" + integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== is-ci@^1.0.10: version "1.2.1" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" + integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== dependencies: ci-info "^1.5.0" is-cidr@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-cidr/-/is-cidr-3.0.0.tgz#1acf35c9e881063cd5f696d48959b30fed3eed56" + integrity sha512-8Xnnbjsb0x462VoYiGlhEi+drY8SFwrHiSYuzc/CEwco55vkehTaxAyIjEdpi3EMvLPPJAJi9FlzP+h+03gp0Q== dependencies: cidr-regex "^2.0.10" -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - dependencies: - kind-of "^6.0.0" - is-date-object@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" + integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= is-directory@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: +is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - dependencies: - is-extglob "^2.1.0" +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-glob@^4.0.0: +is-glob@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== dependencies: is-extglob "^2.1.1" is-installed-globally@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" + integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= dependencies: global-dirs "^0.1.0" is-path-inside "^1.0.0" @@ -3378,130 +3272,127 @@ is-installed-globally@^0.1.0: is-npm@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" + integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ= -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - dependencies: - kind-of "^3.0.2" +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-obj@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= is-path-inside@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" + integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= dependencies: path-is-inside "^1.0.1" is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - -is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - dependencies: - isobject "^3.0.1" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= is-plain-object@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-3.0.0.tgz#47bfc5da1b5d50d64110806c199359482e75a928" + integrity sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg== dependencies: isobject "^4.0.0" is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= is-redirect@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= is-regex@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= dependencies: has "^1.0.1" is-resolvable@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== is-retry-allowed@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" + integrity sha1-EaBgVotnM5REAz0BJaYaINVk+zQ= is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= is-subset@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" + integrity sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY= is-symbol@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" + integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== dependencies: has-symbols "^1.0.0" is-text-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" + integrity sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4= dependencies: text-extensions "^1.0.0" is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= isarray@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" + integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= -isarray@^2.0.1: - version "2.0.4" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.4.tgz#38e7bcbb0f3ba1b7933c86ba1894ddfc3781bbb7" +isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= isobject@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0" + integrity sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA== isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= issue-parser@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/issue-parser/-/issue-parser-4.0.0.tgz#397817323abbb70c7c29cea2ff62448cf83b686c" + integrity sha512-1RmmAXHl5+cqTZ9dRr861xWy0Gkc9TWTEklgjKv+nhlB1dY1NmGBV8b20jTWRL5cPGpOIXkz84kEcDBM8Nc0cw== dependencies: lodash.capitalize "^4.2.1" lodash.escaperegexp "^4.1.2" @@ -3512,16 +3403,19 @@ issue-parser@^4.0.0: istanbul-lib-coverage@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49" + integrity sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA== istanbul-lib-hook@^2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz#c95695f383d4f8f60df1f04252a9550e15b5b133" + integrity sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA== dependencies: append-transform "^1.0.0" istanbul-lib-instrument@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630" + integrity sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA== dependencies: "@babel/generator" "^7.4.0" "@babel/parser" "^7.4.3" @@ -3534,6 +3428,7 @@ istanbul-lib-instrument@^3.3.0: istanbul-lib-report@^2.0.8: version "2.0.8" resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz#5a8113cd746d43c4889eba36ab10e7d50c9b4f33" + integrity sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ== dependencies: istanbul-lib-coverage "^2.0.5" make-dir "^2.1.0" @@ -3542,6 +3437,7 @@ istanbul-lib-report@^2.0.8: istanbul-lib-source-maps@^3.0.6: version "3.0.6" resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8" + integrity sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw== dependencies: debug "^4.1.1" istanbul-lib-coverage "^2.0.5" @@ -3552,32 +3448,39 @@ istanbul-lib-source-maps@^3.0.6: istanbul-reports@^2.2.4: version "2.2.6" resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.6.tgz#7b4f2660d82b29303a8fe6091f8ca4bf058da1af" + integrity sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA== dependencies: handlebars "^4.1.2" java-properties@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/java-properties/-/java-properties-1.0.1.tgz#ea0b5986c0894d73cf2a44de8bd216c459a07a94" + version "1.0.2" + resolved "https://registry.yarnpkg.com/java-properties/-/java-properties-1.0.2.tgz#ccd1fa73907438a5b5c38982269d0e771fe78211" + integrity sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ== jest-docblock@^21.0.0: version "21.2.0" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-21.2.0.tgz#51529c3b30d5fd159da60c27ceedc195faf8d414" + integrity sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw== js-sha256@^0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/js-sha256/-/js-sha256-0.9.0.tgz#0b89ac166583e91ef9123644bd3c5334ce9d0966" + integrity sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= -js-yaml@^3.11.0, js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.9.1: +js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.9.1: version "3.13.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== dependencies: argparse "^1.0.7" esprima "^4.0.0" @@ -3585,58 +3488,59 @@ js-yaml@^3.11.0, js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.9.1: jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== json-parse-better-errors@^1.0.0, json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== json-schema-traverse@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A= json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - -json-stable-stringify@~0.0.0: - version "0.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz#611c23e814db375527df851193db59dd2af27f45" - dependencies: - jsonify "~0.0.0" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= optionalDependencies: graceful-fs "^4.1.6" -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - jsonparse@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= jsprim@^1.2.2: version "1.4.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= dependencies: assert-plus "1.0.0" extsprintf "1.3.0" @@ -3644,87 +3548,64 @@ jsprim@^1.2.2: verror "1.10.0" jsx-ast-utils@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.1.0.tgz#0ee4e2c971fb9601c67b5641b71be80faecf0b36" + version "2.2.1" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.2.1.tgz#4d4973ebf8b9d2837ee91a8208cc66f3a2776cfb" + integrity sha512-v3FxCcAf20DayI+uxnCuw795+oOIkVu6EnJ1+kSzhqqTZHNkTZ7B66ZgLp4oLJ/gbA64cI0B7WRoHZMSRdyVRQ== dependencies: array-includes "^3.0.3" + object.assign "^4.1.0" just-extend@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.0.2.tgz#f3f47f7dfca0f989c55410a7ebc8854b07108afc" + integrity sha512-FrLwOgm+iXrPV+5zDU6Jqu4gCRXbWEQg2O3SKONsWE4w7AXFRkryS53bpWdaL9cNol+AmR3AEYz6kn+o0fCPnw== keccak@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/keccak/-/keccak-1.4.0.tgz#572f8a6dbee8e7b3aa421550f9e6408ca2186f80" + integrity sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw== dependencies: bindings "^1.2.1" inherits "^2.0.3" nan "^2.2.1" safe-buffer "^5.1.0" -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" - -labeled-stream-splicer@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz#42a41a16abcd46fd046306cf4f2c3576fffb1c21" - dependencies: - inherits "^2.0.1" - stream-splicer "^2.0.0" - latest-version@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" + integrity sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU= dependencies: package-json "^4.0.0" lazy-property@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lazy-property/-/lazy-property-1.0.0.tgz#84ddc4b370679ba8bd4cdcfa4c06b43d57111147" + integrity sha1-hN3Es3Bnm6i9TNz6TAa0PVcREUc= lcid@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= dependencies: invert-kv "^1.0.0" -lcid@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" - dependencies: - invert-kv "^2.0.0" - lcov-parse@^0.0.10: version "0.0.10" resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-0.0.10.tgz#1b0b8ff9ac9c7889250582b70b71315d9da6d9a3" + integrity sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM= levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= dependencies: prelude-ls "~1.1.2" type-check "~0.3.2" -libcipm@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/libcipm/-/libcipm-3.0.3.tgz#2e764effe0b90d458790dab3165794c804075ed3" +libcipm@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/libcipm/-/libcipm-4.0.3.tgz#6a6db4a6e040e56f4af18bb1d664e05e8eb23a39" + integrity sha512-nuIxNtqA+kIkwUiNM/nZ0yPyR7NkSUov6g6mCfFPkYylO1dEovZBL+NZ3axdouS2UOTa8GdnJ7/meSc1/0AIGw== dependencies: bin-links "^1.1.2" bluebird "^3.5.1" @@ -3734,7 +3615,7 @@ libcipm@^3.0.3: ini "^1.3.5" lock-verify "^2.0.2" mkdirp "^0.5.1" - npm-lifecycle "^2.0.3" + npm-lifecycle "^3.0.0" npm-logical-tree "^1.2.1" npm-package-arg "^6.1.0" pacote "^9.1.0" @@ -3742,69 +3623,75 @@ libcipm@^3.0.3: rimraf "^2.6.2" worker-farm "^1.6.0" -libnpm@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/libnpm/-/libnpm-2.0.1.tgz#a48fcdee3c25e13c77eb7c60a0efe561d7fb0d8f" +libnpm@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/libnpm/-/libnpm-3.0.1.tgz#0be11b4c9dd4d1ffd7d95c786e92e55d65be77a2" + integrity sha512-d7jU5ZcMiTfBqTUJVZ3xid44fE5ERBm9vBnmhp2ECD2Ls+FNXWxHSkO7gtvrnbLO78gwPdNPz1HpsF3W4rjkBQ== dependencies: bin-links "^1.1.2" bluebird "^3.5.3" find-npm-prefix "^1.0.2" - libnpmaccess "^3.0.1" + libnpmaccess "^3.0.2" libnpmconfig "^1.2.1" - libnpmhook "^5.0.2" - libnpmorg "^1.0.0" - libnpmpublish "^1.1.0" - libnpmsearch "^2.0.0" - libnpmteam "^1.0.1" + libnpmhook "^5.0.3" + libnpmorg "^1.0.1" + libnpmpublish "^1.1.2" + libnpmsearch "^2.0.2" + libnpmteam "^1.0.2" lock-verify "^2.0.2" - npm-lifecycle "^2.1.0" + npm-lifecycle "^3.0.0" npm-logical-tree "^1.2.1" npm-package-arg "^6.1.0" - npm-profile "^4.0.1" - npm-registry-fetch "^3.8.0" + npm-profile "^4.0.2" + npm-registry-fetch "^4.0.0" npmlog "^4.1.2" - pacote "^9.2.3" + pacote "^9.5.3" read-package-json "^2.0.13" stringify-package "^1.0.0" -libnpmaccess@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-3.0.1.tgz#5b3a9de621f293d425191aa2e779102f84167fa8" +libnpmaccess@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-3.0.2.tgz#8b2d72345ba3bef90d3b4f694edd5c0417f58923" + integrity sha512-01512AK7MqByrI2mfC7h5j8N9V4I7MHJuk9buo8Gv+5QgThpOgpjB7sQBDDkeZqRteFb1QM/6YNdHfG7cDvfAQ== dependencies: aproba "^2.0.0" get-stream "^4.0.0" npm-package-arg "^6.1.0" - npm-registry-fetch "^3.8.0" + npm-registry-fetch "^4.0.0" libnpmconfig@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/libnpmconfig/-/libnpmconfig-1.2.1.tgz#c0c2f793a74e67d4825e5039e7a02a0044dfcbc0" + integrity sha512-9esX8rTQAHqarx6qeZqmGQKBNZR5OIbl/Ayr0qQDy3oXja2iFVQQI81R6GZ2a02bSNZ9p3YOGX1O6HHCb1X7kA== dependencies: figgy-pudding "^3.5.1" find-up "^3.0.0" ini "^1.3.5" -libnpmhook@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-5.0.2.tgz#d12817b0fb893f36f1d5be20017f2aea25825d94" +libnpmhook@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-5.0.3.tgz#4020c0f5edbf08ebe395325caa5ea01885b928f7" + integrity sha512-UdNLMuefVZra/wbnBXECZPefHMGsVDTq5zaM/LgKNE9Keyl5YXQTnGAzEo+nFOpdRqTWI9LYi4ApqF9uVCCtuA== dependencies: aproba "^2.0.0" figgy-pudding "^3.4.1" get-stream "^4.0.0" - npm-registry-fetch "^3.8.0" + npm-registry-fetch "^4.0.0" -libnpmorg@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-1.0.0.tgz#979b868c48ba28c5820e3bb9d9e73c883c16a232" +libnpmorg@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-1.0.1.tgz#5d2503f6ceb57f33dbdcc718e6698fea6d5ad087" + integrity sha512-0sRUXLh+PLBgZmARvthhYXQAWn0fOsa6T5l3JSe2n9vKG/lCVK4nuG7pDsa7uMq+uTt2epdPK+a2g6btcY11Ww== dependencies: aproba "^2.0.0" figgy-pudding "^3.4.1" get-stream "^4.0.0" - npm-registry-fetch "^3.8.0" + npm-registry-fetch "^4.0.0" -libnpmpublish@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-1.1.1.tgz#ff0c6bb0b4ad2bda2ad1f5fba6760a4af37125f0" +libnpmpublish@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-1.1.2.tgz#4201cfc4a69c44e6f454ec548fa1cd90f10df0a0" + integrity sha512-2yIwaXrhTTcF7bkJKIKmaCV9wZOALf/gsTDxVSu/Gu/6wiG3fA8ce8YKstiWKTxSFNC0R7isPUb6tXTVFZHt2g== dependencies: aproba "^2.0.0" figgy-pudding "^3.5.1" @@ -3812,30 +3699,33 @@ libnpmpublish@^1.1.0: lodash.clonedeep "^4.5.0" normalize-package-data "^2.4.0" npm-package-arg "^6.1.0" - npm-registry-fetch "^3.8.0" + npm-registry-fetch "^4.0.0" semver "^5.5.1" ssri "^6.0.1" -libnpmsearch@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-2.0.1.tgz#eccc73a8fbf267d765d18082b85daa2512501f96" +libnpmsearch@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-2.0.2.tgz#9a4f059102d38e3dd44085bdbfe5095f2a5044cf" + integrity sha512-VTBbV55Q6fRzTdzziYCr64+f8AopQ1YZ+BdPOv16UegIEaE8C0Kch01wo4s3kRTFV64P121WZJwgmBwrq68zYg== dependencies: figgy-pudding "^3.5.1" get-stream "^4.0.0" - npm-registry-fetch "^3.8.0" + npm-registry-fetch "^4.0.0" -libnpmteam@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-1.0.1.tgz#ff704b1b6c06ea674b3b1101ac3e305f5114f213" +libnpmteam@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-1.0.2.tgz#8b48bcbb6ce70dd8150c950fcbdbf3feb6eec820" + integrity sha512-p420vM28Us04NAcg1rzgGW63LMM6rwe+6rtZpfDxCcXxM0zUTLl7nPFEnRF3JfFBF5skF/yuZDUthTsHgde8QA== dependencies: aproba "^2.0.0" figgy-pudding "^3.4.1" get-stream "^4.0.0" - npm-registry-fetch "^3.8.0" + npm-registry-fetch "^4.0.0" libnpx@^10.2.0: version "10.2.0" resolved "https://registry.yarnpkg.com/libnpx/-/libnpx-10.2.0.tgz#1bf4a1c9f36081f64935eb014041da10855e3102" + integrity sha512-X28coei8/XRCt15cYStbLBph+KGhFra4VQhRBPuH/HHMkC5dxM8v24RVgUsvODKCrUZ0eTgiTqJp6zbl0sskQQ== dependencies: dotenv "^5.0.1" npm-package-arg "^6.0.0" @@ -3846,9 +3736,15 @@ libnpx@^10.2.0: y18n "^4.0.0" yargs "^11.0.0" +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + load-json-file@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= dependencies: graceful-fs "^4.1.2" parse-json "^2.2.0" @@ -3858,6 +3754,7 @@ load-json-file@^2.0.0: load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= dependencies: graceful-fs "^4.1.2" parse-json "^4.0.0" @@ -3867,6 +3764,7 @@ load-json-file@^4.0.0: locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= dependencies: p-locate "^2.0.0" path-exists "^3.0.0" @@ -3874,6 +3772,7 @@ locate-path@^2.0.0: locate-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== dependencies: p-locate "^3.0.0" path-exists "^3.0.0" @@ -3881,12 +3780,14 @@ locate-path@^3.0.0: locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== dependencies: p-locate "^4.1.0" lock-verify@^2.0.2, lock-verify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/lock-verify/-/lock-verify-2.1.0.tgz#fff4c918b8db9497af0c5fa7f6d71555de3ceb47" + integrity sha512-vcLpxnGvrqisKvLQ2C2v0/u7LVly17ak2YSgoK4PrdsYBXQIax19vhKiLfvKNFx7FRrpTnitrpzF/uuCMuorIg== dependencies: npm-package-arg "^6.1.0" semver "^5.4.1" @@ -3894,12 +3795,14 @@ lock-verify@^2.0.2, lock-verify@^2.1.0: lockfile@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.4.tgz#07f819d25ae48f87e538e6578b6964a4981a5609" + integrity sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA== dependencies: signal-exit "^3.0.2" lodash._baseuniq@~4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8" + integrity sha1-DrtE5FaBSveQXGIS+iybLVG4Qeg= dependencies: lodash._createset "~4.0.0" lodash._root "~3.0.0" @@ -3907,92 +3810,114 @@ lodash._baseuniq@~4.6.0: lodash._createset@~4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" + integrity sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY= lodash._root@~3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" + integrity sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI= lodash.capitalize@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz#f826c9b4e2a8511d84e3aca29db05e1a4f3b72a9" + integrity sha1-+CbJtOKoUR2E46yinbBeGk87cqk= lodash.clonedeep@^4.5.0, lodash.clonedeep@~4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= lodash.escaperegexp@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347" + integrity sha1-ZHYsSGGAglGKw99Mz11YhtriA0c= lodash.flattendeep@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" + integrity sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI= lodash.get@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= + +lodash.ismatch@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" + integrity sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc= lodash.isplainobject@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= lodash.isstring@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" - -lodash.memoize@~3.0.3: - version "3.0.4" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" + integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= lodash.set@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" + integrity sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM= lodash.toarray@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" + integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE= lodash.union@~4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" + integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg= lodash.uniq@^4.5.0, lodash.uniq@~4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= lodash.uniqby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302" + integrity sha1-2ZwHpmnp5tJOE2Lf4mbGdhavEwI= lodash.without@~4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" + integrity sha1-PNRXSgC2e643OpS3SHcmQFB7eqw= -lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0: - version "4.17.11" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" +lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0: + version "4.17.15" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== log-driver@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.7.tgz#63b95021f0702fedfa2c9bb0a24e7797d71871d8" + integrity sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg== lolex@^2.2.0: version "2.7.5" resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.7.5.tgz#113001d56bfc7e02d56e36291cc5c413d1aa0733" + integrity sha512-l9x0+1offnKKIzYVjyXU2SiwhXDLekRzKyhnbyldPHvC7BvLPVpdNUNR2KeMAiCN2D/kLNttZgQD5WjSxuBx3Q== lolex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/lolex/-/lolex-4.1.0.tgz#ecdd7b86539391d8237947a3419aa8ac975f0fe1" + version "4.2.0" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-4.2.0.tgz#ddbd7f6213ca1ea5826901ab1222b65d714b3cd7" + integrity sha512-gKO5uExCXvSm6zbF562EvM+rd1kQDnB9AZBbiQVzf1ZmdDpxUSvpnAaVOP83N/31mRK8Ml8/VE8DMvsAZQ+7wg== loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: js-tokens "^3.0.0 || ^4.0.0" loud-rejection@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= dependencies: currently-unhandled "^0.4.1" signal-exit "^3.0.0" @@ -4000,10 +3925,12 @@ loud-rejection@^1.0.0: lowercase-keys@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== -lru-cache@^4.0.1, lru-cache@^4.1.2, lru-cache@^4.1.3, lru-cache@^4.1.5: +lru-cache@^4.0.1: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== dependencies: pseudomap "^1.0.2" yallist "^2.1.2" @@ -4011,22 +3938,26 @@ lru-cache@^4.0.1, lru-cache@^4.1.2, lru-cache@^4.1.3, lru-cache@^4.1.5: lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: yallist "^3.0.2" macos-release@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.3.0.tgz#eb1930b036c0800adebccd5f17bc4c12de8bb71f" + integrity sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA== make-dir@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== dependencies: pify "^3.0.0" make-dir@^2.0.0, make-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== dependencies: pify "^4.0.1" semver "^5.6.0" @@ -4034,50 +3965,39 @@ make-dir@^2.0.0, make-dir@^2.1.0: make-error@^1.1.1: version "1.3.5" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" + integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g== -make-fetch-happen@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz#141497cb878f243ba93136c83d8aba12c216c083" +make-fetch-happen@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-5.0.0.tgz#a8e3fe41d3415dd656fe7b8e8172e1fb4458b38d" + integrity sha512-nFr/vpL1Jc60etMVKeaLOqfGjMMb3tAHFVJWxHOFCFS04Zmd7kGlMxo0l1tzfhoQje0/UPnd0X8OeGUiXXnfPA== dependencies: agentkeepalive "^3.4.1" - cacache "^11.0.1" + cacache "^12.0.0" http-cache-semantics "^3.8.1" http-proxy-agent "^2.1.0" https-proxy-agent "^2.2.1" - lru-cache "^4.1.2" + lru-cache "^5.1.1" mississippi "^3.0.0" node-fetch-npm "^2.0.2" promise-retry "^1.1.1" socks-proxy-agent "^4.0.0" ssri "^6.0.0" -map-age-cleaner@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - dependencies: - p-defer "^1.0.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - map-obj@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= map-obj@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - dependencies: - object-visit "^1.0.0" + integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk= marked-terminal@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/marked-terminal/-/marked-terminal-3.2.0.tgz#3fc91d54569332bcf096292af178d82219000474" + version "3.3.0" + resolved "https://registry.yarnpkg.com/marked-terminal/-/marked-terminal-3.3.0.tgz#25ce0c0299285998c7636beaefc87055341ba1bd" + integrity sha512-+IUQJ5VlZoAFsM5MHNT7g3RHSkA3eETqhRCdXv4niUMAKHQ7lb1yvAcuGPmm4soxhmtX13u4Li6ZToXtvSEH+A== dependencies: ansi-escapes "^3.1.0" cardinal "^2.1.1" @@ -4086,13 +4006,15 @@ marked-terminal@^3.2.0: node-emoji "^1.4.1" supports-hyperlinks "^1.0.1" -marked@^0.6.0: - version "0.6.2" - resolved "https://registry.yarnpkg.com/marked/-/marked-0.6.2.tgz#c574be8b545a8b48641456ca1dbe0e37b6dccc1a" +marked@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.7.0.tgz#b64201f051d271b1edc10a04d1ae9b74bb8e5c0e" + integrity sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg== md5.js@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== dependencies: hash-base "^3.0.0" inherits "^2.0.1" @@ -4101,28 +4023,24 @@ md5.js@^1.3.4: meant@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/meant/-/meant-1.0.1.tgz#66044fea2f23230ec806fb515efea29c44d2115d" + integrity sha512-UakVLFjKkbbUwNWJ2frVLnnAtbb7D7DsloxRd3s/gDpI8rdv8W5Hp3NaDb+POBI1fQdeussER6NB8vpcRURvlg== media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= mem@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y= dependencies: mimic-fn "^1.0.0" -mem@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" - dependencies: - map-age-cleaner "^0.1.1" - mimic-fn "^2.0.0" - p-is-promise "^2.0.0" - meow@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/meow/-/meow-4.0.1.tgz#d48598f6f4b1472f35bf6317a95945ace347f975" + integrity sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A== dependencies: camelcase-keys "^4.0.0" decamelize-keys "^1.0.0" @@ -4137,93 +4055,91 @@ meow@^4.0.0: merge-descriptors@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= merge-source-map@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" + integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== dependencies: source-map "^0.6.1" merge2@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.3.tgz#7ee99dbd69bb6481689253f018488a1b902b0ed5" + version "1.2.4" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.4.tgz#c9269589e6885a60cf80605d9522d4b67ca646e3" + integrity sha512-FYE8xI+6pjFOhokZu0We3S5NKCirLbCzSh2Usf3qEyr4X8U+0jNg9P8RZ4qz+V2UoECLVwSyzU3LxXBaLGtD3A== merkle-lib@^2.0.10: version "2.0.10" resolved "https://registry.yarnpkg.com/merkle-lib/-/merkle-lib-2.0.10.tgz#82b8dbae75e27a7785388b73f9d7725d0f6f3326" + integrity sha1-grjbrnXieneFOItz+ddyXQ9vMyY= methods@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= -micromatch@^3.1.10: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" +micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" + braces "^3.0.1" + picomatch "^2.0.5" mime-db@1.40.0: version "1.40.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" + integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: version "2.1.24" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" + integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== dependencies: mime-db "1.40.0" mime@^1.3.4: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== mime@^2.4.3: version "2.4.4" resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" + integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== -mimic-fn@^2.0.0: +mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" minimist-options@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" + integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ== dependencies: arrify "^1.0.1" is-plain-obj "^1.1.0" @@ -4231,18 +4147,22 @@ minimist-options@^3.0.1: minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= -minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@~1.2.0: +minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0, minimist@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= minimist@~0.0.1: version "0.0.10" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= minipass@^2.2.1, minipass@^2.3.5: version "2.3.5" resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" + integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA== dependencies: safe-buffer "^5.1.2" yallist "^3.0.0" @@ -4250,12 +4170,14 @@ minipass@^2.2.1, minipass@^2.3.5: minizlib@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" + integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA== dependencies: minipass "^2.2.1" mississippi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== dependencies: concat-stream "^1.5.0" duplexify "^3.4.2" @@ -4268,22 +4190,17 @@ mississippi@^3.0.0: stream-each "^1.1.0" through2 "^2.0.0" -mixin-deep@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: +mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= dependencies: minimist "0.0.8" mocha@^5.0.1: version "5.2.0" resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz#6d8ae508f59167f940f2b5b3c4a612ae50c90ae6" + integrity sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ== dependencies: browser-stdout "1.3.1" commander "2.15.1" @@ -4300,30 +4217,12 @@ mocha@^5.0.1: modify-values@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" - -module-deps@^6.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.2.1.tgz#cfe558784060e926824f474b4e647287837cda50" - dependencies: - JSONStream "^1.0.3" - browser-resolve "^1.7.0" - cached-path-relative "^1.0.2" - concat-stream "~1.6.0" - defined "^1.0.0" - detective "^5.0.2" - duplexer2 "^0.1.2" - inherits "^2.0.1" - parents "^1.0.0" - readable-stream "^2.0.2" - resolve "^1.4.0" - stream-combiner2 "^1.1.1" - subarg "^1.0.0" - through2 "^2.0.0" - xtend "^4.0.0" + integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= dependencies: aproba "^1.1.1" copy-concurrently "^1.0.0" @@ -4335,68 +4234,64 @@ move-concurrently@^1.0.1: ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= ms@^2.0.0, ms@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== mute-stream@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= -mute-stream@~0.0.4: +mute-stream@0.0.8, mute-stream@~0.0.4: version "0.0.8" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== nan@^2.14.0, nan@^2.2.1: version "2.14.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" + integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= negotiator@0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== neo-async@^2.6.0: version "2.6.1" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" + integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== nerf-dart@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/nerf-dart/-/nerf-dart-1.0.0.tgz#e6dab7febf5ad816ea81cf5c629c5a0ebde72c1a" + integrity sha1-5tq3/r9a2Bbqgc9cYpxaDr3nLBo= nested-error-stacks@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz#0fbdcf3e13fe4994781280524f8b96b0cdff9c61" + integrity sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug== nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== nise@^1.2.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/nise/-/nise-1.5.0.tgz#d03ea0e6c1b75c638015aa3585eddc132949a50d" + version "1.5.1" + resolved "https://registry.yarnpkg.com/nise/-/nise-1.5.1.tgz#de61d99a1d3b46b5233be4531569b9a8e27372b2" + integrity sha512-edFWm0fsFG2n318rfEnKlTZTkjlbVOFF9XIA+fj+Ed+Qz1laYW2lobwavWoMzGrYDHH1EpiNJgDfvGnkZztR/g== dependencies: - "@sinonjs/formatio" "^3.1.0" + "@sinonjs/formatio" "^3.2.1" "@sinonjs/text-encoding" "^0.7.1" just-extend "^4.0.2" lolex "^4.1.0" @@ -4405,6 +4300,7 @@ nise@^1.2.0: nock@^10.0.6: version "10.0.6" resolved "https://registry.yarnpkg.com/nock/-/nock-10.0.6.tgz#e6d90ee7a68b8cfc2ab7f6127e7d99aa7d13d111" + integrity sha512-b47OWj1qf/LqSQYnmokNWM8D88KvUl2y7jT0567NB3ZBAZFz2bWp2PC81Xn7u8F2/vJxzkzNZybnemeFa7AZ2w== dependencies: chai "^4.1.2" debug "^4.1.0" @@ -4419,12 +4315,14 @@ nock@^10.0.6: node-emoji@^1.4.1: version "1.10.0" resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da" + integrity sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw== dependencies: lodash.toarray "^4.4.0" node-fetch-npm@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz#7258c9046182dca345b4208eda918daf33697ff7" + integrity sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw== dependencies: encoding "^0.1.11" json-parse-better-errors "^1.0.0" @@ -4433,34 +4331,19 @@ node-fetch-npm@^2.0.2: node-fetch@^2.3.0: version "2.6.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" + integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== -node-gyp@^3.8.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" - dependencies: - fstream "^1.0.0" - glob "^7.0.3" - graceful-fs "^4.1.2" - mkdirp "^0.5.0" - nopt "2 || 3" - npmlog "0 || 1 || 2 || 3 || 4" - osenv "0" - request "^2.87.0" - rimraf "2" - semver "~5.3.0" - tar "^2.0.0" - which "1" - -node-gyp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-4.0.0.tgz#972654af4e5dd0cd2a19081b4b46fe0442ba6f45" +node-gyp@^5.0.2, node-gyp@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.0.3.tgz#80d64c23790244991b6d44532f0a351bedd3dd45" + integrity sha512-z/JdtkFGUm0QaQUusvloyYuGDub3nUbOo5de1Fz57cM++osBTvQatBUSTlF1k/w8vFHPxxXW6zxGvkxXSpaBkQ== dependencies: + env-paths "^1.0.0" glob "^7.0.3" graceful-fs "^4.1.2" mkdirp "^0.5.0" nopt "2 || 3" npmlog "0 || 1 || 2 || 3 || 4" - osenv "0" request "^2.87.0" rimraf "2" semver "~5.3.0" @@ -4470,6 +4353,7 @@ node-gyp@^4.0.0: node-mocks-http@^1.7.0: version "1.7.6" resolved "https://registry.yarnpkg.com/node-mocks-http/-/node-mocks-http-1.7.6.tgz#b5c978d73165179a218bc9d4e3bbe73fa8bedd89" + integrity sha512-ZWbZ5HEEAoVZbAYM8KHezx0v66Te3klg/yhAmdJJ0ULWQAkSqPStEzqSjONj4zRZOrTWqsHnI6nHeJxw46gj6Q== dependencies: accepts "^1.3.7" depd "^1.1.0" @@ -4484,12 +4368,14 @@ node-mocks-http@^1.7.0: "nopt@2 || 3": version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= dependencies: abbrev "1" nopt@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= dependencies: abbrev "1" osenv "^0.1.4" @@ -4497,6 +4383,7 @@ nopt@~4.0.1: normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.4.0, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== dependencies: hosted-git-info "^2.1.4" resolve "^1.10.0" @@ -4506,10 +4393,12 @@ normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package- normalize-url@^4.0.0: version "4.3.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.3.0.tgz#9c49e10fc1876aeb76dba88bf1b2b5d9fa57b2ee" + integrity sha512-0NLtR71o4k6GLP+mr6Ty34c5GA6CMoEsncKJxvQd8NzPxaHRJNnb5gZE8R1XF4CPIS7QPHLJ74IFszwtNVAHVQ== npm-audit-report@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-1.3.2.tgz#303bc78cd9e4c226415076a4f7e528c89fc77018" + integrity sha512-abeqS5ONyXNaZJPGAf6TOUMNdSe1Y6cpc9MLBRn+CuUoYbfdca6AxOyXVlfIv9OgKX+cacblbG5w7A6ccwoTPw== dependencies: cli-table3 "^0.5.0" console-control-strings "^1.1.0" @@ -4517,24 +4406,28 @@ npm-audit-report@^1.3.2: npm-bundled@^1.0.1: version "1.0.6" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" + integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== npm-cache-filename@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/npm-cache-filename/-/npm-cache-filename-1.0.2.tgz#ded306c5b0bfc870a9e9faf823bc5f283e05ae11" + integrity sha1-3tMGxbC/yHCp6fr4I7xfKD4FrhE= npm-install-checks@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-3.0.0.tgz#d4aecdfd51a53e3723b7b2f93b2ee28e307bc0d7" + integrity sha1-1K7N/VGlPjcjt7L5Oy7ijjB7wNc= dependencies: semver "^2.3.0 || 3.x || 4 || 5" -npm-lifecycle@^2.0.3, npm-lifecycle@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-2.1.1.tgz#0027c09646f0fd346c5c93377bdaba59c6748fdf" +npm-lifecycle@^3.0.0, npm-lifecycle@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-3.1.3.tgz#09e9b0b6686e85fd53bab82364386222d97a3730" + integrity sha512-M0QmmqbEHBXxDrmc6X3+eKjW9+F7Edg1ENau92WkYw1sox6wojHzEZJIRm1ItljEiaigZlKL8mXni/4ylAy1Dg== dependencies: byline "^5.0.0" graceful-fs "^4.1.15" - node-gyp "^4.0.0" + node-gyp "^5.0.2" resolve-from "^4.0.0" slide "^1.1.6" uid-number "0.0.6" @@ -4544,63 +4437,72 @@ npm-lifecycle@^2.0.3, npm-lifecycle@^2.1.0: npm-logical-tree@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/npm-logical-tree/-/npm-logical-tree-1.2.1.tgz#44610141ca24664cad35d1e607176193fd8f5b88" + integrity sha512-AJI/qxDB2PWI4LG1CYN579AY1vCiNyWfkiquCsJWqntRu/WwimVrC8yXeILBFHDwxfOejxewlmnvW9XXjMlYIg== "npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0", npm-package-arg@^6.0.0, npm-package-arg@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.0.tgz#15ae1e2758a5027efb4c250554b85a737db7fcc1" + integrity sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA== dependencies: hosted-git-info "^2.6.0" osenv "^0.1.5" semver "^5.5.0" validate-npm-package-name "^3.0.0" -npm-packlist@^1.1.12, npm-packlist@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.1.tgz#19064cdf988da80ea3cee45533879d90192bbfbc" +npm-packlist@^1.1.12, npm-packlist@^1.4.4: + version "1.4.4" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.4.tgz#866224233850ac534b63d1a6e76050092b5d2f44" + integrity sha512-zTLo8UcVYtDU3gdeaFu2Xu0n0EvelfHDGuqtNIn5RO7yQj4H1TqNdBc/yZjxnWA0PVB8D3Woyp0i5B43JwQ6Vw== dependencies: ignore-walk "^3.0.1" npm-bundled "^1.0.1" -npm-pick-manifest@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-2.2.3.tgz#32111d2a9562638bb2c8f2bf27f7f3092c8fae40" +npm-pick-manifest@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-3.0.0.tgz#c94cab52d201a85875e45198fffe1a8a348e7af7" + integrity sha512-H+OnFudiq38Qj8P8xcesD/1Xa0Kvr2QRn1DTlephIwNfJg3P30Szc1wtpGEgdPXfAyKZKT2ajIM2X8YtCrbXrA== dependencies: figgy-pudding "^3.5.1" npm-package-arg "^6.0.0" semver "^5.4.1" -npm-profile@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-4.0.1.tgz#d350f7a5e6b60691c7168fbb8392c3603583f5aa" +npm-profile@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-4.0.2.tgz#8272a71c19634d0dce9c35a5daf8ee589cbb0f52" + integrity sha512-VRsC04pvRH+9cF+PoVh2nTmJjiG21yu59IHpsBpkxk+jaGAV8lxx96G4SDc0jOHAkfWLXbc6kIph3dGAuRnotQ== dependencies: aproba "^1.1.2 || 2" figgy-pudding "^3.4.1" - npm-registry-fetch "^3.8.0" + npm-registry-fetch "^4.0.0" -npm-registry-fetch@^3.8.0, npm-registry-fetch@^3.9.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-3.9.0.tgz#44d841780e2833f06accb34488f8c7450d1a6856" +npm-registry-fetch@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-4.0.0.tgz#5ef75845b605855c7964472542c25da172af8677" + integrity sha512-Jllq35Jag8dtv0M17ue74XtdQTyqKzuAYGiX9mAjOhkmNjib3bBUgK6mUY61+AHnXeSRobQkpY3/xIOS/omptw== dependencies: JSONStream "^1.3.4" bluebird "^3.5.1" figgy-pudding "^3.4.1" - lru-cache "^4.1.3" - make-fetch-happen "^4.0.1" + lru-cache "^5.1.1" + make-fetch-happen "^5.0.0" npm-package-arg "^6.1.0" npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= dependencies: path-key "^2.0.0" npm-user-validate@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-1.0.0.tgz#8ceca0f5cea04d4e93519ef72d0557a75122e951" + integrity sha1-jOyg9c6gTU6TUZ73LQVXp1Ei6VE= npm@^6.8.0: - version "6.9.0" - resolved "https://registry.yarnpkg.com/npm/-/npm-6.9.0.tgz#5296720486814a64a7fb082de00c4b5cfd11211f" + version "6.11.0" + resolved "https://registry.yarnpkg.com/npm/-/npm-6.11.0.tgz#98ba76e015e9ee0910e440231a7398b15a175a9f" + integrity sha512-xiA97uU+ry33XniwnMtfU89UUrJMerLYCNAOMa0qcqCF9fp79FPGnAcZ2P1YXVYvNdzU9JJt094cFbP/T5ph2A== dependencies: JSONStream "^1.3.5" abbrev "~1.1.1" @@ -4608,16 +4510,16 @@ npm@^6.8.0: ansistyles "~0.1.3" aproba "^2.0.0" archy "~1.0.0" - bin-links "^1.1.2" - bluebird "^3.5.3" + bin-links "^1.1.3" + bluebird "^3.5.5" byte-size "^5.0.1" - cacache "^11.3.2" - call-limit "~1.1.0" - chownr "^1.1.1" + cacache "^12.0.3" + call-limit "^1.1.1" + chownr "^1.1.2" ci-info "^2.0.0" cli-columns "^3.1.2" cli-table3 "^0.5.1" - cmd-shim "~2.0.2" + cmd-shim "^3.0.0" columnify "~1.5.4" config-chain "^1.1.12" detect-indent "~5.0.0" @@ -4628,22 +4530,27 @@ npm@^6.8.0: find-npm-prefix "^1.0.2" fs-vacuum "~1.2.10" fs-write-stream-atomic "~1.0.10" - gentle-fs "^2.0.1" - glob "^7.1.3" - graceful-fs "^4.1.15" + gentle-fs "^2.2.1" + glob "^7.1.4" + graceful-fs "^4.2.2" has-unicode "~2.0.1" - hosted-git-info "^2.7.1" + hosted-git-info "^2.8.2" iferr "^1.0.2" + infer-owner "^1.0.4" inflight "~1.0.6" - inherits "~2.0.3" + inherits "^2.0.4" ini "^1.3.5" init-package-json "^1.10.3" is-cidr "^3.0.0" json-parse-better-errors "^1.0.2" lazy-property "~1.0.0" - libcipm "^3.0.3" - libnpm "^2.0.1" - libnpmhook "^5.0.2" + libcipm "^4.0.3" + libnpm "^3.0.1" + libnpmaccess "^3.0.2" + libnpmhook "^5.0.3" + libnpmorg "^1.0.1" + libnpmsearch "^2.0.2" + libnpmteam "^1.0.2" libnpx "^10.2.0" lock-verify "^2.1.0" lockfile "^1.0.4" @@ -4652,51 +4559,53 @@ npm@^6.8.0: lodash.union "~4.6.0" lodash.uniq "~4.5.0" lodash.without "~4.4.0" - lru-cache "^4.1.5" + lru-cache "^5.1.1" meant "~1.0.1" mississippi "^3.0.0" mkdirp "~0.5.1" move-concurrently "^1.0.1" - node-gyp "^3.8.0" + node-gyp "^5.0.3" nopt "~4.0.1" normalize-package-data "^2.5.0" npm-audit-report "^1.3.2" npm-cache-filename "~1.0.2" npm-install-checks "~3.0.0" - npm-lifecycle "^2.1.0" + npm-lifecycle "^3.1.3" npm-package-arg "^6.1.0" - npm-packlist "^1.4.1" - npm-pick-manifest "^2.2.3" - npm-registry-fetch "^3.9.0" + npm-packlist "^1.4.4" + npm-pick-manifest "^3.0.0" + npm-profile "^4.0.2" + npm-registry-fetch "^4.0.0" npm-user-validate "~1.0.0" npmlog "~4.1.2" once "~1.4.0" opener "^1.5.1" osenv "^0.1.5" - pacote "^9.5.0" + pacote "^9.5.8" path-is-inside "~1.0.2" promise-inflight "~1.0.1" qrcode-terminal "^0.12.0" - query-string "^6.2.0" + query-string "^6.8.2" qw "~1.0.1" read "~1.0.7" - read-cmd-shim "~1.0.1" + read-cmd-shim "^1.0.3" read-installed "~4.0.3" - read-package-json "^2.0.13" - read-package-tree "^5.2.2" - readable-stream "^3.1.1" + read-package-json "^2.1.0" + read-package-tree "^5.3.1" + readable-stream "^3.4.0" + readdir-scoped-modules "^1.1.0" request "^2.88.0" retry "^0.12.0" rimraf "^2.6.3" safe-buffer "^5.1.2" - semver "^5.6.0" - sha "~2.0.1" + semver "^5.7.1" + sha "^3.0.0" slide "~1.1.6" sorted-object "~2.0.1" sorted-union-stream "~2.1.3" ssri "^6.0.1" stringify-package "^1.0.0" - tar "^4.4.8" + tar "^4.4.10" text-table "~0.2.0" tiny-relative-date "^1.3.0" uid-number "0.0.6" @@ -4708,12 +4617,13 @@ npm@^6.8.0: validate-npm-package-license "^3.0.4" validate-npm-package-name "~3.0.0" which "^1.3.1" - worker-farm "^1.6.0" - write-file-atomic "^2.4.2" + worker-farm "^1.7.0" + write-file-atomic "^2.4.3" "npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.1.2, npmlog@~4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== dependencies: are-we-there-yet "~1.1.2" console-control-strings "~1.1.0" @@ -4723,10 +4633,12 @@ npm@^6.8.0: number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= nyc@*, nyc@^14.1.1: version "14.1.1" resolved "https://registry.yarnpkg.com/nyc/-/nyc-14.1.1.tgz#151d64a6a9f9f5908a1b73233931e4a0a3075eeb" + integrity sha512-OI0vm6ZGUnoGZv/tLdZ2esSVzDwUC88SNs+6JoSOMVxA+gKMB8Tk7jBwgemLx4O40lhhvZCVw1C+OYLOBOPXWw== dependencies: archy "^1.0.0" caching-transform "^3.0.2" @@ -4757,66 +4669,81 @@ nyc@*, nyc@^14.1.1: oauth-sign@~0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= object-component@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" + integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= object-inspect@~1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" + integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ== -object-keys@^1.0.12: +object-keys@^1.0.11, object-keys@^1.0.12: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" +object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== dependencies: - isobject "^3.0.0" + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" +object.getownpropertydescriptors@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" + integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY= dependencies: - isobject "^3.0.1" + define-properties "^1.1.2" + es-abstract "^1.5.1" octokit-pagination-methods@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4" + integrity sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ== once@^1.3.0, once@^1.3.1, once@^1.4.0, once@~1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" onetime@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= dependencies: mimic-fn "^1.0.0" +onetime@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" + integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== + dependencies: + mimic-fn "^2.1.0" + opener@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed" + integrity sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA== optimist@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= dependencies: minimist "~0.0.1" wordwrap "~0.0.2" @@ -4824,6 +4751,7 @@ optimist@^0.6.1: optionator@^0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= dependencies: deep-is "~0.1.3" fast-levenshtein "~2.0.4" @@ -4839,33 +4767,24 @@ original@^1.0.0: dependencies: url-parse "^1.4.3" -os-browserify@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - os-homedir@^1.0.0, os-homedir@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= os-locale@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA== dependencies: execa "^0.7.0" lcid "^1.0.0" mem "^1.1.0" -os-locale@^3.0.0, os-locale@^3.1.0: +os-name@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" - dependencies: - execa "^1.0.0" - lcid "^2.0.0" - mem "^4.0.0" - -os-name@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801" + resolved "https://registry.yarnpkg.com/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801" + integrity sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg== dependencies: macos-release "^2.2.0" windows-release "^3.1.0" @@ -4873,73 +4792,82 @@ os-name@^3.0.0: os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= -osenv@0, osenv@^0.1.4, osenv@^0.1.5: +osenv@^0.1.4, osenv@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== dependencies: os-homedir "^1.0.0" os-tmpdir "^1.0.0" -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - p-filter@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-filter/-/p-filter-2.1.0.tgz#1b1472562ae7a0f742f0f3d3d3718ea66ff9c09c" + integrity sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw== dependencies: p-map "^2.0.0" p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= p-is-promise@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== dependencies: p-try "^1.0.0" p-limit@^2.0.0, p-limit@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" + version "2.2.1" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537" + integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg== dependencies: p-try "^2.0.0" p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= dependencies: p-limit "^1.1.0" p-locate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== dependencies: p-limit "^2.0.0" p-locate@^4.0.0, p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== dependencies: p-limit "^2.2.0" p-map@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== p-reduce@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-2.1.0.tgz#09408da49507c6c274faa31f28df334bc712b64a" + integrity sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw== p-retry@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.1.0.tgz#9ce7cef2069e84bf590df3b8ec18d740109338d6" + integrity sha512-oepllyG9gX1qH4Sm20YAKxg1GA7L7puhvGnTfimi31P07zSIj7SDV6YtuAx9nbJF51DES+2CIIRkXs8GKqWJxA== dependencies: "@types/retry" "^0.12.0" retry "^0.12.0" @@ -4947,14 +4875,17 @@ p-retry@^4.0.0: p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== package-hash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-3.0.0.tgz#50183f2d36c9e3e528ea0a8605dff57ce976f88e" + integrity sha512-lOtmukMDVvtkL84rJHI7dpTYq+0rli8N2wlnqUcBuDWCfVhRUfOmnR9SsoHFMLpACvEV60dX7rd0rFaYDZI+FA== dependencies: graceful-fs "^4.1.15" hasha "^3.0.0" @@ -4964,23 +4895,27 @@ package-hash@^3.0.0: package-json@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" + integrity sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0= dependencies: got "^6.7.1" registry-auth-token "^3.0.1" registry-url "^3.0.3" semver "^5.1.0" -pacote@^9.1.0, pacote@^9.2.3, pacote@^9.5.0: - version "9.5.1" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-9.5.1.tgz#adb0d23daeef6d0b813ab5891d0c6459ccec998d" +pacote@^9.1.0, pacote@^9.5.3, pacote@^9.5.8: + version "9.5.8" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-9.5.8.tgz#23480efdc4fa74515855c9ecf39cf64078f99786" + integrity sha512-0Tl8Oi/K0Lo4MZmH0/6IsT3gpGf9eEAznLXEQPKgPq7FscnbUOyopnVpwXlnQdIbCUaojWy1Wd7VMyqfVsRrIw== dependencies: bluebird "^3.5.3" - cacache "^11.3.2" + cacache "^12.0.2" + chownr "^1.1.2" figgy-pudding "^3.5.1" get-stream "^4.1.0" glob "^7.1.3" + infer-owner "^1.0.4" lru-cache "^5.1.1" - make-fetch-happen "^4.0.1" + make-fetch-happen "^5.0.0" minimatch "^3.0.4" minipass "^2.3.5" mississippi "^3.0.0" @@ -4988,8 +4923,8 @@ pacote@^9.1.0, pacote@^9.2.3, pacote@^9.5.0: normalize-package-data "^2.4.0" npm-package-arg "^6.1.0" npm-packlist "^1.1.12" - npm-pick-manifest "^2.2.3" - npm-registry-fetch "^3.8.0" + npm-pick-manifest "^3.0.0" + npm-registry-fetch "^4.0.0" osenv "^0.1.5" promise-inflight "^1.0.1" promise-retry "^1.1.1" @@ -4998,17 +4933,14 @@ pacote@^9.1.0, pacote@^9.2.3, pacote@^9.5.0: safe-buffer "^5.1.2" semver "^5.6.0" ssri "^6.0.1" - tar "^4.4.8" + tar "^4.4.10" unique-filename "^1.1.1" which "^1.3.1" -pako@~1.0.5: - version "1.0.10" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" - parallel-transform@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" + integrity sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY= dependencies: cyclist "~0.2.2" inherits "^2.0.3" @@ -5017,124 +4949,124 @@ parallel-transform@^1.1.0: parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" -parents@^1.0.0, parents@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751" - dependencies: - path-platform "~0.11.15" - -parse-asn1@^5.0.0: - version "5.1.4" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.4.tgz#37f6628f823fbdeb2273b4d540434a22f3ef1fcc" - dependencies: - asn1.js "^4.0.0" - browserify-aes "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - parse-github-url@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/parse-github-url/-/parse-github-url-1.0.2.tgz#242d3b65cbcdda14bb50439e3242acf6971db395" + integrity sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw== parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= dependencies: error-ex "^1.2.0" parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= dependencies: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" +parse-json@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f" + integrity sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + lines-and-columns "^1.1.6" + parseqs@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" + integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= dependencies: better-assert "~1.0.0" parseuri@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" + integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= dependencies: better-assert "~1.0.0" parseurl@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - -path-browserify@~0.0.0: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: +path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= path-is-inside@^1.0.1, path-is-inside@^1.0.2, path-is-inside@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= path-parse@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - -path-platform@~0.11.15: - version "0.11.15" - resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== path-to-regexp@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" + integrity sha1-Wf3g9DW62suhA6hOnTvGTpa5k30= dependencies: isarray "0.0.1" path-type@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= dependencies: pify "^2.0.0" path-type@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== dependencies: pify "^3.0.0" +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + pathval@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" + integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA= -pbkdf2@^3.0.3, pbkdf2@^3.0.9: +pbkdf2@^3.0.9: version "3.0.17" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" + integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" @@ -5145,22 +5077,32 @@ pbkdf2@^3.0.3, pbkdf2@^3.0.9: performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +picomatch@^2.0.5: + version "2.0.7" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz#514169d8c7cd0bdbeecc8a2609e34a7163de69f6" + integrity sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA== pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= pify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= pify@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== pkg-conf@^2.0.0, pkg-conf@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.1.0.tgz#2126514ca6f2abfebd168596df18ba57867f0058" + integrity sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg= dependencies: find-up "^2.0.0" load-json-file "^4.0.0" @@ -5168,6 +5110,7 @@ pkg-conf@^2.0.0, pkg-conf@^2.1.0: pkg-config@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/pkg-config/-/pkg-config-1.1.1.tgz#557ef22d73da3c8837107766c52eadabde298fe4" + integrity sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q= dependencies: debug-log "^1.0.0" find-root "^1.0.0" @@ -5176,58 +5119,56 @@ pkg-config@^1.1.0: pkg-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= dependencies: find-up "^2.1.0" pkg-dir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== dependencies: find-up "^3.0.0" pluralize@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" - -pngjs@^3.3.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow== prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= prepend-http@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= prettier@^1.14.2: version "1.18.2" resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz#6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea" + integrity sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw== process-nextick-args@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" - -process@~0.11.0: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== progress@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== promise-inflight@^1.0.1, promise-inflight@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= promise-retry@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-1.1.1.tgz#6739e968e3051da20ce6497fb2b50f6911df3d6d" + integrity sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0= dependencies: err-code "^1.0.0" retry "^0.10.0" @@ -5235,12 +5176,14 @@ promise-retry@^1.1.1: promzard@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" + integrity sha1-JqXW7ox97kyxIggwWs+5O6OCqe4= dependencies: read "1" prop-types@^15.6.0: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== dependencies: loose-envify "^1.4.0" object-assign "^4.1.1" @@ -5249,43 +5192,39 @@ prop-types@^15.6.0: propagate@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/propagate/-/propagate-1.0.0.tgz#00c2daeedda20e87e3782b344adba1cddd6ad709" + integrity sha1-AMLa7t2iDofjeCs0Stuhzd1q1wk= proto-list@~1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= protoduck@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/protoduck/-/protoduck-5.0.1.tgz#03c3659ca18007b69a50fd82a7ebcc516261151f" + integrity sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg== dependencies: genfun "^5.0.0" prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= psl@^1.1.24: - version "1.1.32" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.32.tgz#3f132717cf2f9c169724b2b6caf373cf694198db" - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" + version "1.3.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.3.0.tgz#e1ebf6a3b5564fa8376f3da2275da76d875ca1bd" + integrity sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag== pump@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== dependencies: end-of-stream "^1.1.0" once "^1.3.1" @@ -5293,6 +5232,7 @@ pump@^2.0.0: pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: end-of-stream "^1.1.0" once "^1.3.1" @@ -5300,22 +5240,21 @@ pump@^3.0.0: pumpify@^1.3.3: version "1.5.1" resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== dependencies: duplexify "^3.6.0" inherits "^2.0.3" pump "^2.0.0" -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - -punycode@^1.3.2, punycode@^1.4.1: +punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= punycode@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== pushdata-bitcoin@Bitcoin-com/pushdata-bitcoin#1.2.1: version "1.2.1" @@ -5326,45 +5265,32 @@ pushdata-bitcoin@Bitcoin-com/pushdata-bitcoin#1.2.1: q@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= qrcode-terminal@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#bb5b699ef7f9f0505092a3748be4464fe71b5819" - -qrcode@^1.2.0: - version "1.3.3" - resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.3.3.tgz#5ef50c0c890cffa1897f452070f0f094936993de" - dependencies: - can-promise "0.0.1" - dijkstrajs "^1.0.1" - isarray "^2.0.1" - pngjs "^3.3.0" - yargs "^12.0.5" + integrity sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ== qs@^6.3.0, qs@^6.5.1: - version "6.7.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + version "6.8.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.8.0.tgz#87b763f0d37ca54200334cd57bb2ef8f68a1d081" + integrity sha512-tPSkj8y92PfZVbinY1n84i1Qdx75lZjMQYx9WZhnkofyxzw2r7Ho39G3/aEvSUdebxpnnM4LZJCtvE/Aq3+s9w== qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== -query-string@^6.2.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.7.0.tgz#7e92bf8525140cf8c5ebf500f26716b0de5b7023" +query-string@^6.8.2: + version "6.8.2" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.8.2.tgz#36cb7e452ae11a4b5e9efee83375e0954407b2f6" + integrity sha512-J3Qi8XZJXh93t2FiKyd/7Ec6GNifsjKXUsVFkSBj/kjLsDylWhnCz4NT1bkPcKotttPW+QbKGqqPH8OoI2pdqw== dependencies: decode-uri-component "^0.2.0" split-on-first "^1.0.0" strict-uri-encode "^2.0.0" -querystring-es3@~0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - querystringify@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" @@ -5373,35 +5299,34 @@ querystringify@^2.1.1: quick-lru@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" + integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= qw@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/qw/-/qw-1.0.1.tgz#efbfdc740f9ad054304426acb183412cc8b996d4" + integrity sha1-77/cdA+a0FQwRCassYNBLMi5ltQ= random-bytes@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b" + integrity sha1-T2ih3Arli9P7lYSMMDJNt11kNgs= -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.0.6: +randombytes@^2.0.1, randombytes@^2.0.6: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - range-parser@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== rc@^1.0.1, rc@^1.1.6, rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== dependencies: deep-extend "^0.6.0" ini "~1.3.0" @@ -5409,18 +5334,21 @@ rc@^1.0.1, rc@^1.1.6, rc@^1.2.8: strip-json-comments "~2.0.1" react-is@^16.8.1: - version "16.8.6" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" + version "16.9.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.9.0.tgz#21ca9561399aad0ff1a7701c01683e8ca981edcb" + integrity sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw== -read-cmd-shim@^1.0.1, read-cmd-shim@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz#2d5d157786a37c055d22077c32c53f8329e91c7b" +read-cmd-shim@^1.0.1, read-cmd-shim@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.4.tgz#b4a53d43376211b45243f0072b6e603a8e37640d" + integrity sha512-Pqpl3qJ/QdOIjRYA0q5DND/gLvGOfpIz/fYVDGYpOXfW/lFrIttmLsBnd6IkyK10+JHU9zhsaudfvrQTBB9YFQ== dependencies: graceful-fs "^4.1.2" read-installed@~4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/read-installed/-/read-installed-4.0.3.tgz#ff9b8b67f187d1e4c29b9feb31f6b223acd19067" + integrity sha1-/5uLZ/GH0eTCm5/rMfayI6zRkGc= dependencies: debuglog "^1.0.1" read-package-json "^2.0.0" @@ -5431,15 +5359,10 @@ read-installed@~4.0.3: optionalDependencies: graceful-fs "^4.1.2" -read-only-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0" - dependencies: - readable-stream "^2.0.2" - -"read-package-json@1 || 2", read-package-json@^2.0.0, read-package-json@^2.0.13: - version "2.0.13" - resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.0.13.tgz#2e82ebd9f613baa6d2ebe3aa72cefe3f68e41f4a" +"read-package-json@1 || 2", read-package-json@^2.0.0, read-package-json@^2.0.13, read-package-json@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.1.0.tgz#e3d42e6c35ea5ae820d9a03ab0c7291217fc51d5" + integrity sha512-KLhu8M1ZZNkMcrq1+0UJbR8Dii8KZUqB0Sha4mOx/bknfKI/fyrQVrG/YIt2UOtG667sD8+ee4EXMM91W9dC+A== dependencies: glob "^7.1.1" json-parse-better-errors "^1.0.1" @@ -5448,19 +5371,19 @@ read-only-stream@^2.0.0: optionalDependencies: graceful-fs "^4.1.2" -read-package-tree@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.2.2.tgz#4b6a0ef2d943c1ea36a578214c9a7f6b7424f7a8" +read-package-tree@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.3.1.tgz#a32cb64c7f31eb8a6f31ef06f9cedf74068fe636" + integrity sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw== dependencies: - debuglog "^1.0.1" - dezalgo "^1.0.0" - once "^1.3.0" read-package-json "^2.0.0" readdir-scoped-modules "^1.0.0" + util-promisify "^2.1.0" read-pkg-up@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= dependencies: find-up "^2.0.0" read-pkg "^2.0.0" @@ -5468,6 +5391,7 @@ read-pkg-up@^2.0.0: read-pkg-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= dependencies: find-up "^2.0.0" read-pkg "^3.0.0" @@ -5475,6 +5399,7 @@ read-pkg-up@^3.0.0: read-pkg-up@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" + integrity sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA== dependencies: find-up "^3.0.0" read-pkg "^3.0.0" @@ -5482,6 +5407,7 @@ read-pkg-up@^4.0.0: read-pkg-up@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-6.0.0.tgz#da75ce72762f2fa1f20c5a40d4dd80c77db969e3" + integrity sha512-odtTvLl+EXo1eTsMnoUHRmg/XmXdTkwXVxy4VFE9Kp6cCq7b3l7QMdBndND3eAFzrbSAXC/WCUOQQ9rLjifKZw== dependencies: find-up "^4.0.0" read-pkg "^5.1.1" @@ -5490,6 +5416,7 @@ read-pkg-up@^6.0.0: read-pkg@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= dependencies: load-json-file "^2.0.0" normalize-package-data "^2.3.2" @@ -5498,29 +5425,33 @@ read-pkg@^2.0.0: read-pkg@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= dependencies: load-json-file "^4.0.0" normalize-package-data "^2.3.2" path-type "^3.0.0" read-pkg@^5.0.0, read-pkg@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.1.1.tgz#5cf234dde7a405c90c88a519ab73c467e9cb83f5" + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== dependencies: "@types/normalize-package-data" "^2.4.0" normalize-package-data "^2.5.0" - parse-json "^4.0.0" - type-fest "^0.4.1" + parse-json "^5.0.0" + type-fest "^0.6.0" read@1, read@~1.0.1, read@~1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" + integrity sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ= dependencies: mute-stream "~0.0.4" "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" @@ -5530,9 +5461,10 @@ read@1, read@~1.0.1, read@~1.0.7: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.1.1: +"readable-stream@2 || 3", readable-stream@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" + integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" @@ -5541,15 +5473,17 @@ readable-stream@^3.1.1: readable-stream@~1.1.10: version "1.1.14" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= dependencies: core-util-is "~1.0.0" inherits "~2.0.1" isarray "0.0.1" string_decoder "~0.10.x" -readdir-scoped-modules@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747" +readdir-scoped-modules@^1.0.0, readdir-scoped-modules@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" + integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== dependencies: debuglog "^1.0.1" dezalgo "^1.0.0" @@ -5559,6 +5493,7 @@ readdir-scoped-modules@^1.0.0: redent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" + integrity sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo= dependencies: indent-string "^3.0.0" strip-indent "^2.0.0" @@ -5566,54 +5501,49 @@ redent@^2.0.0: redeyed@~2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-2.1.1.tgz#8984b5815d99cb220469c99eeeffe38913e6cc0b" + integrity sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs= dependencies: esprima "~4.0.0" -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - regexpp@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== -registry-auth-token@^3.0.1, registry-auth-token@^3.3.1: +registry-auth-token@^3.0.1: version "3.4.0" resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" + integrity sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A== dependencies: rc "^1.1.6" safe-buffer "^5.0.1" +registry-auth-token@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.0.0.tgz#30e55961eec77379da551ea5c4cf43cbf03522be" + integrity sha512-lpQkHxd9UL6tb3k/aHAVfnVtn+Bcs9ob5InuFLLEDqSqeq+AljB8GZW9xY0x7F+xYwEcjKe07nyoxzEYz6yvkw== + dependencies: + rc "^1.2.8" + safe-buffer "^5.0.1" + registry-url@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" + integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI= dependencies: rc "^1.0.1" release-zalgo@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/release-zalgo/-/release-zalgo-1.0.0.tgz#09700b7e5074329739330e535c5a90fb67851730" + integrity sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA= dependencies: es6-error "^4.0.1" -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - -repl.history@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/repl.history/-/repl.history-0.1.4.tgz#80367171f3781d6e4299c71758c253097f5d5832" - request@^2.86.0, request@^2.87.0, request@^2.88.0: version "2.88.0" resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" + integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== dependencies: aws-sign2 "~0.7.0" aws4 "^1.8.0" @@ -5639,18 +5569,22 @@ request@^2.86.0, request@^2.87.0, request@^2.88.0: require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= require-main-filename@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== require-uncached@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM= dependencies: caller-path "^0.1.0" resolve-from "^1.0.0" @@ -5663,73 +5597,93 @@ requires-port@^1.0.0: resolve-from@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY= resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve-from@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - -resolve@1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - -resolve@^1.1.4, resolve@^1.10.0, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.8.1: - version "1.11.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.0.tgz#4014870ba296176b86343d50b60f3b50609ce232" +resolve@^1.10.0, resolve@^1.3.3, resolve@^1.5.0, resolve@^1.8.1: + version "1.12.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" + integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== dependencies: path-parse "^1.0.6" -resolve@~1.10.1: - version "1.10.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.1.tgz#664842ac960795bbe758221cdccda61fb64b5f18" +resolve@~1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.1.tgz#ea10d8110376982fef578df8fc30b9ac30a07a3e" + integrity sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw== dependencies: path-parse "^1.0.6" restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= dependencies: onetime "^2.0.0" signal-exit "^3.0.2" +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + resumer@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" + integrity sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k= dependencies: through "~2.3.4" -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - retry@^0.10.0: version "0.10.1" resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" + integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q= retry@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= -rimraf@2, rimraf@2.6.3, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@~2.6.2: +reusify@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@2, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@2.6.3, rimraf@~2.6.2: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== dependencies: glob "^7.1.3" ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== dependencies: hash-base "^3.0.0" inherits "^2.0.1" @@ -5737,66 +5691,77 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: run-async@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= dependencies: is-promise "^2.1.0" -run-parallel@^1.1.2: +run-parallel@^1.1.2, run-parallel@^1.1.9: version "1.1.9" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" + integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= dependencies: aproba "^1.1.1" rx-lite-aggregates@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" + integrity sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74= dependencies: rx-lite "*" rx-lite@*, rx-lite@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" + integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ= rxjs@^6.4.0: version "6.5.2" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" + integrity sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg== dependencies: tslib "^1.9.0" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" + integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - dependencies: - ret "~0.1.10" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== samsam@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.3.0.tgz#8d1d9350e25622da30de3e44ba692b5221ab7c50" + integrity sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg== satoshi-bitcoin@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/satoshi-bitcoin/-/satoshi-bitcoin-1.0.4.tgz#d002b677075d5cbbf2c211a8df3254bcdf50b1e4" + integrity sha1-0AK2dwddXLvywhGo3zJUvN9QseQ= dependencies: big.js "^3.1.3" scryptsy@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-2.1.0.tgz#8d1e8d0c025b58fdd25b6fa9a0dc905ee8faa790" + integrity sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w== secp256k1@^3.0.1: version "3.7.1" resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.7.1.tgz#12e473e0e9a7c2f2d4d4818e722ad0e14cc1e2f1" + integrity sha512-1cf8sbnRreXrQFdH6qsg2H71Xw91fCCS9Yp021GnUNJzWJS/py96fS4lHbnTnouLp08Xj6jBoBB6V78Tdbdu5g== dependencies: bindings "^1.5.0" bip66 "^1.1.5" @@ -5808,8 +5773,9 @@ secp256k1@^3.0.1: safe-buffer "^5.1.2" semantic-release@^15.13.3: - version "15.13.16" - resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-15.13.16.tgz#568b388790e5670acebcc6866113c37fbd968458" + version "15.13.21" + resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-15.13.21.tgz#d021c75f889cff75ae3410736942bee6c4557da7" + integrity sha512-3S9thQas28iv3NeHUqQVsDnxMcBGQICdxabeNnJ8BnbRBvCkgqCg3v9zo/+O5a8GCyxrgjtwJ2iWozL8SiIq1w== dependencies: "@semantic-release/commit-analyzer" "^6.1.0" "@semantic-release/error" "^2.2.0" @@ -5826,9 +5792,9 @@ semantic-release@^15.13.3: get-stream "^5.0.0" git-log-parser "^1.2.0" hook-std "^2.0.0" - hosted-git-info "^2.7.1" - lodash "^4.17.4" - marked "^0.6.0" + hosted-git-info "^3.0.0" + lodash "^4.17.15" + marked "^0.7.0" marked-terminal "^3.2.0" p-locate "^4.0.0" p-reduce "^2.0.0" @@ -5841,106 +5807,80 @@ semantic-release@^15.13.3: semver-diff@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" + integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= dependencies: semver "^5.0.3" semver-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" + integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== -"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" +"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.1: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== semver@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.1.1.tgz#53f53da9b30b2103cd4f15eab3a18ecbcb210c9b" + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== semver@~5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8= set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= -set-value@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.1" - to-object-path "^0.3.0" - -set-value@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -sha.js@^2.4.0, sha.js@^2.4.8, sha.js@~2.4.4: +sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" -sha@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/sha/-/sha-2.0.1.tgz#6030822fbd2c9823949f8f72ed6411ee5cf25aae" +sha@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/sha/-/sha-3.0.0.tgz#b2f2f90af690c16a3a839a6a6c680ea51fedd1ae" + integrity sha512-DOYnM37cNsLNSGIG/zZWch5CKIRNoLdYUQTQlcgkRkoYIUwDYjqDyye16YcDZg/OPdcbUgTKMjc4SY6TB7ZAPw== dependencies: graceful-fs "^4.1.2" - readable-stream "^2.0.2" - -shasum@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz#e7012310d8f417f4deb5712150e5678b87ae565f" - dependencies: - json-stable-stringify "~0.0.0" - sha.js "~2.4.4" shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= dependencies: shebang-regex "^1.0.0" shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - -shell-quote@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" - dependencies: - array-filter "~0.0.0" - array-map "~0.0.0" - array-reduce "~0.0.0" - jsonify "~0.0.0" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= signale@^1.2.1: version "1.4.0" resolved "https://registry.yarnpkg.com/signale/-/signale-1.4.0.tgz#c4be58302fb0262ac00fc3d886a7c113759042f1" + integrity sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w== dependencies: chalk "^2.3.2" figures "^2.0.0" pkg-conf "^2.1.0" -simple-concat@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6" - sinon@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/sinon/-/sinon-4.5.0.tgz#427ae312a337d3c516804ce2754e8c0d5028cb04" + integrity sha512-trdx+mB0VBBgoYucy6a9L7/jfQOmvGeaKZT4OOJ+lPAtI8623xyGr8wLiE4eojzBS8G9yXbhx42GHUOVLr4X2w== dependencies: "@sinonjs/formatio" "^2.0.0" diff "^3.1.0" @@ -5953,20 +5893,24 @@ sinon@^4.5.0: slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== slice-ansi@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" + integrity sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg== dependencies: is-fullwidth-code-point "^2.0.0" slice-ansi@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== dependencies: ansi-styles "^3.2.0" astral-regex "^1.0.0" @@ -5975,45 +5919,22 @@ slice-ansi@^2.1.0: slide@^1.1.6, slide@~1.1.3, slide@~1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= smart-buffer@4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.0.2.tgz#5207858c3815cc69110703c6b94e46c15634395d" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" + integrity sha512-JDhEpTKzXusOqXZ0BUIdH+CjFdO/CR3tLlf5CN34IypI+xMmXW1uB16OOY8z3cICbJlDAVJzNbwBhNO0wt9OAw== socket.io-adapter@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b" + integrity sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs= socket.io-client@2.2.0, socket.io-client@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.2.0.tgz#84e73ee3c43d5020ccc1a258faeeb9aec2723af7" + integrity sha512-56ZrkTDbdTLmBIyfFYesgOxsjcLnwAKoN4CiPyTVkMQj3zTUh0QAx3GbvIvLpFEOvQWu92yyWICxB0u7wkVbYA== dependencies: backo2 "1.0.2" base64-arraybuffer "0.1.5" @@ -6033,6 +5954,7 @@ socket.io-client@2.2.0, socket.io-client@^2.2.0: socket.io-parser@~3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.0.tgz#2b52a96a509fdf31440ba40fed6094c7d4f1262f" + integrity sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng== dependencies: component-emitter "1.2.1" debug "~3.1.0" @@ -6053,6 +5975,7 @@ socket.io@^2.2.0: socks-proxy-agent@^4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386" + integrity sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg== dependencies: agent-base "~4.2.1" socks "~2.3.2" @@ -6060,6 +5983,7 @@ socks-proxy-agent@^4.0.0: socks@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/socks/-/socks-2.3.2.tgz#ade388e9e6d87fdb11649c15746c578922a5883e" + integrity sha512-pCpjxQgOByDHLlNqlnh/mNSAxIUkyBBuwwhTcV+enZGbDaClPvHdvm6uvOwZfFJkam7cGhBNbb4JxiP8UZkRvQ== dependencies: ip "^1.1.5" smart-buffer "4.0.2" @@ -6067,50 +5991,43 @@ socks@~2.3.2: sorted-object@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/sorted-object/-/sorted-object-2.0.1.tgz#7d631f4bd3a798a24af1dffcfbfe83337a5df5fc" + integrity sha1-fWMfS9OnmKJK8d/8+/6DM3pd9fw= sorted-union-stream@~2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/sorted-union-stream/-/sorted-union-stream-2.1.3.tgz#c7794c7e077880052ff71a8d4a2dbb4a9a638ac7" + integrity sha1-x3lMfgd4gAUv9xqNSi27Sppjisc= dependencies: from2 "^1.3.0" stream-iterate "^1.1.0" -source-map-resolve@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" - dependencies: - atob "^2.1.1" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - source-map-support@^0.5.12, source-map-support@^0.5.6: - version "0.5.12" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" + version "0.5.13" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" + integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - -source-map@^0.5.0, source-map@^0.5.6, source-map@~0.5.3: +source-map@^0.5.0: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== spawn-error-forwarder@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz#1afd94738e999b0346d7b9fc373be55e07577029" + integrity sha1-Gv2Uc46ZmwNG17n8NzvlXgdXcCk= spawn-wrap@^1.4.2: version "1.4.2" resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.4.2.tgz#cff58e73a8224617b6561abdc32586ea0c82248c" + integrity sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg== dependencies: foreground-child "^1.5.6" mkdirp "^0.5.0" @@ -6122,6 +6039,7 @@ spawn-wrap@^1.4.2: spdx-correct@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" + integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== dependencies: spdx-expression-parse "^3.0.0" spdx-license-ids "^3.0.0" @@ -6129,53 +6047,56 @@ spdx-correct@^3.0.0: spdx-exceptions@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" + integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== spdx-expression-parse@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== dependencies: spdx-exceptions "^2.1.0" spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz#75ecd1a88de8c184ef015eafb51b5b48bfd11bb1" + version "3.0.5" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" + integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== split-on-first@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - dependencies: - extend-shallow "^3.0.0" + integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== split2@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/split2/-/split2-2.2.0.tgz#186b2575bcf83e85b7d18465756238ee4ee42493" + integrity sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw== dependencies: through2 "^2.0.2" split2@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/split2/-/split2-1.0.0.tgz#52e2e221d88c75f9a73f90556e263ff96772b314" + integrity sha1-UuLiIdiMdfmnP5BVbiY/+WdysxQ= dependencies: through2 "~2.0.0" split@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" + integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== dependencies: through "2" sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= sshpk@^1.7.0: version "1.16.1" resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -6190,12 +6111,14 @@ sshpk@^1.7.0: ssri@^6.0.0, ssri@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" + integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== dependencies: figgy-pudding "^3.5.1" standard-engine@~8.0.0: version "8.0.1" resolved "https://registry.yarnpkg.com/standard-engine/-/standard-engine-8.0.1.tgz#0b77be8d7ab963675717dbeac1ef1d6675fb62f0" + integrity sha512-LA531C3+nljom/XRvdW/hGPXwmilRkaRkENhO3FAGF1Vtq/WtCXzgmnc5S6vUHHsgv534MRy02C1ikMwZXC+tw== dependencies: deglob "^2.1.0" get-stdin "^6.0.0" @@ -6205,6 +6128,7 @@ standard-engine@~8.0.0: standard@^11.0.1: version "11.0.1" resolved "https://registry.yarnpkg.com/standard/-/standard-11.0.1.tgz#49be40c76f1d564964b22bbf7309929ad0335e29" + integrity sha512-nu0jAcHiSc8H+gJCXeiziMVZNDYi8MuqrYJKxTgjP4xKXZMKm311boqQIzDrYI/ktosltxt2CbDjYQs9ANC8IA== dependencies: eslint "~4.18.0" eslint-config-standard "11.0.0" @@ -6216,23 +6140,10 @@ standard@^11.0.1: eslint-plugin-standard "~3.0.1" standard-engine "~8.0.0" -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -stream-browserify@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-combiner2@^1.1.1, stream-combiner2@~1.1.1: +stream-combiner2@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" + integrity sha1-+02KFCDqNidk4hrUeAOXvry0HL4= dependencies: duplexer2 "~0.1.0" readable-stream "^2.0.2" @@ -6240,23 +6151,15 @@ stream-combiner2@^1.1.1, stream-combiner2@~1.1.1: stream-each@^1.1.0: version "1.2.3" resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== dependencies: end-of-stream "^1.1.0" stream-shift "^1.0.0" -stream-http@^2.0.0: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - stream-iterate@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/stream-iterate/-/stream-iterate-1.2.0.tgz#2bd7c77296c1702a46488b8ad41f79865eecd4e1" + integrity sha1-K9fHcpbBcCpGSIuK1B95hl7s1OE= dependencies: readable-stream "^2.1.5" stream-shift "^1.0.0" @@ -6264,21 +6167,17 @@ stream-iterate@^1.1.0: stream-shift@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" - -stream-splicer@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.1.tgz#0b13b7ee2b5ac7e0609a7463d83899589a363fcd" - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.2" + integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= strict-uri-encode@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" + integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= dependencies: code-point-at "^1.0.0" is-fullwidth-code-point "^1.0.0" @@ -6287,6 +6186,7 @@ string-width@^1.0.1: "string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== dependencies: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" @@ -6294,117 +6194,133 @@ string-width@^1.0.1: string-width@^3.0.0, string-width@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== dependencies: emoji-regex "^7.0.1" is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" +string-width@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.1.0.tgz#ba846d1daa97c3c596155308063e075ed1c99aff" + integrity sha512-NrX+1dVVh+6Y9dnQ19pR0pP4FiEIlUvdTGn8pw6CKTNq5sgib2nIhmUNT5TAmhWmvKr3WcxBcP3E8nWezuipuQ== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^5.2.0" + string.prototype.trim@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz#d04de2c89e137f4d7d206f086b5ed2fae6be8cea" + integrity sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo= dependencies: define-properties "^1.1.2" es-abstract "^1.5.0" function-bind "^1.0.2" string_decoder@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: - safe-buffer "~5.1.0" + safe-buffer "~5.2.0" string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" stringify-package@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/stringify-package/-/stringify-package-1.0.0.tgz#e02828089333d7d45cd8c287c30aa9a13375081b" + integrity sha512-JIQqiWmLiEozOC0b0BtxZ/AOUtdUZHCBPgqIZ2kSJJqGwgb9neo44XdTHUC4HZSGqi03hOeB7W/E8rAlKnGe9g== strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= dependencies: ansi-regex "^2.0.0" strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= dependencies: ansi-regex "^3.0.0" strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== dependencies: ansi-regex "^4.1.0" strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= strip-indent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" + integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - -subarg@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" - dependencies: - minimist "^1.1.0" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= supports-color@5.4.0: version "5.4.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" + integrity sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w== dependencies: has-flag "^3.0.0" supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= supports-color@^5.0.0, supports-color@^5.1.0, supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" supports-color@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== dependencies: has-flag "^3.0.0" supports-hyperlinks@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz#71daedf36cc1060ac5100c351bb3da48c29c0ef7" + integrity sha512-HHi5kVSefKaJkGYXbDuKbUGRVxqnWGn3J2e39CYcNJEfWciGq2zYtOhXLTlvrOZW1QU7VX67w7fMmWafHX9Pfw== dependencies: has-flag "^2.0.0" supports-color "^5.0.0" -syntax-error@^1.1.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.4.0.tgz#2d9d4ff5c064acb711594a3e3b95054ad51d907c" - dependencies: - acorn-node "^1.2.0" - table@4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" + integrity sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA== dependencies: ajv "^5.2.3" ajv-keywords "^2.1.0" @@ -6414,17 +6330,19 @@ table@4.0.2: string-width "^2.1.1" table@^5.2.3: - version "5.4.1" - resolved "https://registry.yarnpkg.com/table/-/table-5.4.1.tgz#0691ae2ebe8259858efb63e550b6d5f9300171e8" + version "5.4.6" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== dependencies: - ajv "^6.9.1" - lodash "^4.17.11" + ajv "^6.10.2" + lodash "^4.17.14" slice-ansi "^2.1.0" string-width "^3.0.0" tape@*: - version "4.10.2" - resolved "https://registry.yarnpkg.com/tape/-/tape-4.10.2.tgz#129fcf62f86df92687036a52cce7b8ddcaffd7a6" + version "4.11.0" + resolved "https://registry.yarnpkg.com/tape/-/tape-4.11.0.tgz#63d41accd95e45a23a874473051c57fdbc58edc1" + integrity sha512-yixvDMX7q7JIs/omJSzSZrqulOV51EC9dK8dM0TzImTIkHWfe2/kFyL5v+d9C+SrCMaICk59ujsqFAVidDqDaA== dependencies: deep-equal "~1.0.1" defined "~1.0.0" @@ -6432,25 +6350,18 @@ tape@*: function-bind "~1.1.1" glob "~7.1.4" has "~1.0.3" - inherits "~2.0.3" + inherits "~2.0.4" minimist "~1.2.0" object-inspect "~1.6.0" - resolve "~1.10.1" + resolve "~1.11.1" resumer "~0.0.0" string.prototype.trim "~1.1.2" through "~2.3.8" -tar@^2.0.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40" - dependencies: - block-stream "*" - fstream "^1.0.12" - inherits "2" - -tar@^4.4.8: +tar@^4.4.10, tar@^4.4.8: version "4.4.10" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.10.tgz#946b2810b9a5e0b26140cf78bea6b0b0d689eba1" + integrity sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA== dependencies: chownr "^1.1.1" fs-minipass "^1.2.5" @@ -6463,12 +6374,14 @@ tar@^4.4.8: term-size@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" + integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= dependencies: execa "^0.7.0" test-exclude@^5.2.3: version "5.2.3" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" + integrity sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g== dependencies: glob "^7.1.3" minimatch "^3.0.4" @@ -6478,79 +6391,71 @@ test-exclude@^5.2.3: text-extensions@^1.0.0: version "1.9.0" resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" + integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== text-table@^0.2.0, text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= through2@^2.0.0, through2@^2.0.2, through2@~2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== dependencies: readable-stream "~2.3.6" xtend "~4.0.1" +through2@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.1.tgz#39276e713c3302edf9e388dd9c812dd3b825bd5a" + integrity sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww== + dependencies: + readable-stream "2 || 3" + through@2, "through@>=2.2.7 <3", through@^2.3.6, through@~2.3.4, through@~2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= timed-out@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - -timers-browserify@^1.0.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" - dependencies: - process "~0.11.0" + integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= tiny-relative-date@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz#fa08aad501ed730f31cc043181d995c39a935e07" + integrity sha512-MOQHpzllWxDCHHaDno30hhLfbouoYlOI8YlMNtvKe1zXbjEVhbcEovQxvZrPvtiYW630GQDoMMarCnjfyfHA+A== tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== dependencies: os-tmpdir "~1.0.2" to-array@0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" + is-number "^7.0.0" tough-cookie@~2.4.3: version "2.4.3" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== dependencies: psl "^1.1.24" punycode "^1.4.1" @@ -6558,22 +6463,27 @@ tough-cookie@~2.4.3: traverse@~0.6.6: version "0.6.6" resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" + integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= trim-newlines@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" + integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= trim-off-newlines@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" + integrity sha1-n5up2e+odkw4dpi8v+sshI8RrbM= trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= ts-node@^8.1.0: version "8.3.0" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.3.0.tgz#e4059618411371924a1fb5f3b125915f324efb57" + integrity sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ== dependencies: arg "^4.1.0" diff "^4.0.1" @@ -6584,42 +6494,46 @@ ts-node@^8.1.0: tslib@^1.9.0: version "1.10.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" - -tty-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811" + integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= dependencies: safe-buffer "^5.0.1" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= dependencies: prelude-ls "~1.1.2" type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== -type-fest@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.4.1.tgz#8bdf77743385d8a4f13ba95f610f5ccd68c728f8" - -type-fest@^0.5.0: +type-fest@^0.5.0, type-fest@^0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.5.2.tgz#d6ef42a0356c6cd45f49485c3b6281fc148e48a2" + integrity sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== type-is@^1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== dependencies: media-typer "0.3.0" mime-types "~2.1.24" @@ -6627,18 +6541,22 @@ type-is@^1.6.18: typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= typeforce@^1.11.3: version "1.18.0" resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.18.0.tgz#d7416a2c5845e085034d70fcc5b6cc4a90edbfdc" + integrity sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g== typescript@^3.4.5: - version "3.5.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.2.tgz#a09e1dc69bc9551cadf17dba10ee42cf55e5d56c" + version "3.5.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977" + integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g== uglify-js@^3.1.4: version "3.6.0" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5" + integrity sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg== dependencies: commander "~2.20.0" source-map "~0.6.1" @@ -6646,88 +6564,70 @@ uglify-js@^3.1.4: uid-number@0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + integrity sha1-DqEOgDXo61uOREnwbaHHMGY7qoE= umask@^1.1.0, umask@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" - -umd@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz#aa9fe653c42b9097678489c01000acb69f0b26cf" - -undeclared-identifiers@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz#9254c1d37bdac0ac2b52de4b6722792d2a91e30f" - dependencies: - acorn-node "^1.3.0" - dash-ast "^1.0.0" - get-assigned-identifiers "^1.2.0" - simple-concat "^1.0.0" - xtend "^4.0.1" - -union-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^0.4.3" + integrity sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0= uniq@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= unique-filename@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== dependencies: unique-slug "^2.0.0" unique-slug@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== dependencies: imurmurhash "^0.1.4" unique-string@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= dependencies: crypto-random-string "^1.0.0" -universal-user-agent@^2.0.0, universal-user-agent@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-2.1.0.tgz#5abfbcc036a1ba490cb941f8fd68c46d3669e8e4" +universal-user-agent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-3.0.0.tgz#4cc88d68097bffd7ac42e3b7c903e7481424b4b9" + integrity sha512-T3siHThqoj5X0benA5H0qcDnrKGXzU8TKoX15x/tQHw1hQBvIEBHjxQ2klizYsqBOO/Q+WuxoQUihadeeqDnoA== dependencies: os-name "^3.0.0" universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== unorm@^1.3.3: - version "1.5.0" - resolved "https://registry.yarnpkg.com/unorm/-/unorm-1.5.0.tgz#01fa9b76f1c60f7916834605c032aa8962c3f00a" + version "1.6.0" + resolved "https://registry.yarnpkg.com/unorm/-/unorm-1.6.0.tgz#029b289661fba714f1a9af439eb51d9b16c205af" + integrity sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA== unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= unzip-response@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= update-notifier@^2.3.0, update-notifier@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" + integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw== dependencies: boxen "^1.2.1" chalk "^2.0.1" @@ -6743,20 +6643,19 @@ update-notifier@^2.3.0, update-notifier@^2.5.0: uri-js@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== dependencies: punycode "^2.1.0" -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - url-join@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.0.tgz#4d3340e807d3773bda9991f8305acdcc2a665d2a" + version "4.0.1" + resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7" + integrity sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA== url-parse-lax@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= dependencies: prepend-http "^1.0.1" @@ -6771,45 +6670,41 @@ url-parse@^1.4.3: url-template@^2.0.8: version "2.0.8" resolved "https://registry.yarnpkg.com/url-template/-/url-template-2.0.8.tgz#fc565a3cccbff7730c775f5641f9555791439f21" - -url@~0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha1-/FZaPMy/93MMd19WQflVV5FDnyE= util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= util-extend@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz#a7c216d267545169637b3b6edc6ca9119e2ff93f" + integrity sha1-p8IW0mdUUWljeztu3GypEZ4v+T8= + +util-promisify@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/util-promisify/-/util-promisify-2.1.0.tgz#3c2236476c4d32c5ff3c47002add7c13b9a82a53" + integrity sha1-PCI2R2xNMsX/PEcAKt18E7moKlM= + dependencies: + object.getownpropertydescriptors "^2.0.3" util@0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= dependencies: inherits "2.0.1" -util@~0.10.1: - version "0.10.4" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" - dependencies: - inherits "2.0.3" - uuid@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + version "3.3.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" + integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== dependencies: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" @@ -6817,88 +6712,94 @@ validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: validate-npm-package-name@^3.0.0, validate-npm-package-name@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" + integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= dependencies: builtins "^1.0.3" varuint-bitcoin@^1.0.1, varuint-bitcoin@^1.0.4: version "1.1.0" resolved "https://registry.yarnpkg.com/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz#7a343f50537607af6a3059312b9782a170894540" + integrity sha512-jCEPG+COU/1Rp84neKTyDJQr478/hAfVp5xxYn09QEH0yBjbmPeMfuuQIrp+BUD83hybtYZKhr5elV3bvdV1bA== dependencies: safe-buffer "^5.1.1" verror@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= dependencies: assert-plus "^1.0.0" core-util-is "1.0.2" extsprintf "^1.2.0" -vm-browserify@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" - wcwidth@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= dependencies: defaults "^1.0.3" which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= which@1, which@^1.2.9, which@^1.3.0, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" wide-align@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== dependencies: string-width "^1.0.2 || 2" widest-line@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" + integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== dependencies: string-width "^2.1.1" wif@^2.0.1, wif@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/wif/-/wif-2.0.6.tgz#08d3f52056c66679299726fade0d432ae74b4704" + integrity sha1-CNP1IFbGZnkplyb63g1DKudLRwQ= dependencies: bs58check "<3.0.0" -window-or-global@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/window-or-global/-/window-or-global-1.0.1.tgz#dbe45ba2a291aabc56d62cf66c45b7fa322946de" - windows-release@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.2.0.tgz#8122dad5afc303d833422380680a79cdfa91785f" + integrity sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA== dependencies: execa "^1.0.0" wordwrap@~0.0.2: version "0.0.3" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= wordwrap@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= -worker-farm@^1.6.0: +worker-farm@^1.6.0, worker-farm@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== dependencies: errno "~0.1.7" wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= dependencies: string-width "^1.0.1" strip-ansi "^3.0.1" @@ -6906,6 +6807,7 @@ wrap-ansi@^2.0.0: wrap-ansi@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== dependencies: ansi-styles "^3.2.0" string-width "^3.0.0" @@ -6914,10 +6816,12 @@ wrap-ansi@^5.1.0: wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -write-file-atomic@^2.0.0, write-file-atomic@^2.3.0, write-file-atomic@^2.4.2: +write-file-atomic@^2.0.0, write-file-atomic@^2.3.0, write-file-atomic@^2.4.2, write-file-atomic@^2.4.3: version "2.4.3" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" + integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== dependencies: graceful-fs "^4.1.11" imurmurhash "^0.1.4" @@ -6926,59 +6830,63 @@ write-file-atomic@^2.0.0, write-file-atomic@^2.3.0, write-file-atomic@^2.4.2: write@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== dependencies: mkdirp "^0.5.1" write@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c= dependencies: mkdirp "^0.5.1" ws@~6.1.0: version "6.1.4" resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" + integrity sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA== dependencies: async-limiter "~1.0.0" xdg-basedir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" + integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= xmlhttprequest-ssl@~1.5.4: version "1.5.5" resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" + integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" +xtend@^4.0.1, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== y18n@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= -"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: +y18n@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" + integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== -yargs-parser@^11.1.1: - version "11.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^13.0.0, yargs-parser@^13.1.0: +yargs-parser@^13.0.0, yargs-parser@^13.1.1: version "13.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" + integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" @@ -6986,12 +6894,14 @@ yargs-parser@^13.0.0, yargs-parser@^13.1.0: yargs-parser@^9.0.2: version "9.0.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" + integrity sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc= dependencies: camelcase "^4.1.0" yargs@^11.0.0: version "11.1.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" + integrity sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A== dependencies: cliui "^4.0.0" decamelize "^1.1.1" @@ -7006,43 +6916,28 @@ yargs@^11.0.0: y18n "^3.2.1" yargs-parser "^9.0.2" -yargs@^12.0.5: - version "12.0.5" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" - dependencies: - cliui "^4.0.0" - decamelize "^1.2.0" - find-up "^3.0.0" - get-caller-file "^1.0.1" - os-locale "^3.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 || ^4.0.0" - yargs-parser "^11.1.1" - yargs@^13.1.0, yargs@^13.2.2: - version "13.2.4" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83" + version "13.3.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" + integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== dependencies: cliui "^5.0.0" find-up "^3.0.0" get-caller-file "^2.0.1" - os-locale "^3.1.0" require-directory "^2.1.1" require-main-filename "^2.0.0" set-blocking "^2.0.0" string-width "^3.0.0" which-module "^2.0.0" y18n "^4.0.0" - yargs-parser "^13.1.0" + yargs-parser "^13.1.1" yeast@0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= yn@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.0.tgz#fcbe2db63610361afcc5eb9e0ac91e976d046114" + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== From 8e91a54a14d4f3990d80ea7cac4fa04176ee28f0 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 20 Aug 2019 16:26:01 -0700 Subject: [PATCH 450/480] Make imports class properties. --- lib/Util.ts | 60 +++++++++++++++-------------------------------------- 1 file changed, 17 insertions(+), 43 deletions(-) diff --git a/lib/Util.ts b/lib/Util.ts index 3974a0e7..9d5b594f 100644 --- a/lib/Util.ts +++ b/lib/Util.ts @@ -1,14 +1,10 @@ -import axios, { AxiosRequestConfig, AxiosResponse } from "axios" -import { REST_URL } from "./BITBOX" - -// Pull in additional libraries required to support the sweep function. +// imports +import axios, { AxiosResponse } from "axios" import { Address } from "./Address" -const addressLib = new Address(REST_URL) +import { REST_URL } from "./BITBOX" +import { BitcoinCash } from "./BitcoinCash" import { ECPair } from "./ECPair" -const ecPair = new ECPair(addressLib) import { TransactionBuilder } from "./TransactionBuilder" -import { BitcoinCash } from "./BitcoinCash" -const bitcoinCash = new BitcoinCash(addressLib) export interface AddressDetails { isvalid: boolean @@ -24,10 +20,15 @@ export interface AddressDetails { export class Util { public restURL: string + public address: Address + public ecPair: ECPair + public bitcoinCash: BitcoinCash constructor(restURL: string = REST_URL) { this.restURL = restURL + this.address = new Address() + this.ecPair = new ECPair() + this.bitcoinCash = new BitcoinCash() } - public async validateAddress( address: string | string[] ): Promise { @@ -38,7 +39,6 @@ export class Util { `${this.restURL}util/validateAddress/${address}` ) return response.data - // Array of blocks. } else if (Array.isArray(address)) { // Dev note: must use axios.post for unit test stubbing. @@ -48,17 +48,14 @@ export class Util { addresses: address } ) - return response.data } - throw new Error(`Input must be a string or array of strings.`) } catch (error) { if (error.response && error.response.data) throw error.response.data else throw error } } - // Sweep a private key in compressed WIF format and sends funds to another // address. // Passing in optional balanceOnly flag will return just the balance without @@ -74,7 +71,6 @@ export class Util { `wif private key must be included in Compressed WIF format.` ) } - // Input validation if (!balanceOnly) { if (!toAddr || toAddr === "") { @@ -83,68 +79,50 @@ export class Util { ) } } - // Generate a keypair from the WIF. - const keyPair = ecPair.fromWIF(wif) - + const keyPair = this.ecPair.fromWIF(wif) // Generate the public address associated with the private key. - const fromAddr = ecPair.toCashAddress(keyPair) - + const fromAddr = this.ecPair.toCashAddress(keyPair) // Check the BCH balance of that public address. const details: any = await axios.get( `${this.restURL}address/details/${fromAddr}` ) const balance = details.data.balance - // If balance is zero, exit. - if(balance === 0) return balance - + if (balance === 0) return balance // If balanceOnly flag is passed in, exit. - if(balanceOnly) return balance - + if (balanceOnly) return balance // Get UTXOs associated with public address. - const u: any = await axios.get( - `${this.restURL}address/utxo/${fromAddr}` - ) + const u: any = await axios.get(`${this.restURL}address/utxo/${fromAddr}`) const utxos = u.data.utxos - // Prepare to generate a transaction to sweep funds. const transactionBuilder = new TransactionBuilder() let originalAmount = 0 - // Add all UTXOs to the transaction inputs. for (let i = 0; i < utxos.length; i++) { const utxo = utxos[i] - originalAmount = originalAmount + utxo.satoshis - transactionBuilder.addInput(utxo.txid, utxo.vout) } - if (originalAmount < 1) throw new Error(`Original amount is zero. No BCH to send.`) - // get byte count to calculate fee. paying 1.1 sat/byte - const byteCount = bitcoinCash.getByteCount( + const byteCount = this.bitcoinCash.getByteCount( { P2PKH: utxos.length }, { P2PKH: 1 } ) const fee = Math.ceil(1.1 * byteCount) - // amount to send to receiver. It's the original amount - 1 sat/byte for tx size const sendAmount = originalAmount - fee - // add output w/ address and amount to send transactionBuilder.addOutput( - addressLib.toLegacyAddress(toAddr), + this.address.toLegacyAddress(toAddr), sendAmount ) - // Loop through each input and sign it with the private key. let redeemScript for (var i = 0; i < utxos.length; i++) { const utxo = utxos[i] - transactionBuilder.sign( i, keyPair, @@ -153,18 +131,14 @@ export class Util { utxo.satoshis ) } - // build tx const tx = transactionBuilder.build() - // output rawhex const hex = tx.toHex() - // Broadcast the transaction to the BCH network. const response: any = await axios.get( `${REST_URL}rawtransactions/sendRawTransaction/${hex}` ) - return response.data } catch (error) { if (error.response && error.response.data) throw error.response.data From 64f7b89e436bd90b6dc31922cbaee99fe6addc49 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 20 Aug 2019 16:27:07 -0700 Subject: [PATCH 451/480] Console.log --- lib/Address.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/Address.ts b/lib/Address.ts index a82a93ca..74be8471 100644 --- a/lib/Address.ts +++ b/lib/Address.ts @@ -253,7 +253,6 @@ export class Address { address: string | string[] ): Promise { try { - console.log(`calling ${this.restURL}`) // Handle single address. if (typeof address === "string") { From 1bbfe47a1f8a0f28178500f691349fd074c40267 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 20 Aug 2019 16:27:56 -0700 Subject: [PATCH 452/480] Util.sweep --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d26f3b21..2b747922 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "8.7.0", + "version": "8.8.0", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ From f6f80c1dd1d902e2fd6bd2060fee569ddd67a07a Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 20 Aug 2019 16:47:54 -0700 Subject: [PATCH 453/480] Types. --- lib/Util.ts | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/lib/Util.ts b/lib/Util.ts index 9d5b594f..80a9ce38 100644 --- a/lib/Util.ts +++ b/lib/Util.ts @@ -1,5 +1,7 @@ // imports import axios, { AxiosResponse } from "axios" +import { AddressDetailsResult } from "bitcoin-com-rest" +import * as bcl from "bitcoincashjs-lib" import { Address } from "./Address" import { REST_URL } from "./BITBOX" import { BitcoinCash } from "./BitcoinCash" @@ -25,9 +27,9 @@ export class Util { public bitcoinCash: BitcoinCash constructor(restURL: string = REST_URL) { this.restURL = restURL - this.address = new Address() - this.ecPair = new ECPair() - this.bitcoinCash = new BitcoinCash() + this.address = new Address(restURL) + this.ecPair = new ECPair(this.address) + this.bitcoinCash = new BitcoinCash(this.address) } public async validateAddress( address: string | string[] @@ -80,14 +82,14 @@ export class Util { } } // Generate a keypair from the WIF. - const keyPair = this.ecPair.fromWIF(wif) + const keyPair: bcl.ECPair = this.ecPair.fromWIF(wif) // Generate the public address associated with the private key. - const fromAddr = this.ecPair.toCashAddress(keyPair) + const fromAddr: string = this.ecPair.toCashAddress(keyPair) // Check the BCH balance of that public address. - const details: any = await axios.get( - `${this.restURL}address/details/${fromAddr}` - ) - const balance = details.data.balance + const details = (await this.address.details( + fromAddr + )) as AddressDetailsResult + const balance: number = details.balance // If balance is zero, exit. if (balance === 0) return balance // If balanceOnly flag is passed in, exit. From df25da52f98eabdefcb936f91b9a6a54c0d82aa9 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 20 Aug 2019 17:23:22 -0700 Subject: [PATCH 454/480] Updates to sweep. --- lib/Util.ts | 62 +++++++++++++++++++++++-------------- lib/interfaces/vendors.d.ts | 20 ++++++------ 2 files changed, 49 insertions(+), 33 deletions(-) diff --git a/lib/Util.ts b/lib/Util.ts index 80a9ce38..f8e2838a 100644 --- a/lib/Util.ts +++ b/lib/Util.ts @@ -1,11 +1,12 @@ // imports import axios, { AxiosResponse } from "axios" -import { AddressDetailsResult } from "bitcoin-com-rest" +import { AddressDetailsResult, AddressUtxoResult, utxo } from "bitcoin-com-rest" import * as bcl from "bitcoincashjs-lib" import { Address } from "./Address" import { REST_URL } from "./BITBOX" import { BitcoinCash } from "./BitcoinCash" import { ECPair } from "./ECPair" +import { RawTransactions } from "./RawTransactions" import { TransactionBuilder } from "./TransactionBuilder" export interface AddressDetails { @@ -25,11 +26,13 @@ export class Util { public address: Address public ecPair: ECPair public bitcoinCash: BitcoinCash + public rawTransactions: RawTransactions constructor(restURL: string = REST_URL) { this.restURL = restURL this.address = new Address(restURL) this.ecPair = new ECPair(this.address) this.bitcoinCash = new BitcoinCash(this.address) + this.rawTransactions = new RawTransactions(restURL) } public async validateAddress( address: string | string[] @@ -83,47 +86,59 @@ export class Util { } // Generate a keypair from the WIF. const keyPair: bcl.ECPair = this.ecPair.fromWIF(wif) + // Generate the public address associated with the private key. const fromAddr: string = this.ecPair.toCashAddress(keyPair) + // Check the BCH balance of that public address. const details = (await this.address.details( fromAddr )) as AddressDetailsResult - const balance: number = details.balance - // If balance is zero, exit. - if (balance === 0) return balance - // If balanceOnly flag is passed in, exit. - if (balanceOnly) return balance + const balance: number = details.unconfirmedBalance + + // If balance is zero or balanceOnly flag is passed in, exit. + if (balance === 0 || balanceOnly) return balance + // Get UTXOs associated with public address. - const u: any = await axios.get(`${this.restURL}address/utxo/${fromAddr}`) - const utxos = u.data.utxos + const u = (await this.address.utxo(fromAddr)) as AddressUtxoResult + const utxos: utxo[] = u.utxos + // Prepare to generate a transaction to sweep funds. - const transactionBuilder = new TransactionBuilder() - let originalAmount = 0 + + const transactionBuilder: TransactionBuilder = new TransactionBuilder( + this.address.detectAddressNetwork(fromAddr) + ) + let originalAmount: number = 0 + // Add all UTXOs to the transaction inputs. - for (let i = 0; i < utxos.length; i++) { - const utxo = utxos[i] + for (let i: number = 0; i < utxos.length; i++) { + const utxo: utxo = utxos[i] originalAmount = originalAmount + utxo.satoshis transactionBuilder.addInput(utxo.txid, utxo.vout) } + if (originalAmount < 1) throw new Error(`Original amount is zero. No BCH to send.`) + // get byte count to calculate fee. paying 1.1 sat/byte - const byteCount = this.bitcoinCash.getByteCount( + const byteCount: number = this.bitcoinCash.getByteCount( { P2PKH: utxos.length }, { P2PKH: 1 } ) - const fee = Math.ceil(1.1 * byteCount) + const fee: number = Math.ceil(1.1 * byteCount) + // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - const sendAmount = originalAmount - fee + const sendAmount: number = originalAmount - fee + // add output w/ address and amount to send transactionBuilder.addOutput( this.address.toLegacyAddress(toAddr), sendAmount ) + // Loop through each input and sign it with the private key. - let redeemScript - for (var i = 0; i < utxos.length; i++) { + let redeemScript: undefined + for (let i: number = 0; i < utxos.length; i++) { const utxo = utxos[i] transactionBuilder.sign( i, @@ -133,15 +148,16 @@ export class Util { utxo.satoshis ) } + // build tx - const tx = transactionBuilder.build() + const tx: any = transactionBuilder.build() + // output rawhex - const hex = tx.toHex() + const hex: string = tx.toHex() + // Broadcast the transaction to the BCH network. - const response: any = await axios.get( - `${REST_URL}rawtransactions/sendRawTransaction/${hex}` - ) - return response.data + let txid = await this.rawTransactions.sendRawTransaction(hex) + return txid } catch (error) { if (error.response && error.response.data) throw error.response.data else throw error diff --git a/lib/interfaces/vendors.d.ts b/lib/interfaces/vendors.d.ts index b4032f68..6e3185a9 100644 --- a/lib/interfaces/vendors.d.ts +++ b/lib/interfaces/vendors.d.ts @@ -248,20 +248,20 @@ declare module "bitcoin-com-rest" { cashAddress: string } + export interface utxo { + txid: string + vout: number + amount: number + satoshis: number + height: number + confirmations: number + } + export interface AddressUtxoResult { legacyAddress: string cashAddress: string scriptPubKey: string - utxos: [ - { - txid: string - vout: number - amount: number - satoshis: number - height: number - confirmations: number - } - ] + utxos: utxo[] } export interface AddressUnconfirmedResult { From cff43d0e1c9645b2b3469d638ca4ebb14b678224 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 20 Aug 2019 17:31:17 -0700 Subject: [PATCH 455/480] type --- lib/Util.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Util.ts b/lib/Util.ts index f8e2838a..b45adef9 100644 --- a/lib/Util.ts +++ b/lib/Util.ts @@ -156,7 +156,7 @@ export class Util { const hex: string = tx.toHex() // Broadcast the transaction to the BCH network. - let txid = await this.rawTransactions.sendRawTransaction(hex) + let txid: string = await this.rawTransactions.sendRawTransaction(hex) return txid } catch (error) { if (error.response && error.response.data) throw error.response.data From 4c9ee52cb333625104f2ef20b82a7f2a67e5551e Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 20 Aug 2019 17:32:41 -0700 Subject: [PATCH 456/480] Set default arg value. --- lib/Util.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Util.ts b/lib/Util.ts index b45adef9..fee6b5fe 100644 --- a/lib/Util.ts +++ b/lib/Util.ts @@ -68,7 +68,7 @@ export class Util { // Or 0 if no funds are found, otherwise: // Returns an object containing the amount of BCH swept from address, // and the txid of the generated transaction that swept the funds. - async sweep(wif: string, toAddr: string, balanceOnly: boolean) { + async sweep(wif: string, toAddr: string, balanceOnly: boolean = false) { try { // Input validation if (!wif || wif === "") { From b3677d3c49ca1a0d2135615a4cc6b78ce0a007c3 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Tue, 20 Aug 2019 17:33:32 -0700 Subject: [PATCH 457/480] Confirm balance. --- lib/Util.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Util.ts b/lib/Util.ts index fee6b5fe..da92ff1d 100644 --- a/lib/Util.ts +++ b/lib/Util.ts @@ -94,7 +94,7 @@ export class Util { const details = (await this.address.details( fromAddr )) as AddressDetailsResult - const balance: number = details.unconfirmedBalance + const balance: number = details.balance // If balance is zero or balanceOnly flag is passed in, exit. if (balance === 0 || balanceOnly) return balance From 02f646970f8e72a6937a77db0b6185a414c245ba Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 2 Oct 2019 15:54:25 -0700 Subject: [PATCH 458/480] Commenting out Util.sweep. --- lib/Util.ts | 193 +++++++++++++++++++-------------------- package.json | 2 +- test/integration/util.js | 26 +++--- 3 files changed, 109 insertions(+), 112 deletions(-) diff --git a/lib/Util.ts b/lib/Util.ts index da92ff1d..10f794ad 100644 --- a/lib/Util.ts +++ b/lib/Util.ts @@ -1,13 +1,10 @@ // imports import axios, { AxiosResponse } from "axios" -import { AddressDetailsResult, AddressUtxoResult, utxo } from "bitcoin-com-rest" -import * as bcl from "bitcoincashjs-lib" import { Address } from "./Address" import { REST_URL } from "./BITBOX" import { BitcoinCash } from "./BitcoinCash" import { ECPair } from "./ECPair" import { RawTransactions } from "./RawTransactions" -import { TransactionBuilder } from "./TransactionBuilder" export interface AddressDetails { isvalid: boolean @@ -68,99 +65,99 @@ export class Util { // Or 0 if no funds are found, otherwise: // Returns an object containing the amount of BCH swept from address, // and the txid of the generated transaction that swept the funds. - async sweep(wif: string, toAddr: string, balanceOnly: boolean = false) { - try { - // Input validation - if (!wif || wif === "") { - throw new Error( - `wif private key must be included in Compressed WIF format.` - ) - } - // Input validation - if (!balanceOnly) { - if (!toAddr || toAddr === "") { - throw new Error( - `Address to receive swept funds must be included unless balanceOnly flag is true.` - ) - } - } - // Generate a keypair from the WIF. - const keyPair: bcl.ECPair = this.ecPair.fromWIF(wif) - - // Generate the public address associated with the private key. - const fromAddr: string = this.ecPair.toCashAddress(keyPair) - - // Check the BCH balance of that public address. - const details = (await this.address.details( - fromAddr - )) as AddressDetailsResult - const balance: number = details.balance - - // If balance is zero or balanceOnly flag is passed in, exit. - if (balance === 0 || balanceOnly) return balance - - // Get UTXOs associated with public address. - const u = (await this.address.utxo(fromAddr)) as AddressUtxoResult - const utxos: utxo[] = u.utxos - - // Prepare to generate a transaction to sweep funds. - - const transactionBuilder: TransactionBuilder = new TransactionBuilder( - this.address.detectAddressNetwork(fromAddr) - ) - let originalAmount: number = 0 - - // Add all UTXOs to the transaction inputs. - for (let i: number = 0; i < utxos.length; i++) { - const utxo: utxo = utxos[i] - originalAmount = originalAmount + utxo.satoshis - transactionBuilder.addInput(utxo.txid, utxo.vout) - } - - if (originalAmount < 1) - throw new Error(`Original amount is zero. No BCH to send.`) - - // get byte count to calculate fee. paying 1.1 sat/byte - const byteCount: number = this.bitcoinCash.getByteCount( - { P2PKH: utxos.length }, - { P2PKH: 1 } - ) - const fee: number = Math.ceil(1.1 * byteCount) - - // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - const sendAmount: number = originalAmount - fee - - // add output w/ address and amount to send - transactionBuilder.addOutput( - this.address.toLegacyAddress(toAddr), - sendAmount - ) - - // Loop through each input and sign it with the private key. - let redeemScript: undefined - for (let i: number = 0; i < utxos.length; i++) { - const utxo = utxos[i] - transactionBuilder.sign( - i, - keyPair, - redeemScript, - transactionBuilder.hashTypes.SIGHASH_ALL, - utxo.satoshis - ) - } - - // build tx - const tx: any = transactionBuilder.build() - - // output rawhex - const hex: string = tx.toHex() - - // Broadcast the transaction to the BCH network. - let txid: string = await this.rawTransactions.sendRawTransaction(hex) - return txid - } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error - } - } + // async sweep(wif: string, toAddr: string, balanceOnly: boolean = false) { + // try { + // // Input validation + // if (!wif || wif === "") { + // throw new Error( + // `wif private key must be included in Compressed WIF format.` + // ) + // } + // // Input validation + // if (!balanceOnly) { + // if (!toAddr || toAddr === "") { + // throw new Error( + // `Address to receive swept funds must be included unless balanceOnly flag is true.` + // ) + // } + // } + // // Generate a keypair from the WIF. + // const keyPair: bcl.ECPair = this.ecPair.fromWIF(wif) + + // // Generate the public address associated with the private key. + // const fromAddr: string = this.ecPair.toCashAddress(keyPair) + + // // Check the BCH balance of that public address. + // const details = (await this.address.details( + // fromAddr + // )) as AddressDetailsResult + // const balance: number = details.balance + + // // If balance is zero or balanceOnly flag is passed in, exit. + // if (balance === 0 || balanceOnly) return balance + + // // Get UTXOs associated with public address. + // const u = (await this.address.utxo(fromAddr)) as AddressUtxoResult + // const utxos: utxo[] = u.utxos + + // // Prepare to generate a transaction to sweep funds. + + // const transactionBuilder: TransactionBuilder = new TransactionBuilder( + // this.address.detectAddressNetwork(fromAddr) + // ) + // let originalAmount: number = 0 + + // // Add all UTXOs to the transaction inputs. + // for (let i: number = 0; i < utxos.length; i++) { + // const utxo: utxo = utxos[i] + // originalAmount = originalAmount + utxo.satoshis + // transactionBuilder.addInput(utxo.txid, utxo.vout) + // } + + // if (originalAmount < 1) + // throw new Error(`Original amount is zero. No BCH to send.`) + + // // get byte count to calculate fee. paying 1.1 sat/byte + // const byteCount: number = this.bitcoinCash.getByteCount( + // { P2PKH: utxos.length }, + // { P2PKH: 1 } + // ) + // const fee: number = Math.ceil(1.1 * byteCount) + + // // amount to send to receiver. It's the original amount - 1 sat/byte for tx size + // const sendAmount: number = originalAmount - fee + + // // add output w/ address and amount to send + // transactionBuilder.addOutput( + // this.address.toLegacyAddress(toAddr), + // sendAmount + // ) + + // // Loop through each input and sign it with the private key. + // let redeemScript: undefined + // for (let i: number = 0; i < utxos.length; i++) { + // const utxo = utxos[i] + // transactionBuilder.sign( + // i, + // keyPair, + // redeemScript, + // transactionBuilder.hashTypes.SIGHASH_ALL, + // utxo.satoshis + // ) + // } + + // // build tx + // const tx: any = transactionBuilder.build() + + // // output rawhex + // const hex: string = tx.toHex() + + // // Broadcast the transaction to the BCH network. + // let txid: string = await this.rawTransactions.sendRawTransaction(hex) + // return txid + // } catch (error) { + // if (error.response && error.response.data) throw error.response.data + // else throw error + // } + // } } diff --git a/package.json b/package.json index c12df039..a7ae0364 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "8.8.0", + "version": "8.9.0", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ diff --git a/test/integration/util.js b/test/integration/util.js index d7bb6da2..7239ad46 100644 --- a/test/integration/util.js +++ b/test/integration/util.js @@ -113,18 +113,18 @@ describe(`#util`, () => { }) }) - describe("#sweep", () => { - it("should return balance only", async () => { - const wif = "L287yGQj4DB4fbUKSV7DMHsyGQs1qh2E3EYJ21P88mXNKaFvmNWk" - const result = await bitbox.Util.sweep(wif, "abc123", true) - console.log(`result: ${result}`) - }) - - it("should sweep funds", async () => { - const wif = "L287yGQj4DB4fbUKSV7DMHsyGQs1qh2E3EYJ21P88mXNKaFvmNWk" - const toAddr = "bitcoincash:qqjes5sxwneywmnzqndvs6p3l9rp55a2ug0e6e6s0a" - const result = await bitbox.Util.sweep(wif, toAddr) - console.log(`result: ${result}`) - }) + // describe("#sweep", () => { + // it("should return balance only", async () => { + // const wif = "L287yGQj4DB4fbUKSV7DMHsyGQs1qh2E3EYJ21P88mXNKaFvmNWk" + // const result = await bitbox.Util.sweep(wif, "abc123", true) + // console.log(`result: ${result}`) + // }) + + // it("should sweep funds", async () => { + // const wif = "L287yGQj4DB4fbUKSV7DMHsyGQs1qh2E3EYJ21P88mXNKaFvmNWk" + // const toAddr = "bitcoincash:qqjes5sxwneywmnzqndvs6p3l9rp55a2ug0e6e6s0a" + // const result = await bitbox.Util.sweep(wif, toAddr) + // console.log(`result: ${result}`) + // }) }) }) From 71fd65f526fcb3d8179069d9adc250579f24bad4 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 2 Oct 2019 16:07:15 -0700 Subject: [PATCH 459/480] Update addy. --- test/integration/address.js | 6 +++--- test/integration/util.js | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/test/integration/address.js b/test/integration/address.js index 61782511..0c61d1ae 100644 --- a/test/integration/address.js +++ b/test/integration/address.js @@ -120,7 +120,7 @@ describe(`#address`, () => { describe(`#utxo`, () => { it(`should GET utxos for a single address`, async () => { - const addr = "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf" + const addr = "bitcoincash:qqm8uru433pjygm7q8przw9qw9pacvmvx5cngmqmue" const result = await bitbox.Address.utxo(addr) //console.log(`result: ${JSON.stringify(result, null, 2)}`) @@ -145,12 +145,12 @@ describe(`#address`, () => { it(`should GET utxo details for an array of addresses`, async () => { const addr = [ - "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + "bitcoincash:qqm8uru433pjygm7q8przw9qw9pacvmvx5cngmqmue", "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" ] const result = await bitbox.Address.utxo(addr) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) + // console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) assert.hasAllKeys(result[0], [ diff --git a/test/integration/util.js b/test/integration/util.js index 7239ad46..a0a9f407 100644 --- a/test/integration/util.js +++ b/test/integration/util.js @@ -126,5 +126,5 @@ describe(`#util`, () => { // const result = await bitbox.Util.sweep(wif, toAddr) // console.log(`result: ${result}`) // }) - }) + // }) }) From 261d7ebb326739603394b2a8c35cdbe807010224 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 2 Oct 2019 16:57:54 -0700 Subject: [PATCH 460/480] v --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d26f3b21..47107076 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "8.7.0", + "version": "8.10.0", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ From 5d504a8e349360b87ee34f3140b6539e82bf2af2 Mon Sep 17 00:00:00 2001 From: Gabriel Cardona Date: Wed, 2 Oct 2019 17:43:38 -0700 Subject: [PATCH 461/480] Cleaning up. --- lib/Util.ts | 115 --------------------------------------- package.json | 2 +- test/integration/util.js | 15 ----- 3 files changed, 1 insertion(+), 131 deletions(-) diff --git a/lib/Util.ts b/lib/Util.ts index 10f794ad..6cd975c5 100644 --- a/lib/Util.ts +++ b/lib/Util.ts @@ -1,10 +1,5 @@ -// imports import axios, { AxiosResponse } from "axios" -import { Address } from "./Address" import { REST_URL } from "./BITBOX" -import { BitcoinCash } from "./BitcoinCash" -import { ECPair } from "./ECPair" -import { RawTransactions } from "./RawTransactions" export interface AddressDetails { isvalid: boolean @@ -20,16 +15,8 @@ export interface AddressDetails { export class Util { public restURL: string - public address: Address - public ecPair: ECPair - public bitcoinCash: BitcoinCash - public rawTransactions: RawTransactions constructor(restURL: string = REST_URL) { this.restURL = restURL - this.address = new Address(restURL) - this.ecPair = new ECPair(this.address) - this.bitcoinCash = new BitcoinCash(this.address) - this.rawTransactions = new RawTransactions(restURL) } public async validateAddress( address: string | string[] @@ -58,106 +45,4 @@ export class Util { else throw error } } - // Sweep a private key in compressed WIF format and sends funds to another - // address. - // Passing in optional balanceOnly flag will return just the balance without - // actually moving the funds. - // Or 0 if no funds are found, otherwise: - // Returns an object containing the amount of BCH swept from address, - // and the txid of the generated transaction that swept the funds. - // async sweep(wif: string, toAddr: string, balanceOnly: boolean = false) { - // try { - // // Input validation - // if (!wif || wif === "") { - // throw new Error( - // `wif private key must be included in Compressed WIF format.` - // ) - // } - // // Input validation - // if (!balanceOnly) { - // if (!toAddr || toAddr === "") { - // throw new Error( - // `Address to receive swept funds must be included unless balanceOnly flag is true.` - // ) - // } - // } - // // Generate a keypair from the WIF. - // const keyPair: bcl.ECPair = this.ecPair.fromWIF(wif) - - // // Generate the public address associated with the private key. - // const fromAddr: string = this.ecPair.toCashAddress(keyPair) - - // // Check the BCH balance of that public address. - // const details = (await this.address.details( - // fromAddr - // )) as AddressDetailsResult - // const balance: number = details.balance - - // // If balance is zero or balanceOnly flag is passed in, exit. - // if (balance === 0 || balanceOnly) return balance - - // // Get UTXOs associated with public address. - // const u = (await this.address.utxo(fromAddr)) as AddressUtxoResult - // const utxos: utxo[] = u.utxos - - // // Prepare to generate a transaction to sweep funds. - - // const transactionBuilder: TransactionBuilder = new TransactionBuilder( - // this.address.detectAddressNetwork(fromAddr) - // ) - // let originalAmount: number = 0 - - // // Add all UTXOs to the transaction inputs. - // for (let i: number = 0; i < utxos.length; i++) { - // const utxo: utxo = utxos[i] - // originalAmount = originalAmount + utxo.satoshis - // transactionBuilder.addInput(utxo.txid, utxo.vout) - // } - - // if (originalAmount < 1) - // throw new Error(`Original amount is zero. No BCH to send.`) - - // // get byte count to calculate fee. paying 1.1 sat/byte - // const byteCount: number = this.bitcoinCash.getByteCount( - // { P2PKH: utxos.length }, - // { P2PKH: 1 } - // ) - // const fee: number = Math.ceil(1.1 * byteCount) - - // // amount to send to receiver. It's the original amount - 1 sat/byte for tx size - // const sendAmount: number = originalAmount - fee - - // // add output w/ address and amount to send - // transactionBuilder.addOutput( - // this.address.toLegacyAddress(toAddr), - // sendAmount - // ) - - // // Loop through each input and sign it with the private key. - // let redeemScript: undefined - // for (let i: number = 0; i < utxos.length; i++) { - // const utxo = utxos[i] - // transactionBuilder.sign( - // i, - // keyPair, - // redeemScript, - // transactionBuilder.hashTypes.SIGHASH_ALL, - // utxo.satoshis - // ) - // } - - // // build tx - // const tx: any = transactionBuilder.build() - - // // output rawhex - // const hex: string = tx.toHex() - - // // Broadcast the transaction to the BCH network. - // let txid: string = await this.rawTransactions.sendRawTransaction(hex) - // return txid - // } catch (error) { - // if (error.response && error.response.data) throw error.response.data - // else throw error - // } - // } } diff --git a/package.json b/package.json index 6368d152..ec29264d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "8.10.0", + "version": "8.10.1", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ diff --git a/test/integration/util.js b/test/integration/util.js index a0a9f407..964fe3b7 100644 --- a/test/integration/util.js +++ b/test/integration/util.js @@ -112,19 +112,4 @@ describe(`#util`, () => { } }) }) - - // describe("#sweep", () => { - // it("should return balance only", async () => { - // const wif = "L287yGQj4DB4fbUKSV7DMHsyGQs1qh2E3EYJ21P88mXNKaFvmNWk" - // const result = await bitbox.Util.sweep(wif, "abc123", true) - // console.log(`result: ${result}`) - // }) - - // it("should sweep funds", async () => { - // const wif = "L287yGQj4DB4fbUKSV7DMHsyGQs1qh2E3EYJ21P88mXNKaFvmNWk" - // const toAddr = "bitcoincash:qqjes5sxwneywmnzqndvs6p3l9rp55a2ug0e6e6s0a" - // const result = await bitbox.Util.sweep(wif, toAddr) - // console.log(`result: ${result}`) - // }) - // }) }) From 19aae6ed5142f964137065ff2f8f0eae3fbbc3af Mon Sep 17 00:00:00 2001 From: Rosco Kalis Date: Mon, 4 Nov 2019 11:31:25 -0700 Subject: [PATCH 462/480] Update examples - Fix bitbox import path - Shorten bitbox import/initialisation - Use the NETWORK parameter as an argument directly (rather than if-else) - Replace some forloops with forEach - Refactor OP_RETURN example to use async/await - Fix linting issues - Minor other changes --- .../wallet/check-balance/check-balance.js | 23 ++-- .../consolidate-dust/consolidate-dust.js | 60 ++++----- .../consolidate-utxos/consolidate-utxos.js | 60 ++++----- .../wallet/create-wallet/create-wallet.js | 24 ++-- .../wallet/get-utxos}/get-utxos.js | 21 ++- .../wallet/get-utxos}/package.json | 0 .../applications/wallet/send-WIF/send-wif.js | 44 +++--- .../applications/wallet/send-all/send-all.js | 75 +++++------ .../applications/wallet/send-bch/send-bch.js | 63 ++++----- examples/low-level/OP_RETURN/op_return.js | 126 ++++++++---------- .../address-details/address-details.js | 3 +- 11 files changed, 211 insertions(+), 288 deletions(-) rename examples/{low-level/utxo-address => applications/wallet/get-utxos}/get-utxos.js (61%) rename examples/{low-level/utxo-address => applications/wallet/get-utxos}/package.json (100%) diff --git a/examples/applications/wallet/check-balance/check-balance.js b/examples/applications/wallet/check-balance/check-balance.js index 7a56094c..5e0ecc15 100644 --- a/examples/applications/wallet/check-balance/check-balance.js +++ b/examples/applications/wallet/check-balance/check-balance.js @@ -3,27 +3,26 @@ with the create-wallet example. */ +const BITBOX = require("../../../../lib/BITBOX").BITBOX + // Set NETWORK to either testnet or mainnet const NETWORK = `testnet` -// Instantiate bitbox. -const bitboxLib = "../../../lib/BITBOX" -const BITBOX = require(bitboxLib).BITBOX - -// Instantiate SLP based on the network. -let bitbox -if (NETWORK === `mainnet`) - bitbox = new BITBOX({ restURL: `https://rest.bitcoin.com/v2/` }) -else bitbox = new BITBOX({ restURL: `https://trest.bitcoin.com/v2/` }) +// Instantiate BITBOX based on the network. +const bitbox = + NETWORK === `mainnet` + ? new BITBOX({ restURL: `https://rest.bitcoin.com/v2/` }) + : new BITBOX({ restURL: `https://trest.bitcoin.com/v2/` }) // Open the wallet generated with create-wallet. +let walletInfo try { - var walletInfo = require(`../create-wallet/wallet.json`) + walletInfo = require(`../create-wallet/wallet.json`) } catch (err) { console.log( `Could not open wallet.json. Generate a wallet with create-wallet first.` ) - process.exit(0) + process.exit(1) } // Get the balance of the wallet. @@ -36,7 +35,7 @@ async function getBalance() { console.log(balance) } catch (err) { console.error(`Error in getBalance: `, err) - throw err + process.exit(1) } } getBalance() diff --git a/examples/applications/wallet/consolidate-dust/consolidate-dust.js b/examples/applications/wallet/consolidate-dust/consolidate-dust.js index 83a44cf0..f3295482 100644 --- a/examples/applications/wallet/consolidate-dust/consolidate-dust.js +++ b/examples/applications/wallet/consolidate-dust/consolidate-dust.js @@ -3,27 +3,26 @@ a single UTXO. */ +const BITBOX = require("../../../../lib/BITBOX").BITBOX + // Set NETWORK to either testnet or mainnet const NETWORK = `testnet` -// Instantiate bitbox. -const bitboxLib = "../../../lib/BITBOX" -const BITBOX = require(bitboxLib).BITBOX - -// Instantiate SLP based on the network. -let bitbox -if (NETWORK === `mainnet`) - bitbox = new BITBOX({ restURL: `https://rest.bitcoin.com/v2/` }) -else bitbox = new BITBOX({ restURL: `https://trest.bitcoin.com/v2/` }) +// Instantiate BITBOX based on the network. +const bitbox = + NETWORK === `mainnet` + ? new BITBOX({ restURL: `https://rest.bitcoin.com/v2/` }) + : new BITBOX({ restURL: `https://trest.bitcoin.com/v2/` }) // Open the wallet generated with create-wallet. +let walletInfo try { - var walletInfo = require(`../create-wallet/wallet.json`) + walletInfo = require(`../create-wallet/wallet.json`) } catch (err) { console.log( `Could not open wallet.json. Generate a wallet with create-wallet first.` ) - process.exit(0) + process.exit(1) } const SEND_ADDR = walletInfo.cashAddress @@ -31,10 +30,7 @@ const SEND_MNEMONIC = walletInfo.mnemonic async function consolidateDust() { try { - // instance of transaction builder - if (NETWORK === `mainnet`) - var transactionBuilder = new bitbox.TransactionBuilder() - else var transactionBuilder = new bitbox.TransactionBuilder("testnet") + const transactionBuilder = new bitbox.TransactionBuilder(NETWORK) const dust = 546 let sendAmount = 0 @@ -43,26 +39,23 @@ async function consolidateDust() { const u = await bitbox.Address.utxo(SEND_ADDR) // Loop through each UTXO assigned to this address. - for (let i = 0; i < u.utxos.length; i++) { - const thisUtxo = u.utxos[i] - + u.utxos.forEach(utxo => { // If the UTXO is dust... - if (thisUtxo.satoshis <= dust) { - inputs.push(thisUtxo) - - sendAmount += thisUtxo.satoshis + if (utxo.satoshis <= dust) { + inputs.push(utxo) + sendAmount += utxo.satoshis // ..Add the utxo as an input to the transaction. - transactionBuilder.addInput(thisUtxo.txid, thisUtxo.vout) + transactionBuilder.addInput(utxo.txid, utxo.vout) } - } + }) if (inputs.length === 0) { console.log(`No dust found in the wallet address.`) - return + process.exit(0) } - // get byte count to calculate fee. paying 1.2 sat/byte + // get byte count to calculate fee. paying 1.0 sat/byte const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: inputs.length }, { P2PKH: 1 } @@ -78,7 +71,7 @@ async function consolidateDust() { console.log( `Transaction fee costs more combined dust. Can't send transaction.` ) - return + process.exit(1) } // add output w/ address and amount to send @@ -104,10 +97,11 @@ async function consolidateDust() { // build tx const tx = transactionBuilder.build() + // output rawhex const hex = tx.toHex() console.log(`TX hex: ${hex}`) - console.log(` `) + console.log() // Broadcast transation to the network const broadcast = await bitbox.RawTransactions.sendRawTransaction([hex]) @@ -119,18 +113,12 @@ async function consolidateDust() { consolidateDust() // Generate a change address from a Mnemonic of a private key. -function changeAddrFromMnemonic(mnemonic) { - // root seed buffer +function changeAddrFromMnemonic(mnemonic, network) { const rootSeed = bitbox.Mnemonic.toSeed(mnemonic) - - // master HDNode - const masterHDNode = bitbox.HDNode.fromSeed(rootSeed, "testnet") - - // HDNode of BIP44 account + const masterHDNode = bitbox.HDNode.fromSeed(rootSeed, network) const account = bitbox.HDNode.derivePath(masterHDNode, "m/44'/145'/0'") // derive the first external change address HDNode which is going to spend utxo const change = bitbox.HDNode.derivePath(account, "0/0") - return change } diff --git a/examples/applications/wallet/consolidate-utxos/consolidate-utxos.js b/examples/applications/wallet/consolidate-utxos/consolidate-utxos.js index acb8d4ab..5edf6d40 100644 --- a/examples/applications/wallet/consolidate-utxos/consolidate-utxos.js +++ b/examples/applications/wallet/consolidate-utxos/consolidate-utxos.js @@ -2,27 +2,26 @@ Consolidate all UTXOs in an address into a single UTXO */ +const BITBOX = require("../../../../lib/BITBOX").BITBOX + // Set NETWORK to either testnet or mainnet const NETWORK = `testnet` -// Instantiate bitbox. -const bitboxLib = "../../../lib/BITBOX" -const BITBOX = require(bitboxLib).BITBOX - -// Instantiate SLP based on the network. -let bitbox -if (NETWORK === `mainnet`) - bitbox = new BITBOX({ restURL: `https://rest.bitcoin.com/v2/` }) -else bitbox = new BITBOX({ restURL: `https://trest.bitcoin.com/v2/` }) +// Instantiate BITBOX based on the network. +const bitbox = + NETWORK === `mainnet` + ? new BITBOX({ restURL: `https://rest.bitcoin.com/v2/` }) + : new BITBOX({ restURL: `https://trest.bitcoin.com/v2/` }) // Open the wallet generated with create-wallet. +let walletInfo try { - var walletInfo = require(`../create-wallet/wallet.json`) + walletInfo = require(`../create-wallet/wallet.json`) } catch (err) { console.log( `Could not open wallet.json. Generate a wallet with create-wallet first.` ) - process.exit(0) + process.exit(1) } const SEND_ADDR = walletInfo.cashAddress @@ -30,10 +29,7 @@ const SEND_MNEMONIC = walletInfo.mnemonic async function consolidateDust() { try { - // instance of transaction builder - if (NETWORK === `mainnet`) - var transactionBuilder = new bitbox.TransactionBuilder() - else var transactionBuilder = new bitbox.TransactionBuilder("testnet") + const transactionBuilder = new bitbox.TransactionBuilder(NETWORK) let sendAmount = 0 const inputs = [] @@ -41,18 +37,13 @@ async function consolidateDust() { const u = await bitbox.Address.utxo(SEND_ADDR) // Loop through each UTXO assigned to this address. - for (let i = 0; i < u.utxos.length; i++) { - const thisUtxo = u.utxos[i] - - inputs.push(thisUtxo) - - sendAmount += thisUtxo.satoshis - - // ..Add the utxo as an input to the transaction. - transactionBuilder.addInput(thisUtxo.txid, thisUtxo.vout) - } + u.utxos.forEach(utxo => { + inputs.push(utxo) + sendAmount += utxo.satoshis + transactionBuilder.addInput(utxo.txid, utxo.vout) + }) - // get byte count to calculate fee. paying 1.2 sat/byte + // get byte count to calculate fee. paying 1.0 sat/byte const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: inputs.length }, { P2PKH: 1 } @@ -68,7 +59,7 @@ async function consolidateDust() { console.log( `Transaction fee costs more combined UTXOs. Can't send transaction.` ) - return + process.exit(1) } // add output w/ address and amount to send @@ -94,10 +85,11 @@ async function consolidateDust() { // build tx const tx = transactionBuilder.build() + // output rawhex const hex = tx.toHex() - //console.log(`TX hex: ${hex}`) - console.log(` `) + console.log(`TX hex: ${hex}`) + console.log() // Broadcast transation to the network const txid = await bitbox.RawTransactions.sendRawTransaction([hex]) @@ -111,18 +103,12 @@ async function consolidateDust() { consolidateDust() // Generate a change address from a Mnemonic of a private key. -function changeAddrFromMnemonic(mnemonic) { - // root seed buffer +function changeAddrFromMnemonic(mnemonic, network) { const rootSeed = bitbox.Mnemonic.toSeed(mnemonic) - - // master HDNode - const masterHDNode = bitbox.HDNode.fromSeed(rootSeed, "testnet") - - // HDNode of BIP44 account + const masterHDNode = bitbox.HDNode.fromSeed(rootSeed, network) const account = bitbox.HDNode.derivePath(masterHDNode, "m/44'/145'/0'") // derive the first external change address HDNode which is going to spend utxo const change = bitbox.HDNode.derivePath(account, "0/0") - return change } diff --git a/examples/applications/wallet/create-wallet/create-wallet.js b/examples/applications/wallet/create-wallet/create-wallet.js index a0f49d52..770cc03f 100644 --- a/examples/applications/wallet/create-wallet/create-wallet.js +++ b/examples/applications/wallet/create-wallet/create-wallet.js @@ -3,20 +3,17 @@ will be used in future examples. */ +const fs = require("fs") +const BITBOX = require("../../../../lib/BITBOX").BITBOX + // Set NETWORK to either testnet or mainnet const NETWORK = `testnet` -// Instantiate bitbox. -const bitboxLib = "../../../lib/BITBOX" -const BITBOX = require(bitboxLib).BITBOX - -// Instantiate SLP based on the network. -let bitbox -if (NETWORK === `mainnet`) - bitbox = new BITBOX({ restURL: `https://rest.bitcoin.com/v2/` }) -else bitbox = new BITBOX({ restURL: `https://trest.bitcoin.com/v2/` }) - -const fs = require("fs") +// Instantiate BITBOX based on the network. +const bitbox = + NETWORK === `mainnet` + ? new BITBOX({ restURL: `https://rest.bitcoin.com/v2/` }) + : new BITBOX({ restURL: `https://trest.bitcoin.com/v2/` }) const lang = "english" // Set the language of the wallet. @@ -29,6 +26,7 @@ const mnemonic = bitbox.Mnemonic.generate( 128, bitbox.Mnemonic.wordLists()[lang] ) + console.log("BIP44 $BCH Wallet") outStr += "BIP44 $BCH Wallet\n" console.log(`128 bit ${lang} BIP39 Mnemonic: `, mnemonic) @@ -39,9 +37,7 @@ outObj.mnemonic = mnemonic const rootSeed = bitbox.Mnemonic.toSeed(mnemonic) // master HDNode -let masterHDNode -if (NETWORK === `mainnet`) masterHDNode = bitbox.HDNode.fromSeed(rootSeed) -else masterHDNode = bitbox.HDNode.fromSeed(rootSeed, "testnet") // Testnet +const masterHDNode = bitbox.HDNode.fromSeed(rootSeed, NETWORK) // HDNode of BIP44 account console.log(`BIP44 Account: "m/44'/145'/0'"`) diff --git a/examples/low-level/utxo-address/get-utxos.js b/examples/applications/wallet/get-utxos/get-utxos.js similarity index 61% rename from examples/low-level/utxo-address/get-utxos.js rename to examples/applications/wallet/get-utxos/get-utxos.js index 68f60b4e..23515a66 100644 --- a/examples/low-level/utxo-address/get-utxos.js +++ b/examples/applications/wallet/get-utxos/get-utxos.js @@ -3,27 +3,26 @@ with the create-wallet example. */ +const BITBOX = require("../../../../lib/BITBOX").BITBOX + // Set NETWORK to either testnet or mainnet const NETWORK = `testnet` -// Instantiate bitbox. -const bitboxLib = "../../../lib/BITBOX" -const BITBOX = require(bitboxLib).BITBOX - -// Instantiate SLP based on the network. -let bitbox -if (NETWORK === `mainnet`) - bitbox = new BITBOX({ restURL: `https://rest.bitcoin.com/v2/` }) -else bitbox = new BITBOX({ restURL: `https://trest.bitcoin.com/v2/` }) +// Instantiate BITBOX based on the network. +const bitbox = + NETWORK === `mainnet` + ? new BITBOX({ restURL: `https://rest.bitcoin.com/v2/` }) + : new BITBOX({ restURL: `https://trest.bitcoin.com/v2/` }) // Open the wallet generated with create-wallet. +let walletInfo try { - var walletInfo = require(`../../applications/wallet/create-wallet/wallet.json`) + walletInfo = require(`../create-wallet/wallet.json`) } catch (err) { console.log( `Could not open wallet.json. Generate a wallet with create-wallet first.` ) - process.exit(0) + process.exit(1) } const ADDR = walletInfo.cashAddress diff --git a/examples/low-level/utxo-address/package.json b/examples/applications/wallet/get-utxos/package.json similarity index 100% rename from examples/low-level/utxo-address/package.json rename to examples/applications/wallet/get-utxos/package.json diff --git a/examples/applications/wallet/send-WIF/send-wif.js b/examples/applications/wallet/send-WIF/send-wif.js index 301a47d4..ad10b5df 100644 --- a/examples/applications/wallet/send-WIF/send-wif.js +++ b/examples/applications/wallet/send-WIF/send-wif.js @@ -4,32 +4,32 @@ Send 1000 satoshis to RECV_ADDR. */ +const BITBOX = require("../../../../lib/BITBOX").BITBOX + // Set NETWORK to either testnet or mainnet const NETWORK = `testnet` -// Replace the address below with the address you want to send the BCH to. -let RECV_ADDR = `` -const SATOSHIS_TO_SEND = 1000 - -// Instantiate bitbox. -const bitboxLib = "../../../lib/BITBOX" -const BITBOX = require(bitboxLib).BITBOX -// Instantiate SLP based on the network. -let bitbox -if (NETWORK === `mainnet`) - bitbox = new BITBOX({ restURL: `https://rest.bitcoin.com/v2/` }) -else bitbox = new BITBOX({ restURL: `https://trest.bitcoin.com/v2/` }) +// Instantiate BITBOX based on the network. +const bitbox = + NETWORK === `mainnet` + ? new BITBOX({ restURL: `https://rest.bitcoin.com/v2/` }) + : new BITBOX({ restURL: `https://trest.bitcoin.com/v2/` }) // Open the wallet generated with create-wallet. +let walletInfo try { - var walletInfo = require(`../create-wallet/wallet.json`) + walletInfo = require(`../create-wallet/wallet.json`) } catch (err) { console.log( `Could not open wallet.json. Generate a wallet with create-wallet first.` ) - process.exit(0) + process.exit(1) } +// Replace the address below with the address you want to send the BCH to. +let RECV_ADDR = `` +const SATOSHIS_TO_SEND = 1000 + const SEND_ADDR = walletInfo.cashAddress const SEND_WIF = walletInfo.WIF @@ -58,14 +58,10 @@ async function sendBch() { console.log(`Balance of recieving address ${RECV_ADDR} is ${balance2} BCH.`) const u = await bitbox.Address.utxo(SEND_ADDR) - //console.log(`u: ${JSON.stringify(u, null, 2)}`) const utxo = findBiggestUtxo(u.utxos) console.log(`utxo: ${JSON.stringify(utxo, null, 2)}`) - // instance of transaction builder - if (NETWORK === `mainnet`) - var transactionBuilder = new bitbox.TransactionBuilder() - else var transactionBuilder = new bitbox.TransactionBuilder("testnet") + const transactionBuilder = new bitbox.TransactionBuilder(NETWORK) const satoshisToSend = SATOSHIS_TO_SEND const originalAmount = utxo.satoshis @@ -110,7 +106,7 @@ async function sendBch() { // output rawhex const hex = tx.toHex() console.log(`TX hex: ${hex}`) - console.log(` `) + console.log() // Broadcast transation to the network const txidStr = await bitbox.RawTransactions.sendRawTransaction([hex]) @@ -126,11 +122,9 @@ sendBch() // Get the balance in BCH of a BCH address. async function getBCHBalance(addr, verbose) { try { - const result = await bitbox.Address.details(addr) - - if (verbose) console.log(result) + const bchBalance = await bitbox.Address.details(addr) - const bchBalance = result + if (verbose) console.log(bchBalance) return bchBalance.balance } catch (err) { @@ -145,7 +139,7 @@ function findBiggestUtxo(utxos) { let largestAmount = 0 let largestIndex = 0 - for (var i = 0; i < utxos.length; i++) { + for (let i = 0; i < utxos.length; i++) { const thisUtxo = utxos[i] if (thisUtxo.satoshis > largestAmount) { diff --git a/examples/applications/wallet/send-all/send-all.js b/examples/applications/wallet/send-all/send-all.js index 9f25f063..6e0ffc9a 100644 --- a/examples/applications/wallet/send-all/send-all.js +++ b/examples/applications/wallet/send-all/send-all.js @@ -2,41 +2,40 @@ Send all BCH from one address to another. Similar to consolidating UTXOs. */ +const BITBOX = require("../../../../lib/BITBOX").BITBOX + // Set NETWORK to either testnet or mainnet const NETWORK = `testnet` -// Set the address below to the address that should recieve the BCH. -const RECV_ADDR = `bchtest:qqmd9unmhkpx4pkmr6fkrr8rm6y77vckjvqe8aey35` - -// Instantiate bitbox. -const bitboxLib = "../../../lib/BITBOX" -const BITBOX = require(bitboxLib).BITBOX - -// Instantiate SLP based on the network. -let bitbox -if (NETWORK === `mainnet`) - bitbox = new BITBOX({ restURL: `https://rest.bitcoin.com/v2/` }) -else bitbox = new BITBOX({ restURL: `https://trest.bitcoin.com/v2/` }) +// Instantiate BITBOX based on the network. +const bitbox = + NETWORK === `mainnet` + ? new BITBOX({ restURL: `https://rest.bitcoin.com/v2/` }) + : new BITBOX({ restURL: `https://trest.bitcoin.com/v2/` }) // Open the wallet generated with create-wallet. +let walletInfo try { - var walletInfo = require(`../create-wallet/wallet.json`) + walletInfo = require(`../create-wallet/wallet.json`) } catch (err) { console.log( `Could not open wallet.json. Generate a wallet with create-wallet first.` ) - process.exit(0) + process.exit(1) } +// Set the address below to the address that should receive the BCH. +let RECV_ADDR = `` + const SEND_ADDR = walletInfo.cashAddress const SEND_MNEMONIC = walletInfo.mnemonic -async function consolidateDust() { +async function sendAll() { try { - // instance of transaction builder - if (NETWORK === `mainnet`) - var transactionBuilder = new bitbox.TransactionBuilder() - else var transactionBuilder = new bitbox.TransactionBuilder("testnet") + // Send the money back to yourself if the users hasn't specified a destination. + if (RECV_ADDR === "") RECV_ADDR = SEND_ADDR + + const transactionBuilder = new bitbox.TransactionBuilder(NETWORK) let sendAmount = 0 const inputs = [] @@ -44,18 +43,13 @@ async function consolidateDust() { const u = await bitbox.Address.utxo(SEND_ADDR) // Loop through each UTXO assigned to this address. - for (let i = 0; i < u.utxos.length; i++) { - const thisUtxo = u.utxos[i] - - inputs.push(thisUtxo) - - sendAmount += thisUtxo.satoshis - - // ..Add the utxo as an input to the transaction. - transactionBuilder.addInput(thisUtxo.txid, thisUtxo.vout) - } + u.utxos.forEach(utxo => { + inputs.push(utxo) + sendAmount += utxo.satoshis + transactionBuilder.addInput(utxo.txid, utxo.vout) + }) - // get byte count to calculate fee. paying 1.2 sat/byte + // get byte count to calculate fee. paying 1.0 sat/byte const byteCount = bitbox.BitcoinCash.getByteCount( { P2PKH: inputs.length }, { P2PKH: 1 } @@ -71,7 +65,7 @@ async function consolidateDust() { console.log( `Transaction fee costs more combined UTXOs. Can't send transaction.` ) - return + process.exit(1) } // add output w/ address and amount to send @@ -97,10 +91,11 @@ async function consolidateDust() { // build tx const tx = transactionBuilder.build() + // output rawhex const hex = tx.toHex() - //console.log(`TX hex: ${hex}`) - console.log(` `) + console.log(`TX hex: ${hex}`) + console.log() // Broadcast transation to the network const txid = await bitbox.RawTransactions.sendRawTransaction([hex]) @@ -111,23 +106,15 @@ async function consolidateDust() { console.log(`error: `, err) } } -consolidateDust() +sendAll() // Generate a change address from a Mnemonic of a private key. -function changeAddrFromMnemonic(mnemonic) { - // root seed buffer +function changeAddrFromMnemonic(mnemonic, network) { const rootSeed = bitbox.Mnemonic.toSeed(mnemonic) - - // master HDNode - let masterHDNode - if (NETWORK === `mainnet`) masterHDNode = bitbox.HDNode.fromSeed(rootSeed) - else masterHDNode = bitbox.HDNode.fromSeed(rootSeed, "testnet") - - // HDNode of BIP44 account + const masterHDNode = bitbox.HDNode.fromSeed(rootSeed, network) const account = bitbox.HDNode.derivePath(masterHDNode, "m/44'/145'/0'") // derive the first external change address HDNode which is going to spend utxo const change = bitbox.HDNode.derivePath(account, "0/0") - return change } diff --git a/examples/applications/wallet/send-bch/send-bch.js b/examples/applications/wallet/send-bch/send-bch.js index dc449473..906620f0 100644 --- a/examples/applications/wallet/send-bch/send-bch.js +++ b/examples/applications/wallet/send-bch/send-bch.js @@ -2,37 +2,40 @@ Send 1000 satoshis to RECV_ADDR. */ +const BITBOX = require("../../../../lib/BITBOX").BITBOX + // Set NETWORK to either testnet or mainnet const NETWORK = `testnet` -// Replace the address below with the address you want to send the BCH to. -const RECV_ADDR = `` -const SATOSHIS_TO_SEND = 1000 -// Instantiate bitbox. -const bitboxLib = "../../../lib/BITBOX" -const BITBOX = require(bitboxLib).BITBOX - -// Instantiate SLP based on the network. -let bitbox -if (NETWORK === `mainnet`) - bitbox = new BITBOX({ restURL: `https://rest.bitcoin.com/v2/` }) -else bitbox = new BITBOX({ restURL: `https://trest.bitcoin.com/v2/` }) +// Instantiate BITBOX based on the network. +const bitbox = + NETWORK === `mainnet` + ? new BITBOX({ restURL: `https://rest.bitcoin.com/v2/` }) + : new BITBOX({ restURL: `https://trest.bitcoin.com/v2/` }) // Open the wallet generated with create-wallet. +let walletInfo try { - var walletInfo = require(`../create-wallet/wallet.json`) + walletInfo = require(`../create-wallet/wallet.json`) } catch (err) { console.log( `Could not open wallet.json. Generate a wallet with create-wallet first.` ) - process.exit(0) + process.exit(1) } +// Replace the address below with the address you want to send the BCH to. +let RECV_ADDR = `` +const SATOSHIS_TO_SEND = 1000 + const SEND_ADDR = walletInfo.cashAddress const SEND_MNEMONIC = walletInfo.mnemonic async function sendBch() { try { + // Send the money back to yourself if the users hasn't specified a destination. + if (RECV_ADDR === "") RECV_ADDR = SEND_ADDR + // Get the balance of the sending address. const balance = await getBCHBalance(SEND_ADDR, false) console.log(`balance: ${JSON.stringify(balance, null, 2)}`) @@ -41,7 +44,7 @@ async function sendBch() { // Exit if the balance is zero. if (balance <= 0.0) { console.log(`Balance of sending address is zero. Exiting.`) - process.exit(0) + process.exit(1) } const SEND_ADDR_LEGACY = bitbox.Address.toLegacyAddress(SEND_ADDR) @@ -50,17 +53,13 @@ async function sendBch() { console.log(`Receiver Legacy Address: ${RECV_ADDR_LEGACY}`) const balance2 = await getBCHBalance(RECV_ADDR, false) - console.log(`Balance of recieving address ${RECV_ADDR} is ${balance2} BCH.`) + console.log(`Balance of receiving address ${RECV_ADDR} is ${balance2} BCH.`) const u = await bitbox.Address.utxo(SEND_ADDR) - //console.log(`u: ${JSON.stringify(u, null, 2)}`) const utxo = findBiggestUtxo(u.utxos) console.log(`utxo: ${JSON.stringify(utxo, null, 2)}`) - // instance of transaction builder - if (NETWORK === `mainnet`) - var transactionBuilder = new bitbox.TransactionBuilder() - else var transactionBuilder = new bitbox.TransactionBuilder("testnet") + const transactionBuilder = new bitbox.TransactionBuilder(NETWORK) const satoshisToSend = SATOSHIS_TO_SEND const originalAmount = utxo.satoshis @@ -109,7 +108,7 @@ async function sendBch() { // output rawhex const hex = tx.toHex() console.log(`TX hex: ${hex}`) - console.log(` `) + console.log() // Broadcast transation to the network const txidStr = await bitbox.RawTransactions.sendRawTransaction([hex]) @@ -123,32 +122,22 @@ async function sendBch() { sendBch() // Generate a change address from a Mnemonic of a private key. -function changeAddrFromMnemonic(mnemonic) { - // root seed buffer +function changeAddrFromMnemonic(mnemonic, network) { const rootSeed = bitbox.Mnemonic.toSeed(mnemonic) - - // master HDNode - let masterHDNode - if (NETWORK === `mainnet`) masterHDNode = bitbox.HDNode.fromSeed(rootSeed) - else masterHDNode = bitbox.HDNode.fromSeed(rootSeed, "testnet") - - // HDNode of BIP44 account + const masterHDNode = bitbox.HDNode.fromSeed(rootSeed, network) const account = bitbox.HDNode.derivePath(masterHDNode, "m/44'/145'/0'") // derive the first external change address HDNode which is going to spend utxo const change = bitbox.HDNode.derivePath(account, "0/0") - return change } // Get the balance in BCH of a BCH address. async function getBCHBalance(addr, verbose) { try { - const result = await bitbox.Address.details(addr) - - if (verbose) console.log(result) + const bchBalance = await bitbox.Address.details(addr) - const bchBalance = result + if (verbose) console.log(bchBalance) return bchBalance.balance } catch (err) { @@ -163,7 +152,7 @@ function findBiggestUtxo(utxos) { let largestAmount = 0 let largestIndex = 0 - for (var i = 0; i < utxos.length; i++) { + for (let i = 0; i < utxos.length; i++) { const thisUtxo = utxos[i] if (thisUtxo.satoshis > largestAmount) { diff --git a/examples/low-level/OP_RETURN/op_return.js b/examples/low-level/OP_RETURN/op_return.js index 0068e739..c10fddd9 100644 --- a/examples/low-level/OP_RETURN/op_return.js +++ b/examples/low-level/OP_RETURN/op_return.js @@ -3,8 +3,7 @@ */ // Instantiate bitbox. -const bitboxLib = "../../../lib/BITBOX" -const BITBOX = require(bitboxLib).BITBOX +const BITBOX = require("../../../lib/BITBOX").BITBOX const bitbox = new BITBOX() // Choose a transaction to parse for OP_Return @@ -13,80 +12,67 @@ const bitbox = new BITBOX() const txid = `5b81b332c8fa5a2b2e77bb928bd18072af4485f02a7325d346f1f28cf3d4a6bb` // Short msg example (<20 char) -//const txid = `d887132e3408f8d10e9b82bec447ca12e485cb6160af88d9b14f22ba865f6793` +// const txid = `d887132e3408f8d10e9b82bec447ca12e485cb6160af88d9b14f22ba865f6793` -function parseOP_RETURN(txid) { +async function parseOP_RETURN(txid) { console.log(`Parsing transaction ${txid} for messages in OP_RETURN...`) console.log(``) // Get transaction details from txid - bitbox.Transaction.details(txid).then( - tx => { - // You may wish to log this tx info to the console to inspect and plan your parsing function - // console.log(tx) - - // Begin parsing transaction - - // Initialize an array to store any OP_Return messages - let messages = [] - - // Iterate over outputs looking for OP_Return outputs - - for (let i=0; i < tx.vout.length; i++) { - - // If this is an OP_Return output - if (typeof tx.vout[i].scriptPubKey.addresses === 'undefined') { - - let message = '' - let fromAsm = '' - let decoded = '' - - //Pretty print your raw transaction data to the console - //console.log(JSON.stringify(tx, null, 2)) - - try { - // Decode the OP_Return message - message = tx.vout[i].scriptPubKey.asm - - // If length is <= 20 characters, translate from hex - if (message.length <= 20) { - message = tx.vout[i].scriptPubKey.hex - message = message.substring(4) - message = "OP_RETURN " + message - } - - fromAsm = bitbox.Script.fromASM(message) - decoded = bitbox.Script.decode(fromAsm) - message = decoded[1].toString('ascii') - - // Add this decoded OP_Return message to an array, in case multiple outputs have OP_Return messages - messages.push(message) - } - catch(err) { - console.log(`Error in parsing OP_RETURN:`) - console.log(err) - } - } - } - - if (messages.length === 1) { - console.log(`Message found!`) - console.log(``) - console.log(`Message: ${messages[0]}`) - } - else { - console.log(`${messages.length} messages found!`) - console.log(``) - for (let j=0; j < messages.length; j++) { - console.log(`Message ${j+1} of ${messages.length+1}: ${messages[j]}`) - } - } - }, - err => { - console.log('Error in bitbox.Transaction.details(${txid}):') + let tx + try { + tx = await bitbox.Transaction.details(txid) + } catch (err) { + console.log(`Error in bitbox.Transaction.details(${txid}):`) + console.log(err) + process.exit(1) + } + + // You may wish to log this tx info to the console to inspect and plan your parsing function + // console.log(tx) + + // Initialize an array to store any OP_Return messages + const messages = [] + + // Iterate over outputs looking for OP_Return outputs + tx.vout.forEach(vout => { + // Skip if this is not an OP_Return output + if (typeof vout.scriptPubKey.addresses !== `undefined`) return + + // Pretty print your raw transaction data to the console + // console.log(JSON.stringify(tx, null, 2)) + + try { + // Decode the OP_Return message + let message = vout.scriptPubKey.asm + + // If length is <= 20 characters, translate from hex + if (message.length <= 20) + message = `OP_RETURN ${vout.scriptPubKey.hex.substring(4)}` + + const fromAsm = bitbox.Script.fromASM(message) + const decoded = bitbox.Script.decode(fromAsm) + message = decoded[1].toString(`ascii`) + + // Add this decoded OP_Return message to an array, in case multiple outputs have OP_Return messages + messages.push(message) + } catch (err) { + console.log(`Error in parsing OP_RETURN:`) console.log(err) + process.exit(1) } - ) + }) + + if (messages.length === 1) { + console.log(`Message found!`) + console.log() + console.log(`Message: ${messages[0]}`) + } else { + console.log(`${messages.length} messages found!`) + console.log() + for (let j = 0; j < messages.length; j++) + console.log(`Message ${j + 1} of ${messages.length + 1}: ${messages[j]}`) + } } -parseOP_RETURN(txid) \ No newline at end of file +parseOP_RETURN(txid) diff --git a/examples/low-level/address-details/address-details.js b/examples/low-level/address-details/address-details.js index 82ec7438..5d9524a6 100644 --- a/examples/low-level/address-details/address-details.js +++ b/examples/low-level/address-details/address-details.js @@ -4,8 +4,7 @@ */ // Instantiate bitbox. -const bitboxLib = "../../../lib/BITBOX" -const BITBOX = require(bitboxLib).BITBOX +const BITBOX = require("../../../lib/BITBOX").BITBOX const bitbox = new BITBOX({ restURL: "https://trest.bitcoin.com/v2/" }) const ADDR = `bchtest:qr45kxqda7yw8atztvkc4ckqnrlhmp0kvsep4p345q` From 056fcc274848e250cbcad334042265b2dfdf8c6a Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Mon, 18 Nov 2019 12:17:19 -0800 Subject: [PATCH 463/480] Fixed integration tests --- package.json | 2 +- test/integration/address.js | 12 ++++--- test/integration/other/README.md | 8 +++++ test/integration/transaction.js | 2 +- test/integration/util.js | 6 +--- test/integration/z9-rate-limits.js | 53 ------------------------------ 6 files changed, 19 insertions(+), 64 deletions(-) create mode 100644 test/integration/other/README.md delete mode 100644 test/integration/z9-rate-limits.js diff --git a/package.json b/package.json index ec29264d..d581950f 100644 --- a/package.json +++ b/package.json @@ -78,7 +78,7 @@ "node-mocks-http": "^1.7.0", "nyc": "^14.1.1", "prettier": "^1.14.2", - "semantic-release": "^15.13.3", + "semantic-release": "^15.13.31", "sinon": "^4.5.0", "source-map-support": "^0.5.12", "ts-node": "^8.1.0", diff --git a/test/integration/address.js b/test/integration/address.js index 0c61d1ae..2536f17c 100644 --- a/test/integration/address.js +++ b/test/integration/address.js @@ -130,7 +130,8 @@ describe(`#address`, () => { "legacyAddress", "cashAddress", "scriptPubKey", - "slpAddress" + "slpAddress", + "asm" ]) assert.isArray(result.utxos) assert.hasAnyKeys(result.utxos[0], [ @@ -158,7 +159,8 @@ describe(`#address`, () => { "legacyAddress", "cashAddress", "scriptPubKey", - "slpAddress" + "slpAddress", + "asm" ]) assert.isArray(result[0].utxos) assert.hasAnyKeys(result[0].utxos[0], [ @@ -215,7 +217,8 @@ describe(`#address`, () => { "legacyAddress", "cashAddress", "scriptPubKey", - "slpAddress" + "slpAddress", + "asm" ]) assert.isArray(result.utxos) }) @@ -235,7 +238,8 @@ describe(`#address`, () => { "legacyAddress", "cashAddress", "scriptPubKey", - "slpAddress" + "slpAddress", + "asm" ]) assert.isArray(result[0].utxos) }) diff --git a/test/integration/other/README.md b/test/integration/other/README.md new file mode 100644 index 00000000..5c8068af --- /dev/null +++ b/test/integration/other/README.md @@ -0,0 +1,8 @@ +# Other Integration Tests + +This directory holds stand-alone integration tests that should not be part of +the integration test suite. + +An example of a test that fits this criteria are rate limit tests. Rate limit +tests are complex, require a solid internet connection, and can easily disrupt +other tests. For those reasons, it is better to run them on their own. diff --git a/test/integration/transaction.js b/test/integration/transaction.js index d36476f3..94b086b9 100644 --- a/test/integration/transaction.js +++ b/test/integration/transaction.js @@ -87,7 +87,7 @@ describe(`#Transaction`, () => { // console.log(`result: ${util.inspect(result)}`) assert.equal(false, false, "Unexpected result!") } catch (err) { - console.log(`err: ${util.inspect(err)}`) + // console.log(`err: ${util.inspect(err)}`) assert.hasAnyKeys(err, ["error"]) assert.include(err.error, "Array too large") diff --git a/test/integration/util.js b/test/integration/util.js index 964fe3b7..e2af5e2c 100644 --- a/test/integration/util.js +++ b/test/integration/util.js @@ -44,7 +44,7 @@ describe(`#util`, () => { assert.equal(result.isvalid, false) }) - it(`should return validate valid address`, async () => { + it(`should return a valid address`, async () => { const address = `bitcoincash:qp4k8fjtgunhdr7yq30ha4peuwupzan2vcnwrmpy0z` const result = await bitbox.Util.validateAddress(address) @@ -54,8 +54,6 @@ describe(`#util`, () => { "isvalid", "address", "scriptPubKey", - "ismine", - "iswatchonly", "isscript" ]) assert.equal(result.isvalid, true) @@ -75,8 +73,6 @@ describe(`#util`, () => { "isvalid", "address", "scriptPubKey", - "ismine", - "iswatchonly", "isscript" ]) }) diff --git a/test/integration/z9-rate-limits.js b/test/integration/z9-rate-limits.js deleted file mode 100644 index 6e9c4653..00000000 --- a/test/integration/z9-rate-limits.js +++ /dev/null @@ -1,53 +0,0 @@ -/* - This test file should be run last as it will trigger the rate limits in - rest.bitcoin.com and no more calls to rest will be possible for about 1 minute - after this test is run. -*/ - -const chai = require("chai") -const assert = chai.assert - -const BITBOX = require("../../lib/BITBOX").BITBOX -let bitbox = new BITBOX() - -if (process.env.SERVER === "local") - bitbox = new BITBOX({ restURL: "http://localhost:3000/v2/" }) -if (process.env.SERVER === "stage") - bitbox = new BITBOX({ restURL: "https://rest.btctest.net/v2/" }) - -// Inspect utility used for debugging. -const util = require("util") -util.inspect.defaultOptions = { - showHidden: true, - colors: true, - depth: 3 -} - -describe("#rate-limits", () => { - it("should throw an error when RPM rate limits are triggered", async () => { - try { - const promises = [] - for (let i = 0; i < 300; i++) { - const promise = bitbox.Control.getInfo() - promises.push(promise) - } - - const temp = await Promise.all(promises) - - // console.log(`temp: ${util.inspect(temp)}`) - assert.equal(true, false, "Unexpected result!") - } catch (err) { - // Expected error response - if (err.error) { - assert.hasAnyKeys(err, ["error"]) - assert.include(err.error, "Too many requests") - - // Handle other types of error response. - } else { - console.log(`Unexpected error:`) - // console.log(`err: ${util.inspect(err)}`) - assert.equal(true, false, "Unexpected error") - } - } - }) -}) From c158bcb7c64d20db2d6e3630f1d1e90f3968b6a8 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Mon, 18 Nov 2019 12:47:57 -0800 Subject: [PATCH 464/480] Fixed gettxout and added unit tests --- lib/Blockchain.ts | 13 ++++++- package.json | 2 +- test/unit/Blockchain.ts | 55 ++++++++++++++++++++++++++++-- test/unit/mocks/blockchain-mock.js | 18 +++++++++- 4 files changed, 83 insertions(+), 5 deletions(-) diff --git a/lib/Blockchain.ts b/lib/Blockchain.ts index 5589e7ad..386cddc2 100644 --- a/lib/Blockchain.ts +++ b/lib/Blockchain.ts @@ -239,17 +239,28 @@ export class Blockchain { } } + // Returns details about an unspent transaction output. public async getTxOut( txid: string, n: any, include_mempool: boolean = true ): Promise { + + // Input validation + if (typeof txid !== "string" || txid.length !== 64) + throw new Error(`txid needs to be a proper transaction ID`) + + if (isNaN(n)) throw new Error(`n must be an integer`) + + if (typeof include_mempool !== "boolean") + throw new Error(`include_mempool input must be of type boolean`) + // TODO confirm this works try { const response: AxiosResponse = await axios.get( `${ this.restURL - }blockchain/getTxOut/${txid}/n?include_mempool=${include_mempool}` + }blockchain/getTxOut/${txid}/${n}?include_mempool=${include_mempool}` ) return response.data } catch (error) { diff --git a/package.json b/package.json index d581950f..ee99c4ff 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "scripts": { "test": "npm run test:unit", "test:no-build": "nyc mocha test/unit --timeout 60000 --exit", - "test:unit": "tsc && nyc mocha test/unit --timeout 60000 --exit", + "test:unit": "tsc && nyc mocha test/unit/Blockchain.js --timeout 60000 --exit", "test:integration": "TEST=integration nyc --reporter=text mocha --timeout 30000 test/integration --exit", "test:integration:local": "TEST=integration SERVER=local nyc --reporter=text mocha --timeout 30000 test/integration --exit", "test:integration:stage": "TEST=integration SERVER=stage nyc --reporter=text mocha --timeout 30000 test/integration --exit", diff --git a/test/unit/Blockchain.ts b/test/unit/Blockchain.ts index dcb9f465..96e0cd80 100644 --- a/test/unit/Blockchain.ts +++ b/test/unit/Blockchain.ts @@ -8,6 +8,8 @@ import { REST_URL } from "../../lib/BITBOX" import * as util from "util" import { BlockHeaderResult } from "bitcoin-com-rest" +const mockData = require("./mocks/blockchain-mock") + // consts const bitbox: BITBOX = new BITBOX() const assert: Chai.AssertStatic = chai.assert @@ -347,14 +349,13 @@ describe("#Blockchain", (): void => { }) describe("#getTxOut", (): void => { - // TODO finish this test let sandbox: any beforeEach(() => (sandbox = sinon.sandbox.create())) afterEach(() => sandbox.restore()) const data = { result: {} } - +/* it("should get TODO", done => { const resolved = new Promise(r => r({ data: data })) sandbox.stub(axios, "get").returns(resolved) @@ -369,6 +370,56 @@ describe("#Blockchain", (): void => { }) .then(done, done) }) +*/ + it("should throw an error for improper txid.", async () => { + try { + await bitbox.Blockchain.getTxOut("badtxid", 0) + } catch (err) { + assert.include(err.message, "txid needs to be a proper transaction ID") + } + }) + + it("should throw an error if vout is not an integer.", async () => { + try { + await bitbox.Blockchain.getTxOut( + "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", 'a' + ) + } catch (err) { + assert.include(err.message, "n must be an integer") + } + }) + + it("should get information on an unspent tx", async () => { + sandbox.stub(axios, "get").resolves({ data: mockData.txOutUnspent }) + + const result = await bitbox.Blockchain.getTxOut( + "62a3ea958a463a372bc0caf2c374a7f60be9c624be63a0db8db78f05809df6d8", + 0, + true + ) + // console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAllKeys(result, [ + "bestblock", + "confirmations", + "value", + "scriptPubKey", + "coinbase" + ]) + }) + + // it("should get information on a spent tx", async () => { + // sandbox.stub(axios, "get").resolves({ data: null }) + + // const result = await bitbox.Blockchain.getTxOut( + // "87380e52d151856b23173d6d8a3db01b984c6b50f77ea045a5a1cf4f54497871", + // 0, + // true + // ) + // // console.log(`result: ${JSON.stringify(result, null, 2)}`) + + // assert2.equal(result, null) + // }) }) describe("#preciousBlock", (): void => { diff --git a/test/unit/mocks/blockchain-mock.js b/test/unit/mocks/blockchain-mock.js index 1e73c0b4..17b7c43a 100644 --- a/test/unit/mocks/blockchain-mock.js +++ b/test/unit/mocks/blockchain-mock.js @@ -31,5 +31,21 @@ module.exports = { "0000002086a4a3161f9ba2174883ec0b93acceac3b2f37b36ed1f90000000000000000009cb02406d1094ecf3e0b4c0ca7c585125e721147c39daf6b48c90b512741e13a12333e5cb38705180f441d8c7100000008fee9b60f1edb57e5712839186277ed39e0a004a32be9096ee47472efde8eae62f789f9d7a9f59d0ea7093dea1e0c65ff0b953f1d8cf3d47f92e732ca0295f603c272d5f4a63509f7a887f2549d78af7444aa0ecbb4f66d9cbe13bc6a89f59e05a199df8325d490818ffefe6b6321d32d7496a68580459836c0183f89082fc1b491cc91b23ecdcaa4c347bf599a62904d61f1c15b400ebbd5c90149010c139d9c1e31b774b796977393a238080ab477e1d240d0c4f155d36f519668f49bae6bd8cd5b8e40522edf76faa09cca6188d83ff13af6967cc6a569d1a5e9aeb1fdb7f531ddd2d0cbb81879741d5f38166ac1932136264366a4065cc96a42e41f96294f02df01", verifiedProof: - "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7", + + txOutUnspent: { + bestblock: + "000000000000000000b441e02f5b1b9f5b3def961047afcc6f2f5636c952705e", + confirmations: 2, + value: 0.00006, + scriptPubKey: { + asm: + "OP_DUP OP_HASH160 d19fae66b685f5c3633c0db0600313918347225f OP_EQUALVERIFY OP_CHECKSIG", + hex: "76a914d19fae66b685f5c3633c0db0600313918347225f88ac", + reqSigs: 1, + type: "pubkeyhash", + addresses: ["bitcoincash:qrgeltnxk6zltsmr8sxmqcqrzwgcx3eztusrwgf0x3"] + }, + coinbase: false + } } From 8b5ed526ab9d100270d04889055767e260061327 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Mon, 18 Nov 2019 13:46:36 -0800 Subject: [PATCH 465/480] fix(getTxOut): Fixed getTxOut for checking utxos --- lib/Blockchain.ts | 222 ++++++++++++++++----------------- package.json | 2 +- test/integration/blockchain.js | 37 +++++- test/unit/Blockchain.ts | 15 --- 4 files changed, 143 insertions(+), 133 deletions(-) diff --git a/lib/Blockchain.ts b/lib/Blockchain.ts index 386cddc2..a5719465 100644 --- a/lib/Blockchain.ts +++ b/lib/Blockchain.ts @@ -3,7 +3,7 @@ - Add blockhash functionality back into getTxOutProof */ -import axios, { AxiosRequestConfig, AxiosResponse } from "axios" +import axios, { AxiosRequestConfig, AxiosResponse } from "axios"; import { BlockchainInfoResult, BlockDetailsResult, @@ -12,24 +12,24 @@ import { MempoolEntryResult, MempoolInfoResult, TxOutResult -} from "bitcoin-com-rest" -import { REST_URL } from "./BITBOX" +} from "bitcoin-com-rest"; +import { REST_URL } from "./BITBOX"; export class Blockchain { - public restURL: string + public restURL: string; constructor(restURL: string = REST_URL) { - this.restURL = restURL + this.restURL = restURL; } public async getBestBlockHash(): Promise { try { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getBestBlockHash` - ) - return response.data + ); + return response.data; } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error + if (error.response && error.response.data) throw error.response.data; + else throw error; } } @@ -40,11 +40,11 @@ export class Blockchain { try { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getBlock/${blockhash}?verbose=${verbose}` - ) - return response.data + ); + return response.data; } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error + if (error.response && error.response.data) throw error.response.data; + else throw error; } } @@ -52,11 +52,11 @@ export class Blockchain { try { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getBlockchainInfo` - ) - return response.data + ); + return response.data; } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error + if (error.response && error.response.data) throw error.response.data; + else throw error; } } @@ -64,11 +64,11 @@ export class Blockchain { try { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getBlockCount` - ) - return response.data + ); + return response.data; } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error + if (error.response && error.response.data) throw error.response.data; + else throw error; } } @@ -78,11 +78,11 @@ export class Blockchain { try { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getBlockHash/${height}` - ) - return response.data + ); + return response.data; } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error + if (error.response && error.response.data) throw error.response.data; + else throw error; } } @@ -95,9 +95,9 @@ export class Blockchain { if (typeof hash === "string") { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getBlockHeader/${hash}?verbose=${verbose}` - ) + ); - return response.data + return response.data; // Handle array of hashes. } else if (Array.isArray(hash)) { @@ -108,15 +108,15 @@ export class Blockchain { hashes: hash, verbose: verbose } - ) + ); - return response.data + return response.data; } - throw new Error(`Input hash must be a string or array of strings.`) + throw new Error(`Input hash must be a string or array of strings.`); } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error + if (error.response && error.response.data) throw error.response.data; + else throw error; } } @@ -124,11 +124,11 @@ export class Blockchain { try { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getChainTips` - ) - return response.data + ); + return response.data; } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error + if (error.response && error.response.data) throw error.response.data; + else throw error; } } @@ -136,11 +136,11 @@ export class Blockchain { try { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getDifficulty` - ) - return response.data + ); + return response.data; } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error + if (error.response && error.response.data) throw error.response.data; + else throw error; } } @@ -149,18 +149,16 @@ export class Blockchain { txid: string, verbose: boolean = false ): Promise { - if (typeof txid !== "string") txid = JSON.stringify(txid) + if (typeof txid !== "string") txid = JSON.stringify(txid); try { const response: AxiosResponse = await axios.get( - `${ - this.restURL - }blockchain/getMempoolAncestors/${txid}?verbose=${verbose}` - ) - return response.data + `${this.restURL}blockchain/getMempoolAncestors/${txid}?verbose=${verbose}` + ); + return response.data; } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error + if (error.response && error.response.data) throw error.response.data; + else throw error; } } @@ -169,18 +167,16 @@ export class Blockchain { txid: string, verbose: boolean = false ): Promise { - if (typeof txid !== "string") txid = JSON.stringify(txid) + if (typeof txid !== "string") txid = JSON.stringify(txid); try { const response: AxiosResponse = await axios.get( - `${ - this.restURL - }blockchain/getMempoolDescendants/${txid}?verbose=${verbose}` - ) - return response.data + `${this.restURL}blockchain/getMempoolDescendants/${txid}?verbose=${verbose}` + ); + return response.data; } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error + if (error.response && error.response.data) throw error.response.data; + else throw error; } } @@ -191,9 +187,9 @@ export class Blockchain { if (typeof txid === "string") { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getMempoolEntry/${txid}` - ) + ); - return response.data + return response.data; } else if (Array.isArray(txid)) { const options: AxiosRequestConfig = { method: "POST", @@ -201,16 +197,16 @@ export class Blockchain { data: { txids: txid } - } - const response: AxiosResponse = await axios(options) + }; + const response: AxiosResponse = await axios(options); - return response.data + return response.data; } - throw new Error(`Input must be a string or array of strings.`) + throw new Error(`Input must be a string or array of strings.`); } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error + if (error.response && error.response.data) throw error.response.data; + else throw error; } } @@ -218,11 +214,11 @@ export class Blockchain { try { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getMempoolInfo` - ) - return response.data + ); + return response.data; } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error + if (error.response && error.response.data) throw error.response.data; + else throw error; } } @@ -231,11 +227,11 @@ export class Blockchain { try { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getRawMempool?vebose=${verbose}` - ) - return response.data + ); + return response.data; } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error + if (error.response && error.response.data) throw error.response.data; + else throw error; } } @@ -245,27 +241,25 @@ export class Blockchain { n: any, include_mempool: boolean = true ): Promise { - // Input validation if (typeof txid !== "string" || txid.length !== 64) - throw new Error(`txid needs to be a proper transaction ID`) + throw new Error(`txid needs to be a proper transaction ID`); - if (isNaN(n)) throw new Error(`n must be an integer`) + if (isNaN(n)) throw new Error(`n must be an integer`); if (typeof include_mempool !== "boolean") - throw new Error(`include_mempool input must be of type boolean`) + throw new Error(`include_mempool input must be of type boolean`); - // TODO confirm this works try { - const response: AxiosResponse = await axios.get( - `${ - this.restURL - }blockchain/getTxOut/${txid}/${n}?include_mempool=${include_mempool}` - ) - return response.data + const path: string = `${this.restURL}blockchain/getTxOut/${txid}/${n}?include_mempool=${include_mempool}`; + // console.log(`path: ${path}`) + + const response: AxiosResponse = await axios.get(path); + + return response.data; } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error + if (error.response && error.response.data) throw error.response.data; + else throw error; } } @@ -275,11 +269,11 @@ export class Blockchain { try { // Single txid. if (typeof txids === "string") { - const path = `${this.restURL}blockchain/getTxOutProof/${txids}` + const path = `${this.restURL}blockchain/getTxOutProof/${txids}`; //if (blockhash) path = `${path}?blockhash=${blockhash}` - const response: AxiosResponse = await axios.get(path) - return response.data + const response: AxiosResponse = await axios.get(path); + return response.data; // Array of txids. } else if (Array.isArray(txids)) { @@ -289,15 +283,15 @@ export class Blockchain { { txids: txids } - ) + ); - return response.data + return response.data; } - throw new Error(`Input must be a string or array of strings.`) + throw new Error(`Input must be a string or array of strings.`); } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error + if (error.response && error.response.data) throw error.response.data; + else throw error; } } @@ -306,11 +300,11 @@ export class Blockchain { try { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/preciousBlock/${blockhash}` - ) - return response.data + ); + return response.data; } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error + if (error.response && error.response.data) throw error.response.data; + else throw error; } } @@ -319,11 +313,11 @@ export class Blockchain { try { const response: AxiosResponse = await axios.post( `${this.restURL}blockchain/pruneBlockchain/${height}` - ) - return response.data + ); + return response.data; } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error + if (error.response && error.response.data) throw error.response.data; + else throw error; } } @@ -333,14 +327,12 @@ export class Blockchain { ): Promise { try { const response: AxiosResponse = await axios.get( - `${ - this.restURL - }blockchain/verifyChain?checklevel=${checklevel}&nblocks=${nblocks}` - ) - return response.data + `${this.restURL}blockchain/verifyChain?checklevel=${checklevel}&nblocks=${nblocks}` + ); + return response.data; } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error + if (error.response && error.response.data) throw error.response.data; + else throw error; } } @@ -350,8 +342,8 @@ export class Blockchain { if (typeof proof === "string") { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/verifyTxOutProof/${proof}` - ) - return response.data + ); + return response.data; // Array of hashes. } else if (Array.isArray(proof)) { @@ -361,15 +353,15 @@ export class Blockchain { { proofs: proof } - ) + ); - return response.data + return response.data; } - throw new Error(`Input must be a string or array of strings.`) + throw new Error(`Input must be a string or array of strings.`); } catch (error) { - if (error.response && error.response.data) throw error.response.data - else throw error + if (error.response && error.response.data) throw error.response.data; + else throw error; } } } diff --git a/package.json b/package.json index ee99c4ff..d581950f 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "scripts": { "test": "npm run test:unit", "test:no-build": "nyc mocha test/unit --timeout 60000 --exit", - "test:unit": "tsc && nyc mocha test/unit/Blockchain.js --timeout 60000 --exit", + "test:unit": "tsc && nyc mocha test/unit --timeout 60000 --exit", "test:integration": "TEST=integration nyc --reporter=text mocha --timeout 30000 test/integration --exit", "test:integration:local": "TEST=integration SERVER=local nyc --reporter=text mocha --timeout 30000 test/integration --exit", "test:integration:stage": "TEST=integration SERVER=stage nyc --reporter=text mocha --timeout 30000 test/integration --exit", diff --git a/test/integration/blockchain.js b/test/integration/blockchain.js index 7b401466..2d61c692 100644 --- a/test/integration/blockchain.js +++ b/test/integration/blockchain.js @@ -205,13 +205,46 @@ describe(`#blockchain`, () => { }) }) + describe(`#getTxOut`, () => { + it(`should get information on valid utxo`, async () => { + const txid = `91874bf385a36d54f06c2154b34bce887a03b99540bfddaa17ac78ebc65202d0` + + const result = await bitbox.Blockchain.getTxOut(txid, 0, true) + // console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.hasAllKeys(result, [ + "bestblock", + "confirmations", + "value", + "scriptPubKey", + "coinbase" + ]) + assert.hasAllKeys(result.scriptPubKey, [ + "asm", + "hex", + "reqSigs", + "type", + "addresses" + ]) + }) + + it(`should return null for a spent utxo`, async () => { + const txid = `8db6dd4f8a5bb1308541d4a6d4ecdae6c65426679e79f783638ce32b2fb0725b` + + const result = await bitbox.Blockchain.getTxOut(txid, 0, true) + // console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.equal(result, null) + }) + }) + describe(`#getTxOutProof`, () => { it(`should get single tx out proof`, async () => { const txid = "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" const result = await bitbox.Blockchain.getTxOutProof(txid) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) + // console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isString(result) }) @@ -223,7 +256,7 @@ describe(`#blockchain`, () => { ] const result = await bitbox.Blockchain.getTxOutProof(txid) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) + // console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.isArray(result) assert.isString(result[0]) diff --git a/test/unit/Blockchain.ts b/test/unit/Blockchain.ts index 96e0cd80..0b5b545f 100644 --- a/test/unit/Blockchain.ts +++ b/test/unit/Blockchain.ts @@ -355,22 +355,7 @@ describe("#Blockchain", (): void => { const data = { result: {} } -/* - it("should get TODO", done => { - const resolved = new Promise(r => r({ data: data })) - sandbox.stub(axios, "get").returns(resolved) - bitbox.Blockchain.getTxOut( - "daf58932cb91619304dd4cbd03c7202e89ad7d6cbd6e2209e5f64ce3b6ed7c88", - 0, - true - ) - .then((result: any) => { - assert.deepEqual(data, result) - }) - .then(done, done) - }) -*/ it("should throw an error for improper txid.", async () => { try { await bitbox.Blockchain.getTxOut("badtxid", 0) From 3c9dfe42e9c500b89b72eb643ee3e443e327bbed Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Mon, 18 Nov 2019 15:00:30 -0800 Subject: [PATCH 466/480] Adding pretterrc file to enforce linting rules in VS Code --- .prettierrc | 3 + lib/Blockchain.ts | 202 +++++++++++++++++++++++----------------------- package.json | 2 +- 3 files changed, 105 insertions(+), 102 deletions(-) create mode 100644 .prettierrc diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 00000000..dceda2d7 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,3 @@ +{ + "semi": false +} \ No newline at end of file diff --git a/lib/Blockchain.ts b/lib/Blockchain.ts index a5719465..b9415c7c 100644 --- a/lib/Blockchain.ts +++ b/lib/Blockchain.ts @@ -3,7 +3,7 @@ - Add blockhash functionality back into getTxOutProof */ -import axios, { AxiosRequestConfig, AxiosResponse } from "axios"; +import axios, { AxiosRequestConfig, AxiosResponse } from "axios" import { BlockchainInfoResult, BlockDetailsResult, @@ -12,24 +12,24 @@ import { MempoolEntryResult, MempoolInfoResult, TxOutResult -} from "bitcoin-com-rest"; -import { REST_URL } from "./BITBOX"; +} from "bitcoin-com-rest" +import { REST_URL } from "./BITBOX" export class Blockchain { - public restURL: string; + public restURL: string constructor(restURL: string = REST_URL) { - this.restURL = restURL; + this.restURL = restURL } public async getBestBlockHash(): Promise { try { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getBestBlockHash` - ); - return response.data; + ) + return response.data } catch (error) { - if (error.response && error.response.data) throw error.response.data; - else throw error; + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -40,11 +40,11 @@ export class Blockchain { try { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getBlock/${blockhash}?verbose=${verbose}` - ); - return response.data; + ) + return response.data } catch (error) { - if (error.response && error.response.data) throw error.response.data; - else throw error; + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -52,11 +52,11 @@ export class Blockchain { try { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getBlockchainInfo` - ); - return response.data; + ) + return response.data } catch (error) { - if (error.response && error.response.data) throw error.response.data; - else throw error; + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -64,11 +64,11 @@ export class Blockchain { try { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getBlockCount` - ); - return response.data; + ) + return response.data } catch (error) { - if (error.response && error.response.data) throw error.response.data; - else throw error; + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -78,11 +78,11 @@ export class Blockchain { try { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getBlockHash/${height}` - ); - return response.data; + ) + return response.data } catch (error) { - if (error.response && error.response.data) throw error.response.data; - else throw error; + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -95,9 +95,9 @@ export class Blockchain { if (typeof hash === "string") { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getBlockHeader/${hash}?verbose=${verbose}` - ); + ) - return response.data; + return response.data // Handle array of hashes. } else if (Array.isArray(hash)) { @@ -108,15 +108,15 @@ export class Blockchain { hashes: hash, verbose: verbose } - ); + ) - return response.data; + return response.data } - throw new Error(`Input hash must be a string or array of strings.`); + throw new Error(`Input hash must be a string or array of strings.`) } catch (error) { - if (error.response && error.response.data) throw error.response.data; - else throw error; + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -124,11 +124,11 @@ export class Blockchain { try { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getChainTips` - ); - return response.data; + ) + return response.data } catch (error) { - if (error.response && error.response.data) throw error.response.data; - else throw error; + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -136,11 +136,11 @@ export class Blockchain { try { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getDifficulty` - ); - return response.data; + ) + return response.data } catch (error) { - if (error.response && error.response.data) throw error.response.data; - else throw error; + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -149,16 +149,16 @@ export class Blockchain { txid: string, verbose: boolean = false ): Promise { - if (typeof txid !== "string") txid = JSON.stringify(txid); + if (typeof txid !== "string") txid = JSON.stringify(txid) try { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getMempoolAncestors/${txid}?verbose=${verbose}` - ); - return response.data; + ) + return response.data } catch (error) { - if (error.response && error.response.data) throw error.response.data; - else throw error; + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -167,16 +167,16 @@ export class Blockchain { txid: string, verbose: boolean = false ): Promise { - if (typeof txid !== "string") txid = JSON.stringify(txid); + if (typeof txid !== "string") txid = JSON.stringify(txid) try { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getMempoolDescendants/${txid}?verbose=${verbose}` - ); - return response.data; + ) + return response.data } catch (error) { - if (error.response && error.response.data) throw error.response.data; - else throw error; + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -187,9 +187,9 @@ export class Blockchain { if (typeof txid === "string") { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getMempoolEntry/${txid}` - ); + ) - return response.data; + return response.data } else if (Array.isArray(txid)) { const options: AxiosRequestConfig = { method: "POST", @@ -197,16 +197,16 @@ export class Blockchain { data: { txids: txid } - }; - const response: AxiosResponse = await axios(options); + } + const response: AxiosResponse = await axios(options) - return response.data; + return response.data } - throw new Error(`Input must be a string or array of strings.`); + throw new Error(`Input must be a string or array of strings.`) } catch (error) { - if (error.response && error.response.data) throw error.response.data; - else throw error; + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -214,11 +214,11 @@ export class Blockchain { try { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getMempoolInfo` - ); - return response.data; + ) + return response.data } catch (error) { - if (error.response && error.response.data) throw error.response.data; - else throw error; + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -227,11 +227,11 @@ export class Blockchain { try { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/getRawMempool?vebose=${verbose}` - ); - return response.data; + ) + return response.data } catch (error) { - if (error.response && error.response.data) throw error.response.data; - else throw error; + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -243,23 +243,23 @@ export class Blockchain { ): Promise { // Input validation if (typeof txid !== "string" || txid.length !== 64) - throw new Error(`txid needs to be a proper transaction ID`); + throw new Error(`txid needs to be a proper transaction ID`) - if (isNaN(n)) throw new Error(`n must be an integer`); + if (isNaN(n)) throw new Error(`n must be an integer`) if (typeof include_mempool !== "boolean") - throw new Error(`include_mempool input must be of type boolean`); + throw new Error(`include_mempool input must be of type boolean`) try { - const path: string = `${this.restURL}blockchain/getTxOut/${txid}/${n}?include_mempool=${include_mempool}`; + const path: string = `${this.restURL}blockchain/getTxOut/${txid}/${n}?include_mempool=${include_mempool}` // console.log(`path: ${path}`) - const response: AxiosResponse = await axios.get(path); + const response: AxiosResponse = await axios.get(path) - return response.data; + return response.data } catch (error) { - if (error.response && error.response.data) throw error.response.data; - else throw error; + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -269,11 +269,11 @@ export class Blockchain { try { // Single txid. if (typeof txids === "string") { - const path = `${this.restURL}blockchain/getTxOutProof/${txids}`; + const path = `${this.restURL}blockchain/getTxOutProof/${txids}` //if (blockhash) path = `${path}?blockhash=${blockhash}` - const response: AxiosResponse = await axios.get(path); - return response.data; + const response: AxiosResponse = await axios.get(path) + return response.data // Array of txids. } else if (Array.isArray(txids)) { @@ -283,15 +283,15 @@ export class Blockchain { { txids: txids } - ); + ) - return response.data; + return response.data } - throw new Error(`Input must be a string or array of strings.`); + throw new Error(`Input must be a string or array of strings.`) } catch (error) { - if (error.response && error.response.data) throw error.response.data; - else throw error; + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -300,11 +300,11 @@ export class Blockchain { try { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/preciousBlock/${blockhash}` - ); - return response.data; + ) + return response.data } catch (error) { - if (error.response && error.response.data) throw error.response.data; - else throw error; + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -313,11 +313,11 @@ export class Blockchain { try { const response: AxiosResponse = await axios.post( `${this.restURL}blockchain/pruneBlockchain/${height}` - ); - return response.data; + ) + return response.data } catch (error) { - if (error.response && error.response.data) throw error.response.data; - else throw error; + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -328,11 +328,11 @@ export class Blockchain { try { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/verifyChain?checklevel=${checklevel}&nblocks=${nblocks}` - ); - return response.data; + ) + return response.data } catch (error) { - if (error.response && error.response.data) throw error.response.data; - else throw error; + if (error.response && error.response.data) throw error.response.data + else throw error } } @@ -342,8 +342,8 @@ export class Blockchain { if (typeof proof === "string") { const response: AxiosResponse = await axios.get( `${this.restURL}blockchain/verifyTxOutProof/${proof}` - ); - return response.data; + ) + return response.data // Array of hashes. } else if (Array.isArray(proof)) { @@ -353,15 +353,15 @@ export class Blockchain { { proofs: proof } - ); + ) - return response.data; + return response.data } - throw new Error(`Input must be a string or array of strings.`); + throw new Error(`Input must be a string or array of strings.`) } catch (error) { - if (error.response && error.response.data) throw error.response.data; - else throw error; + if (error.response && error.response.data) throw error.response.data + else throw error } } } diff --git a/package.json b/package.json index d581950f..5bdde140 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "@types/wif": "^2.0.1", "chai": "^4.1.2", "coveralls": "^3.0.2", - "eslint": "^5.5.0", + "eslint": "^5.16.0", "eslint-config-prettier": "^3.0.1", "eslint-plugin-node": "7.0.1", "eslint-plugin-prettier": "^2.6.2", From d368eb938545a0e43acc5fb39dabed6cdbc3898a Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Mon, 18 Nov 2019 15:04:29 -0800 Subject: [PATCH 467/480] Adding additional unit test for gettxout --- test/unit/Blockchain.ts | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/test/unit/Blockchain.ts b/test/unit/Blockchain.ts index 0b5b545f..4ce9f2fa 100644 --- a/test/unit/Blockchain.ts +++ b/test/unit/Blockchain.ts @@ -393,18 +393,18 @@ describe("#Blockchain", (): void => { ]) }) - // it("should get information on a spent tx", async () => { - // sandbox.stub(axios, "get").resolves({ data: null }) - - // const result = await bitbox.Blockchain.getTxOut( - // "87380e52d151856b23173d6d8a3db01b984c6b50f77ea045a5a1cf4f54497871", - // 0, - // true - // ) - // // console.log(`result: ${JSON.stringify(result, null, 2)}`) - - // assert2.equal(result, null) - // }) + it("should get information on a spent tx", async () => { + sandbox.stub(axios, "get").resolves({ data: null }) + + const result = await bitbox.Blockchain.getTxOut( + "87380e52d151856b23173d6d8a3db01b984c6b50f77ea045a5a1cf4f54497871", + 0, + true + ) + // console.log(`result: ${JSON.stringify(result, null, 2)}`) + + assert.equal(result, null) + }) }) describe("#preciousBlock", (): void => { From f0fd55b8284ebf72a149f9d337079a7961b435d0 Mon Sep 17 00:00:00 2001 From: James Cramer <988195+jcramer@users.noreply.github.com> Date: Thu, 21 Nov 2019 09:53:03 -0500 Subject: [PATCH 468/480] Move some @types to "dependencies" These @types are needed if a TS project is rebuilding bitbox-sdk from source. This would be the case even if .d.ts files were published instead of .ts files since the .d.ts file would still have references to these dependent types. Also, on a separate note. Maybe something to consider in a future release is to publish `.d.ts` files instead of the `.ts` files. I'm currently planning on doing this for `slpjs` soon, but right now I'm struggling with some strange issue preventing me from doing so. --- package.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 5bdde140..7497142d 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,12 @@ "url": "git+https://github.com/Bitcoin-com/bitbox-sdk.git" }, "dependencies": { + "@types/bigi": "^1.4.2", + "@types/bip39": "^2.4.2", + "@types/randombytes": "^2.0.0", + "@types/socket.io": "^2.1.2", + "@types/socket.io-client": "^1.4.32", + "@types/wif": "^2.0.1", "assert": "^1.4.1", "axios": "0.19.0", "bc-bip68": "^1.0.5", @@ -57,16 +63,10 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^0.1.3", - "@types/bigi": "^1.4.2", - "@types/bip39": "^2.4.2", "@types/chai": "^4.1.7", "@types/mocha": "^5.2.6", "@types/node": "^10.11.7", - "@types/randombytes": "^2.0.0", "@types/sinon": "^7.0.11", - "@types/socket.io": "^2.1.2", - "@types/socket.io-client": "^1.4.32", - "@types/wif": "^2.0.1", "chai": "^4.1.2", "coveralls": "^3.0.2", "eslint": "^5.16.0", From 70ad4e28a4a5f1afd33fe7398a5d42485f9a14d7 Mon Sep 17 00:00:00 2001 From: James Cramer <988195+jcramer@users.noreply.github.com> Date: Thu, 21 Nov 2019 10:13:51 -0500 Subject: [PATCH 469/480] Fix randomBytes import This patch fixes the issue I get when I run `tsc` in a ts project that depends on recent versions of bitbox-sdk: node_modules/bitbox-sdk/lib/Crypto.ts:1:1 1 import * as randomBytes from "randombytes" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Type originates at this import. A namespace-style import cannot be called or constructed, and will cause a failure at runtime. Consider using a default import or import require here instead. --- lib/Crypto.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Crypto.ts b/lib/Crypto.ts index 1780bc0b..bab8834f 100644 --- a/lib/Crypto.ts +++ b/lib/Crypto.ts @@ -1,4 +1,4 @@ -import * as randomBytes from "randombytes" +import randomBytes from "randombytes" const Bitcoin = require("bitcoincashjs-lib") export class Crypto { From 3e4d8e07bb90d44f04d2e401a5ec2cdde5cac1bc Mon Sep 17 00:00:00 2001 From: James Cramer <988195+jcramer@users.noreply.github.com> Date: Thu, 21 Nov 2019 10:24:49 -0500 Subject: [PATCH 470/480] update tsconfig.json with esModuleInterop: true The default typescript tsconfig.json file generated from `tsc --init` has this property set to true. If there are no build errors or other failures resulting from this update, then it would probably be easier for other users to update this. --- tsconfig.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tsconfig.json b/tsconfig.json index 0c088321..8e7a6d25 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,7 +6,8 @@ "downlevelIteration": true, "moduleResolution": "node", "lib": ["es2017"], - "sourceMap": true + "sourceMap": true, + "esModuleInterop": true }, "include": ["./lib", "./test", "./test/unit/**/*.ts"], "files": ["index.ts"] From 32d57cd4f3dee69bb89c2eedb621e809f4fd8500 Mon Sep 17 00:00:00 2001 From: James Cramer <988195+jcramer@users.noreply.github.com> Date: Thu, 21 Nov 2019 10:26:44 -0500 Subject: [PATCH 471/480] Update Mnemonic.ts fix randomBytes import for same reason as Crypto.ts --- lib/Mnemonic.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Mnemonic.ts b/lib/Mnemonic.ts index 7c45813c..a70b13b1 100644 --- a/lib/Mnemonic.ts +++ b/lib/Mnemonic.ts @@ -2,7 +2,7 @@ import * as BIP39 from "bip39" import * as bcl from "bitcoincashjs-lib" // import * as Bitcoin from "bitcoincashjs-lib" import { Buffer } from "buffer" -import * as randomBytes from "randombytes" +import randomBytes from "randombytes" import * as wif from "wif" import { Address } from "./Address" // TODO: convert "bitcoincashjs-lib" require to import From eb6b84dfc10a0f3cf0708c91697ba57c1f393c4b Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Thu, 21 Nov 2019 11:40:19 -0800 Subject: [PATCH 472/480] fix(typescript): Updates to TS types --- yarn.lock | 294 +++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 237 insertions(+), 57 deletions(-) diff --git a/yarn.lock b/yarn.lock index efc93e41..a5799bc9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -57,6 +57,13 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.5.tgz#02f077ac8817d3df4a832ef59de67565e71cca4b" integrity sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g== +"@babel/runtime@^7.6.3": + version "7.7.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.2.tgz#111a78002a5c25fc8e3361bedc9529c696b85a6a" + integrity sha512-JONRbXbTXc9WQE2mAZd1p0Z3DZ/6vaQIkgYMSTP3KjRCyd7rCZCcfhCyX+YjwcKxcZ82UrxbRD358bpExNgrjw== + dependencies: + regenerator-runtime "^0.13.2" + "@babel/template@^7.1.0", "@babel/template@^7.4.0": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" @@ -292,6 +299,11 @@ resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.0.tgz#2478260021408dec32c123a7cad3414beb811a07" integrity sha512-zw8UvoBEImn392tLjxoavuonblX/4Yb9ha4KBU10FirCfwgzhKO0dvyJSF9ByxV1xK1r2AgnAi/tvQaLgxQqxA== +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + "@types/events@*": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" @@ -331,6 +343,11 @@ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + "@types/randombytes@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@types/randombytes/-/randombytes-2.0.0.tgz#0087ff5e60ae68023b9bc4398b406fea7ad18304" @@ -508,6 +525,11 @@ ansi-regex@^4.1.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -520,6 +542,14 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" +ansi-styles@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.0.tgz#5681f0dcf7ae5880a7841d8831c4724ed9cc0172" + integrity sha512-7kFQgnEaMdRtwf6uSfUnVr9gSGC7faurn+J/Mv90/W+iTtN0405/nLdopfMWwchyxhbGYl6TC4Sccn9TUkGAgg== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + ansicolors@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" @@ -1040,13 +1070,6 @@ call-limit@^1.1.1: resolved "https://registry.yarnpkg.com/call-limit/-/call-limit-1.1.1.tgz#ef15f2670db3f1992557e2d965abc459e6e358d4" integrity sha512-5twvci5b9eRBw2wCfPtN0GmlR2/gadZqyFpPhOK6CvMFoFgA+USnZ6Jpu1lhG9h85pQ3Ouil3PfXWRD4EUaRiQ== -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= - dependencies: - callsites "^2.0.0" - caller-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" @@ -1054,13 +1077,6 @@ caller-path@^0.1.0: dependencies: callsites "^0.2.0" -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= - dependencies: - caller-callsite "^2.0.0" - callsite@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" @@ -1071,11 +1087,6 @@ callsites@^0.2.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo= -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= - callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -1279,6 +1290,15 @@ cliui@^5.0.0: strip-ansi "^5.2.0" wrap-ansi "^5.1.0" +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + clone@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" @@ -1315,11 +1335,23 @@ color-convert@^1.9.0: dependencies: color-name "1.1.3" +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + colors@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" @@ -1510,15 +1542,16 @@ core-util-is@1.0.2, core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -cosmiconfig@^5.0.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" coveralls@^3.0.2: version "3.0.6" @@ -1601,6 +1634,15 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" +cross-spawn@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.1.tgz#0ab56286e0f7c24e153d04cc2aa027e43a9a5d14" + integrity sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + crypto-random-string@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" @@ -2186,7 +2228,7 @@ eslint-visitor-keys@^1.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== -eslint@^5.5.0: +eslint@^5.16.0: version "5.16.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg== @@ -2358,6 +2400,22 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-3.3.0.tgz#7e348eef129a1937f21ecbbd53390942653522c1" + integrity sha512-j5Vit5WZR/cbHlqU97+qcnw9WHRCIL4V1SVe75VcHcD1JRBdt8fv0zw89b7CQHQdUHTt2VjuhcF5ibAgVOxqpg== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + p-finally "^2.0.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" @@ -2514,7 +2572,7 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -find-up@^4.0.0: +find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== @@ -3000,6 +3058,11 @@ https-proxy-agent@^2.2.1: agent-base "^4.3.0" debug "^3.1.0" +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" @@ -3046,14 +3109,6 @@ ignore@^5.1.1: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A== -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - import-fresh@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.1.0.tgz#6d33fa1dcef6df930fae003446f33415af905118" @@ -3062,6 +3117,14 @@ import-fresh@^3.0.0: parent-module "^1.0.0" resolve-from "^4.0.0" +import-fresh@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" + integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + import-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/import-from/-/import-from-3.0.0.tgz#055cfec38cd5a27d8057ca51376d7d3bf0891966" @@ -3227,11 +3290,6 @@ is-date-object@^1.0.1: resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= - is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -3335,6 +3393,11 @@ is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + is-subset@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" @@ -4064,6 +4127,11 @@ merge-source-map@^1.1.0: dependencies: source-map "^0.6.1" +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + merge2@^1.2.3: version "1.2.4" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.4.tgz#c9269589e6885a60cf80605d9522d4b67ca646e3" @@ -4494,6 +4562,13 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" +npm-run-path@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.0.tgz#d644ec1bd0569187d2a52909971023a0a58e8438" + integrity sha512-8eyAOAH+bYXFPSnNnKr3J+yoybe8O87Is5rtAQ8qRczJz1ajcsjg8l2oZqP+Ppx15Ii3S1vUTjQN2h4YO2tWWQ== + dependencies: + path-key "^3.0.0" + npm-user-validate@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-1.0.0.tgz#8ceca0f5cea04d4e93519ef72d0557a75122e951" @@ -4814,6 +4889,11 @@ p-finally@^1.0.0: resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= +p-finally@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" + integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== + p-is-promise@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" @@ -5027,6 +5107,11 @@ path-key@^2.0.0, path-key@^2.0.1: resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.0.tgz#99a10d870a803bdd5ee6f0470e58dfcd2f9a54d3" + integrity sha512-8cChqz0RP6SHJkMt48FW0A7+qUOn+OsnOsVtzI59tZ8m+5bCSk7hzwET0pulwOM2YMn9J1efb07KB9l9f30SGg== + path-parse@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" @@ -5413,6 +5498,15 @@ read-pkg-up@^6.0.0: read-pkg "^5.1.1" type-fest "^0.5.0" +read-pkg-up@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.0.tgz#3f3e53858ec5ae5e6fe14bc479da0a7c98f85ff3" + integrity sha512-t2ODkS/vTTcRlKwZiZsaLGb5iwfx9Urp924aGzVyboU6+7Z2i6eGr/G1Z4mjvwLLQV3uFOBKobNRGM3ux2PD/w== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + read-pkg@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" @@ -5431,7 +5525,7 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" -read-pkg@^5.0.0, read-pkg@^5.1.1: +read-pkg@^5.0.0, read-pkg@^5.1.1, read-pkg@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== @@ -5505,6 +5599,11 @@ redeyed@~2.1.0: dependencies: esprima "~4.0.0" +regenerator-runtime@^0.13.2: + version "0.13.3" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" + integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== + regexpp@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" @@ -5599,11 +5698,6 @@ resolve-from@^1.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY= -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -5772,10 +5866,10 @@ secp256k1@^3.0.1: nan "^2.14.0" safe-buffer "^5.1.2" -semantic-release@^15.13.3: - version "15.13.21" - resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-15.13.21.tgz#d021c75f889cff75ae3410736942bee6c4557da7" - integrity sha512-3S9thQas28iv3NeHUqQVsDnxMcBGQICdxabeNnJ8BnbRBvCkgqCg3v9zo/+O5a8GCyxrgjtwJ2iWozL8SiIq1w== +semantic-release@^15.13.31: + version "15.13.31" + resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-15.13.31.tgz#75560e61562b5b7aa3e66256fd3454683c6508a6" + integrity sha512-mrtYkH4p0FvXIRFCsr2r5il/A+Uj7oeeq+dgyojAbr4Tzywv9AlCYHeE3A8U3eE4bMJPiBV4YnQRsk1QS8yDDw== dependencies: "@semantic-release/commit-analyzer" "^6.1.0" "@semantic-release/error" "^2.2.0" @@ -5783,10 +5877,10 @@ semantic-release@^15.13.3: "@semantic-release/npm" "^5.0.5" "@semantic-release/release-notes-generator" "^7.1.2" aggregate-error "^3.0.0" - cosmiconfig "^5.0.1" + cosmiconfig "^6.0.0" debug "^4.0.0" env-ci "^4.0.0" - execa "^1.0.0" + execa "^3.2.0" figures "^3.0.0" find-versions "^3.0.0" get-stream "^5.0.0" @@ -5798,11 +5892,11 @@ semantic-release@^15.13.3: marked-terminal "^3.2.0" p-locate "^4.0.0" p-reduce "^2.0.0" - read-pkg-up "^6.0.0" + read-pkg-up "^7.0.0" resolve-from "^5.0.0" semver "^6.0.0" signale "^1.2.1" - yargs "^13.1.0" + yargs "^15.0.1" semver-diff@^2.0.0: version "2.1.0" @@ -5858,11 +5952,23 @@ shebang-command@^1.2.0: dependencies: shebang-regex "^1.0.0" +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" @@ -6209,6 +6315,15 @@ string-width@^4.1.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^5.2.0" +string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + string.prototype.trim@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz#d04de2c89e137f4d7d206f086b5ed2fae6be8cea" @@ -6263,6 +6378,13 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -6273,6 +6395,11 @@ strip-eof@^1.0.0: resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + strip-indent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" @@ -6530,6 +6657,11 @@ type-fest@^0.6.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + type-is@^1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -6751,6 +6883,13 @@ which@1, which@^1.2.9, which@^1.3.0, which@^1.3.1: dependencies: isexe "^2.0.0" +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + wide-align@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" @@ -6813,6 +6952,15 @@ wrap-ansi@^5.1.0: string-width "^3.0.0" strip-ansi "^5.0.0" +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -6883,6 +7031,13 @@ yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== +yaml@^1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.7.2.tgz#f26aabf738590ab61efaca502358e48dc9f348b2" + integrity sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw== + dependencies: + "@babel/runtime" "^7.6.3" + yargs-parser@^13.0.0, yargs-parser@^13.1.1: version "13.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" @@ -6891,6 +7046,14 @@ yargs-parser@^13.0.0, yargs-parser@^13.1.1: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^16.1.0: + version "16.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-16.1.0.tgz#73747d53ae187e7b8dbe333f95714c76ea00ecf1" + integrity sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + yargs-parser@^9.0.2: version "9.0.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" @@ -6916,7 +7079,7 @@ yargs@^11.0.0: y18n "^3.2.1" yargs-parser "^9.0.2" -yargs@^13.1.0, yargs@^13.2.2: +yargs@^13.2.2: version "13.3.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== @@ -6932,6 +7095,23 @@ yargs@^13.1.0, yargs@^13.2.2: y18n "^4.0.0" yargs-parser "^13.1.1" +yargs@^15.0.1: + version "15.0.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.0.2.tgz#4248bf218ef050385c4f7e14ebdf425653d13bd3" + integrity sha512-GH/X/hYt+x5hOat4LMnCqMd8r5Cv78heOMIJn1hr7QPPBqfeC6p89Y78+WB9yGDvfpCvgasfmWLzNzEioOUD9Q== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^16.1.0" + yeast@0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" From c512ec8b7c2023603d6818162d92ea6e934075b9 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Mon, 25 Nov 2019 13:52:55 -0800 Subject: [PATCH 473/480] fix(version): Bringing semantic release into alignment with manual releases --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7497142d..90bb2b7a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitbox-sdk", - "version": "8.10.1", + "version": "8.11.0", "description": "BITBOX SDK for Bitcoin Cash", "author": "Gabriel Cardona ", "contributors": [ From db7e27f80e212f9dac795f75e6439eacfb24fa47 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Thu, 19 Dec 2019 11:36:28 -0800 Subject: [PATCH 474/480] fix(bitcoincashjs2-lib): Replacing bitcoincashjs-lib with bitcoincashjs2-lib --- lib/Address.ts | 2 +- lib/BitcoinCash.ts | 2 +- lib/Crypto.ts | 2 +- lib/ECPair.ts | 2 +- lib/HDNode.ts | 2 +- lib/Mnemonic.ts | 2 +- lib/Script.ts | 2 +- lib/TransactionBuilder.ts | 2 +- package.json | 2 +- test/unit/Address.ts | 2 +- yarn.lock | 45 ++++++++++++++++++++------------------- 11 files changed, 33 insertions(+), 32 deletions(-) diff --git a/lib/Address.ts b/lib/Address.ts index 74be8471..84d36acb 100644 --- a/lib/Address.ts +++ b/lib/Address.ts @@ -11,7 +11,7 @@ import { REST_URL } from "./BITBOX" // consts // TODO: port require statements to impprt -const Bitcoin = require("bitcoincashjs-lib") +const Bitcoin = require("@bitcoin-dot-com/bitcoincashjs2-lib") const cashaddr = require("cashaddrjs") const coininfo = require("coininfo") diff --git a/lib/BitcoinCash.ts b/lib/BitcoinCash.ts index 643f86de..1508a532 100644 --- a/lib/BitcoinCash.ts +++ b/lib/BitcoinCash.ts @@ -2,7 +2,7 @@ import { Address } from "./Address" // consts -const Bitcoin = require("bitcoincashjs-lib") +const Bitcoin = require("@bitcoin-dot-com/bitcoincashjs2-lib") const sb = require("satoshi-bitcoin") const bitcoinMessage = require("bitcoinjs-message") const bs58 = require("bs58") diff --git a/lib/Crypto.ts b/lib/Crypto.ts index bab8834f..8ce5235d 100644 --- a/lib/Crypto.ts +++ b/lib/Crypto.ts @@ -1,5 +1,5 @@ import randomBytes from "randombytes" -const Bitcoin = require("bitcoincashjs-lib") +const Bitcoin = require("@bitcoin-dot-com/bitcoincashjs2-lib") export class Crypto { public sha1(buffer: Buffer): Buffer { diff --git a/lib/ECPair.ts b/lib/ECPair.ts index a419954b..f342bb97 100644 --- a/lib/ECPair.ts +++ b/lib/ECPair.ts @@ -1,7 +1,7 @@ import * as bcl from "bitcoincashjs-lib" import { Address } from "./Address" -const Bitcoin = require("bitcoincashjs-lib") +const Bitcoin = require("@bitcoin-dot-com/bitcoincashjs2-lib") const coininfo = require("coininfo") export class ECPair { diff --git a/lib/HDNode.ts b/lib/HDNode.ts index 9f3a5eda..636866fb 100644 --- a/lib/HDNode.ts +++ b/lib/HDNode.ts @@ -3,7 +3,7 @@ import * as bcl from "bitcoincashjs-lib" import { Address } from "./Address" // consts -const Bitcoin = require("bitcoincashjs-lib") +const Bitcoin = require("@bitcoin-dot-com/bitcoincashjs2-lib") const coininfo = require("coininfo") const bip32utils = require("bip32-utils") diff --git a/lib/Mnemonic.ts b/lib/Mnemonic.ts index a70b13b1..c98b5dc8 100644 --- a/lib/Mnemonic.ts +++ b/lib/Mnemonic.ts @@ -6,7 +6,7 @@ import randomBytes from "randombytes" import * as wif from "wif" import { Address } from "./Address" // TODO: convert "bitcoincashjs-lib" require to import -const Bitcoin = require("bitcoincashjs-lib") +const Bitcoin = require("@bitcoin-dot-com/bitcoincashjs2-lib") export class Mnemonic { private _address: Address diff --git a/lib/Script.ts b/lib/Script.ts index 2d448be1..a8fa9692 100644 --- a/lib/Script.ts +++ b/lib/Script.ts @@ -1,5 +1,5 @@ // consts -const Bitcoin = require("bitcoincashjs-lib") +const Bitcoin = require("@bitcoin-dot-com/bitcoincashjs2-lib") const opcodes = require("bitcoincash-ops") export interface opcodes { diff --git a/lib/TransactionBuilder.ts b/lib/TransactionBuilder.ts index fe8c6b04..b3b4b152 100644 --- a/lib/TransactionBuilder.ts +++ b/lib/TransactionBuilder.ts @@ -5,7 +5,7 @@ import { Address } from "./Address" import { TREST_URL } from "./BITBOX" // consts -const Bitcoin = require("bitcoincashjs-lib") +const Bitcoin = require("@bitcoin-dot-com/bitcoincashjs2-lib") const coininfo = require("coininfo") const bip66 = require("bip66") const bip68 = require("bc-bip68") diff --git a/package.json b/package.json index 90bb2b7a..f63adb84 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "url": "git+https://github.com/Bitcoin-com/bitbox-sdk.git" }, "dependencies": { + "@bitcoin-dot-com/bitcoincashjs2-lib": "^4.1.0", "@types/bigi": "^1.4.2", "@types/bip39": "^2.4.2", "@types/randombytes": "^2.0.0", @@ -48,7 +49,6 @@ "bip39": "^2.5.0", "bip66": "^1.1.5", "bitcoincash-ops": "Bitcoin-com/bitcoincash-ops#2.0.0", - "bitcoincashjs-lib": "Bitcoin-com/bitcoincashjs-lib#v4.0.1", "bitcoinjs-message": "^2.0.0", "bs58": "^4.0.1", "cashaddrjs": "^0.2.9", diff --git a/test/unit/Address.ts b/test/unit/Address.ts index 96b36e46..28ddd878 100644 --- a/test/unit/Address.ts +++ b/test/unit/Address.ts @@ -16,7 +16,7 @@ const assert: Chai.AssertStatic = chai.assert // TODO: port from require to import syntax const fixtures = require("./fixtures/Address.json") -const Bitcoin = require("bitcoincashjs-lib") +const Bitcoin = require("@bitcoin-dot-com/bitcoincashjs2-lib") const sinon = require("sinon") const addressMock = require("./mocks/address-mock.js") diff --git a/yarn.lock b/yarn.lock index a5799bc9..7e247055 100644 --- a/yarn.lock +++ b/yarn.lock @@ -97,6 +97,27 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" +"@bitcoin-dot-com/bitcoincashjs2-lib@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@bitcoin-dot-com/bitcoincashjs2-lib/-/bitcoincashjs2-lib-4.1.0.tgz#c01025d99f6472bb298fd801f9e7e7b1519f66d4" + integrity sha512-p36L4ZTVsLnFQuAdVVsDoIVYGglkyb1VWn8EEYo/kixUVdT7Mvf3gsJ0MG1wIP57SZLTj46hyhklTfT8fNbG0A== + dependencies: + bech32 "^1.1.2" + bigi "^1.4.0" + bip66 "^1.1.0" + bitcoincash-ops "github:Bitcoin-com/bitcoincash-ops#2.0.0" + bs58check "^2.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.3" + ecurve "^1.0.0" + merkle-lib "^2.0.10" + pushdata-bitcoin "github:Bitcoin-com/pushdata-bitcoin#1.2.1" + randombytes "^2.0.1" + safe-buffer "^5.0.1" + typeforce "^1.11.3" + varuint-bitcoin "^1.0.4" + wif "^2.0.1" + "@istanbuljs/nyc-config-typescript@^0.1.3": version "0.1.3" resolved "https://registry.yarnpkg.com/@istanbuljs/nyc-config-typescript/-/nyc-config-typescript-0.1.3.tgz#944d15b3ebdb71f963a628daffaa25ade981bb86" @@ -872,30 +893,10 @@ bip66@^1.1.0, bip66@^1.1.5: dependencies: safe-buffer "^5.0.1" -bitcoincash-ops@Bitcoin-com/bitcoincash-ops#2.0.0: +bitcoincash-ops@Bitcoin-com/bitcoincash-ops#2.0.0, "bitcoincash-ops@github:Bitcoin-com/bitcoincash-ops#2.0.0": version "2.0.0" resolved "https://codeload.github.com/Bitcoin-com/bitcoincash-ops/tar.gz/6ab82cc7326c67236f3b2d9d0457258ac2ef48e3" -bitcoincashjs-lib@Bitcoin-com/bitcoincashjs-lib#v4.0.1: - version "4.0.1" - resolved "https://codeload.github.com/Bitcoin-com/bitcoincashjs-lib/tar.gz/28447b40a4ccd23913f7ade6589dc7214c99e60a" - dependencies: - bech32 "^1.1.2" - bigi "^1.4.0" - bip66 "^1.1.0" - bitcoincash-ops Bitcoin-com/bitcoincash-ops#2.0.0 - bs58check "^2.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.3" - ecurve "^1.0.0" - merkle-lib "^2.0.10" - pushdata-bitcoin Bitcoin-com/pushdata-bitcoin#1.2.1 - randombytes "^2.0.1" - safe-buffer "^5.0.1" - typeforce "^1.11.3" - varuint-bitcoin "^1.0.4" - wif "^2.0.1" - bitcoinjs-message@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/bitcoinjs-message/-/bitcoinjs-message-2.1.0.tgz#5fe36a7d92473bdc929d9183416970bbef1690ad" @@ -5341,7 +5342,7 @@ punycode@^2.1.0: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -pushdata-bitcoin@Bitcoin-com/pushdata-bitcoin#1.2.1: +"pushdata-bitcoin@github:Bitcoin-com/pushdata-bitcoin#1.2.1": version "1.2.1" resolved "https://codeload.github.com/Bitcoin-com/pushdata-bitcoin/tar.gz/9b75eebe597853c6eeaec3e6c44b6d9c9cd7ee86" dependencies: From 558cf6b92f914872c5b6b47e1e69c4834c48bb4a Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Thu, 19 Dec 2019 11:37:10 -0800 Subject: [PATCH 475/480] fix(Script.encode2): Adding encode2 function to Script class for alternate compilation rules of Script --- lib/Script.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/Script.ts b/lib/Script.ts index a8fa9692..3b5f122b 100644 --- a/lib/Script.ts +++ b/lib/Script.ts @@ -262,6 +262,14 @@ export class Script { return Bitcoin.script.compile(arr) } + public encode2(scriptChunks: Array): Buffer { + const arr: Array = [] + scriptChunks.forEach((chunk: number | Buffer) => { + arr.push(chunk) + }) + return Bitcoin.script.compile2(arr) + } + public decode(scriptBuffer: Buffer): Array { return Bitcoin.script.decompile(scriptBuffer) } From 2305185a041e3358cd43aa2615fb5bf92cd08c89 Mon Sep 17 00:00:00 2001 From: fifikobayashi <57852197+fifikobayashi@users.noreply.github.com> Date: Thu, 23 Jan 2020 12:21:06 +0000 Subject: [PATCH 476/480] added multi-output transaction example --- .../wallet/send-bch/send-bch-multiOutput.js | 144 ++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 examples/applications/wallet/send-bch/send-bch-multiOutput.js diff --git a/examples/applications/wallet/send-bch/send-bch-multiOutput.js b/examples/applications/wallet/send-bch/send-bch-multiOutput.js new file mode 100644 index 00000000..3ee735ed --- /dev/null +++ b/examples/applications/wallet/send-bch/send-bch-multiOutput.js @@ -0,0 +1,144 @@ +/* + * This example builds a multi-output transaction where the sender sends BCH to 3 other recipients + * in the same transaction. + */ +const senderAddress = '...'; // e.g. bchtest:qp4rhw2w8l... +const senderMnemonic = '...'; // "what does the fox say..." + +const recipient1 = '...'; // e.g. bchtest:qp4rhw2w8l... +const recipient2 = '...'; // e.g. bchtest:qasdf28l... +const recipient3 = '...'; // e.g. bchtest:q3hasd2w8l... + +const network = 'testnet'; + +// Initialise BITBOX based on chosen network +const { BITBOX } = require('bitbox-sdk'); +if (network === 'mainnet') + bitbox = new BITBOX({ restURL: 'https://rest.bitcoin.com/v2/' }) +else bitbox = new BITBOX({ restURL: 'https://trest.bitcoin.com/v2/' }); + +run(); +async function run() { + + try { + // convert cash addresses into legacy addresses + const SEND_ADDR_LEGACY = bitbox.Address.toLegacyAddress(senderAddress); + const RECV_ADDR_LEGACY1 = bitbox.Address.toLegacyAddress(recipient1); + const RECV_ADDR_LEGACY2 = bitbox.Address.toLegacyAddress(recipient2); + const RECV_ADDR_LEGACY3 = bitbox.Address.toLegacyAddress(recipient3); + + // set the BCH to send for each recipient + var rec1Amt = bitbox.BitcoinCash.toSatoshi(0.01); + var rec2Amt = bitbox.BitcoinCash.toSatoshi(0.01); + var rec3Amt = bitbox.BitcoinCash.toSatoshi(0.01); + var totalAmt = rec1Amt+rec2Amt+rec3Amt; + + // retrieve utxos of the sender's address + const u = await bitbox.Address.utxo(senderAddress); + const utxo = findBiggestUtxo(u.utxos); + + // initiates transaction builder based on the selected network + const transactionBuilder = new bitbox.TransactionBuilder(network); + + // since satoshi's can't be fractional at time of code + const satoshisToSend = Math.floor(totalAmt); + const originalAmount = utxo.satoshis; + const vout = utxo.vout; + const txid = utxo.txid; + + // add input with txid and index of vout + transactionBuilder.addInput(txid, vout) + + const outputTx = 4; // # of output transactions i.e. 3 recipients + change address + const byteCount = 300 * outputTx; // 300 bytes per TX output + console.log(`byteCount: ${byteCount}`); + const satoshisPerByte = 1.2; + const txFee = Math.floor(satoshisPerByte * byteCount); + console.log(`txFee: ${txFee}`); + + // amount to send back to the sending address. + // It's the original amount - 1.2 sat/byte for tx size + const remainder = originalAmount - satoshisToSend - txFee; + + // add output w/ address and amount to send + transactionBuilder.addOutput(recipient1, rec1Amt); + transactionBuilder.addOutput(recipient2, rec2Amt); + transactionBuilder.addOutput(recipient3, rec3Amt); + transactionBuilder.addOutput(senderAddress, remainder); + + // Generate a change address from a Mnemonic of a private key. + const change = changeAddrFromMnemonic(senderMnemonic); + + // Generate a keypair from the change address. + const keyPair = bitbox.HDNode.toKeyPair(change); + + // Sign the transaction with the HD node. + let redeemScript + transactionBuilder.sign( + 0, + keyPair, + redeemScript, + transactionBuilder.hashTypes.SIGHASH_ALL, + originalAmount + ); + + // build tx + const tx = transactionBuilder.build(); + // output rawhex + const hex = tx.toHex(); + + // Broadcast transation to the network + const txidStr = await bitbox.RawTransactions.sendRawTransaction([hex]); + console.log(`Transaction ID: ${txidStr}`); + } catch (err) { + console.log(`error: `, err); + } +} + +// Generate a change address from a Mnemonic of a private key. +function changeAddrFromMnemonic(mnemonic, network) { + const rootSeed = bitbox.Mnemonic.toSeed(mnemonic) + const masterHDNode = bitbox.HDNode.fromSeed(rootSeed, network) + const account = bitbox.HDNode.derivePath(masterHDNode, "m/44'/145'/0'") + + // derive the first external change address HDNode which is going to spend utxo + const change = bitbox.HDNode.derivePath(account, "0/0") + return change +} + +// Get the balance in BCH of a BCH address. +async function getBCHBalance(addr, verbose) { + try { + const bchBalance = await bitbox.Address.details(addr) + + if (verbose) console.log(bchBalance) + + return bchBalance.balance + } catch (err) { + console.error(`Error in getBCHBalance: `, err) + console.log(`addr: ${addr}`) + throw err + } +} + +// Returns the utxo with the biggest balance from an array of utxos. +function findBiggestUtxo(utxos) { + let largestAmount = 0 + let largestIndex = 0 + + for (let i = 0; i < utxos.length; i++) { + const thisUtxo = utxos[i] + + if (thisUtxo.satoshis > largestAmount) { + largestAmount = thisUtxo.satoshis + largestIndex = i + } + } + + return utxos[largestIndex] +} + + +module.exports = { + run, +}; From 2eb62e4008ec6ac15a70075c5927e9440aaae2e9 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 18 Feb 2020 07:14:46 -0800 Subject: [PATCH 477/480] Fixes utxo integration tests --- test/integration/address.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/integration/address.js b/test/integration/address.js index 2536f17c..9b213553 100644 --- a/test/integration/address.js +++ b/test/integration/address.js @@ -120,10 +120,10 @@ describe(`#address`, () => { describe(`#utxo`, () => { it(`should GET utxos for a single address`, async () => { - const addr = "bitcoincash:qqm8uru433pjygm7q8przw9qw9pacvmvx5cngmqmue" + const addr = "bitcoincash:qzzn0zttjrt9jn6a7jfltl0s4270p5sulu5s7hkefw" const result = await bitbox.Address.utxo(addr) - //console.log(`result: ${JSON.stringify(result, null, 2)}`) + // console.log(`result: ${JSON.stringify(result, null, 2)}`) assert.hasAllKeys(result, [ "utxos", @@ -146,8 +146,8 @@ describe(`#address`, () => { it(`should GET utxo details for an array of addresses`, async () => { const addr = [ - "bitcoincash:qqm8uru433pjygm7q8przw9qw9pacvmvx5cngmqmue", - "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" + "bitcoincash:qzzn0zttjrt9jn6a7jfltl0s4270p5sulu5s7hkefw", + "bitcoincash:qrxhw5lmetex26903t59u5ej694akepzqug8sfljrl" ] const result = await bitbox.Address.utxo(addr) From 2d97a5c839ff2eafc4ac0fc7e21ddcfd54370251 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 18 Feb 2020 10:33:42 -0800 Subject: [PATCH 478/480] Adding custom server ENV VAR for targeting specific servers with integration tests --- package.json | 1 + test/integration/address.js | 2 ++ test/integration/block.js | 2 ++ test/integration/blockchain.js | 2 ++ test/integration/control.js | 2 ++ test/integration/price.js | 2 ++ test/integration/rawtransaction.js | 2 ++ test/integration/transaction.js | 2 ++ test/integration/util.js | 2 ++ 9 files changed, 17 insertions(+) diff --git a/package.json b/package.json index f63adb84..4a1c9eab 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "test:integration": "TEST=integration nyc --reporter=text mocha --timeout 30000 test/integration --exit", "test:integration:local": "TEST=integration SERVER=local nyc --reporter=text mocha --timeout 30000 test/integration --exit", "test:integration:stage": "TEST=integration SERVER=stage nyc --reporter=text mocha --timeout 30000 test/integration --exit", + "test:integration:custom": "TEST=integration SERVER=custom mocha --timeout 30000 test/integration --exit", "coverage": "nyc report --reporter=text-lcov | coveralls", "build": "tsc" }, diff --git a/test/integration/address.js b/test/integration/address.js index 9b213553..74f70c9e 100644 --- a/test/integration/address.js +++ b/test/integration/address.js @@ -17,6 +17,8 @@ if (process.env.SERVER === "local") bitbox = new BITBOX({ restURL: "http://localhost:3000/v2/" }) if (process.env.SERVER === "stage") bitbox = new BITBOX({ restURL: "https://rest.btctest.net/v2/" }) +if (process.env.SERVER === "custom") + bitbox = new BITBOX({ restURL: process.env.SERVERIP }) // Inspect utility used for debugging. const util = require("util") diff --git a/test/integration/block.js b/test/integration/block.js index a183f5b0..6f60225a 100644 --- a/test/integration/block.js +++ b/test/integration/block.js @@ -13,6 +13,8 @@ if (process.env.SERVER === "local") bitbox = new BITBOX({ restURL: "http://localhost:3000/v2/" }) if (process.env.SERVER === "stage") bitbox = new BITBOX({ restURL: "https://rest.btctest.net/v2/" }) +if (process.env.SERVER === "custom") + bitbox = new BITBOX({ restURL: process.env.SERVERIP }) // Inspect utility used for debugging. const util = require("util") diff --git a/test/integration/blockchain.js b/test/integration/blockchain.js index 2d61c692..9735f596 100644 --- a/test/integration/blockchain.js +++ b/test/integration/blockchain.js @@ -17,6 +17,8 @@ if (process.env.SERVER === "local") bitbox = new BITBOX({ restURL: "http://localhost:3000/v2/" }) if (process.env.SERVER === "stage") bitbox = new BITBOX({ restURL: "https://rest.btctest.net/v2/" }) +if (process.env.SERVER === "custom") + bitbox = new BITBOX({ restURL: process.env.SERVERIP }) // Inspect utility used for debugging. const util = require("util") diff --git a/test/integration/control.js b/test/integration/control.js index f80bebac..000deada 100644 --- a/test/integration/control.js +++ b/test/integration/control.js @@ -7,6 +7,8 @@ if (process.env.SERVER === "local") bitbox = new BITBOX({ restURL: "http://localhost:3000/v2/" }) if (process.env.SERVER === "stage") bitbox = new BITBOX({ restURL: "https://rest.btctest.net/v2/" }) +if (process.env.SERVER === "custom") + bitbox = new BITBOX({ restURL: process.env.SERVERIP }) describe("#control", () => { describe("#getNetworkInfo", () => { diff --git a/test/integration/price.js b/test/integration/price.js index 6d28a96e..7a10d058 100644 --- a/test/integration/price.js +++ b/test/integration/price.js @@ -6,6 +6,8 @@ if (process.env.SERVER === "local") bitbox = new BITBOX({ restURL: "http://localhost:3000/v2/" }) if (process.env.SERVER === "stage") bitbox = new BITBOX({ restURL: "https://rest.btctest.net/v2/" }) +if (process.env.SERVER === "custom") + bitbox = new BITBOX({ restURL: process.env.SERVERIP }) describe("#price", () => { describe("#current", () => { diff --git a/test/integration/rawtransaction.js b/test/integration/rawtransaction.js index 6ff44e7c..83c6cb20 100644 --- a/test/integration/rawtransaction.js +++ b/test/integration/rawtransaction.js @@ -15,6 +15,8 @@ if (process.env.SERVER === "local") bitbox = new BITBOX({ restURL: "http://localhost:3000/v2/" }) if (process.env.SERVER === "stage") bitbox = new BITBOX({ restURL: "https://rest.btctest.net/v2/" }) +if (process.env.SERVER === "custom") + bitbox = new BITBOX({ restURL: process.env.SERVERIP }) // Inspect utility used for debugging. const util = require("util") diff --git a/test/integration/transaction.js b/test/integration/transaction.js index 94b086b9..71936d4f 100644 --- a/test/integration/transaction.js +++ b/test/integration/transaction.js @@ -13,6 +13,8 @@ if (process.env.SERVER === "local") bitbox = new BITBOX({ restURL: "http://localhost:3000/v2/" }) if (process.env.SERVER === "stage") bitbox = new BITBOX({ restURL: "https://rest.btctest.net/v2/" }) +if (process.env.SERVER === "custom") + bitbox = new BITBOX({ restURL: process.env.SERVERIP }) // Inspect utility used for debugging. const util = require("util") diff --git a/test/integration/util.js b/test/integration/util.js index e2af5e2c..3ba6a568 100644 --- a/test/integration/util.js +++ b/test/integration/util.js @@ -13,6 +13,8 @@ if (process.env.SERVER === "local") bitbox = new BITBOX({ restURL: "http://localhost:3000/v2/" }) if (process.env.SERVER === "stage") bitbox = new BITBOX({ restURL: "https://rest.btctest.net/v2/" }) +if (process.env.SERVER === "custom") + bitbox = new BITBOX({ restURL: process.env.SERVERIP }) // Inspect utility used for debugging. const util = require("util") From 23c8a486158bbf7a0aa46fcaff476967efae9e72 Mon Sep 17 00:00:00 2001 From: Paul Bergamo Date: Fri, 21 Aug 2020 13:34:33 +0900 Subject: [PATCH 479/480] add documentation from developer.bitcoin.com --- README.md | 31 +- docs/OpCodes.md | 178 +++++ docs/address.md | 1252 ++++++++++++++++++++++++++++++++++++ docs/bitcoincash.md | 517 +++++++++++++++ docs/bitdb.md | 47 ++ docs/block.md | 244 +++++++ docs/blockchain.md | 704 ++++++++++++++++++++ docs/cashAccounts.md | 191 ++++++ docs/console.md | 38 ++ docs/control.md | 135 ++++ docs/crypto.md | 175 +++++ docs/ecpair.md | 243 +++++++ docs/getting-started.md | 129 ++++ docs/hdnode.md | 670 +++++++++++++++++++ docs/images/paper.png | Bin 0 -> 185068 bytes docs/mining.md | 44 ++ docs/mnemonic.md | 293 +++++++++ docs/new.md | 31 + docs/price.md | 30 + docs/rawtransactions.md | 250 +++++++ docs/schnorr.md | 472 ++++++++++++++ docs/script.md | 1135 ++++++++++++++++++++++++++++++++ docs/socket.md | 151 +++++ docs/transaction.md | 123 ++++ docs/transactionBuilder.md | 290 +++++++++ docs/util.md | 118 ++++ 26 files changed, 7486 insertions(+), 5 deletions(-) create mode 100644 docs/OpCodes.md create mode 100644 docs/address.md create mode 100644 docs/bitcoincash.md create mode 100644 docs/bitdb.md create mode 100644 docs/block.md create mode 100644 docs/blockchain.md create mode 100644 docs/cashAccounts.md create mode 100644 docs/console.md create mode 100644 docs/control.md create mode 100644 docs/crypto.md create mode 100644 docs/ecpair.md create mode 100644 docs/getting-started.md create mode 100644 docs/hdnode.md create mode 100644 docs/images/paper.png create mode 100644 docs/mining.md create mode 100644 docs/mnemonic.md create mode 100644 docs/new.md create mode 100644 docs/price.md create mode 100644 docs/rawtransactions.md create mode 100644 docs/schnorr.md create mode 100644 docs/script.md create mode 100644 docs/socket.md create mode 100644 docs/transaction.md create mode 100644 docs/transactionBuilder.md create mode 100644 docs/util.md diff --git a/README.md b/README.md index ac8a7975..161c0da4 100644 --- a/README.md +++ b/README.md @@ -2,12 +2,33 @@ `bitbox-sdk` is a utility for creating great [Bitcoin Cash](https://www.bitcoincash.org) applications. It can be used from the command line or from within client/server apps. -Extensive documentation available at: +Extensive documentation available [in the docs directory](/docs): -- [General docs](https://developer.bitcoin.com) -- [BITBOX Introduction](https://developer.bitcoin.com/bitbox) -- [BITBOX API Reference](https://developer.bitcoin.com/bitbox/docs/getting-started) -- [BITBOX Examples](./examples) +- [Getting Started](/docs/getting-started.md) +- [New](/docs/new.md) +- [BITBOX Examples](/examples) +- [Console](/docs/console.md) +- [Address](/docs/address.md) +- [BitcoinCash](/docs/bitcoincash.md) +- [BitDB](/docs/bitdb.md) +- [Block](/docs/block.md) +- [Blockchain](/docs/blockchain.md) +- [CashAccounts](/docs/cashAccounts.md) +- [Control](/docs/control.md) +- [Crypto](/docs/crypto.md) +- [ECPair](/docs/ecpair.md) +- [HDNode](/docs/hdnode.md) +- [Mining](/docs/mining.md) +- [Mnemonic](/docs/mnemonic.md) +- [OpCodes](/docs/OpCodes.md) +- [Price](/docs/price.md) +- [RawTransactions](/docs/rawtransactions.md) +- [Schnorr](/docs/schnorr.md) +- [Script](/docs/script.md) +- [Socket](/docs/socket.md) +- [Transaction](/docs/transaction.md) +- [TransactionBuilder](/docs/transactionBuilder.md) +- [Util](/docs/util.md) Open Source / Creative Commons Listings diff --git a/docs/OpCodes.md b/docs/OpCodes.md new file mode 100644 index 00000000..df9034d3 --- /dev/null +++ b/docs/OpCodes.md @@ -0,0 +1,178 @@ +# OpCodes + +Bitcoin Cash Script OP Codes are available on the `bitbox.Script` object. + +#### Examples + + // list all op codes + bitbox.Script.opcodes; + // { OP_FALSE: 0, + // OP_0: 0, + // OP_PUSHDATA1: 76, + // OP_PUSHDATA2: 77, + // OP_PUSHDATA4: 78, + // OP_1NEGATE: 79, + // OP_RESERVED: 80, + // OP_TRUE: 81, + // OP_1: 81, + // OP_2: 82, + // OP_3: 83, + // OP_4: 84, + // ... + // } + + // get the op code for a word + bitbox.Script.opcodes.OP_SPLIT + // 127 + bitbox.Script.opcodes.OP_NUM2BIN + // 128 + bitbox.Script.opcodes.OP_BIN2NUM + // 129 + +### Constants + +| Word | Opcode | Hex | Inputs | Outputs | Description | +| ------------ | ------ | --------- | --------- | ------------- | ------------------------------------------------------------------------------------------------------- | +| OP_0 | 0 | 0x00 | Nothing | (empty value) | An empty array of bytes is pushed onto the stack. (This is not a no-op: an item is added to the stack.) | +| OP_FALSE | 0 | 0x00 | Nothing | (empty value) | An empty array of bytes is pushed onto the stack. (This is not a no-op: an item is added to the stack.) | +| N/A | 1-75 | 0x01-0x4b | (special) | data | The next opcode bytes is data to be pushed onto the stack | +| OP_PUSHDATA1 | 76 | 0x4c | (special) | data | The next byte contains the number of bytes to be pushed onto the stack. | +| OP_PUSHDATA2 | 77 | 0x4d | (special) | data | The next two bytes contain the number of bytes to be pushed onto the stack in little endian order. | +| OP_PUSHDATA4 | 78 | 0x4e | (special) | data | The next four bytes contain the number of bytes to be pushed onto the stack in little endian order. | +| OP_1NEGATE | 79 | 0x4f | Nothing. | -1 | The number -1 is pushed onto the stack. | +| OP_TRUE | 81 | 0x51 | Nothing. | | The number 1 is pushed onto the stack. | +| OP_1 | 81 | 0x51 | Nothing. | | The number 1 is pushed onto the stack. | +| OP_2-OP_16 | 82-96 | 0x52-0x60 | Nothing. | 2-16 | The number in the word name (2-16) is pushed onto the stack. | + +### Flow control + +| Word | Opcode | Hex | Inputs | Outputs | Description | +| --------- | ------ | ---- | --------------------------------------------------------- | --------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| OP_NOP | 97 | 0x61 | Nothing | Nothing | Does nothing. | +| OP_IF | 99 | 0x63 | if [statements]else [statements]]\* endif | if [statements]else [statements]]\* endif | If the top stack value is not False, the statements are executed. The top stack value is removed. | +| OP_NOTIF | 100 | 0x64 | notif [statements]else [statements]]\* endif | notif [statements]else [statements]]\* endif | If the top stack value is False, the statements are executed. The top stack value is removed. | +| OP_ELSE | 103 | 0x67 | if [statements]else [statements]]\* endif | if [statements]else [statements]]\* endif | If the preceding OP_IF or OP_NOTIF or OP_ELSE was not executed then these statements are and if the preceding OP_IF or OP_NOTIF or OP_ELSE was executed then these statements are not. | +| OP_ENDIF | 104 | 0x68 | if [statements]else [statements]]\* endif | if [statements]else [statements]]\* endif | Ends an if/else block. All blocks must end, or the transaction is invalid. An OP_ENDIF without OP_IF earlier is also invalid. | +| OP_VERIFY | 105 | 0x69 | True / false | Nothing / fail | Marks transaction as invalid if top stack value is not true. The top stack value is removed. | +| OP_RETURN | 106 | 0x6a | Nothing | fail | Marks transaction as invalid. | + +### Stack + +| Word | Opcode | Hex | Inputs | Outputs | Description | +| --------------- | ------ | ---- | ------------------- | ------------------ | -------------------------------------------------------------------------------------- | +| OP_TOALTSTACK | 107 | 0x6b | x1 | (alt)x1 | Puts the input onto the top of the alt stack. Removes it from the main stack. | +| OP_FROMALTSTACK | 108 | 0x6c | (alt)x1 | x1 | Puts the input onto the top of the main stack. Removes it from the alt stack. | +| OP_IFDUP | 115 | 0x73 | x | x / x x | If the top stack value is not 0, duplicate it. | +| OP_DEPTH | 116 | 0x74 | Nothing | | Puts the number of stack items onto the stack. | +| OP_DROP | 117 | 0x75 | x | Nothing | Removes the top stack item. | +| OP_DUP | 118 | 0x76 | x | x x | Duplicates the top stack item. | +| OP_NIP | 119 | 0x77 | x1 x2 | x2 | Removes the second-to-top stack item. | +| OP_OVER | 120 | 0x78 | x1 x2 | x1 x2 x1 | Copies the second-to-top stack item to the top. | +| OP_PICK | 121 | 0x79 | xn ... x2 x1 x0 | xn ... x2 x1 x0 xn | The item n back in the stack is copied to the top. | +| OP_ROLL | 122 | 0x7a | xn ... x2 x1 x0 | ... x2 x1 x0 xn | The item n back in the stack is moved to the top. | +| OP_ROT | 123 | 0x7b | x1 x2 x3 | x2 x3 x1 | The top three items on the stack are rotated to the left. | +| OP_SWAP | 124 | 0x7c | x1 x2 | x2 x1 | The top two items on the stack are swapped. | +| OP_TUCK | 125 | 0x7d | x1 x2 | x2 x1 x2 | The item at the top of the stack is copied and inserted before the second-to-top item. | +| OP_2DROP | 109 | 0x6d | x1 x2 | Nothing | Removes the top two stack items. | +| OP_2DUP | 110 | 0x6e | x1 x2 | x1 x2 x1 x2 | Duplicates the top two stack items. | +| OP_3DUP | 111 | 0x6f | x1 x2 x3 | x1 x2 x3 x1 x2 x3 | Duplicates the top three stack items. | +| OP_2OVER | 112 | 0x70 | x1 x2 x3 x4 | x1 x2 x3 x4 x1 x2 | Copies the pair of items two spaces back in the stack to the front. | +| OP_2ROT | 113 | 0x71 | x1 x2 x3 x4 x5 x6 | x3 x4 x5 x6 x1 x2 | The fifth and sixth items back are moved to the top of the stack. | +| OP_2SWAP | 114 | 0x72 | x1 x2 x3 x4 | x3 x4 x1 x2 | Swaps the top two pairs of items. | + +### Splice + +| Word | Opcode | Hex | Inputs | Outputs | Description | +| --------- | ------ | ---- | ------------- | ------- | ------------------------------------------------------------------------------ | +| OP_CAT | 126 | 0x7e | x1 x2 | out | Concatenates two strings | +| OP_SUBSTR | 127 | 0x7f | in begin size | out | Returns a section of a string | +| OP_LEFT | 128 | 0x80 | in size | out | Keeps only characters left of the specified point in a string. | +| OP_RIGHT | 129 | 0x81 | in size | out | Keeps only characters right of the specified point in a string. | +| OP_SIZE | 130 | 0x82 | in | in size | Pushes the string length of the top element of the stack (without popping it). | + +### Bitwise logic + +| Word | Opcode | Hex | Inputs | Outputs | Description | +| -------------- | ------ | ---- | ------ | -------------- | ------------------------------------------------------- | +| OP_INVERT | 131 | 0x83 | in | out | Flips all of the bits in the input. | +| OP_AND | 132 | 0x84 | x1 x2 | out | Boolean and between each bit in the inputs. | +| OP_OR | 133 | 0x85 | x1 x2 | out | Boolean or between each bit in the inputs. | +| OP_XOR | 134 | 0x86 | x1 x2 | out | Boolean exclusive or between each bit in the inputs. | +| OP_EQUAL | 135 | 0x87 | x1 x2 | True / false | Returns 1 if the inputs are exactly equal, 0 otherwise. | +| OP_EQUALVERIFY | 136 | 0x88 | x1 x2 | Nothing / fail | Same as OP_EQUAL, but runs OP_VERIFY afterward. | + +### Arithmetic + +| Word | Opcode | Hex | Inputs | Outputs | Description | +| --------------------- | ------ | ---- | --------- | -------------- | --------------------------------------------------------------------------- | +| OP_1ADD | 139 | 0x8b | in | out | 1 is added to the input. | +| OP_1SUB | 140 | 0x8c | in | out | 1 is subtracted from the input. | +| OP_2MUL | 141 | 0x8d | in | out | The input is multiplied by 2. | +| OP_2DIV | 142 | 0x8e | in | out | The input is divided by 2. | +| OP_NEGATE | 143 | 0x8f | in | out | The sign of the input is flipped. | +| OP_ABS | 144 | 0x90 | in | out | The input is made positive. | +| OP_NOT | 145 | 0x91 | in | out | If the input is 0 or 1, it is flipped. Otherwise the output will be 0. | +| OP_0NOTEQUAL | 146 | 0x92 | in | out | Returns 0 if the input is 0. 1 otherwise. | +| OP_ADD | 147 | 0x93 | a b | out | a is added to b. | +| OP_SUB | 148 | 0x94 | a b | out | b is subtracted from a. | +| OP_MUL | 149 | 0x95 | a b | out | a is multiplied by b. | +| OP_DIV | 150 | 0x96 | a b | out | a is divided by b. | +| OP_MOD | 151 | 0x97 | a b | out | Returns the remainder after dividing a by b. | +| OP_LSHIFT | 152 | 0x98 | a b | out | Shifts a left b bits, preserving sign. | +| OP_RSHIFT | 153 | 0x99 | a b | out | Shifts a right b bits, preserving sign. | +| OP_BOOLAND | 154 | 0x9a | a b | out | If both a and b are not "" (null string), the output is 1. Otherwise 0. | +| OP_BOOLOR | 155 | 0x9b | a b | out | If a or b is not "" (null string), the output is 1. Otherwise 0. | +| OP_NUMEQUAL | 156 | 0x9c | a b | out | Returns 1 if the numbers are equal, 0 otherwise. | +| OP_NUMEQUALVERIFY | 157 | 0x9d | a b | Nothing / fail | Same as OP_NUMEQUAL, but runs OP_VERIFY afterward. | +| OP_NUMNOTEQUAL | 158 | 0x9e | a b | out | Returns 1 if the numbers are not equal, 0 otherwise. | +| OP_LESSTHAN | 159 | 0x9f | a b | out | Returns 1 if a is less than b, 0 otherwise. | +| OP_GREATERTHAN | 160 | 0xa0 | a b | out | Returns 1 if a is greater than b, 0 otherwise. | +| OP_LESSTHANOREQUAL | 161 | 0xa1 | a b | out | Returns 1 if a is less than or equal to b, 0 otherwise. | +| OP_GREATERTHANOREQUAL | 162 | 0xa2 | a b | out | Returns 1 if a is greater than or equal to b, 0 otherwise. | +| OP_MIN | 163 | 0xa3 | a b | out | Returns the smaller of a and b. | +| OP_MAX | 164 | 0xa4 | a b | out | Returns the larger of a and b. | +| OP_WITHIN | 165 | 0xa5 | x min max | out | Returns 1 if x is within the specified range (left-inclusive), 0 otherwise. | + +### Crypto + +| Word | Opcode | Hex | Inputs | Outputs | Description | +| ---------------------- | ------ | ---- | ---------------------------------------------------------------------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| OP_RIPEMD160 | 166 | 0xa6 | in | hash | The input is hashed using RIPEMD-160. | +| OP_SHA1 | 167 | 0xa7 | in | hash | The input is hashed using SHA-1. | +| OP_SHA256 | 168 | 0xa8 | in | hash | The input is hashed using SHA-256. | +| OP_HASH160 | 169 | 0xa9 | in | hash | The input is hashed twice: first with SHA-256 and then with RIPEMD-160. | +| OP_HASH256 | 170 | 0xaa | in | hash | The input is hashed two times with SHA-256. | +| OP_CODESEPARATOR | 171 | 0xab | Nothing | Nothing | All of the signature checking words will only match signatures to the data after the most recently-executed OP_CODESEPARATOR. | +| OP_CHECKSIG | 172 | 0xac | sig pubkey | True / false | The entire transaction's outputs, inputs, and script (from the most recently-executed OP_CODESEPARATOR to the end) are hashed. The signature used by OP_CHECKSIG must be a valid signature for this hash and public key. If it is, 1 is returned, 0 otherwise. | +| OP_CHECKSIGVERIFY | 173 | 0xad | sig pubkey | Nothing / fail | Same as OP_CHECKSIG, but OP_VERIFY is executed afterward. | +| OP_CHECKMULTISIG | 174 | 0xae | x sig1 sig2 ... pub1 pub2 | True / False | Compares the first signature against each public key until it finds an ECDSA match. Starting with the subsequent public key, it compares the second signature against each remaining public key until it finds an ECDSA match. The process is repeated until all signatures have been checked or not enough public keys remain to produce a successful result. All signatures need to match a public key. Because public keys are not checked again if they fail any signature comparison, signatures must be placed in the scriptSig using the same order as their corresponding public keys were placed in the scriptPubKey or redeemScript. If all signatures are valid, 1 is returned, 0 otherwise. Due to a bug, one extra unused value is removed from the stack. | +| OP_CHECKMULTISIGVERIFY | 175 | 0xaf | x sig1 sig2 ... pub1 pub2 ... | Nothing / fail | Same as OP_CHECKMULTISIG, but OP_VERIFY is executed afterward. | + +### Locktime + +| Word | Opcode | Hex | Inputs | Outputs | Description | +| ---------------------- | ------ | ---- | ------ | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| OP_CHECKLOCKTIMEVERIFY | 177 | 0xb1 | x | x / fail | Marks transaction as invalid if the top stack item is greater than the transaction's nLockTime field, otherwise script evaluation continues as though an OP_NOP was executed. Transaction is also invalid if 1. the stack is empty; or 2. the top stack item is negative; or 3. the top stack item is greater than or equal to 500000000 while the transaction's nLockTime field is less than 500000000, or vice versa; or 4. the input's nSequence field is equal to 0xffffffff. The precise semantics are described in BIP 0065. | +| OP_CHECKSEQUENCEVERIFY | 178 | 0xb2 | x | x / fail | Marks transaction as invalid if the relative lock time of the input (enforced by BIP 0068 with nSequence) is not equal to or longer than the value of the top stack item. The precise semantics are described in BIP 0112. | + +### Pseudo-words + +| Word | Opcode | Hex | Description | +| ---------------- | ------ | ---- | ---------------------------------------------------- | +| OP_PUBKEYHASH | 253 | 0xfd | Represents a public key hashed with OP_HASH160. | +| OP_PUBKEY | 254 | 0xfe | Represents a public key compatible with OP_CHECKSIG. | +| OP_INVALIDOPCODE | 255 | 0xff | Matches any opcode that is not yet assigned. | + +### Reserved words + +| Word | Opcode | Hex | When Used | +| ------------ | ------ | ---- | ----------------------------------------------------------------------- | +| OP_RESERVED | 80 | 0x50 | Transaction is invalid unless occuring in an unexecuted OP_IF branch | +| OP_VER | 98 | 0x62 | Transaction is invalid unless occuring in an unexecuted OP_IF branch | +| OP_VERIF | 101 | 0x65 | Transaction is invalid even when occuring in an unexecuted OP_IF branch | +| OP_VERNOTIF | 102 | 0x66 | Transaction is invalid even when occuring in an unexecuted OP_IF branch | +| OP_RESERVED1 | 137 | 0x89 | Transaction is invalid unless occuring in an unexecuted OP_IF branch | +| OP_RESERVED2 | 138 | 0x8a | Transaction is invalid unless occuring in an unexecuted OP_IF branch | +| OP_NOP1 | 176 | 0xb0 | The word is ignored. Does not mark transaction as invalid. | +| OP_NOP4 | 179 | 0xb3 | The word is ignored. Does not mark transaction as invalid. | +| OP_NOP10 | 185 | 0xb9 | The word is ignored. Does not mark transaction as invalid. | diff --git a/docs/address.md b/docs/address.md new file mode 100644 index 00000000..4862976e --- /dev/null +++ b/docs/address.md @@ -0,0 +1,1252 @@ +# Address + +### `toLegacyAddress` + +Converting cashaddr to legacy address format + +#### Arguments + +1. address `string` cashaddr address to be converted + +#### Result + +legacyAddress `string` legacy base 58 check encoded address + +#### Examples + + // mainnet w/ prefix + bitbox.Address.toLegacyAddress('bitcoincash:qzm47qz5ue99y9yl4aca7jnz7dwgdenl85jkfx3znl') + // 1HiaTupadqQN66Tvgt7QSE5Wg13BUy25eN + + // mainnet w/ no prefix + bitbox.Address.toLegacyAddress('qzm47qz5ue99y9yl4aca7jnz7dwgdenl85jkfx3znl') + // 1HiaTupadqQN66Tvgt7QSE5Wg13BUy25eN + + // testnet w/ prefix + bitbox.Address.toLegacyAddress('bchtest:qph2v4mkxjgdqgmlyjx6njmey0ftrxlnggt9t0a6zy') + // mqc1tmwY2368LLGktnePzEyPAsgADxbksi + + // testnet w/ no prefix + bitbox.Address.toLegacyAddress('qph2v4mkxjgdqgmlyjx6njmey0ftrxlnggt9t0a6zy') + // mqc1tmwY2368LLGktnePzEyPAsgADxbksi + +### `toCashAddress` + +Converting legacy to cashAddress format + +#### Arguments + +1. address `string` required: legacy address to be converted +2. prefix `boolean` optional: include prefix +3. regtest `boolean` optional: return regtest address + +#### Result + +cashAddress `string` cashAddr encoded address + +#### Examples + + // mainnet + bitbox.Address.toCashAddress('1HiaTupadqQN66Tvgt7QSE5Wg13BUy25eN') + // bitcoincash:qzm47qz5ue99y9yl4aca7jnz7dwgdenl85jkfx3znl + + // mainnet no prefix + bitbox.Address.toCashAddress('1HiaTupadqQN66Tvgt7QSE5Wg13BUy25eN', false) + // qzm47qz5ue99y9yl4aca7jnz7dwgdenl85jkfx3znl + + // tesnet + bitbox.Address.toCashAddress('msDbtTj7kWXPpYaR7PQmMK84i66fJqQMLx') + // bchtest:qzq9je6pntpva3wf6scr7mlnycr54sjgeqxgrr9ku3 + + // testnet no prefix + bitbox.Address.toCashAddress('msDbtTj7kWXPpYaR7PQmMK84i66fJqQMLx', false) + // qzq9je6pntpva3wf6scr7mlnycr54sjgeqxgrr9ku3 + +### `isLegacyAddress` + +Detect if legacy base58check encoded address + +#### Arguments + +1. address `string`: address to determine + +#### Result + +isLegacyAddress `boolean`: true/false if legacy address + +#### Examples + + // cashaddr + bitbox.Address.isLegacyAddress('bitcoincash:qqfx3wcg8ts09mt5l3zey06wenapyfqq2qrcyj5x0s') + // false + + // w/ no cashaddr prefix + bitbox.Address.isLegacyAddress('qzm47qz5ue99y9yl4aca7jnz7dwgdenl85jkfx3znl') + // false + + // legacy + bitbox.Address.isLegacyAddress('1HiaTupadqQN66Tvgt7QSE5Wg13BUy25eN') + // true + + // testnet w/ cashaddr prefix + bitbox.Address.isLegacyAddress('bchtest:qph2v4mkxjgdqgmlyjx6njmey0ftrxlnggt9t0a6zy') + // false + + // testnet w/ no cashaddr prefix + bitbox.Address.isLegacyAddress('qph2v4mkxjgdqgmlyjx6njmey0ftrxlnggt9t0a6zy') + // false + + // legacy testnet + bitbox.Address.isLegacyAddress('mqc1tmwY2368LLGktnePzEyPAsgADxbksi') + // true + +### `isCashAddress` + +Detect if cashAddr encoded address + +#### Arguments + +1. address `string`: address to determine + +#### Result + +isCashAddress `boolean`: true/false if cashaddress + +#### Examples + + // mainnet cashaddr + bitbox.Address.isCashAddress('bitcoincash:qqfx3wcg8ts09mt5l3zey06wenapyfqq2qrcyj5x0s') + // true + + // mainnet w/ no cashaddr prefix + bitbox.Address.isCashAddress('qqfx3wcg8ts09mt5l3zey06wenapyfqq2qrcyj5x0s') + // true + + // mainnet legacy + bitbox.Address.isCashAddress('18HEMuar5ZhXDFep1gEiY1eoPPcBLxfDxj') + // false + + // testnet w/ cashaddr prefix + bitbox.Address.isCashAddress('bchtest:qph2v4mkxjgdqgmlyjx6njmey0ftrxlnggt9t0a6zy') + // true + + // testnet w/ no cashaddr prefix + bitbox.Address.isCashAddress('qph2v4mkxjgdqgmlyjx6njmey0ftrxlnggt9t0a6zy') + // true + + // testnet legacy + bitbox.Address.isCashAddress('mqc1tmwY2368LLGktnePzEyPAsgADxbksi') + // false + +### `isMainnetAddress` + +Detect if mainnet address + +#### Arguments + +1. address `string`: address to determine + +#### Result + +isMainnetAddress `boolean`: true/false if mainnet address + +#### Examples + + // mainnet cashaddr + bitbox.Address.isMainnetAddress('bitcoincash:qqfx3wcg8ts09mt5l3zey06wenapyfqq2qrcyj5x0s') + // true + + // mainnet cashaddr w/ no prefix + bitbox.Address.isMainnetAddress('qqfx3wcg8ts09mt5l3zey06wenapyfqq2qrcyj5x0s') + // true + + // mainnet legacy + bitbox.Address.isMainnetAddress('14krEkSaKoTkbFT9iUCfUYARo4EXA8co6M') + // true + + // testnet cashaddr + bitbox.Address.isMainnetAddress('bchtest:qph2v4mkxjgdqgmlyjx6njmey0ftrxlnggt9t0a6zy') + // false + + // testnet w/ no cashaddr prefix + bitbox.Address.isMainnetAddress('qph2v4mkxjgdqgmlyjx6njmey0ftrxlnggt9t0a6zy') + // false + + // testnet legacy + bitbox.Address.isMainnetAddress('mqc1tmwY2368LLGktnePzEyPAsgADxbksi') + // false + +### `isTestnetAddress` + +Detect if testnet address + +#### Arguments + +1. addresss `string`: address to determine + +#### Result + +isTestnetAddresss `boolean`: true/false if is testnet address + +#### Examples + + // cashaddr mainnet + bitbox.Address.isTestnetAddress('bitcoincash:qqfx3wcg8ts09mt5l3zey06wenapyfqq2qrcyj5x0s') + //false + + // w/ no cashaddr prefix + bitbox.Address.isTestnetAddress('qqfx3wcg8ts09mt5l3zey06wenapyfqq2qrcyj5x0s') + // false + + // legacy mainnet + bitbox.Address.isTestnetAddress('14krEkSaKoTkbFT9iUCfUYARo4EXA8co6M') + // false + + // cashaddr testnet + bitbox.Address.isTestnetAddress('bchtest:qph2v4mkxjgdqgmlyjx6njmey0ftrxlnggt9t0a6zy') + // true + + // testnet w/ no cashaddr prefix + bitbox.Address.isTestnetAddress('qph2v4mkxjgdqgmlyjx6njmey0ftrxlnggt9t0a6zy') + // true + + // testnet legacy + bitbox.Address.isTestnetAddress('mqc1tmwY2368LLGktnePzEyPAsgADxbksi') + // true + +### `isRegTestAddress` + +Detect if regtest address + +#### Arguments + +1. addresss `string`: address to determine + +#### Result + +isRegtestAddresss `boolean`: true/false if is regtest address + +#### Examples + + // regtest + bitbox.Address.isRegTestAddress('bchreg:qzq9je6pntpva3wf6scr7mlnycr54sjgequ54zx9lh') + // true + + // regtest w/ no prefix + bitbox.Address.isRegTestAddress('qzq9je6pntpva3wf6scr7mlnycr54sjgequ54zx9lh') + // true + + // cashaddr mainnet + bitbox.Address.isRegTestAddress('bitcoincash:qqfx3wcg8ts09mt5l3zey06wenapyfqq2qrcyj5x0s') + //false + + // w/ no cashaddr prefix + bitbox.Address.isRegTestAddress('qqfx3wcg8ts09mt5l3zey06wenapyfqq2qrcyj5x0s') + // false + + // legacy mainnet + bitbox.Address.isRegTestAddress('14krEkSaKoTkbFT9iUCfUYARo4EXA8co6M') + // false + + // cashaddr testnet + bitbox.Address.isRegTestAddress('bchtest:qph2v4mkxjgdqgmlyjx6njmey0ftrxlnggt9t0a6zy') + // false + + // testnet w/ no cashaddr prefix + bitbox.Address.isRegTestAddress('qph2v4mkxjgdqgmlyjx6njmey0ftrxlnggt9t0a6zy') + // false + +### `isP2PKHAddress` + +Detect if p2pkh address + +#### Arguments + +1. address `string` address to determine + +#### Result + +isP2PKHAddress `boolean` true/false if is p2pkh address + +#### Examples + + // cashaddr + bitbox.Address.isP2PKHAddress('bitcoincash:qqfx3wcg8ts09mt5l3zey06wenapyfqq2qrcyj5x0s') + // true + + // w/ no cashaddr prefix + bitbox.Address.isP2PKHAddress('qqfx3wcg8ts09mt5l3zey06wenapyfqq2qrcyj5x0s') + // true + + // legacy + bitbox.Address.isP2PKHAddress('14krEkSaKoTkbFT9iUCfUYARo4EXA8co6M') + // true + + // legacy testnet + bitbox.Address.isP2PKHAddress('mqc1tmwY2368LLGktnePzEyPAsgADxbksi') + // true + + // testnet w/ no cashaddr prefix + bitbox.Address.isP2PKHAddress('qph2v4mkxjgdqgmlyjx6njmey0ftrxlnggt9t0a6zy') + // true + + // legacy testnet + bitbox.Address.isP2PKHAddress('mqc1tmwY2368LLGktnePzEyPAsgADxbksi') + // true + +### `isP2SHAddress` + +Detect if p2sh address + +#### arguments + +1. address `string` address to determine + +#### Result + +isP2SHAddress `boolean` true/false if is p2sh address + +#### Examples + + // cashaddr + bitbox.Address.isP2SHAddress('bitcoincash:qqfx3wcg8ts09mt5l3zey06wenapyfqq2qrcyj5x0s') + // false + + // cashaddr w/ no prefix + bitbox.Address.isP2SHAddress('qqfx3wcg8ts09mt5l3zey06wenapyfqq2qrcyj5x0s') + // false + + // legacy + bitbox.Address.isP2SHAddress('1NoYQso5UF6XqC4NbjKAp2EnjJ59yLNn74') + // false + + // cashaddr testnet + bitbox.Address.isP2SHAddress('bchtest:qph2v4mkxjgdqgmlyjx6njmey0ftrxlnggt9t0a6zy') + // false + + // cashaddr testnet w/ no prefix + bitbox.Address.isP2SHAddress('qph2v4mkxjgdqgmlyjx6njmey0ftrxlnggt9t0a6zy') + // false + + // legacy testnet + bitbox.Address.isP2SHAddress('mqc1tmwY2368LLGktnePzEyPAsgADxbksi') + // false + +### `detectAddressFormat` + +Detect address format + +#### arguments + +1. address `string` address to determine format + +#### Result + +addressFormat `string` address format + +#### Examples + + // cashaddr + bitbox.Address.detectAddressFormat('bitcoincash:qqfx3wcg8ts09mt5l3zey06wenapyfqq2qrcyj5x0s') + // cashaddr + + // cashaddr w/ no prefix + bitbox.Address.detectAddressFormat('qqfx3wcg8ts09mt5l3zey06wenapyfqq2qrcyj5x0s') + // cashaddr + + // legacy + bitbox.Address.detectAddressFormat('1NoYQso5UF6XqC4NbjKAp2EnjJ59yLNn74') + // legacy + + // cashaddr testnet + bitbox.Address.detectAddressFormat('bchtest:qph2v4mkxjgdqgmlyjx6njmey0ftrxlnggt9t0a6zy') + // cashaddr + + // cashaddr testnet w/ no prefix + bitbox.Address.detectAddressFormat('qph2v4mkxjgdqgmlyjx6njmey0ftrxlnggt9t0a6zy') + // cashaddr + + // legacy testnet + bitbox.Address.detectAddressFormat('mqc1tmwY2368LLGktnePzEyPAsgADxbksi') + // legacy + +### `detectAddressNetwork` + +Detect address network + +#### arguments + +1. address `string` address to determine network + +#### Result + +addressNetwork `string` address network + +#### Examples + + // cashaddr + bitbox.Address.detectAddressNetwork('bitcoincash:qqfx3wcg8ts09mt5l3zey06wenapyfqq2qrcyj5x0s') + // mainnet + + // cashaddr w/ no prefix + bitbox.Address.detectAddressNetwork('qqfx3wcg8ts09mt5l3zey06wenapyfqq2qrcyj5x0s') + // mainnet + + // legacy + bitbox.Address.detectAddressNetwork('1NoYQso5UF6XqC4NbjKAp2EnjJ59yLNn74') + // mainnet + + // cashaddr testnet + bitbox.Address.detectAddressNetwork('bchtest:qph2v4mkxjgdqgmlyjx6njmey0ftrxlnggt9t0a6zy') + // testnet + + // cashaddr testnet w/ no prefix + bitbox.Address.detectAddressNetwork('qph2v4mkxjgdqgmlyjx6njmey0ftrxlnggt9t0a6zy') + // testnet + + // legacy testnet + bitbox.Address.detectAddressNetwork('mqc1tmwY2368LLGktnePzEyPAsgADxbksi') + // testnet + +### `detectAddressType` + +Detect address network + +#### arguments + +1. address `string` address to determine network + +#### Result + +addressNetwork `string` address network + +#### Examples + + // cashaddr + bitbox.Address.detectAddressType('bitcoincash:qqfx3wcg8ts09mt5l3zey06wenapyfqq2qrcyj5x0s'); + // p2pkh + + // cashaddr w/ no prefix + bitbox.Address.detectAddressType('qqfx3wcg8ts09mt5l3zey06wenapyfqq2qrcyj5x0s'); + // p2pkh + + // legacy + bitbox.Address.detectAddressType('1NoYQso5UF6XqC4NbjKAp2EnjJ59yLNn74'); + // p2pkh + + // cashaddr testnet + bitbox.Address.detectAddressType('bchtest:qph2v4mkxjgdqgmlyjx6njmey0ftrxlnggt9t0a6zy'); + // p2pkh + + // cashaddr testnet w/ no prefix + bitbox.Address.detectAddressType('qph2v4mkxjgdqgmlyjx6njmey0ftrxlnggt9t0a6zy'); + // p2pkh + + // legacy testnet + bitbox.Address.detectAddressType('mqc1tmwY2368LLGktnePzEyPAsgADxbksi'); + // p2pkh + +### `fromXPub` + +Generates an address for an extended public key (xpub) + +#### Arguments + +1. xpub `string`: extended public key to be used +2. path `string` **optional**: derivation path of external change address. Default is `0/0` + +#### Result + +changeAddress `string`: cashaddr encoded change address + +#### Examples + + // generate 5 mainnet external change addresses for xpub6DTNmB7gWa8RtQAfmy8wSDikM5mky4fhsnqQd9AqoCaLcekqNgRZW5JCSXwXkLDkABHTD1qx7kqrbGzT6xBGfAvCJSj2rwvKWP8eZBR2EVA + let xpub = 'xpub6DTNmB7gWa8RtQAfmy8wSDikM5mky4fhsnqQd9AqoCaLcekqNgRZW5JCSXwXkLDkABHTD1qx7kqrbGzT6xBGfAvCJSj2rwvKWP8eZBR2EVA'; + for(let i = 0; i <= 4; i++) { + console.log(bitbox.Address.fromXPub(xpub, "0/" + i)) + } + // bitcoincash:qptnmya5wkly7xf97wm5ak23yqdsz3l2cyj7k9vyyh + // bitcoincash:qrr2suh9yjsrkl2qp3p967uhfg6u0r6xxsn9h5vuvr + // bitcoincash:qpkfg4kck99wksyss6nvaqtafeahfnyrpsj0ed372t + // bitcoincash:qppgmuuwy07g0x39sx2z0x2u8e34tvfdxvy0c2jvx7 + // bitcoincash:qryj8x4s7vfsc864jm0xaak9qfe8qgk245y9ska57l + + // generate 5 testnet external change addresses for tpubDCrnMSKwDMAbxg82yqDt97peMvftCXk3EfBb9WgZh27mPbHGkysU3TW7qX5AwydmnVQfaGeNhUR6okQ3dS5AJTP9gEP7jk2Wcj6Xntc6gNh + let xpub = 'tpubDCrnMSKwDMAbxg82yqDt97peMvftCXk3EfBb9WgZh27mPbHGkysU3TW7qX5AwydmnVQfaGeNhUR6okQ3dS5AJTP9gEP7jk2Wcj6Xntc6gNh'; + for(let i = 0; i <= 4; i++) { + console.log(bitbox.Address.fromXPub(xpub, "0/" + i)) + } + // bchtest:qrth8470sc9scek9u0jj2d0349t62gxzdstw2jukl8 + // bchtest:qpm56zc5re0nhms96r7p985aajthp0vxvg6e4ux3kc + // bchtest:qqtu3tf6yyd73ejhk3a2ylqynpl3mzzhwuzt299jfd + // bchtest:qzd7dvlnfukggjqsf5ju0qqwwltakfumjsck33js6m + // bchtest:qq322ataqeas4n0pdn4gz2sdereh5ae43ylk4qdvus + +### `fromXPriv` + +Generates an address for an extended private key (xpriv) + +#### Arguments + +1. xpriv `string`: extended private key to be used +2. path `string` **optional**: derivation path of change address. Default is `0'/0` + +#### Result + +changeAddress `string`: cashaddr encoded change address + +#### Examples + + // generate 5 mainnet addresses for xprvA2WwD9mk1Qd3rMjQ4ZRHvCWCj47jbXjY9Nf7npNRBmGUJngpRAvJzNpNgt7h2dDQ5huG7yFwYfz4PFJDPzkqfvBNPHnaio4yAbbUuv3EBnL + let xpriv = 'xprvA2WwD9mk1Qd3rMjQ4ZRHvCWCj47jbXjY9Nf7npNRBmGUJngpRAvJzNpNgt7h2dDQ5huG7yFwYfz4PFJDPzkqfvBNPHnaio4yAbbUuv3EBnL'; + for(let i = 0; i <= 4; i++) { + console.log(bitbox.Address.fromXPriv(xpriv, "0'/" + i)) + } + // bitcoincash:qpmcs78tpfvfphhedcczydaddu5wmcx0xvrwf3fjph + // bitcoincash:qppfr7fu4dzxguen85rjwa6ress3sl839qyudganxj + // bitcoincash:qpuaaaseccxyjj04d2l3qv4vd2wxj6gtwvnfe3ckh8 + // bitcoincash:qp46n7a53jvkarp9ps595fjv8czfd045v5zk4xhspm + // bitcoincash:qprjdqx7cnrac4uemp2fza08k875wsgzfcapk76n9n + + // generate 5 testnet addresses for tprv8jBszV65QgT8TAxvj8Go5r8C3BXwq3mYUvaEfEnsfjkx6PRuQYG4W8Bpc4HM2zbiT9S384shi2Zrr6qxXD6nUySxuvztP9o25hLuMcDvMYD + let xpriv = 'tprv8jBszV65QgT8TAxvj8Go5r8C3BXwq3mYUvaEfEnsfjkx6PRuQYG4W8Bpc4HM2zbiT9S384shi2Zrr6qxXD6nUySxuvztP9o25hLuMcDvMYD'; + for(let i = 0; i <= 4; i++) { + console.log(bitbox.Address.fromXPub(xpriv, "0'/" + i)) + } + // bchtest:qpmcs78tpfvfphhedcczydaddu5wmcx0xv8udkt9xt + // bchtest:qppfr7fu4dzxguen85rjwa6ress3sl839qqwf0lypw + // bchtest:qpuaaaseccxyjj04d2l3qv4vd2wxj6gtwvhmak6psm + // bchtest:qp46n7a53jvkarp9ps595fjv8czfd045v5xy3p48x8 + // bchtest:qprjdqx7cnrac4uemp2fza08k875wsgzfcenjecyz0 + +### `fromOutputScript` + +Detect an addess from an OutputScript. + +#### Arguments + +1. scriptPubKey `Buffer`: scriptPubKey +2. network `string` **optional**: defaults to "mainnet" + +#### Result + +changeAddress `string`: cashaddr encoded change address + +#### Examples + + const script = bitbox.Script.encode([ + Buffer.from("BOX", "ascii"), + bitbox.Script.opcodes.OP_CAT, + Buffer.from("BITBOX", "ascii"), + bitbox.Script.opcodes.OP_EQUAL + ]); + const p2sh_hash160 = bitbox.Crypto.hash160(script); + const scriptPubKey = bitbox.Script.scriptHash.output.encode(p2sh_hash160); + + // mainnet address from output script + bitbox.Address.fromOutputScript(scriptPubKey); + // bitcoincash:pz0qcslrqn7hr44hsszwl4lw5r6udkg6zqncnufkrl + + // testnet address from output script + bitbox.Address.fromOutputScript(scriptPubKey, 'testnet'); + // bchtest:pz0qcslrqn7hr44hsszwl4lw5r6udkg6zqh2hmtpyr + +### `isHash160` + +Detect if an addess is a hash160. + +#### Arguments + +1. address `string`: address + +#### Result + +isHash160 `boolean`: true/false if address is hash160 + +#### Examples + + let hash160Address = '428df38e23fc879a25819427995c3e6355b12d33'; + bitbox.Address.isHash160(hash160Address); + // true + + let notHash160Address = 'bitcoincash:pz8a837lttkvjksg0jjmmulqvfkgpqrcdgufy8ns5s'; + bitbox.Address.isHash160(notHash160Address); + // false + +### `legacyToHash160` + +Convert legacy address to hash160. + +#### Arguments + +1. address `string`: legacy address + +#### Result + +hash160 `string`: hash160 + +#### Examples + + // legacy mainnet p2pkh + bitbox.Address.legacyToHash160("18xHZ8g2feo4ceejGpvzHkvXT79fi2ZdTG") + // 573d93b475be4f1925f3b74ed951201b0147eac1 + + // legacy mainnet p2sh + bitbox.Address.legacyToHash160("3DA6RBcFgLwLTpnF6BRAee8w6a9H6JQLCm") + // 7dc85da64d1d93ef01ef62e0221c02f512e3942f + + // legacy testnet p2pkh + bitbox.Address.legacyToHash160("mhTg9sgNgvAGfmJs192oUzQWqAXHH5nqLE") + // 155187a3283b08b30519db50bc23bbba9f4b6657 + +### `cashToHash160` + +Convert cash address to hash160. + +#### Arguments + +1. address `string`: cash address + +#### Result + +hash160 `string`: hash160 + +#### Examples + + // cash address mainnet p2pkh + bitbox.Address.cashToHash160("bitcoincash:qptnmya5wkly7xf97wm5ak23yqdsz3l2cyj7k9vyyh") + // 573d93b475be4f1925f3b74ed951201b0147eac1 + + // cash address mainnet p2sh + bitbox.Address.cashToHash160("bitcoincash:pp7ushdxf5we8mcpaa3wqgsuqt639cu59ur5xu5fug") + // 7dc85da64d1d93ef01ef62e0221c02f512e3942f + + // cash address testnet p2pkh + bitbox.Address.cashToHash160("bchtest:qq24rpar9qas3vc9r8d4p0prhwaf7jmx2u22nzt946") + // 155187a3283b08b30519db50bc23bbba9f4b6657 + +### `hash160ToLegacy` + +Convert hash160 to legacy address. + +#### Arguments + +1. hash160 `string`: hash160 +2. network `number` **optional** + +#### Result + +legacyAddress `string`: the address in legacy format + +#### Examples + + // legacy mainnet p2pkh + bitbox.Address.hash160ToLegacy("573d93b475be4f1925f3b74ed951201b0147eac1") + // 18xHZ8g2feo4ceejGpvzHkvXT79fi2ZdTG + + // legacy mainnet p2sh + bitbox.Address.hash160ToLegacy("7dc85da64d1d93ef01ef62e0221c02f512e3942f", 0x05) + // 3DA6RBcFgLwLTpnF6BRAee8w6a9H6JQLCm + + // legacy testnet p2pkh + bitbox.Address.hash160ToLegacy("155187a3283b08b30519db50bc23bbba9f4b6657", 0x6f) + // mhTg9sgNgvAGfmJs192oUzQWqAXHH5nqLE + +### `hash160ToCash` + +Convert hash160 to cash address. + +#### Arguments + +1. hash160 `string`: hash160 +2. network `number` **optional** + +#### Result + +cashAddress `string`: the address in cash format + +#### Examples + + bitbox.Address.hash160ToCash("573d93b475be4f1925f3b74ed951201b0147eac1") + 'bitcoincash:qptnmya5wkly7xf97wm5ak23yqdsz3l2cyj7k9vyyh' + bitbox.Address.hash160ToCash("7dc85da64d1d93ef01ef62e0221c02f512e3942f", 0x05) + 'bitcoincash:pp7ushdxf5we8mcpaa3wqgsuqt639cu59ur5xu5fug' + bitbox.Address.hash160ToCash("155187a3283b08b30519db50bc23bbba9f4b6657", 0x6f) + 'bchtest:qq24rpar9qas3vc9r8d4p0prhwaf7jmx2u22nzt946' + +### `details` + +Return details about an address including balance. + +#### Arguments + +- addresses (required): + - `string`: A single string containing a legacy or cash address. + - `Array` of strings: Array with maximum of 20 legacy or cash addresses. + +#### Result + +- details: + - `Promise`: containing details about the single address. + - `Promise`: Array of Objects with details about addresses. + +#### Examples + + (async () => { + try { + let details = await bitbox.Address.details('1BFHGm4HzqgXXyNX8n7DsQno5DAC4iLMRA'); + console.log(details) + } catch(error) { + console.error(error) + } + })() + + // { + // "addrStr": "1BFHGm4HzqgXXyNX8n7DsQno5DAC4iLMRA", + // "balance": 0.36781097, + // "balanceSat": 36781097, + // "totalReceived": 0.36781097, + // "totalReceivedSat": 36781097, + // "totalSent": 0, + // "totalSentSat": 0, + // "unconfirmedBalance": 0, + // "unconfirmedBalanceSat": 0, + // "unconfirmedTxAppearances": 0, + // "txAppearances": 7, + // "transactions": [ + // "f737485aaee3c10b13013fa109bb6294b099246134ca9885f4cc332dbc6c9bb4", + // "decd5b9c0c959e4e543182093e8f7f8bc7a6ecd96a8a062daaeff3667f8feca7", + // "94e69a627a34ae27fca81d15fff4323a7ce1f7c275c7485762ce018221017632", + // "e67c70787af7f3506263c9eda007f3d2d24bd750ff95b5c50a120d9118dfd807", + // "8e5e00704a147d54028f94d52df7730e821b9c6cd4bd29494e5636f49c199d6a", + // "15102827c108566ea5daf725c09079c1a3f42ef99d1eb68ea8c584f7b16ab87a", + // "cc27be8846276612dfce5924b7be96556212f0f0e62bd17641732175edb9911e" + // ] + // } + + (async () => { + try { + let details = await bitbox.Address.details(['1BFHGm4HzqgXXyNX8n7DsQno5DAC4iLMRA', "bitcoincash:qp7ekaepv3wf2nq035hevcma4x9sxmp3w56048g6ra"]); + console.log(details) + } catch(error) { + console.error(error) + } + })() + + // [ { balance: 0.36781097, + // balanceSat: 36781097, + // totalReceived: 0.36781097, + // totalReceivedSat: 36781097, + // totalSent: 0, + // totalSentSat: 0, + // unconfirmedBalance: 0, + // unconfirmedBalanceSat: 0, + // unconfirmedTxAppearances: 0, + // txAppearances: 7, + // transactions: + // [ 'f737485aaee3c10b13013fa109bb6294b099246134ca9885f4cc332dbc6c9bb4', + // 'decd5b9c0c959e4e543182093e8f7f8bc7a6ecd96a8a062daaeff3667f8feca7', + // '94e69a627a34ae27fca81d15fff4323a7ce1f7c275c7485762ce018221017632', + // 'e67c70787af7f3506263c9eda007f3d2d24bd750ff95b5c50a120d9118dfd807', + // '8e5e00704a147d54028f94d52df7730e821b9c6cd4bd29494e5636f49c199d6a', + // '15102827c108566ea5daf725c09079c1a3f42ef99d1eb68ea8c584f7b16ab87a', + // 'cc27be8846276612dfce5924b7be96556212f0f0e62bd17641732175edb9911e' ], + // legacyAddress: '1BFHGm4HzqgXXyNX8n7DsQno5DAC4iLMRA', + // cashAddress: 'bitcoincash:qpcxf2sv9hjw08nvpgffpamfus9nmksm3chv5zqtnz' }, + // { balance: 0, + // balanceSat: 0, + // totalReceived: 0, + // totalReceivedSat: 0, + // totalSent: 0, + // totalSentSat: 0, + // unconfirmedBalance: 0, + // unconfirmedBalanceSat: 0, + // unconfirmedTxAppearances: 0, + // txAppearances: 0, + // transactions: [], + // legacyAddress: '1CT9huFgxMFveRvzZ7zPPJNoaMm2Fo64VH', + // cashAddress: 'bitcoincash:qp7ekaepv3wf2nq035hevcma4x9sxmp3w56048g6ra' } ] + +### `utxo` + +Return list of uxto for address. This includes confirmed and unconfirmed utxos. + +#### Arguments + +- addresses (required) - 2 formats allowed: + - `string`: A single string containing a legacy or cash address. + - `Array` of strings: Array with maximum of 20 legacy or cash addresses. + +#### Result + +- utxo (2 formats based on the argument format): + - utxo `Promise` + - utxos `Promise` + +#### Examples + + (async () => { + try { + let utxo = await bitbox.Address.utxo('1M1FYu4zuVaxRPWLZG5CnP8qQrZaqu6c2L'); + console.log(utxo); + } catch(error) { + console.error(error) + } + })() + + // { + // "utxos": [ + // { + // "txid": "27ec8512c1a9ee9e9ae9b98eb60375f1d2bd60e2e76a1eff5a45afdbc517cf9c", + // "vout": 0, + // "amount": 0.001, + // "satoshis": 100000, + // "height": 560430, + // "confirmations": 5163 + // }, + // { + // "txid": "6e1ae1bf7db6de799ec1c05ab2816ac65549bd80141567af088e6f291385b07d", + // "vout": 0, + // "amount": 0.0013, + // "satoshis": 130000, + // "height": 560039, + // "confirmations": 5554 + // } + // ], + // "legacyAddress": "1M1FYu4zuVaxRPWLZG5CnP8qQrZaqu6c2L", + // "cashAddress": "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + // "scriptPubKey": "76a914db6ea94fa26b7272dc5e1487c35f258391e0f38788ac" + // } + + (async () => { + try { + let utxo = await bitbox.Address.utxo([ + "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" + ]); + console.log(utxo); + } catch(error) { + console.error(error) + } + })() + + // [ + // { + // "utxos": [ + // { + // "txid": "27ec8512c1a9ee9e9ae9b98eb60375f1d2bd60e2e76a1eff5a45afdbc517cf9c", + // "vout": 0, + // "amount": 0.001, + // "satoshis": 100000, + // "height": 560430, + // "confirmations": 5163 + // }, + // { + // "txid": "6e1ae1bf7db6de799ec1c05ab2816ac65549bd80141567af088e6f291385b07d", + // "vout": 0, + // "amount": 0.0013, + // "satoshis": 130000, + // "height": 560039, + // "confirmations": 5554 + // } + // ], + // "legacyAddress": "1M1FYu4zuVaxRPWLZG5CnP8qQrZaqu6c2L", + // "cashAddress": "bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf", + // "scriptPubKey": "76a914db6ea94fa26b7272dc5e1487c35f258391e0f38788ac" + // }, + // { + // "utxos": [], + // "legacyAddress": "19LXyLnux1tbTdHnMuYAgDZ81ZQDWEi12g", + // "cashAddress": "bitcoincash:qpdh9s677ya8tnx7zdhfrn8qfyvy22wj4qa7nwqa5v" + // } + // ] + +### `unconfirmed` + +Return list of unconfirmed transactions for address + +#### Arguments + +- addresses (required): + - `string`: A single string containing a legacy or cash address. + - `Array` of strings: Array with maximum of 20 legacy or cash addresses. + +#### Result + +- unconfirmed: + - utxo `Promise`: containing `utxo` array of utxos, plus `legacyAddress` and + `cashAddress` properties. + - utxos `Promise`: Array of utxo Objects. + +#### Examples + + (async () => { + try { + let unconfirmed = await bitbox.Address.unconfirmed('1JCwsMQtiV85fGjps4zXceaCCgxpQ1u84R'); + console.log(unconfirmed); + } catch(error) { + console.error(error) + } + })() + + // { + // "utxos": [ + // { + // "address": "1JCwsMQtiV85fGjps4zXceaCCgxpQ1u84R", + // "txid": "5ddf277cecefab4bb75fb5d6ba21170cec756ef28a045cb4ec45ccffda28cdaf", + // "vout": 0, + // "scriptPubKey": "76a914bcbc83f8fadb704a6aeccf38079e428da445b11e88ac", + // "amount": 0.0001, + // "satoshis": 10000, + // "confirmations": 0, + // "ts": 1547670883 + // } + // ], + // "legacyAddress": "1JCwsMQtiV85fGjps4zXceaCCgxpQ1u84R", + // "cashAddress": "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" + // } + + (async () => { + try { + let unconfirmed = await bitbox.Address.unconfirmed(['1JCwsMQtiV85fGjps4zXceaCCgxpQ1u84R', "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk"]) + console.log(unconfirmed); + } catch(error) { + console.error(error) + } + })() + + // [ + // { + // "utxos": [ + // { + // "address": "1JCwsMQtiV85fGjps4zXceaCCgxpQ1u84R", + // "txid": "5ddf277cecefab4bb75fb5d6ba21170cec756ef28a045cb4ec45ccffda28cdaf", + // "vout": 0, + // "scriptPubKey": "76a914bcbc83f8fadb704a6aeccf38079e428da445b11e88ac", + // "amount": 0.0001, + // "satoshis": 10000, + // "confirmations": 0, + // "ts": 1547670883 + // } + // ], + // "legacyAddress": "1JCwsMQtiV85fGjps4zXceaCCgxpQ1u84R", + // "cashAddress": "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs" + // }, + // { + // "utxos": [ + // { + // "address": "15PCyMYPK6EX4xGenwG55FwdNnuyoHzYAX", + // "txid": "f15ea5a836165bff9d711e9a1340e23554e28e03239aa3f4f9951c11ca1b6962", + // "vout": 0, + // "scriptPubKey": "76a9143013a5cfd37726a9134f66171172f00b1755e79b88ac", + // "amount": 0.0001, + // "satoshis": 10000, + // "confirmations": 0, + // "ts": 1547670908 + // } + // ], + // "legacyAddress": "15PCyMYPK6EX4xGenwG55FwdNnuyoHzYAX", + // "cashAddress": "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" + // } + // ] + +### `transactions` + +Returns decoded transactions for an address + +#### Arguments + +- addresses (required): + - `string`: A single string containing a legacy or cash address. + - `Array` of strings: Array with maximum of 20 legacy or cash addresses. + +#### Result + +- transaction: + - `Object`: containing `txs` array of decoded transactions, plus `legacyAddress` and + `cashAddress` properties. + - `Array`: Array of txs Objects. + +#### Examples + + (async () => { + try { + let transaction = await bitbox.Address.transactions('bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs'); + console.log(transaction); + } catch(error) { + console.error(error) + } + })() + + // { + // "pagesTotal": 1, + // "txs": [ + // { + // "txid": "5ddf277cecefab4bb75fb5d6ba21170cec756ef28a045cb4ec45ccffda28cdaf", + // "version": 2, + // "locktime": 0, + // "vin": [ + // { + // "txid": "d0ff03c2429810991e8e23cfe2f253891eaae391bcbfd61706d340d9d649abea", + // "vout": 0, + // "sequence": 4294967295, + // "n": 0, + // "scriptSig": { + // "hex": "483045022100fc121a12774e7f212f42898ea123ecc03099dc610a48627649f58490f183027b0220113964a117dc5aaed7c76a569a287797ccffad192cc346114340e59a706a1cd841210242faa7cc02f9e6c3a0aec97a946b9d3793fa6ab76362e02dd239bc56393671cd", + // "asm": "3045022100fc121a12774e7f212f42898ea123ecc03099dc610a48627649f58490f183027b0220113964a117dc5aaed7c76a569a287797ccffad192cc346114340e59a706a1cd8[ALL|FORKID] 0242faa7cc02f9e6c3a0aec97a946b9d3793fa6ab76362e02dd239bc56393671cd" + // }, + // "addr": "1GQTe9EdBaF4fCTC2esvPNXewkUZoytADL", + // "valueSat": 3466913, + // "value": 0.03466913, + // "doubleSpentTxID": null + // } + // ], + // "vout": [ + // { + // "value": "0.00010000", + // "n": 0, + // "scriptPubKey": { + // "hex": "76a914bcbc83f8fadb704a6aeccf38079e428da445b11e88ac", + // "asm": "OP_DUP OP_HASH160 bcbc83f8fadb704a6aeccf38079e428da445b11e OP_EQUALVERIFY OP_CHECKSIG", + // "addresses": [ + // "1JCwsMQtiV85fGjps4zXceaCCgxpQ1u84R" + // ], + // "type": "pubkeyhash" + // }, + // "spentTxId": null, + // "spentIndex": null, + // "spentHeight": null + // }, + // { + // "value": "0.03456687", + // "n": 1, + // "scriptPubKey": { + // "hex": "76a914a8f9b1307fa412da6a909f08930e5a502d27a74a88ac", + // "asm": "OP_DUP OP_HASH160 a8f9b1307fa412da6a909f08930e5a502d27a74a OP_EQUALVERIFY OP_CHECKSIG", + // "addresses": [ + // "1GQTe9EdBaF4fCTC2esvPNXewkUZoytADL" + // ], + // "type": "pubkeyhash" + // }, + // "spentTxId": null, + // "spentIndex": null, + // "spentHeight": null + // } + // ], + // "blockheight": -1, + // "confirmations": 0, + // "time": 1547674527, + // "valueOut": 0.03466687, + // "size": 226, + // "valueIn": 0.03466913, + // "fees": 0.00000226 + // } + // ], + // "legacyAddress": "1JCwsMQtiV85fGjps4zXceaCCgxpQ1u84R", + // "cashAddress": "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", + // "currentPage": 0 + // } + + (async () => { + try { + let transaction = await bitbox.Address.transactions([ + "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", + "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk" + ]); + console.log(transaction); + } catch(error) { + console.error(error) + } + })() + + // [ + // { + // "pagesTotal": 1, + // "txs": [ + // { + // "txid": "5ddf277cecefab4bb75fb5d6ba21170cec756ef28a045cb4ec45ccffda28cdaf", + // "version": 2, + // "locktime": 0, + // "vin": [ + // { + // "txid": "d0ff03c2429810991e8e23cfe2f253891eaae391bcbfd61706d340d9d649abea", + // "vout": 0, + // "sequence": 4294967295, + // "n": 0, + // "scriptSig": { + // "hex": "483045022100fc121a12774e7f212f42898ea123ecc03099dc610a48627649f58490f183027b0220113964a117dc5aaed7c76a569a287797ccffad192cc346114340e59a706a1cd841210242faa7cc02f9e6c3a0aec97a946b9d3793fa6ab76362e02dd239bc56393671cd", + // "asm": "3045022100fc121a12774e7f212f42898ea123ecc03099dc610a48627649f58490f183027b0220113964a117dc5aaed7c76a569a287797ccffad192cc346114340e59a706a1cd8[ALL|FORKID] 0242faa7cc02f9e6c3a0aec97a946b9d3793fa6ab76362e02dd239bc56393671cd" + // }, + // "addr": "1GQTe9EdBaF4fCTC2esvPNXewkUZoytADL", + // "valueSat": 3466913, + // "value": 0.03466913, + // "doubleSpentTxID": null + // } + // ], + // "vout": [ + // { + // "value": "0.00010000", + // "n": 0, + // "scriptPubKey": { + // "hex": "76a914bcbc83f8fadb704a6aeccf38079e428da445b11e88ac", + // "asm": "OP_DUP OP_HASH160 bcbc83f8fadb704a6aeccf38079e428da445b11e OP_EQUALVERIFY OP_CHECKSIG", + // "addresses": [ + // "1JCwsMQtiV85fGjps4zXceaCCgxpQ1u84R" + // ], + // "type": "pubkeyhash" + // }, + // "spentTxId": null, + // "spentIndex": null, + // "spentHeight": null + // }, + // { + // "value": "0.03456687", + // "n": 1, + // "scriptPubKey": { + // "hex": "76a914a8f9b1307fa412da6a909f08930e5a502d27a74a88ac", + // "asm": "OP_DUP OP_HASH160 a8f9b1307fa412da6a909f08930e5a502d27a74a OP_EQUALVERIFY OP_CHECKSIG", + // "addresses": [ + // "1GQTe9EdBaF4fCTC2esvPNXewkUZoytADL" + // ], + // "type": "pubkeyhash" + // }, + // "spentTxId": null, + // "spentIndex": null, + // "spentHeight": null + // } + // ], + // "blockheight": -1, + // "confirmations": 0, + // "time": 1547674527, + // "valueOut": 0.03466687, + // "size": 226, + // "valueIn": 0.03466913, + // "fees": 0.00000226 + // } + // ], + // "legacyAddress": "1JCwsMQtiV85fGjps4zXceaCCgxpQ1u84R", + // "cashAddress": "bitcoincash:qz7teqlcltdhqjn2an8nspu7g2x6g3d3rcq8nk4nzs", + // "currentPage": 0 + // }, + // { + // "pagesTotal": 1, + // "txs": [ + // { + // "txid": "f15ea5a836165bff9d711e9a1340e23554e28e03239aa3f4f9951c11ca1b6962", + // "version": 2, + // "locktime": 0, + // "vin": [ + // { + // "txid": "5ddf277cecefab4bb75fb5d6ba21170cec756ef28a045cb4ec45ccffda28cdaf", + // "vout": 1, + // "sequence": 4294967295, + // "n": 0, + // "scriptSig": { + // "hex": "47304402206124fca6aecc35e48b5d1293bd97cadb39f830308c75331b3e5fd2e6806efe9b0220014cf3ecf0be1cb1bee7e362257b33e0905451d44f0902b13ada2765d53332d741210242faa7cc02f9e6c3a0aec97a946b9d3793fa6ab76362e02dd239bc56393671cd", + // "asm": "304402206124fca6aecc35e48b5d1293bd97cadb39f830308c75331b3e5fd2e6806efe9b0220014cf3ecf0be1cb1bee7e362257b33e0905451d44f0902b13ada2765d53332d7[ALL|FORKID] 0242faa7cc02f9e6c3a0aec97a946b9d3793fa6ab76362e02dd239bc56393671cd" + // }, + // "addr": "1GQTe9EdBaF4fCTC2esvPNXewkUZoytADL", + // "valueSat": 3456687, + // "value": 0.03456687, + // "doubleSpentTxID": null + // } + // ], + // "vout": [ + // { + // "value": "0.00010000", + // "n": 0, + // "scriptPubKey": { + // "hex": "76a9143013a5cfd37726a9134f66171172f00b1755e79b88ac", + // "asm": "OP_DUP OP_HASH160 3013a5cfd37726a9134f66171172f00b1755e79b OP_EQUALVERIFY OP_CHECKSIG", + // "addresses": [ + // "15PCyMYPK6EX4xGenwG55FwdNnuyoHzYAX" + // ], + // "type": "pubkeyhash" + // }, + // "spentTxId": null, + // "spentIndex": null, + // "spentHeight": null + // }, + // { + // "value": "0.03446461", + // "n": 1, + // "scriptPubKey": { + // "hex": "76a914a8f9b1307fa412da6a909f08930e5a502d27a74a88ac", + // "asm": "OP_DUP OP_HASH160 a8f9b1307fa412da6a909f08930e5a502d27a74a OP_EQUALVERIFY OP_CHECKSIG", + // "addresses": [ + // "1GQTe9EdBaF4fCTC2esvPNXewkUZoytADL" + // ], + // "type": "pubkeyhash" + // }, + // "spentTxId": null, + // "spentIndex": null, + // "spentHeight": null + // } + // ], + // "blockheight": -1, + // "confirmations": 0, + // "time": 1547674527, + // "valueOut": 0.03456461, + // "size": 225, + // "valueIn": 0.03456687, + // "fees": 0.00000226 + // } + // ], + // "legacyAddress": "15PCyMYPK6EX4xGenwG55FwdNnuyoHzYAX", + // "cashAddress": "bitcoincash:qqcp8fw06dmjd2gnfanpwytj7q93w408nv7usdqgsk", + // "currentPage": 0 + // } + // ] + +## Interfaces + +### AddressDetailsResult + + { + balance: number + balanceSat: number + totalReceived: number + totalReceivedSat: number + totalSent: number + totalSentSat: number + unconfirmedBalance: number + unconfirmedBalanceSat: number + unconfirmedTxApperances: number + txApperances: number + transactions: string[] + legacyAddress: string + cashAddress: string + } + +### AddressUtxoResult + + { + legacyAddress: string + cashAddress: string + scriptPubKey: string + utxos: [ + { + txid: string + vout: number + amount: number + satoshis: number + height: number + confirmations: number + } + ] + } + +### AddressUnconfirmedResult + + { + txid: string + vout: number + scriptPubKey: string + amount: number + satoshis: number + confirmations: number + ts: number + legacyAddress: string + cashAddress: string + } diff --git a/docs/bitcoincash.md b/docs/bitcoincash.md new file mode 100644 index 00000000..b794eb80 --- /dev/null +++ b/docs/bitcoincash.md @@ -0,0 +1,517 @@ +# BitcoinCash + +### `toSatoshi` + +Converting Bitcoin Cash units to satoshi units + +#### Arguments + +1. bitcoinCash `number`: unit to be converted + +#### Result + +satoshi `number`: bitcoinCash unit converted to satoshis + +#### Examples + +```javascript +// convert 9 $BCH to satoshis +bitbox.BitcoinCash.toSatoshi(9) +// 900000000 + +// convert 1 $BCH to satoshis +bitbox.BitcoinCash.toSatoshi(1) +// 100000000 + +// convert 100 $BCH to satoshis +bitbox.BitcoinCash.toSatoshi(100) +// 10000000000 + +// convert 42 $BCH to satoshis +bitbox.BitcoinCash.toSatoshi(42) +// 4200000000 + +// convert 507 $BCH to satoshis +bitbox.BitcoinCash.toSatoshi(507) +// 50700000000 +``` + +### `toBitcoinCash` + +Converting satoshi units to Bitcoin Cash units + +#### Arguments + +1. satoshi `number`: unit to be converted + +#### Result + +bitcoinCash `number`: satoshi unit converted to Bitcoin Cash + +#### Examples + +```javascript +// convert 900000000 satoshis to $BCH +bitbox.BitcoinCash.toBitcoinCash(900000000) +// 9 + +// convert 100000000 satoshis to $BCH +bitbox.BitcoinCash.toBitcoinCash(100000000) +// 1 + +// convert 10000000000 satoshis to $BCH +bitbox.BitcoinCash.toBitcoinCash(10000000000) +// 100 + +// convert 4200000000 satoshis to $BCH +bitbox.BitcoinCash.toBitcoinCash(4200000000) +// 42 + +// convert 50700000000 satoshis to $BCH +bitbox.BitcoinCash.toBitcoinCash(50700000000) +// 507 +``` + +### `toBits` + +Converting satoshi units to Bits denomination + +#### Arguments + +1. satoshi `Number`: unit to be converted + +#### Result + +bits `Number`: satoshi unit converted to Bits + +#### Examples + +```javascript +// convert 4242323400 satoshis to 42423.234 bits +BITBOX.BitcoinCash.toBits(4242323400) +// 42423.234 +// convert 100000000 satoshis to 1000 bits +BITBOX.BitcoinCash.toBits(100000000) +// 1000 +// convert 314000000 satoshis to 3140 bits +BITBOX.BitcoinCash.toBits(314000000) +// 3140 +// convert 987600000000 satoshis to 9876000 bits +BITBOX.BitcoinCash.toBits(987600000000) +// 9876000 +// convert 12300 satoshis to 0.123 bits +BITBOX.BitcoinCash.toBits(12300) +// 0.123 +``` + +### `fromBits` + +Converting bits units to satoshi denomination + +#### Arguments + +1. bits `Number`: unit to be converted + +#### Result + +satoshi `Number`: bits unit converted to satoshi + +#### Examples + +```javascript +// convert 42423.234 bits to 4242323400 satoshis +BITBOX.BitcoinCash.fromBits(42423.234) +// 4242323400 +// convert 1000 bits to 100000000 satoshis +BITBOX.BitcoinCash.fromBits(1000) +// 100000000 +// convert 3140 bits to 314000000 satoshis +BITBOX.BitcoinCash.fromBits(3140) +// 314000000 +// convert 9876000 bits to 987600000000 satoshis +BITBOX.BitcoinCash.fromBits(9876000) +// 987600000000 +// convert 0.123 bits to 12300 satoshis +BITBOX.BitcoinCash.fromBits(0.123) +// 12300 +``` + +### `signMessageWithPrivKey` + +Sign message with private key + +#### Arguments + +1. privateKeyWIF `string`: private key in wallet import format +2. message `string`: message to sign + +#### Result + +signature `string`: cryptographic signature + +#### Examples + +```javascript +bitbox.BitcoinCash.signMessageWithPrivKey( + "KxtpRDUJDiutLaTV8Vuavhb6h7zq9YV9ZKA3dU79PCgYmNVmkkvS", + "EARTH" +) +// IIYVhlo2Z6TWFjYX1+YM+7vQKz0m+zYdSe4eYpFLuAQDEZXqll7lZC8Au22VI2LLP5x+IerZckVk3QQPsA3e8/8= +``` + +### `verifyMessage` + +Verify message + +#### Arguments + +1. address `string`: public cashaddr or legacy address which signed the message +2. signature `string`: cryptographic signature +3. message `string`: to verify + +#### Result + +isVerified `boolean`: if message is verified or not + +#### Examples + +```javascript +bitbox.BitcoinCash.verifyMessage( + "bitcoincash:qp2zvw3zpk5xx43w4tve7mtekd9kaxwj4uenq9eupv", + "IIYVhlo2Z6TWFjYX1+YM+7vQKz0m+zYdSe4eYpFLuAQDEZXqll7lZC8Au22VI2LLP5x+IerZckVk3QQPsA3e8/8=", + "EARTH" +) +// true +``` + +### `encodeBase58Check` + +Encodes hex string as base58Check + +#### Arguments + +1. hex `string`: hex encoded bytes to encode as base58check + +#### Result + +base58check `string`: base58check encoded string + +#### Examples + +```javascript +// encode 0079bd35d306f648350818470c9f18903df6e06902a026f2a7 as base58check +let hex = "0079bd35d306f648350818470c9f18903df6e06902a026f2a7" +bitbox.BitcoinCash.encodeBase58Check(hex) +// 1C6hRmfzvWst5WA7bFRCVAqHt5gE2g7Qar + +// encode 006da742680accf2282df5fade8e9b7a01a517e779289b52cc as base58check +let hex = "006da742680accf2282df5fade8e9b7a01a517e779289b52cc" +bitbox.BitcoinCash.encodeBase58Check(hex) +// 1Azo2JBz2JswboeY9xSMcp14BAfhjnD9SK + +// encode 00c68a6a07ccdaf1669cfd8d244d80ff36b713551c6208f672 as base58check +let hex = "00c68a6a07ccdaf1669cfd8d244d80ff36b713551c6208f672" +bitbox.BitcoinCash.encodeBase58Check(hex) +// 1K6ncAmMEyQrKUYosZRD9swyZNXECu2aKs + +// encode 00d0a6b5e3dd43d0fb895b3b3df565bb8266c5ab00a25dbeb5 as base58check +let hex = "00d0a6b5e3dd43d0fb895b3b3df565bb8266c5ab00a25dbeb5" +bitbox.BitcoinCash.encodeBase58Check(hex) +// 1L2FG9hH3bwchhxHaCs5cg1QNbhmbaeAs6 + +// encode 00db04c2e6f104997cb04c956bf25da6078e559d303127f08b as base58check +let hex = "00db04c2e6f104997cb04c956bf25da6078e559d303127f08b" +bitbox.BitcoinCash.encodeBase58Check(hex) +// 1Ly4gqPddveYHMNkfjoXHanVszXpD3duKg +``` + +### `decodeBase58Check` + +Decodes base58Check encoded string to hex + +#### Arguments + +1. base58check `string`: base58check encoded string to decode to hex + +#### Result + +hex `string`: hex encoded string + +#### Examples + +```javascript +// decode 1C6hRmfzvWst5WA7bFRCVAqHt5gE2g7Qar to hex +let base58check = "1C6hRmfzvWst5WA7bFRCVAqHt5gE2g7Qar" +bitbox.BitcoinCash.decodeBase58Check(base58check) +// 0079bd35d306f648350818470c9f18903df6e06902a026f2a7 + +// decode 1Azo2JBz2JswboeY9xSMcp14BAfhjnD9SK to hex +let base58check = "1Azo2JBz2JswboeY9xSMcp14BAfhjnD9SK" +bitbox.BitcoinCash.decodeBase58Check(base58check) +// 006da742680accf2282df5fade8e9b7a01a517e779289b52cc + +// decode 1K6ncAmMEyQrKUYosZRD9swyZNXECu2aKs to hex +let base58check = "1K6ncAmMEyQrKUYosZRD9swyZNXECu2aKs" +bitbox.BitcoinCash.decodeBase58Check(base58check) +// 00c68a6a07ccdaf1669cfd8d244d80ff36b713551c6208f672 + +// decode 1L2FG9hH3bwchhxHaCs5cg1QNbhmbaeAs6 to hex +let base58check = "1L2FG9hH3bwchhxHaCs5cg1QNbhmbaeAs6" +bitbox.BitcoinCash.decodeBase58Check(base58check) +// 00d0a6b5e3dd43d0fb895b3b3df565bb8266c5ab00a25dbeb5 + +// decode 1Ly4gqPddveYHMNkfjoXHanVszXpD3duKg to hex +let base58check = "1Ly4gqPddveYHMNkfjoXHanVszXpD3duKg" +bitbox.BitcoinCash.decodeBase58Check(base58check) +// 00db04c2e6f104997cb04c956bf25da6078e559d303127f08b +``` + +### `encodeBIP21` + +Encodes address and options as BIP21 uri + +#### Arguments + +1. address `string`: cashaddr (w/ or w/out prefix) or legacy base58check encoded address +2. options `EncodeBIP21Options`: options such as amount, label, message etc +3. regtest `boolean` **optional** + +#### Result + +bip21 `string`: bip21 encoded uri + +#### Examples + +```javascript +let address = "bitcoincash:qrdsfshx7yzfjl9sfj2khuja5crcu4vaxqrt2qkz5s" +let options = { + amount: 1, + label: "#BCHForEveryone", +} +bitbox.BitcoinCash.encodeBIP21(address, options) +// bitcoincash:qrdsfshx7yzfjl9sfj2khuja5crcu4vaxqrt2qkz5s?amount=1&label=%23BCHForEveryone + +let address = "1C6hRmfzvWst5WA7bFRCVAqHt5gE2g7Qar" +let options = { + amount: 12.5, + label: "coinbase donation", + message: "and ya don't stop", +} +bitbox.BitcoinCash.encodeBIP21(address, options) +// bitcoincash:qpum6dwnqmmysdggrprse8ccjq7ldcrfqgmmtgcmny?amount=12.5&label=coinbase%20donation&message=and%20ya%20don%27t%20stop + +let address = "qzw6tfrh8p0jh834uf9rhg77pjg5rgnt3qw0e54u03" +let options = { + amount: 42, + label: "no prefix", +} +bitbox.BitcoinCash.encodeBIP21(address, options) +// bitcoincash:qzw6tfrh8p0jh834uf9rhg77pjg5rgnt3qw0e54u03?amount=42&label=no%20prefix +``` + +### `decodeBIP21` + +Decodes BIP21 uri + +#### Arguments + +1. bip21 `string`: bip21 encoded uri + +#### Result + +results `BIP21Object`: decoded bip21 uri + +#### Examples + +```javascript +let bip21 = + "bitcoincash:qrdsfshx7yzfjl9sfj2khuja5crcu4vaxqrt2qkz5s?amount=1&label=%23BCHForEveryone" +bitbox.BitcoinCash.decodeBIP21(bip21) +// { address: 'qrdsfshx7yzfjl9sfj2khuja5crcu4vaxqrt2qkz5s', options: { amount: 1, label: '#BCHForEveryone' } } + +let bip21 = + "bitcoincash:qpum6dwnqmmysdggrprse8ccjq7ldcrfqgmmtgcmny?amount=12.5&label=coinbase%20donation&message=and%20ya%20don%27t%20stop" +bitbox.BitcoinCash.decodeBIP21(bip21) +// { address: 'qpum6dwnqmmysdggrprse8ccjq7ldcrfqgmmtgcmny', +// options: +// { amount: 12.5, +// label: 'coinbase donation', +// message: 'and ya don\'t stop' +// } +// } + +let bip21 = + "bitcoincash:qzw6tfrh8p0jh834uf9rhg77pjg5rgnt3qw0e54u03?amount=42&label=no%20prefix" +bitbox.BitcoinCash.decodeBIP21(bip21) +// { address: 'qzw6tfrh8p0jh834uf9rhg77pjg5rgnt3qw0e54u03', options: { amount: 42, label: 'no prefix' } } +``` + +### `getByteCount` + +Get byte count of transaction + +#### Arguments + +1. inputs `ByteCountInput`: object w/ keys describing input types and counts. 'MULTISIG\-P2SH' and 'P2PKH'. "MULTISIG\-P2SH" also should include the required and total number of signatures. EX: "MULTISIG\-P2SH:2\-4" +2. outputs `ByteCountOutput`: object w/ keys describing output types and counts. 'P2SH' and 'P2PKH' + +#### Result + +byteCount `number`: number of bytes + +#### Examples + +```javascript +// 1 P2PKH input +let inputs = { + P2PKH: 1, +} +// 1 P2SH output +let outputs = { + P2SH: 1, +} +bitbox.BitcoinCash.getByteCount(inputs, outputs) +// 190 + +// 4 MULTISIG-P2SH 2-of-4 and 10 P2PKH inputs +let inputs = { + "MULTISIG-P2SH:2-4": 4, + P2PKH: 10, +} +// 23 P2PKH outputs +let outputs = { + P2PKH: 23, +} +bitbox.BitcoinCash.getByteCount(inputs, outputs) +// 2750 + +// 2 MULTISIG-P2SH 3-of-5 inputs +let inputs = { + "MULTISIG-P2SH:3-5": 2, +} +// 2 P2PKH outputs +let outputs = { + P2PKH: 2, +} +bitbox.BitcoinCash.getByteCount(inputs, outputs) +// 565 + +// 111 P2PKH inputs +let inputs = { + P2PKH: 111, +} +// 2 P2PKH outputs +let outputs = { + P2PKH: 2, +} +bitbox.BitcoinCash.getByteCount(inputs, outputs) +// 16506 + +// 10 P2PKH and 1 MULTISIG-P2SH 1-of-2 input +let inputs = { + P2PKH: 10, + "MULTISIG-P2SH:1-2": 1, +} +// 2 P2PKH and 1 P2SH outputs +let outputs = { + P2PKH: 2, + P2SH: 1, +} +bitbox.BitcoinCash.getByteCount(inputs, outputs) +// 1780 +``` + +### `encryptBIP38` + +[BIP38](https://github.com/bitcoin/bips/blob/master/bip-0038.mediawiki) encrypt privkey WIFs + +#### Arguments + +1. wif `string`: privkey WIF on mainnet or testnet +2. password `string`: password to encrypt wif with + +#### Result + +encryptedKey `string`: privkey WIF encrypted w/ password + +#### Examples + +```javascript +// mainnet +bitbox.BitcoinCash.encryptBIP38( + "L1phBREbhL4vb1uHHHCAse8bdGE5c7ic2PFjRxMawLzQCsiFVbvu", + "9GKVkabAHBMyAf" +) +// 6PYU2fDHRVF2194gKDGkbFbeu4mFgkWtVvg2RPd2Sp6KmZx3RCHFpgBB2G + +// testnet +bitbox.BitcoinCash.encryptBIP38( + "cSx7KzdH9EcvDEireu2WYpGnXdFYpta7sJUNt5kVCJgA7kcAU8Gm", + "1EBPIyj55eR8bVUov9" +) +// 6PYUAPLwLSEjWSAfoe9NTSPkMZXnJA8j8EFJtKaeSnP18RCouutBrS2735 +``` + +### `decryptBIP38` + +[BIP38](https://github.com/bitcoin/bips/blob/master/bip-0038.mediawiki) decrypt privkey WIFs + +#### Arguments + +1. encryptedKey `string`: encrypted privkey WIF +2. password `string`: password to decrypt wif with +3. network `string`: mainnet or testnet. Default: mainnet + +#### Result + +wif `string`: decrypted privkey WIF on mainnet or testnet + +#### Examples + +```javascript +// mainnet +bitbox.BitcoinCash.decryptBIP38( + "6PYU2fDHRVF2194gKDGkbFbeu4mFgkWtVvg2RPd2Sp6KmZx3RCHFpgBB2G", + "9GKVkabAHBMyAf", + "mainnet" +) +// L1phBREbhL4vb1uHHHCAse8bdGE5c7ic2PFjRxMawLzQCsiFVbvu + +// testnet +bitbox.BitcoinCash.decryptBIP38( + "6PYUAPLwLSEjWSAfoe9NTSPkMZXnJA8j8EFJtKaeSnP18RCouutBrS2735", + "1EBPIyj55eR8bVUov9", + "testnet" +) +// cSx7KzdH9EcvDEireu2WYpGnXdFYpta7sJUNt5kVCJgA7kcAU8Gm +``` + +## Interfaces + +### EncodeBIP21Options + + { + amount?: number + label?: string + message?: string + } + +### BIP21Object + + { + address: string + options?: EncodeBIP21Options + } + +### ByteCountInput + + { + P2PKH?: number + } + +### ByteCountOutput + + { + P2PKH?: number + P2SH?: number + } diff --git a/docs/bitdb.md b/docs/bitdb.md new file mode 100644 index 00000000..15feba65 --- /dev/null +++ b/docs/bitdb.md @@ -0,0 +1,47 @@ +# BitDB + +### `get` + +Get BitDB data by `query` + +#### Arguments + +1. query `any`: BitDB Query + +#### Result + +result `any`: BitDB Result + +#### Examples + +```javascript +;(async () => { + let res = await bitbox.BitDB.get({ + v: 3, + q: { + db: ["c"], + find: {}, + limit: 10, + }, + }) + console.log(res) + + // returns + // { c: + // [ { _id: '5d40924a0f265a358b92401a', + // tx: [Object], + // in: [Array], + // out: [Array], + // blk: [Object] }, + // { _id: '5d40924a0f265a358b924019', + // tx: [Object], + // in: [Array], + // out: [Array], + // blk: [Object] }, + // { _id: '5d40924a0f265a358b924018', + // tx: [Object], + // in: [Array], + // out: [Array], + // blk: [Object] }, +})() +``` diff --git a/docs/block.md b/docs/block.md new file mode 100644 index 00000000..1aeec198 --- /dev/null +++ b/docs/block.md @@ -0,0 +1,244 @@ +# Block + +### `detailsByHeight` + +Return details about a Block. Lookup the block with a block height. + +#### Arguments + +- blocks (required): + - `number`: block height + - `number[]` of Numbers: block heights + +#### Result + +- details + - `Promise` + - `Promise` + +#### Examples + + (async () => { + try { + let details = await bitbox.Block.detailsByHeight(500000); + console.log(details); + } catch(error) { + console.error(error) + } + })() + + // { + // "hash": "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", + // "size": 216, + // "height": 507, + // "version": 1, + // "merkleroot": "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8", + // "tx": [ + // "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8" + // ], + // "time": 1231973656, + // "nonce": 330467862, + // "bits": "1d00ffff", + // "difficulty": 1, + // "chainwork": "000000000000000000000000000000000000000000000000000001fc01fc01fc", + // "confirmations": 528404, + // "previousblockhash": "00000000a99525c043fd7e323414b60add43c254c44860094048f9c01e9a5fdd", + // "nextblockhash": "000000000d550f4161f2702165fdd782ec72ff9c541f864ebb8256b662b7e51a", + // "reward": 50, + // "isMainChain": true, + // "poolInfo": { + // "poolName": "ViaBTC", + // "url": "https://viabtc.com/" + // } + // } + + + (async () => { + try { + let details = await bitbox.Block.detailsByHeight([500000, 500001]); + console.log(details); + } catch(error) { + console.error(error) + } + })() + + // [{ + // "hash": "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", + // "size": 216, + // "height": 507, + // "version": 1, + // "merkleroot": "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8", + // "tx": [ + // "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8" + // ], + // "time": 1231973656, + // "nonce": 330467862, + // "bits": "1d00ffff", + // "difficulty": 1, + // "chainwork": "000000000000000000000000000000000000000000000000000001fc01fc01fc", + // "confirmations": 528404, + // "previousblockhash": "00000000a99525c043fd7e323414b60add43c254c44860094048f9c01e9a5fdd", + // "nextblockhash": "000000000d550f4161f2702165fdd782ec72ff9c541f864ebb8256b662b7e51a", + // "reward": 50, + // "isMainChain": true, + // "poolInfo": { + // "poolName": "ViaBTC", + // "url": "https://viabtc.com/" + // } + // }, + // { + // "hash": "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", + // "size": 216, + // "height": 507, + // "version": 1, + // "merkleroot": "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8", + // "tx": [ + // "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8" + // ], + // "time": 1231973656, + // "nonce": 330467862, + // "bits": "1d00ffff", + // "difficulty": 1, + // "chainwork": "000000000000000000000000000000000000000000000000000001fc01fc01fc", + // "confirmations": 528404, + // "previousblockhash": "00000000a99525c043fd7e323414b60add43c254c44860094048f9c01e9a5fdd", + // "nextblockhash": "000000000d550f4161f2702165fdd782ec72ff9c541f864ebb8256b662b7e51a", + // "reward": 50, + // "isMainChain": true, + // "poolInfo": {} + // }] + +### `detailsByHash` + +Return details about a Block. Lookup the block with a block hash. + +#### Arguments + +- hashes (required): + - `string`: block hash + - `string[]` of Strings: block hashes + +#### Result + +- details + - `Promise` + - `Promise` + +#### Examples + + (async () => { + try { + let details = await bitbox.Block.hash("000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201"); + console.log(details); + } catch(error) { + console.error(error) + } + })() + + // { + // "hash": "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", + // "size": 216, + // "height": 507, + // "version": 1, + // "merkleroot": "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8", + // "tx": [ + // "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8" + // ], + // "time": 1231973656, + // "nonce": 330467862, + // "bits": "1d00ffff", + // "difficulty": 1, + // "chainwork": "000000000000000000000000000000000000000000000000000001fc01fc01fc", + // "confirmations": 528404, + // "previousblockhash": "00000000a99525c043fd7e323414b60add43c254c44860094048f9c01e9a5fdd", + // "nextblockhash": "000000000d550f4161f2702165fdd782ec72ff9c541f864ebb8256b662b7e51a", + // "reward": 50, + // "isMainChain": true, + // "poolInfo": { + // "poolName": "ViaBTC", + // "url": "https://viabtc.com/" + // } + // } + + (async () => { + try { + let details = await bitbox.Block.detailsByHeight([ + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201", + "000000000000000005e14d3f9fdfb70745308706615cfa9edca4f4558332b201" + ]); + console.log(details); + } catch(error) { + console.error(error) + } + })() + + // [{ + // "hash": "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", + // "size": 216, + // "height": 507, + // "version": 1, + // "merkleroot": "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8", + // "tx": [ + // "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8" + // ], + // "time": 1231973656, + // "nonce": 330467862, + // "bits": "1d00ffff", + // "difficulty": 1, + // "chainwork": "000000000000000000000000000000000000000000000000000001fc01fc01fc", + // "confirmations": 528404, + // "previousblockhash": "00000000a99525c043fd7e323414b60add43c254c44860094048f9c01e9a5fdd", + // "nextblockhash": "000000000d550f4161f2702165fdd782ec72ff9c541f864ebb8256b662b7e51a", + // "reward": 50, + // "isMainChain": true, + // "poolInfo": { + // "poolName": "ViaBTC", + // "url": "https://viabtc.com/" + // } + // }, + // { + // "hash": "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", + // "size": 216, + // "height": 507, + // "version": 1, + // "merkleroot": "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8", + // "tx": [ + // "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8" + // ], + // "time": 1231973656, + // "nonce": 330467862, + // "bits": "1d00ffff", + // "difficulty": 1, + // "chainwork": "000000000000000000000000000000000000000000000000000001fc01fc01fc", + // "confirmations": 528404, + // "previousblockhash": "00000000a99525c043fd7e323414b60add43c254c44860094048f9c01e9a5fdd", + // "nextblockhash": "000000000d550f4161f2702165fdd782ec72ff9c541f864ebb8256b662b7e51a", + // "reward": 50, + // "isMainChain": true, + // "poolInfo": {} + // }] + +## Interfaces + +### BlockDetails + + { + hash: string + size: number + height: number + version: number + merkleroot: string + tx: string[] + time: number + mediantime?: number + nonce: number + bits: string + difficulty: number + chainwork: string + confirmations: number + previousblockhash: string + nextblockhash: string + reward: number + isMainChain: boolean + poolInfo: object + } diff --git a/docs/blockchain.md b/docs/blockchain.md new file mode 100644 index 00000000..4e5f0d44 --- /dev/null +++ b/docs/blockchain.md @@ -0,0 +1,704 @@ +# Blockchain + +### `getBestBlockHash` + +Returns the hash of the best (tip) block in the longest blockchain. + +#### Result + +hex `Promise`: the block hash hex encoded + +#### Examples + + (async () => { + try { + let getBestBlockHash = await bitbox.Blockchain.getBestBlockHash(); + console.log(getBestBlockHash); + } catch(error) { + console.error(error) + } + })() + // 241decef88889efac8e6ce428a8ac696fdde5972eceed97e1fb58d6106af31d5 + +### `getBlock` + +If verbose is false, returns a string that is serialized, hex-encoded data for block 'hash'. If verbose is true, returns an Object with information about block `hash`. + +#### Arguments + +1. blockhash `string`: The block hash +2. verbose `boolean` **optional**: true for a json object, false for the hex encoded data + +#### Result + +block `Promise` + +#### Examples + + (async () => { + try { + let getBlock = await bitbox.Blockchain.getBlock("00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09"); + console.log(getBlock); + } catch(error) { + console.error(error) + } + })() + + // { hash: '00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09', + // confirmations: 528236, + // size: 216, + // height: 1000, + // version: 1, + // versionHex: '00000001', + // merkleroot: 'fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33', + // tx: + // [ 'fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33' ], + // time: 1232346882, + // mediantime: 1232344831, + // nonce: 2595206198, + // bits: '1d00ffff', + // difficulty: 1, + // chainwork: '000000000000000000000000000000000000000000000000000003e903e903e9', + // previousblockhash: '0000000008e647742775a230787d66fdf92c46a48c896bfbc85cdc8acc67e87d', + // nextblockhash: '00000000a2887344f8db859e372e7e4bc26b23b9de340f725afbf2edb265b4c6' } + +### `getBlockchainInfo` + +Returns an object containing various state info regarding blockchain processing. + +#### Result + +block `Promise` + +#### Examples + + (async () => { + try { + let getBlockchainInfo = await bitbox.Blockchain.getBlockchainInfo(); + console.log(getBlockchainInfo); + } catch(error) { + console.error(error) + } + })() + + // { chain: 'main', + // blocks: 529235, + // headers: 529235, + // bestblockhash: '00000000000000000108641af52e01a447b1f9d801571f93a0f20a8cbf80c236', + // difficulty: 702784497476.8376, + // mediantime: 1525727823, + // verificationprogress: 0.9999892037620548, + // chainwork: '00000000000000000000000000000000000000000099f5e1cf7d4e462a493a51', + // pruned: false, + // softforks: + // [ { id: 'bip34', version: 2, reject: [Object] }, + // { id: 'bip66', version: 3, reject: [Object] }, + // { id: 'bip65', version: 4, reject: [Object] } ], + // bip9_softforks: + // { csv: + // { status: 'active', + // startTime: 1462060800, + // timeout: 1493596800, + // since: 419328 } } } + +### `getBlockCount` + +Returns the number of blocks in the longest blockchain. + +#### Result + +n `Promise` + +#### Examples + + (async () => { + try { + let getBlockCount = await bitbox.Blockchain.getBlockCount(); + console.log(getBlockCount); + } catch(error) { + console.error(error) + } + })() + // 529235 + +### `getBlockHash` + +Returns hash of block in best-block-chain at height provided. + +#### Arguments + +1. height `number` **optional** + +#### Result + +hash `Promise` The block hash + +#### Examples + + (async () => { + try { + let getBlockHash = await bitbox.Blockchain.getBlockHash([0]); + console.log(getBlockHash); + } catch(error) { + console.error(error) + } + })() + // [ '000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f' ] + +### `getBlockHeader` + +If verbose is false, returns a string that is serialized, hex-encoded data for blockheader 'hash'. If verbose is true, returns an Object with information about blockheader `hash`. + +#### Arguments + +1. hashes `string | string[]` +2. verbose `boolean` **optional**: true for a json object, false for the hex encoded data. + +#### Result + +blockHeader `Promise` The block header + +#### Examples + + (async () => { + try { + let getBlockHeader = await bitbox.Blockchain.getBlockHeader(["00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09"]); + console.log(getBlockHeader); + } catch(error) { + console.error(error) + } + })() + + // [{ hash: '00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09', + // confirmations: 528236, + // height: 1000, + // version: 1, + // versionHex: '00000001', + // merkleroot: 'fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33', + // time: 1232346882, + // mediantime: 1232344831, + // nonce: 2595206198, + // bits: '1d00ffff', + // difficulty: 1, + // chainwork: '000000000000000000000000000000000000000000000000000003e903e903e9', + // previousblockhash: '0000000008e647742775a230787d66fdf92c46a48c896bfbc85cdc8acc67e87d', + // nextblockhash: '00000000a2887344f8db859e372e7e4bc26b23b9de340f725afbf2edb265b4c6' }] + +### `getChainTips` + +Return information about all known tips in the block tree, including the main chain as well as orphaned branches. + +#### Result + +chainTips `Promise` + +#### Examples + + (async () => { + try { + let getChainTips = await bitbox.Blockchain.getChainTips(); + console.log(getChainTips); + } catch(error) { + console.error(error) + } + })() + + // [ { height: 529235, + // hash: '00000000000000000108641af52e01a447b1f9d801571f93a0f20a8cbf80c236', + // branchlen: 0, + // status: 'active' }, + // { height: 527442, + // hash: '0000000000000000014cbf7b7aa12e52dd97db4b1ba5f39dccae37773af9272e', + // branchlen: 1, + // status: 'invalid' }, + // { height: 526861, + // hash: '00000000000000000225b070818bbafd95842ecbd25edf39bff54a7aa5c8fd10', + // branchlen: 1, + // status: 'valid-headers' } ] + +### `getDifficulty` + +Returns the proof-of-work difficulty as a multiple of the minimum difficulty. + +#### Result + +n `Promise`: the proof-of-work difficulty as a multiple of the minimum difficulty. + +#### Examples + + (async () => { + try { + let getDifficulty = await bitbox.Blockchain.getDifficulty(); + console.log(getDifficulty); + } catch(error) { + console.error(error) + } + })() + + // 702784497476.8376 + + + +### `getMempoolEntry` + +Returns mempool data for given transaction + +#### Arguments + +- txids (required): + - `string`: TXID currently in mempool + - `string[]`: Array of TXIDs + +#### Result + +- entry: + - `Promise`: containing details about the single mempool entry. + - `Promise`: Array of Objects with details about mempool entries. + +#### Examples + + (async () => { + try { + let getMempoolEntry = await bitbox.Blockchain.getMempoolEntry("fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33"); + console.log(getMempoolEntry); + } catch(error) { + console.error(error) + } + })() + + // { + // "size": 372, + // "fee": 0.00000374, + // "modifiedfee": 0.00000374, + // "time": 1547738850, + // "height": 565716, + // "startingpriority": 26524545.3974359, + // "currentpriority": 26524545.3974359, + // "descendantcount": 1, + // "descendantsize": 372, + // "descendantfees": 374, + // "ancestorcount": 1, + // "ancestorsize": 372, + // "ancestorfees": 374, + // "depends": [] + // } + + (async () => { + try { + let getMempoolEntry = await bitbox.Blockchain.getMempoolEntry([ + "fe28050b93faea61fa88c4c630f0e1f0a1c24d0082dd0e10d369e13212128f33", + "defea04c38ee00cf73ad402984714ed22dc0dd99b2ae5cb50d791d94343ba79b" + ]); + console.log(getMempoolEntry); + } catch(error) { + console.error(error) + } + })() + + // [ + // { + // "size": 372, + // "fee": 0.00000374, + // "modifiedfee": 0.00000374, + // "time": 1547738850, + // "height": 565716, + // "startingpriority": 26524545.3974359, + // "currentpriority": 26524545.3974359, + // "descendantcount": 1, + // "descendantsize": 372, + // "descendantfees": 374, + // "ancestorcount": 1, + // "ancestorsize": 372, + // "ancestorfees": 374, + // "depends": [] + // }, + // { + // "size": 372, + // "fee": 0.00000374, + // "modifiedfee": 0.00000374, + // "time": 1547738850, + // "height": 565716, + // "startingpriority": 26524545.3974359, + // "currentpriority": 26524545.3974359, + // "descendantcount": 1, + // "descendantsize": 372, + // "descendantfees": 374, + // "ancestorcount": 1, + // "ancestorsize": 372, + // "ancestorfees": 374, + // "depends": [] + // } + // ] + +### `getMempoolInfo` + +Returns details on the active state of the TX memory pool. + +#### Result + +entry `Promise` + +#### Examples + + (async () => { + try { + let getMempoolInfo = await bitbox.Blockchain.getMempoolInfo(); + console.log(getMempoolInfo); + } catch(error) { + console.error(error) + } + })() + + // { size: 257, + // bytes: 98257, + // usage: 365840, + // maxmempool: 300000000, + // mempoolminfee: 0 } + +### `getRawMempool` + +Returns all transaction ids in memory pool as a json array of string transaction ids. + +#### Arguments + +1. verbose `boolean` **optional**: True for a json object, false for array of transaction ids + +#### Result + +rawMemPool `Promise` + +#### Examples + + (async () => { + try { + let getRawMempool = await bitbox.Blockchain.getRawMempool(true); + console.log(getRawMempool); + } catch(error) { + console.error(error) + } + })() + + // [ {'2ae541af20db6f2b50410f418af56e349d08877d685f6cf54df54658e892db7a': + // { size: 237, + // fee: 0.00000238, + // modifiedfee: 0.00000238, + // time: 1525732015, + // height: 529235, + // startingpriority: 0, + // currentpriority: 0, + // descendantcount: 10, + // descendantsize: 2376, + // descendantfees: 2380, + // ancestorcount: 3, + // ancestorsize: 712, + // ancestorfees: 714, + // depends: + // [ 'e25682caafc7000645d59f4c11d8d594b2943979b9d8fafb9f946e2b35c21b7e' ] },] + +### `getTxOut` + +Returns details about an unspent transaction output. + +#### Arguments + +1. txid `string`: The transaction id +2. n `number`: vout number +3. include_mempool `boolean` **optional**: Whether to include the mempool + +#### Result + +txOut `Promise` + +#### Examples + + (async () => { + try { + let getTxOut = await bitbox.Blockchain.getTxOut("e25682caafc7000645d59f4c11d8d594b2943979b9d8fafb9f946e2b35c21b7e", 1); + console.log(getTxOut); + } catch(error) { + console.error(error) + } + })() + + // null + +### `getTxOutProof` + +Returns a hex-encoded proof that "txid" was included in a block. + +#### Arguments + +- txids: + - `string`: A single string containing a txid. + - `string[]` + +#### Result + +- proof: + - `Promise`: A string that is a serialized, hex-encoded data for the proof. + - `Promise`: Array of strings that are a serialized, hex-encoded data for the proof. + +#### Examples + + (async () => { + try { + let getTxOutProof = await bitbox.Blockchain.getTxOutProof("e25682caafc7000645d59f4c11d8d594b2943979b9d8fafb9f946e2b35c21b7e"); + console.log(getTxOutProof); + } catch(error) { + console.error(error) + } + })() + + // "0000002086a4a3161f9ba2174883ec0b93acceac3b2f37b36ed1f90000000000000000009cb02406d1094ecf3e0b4c0ca7c585125e721147c39daf6b48c90b512741e13a12333e5cb38705180f441d8c7100000008fee9b60f1edb57e5712839186277ed39e0a004a32be9096ee47472efde8eae62f789f9d7a9f59d0ea7093dea1e0c65ff0b953f1d8cf3d47f92e732ca0295f603c272d5f4a63509f7a887f2549d78af7444aa0ecbb4f66d9cbe13bc6a89f59e05a199df8325d490818ffefe6b6321d32d7496a68580459836c0183f89082fc1b491cc91b23ecdcaa4c347bf599a62904d61f1c15b400ebbd5c90149010c139d9c1e31b774b796977393a238080ab477e1d240d0c4f155d36f519668f49bae6bd8cd5b8e40522edf76faa09cca6188d83ff13af6967cc6a569d1a5e9aeb1fdb7f531ddd2d0cbb81879741d5f38166ac1932136264366a4065cc96a42e41f96294f02df01" + + (async () => { + try { + let getTxOutProof = await bitbox.Blockchain.getTxOutProof([ + "e25682caafc7000645d59f4c11d8d594b2943979b9d8fafb9f946e2b35c21b7e", + "d16662463fd98eb96c8f6898d58a4461ac3d0120f4d0aea601d72b37759f261c" + ]); + console.log(getTxOutProof); + } catch(error) { + console.error(error) + } + })() + + // [ + // "010000007de867cc8adc5cc8fb6b898ca4462cf9fd667d7830a275277447e60800000000338f121232e169d3100edd82004dc2a1f0e1f030c6c488fa61eafa930b0528fe021f7449ffff001d36b4af9a0100000001338f121232e169d3100edd82004dc2a1f0e1f030c6c488fa61eafa930b0528fe0101", + // "010000007de867cc8adc5cc8fb6b898ca4462cf9fd667d7830a275277447e60800000000338f121232e169d3100edd82004dc2a1f0e1f030c6c488fa61eafa930b0528fe021f7449ffff001d36b4af9a0100000001338f121232e169d3100edd82004dc2a1f0e1f030c6c488fa61eafa930b0528fe0101" + // ] + + + + + + + +### `verifyTxOutProof` + +Verifies that a proof points to a transaction in a block, returning the +transaction it commits to and throwing an RPC error if the block is not in our +best chain + +#### Arguments + +- proof (required): + - `string`: The hex-encoded proof generated by gettxoutproof + - `string[]`: The hex-encoded proof generated by gettxoutproof + +#### Result + +- txids `Promise`: The txid(s) which the proof commits to, or empty array if the proof is invalid + +#### Examples + + (async () => { + try { + const proof = "0000002086a4a3161f9ba2174883ec0b93acceac3b2f37b36ed1f90000000000000000009cb02406d1094ecf3e0b4c0ca7c585125e721147c39daf6b48c90b512741e13a12333e5cb38705180f441d8c7100000008fee9b60f1edb57e5712839186277ed39e0a004a32be9096ee47472efde8eae62f789f9d7a9f59d0ea7093dea1e0c65ff0b953f1d8cf3d47f92e732ca0295f603c272d5f4a63509f7a887f2549d78af7444aa0ecbb4f66d9cbe13bc6a89f59e05a199df8325d490818ffefe6b6321d32d7496a68580459836c0183f89082fc1b491cc91b23ecdcaa4c347bf599a62904d61f1c15b400ebbd5c90149010c139d9c1e31b774b796977393a238080ab477e1d240d0c4f155d36f519668f49bae6bd8cd5b8e40522edf76faa09cca6188d83ff13af6967cc6a569d1a5e9aeb1fdb7f531ddd2d0cbb81879741d5f38166ac1932136264366a4065cc96a42e41f96294f02df01" + let verifyTxOutProof = await bitbox.Blockchain.verifyTxOutProof(proof); + console.log(verifyTxOutProof); + } catch(error) { + console.error(error) + } + })() + + // [ + // "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + // ] + + (async () => { + try { + const proof = "0000002086a4a3161f9ba2174883ec0b93acceac3b2f37b36ed1f90000000000000000009cb02406d1094ecf3e0b4c0ca7c585125e721147c39daf6b48c90b512741e13a12333e5cb38705180f441d8c7100000008fee9b60f1edb57e5712839186277ed39e0a004a32be9096ee47472efde8eae62f789f9d7a9f59d0ea7093dea1e0c65ff0b953f1d8cf3d47f92e732ca0295f603c272d5f4a63509f7a887f2549d78af7444aa0ecbb4f66d9cbe13bc6a89f59e05a199df8325d490818ffefe6b6321d32d7496a68580459836c0183f89082fc1b491cc91b23ecdcaa4c347bf599a62904d61f1c15b400ebbd5c90149010c139d9c1e31b774b796977393a238080ab477e1d240d0c4f155d36f519668f49bae6bd8cd5b8e40522edf76faa09cca6188d83ff13af6967cc6a569d1a5e9aeb1fdb7f531ddd2d0cbb81879741d5f38166ac1932136264366a4065cc96a42e41f96294f02df01" + let verifyTxOutProof = await bitbox.Blockchain.verifyTxOutProof([proof, proof]); + console.log(verifyTxOutProof); + } catch(error) { + console.error(error) + } + })() + + // [ + // "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7", + // "03f69502ca32e7927fd4f38c1d3f950bff650c1eea3d09a70e9df5a9d7f989f7" + // ] + +## Interfaces + +### MempoolInfo + + { + size: number + bytes: number + usage: number + maxmempool: number + mempoolminfee: number + } + +### BlockchainInfo + + { + chain: string + blocks: number + headers: number + bestblockhash: string + difficulty: number + mediantime: number + verificationprogress: number + chainwork: string + pruned: boolean + softforks: object[] + bip9_softforks: object + } + +### BlockHeader + + { + hash: string + confirmations: number + height: number + version: number + versionHex: string + merkleroot: string + time: number + mediantime: number + nonce: number + bits: string + difficulty: number + chainwork: string + previousblockhash: string + nextblockhash: string + } + +### ChainTip + + { + height: number + hash: string + branchlen: number + status: string + } + +### TxOut + + { + bestblock: string + confirmations: number + value: number + scriptPubKey: { + asm: string + hex: string + reqSigs: number + type: string + addresses: string[] + } + version: number + coinbase: boolean + } diff --git a/docs/cashAccounts.md b/docs/cashAccounts.md new file mode 100644 index 00000000..7c3f8ea7 --- /dev/null +++ b/docs/cashAccounts.md @@ -0,0 +1,191 @@ +# CashAccounts + +### `lookup` + +Returns an object containing account info + +#### Arguments + +1. account `string` **required** +2. number `number` **required** +3. collision `number` **optional** + +#### Result + +cashAccount `CashAccountInterface` + +#### Examples + + (async () => { + try { + let cashAccounts = await bitbox.CashAccounts.lookup("cgcardona", 122) + console.log(cashAccounts) + } catch (error) { + console.log(error) + } + })() + + // returns + { + identifier: "cgcardona#122;", + information: { + emoji: "🍞", + name: "cgcardona", + number: 122, + collision: { + hash: "6383276713", + count: 0, + length: 0 + }, + payment: [ + { + type: "Key Hash", + address: "bitcoincash:qrhncn6hgkhljqg4fuq4px5qg74sjz9fqqj64s9la9" + } + ] + } + } + +### `check` + +Returns an object containing block height and inclusion proof for independent verification + +#### Arguments + +1. account `string` **required** +2. number `number` **required** + +#### Result + +cashAccount `CashAccountCheckResult` + +#### Examples + + (async () => { + try { + let check = await bitbox.CashAccounts.check("cgcardona", 122) + console.log(check) + } catch (error) { + console.log(error) + } + })() + + // returns + { + "identifier": "cgcardona#122", + "block": 563742, + "results": [ + { + "transaction": "0100000001A8421264294082C08C0611E162BD49999443EF577C57923BD052F7202B09408E010000006A473044022039F4DD9AD6BC2C4E799D135BB68B5E05E71F83731EFC63260C7FB16F63BB842802203DEA9E82E97D28ADC9A9567E16762CF3663C24CE6A42AEDDC1E273E50B8CA9C941210202435C144A77C6ED76C3A74EE6006A9255B449F1B2F09FA2668027FEC106CFA1FFFFFFFF020000000000000000266A0401010101096367636172646F6E611501EF3C4F5745AFF901154F01509A8047AB0908A9008CD51100000000001976A914919908484336464C2A9938D24149A4177606340F88AC00000000", + "inclusionProof": "0000C020C98F109DA027EB72472AC903F6E2BFA993D88724734B2C01000000000000000019213AEE113214AF03EEEE303F733708AD79F259A148F4A17C496302E1D093DF7D9D2E5C4CE10418F2AE48C41F000000067AA86CA831AB260AF59E0ED93305939D9A300BD66076EB18D155143E992950C33A46C140D7202C577D6C25DCD8F315D304285D8BD890C41925F00CC256C22CC69E1410317FD69D5A58F762EE26B469DC1909F2D0DE5E471B0AC09C686C41664585DF32ABA0EEAF50B6AB66010206DE24A5C576CBC331EF153507E9E20D1C18506E24DBEDB0A0B66705E10376CD19ADB4A605098058ACB805D24456CC004CCA78ABA3969F47284773B7809C81B93E2CCCC280218272164AE5D90245A629F6801802EB00" + } + ] + } + +### `reverseLookup` + +Returns an object containing block height and inclusion proof for independent verification + +#### Arguments + +1. cashAddress `string` **required** + +#### Result + +reverseLookup `CashAccountReverseLookupResult` + +#### Examples + + (async () => { + try { + let reverseLookup = await bitbox.CashAccounts.reverseLookup("bitcoincash:qr4aadjrpu73d2wxwkxkcrt6gqxgu6a7usxfm96fst") + console.log(check) + } catch (error) { + console.log(error) + } + })() + + // returns + { + "results": [ + { + "accountEmoji": "☯", + "nameText": "Jonathan", + "accountNumber": 100, + "accountHash": "5876958390", + "accountCollisionLength": 0, + "payloadType": 1, + "payloadAddress": "bitcoincash:qr4aadjrpu73d2wxwkxkcrt6gqxgu6a7usxfm96fst" + }, + { + "accountEmoji": "🍭", + "nameText": "ConfirmationTest", + "accountNumber": 113, + "accountHash": "4640561912", + "accountCollisionLength": 0, + "payloadType": 1, + "payloadAddress": "bitcoincash:qr4aadjrpu73d2wxwkxkcrt6gqxgu6a7usxfm96fst" + }, + { + "accountEmoji": "🌽", + "nameText": "Bob", + "accountNumber": 4035, + "accountHash": "7443382842", + "accountCollisionLength": 0, + "payloadType": 1, + "payloadAddress": "bitcoincash:qr4aadjrpu73d2wxwkxkcrt6gqxgu6a7usxfm96fst" + }, + { + "accountEmoji": "🎀", + "nameText": "qr4aadjrpu73d2wxwkxkcrt6gqxgu6a7usxfm96fst", + "accountNumber": 7084, + "accountHash": "4319915751", + "accountCollisionLength": 0, + "payloadType": 1, + "payloadAddress": "bitcoincash:qr4aadjrpu73d2wxwkxkcrt6gqxgu6a7usxfm96fst" + } + ] + } + +## Interfaces + +### CashAccountInterface + + { + identifier: string + information: { + emoji: string + name: string + number: number + collision: { + hash: string + } + payment: string[] + } + } + +### CashAccountCheckResult + + { + identifier: string + block: number + results: string[] + } + +### CashAccountReverseLookupResult + + { + results: SingleCashAccountReverseLookupResult[] + } + +### SingleCashAccountReverseLookupResult + + { + accountEmoji: any + nameText: string + accountNumber: number + accountHash: string + accountCollisionLength: number + payloadType: number + payloadAddress: string + } diff --git a/docs/console.md b/docs/console.md new file mode 100644 index 00000000..da5d365b --- /dev/null +++ b/docs/console.md @@ -0,0 +1,38 @@ +# Console + +Launch a console w/ the entire Bitcoin Cash RPC available as well as dozens of helper methods via a built in `BITBOX` object. Pass in an `--environment` flag to connect to environments defined in a local `bitbox.js`. By default console will connect to your development environment. + +```bash +$ bitbox console --environment production +> bitbox. +bitbox.Address bitbox.BitcoinCash bitbox.Block bitbox.Blockchain bitbox.Control bitbox.Crypto bitbox.ECPair bitbox.Generating bitbox.restURL +bitbox.HDNode bitbox.Mining bitbox.Mnemonic bitbox.Network bitbox.Price bitbox.RawTransactions bitbox.Script bitbox.Socket +bitbox.Transaction bitbox.TransactionBuilder bitbox.Util +``` + +### Quickly test your ideas + +```javascript +bitbox console + +> bitbox.BitcoinCash.toSatoshi(9) +// 900000000 + +> bitbox.Address.toLegacyAddress('bitcoincash:qzm47qz5ue99y9yl4aca7jnz7dwgdenl85jkfx3znl') +// 1HiaTupadqQN66Tvgt7QSE5Wg13BUy25eN + +// create mnemonic +> let mnemonic = bitbox.Mnemonic.generate(128); +// ancient slide suggest chaos vivid property trophy faith bamboo lunch save hint + +// create seed buffer from mnemonic +> let seedBuffer = bitbox.Mnemonic.toSeed(mnemonic); + +// create HDNode from seed buffer +> let hdNode = bitbox.HDNode.fromSeed(seedBuffer); + +// derive hardened child HDNode +> let childNode = bitbox.HDNode.derivePath(hdNode, "m/44'/145'/0'"); +> bitbox.HDNode.toXPriv(childNode) +// xprv9yHczLBaxwHo85o8mJVHSu1ghxEWM2QZcrvWFvHWXgkqfuqNz6EDNxv4wAPTBwX7nkrnBTPgdCZi7qyQAF72MF4KTq9UzzygDhvBajpwScs +``` diff --git a/docs/control.md b/docs/control.md new file mode 100644 index 00000000..884d53e7 --- /dev/null +++ b/docs/control.md @@ -0,0 +1,135 @@ +# Control + +### `getInfo` + +Returns an object containing various state info. + +#### Result + +info `Promise` + +#### Examples + + (async () => { + try { + let getInfo = await bitbox.Control.getInfo(); + console.log(getInfo); + } catch(error) { + console.error(error) + } + })() + + // { version: 170000, + // protocolversion: 70015, + // blocks: 529235, + // timeoffset: 0, + // connections: 35, + // proxy: '', + // difficulty: 702784497476.8376, + // testnet: false, + // paytxfee: 0, + // relayfee: 0.00001, + // errors: '' } + +### `getNetworkInfo` + +Returns an object containing various network info. + +#### Result + +networkInfo `Promise` + +#### Examples + + (async () => { + try { + let getInfo = await bitbox.Control.getNetworkInfo(); + console.log(getInfo); + } catch(error) { + console.error(error) + } + })() + + // returns + { version: 190500, + subversion: '/Bitcoin ABC:0.19.5(EB32.0)/', + protocolversion: 70015, + localservices: '0000000000000425', + localrelay: true, + timeoffset: 0, + networkactive: true, + connections: 17, + networks: + [ { name: 'ipv4', + limited: false, + reachable: true, + proxy: '', + proxy_randomize_credentials: false }, + { name: 'ipv6', + limited: false, + reachable: true, + proxy: '', + proxy_randomize_credentials: false }, + { name: 'onion', + limited: true, + reachable: false, + proxy: '', + proxy_randomize_credentials: false } ], + relayfee: 0.00001, + excessutxocharge: 0, + warnings: + 'Warning: Unknown block versions being mined! It\'s possible unknown rules are in effect' }} + +## Interfaces + +### NodeInfo + + { + version: number + protocolversion: number + blocks: number + timeoffset: number + connections: number + proxy: string + difficulty: number + testnet: boolean + paytxfee: number + relayfee: number + errors: string + } + +### NetworkInfo + + { + version: number + subversion: string + protocolversion: number + localservices: string, + localrelay: boolean, + timeoffset: number, + networkactive: boolean, + connections: number, + networks: + [ { name: string, + limited: boolean, + reachable: boolean, + proxy: string, + proxy_randomize_credentials: boolean } + ], + relayfee: number, + excessutxocharge: number, + warnings: string + } + + diff --git a/docs/crypto.md b/docs/crypto.md new file mode 100644 index 00000000..5546a9cf --- /dev/null +++ b/docs/crypto.md @@ -0,0 +1,175 @@ +# Crypto + +### `sha1` + +Utility for creating sha1 hash digests of data + +#### Arguments + +1. buffer `Buffer`: data to be hashed + +#### Result + +buffer `Buffer`: sha1 hash of data + +#### Examples + + // buffer from hex + let buffer = Buffer.from('0101010101010101', 'hex') + bitbox.Crypto.sha1(buffer) + // + + // buffer from hex + let buffer = Buffer.from('031ad329b3117e1d1e2974406868e575d48cff88e8128ba0eedb10da053785033b', 'hex') + bitbox.Crypto.sha1(buffer) + // + + // buffer from hex + let buffer = Buffer.from('03123464075c7a5fa6b8680afa2c962a02e7bf071c6b2395b0ac711d462cac9354', 'hex') + bitbox.Crypto.sha1(buffer) + // + +### `sha256` + +Utility for creating sha256 hash digests of data + +#### Arguments + +1. buffer `Buffer`: data to be hashed + +#### Result + +buffer `Buffer`: sha1 hash of data + +#### Examples + + // buffer from hex + let buffer = Buffer.from('0101010101010101', 'hex') + bitbox.Crypto.sha256(buffer) + // + + // buffer from hex + let buffer = Buffer.from('031ad329b3117e1d1e2974406868e575d48cff88e8128ba0eedb10da053785033b', 'hex') + bitbox.Crypto.sha256(buffer) + // + + // buffer from hex + let buffer = Buffer.from('03123464075c7a5fa6b8680afa2c962a02e7bf071c6b2395b0ac711d462cac9354', 'hex') + bitbox.Crypto.sha256(buffer) + // + +### `ripemd160` + +Utility for creating ripemd160 hash digests of data + +#### Arguments + +1. buffer `Buffer`: data to be hashed + +#### Result + +buffer `Buffer`: ripemd160 hash of data + +#### Examples + + // buffer from hex + let buffer = Buffer.from('0101010101010101', 'hex') + bitbox.Crypto.ripemd160(buffer) + // + + // buffer from hex + let buffer = Buffer.from('75618d82d1f6251f2ef1f42f5f0d5040330948a707ff6d69720dbdcb00b48aab', 'hex') + bitbox.Crypto.ripemd160(buffer) + // + + // buffer from hex + let buffer = Buffer.from('978c09dd46091d1922fa01e9f4a975b91a371f26ba8399de27d53801152121de', 'hex') + bitbox.Crypto.ripemd160(buffer) + // + +### `hash256` + +Utility for creating double sha256 hash digests of data + +#### Arguments + +1. buffer `Buffer`: data to be hashed + +#### Result + +buffer `Buffer`: double sha256 hash of data + +#### Examples + + // buffer from hex + let buffer = Buffer.from('0101010101010101', 'hex') + bitbox.Crypto.hash256(buffer) + // + + // buffer from hex + let buffer = Buffer.from('031ad329b3117e1d1e2974406868e575d48cff88e8128ba0eedb10da053785033b', 'hex') + bitbox.Crypto.hash256(buffer) + // + + // buffer from hex + let buffer = Buffer.from('03123464075c7a5fa6b8680afa2c962a02e7bf071c6b2395b0ac711d462cac9354', 'hex') + bitbox.Crypto.hash256(buffer) + // + +### `hash160` + +Utility for creating ripemd160(sha256()) hash digests of data + +#### Arguments + +1. buffer `Buffer`: data to be hashed + +#### Result + +buffer `Buffer`: ripemd160(sha256()) hash of data + +#### Examples + + // buffer from hex + let buffer = Buffer.from('0101010101010101', 'hex') + bitbox.Crypto.hash160(buffer) + // + + // buffer from hex + let buffer = Buffer.from('031ad329b3117e1d1e2974406868e575d48cff88e8128ba0eedb10da053785033b', 'hex') + bitbox.Crypto.hash160(buffer) + // + + // buffer from hex + let buffer = Buffer.from('03123464075c7a5fa6b8680afa2c962a02e7bf071c6b2395b0ac711d462cac9354', 'hex') + bitbox.Crypto.hash160(buffer) + // + +### `randomBytes` + +Generates cryptographically strong pseudo\-random data. The size argument is a number indicating the number of bytes to generate. + +#### Arguments + +1. numBytes `number`: number of bytes to generate + +#### Result + +buffer `Buffer`: random bytes encoded as a buffer + +#### Examples + + bitbox.Crypto.randomBytes(16) + // + + bitbox.Crypto.randomBytes(20) + // + + bitbox.Crypto.randomBytes(24) + // + + bitbox.Crypto.randomBytes(28) + // + + bitbox.Crypto.randomBytes(32) + // diff --git a/docs/ecpair.md b/docs/ecpair.md new file mode 100644 index 00000000..ef470ac9 --- /dev/null +++ b/docs/ecpair.md @@ -0,0 +1,243 @@ +# ECPair + +### `fromWIF` + +Generates an ECPair from a private key in wallet import format ([WIF](https://developer.bitcoin.com/mastering-bitcoin-cash/3-keys-addresses-wallets/#private-key-formats)). Follow these [steps to go from a private key to a WIF](https://en.bitcoin.it/wiki/Wallet_import_format). This method only works with a [compressed private key](https://developer.bitcoin.com/mastering-bitcoin-cash/3-keys-addresses-wallets/#compressed-private-keys). + +#### Arguments + +1. wif `string`: private key in wallet import format ([WIF](https://developer.bitcoin.com/mastering-bitcoin-cash/3-keys-addresses-wallets/#private-key-formats)) + +#### Result + +ecpair `ECPair` + +#### Examples + + // mainnet WIF + let wif = 'L4vmKsStbQaCvaKPnCzdRArZgdAxTqVx8vjMGLW5nHtWdRguiRi1'; + bitbox.ECPair.fromWIF(wif); + + // testnet WIF + let wif = 'cSNLj6xeg3Yg2rfcgKoWNx4MiAgn9ugCUUro37UDEhn6CzeYqjWW' + bitbox.ECPair.fromWIF(wif) + +### `toWIF` + +Gets a private key in wallet import format from an ECPair. + +#### Arguments + +1. ecpair `ECPair` + +#### Result + +wif `string`: private key in wallet import format + +#### Examples + + // mainnet wif + let wif = 'L4vmKsStbQaCvaKPnCzdRArZgdAxTqVx8vjMGLW5nHtWdRguiRi1'; + // ecpair from wif + let ecpair = bitbox.ECPair.fromWIF(wif); + // wif from ecpair + bitbox.ECPair.toWIF(ecpair); + // L4vmKsStbQaCvaKPnCzdRArZgdAxTqVx8vjMGLW5nHtWdRguiRi1 + + // testnet wif + let wif = 'cT3tJP7BnjFJSAHbooMXrY8E9t2AFj37amSBAYFMeHfqPqPgD4ZA'; + // ecpair from wif + let ecpair = bitbox.ECPair.fromWIF(wif); + // wif from ecpair + bitbox.ECPair.toWIF(ecpair); + // cT3tJP7BnjFJSAHbooMXrY8E9t2AFj37amSBAYFMeHfqPqPgD4ZA + +### `fromPublicKey` + +Generates an ECPair from a public key buffer. + +#### Arguments + +1. buffer `Buffer`: public key buffer + +#### Result + +ecpair `ECPair` + +#### Examples + + // create ECPair from mainnet pubkeyBuffer + let pubkeyBuffer = Buffer.from("02fb721b92025e775b1b84774e65d568d24645cb633275f5c26f5c3101b214a8fb", 'hex'); + bitbox.ECPair.fromPublicKey(pubkeyBuffer); + + // create ECPair from testnet pubkeyBuffer + let pubkeyBuffer = Buffer.from("024a6d0737a23c472d078d78c1cbc3c2bbf8767b48e72684ff03a911b463da7fa6", 'hex'); + bitbox.ECPair.fromPublicKey(pubkeyBuffer); + +### `toPublicKey` + +Get the public key of an ECPair as a buffer. + +#### Arguments + +1. ecpair `ECPair` + +#### Result + +buffer `Buffer`: public key of an ECPair as a buffer + +#### Examples + + // create ecpair from mainnet public key buffer + let ecpair = bitbox.ECPair.fromPublicKey(Buffer.from('02d305772e0873fba6c1c7ff353ce374233316eb5820acd7ff3d7d9b82d514126b', 'hex')); + // create public key buffer + bitbox.ECPair.toPublicKey(ecpair); + // + + // create ecpair from testnet public key buffer + let ecpair = bitbox.ECPair.fromPublicKey(Buffer.from('024a6d0737a23c472d078d78c1cbc3c2bbf8767b48e72684ff03a911b463da7fa6', 'hex')); + // create public key buffer + bitbox.ECPair.toPublicKey(ecpair); + // + +### `toLegacyAddress` + +Get legacy address of ECPair + +#### Arguments + +1. ecpair `ECPair` + +#### Result + +legacyAddress `string`: legacy base58check encoded address of an ECPair + +#### Examples + + // mainnet wif + let wif = 'L5GPEGxCmojgzFoBLUUqT2GegLGqobiYhTZzfLtpkLTfTb9E9NRn'; + // ecpair from wif + let ecpair = bitbox.ECPair.fromWIF(wif); + // to legacy address + bitbox.ECPair.toLegacyAddress(ecpair); + // 1DgxdA5bbMcCNWg3yB2MgKqFazV92BXgxK + + // testnet wif + let wif = 'cSNLj6xeg3Yg2rfcgKoWNx4MiAgn9ugCUUro37UDEhn6CzeYqjWW'; + // ecpair from wif + let ecpair = bitbox.ECPair.fromWIF(wif); + // to legacy address + bitbox.ECPair.toLegacyAddress(ecpair); + // mg4PygFcXoyNJGJkM2Dcpe25av9wXzz1My + +### `toCashAddress` + +Get cash address of ECPair + +#### Arguments + +1. ecpair `ECPair` +2. regtest `boolean` **optional**: return regtest address + +#### Result + +cashAddress `string`: cashaddr encoded address of an ECPair + +#### Examples + + // mainnet wif + let wif = 'L5GPEGxCmojgzFoBLUUqT2GegLGqobiYhTZzfLtpkLTfTb9E9NRn'; + // ecpair from wif + let ecpair = bitbox.ECPair.fromWIF(wif); + // to legacy address + bitbox.ECPair.toCashAddress(ecpair); + // bitcoincash:qz9nq206kteyv2t7trhdr4vzzkej60kqtytn7sxkxm + + // testnet wif + let wif = 'cSNLj6xeg3Yg2rfcgKoWNx4MiAgn9ugCUUro37UDEhn6CzeYqjWW'; + // ecpair from wif + let ecpair = bitbox.ECPair.fromWIF(wif); + // to legacy address + bitbox.ECPair.toCashAddress(ecpair); + // bchtest:qqzly4vrcxcjw62u4yq4nv86ltk2mc9v0yvq8mvj6m + +### `sign` + +Sign 32 byte hash encoded as a buffer + +#### Arguments + +1. ecpair `ECPair` +2. buffer `Buffer`: 32 byte Buffer +3. signatureAlgorithm: `number` **optional**. `0x00` for ECDSA and `0x01` for Schnorr. Defaults to `0x00` + +#### Result + +signature `Object` + +#### Examples + + // mainnet wif + let wif = 'Kxq2EzVbDwjquUt5zyCFED5FRt99RZKEKVDJWTQcpSDoLAWMqLer'; + // ecpair from wif + let ecpair = bitbox.ECPair.fromWIF(wif); + // 32 byte buffer + let buf = Buffer.from(bitbox.Crypto.sha256('EARTH'), 'hex'); + // sign + bitbox.ECPair.sign(ecpair, buf); + + // testnet wif + let wif = 'cT3tJP7BnjFJSAHbooMXrY8E9t2AFj37amSBAYFMeHfqPqPgD4ZA'; + // ecpair from wif + let ecpair = bitbox.ECPair.fromWIF(wif); + // 32 byte buffer + let buf = Buffer.from(bitbox.Crypto.sha256('EARTH'), 'hex'); + // sign + bitbox.ECPair.sign(ecpair, buf); + +### `verify` + +Verify signed 32 byte hash encoded as a buffer + +#### Arguments + +1. ecpair `ECPair` +2. buffer `Buffer`: 32 byte Buffer +3. signature `ECSignature` + +#### Result + +verified `boolean` + +#### Examples + + // mainnet wifs + let wif1 = 'Kxq2EzVbDwjquUt5zyCFED5FRt99RZKEKVDJWTQcpSDoLAWMqLer'; + let wif2 = 'L4BwXDmjzEyzKHbAfGruhieUDPs8KTx7DMgqPk4aF9GefzgqPENV'; + // ecpairs from wifs + let ecpair1 = bitbox.ECPair.fromWIF(wif1); + let ecpair2 = bitbox.ECPair.fromWIF(wif2); + // 32 byte buffer + let buf = Buffer.from(bitbox.Crypto.sha256('EARTH'), 'hex'); + // sign + let signature = bitbox.ECPair.sign(ecpair1, buf); + // verify + bitbox.ECPair.verify(ecpair1, buf, signature); + // true + bitbox.ECPair.verify(ecpair2, buf, signature); + // false + + // testnet wifs + let wif1 = 'cT3tJP7BnjFJSAHbooMXrY8E9t2AFj37amSBAYFMeHfqPqPgD4ZA'; + let wif2 = 'cRaFawZ49jEV2X3byAV4iGBYCRBVU8PoBzUMVToeEbFeVzbH4Gi7'; + // ecpairs from wifs + let ecpair1 = bitbox.ECPair.fromWIF(wif1); + let ecpair2 = bitbox.ECPair.fromWIF(wif2); + // 32 byte buffer + let buf = Buffer.from(bitbox.Crypto.sha256('EARTH'), 'hex'); + // sign + let signature = bitbox.ECPair.sign(ecpair1, buf); + // verify + bitbox.ECPair.verify(ecpair1, buf, signature); + // true + bitbox.ECPair.verify(ecpair2, buf, signature); diff --git a/docs/getting-started.md b/docs/getting-started.md new file mode 100644 index 00000000..43fbb20f --- /dev/null +++ b/docs/getting-started.md @@ -0,0 +1,129 @@ +# Getting Started + +### Dependencies + +#### NodeJS + +NodeJS is a javascript runtime build on Chrome’s V8 engine. npm is the package manager for NodeJS. + +Use the official installer from [nodejs.org](https://nodejs.org/). Install the one which says “Recommended for Most Users” + +### Command Line + +To use commands like `new` and `console`: + + npm install bitbox-cli --global + // installs a `bitbox` command + +To use inside a client/server app: + + npm install bitbox-sdk --save + +### Usage + +Import BITBOX into your code: + + // require syntax + let BITBOX = require('bitbox-sdk').BITBOX; + let bitbox = new BITBOX(); + bitbox.Mnemonic.generate() + // couple sleep cruise hybrid physical nature spin hedgehog put paddle silver laundry + + // import syntax + import { BITBOX } from 'bitbox-sdk' + let bitbox = new BITBOX(); + bitbox.Mnemonic.generate() + // whip mind item rapid use cigar gap inherit shove weasel similar stick + +All classes are able to be included via both `require` and `import` + + // require syntax + const Address = require("bitbox-sdk").Address + let address = new Address() + const BitcoinCash = require("bitbox-sdk").BitcoinCash + let bitcoincash = new BitcoinCash() + const BitDB = require("bitbox-sdk").BitDB + let bitdb = new BitDB() + const Block = require("bitbox-sdk").Block + let block = new Block() + const Blockchain = require("bitbox-sdk").Blockchain + let blockchain = new Blockchain + const CashAccounts = require("bitbox-sdk").CashAccounts + let cashAccounts = new CashAccounts() + const Control = require("bitbox-sdk").Control + let control = new Control() + const Crypto = require("bitbox-sdk").Crypto + let crypto = new Crypto() + const ECPair = require("bitbox-sdk").ECPair + let ecpair = new ECPair() + const Generating = require("bitbox-sdk").Generating + let generating = new Generating() + const HDNode = require("bitbox-sdk").HDNode + let hdnode = new HDNode() + const Mining = require("bitbox-sdk").Mining + let mining = new Mining() + const Mnemonic = require("bitbox-sdk").Mnemonic + let mnemonic = new Mnemonic() + const Price = require("bitbox-sdk").Price + let price = new Price() + const RawTransactions = require("bitbox-sdk").RawTransactions + let rawtransactions = new RawTransactions() + const Schnorr = require("bitbox-sdk").Schnorr + let schnorr = new Schnorr + const Script = require("bitbox-sdk").Script + let script = new Script() + const Socket = require("bitbox-sdk").Socket + let socket = new Socket() + const Transaction = require("bitbox-sdk").Transaction + let transaction = new Transaction + const TransactionBuilder = require("bitbox-sdk").TransactionBuilder + let transactionbuilder = new TransactionBuilder() + const Util = require("bitbox-sdk").Util + let util = new Util() + + // import syntax + import { + Address, + BitcoinCash, + BitDB, + Block, + Blockchain, + CashAccounts, + Control, + Crypto, + ECPair, + Generating, + HDNode, + Mining, + Mnemonic, + Price, + RawTransactions, + Schnorr, + Script, + Socket, + Transaction, + TransactionBuilder, + Util + } from "bitbox-sdk" + + let address = new Address() + let bitcoincash = new BitcoinCash() + let bitdb = new BitDB() + let block = new Block() + let blockchain = new Blockchain + let cashAccounts = new CashAccounts() + let control = new Control() + let crypto = new Crypto() + let ecpair = new ECPair() + let generating = new Generating() + let hdnode = new HDNode() + let mining = new Mining() + let mnemonic = new Mnemonic() + let price = new Price() + let rawtransactions = new RawTransactions() + let schnorr = new Schnorr + let script = new Script() + let socket = new Socket() + let transaction = new Transaction + let transactionbuilder = new TransactionBuilder() + let util = new Util() diff --git a/docs/hdnode.md b/docs/hdnode.md new file mode 100644 index 00000000..22ab0afc --- /dev/null +++ b/docs/hdnode.md @@ -0,0 +1,670 @@ +# HDNode + +HDNode stands for Hierarchically Deterministic node which can be used to create a [HD wallet](https://developer.bitcoin.com/mastering-bitcoin-cash/3-keys-addresses-wallets/#hierarchical-deterministic-wallets-bip0032bip0044). + +### `fromSeed` + +Create HDNode from Seed Buffer. + +#### Arguments + +1. rootSeed `Buffer`: root seed buffer +2. network `string` **optional**: network. default: 'mainnet' + +#### Result + +HDNode `HDNode` + +#### Examples + + // create mnemonic + let mnemonic = bitbox.Mnemonic.generate(128); + // create seed buffer from mnemonic + let seedBuffer = bitbox.Mnemonic.toSeed(mnemonic); + // create HDNode from seed buffer + bitbox.HDNode.fromSeed(seedBuffer); + + // generate entropy + let entropy = bitbox.Crypto.randomBytes(32); + // create mnemonic from entropy + let mnemonic = bitbox.Mnemonic.fromEntropy(entropy); + // create seed buffer from mnemonic + let seedBuffer = bitbox.Mnemonic.toSeed(mnemonic); + // create HDNode from seed buffer + bitbox.HDNode.fromSeed(seedBuffer); + +### `derive` + +Derive [non hardened](https://developer.bitcoin.com/mastering-bitcoin-cash/3-keys-addresses-wallets/#hardened-child-key-derivation) child HDNode + +#### Arguments + +1. hdnode `HDNode` +2. num `number`: number of child node. Ex: 0 + +#### Result + +HDNode `HDNode` + +#### Examples + + // create mnemonic + let mnemonic = bitbox.Mnemonic.generate(128); + // create seed buffer from mnemonic + let seedBuffer = bitbox.Mnemonic.toSeed(mnemonic); + // create HDNode from seed buffer + let hdNode = bitbox.HDNode.fromSeed(seedBuffer); + // derive unhardened child HDNode + bitbox.HDNode.derive(hdNode, 0); + +### `deriveHardened` + +Derive [hardened](https://developer.bitcoin.com/mastering-bitcoin-cash/3-keys-addresses-wallets/#hardened-child-key-derivation) child HDNode + +#### Arguments + +1. hdnode `HDNode` +2. num `number`: number of child node. Ex: 0 + +#### Result + +HDNode `HDNode` + +#### Examples + + // create mnemonic + let mnemonic = bitbox.Mnemonic.generate(128); + // create seed buffer from mnemonic + let seedBuffer = bitbox.Mnemonic.toSeed(mnemonic); + // create HDNode from seed buffer + let hdNode = bitbox.HDNode.fromSeed(seedBuffer); + // derive hardened child HDNode + bitbox.HDNode.deriveHardened(hdNode, 0); + +### `derivePath` + +Derive child HDNode from path + +#### Arguments + +1. hdnode `HDNode` +2. path `string`: path of child hd node. Ex: "m/44'/145'/0'" + +#### Result + +HDNode `HDNode` + +#### Examples + + // create mnemonic + let mnemonic = bitbox.Mnemonic.generate(128); + // create seed buffer from mnemonic + let seedBuffer = bitbox.Mnemonic.toSeed(mnemonic); + // create HDNode from seed buffer + let hdNode = bitbox.HDNode.fromSeed(seedBuffer); + // derive hardened child HDNode + bitbox.HDNode.derivePath(hdNode, "m/44'/145'/0'"); + +### `toLegacyAddress` + +Get legacy address of HDNode + +#### Arguments + +1. hdnode `HDNode` + +#### Result + +legacyAddress `string`: legacy base58check encoded address of HDNode + +#### Examples + + // create mnemonic + let mnemonic = bitbox.Mnemonic.generate(128); + // create seed buffer from mnemonic + let seedBuffer = bitbox.Mnemonic.toSeed(mnemonic); + // create HDNode from seed buffer + let hdNode = bitbox.HDNode.fromSeed(seedBuffer); + // to legacy address + bitbox.HDNode.toLegacyAddress(hdNode); + // 14apxtw2LDQmXWsS5k4JEhG93Jzjswhvma + + // generate entropy + let entropy = bitbox.Crypto.randomBytes(32); + // create mnemonic from entropy + let mnemonic = bitbox.Mnemonic.fromEntropy(entropy); + // create seed buffer from mnemonic + let seedBuffer = bitbox.Mnemonic.toSeed(mnemonic); + // create HDNode from seed buffer + let hdNode = bitbox.HDNode.fromSeed(seedBuffer); + // to cash address + bitbox.HDNode.toLegacyAddress(hdNode); + // 14mVsq3H5Ep2Jb6AqoKsmY1BFHKCBGPDLi + +### `toCashAddress` + +Get cash address of HDNode + +#### Arguments + +1. hdnode `HDNode` +2. regtest `boolean` **optional**: return regtest address + +#### Result + +cashAddress `string`: cashaddr encoded address of HDNode + +#### Examples + + // create mnemonic + let mnemonic = bitbox.Mnemonic.generate(128); + // create seed buffer from mnemonic + let seedBuffer = bitbox.Mnemonic.toSeed(mnemonic); + // create HDNode from seed buffer + let hdNode = bitbox.HDNode.fromSeed(seedBuffer); + // to cash address + bitbox.HDNode.toCashAddress(hdNode); + // bitcoincash:qqrz6kqw6nvhwgwrt4g7fggepvewtkr7nukkeqf4rw + + // generate entropy + let entropy = bitbox.Crypto.randomBytes(32); + // create mnemonic from entropy + let mnemonic = bitbox.Mnemonic.fromEntropy(entropy); + // create seed buffer from mnemonic + let seedBuffer = bitbox.Mnemonic.toSeed(mnemonic); + // create HDNode from seed buffer + let hdNode = bitbox.HDNode.fromSeed(seedBuffer); + // to cash address + bitbox.HDNode.toCashAddress(hdNode); + // bitcoincash:qq549jxsjv66kw0smdju4es2axnk7hhe9cquhjg4gt + +### `toWIF` + +Get private key in wallet import format (WIF) of HDNode + +#### Arguments + +1. hdnode `HDNode` + +#### Result + +privateKeyWIF `string`: private key in wallet import format (WIF) of HDNode + +#### Examples + + // create mnemonic + let mnemonic = bitbox.Mnemonic.generate(128); + // create seed buffer from mnemonic + let seedBuffer = bitbox.Mnemonic.toSeed(mnemonic); + // create HDNode from seed buffer + let hdNode = bitbox.HDNode.fromSeed(seedBuffer); + // to WIF + bitbox.HDNode.toWIF(hdNode); + // L5E8QjFnLukp8BuF4uu9gmvvSrbafioURGdBve5tA3Eq5ptzbMCJ + + // generate entropy + let entropy = bitbox.Crypto.randomBytes(32); + // create mnemonic from entropy + let mnemonic = bitbox.Mnemonic.fromEntropy(entropy); + // create seed buffer from mnemonic + let seedBuffer = bitbox.Mnemonic.toSeed(mnemonic); + // create HDNode from seed buffer + let hdNode = bitbox.HDNode.fromSeed(seedBuffer); + // to WIF + bitbox.HDNode.toWIF(hdNode); + // KwobPFhv3AuXc3ps6YtWfMVRpLBDBA7jnJddurfELTyTNcFhZYpJ + +### `toXPub` + +Get [extended](https://developer.bitcoin.com/mastering-bitcoin-cash/3-keys-addresses-wallets/#extended-keys) [public key](https://developer.bitcoin.com/mastering-bitcoin-cash/3-keys-addresses-wallets/#public-key-cryptography-and-cryptocurrency) of HDNode + +#### Arguments + +1. hdnode `HDNode` + +#### Result + +xpub `string`: extended public key of HDNode + +#### Examples + + // create mnemonic + let mnemonic = bitbox.Mnemonic.generate(128); + // create seed buffer from mnemonic + let seedBuffer = bitbox.Mnemonic.toSeed(mnemonic); + // create HDNode from seed buffer + let hdNode = bitbox.HDNode.fromSeed(seedBuffer); + // to extended public key + bitbox.HDNode.toXPub(hdNode); + // xpub661MyMwAqRbcG4CnhNYoK1r1TKLwQQ1UdC3LHoWFK61rsnzh7Hx35qQ9Z53ucYcE5WvA7GEDXhqqKjSY2e6Y8n7WNVLYHpXCuuX945VPuYn + + // generate entropy + let entropy = bitbox.Crypto.randomBytes(32); + // create mnemonic from entropy + let mnemonic = bitbox.Mnemonic.fromEntropy(entropy); + // create seed buffer from mnemonic + let seedBuffer = bitbox.Mnemonic.toSeed(mnemonic); + // create HDNode from seed buffer + let hdNode = bitbox.HDNode.fromSeed(seedBuffer); + // to extended public key + bitbox.HDNode.toXPub(hdNode); + // xpub661MyMwAqRbcFuMLeHkSbTNwNHG9MQyrAZqV1Q4MEAsmj9MYa5sxg8WC2LKqW6EHviHVucBjWi1n38juZpDDeX3U6YrsMeACdcNSTHkM8BQ + +### `toXPriv` + +Get [extended](https://developer.bitcoin.com/mastering-bitcoin-cash/3-keys-addresses-wallets/#extended-keys) [private key](https://developer.bitcoin.com/mastering-bitcoin-cash/3-keys-addresses-wallets/#private-keys) of HDNode + +#### Arguments + +1. hdnode `HDNode` + +#### Result + +xpriv `string`: extended private key of HDNode + +#### Examples + + // create mnemonic + let mnemonic = bitbox.Mnemonic.generate(128); + // create seed buffer from mnemonic + let seedBuffer = bitbox.Mnemonic.toSeed(mnemonic); + // create HDNode from seed buffer + let hdNode = bitbox.HDNode.fromSeed(seedBuffer); + // to extended private key + bitbox.HDNode.toXPriv(hdNode); + // xprv9s21ZrQH143K2eMCcbT4qwwRhw6qZaPaEDWB792bnrxQZPoP2JUk4kfEx9eeV1uGTAWAfCqYr4wDWo52qALiukizKwQzvEyNR1fWZJi97Kv + + // generate entropy + let entropy = bitbox.Crypto.randomBytes(32); + // create mnemonic from entropy + let mnemonic = bitbox.Mnemonic.fromEntropy(entropy); + // create seed buffer from mnemonic + let seedBuffer = bitbox.Mnemonic.toSeed(mnemonic); + // create HDNode from seed buffer + let hdNode = bitbox.HDNode.fromSeed(seedBuffer); + // to extended private key + bitbox.HDNode.toXPriv(hdNode); + // xprv9s21ZrQH143K2b5GPP6zHz22E6LeCgQXJtwNbC3MA3Kz7Se7tveKo96EhqwFtSkYWkyenVcMqM7uq35PcUNG8cUdpsJEgwKG3dvfP7TmL3v + +### `toKeyPair` + +Get the ECPair of an HDNode + +#### Arguments + +1. hdnode `HDNode` + +#### Result + +keyPair `ECPair`: ECPair of an HDNode + +#### Examples + + // create mnemonic + let mnemonic = bitbox.Mnemonic.generate(128); + // create root seed buffer from mnemonic + let rootSeed= bitbox.Mnemonic.toSeed(mnemonic); + // create HDNode from root seed + let hdNode = bitbox.HDNode.fromSeed(rootSeed); + // create public key buffer from HDNode + bitbox.HDNode.toKeyPair(hdNode); + + // generate entropy + let entropy = bitbox.Crypto.randomBytes(32); + // create mnemonic from entropy + let mnemonic = bitbox.Mnemonic.fromEntropy(entropy); + // create seed buffer from mnemonic + let seedBuffer = bitbox.Mnemonic.toSeed(mnemonic); + // create HDNode from seed buffer + let hdNode = bitbox.HDNode.fromSeed(seedBuffer); + // create public key buffer from HDNode + bitbox.HDNode.toKeyPair(hdNode); + +### `toPublicKey` + +Get the public key of an HDNode as a buffer + +#### Arguments + +1. hdnode `HDNode` + +#### Result + +publicKeyBuffer `Buffer`: public key of HDNode as a buffer + +#### Examples + + // create mnemonic + let mnemonic = bitbox.Mnemonic.generate(128); + // create root seed buffer from mnemonic + let rootSeed= bitbox.Mnemonic.toSeed(mnemonic); + // create HDNode from root seed + let hdNode = bitbox.HDNode.fromSeed(rootSeed); + // create public key buffer from HDNode + bitbox.HDNode.toPublicKey(hdNode); + // + + // generate entropy + let entropy = bitbox.Crypto.randomBytes(32); + // create mnemonic from entropy + let mnemonic = bitbox.Mnemonic.fromEntropy(entropy); + // create seed buffer from mnemonic + let seedBuffer = bitbox.Mnemonic.toSeed(mnemonic); + // create HDNode from seed buffer + let hdNode = bitbox.HDNode.fromSeed(seedBuffer); + // create public key buffer from HDNode + bitbox.HDNode.toPublicKey(hdNode); + // + +### `toIdentifier` + +hash160 of Node’s public key. The same value you would see in a scriptPubKey. + +#### Arguments + +1. hdnode `HDNode` + +#### Result + +identifier `Buffer` + +#### Examples + + // mainnet + let xpub = 'xpub6DWfGUo4cjC8oWmgZdpyFMH6v3oeyADfdUPhsehzn5jX44zpazivha3JxUtkcCvBEB1c6DGaiUmpyz2m1DRfGDEVZ5VxLLW2UNEbZ5iTRvi'; + let node = bitbox.HDNode.fromXPub(xpub); + bitbox.HDNode.toIdentifier(node); + // + // the same as if we hash160ed it's publicKey + let publicKeyBuffer = bitbox.HDNode.toPublicKey(node); + bitbox.Crypto.hash160(publicKeyBuffer); + // + + // testnet + let xpub = 'tpubDCxmZ3qLVVphg6NpsnAjQFqDPwr9HYqSgoAcUYAfqSgo32dL6NA8QXqWsS6XTjoGggohZKvujsAv2F2ugej9qfUYau2jSUB4JaYnfMsx3MJ'; + let node = bitbox.HDNode.fromXPub(xpub); + bitbox.HDNode.toIdentifier(node); + // + // the same as if we hash160ed it's publicKey + let publicKeyBuffer = bitbox.HDNode.toPublicKey(node); + bitbox.Crypto.hash160(publicKeyBuffer); + // + +### `fromXPriv` + +Generate HDNode from extended private key + +#### Arguments + +1. xpriv `string`: extended private key + +#### Result + +hdNode `HDNode` + +#### Examples + + // mainnet xpriv + bitbox.HDNode.fromXPriv('xprv9s21ZrQH143K2b5GPP6zHz22E6LeCgQXJtwNbC3MA3Kz7Se7tveKo96EhqwFtSkYWkyenVcMqM7uq35PcUNG8cUdpsJEgwKG3dvfP7TmL3v'); + + // testnet xpriv + bitbox.HDNode.fromXPriv('tprv8gQ3zr1F5pRHMebqqhorrorYNvUG3XkcZjSWVs2cEtRwwJy1TRhgRx4XcF8dYHM2eyTbTCcdKYNhqgyBQphxwRoVyVKr9zuyoA8WxNDRvom'); + +### `fromXPub` + +Generate HDNode from extended public key + +#### Arguments + +1. xpub `string`: extended public key + +#### Result + +hdNode `HDNode` + +#### Examples + + // mainnet xpub + bitbox.HDNode.fromXPub('xpub661MyMwAqRbcFuMLeHkSbTNwNHG9MQyrAZqV1Q4MEAsmj9MYa5sxg8WC2LKqW6EHviHVucBjWi1n38juZpDDeX3U6YrsMeACdcNSTHkM8BQ'); + + // testnet xpub + bitbox.HDNode.fromXPub('tpubDD669G3VEC6xF7ddjMUTGDWewwzCCrwX933HnP4ufAELmoDn5pXGcSgPnLodjFvWQwRXkG94f77BatEDA8dfQ99yy97kRYynUpNLENEqTBo'); + +### `isPublic` + +Check if an HDNode can only derive public keys and children + +#### Arguments + +1. hdnode `HDNode` + +#### Result + +isPublic `boolean` + +#### Examples + + // mainnet xpub + let xpub = 'xpub6DWfGUo4cjC8oWmgZdpyFMH6v3oeyADfdUPhsehzn5jX44zpazivha3JxUtkcCvBEB1c6DGaiUmpyz2m1DRfGDEVZ5VxLLW2UNEbZ5iTRvi'; + let node = bitbox.HDNode.fromXPub(xpub); + bitbox.HDNode.isPublic(node); + // true + + // mainnet xpriv + let xpriv = 'xprv9ys4cvcoU8RoxqkZ7Fgt33te4LPHgcsKwyoZYVorkzp9uonWxWgP9wiSQhPeBUqVHbdAyov4Yi55RywBkDfZKdJFRqA51Anz6v72zGaMGZp'; + let node = bitbox.HDNode.fromXPriv(xpriv); + bitbox.HDNode.isPublic(node); + // false + + // testnet xpub + let xpub = 'tpubDCxmZ3qLVVphg6NpsnAjQFqDPwr9HYqSgoAcUYAfqSgo32dL6NA8QXqWsS6XTjoGggohZKvujsAv2F2ugej9qfUYau2jSUB4JaYnfMsx3MJ'; + let node = bitbox.HDNode.fromXPub(xpub); + bitbox.HDNode.isPublic(node); + // true + + // testnet xpriv + let xpriv = 'tprv8ggxJ8SG5EdqakzVUeLa9Gr7sqCdEcJPUNDmtdJscNxfmxoXvU36ZguiUWukJVEWEixAUr8pJabJkCt33wzxFQA587gqN51Lxdxx97zAzuG'; + let node = bitbox.HDNode.fromXPriv(xpriv); + bitbox.HDNode.isPublic(node); + // false + +### `isPrivate` + +Check if an HDNode can derive both public and private keys and children + +#### Arguments + +1. hdnode `HDNode` + +#### Result + +isPrivate `boolean` + +#### Examples + + // mainnet xpub + let xpub = 'xpub6DWfGUo4cjC8oWmgZdpyFMH6v3oeyADfdUPhsehzn5jX44zpazivha3JxUtkcCvBEB1c6DGaiUmpyz2m1DRfGDEVZ5VxLLW2UNEbZ5iTRvi'; + let node = bitbox.HDNode.fromXPub(xpub); + bitbox.HDNode.isPrivate(node); + // false + + // mainnet xpriv + let xpriv = 'xprv9ys4cvcoU8RoxqkZ7Fgt33te4LPHgcsKwyoZYVorkzp9uonWxWgP9wiSQhPeBUqVHbdAyov4Yi55RywBkDfZKdJFRqA51Anz6v72zGaMGZp'; + let node = bitbox.HDNode.fromXPriv(xpriv); + bitbox.HDNode.isPrivate(node); + // true + + // testnet xpub + let xpub = 'tpubDCxmZ3qLVVphg6NpsnAjQFqDPwr9HYqSgoAcUYAfqSgo32dL6NA8QXqWsS6XTjoGggohZKvujsAv2F2ugej9qfUYau2jSUB4JaYnfMsx3MJ'; + let node = bitbox.HDNode.fromXPub(xpub); + bitbox.HDNode.isPrivate(node); + // false + + // testnet xpriv + let xpriv = 'tprv8ggxJ8SG5EdqakzVUeLa9Gr7sqCdEcJPUNDmtdJscNxfmxoXvU36ZguiUWukJVEWEixAUr8pJabJkCt33wzxFQA587gqN51Lxdxx97zAzuG'; + let node = bitbox.HDNode.fromXPriv(xpriv); + bitbox.HDNode.isPrivate(node); + // true + +### `sign` + +Sign 32 byte hash encoded as a buffer + +#### Arguments + +1. hdnode `HDNode` +2. buffer `Buffer` + +#### Result + +signature `ECSignature` + +#### Examples + + // mainnet xpriv + let xpriv = 'xprv9z2uWrGjbYPxc728rvtMi4jt4SudRiSfYn6Tdif5XN17pJ1NTbHoHK6JePkPLY1NHXLaQcA6sWudpZDm7DwKhbsGQieAp9wx46Wbio4iXg9'; + // hdnode from xpriv + let hdnode = bitbox.HDNode.fromXPriv(xpriv); + // 32 byte buffer + let buf = Buffer.from(bitbox.Crypto.sha256('EARTH'), 'hex'); + // sign + bitbox.HDNode.sign(hdnode, buf); + + // testnet xpriv + let xpriv = 'tprv8ggxJ8SG5EdqakzVUeLa9Gr7sqCdEcJPUNDmtdJscNxfmxoXvU36ZguiUWukJVEWEixAUr8pJabJkCt33wzxFQA587gqN51Lxdxx97zAzuG'; + // hdnode from xpriv + let hdnode = bitbox.HDNode.fromXPriv(xpriv); + // 32 byte buffer + let buf = Buffer.from(bitbox.Crypto.sha256('EARTH'), 'hex'); + // sign + bitbox.HDNode.sign(hdnode, buf); + +### `verify` + +Verify signed 32 byte hash encoded as a buffer + +#### Arguments + +1. hdnode `HDNode` +2. buffer `Buffer` +3. signature `ECSignature` + +#### Result + +verified `boolean` + +#### Examples + + // mainnet xprivs + let xpriv1 = 'xprv9ys4cvcoU8RoqvzxGj886r4Ey3w1WfVNYH8sMnVPVzyQtaPPM6Q8pHm3D9WPWvEupGEgcJ1xLaGaZDcvKfoAurE2AzHRRRup5FuHzDr8n15'; + let xpriv2 = 'xprv9ys4cvcoU8RoxqkZ7Fgt33te4LPHgcsKwyoZYVorkzp9uonWxWgP9wiSQhPeBUqVHbdAyov4Yi55RywBkDfZKdJFRqA51Anz6v72zGaMGZp'; + // hdnodes from xprivs + let hdnode1 = bitbox.HDNode.fromXPriv(xpriv1); + let hdnode2 = bitbox.HDNode.fromXPriv(xpriv2); + // 32 byte buffer + let buf = Buffer.from(bitbox.Crypto.sha256('EARTH'), 'hex'); + // sign + let signature = bitbox.HDNode.sign(hdnode1, buf); + // verify + bitbox.HDNode.verify(hdnode1, buf, signature); + // true + bitbox.HDNode.verify(hdnode2, buf, signature); + // false + + // testnet xprivs + let xpriv1 = 'tprv8ggxJ8SG5EdqakzVUeLa9Gr7sqCdEcJPUNDmtdJscNxfmxoXvU36ZguiUWukJVEWEixAUr8pJabJkCt33wzxFQA587gqN51Lxdxx97zAzuG'; + let xpriv2 = 'tprv8ggxJ8SG5EdqiM6Dn63QwHScQ7HS5hXqUMxSD1NEbDyPw6VtoUMFZBAohpTMsPz9cYbpHELmA4Zm79NKRvEvFdhWRX2bSmu7V7PiNb364nv'; + // hdnodes from xprivs + let hdnode1 = bitbox.HDNode.fromXPriv(xpriv1); + let hdnode2 = bitbox.HDNode.fromXPriv(xpriv2); + // 32 byte buffer + let buf = Buffer.from(bitbox.Crypto.sha256('EARTH'), 'hex'); + // sign + let signature = bitbox.ECPair.sign(hdnode1, buf); + // verify + bitbox.HDNode.verify(hdnode1, buf, signature); + // true + bitbox.HDNode.verify(hdnode2, buf, signature); + // false + +### `createAccount` + +Create [BIP32](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#the-default-wallet-layout) account. Has `getChainAddress` and `nextChainAddress` helper methods. + +#### Arguments + +1. hdNodes `HDNode[]` + +#### Result + +account: `Object` + +#### Examples + + // create mnemonic + let mnemonic = bitbox.Mnemonic.generate(128); + // create root seed buffer + let rootSeedBuffer = bitbox.Mnemonic.toSeed(mnemonic); + // create master hd node + let masterHDNode = bitbox.HDNode.fromSeed(rootSeedBuffer); + // derive child node + let childNode = masterHDNode.derivePath("m/44'/145'/0'/0"); + // create account + let account = bitbox.HDNode.createAccount([childNode]); + +### `getChainAddress` + +Returns the latest address from account + +#### Arguments + +1. account: `number` + +#### Result + +address: `string` + +#### Examples + + // create mnemonic + let mnemonic = bitbox.Mnemonic.generate(128); + // create root seed buffer + let rootSeedBuffer = bitbox.Mnemonic.toSeed(mnemonic); + // create master hd node + let masterHDNode = bitbox.HDNode.fromSeed(rootSeedBuffer); + // derive child node + let childNode = masterHDNode.derivePath("m/44'/145'/0'/0"); + // create account + let account = bitbox.HDNode.createAccount([childNode]); + account.getChainAddress(0) + // 1EsibxXqzxzcor7eS34dSGrZp1kb3nQFFr + +### `nextChainAddress` + +Moves the most recent address forward for account + +#### Arguments + +1. account: `number` + +#### Result + +address: `string` + +#### Examples + + // create mnemonic + let mnemonic = bitbox.Mnemonic.generate(128); + // create root seed buffer + let rootSeedBuffer = bitbox.Mnemonic.toSeed(mnemonic); + // create master hd node + let masterHDNode = bitbox.HDNode.fromSeed(rootSeedBuffer); + // derive child node + let childNode = masterHDNode.derivePath("m/44'/145'/0'/0"); + // create account + let account = bitbox.HDNode.createAccount([childNode]); + account.getChainAddress(0) + // 1EsibxXqzxzcor7eS34dSGrZp1kb3nQFFr + account.nextChainAddress(0) + account.getChainAddress(0) + // 1JBApcAMD3riimPxABg2pNvwLumP9DEpxD diff --git a/docs/images/paper.png b/docs/images/paper.png new file mode 100644 index 0000000000000000000000000000000000000000..48b8ff99fd6f849ff927d83232d71fe9780d04fb GIT binary patch literal 185068 zcmeEsW0Ymxu4vipvejjE*|u%l=(4LzUAAr8ws+a;vTf`2ch0%*o^$Wl|KE?d$Jk@6 zHCHl|nam_}CJB|76@!Pth5-Tsf|n2%Rs;e9s{sN6S%iZ4J)){@SqB6JM`R%+BrhQ( zL@4iIXKG<>0t6%;ny3b;96ySl)m;!b4T2o=#RH{KJQ-WFKoSy%2>NRRCaAz*6b)4k zy0UT&aXB$e6$PPTzb^XV1_mq@psgevK9NlVNar!}_QLld`|?-owD}fq5Y_= zwKLWsNA`!7@7 zx3eGnhNp7k#*fJm3<0!J1rd<;#p_z?Kc=>yHsdl$aZdVC(bMFyztB!;@Y<%%3GSyr zTx)!{6#hDphNOpbjrQR1rc41Fiqr7fGiK1w04fb6kDZN!1XIg9Kvp---Ysx8kx1p0 z%afKtA0Z<@BsMr}F%xh-l$DfW-erFlE+TZG#E#w=l4;^-8GI)0T?EK`Y<;St`}T#94^3mPZm8b?kRcR9h&hjnGT}QB9qg4pghq|H07V7(H);;Z zYotfJ?@)5kc!6Spr-8D4Hb{tB{9H49jBn^N%oVVZncpm@^<7Fg&4RV~7bjczF2J9K zF4$3)KwX~HQ$h(YKph=_uG-~4T(*q;R98Bqq%Z*+Og6mF&n$~9yRC`lZoYJ%+Hwu4Q|0ZM`yM$2b9h& zZ(=~oIS{U4bl(EalF`OTkXwM{wqQYe-H@OS1-_(!3~NBu5uIY`Bd9}#@k6TvFaCh3 z!LkPB>cy`?WcE|F$IXDi=rOU!`xRtW2-^YHxrKKmh7=e$jSP_&j!AS7Lc0^vLbM@H z_~oZCiG(;zTvP}$79*raU;?3uICvdeseq3N0`YLHqd24kj(dm`iCv5w#m`xJ+IgTx z{^1iA%XMet6QUvmpx2-wp^CS%PKY~5zJyBWkJREB;j{j&?L0RbnU3K|-Y9zF@r|zks@cZWgi*W+miI9D$fTesB-O zfx{i+8R{A48LKrrPnMzBO`e$23qS*KkYp(gatNIjIWD%8r!Cc;SGR<4CUVAWjPeNc zh<;HO5g8O7)G_f76F2b#a3*$AnW^BHc@$fgNKY1kF<_djMTwCWX`gRW2R*WWqD2uN?T)=Gv_tchf{(` z?=_+^RA!Q8Xln@3Owz=ygsc2g$)kC$*}0mwYSg&fXlAKqNw9cfY$y#&7Mwb$J^5?6 zqxX%uPd{)IsyC#Nsr^WAgVfwzgWFk_poh}Tqnsk$F}G~a-D4b)uSaVas#Xr z%Om|x_V_+x9{ZRhj;+pZuPfH|PQe@J-TZy!W$ljs54Mz(sR;k=}oB*X;`U2=@Sg)EbT_J46aNVY1J%zMjsn}v&6lIwIcC@j#7A1Q6^m` zmHRx@ZHdtfPUTePR*S+`Y^Tzvk&DST@;GKVxiWQ5;MM<(>83N#2d`I*>BK*9hPUv8j`ylR1-Z)tHu0m*A_| z)*F81{gPatY(x3=zJA!=+~#{{e?4-)e0W`4oM~2cNH=x3OEU~Tq!R6UX0kJQzk0H8 zJaHp?y|J@?Y;@LtUwY%dXLU06xPI|EKDA2UZ`Zs@?d$1V`U(8`XpQ)w{ZI=;L&%=P zp2H*0^o_2D_(~u~Lf%8(M&7Q*@#<{Lh$t{-Iwp~bjROJ~zxd}I*M{@kuWNE4i(H0W zwA|=E>%Ia5+HLcvrz@51N8)jk0c4q2!Z?&xsvDmKlli+6A(Rl5JThfjH|%pH9`YAy zI1*FK@v0Qp+K<{Xqst+U!O@-7orN9p!KHz2IVf=osUvCJcy_jH!8qMGic*f$1l;Tn zo>n`_$is0^f;FNE9J)0U#0MrfeC>LI+WS1vA?Kn^{B|5 zg)Hf#C$z>qM<4gA4_tq{G!uU_3tbBni>bNJS+zn}Snt67K73>?Wg?GEy68KWE%t(sSH z-U_CquM!X6rnssZFZ&~&u;7_kOvB7{GfbGQjw{Tb1)jUdhsg^}{TYVgx zCxs3QC#}-$IJ@nAmi)KCxiAzlOzGY#d%AKewyH&-!!=>xVK7j6KPaDySBV#hEoLSL zv%=Zvdy_+w8t9!h+kB3f41KPjzr4oX#7z};%--^Gy>(n1`k7dattPkAY&Q6}2zKlY zNoFT(m(tR7UfPqE@*3+_FV^E-^fpjxid!eEY^`|eyNv0Vsn=e2 zmJ;;r&S2M<7Pl7Vn>W2ae}YDU4n~UaRt#;B87P@KDmo7LUPG>Fa%&;rVtbp5m4CO| zH#qMfi#i^{s^ zT=SUR{ndMGdzenwqHW%Bf{n}W+K#6?)A{v2vxDp172_AlFY2yppYAumkASkxO5f^Br(^E7 zZ(G}gVhqt2yazl!&tDHm53Bl$?~3=QBC-~^UA;C|@#ejs2L~{8=t=2cJ;OexpN#sc z%hg^#@7`|>?F{Xftd39p*b42OH!q&7&h%`&6}%BQOuA2f_1**?`zNDq38uUxpYAGr zhs|y9F>6DRl242(V1+~Iu?Hf8g4)3Y z5%#{0V;uMJe-8Qi(J#cD*#Je!sC7Z_6Z;0()+Xmui^6Y-J!1g#e;<10oPGO!XMnaB z*Kh;^LMQ#}4=kbh_3HO^0>VOB-AP?Wn$yV6hR(p)&d`L;&Bp#WG!PKC8|Uvw8xto3 zLN^<0TSrbe9^!vMaQ=S&YnYyx@E;&fRy@S&GV+8%b`BfuWtV6Av-*Uxfbe@1J~{xLN!+C0oaTE$jCJ>Hqpd z&p`K${_oJ7EKL7^_SctxqWxoC|0Ku#*JPaX7H%fi8p0MfCbo{hS>t73Vr1n02c7@* z>AyMsH&pfiMrCARXZ?57fBW=rsDJUoDd%8e@>@)Q34@n`oBn@|{R^I({x3=Wo8NFuz<1~@L49LKAH%|<>zrO=^YvA-3FR`nBu@s z#j`xZu#m7Fa@Mmvb$QA>MbsENku)gr_zll$3#2cEM4jubm*Z!X69)%Hgn3<$ljau} zlNpW&<94QOEB)iz*(oWQz_QXmpuYi=^?;=Sq3DDB=gStKWDhwL6O$Uy*zho<;2yxC zy=v@kMu(rAQI4#<3P7Ud|8bktu@dW$^_L80;9Z<6y+ z#lQJA2T6PCewR?Mt2Nb_WtMf=s5QA~K--*U#o^uX5T6h)(JV1Gl23KJWlH<#V%u0b z=A3=R*ynVM;;M>w+L}OHrc-%XDXUTRzTl80X6LNoeAoKGhX{G2 z@=-k$xBsgi|Fp5VI%`RD@gzMd)@ThN`bzFxarl#(V^?Qw{IXi)C zd_(S8>SGGG+IbVVQGu?H#8Tn8#(NTH>+0!Xk!`wda&cEv?poRTaX#H+Q8A!I0Kj%z zvcIozYEEFBCA-+6eVD|mehWM2n4JEy>gzqfznH(!l`seAFp9bpt)iMut>u)vb~*W| z|8=Yo@y55jV!`Y@znR-+>9)kCtd{&e=d%It_h8Xv^MS^cbL)M{slxfy7P+%Z9d~d8 zV$e#W2Y?l?@N%)>ERFTP^`Q7%YrpcaO}9LQYif2%QEa6szfrG&){c{NidIPW*mH3m ztUkN)zI|Utw~be&J1A2{_L}v4%&VNIGMND7yf}_TXWezt1D4D6m6$q~^@vZW`hxyA zUeYu@GTgrv{cHX?Mx)MZQuD*;$26~}RrzA0L!x_HrdexZA>EwVdGkTu?Y%m2OA-P`uo-V=%wbdl+NvA zz`{>6o;LW!+OjFh?y8Tt}<9u!+tzqLn zr|>Zy{1|(#L9NI12lM`I_U_rHY-@~D@d1a87(5FIr``qt^))k| zDWzbH^k-9zwKEY4HJ&7gYF>0hsb`IZYk5?z*<^ofG{1UFS%s6hd-XkL6mMmhuor{c ze3c59io-VUrJ3+9s^-0R8@I7BlZqd(rPN9S5%8hh*%vRj38=I}r=Iw*bBi}w4$u3Z z0FCOxDCvzXK3fi0z0;?decjUrKzk&ry&{;q-TfY*9UTY14iJ@m7<02M)bvAjkGAgQ z#L;`4I+L1QZOtikaY2kp4*=L}L~N|!jmuD5!+(Ar9r3u~4yJ8VY5f?X-=uL}ip|bQ zt=@C`R5xCKnav{QTWWn6^k@K}$IzdT?Io5klEiZRR-3=Rl$hKr9FCEY7TPt@ceCy% z+o@mOl%8JEFrMDMbd1S~tx;5Hk7-1M&nFklDAIQy))d+{XDu`p{?hdJJ1mM?%c9IU zU7f4CUtMdRoEv__rO4ryd!PM@LFc~LAPwA9Sn73eyv;&pGKSlpRkr9+ahT(aO+oim=Tu>dB${*7EPQgw9URYb)Z@jfb5SM5NO0-cCrQJ^ zBq(bssYBcO;4p*DJ3La`GOO;llU9)pzXLSGo>J}>asZquB0xT8^9T4be-wZv`BX0pM`j)aSWBh$E{>xgq z!PtK!LPDGUDPaGAeoOvM>9l(u=M46Lh4cR+#*Ytz+XDy)Wcr(s|1X#iDX=$KM^Pw+ z6!9tt0)lMqCEsKJ6Q|UBNl)MKiSE4-zTB_!r~_fZ(CCXepS?YOE1WYP$&TqbfISlVvL7MV$9GfRxRPyEJMbT{(^25&$ z3IR?&mkbRfpMSnFFtZ@4;k3?VXDchSC1#I5{Q=Kjsda~W?WZLGW%-5tChj(@Zn z!PA9ow%+@4Yb@;?fkm_^Nf-uw z6p(MX*V-8P-*2~`Nb)UbL>fFe`y%b3M?3DQ>1m`u7VAJ&TFo4Zxgzt0I&eWjL3^ce z*`t|SctOd;zH`_6UaL!=kdYlF0fhZG|%oQ+bGTTLw$)x2u zr!P_nx##8z2^cYBdS(n$jw?Ibn^j+lxQ9n7){|A&3M`e`{!MWf^4= zfW=mm!EWMTfN*9o9U>^3_yI~y=38ZK#bz6wZcej!{7Hs@%N=32iT`7^fZ&TFo{eU+ zGHY71btD8^P>x}zywfokt|uZvPekoyjCKijeWhlzsM2Wao+V0i%nke%|CDY^u_xO+ z;aZ_NO>kh~_T=Qf_#rPYhpWi*DdVe@&K2Yz_WIP99DT8_(S0WvPnRV2Hk(LuOX(+M zU>_gG8{!KOhd_2TZ;63n9aJj}X>?%IRvOT>Fj8N9mb2M(Uxm1_ePzSR0ZfJ+e2e_r zmfa@SvMSQoJY_8K*f7HryZG;%kuL~Usq|f$o!S(Lqru&Cu)+OwXH7J1U9-(Lk#St`k=5eo0wec6){SFY-5i>a zw4?^hhgmy~T#!7Eu>d@wEZ~E;*m}*A_9b(sM zhlApW4CZHO^H3UF7xOPeL)7bp_E%Wb*?ql|-D-jqFhqDkZwzWG|`TP^u+50Qj&W$<+Z{D}Sd4aMi* zTS@R+RGwV2+V?v{0Lyp=qbcVzI(5`^`f5z&?sAKFcAW-oLm=lzJb}YdqPA?(7e~10 zdpFeWYY8e&!vXORUb#1~_bmdXz@&5AVJ)5!I@&es#ge459N%bNbB%JC#5qa1?Yw1G zLW&*{Ud9`x!d_a;yAN_eJof#G(0vv~ z&}^aLw$Sfe!PF)JT7R0+@@aPI=?xlH?$^vgk>VUM+Sl8B(nJ6@R)Ul=wQ3bG*S^>N zjS^J3cG}q!@i#)C1?)zFOTSMgR_xg`mejWHm#?dvztj^UVIY5pwpSIBOE`B{~&h>5OBzv z@gIRTYujR;TBE{D3iC5rHcGuPX$tvO>CPQ`c!;`DV&@PBPF)DEk6DWDjF`snx$1a> zWJl=``#&!a6ky6soCOLQwkio2ZW;~TT(0EDHCpj1PZQz`Z8geio$1acpy!h4)b2~Z z$0}(lm;j z&YP~N-p9}RG{+oQ|4u@ju$s%Z(b(}6u{8Q6*3Q>CzfMxftQ1p*XfQ;)*iEqGa(jzH zmvwfHn5AO>nnm*l^}AAvEx}cVUS`2+mlG~$bVxJD^qUCjPp?Jc`R-^$(sG#BSp$dC z(4Od96X%)|rC<%`!Xh1MS3iGlpJudR%l5R2=VH88Krp1vOa<-_Q11VsCOWfEc^?GE znH~KHpWiK%Gfl}w<;73H7-Asfpk$jb?cK*m0hTGD?})BXZLl{;s;5fj!)!I8HM^-y zVN+_1Pqkzd^w@2YC?x{HxEE34A9o|M<^T)Wip+o#ZCf?dF>O^9K%f)?CeTYGHI|a- zSzgK>I=p?LvIwT1*o!qY)q+dsXj-=+ME0h$IdL=@I2Dsk&p=?ZFWes|7DzuDyINQb zLYaP^F?e#H(1mMJnpBMU!!Y_8r#d4>VlL!uY(e5qhFnq*z*(pL7_fNH4Oo%o&^C35FwPCNIcrdm@M9qzVSA(LUWG5Mmh9;Tl1N!LgwwQm5ff+HZnceo z$F35RuWTMlpX2JVZqV(d6H*}`?%sb-lD`4oJI^}-n9JK1_rBPDK1jLpL2dGev(^!o zjy-I9GKwus~uTC0wcpO;1b%Y zl9espc&~^T0)}2x{{H4^@Dj#rxFwr6tjdVa24ih3>{w{QJ%)ud_g$|Fl+!WBrA$pNJwlB}26njw zo{=#w2`Qk~4xtZnZZU_~hR)|@nPHa4KT@lF8kJd(*~*&8sr{AJZY{Dt zmcjl7jIcshr{Q!Oc>y4mj=Bdx69!akIr>X!3PQqrduuPZ?m;?v?4e2Pc>;m9HGf6s zs0Vn;Phqpe@_h&Ld^{5wFD!?m&_%dUZyK;U*UT*l6sJ6wWOl*h7V+layfcTOG|BnK zLJ6IC!YU?}_TFT(OJ@9($UjQRS5Rn{e?5UGUupe~WkTvl)GF2MP_pUl`i3XrH%Cn2 z7?}6%*T(X1Z><|8Drw6KIzFhmob|paMFb>bR7ql9ZAw8QLscsgYT4)E*e35PTXd(A zs6JTTVDxr4l>q0?AvdLot0#&+w~0cceVye_OSs7e+#C>fD7r{CUkyJPl`#qlydyy2 z5XK*@j8CvfJz3RU#a#%TF@(_3BHyOa#i-ToKSaKcmXryq_su}ovV|mS={AvDN~#CdEm%^ za##r1*3Gfb(MBN?XI$oFv#TmA!LvPG98-NxQuIn)t>-$i(~&(++r1lT@~k!0R&1gh zveBjo!o60*U~jk!v&{@#;k(k6(LSm+jX!rxWom?+93E(I2u9)ls$@LBnfHeeZ}oFk07u60I3X#QQGD1uZ^*nO73y zgbAn!O35Ja6hDkoq0wPEi1#0vQsldfUG%%BD_YkLaJn;bf<#`OlNqzUcb& zncz>8rus79A#&6*CB?hG1YolWTHGHavSWD*NK&qZ#Cw`suLm^2mzAGpJgc1CaPl5` zGEOwHD;m{$?I|kL(PQue=x)WrRV(Ei6(uhH+D=OnRZ{6oMmVhpLhV&Mn~KjE`ow&#On3CaKAe#8Tm}PGweI^%o@zf? z-j|iwCi5|pZMDKs^G!+JN3_~e)SnKd;nliF6#y-kuF$B3!Q9*AiM9;Gl>t{3jnj0k z@?9LGWK5HT<^i2Z&VrjIe8#R;`4Ae0%hTlFb@6p-gbcawubnPKW>kE_FOEub-)ZP{ z5;=}>E{J7q(HovyD730`?jtzD>cek9nxeU1O1?19nkJ8)a z*@-K!uwJhfJpS@<{N%O{G1dJ-|JbRr|A_aIDL%<+y&OLkp6jZT`$m-~Q=jHUL$rv; zTkUk0d|CN%jN*qNB;r5uZNJlJj^sR@M<&Ak!$(E$ob!I+dch6@_FX6Ry4ba><9)bq zaED>4{C4R6v}_k=la|eWbuhZ$Gi-SCb#$6!?dKBR3#*Vuw#<0eRnx4+^f;y`&(CON z=#@I@n`!Alb@tVma*gWHxa!9<%veDOjnP`e7d6rB_q(-hMTKcKf-*b4`FA7Z8}dIK z;q8zp>>-jk2to{HILr`MpEQdK0&hbKG#G~w&IS|cH~ad9#LC|Sf}?UCr3iMD8Tu7+ zQvibE7BI*PfE*24Wb)|kSsfvJIyz`-bQ(XV2TT`ypqCDBa!J(qu~jemJV6ywyD`b4 zT{OV#{p-%dE53*;V4WZ<1jgyja*;TrRk%KMF9KgOxS38YlbpB5M#iedDw!5M-Q@yO z5C;fD)$pKhq6P;gP`+HmiWFtBj2EdM#7s`O%u4SCqGNh`mO@IcuR*Irm?5F4(4JH> zNjRsQKzN8$n&6!;u0`UQ*=}W7rc`y#lnU`$iotG>)tS!B3N4{xuvD!YWH8{{?P09> z+&hCJb@+?3UElmv@J@L)dilg&ArFtI_*$V`q#&BB7aIipGb$TPOyFuRrMFgrG;t2I zCX02&B!({&Dp!<9nd4`SrQ6M5^bt4uXpDDalt_6KaXS0xLHIaWMdl;#Q0Mhmz^o-d z%!ym(dtt;VVq-*%q3{Q({VV9u!AIZl@}?Co?O3=3<3r+Vs|&**EgwJAYD%ZVsjVc> z=x~bj!&=!wi|}hH5d%zomxdo?o2$R}B^8NWTH^P4HOWqKf+(677imca9MkPYqN$wU zEj4gnyVQwdejLsT1P*#Mx|~Ntz2txE`9D}dz#(dkYkI^v%u*Yg6QskFWqN-Q(eH4) zXf(ZZ>*BNGW=G&h!*d}RET%kKQ0hpa9mUkq-KN6|h2t!EuYDrVSD}WHWqR(ur5Y{Q zI}-SK6!V#DQTA;6EBTye&F7O^-&qLL9z~e`B5d#=fx~*GvS$HNNn0!wU&K9I_7w~R zO-=r0b@%F4?MpCHCZ3^+k1lpjh1w&*+J!tLyN&1=MB-10NvhN|1_gL#cl5_Vcp2i% zUl=M52N*+%rfeExc)xw?()K`KNS|gqQz(--pD9%?v^;45vB`EaUJ@t(n99o!Gi?>@ z?=u8{%Y0QrA}7ItPDYW}2%4$d5!9x#RHF}=`pFxD)qR-+am?3wnPMPNLK;Jd`>P%~ znW9{q5&ZLnMbz8^D~tqQGfusdY{Hjm&QIz43o0#_(=gB~#>ZLgZHdI1fsBV0#N;5h zHy+M+sLcvQp=cKwndiO$(VKJ#ld`ol)w=?E=m_@oAW?$>&sSz#9-;fyU54|*nH27l zXc*}r7MsYAhK;M8QhVkS=!~~_$P7M$;E^ko<>2)1R`uAX>l~2z5Y(+1b^eoHZxIta zHus!cwLWsYnW1_)GD0NwMQjbps@3Zb0*ww>e=v15=n)Cpr3A@@JpPG7WA5waQ_SZB zqXvU^Jf9C>C^(p+$R$VV89*g>y_#1b18i|hYjb=;scJLBJEjMt*H<>ADK_rB2i2S5 zO4o;?o=J9GSq6WE&8b(==wEXX$x)Ym^Fpq>0WL!{Bxnpbw0^ypkpi6vh`^-fTTyh) zy|!b0&yM7^cT1#YhS?QP{lJgX^d#KIrr3;o3ERmtBd}_Q3(_S(!N_~h&WorS%j&VK zXTc>TI0=)9!unV?U<6Dr@XRzA{J_Yqo=RPnBzXBWzxzz}WP8IuU$GHgDIz^8+lcy$ zna`1vLM`X_%siTeCi-WNRx8?GT*Mo*QAM;8ULT|fvX-k(wbpk2&E>;md0+mXMh*JaJqqb;CS2F#TQ< z_wytzg$(9KN1761fpcO`oWF0@6xZyGY1pGDzdPVU%HoT$1fzt{;OjNoh`Tp9Yqoy7 zbGK$Uy?B9usu1Ehtoc5So)D_;FUISJtYR_eMpB@R#Ai`@wTEF2R&x@(ASAYGS1H^) z+0yEa!ffr@y=vcW4@>ihWbIo#SQW>QLVwad19^Li1S+Bcn44ko28g&F9MLUFh`c@b z3u7>Xy)VqE#vwuwwGob3cQwL2%C;AXtr=31YL%PVpEzFh8)U8m9_^Dp7} z_sRy{EY5CA6w>mzQP1L}dW>~)(fX%fXTA*#ix@nf=w0=<%Nc3RRvyi9>#A(kj5S&= zC3$&8Xc#hAj>^NqiBzUJ>rYLJs!s^C9OfpEfX6}8M1>7TxS-*CFsMJJ#qwi><=c)` zEw>$MIe8tSC6s7EmO8kg+qi60K5DUd+AyA|&?TBlWRJlOJSP!t=H(-Q!S-Kep(f^9 zi^AyA3N>f|o87L-Rc_T39g&8Buy{~iMe1XU}ipB>5ubG{*C?zipn%8SbInaM<0WVRB>Y9i#J$in6&UHWZ zEV;wUn6%GR9tHAx2AqnEM-Ao45D3an#`hP+5D`ycWZktiaK&UE7ntPwm`^uxb>S`p zS!kGcquU0N{(TbK&o_i08B{%KIvgwBL2+6j6Hww0lQIoQz^S{ICBSPrlxRr}jwU_# z%&G%kV=VtQ2epmwiGm-v;w&bu!Fdi^I{S&?K#n(jAJR_cg$`z7#Kf90Br(weJlyO( zFgdsjbX5l?x|;(5nt(f63KCs^G!2+SLD1(mqn2LLC-F2TxLsRTD-TteY0B7gZJ+n9 ztGt!-@qwri*4W6RqiReA?q{@b1Om;0;! zX1=_0Sj2pH9iwRS^Yjtf-e`i(5FgX4lgSSPgEPqL9GVII`cWMK?I=?q*|z#^L>jy= z$at!mhtO00t85u*5M3DlsD2#WRcicL1a=2W!+e$M;eK0EFI%EH`doaqPsk%=lZe{@ zI9MyALcS@j_2;#Y7q1Dhaf;NWn^I-2k-Ws}fFzkO))R+6$&7;-&8qHr>~1>X8=tbi z4CkpH437tIk%NdhCRIUJPx_@-$OR%_2zD+rq~xS!`%j8ET~YNsN#{FE*1$8eJmW&i zkispMSHJ8$jrEf9jxA$R>N`7|_DRUe!mU`Gt-2?fp3 z#67B(t^1nJ?wFli4UBMr@8=WDhYWvTb^T=b0|8aPxz~N44nDl$#rhU20paEl46N+Z zOJEEBC=tai!sy^&g7=^;g=|tIGNkE0HkTz6u#xKk83vAt4eIGCCXuE@1}g6HZ1~ih z>1J|9Jm1yYS(g87)10da-T!DPFr+KqcJqq}HWx(5#}u=FX-Uq8^@7A&TvB3KM#VCR zh%!sYMR0QS#buT|BTOpz4MONRpMW;>7VUVs)`E$S+(Ze#c2=p}Dd?m`i+Wzya3d@O z74?=@7ppot<7XFhJmt%diE%OMjCBPS=Iu#-N|zf>sRFnIYliRldGp!P8r-kl3P|b= zM{>rqGn?67`8g?fwC@0L>y;+C-`%)%SeO-?Z72|PrWY9b@$!N;;CjHW>l>OYqi8Wo z96{dV*~YK_)7uYplI#>eZYbbex^axPC1a-IlI361fhX1;<+k4#=4 zNUE!UY{@Mfh;NxGvQUMQpCrEj7pUZ97Uh|W9t4bW95AXg9CH+>p2-PfD^W+1(l8Yi zR2&!KXp2AGPx+KlIG2V~7lQK@FkD_2^sY?3J{#IoDF!qo2JT{dg7I$;Iybqg>WrD3 z9+=ly2<%L|wa)#biR9e|@?-{dunC8}s8xCAjWO12AktjXBE+FZoOm1GFrvFyk@s;L zhhm6yDAJrj8Z~DR_70PGPA`jh4Gq&^0LIg7K$BQZAkFvLQPwa%`^mrH#K{=Q!Ul|E zM)!<-bn*xol7W+AEM>mAtV4`&2qvHTiOYbVApIahbQu7wZ(Ft&R1_~vWKPFM4fh?V ze_AFE`+uk3ITT5c$r53zp}=(EctPDb(ZX|V%9MZA#6lJ#`G%=pg#FTS1#LmTz2}~D zy0tXZVrpWsxK}0{{$YR+brQL@ood<;^g6R!um+pChO=o-kxUOL2#{4do$tRoY$H4n zW(VQq4mFjrD!=IfCT)FFw&*iqdSUN@E90avN6$fep=w`k${tp!0`^Nw}BN zazMunYGHRPT>kqqi{B?Iu!q4E8wVajY-TFmgPk@RMIaFg2M3?b1#&uKaCk)pje+az z;)ZVAxU+Flhy_7s#T}JOd0Es{7nAM)X(4p*-0@-_P$Z{Z2rpSy_j*Zj-rEjund3@R ze**#g#0-PU(ZF@&4$t>j7X!QFR!G=ivXT18yJ2BkYM3=c!Y`wZ$Nu>&y<%as8q7S~k)<+p>lbp?ffXAF62>wVNW z=X>};L&6w_Y#Q{Q7*jsumw0<#Vq90AM+UM89KZB1rG`*xET*tML)unCdQc_N&d|fn zSN!INPVf~C)-%NWab%S}gHx;HO^HMawkk>@ASqww;+)w9#9VdTM0iC~=~Z&K*6(t9oc@_M zgmK737Kd7JO+E1M`xRTR!8#ynoErP~`9(#^!2Kgk{26HqH!dakAfSlCBU9`@#w9Yi2!gj_97>dmS*a2zNhb(dh|q%( zvU6k_1?9U9gp_HN6g7)KBk*c>=tW7mZ$NMx-YQf(he{MDX__0rWpVO|iIJR%(63;H z7qD3r@>gYYuoMBVVaoeBU%t<>!J8TzmjY$oiKVg#95=-)Bosuh*sNfUjJx#6L8MA= z)I~B|1!7W^RNyMx~*4wkyLOm2Y_F-u0(KhKFb&XI>tvC@`$8e`SrCM$IjEIb-x`I`JpbGFK zl|)rbTl9F!_BJr<$<81l8!0~wmBS9Pics7E)#b*KQ?=}Ty;?=~|@0%U)m=8N~06)x&Zc3*2OmIUU_=MnJC?aF>sxWSpL z0zb;~_=$0`jWa2oRJ*6O`#R`p&>ql@E)1$N@S6R>3w0C8n*&LKTf_8j^N1T#pcP!o z(CfL|2~d;?j(OJayQJq4GSV21U^9g_bd297RXa!4W&DUgC0&bDOovo)s{^A z88#T{5x$6ysK-qo+Nd2y(G5MLrA{lBv1d+M^5Xvk1k8EO;jZfP%+6x>zO`rdZ?jY> zKQKTztZq6`0Trj-rQNFUIK*}k&K)aB?i)8O2>H^GK2Ek5`HM@#zY2qN(5%P>ftLL_N|D$6kp7jfRNc4yy3ufmeB06*q7<3bt_BiJro_M1V_ zky;rOx!3mA(GMB_aK>#$c}gcn`D`|N`keBGNiP*mF5SS)?&d>M7>)+5Ex$JJ_9=M= zNOLddqb1IDu&j26qx^j~rU&dp1|*1%=#4FNx6O_Qm;+X7($K+#%;@t2G(-x(p9;fb z@0eZ$rHC_)v(L5&+cf!yJ}p0g=(lDN_14Erx@AYYcP*$RLRDKM4o{!`$!6_$wU?9b zonUbI><<~Rj{C~yj_y)U)>}lBt**CVKPBh!x0e(>#O~7>+L2SMMo-$CCF0YG;nRgj z)A-weUSGE^Nv`Dhia+(LFE3A1PwVgG9J_e!sx@A_(R$iUA2qh^i1cl%s%+4@M%$A1 zNdB}~TW(+k{dKn?ZO}hKr1Ur=ZQ-?5gW{L}LHNJ-#xJ+u4PI^65v>q^f8hPAh;d5z zyKC+A$8g!-@1?&gA8c7bkTtg4Mpb@)Z^6IIq+6VSwVVCUu~Ge*;Yjk|lyIg}to~3| z{Vl;3gufU@aH|0PL4Ckv_Pfx(DGf0lVE=u>;IExn74Vzks{b#Vzfsr!Yod9=D54G= zA=%m8jVGrk7b0v9Lu_ba)8g?s#lzc8Hb`+N8=>DlfK?Bj6b;EK0hjnS16~gykB$ zeqD9Gt+!bopUNtp`iVA5HjGie|8}Ns;xNf$jcQP#m;RoSR$(TZ9=6#1Gs`P&#Ek5C zq}GVVG|Q^H<9gOacRnm*f5J94u`vgut4$mqw!D88L2e~4N#m6Iq_s+FDYv@vrENUT zjOTIwI$>!)>sb{CJo_+WzuPu{3%e!ZKXv$~1Lk#vsBd@4;yb~c`sK!Clmv#PoB}{F zOqVP*>K>n{dr(W=seEx*$z%r_!8gxib9gV)v;XDleu9f*f?p+}?Pl?#`B1)H$9R4T z1!kWzYOlKy=cZ}S?fQ1_dg(1;d;~+!DpGVw{1MKU0~px~Z&uB&qA`N4+j)frFErUB z@v%>8^_sQI;f#7BW9)NlrO|<^tmA~s(DYox&i$E)(vs)-_;cw-WsN8MyQTF$H%3R} zvu29BRlPHq=2T$?(oJjXqq_*HvgJ94T~avJzRn}TXyO#7W!T}Z$fC}bx0djw^5?!c zulwmRv8M7A_hbD%J%`5prrK(L-hE?|>Tvg-8Xc_H|HxT=D1dB$svi(E$+p9n9%Ef0 zLdjPP`1`{n6!VwHC|=z{sj6>&RYXA%r-udh>!r}j#eJLSO5hjOq&lM`czVU6*P6|$ z04!}142EMkc3Zl4ogMQ{pcv&Nf8S;l1gHtzTdE+T62jxqn_HBQicgLFq<=re*oux} zEZn}VBO;yq852jkF3+SCACr;*L-5I;K&b}Y>$exaqHEQOphZ?SL{7}K2H|TdCZ1YH zp~5Y{@;$brxhJ+gjyUTGqhNdwY(QI9G*Yt>>4^SN@<`R4t>E6+!o`%cN>@g-X(B3T zYiGWQah{B$mhKRIg!Zz5gpwojWjZt`j)+1fV%4Z=-BTv$P&1XoMk6GgBl-$fZ8}E+ zR+&ai5PZ(*2Nf3&ni|TeT04s0U|6nos{<6ml@hNTq8A`plFEf61_=XFOx{A73MJ6k zGQd|~e=?<@c`ard>50=uTz29|HeaL~2Th5MOE3zlc?U!a@aTMj@YliuB8rfcYI*$0 zGi7#f5Cv{_C@kimXIDZ%k#Z|^7}pLkd;I_EKI2(7KLbys2-*=C5|$Wc3%V%hx8w>59b*G3 z{9Pl3FC-vXu4mMLgeG=3Jc(tTo72ztRD0RSL5eUmp5vhtSB=W2Nk;*mCrh3aIDZf+ zRU{q%ej(_f2y^BF`4%9R<3yP+yI_WYuTH=I5cFFl)x>jXfdDkY3S!@PZT2H9BcahR zgYXZnG#s&MagyS1>jH@FwCUaJ0USG1k9u9=?QYCzLc9MJ>u{O7m|sx)=@D&dDI!4@v=a-Zy2?nqT+FD z;_1pBKePvel%4~*`y-CPZp9ty0C`b~nY70JYgiV1ST^!EnKlRHYb@RpoqCu?Nt98W ziPyv=G;yhTUa9-x&z_{rvQQ zt+*26U(TU1CXswbE&72t3(`yc?wuWijqdb!G+h&w)&1Q9bP=HVmB8JJi%c#n2v$O) z;3(K(e=HaCT_8I)HneWRYPV@^HFtvccLSLFa~!pvlQODcCldb39nKK_Y9yDYa*xs! zeE;+{?A19nVt*EDKq2g*;m8)-%yq7Sxkfb&!Wq|(ng`dsv|A8C&GjG*{Ep-^j#{&G z2QMB2x{KpSiXDUxzeEM1l&5`9bHz@$&gmH%2(&%>osp<}%+FCRcKmr5IVY>oIZsx@ zzFs(*w;PgQzGj|a3c|A81=?~LmXln*&mcO%UXk#S{WFCkwBhvbmF=g_%QZ&p4iR2v zm|<+*m^yaQ{ZT62#H-y1yk3vaP8Lhboe`Mzqh2v?AE-m#%y1;d@3|2hA6KwXZ~d%P8B-)por=<15K!rked|6Sv3xiiEUugMf5QK)R8TmhO&G8!AY5N=wHG$&s5#4`DP?o8%bHh*5*bU!LRp zJm2HE{)G2^z3=P1?(=mry`fM|R8q}%@UoDMeh`^3Xt6$(O~`%i@cSJbOZ43siu<)6 z9&}%wmC1QNU{a9^xM_G87iN`EvckRP=P4*N2jwL_FpVn=GYNkiJWqY6%xkb4B=q;F z;9(K9_cA;vLy zO>VFAw5hMRh~!pQB|E5<*Hq2P>F<;sZKWaCs^s#M^FtqrzzO%m0q2&I7G;Ec-%d6v zw&vSSJ`4WtK=s9?oP&;JWKMC?=YazbxZ1Q%Pv7@k3mG29Hq&x4*9gtudD4uA8rvW9 zLS2Ta!#)$}jBOTvE2);erGH8h(c%_|c_16L-9Pms@a##=d>frHxv(zWQ2Gh|`ICi_ zt3=|D;GV}onuKtB5zdd>k-S@TO_b#@IeL6TK{#_#K!u!0@KR>zb3o|n^RYJCzq1RU zUrL6O4%Fl&7BJ9qqwPMHSE?a(;{n|-C~22s6I2A(&NwIy3N@_kyEw(Jxi)ojBW@Ee z8Sh2ikY(J>|I@H{e;-^!Ef96k*DV+?pZlHUrKHcBL>9idoHj_g)I8RfdD?9@a za^ua2rd9=ar{_#k@!C&lf6S1C_sZ_`ql+CKuI`NxR!ueL)kF_!{tfgHC^9Zu!}(WA z2Di;GWHiygZHLKUhX%W~JBldmvqlaTpS&#{DPJgq@dZ5o*5J2gi&md86ACLE2wd+T3O9~p|z1) z?vS`!nODEfOXB77*QZMHqeo3H&>z{hg9RyURNA3BSi<25v9&SnwB>t|sBA6zr8dps zQB?2(*QoZ3Cb_K&9N4^JZaiI6iw+JFSI7Vf`*#1xB}Out*5e$mTP;+ncjswr@Y|9+ zo;QiU4z&tw?+U4q=oJXg>LNI%5$p5EpnVTvGEp$F@`vc3o)VBQV|6~`#eO^Ui$9Xg z!)nQaT}E8G1YnOgefhp!Q}2OztZq=)_pcHZAj6H}D~*3HLUjq={R$k7D;dq4U((RJ zD(qEcGi$d;eQetsMI&@p@RE6g95bV{-ICxvR1TN$lP!dxGi&(5Tm|v6BOU38hC0^f zdIulp5iUob3w3`%Qjzq2FCF*44C>t#Oc#WE$W^JAb!l^`dk2ncvQMprq2s1Cs|V91n}A;t zg+C5;QVQG^esGzAMy#D4)?{A_VFSn=1u7u%Tefr=wGAZVbaz`Rjz+&{-X#F2)aI3E z$IumA*`g0h3?g&0v6cSxTd>qG`*O&5YEOJ7!N}N6HhBJr^%se*poYc-?R$N&_n5Ew zmx`#7M?#MMD&ZY3PZ?wNq-cg4Rw2fW20>a6K+NRA_F~?8Q4~U}9?@VX?H9w?fk2?| z;Wj6?9?VQxwj_RR7^`CI=3p+#f7z0819+8~*U3gdZ^FXQu4Py57(G;yY9;H<#-e8~ z)24h8fZti`-&l7`Dey7e{QxzXu4uTIPMJ$ab8VO3$YH!`fAmf(`oNez&DduCq`?NU zyJ53BD99yUsA*}zCvorpvH+OPl$FZ6<`Yj}pveQhBBFJ~2Q>S@B`E$&V7RPdsQ5M2 zXHMlfiY79DY5PT=0xi2a`XmRXzTTlfu=SAMs6wiTO7a_yag-v;)z^AynY2iCXQZxC zVF%JS>AGrtHrG~JLZn}ZmGQ;aO^2#CnMu^24wuApyWdZ|O_q-ZX7C7O=PYnDIyM_y zgDV_}){LRnj;+XfD|0w$clsnCN$I`Oqoe<2gE~)omVArL)kzJzMzCakkePW%>@MSS zKkS4FtFCuj|^bSlqHTBUC@)I)p_?qk|jIcc|YL>WLW6o;iCy zYz{K*vmesv9gMCO8QPa!^{WX^dl4lrpnuvWb4e}oU7>bvkF|D`WS|n~N$qYZMslSq zC`|?O#2H;RE{z}YIG;s5%iW~=9N|qO)=uQR`={@hP(3#Q<1SH+fD&-E=YOL%JWQC~ zY>wWsMxX9%hG$-X(XOpGDW@m8-UJ^vR=eJCln7ija#>lz-XKlx_+E0Fo2^~PP(!15-pzV9Z)VkRM^z&T%Tc@ef;#M{GKNQMY z!^RAya43@>{SQxE0B=0A_!UEMR70RkSt7G91(Cwzr93*+gj|x# z(YJ$(>ViGEmf@wa+^J@_J!Bj%`w=3KjbC-Qx328 zZ>-mpVq>AICW`utv68qboc~|yxaFQDjS76+=K9EV##OTkURGc)gl6MSX@YkOLzuGP zt7RzMqS(*>RoH~1@Y_YLcbt++*Hure$G(Pbzj_tpU`~0kq>ZfRgi~-wa{qf=pdBBu z{V`vIFaM4DQrH2*-Hpyztti2ELmO>3J^!NKXWnP2M^AjI5ox=DM~G$7{yxe}xo0fA zH+g{#okvS~4L(U`*Z5(kSTUU>a%V=Q9rTm<>-}GOFP2p#CH*$lDLes2ir<%aR#}8_ zny#CC|6M z-rMWkd9u`r#~5d_%4pS6hY1!j8`dy#o01>)YaF`^A0NjM$6ZvQ1j(7#_UbHOuy&b_pFLA8-($GP`% zkMwN?BS^ls|EDvYckE6E?MimkzCoi86YGNgBL=CZ^16fqf0opRXEcmoML2s?QoqHH zOsq(RaFFXcB3Dl4RsR7|9BKEie9zWt@+2v%#F7CG?vw>Dm>b`L-tFS!L;g{-UJ(Cepx1Szs+)<729T-j%pV zA53x3i)Hmos@~6OngnK6l|3bP9c;fQv8`d9VvAlPK=h|U!Ib@zQ>OBg81jNW_b^I{T8W zd+1>YM&rIcq$PV3fGkW>uv;fG*NRp#FrXOIH$x7xR|c~)Nsg^ga%I=`DYK^9{X!ND z#E3i}8Y&Oag?H{|OL(9EceW=T?Yly~MJl?_v`h?=X$ulnC_I1i0sy)LPhg6?S0R{c zIB(SJ>93=wJ?0yI1}+xs%m4E^WE(p018}yI9b%dmar8SGr*F(?&x8=$TWq1bB4t!| zQ+VwC<}9y+oG!_|)UZyI=rVml8PsA5EQXv)_#X)iC|elWvxmon@J_kh;~d&flgE-D z&)o82;*~VlC2gp*k#{frDB37Mq!nX%Wev}iLeA`Y0bG_<`$aFzHrMcNkI&C?Q{G+^ zHz`+Te$F5%uj+6Bzkcb@GubH9ar@-H0{>H`kCIP9cjzc8*kQtYKkmzKxU3~ixXzq@ z3PBGDnd%4IOqnm?uc@x3_WjepKPYs|kd;o@Kc0F>#t9I754e2THz~3*jct0E#0GG_ z6*N=k8JqBBz5GS=E>Ajvi*_p2+Ejs0mITS&t|{r}l(*10OpH}!vMXMUPyLzw0yEx< zzgOw|{!wX}{gCED+^F(MnA!lnZL{WE#^|EEOH>AOk~*QJ;sAM za_-39atqqD%_fEMV{?wG9sUeHjpNte4}CH9<&OF3-m6H%<4;#;`4(Xu_7(hRc!76z zRdi`Xx;)-ZeU&{=jY8`Fg_l`d1m-%=3Bd z^X8iLGmR42&O|1Z4j#?i*Pm8%qJ{RWR{q~k#an?pYqf1}nYNNXAOVdV=&5${?&}E{ zqrCj*?TtY+noLcIQ|NN7C-5|j-^nb^^6l^MsrqGE)FusL5V3~E zhm~Y?-+#x5ikpFmS2xN^x2{4rT)hN@$*%(T4TBh@pk@5A3Gk*<6ccQd#Bq3=|8UY4 zSOvJHTUvM#?m-+WH%XMXDKMB?W&7jrB)`PT#4(qecA0tNzyf>9+kT8*=a(Z~m6brL z1=eDCa>HxTb(!m#7>N+|nm7CPLzlU#s0~+fYb4C#8*Yzlx>E0+e+NiiuoyQ=DbWBT z;xPa{afbCsG`a{^8wwz5^PR^_YufWt!Yn(eS&xsUbCM2X|WMhE0i$%Uz{ zOzDmi2cm_N7)#~r(Wl`ePE#J))mf0@#0RrT`C2LKKv$epi!;bUfsJ;y{_Bt6?q}YT z7VdpIMQYdQE}-~tP50!^D6SjURmyVxt;IRw84`Ms-Jb;E`LVv#@jsO``+{`ipUW~i zg^xdr{q{_0)Zogr!v!QGe+|5Dd*-<2yymX%7*MN_+W}+|n0jE6rDMAu{h7zg!@VFa z{`l|5HKM7cFAiYgUn<;OE#Q+DzXTUmci80i4nZ6lrFP_1U$;- zLuRgOT5R)Dks}~JWKS;d+p$n2Y2d>(=#}jZb^VvsrjthX9wO-8wUxpsVn!aeq|9KR z^dm=97jjn8ma~x*k+!4P8Q@+c`>gJZmcH(+MN7}<%iFWwpWEIicfkhOkx#j-EA$Ry z@jnR`zdycuG(x4!@aGFa#MSyOoO67K0Q>XCTjH!RSsp<1O=zI#4NG{qbMpkgwi!Qx z(I`joonTJ@yV4*vA{E0uyYVj2`0A{HlU{unt$1p^rpdfX^D(LJRr$iUlq@^d!AXtM zn%on(N7DC?#vG9mUst}?Q?V>Y>vKtBD@eKQ2Md+>Q!fs$zPd2+Ty*^?8(29Ozlplo zIkUOVRH`(qkb>pm=!CgH%0mlr@EZXV>rZDQu;*meK=YR$J+`s>Wo^=1zQ z!LW$X)6a#xbR*!)B`#6aVOP+e70KJ==M!4Zg#CDtFS-Ls`lsD6p60L z8(pH;kHixmgayO)l=G$h50}VBDv`tGA|!Dz+DNIEUq6lw?%u_Y+?^f0Ar^%gtDu44 zh*6K`WtGyEQ%3)zjV`T2J!tVswiIWwsp};>+596%p?{VR)v-4VcJU6e_zB{Zey6sJ z$(!i9-)wHnhtk+7K*V%)q`uEf{b!rIDSIE9taA~7R-m-eb?e=ghT&~maKCf?K*jV0 z&^Jtx#l5|9@Sq@J#OuM{=fL+5_eLFwr*f8kI4#=}z~VBY4>*t(kxGEDsGtc3uk*MH zz0_+!BS;qY5_f-lwmzz;9`-p2aPzWT%Kz=Lvj6ML3j6Ii>U9GDl;8{HA`keSm+KU5 z^s=umh&h7iHQ?k}@PKRP?m&ZDl)%g22Zx)VLJoUttd4juP8QoAOT4j`P}qRi{h4Y2 zjgrT|Tp(+qg?);{%02We`y0ORuNyZoo3h2rWhC?810!wa4|_R*2T>bd`h|#YP7%R< z6@v1qH(z1_^yKQ*_rUkpt-*ItVIdOAprfZAuy*$9rBjaLH7xM{a;Vg6x8R`%|4Yd` z_^0G)AFBmFic{qK=EeuVJWkGHk1)+eZQD0GIz%VHCoMm0cG|@;>cs91CfHjxE~UH_ zDEQ7E;a@<8o6*mz(DnY_9VJn$FIvaxmeO|q5dqSnw|~a3rWuI- zqv$Yl!{xoQB`0(MC6p)d37w`nJ^|oqJsQm+;z`neYBV>fkT-uX%*mr{U_{Vr9HBs*O{r!t&evRT)#jF_C2 z5?UPptuMQsnHZ}>sApKy8Vr>1RT|gV`z6K4B(_SC^Y20?gXCBK6AGL*w?$G-{@bw+ z%sl5@)6aOiqDpBca}_T^k;R@DL;dbn7mFFSxvYouRZVgBGr@04w@Vp5_m`dUc?Uuo z0LT&B^2fH!+Ll&RYl5-V)#}pzeXwtuDgGCwjY6&#W0M26X7OUk`C!Ch_)B+7JHEw` zo6)5Hq%<%EK=b@Fm?M@ujU&#uPi_LK0 zcg-OY-3 z$u2`%+n>aJ%T1ILChrd+lY6DzH-hqt%`S=Jp5G?xV)?bU@p0tY0UVd}CrlrW@kwIp z1$MgyPSHymF;O>E{o}-Fdl&|wa@yX}FCRy3-A-PyOnlfVUC0briEz^RJ;+y7)@O2L zbFw2CL!$w08_YJJyj(ks>Wh9fFey{j9GKTo|0mW$xo`wjVi)_TNx?5<)nXw(PJe*? z$N~Ma`bx~34eKngNS0PxT z=Ffv5PebiO{KOgK$|!>{@2Fi={+4)VYot7F2oD?674{V?q@*Tw*To<~q9ePU+-nqY z%|N9M&!?Pc&A|7!lh1TuLcODZm-K9z%J&?LpO%chIhsFS?mH13(C_=E2ehF_LOZh|0+}6T7#*uJQLm%~V&ZQK`4T}Z7W_!9Y4<;?!* z($-zA{_DBliG+~#?tLL_=RrSf?a*x}nmX&ZJ=nMx7$a zV?qipeh1FZ>-XpKze44`Hse%CmM&aM@yET0dyG%J@h6m`62*%{LyS=N9|m zeA>TJ2*c`ETtCVB6%ga`^oo`~=^~Vjv{1^$v!w4t<^t~+mm>E<&L(n3+*)b|=5)ry zS-DLoD?oZQj7%Mxz#n=23J1(CkzmQrUR2P3%6cG+ z>${IWkB1ys|A z-265=Ni~Q`wEWUmDZ3Y(|yZY&+k|K%BJEny)9O)!S{k1K|&W>4RiJ| z)7PuS4M9b3%U^bbN!L)reEA1~ng#7u?KL!$W(C-z><*rwRFMkPl|RAG7V&CKmHGYi zsFpAUg9T&C(Q&ZqM4k&-#YJ_BY6?$+{WNvGDt=K~J)tRNNS17gHRzPeXyTDY$IZ(9 zR+q8+L7PXMrMhvs>kDUEOTlZ`iT)((n~eAR7aL43!%oXWkNS;q7-6)6SI8W!ey=YkSM#nX( zfefuzO7BK?p5=*-C!XS*vj$7odU`d=b%&g>tnk#@|Nup2=GlB8B>Qc3M;L;+)zFYEDU>fAoIs; zWZD?t`$4kQ)55T~m||_Ia5oIf5a4M^nSD5_;`4p1+lN3TYO#1Ec^$%S79j3xk*#>y zs;PCUY|!ao-t(8tLb?XzMc8`-t7xKM*daxSb$8ZPS=zefhl}=$hDRJo#6QN9?lYIJ zj{_TS2aNocXAcrwL;SL`nPk{lE4E#6Z}_uC)x;d@1v1pv{RYQ;_LIRT>9rhBk*)&& zKyS(A{ALJQWEczO8fi4lsVAcsVf{{$bT6x4L>ZyPAee;-=FdcL)}~?hyVW08g|Tju z)5dntUc&F~;_ueI{}8a6lU{SNQ9R=5y9X9?N}rsB{=JbjX`OKqa7>?jXtI#y%K4_D zmTq>qXL4?ME$L!sxn>F^tW^8b+Jy22b-j^8nT1)cfD7~d^kY8Ygu2hwJ;Bbdj9f8@ z{hDbI<~Rm-lbdu2SFu@BvTCiIt??dXkZm%hDd)V{`Dgm76BxL{LDMPelGbI-9jB(w0Y*Wxg8Chr{?O%4w5Q0Er48JJN6G*FPhI=o zpRV{T$QJTtyn6pL3)?emfUjE(g@DnLsHwV@>&;5eywCA*7-G}$1si-oQa;=15t(4J z9VrI~qS_hll46=FQYd&G(MclfW;YoXF4GWXA(9(#{_E|uSc{-cd~d$PVxzNugQW(| z8|NxNw-54T5KCo&u5D6hA7gJ5z`8s42QDa+vGb)AW$@ug3ZevJ8OgjK%l;cZ42n!F zK7)=a7Ot3)HFuBa&fxkbRC~*8AH4{6XZ3hUsRKX#>1eWQet!G1$U}ZnOs!mh<6XBu zMS&b2PiN`6o$UDXvs}a}?Z4|LH*Q;`P<1%gQPtcd-?fokUzCS~)275pB2O{bt}q~t z^T`9*OYXEpz{MelESEsTrEYA*A7v98n`w5>q9yOa_rl!a+z(9CacU*i&r?f&jOW0c$72$ z3vz{6%pB)0UEzzmBci=h|I=TYd#yxx{@Fc@wx2vPVs)~oH>mDc+4|*Gry5}ZGn|HB zVhJaPao5k)aCaBL^j4eW1!uXO5_nHF=QK8cV~ACAyQelHuPn0|nZz?KldO2XgBRe5 z32i%K+hn&l<2Q!q`mUtIsgUTU3j;x{P-ROxmw~}_=hKAt2cC1ENGZtvW;bE7#PU7U z9OVl6dIz;Kn{dV{F_7w^gcd@Srl22^Amkk%pMUuE1Pn{Ai?Q6{!QHe!d@DZm!>U{@ zpU$*5Xh&7SiWyk(jb3RT<`_Ku1?_^M{zt`4a9vNfc+@avG0pQS+c#Y-n2Qy9F#^Xm>MOQNxoQ|<4!J7heyFYjt0~W)B zwSJX}1`SF9mnxk#oI{oGsHsZ5qHcBJh64WK#SpnjcwNR+!PB^n-mFXY6j2kq{h_Y? z98~)ZuoiSOb!W1DIY{3$Lxl6!_k(98#Tauwo#km&9H(Gf6gpUbpI2X3E^tL)I73T` zuO_B$6ilfYu+8P;7)L!rJkx}z$gI#MYL`D&8J&_)ylffY&bhLysp}tq4j+P|-7`#E z5NfLehLX1R(^rqsYDc&*!Lu}+<1LphXF{?p9Yn3F_^46O^C;3naO$XkXvIBPa9fLF zuk$tJG2<0fFqKyt&0AmPx~@t2(=VdY|A>Cjsl0<8b6Bk*myl{?>`SGI;)#i7$PmmD ztE6cw(AVfNYV$CdO}&w2%E%^KK#aroO85MMBMiuHPFuh>hmsHWJnvcQuMg4k&ECYF zl|U4`Pk{`JCs@`<>P-!c$Y4V1X4Vq6Goa+v?CLlVq0xy~w0bW67p#t5zbsD%Y9F0A z2uCu@t>i-e_K0y|Kw$E(MyHp?%AzN1-6Y3_+Rt@zGCB#y`9_B)(T!1;sGSgob0K*uH6 z*~`q^M5L{AAP>QzrlwZ6V~0=Tx&g5CK>`z-ofiWxy5{hW(2q*<4K|52#w&tN9bfAf zYONOIsE7WIj-`RakM&`JU|@Zxx*j+J&g%!3Ho9T9cNH_5I|}mAIsN!( z3=Q~I(@<{G`7PI{mf>`6NF4h^vhfe@>b3pm7q-`CiM+i`Y;W)WPkHe?dZ*{i(m59u zIqn-SJM=M*&+RC=DP%`#K8wAcVzeTYBv5!f!d+8S%-LI>HwE)RU9$$A;i`W7R;6mZ zsoul-Q4tyXQWxql?-qpROmPr5=bm{ctud9-#=NiVU$Uf+`Ar-AS{I!A+EBpV;CYcu zC~v0jb2_uk@u|^frU%i@U5d2%COsK#-;ei%1svdSIrM&%@A*wfD&;leljLJ*02lnX3FoK_ zRa!mJb%#KnPh?aSTK3L@@Nco$kK3MQ8!l<6{YiUN_~Yx>@x&R|jVxv!8}p0!biNO& z8ds|`JrPsx%kvH_*yTlAmTPrb zj(JRLgPqK@90W%GIY;&TM+H<`C929pa_8Kl z)49Hg`{InC@b4ZXyvW~;g3kk3rFL}ViwR~_BY(Mh%Rrq*69imdBd&V^R~dC962R~eo@nR7enW_)vDwzzfLrfFLE9))>M{^S?g z-_zXTQ%9_*_gXpWDXdSqLYwxg_uWshPJM z9KB5wa1>4BL|vQKxy%_LsD3lTtO$bvVO`rEoI&a{$;L2xX7r3JJJk6Jf6DCSM!|S@ z><%M!CEGBa4vJk#3RX@wCA#FlhPlGi^L?5XG-D$%uC^bUgiWsXlB_2TcCZn8osoze|6@osA5H{KAQx{{aj(IWZ6dRSI59eiqkTC~U;H&W<3&eNj8 zc>O!ck};jFsrRnVs=ntctv1r9HjT)#Lg9xgn%@GV%t7)Dd=U`0os>3Cy~Yi0u3P*` zMWZu;XtHFmJC)OzF^JHx!~THrMzn|zmX><9JMFJT>|;n5oscH%t~6WyW4%wRg+~Uy zd|RppIYUT6c0Zg(nJ)%K$sFCZ=o|4vPdL(dgW^W)=g>Uv(g#5AI~dnjXY32JB*swh zOxu|1o6F#Pe5EH5XO1!xM>i4O`r7_0A@xrDX22^W{g)aJ!`wh~-Gsa7!U3O_X1^JrH$nLU2HDXxPD06s5n7p|~rRgz1hNky|HtJ|MCTa_t8Y4nEmcjd>JuqQsP4I#ruAa_|C{y6*xqY+YwA6f}C93OoEkX-aHeida^64aurL8BPjGOoqc9*S^*mN4Iu8 z*Mp_k?P6pMM4#Fs+&QYkR_r_WnAgAz{Ax{uh~6~^#92x`g8EYW^&*abvh+PCcX2rs z>|B#@o6C8Uu`ON(=pFqRQ>OU;^y#;EZ}~p6>PSxvtlS8U6|bfVBL04U`p7267x?QQ zl=v9Db|Y=Sp-ss8sP#F53oPACA-V&jAL>HDZyn-C1_Hbe zsA#18x;iTV7O67bKYF|GuxsX?KmV>!Q*>`Ix5(gA=h1}VDVN$M86$>q=~r>G92e{8 zg?nXa#Ui855(_2C_WQVUKp0K2r^28#(CcH>5a=4i*ySV%^jQ;a_Sh?Thg!R8$cY1Pm4TZ)|dT`H)MBPHi!Co7Qc z_uIqpsLikM2ZyJF=uR6{-fL<*&zSIw$c5>fwuUK~wzR8m&(sRyn@4!&EPY!Hx(;o) zi}Vss=ifI{atlz)p_Pcc4ijM9WJa=b|17fpH96{-xGZxe#E3hSOsy@*I8rNT2S;eA zKEw_Lzg4~&M{fWEZ0Uxd=US*!2-fQY(&vMh+q`#>eBav2!?!0lDm2N%<(*>Vj_b8# znoU1#)fBzj_qy{gb~Iay_ynxzz_(nZRlSpLW|1OnSgn>u((=g^+AkF+_|%}*LW}V_ z(OiVB=>&vj#EboG`(?O}C4&XHTYzRta2Q&UV%FH4$>n##IN|w=9W>LoT#Im)t962L zVKNPGr~t_Th_$<%V?^J-p}VMNND0~{uoJ-Og^%|IO`h%EkrA+RZr|)-+-An7g&y@X zJ1-r&$wH{ewXL6L1A@NQ)PmyP)W6sJN184*V(c%|UAfk8*H&z=zj6=m0dv?^oGg5C0Wh1vTAHPgcT@zS-qaApD2D27+Q(WxcvE(s zNOhezj@2m_)`Q7K&wN=pgc~Dg*+b51#%x}P^a$h5=@i!^m0dE9cc0?c7YV0(?l&!z zg{+n?5V1E~7YFwI*ZGQ6{0~UkM+6m>7@Z8X8nO74io0BVgNGJ@T-I?i6GnUAg{=g| zZx2F&WDK(*w7*`X9AdIe-K<1astbW-=D6`IA8%Xq=nDaV@BY({2|)$mJobZiQ0)CX zVvbcE!gjL`CS5)WZfKar*{+uEPSJti@)<%Wjfy)qtL$4xv&Hlgl`*ESU>nt8U)Wi( zdxfk6bUE29y)z{9H{SxDGL@9dM@g^a%RJSN@=Rqp>X&Z3fX?Nef?ITAVL4q~T^}_;zfFCW%`6?I#{~ofBI2gqD&Ab?v$^I_be$68f#=f0_sE z{q;J=mdRLBf7yXrV^Ej{gxY4s1US{9HKaTUvY*z&2*Hh>gGQocGaUl=;B>+ogvin5 zZl>7b1H_t&+ZN;CO+gFfM+&W>>xe%dz(&{Vmcg(H97@dZv>VKP>H~L)g?8f_ETv)H>V7=SXR&?? zgV%Bz`{B>_<~In3&N>G(C{VY(E3|rU?vCeC{Bu zO<8|)2LEHb&iu1vqKi-{0vHfQ#ufs9dNI8L1ns}@1f~|kL8mhHGy|bG{3zk4*P&iv zjalD*j9i_UnROLnTnH zV&RXetCh4Y^BWDO+b#C5mlAC{BY=>E&ADT_%XQy_a6IY^6;z*u_drs2Z`OLAWqSHf zoGb^X0_#oqw`4sF0a~6X7^L&ENcY#=P;ILJLZXP}rhUuP~CF_47`U98Q8$nzeY@n&$c&vPf(C0eM{{O z7YEP!cp?)|QJnQCEW$r%{i)|o&a%`k+d&+sRC|{k;OmzyS6wc6OfQPeQ+9Vu_O{>Y zX<)@$^y%9UIPo%GG1(m;_N9Ax{Z*yTyp zIUOmi=>?upU>Fu`*o=OFV%R|N(I24WMmqxVvj;yR4@rZpV8M``3ecQNw-q>dGlA}= z)|eBWjT!>Xc1V=~f`6rHFrKuw|2>q_u~2O3@WqfG%&*G^{0ka6fTW06FoJ(GTx5^9 zg3wpNNS49Ee-uiodf_T*AQD38s_i7qG5;?7`+zI#JO0&E-h&FYaMZMqe;3hCz*nE^ zQHQ68VR$7InJVuDaZi2;`U^{(2K`wk;R0f;bJc!*Q-In875%p^k=@)M(){Amb5AR~ zb2?YtzXqsrb?G6441GPmn6Zl-@f^Hu_g~=xf>*!n3H08&$ozdu=(~lbZq9|kZ`-Fe z)YWHoQlXBR08bp!Dui0hX@^jZe?ED60Ukew!t>V?MaPUKJ`r>ZyZ$a@;TXEG8iZFj z4=-<3W#gM_#nr673wdt8Jm@fTyjt6p9bZiO`@S(`cW2HMh$-hkt@jLJ?t$@>bdPC` zYyT5&S#Hb7RqA}r!#yNWsWCSs4{6aCIZ%7gt;q5BO@rt77{n^-8%>d`@i8XxY;K3Z zwD*-vW#O0U)gB`bcCZJ3_Hkj7zmE03r%EIB3%=~ja60^_36;A1hJ7Nc+O7;ULI?)x z3GlO*BVd8lPh_okqz+J#s}`4kqKdNE+c@q4Qo9FvqJamCgu6jk-AsTmRLe19Q1P_W z1`6dr>GWIMHbja43kAdoOi_OfL`7!b1mkJ8;WBpbmF_jb`NP54yoM0Ntoio? zLqAqn?SF6S2?vftai>r;LfR@}GEf+)7H(=k(_c}4jSkltu2FKeADtv>3^n5jT5XRi z^%?G3xRE!x9<0Z0h7_vm_t@z7FS4X@+;YGZX_yI@_^hvVsbwQ;I%@TnIvU*~h%H;D znqV1|*Y-6hd(v-hd??dv7tbocDs-juy*KB-E3EOEJfqY#i&UR&|NBz#V7{>P4NpQ* zseBsz(tKcaflXZQu=)DnZpMc<8~m1P3u09Q-32=wAtIP`_9>MSYFjEbw5Mf;OWCos zYmTOgO_@S1@nqF$J8nXYde|&&R!vM$o)~VADaH>G_0xNBIzMd&PtyB}JR%I@i^m}*N0(I^kc{39906TpYntis})Cf^^ zcb+(L8?N#W-hSi4T)SP!tYa105Wkep74;@@e9#ldw>H~1vUmXFHMa06Fx76W+UYn+ zJA=ZQvn)+DP@x-?G}luPvqc@tpPZkCwBu(iCuw^^W_a!-vI))msBNwWt?!oCmMJ^? zKblJCm5b`5gs?G~&Q1MX{6L)#H~nUZe6K3dy{}J0IMNXICEPK&xzZ7~akswETic-+ zDa$nV(leOL3Dz=Giwn-!7>F|+nXX+xwr=18@E*dhA>e=Cx15g&gjmX`k9UNv{c&dU zh=2>%zh=gkBy$>h-QX5S!Slf=7V=eZWK*m3?JOJ3aT;vfvVJ($uzF~9-j_|llex;E zA>K}HiCK{t%w0%0hZszM$3ZZoDQqn~5WSYhUCSne*aAcI@@om*8}kmM@&tmV0Q`bK z=qj#$Ba>G^cc+ygY<*aP3nS}d7JaiN9uLJ)3-W$Ft~RSNrAed{Q?LDHq*`FZ!&!G_ z!7;YXwV}SAN&_cNOM=}fRZmye&27J<5%Xz_ry)hx5|mM5k4(c709%{*QZTtZx5k;yb}Ab5`&VtkCI z;!2gX6~@%rg660$P7*wDz6wUeHsdn*Saw(AcQ*YOhi9_)UO`3Aa^8W#>((>rX!YmR8djwezeQv<19MB%9N37fRM= zZ!I`6&D{pzeSB=_!YyaEh$k%c!al5hE5&$yfCQP2CWdilp$HjEK3Ajq5Pc!FKb=~V zd+FU*jzf(MLi(Du&Kya%CYf$J$?M(HrEe$n^(%D+=HV{wd}cRMnpSOkJo$PWIpVTb zv4fmdAyzurtKleI@9zB|t9#j2AL{ddGcH>d=<^PU;081_&${#*6eNesckXGlgg=sA z&nkQ{T$&-IU+hOiLm2U^(uWkgnM-M)wh7r35M8B4Hw(U<)`PUihOX+@J+i_4a7d&iSHQ&&5pbEEpP@nnVodY8jz4fIV18 zI;Yv492Vhb&6qS=5(S5iWe>81iF_~6Ou<(4nhIAX_Uk%mje0r7^-b~1p*5&gozTJc z-&HTu5sDXr{pxwOcnx4s^CBJj`)hjapVpFf;}_pt{Kr!D+2d3N68@`W(K$E$)8yaM zB?m6CgfPtTOIRMCdKi*G5&pEQgPWM4l?%Y|9#HNTuaRdK%@l_!Tt_ZV)be@IjvZISeT~SKbErdW&pj?7OD@`e#%|mKzh6${en_w#)Z>pwJTg0P?dU( zK6Rf#P|bNc%(vOqg^uq$HEFJ>G^qQgLRI^r1g}fPZT6e%3tT6gWaB3()25 zRwr)?%C1>#{O4>0-z?3G*2m_(7bxVjc%u=ilUstfFgZG_NycBDWz`&AusP2;9IfJ1 zA2I0U5qnQAsw_?m0tUI7)@ODcEXucirZV{RPX%F9c|_klWciK1zawf%gm4RXo#(JY z7O#q(SvTTVc-JBFvZXF+-Suy3vjOkrE&`(6)C{Qi{2}&-6`n&qO$Qm`Oncj4rjNDB zUI#8~E)uzXB91y4ZHR=@qwJZ!MX1?9kO^nE} z4T10{?3Z#orU1fL=-Yk+=9PE;f&Wb`@EQ0W}i`ZKf?{?>;ZB?2K!r0#rZU|DXEH z#PZ#{_lO#J;-_k{lbVW`2GS6wmMEq4&6#9Q$ef(myuv?`ykdMwE-Lo)ORD1-IcE^= zr;1VwDW&xHAhtb?@hryv%FfIVD`)7S5Uo)ov zp67+$G7qPSRCEX_DE82`nUggFF#+>!-f?XE0KSXIRI^bK1@LQ^lM=V(<{JHX==%?Q-ac4mlv-LkS-GdhsEhwD&a}lx7WSH$Vd#^$?|N*x3%q!ERE4A} zBfGVBj7Q2+rf;RE-<+$dI&Pv))OSPFpQvkl)2z&iR3`w!`)HucmSA&H^MBa;%BZN? zz3&?wWMGJ)K^l~hMx_}VR1g6LhVD=rq`PEjkPxIpK^b6Zq=zm+6o&5Z4k_R5d7tN; z`>ezH{(gAZnh$%ytl4?}|G&DfJ;>pCvN)<4HzeIpcF{w#YRKcy4QF@#^2H(k=@Yzq zvMJidg~fTH)gFfEP_j}ikNJh$FiM2?Z1Tu?b)DeBhGW#0EzJXO)WgzHp%_P{ITQL+ z?-D_xk^oilNEdo^)T2<5tTg($TBM{2_k>{Y z%}2xh+Xs3|h>eXaw1c%+#~x*pk-ShWCc0bS^pU5+kg<>~Z|jQYl>~D%17j9z{oO*n z=lUf+8>Cf6Ldc&r-s`R!*^kwIrDM8`6W5uk3PmdhXcxz_kbx;?6;Iq;)nE2;Q&^IY zBncE5x{JZKsW*#-80;Gy-ydJd$z3166)IEg9z>RShdmlAhm^-`YV8KvZX_guY6M(g zg%qfk$2?FqlkPAM~wul2bLJ!;>C_Oi3@xY$=X z<^+oXZx5s!Zt2&l^og1&@MvS`BxPh|WT+|DF7G54PZupRA7m)nI;oEjc+ie;Y}GXx zsGWUe>`Ks??_Tm>K{CXEPUy0P6EHmbBIyTu{$Jzp9eUCro>3mvC)&0?N-yZ3$3`J|yL3g8Iuf$r^v%^fbtQi*_uM2B%^!Uk zZ+h>e8tnH4)v0lLNrIN!DAkTbJ8|S-rU4CIvM=79=PDg2WR6H^ZNad#(k^Fu*hN)D z?0I9Fve6f;)5-R`1~wcBl2`3rrQHh>t33u8!yvwP^X8Ha2vLb$9*=%~*h5uqBBZ;> z`f0=UOm~Pkng>}h8trE_e+~JHwP|aR?Q82KX{K81zE=+#eXtXDMz?`a)!;9??d|1v z+I00!oT|j#Cl3e1{AMtF?Yh13oS0~GN$nGyQ{!a^e+CPNa&|qT>6i2!Bd0W#k?t+c z1u~0WG`9xQ8f#R;kzUqdLvi)5(Kn3_rpJb8>MQS#rnJlBii6r_$1Dqs9c80s>um57 zymHq*w=4S*YA=Pzr`2)dRU;Q=r!Sm)Tz*>gkos~e!LI1Ty?_2T9iD9qyPG!CMGaZ; zkuE({@p5R3rhdZ1ZINZ@vU8!ax^DO-;6moq%(c<+8MC3W&)SDKNoT=-E0Y1BYZ>g% z5IBkdDx*!*=PQ!Z!JZxBjiZNQVGNh^_D&ixBkTi{!5Wq2Cwub)>x?J%1ZRt|xK{r? zz0716;E1N{qpkUL3cLxmBmD# z_9v0h8p;!osx1A}b~BBf$ErG4-u|3F_Y`zcZV@j>gdctJR-0qiWE|deBzw)=PqWzG z76EhInygkmKk|6GD_QYk8pWh2E- zVxpeUTHXfRRiN5>HIC||o&S_lNCwZQ*3+PZg^lazAIBT)OVP};Pd)}Y={~xP&Y$pj zoxzY1TTR!N_nh7;Mm?sG(jt>1a95kZq(>6k(grT7USDa z#$)|N72)2OogoVsM+&!k!c6aF>4p*cufFu<^MBU@n1|;PN`P?s3Vf{F7)Q_YM32dJ81ChbJTVfLc*roVZSFlZ z;e53b%#OUjSN-*#i&giSz~WL(PqT6i_VULlU9E@K(}n{@1~NSCK0`cXWDNKZlyi@^ z_fh)4=O&$hzue&%p2ShX10?ZppF(opMCk}EHb=3f<2~i`w_sb=s+8?RUHNStp5;tFF3FVuoe>&xvWm5|)crk9qP+R}xZR?8FZm z)v88RdMYt|U1vd@L^=9x@yElD+xf<-vsHp)R$kU{e=W)qesTA0t(tW6 zo}B$0{N+=F@U2U!uhDc|Q%?o7YDbrPjNk`Fnt`U;JHMAW#)a|Xq&GlJ9-mP;`xTwU zzqHPYGniKOhjr@Sh#0-h8)Q1=3lT<0hFPpQI?dU?D+c1zI zW#HPZ@9*l}56y!TOBzHrQ)*(>HbqGiu9Hz+SHopy&;P!&0%9zDcvqR0$7AX8u+Ti5 z;>75jbnpJ)qVVh0m`8kY;tPyDzm$b?m%I74Nu<#8m-Su35l2a|jLr{DG-c#?m)c-y z#M`Q+@ZUri!laeEKmEOIuie?2Mz3ZSs0W*WiC<@}bX-6A8zdJb0`^E_#Un~a%7k^p zr#lW5bEaV4z3!y(_XGX=c7ZtX69pIe&X<4x>%X?+(0FPsy>pQM^?$2r|EzB<>#70R znDwS0I;nqiU;Y^|HFv}&M+u%`yLkQUNB=GSR7VEfp}JD0uIK;u1po8fH0gigAPJgU z(iv{vLHZ7e!#HDyt9w7;pGWog4e8tL(pX%9n7iDI(;DMJvyS>G=p>n~8!&%yGr_q6YS^3*p3r-JAaBe6u zf9g)4KS|&V%RrpeEx5*b`1c>k*hM?8#^n*!t(3m^T6(WCAVTRg&Rs87ODkz?rE2|I zCh@CjzdCHvqz;rB8v%;4bhFmn&0=WLqCD?UKZJRwV}4nO+5ZVtTQ=zYbU5V~X{ZGbKEyUM)q_ z3ae6b!}Uowb)tAQ37gWS&S=^&9Au;S>C?eX$>o|^Kgjzhg9G1lkH z^{JNV)u`6FZNCmvuQ{FZE`9iVxI0`yRUfjh&2}V{9}NA~|6owQ*uVS%nh=}v-(B|q zsq-!Vu`N%iPyr9E2GV1IrD~T!$&XPCf_?d9;dGRWP~GoBAl4(QS5D;PSvrDAoG&_c zSkN1sRUk+cU@rgPwIbvinlp)zcIFP!wA0L&KH8kF3 zh`o*!$dN?Y2*J2OHh1%Tlep@IzL$JFJM++~w2n`cI(X(&ez@HC-rXn2rBZBdaH8Dq zZhdX7$SCK|5>dbLiUl2MA(tQz^&maeujQ05x@X|Ern zB-oT7A-0uk6$@u+K^2 zTfZ%$efNnwjC;l4Yw4RcxP zck*p-Z}0A<;99;s93+m^MTv_$`FIu2&m?y&G&so^+A%!0-;@R8%3G@3ny$($K2ww1yOEMo@SQ%jT#Ut5`Eikhmb-wkJx6dR^DPqdQjbzbuTaV5)E$qh@lBzVqnm_v(AKMnsIT zsjv5SGwr@~<^m@v5Qbn#dG!%GGxpw=fy~d4#bNz47`-J()|y zhg+)O;$mqJEMFuGtyV+JmT-avKi{i>wNeH}(idnk{NljvW1@A?O*WGu!Q~AR>GVgv zZl$I9nIYSn7(G~x(6rdE*06!_CO(Gd%n5;O-%wJR-?`fSh5FKi?KO=|cbb$0HEC9dv=3+ajp3xPZyLKJFh zEU+ZcK;ac5oFi#NmK*VPSI4mOM8&wgI9y|>SC;`KfOrVa=l1Z__07&4LDzn#>a6y? zIC;|*9YL2Bu4pY@?!ZOsInX;V!JQxXqm99`K&)Mv_w^<5p;DV2NvS;*&TvTbSdVB^qQ?RdOn+lKhnpe|@g94Q%@!EYhU zhNMCLGe-tHn)?1!!2;9~zAoRmM_C8%c4}d$(6{5Evv#(w++SvFWEiAD`)TV`akH6F zHV%JQ_DK3jm7UjwG0n~QSb2_-3`M{xj}MmgJwJ*EItG3_Ihg}e#WC`LO=#L{vzQm* zvFG#pq7YYR^ojA8kfUc6hwja535rO}{>=qzQe)bAWnjD5v}`F{qzfAB0_~_+1@q3kx+| z5jz!#x$n?XmhB0(5ldaFX_e~o=q#3tx%pr2hZRL0#N(L-!jG5V8`YJy5JG!qUL%AR z6rB;atP=tg3bv(#Qor?~1PuEFQ(}tk>*aMErN1}f?>;KO=lxOZWH!ookoqra|8Jb) zG1KEYMk*9PHG*wW@>G9J@V-b(<%zi4)*6T#%)3qkGp2dyd;W&~3^e(S2SeIU4~CBv zX}<@CAWl*3mG#vJ*Ox#;{s@$HUNuR4xt2Tp#sNjRqdk=%?n(#=!Q%OR7^6P@MNW*{ zkIyd(Pysmc_$;G9l}92bKTyCU`oCi#OM&jS8q|n8m=~jCfphq?KGuzd!0&su%zE)c zuS`R0Solq2AOMt0a;6Q2L$fw8#at-5`*4);2NryN3=?UwVWSw`OUa4$+~pibZ!#7T z8$t?oC+IPS3c?*HzNc4KEeLgMlYdK35Q{6t3TxQJ7bMdaQ|6Ftfj+=cR;TFAG&I3ma7oBv=y zq%A2d`>lX!jP5Fs#V-+e(eKHg5q89ayygzk8^JxQ5M%>5~jNsw7a zTF{1@&P%f_Rt0H0T{qIPhTpl4Umf_>GWy${0a@QjPm4vu zEP^fSB5BM}y%Ne=nip8$KnAj~Ri>f0?od=<3prTJS4=hDUz(G{<_uw|uPF?f^AHWL~$XdlHY7(M{!~(bi zO>rs`<)U)^f$$I*FqD>O{_;4B`|YO470fdc8u}AJSm}t+eN*mdA0EcvCcKjm9Y-=u zgdSs3%FOh)co7Ov{77<67WWy?Rdp>}>!0TWHur6~3?{P`wCe7opf~fz{AU5!S_tA0 zj@l`-Ggy|~R8VFuFxw3C0_yMBU_UMPYA9C$zkJs3qPVg?KZ9<}za>d2+oQcDLZy(A z(^v;t48V`R#aJm`0P4N5_u;U?^EIQB`h8hZ=`cG}KJB(K{87M9)C8r0*h`Fp+m*S6yZ-sLI|H$vD^IYb1cEqxdM!ellk9v7Yl`%vB;#v&r z#YtG!M#6`x>fN?=*&9qQ&*YW0a9gR*rKdQ#vUKTfa9v!{#oUWX=wQXBjHZ=*A=k0?eUrb(5iy44_3n>cyZBPH&ecZbi zf8CZKY7hw?M*U3MT2`>=E?EiFB@>3ccVX%+A#J-juxR^zjYPq~o(bu3Ydmby4Ov7h zE*=IB=8hFok#9@80w$6;zI9?M)~V>U+rM=jXWQTyTq(?z8-r6sTnDiqFIU(LL{X|( z-#U~}1L_t;FAS$Izizj^s1m34<>mqCzdSp#b5dN!=wc$-XTU{W0!o@2Zy+=p3W3=B zqaRxKQ?Fx+)5v-C$41b!`07+W$Sh<79^5L^^HcwaM}6Thq47cvGu%M2M_!(9mhuLO z$=^HjUQW^$o5u?x(I;W_Tq0pNl$k4seHV%ua>!GRHt$X3FALR}MK_TZ`cp;5q6j6S7$7v;%jkbe zBC&n)?SK*7k;U zEj}A9U$w{N{MLBIG&}tEg%V24PM3s`WtVP&S%#FQ68DV{!(JBiUMUHR zse6tm0O|*omrTdzebXHr3Pl$5f8o&I;oE76z$AxnbHyGH91@F@^l?>bwBGTLG!^JmhhNsq zOqnSGq*Jk4lx1I_diYl#xH6NJza{ZkoCVGsOq$@Zzf=yT>z|gtYXfn>BVYqtTUJqU z)6(%B@aU)%heD`ylgZ|7qoB3bc9ScxdF;AipW)B|3R^xno3qjS$L^ps)*nFenii6j zQmIvbu9M7sQ&~UT{YN_mQ(l{75oc&pwBNBBG4oOh!J(9=C36Cv$3-my&jJ?oYw&_5 zz^FfNelz$8AmVxHosln^%BN73%Mbh}L1cp}h@dJ>fQ4pgQXLpm90TCL?`(fDmPTco z+BoV@L7!>#t{0mNAJav6;=EU)lgqEW*s1@h7=4F#hT_1gKZW@Z5(CJ-I2PA*0v>tD zqY2kh19kvlxF+jcGOu8iLwWgLSgX65Eru3q69(+M#JCW5Y=upkS!rxr`< zHom;kyBZ@`0hKK#G*+c(D@0Nz71itWK)TN;@J`2dD!iXv<<#ZxKzK} zV#^GAcUJM4O4B>_BN=xg)#_Jx&AXf0O!4Atx;PWHW6Jm6l9os?!**Nw?uq86Kf zXrYKE%7lWqSzzR(psa55WuDni(_hsczvx7rYfYieDlY*-2baQm;e|uL$yHSsZ|}!p zWmiy5Se=AvI<}jv?EU06uwhEOl%eana-&juSp!bj!0Kx!1xxEJ`Urq2W&MS9>M0wh zV)Clfh#cgGiK|V_LLQNma_1rW#Hq&LkJJ?7C@Fm)oBO$_=H=3Qy|E?n4Q-n{L#Z11X?{QO?YS zRRVoDRmk;&i|7NYhUQ?#1&DkZ&~9rj=W^e_e%e+~h>edO!Kc@xaB@<1q$c zj-Dj0_mRY!C}WvaafeKo4mr@?|?qj{-4odYFnR z#9%ql_>@e#9E@lig+7=3eR=q!)JRI$4WS-M#g`0>;=1fZE$g-KIX^xwk%7`O#$l||K&XnM8GDWHFt;Jx|4`QmBW?Zxu4RD>A| zNz4#iJ7+(RY-C3<5HuPW011#)1g(}ixC-o8b2jFxB~wckHgv?ao((leqgTjy1_y9( zIKg(WjtPhG9b)9m&xbmHYaf1xjTx&L-ztl{k*~}(EB`q#6!7|&*;wBypvk;=>V*y( zUQ|w%zD4r-bZ1(XJFw-}XHT=J9)V*(@PcYXocA*qg1cQMI;JbcZ*l`2ro`$5GBe_peS|)MY!9Rf4{oluAk*a*eH!#JI1aIu zisb^jsH2y(;B-_|d?;Km-l^m}8;ngF=S!VL?G>|(xoi-%#g&qCRkaGTT&!e4z%QFI zEvt%5=U#d9f9nTKfeA8m`9MePmUc{q`PN0Yf#z|_vH%Fe3P5Vhu>{W&MZ z-JNftT_$lB*l}2`0?1J3rEX?GqJOXd)%oiS=%)eERl2W>G2-bIFCRv-L^%M;C_vs< zSg|JNWvT8EPe?;uYz1np?Z!l|cPJYGaa@AxJ-(J6HEp%j^;up;cF-{;_hgT6#>fhwd1C1*!`Y69%olIJE$1y7<;aN%t2;^|5 z__F}3P@yNW06Oq=efV<%nY&|@^d`O7o5w@n06?A*5UMiV2z0}IoeE3NUb@Y{g6Lq6 zF;XXJoGxfz%Tf<}mi!6cGr)^+$Hw5M%9(S4l6b zZFR=W%)-dI;cC#x_0qdw9?Cxak|5yn5DDiwCrm2Mp5-U=YtcFYcwL`>(`Iy|g%rOe z0P}tsw}uT{hCE0O7Yoc;&f|!R&2Yz&lVa(DkU&10c0}-&j7(J7v~fqjQj5ZWlu!~q zLQJX1&>3a7!tHm7ay~zi?`Om#uq{D*ecsNaM@iGeyNmU|3hGPg{zkjS6l57o?%W83 z(r5mm`y<{ZB-ou6^62+4>B~@;iD)WOJY{WbCkEdK%g1=U089(~Nby%MpE=?4y0Rr2 z(?Lh#zL(rPqPS$5J+Bd5(M9;w-uVzf!5!&`G}!#PF^QSzpfsy+|s! zd}}k51o)MJ&Sf8tKy^z;r@2MUv~UQjZNLtCSiPTFxX)PcpM0aYFG7!(PKw3F(fZdr zdfdR&x!~gPhv>ug@h~RrO%9(p<8KxVh>@^8Qkuu~tNfo*#;C{ZEQ%uWLM1AL_u=*3 z5Vk0ni<52MzA5JI2Ku&p0)jg9wb~_yjT2R|ermX8Lh6uXmJa3$qRFo=1!U(D6kIC{ zuFSV7J85-b<-5(!Q9?r}05H*a1xKfdcj7ticqEKGP!_L^DKTn>jkx0e26}r4&tgoC zR5JTb7*C|}&*5*Hv-ZB{%c=m^ZC6h&t)w})$qX{1q@h7A!R9Re?~VL8OB+uJ0o_RazK3XU8nrfnbwvsXnJxx-u>t>m-MNmvyh z1M@pGK2nD~0-5<=|5|NJHp5VEz`tmhX4+5%Q6Y1owhRKD$$UmTAcm!^s1Q#iAQC*X zYkkp|%(MKtAk%r_M_CB>aF>UGDrm^4>b2(Bj}o9i2^zNq@GH|wg>d!b+L^@|zm_N_ zxLL=c$@(LJtHhOU&vrz*?Fkg!MQB#pjKX^Hd*q1`%(TMxZ)E%HTsPB2-c3*&-!s>G z2`%_;@Ad8*&+|-)py#@;0N?OnHOs%w84wwq1#(pA@G)&?@u+WU!lf5uo^V67*DIjo zCA(_WK$EzMsLnfSiGjkCu>%Vh=wyP*%Ii0HlwIVHbQ?KwJu8yTyxHXP1p_w%l8gHe z?-|>{rGbh^J=20gM^{(O`x>1XGIu;b}IeMIThh7LVX)gAI)X_9^)cr|9LjWEuo)Aj{4x z{p$T}?LV48+_4 zgG#Hkmt8v&;k6QjK6Hn;G5;l_R_?}J2Nxfk@H3yDbE*^+;!O`eGc&`BkVXrkfahtk zTQr9Uo)E}6b;xbP0L@WjxC;1b^h8Jt{Dj&nP6zcYv5j5OZ9*yd=0tDEJ*AqqXMYrlp1(2yGd3N*|BH5d^InEj@!2&R8 z7g@ps5`OyqM5b!#hQRu1i}waArVl@kunoxQqj8TJ{4bq8>whgLGh~`*@%_#n664+= zqy&}<#sxBEHltz?0kB{K`*XLph!ut~zwf7jl&as)1(#%A^9GR1Qf?%#vx~e%Ehp@B z%B9?OQ>zPSI|gvgny$}nRwr=dKWi21I=2xDi!eYFetfvq328zU9|MiC7Osh!X+3jj z*jKFiV`>Le&~g{%-b*_L#*q0^cYMjSqexNXXuvhPH)AsUNKn_ePfpy}sP4_HzJ;4% zx|HHSTKv0~jNMiUUsMFeLi;`&f(H6*kFrU~ZlW8Q<*t zbiIXmL8B{%zHOD+SjILe07qD|ADA0g4mi#49|pJS-C~nq?mlk`yp<7v!wj_(vcdF+ z$7>1IRvi*nsj#f{K*g&@jsu#zi$YV2PUu?<8UhAYqGrq z)mYAhWNt4IfXLu-Izg_98Nr%VAZ}$$OgJrIqqwhZYW(9K zZF;_DOfz&INb)T%eQgD{rNvt7q1=I9$O2(I=TRgNvgl-MoUHnw+)r%~JAaYT2W2Tc zRcej5t@j(_j?%AeuwE^uw=Et}pM(4+4ZieqJV%+5?J1IN}D4Od{*;u7x8eJ(*z|!>!J2F=ev{A11%r}>EZ>Y3*I)H0$&;ys^#qI5foo_ zpU<21KgiwO6W#e|;Oy@kmsa3ENeVo=FEDBIpgwA(Lw|4Yn(R~ngkHYr{CKl|3@)OW z0Z2bRfCDw<34YNLL6HDdWU)TZbR`D;$)L}U^R3QkKoIl+Yoc0$Todjc88yjzzWP++ z2-RR>%h?SlW3OXjv;USUIT9w;-kw|#k05VP48!s>#SV*}+3XuBm7 zZHw0mLf>`9G6F01v^NJ$vh=>$o*2oH%49@nj#S&}vBPB&1HqVFg-G&emjI{4)|LjF z&F4oM&xh`}Zg7eiM(ut|vv=Mv`p(uXJtqs($Uh^qKjhoGge|+j@_%xX_d2LJ{J9(H zqVz0;iucXtp8)3{A^m%OQkjeOEjtq)an}v=arK%}BmYLo5fNqlwtR7m%8i7J;Mv>~ z9-P@Wtg&t22VNKu`FT2j8;rhfN>q(d3XQ!-R`91=5OO2;Fpb7REhcytL6j=VjNHK@ zx@Yim7&HF32h^-DTz;bRYj5gf%VT3s5D6{|WQN;%C(><3p0Poa*kuZ35?sL@QF*80 zV5r)fkuEAU2@PaaBFM|PM4WAo^X!P}kER966rl(FmbO2ih7n!3?g`0~71++8_j3r- zfi9>DXWi1HNw4@CbZ<B9AXhSEHDU%Gh zAQm|Hb~_mvze%2r~fH0%3ILEC%!G7F} z$8H1kAirz^5Y64Ryl|sH)A{M)2|TLr8D>dkqNyK~>2W6!Q#C@DVXW_e(ZYoS6L^iWO2a9D5SL0)H68_2 z)|N4p1OmZp#hn?(6~Nn0HC|A?4rPR@GVP7gg6AhFRj6-;upu6Bm@OltGK6!!9oX3{ zR@7>A*LcpSXVe^gwj1JG$<+0%q#^eY+U7QF7^9bsQZDvGNu2!D&Fe15Sn@N$+Bs<- zjNN0Wr+>(}O)ZRM=WYzb7^d)HpP1RhZEWWkUSVr5iFl~oMAv|rmbnJ=DuQ_CNeUMT z+(6+707rEk@EhXyjk;B@Lk*VWaQAU?N#!9v0LbKB?2LB7#)MM~w!goHOZ+$|C^R47 zo~j^Oh8fUUh1K&^KrM&##yHLX(I0*-zYpsQn%koN~x*uw6WvAEd*5G&LMfDT^S0NBV68mFZkwHnM8F}NV`>I9_ zY3*+XZUC5avz-G;!ad5bwIr9)dL~f9_UuE*IN+=6GWc$(>(sbqxO@if7G!$$c0k%L zzYBK~UsIRrluGWk+|nr4t#X_d^0WVMh%LcB5Jx5#2oQ8BkS-9+RENdht4*DDY$J5@ zXstFV*TPQLeC>Z+2g0Lcip5p_8e=$=c)!-9SgD@1i>df?tR zX?i!-6o27APqWFnr9uKFKA4WpxmN7XCB1`Sh#Iy`o9Q!|VIXf{Ltk5@Gs%HlMo?n8 z{sh|ok7Qzng*&g87T;P)nBe0X6DeM*i7x6PsdmmSxeyur82SrpVi?-o0yx1W8HQfH zzfS)|3_6yBG|BX_P3A+~jIS(8!eglX0Bo}Ocy_1q!o(AOP#AX7BHn%SxR}*Wj}a|K zsZ8JyoG$9}Nl% z{p9Ju;($!)Dv-p~015?zX`#W!RX>3=%xbyis@1m-fVIHw)Jh&g({AmxmJ^n~OtQhO zcD6U)hSN%fEMQ7x!jMh~FyAe{r$7t+1n|fm?jR(0Cy--dU&XxjMQ~VUxF(Z@*{T8t zQ392r2O5V#$q2=NU#}WzgKh5vH3!07n=5v%wuU9pkgov@!DZ5gGW7rq$Jb*+_kQs_ zq8xpeDL6Ic?>w}IuHg240mjo4;5ZCKL6%*==De1A5|rxPcX^?uK-@KP z8cV0qvdRaj3nt7zK)gqg+bTCx6+3Kp9z;E!u!qas@2gp0>hY>k{*yZxRX_-JwP1>A z0Gc2CV#B=I9Q;-MiQ6L$Ot7waftC8vE*f3yG68%DLCXqC21#E zoiNKdXzjL4&&HyUT8NBfA{s*)LJ77L+Evd}>d1Ss3C@;Ul%-7uEV z{7(kN2fl1<%tof>;DMhe&4?p%%iOn8s5@rNA`SA;V@A=E)hStQWwg9M#(HjIL-%=7-h;$eR)x@+AVevMYr+d>oe|$CaXf| zdEHABKTjAu_Jitp^w=*?iKrJ{;VLZWWoze zM8=pGqx(e!XW_!t$G_?#0>Fs>_`Kx9)?_gj)rk2OFB+PSCUy!UpaYRm3Fy-~W4+B? zuDs(J{yn}VxZ}YhFL{S{R#_i;VH?m~pU)F@#zW0o~BwGLf)1ETpHU z8Zgc2^Bh_ohdZ_j6Ou#<#Bz>`MUf@MTDa_4HJfhQFt_~jmeyY=WF^$2N-19?y#0#y zblrFVk)M%cE=Qv<=ICpaFyl{6ki7JNe6r7>g``-09k}gee&z>pjlqu(7F!vM^+xS; zIw^EC5p3oc{TbrI4LDS)P+{OYlE)0FOTE56Jq+d#iJxSOd6pu=Ovl`gyMXWdL7$w3 z=yCyq4uyAfyq>6h#r7ZqCQmL;Tk{Hd@!9L?wb@Vz*PD6wfppPMrzht+4(CVf=sP(* zp-eFo0xJ?z^iG2B;oY{TQoK(|Xs>3V7uHAdIUx=)q^7%sG6bDSIf*EfTVy9neKCQ@ zCUVVP&l~z3rfQw`0{?n)JEIh*3t%8``vqd(mp;^1we$TaRfG`)tG89GgV5@r4zM?0AotA}C7UKIb zqUPs}_pYS)dVYdn>a#JGjCW%AtJTk8zw#Ras~-J!E8l*)Zrs3q+5*T)6T+b0e^iP3 zwcJQs0KZfKqk5diD&0ie(9;4s%rEPh!}ilE4waV*;!vV;mgv;>m zdO=pTzRnx}RePiLYE&%VnMkJGzP#e3oc)u93~Pes9@XEJve z>7jWS9V;njF#<6`2Lo%Tirf{JgXLVj&8xMB(z- z?!?@9(TD!mmvNk-s0G6KNN$c0=0Po%U=B({RCE>u@SHiN!U~=O15QV>T8AT z#&A#AQv=b=usC_v$cTPc!A$F>89-vSzicp35~BT9kqGr}V1iwp<)EeXL?E|%7;Wd! z+C+^a5<#>A-mKygik}5F~U0mQi+3eaG%VLZ^^t`6qg-Epz zjD%JK!K1K7=F78*ec0Zr%iPjJveEQ&+cvrozOnvHN%6Lk)A>y%jWP$!p~rrkSeel& zp??aCA~Qo>mTmK%A&?MIByX46{g9Wum))T+tAt@ZO&uv#y5WvN1D~b;87-Mfhk!|s zlMYrdqee@bnP11@ywsBO+2>|xW^XG%DxSQ9NFeyYg1o(d{CJZOR_q-xeKiw%oo`nw z%d0p710D1sT(b@*`m+zT{g8`((8Z}Pz`GKB(Ma43%aQ@zT{-jFU5qd~Sr^&~?iX~J z38TkO+)W}tZmsNhZkh%AhsgTWwygNAEza+cDio(A64!jbq`Y? zpzwBpvmo8{VyoggR3BPeSh19<)_`4}%;32cAD1I{o46Gryi-Om=~W4gVb|0xj!S)~ z4hl@Y`z}+qc_bJ3uKA_Jemj{~kz4Vc{c=Q-q80`WLi%S#w*Y@gZ z_<;oRx1Bm;uYc{=3x0aPb`9tWTeH8f-N(o-?lNrHc@DW<{)yrP!B2JBhE}{2l&R$F zu%QO{IWRM&ZInUI>HxQy4)^GeIf``#C@*)N&YYb8+ImvCA%aOFjG0U|MKEoxThDH<#zxr|a zO+2$=nFol=f!t5(WXvqMd(BsWGz21Ku3L6;i&z5socQ#JHTUz)=g=|%g*#wt(M2)R z9>Us_ZOgzUcPp1zU3#pcs%wi%pW+!kSsx(2A|CI&FB>zGD0rR)%lS*9V_=bGKlS*X z!s1s3GoNFTTGPH#AQdt{MyI2Q5T=V=+-QPkEtu|pZ;gx0sfK(3%pN)f_iF=mUrM~F2c$^tN~lI zul4}ON0&+ScsA}T)S3dq3YKt+97S9#dSlS~uIFxr=U%M(a#Zh@}XV1?}VK(upZx+JYEt?D+8FVjT9mL)t>e-mY911{+ikg+Q=fZ>1<=tPEGMn@DUe+nCHsU0^`0KQEcmRLzZ>H;y^#YE|mDfM5fH!YPvP zF9yG}d1gq&*Xeq9;>~#~sj(=A2NRThy6L9+wSvRv=gWNlH04NBnF!IZy3q}Hge(ro zFMtHm1D!W?SkpG8jk0g4%b=`Ad`k$93$yK7lVE8)+9r)2m+EJ>rQSCe$yn)Vc_^GO zsmj1QyY|$sLP5Jf(YN_I;J<@wD5d-P;V|_98up#zzS1BlYZz zefBJ$AJ3i|0CNqjfyoOEP6~UnXVTL9W}f>XBifv8WW_)^ked=R=V$h^fG7c4K#kJ7 z+(Q6zd^>YBI%95I|0XI5_J!5Jm6QH{!ZTVGg3`x>``V3%b8mu0ZP( zM{x{%GsJ^rY%I;n)>ERtO{l&RU^3N!v3OfOLLi1#aMo-wGBk`%kiUmW*|(U479Y*% z)J}4*{PP-L5wnCOV3xQ|yeiN+T=^EPrtqx%kML3VW}UQMW#*Xi_nA`tekX08Gub&w zZ6V3Zev%DR=H{yv(c;zD;`~&hL&1->+@~{&hD;tjI2YbQLB$>ssbSP%#*!**?g)S# z_wat^I|~R#8ymn9I>To$C0roB0xPE3X$d3LhV>)#8a|y`VPe`DE}0FPxz*($@nJ|_ z5Px}K`BfcX2?P7SdE|5ZFeyJL))*0({5?O5M<78dhLlZ?kGl{?$N64?ey`)rP|2j_ z_opvvb}R$gv6;s0+wU+cbKBTY?a~=PW>uWYs|YS_R@#W@Fmh_A#N>2ptD9_T-8{TU z5G`I*DC2eP7$XC7Q|LsYc-;5f|F-yVrdcZNgHfEHV0~#uAKrF`(A|(EQxi zMAX{8SyrRaVAJlHk&h7uCJFPmDl<4~EbTK~AP@}UsriU%{&3SEmp;CWn!(`?!IcVH z4ecgL2jFFW+)!Hzgt}~P{y43BESEVXU;guOB)-cJ_QfeF7as<#3ai0^esm_ItZJ&# z0siZ^wGAf}ek49nEfL){!m|E~j43`Nx}&Nd1k0_cx6(^2QG=&kC+!uV2&K&Lb{Op* z9&4|*(fk_O?)yM&6H(ljac=f-;p5-L`se5O$l+874(tsL_%dUt}* zpEOEGW2SvPvc4QOk)^Ji7{b<{e?S3yx}&VfyG}aHN$&QU0-fjidcig@bLqY&d4?;3 z&?!<^^I?|DN~+bwkP;((JNKnCL2RD4eemAFY4h)CL(gRjn@WX)oMUg~#T)KU_H7W1>7sQfGmpmS!{h^p~Z zz_GId5?x+nQWq1|zpLGLL|5PDA@*F#?rU@O7ko<>{aI4KBW5#JnDa|r{aW%n^wG!- ztPa3COld7%WGMZ9>B}{s>V>=h+Mt)!@Z64*BPs*1O;sXZF0N5cWSZ5wTG6Y)#uF9i zrl&FWwLu73#ZjPbFRY91l2kOnC~&$?Rq!*dgij;+g{g)k!eRpto0QQ0ri(8tXgGA@#a=S|*o~eolB={VBY}$k<_5`ECcJ#0}6m9mTV> z-%c|K=Y9x%@$h5O0~kSDxUHSgqSy@Qet5=sv+wC!D2a2JWyld`Rd9)liLdbxH6?82 z=ln5NVw*_{sa)j32mSg3F}HJ4UoI;*S?cd(qPIX$_6x?qD<$fmhbNo%+G?V0vf}4& z5FYpZZTv+?y}(*jLNB-O^()H5E>LQ9A?=`H!y9SjNX8&^vzOZAVP5|77X=oZvZ2KU zY*YKC5ncC!S!0*$eyqrz(ax0T!RZ#(%9U#)H?8XkC(arZQ&-B4r}5n9cXupEe0pVd zR0soGs*k z90P7E==T27<7!gKh>6dZNQStx#U#^|9^PwRV>fM*fL&og*q!#9UXXRN3c-4MBtd@| zqbg#dOg{q(ocuHu7?gTbZ`#3pAAJP zRJ^N6mL@cQNoj^AqZEgRq^FUStC3~p`>w}Y+5Z-Y)_S%VW0#rpqZ5W6PI)d_1?jFU zImNpuuvJ{F6~~ISD+bIg+XC-op^7-Vd+l?wxrgzTN6QOzTTF6nmvtV7-wcQt;NTC8 z6$mU1WL8|77luEJVAt#f2GXJMr&jk!!8Ok6)?%=f6YZk@B$S}(%!D(Cv=5W$?A;Vh z88KDqSzr3mV2pEN4;aS{?f5bXJxm1oLfx&&)vF1W_(cFxQ3=P zaMVahU38F0Q}21f#Jg&gs1;V-yhBMdp%-yvu|1Y|igks)DVv3fM0wJpZd%=nvax0h zMHxKYp@f=SN-jm?@ITW=krbBp`NAJH-zGPV&4ab?1roY^)A++B02>R56p0~{@1Q&U z(pPYQMbvL4e?EOY+(oLBaX7wR1G?kqYAn$nt{42FL$FpPEsQ}ShQKOZa$t$(F=%JL zCcBvP+VnKZvEh;8##nllydy~7@iKRj?BBB4a6L>R^z3Y=B{t))bDKepY6-n$x#I&qiDKPZwiE0{rjFG?Q#uHu$4_ONyD!O|MnzCBA3A z`-5Vl)_sX&rZ)~I!+pk!^t&}1L8~2RpjE24yTo;`c~9AfcCQXkc@KJm4E+=a|M9{h zH<;(_H`R^UP&n{F;gUjt5R1J#yb4hLX>2fag}-6qdfBvQ7mjmGRV_VF`Y9Kr{VwM0 ztHyL#Ry)bLl)b4>kcd9zJZr7c=MH&s(FnGv6ePGw9mZ#i)5JU?t0E z=eC84d)|u@FUT*1!O@i{&4Bv5r`mn!2d`ifMa`3&MB>bB(q5{3v&=-sz}AjN&p6qZ zC(d%5J~OiN9O3#)Bz4wFsEHd#FcR&&0TRs6KpZnoC^k#dSqHqDld)1;uf^s(6RwN~ zc;*Aj?;~e`x|tgJ%}iP$-j#n(efw$C-EN7cMP5BSc;mWokTwBlXi#h}q zk^<-C4N#&HPGmUN_ijIh+U~^J^CIx@b&`!m?|<@@RFj^T$Mla*$QVAOCvm5^ji<4rNM(sTNP_7DagNd3Ca17Ua%2 zmUU4sCd+j01heixgokyR^yC>BTehGE>5wKIr~OjDbn&N8_Yg%aGS>s&cmHj|ir%(` z+H=}*tk{v?RC&Ajn$DEM=q}6s6t!yVL`X5J`Cg}z(zDwS%1YxMQZ}b7ciH@{?sN$X z#A?Wih7l{#q!UOu?&xB(oiSf@iBz}Y~_G$$Z_Ko@px z`Hw!2m;$o)g=zn(G@pOU#WpoR_xx|3whmZ&NbI_XyBsU7TxWcFCjtD=vLne0Bdxt=ktQ;>3vr@#g&0H= zhphDD5`=r4zDx(z9%#R>KWBNBMP<#s2gK71^9? zD7~+`cwHE=lb@hG#~Dn6odZDanL{xnC!Av(7M&AD?{yZo+=x^A&s-)6O{Dx)EVI@GdUfOQA6P<^*Y&BB>$lIoVCnFvAMFV$v27b40TubH{J2ix zs@$F)g^x5+?)G`r$t^hi216+a;^|>bB`YGB&CRk4WLH#>r?L!}feV)ao@i$j!vwJQ zh3E;1KJ}kPHhKAfZ$3x_J!&Wx=BilIU$POI_OBsyp>2UO-f@RO`WKuVNN)bkk(^L& zSHV7z*n)*df8eW^s^3a2^QI82+ZWAf{DWZP=ZQ`#)ur=-GZQ8pVr6zLzS-JJCrHL0 zav7nhb{#VM$(!uxDNd1I;@iF3nn6BPdObahTptM@>_J>c`cKb#7S=~{n+j(kAFY%6 z-+};uG{<0ar`cDpvsMuYIz>j>9~tF2<}-%-xBH({#RALLa8U1nzOb+b5yPbIu(PRO zND{##Jl!c%FDu!P<(pa(3#d)-#OB;q`^r=d@|yJoEnb!*mM@Pk%hO%CoQTQaV2&hS z>g%w*dj5ZSyF65%NH}HBb`>*3AUZvdaQj?59agc7fi45IkM0C%S}0PMNLtHqQ#_~9-&dtMoSiZe%6qo^^^s8HOWvAC zYiOh1p}>xVKfgK}mSr7>+AaxOS$rH;kEHf^Dkj6WuRXa6a03VxT3I3Mop&{Ol<5O* zeGaMya8k&L4iMAc#=4Ue>CXW3p>@l=dQ~8d=YA|rEHDj`KUbmOvviw$spWfdc3k~S zU1|!TK=iSTEP1s*kekR;Ao&&o81;-zh64%|wi>{ohv=m)AyBiSMFlr*-a4`z+GM)e z#ccpEQJ`LzH!4M@t~Q8SIkV^zb9rGpbnMJ2Xhonmni#k>Zs^3Y5mEJegcVOATobhV zNtu2pe`u&c*IYIS+^dVJc~Otk+71Za8eb1_&1IgpL!Lh@B$hpDjRh_3tmvQlmh&wq z^vuGAs8!?$#c3GMPU~^E<%;Ckr|Y_+Ru0AAoB&Q`Ia^OpP^y)G=du`{8)SulJfg5+ z8W$48^-8B>e5>ruWT`ocT&>6AO~K%7rrS!BIa%6Xer2ECfS}guE-8Vj`nwyvcWln( zv2)_8mPM*&gKP6t)5t6alk}JG7&V$R(!4eyh&+0Ox;;XuBOB%?RD-M&h?rtYl;GS5 ziMxM`Slm<2Z#>V7-Y8;Nf<&%84JLd`F_x#jM*0GBH*EEPa>n2ldr53Rp&L=rv{Xs0 z5nMsLNJ7n9p;9jZ{Jlmoz&|N-Q0WDAu#J+5MV;t>V-b~^Mbvj^s zKQim24?%2}qG56u)T_)N1t%mt-O2nWi35}2DopM}v9{aBdXbnNLCcEjLEj^avgpTW zZ+G1y78d0Bh@6eS>zQTM|1!P)s8;^ehr8onyjJe zOrnxcxS~MRe%k_H-%H=TX}%gvia1}L_D-dM)YuVtj3@UVx3q2 zPmsp=+l9_;Kaww8ABLbP(#;+vm%Xs&Nn*^vSNHJ^TA#zZsYX41ax;yOFD#=%O)cb& zT;n4AP-lffc(#1ag2{7w#Bul>59g~~yZw1Sk_Nf9hRR5=1sA6(q9whrJ-YKvunV+W z70w=g5nl|xiyD2UF{m#tL*<7}5nJQD%u`vUN*{bzDIHjuLnPHF_oBHJZoH$VF~-wu z0T8MKs5gYp%zv+-W4`+J997W|QL^SQ|KiFeaH!$Kwxh82!3b&{{w=?@hmzOG3JA}M zLVn6nQiadLOldGVo1h%M%O45((IKc9yMM*QevSMkJQ4C0=-Yq#oo||k@d)XWna-LW zqAG@`0eFfqTf&N;DV41%;;Y@olDY_93hGHr$+pcVyc`&kJw=rgiJrYaQn7Cz_FBud z#if7yC_>P_v@2F-7Esjad7qBDsAL(r4eDeb-Yu16qn1#;FH=eshcKmYCesp63R1&9{3 zJ!H0dI}1}~R=T6a!nCAqCATjkHT>Fw$8k@Z%8SG{UuI=fAWTxz>V{yg0K=xy9^ z%RfERlV!TwOONdjR>-1eiRczmO!Yg~nE75R_WKHleo`uPTLV{18p}K{@xg2d*z&n& z1$0BlKetMUY?0DP{OqA(jd*o!9ejk%4A!C(J&S{1a?vlsh*_!kkc+Nk?$AB#vvY)b zD!T^YjdVkdk4LJ@p`I+PhzM_=;Dw*cXPM>kk_ z^=J9SaF-zUii|Vv3*)sScyqJQq@3_O{H-oUs@4i+2 zSOUUp2|Ih_)q&Pu#~R8^-vpBS7GE=3JSFiz!)A;S_sdR8Y~H(g7dj3!778)kN^$l# zg55~`IW)5DVKQhvYJ?+@jI`0TN6oyjEKm$1N-Mf&nhY*xx!SOIyDPfrYk2u@MtK`q zX)-`}+p7Ed8n9XHjw4sbT?&&6H=yjXJ-d=Xav6gXfCqFjW_cnb1Rjr*p942xjflha zXv&b$IW;4V#pp~8d#jc? z&!w0)zN3hFrp*sH7_be)B+WX9KIXz?r-6Q+YJ9B@Y+`d$=jiK&4*AX4el9l%4y_PaQGG?=Z`ErqI2R^FJE?_?F>96mO1}YUve*-ru;Xu=vhmpW4#D$PFm=rdh)1 z$&!DkO&eaIHm{04o}RqG-=XD5y%4AF=cD71_DI7sHs&tEY%6O)cOZWYGnLNry#(X& zOqS0!jh)_#g^JBM*cJ5i5-PZ)H~la6vvElYoMUg@MCNtLDun%)149anF8Do;n;i#B z<%_#^%JDIYDJiBK>jwHx-%QTEMIBMKZ!3xRI&ePN@7*NrhAjYb#{F<@JW)JtE2%xj zRu?+d(kd3|Mcpu(Y34*`N(TfJ5+BrTo!sK_16Ch^U z8R&qf?;gDt7F99}0u6*di6@Ds_z)F=V4;s1ISpnt=T)_5yRfYBlh3PTAc8}9llhj{ zzNLFs*GltQ1(DIcsEPLZY#J3FL;YGIw$$TP(~9#={p&mRyLwGzuau!i zddSGypI}({i9qIfKZB-ynAQttJjOXjZyh)(CX;jxk-j5|>A}zOBiA(`d6JsqSkxgX zI?j3;DPct$SEbaEwb1Cb-ySD-vMb{_Tl+yIxCt?+H@m^9Z_W@eX)v1Cj@v%m8F4qr zvxByhW?`rl-hA>PT)k5v^zL3gbBJ30SBfrGCPE)M7csxHBN92k2wXuhgt}Lc=@{Zj zVYA`S2tVdA0%kp0JB!6I*-kzrH(U^A>K=5{)aDClPVYn2;%v{l2|sUUI5n5a`kr9( zjkYTMwsc69)aVot?+i3Xsr(m0Evoevo0)`rY<`^aJ1}C-0CuIhJ59j~eTPBvVK|$^ zbmeV@UVt!D;D@rUS{WGlJ8MF+ebHrw@Mg(y2|R_PH&?LM$Be5gIQm*ai$ye;GMI@L zmhHm~@>m_Lu^y3A$izJ9!2m6miGQdEnmY>B^h* zfbL*X?p>WOERNVLXS1LVqqiG&LaRtuLy4IfH&mUYKiD=OA+j*4cG{!_drc=Bh3yg`ZI`LmECwbh&BtJwy2qPc}_B!8n*se(*wT- zc)g}LR8!5s3~rLI-Q5y0=FG*-ad<6m09wf_-a(V|l-BY3XXzO(6D~JT0&@{rjqjo$u$4X)ltTBM z9IdRSY2isv1*Q_nGs5ILq7Kudek-{y#<(G?_MTfBWAhk*NvoY-`ksH!c#iqfPCHFV zz}T5NQCZwpQXxyph|R!9b6&&hJ2X1d4XtY!BXblz@?0p7;~F&{>x*+dt%&z4dd8i* zYe$jP9knyH`9ZCVfzRxj7T8>vt83qey#Mv(X#(@JV#gBO8;krV+*xZ1L@K|utXn188MS=o+E3Uzq03`^rl%66vC}pm}i8=(^Yo1^LNkX^PkziIR;nI z9Z_S>UEtR*K<4(<0!$Zj=kF5Avm276Nqf1Fi07{|?Gf!mQ z`fAWyuF8G}cjQ%KveQ47{0dcJm=a{`^vol7`_#xX&a5!va%`>UxBE!dMbHkI{mo-9 z+ghSt9&~M<`Zksf?+dncpRf2P{n&CbChZIqpdhR#QI@+Ck>rDJcIoOflK{Nk+m(g> zpVrSEDv~ln&V^Fg!bSd;o0u${)?6=2;R`tAGmG<5bod%@6Zh7QTWvXtFK4BPL|F|t z$`FhMh+(6%brAj<^8FHJD^~%=Kt3ySme>z}lt>TBir*3bCF|JS49Ja~FmhGn!qcGC z(sYh%x`0n?!Trx6`BF)~2SoC>bx>f%;CADC(DUX10cz|1y=Wr@r1%A!>(z>y(AudHO>SMBOkGFc(&bn#%lrKj!r0H zM_eZ8Tar?w?Db2~BF5TOYmMBi^CZR8l`i?#btc-=)$nfCbI6`?(FKwXX7~Sn+Jcau zyH7i%G=(oo zMbizW9SKvGjn)4Z(Evo#16DHaTT;j;C6rM@SriYw57y24%EXw4MN(wpn#!3awPjiG zKPs&K(-8YjS?D&v3>78@(u9j^Uu%czvU*u}GQcwQd>Iowvji<4r|$Um8FEuU_Mc6$ zbvhR2@Y}gKlSnt&=CvTVFdQHwo@=`x~<1o`5{Ts z+0l-PMYTws$AD^<)Szc$k$UD|lmjqz0bhXV%zZ!*F-d7?Pgc~GogLG?9F;T z26oq;1!DcaDT@50jY>k)&+Vg-8 z+uRs+=J{oKn0oW^b&Zx;0_T+`hRTL{3Yau=e~7ULGtn8Q1d~1iG;U~a0Dv>6ltzt_ zx^ba$e)CsOld}_9k}{IEo=}BS*5~)7W}<5wLv?^hG^Sp?lXN1?<#O`p?oOZ@dd%UE z?Od(bWBssY2uzOWh~??>GhcRrYG)mAOWR^3ikoWR!mtHHeH6%|B2adyH`fh!-1G@n zDG3!=wa+Bj>k#xYty?YBxb|KD;{0H!trvFsxaY0l&46Ild&BvA7j9Mb7oyi!c^0)e8EoSl8vjTy%U9fcL8Q^Dm$nNvj5JOM{vRy(XEf2h)lY%KI5!hhVN=Jr- z^gdr1+bcrn4_@1BolnXQwiB}VDBraRlJ)#cqDT9@8dz-cI$3a}xK#Xc>GuG)QRwV} za7|-A_eKpXnxbrw!qR$e?eBNle@~DAHjkB5QrhhKp0c8{(y9 zb%Vv?)#+&VQSfzvvEeRbHl+e3x(RwUYFikDT?%EQt(>Vixr8Q}CTa z*cTR8<_syyn%Co;Cuu0Nj@COgLICL^xt?!e$Jo`42lFnIC|-D zDtzH?wm<35mb@ci!wU0gzmUmAf%AwM=jeG+m*Ufbuc2dQq<8=GFgp#4#y@Ww>zr>= z?e_`7@3iy{@bYg&o)m}sD%-nu=}jHiK@0w~$<5|S^EWQloi;X$8^m5oXlM`Cxs2#| zx+mf5`8AdR{nizNZQYrHuVUOC3|Or&QuvJ|hfr!EAcmm>3R9bW@M#wg-pY`0wK;lb zV)OFdl7h}Ch2tNLUl5Lz`~hQNHF9V>GTsi1o9hW7B*-vWM=GunWdZG5rBTNOm6(wcC|5h zS5}97dBrEl^;BCc>rPk|_Krn_t>Urd)V5w&5hGBM&neiD9G2_U_{k5FbMPx@pt8&p zn?mK5glC*eYRes<&88DJv8M;D>(Zxt(q}F^ew$-(+d;@f;?q5>)8=Z^D@B1{i7e$w z`KU>GVfbg@>Y|ZSDoACJJ?=84Q8HUvz*D#^G{|MWg7T-_Ff3KtMd5Z4wC zKN9WNeCtQ9b(>!+B1v?>#RS=;{(YGVmT%RN{aMwbu23hxhfcuP!#<0=TNWwm_3{BE z1`LNiz9nw1hvu6xmI;nQT*`wy8!>y@-Q~2R;RaLsX0j74v#BM{rpa{wWsGV67eGp5 z_1v{?_Xhy!=W24qyo>coCpudAiv1HQ&nYM`a|Hag{9iDj_A&Y%jHo8-)3eF;P;M@? z_=`_d!JKza6(_-5=Fv_nEfj}z+Y31ACT#`X)PgwvpZzPl&kLt0d*M!=So?7hHCS=y zJdD9T6~GSMR$mq&Aix9N!v@3lr!GfdIdxX!39ITKhmu!S<$EYw%F4}?%FS~lu)!vB z07GFmh~nTc{j4(ukR&F(QlfSWoK2vBnkOMByI#|-<%A_y_a5hBXVu^Ksy41d-a$^D zk$|?(s8;`%*XFNS9^TG$P`CKc`V2P#I78e{*sfk8^HysQM9C5cYIylwMMq=v*poor zK^2_=3l)B~Zb|4AZXU+y{hFjzk7{Hc7zy#PC>5x3sM>!5z;x@?gLl@KCWcW4wxBn4 zBpnsIp(Uz;?D9bsDs2ck$tAaCp$84v{RF zoKg<(Y~5N67rd-9%YY%$nI3x$C>EtSeZfF13AZ$F(VQEM_e|p^!KrBD6e~f~d%1K`ouaBdC_0i`my$iNmqg9pXucLU7c;ez@+N| zLHiACQR*9o1@aBy2QdG$j?gT&xT9-7uI=g{F44^4 z+u0#GI;`-JRk#4esH9ng%T5@#Nh<&fXVBM~{Y7_-OTAfL&q(W;l?53j?#<)O2UNSW zf;hj9y)1{_Hb)6zMaqgjAp26gcK9%CTHmiRK>`)k)ala+XVUEq+ewir^R4x!LXd6}ShXO&<;PmHenvNiA(cO{Ptbu7 zvw<#=tX`wPOTp4Umd#={7~2|GfBJ=77A4JrOr6vc1O=nZS%icpl+l#W!hA@^8T8^F z>^2oto%}T_jV|U||k-CZFE1XSILU{qUl@5w3-CQ{%{aAGfi`tEe@Qt84jh-cqx47{#vGGx>Y3vFkw;=ZB%1E-QG_0bM+ zlTp*NRI&xY*%{~XpDu#>RRi>F> z`&x)wloyLG`n_^7o8M?|j^9gtLi2Bc;)fVh^@gx)@OkZfYtYBIe(ph>)k`kkOLNb@>5F# ziqw(H+^bfnZgP7f=#biVh-aRj{U&C#J*Uop2gB`WxBPX(+bi2tpWo!ysT;+0LZAG3 zY*D-$QA>8C@;Q8Dtg!^_btZ&ZxJze1z(K1@HpQ0m=DVy?60qVJu}*_7-3IW01R=fm^X5M*;%6)RRzwEwuit#v1p#no)yw6{v9qoqeKRA^9b{|3Z=_f95GTaC7*cLE`pA)SEP zBXN#i;VCUkL@eP&xQMQOT!z(0I5TC4Zzj;+ODvGe?nViOKS|x9x>fr5)_6|H_rR^r zoNF;lW~@TC-2?(XKBaSXO$%XQ-$p07=yKo(e@!Q~18%ApL~>_urItS^2EM*~Vn?Z$ zIqfDSd*8qhM50lL{Aikc_e*X3D};)>hregC%bEEhP;K~E0Budjw@Dx;vAde_xxQrm zQFWAdKe&omwyzcIj1D5u9S=7fwMM z%EMX`&L95h0;kQ{5)ooe1JaHk_n5R3yF+jP5Y850bxemVZsn&5+uj=KgORjHu3Ds5 zu+8+I{~c4HstR;If!V%aOwseS$rkuc%|h7H?B{Jz%gj;6?`N{k=y>H)vP!ONsxSop zW}9el6KfHuFrur-YhkeBienL9=X`ZXC+XZnbNpoEdV6~9)y%d+BQcti6E2=Z6xdb& zI-KF+P?pNqqJ>Xd26%!0B~K+^@qMag5XF;(lE$s(#KBGvH{mVSfIgKD*TYi@mj}k9 zk1-&9JY48N6Yrw(mpTC}L%XJ*eDnF@xE!_04d3CcfE6TF$ZviiEE&+0L(&P`sOpX5 zeEzH$HVwMIK(j7!#HnNRvCSq3=Ie$d{`kqAAG~S+IkiHFQ=JmMH>Q4v)&h#}BI(M6 zVYz`?yd4mddE@%X=J4q)S-n(fr4=`_2J0j6e z1(eZoBvVVR=DLioBH)cowV<2DHP6xnl6gtuLPC!^^|G6Ni=MCXrFoHOGJ&yvRbpZg z2*{|K<5MBg%^>v*{O<*ov11PkEgzrkuZgM4Sh?6rt#!Y5C zO>BlX4&9(AF(mphJf!X@Zy4u3I_yWMu*%6t`04I3WMg8@nfWLK=--%;JOy#h41Ymj~fJw?VG&L z(4q%3;iPPVJ$KTVDtjRVC7GwtJ0b{s&3T zgI`cy%p#VN^?AJSR4CXL5pe zy-hK8|6XZY{%MjkX40$%jIGmGkrWA;6#$aS42$3IJM~pS2=^HPz>Upcqa>{{)ocn}~M#cpxe`<23bek_Yk=U}YO z`@9d>p4B;(Oom9bwLMrYNK~WcZ+7h>8{ZfEV8VY_(csShVQunmn{+kFl(}O6k=p6N z0lSzZEM`GionU{r_cCck%z+Bl0I%g2AK1e+ticp!?0w|5KTf^=JRM7TlyqBf>@M7$ z_qr_rn(Y_*Sl0e_@bat)3)v|#J38DOO@%Q_GWVZdQ}8Cq@wje6UU^1M2VFP71KnXe zwrKvHBDK_t>i^Ogu$Crc-!m&_7gxJ>?zpn<(PEL67KB#lTzgP}KhS#){$QN!W8U>U z>ph+p;f>pR+8z3Z|69HLe|{`t4G%6~3kPQZ=9J_wL{92CaHTIF4$|1ydf=k^X#P&_#_0I{s6D`sJLhhS|k)p-c*Y>U8MNvkuP|+-puTQSU zACx{BkbQWs&1>2KdhlyECmk_(5Ol*0FTY&-Yt|RMx1Y2YB*Tp}u2nda1jK~B$1aLl zGrs@wn%!{qSzUdY+WiwHYS(H9!dtr)A7PDm@0XB&zy3i0Q6TuRS0EF4*Duj*iG}$F zWXVf6QtLXB;t_TMJ6Ph_-zvzj|GC7q>EHhUcNW0aZ%g+`KD@8mYvfkG_B>?98jAaIY{q3i@VnJ68@;_ z9`lVtgJyRJgX@?3|8EHZJO97f691ps2KYKmc4ZV)-->{qB5sx{!*r?cpm?*};2~!4 zS9(c&dX(E!rXvF0J>$f^?3AL#n{=yV`kwEGIicx1{#}l>J@310%EDaYQds?lh z>6lfxbb~Ug3j3Iuf%bi(F>Z!(WyPa<#wF!C}~EzKo;_uzfCT?F8HJ68xA!5D`cCz*;&=% z)GlrE7`%~AsL@>XlYj2@sqMY=IsQC@qWWe`@!n{EjcTi0n7C?MM6^hiXJNQJM0hK? zA6~7IcWI_ZCsG=CCT&>%y18my_D4w*>Rw?+qjJrm7;3mer3JEfr+FN|`nBcZ=4kcV z^4ws$L_g8#;pJ2WuH!4atl^1kBhE4J_dlrWus z@7J^yv{P@m@YoWypLWy!=nIv71`(k`-YXN$fvE+RrikAKxTz-1%?2 zP*ecR8X7`!gHxhhry|*5#GZR*Z7m2jo^TrW?UVJ?g%>&|i<Jdk{{$XrHCkA+;yX~$+QuCU z>*d9{ro6azsC^fee9&OdT#&M?6u8bhl)&l@j)bEkEjB2;Fd zU1scJjDGTE<^Gqnn~c_i$}jY%N3;$#a-NtViAOl} zzTNS)LGr7r&ZIijENG&C%7#t#A;D!wPY5{*ZIJR$zQ-MLv%LOlbkCnuJ6?PCO;klgWP|vjBrsS_`{IV+^^W}5$mXu*f;0jPg ziyNltBJBR+v?@`ubmVJRjF0Cy2UXH1>^aJl73w24?sdC1GeS(&QXTsf21?U2L@H&^ zPxO~=RV92SedD6CVevC($7Xu@k882c*0lUULEOOofx=yT+X4qVv1YHW@)COhcR?LA1s zNtsQ2-8;%`!h7OZ9dl+;#A{SP@E77><6CnM66G@bK5?rmF>0}sZr6G zUKJ$Jb;?~3N4~N%-DbykIU;+0K#*~I4jcC@L|3b|I3_0!YxE%}o{S3`3SbQBq->%G zKOSbTOgOxDkbGBdA|pvXowH8_jntV;9afoMek1JgCSG}>)H!OoA7<<@)#zm3Wy4$i ze1_vYCUYP|*19ofR#%FR>gmR{4ffq=TeL@b8Ymg03wv_#^?Qcb` zvF>ZXsgmO1rK)`--%VVc-;GZ2$CWUk(gpe0MDe#-Wj zpDIUDX`GX+Q5NIk&g+{A{C6&#&OR!sK2zeP`dO~#%Chd3F3Lk8$zyl%erDi0-EQ zxEgv3_QyAPpm6!QZ-UCyrSV&rmrD@3hV31vNz|WQ`^)oNlcG(MGa(a~Q#R+N55skb zSj06hd+`jpDW^Y#?Nl1qyn#&2Uk3UL`;_>iw}q?Mwi_nLn;NE_IZa>h_{pYem5e&8 zVVB+WvHKH9<35o@rMIxpqv@UjHd@We;+nVrTc2G1Wi&=n5#Gy6`kCpPzx+T|BL9;W4N9*)*hsA?Etw&cvb z*COLgy{!rz^xRi;36T^)h#c!<-`~2R^S70$o|?Zkcjoz5xyK2$moZ$P+~iSCBvV~2 z_E>}1dGv`;-@N~^Ib`m0A>rgD^QpyOF;P?%q8Kt$T%??#jz)Y7%X80+l~VnAomn5) zndO;D4g2hS%PK}E<8it?GMj{d$~zC2Y<0Np#tbK?iXD{EDf+iKR1@mX98Yxp@-w^m zi99WllsY(EAC)#*pp}sl#&l3I;rY&aAL36)WnFMZhkT7nrn)?Cw^Z~Gi)CncgInTK z`Ab+o-s>E`G=%n<^nTJ|}Xqp=R4J~E+vj-XUip*e7o%5pEa~nB2`t3qMyh=yN{Wu6tAb_K%WP!y)R1r9U1o{V0dIWOsHi+7S0Ar1j30p4CT1nl|iUKEn}ZE%&n? z%Dtncg6kQb{q+?Kxj-z?F|2AF9gXcq4~soke|D^T5qq+m{n>vvlbDMCTMhY6^!Mw@ zDN#)0J#mXE;Tf1zqmg zRn+||9(I>XRr48S^hBFhvwA+)BC&$ycfk&6#cJG(6C^}uj;PILqe5@@x=msEtS7r} zB^}KEik+IE@|#dFnjfLkXv)VJrKnT;i~Mw~P}ObkW0N zVN*Zf^DR^_ylMEt-^(@QJ+r(chdSra3$=ZHzO%KqRS>pN?ohqZ-JA(=-#Kil$UJo` zk8Sd^!OUKUZY5BwWo4Ay?{;o2b$2nY>&a@`;W*{k8xi~d*-3<`rjSp3Q1Tv)suZzw zudF9}`01KG_v=z+7vnLqKmC8>;R4l=j*@}&cN>nDmzXp+$=@$CgdEak-VS~jJ!{zs zRgA(#O%75HrCaGTzDs9cW4^mtUHu9kYo0as#$pCD$380u-TIDhqcY{h5TK5283}#4 z6PBWTX+{zq}m%G91+V zbM0vLsh&jdD|uqWk~aQe4igo2KjOkKVM}6{WOFvJiNSL~qPjopbSA>q$PCtU6dD6v z<*zpWX0zDuN)6YGd+CR-Ti;k|C&ShIMr*>9Yc(LZ+3;TK0z(eY6w3{xl!Pam9?=1Np%(+vJA@-65Zc6C^d2-!ym=(uFjK z$U&J(o>S#1ea!j7I96)At#Pt36R#mFyy;$kxHBy~`Qm1g=6-R}f@TDBHJ2NTPr@U$ zGt*nlwVB3=cy7-nC&dAhtsx+_cVcR=X>-`FsYYM9^voG0_6g`|0$=WPQr3}B`wZ) z*{f&K%X|JyHq(8}wa9qdrvl>x-JB|ShNUl`oxXeb@-87m;imxOzbP1p;gZ3Gu%zmD zjQo>D+J9&Ke}6}x8D3T}C6_`fnqbX6CDIlP%Z4fcMa3NVPkJ|Pr8d6WoHrraDURrR zDZy4G0Z~mO^2-PB;xDz{FYh&O+mKsn+`b1rj7`_7)YjK7JPQsG(5W9rAR&0~jw8R| zNh7rfKhce8SWI2$&Y`}BbsMN9!u~K#W4QBMwB?SA$>!q2$XM^vm^oAG{doUVUj5?l zxtR&1t){mMPBHqFLhf7exH~QrJm`nyA z|K+Rd$?}k@H)A>EIbWV=vc~NuN#Yj>^T*NYsPS93mZ^Yz-WdOc`Jy4&%Lm8h9uYg6-8`@piL*Hc4ArQ9EJsITJ32IdIIq7*xG z4~bE7Xc?wh5>v6yzh(Q}?`%FVn#odZ?!5GTaR)vV|3(fQH>5Y^)|(rzT#T#Ds+;1B zARNe%$mQw(#ok*+wHb9?fGw0#q@_S9#VPJupv8-|IK|!FQlPk%0>$0k-HHZ^1h)_< zE`fvs!975LAj3D`%v!VN?fYkb&%dm@ZnByV}&ZBF;;o`o}8-Y<`7G(kk8IUynNhkCS80a$kC_ruNQ^- z95-x47N$HPPFD>ibIubQ2Y0uDPVA|i_1BQ!dXUWXg9ZKohj}saVL3+GzrN?Y4-%K- z&AxyRhMU?hv|al~bYIQKgAHATbJ*e}XKj6%oS$<}`*~C50Q){<=>AmzI?p?F#ea5S zu6g!#P*s#u2+5rj!VB9>DNxWE<8Pp;p26^JnpNRYOvv~Dxl3pH|9Y2RSMa@gv@VL1 zU55_M5EEVAWdGxrXuk(^H%aY%V$|rQ+C+Hd zZ+m3{ZxYAOHT8D?pzvO#uZni0e@$|wdM1^Fm59b$*}0K=z31j;-@m;+DY8b#b0T|2 zG=!U|p9M%Fm}3c=+?_>STKI~fZ=z~U=BK2rc@*xxK@YxCoWov*I5WC=*}mYs=ctQ z^Q25MX)F1Cx>+7B|H9q`lN{}QJ7g9Z;ncq5`01!&*W^KVJ=WXmQp?)e`-{#DKz5(q zJd1sBbbJD#;s3u^aC@;omZvjWf91wo z!{D!4OM^}ty`S{&KMQMQ=v7Q!id*EZGkJL`4-Vl)IU>|!I|_<8748l#ly~QFC%C$c zX%xh)uahWZw@M62b+ck2y=rDLGv`SW8hvi|o_0Z8-owvW>gf*&b6(aZ?&@=ke=R!j z=r&_Lu}4ok?n@lD)QB|wx{23HNe)t=ssBdmoi$4!kngBh$u!r&2)!Bc)v+d4un{e%>uPj>))za{X^Y!-6-y=#*8nD$e;0`# zy0utzx=(MhdT14KPR5vltVg>MGIv;gH#b^{R);wy9F?75`;YfMI&x3sMPB??3SdJ< zaABBSubXFG-~HLBEmFQ+avb7EH8MS?;G=}7`WA+3{dU=+d$xq17&SCk`Dqs~2s|bA zrz9|7sgzSUAv+)3*eg@q^L$O~i&>6Uw{^=T;pp&x#@A9ZKbtw@M{cF*fcZdF6V;GZ4L`NA0=7RDrRp z*w^#1F`|)lDYCzw28$sea~_IIFhXM@f+>z4ZT;;^+d&8mo3Q=Ys+4jS6lf9Em1S=8T$ugJeoeg!-daM%v;EF@Eze{z9u26+njQ?p zxV~!M)jyeHyy!m)wBmk|mF`DapX<~<^w{rFsN z7EIf{cP;hR?^)fGY8`TW;OQadRuLd6ztWor-Uxj3G_$pTOBIbw@W{pn>kZ$hqbeYG(zv2mmQf4+U)~d-0Qfk`wkloj{JLHGugjH zhVP*PT@CC3o^8t6X`{)buYHf(E${HT=4c7sY>Anbn+HBdu{E8n4~BH<3#gkcA{Ta@ zCYN8dT?&m*m+2v$k_tETZU+XH22^8?vAS5-K}}nEs<{R(e|UBv+zrC+>S)Kst~8_f zv?CGZ=QZvsO(od(;xpEqx|s{zjl*&;?g8nI1NSyZqTN+&ErK@*FQtyCSf>c_^3^pp zUs24NIEEXaoA-G1{9w6=B*8OQ>whS#Mm{HeQc@It1{1+yEKY!JnK)czBqe<%lKSyw zgW|o-k(d=E)AM2kxqqa`-=1AI7J4aFA+@3WlMOqS&_yXps0v|uRAXqI$(@)({dH=@ z$STUy)Ia+pbWn@uZ%q5i`2^UpB2tHJ#O2LxZ_XQ@U2Mw~oIcp%Il5mtbAQK1!=A`zu5@RJC;c!pVUfBlDSojiDE(@tYIzue1ugf>Kv%s;x+C zxZoD)KQ;SYB=cXAC|F^r;zurYJk^lndTjqr#=Mf*Qpt#im;xpL?m_JVLGsnL;zL1! zUAwg)e^)ec%;^$+WLn!1aa1%iDy_QLNHu0qV9Pz3y>5ObOLVf>980x)sl%5-U9|Hv z?8%#$aH_yz=N(9X`vVUjMa(<&g;>5HWYFt!_J~1ES<(X9b6haE-n zc=xi**iKQWESY>~5}5ViVs1M&0-ttA!gSrs%I6>y7E8Wys}LZ(2ONAfMB*vI-Zp!) zoO;VgXu+%^E2Z*=>tKZ-O>rmDDl7lU*Y7-r@X})TDM!{lrjPsYC+${g)h$-UB~Q{X zb}TM0!Fj(v!E|+N^`)0DE=d#HX$453&I7E;pWfy!xAS1V5KhJeMF6TR<<{)_VJxwBzYN3&u;zC=h zikR*1oTAE5ej2RrazdgfrN*J~-a-D&)umDSYwf4c+c7**zbP719Z#Yx$s%w*hpzw* zP;I+>GnIy~3uZ;kuN^%92IKI@Gl_c(Su+)`cN|w$VZV@SFEviq3jzyu5*}wg`G3la z{$HP0^W-G^%cRv+VjXF?Sm~YP$OJF7wQO-OH3d8+E>ahh63zC&cb_h{yO!NO^gFKh zn;(ZQv>qmSj?L2$AQ3_Wz>D^I(US#>%@{%p$em?#qM7lYf96Lp1tb~^4>DAT-{cOz zg}+A*CV5^jH4F9)-PsaNi{&-X9>MR9;=8`#dy0znRvVsW?HDl+dkGuaqyl0lHwB$^ zFB{uxE#iI5w;EaTVkjyoiX66T8#UG;_V#k6xTbik~aCt z>s>P1kZaaq(SL&p?j34(*P8b{{?1zeu?U9bGw1Sy>LSkE^UPi=k$HY@w@*U}6@_)K zPTYgC077wMr@y?{`?$w0oU+D<{U?sou*T10FkyVyL{l|RRB04hEEeIN^$(T;!)T`)~N)1 z&2!*$CfN6rKqwBrwc=}Y?mgoOBR)d)yv~E0l#5>;0b4uqOW>trAB) z+)}_W*yKwHm*rMSen8RFXDH4du*2sWym~8o>jwT`-naJE#z36Kf|NfE5c&6Q{))v% z(4Sh+^*@DL{F>Ej)FkZMKj6vx-c7c1lrtYHh*ccbq<_@%S=zzLIrO^7aT*Hi&60=* z zq?K;_2Ps&K4#fing&dMNOHzC6Z}<3lI?$BWwYRF^*3M?N__gu3gl(CII8CxeIQ#2| zbA8XnFlM=CBehC`F!LNiUm-j-->2_&xkh8;ugdUaSL2Y(J&oJcYE1 z&ao;s*|Dec58Hf&`tLGE3cHTvgH)&0V)4u2&vN};Z?+SqNS#Uqqkm0|;eLF;j;L{Q zFr+1Csa6n!B#8Frst0TR>sfS4p6a*Q$7pkA7W{ajrtUFid~>tslMSn(7%i2ti0KIZ zx|Q4MDiONg^diS)bcEB2-nS+_cA(KF-*vCnR=)_prP?44VgOt>RS+Zxe!$9^c#k#9 zw%u`g$moz`@=po1A-tefj8v-5QLRd@WKpV$|1Ji|Gk=~4^v&I z&{H{1z;qHZN#75~y*w`+$$BUCbQ%>~FaRpFPfr<)YZs~L*G!3vV*fSK>xWo6v{ShI9kCo=*YEY5Wz3~Lc z$p-!M@!;aK<@Mp_X;I%pR;2(9p9~Y*hKtklvgg@GHq&JF;tQ^eW6K}j&R^|a?O|)X zW_*mjg6=h6uhJ;y3TEbIC4g#DTOYXAYHBWAvlbgoojTdr&Jc4z(SBx<>>tb(2E)rf zfcIkuD_2$rKDp2OR#OE`_S$%{ulG|BPH7JO0P(tiyxhJ&xx0Gug5LBN`S@$dKfU`f z7zn@!?FcX!U(KYSe{%Kz>@rb0#aPsv8wp!MJf6W1+rKPdb|f0F+%KH~TvAMMXfy8IUt|Nk&}2m?vpCme3i$Sht!M2gjU z`DZ-LE|4gW=BODBo-AXN_`9Xt7x`yHMTm**Mo56?nm$^AR5r7>UX{ea_Y>O+w_g0QNC z!_MAa1Xb7)w=*tf(b90BQM!>(t?BL7>DeH$E%UFq?iTL}s<6U1PGITY%6X=*6WU|( z@sKp(raoTzpvHf!XAme}lFYlDeQ7#V6P%#>c{st=c#3H#Unzs{!i{15Y&Go z)2&#dxrlIAdNyS;&Ia3h(_CDyZZPlkoh2R8i>5kv-B359N@L36i(Mu6=t=?38H7Da zU1!^EbW_n7w#a557evo~eQOxc9W;k4GJkQ+Iu0n~X_sYZx6EEkS{8eTW4a$B;HeTh zhwbnW-BHO&oLBNO4Fu(<-Sz|QNlDDYtjr=5dZ+dB0zsl94n+iiVbadIy%^lCG|NF} z$*+nT%C4{;G#84qBo)<-z4(S-2O0^`uaAt5{)m-E8jX&OC;E9hIX)2R?nO4OR;F&3 z3yPhvVUIkVCgs6uScABv0oH34eoFXLjhezNKCYCF(@DP^hCKTF8J7l^@_h0#6Qlb# zUP%~8B!B0s4ipZg^Qrjm%`md@fWKipF%_bvZeMCrjr&R= zW=vJiUYL*H(zqmnB*-#(G2qiT%CL*{Hx$87>L1c6qi)?O4+)XOC4gM!GKjUJYZ8Gd zLm9M08)*bIEolb=V1Q2nZpJmDr~+#%u>Y>(0-Nm36z}VE&n(}E`q*xopDQ1Kd~$sF z*qCEn-RcbQHh}dj$F;#ovZ(U40eEceEX@F}rNsGh3O#i%(j4y^Sak?I0BaL)aHD-m z&5Shi>jddn!BvFuJ^u=oXvxLC^L^?;H$L@WE{LPcn<)5KIB{J5mji_syX9KWbRIKN z59Wtd&5LD9V>+HwHDE9#-(%W(d#;&XIL8N@R(}Va{0am&=dg+~?ihcU$IFiMpVREOs>ZFch9F?nrFoQDs zThE3axr6S)2~EZ%Z?E0sQ!{_O*fNe#Q~`X)DU#@EkqK7#Yn7l?$}!%#A#Au@Q?npH zGzJ*5I6STStQa{YzhxLF;_ErsngFoa95pJ}?8-g>C*#N>aIMr1L%6)QYqQjf3YnKH zp1IggJ)_{ZXEa}-i@x3tEO&DiqFioz#+#zjlaK8z-Iqz?*yz8vS)@mWc|>~s=<-ES+-)N0@mi1R(+_7kK+8F{dE-5i6$ajT+!7M!Ga zGQEgnVxYWygM zd&{~1`Buxg1@wv(Lpl$63L$f{zFu#}%?Thil`o=M3d}gj_%8-OKDpT z;BTrj;Sx|)Q}ARu&nA5}H0wtt3HU9q_-oDwtOnG%;|YQ<@%W&u$SRf~-v@E}IXX%X z$9SZ>>@9N8e8LB6W_Zj?-#cTL+xuK(0`uv?nE(8 zP4!KQ9`~inIvYBR`=PAda<}m$0gWPTBbyH19@?q$kx(0$&oR0GlXv%Mm)r>9mrjDU zMrL>DUVp(O_(Xv1ntG!X1tA54EgfoI7}(O#Dg43CWwRtJE6eTBzfXqQhOG0>G<*TD zFyt7c(4xEn94^ts|0|6ZW?bbTuz8xAD>K z{(I0S41FjdglZd6O0OSH-Lfprlqe0fhZ@4}IUD)SL5sg#Vy=#7KMEdIqD=${Pj-xr z;C@eIP4M`plOWkNa?ooDE`5i+UBJNXG=3*`p=TZMeBR$HF?Sd)F_nL}qh4cgG{xVQ zJlk)%SG!vhmKX1EJTvO9lH~N;#jZuI=q!i_RJe2uIN@n~(^Rvur>aY!m5znF;O6rl zp+-p1wr!&m@+tDb<|u2f_v!n|Xi8L4LSDYat>B5+2xzc+k;)0_QG=dsp}9r!`R1gg z(jmqBnwk#GsAu%*SBSKS_VffwNJ?GNAvj7(?NR4OwiXNrv7tX>HpYQ z`WWO!YF|&qfCDnJ86lVN`Q7_(Pfb08BScq;g*Atdn{y=&8PR`$rfxFdJHPR-)n_@~ zRck>pPw^yHcx-++@w<5!gUr{&k9trMs@9p=GjEXl@nw+f&#G!JDVo~}@dS;6r}+?9 zx&(IMr@YG~5)gRVzf_b(=)j?6ANAw|rwRX&A{1rO*L5s|N!YUghTj50?C+CxMPX5$ zankoREAO>){nlOGne8-?b?j1a??%sC<%j4q?i-cR)&Qm@He=(1^C%_-W1U9uR+=Dq z^jmLioYzZ(C4HKfoM*`mHc>ka1Uobn&<#(Ep($?40~J?B&H1Hj?+qD^8~z+ISb9-sKge0o-(76Do(P>Xl{R zQTO%T_PrX=ttE8q7)STScP^8?`px9r&F^vIUPB`>Yvv<<)Ooox?8>?885+f0v+Rx)5p@VjUQY|%l7R=+fM2zDLS!7gN~g+RuuvlB1WJpJ4)BQnLJV*j8C ztxpRDx)PVA57QeU!$I>3ow?RSUCU@Shrxp-)2GII@TE8W{`H`fTqh8;V@Tq9G0l^O zU*`jmCavhkZOe0tc|za7ZO+R)rYeQ9aj1j$*xuk`ZAgM#k@+B>jBQOF?#bM4?>fe} zZrnPf>HoD!-cy6Kjbbwp0A0&AfMh;Hi74~ufdW7~s8g@?k-$M2Cu6h2t}E}PU0}Ms zF^yM6Q>XNkS;Lk*{2hl)$FmT%z}fFfAJ#Q>gRc;%8bO^v%u{%&N#ONxYRr}M7w4!m z2BaZ(8;VWB)I7-*?Lt!Of0n7&HBCJBgZJCH*MFwpEL0ewM?s8=_WjRisx`2+Dz!d^ z?ly0b@vd++ClDW%$Nfy4n(p*>o|>N8cegGzPV0-{w8Y6R-r%rfmQOp8p$YHnS@5C^ zkNo)aFpj~O@gdIXHzlk0JyXJCC|W*Sm!Iu$=1iq1ld#YCfQ24Oe^Tx3YU1x7QFqe7(S4R0ROUra#4z=Gk|*>i9@s|b@tmG))d$#QZ)~n`D_8BR*T2$ZYq6eX+lTo+ z!mbv}cp77r^bU!3c}Z}xyYTmYyAkH!^#ijKRP7-FiF!TtVSvw*DgT3(x*HPJ*c)ol z`1Mm0mF$pnXwl2prB!zBNZ00Pmc?LWOP{gfc*8{pHuh;_pgpG>yIo%k%P^0XyeSLc zbmA|kzNc*fPg=pZBn1Tx)N1OP96{5XwSHK7;^{#~P!H3IT$c9!IVe;CcVIrAZ^WC_`Nik zs~Z~R6nUAK%qD6D;G}w$oHWGKXQSc0b8A>{jj6|W^YnUj6jX*b3X%|{dDPoS2y3Mp ze17?ey+yX_u_d#N#bEpNSJffnFDlB5w|(CQw;seb^y5=r8y=#$;+$3bf@}K3>e71{tG44F>zn$T{d$ajOd_SL+%phK-@i(`IW!nuZ? z9ZLB2a{nXAj+Xq3k=j}!93rzmoZ*=2n0M$#lalkY0A|oB6^j_%D`Kgpji)3IT1?7I zsw%bBh4{XShPM;m);UJ(Hruc6U4hN4>Rtw8O*7?ttnk zlewdwmYqEgKtIQJV=L4bScw{eE-yI`CA+_b`(G1Xn@mxq?3a(y+Jjw17w$h+!}G#P zKz@-dOhG z)~2H&1u8~lagWpzWHj+Bl7dSbwx+KLo=YZ?o2>;rO;w@^CKsqG2tZ-ii?Piu@m75C zx(IS}xt+e3uHJ{w9yYnTWF#-U%B%XJ!BQMI2*n$CHzFN9B37Iw7wGCo#`g#e%@D3AkjY-T2*g(q3Q+b|D-0rn|3s0 zvA{0P>pS8z<23skuriN%BtC_GagsImE4)tiqd|$5G}OpY(%Xx&&^jiaJ%2bSZ?Pfsm~)`9tIA>qS}zqSU&T{LSLhIh|zKr11v20a%hA ztt&$6316han|JCPJCXiU6u^D++qKFQyd)@2ao6RJyyUwOGO2fFU-p^TXqn?!^i+Js zkq!3^r!31KDw?pEj1;&$Et;>doNx5nz8^oWu6S=PM$nVuPt#qL7Gk>Fj(NPX+T(SL zJlDNni7J1)n{wxYASr)Vr;k~)^e(=>e7l0F!~btbkr4K1fp*SQT`?QJr)TXC>GetM zzJ$=L^Q?EWIqfj1Ld|EWQfv}7Z{Llb&Mz(1cU;nH^*>NTBan&wyzH>-l7-gJ1c*rx^IJbLN%fu1|}N>XI@}+kwU7oXiGdV1rWBY#qg|e_e(E z4Brdk<|_tRhR)3mCAl9lrKv+c1^Xxj*fb6To5l~h5eCfP9%MYA);lV|G0y4eK!m>A z`5zZ?O!>`$PuN*ld!3!W`@4lrw#ca*n*|S~zv4s}1@D5P*LuxnZzN9{%6q(jXQ?8@ zXmiO~%u@bKbu;2(brR3}CD1!V9<2l*yI++9J{>!cC=_AQWDTH0u|`t zey^k#-#+7t+JtlD1@)CJF&6Kz;#i+>!(gAgWv%(*JrH&K zSk=%Hr@C1UL^w-ubpB}@sb6=u_{>wc442-8n+qPDA7XKir*?w0?*(TK=NH>;B`5nhB+h;rvw_xIW6P@P?86PZ4uXcv=HuzV@uDvt8&v))x?&FxofVX=(a_ZG& zu3uzFj_l>4sU5n=?@O+(!GJMhPZL(uR1p)?B)W66&GV+lTk1b55NbK& zpKW$zT_5?s?fzLZjtZxJE0y9hTcZj-_qq`c428gf0Uzf21^URC=Seg?j)~r?lQrub zhOpO8>T;|iJjJ_9!*zGc@YytLB2KOIdLEhG{>4HaOh{9%!ll zSQTr#_$yV6pqY@xbvH{Gwb`veRH9y?KxOFB{8=KAI`B$B=~lY%r)66)>}6Eo4JF|@ zU=UL$*9;8SIfngwLw!i)9+9QQbLefK-SPI6*&EZ?XzarRHKwyDd~W`9S72}LOr;F! z0N>^MK&tK0<;t@+6w%roD5075qR$@K``x7ulVZqxaBa3FhLkfYcxN5{h|B+JS}vzh zbj&_$Sj$1mPh-1cwci~@>gpwG$tkwv%7-e=q&}RKh%kig^yhmsGlUvfhbVdW0?|DD zj^>7T(mhj7B^wj2pi4nm><#k!fD!kcJR18NHN<};&j1}(t#?5^X{yk9JU!GIDduk? zTjw@=i8ZY8e{%r{wXIYN^dGlr@VF>QpykB5WAVN2D(+XSr}c}>8e6leDbh%7<1@LJM$NeM!^IL52g6Z{k!TZ4D2U&=;O?AtStv^J8 zH#byF1YP7Q`>LOhtm;xkuAMGbr2O1+Q&QgYCM0egWRtLKbu*Hlb(d^q|5&iI;Mr}g zOGtO#&!SCftg!|KUB?&{eEdLR6Oq@I6_TzQ(Uka1VzRiyXR1DC7&%KIdKp#$n8C05 zo-`p$W0S*}V5}n+Dn4%<$?m)x_84evMyhV@Bf+?zViiguIO00aNm1{z_tbHrgD?So zKvn2zBB{Pd{#Os{`RNxpT)qr&adsH~Vw zN6{1J3&Cz*WFs|2ad9}q+_*Za$|SA{xg>y?hdvv!q8u37P~nuC_`jSwiLHgx6Db2W z-O*$kfB0Mo?LEXvYh)KbAI&McGMg<;XuNE35_Im^6yH`5HX_-a9;+tcBWF*);RTS7 zw{Dp=RaVi(ZH$U*X6k2q2vR4fINehV5d#ea9;k_Pej@7*IbAau2&0KmPI7hDWvdq> zQ7*m{g6Wq%;BE9Dwd^Fl7Y^d&KYr8Am6VqDLU%q<*x|}{+G_<3*ZuOChT3}BOKZks z`zdRIuP$U0-GJQj_zS5xuO_>QP6oRbdFvD;{Lm0z-4AYbzl~k-xQ>>df<1=Ti;q8x zeqG`B+5ze<5Z5cp6sqkn)qh%IHbb{OFV|}kx1X)$G(ccB8@LY&!EZ=y&bw%GR3u19 z209`gRag{}2VtA;hgU^h#ryCdad|f{XR+r#j!ossWIqzD(Q~Zo6!PG!71og%jeI+- zpxi$d2kLge6;H8>QLk1=H%*zBUivLil`Ng!p?ECQrhjQbH)R>fJo6mrDRWzct$R=Ikg+)?w_GSqpik_G#*a9zEIK zre6p}dn}SH1ySv4k?rct?d6)sPFPjKS7p;C0;@7u4D5Fq?`{MS9llX~t07@b$sxSV;r`8(-?GFl zT5<@rV^6L!T)~yCvWfjv7KJu%+t-1b^9-tAOc-slpQs7r=b#8hRoRP`ad=>ikuvDyq6hvGc z0Lp6!--5UPa%&Wo3(PVm?E9pA22azsy*FOGvJ0ga^DWeuh5LCPg*4q3ApoC)j5q2b zc>kFXPQ6{N;E>%_q0De>_V`^4WLNl;yphd>q_ z9ce7B7EN@RNJ!7AI+;6?1akdeX=d>D(gsifCGe(O6c*#}F1KsSCTsO%wS_Vqy+aWRJB%!eHq2-%H2I`jU_D>#(RZL_w&C;e78nK~kB!Zuhg zCach8o%rj;Yy*u>sIH;6G4?yh<99@|-t`!d_*`g(r&>BKRvmPSUDW=BU2e+B{xFNQe0_I=sgF+`G=J3oJk8jZm8|h~j4Hvygy*o5pau26nl)f`J%^qcc)JcG z7{-J6QsQioEI*zc&S;>FhasNHoHY_*GX_3X_Y)Y`X=zlJ|%T5fI z9ZII>ei6iekuBh*THitf`4d4rn(}5>zmZfyz*F)d31GXl6$q_pyuQz z3G?d%S9L+rhIjxPk>2K4rkMmU=fO{X*ZT$P3;Oe&oUi32;om8QGQP+5l5$t_CK_Gj zMhm7bnHk1=&JiRk;Lg^O95eIo2#`9?s^m==k1mk2x@FvJdb-o^Fbw$5J*3XC8W_UW zI89b^qtU_iwW*7B`DaC~{wSlk4NG zjJNj-O3(Xt2t6Csnw5jNtg{m=-aI}!`&hI@f-uy7>YcyR?u0e?nNkOMk=t$RNJSMU zE{T~l-t{UCn3$6^4thzllpVa;48AHVTJr=v_L)sn?hUQ!XnScjy51XgPf$~0B=vLN z_;yz91IfEH!=i4sd8d%t&b+~ex{c?~dL!>kwpQNU?%tNOMK|WWe;W|~lv(f`tcX)_ za#8Fm%YCWRoO-c!*6pvO+4ndCw{m)y!x7p+_Mps@7G8A_9v$6(l=O*Cu=#aBb|VJ* zq9bJVuQ7C%zpHj9xxzR%U@ zuWh_2TYI(W*9jS+`U+9@)Q1nMT$8b}hJ-}nuqNu-H|CkPRESmYlLhEl~#l#eNheNk<;DH$R z7U}?IwEpI9u^O@1SWY43FF4P2!ylU$oKq5%?AVdV?o zvTOh>V#q~J5jLWV97c)2&>;HKwalKr$@QkeVFiWmSSune7C_a^DTlYT#lVvC*Ylb_ zMo9osgWs5YI=fADU&`&4#WeH8!tj7T=Xn1wZdi);;`WCP_x!hty^6+5>pr-ztMrM(TQi*NV#-uSy! zQrtVdG723{2}!Y0-Q)ky?wgzQCokAdD8g&&>NL_E_k(7gA{PPg1syB7B>z?p2lz7} zVA|YpssnGl6ZO19EI*FK^6ar@((D^PA|8h^4X@@vRg))aq_>3x=UJ(D;dUTEVrId6 zBbiF5b86W9DTzM;sH;R_FbLH&U;k7 zcFu9_>j!pB=leTSeZfDWL2VxAZ}n(KtFpfm-97L>+T)UrP#b41Q%iFGHhiJvPr@$b zOzM`))9A3JUp~()RPDU?Gh(=~L8Ed%sF;{Zx~~u*F~Au&A(=JDTv)pQSEF6dY9H<< zNquM4wNLau;s;nIgjr)l1&MQ>X;25sX`Wh|tCaUetp?K&6gKZqYcjo~WNvYcu!dw7 zEJi^7{4$e%=P>noS34EB-CU1;5(?%Um?>BGLLj)0_v0ULFPvj2(V%g=sC@{!@;Cui zNE~H8zbs1!fbR^Lkss7=<9^hW!RauPf}8R|yLtxqKs61K>Z+*ZcR4&)QW=@+ zPm`1w>b04}yWqPo+@?k^W}>TBWmGXb^N&Zfo236`h~llcD>gmP?#kcG!!(I_28@D4Jpl*0>w6(Q)e-fNX-cJun1!C@mq|LS z^@{w`;38zGtF-*@o8O;KR#e^UJs`Lp?4oz!b&qquPGH-g!-%_3Z#YkUTELxE4%!ZJV>2bGL(gttFBj#UQB zc~n$!j6@}(Rn+A&w;W6l!5^$jD|YQcS=ICYKTvUL zOTW@*5!aryczdaL9B6g17-5oX!^jo(t%5#T;M$e|yfEb%Xi<+ShIQu#2DI3|6=T$O zegeDuieV|j!EU|-f72)up%5Ys_qPbtu$O$&)8P6Epc;)THnUS3WPW$3 zx=<%zna88bqfS zKWL;gh~4boncsh{tn`x+I@=ERhIg)dr4`%~1#gG?u><5Cic~XB?G_LC+$JzlSt5Wv zhs@oPtG-4ug$g~gJ)OS&3dSD zY#2vF`A65Ba-y$DW@CLIvaSVgGEZ}yVuOYir&)J-p`BSpz)BfcSsB82pi8o&aw{wWr_rH-N4SeP$WsV+-_v)V+{OPNkaI$-}u*=CU~a1XdK4HJKL`U z4i%tW0Y@Il5fRlT-a_!X_0%$nhhJ7e&KlyXmEHF?+Xd~$#K*KK12A&VrSU3)wC7Jq z@~_V`GKmi$t!6uDlx!-{qv1H#J=u1fhsIl(q;j{Wi3f_fokCcZ@Yuc<38u&#wMMT- z)a$`?u|3H5dk51$R^Jyrc~-7J9Ay#s-(_0{WCLepWE}YbFVyc&1wVO1R~xh_APwG0 z@2to34-lJCd88Td(1k)Gn0#0+))xd8N?R8Q$1GvKIV_5ck>%nHfP@#U(FpO%4S9gd zY)3EKk^}cGf4)F>SHpHYA-p2=i(}WD7Sr+vV4FY0+?hbQHyFPaX|lPLbtELgeFh78 z19WJ!QQS2QoG7whaNy1giUT z%fSML0;k?gkIk1|pobmuGM>Qkn29au$Eq-|!yh<0I+y{!DMZ$uyJ;OkAvd!y0JF!| zYkr??`hdW3&@~fsSehV%q7Jn5?Qmi7jOHx+%I=OYX{}RKUDq;e7Fn7RpyPfFY`ZAU z8lwWjt(`#!uiX#>q+VAmN4yF0yUsr|#LbdHwbw!qNgYBgcCeUnUua#f!&&9{3Rd9D zjXb6&$Pl?UwE6vQ*W7vUzWgd+$*|3)V|>LwyEQP&`{WL+JRyG1%fEGJeTSNR>Gl^w zka^yoViKDn;+|~>aBATL_`RRpKkFpqXGi4g2_t=xbq?+5+qOFi?u-;@C%ooHU1_5< zWizMj={5Msf1k0@bk+k+0Z9c)j$isDCtx+G8_#tJY>G6Rz+Rie~*#A9}OXfLIhdiy8!`_H>ik@dv~!HbsE|7V|g_awdA zQefHr&Mj4E25Uyi)TSXHAgi9YoRS|K+cPv}#CQ25tI+1Xxiko@)3$mecrtvUlax-spmakhMF@ut zD48dE&zPuK=(a{QtybgXt~W=@W@r%~pU9Zt{gw|jt0tdHFLxwC`}>DX{LW2OiQ356*Bd4yKJdlfqKo2LQ0A%qCj$0Mnu7Q!x`RZ5L3(l4 z0lq0;I)g>K<6M8sJUH7o%Zmjkz|Xw~kWhM@r8(EQ@K`gjHHt z*|`%kNP&6rz0HuX>jHA<0)IU7+UafY8vHCRq)Fbx4@albupYtouG|7cJ9k* z#$5%tTm|S>>4d)6QFf+AW2NEme*#Lo;c=1$7^%Pa0&SnK`I=b;&1#wcaR*%gdXp}r zax7-PNB{e1nVD~+qRd-AcS7>+?pCnad9}@HA3X|}Ys75F7bS2cy%7a)_c%g5g5)qK zoZ#ltgDC_th*~FPoF39#5F&FRC{}N2L!<&&i}1~?vm4*)Bh&$j+|}7&bJN3t*X28E z?QDsZnRyc{`6y{)+$&+xv6A@~Q#>p_t@gESrwWwps&~A2PX4RnVe1GrPAQc;yWAFENdbg<9Jhrxj$noD3$Ghtk~*34Uz4Jb8@{`?___IyADsTFcgPT;%2g{~pS=hY_xA4DN9c2H zD>-??yy4ylJ~h=K=U61gDKHHK?#)B7GmTc<>kzVH?zf%-cGGEH7w%t-cz3U#uo&KQmIkTB{|hyB6Y=DlAoDW|C!|e?^j-hJwUtG)GR3e5OnC0P6=rVVTSGy zDGBM2?(V*u|2gMA_nw1a?&teF^8xiIvuDrV@4MdhuDw^#%l9a+>~c#V{`XDzpVK0e z2LWSzmpcae+XHsskRKEF3k2n@XZ-HqF}wg{lzI4qpXzT9V1tQn`_j&J>)HT+nJodv znD^ziqXZMpGc@|~_C+j}K6Eq27egEHzdi8(7sJiW1ik#TO>3Ai_rTZc3J=96 zuIjAjWH(N(S-5u4(1C=imoL`{VY*mppAuhyC`XnaH3N#k-rl|9LXq-NrY7QJV zS#pN|JIQ}mAPk!ggVzUFVbk58yH(5`*bIU5 z?(XhZ4Ep5vVNdwANj~kj9Tu7NbF6C0Fcbgm@dC~qwrhDgvDyuvOq%U)i$A_5;f-l@ zhP?QBd3i*<_B6mMd%jHOuoB$y)bKtVr5BiA1!(BIwQaY^b5Hr>2%Y=`z}I)Tz`#J@ z8O!ihE@7@X^Kb%TwGRCgM2$jAL-Qx$O==TxM80qicCZJ2nX_5Z3SwyTT4)%Y(P9z~GgJ>+-1Y~5^UtU;^<9Bv; zauL(h&@ALiF241T@qS*-#K?$2d>Jiljvr4)pbi{0!!Ze%7K;6T#xPF^5Cjbu>BP|+ z|J*cD$Dd{RRf2G!O0btwRFrgfc8;Vj9ik`5X#N>+I>BRra&EWWbYTH5S`Td=@Q!Kl z4tuTQGlZZEb)TsB;uq`sNY=yl_V(KbcxaTEP-5rv`!!2TOJ7wEm^n7V2sMyAk_3us zjRPw*1SJRH7#2#@S3|0ZM@G6&4pqfDeSFhA-oHxt-!pDaeZ7bgW-V2sN3>ej`vE-|aO$5sx zXW2`)6&QL~+qf@ zr>;AOHK;U$<3q0Z>8>K9C zro&9IXIz0NH;3sDTnmkW6kzQ+*9J8xH)E0`0N#2_+lgNlQi6c_%gK?^*wa(s#+Gtx*-=vBb-NLD;~o)){TFWwf6a>~*IK>`9Og9af!#}(V5xRN5BnqF*u>Z~vt-dQQ?&uVb<=~}nc zrLI`k58jUE#xgQNm!?@B5M?)}dsRyPQqkkTk&o|v4Zwnq%OWM?^()VO4=1Z6K5b6b zjCkwnmzc=O$(2}IOq81c&LkRqN|8tmDLt~-GU&RyF!^?qaF%c8cjpLia-f6TwLDKXdJ}S4u zEqyuh&R$Z`g=>i0MZZ{Iu!h481c>0p@89PwtFyy=Pl*?^jpMph4Ri;biM76NCKqcf zX6CEKtE7@}TbFO@C0$6q87bvUyl_&$(jJbV3D0zXVk#7#XhnQxfq|MdVd&;l6t_`V ziOLh#Myqk*Y^v|+JYGg~Av1t@S{y#K6*(jvRo&#tVt#JOl_2?VT(&(x|9mvF>f`Ps zY4cjt%%%^%BQQo(~ zvfbmxw6=hp^&F&2NSLPEP`JQ&s+y&`$!r_qyZkN9FCzzq|CbckaxmwwhwFEvnX$T= zS9H&vOq~6+MVg2 znK^i%7k3z$~PCx2B$Q7g$iX z0Vh9qDUuNcgX9#E_pfwO@w~NSht=%33}ArlhRVWC=tG-&J9rntz_?&VWg!sk<(Yp_ zs9QBqzgk>EYfF5Y36bM>*%C0tFjCg6H2ZXR59T$WF2S-otsEfkO-n~N9y(DGDvx%b zo?yi9XC;GQv=^&zvelt2JHF0JF1+~I{6H#gESjWM=IT`|u$pKM< zMqPW^6F&@bZTbcVRVBeU?4!z7xrW*1z~AwTNkM7w!IbLHI@+gCg-d*pit6dt)~lJr z%waa(Zx&!})uW@DHP1Po&ZJn7SNGS_jTAEv{wR+++D5iLx+TYgth)m_nLyX{rIP>S zc9k$t*8FpS1gCbGfjac*+H@U1@NTt0i_gtvxB!08uUr}Pr!t1IHgp2=*z~GJxD7S# zCz6Co3K2*+UeXSfG;0b{Q%lv;CV-9F_KmhHp$Uk5dL{-2lYVtaar8DI+GwVoLLJ zE|~pjc~zwg7%GlgRD8)u9v@yfD}!F#UZME;%6lPQ6pEY zAALtT&d0QT#PAwziF`}<7)7=8rxg)-AvyhPUY)kJ0wR+Bnk!5JdkiDrx0;}e{GTr+ zPn3?7_u0y?*al>%QzmsToVTa-OoODQrGJI9ovSuUqtOsFqEP2K8ZfhJlrkzA+K;${ zGpoKC35Y??V>$`F;gz%g>b38WkOybmu_zs9F8iTZw{At!B-AjHJF)=;1fS>>lHqx( zIpd3-Os1<}SA?%ls2!gjh*0LGuMWX;fd!uNXo-=xk&JlB72p_kkk-Q=CCpZrHf{n~ zM(j~hhT2uR^%P%Hw#_9L%ZOLy-2A-N7}#w)`+dR_`~Iz{2Rse;t!p;9m`%+|FeOg& z_7ZPfQ{d*VKb4RY$2m136(jRze~c@)jR_>X`@xD48jH`8kph?1xPOvOJ+ER>!MAFr zzKZ&(ooGd&&S>a{7+R?zNk>8aSF`Fs55s(ws-R6B>e8z)MkV+;|Cwakt@TQnAc_x| zf#bLVGuIdIhJJkSbob68p30gF4OaSTpg&q6!K|LI*7<66w3IrQ-2i)2gSzxNifllZ zA623*e#}vE*ZI5Q{J@ejqv2_U)dVgfVQh{CGPwloIz+vMPj*(;LSVU!oZJEXo1yl1 zIvv~N`S6&?NF%Ft9XzDXjP-ffw#n0e2A>pxUbHIP!wT|E;duEGxn)K+w%+ZWu93{| zkK#KVZjTKN7`_bw@3W0Nw;Qgl#iQYHI8`{k=7Ne*Xa)IHjZAcqMxx_sTJURolCKkf zV)bfSf#JbO-)xpv1({lm8 z2g}7lrsDEz7FVUHT8vt14u$`b$^XZa75z7$hn~3s^j7L~?M-6!*#N(DyNbEkprM|X zDgS+Dq&TohZF_&`t|d*hgt+;_5bzJTI?(X8liGZj@~TLCc1TsRXItXS2z|0G3NUaq z1z_a;z+2`i3t2R(I&A!zNvCK!`E*%Gfm#vDk60~YuNNLimMl7mZbawIm$MvYJ*F#j zSmJkw0crX#;H^#zpzc$JTF(Ubeo%jcMWI<_UFPrP^qYOMX7E|jH)yiFeP4qjTjmct zv_uUY(=Q;r+E2U2H-F^B{ggm?kA1?ytSM|f98-V^7u1Jc64>Sozd=Fu3pk4!%3rv# zH(YRnYLMKqGr1vZ8+JL6MKuu2UjMcu%X@3=JFxn*K4iZuCndF0@m{Y!7exag&fT3B zoJ()rxSUq^vRxko!%tkyvnJ3 zTxRPVl_tvL-?48iI{v}H4`?)?1IDmS^xla>`x;>9Qlro2Cy(jEC`)s~9q4jGD4Z{Y;_ zx;{+WRSp^*V^{*i-}EN*5!O@0)lIeQ^d$4Zg7@bZhWTkARq?{9}|4>qb2xI zZbOi-=Gwn#)8F5Z$Ul2kWp75}6_c3wE;BQTiVSUC(rSHL?LIbX$-Kj*8pAg0UB`|> zIk#sT#L~W@5U=ulGygS#%rJeJ%G+U`}pCJG3LMsD(2I{MRdjbog>k9{gs}n=V zt;se_eL?qw#wc3ZLf34kgC6%j@P1zv)3(C#u*w}O9iD`b_Y3A(*B!nZD$*GV;!QkW zh*mUS`SoQOr|xR6i`~i~hDp6FV|>;!u3T4~wqq#(s^7RX+Y+AmD{EfauDh=7>05s- z>HCdGw+^|3_GZMNOV~IDkq_6F`=s6(wBgHdt(+;}p=V-}IjWWcSJLWiw66g(l1p#`36vuY05FJ_WYF|YT@ylWVWl2}6{x6Z3-47;L1X0)(K6;aw;BGnLD%XhNW@71zYM5Q*Dp&!e`COl+k zJacXCsZlc7KGyqFH8G?+Q5Akxyv*ckUiGN{xj}TSxjjl;(5tmLfKV{9Nxn}!>e8F| z_~}&TJS^wc!`h>Uypn%JbF?eoc}uLNd52|fH|wej55nd{S;gX5;#QpD`0{?CY z-%QE$@@s|b!E=81XR4gC**#UJ(`0t*Dv*+>=;$I7Yqv3ohgSDJK>Y~7((Oo6iuLQp zwSPy4qrH=^mV$Gb z1=$6W?LIHipi~N}{ZKK$rgOcro~-O2w>wHv9^s;*YBsxEl?-(p%pw`SMFew$RYauG zKSS(Ze&`N!SNRUm>L{npv;b%<4@$r;rKc8m4bIh#a^C&UuLQQo7qTeo7h09JUkJW7 zx3m;hW*{^9en1$x%qL9XHR>ni(RWn)Dtn)EcHIsFSh4R;ztC^6g2r z^JXIbJGqYbzqAa*X?JokG{v3%XyzWT=A_Mq@o(+aIoQ0{3s@FhQAUkQ|OTpbXe(!IpJBTF?h^bJ#!DSnj%Up@V2 z8pyK&stUZcK3v7OH(vgbi>9l^;wF;byMtNJ;IQZi=w>NL*^^n<0W zB2RE=a0QjxpL)#z)>T!K-c+_GN9kjH2fu`+s-Cr}_T6vOl#(Dr*xH#qB>hwnr}K3f zJ0<$%*)Q#8#c2L!_+>C5>qVsesn-ai zdbVaukN}T3iawFaXUf}VSs{)U0>Z>#D;eQ5r-?umAI<0R1{r7_W=_48X0Dl@9e}B9v zTy#`Qyda7U3Oylwba*Lc#sCBjh7TVQhoEAi__#v?(NQ2&buTGI+_#+uJg$$vZx<## zqkps2ox-0$voLi!#k;&wb~N5sWwz8azD^czBcZv6y7e3KS`#{PpS|v2pwj7A=C>b3 z0q=ijhzDPAlb_Lqm`_$pch@VPV*7M)D*g>yi+rC`3T;+sXg= zb^KOiF$5b5iC&|2jkOmU1C=|jI2?0th0>o`2F-|C&CO%EH^n5Cfqedw=o9Y3NX!%$ zGTQPD3kv>eCXWkwt>Rf?vZ_E-TL(u&+F&Z#y2(l$Vdq74S&@&C6h0ES0C>^-W=iF} zmxL}$<4aE;+qbEkyF3BWd+IaRTIUe#c!XzibqcG|I>C`r}`SJF{+ZJLH=G+;_ zsR^K$kRp`OZ~_2VKcT8L?}KD*%a{Jo=Br$^0yxyC9wC!n=sW$zqx8Yec)s{nDn0W& z*;yg+>jJ+d;{@i9-49cKDvhqkMihzFh1DEFueR*jpCP_GyV*uMMW5EuVP6NLsizR* zw?T+zNH&h7=d$PN-eSMMBx6 z_`PQGkEB8&7NtsoJqmKPc$?6ubj0y@1S%mZX*1KJX18?_&%|f?yyi=ex z_}aN&9I7=_@0B_Fa-p|_+=p}>_v5P~eX}B@#gqM)o3;DB9Gn=+xr%8*M*-}floDqY zArHs|MtgyGI+0TVh1lm`076=yZ#VcTSc($KY^c4|On7SNr{}zCW=Hab3p0?@wux=7 zE5&8noZRa`d2&y3?{rXspY`k|KMr2rjC~g?m(SG&1C!BlizvB7Ir_^0Og|zn23Vr{ ztCbHsj@OsR6OF!idyv>?NC>Bk3QMN&1l8F1@%OaLZUuqeRvw%=!c(NDz$GqntNz^D zW3yspj(9h4(;I)d&#BC|N04{%v+73r2W%!+#T$lTeX7RAG}Pw_zf-r5Nk%chxz6%m zzE%R?P*CS+`tFqW37xC$nDi#|9)URXD)+oo(HpNAB8yw)40hwmjsm(0K8$@FQi3ak zTgAi-rw6G$v?rukrZIy$1JaD$IZ$`7_M16KeCsY%AFz|3?K!3PrWMcjd}&5c;FR&u z9Wv%`JJR5DjcN5%UP8}}nztCYkCbPp7lEcU#;O&>JN zsCe3Y=zn_a|8)NFl!I9VO*9WP1|Eoq#t-h54t#OGi8R2Ez7*yw=4d>)cmm`g6tWc~5YOmvla!MxX z-ntoX4UG&tq-dw5ZrwX-zT9!DA=mY&895a+>Rp)J`VjV)Z$J;liOMh=?LmV?1SK)n z?%gJ^;d|@Im&q<$tDrW^D>yduKZv%Y3)vmR*g@AbNDuCvL9;Jy7b^1HdXh(h86TAa zYR~livjL5lD9qj$Zu2^;g!L(-@vJb!=(ADF$2Jou?}%qz%f_jNV%VHP%d}lwo;w*BE^$@V$D%OLS3mGT5fT`NsDnfU4S8$f2S{ zpD0>iReX8*N#Yq?+A>C#@a*YpP+=U+ej=BEJg^JURku9ObTw77*B$0XC<|qgeb?fXjMvG)(x)m3o=T z!gShn*JJM|bMYuxP-UVuGmoIZ%eJHkQhRUB7qE1Elq9vrJ*(Gnxj0>W>6mqq6VV~_ zfh_6Q277#wEJ6h*+>2%vZcmyYOzhMj*KMogTH&@tDNFHhRhk??ugzaBi1COu$^=_j zCrzr2=zCao7cV;boV1W{05&#kPHkQybh9N~D8#LGc26>^|DXT^9@YQzl@3E0laUOR z7;J%vGmt`*FA{$+p^|50CcdzE4ZG(?;-_pMOiTrtn2wqYIX=t`mILKu*K+V4dSSU@ z>ifw{8M0`H6P~n|;^=vZe^kAD+Cikv-K-5T-R%g`C234y>+hfeQtG`iTH4Rn4KCnN z8@HDKmQYjX#EE0IIbIPw!MMxM?Dvo(lHvJ<^Nht@aQpwYN8kTfbQYn!S?pCibCOVx zQTKKvh6=7!ZOZxqf@`hTRTyeGnTn-}uD3AEq^4^t8o%d2-dCAr*ybtpW`ItJ^P@?b zPnqK0wypjv!KD z!n($)yCJ}~g;12L#nXBtHYR3KoQ~=nXr@L$>v#GB(iTW#Qs~7~3+>?A^%8ro^2t1Q zcYSdtMvbOUqCyt(EvHSr-1RlPQw8~L9u03!RD`os;shWJt9R~q7+*@AWjWmbnSM}} z^rNyseQ;B)8!nIH4{BYurzKMJyVz=2=%iXnNB`?C05eIL*i*6eDo_Pl{)nLDFz1~? zaRptdaqjxvP@+Is!|}8S`;wIy#V-0+gNr#R#~T7F?9O(d!vcdgo8R+%jCf|O$ zq95+Hk*ZooXNJLV2yPvKulHK+VUxb~Iy(pqoPx|_^Df}l91iOgnRJAm3RSrItt{)1 z7uTP?JHOoaX=rl)^U-!BU!B?GkMI3C1niA|2)oe73%w3fhmcLsO616R2ZA*cfM%^Y zHa*U^?}fa$ZMfGA=DsWi4Qsb-3b0Mm`B1qM-!Dc#lJ}<&-=&_DJ>Hr!Ilw(cmnN(F zpeZg&x;9>6A+UVE84^%$X_ZOgsXUIbA_*@y8lm1eP}ayhjIb%+KcuCq8Zbe8?j4g9AqZ&PBp&pS4-r z)r$aYK>fw#y-jIh8dIzHk_5MA0&%?26%<00kHIQ1EH}|nDwQBV+XX ztxa)2U_@P{*kB(dYaB4s7@oR@9qbp`v1*sY`}NT^&HLLnIiLZX0dQOWw~FDrh{DX{ z#duPk2K~#2)h!QZlJ8zcMh97i43!@CdD#hbKUK-4f@|O-eTm>!mPPs%dT5nT@!Zrmn4*^Rw1Vlo*>RCxPEIiKH#ceh z`gFcNr)g%Q#*T99oCe(Bzu+R@Hz`iBPrMHLm9v^2Big1s_j@={us8x&7^6O_3N)P$ zDhgZCm`lcs{*&<3NX$~QQq)%TdG%U;K_TeGDtn5eCJLCBO*szAmrjXO-K#qB6LAD2 z`Qxg}x5sC1D~W}54UL&+0rpE!#8pC zQ7QwXE0vDwPRe`y8BLxA^HVM}PmsEF0hw@i~wxm3)?hyvNVua z;?wKI%qk5ZWIPb-X}CHpK9M>ST@XbT)fH_N!{^{3o#N*1^Xr7YVa5MsQ9g^NeKbix5rk%}vtNCE-1LwPhx^uN>G|M`Q6{0)LyY!2mL>E{8hzT^CdVU`4POKvjG zA}n8A?Ol<}lK#=AU#1)Kex08{C<8go=dv!qwLQmnqW66}qT846XDbk`U-h^0QjxYH zG3|S~YFJ7;M^+%pThRs{{9L%#0|BSsH@=>qzPKDiNJ-DIZ$~E&uJgEi&C^xcL}c}j ztQiwIG2Oa9sFWVvRLNp6(Of2G=3r$ZI5j#?PMUW$rRz?QhiCLO_`WRnm;3r8_tX$X zsF1$P=Wl@}S1BL&6v#7L9@i33d#kBe?vO$?lPUvKhE|8dr6D=FJQ z56J|0ys>6~sxzB7;*a1j*%>JC%%V_uTb8}VuXxPG`;bRek+=y_i{NcT9E_sxqbR2d zd0AeZ>~d72?=lO1wVA1RZh6S9S@5bTgE8vI^+AsCi#*C*AlE1JOt6t%PU8mSrM`O5wSkLE z_YpmpiU2Iak98l`ktD_>Nid^XWYB+s$p3S9y+`eR@%<>E22{-*HHKy&SiXB zHlnh}63tR-3JYe6Ic#CWm=x6FqZ$T;6cf4#+o<6O2c$Ho;~5nyEn3EcZeb|z&Paz_ z&H3`7uRpiCJ52XOaJZ568`Uw2<23IO+2amLA_^5WV-79Bbs55TiZG+#%|KQigdA6g zLqj;=`pd5|unjgdKhacX{6T1zii=fKTl=P#qTsUyhF&0)5iSaiF(Oagyupm?~ zrC6xsnRoK0DGTHf5ctB^jJX_2%vE;pAxZ0`_H@VQv((e5In9B%g{r>LQ3+FJ^|sCG z6&Ut6Q_<&hvtnc!P&9*hsDgeRX`IlT%>yTc!46ZO@jt1Ag)8&k_F;m<>lU`;=CaU@ zQ|da2Gh+?$+lTiqSR@5qQ=M0~KI=ZY=hGl%bOty*j_^gv6gU}fN20GHAVx|l6Kv(^ zGVPXgxHZLp^kx!JA~ws(4hkU%F?_1TRd%0KS-J7BKYml^V$+Od@`;StL1R}wWR!AXP0{Bp zTJZ8<(C*wUwlW40Q|nwKNoof>2w)AtkJ_DaUoYY^YD?}jd zEHwOdc=AeS&(CWX%K(n?i`h{|w=({d-gSEm%ppJ(CWwhLOZkZu&%w*Chi4hJE9?DY zMgsY28rzl)sD?9nB(OO#{fMcaw4JwNfyTvcHGwZ4`ppNMfyC;j=W8^i7HKEQ&MA=i zMIh}qA(}va)n(K6QbeqfavVMYTJn{PII|zE0`M&(27~JH!yB1shFZgB@0-A<#XfhQ zi}4kt=gs0cxC;73K-csd=aMT*>gM#x!ZX@*iNiv6NM$TaG9>^CVeLRJ1B;^ma&i9oPQ?w(QO~% z4urw4@inC(Wh@O^be7Wd*WK|lar1Lne2bAun^@knApcWOS9OwD z8!q|!A-Ryit4IyzPPhZKygig;xrK}8O!wr^x}uBBnPilEUm)mtm5e&AmSwL}RukSn z=NbRb`5n~K<;6IIuzo2T1B35;P};+ZnJX?#nbj5Yc8W&Nou>PC6BH=ePB7}j^$~V< z?fy@maz)w|K@iwN43!v@dEDDf!0}T_$UrVDY@5VLguOleSBxL*3jo;G&&KuR^dP3# zlXfXQgPQkC7*K3z_96EuUvGjo+vy7P8SX=;qp>#=U~`cm+2{5_HD%E!urEidm}Y7u z*nM~-Q}l`dzy~X_XhujOxaasIO<{>{UvR3*zX23n`Dzp*cm&iX;^dVdWdU=(2{KqH z7xVmi!}Vn!P@3S6aX^>xp+7togqv@ktMED+>qz9XcqbdjQUQ=`rJw7PmlOW&^RtFG zx`09$7Dc|+{jBdfV#tlM{|wo1x#`*Zd4w84v9x3LfkxWrVz;A?kxt~gjolm4_Jr!A zL>Q?#Xw?5eI_v?qavV@nWa3X?6#n0-#W?pIDbLXF1f%EqT+Ea2&U!gdyDi7drEI#K zyi9wfDA0dH5N+cHAWerJc{Kncr|pn}lVfY!=h_3m1h>vGf(>2%WeNv9P1 zxE8ar#cDGTD$6Jxb@LAE=fEoy}Y50)+7K>ReWSQ67og+ClC`!WnXI4ofWK zRt%My$x`Qes2msxm_&ISLzU@IcMkthd-1AFLZR-)W+zRA;(fmtEnpED!d|>CB%N-a zUe+Tc@R{C`X&6(QQG!`58Ib^ZQ8ZQ8tlt^E(A5> zK#NO6$?JC`K0(jUc#35Wp7nYi3Xw+db3)r1&?1W52sThrEw3|Ah^w5hd8lyBdRmBz zUG7*kpI{6Zy0MkkjJT1XJ>$l)G)}tT|H^V#x6D-9Tc4_hp`6?L^P}1*F?IWg(&u&& zf1{8iQMpL&bcy2#(~bC|`@I(nV}>#NGs4JWdA*cO?*I=MB8D@E9oS_qnf{pH+0wfv zDOgXsrqf}`slRhFC1ao!*oSC0q`$kC%b}3H3YGIlMGz~XY^VuP~r8Fc^^hAti=rf~gp+>QO zKeovjF=)Vd|M;|fKwS*AIB+`Y-)wvxr{^39c{eJeWU@|;v5K^)NGZ~fp6HdzBA$uJ zrMkTst`Il;4k=;MiNF#=SG`Ya``&3hPxa(mjl1&aQ$VH?M8{A!Q?Nyjn8^F4Bx*P6e>2-e8BPmXat-Q^J8^zXeu@|2i zY!%Uox_*%K+&t=Vb+7}lyksVVA=E!Nfg%_Ate1y+3H`%n1?89XK2T3y95pUz$49S} zW3ku%QUGlah6BowQi-TBq~-4caCXAbbA5iors2uHRh5r4KgnXUNS*Flaj3Dr1UIE` zp+}NB5<_ojh!*!(9m^g4ho6Gn9yZ0`Fb5bgnqax<6;2tSK?k|JI#fE|jH#vkyTC;@ zA-U_vt9@sl6)taNzN?KS%kCpq`jbN6FN#Hw4>Iqz&dNgBU(~Zk_`&@(7XxfavVOT7 zZHy@w&hkA;faz5~WxuRtA4$at(p3Vqt1M3Egd$g^?Ys^)#2Yt;=Zv^kSXohE0F6Zd z<{*?nRDg5Z{atHtSgADO#W|rIlN70L2@Z&|&XdR>RktHF3@s!OKdviu$g z`$H?n3z^3{Kh}*m2?rbE>$QYp`GmT@{wIm{E?h*fLD6S;xuA|;H8Hz-NjDKG9zJb} z%7Vy-_%29y=^fY_wIX|7yi1lf?3EGB52D_LNh*(qeOmD|RD1P`a6SJ_^fSa{^4{eX zbb}h-jlces+G^y|*$3i+>wxQC+tWcKPF7sd{SE0LcVt8c9pB+z6&4u#sVNMToNa*i zPC*fOR6HlLkL@_Z8Q3l^kg9atN?iFLoiJ;9yx5wRMH5~B)#@i7N!9?3I0`c{ZrOe+6aoC7krVN_hoSZ*Nh zfau$5%dl|NZ&lsTK~OYr+`JozK*C#z+oZYdkMU@udi`7Q$OE&fIDPlLQm?3UUxte9 z`g4hb-fyxaY{Q_BH`<$+a1AgG!uRfdiF=lB1VA|3Xnmv@GD7oRqdp(5Bz$Yx9Yj&m ziN*pWwtw-&p_{`EnOAdlw!Zl_$@=Grou8Cnd=#Oxt`eo9I;RFfr07is&wSrD>ez%m zljyS7NuQI%S?r}x75%Mt?`OAArwr^lRg`D2K^g11C+J){gX1M{UZ`u`zdK43e4g~J zrT8U|;Bzgj>#O62%_v#6Jf%-?xN96+Z%qsKlMRxY6N&oArCUHw0g#agi@_%mXMi(0 zJR}{V7$@qtjvkgygpwrJXm3aB1tXQVel!U*3nr#Gks2@+T4ZK+2VF6w@Ktf|ViA>O z^zwImo&z&B^7+GnFrkljG|!j$7**Wrna92O$v02Lo=5d9N~U#f;wiT|ODoDL;^RBx zel1B*Uun7fg+XsrOv?WiXJXg#5w)`NA<0nRaaFYm z_f-a(d|IG0IAFc1eS2XSM5UC25*tj8&WHX2-ybIkX}2YYyA0s*BCc$8aWL1a`}Rz( zvIz-?F|0OO*vA`RKN@3_$B}MtdJ+i&o(%iiMu&O-EQ>fAIj_`fWkW4+ z#Af$AyigVT8c#i!AnAKr?WKU6Z>A8Vw0P;dCj?m9bBFGH2VpP%OauCkRo%Y~j`C)3 z^hd8PW`Nk2NW9S05hqdrP6Zc*i_Khaxn%B$O&zQbZVF$YDq0@H7QwZO`Wuq1uTS_pf%r(LPN`Kd>=9B=?jHST9Mu3(wF70v`}TuW3Iz8&G&qBt=bQif3s z37oBD?#?QhJ^_1aD?S>dDPZLb_l)N=OikE5h_Zi#BOsvOJnR{90&b)C1cV!J)Nasf z@9XoK32~_2=k5JX8=r|SAXi}6s(c@7!y*h?qZ%9MGuPe$@2C=7%is1>dF#w*y-6_x zWwi=^$^Z(azU*?hL-@3`?xZ=GV1tHT%GDc8;W*I65w$TQ_HOD8OwAi@R9RV>r%QOe z*aFqq8K`)nXcY&OB_z+^D#?9KCD-l5@W%61pT}!uUaZXL5PW!R6wdV*Nx{@S5jlYL z!vH-}h>Nk{hdc9>$NS=hC?$Yrp{)<1g=>auT{5c!sUw#Jw*!`&Ptkdsd|5U!wjO7= zp|$Wo;`#|hF>>Lbl!CU2xbLSQ%p2dak&>UI`=ZTIu9KekS|x1^R%g=m|wwMWb|r!03}+BP@?IpGgh=H?()AM}uuxr{I2 z$0laUx+k&-4TO5X)hfg7fay1_(lRJbDAQSVE1v?*vpYpS#jncBs1O<%wtKz-Lg4OvfmFULDhoyH~h#=T&pMx-Mr!BQXkKC4q23A8QCO@umpvI@a(%>b;H z#GMCr7?dH+nlLW*?zUw7Gm6({R=cu&;y#`WzTwt)Cj>4Mz4cd?kKa2OSTY&*EF*iJ?SRzYRd6fO~bx0p__FF^o>d`Bno;UiZtt~jmoxkF0n*ogwx-b^`RoKH}sJ_jkCxK|t*d z2E+)x=N|>`rL2P^EOSqx#8V&trhs7al?P4XXmozqSqa+Kx0N3?Z`F%%>ada4n9-_C&dPH22Ha-=N!V zk(1)AeUSE|7U)v!NV{=A|M|7eec9bXIjU#dgvLQ0M*@zECDmOwog-d58Cg%K9hS&P zvwp%~YMcQb&xz~HnQI{S(#^p--YXZ%83R<*AcLtLIltoyZW}8ynk@6L1z;l`K?$xY zt{{&$Xqj;P6SC7N07`86azH`wQ0+#|gI}^2qn=E$CIAw?9luc-v!4p5ALCf8kYqPF zSYzUuH8C)9aL5VH{(()je8K5sYTY*xu;K)mh2@C>`hzJD&*obumbw!jDVF*&wDaK} zMJ)pDdKeX1^CO{1=ECEvx@f(8uU=Q=Goxly4{-7rE36La?W}+{iG5Tu^mZay>4C32 zlOZh{xjzf0lXtHZAoN2w-@+_To%vxTuo%ZcW7!k3+K5X=>xLEuKpj}^Ep&2J2i9sH zP>wvR%EA4B8#q8a&WPNelP|;B{9KOHSr50z&xnUpw8V)A6Ske2ygZpb&E07NTj-#Q zXP|G)RS+R{7M3oqHryKch?*H0eZUxoF?x}NQg!6L6+Lp=zs_5|Gn^?IUP-t0NfHTR z<#JjZx*%*`5R~bQEZ5rOMH;u{h;_a;Gkiu7;bilDjq9$)qS!<975(9Vv;$wZ);@oq zy~Au~Nm(3Rp(A%~eD?ZObM1sB=|2TBxq>L*n(#}lwBn;JIrG@HLGTHh_7$}(dgXSqB{u4VFl&9jz#b-pTZG%;SiwwSyQs1e)U`9Ov+qI%n^Oq`EWckY57e@{J0j+k%M-N8{yCs(tf_oq zx$@LweG{2s`#as}ZW5Q1Hh%aHHV4{nK4@~-)liwhe;5a+N)q;evN;7w=<3Zv-(GHU zpVyXy^Doi+ZQ=ttg@xVvuDfVD2uH1CX2!i=7?i6w3HMT3!C-1L$W8=97`~HHyW39U zW|XJtP>ACbsKmdPn`vCnY)Ns?dpFpieEnMu+uocz(4II0d60wxx)VM^zU(({6ZWnh zNMwkY*t}WEkB%vw2XSsszPVh!J*thETjyNJcf~Z07jJhYodMRhd5T&ZVC4+M^}5lX z+Ia6LofcV_@7h8_-hKrXbj!U5L=i{_ptNhh&>@?B?yw}ceqL06dh}C4_n(5oI4Tu3VOo0m~)QrZNzg0G4 z3+yz;;|p2hKD1IPVftqv;5HIPBnEX2)+lz7j=S25#B`rc+ImavGjK0kcUc5AqcZg2 z87-5pA(ahbq#EoW$elLL@Ul6QYliy6PzO|EXbF!sa>`k4Lg;+MB+dKGyy^t6U=Ana z^AD>w$V9#1FAt@@T2E@jJTxB$>FdgmPgptw18f&B;hdS%BO)_v_`{8NKaSeQhB!?m zxAai|yhtt4Ckvsr6EdcR=u%6Db=M<_R3NugdGG#JFwEW8Ib@(Y?PanQmJOmwE(Xd1 zXD0}{Xwbq&KoFL+Nqb0VFw67|awO6q*zZpii+8BuQsBUw?s!NIMK=xBm3#sxtyYX% zSkFQ=C%?M#s`qJs05^i?HNhEW>MjGK^4BK{359~6tuLY9qNw8fUbt-O&d-{pWFy!A zlE&Nq9TrswNG$L4svS%9oX2R{v1b{?&`~TccRoPl~U;fr<+%`z`LAj%1z;ejjr z3l7gmz7Fwq>UhHcit(gM^@QJIxUljS^iJtB<5qYj*Oqc3!TQn!C1W}Nda9rY@uVTI z`@!4wUteCDZae%9yR_luLj6BA8_Bn6%N=$I7-K8Hl7_U_^oKnKp-7p(9B7@ad_%tA zxWxj=i;mKRJj)5Pd5Af#_7$j=CLVH68iLjxk~TQ5l7t`(NJ9(3fjwq+1SItHWYnh= za89Cw)nWAo2Xy`BjtY}z*Vd;O_D1ll%?V_<*pL-+>NSvfdt1u~9w?2blSe8woc7pk zw3FC`7?UX*Ky__>^}tmX$~z|V=(wV)zCE%{Mz@2jKOF~cuN>`skfACv9AI2Sk}~-B8Sx~?~JrD zd;XbBIIoz1{qbWo@k}X9%4PnW(3=(Ix2ncF3k1^!MFc*Rdc~ViCsA}tx~ks~b=Y2W zVBcxqtTBu>D=yxwjrb2`yRagQU7^ziXQerY>C{AFwfuVa>*5>EDlw|yl!v33mtP{bx%hKwKrP#UCbLD8y!r2z z`3nD5mFY+5Lx<-FZ@lWqYo29mASY{Dz}wtCBTcrkvsguP^rdHDFmLVZ7}?c;H`2W*P0W zwpFto#+!zlh#OOXxoM-bJzbX>uUcq3Uq~mPi0|MC^vzHGSB5eraXgk1-el;Z(jxA0 z0sUzHVyiQf->BLDZQL%Il@s{4aS)qTvl|Kna+ybU9s9+d7a}Dk*wD4%@8S%+-7MLi zdwy$+IPno+j~9fY9ggY#$Bgv+_BmCLf4^mBBt(*_-YuJ{joF~mPPkXCS<`mF{?#Tn zJUgtfERXNsB%4EgaZ6VHncP4PmrAkqfRyJK8IY+L=MS0y z?Lt1SA?4AINQ9WJEaBcupxp)<8Wu#)O=URN1|nn$gQ0pZ%ijND?kxkNiu!P0gANG^ z0RaK&66qX46af)Xx`qbn&H2L3RxO=Y>P+9~)-LC0Xbz`~kqiBhLtQmR$rHIYL?0Uf_GYF9DRH3Bu%<{3bF|$mj zpEy`@f-g3pfPzZFTT1%r1-Xkn9poXf(n>XVgu=pwGbKGo+11#|2VCFgA1J#-L(-W< zs#Fx~o%eu#2f!pitIYZ~8jMzw&o_VHNka8p3=*_*`tDXKoOlCHe9EH$*1pS!6QAX? zt@&ZT>-ucsE8H^bul!-ca;g7<4MhIH2FsO%^nl%{8nFMaSJ?UrOg}G`eQip|fS``# z#S;*;1gw2TKXBBC2@$C2q+}id^5QI@sWs1d<=VzYevC%gMq{o#h03?s42I3rUF-;1rJJgHr=Z{9 zVHovWuF-^>k(r{NtZ`I)GXo+|AxEM9j#BAOLxf-DNVBT+>BNKip0rP-EX;$ODlt8{ z)QbRX(V4KNIb=CKmu3#QTWdgoyf!GI_ zM|d9h)U7BEx~MvVwN{joxEK8g9`-wV{`bz%A0B}~2k=xy`zPR`Be=_-l#@vtkaAk6 z<0;1iA|6F$xRKl=uJ2D60>a6k@BYUo;Bt0Fyp70>m7;YuZjuJ_dk(wr*8?TwO98x_ z8QNEh71%!`MbJ&i9KyYhyZ43zT9}y0uE&`f;E!Y3ueP3I-JRJ{Cq>B;fz>l>iiNkt%s zclj0KYjFD}!sf_8MMhOU__-CeWo2+I-?WfT20~`K&DS$s%p|AIZt`h1%TOryhTO&S zvPa?S-1V~lg9MNFFfOMb_dXk5taO64!1CPnY`;Ld=-KPTR{a4Pc`bG1Pn7FEe65~q zjo(x|$*^JF)kO7Ql!wxv??f#^`i9hq)JDwnXC7OmQ~ETL*Ud;fsx6P?{SVex5U4<+`9^&(%5Mpv%cB6DG%rP!|D zk3C8LEj_a@Z^+%@4Mod*W0@x;4higF3x*CXl>#^Nd<_rh% z-7*AhIa5G_1;^{p_jmquBhD8CKy2?6mQ3`s*}1KZAWb(I)EFiS=hd||}r0oL%(-1@d%XMcdk@!_)0FW!= zF{NuYL*kDNhIC@y9=x-VDKh%od$&}hY+OTHIn5^OwDgP)kUQ1$fKM9Cxze5z=PY)@ z0CS7>Zy!M0(*;&Q?g{5*xqCTN7l*660Mt`9*7t(G;RXN-w5$)t3se_y>ce|y0nF{# zkF*yc-bpLS&ccrdx%eJ3WeC853U-yH#POTNd9uvu&iYZJa~8#qlp%QZbWejI6&Lt= zTbqy|KD1Y>BzgjzxZ^tc^xKFE*4KMUV=x?A| zc1H^!Xb3kT%+PTWmHMjp;|1#pxzu&rU#0`4b8<)>TS=w6gV(m?X_grgbkd@faH&?O z_7RaLN1Zuf9nlX7e`uV*Cm&rk|MLY;%=Br< z*-4+s$^+MTm5OfEW`0KUVrWwo%dyKzeALnrrdC|AJvvTcdI>>Q1v?uB;@-3>SI=xt z8!;ji#kw>IBE0|9MI#-WO=@@VG$#vx&{`n{v^?Yg4K0rci>LMFt#6M?k%gs?c*^Y6 z-DL^~d&8V^AhKh!ZcL(@-{i>MsU5_wyj`MDQA?WhopVM8AC7E6SM@Jp(Dl-{q8-n4xrgJkz)5ymXmYXDaPvsW2})>f#0s{^F*&5};@QYbs%W!=Blu`c? z2CG${3H1I}9(dxTf{cf40VvF`#mgp?ShRh_@+kN~c`SC|{4u>z<=C&4Gd4IZ7uzVyU0v- z^OKFL0Tgt01fj^DX?{NEs#+_{s<<`)#NDhzjx*i=!3YRHuAIcz;d|+g;mk>)oq(-> zREiK$%nBFVT3OMomMP(z$&xw80Lbo$<6;*-MD7+XP*%t=N3}12-m{n7qYKxSA}y)h z+_AJfniap8eShA*<=(|S#2VI zS8f1ovoGLD@#wu($sC}Iu4uLL2;h)~VXe39)$9AGKl~G_6LDEs-TT;)+>b0=>?uj8 zl)fFpcCt7TXoF=(epabvky>5_*k~?@*&{P+gi7QjLdgZr&+`~Fq z;}XE8=@Cw~4IEuHJRdS9|Csy^F+PB==rD(AK>e?G0b;WF%Yk1Xx3M0G(QUJ@z8f9w-;6XGz!pC5nsS z*@@gqQs8rbtnki)H5FP^Efc!^$z|m;AD+$^VO#hb&@(!DC`(8d?h&7pP?*6Rz!2K~ zU^baozxO>w_V4Eb+XF#W&1f&c(==QXem z;Ii{n=D$~k^)qD8R+vnwy7x&#GU?D4>gbd(IgNJ`2ML=MIrN_gLfLxlfJdeZv^pnp z%>02B;PWmX@BP9R7*syW5V;cMkBavwD!A|fEh@dDU;VvvU6iYKppbHv1VVSoi1?{Q zt%8RpbzGrD;V(ru79_ReD)K z;SMfU_@6Bg<9jaWG$&9Z9l$%rm1%KaNE^RsBq3V((v$;BkPJ< zUKnUSM|0MwI>05%{2I`Dj*^FiZ%RE+(%iUR9dr4a`@&Oq(6T~0T zLH<-v;fiB3#f`E9*or+i@x?3;GXd|;*>zk?gf(})B)LEmPq>n9? zctM~~CfKaqG6+}s<-uSS9{#)^$RN$o?qT_<*)DSAP7iE)H!f?!4P42FkDWCiloI}Z zyHa>NPz7*Ir80w^x~CVwKOnjU=RwzoBynwBi``mv|bheX+1j zza0KMB_l~$o*jYQ z@l!bKX$6S1C?)vu8J;dcYx&K|^rxl36K2fD;h)Gx{TN_1IC@tvi_MCC2HyC1*&nbM~LHiGcg5u(@6UE2783az2hbTh{sAG)b{pW zZ@EFInLTy+;Q>ks7e^*LQvLxThHnzzjLJCfe-v*69Hyk# zZUKts75{JFhfpBosmsKxKZsfawPJjyq6&3z%9r7vUo3ECE&sSG!xAH(?|E7~W*?kh z0v6rCwe~z$Ws8|yC_5wo*h%IRW3h#>hLjwSO7fSJE#t}-0^457;fsfSZ>xkqL-g0M z%!tTT)@GPt6qu`1AP|soPaxnMxlmCY#4oz;{d{k~^NYtiF40k^JAfs126%pGN0>T4 zzh?X#b4L^{4k#*ifL0O{)sNjPF49){@@fh6*-Ach4|;=9+TQ>0cc!Y4EKq{Fl2ie6 z*$rCFeaWCLfcLHMMZURq2q)H8peCCu2ZB%_;{e-Fc0aZOh{OPE&)@H6WR6NX1_^f zlvf(=&Ok$KmL*oo6lf<`)b4zh4c-N$%7w4=&;j+2#_s`yoSUqJ^xXT@PPhKu3h$+r)odq4dbhBq6aa5ZBmhEd+^=9 zkvC>x!z|u@%XKpZ8RnEI+`H4tFA~4AEHTq7%sS7mU6TC|rC0htPO-7W!c4&Vr2#7; z_dO)``2xg|X#pzk+qvXFnt+T!%Wn$6_HZG3>rJ`{Z*H9_WhXi7`(*EN=6mqaU1oE2 zsg=P#Umlh!*t%;AzivH2oyDp4f1%6&yTu3CK4`r7Y80NrnStNR zMW|VOAG=#bq&>5|QjMbhoZpMwEmLg}n#DgZvQK3LBR18=ChiN_*YD10qY=$;h!z+dxfR|8zXR7QN z4p<^;1`^meE8wvM8$tYb@Q}No4F?>x4M0<-ogTYyU3N|iUc?Av+;*o0*sN7!#+&{o z=Y7Dlv->l4v(toeet(~MNdsX(XR$q$6e53MR~#RcHh2Wwi#^+^6u0cso!RR2+8Xi8 z_&UqUe|U23@2g>H+22o;{@3O8SSwAA^7VxI&HjFOfn`gL_BOsw{^7XwzpfGe`q`bS zmpDAf|GGpzS=vo)5q19<>1h|dR~@r1`-xJNf7e;d;y+-OmL1jG{`~u$0PJ;f zAL`cUxV^dl$7X-L@TS(mvAoTes*L zR=v_4^2+)_MEQ%z|Ho_lXN)?Mo&&!($+cpw=pS!K;-3LaY%q-c`-2n68`iPGYFvhJ z>99Y|a^O3+aXmCE36QhHx}|$AQsTh!nm57y*|YQNdyfjflO9vVG4m@gYY$G#IZ)X) zq+ohZMvkif=iEb^`!@<{rMrI_f&b=he2u}gGa}P*ueDZT`TM9c|9>0zzkJgFFUA^p zws<#<2HySs9hm0A7n_ z!8O-;RroSpgRK(}hWostcNfio`6gX1I2U+zSZCC%aEYRQ zo#>)E_Xa|o2vSfw=Yz0a_|jGUylUDsI`j~&IIpg~xfK3LO~oBWG@dE4eCl(PAX9i_9 z@gt?uP|F2R+rzeo`lKyP;?c~9XykiRAUHmI)+g3&QO9;9o4*MzRc~|ZPPe;$5<0Rh zeP6C8+2=Nar;3Fj%aZC;p1!X8z}bnn)=g>iNh8|b%ZB1~jbnR+7=iA5TZOb6zQV?V zmTko+6NWVGLxgm7MM6;R6>eh4XaYE{{uo*daP)RnTdV@&MYoZw|;CS^( zi`Y?tlF~9$zn)VqyP@{M8YOAbl0EQ}`lKMtUh~{rA>av|B;bkq6pl%m(KT{N?TkF4 z*c~i(WRd~#r?B8~8@+7eyU-O-qaM$nR>9;f$uuqcw>ig%?<*qaY91Dy*43>jBHS6eQL>e86N&4PA+puGN6tFHSerkMiHjp@Q@__H)m z^>)ojLpMQ}AtRkjU-QfBiqcqk!S(6YV9e+HrSS){>;BZX+~NvU1*OevDW%86$s@CWcVH*{ZXDY+ zPr6>M+rAz(I+SXtHa9$TeLQ0pe5`krFVwPrUImf$uMjb>UXBn=X^@~a89@^|KB6>| zq#M<461aLRc5(1xLGo^qD5X@hiiCJ@(A{F|VLeqXLkr7zjK);h)muM9kg9!az?ytQ z9#puEQISqqTJ`u17~buW6kXbEYHu~uU(9VSO6Z|wD9f@A1%=39<_3>gO3Ddp4jr)? zw)||DvPgKZrkB#xA{g>-*C{`mJIo{BR?S-{9I~4WDXNF`DA`V%)7j2d%Cf4a%;BmZ zQCGA^zpxPTKtI;6@+lLx`87c+T$ufy#Z~slBh^tG(9>vh?OyORcvWeVSe{Qo-*Ed&#z_oN;-bmaVL};+aX#T%YBj!b3dhaD`EQcW=x?Gs5JG+ACt( z8IfqZ(3qL}Ljh4cX?|vZQZ_A~G^+9reqSQ)pR}2Q{ZVETcy4rFAkio1%8rOP zh(DE5^#kBMN!|5iuy|3$q zWwC7^%HS5GFv}i(?UTz*63(6G`WD1xFKX;NeU(SDOB`G$t9wNJ*IuPVt($a%KTf%& zvprZ3T_3k%96~*AqL6@zyv0N)wlWaTd@V~M2U9xu&eNt#nY8j68p7)B7lhjRC4;x8 z^Z2nDA#;Q4k#@VkKh-N^>*@f@} zxU>zY5dD{5=sx>q_l#emF#^s(Dp@jpK)Rk80=Ym1YA9~6`>BOYtt($?vzutVxLgpM zww`!`@+>7N&Gi0ZHffuu;F38&_J|lb)mCy!hfc;czD%!XiZ<+gwl}&Fw@5fiTjO-@ z=uFJ`hMrZU}RDm9&~fV zUwgsnv-9jQW7Fl-OsV31`@tyjWxxJX?+fYMs-nh;?@j#rCY8I6P3$i02%!gulJ=a? zgPtNtwDJZb{9Bj(Lbc|U805{N-t1V@oDy1QU8mw^-qd?Z$bR;wWyqXAGYc)3yTj;l@>XU93LzfZE`12 zbBLSofDZg(?mU-!7xPYwvG)I8TsTP1vq&)o5sH(+h$oC?mk+4@adFhe)(D~oRmXABtL=O#!aXmeGi|s#Y4vNZ z+rLGhbU5wJxvE@Lx4(11_|#iZX{3w2|HuojlfW2$L7_x?%0C1=Fl=xsQh6Z#Yhx5l z<=}8}9Spa32s*v5<&4A5urFw9MB`tPD(28S0;XLMq+4H5wJrd=N1XGfOZ2d*q%+9m z(_t;9;ds1g(azj@ilV?sKjQhw9tm=4RAYinpsvp1Wo<8QIX8zAzOYlM zW}qVl9~e}bm(Tki^V=6>O3XHC&s)}XF)m^rzaCXEyb@0iATKwv;QRfGJwjwRX^)s#cYGb^El_WK#)BHXRs5ab!1i20hBzHU1! z2k2{Y0%?$>{cge8aXYSl*ck$`nB~KZUj9J`yApjE@R`R@2#ynQQl*mibbMo&uZCva zG6Za6H4UVK1@#Mc8u@NP&$>a`)ywxSKZJ5Z9UX@1$L*`WOxOcd;f5K)q#h9YR<+ON9n^VS!)&?a zfi3&_;d@L%EL&s2&iceyPv*u)y9lc(c12yJq#+ zLFppj@eK{EW$Vye)cfs42c7t^5uMm0nS+-qX-WD-k;Qq9Ba=f^vweEtuV@+|ho~GJ%Z8~i1>9oz^NFfza zD<*!sQ#Yuv5&gH5zGa}~DX8{J0hBK#S9VF*21)1ftYLI&BgAz#_t164w(YB?dI@FIuN%oLUh15&Zb(Azsf${D6ne3R{8C0TbUoxk6$yG{O<5Nm^X-g9?14g_g?UDj8gx!Xc*V8Zf!(`b`YtTJlM(V@}P!gUj|f=tt+ z@DJ0gG!7ggsVMPY1_=&cl%`1|z5@Ja!?@r$#yHfYVf zglDz?xs=6F(CVQl5BS-otNY{;tB6Clbvn6B*pOu?{PHAKL|O{W{wBrRtS_qS=W|fq z?VHP3zb9^x3z9zLT!~TEt42p>?toTLaa^k54CCbNDQV0-FV7q5E=IXZf{LN;>9zL` z>3Zdps8WK88igCT_h|Z^T1Lz;&an^IN)sI@r86RlKg}cn-E$tyZ@;&|4vrni2^!d1 z^?iP|z$S^D5m^B&zRE3b)d~K;U@uiO?q?5Oo==)@c3BREpdXx_-9oUS%g=f$ zfCHOiMz2SIc=Q-7KQQ_^v@zRZm0cHD(Mltu9sC<`)_jCf45Cx-?`=CWn(TQ<^*tG1Hny9Xm_NQTU_HEW@Swh2w% zf}zjBBA(6jhw0gRVIKB-X92C`p*&gqm*fz4#$O6{>f2>{HaC7qHbmV!Uli}TaN*Wx z!_L(ob^MA~z8pfq7k(1Y!M#1Eyq)(|JR>zVOV2zd4`q`)sDD zkwx;nS4F1J6hQLcmJZIDpGXsNAg4Iis&|;7KZk zXTNe2*r%zyF>{l(=Xid7N$ZQAV+?RlpFPZN?%zz}IQ9A_4P!>5>bhc8H$(%k{;*g&qF~7*C1X!`|k0*SgV{t=Ac+ zVry6^>j@r&K7ga(Eh zTmPGoHbI{x`iU~b-s6&|@TnQPn|8!K)K%S z5tZdmGS|RrvAU-!ikU6Hxb8YDtKqBS58X7Z`Oaj+C6(rgnA(QXTd6G1Iz0yzg(H|8h|)Yooej>P_a>Xf_nUc5{hhy=!D zWcSSuX^_V!)$4}@@A!07oeiYS)T_ex1P^eb7pNU#{jF+=R?FnD8*j&lnDa2}dbee2 zMyz2?*MjM6$M%_zp>TJUR&*z0jOF6xPhAf+Sa}oE4i&;N04?59a;Pb?9CLu{{ov+u zo!#E~T9{~@wQcGXBh)1GTyogx#`=#NC9{(j-V5&Zx_&`mt2O;DVBc!75ve7KLc5l2 zG8mQ`U9h@YT!32=mqCxHK7wr6RZ=Y?wMr{teup|Oy9J=?Bw|-6mgcsej^GNs`6_xa z*8z@W!ZS>b2{#f8_$+L*FgWV~mui;5tlplofUfRFn^<^Q$JSr^-V!|$8O{{ybhui- zJUc0f+=~ojutPN9WvdgX>G#p=P3w~YJ&|Ti_Z#tzN4AwNsb$ucW%RC{H#PHJsB{qY z7lgo&#Q*T76#f%bsjUF3;de)r)55Awr${lhA>gwqo-FeM`<9Z^1E&a;haS+qU(Md; zZ&de3u2Anr1KK_jSPca`wTQ_})>=;v*5kuUbXOOu=$rk2U@ot`B-bM|k2AQ4xS+_o z3Vd}he$a6^{ppD79{1v9QKs{>%;Ca)=T{T@k!-fR71WUN-7u1warnuI^kye_*Fgz_ z<`lDY*1~-?JAadIM{VE{y;uKy$e3MTDAXF*M(c$jBw(ZHW$&p?`1$m;_Dx5cNa4lY zh_osk%8;AByf8(Qy~)^mReHTP#ICyuo--v`KnkX#mR;+|G3?W*RV&?t(bh23v9N7^ z`_iO{BwBXL8X;0|IAmG%%WuBI&f!IJ0V9oTMB|nmrj)S>0S%kJ-sq zXxgbJtI%&@09Ob2Kbd(m6Hw57404J+cdKi=9_~78I{;guvYkTqW(Cj-TIm_?rzo2D50&v4H}86wb8whK1nUu-A5hNrP_K{c9C4S+CvQqZGTor z*EuwgW?k(x?6xNl`@5|^KMTt~t=l-PiGXWZWNDUyX|TM}c5g8Zd#_o5Zo%FeA=LaX zZI7l_p5D-cym!lc=Fq|Pr>c0aqfv!TO8)TsoHxPO{#6q4-a+&ypjsQ|VknRkh< z(>ZD1`*qBLI>1fX{eA5j15=F41M}nG7YUg40_LA&1f^%IF^q)Pw9mgi;d;IJ{_dP= zyNxo&`;)M3|24N=*WM-X0|rd+ZtH5-!Q#yULCZ=|%`PD-1m^8{GWuzC8;LfcQCnlC zNOiQoh|MDvB9+l*i=k(@N$^L!k=_mGhm7K&FR49#y^#H2bY^ASq~g(SF+NcP##MX80fFsNagkUhnQttD?-c@+qKA(VcUUt&LI7HG1R=vjw0pUg=; z>x`_>PY|KEYq4*@&sl4}$aWb@3Wd!-dLu+c=I#1DrY;$$-Q0|AwAu{TI>C1}>OA%M zR5wn?r8023jtvq+8r_%X8i0G)Ft+{mp-8s^^R=A!$#>UXeUiE=3r4V&$v~CklyuKW zc!iGC(A7DkHCPN|JLQc^`uXOn4WvbNv3!;k`nw_QplOJ9*XKhfaKoO%YZe79ht0uoP^l$2k~q+xnb<+Xqjnu>b9+MA^sJQ-lR#N z!%KEUT-jz@^Ur5JRJaj`Uwl8Qri=aRRY^0mpY^PrmpGtcKIeW(-Lgo9N%&p0XlP?) zAksCMBx7x#;L+u3H}flh`F?@yg=DP>8uoPhIJL!RGJ->*&brAk+)_yYiF>1c!?=;h z`Tc`w-2#R$Uh~>G{8FG!*F0I{!`@y2Vzd!;o9~E z4B&dJ1>%6`jMJR$Ml~3=V!I@RYY9}}-sbdH?5;K8pChn(9|5`3!JTHd3wnosWpgpX z;C3%rAPuscR){!2?PL0wOP^sEzp%6Oux{yr7Q(es;&eK47+E91*3?Uf; zJNj9rD?U1MOofU1AXZxMCf?u%R90^1**`3yv-K1`ptB76Q_YI-xE z_e*j`+r1VsQTjd-`ri5gEt6g}_=(pF57FMZA>HejBUDCB1hQUTo#CH2bq$iphU3R=05U!o_;@lsRHJo^0s|TM$jPocK69j`qRR zxqAhphQVzGj6p^DZZ0ltg0BQsGP76i458POttXpm$c++HiRv!D#GSk_9w6Rh!2i@3 zm7*)bB2>+v!KlY^{M;LiQ6`t;*t6KtxP72M*V`0mp7qsQfW);Mu`vJDkzs?3ig9bn0rB~-MqN#Zd@?hY=~{L15(p2Z~#r{;8b zCMm})`q35a^s2S|c&_>QJi)mVOXrFHcqGN4m2AWUt(wF{Hu|4CNy^?m&VDtMz_9qE zXXnt#<@A}c6KTe7fBjLaOw%iskjwi!jCAlvLNt?iW9Q})eLp&@Qf_R1`ydaCz|x~N ze4t3iMWH^Fkd}3i4p(7XPoK1$vy}_0SmIg~OKp%TWEN`km~A9Y@%EHF(fS>k4%um2 zUd4HCi2~!RrY8iZuY5Ir>2)K6u%L@y!wz33!?R;!71+}ox!+A zJ(x^heH1>UHpn#cqE`Litd)*4rm&b67^>6}~KPwI(3p1-$0q2f=t{y9f%4Xf?x?(<4SW5txBVmeEv8n1o>>!`DucTTZ==aMxTt(nV)BgD>!fqyE?>vd(&@{=UK zX6NmW2XS^^wTQQ7mN~iXxM+NjJDzP{FI=%j|JHjYhSM?#FS9S?)QF|cJ5w|pkVkVKQj>(MNQoxPE%{%pNHtQx5Iez*|eV0 zZ>Wu}d}mXAKF$Gw_lD+|FqWxVE$_|{_UCJc;fJm<)jA|<^iSrdHc4|$?g!d5)H#T^kHz`@pNRO=IoJ^w3J*ZA|$u zrfc>%UJ0>pGDixzHkYRgKsn#XFMOAvxcj7Q;DarN7r3Bjd6+-BbB6m>(|GDrC}ryU zwJRuavcID0aHz`ZvEaH~iTqbu=(qds#9yMUw(i0smM?a}jsAHxnE@BA31z73@Y zWu%Pi_&RXkv5Dy{c(?e1^sug7(Y0~xT2c9CiZK7evW5T%K1E@j1z^xq~|8j1!Y%JPTC%`k;&*C;lo+>(oRf{@UuIZOfEi(S6mG&d+vj z?~;u-6;$(7eLs3tqQ`Kr6dVXWzXis$6Po!pJieatB3pIVEcapsow^uFwuep;(~bEe z^{r4JEztrkK?6oHX0=4+(Ij2#HGW zL(SzwW%(atJI94X@0 z#*PJ?uR`Qfs=vKmaa{VHy5r<@{FuJ-g>3ooyl0go>ot@b?~O31Q- zCqgz3V@uW86b|6L)BQLBLG>0*D-DvP+%c|5JR-fV`A+nUp~K_mRj*uIX|YD_4*d|@ z^1<)RWjT@j+!h^?+iLyewA`5#js(w7MvLgmTdAsD(7d@zjYoE#Q zFsSj*hybUZc~#@IQ#{64I^e{kYtoJ9CK`OyUMJ%1bPA(CN(d02yWw$eD;q`v6w*GY z-I{4TT10pu1!0l|_Z@SNEr@>Jfg#K(7wDa?MDxRQU?=JHll=!0*lTJ3sv z)~|S)9S#iD+qZ)6Eit6YZy39}-4&;wiW{^szpk@kY`#~jkH$_);4Gt2$GyfOmTRnV zr7?&L%n@d#(IQwde_~T)S3)4wQ|j7zuW+1dvs+%BKW;fAA>$V6r5Pz%p#Wj8pT@qX zrqyK-_>@hjy7rC-J(Ee~dnMj{R+B`tg` zCOY~SB)>Z+ayPpy_Ia#U-8!)gb>M@Wp5zNVL=pLIEg9Brb4{!dA1>i}!ceUt6!qCk z>~$>iECn+Gu@;Q4@w~NQEl((!KQdfEBdQWR6gXlr9CFt-pgU~w`eQ7$L(j=)d*xY` zieQP7-kcuX)C@Trm&XIi>#0i$mNruDHz)6QTdpW5tqE)uf_9(DCbva%PWcPo7hX(@ zb+n2Oy!+mtVO}}VnsP^Z30;tPo)DeOvWxzN8~W7w%if}ap6u%bDs1YW3LB#E*4$)% zR?Jh&k*wfNZ!I416ZZZ)5Mg^Ny*K(%`88qV*rKEiXV=E6CO-G-!k5!4_> zpw5#CL2h)Da6A+{4`A*1<%HGm?eiSJV(MXQU{-Wp6<1xP%?%qys)o_FA-j7GZbqR; zE1^aCN~pMKE7iQxZ_H{MVLh`-Y!m!85sbz}mn@S#40Y1m4*8nH1+{4rBBRwWdPxcV_PA1vTQ%ME8V#Nrx=S7_XbP_It3mx;MxWagv{3k^t3UNNjL znKK>!wBMDYjit#BhXZkFwKix|UZrRG$%qn@Y&JYs5Qj@hUqc+A*`@+{>EE4tO zJ7u)MrKBL_*a2+g5%_`2{b$Cd16~d6@$B=uXHTLyQwxUUf}v2i~5M0BW zoZRx1@7exy|Sk~jD9 z$(f#!I8hE^we!~{)eq&3RjX0Oz5F!Y17<56uO*JKd&O;MuvNTEtSYMT5PUApHiupB zY5ROR(VQ#ig=T#aliHWW$~7y)Xnif)b5o5x(v@RJXzyg*WaSN-KBU>@TXL#wXe6#F zj+Bp#@UE@H-yu<(>Jxz49G1MPXghb!g=L!zx(TJ zQ--w3IOnX$FR1*+k`FZZB3i4Uc>&Upt#U{7*af{2Sjr8H@r)izRbL$$j%YQZ)Z>et zc=vY1a__K@%4Urdne-s3Hd<5Q-MDqMK)|e9?Gv38%W+) z4{_9H_)e+xJn4m=dH!!EBAqPx_yOnS zA?_VqiYHZ$UQ^5co-cGhD{5yEZaQ?P5$Nc1y$@OZ(rERz@=Lc>-lbOIJAU%^{n<`F ze$jNLmUynhqx6(DlfK2sCl+TmdPu5otJAs}&j&mkR7XU8ub zuqn2?)(MJwB@c9Gy-ko8=T4WiyaX?=Ir2ztwFw^@i^Zv4 zLY%u^v9`wVUTVD5MTr$%5%MOHv75b7mEfbcl_S_aNgS9mS-h@Qm9?KQP%Nh;&(1y@|HgraRECGA$m{o zZm43m-=|G_PN50}!@*gxf=uqS8ZTxUoiR7ff~rd**^W3hn^xtPt)Mrnm^gp3Mok;x zUQy6>xNFH>^;bP#AD^DaKLt(*dc5HKrRPBij^ji6awL}e9*)V@`AoP2l$hF4^;W?%8)AboXYlllkzj(T0Yp}UHtI}&lC6j{kLB_R`3`uJPm&;w&yiLJ&7PA4}cR$pB z28QzYcjq@g&q&Bs3v+#bdy|*_=>GsrK(oI!_C}V|s@#ULA>lQCTeX4XBZNi-UYutv zkoWX1@n#ZShs?w61=QLw37^kE%IaELLMw&-+i?4T`J_>bazM2KO_M~Lrq^%T1tSw5 zDFN1%pFhNr5q;31Ua0C|)sY4yK6h}35?%?Yx5th^tTNvfQ#efvFCDHBmduu%C8_VI zD-sihhzc`Q)n!uC5kgL7rSbdXc`Hr$Q;dj+Fe`{sXnpl5VG=+NE zbSYxJ*w=9KXd{G11j}m%sWI!KsGp`0(iX!8LdbV?7=lFQiz?kJ!~XHbV@i0n{q$Y5 zjto$+0h-PJx&#rvH8Fktb_7zD8c;bL!FHMW_`AdMb;El`Cn8g5L|y*r_X@Fk#UF?o zI1}^6^#?urRFVNxOf9~JG8L6c-9SR6FUl2CC+yd#!T)*9J~+_TPpx&Du72=BPbP$6k%)iNc&Uv(k)Bk$h7b{0z)FT!` z9T0!_ItGszg*u^LBtE%Ff2_5pw5KtTD|rQmPiSq%ELucK`FSMd>Md))KvfpKOi~hI zZZ!8)y<8d`PVDZ%82{0y=ydN1g#a#Uf^($6>HMA*_#hFO)3cotUP(T|DtB{l(yMev;t-^)abrd*+BGkVai4?kO!ev&3D*0EpoL*5IwCvgk zo@dV@$J_BXo~Ed(w!^>#4Nr+dwC?7lb%KYAO4nk;~l ztLXq+Lg1L7aUAa;qbAev@WSaA*nCUtQ&)gJEPIH zcQ=^QqS42T3udlMg+pN=03GyyJR4>dWYT4A)#5BH-TIa$yyD7TuZNsPFjSIs1TkQp zwUaxV(85(uSqWD#|HBWke8Vxct{trUN){PXV^a%*l@4)DZvm~%^xSMe0|q*{yP{T~ zsyIh0&W$NoRGcp}3L-YG*oY2wh8Z%jjaXI-24$8caT5h^9l79^%>)9f*Flw}G~9Wf zPq*w!aI$x%^-wVuPiTsr+oLf5XTvyWe=r+UY3u7FLA8UlfjoXi;$sqJ#!S0ohtXqV z)LZ&^dPNrA)>_}$%?)P{@4&J14^cU?0h-sZLhFpj$PDX>3S4w(z%;>}DnpsJ)99Rx zbB*p5;QozE*tmKbe%^cqLx+#Y>W+m-Os1k}>IPhAd?^PnfAr|v8%?4jV9EJMaOTx@ z)A$h+x)0ha%P4m=s8`8QrP5rQMMhb?)BE+t@lB`{P0RatKEkrSN8nhPfF9LD(dCQZ z@#))rVM7MK72WJo z&P8o0AFubQC0ceFip`NRm>M35-5s7_xPX@`=x5_XutRnHG`?+oEqEbW?Y$~v!bhK> z%l&6?p>oj9h8DNvIdh-i#o7<2py6xNG>bL9D>PsAQ)$x~gVYO)oXj)~?B5e_4IWtb zIe*jqPTc<(&n z6DZu(a7m!*#S_esHIlWXCwdJVi!O7&MaQ16qf=dNVV*;!j|A^mG?hGwY?vfTMt2vw zw2S+cYG5@$~BK@yWy>d_Ct2#I|pP5L!K2THC^l!e}+s=m^Hb z3g2Mm;!PuSdn{VH8J~YNOz~%}dJMt3A)fdlv?l6PfTiYg3RG&f4lwdC(rf$jvgzpI z>KBNDhYWeZb~0yOMG&9Oeke-4gJXyHq0Z|X4btB)fu`y%E@2{^vqnTH`Km?(ar^X2 z1i6vRwRB|Js$nogaZI1~uF9sp`)Ul-OKeLQ;kr?x8qrc-;vIZ8WEwtMu@_CNS0HI5 z9hbR=b*>QV4@Q|_5^HeneZ2|wGG9Hik;1D}IDP9GB7-%{YI$?W`(GhHxj*Ku+>LKW zwim46UA+_Ep|U?c-gcGOWm> z$%Z;K2>HO|r)Oq(uLk!mV#0aS@g>0IR zinLEP(tp>-3fTYP@UnVqVAxo?B)^Ee(&%Z~AKMYbL2S>Qg4iMmDPnx0)xRx6rFv0x zTR6!@r&u|#SvYBw=HzcR2<3rxS0O%;SYquMGvYcL>I-=V%y1}yVSH16W^_-_Tk?JR zhT*%i7}Ksxp1!1PG9}Z(#myUa`6o#ms4Op~rn>o~wph}LM9DV|-_i1v67*6SG!Kk_ z!k_)npjLoDR%Xej6foI(2cm6oy^W=h9VtwRYTgV(V~N~G zZ6e<&p9+X$HOYKyQ&*|*Qu}XS`g1AnQ~wk(E{Z0qjiXq{(VLoCO-9Yal$j_6)lI`fwek2Z_TMJ(??lWh7EX@X9GuzVwy@PQzMas#f#UW=Qo2D7@h1$Q3dbqoIMf2KRp#t)jX@y za7_Pc8(Kw%Xl=>yE}d0K)n!S!bU=DWqqFpFiSXCL0o6&TkM7-o$H()q=I2ESX)_pg z!~AH>){d4{HmYxh5j9TQm^4+EIi*@{YuLHgL*ttMhF1lHw0fvH({T4yC#}fDJ7&{z zGFFXW75q5ncSO6JD||2!e|2%mvhv1PgF0{m5mrRdNy7-aR&Brn3Vo9W5{U+ybRUiB z2VX~sS5165|2^2!5_A4Lli)P`Q+ys9DcKaWU?{N~x7xLOROX=HxAq9bk010yY_&l+ zdSO1QP-9cX{yehv7YzMuHICj~sPZX2u~d#p%4SK%r6(<~8Zj8RXp4{h^CP~P^EVEj z--E^j2dej;UfPEg3NCDEZD+;_6$v8DQjcDG(E5}vzl2@CX^S%NB;7fQIjgep_winE z5}R};X&Onwq)0NRLt5V!SeK@#l?W}Q_zF&TiV!(433sa7qER<0X|*631fOTqo!4TT=kQq!NNw$ zqv3*F871bIvN^i@piR&IMi1CLmk;8r4Zyb3Ga08yqu){vsirW~rf@zj`2g;p$xz}J&}Lw=_x z+{V(SzaZ}NRTNseAUw1RvTtn0+&>QB)329e)3Psd=UEnm75h?~MvXd^C#q69Af9zv zloWptXRq9ZhacyPlzhBV8@PJz3^J^9v3AKUq?>qS)sio8?(}82RE)%gNyC+;fK*er z9?GLYjlU>7)XG{!SA|U3{f5>a){L=HqD?G^T+%e9wbKiy-7RLQg0n~VWAl!ED0B?O zU$nTYT)_!{&;JC`pRdI9`3o_kS1jr^(*E8WJpp$gJR*ar%`zG^4OXti8>4lP%pc|& z;^`mbxfrQQiMV#=IO6VK!e2`k;P(fouzJg7e7ojPbZsCCJrUNF9s7EJ3$Gwy!+xY< zshV9PlBtN;!vM?GTed<4y3z#EEiR3MaWJNsu2|ChQT2(T5v(Y{ifl}U!MF3!Dk6Y1 zn=vR!hpZ_5O1ygk_7n;~lGs7+OW;rB1r!&40fTCRbDB?O*!?4pw*zn_5MwEW&e? zhoZNMJSeFn-IUH6WQdsg2gXUfcX5e?5unf$F}~1r`xt*6npffquEwF%i~l4EO%ooNqDr;%n@G20 zC*uO*zPO>ubKynJStpvS&?=F;EuP!j&EVXgNllc4CvvnQ*ShE3@!mGgFk?;j* z`L^dRN%}e=o0h^uI}E{yd4D2G7PcHSWpG4b7$?J+DoBaPWD2i-q8G@JHrgC1ubsSe z2JYnBnl*2TE_DM{PHP*RGRgw!6B(OU_HO7k@;xlRwgT58yJFa&81=p!l5aZVtwq;S zyH*wcl30O^^Gezz!po8*{mSxLQ>pJ?xh7)9_+TRk*bDepl7Sa|zkHR9AM4lh6@hK* ziENM|jZdYx-luK)!U2Fb8 zZ1hAeyDBGp;)Tjc>8T8%tKX&-KjPBU0$RKU;>oScNXW5A&B`24wEAZN6R{uX(4TaXDLr!LtF?x=sWw1*wdm^(My7HOHm+6{t$y@#>k=*t+glG@m6(3}Eu-i!o$iZ+g0v zdW8^E_>YRI8d12_s3KO>k0!oF&}xeI$>G-M)gq>(53EUxZR|82@!tzam{N9CekumY zxBoqFG1^x3gGpurPM*C2mkNP&*EWN1t;*27N#H88w5*NQ(unw8ejsg!Zbro@*f!#sQuGes3hcIS+65X{K_s z6l$#@u?TNmI7ydJ2OQe59jW%!FmcQvcsU#59vi;(?CwqUeD^EVmN8DcQbdcPVwT5@ zIMTjLFD##R9NEL#Q%Iy4j2PFid~u}>v^kM6@+Q534bIcBeRCu}9x({*28>4cHVxsx zIAVGqyl6bHBM##m)8j$ly)0#=r{clQD_FI5HSS-vVJz7~oZY(>OV>Wa;j0_buyVx` zen|4`P{lH=ppbl}!7xPQV~QAOG!<#dNjP`n5H8<;h^rTl0w=Cu;X(&w(sl7!t|zKT zMwSS$81;vVu?&rhXU3aRBYV;+PU9nmHFBx}Y}&RK@#k%E=EOxrGNxJ;CBV{fR~u#8 zk%N5?&142`_bF5-Vh>IL?pN4&Y=?iDIqbP)>zK4ldv!{CiqIfG@pbsfh}+(Pq~jq&KlF>Kv;3ErVq(Y;3} z22;01HiNh(KYfBDM-IcIT64ru*rdf)D#n%LyKpe>F8iJuax;6h@5mr^KB9>$M%>Qz z*m*G-gWl*3AD6NL)Acs>;m&rzA2@V+2HHi15&^WXNVs|q3pXFY>)-3H6eONBdk317 zFt_|sl9XvB2@mD6Si4{rKHQ#%xbvs5=F90AbGSL)89fLgH0u>Cv>}7C?ytX5$;S<@ zTzuIZq^YGntzIjc$gHVptl6NY`qMs0Vp5cbwmsiNY|>G9yI9~xLN2C_V(@7x0j*HX zs2vq8x;_~&3MH!^n!ZB>a|y z9ZpNG^QU^EYFHpmB()tCg&7n#7?C1pF-Yr{zmMa7LJAyxgNa8i=u$?LOnyrzl=`)j z81s8B6@oCSQxoJEtdt(#xqwFP8X<#{^4&*I(E8y#p0Qt7F8K)+xhR#j7(c0!#Ne^A zrohC*AMejyhV~aO(mE^=HE0#*;p0lnfOWLe$UtO^_FS~vG0(M^wuJ_b?V!d3#g$i1 zVmI33{%4cnulY|Pyipf?(CZIuIeZbXRpVmiHhWG9bY5&*fv52!642jZeIz%fA1v%p zxk@R>@TF$u0!QmB_PnK`yL+*X(K?@&L0{E z%SZl;L}Dk~dRwqhCD~9g`TfxZ#tRZ5Svv0R{Sb`?3`Un)A!_1~-RH7Xlkn_$vNAPy zrDomUu*LGzd)M(Wk?v)T~EYyL#PDxOBWPedR0CfQli*n9d0qC+$djB{-03b8OqnC5A+&SKx!*vL-?Hnm~&As<Uw^MFXVd)l%y?gh;%~w-2=;K`AscS=f*%-d@{MK=J zghun}Ff8c7Ag8=iZ6S@#zgICid|HyEJEe}2)B=s;qL4dS%^KDe6B*~FrC8O?Rdv=Dlmx)?aS>$rY31aFA(LichyZ0ew1L5suLWSnd)>7gCC6gAKo)8NNqNs0 zKeV=I3>g0^7(VW8T)TOPbTE`IuGW}8vLCbEW*lTu zOZ!7Ur8B@1{L~~n0n4~MPgu=*=r?W>%(;_hO0fmn5B&yRn6H2Wphk^b(UQoC!USni zR$aBFP&6ji6WEEp3@&VIl7T~eci`_0moW9)=?JjQ!}*K1;p*jyqAvKey^AddQA{h zL|5+&?$(<~E$5k2aSWjUh>NOxgje>ZrCw!J46n*~CQZ>}NG`krwXtP97WDow#=|B( zhvNDhjCI8g71C}V!#7{f$BKgtc5I`4UzJIOvZO5%pHCM&2@F+EzFmT*XW{~3ZQTWYyp`Opruj!pxEL;8D3f-8avpb5rtRteO&}Nd=gMIhVOolGIO6B47}nQRrRzqs!>W zSV(PGZNoU{RP?2L+~`lHqicu85WTcHt*d|kVck#d`%$W26o;Zb~Vclx*_o6F4>6dKTerV-4*q9lK z!!L}y*=+K%fy#2EsK6OR zyVh5H?47IUv19LHTuAW45A(U>=i;}q*|rZ({kafzf?X&;y@^fRkHa@84BZF5h0q{h zBkC+z!LepVOG3twl)t)-G`!J^qV4)s+Nb(`)plwjor~YTn~Ad(n&C>7LI{RWQ zE%0*~EL_~*_O4%s6>;Vm{N_O1JVgQ9tJ{gO)K1avTSz{@{E0WNJJklATz%W`f zRz~$2^)Pt!M76^mX!uZIVvV^=zJz^h95(;B4AGOislGBykuQZR^_H>T&?qLjxdjvkNZk+hzo5Lb3|J9G0A3M{H=8DCl|{iZfPrGF)P1lPfuO+TV@yJ&7I za}^(torphgr=n3%>HH<{m0Iy=c%kJNLk~ksP?6QJ%M2{MnPC{GX*hl@ot_e%rQ6x} zA~sV{kpj3=1$ z?hqW#iN?11)40hKdD05b2&mNz)B8@xu|-qhhS8kw6{TM{ljD$mSCL$X&M=ULZ-3{O6#f@wwNw+#TkXzwqq@< zpZnuEcbANRL{E*ok6`Lr0c~2gK<|N_5P!rSYaZ3XjG40;ykF1F?qQjQPS`uxA(prA z+`k8lTx(^O_uxz%j$XZqWGZQ0X}K!>KqnJ)dF@TS(T23JO!K{rf=d61%Q%(K%$$5D z4o!)F7x|@`O=@d+B1Pfc<^J#({$BnA@^2r+%mu&Wn_qWx1ArDK=%ZW6XC+*tQm_#_ zxdQSzrwU(dDZ(pBT(f&J4ASO*)?xd~`8a3V0Ka_oA>|L;a6oWC9|YRl|0_ogtNsJ1 z{G4=z)M$zZfi{@4Y%~7cv=7nM`!QH0k)(Q_46udKKDl7|a5Z$O2HhB2xHk@$l#SG4SR*4<&ePsFlRE(nAO9CC9D#A!pzzV zZZ1B2^)ybOKS?W~BE}t}#`OAe1}^^*I~c>Kh(T*VnDrT=!+aG;nOFoJ49i)yI22|~ z{o}yVs>Cy;3wutSVj%Wx{PV+HB=~p3!nu=R#sM?7&uApjjmXW}0TFd0xdWFe)+DFW zS2-PzZpXvb*O%@)4ittks3y76?9605xON$-PEmAoY@!LUSO!%N4kRg4I$df~(sLM` z(TT2zNpP)M9s9QbgM{;p>-6hVT*?WAbACtEiHb%oYD<3mY754FFcnpe7D|N~3=TN= zE5tqKKxRN`2QH@EDX@I}_#wO*B(_pA13yx$7TK^if;{YStZDT zj8iSf8oI-Uu_U7$>bEcn8bh9mB{L@Cqd$@{;=NSde3(M32kw%g&vNSRe>o72Di5u| z*8H>_H&YoTpK+4Jl0aOrlrSI0m=5JyX% zy_nd$nbHhprl#QM>0>c}<5NtUJ{%#Q&KU8@EKX(`VHE;yLBZjzI}ed{?*O8GDeW;iq1Io!t@pk-%lczswJ9`js$W#|*iv9mV8<#?))fm;Bau z0{w|Q<9McDL%W(yXez%1ts9UT6`UaBCuP@D>6Lz`^epcQebii|3h~#XsaS9XxW2ZP z62$9ummDINO?noOvndyF^4wj7)U3nZjB4T5h11;a)STPDGr%&164vL62Zv%wg5 zy%v&I_hC#6Q-nuGt5_0Jwp6R>1uv&m7;L$0HxG~yr_s-aE1JSXc9l}B@p*Zs~ zvI;E_%ov*HiB1?lZO*Gkr*x?LZXOxw$4|M#T8&y9+q7QEW(*@DOCg`zSeU_)vG9_T zp5Xq&2ed|`i!bN2=TG8s_YqxTs7(wEuYqPUQ3h8zTJzew;P;P4z^~vb@)PeOj`4Cr zYSl-h=(>oG?TE-)#E+~ym^$tQ)M?xdHGR11F(iEfB|r7+_!}2-Jw642f&OZ9jeN#; zlCgI2asnR39Ti({O!gYKg)jPVp2EG{3!Vuf4mG_`Wbx{R?zohyAj%;J(t17iQqwcO%i9Tde=x)PrFIYU0~rG@tXE zhGcGOhg;k(KJ&~?>^>$|%>B`&Ni`Nt6C7SUwjJXp&crYV#qHU$mdf?LSs@}@HNoV? zTkzTNc67~8!niSSVBDyFI#_i!9`j`$@Q0=KeN34(3mvLcL6b#SZwkFX{Cztn*VDzD zw2`84E23H*L{ttdlU+)0JkEt4{PW{1%-cfizaP60_hgYEiX9R;7Q&pm!W81$*>uiT zmv6$SQWRpF)I{sPBhau_S3G!@4*x)IsvtfphUB0B5GJ?$(dV`Df@=MZ(z8CcwL27K zGj5a#tyVPUL_U%e8Taz!actV^glBit5r5(rY}x3DHcg`7>F$OAyATSw`rx%b{mF;e zz`>CLjp_Db<>Ze6gTpyf8X$AwBjFh|0i_5fIJRi8G8R!((sJ*RE^PG{4!?*vii)x@NQf%O5!+qRnqB>2=?^1DmCaych9~E z3n1-DuY*OuY~VVl7pif>jgDzu3W{}5&GV9i>SdDigUg4|tZr)rb!SYe-c9krn1OJJ zXpN?%jXvJhF_;Qap}}UR8hOLHJ~43~C%)$qFJuiN0q2`^W?ZgJ#+`Nrvm-gf6 z-Aq(Iyo&lML8?pZBqH z|7A7ibq_BC7^9O$Hv}DToj;5@AI(ISZey`_Ku5Jfi3qSO)}+<)lN)%qe>`!~R+AarjoXc&Ivs=9;n9v;fl-t;LYLmpkX8kaA#xV@|nC5q1Oy}-9>^$ze7Pomh&4Kf9 z``6jcR|<<{sk`ybRCmBm;pBJ7cIq)#d8hhfCqpzk}Ma{Kb;_~VZ? z*tRN@2UiAla~-4TekpwcRC4e)~@4(L8}mXlA55!j3NX;`6EbWw3c}1L_i31%pDWs-09^?KI7$DlJF3 zSXYTTvm||Tm+R~_x@BCtjB8|S=Zs&3;9(Pyn8BU6`o9eu7heXjEQU*PT`b$N8OM(v zMuEK#BCCf}>Tk)d!>#f7+6nlEzlLiRHdOL=P%a3X=9%n-tbAEN#bEPW9z7~kmbC2=`c$<)FHo<5}l3+=9U zls;C16aFmk)|-<~cMQ5`Rjm?2Seiwfab6+QIunchRDAv3n^^v!5}srfAnVe0wv!8Y z;n;=2-6>e+I8!)ejHkvZD}Y%RH5t&Ysl#i1v3KV-+)d0ut(rC9<>}6yFzo5BW`|Ba zxIiJ}p~|fm2%4LN#ElVa4@+9p2x*kE1yPGPYV=6VzxEf#y*H79)w1ntXG=ngQ`oR& z2i)@SunZ3RTwAuPs(9Lj=U25cR{s4r;}V>p>4rarm?6YF#)u)_#b4h?H-hQ7^5hqU zds&v^9V;f|N?Zojf}+4&jg$Gar((ta`*`=AQK(%tkPB>Y5iK3KZ>WQpsDu|)ybe0WOXnoC7j z^d0&pDteR(J+$5sp?VtM+Ko&u3S=@bWIM@jO%gvN;o*JUynUBKiUQPa(iEYLbD@t> zjmF8M@)rJB@;&~!Sb$Sk@1ss-f5K@-A!i<%H>{4o58g)i#zDwPeS%C|`G%JCHqn0@ zpJf5B^&_zBx6jdMMJ9guc`;_ZKNSl}lFT}&`D@*#J!x5)qVg3dbl^^hlCrFXrGItO`=gj9>U;lOj8T(k!`-_Q!m3wA zwQ6Cs&hvx=1u>@f_0fSrN%!yEPhi|CoLWo~f@iaA4;bGk&%p~#2~5K;6I6-rhBd!9 zz}(dzp_K+;rXQ_2Io6F+A;(Hoy=DyZE_XGTH)UlZjae>P)BOJCnLYUY{a=ykUI#ro zG=mSVMlGq3DzXj0M$Vx*jPaL21(59aRzzA6MVGC5#DS#5Y`!PdjSK$`KViw13y5I6 zA6p9EoLRSAGU{0rCKPgUB=t&7;{u2awDe5UZ`SX^sddD0j+fZCacAWm28GoE<_b>8 zJa{i|FQ)#Mg*^v8LIJHRf-8k{H%=RDKe1X3>2g(h=}&>B+|l`T-Qth%m)qw!(!VXO zjDd5zexr*)16XZ1PM)uxqAAjEw&o9T>FjBk`Pw5OpaM6j(dcw`@?&gUvl1ttSYp9n zTM)|KAi1Jc3~}vPS_@tX#*s_UR5?V{l~0-}OF&c7+9K9RALHr;{h;@Wog;T}{1Ag^ z0T*4>pY&E1W2P8D%gZd6N`|)?FS1H|_*RHezeU@u!4!dnj1!^hTKug;e}09oySWowC#` z+8CDa6HoQ}7&7bkE*@BgS>LUJEqSh6bn}hBn}Ha*o87*C8^Kj;pnbnV@St0VjO;_t z576z-o0}0CVqzI!WhOqtceAJCYNiF;DBQE66_W5ivWXKT@!?_oL*!Yzt6hLir7ifE zM$d@Uv@|@ve;2WDet>8tz>-m+NC%Ic+t^nE=klTTi0(EIC+RH_r{L&pF46+K=-OHX_1L zg~_7J5tA()~+~SOXuH`Roy@Hfo554K$&Lylue%>MvLlDO`|p znZe%G52k6HZv~K%(5Qf}Z`ZC|!{u`quzTY#IL2K|wUMls;a|=&rligI%HEYN=jL6=Lk957EAfY!;;{3FHI%weTFDQh3#G{#shycTkJ{ z#?=Gx_803hdBO-~9a*Out@1f`ENLCo5>7Ag1NN_V-Z@PFmcgGRoT)V4!8nn9>(jXD-c%ApN(PEF0J`_A$qosRIbR1O_atX;3Ce$-%Wo9$DcdUCD;y69zVd7 zXNg$yRS~MyZ-8Z!`p`PD5;}M90}mH_oS=chum5C}7N*>lUbZ}1Yc87e2{s(Ng^-XC z?lMV>e)3&5mb4=0l4$besic?da8E2}ix{Jr%K1XB>+-VFXrX_Tf|@22U}@vZ)Y2L` z&u?MD_unBrsyXUJRED2R4z8WQz`oBxWx9YrdGr*aVO8Lim`Zpr9R!Aw8gPvRv>-hJ z^FN!0c&BE_ygh&x(%LJ!SCC#cPlhh2Zo-`kc|!z#(r!xmV0d4~tJK@xD;&SyI)|@k zPDH-}`_Q~`B+~C+#Me|#E?>7Fy_!}L2+S^+{$kREJB+h*WIHw;y@iS2{f^2NDTFm7 zbMh>b9K1rYWY={HShNE8dqkiKEmmK^7wKbutMmA|aI8m*JMLx}95kN0%U3YC9~Mx# z{TNO`+}tNU30Cxh6H&Q@s1X`wTu1d`b>Mwz2omo0Lna`p^FYQdHHU|%TM3$qH$g6i zPsvm|p1+p@Un?hWZc;?g45_zdRxPN`Hg3N7=GX~D)QTccs&17z2+t`e#vj`LZGX)Z&5aO{J9M8&ZE`qsT+u`6Urwo@i%u_{(jXK#MB+9lrWk8wa}1C z_o_yqbsUxravokfjQ+iQW8nIOj5XU>)p7jXow(c76LluqB4ODihLvK!v?1TsK~v!B zMN-ZG@?z?*{EyEsnKoa9C5zr%YB+72D`NP!?_mcKVcot{6kxT+w%>oih__}#EaCHV z1*yv>6C2GmGAzVjdq7JOUz*lEOEOc0{p{(}>i*SZ`*8axUBQSlq20g2%yyg{bnP8u z5}`e{%P+^_VN>tKG03f>}YM(RsHEEdRi_XDGl`u(0)0~&MD?% z3TQ|Mj7WWa8&@A@VZ!WBNT{X$BuaeA%wWQ9NuSnARU>F|!QHnqIq3#BqcBhFaw&uS z87KXBMQWbE`E@1k-+91M>;Qk7P}-2GQCpkS;%?iHIK;N?1ja#rWfCSw3GVC|FflX= z7tWqXyuTT(5T0^DeG^9y9-L-$^bI_(A(aZ+u%;1JJKM! zq!m+8^5EVb?n2~9mjqknr9Q*irw_Tn$i%b9_i*aSLEK4nL^3siE(R9}y{&8*7phtN zu125A!00Y*;o@KgGaGvhetQyn=M*wNi8G#D*h91B+uRXM2(VyI+4dJ8(q_Uq*-!wv z;MN&TAN?l0KlvIRqRp{+{}pUHa+bm?GJ(ZhppbFWlQ30Q26sIDo_3~t9~u3iih{3P zAf~6_*|TRzc=Q0r4B0hvyAY zJNltsd)zp-8DY_}c(i0IW)I^ohpbXw85r`_vPnlfCo=P0`@VsqoK#%B8P5r!5b4xL zB_};sR)69~SIixs?%cY`*l?B6vPm5!Br}Gl!xGC5XL}Q6$z}XJkGtya-LW4}&>y3R z4u)mg4SYRepqiMB-!s0JUQu{QYr~cuJLAgfE(1sRBT$tu2~#d<{{}+F%}CSFGql>O?D-7kl0K>n~nw!=1V0g2|kk zIcLUvS+iypZl?fs>((M|lVR(EiOIB#D{`gMf#2{IhF^2T$f8ThE^2r8#@$0q zn?6`Kr9Nq?UUoAy>-{!vSBpjhWAI6;AN>X*{biPr<`x>ME?+p5&^JEWwenlE8nhGV z9{htEevSyYpRWXDKmBtALpnF0(4Yv%`QD7)1J$mCQX>VH7h!aJ|7rU{e3C$oD`Oql zQy^q(pfT5vY{l9$sTei953NpLC_>4N68tdS(HW0a?hO3xjQ5cf-V=Kl_u!&K15zTW zGQ4kT?u2ir^@qQU##rgX#jyI#uxQmer_7TIoLR) z&cBzb^lAMLq_y6MX|Z$xJ{5xz#9d&msC9SYMj;mtu0oq$hj8}#QVJMlXGhWoGLdGc z^SKBTp2vd1JOf`uBvCG*jDtCQXj{zx^)i}sv8tzJ%LJId!us|Ff@K(+f-MKv&d2ws z-EnCCyGnQ^d{T{;{pq51jk}H2NB#TH>F(&JXiaLS13LB|fX2ZZPpEyn2-nV?f^+qj z`1Gxs>Xxot(*yc@a)-n!g&JqAXkQ)!F!N0rN97e$8caEA_)}bLhp|&XrfcGLOrJ8D ziyl7)VdqX@q~m$%C-Dz=&nz-2MBHu)m)nm(jmoqt5z7h!m#!836)B8-@7UV!(4@~s zx(}`9BEo|TucfHVSY!*Ry3T|ZSm9g9V&A@f@bEypda8CQ$i zfda-IG^4d(4j0%-Ikdo_#bb6_5`~eu3_swnZI&bbRu0Fs+G$jzc5HuqL93$O6o3yJ z{XS|}VSHM;CE6OyWaDof$DE(eV%+#)FsG)XwrQATSM*VX%UGq}0eJV*FBy;MEN(r` zK}7A^+>nI41?LbuWZ<(g{>YBmg^7b&a1x*;zF2(8B9dhji$~pM(wL*sEw3&dT!-P) z*5UGlI2DXo;fu6MwwG z9YqJiwa!Y?o>(MY*oS5N^0A#(1R}gDVp~dlG*PBzOa3xR+Ft8W4`)9tnYR?xZ4#03 z{D~3--#WSmi?ga@c+ZvyH_Smo-(SFcfvGxF<}h={410=O_a38&yRJQZ@(_m)?!%!I zXXy4B#!XDRVZ!uzxOreS>m_~l?@4I3;%(h?AqTh0yd2k%T?waMcEJl?;&45sb zlLD$=TT$^>$la(HEcqJoMeb-96Ad2^R|;*Z;9?PeU$qiN>G8OcAudG{R-+Kk-XUn+ zE`Yd~&iHqN)lWl&`U( zi_Bx}omFrhL9m`}F<8uW#LTi-N0P;4F|)yx_5A7vXq=5?MErced5JA%Qfc#ZSQvUsA;#7dr10v7o;zfV?XZ2|VAD`3y1iy*d zr^EUVan!rryZ<%)y+SYOi_eQ-?^)2POqFq>66lITm|qPEp(_boQxYI6`cvNN@0VZu zEFV6Fi0-`S6(~AwOg~x;0NAbOF(%X5g$;+G?$_fjJFdWIR<(wARJU8NWa;?SL?_Un zeUo~7sX*9f4rfh~jCkKh2Q_-BA+#zV)*Nu2#p*w&m*ik{Xldi}u4kMq8|L=;iZv$1miDCdxJq z2dWFqo!&%nIb9LPBpei^+?wl>hkql^-)R|WR8*H=@YkAg;Y<~7?ru{)jVFp}GZ`b= zJrNc}=q@lyu*Erx@rdasSNTW;CZt}Ey4aI{5XESnuP)ULzaCwH!STwM1NnZXm9t-! z(}#}*!aNw>UWDl?c|9xlqLtV9?_ee&GOr`W#A1d9+E9scQU7v|Cw8}yc%QPL87J37 zG_R%L4zMN;luguImyIsgi+z)u{oTJqt}mAE$G**NieBZ-qsvLhD}MK#7%3;fY+q%V zh+m86nH`q#L>!d8kovaz-e*Sa8`evAW^QOiW!R=I8awXOHnU1J5`^M(mFdFHf`H_M zd@1TUrrEke+Rug-R?*zIP8#W#9YFhC9UOh3mTw_z^)C~^(UltR17D*p6=8(XEZu-YtW;yp#q%^ z23{;{ercKMynH*UxH7RZJaZPIAb&)26#pQt5Q1Nj2#BC=b)Gz$Ig2BE6X=S@{sunoYHGugr7G^MKN6&h zG~4uQ+jR5~Q3zjM0r`JOiDRo4m{2>D8t8nCi!g7yNX0z<1qnzg^b_sT8qRO{;i2?g zLs$D<;yK$WLFf2BGeqYi7G%SUMZ|fYOrBBHm9GA!y_=c_2J;BY7QBVWUfs!4Uk%1> ztc5HQzS(uf2ov#WY1L>UAdO~><+P*Z&w|U{6YyPX1fiTyCcj#*($C%%za*)tLsxf4 zt~T|;YPaDt$Tcd78ZtrJj+SF4;spORNQz?4d>~iqB6l#k36ZQ`$M0~vP&Ghk4P*<~ z;xmYTE{)B@ch~Z!$!Efe=2ti539ITQ?-<(4lc=^N#pYWcGG z%pVm%Nq4xmkTfUG;%Gy@6c5p=)Qd^t=1?K=L0;{YIYWNA8C-A`Smh1#efj+fNpDjH z_F*j}D2|5F-grufd%lG&0JGgemB4WO!SB~2*r>eVotq72?_ZxJ5r$^suN~*gGBqF9 z=g};bMYVy;zeKUWF6^RdpmboF%R@OWKWBJs};cLZPE4xD6k`nhum z)y5(pnUB8L&)yh>4EZ5&6Ib@$`@4pOSN*C#SvA|wYV(_N-wLMVk6zAfL)Y6Rw)QlY zt`v06vRac)Nk9d=b!d+~VV`HU7C^qFiq3YvQbwerEcC%}Df6EOrxTg)V-aLkBZn1?C8_}Z$j?4^n}wl!93VCovX@)K5heXt4?gHrd{ zRg3?d1tv5Ed5QO=O%JdrtZ{FECXt4Cn`XG`joSf7aJ38`o4Ec_v09-5OI+8jW{!KD z-vc*sBWuDZ+=Ye(QNmM;7iadh4bp&Kjd34)JLm;XyDJReZ6PV~J&QeJ8Qa3_IU^zH zV$%6JS zsV8-6meoh^<5kU0mb{EhL~KwvpUwqtiYOR8}LG z9+B3qs;*=KRv7_>*R3J>0 z+z?}?SUHeNKF`Bh7!#fDw=(V+<38q0#7)W8-=4qEUqDf_n{W9ea3>uT@UMqO)+4YtmK3 z!gnl3`-}nTu57v~uE@w-OW@`^PNUSA;t^Og3DXE!O~byJn9{>`zl z*w}+H->a4>Gu6$?=BuYxFx;siWJ}oPSbC-;e;j;3ff7%_afe~_kE;4h+6EkULbq;K1=N>nj4Z)OHj1rBT&p!K<-N}H~pD}}FSApdn8*2!wGEY)vGHxVK zYPd=o^`=L{z{NZq7iJ#Yj7wyc?~;A~C#y%7OfHjT3fmH(GVkUBbgLb(1Yoe;C4;86 zEP}gP)fKn$gPnIgQDk$274|D8YDDL>t;n%DSnc;yPInCJ2T#OVsM*aIWCVo2W{FlX zTNgS0`(0W)5wa58|Byv}=?=c2EkOmp{r*vsc{#@0@?I0{{;_Ux30@&#<%y@iS0t1h z29HI2!YChOeD;NakB|00UmaNi$J2e57E@y#aI{wJ)oX(hvwMiT+l7T`GIYT{R32qhYjn?Hq-2i_!KRyph-D^(qUN>)Fj z#Py;td}03b!VPj*tt=wVerlsguo>oz4U8#Zt(TcZfz~Wx`{#7Ifro>(jP&mi3R>~g z!$mBPhJ5}mJJ&dT4Iqn3=*+d) zz@1D?&#mF)=IGSRPR|XM+mm<7rPCJzBs#@au{-{1nv=8$zGnSB6;qznPB60feZ^!X(bzC64G>{@O+7hsZ|7>U^o56szCW{O7`%*h zWd4eTf*5|=KQVMNqYR3a@c=pRs+)&zXC6ADCY-YhBOJS%X(xZW8Sy8RVC`c;vN7+=(X^ni z&}6y`>$X6Zg;F|;czWs9kpyK-2;(a0*`ZKT6U}DXgm<>_B&$_63i4b+ zUdKp)$?4d?Js~#d*J=mUjI=pIl(pq#?Fz2~v2hjlioWY2)Eb#s-?gI!RQaCEv`^NR z&Cx0}kA(y>^_f_<)AZKiEc-WK3v^30gg)lYpLwirISL)Bh$=EMW<5u;jKJ!2f|z!h*L!edU3wiOvnHYl$Tj4`UB zcIt2zSyYFYacw^H6@B0*q{q(eYjn##2r%2ZTw9US5DktX8ZR+=bQO#ueyNm8QO8+e zXCA8NT&I)e+nFsXg)Dpjy^qkCX)2*4y0mQ83yhj7dyBH8Y7pOUBLLbX(V^4R>4}NbY&Uz(Pz-fZ z++nYLdE`5@U>ILchJS@$wtu)FlNhB;fhY=sOF`3UZRtW)f#)h0l(Oxc&u-A8fV#PO zfyp8+9&}lN7;=kaB`7;WP4?J6hadVU`}x6-px`R%9#^{8WRNs9k_26lH;mf_sM^{= zW0gg<2>bx(Uc^We{Z~eIirj!(;>I1R&%s(`M$tlUFt5GRYC_oJK1iEFabHI66)(PH z6&}8)N?AvrQftCR1}p1A{u?imcnVlf#GH8rpAGm9ji`PhJ|ZsVJ>o4XmXEkA>ibxb z#j}E5ehzgOBT_XZxq)Z+kiMxGkG|5 zTiT^Ff|HNn;`RHZ=h|EAPOwFqfFCWDw^}Ot@wcD8`s}&dS=f{5+I*0 z$+@p3;Ua?s2{!|T1A8N5$J zCBT9lgqd=w8{pPVcSE;$+bj#-vz~M6*onUtC7@_mk_A2v+CM@=mCA|0tc>Ndx6nT; zV$^Eyq+`m-IMt2GlFh*rG4Jc@v>Ahr!R+41|D6Tk;SSfnIkA|VCP`_3Q^FZs=^Cua z(IYPA`lV-`gSu$4CD(Vq+Oe7YVK0)SH~4A?b)dyq z)A!m|h1%cEn(=hD#Hqt!1S3$<06m^5J+CK6&E8&4k94l&6kREU-yh_s$f+i=Fk)r1 zsw6of&&uk6rSe&NQE+*LyW{o#J59f3k6TQ88-9=&oU z{qf0G76jzg0oh)gVNt~htTR1nNh32GX~YpD%|DM^DyY@e3XO}_H80$mA(^jF_lP1k zxHdwNzK`u3ydGSE6`Jv?3Bxa$ers`Myk8HkSoMsYU^utIaUP2(1q$g_-#1U8+FJ3m zT+pw*{x$ao`eB@R^NPtM7y16}Ns9NEqGnfZQhZQ*cW1s3pwL3Hm1k<9k8S@Dhx#r*y}lImRt2c#uB$Vw ztwD;E%U27`2A0NV4;4<4w-{*=ulL5W*y6OnaJUBEGvCCG2Jy_z)rS$lB4Of7*nhzs zz*@uAWw(UbBi8)7th);7wqz4-df^?s%EwvEI{lq(?uW>jX%GGb3l(FXR8wO>+XvX5{?IGcR=IShzFnK(-g0kOhrrvx$!KVu}sUS zV;x0G2hTb?H@eOeXmA)ZGQ7QMlcrOt7LQY(qE74BSL2~wr^MbV9 zyo{rV7irFc&Lq6P)TmnT3GhVv_)4$l6QCg{9vN0axaw{Ey@_7W9nF{ccnE6IMH2lr zwLP!9X>cI}k)P+E4&Jxr#GjgF7zPC>C&@O4k^b=l$|xxDPq=i=ixrC;oc_` z4$U8R>pklYp`G+NxvWkVEO6VUl$_@|vD`(Iwx0cSyV{eFyri{3HJ$B!5orNN54OuH zatL*c9k_DZ;!z{-tc-py6|ahA!JojgDJ5Il)UgyK;`T)y_tlCye{0$gRcPATn-|zO z+YvYF@Z+Dzw^7#oNc1G*M$DO{8PpQU@RV*_3zV%=IM)zuZGx3B=k8IRqxt&=W&V;0}7ST09WKQFSY zKS>c2TVz3l?BMMa(^-#M21m!R$4po0WM|q~x9aG8>ukY9F<92qZ#?6JI?>uFXv`!x zGAw&Leb$|`h*Z#kLN;?#^V)tY>G9=*-tk+D5u^4MMTchdT-zcQsEaEr?h#28k&gSg z#px@LCA8m84ULy~JXu{6Zyb6c8p#HG>ii)5>_aT=SE)@FTs+>@OU^C>)*COxDtn)<&P$uMZxtSJI5?oT+FpPvH{D`*e?ulGufb{L z-|duR2@vqV_KY$S5Qs6UwwnnfwR?mjt#Qg>*V;`~!6@?lf@! z1oyMR`2omIQHTITSE1%{@eqmHEK6YFZlTR8{w}rKTacP60eL`4K#fKZq)WMa@lit2 z;X*FtSQRMXJi3A{WbisuyW@Q9LI?nJH};$M5~b?5D8e12hHu|OG0sa5YaQzf(2Y&p zTCyK3hWRT#zdRCKSC^^1kfI6{4Jx4J8n^Un=RNBbjxn<5=K$RjN}i5+I;-K~%*t7g zPpuOQRquBe`Q&tz#-UkTr10n+Wvo{y*db0Arl2G{-q+X`q?Fu5tAEkb^&!_gf8&h- z9K@jU+H6L1?e^hmchNc2y-=XFH|{|gOW#aMPBP>sNI;OS*tPS;jG#>P)<05!qW1~@ z40xTE6voVB&P-uRyWg$nWZ3JDV~UmQo>Y9ky(agARcQCSZoqEMt)q*q_G8j@cz8u= zXNw)^uh@+wh<&GzROhFl!{Ha%Ed~)^X9V$RZ-l*4AFGkNqf*ZiR)hVkuEuz2S-TkR zKt$m(RYp^YYx~1qUqX^;tF}~%P{aYl^gayV_Uua;48ll(wd)eXr}$~c19=xTq2InE>dSqLY(m*f;Pc5D2mnK-bnVCw*%1>C)8eGo-6?x5i*P&b$ z+)1$3Wb(_GY$#Jco<12JRGS7GYF90HCB;2&!Nr<|YDIaE9)WlADB>$rbR*$XA)yYE zf^3Q4jacEO$k&yb)}P{ifmA~LD(A}4MW&*0Fp(RMj2;)xlKfVWVx;D9sP$7D+)UGz4N8&l)7AyJ<4|@K7QHv5Y+J$;Q%g{lIS1vk;K7dE(}tD z^%KtgdvAf002N`kQ)3pAMn~>4-D%aL{9oHLcMBpfWm8i&p=^&gJG6c>ewty*PwI}_ ziiPrnPSnbQvUtw$YWU1jBF9nZYLvC@se?z(I7PNZIJzN(-xhXf@8ws|RC?5$RnIwO z&noH?y@*m*4Xkv7S(%-cYD`eeVg9$@25x7Dv=QRty${Uc}tv zoS|AC^zcH=y1`|}LAH6i@O4LnU*pVW6kqHgQXtsv`i;)-O^~o2$Lk0sC%EF&t;~rh9eJOaqzw>j#vK9ayvLH=xVqn@^UKI)*6pfKu)+E_~)M1cG<(~R)Za1GP)}!34yh8x94#e z6r-6m))%50yQdBh!)=lNSwXJ^{So2wPcG$2l{rJ2ol2M{50_d8>*t}D8#_Qhu&dpO z7EYUg(b8GW;NE(@#6z$*zZp%pFPEaeNmnQ#<=tE+Tr87S?}!0(mP&Rml&@o=P;e+V z%Nhp^V6z`R{8R^Ph6(OZiz&T)#a+|8rcTs4Fjh4fwYTxy%-_fYwZIDnre#U&opi#z z-$R|OOeHU9v>{=L^9Q^8-Y0z_AwhrO|3I+yb?2R<=|wPmOgOaibk!73S`N~%XxJ{4 zTdO2i--tLWCCst84w5h(dr1I_bi@XJa;Ztc#d7fyFd6sZEww#{JVPbvi&YSL=dgEmOaOWLXeOBF(m*<99Za+loH?TX zPg)=cqH{#T$A4;hE!dUOQn{lyhkms2`(NMAg9_pTM>rg6T%^8PylcGVoHIW>8i<4VsJhN2LsPLT$J4K86>aKQbIH(l!ow3mU=3MWJj+5 z@TSozpum{O3BJk}Pi%3F#p>sl`6|=bGv53zsFTl1Yo~6_sXk+;V|0at@Wx=B>l?*=8=KV`uwPT55pad8tIly*`&Pck)bv09J6Fm zW-gUd!G*c_6_Fy7|zparmG6u z2=3G0aJ)DKQ`T)>Fb!$%0{gE|+4HLgkK7 z*9MKv*c@&s6%1v8KfpmtoTUryzrlT|Am_^HUFl57)#OQO`PTXuzYLTPxwhx=t|($h zb0^k%?^ep6N$J%$lzioEbEQ9id<|phk1r3hMLSTWRz~^6|O+l;1_BgoG3;bGNIg3Bep!5%aUu-3XuouJXCw43a|}ZFTq6VKN;L>A@to#%T>4jI?*QDDFQCLmPn{riPv|Lxwyy~{=9lyuN(;{B!ydsB-N>0+K zR4k`yEAF7mfRi1Wo)!SlbWZ>H{icNu%r^VU$v1?@L0B4oT|Cu!HvPR&3_7)N;dNT# z_RT<$3B6eLGg+V1a3A63jk_{%y#c*G2RHhG9t(W-P`o`W)S|^luTu{H0#7T~!6Zt( zH1ZdI=W-|m1stPqp|me_&G734(X#P8V8o|!Mx#kKt7zP_Nlf@WT(TPa7w2mb-!hmS zU-X0bO~|=4^(VYDkj?@6^j|mo>uNjBgSk@w_3TDpEiF~d7-*CBw)C(Pnz(ZRN^btc$e9@E#|0CEFKv`Nf3+Rib#-%zGjmjB zfxFfWXmKSPDo@sjY*6x`cvMKLAdugwx3b{&;Xq1x4L1mSE|9jSIWvE)nA3b;-fS)N zVXG#-WW$zwit)0`87zLnFz*>a%!%^&Rt0cJYPn4M50BP8 zndQ0@cH+2W-lU^C!5vUN>1hGRQpe{J7D0ML6D-{h&l@#(($%;Vj_3OI_<6p`wcb3^Z)@4@K<2ZV0 zOYa~9gHL6DdKpk>`+<3~i%mjjdY;&SW%y8~-pgFmvfSx3tsBvtKjz(u-N@@*@Yr*?!o`=Gz`gQ+2*^{WG&kDVE9y)I4G{?!B{P;0S$#jM?Mo_1K6%bO1Y;g|!@34)~kP*Qle4Z{UYJ9p(4MP4JqcT%umS z&OHu}?aSys-ESP&d*Jzuly<-5wsXFKpNpNVG}F|+)HNOvaUrZW)Q^!`duR9yU;4T< z9E3D0{ZIBq_alO-pH7%rHbHd^jw@1z3}YpGbA|Og>=B zW(eKhCNV#+KU%OXuj;I)#R{35^W%3?p|sL5QP;>+bO9v z^(`?36X^_cOiHSZ+H@9g_-tfE?Di8KIWy{=jSa6r2TsreJa2-<@`D^Q zRdDqJ8oy+m`Zi|DPZ=a!ZiqMyC9A3xUWKcQTJdem`Z_zDsTuB;Q}SBqFJ8^IB1|vH z>lK;-k@L0Lls+AkG8xJ6h1`9VGEg>Z+%F@cMIm5u%h=Sm{YHqI^QNWSJVB0evdB^7HuK4LDw@rqWq6|TtZ+uBm zM2M~^rh3QX#8#%LPg@oGN$eapn#Y!g;=h+)34!`~`uV&%gIPgNf>`1Ay6NWiER`}i z@v=x=xhsxq`36YRkxeqwNgVy8@4%Q&j+QY~Cv*cv3esYRzhTL?^Q z<`uQZCa!`=PgV>6Cfk?L>3=%t6<(yco|M^iED5c*l;*}zX&^{Zj+-{O6#@X0My8bg?`AOMcR@Vq$>0w<9vE>7+GFp~rI>m=aqM$Ps zOZ#Mh8x@exMBF@{&8O5Df6z8CRfPzq|0MS@TV~s@CTCij^TA(G4Ds!K9^s9uUX5G; zHBQe*&6nIr0G-X>wUP#u<0=0_dc(A!ZsPz|63ASl$zs3 zisXHoA1sr_!x(zm`CAyCS}IvGNyl@=6!um#(Dwb{Qz0DRIU1g4iL`bl`~Z8MHMUL2 zk{UsjV6?a+>3+REG;}F8ztP`?;hX=XfH#3oZMT0N?YCQX%ydcA5MhelSDb6M1~vzY z3j3e9qe1GeVcc&e!F0)H8-F6=gX|QILbt6!chja4$*ja{uapVgF?)0>dtkK~;h6;l z3qPyl-C5kX{#BagT8?z~vWnB8F;{oZu&L5ntTt^NgF(dc7^Ax`8AKL4zYmMs)p znasx{JNLt>dnS{LM5nHDbOT*wS_G={C|qGZxL=sq!Iy(>g6Y)U9rF_-YF1(NvCJcU z#NM%JLDhTi38DW8H-jHwfPpFcuVr;)Wror^04W)-R98KUa>>%ZszH8>lGex9hA>z< zBCyofNLv+G2sif+6?RI&xfBTUotYfikad}_YCYN)qS^>OYeYB;C`A1ZwgoYHy0UI` z=cK{Ky@kg_cDsC8QsmJh7u7L$(Hp%Jvm)*ZrpVpydk*Kec%c?In*%Po>00Sq6CGk} z!&=?idavE8vX;N8bV}hB*CVhUrN+<*N5UHBl~Gckln70dGj&HBEEF6UBm5lhMD%m1 zTRf`tJMiJ*bx|i#c5S9VqVr2Bumq^jxZgFK(4+0}LTWAwNrxtWTIW(BluK+SsdHr4 zKVYdg$r~P=LrQKoATE2~<5inXtT%Egb{T4~J)9DR)r==fah@4+6Mxfx#A$c4o^sGb zR;w<)8abifsyKl1>qPd6iLH^R`}Z4G{MtuVbDh(D&s?CVnTZd^V%k z;;4>(P`eOb#@jRkQD2Z|rYnFai3ckM_)#Z)?^vkeEd*%Op6^t4O#mZuzNhkMYtaOM zS0^i5Vcn{Xf{~4vv1B^rl`U#HBRTmv^O2CyH*a1EN|);CInQ_{AszMHqeje|EmeYe z$Q&8AkRN)YTUH4r5L!6G8|eK#X&h#o24kBA6Y8KFe4pXP7~S#JU|RZFtkDF25WH*s zw)lQvWaY^s@cvBiY$Xbrr*^PULT#+l_mpRv2so54I3TjB5w2N60uLmXn)+U{b-z|X z>ourcRJ9+4ogaxmnzF%#MT{Ue2<}Q7VGw4pVG!X{lOOD&MI9|cPU=5HERK(EiMust zABBmBm2hpBq^TW8K2eLEpN&dAkPu&jD6$Ol^GGTU|m{T6Qii7ZeLsA1y&5wGwas&mLE}Bby%w*eWG{((c zsQIv5-V1o!xoNk17Xe>Ou~y=>a1ze}G2~5Ud$V=l=jJ^yyK1NIovshjtaV?wQa+A? z?{#@e1*jUMfbA@{JBLJp+A#c~D|Bm{I!O`2OLkuQV}m+m=I@Q6=QC@1ynx4;L>s&D z#|kE_?j(fXe)_IghA}20M*u9*0j@TWQWN~k9F5befAphEpB?wqJc&~)S$`1^fHWh9 zV;slHYFUGw_*p>D$CJcnZ|GG9wL?33p<+G4(5hUx;gw3) z!M~M0S{{DPD6H9E6ad>s@V|8o2~5M%I+js2?kLsWt7kAe9qC4O!qT_{4M(-4rHPG*4t*f>&UNT~x-K>V3Q&xB_A4u)5S5=MI=)nNkc=44# zc);~^^Mr)}A#1HB4R1T|guGka6VuZ?`@6X{`E1lbNI)|(>vaIX*Di$F(;m?RS#~P7 z*RF4gsgTovlaPo#?n5((p&fcc^PjuBWnXON6%Ey3+4^I>?}WNqYOg3B z;~MwaCs|H@^J0MsaV)4~TnD}?dmFs0W7yz02kpRL~7ODjSos4aWD#kX<_B@ znHu&&h5oCDvBW%Kj6L0Jh3g`Bbs9IUsJc@)>YgPVnVg{ zS${#ndnW{Pt9%%lKarfcn940cG-;FPH;k*ii~jxl-? zy034~iZ@TQsdcYec|c8e{1Nx#^8q3|i4pnzqea7%nswWVc?X~7lX?^!4_kBi*T+@i zLFl4csGr!ub?o}~RFEIlTew!kP?c~VU%dQ0k&-s#^(Zg0hoH7H^$OJ%Gj`iNc{}ddfRa3lXYth*H;O{QaM~r3)#ALm%*1fY+h@uyJ z?2~=29V-77yzJM{Gz{2VhFWv*H293&TkYsI&kV+H0*?}zhNa#Szsn)8#u|@JU{o0V zRO+-12OR&Iq0LHB?RXNo3RnJh6i~3zo67?8 z+uqp6%XyU9Qb+a?hNIs@ksT=y2K#2j;1;9~hn)e8tE1M?g=Ut%bL%syz2$91%JE*M zR2xnNj~QW}CX+0Tt3h1b9p<-;s!I$qwS3N$e!fsw=X!3j4vWh9?NeYG>cU2&=Z5B(!@3eFt6ZrnAFeM&E01Eme#L0%p7!$3`TD8Lc7VP6 zfdtTTp5Hv@cz=eGs+tt!I4%Hs2H)+ZUaT9nu{I(lP7 z+h)8mK5EfeW|QBEg?0pisn(n?FmUbX7cB!ujD#fTQhPlxf6jp#cU%eclGIfG z-hrT0<=YcOm; zB__UQf;#qmnkfuMFE&51)Ds7LeONgV>KTDaHNAt1Tq={P!xpQS2QvZmgNI`2nUmH?w z2XJ!yhE!h&Q^-9EWe&hwPw(ggUn|r8QL50mKUef?yE}vaMh1J!#HwgvfWd|ceHaKkXfbOnQMRY-e&l?}S#S-3wRkH(e zsOrcTB~Dj2+fA6+)U0$jN(e|&%Ce7X8*MP#{URhUZ7`DqWk+TxhU{h(JGlkF)py5f za~BO3lEKcly04Ym%k95<7K?sFFX;H4YPVo`p%)~B+L+b1L|=}=x%`T{ifO8&StzJ$ z%$%|hy%46$C$vVSl2y%s!LzMb+W6S9vx0>E$v}haofh$Vb06&fZL3Sn_UOZv{&&5s ztQz#&D&#(T7Q&8?jUZk2B|m@HG$<|}F$R`n1aB{l=q;`L2vRT73csAObuqTsUZ`*wfhIL$FqWQ z@Q2ULaD!cvIJUjD+KyPI#K3I!{wmoHi5gvtee_)oa$jrET0KI)v%9+TB7_R~yE)e~h88euZ)|-B~f7t$*Rot3s z!pv+aoanXWiP*&$_z0t66!na^XV(g(&Mp7@bfB@jHwooT9OSV|BN`ZB=I~9lyqAdP zeq+2s-6qt-Pd;}O3|{2GzxtH~{b(j7fTAzix6ePFhb`|;KmRDt#$5Pla}{I#qe^65 zFct5{$^PgWRE#%B`6eAMb-eiR8Ev_B=)$LyN5D=o6%o)J*X178Ah_E3xBpMhfNA)d z*L~|$3vZ`6%<}PAU0_$0raFyT?Y3KG$pHeHB1BvA={c+yc?h*By*fieqZ62<(-7$= zze7~Bdu!Mjiy{3|s*5JbyXXC(tg*ASYe0mH>X+uZh&EIq57J|Ekazp>L8;!>v2;UIe)YkMLXlKlq}?J<8x~E2)>RQ48Jmc zUeu=pk{WItbTv>oGY)Kyhnqlk<_ozjzPGHP=2oe{;L@q+=kA=sA)XsszWnw8{n3Jx z;tdX@C{u}1bwle+Svf^Ae<_j-ihk7RJsQ6csf7Cx5AH5i;t};BSLv?mENvcxlzO*% zEsL6mp{wdnLRoq*O|q?X-&3YPj6c3zM$b{(jQ?AzDq)?V!Ml{(~SgN zKo(%I*p9+yayw|*2sPp?b!xi0ee=e>h^$RLV`dX>(O!NwzoG0QjhA`^&wMS+p8B=E zyZk%-ooyP6@x8+9wtv20W9K~JOZIb#m5l?hut;WB=a6D9 zh3eVPw#@-wh=IpXN(S!UL`}^N!{OQTK)T9yN!`MV)jX8_Nx0#ZJF76PC#AcbKxt&r z2Bp<4XZA6aT;K@0{3M$y7m@jHU3DzsK?C#$Nel+JOGzjr$byRQvn*Bk)481O`eN~KAEirAg~JZB_UvHOn!9B zR)CYQL_T|qb3~!3{?|(zG;lifX8#C?k<1A$GhcsQ2S}T4b$T#}3vX9&3LQPCaAd^C zB?Ph@Q|Fke5rV(V6G@=S|Aa46oA9_XrPNAu5_jpG-5YNh;D`M(bgkSxa#N`JEeZmE zPq)Js_L#$}7%JYRK&@G!->BzuLl+pg@^T;riE~LmZc=~ula*+_26$})oERR=F1H^Lwfn0 zZ#6oJCGp8jG;QV@XM>JqVy(Ue<#Wh^xB<;w{3d-^FA(@o)A_}63g)FIR=fSREf%J; zf8XLUcqHXwZju_W8wNZPwjx65Fv?(0p<*v~uorU?By(*-8ipQ38(Q^Aq2H&SsDGAAa)bbw7AWBAL-aM_SAV_N^}>Fy>!xFt;bQ(fWqA5HJPw6tW{QnC`9T zC%8SnJ-wr?Rl9%PLGh}L&k6PkjVaLaHlh4MYees2Z@iNzok;UXV7BzMk299s-h#_D zq_xR%KE*~-+M=+TD~Fl6D83{>&GO!il$~sC2X`UHZFH^yKIMu_@OyNq&RJ33l_xS^ zp-I%(uY0cQF9aV?uzAUr_0edNHsp_VYwVjP@zKTvu*nj|^Gr<|m9_Ca&POQ^phcBq*Y|`A$C={gn3C z@+DTSH`poBhvsijsoXgQq<5OwKN@Be+&-%A)$sLQ1svN3cA!R7u5`lGypI`$Vq6VF zm6>T@`73@jGxUPKWyx#sO?kX$i}<@_FEFvSexW@##Lu9{X2Q{xx6qBsnLKDS&%_|! zE~S`BAsH_|P*b#-u76J`J{LBbBZE}1QcZn0*gYV$XkEH-x-Na>h861WM$Kk_H#rQU zm^L#InstCLa4>?>?IL1j{w*P~t7JRY+clDQpb7(^ote)H!xXk4<$tz%&8mTFL6_{< zI{xMn!nNyLCbsO1qTj{wGk{frm>Kx^qJmM=6oNMTP;3FC)S)mE$fG_ zJ^15;16(_fIhaYESmw}dnw-Vh!cm$AIv(mxujK&66@q@iAGFgbrJSW@ms#l3%6Bl> zAn`0;a_YO{F1uAfwCi!7#PjKz;a5A1`Pw-t-s2v8JJMPyhZImha{&i9ENZ2P(j4@U zMl<68r0pIK9wr@!-jte%xY858;&iWHJH?|g!Q~_;lv`1PNP7?{?DZZy3iHj|fnJ@A z@x>zwsp}1u+#ZIad-HUHePgya2ay?8STu@)KuYfb-&86hx52fXv8gmG0o{vnIU(Wp zlJj?G-y~@iAKUVBK$6^#E}l(ZMSLE(M z*{5R*=0x<7(~C;({Vs>^5MTY`GmpcvFvbz3t`m~_Je+^y^zRIfw6(&|3>EuHv2<%t zO_6s`)`+&LyoG9Ce-u3%9-P$gjxq*a=bjLL1=f76nJiFf#q>ttKcWJHw&F#ZX8w8W zApmSDnUEOiMGkaF!Z0K}@0;%se-H8FdnjD%d&$?otRi~0H@0@v+j~4qqWR}=6(evR zPz*F@ZI7LOOm!_znf%*ZyYW~0r?%&r?ITt;_$Ul|6}u7PO>LC*{Pj4uU{>*s3B5;V zAo5pDUr*Ta7CddmPi96{6nNd*)ZG`ulkv~pG2)cyRoF!0ttd`L&9?E`!AILGC`z*@ zq{qx7u{C|v#6z_$rWx^L0`M*7{ztEN=*)J%KR195_)&EOgKI8Jy zSRg7RLuUTd-2K<-TQlKszb@^GF3)iOCprFaasNMk|MAoNf0n-P12R1o6&13u)YQ~# z`YX9t{@-q>TV6!-VC7?3c#xVT-zJXqQYAO3?!{D!-c}!@p`jsn+EQ*d!?=s&o?K{Bm{!m_RXSM% z{jiaIaY9r&_PQ`0id8pH*H^}ZV_QrKD72#?&LsIm$N7H>{6A$zjRtIjqKkrRNKnCn z=IxD&pBftT1_l}t0|mA+2SiVQzbo*vj;t6G9Nb@|iI@i*A77Mf2T{SPcXM+x8bQ(r z>{Z`G1K#Eqdi(S=x19=WgOl^>*8WCjPxvcMt@Sgicleba3|kHTOjL%t*U=K05_yx~ zM`!CeM{IB!$PX&2zUU&fMic@zN^B2c?<;bGqFOLI|2_aIg15J~2%b^?3D9-Wnn1LZ7no}G;FtDxPy{leL^dVFo+Tp#m71#4)adT=2 zNlps9E1XX?^9s&YDo5*t#PmQrD*1O9nHp#FdpLYU^LT{Q@I2s@b9bT`KxhW<)*!UI zRp9yY*pzrI>}M@;gvA0mK$>QjJrwNX5Mf|hyu8PXtVeAz8wD3Z7 zg^xE>Jgf&aWLXok?j^-dv0g{f21?+C#Y;e-av-+Oz)~yO3*n^LJa+Tb&iLTgtQq3P z`3A}<+GG#*rG#K@sfy0&2#Jy1`H!`YLO3!}9_<6DunSeZVO~WYt;C;w1wa~Oq8cv* z?Cz`TO}cMlb!7*E00Ylp;Y}*O)6x{}drQx(!z}Hi#cc0f4MZ^L#WriBUF0w<4nd{*`=4!o8bS!!JftmWj>pNTC=^_E}c!27VbF#>0)W6v#Ac$9FT{E#ygkXGq zI~CoLgpc>xPFhc`Nl)Xn7*4Y2Pa!{gNl_Lz0YNHsy4GJFt?lG%S!>JB49EhUJQJH= zE~JcobamY$;+okG`($}|Yk~TmliZOK<--T4PX-?-YgYEQ(7JqPxr_$H>PRts^35QT z@U9@dD~i3Z*s)iK1Dn?TJYYz)oJ%A{qm=!CDkjV}m5enJPAaQ=Zh#^Nv48;|Yo!LHTd0=}+#bUyR zA}QW0yc}fy?l}lEIzSdecyL|tQ`X@GkKNPM5hY(;(mDQW->&9era=O4tq$ef0>=l9 zxik9;ImCaiNQIDlJy&aWvy-sM<15P$&x7z-1_!$6M^fbC#s^O9!A5Qnn=N&uNLYcB z8q2#o`{%Sy*r|#C4?vGD0l09c=Wk57mIncuJoE`YeVsAY%v{;sk`V8Y`7lu2v?q$3~lE^Zh!YV2I=3DhuT!n;!(Mqi(N?>t9;D--f} ziXTaYrHr`1o>! z15K}v*EXZXHnB5b!2*l3`BAY0y@triki|)A1T`egU%$KKr39T3M$bEE>%^nf6}s(; zan`%=wQTR_)@2Y^P}}8H`WCFY+Ng*M!xZ>Mq&F1ouGNsOXj;@!cQ0ksd+s_7sz%F@ z$Lx{sFUffG;5<~ijM*Pk27nVrG^T`UbH|2!@#Y@=0yrt2wq6KHK&ai~0d z2Ta!5G~oj_6ASdZ8=F?=$(HDs%bgOe>zRWe1Qds*T$l(~t;)WW;EICBqvacR^Z5n$ z_!5s8<_2cdE2Evcy5vx{TlvA0@yw64#asO|$=oO^DvWFOmTVoZCKpQ>GDWJi$kofU zz^*pAu$CA2HHMq-b=g-UYWD`}SKGSOQ?5^fEXmYPDk}EPg}*#c817nH;3O_p0@wsS zLnjYlrF$rY7n>)6)Iv9}F2XkVrH#Xiv2B0N_px#qKoQ*|_IvJ$prgt8ac%LaoR;X~fRFRDh2m0%X5 zJ$j38nSFQ(1=KGr`@1{SHxwIG>%L`URH!d~+wNc9F2}bHy+03ltlWTQgG2v0j?bNB zZbj|;W2&>&dQehhA_@Qi->?BxI=h=}gu3g3IjP>lN}^`zQ|I^+&v zM9-DflG*IvZ$9B>H5@?UGBG5OZEw7YXgEPXI)BXV)KW*u&^jY!r$MgO zNSX~^Ef(y=OLF$^wtK-^e4>!5BE!^1YM=B0V*uRY2gIEqYCV+0W|Ldopp`FnMiL|W z??qNB(C;gcWc^40lLDKktb~VCXza`|NmI?_JxPxs34u)|_pP@tLw|zh3T(m%D9G;@7usz)(4%nmXd|*Uo`# zEln^cr7r@9mkMZ)=VTts!i2|Aj+hEDbRH?yxgNNLx$1s~*e zr%D1VG~fg@AfpLBJy5W3rrtiZaK*0_x=R|6&~pQg_2EBpRhYn5ZpfO^NqY#YPif*} zP8bJ5BkzDd(tM~}AB!F%AYX#FN!*ddp1KwTW8m!}(%3y~gg8QtSSYr7#$VJKDG;R(RILPv74 z0NJ0+aZL_tc5`D9B--7|Jn9PRFcOo(4}8$a)FcoTYihKG+*Df(yRox9X~>#1^ z9Ay2nyPCM|FPwTc=XHvB5HG9=fcb;OFwDfKweCZEt$KpmRBmgFl82u?HX!&+Nyt!! zuUZb>C~Q*JXL;H}5@f!CJ6uggl&u}S>!%SBl1EECzNq3v1k#Hz$R1dMz#jg>h+JjJ zu_ca+kxWM#N=>%)m>KJb!AKE`M(&Y{^kwH8`@FeRp~}2ywcc{ev?9l(l#ssV(RDLAPCEW%-Mn6XvM-UyNH8)o_F}8sjP@7 zd5g&h#--RLy!l;F>z6vCA!!UO3v+w9uUI!f56)=*aHbdgrUKFv#pEi zkV4aiCFQGoi0XkvuMpAk@_IA>IH++D9Wo?Lq zf__u?SIfvSO8eUt{y(v$Pgh8mdHa#B)Fd^E8wxIOW`9zYKoqI_{GpkNX+kjZzWWY_ znvM=g9;{xVwH!e)HChhrjJUj{$-Af;)s-6<0qFob=B zO}$2pqZY9RK3#$jO5s9M`96_~n7><4i5e)JiTwUXW1!V(J;z*d=zb|vPkDIJ^PKCC zmb!{kqXLF1F#AF>*qXJFO;6s-j`evo)@|2|#LMgf4$BDKWT_@K7g zC!@Djr-x8-q2SpR(QfWFzvII~i63!7HZeM8%}N`PSsFu}ZJ@Uwcin8XKSxXhy+k-r zTFF`!QmJG4^8EDli1nm zx5>?%&MfLmB!H!r@>U2>tyDC0!rP)3rcEkXaw4aIr z@0n3_d~)_3BeaYOZWw@uen@-iFY<{=ZL z%$nj$YhRbH8zu%2>d2-DThzb`lIdO7ae(m=G6yzv^BCE+Po=J6^>ew=)R29ZUxfOT z5KgKpBir@;%|p2fg}H-{FTdHb_wvYkll|?*QPXU>&if(5tx9{BrbDzJK&hDJkxsGn zwuq2aMFY0^s;}Goa-XN_XWk0mOZpX=S@x0W&`m+6`>b=M&ICQe)L(w8@T1M%mAHSn zfpytONKz3|?&Kv0b_hLxcb7TvN5!#L8haHkL=y1jm@kV*$m)wj`QX4fffy-p^;&~5 zwgGyY8_%xQp;sVTS4!}EAZ8K>)$|OMXB9b=dTNt8|GqgO&b7$9St{lgu3Ghunra0YZX~3HL{;zA?y<^$Bk&~u!F}gZ z)?7HAU;;ZNq~{kG0#S3v-P}|wzaGdyST2~Kd`ARWe{>+(eZS2dhP{9oInkDon!phR z5)e`T#uaU_o6d6NLy7mUJBZH9HRF+H;W-sadK|_+@|d)vTKcKA z(%mC`ooNBMQjDQxHHxHShZ{J^sz!TBDrH1!H zU(Ihx4q-U*mL>|4)82si&K&L6iz1YY{utDr(c-G-1SUo4=!4z4+DW|jOz(F5)Gcs zft)6rxuKaZLmJ0G0(yEmIalIbNZ|TCOzeY8EpsIgLYYlq&FAF*Rc+&Dees(9ozr>W zgLnW;s*5MQP)7zdds|dhdCg7$Gn%tl!g&8znnW_I$ZO+QU^J{o>NBUmBH@qWd?q;x z5D?IL2SzBRA!6Cun`BPS+2<%r{1Ih0GlUmsWe}Ql(i@TUQnM9ak;%AND0zm*P?C3P zpHeGy%&aRhe>!~8s$3#t5Df(vQ_sx6hDAHUKkbwVjK;JlTi(7bZcmW#_^dv%g%Vob z2;Z&Gv~=HUJ=iv!w=vgdUL8;mhL8gOxSO)gB$ zY)@L??g?_9vS6p*9SzZ~z$f0YRW1Zg-2{S%O%DfwfY%e<8)&_!L=j;ls=fKs*~#d} zERDqjdHhsSfgz8|UM;=xy|qCbE@iqPaUo2`J1L;ao*`kgLzc8pR{L{eVyf8wWDNf{UhcTe z(AS<2Leup-ub_~;_xQL_rrKe-(&??>0fXTHChXIM)8c$Z3`98w%-vKI=C;=AEh+Dj z5neCoXF^^n_|FsX#I-dl``6b>n5)YKbtQIJRsoNWZ_kDiy88p?QRzCvaH?AUP5Ddh zy37idYN15O$}GJ8sdZ&))LlRPLF)a(TGx%pG}O3Xez)Bknbx`OG2(FM=F2w}M4?#; zk=+ntag`!mYXn|XjPys>&%I~=jBPvvv*Tg+-9u8RZ?G~eMX1FuzyOZa z`DM#e@boJoad|h1ira^@{4a}vQ>XjxZl&78yd5InhYA0`_YJ5W*djt6nctc?{o$DLCY!5g( zlB&yzK69qu9C-5yDT=LulVtzEDCrB(S=>lxn85XxSY!{8|Ez3(1&YjBSq1vAa6uqI z4B>(lcd>+qgq#5fzgywn4^f<^T;i9m(!I1o1;#Ey=SM*WK5k!}auw!*J{~r3JbcZh zXFKL5z<9iAx9vQ;7)$$eIA-bOmT~Dm@#l7D-e|Td0*_j+K3}ELqcCGBkhVaw`%O3g ztLP)khSRh7n(g5Dk+r_5@~}`0oMRNKy)u!Q=eEb%^Ih!IbEtFD!!Ui)^Fb}fZwo?` zc@wY2%s0}NhZoYT0Wv#W4=h^tH(EbS6`%Z@nwBNW!tKV=)f~ZHk)-QmG51^ii8Sw@ ziGx}E^5{E}7QGd16*WgqA~Mk6h9%~OpsI>*K9>o2akkb;^p;2#cymyv9v{#E(FHWp z*+-AFd5M#VE`(Zx)0V`MAJ)}wf|$jxQjcaEjV`%aSmJx&w&6D;L$URB za#8x_5cw1`v-@rB=`~Sp_*jEaLs+WceAXnVarX5GXEY6RH75m;@@lY)=U}n*_fn!m z%}W=xKh$nL633Fmjhth5G~R_*ys)F4UmwkgJJ7_)W z{{d)gPmc5zMe0nq^6JjBK@Il_t_QhgE;R$!&Q$c}88PNh!v2Uin7v@ux^GK%vKqr+ zzv~kEs=kXpZRzQ4-S{xGFNeu^B3W#y{K}^C&ei4Ztko0e zqSY00;gcQPa&(nc@Ig^qIRVV@v)?|K)9w>nc3vc$vl}^MLh!;b@M>wcQcLSq<>@38 zze-D-YGp3^zH(1lDfem)b&ZS*7+T5;1SJay{GUIsV1ZNpNGWK^8j5*qdg9h27%<=W zP7f;u)iLSfX%z+b{{n1g!Cp(o$5&8+!@B8TI^ zW$X25!@$Hy0FOR(Vc8r?a?}y&V~HXV?F=s}bbdyBG@#?-DjI%&-eCeBlp&%*!AD=UMmJ7^k4jl3_c-Vxc3cN}|DVs+1MW$O2|1Y=y zH{bGUliOMz24X@>NXcK|R zHM+u7v|lLhX#F45!h?6wguoeC!38}HJ}ebi^8BZ<4tBWxAX73YjHgtknhCL(R;Y11 zwEuIveNBK}cnb$OVObm%2W7J?D!b0Me-v%Av4Yy8?WhCO0EI(=VQmO-2v0rNQNiZ9 z3C#?BB6Aq}*u3}qmbFw(`MrKZ^_@&PayfHn|K`bo4{yL2*uRkJMu`CS3LtbB!n{pR)GP zFaIflB9OnjD7bq-|K5EDaTm~NY{s`&p8rE+|Iv*Uj~B246f)j_@A97mT@eF+Q_8qw zSVI2`{mHnzkwIXqM53<#w-)%X-FT5g{pz~OE9~z0AFASi{V5Jn%S+zJ58|JL{nxht z;I0>N0x1XFga2QNlH~^kT82!_{(mZ>e{{1Y{53K5W8*5?zY~Szi=y#Aw*N{IE?`My zEw6oHNniKuzb=f7pbMxJ3<}}zt8$6~0;Q64!8(Kai?E<%aY21iltjqszbnswF8%+` zYBd?)1Z|YHOaeClN0-};UT9FgYXr5LZK+Yk(oZKx-9OfTFJm9?#H%S%{n_{-mQTFC=nZmz0I z9uIDoS{XNJtkhDUFXcNwCVr@2D=WOw7dStUjqWODm`={0-j+YQjbutL&%7vYoQjry z!8-ro@zxHM+?{73?fnDIMl89eIO@4t$418Ee11e%jZgMj9R1UCVrJAXYRC@&c1>+f zRJ!RTzWM&{E=;Q94_5Vgm~a!pp*RjqXJTLpelrDCW2nL^^HsDmrA|1-yH-?=RemC7 z4siO-B(J>Dm!0WWh;Bh0)_a`KkqqT`VaedZ0(;YHhuv>-7MvK5YKziXi3^lN`GjZ7 z-~PtrA|Y=XK`mwONKGM@6$Vo;{#lEzDeYb)*O`a{@su17J9o8>EF?m=8S6oFX05|u zyY<7J+$y;u**B$+@nc&X&QGpt{EOTEh=ir_;bDQZ8~k4%$Jat*c1O1pYdBPyPn-qR z0La2ocj4-Qu?|!=Bh+`_hWUCDW?AaV{jTMvT&J64bZaUSL3B!+M9-XynNw!fx|esu zk+?IW$iMAc?@x|@%=ma!iaRtVgOu&I01!yvDBgF%LEf};Bf@`SGrfqvD<(v`#$H8| z7K7&OS}HaMTTwQxL}5n$rn(Q%&`=O7_(oRDB_u9i=aDLVJr*$5Qg(ZiM00tOx+1yM zfH<%6*o{ycsdI&Duho<$Bq8Rb$OTE*k9B=OV$8iK8ZLt(M-d6s5;g3kG`Ry z@U_U$=;$nWICM7aT@yU~CXjkKe5IUG4i9ScMs~&RgMVbBc;Ih}IB8Njhy9wvAJn4} zQCGj7ih634zba&$kBvqSW4TGYy1q}) zr1(Minlqtnu4kZ6#QPw>mB)OXcoIu-JXYHaj{o$MqOGzWC7eDvF2ox#i@m+w-NIRF z-e2-^Ffz{LW<$Z#ON4~HXSh(=OY>W?>V}P)1g^uI01{TpUGBXKcCYQOpZu}dX26F_ z%wPY2eir@8_iwt_DT-?uIN>C3gm;VNlb-pri|f62aZ%CpQt1vf1_V1>F!84ln=J@7 zQ&}%F%TKN%AVC~UXE5ha(_^)s)NWjJp&*h24zcT5tk%<<`&uZLNXUeg%tOULQe~gY6od3-O5p9AhQ@*^~W( zT^U=Ne~}keaze5%x9{r@v5YBwxYR6*dy1uoH_|cXI=FDG#es#*#4PPiwqG{^8CQzW zsSHj!n=WF>*F-1GMUm~P3b`tQA5Vw4i$unQtZq-&Vi?-;(&Yl?u$Nb-JGjWHiI7d$nax zgCe&#$%%uN?28$ti-)S0&vAgvn*96fw#7sR(n#rloKRi;-;0huB{WaY)!RsAJ5nfC zn%&wtK1=n%q%c!Qtwz+?daW=v#V{)|!Xi7>jm%ctmY15eQ>!idEeGc9*{}fA>*bY` zLhRaZbjEQsij|}G1I#cASg8t=i?8p4?Z$d1GBmr5lbQ@uhrqj5JPC5{3r_EvaQ4aa zud(@j5!WBOzHoQ0BP$seNCYIv3W#wRjM>lDp`{Lw=4p92#g+>w zUVDCXQr*Q9x?3ik7>>Z}XUfNu_h?6e8C9aI!fHw7#_V8+W`p`=YuXIdrI5bjh2BA;@0gE zcJnY?GWS@z@1z|TI3g^j#JFokkD2ddc1y3Xum^%n}(n>_Xa_RWVsIsLI;?6_AcziFN9Hf|-JyG9Yz zLe)l?e^o9R)V*%~uD2H*c5nkfc;yNhpeFhV$BOs0GMgm~OJ+w9)#${pr-0}k1fcK= zhWG07dP^^g_XO{$nW=N4U(yAJdfp3>^^IFfw`V!pU z-QDqYW(mRKIY3~E6dw*s_6%vaPv!73i#b_R{c;4zOr(UCTWUV~#$g0Z(5Z;A26i)V z7N54eJXzV9Zp!qlAKAS_;;`C*y;m4jOb)kk-nLE^GR8}Zugj{gRoFM}S2s?z*uzTT z|M9s~D?T*Xx=TB(c5_UN8|s_f4DYT-VE2EC-ye_Qp8tJPo&2&wKxC0PEwf!^xca+I zkydT}!^WMx%*Osb-HC#~!}j`Ocm29=ZqrKK)jm5u(oqO#|H*K`UDHGTiUiMsd3lZ74ajAk;*#fbxx+KTX#b-*X{Wl z?gklc+BkDS#-+x#qv{LZh^9*~!Nfi+kRxzbB70Lkz&?IsA$^#*lg`u9D!&TD(SZ2$ zj@3794RJd}_{m7zHnAoeIufdN@KX2}skc7|6y4DA&)}{(E$3Ax`SKbTWR=XJD&?op zI5Lfkxy|WZZG6?{47Qehjjc7PD-7NDEV?h5JFsy*15^n<^lXWR40eyvSB;=VPR(IeLYCo2a}oz&aoD*ri1MJ;7+1=*xg@tX~F*j_!})V&?i zymJNs0DC0qT?n_{P`jt6x^&25HQgspJLTjD9e0DBHXLCYf1un2*?r(X+o0T46$X6r zO{WeCglF_-XW2wsG2IjJ|7Q1ZU4AF~<5m>cq2wJl+n&_wvYNG0fx&>2uK!MES}WX@ z%Y@3VoGROcGL*B=1SLI#Q~YA35aF!R&L}yrzyFho7F7*5&RfC&L@yk&WcHVeW@1{p zchmRa7_4ECGXo^|HI+UN;yJZkQDo}&pK*9}`JzeqCgd)GR2vrNbi0zDbEc-ll?jS! zFv$u**0d7+#d&gOnhjhJ0a==h@GWU2a{fvZg|Zzm_Fe3%BZba}614SC?$~!2zaZTq zVEgKQ_gW=2VX>C*!%c*;3}AYm1C-CYVb!CHKMCXa;tZT|J4YH=xPR~N}nDIWUMcf8p;-U2IE%{oG-F^dzf!s zvY|uu`1p94fX=~%5}2zO$iSmSy)cw8e0A@aP?u=0mwG3`-SkywgC`{B@h9)7WSWa%hF2*4sc-NZ=4XcroxJ`SFD+zpd(G52Z^y!ME)5|8-Y&gc8e+y; zOAcxA6?q>CRjVmjE=9UP^@{5nOJuz_C&o~QnTPJY7+NdJa&S& z&ub36VbZriN2T$VyhycMWg(d;iQe<~o_?s&tSyj+^9hY!;ehtG&*qlrv$@jKK_}u_ zM}E3!=b+arem`67hc69v4ic7@vMUi4gAjz}=7f5Xn6b?Lr07RfqPP60BH z?`>?(3>&zQNIxZ#{5ECehppaou*3|dV|8{A(LiDBsrD6;b?3|MnkbHhAI(9)0 zYm$XWWpyrQJ{@kbJa@Zmw?{hR3+P=Og*5{KU6*|(*1EZm-$bq|g3Z^iHK2osaf@&K^~V;xiCz{tlXHp&6`#QfxyF@YAG|v=OvpyHpPffVq`9~^^;FU$^LRBr zklT{Ur@g61uU-ZruEv&Lr#mkhG3e}mnD8gd!ndz&uNSvtU!90r>OB5tL>3DlqCnAU z_Wbq)!PWoe;5QhWt1~ur-)xL8Zw6#l{0#j+p_U%-O8InMRZJ z4c-a8VdjAoM|6LTuLoKq;TQG4ZCqRK?xSZgezS+4d3_g*U`!|vWrVj-F|)H<1bEIX z5Yf~3J{ceAsUMWQYW$8U)WaSge8k9QOL0$nj(s-hpr-7c*O%)gG+CfKVYbj!W78}8 z?R>H*pp&BB_&EwOc|vzNu3GX~-iWATu#8DQ5J{guDI*xGy&JyddqV9^qkAqndwY7Z z(wO-1evudod)w~cJaBjkNcQY-Np}&LRlp6$w!}1cWAqHSFdUqzyq(;nHz@mkz3g+N zNxPwy_NRWcsZ!9p*yQt?*>KbqcU=5_(rqwnJ?ZAEexOq$`J8jx4&M>|U&z8Q;M9{y zKU{t$dm-`YQDM>U2;5e!Cy1WOK^TYR5yM2rytzN}1EOd~j|ti;iT!iDN?x*(ps=t| zd<|v&a`dd#kV_dO>2lvB-3Bqsg%W=c*2b5&~HMeCh!&^FG$B ze^dpW7y~^uQkD&!v9lY)21jE3=SunIc}I@F+u#EajZX0N>Hmft5$(S2g9UqWAreI! zG+C~|rF*RGo5i2#kKzW6N>B3&TQk!ej_df1z~PU1>!{V|bs+S|9)s-xS1=dNT#AEE zjx7oAKy0+HiD=1n3k8H%ZzY=pf@xEV!Ezn;qXu%xJ3Y0^^;7y-{s$I=rFR0H>0xVS z1{?V1#YnFgym%BMK16G8gkP@ebzdLHl8X_%NS5=BirE9-qV2?n z{fQUag^_9Tq()__<%+G01vMB#z^)Pg_;SbnH)sywmvgX&B0*c09zN780L+F7YA>Sf z9VtEY30@UlOwitTLEED_xw0dm#odDEkqKN|@ne_=P-ay*Metm_BA*=(7Ex2wD!$Oq z>S_dff%VB);PJv*GP2gQ^C)%aa`7K`od1FGd3S1dspu8+Ny;5%&mbf_DD0>OgUTrA z(^J4!Go8Np5FzIYDdqN1qBiVV+LR}nh+3XB&Ji8Xw}_oIHAl6+IRt7P7?Glmq0E`# z&YFvG_)iv_l;5^M-Fn?E!aB;mZ)|W1vA00nJ^-sPl=1j(F+sw>aBCP)z@M)KS)!Ts z6a{9^C91kB+N+!^-D)!<_`iRk3DA^<;qcZSA)L^K9`e5Q8OR z_zN}LPJkz@psxu5>kkS%mH0wQ3M-j={hxS)hL`POuRq<1=fSfcy?~9RTA5TH&jPUn z@A&z={^;Mjtu~xUvev=NpExe4s(Z`~5g z!1J2(4$9~6+|14?e>02TsJ|MARF_T(g?GrLLYIGxY>k-pzZZitJgz8taDPaN(cAGHl(-O)IKG-(zuel)t(I(~44<+!+A*Gn<0)QP1qbZ4Ia>HCZ1xO@eiOix zN@nug)g}}npNUtB?k(Ri{bhYcO5V1U;C6qkwR$a^@+DzU7Ro~*GSkA|NoBSu?8g+Q zBR+!(`Dvd*A1E5|>Gowd1@Rip)j|qCr4i2A*2AB~5;;xM-$O0p=Vkul4Dl9~*^(3^ zV7MBGh}^-~-ROE_bp4%WON1#*>>XBKXP*w+M7%B|i!h%#x!wZ`4;Q84 z!6jatvK{6a6SRU|rJQP%-KEus9us$;JNNzOA9u`E%u{_@T513va@jSsokoW2`S|GP z0ZP&xT>pVHKBHd^e#QZ1>h}X^QW7WI*gf`}AJp18H(e$R-=5>B%Om&OJL*`S!~R2= z(PVJ(e>%R%SYGaMB;U--O;7Bfo;z!*8+hfL&OilX$?wm#nt;g{r?OQ=%hyyH?y8ur z*ds32Xeb!PyByhzJIX;_^IABdAxq$NSAddERhyFHY&O7S>q=%Ty#G9+cxY z(VM>hN{!}nj>cm4m92*oOFWf{M=1*c`>JfVUX8!J>>w9z9QGidi_~gN4L?xWJqZA! zUQzePiU+Ynmpoe!iN|grA{vDM%%V8*5VxEw#>x>SDgH&u%z-JINX6}D^V5fdKS#Ls zpa==`8?7b2Uw}VP!duVuI(C)IEimH}?EGmXS0eoQ_UXie#M!0~YASrT=%q)IEC~yM zWhT5emH?Fp*!c^x<6kCUYO;rjnW@ogJR~SkW@D&Sl!Z_fd^GDGpoZ9v`F!@18;DnD z%~jDqE)82686EBKILD4cRf4JSO?z^`W@Rv2#Y|UW_M@j4zR)J$k+t2&qs-M!q$$Eh zEdiyEH^g14N5W?6C!{BZ=#DqtIoaTlE|)>Hsii}5d_#P|5fwODH7o>4{(KFRdvqvE)uz38!3%bqt)RcbL0#cgBbG z;e~sg)eklkW((gnigD}PtB#K4#x-`FQHQiS zLAd}!b8xkjM0EjWC|j*x3hwVXFX8Xd+S2t>wI+Tv9S4Jw(v8F8R~6C-)Fe@<^w(H& zmGmHNktBq)lt}mzE|Ao0_gzJW89jc%lRFQsmtD4*)I0@iz1Wg#k?O_3Ml(e}JMcI0 z?JL^RTP5>PJ}%X7zhg07dIfzux7xK|+-f9+(B3Q66y^Jdv)O_5_+S+5;qIcf)+?#q z-NF&1ehc^VaOBrq`q*TdI|bJqiSj(sIZP->=`kq#B7N=X@s;E7KmD+@*2WtI{}5Eg z|Br(DtVu09F|wo<#N+&73YD_im6?kX~wfrLi8a`{rO_$m%kuT=02KV7H{#DO_J^IOCgy5+zHUjaHZsCI^ zb4MEEAd5Yd>gA{r<$F12*=DB)gK)*MC62@xUBZ}4uanaaEDV zLILio$z1Gf?^Izpaq-L9u=_x`N#~>P!1NQ!?ovnkz;vwj0D>$YeG4bUyn5#7Qo~wX zp{nMy!s7jGYopM5c^FIMd(I!rlXu->15flxH}S^z<;qk0=Qcn00sEP+Aeh>*j-hvy zHEEB>r@#8-( zK{72)nM{}XS1hjrAj65%m19q)as#4bBl_~fg(BN9laVXIL|v3r1(1rzFG?3;L2UF` z*T|n8Smu=oZAXWH3u-89@1inugv9y|5Do!QRTC|H&Lj^NE}89pJBTn;5v7g4%k`tK73X;yrrXqZ7NT&vIKn5n)pBF3?{Pb zR2Bor5G<3?gX5h%*4BrLXOTXgJ^bo^#zN;`cF+l04<7Wls0|v_-!<}Dkk>iLw!Q77 zKMg*iTkVZ0)rFT7Ky-0f=}IQ!DM2wk)6-3C#W#`?7cz8%5=C_@_cb1CV4Xy%Nn~c5J=WlAtyd$uVbE;2s z2}ItZ&_Qxn@ubcnnUUzQ_7qvrtoH7ZmK<-t7B&Dl?JA4hYuV{GJ2ZWA#T1)#!O{zr z6s@x+Qb>p>8c-09Zz006o&2Ax7Xpi>F5C08oS$Jd*y2w4H|mb+T$VN3-L+bJAN@$)D>|-wG!Nk5tE)Alg&2;U{x0Z zw1#1^PHBAjfuM|Ytwbrw^7VZZQ*-B5^fCnK(l8F}j=?8o(W^){i=O%SZ@Z(K9f|er zYm+>I&d10e#a7ZxkF~#I`EC*a?ja$Cj7taKf0WpWJJe`X2bVC39oD}gAgbJJgcgH8 zS3}4ZfpwU41@#rI?E0XGna&bHM7t~k=@Wj_IS_eSnc=j%ZwW)NXnK?`Q+j4{iFC!R zy|@SyHQ{0wOPE7REQK;wa_;^XHA9zc-EZiB%e$+KK18HHd2x+H; zAA0tCBWXKnI1S(Ia6)&tXa$Dj>ExRjrhYmLB*B}Wfggx@9N2EY;F#K(USYXCt}PM2dQEK03xrhTA1^oEYi9m{g z>m|ttclLVku4X^_eaYzu`1y%q&tw&UW zF0a~QE&9I%05^md_-mja7gGfWxe6~Wj(|`2;be(NNP2XSmotvB&F_^7dV(%9#%3#Z zsF)76FS;IAM2BUtWL)cO4>)QY#cZ5vclof-E_jvVsizu{8xYg?V-5*rYdNd8(w3BQ z)Y^y8&o~iBMI%=Ux+W{yLRwrO?*R(Xf{U)J+p&R_gO=FxEQSFp!-0)k^NpOm5n`li zuM^*!Y|bEzes0IRpb1}-?zdvUy^kAiotAd!Zk=YNkOL4=kO?MN*eh!p$p7v}d0YPn z%0j0{92FuvgAA{;AG6$&8S0T5spa~0@6t~v7B-e4L2(x4DOlGn+-^@&frJL#aMK1; znX4xte1zRdzSC@`f&NV1Kz4*X^(PXXx8vIC8)g}n=!qs=9EAa^eks8flITR5@4e0y&CXk&ULrT%ae7zS{A%Kb^&Bu z|2c`o3_F=_w|baIzcyJlsw+9@F}ws6PkJ)k1DZ_l&aH4)d;&9^(IQ#gtD8;q+wtVB zjEJ$A%p;iS!mBFUfUnc57q>SjH+N$E`MFGkjfgDPuVlE53wqMsrJ!zH%83CUg-khf_#X zxc8p`R@B4d_RA|`}6obK9A4m z^LjqtA3s0i(8PV;w*)G0XG{^Y+ZmI2pEo+(+WCF+menyf@SbD}Fk~|PSEwj_(P8(i zCNW&8i+j1^c4+p_*&RYqPFpp;5cZ1*-uJ$aE5=zw_Lfp~5P*_YBkWP`HI&79xi5)P zS&Ajc(DC8Mf)tL$R*RSd44YpsLIl^(G4vbU!2694?KYo18gw;wn)&d|av{Gd`NES` zVSjD=ktjX&+bln3V^RR*6P6AwS(ESIUW5$)vYdVk3p{rW^J#V!u=b%AR?6&f^i-X@z~?4>n(SLqnTo* z1U6Wyl8?ScS0C4|85X|APKLDl#H=LXn^=HXNKUSb|m03s3Yh zJ&B|gjDig{q@c3t`wy@GQ2+3$?qsg+G`Q5+W$Z~zDu!s?WJ3+hn_iRWJP64kd+@!q z*`3IXtS5OHurgBcBL$rVje@BAX0|+myZ3>9{d`i{@&pxW27MZ_z&7V(QF2No^s|z? zF+W<0G*P10lBn?;wq-Vyyghn&l1HWKkXIgaeu@yqz5+CMybj*KYt+ZLqeEG{@71y) z9~Zi(_SX~l$t2ABg%XQ^@_?QEXW7adyjl0-Sw;rczDA!j<;f`vZ3;u#%-TgIRt#%j zWdkoeKaYRrt*D1Pl}-M!`{G`B@=7Rnj;v|v>&1C5mNtJRn{Q-W#@Qn@TX};9Q!l~( z7p;369Rv5HtTfz}*Ids0r2Te#;|O-PIe+6nT15Ivfo@Te6vPlBL*>t|8j@9w)-nTd zH%~mY+L!whT_A9%+SA-%3>^@%oA)3_?YTUB+E5~}%IPFbR2EU;Nzpfxm4Sbr0iK(U z!}W)Vzr^hj5?H~WZUaS6r9#D4y`RO$=UQXjX4P|%!@9m|HDdfb?zUoV)dE#S!qtxq z|Nd&<^}}z}O3e5D;Q{0|@E~p8OxC-OVgNW&Y8QCcR8_2=THLyPInw`f-XVKhLkVTD z>n$pF{Cq|ruL9~N+V!ryyFB;kG23iaorsz?4#xlp2JLqcXcuo2d^)}EI11uBJ`$r$ zv2;&8`jK{wt^mN79p#4RxpNWO^i*E_w^MqRI)vSwVd z@3Nd}d(MrBOgi7K;{!@D-FO|t?~k;*(laL9!aph$uYVN!ga+W_9wTL6?I_-9mXp21 z!gS4=Mg4=4Oh`1wySh6jo!qo#_1)LZPBoKX_<<3sV~vuvsLaz8t<5mDb=yeIDLJ{_ zGajx^n5CbsXnWIZ44Z6=12s>fERvQqXQtY>UaQcl`ETC10l;O!4K9suM#q+r_?5Ics~fj7Mik(IxnGkIdPYs! zTW91@S};I68J{96P6Vi^t+&gK5H3w=$}9$;qI$54#Q?`=hW_PZ|1Fe6`$*}7n?t+1 ztRU|oC*qrMzM9tfKk{)mkaoD{CI>ESdy#HteiP*z!TkbRaxMU(p(z#RS%hTS(K}qq z3`Pdv3Y{_)@PpnMso?LUB9nCiAW8S6wz^8P!K$*%%Kks;|3WR&mHrC;S?dny1H` + +#### Examples + + (async () => { + try { + let getMiningInfo = await bitbox.Mining.getMiningInfo(); + console.log(getMiningInfo); + } catch(error) { + console.error(error) + } + })() + +### `getNetworkHashps` + +Returns the estimated network hashes per second based on the last n blocks. Pass in \[blocks\] to override # of blocks, -1 specifies since last difficulty change. Pass in \[height\] to estimate the network speed at the time when a certain block was found. + +#### Arguments + +1. nblocks `number` **optional**: The number of blocks, or -1 for blocks since last difficulty change. +2. height `number`, **optional**: To estimate at the time of the given height. + +#### Result + +x `Promise`: Hashes per second estimated + +#### Examples + + (async () => { + try { + let getNetworkHashps = await bitbox.Mining.getNetworkHashps(); + console.log(getNetworkHashps); + } catch(error) { + console.error(error) + } + })() diff --git a/docs/mnemonic.md b/docs/mnemonic.md new file mode 100644 index 00000000..fd53a42b --- /dev/null +++ b/docs/mnemonic.md @@ -0,0 +1,293 @@ +# Mnemonic + +### `generate` + +Generate [BIP39](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki) mnemonic from entropy + +#### Arguments + +1. randomBits `number` **optional**: number of random bits of entropy to use. The more bits the longer the mnemonic. +2. mnemonic word list `string[]` **optional**: list of words to generate the mnemonic from + +#### Result + +mnemonic `string` a random mnemonic + +#### Examples + + // generate 12 word mnemonic + bitbox.Mnemonic.generate(128); + // boil lonely casino manage habit where total glory muffin name limit mansion + + // generate 15 word mnemonic + bitbox.Mnemonic.generate(160); + // steak prevent estate save dance design close noise cheap season among train sleep ketchup gas + + // generate 18 word mnemonic + bitbox.Mnemonic.generate(192); + // fever endorse purpose normal fashion desert blood robust prevent clean guard display raise virtual again unit banana rich + + // generate 21 word mnemonic + bitbox.Mnemonic.generate(224); + // scan pink shock describe chicken edit budget exit camera morning awesome silk inner pair sea few flock walnut write mountain surface + + // generate 24 word mnemonic + bitbox.Mnemonic.generate(256); + // disagree tide elbow citizen jazz cinnamon bridge certain april settle pact film always inmate border inform solution that submit produce cloth balcony upper maid + + // generate 12 french word mnemonic + bitbox.Mnemonic.generate(128, bitbox.Mnemonic.wordLists().french); + // annonce ampleur sanglier peser acheter cultiver abroger embellir résoudre dialogue grappin lanterne + + // generate 256 bit korean word mnemonic + bitbox.Mnemonic.generate(256, bitbox.Mnemonic.wordLists().korean) + // 기능 단추 교육 비난 시집 근육 운동 코미디 숟가락 과목 한동안 유적 시리즈 삼월 앞날 유난히 흰색 사실 논문 장사 어른 논문 의논 장차 + +### `fromEntropy` + +Create mnemonic from entropy + +#### Arguments + +1. randomBytes `Buffer`: buffer of random entropy. This entropy can be generated w/ `bitbox.Crypto.randomBytes`. +2. mnemonic word list `string[]` **optional**: list of words to generate the mnemonic from + +#### Result + +mnemonic `string` a random mnemonic + +#### Examples + + // generate 16 bytes of entropy + let entropy = bitbox.Crypto.randomBytes(16); + // + // turn entropy to 12 word mnemonic + bitbox.Mnemonic.fromEntropy(entropy) + // security question relief cruel nephew jump chest copper axis assist gift correct + + // generate 20 bytes of entropy + let entropy = bitbox.Crypto.randomBytes(20); + // + // turn entropy to 15 word mnemonic + bitbox.Mnemonic.fromEntropy(entropy) + // impact hub pattern turkey cruel adult short moment make toe one actress roast yellow hurt + + // generate 24 bytes of entropy + let entropy = bitbox.Crypto.randomBytes(24); + // + // turn entropy to 18 word mnemonic + bitbox.Mnemonic.fromEntropy(entropy) + // bid quantum chronic marriage swing affair record amateur enhance heart object mind spoon speak toast piece chef real + + // generate 28 bytes of entropy + let entropy = bitbox.Crypto.randomBytes(28); + // + // turn entropy to 21 word mnemonic + bitbox.Mnemonic.fromEntropy(entropy) + // orchard rural giant okay tape pipe luggage clap bring wear ticket slot fiscal seminar crazy robot distance current dizzy swarm barrel + + // generate 32 bytes of entropy + let entropy = bitbox.Crypto.randomBytes(32); + // + // turn entropy to 24 word mnemonic + bitbox.Mnemonic.fromEntropy(entropy) + // vibrant solution level obtain cheap damage october giant chalk cushion assist fossil spawn artist rice edit proof hotel process survey gas sausage mouse property + + // generate 16 bytes of entropy + let entropy = bitbox.Crypto.randomBytes(16); + // + // turn entropy to 12 japanese word mnemonic + bitbox.Mnemonic.fromEntropy(entropy.toString('hex'), bitbox.Mnemonic.wordLists().japanese) + // ぱそこん にあう にんめい きどく ちそう せんきょ かいが きおく いれる いねむり しいく きかんしゃ + +### `toEntropy` + +Turn mnemonic to entropy + +#### Arguments + +1. mnemonic `string`: a mnemonic to turn to entropy. +2. mnemonic word list `string[]` **optional**: list of words the mnemonic was generated from + +#### Result + +entropy `Buffer` entropy encoded as buffer + +#### Examples + + // turn 12 word mnemonic to entropy + let mnemonic = 'security question relief cruel nephew jump chest copper axis assist gift correct'; + bitbox.Mnemonic.toEntropy(mnemonic) + // + + // turn 15 word mnemonic to entropy + let mnemonic = 'impact hub pattern turkey cruel adult short moment make toe one actress roast yellow hurt'; + bitbox.Mnemonic.toEntropy(mnemonic) + // + + // turn 18 word mnemonic to entropy + let mnemonic = 'bid quantum chronic marriage swing affair record amateur enhance heart object mind spoon speak toast piece chef real'; + bitbox.Mnemonic.toEntropy(mnemonic) + // + + // turn 21 word mnemonic to entropy + let mnemonic = 'orchard rural giant okay tape pipe luggage clap bring wear ticket slot fiscal seminar crazy robot distance current dizzy swarm barrel'; + bitbox.Mnemonic.toEntropy(mnemonic) + // + + // turn 24 word mnemonic to entropy + let mnemonic = 'vibrant solution level obtain cheap damage october giant chalk cushion assist fossil spawn artist rice edit proof hotel process survey gas sausage mouse property'; + bitbox.Mnemonic.toEntropy(mnemonic) + // + +### `validate` + +Validate mnemonic + +#### Arguments + +1. mnemonic `string` mnemonic phrase +2. mnemonic word list `string[]`: list of words the mnemonic was generated from + +#### Result + +valid `string` + +#### Examples + + bitbox.Mnemonic.validate('ca', bitbox.Mnemonic.wordLists().english) + // ca is not in wordlist, did you mean cabbage? + + bitbox.Mnemonic.validate('boil lonely casino manage habit where total glory muffin name limit mansion', bitbox.Mnemonic.wordLists().english) + // Valid mnemonic + + bitbox.Mnemonic.validate('boil lonely casino manage habit where total glory muffin name limit mansion boil lonely casino manage habit where total glory muffin name limit mansion', bitbox.Mnemonic.wordLists().english) + // Invalid mnemonic + +### `toSeed` + +Create root seed from mnemonic + +#### Arguments + +1. mnemonic `string` mnemonic phrase +2. passphrase `string` **optional**: passphrase. Defaults to "" + +#### Result + +rootSeed `Buffer` + +#### Examples + + bitbox.Mnemonic.toSeed('enable stem left method one submit coach bid inspire cluster armed bracket') + // + + bitbox.Mnemonic.toSeed('vendor talk alone sick balance tissue number armor frequent plug transfer chest', 'password'); + // + + bitbox.Mnemonic.toSeed('idea relax weird defense body bronze champion ancient vocal peanut similar dose grit company peasant gate sunset deal library act include penalty annual main', ''); + // + + bitbox.Mnemonic.toSeed('bus aware census desk orphan zebra fashion host try muscle pig close jealous slice elegant prison reject ship great program trumpet syrup tray remove', ''); + // + + bitbox.Mnemonic.toSeed('frost deliver coin clutch upon round scene wonder various wise luggage country', 'yayayayay'); + // + +### `wordLists` + +Return mnemonic word lists + +#### Result + +wordlists `object` an object with wordlists in the following languages english (default), japanese, chinese simplified, chinese traditional, french, italian, japanese, korean, spanish + +#### Examples + + bitbox.Mnemonic.wordLists(); + // { + // EN: [], + // JA: [], + // chinese_simplified: [], + // chinese_traditional: [], + // english: [], + // french: [], + // italian: [], + // japanese: [], + // korean: [], + // spanish: [] + // } + +### `toKeypairs` + +Returns an array of privateKeyWIF/publicAddress pairs. It generates the addresses as the nth external change address of the first account from that mnemonic w/ this derivation path: `m/44’/145’/0’/0/n` + +#### Arguments + +1. mnemonic `string`: mnemonic to use +2. numberOfKeypairs `number` **optional**: number of keypairs to return. Default is 1 +3. regtest `boolean` **optional**: return regtest key pairs + +#### Result + +keypairs `any[]` array of privateKeyWIF/publicAddress pairs + +#### Examples + + // First create a mnemonic from 32 bytes of random entropy + let entropy = bitbox.Crypto.randomBytes(32); + // + let mnemonic = bitbox.Mnemonic.fromEntropy(entropy); + // rural pistol giant label nominee curtain egg crystal famous only drill van place unit attitude oven memory fade mix sun shrug soon steak easily + + // Then call toKeypairs and pass in your mnemonic and how many keypairs you'd like + bitbox.Mnemonic.toKeypairs(mnemonic, 5) + // [ { privateKeyWIF: 'KwuSgSuV6m3U1oahRQEhSQ6e4gRE6LZXNGDTETGPGotKQJdH7ADd', + // address: 'bitcoincash:qqvk7aculs8r6t29pj23de35t43tupks2ua6wmc2hy' }, + // { privateKeyWIF: 'L34pfoBm2swLBX5vAx1ReeYbSnpsvu7DRVaiLW8e9wNEJw5p3mV5', + // address: 'bitcoincash:qzt8ju6au2075cpzrhzwe5n96ycqnurarur5k92nd5' }, + // { privateKeyWIF: 'L2nCRgDzmTRrQzSssFvVA7xiYHBJyfj62jdDwu1bTjHKVoLGxsqs', + // address: 'bitcoincash:qpdjwtyvqqaapykxr3pr6cty4gpww30aucam9l0qzn' }, + // { privateKeyWIF: 'KyDLLa4RZKhnBP78Ue6557B55Jmffu1y8mH8p8WKA12knJUjiq4u', + // address: 'bitcoincash:qq8kee4k4h9fn22xya9p5u203vg69aat3usqdvkdkn' }, + // { privateKeyWIF: 'L5gB66JqhfouEtZG5aRMQ9JaVS2ggkK3YozGfzZegBupaPXqdfaz', + // address: 'bitcoincash:qphwlpu2wzjxrjts94pn4wh778fwsu2afg2aj5her9' } ] + +### `findNearestWord` + +Returns nearest matching word from provided word list + +#### Arguments + +1. word `string`: mnemonic to use +2. wordlist `string[]`: wordlist to search + +#### Result + +word `string` nearest matching word from provided wordlist + +#### Examples + + // english + let word = 'ab'; + let wordlist = bitbox.Mnemonic.wordLists().english; + bitbox.Mnemonic.findNearestWord(word, wordlist); + // abandon + + // french + let word = 'octu'; + let wordlist = bitbox.Mnemonic.wordLists().french; + bitbox.Mnemonic.findNearestWord(word, wordlist); + // octupler + + // spanish + let word = 'foobaro'; + let wordlist = bitbox.Mnemonic.wordLists().spanish; + bitbox.Mnemonic.findNearestWord(word, wordlist); + // forro + + // italian + let word = 'nv'; + let wordlist = bitbox.Mnemonic.wordLists().italian; + bitbox.Mnemonic.findNearestWord(word, wordlist); + // neve diff --git a/docs/new.md b/docs/new.md new file mode 100644 index 00000000..2a8fc616 --- /dev/null +++ b/docs/new.md @@ -0,0 +1,31 @@ +# New + +BITBOX will generate a new app w/ empty `src/` and `test/` directories and a `bitbox.js` configured to connect to Bitcoin.com’s Cloud. + +### Usage + +```bash +new [options] + Options: + -s, --scaffold The framework to use. Options include react, angular, node, next, vue and websockets. (Default: react) + -r, --restURL The rest URL to use. default: https://trest.bitcoin.com/v2/ + -e, --environment environment to map to restURL. Ex: production, staging. Default: development + -h, --help output usage information + +$ bitbox new helloEARTH +$ bitbox new helloEARTH --scaffold react +``` + +## `bitbox.js` + +Your `bitbox.js` file will contain the default settings to connect to Bitcoin.com’s Cloud. + +```javascript +exports.config = { + environments: { + development: { + restURL: "https://trest.bitcoin.com/v2/", + }, + }, +} +``` diff --git a/docs/price.md b/docs/price.md new file mode 100644 index 00000000..6e82139d --- /dev/null +++ b/docs/price.md @@ -0,0 +1,30 @@ +# Price + +### `current` + +Return current price of BCH in multiple currencies + +#### Arguments + +1. currency `string` **optional**: Defaults to usd + +Valid currencies + +aed, afn, all, amd, ang, aoa, ars, aud, awg, azn, bam, bbd, bdt, bgn, bhd, bif, bmd, bnd, bob, brl, bsd, btn, bwp, byn, bzd, cad, cdf, chf, clf, clp, cnh, cny, cop, crc, cuc, cup, cve, czk, djf, dkk, dop, dzd, egp, ern, etb, eur, fjd, fkp, gbp, gel, ggp, ghs, gip, gmd, gnf, gtq, gyd, hkd, hnl, hrk, htg, huf, idr, ils, imp, inr, iqd, irr, isk, jep, jmd, jod, jpy, kes, kgs, khr, kmf, kpw, krw, kwd, kyd, kzt, lak, lbp, lkr, lrd, lsl, lyd, mad, mdl, mga, mkd, mmk, mnt, mop, mro, mur, mvr, mwk, mxn, myr, mzn, nad, ngn, nio, nok, npr, nzd, omr, pab, pen, pgk, php, pkr, pln, pyg, qar, ron, rsd, rub, rwf, sar, sbd, scr, sdg, sek, sgd, shp, sll, sos, srd, ssp, std, svc, syp, szl, thb, tjs, tmt, tnd, top, try, ttd, twd, tzs, uah, ugx, usd, uyu, uzs, vef, vnd, vuv, wst, xaf, xag, xau, xcd, xdr, xof, xpd, xpf, xpt, yer, zar, zmw, zwl + +#### Result + +price `Promise`: Price of single requested currency + +#### Examples + + (async () => { + try { + let current = await bitbox.Price.current('usd'); + console.log(current); + } catch(error) { + console.error(error) + } + })() + + // 26681 diff --git a/docs/rawtransactions.md b/docs/rawtransactions.md new file mode 100644 index 00000000..e5ddb34b --- /dev/null +++ b/docs/rawtransactions.md @@ -0,0 +1,250 @@ +# RawTransactions + +### `decodeRawTransaction` + +Return an Array of JSON objects representing the serialized, hex-encoded transactions. + +#### Arguments + +- hex `string | string[]` + +#### Result + +- txs `Promise` + +#### Examples + + (async () => { + try { + let decodeRawTransaction = await bitbox.RawTransactions.decodeRawTransaction('01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000'); + console.log(decodeRawTransaction); + } catch(error) { + console.error(error) + } + })() + + // { txid: 'd86c34adaeae19171fd98fe0ffd89bfb92a1e6f0339f5e4f18d837715fd25758', + // hash: + // 'd86c34adaeae19171fd98fe0ffd89bfb92a1e6f0339f5e4f18d837715fd25758', + // size: 191, + // version: 1, + // locktime: 0, + // vin: + // [ { txid: + // '4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b', + // vout: 0, + // scriptSig: [Object], + // sequence: 4294967295 } ], + // vout: [ { value: 12.5, n: 0, scriptPubKey: [Object] } ] } + + (async () => { + try { + let decodeRawTransaction = await bitbox.RawTransactions.decodeRawTransaction([ + '01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000', + '01000000013ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a000000006a4730440220540986d1c58d6e76f8f05501c520c38ce55393d0ed7ed3c3a82c69af04221232022058ea43ed6c05fec0eccce749a63332ed4525460105346f11108b9c26df93cd72012103083dfc5a0254613941ddc91af39ff90cd711cdcde03a87b144b883b524660c39ffffffff01807c814a000000001976a914d7e7c4e0b70eaa67ceff9d2823d1bbb9f6df9a5188ac00000000' + ]); + console.log(decodeRawTransaction); + } catch(error) { + console.error(error) + } + })() + + // [ { txid: + // 'd86c34adaeae19171fd98fe0ffd89bfb92a1e6f0339f5e4f18d837715fd25758', + // hash: + // 'd86c34adaeae19171fd98fe0ffd89bfb92a1e6f0339f5e4f18d837715fd25758', + // size: 191, + // version: 1, + // locktime: 0, + // vin: [ [Object] ], + // vout: [ [Object] ] }, + // { txid: + // 'd86c34adaeae19171fd98fe0ffd89bfb92a1e6f0339f5e4f18d837715fd25758', + // hash: + // 'd86c34adaeae19171fd98fe0ffd89bfb92a1e6f0339f5e4f18d837715fd25758', + // size: 191, + // version: 1, + // locktime: 0, + // vin: [ [Object] ], + // vout: [ [Object] ] } ] + +### `decodeScript` + +Decode hex-encoded scripts + +#### Arguments + +1. hex `string | string[]` + +#### Result + +decodedScripts `Promise` + +#### Examples + + (async () => { + try { + let decodeScript = await bitbox.RawTransactions.decodeScript('4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16'); + console.log(decodeScript); + } catch(error) { + console.error(error) + } + })() + + // { asm: '30450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed59201 02e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16', type: 'nonstandard', p2sh: 'bitcoincash:pqwndulzwft8dlmqrteqyc9hf823xr3lcc7ypt74ts' } + + + (async () => { + try { + let decodeScript = await bitbox.RawTransactions.decodeScript(['4830450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed592012102e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16']); + console.log(decodeScript); + } catch(error) { + console.error(error) + } + })() + + // [{ asm: '30450221009a51e00ec3524a7389592bc27bea4af5104a59510f5f0cfafa64bbd5c164ca2e02206c2a8bbb47eabdeed52f17d7df668d521600286406930426e3a9415fe10ed59201 02e6e1423f7abde8b70bca3e78a7d030e5efabd3eb35c19302542b5fe7879c1a16', + // type: 'nonstandard', + // p2sh: 'bitcoincash:pqwndulzwft8dlmqrteqyc9hf823xr3lcc7ypt74ts' }] + +### `getRawTransaction` + +Return the raw transaction data. If verbose is 'true', returns an Object with +information about 'txid'. If verbose is 'false' or omitted, returns a string +that is serialized, hex-encoded data for 'txid'. + +#### Arguments + +- txids `string | string[]` +- verbose `boolean` **optiona**: If false, return a string, + otherwise return a json object + +#### Result + +- rawTx `Promise` + +#### Examples + + (async () => { + try { + let getRawTransaction = await bitbox.RawTransactions.getRawTransaction("0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098"); + console.log(getRawTransaction); + } catch(error) { + console.error(error) + } + })() + + // 01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0704ffff001d0104ffffffff0100f2052a0100000043410496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858eeac00000000 + + (async () => { + try { + let getRawTransaction = await bitbox.RawTransactions.getRawTransaction([ + "0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098", + "b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f" + ], true); + console.log(getRawTransaction); + } catch(error) { + console.error(error) + } + })() + + // [ { hex: + // '01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0704ffff001d0104ffffffff0100f2052a0100000043410496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858eeac00000000', + // txid: + // '0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098', + // hash: + // '0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098', + // size: 134, + // version: 1, + // locktime: 0, + // vin: [ [Object] ], + // vout: [ [Object] ], + // blockhash: + // '00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048', + // confirmations: 581882, + // time: 1231469665, + // blocktime: 1231469665 }, + // { hex: + // '01000000010f3cb469bc82f931ee77d80b3dd495d02f9ed7cdc455cea3e7baa4bdeea6a78d000000006a47304402205ce3e1dfe4b5207818ce27035bc7cc03a5631f806d351535b32ce77c8d136aed02204e66e1fa4c2e12feab0d41a5593aff9629cdbc6ccb6126bc3d1a20404be7760c412103d44946d17e00179bbfc3b723aedc1831d8604e6a04bbd91170f1d894d04657bbffffffff02e6ec8500000000001976a914b5befddad83d9180fd4082c5528cf5a779b0fa6688acdf220000000000001976a9142c21a1be4239eeed678a456627a08d5f813d5c9288ac00000000', + // txid: + // 'b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f', + // hash: + // 'b25d24fbb42d84812ed2cb55797f10fdec41afc7906ab563d1ec8c8676a2037f', + // size: 225, + // version: 1, + // locktime: 0, + // vin: [ [Object] ], + // vout: [ [Object], [Object] ], + // blockhash: + // '000000000000000003a09a7d68a0d62fd0ab51c368372e46bac84277e2df47e2', + // confirmations: 16151, + // time: 1547752564, + // blocktime: 1547752564 } ] + +### `sendRawTransaction` + +Submits raw transaction (serialized, hex-encoded) to local node and network. Also see createrawtransaction and signrawtransaction calls. + +For bulk uploads, transactions must use different UTXOs. + +#### Arguments + +- hex `string | string[]` + +#### Result + +txid `Promise` + +#### Examples + + // single tx + (async () => { + try { + let sendRawTransaction = await bitbox.RawTransactions.sendRawTransaction("01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0704ffff001d0104ffffffff0100f2052a0100000043410496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858eeac00000000"); + console.log(sendRawTransaction); + } catch(error) { + console.error(error) + } + })() + // 0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098 + + // single tx as array + (async () => { + try { + let sendRawTransaction = await bitbox.RawTransactions.sendRawTransaction(["01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0704ffff001d0104ffffffff0100f2052a0100000043410496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858eeac00000000"]); + console.log(sendRawTransaction); + } catch(error) { + console.error(error) + } + })() + // ['0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098'] + +## Interfaces + +### VerboseRawTransaction + + { + hex: string + txid: string + size: number + version: number + locktime: number + vin: [{ coinbase: string; sequence: number }] + vout: [ + { + value: number + n: number + scriptPubKey: { + asm: string + hex: string + reqSigs: number + type: string + addresses: string[] + } + } + ] + blockhash: string + confirmations: number + time: number + blocktime: number + } diff --git a/docs/schnorr.md b/docs/schnorr.md new file mode 100644 index 00000000..644d6c69 --- /dev/null +++ b/docs/schnorr.md @@ -0,0 +1,472 @@ +# Schnorr + +### `sign` + +Sign a 32-byte message with the private key, returning a 64-byte signature. + +#### Arguments + +1. privateKey `BigInteger` +2. message `Buffer` + +#### Result + +signature `Buffer` + +#### Examples + + const Buffer = require("safe-buffer").Buffer + const BigInteger = require("bigi") + + // signing + const privateKey = BigInteger.fromHex( + "B7E151628AED2A6ABF7158809CF4F3C762E7160F38B4DA56A784D9045190CFEF" + ) + const message = Buffer.from( + "243F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C89", + "hex" + ) + const createdSignature = bitbox.Schnorr.sign(privateKey, message) + console.log("The signature is: " + createdSignature.toString("hex")) + // The signature is: 2a298dacae57395a15d0795ddbfd1dcb564da82b0f269bc70a74f8220429ba1d1e51a22ccec35599b8f266912281f8365ffc2d035a230434a1a64dc59f7013fd + +### `verify` + +Verify a 64-byte signature of a 32-byte message against the public key. Throws an `Error` if verification fails. + +#### Arguments + +1. publicKey. `Buffer` +2. message. `Buffer` +3. signature. `Buffer` + +#### Examples + + const Buffer = require("safe-buffer").Buffer + const publicKey = Buffer.from( + "02DFF1D77F2A671C5F36183726DB2341BE58FEAE1DA2DECED843240F7B502BA659", + "hex" + ) + const message = Buffer.from( + "243F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C89", + "hex" + ) + const signatureToVerify = Buffer.from( + "2A298DACAE57395A15D0795DDBFD1DCB564DA82B0F269BC70A74F8220429BA1D1E51A22CCEC35599B8F266912281F8365FFC2D035A230434A1A64DC59F7013FD", + "hex" + ) + try { + bitbox.Schnorr.verify(publicKey, message, signatureToVerify) + console.log("The signature is valid.") + } catch (e) { + console.error("The signature verification failed: " + e) + } + +### `batchVerify` + +Verify a list of 64-byte signatures as a batch operation. Throws an `Error` if verification fails. + +#### Arguments + +1. publicKeys. `Buffer[]` +2. messages. `Buffer[]` +3. signatures. `Buffer[]` + +#### Examples + + const Buffer = require("safe-buffer").Buffer + const publicKeys = [ + Buffer.from( + "02DFF1D77F2A671C5F36183726DB2341BE58FEAE1DA2DECED843240F7B502BA659", + "hex" + ), + Buffer.from( + "03FAC2114C2FBB091527EB7C64ECB11F8021CB45E8E7809D3C0938E4B8C0E5F84B", + "hex" + ), + Buffer.from( + "026D7F1D87AB3BBC8BC01F95D9AECE1E659D6E33C880F8EFA65FACF83E698BBBF7", + "hex" + ) + ] + const messages = [ + Buffer.from( + "243F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C89", + "hex" + ), + Buffer.from( + "5E2D58D8B3BCDF1ABADEC7829054F90DDA9805AAB56C77333024B9D0A508B75C", + "hex" + ), + Buffer.from( + "B2F0CD8ECB23C1710903F872C31B0FD37E15224AF457722A87C5E0C7F50FFFB3", + "hex" + ) + ] + const signatures = [ + Buffer.from( + "2A298DACAE57395A15D0795DDBFD1DCB564DA82B0F269BC70A74F8220429BA1D1E51A22CCEC35599B8F266912281F8365FFC2D035A230434A1A64DC59F7013FD", + "hex" + ), + Buffer.from( + "00DA9B08172A9B6F0466A2DEFD817F2D7AB437E0D253CB5395A963866B3574BE00880371D01766935B92D2AB4CD5C8A2A5837EC57FED7660773A05F0DE142380", + "hex" + ), + Buffer.from( + "68CA1CC46F291A385E7C255562068357F964532300BEADFFB72DD93668C0C1CAC8D26132EB3200B86D66DE9C661A464C6B2293BB9A9F5B966E53CA736C7E504F", + "hex" + ) + ] + try { + bitbox.Schnorr.batchVerify(publicKeys, messages, signatures) + console.log("The signatures are valid.") + } catch (e) { + console.error("The signature verification failed: " + e) + } + +### `nonInteractive` + +Aggregates multiple signatures of different private keys over the same message into a single 64-byte signature using a scheme that is safe from rogue-key attacks. + +This non-interactive scheme requires the knowledge of all private keys that are participating in the multi-signature creation. + +#### Arguments + +1. privateKeys. `BigInteger[]` +2. message `Buffer` + +#### Result + +aggregatedSignature `Buffer` + +#### Examples + + const Buffer = require("safe-buffer").Buffer + const BigInteger = require("bigi") + + const privateKey1 = BigInteger.fromHex( + "B7E151628AED2A6ABF7158809CF4F3C762E7160F38B4DA56A784D9045190CFEF" + ) + const privateKey2 = BigInteger.fromHex( + "C90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B14E5C7" + ) + const message = Buffer.from( + "243F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C89", + "hex" + ) + const aggregatedSignature = bitbox.Schnorr.nonInteractive( + [privateKey1, privateKey2], + message + ) + + // verifying an aggregated signature + const publicKey1 = Buffer.from( + "02DFF1D77F2A671C5F36183726DB2341BE58FEAE1DA2DECED843240F7B502BA659", + "hex" + ) + const publicKey2 = Buffer.from( + "03FAC2114C2FBB091527EB7C64ECB11F8021CB45E8E7809D3C0938E4B8C0E5F84B", + "hex" + ) + const X = bitbox.Schnorr.publicKeyCombine([publicKey1, publicKey2]) + try { + bitbox.Schnorr.verify(X, message, aggregatedSignature) + console.log("The signature is valid.") + } catch (e) { + console.error("The signature verification failed: " + e) + } + +### `computeEll` + +Generate `ell` which is the hash over all public keys participating in a session. + +#### Arguments + +1. publicKeys. `BigInteger[]` + +#### Result + +publicKeyHash `Buffer` + +#### Examples + + const Buffer = require("safe-buffer").Buffer + const BigInteger = require("bigi") + + const publicData = { + pubKeys: [ + Buffer.from( + "03846f34fdb2345f4bf932cb4b7d278fb3af24f44224fb52ae551781c3a3cad68a", + "hex" + ), + Buffer.from( + "02cd836b1d42c51d80cef695a14502c21d2c3c644bc82f6a7052eb29247cf61f4f", + "hex" + ), + Buffer.from( + "03b8c1765111002f09ba35c468fab273798a9058d1f8a4e276f45a1f1481dd0bdb", + "hex" + ) + ], + message: bitbox.Schnorr.hash(Buffer.from("muSig is awesome!", "utf8")), + pubKeyHash: null, + pubKeyCombined: null, + commitments: [], + nonces: [], + nonceCombined: null, + partialSignatures: [], + signature: null + } + + // data only known by the individual party, these values are never shared + // between the signers! + const signerPrivateData = [ + // signer 1 + { + privateKey: BigInteger.fromHex( + "add2b25e2d356bec3770305391cbc80cab3a40057ad836bcb49ef3eed74a3fee" + ), + session: null + }, + // signer 2 + { + privateKey: BigInteger.fromHex( + "0a1645eef5a10e1f5011269abba9fd85c4f0cc70820d6f102fb7137f2988ad78" + ), + session: null + }, + // signer 3 + { + privateKey: BigInteger.fromHex( + "2031e7fed15c770519707bb092a6337215530e921ccea42030c15d86e8eaf0b8" + ), + session: null + } + ] + + // ----------------------------------------------------------------------- + // Step 1: Combine the public keys + // The public keys P_i are combined into the combined public key P. + // This can be done by every signer individually or by the initializing + // party and then be distributed to every participant. + // ----------------------------------------------------------------------- + publicData.pubKeyHash = bitbox.Schnorr.computeEll(publicData.pubKeys) + +### `publicKeyCombine` + +Creates the special rogue-key-resistant combined public key `P` by applying the MuSig coefficient to each public key `P_i` before adding them together. + +#### Arguments + +1. publicKeys. `Buffer[]` +2. publicKeyHash. `Buffer` + +#### Result + +X `Buffer` + +#### Examples + + // continued from above + publicData.pubKeyCombined = bitbox.Schnorr.publicKeyCombine( + publicData.pubKeys, + publicData.pubKeyHash + ) + +### `sessionInitialize` + +Creates a signing session. Each participant must create a session and must not share the content of the session apart from the commitment and later the nonce. + +#### Arguments + +1. sessionId. `Buffer` +2. privateKey. `BigInteger` +3. message. `Buffer` +4. pubKeyCombined. `Buffer` +5. ell. `Buffer` +6. idx. `number` + +#### Result + +session `Session` + +#### Examples + + // continued from above + // ----------------------------------------------------------------------- + // Step 2: Create the private signing session + // Each signing party does this in private. The session ID *must* be + // unique for every call to sessionInitialize, otherwise it's trivial for + // an attacker to extract the secret key! + // ----------------------------------------------------------------------- + signerPrivateData.forEach((data, idx) => { + const sessionId = bitbox.Crypto.randomBytes(32) // must never be reused between sessions! + data.session = bitbox.Schnorr.sessionInitialize( + sessionId, + data.privateKey, + publicData.message, + publicData.pubKeyCombined, + publicData.pubKeyHash, + idx + ) + }) + const signerSession = signerPrivateData[0].session + +### `sessionNonceCombine` + +Combines multiple nonces `R_i` into the combined nonce `R`. + +#### Arguments + +1. session. `Session` +2. nonces. `Buffer[]` + +#### Result + +nonceCombined `Buffer` + +#### Examples + + // continued from above + // ----------------------------------------------------------------------- + // Step 3: Exchange commitments (communication round 1) + // The signers now exchange the commitments H(R_i). This is simulated here + // by copying the values from the private data to public data array. + // ----------------------------------------------------------------------- + for (let i = 0; i < publicData.pubKeys.length; i++) { + publicData.commitments[i] = signerPrivateData[i].session.commitment + } + + // ----------------------------------------------------------------------- + // Step 4: Get nonces (communication round 2) + // Now that everybody has commited to the session, the nonces (R_i) can be + // exchanged. Again, this is simulated by copying. + // ----------------------------------------------------------------------- + for (let i = 0; i < publicData.pubKeys.length; i++) { + publicData.nonces[i] = signerPrivateData[i].session.nonce + } + + // ----------------------------------------------------------------------- + // Step 5: Combine nonces + // The nonces can now be combined into R. Each participant should do this + // and keep track of whether the nonce was negated or not. This is needed + // for the later steps. + // ----------------------------------------------------------------------- + publicData.nonceCombined = bitbox.Schnorr.sessionNonceCombine( + signerSession, + publicData.nonces + ) + signerPrivateData.forEach( + data => (data.session.nonceIsNegated = signerSession.nonceIsNegated) + ) + +### `partialSign` + +Creates a partial signature `s_i` for a participant. + +#### Arguments + +1. session. `Session` +2. message. `Buffer` +3. nonceCombined. `Buffer` +4. publicKeyCombined. `Buffer` + +#### Result + +partialSignature `BigInteger` + +#### Examples + + // continued from above + // ----------------------------------------------------------------------- + // Step 6: Generate partial signatures + // Every participant can now create their partial signature s_i over the + // given message. + // ----------------------------------------------------------------------- + signerPrivateData.forEach(data => { + data.session.partialSignature = bitbox.Schnorr.partialSign( + data.session, + publicData.message, + publicData.nonceCombined, + publicData.pubKeyCombined + ) + }) + +### `partialSignatureVerify` + +Verifies a partial signature `s_i` against the participant's public key `P_i`. Throws an `Error` if verification fails. + +#### Arguments + +1. session. `Session` +2. partialSig. `BigInteger` +3. nonceCombined. `Buffer` +4. idx. `number` +5. publicKey. `Buffer` +6. nonce. `Buffer` + +#### Examples + + // continued from above + // ----------------------------------------------------------------------- + // Step 7: Exchange partial signatures (communication round 3) + // The partial signature of each signer is exchanged with the other + // participants. Simulated here by copying. + // ----------------------------------------------------------------------- + for (let i = 0; i < publicData.pubKeys.length; i++) { + publicData.partialSignatures[i] = + signerPrivateData[i].session.partialSignature + } + + // ----------------------------------------------------------------------- + // Step 8: Verify individual partial signatures + // Every participant should verify the partial signatures received by the + // other participants. + // ----------------------------------------------------------------------- + for (let i = 0; i < publicData.pubKeys.length; i++) { + bitbox.Schnorr.partialSignatureVerify( + signerSession, + publicData.partialSignatures[i], + publicData.nonceCombined, + i, + publicData.pubKeys[i], + publicData.nonces[i] + ) + } + +### `partialSignaturesCombine` + +Combines multiple partial signatures into a Schnorr signature `(s, R)` that can be verified against the combined public key `P`. + +#### Arguments + +1. nonceCombined. `Buffer` +2. partialSignatures. `BigInteger[]` + +#### Result + +signature `Buffer` + +#### Examples + + // continued from above + // ----------------------------------------------------------------------- + // Step 9: Combine partial signatures + // Finally, the partial signatures can be combined into the full signature + // (s, R) that can be verified against combined public key P. + // ----------------------------------------------------------------------- + publicData.signature = bitbox.Schnorr.partialSignaturesCombine( + publicData.nonceCombined, + publicData.partialSignatures + ) + + // ----------------------------------------------------------------------- + // Step 10: Verify signature + // The resulting signature can now be verified as a normal Schnorr + // signature (s, R) over the message m and public key P. + // ----------------------------------------------------------------------- + bitbox.Schnorr.verify( + publicData.pubKeyCombined, + publicData.message, + publicData.signature + ) diff --git a/docs/script.md b/docs/script.md new file mode 100644 index 00000000..f0e05468 --- /dev/null +++ b/docs/script.md @@ -0,0 +1,1135 @@ +# Script + +### `opcodes` + +Script OP Codes + +#### Result + +opcodes `Object` + +#### Examples + + // list all op codes + bitbox.Script.opcodes; + // { OP_FALSE: 0, + // OP_0: 0, + // OP_PUSHDATA1: 76, + // OP_PUSHDATA2: 77, + // OP_PUSHDATA4: 78, + // OP_1NEGATE: 79, + // OP_RESERVED: 80, + // OP_TRUE: 81, + // OP_1: 81, + // OP_2: 82, + // OP_3: 83, + // OP_4: 84, + // ... + // } + + // get the op code for a word + bitbox.Script.opcodes.OP_SPLIT + // 127 + bitbox.Script.opcodes.OP_NUM2BIN + // 128 + bitbox.Script.opcodes.OP_BIN2NUM + // 129 + +### `encode` + +Encode a Script buffer + +#### Arguments + +1. scriptChunks `Array` + +#### Result + +buffer `Buffer` + +#### Examples + + // encode P2PKH scriptSig to buffer + let scriptSig = [ + Buffer.from('3045022100877e2f9c28421f0a850cc8ff66ba1d0f6c8dbe9e63e199c2c2600c9c15bf9d4402204d35b13d3cc202aa25722b2b1791442ebc5c39d898b609515260ad08f0e766a601', 'hex'), + Buffer.from('02fb721b92025e775b1b84774e65d568d24645cb633275f5c26f5c3101b214a8fb', 'hex') + ] + bitbox.Script.encode(scriptSig); + // + + // encode P2PKH scriptPubKey to buffer + let scriptPubKey = [ + 118, + 169, + Buffer.from('24e9c07804d0ee7e5bda934e0a3ae8710fc007dd', 'hex'), + 136, + 172 + ]; + bitbox.Script.encode(scriptPubKey); + // + +### `decode` + +Decode a Script buffer. + +#### Arguments + +1. buffer `Buffer` + +#### Result + +decodedScript `Array` + +#### Examples + + // decode P2PKH scriptSig buffer + let scriptSigBuffer = Buffer.from("483045022100877e2f9c28421f0a850cc8ff66ba1d0f6c8dbe9e63e199c2c2600c9c15bf9d4402204d35b13d3cc202aa25722b2b1791442ebc5c39d898b609515260ad08f0e766a6012102fb721b92025e775b1b84774e65d568d24645cb633275f5c26f5c3101b214a8fb", 'hex'); + bitbox.Script.decode(scriptSigBuffer); + // [ , ] + + // decode P2PKH scriptPubKey buffer + let scriptPubKeyBuffer = Buffer.from("76a91424e9c07804d0ee7e5bda934e0a3ae8710fc007dd88ac", 'hex'); + bitbox.Script.decode(scriptPubKeyBuffer); + // [ 118, + // 169, + // , + // 136, + // 172 ] + +### `toASM` + +Script buffer to ASM. + +#### Arguments + +1. buffer `Buffer` + +#### Result + +asm `string` + +#### Examples + + // P2PKH scriptSig + let scriptSigBuffer = Buffer.from('483045022100877e2f9c28421f0a850cc8ff66ba1d0f6c8dbe9e63e199c2c2600c9c15bf9d4402204d35b13d3cc202aa25722b2b1791442ebc5c39d898b609515260ad08f0e766a6012102fb721b92025e775b1b84774e65d568d24645cb633275f5c26f5c3101b214a8fb', 'hex'); + bitbox.Script.toASM(scriptSigBuffer); + // 3045022100877e2f9c28421f0a850cc8ff66ba1d0f6c8dbe9e63e199c2c2600c9c15bf9d4402204d35b13d3cc202aa25722b2b1791442ebc5c39d898b609515260ad08f0e766a601 02fb721b92025e775b1b84774e65d568d24645cb633275f5c26f5c3101b214a8fb + + // P2PKH scriptPubKey + let scriptBuffer = Buffer.from("76a914bee4182d9fbc8931a728410a0cd3e0f340f2995a88ac", 'hex'); + bitbox.Script.toASM(scriptBuffer); + // OP_DUP OP_HASH160 bee4182d9fbc8931a728410a0cd3e0f340f2995a OP_EQUALVERIFY OP_CHECKSIG + +### `fromASM` + +Script ASM to buffer + +#### Arguments + +1. asm `string` + +#### Result + +buffer `Buffer` + +#### Examples + + // P2PKH scriptSig + let scriptSigASM = "3045022100877e2f9c28421f0a850cc8ff66ba1d0f6c8dbe9e63e199c2c2600c9c15bf9d4402204d35b13d3cc202aa25722b2b1791442ebc5c39d898b609515260ad08f0e766a601 02fb721b92025e775b1b84774e65d568d24645cb633275f5c26f5c3101b214a8fb"; + bitbox.Script.fromASM(scriptSigASM); + // + + // P2PKH scriptPubKey + let scriptPubKeyASM = "OP_DUP OP_HASH160 bee4182d9fbc8931a728410a0cd3e0f340f2995a OP_EQUALVERIFY OP_CHECKSIG"; + bitbox.Script.fromASM(scriptPubKeyASM); + // + +### `encodeNullDataOutput` + +nulldata output template: `` OP_RETURN `data` `` + +#### Arguments + +1. data `Buffer` + +#### Result + +buffer `Buffer` + +#### Examples + + let data = "BCHForEveryone"; + let buf = Buffer.from(data, 'ascii') + let encoded = bitbox.Script.encodeNullDataOutput(buf); + bitbox.Script.toASM(encoded); + // OP_RETURN 424348466f7245766572796f6e65 + + let data = "Satoshi Nakamoto"; + let buf = Buffer.from(data, 'ascii') + let encoded = bitbox.Script.encodeNullDataOutput(buf); + bitbox.Script.toASM(encoded); + // OP_RETURN 5361746f736869204e616b616d6f746 + +### `decodeNullDataOutput` + +decode nulldata output + +#### Arguments + +1. output `Buffer` + +#### Result + +buffer `Buffer` + +#### Examples + + let hex = '6a0e424348466f7245766572796f6e65'; + let buf = Buffer.from(hex, 'hex') + let decoded = bitbox.Script.decodeNullDataOutput(buf); + decoded.toString('ascii') + // BCHForEveryone + + let hex = '6a105361746f736869204e616b616d6f746f'; + let buf = Buffer.from(hex, 'hex') + let decoded = bitbox.Script.decodeNullDataOutput(buf); + decoded.toString('ascii') + // Satoshi Nakamoto + +### `checkNullDataOutput` + +check nulldata output format + +#### Arguments + +1. output `Buffer` + +#### Result + +valid `boolean` + +#### Examples + + // check null data output + let data = "BCHForEveryone" + let buf = Buffer.from(data, 'ascii') + let encoded = bitbox.Script.encodeNullDataOutput(buf) + bitbox.Script.checkNullDataOutput(encoded) + // true + + // check p2pk input + let signature = '304402207515cf147d201f411092e6be5a64a6006f9308fad7b2a8fdaab22cd86ce764c202200974b8aca7bf51dbf54150d3884e1ae04f675637b926ec33bf75939446f6ca2801'; + let buf = Buffer.from(signature, 'hex') + let encoded = bitbox.Script.encodeP2PKInput(buf) + bitbox.Script.checkNullDataOutput(encoded); + // false + +### `encodeP2PKInput` + +p2pk input template: `` `signature` `` + +#### Arguments + +1. signature `Buffer` + +#### Result + +encoded `Buffer` + +#### Examples + + let signature = '304402207515cf147d201f411092e6be5a64a6006f9308fad7b2a8fdaab22cd86ce764c202200974b8aca7bf51dbf54150d3884e1ae04f675637b926ec33bf75939446f6ca2801'; + let buf = Buffer.from(signature, 'hex') + let encoded = bitbox.Script.encodeP2PKInput(buf) + bitbox.Script.toASM(encoded); + // 304402207515cf147d201f411092e6be5a64a6006f9308fad7b2a8fdaab22cd86ce764c202200974b8aca7bf51dbf54150d3884e1ae04f675637b926ec33bf75939446f6ca2801 + +### `decodeP2PKInput` + +decode p2pk input + +#### Arguments + +1. input `Buffer` + +#### Result + +decoded `Buffer` + +#### Examples + + let input = '47304402207515cf147d201f411092e6be5a64a6006f9308fad7b2a8fdaab22cd86ce764c202200974b8aca7bf51dbf54150d3884e1ae04f675637b926ec33bf75939446f6ca2801'; + let buf = Buffer.from(input, 'hex') + bitbox.Script.decodeP2PKInput(buf) + // + +### `checkP2PKInput` + +check p2pk input format + +#### Arguments + +1. input `Buffer` + +#### Result + +valid `boolean` + +#### Examples + + // check p2pk input + let input = '304402207515cf147d201f411092e6be5a64a6006f9308fad7b2a8fdaab22cd86ce764c202200974b8aca7bf51dbf54150d3884e1ae04f675637b926ec33bf75939446f6ca2801'; + let buf = Buffer.from(input, 'hex') + let encoded = bitbox.Script.encodeP2PKInput(buf) + bitbox.Script.checkP2PKInput(encoded) + // true + + // check null data output + let data = "BCHForEveryone"; + let buf = Buffer.from(data, 'ascii') + let encoded = bitbox.Script.encodeNullDataOutput(buf); + bitbox.Script.checkP2PKInput(encoded) + // false + +### `encodeP2PKOutput` + +p2pk output template: `` `pubKey` OP_CHECKSIG `` + +#### Arguments + +1. pubKey `Buffer` + +#### Result + +output `Buffer` + +#### Examples + + let pubKey = '02d305772e0873fba6c1c7ff353ce374233316eb5820acd7ff3d7d9b82d514126b' + let buf = Buffer.from(pubKey, 'hex') + let encoded = bitbox.Script.encodeP2PKOutput(buf) + bitbox.Script.toASM(encoded) + // 02d305772e0873fba6c1c7ff353ce374233316eb5820acd7ff3d7d9b82d514126b OP_CHECKSIG + +### `decodeP2PKOutput` + +decode p2pk output + +#### Arguments + +1. output `Buffer` + +#### Result + +decoded `Buffer` + +#### Examples + + let output = '2102d305772e0873fba6c1c7ff353ce374233316eb5820acd7ff3d7d9b82d514126bac'; + let buf = Buffer.from(output, 'hex') + bitbox.Script.decodeP2PKOutput(buf) + // + +### `checkP2PKOutput` + +check P2PK output format + +#### Arguments + +1. output `Buffer` + +#### Result + +valid `boolean` + +#### Examples + + // check p2pk output + let output = '02d305772e0873fba6c1c7ff353ce374233316eb5820acd7ff3d7d9b82d514126b'; + let buf = Buffer.from(output, 'hex') + let encoded = bitbox.Script.encodeP2PKOutput(buf) + bitbox.Script.checkP2PKOutput(encoded) + // true + + // null data output + let data = "BCHForEveryone"; + let buf = Buffer.from(data, 'ascii') + let encoded = bitbox.Script.encodeNullDataOutput(buf); + bitbox.Script.checkP2PKOutput(encoded) + // false + +### `encodeP2PKHInput` + +p2pkh input template: `` `signature` `pubKey` `` + +#### Arguments + +1. signature `Buffer` +2. pubKey `Buffer` + +#### Result + +encoded `Buffer` + +#### Examples + + let signature = '304402207515cf147d201f411092e6be5a64a6006f9308fad7b2a8fdaab22cd86ce764c202200974b8aca7bf51dbf54150d3884e1ae04f675637b926ec33bf75939446f6ca2801'; + let pubKey = '02d9bb8da1de26d390b6f3dcb4e589857730536b646995fa948a8319ede2ca1c15'; + let sigBuf = Buffer.from(signature, 'hex') + let pubKeyBuf = Buffer.from(pubKey, 'hex') + let encoded = bitbox.Script.encodeP2PKHInput(sigBuf, pubKeyBuf); + bitbox.Script.toASM(encoded); + // 304402207515cf147d201f411092e6be5a64a6006f9308fad7b2a8fdaab22cd86ce764c202200974b8aca7bf51dbf54150d3884e1ae04f675637b926ec33bf75939446f6ca2801 02d9bb8da1de26d390b6f3dcb4e589857730536b646995fa948a8319ede2ca1c15 + +### `decodeP2PKHInput` + +decode p2pkh input + +#### Arguments + +1. input `Buffer` + +#### Result + +decoded `Buffer` + +#### Examples + + let input = '47304402207515cf147d201f411092e6be5a64a6006f9308fad7b2a8fdaab22cd86ce764c202200974b8aca7bf51dbf54150d3884e1ae04f675637b926ec33bf75939446f6ca28012102d9bb8da1de26d390b6f3dcb4e589857730536b646995fa948a8319ede2ca1c15' + let buf = Buffer.from(input, 'hex') + bitbox.Script.decodeP2PKHInput(buf) + // { signature: + // , + // pubKey: } + +### `checkP2PKHInput` + +check P2PKH input format + +#### Arguments + +1. input `Buffer` + +#### Result + +valid `boolean` + +#### Examples + + // check p2pkh input + let signature = '304402207515cf147d201f411092e6be5a64a6006f9308fad7b2a8fdaab22cd86ce764c202200974b8aca7bf51dbf54150d3884e1ae04f675637b926ec33bf75939446f6ca2801'; + let pubKey = '02d9bb8da1de26d390b6f3dcb4e589857730536b646995fa948a8319ede2ca1c15'; + let sigBuf = Buffer.from(signature, 'hex') + let pubKeyBuf = Buffer.from(pubKey, 'hex') + let encoded = bitbox.Script.encodeP2PKHInput(sigBuf, pubKeyBuf); + bitbox.Script.checkP2PKHInput(encoded); + // true + + // check p2pk input + let input = '304402207515cf147d201f411092e6be5a64a6006f9308fad7b2a8fdaab22cd86ce764c202200974b8aca7bf51dbf54150d3884e1ae04f675637b926ec33bf75939446f6ca2801'; + let buf = Buffer.from(input, 'hex') + let encoded = bitbox.Script.encodeP2PKInput(buf) + bitbox.Script.checkP2PKHInput(encoded); + // false + +### `encodeP2PKHOutput` + +p2pkh output template: `` OP_DUP OP_HASH160 `pubKeyHash` OP_EQUALVERIFY OP_CHECKSIG `` + +#### Arguments + +1. identifier `Buffer` + +#### Result + +output `Buffer` + +#### Examples + + let node = bitbox.HDNode.fromXPriv('xprv9xoxVbZ7L8jmvKx7e1hgd7muo8H35ysTx1LCKFey5nVHUkHSPBxpzBzt2HVK16hu4m6oN5vfaCWSZQvqtDhfJTCY3t9ocp7H7zcTZ2fVRwL'); + let identifier = bitbox.HDNode.toIdentifier(node); + let output = bitbox.Script.encodeP2PKHOutput(identifier); + bitbox.Script.toASM(output) + // OP_DUP OP_HASH160 6ee7ded4f9d0deb6f4a63d68df5ccc4e41ad8967 OP_EQUALVERIFY OP_CHECKSIG + +### `decodeP2PKHOutput` + +decode p2pkh output + +#### Arguments + +1. output `Buffer` + +#### Result + +decoded `Buffer` + +#### Examples + + let output = '76a9146ee7ded4f9d0deb6f4a63d68df5ccc4e41ad896788ac'; + let buf = Buffer.from(output, 'hex') + bitbox.Script.pubKeyHash.output.decode(buf); + // + +### `checkP2PKHOutput` + +check P2PKH output format + +#### Arguments + +1. output `Buffer` + +#### Result + +valid `boolean` + +#### Examples + + // check p2pkh output + let node = bitbox.HDNode.fromXPriv('xprv9xoxVbZ7L8jmvKx7e1hgd7muo8H35ysTx1LCKFey5nVHUkHSPBxpzBzt2HVK16hu4m6oN5vfaCWSZQvqtDhfJTCY3t9ocp7H7zcTZ2fVRwL'); + let identifier = bitbox.HDNode.toIdentifier(node); + let output = bitbox.Script.encodeP2PKHOutput(identifier); + bitbox.Script.checkP2PKHOutput(output); + // true + + + // check p2pk output + let output = '02d305772e0873fba6c1c7ff353ce374233316eb5820acd7ff3d7d9b82d514126b'; + let buf = Buffer.from(output, 'hex') + let encoded = bitbox.Script.encodeP2PKOutput(buf) + bitbox.Script.checkP2PKHOutput(encoded); + // false + +### `encodeP2MSInput` + +p2ms Input template: `OP_0 [signatures ...]` + +#### Arguments + +1. signatures `Buffer[]` + +#### Result + +encoded `Buffer` + +#### Examples + + let signatures = [ + Buffer.from("304402207515cf147d201f411092e6be5a64a6006f9308fad7b2a8fdaab22cd86ce764c202200974b8aca7bf51dbf54150d3884e1ae04f675637b926ec33bf75939446f6ca2801", "hex"), + Buffer.from("3045022100ef253c1faa39e65115872519e5f0a33bbecf430c0f35cf562beabbad4da24d8d02201742be8ee49812a73adea3007c9641ce6725c32cd44ddb8e3a3af460015d140501", "hex") + ]; + let encoded = bitbox.Script.encodeP2MSInput(signatures); + bitbox.Script.toASM(encoded); + // OP_0 304402207515cf147d201f411092e6be5a64a6006f9308fad7b2a8fdaab22cd86ce764c202200974b8aca7bf51dbf54150d3884e1ae04f675637b926ec33bf75939446f6ca2801 3045022100ef253c1faa39e65115872519e5f0a33bbecf430c0f35cf562beabbad4da24d8d02201742be8ee49812a73adea3007c9641ce6725c32cd44ddb8e3a3af460015d14050 + +### `decodeP2MSInput` + +decode p2ms input + +#### Arguments + +1. input `Buffer` + +#### Result + +decoded `Buffer[]` + +#### Examples + + let hex = '0047304402207515cf147d201f411092e6be5a64a6006f9308fad7b2a8fdaab22cd86ce764c202200974b8aca7bf51dbf54150d3884e1ae04f675637b926ec33bf75939446f6ca2801483045022100ef253c1faa39e65115872519e5f0a33bbecf430c0f35cf562beabbad4da24d8d02201742be8ee49812a73adea3007c9641ce6725c32cd44ddb8e3a3af460015d140501'; + let input = Buffer.from(hex, 'hex') + bitbox.Script.multisig.input.decode(input); + // [ , + // ] + +### `checkP2MSInput` + +check P2MS input format + +#### Arguments + +1. input `Buffer` + +#### Result + +valid `boolean` + +#### Examples + + // check p2ms input + let signatures = [ + Buffer.from("304402207515cf147d201f411092e6be5a64a6006f9308fad7b2a8fdaab22cd86ce764c202200974b8aca7bf51dbf54150d3884e1ae04f675637b926ec33bf75939446f6ca2801", "hex"), + Buffer.from("3045022100ef253c1faa39e65115872519e5f0a33bbecf430c0f35cf562beabbad4da24d8d02201742be8ee49812a73adea3007c9641ce6725c32cd44ddb8e3a3af460015d140501", "hex") + ]; + let encoded = bitbox.Script.encodeP2MSInput(signatures); + bitbox.Script.checkP2MSInput(encoded); + // true + + // check p2pkh input + let signature = '304402207515cf147d201f411092e6be5a64a6006f9308fad7b2a8fdaab22cd86ce764c202200974b8aca7bf51dbf54150d3884e1ae04f675637b926ec33bf75939446f6ca2801'; + let pubKey = '02d9bb8da1de26d390b6f3dcb4e589857730536b646995fa948a8319ede2ca1c15'; + let sigBuf = Buffer.from(signature, 'hex') + let pubKeyBuf = Buffer.from(pubKey, 'hex') + let encoded = bitbox.Script.encodeP2PKHInput(sigBuf, pubKeyBuf); + bitbox.Script.checkP2MSInput(encoded); + // false + +### `encodeP2MSOutput` + +p2ms Output template: `m [pubKeys ...] n OP_CHECKMULTISIG` + +#### Arguments + +1. m `number` +2. pubKeys `Buffer[]` + +#### Result + +output `Buffer` + +#### Examples + + let pubKeys = [ + Buffer.from("02359c6e3f04cefbf089cf1d6670dc47c3fb4df68e2bad1fa5a369f9ce4b42bbd1", "hex"), + Buffer.from("0395a9d84d47d524548f79f435758c01faec5da2b7e551d3b8c995b7e06326ae4a", "hex") + ]; + let m = pubKeys.length + let buf = bitbox.Script.encodeP2MSOutput(m, pubKeys); + bitbox.Script.toASM(buf); + // OP_2 02359c6e3f04cefbf089cf1d6670dc47c3fb4df68e2bad1fa5a369f9ce4b42bbd1 0395a9d84d47d524548f79f435758c01faec5da2b7e551d3b8c995b7e06326ae4a OP_2 OP_CHECKMULTISIG + +### `decodeP2MSOutput` + +decode p2ms output + +#### Arguments + +1. output `Buffer` + +#### Result + +buffer `Buffer` + +#### Examples + + let hex = '522102359c6e3f04cefbf089cf1d6670dc47c3fb4df68e2bad1fa5a369f9ce4b42bbd1210395a9d84d47d524548f79f435758c01faec5da2b7e551d3b8c995b7e06326ae4a52ae'; + let output = Buffer.from(hex, 'hex') + bitbox.Script.decodeP2MSOutput(output); + // { m: 2, + // pubKeys: [ , + // ] } + +### `checkP2MSOutput` + +check P2MS output format + +#### Arguments + +1. output `Buffer` + +#### Result + +valid `boolean` + +#### Examples + + // check p2ms output + let pubKeys = [ + Buffer.from("02359c6e3f04cefbf089cf1d6670dc47c3fb4df68e2bad1fa5a369f9ce4b42bbd1", "hex"), + Buffer.from("0395a9d84d47d524548f79f435758c01faec5da2b7e551d3b8c995b7e06326ae4a", "hex") + ]; + let m = pubKeys.length + let output = bitbox.Script.encodeP2MSOutput(m, pubKeys); + bitbox.Script.checkP2MSOutput(output); + // true + + let node = bitbox.HDNode.fromXPriv('xprv9xoxVbZ7L8jmvKx7e1hgd7muo8H35ysTx1LCKFey5nVHUkHSPBxpzBzt2HVK16hu4m6oN5vfaCWSZQvqtDhfJTCY3t9ocp7H7zcTZ2fVRwL'); + let identifier = bitbox.HDNode.toIdentifier(node); + let output = bitbox.Script.encodeP2PKHOutput(identifier); + bitbox.Script.checkP2MSOutput(output); + // false + +### `encodeP2SHInput` + +p2sh Input template: `` `scriptSig` `serialized scriptPubKey script` `` + +#### Arguments + +1. redeemScriptSig `Buffer` +2. redeemScript `Buffer` + +#### Result + +input`Buffer` + +#### Examples + + let redeemScriptSig = bitbox.Script.fromASM("OP_0 304402207515cf147d201f411092e6be5a64a6006f9308fad7b2a8fdaab22cd86ce764c202200974b8aca7bf51dbf54150d3884e1ae04f675637b926ec33bf75939446f6ca2801 3045022100ef253c1faa39e65115872519e5f0a33bbecf430c0f35cf562beabbad4da24d8d02201742be8ee49812a73adea3007c9641ce6725c32cd44ddb8e3a3af460015d140501"); + let redeemScript = bitbox.Script.fromASM("OP_2 02359c6e3f04cefbf089cf1d6670dc47c3fb4df68e2bad1fa5a369f9ce4b42bbd1 0395a9d84d47d524548f79f435758c01faec5da2b7e551d3b8c995b7e06326ae4a OP_2 OP_CHECKMULTISIG"); + let input = bitbox.Script.encodeP2SHInput(redeemScriptSig, redeemScript); + bitbox.Script.toASM(input) + // OP_0 304402207515cf147d201f411092e6be5a64a6006f9308fad7b2a8fdaab22cd86ce764c202200974b8aca7bf51dbf54150d3884e1ae04f675637b926ec33bf75939446f6ca2801 3045022100ef253c1faa39e65115872519e5f0a33bbecf430c0f35cf562beabbad4da24d8d02201742be8ee49812a73adea3007c9641ce6725c32cd44ddb8e3a3af460015d140501 522102359c6e3f04cefbf089cf1d6670dc47c3fb4df68e2bad1fa5a369f9ce4b42bbd1210395a9d84d47d524548f79f435758c01faec5da2b7e551d3b8c995b7e06326ae4a52ae + +### `decodeP2SHInput` + +decode p2sh input + +#### Arguments + +1. input `Buffer` + +#### Result + +decoded `Buffer` + +#### Examples + + let hex = '0047304402207515cf147d201f411092e6be5a64a6006f9308fad7b2a8fdaab22cd86ce764c202200974b8aca7bf51dbf54150d3884e1ae04f675637b926ec33bf75939446f6ca2801483045022100ef253c1faa39e65115872519e5f0a33bbecf430c0f35cf562beabbad4da24d8d02201742be8ee49812a73adea3007c9641ce6725c32cd44ddb8e3a3af460015d14050147522102359c6e3f04cefbf089cf1d6670dc47c3fb4df68e2bad1fa5a369f9ce4b42bbd1210395a9d84d47d524548f79f435758c01faec5da2b7e551d3b8c995b7e06326ae4a52ae' + let input = Buffer.from(hex, 'hex') + bitbox.Script.decodeP2SHInput(input) + // { redeemScript: , + // redeemScriptSig: }} + +### `checkP2SHInput` + +check P2SH input format + +#### Arguments + +1. input `Buffer` + +#### Result + +valid `boolean` + +#### Examples + + // check p2sh input + let redeemScriptSig = bitbox.Script.fromASM("OP_0 304402207515cf147d201f411092e6be5a64a6006f9308fad7b2a8fdaab22cd86ce764c202200974b8aca7bf51dbf54150d3884e1ae04f675637b926ec33bf75939446f6ca2801 3045022100ef253c1faa39e65115872519e5f0a33bbecf430c0f35cf562beabbad4da24d8d02201742be8ee49812a73adea3007c9641ce6725c32cd44ddb8e3a3af460015d140501") + let redeemScript = bitbox.Script.fromASM("OP_2 02359c6e3f04cefbf089cf1d6670dc47c3fb4df68e2bad1fa5a369f9ce4b42bbd1 0395a9d84d47d524548f79f435758c01faec5da2b7e551d3b8c995b7e06326ae4a OP_2 OP_CHECKMULTISIG") + let input = bitbox.Script.encodeP2SHInput(redeemScriptSig, redeemScript) + bitbox.Script.checkP2SHInput(input) + // true + + // check p2ms input + let signatures = [ + Buffer.from("304402207515cf147d201f411092e6be5a64a6006f9308fad7b2a8fdaab22cd86ce764c202200974b8aca7bf51dbf54150d3884e1ae04f675637b926ec33bf75939446f6ca2801", "hex"), + Buffer.from("3045022100ef253c1faa39e65115872519e5f0a33bbecf430c0f35cf562beabbad4da24d8d02201742be8ee49812a73adea3007c9641ce6725c32cd44ddb8e3a3af460015d140501", "hex") + ]; + let input = bitbox.Script.encodeP2MSInput(signatures); + bitbox.Script.checkP2SHInput(input) + // false + +### `encodeP2SHOutput` + +p2sh Output template: `` OP_HASH160 `scriptHash` OP_EQUAL `` + +#### Arguments + +1. scriptHash `Buffer` + +#### Result + +output `Buffer` + +#### Examples + + let redeemScript = bitbox.Script.fromASM("OP_DUP OP_HASH160 aa4d7985c57e011a8b3dd8e0e5a73aaef41629c5 OP_EQUALVERIFY OP_CHECKSIG"); + let scriptHash = bitbox.Crypto.hash160(redeemScript); + let output = bitbox.Script.encodeP2SHOutput(scriptHash); + bitbox.Script.toASM(output) + // OP_HASH160 1b61ebed0c2a16c699a99c3d5ef4d08de7fb1cb8 OP_EQUAL + +### `decodeP2SHOutput` + +decode p2sh output + +#### Arguments + +1. output `Buffer` + +#### Result + +decoded `Buffer` + +#### Examples + + let hex = 'a9141b61ebed0c2a16c699a99c3d5ef4d08de7fb1cb887' + let output = Buffer.from(hex, 'hex') + bitbox.Script.decodeP2SHOutput(output) + // + +### `checkP2SHOutput` + +check P2SH output format + +#### Arguments + +1. output `Buffer` + +#### Result + +valid `boolean` + +#### Examples + + // check p2sh output + let redeemScript = bitbox.Script.fromASM("OP_DUP OP_HASH160 aa4d7985c57e011a8b3dd8e0e5a73aaef41629c5 OP_EQUALVERIFY OP_CHECKSIG") + let scriptHash = bitbox.Crypto.hash160(redeemScript) + let output = bitbox.Script.encodeP2SHOutput(scriptHash) + bitbox.Script.checkP2SHOutput(output); + // true + + // check p2ms output + let pubKeys = [ + Buffer.from("02359c6e3f04cefbf089cf1d6670dc47c3fb4df68e2bad1fa5a369f9ce4b42bbd1", "hex"), + Buffer.from("0395a9d84d47d524548f79f435758c01faec5da2b7e551d3b8c995b7e06326ae4a", "hex") + ]; + let m = pubKeys.length + let output = bitbox.Script.encodeP2MSOutput(m, pubKeys); + bitbox.Script.checkP2SHOutput(output); + // false + +### `classifyInput` + +Classify transaction input + +#### Arguments + +1. input `Buffer` + +#### Result + +type `string` + +#### Examples + + let pubkeyInput = "3045022100ba2c3b717e023966cb16df65ca83f77029e2a5b80c47c47b6956474ac9ff281302201d48ee3292439e284a6654a0e79ac2b8f7fff5c6b0d715260aa296501a239c6441"; + bitbox.Script.classifyInput(bitbox.Script.fromASM(pubkeyInput)); + // pubkey + + let pubkeyhashInput = "30440220280d4a9954c5afe24089bdd545466bd7a8caad8b295e30de9d3cb5e56fccf64e022036663b2c53b5fac674b4b935b53e2a4ea88dfc71c9b879870976d82887542ab441 02969479fa9bea3082697dce683ac05b13ae63016b41d5ca1a450ad40f6c543751"; + bitbox.Script.classifyInput(bitbox.Script.fromASM(pubkeyhashInput)); + // pubkeyhash + + let multisigInput = "OP_0 3045022100fe324541215798b2df68cbd44039615e23c506d4ec1a05572064392a98196b82022068c849fa6699206da2fc6d7848efc1d3804a5816d6293615fe34c1a7f34e1c2f01 3044022001ab168e80b863fdec694350b587339bb72a37108ac3c989849251444d13ebba02201811272023e3c1038478eb972a82d3ad431bfc2408e88e4da990f1a7ecbb263901 3045022100aaeb7204c17eee2f2c4ff1c9f8b39b79e75e7fbf33e92cc67ac51be8f15b75f90220659eee314a4943a6384d2b154fa5821ef7a084814d7ee2c6f9f7f0ffb53be34b01"; + bitbox.Script.classifyInput(bitbox.Script.fromASM(multisigInput)); + // multisig + + let scripthashInput = "OP_0 304402207515cf147d201f411092e6be5a64a6006f9308fad7b2a8fdaab22cd86ce764c202200974b8aca7bf51dbf54150d3884e1ae04f675637b926ec33bf75939446f6ca2801 3045022100ef253c1faa39e65115872519e5f0a33bbecf430c0f35cf562beabbad4da24d8d02201742be8ee49812a73adea3007c9641ce6725c32cd44ddb8e3a3af460015d140501 522102359c6e3f04cefbf089cf1d6670dc47c3fb4df68e2bad1fa5a369f9ce4b42bbd1210395a9d84d47d524548f79f435758c01faec5da2b7e551d3b8c995b7e06326ae4a52ae"; + bitbox.Script.classifyInput(bitbox.Script.fromASM(scripthashInput)); + // scripthash + +### `classifyOutput` + +Classify transaction output + +#### Arguments + +1. output `Buffer` + +#### Result + +type `string` + +#### Examples + + let nullDataOutput = "OP_RETURN 424348466f7245766572796f6e65"; + bitbox.Script.classifyOutput(bitbox.Script.fromASM(nullDataOutput)); + // nulldata + + let pubkeyOutput = "02359c6e3f04cefbf089cf1d6670dc47c3fb4df68e2bad1fa5a369f9ce4b42bbd1 OP_CHECKSIG"; + bitbox.Script.classifyOutput(bitbox.Script.fromASM(pubkeyOutput)); + // pubkey + + let pubkeyhashOutput = "OP_DUP OP_HASH160 aa4d7985c57e011a8b3dd8e0e5a73aaef41629c5 OP_EQUALVERIFY OP_CHECKSIG"; + bitbox.Script.classifyOutput(bitbox.Script.fromASM(pubkeyhashOutput)); + // pubkeyhash + + let multisigOutput = "OP_2 02359c6e3f04cefbf089cf1d6670dc47c3fb4df68e2bad1fa5a369f9ce4b42bbd1 0395a9d84d47d524548f79f435758c01faec5da2b7e551d3b8c995b7e06326ae4a OP_2 OP_CHECKMULTISIG"; + bitbox.Script.classifyOutput(bitbox.Script.fromASM(multisigOutput)); + // multisig + + let scripthashOutput = "OP_HASH160 722ff0bc2c3f47b35c20df646c395594da24e90e OP_EQUAL"; + bitbox.Script.classifyOutput(bitbox.Script.fromASM(scripthashOutput)); + // scripthash + +### `encodeNumber` + +Classify transaction output + +#### Arguments + +1. number: `number` + +#### Result + +hex `string` + +#### Examples + + bitbox.Script.encodeNumber(1) + // "01" + + bitbox.Script.encodeNumber(1000) + // "e803" + +### `decodeNumber` + +Classify transaction output + +#### Arguments + +1. buffer: `Buffer` +2. maxLength: `number` **optional** +3. minimal: `boolean` **optional** + +#### Result + +hex `string` + +#### Examples + + bitbox.Script.number.decode(Buffer.from("01", 'hex')) + // 1 + + bitbox.Script.number.decode(Buffer.from("e803", 'hex')) + // 1000 + +## Interfaces + +### opcodes + + { + OP_FALSE: 0 + OP_0: 0 + OP_PUSHDATA1: 76 + OP_PUSHDATA2: 77 + OP_PUSHDATA4: 78 + OP_1NEGATE: 79 + OP_RESERVED: 80 + OP_TRUE: 81 + OP_1: 81 + OP_2: 82 + OP_3: 83 + OP_4: 84 + OP_5: 85 + OP_6: 86 + OP_7: 87 + OP_8: 88 + OP_9: 89 + OP_10: 90 + OP_11: 91 + OP_12: 92 + OP_13: 93 + OP_14: 94 + OP_15: 95 + OP_16: 96 + OP_NOP: 97 + OP_VER: 98 + OP_IF: 99 + OP_NOTIF: 100 + OP_VERIF: 101 + OP_VERNOTIF: 102 + OP_ELSE: 103 + OP_ENDIF: 104 + OP_VERIFY: 105 + OP_RETURN: 106 + OP_TOALTSTACK: 107 + OP_FROMALTSTACK: 108 + OP_2DROP: 109 + OP_2DUP: 110 + OP_3DUP: 111 + OP_2OVER: 112 + OP_2ROT: 113 + OP_2SWAP: 114 + OP_IFDUP: 115 + OP_DEPTH: 116 + OP_DROP: 117 + OP_DUP: 118 + OP_NIP: 119 + OP_OVER: 120 + OP_PICK: 121 + OP_ROLL: 122 + OP_ROT: 123 + OP_SWAP: 124 + OP_TUCK: 125 + OP_CAT: 126 + OP_SPLIT: 127 + OP_NUM2BIN: 128 + OP_BIN2NUM: 129 + OP_SIZE: 130 + OP_INVERT: 131 + OP_AND: 132 // May 2018 reenabled + OP_OR: 133 // May 2018 reenabled + OP_XOR: 134 // May 2018 reenabled + OP_EQUAL: 135 + OP_EQUALVERIFY: 136 + OP_RESERVED1: 137 + OP_RESERVED2: 138 + OP_1ADD: 139 + OP_1SUB: 140 + OP_2MUL: 141 + OP_2DIV: 142 + OP_NEGATE: 143 + OP_ABS: 144 + OP_NOT: 145 + OP_0NOTEQUAL: 146 + OP_ADD: 147 + OP_SUB: 148 + OP_MUL: 149 + OP_DIV: 150 // May 2018 reenabled + OP_MOD: 151 // May 2018 reenabled + OP_LSHIFT: 152 + OP_RSHIFT: 153 + OP_BOOLAND: 154 + OP_BOOLOR: 155 + OP_NUMEQUAL: 156 + OP_NUMEQUALVERIFY: 157 + OP_NUMNOTEQUAL: 158 + OP_LESSTHAN: 159 + OP_GREATERTHAN: 160 + OP_LESSTHANOREQUAL: 161 + OP_GREATERTHANOREQUAL: 162 + OP_MIN: 163 + OP_MAX: 164 + OP_WITHIN: 165 + OP_RIPEMD160: 166 + OP_SHA1: 167 + OP_SHA256: 168 + OP_HASH160: 169 + OP_HASH256: 170 + OP_CODESEPARATOR: 171 + OP_CHECKSIG: 172 + OP_CHECKSIGVERIFY: 173 + OP_CHECKMULTISIG: 174 + OP_CHECKMULTISIGVERIFY: 175 + OP_NOP1: 176 + OP_NOP2: 177 + OP_CHECKLOCKTIMEVERIFY: 177 + OP_NOP3: 178 + OP_CHECKSEQUENCEVERIFY: 178 + OP_NOP4: 179 + OP_NOP5: 180 + OP_NOP6: 181 + OP_NOP7: 182 + OP_NOP8: 183 + OP_NOP9: 184 + OP_NOP10: 185 + OP_CHECKDATASIG: 186 + OP_CHECKDATASIGVERIFY: 187 + OP_PUBKEYHASH: 253 + OP_PUBKEY: 254 + OP_INVALIDOPCODE: 255 + } + +### DecodedP2PKHInput + + { + signature: Buffer + pubKey: Buffer + } + +### DecodedP2MSOutput + + { + m: number + pubKeys: Buffer[] + } + +### DecodedP2SHInput + + { + redeemScript: Buffer + redeemScriptSig: Buffer + } + +### nullData + + { + output: { + encode(data: Buffer): Buffer + decode(output: Buffer): Buffer + check(output: Buffer): boolean + } + } + +#### pubKey + + { + input: + { + encode(signature: Buffer): Buffer + decode(input: Buffer): Buffer + check(input: Buffer): boolean + decodeStack(data: Buffer): Buffer + encodeStack(data: Buffer): Buffer + }, + output: { + encode(pubKey: Buffer): Buffer + decode(output: Buffer): Buffer + check(output: Buffer): boolean + } + } + +### pubKeyHash + + { + input: + { + encode(signature: Buffer, pubKey: Buffer): Buffer + decode(data: Buffer): DecodedP2PKHInput + check(data: Buffer): boolean + decodeStack(data: Buffer): Buffer + encodeStack(data: Buffer): Buffer + }, + output: + { + encode(identifier: Buffer): Buffer + decode(output: Buffer): Buffer + check(output: Buffer): boolean + } + } + +### multisig + + { + input: + { + encode(signatures: Buffer[]): Buffer + decode(input: Buffer): Buffer[] + check(input: Buffer): boolean + }, + output: + { + encode(m: number, pubKeys: Buffer[]): Buffer + decode(output: Buffer): DecodedP2MSOutput + check(output: Buffer): boolean + } + } + +### scriptHash + + { + input: + { + encode(redeemScriptSig: Buffer, redeemScript: Buffer): Buffer + decode(input: Buffer): DecodedP2SHInput + check(data: Buffer): boolean + decodeStack(data: Buffer): Buffer + encodeStack(data: Buffer): Buffer + }, + output: + { + encode(scriptHash: Buffer): Buffer + decode(output: Buffer): Buffer + check(output: Buffer): boolean + } + } + +### scriptNumber + + { + encode(number: number): Buffer + decode(buffer: Buffer, maxLength?: number, minimal?: boolean): number + } diff --git a/docs/socket.md b/docs/socket.md new file mode 100644 index 00000000..14a64996 --- /dev/null +++ b/docs/socket.md @@ -0,0 +1,151 @@ +# Socket + +### `constructor` + +Create new Socket. + +#### Arguments + +1. config `Object`: with properties: + 1. wsURL `string`: optional, Defaults to `wss://ws.bitcoin.com` + 2. bitsocketURL `string`: optional + 3. restURL `string`: optional + 4. callback `Function`: optional + +#### Result + +Socket `Socket` + +#### Examples + + // instance of Socket + let socket = new bitbox.Socket({callback: () => {console.log('connected')}, wsURL: 'wss://ws.bitcoin.com'}) + +### `listen` + +Listen on a websocket to get real\-time data. + +#### Arguments + +1. query `string | object`: type of data to return in real time. `transactions` or `blocks` are valid `string`s. Any BitSocket `query` object is also valid +2. callback `function`: function to be called which gets passed back `message` in real time. + +#### Result + +data `Object`: data returned in real\-time over a websocket + +#### Examples + + // raw websocket data example + + let socket = new bitbox.Socket({callback: () => {console.log('connected')}, wsURL: 'wss://ws.bitcoin.com'}) + socket.listen('transactions', (message) => { + console.log(message) + }) + // returns the following + { + "format": { + "txid": "edbfdc5a149741009df15f8b518bdebc54261854fcdfefd7d8aa8a78b5e14250", + "version": 2, + "locktime": 0, + "size": 225, + "vsize": 225 + }, + "inputs": [ + { + "txid": "92923f5048703bbf4cb78344d200935b37b88cfaa767635cf0c4275942c9b382", + "n": 3, + "script": "304502210099b59aaf9238612ad9ab706cb469dbd13662177e44cfdc5f29101e9e142ceb10022018061daf1127544f1b97817f2430b9f9c78efe54b51303c91c723807834e4ece41 025cc1f660956d4b924a0792b222ddd9b1742280c5e283281364a9b63123fe23e2", + "sequence": 4294967295 + } + ], + "outputs": [ + { + "satoshi": 6526, + "value": "0.00006526", + "n": 0, + "scriptPubKey": { + "asm": "OP_DUP OP_HASH160 670180972852c974359232baa64f4019f205bfbc OP_EQUALVERIFY OP_CHECKSIG", + "hex": "76a914670180972852c974359232baa64f4019f205bfbc88ac", + "type": "pubkeyhash", + "addresses": [ + "1APeQ9A39esuwsPDogNZYpGS5CxC54m5CL" + ] + } + }, + { + "satoshi": 0, + "value": "0.00000000", + "n": 1, + "scriptPubKey": { + "asm": "OP_RETURN 73747265737374657374626974636f696e2e63617368", + "hex": "6a1673747265737374657374626974636f696e2e63617368", + "type": "nulldata", + "addresses": [] + } + } + ] + } + + + let socket = new bitbox.Socket({callback: () => {console.log('connected')}, wsURL: 'https://ws.bitcoin.com'}) + socket.listen('blocks', (message) => { + console.log(message) + }) + // returns the following + { + "transactions": 183, + "totalBCHSent": 1057662477171, + "reward": 1250000000, + "prevHash": "cfac607ebae85629ede7d34f36064d24974f95c90b89c5000000000000000000", + "id": "0d2d939b3793ff8b2e130fe1f5257abd7784bfe147009f000000000000000000", + "hash": "0000000000000000009f0047e1bf8477bd7a25f5e10f132e8bff93379b932d0d", + "merkleRoot": "ac040e9130a71647f29dc55355fbe8db8bb1a5f1ac86b7ee1be0ae8488dc407e", + "version": 549453824, + "time": 1558667998, + "bits": 402882446, + "nonce": 2478895818 + } + + // BitSocket query example + let socket = new bitbox.Socket({ + callback: () => { + console.log("connected") + }, + wsURL: "wss://ws.bitcoin.com" + }) + socket.listen( + { + v: 3, + q: { find: {} } + }, + msg => { + setTimeout(function() { + socket.close(() => { + console.log("closed") + }) + }, 5000) + } + ) + // returns + // {"type":"mempool","data":[{"tx":{"h":"09ff3049857875089519407e6d00634c901ca3e42b79c2357f07ca0806255abd"},"in":[{"i":0,"b0":"MEUCIQD1aIxxL/QsWBU+yaRTWi8CPtF22Lgj9FyFgs/Tk0MzTAIgTrw3P06CszZYN3hE6AzRSntvutzpgb5YM5ydgQJrWhJB","b1":"BGf/LfIPKLxirRiFJYaPQdRh99qzweUAMUzbUhjlY3v9D5wC61s/OD9pjSj/E1R+rwXdkhYTCGHdAhaCTp1zN+M=","str":"3045022100f5688c712ff42c58153ec9a4535a2f023ed176d8b823f45c8582cfd39343334c02204ebc373f4e82b33658377844e80cd14a7b6fbadce981be58339c9d81026b5a1241 0467ff2df20f28bc62ad188525868f41d461f7dab3c1e500314cdb5218e5637bfd0f9c02eb5b3f383f698d28ff13547eaf05dd9216130861dd0216824e9d7337e3","e":{"h":"6749fdb788c89abcbd28008470b7823e6658ce82b6939135ea52dd6df3d529bd","i":1,"a":"qqrxa0h9jqnc7v4wmj9ysetsp3y7w9l36u8gnnjulq"},"h0":"3045022100f5688c712ff42c58153ec9a4535a2f023ed176d8b823f45c8582cfd39343334c02204ebc373f4e82b33658377844e80cd14a7b6fbadce981be58339c9d81026b5a1241","h1":"0467ff2df20f28bc62ad188525868f41d461f7dab3c1e500314cdb5218e5637bfd0f9c02eb5b3f383f698d28ff13547eaf05dd9216130861dd0216824e9d7337e3"}],"out":[{"i":0,"b0":{"op":106},"b1":"XUh5xw==","s1":"]Hy�","b2":"Rjj8ADakaq4888s+Ock4xDyiM5w8CFCcNgQ0WDfncRM=","s2":"F8�\u00006�j�<��>9�8�<�3�<\bP�6\u00044X7�q\u0013","str":"OP_RETURN 5d4879c7 4638fc0036a46aae3cf3cb3e39c938c43ca2339c3c08509c3604345837e77113","e":{"v":0,"i":0},"h1":"5d4879c7","h2":"4638fc0036a46aae3cf3cb3e39c938c43ca2339c3c08509c3604345837e77113"},{"i":1,"b0":{"op":118},"b1":{"op":169},"b2":"Bm6+5ZAnjzKu3IpIZXAMSecX8dc=","s2":"\u0006n��'�2�܊Hep\fI�\u0017��","b3":{"op":136},"b4":{"op":172},"str":"OP_DUP OP_HASH160 066ebee590278f32aedc8a4865700c49e717f1d7 OP_EQUALVERIFY OP_CHECKSIG","e":{"v":2020,"i":1,"a":"qqrxa0h9jqnc7v4wmj9ysetsp3y7w9l36u8gnnjulq"},"h2":"066ebee590278f32aedc8a4865700c49e717f1d7"}],"_id":"5d4879c8a236c608b89c551e"}]} + // closed + +### `close` + +Close websocket connection + +#### Arguments + +1. callback `function` (optional): function to be called. + +#### Examples + + let socket = new bitbox.Socket({callback: () => {console.log('connected')}, wsURL: 'wss://ws.bitcoin.com'}) + socket.listen('transactions', (message) => { + socket.close(() => { + console.log("closed") + }) + }) + // returns the following + // closed diff --git a/docs/transaction.md b/docs/transaction.md new file mode 100644 index 00000000..af42d862 --- /dev/null +++ b/docs/transaction.md @@ -0,0 +1,123 @@ +# Transaction + +## Transaction + +### `details` + +Return details about a Transaction. + +#### Arguments + +- txids `string | string[]`: transaction ID + +#### Result + +details `Promise` + +#### Examples + + // single txid + (async () => { + try { + let details = await bitbox.Transaction.details('a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8'); + console.log(details); + } catch(error) { + console.error(error) + } + })() + + // { + // "txid": "a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8", + // "version": 1, + // "locktime": 0, + // "vin": [ + // { + // "coinbase": "04ffff001d029804", + // "sequence": 4294967295, + // "n": 0 + // } + // ], + // "vout": [ + // { + // "value": "50.00000000", + // "n": 0, + // "scriptPubKey": { + // "hex": "41047737b5d3036fcc149960d41ce31d47c5a47d3a843b23898d28a5e24d1482616860ba5bc61f060586c7ac2b0e7e3ec76e4763cf897d5b8b1110691832c9368f8cac", + // "asm": "047737b5d3036fcc149960d41ce31d47c5a47d3a843b23898d28a5e24d1482616860ba5bc61f060586c7ac2b0e7e3ec76e4763cf897d5b8b1110691832c9368f8c OP_CHECKSIG", + // "addresses": [ + // "1QEHawPyyALtoDcXTpQsMNtQCoUswtWRJu" + // ], + // "type": "pubkeyhash" + // }, + // "spentTxId": null, + // "spentIndex": null, + // "spentHeight": null + // } + // ], + // "blockhash": "000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0", + // "blockheight": 507, + // "confirmations": 528404, + // "time": 1231973656, + // "blocktime": 1231973656, + // "isCoinBase": true, + // "valueOut": 50, + // "size": 135 + // } + + // array of txids + (async () => { + try { + let details = await bitbox.Transaction.details(["a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8", "113f1fe1c454a56436d4f93c7c6e315d1ed985d111299e9c2a3e2d3d1e9f177f"]); + console.log(details); + } catch(error) { + console.error(error) + } + })() + + // [ { txid: 'a85fa3d831ab6b0305e7ff88d2d4941e25a810d4461635df51490653822071a8', + // version: 1, + // locktime: 0, + // vin: [ [Object] ], + // vout: [ [Object] ], + // blockhash: '000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0', + // blockheight: 507, + // confirmations: 528728, + // time: 1231973656, + // blocktime: 1231973656, + // isCoinBase: true, + // valueOut: 50, + // size: 135 }, + // { txid: '113f1fe1c454a56436d4f93c7c6e315d1ed985d111299e9c2a3e2d3d1e9f177f', + // version: 1, + // locktime: 0, + // vin: [ [Object], [Object] ], + // vout: [ [Object], [Object] ], + // blockhash: '000000000000000001da2a49a63fb7d0d0893ebcb892aee3fbbfa47c803f9cf0', + // blockheight: 418195, + // confirmations: 111040, + // time: 1467019582, + // blocktime: 1467019582, + // valueOut: 2.09965689, + // size: 372, + // valueIn: 2.0997689, + // fees: 0.00011201 } ] + +## Interfaces + +### TxnDetails + + { + txid: string + version: number + locktime: number + vin: object[] + vout: object[] + blockhash: string + blockheight: number + confirmations: number + time: number + blocktime: number + isCoinBase: boolean + valueOut: number + size: number + } diff --git a/docs/transactionBuilder.md b/docs/transactionBuilder.md new file mode 100644 index 00000000..52e0008c --- /dev/null +++ b/docs/transactionBuilder.md @@ -0,0 +1,290 @@ +# TransactionBuilder + +### `constructor` + +Create new Transaction Builder. +The Transaction Builder object represents a transaction internally and is used to build a transaction step-by-step. It can then be expressed as a hexadecimal `string` ready to be sent to the \$BCH network. The necessary steps to create a transaction are: [`addInput`](#addinput), [`addOutput`](#addoutput), [`setLockTime`](#setlocktime), [`sign`](#sign) and [`build`](#build). + +#### Arguments + +1. network `string`: Defaults to "mainnet" + +#### Result + +TransactionBuilder `TransactionBuilder` + +#### Examples + + // instance of transaction builder + let transactionBuilder = new bitbox.TransactionBuilder('mainnet'); + +### `hashTypes` + +BITBOX supports the `SIGHASH_ALL`, `SIGHASH_NONE` and `SIGHASH_SINGLE` hash types w/ the `SIGHASH_ANYONECANPAY` modifier. + +#### Examples + + transactionBuilder.hashTypes + // { SIGHASH_ALL: 1, + // SIGHASH_NONE: 2, + // SIGHASH_SINGLE: 3, + // SIGHASH_ANYONECANPAY: 128, + // SIGHASH_BITCOINCASH_BIP143: 64 } + + transactionBuilder.hashTypes.SIGHASH_ALL + // 1 + + // also has a DEFAULT_SEQUENCE of 0xffffffff + transactionBuilder.DEFAULT_SEQUENCE + // 4294967295 + +### `signatureAlgorithms` + +BITBOX supports the `ECDSA` and `SCHNORR` signature algorithms. + +#### Examples + + transactionBuilder.signatureAlgorithms + // { ECDSA: 0, + // SCHNORR: 1 } + +### `addInput` + +Add input to transaction + +#### Arguments + +1. txid `string`: txid of vout +2. index `number`: index of vout +3. sequence `number` **optional**: relative lock time. Default `0xffffffff` +4. prevOutScript `string` **optional**: previous output script + +#### Examples + + // txid of vout + let txid = 'f7890915febe580920df2681d2bac0909ae89bd0cc1d3ed763e5eeba7f337f0e'; + // add input with txid and index of vout + transactionBuilder.addInput(txid, 0); + +### `addOutput` + +Add output to transaction + +#### Arguments + +1. scriptPubKey `string`: legacy/cashaddr address or script +2. sendAmount `number`: amount to send in satoshis + +#### Examples + + let originalAmount = 100000; + let byteCount = bitbox.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 1 }); + // amount to send to receiver. It's the original amount - 1 sat/byte for tx size + let sendAmount = originalAmount - byteCount; + // add output w/ address and amount to send + transactionBuilder.addOutput('bitcoincash:qpuax2tarq33f86wccwlx8ge7tad2wgvqgjqlwshpw', sendAmount); + +### `setLockTime` + +Set [locktime](https://developer.bitcoin.com/mastering-bitcoin-cash/4-transactions/#transaction-locktime) + +#### Arguments + +1. locktime `number` + +#### Examples + + let originalAmount = 100000; + let byteCount = bitbox.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 1 }); + // amount to send to receiver. It's the original amount - 1 sat/byte for tx size + let sendAmount = originalAmount - byteCount; + // add output w/ address and amount to send + transactionBuilder.addOutput('bitcoincash:qpuax2tarq33f86wccwlx8ge7tad2wgvqgjqlwshpw', sendAmount); + transactionBuilder.setLockTime(50000) + +### `sign` + +Sign transaction. It creates the unlocking script needed to spend an input. Each input has its own script and thus 'sign' must be called for each input even if the keyPair is the same. + +#### Arguments + +1. vin `number`: vin to sign +2. keyPair `ECPair`: ECPair of HDNode +3. redeemScript `Buffer` +4. hashType `number` +5. originalAmount `number`: satoshis in vin +6. signatureAlgorithm **optional** `number`: Signature Algorithm (ECDSA/Schnorr) + +#### Examples + + let originalAmount = 100000; + // node of address which is going to spend utxo + let hdnode = bitbox.HDNode.fromXPriv("xprvA3eaDg64MwDr72PVGJ7CkvshNAzCDRz7rn98sYrZVAtDSWCAmNGQhEQeCLDcnmcpSkfjhHevXmu4ZL8ZcT9D4vEbG8LpiToZETrHZttw9Yw"); + // keypair + let keyPair = bitbox.HDNode.toKeyPair(hdnode); + // empty redeemScript variable + let redeemScript; + // sign w/ keyPair + transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount, transactionBuilder.signatureAlgorithms.SCHNORR); + +### `build` + +Build transaction + +#### Result + +Transaction `Object`: Transaction + +#### Examples + + // build tx + let tx = transactionBuilder.build(); + +### `toHex` + +Return raw hex of transaction ready to be sent to the \$BCH network + +#### Result + +rawHex `string`: hex encoded raw transaction ready to be sent to the \$BCH network + +#### Examples + + // output rawhex + let hex = tx.toHex(); + // 02000000010e7f337fbaeee563d73e1dccd09be89a90c0bad28126df200958befe150989f7000000006b48304502210085b8eb33f3981315bbe39c6810d0311c6cb39504914300ecd952cab8353222e202200ec95797c06ba8c9b15d59ab80e63300cb2371f67b3969d0b502d0fed733fbed4121025c85a571619e60fed412de0356b4e28f4f3670ab0c2b899dfe60e69aaa6cd4c0ffffffff01a6370000000000001976a91479d3297d1823149f4ec61df31d19f2fad5390c0288ac00000000 + // sendRawTransaction to running BCH node + bitbox.RawTransactions.sendRawTransaction(hex).then((result) => { console.log(result); }, (err) => { console.log(err); }); + // dfe54ec45c6fa2fa85b76d113de85b169d36902eaf6700f1cca21eed1392814b + +### `OP_RETURN` + +Write data to the blockchain w/ `OP_RETURN` + +#### Result + +rawHex `string`: hex encoded raw transaction ready to be sent to the \$BCH network + +#### Examples + + // encode some text as a buffer + let buf = new Buffer('#BCHForEveryone'); + // create array w/ OP_RETURN code and text buffer and encode + let data = bitbox.Script.encode([ + bitbox.Script.opcodes.OP_RETURN, + buf + ]) + // add encoded data as output and send 0 satoshis + transactionBuilder.addOutput(data, 0) + + // later when you decode the raw hex of the tx you'll see this scriptPubKey + "OP_RETURN 23424348466f7245766572796f6e65" + + // you can use BITBOX to decode it to the original text + let fromAsm = bitbox.Script.fromASM("OP_RETURN 23424348466f7245766572796f6e65") + let decoded = bitbox.Script.decode(fromAsm) + decoded[1].toString('ascii') + // #BCHForEveryone + +### `bip66.encode` + +Strict DER signature encoding per [bip66](https://github.com/bitcoin/bips/blob/master/bip-0066.mediawiki) + +#### Arguments + +1. r `Buffer` +2. s `Buffer` + +#### Result + +encoded `Buffer` + +#### Examples + + let transactionBuilder = new bitbox.TransactionBuilder(); + let r = Buffer.from('1ea1fdff81b3a271659df4aad19bc4ef83def389131a36358fe64b245632e777', 'hex'); + let s = Buffer.from('29e164658be9ce810921bf81d6b86694785a79ea1e52dbfa5105148d1f0bc1', 'hex'); + transactionBuilder.bip66.encode(r, s); + // + +### `bip66.decode` + +Strict DER signature decoding per [bip66](https://github.com/bitcoin/bips/blob/master/bip-0066.mediawiki) + +#### Arguments + +1. signature `Buffer` + +#### Result + +decoded `Object` + +#### Examples + + let transactionBuilder = new bitbox.TransactionBuilder(); + let signature = new Buffer.from('304302201ea1fdff81b3a271659df4aad19bc4ef83def389131a36358fe64b245632e777021f29e164658be9ce810921bf81d6b86694785a79ea1e52dbfa5105148d1f0bc1', 'hex'); + transactionBuilder.bip66.decode(signature); + // { r: + // , + // s: + // } + +### `bip66.check` + +Check format of [bip66](https://github.com/bitcoin/bips/blob/master/bip-0066.mediawiki) Strict DER Signature + +#### Arguments + +1. DER `Buffer` + +#### Result + +value `boolean` + +#### Examples + + let transactionBuilder = new bitbox.TransactionBuilder(); + let DER = '3044022029db2d5f4e1dcc04e19266cce3cb135865784c62ab653b307f0e0bb744f5c2aa022000a97f5826912cac8b44d9f577a26f169a2f8db781f2ddb7de2bc886e93b6844'; + let buffer = Buffer.from(DER, 'hex') + transactionBuilder.bip66.check(buffer); + // true + +### `bip68.encode` + +Encoded [bip68](https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki) relative time lock + +#### Arguments + +1. config `Object`: Valid keys: `seconds` and `block`. `seconds` must be in multiples of 512. + +#### Result + +hex `string`: hex encoded relative timelock + +#### Examples + + let transactionBuilder = new bitbox.TransactionBuilder(); + transactionBuilder.bip68.encode({ seconds: 2048 }) + // 4194308 + transactionBuilder.bip68.encode({ blocks: 52 }) + // 52 + +### `bip68.decode` + +Decoded [bip68](https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki) relative time lock + +#### Arguments + +1. hex `string`: hex encoded relative lock time + +#### Result + +details `Object`: details about the relative lock time + +#### Examples + + let transactionBuilder = new bitbox.TransactionBuilder(); + transactionBuilder.bip68.decode(0x03ffffff) + // { seconds: 33553920 } + transactionBuilder.bip68.decode(0x0100fffe) + // { blocks: 65534 } diff --git a/docs/util.md b/docs/util.md new file mode 100644 index 00000000..9e28128c --- /dev/null +++ b/docs/util.md @@ -0,0 +1,118 @@ +# Util + +### `validateAddress` + +Return information about the given bitcoin address. + +#### Arguments + +- address `string | string[]` + +#### Result + +- addressDetails `Promise` + +#### Examples + + (async () => { + try { + let validateAddress = await bitbox.Util.validateAddress("bitcoincash:qzc86hrdufhcwlyzk7k82x77kfs2myekn57nv9cw5f"); + console.log(validateAddress); + } catch(error) { + console.error(error) + } + })() + + // { isvalid: true, + // address: '17fshh33qUze2yifiJ2sXgijSMzJ2KNEwu', + // scriptPubKey: '76a914492ae280d70af33acf0ae7cd329b961e65e9cbd888ac', + // ismine: true, + // iswatchonly: false, + // isscript: false, + // pubkey: '0312eeb9ae5f14c3cf43cece11134af860c2ef7d775060e3a578ceec888acada31', + // iscompressed: true, + // account: 'Test' } + + (async () => { + try { + let validateAddress = await bitbox.Util.validateAddress(["bitcoincash:qzc86hrdufhcwlyzk7k82x77kfs2myekn57nv9cw5f"]); + console.log(validateAddress); + } catch(error) { + console.error(error) + } + })() + + // [{ isvalid: true, + // address: '17fshh33qUze2yifiJ2sXgijSMzJ2KNEwu', + // scriptPubKey: '76a914492ae280d70af33acf0ae7cd329b961e65e9cbd888ac', + // ismine: true, + // iswatchonly: false, + // isscript: false, + // pubkey: '0312eeb9ae5f14c3cf43cece11134af860c2ef7d775060e3a578ceec888acada31', + // iscompressed: true, + // account: 'Test' }] + +### `sweep` + +Sweep utxo for `wif` to cashAddress + +#### Arguments + +- wif `string` +- toAddr `string` +- balanceOnly `boolean` **optional**. Defaults to `false` + +#### Result + +- result `string | number` + +#### Examples + + // balance only + (async () => { + try { + const wif = "cP8LcsoMneSyjdtyFTmnASsmAuyd2SfZjG4drp5twAJoSpRa2RCx" + const toAddr = "bchtest:qqmd9unmhkpx4pkmr6fkrr8rm6y77vckjvqe8aey35" + const result = await bitbox.Util.sweep( + wif, + toAddr, + true + ) + console.log(result); + } catch(error) { + console.error(error) + } + })() + // 0.1 + + // sweep utxo + (async () => { + try { + const wif = "cP8LcsoMneSyjdtyFTmnASsmAuyd2SfZjG4drp5twAJoSpRa2RCx" + const toAddr = "bchtest:qqmd9unmhkpx4pkmr6fkrr8rm6y77vckjvqe8aey35" + const result = await bitbox.Util.sweep( + wif, + toAddr + ) + console.log(result); + } catch(error) { + console.error(error) + } + })() + // 6b647ddfbb6b0edfaf61d2952b9f8e195d2dfede0e63fe12e1beab16e5bcfe5c + +## Interfaces + +### AddressDetails + + { + isvalid: boolean + address: string + scriptPubKey: string + ismine: boolean + iswatchonly: boolean + isscript: boolean + pubkey: string + iscompressed: boolean + account: string + } From f22057e25e71d0588908490f656b3a54165364a3 Mon Sep 17 00:00:00 2001 From: Paul Bergamo Date: Fri, 21 Aug 2020 13:54:03 +0900 Subject: [PATCH 480/480] update links to developer.bitcoin.com --- docs/ecpair.md | 4 ++-- docs/hdnode.md | 10 +++++----- docs/transactionBuilder.md | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/ecpair.md b/docs/ecpair.md index ef470ac9..3a9f47e3 100644 --- a/docs/ecpair.md +++ b/docs/ecpair.md @@ -2,11 +2,11 @@ ### `fromWIF` -Generates an ECPair from a private key in wallet import format ([WIF](https://developer.bitcoin.com/mastering-bitcoin-cash/3-keys-addresses-wallets/#private-key-formats)). Follow these [steps to go from a private key to a WIF](https://en.bitcoin.it/wiki/Wallet_import_format). This method only works with a [compressed private key](https://developer.bitcoin.com/mastering-bitcoin-cash/3-keys-addresses-wallets/#compressed-private-keys). +Generates an ECPair from a private key in wallet import format ([WIF](https://github.com/Bitcoin-com/mastering-bitcoin-cash/blob/master/3-keys-addresses-wallets.md#private-key-formats)). Follow these [steps to go from a private key to a WIF](https://en.bitcoin.it/wiki/Wallet_import_format). This method only works with a [compressed private key](https://github.com/Bitcoin-com/mastering-bitcoin-cash/blob/master/3-keys-addresses-wallets.md#compressed-public-keys). #### Arguments -1. wif `string`: private key in wallet import format ([WIF](https://developer.bitcoin.com/mastering-bitcoin-cash/3-keys-addresses-wallets/#private-key-formats)) +1. wif `string`: private key in wallet import format ([WIF](https://github.com/Bitcoin-com/mastering-bitcoin-cash/blob/master/3-keys-addresses-wallets.md#compressed-public-keys)) #### Result diff --git a/docs/hdnode.md b/docs/hdnode.md index 22ab0afc..adb3b2f0 100644 --- a/docs/hdnode.md +++ b/docs/hdnode.md @@ -1,6 +1,6 @@ # HDNode -HDNode stands for Hierarchically Deterministic node which can be used to create a [HD wallet](https://developer.bitcoin.com/mastering-bitcoin-cash/3-keys-addresses-wallets/#hierarchical-deterministic-wallets-bip0032bip0044). +HDNode stands for Hierarchically Deterministic node which can be used to create a [HD wallet](https://github.com/Bitcoin-com/mastering-bitcoin-cash/blob/master/3-keys-addresses-wallets.md#hierarchical-deterministic-wallets-bip0032bip0044). ### `fromSeed` @@ -35,7 +35,7 @@ HDNode `HDNode` ### `derive` -Derive [non hardened](https://developer.bitcoin.com/mastering-bitcoin-cash/3-keys-addresses-wallets/#hardened-child-key-derivation) child HDNode +Derive [non hardened](https://github.com/Bitcoin-com/mastering-bitcoin-cash/blob/master/3-keys-addresses-wallets.md#hardened-child-key-derivation) child HDNode #### Arguments @@ -59,7 +59,7 @@ HDNode `HDNode` ### `deriveHardened` -Derive [hardened](https://developer.bitcoin.com/mastering-bitcoin-cash/3-keys-addresses-wallets/#hardened-child-key-derivation) child HDNode +Derive [hardened](https://github.com/Bitcoin-com/mastering-bitcoin-cash/blob/master/3-keys-addresses-wallets.md#hardened-child-key-derivation) child HDNode #### Arguments @@ -216,7 +216,7 @@ privateKeyWIF `string`: private key in wallet import format (WIF) of HDNode ### `toXPub` -Get [extended](https://developer.bitcoin.com/mastering-bitcoin-cash/3-keys-addresses-wallets/#extended-keys) [public key](https://developer.bitcoin.com/mastering-bitcoin-cash/3-keys-addresses-wallets/#public-key-cryptography-and-cryptocurrency) of HDNode +Get [extended](https://github.com/Bitcoin-com/mastering-bitcoin-cash/blob/master/3-keys-addresses-wallets.md#extended-keys) [public key](https://github.com/Bitcoin-com/mastering-bitcoin-cash/blob/master/3-keys-addresses-wallets.md#public-key-cryptography-and-cryptocurrency) of HDNode #### Arguments @@ -252,7 +252,7 @@ xpub `string`: extended public key of HDNode ### `toXPriv` -Get [extended](https://developer.bitcoin.com/mastering-bitcoin-cash/3-keys-addresses-wallets/#extended-keys) [private key](https://developer.bitcoin.com/mastering-bitcoin-cash/3-keys-addresses-wallets/#private-keys) of HDNode +Get [extended](https://github.com/Bitcoin-com/mastering-bitcoin-cash/blob/master/3-keys-addresses-wallets.md#extended-keys) [private key](https://github.com/Bitcoin-com/mastering-bitcoin-cash/blob/master/3-keys-addresses-wallets.md#private-keys) of HDNode #### Arguments diff --git a/docs/transactionBuilder.md b/docs/transactionBuilder.md index 52e0008c..2a265d3e 100644 --- a/docs/transactionBuilder.md +++ b/docs/transactionBuilder.md @@ -86,7 +86,7 @@ Add output to transaction ### `setLockTime` -Set [locktime](https://developer.bitcoin.com/mastering-bitcoin-cash/4-transactions/#transaction-locktime) +Set [locktime](https://github.com/Bitcoin-com/mastering-bitcoin-cash/blob/master/4-transactions.md#transaction-locktime) #### Arguments